{"version":3,"sources":["jsdelivr-header.js","/npm/juicy-chat-bot@0.8.0/index.js"],"names":[],"mappings":"AAAA;AACA;AACA;AACA;AACA;AACA;AACA,ACDA,MAAM,GAAE,IAAO,QAAQ,OACjB,GAAK,QAAQ,MACb,KAAO,QAAQ,QACf,IAAM,GAAG,aAAa,GAAG,wBAAwB,WACjD,WAAa,QAAQ,SAE3B,MAAM,IACJ,WAAA,CAAa,EAAM,EAAU,EAAa,GACxC,KAAK,KAAO,EACZ,KAAK,SAAW,EAChB,KAAK,gBAAkB,CAAE,OAAQ,WAAY,KAAM,GACnD,KAAK,SAAW,CACd,OAAO,EACP,KAAM,GAER,KAAK,QAAU,IAAI,GAAG,CACpB,QAAS,CACP,IAAK,WACL,SAAU,KAAK,YAGnB,KAAK,QAAQ,IAAI,KACjB,KAAK,QAAQ,IAAI,eAAe,IAClC,CAEA,KAAA,CAAO,GACL,OAAO,KAAK,OAAO,KAAK,SAAU,EACpC,CAEA,OAAA,CAAS,EAAO,GACd,KAAK,QAAQ,IAAI,kBAAkB,QAAY,MACjD,CAEA,OAAA,CAAS,GACP,OAAO,KAAK,QAAQ,IAAI,cAAc,MACxC,CAEA,MAAA,CAAQ,EAAW,GACjB,OAAO,EAAU,QAAQ,cAAe,KAAK,MAAM,QAAQ,mBAAoB,KAAK,QAAQ,IAAI,eAAe,MACjH,CAEA,aAAM,CAAS,EAAO,GACpB,MAAM,SAAkB,KAAK,QAAQ,IAAI,YAAY,QAAY,QAAY,OAC7E,OAAK,GAGC,EAAS,OACX,EAAS,KAAO,KAAK,OAAO,EAAS,KAAM,IAEtC,GALA,KAAK,eAOhB,CAEA,KAAA,GACE,OAAO,KAAK,QAAQ,IAAI,UAC1B,EAGF,QAAQ,IAAM","file":"/npm/juicy-chat-bot@0.8.0/index.js","sourceRoot":"","sourcesContent":["/**\n * Minified by jsDelivr using Terser v5.39.0.\n * Original file: /npm/juicy-chat-bot@0.8.0/index.js\n *\n * Do NOT use SRI with dynamically generated files! More information: https://www.jsdelivr.com/using-sri-with-dynamic-files\n */\n","/*\n * Copyright (c) 2020-2023 Bjoern Kimminich & the OWASP Juice Shop contributors.\n * SPDX-License-Identifier: MIT\n */\n\nconst { VM } = require('vm2')\nconst fs = require('fs')\nconst path = require('path') // eslint-disable-line no-unused-vars\nconst ctx = fs.readFileSync(`${__dirname}/factory.js`).toString()\nconst NlpManager = require('./nlp')\n\nclass Bot {\n  constructor (name, greeting, trainingSet, defaultResponse) {\n    this.name = name\n    this.greeting = greeting\n    this.defaultResponse = { action: 'response', body: defaultResponse }\n    this.training = {\n      state: false,\n      data: trainingSet\n    }\n    this.factory = new VM({\n      sandbox: {\n        Nlp: NlpManager,\n        training: this.training\n      }\n    })\n    this.factory.run(ctx)\n    this.factory.run(`trainingSet=${trainingSet}`)\n  }\n\n  greet (token) {\n    return this.render(this.greeting, token)\n  }\n\n  addUser (token, name) {\n    this.factory.run(`users.addUser(\"${token}\", \"${name}\")`)\n  }\n\n  getUser (token) {\n    return this.factory.run(`users.get(\"${token}\")`)\n  }\n\n  render (statement, token) {\n    return statement.replace(/<bot-name>/g, this.name).replace(/<customer-name>/g, this.factory.run(`currentUser(${token})`))\n  }\n\n  async respond (query, token) {\n    const response = (await this.factory.run(`process(\"${query}\", \"${token}\")`)).answer\n    if (!response) {\n      return this.defaultResponse\n    } else {\n      if (response.body) {\n        response.body = this.render(response.body, token)\n      }\n      return response\n    }\n  }\n\n  train () {\n    return this.factory.run('train()')\n  }\n}\n\nexports.Bot = Bot\n"]}