@scandit/web-datacapture-parser 8.4.1 → 8.5.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.
Files changed (82) hide show
  1. package/THIRD_PARTY.txt +45 -2
  2. package/build/js/ParsedData-yvvQiOan.d.ts +32 -0
  3. package/build/js/Parser-B40VkgNk.d.ts +25 -0
  4. package/build/js/ParserDataFormat-Cvg4icRY.d.ts +12 -0
  5. package/build/js/ParserInterfaceProxy-Bxsr1X9T.js +1 -0
  6. package/build/js/ParserLoader-BgJeKji6.js +1 -0
  7. package/build/js/ParserSettings-DQLtovTC.d.ts +14 -0
  8. package/build/js/{global.d.d.ts → global.d.ts} +7 -9
  9. package/build/js/index.d.ts +5 -7
  10. package/build/js/index.js +1 -1
  11. package/build/js/moduleLoader.d.ts +5 -4
  12. package/build/js/moduleLoader.js +1 -1
  13. package/build/js/parser/ParsedData.d.ts +2 -31
  14. package/build/js/parser/ParsedData.js +1 -1
  15. package/build/js/parser/Parser.d.ts +2 -25
  16. package/build/js/parser/Parser.js +1 -1
  17. package/build/js/parser/ParserDataFormat.d.ts +2 -11
  18. package/build/js/parser/ParserDataFormat.js +1 -1
  19. package/build/js/parser/index.d.ts +4 -6
  20. package/build/js/parser/index.js +1 -1
  21. package/build/js/parser/private/ParserInterfaceProxy.d.ts +12 -17
  22. package/build/js/parser/private/ParserInterfaceProxy.js +1 -1
  23. package/build/js/parser/private/ParserLoader.d.ts +18 -17
  24. package/build/js/parser/private/ParserLoader.js +1 -1
  25. package/build/js/parser/private/ParserSettings.d.ts +2 -13
  26. package/build/js/parser/private/ParserSettings.js +1 -1
  27. package/build/js/parser/private/WorkersRegistry.d.ts +3 -2
  28. package/build/js/parser/private/WorkersRegistry.js +1 -1
  29. package/build/js/parser/private/sdcParserCommon.d.ts +2 -13
  30. package/build/js/parser/private/sdcParserCommon.js +1 -1
  31. package/build/js/parser/private/sdcParserInternal.d.ts +2 -28
  32. package/build/js/parser/private/sdcParserModule.d.ts +2 -5
  33. package/build/js/private/decorators/AbstractProxyableClass.d.ts +7 -11
  34. package/build/js/private/decorators/AbstractProxyableClass.js +1 -1
  35. package/build/js/private/decorators/Proxyable.d.ts +5 -10
  36. package/build/js/private/decorators/Proxyable.js +1 -1
  37. package/build/js/proxyableWorkerRelated-RQECsB33.d.ts +115 -0
  38. package/build/js/sdcParserCommon-CqRP95xP.d.ts +13 -0
  39. package/build/js/sdcParserInternal-ChHb5VwM.d.ts +28 -0
  40. package/build/js/sdcParserModule-CBBa2ycO.d.ts +49 -0
  41. package/build/js/vite-env.d.ts +1 -0
  42. package/build/js/worker/ParserComponent.d.ts +25 -28
  43. package/build/js/worker/ParserComponent.js +1 -1
  44. package/build/js/worker/proxyableWorkerRelated.d.ts +2 -120
  45. package/package.json +7 -7
  46. package/sdc-lib/parser-worker-8.5.0.js +1 -0
  47. package/sdc-lib/resources/models/barcode_localization_clutter_aware.69933853e03e.model +0 -0
  48. package/sdc-lib/resources/models/invalidated_id_classification_default.e3985b833d16.model +0 -0
  49. package/sdc-lib/resources/models/ocr_attention.75e86b6ca0ca.model +0 -0
  50. package/sdc-lib/resources/models/qr_model_1.e790edc14d39.model +0 -0
  51. package/sdc-lib/resources/models/qr_model_2.515757826ca3.model +0 -0
  52. package/sdc-lib/resources/models/via_id_template_database.5a7e5789abb4.model +0 -0
  53. package/sdc-lib/scandit-datacapture-sdk-parser-pthreads.js +1 -1
  54. package/sdc-lib/scandit-datacapture-sdk-parser-pthreads.wasm +0 -0
  55. package/sdc-lib/scandit-datacapture-sdk-parser-simd-pthreads.js +1 -1
  56. package/sdc-lib/scandit-datacapture-sdk-parser-simd-pthreads.wasm +0 -0
  57. package/sdc-lib/scandit-datacapture-sdk-parser-simd.js +1 -1
  58. package/sdc-lib/scandit-datacapture-sdk-parser-simd.wasm +0 -0
  59. package/sdc-lib/scandit-datacapture-sdk-parser.js +1 -1
  60. package/sdc-lib/scandit-datacapture-sdk-parser.wasm +0 -0
  61. package/build/js/chunks/chunk-2APDEN7H.js +0 -1
  62. package/build/js/chunks/chunk-HT7EIIJJ.js +0 -1
  63. package/build/js/chunks/chunk-JFX2FC2B.js +0 -2
  64. package/build/js/chunks/chunk-K74I4SRW.js +0 -1
  65. package/build/js/chunks/chunk-LRSHQXFM.js +0 -1
  66. package/build/js/chunks/chunk-MOPJCJDA.js +0 -1
  67. package/build/js/chunks/chunk-TQGBSFHQ.js +0 -1
  68. package/build/js/chunks/chunk-U5ZZ3UCW.js +0 -1
  69. package/build/js/chunks/chunk-UMSFEFZC.js +0 -0
  70. package/build/js/chunks/chunk-V6K24FXX.js +0 -1
  71. package/build/js/chunks/chunk-VNFCTEQD.js +0 -1
  72. package/build/js/chunks/chunk-XO2EOL4N.js +0 -1
  73. package/build/js/chunks/chunk-XWPVXTCL.js +0 -1
  74. package/build/js/global.d.js +0 -0
  75. package/build/js/sdcParserModule-BvuGkFJ7.d.ts +0 -47
  76. package/build/js/worker/inlineWorker.d.d.ts +0 -4
  77. package/build/js/worker/inlineWorker.d.js +0 -0
  78. package/build/js/worker/parser.inlineWorker.d.ts +0 -3
  79. package/build/js/worker/parser.inlineWorker.js +0 -1
  80. package/sdc-lib/resources/models/invalidated_id_classification_default.1cd0f5859941.model +0 -0
  81. package/sdc-lib/resources/models/ocr_attention.dd4572d2c642.model +0 -0
  82. package/sdc-lib/resources/models/via_id_template_database.488e01f034cb.model +0 -0
@@ -0,0 +1,115 @@
1
+ /// <reference types="emscripten" />
2
+ import { i as ResultOrError, n as ParserInterface_statics, t as ParserInterface } from "./sdcParserModule-CBBa2ycO.js";
3
+ import { Logger } from "@scandit/web-datacapture-core";
4
+
5
+ //#region src/main/worker/proxyableWorkerRelated.d.ts
6
+ type ValuesOf<T> = T[keyof T];
7
+ type Djinni = "djinni";
8
+ type DjinniActionMessageKey = `${Djinni}Action`;
9
+ type DjinniResultMessageKey = `${Djinni}Result`;
10
+ type ClassInfo<T> = { [K in keyof T]: T[K] extends ((...arguments_: any[]) => any) ? {
11
+ method: T[K];
12
+ methodName: K extends string ? K : never;
13
+ className: T extends {
14
+ constructor: {
15
+ name: infer ClassName;
16
+ };
17
+ } ? ClassName : never;
18
+ args: Parameters<T[K]>;
19
+ result: ReturnType<T[K]>;
20
+ } : never };
21
+ interface BaseAction {
22
+ id: number;
23
+ instanceId?: string;
24
+ command: DjinniActionMessageKey;
25
+ }
26
+ interface DjinniAction<C> extends BaseAction {
27
+ className: ValuesOf<ClassInfo<C>>["className"];
28
+ methodName: ValuesOf<ClassInfo<C>>["methodName"];
29
+ args: ValuesOf<ClassInfo<C>>["args"];
30
+ }
31
+ interface DjinniResult<T> {
32
+ type: DjinniResultMessageKey;
33
+ payload: {
34
+ id: number;
35
+ instanceId?: string;
36
+ className: ValuesOf<ClassInfo<T>>["className"];
37
+ methodName: ValuesOf<ClassInfo<T>>["methodName"];
38
+ result: ValuesOf<ClassInfo<T>>["result"];
39
+ };
40
+ }
41
+ interface ParserCreateAction extends BaseAction {
42
+ methodName: "create";
43
+ className: "ParserInterface";
44
+ args: [...Parameters<ParserInterface_statics["create"]>];
45
+ }
46
+ interface ParserLoadAction {
47
+ id: number;
48
+ methodName: "load";
49
+ className: "ParserLoader";
50
+ args: [{
51
+ libraryLocation: string;
52
+ simdSupport: boolean;
53
+ threadsSupport: boolean;
54
+ verifyResponseHash: boolean;
55
+ referredOrigin: string;
56
+ }];
57
+ }
58
+ interface ParserLoadResult {
59
+ type: "parserLoaderResult";
60
+ payload: {
61
+ id: number;
62
+ className: "ParserLoader";
63
+ methodName: "load";
64
+ result: ResultOrError<boolean, Error>;
65
+ };
66
+ }
67
+ interface ParserSetLogLevelAction {
68
+ id: number;
69
+ methodName: "setLogLevel";
70
+ className: "ParserLoader";
71
+ args: [Logger.Level];
72
+ }
73
+ interface ParserSetLogLevelResult {
74
+ type: "parserLoaderResult";
75
+ payload: {
76
+ id: number;
77
+ className: "ParserLoader";
78
+ methodName: "setLogLevel";
79
+ result: ResultOrError<boolean, Error>;
80
+ };
81
+ }
82
+ interface ParserCreateResult {
83
+ type: DjinniResultMessageKey;
84
+ payload: {
85
+ id: number;
86
+ instanceId?: string;
87
+ className: "ParserInterface";
88
+ methodName: "create";
89
+ result: ResultOrError<string, string>;
90
+ };
91
+ }
92
+ type ProxyableActionMessage = ParserInterfaceActionMessage;
93
+ type ProxyableResultMessage = ParserInterfaceResultMessage;
94
+ interface SenderParserWorker extends Omit<Worker, "postMessage"> {
95
+ onmessage: ((this: Worker, event_: MessageEvent<ProxyableResultMessage>) => void) | null;
96
+ postMessage: (message: ProxyableActionMessage, transfer?: Transferable[]) => void;
97
+ }
98
+ interface ReceiverParserWorker extends Omit<Worker, "postMessage"> {
99
+ onmessage: ((this: Worker, event_: MessageEvent) => void) | null;
100
+ postMessage: (message: ProxyableResultMessage | ParserLoadResult | ParserSetLogLevelResult, transfer?: Transferable[]) => void;
101
+ }
102
+ interface ParserModule extends EmscriptenModule {
103
+ ParserInterface: ParserInterface_statics;
104
+ }
105
+ type AugmentedWorker<M extends EmscriptenModule> = ReceiverParserWorker & {
106
+ Module: M;
107
+ };
108
+ interface ModuleHandler<M extends ParserModule> {
109
+ get: () => M;
110
+ set: (v: M) => void;
111
+ }
112
+ type ParserInterfaceActionMessage = DjinniAction<ParserInterface> | ParserCreateAction;
113
+ type ParserInterfaceResultMessage = DjinniResult<ParserInterface> | ParserCreateResult;
114
+ //#endregion
115
+ export { ValuesOf as _, ModuleHandler as a, ParserLoadAction as c, ParserSetLogLevelAction as d, ParserSetLogLevelResult as f, SenderParserWorker as g, ReceiverParserWorker as h, DjinniActionMessageKey as i, ParserLoadResult as l, ProxyableResultMessage as m, ClassInfo as n, ParserInterfaceActionMessage as o, ProxyableActionMessage as p, Djinni as r, ParserInterfaceResultMessage as s, AugmentedWorker as t, ParserModule as u };
@@ -0,0 +1,13 @@
1
+ //#region src/main/parser/private/sdcParserCommon.d.ts
2
+ declare enum ParserIssueAdditionalInfoKeyDjinni {
3
+ STARTING_CHARACTERS = 0,
4
+ VERSION = 1,
5
+ MINIMAL_VERSION = 2,
6
+ ELEMENT_NAME = 3,
7
+ STRING = 4,
8
+ LENGTH = 5,
9
+ CHARSET = 6
10
+ }
11
+ interface SdcParserCommon_statics {}
12
+ //#endregion
13
+ export { SdcParserCommon_statics as n, ParserIssueAdditionalInfoKeyDjinni as t };
@@ -0,0 +1,28 @@
1
+ import { t as ParserIssueAdditionalInfoKeyDjinni } from "./sdcParserCommon-CqRP95xP.js";
2
+
3
+ //#region src/main/parser/private/sdcParserInternal.d.ts
4
+ interface ParsedFieldInterface {
5
+ getName(): string;
6
+ getJsonData(): string;
7
+ getStringValue(): string;
8
+ getIssues(): string[];
9
+ getWarnings(): ParserIssueInterface[];
10
+ }
11
+ interface ParsedDataInterface {
12
+ getJsonData(): string;
13
+ getFields(): ParsedFieldInterface[];
14
+ }
15
+ interface ParserIssueRecord {
16
+ message: string;
17
+ code?: number;
18
+ additionalInfo?: Map<ParserIssueAdditionalInfoKeyDjinni, string>;
19
+ }
20
+ interface ParserIssueInterface {
21
+ getMessage(): string;
22
+ getCode(): number;
23
+ getAdditionalInfo(): Map<ParserIssueAdditionalInfoKeyDjinni, string>;
24
+ toRecord(): ParserIssueRecord;
25
+ }
26
+ interface SdcParserInternal_statics {}
27
+ //#endregion
28
+ export { SdcParserInternal_statics as a, ParserIssueRecord as i, ParsedFieldInterface as n, ParserIssueInterface as r, ParsedDataInterface as t };
@@ -0,0 +1,49 @@
1
+ import { t as ParserDataFormat } from "./ParserDataFormat-Cvg4icRY.js";
2
+ import { r as ParserIssueInterface, t as ParsedDataInterface } from "./sdcParserInternal-ChHb5VwM.js";
3
+ import { DataCaptureComponent } from "@scandit/web-datacapture-core";
4
+
5
+ //#region ../../../../external_non_restricted/djinni-extension-lib/ts/ResultOrError.d.ts
6
+ /**
7
+ * Copyright 2021 Snap, Inc.
8
+ * Copyright 2024 Scandit AG
9
+ *
10
+ * Licensed under the Apache License, Version 2.0 (the "License");
11
+ * you may not use this file except in compliance with the License.
12
+ * You may obtain a copy of the License at
13
+ *
14
+ * http://www.apache.org/licenses/LICENSE-2.0
15
+ *
16
+ * Unless required by applicable law or agreed to in writing, software
17
+ * distributed under the License is distributed on an "AS IS" BASIS,
18
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
19
+ * See the License for the specific language governing permissions and
20
+ * limitations under the License.
21
+ */
22
+ interface ResultOutcome<T> {
23
+ type: "result";
24
+ result: T;
25
+ }
26
+ interface ErrorOutcome<E> {
27
+ type: "error";
28
+ error: E;
29
+ }
30
+ type ResultOrError<T, E> = ResultOutcome<T> | ErrorOutcome<E>;
31
+ //#endregion
32
+ //#region src/main/parser/private/sdcParserModule.d.ts
33
+ interface ParserInterface {
34
+ getIdentifier(): ResultOrError<string, string>;
35
+ parseString(data: string): ResultOrError<ParsedDataInterface, ParserIssueInterface>;
36
+ parseRawData(data: Uint8Array): ResultOrError<ParsedDataInterface, ParserIssueInterface>;
37
+ parseStringToJson(data: string): ResultOrError<any, string>;
38
+ parseRawDataToJson(data: Uint8Array): ResultOrError<any, string>;
39
+ setOptions(options: string): ResultOrError<boolean, string>;
40
+ asDataCaptureComponent(): ResultOrError<DataCaptureComponent, string>;
41
+ }
42
+ interface ParserInterface_statics {
43
+ create(dataFormat: ParserDataFormat): ResultOrError<ParserInterface, string>;
44
+ }
45
+ interface SdcParserModule_statics {
46
+ ParserInterface: ParserInterface_statics;
47
+ }
48
+ //#endregion
49
+ export { ResultOrError as i, ParserInterface_statics as n, SdcParserModule_statics as r, ParserInterface as t };
@@ -0,0 +1 @@
1
+ export { };
@@ -1,35 +1,32 @@
1
- import { AugmentedWorker, ParserModule, ParserSetLogLevelAction, ParserLoadAction, ParserInterfaceActionMessage, ParserInterfaceResultMessage, ParserLoadResult, ParserSetLogLevelResult } from './proxyableWorkerRelated.js';
2
- import '../sdcParserModule-BvuGkFJ7.js';
3
- import '@scandit/web-datacapture-core';
4
- import '../parser/ParserDataFormat.js';
5
- import '../parser/private/sdcParserInternal.js';
6
- import '../parser/private/sdcParserCommon.js';
1
+ /// <reference types="emscripten" />
2
+ import { c as ParserLoadAction, d as ParserSetLogLevelAction, f as ParserSetLogLevelResult, l as ParserLoadResult, o as ParserInterfaceActionMessage, s as ParserInterfaceResultMessage, t as AugmentedWorker, u as ParserModule } from "../proxyableWorkerRelated-RQECsB33.js";
7
3
 
4
+ //#region src/main/worker/ParserComponent.d.ts
8
5
  interface ModuleHandler<M extends EmscriptenModule> {
9
- get: () => M;
10
- set: (v: M) => void;
6
+ get: () => M;
7
+ set: (v: M) => void;
11
8
  }
12
9
  interface ParserWorkerFunctions {
13
- postMessage: (message: ParserInterfaceResultMessage | ParserLoadResult | ParserSetLogLevelResult, transfer?: Transferable[]) => void;
10
+ postMessage: (message: ParserInterfaceResultMessage | ParserLoadResult | ParserSetLogLevelResult, transfer?: Transferable[]) => void;
14
11
  }
15
12
  declare class ParserComponent {
16
- private parsers;
17
- private readonly workerFunctions;
18
- private readonly workerSelf;
19
- private onMessageListener;
20
- private moduleHandler;
21
- private setupPromise;
22
- constructor(workerSelf: AugmentedWorker<ParserModule>, moduleHandler: ModuleHandler<ParserModule>);
23
- private get Module();
24
- setLogLevel(action: ParserSetLogLevelAction): void;
25
- load(action: ParserLoadAction): Promise<void>;
26
- listenToMessages(): void;
27
- onMessage(event: MessageEvent<ParserInterfaceActionMessage | ParserLoadAction | ParserSetLogLevelAction>): boolean;
28
- performDjinniAction(action: ParserInterfaceActionMessage): Promise<void>;
29
- private setup;
30
- private createParser;
31
- private getWasmParserExpectedHash;
32
- private getWasmParserFileName;
13
+ private parsers;
14
+ private readonly workerFunctions;
15
+ private readonly workerSelf;
16
+ private onMessageListener;
17
+ private moduleHandler;
18
+ private setupPromise;
19
+ constructor(workerSelf: AugmentedWorker<ParserModule>, moduleHandler: ModuleHandler<ParserModule>);
20
+ private get Module();
21
+ setLogLevel(action: ParserSetLogLevelAction): void;
22
+ load(action: ParserLoadAction): Promise<void>;
23
+ listenToMessages(): void;
24
+ onMessage(event: MessageEvent<ParserInterfaceActionMessage | ParserLoadAction | ParserSetLogLevelAction>): boolean;
25
+ performDjinniAction(action: ParserInterfaceActionMessage): Promise<void>;
26
+ private setup;
27
+ private createParser;
28
+ private getWasmParserExpectedHash;
29
+ private getWasmParserFileName;
33
30
  }
34
-
35
- export { ParserComponent, type ParserWorkerFunctions };
31
+ //#endregion
32
+ export { ParserComponent, ParserWorkerFunctions };
@@ -1 +1 @@
1
- export{a as ParserComponent}from'../chunks/chunk-VNFCTEQD.js';
1
+ import{DataCaptureError as e,DataCaptureVersion as t,Logger as n}from"@scandit/web-datacapture-core";import{getLibraryLocationURIs as r}from"@scandit/web-datacapture-core/build/js/private/Helper.js";import{Deferred as i}from"@scandit/web-datacapture-core/build/js/private/utils/deferred.js";import{isWorkerScope as a}from"@scandit/web-datacapture-core/build/js/private/utils/isWorkerScope.js";import{instantiateWebAssembly as o}from"@scandit/web-datacapture-core/build/js/worker/helper.js";import{setWasmMetadata as s}from"@scandit/web-datacapture-core/build/js/worker/helperFetch.js";import{importWasmScript as c}from"@scandit/web-datacapture-core/build/js/worker/importWasmScript.js";const l=e=>e.result!=null&&e.error==null;function u(e,t){return{type:`djinniResult`,payload:{id:e.id,className:e.className,methodName:e.methodName,instanceId:e.instanceId,result:t}}}function d(e,t){return{type:`parserLoaderResult`,payload:{id:e.id,className:e.className,methodName:e.methodName,result:t}}}var f=class{constructor(e,t){this.parsers=new Map,this.onMessageListener=this.onMessage.bind(this),this.setupPromise=null,this.workerSelf=e,this.moduleHandler=t,a(e)&&(this.workerFunctions={postMessage:this.workerSelf.postMessage.bind(this.workerSelf)},this.listenToMessages()),s({"scandit-datacapture-sdk-parser-pthreads.wasm":{bytes:7204067},"scandit-datacapture-sdk-parser-simd.wasm":{bytes:7175715},"scandit-datacapture-sdk-parser.wasm":{bytes:7230747},"scandit-datacapture-sdk-parser-simd-pthreads.wasm":{bytes:7162507}})}get Module(){return this.moduleHandler.get()}setLogLevel(e){n.setLevel(e.args[0]),this.workerFunctions.postMessage(d(e,{type:`result`,result:!0}))}async load(e){try{await this.setup(e.args[0]),this.workerFunctions.postMessage(d(e,{type:`result`,result:!0}))}catch(t){this.workerFunctions.postMessage(d(e,{type:`error`,error:t}))}}listenToMessages(){this.workerSelf.addEventListener(`message`,this.onMessageListener),this.workerSelf.addEventListener(`error`,e=>{n.log(n.Level.Error,e)}),this.workerSelf.addEventListener(`messageerror`,e=>{n.log(n.Level.Error,e)})}onMessage(e){return e.data.className===`ParserLoader`&&e.data.methodName===`load`&&this.load(e.data),e.data.className===`ParserLoader`&&e.data.methodName===`setLogLevel`&&this.setLogLevel(e.data),e.data.className===`ParserInterface`&&this.performDjinniAction(e.data),!0}async performDjinniAction(e){let t;if(n.log(n.Level.Debug,`${e.className}::${e.methodName}(`,e.args,`)`),e.methodName===`create`){let r=e.args[0].toString();if(this.parsers.has(r)){this.workerFunctions.postMessage(u(e,{type:`result`,result:r}));return}t=this.createParser(e),n.log(n.Level.Debug,t),this.workerFunctions.postMessage(t);return}let r=this.parsers.get(e.instanceId??``);if(r==null){this.workerFunctions.postMessage(u(e,{type:`error`,error:`parser is not defined: try to access instance with id ${e.instanceId??``}`}));return}let i=r[e.methodName](...e.args);t=l(i)?u(e,i):u(e,{type:`error`,error:i.error}),this.workerFunctions.postMessage(t)}async setup({libraryLocation:a,threadsSupport:s,simdSupport:l,verifyResponseHash:u,referredOrigin:d}){if(this.setupPromise!=null)return this.setupPromise;let{resolve:f,reject:p,promise:m}=new i;this.setupPromise=m;let h=t.sdkVersion();if(h===``)throw new e({name:`Invalid library version`,message:`Library version is not defined or empty, cannot generate proper path to library files.`});let{jsURI:g,wasmURI:_}=r(h,a,this.getWasmParserFileName(l,s));return this.moduleHandler.set({mainScriptUrlOrBlob:g,locateFile:e=>a+e,onMainComplete:()=>{},onRuntimeInitialized:()=>{f()},print:e=>{n.log(n.Level.Info,e)},instantiateWasm:(e,t)=>(o({importObject:e,wasmURI:_,expectedHash:this.getWasmParserExpectedHash(l,s),verifyResponseHash:u,successCallback:t,progressCallback:()=>{},referredOrigin:d}),{})}),await c(g,h)||p(`Couldn't retrieve Parser library at ${g}, did you configure the path for it correctly?`),m}createParser(e){var t;let r=this.Module.ParserInterface.create(e.args[0]);if(n.log(n.Level.Debug,`Parser:create returns ${r.type}`,r),r.type===`error`)return u(e,r);let i=((t=e.args[0])==null?void 0:t.toString())??``,a=u(e,{type:`result`,result:i});return this.parsers.set(i,r.result),a}getWasmParserExpectedHash(e,t){return t?e?`824c2b12f6377c7bd250ad4e2eaac8021792d7d3b61ce0ba4a692144d46263c9`:`1be78d1343e09afa19d4cac54347d81d529d0207c19037b491cd27d04bb78aaa`:e?`edae43f1437a26f72008ba312288a135549ca52bb2c18539152c85aa79da6ddb`:`bfa14a62e722453a06029c25795f64948042d0ba7f555ceada0a7186d378c2fe`}getWasmParserFileName(e,t){return t?e?`scandit-datacapture-sdk-parser-simd-pthreads.wasm`:`scandit-datacapture-sdk-parser-pthreads.wasm`:e?`scandit-datacapture-sdk-parser-simd.wasm`:`scandit-datacapture-sdk-parser.wasm`}};export{f as ParserComponent};
@@ -1,120 +1,2 @@
1
- import { P as ParserInterface, R as ResultOrError, a as ParserInterface_statics } from '../sdcParserModule-BvuGkFJ7.js';
2
- import { Logger } from '@scandit/web-datacapture-core';
3
- import '../parser/ParserDataFormat.js';
4
- import '../parser/private/sdcParserInternal.js';
5
- import '../parser/private/sdcParserCommon.js';
6
-
7
- type ValuesOf<T> = T[keyof T];
8
- type Djinni = "djinni";
9
- type DjinniActionMessageKey = `${Djinni}Action`;
10
- type DjinniResultMessageKey = `${Djinni}Result`;
11
- type ClassInfo<T> = {
12
- [K in keyof T]: T[K] extends (...arguments_: any[]) => any ? {
13
- method: T[K];
14
- methodName: K extends string ? K : never;
15
- className: T extends {
16
- constructor: {
17
- name: infer ClassName;
18
- };
19
- } ? ClassName : never;
20
- args: Parameters<T[K]>;
21
- result: ReturnType<T[K]>;
22
- } : never;
23
- };
24
- interface BaseAction {
25
- id: number;
26
- instanceId?: string;
27
- command: DjinniActionMessageKey;
28
- }
29
- interface DjinniAction<C> extends BaseAction {
30
- className: ValuesOf<ClassInfo<C>>["className"];
31
- methodName: ValuesOf<ClassInfo<C>>["methodName"];
32
- args: ValuesOf<ClassInfo<C>>["args"];
33
- }
34
- interface DjinniResult<T> {
35
- type: DjinniResultMessageKey;
36
- payload: {
37
- id: number;
38
- instanceId?: string;
39
- className: ValuesOf<ClassInfo<T>>["className"];
40
- methodName: ValuesOf<ClassInfo<T>>["methodName"];
41
- result: ValuesOf<ClassInfo<T>>["result"];
42
- };
43
- }
44
- interface ParserCreateAction extends BaseAction {
45
- methodName: "create";
46
- className: "ParserInterface";
47
- args: [...Parameters<ParserInterface_statics["create"]>];
48
- }
49
- interface ParserLoadAction {
50
- id: number;
51
- methodName: "load";
52
- className: "ParserLoader";
53
- args: [
54
- {
55
- libraryLocation: string;
56
- simdSupport: boolean;
57
- threadsSupport: boolean;
58
- verifyResponseHash: boolean;
59
- referredOrigin: string;
60
- }
61
- ];
62
- }
63
- interface ParserLoadResult {
64
- type: "parserLoaderResult";
65
- payload: {
66
- id: number;
67
- className: "ParserLoader";
68
- methodName: "load";
69
- result: ResultOrError<boolean, Error>;
70
- };
71
- }
72
- interface ParserSetLogLevelAction {
73
- id: number;
74
- methodName: "setLogLevel";
75
- className: "ParserLoader";
76
- args: [Logger.Level];
77
- }
78
- interface ParserSetLogLevelResult {
79
- type: "parserLoaderResult";
80
- payload: {
81
- id: number;
82
- className: "ParserLoader";
83
- methodName: "setLogLevel";
84
- result: ResultOrError<boolean, Error>;
85
- };
86
- }
87
- interface ParserCreateResult {
88
- type: DjinniResultMessageKey;
89
- payload: {
90
- id: number;
91
- instanceId?: string;
92
- className: "ParserInterface";
93
- methodName: "create";
94
- result: ResultOrError<string, string>;
95
- };
96
- }
97
- type ProxyableActionMessage = ParserInterfaceActionMessage;
98
- type ProxyableResultMessage = ParserInterfaceResultMessage;
99
- interface SenderParserWorker extends Omit<Worker, "postMessage"> {
100
- onmessage: ((this: Worker, event_: MessageEvent<ProxyableResultMessage>) => void) | null;
101
- postMessage: (message: ProxyableActionMessage, transfer?: Transferable[]) => void;
102
- }
103
- interface ReceiverParserWorker extends Omit<Worker, "postMessage"> {
104
- onmessage: ((this: Worker, event_: MessageEvent) => void) | null;
105
- postMessage: (message: ProxyableResultMessage | ParserLoadResult | ParserSetLogLevelResult, transfer?: Transferable[]) => void;
106
- }
107
- interface ParserModule extends EmscriptenModule {
108
- ParserInterface: ParserInterface_statics;
109
- }
110
- type AugmentedWorker<M extends EmscriptenModule> = ReceiverParserWorker & {
111
- Module: M;
112
- };
113
- interface ModuleHandler<M extends ParserModule> {
114
- get: () => M;
115
- set: (v: M) => void;
116
- }
117
- type ParserInterfaceActionMessage = DjinniAction<ParserInterface> | ParserCreateAction;
118
- type ParserInterfaceResultMessage = DjinniResult<ParserInterface> | ParserCreateResult;
119
-
120
- export type { AugmentedWorker, ClassInfo, Djinni, DjinniActionMessageKey, ModuleHandler, ParserInterfaceActionMessage, ParserInterfaceResultMessage, ParserLoadAction, ParserLoadResult, ParserModule, ParserSetLogLevelAction, ParserSetLogLevelResult, ProxyableActionMessage, ProxyableResultMessage, ReceiverParserWorker, SenderParserWorker, ValuesOf };
1
+ import { _ as ValuesOf, a as ModuleHandler, c as ParserLoadAction, d as ParserSetLogLevelAction, f as ParserSetLogLevelResult, g as SenderParserWorker, h as ReceiverParserWorker, i as DjinniActionMessageKey, l as ParserLoadResult, m as ProxyableResultMessage, n as ClassInfo, o as ParserInterfaceActionMessage, p as ProxyableActionMessage, r as Djinni, s as ParserInterfaceResultMessage, t as AugmentedWorker, u as ParserModule } from "../proxyableWorkerRelated-RQECsB33.js";
2
+ export { AugmentedWorker, ClassInfo, Djinni, DjinniActionMessageKey, ModuleHandler, ParserInterfaceActionMessage, ParserInterfaceResultMessage, ParserLoadAction, ParserLoadResult, ParserModule, ParserSetLogLevelAction, ParserSetLogLevelResult, ProxyableActionMessage, ProxyableResultMessage, ReceiverParserWorker, SenderParserWorker, ValuesOf };
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@scandit/web-datacapture-parser",
3
- "version": "8.4.1",
3
+ "version": "8.5.0",
4
4
  "description": "Scandit Data Capture SDK for the Web",
5
5
  "license": "SEE LICENSE IN LICENSE",
6
6
  "sideEffects": false,
@@ -83,10 +83,10 @@
83
83
  "scripts": {
84
84
  "types-watch": "tsc -p tsconfig.json -w --noEmit --preserveWatchOutput",
85
85
  "types:check": "tsc -p tsconfig.json --noEmit",
86
- "build": "npx tsup",
87
- "build-coverage": "COVERAGE=true npx tsup",
88
- "build-dev": "NODE_ENV=debug npx tsup",
89
- "build-watch": "NODE_ENV=debug npx tsup --watch",
86
+ "build": "tsdown",
87
+ "build-coverage": "COVERAGE=true tsdown",
88
+ "build-dev": "NODE_ENV=debug tsdown",
89
+ "build-watch": "NODE_ENV=debug tsdown --watch",
90
90
  "clean": "rm -rf build/* coverage/* .nyc_output/*",
91
91
  "test": "vitest run",
92
92
  "test-ci": "vitest run",
@@ -95,8 +95,8 @@
95
95
  "check-ci": "biome ci --diagnostic-level=error ."
96
96
  },
97
97
  "peerDependencies": {
98
- "@scandit/web-datacapture-barcode": "8.4.1",
99
- "@scandit/web-datacapture-core": "8.4.1"
98
+ "@scandit/web-datacapture-barcode": "8.5.0",
99
+ "@scandit/web-datacapture-core": "8.5.0"
100
100
  },
101
101
  "dependencies": {
102
102
  "@types/emscripten": "1.40.1"
@@ -0,0 +1 @@
1
+ (function(){let e;(function(e){e.Level=function(e){return e.Debug=`debug`,e.Info=`info`,e.Warn=`warn`,e.Error=`error`,e.Quiet=`quiet`,e}({});let t=new Map([[`debug`,1],[`info`,2],[`warn`,3],[`error`,4],[`quiet`,5]]),n=`debug`;function r(e){n=e}e.setLevel=r;function i(e,...r){if(!(t.get(n)>t.get(e)))switch(e){case`debug`:console.debug(...r);break;case`info`:console.log(...r);break;case`warn`:console.warn(...r);break;case`error`:console.error(...r);break;default:break}}e.log=i;function a(...e){i(`warn`,...e)}e.warn=a;function o(...e){i(`debug`,...e)}e.debug=o;function s(...e){i(`info`,...e)}e.info=s;function c(...e){i(`error`,...e)}e.error=c})(e||={});var t=class e extends Error{constructor(t){super(t.message),Object.setPrototypeOf(this,e.prototype),this.name=t.name}toString(){return`${this.name}: ${this.message}`}};function n(e){return/^https?:\/\/(?:[^./]*\.)*cdn.jsdelivr.net\//.test(e)?{result:!0,cdnBaseURL:`https://cdn.jsdelivr.net/npm/`}:/^https?:\/\/(?:[^./]*\.)*unpkg.com\//.test(e)?{result:!0,cdnBaseURL:`https://unpkg.com/`}:{result:!1,cdnBaseURL:``}}function r(e){let t=/@scandit\/web-datacapture-[a-z]+/i.exec(e);return t?t[0]:null}function i(e,t,i){let a=t,o=n(a);if(o.result){let t=r(a);t!=null&&(a=`${o.cdnBaseURL}${t}@${e}/sdc-lib/`)}let s=i.replace(`.wasm`,``);return o.result?{jsURI:`${a}${s}.js`,wasmURI:`${a}${s}.wasm`}:{jsURI:`${a}${s}.js?v=${e}`,wasmURI:`${a}${s}.wasm?v=${e}`}}let a;(function(e){function n(){let e=`8.5.0`;if(e==null)throw new t({name:`Invalid library version`,message:`Library version is not defined or empty.`});return e}e.sdkVersion=n})(a||={});function o(e){return typeof e==`object`&&!!e&&e.document==null&&`addEventListener`in e&&typeof e.importScripts==`function`}var s=class{constructor(){this.promise=new Promise((e,t)=>{this.reject=t,this.resolve=e})}};let c={};function l(e){return[...new Uint8Array(e)].map(e=>{let t=e.toString(16);return t.length===1?`0${t}`:t}).join(``)}async function*u(e){let t=e.getReader();try{for(;;){let{done:e,value:n}=await t.read();if(e)return;yield n}}finally{t.releaseLock()}}async function d(e){let t=[],n=0,r=0;for await(let r of u(e))t.push(r),n+=r.length;let i=new Uint8Array(n);for(let e of t)i.set(e,r),r+=e.length;return i.buffer}(function(e){return e.VALID=`VALID`,e.INVALID=`INVALID`,e.NOT_VERIFIABLE=`NOT_VERIFIABLE`,e})({});async function f(t,n,r){if(typeof crypto.subtle.digest!=`function`)return e.log(e.Level.Warn,`Insecure context (see https://developer.mozilla.org/en-US/docs/Web/Security/Secure_Contexts): The hash of the Scandit Data Capture library WASM file found at ${r} could not be verified`),`NOT_VERIFIABLE`;try{let i=t instanceof Promise?await t:t,a=l(await crypto.subtle.digest(`SHA-256`,i));return n==null?(e.log(e.Level.Warn,`The library hash is not defined or empty, cannot correctly verify integrity.`),`NOT_VERIFIABLE`):a===n?(e.log(e.Level.Debug,`Data Capture library WASM integrity found at ${r} has been verified correctly.`),`VALID`):(e.log(e.Level.Warn,`The Scandit Data Capture library WASM file found at ${r} seems invalid: expected file hash doesn't match (received: ${a}, expected: ${n}). Please ensure the correct Scandit Data Capture file (with correct version) is retrieved.`),`INVALID`)}catch(t){return e.log(e.Level.Warn,`Wasm response could not be verified`,t),`NOT_VERIFIABLE`}}let p=new Map([[`br`,4.4],[`gzip`,2.9],[`none`,1]]);function m(e){let t=`content-encoding`;if(e==null||e.get(t)==null)return p.get(`none`);let n=new Set((e.get(t)??``).split(`,`).map(e=>e.trim()));for(let[e,t]of p)if(n.has(e))return t;return p.get(`none`)}function h(e){if(e==null)return 0;let t=m(e)??1,n=Number.parseInt(e.get(`content-length`)??`0`,10);return Number.isNaN(n)?0:Math.floor(n*t*100)/100}function g(e){let{pathname:t}=new URL(e);for(let[e,n]of Object.entries(c))if(t.endsWith(e))return n.bytes;return 0}function _(e){c=e}let v=(e,t)=>{let n=h(t);return n===0?g(e):n};function y(t,n,r,{onProgress:i,onError:a,onComplete:o}){if(!n.body)return[n];let s=v(t,n.headers),c=0,l=0;if(typeof TransformStream>`u`)return e.warn(`TransformStream is not supported in this environment. Progress tracking will be disabled.`),[n];let[u,d]=r?n.body.tee():[n.body],f=u.pipeThrough(new TransformStream({async transform(e,n){try{c+=e.length,l=Number((c/s*100).toFixed(2)),s>0&&e.length>0&&l<100?i?.({percentage:l,loadedBytes:c,privateUri:t}):s===0&&e.length>0&&i?.({percentage:null,loadedBytes:c,privateUri:t}),n.enqueue(e)}catch(e){n.error(e),a?.({error:e})}},flush(e){i?.({percentage:100,loadedBytes:c,privateUri:t}),o?.({percentage:100,loadedBytes:c,privateUri:t}),e.terminate()}}));return[new Response(f,{headers:new Headers(n.headers),status:n.status,statusText:n.statusText}),d]}async function b({wasmURI:e,expectedHash:t,verifyResponseHash:n,onProgress:r,onComplete:i,onError:a,referredOrigin:o}){let s=await fetch(e,{referrerPolicy:`origin`,referrer:o??``});if(!s.ok)throw Error(`HTTP status code is not ok: ${s.status}, ${s.statusText}`);let[c,l]=y(e,s,n,{onProgress:r,onError:a,onComplete:i});return l!=null&&f(d(l),t,e),c}function x({wasmURI:t,expectedHash:n,verifyResponseHash:r,progressCallback:i,successCallback:a,errorCallback:o,importObject:s,referredOrigin:c}){async function l(l){try{let e=await b({wasmURI:t,expectedHash:n,verifyResponseHash:r,onProgress:i,referredOrigin:c}),o=await(l??e).arrayBuffer(),u=await globalThis.WebAssembly.instantiate(o,s);a(u.instance,u.module)}catch(n){e.log(e.Level.Error,n),e.log(e.Level.Error,`Couldn't instantiate Scandit SDK DataCapture library at ${t}, did you configure the path for it correctly?`),o?.(n)}}async function u(){let o;try{o=await b({wasmURI:t,expectedHash:n,verifyResponseHash:r,onProgress:i,referredOrigin:c});let e=await globalThis.WebAssembly.instantiateStreaming(o,s);a(e.instance,e.module)}catch(t){e.log(e.Level.Warn,t),e.log(e.Level.Warn,`WebAssembly streaming compile failed. Falling back to ArrayBuffer instantiation (this will make things slower)`),l(o?.bodyUsed===!0?void 0:o)}}typeof globalThis.WebAssembly.instantiateStreaming==`function`?u():l()}async function S(e,t,n,r){return new Promise((i,a)=>{e().then(i).catch(o=>{let s=t*2;if(s>n){a(o);return}r(o),globalThis.setTimeout(()=>{S(e,s,n,r).then(i).catch(a)},t)})})}async function C(t,n){function r(t){try{return new URL(t,self.location.href).origin!==self.location.origin}catch(n){return e.log(e.Level.Warn,`Could not determine origin for WASM JS URL "${t}": ${n instanceof Error?n.message:String(n)}. Defaulting to same-origin path.`),!1}}function i(n){e.log(e.Level.Warn,n),e.log(e.Level.Warn,`Couldn't retrieve Scandit Data Capture library at ${t}, retrying...`)}try{if(r(t)){let e=await S(async()=>{let e=await fetch(t,{mode:`cors`,credentials:`omit`});if(!e.ok)throw Error(`Failed to load WASM JS script: ${t} (status ${e.status})`);let n=await e.blob();return/javascript|ecmascript/i.test(n.type)?n:new Blob([n],{type:`application/javascript`})},250,4e3,i),n=URL.createObjectURL(e);try{await importScripts(n)}finally{URL.revokeObjectURL(n)}self.Module.mainScriptUrlOrBlob=e}else await S(async()=>importScripts(t),250,4e3,i),self.Module.mainScriptUrlOrBlob=t;let a=globalThis.SDC_WASM_JS_VERSION;return a!==n&&e.log(e.Level.Warn,`The Scandit Data Capture library JS file found at ${t} seems invalid: expected version doesn't match (received: ${a}, expected: ${n}). Please ensure the correct Scandit Data Capture file (with correct version) is retrieved.`),!0}catch(t){return e.log(e.Level.Error,t),!1}}let w=e=>e.result!=null&&e.error==null;function T(e,t){return{type:`djinniResult`,payload:{id:e.id,className:e.className,methodName:e.methodName,instanceId:e.instanceId,result:t}}}function E(e,t){return{type:`parserLoaderResult`,payload:{id:e.id,className:e.className,methodName:e.methodName,result:t}}}new class{constructor(e,t){this.parsers=new Map,this.onMessageListener=this.onMessage.bind(this),this.setupPromise=null,this.workerSelf=e,this.moduleHandler=t,o(e)&&(this.workerFunctions={postMessage:this.workerSelf.postMessage.bind(this.workerSelf)},this.listenToMessages()),_({"scandit-datacapture-sdk-parser-pthreads.wasm":{bytes:7204067},"scandit-datacapture-sdk-parser-simd.wasm":{bytes:7175715},"scandit-datacapture-sdk-parser.wasm":{bytes:7230747},"scandit-datacapture-sdk-parser-simd-pthreads.wasm":{bytes:7162507}})}get Module(){return this.moduleHandler.get()}setLogLevel(t){e.setLevel(t.args[0]),this.workerFunctions.postMessage(E(t,{type:`result`,result:!0}))}async load(e){try{await this.setup(e.args[0]),this.workerFunctions.postMessage(E(e,{type:`result`,result:!0}))}catch(t){this.workerFunctions.postMessage(E(e,{type:`error`,error:t}))}}listenToMessages(){this.workerSelf.addEventListener(`message`,this.onMessageListener),this.workerSelf.addEventListener(`error`,t=>{e.log(e.Level.Error,t)}),this.workerSelf.addEventListener(`messageerror`,t=>{e.log(e.Level.Error,t)})}onMessage(e){return e.data.className===`ParserLoader`&&e.data.methodName===`load`&&this.load(e.data),e.data.className===`ParserLoader`&&e.data.methodName===`setLogLevel`&&this.setLogLevel(e.data),e.data.className===`ParserInterface`&&this.performDjinniAction(e.data),!0}async performDjinniAction(t){let n;if(e.log(e.Level.Debug,`${t.className}::${t.methodName}(`,t.args,`)`),t.methodName===`create`){let r=t.args[0].toString();if(this.parsers.has(r)){this.workerFunctions.postMessage(T(t,{type:`result`,result:r}));return}n=this.createParser(t),e.log(e.Level.Debug,n),this.workerFunctions.postMessage(n);return}let r=this.parsers.get(t.instanceId??``);if(r==null){this.workerFunctions.postMessage(T(t,{type:`error`,error:`parser is not defined: try to access instance with id ${t.instanceId??``}`}));return}let i=r[t.methodName](...t.args);n=w(i)?T(t,i):T(t,{type:`error`,error:i.error}),this.workerFunctions.postMessage(n)}async setup({libraryLocation:n,threadsSupport:r,simdSupport:o,verifyResponseHash:c,referredOrigin:l}){if(this.setupPromise!=null)return this.setupPromise;let{resolve:u,reject:d,promise:f}=new s;this.setupPromise=f;let p=a.sdkVersion();if(p===``)throw new t({name:`Invalid library version`,message:`Library version is not defined or empty, cannot generate proper path to library files.`});let{jsURI:m,wasmURI:h}=i(p,n,this.getWasmParserFileName(o,r));return this.moduleHandler.set({mainScriptUrlOrBlob:m,locateFile:e=>n+e,onMainComplete:()=>{},onRuntimeInitialized:()=>{u()},print:t=>{e.log(e.Level.Info,t)},instantiateWasm:(e,t)=>(x({importObject:e,wasmURI:h,expectedHash:this.getWasmParserExpectedHash(o,r),verifyResponseHash:c,successCallback:t,progressCallback:()=>{},referredOrigin:l}),{})}),await C(m,p)||d(`Couldn't retrieve Parser library at ${m}, did you configure the path for it correctly?`),f}createParser(t){let n=this.Module.ParserInterface.create(t.args[0]);if(e.log(e.Level.Debug,`Parser:create returns ${n.type}`,n),n.type===`error`)return T(t,n);let r=t.args[0]?.toString()??``,i=T(t,{type:`result`,result:r});return this.parsers.set(r,n.result),i}getWasmParserExpectedHash(e,t){return t?e?`824c2b12f6377c7bd250ad4e2eaac8021792d7d3b61ce0ba4a692144d46263c9`:`1be78d1343e09afa19d4cac54347d81d529d0207c19037b491cd27d04bb78aaa`:e?`edae43f1437a26f72008ba312288a135549ca52bb2c18539152c85aa79da6ddb`:`bfa14a62e722453a06029c25795f64948042d0ba7f555ceada0a7186d378c2fe`}getWasmParserFileName(e,t){return t?e?`scandit-datacapture-sdk-parser-simd-pthreads.wasm`:`scandit-datacapture-sdk-parser-pthreads.wasm`:e?`scandit-datacapture-sdk-parser-simd.wasm`:`scandit-datacapture-sdk-parser.wasm`}}(globalThis,{get:()=>globalThis.Module,set:e=>{globalThis.Module=e}})})();