Skip to content

Releases: BlinkId@v7.8.0#39

Open
mariokresic wants to merge 1 commit intomainfrom
staging
Open

Releases: BlinkId@v7.8.0#39
mariokresic wants to merge 1 commit intomainfrom
staging

Conversation

@mariokresic
Copy link
Copy Markdown
Collaborator

@mariokresic mariokresic commented May 6, 2026

Summary by CodeRabbit

  • New Features

    • Added card access number extraction to document scanning results.
    • Introduced proxy configuration support for SDK initialization.
    • Added support for new document type: origin-card.
    • Expanded country and territory support list.
    • Enhanced MRZ parsing and document extraction for Egypt and Zimbabwe.
  • Chores

    • Version bumps: BlinkID 7.8.0, BlinkCard 3000.0.6, BlinkID Verify 3.20.2.
    • Updated dependencies and development tooling.
    • Added standardized lint-staged configurations across packages.

@mariokresic mariokresic self-assigned this May 6, 2026
@mariokresic mariokresic changed the title Releases: BlinkId/v7.8.0 Releases: BlinkId@v7.8.0 May 6, 2026
@coderabbitai
Copy link
Copy Markdown

coderabbitai Bot commented May 6, 2026

📝 Walkthrough

Walkthrough

This PR introduces the Ping SDK schema v1.3.0 with proxy-related boolean flags, enhances BlinkID scanning results with cardAccessNumber, expands supported document types and countries, adds lint-staged configurations across packages, and bumps versions with corresponding changelog entries.

Changes

Ping SDK v1.3.0 with Proxy Flags

Layer / File(s) Summary
Core Feature Definition
packages/analytics/src/ping/ping.sdk.init.start.ts, packages/worker-common/src/proxy-url-validator.ts
New PingSdkInitStartData fields: pingProxyEnabled and baltazarProxyEnabled (booleans). New exported utility getMicroblinkProxyPingFlags derives proxy flags from URL and license state.
Implementation & Tests
packages/worker-common/src/proxy-url-validator.test.ts
Test suite for getMicroblinkProxyPingFlags covering proxy URL presence, license unlock status, and proxy permissions scenarios. Assertion added for HTTPS_REQUIRED error code.
Worker Integration
packages/blinkcard-worker/src/BlinkCardWorker.ts, packages/blinkid-worker/src/BlinkIdWorker.ts, packages/blinkid-verify-worker/src/BlinkIdVerifyWorker.ts
Workers import getMicroblinkProxyPingFlags and spread result into init ping data at v1.3.0 schema. Replaces static payload structure with dynamic proxy flag computation.
Test Mocking Updates
packages/blinkcard-worker/src/BlinkCardWorker.initBlinkCard.test.ts, packages/blinkid-worker/src/BlinkIdWorker.initBlinkCard.test.ts
Mock for proxy-url-validator changed from static to dynamic factory; imports real module and selectively overrides validateLicenseProxyPermissions and sanitizeProxyUrls.
Test Payloads
packages/blinkcard-worker/src/BlinkCardWorker.test.ts, packages/blinkid-worker/src/BlinkIdWorker.test.ts
Ping test payloads updated to schemaVersion "1.3.0" with new pingProxyEnabled and baltazarProxyEnabled fields set to false.
Documentation
packages/blinkcard-core/docs/type-aliases/PingSdkInitStart*.md, packages/blinkcard/docs/type-aliases/PingSdkInitStart*.md, packages/blinkid-core/docs/type-aliases/PingSdkInitStart*.md, packages/blinkid-verify-core/docs/type-aliases/PingSdkInitStart*.md, packages/blinkid-verify/docs/type-aliases/PingSdkInitStart*.md, packages/blinkid/docs/type-aliases/PingSdkInitStart*.md
Type alias documentation bumped to version "1.3.0"; property documentation updated to include new baltazarProxyEnabled and pingProxyEnabled boolean fields.
Package Releases
packages/analytics/CHANGELOG.md, packages/analytics/package.json
analytics version bumped 2.0.0 → 2.0.1 with changelog entry for ping proxy flags.

BlinkID Scanning Result Enhancements

Layer / File(s) Summary
Type Definitions
packages/blinkid-wasm/src/result/FieldType.ts, packages/blinkid-wasm/src/result/classinfo/Country.ts, packages/blinkid-wasm/src/result/classinfo/DocumentType.ts, packages/blinkid-wasm/src/result/viz/VizResult.ts, packages/blinkid-wasm/src/session/BlinkIdScanningResult.ts
Added optional cardAccessNumber?: StringResult; expanded Country literals and removed virgin-islands-us; added origin-card to DocumentType; removed deprecated fields (parentsLastName2, parentsFirstName2, chinPermanentExpiry) and added new ones (workRestriction, socialSecurityStatus, etc.) to FieldType.
Documentation
packages/blinkid-core/docs/type-aliases/*, packages/blinkid-wasm/docs/type-aliases/*, packages/blinkid/docs/type-aliases/*
Type alias docs updated: BlinkIdScanningResult, VizResult, Country, DocumentType, and FieldType document the new and expanded properties.
READMEs & Changelogs
packages/blinkid/README.md, packages/blinkid-wasm/CHANGELOG.md, packages/blinkid-core/CHANGELOG.md
README link to supported documents added; changelog entries for v7.8.0 detailing cardAccessNumber exposure, Country/DocumentType/FieldType updates, and MRZ parsing improvements.
Package Releases
packages/blinkid-wasm/package.json, packages/blinkid-core/package.json, packages/blinkid-ux-manager/package.json, packages/blinkid-worker/package.json, packages/blinkid/package.json, packages/blinkid-verify-wasm/package.json, packages/blinkid-verify-core/package.json, packages/blinkid-verify-ux-manager/package.json, packages/blinkid-verify-worker/package.json, packages/blinkid-verify/package.json
Version bumps: blinkid suite 7.7.4 → 7.8.0; blinkid-verify suite 3.20.1 → 3.20.2; blinkcard suite 3000.0.5 → 3000.0.6. Corresponding CHANGELOG entries added.

Lint-staged Configuration & Build Tool Updates

Layer / File(s) Summary
Lint-staged Configs
packages/blinkcard-wasm/lint-staged.config.mjs, packages/blinkid-verify-wasm/lint-staged.config.mjs, packages/blinkid-wasm/lint-staged.config.mjs, packages/core-common/lint-staged.config.mjs, packages/feedback-stabilizer/lint-staged.config.mjs, packages/shared-components/lint-staged.config.mjs, packages/test-utils/lint-staged.config.mjs, packages/ux-common/lint-staged.config.mjs, packages/wasm-common/lint-staged.config.mjs, packages/worker-common/lint-staged.config.mjs
New files exporting default config with three rules: ESLint (max-warnings=0) for JS/TS, TypeScript compiler checks (tsc) for TS, and Prettier formatting for source and style files.
Package Dependencies
package.json, packages/analytics/package.json, packages/blinkcard-wasm/package.json, packages/blinkid-verify-wasm/package.json, packages/camera-manager/package.json, packages/shared-components/package.json
Prettier devDependency reorganized: removed from root and most packages; blinkid-verify-wasm adds @vitest/browser-playwright, arktype, and dotenv-cli; blinkcard-wasm adds dotenv-cli and prettier-plugin-jsdoc.
OSS Dependencies
docs/blinkid/OssDependencies.md
gtest version bumped 1.14.9 → 1.14.10; C++ build flavors updated 1 → 3.

Sequence Diagram(s)

sequenceDiagram
    participant Worker as BlinkCard/BlinkID Worker
    participant PingHelper as getMicroblinkProxyPingFlags
    participant License as License Unlock Result
    participant Ping as Ping SDK (v1.3.0)
    
    Worker->>Worker: initBlinkCard/BlinkID
    Worker->>Worker: Obtain proxyUrl & licenseResult
    Worker->>PingHelper: getMicroblinkProxyPingFlags(proxyUrl, license)
    PingHelper->>License: Check allowPingProxy, allowBaltazarProxy, hasPing
    PingHelper-->>Worker: {pingProxyEnabled, baltazarProxyEnabled}
    Worker->>Ping: Spread flags into init pinglet data
    Ping->>Ping: schemaVersion: "1.3.0"
    Note over Ping: data includes proxy flags + metadata
Loading

Estimated code review effort

🎯 3 (Moderate) | ⏱️ ~25 minutes

The PR spans multiple packages with a mix of type/interface additions, documentation updates, and new utility functions. The core logic is straightforward (proxy flag computation and integration), but the breadth of changes across packages, repetitive lint-staged config additions, and numerous version/changelog bumps require careful verification of consistency and dependencies.

Possibly related PRs

  • microblink/web-sdks#37: Predecessor changes to Ping SDK schema; this PR extends v1.2.0→v1.3.0 with new proxy-flag fields on top of earlier foundational schema work.

Suggested reviewers

  • ivancuric

Poem

🐰 A proxy hops through the ping, so fleet,
New cardAccess numbers make scanning complete,
lint-staged guards each package with care,
Version bumps bloom—the future's fair!
thump thump

🚥 Pre-merge checks | ✅ 5
✅ Passed checks (5 passed)
Check name Status Explanation
Description Check ✅ Passed Check skipped - CodeRabbit’s high-level summary is enabled.
Title check ✅ Passed The PR title 'Releases: BlinkId@v7.8.0' clearly identifies the primary change as a release bump for BlinkId to version 7.8.0, which is well-supported by the comprehensive set of version bumps across multiple BlinkId-related packages throughout the changeset.
Docstring Coverage ✅ Passed Docstring coverage is 100.00% which is sufficient. The required threshold is 80.00%.
Linked Issues check ✅ Passed Check skipped because no linked issues were found for this pull request.
Out of Scope Changes check ✅ Passed Check skipped because no linked issues were found for this pull request.

✏️ Tip: You can configure your own custom pre-merge checks in the settings.

✨ Finishing Touches
📝 Generate docstrings
  • Create stacked PR
  • Commit on current branch
🧪 Generate unit tests (beta)
  • Create PR with unit tests
  • Commit unit tests in branch staging

Tip

💬 Introducing Slack Agent: The best way for teams to turn conversations into code.

Slack Agent is built on CodeRabbit's deep understanding of your code, so your team can collaborate across the entire SDLC without losing context.

  • Generate code and open pull requests
  • Plan features and break down work
  • Investigate incidents and troubleshoot customer tickets together
  • Automate recurring tasks and respond to alerts with triggers
  • Summarize progress and report instantly

Built for teams:

  • Shared memory across your entire org—no repeating context
  • Per-thread sandboxes to safely plan and execute work
  • Governance built-in—scoped access, auditability, and budget controls

One agent for your entire SDLC. Right inside Slack.

👉 Get started


Thanks for using CodeRabbit! It's free for OSS, and your support helps us grow. If you like it, consider giving us a shout-out.

❤️ Share

Comment @coderabbitai help to get the list of available commands and usage tips.

Copy link
Copy Markdown

@coderabbitai coderabbitai Bot left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Actionable comments posted: 3

🧹 Nitpick comments (1)
packages/blinkid-wasm/lint-staged.config.mjs (1)

2-2: 💤 Low value

ESLint runs project-wide on every commit, not just on staged files.

Returning a string from the function (ignoring the staged-files argument) causes lint-staged to invoke ESLint without any file arguments, which lints the entire project. This is probably intentional to catch cross-file regressions — but it can make pre-commit noticeably slower as the project grows. The prettier entry on line 6, by contrast, correctly receives only the staged files.

If project-wide linting is the desired behaviour, a brief comment would clarify intent; otherwise, use the staged filenames:

♻️ Option A — pass staged files (faster, mirrors the prettier entry)
-  "*.{js,cjs,mjs,jsx,ts,mts,tsx}": [() => "eslint --max-warnings=0"],
+  "*.{js,cjs,mjs,jsx,ts,mts,tsx}": ["eslint --max-warnings=0"],
♻️ Option B — keep project-wide but document why
-  "*.{js,cjs,mjs,jsx,ts,mts,tsx}": [() => "eslint --max-warnings=0"],
+  // Function ignores staged filenames intentionally: runs project-wide to catch cross-file regressions.
+  "*.{js,cjs,mjs,jsx,ts,mts,tsx}": [() => "eslint --max-warnings=0"],
🤖 Prompt for AI Agents
Verify each finding against current code. Fix only still-valid issues, skip the
rest with a brief reason, keep changes minimal, and validate.

In `@packages/blinkid-wasm/lint-staged.config.mjs` at line 2, The lint-staged
entry for the glob "*.{js,cjs,mjs,jsx,ts,mts,tsx}" currently returns a constant
string from the arrow function (() => "eslint --max-warnings=0") which causes
ESLint to run project-wide; either change that function to accept the
staged-files argument and pass only those files to ESLint (e.g., (stagedFiles)
=> `eslint --max-warnings=0 ${stagedFiles.join(' ')}`) to mirror the prettier
entry and speed up commits, or retain the project-wide behavior but replace the
arrow function with a clear inline comment explaining the intentional
project-wide linting so intent is documented.
🤖 Prompt for all review comments with AI agents
Verify each finding against current code. Fix only still-valid issues, skip the
rest with a brief reason, keep changes minimal, and validate.

Inline comments:
In `@docs/blinkid/OssDependencies.md`:
- Line 155: The table row referencing
"gtest/1.14.10@microblink/main#aeea6cc884a4400edf8084592f7b23ec" uses a generic
"[Link]" which triggers MD059; replace the generic link text with descriptive
text (e.g., "Google Test repository" or "gtest Bitbucket repo") so the markdown
becomes [Google Test
repository](https://bitbucket.org/microblink/core-google-test/src), keeping the
URL unchanged and preserving the existing table cell content and meaning.

In `@packages/blinkid-wasm/CHANGELOG.md`:
- Line 7: Fix the malformed list marker in the changelog entry by replacing the
double marker "- - **Results:**" with a single list marker "- **Results:**" so
the line reads "- **Results:** `BlinkIdScanningResult` and `VizResult` now
expose optional `cardAccessNumber` (`StringResult`). Update the line containing
the "Results:" text (referenced by `BlinkIdScanningResult` and `VizResult`) to
remove the extra hyphen.

In `@packages/worker-common/src/proxy-url-validator.test.ts`:
- Around line 311-318: The test "returns baltazar false for offline license even
with URL and allowBaltazarProxy" currently overrides baseLicense with
allowBaltazarProxy: false so it never exercises the intended scenario; update
the test that calls getMicroblinkProxyPingFlags to use baseLicense without
overriding allowBaltazarProxy (or explicitly set allowBaltazarProxy: true) so
the assertion about baltazarProxyEnabled: false for an offline license with
allowBaltazarProxy true is actually verified; keep the expected result ({
pingProxyEnabled: true, baltazarProxyEnabled: false }) and adjust only the
license input used in that it(...) block.

---

Nitpick comments:
In `@packages/blinkid-wasm/lint-staged.config.mjs`:
- Line 2: The lint-staged entry for the glob "*.{js,cjs,mjs,jsx,ts,mts,tsx}"
currently returns a constant string from the arrow function (() => "eslint
--max-warnings=0") which causes ESLint to run project-wide; either change that
function to accept the staged-files argument and pass only those files to ESLint
(e.g., (stagedFiles) => `eslint --max-warnings=0 ${stagedFiles.join(' ')}`) to
mirror the prettier entry and speed up commits, or retain the project-wide
behavior but replace the arrow function with a clear inline comment explaining
the intentional project-wide linting so intent is documented.
🪄 Autofix (Beta)

Fix all unresolved CodeRabbit comments on this PR:

  • Push a commit to this branch (recommended)
  • Create a new PR with the fixes

ℹ️ Review info
⚙️ Run configuration

Configuration used: defaults

Review profile: CHILL

Plan: Pro

Run ID: 3eb6a1e7-4118-458f-a5bb-630ebc2a6f6e

📥 Commits

Reviewing files that changed from the base of the PR and between 8105da4 and ee03050.

⛔ Files ignored due to path filters (30)
  • packages/blinkcard-wasm/dist/advanced-threads/BlinkCardModule.js is excluded by !**/dist/**
  • packages/blinkcard-wasm/dist/advanced-threads/BlinkCardModule.wasm is excluded by !**/dist/**, !**/*.wasm
  • packages/blinkcard-wasm/dist/advanced/BlinkCardModule.js is excluded by !**/dist/**
  • packages/blinkcard-wasm/dist/advanced/BlinkCardModule.wasm is excluded by !**/dist/**, !**/*.wasm
  • packages/blinkcard-wasm/dist/basic/BlinkCardModule.js is excluded by !**/dist/**
  • packages/blinkcard-wasm/dist/basic/BlinkCardModule.wasm is excluded by !**/dist/**, !**/*.wasm
  • packages/blinkcard-wasm/dist/size-manifest.json is excluded by !**/dist/**
  • packages/blinkid-verify-wasm/dist/advanced-threads/BlinkIdVerifyModule.wasm is excluded by !**/dist/**, !**/*.wasm
  • packages/blinkid-verify-wasm/dist/advanced/BlinkIdVerifyModule.wasm is excluded by !**/dist/**, !**/*.wasm
  • packages/blinkid-verify-wasm/dist/size-manifest.json is excluded by !**/dist/**
  • packages/blinkid-wasm/dist/full/advanced-threads/BlinkIdModule.data is excluded by !**/dist/**
  • packages/blinkid-wasm/dist/full/advanced-threads/BlinkIdModule.js is excluded by !**/dist/**
  • packages/blinkid-wasm/dist/full/advanced-threads/BlinkIdModule.wasm is excluded by !**/dist/**, !**/*.wasm
  • packages/blinkid-wasm/dist/full/advanced/BlinkIdModule.data is excluded by !**/dist/**
  • packages/blinkid-wasm/dist/full/advanced/BlinkIdModule.js is excluded by !**/dist/**
  • packages/blinkid-wasm/dist/full/advanced/BlinkIdModule.wasm is excluded by !**/dist/**, !**/*.wasm
  • packages/blinkid-wasm/dist/full/basic/BlinkIdModule.data is excluded by !**/dist/**
  • packages/blinkid-wasm/dist/full/basic/BlinkIdModule.js is excluded by !**/dist/**
  • packages/blinkid-wasm/dist/full/basic/BlinkIdModule.wasm is excluded by !**/dist/**, !**/*.wasm
  • packages/blinkid-wasm/dist/lightweight/advanced-threads/BlinkIdModule.data is excluded by !**/dist/**
  • packages/blinkid-wasm/dist/lightweight/advanced-threads/BlinkIdModule.js is excluded by !**/dist/**
  • packages/blinkid-wasm/dist/lightweight/advanced-threads/BlinkIdModule.wasm is excluded by !**/dist/**, !**/*.wasm
  • packages/blinkid-wasm/dist/lightweight/advanced/BlinkIdModule.data is excluded by !**/dist/**
  • packages/blinkid-wasm/dist/lightweight/advanced/BlinkIdModule.js is excluded by !**/dist/**
  • packages/blinkid-wasm/dist/lightweight/advanced/BlinkIdModule.wasm is excluded by !**/dist/**, !**/*.wasm
  • packages/blinkid-wasm/dist/lightweight/basic/BlinkIdModule.data is excluded by !**/dist/**
  • packages/blinkid-wasm/dist/lightweight/basic/BlinkIdModule.js is excluded by !**/dist/**
  • packages/blinkid-wasm/dist/lightweight/basic/BlinkIdModule.wasm is excluded by !**/dist/**, !**/*.wasm
  • packages/blinkid-wasm/dist/size-manifest.json is excluded by !**/dist/**
  • pnpm-lock.yaml is excluded by !**/pnpm-lock.yaml
📒 Files selected for processing (74)
  • docs/blinkcard/OssDependencies.md
  • docs/blinkid-verify/OssDependencies.md
  • docs/blinkid/OssDependencies.md
  • docs/blinkid/ResultFields.md
  • docs/blinkid/SupportedDocuments.md
  • package.json
  • packages/analytics/package.json
  • packages/analytics/src/ping/ping.sdk.init.start.ts
  • packages/blinkcard-core/docs/type-aliases/PingSdkInitStart.md
  • packages/blinkcard-core/docs/type-aliases/PingSdkInitStartData.md
  • packages/blinkcard-wasm/lint-staged.config.mjs
  • packages/blinkcard-wasm/package.json
  • packages/blinkcard-worker/src/BlinkCardWorker.initBlinkCard.test.ts
  • packages/blinkcard-worker/src/BlinkCardWorker.test.ts
  • packages/blinkcard-worker/src/BlinkCardWorker.ts
  • packages/blinkcard/docs/type-aliases/PingSdkInitStart.md
  • packages/blinkcard/docs/type-aliases/PingSdkInitStartData.md
  • packages/blinkid-core/CHANGELOG.md
  • packages/blinkid-core/docs/type-aliases/BlinkIdScanningResult.md
  • packages/blinkid-core/docs/type-aliases/Country.md
  • packages/blinkid-core/docs/type-aliases/DocumentType.md
  • packages/blinkid-core/docs/type-aliases/FieldType.md
  • packages/blinkid-core/docs/type-aliases/PingSdkInitStart.md
  • packages/blinkid-core/docs/type-aliases/PingSdkInitStartData.md
  • packages/blinkid-core/docs/type-aliases/VizResult.md
  • packages/blinkid-core/package.json
  • packages/blinkid-ux-manager/CHANGELOG.md
  • packages/blinkid-ux-manager/package.json
  • packages/blinkid-verify-core/docs/type-aliases/PingSdkInitStart.md
  • packages/blinkid-verify-core/docs/type-aliases/PingSdkInitStartData.md
  • packages/blinkid-verify-wasm/lint-staged.config.mjs
  • packages/blinkid-verify-wasm/package.json
  • packages/blinkid-verify-worker/src/BlinkIdVerifyWorker.ts
  • packages/blinkid-verify/docs/type-aliases/PingSdkInitStart.md
  • packages/blinkid-verify/docs/type-aliases/PingSdkInitStartData.md
  • packages/blinkid-wasm/CHANGELOG.md
  • packages/blinkid-wasm/docs/type-aliases/BlinkIdScanningResult.md
  • packages/blinkid-wasm/docs/type-aliases/Country.md
  • packages/blinkid-wasm/docs/type-aliases/DocumentType.md
  • packages/blinkid-wasm/docs/type-aliases/FieldType.md
  • packages/blinkid-wasm/docs/type-aliases/VizResult.md
  • packages/blinkid-wasm/lint-staged.config.mjs
  • packages/blinkid-wasm/package.json
  • packages/blinkid-wasm/src/result/FieldType.ts
  • packages/blinkid-wasm/src/result/classinfo/Country.ts
  • packages/blinkid-wasm/src/result/classinfo/DocumentType.ts
  • packages/blinkid-wasm/src/result/viz/VizResult.ts
  • packages/blinkid-wasm/src/session/BlinkIdScanningResult.ts
  • packages/blinkid-worker/CHANGELOG.md
  • packages/blinkid-worker/package.json
  • packages/blinkid-worker/src/BlinkIdWorker.initBlinkId.test.ts
  • packages/blinkid-worker/src/BlinkIdWorker.test.ts
  • packages/blinkid-worker/src/BlinkIdWorker.ts
  • packages/blinkid/CHANGELOG.md
  • packages/blinkid/README.md
  • packages/blinkid/docs/type-aliases/BlinkIdScanningResult.md
  • packages/blinkid/docs/type-aliases/Country.md
  • packages/blinkid/docs/type-aliases/DocumentType.md
  • packages/blinkid/docs/type-aliases/FieldType.md
  • packages/blinkid/docs/type-aliases/PingSdkInitStart.md
  • packages/blinkid/docs/type-aliases/PingSdkInitStartData.md
  • packages/blinkid/docs/type-aliases/VizResult.md
  • packages/blinkid/package.json
  • packages/camera-manager/package.json
  • packages/core-common/lint-staged.config.mjs
  • packages/feedback-stabilizer/lint-staged.config.mjs
  • packages/shared-components/lint-staged.config.mjs
  • packages/shared-components/package.json
  • packages/test-utils/lint-staged.config.mjs
  • packages/ux-common/lint-staged.config.mjs
  • packages/wasm-common/lint-staged.config.mjs
  • packages/worker-common/lint-staged.config.mjs
  • packages/worker-common/src/proxy-url-validator.test.ts
  • packages/worker-common/src/proxy-url-validator.ts
💤 Files with no reviewable changes (5)
  • packages/shared-components/package.json
  • packages/blinkcard-wasm/package.json
  • packages/blinkid-verify-wasm/package.json
  • packages/analytics/package.json
  • packages/camera-manager/package.json

| err/1.0.2@microblink/main#c37bea8eb2a49b4f46fdd47f028d144d | Boost Software License | [Link](https://github.com/microblink/err) | err - yet another take on C++ error handling |
| functionoid/1.0.1@microblink/main#a63c389de8e94c11f18c62430bb3aa1f | Boost Software License, Version 1.0 | [Link](https://github.com/microblink/functionoid) | a complete C++17 rewrite of boost/std::function |
| gtest/1.14.9@microblink/main#92cbac29cb2870655027eb912cd72358 | BSD 3-Clause | [Link](https://bitbucket.org/microblink/core-google-test/src) | Google's C++ test framework |
| gtest/1.14.10@microblink/main#aeea6cc884a4400edf8084592f7b23ec | BSD 3-Clause | [Link](https://bitbucket.org/microblink/core-google-test/src) | Google's C++ test framework |
Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

⚠️ Potential issue | 🟡 Minor | ⚡ Quick win

Use descriptive link text for the gtest URL.

Line 155 uses generic [Link], which triggers MD059 and reduces accessibility/readability in docs.

Suggested doc fix
-| gtest/1.14.10@microblink/main#aeea6cc884a4400edf8084592f7b23ec | BSD 3-Clause | [Link](https://bitbucket.org/microblink/core-google-test/src) | Google's C++ test framework |
+| gtest/1.14.10@microblink/main#aeea6cc884a4400edf8084592f7b23ec | BSD 3-Clause | [core-google-test](https://bitbucket.org/microblink/core-google-test/src) | Google's C++ test framework |
📝 Committable suggestion

‼️ IMPORTANT
Carefully review the code before committing. Ensure that it accurately replaces the highlighted code, contains no missing lines, and has no issues with indentation. Thoroughly test & benchmark the code to ensure it meets the requirements.

Suggested change
| gtest/1.14.10@microblink/main#aeea6cc884a4400edf8084592f7b23ec | BSD 3-Clause | [Link](https://bitbucket.org/microblink/core-google-test/src) | Google's C++ test framework |
| gtest/1.14.10@microblink/main#aeea6cc884a4400edf8084592f7b23ec | BSD 3-Clause | [core-google-test](https://bitbucket.org/microblink/core-google-test/src) | Google's C++ test framework |
🧰 Tools
🪛 markdownlint-cli2 (0.22.1)

[warning] 155-155: Link text should be descriptive

(MD059, descriptive-link-text)

🤖 Prompt for AI Agents
Verify each finding against current code. Fix only still-valid issues, skip the
rest with a brief reason, keep changes minimal, and validate.

In `@docs/blinkid/OssDependencies.md` at line 155, The table row referencing
"gtest/1.14.10@microblink/main#aeea6cc884a4400edf8084592f7b23ec" uses a generic
"[Link]" which triggers MD059; replace the generic link text with descriptive
text (e.g., "Google Test repository" or "gtest Bitbucket repo") so the markdown
becomes [Google Test
repository](https://bitbucket.org/microblink/core-google-test/src), keeping the
URL unchanged and preserving the existing table cell content and meaning.


### Minor Changes

- - **Results:** `BlinkIdScanningResult` and `VizResult` now expose optional `cardAccessNumber` (`StringResult`).
Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

⚠️ Potential issue | 🟡 Minor | ⚡ Quick win

Fix malformed bullet marker in 7.8.0 notes.

Line 7 currently has - - **Results:**, which renders as an unintended nested marker. Use a single list marker.

Suggested fix
-- - **Results:** `BlinkIdScanningResult` and `VizResult` now expose optional `cardAccessNumber` (`StringResult`).
+- **Results:** `BlinkIdScanningResult` and `VizResult` now expose optional `cardAccessNumber` (`StringResult`).
📝 Committable suggestion

‼️ IMPORTANT
Carefully review the code before committing. Ensure that it accurately replaces the highlighted code, contains no missing lines, and has no issues with indentation. Thoroughly test & benchmark the code to ensure it meets the requirements.

Suggested change
- - **Results:** `BlinkIdScanningResult` and `VizResult` now expose optional `cardAccessNumber` (`StringResult`).
- **Results:** `BlinkIdScanningResult` and `VizResult` now expose optional `cardAccessNumber` (`StringResult`).
🤖 Prompt for AI Agents
Verify each finding against current code. Fix only still-valid issues, skip the
rest with a brief reason, keep changes minimal, and validate.

In `@packages/blinkid-wasm/CHANGELOG.md` at line 7, Fix the malformed list marker
in the changelog entry by replacing the double marker "- - **Results:**" with a
single list marker "- **Results:**" so the line reads "- **Results:**
`BlinkIdScanningResult` and `VizResult` now expose optional `cardAccessNumber`
(`StringResult`). Update the line containing the "Results:" text (referenced by
`BlinkIdScanningResult` and `VizResult`) to remove the extra hyphen.

Comment on lines +311 to +318
it("returns baltazar false for offline license even with URL and allowBaltazarProxy", () => {
expect(
getMicroblinkProxyPingFlags("https://p.example", {
...baseLicense,
allowBaltazarProxy: false,
}),
).toEqual({ pingProxyEnabled: true, baltazarProxyEnabled: false });
});
Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

⚠️ Potential issue | 🟡 Minor | ⚡ Quick win

Misleading test name — the asserted scenario is never actually exercised.

The description says "even with URL and allowBaltazarProxy" (implying allowBaltazarProxy: true), but the test overrides it to false. As a result, the intended invariant — that an offline license with allowBaltazarProxy: true still returns baltazarProxyEnabled: false — is never verified.

🛠️ Proposed fix — use baseLicense without the override
-    it("returns baltazar false for offline license even with URL and allowBaltazarProxy", () => {
+    it("returns baltazar false for offline license even with URL and allowBaltazarProxy true", () => {
       expect(
         getMicroblinkProxyPingFlags("https://p.example", {
           ...baseLicense,
-          allowBaltazarProxy: false,
+          // allowBaltazarProxy stays true (from baseLicense); offline license should still yield false
         }),
       ).toEqual({ pingProxyEnabled: true, baltazarProxyEnabled: false });
     });
📝 Committable suggestion

‼️ IMPORTANT
Carefully review the code before committing. Ensure that it accurately replaces the highlighted code, contains no missing lines, and has no issues with indentation. Thoroughly test & benchmark the code to ensure it meets the requirements.

Suggested change
it("returns baltazar false for offline license even with URL and allowBaltazarProxy", () => {
expect(
getMicroblinkProxyPingFlags("https://p.example", {
...baseLicense,
allowBaltazarProxy: false,
}),
).toEqual({ pingProxyEnabled: true, baltazarProxyEnabled: false });
});
it("returns baltazar false for offline license even with URL and allowBaltazarProxy true", () => {
expect(
getMicroblinkProxyPingFlags("https://p.example", {
...baseLicense,
// allowBaltazarProxy stays true (from baseLicense); offline license should still yield false
}),
).toEqual({ pingProxyEnabled: true, baltazarProxyEnabled: false });
});
🤖 Prompt for AI Agents
Verify each finding against current code. Fix only still-valid issues, skip the
rest with a brief reason, keep changes minimal, and validate.

In `@packages/worker-common/src/proxy-url-validator.test.ts` around lines 311 -
318, The test "returns baltazar false for offline license even with URL and
allowBaltazarProxy" currently overrides baseLicense with allowBaltazarProxy:
false so it never exercises the intended scenario; update the test that calls
getMicroblinkProxyPingFlags to use baseLicense without overriding
allowBaltazarProxy (or explicitly set allowBaltazarProxy: true) so the assertion
about baltazarProxyEnabled: false for an offline license with allowBaltazarProxy
true is actually verified; keep the expected result ({ pingProxyEnabled: true,
baltazarProxyEnabled: false }) and adjust only the license input used in that
it(...) block.

Copy link
Copy Markdown

@coderabbitai coderabbitai Bot left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Actionable comments posted: 3

🤖 Prompt for all review comments with AI agents
Verify each finding against current code. Fix only still-valid issues, skip the
rest with a brief reason, keep changes minimal, and validate.

Inline comments:
In `@packages/blinkid-core/docs/type-aliases/Country.md`:
- Line 9: Fix the typo in the Country string literal by updating the generated
TypeScript source (packages/blinkid-wasm/src/result/classinfo/Country.ts) where
the Country type/array contains "saint-helena-ascension-and-tristian-da-cunha"
and change it to "saint-helena-ascension-and-tristan-da-cunha"; before changing,
confirm with the backend/WASM layer whether the misspelled value is emitted
there and coordinate a simultaneous update to avoid breaking consumers if the
backend currently returns the misspelled form.

In `@packages/blinkid-wasm/src/result/classinfo/Country.ts`:
- Around line 261-262: In the Country union in Country.ts remove the invalid
string literal "saint-thomas-and-prince" from the union type; locate the Country
type/union declaration and delete that duplicate/incorrect member (the valid São
Tomé and Príncipe entry "sao-tome-and-principe" already exists), then run type
checks to ensure no references expect the removed literal.

In `@packages/blinkid-worker/src/BlinkIdWorker.ts`:
- Around line 415-428: The ping flags are being computed from raw
settings.microblinkProxyUrl before proxy validation, causing false positives;
move the call to getMicroblinkProxyPingFlags so it runs after the proxy URL has
been accepted/sanitized by validateLicenseProxyPermissions/sanitizeProxyUrls and
after licenseUnlockResult is known, and pass the validated/sanitized proxy URL
(or the resulting proxy configuration) instead of the raw
settings.microblinkProxyUrl when building the data for reportPinglet (the
involved symbols: reportPinglet, getMicroblinkProxyPingFlags,
settings.microblinkProxyUrl, validateLicenseProxyPermissions, sanitizeProxyUrls,
licenseUnlockResult).
🪄 Autofix (Beta)

Fix all unresolved CodeRabbit comments on this PR:

  • Push a commit to this branch (recommended)
  • Create a new PR with the fixes

ℹ️ Review info
⚙️ Run configuration

Configuration used: defaults

Review profile: CHILL

Plan: Pro

Run ID: f08142db-a5e6-466c-941a-abb2caffb322

📥 Commits

Reviewing files that changed from the base of the PR and between ee03050 and 03b49a8.

⛔ Files ignored due to path filters (32)
  • packages/blinkcard-wasm/dist/advanced-threads/BlinkCardModule.js is excluded by !**/dist/**
  • packages/blinkcard-wasm/dist/advanced-threads/BlinkCardModule.wasm is excluded by !**/dist/**, !**/*.wasm
  • packages/blinkcard-wasm/dist/advanced/BlinkCardModule.js is excluded by !**/dist/**
  • packages/blinkcard-wasm/dist/advanced/BlinkCardModule.wasm is excluded by !**/dist/**, !**/*.wasm
  • packages/blinkcard-wasm/dist/basic/BlinkCardModule.js is excluded by !**/dist/**
  • packages/blinkcard-wasm/dist/basic/BlinkCardModule.wasm is excluded by !**/dist/**, !**/*.wasm
  • packages/blinkcard-wasm/dist/size-manifest.json is excluded by !**/dist/**
  • packages/blinkid-verify-wasm/dist/advanced-threads/BlinkIdVerifyModule.js is excluded by !**/dist/**
  • packages/blinkid-verify-wasm/dist/advanced-threads/BlinkIdVerifyModule.wasm is excluded by !**/dist/**, !**/*.wasm
  • packages/blinkid-verify-wasm/dist/advanced/BlinkIdVerifyModule.js is excluded by !**/dist/**
  • packages/blinkid-verify-wasm/dist/advanced/BlinkIdVerifyModule.wasm is excluded by !**/dist/**, !**/*.wasm
  • packages/blinkid-verify-wasm/dist/size-manifest.json is excluded by !**/dist/**
  • packages/blinkid-wasm/dist/full/advanced-threads/BlinkIdModule.data is excluded by !**/dist/**
  • packages/blinkid-wasm/dist/full/advanced-threads/BlinkIdModule.js is excluded by !**/dist/**
  • packages/blinkid-wasm/dist/full/advanced-threads/BlinkIdModule.wasm is excluded by !**/dist/**, !**/*.wasm
  • packages/blinkid-wasm/dist/full/advanced/BlinkIdModule.data is excluded by !**/dist/**
  • packages/blinkid-wasm/dist/full/advanced/BlinkIdModule.js is excluded by !**/dist/**
  • packages/blinkid-wasm/dist/full/advanced/BlinkIdModule.wasm is excluded by !**/dist/**, !**/*.wasm
  • packages/blinkid-wasm/dist/full/basic/BlinkIdModule.data is excluded by !**/dist/**
  • packages/blinkid-wasm/dist/full/basic/BlinkIdModule.js is excluded by !**/dist/**
  • packages/blinkid-wasm/dist/full/basic/BlinkIdModule.wasm is excluded by !**/dist/**, !**/*.wasm
  • packages/blinkid-wasm/dist/lightweight/advanced-threads/BlinkIdModule.data is excluded by !**/dist/**
  • packages/blinkid-wasm/dist/lightweight/advanced-threads/BlinkIdModule.js is excluded by !**/dist/**
  • packages/blinkid-wasm/dist/lightweight/advanced-threads/BlinkIdModule.wasm is excluded by !**/dist/**, !**/*.wasm
  • packages/blinkid-wasm/dist/lightweight/advanced/BlinkIdModule.data is excluded by !**/dist/**
  • packages/blinkid-wasm/dist/lightweight/advanced/BlinkIdModule.js is excluded by !**/dist/**
  • packages/blinkid-wasm/dist/lightweight/advanced/BlinkIdModule.wasm is excluded by !**/dist/**, !**/*.wasm
  • packages/blinkid-wasm/dist/lightweight/basic/BlinkIdModule.data is excluded by !**/dist/**
  • packages/blinkid-wasm/dist/lightweight/basic/BlinkIdModule.js is excluded by !**/dist/**
  • packages/blinkid-wasm/dist/lightweight/basic/BlinkIdModule.wasm is excluded by !**/dist/**, !**/*.wasm
  • packages/blinkid-wasm/dist/size-manifest.json is excluded by !**/dist/**
  • pnpm-lock.yaml is excluded by !**/pnpm-lock.yaml
📒 Files selected for processing (91)
  • docs/blinkid/OssDependencies.md
  • docs/blinkid/ResultFields.md
  • docs/blinkid/SupportedDocuments.md
  • package.json
  • packages/analytics/CHANGELOG.md
  • packages/analytics/package.json
  • packages/analytics/src/ping/ping.sdk.init.start.ts
  • packages/blinkcard-core/CHANGELOG.md
  • packages/blinkcard-core/docs/type-aliases/PingSdkInitStart.md
  • packages/blinkcard-core/docs/type-aliases/PingSdkInitStartData.md
  • packages/blinkcard-core/package.json
  • packages/blinkcard-ux-manager/CHANGELOG.md
  • packages/blinkcard-ux-manager/package.json
  • packages/blinkcard-wasm/CHANGELOG.md
  • packages/blinkcard-wasm/lint-staged.config.mjs
  • packages/blinkcard-wasm/package.json
  • packages/blinkcard-worker/CHANGELOG.md
  • packages/blinkcard-worker/package.json
  • packages/blinkcard-worker/src/BlinkCardWorker.initBlinkCard.test.ts
  • packages/blinkcard-worker/src/BlinkCardWorker.test.ts
  • packages/blinkcard-worker/src/BlinkCardWorker.ts
  • packages/blinkcard/CHANGELOG.md
  • packages/blinkcard/docs/type-aliases/PingSdkInitStart.md
  • packages/blinkcard/docs/type-aliases/PingSdkInitStartData.md
  • packages/blinkcard/package.json
  • packages/blinkid-core/CHANGELOG.md
  • packages/blinkid-core/docs/type-aliases/BlinkIdScanningResult.md
  • packages/blinkid-core/docs/type-aliases/Country.md
  • packages/blinkid-core/docs/type-aliases/DocumentType.md
  • packages/blinkid-core/docs/type-aliases/FieldType.md
  • packages/blinkid-core/docs/type-aliases/PingSdkInitStart.md
  • packages/blinkid-core/docs/type-aliases/PingSdkInitStartData.md
  • packages/blinkid-core/docs/type-aliases/VizResult.md
  • packages/blinkid-core/package.json
  • packages/blinkid-ux-manager/CHANGELOG.md
  • packages/blinkid-ux-manager/package.json
  • packages/blinkid-verify-core/CHANGELOG.md
  • packages/blinkid-verify-core/docs/type-aliases/PingSdkInitStart.md
  • packages/blinkid-verify-core/docs/type-aliases/PingSdkInitStartData.md
  • packages/blinkid-verify-core/package.json
  • packages/blinkid-verify-ux-manager/CHANGELOG.md
  • packages/blinkid-verify-ux-manager/package.json
  • packages/blinkid-verify-wasm/CHANGELOG.md
  • packages/blinkid-verify-wasm/lint-staged.config.mjs
  • packages/blinkid-verify-wasm/package.json
  • packages/blinkid-verify-worker/CHANGELOG.md
  • packages/blinkid-verify-worker/package.json
  • packages/blinkid-verify-worker/src/BlinkIdVerifyWorker.ts
  • packages/blinkid-verify/CHANGELOG.md
  • packages/blinkid-verify/docs/type-aliases/PingSdkInitStart.md
  • packages/blinkid-verify/docs/type-aliases/PingSdkInitStartData.md
  • packages/blinkid-verify/package.json
  • packages/blinkid-wasm/CHANGELOG.md
  • packages/blinkid-wasm/docs/type-aliases/BlinkIdScanningResult.md
  • packages/blinkid-wasm/docs/type-aliases/Country.md
  • packages/blinkid-wasm/docs/type-aliases/DocumentType.md
  • packages/blinkid-wasm/docs/type-aliases/FieldType.md
  • packages/blinkid-wasm/docs/type-aliases/VizResult.md
  • packages/blinkid-wasm/lint-staged.config.mjs
  • packages/blinkid-wasm/package.json
  • packages/blinkid-wasm/src/result/FieldType.ts
  • packages/blinkid-wasm/src/result/classinfo/Country.ts
  • packages/blinkid-wasm/src/result/classinfo/DocumentType.ts
  • packages/blinkid-wasm/src/result/viz/VizResult.ts
  • packages/blinkid-wasm/src/session/BlinkIdScanningResult.ts
  • packages/blinkid-worker/CHANGELOG.md
  • packages/blinkid-worker/package.json
  • packages/blinkid-worker/src/BlinkIdWorker.initBlinkId.test.ts
  • packages/blinkid-worker/src/BlinkIdWorker.test.ts
  • packages/blinkid-worker/src/BlinkIdWorker.ts
  • packages/blinkid/CHANGELOG.md
  • packages/blinkid/README.md
  • packages/blinkid/docs/type-aliases/BlinkIdScanningResult.md
  • packages/blinkid/docs/type-aliases/Country.md
  • packages/blinkid/docs/type-aliases/DocumentType.md
  • packages/blinkid/docs/type-aliases/FieldType.md
  • packages/blinkid/docs/type-aliases/PingSdkInitStart.md
  • packages/blinkid/docs/type-aliases/PingSdkInitStartData.md
  • packages/blinkid/docs/type-aliases/VizResult.md
  • packages/blinkid/package.json
  • packages/camera-manager/package.json
  • packages/core-common/lint-staged.config.mjs
  • packages/feedback-stabilizer/lint-staged.config.mjs
  • packages/shared-components/lint-staged.config.mjs
  • packages/shared-components/package.json
  • packages/test-utils/lint-staged.config.mjs
  • packages/ux-common/lint-staged.config.mjs
  • packages/wasm-common/lint-staged.config.mjs
  • packages/worker-common/lint-staged.config.mjs
  • packages/worker-common/src/proxy-url-validator.test.ts
  • packages/worker-common/src/proxy-url-validator.ts
💤 Files with no reviewable changes (2)
  • packages/shared-components/package.json
  • packages/camera-manager/package.json
✅ Files skipped from review due to trivial changes (14)
  • packages/blinkcard-wasm/CHANGELOG.md
  • packages/blinkid-verify/package.json
  • packages/blinkid-verify/CHANGELOG.md
  • packages/blinkid-verify-worker/package.json
  • packages/blinkid-verify-wasm/CHANGELOG.md
  • packages/analytics/CHANGELOG.md
  • packages/blinkcard-core/package.json
  • packages/blinkcard/CHANGELOG.md
  • packages/blinkid-verify-worker/CHANGELOG.md
  • packages/blinkcard-core/CHANGELOG.md
  • packages/blinkid-worker/package.json
  • packages/blinkcard-worker/package.json
  • packages/blinkcard-worker/CHANGELOG.md
  • packages/blinkid-verify-core/CHANGELOG.md
🚧 Files skipped from review as they are similar to previous changes (4)
  • packages/blinkid/docs/type-aliases/PingSdkInitStart.md
  • packages/blinkid-core/docs/type-aliases/BlinkIdScanningResult.md
  • packages/blinkcard/docs/type-aliases/PingSdkInitStartData.md
  • packages/blinkid-core/docs/type-aliases/FieldType.md

# Type Alias: Country

> **Country** = `"albania"` \| `"algeria"` \| `"argentina"` \| `"australia"` \| `"austria"` \| `"azerbaijan"` \| `"bahrain"` \| `"bangladesh"` \| `"belgium"` \| `"bosnia-and-herzegovina"` \| `"brunei"` \| `"bulgaria"` \| `"cambodia"` \| `"canada"` \| `"chile"` \| `"colombia"` \| `"costa-rica"` \| `"croatia"` \| `"cyprus"` \| `"czechia"` \| `"denmark"` \| `"dominican-republic"` \| `"egypt"` \| `"estonia"` \| `"finland"` \| `"france"` \| `"georgia"` \| `"germany"` \| `"ghana"` \| `"greece"` \| `"guatemala"` \| `"hong-kong"` \| `"hungary"` \| `"india"` \| `"indonesia"` \| `"ireland"` \| `"israel"` \| `"italy"` \| `"jordan"` \| `"kazakhstan"` \| `"kenya"` \| `"kosovo"` \| `"kuwait"` \| `"latvia"` \| `"lithuania"` \| `"malaysia"` \| `"maldives"` \| `"malta"` \| `"mauritius"` \| `"mexico"` \| `"morocco"` \| `"netherlands"` \| `"new-zealand"` \| `"nigeria"` \| `"pakistan"` \| `"panama"` \| `"paraguay"` \| `"philippines"` \| `"poland"` \| `"portugal"` \| `"puerto-rico"` \| `"qatar"` \| `"romania"` \| `"russia"` \| `"saudi-arabia"` \| `"serbia"` \| `"singapore"` \| `"slovakia"` \| `"slovenia"` \| `"south-africa"` \| `"spain"` \| `"sweden"` \| `"switzerland"` \| `"taiwan"` \| `"thailand"` \| `"tunisia"` \| `"turkey"` \| `"uae"` \| `"uganda"` \| `"uk"` \| `"ukraine"` \| `"usa"` \| `"vietnam"` \| `"brazil"` \| `"norway"` \| `"oman"` \| `"ecuador"` \| `"el-salvador"` \| `"sri-lanka"` \| `"peru"` \| `"uruguay"` \| `"bahamas"` \| `"bermuda"` \| `"bolivia"` \| `"china"` \| `"european-union"` \| `"haiti"` \| `"honduras"` \| `"iceland"` \| `"japan"` \| `"luxembourg"` \| `"montenegro"` \| `"nicaragua"` \| `"south-korea"` \| `"venezuela"` \| `"afghanistan"` \| `"aland-islands"` \| `"american-samoa"` \| `"andorra"` \| `"angola"` \| `"anguilla"` \| `"antarctica"` \| `"antigua-and-barbuda"` \| `"armenia"` \| `"aruba"` \| `"bailiwick-of-guernsey"` \| `"bailiwick-of-jersey"` \| `"barbados"` \| `"belarus"` \| `"belize"` \| `"benin"` \| `"bhutan"` \| `"bonaire-saint-eustatius-and-saba"` \| `"botswana"` \| `"bouvet-island"` \| `"british-indian-ocean-territory"` \| `"burkina-faso"` \| `"burundi"` \| `"cameroon"` \| `"cape-verde"` \| `"caribbean-netherlands"` \| `"cayman-islands"` \| `"central-african-republic"` \| `"chad"` \| `"christmas-island"` \| `"cocos-islands"` \| `"comoros"` \| `"congo"` \| `"cook-islands"` \| `"cuba"` \| `"curacao"` \| `"democratic-republic-of-the-congo"` \| `"djibouti"` \| `"dominica"` \| `"east-timor"` \| `"equatorial-guinea"` \| `"eritrea"` \| `"ethiopia"` \| `"falkland-islands"` \| `"faroe-islands"` \| `"federated-states-of-micronesia"` \| `"fiji"` \| `"french-guiana"` \| `"french-polynesia"` \| `"french-southern-territories"` \| `"gabon"` \| `"gambia"` \| `"gibraltar"` \| `"greenland"` \| `"grenada"` \| `"guadeloupe"` \| `"guam"` \| `"guinea"` \| `"guinea-bissau"` \| `"guyana"` \| `"heard-island-and-mcdonald-islands"` \| `"iran"` \| `"iraq"` \| `"isle-of-man"` \| `"ivory-coast"` \| `"jamaica"` \| `"kiribati"` \| `"kyrgyzstan"` \| `"laos"` \| `"lebanon"` \| `"lesotho"` \| `"liberia"` \| `"libya"` \| `"liechtenstein"` \| `"macau"` \| `"madagascar"` \| `"malawi"` \| `"mali"` \| `"marshall-islands"` \| `"martinique"` \| `"mauritania"` \| `"mayotte"` \| `"moldova"` \| `"monaco"` \| `"mongolia"` \| `"montserrat"` \| `"mozambique"` \| `"myanmar"` \| `"namibia"` \| `"nauru"` \| `"nepal"` \| `"new-caledonia"` \| `"niger"` \| `"niue"` \| `"norfolk-island"` \| `"northern-cyprus"` \| `"northern-mariana-islands"` \| `"north-korea"` \| `"north-macedonia"` \| `"palau"` \| `"palestine"` \| `"papua-new-guinea"` \| `"pitcairn"` \| `"reunion"` \| `"rwanda"` \| `"saint-barthelemy"` \| `"saint-helena-ascension-and-tristian-da-cunha"` \| `"saint-kitts-and-nevis"` \| `"saint-lucia"` \| `"saint-martin"` \| `"saint-pierre-and-miquelon"` \| `"saint-vincent-and-the-grenadines"` \| `"samoa"` \| `"san-marino"` \| `"sao-tome-and-principe"` \| `"senegal"` \| `"seychelles"` \| `"sierra-leone"` \| `"sint-maarten"` \| `"solomon-islands"` \| `"somalia"` \| `"south-georgia-and-the-south-sandwich-islands"` \| `"south-sudan"` \| `"sudan"` \| `"suriname"` \| `"svalbard-and-jan-mayen"` \| `"eswatini"` \| `"syria"` \| `"tajikistan"` \| `"tanzania"` \| `"togo"` \| `"tokelau"` \| `"tonga"` \| `"trinidad-and-tobago"` \| `"turkmenistan"` \| `"turks-and-caicos-islands"` \| `"tuvalu"` \| `"united-states-minor-outlying-islands"` \| `"uzbekistan"` \| `"vanuatu"` \| `"vatican-city"` \| `"virgin-islands-british"` \| `"virgin-islands-us"` \| `"wallis-and-futuna"` \| `"western-sahara"` \| `"yemen"` \| `"yugoslavia"` \| `"zambia"` \| `"zimbabwe"` \| `"schengen-area"` \| `"saint-thomas-and-prince"`
> **Country** = `"albania"` \| `"algeria"` \| `"argentina"` \| `"australia"` \| `"austria"` \| `"azerbaijan"` \| `"bahrain"` \| `"bangladesh"` \| `"belgium"` \| `"bosnia-and-herzegovina"` \| `"brunei"` \| `"bulgaria"` \| `"cambodia"` \| `"canada"` \| `"chile"` \| `"colombia"` \| `"costa-rica"` \| `"croatia"` \| `"cyprus"` \| `"czechia"` \| `"denmark"` \| `"dominican-republic"` \| `"egypt"` \| `"estonia"` \| `"finland"` \| `"france"` \| `"georgia"` \| `"germany"` \| `"ghana"` \| `"greece"` \| `"guatemala"` \| `"hong-kong"` \| `"hungary"` \| `"india"` \| `"indonesia"` \| `"ireland"` \| `"israel"` \| `"italy"` \| `"jordan"` \| `"kazakhstan"` \| `"kenya"` \| `"kosovo"` \| `"kuwait"` \| `"latvia"` \| `"lithuania"` \| `"malaysia"` \| `"maldives"` \| `"malta"` \| `"mauritius"` \| `"mexico"` \| `"morocco"` \| `"netherlands"` \| `"new-zealand"` \| `"nigeria"` \| `"pakistan"` \| `"panama"` \| `"paraguay"` \| `"philippines"` \| `"poland"` \| `"portugal"` \| `"puerto-rico"` \| `"qatar"` \| `"romania"` \| `"russia"` \| `"saudi-arabia"` \| `"serbia"` \| `"singapore"` \| `"slovakia"` \| `"slovenia"` \| `"south-africa"` \| `"spain"` \| `"sweden"` \| `"switzerland"` \| `"taiwan"` \| `"thailand"` \| `"tunisia"` \| `"turkey"` \| `"uae"` \| `"uganda"` \| `"uk"` \| `"ukraine"` \| `"usa"` \| `"vietnam"` \| `"brazil"` \| `"norway"` \| `"oman"` \| `"ecuador"` \| `"el-salvador"` \| `"sri-lanka"` \| `"peru"` \| `"uruguay"` \| `"bahamas"` \| `"bermuda"` \| `"bolivia"` \| `"china"` \| `"european-union"` \| `"haiti"` \| `"honduras"` \| `"iceland"` \| `"japan"` \| `"luxembourg"` \| `"montenegro"` \| `"nicaragua"` \| `"south-korea"` \| `"venezuela"` \| `"afghanistan"` \| `"aland-islands"` \| `"american-samoa"` \| `"andorra"` \| `"angola"` \| `"anguilla"` \| `"antarctica"` \| `"antigua-and-barbuda"` \| `"armenia"` \| `"aruba"` \| `"bailiwick-of-guernsey"` \| `"bailiwick-of-jersey"` \| `"barbados"` \| `"belarus"` \| `"belize"` \| `"benin"` \| `"bhutan"` \| `"bonaire-saint-eustatius-and-saba"` \| `"botswana"` \| `"bouvet-island"` \| `"british-indian-ocean-territory"` \| `"burkina-faso"` \| `"burundi"` \| `"cameroon"` \| `"cape-verde"` \| `"caribbean-netherlands"` \| `"cayman-islands"` \| `"central-african-republic"` \| `"chad"` \| `"christmas-island"` \| `"cocos-islands"` \| `"comoros"` \| `"congo"` \| `"cook-islands"` \| `"cuba"` \| `"curacao"` \| `"democratic-republic-of-the-congo"` \| `"djibouti"` \| `"dominica"` \| `"east-timor"` \| `"equatorial-guinea"` \| `"eritrea"` \| `"ethiopia"` \| `"falkland-islands"` \| `"faroe-islands"` \| `"federated-states-of-micronesia"` \| `"fiji"` \| `"french-guiana"` \| `"french-polynesia"` \| `"french-southern-territories"` \| `"gabon"` \| `"gambia"` \| `"gibraltar"` \| `"greenland"` \| `"grenada"` \| `"guadeloupe"` \| `"guam"` \| `"guinea"` \| `"guinea-bissau"` \| `"guyana"` \| `"heard-island-and-mcdonald-islands"` \| `"iran"` \| `"iraq"` \| `"isle-of-man"` \| `"ivory-coast"` \| `"jamaica"` \| `"kiribati"` \| `"kyrgyzstan"` \| `"laos"` \| `"lebanon"` \| `"lesotho"` \| `"liberia"` \| `"libya"` \| `"liechtenstein"` \| `"macau"` \| `"madagascar"` \| `"malawi"` \| `"mali"` \| `"marshall-islands"` \| `"martinique"` \| `"mauritania"` \| `"mayotte"` \| `"moldova"` \| `"monaco"` \| `"mongolia"` \| `"montserrat"` \| `"mozambique"` \| `"myanmar"` \| `"namibia"` \| `"nauru"` \| `"nepal"` \| `"new-caledonia"` \| `"niger"` \| `"niue"` \| `"norfolk-island"` \| `"northern-cyprus"` \| `"northern-mariana-islands"` \| `"north-korea"` \| `"north-macedonia"` \| `"palau"` \| `"palestine"` \| `"papua-new-guinea"` \| `"pitcairn"` \| `"reunion"` \| `"rwanda"` \| `"saint-barthelemy"` \| `"saint-helena-ascension-and-tristian-da-cunha"` \| `"saint-kitts-and-nevis"` \| `"saint-lucia"` \| `"saint-martin"` \| `"saint-pierre-and-miquelon"` \| `"saint-vincent-and-the-grenadines"` \| `"samoa"` \| `"san-marino"` \| `"sao-tome-and-principe"` \| `"senegal"` \| `"seychelles"` \| `"sierra-leone"` \| `"sint-maarten"` \| `"solomon-islands"` \| `"somalia"` \| `"south-georgia-and-the-south-sandwich-islands"` \| `"south-sudan"` \| `"sudan"` \| `"suriname"` \| `"svalbard-and-jan-mayen"` \| `"eswatini"` \| `"syria"` \| `"tajikistan"` \| `"tanzania"` \| `"togo"` \| `"tokelau"` \| `"tonga"` \| `"trinidad-and-tobago"` \| `"turkmenistan"` \| `"turks-and-caicos-islands"` \| `"tuvalu"` \| `"united-states-minor-outlying-islands"` \| `"uzbekistan"` \| `"vanuatu"` \| `"vatican-city"` \| `"virgin-islands-british"` \| `"wallis-and-futuna"` \| `"western-sahara"` \| `"yemen"` \| `"yugoslavia"` \| `"zambia"` \| `"zimbabwe"` \| `"schengen-area"` \| `"saint-thomas-and-prince"` \| `"virgin-islands-of-the-united-states"`
Copy link
Copy Markdown

@coderabbitai coderabbitai Bot May 6, 2026

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

⚠️ Potential issue | 🟡 Minor | ⚡ Quick win

Typo in string literal: "saint-helena-ascension-and-tristian-da-cunha""tristan"

The island territory is spelled "Tristan da Cunha" (not "Tristian"). Since this is an auto-generated doc, the fix must be made in the TypeScript source file (packages/blinkid-wasm/src/result/classinfo/Country.ts). Coordinate with the backend/WASM layer first — if the backend consistently returns the misspelled form, this is a breaking change and both sides must move together.

🤖 Prompt for AI Agents
Verify each finding against current code. Fix only still-valid issues, skip the
rest with a brief reason, keep changes minimal, and validate.

In `@packages/blinkid-core/docs/type-aliases/Country.md` at line 9, Fix the typo
in the Country string literal by updating the generated TypeScript source
(packages/blinkid-wasm/src/result/classinfo/Country.ts) where the Country
type/array contains "saint-helena-ascension-and-tristian-da-cunha" and change it
to "saint-helena-ascension-and-tristan-da-cunha"; before changing, confirm with
the backend/WASM layer whether the misspelled value is emitted there and
coordinate a simultaneous update to avoid breaking consumers if the backend
currently returns the misspelled form.

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

@mariokresic double check this

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Seems like the humans are having a chat. I'll hop back into my burrow for now. If you need me again, just tag @coderabbitai in a new comment, and I'll come hopping out!

Comment on lines +261 to +262
| "saint-thomas-and-prince"
| "virgin-islands-of-the-united-states";
Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

⚠️ Potential issue | 🟡 Minor | ⚡ Quick win

🧩 Analysis chain

🏁 Script executed:

#!/bin/bash
# Verify all occurrences of both literals across code/docs for consistency.
rg -n --type=ts --type=md '"sao-tome-and-principe"|"saint-thomas-and-prince"'

Repository: microblink/web-sdks

Length of output: 14341


🏁 Script executed:

#!/bin/bash
# Read the Country.ts file around the relevant lines to understand context
cat -n packages/blinkid-wasm/src/result/classinfo/Country.ts | sed -n '215,270p'

Repository: microblink/web-sdks

Length of output: 1425


🏁 Script executed:

#!/bin/bash
# Check if "saint-thomas-and-prince" is referenced anywhere else in code or mapping logic
rg -i "saint.thomas.and.prince" --type=ts --type=js --type=json

Repository: microblink/web-sdks

Length of output: 147


🏁 Script executed:

#!/bin/bash
# Check git history or comments near these entries to understand intent
git log --oneline -p packages/blinkid-wasm/src/result/classinfo/Country.ts | grep -A5 -B5 "saint-thomas-and-prince" | head -30

Repository: microblink/web-sdks

Length of output: 149


🏁 Script executed:

#!/bin/bash
# Search for any mapping files or constants that might explain the country aliases
rg -i "thomas" --type=ts --type=js -B2 -A2

Repository: microblink/web-sdks

Length of output: 387


Remove the invalid country literal "saint-thomas-and-prince" (line 261).

"saint-thomas-and-prince" is not a valid country—Saint Thomas is part of the US Virgin Islands. The correct entry for São Tomé and Príncipe is "sao-tome-and-principe" (line 226), which already exists. This duplicate literal should be removed to prevent confusion.

🤖 Prompt for AI Agents
Verify each finding against current code. Fix only still-valid issues, skip the
rest with a brief reason, keep changes minimal, and validate.

In `@packages/blinkid-wasm/src/result/classinfo/Country.ts` around lines 261 -
262, In the Country union in Country.ts remove the invalid string literal
"saint-thomas-and-prince" from the union type; locate the Country type/union
declaration and delete that duplicate/incorrect member (the valid São Tomé and
Príncipe entry "sao-tome-and-principe" already exists), then run type checks to
ensure no references expect the removed literal.

Comment on lines 415 to +428
this.reportPinglet({
schemaName: "ping.sdk.init.start",
schemaVersion: "1.2.0",
schemaVersion: "1.3.0",
sessionNumber: 0,
data: {
packageName: self.location.hostname,
platform: "Emscripten",
platformDetails: `${featureVariant}-${wasmVariant}`,
product: "BlinkID",
userId: this.#userId,
...getMicroblinkProxyPingFlags(
settings.microblinkProxyUrl,
licenseUnlockResult,
),
Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

⚠️ Potential issue | 🟡 Minor | ⚡ Quick win

Compute proxy flags after the proxy URL has been accepted.

These booleans are derived from the raw settings.microblinkProxyUrl before validateLicenseProxyPermissions / sanitizeProxyUrls run. A malformed non-empty URL will therefore be reported as ...Enabled: true even though init fails and no proxy is actually configured. Please base these flags on the validated proxy setup instead.

🤖 Prompt for AI Agents
Verify each finding against current code. Fix only still-valid issues, skip the
rest with a brief reason, keep changes minimal, and validate.

In `@packages/blinkid-worker/src/BlinkIdWorker.ts` around lines 415 - 428, The
ping flags are being computed from raw settings.microblinkProxyUrl before proxy
validation, causing false positives; move the call to
getMicroblinkProxyPingFlags so it runs after the proxy URL has been
accepted/sanitized by validateLicenseProxyPermissions/sanitizeProxyUrls and
after licenseUnlockResult is known, and pass the validated/sanitized proxy URL
(or the resulting proxy configuration) instead of the raw
settings.microblinkProxyUrl when building the data for reportPinglet (the
involved symbols: reportPinglet, getMicroblinkProxyPingFlags,
settings.microblinkProxyUrl, validateLicenseProxyPermissions, sanitizeProxyUrls,
licenseUnlockResult).

# Type Alias: Country

> **Country** = `"albania"` \| `"algeria"` \| `"argentina"` \| `"australia"` \| `"austria"` \| `"azerbaijan"` \| `"bahrain"` \| `"bangladesh"` \| `"belgium"` \| `"bosnia-and-herzegovina"` \| `"brunei"` \| `"bulgaria"` \| `"cambodia"` \| `"canada"` \| `"chile"` \| `"colombia"` \| `"costa-rica"` \| `"croatia"` \| `"cyprus"` \| `"czechia"` \| `"denmark"` \| `"dominican-republic"` \| `"egypt"` \| `"estonia"` \| `"finland"` \| `"france"` \| `"georgia"` \| `"germany"` \| `"ghana"` \| `"greece"` \| `"guatemala"` \| `"hong-kong"` \| `"hungary"` \| `"india"` \| `"indonesia"` \| `"ireland"` \| `"israel"` \| `"italy"` \| `"jordan"` \| `"kazakhstan"` \| `"kenya"` \| `"kosovo"` \| `"kuwait"` \| `"latvia"` \| `"lithuania"` \| `"malaysia"` \| `"maldives"` \| `"malta"` \| `"mauritius"` \| `"mexico"` \| `"morocco"` \| `"netherlands"` \| `"new-zealand"` \| `"nigeria"` \| `"pakistan"` \| `"panama"` \| `"paraguay"` \| `"philippines"` \| `"poland"` \| `"portugal"` \| `"puerto-rico"` \| `"qatar"` \| `"romania"` \| `"russia"` \| `"saudi-arabia"` \| `"serbia"` \| `"singapore"` \| `"slovakia"` \| `"slovenia"` \| `"south-africa"` \| `"spain"` \| `"sweden"` \| `"switzerland"` \| `"taiwan"` \| `"thailand"` \| `"tunisia"` \| `"turkey"` \| `"uae"` \| `"uganda"` \| `"uk"` \| `"ukraine"` \| `"usa"` \| `"vietnam"` \| `"brazil"` \| `"norway"` \| `"oman"` \| `"ecuador"` \| `"el-salvador"` \| `"sri-lanka"` \| `"peru"` \| `"uruguay"` \| `"bahamas"` \| `"bermuda"` \| `"bolivia"` \| `"china"` \| `"european-union"` \| `"haiti"` \| `"honduras"` \| `"iceland"` \| `"japan"` \| `"luxembourg"` \| `"montenegro"` \| `"nicaragua"` \| `"south-korea"` \| `"venezuela"` \| `"afghanistan"` \| `"aland-islands"` \| `"american-samoa"` \| `"andorra"` \| `"angola"` \| `"anguilla"` \| `"antarctica"` \| `"antigua-and-barbuda"` \| `"armenia"` \| `"aruba"` \| `"bailiwick-of-guernsey"` \| `"bailiwick-of-jersey"` \| `"barbados"` \| `"belarus"` \| `"belize"` \| `"benin"` \| `"bhutan"` \| `"bonaire-saint-eustatius-and-saba"` \| `"botswana"` \| `"bouvet-island"` \| `"british-indian-ocean-territory"` \| `"burkina-faso"` \| `"burundi"` \| `"cameroon"` \| `"cape-verde"` \| `"caribbean-netherlands"` \| `"cayman-islands"` \| `"central-african-republic"` \| `"chad"` \| `"christmas-island"` \| `"cocos-islands"` \| `"comoros"` \| `"congo"` \| `"cook-islands"` \| `"cuba"` \| `"curacao"` \| `"democratic-republic-of-the-congo"` \| `"djibouti"` \| `"dominica"` \| `"east-timor"` \| `"equatorial-guinea"` \| `"eritrea"` \| `"ethiopia"` \| `"falkland-islands"` \| `"faroe-islands"` \| `"federated-states-of-micronesia"` \| `"fiji"` \| `"french-guiana"` \| `"french-polynesia"` \| `"french-southern-territories"` \| `"gabon"` \| `"gambia"` \| `"gibraltar"` \| `"greenland"` \| `"grenada"` \| `"guadeloupe"` \| `"guam"` \| `"guinea"` \| `"guinea-bissau"` \| `"guyana"` \| `"heard-island-and-mcdonald-islands"` \| `"iran"` \| `"iraq"` \| `"isle-of-man"` \| `"ivory-coast"` \| `"jamaica"` \| `"kiribati"` \| `"kyrgyzstan"` \| `"laos"` \| `"lebanon"` \| `"lesotho"` \| `"liberia"` \| `"libya"` \| `"liechtenstein"` \| `"macau"` \| `"madagascar"` \| `"malawi"` \| `"mali"` \| `"marshall-islands"` \| `"martinique"` \| `"mauritania"` \| `"mayotte"` \| `"moldova"` \| `"monaco"` \| `"mongolia"` \| `"montserrat"` \| `"mozambique"` \| `"myanmar"` \| `"namibia"` \| `"nauru"` \| `"nepal"` \| `"new-caledonia"` \| `"niger"` \| `"niue"` \| `"norfolk-island"` \| `"northern-cyprus"` \| `"northern-mariana-islands"` \| `"north-korea"` \| `"north-macedonia"` \| `"palau"` \| `"palestine"` \| `"papua-new-guinea"` \| `"pitcairn"` \| `"reunion"` \| `"rwanda"` \| `"saint-barthelemy"` \| `"saint-helena-ascension-and-tristian-da-cunha"` \| `"saint-kitts-and-nevis"` \| `"saint-lucia"` \| `"saint-martin"` \| `"saint-pierre-and-miquelon"` \| `"saint-vincent-and-the-grenadines"` \| `"samoa"` \| `"san-marino"` \| `"sao-tome-and-principe"` \| `"senegal"` \| `"seychelles"` \| `"sierra-leone"` \| `"sint-maarten"` \| `"solomon-islands"` \| `"somalia"` \| `"south-georgia-and-the-south-sandwich-islands"` \| `"south-sudan"` \| `"sudan"` \| `"suriname"` \| `"svalbard-and-jan-mayen"` \| `"eswatini"` \| `"syria"` \| `"tajikistan"` \| `"tanzania"` \| `"togo"` \| `"tokelau"` \| `"tonga"` \| `"trinidad-and-tobago"` \| `"turkmenistan"` \| `"turks-and-caicos-islands"` \| `"tuvalu"` \| `"united-states-minor-outlying-islands"` \| `"uzbekistan"` \| `"vanuatu"` \| `"vatican-city"` \| `"virgin-islands-british"` \| `"virgin-islands-us"` \| `"wallis-and-futuna"` \| `"western-sahara"` \| `"yemen"` \| `"yugoslavia"` \| `"zambia"` \| `"zimbabwe"` \| `"schengen-area"` \| `"saint-thomas-and-prince"`
> **Country** = `"albania"` \| `"algeria"` \| `"argentina"` \| `"australia"` \| `"austria"` \| `"azerbaijan"` \| `"bahrain"` \| `"bangladesh"` \| `"belgium"` \| `"bosnia-and-herzegovina"` \| `"brunei"` \| `"bulgaria"` \| `"cambodia"` \| `"canada"` \| `"chile"` \| `"colombia"` \| `"costa-rica"` \| `"croatia"` \| `"cyprus"` \| `"czechia"` \| `"denmark"` \| `"dominican-republic"` \| `"egypt"` \| `"estonia"` \| `"finland"` \| `"france"` \| `"georgia"` \| `"germany"` \| `"ghana"` \| `"greece"` \| `"guatemala"` \| `"hong-kong"` \| `"hungary"` \| `"india"` \| `"indonesia"` \| `"ireland"` \| `"israel"` \| `"italy"` \| `"jordan"` \| `"kazakhstan"` \| `"kenya"` \| `"kosovo"` \| `"kuwait"` \| `"latvia"` \| `"lithuania"` \| `"malaysia"` \| `"maldives"` \| `"malta"` \| `"mauritius"` \| `"mexico"` \| `"morocco"` \| `"netherlands"` \| `"new-zealand"` \| `"nigeria"` \| `"pakistan"` \| `"panama"` \| `"paraguay"` \| `"philippines"` \| `"poland"` \| `"portugal"` \| `"puerto-rico"` \| `"qatar"` \| `"romania"` \| `"russia"` \| `"saudi-arabia"` \| `"serbia"` \| `"singapore"` \| `"slovakia"` \| `"slovenia"` \| `"south-africa"` \| `"spain"` \| `"sweden"` \| `"switzerland"` \| `"taiwan"` \| `"thailand"` \| `"tunisia"` \| `"turkey"` \| `"uae"` \| `"uganda"` \| `"uk"` \| `"ukraine"` \| `"usa"` \| `"vietnam"` \| `"brazil"` \| `"norway"` \| `"oman"` \| `"ecuador"` \| `"el-salvador"` \| `"sri-lanka"` \| `"peru"` \| `"uruguay"` \| `"bahamas"` \| `"bermuda"` \| `"bolivia"` \| `"china"` \| `"european-union"` \| `"haiti"` \| `"honduras"` \| `"iceland"` \| `"japan"` \| `"luxembourg"` \| `"montenegro"` \| `"nicaragua"` \| `"south-korea"` \| `"venezuela"` \| `"afghanistan"` \| `"aland-islands"` \| `"american-samoa"` \| `"andorra"` \| `"angola"` \| `"anguilla"` \| `"antarctica"` \| `"antigua-and-barbuda"` \| `"armenia"` \| `"aruba"` \| `"bailiwick-of-guernsey"` \| `"bailiwick-of-jersey"` \| `"barbados"` \| `"belarus"` \| `"belize"` \| `"benin"` \| `"bhutan"` \| `"bonaire-saint-eustatius-and-saba"` \| `"botswana"` \| `"bouvet-island"` \| `"british-indian-ocean-territory"` \| `"burkina-faso"` \| `"burundi"` \| `"cameroon"` \| `"cape-verde"` \| `"caribbean-netherlands"` \| `"cayman-islands"` \| `"central-african-republic"` \| `"chad"` \| `"christmas-island"` \| `"cocos-islands"` \| `"comoros"` \| `"congo"` \| `"cook-islands"` \| `"cuba"` \| `"curacao"` \| `"democratic-republic-of-the-congo"` \| `"djibouti"` \| `"dominica"` \| `"east-timor"` \| `"equatorial-guinea"` \| `"eritrea"` \| `"ethiopia"` \| `"falkland-islands"` \| `"faroe-islands"` \| `"federated-states-of-micronesia"` \| `"fiji"` \| `"french-guiana"` \| `"french-polynesia"` \| `"french-southern-territories"` \| `"gabon"` \| `"gambia"` \| `"gibraltar"` \| `"greenland"` \| `"grenada"` \| `"guadeloupe"` \| `"guam"` \| `"guinea"` \| `"guinea-bissau"` \| `"guyana"` \| `"heard-island-and-mcdonald-islands"` \| `"iran"` \| `"iraq"` \| `"isle-of-man"` \| `"ivory-coast"` \| `"jamaica"` \| `"kiribati"` \| `"kyrgyzstan"` \| `"laos"` \| `"lebanon"` \| `"lesotho"` \| `"liberia"` \| `"libya"` \| `"liechtenstein"` \| `"macau"` \| `"madagascar"` \| `"malawi"` \| `"mali"` \| `"marshall-islands"` \| `"martinique"` \| `"mauritania"` \| `"mayotte"` \| `"moldova"` \| `"monaco"` \| `"mongolia"` \| `"montserrat"` \| `"mozambique"` \| `"myanmar"` \| `"namibia"` \| `"nauru"` \| `"nepal"` \| `"new-caledonia"` \| `"niger"` \| `"niue"` \| `"norfolk-island"` \| `"northern-cyprus"` \| `"northern-mariana-islands"` \| `"north-korea"` \| `"north-macedonia"` \| `"palau"` \| `"palestine"` \| `"papua-new-guinea"` \| `"pitcairn"` \| `"reunion"` \| `"rwanda"` \| `"saint-barthelemy"` \| `"saint-helena-ascension-and-tristian-da-cunha"` \| `"saint-kitts-and-nevis"` \| `"saint-lucia"` \| `"saint-martin"` \| `"saint-pierre-and-miquelon"` \| `"saint-vincent-and-the-grenadines"` \| `"samoa"` \| `"san-marino"` \| `"sao-tome-and-principe"` \| `"senegal"` \| `"seychelles"` \| `"sierra-leone"` \| `"sint-maarten"` \| `"solomon-islands"` \| `"somalia"` \| `"south-georgia-and-the-south-sandwich-islands"` \| `"south-sudan"` \| `"sudan"` \| `"suriname"` \| `"svalbard-and-jan-mayen"` \| `"eswatini"` \| `"syria"` \| `"tajikistan"` \| `"tanzania"` \| `"togo"` \| `"tokelau"` \| `"tonga"` \| `"trinidad-and-tobago"` \| `"turkmenistan"` \| `"turks-and-caicos-islands"` \| `"tuvalu"` \| `"united-states-minor-outlying-islands"` \| `"uzbekistan"` \| `"vanuatu"` \| `"vatican-city"` \| `"virgin-islands-british"` \| `"wallis-and-futuna"` \| `"western-sahara"` \| `"yemen"` \| `"yugoslavia"` \| `"zambia"` \| `"zimbabwe"` \| `"schengen-area"` \| `"saint-thomas-and-prince"` \| `"virgin-islands-of-the-united-states"`
Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

@mariokresic double check this

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants