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