{
  "version": 3,
  "sources": ["../src/log-test.ts"],
  "sourcesContent": ["import type { NexloadLogger } from \"./logger\";\n\nexport async function test(logger: NexloadLogger) {\n  const processId = Math.floor(Math.random() * 10000);\n\n  // ---------------------------------------------------------\n  // 1. System Startup (Boot Sequence) - TRACE / DEBUG\n  // ---------------------------------------------------------\n  logger.trace(\n    { pid: processId, memory: 80 },\n    \"Process started, initializing modules...\"\n  );\n\n  // \u0634\u0628\u06CC\u0647\u200C\u0633\u0627\u0632\u06CC \u062E\u0648\u0627\u0646\u062F\u0646 \u06A9\u0627\u0646\u0641\u06CC\u06AF\n  const config = { db: \"mongo:27017\", timeout: 5000, retries: 3 };\n  logger.debug({ config }, \"Configuration loaded successfully\");\n\n  // ---------------------------------------------------------\n  // 2. Database Connection - INFO / SUCCESS\n  // ---------------------------------------------------------\n  logger.info(\n    { dbHost: config.db, poolSize: 10 },\n    \"Attempting to connect to Database...\"\n  );\n\n  // \u0634\u0628\u06CC\u0647\u200C\u0633\u0627\u0632\u06CC \u062A\u0627\u062E\u06CC\u0631 \u0627\u062A\u0635\u0627\u0644\n  await new Promise((r) => setTimeout(r, 100));\n\n  logger.success(\n    { latency_ms: 45, status: \"connected\" },\n    \"Database connection established\"\n  );\n\n  // ---------------------------------------------------------\n  // 3. Batch Processing Simulation (High Volume) - TRACE / INFO\n  // ---------------------------------------------------------\n  const orders = [\n    { id: 101, amount: 500, user: \"ali\" },\n    { id: 102, amount: 0, user: \"bot\" }, // Invalid\n    { id: 103, amount: 12000, user: \"sara\" },\n  ];\n\n  logger.info({ batchSize: orders.length }, \"Starting batch order processing\");\n\n  for (const order of orders) {\n    // \u0644\u0627\u06AF \u0628\u0633\u06CC\u0627\u0631 \u062C\u0632\u0626\u06CC \u0628\u0631\u0627\u06CC \u062F\u06CC\u0628\u0627\u06AF \u06A9\u0631\u062F\u0646 \u0644\u0648\u067E\u200C\u0647\u0627\n    logger.trace({ orderId: order.id }, \"Processing order item\");\n\n    if (order.amount <= 0) {\n      // ---------------------------------------------------------\n      // 4. Validation Logic - WARN\n      // ---------------------------------------------------------\n      logger.warn(\n        { orderId: order.id, userId: order.user, amount: order.amount },\n        \"Skipping invalid order amount\"\n      );\n      continue;\n    }\n\n    // \u0639\u0645\u0644\u06CC\u0627\u062A \u0645\u0648\u0641\u0642\u06CC\u062A\u200C\u0622\u0645\u06CC\u0632\n    logger.info(\n      {\n        orderId: order.id,\n        transactionId: `tx_${Math.random().toString(36).substring(7)}`,\n      },\n      \"Order processed\"\n    );\n  }\n\n  // ---------------------------------------------------------\n  // 5. Error Handling Simulation - ERROR\n  // ---------------------------------------------------------\n  try {\n    // \u0634\u0628\u06CC\u0647\u200C\u0633\u0627\u0632\u06CC \u06CC\u06A9 \u062E\u0637\u0627\u06CC \u063A\u06CC\u0631\u0645\u0646\u062A\u0638\u0631\u0647\n    simulateCriticalFailure();\n  } catch (err: any) {\n    // \u067E\u0627\u0633 \u062F\u0627\u062F\u0646 \u0622\u0628\u062C\u06A9\u062A \u062E\u0637\u0627 \u0628\u0647 \u0644\u0627\u06AF\u0631\n    logger.error(\n      {\n        errorName: err.name,\n        errorMessage: err.message,\n        stack: err.stack, // \u0644\u0627\u06AF\u0631 \u0628\u0627\u06CC\u062F \u0628\u062A\u0648\u0627\u0646\u062F \u0627\u0633\u062A\u06A9\u200C\u062A\u0631\u06CC\u0633 \u0631\u0627 \u0647\u0646\u062F\u0644 \u06A9\u0646\u062F\n        failedModule: \"PaymentGateway\",\n      },\n      \"Transaction failed unexpectedly\"\n    );\n  }\n\n  // ---------------------------------------------------------\n  // 6. Critical System Failure - FATAL\n  // ---------------------------------------------------------\n  // \u0634\u0631\u0627\u06CC\u0637\u06CC \u06A9\u0647 \u0633\u0631\u0648\u06CC\u0633 \u062F\u06CC\u06AF\u0631 \u0646\u0645\u06CC\u200C\u062A\u0648\u0627\u0646\u062F \u0627\u062F\u0627\u0645\u0647 \u062F\u0647\u062F\n  const heapTotal = 80;\n  const heapLimit = 1024 * 1024 * 500; // \u0641\u0631\u0636 500MB\n\n  if (heapTotal < heapLimit) {\n    // \u0634\u0631\u0637 \u0646\u0645\u0627\u06CC\u0634\u06CC\n    logger.fatal(\n      {\n        usage: heapTotal,\n        limit: heapLimit,\n        action: \"graceful_shutdown\",\n      },\n      \"CRITICAL: Memory leak detected, shutting down service!\"\n    );\n  }\n}\n\n// Helper to throw error\nfunction simulateCriticalFailure() {\n  throw new Error(\"Connection ECONNREFUSED 127.0.0.1:8080\");\n}\n"],
  "mappings": ";;;AAEA,eAAsB,KAAK,QAAuB;AAChD,QAAM,YAAY,KAAK,MAAM,KAAK,OAAO,IAAI,GAAK;AAKlD,SAAO;AAAA,IACL,EAAE,KAAK,WAAW,QAAQ,GAAG;AAAA,IAC7B;AAAA,EACF;AAGA,QAAM,SAAS,EAAE,IAAI,eAAe,SAAS,KAAM,SAAS,EAAE;AAC9D,SAAO,MAAM,EAAE,OAAO,GAAG,mCAAmC;AAK5D,SAAO;AAAA,IACL,EAAE,QAAQ,OAAO,IAAI,UAAU,GAAG;AAAA,IAClC;AAAA,EACF;AAGA,QAAM,IAAI,QAAQ,CAAC,MAAM,WAAW,GAAG,GAAG,CAAC;AAE3C,SAAO;AAAA,IACL,EAAE,YAAY,IAAI,QAAQ,YAAY;AAAA,IACtC;AAAA,EACF;AAKA,QAAM,SAAS;AAAA,IACb,EAAE,IAAI,KAAK,QAAQ,KAAK,MAAM,MAAM;AAAA,IACpC,EAAE,IAAI,KAAK,QAAQ,GAAG,MAAM,MAAM;AAAA;AAAA,IAClC,EAAE,IAAI,KAAK,QAAQ,MAAO,MAAM,OAAO;AAAA,EACzC;AAEA,SAAO,KAAK,EAAE,WAAW,OAAO,OAAO,GAAG,iCAAiC;AAE3E,aAAW,SAAS,QAAQ;AAE1B,WAAO,MAAM,EAAE,SAAS,MAAM,GAAG,GAAG,uBAAuB;AAE3D,QAAI,MAAM,UAAU,GAAG;AAIrB,aAAO;AAAA,QACL,EAAE,SAAS,MAAM,IAAI,QAAQ,MAAM,MAAM,QAAQ,MAAM,OAAO;AAAA,QAC9D;AAAA,MACF;AACA;AAAA,IACF;AAGA,WAAO;AAAA,MACL;AAAA,QACE,SAAS,MAAM;AAAA,QACf,eAAe,MAAM,KAAK,OAAO,EAAE,SAAS,EAAE,EAAE,UAAU,CAAC,CAAC;AAAA,MAC9D;AAAA,MACA;AAAA,IACF;AAAA,EACF;AAKA,MAAI;AAEF,4BAAwB;AAAA,EAC1B,SAAS,KAAU;AAEjB,WAAO;AAAA,MACL;AAAA,QACE,WAAW,IAAI;AAAA,QACf,cAAc,IAAI;AAAA,QAClB,OAAO,IAAI;AAAA;AAAA,QACX,cAAc;AAAA,MAChB;AAAA,MACA;AAAA,IACF;AAAA,EACF;AAMA,QAAM,YAAY;AAClB,QAAM,YAAY,OAAO,OAAO;AAEhC,MAAI,YAAY,WAAW;AAEzB,WAAO;AAAA,MACL;AAAA,QACE,OAAO;AAAA,QACP,OAAO;AAAA,QACP,QAAQ;AAAA,MACV;AAAA,MACA;AAAA,IACF;AAAA,EACF;AACF;AAGA,SAAS,0BAA0B;AACjC,QAAM,IAAI,MAAM,wCAAwC;AAC1D;",
  "names": []
}
