{"version":3,"names":["Knot","Triple","Graph","getJSYaml","lively","loadJavaScriptThroughDOM","jsyaml","parseMarkdown","markdown","filename","frontmatterSeparator","startsWith","parts","split","shift","frontmatterString","textContent","join","metadata","e","notify","undefined","isInternalURL","url","origin","isExternalURL","focalStorage","ContextMenu","through","uuid","fileName","hintForLabel","getTempKeyFor","asDragImageFor","trackInstance","constructor","content","new","target","call","getMetadata","label","firstLine","replace","isTriple","save","newContent","openViewInWindow","knotView","openComponentInWindow","loadKnotForURL","collectContextMenuItems","evt","hide","graph","getInstance","deleteKnot","toListItem","listItem","addEventListener","event","stopPropagation","preventDefault","openIn","document","asDataForDrag","dt","setData","mimeType","dragInfo","JSON","parse","console","log","DEFAULT_FOLDER_URL","TAG_URL","IS_A_URL","SAME_AS_URL","CONTAINS_URL","ROOT_KNOWLEDGE_BASES_KEY","PREFERRED_KNOWLEDGE_BASE_KEY","Map","prepare","rootKnowledgeBases","getRootKnowledgeBases","Promise","all","map","loadFromDir","getItem","addRootKnowledgeBase","urlString","URL","stats","Error","includes","push","setItem","removeRootKnowledgeBase","filter","rootBase","getKnots","hasKnotWithURL","knot","triples","referingTriples","query","_","window","confirm","index","urlURL","result","fetch","method","r","text","createReferree","triple","propName","subjectUrlString","subjectUrl","searchString","toString","subject","requestKnot","linkUpTriple","clearInstance","s","p","o","getUrlsByKnot","filePath","loadSingleKnot","urlOrString","err","endsWith","directory","resolve","progress","showProgress","directoryURL","json","fileNames","desc","total","i","pool","Set","limit","arr","ii","groups","groupBy","args","group","Object","values","knotURL","prom","remove","escapeSpecialCharacters","str","fileForNameExists","name","getOrCreateKnotForTitle","defaultText","escapedName","proposedURL","existingKnot","success","fileExists","warn","createKnot","getNonCollidableURL","fileEnding","maxTries","offset","bust","createTriple","predicateURLString","objectURLString","knowledgeBaseURLString","stringify","predicate","object"],"sources":["triples.js"],"sourcesContent":["\"enable aexpr\";\nimport 'lang';\n\nimport focalStorage from 'src/external/focalStorage.js';\nimport ContextMenu from './../contextmenu.js';\nimport { through, uuid, fileName, hintForLabel, getTempKeyFor, asDragImageFor } from 'utils';\nimport { trackInstance } from 'active-group';\n\nasync function getJSYaml() {\n  await lively.loadJavaScriptThroughDOM(\"esprima\", \"https://lively-kernel.org/lively4/foo/src/external/esprima.js\");\n  await lively.loadJavaScriptThroughDOM(\"js-yaml\", \"https://lively-kernel.org/lively4/foo/src/external/js-yaml.js\");\n  return jsyaml;\n}\n\n// #TODO: unused\nasync function parseMarkdown(markdown, filename) {\n  try {\n    const frontmatterSeparator = \"---\\r\\n\";\n    if(markdown.startsWith(frontmatterSeparator)) {\n      const parts = markdown.split(frontmatterSeparator);\n      if(parts.length >= 3) {\n        parts.shift(); // empty\n        const frontmatterString = parts.shift();\n        return {\n          textContent: parts.join(frontmatterSeparator),\n          metadata: (await getJSYaml()).load(frontmatterString)\n        };\n      }\n    }\n  } catch(e) {\n    lively.notify(\"failed frontmatter parsing\", \"\", undefined, undefined, \"red\");\n  }\n  return {\n    textContent: markdown,\n    metadata: {}\n  };\n}\n\nexport class Knot {\n  constructor(fileName, content) {\n    this.fileName = fileName;\n    this.content = content;\n    \n    if(new.target === Knot) {\n      trackInstance.call(Knot, this);\n    }\n  }\n  get url() { return this.fileName; }\n  getMetadata() { return this.metadata; }\n  label() {\n    if(this.fileName.endsWith('.md')) {\n      const firstLine = this.content.split('\\n')[0];\n      return firstLine.replace(/^#\\s/, '');\n    }\n    return this.fileName;\n  }\n  isTriple() { return false; }\n  async save(newContent) {\n    this.content = newContent;\n    await lively.files.saveFile(this.url, newContent);\n  }\n  async openViewInWindow() {\n    const knotView = await lively.openComponentInWindow(\"knot-view\");\n    knotView.loadKnotForURL(this.url);\n  }\n  collectContextMenuItems() {\n    return [\n        [\"Knot View\", evt => {\n          ContextMenu.hide();\n          this.openViewInWindow();\n        }, \"\", '<i class=\"fa fa-window-maximize\" aria-hidden=\"true\"></i>'],\n        [\"Danger Zone\", [\n          [\"Delete\", async evt => {\n            ContextMenu.hide();\n            const graph = await Graph.getInstance();\n\n            const label = this.label();\n            if(await graph.deleteKnot(this)) {\n              // #TODO: use reactivity to update views and search results\n              lively.notify(`${label} deleted!`, null, 4, null, \"red\");\n            } else {\n              lively.notify('did not delete knot ' + label, this.url);\n            }\n          }, \"Delete for good\", '<i class=\"fa fa-trash\" aria-hidden=\"true\"></i>']\n        ]]\n      ];\n  }\n\n  toListItem() {\n    const listItem = <li tabindex=\"1\" draggable=\"true\">{this.label()}</li>;\n    listItem.knot = this;\n    \n    listItem.addEventListener('keydown', event => {\n      if (event.keyCode == 13) { // ENTER\n        this.openViewInWindow();\n        event.stopPropagation();\n        event.preventDefault();\n      }\n    });\n    listItem.addEventListener(\"dblclick\", event => {\n      this.openViewInWindow();\n      event.stopPropagation();\n      event.preventDefault();\n    });\n    listItem.addEventListener(\"contextmenu\", event => {\n      ContextMenu.openIn(document.body, event, this, undefined, this.collectContextMenuItems());\n      event.stopPropagation();\n      event.preventDefault();\n    });\n\n    return listItem;\n  }\n  \n  asDataForDrag(evt) {\n    const dt = evt.dataTransfer;\n    //listItem.style.color = \"blue\";\n    dt.setData(\"knot/url\", this.url);\n    dt.setData(\"text/uri-list\", this.url);\n    dt.setData(\"text/plain\", this.url);\n    dt.setData(\"javascript/object\", getTempKeyFor(this));\n    const mimeType = 'text/plain';\n    const filename = this.url::fileName();\n    const url = this.url;\n    dt.setData(\"DownloadURL\", `${mimeType}:${filename}:${url}`);\n\n    // #TODO: remove duplication\n    const dragInfo = <div style=\"width: 150px;\">\n      {hintForLabel(this.label())}\n    </div>;\n    dragInfo::asDragImageFor(evt, 50, 60);\n  }\n}\n\nexport class Triple extends Knot {\n  constructor(fileName, content) {\n    try {\n      JSON.parse(content)\n    } catch(e) {\n      debugger\n      console.log(fileName);\n    }\n\n    super(fileName, JSON.parse(content));\n\n    // track this Triple for ROQs after full initialization\n  }\n  \n  label() {\n    if(this.predicate) {\n      return 't: ' + this.predicate.label();\n    }\n    return this.filename.replace('.triple.json', '');\n  }\n  isTriple() { return true; }\n}\n\nexport const DEFAULT_FOLDER_URL = 'https://lively4/notes/';\nexport const TAG_URL = DEFAULT_FOLDER_URL + 'tag.md';\nexport const IS_A_URL = DEFAULT_FOLDER_URL + 'is_a.md';\nexport const SAME_AS_URL = DEFAULT_FOLDER_URL + 'same_as.md';\nexport const CONTAINS_URL = DEFAULT_FOLDER_URL + 'contains.md';\n\nconst ROOT_KNOWLEDGE_BASES_KEY = 'triple-notes-root-knowledge-bases';\nconst PREFERRED_KNOWLEDGE_BASE_KEY = 'triple-notes-preferred-knowledge-base';\n\nfunction isInternalURL(url) {\n  const origin = url.origin;\n  return origin === 'https://lively4' || origin === 'https://localhost:8800';\n}\nfunction isExternalURL(url) { return !isInternalURL(url); }\n\nexport class Graph {\n  constructor() {\n    this.knots = [];\n    this.loadedDirectoryPromises = new Map();\n    // url string -> Promise for Knot\n    this.requestedKnots = new Map();\n  }\n  async prepare() {\n    const rootKnowledgeBases = await this.getRootKnowledgeBases();\n    return Promise.all(rootKnowledgeBases.map(::this.loadFromDir));\n  }\n  \n  async getRootKnowledgeBases() {\n    return (await focalStorage.getItem(ROOT_KNOWLEDGE_BASES_KEY)) || [\n      DEFAULT_FOLDER_URL\n      //, \"https://lively4/gamedev/\"\n    ]\n  }\n  \n  async addRootKnowledgeBase(urlString) {\n    try {\n      new URL(urlString);\n      const stats = JSON.parse(await lively.files.statFile(urlString));\n      if(!stats || stats.type !== \"directory\") {\n        throw new Error(stats);\n      }\n    } catch (e) {\n      lively.notify(`Knowledge base ${urlString} not valid.`, e.message, undefined, undefined, \"red\");\n      return;\n    }\n    \n    const rootKnowledgeBases = (await this.getRootKnowledgeBases()) || [];\n    if(!rootKnowledgeBases.includes(urlString)) {\n      rootKnowledgeBases.push(urlString);\n      await focalStorage.setItem(ROOT_KNOWLEDGE_BASES_KEY, rootKnowledgeBases);\n      return await this.loadFromDir(urlString);\n    }\n  }\n  \n  async removeRootKnowledgeBase(urlString) {\n    let rootKnowledgeBases = (await this.getRootKnowledgeBases()) || [];\n    if(rootKnowledgeBases.includes(urlString)) {\n      // remove via filter\n      rootKnowledgeBases = rootKnowledgeBases.filter(rootBase => rootBase !== urlString);\n      await focalStorage.setItem(ROOT_KNOWLEDGE_BASES_KEY, rootKnowledgeBases);\n      return true;\n    } else {\n      return false;\n    }\n  }\n  \n  getKnots() {\n    return this.knots;\n  }\n  hasKnotWithURL(url) {\n    return !!this.getKnots().find(knot => knot.url === url);\n  }\n  get triples() {\n    return this.knots.filter(knot => knot.isTriple());\n  }\n  async deleteKnot(knot) {\n    // check for triples on top of the knot\n    const referingTriples = this.query(knot, _, _)\n      .concat(this.query(_, knot, _))\n      .concat(this.query(_, _, knot));\n    if(referingTriples.length > 0) {\n      lively.notify('Deletion aborted!', `${referingTriples.length} triples refer to this knot.`);\n      return false;\n    }\n\n    let url = knot.url;\n    if (!window.confirm(\"delete knot \" + url)) { return false; }\n    \n    let index = this.knots.indexOf(knot);\n    if (index > -1) {\n      this.knots.splice(index, 1);\n      lively.notify(`Removed knot ${url} in local graph instance.`);\n    } else {\n      lively.notify(`Did not find knot ${url} in local graph instance.`);\n    }\n    \n    let urlURL = new URL(url);\n    if(!isInternalURL(urlURL)) {\n      var result = await fetch(url, {method: 'DELETE'})\n        .then(r => r.text());\n      lively.notify(`Deleted knot ${url} in remote storage`, result);\n    }\n    \n    lively.notify('Knot removed from graph.');\n    \n    return true;\n  }\n\n  async createReferree(triple, propName) {\n    let subjectUrlString = triple.content[propName];\n    let subjectUrl = new URL(subjectUrlString, triple.fileName);\n    let searchString = subjectUrl.toString();\n    \n    let subject = await this.requestKnot(subjectUrl);\n    //let subject = this.knots.find(knot => knot.fileName === searchString);\n    if(subject) {\n      triple[propName] = subject;\n    } else {\n      throw new Error(`${searchString} ${triple.fileName} external referrees not yet implemented!`);\n    }\n  }\n  async linkUpTriple(triple) {\n    return Promise.all([\n      this.createReferree(triple, 'subject'),\n      this.createReferree(triple, 'predicate'),\n      this.createReferree(triple, 'object')\n    ]);\n  }\n\n  static async getInstance() {\n    if(!this.instance) {\n      this.instance = new Graph();\n    }\n    \n    await this.instance.prepare();\n    \n    return this.instance;\n  }\n  static clearInstance() {\n    this.instance = undefined;\n  }\n  \n  query(s, p, o) {\n    return this.triples\n      .filter(triple => s === _ || triple.subject === s)\n      .filter(triple => p === _ || triple.predicate === p)\n      .filter(triple => o === _ || triple.object === o);\n  }\n  \n  getUrlsByKnot(knot) {\n    // TODO: we simply return the single reference url for now\n    return [knot.fileName];\n  }\n\n  // returns a promise for the Knot\n  async requestKnot(url) {\n    const filePath = url.toString();\n    if(!this.requestedKnots.has(filePath)) {\n      this.requestedKnots.set(filePath, this.loadSingleKnot(url));\n    }\n    return this.requestedKnots.get(filePath);\n  }\n  \n  async loadSingleKnot(urlOrString) {\n    const url = new URL(urlOrString);\n    \n    let fileName = url.toString();\n    let text = isExternalURL(url) ?\n      url.hostname + url.pathname :\n      await fetch(url).then(r => r.text()).catch(err => `ERROR loading this knot: ${err}`);\n\n    // deserializeKnot\n    const isTriple = fileName.endsWith(\".triple.json\");\n\n    let knot;\n    if(isTriple) {\n      knot = new Triple(fileName, text);\n      await this.linkUpTriple(knot);\n      trackInstance.call(Triple, knot);\n    } else {\n      knot = new Knot(fileName, text);\n    }\n\n    this.knots.push(knot);\n\n    return knot;\n  }\n  \n  async loadFromDir(directory) {\n    if(!this.loadedDirectoryPromises.has(directory)) {\n      this.loadedDirectoryPromises.set(directory, new Promise(async resolve => {\n        const progress = await lively.showProgress(`loading dir ${directory}`);\n        progress.value = 0;\n        \n        const directoryURL = new URL(directory);\n        const json = await fetch(directory, { method: 'OPTIONS' }).then(r => r.json());\n        const fileNames = json.contents\n          .filter(desc => desc.type === \"file\")\n          .map(desc => desc.name);\n        \n        const total = fileNames.length;\n        let i = 0;\n        const pool = new Set();\n        const limit = 100;\n        const arr = [1,2,3,4,5,6]\n        let ii = 0;\n        const groups = fileNames.groupBy((...args) => (ii++ / limit).floor())\n        for (let group of Object.values(groups)) {\n          await Promise.all(group.map(fileName => {\n            const knotURL = new URL(fileName, directoryURL);\n            const prom = this.requestKnot(knotURL);\n            progress.value = i++ / total\n            return prom\n          }));\n        }\n        \n        await resolve();\n        await progress.remove()\n      }));\n    }\n    return this.loadedDirectoryPromises.get(directory);\n  }\n  \n  escapeSpecialCharacters(str) {\n    return str.replace(/[^A-Za-z0-9-]/g, '_');\n  }\n  \n  async fileForNameExists(name) {\n    const url = new URL(`${this.escapeSpecialCharacters(str)}.md`, DEFAULT_FOLDER_URL);\n    return (await fetch(url)).status === 200;\n  }\n  \n  async getOrCreateKnotForTitle(name, defaultText = '# Default Text') {\n    const escapedName = this.escapeSpecialCharacters(name);\n    const proposedURL = `${DEFAULT_FOLDER_URL}${escapedName}.md`;\n\n    const existingKnot = this.getKnots().find(knot => {\n      return knot.url === proposedURL\n    });\n    if (existingKnot) {\n      lively.success('EXISTS IN MEMORY')\n      return existingKnot;\n    }\n    \n    const fileExists = (await fetch(proposedURL)).status === 200;\n    if(fileExists) {\n      lively.success('EXISTS REMOTELY')\n      return this.requestKnot(proposedURL);\n    }\n    \n    lively.warn('NON EXISTENT')\n    return this.createKnot(DEFAULT_FOLDER_URL, name, 'md');\n  }\n\n  async getNonCollidableURL(directory, name, fileEnding) {\n    const maxTries = 10;\n    const fileName = this.escapeSpecialCharacters(name);\n    let offset = 0;\n    let i = 0;\n    \n    for(; i < maxTries; i++) {\n      let bust = offset === 0 ? '' : offset;\n      let url = new URL(`${fileName}${bust}.${fileEnding}`, directory);\n      let fileExists = (await fetch(url)).status === 200;\n      if(fileExists) {\n        offset++;\n      } else {\n        return url;\n      }\n    }\n    throw new Error('too many tries for '); // TODO: improve error message\n  }\n  async createKnot(directory, name, fileEnding) {\n    if(fileEnding !== 'md') { throw new Error('only .md files supported by now, instead found ', + fileEnding); }\n\n    let url = await this.getNonCollidableURL(directory, name, fileEnding);\n    let content = `# ${name}\n\n`;\n    await lively.files.saveFile(url, content);\n    \n    return this.requestKnot(url);\n  }\n  async createTriple(subjectUrlString, predicateURLString, objectURLString, knowledgeBaseURLString) {\n    await this.requestKnot(subjectUrlString);\n    await this.requestKnot(predicateURLString);\n    await this.requestKnot(objectURLString);\n\n    const url = await this.getNonCollidableURL(knowledgeBaseURLString, 'triple-' + uuid(), 'triple.json');\n    const content = JSON.stringify({\n      subject: subjectUrlString,\n      predicate: predicateURLString,\n      object: objectURLString\n    });\n    await lively.files.saveFile(url, content);\n    \n    //await invalidateFetchCache(knowledgeBaseURLString);\n    \n    return this.requestKnot(url);\n  }\n\n}\n\n// wild card for querying\nexport const _ = {};\n"],"mappings":"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"}