{"_id":"frogress-bar","_rev":"7-7ce7ce315f54f5ee78afcb9e8dd9db7e","name":"frogress-bar","dist-tags":{"dev":"0.0.0-dev.20241224014043","latest":"0.1.0","rc":"0.1.0-rc.3"},"versions":{"0.1.0-rc.0":{"name":"frogress-bar","version":"0.1.0-rc.0","keywords":["cli","terminal","progress","react"],"author":{"name":"leegeunhyeok","email":"dev.ghlee@gmail.com"},"license":"MIT","_id":"frogress-bar@0.1.0-rc.0","maintainers":[{"name":"ghlee","email":"dev.ghlee@gmail.com"}],"homepage":"https://github.com/leegeunhyeok/frogress-bar#readme","dist":{"shasum":"c8e3ae4a036f77378d6901ab81a00190b81be622","tarball":"https://registry.npmjs.org/frogress-bar/-/frogress-bar-0.1.0-rc.0.tgz","fileCount":23,"integrity":"sha512-hq0nCoNJUheYMTqHfzLw06qWJ8ts6W05qusHONzfon7BD0zKBPG+z4YCD9KNp+KzFz3MNvbiBs+OMFSpbwxPzw==","signatures":[{"sig":"MEQCIBZSFtfWQ7KjMzA+YeK2vMI61AbEFyYP/bS/JjnEK50uAiAohH5me+7KGqXzsTx0p+czA8cNwWxUuYBsX0/PMoHkrg==","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":50372},"main":"dist/index.js","types":"types/index.d.ts","exports":{".":{"types":"./types/index.d.ts","import":"./esm/index.mjs","default":"./dist/index.js","require":"./cjs/index.cjs"}},"gitHead":"458189d46068378c48c90e673ea778b2df084965","scripts":{"lint":"eslint .","build":"node -r @swc-node/register build/index.ts && tsc -p tsconfig.build.json","start":"node -r @swc-node/register","cleanup":"rm -rf dist && rm -rf cjs && rm -rf esm && rm -rf types","prepack":"yarn lint && yarn cleanup && yarn build","release":"release-it"},"_npmUser":{"name":"ghlee","email":"dev.ghlee@gmail.com"},"prettier":"@vercel/style-guide/prettier","release-it":{"git":{"commitMessage":"chore: release v${version}"},"github":{"release":true}},"_npmVersion":"10.2.4","description":"React based progress bar for command-line/terminal applications","directories":{},"_nodeVersion":"20.11.1","dependencies":{"ink":"^3","react":"^17.0.2"},"_hasShrinkwrap":false,"packageManager":"yarn@4.2.0","devDependencies":{"eslint":"^8.56.0","esbuild":"^0.20.2","prettier":"^3.2.5","@swc/core":"^1.4.17","release-it":"^17.2.1","typescript":"^5.4.5","@types/node":"20.11.1","@types/react":"^18.3.1","@swc-node/register":"^1.9.1","@vercel/style-guide":"^6.0.0"},"_npmOperationalInternal":{"tmp":"tmp/frogress-bar_0.1.0-rc.0_1721235204964_0.7817909381966495","host":"s3://npm-registry-packages"}},"0.1.0-rc.1":{"name":"frogress-bar","version":"0.1.0-rc.1","keywords":["cli","terminal","progress","react"],"author":{"name":"leegeunhyeok","email":"dev.ghlee@gmail.com"},"license":"MIT","_id":"frogress-bar@0.1.0-rc.1","maintainers":[{"name":"ghlee","email":"dev.ghlee@gmail.com"}],"homepage":"https://github.com/leegeunhyeok/frogress-bar#readme","dist":{"shasum":"1450b2accdafb77fbdac4b2e38d5edb64f95a379","tarball":"https://registry.npmjs.org/frogress-bar/-/frogress-bar-0.1.0-rc.1.tgz","fileCount":24,"integrity":"sha512-SEUcbJEVi4kYj8YXgIKTx4phmHJqdIWpEUWebUvUVBQB0a4ckTpNeno5w2s/gUvk/R+MoGSgLHs+FG1Onn84kQ==","signatures":[{"sig":"MEQCIFghDA//TV2HHYAsLWGzRRHZ0HTtoyTrBel44aPsNqbsAiAmqKTIhx+u5WlOwQ9qtUr2nW0y3WTNLGpUtiuGfJYuzA==","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":54170},"main":"dist/index.js","types":"types/index.d.ts","exports":{".":{"types":"./types/index.d.ts","import":"./esm/index.mjs","default":"./dist/index.js","require":"./cjs/index.cjs"}},"gitHead":"a02cd2fb64089dfe41d0ebc35ecedf6b4753c9d4","scripts":{"lint":"eslint .","build":"node -r @swc-node/register build/index.ts && tsc -p tsconfig.build.json","start":"node -r @swc-node/register","cleanup":"rm -rf dist && rm -rf cjs && rm -rf esm && rm -rf types","prepack":"yarn lint && yarn cleanup && yarn build","release":"release-it"},"_npmUser":{"name":"ghlee","email":"dev.ghlee@gmail.com"},"prettier":"@vercel/style-guide/prettier","release-it":{"git":{"commitMessage":"chore: release v${version}"},"github":{"release":true}},"_npmVersion":"10.9.0","description":"React based progress bar for command-line/terminal applications","directories":{},"_nodeVersion":"22.12.0","dependencies":{"ink":"^3","react":"^17.0.2"},"_hasShrinkwrap":false,"packageManager":"yarn@4.2.0","readmeFilename":"README.md","devDependencies":{"eslint":"^8.56.0","esbuild":"^0.24.0","prettier":"^3.4.2","@swc/core":"^1.10.1","release-it":"^17.10.0","typescript":"^5.7.2","@types/node":"^22","@types/react":"^18.3.1","@swc-node/register":"^1.10.9","@vercel/style-guide":"^6.0.0"},"_npmOperationalInternal":{"tmp":"tmp/frogress-bar_0.1.0-rc.1_1734630914390_0.4771834672675528","host":"s3://npm-registry-packages-npm-production"}},"0.1.0-rc.2":{"name":"frogress-bar","version":"0.1.0-rc.2","keywords":["cli","terminal","progress","react"],"author":{"name":"leegeunhyeok","email":"dev.ghlee@gmail.com"},"license":"MIT","_id":"frogress-bar@0.1.0-rc.2","maintainers":[{"name":"ghlee","email":"dev.ghlee@gmail.com"}],"homepage":"https://github.com/leegeunhyeok/frogress-bar#readme","dist":{"shasum":"284b5953c17e932ec1e6a0d7058ee5084206d7d9","tarball":"https://registry.npmjs.org/frogress-bar/-/frogress-bar-0.1.0-rc.2.tgz","fileCount":24,"integrity":"sha512-9NLkY4Ng1Z80BnnwJEmAMv+JpaYHebPtpcaR6qwnH6dQFewG/3aSxaI3gMOMdqVV9xxQuHXO3KU/i1VWEuxj+g==","signatures":[{"sig":"MEUCIQDyYGrwRffu9mEuha4ebqcTT8XXy2DGQODorjHrhNNAHwIgBDgmQjKd3eqsguHMBwh3dpAR3ns/wZ1/vcaq3U/qR7o=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":54170},"main":"dist/index.js","types":"types/index.d.ts","exports":{".":{"types":"./types/index.d.ts","import":"./esm/index.mjs","default":"./dist/index.js","require":"./cjs/index.cjs"}},"gitHead":"4a57cdb1ed6c6462c8bd26d2e923cb1a969a52c1","scripts":{"lint":"eslint .","build":"node -r @swc-node/register build/index.ts && tsc -p tsconfig.build.json","start":"node -r @swc-node/register","cleanup":"rm -rf dist && rm -rf cjs && rm -rf esm && rm -rf types","prepack":"yarn lint && yarn cleanup && yarn build","release":"release-it"},"_npmUser":{"name":"ghlee","email":"dev.ghlee@gmail.com"},"prettier":"@vercel/style-guide/prettier","release-it":{"git":{"commitMessage":"chore: release v${version}"},"github":{"release":true}},"_npmVersion":"10.9.0","description":"React based progress bar for command-line/terminal applications","directories":{},"_nodeVersion":"22.12.0","dependencies":{"ink":"^3","react":"^17.0.2"},"_hasShrinkwrap":false,"packageManager":"yarn@4.2.0","readmeFilename":"README.md","devDependencies":{"eslint":"^8.56.0","esbuild":"^0.24.0","prettier":"^3.4.2","@swc/core":"^1.10.1","release-it":"^17.10.0","typescript":"^5.7.2","@types/node":"^22","@types/react":"^18.3.1","@swc-node/register":"^1.10.9","@vercel/style-guide":"^6.0.0"},"_npmOperationalInternal":{"tmp":"tmp/frogress-bar_0.1.0-rc.2_1734661383600_0.19193877792714487","host":"s3://npm-registry-packages-npm-production"}},"0.0.0-dev.20241224014043":{"name":"frogress-bar","version":"0.0.0-dev.20241224014043","keywords":["cli","terminal","progress","react"],"author":{"name":"leegeunhyeok","email":"dev.ghlee@gmail.com"},"license":"MIT","_id":"frogress-bar@0.0.0-dev.20241224014043","maintainers":[{"name":"ghlee","email":"dev.ghlee@gmail.com"}],"homepage":"https://github.com/leegeunhyeok/frogress-bar#readme","dist":{"shasum":"9f23c9ee0a45d3ba27e489861958ffb35c998b4d","tarball":"https://registry.npmjs.org/frogress-bar/-/frogress-bar-0.0.0-dev.20241224014043.tgz","fileCount":7,"integrity":"sha512-FFBPsuOyvtw3nNLQQ+sTxJ8VOTHV9NDD27ls+3YgK2lqOk1Lh4Y0PmmqWfp8wz3BkXBueFQ4oTR8rDj5AYwMaA==","signatures":[{"sig":"MEUCIHDRDCBTgWpSSzKDet9hDXIQMBm6BIc8JTmeL8HaIDNkAiEAg/ePXGLJ5VYm/4J+jbzs2tlKQpK0bjK9jDFBqz818J4=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":5768249},"main":"./dist/index.js","types":"./dist/index.d.ts","exports":{".":{"import":{"types":"./dist/index.d.mts","default":"./dist/index.mjs"},"require":{"types":"./dist/index.d.ts","default":"./dist/index.js"}}},"gitHead":"5c803ba745283cd4aa2ddce0282b3c984ad2ae7d","scripts":{"lint":"eslint .","build":"tsup","start":"node","cleanup":"rm -rf dist && rm -rf cjs && rm -rf esm && rm -rf types","prepack":"yarn lint && yarn cleanup && yarn build","release":"release-it"},"_npmUser":{"name":"ghlee","email":"dev.ghlee@gmail.com"},"prettier":"@vercel/style-guide/prettier","release-it":{"git":{"commitMessage":"chore: release v${version}"},"github":{"release":true}},"_npmVersion":"10.9.0","description":"React based progress bar for command-line/terminal applications","directories":{},"_nodeVersion":"22.12.0","_hasShrinkwrap":false,"packageManager":"yarn@4.2.0","readmeFilename":"README.md","devDependencies":{"ink":"^3","tsup":"^8.3.5","react":"^17.0.2","eslint":"^8.56.0","esbuild":"^0.24.0","prettier":"^3.4.2","@swc/core":"^1.10.1","release-it":"^17.10.0","typescript":"^5.7.2","@types/node":"^22","@types/react":"^18.3.1","@swc-node/register":"^1.10.9","@vercel/style-guide":"^6.0.0"},"_npmOperationalInternal":{"tmp":"tmp/frogress-bar_0.0.0-dev.20241224014043_1734972160230_0.09756590671572907","host":"s3://npm-registry-packages-npm-production"}},"0.1.0-rc.3":{"name":"frogress-bar","version":"0.1.0-rc.3","keywords":["cli","terminal","progress","react"],"author":{"name":"leegeunhyeok","email":"dev.ghlee@gmail.com"},"license":"MIT","_id":"frogress-bar@0.1.0-rc.3","maintainers":[{"name":"ghlee","email":"dev.ghlee@gmail.com"}],"homepage":"https://github.com/leegeunhyeok/frogress-bar#readme","dist":{"shasum":"acfb472e68c6187f67b65100b9a6f198783d04d6","tarball":"https://registry.npmjs.org/frogress-bar/-/frogress-bar-0.1.0-rc.3.tgz","fileCount":7,"integrity":"sha512-Tsd/ikIcf9YDqzK9mNqpxcFThZH9qIHUIBSroON+BN8DkXE1wdhbG8XeygE4dDf4yn0Qbr6DH6Ssug22AiAQEg==","signatures":[{"sig":"MEUCIQChoVaEaiI5HBhyjDiOFnA7uGzgETZScmkXP/IO9Ba/TwIgFH4R58SBwUW+tpYimZfnx7mzrZexC251nuCqZyPI59o=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":5768235},"main":"./dist/index.js","types":"./dist/index.d.ts","exports":{".":{"import":{"types":"./dist/index.d.mts","default":"./dist/index.mjs"},"require":{"types":"./dist/index.d.ts","default":"./dist/index.js"}}},"gitHead":"5c803ba745283cd4aa2ddce0282b3c984ad2ae7d","scripts":{"lint":"eslint .","build":"tsup","start":"node","cleanup":"rm -rf dist && rm -rf cjs && rm -rf esm && rm -rf types","prepack":"yarn lint && yarn cleanup && yarn build","release":"release-it"},"_npmUser":{"name":"ghlee","email":"dev.ghlee@gmail.com"},"prettier":"@vercel/style-guide/prettier","release-it":{"git":{"commitMessage":"chore: release v${version}"},"github":{"release":true}},"_npmVersion":"10.9.0","description":"React based progress bar for command-line/terminal applications","directories":{},"_nodeVersion":"22.12.0","_hasShrinkwrap":false,"packageManager":"yarn@4.2.0","readmeFilename":"README.md","devDependencies":{"ink":"^3","tsup":"^8.3.5","react":"^17.0.2","eslint":"^8.56.0","esbuild":"^0.24.0","prettier":"^3.4.2","@swc/core":"^1.10.1","release-it":"^17.10.0","typescript":"^5.7.2","@types/node":"^22","@types/react":"^18.3.1","@swc-node/register":"^1.10.9","@vercel/style-guide":"^6.0.0"},"_npmOperationalInternal":{"tmp":"tmp/frogress-bar_0.1.0-rc.3_1734976493462_0.6825874692098941","host":"s3://npm-registry-packages-npm-production"}},"0.1.0":{"name":"frogress-bar","version":"0.1.0","description":"React based progress bar for command-line/terminal applications","keywords":["cli","terminal","progress","react"],"homepage":"https://github.com/leegeunhyeok/frogress-bar#readme","license":"MIT","author":{"name":"leegeunhyeok","email":"dev.ghlee@gmail.com"},"exports":{".":{"import":{"types":"./dist/index.d.mts","default":"./dist/index.mjs"},"require":{"types":"./dist/index.d.ts","default":"./dist/index.js"}}},"main":"./dist/index.js","types":"./dist/index.d.ts","scripts":{"build":"tsup","cleanup":"rm -rf dist && rm -rf cjs && rm -rf esm && rm -rf types","lint":"eslint .","prepack":"yarn lint && yarn cleanup && yarn build","release":"release-it","start":"node"},"prettier":"@vercel/style-guide/prettier","devDependencies":{"@swc-node/register":"^1.10.9","@swc/core":"^1.10.1","@types/node":"^22","@types/react":"^18.3.1","@vercel/style-guide":"^6.0.0","esbuild":"^0.24.0","eslint":"^8.56.0","ink":"^3","prettier":"^3.4.2","react":"^17.0.2","release-it":"^17.10.0","tsup":"^8.3.5","typescript":"^5.7.2"},"packageManager":"yarn@4.2.0","release-it":{"git":{"commitMessage":"chore: release v${version}"},"github":{"release":true}},"_id":"frogress-bar@0.1.0","gitHead":"cd723a7150ca5fa93a3e048eb8b48b4c7feb6958","_nodeVersion":"22.12.0","_npmVersion":"10.9.0","dist":{"integrity":"sha512-YF3ozVDsWhbQG6zZA0cQXqUwSX0RIEjs5bsaYe8BYf4bkpKPX2KdtFDYCaw6F9ulAuwnUN2BhNQELZLIrDfm1A==","shasum":"30a0e91d8ae8915277a7fbd73c49be8d5592cd3f","tarball":"https://registry.npmjs.org/frogress-bar/-/frogress-bar-0.1.0.tgz","fileCount":7,"unpackedSize":5768230,"signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIQD/1+Q8nInMqs4GwwiyErW5ZuSWfD1sYs/ZY0EExyfU3AIgRP4i5APpvvVz3s42YK3i/JTJVY0+X/FXHqPHQezyXos="}]},"_npmUser":{"name":"ghlee","email":"dev.ghlee@gmail.com"},"directories":{},"maintainers":[{"name":"ghlee","email":"dev.ghlee@gmail.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages-npm-production","tmp":"tmp/frogress-bar_0.1.0_1734977602087_0.20600771507261872"},"_hasShrinkwrap":false}},"time":{"created":"2024-07-17T16:53:24.963Z","modified":"2024-12-23T18:13:22.745Z","0.1.0-rc.0":"2024-07-17T16:53:25.172Z","0.1.0-rc.1":"2024-12-19T17:55:14.584Z","0.1.0-rc.2":"2024-12-20T02:23:03.782Z","0.0.0-dev.20241224014043":"2024-12-23T16:42:40.570Z","0.1.0-rc.3":"2024-12-23T17:54:53.809Z","0.1.0":"2024-12-23T18:13:22.398Z"},"author":{"name":"leegeunhyeok","email":"dev.ghlee@gmail.com"},"license":"MIT","homepage":"https://github.com/leegeunhyeok/frogress-bar#readme","keywords":["cli","terminal","progress","react"],"description":"React based progress bar for command-line/terminal applications","maintainers":[{"name":"ghlee","email":"dev.ghlee@gmail.com"}],"readme":"<div align=\"center\">\n\n# frogress-bar\n\n<img alt=\"logo\" src=\"./logo.png\" width=\"300\">\n\nReact based progress bar for command-line/terminal applications\n\n</div>\n\n## Features\n\n- 🌱 Simple & Easy to use\n- 🔥 Supports single & multiple progress bar\n- 🎨 Supports 256 & Truecolor\n- 💧 Responsive size\n- ⭐️ Fully customizable\n\n## Installation\n\n```bash\n# npm\nnpm install frogress-bar\n\n# yarn\nyarn add frogress-bar\n```\n\n## Usage\n\n```ts\nimport * as Frogress from 'frogress-bar';\n\n// 1. Create new progress bar\nconst progressBar = Frogress.create({\n  total: 100,\n  template: '{label} {progress} ({percentage})',\n  placeholder: {\n    label: 'Downloader',\n  },\n});\n\n// 2. Render progress bar\nprogressBar.start({ value: 0 });\n\nawait download({\n  onProgress: (percent) => {\n    // 3. Update progress bar state\n    progressBar.update({ value: percent });\n  },\n});\n\n// 4. Unmount progress bar#\nprogressBar.stop();\n\n// 5. Remove progress bar\nFrogress.remove(progressBar);\nFrogress.removeAll();\n```\n\n![single-progress-bar](./preview/single-progress-bar.gif)\n\n<details>\n\n  <summary>Multiple progress bars</summary>\n\n[Demo](./demo/esm/multiple-progress-bars.mjs)\n\n![multiple-progress-bars](./preview/multiple-progress-bars.gif)\n\n</details>\n\n<details>\n\n  <summary>Custom colored progress bars</summary>\n\n[Demo](./demo/esm/custom-colors.mjs)\n\n![multiple-progress-bars](./preview/custom-colors.gif)\n\n</details>\n\n<details>\n\n  <summary>Re-use progress bar</summary>\n\n[Demo](./demo/esm/reuse-progress-bar.mjs)\n\n![multiple-progress-bars](./preview/reuse-progress-bar.gif)\n\n</details>\n\n## Documentation\n\n### create\n\nCreate a new `ProgressBar` instance.\nIt can be called multiple times for multiple progress bars.\n\n- Parameters\n  | Name | Type | Required |\n  |:--|:--|:--|\n  | options | `ProgressConfig` | No |\n- Return Value\n  | Type |\n  |:--|\n  | `ProgressBar` |\n\n```ts\n/* interfaces */\n\ninterface ProgressConfig {\n  /**\n   * Defaults to `0`.\n   */\n  value?: number;\n  /**\n   * Defaults to `100`.\n   */\n  total?: number;\n  /**\n   * Defaults to `50` (Depend on terminal size).\n   */\n  progressBarSize?: number;\n  /**\n   * Defaults to `'█'`.\n   */\n  activeChar?: string;\n  /**\n   * Defaults to `'░'`.\n   */\n  inactiveChar?: string;\n  /**\n   * Template string.\n   *\n   * Defaults to `'{progress}'`.\n   */\n  template?: string;\n  /**\n   * Key-Value data that replace of template's placeholders.\n   *\n   * Defaults to `{}`.\n   */\n  placeholder?: Record<string, string>;\n}\n\nfunction create(config?: ProgressConfig): ProgressBar;\n```\n\n```ts\nimport * as Frogress from 'frogress-bar';\n\nconst progressBar = Frogress.create(config);\n```\n\n- `value`: Defaults to `0`.\n- `total`: Defaults to `100`.\n- `progressBarSize`: Defaults to `50` (Depend on terminal size).\n- `activeChar`: Defaults to `'█'`.\n- `inactiveChar`: Defaults to `'░'`.\n- `template`: [Template](#template) string. Defaults to `'{progress}'`.\n- `placeholder`: Key-Value data that replace of template's placeholders. Defaults to `{}`.\n\n### remove\n\nUnmount & Remove specified `ProgressBar` from current context.\n\n- Parameters\n  | Name | Type | Required |\n  |:--|:--|:--|\n  | progressBar | `ProgressBar` | Yes |\n- Return Value\n  | Type |\n  |:--|\n  | `void` |\n\n```ts\n/* interfaces */\n\nfunction remove(progressBar: ProgressBar): void;\n```\n\n### removeAll\n\nUnmount & Remove all progress bars from current context.\n\n- Return Value\n  | Type |\n  |:--|\n  | `void` |\n\n```ts\n/* interfaces */\n\nfunction removeAll(): void;\n```\n\n### count\n\nReturns the current instance count of the progress bar.\n\n- Return Value\n  | Type |\n  |:--|\n  | `number` |\n\n```ts\n/* interfaces */\n\nfunction count(): number;\n```\n\n### setOptions\n\nApplies the options to the Frogress container.\n\n- Parameters\n  | Name | Type | Required |\n  |:--|:--|:--|\n  | options | `ContainerOptions` | Yes |\n- Return Value\n  | Type |\n  |:--|\n  | `void` |\n\n```ts\n/* interfaces */\n\ninterface ContainerOptions {\n  refreshRate: number;\n}\n\nfunction setOptions(options: ContainerOptions): void;\n```\n\n- `refreshRate`: Defaults to `50`.\n\n### ProgressBar.start\n\nRender progress bar.\n\n- Parameters\n  | Name | Type | Required |\n  |:--|:--|:--|\n  | options | `ProgressValues` | Yes |\n- Return Value\n  | Type |\n  |:--|\n  | `void` |\n\n```ts\n/* interfaces */\n\ninterface ProgressValues {\n  value: number;\n  total?: number;\n  placeholder?: Record<string, string>;\n}\n\nfunction start(values: ProgressValues): void;\n```\n\n- `value`: current progress value.\n- `total`: total progress value.\n- `placeholder`: Key-Value data that replace of template's placeholders.\n\n### ProgressBar.update\n\nSet new states and re-render progress bar.\n\n- Parameters\n  | Name | Type | Required |\n  |:--|:--|:--|\n  | options | `ProgressValues` | Yes |\n- Return Value\n  | Type |\n  |:--|\n  | `void` |\n\n```ts\n/* interfaces */\n\ninterface ProgressValues {\n  value: number;\n  total?: number;\n  placeholder?: Record<string, string>;\n}\n\nfunction update(values: ProgressValues): void;\n```\n\n- `value`: current progress value.\n- `total`: total progress value.\n- `placeholder`: Key-Value data that replace of template's placeholders.\n\n### ProgressBar.stop\n\nUnmount progress bar.\n\n> [!NOTE]  \n> If you want to exit the process, you should remove all of progress bars using [remove()](#remove) or [removeAll()](#removeall)\n\n```ts\nfunction stop(): void;\n```\n\n## Template\n\n> [!WARNING]\n> If you use reserved placeholder name, it will be overwritten to internal value of Frogress.\n\n```ts\nconst templateString = 'Template {label} {progress} | {test}';\n\nprogressBar.update({\n  placeholder: {\n    // Plain placeholder\n    label: '#1',\n    // Placeholder with color\n    test: Frogress.color('Colored!!', '#00ffff'),\n  },\n});\n\n// Preview\n// Template #1 ██████████████░░░░░░░░░░░░░░░░ | Colored!!\n```\n\n- Reserved placeholders\n  - `{progress}`: Progress bar (required)\n  - `{value}`: Current value\n  - `{total}`: Total value\n  - `{percentage}`: `current / total * 100`% value\n\n## Development\n\n```bash\n# Lint\nyarn lint\n\n# Build\nyarn build\n\n# Run demo code\nyarn start demo/{name}.ts\n```\n\n## Resources\n\n- Logo image generated by [DALL-E](https://openai.com/index/dall-e-3)\n\n## License\n\n[MIT](./LICENSE)\n","readmeFilename":"README.md"}