@alibaba-group/open-code-review 1.6.3 → 1.6.5
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/README.ja-JP.md +40 -1
- package/README.ko-KR.md +40 -1
- package/README.md +40 -1
- package/README.ru-RU.md +40 -1
- package/README.zh-CN.md +40 -1
- package/package.json +7 -7
package/README.ja-JP.md
CHANGED
|
@@ -16,7 +16,7 @@
|
|
|
16
16
|
<a href="https://goreportcard.com/report/github.com/alibaba/open-code-review"><img alt="Go Report Card" src="https://goreportcard.com/badge/github.com/alibaba/open-code-review?style=flat-square" /></a>
|
|
17
17
|
<a href="https://github.com/alibaba/open-code-review/blob/main/LICENSE"><img alt="License" src="https://img.shields.io/github/license/alibaba/open-code-review?style=flat-square" /></a>
|
|
18
18
|
<a href="https://deepwiki.com/alibaba/open-code-review"><img alt="Ask DeepWiki" src="https://deepwiki.com/badge.svg" /></a>
|
|
19
|
-
<a href="https://www.bestpractices.dev/projects/13328"><img alt="OpenSSF Best Practices" src="https://
|
|
19
|
+
<a href="https://www.bestpractices.dev/projects/13328"><img alt="OpenSSF Best Practices" src="https://img.shields.io/badge/OpenSSF-Silver-4C566A?style=flat-square" /></a>
|
|
20
20
|
</p>
|
|
21
21
|
<p align="center">
|
|
22
22
|
<a href="#supported-platforms"><img alt="Windows" src="https://img.shields.io/badge/Windows-supported-blue.svg" /></a>
|
|
@@ -565,6 +565,45 @@ OCRは4層の優先度チェーンを使ってレビュールールを解決し
|
|
|
565
565
|
- 各層の中では、ルールは宣言順に評価されます — 最初にマッチしたものが採用されます。
|
|
566
566
|
- ルールファイルが存在しない場合は、何も出力せずスキップされます。
|
|
567
567
|
|
|
568
|
+
**`rule` フィールドはインラインコンテンツとファイルパスの両方をサポートします。** システムは次の順序で自動判別します:
|
|
569
|
+
|
|
570
|
+
1. 値に改行が含まれる → **インラインコンテンツ**(複数行ルールがファイルパスと見なされることはありません)。
|
|
571
|
+
2. 値が単一行で、スペースを含まず、`.md` / `.txt` / `.markdown` で終わる → **ファイルパス**。
|
|
572
|
+
- 絶対パス(`/` で始まる)はそのまま使用されます。
|
|
573
|
+
- 相対パスはプロジェクトルートで解決されます。パストラバーサル(例: `../../etc/passwd.md`)はブロックされます。見つからない場合は `[WARN]` を出力し、ルールはクリアされます(インラインへのフォールバックなし)。
|
|
574
|
+
- ファイルはバリデーションを通過する必要があります:ホワイトリスト拡張子、≤ 512 KB、シンボリックリンク解決後のターゲットもホワイトリスト拡張子であること。バリデーションに失敗した場合、ルールはクリアされます。
|
|
575
|
+
3. それ以外 → **インラインコンテンツ**。
|
|
576
|
+
|
|
577
|
+
```json
|
|
578
|
+
{
|
|
579
|
+
"rules": [
|
|
580
|
+
{
|
|
581
|
+
"path": "**/*mapper*.xml",
|
|
582
|
+
"rule": "docs/sql-rules.md"
|
|
583
|
+
},
|
|
584
|
+
{
|
|
585
|
+
"path": "**/*.java",
|
|
586
|
+
"rule": "Always check for null safety and resource leaks"
|
|
587
|
+
},
|
|
588
|
+
{
|
|
589
|
+
"path": "**/*.go",
|
|
590
|
+
"rule": "shared/go-concurrency.md"
|
|
591
|
+
},
|
|
592
|
+
{
|
|
593
|
+
"path": "**/*.py",
|
|
594
|
+
"rule": "/Users/me/team-rules/python.md"
|
|
595
|
+
}
|
|
596
|
+
]
|
|
597
|
+
}
|
|
598
|
+
```
|
|
599
|
+
|
|
600
|
+
- `docs/sql-rules.md` — 相対パス、`<project>/docs/sql-rules.md` から読み込み。
|
|
601
|
+
- `Always check for null safety…` — インライン文字列、そのまま使用。
|
|
602
|
+
- `shared/go-concurrency.md` — 相対パス、同様に解決。
|
|
603
|
+
- `/Users/me/team-rules/python.md` — 絶対パス、そのまま使用。
|
|
604
|
+
|
|
605
|
+
> 絶対パスはプロジェクト外のファイルにアクセスできますが、これは意図的な設計です。`rule.json` はメンテナが作成する信頼された入力のためです。共有ルールを共通パス(例:`/opt/company-rules/`)に置くことで、各プロジェクトへのコピーが不要になります。
|
|
606
|
+
|
|
568
607
|
### パスフィルタリング
|
|
569
608
|
|
|
570
609
|
ルールファイルでは `include` と `exclude` フィールドも使用でき、どのファイルをレビュー対象にするかを制御できます:
|
package/README.ko-KR.md
CHANGED
|
@@ -16,7 +16,7 @@
|
|
|
16
16
|
<a href="https://goreportcard.com/report/github.com/alibaba/open-code-review"><img alt="Go Report Card" src="https://goreportcard.com/badge/github.com/alibaba/open-code-review?style=flat-square" /></a>
|
|
17
17
|
<a href="https://github.com/alibaba/open-code-review/blob/main/LICENSE"><img alt="License" src="https://img.shields.io/github/license/alibaba/open-code-review?style=flat-square" /></a>
|
|
18
18
|
<a href="https://deepwiki.com/alibaba/open-code-review"><img alt="Ask DeepWiki" src="https://deepwiki.com/badge.svg" /></a>
|
|
19
|
-
<a href="https://www.bestpractices.dev/projects/13328"><img alt="OpenSSF Best Practices" src="https://
|
|
19
|
+
<a href="https://www.bestpractices.dev/projects/13328"><img alt="OpenSSF Best Practices" src="https://img.shields.io/badge/OpenSSF-Silver-4C566A?style=flat-square" /></a>
|
|
20
20
|
</p>
|
|
21
21
|
<p align="center">
|
|
22
22
|
<a href="#supported-platforms"><img alt="Windows" src="https://img.shields.io/badge/Windows-supported-blue.svg" /></a>
|
|
@@ -565,6 +565,45 @@ OCR은 네 계층의 priority chain으로 review rule을 해석합니다. 각
|
|
|
565
565
|
- 각 계층 안에서는 rule이 선언 순서대로 평가되며 첫 번째 match가 선택됩니다.
|
|
566
566
|
- rule file이 없으면 조용히 건너뜁니다.
|
|
567
567
|
|
|
568
|
+
**`rule` 필드는 인라인 콘텐츠와 파일 경로를 모두 지원합니다.** 시스템이 다음 순서로 자동 판별합니다:
|
|
569
|
+
|
|
570
|
+
1. 값에 줄바꿈이 포함된 경우 → **인라인 콘텐츠** (여러 줄 규칙은 파일 경로로 간주되지 않습니다).
|
|
571
|
+
2. 값이 한 줄이고 공백이 없으며 `.md` / `.txt` / `.markdown`으로 끝나는 경우 → **파일 경로**.
|
|
572
|
+
- 절대 경로(`/`로 시작)는 그대로 사용됩니다.
|
|
573
|
+
- 상대 경로는 프로젝트 루트에서 확인합니다. 경로 탐색(예: `../../etc/passwd.md`)은 차단됩니다. 없으면 `[WARN]`을 출력하고 규칙이 지워집니다 (인라인으로 폴백 없음).
|
|
574
|
+
- 파일은 유효성 검사를 통과해야 합니다: 허용된 확장자, ≤ 512 KB, 심볼릭 링크 해석 후 대상도 허용된 확장자여야 합니다. 검증 실패 시 규칙이 지워집니다.
|
|
575
|
+
3. 그 외의 경우 → **인라인 콘텐츠**.
|
|
576
|
+
|
|
577
|
+
```json
|
|
578
|
+
{
|
|
579
|
+
"rules": [
|
|
580
|
+
{
|
|
581
|
+
"path": "**/*mapper*.xml",
|
|
582
|
+
"rule": "docs/sql-rules.md"
|
|
583
|
+
},
|
|
584
|
+
{
|
|
585
|
+
"path": "**/*.java",
|
|
586
|
+
"rule": "Always check for null safety and resource leaks"
|
|
587
|
+
},
|
|
588
|
+
{
|
|
589
|
+
"path": "**/*.go",
|
|
590
|
+
"rule": "shared/go-concurrency.md"
|
|
591
|
+
},
|
|
592
|
+
{
|
|
593
|
+
"path": "**/*.py",
|
|
594
|
+
"rule": "/Users/me/team-rules/python.md"
|
|
595
|
+
}
|
|
596
|
+
]
|
|
597
|
+
}
|
|
598
|
+
```
|
|
599
|
+
|
|
600
|
+
- `docs/sql-rules.md` — 상대 경로, `<project>/docs/sql-rules.md`에서 로드.
|
|
601
|
+
- `Always check for null safety…` — 인라인 문자열, 그대로 사용.
|
|
602
|
+
- `shared/go-concurrency.md` — 상대 경로, 동일하게 해결.
|
|
603
|
+
- `/Users/me/team-rules/python.md` — 절대 경로, 그대로 사용.
|
|
604
|
+
|
|
605
|
+
> 절대 경로는 프로젝트 외부 파일에 접근할 수 있으며, 이는 의도된 설계입니다. `rule.json`은 프로젝트 메인테이너가 작성하는 신뢰된 입력입니다. 팀은 공유 규칙을 공통 경로(예: `/opt/company-rules/`)에 두어 각 프로젝트에 복사할 필요가 없습니다.
|
|
606
|
+
|
|
568
607
|
## Configuration Reference
|
|
569
608
|
|
|
570
609
|
Config file: `~/.opencodereview/config.json`
|
package/README.md
CHANGED
|
@@ -16,7 +16,7 @@
|
|
|
16
16
|
<a href="https://goreportcard.com/report/github.com/alibaba/open-code-review"><img alt="Go Report Card" src="https://goreportcard.com/badge/github.com/alibaba/open-code-review?style=flat-square" /></a>
|
|
17
17
|
<a href="https://github.com/alibaba/open-code-review/blob/main/LICENSE"><img alt="License" src="https://img.shields.io/github/license/alibaba/open-code-review?style=flat-square" /></a>
|
|
18
18
|
<a href="https://deepwiki.com/alibaba/open-code-review"><img alt="Ask DeepWiki" src="https://deepwiki.com/badge.svg" /></a>
|
|
19
|
-
<a href="https://www.bestpractices.dev/projects/13328"><img alt="OpenSSF Best Practices" src="https://
|
|
19
|
+
<a href="https://www.bestpractices.dev/projects/13328"><img alt="OpenSSF Best Practices" src="https://img.shields.io/badge/OpenSSF-Silver-4C566A?style=flat-square" /></a>
|
|
20
20
|
</p>
|
|
21
21
|
<p align="center">
|
|
22
22
|
<a href="#supported-platforms"><img alt="Windows" src="https://img.shields.io/badge/Windows-supported-blue.svg" /></a>
|
|
@@ -570,6 +570,45 @@ Layers 1–3 share the same JSON format:
|
|
|
570
570
|
- Within each layer, rules are evaluated in declaration order — the first match wins.
|
|
571
571
|
- If a rule file does not exist, it is silently skipped.
|
|
572
572
|
|
|
573
|
+
**The `rule` field supports both inline content and file paths.** The system auto-detects which one you mean:
|
|
574
|
+
|
|
575
|
+
1. If the value contains newlines → **inline content** (multi-line rules are never file paths).
|
|
576
|
+
2. If the value is a single line, contains no spaces, and ends with `.md` / `.txt` / `.markdown` → **file path**.
|
|
577
|
+
- Absolute paths (starting with `/`) are used directly.
|
|
578
|
+
- Relative paths are resolved against the project root. Path traversal (e.g. `../../etc/passwd.md`) is blocked. If not found, a `[WARN]` is emitted and the rule is cleared (no fallback to inline).
|
|
579
|
+
- The file must pass validation: whitelisted extension, ≤ 512 KB, and resolved symlink target must also be a whitelisted extension. If validation fails, the rule is cleared.
|
|
580
|
+
3. Otherwise → **inline content**.
|
|
581
|
+
|
|
582
|
+
```json
|
|
583
|
+
{
|
|
584
|
+
"rules": [
|
|
585
|
+
{
|
|
586
|
+
"path": "**/*mapper*.xml",
|
|
587
|
+
"rule": "docs/sql-rules.md"
|
|
588
|
+
},
|
|
589
|
+
{
|
|
590
|
+
"path": "**/*.java",
|
|
591
|
+
"rule": "Always check for null safety and resource leaks"
|
|
592
|
+
},
|
|
593
|
+
{
|
|
594
|
+
"path": "**/*.go",
|
|
595
|
+
"rule": "shared/go-concurrency.md"
|
|
596
|
+
},
|
|
597
|
+
{
|
|
598
|
+
"path": "**/*.py",
|
|
599
|
+
"rule": "/Users/me/team-rules/python.md"
|
|
600
|
+
}
|
|
601
|
+
]
|
|
602
|
+
}
|
|
603
|
+
```
|
|
604
|
+
|
|
605
|
+
- `docs/sql-rules.md` — relative path, resolved from `<project>/docs/sql-rules.md`.
|
|
606
|
+
- `Always check for null safety…` — inline string, used directly.
|
|
607
|
+
- `shared/go-concurrency.md` — relative path, same resolution.
|
|
608
|
+
- `/Users/me/team-rules/python.md` — absolute path, used directly.
|
|
609
|
+
|
|
610
|
+
> Absolute paths can access files outside the project directory — this is intentional. `rule.json` is authored by project maintainers, i.e. trusted input. Teams can store shared rules at a common path (e.g. `/opt/company-rules/`) instead of copying them into every project.
|
|
611
|
+
|
|
573
612
|
### Path Filtering
|
|
574
613
|
|
|
575
614
|
Rule files also support `include` and `exclude` fields to control which files enter the review scope:
|
package/README.ru-RU.md
CHANGED
|
@@ -16,7 +16,7 @@
|
|
|
16
16
|
<a href="https://goreportcard.com/report/github.com/alibaba/open-code-review"><img alt="Go Report Card" src="https://goreportcard.com/badge/github.com/alibaba/open-code-review?style=flat-square" /></a>
|
|
17
17
|
<a href="https://github.com/alibaba/open-code-review/blob/main/LICENSE"><img alt="License" src="https://img.shields.io/github/license/alibaba/open-code-review?style=flat-square" /></a>
|
|
18
18
|
<a href="https://deepwiki.com/alibaba/open-code-review"><img alt="Ask DeepWiki" src="https://deepwiki.com/badge.svg" /></a>
|
|
19
|
-
<a href="https://www.bestpractices.dev/projects/13328"><img alt="OpenSSF Best Practices" src="https://
|
|
19
|
+
<a href="https://www.bestpractices.dev/projects/13328"><img alt="OpenSSF Best Practices" src="https://img.shields.io/badge/OpenSSF-Silver-4C566A?style=flat-square" /></a>
|
|
20
20
|
</p>
|
|
21
21
|
<p align="center">
|
|
22
22
|
<a href="#supported-platforms"><img alt="Windows" src="https://img.shields.io/badge/Windows-supported-blue.svg" /></a>
|
|
@@ -567,6 +567,45 @@ OCR разрешает правила ревью по цепочке приор
|
|
|
567
567
|
- Внутри каждого уровня правила проверяются в порядке объявления — побеждает первое совпадение.
|
|
568
568
|
- Если файл правил не существует, он молча пропускается.
|
|
569
569
|
|
|
570
|
+
**Поле `rule` поддерживает как встроенный текст, так и пути к файлам.** Система определяет тип автоматически:
|
|
571
|
+
|
|
572
|
+
1. Если значение содержит переносы строк → **встроенный текст** (многострочные правила никогда не считаются путями).
|
|
573
|
+
2. Если значение — одна строка, без пробелов, и заканчивается на `.md` / `.txt` / `.markdown` → **путь к файлу**.
|
|
574
|
+
- Абсолютные пути (начинающиеся с `/`) используются напрямую.
|
|
575
|
+
- Относительные пути проверяются в корне проекта. Выход за пределы директории (например, `../../etc/passwd.md`) блокируется. Если не найдены — выводится `[WARN]` и правило очищается (без fallback на inline).
|
|
576
|
+
- Файл должен пройти проверку: допустимое расширение, ≤ 512 KB, цель симлинка также должна иметь допустимое расширение. При ошибке проверки правило очищается.
|
|
577
|
+
3. Иначе → **встроенный текст**.
|
|
578
|
+
|
|
579
|
+
```json
|
|
580
|
+
{
|
|
581
|
+
"rules": [
|
|
582
|
+
{
|
|
583
|
+
"path": "**/*mapper*.xml",
|
|
584
|
+
"rule": "docs/sql-rules.md"
|
|
585
|
+
},
|
|
586
|
+
{
|
|
587
|
+
"path": "**/*.java",
|
|
588
|
+
"rule": "Always check for null safety and resource leaks"
|
|
589
|
+
},
|
|
590
|
+
{
|
|
591
|
+
"path": "**/*.go",
|
|
592
|
+
"rule": "shared/go-concurrency.md"
|
|
593
|
+
},
|
|
594
|
+
{
|
|
595
|
+
"path": "**/*.py",
|
|
596
|
+
"rule": "/Users/me/team-rules/python.md"
|
|
597
|
+
}
|
|
598
|
+
]
|
|
599
|
+
}
|
|
600
|
+
```
|
|
601
|
+
|
|
602
|
+
- `docs/sql-rules.md` — относительный путь, загружается из `<project>/docs/sql-rules.md`.
|
|
603
|
+
- `Always check for null safety…` — встроенная строка, используется напрямую.
|
|
604
|
+
- `shared/go-concurrency.md` — относительный путь, аналогично.
|
|
605
|
+
- `/Users/me/team-rules/python.md` — абсолютный путь, используется напрямую.
|
|
606
|
+
|
|
607
|
+
> Абсолютные пути могут указывать на файлы вне директории проекта — это сделано намеренно. `rule.json` пишут мейнтейнеры проекта, это доверенный ввод. Команды могут хранить общие правила по единому пути (например, `/opt/company-rules/`) и не копировать их в каждый проект.
|
|
608
|
+
|
|
570
609
|
### Фильтрация путей
|
|
571
610
|
|
|
572
611
|
Файлы правил также поддерживают поля `include` и `exclude`, управляющие тем, какие файлы попадают в область ревью:
|
package/README.zh-CN.md
CHANGED
|
@@ -16,7 +16,7 @@
|
|
|
16
16
|
<a href="https://goreportcard.com/report/github.com/alibaba/open-code-review"><img alt="Go Report Card" src="https://goreportcard.com/badge/github.com/alibaba/open-code-review?style=flat-square" /></a>
|
|
17
17
|
<a href="https://github.com/alibaba/open-code-review/blob/main/LICENSE"><img alt="License" src="https://img.shields.io/github/license/alibaba/open-code-review?style=flat-square" /></a>
|
|
18
18
|
<a href="https://deepwiki.com/alibaba/open-code-review"><img alt="Ask DeepWiki" src="https://deepwiki.com/badge.svg" /></a>
|
|
19
|
-
<a href="https://www.bestpractices.dev/projects/13328"><img alt="OpenSSF Best Practices" src="https://
|
|
19
|
+
<a href="https://www.bestpractices.dev/projects/13328"><img alt="OpenSSF Best Practices" src="https://img.shields.io/badge/OpenSSF-Silver-4C566A?style=flat-square" /></a>
|
|
20
20
|
</p>
|
|
21
21
|
<p align="center">
|
|
22
22
|
<a href="#supported-platforms"><img alt="Windows" src="https://img.shields.io/badge/Windows-supported-blue.svg" /></a>
|
|
@@ -555,6 +555,45 @@ OCR 通过四层优先级链解析评审规则。每层采用首次匹配原则
|
|
|
555
555
|
- 在每一层内,规则按声明顺序评估 —— 首次匹配生效。
|
|
556
556
|
- 如果规则文件不存在,将被静默跳过。
|
|
557
557
|
|
|
558
|
+
**`rule` 字段同时支持内联内容和文件路径。**系统按以下顺序自动判断:
|
|
559
|
+
|
|
560
|
+
1. 如果值包含换行 → **内联内容**(多行规则永远不会被当作文件路径)。
|
|
561
|
+
2. 如果值是单行、不含空格、且以 `.md` / `.txt` / `.markdown` 结尾 → **文件路径**。
|
|
562
|
+
- 绝对路径(以 `/` 开头)直接使用。
|
|
563
|
+
- 相对路径在项目根目录下查找,路径穿越(如 `../../etc/passwd.md`)会被拦截。找不到则 `[WARN]` 并清空该规则(不会回退为内联)。
|
|
564
|
+
- 文件需通过安全校验:白名单扩展名、≤ 512 KB、symlink 解析后目标也必须是白名单扩展名。校验失败则清空该规则。
|
|
565
|
+
3. 否则 → **内联内容**。
|
|
566
|
+
|
|
567
|
+
```json
|
|
568
|
+
{
|
|
569
|
+
"rules": [
|
|
570
|
+
{
|
|
571
|
+
"path": "**/*mapper*.xml",
|
|
572
|
+
"rule": "docs/sql-rules.md"
|
|
573
|
+
},
|
|
574
|
+
{
|
|
575
|
+
"path": "**/*.java",
|
|
576
|
+
"rule": "始终检查空值安全和资源泄漏"
|
|
577
|
+
},
|
|
578
|
+
{
|
|
579
|
+
"path": "**/*.go",
|
|
580
|
+
"rule": "shared/go-concurrency.md"
|
|
581
|
+
},
|
|
582
|
+
{
|
|
583
|
+
"path": "**/*.py",
|
|
584
|
+
"rule": "/Users/me/team-rules/python.md"
|
|
585
|
+
}
|
|
586
|
+
]
|
|
587
|
+
}
|
|
588
|
+
```
|
|
589
|
+
|
|
590
|
+
- `docs/sql-rules.md` — 相对路径,从 `<project>/docs/sql-rules.md` 加载。
|
|
591
|
+
- `始终检查空值安全…` — 内联字符串,直接使用。
|
|
592
|
+
- `shared/go-concurrency.md` — 相对路径,同上。
|
|
593
|
+
- `/Users/me/team-rules/python.md` — 绝对路径,直接使用。
|
|
594
|
+
|
|
595
|
+
> 绝对路径可以访问项目目录之外的文件,这是有意为之的设计——`rule.json` 由项目维护者编写,属于受信输入。团队可将共享规则放在统一路径下(如 `/opt/company-rules/`),无需在各项目中复制。
|
|
596
|
+
|
|
558
597
|
### 路径过滤
|
|
559
598
|
|
|
560
599
|
规则文件同时支持 `include` 和 `exclude` 字段,用于控制哪些文件进入审查范围:
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@alibaba-group/open-code-review",
|
|
3
|
-
"version": "1.6.
|
|
3
|
+
"version": "1.6.5",
|
|
4
4
|
"description": "OpenCodeReview CLI — AI-powered code review tool",
|
|
5
5
|
"bin": {
|
|
6
6
|
"ocr": "bin/ocr.js"
|
|
@@ -28,12 +28,12 @@
|
|
|
28
28
|
"checksumPattern": "https://github.com/alibaba/open-code-review/releases/download/v{version}/sha256sum.txt"
|
|
29
29
|
},
|
|
30
30
|
"optionalDependencies": {
|
|
31
|
-
"@alibaba-group/ocr-darwin-arm64": "1.6.
|
|
32
|
-
"@alibaba-group/ocr-darwin-x64": "1.6.
|
|
33
|
-
"@alibaba-group/ocr-linux-arm64": "1.6.
|
|
34
|
-
"@alibaba-group/ocr-linux-x64": "1.6.
|
|
35
|
-
"@alibaba-group/ocr-win32-arm64": "1.6.
|
|
36
|
-
"@alibaba-group/ocr-win32-x64": "1.6.
|
|
31
|
+
"@alibaba-group/ocr-darwin-arm64": "1.6.5",
|
|
32
|
+
"@alibaba-group/ocr-darwin-x64": "1.6.5",
|
|
33
|
+
"@alibaba-group/ocr-linux-arm64": "1.6.5",
|
|
34
|
+
"@alibaba-group/ocr-linux-x64": "1.6.5",
|
|
35
|
+
"@alibaba-group/ocr-win32-arm64": "1.6.5",
|
|
36
|
+
"@alibaba-group/ocr-win32-x64": "1.6.5"
|
|
37
37
|
},
|
|
38
38
|
"engines": {
|
|
39
39
|
"node": ">=14"
|