From bdfd66cee80e9bd06954ba0876c7d98f42e87d2f Mon Sep 17 00:00:00 2001 From: jenkins Date: Sat, 14 Feb 2026 16:32:39 +0000 Subject: [PATCH] Jenkins: updated generated files --- .changeset/config.json | 17 +- .npmrc | 13 - README.md | 15 +- apps/examples/README.md | 16 +- .../blinkcard-advanced-setup/.eslintrc.cjs | 53 + .../blinkcard-advanced-setup/.gitignore | 6 + .../blinkcard-advanced-setup/README.md | 28 + .../blinkcard-advanced-setup/index.html | 19 + .../lint-staged.config.cjs | 7 + .../blinkcard-advanced-setup/package.json | 45 + .../blinkcard-advanced-setup/src/App.tsx | 165 ++ .../src/DebugOverlay.tsx | 646 +++++++ .../blinkcard-advanced-setup/src/index.css | 22 + .../blinkcard-advanced-setup/src/index.tsx | 9 + .../blinkcard-advanced-setup/tsconfig.json | 13 + .../blinkcard-advanced-setup/vite.config.ts | 51 + apps/examples/blinkcard-simple/.eslintrc.cjs | 52 + apps/examples/blinkcard-simple/.gitignore | 4 + apps/examples/blinkcard-simple/README.md | 26 + apps/examples/blinkcard-simple/index.html | 20 + .../blinkcard-simple/lint-staged.config.cjs | 7 + apps/examples/blinkcard-simple/package.json | 40 + .../blinkcard-simple/src/assets/favicon.ico | Bin 0 -> 4286 bytes apps/examples/blinkcard-simple/src/index.ts | 27 + .../src/vite-env.d.ts | 2 +- apps/examples/blinkcard-simple/tsconfig.json | 13 + apps/examples/blinkcard-simple/vite.config.ts | 65 + apps/examples/blinkid-advanced-setup/.env | 7 - .../blinkid-advanced-setup/CHANGELOG.md | 120 -- .../blinkid-advanced-setup/package.json | 7 +- .../blinkid-advanced-setup/src/App.tsx | 12 +- .../src/ScoreDisplay.tsx | 2 +- .../blinkid-advanced-setup/src/index.tsx | 2 +- .../blinkid-advanced-setup/vite.config.ts | 5 +- apps/examples/blinkid-core-api/.env | 7 - apps/examples/blinkid-core-api/CHANGELOG.md | 90 - apps/examples/blinkid-core-api/package.json | 8 +- apps/examples/blinkid-core-api/src/index.ts | 4 +- .../blinkid-core-api/src/vite-env.d.ts | 2 +- apps/examples/blinkid-core-api/vite.config.ts | 5 +- apps/examples/blinkid-photo-upload/.env | 7 - .../blinkid-photo-upload/CHANGELOG.md | 49 - .../blinkid-photo-upload/package.json | 7 +- .../examples/blinkid-photo-upload/src/App.tsx | 6 +- .../blinkid-photo-upload/src/index.tsx | 2 +- .../blinkid-photo-upload/vite.config.ts | 5 +- apps/examples/blinkid-preload/.env | 7 - apps/examples/blinkid-preload/CHANGELOG.md | 115 -- apps/examples/blinkid-preload/package.json | 7 +- apps/examples/blinkid-preload/src/App.tsx | 4 +- apps/examples/blinkid-preload/src/index.tsx | 2 +- .../blinkid-preload/src/vite-env.d.ts | 2 +- apps/examples/blinkid-preload/vite.config.ts | 5 +- apps/examples/blinkid-simple/.env | 7 - apps/examples/blinkid-simple/CHANGELOG.md | 87 - apps/examples/blinkid-simple/package.json | 8 +- apps/examples/blinkid-simple/src/index.ts | 6 +- .../examples/blinkid-simple/src/vite-env.d.ts | 2 +- apps/examples/blinkid-simple/vite.config.ts | 5 +- .../blinkid-ui-customization/package.json | 9 +- .../blinkid-ui-customization/src/App.tsx | 4 +- .../src/components/CameraErrorModal.tsx | 2 +- .../src/components/CoreErrorModal.tsx | 2 +- .../src/components/FilteredDocumentModal.tsx | 2 +- .../src/components/Modal.tsx | 2 +- .../src/components/TimeoutErrorModal.tsx | 2 +- .../components/UnsupportedDocumentModal.tsx | 2 +- .../src/components/index.ts | 2 +- .../blinkid-ui-customization/src/index.tsx | 2 +- .../src/styles/modals.module.css.d.ts | 2 +- .../src/vite-env.d.ts | 2 +- .../blinkid-ui-customization/vite.config.ts | 5 +- apps/examples/camera-manager/.env | 7 - apps/examples/camera-manager/package.json | 7 +- apps/examples/camera-manager/src/App.tsx | 2 +- apps/examples/camera-manager/src/index.tsx | 2 +- apps/examples/camera-manager/vite.config.ts | 3 +- apps/examples/camera-selection/.env | 7 - apps/examples/camera-selection/CHANGELOG.md | 65 - apps/examples/camera-selection/package.json | 7 +- apps/examples/camera-selection/src/App.tsx | 2 +- apps/examples/camera-selection/src/index.tsx | 2 +- .../camera-selection/src/vite-env.d.ts | 13 - apps/examples/camera-selection/vite.config.ts | 3 +- docs/blinkcard/OssDependencies.md | 174 ++ docs/{ => blinkid}/OssDependencies.md | 3 +- docs/{ => blinkid}/ResultFields.md | 0 docs/{ => blinkid}/SupportedDocuments.md | 0 package.json | 11 +- packages/analytics/.eslintrc.cjs | 54 + packages/analytics/.gitignore | 3 + packages/analytics/CHANGELOG.md | 7 + packages/analytics/README.md | 33 + packages/analytics/lint-staged.config.mjs | 7 + packages/analytics/package.json | 54 + .../analytics/src/AnalyticService.test.ts | 468 +++++ packages/analytics/src/AnalyticService.ts | 260 +++ packages/analytics/src/ping/Ping.ts | 33 + packages/analytics/src/ping/index.ts | 18 + packages/analytics/src/ping/ping.base.ts | 22 + .../src/ping/ping.browser.device.info.ts | 94 + packages/analytics/src/ping/ping.error.ts | 30 + .../src/ping/ping.hardware.camera.info.ts | 43 + packages/analytics/src/ping/ping.log.ts | 29 + .../src/ping/ping.sdk.camera.input.info.ts | 38 + .../src/ping/ping.sdk.camera.permission.ts | 36 + .../analytics/src/ping/ping.sdk.init.start.ts | 60 + .../src/ping/ping.sdk.scan.conditions.ts | 39 + .../analytics/src/ping/ping.sdk.ux.event.ts | 63 + .../src/ping/ping.sdk.wrapper.product.ts | 36 + packages/analytics/tsconfig.json | 10 + packages/analytics/typedoc.json | 7 + packages/blinkcard-core/.eslintrc.cjs | 52 + packages/blinkcard-core/.gitignore | 3 + packages/blinkcard-core/CHANGELOG.md | 14 + packages/blinkcard-core/README.md | 71 + packages/blinkcard-core/api-extractor.json | 457 +++++ packages/blinkcard-core/docs/README.md | 90 + .../docs/classes/BlinkCardWorker.md | 151 ++ .../docs/classes/LicenseError.md | 39 + .../docs/classes/ServerPermissionError.md | 39 + .../docs/functions/createCustomImageData.md | 26 + .../docs/functions/createDerivedDeviceInfo.md | 23 + .../docs/functions/createProxyWorker.md | 43 + .../docs/functions/extractSideInputImage.md | 31 + .../docs/functions/getDeviceInfo.md | 13 + .../docs/functions/getUserAgentData.md | 19 + .../docs/functions/getUserId.md | 27 + .../docs/functions/loadBlinkCardCore.md | 89 + .../docs/interfaces/UADataValues.md | 81 + .../docs/type-aliases/AnonymizationMode.md | 12 + .../type-aliases/AnonymizationSettings.md | 51 + .../docs/type-aliases/BlinkCardCore.md | 14 + .../type-aliases/BlinkCardInitSettings.md | 14 + .../type-aliases/BlinkCardProcessResult.md | 31 + .../type-aliases/BlinkCardScanningResult.md | 64 + .../type-aliases/BlinkCardScanningSession.md | 11 + .../type-aliases/BlinkCardSessionSettings.md | 37 + .../BlinkCardSessionSettingsInput.md | 12 + .../BlinkCardWorkerInitSettings.md | 82 + .../docs/type-aliases/BlinkCardWorkerProxy.md | 11 + .../type-aliases/BrowserStorageSupport.md | 21 + .../docs/type-aliases/CardAccountResult.md | 90 + .../type-aliases/CardLivenessCheckResult.md | 38 + .../CardNumberAnonymizationSettings.md | 37 + .../docs/type-aliases/CardRotation.md | 9 + .../docs/type-aliases/CheckResult.md | 11 + .../docs/type-aliases/CroppedImageSettings.md | 32 + .../docs/type-aliases/DateResult.md | 59 + .../docs/type-aliases/DerivedDeviceInfo.md | 41 + .../docs/type-aliases/DetectionLevel.md | 15 + .../docs/type-aliases/DetectionStatus.md | 9 + .../docs/type-aliases/DeviceInfo.md | 57 + .../docs/type-aliases/DeviceScreenInfo.md | 45 + .../docs/type-aliases/ExtractionSettings.md | 64 + .../type-aliases/FieldExtractionStatus.md | 11 + .../docs/type-aliases/FormFactor.md | 15 + .../docs/type-aliases/GpuInfo.md | 37 + .../ImageAnalysisDetectionStatus.md | 11 + .../type-aliases/ImageExtractionStatus.md | 11 + .../type-aliases/InputImageAnalysisResult.md | 51 + .../docs/type-aliases/InputImageSource.md | 14 + .../docs/type-aliases/LicenseRequest.md | 11 + .../docs/type-aliases/LicenseTokenState.md | 11 + .../docs/type-aliases/LicenseUnlockResult.md | 11 + .../docs/type-aliases/LivenessSettings.md | 79 + .../docs/type-aliases/LoadWasmParams.md | 29 + .../PartialScanningSettingsInput.md | 12 + .../type-aliases/ProcessResultWithBuffer.md | 17 + .../docs/type-aliases/ProcessingStatus.md | 11 + .../type-aliases/ProgressStatusCallback.md | 21 + .../type-aliases/RemoteScanningSession.md | 11 + .../docs/type-aliases/ResourceFileType.md | 9 + .../docs/type-aliases/ResultCompleteness.md | 75 + .../docs/type-aliases/ScanningSettings.md | 99 + .../docs/type-aliases/ScanningSide.md | 11 + .../docs/type-aliases/ScanningStatus.md | 15 + .../ServerPermissionErrorReason.md | 11 + .../ServerPermissionSubmitError.md | 11 + .../type-aliases/SingleSideScanningResult.md | 29 + .../docs/type-aliases/StrictnessLevel.md | 21 + .../docs/type-aliases/WasmBuildType.md | 9 + .../docs/type-aliases/WasmVariant.md | 9 + .../type-aliases/WorkerScanningSession.md | 81 + .../docs/variables/getCrossOriginWorkerURL.md | 31 + .../docs/variables/resourceFileTypes.md | 11 + .../docs/variables/wasmBuildTypes.md | 9 + .../docs/variables/wasmVariants.md | 9 + .../blinkcard-core/lint-staged.config.mjs | 7 + packages/blinkcard-core/package.json | 93 + .../scripts/prepare-publish.mts | 69 + packages/blinkcard-core/src/index.ts | 55 + .../src/loadBlinkCardCore.test.ts | 117 ++ .../blinkcard-core/src/loadBlinkCardCore.ts | 89 + packages/blinkcard-core/src/utils.test.ts | 125 ++ packages/blinkcard-core/src/utils.ts | 25 + packages/blinkcard-core/tsconfig.json | 9 + packages/blinkcard-core/turbo.json | 9 + packages/blinkcard-core/typedoc.json | 7 + packages/blinkcard-core/vite.config.mts | 100 + packages/blinkcard-core/vitest.setup.ts | 30 + packages/blinkcard-ux-manager/.eslintrc.cjs | 53 + packages/blinkcard-ux-manager/.gitignore | 3 + packages/blinkcard-ux-manager/.prettierrc | 3 + packages/blinkcard-ux-manager/CHANGELOG.md | 14 + packages/blinkcard-ux-manager/README.md | 187 ++ .../blinkcard-ux-manager/api-extractor.json | 36 + packages/blinkcard-ux-manager/docs/README.md | 44 + .../docs/classes/FeedbackStabilizer.md | 194 ++ .../docs/classes/HapticFeedbackManager.md | 126 ++ .../functions/createBlinkCardFeedbackUi.md | 41 + .../functions/createBlinkCardUxManager.md | 31 + .../docs/functions/getUiStateKey.md | 38 + .../docs/interfaces/BlinkCardUxManager.md | 531 +++++ .../type-aliases/BlinkCardProcessingError.md | 12 + .../docs/type-aliases/BlinkCardReticleType.md | 11 + .../docs/type-aliases/BlinkCardUiState.md | 11 + .../docs/type-aliases/BlinkCardUiStateKey.md | 11 + .../docs/type-aliases/BlinkCardUiStateMap.md | 15 + .../docs/type-aliases/ErrorUiStateKey.md | 9 + .../docs/type-aliases/FeedbackUiOptions.md | 89 + .../docs/type-aliases/HapticFeedbackType.md | 11 + .../docs/type-aliases/LocaleRecord.md | 11 + .../docs/type-aliases/LocalizationStrings.md | 13 + .../docs/type-aliases/LocalizedValue.md | 17 + .../PartialLocalizationStrings.md | 11 + .../docs/type-aliases/UiState.md | 46 + .../docs/type-aliases/UiStateEvent.md | 45 + .../docs/type-aliases/UiStateMap.md | 11 + .../docs/variables/HAPTIC_FEEDBACK_CONFIGS.md | 11 + .../docs/variables/blinkCardUiStateMap.md | 11 + .../variables/firstSideCapturedUiStateKeys.md | 11 + .../lint-staged.config.cjs | 7 + packages/blinkcard-ux-manager/package.json | 114 ++ .../scripts/prepare-publish.mts | 91 + .../src/core/BlinkCardProcessingError.ts | 20 + .../src/core/BlinkCardUxManager.test.ts | 822 ++++++++ .../src/core/BlinkCardUxManager.ts | 1079 +++++++++++ .../src/core/__testdata/blankProcessResult.ts | 26 + .../src/core/blinkcard-ui-state.test.ts | 220 +++ .../src/core/blinkcard-ui-state.ts | 281 +++ .../src/core/createBlinkCardUxManager.test.ts | 64 + .../src/core/createBlinkCardUxManager.ts | 39 + .../src/core/debounce.test.ts | 41 + .../blinkcard-ux-manager/src/core/debounce.ts | 41 + packages/blinkcard-ux-manager/src/global.d.ts | 31 + packages/blinkcard-ux-manager/src/index.ts | 47 + .../src/ui/BlinkCardFeedbackUi.tsx | 195 ++ .../src/ui/BlinkCardUiStoreContext.tsx | 139 ++ .../src/ui/LocalizationContext.tsx | 114 ++ .../src/ui/UiFeedbackOverlay.tsx | 338 ++++ .../src/ui/assets/demo-overlay.svg | 20 + .../src/ui/assets/help/help_blur.svg | 327 ++++ .../src/ui/assets/help/help_camera_lens.svg | 47 + .../src/ui/assets/help/help_card_number.svg | 77 + .../src/ui/assets/help/help_lighting.svg | 81 + .../src/ui/assets/help/help_occlusion.svg | 86 + .../src/ui/assets/icons/icon-question.svg | 3 + .../src/ui/assets/microblink.svg | 28 + .../src/ui/assets/onboarding/card_number.svg | 138 ++ .../assets/onboarding/card_number_desktop.svg | 148 ++ .../src/ui/assets/reticles/card-back.svg | 35 + .../src/ui/assets/reticles/card-front.svg | 32 + .../src/ui/assets/reticles/done.svg | 6 + .../src/ui/assets/reticles/full.svg | 6 + .../src/ui/assets/reticles/searching.svg | 6 + .../src/ui/assets/reticles/spin.svg | 9 + .../src/ui/createBlinkCardFeedbackUi.tsx | 114 ++ .../src/ui/dialogs/ErrorModal.tsx | 59 + .../src/ui/dialogs/HelpModal.tsx | 292 +++ .../src/ui/dialogs/OnboardingGuideModal.tsx | 78 + .../src/ui/dialogs/styles.module.scss | 167 ++ .../src/ui/feedbackMessages.ts | 33 + .../blinkcard-ux-manager/src/ui/locales/ak.ts | 72 + .../blinkcard-ux-manager/src/ui/locales/am.ts | 72 + .../blinkcard-ux-manager/src/ui/locales/ar.ts | 72 + .../blinkcard-ux-manager/src/ui/locales/bn.ts | 72 + .../blinkcard-ux-manager/src/ui/locales/cs.ts | 72 + .../blinkcard-ux-manager/src/ui/locales/da.ts | 72 + .../blinkcard-ux-manager/src/ui/locales/de.ts | 73 + .../blinkcard-ux-manager/src/ui/locales/el.ts | 73 + .../blinkcard-ux-manager/src/ui/locales/en.ts | 72 + .../src/ui/locales/en_GB.ts | 72 + .../blinkcard-ux-manager/src/ui/locales/es.ts | 73 + .../src/ui/locales/es_MX.ts | 73 + .../src/ui/locales/fa-latn.ts | 72 + .../blinkcard-ux-manager/src/ui/locales/fi.ts | 72 + .../src/ui/locales/fil.ts | 72 + .../blinkcard-ux-manager/src/ui/locales/fr.ts | 72 + .../src/ui/locales/fr_CA.ts | 73 + .../blinkcard-ux-manager/src/ui/locales/ha.ts | 72 + .../blinkcard-ux-manager/src/ui/locales/he.ts | 72 + .../blinkcard-ux-manager/src/ui/locales/hi.ts | 72 + .../blinkcard-ux-manager/src/ui/locales/hr.ts | 72 + .../blinkcard-ux-manager/src/ui/locales/hu.ts | 73 + .../blinkcard-ux-manager/src/ui/locales/id.ts | 72 + .../blinkcard-ux-manager/src/ui/locales/is.ts | 72 + .../blinkcard-ux-manager/src/ui/locales/it.ts | 72 + .../blinkcard-ux-manager/src/ui/locales/ja.ts | 73 + .../src/ui/locales/ka_GE.ts | 72 + .../blinkcard-ux-manager/src/ui/locales/kk.ts | 72 + .../src/ui/locales/km_KH.ts | 72 + .../blinkcard-ux-manager/src/ui/locales/ko.ts | 72 + .../blinkcard-ux-manager/src/ui/locales/lv.ts | 72 + .../blinkcard-ux-manager/src/ui/locales/ms.ts | 72 + .../blinkcard-ux-manager/src/ui/locales/ne.ts | 74 + .../blinkcard-ux-manager/src/ui/locales/nl.ts | 72 + .../blinkcard-ux-manager/src/ui/locales/no.ts | 72 + .../blinkcard-ux-manager/src/ui/locales/pl.ts | 73 + .../src/ui/locales/ps_AF.ts | 72 + .../blinkcard-ux-manager/src/ui/locales/pt.ts | 72 + .../src/ui/locales/pt_BR.ts | 72 + .../blinkcard-ux-manager/src/ui/locales/ro.ts | 72 + .../blinkcard-ux-manager/src/ui/locales/ru.ts | 72 + .../blinkcard-ux-manager/src/ui/locales/si.ts | 72 + .../blinkcard-ux-manager/src/ui/locales/sk.ts | 72 + .../blinkcard-ux-manager/src/ui/locales/sl.ts | 72 + .../blinkcard-ux-manager/src/ui/locales/sr.ts | 72 + .../blinkcard-ux-manager/src/ui/locales/sv.ts | 72 + .../blinkcard-ux-manager/src/ui/locales/sw.ts | 72 + .../blinkcard-ux-manager/src/ui/locales/th.ts | 72 + .../blinkcard-ux-manager/src/ui/locales/tr.ts | 72 + .../blinkcard-ux-manager/src/ui/locales/uk.ts | 72 + .../blinkcard-ux-manager/src/ui/locales/ur.ts | 72 + .../blinkcard-ux-manager/src/ui/locales/uz.ts | 72 + .../blinkcard-ux-manager/src/ui/locales/vi.ts | 72 + .../blinkcard-ux-manager/src/ui/locales/yo.ts | 74 + .../src/ui/locales/zh_CN.ts | 72 + .../src/ui/locales/zh_TW.ts | 72 + .../src/ui/styles.module.scss | 6 + packages/blinkcard-ux-manager/svgo.config.cjs | 13 + packages/blinkcard-ux-manager/tsconfig.json | 13 + packages/blinkcard-ux-manager/turbo.json | 9 + packages/blinkcard-ux-manager/typedoc.json | 7 + packages/blinkcard-ux-manager/uno.config.ts | 7 + packages/blinkcard-ux-manager/vite.config.mts | 74 + packages/blinkcard-wasm/.gitignore | 3 + packages/blinkcard-wasm/.prettierrc | 3 + packages/blinkcard-wasm/CHANGELOG.md | 7 + packages/blinkcard-wasm/README.md | 21 + .../advanced-threads/BlinkCardModule.data | Bin 0 -> 8578325 bytes .../dist/advanced-threads/BlinkCardModule.js | 141 ++ .../advanced-threads/BlinkCardModule.wasm | Bin 0 -> 2280213 bytes .../dist/advanced/BlinkCardModule.data | Bin 0 -> 8578325 bytes .../dist/advanced/BlinkCardModule.js | 122 ++ .../dist/advanced/BlinkCardModule.wasm | Bin 0 -> 2256272 bytes .../dist/basic/BlinkCardModule.data | Bin 0 -> 8578325 bytes .../dist/basic/BlinkCardModule.js | 122 ++ .../dist/basic/BlinkCardModule.wasm | Bin 0 -> 2252995 bytes .../blinkcard-wasm/dist/size-manifest.json | 12 + packages/blinkcard-wasm/docs/README.md | 53 + .../docs/type-aliases/AnonymizationMode.md | 12 + .../type-aliases/AnonymizationSettings.md | 51 + .../type-aliases/BlinkCardProcessResult.md | 31 + .../type-aliases/BlinkCardScanningResult.md | 64 + .../type-aliases/BlinkCardScanningSession.md | 11 + .../type-aliases/BlinkCardSessionSettings.md | 37 + .../BlinkCardSessionSettingsInput.md | 12 + .../docs/type-aliases/CardAccountResult.md | 90 + .../type-aliases/CardLivenessCheckResult.md | 38 + .../CardNumberAnonymizationSettings.md | 37 + .../docs/type-aliases/CardRotation.md | 9 + .../docs/type-aliases/CheckResult.md | 11 + .../docs/type-aliases/CroppedImageSettings.md | 32 + .../docs/type-aliases/DateResult.md | 59 + .../docs/type-aliases/DetectionLevel.md | 15 + .../docs/type-aliases/DetectionStatus.md | 9 + .../docs/type-aliases/ExtractionSettings.md | 64 + .../type-aliases/FieldExtractionStatus.md | 11 + .../ImageAnalysisDetectionStatus.md | 11 + .../type-aliases/ImageExtractionStatus.md | 11 + .../type-aliases/InputImageAnalysisResult.md | 51 + .../docs/type-aliases/InputImageSource.md | 14 + .../docs/type-aliases/LicenseRequest.md | 11 + .../docs/type-aliases/LicenseTokenState.md | 11 + .../docs/type-aliases/LicenseUnlockResult.md | 11 + .../docs/type-aliases/LivenessSettings.md | 79 + .../PartialScanningSettingsInput.md | 12 + .../docs/type-aliases/ProcessingStatus.md | 11 + .../docs/type-aliases/ResourceFileType.md | 9 + .../docs/type-aliases/ResultCompleteness.md | 75 + .../docs/type-aliases/ScanningSettings.md | 99 + .../docs/type-aliases/ScanningSide.md | 11 + .../docs/type-aliases/ScanningStatus.md | 15 + .../ServerPermissionErrorReason.md | 11 + .../ServerPermissionSubmitError.md | 11 + .../type-aliases/SingleSideScanningResult.md | 29 + .../docs/type-aliases/StrictnessLevel.md | 21 + .../docs/type-aliases/WasmBuildType.md | 9 + .../docs/type-aliases/WasmVariant.md | 9 + .../docs/variables/resourceFileTypes.md | 11 + .../docs/variables/wasmBuildTypes.md | 9 + .../docs/variables/wasmVariants.md | 9 + packages/blinkcard-wasm/package.json | 64 + packages/blinkcard-wasm/src/index.ts | 9 + .../src/session/BlinkCardScanningSession.ts | 38 + packages/blinkcard-wasm/src/session/index.ts | 8 + .../src/session/result/index.ts | 6 + .../src/session/result/process-result.ts | 212 ++ .../src/session/result/scanning-result.ts | 133 ++ .../src/session/scanning-settings.ts | 271 +++ .../src/session/session-settings.ts | 75 + packages/blinkcard-wasm/src/wasm-module.ts | 52 + packages/blinkcard-wasm/tsconfig.json | 10 + packages/blinkcard-wasm/typedoc.json | 7 + packages/blinkcard-worker/.eslintrc.cjs | 37 + packages/blinkcard-worker/.gitignore | 1 + packages/blinkcard-worker/CHANGELOG.md | 14 + packages/blinkcard-worker/README.md | 34 + packages/blinkcard-worker/docs/README.md | 20 + .../docs/classes/BlinkCardWorker.md | 151 ++ .../docs/classes/LicenseError.md | 39 + .../docs/classes/ServerPermissionError.md | 39 + .../BlinkCardWorkerInitSettings.md | 82 + .../docs/type-aliases/BlinkCardWorkerProxy.md | 11 + .../docs/type-aliases/LoadWasmParams.md | 29 + .../type-aliases/ProcessResultWithBuffer.md | 17 + .../type-aliases/ProgressStatusCallback.md | 21 + .../type-aliases/WorkerScanningSession.md | 81 + .../blinkcard-worker/lint-staged.config.cjs | 8 + packages/blinkcard-worker/package.json | 62 + .../src/BlinkCardWorker.test.ts | 207 ++ .../blinkcard-worker/src/BlinkCardWorker.ts | 712 +++++++ .../src/downloadResourceBuffer.test.ts | 187 ++ .../src/downloadResourceBuffer.ts | 97 + .../src/getWasmFileSize.test.ts | 44 + .../blinkcard-worker/src/getWasmFileSize.ts | 19 + packages/blinkcard-worker/src/index.ts | 13 + packages/blinkcard-worker/tsconfig.json | 13 + packages/blinkcard-worker/typedoc.json | 7 + packages/blinkcard-worker/vite.config.mts | 17 + packages/blinkcard/.eslintrc.cjs | 52 + packages/blinkcard/.gitignore | 4 + packages/blinkcard/CHANGELOG.md | 13 + packages/blinkcard/README.md | 84 + packages/blinkcard/RELEASE_NOTES.md | 66 + packages/blinkcard/api-extractor.json | 457 +++++ packages/blinkcard/docs/README.md | 156 ++ .../blinkcard/docs/classes/BlinkCardWorker.md | 151 ++ packages/blinkcard/docs/classes/Camera.md | 371 ++++ .../blinkcard/docs/classes/CameraError.md | 55 + .../blinkcard/docs/classes/CameraManager.md | 509 +++++ .../docs/classes/FeedbackStabilizer.md | 194 ++ .../docs/classes/HapticFeedbackManager.md | 126 ++ .../blinkcard/docs/classes/LicenseError.md | 39 + .../docs/classes/ServerPermissionError.md | 39 + .../docs/classes/VideoFrameProcessor.md | 122 ++ .../docs/functions/createBlinkCard.md | 141 ++ .../functions/createBlinkCardFeedbackUi.md | 41 + .../docs/functions/createCameraManagerUi.md | 37 + .../docs/functions/createCustomImageData.md | 26 + .../docs/functions/createDerivedDeviceInfo.md | 23 + .../docs/functions/createProxyWorker.md | 43 + .../docs/functions/extractSideInputImage.md | 31 + .../docs/functions/findResolutionKey.md | 25 + .../blinkcard/docs/functions/getDeviceInfo.md | 13 + .../docs/functions/getNormalizedResolution.md | 25 + .../blinkcard/docs/functions/getUiStateKey.md | 38 + .../docs/functions/getUserAgentData.md | 19 + .../blinkcard/docs/functions/getUserId.md | 27 + .../docs/functions/isBufferDetached.md | 25 + .../docs/functions/loadBlinkCardCore.md | 89 + .../docs/functions/matchClosestResolution.md | 25 + .../docs/functions/returnLongerSide.md | 25 + .../docs/interfaces/BlinkCardUxManager.md | 531 +++++ .../blinkcard/docs/interfaces/UADataValues.md | 81 + .../docs/type-aliases/AnonymizationMode.md | 12 + .../type-aliases/AnonymizationSettings.md | 51 + .../docs/type-aliases/BlinkCardComponent.md | 71 + .../type-aliases/BlinkCardComponentOptions.md | 14 + .../docs/type-aliases/BlinkCardCore.md | 14 + .../type-aliases/BlinkCardInitSettings.md | 14 + .../type-aliases/BlinkCardProcessResult.md | 31 + .../type-aliases/BlinkCardProcessingError.md | 12 + .../docs/type-aliases/BlinkCardReticleType.md | 11 + .../type-aliases/BlinkCardScanningResult.md | 64 + .../type-aliases/BlinkCardScanningSession.md | 11 + .../type-aliases/BlinkCardSessionSettings.md | 37 + .../BlinkCardSessionSettingsInput.md | 12 + .../docs/type-aliases/BlinkCardUiState.md | 11 + .../docs/type-aliases/BlinkCardUiStateKey.md | 11 + .../docs/type-aliases/BlinkCardUiStateMap.md | 15 + .../type-aliases/BlinkCardUxManagerType.md | 11 + .../BlinkCardWorkerInitSettings.md | 82 + .../docs/type-aliases/BlinkCardWorkerProxy.md | 11 + .../type-aliases/BrowserStorageSupport.md | 21 + .../docs/type-aliases/CameraErrorCode.md | 11 + .../type-aliases/CameraManagerComponent.md | 90 + .../docs/type-aliases/CameraManagerOptions.md | 39 + .../docs/type-aliases/CameraManagerStore.md | 108 ++ .../type-aliases/CameraManagerUiOptions.md | 75 + .../docs/type-aliases/CameraPermission.md | 9 + .../docs/type-aliases/CameraPreference.md | 15 + .../docs/type-aliases/CameraUiLocaleRecord.md | 11 + .../CameraUiLocalizationStrings.md | 11 + .../docs/type-aliases/CameraUiRefs.md | 35 + .../docs/type-aliases/CanvasRenderingMode.md | 11 + .../docs/type-aliases/CardAccountResult.md | 90 + .../type-aliases/CardLivenessCheckResult.md | 38 + .../CardNumberAnonymizationSettings.md | 37 + .../docs/type-aliases/CardRotation.md | 9 + .../docs/type-aliases/CheckResult.md | 11 + .../docs/type-aliases/CroppedImageSettings.md | 32 + .../blinkcard/docs/type-aliases/DateResult.md | 59 + .../docs/type-aliases/DerivedDeviceInfo.md | 41 + .../docs/type-aliases/DetectionLevel.md | 15 + .../docs/type-aliases/DetectionStatus.md | 9 + .../blinkcard/docs/type-aliases/DeviceInfo.md | 57 + .../docs/type-aliases/DeviceScreenInfo.md | 45 + .../docs/type-aliases/DismountCallback.md | 15 + .../docs/type-aliases/ErrorUiStateKey.md | 9 + .../docs/type-aliases/ExtractionArea.md | 35 + .../docs/type-aliases/ExtractionSettings.md | 64 + .../blinkcard/docs/type-aliases/FacingMode.md | 9 + .../docs/type-aliases/FeedbackUiOptions.md | 89 + .../type-aliases/FieldExtractionStatus.md | 11 + .../blinkcard/docs/type-aliases/FormFactor.md | 15 + .../docs/type-aliases/FrameCaptureCallback.md | 26 + .../blinkcard/docs/type-aliases/GpuInfo.md | 37 + .../docs/type-aliases/HapticFeedbackType.md | 11 + .../ImageAnalysisDetectionStatus.md | 11 + .../type-aliases/ImageExtractionStatus.md | 11 + .../docs/type-aliases/ImageSource.md | 9 + .../type-aliases/InputImageAnalysisResult.md | 51 + .../docs/type-aliases/InputImageSource.md | 14 + .../docs/type-aliases/LicenseRequest.md | 11 + .../docs/type-aliases/LicenseTokenState.md | 11 + .../docs/type-aliases/LicenseUnlockResult.md | 11 + .../docs/type-aliases/LivenessSettings.md | 79 + .../docs/type-aliases/LoadWasmParams.md | 29 + .../docs/type-aliases/LocaleRecord.md | 11 + .../docs/type-aliases/LocalizationStrings.md | 13 + .../docs/type-aliases/LocalizedValue.md | 17 + .../PartialLocalizationStrings.md | 11 + .../PartialScanningSettingsInput.md | 12 + .../docs/type-aliases/PlaybackState.md | 11 + .../type-aliases/ProcessResultWithBuffer.md | 17 + .../docs/type-aliases/ProcessingStatus.md | 11 + .../type-aliases/ProgressStatusCallback.md | 21 + .../type-aliases/RemoteScanningSession.md | 11 + .../blinkcard/docs/type-aliases/Resolution.md | 28 + .../docs/type-aliases/ResourceFileType.md | 9 + .../docs/type-aliases/ResultCompleteness.md | 75 + .../docs/type-aliases/ScanningSettings.md | 99 + .../docs/type-aliases/ScanningSide.md | 11 + .../docs/type-aliases/ScanningStatus.md | 15 + .../ServerPermissionErrorReason.md | 11 + .../ServerPermissionSubmitError.md | 11 + .../type-aliases/SingleSideScanningResult.md | 29 + .../type-aliases/StartCameraStreamOptions.md | 29 + .../docs/type-aliases/StrictnessLevel.md | 21 + .../blinkcard/docs/type-aliases/UiState.md | 46 + .../docs/type-aliases/UiStateEvent.md | 45 + .../blinkcard/docs/type-aliases/UiStateMap.md | 11 + .../VideoFrameProcessorInitOptions.md | 23 + .../docs/type-aliases/VideoResolutionName.md | 16 + .../docs/type-aliases/WasmBuildType.md | 9 + .../docs/type-aliases/WasmVariant.md | 9 + .../type-aliases/WorkerScanningSession.md | 81 + .../docs/variables/HAPTIC_FEEDBACK_CONFIGS.md | 11 + .../docs/variables/MOUNT_POINT_ID.md | 11 + .../docs/variables/blinkCardUiStateMap.md | 11 + .../docs/variables/cameraManagerStore.md | 84 + .../docs/variables/cameraUiRefStore.md | 73 + .../variables/createBlinkCardUxManager.md | 31 + .../variables/defaultCameraManagerOptions.md | 11 + .../variables/firstSideCapturedUiStateKeys.md | 11 + .../blinkcard/docs/variables/getBuffer.md | 26 + .../docs/variables/getCrossOriginWorkerURL.md | 31 + .../docs/variables/resetCameraManagerStore.md | 17 + .../docs/variables/resourceFileTypes.md | 11 + .../docs/variables/videoResolutions.md | 54 + .../docs/variables/wasmBuildTypes.md | 9 + .../blinkcard/docs/variables/wasmVariants.md | 9 + packages/blinkcard/lint-staged.config.mjs | 7 + packages/blinkcard/package.json | 92 + .../blinkcard/scripts/prepare-publish.mts | 88 + .../blinkcard/src/createBlinkCard.test.ts | 306 +++ packages/blinkcard/src/createBlinkCard.ts | 214 +++ packages/blinkcard/src/index.ts | 16 + packages/blinkcard/tsconfig.json | 9 + packages/blinkcard/turbo.json | 9 + packages/blinkcard/typedoc.json | 7 + packages/blinkcard/vite.config.mts | 53 + packages/blinkid-core/CHANGELOG.md | 11 + packages/blinkid-core/README.md | 2 +- packages/blinkid-core/docs/README.md | 11 +- .../docs/functions/createDerivedDeviceInfo.md | 23 + .../docs/functions/createProxyWorker.md | 31 +- .../blinkid-core/docs/functions/getUserId.md | 10 +- .../docs/functions/loadBlinkIdCore.md | 4 +- .../docs/functions/testLocalStorage.md | 15 - .../interfaces/NavigatorUABrandVersion.md | 23 - .../docs/interfaces/NavigatorUAData.md | 71 - .../docs/interfaces/UADataValues.md | 4 +- .../docs/interfaces/UALowEntropyJSON.md | 33 - .../blinkid-core/docs/type-aliases/Hints.md | 11 - .../docs/type-aliases/RemoteWorker.md | 14 - .../type-aliases/ServerPermissionError.md | 11 - .../ServerPermissionErrorReason.md | 11 + .../ServerPermissionSubmitError.md | 2 +- .../getCrossOriginWorkerURL.md | 8 +- .../docs/variables/resourceFileTypes.md | 2 +- packages/blinkid-core/package.json | 9 +- .../blinkid-core/scripts/prepare-publish.mts | 10 +- packages/blinkid-core/src/BlinkIdCore.ts | 17 +- .../blinkid-core/src/createProxyWorker.ts | 107 -- .../src/defaultSessionSettings.ts | 2 +- packages/blinkid-core/src/index.ts | 24 +- .../src/shouldUseLightweightBuild.test.ts | 209 -- packages/blinkid-core/src/utils.test.ts | 2 +- packages/blinkid-core/src/utils.ts | 2 +- packages/blinkid-core/typedoc.json | 2 +- packages/blinkid-core/vite.config.mts | 13 +- packages/blinkid-core/vitest.config.ts | 4 +- packages/blinkid-core/vitest.setup.ts | 2 +- packages/blinkid-ux-manager/CHANGELOG.md | 9 + .../blinkid-ux-manager/api-extractor.json | 2 +- .../docs/classes/HapticFeedbackManager.md | 2 +- .../docs/functions/createBlinkIdFeedbackUi.md | 2 + packages/blinkid-ux-manager/package.json | 7 +- .../scripts/prepare-publish.mts | 17 +- .../src/core/BlinkIdProcessingError.ts | 2 +- .../src/core/BlinkIdUxManager.test.ts | 2 +- .../src/core/BlinkIdUxManager.ts | 6 +- .../src/core/DocumentClassFilter.ts | 2 +- .../src/core/__testdata/blankProcessResult.ts | 2 +- .../src/core/blinkid-ui-state.test.ts | 2 +- .../src/core/blinkid-ui-state.ts | 2 +- .../src/core/ping-camera-utils.ts | 2 +- packages/blinkid-ux-manager/src/global.d.ts | 2 +- packages/blinkid-ux-manager/src/index.ts | 4 +- .../src/shared/ping-implementations.ts | 2 +- .../src/shared/uiEventFeedbackMapper.ts | 2 +- .../src/ui/BlinkIdFeedbackUi.tsx | 2 +- .../src/ui/BlinkIdUiStoreContext.tsx | 2 +- .../src/ui/LocalizationContext.tsx | 2 +- .../src/ui/UiFeedbackOverlay.tsx | 2 +- .../src/ui/createBlinkIdFeedbackUi.tsx | 4 +- .../src/ui/dialogs/ErrorModal.tsx | 2 +- .../src/ui/dialogs/HelpModal.tsx | 2 +- .../src/ui/dialogs/OnboardingGuideModal.tsx | 2 +- .../src/ui/feedbackMessages.ts | 2 +- .../blinkid-ux-manager/src/ui/locales/ak.ts | 7 +- .../blinkid-ux-manager/src/ui/locales/am.ts | 7 +- .../blinkid-ux-manager/src/ui/locales/ar.ts | 13 +- .../blinkid-ux-manager/src/ui/locales/bn.ts | 7 +- .../blinkid-ux-manager/src/ui/locales/cs.ts | 9 +- .../blinkid-ux-manager/src/ui/locales/da.ts | 7 +- .../blinkid-ux-manager/src/ui/locales/de.ts | 9 +- .../blinkid-ux-manager/src/ui/locales/el.ts | 9 +- .../blinkid-ux-manager/src/ui/locales/en.ts | 6 +- .../src/ui/locales/en_GB.ts | 7 +- .../blinkid-ux-manager/src/ui/locales/es.ts | 11 +- .../src/ui/locales/es_MX.ts | 7 +- .../src/ui/locales/fa-latn.ts | 7 +- .../blinkid-ux-manager/src/ui/locales/fi.ts | 7 +- .../blinkid-ux-manager/src/ui/locales/fil.ts | 7 +- .../blinkid-ux-manager/src/ui/locales/fr.ts | 9 +- .../src/ui/locales/fr_CA.ts | 7 +- .../blinkid-ux-manager/src/ui/locales/ha.ts | 7 +- .../blinkid-ux-manager/src/ui/locales/he.ts | 14 +- .../blinkid-ux-manager/src/ui/locales/hi.ts | 7 +- .../blinkid-ux-manager/src/ui/locales/hr.ts | 21 +- .../blinkid-ux-manager/src/ui/locales/hu.ts | 9 +- .../blinkid-ux-manager/src/ui/locales/id.ts | 9 +- .../src/ui/locales/index.ts | 2 +- .../blinkid-ux-manager/src/ui/locales/is.ts | 7 +- .../blinkid-ux-manager/src/ui/locales/it.ts | 13 +- .../blinkid-ux-manager/src/ui/locales/ja.ts | 7 +- .../src/ui/locales/ka_GE.ts | 7 +- .../blinkid-ux-manager/src/ui/locales/kk.ts | 7 +- .../src/ui/locales/km_KH.ts | 7 +- .../blinkid-ux-manager/src/ui/locales/ko.ts | 7 +- .../blinkid-ux-manager/src/ui/locales/lv.ts | 7 +- .../blinkid-ux-manager/src/ui/locales/ms.ts | 15 +- .../blinkid-ux-manager/src/ui/locales/ne.ts | 7 +- .../blinkid-ux-manager/src/ui/locales/nl.ts | 9 +- .../blinkid-ux-manager/src/ui/locales/no.ts | 7 +- .../blinkid-ux-manager/src/ui/locales/pl.ts | 7 +- .../src/ui/locales/ps_AF.ts | 7 +- .../blinkid-ux-manager/src/ui/locales/pt.ts | 13 +- .../src/ui/locales/pt_BR.ts | 7 +- .../blinkid-ux-manager/src/ui/locales/ro.ts | 9 +- .../blinkid-ux-manager/src/ui/locales/ru.ts | 7 +- .../blinkid-ux-manager/src/ui/locales/si.ts | 7 +- .../blinkid-ux-manager/src/ui/locales/sk.ts | 9 +- .../blinkid-ux-manager/src/ui/locales/sl.ts | 11 +- .../blinkid-ux-manager/src/ui/locales/sr.ts | 9 +- .../blinkid-ux-manager/src/ui/locales/sv.ts | 9 +- .../blinkid-ux-manager/src/ui/locales/sw.ts | 7 +- .../blinkid-ux-manager/src/ui/locales/th.ts | 7 +- .../blinkid-ux-manager/src/ui/locales/tr.ts | 9 +- .../blinkid-ux-manager/src/ui/locales/uk.ts | 7 +- .../blinkid-ux-manager/src/ui/locales/ur.ts | 9 +- .../blinkid-ux-manager/src/ui/locales/uz.ts | 7 +- .../blinkid-ux-manager/src/ui/locales/vi.ts | 9 +- .../blinkid-ux-manager/src/ui/locales/yo.ts | 7 +- .../src/ui/locales/zh_CN.ts | 9 +- .../src/ui/locales/zh_TW.ts | 7 +- packages/blinkid-ux-manager/typedoc.json | 2 +- packages/blinkid-ux-manager/uno.config.ts | 2 +- packages/blinkid-wasm/.clang-tidy | 8 - packages/blinkid-wasm/.gitignore | 2 - packages/blinkid-wasm/CHANGELOG.md | 7 + .../full/advanced-threads/BlinkIdModule.js | 256 +-- .../full/advanced-threads/BlinkIdModule.wasm | Bin 3308759 -> 3310478 bytes .../dist/full/advanced/BlinkIdModule.js | 200 +- .../dist/full/advanced/BlinkIdModule.wasm | Bin 3261875 -> 3263405 bytes .../dist/full/basic/BlinkIdModule.js | 200 +- .../dist/full/basic/BlinkIdModule.wasm | Bin 3242861 -> 3243844 bytes .../advanced-threads/BlinkIdModule.js | 258 +-- .../advanced-threads/BlinkIdModule.wasm | Bin 3343810 -> 3345833 bytes .../lightweight/advanced/BlinkIdModule.js | 198 +- .../lightweight/advanced/BlinkIdModule.wasm | Bin 3298460 -> 3299605 bytes .../dist/lightweight/basic/BlinkIdModule.js | 198 +- .../dist/lightweight/basic/BlinkIdModule.wasm | Bin 3280274 -> 3282594 bytes packages/blinkid-wasm/dist/size-manifest.json | 12 +- packages/blinkid-wasm/docs/README.md | 2 +- .../type-aliases/ServerPermissionError.md | 11 - .../ServerPermissionErrorReason.md | 11 + .../ServerPermissionSubmitError.md | 2 +- .../docs/variables/resourceFileTypes.md | 2 +- packages/blinkid-wasm/package.json | 9 +- packages/blinkid-wasm/src/index.ts | 7 +- packages/blinkid-wasm/src/ping/Ping.ts | 2 +- packages/blinkid-wasm/src/ping/PingBase.ts | 2 +- packages/blinkid-wasm/src/ping/index.ts | 2 +- .../src/ping/ping.browser.device.info.ts | 2 +- packages/blinkid-wasm/src/ping/ping.error.ts | 2 +- .../src/ping/ping.hardware.camera.info.ts | 2 +- packages/blinkid-wasm/src/ping/ping.log.ts | 2 +- .../src/ping/ping.sdk.camera.input.info.ts | 2 +- .../src/ping/ping.sdk.camera.permission.ts | 2 +- .../src/ping/ping.sdk.init.start.ts | 2 +- .../src/ping/ping.sdk.scan.conditions.ts | 2 +- .../src/ping/ping.sdk.ux.event.ts | 2 +- .../src/ping/ping.sdk.wrapper.product.ts | 2 +- .../src/result/DataMatchResult.ts | 2 +- .../blinkid-wasm/src/result/DependentInfo.ts | 2 +- .../src/result/DocumentImageColor.ts | 2 +- .../src/result/DocumentOrientation.ts | 2 +- .../src/result/DocumentRotation.ts | 2 +- packages/blinkid-wasm/src/result/FieldType.ts | 2 +- .../result/ImageAnalysisDetectionStatus.ts | 2 +- .../src/result/ImageAnalysisLightingStatus.ts | 2 +- .../src/result/ImageExtractionType.ts | 2 +- .../src/result/InputImageAnalysisResult.ts | 2 +- .../src/result/ProcessingStatus.ts | 2 +- .../src/result/RecognitionMode.ts | 2 +- .../src/result/ResultCompleteness.ts | 2 +- .../blinkid-wasm/src/result/ScanningSide.ts | 2 +- .../blinkid-wasm/src/result/ScanningStatus.ts | 2 +- .../src/result/SingleSideScanningResult.ts | 2 +- .../blinkid-wasm/src/result/StringResult.ts | 2 +- .../src/result/barcode/BarcodeData.ts | 2 +- .../src/result/barcode/BarcodeElement.ts | 2 +- .../src/result/barcode/BarcodeResult.ts | 2 +- .../blinkid-wasm/src/result/barcode/index.ts | 2 +- .../src/result/classinfo/Country.ts | 2 +- .../src/result/classinfo/DocumentClassInfo.ts | 2 +- .../src/result/classinfo/DocumentType.ts | 2 +- .../src/result/classinfo/Region.ts | 2 +- .../src/result/classinfo/index.ts | 2 +- .../image/DetailedCroppedImageResult.ts | 2 +- .../blinkid-wasm/src/result/image/index.ts | 2 +- packages/blinkid-wasm/src/result/index.ts | 2 +- .../blinkid-wasm/src/result/mrz/MrzResult.ts | 2 +- packages/blinkid-wasm/src/result/mrz/index.ts | 2 +- .../blinkid-wasm/src/result/viz/VizResult.ts | 2 +- packages/blinkid-wasm/src/result/viz/index.ts | 2 +- .../src/session/BlinkIdProcessResult.ts | 2 +- .../src/session/BlinkIdScanningResult.ts | 2 +- .../src/session/BlinkIdScanningSession.ts | 4 +- .../src/session/BlinkIdSessionError.ts | 2 +- .../src/session/BlinkIdSessionSettings.ts | 2 +- .../src/session/DetectionStatus.ts | 2 +- .../src/session/InputImageSource.ts | 2 +- .../blinkid-wasm/src/session/ScanningMode.ts | 2 +- packages/blinkid-wasm/src/session/index.ts | 2 +- .../src/settings/AnonymizationMode.ts | 2 +- .../src/settings/CroppedImageSettings.ts | 2 +- .../src/settings/DetailedFieldType.ts | 2 +- .../src/settings/DetectionLevel.ts | 2 +- .../settings/DocumentAnonymizationSettings.ts | 2 +- .../src/settings/DocumentFilter.ts | 2 +- .../src/settings/DocumentRules.ts | 2 +- .../src/settings/RecognitionModeFilter.ts | 2 +- .../src/settings/ScanningSettings.ts | 2 +- packages/blinkid-wasm/src/settings/index.ts | 2 +- .../blinkid-wasm/src/utils/AlphabetType.ts | 2 +- packages/blinkid-wasm/src/utils/DateResult.ts | 2 +- .../src/utils/DriverLicenceDetailedInfo.ts | 2 +- .../src/utils/VehicleClassInfo.ts | 2 +- packages/blinkid-wasm/src/utils/geometry.ts | 2 +- packages/blinkid-wasm/src/utils/index.ts | 2 +- packages/blinkid-wasm/src/wasm-module.ts | 8 +- packages/blinkid-wasm/typedoc.json | 2 +- packages/blinkid-worker/CHANGELOG.md | 10 + packages/blinkid-worker/package.json | 7 +- packages/blinkid-worker/src/BlinkIdWorker.ts | 37 +- .../src/buildSessionSettings.test.ts | 2 +- .../src/buildSessionSettings.ts | 2 +- .../src/downloadResourceBuffer.test.ts | 2 +- .../src/downloadResourceBuffer.ts | 2 +- .../src/getWasmFileSize.test.ts | 2 +- .../blinkid-worker/src/getWasmFileSize.ts | 2 +- packages/blinkid-worker/src/index.ts | 2 +- packages/blinkid-worker/typedoc.json | 2 +- packages/blinkid/CHANGELOG.md | 9 + packages/blinkid/README.md | 16 +- .../blinkid/RELEASE_NOTES.md | 8 +- packages/blinkid/docs/README.md | 11 +- .../docs/classes/HapticFeedbackManager.md | 2 +- .../docs/functions/createBlinkIdFeedbackUi.md | 2 + .../docs/functions/createDerivedDeviceInfo.md | 23 + .../docs/functions/createProxyWorker.md | 43 + packages/blinkid/docs/functions/getUserId.md | 10 +- .../blinkid/docs/functions/loadBlinkIdCore.md | 4 +- .../docs/functions/testLocalStorage.md | 15 - .../interfaces/NavigatorUABrandVersion.md | 23 - .../docs/interfaces/NavigatorUAData.md | 71 - .../blinkid/docs/interfaces/UADataValues.md | 4 +- .../docs/interfaces/UALowEntropyJSON.md | 33 - .../docs/type-aliases/CanvasRenderingMode.md | 2 +- packages/blinkid/docs/type-aliases/Hints.md | 11 - .../blinkid/docs/type-aliases/RemoteWorker.md | 14 - .../type-aliases/ServerPermissionError.md | 11 - .../ServerPermissionErrorReason.md | 11 + .../ServerPermissionSubmitError.md | 2 +- .../docs/variables/createProxyWorker.md | 26 - .../docs/variables/resourceFileTypes.md | 2 +- packages/blinkid/package.json | 8 +- packages/blinkid/scripts/prepare-publish.mts | 8 +- packages/blinkid/src/createBlinkIdUi.test.ts | 98 + packages/blinkid/src/createBlinkIdUi.ts | 6 +- packages/blinkid/src/index.ts | 2 +- packages/blinkid/typedoc.json | 2 +- packages/blinkid/vite.config.mts | 8 +- .../docs/type-aliases/CanvasRenderingMode.md | 2 +- packages/camera-manager/package.json | 6 +- .../scripts/prepare-publish.mts | 4 +- .../camera-manager/src/core/Camera.test.ts | 2 +- packages/camera-manager/src/core/Camera.ts | 2 +- .../src/core/CameraManager.test.ts | 2 +- .../camera-manager/src/core/CameraManager.ts | 2 +- .../src/core/VideoFrameProcessor.ts | 2 +- .../camera-manager/src/core/cameraError.ts | 2 +- .../src/core/cameraManagerStore.ts | 2 +- .../camera-manager/src/core/cameraNames.ts | 2 +- .../src/core/cameraUtils.test.ts | 2 +- .../camera-manager/src/core/cameraUtils.ts | 2 +- .../camera-manager/src/core/iosCameraNames.ts | 2 +- packages/camera-manager/src/core/utils.ts | 2 +- packages/camera-manager/src/global.d.ts | 2 +- packages/camera-manager/src/index.ts | 2 +- .../src/media-mock/MediaMocker.ts | 2 +- .../src/media-mock/createInputDeviceInfo.ts | 2 +- .../src/media-mock/defineProperty.ts | 2 +- .../src/media-mock/fake-devices.ts | 2 +- .../fakeDevices/DesktopSingleFrontFacing.ts | 2 +- .../media-mock/fakeDevices/SamsungS21FE.ts | 2 +- .../src/media-mock/fakeDevices/iPhone15.ts | 2 +- .../src/media-mock/fakeDevices/iPhoneSE.ts | 2 +- .../src/media-mock/fakeDevices/iPhoneX.ts | 2 +- .../camera-manager/src/media-mock/utils.ts | 2 +- .../src/tests/camera-picking.test.ts | 2 +- .../src/ui/CameraErrorModal.tsx | 2 +- .../camera-manager/src/ui/CameraSelector.tsx | 2 +- .../src/ui/CameraUiStoreContext.tsx | 2 +- .../camera-manager/src/ui/CaptureScreen.tsx | 2 +- packages/camera-manager/src/ui/Header.tsx | 2 +- .../src/ui/LocalizationContext.tsx | 2 +- .../camera-manager/src/ui/RootComponent.tsx | 2 +- .../camera-manager/src/ui/SolidShadowRoot.tsx | 2 +- .../src/ui/createCameraManagerUi.tsx | 2 +- packages/camera-manager/src/ui/debounce.ts | 2 +- .../src/ui/determineFitMode.test.ts | 2 +- .../camera-manager/src/ui/determineFitMode.ts | 2 +- .../src/ui/getVisibleVideoArea.test.ts | 2 +- .../src/ui/getVisibleVideoArea.ts | 2 +- packages/camera-manager/src/ui/locales/ak.ts | 29 +- packages/camera-manager/src/ui/locales/am.ts | 5 +- packages/camera-manager/src/ui/locales/ar.ts | 5 +- packages/camera-manager/src/ui/locales/bn.ts | 5 +- packages/camera-manager/src/ui/locales/cs.ts | 5 +- packages/camera-manager/src/ui/locales/da.ts | 5 +- packages/camera-manager/src/ui/locales/de.ts | 5 +- packages/camera-manager/src/ui/locales/el.ts | 7 +- packages/camera-manager/src/ui/locales/en.ts | 4 +- .../camera-manager/src/ui/locales/en_GB.ts | 5 +- packages/camera-manager/src/ui/locales/es.ts | 5 +- .../camera-manager/src/ui/locales/es_MX.ts | 5 +- .../camera-manager/src/ui/locales/fa-latn.ts | 5 +- packages/camera-manager/src/ui/locales/fi.ts | 5 +- packages/camera-manager/src/ui/locales/fil.ts | 5 +- packages/camera-manager/src/ui/locales/fr.ts | 5 +- .../camera-manager/src/ui/locales/fr_CA.ts | 5 +- packages/camera-manager/src/ui/locales/ha.ts | 5 +- packages/camera-manager/src/ui/locales/he.ts | 5 +- packages/camera-manager/src/ui/locales/hi.ts | 5 +- packages/camera-manager/src/ui/locales/hr.ts | 9 +- packages/camera-manager/src/ui/locales/hu.ts | 5 +- packages/camera-manager/src/ui/locales/id.ts | 5 +- .../camera-manager/src/ui/locales/index.ts | 2 +- packages/camera-manager/src/ui/locales/is.ts | 5 +- packages/camera-manager/src/ui/locales/it.ts | 5 +- packages/camera-manager/src/ui/locales/ja.ts | 5 +- .../camera-manager/src/ui/locales/ka_GE.ts | 5 +- packages/camera-manager/src/ui/locales/kk.ts | 5 +- .../camera-manager/src/ui/locales/km_KH.ts | 5 +- packages/camera-manager/src/ui/locales/ko.ts | 5 +- packages/camera-manager/src/ui/locales/lv.ts | 5 +- packages/camera-manager/src/ui/locales/ms.ts | 5 +- packages/camera-manager/src/ui/locales/ne.ts | 5 +- packages/camera-manager/src/ui/locales/nl.ts | 5 +- packages/camera-manager/src/ui/locales/no.ts | 5 +- packages/camera-manager/src/ui/locales/pl.ts | 5 +- .../camera-manager/src/ui/locales/ps_AF.ts | 5 +- packages/camera-manager/src/ui/locales/pt.ts | 5 +- .../camera-manager/src/ui/locales/pt_BR.ts | 5 +- packages/camera-manager/src/ui/locales/ro.ts | 5 +- packages/camera-manager/src/ui/locales/ru.ts | 5 +- packages/camera-manager/src/ui/locales/si.ts | 5 +- packages/camera-manager/src/ui/locales/sk.ts | 5 +- packages/camera-manager/src/ui/locales/sl.ts | 5 +- packages/camera-manager/src/ui/locales/sr.ts | 5 +- packages/camera-manager/src/ui/locales/sv.ts | 5 +- packages/camera-manager/src/ui/locales/sw.ts | 5 +- packages/camera-manager/src/ui/locales/th.ts | 5 +- packages/camera-manager/src/ui/locales/tr.ts | 5 +- packages/camera-manager/src/ui/locales/uk.ts | 5 +- packages/camera-manager/src/ui/locales/ur.ts | 5 +- packages/camera-manager/src/ui/locales/uz.ts | 5 +- packages/camera-manager/src/ui/locales/vi.ts | 5 +- packages/camera-manager/src/ui/locales/yo.ts | 5 +- .../camera-manager/src/ui/locales/zh_CN.ts | 5 +- .../camera-manager/src/ui/locales/zh_TW.ts | 5 +- .../camera-manager/src/ui/zustandRefStore.tsx | 2 +- packages/camera-manager/src/vite-env.d.ts | 2 +- packages/camera-manager/typedoc.json | 2 +- packages/camera-manager/uno.config.ts | 2 +- packages/camera-manager/vite.config.ts | 2 +- packages/camera-manager/vitest.config.ts | 2 +- packages/core-common/.gitignore | 3 + packages/core-common/CHANGELOG.md | 7 + packages/core-common/README.md | 33 + packages/core-common/package.json | 59 + .../src/createCustomImageData.ts | 2 +- packages/core-common/src/createProxyWorker.ts | 197 ++ .../createDerivedDeviceInfo.test.ts | 2 +- .../src/deviceInfo/createDerivedDeviceInfo.ts | 2 +- .../src/deviceInfo/deviceInfo.ts | 3 +- .../deviceInfo/getAppleDeviceModel.test.ts | 2 +- .../src/deviceInfo/getAppleDeviceModel.ts | 2 +- .../getBrowserFromUserAgent.test.ts | 2 +- .../src/deviceInfo/getBrowserFromUserAgent.ts | 2 +- .../src/deviceInfo/getOsFromUserAgent.test.ts | 2 +- .../src/deviceInfo/getOsFromUserAgent.ts | 2 +- .../src/deviceInfo/navigator-types.ts | 4 +- .../src/getCrossOriginWorkerURL.test.ts | 2 +- .../src/getCrossOriginWorkerURL.ts | 2 +- .../src/getUserId.ts | 13 +- .../src/shouldUseLightweightBuild.test.ts | 197 ++ .../src/shouldUseLightweightBuild.ts | 2 +- packages/core-common/tsconfig.json | 12 + packages/core-common/turbo.json | 4 + packages/core-common/vitest.config.ts | 11 + packages/feedback-stabilizer/README.md | 33 + packages/feedback-stabilizer/package.json | 2 +- .../src/FeedbackStabilizer.test.ts | 2 +- packages/feedback-stabilizer/src/index.ts | 2 +- packages/feedback-stabilizer/src/utils.ts | 2 +- packages/feedback-stabilizer/typedoc.json | 2 +- packages/repo-utils/.gitignore | 1 + packages/repo-utils/README.md | 17 + packages/repo-utils/package.json | 18 + packages/repo-utils/tsconfig.json | 12 + .../{utils/utils.mjs => repo-utils/utils.mts} | 55 +- packages/repo-utils/utils.test.mts | 217 +++ packages/shared-components/README.md | 2 +- packages/shared-components/src/Modal.tsx | 2 +- .../src/SmartEnvironmentProvider.tsx | 2 +- packages/shared-components/src/eventFixer.ts | 2 +- packages/shared-components/src/global.d.ts | 2 +- .../shared-components/src/renderWithOwner.ts | 2 +- packages/shared-components/uno.config.ts | 2 +- packages/tsconfig/README.md | 12 + packages/unocss-config/README.md | 13 + packages/unocss-config/src/rules/index.ts | 2 +- packages/unocss-config/src/rules/spacing.ts | 2 +- packages/unocss-config/uno.config.ts | 2 +- packages/utils/CHANGELOG.md | 17 - packages/utils/package.json | 19 - packages/utils/tsconfig.json | 26 - packages/utils/types/utils.d.mts | 30 - packages/utils/types/utils.d.mts.map | 1 - packages/utils/utils.test.mjs | 194 -- packages/ux-common/.gitignore | 3 + packages/ux-common/CHANGELOG.md | 7 + packages/ux-common/README.md | 33 + packages/ux-common/package.json | 37 + .../src/hapticFeedback.test.ts} | 4 +- .../src/hapticFeedback.ts} | 4 +- packages/ux-common/src/utils.test.ts | 46 + .../src/core => ux-common/src}/utils.ts | 2 +- packages/ux-common/tsconfig.json | 12 + packages/ux-common/turbo.json | 4 + packages/wasm-common/.gitignore | 1 + packages/wasm-common/CHANGELOG.md | 7 + packages/wasm-common/README.md | 18 + packages/wasm-common/package.json | 31 + .../src/emscripten.ts | 2 +- packages/wasm-common/src/index.ts | 11 + .../src/licensing.ts} | 6 +- .../src/wasm-constants.ts | 2 +- packages/wasm-common/tsconfig.json | 10 + packages/worker-common/.gitignore | 1 + packages/worker-common/CHANGELOG.md | 12 + packages/worker-common/README.md | 33 + packages/worker-common/package.json | 65 + .../src/buildResourcePath.ts | 2 +- packages/worker-common/src/errors.ts | 27 + .../src/getCrossOriginWorkerURL.ts | 2 +- .../src/isSafari.ts | 2 +- .../src/licencing.test.ts | 4 +- .../src/licencing.ts | 7 +- .../src/mbToWasmPages.ts | 2 +- .../src/proxy-url-validator.test.ts | 4 +- .../src/proxy-url-validator.ts | 4 +- .../src/wasm-feature-detect.ts | 8 +- packages/worker-common/tsconfig.json | 11 + packages/worker-common/turbo.json | 4 + pnpm-lock.yaml | 1711 ++++++++++++----- pnpm-workspace.yaml | 8 +- syncpack.config.js | 7 + vitest.workspace.ts | 9 +- 1037 files changed, 34606 insertions(+), 3397 deletions(-) delete mode 100644 .npmrc create mode 100644 apps/examples/blinkcard-advanced-setup/.eslintrc.cjs create mode 100644 apps/examples/blinkcard-advanced-setup/.gitignore create mode 100644 apps/examples/blinkcard-advanced-setup/README.md create mode 100644 apps/examples/blinkcard-advanced-setup/index.html create mode 100644 apps/examples/blinkcard-advanced-setup/lint-staged.config.cjs create mode 100644 apps/examples/blinkcard-advanced-setup/package.json create mode 100644 apps/examples/blinkcard-advanced-setup/src/App.tsx create mode 100644 apps/examples/blinkcard-advanced-setup/src/DebugOverlay.tsx create mode 100644 apps/examples/blinkcard-advanced-setup/src/index.css create mode 100644 apps/examples/blinkcard-advanced-setup/src/index.tsx create mode 100644 apps/examples/blinkcard-advanced-setup/tsconfig.json create mode 100644 apps/examples/blinkcard-advanced-setup/vite.config.ts create mode 100644 apps/examples/blinkcard-simple/.eslintrc.cjs create mode 100644 apps/examples/blinkcard-simple/.gitignore create mode 100644 apps/examples/blinkcard-simple/README.md create mode 100644 apps/examples/blinkcard-simple/index.html create mode 100644 apps/examples/blinkcard-simple/lint-staged.config.cjs create mode 100644 apps/examples/blinkcard-simple/package.json create mode 100644 apps/examples/blinkcard-simple/src/assets/favicon.ico create mode 100644 apps/examples/blinkcard-simple/src/index.ts rename apps/examples/{camera-manager => blinkcard-simple}/src/vite-env.d.ts (74%) create mode 100644 apps/examples/blinkcard-simple/tsconfig.json create mode 100644 apps/examples/blinkcard-simple/vite.config.ts delete mode 100644 apps/examples/blinkid-advanced-setup/.env delete mode 100644 apps/examples/blinkid-advanced-setup/CHANGELOG.md delete mode 100644 apps/examples/blinkid-core-api/.env delete mode 100644 apps/examples/blinkid-core-api/CHANGELOG.md delete mode 100644 apps/examples/blinkid-photo-upload/.env delete mode 100644 apps/examples/blinkid-photo-upload/CHANGELOG.md delete mode 100644 apps/examples/blinkid-preload/.env delete mode 100644 apps/examples/blinkid-preload/CHANGELOG.md delete mode 100644 apps/examples/blinkid-simple/.env delete mode 100644 apps/examples/blinkid-simple/CHANGELOG.md delete mode 100644 apps/examples/camera-manager/.env delete mode 100644 apps/examples/camera-selection/.env delete mode 100644 apps/examples/camera-selection/CHANGELOG.md delete mode 100644 apps/examples/camera-selection/src/vite-env.d.ts create mode 100644 docs/blinkcard/OssDependencies.md rename docs/{ => blinkid}/OssDependencies.md (99%) rename docs/{ => blinkid}/ResultFields.md (100%) rename docs/{ => blinkid}/SupportedDocuments.md (100%) create mode 100644 packages/analytics/.eslintrc.cjs create mode 100644 packages/analytics/.gitignore create mode 100644 packages/analytics/CHANGELOG.md create mode 100644 packages/analytics/README.md create mode 100644 packages/analytics/lint-staged.config.mjs create mode 100644 packages/analytics/package.json create mode 100644 packages/analytics/src/AnalyticService.test.ts create mode 100644 packages/analytics/src/AnalyticService.ts create mode 100644 packages/analytics/src/ping/Ping.ts create mode 100644 packages/analytics/src/ping/index.ts create mode 100644 packages/analytics/src/ping/ping.base.ts create mode 100644 packages/analytics/src/ping/ping.browser.device.info.ts create mode 100644 packages/analytics/src/ping/ping.error.ts create mode 100644 packages/analytics/src/ping/ping.hardware.camera.info.ts create mode 100644 packages/analytics/src/ping/ping.log.ts create mode 100644 packages/analytics/src/ping/ping.sdk.camera.input.info.ts create mode 100644 packages/analytics/src/ping/ping.sdk.camera.permission.ts create mode 100644 packages/analytics/src/ping/ping.sdk.init.start.ts create mode 100644 packages/analytics/src/ping/ping.sdk.scan.conditions.ts create mode 100644 packages/analytics/src/ping/ping.sdk.ux.event.ts create mode 100644 packages/analytics/src/ping/ping.sdk.wrapper.product.ts create mode 100644 packages/analytics/tsconfig.json create mode 100644 packages/analytics/typedoc.json create mode 100644 packages/blinkcard-core/.eslintrc.cjs create mode 100644 packages/blinkcard-core/.gitignore create mode 100644 packages/blinkcard-core/CHANGELOG.md create mode 100644 packages/blinkcard-core/README.md create mode 100644 packages/blinkcard-core/api-extractor.json create mode 100644 packages/blinkcard-core/docs/README.md create mode 100644 packages/blinkcard-core/docs/classes/BlinkCardWorker.md create mode 100644 packages/blinkcard-core/docs/classes/LicenseError.md create mode 100644 packages/blinkcard-core/docs/classes/ServerPermissionError.md create mode 100644 packages/blinkcard-core/docs/functions/createCustomImageData.md create mode 100644 packages/blinkcard-core/docs/functions/createDerivedDeviceInfo.md create mode 100644 packages/blinkcard-core/docs/functions/createProxyWorker.md create mode 100644 packages/blinkcard-core/docs/functions/extractSideInputImage.md create mode 100644 packages/blinkcard-core/docs/functions/getDeviceInfo.md create mode 100644 packages/blinkcard-core/docs/functions/getUserAgentData.md create mode 100644 packages/blinkcard-core/docs/functions/getUserId.md create mode 100644 packages/blinkcard-core/docs/functions/loadBlinkCardCore.md create mode 100644 packages/blinkcard-core/docs/interfaces/UADataValues.md create mode 100644 packages/blinkcard-core/docs/type-aliases/AnonymizationMode.md create mode 100644 packages/blinkcard-core/docs/type-aliases/AnonymizationSettings.md create mode 100644 packages/blinkcard-core/docs/type-aliases/BlinkCardCore.md create mode 100644 packages/blinkcard-core/docs/type-aliases/BlinkCardInitSettings.md create mode 100644 packages/blinkcard-core/docs/type-aliases/BlinkCardProcessResult.md create mode 100644 packages/blinkcard-core/docs/type-aliases/BlinkCardScanningResult.md create mode 100644 packages/blinkcard-core/docs/type-aliases/BlinkCardScanningSession.md create mode 100644 packages/blinkcard-core/docs/type-aliases/BlinkCardSessionSettings.md create mode 100644 packages/blinkcard-core/docs/type-aliases/BlinkCardSessionSettingsInput.md create mode 100644 packages/blinkcard-core/docs/type-aliases/BlinkCardWorkerInitSettings.md create mode 100644 packages/blinkcard-core/docs/type-aliases/BlinkCardWorkerProxy.md create mode 100644 packages/blinkcard-core/docs/type-aliases/BrowserStorageSupport.md create mode 100644 packages/blinkcard-core/docs/type-aliases/CardAccountResult.md create mode 100644 packages/blinkcard-core/docs/type-aliases/CardLivenessCheckResult.md create mode 100644 packages/blinkcard-core/docs/type-aliases/CardNumberAnonymizationSettings.md create mode 100644 packages/blinkcard-core/docs/type-aliases/CardRotation.md create mode 100644 packages/blinkcard-core/docs/type-aliases/CheckResult.md create mode 100644 packages/blinkcard-core/docs/type-aliases/CroppedImageSettings.md create mode 100644 packages/blinkcard-core/docs/type-aliases/DateResult.md create mode 100644 packages/blinkcard-core/docs/type-aliases/DerivedDeviceInfo.md create mode 100644 packages/blinkcard-core/docs/type-aliases/DetectionLevel.md create mode 100644 packages/blinkcard-core/docs/type-aliases/DetectionStatus.md create mode 100644 packages/blinkcard-core/docs/type-aliases/DeviceInfo.md create mode 100644 packages/blinkcard-core/docs/type-aliases/DeviceScreenInfo.md create mode 100644 packages/blinkcard-core/docs/type-aliases/ExtractionSettings.md create mode 100644 packages/blinkcard-core/docs/type-aliases/FieldExtractionStatus.md create mode 100644 packages/blinkcard-core/docs/type-aliases/FormFactor.md create mode 100644 packages/blinkcard-core/docs/type-aliases/GpuInfo.md create mode 100644 packages/blinkcard-core/docs/type-aliases/ImageAnalysisDetectionStatus.md create mode 100644 packages/blinkcard-core/docs/type-aliases/ImageExtractionStatus.md create mode 100644 packages/blinkcard-core/docs/type-aliases/InputImageAnalysisResult.md create mode 100644 packages/blinkcard-core/docs/type-aliases/InputImageSource.md create mode 100644 packages/blinkcard-core/docs/type-aliases/LicenseRequest.md create mode 100644 packages/blinkcard-core/docs/type-aliases/LicenseTokenState.md create mode 100644 packages/blinkcard-core/docs/type-aliases/LicenseUnlockResult.md create mode 100644 packages/blinkcard-core/docs/type-aliases/LivenessSettings.md create mode 100644 packages/blinkcard-core/docs/type-aliases/LoadWasmParams.md create mode 100644 packages/blinkcard-core/docs/type-aliases/PartialScanningSettingsInput.md create mode 100644 packages/blinkcard-core/docs/type-aliases/ProcessResultWithBuffer.md create mode 100644 packages/blinkcard-core/docs/type-aliases/ProcessingStatus.md create mode 100644 packages/blinkcard-core/docs/type-aliases/ProgressStatusCallback.md create mode 100644 packages/blinkcard-core/docs/type-aliases/RemoteScanningSession.md create mode 100644 packages/blinkcard-core/docs/type-aliases/ResourceFileType.md create mode 100644 packages/blinkcard-core/docs/type-aliases/ResultCompleteness.md create mode 100644 packages/blinkcard-core/docs/type-aliases/ScanningSettings.md create mode 100644 packages/blinkcard-core/docs/type-aliases/ScanningSide.md create mode 100644 packages/blinkcard-core/docs/type-aliases/ScanningStatus.md create mode 100644 packages/blinkcard-core/docs/type-aliases/ServerPermissionErrorReason.md create mode 100644 packages/blinkcard-core/docs/type-aliases/ServerPermissionSubmitError.md create mode 100644 packages/blinkcard-core/docs/type-aliases/SingleSideScanningResult.md create mode 100644 packages/blinkcard-core/docs/type-aliases/StrictnessLevel.md create mode 100644 packages/blinkcard-core/docs/type-aliases/WasmBuildType.md create mode 100644 packages/blinkcard-core/docs/type-aliases/WasmVariant.md create mode 100644 packages/blinkcard-core/docs/type-aliases/WorkerScanningSession.md create mode 100644 packages/blinkcard-core/docs/variables/getCrossOriginWorkerURL.md create mode 100644 packages/blinkcard-core/docs/variables/resourceFileTypes.md create mode 100644 packages/blinkcard-core/docs/variables/wasmBuildTypes.md create mode 100644 packages/blinkcard-core/docs/variables/wasmVariants.md create mode 100644 packages/blinkcard-core/lint-staged.config.mjs create mode 100644 packages/blinkcard-core/package.json create mode 100644 packages/blinkcard-core/scripts/prepare-publish.mts create mode 100644 packages/blinkcard-core/src/index.ts create mode 100644 packages/blinkcard-core/src/loadBlinkCardCore.test.ts create mode 100644 packages/blinkcard-core/src/loadBlinkCardCore.ts create mode 100644 packages/blinkcard-core/src/utils.test.ts create mode 100644 packages/blinkcard-core/src/utils.ts create mode 100644 packages/blinkcard-core/tsconfig.json create mode 100644 packages/blinkcard-core/turbo.json create mode 100644 packages/blinkcard-core/typedoc.json create mode 100644 packages/blinkcard-core/vite.config.mts create mode 100644 packages/blinkcard-core/vitest.setup.ts create mode 100644 packages/blinkcard-ux-manager/.eslintrc.cjs create mode 100644 packages/blinkcard-ux-manager/.gitignore create mode 100644 packages/blinkcard-ux-manager/.prettierrc create mode 100644 packages/blinkcard-ux-manager/CHANGELOG.md create mode 100644 packages/blinkcard-ux-manager/README.md create mode 100644 packages/blinkcard-ux-manager/api-extractor.json create mode 100644 packages/blinkcard-ux-manager/docs/README.md create mode 100644 packages/blinkcard-ux-manager/docs/classes/FeedbackStabilizer.md create mode 100644 packages/blinkcard-ux-manager/docs/classes/HapticFeedbackManager.md create mode 100644 packages/blinkcard-ux-manager/docs/functions/createBlinkCardFeedbackUi.md create mode 100644 packages/blinkcard-ux-manager/docs/functions/createBlinkCardUxManager.md create mode 100644 packages/blinkcard-ux-manager/docs/functions/getUiStateKey.md create mode 100644 packages/blinkcard-ux-manager/docs/interfaces/BlinkCardUxManager.md create mode 100644 packages/blinkcard-ux-manager/docs/type-aliases/BlinkCardProcessingError.md create mode 100644 packages/blinkcard-ux-manager/docs/type-aliases/BlinkCardReticleType.md create mode 100644 packages/blinkcard-ux-manager/docs/type-aliases/BlinkCardUiState.md create mode 100644 packages/blinkcard-ux-manager/docs/type-aliases/BlinkCardUiStateKey.md create mode 100644 packages/blinkcard-ux-manager/docs/type-aliases/BlinkCardUiStateMap.md create mode 100644 packages/blinkcard-ux-manager/docs/type-aliases/ErrorUiStateKey.md create mode 100644 packages/blinkcard-ux-manager/docs/type-aliases/FeedbackUiOptions.md create mode 100644 packages/blinkcard-ux-manager/docs/type-aliases/HapticFeedbackType.md create mode 100644 packages/blinkcard-ux-manager/docs/type-aliases/LocaleRecord.md create mode 100644 packages/blinkcard-ux-manager/docs/type-aliases/LocalizationStrings.md create mode 100644 packages/blinkcard-ux-manager/docs/type-aliases/LocalizedValue.md create mode 100644 packages/blinkcard-ux-manager/docs/type-aliases/PartialLocalizationStrings.md create mode 100644 packages/blinkcard-ux-manager/docs/type-aliases/UiState.md create mode 100644 packages/blinkcard-ux-manager/docs/type-aliases/UiStateEvent.md create mode 100644 packages/blinkcard-ux-manager/docs/type-aliases/UiStateMap.md create mode 100644 packages/blinkcard-ux-manager/docs/variables/HAPTIC_FEEDBACK_CONFIGS.md create mode 100644 packages/blinkcard-ux-manager/docs/variables/blinkCardUiStateMap.md create mode 100644 packages/blinkcard-ux-manager/docs/variables/firstSideCapturedUiStateKeys.md create mode 100644 packages/blinkcard-ux-manager/lint-staged.config.cjs create mode 100644 packages/blinkcard-ux-manager/package.json create mode 100644 packages/blinkcard-ux-manager/scripts/prepare-publish.mts create mode 100644 packages/blinkcard-ux-manager/src/core/BlinkCardProcessingError.ts create mode 100644 packages/blinkcard-ux-manager/src/core/BlinkCardUxManager.test.ts create mode 100644 packages/blinkcard-ux-manager/src/core/BlinkCardUxManager.ts create mode 100644 packages/blinkcard-ux-manager/src/core/__testdata/blankProcessResult.ts create mode 100644 packages/blinkcard-ux-manager/src/core/blinkcard-ui-state.test.ts create mode 100644 packages/blinkcard-ux-manager/src/core/blinkcard-ui-state.ts create mode 100644 packages/blinkcard-ux-manager/src/core/createBlinkCardUxManager.test.ts create mode 100644 packages/blinkcard-ux-manager/src/core/createBlinkCardUxManager.ts create mode 100644 packages/blinkcard-ux-manager/src/core/debounce.test.ts create mode 100644 packages/blinkcard-ux-manager/src/core/debounce.ts create mode 100644 packages/blinkcard-ux-manager/src/global.d.ts create mode 100644 packages/blinkcard-ux-manager/src/index.ts create mode 100644 packages/blinkcard-ux-manager/src/ui/BlinkCardFeedbackUi.tsx create mode 100644 packages/blinkcard-ux-manager/src/ui/BlinkCardUiStoreContext.tsx create mode 100644 packages/blinkcard-ux-manager/src/ui/LocalizationContext.tsx create mode 100644 packages/blinkcard-ux-manager/src/ui/UiFeedbackOverlay.tsx create mode 100644 packages/blinkcard-ux-manager/src/ui/assets/demo-overlay.svg create mode 100644 packages/blinkcard-ux-manager/src/ui/assets/help/help_blur.svg create mode 100644 packages/blinkcard-ux-manager/src/ui/assets/help/help_camera_lens.svg create mode 100644 packages/blinkcard-ux-manager/src/ui/assets/help/help_card_number.svg create mode 100644 packages/blinkcard-ux-manager/src/ui/assets/help/help_lighting.svg create mode 100644 packages/blinkcard-ux-manager/src/ui/assets/help/help_occlusion.svg create mode 100644 packages/blinkcard-ux-manager/src/ui/assets/icons/icon-question.svg create mode 100644 packages/blinkcard-ux-manager/src/ui/assets/microblink.svg create mode 100644 packages/blinkcard-ux-manager/src/ui/assets/onboarding/card_number.svg create mode 100644 packages/blinkcard-ux-manager/src/ui/assets/onboarding/card_number_desktop.svg create mode 100644 packages/blinkcard-ux-manager/src/ui/assets/reticles/card-back.svg create mode 100644 packages/blinkcard-ux-manager/src/ui/assets/reticles/card-front.svg create mode 100644 packages/blinkcard-ux-manager/src/ui/assets/reticles/done.svg create mode 100644 packages/blinkcard-ux-manager/src/ui/assets/reticles/full.svg create mode 100644 packages/blinkcard-ux-manager/src/ui/assets/reticles/searching.svg create mode 100644 packages/blinkcard-ux-manager/src/ui/assets/reticles/spin.svg create mode 100644 packages/blinkcard-ux-manager/src/ui/createBlinkCardFeedbackUi.tsx create mode 100644 packages/blinkcard-ux-manager/src/ui/dialogs/ErrorModal.tsx create mode 100644 packages/blinkcard-ux-manager/src/ui/dialogs/HelpModal.tsx create mode 100644 packages/blinkcard-ux-manager/src/ui/dialogs/OnboardingGuideModal.tsx create mode 100644 packages/blinkcard-ux-manager/src/ui/dialogs/styles.module.scss create mode 100644 packages/blinkcard-ux-manager/src/ui/feedbackMessages.ts create mode 100644 packages/blinkcard-ux-manager/src/ui/locales/ak.ts create mode 100644 packages/blinkcard-ux-manager/src/ui/locales/am.ts create mode 100644 packages/blinkcard-ux-manager/src/ui/locales/ar.ts create mode 100644 packages/blinkcard-ux-manager/src/ui/locales/bn.ts create mode 100644 packages/blinkcard-ux-manager/src/ui/locales/cs.ts create mode 100644 packages/blinkcard-ux-manager/src/ui/locales/da.ts create mode 100644 packages/blinkcard-ux-manager/src/ui/locales/de.ts create mode 100644 packages/blinkcard-ux-manager/src/ui/locales/el.ts create mode 100644 packages/blinkcard-ux-manager/src/ui/locales/en.ts create mode 100644 packages/blinkcard-ux-manager/src/ui/locales/en_GB.ts create mode 100644 packages/blinkcard-ux-manager/src/ui/locales/es.ts create mode 100644 packages/blinkcard-ux-manager/src/ui/locales/es_MX.ts create mode 100644 packages/blinkcard-ux-manager/src/ui/locales/fa-latn.ts create mode 100644 packages/blinkcard-ux-manager/src/ui/locales/fi.ts create mode 100644 packages/blinkcard-ux-manager/src/ui/locales/fil.ts create mode 100644 packages/blinkcard-ux-manager/src/ui/locales/fr.ts create mode 100644 packages/blinkcard-ux-manager/src/ui/locales/fr_CA.ts create mode 100644 packages/blinkcard-ux-manager/src/ui/locales/ha.ts create mode 100644 packages/blinkcard-ux-manager/src/ui/locales/he.ts create mode 100644 packages/blinkcard-ux-manager/src/ui/locales/hi.ts create mode 100644 packages/blinkcard-ux-manager/src/ui/locales/hr.ts create mode 100644 packages/blinkcard-ux-manager/src/ui/locales/hu.ts create mode 100644 packages/blinkcard-ux-manager/src/ui/locales/id.ts create mode 100644 packages/blinkcard-ux-manager/src/ui/locales/is.ts create mode 100644 packages/blinkcard-ux-manager/src/ui/locales/it.ts create mode 100644 packages/blinkcard-ux-manager/src/ui/locales/ja.ts create mode 100644 packages/blinkcard-ux-manager/src/ui/locales/ka_GE.ts create mode 100644 packages/blinkcard-ux-manager/src/ui/locales/kk.ts create mode 100644 packages/blinkcard-ux-manager/src/ui/locales/km_KH.ts create mode 100644 packages/blinkcard-ux-manager/src/ui/locales/ko.ts create mode 100644 packages/blinkcard-ux-manager/src/ui/locales/lv.ts create mode 100644 packages/blinkcard-ux-manager/src/ui/locales/ms.ts create mode 100644 packages/blinkcard-ux-manager/src/ui/locales/ne.ts create mode 100644 packages/blinkcard-ux-manager/src/ui/locales/nl.ts create mode 100644 packages/blinkcard-ux-manager/src/ui/locales/no.ts create mode 100644 packages/blinkcard-ux-manager/src/ui/locales/pl.ts create mode 100644 packages/blinkcard-ux-manager/src/ui/locales/ps_AF.ts create mode 100644 packages/blinkcard-ux-manager/src/ui/locales/pt.ts create mode 100644 packages/blinkcard-ux-manager/src/ui/locales/pt_BR.ts create mode 100644 packages/blinkcard-ux-manager/src/ui/locales/ro.ts create mode 100644 packages/blinkcard-ux-manager/src/ui/locales/ru.ts create mode 100644 packages/blinkcard-ux-manager/src/ui/locales/si.ts create mode 100644 packages/blinkcard-ux-manager/src/ui/locales/sk.ts create mode 100644 packages/blinkcard-ux-manager/src/ui/locales/sl.ts create mode 100644 packages/blinkcard-ux-manager/src/ui/locales/sr.ts create mode 100644 packages/blinkcard-ux-manager/src/ui/locales/sv.ts create mode 100644 packages/blinkcard-ux-manager/src/ui/locales/sw.ts create mode 100644 packages/blinkcard-ux-manager/src/ui/locales/th.ts create mode 100644 packages/blinkcard-ux-manager/src/ui/locales/tr.ts create mode 100644 packages/blinkcard-ux-manager/src/ui/locales/uk.ts create mode 100644 packages/blinkcard-ux-manager/src/ui/locales/ur.ts create mode 100644 packages/blinkcard-ux-manager/src/ui/locales/uz.ts create mode 100644 packages/blinkcard-ux-manager/src/ui/locales/vi.ts create mode 100644 packages/blinkcard-ux-manager/src/ui/locales/yo.ts create mode 100644 packages/blinkcard-ux-manager/src/ui/locales/zh_CN.ts create mode 100644 packages/blinkcard-ux-manager/src/ui/locales/zh_TW.ts create mode 100644 packages/blinkcard-ux-manager/src/ui/styles.module.scss create mode 100644 packages/blinkcard-ux-manager/svgo.config.cjs create mode 100644 packages/blinkcard-ux-manager/tsconfig.json create mode 100644 packages/blinkcard-ux-manager/turbo.json create mode 100644 packages/blinkcard-ux-manager/typedoc.json create mode 100644 packages/blinkcard-ux-manager/uno.config.ts create mode 100644 packages/blinkcard-ux-manager/vite.config.mts create mode 100644 packages/blinkcard-wasm/.gitignore create mode 100644 packages/blinkcard-wasm/.prettierrc create mode 100644 packages/blinkcard-wasm/CHANGELOG.md create mode 100644 packages/blinkcard-wasm/README.md create mode 100644 packages/blinkcard-wasm/dist/advanced-threads/BlinkCardModule.data create mode 100644 packages/blinkcard-wasm/dist/advanced-threads/BlinkCardModule.js create mode 100755 packages/blinkcard-wasm/dist/advanced-threads/BlinkCardModule.wasm create mode 100644 packages/blinkcard-wasm/dist/advanced/BlinkCardModule.data create mode 100644 packages/blinkcard-wasm/dist/advanced/BlinkCardModule.js create mode 100755 packages/blinkcard-wasm/dist/advanced/BlinkCardModule.wasm create mode 100644 packages/blinkcard-wasm/dist/basic/BlinkCardModule.data create mode 100644 packages/blinkcard-wasm/dist/basic/BlinkCardModule.js create mode 100755 packages/blinkcard-wasm/dist/basic/BlinkCardModule.wasm create mode 100644 packages/blinkcard-wasm/dist/size-manifest.json create mode 100644 packages/blinkcard-wasm/docs/README.md create mode 100644 packages/blinkcard-wasm/docs/type-aliases/AnonymizationMode.md create mode 100644 packages/blinkcard-wasm/docs/type-aliases/AnonymizationSettings.md create mode 100644 packages/blinkcard-wasm/docs/type-aliases/BlinkCardProcessResult.md create mode 100644 packages/blinkcard-wasm/docs/type-aliases/BlinkCardScanningResult.md create mode 100644 packages/blinkcard-wasm/docs/type-aliases/BlinkCardScanningSession.md create mode 100644 packages/blinkcard-wasm/docs/type-aliases/BlinkCardSessionSettings.md create mode 100644 packages/blinkcard-wasm/docs/type-aliases/BlinkCardSessionSettingsInput.md create mode 100644 packages/blinkcard-wasm/docs/type-aliases/CardAccountResult.md create mode 100644 packages/blinkcard-wasm/docs/type-aliases/CardLivenessCheckResult.md create mode 100644 packages/blinkcard-wasm/docs/type-aliases/CardNumberAnonymizationSettings.md create mode 100644 packages/blinkcard-wasm/docs/type-aliases/CardRotation.md create mode 100644 packages/blinkcard-wasm/docs/type-aliases/CheckResult.md create mode 100644 packages/blinkcard-wasm/docs/type-aliases/CroppedImageSettings.md create mode 100644 packages/blinkcard-wasm/docs/type-aliases/DateResult.md create mode 100644 packages/blinkcard-wasm/docs/type-aliases/DetectionLevel.md create mode 100644 packages/blinkcard-wasm/docs/type-aliases/DetectionStatus.md create mode 100644 packages/blinkcard-wasm/docs/type-aliases/ExtractionSettings.md create mode 100644 packages/blinkcard-wasm/docs/type-aliases/FieldExtractionStatus.md create mode 100644 packages/blinkcard-wasm/docs/type-aliases/ImageAnalysisDetectionStatus.md create mode 100644 packages/blinkcard-wasm/docs/type-aliases/ImageExtractionStatus.md create mode 100644 packages/blinkcard-wasm/docs/type-aliases/InputImageAnalysisResult.md create mode 100644 packages/blinkcard-wasm/docs/type-aliases/InputImageSource.md create mode 100644 packages/blinkcard-wasm/docs/type-aliases/LicenseRequest.md create mode 100644 packages/blinkcard-wasm/docs/type-aliases/LicenseTokenState.md create mode 100644 packages/blinkcard-wasm/docs/type-aliases/LicenseUnlockResult.md create mode 100644 packages/blinkcard-wasm/docs/type-aliases/LivenessSettings.md create mode 100644 packages/blinkcard-wasm/docs/type-aliases/PartialScanningSettingsInput.md create mode 100644 packages/blinkcard-wasm/docs/type-aliases/ProcessingStatus.md create mode 100644 packages/blinkcard-wasm/docs/type-aliases/ResourceFileType.md create mode 100644 packages/blinkcard-wasm/docs/type-aliases/ResultCompleteness.md create mode 100644 packages/blinkcard-wasm/docs/type-aliases/ScanningSettings.md create mode 100644 packages/blinkcard-wasm/docs/type-aliases/ScanningSide.md create mode 100644 packages/blinkcard-wasm/docs/type-aliases/ScanningStatus.md create mode 100644 packages/blinkcard-wasm/docs/type-aliases/ServerPermissionErrorReason.md create mode 100644 packages/blinkcard-wasm/docs/type-aliases/ServerPermissionSubmitError.md create mode 100644 packages/blinkcard-wasm/docs/type-aliases/SingleSideScanningResult.md create mode 100644 packages/blinkcard-wasm/docs/type-aliases/StrictnessLevel.md create mode 100644 packages/blinkcard-wasm/docs/type-aliases/WasmBuildType.md create mode 100644 packages/blinkcard-wasm/docs/type-aliases/WasmVariant.md create mode 100644 packages/blinkcard-wasm/docs/variables/resourceFileTypes.md create mode 100644 packages/blinkcard-wasm/docs/variables/wasmBuildTypes.md create mode 100644 packages/blinkcard-wasm/docs/variables/wasmVariants.md create mode 100644 packages/blinkcard-wasm/package.json create mode 100644 packages/blinkcard-wasm/src/index.ts create mode 100644 packages/blinkcard-wasm/src/session/BlinkCardScanningSession.ts create mode 100644 packages/blinkcard-wasm/src/session/index.ts create mode 100644 packages/blinkcard-wasm/src/session/result/index.ts create mode 100644 packages/blinkcard-wasm/src/session/result/process-result.ts create mode 100644 packages/blinkcard-wasm/src/session/result/scanning-result.ts create mode 100644 packages/blinkcard-wasm/src/session/scanning-settings.ts create mode 100644 packages/blinkcard-wasm/src/session/session-settings.ts create mode 100644 packages/blinkcard-wasm/src/wasm-module.ts create mode 100644 packages/blinkcard-wasm/tsconfig.json create mode 100644 packages/blinkcard-wasm/typedoc.json create mode 100644 packages/blinkcard-worker/.eslintrc.cjs create mode 100644 packages/blinkcard-worker/.gitignore create mode 100644 packages/blinkcard-worker/CHANGELOG.md create mode 100644 packages/blinkcard-worker/README.md create mode 100644 packages/blinkcard-worker/docs/README.md create mode 100644 packages/blinkcard-worker/docs/classes/BlinkCardWorker.md create mode 100644 packages/blinkcard-worker/docs/classes/LicenseError.md create mode 100644 packages/blinkcard-worker/docs/classes/ServerPermissionError.md create mode 100644 packages/blinkcard-worker/docs/type-aliases/BlinkCardWorkerInitSettings.md create mode 100644 packages/blinkcard-worker/docs/type-aliases/BlinkCardWorkerProxy.md create mode 100644 packages/blinkcard-worker/docs/type-aliases/LoadWasmParams.md create mode 100644 packages/blinkcard-worker/docs/type-aliases/ProcessResultWithBuffer.md create mode 100644 packages/blinkcard-worker/docs/type-aliases/ProgressStatusCallback.md create mode 100644 packages/blinkcard-worker/docs/type-aliases/WorkerScanningSession.md create mode 100644 packages/blinkcard-worker/lint-staged.config.cjs create mode 100644 packages/blinkcard-worker/package.json create mode 100644 packages/blinkcard-worker/src/BlinkCardWorker.test.ts create mode 100644 packages/blinkcard-worker/src/BlinkCardWorker.ts create mode 100644 packages/blinkcard-worker/src/downloadResourceBuffer.test.ts create mode 100644 packages/blinkcard-worker/src/downloadResourceBuffer.ts create mode 100644 packages/blinkcard-worker/src/getWasmFileSize.test.ts create mode 100644 packages/blinkcard-worker/src/getWasmFileSize.ts create mode 100644 packages/blinkcard-worker/src/index.ts create mode 100644 packages/blinkcard-worker/tsconfig.json create mode 100644 packages/blinkcard-worker/typedoc.json create mode 100644 packages/blinkcard-worker/vite.config.mts create mode 100644 packages/blinkcard/.eslintrc.cjs create mode 100644 packages/blinkcard/.gitignore create mode 100644 packages/blinkcard/CHANGELOG.md create mode 100644 packages/blinkcard/README.md create mode 100644 packages/blinkcard/RELEASE_NOTES.md create mode 100644 packages/blinkcard/api-extractor.json create mode 100644 packages/blinkcard/docs/README.md create mode 100644 packages/blinkcard/docs/classes/BlinkCardWorker.md create mode 100644 packages/blinkcard/docs/classes/Camera.md create mode 100644 packages/blinkcard/docs/classes/CameraError.md create mode 100644 packages/blinkcard/docs/classes/CameraManager.md create mode 100644 packages/blinkcard/docs/classes/FeedbackStabilizer.md create mode 100644 packages/blinkcard/docs/classes/HapticFeedbackManager.md create mode 100644 packages/blinkcard/docs/classes/LicenseError.md create mode 100644 packages/blinkcard/docs/classes/ServerPermissionError.md create mode 100644 packages/blinkcard/docs/classes/VideoFrameProcessor.md create mode 100644 packages/blinkcard/docs/functions/createBlinkCard.md create mode 100644 packages/blinkcard/docs/functions/createBlinkCardFeedbackUi.md create mode 100644 packages/blinkcard/docs/functions/createCameraManagerUi.md create mode 100644 packages/blinkcard/docs/functions/createCustomImageData.md create mode 100644 packages/blinkcard/docs/functions/createDerivedDeviceInfo.md create mode 100644 packages/blinkcard/docs/functions/createProxyWorker.md create mode 100644 packages/blinkcard/docs/functions/extractSideInputImage.md create mode 100644 packages/blinkcard/docs/functions/findResolutionKey.md create mode 100644 packages/blinkcard/docs/functions/getDeviceInfo.md create mode 100644 packages/blinkcard/docs/functions/getNormalizedResolution.md create mode 100644 packages/blinkcard/docs/functions/getUiStateKey.md create mode 100644 packages/blinkcard/docs/functions/getUserAgentData.md create mode 100644 packages/blinkcard/docs/functions/getUserId.md create mode 100644 packages/blinkcard/docs/functions/isBufferDetached.md create mode 100644 packages/blinkcard/docs/functions/loadBlinkCardCore.md create mode 100644 packages/blinkcard/docs/functions/matchClosestResolution.md create mode 100644 packages/blinkcard/docs/functions/returnLongerSide.md create mode 100644 packages/blinkcard/docs/interfaces/BlinkCardUxManager.md create mode 100644 packages/blinkcard/docs/interfaces/UADataValues.md create mode 100644 packages/blinkcard/docs/type-aliases/AnonymizationMode.md create mode 100644 packages/blinkcard/docs/type-aliases/AnonymizationSettings.md create mode 100644 packages/blinkcard/docs/type-aliases/BlinkCardComponent.md create mode 100644 packages/blinkcard/docs/type-aliases/BlinkCardComponentOptions.md create mode 100644 packages/blinkcard/docs/type-aliases/BlinkCardCore.md create mode 100644 packages/blinkcard/docs/type-aliases/BlinkCardInitSettings.md create mode 100644 packages/blinkcard/docs/type-aliases/BlinkCardProcessResult.md create mode 100644 packages/blinkcard/docs/type-aliases/BlinkCardProcessingError.md create mode 100644 packages/blinkcard/docs/type-aliases/BlinkCardReticleType.md create mode 100644 packages/blinkcard/docs/type-aliases/BlinkCardScanningResult.md create mode 100644 packages/blinkcard/docs/type-aliases/BlinkCardScanningSession.md create mode 100644 packages/blinkcard/docs/type-aliases/BlinkCardSessionSettings.md create mode 100644 packages/blinkcard/docs/type-aliases/BlinkCardSessionSettingsInput.md create mode 100644 packages/blinkcard/docs/type-aliases/BlinkCardUiState.md create mode 100644 packages/blinkcard/docs/type-aliases/BlinkCardUiStateKey.md create mode 100644 packages/blinkcard/docs/type-aliases/BlinkCardUiStateMap.md create mode 100644 packages/blinkcard/docs/type-aliases/BlinkCardUxManagerType.md create mode 100644 packages/blinkcard/docs/type-aliases/BlinkCardWorkerInitSettings.md create mode 100644 packages/blinkcard/docs/type-aliases/BlinkCardWorkerProxy.md create mode 100644 packages/blinkcard/docs/type-aliases/BrowserStorageSupport.md create mode 100644 packages/blinkcard/docs/type-aliases/CameraErrorCode.md create mode 100644 packages/blinkcard/docs/type-aliases/CameraManagerComponent.md create mode 100644 packages/blinkcard/docs/type-aliases/CameraManagerOptions.md create mode 100644 packages/blinkcard/docs/type-aliases/CameraManagerStore.md create mode 100644 packages/blinkcard/docs/type-aliases/CameraManagerUiOptions.md create mode 100644 packages/blinkcard/docs/type-aliases/CameraPermission.md create mode 100644 packages/blinkcard/docs/type-aliases/CameraPreference.md create mode 100644 packages/blinkcard/docs/type-aliases/CameraUiLocaleRecord.md create mode 100644 packages/blinkcard/docs/type-aliases/CameraUiLocalizationStrings.md create mode 100644 packages/blinkcard/docs/type-aliases/CameraUiRefs.md create mode 100644 packages/blinkcard/docs/type-aliases/CanvasRenderingMode.md create mode 100644 packages/blinkcard/docs/type-aliases/CardAccountResult.md create mode 100644 packages/blinkcard/docs/type-aliases/CardLivenessCheckResult.md create mode 100644 packages/blinkcard/docs/type-aliases/CardNumberAnonymizationSettings.md create mode 100644 packages/blinkcard/docs/type-aliases/CardRotation.md create mode 100644 packages/blinkcard/docs/type-aliases/CheckResult.md create mode 100644 packages/blinkcard/docs/type-aliases/CroppedImageSettings.md create mode 100644 packages/blinkcard/docs/type-aliases/DateResult.md create mode 100644 packages/blinkcard/docs/type-aliases/DerivedDeviceInfo.md create mode 100644 packages/blinkcard/docs/type-aliases/DetectionLevel.md create mode 100644 packages/blinkcard/docs/type-aliases/DetectionStatus.md create mode 100644 packages/blinkcard/docs/type-aliases/DeviceInfo.md create mode 100644 packages/blinkcard/docs/type-aliases/DeviceScreenInfo.md create mode 100644 packages/blinkcard/docs/type-aliases/DismountCallback.md create mode 100644 packages/blinkcard/docs/type-aliases/ErrorUiStateKey.md create mode 100644 packages/blinkcard/docs/type-aliases/ExtractionArea.md create mode 100644 packages/blinkcard/docs/type-aliases/ExtractionSettings.md create mode 100644 packages/blinkcard/docs/type-aliases/FacingMode.md create mode 100644 packages/blinkcard/docs/type-aliases/FeedbackUiOptions.md create mode 100644 packages/blinkcard/docs/type-aliases/FieldExtractionStatus.md create mode 100644 packages/blinkcard/docs/type-aliases/FormFactor.md create mode 100644 packages/blinkcard/docs/type-aliases/FrameCaptureCallback.md create mode 100644 packages/blinkcard/docs/type-aliases/GpuInfo.md create mode 100644 packages/blinkcard/docs/type-aliases/HapticFeedbackType.md create mode 100644 packages/blinkcard/docs/type-aliases/ImageAnalysisDetectionStatus.md create mode 100644 packages/blinkcard/docs/type-aliases/ImageExtractionStatus.md create mode 100644 packages/blinkcard/docs/type-aliases/ImageSource.md create mode 100644 packages/blinkcard/docs/type-aliases/InputImageAnalysisResult.md create mode 100644 packages/blinkcard/docs/type-aliases/InputImageSource.md create mode 100644 packages/blinkcard/docs/type-aliases/LicenseRequest.md create mode 100644 packages/blinkcard/docs/type-aliases/LicenseTokenState.md create mode 100644 packages/blinkcard/docs/type-aliases/LicenseUnlockResult.md create mode 100644 packages/blinkcard/docs/type-aliases/LivenessSettings.md create mode 100644 packages/blinkcard/docs/type-aliases/LoadWasmParams.md create mode 100644 packages/blinkcard/docs/type-aliases/LocaleRecord.md create mode 100644 packages/blinkcard/docs/type-aliases/LocalizationStrings.md create mode 100644 packages/blinkcard/docs/type-aliases/LocalizedValue.md create mode 100644 packages/blinkcard/docs/type-aliases/PartialLocalizationStrings.md create mode 100644 packages/blinkcard/docs/type-aliases/PartialScanningSettingsInput.md create mode 100644 packages/blinkcard/docs/type-aliases/PlaybackState.md create mode 100644 packages/blinkcard/docs/type-aliases/ProcessResultWithBuffer.md create mode 100644 packages/blinkcard/docs/type-aliases/ProcessingStatus.md create mode 100644 packages/blinkcard/docs/type-aliases/ProgressStatusCallback.md create mode 100644 packages/blinkcard/docs/type-aliases/RemoteScanningSession.md create mode 100644 packages/blinkcard/docs/type-aliases/Resolution.md create mode 100644 packages/blinkcard/docs/type-aliases/ResourceFileType.md create mode 100644 packages/blinkcard/docs/type-aliases/ResultCompleteness.md create mode 100644 packages/blinkcard/docs/type-aliases/ScanningSettings.md create mode 100644 packages/blinkcard/docs/type-aliases/ScanningSide.md create mode 100644 packages/blinkcard/docs/type-aliases/ScanningStatus.md create mode 100644 packages/blinkcard/docs/type-aliases/ServerPermissionErrorReason.md create mode 100644 packages/blinkcard/docs/type-aliases/ServerPermissionSubmitError.md create mode 100644 packages/blinkcard/docs/type-aliases/SingleSideScanningResult.md create mode 100644 packages/blinkcard/docs/type-aliases/StartCameraStreamOptions.md create mode 100644 packages/blinkcard/docs/type-aliases/StrictnessLevel.md create mode 100644 packages/blinkcard/docs/type-aliases/UiState.md create mode 100644 packages/blinkcard/docs/type-aliases/UiStateEvent.md create mode 100644 packages/blinkcard/docs/type-aliases/UiStateMap.md create mode 100644 packages/blinkcard/docs/type-aliases/VideoFrameProcessorInitOptions.md create mode 100644 packages/blinkcard/docs/type-aliases/VideoResolutionName.md create mode 100644 packages/blinkcard/docs/type-aliases/WasmBuildType.md create mode 100644 packages/blinkcard/docs/type-aliases/WasmVariant.md create mode 100644 packages/blinkcard/docs/type-aliases/WorkerScanningSession.md create mode 100644 packages/blinkcard/docs/variables/HAPTIC_FEEDBACK_CONFIGS.md create mode 100644 packages/blinkcard/docs/variables/MOUNT_POINT_ID.md create mode 100644 packages/blinkcard/docs/variables/blinkCardUiStateMap.md create mode 100644 packages/blinkcard/docs/variables/cameraManagerStore.md create mode 100644 packages/blinkcard/docs/variables/cameraUiRefStore.md create mode 100644 packages/blinkcard/docs/variables/createBlinkCardUxManager.md create mode 100644 packages/blinkcard/docs/variables/defaultCameraManagerOptions.md create mode 100644 packages/blinkcard/docs/variables/firstSideCapturedUiStateKeys.md create mode 100644 packages/blinkcard/docs/variables/getBuffer.md create mode 100644 packages/blinkcard/docs/variables/getCrossOriginWorkerURL.md create mode 100644 packages/blinkcard/docs/variables/resetCameraManagerStore.md create mode 100644 packages/blinkcard/docs/variables/resourceFileTypes.md create mode 100644 packages/blinkcard/docs/variables/videoResolutions.md create mode 100644 packages/blinkcard/docs/variables/wasmBuildTypes.md create mode 100644 packages/blinkcard/docs/variables/wasmVariants.md create mode 100644 packages/blinkcard/lint-staged.config.mjs create mode 100644 packages/blinkcard/package.json create mode 100644 packages/blinkcard/scripts/prepare-publish.mts create mode 100644 packages/blinkcard/src/createBlinkCard.test.ts create mode 100644 packages/blinkcard/src/createBlinkCard.ts create mode 100644 packages/blinkcard/src/index.ts create mode 100644 packages/blinkcard/tsconfig.json create mode 100644 packages/blinkcard/turbo.json create mode 100644 packages/blinkcard/typedoc.json create mode 100644 packages/blinkcard/vite.config.mts create mode 100644 packages/blinkid-core/docs/functions/createDerivedDeviceInfo.md delete mode 100644 packages/blinkid-core/docs/functions/testLocalStorage.md delete mode 100644 packages/blinkid-core/docs/interfaces/NavigatorUABrandVersion.md delete mode 100644 packages/blinkid-core/docs/interfaces/NavigatorUAData.md delete mode 100644 packages/blinkid-core/docs/interfaces/UALowEntropyJSON.md delete mode 100644 packages/blinkid-core/docs/type-aliases/Hints.md delete mode 100644 packages/blinkid-core/docs/type-aliases/RemoteWorker.md delete mode 100644 packages/blinkid-core/docs/type-aliases/ServerPermissionError.md create mode 100644 packages/blinkid-core/docs/type-aliases/ServerPermissionErrorReason.md rename packages/blinkid-core/docs/{functions => variables}/getCrossOriginWorkerURL.md (73%) delete mode 100644 packages/blinkid-core/src/createProxyWorker.ts delete mode 100644 packages/blinkid-core/src/shouldUseLightweightBuild.test.ts delete mode 100644 packages/blinkid-wasm/.clang-tidy delete mode 100644 packages/blinkid-wasm/docs/type-aliases/ServerPermissionError.md create mode 100644 packages/blinkid-wasm/docs/type-aliases/ServerPermissionErrorReason.md rename RELEASE_NOTES.md => packages/blinkid/RELEASE_NOTES.md (98%) create mode 100644 packages/blinkid/docs/functions/createDerivedDeviceInfo.md create mode 100644 packages/blinkid/docs/functions/createProxyWorker.md delete mode 100644 packages/blinkid/docs/functions/testLocalStorage.md delete mode 100644 packages/blinkid/docs/interfaces/NavigatorUABrandVersion.md delete mode 100644 packages/blinkid/docs/interfaces/NavigatorUAData.md delete mode 100644 packages/blinkid/docs/interfaces/UALowEntropyJSON.md delete mode 100644 packages/blinkid/docs/type-aliases/Hints.md delete mode 100644 packages/blinkid/docs/type-aliases/RemoteWorker.md delete mode 100644 packages/blinkid/docs/type-aliases/ServerPermissionError.md create mode 100644 packages/blinkid/docs/type-aliases/ServerPermissionErrorReason.md delete mode 100644 packages/blinkid/docs/variables/createProxyWorker.md create mode 100644 packages/blinkid/src/createBlinkIdUi.test.ts create mode 100644 packages/core-common/.gitignore create mode 100644 packages/core-common/CHANGELOG.md create mode 100644 packages/core-common/README.md create mode 100644 packages/core-common/package.json rename packages/{blinkid-core => core-common}/src/createCustomImageData.ts (95%) create mode 100644 packages/core-common/src/createProxyWorker.ts rename packages/{blinkid-core => core-common}/src/deviceInfo/createDerivedDeviceInfo.test.ts (98%) rename packages/{blinkid-core => core-common}/src/deviceInfo/createDerivedDeviceInfo.ts (97%) rename packages/{blinkid-core => core-common}/src/deviceInfo/deviceInfo.ts (96%) rename packages/{blinkid-core => core-common}/src/deviceInfo/getAppleDeviceModel.test.ts (97%) rename packages/{blinkid-core => core-common}/src/deviceInfo/getAppleDeviceModel.ts (94%) rename packages/{blinkid-core => core-common}/src/deviceInfo/getBrowserFromUserAgent.test.ts (98%) rename packages/{blinkid-core => core-common}/src/deviceInfo/getBrowserFromUserAgent.ts (98%) rename packages/{blinkid-core => core-common}/src/deviceInfo/getOsFromUserAgent.test.ts (98%) rename packages/{blinkid-core => core-common}/src/deviceInfo/getOsFromUserAgent.ts (97%) rename packages/{blinkid-core => core-common}/src/deviceInfo/navigator-types.ts (94%) rename packages/{blinkid-core => core-common}/src/getCrossOriginWorkerURL.test.ts (98%) rename packages/{blinkid-core => core-common}/src/getCrossOriginWorkerURL.ts (97%) rename packages/{blinkid-core => core-common}/src/getUserId.ts (66%) create mode 100644 packages/core-common/src/shouldUseLightweightBuild.test.ts rename packages/{blinkid-core => core-common}/src/shouldUseLightweightBuild.ts (94%) create mode 100644 packages/core-common/tsconfig.json create mode 100644 packages/core-common/turbo.json create mode 100644 packages/core-common/vitest.config.ts create mode 100644 packages/feedback-stabilizer/README.md create mode 100644 packages/repo-utils/.gitignore create mode 100644 packages/repo-utils/README.md create mode 100644 packages/repo-utils/package.json create mode 100644 packages/repo-utils/tsconfig.json rename packages/{utils/utils.mjs => repo-utils/utils.mts} (64%) create mode 100644 packages/repo-utils/utils.test.mts create mode 100644 packages/unocss-config/README.md delete mode 100644 packages/utils/CHANGELOG.md delete mode 100644 packages/utils/package.json delete mode 100644 packages/utils/tsconfig.json delete mode 100644 packages/utils/types/utils.d.mts delete mode 100644 packages/utils/types/utils.d.mts.map delete mode 100644 packages/utils/utils.test.mjs create mode 100644 packages/ux-common/.gitignore create mode 100644 packages/ux-common/CHANGELOG.md create mode 100644 packages/ux-common/README.md create mode 100644 packages/ux-common/package.json rename packages/{blinkid-ux-manager/src/core/HapticFeedback.test.ts => ux-common/src/hapticFeedback.test.ts} (96%) rename packages/{blinkid-ux-manager/src/core/HapticFeedback.ts => ux-common/src/hapticFeedback.ts} (95%) create mode 100644 packages/ux-common/src/utils.test.ts rename packages/{blinkid-ux-manager/src/core => ux-common/src}/utils.ts (94%) create mode 100644 packages/ux-common/tsconfig.json create mode 100644 packages/ux-common/turbo.json create mode 100644 packages/wasm-common/.gitignore create mode 100644 packages/wasm-common/CHANGELOG.md create mode 100644 packages/wasm-common/README.md create mode 100644 packages/wasm-common/package.json rename packages/{blinkid-wasm => wasm-common}/src/emscripten.ts (98%) create mode 100644 packages/wasm-common/src/index.ts rename packages/{blinkid-wasm/src/licencing.ts => wasm-common/src/licensing.ts} (93%) rename packages/{blinkid-wasm => wasm-common}/src/wasm-constants.ts (87%) create mode 100644 packages/wasm-common/tsconfig.json create mode 100644 packages/worker-common/.gitignore create mode 100644 packages/worker-common/CHANGELOG.md create mode 100644 packages/worker-common/README.md create mode 100644 packages/worker-common/package.json rename packages/{blinkid-worker => worker-common}/src/buildResourcePath.ts (92%) create mode 100644 packages/worker-common/src/errors.ts rename packages/{blinkid-worker => worker-common}/src/getCrossOriginWorkerURL.ts (96%) rename packages/{blinkid-worker => worker-common}/src/isSafari.ts (91%) rename packages/{blinkid-worker => worker-common}/src/licencing.test.ts (96%) rename packages/{blinkid-worker => worker-common}/src/licencing.ts (94%) rename packages/{blinkid-worker => worker-common}/src/mbToWasmPages.ts (81%) rename packages/{blinkid-worker => worker-common}/src/proxy-url-validator.test.ts (98%) rename packages/{blinkid-worker => worker-common}/src/proxy-url-validator.ts (96%) rename packages/{blinkid-worker => worker-common}/src/wasm-feature-detect.ts (90%) create mode 100644 packages/worker-common/tsconfig.json create mode 100644 packages/worker-common/turbo.json diff --git a/.changeset/config.json b/.changeset/config.json index 38fa437..65201f6 100644 --- a/.changeset/config.json +++ b/.changeset/config.json @@ -4,15 +4,18 @@ "commit": false, "fixed": [ [ - "@microblink/blinkid", - "@microblink/blinkid-core", - "@microblink/blinkid-ux-manager", - "@microblink/blinkid-wasm", - "@microblink/blinkid-worker" + "@microblink/blinkid*" + ], + [ + "@microblink/blinkcard*" ] ], - "access": "restricted", + "access": "public", "baseBranch": "master", "updateInternalDependencies": "patch", - "ignore": [] + "ignore": [ + "@microblink/*-example", + "@microblink/*-qa-app", + "@microblink/*-test" +] } diff --git a/.npmrc b/.npmrc deleted file mode 100644 index 2e1ede7..0000000 --- a/.npmrc +++ /dev/null @@ -1,13 +0,0 @@ -# https://pnpm.io/npmrc#public-hoist-pattern - -public-hoist-pattern[]="typescript" -# public-hoist-pattern[]="@types/*" -public-hoist-pattern[]="*eslint*" -public-hoist-pattern[]="@prettier/plugin-*" -public-hoist-pattern[]="*prettier-plugin-*" -public-hoist-pattern[]="prettier" - - -# legacy-peer-deps=true -# auto-install-peers=true -# node-linker=hoisted \ No newline at end of file diff --git a/README.md b/README.md index 9e68992..272e5f7 100644 --- a/README.md +++ b/README.md @@ -1,8 +1,8 @@ -# BlinkID Web +# Microblink Web SDKs ## Getting Started -Please follow the documentation at [blinkid.docs.microblink.com](https://blinkid.docs.microblink.com/sdk/web/)! +Please follow the documentation at [docs.microblink.com](https://docs.microblink.com)! ## Questions & Issues @@ -12,7 +12,10 @@ Have questions, feedback, or running into issues? We're here to help! Contact us | Package | Version | Changelog | |---------|---------|-----------| -| [@microblink/blinkid](https://github.com/BlinkID/blinkid-web/tree/main/packages/blinkid) | [![npm](https://img.shields.io/npm/v/@microblink/blinkid.svg)](https://www.npmjs.com/package/@microblink/blinkid) | [CHANGELOG](https://github.com/BlinkID/blinkid-web/blob/main/packages/blinkid/CHANGELOG.md) | -| [@microblink/blinkid-core](https://github.com/BlinkID/blinkid-web/tree/main/packages/blinkid-core) | [![npm](https://img.shields.io/npm/v/@microblink/blinkid-core.svg)](https://www.npmjs.com/package/@microblink/blinkid-core) | [CHANGELOG](https://github.com/BlinkID/blinkid-web/blob/main/packages/blinkid-core/CHANGELOG.md) | -| [@microblink/blinkid-ux-manager](https://github.com/BlinkID/blinkid-web/tree/main/packages/blinkid-ux-manager) | [![npm](https://img.shields.io/npm/v/@microblink/blinkid-ux-manager.svg)](https://www.npmjs.com/package/@microblink/blinkid-ux-manager) | [CHANGELOG](https://github.com/BlinkID/blinkid-web/blob/main/packages/blinkid-ux-manager/CHANGELOG.md) | -| [@microblink/camera-manager](https://github.com/BlinkID/blinkid-web/tree/main/packages/camera-manager) | [![npm](https://img.shields.io/npm/v/@microblink/camera-manager.svg)](https://www.npmjs.com/package/@microblink/camera-manager) | [CHANGELOG](https://github.com/BlinkID/blinkid-web/blob/main/packages/camera-manager/CHANGELOG.md) | \ No newline at end of file +| [@microblink/blinkid](https://github.com/microblink/web-sdks/tree/main/packages/blinkid) | [![npm](https://img.shields.io/npm/v/@microblink/blinkid.svg)](https://www.npmjs.com/package/@microblink/blinkid) | [CHANGELOG](https://github.com/microblink/web-sdks/blob/main/packages/blinkid/CHANGELOG.md) | +| [@microblink/blinkid-core](https://github.com/microblink/web-sdks/tree/main/packages/blinkid-core) | [![npm](https://img.shields.io/npm/v/@microblink/blinkid-core.svg)](https://www.npmjs.com/package/@microblink/blinkid-core) | [CHANGELOG](https://github.com/microblink/web-sdks/blob/main/packages/blinkid-core/CHANGELOG.md) | +| [@microblink/blinkid-ux-manager](https://github.com/microblink/web-sdks/tree/main/packages/blinkid-ux-manager) | [![npm](https://img.shields.io/npm/v/@microblink/blinkid-ux-manager.svg)](https://www.npmjs.com/package/@microblink/blinkid-ux-manager) | [CHANGELOG](https://github.com/microblink/web-sdks/blob/main/packages/blinkid-ux-manager/CHANGELOG.md) | +| [@microblink/blinkcard](https://github.com/microblink/web-sdks/tree/main/packages/blinkcard) | [![npm](https://img.shields.io/npm/v/@microblink/blinkcard.svg)](https://www.npmjs.com/package/@microblink/blinkcard) | [CHANGELOG](https://github.com/microblink/web-sdks/blob/main/packages/blinkcard/CHANGELOG.md) | +| [@microblink/blinkcard-core](https://github.com/microblink/web-sdks/tree/main/packages/blinkcard-core) | [![npm](https://img.shields.io/npm/v/@microblink/blinkcard-core.svg)](https://www.npmjs.com/package/@microblink/blinkcard-core) | [CHANGELOG](https://github.com/microblink/web-sdks/blob/main/packages/blinkcard-core/CHANGELOG.md) | +| [@microblink/blinkcard-ux-manager](https://github.com/microblink/web-sdks/tree/main/packages/blinkcard-ux-manager) | [![npm](https://img.shields.io/npm/v/@microblink/blinkcard-ux-manager.svg)](https://www.npmjs.com/package/@microblink/blinkcard-ux-manager) | [CHANGELOG](https://github.com/microblink/web-sdks/blob/main/packages/blinkcard-ux-manager/CHANGELOG.md) | +| [@microblink/camera-manager](https://github.com/microblink/web-sdks/tree/main/packages/camera-manager) | [![npm](https://img.shields.io/npm/v/@microblink/camera-manager.svg)](https://www.npmjs.com/package/@microblink/camera-manager) | [CHANGELOG](https://github.com/microblink/web-sdks/blob/main/packages/camera-manager/CHANGELOG.md) | \ No newline at end of file diff --git a/apps/examples/README.md b/apps/examples/README.md index 25aa6a2..dc22e18 100644 --- a/apps/examples/README.md +++ b/apps/examples/README.md @@ -1,15 +1,25 @@ -# BlinkID SDK Example Applications +# BlinkID and BlinkCard Example Applications -This directory contains example applications demonstrating the capabilities of the BlinkID SDK. +This directory contains example applications demonstrating the capabilities of the BlinkID and BlinkCard SDKs. ## Available Examples +### BlinkID + - [BlinkID Simple](./blinkid-simple/): A simple example of how to use the BlinkID SDK. - [BlinkID Advanced Setup](./blinkid-advanced-setup/): Demonstrates advanced setup and customization of the BlinkID SDK. - [BlinkID UI Customization](./blinkid-ui-customization/): Shows how to implement custom UI, such as replacing UI for various error states (camera errors, timeouts, unsupported documents, filtered documents). - [BlinkID Photo Upload](./blinkid-photo-upload/): An example of how to use the BlinkID SDK with photo upload functionality. - [BlinkID Core API](./blinkid-core-api/): Shows how to use the core API of the BlinkID SDK. - [BlinkID Preload](./blinkid-preload/): Demonstrates how to preload the BlinkID SDK for faster initialization. + +### BlinkCard + +- [BlinkCard Simple](./blinkcard-simple/): A simple example of how to use the BlinkCard SDK. +- [BlinkCard Advanced Setup](./blinkcard-advanced-setup/): Demonstrates advanced setup and customization of the BlinkCard SDK. + +### Camera + - [Camera Manager](./camera-manager/): An example of how to use the camera manager. - [Camera Selection](./camera-selection/): An example of how to use the camera selection feature. @@ -35,7 +45,7 @@ pnpm build:packages ### 3. Set up the License Key -Most of the example applications require a license key to run. You can obtain a free trial license key by registering on the [Microblink Developer Hub](https://developer.microblink.com/license/new). +BlinkID and BlinkCard example applications require a license key to run. You can obtain a free trial license key by registering on the [Microblink Developer Hub](https://developer.microblink.com/license/new). After obtaining the license key, create a `.env.local` file in the root of the specific example application you want to run (e.g., `apps/examples/blinkid-simple/.env.local`) and add the following line: diff --git a/apps/examples/blinkcard-advanced-setup/.eslintrc.cjs b/apps/examples/blinkcard-advanced-setup/.eslintrc.cjs new file mode 100644 index 0000000..4b6a985 --- /dev/null +++ b/apps/examples/blinkcard-advanced-setup/.eslintrc.cjs @@ -0,0 +1,53 @@ +const { defineConfig } = require("eslint-define-config"); + +module.exports = defineConfig({ + root: true, + + parserOptions: { + ecmaVersion: "2022", + sourceType: "module", + }, + + overrides: [ + { + files: ["src/**/*.{ts,tsx}"], + plugins: ["@typescript-eslint", "solid"], + parser: "@typescript-eslint/parser", + // have to duplicate in override... + rules: { + "@typescript-eslint/no-unused-vars": 0, + // the following two are causing errors in vscode. See: + // https://typescript-eslint.io/linting/troubleshooting/#changes-to-one-file-are-not-reflected-when-linting-other-files-in-my-ide + "@typescript-eslint/no-unsafe-assignment": 0, + "@typescript-eslint/no-unsafe-member-access": 0, + // only use in tsx + "@typescript-eslint/no-non-null-assertion": 0, + "@typescript-eslint/consistent-type-definitions": 0, + "prefer-const": 0, + }, + parserOptions: { + tsconfigRootDir: __dirname, + project: ["./tsconfig.json"], + }, + extends: [ + "eslint:recommended", + "plugin:solid/typescript", + "plugin:@typescript-eslint/recommended-type-checked", + "plugin:@typescript-eslint/stylistic-type-checked", + "prettier", + ], + }, + { + files: ["**/*.{js,mjs,cjs}"], + env: { + node: true, + browser: true, + es2021: true, + }, + extends: ["eslint:recommended"], + rules: { + "no-unused-vars": 0, + }, + }, + ], +}); diff --git a/apps/examples/blinkcard-advanced-setup/.gitignore b/apps/examples/blinkcard-advanced-setup/.gitignore new file mode 100644 index 0000000..4b09127 --- /dev/null +++ b/apps/examples/blinkcard-advanced-setup/.gitignore @@ -0,0 +1,6 @@ +node_modules +dist +public +types +*.local +.env.production diff --git a/apps/examples/blinkcard-advanced-setup/README.md b/apps/examples/blinkcard-advanced-setup/README.md new file mode 100644 index 0000000..dc7b156 --- /dev/null +++ b/apps/examples/blinkcard-advanced-setup/README.md @@ -0,0 +1,28 @@ +# BlinkCard Advanced Example + +This example application demonstrates an advanced setup of the BlinkCard SDK, showcasing the integration of modular packages such as `@microblink/blinkcard-core`, `@microblink/blinkcard-ux-manager`, and `@microblink/camera-manager`. + +## Functionality + +The application performs the following actions: + +1. **Initializes BlinkCard Core**: It loads the WebAssembly (WASM) resources and initializes the scanning engine using a license key. +2. **Creates a Scanning Session**: It starts a new scanning session with explicit scanning settings. +3. **Manages Camera Access**: It creates and controls a `CameraManager` instance for camera stream and frame capture. +4. **Manages UX Flow**: It creates a BlinkCard UX manager to orchestrate scanning behavior and callbacks. +5. **Renders Camera + Feedback UI**: It mounts camera UI and feedback UI, and demonstrates onboarding control. +6. **Handles Results**: It listens for result callbacks and displays a sanitized JSON result in the page. +7. **Shows Debug Overlay**: It includes a debug `DebugOverlay` component for frame-level state, scores, and card outline visualization. +8. **Cleans Up Resources**: It terminates core resources when UI is dismounted. + +## Key Features Demonstrated + +- **Modular Integration**: Uses low-level BlinkCard packages directly instead of the high-level `@microblink/blinkcard` wrapper. +- **Manual Lifecycle Control**: Explicit initialization, playback synchronization, frame capture start, and teardown. +- **Custom UI Placement**: Optional portal mode for rendering SDK UI outside of the root node. +- **Debug Instrumentation**: Visualizes feedback stabilizer scores and process state for development/debugging. +- **Result Post-Processing**: Removes image payloads before rendering result JSON for readability. + +## How to Run + +For detailed instructions on how to install dependencies and run this example, refer to the [main README file](./../README.md). diff --git a/apps/examples/blinkcard-advanced-setup/index.html b/apps/examples/blinkcard-advanced-setup/index.html new file mode 100644 index 0000000..0241c4a --- /dev/null +++ b/apps/examples/blinkcard-advanced-setup/index.html @@ -0,0 +1,19 @@ + + + + + + + + BlinkCard Advanced Example + + + +
+ + + + diff --git a/apps/examples/blinkcard-advanced-setup/lint-staged.config.cjs b/apps/examples/blinkcard-advanced-setup/lint-staged.config.cjs new file mode 100644 index 0000000..13dc136 --- /dev/null +++ b/apps/examples/blinkcard-advanced-setup/lint-staged.config.cjs @@ -0,0 +1,7 @@ +module.exports = { + "*.{js,jsx,ts,tsx}": [() => "eslint --max-warnings=0"], + "*.{ts,tsx}": [ + () => "tsc-files --skipLibCheck --emitDeclarationOnly false --noEmit", + ], + "*.{js,jsx,ts,tsx,css,md}": ["prettier --write"], +}; diff --git a/apps/examples/blinkcard-advanced-setup/package.json b/apps/examples/blinkcard-advanced-setup/package.json new file mode 100644 index 0000000..515ec1f --- /dev/null +++ b/apps/examples/blinkcard-advanced-setup/package.json @@ -0,0 +1,45 @@ +{ + "name": "@microblink/blinkcard-advanced-setup-example", + "description": "An example of advanced BlinkCard SDK setup", + "private": true, + "scripts": { + "build": "vite build", + "build:js-dev": "vite build --mode development", + "clean": "rimraf dist public .turbo types tsconfig.tsbuildinfo", + "dev": "vite --host", + "lint": "concurrently pnpm:lint:types pnpm:lint:eslint", + "lint:eslint": "eslint ./src --max-warnings 0", + "lint:types": "tsc --emitDeclarationOnly false --noEmit", + "preview": "vite preview", + "watch": "vite build --watch --mode development" + }, + "type": "module", + "dependencies": { + "@microblink/blinkcard-core": "workspace:^", + "@microblink/blinkcard-ux-manager": "workspace:^", + "@microblink/camera-manager": "workspace:^", + "@microblink/feedback-stabilizer": "workspace:^", + "solid-js": "^1.9.9", + "yy-fps": "^2.0.1" + }, + "devDependencies": { + "@microblink/tsconfig": "workspace:*", + "@microblink/repo-utils": "workspace:*", + "@typescript-eslint/eslint-plugin": "^6.9.0", + "concurrently": "^9.1.2", + "eslint": "^8.57.0", + "eslint-config-prettier": "10.0.1", + "eslint-define-config": "^1.24.1", + "eslint-plugin-solid": "0.14.5", + "prettier": "^3.6.2", + "rimraf": "^6.0.1", + "tsc-files": "^1.1.4", + "typescript": "5.8.3", + "vite": "^6.2.1", + "vite-plugin-mkcert": "^1.17.6", + "vite-plugin-qrcode": "^0.2.4", + "vite-plugin-solid": "^2.11.6", + "zx": "^8.8.5" + }, + "license": "MIT" +} diff --git a/apps/examples/blinkcard-advanced-setup/src/App.tsx b/apps/examples/blinkcard-advanced-setup/src/App.tsx new file mode 100644 index 0000000..b18fb3b --- /dev/null +++ b/apps/examples/blinkcard-advanced-setup/src/App.tsx @@ -0,0 +1,165 @@ +/** + * Copyright (c) 2026 Microblink Ltd. All rights reserved. + */ + +/* @refresh reload */ + +import { + type BlinkCardScanningResult, + loadBlinkCardCore, +} from "@microblink/blinkcard-core"; +import { + createBlinkCardFeedbackUi, + createBlinkCardUxManager, + type BlinkCardUxManager, +} from "@microblink/blinkcard-ux-manager"; +import { + CameraManager, + createCameraManagerUi, +} from "@microblink/camera-manager"; +import { Component, createSignal, onMount, Show } from "solid-js"; +import { DebugOverlay } from "./DebugOverlay"; + +/** + * Debug info will be displayed in the UI. + */ +const SHOW_DEBUG = false; + +/** + * If you are using a portal, you can set this to true. Portal is a way to render the UI outside of the root element. + * This is useful if you want to use the SDK in a modal or a popup. + */ +const USE_PORTAL = true; + +/** + * If the onboarding guide should be shown. + */ +const SHOW_ONBOARDING = true; + +/** + * This is the target node for the UI. + */ +const targetNode = !USE_PORTAL ? document.getElementById("root")! : undefined; + +/** + * This is the main component of the application. + */ +export const App: Component = () => { + const [result, setResult] = createSignal(); + const [blinkCardUxManager, setBlinkCardUxManager] = + createSignal(); + const [loadState, setLoadState] = createSignal< + "not-loaded" | "loading" | "ready" + >("not-loaded"); + + /** + * Remove image payloads from results so JSON output is readable, and to prevent memory issues. + */ + const resultWithoutImages = () => { + const resultCopy = structuredClone(result()); + + if (resultCopy?.firstSideResult?.cardImage) { + delete resultCopy.firstSideResult.cardImage.image; + } + if (resultCopy?.secondSideResult?.cardImage) { + delete resultCopy.secondSideResult.cardImage.image; + } + + return resultCopy; + }; + + async function init() { + setLoadState("loading"); + setResult(undefined); + + const blinkCardCore = await loadBlinkCardCore({ + licenseKey: import.meta.env.VITE_LICENCE_KEY, + }); + + const session = await blinkCardCore.createScanningSession({ + scanningSettings: { + // skipImagesWithBlur: true, + }, + }); + + const cameraManager = new CameraManager(); + const uxManager = await createBlinkCardUxManager(cameraManager, session); + uxManager.setTimeoutDuration(null); + setBlinkCardUxManager(uxManager); + + const cameraUi = await createCameraManagerUi(cameraManager, targetNode, { + showMirrorCameraButton: true, + }); + + cameraUi.addOnDismountCallback(() => { + void blinkCardCore.terminate(); + setBlinkCardUxManager(undefined); + setLoadState("not-loaded"); + }); + + uxManager.addOnResultCallback((nextResult) => { + setResult(nextResult); + cameraUi.dismount(); + }); + + const unsub = cameraManager.subscribe( + (s) => s.playbackState, + (state) => { + if (state === "playback") { + createBlinkCardFeedbackUi(uxManager, cameraUi, { + showOnboardingGuide: SHOW_ONBOARDING, + // localizationStrings: { + // scan_the_card_front: "Scan the front side of the card", + // }, + }); + + if (!SHOW_ONBOARDING) { + void cameraManager.startFrameCapture(); + } + + setLoadState("ready"); + unsub(); + } + }, + ); + + await cameraManager.startCameraStream({ + // use this to force the camera to use a specific facing mode + // preferredFacing: "front", + // use this to force the camera to use a specific camera + // preferredCamera: (cameras) => { + // return cameras.find((camera) => + // // example how to find a camera by name + // camera.name.toLowerCase().includes("logitech"), + // ); + // }, + }); + } + + onMount(() => { + void init(); + }); + + return ( +
+ + + + + + + + + + {(trimmedResult) => ( +
{JSON.stringify(trimmedResult(), null, 2)}
+ )} +
+
+ ); +}; diff --git a/apps/examples/blinkcard-advanced-setup/src/DebugOverlay.tsx b/apps/examples/blinkcard-advanced-setup/src/DebugOverlay.tsx new file mode 100644 index 0000000..979ae35 --- /dev/null +++ b/apps/examples/blinkcard-advanced-setup/src/DebugOverlay.tsx @@ -0,0 +1,646 @@ +/** + * Copyright (c) 2026 Microblink Ltd. All rights reserved. + */ + +import type { BlinkCardProcessResult } from "@microblink/blinkcard-core"; +import { cameraUiRefStore } from "@microblink/camera-manager"; +import { + type BlinkCardUiStateKey, + type BlinkCardUxManager, +} from "@microblink/blinkcard-ux-manager"; +import { UiStateEvent } from "@microblink/feedback-stabilizer"; +import { + batch, + Component, + createEffect, + createSignal, + For, + onCleanup, + Show, +} from "solid-js"; +import { createStore, reconcile } from "solid-js/store"; +import { FPS } from "yy-fps"; + +type Score = { + key: string; + score: number; +}; + +type CardLocation = + BlinkCardProcessResult["inputImageAnalysisResult"]["cardLocation"]; +type CardPoint = NonNullable["upperLeft"]; + +export const DebugOverlay: Component<{ + blinkCardUxManager: BlinkCardUxManager; +}> = (props) => { + const [processResult, setProcessResult] = + createSignal(); + const [scores, setScores] = createSignal>({}); + const [events, setEvents] = createSignal([]); + const [rawKey, setRawKey] = createSignal(); + const [showDebugInfo, setShowDebugInfo] = createSignal(true); + const [showCardOutline, setShowCardOutline] = createSignal(true); + + const [sortedScores, setSortedScores] = createStore([]); + + const fps = new FPS({ + zIndex: 9999, + }); + + let outlineCanvas: HTMLCanvasElement | undefined; + let outlineContext: CanvasRenderingContext2D | null = null; + let outlineResizeObserver: ResizeObserver | undefined; + + const removeOutlineCanvas = () => { + outlineResizeObserver?.disconnect(); + outlineResizeObserver = undefined; + outlineCanvas?.remove(); + outlineCanvas = undefined; + outlineContext = null; + }; + + const ensureOutlineCanvas = () => { + if (outlineCanvas && outlineContext) { + return { canvas: outlineCanvas, context: outlineContext }; + } + + const feedbackLayer = cameraUiRefStore.getState().feedbackLayer; + if (!feedbackLayer) { + return undefined; + } + + const canvas = document.createElement("canvas"); + canvas.style.position = "absolute"; + canvas.style.top = "0"; + canvas.style.left = "0"; + canvas.style.width = "100%"; + canvas.style.height = "100%"; + canvas.style.pointerEvents = "none"; + canvas.style.zIndex = "2"; + + feedbackLayer.appendChild(canvas); + + outlineCanvas = canvas; + outlineContext = canvas.getContext("2d"); + if (!outlineContext) { + canvas.remove(); + outlineCanvas = undefined; + outlineContext = null; + return undefined; + } + + const syncSize = () => { + const rect = feedbackLayer.getBoundingClientRect(); + const dpr = window.devicePixelRatio || 1; + canvas.width = Math.max(1, Math.round(rect.width * dpr)); + canvas.height = Math.max(1, Math.round(rect.height * dpr)); + canvas.style.width = `${rect.width}px`; + canvas.style.height = `${rect.height}px`; + outlineContext?.setTransform(dpr, 0, 0, dpr, 0, 0); + }; + + syncSize(); + + outlineResizeObserver = new ResizeObserver(syncSize); + outlineResizeObserver.observe(feedbackLayer); + + return { canvas, context: outlineContext }; + }; + + const clearOutlineCanvas = () => { + if (!outlineCanvas || !outlineContext) { + return; + } + + const layer = outlineCanvas.parentElement; + if (!layer) { + return; + } + + const rect = layer.getBoundingClientRect(); + outlineContext.clearRect(0, 0, rect.width, rect.height); + }; + + const getObjectFit = (video: HTMLVideoElement) => { + return ( + video.style.objectFit || + getComputedStyle(video).objectFit || + "contain" + ).toLowerCase(); + }; + + const toDisplayPoint = ( + point: CardPoint, + options: { + extractionArea: { x: number; y: number }; + offsetX: number; + offsetY: number; + scale: number; + mirrorX: boolean; + width: number; + }, + ) => { + const naturalX = options.extractionArea.x + point.x; + const naturalY = options.extractionArea.y + point.y; + + let x = options.offsetX + naturalX * options.scale; + const y = options.offsetY + naturalY * options.scale; + + if (options.mirrorX) { + x = options.width - x; + } + + return { x, y }; + }; + + const drawCardOutline = (location: NonNullable) => { + const canvasData = ensureOutlineCanvas(); + if (!canvasData) { + return; + } + + const { context } = canvasData; + const cameraState = props.blinkCardUxManager.cameraManager.getState(); + const video = cameraState.videoElement; + const layer = outlineCanvas?.parentElement; + + if (!video || !layer) { + clearOutlineCanvas(); + return; + } + + const { videoWidth, videoHeight } = video; + const width = layer.clientWidth; + const height = layer.clientHeight; + + if (!videoWidth || !videoHeight || !width || !height) { + clearOutlineCanvas(); + return; + } + + const objectFit = getObjectFit(video); + const scale = + objectFit === "cover" + ? Math.max(width / videoWidth, height / videoHeight) + : Math.min(width / videoWidth, height / videoHeight); + const offsetX = (width - videoWidth * scale) / 2; + const offsetY = (height - videoHeight * scale) / 2; + const extractionArea = cameraState.extractionArea ?? { + x: 0, + y: 0, + width: videoWidth, + height: videoHeight, + }; + + context.clearRect(0, 0, width, height); + context.lineWidth = 3; + context.lineJoin = "round"; + context.lineCap = "round"; + + const points = [ + location.upperLeft, + location.upperRight, + location.lowerRight, + location.lowerLeft, + ].map((point) => + toDisplayPoint(point, { + extractionArea, + offsetX, + offsetY, + scale, + mirrorX: cameraState.mirrorX, + width, + }), + ); + + const edgeColors = { + top: "rgba(231, 76, 60, 0.95)", + right: "rgba(46, 204, 113, 0.95)", + bottom: "rgba(52, 152, 219, 0.95)", + left: "rgba(241, 196, 15, 0.95)", + }; + + context.strokeStyle = edgeColors.top; + context.beginPath(); + context.moveTo(points[0].x, points[0].y); + context.lineTo(points[1].x, points[1].y); + context.stroke(); + + context.strokeStyle = edgeColors.right; + context.beginPath(); + context.moveTo(points[1].x, points[1].y); + context.lineTo(points[2].x, points[2].y); + context.stroke(); + + context.strokeStyle = edgeColors.bottom; + context.beginPath(); + context.moveTo(points[2].x, points[2].y); + context.lineTo(points[3].x, points[3].y); + context.stroke(); + + context.strokeStyle = edgeColors.left; + context.beginPath(); + context.moveTo(points[3].x, points[3].y); + context.lineTo(points[0].x, points[0].y); + context.stroke(); + }; + + onCleanup(() => { + fps.remove(); + removeOutlineCanvas(); + }); + + createEffect(() => { + const callback = (frameResult: BlinkCardProcessResult) => { + fps.frame(); + const nextScores = + props.blinkCardUxManager.feedbackStabilizer.getScores(); + const nextEvents = + props.blinkCardUxManager.feedbackStabilizer.getEventQueue(); + + batch(() => { + setEvents(nextEvents); + setScores(nextScores); + setRawKey(props.blinkCardUxManager.rawUiStateKey); + }); + setProcessResult(frameResult); + }; + + const cleanup = + props.blinkCardUxManager.addOnFrameProcessCallback(callback); + + onCleanup(() => { + cleanup(); + }); + }); + + createEffect(() => { + if (!showCardOutline()) { + removeOutlineCanvas(); + return; + } + + const result = processResult(); + const location = result?.inputImageAnalysisResult.cardLocation; + + if (!location) { + clearOutlineCanvas(); + return; + } + + drawCardOutline(location); + }); + + createEffect(() => { + const scoreSum = Object.values(scores()).reduce( + (acc, score) => acc + score, + 0, + ); + + const normalizedScores = Object.entries(scores()).reduce( + (acc, [key, score]) => { + return { ...acc, [key]: score / scoreSum }; + }, + {} as Record, + ); + + const sorted = Object.entries(normalizedScores) + .map((score) => { + return { + key: score[0], + score: score[1], + }; + }) + .sort((a, b) => b.score - a.score); + + setSortedScores(reconcile(sorted)); + }); + + const outline = { + "text-shadow": + "1px 1px 0 #000, -1px -1px 0 #000, 1px -1px 0 #000, -1px 1px 0 #000", + margin: "0", + padding: "0", + }; + const labelStyle = { + "font-size": "12px", + opacity: 0.8, + "overflow-wrap": "anywhere", + "word-break": "break-word", + } as const; + const valueStyle = { + "font-size": "12px", + "font-family": "monospace", + "overflow-wrap": "anywhere", + "word-break": "break-word", + } as const; + const rawKeyBadgeStyle = { + display: "inline-flex", + "align-items": "center", + padding: "0.2rem 0.6rem", + "border-radius": "6px", + "font-size": "12px", + "font-weight": "700", + "letter-spacing": "0.04em", + background: "rgba(52, 152, 219, 0.9)", + color: "#000", + "text-transform": "uppercase", + } as const; + const statusBadgeStyle = (value: string | undefined) => { + const successValues = new Set([ + "success", + "detected", + "extracted", + "card-scanned", + "side-scanned", + ]); + const warnValues = new Set([ + "awaiting-other-side", + "scanning-side-in-progress", + "camera-too-far", + "camera-too-close", + "camera-angle-too-steep", + "document-too-close-to-camera-edge", + "document-partially-visible", + ]); + const neutralValues = new Set(["not-available", "not-requested"]); + + let background = "rgba(231, 76, 60, 0.9)"; + let color = "#fff"; + if (!value) { + background = "rgba(255,255,255,0.15)"; + color = "#fff"; + } else if (successValues.has(value)) { + background = "rgba(46, 204, 113, 0.9)"; + color = "#000"; + } else if (neutralValues.has(value)) { + background = "rgba(149, 165, 166, 0.9)"; + color = "#000"; + } else if (warnValues.has(value)) { + background = "rgba(241, 196, 15, 0.9)"; + color = "#000"; + } + + return { + display: "inline-block", + padding: "0.15rem 0.5rem", + "border-radius": "999px", + "font-size": "12px", + "font-weight": "600", + "letter-spacing": "0.02em", + background, + color, + }; + }; + const formatPoint = (point: CardPoint) => { + return `${point.x.toFixed(1)},${point.y.toFixed(1)}`; + }; + const formatCardLocation = (location: CardLocation) => { + if (!location) { + return "-"; + } + return `UL:${formatPoint(location.upperLeft)} UR:${formatPoint(location.upperRight)} LR:${formatPoint(location.lowerRight)} LL:${formatPoint(location.lowerLeft)}`; + }; + + return ( +
+
+ + Raw UI key + + {rawKey() ?? "-"} +
+
+ + +
+ + {(result) => { + const analysis = () => result().inputImageAnalysisResult; + const completeness = () => result().resultCompleteness; + + return ( +
+
+ Processing + + {analysis().processingStatus} + + Detection + + {analysis().detectionStatus} + +
+ +
+ Scanning side + {analysis().scanningSide} + Blur detection + {analysis().blurDetectionStatus} + Card rotation + {analysis().cardRotation} + Card location + + {formatCardLocation(analysis().cardLocation)} + +
+ +
+
+ Result completeness +
+
+ scanningStatus + + {completeness().scanningStatus} + + cardNumberExtractionStatus + + {completeness().cardNumberExtractionStatus} + + + cardNumberPrefixExtractionStatus + + + {completeness().cardNumberPrefixExtractionStatus} + + expiryDateExtractionStatus + + {completeness().expiryDateExtractionStatus} + + cardholderNameExtractionStatus + + {completeness().cardholderNameExtractionStatus} + + cvvExtractionStatus + + {completeness().cvvExtractionStatus} + + ibanExtractionStatus + + {completeness().ibanExtractionStatus} + + cardImageExtractionStatus + + {completeness().cardImageExtractionStatus} + +
+
+
+ ); + }} +
+
+
+ Events in queue + {events().length} +
+
+ + {(score) => { + return ( +
+
+
{score.key}
+
{score.score.toFixed(3)}
+
+
+
+ ); + }} + +
+
+
+ ); +}; diff --git a/apps/examples/blinkcard-advanced-setup/src/index.css b/apps/examples/blinkcard-advanced-setup/src/index.css new file mode 100644 index 0000000..4ea5126 --- /dev/null +++ b/apps/examples/blinkcard-advanced-setup/src/index.css @@ -0,0 +1,22 @@ +body { + margin: 0; +} + +:root { + background-color: #282c34; + color: white; + min-height: 300vh; + font-family: + -apple-system, BlinkMacSystemFont, "Segoe UI", "Roboto", "Oxygen", "Ubuntu", + "Cantarell", "Fira Sans", "Droid Sans", "Helvetica Neue", sans-serif; +} + +/* override variable example */ +/*#mb-camera-host::part(capture-screen-part) { + --color-primary: 255 5 5; +}*/ + +/* modify the camera select here */ +/* #mb-camera-host::part(camera-select-part) { + display: none; +} */ diff --git a/apps/examples/blinkcard-advanced-setup/src/index.tsx b/apps/examples/blinkcard-advanced-setup/src/index.tsx new file mode 100644 index 0000000..e9119f1 --- /dev/null +++ b/apps/examples/blinkcard-advanced-setup/src/index.tsx @@ -0,0 +1,9 @@ +/** + * Copyright (c) 2026 Microblink Ltd. All rights reserved. + */ + +import { render } from "solid-js/web"; +import { App } from "./App"; +import "./index.css"; + +render(() => , document.getElementById("root")!); diff --git a/apps/examples/blinkcard-advanced-setup/tsconfig.json b/apps/examples/blinkcard-advanced-setup/tsconfig.json new file mode 100644 index 0000000..b742594 --- /dev/null +++ b/apps/examples/blinkcard-advanced-setup/tsconfig.json @@ -0,0 +1,13 @@ +{ + "extends": "@microblink/tsconfig/base.json", + "compilerOptions": { + "noEmit": true, + "declaration": false, + "declarationMap": false, + "rootDir": "src", + "jsx": "preserve", + "jsxImportSource": "solid-js", + "types": ["vite/client"] + }, + "include": ["src"] +} diff --git a/apps/examples/blinkcard-advanced-setup/vite.config.ts b/apps/examples/blinkcard-advanced-setup/vite.config.ts new file mode 100644 index 0000000..4ffd38f --- /dev/null +++ b/apps/examples/blinkcard-advanced-setup/vite.config.ts @@ -0,0 +1,51 @@ +/** + * Copyright (c) 2026 Microblink Ltd. All rights reserved. + */ + +import { moveResources } from "@microblink/repo-utils"; +import dns from "dns"; +import { ServerOptions, defineConfig } from "vite"; +import mkcert from "vite-plugin-mkcert"; +import { qrcode } from "vite-plugin-qrcode"; +import solidPlugin from "vite-plugin-solid"; + +// https://vitejs.dev/guide/migration.html#architecture-changes-and-legacy-options +dns.setDefaultResultOrder("verbatim"); + +let ranOnce = false; + +const serverOptions: ServerOptions = { + port: 3000, + headers: { + "Cross-Origin-Embedder-Policy": "require-corp", + "Cross-Origin-Opener-Policy": "same-origin", + }, +}; + +export default defineConfig((config) => { + return { + base: "./", + build: { + sourcemap: config.mode === "development", + target: "es2022", + }, + plugins: [ + // symlink wasm resources to public/resources + { + name: "move-resources", + buildStart: async () => { + if (ranOnce) { + return; + } + moveResources("@microblink/blinkcard-core", "public/resources"); + ranOnce = true; + }, + }, + qrcode(), + solidPlugin(), + mkcert(), + ], + server: serverOptions, + preview: serverOptions, + }; +}); diff --git a/apps/examples/blinkcard-simple/.eslintrc.cjs b/apps/examples/blinkcard-simple/.eslintrc.cjs new file mode 100644 index 0000000..ed5a033 --- /dev/null +++ b/apps/examples/blinkcard-simple/.eslintrc.cjs @@ -0,0 +1,52 @@ +const { defineConfig } = require("eslint-define-config"); + +module.exports = defineConfig({ + root: true, + + parserOptions: { + ecmaVersion: "2022", + sourceType: "module", + }, + + overrides: [ + { + files: ["src/**/*.{ts,tsx}"], + plugins: ["@typescript-eslint"], + parser: "@typescript-eslint/parser", + // have to duplicate in override... + rules: { + "@typescript-eslint/no-unused-vars": 0, + // the following two are causing errors in vscode. See: + // https://typescript-eslint.io/linting/troubleshooting/#changes-to-one-file-are-not-reflected-when-linting-other-files-in-my-ide + "@typescript-eslint/no-unsafe-assignment": 0, + "@typescript-eslint/no-unsafe-member-access": 0, + // only use in tsx + "@typescript-eslint/no-non-null-assertion": 0, + "@typescript-eslint/consistent-type-definitions": 0, + "prefer-const": 0, + }, + parserOptions: { + tsconfigRootDir: __dirname, + project: ["./tsconfig.json"], + }, + extends: [ + "eslint:recommended", + "plugin:@typescript-eslint/recommended-type-checked", + "plugin:@typescript-eslint/stylistic-type-checked", + "prettier", + ], + }, + { + files: ["**/*.{js,mjs,cjs}"], + env: { + node: true, + browser: true, + es2021: true, + }, + extends: ["eslint:recommended"], + rules: { + "no-unused-vars": 0, + }, + }, + ], +}); diff --git a/apps/examples/blinkcard-simple/.gitignore b/apps/examples/blinkcard-simple/.gitignore new file mode 100644 index 0000000..673a875 --- /dev/null +++ b/apps/examples/blinkcard-simple/.gitignore @@ -0,0 +1,4 @@ +dist +public +types +.env.* diff --git a/apps/examples/blinkcard-simple/README.md b/apps/examples/blinkcard-simple/README.md new file mode 100644 index 0000000..7008c34 --- /dev/null +++ b/apps/examples/blinkcard-simple/README.md @@ -0,0 +1,26 @@ +# BlinkCard Simple Example + +This example application provides a minimal demonstration of how to integrate and use the BlinkCard SDK in a web application. It showcases the simplest way to get started with card scanning. + +## Functionality + +The application performs the following actions: + +1. **Initializes BlinkCard**: It calls the `createBlinkCard` function, which handles the entire setup process, including loading the SDK, setting up the camera, and creating the UI. + +2. **Sets up a Result Callback**: It registers a callback function that will be invoked when a card is successfully scanned. + +3. **Logs the Result**: When the callback is triggered, it logs the scanning result to the console. + +4. **Cleans up Resources**: After logging the result, it calls the `destroy` method to release all resources used by the SDK. + +## Key Features Demonstrated + +- **High-Level API**: Shows the usage of the `createBlinkCard` high-level function, which simplifies the integration process by abstracting away the underlying complexities. +- **Minimal Configuration**: Demonstrates how to initialize the SDK with just a license key and minimal UI options. +- **Result Handling**: Provides a straightforward example of how to receive scanning results using a callback. +- **Resource Management**: Illustrates the importance of calling the `destroy` method to clean up resources after the scanning is complete. + +## How to Run + +For detailed instructions on how to install dependencies and run this example, please refer to the [main README file](./../README.md). diff --git a/apps/examples/blinkcard-simple/index.html b/apps/examples/blinkcard-simple/index.html new file mode 100644 index 0000000..2be9f3d --- /dev/null +++ b/apps/examples/blinkcard-simple/index.html @@ -0,0 +1,20 @@ + + + + + + + + + BlinkCard Simple Example + + + +
+ + + + diff --git a/apps/examples/blinkcard-simple/lint-staged.config.cjs b/apps/examples/blinkcard-simple/lint-staged.config.cjs new file mode 100644 index 0000000..13dc136 --- /dev/null +++ b/apps/examples/blinkcard-simple/lint-staged.config.cjs @@ -0,0 +1,7 @@ +module.exports = { + "*.{js,jsx,ts,tsx}": [() => "eslint --max-warnings=0"], + "*.{ts,tsx}": [ + () => "tsc-files --skipLibCheck --emitDeclarationOnly false --noEmit", + ], + "*.{js,jsx,ts,tsx,css,md}": ["prettier --write"], +}; diff --git a/apps/examples/blinkcard-simple/package.json b/apps/examples/blinkcard-simple/package.json new file mode 100644 index 0000000..9f69dcc --- /dev/null +++ b/apps/examples/blinkcard-simple/package.json @@ -0,0 +1,40 @@ +{ + "name": "@microblink/blinkcard-simple-example", + "description": "Example quickstart app showcasing usage of the @microblink/blinkcard package", + "private": true, + "scripts": { + "build": "vite build", + "build:js-dev": "vite build --mode development", + "clean": "rimraf dist public .turbo types tsconfig.tsbuildinfo", + "dev": "vite", + "lint": "concurrently pnpm:lint:types pnpm:lint:eslint", + "lint:eslint": "eslint ./src --max-warnings 0", + "lint:types": "tsc --emitDeclarationOnly false --noEmit", + "preview": "vite preview", + "watch": "vite build --watch --mode development" + }, + "type": "module", + "dependencies": { + "@microblink/blinkcard": "workspace:^" + }, + "devDependencies": { + "@microblink/tsconfig": "workspace:*", + "@microblink/repo-utils": "workspace:*", + "@typescript-eslint/eslint-plugin": "^6.9.0", + "concurrently": "^9.1.2", + "eslint": "^8.57.0", + "eslint-config-prettier": "10.0.1", + "eslint-define-config": "^1.24.1", + "eslint-plugin-solid": "0.14.5", + "prettier": "^3.6.2", + "rimraf": "^6.0.1", + "sass": "^1.85.0", + "serve": "^14.2.4", + "tsc-files": "^1.1.4", + "typescript": "5.8.3", + "vite": "^6.2.1", + "vite-plugin-mkcert": "^1.17.6", + "zx": "^8.8.5" + }, + "license": "MIT" +} diff --git a/apps/examples/blinkcard-simple/src/assets/favicon.ico b/apps/examples/blinkcard-simple/src/assets/favicon.ico new file mode 100644 index 0000000000000000000000000000000000000000..3e2de1589cef2680717c93220c6e34af17b7bcd3 GIT binary patch literal 4286 zcmbW32~eA7ddDA`IM~_lINQv2l5|?9?R2xdy{6lCnoQ%^v9Y`BB=*{I;@BZh;uGT| ziI2p=HYPqfg}4M5Brvx@9O6bGA)$*y0t83`B+!8lKp-S6By@dGUv|ftY&ILWeKkLQ z()%61|9eRD0MN+mrI%ps9jcxM_zM8|Ie~P+Ho{u}?;1Jx-9|AFLAdxB1j~+rzv?LX zYfgf%?hLFnUj$FvSMaFw2DtgRV5$2aED7$da|#lFx+qB6v)G+nu^>p9Tj-|GI)oXO z^P=o`W_xm9wD;si*n0B7BFY7mFbAgj4A6C^!erYW7;jDh4fiUHaN}U8;R+1bUV{In z|0&|%>=Y({xF|}iUFb=-&r7mGb5bVGO7qYzy&two3+AoT!gh<4eQrj|{wI@!wQ*Wp zK+_4CFfPahEiVPsZFga``D+*=ITTItplpcyAwP|b{~0p=e{~D)Tv-yONERgww?odP zX8Q`zHc*5XMG2af32V1Tl=u8-cXq@`XBrH* zC&FOME$DB#338I5mwWB|{4_HEf9`F%xYN^qHS1`E_Ki+a!tLrQs)$><|^?V$h>c5ve6Sj2eI+Q9xIIH1WY~#(R zX2zR087Eq4nkfNo*eH2XVeWk>pXm)sOfnQ1Bq-1ev1@{dJarRx40Et!pcHwMyf9CY z-qz8T{8ueqNzmAN51QIBD-X1Z&Bh)Qq=c%}6bB6s1@v z&2`s_GNP+RjCGYlI#ltKzwKWitUCR5pzea--8@;2ppP-_66;$jSJdljzjIOoKs<`O^HP_a%35V$eL_J)>s`D zDNCpa^86aMjQL!FG#d(g7~l9qWhY(=Rh{h(a<5>3mxz8b6Mc$u^pJh!*6}?~gXFx! zD1FLql7ht~0kg3OOj81g_Ud78zyOU-9j$svx4Cp_@_M0je4M$U4rI;^VY;mk=_V1< z^&QC2)M3_8sV!5%j!GXWq%nH)9{XwG(o=^*4?lB-n&L6Yr(;0I!qp)TddGRx^0bui zGWKnDmE(%UGHj>Jz;aJT=D2nLp5~fJz3bHIZZ4>TU(fbq zf<=r8(>%PbtqArPd(;&D> zhDFOT%v*-YIw-+r?1Pq}svpeoH)w)SRwg5&S0aU?V@iuCK{;58_~O)@N+$r_lIU^fkbZCVaW z8T*MDUM3md^XVhs@#*gzSeXbOb}I3Nh3`5u)f7Wz95_bhe(0he5I=|bTT?@nu&|%% zt3E&tw`>ThyTCuu174EBJ>3V3hCY}#^n!g_1~y#}XeF#CW_X3{hp6B*?DtL{eD{&s zeb}kMqt*D7aV%2RaY!{Msi@AJS1CzpM5wnK0!l9URBhlH>w+bX z032EY%xd{y)pUYov<>uGQ3_f`Uc=~H#Nl^<9Wi8AqIbc;(gQc$mOtRu9 zX4vo3uiv*i^x88cy5uF_rb6lPWxpRK>+GRU4l{GHjq) zk|ETQ0RcfC_U!)KJxA(P3Z9A+T05L{hVjV403NlA@wBlGKOe6#TpBCi8m7PfR5)Yb zXJO_cZ@B0rhN~|5Lv`_ap{6@81lm$*t6f>JBFu+nF&h@8#V|+a+qUMGvcTMv4~Fh6 znB=E}n$%eX-5Jo-TL8IZwGcPcL%V2`{>Qo5URBJjoQkpa;OUtzJU88p7q!*Y71e{X zxFPmW*6P79W6v+c*#}0#1s`Fk>>P$Tah_n~?NZ`@jrgDW|M+iD@itvIbg`}&I)j&| z+wlusBYvsnVBBaK-cS~}zV2tfpU}^wt@%UgZ*B->?oAHmz8?$~9minh=NPDu53RN& zPI-BZdyfRnU%5mD8ysR5*vaqBLiW5#e4orc6Q;uk+#1aOttEK>0}PbJ zp#R||^flbTmDVKxa%ZM`NsxPcUYP%nHc|fi8M5cr+y;Io=y|E2C3W3MdlK~WlA%GI z4MhV*&*dviYOHWrh5s-*EUme-v(l-Hhpg#c?j9)BQp2Q5I~ zc_@(a=8`|}UG%X(LNCeSd3XWcbyv~ZbQ9-V6Dey)>Y|C4MxX9Td48((9!xfU4QlRn z80N-kY<#bIszMXaxmMQ+70s)t$HJ{jU4Jr4e9_ zZ#R-5!k@Y|c9kCG^pOlJB!h<)jqV4>&`IXPQF$Ki)faGvWHHu$F*jXv>A0@y{Esyi zu}`Zi&OEPpc>Y4~!}Bw;$}=b_KZ)W8AEShI2xa;Eus8cR{{D=phkcBw7YOi}Z~NCi zuO`3t>}u-POTP4|p_QyRJ)Ycs)bjmtFls zOWyLdH|>p=R~S1_c`|>)UC!BKbLH*}F6O_7j)FrtTlfK5*&m{rtdD_xgwnI3!;=Mv zs0or&n|A=UIeWvJ%-v2+`p#}m+8YYVt<3#6LyqR0y=csO8x0w|gHw!OoAvaaCAzd7?@p#} zdvP*(O9TP_6pvj$bX;caqPZBmB9|Ed{WB+H*Rh54U3K&6yKHmmyFzyQPPEaZywb0#!nYgw!P&@em!$OX-m~y(v~as zeCE*5P^D0dkNr-So2x+beBNzz~NuD3M3b2`6c>@#3-L6geKS)vD AQUCw| literal 0 HcmV?d00001 diff --git a/apps/examples/blinkcard-simple/src/index.ts b/apps/examples/blinkcard-simple/src/index.ts new file mode 100644 index 0000000..85f1bda --- /dev/null +++ b/apps/examples/blinkcard-simple/src/index.ts @@ -0,0 +1,27 @@ +/** + * Copyright (c) 2026 Microblink Ltd. All rights reserved. + */ + +import { createBlinkCard } from "@microblink/blinkcard"; + +/** + * This is the main component of the application. + * It creates the BlinkCard instance. For additional configuration look at the createBlinkCard function. + * + * @see https://github.com/microblink/web-sdks/blob/main/packages/blinkcard/docs/functions/createBlinkCard.md + */ +const blinkcard = await createBlinkCard({ + licenseKey: import.meta.env.VITE_LICENCE_KEY, +}); + +/** + * This callback is called when the result is ready. + * This is useful if you want to perform some actions when the result is ready. + * For additional configuration look at the addOnResultCallback function. + * + * @see https://github.com/microblink/web-sdks/blob/main/packages/blinkcard/docs/type-aliases/BlinkCardComponent.md#addonresultcallback + */ +blinkcard.addOnResultCallback((result) => { + console.log("Result:", result); + void blinkcard.destroy(); +}); diff --git a/apps/examples/camera-manager/src/vite-env.d.ts b/apps/examples/blinkcard-simple/src/vite-env.d.ts similarity index 74% rename from apps/examples/camera-manager/src/vite-env.d.ts rename to apps/examples/blinkcard-simple/src/vite-env.d.ts index 3e44e67..93130bf 100644 --- a/apps/examples/camera-manager/src/vite-env.d.ts +++ b/apps/examples/blinkcard-simple/src/vite-env.d.ts @@ -1,5 +1,5 @@ /** - * Copyright (c) 2025 Microblink Ltd. All rights reserved. + * Copyright (c) 2026 Microblink Ltd. All rights reserved. */ /// diff --git a/apps/examples/blinkcard-simple/tsconfig.json b/apps/examples/blinkcard-simple/tsconfig.json new file mode 100644 index 0000000..6632477 --- /dev/null +++ b/apps/examples/blinkcard-simple/tsconfig.json @@ -0,0 +1,13 @@ +{ + "compilerOptions": { + "noEmit": true, + "module": "Preserve", + "strict": true, + "declarationMap": false, + "target": "es2022", + "rootDir": "src", + "jsx": "preserve", + "types": ["vite/client"] + }, + "include": ["src"] +} diff --git a/apps/examples/blinkcard-simple/vite.config.ts b/apps/examples/blinkcard-simple/vite.config.ts new file mode 100644 index 0000000..f82e2d1 --- /dev/null +++ b/apps/examples/blinkcard-simple/vite.config.ts @@ -0,0 +1,65 @@ +/** + * Copyright (c) 2026 Microblink Ltd. All rights reserved. + */ + +import { moveResources } from "@microblink/repo-utils"; +import dns from "dns"; +import { defineConfig, Plugin, ServerOptions } from "vite"; +import mkcert from "vite-plugin-mkcert"; + +// https://vitejs.dev/guide/migration.html#architecture-changes-and-legacy-options +dns.setDefaultResultOrder("verbatim"); + +let ranOnce = false; + +const serverOptions: ServerOptions = { + port: 3000, + headers: { + "Cross-Origin-Embedder-Policy": "require-corp", + "Cross-Origin-Opener-Policy": "same-origin", + }, + host: true, +}; + +// Custom plugin to add resource-specific headers +const resourceHeadersPlugin: Plugin = { + name: "resource-headers-plugin", + configureServer(server) { + server.middlewares.use((req, res, next) => { + if (req.url?.includes("/resources/")) { + res.setHeader("Cache-Control", "max-age=300"); + res.setHeader("Access-Control-Allow-Origin", "*"); + } + next(); + }); + }, +}; + +export default defineConfig((config) => { + return { + base: "./", + build: { + sourcemap: config.mode === "development", + target: "es2022", + }, + plugins: [ + // symlink wasm resources to public/resources + { + name: "move-resources", + buildStart: async () => { + if (ranOnce) { + return; + } + moveResources("@microblink/blinkcard", "public/resources"); + ranOnce = true; + }, + }, + // Add resource-specific headers + resourceHeadersPlugin, + // Generates certificates for https + mkcert(), + ], + server: serverOptions, + preview: serverOptions, + }; +}); diff --git a/apps/examples/blinkid-advanced-setup/.env b/apps/examples/blinkid-advanced-setup/.env deleted file mode 100644 index b3facb7..0000000 --- a/apps/examples/blinkid-advanced-setup/.env +++ /dev/null @@ -1,7 +0,0 @@ -# For development, create a .env.local or a .env.production using this template -# Never put your licence key in this file as it will be commited - -# https://vitejs.dev/guide/env-and-mode.html#env-files - - -VITE_LICENCE_KEY=PLACE_YOUR_LICENCE_KEY_HERE diff --git a/apps/examples/blinkid-advanced-setup/CHANGELOG.md b/apps/examples/blinkid-advanced-setup/CHANGELOG.md deleted file mode 100644 index e4b021c..0000000 --- a/apps/examples/blinkid-advanced-setup/CHANGELOG.md +++ /dev/null @@ -1,120 +0,0 @@ -# example-blinkid-advanced-setup - -## 1.1.14 - -### Patch Changes - -- Updated dependencies - - @microblink/camera-manager@7.2.6 - - @microblink/blinkid-ux-manager@7.6.0 - - @microblink/blinkid-core@7.6.0 - -## 1.1.13 - -### Patch Changes - -- Updated dependencies - - @microblink/blinkid-core@7.4.3 - - @microblink/blinkid-ux-manager@7.4.3 - - @microblink/camera-manager@7.2.5 - -## 1.1.12 - -### Patch Changes - -- Updated dependencies - - @microblink/camera-manager@7.2.4 - - @microblink/blinkid-ux-manager@7.4.2 - - @microblink/blinkid-core@7.4.2 - -## 1.1.11 - -### Patch Changes - -- Updated dependencies - - @microblink/camera-manager@7.2.3 - - @microblink/blinkid-ux-manager@7.4.1 - - @microblink/blinkid-core@7.4.1 - -## 1.1.10 - -### Patch Changes - -- Updated dependencies -- Updated dependencies - - @microblink/blinkid-core@7.4.0 - - @microblink/blinkid-ux-manager@7.4.0 - - @microblink/camera-manager@7.2.2 - - @microblink/feedback-stabilizer@7.1.2 - -## 1.1.9 - -### Patch Changes - -- Updated dependencies - - @microblink/blinkid-core@7.3.2 - - @microblink/blinkid-ux-manager@7.3.2 - -## 1.1.8 - -### Patch Changes - -- Updated dependencies - - @microblink/camera-manager@7.2.1 - - @microblink/blinkid-ux-manager@7.3.1 - - @microblink/blinkid-core@7.3.1 - -## 1.1.7 - -### Patch Changes - -- Updated dependencies - - @microblink/camera-manager@7.2.0 - - @microblink/blinkid-ux-manager@7.3.0 - - @microblink/blinkid-core@7.3.0 - -## 1.1.6 - -### Patch Changes - -- Updated dependencies [a7ace02] - - @microblink/blinkid-core@7.2.2 - - @microblink/blinkid-ux-manager@7.2.2 - -## 1.1.5 - -### Patch Changes - -- @microblink/blinkid-core@7.2.1 -- @microblink/blinkid-ux-manager@7.2.1 - -## 1.1.4 - -### Patch Changes - -- Updated dependencies [5d08204] -- Updated dependencies [5d08204] - - @microblink/blinkid-ux-manager@7.2.0 - - @microblink/feedback-stabilizer@7.1.1 - - @microblink/blinkid-core@7.2.0 - -## 1.1.3 - -### Patch Changes - -- Updated dependencies - - @microblink/blinkid-core@7.1.0 - - @microblink/blinkid-ux-manager@7.1.0 - - @microblink/camera-manager@7.1.0 - - @microblink/feedback-stabilizer@7.1.0 - -## 1.1.2 - -### Patch Changes - -- Bump package version -- Updated dependencies - - @microblink/blinkid-core@7.0.1 - - @microblink/blinkid-ux-manager@7.0.1 - - @microblink/camera-manager@7.0.1 - - @microblink/feedback-stabilizer@7.0.1 diff --git a/apps/examples/blinkid-advanced-setup/package.json b/apps/examples/blinkid-advanced-setup/package.json index 1baf8ff..94e8bb5 100644 --- a/apps/examples/blinkid-advanced-setup/package.json +++ b/apps/examples/blinkid-advanced-setup/package.json @@ -1,8 +1,7 @@ { - "name": "example-blinkid-advanced-setup", + "name": "@microblink/blinkid-advanced-setup-example", "description": "An example of advanced BlinkID SDK setup", "private": true, - "version": "1.1.14", "scripts": { "build": "vite build", "build:js-dev": "vite build --mode development", @@ -25,7 +24,7 @@ }, "devDependencies": { "@microblink/tsconfig": "workspace:*", - "@microblink/utils": "workspace:*", + "@microblink/repo-utils": "workspace:*", "@typescript-eslint/eslint-plugin": "^6.9.0", "concurrently": "^9.1.2", "eslint": "^8.57.0", @@ -38,7 +37,7 @@ "sass": "^1.85.0", "serve": "^14.2.4", "tsc-files": "^1.1.4", - "typescript": "^5.8.3", + "typescript": "5.8.3", "vite": "^6.2.1", "vite-plugin-mkcert": "^1.17.6", "vite-plugin-qrcode": "^0.2.4", diff --git a/apps/examples/blinkid-advanced-setup/src/App.tsx b/apps/examples/blinkid-advanced-setup/src/App.tsx index b6c3a35..8285a98 100644 --- a/apps/examples/blinkid-advanced-setup/src/App.tsx +++ b/apps/examples/blinkid-advanced-setup/src/App.tsx @@ -1,5 +1,5 @@ /** - * Copyright (c) 2025 Microblink Ltd. All rights reserved. + * Copyright (c) 2026 Microblink Ltd. All rights reserved. */ /* @refresh reload */ @@ -78,7 +78,7 @@ export const App: Component = () => { * We first initialize the direct API. This loads the WASM module and initializes the engine. * For additional configuration look at the BlinkIdInitSettings type. * - * @see https://github.com/BlinkID/blinkid-web/blob/main/packages/blinkid-core/docs/type-aliases/BlinkIdInitSettings.md + * @see https://github.com/microblink/web-sdks/blob/main/packages/blinkid-core/docs/type-aliases/BlinkIdInitSettings.md */ const blinkIdCore = await loadBlinkIdCore({ licenseKey: import.meta.env.VITE_LICENCE_KEY, @@ -90,13 +90,13 @@ export const App: Component = () => { * Initialize the session with the default settings. * For additional configuration look at the BlinkIdSessionSettings type. * - * @see https://github.com/BlinkID/blinkid-web/blob/main/packages/blinkid-core/docs/type-aliases/BlinkIdSessionSettings.md + * @see https://github.com/microblink/web-sdks/blob/main/packages/blinkid-core/docs/type-aliases/BlinkIdSessionSettings.md */ - const session = await blinkIdCore.createBlinkIdScanningSession({ + const session = await blinkIdCore.createScanningSession({ /* * For default settings look at defaultSessionSettings * - * @see https://github.com/BlinkID/blinkid-web/blob/main/packages/blinkid-core/src/defaultSessionSettings.ts + * @see https://github.com/microblink/web-sdks/blob/main/packages/blinkid-core/src/defaultSessionSettings.ts */ scanningSettings: { // scanPassportDataPageOnly: false, @@ -121,7 +121,7 @@ export const App: Component = () => { * This creates the UI and attaches it to the DOM. * For additional configuration look at the CameraManagerUiOptions type. * - * @see https://github.com/BlinkID/blinkid-web/blob/main/packages/camera-manager/docs/type-aliases/CameraManagerUiOptions.md + * @see https://github.com/microblink/web-sdks/blob/main/packages/camera-manager/docs/type-aliases/CameraManagerUiOptions.md */ const cameraUi = await createCameraManagerUi(cameraManager, targetNode, { showMirrorCameraButton: true, diff --git a/apps/examples/blinkid-advanced-setup/src/ScoreDisplay.tsx b/apps/examples/blinkid-advanced-setup/src/ScoreDisplay.tsx index b4d9685..c2f07ca 100644 --- a/apps/examples/blinkid-advanced-setup/src/ScoreDisplay.tsx +++ b/apps/examples/blinkid-advanced-setup/src/ScoreDisplay.tsx @@ -1,5 +1,5 @@ /** - * Copyright (c) 2025 Microblink Ltd. All rights reserved. + * Copyright (c) 2026 Microblink Ltd. All rights reserved. */ import { diff --git a/apps/examples/blinkid-advanced-setup/src/index.tsx b/apps/examples/blinkid-advanced-setup/src/index.tsx index 1f3783f..e9119f1 100644 --- a/apps/examples/blinkid-advanced-setup/src/index.tsx +++ b/apps/examples/blinkid-advanced-setup/src/index.tsx @@ -1,5 +1,5 @@ /** - * Copyright (c) 2025 Microblink Ltd. All rights reserved. + * Copyright (c) 2026 Microblink Ltd. All rights reserved. */ import { render } from "solid-js/web"; diff --git a/apps/examples/blinkid-advanced-setup/vite.config.ts b/apps/examples/blinkid-advanced-setup/vite.config.ts index 2eabd08..004b779 100644 --- a/apps/examples/blinkid-advanced-setup/vite.config.ts +++ b/apps/examples/blinkid-advanced-setup/vite.config.ts @@ -1,8 +1,8 @@ /** - * Copyright (c) 2025 Microblink Ltd. All rights reserved. + * Copyright (c) 2026 Microblink Ltd. All rights reserved. */ -import { moveResources } from "@microblink/utils"; +import { moveResources } from "@microblink/repo-utils"; import dns from "dns"; import { ServerOptions, defineConfig } from "vite"; import mkcert from "vite-plugin-mkcert"; @@ -24,6 +24,7 @@ const serverOptions: ServerOptions = { export default defineConfig((config) => { return { + base: "./", build: { sourcemap: config.mode === "development", target: "es2022", diff --git a/apps/examples/blinkid-core-api/.env b/apps/examples/blinkid-core-api/.env deleted file mode 100644 index b3facb7..0000000 --- a/apps/examples/blinkid-core-api/.env +++ /dev/null @@ -1,7 +0,0 @@ -# For development, create a .env.local or a .env.production using this template -# Never put your licence key in this file as it will be commited - -# https://vitejs.dev/guide/env-and-mode.html#env-files - - -VITE_LICENCE_KEY=PLACE_YOUR_LICENCE_KEY_HERE diff --git a/apps/examples/blinkid-core-api/CHANGELOG.md b/apps/examples/blinkid-core-api/CHANGELOG.md deleted file mode 100644 index 2b456be..0000000 --- a/apps/examples/blinkid-core-api/CHANGELOG.md +++ /dev/null @@ -1,90 +0,0 @@ -# example-blinkid-core-api - -## 1.1.14 - -### Patch Changes - -- Update dependencies -- Updated dependencies -- Updated dependencies [8e05b35] - - @microblink/blinkid-core@7.6.0 - -## 1.1.13 - -### Patch Changes - -- Updated dependencies - - @microblink/blinkid-core@7.4.3 - -## 1.1.12 - -### Patch Changes - -- @microblink/blinkid-core@7.4.2 - -## 1.1.11 - -### Patch Changes - -- @microblink/blinkid-core@7.4.1 - -## 1.1.10 - -### Patch Changes - -- Updated dependencies - - @microblink/blinkid-core@7.4.0 - -## 1.1.9 - -### Patch Changes - -- Updated dependencies - - @microblink/blinkid-core@7.3.2 - -## 1.1.8 - -### Patch Changes - -- @microblink/blinkid-core@7.3.1 - -## 1.1.7 - -### Patch Changes - -- Updated dependencies - - @microblink/blinkid-core@7.3.0 - -## 1.1.6 - -### Patch Changes - -- Updated dependencies [a7ace02] - - @microblink/blinkid-core@7.2.2 - -## 1.1.5 - -### Patch Changes - -- @microblink/blinkid-core@7.2.1 - -## 1.1.4 - -### Patch Changes - -- @microblink/blinkid-core@7.2.0 - -## 1.1.3 - -### Patch Changes - -- Updated dependencies - - @microblink/blinkid-core@7.1.0 - -## 1.1.2 - -### Patch Changes - -- Bump package version -- Updated dependencies - - @microblink/blinkid-core@7.0.1 diff --git a/apps/examples/blinkid-core-api/package.json b/apps/examples/blinkid-core-api/package.json index 9a0d2a5..f23b08c 100644 --- a/apps/examples/blinkid-core-api/package.json +++ b/apps/examples/blinkid-core-api/package.json @@ -1,8 +1,7 @@ { - "name": "example-blinkid-core-api", + "name": "@microblink/blinkid-core-api-example", "description": "Example of using BlinkID Core API", "private": true, - "version": "1.1.14", "scripts": { "build": "vite build", "build:js-dev": "vite build --mode development", @@ -22,7 +21,7 @@ }, "devDependencies": { "@microblink/tsconfig": "workspace:*", - "@microblink/utils": "workspace:*", + "@microblink/repo-utils": "workspace:*", "@typescript-eslint/eslint-plugin": "^6.9.0", "concurrently": "^9.1.2", "eslint": "^8.57.0", @@ -31,12 +30,11 @@ "eslint-plugin-solid": "0.14.5", "mkcert-cli": "^1.5.0", "prettier": "^3.6.2", - "resolve-package-path": "^4.0.3", "rimraf": "^6.0.1", "sass": "^1.85.0", "serve": "^14.2.4", "tsc-files": "^1.1.4", - "typescript": "^5.8.3", + "typescript": "5.8.3", "vite": "^6.2.1", "vite-plugin-mkcert": "^1.17.6", "zx": "^8.8.5" diff --git a/apps/examples/blinkid-core-api/src/index.ts b/apps/examples/blinkid-core-api/src/index.ts index 25267ed..b8931a4 100644 --- a/apps/examples/blinkid-core-api/src/index.ts +++ b/apps/examples/blinkid-core-api/src/index.ts @@ -1,5 +1,5 @@ /** - * Copyright (c) 2025 Microblink Ltd. All rights reserved. + * Copyright (c) 2026 Microblink Ltd. All rights reserved. */ import { @@ -29,7 +29,7 @@ const blinkIdCore = await loadBlinkIdCore( progressCallback, ); -const session = await blinkIdCore.createBlinkIdScanningSession(); +const session = await blinkIdCore.createScanningSession(); const frameResult = await session.process(new ImageData(1920, 1080)); console.log("frameResult", frameResult); diff --git a/apps/examples/blinkid-core-api/src/vite-env.d.ts b/apps/examples/blinkid-core-api/src/vite-env.d.ts index 3e44e67..93130bf 100644 --- a/apps/examples/blinkid-core-api/src/vite-env.d.ts +++ b/apps/examples/blinkid-core-api/src/vite-env.d.ts @@ -1,5 +1,5 @@ /** - * Copyright (c) 2025 Microblink Ltd. All rights reserved. + * Copyright (c) 2026 Microblink Ltd. All rights reserved. */ /// diff --git a/apps/examples/blinkid-core-api/vite.config.ts b/apps/examples/blinkid-core-api/vite.config.ts index f86e575..a32fb16 100644 --- a/apps/examples/blinkid-core-api/vite.config.ts +++ b/apps/examples/blinkid-core-api/vite.config.ts @@ -1,8 +1,8 @@ /** - * Copyright (c) 2025 Microblink Ltd. All rights reserved. + * Copyright (c) 2026 Microblink Ltd. All rights reserved. */ -import { moveResources } from "@microblink/utils"; +import { moveResources } from "@microblink/repo-utils"; import dns from "dns"; import { defineConfig, Plugin, ServerOptions } from "vite"; import mkcert from "vite-plugin-mkcert"; @@ -37,6 +37,7 @@ const resourceHeadersPlugin: Plugin = { export default defineConfig((config) => { return { + base: "./", build: { sourcemap: config.mode === "development", target: "es2022", diff --git a/apps/examples/blinkid-photo-upload/.env b/apps/examples/blinkid-photo-upload/.env deleted file mode 100644 index b3facb7..0000000 --- a/apps/examples/blinkid-photo-upload/.env +++ /dev/null @@ -1,7 +0,0 @@ -# For development, create a .env.local or a .env.production using this template -# Never put your licence key in this file as it will be commited - -# https://vitejs.dev/guide/env-and-mode.html#env-files - - -VITE_LICENCE_KEY=PLACE_YOUR_LICENCE_KEY_HERE diff --git a/apps/examples/blinkid-photo-upload/CHANGELOG.md b/apps/examples/blinkid-photo-upload/CHANGELOG.md deleted file mode 100644 index 38ff301..0000000 --- a/apps/examples/blinkid-photo-upload/CHANGELOG.md +++ /dev/null @@ -1,49 +0,0 @@ -# example-blinkid-photo-upload - -## 1.0.6 - -### Patch Changes - -- Update dependencies -- Updated dependencies -- Updated dependencies [8e05b35] - - @microblink/blinkid-core@7.6.0 - -## 1.0.5 - -### Patch Changes - -- Updated dependencies - - @microblink/blinkid-core@7.4.3 - -## 1.0.4 - -### Patch Changes - -- @microblink/blinkid-core@7.4.2 - -## 1.0.3 - -### Patch Changes - -- @microblink/blinkid-core@7.4.1 - -## 1.0.2 - -### Patch Changes - -- Updated dependencies - - @microblink/blinkid-core@7.4.0 - -## 1.0.1 - -### Patch Changes - -- Updated dependencies - - @microblink/blinkid-core@7.3.2 - -## 1.0.0 - -### Major Changes - -- Initial release diff --git a/apps/examples/blinkid-photo-upload/package.json b/apps/examples/blinkid-photo-upload/package.json index da3a460..a4c2279 100644 --- a/apps/examples/blinkid-photo-upload/package.json +++ b/apps/examples/blinkid-photo-upload/package.json @@ -1,8 +1,7 @@ { - "name": "example-blinkid-photo-upload", + "name": "@microblink/blinkid-photo-upload-example", "description": "An example of BlinkID SDK with photo upload", "private": true, - "version": "1.0.6", "scripts": { "build": "vite build", "build:js-dev": "vite build --mode development", @@ -21,7 +20,7 @@ }, "devDependencies": { "@microblink/tsconfig": "workspace:*", - "@microblink/utils": "workspace:*", + "@microblink/repo-utils": "workspace:*", "@typescript-eslint/eslint-plugin": "^6.9.0", "concurrently": "^9.1.2", "eslint": "^8.57.0", @@ -34,7 +33,7 @@ "sass": "^1.85.0", "serve": "^14.2.4", "tsc-files": "^1.1.4", - "typescript": "^5.8.3", + "typescript": "5.8.3", "vite": "^6.2.1", "vite-plugin-mkcert": "^1.17.6", "vite-plugin-qrcode": "^0.2.4", diff --git a/apps/examples/blinkid-photo-upload/src/App.tsx b/apps/examples/blinkid-photo-upload/src/App.tsx index 9251577..c3eb9bf 100644 --- a/apps/examples/blinkid-photo-upload/src/App.tsx +++ b/apps/examples/blinkid-photo-upload/src/App.tsx @@ -1,5 +1,5 @@ /** - * Copyright (c) 2025 Microblink Ltd. All rights reserved. + * Copyright (c) 2026 Microblink Ltd. All rights reserved. */ import { @@ -12,7 +12,7 @@ import { Component, createSignal, Show } from "solid-js"; type BlinkIdSession = Awaited< ReturnType< - Awaited>["createBlinkIdScanningSession"] + Awaited>["createScanningSession"] > >; @@ -53,7 +53,7 @@ const initBlinkIdScanningSession = async (): Promise => { licenseKey: import.meta.env.VITE_LICENCE_KEY, }); - return blinkIdCore.createBlinkIdScanningSession({ + return blinkIdCore.createScanningSession({ inputImageSource: "photo", }); }; diff --git a/apps/examples/blinkid-photo-upload/src/index.tsx b/apps/examples/blinkid-photo-upload/src/index.tsx index 95cc389..eb70072 100644 --- a/apps/examples/blinkid-photo-upload/src/index.tsx +++ b/apps/examples/blinkid-photo-upload/src/index.tsx @@ -1,5 +1,5 @@ /** - * Copyright (c) 2025 Microblink Ltd. All rights reserved. + * Copyright (c) 2026 Microblink Ltd. All rights reserved. */ import { render } from "solid-js/web"; diff --git a/apps/examples/blinkid-photo-upload/vite.config.ts b/apps/examples/blinkid-photo-upload/vite.config.ts index 2eabd08..004b779 100644 --- a/apps/examples/blinkid-photo-upload/vite.config.ts +++ b/apps/examples/blinkid-photo-upload/vite.config.ts @@ -1,8 +1,8 @@ /** - * Copyright (c) 2025 Microblink Ltd. All rights reserved. + * Copyright (c) 2026 Microblink Ltd. All rights reserved. */ -import { moveResources } from "@microblink/utils"; +import { moveResources } from "@microblink/repo-utils"; import dns from "dns"; import { ServerOptions, defineConfig } from "vite"; import mkcert from "vite-plugin-mkcert"; @@ -24,6 +24,7 @@ const serverOptions: ServerOptions = { export default defineConfig((config) => { return { + base: "./", build: { sourcemap: config.mode === "development", target: "es2022", diff --git a/apps/examples/blinkid-preload/.env b/apps/examples/blinkid-preload/.env deleted file mode 100644 index b3facb7..0000000 --- a/apps/examples/blinkid-preload/.env +++ /dev/null @@ -1,7 +0,0 @@ -# For development, create a .env.local or a .env.production using this template -# Never put your licence key in this file as it will be commited - -# https://vitejs.dev/guide/env-and-mode.html#env-files - - -VITE_LICENCE_KEY=PLACE_YOUR_LICENCE_KEY_HERE diff --git a/apps/examples/blinkid-preload/CHANGELOG.md b/apps/examples/blinkid-preload/CHANGELOG.md deleted file mode 100644 index 2b806f5..0000000 --- a/apps/examples/blinkid-preload/CHANGELOG.md +++ /dev/null @@ -1,115 +0,0 @@ -# example-blinkid-preload - -## 1.1.14 - -### Patch Changes - -- Updated dependencies - - @microblink/camera-manager@7.2.6 - - @microblink/blinkid-ux-manager@7.6.0 - - @microblink/blinkid-core@7.6.0 - -## 1.1.13 - -### Patch Changes - -- Updated dependencies - - @microblink/blinkid-core@7.4.3 - - @microblink/blinkid-ux-manager@7.4.3 - - @microblink/camera-manager@7.2.5 - -## 1.1.12 - -### Patch Changes - -- Updated dependencies - - @microblink/camera-manager@7.2.4 - - @microblink/blinkid-ux-manager@7.4.2 - - @microblink/blinkid-core@7.4.2 - -## 1.1.11 - -### Patch Changes - -- Fix getting result and retry -- Updated dependencies - - @microblink/camera-manager@7.2.3 - - @microblink/blinkid-ux-manager@7.4.1 - - @microblink/blinkid-core@7.4.1 - -## 1.1.10 - -### Patch Changes - -- Updated dependencies - - @microblink/blinkid-core@7.4.0 - - @microblink/blinkid-ux-manager@7.4.0 - - @microblink/camera-manager@7.2.2 - -## 1.1.9 - -### Patch Changes - -- Updated dependencies - - @microblink/blinkid-core@7.3.2 - - @microblink/blinkid-ux-manager@7.3.2 - -## 1.1.8 - -### Patch Changes - -- Updated dependencies - - @microblink/camera-manager@7.2.1 - - @microblink/blinkid-ux-manager@7.3.1 - - @microblink/blinkid-core@7.3.1 - -## 1.1.7 - -### Patch Changes - -- Updated dependencies - - @microblink/camera-manager@7.2.0 - - @microblink/blinkid-ux-manager@7.3.0 - - @microblink/blinkid-core@7.3.0 - -## 1.1.6 - -### Patch Changes - -- Updated dependencies [a7ace02] - - @microblink/blinkid-core@7.2.2 - - @microblink/blinkid-ux-manager@7.2.2 - -## 1.1.5 - -### Patch Changes - -- @microblink/blinkid-core@7.2.1 -- @microblink/blinkid-ux-manager@7.2.1 - -## 1.1.4 - -### Patch Changes - -- Updated dependencies [5d08204] - - @microblink/blinkid-ux-manager@7.2.0 - - @microblink/blinkid-core@7.2.0 - -## 1.1.3 - -### Patch Changes - -- Updated dependencies - - @microblink/blinkid-core@7.1.0 - - @microblink/blinkid-ux-manager@7.1.0 - - @microblink/camera-manager@7.1.0 - -## 1.1.2 - -### Patch Changes - -- Bump package version -- Updated dependencies - - @microblink/blinkid-core@7.0.1 - - @microblink/blinkid-ux-manager@7.0.1 - - @microblink/camera-manager@7.0.1 diff --git a/apps/examples/blinkid-preload/package.json b/apps/examples/blinkid-preload/package.json index 11505da..802e4b6 100644 --- a/apps/examples/blinkid-preload/package.json +++ b/apps/examples/blinkid-preload/package.json @@ -1,8 +1,7 @@ { - "name": "example-blinkid-preload", + "name": "@microblink/blinkid-preload-example", "description": "Example BlinkID preload application", "private": true, - "version": "1.1.14", "scripts": { "build": "vite build", "build:js-dev": "vite build --mode development", @@ -25,7 +24,7 @@ }, "devDependencies": { "@microblink/tsconfig": "workspace:*", - "@microblink/utils": "workspace:*", + "@microblink/repo-utils": "workspace:*", "@typescript-eslint/eslint-plugin": "^6.9.0", "concurrently": "^9.1.2", "eslint": "^8.57.0", @@ -38,7 +37,7 @@ "sass": "^1.85.0", "serve": "^14.2.4", "tsc-files": "^1.1.4", - "typescript": "^5.8.3", + "typescript": "5.8.3", "vite": "^6.2.1", "vite-plugin-mkcert": "^1.17.6", "vite-plugin-solid": "^2.11.6", diff --git a/apps/examples/blinkid-preload/src/App.tsx b/apps/examples/blinkid-preload/src/App.tsx index 48ccb49..d4a0692 100644 --- a/apps/examples/blinkid-preload/src/App.tsx +++ b/apps/examples/blinkid-preload/src/App.tsx @@ -1,5 +1,5 @@ /** - * Copyright (c) 2025 Microblink Ltd. All rights reserved. + * Copyright (c) 2026 Microblink Ltd. All rights reserved. */ /* @refresh reload */ @@ -71,7 +71,7 @@ export const App: Component = () => { licenseKey: import.meta.env.VITE_LICENCE_KEY, }); - const session = await blinkId.createBlinkIdScanningSession(); + const session = await blinkId.createScanningSession(); // Need to use the arrow function: // https://github.com/GoogleChromeLabs/comlink/issues/571#issuecomment-2048772957 setBlinkIdSession(() => session); diff --git a/apps/examples/blinkid-preload/src/index.tsx b/apps/examples/blinkid-preload/src/index.tsx index 1f3783f..e9119f1 100644 --- a/apps/examples/blinkid-preload/src/index.tsx +++ b/apps/examples/blinkid-preload/src/index.tsx @@ -1,5 +1,5 @@ /** - * Copyright (c) 2025 Microblink Ltd. All rights reserved. + * Copyright (c) 2026 Microblink Ltd. All rights reserved. */ import { render } from "solid-js/web"; diff --git a/apps/examples/blinkid-preload/src/vite-env.d.ts b/apps/examples/blinkid-preload/src/vite-env.d.ts index 3e44e67..93130bf 100644 --- a/apps/examples/blinkid-preload/src/vite-env.d.ts +++ b/apps/examples/blinkid-preload/src/vite-env.d.ts @@ -1,5 +1,5 @@ /** - * Copyright (c) 2025 Microblink Ltd. All rights reserved. + * Copyright (c) 2026 Microblink Ltd. All rights reserved. */ /// diff --git a/apps/examples/blinkid-preload/vite.config.ts b/apps/examples/blinkid-preload/vite.config.ts index a374583..cc0f0df 100644 --- a/apps/examples/blinkid-preload/vite.config.ts +++ b/apps/examples/blinkid-preload/vite.config.ts @@ -1,8 +1,8 @@ /** - * Copyright (c) 2025 Microblink Ltd. All rights reserved. + * Copyright (c) 2026 Microblink Ltd. All rights reserved. */ -import { moveResources } from "@microblink/utils"; +import { moveResources } from "@microblink/repo-utils"; import dns from "dns"; import { ServerOptions, defineConfig } from "vite"; import mkcert from "vite-plugin-mkcert"; @@ -23,6 +23,7 @@ const serverOptions: ServerOptions = { export default defineConfig((config) => { return { + base: "./", build: { sourcemap: config.mode === "development", target: "es2022", diff --git a/apps/examples/blinkid-simple/.env b/apps/examples/blinkid-simple/.env deleted file mode 100644 index b3facb7..0000000 --- a/apps/examples/blinkid-simple/.env +++ /dev/null @@ -1,7 +0,0 @@ -# For development, create a .env.local or a .env.production using this template -# Never put your licence key in this file as it will be commited - -# https://vitejs.dev/guide/env-and-mode.html#env-files - - -VITE_LICENCE_KEY=PLACE_YOUR_LICENCE_KEY_HERE diff --git a/apps/examples/blinkid-simple/CHANGELOG.md b/apps/examples/blinkid-simple/CHANGELOG.md deleted file mode 100644 index a84cc50..0000000 --- a/apps/examples/blinkid-simple/CHANGELOG.md +++ /dev/null @@ -1,87 +0,0 @@ -# example-blinkid-simple - -## 1.1.14 - -### Patch Changes - -- Update dependencies -- Updated dependencies - - @microblink/blinkid@7.6.0 - -## 1.1.13 - -### Patch Changes - -- Updated dependencies - - @microblink/blinkid@7.4.3 - -## 1.1.12 - -### Patch Changes - -- @microblink/blinkid@7.4.2 - -## 1.1.11 - -### Patch Changes - -- @microblink/blinkid@7.4.1 - -## 1.1.10 - -### Patch Changes - -- Updated dependencies - - @microblink/blinkid@7.4.0 - -## 1.1.9 - -### Patch Changes - -- @microblink/blinkid@7.3.2 - -## 1.1.8 - -### Patch Changes - -- @microblink/blinkid@7.3.1 - -## 1.1.7 - -### Patch Changes - -- Updated dependencies - - @microblink/blinkid@7.3.0 - -## 1.1.6 - -### Patch Changes - -- @microblink/blinkid@7.2.2 - -## 1.1.5 - -### Patch Changes - -- @microblink/blinkid@7.2.1 - -## 1.1.4 - -### Patch Changes - -- @microblink/blinkid@7.2.0 - -## 1.1.3 - -### Patch Changes - -- Updated dependencies - - @microblink/blinkid@7.1.0 - -## 1.1.2 - -### Patch Changes - -- Bump package version -- Updated dependencies - - @microblink/blinkid@7.0.1 diff --git a/apps/examples/blinkid-simple/package.json b/apps/examples/blinkid-simple/package.json index edaf9a1..e1ca94f 100644 --- a/apps/examples/blinkid-simple/package.json +++ b/apps/examples/blinkid-simple/package.json @@ -1,8 +1,7 @@ { - "name": "example-blinkid-simple", + "name": "@microblink/blinkid-simple-example", "description": "Example quickstart app showcasing usage of the @microblink/blinkid package", "private": true, - "version": "1.1.14", "scripts": { "build": "vite build", "build:js-dev": "vite build --mode development", @@ -22,7 +21,7 @@ }, "devDependencies": { "@microblink/tsconfig": "workspace:*", - "@microblink/utils": "workspace:*", + "@microblink/repo-utils": "workspace:*", "@typescript-eslint/eslint-plugin": "^6.9.0", "concurrently": "^9.1.2", "eslint": "^8.57.0", @@ -31,12 +30,11 @@ "eslint-plugin-solid": "0.14.5", "mkcert-cli": "^1.5.0", "prettier": "^3.6.2", - "resolve-package-path": "^4.0.3", "rimraf": "^6.0.1", "sass": "^1.85.0", "serve": "^14.2.4", "tsc-files": "^1.1.4", - "typescript": "^5.8.3", + "typescript": "5.8.3", "vite": "^6.2.1", "vite-plugin-mkcert": "^1.17.6", "zx": "^8.8.5" diff --git a/apps/examples/blinkid-simple/src/index.ts b/apps/examples/blinkid-simple/src/index.ts index 4e20e44..e14f42a 100644 --- a/apps/examples/blinkid-simple/src/index.ts +++ b/apps/examples/blinkid-simple/src/index.ts @@ -1,5 +1,5 @@ /** - * Copyright (c) 2025 Microblink Ltd. All rights reserved. + * Copyright (c) 2026 Microblink Ltd. All rights reserved. */ import { createBlinkId } from "@microblink/blinkid"; @@ -8,7 +8,7 @@ import { createBlinkId } from "@microblink/blinkid"; * This is the main component of the application. * It creates the BlinkID instance. For additional configuration look at the createBlinkId function. * - * @see https://github.com/BlinkID/blinkid-web/blob/main/packages/blinkid/docs/functions/createBlinkId.md + * @see https://github.com/microblink/web-sdks/blob/main/packages/blinkid/docs/functions/createBlinkId.md */ const blinkid = await createBlinkId({ licenseKey: import.meta.env.VITE_LICENCE_KEY, @@ -19,7 +19,7 @@ const blinkid = await createBlinkId({ * This is useful if you want to perform some actions when the result is ready. * For additional configuration look at the addOnResultCallback function. * - * @see https://github.com/BlinkID/blinkid-web/blob/main/packages/blinkid/docs/type-aliases/BlinkIdComponent.md#addonresultcallback + * @see https://github.com/microblink/web-sdks/blob/main/packages/blinkid/docs/type-aliases/BlinkIdComponent.md#addonresultcallback */ blinkid.addOnResultCallback((result) => { console.log("Result:", result); diff --git a/apps/examples/blinkid-simple/src/vite-env.d.ts b/apps/examples/blinkid-simple/src/vite-env.d.ts index 3e44e67..93130bf 100644 --- a/apps/examples/blinkid-simple/src/vite-env.d.ts +++ b/apps/examples/blinkid-simple/src/vite-env.d.ts @@ -1,5 +1,5 @@ /** - * Copyright (c) 2025 Microblink Ltd. All rights reserved. + * Copyright (c) 2026 Microblink Ltd. All rights reserved. */ /// diff --git a/apps/examples/blinkid-simple/vite.config.ts b/apps/examples/blinkid-simple/vite.config.ts index 772dff5..7c83d87 100644 --- a/apps/examples/blinkid-simple/vite.config.ts +++ b/apps/examples/blinkid-simple/vite.config.ts @@ -1,8 +1,8 @@ /** - * Copyright (c) 2025 Microblink Ltd. All rights reserved. + * Copyright (c) 2026 Microblink Ltd. All rights reserved. */ -import { moveResources } from "@microblink/utils"; +import { moveResources } from "@microblink/repo-utils"; import dns from "dns"; import { defineConfig, Plugin, ServerOptions } from "vite"; import mkcert from "vite-plugin-mkcert"; @@ -37,6 +37,7 @@ const resourceHeadersPlugin: Plugin = { export default defineConfig((config) => { return { + base: "./", build: { sourcemap: config.mode === "development", target: "es2022", diff --git a/apps/examples/blinkid-ui-customization/package.json b/apps/examples/blinkid-ui-customization/package.json index fec6da8..356c1dd 100644 --- a/apps/examples/blinkid-ui-customization/package.json +++ b/apps/examples/blinkid-ui-customization/package.json @@ -1,8 +1,7 @@ { - "name": "example-blinkid-ui-customization", + "name": "@microblink/blinkid-ui-customization-example", "description": "An example demonstrating custom UI implementations for BlinkID SDK", "private": true, - "version": "1.0.3", "scripts": { "build": "vite build", "build:js-dev": "vite build --mode development", @@ -24,7 +23,7 @@ }, "devDependencies": { "@microblink/tsconfig": "workspace:*", - "@microblink/utils": "workspace:*", + "@microblink/repo-utils": "workspace:*", "@typescript-eslint/eslint-plugin": "^6.9.0", "concurrently": "^9.1.2", "eslint": "^8.57.0", @@ -37,7 +36,7 @@ "sass": "^1.85.0", "serve": "^14.2.4", "tsc-files": "^1.1.4", - "typescript": "^5.8.3", + "typescript": "5.8.3", "vite": "^6.2.1", "vite-plugin-mkcert": "^1.17.6", "vite-plugin-qrcode": "^0.2.4", @@ -45,4 +44,4 @@ "zx": "^8.8.5" }, "license": "MIT" -} \ No newline at end of file +} diff --git a/apps/examples/blinkid-ui-customization/src/App.tsx b/apps/examples/blinkid-ui-customization/src/App.tsx index 76947db..01771c0 100644 --- a/apps/examples/blinkid-ui-customization/src/App.tsx +++ b/apps/examples/blinkid-ui-customization/src/App.tsx @@ -1,5 +1,5 @@ /** - * Copyright (c) 2025 Microblink Ltd. All rights reserved. + * Copyright (c) 2026 Microblink Ltd. All rights reserved. */ /* @refresh reload */ @@ -195,7 +195,7 @@ export const App: Component = () => { } } - scanningSession = await blinkIdCore.createBlinkIdScanningSession(); + scanningSession = await blinkIdCore.createScanningSession(); } catch (error) { console.error("Failed to initialize session:", error); diff --git a/apps/examples/blinkid-ui-customization/src/components/CameraErrorModal.tsx b/apps/examples/blinkid-ui-customization/src/components/CameraErrorModal.tsx index f5943c6..c70ae9d 100644 --- a/apps/examples/blinkid-ui-customization/src/components/CameraErrorModal.tsx +++ b/apps/examples/blinkid-ui-customization/src/components/CameraErrorModal.tsx @@ -1,5 +1,5 @@ /** - * Copyright (c) 2025 Microblink Ltd. All rights reserved. + * Copyright (c) 2026 Microblink Ltd. All rights reserved. */ import { Component } from "solid-js"; diff --git a/apps/examples/blinkid-ui-customization/src/components/CoreErrorModal.tsx b/apps/examples/blinkid-ui-customization/src/components/CoreErrorModal.tsx index ad6edfd..5ec7522 100644 --- a/apps/examples/blinkid-ui-customization/src/components/CoreErrorModal.tsx +++ b/apps/examples/blinkid-ui-customization/src/components/CoreErrorModal.tsx @@ -1,5 +1,5 @@ /** - * Copyright (c) 2025 Microblink Ltd. All rights reserved. + * Copyright (c) 2026 Microblink Ltd. All rights reserved. */ import { Component } from "solid-js"; diff --git a/apps/examples/blinkid-ui-customization/src/components/FilteredDocumentModal.tsx b/apps/examples/blinkid-ui-customization/src/components/FilteredDocumentModal.tsx index 5e52e78..35aca89 100644 --- a/apps/examples/blinkid-ui-customization/src/components/FilteredDocumentModal.tsx +++ b/apps/examples/blinkid-ui-customization/src/components/FilteredDocumentModal.tsx @@ -1,5 +1,5 @@ /** - * Copyright (c) 2025 Microblink Ltd. All rights reserved. + * Copyright (c) 2026 Microblink Ltd. All rights reserved. */ import { Component } from "solid-js"; diff --git a/apps/examples/blinkid-ui-customization/src/components/Modal.tsx b/apps/examples/blinkid-ui-customization/src/components/Modal.tsx index c595e48..4cc438d 100644 --- a/apps/examples/blinkid-ui-customization/src/components/Modal.tsx +++ b/apps/examples/blinkid-ui-customization/src/components/Modal.tsx @@ -1,5 +1,5 @@ /** - * Copyright (c) 2025 Microblink Ltd. All rights reserved. + * Copyright (c) 2026 Microblink Ltd. All rights reserved. */ import { Component, JSX, Show } from "solid-js"; diff --git a/apps/examples/blinkid-ui-customization/src/components/TimeoutErrorModal.tsx b/apps/examples/blinkid-ui-customization/src/components/TimeoutErrorModal.tsx index 8ee7fbd..1955bb6 100644 --- a/apps/examples/blinkid-ui-customization/src/components/TimeoutErrorModal.tsx +++ b/apps/examples/blinkid-ui-customization/src/components/TimeoutErrorModal.tsx @@ -1,5 +1,5 @@ /** - * Copyright (c) 2025 Microblink Ltd. All rights reserved. + * Copyright (c) 2026 Microblink Ltd. All rights reserved. */ import { Component } from "solid-js"; diff --git a/apps/examples/blinkid-ui-customization/src/components/UnsupportedDocumentModal.tsx b/apps/examples/blinkid-ui-customization/src/components/UnsupportedDocumentModal.tsx index 9f95317..105fa8e 100644 --- a/apps/examples/blinkid-ui-customization/src/components/UnsupportedDocumentModal.tsx +++ b/apps/examples/blinkid-ui-customization/src/components/UnsupportedDocumentModal.tsx @@ -1,5 +1,5 @@ /** - * Copyright (c) 2025 Microblink Ltd. All rights reserved. + * Copyright (c) 2026 Microblink Ltd. All rights reserved. */ import { Component } from "solid-js"; diff --git a/apps/examples/blinkid-ui-customization/src/components/index.ts b/apps/examples/blinkid-ui-customization/src/components/index.ts index 652b484..7c3474c 100644 --- a/apps/examples/blinkid-ui-customization/src/components/index.ts +++ b/apps/examples/blinkid-ui-customization/src/components/index.ts @@ -1,5 +1,5 @@ /** - * Copyright (c) 2025 Microblink Ltd. All rights reserved. + * Copyright (c) 2026 Microblink Ltd. All rights reserved. */ // Base modal component diff --git a/apps/examples/blinkid-ui-customization/src/index.tsx b/apps/examples/blinkid-ui-customization/src/index.tsx index af89cd4..ab2ecf2 100644 --- a/apps/examples/blinkid-ui-customization/src/index.tsx +++ b/apps/examples/blinkid-ui-customization/src/index.tsx @@ -1,5 +1,5 @@ /** - * Copyright (c) 2025 Microblink Ltd. All rights reserved. + * Copyright (c) 2026 Microblink Ltd. All rights reserved. */ /* @refresh reload */ diff --git a/apps/examples/blinkid-ui-customization/src/styles/modals.module.css.d.ts b/apps/examples/blinkid-ui-customization/src/styles/modals.module.css.d.ts index 52a6a97..13d87e2 100644 --- a/apps/examples/blinkid-ui-customization/src/styles/modals.module.css.d.ts +++ b/apps/examples/blinkid-ui-customization/src/styles/modals.module.css.d.ts @@ -1,5 +1,5 @@ /** - * Copyright (c) 2025 Microblink Ltd. All rights reserved. + * Copyright (c) 2026 Microblink Ltd. All rights reserved. */ declare const styles: { diff --git a/apps/examples/blinkid-ui-customization/src/vite-env.d.ts b/apps/examples/blinkid-ui-customization/src/vite-env.d.ts index 35d55fc..6d2f125 100644 --- a/apps/examples/blinkid-ui-customization/src/vite-env.d.ts +++ b/apps/examples/blinkid-ui-customization/src/vite-env.d.ts @@ -1,5 +1,5 @@ /** - * Copyright (c) 2025 Microblink Ltd. All rights reserved. + * Copyright (c) 2026 Microblink Ltd. All rights reserved. */ /// diff --git a/apps/examples/blinkid-ui-customization/vite.config.ts b/apps/examples/blinkid-ui-customization/vite.config.ts index 2eabd08..004b779 100644 --- a/apps/examples/blinkid-ui-customization/vite.config.ts +++ b/apps/examples/blinkid-ui-customization/vite.config.ts @@ -1,8 +1,8 @@ /** - * Copyright (c) 2025 Microblink Ltd. All rights reserved. + * Copyright (c) 2026 Microblink Ltd. All rights reserved. */ -import { moveResources } from "@microblink/utils"; +import { moveResources } from "@microblink/repo-utils"; import dns from "dns"; import { ServerOptions, defineConfig } from "vite"; import mkcert from "vite-plugin-mkcert"; @@ -24,6 +24,7 @@ const serverOptions: ServerOptions = { export default defineConfig((config) => { return { + base: "./", build: { sourcemap: config.mode === "development", target: "es2022", diff --git a/apps/examples/camera-manager/.env b/apps/examples/camera-manager/.env deleted file mode 100644 index b3facb7..0000000 --- a/apps/examples/camera-manager/.env +++ /dev/null @@ -1,7 +0,0 @@ -# For development, create a .env.local or a .env.production using this template -# Never put your licence key in this file as it will be commited - -# https://vitejs.dev/guide/env-and-mode.html#env-files - - -VITE_LICENCE_KEY=PLACE_YOUR_LICENCE_KEY_HERE diff --git a/apps/examples/camera-manager/package.json b/apps/examples/camera-manager/package.json index 46d9c76..f2e897e 100644 --- a/apps/examples/camera-manager/package.json +++ b/apps/examples/camera-manager/package.json @@ -1,8 +1,7 @@ { - "name": "example-camera-manager", + "name": "@microblink/camera-manager-example", "description": "Example app showcasing the usage of the @microblink/camera-manager package", "private": true, - "version": "1.1.10", "scripts": { "build": "vite build", "build:js-dev": "vite build --mode development", @@ -23,7 +22,7 @@ }, "devDependencies": { "@microblink/tsconfig": "workspace:*", - "@microblink/utils": "workspace:*", + "@microblink/repo-utils": "workspace:*", "@typescript-eslint/eslint-plugin": "^6.9.0", "concurrently": "^9.1.2", "eslint": "^8.57.0", @@ -36,7 +35,7 @@ "sass": "^1.85.0", "serve": "^14.2.4", "tsc-files": "^1.1.4", - "typescript": "^5.8.3", + "typescript": "5.8.3", "vite": "^6.2.1", "vite-plugin-mkcert": "^1.17.6", "vite-plugin-qrcode": "^0.2.4", diff --git a/apps/examples/camera-manager/src/App.tsx b/apps/examples/camera-manager/src/App.tsx index 464e5ea..4bb59cf 100644 --- a/apps/examples/camera-manager/src/App.tsx +++ b/apps/examples/camera-manager/src/App.tsx @@ -1,5 +1,5 @@ /** - * Copyright (c) 2025 Microblink Ltd. All rights reserved. + * Copyright (c) 2026 Microblink Ltd. All rights reserved. */ /* @refresh reload */ diff --git a/apps/examples/camera-manager/src/index.tsx b/apps/examples/camera-manager/src/index.tsx index 1f3783f..e9119f1 100644 --- a/apps/examples/camera-manager/src/index.tsx +++ b/apps/examples/camera-manager/src/index.tsx @@ -1,5 +1,5 @@ /** - * Copyright (c) 2025 Microblink Ltd. All rights reserved. + * Copyright (c) 2026 Microblink Ltd. All rights reserved. */ import { render } from "solid-js/web"; diff --git a/apps/examples/camera-manager/vite.config.ts b/apps/examples/camera-manager/vite.config.ts index 468956f..8e865c9 100644 --- a/apps/examples/camera-manager/vite.config.ts +++ b/apps/examples/camera-manager/vite.config.ts @@ -1,5 +1,5 @@ /** - * Copyright (c) 2025 Microblink Ltd. All rights reserved. + * Copyright (c) 2026 Microblink Ltd. All rights reserved. */ import dns from "dns"; @@ -17,6 +17,7 @@ const serverOptions: ServerOptions = { export default defineConfig((config) => { return { + base: "./", build: { sourcemap: config.mode === "development", target: "es2022", diff --git a/apps/examples/camera-selection/.env b/apps/examples/camera-selection/.env deleted file mode 100644 index b3facb7..0000000 --- a/apps/examples/camera-selection/.env +++ /dev/null @@ -1,7 +0,0 @@ -# For development, create a .env.local or a .env.production using this template -# Never put your licence key in this file as it will be commited - -# https://vitejs.dev/guide/env-and-mode.html#env-files - - -VITE_LICENCE_KEY=PLACE_YOUR_LICENCE_KEY_HERE diff --git a/apps/examples/camera-selection/CHANGELOG.md b/apps/examples/camera-selection/CHANGELOG.md deleted file mode 100644 index 60eadd3..0000000 --- a/apps/examples/camera-selection/CHANGELOG.md +++ /dev/null @@ -1,65 +0,0 @@ -# example-camera-manager-selection - -## 1.1.10 - -### Patch Changes - -- Updated dependencies - - @microblink/camera-manager@7.2.6 - -## 1.1.9 - -### Patch Changes - -- Updated dependencies - - @microblink/camera-manager@7.2.5 - -## 1.1.8 - -### Patch Changes - -- Updated dependencies - - @microblink/camera-manager@7.2.4 - -## 1.1.7 - -### Patch Changes - -- Updated dependencies - - @microblink/camera-manager@7.2.3 - -## 1.1.6 - -### Patch Changes - -- Updated dependencies - - @microblink/camera-manager@7.2.2 - -## 1.1.5 - -### Patch Changes - -- Updated dependencies - - @microblink/camera-manager@7.2.1 - -## 1.1.4 - -### Patch Changes - -- Updated dependencies - - @microblink/camera-manager@7.2.0 - -## 1.1.3 - -### Patch Changes - -- Updated dependencies - - @microblink/camera-manager@7.1.0 - -## 1.1.2 - -### Patch Changes - -- Bump package version -- Updated dependencies - - @microblink/camera-manager@7.0.1 diff --git a/apps/examples/camera-selection/package.json b/apps/examples/camera-selection/package.json index 29e6d68..9a858b3 100644 --- a/apps/examples/camera-selection/package.json +++ b/apps/examples/camera-selection/package.json @@ -1,8 +1,7 @@ { - "name": "example-camera-manager-selection", + "name": "@microblink/camera-selection-example", "description": "Example app showcasing the usage of the @microblink/camera-manager package with camera selection", "private": true, - "version": "1.1.10", "scripts": { "build": "vite build", "build:js-dev": "vite build --mode development", @@ -23,7 +22,7 @@ }, "devDependencies": { "@microblink/tsconfig": "workspace:*", - "@microblink/utils": "workspace:*", + "@microblink/repo-utils": "workspace:*", "@typescript-eslint/eslint-plugin": "^6.9.0", "concurrently": "^9.1.2", "eslint": "^8.57.0", @@ -36,7 +35,7 @@ "sass": "^1.85.0", "serve": "^14.2.4", "tsc-files": "^1.1.4", - "typescript": "^5.8.3", + "typescript": "5.8.3", "vite": "^6.2.1", "vite-plugin-mkcert": "^1.17.6", "vite-plugin-qrcode": "^0.2.4", diff --git a/apps/examples/camera-selection/src/App.tsx b/apps/examples/camera-selection/src/App.tsx index 2ec762b..9d7a8c5 100644 --- a/apps/examples/camera-selection/src/App.tsx +++ b/apps/examples/camera-selection/src/App.tsx @@ -1,5 +1,5 @@ /** - * Copyright (c) 2025 Microblink Ltd. All rights reserved. + * Copyright (c) 2026 Microblink Ltd. All rights reserved. */ /* @refresh reload */ diff --git a/apps/examples/camera-selection/src/index.tsx b/apps/examples/camera-selection/src/index.tsx index 1f3783f..e9119f1 100644 --- a/apps/examples/camera-selection/src/index.tsx +++ b/apps/examples/camera-selection/src/index.tsx @@ -1,5 +1,5 @@ /** - * Copyright (c) 2025 Microblink Ltd. All rights reserved. + * Copyright (c) 2026 Microblink Ltd. All rights reserved. */ import { render } from "solid-js/web"; diff --git a/apps/examples/camera-selection/src/vite-env.d.ts b/apps/examples/camera-selection/src/vite-env.d.ts deleted file mode 100644 index 3e44e67..0000000 --- a/apps/examples/camera-selection/src/vite-env.d.ts +++ /dev/null @@ -1,13 +0,0 @@ -/** - * Copyright (c) 2025 Microblink Ltd. All rights reserved. - */ - -/// - -interface ImportMetaEnv { - readonly VITE_LICENCE_KEY: string; -} - -interface ImportMeta { - readonly env: ImportMetaEnv; -} diff --git a/apps/examples/camera-selection/vite.config.ts b/apps/examples/camera-selection/vite.config.ts index 9dc4875..6c5dbd7 100644 --- a/apps/examples/camera-selection/vite.config.ts +++ b/apps/examples/camera-selection/vite.config.ts @@ -1,5 +1,5 @@ /** - * Copyright (c) 2025 Microblink Ltd. All rights reserved. + * Copyright (c) 2026 Microblink Ltd. All rights reserved. */ import dns from "dns"; @@ -21,6 +21,7 @@ const serverOptions: ServerOptions = { export default defineConfig((config) => { return { + base: "./", build: { sourcemap: config.mode === "development", target: "es2022", diff --git a/docs/blinkcard/OssDependencies.md b/docs/blinkcard/OssDependencies.md new file mode 100644 index 0000000..58cfd17 --- /dev/null +++ b/docs/blinkcard/OssDependencies.md @@ -0,0 +1,174 @@ +# Open Source Dependencies Report + +This report lists all open source dependencies used in the BlinkCard SDK packages. + +## Summary + +This report includes: +- **NPM Dependencies**: Production dependencies from all packages in the monorepo (122 packages) +- **C++ Dependencies**: Native dependencies for WebAssembly builds (33 unique packages across 3 build flavors) + +## NPM Dependencies + +| Package | Version | License | Author | Homepage | +|---------|---------|---------|---------|----------| +| @ark-ui/solid | 5.26.2 | MIT | N/A | [Link](https://ark-ui.com) | +| @csstools/normalize.css | 12.1.1 | CC0-1.0 | Jonathan Neal | [Link](https://github.com/csstools/normalize.css#readme) | +| @floating-ui/core | 1.7.3 | MIT | atomiks | [Link](https://floating-ui.com) | +| @floating-ui/dom | 1.7.4 | MIT | atomiks | [Link](https://floating-ui.com) | +| @floating-ui/utils | 0.2.10 | MIT | atomiks | [Link](https://floating-ui.com) | +| @internationalized/date | 3.10.0 | Apache-2.0 | N/A | [Link](https://github.com/adobe/react-spectrum/tree/main#readme) | +| @internationalized/number | 3.6.5 | Apache-2.0 | N/A | [Link](https://github.com/adobe/react-spectrum#readme) | +| @motionone/animation | 10.18.0 | MIT | Matt Perry | N/A | +| @motionone/dom | 10.18.0 | MIT | Matt Perry | N/A | +| @motionone/easing | 10.18.0 | MIT | Matt Perry | N/A | +| @motionone/generators | 10.18.0 | MIT | Matt Perry | N/A | +| @motionone/types | 10.17.1 | MIT | Matt Perry | N/A | +| @motionone/utils | 10.18.0 | MIT | Matt Perry | N/A | +| @solid-primitives/event-listener | 2.4.0 | MIT | David Di Biase | [Link](https://primitives.solidjs.community/package/event-listener) | +| @solid-primitives/keyed | 1.5.2 | MIT | Damian Tarnawski @thetarnav | [Link](https://primitives.solidjs.community/package/keyed) | +| @solid-primitives/props | 3.1.11 | MIT | Damian Tarnawski | [Link](https://primitives.solidjs.community/package/props) | +| @solid-primitives/refs | 1.0.8 | MIT | Damian Tarnawski @thetarnav | [Link](https://primitives.solidjs.community/package/refs) | +| @solid-primitives/resize-observer | 2.1.0 | MIT | Moshe Udimar | [Link](https://primitives.solidjs.community/package/resize-observer) | +| @solid-primitives/rootless | 1.5.0 | MIT | Damian Tarnawski @thetarnav | [Link](https://primitives.solidjs.community/package/rootless) | +| @solid-primitives/static-store | 0.1.0 | MIT | Damian Tarnawski | [Link](https://primitives.solidjs.community/package/static-store) | +| @solid-primitives/transition-group | 1.0.5 | MIT | Damian Tarnawski | [Link](https://primitives.solidjs.community/package/transition-group) | +| @solid-primitives/utils | 6.2.3 | MIT | Damian Tarnawski @thetarnav | [Link](https://github.com/solidjs-community/solid-primitives/tree/main/packages/utils#readme) | +| @swc/helpers | 0.5.3 | Apache-2.0 | 강동윤 | [Link](https://swc.rs) | +| @wessberg/connection-observer | 1.0.5 | MIT | N/A | [Link](https://github.com/wessberg/connection-observer#readme) | +| @zag-js/accordion | 1.26.3 | MIT | Segun Adebayo | [Link](https://github.com/chakra-ui/zag#readme) | +| @zag-js/anatomy | 1.26.3 | MIT | Segun Adebayo | [Link](https://github.com/chakra-ui/zag#readme) | +| @zag-js/angle-slider | 1.26.3 | MIT | Segun Adebayo | [Link](https://github.com/chakra-ui/zag#readme) | +| @zag-js/aria-hidden | 1.26.3 | MIT | Segun Adebayo | [Link](https://github.com/chakra-ui/zag#readme) | +| @zag-js/async-list | 1.26.3 | MIT | Segun Adebayo | [Link](https://github.com/chakra-ui/zag#readme) | +| @zag-js/auto-resize | 1.26.3 | MIT | Segun Adebayo | [Link](https://github.com/chakra-ui/zag#readme) | +| @zag-js/avatar | 1.26.3 | MIT | Segun Adebayo | [Link](https://github.com/chakra-ui/zag#readme) | +| @zag-js/bottom-sheet | 1.26.3 | MIT | Segun Adebayo | [Link](https://github.com/chakra-ui/zag#readme) | +| @zag-js/carousel | 1.26.3 | MIT | Segun Adebayo | [Link](https://github.com/chakra-ui/zag#readme) | +| @zag-js/checkbox | 1.26.3 | MIT | Segun Adebayo | [Link](https://github.com/chakra-ui/zag#readme) | +| @zag-js/clipboard | 1.26.3 | MIT | Segun Adebayo | [Link](https://github.com/chakra-ui/zag#readme) | +| @zag-js/collapsible | 1.26.3 | MIT | Segun Adebayo | [Link](https://github.com/chakra-ui/zag#readme) | +| @zag-js/collection | 1.26.3 | MIT | Segun Adebayo | [Link](https://github.com/chakra-ui/zag#readme) | +| @zag-js/color-picker | 1.26.3 | MIT | Segun Adebayo | [Link](https://github.com/chakra-ui/zag#readme) | +| @zag-js/color-utils | 1.26.3 | MIT | Segun Adebayo | [Link](https://github.com/chakra-ui/zag#readme) | +| @zag-js/combobox | 1.26.3 | MIT | Segun Adebayo | [Link](https://github.com/chakra-ui/zag#readme) | +| @zag-js/core | 1.26.3 | MIT | Segun Adebayo | [Link](https://github.com/chakra-ui/zag#readme) | +| @zag-js/date-picker | 1.26.3 | MIT | Segun Adebayo | [Link](https://github.com/chakra-ui/zag#readme) | +| @zag-js/date-utils | 1.26.3 | MIT | Segun Adebayo | [Link](https://github.com/chakra-ui/zag#readme) | +| @zag-js/dialog | 1.26.3 | MIT | Segun Adebayo | [Link](https://github.com/chakra-ui/zag#readme) | +| @zag-js/dismissable | 1.26.3 | MIT | Segun Adebayo | [Link](https://github.com/chakra-ui/zag#readme) | +| @zag-js/dom-query | 1.26.3 | MIT | Segun Adebayo | [Link](https://github.com/chakra-ui/zag#readme) | +| @zag-js/editable | 1.26.3 | MIT | Segun Adebayo | [Link](https://github.com/chakra-ui/zag#readme) | +| @zag-js/file-upload | 1.26.3 | MIT | Segun Adebayo | [Link](https://github.com/chakra-ui/zag#readme) | +| @zag-js/file-utils | 1.26.3 | MIT | Segun Adebayo | [Link](https://github.com/chakra-ui/zag#readme) | +| @zag-js/floating-panel | 1.26.3 | MIT | Segun Adebayo | [Link](https://github.com/chakra-ui/zag#readme) | +| @zag-js/focus-trap | 1.26.3 | MIT | Segun Adebayo | [Link](https://github.com/chakra-ui/zag#readme) | +| @zag-js/focus-visible | 1.26.3 | MIT | Segun Adebayo | [Link](https://github.com/chakra-ui/zag#readme) | +| @zag-js/highlight-word | 1.26.3 | MIT | Segun Adebayo | [Link](https://github.com/chakra-ui/zag#readme) | +| @zag-js/hover-card | 1.26.3 | MIT | Abraham Aremu | [Link](https://github.com/chakra-ui/zag#readme) | +| @zag-js/i18n-utils | 1.26.3 | MIT | Segun Adebayo | [Link](https://github.com/chakra-ui/zag#readme) | +| @zag-js/interact-outside | 1.26.3 | MIT | Segun Adebayo | [Link](https://github.com/chakra-ui/zag#readme) | +| @zag-js/json-tree-utils | 1.26.3 | MIT | Segun Adebayo | [Link](https://github.com/chakra-ui/zag#readme) | +| @zag-js/listbox | 1.26.3 | MIT | Segun Adebayo | [Link](https://github.com/chakra-ui/zag#readme) | +| @zag-js/live-region | 1.26.3 | MIT | Segun Adebayo | [Link](https://github.com/chakra-ui/zag#readme) | +| @zag-js/menu | 1.26.3 | MIT | Segun Adebayo | [Link](https://github.com/chakra-ui/zag#readme) | +| @zag-js/number-input | 1.26.3 | MIT | Segun Adebayo | [Link](https://github.com/chakra-ui/zag#readme) | +| @zag-js/pagination | 1.26.3 | MIT | Abraham Aremu | [Link](https://github.com/chakra-ui/zag#readme) | +| @zag-js/password-input | 1.26.3 | MIT | Segun Adebayo | [Link](https://github.com/chakra-ui/zag#readme) | +| @zag-js/pin-input | 1.26.3 | MIT | Segun Adebayo | [Link](https://github.com/chakra-ui/zag#readme) | +| @zag-js/popover | 1.26.3 | MIT | Segun Adebayo | [Link](https://github.com/chakra-ui/zag#readme) | +| @zag-js/popper | 1.26.3 | MIT | Segun Adebayo | [Link](https://github.com/chakra-ui/zag#readme) | +| @zag-js/presence | 1.26.3 | MIT | Segun Adebayo | [Link](https://github.com/chakra-ui/zag#readme) | +| @zag-js/progress | 1.26.3 | MIT | Segun Adebayo | [Link](https://github.com/chakra-ui/zag#readme) | +| @zag-js/qr-code | 1.26.3 | MIT | Segun Adebayo | [Link](https://github.com/chakra-ui/zag#readme) | +| @zag-js/radio-group | 1.26.3 | MIT | Abraham Aremu | [Link](https://github.com/chakra-ui/zag#readme) | +| @zag-js/rating-group | 1.26.3 | MIT | Segun Adebayo | [Link](https://github.com/chakra-ui/zag#readme) | +| @zag-js/rect-utils | 1.26.3 | MIT | Segun Adebayo | [Link](https://github.com/chakra-ui/zag#readme) | +| @zag-js/remove-scroll | 1.26.3 | MIT | Segun Adebayo | [Link](https://github.com/chakra-ui/zag#readme) | +| @zag-js/scroll-area | 1.26.3 | MIT | Segun Adebayo | [Link](https://github.com/chakra-ui/zag#readme) | +| @zag-js/scroll-snap | 1.26.3 | MIT | Segun Adebayo | [Link](https://github.com/chakra-ui/zag#readme) | +| @zag-js/select | 1.26.3 | MIT | Segun Adebayo | [Link](https://github.com/chakra-ui/zag#readme) | +| @zag-js/signature-pad | 1.26.3 | MIT | Segun Adebayo | [Link](https://github.com/chakra-ui/zag#readme) | +| @zag-js/slider | 1.26.3 | MIT | Segun Adebayo | [Link](https://github.com/chakra-ui/zag#readme) | +| @zag-js/solid | 1.26.3 | MIT | Segun Adebayo | [Link](https://github.com/chakra-ui/zag#readme) | +| @zag-js/splitter | 1.26.3 | MIT | Segun Adebayo | [Link](https://github.com/chakra-ui/zag#readme) | +| @zag-js/steps | 1.26.3 | MIT | Segun Adebayo | [Link](https://github.com/chakra-ui/zag#readme) | +| @zag-js/store | 1.26.3 | MIT | Segun Adebayo | [Link](https://github.com/chakra-ui/zag#readme) | +| @zag-js/switch | 1.26.3 | MIT | Abraham Aremu | [Link](https://github.com/chakra-ui/zag#readme) | +| @zag-js/tabs | 1.26.3 | MIT | Segun Adebayo | [Link](https://github.com/chakra-ui/zag#readme) | +| @zag-js/tags-input | 1.26.3 | MIT | Segun Adebayo | [Link](https://github.com/chakra-ui/zag#readme) | +| @zag-js/timer | 1.26.3 | MIT | Abraham Aremu | [Link](https://github.com/chakra-ui/zag#readme) | +| @zag-js/toast | 1.26.3 | MIT | Segun Adebayo | [Link](https://github.com/chakra-ui/zag#readme) | +| @zag-js/toggle | 1.26.3 | MIT | Segun Adebayo | [Link](https://github.com/chakra-ui/zag#readme) | +| @zag-js/toggle-group | 1.26.3 | MIT | Segun Adebayo | [Link](https://github.com/chakra-ui/zag#readme) | +| @zag-js/tooltip | 1.26.3 | MIT | Segun Adebayo | [Link](https://github.com/chakra-ui/zag#readme) | +| @zag-js/tour | 1.26.3 | MIT | Segun Adebayo | [Link](https://github.com/chakra-ui/zag#readme) | +| @zag-js/tree-view | 1.26.3 | MIT | Segun Adebayo | [Link](https://github.com/chakra-ui/zag#readme) | +| @zag-js/types | 1.26.3 | MIT | Segun Adebayo | [Link](https://github.com/chakra-ui/zag#readme) | +| @zag-js/utils | 1.26.3 | MIT | Segun Adebayo | [Link](https://github.com/chakra-ui/zag#readme) | +| clsx | 2.1.1 | MIT | Luke Edwards | [Link](https://github.com/lukeed/clsx#readme) | +| comlink | 4.4.2 | Apache-2.0 | Surma | [Link](https://github.com/GoogleChromeLabs/comlink#readme) | +| common-tags | 1.8.2 | MIT | Declan de Wet | [Link](https://github.com/zspecza/common-tags) | +| csstype | 3.1.3 | MIT | Fredrik Nicol | [Link](https://github.com/frenic/csstype#readme) | +| hey-listen | 1.0.8 | MIT | Matt Perry | [Link](https://github.com/Popmotion/hey-listen#readme) | +| is-what | 5.0.2 | MIT | Luca Ban - Mesqueeb | [Link](https://github.com/mesqueeb/is-what#readme) | +| js-tokens | 4.0.0 | MIT | Simon Lydell | [Link](https://github.com/lydell/js-tokens#readme) | +| loose-envify | 1.4.0 | MIT | Andres Suarez | [Link](https://github.com/zertosh/loose-envify) | +| merge-anything | 6.0.3 | MIT | Luca Ban - Mesqueeb | [Link](https://github.com/mesqueeb/merge-anything#readme) | +| nanoid | 5.0.2 | MIT | Andrey Sitnik | [Link](https://github.com/ai/nanoid#readme) | +| perfect-freehand | 1.2.2 | MIT | Steve Ruiz | [Link](https://github.com/steveruizok/perfect-freehand#readme) | +| proxy-compare | 3.0.0 | MIT | Daishi Kato | [Link](https://github.com/dai-shi/proxy-compare#readme) | +| proxy-memoize | 3.0.1 | MIT | Daishi Kato | [Link](https://github.com/dai-shi/proxy-memoize#readme) | +| rad-event-listener | 0.2.4 | MIT | N/A | [Link](https://github.com/JLarky/rad-event-listener#readme) | +| react | 18.2.0 | MIT | N/A | [Link](https://reactjs.org/) | +| rvfc-polyfill | 1.0.7 | GPL-3.0 | ThaUnknown | [Link](https://github.com/ThaUnknown/rvfc-polyfill#readme) | +| seroval | 1.3.2 | MIT | Alexis Munsayac | [Link](https://github.com/lxsmnsyc/seroval/tree/main/packages/seroval) | +| seroval-plugins | 1.3.3 | MIT | Alexis Munsayac | [Link](https://github.com/lxsmnsyc/seroval/tree/main/packages/plugins) | +| solid-js | 1.9.9 | MIT | Ryan Carniato | [Link](https://solidjs.com) | +| solid-motionone | 1.0.3 | MIT | Damian Tarnawski | N/A | +| solid-zustand | 1.8.1 | MIT | N/A | [Link](https://github.com/wobsoriano/solid-zustand#readme) | +| ts-pattern | 5.6.2 | MIT | Gabriel Vergnaud | [Link](https://github.com/gvergnaud/ts-pattern#readme) | +| tslib | 2.6.2 | 0BSD | Microsoft Corp. | [Link](https://www.typescriptlang.org/) | +| type-fest | 4.35.0 | (MIT OR CC0-1.0) | Sindre Sorhus | [Link](https://github.com/sindresorhus/type-fest#readme) | +| uqr | 0.1.2 | MIT | Anthony Fu | [Link](https://github.com/unjs/uqr#readme) | +| use-sync-external-store | 1.2.2 | MIT | N/A | [Link](https://github.com/facebook/react#readme) | +| wasm-feature-detect | 1.8.0 | Apache-2.0 | Surma | [Link](https://github.com/GoogleChromeLabs/wasm-feature-detect#readme) | +| zustand | 4.5.5 | MIT | Paul Henschel | [Link](https://github.com/pmndrs/zustand) | + +## C++ Dependencies + +| Package | License | URL | Description | +|---------|---------|-----|-------------| +| abseil/20250512.0.1@microblink/main#120e2c1b766e76087248ee491d67cb52 | Apache-2.0 | [Link](https://github.com/microblink/abseil-cpp) | Abseil Common Libraries (C++) from Google | +| adv_obfuscator/20170904.1@microblink/main#aa4c2ce54111773ef9ce027667b68d71 | https://github.com/microblink/ADVobfuscator#copyright-and-license | [Link](https://github.com/microblink/ADVobfuscator) | Obfuscation library based on C++11/14 and metaprogramming | +| boost/1.84.1@microblink/main#bff79afef94bda2190fd38c952381df6 | Boost Software license | [Link](https://bitbucket.org/microblink/boost) | Free peer-reviewed portable C++ source libraries. | +| concurrent_queue/1.0.1@microblink/main#b452679c066c30530f176c59cd276208 | Dual licensed under Simplified BSD License and Boost Software License - Version 1.0 | [Link](https://github.com/microblink/concurrentqueue) | A fast multi-producer, multi-consumer lock-free concurrent queue for C++11 | +| config_ex/1.1.1@microblink/main#58895a244f6055c6017a95e43ef5ce63 | MIT | [Link](https://github.com/microblink/config_ex) | Additions to boost/config for additional compiler-specific codegen tweaking macros | +| cpuinfo/20250509.9@microblink/main#40de5b1b7859404e36455d2a5a670efb | BSD 2-Clause "Simplified" License | [Link](https://github.com/microblink/cpuinfo) | cpuinfo is a library to detect essential for performance optimization information about host CPU | +| eigen/3.4.2@microblink/main#406195518d246c1d387b54df8ade9052 | Mozilla Public License Version 2.0 | [Link](https://github.com/microblink/eigen-git-mirror) | Eigen is a C++ template library for linear algebra: vectors, matrices, and related algorithms. It is versatile, fast, elegant and works on many platforms (OS/Compilers). | +| 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 | +| hash/2.0.3@microblink/main#bca5158cdd3532fd9a32d7539b66194f | zlib | [Link](https://github.com/microblink/hash-library) | Portable C++ Hashing Library | +| kiwaku/20230809.4@microblink/main#6e5eb5cb85661173d4d516738282e5db | BSL-1.0 | [Link](https://github.com/microblink/kiwaku) | C++20 and onward collection of high performance data containers and related tools | +| libjpeg_turbo/3.0.2.2@microblink/main#c5ae8c1d15ab8215718ea3df429e55e1 | BSD-3-Clause, Zlib | [Link](https://github.com/microblink/libjpeg-turbo) | SIMD-accelerated libjpeg-compatible JPEG codec library | +| libpng/1.6.48@microblink/main#a894c6d32b60eb517232069228102b95 | libpng-2.0 | [Link](https://github.com/microblink/libpng) | An Open, Extensible Image Format with Lossless Compression | +| micro_ecc/1.0.0@microblink/main#1c323460f6536c0b0f5baaed9de6bcf5 | BSD 2-Clause "Simplified" License | [Link](https://github.com/microblink/micro-ecc) | A small and fast ECDH and ECDSA implementation for 8-bit, 32-bit, and 64-bit processors. | +| mmap/1.0.2@microblink/main#49540e8a3d87662b601b9b433396582c | Boost Software License | [Link](https://github.com/microblink/mmap) | portable, lightweight, powerful, near-zero-overhead memory mapping and virtual memory management | +| nlohmann_json/3.10.4#2d3ba0c641692cca9fb4514e05154688 | MIT | [Link](https://github.com/conan-io/conan-center-index) | JSON for Modern C++ parser and generator. | +| opencv/4.10.1@microblink/main#2bc2be2ecc71966cde69f7dbdf85a312 | MIT | [Link](https://github.com/microblink/opencv) | Microblink's fork of OpenCV | +| pimpl/1.0.1@microblink/main#4857170a202027c0fd2f22d0c2c4c7a3 | BSD 2-Clause "Simplified" License | [Link](https://github.com/microblink/pimpl) | Proving pimpls do not require heap, exceptions or runtime polymorphism. | +| protobuf/4.25.2@microblink/main#732767a0c74df7e4d7955a035060b19d | BSD | [Link](https://github.com/microblink/protobuf) | Google's language-neutral, platform-neutral, extensible mechanism for serializing structured data | +| qoixx/0.1.7.3@microblink/main#7a99513f8b969271ba87111c1317f1f0 | MIT License | [Link](https://github.com/microblink/qoixx) | qoixx is a high performance MIT licensed single-header QOI implementation written in C++20. | +| range-v3/0.12.0#abb9932b80d96eaf8fc992debe3870ed | BSL-1.0 | [Link](https://github.com/conan-io/conan-center-index) | Experimental range library for C++11/14/17 | +| rapidjson/1.1.6@microblink/main#22545451e78c6dfb8c85f2e14b862674 | BSD | [Link](https://bitbucket.org/microblink/core-rapidjson) | A fast JSON parser/generator for C++ with both SAX/DOM style API | +| re2/20240702.0.0@microblink/main#97effdb903f6546348047925d9d1f365 | BSD-3-Clause | [Link](https://github.com/microblink/re2) | Fast, safe, thread-friendly regular expression library | +| std_fix/1.0.2@microblink/main#3002fa1150d5261ad74d2d167d48e653 | BSL-1.0 | [Link](https://github.com/microblink/std_fix) | Patches for deficient C++ runtime implementations | +| sweater/1.1.7@microblink/main#00226324984e8fb052dd8e703b48d28e | MIT | [Link](https://github.com/microblink/sweater) | Humble Outer Dispatch | +| tf_messages/1.0.1@microblink/main#96187cc0ac393ee835b807074bb3e884 | Apache License 2.0 | [Link](https://bitbucket.org/microblink/core-tensorflow/) | Computation using data flow graphs for scalable machine learning | +| tinyxml2/2.2.4@microblink/main#e75d39f68113ec40fde0b991ffa76a37 | Zlib | [Link](https://github.com/microblink/tinyxml2) | a simple, small, efficient, C++ XML parser | +| tqdm/1.0.0@microblink/main#9f84ad8bec3a73f9635d64c0f49aea96 | MIT | [Link](https://bitbucket.org/microblink/core-tqdm) | tqdm-like single header c++ pretty progress bar | +| utfcpp/4.0.6@microblink/main#ea11de5465f5305ad0fc5d691185d7a5 | Boost Software License 1.0 | [Link](https://github.com/microblink/utfcpp) | UTF-8 with C++ in a Portable Way | +| xnnpack/20230525.1.6@microblink/main#3e5e60789c103ebfec170c7898cdfe4d | BSD | [Link](https://github.com/microblink/XNNPACK) | XNNPACK library | +| zlib/1.3.2@microblink/main#52419110a760a9cb8cd7bd57b01de0b2 | Zlib | [Link](https://github.com/microblink/zlib) | A massively spiffy yet delicately unobtrusive compression library. | +| zxing-cpp/1.1.0@microblink/main#6650d1dcd9e84e7917697e701c82ad47 | Apache License 2.0 | [Link](https://github.com/microblink/zxing) | ZXing ("Zebra Crossing") barcode scanning library for Java, Android | diff --git a/docs/OssDependencies.md b/docs/blinkid/OssDependencies.md similarity index 99% rename from docs/OssDependencies.md rename to docs/blinkid/OssDependencies.md index 0aefaaf..9640e61 100644 --- a/docs/OssDependencies.md +++ b/docs/blinkid/OssDependencies.md @@ -5,7 +5,7 @@ This report lists all open source dependencies used in the BlinkID SDK packages. ## Summary This report includes: -- **NPM Dependencies**: Production dependencies from all packages in the monorepo (123 packages) +- **NPM Dependencies**: Production dependencies from all packages in the monorepo (122 packages) - **C++ Dependencies**: Native dependencies for WebAssembly builds (33 unique packages across 3 build flavors) ## NPM Dependencies @@ -133,7 +133,6 @@ This report includes: | uqr | 0.1.2 | MIT | Anthony Fu | [Link](https://github.com/unjs/uqr#readme) | | use-sync-external-store | 1.2.2 | MIT | N/A | [Link](https://github.com/facebook/react#readme) | | wasm-feature-detect | 1.8.0 | Apache-2.0 | Surma | [Link](https://github.com/GoogleChromeLabs/wasm-feature-detect#readme) | -| yy-fps | 2.0.1 | MIT | David Figatner | [Link](https://github.com/davidfig/fps#readme) | | zustand | 4.5.5 | MIT | Paul Henschel | [Link](https://github.com/pmndrs/zustand) | ## C++ Dependencies diff --git a/docs/ResultFields.md b/docs/blinkid/ResultFields.md similarity index 100% rename from docs/ResultFields.md rename to docs/blinkid/ResultFields.md diff --git a/docs/SupportedDocuments.md b/docs/blinkid/SupportedDocuments.md similarity index 100% rename from docs/SupportedDocuments.md rename to docs/blinkid/SupportedDocuments.md diff --git a/package.json b/package.json index 1888dcd..14bb77a 100644 --- a/package.json +++ b/package.json @@ -2,13 +2,20 @@ "private": true, "scripts": { "build": "turbo build", + "build:blinkid": "turbo build --filter=@microblink/blinkid...", + "build:blinkcard": "turbo build --filter=@microblink/blinkcard...", "build:packages": "turbo build --filter={./packages/*}", "build:publish": "turbo build:publish --filter={./packages/*}", + "clean:blinkid": "turbo clean --filter=@microblink/blinkid...", + "clean:blinkcard": "turbo clean --filter=@microblink/blinkcard...", "clean": "turbo clean && rimraf .turbo .venv", - "create-github": "pnpm run clean && pnpm run build:publish && pnpm --filter 'github-release' create-github", + "lint:blinkid": "turbo lint --filter=@microblink/blinkid...", + "lint:blinkcard": "turbo lint --filter=@microblink/blinkcard...", "lint": "turbo lint", "prepare": "husky", "publish-test": "turbo publish-test", + "test:blinkid": "turbo test --filter=@microblink/blinkid...", + "test:blinkcard": "turbo test --filter=@microblink/blinkcard...", "test": "turbo test", "test:watch": "turbo test:watch", "upgrade-packages": "pnpm dlx npm-check-updates -ui -ws --root", @@ -24,5 +31,5 @@ "vitest": "^3.0.8" }, "license": "ISC", - "packageManager": "pnpm@10.18.1" + "packageManager": "pnpm@10.29.3" } diff --git a/packages/analytics/.eslintrc.cjs b/packages/analytics/.eslintrc.cjs new file mode 100644 index 0000000..ed4820d --- /dev/null +++ b/packages/analytics/.eslintrc.cjs @@ -0,0 +1,54 @@ +const { defineConfig } = require("eslint-define-config"); + +module.exports = defineConfig({ + root: true, + + ignorePatterns: ["src/ping/**"], + + parserOptions: { + ecmaVersion: "2022", + sourceType: "module", + }, + + overrides: [ + { + files: ["src/**/*.ts"], + plugins: ["@typescript-eslint"], + parser: "@typescript-eslint/parser", + // have to duplicate in override... + rules: { + "@typescript-eslint/no-unused-vars": 0, + // the following two are causing errors in vscode. See: + // https://typescript-eslint.io/linting/troubleshooting/#changes-to-one-file-are-not-reflected-when-linting-other-files-in-my-ide + "@typescript-eslint/no-unsafe-assignment": 0, + "@typescript-eslint/no-unsafe-member-access": 0, + // only use in tsx + "@typescript-eslint/no-non-null-assertion": 0, + "@typescript-eslint/consistent-type-definitions": 0, + "prefer-const": 0, + }, + parserOptions: { + tsconfigRootDir: __dirname, + project: ["./tsconfig.json"], + }, + extends: [ + "eslint:recommended", + "plugin:@typescript-eslint/recommended-type-checked", + "plugin:@typescript-eslint/stylistic-type-checked", + "prettier", + ], + }, + { + files: ["**/*.{js,mjs,cjs}"], + env: { + node: true, + browser: true, + es2021: true, + }, + extends: ["eslint:recommended"], + rules: { + "no-unused-vars": 0, + }, + }, + ], +}); diff --git a/packages/analytics/.gitignore b/packages/analytics/.gitignore new file mode 100644 index 0000000..dd10ff6 --- /dev/null +++ b/packages/analytics/.gitignore @@ -0,0 +1,3 @@ +types +docs +build diff --git a/packages/analytics/CHANGELOG.md b/packages/analytics/CHANGELOG.md new file mode 100644 index 0000000..08ebeec --- /dev/null +++ b/packages/analytics/CHANGELOG.md @@ -0,0 +1,7 @@ +# @microblink/analytics + +## 1.0.0 + +### Major Changes + +- Internal analytics and telemetry package: provides `AnalyticService` and ping types for SDK events (SDK init, scan events, camera info, errors). Used by BlinkID and BlinkCard browser SDK packages; private, consumed via workspace within the monorepo. diff --git a/packages/analytics/README.md b/packages/analytics/README.md new file mode 100644 index 0000000..eb83f9d --- /dev/null +++ b/packages/analytics/README.md @@ -0,0 +1,33 @@ +# @microblink/analytics + +Internal package for SDK analytics and telemetry. It provides services and ping types for collecting and sending analytics events (e.g. SDK init, scan events, camera info, errors) used by BlinkID and BlinkCard browser SDK packages. + +## Overview + +- Provides `AnalyticService` and ping types for SDK telemetry. +- Used internally by SDK packages; not published for direct consumer use. +- Private package; consumed via `workspace:*` within the monorepo. + +## Development + +To build the package locally: + +1. Install dependencies in the monorepo root: + + ```sh + pnpm install + ``` + +2. Build the package: + + ```sh + pnpm build + ``` + +3. Run tests: + + ```sh + pnpm test + ``` + +The output files will be available in the `dist/` and `types/` directories. diff --git a/packages/analytics/lint-staged.config.mjs b/packages/analytics/lint-staged.config.mjs new file mode 100644 index 0000000..4e18bc8 --- /dev/null +++ b/packages/analytics/lint-staged.config.mjs @@ -0,0 +1,7 @@ +export default { + "*.{js,cjs,mjs,jsx,ts,mts,tsx}": [() => "eslint --max-warnings=0"], + "*.{ts,mts,tsx}": [ + () => "tsc --skipLibCheck --emitDeclarationOnly false --noEmit", + ], + "src/**/*.{js,cjs,mjs,jsx,ts,mts,tsx,css,md}": ["prettier --write"], +}; diff --git a/packages/analytics/package.json b/packages/analytics/package.json new file mode 100644 index 0000000..e7a7758 --- /dev/null +++ b/packages/analytics/package.json @@ -0,0 +1,54 @@ +{ + "name": "@microblink/analytics", + "private": true, + "version": "1.0.0", + "scripts": { + "build": "tsc", + "build:publish": "tsc", + "build:types": "tsc", + "clean": "rimraf .turbo types dist", + "docs:api": "typedoc", + "lint": "concurrently pnpm:lint:types pnpm:lint:eslint", + "lint:eslint": "eslint ./src --max-warnings 0", + "lint:types": "tsc --emitDeclarationOnly false --noEmit", + "test": "vitest --run", + "test:watch": "vitest --watch" + }, + "type": "module", + "exports": { + "./AnalyticService": { + "types": "./types/AnalyticService.d.ts", + "import": "./dist/AnalyticService.js" + }, + "./ping": { + "types": "./types/ping/index.d.ts", + "import": "./dist/ping/index.js" + }, + "./package.json": "./package.json" + }, + "files": [ + "dist", + "types" + ], + "devDependencies": { + "@microblink/tsconfig": "workspace:*", + "@typescript-eslint/eslint-plugin": "^6.9.0", + "concurrently": "^9.1.2", + "dotenv-cli": "^8.0.0", + "eslint": "^8.57.0", + "eslint-config-prettier": "10.0.1", + "eslint-define-config": "^1.24.1", + "prettier": "^3.6.2", + "rimraf": "^6.0.1", + "tsx": "^4.20.6", + "typedoc": "^0.28.7", + "typedoc-plugin-markdown": "^4.7.0", + "typescript": "5.8.3", + "vite": "^6.2.1", + "vitest": "^3.0.8", + "zx": "^8.8.5" + }, + "keywords": [], + "license": "ISC", + "description": "Analytics" +} diff --git a/packages/analytics/src/AnalyticService.test.ts b/packages/analytics/src/AnalyticService.test.ts new file mode 100644 index 0000000..2de1f35 --- /dev/null +++ b/packages/analytics/src/AnalyticService.test.ts @@ -0,0 +1,468 @@ +/** + * Copyright (c) 2026 Microblink Ltd. All rights reserved. + */ + +import { describe, it, expect, vi, beforeEach } from "vitest"; +import { AnalyticService } from "./AnalyticService"; +import type { + PingBrowserDeviceInfoData, + PingCameraHardwareInfoData, +} from "./ping"; + +describe("AnalyticsService", () => { + let mockPingFn: ReturnType; + let mockSendPingletsFn: ReturnType; + let analyticsService: AnalyticService; + + beforeEach(() => { + mockPingFn = vi.fn().mockResolvedValue(undefined); + mockSendPingletsFn = vi.fn().mockResolvedValue(undefined); + analyticsService = new AnalyticService({ + pingFn: mockPingFn, + sendPingletsFn: mockSendPingletsFn, + }); + }); + + describe("constructor", () => { + it("should initialize with ping functions", () => { + expect(analyticsService).toBeInstanceOf(AnalyticService); + }); + }); + + describe("sendPinglets", () => { + it("should call sendPingletsFn successfully", async () => { + await analyticsService.sendPinglets(); + expect(mockSendPingletsFn).toHaveBeenCalledOnce(); + }); + + it("should handle sendPingletsFn errors gracefully", async () => { + const consoleWarnSpy = vi + .spyOn(console, "warn") + .mockImplementation(() => undefined); + mockSendPingletsFn.mockRejectedValue(new Error("Network error")); + + await analyticsService.sendPinglets(); + + expect(mockSendPingletsFn).toHaveBeenCalledOnce(); + expect(consoleWarnSpy).toHaveBeenCalledWith( + "Send pinglets failed:", + expect.any(Error), + ); + + consoleWarnSpy.mockRestore(); + }); + }); + + describe("camera events", () => { + it("should log camera started event", async () => { + await analyticsService.logCameraStartedEvent(); + + expect(mockPingFn).toHaveBeenCalledWith({ + schemaName: "ping.sdk.ux.event", + schemaVersion: "1.0.0", + data: { + eventType: "CameraStarted", + }, + }); + }); + + it("should log camera closed event", async () => { + await analyticsService.logCameraClosedEvent(); + + expect(mockPingFn).toHaveBeenCalledWith({ + schemaName: "ping.sdk.ux.event", + schemaVersion: "1.0.0", + data: { + eventType: "CameraClosed", + }, + }); + }); + }); + + describe("help system events", () => { + it("should log help opened event", async () => { + await analyticsService.logHelpOpenedEvent(); + + expect(mockPingFn).toHaveBeenCalledWith({ + schemaName: "ping.sdk.ux.event", + schemaVersion: "1.0.0", + data: { + eventType: "HelpOpened", + }, + }); + }); + + it("should log help closed with content fully viewed", async () => { + await analyticsService.logHelpClosedEvent(true); + + expect(mockPingFn).toHaveBeenCalledWith({ + schemaName: "ping.sdk.ux.event", + schemaVersion: "1.0.0", + data: { + eventType: "HelpClosed", + helpCloseType: "ContentFullyViewed", + }, + }); + }); + + it("should log help closed with content skipped", async () => { + await analyticsService.logHelpClosedEvent(false); + + expect(mockPingFn).toHaveBeenCalledWith({ + schemaName: "ping.sdk.ux.event", + schemaVersion: "1.0.0", + data: { + eventType: "HelpClosed", + helpCloseType: "ContentSkipped", + }, + }); + }); + + it("should log help tooltip displayed", async () => { + await analyticsService.logHelpTooltipDisplayedEvent(); + + expect(mockPingFn).toHaveBeenCalledWith({ + schemaName: "ping.sdk.ux.event", + schemaVersion: "1.0.0", + data: { + eventType: "HelpTooltipDisplayed", + }, + }); + }); + }); + + describe("UI interaction events", () => { + it("should log close button clicked", async () => { + await analyticsService.logCloseButtonClickedEvent(); + + expect(mockPingFn).toHaveBeenCalledWith({ + schemaName: "ping.sdk.ux.event", + schemaVersion: "1.0.0", + data: { + eventType: "CloseButtonClicked", + }, + }); + }); + + it("should log onboarding displayed", async () => { + await analyticsService.logOnboardingDisplayedEvent(); + + expect(mockPingFn).toHaveBeenCalledWith({ + schemaName: "ping.sdk.ux.event", + schemaVersion: "1.0.0", + data: { + eventType: "OnboardingInfoDisplayed", + }, + }); + }); + }); + + describe("alert events", () => { + it("should log alert event", async () => { + await analyticsService.logAlertDisplayedEvent("NetworkError"); + + expect(mockPingFn).toHaveBeenCalledWith({ + schemaName: "ping.sdk.ux.event", + schemaVersion: "1.0.0", + data: { + eventType: "AlertDisplayed", + alertType: "NetworkError", + }, + }); + }); + }); + + describe("error message events", () => { + it("should log error message for valid error state", async () => { + await analyticsService.logErrorMessageEvent("EliminateBlur"); + + expect(mockPingFn).toHaveBeenCalledWith({ + schemaName: "ping.sdk.ux.event", + schemaVersion: "1.0.0", + data: { + eventType: "ErrorMessage", + errorMessageType: "EliminateBlur", + }, + }); + }); + }); + + describe("background events", () => { + it("should log app moved to background", async () => { + await analyticsService.logAppMovedToBackgroundEvent(); + + expect(mockPingFn).toHaveBeenCalledWith({ + schemaName: "ping.sdk.ux.event", + schemaVersion: "1.0.0", + data: { + eventType: "AppMovedToBackground", + }, + }); + }); + }); + + describe("timeout events", () => { + it("should log step timeout", async () => { + await analyticsService.logStepTimeoutEvent(); + + expect(mockPingFn).toHaveBeenCalledWith({ + schemaName: "ping.sdk.ux.event", + schemaVersion: "1.0.0", + data: { + eventType: "StepTimeout", + }, + }); + }); + }); + + describe("camera system events", () => { + const mockCamera = { + name: "MyCamera1", + facingMode: "Front", + singleShotSupported: true, + }; + + const mockVideoResolution = { + width: 1920, + height: 1080, + }; + + const mockExtractionArea = { + width: 800, + height: 600, + x: 560, + y: 240, + }; + + it("should log camera input info with extraction area", async () => { + await analyticsService.logCameraInputInfo({ + deviceId: mockCamera.name, + cameraFacing: mockCamera.facingMode as "Front" | "Back" | "Unknown", + cameraFrameWidth: mockVideoResolution.width, + cameraFrameHeight: mockVideoResolution.height, + roiWidth: mockExtractionArea.width, + roiHeight: mockExtractionArea.height, + viewPortAspectRatio: + mockExtractionArea.width / mockExtractionArea.height, + }); + + expect(mockPingFn).toHaveBeenCalledWith({ + schemaName: "ping.sdk.camera.input.info", + schemaVersion: "1.0.2", + data: { + deviceId: "MyCamera1", + cameraFacing: "Front", + cameraFrameWidth: 1920, + cameraFrameHeight: 1080, + roiWidth: 800, + roiHeight: 600, + viewPortAspectRatio: 800 / 600, + }, + }); + }); + + it("should log hardware camera info", async () => { + const cameras = [ + { + deviceId: "Front Camera 1", + cameraFacing: "Front", + focus: "Auto", + availableResolutions: undefined, + }, + { + deviceId: "Back Camera 1", + cameraFacing: "Back", + focus: "Fixed", + availableResolutions: undefined, + }, + ] as PingCameraHardwareInfoData["availableCameras"]; + + await analyticsService.logHardwareCameraInfo(cameras); + + expect(mockPingFn).toHaveBeenCalledWith({ + schemaName: "ping.hardware.camera.info", + schemaVersion: "1.0.3", + data: { + availableCameras: [ + { + deviceId: "Front Camera 1", + cameraFacing: "Front", + availableResolutions: undefined, + focus: "Auto", + }, + { + deviceId: "Back Camera 1", + cameraFacing: "Back", + availableResolutions: undefined, + focus: "Fixed", + }, + ], + }, + }); + }); + }); + + describe("camera permission events", () => { + it("should log camera permission check granted", async () => { + await analyticsService.logCameraPermissionCheck(true); + + expect(mockPingFn).toHaveBeenCalledWith({ + schemaName: "ping.sdk.camera.permission", + schemaVersion: "1.0.0", + data: { + eventType: "CameraPermissionCheck", + cameraPermissionGranted: true, + }, + }); + }); + + it("should log camera permission check denied", async () => { + await analyticsService.logCameraPermissionCheck(false); + + expect(mockPingFn).toHaveBeenCalledWith({ + schemaName: "ping.sdk.camera.permission", + schemaVersion: "1.0.0", + data: { + eventType: "CameraPermissionCheck", + cameraPermissionGranted: false, + }, + }); + }); + + it("should log camera permission request", async () => { + await analyticsService.logCameraPermissionRequest(); + + expect(mockPingFn).toHaveBeenCalledWith({ + schemaName: "ping.sdk.camera.permission", + schemaVersion: "1.0.0", + data: { + eventType: "CameraPermissionRequest", + }, + }); + }); + + it("should log camera permission user response", async () => { + await analyticsService.logCameraPermissionUserResponse(true); + + expect(mockPingFn).toHaveBeenCalledWith({ + schemaName: "ping.sdk.camera.permission", + schemaVersion: "1.0.0", + data: { + eventType: "CameraPermissionUserResponse", + cameraPermissionGranted: true, + }, + }); + }); + }); + + describe("scan conditions events", () => { + it("should log device orientation", async () => { + await analyticsService.logDeviceOrientation("Portrait"); + + expect(mockPingFn).toHaveBeenCalledWith({ + schemaName: "ping.sdk.scan.conditions", + schemaVersion: "1.0.0", + data: { + updateType: "DeviceOrientation", + deviceOrientation: "Portrait", + }, + }); + }); + + it("should log flashlight state", async () => { + await analyticsService.logFlashlightState(true); + + expect(mockPingFn).toHaveBeenCalledWith({ + schemaName: "ping.sdk.scan.conditions", + schemaVersion: "1.0.0", + data: { + updateType: "FlashlightState", + flashlightOn: true, + }, + }); + }); + }); + + describe("device info events", () => { + const mockDeviceInfo = { + userAgent: "Mozilla/5.0...", + threads: 4, + memory: 8192, + gpu: { + renderer: "WebKit WebGL", + vendor: "WebKit", + shadingLanguageVersion: "1.0", + version: "WebGL 2.0", + }, + screen: { + width: 1920, + height: 1080, + colorDepth: 24, + pixelDepth: 24, + }, + browserStorageSupport: { + localStorage: true, + sessionStorage: true, + indexedDB: true, + }, + derivedDeviceInfo: { + model: "MacBook Pro", + formFactors: ["Desktop"], + platform: "macOS", + browser: { brand: "Chrome", version: "91.0.0" }, + }, + } as unknown as PingBrowserDeviceInfoData; + + it("should log device info with known platform", async () => { + await analyticsService.logDeviceInfo(mockDeviceInfo); + + expect(mockPingFn).toHaveBeenCalledWith({ + schemaName: "ping.browser.device.info", + schemaVersion: "1.0.0", + data: { + userAgentData: undefined, + userAgent: "Mozilla/5.0...", + threads: 4, + memory: 8192, + gpu: { + renderer: "WebKit WebGL", + vendor: "WebKit", + shadingLanguageVersion: "1.0", + version: "WebGL 2.0", + }, + screen: { width: 1920, height: 1080, colorDepth: 24, pixelDepth: 24 }, + browserStorageSupport: { + localStorage: true, + sessionStorage: true, + indexedDB: true, + }, + derivedDeviceInfo: { + model: "MacBook Pro", + formFactors: ["Desktop"], + platform: "macOS", + browser: { brand: "Chrome", version: "91.0.0" }, + }, + }, + }); + }); + }); + + describe("error handling", () => { + it("should handle ping function errors gracefully", async () => { + const consoleWarnSpy = vi + .spyOn(console, "warn") + .mockImplementation(() => undefined); + mockPingFn.mockRejectedValue(new Error("Network error")); + + await analyticsService.logCameraStartedEvent(); + + expect(mockPingFn).toHaveBeenCalledOnce(); + expect(consoleWarnSpy).toHaveBeenCalledWith( + "UX analytics ping failed:", + expect.any(Error), + ); + + consoleWarnSpy.mockRestore(); + }); + }); +}); diff --git a/packages/analytics/src/AnalyticService.ts b/packages/analytics/src/AnalyticService.ts new file mode 100644 index 0000000..8c41c0f --- /dev/null +++ b/packages/analytics/src/AnalyticService.ts @@ -0,0 +1,260 @@ +/** + * Copyright (c) 2026 Microblink Ltd. All rights reserved. + */ + +import type { + PingUxEvent, + PingUxEventData, + Ping, + PingCameraHardwareInfoData, + PingCameraInputInfoData, + PingScanningConditionsData, + PingBrowserDeviceInfoData, + PingCameraPermissionData, + PingCameraPermission, +} from "./ping"; + +/** + * Analytic service + * Provides a clean interface for tracking user interactions and events + */ +export class AnalyticService { + /** + * Injected function for queing ping events. + */ + readonly #pingFn: (ping: Ping) => Promise; + /** + * Injected function for triggering sending of queued pinglets. + */ + readonly #sendPingletsFn: () => Promise; + + constructor({ + pingFn, + sendPingletsFn, + }: { + pingFn: (ping: Ping) => Promise; + sendPingletsFn: () => Promise; + }) { + this.#pingFn = pingFn; + this.#sendPingletsFn = sendPingletsFn; + } + + /** + * Safely send a ping event, handling errors gracefully + */ + async #safePing(ping: Ping) { + try { + await this.#pingFn(ping); + } catch (error) { + // Don't break user experience on analytics failures + console.warn("UX analytics ping failed:", error); + } + } + + /** + * Safely send queued pinglets, handling errors gracefully + */ + async sendPinglets() { + try { + await this.#sendPingletsFn(); + } catch (error) { + // Don't break user experience on analytics failures + console.warn("Send pinglets failed:", error); + } + } + + /** + * Create a camera permission ping + */ + #createCameraPermissionPing( + pingData: PingCameraPermissionData, + ): PingCameraPermission { + return { + schemaName: "ping.sdk.camera.permission", + schemaVersion: "1.0.0", + data: pingData, + }; + } + + /** + * Create a standardized UX event ping + */ + #createUxEventPing(pingData: PingUxEventData): PingUxEvent { + return { + schemaName: "ping.sdk.ux.event", + schemaVersion: "1.0.0", + data: pingData, + }; + } + + logCameraStartedEvent() { + return this.#safePing( + this.#createUxEventPing({ + eventType: "CameraStarted", + }), + ); + } + + logCameraClosedEvent() { + return this.#safePing( + this.#createUxEventPing({ + eventType: "CameraClosed", + }), + ); + } + + logHelpOpenedEvent() { + return this.#safePing( + this.#createUxEventPing({ + eventType: "HelpOpened", + }), + ); + } + + logHelpClosedEvent(contentFullyViewed: boolean) { + return this.#safePing( + this.#createUxEventPing({ + eventType: "HelpClosed", + helpCloseType: contentFullyViewed + ? "ContentFullyViewed" + : "ContentSkipped", + }), + ); + } + + logHelpTooltipDisplayedEvent() { + return this.#safePing( + this.#createUxEventPing({ + eventType: "HelpTooltipDisplayed", + }), + ); + } + + logCloseButtonClickedEvent() { + return this.#safePing( + this.#createUxEventPing({ + eventType: "CloseButtonClicked", + }), + ); + } + + logOnboardingDisplayedEvent() { + return this.#safePing( + this.#createUxEventPing({ + eventType: "OnboardingInfoDisplayed", + }), + ); + } + + logAlertDisplayedEvent(alertType: NonNullable) { + return this.#safePing( + this.#createUxEventPing({ + eventType: "AlertDisplayed", + alertType, + }), + ); + } + + logErrorMessageEvent(errorMessageType: PingUxEventData["errorMessageType"]) { + return this.#safePing( + this.#createUxEventPing({ + eventType: "ErrorMessage", + errorMessageType, + }), + ); + } + + logAppMovedToBackgroundEvent() { + return this.#safePing( + this.#createUxEventPing({ + eventType: "AppMovedToBackground", + }), + ); + } + + logStepTimeoutEvent() { + return this.#safePing( + this.#createUxEventPing({ + eventType: "StepTimeout", + }), + ); + } + + logCameraInputInfo(pingData: PingCameraInputInfoData) { + return this.#safePing({ + schemaName: "ping.sdk.camera.input.info", + schemaVersion: "1.0.2", + data: pingData, + }); + } + + logHardwareCameraInfo( + cameras: PingCameraHardwareInfoData["availableCameras"], + ) { + return this.#safePing({ + schemaName: "ping.hardware.camera.info", + schemaVersion: "1.0.3", + data: { + availableCameras: cameras, + }, + }); + } + + logCameraPermissionCheck(granted: boolean) { + return this.#safePing( + this.#createCameraPermissionPing({ + eventType: "CameraPermissionCheck", + cameraPermissionGranted: granted, + }), + ); + } + + logCameraPermissionRequest() { + return this.#safePing( + this.#createCameraPermissionPing({ + eventType: "CameraPermissionRequest", + }), + ); + } + + logCameraPermissionUserResponse(granted: boolean) { + return this.#safePing( + this.#createCameraPermissionPing({ + eventType: "CameraPermissionUserResponse", + cameraPermissionGranted: granted, + }), + ); + } + + logDeviceOrientation( + orientation: PingScanningConditionsData["deviceOrientation"], + ) { + return this.#safePing({ + schemaName: "ping.sdk.scan.conditions", + schemaVersion: "1.0.0", + data: { + updateType: "DeviceOrientation", + deviceOrientation: orientation, + }, + }); + } + + logFlashlightState(flashlightOn: boolean) { + return this.#safePing({ + schemaName: "ping.sdk.scan.conditions", + schemaVersion: "1.0.0", + data: { + updateType: "FlashlightState", + flashlightOn, + }, + }); + } + + logDeviceInfo(pingData: PingBrowserDeviceInfoData) { + return this.#safePing({ + schemaName: "ping.browser.device.info", + schemaVersion: "1.0.0", + data: pingData, + }); + } +} diff --git a/packages/analytics/src/ping/Ping.ts b/packages/analytics/src/ping/Ping.ts new file mode 100644 index 0000000..786c5cd --- /dev/null +++ b/packages/analytics/src/ping/Ping.ts @@ -0,0 +1,33 @@ +/** + * Copyright (c) 2026 Microblink Ltd. All rights reserved. + */ + +/* + * This file is auto-generated by a script. + * DO NOT EDIT MANUALLY. + */ + +import type { PingBrowserDeviceInfo } from "./ping.browser.device.info"; +import type { PingError } from "./ping.error"; +import type { PingCameraHardwareInfo } from "./ping.hardware.camera.info"; +import type { PingLog } from "./ping.log"; +import type { PingCameraInputInfo } from "./ping.sdk.camera.input.info"; +import type { PingCameraPermission } from "./ping.sdk.camera.permission"; +import type { PingSdkInitStart } from "./ping.sdk.init.start"; +import type { PingScanningConditions } from "./ping.sdk.scan.conditions"; +import type { PingUxEvent } from "./ping.sdk.ux.event"; +import type { PingWrapperProductInfo } from "./ping.sdk.wrapper.product"; + +export type Ping = + | PingBrowserDeviceInfo + | PingError + | PingCameraHardwareInfo + | PingLog + | PingCameraInputInfo + | PingCameraPermission + | PingSdkInitStart + | PingScanningConditions + | PingUxEvent + | PingWrapperProductInfo; + +export type SchemaName = Ping["schemaName"]; diff --git a/packages/analytics/src/ping/index.ts b/packages/analytics/src/ping/index.ts new file mode 100644 index 0000000..54399dd --- /dev/null +++ b/packages/analytics/src/ping/index.ts @@ -0,0 +1,18 @@ +/** + * Copyright (c) 2026 Microblink Ltd. All rights reserved. + */ + +export type * from "./ping.base"; + +export type * from "./ping.browser.device.info"; +export type * from "./ping.error"; +export type * from "./ping.hardware.camera.info"; +export type * from "./ping.log"; +export type * from "./ping.sdk.camera.input.info"; +export type * from "./ping.sdk.camera.permission"; +export type * from "./ping.sdk.init.start"; +export type * from "./ping.sdk.scan.conditions"; +export type * from "./ping.sdk.ux.event"; +export type * from "./ping.sdk.wrapper.product"; + +export type * from "./Ping"; diff --git a/packages/analytics/src/ping/ping.base.ts b/packages/analytics/src/ping/ping.base.ts new file mode 100644 index 0000000..ab61b43 --- /dev/null +++ b/packages/analytics/src/ping/ping.base.ts @@ -0,0 +1,22 @@ +/** + * Copyright (c) 2026 Microblink Ltd. All rights reserved. + */ + +import { SchemaName } from "./Ping"; + +type Semver = + | `${number}.${number}.${number}` + | `${number}.${number}.${number}-${string}`; + +/** Generated base structure for a ping event. */ +export interface PingBase< + TSchemaName extends SchemaName, + TSchemaVersion extends Semver = "1.0.0", + TData extends object = {}, + TSessionNumber extends number = number, +> { + schemaName: TSchemaName; + schemaVersion: TSchemaVersion; + data: TData; + sessionNumber?: TSessionNumber; +} diff --git a/packages/analytics/src/ping/ping.browser.device.info.ts b/packages/analytics/src/ping/ping.browser.device.info.ts new file mode 100644 index 0000000..f910185 --- /dev/null +++ b/packages/analytics/src/ping/ping.browser.device.info.ts @@ -0,0 +1,94 @@ +/** + * Copyright (c) 2026 Microblink Ltd. All rights reserved. + */ + +/** + * Copyright (c) Microblink. All rights reserved. + * + * AUTO-GENERATED FILE!!! DO NOT MODIFY!!! + * + * ANY UNAUTHORIZED USE OR SALE, DUPLICATION, OR DISTRIBUTION + * OF THIS PROGRAM OR ANY OF ITS PARTS, IN SOURCE OR BINARY FORMS, + * WITH OR WITHOUT MODIFICATION, WITH THE PURPOSE OF ACQUIRING + * UNLAWFUL MATERIAL OR ANY OTHER BENEFIT IS PROHIBITED! + * THIS PROGRAM IS PROTECTED BY COPYRIGHT LAWS AND YOU MAY NOT + * REVERSE ENGINEER, DECOMPILE, OR DISASSEMBLE IT. + */ + +import type { PingBase } from "./ping.base"; + +export type PingBrowserDeviceInfoData = { + userAgentData?: UserAgentData; + userAgent: string; + threads: number; + memory?: number; + gpu?: Gpu; + screen: Screen; + browserStorageSupport: BrowserStorageSupport; + derivedDeviceInfo: DerivedDeviceInfo; +}; +type UserAgentData = { + brands?: BrandsItem[]; + mobile?: boolean; + platform?: string; + architecture?: string; + bitness?: string; + formFactors?: FormFactorsItem[]; + model?: string; + platformVersion?: string; + fullVersionList?: FullVersionListItem[]; + wow64?: boolean; +}; +type Gpu = { + renderer: string; + shadingLanguageVersion: string; + vendor: string; + version: string; +}; +type Screen = { + screenWidth: number; + screenHeight: number; + devicePixelRatio: number; + physicalScreenWidth: number; + physicalScreenHeight: number; + maxTouchPoints: number; +}; +type BrowserStorageSupport = { + cookieEnabled: boolean; + localStorageEnabled: boolean; +}; +type DerivedDeviceInfo = { + model: string; + formFactors: FormFactorsItem[]; + platform: string; + browser: Browser; +}; +type BrandsItem = { + brand: string; + version: string; +}; +type FullVersionListItem = { + brand: string; + version: string; +}; +type Browser = { + brand: string; + version: string; +}; +type FormFactorsItem = + | "Desktop" + | "Automotive" + | "Mobile" + | "Tablet" + | "XR" + | "EInk" + | "Watch"; + +/** + * Ping type for ping.browser.device.info + */ +export type PingBrowserDeviceInfo = PingBase< + "ping.browser.device.info", + "1.0.0", + PingBrowserDeviceInfoData +>; diff --git a/packages/analytics/src/ping/ping.error.ts b/packages/analytics/src/ping/ping.error.ts new file mode 100644 index 0000000..fc3de26 --- /dev/null +++ b/packages/analytics/src/ping/ping.error.ts @@ -0,0 +1,30 @@ +/** + * Copyright (c) 2026 Microblink Ltd. All rights reserved. + */ + +/** + * Copyright (c) Microblink. All rights reserved. + * + * AUTO-GENERATED FILE!!! DO NOT MODIFY!!! + * + * ANY UNAUTHORIZED USE OR SALE, DUPLICATION, OR DISTRIBUTION + * OF THIS PROGRAM OR ANY OF ITS PARTS, IN SOURCE OR BINARY FORMS, + * WITH OR WITHOUT MODIFICATION, WITH THE PURPOSE OF ACQUIRING + * UNLAWFUL MATERIAL OR ANY OTHER BENEFIT IS PROHIBITED! + * THIS PROGRAM IS PROTECTED BY COPYRIGHT LAWS AND YOU MAY NOT + * REVERSE ENGINEER, DECOMPILE, OR DISASSEMBLE IT. + */ + +import type { PingBase } from "./ping.base"; + +export type PingErrorData = { + errorType: ErrorType; + errorMessage: string; + stackTrace?: string; +}; +type ErrorType = "NonFatal" | "Crash"; + +/** + * Ping type for ping.error + */ +export type PingError = PingBase<"ping.error", "1.0.0", PingErrorData>; diff --git a/packages/analytics/src/ping/ping.hardware.camera.info.ts b/packages/analytics/src/ping/ping.hardware.camera.info.ts new file mode 100644 index 0000000..ece41cf --- /dev/null +++ b/packages/analytics/src/ping/ping.hardware.camera.info.ts @@ -0,0 +1,43 @@ +/** + * Copyright (c) 2026 Microblink Ltd. All rights reserved. + */ + +/** + * Copyright (c) Microblink. All rights reserved. + * + * AUTO-GENERATED FILE!!! DO NOT MODIFY!!! + * + * ANY UNAUTHORIZED USE OR SALE, DUPLICATION, OR DISTRIBUTION + * OF THIS PROGRAM OR ANY OF ITS PARTS, IN SOURCE OR BINARY FORMS, + * WITH OR WITHOUT MODIFICATION, WITH THE PURPOSE OF ACQUIRING + * UNLAWFUL MATERIAL OR ANY OTHER BENEFIT IS PROHIBITED! + * THIS PROGRAM IS PROTECTED BY COPYRIGHT LAWS AND YOU MAY NOT + * REVERSE ENGINEER, DECOMPILE, OR DISASSEMBLE IT. + */ + +import type { PingBase } from "./ping.base"; + +export type PingCameraHardwareInfoData = { + availableCameras: AvailableCamerasItem[]; +}; +type AvailableCamerasItem = { + deviceId: string; + cameraFacing: CameraFacing; + focus?: Focus; + availableResolutions?: AvailableResolutionsItem[]; +}; +type AvailableResolutionsItem = { + width: number; + height: number; +}; +type CameraFacing = "Front" | "Back" | "Unknown"; +type Focus = "Auto" | "Fixed"; + +/** + * Ping type for ping.hardware.camera.info + */ +export type PingCameraHardwareInfo = PingBase< + "ping.hardware.camera.info", + "1.0.3", + PingCameraHardwareInfoData +>; diff --git a/packages/analytics/src/ping/ping.log.ts b/packages/analytics/src/ping/ping.log.ts new file mode 100644 index 0000000..409c442 --- /dev/null +++ b/packages/analytics/src/ping/ping.log.ts @@ -0,0 +1,29 @@ +/** + * Copyright (c) 2026 Microblink Ltd. All rights reserved. + */ + +/** + * Copyright (c) Microblink. All rights reserved. + * + * AUTO-GENERATED FILE!!! DO NOT MODIFY!!! + * + * ANY UNAUTHORIZED USE OR SALE, DUPLICATION, OR DISTRIBUTION + * OF THIS PROGRAM OR ANY OF ITS PARTS, IN SOURCE OR BINARY FORMS, + * WITH OR WITHOUT MODIFICATION, WITH THE PURPOSE OF ACQUIRING + * UNLAWFUL MATERIAL OR ANY OTHER BENEFIT IS PROHIBITED! + * THIS PROGRAM IS PROTECTED BY COPYRIGHT LAWS AND YOU MAY NOT + * REVERSE ENGINEER, DECOMPILE, OR DISASSEMBLE IT. + */ + +import type { PingBase } from "./ping.base"; + +export type PingLogData = { + logLevel: LogLevel; + logMessage: string; +}; +type LogLevel = "Info" | "Warning"; + +/** + * Ping type for ping.log + */ +export type PingLog = PingBase<"ping.log", "1.0.0", PingLogData>; diff --git a/packages/analytics/src/ping/ping.sdk.camera.input.info.ts b/packages/analytics/src/ping/ping.sdk.camera.input.info.ts new file mode 100644 index 0000000..06d36a2 --- /dev/null +++ b/packages/analytics/src/ping/ping.sdk.camera.input.info.ts @@ -0,0 +1,38 @@ +/** + * Copyright (c) 2026 Microblink Ltd. All rights reserved. + */ + +/** + * Copyright (c) Microblink. All rights reserved. + * + * AUTO-GENERATED FILE!!! DO NOT MODIFY!!! + * + * ANY UNAUTHORIZED USE OR SALE, DUPLICATION, OR DISTRIBUTION + * OF THIS PROGRAM OR ANY OF ITS PARTS, IN SOURCE OR BINARY FORMS, + * WITH OR WITHOUT MODIFICATION, WITH THE PURPOSE OF ACQUIRING + * UNLAWFUL MATERIAL OR ANY OTHER BENEFIT IS PROHIBITED! + * THIS PROGRAM IS PROTECTED BY COPYRIGHT LAWS AND YOU MAY NOT + * REVERSE ENGINEER, DECOMPILE, OR DISASSEMBLE IT. + */ + +import type { PingBase } from "./ping.base"; + +export type PingCameraInputInfoData = { + deviceId: string; + cameraFacing: CameraFacing; + cameraFrameWidth: number; + cameraFrameHeight: number; + roiWidth: number; + roiHeight: number; + viewPortAspectRatio: number; +}; +type CameraFacing = "Front" | "Back" | "Unknown"; + +/** + * Ping type for ping.sdk.camera.input.info + */ +export type PingCameraInputInfo = PingBase< + "ping.sdk.camera.input.info", + "1.0.2", + PingCameraInputInfoData +>; diff --git a/packages/analytics/src/ping/ping.sdk.camera.permission.ts b/packages/analytics/src/ping/ping.sdk.camera.permission.ts new file mode 100644 index 0000000..8ddf132 --- /dev/null +++ b/packages/analytics/src/ping/ping.sdk.camera.permission.ts @@ -0,0 +1,36 @@ +/** + * Copyright (c) 2026 Microblink Ltd. All rights reserved. + */ + +/** + * Copyright (c) Microblink. All rights reserved. + * + * AUTO-GENERATED FILE!!! DO NOT MODIFY!!! + * + * ANY UNAUTHORIZED USE OR SALE, DUPLICATION, OR DISTRIBUTION + * OF THIS PROGRAM OR ANY OF ITS PARTS, IN SOURCE OR BINARY FORMS, + * WITH OR WITHOUT MODIFICATION, WITH THE PURPOSE OF ACQUIRING + * UNLAWFUL MATERIAL OR ANY OTHER BENEFIT IS PROHIBITED! + * THIS PROGRAM IS PROTECTED BY COPYRIGHT LAWS AND YOU MAY NOT + * REVERSE ENGINEER, DECOMPILE, OR DISASSEMBLE IT. + */ + +import type { PingBase } from "./ping.base"; + +export type PingCameraPermissionData = { + eventType: EventType; + cameraPermissionGranted?: boolean; +}; +type EventType = + | "CameraPermissionCheck" + | "CameraPermissionRequest" + | "CameraPermissionUserResponse"; + +/** + * Ping type for ping.sdk.camera.permission + */ +export type PingCameraPermission = PingBase< + "ping.sdk.camera.permission", + "1.0.0", + PingCameraPermissionData +>; diff --git a/packages/analytics/src/ping/ping.sdk.init.start.ts b/packages/analytics/src/ping/ping.sdk.init.start.ts new file mode 100644 index 0000000..a3c6305 --- /dev/null +++ b/packages/analytics/src/ping/ping.sdk.init.start.ts @@ -0,0 +1,60 @@ +/** + * Copyright (c) 2026 Microblink Ltd. All rights reserved. + */ + +/** + * Copyright (c) Microblink. All rights reserved. + * + * AUTO-GENERATED FILE!!! DO NOT MODIFY!!! + * + * ANY UNAUTHORIZED USE OR SALE, DUPLICATION, OR DISTRIBUTION + * OF THIS PROGRAM OR ANY OF ITS PARTS, IN SOURCE OR BINARY FORMS, + * WITH OR WITHOUT MODIFICATION, WITH THE PURPOSE OF ACQUIRING + * UNLAWFUL MATERIAL OR ANY OTHER BENEFIT IS PROHIBITED! + * THIS PROGRAM IS PROTECTED BY COPYRIGHT LAWS AND YOU MAY NOT + * REVERSE ENGINEER, DECOMPILE, OR DISASSEMBLE IT. + */ + +import type { PingBase } from "./ping.base"; + +export type PingSdkInitStartData = { + product: Product; + platform: Platform; + platformDetails?: PlatformDetails; + packageName: string; + userId: string; +}; +type Product = + | "BlinkCard" + | "BlinkID" + | "BlinkInput" + | "Capture" + | "DocumentVerification" + | "Pdf417Mobi" + | "PhotoPay"; +type Platform = + | "iOS" + | "Android" + | "Emscripten" + | "MacOS" + | "Linux" + | "Windows"; +type PlatformDetails = + | "basic" + | "advanced" + | "advanced-threads" + | "full-basic" + | "full-advanced" + | "full-advanced-threads" + | "lightweight-basic" + | "lightweight-advanced" + | "lightweight-advanced-threads"; + +/** + * Ping type for ping.sdk.init.start + */ +export type PingSdkInitStart = PingBase< + "ping.sdk.init.start", + "1.1.0", + PingSdkInitStartData +>; diff --git a/packages/analytics/src/ping/ping.sdk.scan.conditions.ts b/packages/analytics/src/ping/ping.sdk.scan.conditions.ts new file mode 100644 index 0000000..5405a58 --- /dev/null +++ b/packages/analytics/src/ping/ping.sdk.scan.conditions.ts @@ -0,0 +1,39 @@ +/** + * Copyright (c) 2026 Microblink Ltd. All rights reserved. + */ + +/** + * Copyright (c) Microblink. All rights reserved. + * + * AUTO-GENERATED FILE!!! DO NOT MODIFY!!! + * + * ANY UNAUTHORIZED USE OR SALE, DUPLICATION, OR DISTRIBUTION + * OF THIS PROGRAM OR ANY OF ITS PARTS, IN SOURCE OR BINARY FORMS, + * WITH OR WITHOUT MODIFICATION, WITH THE PURPOSE OF ACQUIRING + * UNLAWFUL MATERIAL OR ANY OTHER BENEFIT IS PROHIBITED! + * THIS PROGRAM IS PROTECTED BY COPYRIGHT LAWS AND YOU MAY NOT + * REVERSE ENGINEER, DECOMPILE, OR DISASSEMBLE IT. + */ + +import type { PingBase } from "./ping.base"; + +export type PingScanningConditionsData = { + updateType: UpdateType; + deviceOrientation?: DeviceOrientation; + flashlightOn?: boolean; +}; +type UpdateType = "DeviceOrientation" | "FlashlightState"; +type DeviceOrientation = + | "Portrait" + | "LandscapeRight" + | "LandscapeLeft" + | "PortraitUpside"; + +/** + * Ping type for ping.sdk.scan.conditions + */ +export type PingScanningConditions = PingBase< + "ping.sdk.scan.conditions", + "1.0.0", + PingScanningConditionsData +>; diff --git a/packages/analytics/src/ping/ping.sdk.ux.event.ts b/packages/analytics/src/ping/ping.sdk.ux.event.ts new file mode 100644 index 0000000..8b7801e --- /dev/null +++ b/packages/analytics/src/ping/ping.sdk.ux.event.ts @@ -0,0 +1,63 @@ +/** + * Copyright (c) 2026 Microblink Ltd. All rights reserved. + */ + +/** + * Copyright (c) Microblink. All rights reserved. + * + * AUTO-GENERATED FILE!!! DO NOT MODIFY!!! + * + * ANY UNAUTHORIZED USE OR SALE, DUPLICATION, OR DISTRIBUTION + * OF THIS PROGRAM OR ANY OF ITS PARTS, IN SOURCE OR BINARY FORMS, + * WITH OR WITHOUT MODIFICATION, WITH THE PURPOSE OF ACQUIRING + * UNLAWFUL MATERIAL OR ANY OTHER BENEFIT IS PROHIBITED! + * THIS PROGRAM IS PROTECTED BY COPYRIGHT LAWS AND YOU MAY NOT + * REVERSE ENGINEER, DECOMPILE, OR DISASSEMBLE IT. + */ + +import type { PingBase } from "./ping.base"; + +export type PingUxEventData = { + eventType: EventType; + errorMessageType?: ErrorMessageType; + alertType?: AlertType; + helpCloseType?: HelpCloseType; +}; +type EventType = + | "CameraStarted" + | "CameraClosed" + | "OnboardingInfoDisplayed" + | "CloseButtonClicked" + | "HelpTooltipDisplayed" + | "HelpOpened" + | "HelpClosed" + | "AlertDisplayed" + | "ErrorMessage" + | "StepTimeout" + | "AppMovedToBackground"; +type ErrorMessageType = + | "MoveCloser" + | "MoveFarther" + | "KeepVisible" + | "FlipSide" + | "AlignDocument" + | "MoveFromEdge" + | "IncreaseLighting" + | "DecreaseLighting" + | "EliminateBlur" + | "EliminateGlare"; +type AlertType = + | "InvalidLicenseKey" + | "NetworkError" + | "DocumentClassNotAllowed" + | "StepTimeout"; +type HelpCloseType = "ContentSkipped" | "ContentFullyViewed"; + +/** + * Ping type for ping.sdk.ux.event + */ +export type PingUxEvent = PingBase< + "ping.sdk.ux.event", + "1.0.0", + PingUxEventData +>; diff --git a/packages/analytics/src/ping/ping.sdk.wrapper.product.ts b/packages/analytics/src/ping/ping.sdk.wrapper.product.ts new file mode 100644 index 0000000..d1c2b10 --- /dev/null +++ b/packages/analytics/src/ping/ping.sdk.wrapper.product.ts @@ -0,0 +1,36 @@ +/** + * Copyright (c) 2026 Microblink Ltd. All rights reserved. + */ + +/** + * Copyright (c) Microblink. All rights reserved. + * + * AUTO-GENERATED FILE!!! DO NOT MODIFY!!! + * + * ANY UNAUTHORIZED USE OR SALE, DUPLICATION, OR DISTRIBUTION + * OF THIS PROGRAM OR ANY OF ITS PARTS, IN SOURCE OR BINARY FORMS, + * WITH OR WITHOUT MODIFICATION, WITH THE PURPOSE OF ACQUIRING + * UNLAWFUL MATERIAL OR ANY OTHER BENEFIT IS PROHIBITED! + * THIS PROGRAM IS PROTECTED BY COPYRIGHT LAWS AND YOU MAY NOT + * REVERSE ENGINEER, DECOMPILE, OR DISASSEMBLE IT. + */ + +import type { PingBase } from "./ping.base"; + +export type PingWrapperProductInfoData = { + wrapperProduct: WrapperProduct; + correlationId?: string; +}; +type WrapperProduct = + | "CrossplatformFlutter" + | "CrossplatformReactNative" + | "IdentityVerification"; + +/** + * Ping type for ping.sdk.wrapper.product + */ +export type PingWrapperProductInfo = PingBase< + "ping.sdk.wrapper.product", + "1.0.0", + PingWrapperProductInfoData +>; diff --git a/packages/analytics/tsconfig.json b/packages/analytics/tsconfig.json new file mode 100644 index 0000000..f1963da --- /dev/null +++ b/packages/analytics/tsconfig.json @@ -0,0 +1,10 @@ +{ + "extends": "@microblink/tsconfig/base.json", + "compilerOptions": { + "emitDeclarationOnly": false, + "outDir": "dist", + "declarationDir": "types", + "rootDir": "src" + }, + "include": ["src"] +} diff --git a/packages/analytics/typedoc.json b/packages/analytics/typedoc.json new file mode 100644 index 0000000..db96aa1 --- /dev/null +++ b/packages/analytics/typedoc.json @@ -0,0 +1,7 @@ +{ + "extends": "../../typedoc.base.json", + "entryPoints": ["./src/AnalyticService.ts", "./src/ping/index.ts"], + "out": "docs", + "tsconfig": "./tsconfig.json", + "gitRemote": "https://github.com/microblink/web-sdks/tree/main/packages/analytics" +} \ No newline at end of file diff --git a/packages/blinkcard-core/.eslintrc.cjs b/packages/blinkcard-core/.eslintrc.cjs new file mode 100644 index 0000000..a386518 --- /dev/null +++ b/packages/blinkcard-core/.eslintrc.cjs @@ -0,0 +1,52 @@ +const { defineConfig } = require("eslint-define-config"); + +module.exports = defineConfig({ + root: true, + + parserOptions: { + ecmaVersion: "2022", + sourceType: "module", + }, + + overrides: [ + { + files: ["src/**/*.ts"], + plugins: ["@typescript-eslint"], + parser: "@typescript-eslint/parser", + // have to duplicate in override... + rules: { + "@typescript-eslint/no-unused-vars": 0, + // the following two are causing errors in vscode. See: + // https://typescript-eslint.io/linting/troubleshooting/#changes-to-one-file-are-not-reflected-when-linting-other-files-in-my-ide + "@typescript-eslint/no-unsafe-assignment": 0, + "@typescript-eslint/no-unsafe-member-access": 0, + // only use in tsx + "@typescript-eslint/no-non-null-assertion": 0, + "@typescript-eslint/consistent-type-definitions": 0, + "prefer-const": 0, + }, + parserOptions: { + tsconfigRootDir: __dirname, + project: ["./tsconfig.json"], + }, + extends: [ + "eslint:recommended", + "plugin:@typescript-eslint/recommended-type-checked", + "plugin:@typescript-eslint/stylistic-type-checked", + "prettier", + ], + }, + { + files: ["**/*.{js,mjs,cjs}"], + env: { + node: true, + browser: true, + es2021: true, + }, + extends: ["eslint:recommended"], + rules: { + "no-unused-vars": 0, + }, + }, + ], +}); diff --git a/packages/blinkcard-core/.gitignore b/packages/blinkcard-core/.gitignore new file mode 100644 index 0000000..1a09bde --- /dev/null +++ b/packages/blinkcard-core/.gitignore @@ -0,0 +1,3 @@ +types +public/resources/** +publish diff --git a/packages/blinkcard-core/CHANGELOG.md b/packages/blinkcard-core/CHANGELOG.md new file mode 100644 index 0000000..3236129 --- /dev/null +++ b/packages/blinkcard-core/CHANGELOG.md @@ -0,0 +1,14 @@ +# @microblink/blinkcard-core + +## 3000.0.0 + +### Major Changes + +- Major release of the BlinkCard core package. + +### Patch Changes + +- Updated dependencies + - @microblink/blinkcard-wasm@3000.0.0 + - @microblink/blinkcard-worker@3000.0.0 + - @microblink/core-common@1.0.0 diff --git a/packages/blinkcard-core/README.md b/packages/blinkcard-core/README.md new file mode 100644 index 0000000..1ac78de --- /dev/null +++ b/packages/blinkcard-core/README.md @@ -0,0 +1,71 @@ +# @microblink/blinkcard-core + +This package provides the core BlinkCard functionality for browser-based card scanning. It exposes a low-level API for initializing and controlling the BlinkCard engine, managing sessions, and processing images. It can be used directly by end users for advanced or custom integrations, or as a dependency of higher-level packages such as [`@microblink/blinkcard`](https://www.npmjs.com/package/@microblink/blinkcard). + +## Overview + +- Provides the main API for BlinkCard scanning and recognition in the browser. +- Handles initialization, licensing, and session management. +- Can be used directly by end users for advanced use cases. +- Used internally by [`@microblink/blinkcard`](https://www.npmjs.com/package/@microblink/blinkcard). + +## Installation + +Install from npm using your preferred package manager: + +```sh +npm install @microblink/blinkcard-core +# or +yarn add @microblink/blinkcard-core +# or +pnpm add @microblink/blinkcard-core +``` + +## Usage + +You can use `@microblink/blinkcard-core` directly in your project for custom integrations. See the example apps in the `apps/examples` directory in the GitHub repository for usage details. + +## Environment & Setup + +- ESM-only: Use in browsers with a bundler (e.g., Vite) or via [`