@monitordog/detector 1.0.2 → 1.0.4

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 (35) hide show
  1. package/README.md +24 -101
  2. package/dist/assets/inference-worker-jrK75m_K.js +8 -0
  3. package/dist/assets/ort/ort-wasm-simd-threaded.mjs +59 -0
  4. package/dist/assets/ort/ort-wasm-simd-threaded.wasm +0 -0
  5. package/dist/assets/sdk/detector-320.onnx.enc +0 -0
  6. package/dist/assets/sdk/detector-416.onnx.enc +0 -0
  7. package/dist/assets/sdk/detector-640.onnx.enc +0 -0
  8. package/dist/constants.d.ts +0 -6
  9. package/dist/detect/model-loader.d.ts +2 -11
  10. package/dist/environment.d.ts +0 -8
  11. package/dist/events.d.ts +2 -5
  12. package/dist/index.d.ts +2 -4
  13. package/dist/monitordog-detector.js +620 -11541
  14. package/dist/monitordog-detector.umd.cjs +1 -54
  15. package/dist/runtime-options.d.ts +7 -0
  16. package/dist/service/container.d.ts +0 -8
  17. package/dist/service/detect-service.d.ts +0 -30
  18. package/dist/service/detection-event-service.d.ts +2 -10
  19. package/dist/service/webcam-service.d.ts +0 -2
  20. package/dist/types.d.ts +22 -97
  21. package/package.json +15 -18
  22. package/dist/assets/inference-worker-C-n1YxCo.js +0 -2
  23. package/dist/detect/wasm/webcam-frame-analysis-wasm-bytes.d.ts +0 -1
  24. package/dist/detect/webcam-blockage-detector.d.ts +0 -32
  25. package/dist/detect/webcam-frame-analysis-wasm.d.ts +0 -47
  26. package/dist/detect/webcam-frame-analysis.d.ts +0 -34
  27. package/dist/detect/webcam-lighting-detector.d.ts +0 -21
  28. package/dist/language.d.ts +0 -6
  29. package/dist/monitordog-detector.d.ts +0 -41
  30. package/dist/pose/mediapipe-asset-loader.d.ts +0 -16
  31. package/dist/pose/mediapipe-main-user-tracker.d.ts +0 -90
  32. package/dist/pose.d.ts +0 -15
  33. package/dist/service/overlay-renderer.d.ts +0 -71
  34. package/dist/service/overlay-service.d.ts +0 -75
  35. package/dist/service/overlay-watchdog-service.d.ts +0 -13
@@ -1,90 +0,0 @@
1
- export declare const CHECK_INTERVAL_MS = 300;
2
- export declare const MAX_MISSING_TIME_MS = 650;
3
- export declare const MAX_MISSING_SAMPLE_COUNT = 2;
4
- export declare const ACQUIRE_MIN_SHOULDER_WIDTH = 0.2;
5
- export declare const TRACK_MIN_SHOULDER_WIDTH = 0.08;
6
- export declare const DISTANCE_THRESHOLD = 0.25;
7
- export declare const ACQUIRE_MIN_VISIBILITY = 0.5;
8
- export declare const TRACK_MIN_VISIBILITY = 0.75;
9
- export declare const TRACK_DISTANCE_THRESHOLD = 0.45;
10
- export declare const TORSO_OVERLAP_THRESHOLD = 0.15;
11
- export declare const SHOULDER_SCALE_MIN_RATIO = 0.45;
12
- export declare const SHOULDER_SCALE_MAX_RATIO = 2.2;
13
- export declare const landmarkIndexes: {
14
- readonly leftShoulder: 11;
15
- readonly rightShoulder: 12;
16
- readonly leftHip: 23;
17
- readonly rightHip: 24;
18
- };
19
- export type MainUserTrackingState = "INIT" | "TRACKING" | "MISSING" | "AWAY";
20
- export type NormalizedPoint = {
21
- x: number;
22
- y: number;
23
- };
24
- export type NormalizedBox = {
25
- x: number;
26
- y: number;
27
- width: number;
28
- height: number;
29
- };
30
- export type MainUserTrackingDebugPose = {
31
- landmarks: NormalizedPoint[][];
32
- candidateBoxes: NormalizedBox[];
33
- lastTrackBox?: NormalizedBox;
34
- };
35
- export type MainUserTrackingResult = {
36
- enabled: boolean;
37
- disabledReason?: string;
38
- state: MainUserTrackingState;
39
- hasTrackedUser: boolean;
40
- lastCentroid?: NormalizedPoint;
41
- missingElapsedMs: number;
42
- poseCount: number;
43
- candidateCount: number;
44
- debugPose?: MainUserTrackingDebugPose;
45
- };
46
- export type MediaPipeMainUserTrackerOptions = {
47
- apiBaseUrl?: string;
48
- accessToken?: string;
49
- wasmBasePath?: string;
50
- modelAssetPath?: string;
51
- numPoses?: number;
52
- };
53
- export type CandidateMode = "acquire" | "track";
54
- export declare class MediaPipeMainUserTracker {
55
- private readonly wasmBasePath;
56
- private readonly poseModelAssetPath;
57
- private readonly numPoses;
58
- private readonly apiBaseUrl?;
59
- private readonly accessToken?;
60
- private assetBundle?;
61
- private poseLandmarker?;
62
- private state;
63
- private lastCentroid?;
64
- private lastTrack?;
65
- private hasTrackedUser;
66
- private missingStartedAt?;
67
- private missingSampleCount;
68
- constructor(options?: MediaPipeMainUserTrackerOptions);
69
- load(): Promise<void>;
70
- detectForVideo(video: HTMLVideoElement, timestampMs: number): MainUserTrackingResult;
71
- getSnapshot(nowMs: number): MainUserTrackingResult;
72
- reset(): void;
73
- private resetTrackingState;
74
- dispose(): void;
75
- private createPoseLandmarkerWithFallback;
76
- private createPoseLandmarker;
77
- private loadAssetBundle;
78
- private hasSelfHostedAssetPath;
79
- private getSelfHostedWasmBasePath;
80
- private getSelfHostedModelAssetPath;
81
- private toPoseCandidates;
82
- private toPoseCandidate;
83
- private getPoseCentroid;
84
- private findMainUser;
85
- private matchCandidate;
86
- private setTracking;
87
- private markMissing;
88
- private setAway;
89
- private createResult;
90
- }
package/dist/pose.d.ts DELETED
@@ -1,15 +0,0 @@
1
- import type { NormalizedLandmark } from "@mediapipe/tasks-vision";
2
- import { type NormalizedPoint, type NormalizedBox, type CandidateMode } from "./pose/mediapipe-main-user-tracker";
3
- export declare function isVisible(landmark: NormalizedLandmark | undefined, minVisibility: number): landmark is NormalizedLandmark;
4
- export declare function getVisibleTorsoLandmarks(landmarks: NormalizedLandmark[], minVisibility: number): NormalizedLandmark[];
5
- export declare function getCandidateThresholds(mode: CandidateMode): {
6
- minShoulderWidth: number;
7
- minVisibility: number;
8
- };
9
- export declare function averageLandmarks(landmarks: NormalizedLandmark[]): NormalizedPoint;
10
- export declare function getTorsoBox(landmarks: NormalizedLandmark[]): NormalizedBox;
11
- export declare function getBoxOverlapRatio(first: NormalizedBox, second: NormalizedBox): number;
12
- export declare function doesShoulderScaleMatch(previousShoulderWidth: number | undefined, nextShoulderWidth: number | undefined): boolean;
13
- export declare function getDistance(a: NormalizedPoint, b: NormalizedPoint): number;
14
- export declare function clampRatio(value: number): number;
15
- export declare function clampInteger(value: number, min: number, max: number): number;
@@ -1,71 +0,0 @@
1
- import type { MonitorDogOverlayMessages, MonitorDogOverlayOptions } from "../types";
2
- import type { ActiveOverlayJob, OverlayState } from "./overlay-service";
3
- type OverlayRendererOptions = {
4
- getOverlayOptions: () => MonitorDogOverlayOptions | undefined;
5
- getCurrentJob: () => ActiveOverlayJob | undefined;
6
- getOverlayMessage: (job: ActiveOverlayJob) => string;
7
- getLanguageMessages: () => MonitorDogOverlayMessages;
8
- hasInteractiveAction: (state: OverlayState | undefined) => boolean;
9
- isCameraOverlay: (state: OverlayState | undefined) => boolean;
10
- isRemoteLockOverlay: (state: OverlayState | undefined) => state is "remoteAdminLocked" | "remoteLocked";
11
- shouldShowNoFacePasswordInput: (job: ActiveOverlayJob) => boolean;
12
- getOnCameraRetry: () => (() => void | Promise<void>) | undefined;
13
- getOnRemoteUnlock: () => (() => void | Promise<void>) | undefined;
14
- getOnRemoteUnlockRequest: () => (() => void | Promise<void>) | undefined;
15
- getRemoteUnlockRequestCooldownMs: () => number;
16
- onNoFacePasswordSubmit: (password: string) => Promise<boolean>;
17
- getOnError: () => ((error: unknown) => void) | undefined;
18
- };
19
- export declare class OverlayRenderer {
20
- private readonly options;
21
- private previousBodyOverflow?;
22
- private remoteUnlockRequestCooldownIntervalId?;
23
- constructor(options: OverlayRendererOptions);
24
- ensureIntegrity(job: ActiveOverlayJob): void;
25
- render(job: ActiveOverlayJob): void;
26
- hide(): void;
27
- stop(): void;
28
- private get overlayOptions();
29
- private get languageMessages();
30
- private get rootId();
31
- private syncActions;
32
- private lockPageScroll;
33
- private unlockPageScroll;
34
- private getOverlayElement;
35
- private applyOverlayStyle;
36
- private applyOverlayMessageStyle;
37
- private getOverlayMessageElement;
38
- private syncCameraRetryButton;
39
- private handleCameraRetry;
40
- private syncRemoteLockButton;
41
- private handleRemoteLockAction;
42
- private resetCameraRetryButton;
43
- private resetRemoteLockButton;
44
- private syncNoFacePasswordInput;
45
- private resetNoFacePasswordInput;
46
- private toggleNoFacePasswordVisibility;
47
- private updateNoFacePasswordToggleButton;
48
- private handleNoFacePasswordSubmit;
49
- private applyCameraRetryButtonStyle;
50
- private applyRemoteLockButtonStyle;
51
- private applyNoFacePasswordInputStyle;
52
- private applyNoFacePasswordInputWrapperStyle;
53
- private applyNoFacePasswordFormStyle;
54
- private applyNoFacePasswordSubmitButtonStyle;
55
- private applyNoFacePasswordToggleButtonStyle;
56
- private updateRemoteUnlockRequestCooldownButton;
57
- private startRemoteUnlockRequestCooldownTimer;
58
- private clearRemoteUnlockRequestCooldownTimer;
59
- private applyRemoteLockButtonEnabledState;
60
- private applyRemoteLockButtonDisabledState;
61
- private applyPointerEvents;
62
- private getCameraRetryButtonText;
63
- private getCameraRetryingButtonText;
64
- private getRemoteLockButtonText;
65
- private getRemoteLockBusyButtonText;
66
- private getNoFacePasswordSubmitButtonText;
67
- private getNoFacePasswordSubmittingButtonText;
68
- private getNoFacePasswordOpenIconSrc;
69
- private getNoFacePasswordCloseIconSrc;
70
- }
71
- export {};
@@ -1,75 +0,0 @@
1
- import type { MonitorDogOverlayType } from "../types";
2
- import type { ServiceContainer } from "./container";
3
- export type OverlayState = MonitorDogOverlayType | "inferenceMemoryError" | "remoteAdminLocked" | "remoteLocked";
4
- export type OverlaySource = "camera" | "detection" | "remote" | "system";
5
- type OverlayJob = {
6
- action: "show";
7
- id: string;
8
- state: OverlayState;
9
- source: OverlaySource;
10
- text?: string;
11
- durationMs?: number;
12
- priority?: number;
13
- } | {
14
- action: "clear";
15
- id?: string;
16
- source?: OverlaySource;
17
- };
18
- export interface ActiveOverlayJob {
19
- id: string;
20
- state: OverlayState;
21
- source: OverlaySource;
22
- text?: string;
23
- priority: number;
24
- requiresPasswordInput: boolean;
25
- }
26
- export declare class OverlayService {
27
- private readonly services;
28
- private readonly queue;
29
- private readonly activeJobs;
30
- private readonly jobTimeoutIds;
31
- private readonly renderer;
32
- private readonly watchdog;
33
- private currentJob?;
34
- constructor(services: ServiceContainer);
35
- private get isDebug();
36
- private get overlayOptions();
37
- show(eventType: MonitorDogOverlayType): void;
38
- hide(): void;
39
- lock(durationMs: number): void;
40
- clearLock(): void;
41
- isLocked(): boolean;
42
- isShowing(): boolean;
43
- isShowingDetectionBlocker(): boolean;
44
- hasActiveSource(source: OverlaySource): boolean;
45
- hasActiveState(state: OverlayState): boolean;
46
- hasActiveResumePasswordLock(): boolean;
47
- enqueue(job: OverlayJob): void;
48
- showJob(job: Omit<Extract<OverlayJob, {
49
- action: "show";
50
- }>, "action">): void;
51
- clearJob(id: string): void;
52
- clearSource(source: OverlaySource): void;
53
- stopWatchdog(): void;
54
- private startWatchdog;
55
- private ensureIntegrity;
56
- private processQueue;
57
- private clearJobs;
58
- private syncActiveOverlay;
59
- private renderHidden;
60
- private getNextActiveJob;
61
- private setJobDuration;
62
- private clearJobDuration;
63
- private getOverlayMessage;
64
- private getLanguageMessages;
65
- private getDefaultSource;
66
- private getDefaultPriority;
67
- private handleNoFacePasswordSubmit;
68
- private isCameraOverlay;
69
- private isRemoteLockOverlay;
70
- private shouldRequirePasswordInput;
71
- private shouldShowNoFacePasswordInput;
72
- private hasInteractiveAction;
73
- private isMonitorDogOverlayType;
74
- }
75
- export {};
@@ -1,13 +0,0 @@
1
- import type { MonitorDogOverlayOptions } from "../types";
2
- interface OverlayWatchdogOptions {
3
- getOverlayOptions: () => MonitorDogOverlayOptions | undefined;
4
- ensureIntegrity: () => void;
5
- }
6
- export declare class OverlayWatchdogService {
7
- private readonly options;
8
- private intervalId?;
9
- constructor(options: OverlayWatchdogOptions);
10
- start(): void;
11
- stop(): void;
12
- }
13
- export {};