{"_id":"@baturu/parts-ocr-sdk","_rev":"4-7688225142ac67445b2cb12627d2f81e","name":"@baturu/parts-ocr-sdk","dist-tags":{"latest":"1.2.11"},"versions":{"1.2.4":{"name":"@baturu/parts-ocr-sdk","version":"1.2.4","type":"module","main":"dist/parts-ocr-sdk.cjs","module":"dist/parts-ocr-sdk.esm.js","types":"dist/parts-ocr-sdk.d.ts","exports":{".":{"types":"./dist/parts-ocr-sdk.d.ts","import":"./dist/parts-ocr-sdk.esm.js","require":"./dist/parts-ocr-sdk.cjs"}},"scripts":{"dev":"vite","build":"tsc && vite build && rollup -c rollup.config.js","bump":"bump -acpt","prepublishOnly":"publint","release":"npm run build && npm run bump && npm publish","preview":"vite preview"},"devDependencies":{"@babel/core":"^7.23.7","@babel/plugin-transform-runtime":"^7.23.7","@babel/preset-env":"^7.23.8","@babel/runtime":"^7.23.8","@preact/preset-vite":"^2.7.0","@preact/signals":"^1.2.2","@rollup/plugin-babel":"^6.0.4","@types/lodash-es":"^4.17.12","@types/node":"^20.11.1","@types/react-hint":"^3.2.3","@vitejs/plugin-legacy":"^5.2.0","axios":"^1.6.5","classnames":"^2.5.1","core-js":"^3.35.0","filesize":"^10.1.0","lodash-es":"^4.17.21","preact":"^10.19.3","publint":"^0.2.7","react-use":"^17.4.3","rollup":"^4.9.5","rollup-plugin-delete":"^2.0.0","sass":"^1.69.7","scroll-into-view-if-needed":"^3.1.0","typescript":"^5.2.2","version-bump-prompt":"^6.1.0","vite":"^5.0.8","vite-plugin-css-injected-by-js":"^3.3.1","vite-plugin-dts":"^3.7.1"},"gitHead":"43d3a7df3075cc672dd2308d280faea49f152730","description":"------------------------------------------","_id":"@baturu/parts-ocr-sdk@1.2.4","_nodeVersion":"18.16.0","_npmVersion":"9.5.1","dist":{"integrity":"sha512-nfnLDkiLD9F3y5jJV4K39i0p2RO8+gpzaqdB1BNTLYx50a7ho3XhOlVd5GkecqKFiGFdMRlwqAM53z+FfEqqKw==","shasum":"f08578f518d8b36af943404a59158465d1ebda1a","tarball":"https://registry.npmjs.org/@baturu/parts-ocr-sdk/-/parts-ocr-sdk-1.2.4.tgz","fileCount":5,"unpackedSize":434541,"signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEYCIQDBNto2LVDJ8l//pw1n60GhaJ5YPPqx7ylkNV5d44PP5QIhAK6AzZqP5UTjIWaUJ6xiyi5DWLQI1WTviPGf8HYy6C3U"}]},"_npmUser":{"name":"bangz","email":"i@bangz.me"},"directories":{},"maintainers":[{"name":"lhoiwin","email":"lhoiwin@163.com"},{"name":"bangz","email":"i@bangz.me"},{"name":"btrfe","email":"btrfe@qipeipu.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/parts-ocr-sdk_1.2.4_1711012409294_0.3250052254163964"},"_hasShrinkwrap":false},"1.2.8":{"name":"@baturu/parts-ocr-sdk","version":"1.2.8","type":"module","main":"dist/parts-ocr-sdk.cjs","module":"dist/parts-ocr-sdk.esm.js","types":"dist/parts-ocr-sdk.d.ts","exports":{".":{"types":"./dist/parts-ocr-sdk.d.ts","import":"./dist/parts-ocr-sdk.esm.js","require":"./dist/parts-ocr-sdk.cjs"}},"scripts":{"dev":"vite","build":"tsc && vite build && rollup -c rollup.config.js","bump":"bump -acpt","prepublishOnly":"publint","release":"npm run build && npm run bump && npm publish","preview":"vite preview"},"devDependencies":{"@babel/core":"^7.23.7","@babel/plugin-transform-runtime":"^7.23.7","@babel/preset-env":"^7.23.8","@babel/runtime":"^7.23.8","@preact/preset-vite":"^2.7.0","@preact/signals":"^1.2.2","@rollup/plugin-babel":"^6.0.4","@types/lodash-es":"^4.17.12","@types/node":"^20.11.1","@types/react-hint":"^3.2.3","@vitejs/plugin-legacy":"^5.2.0","axios":"^1.6.5","classnames":"^2.5.1","core-js":"^3.35.0","filesize":"^10.1.0","lodash-es":"^4.17.21","preact":"^10.19.3","publint":"^0.2.7","react-use":"^17.4.3","rollup":"^4.9.5","rollup-plugin-delete":"^2.0.0","sass":"^1.69.7","scroll-into-view-if-needed":"^3.1.0","typescript":"^5.2.2","version-bump-prompt":"^6.1.0","vite":"^5.0.8","vite-plugin-css-injected-by-js":"^3.3.1","vite-plugin-dts":"^3.7.1"},"gitHead":"19e0c3ce39071011d150accf3db9f7308e9ca528","description":"------------------------------------------","_id":"@baturu/parts-ocr-sdk@1.2.8","_nodeVersion":"18.16.0","_npmVersion":"9.5.1","dist":{"integrity":"sha512-zA60nGMCA07Is0JkOmb1z+5fqzq4PjQa8G7pfOljhUVdwDnY3QaKq2CVjdfv90dLjfQ6ptEU7Xz6LVjkMOEdtQ==","shasum":"a63b563d634a471e392108936f1e768f47e184ba","tarball":"https://registry.npmjs.org/@baturu/parts-ocr-sdk/-/parts-ocr-sdk-1.2.8.tgz","fileCount":5,"unpackedSize":435283,"signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIEN8qyGm/SjLce/nRIBF8OFyzz2Jrmj2+5k6sS2WmkXgAiEA0gBZL5iMGm0YtUiH+FdsxAXK3eAX6unlzOghtzWTjyY="}]},"_npmUser":{"name":"bangz","email":"i@bangz.me"},"directories":{},"maintainers":[{"name":"lhoiwin","email":"lhoiwin@163.com"},{"name":"bangz","email":"i@bangz.me"},{"name":"btrfe","email":"btrfe@qipeipu.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/parts-ocr-sdk_1.2.8_1711016329324_0.005043701284151547"},"_hasShrinkwrap":false},"1.2.9":{"name":"@baturu/parts-ocr-sdk","version":"1.2.9","type":"module","main":"dist/parts-ocr-sdk.cjs","module":"dist/parts-ocr-sdk.esm.js","types":"dist/parts-ocr-sdk.d.ts","exports":{".":{"types":"./dist/parts-ocr-sdk.d.ts","import":"./dist/parts-ocr-sdk.esm.js","require":"./dist/parts-ocr-sdk.cjs"}},"scripts":{"dev":"vite","build":"tsc && vite build && rollup -c rollup.config.js","bump":"bump -acpt","prepublishOnly":"publint","release":"npm run build && npm run bump && npm publish","preview":"vite preview"},"devDependencies":{"@babel/core":"^7.23.7","@babel/plugin-transform-runtime":"^7.23.7","@babel/preset-env":"^7.23.8","@babel/runtime":"^7.23.8","@preact/preset-vite":"^2.7.0","@preact/signals":"^1.2.2","@rollup/plugin-babel":"^6.0.4","@types/lodash-es":"^4.17.12","@types/node":"^20.11.1","@types/react-hint":"^3.2.3","@vitejs/plugin-legacy":"^5.2.0","axios":"^1.6.5","classnames":"^2.5.1","core-js":"^3.35.0","filesize":"^10.1.0","lodash-es":"^4.17.21","preact":"^10.19.3","publint":"^0.2.7","react-use":"^17.4.3","rollup":"^4.9.5","rollup-plugin-delete":"^2.0.0","sass":"^1.69.7","scroll-into-view-if-needed":"^3.1.0","typescript":"^5.2.2","version-bump-prompt":"^6.1.0","vite":"^5.0.8","vite-plugin-css-injected-by-js":"^3.3.1","vite-plugin-dts":"^3.7.1"},"gitHead":"8e8dc0d788882a21e09fb7f7af160aad5fae9339","description":"-------------------","_id":"@baturu/parts-ocr-sdk@1.2.9","_nodeVersion":"18.16.0","_npmVersion":"9.5.1","dist":{"integrity":"sha512-ypCargcTcxZIvBamgaL6XEJxt7RhE4mF5bxb3VVPI5NkglRAxaEQvo3xf+jVu+5d+6JbocEUqkHJGOGaNOtLDA==","shasum":"2ec2f1424fe05b334e8f7d98f0501360042d0c70","tarball":"https://registry.npmjs.org/@baturu/parts-ocr-sdk/-/parts-ocr-sdk-1.2.9.tgz","fileCount":5,"unpackedSize":439349,"signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIQDTqg7KatoeB4vcV6sEAKtaVT/bcHU4hkmdFe0beKpb+QIgWgEu4oFpsKzrFFpUS/M8NdQGqydns3A719moxarA0sM="}]},"_npmUser":{"name":"bangz","email":"i@bangz.me"},"directories":{},"maintainers":[{"name":"lhoiwin","email":"lhoiwin@163.com"},{"name":"bangz","email":"i@bangz.me"},{"name":"btrfe","email":"btrfe@qipeipu.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/parts-ocr-sdk_1.2.9_1711073254398_0.804519425179923"},"_hasShrinkwrap":false},"1.2.10":{"name":"@baturu/parts-ocr-sdk","version":"1.2.10","type":"module","main":"dist/parts-ocr-sdk.cjs","module":"dist/parts-ocr-sdk.esm.js","types":"dist/parts-ocr-sdk.d.ts","exports":{".":{"types":"./dist/parts-ocr-sdk.d.ts","import":"./dist/parts-ocr-sdk.esm.js","require":"./dist/parts-ocr-sdk.cjs"}},"scripts":{"dev":"vite","build":"tsc && vite build && rollup -c rollup.config.js","bump":"bump -acpt","prepublishOnly":"publint","release":"npm run build && npm run bump && npm publish","preview":"vite preview"},"devDependencies":{"@babel/core":"^7.23.7","@babel/plugin-transform-runtime":"^7.23.7","@babel/preset-env":"^7.23.8","@babel/runtime":"^7.23.8","@preact/preset-vite":"^2.7.0","@preact/signals":"^1.2.2","@rollup/plugin-babel":"^6.0.4","@types/lodash-es":"^4.17.12","@types/node":"^20.11.1","@types/react-hint":"^3.2.3","@vitejs/plugin-legacy":"^5.2.0","axios":"^1.6.5","classnames":"^2.5.1","core-js":"^3.35.0","filesize":"^10.1.0","lodash-es":"^4.17.21","preact":"^10.19.3","publint":"^0.2.7","react-use":"^17.4.3","rollup":"^4.9.5","rollup-plugin-delete":"^2.0.0","sass":"^1.69.7","scroll-into-view-if-needed":"^3.1.0","typescript":"^5.2.2","version-bump-prompt":"^6.1.0","vite":"^5.0.8","vite-plugin-css-injected-by-js":"^3.3.1","vite-plugin-dts":"^3.7.1"},"gitHead":"23a9edb8af6ad5f785c2fbfa33aed88375aefafb","description":"-------------------","_id":"@baturu/parts-ocr-sdk@1.2.10","_nodeVersion":"18.16.0","_npmVersion":"9.5.1","dist":{"integrity":"sha512-13/X2BBBxYWVnX7ESMKpNdzSZrloxSsKtI6KhZ9G4kBrB/nURwJ6pAC7j6Xv9JFFhKVNgjeVUs7n6JhsWlupMg==","shasum":"260a8802207fdd013df1ef2ff680362cedcbcd1c","tarball":"https://registry.npmjs.org/@baturu/parts-ocr-sdk/-/parts-ocr-sdk-1.2.10.tgz","fileCount":5,"unpackedSize":439390,"signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEYCIQCjtaH3LvsLl4RRdcW7cp5o3lAXyV3xXpENDLEBCEYrqQIhAPUYF0heyC4bgkJQ1Sy9bUBkLspnFyOsc7Yu6gixpoG7"}]},"_npmUser":{"name":"bangz","email":"i@bangz.me"},"directories":{},"maintainers":[{"name":"lhoiwin","email":"lhoiwin@163.com"},{"name":"bangz","email":"i@bangz.me"},{"name":"btrfe","email":"btrfe@qipeipu.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/parts-ocr-sdk_1.2.10_1711073328768_0.25620002001243924"},"_hasShrinkwrap":false},"1.2.11":{"name":"@baturu/parts-ocr-sdk","version":"1.2.11","type":"module","main":"dist/parts-ocr-sdk.cjs","module":"dist/parts-ocr-sdk.esm.js","types":"dist/parts-ocr-sdk.d.ts","exports":{".":{"types":"./dist/parts-ocr-sdk.d.ts","import":"./dist/parts-ocr-sdk.esm.js","require":"./dist/parts-ocr-sdk.cjs"}},"scripts":{"dev":"vite","build":"tsc && vite build && rollup -c rollup.config.js","bump":"bump -acpt","prepublishOnly":"publint","release":"npm run build && npm run bump && npm publish","preview":"vite preview"},"devDependencies":{"@babel/core":"^7.23.7","@babel/plugin-transform-runtime":"^7.23.7","@babel/preset-env":"^7.23.8","@babel/runtime":"^7.23.8","@preact/preset-vite":"^2.7.0","@preact/signals":"^1.2.2","@rollup/plugin-babel":"^6.0.4","@types/lodash-es":"^4.17.12","@types/node":"^20.11.1","@types/react-hint":"^3.2.3","@vitejs/plugin-legacy":"^5.2.0","axios":"^1.6.5","classnames":"^2.5.1","core-js":"^3.35.0","filesize":"^10.1.0","lodash-es":"^4.17.21","preact":"^10.19.3","publint":"^0.2.7","react-use":"^17.4.3","rollup":"^4.9.5","rollup-plugin-delete":"^2.0.0","sass":"^1.69.7","scroll-into-view-if-needed":"^3.1.0","typescript":"^5.2.2","version-bump-prompt":"^6.1.0","vite":"^5.0.8","vite-plugin-css-injected-by-js":"^3.3.1","vite-plugin-dts":"^3.7.1"},"_id":"@baturu/parts-ocr-sdk@1.2.11","gitHead":"ef650222ca9b27b10e522a5f0238e12f3591e62d","description":"-------------------","_nodeVersion":"18.20.0","_npmVersion":"10.5.0","dist":{"integrity":"sha512-1Lhe7EyPdgXER3G5m7cDKXZf6wM8l318ZRqRDxLcd8B0aARf3kVk9ICeOfoMVi0stZ4aEF8ucSL5MYBuFfHVyw==","shasum":"8751e11bf3b821daf64b6484721239dce64bf9d3","tarball":"https://registry.npmjs.org/@baturu/parts-ocr-sdk/-/parts-ocr-sdk-1.2.11.tgz","fileCount":5,"unpackedSize":443960,"signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEQCIEnoHousXh6jjuR9XmqL6ZllDqPHd1dGL8spHsC/SazJAiBD1ZD5wdiYS+Rt+t1j1pHF59CbBC9cK9yPdPEqKNgDOw=="}]},"_npmUser":{"name":"bangz","email":"i@bangz.me"},"directories":{},"maintainers":[{"name":"lhoiwin","email":"lhoiwin@163.com"},{"name":"bangz","email":"i@bangz.me"},{"name":"btrfe","email":"btrfe@qipeipu.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/parts-ocr-sdk_1.2.11_1713441859305_0.17844740936367587"},"_hasShrinkwrap":false}},"time":{"created":"2024-03-21T09:13:29.192Z","1.2.4":"2024-03-21T09:13:29.439Z","modified":"2024-04-18T12:04:19.780Z","1.2.8":"2024-03-21T10:18:49.523Z","1.2.9":"2024-03-22T02:07:34.665Z","1.2.10":"2024-03-22T02:08:48.922Z","1.2.11":"2024-04-18T12:04:19.507Z"},"maintainers":[{"name":"lhoiwin","email":"lhoiwin@163.com"},{"name":"bangz","email":"i@bangz.me"},{"name":"btrfe","email":"btrfe@qipeipu.com"}],"description":"-------------------","readme":"# @baturu/parts-ocr-sdk\n\n-------------------\n\n> 巴图鲁手写单 OCR 识别库 📄🔍\n\n## 接入指南\n\n### Vue 2 接入用例\n\n```javascript\nimport { createOcrUploader } from '@baturu/parts-ocr-sdk';\n\n// 在 Vue 组件中调用 createOcrUploader 函数创建上传器实例\nexport default {\n  data() {\n    return {\n      instance: null, // 上传实例\n    };\n  },\n  mounted() {\n    this.instance = createOcrUploader(this.$refs.uploader, {\n      limit: 6, // 设置最大上传图片数量为 6\n      confirmText: '确认结果', // 设置确认按钮的文本\n      ocrLoadingImageUrl: 'https://abc.com/loading.gif', // 设置 OCR 识别加载中图片\n      onUpload: async (file, progress) => {\n        // 处理图片上传逻辑，并更新进度\n        const url = await uploadFile({ file }, {\n          onUploadProgress: ({ loaded, total }) => {\n            progress(loaded / total); // 更新上传进度\n          },\n        });\n        return url; // 返回 url\n      },\n      onPreview: (imgSrc, index, images) => {\n        // 预览图片，这里的 previewImage 函数需自行实现\n        previewImage(imgSrc, index, images);\n      },\n      onOcr: async imgSrc => {\n        // 处理 OCR 识别逻辑\n        const { model } = await executeOcr({ url: imgSrc });\n        return model; // 返回 OCR 识别结果的相关信息\n      },\n      onConfirm: parts => {\n        // 处理确认上传或识别结果的逻辑\n        this.$emit('confirm', parts);\n      },\n      onError: err => {\n        // 处理错误逻辑\n        this.$message.warning(err.message); // 显示错误消息\n      },\n    });\n  },\n  beforeDestroy() {\n    // 组件销毁前应同时销毁ocr实例，避免内存泄漏\n    this.instance?.destroy();\n  },\n};\n```\n\n### createOcrUploader(element, options)\n- `element`：传入要挂载到的 HTML 元素\n- `options`: 额外配置参数，详见下表，所有参数都是可选的（非必传）\n\n#### 基本参数表格\n\n| 参数 | 类型 | 描述               |\n| --- | --- |------------------|\n| `limit` | Number | 设置最大上传图片数量       |\n| `confirmText` | String | 设置确认按钮的文本        |\n| `ocrLoadingImageUrl` | String | 设置OCR识别加载中的图片URL |\n\n#### 回调函数监听器表格\n\n| 回调函数 | 类型 | 描述                                                         |\n| --- | --- |------------------------------------------------------------|\n| `onUpload` | Function(file, progress) | 图片上传时的回调函数，需要返回上传图片的URL。接受两个参数：上传的图片和进度更新函数 |\n| `onPreview` | Function(imgSrc, index, images) | 图片预览时的回调函数。接受三个参数：图片的源地址、图片在列表中的索引和整个图片列表                  |\n| `onOcr` | Function(imgSrc) | OCR识别时的回调函数，需要返回OCR识别结果的相关信息。接受一个参数：图片的源地址                 |\n| `onConfirm` | Function(parts) | 确认上传或识别结果时的回调函数。接受一个参数：确认的部分或识别结果                          |\n| `onError` | Function(err) | 错误处理回调函数。接受一个参数：错误对象                                       |\n\n注1：`progress` 函数用于更新上传进度，参数为 `0~1` 之间的小数。  \n注2：`images` 是一个字符串数组，包含了所有上传的图片的源地址。  \n\n#### onConfirm 中的 parts 回调参数数据示例\n\n```json\n[\n  { \"name\": \"右前门右后门\" },\n  { \"name\": \"左后门后杠\" },\n  { \"name\": \"左后叶右红叶\" }\n]\n```\n\n","readmeFilename":"README.md"}