PageSourceSearch

https://www.courseconnectai.com/_next/static/chunks/3943.233c12eb29ef6064.js

js courseconnectai.com collected 2026-10-02 01:27:14 UTC 10,055 bytes, 1 lines download raw bytes

1"use strict";(self.webpackChunk_N_E=self.webpackChunk_N_E||[]).push([[3943],{83943:(n,e,t)=>{async function o(n){let e='\n    <!DOCTYPE html>\n    <html>\n      <head>\n        <meta charset="utf-8">\n        <title>'.concat(n.title,"</title>\n        <style>\n          @media print {\n            @page {\n              margin: 1in;\n            }\n            body {\n              print-color-adjust: exact;\n              -webkit-print-color-adjust: exact;\n            }\n          }\n          body {\n            font-family: -apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, sans-serif;\n            max-width: 800px;\n            margin: 0 auto;\n            padding: 20px;\n            line-height: 1.6;\n            color: #333;\n          }\n          h1 {\n            color: #2563eb;\n            border-bottom: 2px solid #2563eb;\n            padding-bottom: 10px;\n            page-break-after: avoid;\n          }\n          .meta {\n            color: #666;\n            font-size: 14px;\n            margin-bottom: 30px;\n            page-break-after: avoid;\n          }\n          .message {\n            margin-bottom: 30px;\n            padding: 15px;\n            border-left: 4px solid #e5e7eb;\n            background: #f9fafb;\n            page-break-inside: avoid;\n          }\n          .message.user {\n            border-left-color: #3b82f6;\n            background: #eff6ff;\n          }\n          .message.bot {\n            border-left-color: #10b981;\n            background: #f0fdf4;\n          }\n          .message-header {\n            font-weight: 600;\n            margin-bottom: 10px;\n            color: #111;\n          }\n          .message-time {\n            font-size: 12px;\n            color: #666;\n            margin-top: 5px;\n          }\n          .message-content {\n            white-space: pre-wrap;\n            word-wrap: break-word;\n          }\n          .sources {\n            margin-top: 10px;\n            font-size: 12px;\n            color: #666;\n          }\n          .sources ul {\n            margin: 5px 0;\n            padding-left: 20px;\n          }\n          code {\n            background: #f3f4f6;\n            padding: 2px 6px;\n            border-radius: 4px;\n            font-family: 'Courier New', monospace;\n          }\n          pre {\n            background: #1f2937;\n            color: #f9fafb;\n            padding: 15px;\n            border-radius: 8px;\n            overflow-x: auto;\n            page-break-inside: avoid;\n          }\n          pre code {\n            background: transparent;\n            padding: 0;\n            color: inherit;\n          }\n        </style>\n      </head>\n      <body>\n        <h1>").concat(s(n.title),'</h1>\n        <div class="meta">\n          <strong>Exported:</strong> ').concat(new Date().toLocaleString(),"<br>\n          <strong>Messages:</strong> ").concat(n.messages.length,"\n        </div>\n        ").concat(n.messages.map(n=>{let e=new Date(n.timestamp).toLocaleString(),t="bot"===n.sender?"CourseConnect AI":s(n.name),o="bot"===n.sender?"\uD83E\uDD16":"\uD83D\uDC64",a="bot"===n.sender?"bot":"user",r=s(n.text);r=(r=(r=r.replace(/```(\w+)?\n([\s\S]*?)```/g,(n,e,t)=>"<pre><code>".concat(s(t),"</code></pre>"))).replace(/`([^`]+)`/g,"<code>$1</code>")).replace(/\n/g,"<br>");let c="";return n.sources&&n.sources.length>0&&(c='<div class="sources"><strong>Sources:</strong><ul>',n.sources.forEach(n=>{n.fileName&&(c+="<li>".concat(s(n.fileName)).concat(n.page?" (Page ".concat(n.page,")"):"","</li>"))}),c+="</ul></div>"),'\n            <div class="message '.concat(a,'">\n              <div class="message-header">').concat(o," ").concat(t,'</div>\n              <div class="message-content">').concat(r,"</div>\n              ").concat(c,'\n              <div class="message-time">').concat(e,"</div>\n            </div>\n          ")}).join(""),"\n      </body>\n    </html>\n  "),t=window.open("","_blank");if(!t)throw Error("Could not open print window. Please allow popups to export as PDF.");t.document.write(e),t.document.close(),t.onload=()=>{setTimeout(()=>{t.print()},250)}}async function a(n,e){let t,a,r=n.title.replace(/[^a-z0-9]/gi,"_"),c=new Date().toISOString().split("T")[0];switch(e){case"json":t=new Blob([JSON.stringify({chatName:n.title,exportDate:new Date().toISOString(),messageCount:n.messages.length,messages:n.messages.map(n=>({sender:n.sender,name:n.name,text:n.text,timestamp:new Date(n.timestamp).toLocaleStr
1ing()}))},null,2)],{type:"application/json"}),a="".concat(r,"_chat_export_").concat(c,".json");break;case"markdown":t=new Blob([function(n){let e=[];return e.push("# ".concat(n.title,"\n")),e.push("**Exported:** ".concat(new Date().toLocaleString())),e.push("**Messages:** ".concat(n.messages.length,"\n")),e.push("---\n"),n.messages.forEach(n=>{let t=new Date(n.timestamp).toLocaleString(),o="bot"===n.sender?"CourseConnect AI":n.name,a="bot"===n.sender?"\uD83E\uDD16":"\uD83D\uDC64";e.push("\n## ".concat(a," ").concat(o)),e.push("*".concat(t,"*\n"));let s=n.text,r=[];(s=s.replace(/```[\s\S]*?```/g,n=>(r.push(n),"__CODE_BLOCK_".concat(r.length-1,"__")))).split("\n").forEach(n=>{e.push(n)}),r.forEach((n,t)=>{let o="__CODE_BLOCK_".concat(t,"__"),a=e.findIndex(n=>n.includes(o));-1!==a&&(e[a]=e[a].replace(o,n))}),n.sources&&n.sources.length>0&&(e.push("\n**Sources:**"),n.sources.forEach(n=>{n.fileName&&e.push("- ".concat(n.fileName).concat(n.page?" (Page ".concat(n.page,")"):""))})),e.push("\n---")}),e.join("\n")}(n)],{type:"text/markdown"}),a="".concat(r,"_chat_export_").concat(c,".md");break;case"pdf":try{await o(n);return}catch(n){throw Error(n.message||"Could not export as PDF. Please allow popups.")}case"word":t=new Blob(["\uFEFF",'\n    <!DOCTYPE html>\n    <html xmlns:o="urn:schemas-microsoft-com:office:office" xmlns:w="urn:schemas-microsoft-com:office:word" xmlns="http://www.w3.org/TR/REC-html40">\n      <head>\n        <meta charset="utf-8">\n        <title>'.concat(n.title,"</title>\n        \x3c!--[if gte mso 9]>\n        <xml>\n          <w:WordDocument>\n            <w:View>Print</w:View>\n            <w:Zoom>90</w:Zoom>\n            <w:DoNotOptimizeForBrowser/>\n          </w:WordDocument>\n        </xml>\n        <![endif]--\x3e\n        <style>\n          @page {\n            size: 8.5in 11in;\n            margin: 1in;\n          }\n          body {\n            font-family: 'Calibri', 'Arial', sans-serif;\n            font-size: 11pt;\n            line-height: 1.5;\n            color: #000;\n          }\n          h1 {\n            color: #2563eb;\n            font-size: 24pt;\n            margin-bottom: 12pt;\n            border-bottom: 2pt solid #2563eb;\n            padding-bottom: 6pt;\n          }\n          .meta {\n            color: #666;\n            font-size: 10pt;\n            margin-bottom: 18pt;\n          }\n          .message {\n            margin-bottom: 18pt;\n            padding: 12pt;\n            border-left: 3pt solid #e5e7eb;\n            background: #f9fafb;\n            page-break-inside: avoid;\n          }\n          .message.user {\n            border-left-color: #3b82f6;\n            background: #eff6ff;\n          }\n          .message.bot {\n            border-left-color: #10b981;\n            background: #f0fdf4;\n          }\n          .message-header {\n            font-weight: bold;\n            font-size: 12pt;\n            margin-bottom: 6pt;\n            color: #000;\n          }\n          .message-time {\n            font-size: 9pt;\n            color: #666;\n            margin-top: 6pt;\n          }\n          .message-content {\n            white-space: pre-wrap;\n            word-wrap: break-word;\n            font-size: 11pt;\n          }\n          .sources {\n            margin-top: 6pt;\n            font-size: 9pt;\n            color: #666;\n          }\n          code {\n            background: #f3f4f6;\n            padding: 2pt 4pt;\n            border-radius: 2pt;\n            font-family: 'Courier New', monospace;\n            font-size: 10pt;\n          }\n          pre {\n            background: #1f2937;\n            color: #f9fafb;\n            padding: 12pt;\n            border-radius: 4pt;\n            overflow-x: auto;\n            font-family: 'Courier New', monospace;\n            font-size: 9pt;\n          }\n        </style>\n      </head>\n      <body>\n        <h1>").concat(s(n.title),'</h1>\n        <div class="meta">\n          <strong>Exported:</strong> ').concat(new Date().toLocaleString(),"<br>\n          <strong>Messages:</strong> ").concat(n.messages.length,"\n        </div>\n        ").concat(n.messages.map(n=>
1{let e=new Date(n.timestamp).toLocaleString(),t="bot"===n.sender?"CourseConnect AI":s(n.name),o="bot"===n.sender?"\uD83E\uDD16":"\uD83D\uDC64",a="bot"===n.sender?"bot":"user",r=s(n.text);r=(r=(r=r.replace(/```(\w+)?\n([\s\S]*?)```/g,(n,e,t)=>"<pre><code>".concat(s(t),"</code></pre>"))).replace(/`([^`]+)`/g,"<code>$1</code>")).replace(/\n/g,"<br>");let c="";return n.sources&&n.sources.length>0&&(c='<div class="sources"><strong>Sources:</strong><ul>',n.sources.forEach(n=>{n.fileName&&(c+="<li>".concat(s(n.fileName)).concat(n.page?" (Page ".concat(n.page,")"):"","</li>"))}),c+="</ul></div>"),'\n            <div class="message '.concat(a,'">\n              <div class="message-header">').concat(o," ").concat(t,'</div>\n              <div class="message-content">').concat(r,"</div>\n              ").concat(c,'\n              <div class="message-time">').concat(e,"</div>\n            </div>\n          ")}).join(""),"\n      </body>\n    </html>\n  ")],{type:"application/msword"}),a="".concat(r,"_chat_export_").concat(c,".doc");break;default:throw Error("Unsupported export format: ".concat(e))}let i=URL.createObjectURL(t),d=document.createElement("a");d.href=i,d.download=a,document.body.appendChild(d),d.click(),document.body.removeChild(d),URL.revokeObjectURL(i)}function s(n){let e=document.createElement("div");return e.textContent=n,e.innerHTML}t.d(e,{exportChat:()=>a})}}]);

Line numbers count LF bytes from the start of the resource, as the search results do. Vendor segments are library code the classifier recognised; they are stored but not indexed. Bytes are shown as Latin1 characters, one per byte.