[{"data":1,"prerenderedAt":92},["Reactive",2],{"search-api":3},[4,11,21,31,41,48,54,62,69,74,83],{"id":5,"path":6,"dir":7,"title":8,"description":7,"keywords":9,"body":10},"content:0.index.md","/","","Home",[],"    WSB Harpoon   Financial research not a pain anymore. Automate your niddy griddy parts of analysis and focus on what matters.    What to do with WSB Harpoon?     Reads financial reports   input financial data and parse them into usable format.    Exports to Sheets   Export your financial data in spreadsheet format.    Extend   Install plugins to extend functionality of Harpoon.  Project  This project started as a hobby project to help me with my investment research.\nI've decided to make it open source so everyone can use it and contribute to it.\nIf you are interested in contributing check   development section .\nFeel free to open issues, pull requests or create you own plugin.\nIf you have any question you can find my contact details on my   website .",{"id":12,"path":13,"dir":14,"title":15,"description":16,"keywords":17,"body":20},"content:1.guide:1.getting-started.md","/guide/getting-started","guide","Get started","WSB harpoon is node js cli tool for parsing and formatting finance data.\nBefore we can start using it, we need to fulfill some requirements for running the app.",[18,19],"Usage","Update CLI","  Get started  WSB harpoon is node js cli tool for parsing and formatting finance data.\nBefore we can start using it, we need to fulfill some requirements for running the app.   Pre-requisites    Install Node.js  >= 16.0.0  Usage  When running the command for first time it will ask you to install the package globally.\nSelect yes option and wait for the installation to finish. App will start automatically after installation is finished.  Command loop  after you start app it will propmt you to type your command.\nAfter command is executed you will be prompted again to type another command.     npx   wsb-harpoon\n   # type your command after the prompt\n  Single command  App will run the command and exit.     npx   wsb-harpoon   --command=help\n  Update CLI  WSB is installed as global npm package. To update the CLI to the latest version, you can use the following command:     npm   i   -g   wsb-harpoon@latest\n  html .shiki span {color: var(--shiki-default);background: var(--shiki-default-bg);font-style: var(--shiki-default-font-style);font-weight: var(--shiki-default-font-weight);text-decoration: var(--shiki-default-text-decoration);}html.dark .shiki span {color: var(--shiki-dark);background: var(--shiki-dark-bg);font-style: var(--shiki-dark-font-style);font-weight: var(--shiki-dark-font-weight);text-decoration: var(--shiki-dark-text-decoration);}html .dark .shiki span {color: var(--shiki-dark);background: var(--shiki-dark-bg);font-style: var(--shiki-dark-font-style);font-weight: var(--shiki-dark-font-weight);text-decoration: var(--shiki-dark-text-decoration);}html .default .shiki span {color: var(--shiki-default);background: var(--shiki-default-bg);font-style: var(--shiki-default-font-style);font-weight: var(--shiki-default-font-weight);text-decoration: var(--shiki-default-text-decoration);}",{"id":22,"path":23,"dir":14,"title":24,"description":25,"keywords":26,"body":30},"content:1.guide:2.commands.md","/guide/commands","Commands","commands are the main feature of harpoon.\nYou can use them to perform various actions like: parsing, exporting fetching etc...",[27,28,29],"Types of commands:","Core commands","Plugins commands","  Commands  commands are the main feature of harpoon.\nYou can use them to perform various actions like: parsing, exporting fetching etc...  Types of commands:    core command  - included in harpoon core   plugins commands  - commands that are installed by plugins  Core commands  Help  list all available commands     help\n   #or \n   npx   wsb-harpoon   --command=help\n  Exiting the app  exit the app     exit\n  Listing existing documents  list all existing documents in your workspace. Learn more about documents   here     documents-list\n  Plugins commands  You can find plugins command in plugins their documentation\nin case of core plugins you can find them in your   Plugins docs  html .shiki span {color: var(--shiki-default);background: var(--shiki-default-bg);font-style: var(--shiki-default-font-style);font-weight: var(--shiki-default-font-weight);text-decoration: var(--shiki-default-text-decoration);}html.dark .shiki span {color: var(--shiki-dark);background: var(--shiki-dark-bg);font-style: var(--shiki-dark-font-style);font-weight: var(--shiki-dark-font-weight);text-decoration: var(--shiki-dark-text-decoration);}html .dark .shiki span {color: var(--shiki-dark);background: var(--shiki-dark-bg);font-style: var(--shiki-dark-font-style);font-weight: var(--shiki-dark-font-weight);text-decoration: var(--shiki-dark-text-decoration);}html .default .shiki span {color: var(--shiki-default);background: var(--shiki-default-bg);font-style: var(--shiki-default-font-style);font-weight: var(--shiki-default-font-weight);text-decoration: var(--shiki-default-text-decoration);}",{"id":32,"path":33,"dir":14,"title":34,"description":35,"keywords":36,"body":40},"content:1.guide:3.folders.md","/guide/folders","Folders","After succesful instalation Harpoon will create wsb-harpoon folder in your home directory",[37,38,39],"raw","exports",".internal","  Folders  After succesful instalation Harpoon will create   wsb-harpoon  folder in your home directory   wsn-harpoon\n├── /.internal\n│   |── /plugins  \n│   └── /data\n├── /raw\n│   └── [ticker]\n│       └── 10k_[year].xlsx\n└── /exports\n    └── [ticker].xlsx\n  raw  place for raw reports  exports  place for exported reports  .internal   .internal  folder is used for managing plugins and internal data.",{"id":42,"path":43,"dir":14,"title":44,"description":45,"keywords":46,"body":47},"content:1.guide:4.documents.md","/guide/documents","Documents","Documents serves as a persistent storage for your data.\nAll documents use json format and are stored under ~/wsb-harpoon/.internal/documents directory.",[],"  Documents  Documents serves as a persistent storage for your data.\nAll documents use json format and are stored under   ~/wsb-harpoon/.internal/documents  directory.",{"id":49,"path":50,"dir":7,"title":51,"description":7,"keywords":52,"body":53},"content:2.plugins:0.index.md","/plugins","Plugins",[],"     Supercharge Harpoon with plugins     10k parser   Pre-bundled   Parse 10k reports from the SEC\n    Learn more ->    Sheet export   Pre-bundled   Export data in sheet document    Learn more ->",{"id":55,"path":56,"dir":57,"title":58,"description":59,"keywords":60,"body":61},"content:2.plugins:1.10k-parser.md","/plugins/10k-parser","plugins","10k Parser","parse 10k statements from sec.gov",[18,24],"  10k Parser  parse 10k statements from   sec.gov  Usage   put your raw SEC statements in   ~/wsb-harpoon/raw/{ticker}/10k_{year}.xlsx  run 10kParse in wsb-harpoon  Commands   10kParse  - parses 10k statements of specific ticker",{"id":63,"path":64,"dir":57,"title":65,"description":66,"keywords":67,"body":68},"content:2.plugins:2.export-sheet.md","/plugins/export-sheet","Export sheet","Export data to .xlsx sheets",[18,24],"  Export sheet  Export data to   .xlsx  sheets  Usage   run exportSheet in wsb-harpoon  open file from   ~/wsb-harpoon/exports/  Commands   exportSheet  - export data to   .xlsx  sheets",{"id":70,"path":71,"dir":7,"title":72,"description":7,"body":73},"content:3.roadmap.md","/roadmap","Roadmap","    Roadmap     Proposed    Price plugin  Portfolio plugin  Monte carlo plugin  DCA plugin  Command chaining  Command autocomplete & history  Grep command  Aliases    In Progress    Automated tests    Done    declarative plugin SDK  Export date to sheets  Import 10k statements  Document SDK",{"id":75,"path":76,"dir":77,"title":51,"description":78,"keywords":79,"body":82},"content:4.development:0.plugins.md","/development/plugins","development","You can extend functionality of the core by writing plugins.\nWe created SDK for plugins that serves as a bridge between the\ncore and the plugin. Wsb harpoon uses npm for managing plugins, so you can upload your plugin to npm\nrepository and install it from there. If you would like to add your plugin as a pre-bundled plugin feel\nfree to contact maintainers.",[80,81],"Create plugin","SDK","  Plugins  You can extend functionality of the core by writing plugins.\nWe created   SDK  for plugins that serves as a bridge between the\ncore and the plugin. Wsb harpoon uses npm for managing plugins, so you can upload your plugin to npm\nrepository and install it from there. If you would like to add your plugin as a pre-bundled plugin feel\nfree to contact maintainers.  Create plugin   create package   npm init \n  install sdk for plugins   npm i @wsb-harpoon/tools\n  create   /dist/index.mjs     import   {definePlugin}   from   '@wsb-harpoon/tools'  ;\n   export   default   definePlugin  ({\n   // Your configuration\n   })\n  link your plugin to npm     # in plugin folder   \n   npm   link\n  link your plugin to wsb core     #in `~/wsb-harpoon/.internal` (name is defined in package.json of your plugin)   \n   npm   link   {pluginName}\n  SDK  Plugin configuration  Wsb harpoon expect that your plugin will have default export of your plugin config in   /dist/index.mjs \nYou can use   definePlugin  function from   @wsb-harpoon/tools  to create config object. It will provide you type safety\nfor your config.  name   type   string  Name of your plugin has to be unique. It will be used to identify your plugin in the core.  description   type   string  (optional)  Description of your plugin functionality  version   type   string  (optional)  Version of your plugin.  commands   type   Commands  (optional)     export   interface   Commands   {\n     [  key  :   string  ]  :   Command\n   }\n   \n   export   interface   Command   {\n     description  :   string  ,   // description of what command does\n     handler  :   (  config  :   Config  )   =>   Promise  \u003C  void  >   // function that executes command\n   }\n  Definition of you plugins commands.  beforeInstall   type   () => Promise\u003Cvoid>  (optional)  You can use this as a hook to do some actions before installation of your plugin.  afterInstall   type   () => Promise\u003Cvoid>  (optional)  You can use this as a hook to do some actions after installation of your plugin.  SDK functions  Function that are exported directly from   @wsb-harpoon/tools  writeDocument   type   (documentName: string, data: any) => Promise\u003Cvoid>  write into document  readDocument   type   (documentName: string) => Promise\u003Cany>   read and return document  listDocuments   type   () => Promise\u003Cstring[]>   list all documents  html .shiki span {color: var(--shiki-default);background: var(--shiki-default-bg);font-style: var(--shiki-default-font-style);font-weight: var(--shiki-default-font-weight);text-decoration: var(--shiki-default-text-decoration);}html.dark .shiki span {color: var(--shiki-dark);background: var(--shiki-dark-bg);font-style: var(--shiki-dark-font-style);font-weight: var(--shiki-dark-font-weight);text-decoration: var(--shiki-dark-text-decoration);}html .dark .shiki span {color: var(--shiki-dark);background: var(--shiki-dark-bg);font-style: var(--shiki-dark-font-style);font-weight: var(--shiki-dark-font-weight);text-decoration: var(--shiki-dark-text-decoration);}html .default .shiki span {color: var(--shiki-default);background: var(--shiki-default-bg);font-style: var(--shiki-default-font-style);font-weight: var(--shiki-default-font-weight);text-decoration: var(--shiki-default-text-decoration);}",{"id":84,"path":85,"dir":77,"title":86,"description":87,"keywords":88,"body":91},"content:4.development:1.core.md","/development/core","Core","This is guide for opening Pull request to the wsb harpoon monorepository.",[89,90],"Setup","Rules","  Core  This is guide for opening Pull request to the wsb harpoon monorepository.  Setup  Clone repository     git   clone   git@github.com:Mporuben/wsb-harpoon.git\n  Init project  Preferably use docker for development to avoid problems with node version or colision with your\nwsb harpoon setup that you actually use for analysis.     docker   compose   run   dev    sh   --rm\n   npm   install\n  Expose wsb-harpoon command   cd packages/core\nnpm link\n  Build project   npm run build\n  Rules  Stupid simple core  Core should handle just package management and provide simple SDK for plugins to use.\nIt should not provide any actual functionality.  Coupling  Core can't be dependent on any plugin and plugins should not be dependent on other plugins  SDK  SDK should be as simple as possible. It should provide straightforward declarative way to create plugins  html .shiki span {color: var(--shiki-default);background: var(--shiki-default-bg);font-style: var(--shiki-default-font-style);font-weight: var(--shiki-default-font-weight);text-decoration: var(--shiki-default-text-decoration);}html.dark .shiki span {color: var(--shiki-dark);background: var(--shiki-dark-bg);font-style: var(--shiki-dark-font-style);font-weight: var(--shiki-dark-font-weight);text-decoration: var(--shiki-dark-text-decoration);}html .dark .shiki span {color: var(--shiki-dark);background: var(--shiki-dark-bg);font-style: var(--shiki-dark-font-style);font-weight: var(--shiki-dark-font-weight);text-decoration: var(--shiki-dark-text-decoration);}html .default .shiki span {color: var(--shiki-default);background: var(--shiki-default-bg);font-style: var(--shiki-default-font-style);font-weight: var(--shiki-default-font-weight);text-decoration: var(--shiki-default-text-decoration);}",1699217185773]