@arkyc/ocr 2.1.1 → 2.3.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/dist/registry.mjs CHANGED
@@ -26,7 +26,9 @@ var OcrDriverFactory = class {
26
26
  apiKey: config.apiKey,
27
27
  model: config.model,
28
28
  baseUrl: config.endpoint,
29
- maxEdge: config.maxEdge
29
+ maxEdge: config.maxEdge,
30
+ timeoutMs: config.timeoutMs,
31
+ maxRetries: config.maxRetries
30
32
  });
31
33
  default: throw new Error(`Unknown OCR driver: ${config.driver}`);
32
34
  }
@@ -1 +1 @@
1
- {"version":3,"file":"registry.mjs","names":[],"sources":["../src/registry.ts"],"sourcesContent":["import type { OcrConfig, OcrDriver } from './types'\n\nimport { AnthropicOcrDriver } from './drivers/ai'\nimport { ExternalOcrDriver } from './drivers/external'\nimport { MockOcrDriver } from './drivers/mock'\nimport { TesseractOcrDriver } from './drivers/tesseract'\n\n/**\n * Selects an OCR driver from config. Call sites depend only on the\n * {@link OcrDriver} interface, so swapping `config.driver` changes behaviour\n * with no other changes.\n */\nexport class OcrDriverFactory {\n /**\n * Resolve the OCR driver named by `config`.\n *\n * @param config\n * @returns\n */\n static create(config: OcrConfig): OcrDriver {\n switch (config.driver) {\n case 'mock':\n return new MockOcrDriver()\n case 'tesseract':\n return new TesseractOcrDriver({ language: config.language })\n case 'external':\n return new ExternalOcrDriver(config)\n case 'ai':\n return new AnthropicOcrDriver({\n provider: config.aiProvider,\n accountId: config.accountId,\n apiKey: config.apiKey,\n model: config.model,\n baseUrl: config.endpoint,\n maxEdge: config.maxEdge,\n })\n default:\n throw new Error(`Unknown OCR driver: ${(config as OcrConfig).driver}`)\n }\n }\n}\n"],"mappings":";;;;;;;;;;AAYA,IAAa,mBAAb,MAA8B;;;;;;;CAO5B,OAAO,OAAO,QAA8B;EAC1C,QAAQ,OAAO,QAAf;GACE,KAAK,QACH,OAAO,IAAI,cAAc;GAC3B,KAAK,aACH,OAAO,IAAI,mBAAmB,EAAE,UAAU,OAAO,SAAS,CAAC;GAC7D,KAAK,YACH,OAAO,IAAI,kBAAkB,MAAM;GACrC,KAAK,MACH,OAAO,IAAI,mBAAmB;IAC5B,UAAU,OAAO;IACjB,WAAW,OAAO;IAClB,QAAQ,OAAO;IACf,OAAO,OAAO;IACd,SAAS,OAAO;IAChB,SAAS,OAAO;GAClB,CAAC;GACH,SACE,MAAM,IAAI,MAAM,uBAAwB,OAAqB,QAAQ;EACzE;CACF;AACF"}
1
+ {"version":3,"file":"registry.mjs","names":[],"sources":["../src/registry.ts"],"sourcesContent":["import type { OcrConfig, OcrDriver } from './types'\n\nimport { AnthropicOcrDriver } from './drivers/ai'\nimport { ExternalOcrDriver } from './drivers/external'\nimport { MockOcrDriver } from './drivers/mock'\nimport { TesseractOcrDriver } from './drivers/tesseract'\n\n/**\n * Selects an OCR driver from config. Call sites depend only on the\n * {@link OcrDriver} interface, so swapping `config.driver` changes behaviour\n * with no other changes.\n */\nexport class OcrDriverFactory {\n /**\n * Resolve the OCR driver named by `config`.\n *\n * @param config\n * @returns\n */\n static create(config: OcrConfig): OcrDriver {\n switch (config.driver) {\n case 'mock':\n return new MockOcrDriver()\n case 'tesseract':\n return new TesseractOcrDriver({ language: config.language })\n case 'external':\n return new ExternalOcrDriver(config)\n case 'ai':\n return new AnthropicOcrDriver({\n provider: config.aiProvider,\n accountId: config.accountId,\n apiKey: config.apiKey,\n model: config.model,\n baseUrl: config.endpoint,\n maxEdge: config.maxEdge,\n timeoutMs: config.timeoutMs,\n maxRetries: config.maxRetries,\n })\n default:\n throw new Error(`Unknown OCR driver: ${(config as OcrConfig).driver}`)\n }\n }\n}\n"],"mappings":";;;;;;;;;;AAYA,IAAa,mBAAb,MAA8B;;;;;;;CAO5B,OAAO,OAAO,QAA8B;EAC1C,QAAQ,OAAO,QAAf;GACE,KAAK,QACH,OAAO,IAAI,cAAc;GAC3B,KAAK,aACH,OAAO,IAAI,mBAAmB,EAAE,UAAU,OAAO,SAAS,CAAC;GAC7D,KAAK,YACH,OAAO,IAAI,kBAAkB,MAAM;GACrC,KAAK,MACH,OAAO,IAAI,mBAAmB;IAC5B,UAAU,OAAO;IACjB,WAAW,OAAO;IAClB,QAAQ,OAAO;IACf,OAAO,OAAO;IACd,SAAS,OAAO;IAChB,SAAS,OAAO;IAChB,WAAW,OAAO;IAClB,YAAY,OAAO;GACrB,CAAC;GACH,SACE,MAAM,IAAI,MAAM,uBAAwB,OAAqB,QAAQ;EACzE;CACF;AACF"}
package/dist/types.d.mts CHANGED
@@ -49,6 +49,10 @@ export interface OcrConfig {
49
49
  model?: string;
50
50
  /** Longest image edge (px) uploaded by the `ai` driver. */
51
51
  maxEdge?: number;
52
+ /** Per-attempt request timeout (ms) for the `ai` driver; large vision models may need more. */
53
+ timeoutMs?: number;
54
+ /** Retries after a timeout, network error or 429/529 for the `ai` driver. */
55
+ maxRetries?: number;
52
56
  }
53
57
  //#endregion
54
58
  //# sourceMappingURL=types.d.mts.map
@@ -1 +1 @@
1
- {"version":3,"file":"types.d.mts","names":[],"sources":["../src/types.ts"],"mappings":";;;;iBAIiB;;EAEf,OAAO;;;;;EAKP,YAAY;;EAEZ,eAAe;;EAEf;;;;;EAKA;IACE;IACA;IACA;IACA;IACA;;;;iBAKa;WACN;EACT,QAAQ,SAAS,aAAa,QAAQ;;;YAI5B;;iBAGK;EACf,QAAQ;;EAER;EACA;;EAEA;;EAEA,aAAa;;EAEb;;EAEA;;EAEA"}
1
+ {"version":3,"file":"types.d.mts","names":[],"sources":["../src/types.ts"],"mappings":";;;;iBAIiB;;EAEf,OAAO;;;;;EAKP,YAAY;;EAEZ,eAAe;;EAEf;;;;;EAKA;IACE;IACA;IACA;IACA;IACA;;;;iBAKa;WACN;EACT,QAAQ,SAAS,aAAa,QAAQ;;;YAI5B;;iBAGK;EACf,QAAQ;;EAER;EACA;;EAEA;;EAEA,aAAa;;EAEb;;EAEA;;EAEA;;EAEA;;EAEA"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@arkyc/ocr",
3
- "version": "2.1.1",
3
+ "version": "2.3.0",
4
4
  "description": "Driver-based OCR extraction",
5
5
  "license": "MIT",
6
6
  "keywords": [
@@ -37,7 +37,7 @@
37
37
  "dist"
38
38
  ],
39
39
  "dependencies": {
40
- "@arkyc/types": "^2.1.1"
40
+ "@arkyc/types": "^2.3.0"
41
41
  },
42
42
  "optionalDependencies": {
43
43
  "sharp": "^0.33.5",