{"version":3,"file":"http.mjs","names":[],"sources":["../../../../src/libs/logger/console-transport/http.ts"],"sourcesContent":["import type { LogEntry } from \"../types.js\";\nimport {\n\tcolorize,\n\tconsoleColors,\n\tcreatePrefix,\n\tformatDuration,\n\tformatTimestamp,\n} from \"./formatters.js\";\nimport type { ResolvedConsoleTransportOptions } from \"./types.js\";\n\n/**\n * Identifies successful admin bundles that add noise to normal development logs.\n */\nconst isSuccessfulAdminAsset = (entry: LogEntry) => {\n\tif (entry.event !== \"http.request.completed\") return false;\n\n\tconst path = entry.data?.path;\n\tconst status = entry.data?.status;\n\n\treturn (\n\t\ttypeof path === \"string\" &&\n\t\tpath.startsWith(\"/lucid/assets/\") &&\n\t\ttypeof status === \"number\" &&\n\t\tstatus < 400\n\t);\n};\n\n/**\n * Renders HTTP completion entries on one line and reports whether it handled them.\n */\nexport const writeHttpEntry = (\n\tentry: LogEntry,\n\toptions: ResolvedConsoleTransportOptions,\n) => {\n\tif (!options.verbose && isSuccessfulAdminAsset(entry)) return true;\n\n\tconst method = entry.data?.method;\n\tconst path = entry.data?.path;\n\tconst status = entry.data?.status;\n\tconst durationMs = entry.data?.durationMs;\n\n\tif (\n\t\ttypeof method !== \"string\" ||\n\t\ttypeof path !== \"string\" ||\n\t\ttypeof status !== \"number\" ||\n\t\ttypeof durationMs !== \"number\"\n\t) {\n\t\treturn false;\n\t}\n\n\tconst statusColor =\n\t\tstatus >= 500\n\t\t\t? consoleColors.error\n\t\t\t: status >= 400\n\t\t\t\t? consoleColors.warn\n\t\t\t\t: consoleColors.success;\n\tconst prefix = createPrefix({\n\t\tcolor: consoleColors.http,\n\t\tcolors: options.colors,\n\t\tlabel: \"HTTP\",\n\t\ttimestamp: formatTimestamp(entry.timestamp, options.timestamps),\n\t});\n\tconst statusLabel = colorize(String(status), statusColor, options.colors);\n\n\tconsole.info(\n\t\t`${prefix}  ${method} ${path}  ${statusLabel}  ${formatDuration(durationMs)}`,\n\t);\n\n\tif (options.verbose) {\n\t\tconsole.info(\n\t\t\tcolorize(\"  Data:\", consoleColors.dim, options.colors),\n\t\t\tentry.data,\n\t\t);\n\t}\n\n\treturn true;\n};\n"],"mappings":"0HAaA,MAAM,EAA0B,GAAoB,CACnD,GAAI,EAAM,QAAU,yBAA0B,MAAO,GAErD,IAAM,EAAO,EAAM,MAAM,KACnB,EAAS,EAAM,MAAM,OAE3B,OACC,OAAO,GAAS,UAChB,EAAK,WAAW,gBAAgB,GAChC,OAAO,GAAW,UAClB,EAAS,GAEX,EAKa,GACZ,EACA,IACI,CACJ,GAAI,CAAC,EAAQ,SAAW,EAAuB,CAAK,EAAG,MAAO,GAE9D,IAAM,EAAS,EAAM,MAAM,OACrB,EAAO,EAAM,MAAM,KACnB,EAAS,EAAM,MAAM,OACrB,EAAa,EAAM,MAAM,WAE/B,GACC,OAAO,GAAW,UAClB,OAAO,GAAS,UAChB,OAAO,GAAW,UAClB,OAAO,GAAe,SAEtB,MAAO,GAGR,IAAM,EACL,GAAU,IACP,EAAc,MACd,GAAU,IACT,EAAc,KACd,EAAc,QACb,EAAS,EAAa,CAC3B,MAAO,EAAc,KACrB,OAAQ,EAAQ,OAChB,MAAO,OACP,UAAW,EAAgB,EAAM,UAAW,EAAQ,UAAU,CAC/D,CAAC,EACK,EAAc,EAAS,OAAO,CAAM,EAAG,EAAa,EAAQ,MAAM,EAaxE,OAXA,QAAQ,KACP,GAAG,EAAO,IAAI,EAAO,GAAG,EAAK,IAAI,EAAY,IAAI,EAAe,CAAU,GAC3E,EAEI,EAAQ,SACX,QAAQ,KACP,EAAS,UAAW,EAAc,IAAK,EAAQ,MAAM,EACrD,EAAM,IACP,EAGM,EACR"}