scandit-datacapture-frameworks-core 8.0.0 → 8.1.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 (43) hide show
  1. package/__mocks__/Defaults.ts +1 -1
  2. package/dist/dts/EventEmitter.d.ts +1 -2
  3. package/dist/dts/FactoryMaker.d.ts +5 -5
  4. package/dist/dts/camera/Camera.d.ts +11 -11
  5. package/dist/dts/camera/CameraController.d.ts +14 -11
  6. package/dist/dts/camera/CameraSettings.d.ts +2 -2
  7. package/dist/dts/camerahelpers/CameraOwnershipHelper.d.ts +1 -1
  8. package/dist/dts/camerahelpers/CameraOwnershipManager.d.ts +1 -1
  9. package/dist/dts/common/Brush.d.ts +3 -3
  10. package/dist/dts/common/ScanditIconType.d.ts +1 -1
  11. package/dist/dts/context/DataCaptureContext.d.ts +5 -5
  12. package/dist/dts/context/controller/DataCaptureContextController.d.ts +12 -12
  13. package/dist/dts/controllers/{BaseNewController.d.ts → BaseController.d.ts} +1 -1
  14. package/dist/dts/controllers/index.d.ts +1 -1
  15. package/dist/dts/defaults/CoreDefaults.d.ts +1 -1
  16. package/dist/dts/defaults/loadCoreDefaults.d.ts +1 -1
  17. package/dist/dts/feedback/Feedback.d.ts +3 -3
  18. package/dist/dts/feedback/FeedbackController.d.ts +10 -6
  19. package/dist/dts/frame/ImageFrameSource.d.ts +1 -1
  20. package/dist/dts/frame/ImageFrameSourceController.d.ts +5 -9
  21. package/dist/dts/helpers/Helpers.d.ts +1 -0
  22. package/dist/dts/helpers/index.d.ts +1 -0
  23. package/dist/dts/index.d.ts +3 -1
  24. package/dist/dts/proxies/BaseProxy.d.ts +7 -0
  25. package/dist/dts/proxies/NativeCaller.d.ts +6 -4
  26. package/dist/dts/proxies/NativeProxy.d.ts +7 -5
  27. package/dist/dts/proxies/ProxyRegistration.d.ts +5 -0
  28. package/dist/dts/proxies/index.d.ts +2 -2
  29. package/dist/dts/proxy-registration.d.ts +2 -0
  30. package/dist/dts/proxy-types.d.ts +5 -0
  31. package/dist/dts/view/ControlImage.d.ts +1 -1
  32. package/dist/dts/view/DataCaptureView.d.ts +6 -6
  33. package/dist/dts/view/DataCaptureViewController.d.ts +44 -17
  34. package/dist/dts/viewfinder/AimerViewfinder.d.ts +1 -1
  35. package/dist/dts/viewfinder/LaserlineViewfinder.d.ts +1 -1
  36. package/dist/dts/viewfinder/RectangularViewfinder.d.ts +8 -8
  37. package/dist/index.js +482 -695
  38. package/dist/index.js.map +1 -1
  39. package/package.json +3 -2
  40. package/test/ProxyRegistration.test.ts +75 -0
  41. package/dist/dts/BaseController.d.ts +0 -50
  42. package/dist/dts/proxies/AdvancedInstanceAwareNativeProxy.d.ts +0 -30
  43. package/dist/dts/proxies/BaseInstanceAwareNativeProxy.d.ts +0 -5
@@ -1,4 +1,4 @@
1
- import { FactoryMaker, loadCoreDefaults } from '../src';
1
+ import { loadCoreDefaults } from '../src';
2
2
 
3
3
  const mockCoreDefaultsData = {
4
4
  "Camera": {
@@ -1,3 +1,2 @@
1
- import EventEmitter from "eventemitter3";
2
- export declare function createEventEmitter(): void;
1
+ import EventEmitter from 'eventemitter3';
3
2
  export { EventEmitter };
@@ -1,13 +1,13 @@
1
1
  interface FactoryMakerItem {
2
- instance?: any;
3
- builder?: () => any;
2
+ instance?: unknown;
3
+ builder?: () => unknown;
4
4
  }
5
5
  export declare class FactoryMaker {
6
6
  static instances: Map<string, FactoryMakerItem>;
7
- static bindInstance(clsName: string, instance: any): void;
7
+ static bindInstance(clsName: string, instance: unknown): void;
8
8
  static bindLazyInstance<T>(clsName: string, builder: () => T): void;
9
- static bindInstanceIfNotExists(clsName: string, instance: any): void;
9
+ static bindInstanceIfNotExists(clsName: string, instance: unknown): void;
10
10
  static getInstance<T>(clsName: string): T | undefined;
11
- static createInstance<T>(clsName: string): T | undefined;
11
+ static createInstance<T>(clsName: string): T;
12
12
  }
13
13
  export {};
@@ -25,6 +25,8 @@ import { CameraSettings } from "./CameraSettings";
25
25
  * - All state changes execute immediately on native side
26
26
  */
27
27
  export declare class Camera extends DefaultSerializeable implements FrameSource {
28
+ private static readonly _cameraInstances;
29
+ private controller;
28
30
  private type;
29
31
  private settings;
30
32
  private position;
@@ -37,28 +39,26 @@ export declare class Camera extends DefaultSerializeable implements FrameSource
37
39
  private nativeReadyRejecter;
38
40
  private nativeReadyPromise;
39
41
  private nativeReadyTimeout;
40
- private static readonly _cameraInstances;
41
42
  private static get coreDefaults();
42
- private set context(value);
43
- private get context();
44
- private setNativeFrameSourceIsBeingCreated;
45
- private get isActiveCamera();
46
- private controller;
47
- static get default(): Camera | null;
43
+ static create(position?: CameraPosition, settings?: CameraSettings | null, desiredTorchState?: TorchState, desiredState?: FrameSourceState): Camera | null;
48
44
  static withSettings(settings: CameraSettings): Camera | null;
49
45
  static asPositionWithSettings(cameraPosition: CameraPosition, settings: CameraSettings): Camera | null;
50
46
  static atPosition(cameraPosition: CameraPosition): Camera | null;
51
- get desiredState(): FrameSourceState;
52
- set desiredTorchState(desiredTorchState: TorchState);
53
- get desiredTorchState(): TorchState;
54
47
  private constructor();
55
- static create(position?: CameraPosition, settings?: CameraSettings | null, desiredTorchState?: TorchState, desiredState?: FrameSourceState): Camera | null;
56
48
  switchToDesiredState(state: FrameSourceState): Promise<void>;
57
49
  getCurrentState(): Promise<FrameSourceState>;
58
50
  getIsTorchAvailable(): Promise<boolean>;
59
51
  addListener(listener: FrameSourceListener | null): void;
60
52
  removeListener(listener: FrameSourceListener | null): void;
61
53
  applySettings(settings: CameraSettings): Promise<void>;
54
+ private set context(value);
55
+ private get context();
56
+ private setNativeFrameSourceIsBeingCreated;
57
+ private get isActiveCamera();
58
+ static get default(): Camera | null;
59
+ get desiredState(): FrameSourceState;
60
+ set desiredTorchState(desiredTorchState: TorchState);
61
+ get desiredTorchState(): TorchState;
62
62
  private didChange;
63
63
  private resetPhaseState;
64
64
  }
@@ -1,10 +1,10 @@
1
- import EventEmitter from "eventemitter3";
2
1
  import { Camera } from "./Camera";
3
2
  import { FrameData, FrameSourceState } from "../frame";
4
3
  import { CameraPosition } from "../camerahelpers";
5
4
  import { NativeCallResult } from "../common";
6
- import { BaseNewController } from "../controllers/BaseNewController";
7
- export interface CameraProxy {
5
+ import { BaseController } from "../controllers/BaseController";
6
+ import { BaseProxy } from "../proxies/BaseProxy";
7
+ export interface CameraProxy extends BaseProxy {
8
8
  $getCurrentCameraState({ position }: {
9
9
  position: CameraPosition;
10
10
  }): Promise<NativeCallResult>;
@@ -14,23 +14,26 @@ export interface CameraProxy {
14
14
  $isTorchAvailable({ position }: {
15
15
  position: CameraPosition;
16
16
  }): Promise<NativeCallResult>;
17
- $registerListenerForCameraEvents(): Promise<void>;
17
+ /**
18
+ * Register persistent event listener for camera state changes.
19
+ *
20
+ * Uses `$$` prefix to indicate this is an event registration method that establishes
21
+ * a persistent listener (uses callbackContext.successAndKeepCallback() on native side).
22
+ * This prefix enables automatic detection in Cordova without manual event configuration.
23
+ */
24
+ $$registerListenerForCameraEvents(): Promise<void>;
18
25
  $unregisterListenerForCameraEvents(): Promise<void>;
19
26
  $getFrame({ frameId }: {
20
27
  frameId: string;
21
28
  }): Promise<NativeCallResult | null>;
22
- subscribeForEvents(events: string[]): void;
23
- unsubscribeFromEvents(events: string[]): void;
24
- dispose(): void;
25
- eventEmitter: EventEmitter;
26
29
  }
27
- export declare class CameraController extends BaseNewController<CameraProxy> {
30
+ export declare class CameraController extends BaseController<CameraProxy> {
28
31
  private camera;
29
32
  private static get _proxy();
30
- constructor(camera: Camera);
31
- private get privateCamera();
32
33
  static getFrame(frameId: string): Promise<FrameData>;
33
34
  static getFrameOrNull(frameId: string): Promise<FrameData | null>;
35
+ constructor(camera: Camera);
36
+ private get privateCamera();
34
37
  getCurrentState(): Promise<FrameSourceState>;
35
38
  getIsTorchAvailable(): Promise<boolean>;
36
39
  switchCameraToDesiredState(desiredState: FrameSourceState): Promise<void>;
@@ -17,11 +17,11 @@ export interface PrivateCameraSettings {
17
17
  fromJSON(json: CameraSettingsJSON): CameraSettings;
18
18
  }
19
19
  export declare class CameraSettings extends DefaultSerializeable {
20
- private static get coreDefaults();
21
- private focusHiddenProperties;
22
20
  preferredResolution: VideoResolution;
23
21
  zoomFactor: number;
24
22
  zoomGestureZoomFactor: number;
23
+ private static get coreDefaults();
24
+ private focusHiddenProperties;
25
25
  private focus;
26
26
  get focusRange(): FocusRange;
27
27
  set focusRange(newRange: FocusRange);
@@ -28,7 +28,7 @@ export declare class CameraOwnershipHelper {
28
28
  */
29
29
  static hasOwnership(position: CameraPosition, owner: CameraOwner): boolean;
30
30
  /**
31
- * Get the camera position currently owned by the owner (if any)
31
+ * Get the camera position currently owned by the owner (if unknown)
32
32
  */
33
33
  static getOwnedPosition(owner: CameraOwner): CameraPosition | null;
34
34
  /**
@@ -5,8 +5,8 @@ export declare class CameraOwnershipManager {
5
5
  private readonly owners;
6
6
  private readonly waitingQueue;
7
7
  private readonly protectedCameras;
8
- private constructor();
9
8
  static getInstance(): CameraOwnershipManager;
9
+ private constructor();
10
10
  requestOwnership(position: CameraPosition, owner: CameraOwner): boolean;
11
11
  requestOwnershipAsync(position: CameraPosition, owner: CameraOwner, timeoutMs?: number): Promise<boolean>;
12
12
  releaseOwnership(position: CameraPosition, owner: CameraOwner): boolean;
@@ -2,8 +2,8 @@ import { DefaultSerializeable } from "../serializable";
2
2
  import { Color } from "./Color";
3
3
  export interface PrivateBrush {
4
4
  readonly copy: Brush;
5
- defaults: any;
6
- fromJSON(json: any): Brush;
5
+ defaults: unknown;
6
+ fromJSON(json: unknown): Brush;
7
7
  toJSON(): BrushJSON;
8
8
  }
9
9
  export interface BrushJSON {
@@ -24,7 +24,7 @@ export declare class Brush extends DefaultSerializeable {
24
24
  get strokeColor(): Color;
25
25
  get strokeWidth(): number;
26
26
  private get copy();
27
+ private static fromJSON;
27
28
  constructor();
28
29
  constructor(fillColor: Color, strokeColor: Color, strokeWidth: number);
29
- private static fromJSON;
30
30
  }
@@ -5,7 +5,7 @@ export declare enum ScanditIconType {
5
5
  ArrowDown = "arrowDown",
6
6
  ToPick = "toPick",
7
7
  Checkmark = "checkmark",
8
- XMark = "xmark",
8
+ XMark = "xMark",
9
9
  QuestionMark = "questionMark",
10
10
  ExclamationMark = "exclamationMark",
11
11
  LowStock = "lowStock",
@@ -21,6 +21,7 @@ export declare class DataCaptureContext extends DefaultSerializeable {
21
21
  private view;
22
22
  private modes;
23
23
  private listeners;
24
+ static getOpenSourceSoftwareLicenseInfo(): Promise<OpenSourceSoftwareLicenseInfo>;
24
25
  private static get coreDefaults();
25
26
  get frameSource(): FrameSource | null;
26
27
  static get deviceID(): string | null;
@@ -31,19 +32,18 @@ export declare class DataCaptureContext extends DefaultSerializeable {
31
32
  private static create;
32
33
  private constructor();
33
34
  setFrameSource(frameSource: FrameSource | null): Promise<void>;
34
- addListener(listener: DataCaptureContextListener): void;
35
- removeListener(listener: DataCaptureContextListener): void;
35
+ addListener(listener: DataCaptureContextListener): Promise<void>;
36
+ removeListener(listener: DataCaptureContextListener): Promise<void>;
36
37
  addMode(mode: DataCaptureMode): Promise<void>;
37
38
  setMode(mode: DataCaptureMode): Promise<void>;
38
- private addModeInternal;
39
39
  removeCurrentMode(): Promise<void>;
40
40
  removeMode(mode: DataCaptureMode): Promise<void>;
41
- private removeModeInternal;
42
41
  removeAllModes(): Promise<void>;
43
42
  dispose(): Promise<void>;
44
43
  applySettings(settings: DataCaptureContextSettings): Promise<void>;
45
- static getOpenSourceSoftwareLicenseInfo(): Promise<OpenSourceSoftwareLicenseInfo>;
46
44
  private update;
45
+ private addModeInternal;
46
+ private removeModeInternal;
47
47
  }
48
48
  export interface PrivateDataCaptureContext {
49
49
  controller: DataCaptureContextController;
@@ -1,10 +1,10 @@
1
- import EventEmitter from 'eventemitter3';
2
1
  import { DataCaptureContext } from '../DataCaptureContext';
3
2
  import { DataCaptureMode } from '../DataCaptureMode';
4
3
  import { OpenSourceSoftwareLicenseInfo } from '../OpenSourceSoftwareLicenseInfo';
5
4
  import { NativeCallResult } from '../../common';
6
- import { BaseNewController } from '../../controllers/BaseNewController';
7
- export interface DataCaptureContextProxy {
5
+ import { BaseController } from '../../controllers/BaseController';
6
+ import { BaseProxy } from '../../proxies/BaseProxy';
7
+ export interface DataCaptureContextProxy extends BaseProxy {
8
8
  get framework(): string;
9
9
  get frameworkVersion(): string;
10
10
  $contextFromJSON({ contextJson }: {
@@ -13,7 +13,11 @@ export interface DataCaptureContextProxy {
13
13
  $updateContextFromJSON({ contextJson }: {
14
14
  contextJson: string;
15
15
  }): Promise<void>;
16
- $subscribeContextListener(): void;
16
+ /**
17
+ * Subscribe to context events with persistent listener.
18
+ * Uses `$$` prefix for automatic Cordova event registration detection.
19
+ */
20
+ $$subscribeContextListener(): Promise<void>;
17
21
  $unsubscribeContextListener(): Promise<void>;
18
22
  $addModeToContext({ modeJson }: {
19
23
  modeJson: string;
@@ -24,33 +28,29 @@ export interface DataCaptureContextProxy {
24
28
  $removeAllModes(): Promise<void>;
25
29
  $getOpenSourceSoftwareLicenseInfo(): Promise<NativeCallResult>;
26
30
  $disposeContext(): Promise<void>;
27
- subscribeForEvents(events: string[]): void;
28
- unsubscribeFromEvents(events: string[]): void;
29
- dispose(): void;
30
- eventEmitter: EventEmitter;
31
31
  }
32
32
  export declare enum DataCaptureContextEvents {
33
33
  didChangeStatus = "DataCaptureContextListener.onStatusChanged",
34
34
  didStartObservingContext = "DataCaptureContextListener.onObservationStarted"
35
35
  }
36
- export declare class DataCaptureContextController extends BaseNewController<DataCaptureContextProxy> {
36
+ export declare class DataCaptureContextController extends BaseController<DataCaptureContextProxy> {
37
37
  private context;
38
38
  private _listenerRegistered;
39
39
  get framework(): string;
40
40
  get frameworkVersion(): string;
41
41
  private get privateContext();
42
42
  static forDataCaptureContext(context: DataCaptureContext): DataCaptureContextController;
43
+ static getOpenSourceSoftwareLicenseInfo(): Promise<OpenSourceSoftwareLicenseInfo>;
43
44
  private constructor();
45
+ subscribeListener(): Promise<void>;
44
46
  updateContextFromJSON(): Promise<void>;
45
47
  addModeToContext(mode: DataCaptureMode): Promise<void>;
46
48
  removeModeFromContext(mode: DataCaptureMode): Promise<void>;
47
49
  removeAllModesFromContext(): Promise<void>;
48
50
  dispose(): void;
49
- unsubscribeListener(): void;
51
+ unsubscribeListener(): Promise<void>;
50
52
  initialize(): Promise<void>;
51
53
  private initializeContextFromJSON;
52
- static getOpenSourceSoftwareLicenseInfo(): Promise<OpenSourceSoftwareLicenseInfo>;
53
- subscribeListener(): void;
54
54
  private handleDidChangeStatusEvent;
55
55
  private handleDidStartObservingContextEvent;
56
56
  private notifyListenersOfDeserializationError;
@@ -1,4 +1,4 @@
1
- export declare class BaseNewController<PROXY> {
1
+ export declare class BaseController<PROXY> {
2
2
  private _cachedProxy;
3
3
  protected get _proxy(): PROXY;
4
4
  constructor(proxyName: string);
@@ -1 +1 @@
1
- export * from "./BaseNewController";
1
+ export * from "./BaseController";
@@ -10,7 +10,7 @@ export interface CameraSettingsDefaults {
10
10
  focusGestureStrategy: FocusGestureStrategy;
11
11
  shouldPreferSmoothAutoFocus: boolean;
12
12
  properties: {
13
- [key: string]: any;
13
+ [key: string]: unknown;
14
14
  };
15
15
  }
16
16
  export interface CoreDefaults {
@@ -1 +1 @@
1
- export declare function loadCoreDefaults(jsonDefaults: any): void;
1
+ export declare function loadCoreDefaults(jsonDefaults: unknown): void;
@@ -1,6 +1,6 @@
1
- import { DefaultSerializeable } from "../serializable";
2
- import { Sound, SoundJSON } from "./Sound";
3
- import { Vibration, VibrationJSON } from "./Vibration";
1
+ import { DefaultSerializeable } from '../serializable';
2
+ import { Sound, SoundJSON } from './Sound';
3
+ import { Vibration, VibrationJSON } from './Vibration';
4
4
  export interface FeedbackJSON {
5
5
  vibration: VibrationJSON | null;
6
6
  sound: SoundJSON | null;
@@ -1,11 +1,15 @@
1
- import { Feedback } from "./Feedback";
2
- export interface FeedbackProxy {
3
- emitFeedback(feedback: Feedback): Promise<void>;
1
+ import { BaseController } from '../controllers/BaseController';
2
+ import { Feedback } from './Feedback';
3
+ import { BaseProxy } from '../proxies/BaseProxy';
4
+ export interface FeedbackProxy extends BaseProxy {
5
+ $emitFeedback(args: {
6
+ feedbackJson: string;
7
+ }): Promise<void>;
4
8
  }
5
- export declare class FeedbackController {
9
+ export declare class FeedbackController extends BaseController<FeedbackProxy> {
6
10
  private feedback;
7
- private _proxy;
8
- private constructor();
9
11
  static forFeedback(feedback: Feedback): FeedbackController;
12
+ constructor(feedback: Feedback);
10
13
  emit(): void;
14
+ dispose(): void;
11
15
  }
@@ -33,9 +33,9 @@ export declare class ImageFrameSource extends DefaultSerializeable implements Fr
33
33
  static create(image: string): ImageFrameSource;
34
34
  private static fromJSON;
35
35
  private constructor();
36
- private didChange;
37
36
  switchToDesiredState(state: FrameSourceState): Promise<void>;
38
37
  addListener(listener: FrameSourceListener | null): void;
39
38
  removeListener(listener: FrameSourceListener | null): void;
40
39
  getCurrentState(): Promise<FrameSourceState>;
40
+ private didChange;
41
41
  }
@@ -1,24 +1,20 @@
1
- import EventEmitter from "eventemitter3";
2
1
  import { FrameSourceState } from "./FrameSourceState";
3
2
  import { ImageFrameSource } from "./ImageFrameSource";
4
3
  import { CameraPosition } from "../camerahelpers/CameraPosition";
5
4
  import { NativeCallResult } from "../common";
6
- import { BaseNewController } from "../controllers/BaseNewController";
7
- export interface ImageFrameSourceProxy {
5
+ import { BaseController } from "../controllers/BaseController";
6
+ import { BaseProxy } from "../proxies";
7
+ export interface ImageFrameSourceProxy extends BaseProxy {
8
8
  $getCurrentCameraState({ position }: {
9
9
  position: CameraPosition;
10
10
  }): Promise<NativeCallResult>;
11
11
  $switchCameraToDesiredState({ desiredStateJson }: {
12
12
  desiredStateJson: string;
13
13
  }): Promise<void>;
14
- $registerListenerForCameraEvents(): Promise<void>;
14
+ $$registerListenerForCameraEvents(): Promise<void>;
15
15
  $unregisterListenerForCameraEvents(): Promise<void>;
16
- subscribeForEvents(events: string[]): void;
17
- unsubscribeFromEvents(events: string[]): void;
18
- dispose(): void;
19
- eventEmitter: EventEmitter;
20
16
  }
21
- export declare class ImageFrameSourceController extends BaseNewController<ImageFrameSourceProxy> {
17
+ export declare class ImageFrameSourceController extends BaseController<ImageFrameSourceProxy> {
22
18
  private imageFrameSource;
23
19
  constructor(imageFrameSource: ImageFrameSource);
24
20
  private get privateImageFrameSource();
@@ -0,0 +1 @@
1
+ export declare function generateIdentifier(): string;
@@ -0,0 +1 @@
1
+ export * from "./Helpers";
@@ -1,5 +1,4 @@
1
1
  export { EventEmitter } from "./EventEmitter";
2
- export * from "./BaseController";
3
2
  export * from "./defaults";
4
3
  export { loadCoreDefaults } from "./defaults/loadCoreDefaults";
5
4
  export * from "./common";
@@ -17,3 +16,6 @@ export * from "./Expiration";
17
16
  export * from "./proxies";
18
17
  export * from "./controllers";
19
18
  export { FactoryMaker } from "./FactoryMaker";
19
+ export * from "./proxy-types";
20
+ export * from "./proxy-registration";
21
+ export * from "./helpers";
@@ -0,0 +1,7 @@
1
+ import { EventEmitter } from '../EventEmitter';
2
+ export interface BaseProxy {
3
+ subscribeForEvents(events: string[]): void;
4
+ unsubscribeFromEvents(events: string[]): void;
5
+ dispose(): void;
6
+ eventEmitter: EventEmitter;
7
+ }
@@ -2,8 +2,10 @@
2
2
  * Framework specific native calls provider
3
3
  */
4
4
  export interface NativeCaller {
5
- callFn(fnName: string, args: object | undefined | null): Promise<any>;
6
- registerEvent(evName: string, handler: (args: any) => Promise<void>): Promise<any>;
7
- unregisterEvent(evName: string, subscription: any): Promise<void>;
8
- eventHook(args: any): any;
5
+ callFn(fnName: string, args: object | undefined | null, meta?: {
6
+ isEventRegistration?: boolean;
7
+ }): Promise<unknown>;
8
+ registerEvent(evName: string, handler: (args: unknown) => Promise<void>): Promise<unknown>;
9
+ unregisterEvent(evName: string, subscription: unknown): Promise<void>;
10
+ eventHook(args: unknown): unknown;
9
11
  }
@@ -1,17 +1,19 @@
1
- import { BaseInstanceAwareNativeProxy } from "./BaseInstanceAwareNativeProxy";
1
+ import EventEmitter from "eventemitter3";
2
2
  import { NativeCaller } from "./NativeCaller";
3
- export declare class NativeProxy extends BaseInstanceAwareNativeProxy {
3
+ export declare class NativeProxy {
4
+ eventEmitter: EventEmitter;
4
5
  protected nativeCaller: NativeCaller;
5
- protected eventSubscriptions: Map<string, any>;
6
+ protected eventSubscriptions: Map<string, unknown>;
6
7
  private cachedEventHandler;
7
- [k: string]: any;
8
+ [k: string]: unknown;
8
9
  constructor(nativeCaller: NativeCaller);
9
10
  get framework(): string;
10
11
  get frameworkVersion(): string;
11
12
  subscribeForEvents(events: string[]): Promise<void>;
12
13
  unsubscribeFromEvents(events: string[]): Promise<void>;
13
14
  dispose(): Promise<void>;
14
- _call(fnName: string, args: object | undefined | null): Promise<any>;
15
+ _call(fnName: string, args: object | undefined | null): Promise<unknown>;
16
+ _callEventRegistration(fnName: string, args: object | undefined | null): Promise<any>;
15
17
  private _registerEvent;
16
18
  private _unregisterEvent;
17
19
  }
@@ -0,0 +1,5 @@
1
+ import { NativeCaller } from './NativeCaller';
2
+ export interface NativeCallerProvider<ProxyType extends string = string> {
3
+ getNativeCaller(proxyType: ProxyType): NativeCaller;
4
+ }
5
+ export declare function registerProxies<ProxyType extends string>(proxyTypeNames: readonly ProxyType[], provider: NativeCallerProvider<ProxyType>): void;
@@ -1,5 +1,5 @@
1
1
  export { ProxyEvent } from "./ProxyEvent";
2
- export { BaseInstanceAwareNativeProxy } from "./BaseInstanceAwareNativeProxy";
3
- export { AdvancedInstanceAwareNativeProxy, createAdvancedInstanceAwareNativeProxy } from "./AdvancedInstanceAwareNativeProxy";
4
2
  export { NativeCaller } from "./NativeCaller";
5
3
  export { NativeProxy, createNativeProxy } from "./NativeProxy";
4
+ export { BaseProxy } from "./BaseProxy";
5
+ export { NativeCallerProvider, registerProxies } from "./ProxyRegistration";
@@ -0,0 +1,2 @@
1
+ import { CoreNativeCallerProvider } from './proxy-types';
2
+ export declare function registerCoreProxies(provider: CoreNativeCallerProvider): void;
@@ -0,0 +1,5 @@
1
+ import { NativeCallerProvider } from './proxies/ProxyRegistration';
2
+ export declare const CORE_PROXY_TYPE_NAMES: readonly ["DataCaptureViewProxy", "DataCaptureContextProxy", "CameraProxy", "ImageFrameSourceProxy", "FeedbackProxy"];
3
+ export type CoreProxyType = typeof CORE_PROXY_TYPE_NAMES[number];
4
+ export interface CoreNativeCallerProvider extends NativeCallerProvider<CoreProxyType> {
5
+ }
@@ -3,9 +3,9 @@ export declare class ControlImage extends DefaultSerializeable {
3
3
  private type;
4
4
  private _data;
5
5
  private _name;
6
- private constructor();
7
6
  static fromBase64EncodedImage(data: string | null): ControlImage | null;
8
7
  static fromResourceName(resource: string): ControlImage;
8
+ private constructor();
9
9
  isBase64EncodedImage(): boolean;
10
10
  get data(): string | null;
11
11
  }
@@ -10,8 +10,11 @@ export interface DataCaptureView {
10
10
  removeOverlay(overlay: DataCaptureOverlay): void;
11
11
  }
12
12
  export declare class BaseDataCaptureView extends DefaultSerializeable {
13
- private _context;
14
13
  viewComponent: DataCaptureView;
14
+ parentId: number | null;
15
+ overlays: DataCaptureOverlay[];
16
+ listeners: DataCaptureViewListener[];
17
+ private _context;
15
18
  get context(): DataCaptureContext | null;
16
19
  set context(context: DataCaptureContext | null);
17
20
  private get coreDefaults();
@@ -20,7 +23,6 @@ export declare class BaseDataCaptureView extends DefaultSerializeable {
20
23
  private _viewId;
21
24
  get viewId(): number;
22
25
  private set viewId(value);
23
- parentId: number | null;
24
26
  set scanAreaMargins(newValue: MarginsWithUnit);
25
27
  private _pointOfInterest;
26
28
  get pointOfInterest(): PointWithUnit;
@@ -40,10 +42,8 @@ export declare class BaseDataCaptureView extends DefaultSerializeable {
40
42
  private _logoStyle;
41
43
  get logoStyle(): LogoStyle;
42
44
  set logoStyle(newValue: LogoStyle);
43
- overlays: DataCaptureOverlay[];
44
45
  private controls;
45
46
  private controller;
46
- listeners: DataCaptureViewListener[];
47
47
  private isViewCreated;
48
48
  private get privateContext();
49
49
  static forContext(context: DataCaptureContext | null): BaseDataCaptureView;
@@ -55,10 +55,10 @@ export declare class BaseDataCaptureView extends DefaultSerializeable {
55
55
  removeListener(listener: DataCaptureViewListener): void;
56
56
  viewPointForFramePoint(point: Point): Promise<Point>;
57
57
  viewQuadrilateralForFrameQuadrilateral(quadrilateral: Quadrilateral): Promise<Quadrilateral>;
58
- addControl(control: Control): void;
58
+ addControl(control: Control): Promise<void>;
59
59
  addControlWithAnchorAndOffset(control: Control, anchor: Anchor, offset: PointWithUnit): void;
60
60
  removeControl(control: Control): void;
61
- controlUpdated(): void;
61
+ controlUpdated(): Promise<void>;
62
62
  createNativeView(viewId: number): Promise<void>;
63
63
  removeNativeView(): Promise<void>;
64
64
  dispose(): void;
@@ -1,30 +1,55 @@
1
1
  import { NativeCallResult, Point, Quadrilateral } from "../common";
2
2
  import { BaseDataCaptureView } from "./DataCaptureView";
3
- import { BaseController } from "../BaseController";
4
- export interface DataCaptureViewProxy {
5
- viewPointForFramePoint({ viewId, pointJson }: {
3
+ import { BaseController } from "../controllers/BaseController";
4
+ import { BaseProxy } from "../proxies/BaseProxy";
5
+ export interface DataCaptureViewProxy extends BaseProxy {
6
+ $viewPointForFramePoint({ viewId, pointJson }: {
6
7
  viewId: number;
7
8
  pointJson: string;
8
9
  }): Promise<NativeCallResult>;
9
- viewQuadrilateralForFrameQuadrilateral({ viewId, quadrilateralJson }: {
10
+ $viewQuadrilateralForFrameQuadrilateral({ viewId, quadrilateralJson }: {
10
11
  viewId: number;
11
12
  quadrilateralJson: string;
12
13
  }): Promise<NativeCallResult>;
13
- registerListenerForViewEvents(viewId: number): void;
14
- unregisterListenerForViewEvents(viewId: number): void;
15
- subscribeDidChangeSize?(): void;
16
- setPositionAndSize(top: number, left: number, width: number, height: number, shouldBeUnderWebView: boolean): Promise<void>;
17
- show(): Promise<void>;
18
- hide(): Promise<void>;
19
- createView(viewJson: string): Promise<void>;
20
- updateView(viewJson: string): Promise<void>;
21
- removeView(viewId: number): Promise<void>;
14
+ /**
15
+ * Register persistent event listener for view events.
16
+ * Uses `$$` prefix for automatic Cordova event registration detection.
17
+ */
18
+ $$registerListenerForViewEvents({ viewId }: {
19
+ viewId: number;
20
+ }): Promise<void>;
21
+ $unregisterListenerForViewEvents({ viewId }: {
22
+ viewId: number;
23
+ }): Promise<void>;
24
+ $setDataCaptureViewPositionAndSize({ top, left, width, height, shouldBeUnderWebView }: {
25
+ top: number;
26
+ left: number;
27
+ width: number;
28
+ height: number;
29
+ shouldBeUnderWebView: boolean;
30
+ }): Promise<void>;
31
+ $showDataCaptureView({ viewId }: {
32
+ viewId: number;
33
+ }): Promise<void>;
34
+ $hideDataCaptureView({ viewId }: {
35
+ viewId: number;
36
+ }): Promise<void>;
37
+ $createDataCaptureView({ viewJson }: {
38
+ viewJson: string;
39
+ }): Promise<void>;
40
+ $updateDataCaptureView({ viewJson }: {
41
+ viewJson: string;
42
+ }): Promise<void>;
43
+ $removeDataCaptureView({ viewId }: {
44
+ viewId: number;
45
+ }): Promise<void>;
22
46
  }
23
47
  export declare enum DataCaptureViewEvents {
24
48
  didChangeSize = "DataCaptureViewListener.onSizeChanged"
25
49
  }
26
50
  export declare class DataCaptureViewController extends BaseController<DataCaptureViewProxy> {
27
- private readonly view;
51
+ private view;
52
+ private _listenerRegistered;
28
53
  constructor(view: BaseDataCaptureView);
29
54
  viewPointForFramePoint(point: Point): Promise<Point>;
30
55
  viewQuadrilateralForFrameQuadrilateral(quadrilateral: Quadrilateral): Promise<Quadrilateral>;
@@ -33,10 +58,12 @@ export declare class DataCaptureViewController extends BaseController<DataCaptur
33
58
  hide(): Promise<void>;
34
59
  createNativeView(): Promise<void>;
35
60
  removeNativeView(): Promise<void>;
36
- private createView;
37
61
  updateView(): Promise<void>;
38
62
  dispose(): void;
39
- subscribeListener(): void;
40
- unsubscribeListener(): void;
63
+ subscribeListener(): Promise<void>;
64
+ unsubscribeListener(): Promise<void>;
65
+ private createView;
66
+ private handleDidChangeSizeEvent;
67
+ private handleDidChangeSizeEventWrapper;
41
68
  private isViewCreated;
42
69
  }