{"version":3,"sources":["https://lively-kernel.org/lively4/lively4-mpm-debugging/src/client/protocols/bib.js"],"names":["Scheme","PolymorphicIdentifier","focalStorage","parseQuery","getDeepProperty","FileIndex","BibScheme","scheme","resolve","GET","options","key","url","replace","entries","current","db","bibliography","where","equals","toArray","entry","content","authors","year","title","source","files","map","ea","name","join","Response","headers","status","OPTIONS","JSON","stringify","undefined","register"],"mappings":";;;;;;AAAQA,Y,oBAAAA,M;AACDC,2B;;AACAC,kB;;AACCC,gB,UAAAA,U;AAAYC,qB,UAAAA,e;;AAEbC,e;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAEA,YAAMC,SAAN,SAAwBN,MAAxB,CAA+B;;AAEpC,YAAIO,MAAJ,GAAa;AACX,iBAAO,KAAP;AACD;;AAEDC,kBAAU;AACR,iBAAO,IAAP;AACD;;AAED,cAAMC,GAAN,CAAUC,OAAV,EAAmB;AACjB,cAAIC,MAAM,KAAKC,GAAL,CAASC,OAAT,CAAiB,WAAjB,EAA6B,EAA7B,CAAV;;AAGA,cAAIC,UAAU,MAAMT,UAAUU,OAAV,GAAoBC,EAApB,CAAuBC,YAAvB,CAAoCC,KAApC,CAA0C,KAA1C,EAAiDC,MAAjD,CAAwDR,GAAxD,EAA6DS,OAA7D,EAApB;AACA,cAAIC,QAAQP,QAAQ,CAAR,KAAc,EAA1B;;AAEA,cAAIQ,UAAW,QAAOX,GAAI,SAAQU,MAAME,OAAN,GAAgBF,MAAME,OAAN,GAAgB,GAAhC,GAAqC,EAAG,KAAIF,MAAMG,IAAN,IAAa,EAAG,YAAWH,MAAMI,KAAN,IAAc,EAAG,YAA1H;;AAEA,cAAIJ,MAAMK,MAAV,EAAkB;AAChBJ,uBAAW,UAAUD,MAAMK,MAAhB,GAAwB,QAAnC;AAED;;AAGD,cAAIC,QAAQ,MAAMtB,UAAUU,OAAV,GAAoBC,EAApB,CAAuBW,KAAvB,CAA6BT,KAA7B,CAAmC,QAAnC,EAA6CC,MAA7C,CAAoDR,GAApD,EAAyDS,OAAzD,EAAlB;;AAEAE,qBAAW,2BAA2BK,MAAMC,GAAN,CAAUC,MAAM;AACpD,mBAAQ,gBAAeA,GAAGjB,GAAI,KAAIiB,GAAGC,IAAK,WAA1C;AACD,WAFqC,EAEnCC,IAFmC,CAE9B,IAF8B,CAA3B,GAEK,OAFhB;;AAKAT,qBAAW,gCAAgCR,QAAQc,GAAR,CAAYC,MAAM;AAC3D,mBAAQ,gBAAeA,GAAGjB,GAAI,KAAIiB,GAAGjB,GAAI,WAAzC;AACD,WAF0C,EAExCmB,IAFwC,CAEnC,IAFmC,CAAhC,GAEK,OAFhB;;AAMA,iBAAO,IAAIC,QAAJ,CAAaV,OAAb,EAAsB;AAC3BW,qBAAS;AACP,8BAAgB;AADT,aADkB;AAI3BC,oBAAQ;AAJmB,WAAtB,CAAP;AAMD;;AAGA,cAAMC,OAAN,CAAczB,OAAd,EAAuB;;AAEtB,cAAIY,UAAUc,KAAKC,SAAL,CAAe,EAAf,EAAmBC,SAAnB,EAA8B,CAA9B,CAAd;;AAGA,iBAAO,IAAIN,QAAJ,CAAaV,OAAb,EAAsB;AAC3BW,qBAAS;AACP,8BAAgB;AADT,aADkB;AAI3BC,oBAAQ;AAJmB,WAAtB,CAAP;AAMD;;AA1DmC;;;;;;;;;;;;;;;;;;AAmEtCjC,4BAAsBsC,QAAtB,CAA+BjC,SAA/B","file":"bib.js","sourcesContent":["import {Scheme}  from \"src/client/poid.js\"\nimport PolymorphicIdentifier  from \"src/client/poid.js\"\nimport focalStorage from \"src/external/focalStorage.js\"\nimport {parseQuery, getDeepProperty} from 'utils'\n\nimport FileIndex from \"src/client/fileindex.js\"\n\nexport class BibScheme extends Scheme {\n  \n  get scheme() {\n    return \"bib\"\n  }\n  \n  resolve() {\n    return true\n  }    \n  \n  async GET(options) {\n    var key = this.url.replace(/bib\\:\\/\\//,\"\")\n    \n    \n    var entries = await FileIndex.current().db.bibliography.where(\"key\").equals(key).toArray()\n    var entry = entries[0] || {} \n    \n    var content = `<h2>[${key}]<br/>${entry.authors ? entry.authors + \".\": \"\"}  ${entry.year|| \"\"}<br/><i> ${entry.title|| \"\"} </i></h2>`\n  \n    if (entry.source) {\n      content += \"<pre>\" + entry.source+ \"</pre>\"\n    \n    }\n    \n  \n    var files = await FileIndex.current().db.files.where(\"bibkey\").equals(key).toArray()\n    \n    content += \"<h3>Documents</h3><ul>\" + files.map(ea => {\n      return `<li><a href=\"${ea.url}\">${ea.name}</a></li>`     \n    }).join(\"\\n\") + \"</ul>\"\n    \n    \n    content += \"<h3>Bibliographies</h3><ul>\" + entries.map(ea => {\n      return `<li><a href=\"${ea.url}\">${ea.url}</a></li>`     \n    }).join(\"\\n\") + \"</ul>\"\n    \n    \n  \n    return new Response(content, {\n      headers: {\n        \"content-type\": \"text/html\",\n      },\n      status: 200,\n    })\n  }\n  \n  \n   async OPTIONS(options) {\n    \n    var content = JSON.stringify({}, undefined, 2)\n  \n     \n    return new Response(content, {\n      headers: {\n        \"content-type\": \"application/json\",\n      },\n      status: 200,\n    })\n  }\n  \n  \n\n  \n}\n\n\n\nPolymorphicIdentifier.register(BibScheme)"]}