@jaak.ai/stamps 2.3.0-dev.1 → 2.3.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/cjs/jaak-stamps.cjs.entry.js +13 -12
- package/dist/cjs/jaak-stamps.cjs.entry.js.map +1 -1
- package/dist/cjs/jaak-stamps.entry.cjs.js.map +1 -1
- package/dist/collection/components/my-component/my-component.js +9 -8
- package/dist/collection/components/my-component/my-component.js.map +1 -1
- package/dist/collection/services/factories/DeviceStrategyFactory.js +3 -3
- package/dist/collection/services/factories/DeviceStrategyFactory.js.map +1 -1
- package/dist/collection/services/strategies/IOSSafariStrategy.js +1 -1
- package/dist/collection/services/strategies/IOSSafariStrategy.js.map +1 -1
- package/dist/components/jaak-stamps.js +13 -12
- package/dist/components/jaak-stamps.js.map +1 -1
- package/dist/esm/jaak-stamps.entry.js +13 -12
- package/dist/esm/jaak-stamps.entry.js.map +1 -1
- package/dist/jaak-stamps-webcomponent/jaak-stamps-webcomponent.esm.js +1 -1
- package/dist/jaak-stamps-webcomponent/jaak-stamps.entry.esm.js.map +1 -1
- package/dist/jaak-stamps-webcomponent/p-e91f65fd.entry.js +7 -0
- package/dist/jaak-stamps-webcomponent/p-e91f65fd.entry.js.map +1 -0
- package/package.json +1 -1
- package/dist/jaak-stamps-webcomponent/p-04f57d50.entry.js +0 -7
- package/dist/jaak-stamps-webcomponent/p-04f57d50.entry.js.map +0 -1
|
@@ -736,7 +736,7 @@ class HighPerformanceDeviceStrategy {
|
|
|
736
736
|
class IOSSafariStrategy {
|
|
737
737
|
getDeviceInfo() {
|
|
738
738
|
return {
|
|
739
|
-
estimatedRAM: 3,
|
|
739
|
+
estimatedRAM: 3,
|
|
740
740
|
isLowMemory: true,
|
|
741
741
|
isSlowConnection: false
|
|
742
742
|
};
|
|
@@ -764,9 +764,9 @@ class DeviceStrategyFactory {
|
|
|
764
764
|
static createStrategy() {
|
|
765
765
|
const nav = navigator;
|
|
766
766
|
const ua = navigator.userAgent;
|
|
767
|
-
// iOS
|
|
768
|
-
const
|
|
769
|
-
if (
|
|
767
|
+
// All iOS browsers use WebKit, which has memory constraints
|
|
768
|
+
const isIOS = /iPad|iPhone|iPod/.test(ua);
|
|
769
|
+
if (isIOS) {
|
|
770
770
|
return new IOSSafariStrategy();
|
|
771
771
|
}
|
|
772
772
|
const memory = nav.deviceMemory || nav.hardwareConcurrency || 4;
|
|
@@ -18913,10 +18913,11 @@ const JaakStamps = class {
|
|
|
18913
18913
|
if (!window.ort) {
|
|
18914
18914
|
this.updateStatus('Preparando herramientas...', 'Configurando funciones de captura', 'initializing');
|
|
18915
18915
|
const script = document.createElement('script');
|
|
18916
|
-
// iOS
|
|
18916
|
+
// iOS devices use WASM-only build to prevent memory issues (WebKit 26+ bug)
|
|
18917
|
+
// All iOS browsers use WebKit, so this applies to Safari, Chrome, Firefox, etc.
|
|
18917
18918
|
const ua = navigator.userAgent;
|
|
18918
|
-
const
|
|
18919
|
-
if (
|
|
18919
|
+
const isIOS = /iPad|iPhone|iPod/.test(ua);
|
|
18920
|
+
if (isIOS) {
|
|
18920
18921
|
script.src = 'https://cdn.jsdelivr.net/npm/onnxruntime-web@1.23.0/dist/ort.wasm.min.js';
|
|
18921
18922
|
}
|
|
18922
18923
|
else {
|
|
@@ -18925,8 +18926,8 @@ const JaakStamps = class {
|
|
|
18925
18926
|
document.head.appendChild(script);
|
|
18926
18927
|
await new Promise((resolve) => {
|
|
18927
18928
|
script.onload = () => {
|
|
18928
|
-
// Configure ONNX for iOS
|
|
18929
|
-
if (
|
|
18929
|
+
// Configure ONNX for iOS low memory mode
|
|
18930
|
+
if (isIOS && window.ort?.env) {
|
|
18930
18931
|
const ort = window.ort;
|
|
18931
18932
|
ort.env.wasm.simd = false;
|
|
18932
18933
|
ort.env.wasm.numThreads = 1;
|
|
@@ -19788,7 +19789,7 @@ const JaakStamps = class {
|
|
|
19788
19789
|
isCapturing: false
|
|
19789
19790
|
};
|
|
19790
19791
|
const cameraInfo = this.cameraInfoWithAutofocus;
|
|
19791
|
-
return (h("div", { key: '
|
|
19792
|
+
return (h("div", { key: 'c5af80713fb108ab73d086f2acbdd11277d7d52c', class: "detector-container" }, !this.licenseValid && this.licenseError && (h("div", { key: '99c886b52f58e667f76dce00f09828b9962b3606', class: "license-error-container" }, h("div", { key: 'ffd643ef41b3a4b1aa8f40075232a1d70695d566', class: "license-error-card" }, h("svg", { key: '90e628f4e6e20ac8b27560833ada7486aac1c9fb', class: "license-error-icon", width: "64", height: "64", viewBox: "0 0 24 24", fill: "none", xmlns: "http://www.w3.org/2000/svg" }, h("path", { key: 'cb442fe342c6c0ffb50dfcda42d0af43adedf143', d: "M12 22C12 22 20 18 20 12V5L12 2L4 5V12C4 18 12 22 12 22Z", stroke: "currentColor", "stroke-width": "2", "stroke-linecap": "round", "stroke-linejoin": "round" }), h("path", { key: '6b29651b70273f585d9870e71811c0cdb57ea659', d: "M12 8V12", stroke: "currentColor", "stroke-width": "2", "stroke-linecap": "round" }), h("circle", { key: '9ec1e61c3bc9e6f7046a49e45e7ef87880d8a443', cx: "12", cy: "16", r: "0.5", fill: "currentColor", stroke: "currentColor", "stroke-width": "1" })), h("h2", { key: '56de8037a70da2c0b185029d4a9da0c935fd8c2b', class: "license-error-title" }, "Licencia Requerida"), h("p", { key: 'b6634818db630b62c8a5aa6152adc8e6da5f329f', class: "license-error-message" }, this.licenseError), h("p", { key: '8c0b404805c2515912416b9a62d66680e6d4b411', class: "license-error-help" }, "Contacte a soporte: ", h("a", { key: '1cd69e09c282353548ad9b14985054e47b6ff218', href: "mailto:support@jaak.ai" }, "support@jaak.ai")), h("div", { key: 'c2d13002c8f91a35b647199c77eb78b5643316df', class: "license-error-footer" }, "JAAK Stamps")))), this.licenseValid && (h("div", { key: '094f1c85b06758399520cb85a461e1af755e3d45', class: "video-container" }, h("video", { key: 'e7973937fa0d77c9793e984d063ec29a80d464eb', ref: el => this.videoRef = el, autoplay: true, muted: true, playsinline: true, class: this.shouldMirrorVideo ? 'mirror' : '', style: { display: captureState.isVideoActive ? 'block' : 'none' } }), h("div", { key: 'fb86b9eb362e13902d31803c187f5d2b6c5ac664', ref: el => this.detectionContainer = el, class: `detection-overlay ${this.shouldMirrorVideo ? 'mirror' : ''}` }, this.debug && this.detectionBoxes.map((box, index) => (h("div", { key: index, class: "detection-box", style: {
|
|
19792
19793
|
position: 'absolute',
|
|
19793
19794
|
left: `${box.x}px`,
|
|
19794
19795
|
top: `${box.y}px`,
|
|
@@ -19797,9 +19798,9 @@ const JaakStamps = class {
|
|
|
19797
19798
|
border: '2px solid #32406C',
|
|
19798
19799
|
pointerEvents: 'none',
|
|
19799
19800
|
boxSizing: 'border-box'
|
|
19800
|
-
} })))), this.isMaskReady && (h("div", { key: '
|
|
19801
|
+
} })))), this.isMaskReady && (h("div", { key: '28a8d52ace75ee2dc3f4cd31275f2feae0db31e3', class: "overlay-mask" }, h("div", { key: '16c956f26a514c67ae178da5db2c0d19b53acdac', class: "card-outline" }, h("div", { key: '578f111f358c0b66968b389f99235d1361ff035c', class: "side side-top" }), h("div", { key: 'e7854fd3363f340fd2c832815e7c8aaf8935e5f4', class: "side side-right" }), h("div", { key: 'c6f58f1c03506ec8920b914b76679730d1944b0e', class: "side side-bottom" }), h("div", { key: 'a1af9d6777819d2c941ff99b985c3430d673e534', class: "side side-left" })), !captureState.showFlipAnimation && !captureState.showSuccessAnimation && (h("div", { key: 'fc9ec8cf13eb9b25140ebb9cfddd6636dc3b6e99', class: `guide-text ${this.showPerformanceMessage ? 'performance-warning-text' : ''}` }, this.getGuideText(captureState.step))), captureState.step === 'back' && !captureState.showFlipAnimation && !captureState.showSuccessAnimation && (h("div", { key: '078ce12f5f2d24928d3f66eedac97f8c4bae3717', class: "back-capture-section" }, h("div", { key: '9bf0528cc9fc691c212cf413bafdfeb999b47682', class: "back-capture-buttons" }, (!this.useDocumentDetector || this.performanceDegradedMode || this.showManualCaptureButton) && (h("button", { key: '8d5613bda9e823293181f4551dfc5a49683a0e3e', class: "capture-button primary-button", onClick: () => this.takeManualScreenshot(), type: "button", disabled: this.processingButton !== null }, this.processingButton === 'capture-back' && (h("span", { key: '19909120ab9576d4b820e528c1456f8ba5f17fb9', class: "button-spinner" })), "Capturar Reverso")), h("button", { key: '6e1cfac4e73ace6a2e59ed601e82c3f5b2770681', class: "skip-button", onClick: () => this.skipBackCapture(), type: "button", disabled: this.processingButton !== null }, this.processingButton === 'skip-back' && (h("span", { key: '4aa6846d76295a428185ef3a83d15554eb2d9d00', class: "button-spinner" })), this.enableBackDocumentTimer && this.backDocumentTimerRemaining > 0
|
|
19801
19802
|
? `Saltar reverso (${this.backDocumentTimerRemaining}s)`
|
|
19802
|
-
: 'Saltar reverso')))), captureState.isVideoActive && (h("div", { key: '
|
|
19803
|
+
: 'Saltar reverso')))), captureState.isVideoActive && (h("div", { key: '1c2ca195f159238c1b234e97dd3871d0a1caa3c8', class: "camera-controls" }, h("button", { key: '085795c9083606fde64aeb211c242c031ebaf66a', class: `camera-selector-button ${this.isSwitchingCamera ? 'loading' : ''}`, onClick: () => this.toggleCameraSelector(), type: "button", title: "Seleccionar c\u00E1mara", disabled: this.isSwitchingCamera }, this.isSwitchingCamera ? (h("div", { class: "button-spinner" })) : ('Cámaras')))), this.showCameraSelector && cameraInfo.availableCameras.length > 0 && (h("div", { key: 'e153c9e786afc0e911c32056351fa358eca45d21', class: "camera-selector-dropdown" }, h("div", { key: 'cb611c0d0b3170da382cb54895888d465ac4bd0a', class: "camera-selector-header" }, h("span", { key: '200f7cdf43ec10163e573fbc00b077d75cc703ae' }, "Seleccionar C\u00E1mara"), h("button", { key: '86cd2942c5a499053e64d2432dfbaa2bf9612777', class: "close-selector", onClick: () => this.toggleCameraSelector(), type: "button" }, "\u00D7")), h("div", { key: '1085775e191c43105ac4c645bb8fa227f1a230f5', class: "camera-list" }, cameraInfo.availableCameras.map((camera) => (h("button", { key: camera.id, class: `camera-option ${cameraInfo.selectedCameraId === camera.id ? 'selected' : ''}`, onClick: () => this.handleCameraSwitch(camera.id), type: "button" }, h("span", { class: "camera-label" }, camera.label || `Cámara ${cameraInfo.availableCameras.indexOf(camera) + 1}`, camera.hasAutofocus && (h("span", { class: "autofocus-icon", title: "Autofoco disponible" }, "\u29BF"))), cameraInfo.selectedCameraId === camera.id && (h("span", { class: "selected-indicator" }, "\u2713")))))), h("div", { key: 'b7465daa8357fce5192ba4800b03fc200e065145', class: "device-info" }, h("small", { key: '2c824e7585afd324cefd071cdda380f3df5ada1b' }, "Dispositivo: ", cameraInfo.deviceType)))), this.showManualCaptureButton && captureState.step === 'front' && !captureState.showFlipAnimation && !captureState.showSuccessAnimation && (h("div", { key: '703f54145582191eaddcecd22a718dd72e16f977', class: "manual-capture-section" }, h("button", { key: 'dcbaa7e780c4bdb0703653e25146b17248a2d8c9', class: "manual-capture-button", onClick: () => this.takeManualScreenshot(), type: "button", disabled: this.processingButton !== null }, this.processingButton === 'capture-front' && (h("span", { key: 'cb989324a41f502ae740941ad75e6240051d8273', class: "button-spinner" })), "Capturar Frente"))))), captureState.isCapturing && (h("div", { key: 'c3567ccbd287c39f72cbca897e5f643c68624b5e', class: "capture-animation" })), captureState.showFlipAnimation && (h("div", { key: 'b16f56f7fc7c710a4b41760515b2b8054d2aad4c', class: "flip-animation" }, h("div", { key: 'df905809f04bece3856545f8a6a1dcce89377377', class: "id-card-icon" }), h("div", { key: 'daa09f264bf3708e535a3be580b86145568d4f66', class: "flip-text" }, "\u00A1Voltea tu identificaci\u00F3n!"))), captureState.showSuccessAnimation && (h("div", { key: '1be7277ef588b42060808b575670872a6aa08925', class: "success-animation" }, h("div", { key: 'ce18848121423499a4bc7b2e95586f3a01bc6ceb', class: "check-icon" }), h("div", { key: '2e2ae20c3e4bffbf3ec45f2fd7016a485ea380c1', class: "success-text" }, "\u00A1Proceso completado!"))), h("div", { key: '951f37ba2b6366aa44e15c1dcf17b2ec6975131d', class: `component-status status-${this.currentStatus.type}` }, (this.currentStatus.type === 'loading' || this.currentStatus.type === 'initializing') && (h("div", { key: '1718aa68ed5db592183696bc212c7066f35bf789', class: "status-spinner" })), h("div", { key: '45bf0d9ee7786578b34d25623667ee8336720270', class: "status-content" }, h("div", { key: '4fa2c1f9ddc62981cefbd63c19e04d14a503a406', class: "status-message" }, this.currentStatus.message), this.currentStatus.description && (h("div", { key: '7f38fb0096a15467a63362979137981e84df55f9', class: "status-description" }, this.currentStatus.description)))), this.debug && (h("div", { key: '692e49518f3f78960b74f47741f2051e95ce9280', class: "performance-monitor" }, h("div", { key: 'be9f96048e16510203d8abc3b2b09ea9a0e91fe1', class: "performance-expanded" }, h("div", { key: 'ca19a5467a8bba02be34e3515af3f92839a4397a', class: "metrics-row" }, h("div", { key: '54a6b187da25a3a6af0c8fbfc023fb16b45bb606', class: "metric-compact" }, h("span", { key: '52b9bd1bbb8542011139b4556af213f64cc62c1f', class: "metric-label" }, "FPS"), h("span", { key: 'eff3acd45c407866e9c67205a4b4f0727b47afc8', class: `metric-value ${this.performanceData.fps < 15 ? 'warning' : this.performanceData.fps < 10 ? 'danger' : 'good'}` }, this.performanceData.fps)), h("div", { key: 'fad4f7c5603ba7c2a95544d37f9d4b61c1840dca', class: "metric-compact" }, h("span", { key: 'e01386e6898c3f036f66795e71e65dad4d11366a', class: "metric-label" }, "MEM"), h("span", { key: '71cb13b49656c869be920080f7b53ce2e709a4c0', class: `metric-value ${this.performanceData.memoryUsage > 100 ? 'warning' : this.performanceData.memoryUsage > 200 ? 'danger' : 'good'}` }, this.performanceData.memoryUsage, "MB"))), h("div", { key: '61fa2c277a2226f68d9dc036450dc086a1409b62', class: "metrics-row" }, h("div", { key: '752052d1cdc68a5d65c3ec3f0b85241527d251ae', class: "metric-compact" }, h("span", { key: 'de5fae8f627df6347e5569d31433a96476bba22d', class: "metric-label" }, "INF"), h("span", { key: '841c1a1b42e63e9fc4c56c72b54e07e47997f8be', class: `metric-value ${this.performanceData.inferenceTime > 100 ? 'warning' : this.performanceData.inferenceTime > 200 ? 'danger' : 'good'}` }, this.performanceData.inferenceTime, "ms")), h("div", { key: '194d01303155cda7b58a3bca1bd34795eac31556', class: "metric-compact" }, h("span", { key: '73f023e1de8b6fbc8976bc3fe1d9655d3d5f3c92', class: "metric-label" }, "FRAME"), h("span", { key: 'ddb8d7fa99b83f477bd8cbfe4ca856d2baa7a493', class: `metric-value ${this.performanceData.frameProcessingTime > 50 ? 'warning' : this.performanceData.frameProcessingTime > 100 ? 'danger' : 'good'}` }, this.performanceData.frameProcessingTime, "ms"))), h("div", { key: '37eb5780cd09e3c056e7094b6b028789529112e3', class: "metrics-row" }, h("div", { key: '236828977e1a634fddda1fef079c7780e469b815', class: "metric-compact" }, h("span", { key: 'd704dd8ba1e2080159a932c87208d2747feeb030', class: "metric-label" }, "DET"), h("span", { key: 'e0ceaf4cc91c00835bf92fdd3744a26958f39105', class: "metric-value good" }, this.performanceData.successfulDetections, "/", this.performanceData.totalDetections)), h("div", { key: '96ad9e60657306f20efc285fd6eb5a83c3b8ee32', class: "metric-compact" }, h("span", { key: '25e0ea0b4f16118b0bf7b9b974997b9bf832d2f8', class: "metric-label" }, "RATE"), h("span", { key: '3f6f5370611d6fa6a927bc8ec1e03d0c262a3466', class: `metric-value ${this.performanceData.detectionRate < 30 ? 'danger' : this.performanceData.detectionRate < 60 ? 'warning' : 'good'}` }, this.performanceData.detectionRate, "%")))))), h("div", { key: '429a70ff02a2a2de127cb6cfe3426df1fdc4bbae', class: "watermark" }, h("img", { key: 'cc4174740e58367b2e66b6029dcca8404a3dccee', src: "https://storage.googleapis.com/jaak-static/commons/powered-by-jaak.png", alt: "Powered by Jaak" }))))));
|
|
19803
19804
|
}
|
|
19804
19805
|
// Utility methods
|
|
19805
19806
|
updateDetectionBoxes(boxes) {
|