@rajeev02/camera 0.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.
@@ -0,0 +1,180 @@
1
+ /**
2
+ * @rajeev02/camera — Capture Module
3
+ * Full camera abstraction: photo, video, HDR, panorama, timer, burst, night mode
4
+ */
5
+ export type CameraFacing = "front" | "back";
6
+ export type FlashMode = "off" | "on" | "auto" | "torch";
7
+ export type CaptureMode = "photo" | "video" | "portrait" | "panorama" | "night" | "burst" | "timelapse" | "slow_motion" | "document";
8
+ export type AspectRatio = "1:1" | "4:3" | "16:9" | "3:2" | "full";
9
+ export type GridType = "none" | "rule_of_thirds" | "golden_ratio" | "square" | "crosshair";
10
+ export interface CameraConfig {
11
+ facing: CameraFacing;
12
+ flash: FlashMode;
13
+ mode: CaptureMode;
14
+ aspectRatio: AspectRatio;
15
+ grid: GridType;
16
+ /** Enable HDR (High Dynamic Range) */
17
+ hdr: boolean;
18
+ /** Enable image stabilization */
19
+ stabilization: boolean;
20
+ /** Timer delay in seconds (0 = no timer) */
21
+ timerSeconds: number;
22
+ /** Zoom level (1.0 = no zoom) */
23
+ zoom: number;
24
+ /** Max zoom level */
25
+ maxZoom: number;
26
+ /** Photo quality (0-100) */
27
+ photoQuality: number;
28
+ /** Video resolution */
29
+ videoResolution: VideoResolution;
30
+ /** Video frame rate */
31
+ videoFps: number;
32
+ /** Enable location tagging */
33
+ geoTag: boolean;
34
+ /** Enable sound on capture */
35
+ shutterSound: boolean;
36
+ /** Enable beauty/face enhancement mode */
37
+ beautyMode: boolean;
38
+ /** Beauty mode intensity (0-100) */
39
+ beautyIntensity: number;
40
+ /** Watermark text (e.g., timestamp, custom text) */
41
+ watermark?: string;
42
+ /** Mirror front camera preview */
43
+ mirrorFrontCamera: boolean;
44
+ }
45
+ export type VideoResolution = "480p" | "720p" | "1080p" | "2K" | "4K";
46
+ export interface CapturedMedia {
47
+ id: string;
48
+ uri: string;
49
+ type: "photo" | "video";
50
+ width: number;
51
+ height: number;
52
+ /** File size in bytes */
53
+ sizeBytes: number;
54
+ /** MIME type */
55
+ mimeType: string;
56
+ /** Duration in ms (video only) */
57
+ durationMs?: number;
58
+ /** Thumbnail URI (video) */
59
+ thumbnailUri?: string;
60
+ /** EXIF metadata */
61
+ exif?: ExifData;
62
+ /** Timestamp */
63
+ capturedAt: number;
64
+ }
65
+ export interface ExifData {
66
+ make?: string;
67
+ model?: string;
68
+ dateTime?: string;
69
+ gpsLatitude?: number;
70
+ gpsLongitude?: number;
71
+ focalLength?: number;
72
+ exposureTime?: string;
73
+ iso?: number;
74
+ aperture?: number;
75
+ flash?: boolean;
76
+ orientation?: number;
77
+ }
78
+ export interface FocusPoint {
79
+ x: number;
80
+ y: number;
81
+ autoExposure: boolean;
82
+ }
83
+ export interface CameraCapabilities {
84
+ hasFlash: boolean;
85
+ hasFrontCamera: boolean;
86
+ hasBackCamera: boolean;
87
+ maxZoom: number;
88
+ supportedModes: CaptureMode[];
89
+ supportedResolutions: VideoResolution[];
90
+ supportedFps: number[];
91
+ supportsHdr: boolean;
92
+ supportsNightMode: boolean;
93
+ supportsPortrait: boolean;
94
+ supportsPanorama: boolean;
95
+ supportsSlowMotion: boolean;
96
+ supportsTimelapse: boolean;
97
+ supportsBeautyMode: boolean;
98
+ supportsOpticalZoom: boolean;
99
+ supportedAspectRatios: AspectRatio[];
100
+ }
101
+ /**
102
+ * Camera Controller — manages camera state, capture, and settings
103
+ */
104
+ export declare class CameraController {
105
+ private config;
106
+ private isRecording;
107
+ private recordingStartTime;
108
+ private capturedMedia;
109
+ private listeners;
110
+ constructor(config?: Partial<CameraConfig>);
111
+ /** Switch between front and back camera */
112
+ flipCamera(): void;
113
+ /** Set capture mode */
114
+ setMode(mode: CaptureMode): void;
115
+ /** Set flash mode */
116
+ setFlash(mode: FlashMode): void;
117
+ /** Cycle flash mode: off → on → auto */
118
+ cycleFlash(): FlashMode;
119
+ /** Set zoom level */
120
+ setZoom(zoom: number): void;
121
+ /** Set focus point (tap to focus) */
122
+ setFocusPoint(point: FocusPoint): void;
123
+ /** Set aspect ratio */
124
+ setAspectRatio(ratio: AspectRatio): void;
125
+ /** Set grid overlay */
126
+ setGrid(grid: GridType): void;
127
+ /** Toggle HDR */
128
+ toggleHdr(): boolean;
129
+ /** Toggle beauty mode */
130
+ toggleBeautyMode(): boolean;
131
+ /** Set beauty intensity */
132
+ setBeautyIntensity(intensity: number): void;
133
+ /** Set timer delay */
134
+ setTimer(seconds: number): void;
135
+ /** Cycle timer: 0 → 3 → 5 → 10 → 0 */
136
+ cycleTimer(): number;
137
+ /** Capture a photo (returns mock; native layer does actual capture) */
138
+ capturePhoto(): string;
139
+ /** Start video recording */
140
+ startRecording(): void;
141
+ /** Stop video recording */
142
+ stopRecording(): void;
143
+ /** Called by native layer when media is captured */
144
+ onMediaCaptured(media: CapturedMedia): void;
145
+ /** Get recording state */
146
+ getIsRecording(): boolean;
147
+ /** Get recording duration */
148
+ getRecordingDurationMs(): number;
149
+ /** Get current config */
150
+ getConfig(): CameraConfig;
151
+ /** Get captured media gallery */
152
+ getCapturedMedia(): CapturedMedia[];
153
+ /** Subscribe to camera events */
154
+ on(listener: (event: CameraEvent) => void): () => void;
155
+ /** Get default capabilities (native layer overrides) */
156
+ static getDefaultCapabilities(): CameraCapabilities;
157
+ private emit;
158
+ }
159
+ export type CameraEvent = {
160
+ type: "camera_flipped";
161
+ facing: CameraFacing;
162
+ } | {
163
+ type: "mode_changed";
164
+ mode: CaptureMode;
165
+ } | {
166
+ type: "focus_set";
167
+ point: FocusPoint;
168
+ } | {
169
+ type: "capture_started";
170
+ mediaType: "photo" | "video";
171
+ } | {
172
+ type: "recording_started";
173
+ } | {
174
+ type: "recording_stopped";
175
+ durationMs: number;
176
+ } | {
177
+ type: "media_captured";
178
+ media: CapturedMedia;
179
+ };
180
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/capture/index.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,190 @@
1
+ "use strict";
2
+ /**
3
+ * @rajeev02/camera — Capture Module
4
+ * Full camera abstraction: photo, video, HDR, panorama, timer, burst, night mode
5
+ */
6
+ Object.defineProperty(exports, "__esModule", { value: true });
7
+ exports.CameraController = void 0;
8
+ /**
9
+ * Camera Controller — manages camera state, capture, and settings
10
+ */
11
+ class CameraController {
12
+ constructor(config) {
13
+ this.isRecording = false;
14
+ this.recordingStartTime = 0;
15
+ this.capturedMedia = [];
16
+ this.listeners = new Set();
17
+ this.config = {
18
+ facing: "back",
19
+ flash: "auto",
20
+ mode: "photo",
21
+ aspectRatio: "4:3",
22
+ grid: "rule_of_thirds",
23
+ hdr: false,
24
+ stabilization: true,
25
+ timerSeconds: 0,
26
+ zoom: 1.0,
27
+ maxZoom: 10.0,
28
+ photoQuality: 90,
29
+ videoResolution: "1080p",
30
+ videoFps: 30,
31
+ geoTag: false,
32
+ shutterSound: true,
33
+ beautyMode: false,
34
+ beautyIntensity: 50,
35
+ mirrorFrontCamera: true,
36
+ ...config,
37
+ };
38
+ }
39
+ /** Switch between front and back camera */
40
+ flipCamera() {
41
+ this.config.facing = this.config.facing === "front" ? "back" : "front";
42
+ this.emit({ type: "camera_flipped", facing: this.config.facing });
43
+ }
44
+ /** Set capture mode */
45
+ setMode(mode) {
46
+ this.config.mode = mode;
47
+ this.emit({ type: "mode_changed", mode });
48
+ }
49
+ /** Set flash mode */
50
+ setFlash(mode) {
51
+ this.config.flash = mode;
52
+ }
53
+ /** Cycle flash mode: off → on → auto */
54
+ cycleFlash() {
55
+ const cycle = ["off", "on", "auto"];
56
+ const idx = (cycle.indexOf(this.config.flash) + 1) % cycle.length;
57
+ this.config.flash = cycle[idx];
58
+ return this.config.flash;
59
+ }
60
+ /** Set zoom level */
61
+ setZoom(zoom) {
62
+ this.config.zoom = Math.max(1.0, Math.min(zoom, this.config.maxZoom));
63
+ }
64
+ /** Set focus point (tap to focus) */
65
+ setFocusPoint(point) {
66
+ this.emit({ type: "focus_set", point });
67
+ }
68
+ /** Set aspect ratio */
69
+ setAspectRatio(ratio) {
70
+ this.config.aspectRatio = ratio;
71
+ }
72
+ /** Set grid overlay */
73
+ setGrid(grid) {
74
+ this.config.grid = grid;
75
+ }
76
+ /** Toggle HDR */
77
+ toggleHdr() {
78
+ this.config.hdr = !this.config.hdr;
79
+ return this.config.hdr;
80
+ }
81
+ /** Toggle beauty mode */
82
+ toggleBeautyMode() {
83
+ this.config.beautyMode = !this.config.beautyMode;
84
+ return this.config.beautyMode;
85
+ }
86
+ /** Set beauty intensity */
87
+ setBeautyIntensity(intensity) {
88
+ this.config.beautyIntensity = Math.max(0, Math.min(100, intensity));
89
+ }
90
+ /** Set timer delay */
91
+ setTimer(seconds) {
92
+ this.config.timerSeconds = seconds;
93
+ }
94
+ /** Cycle timer: 0 → 3 → 5 → 10 → 0 */
95
+ cycleTimer() {
96
+ const cycle = [0, 3, 5, 10];
97
+ const idx = (cycle.indexOf(this.config.timerSeconds) + 1) % cycle.length;
98
+ this.config.timerSeconds = cycle[idx];
99
+ return this.config.timerSeconds;
100
+ }
101
+ /** Capture a photo (returns mock; native layer does actual capture) */
102
+ capturePhoto() {
103
+ const id = `photo_${Date.now()}`;
104
+ this.emit({ type: "capture_started", mediaType: "photo" });
105
+ // Native layer would capture and call onPhotoCaptured
106
+ return id;
107
+ }
108
+ /** Start video recording */
109
+ startRecording() {
110
+ if (this.isRecording)
111
+ return;
112
+ this.isRecording = true;
113
+ this.recordingStartTime = Date.now();
114
+ this.emit({ type: "recording_started" });
115
+ }
116
+ /** Stop video recording */
117
+ stopRecording() {
118
+ if (!this.isRecording)
119
+ return;
120
+ this.isRecording = false;
121
+ const durationMs = Date.now() - this.recordingStartTime;
122
+ this.emit({ type: "recording_stopped", durationMs });
123
+ }
124
+ /** Called by native layer when media is captured */
125
+ onMediaCaptured(media) {
126
+ this.capturedMedia.push(media);
127
+ this.emit({ type: "media_captured", media });
128
+ }
129
+ /** Get recording state */
130
+ getIsRecording() {
131
+ return this.isRecording;
132
+ }
133
+ /** Get recording duration */
134
+ getRecordingDurationMs() {
135
+ if (!this.isRecording)
136
+ return 0;
137
+ return Date.now() - this.recordingStartTime;
138
+ }
139
+ /** Get current config */
140
+ getConfig() {
141
+ return { ...this.config };
142
+ }
143
+ /** Get captured media gallery */
144
+ getCapturedMedia() {
145
+ return [...this.capturedMedia];
146
+ }
147
+ /** Subscribe to camera events */
148
+ on(listener) {
149
+ this.listeners.add(listener);
150
+ return () => this.listeners.delete(listener);
151
+ }
152
+ /** Get default capabilities (native layer overrides) */
153
+ static getDefaultCapabilities() {
154
+ return {
155
+ hasFlash: true,
156
+ hasFrontCamera: true,
157
+ hasBackCamera: true,
158
+ maxZoom: 10,
159
+ supportedModes: [
160
+ "photo",
161
+ "video",
162
+ "portrait",
163
+ "panorama",
164
+ "night",
165
+ "document",
166
+ ],
167
+ supportedResolutions: ["480p", "720p", "1080p", "4K"],
168
+ supportedFps: [24, 30, 60, 120, 240],
169
+ supportsHdr: true,
170
+ supportsNightMode: true,
171
+ supportsPortrait: true,
172
+ supportsPanorama: true,
173
+ supportsSlowMotion: true,
174
+ supportsTimelapse: true,
175
+ supportsBeautyMode: true,
176
+ supportsOpticalZoom: false,
177
+ supportedAspectRatios: ["1:1", "4:3", "16:9", "3:2", "full"],
178
+ };
179
+ }
180
+ emit(event) {
181
+ for (const l of this.listeners) {
182
+ try {
183
+ l(event);
184
+ }
185
+ catch { }
186
+ }
187
+ }
188
+ }
189
+ exports.CameraController = CameraController;
190
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/capture/index.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,40 @@
1
+ /**
2
+ * @rajeev02/camera — Photo Filters
3
+ * Preset filters (Instagram/Snapchat style) with adjustable intensity
4
+ */
5
+ export interface PhotoFilter {
6
+ id: string;
7
+ name: string;
8
+ category: FilterCategory;
9
+ /** Thumbnail preview URI */
10
+ thumbnail?: string;
11
+ /** Adjustment values this filter applies */
12
+ adjustments: Partial<FilterAdjustments>;
13
+ /** Whether this is a premium filter */
14
+ premium: boolean;
15
+ }
16
+ export type FilterCategory = "natural" | "warm" | "cool" | "vintage" | "dramatic" | "bw" | "film" | "portrait" | "food" | "landscape" | "night" | "artistic";
17
+ export interface FilterAdjustments {
18
+ brightness: number;
19
+ contrast: number;
20
+ saturation: number;
21
+ warmth: number;
22
+ tint: number;
23
+ highlights: number;
24
+ shadows: number;
25
+ sharpness: number;
26
+ grain: number;
27
+ vignette: number;
28
+ fadeAmount: number;
29
+ hue: number;
30
+ }
31
+ /** Built-in filter presets */
32
+ export declare function getBuiltInFilters(): PhotoFilter[];
33
+ /** Get filters by category */
34
+ export declare function getFiltersByCategory(category: FilterCategory): PhotoFilter[];
35
+ /** Get all filter categories */
36
+ export declare function getFilterCategories(): {
37
+ id: FilterCategory;
38
+ label: string;
39
+ }[];
40
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/filters/index.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,MAAM,WAAW,WAAW;IAC1B,EAAE,EAAE,MAAM,CAAC;IACX,IAAI,EAAE,MAAM,CAAC;IACb,QAAQ,EAAE,cAAc,CAAC;IACzB,4BAA4B;IAC5B,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,4CAA4C;IAC5C,WAAW,EAAE,OAAO,CAAC,iBAAiB,CAAC,CAAC;IACxC,uCAAuC;IACvC,OAAO,EAAE,OAAO,CAAC;CAClB;AAED,MAAM,MAAM,cAAc,GACtB,SAAS,GACT,MAAM,GACN,MAAM,GACN,SAAS,GACT,UAAU,GACV,IAAI,GACJ,MAAM,GACN,UAAU,GACV,MAAM,GACN,WAAW,GACX,OAAO,GACP,UAAU,CAAC;AAEf,MAAM,WAAW,iBAAiB;IAChC,UAAU,EAAE,MAAM,CAAC;IACnB,QAAQ,EAAE,MAAM,CAAC;IACjB,UAAU,EAAE,MAAM,CAAC;IACnB,MAAM,EAAE,MAAM,CAAC;IACf,IAAI,EAAE,MAAM,CAAC;IACb,UAAU,EAAE,MAAM,CAAC;IACnB,OAAO,EAAE,MAAM,CAAC;IAChB,SAAS,EAAE,MAAM,CAAC;IAClB,KAAK,EAAE,MAAM,CAAC;IACd,QAAQ,EAAE,MAAM,CAAC;IACjB,UAAU,EAAE,MAAM,CAAC;IACnB,GAAG,EAAE,MAAM,CAAC;CACb;AAED,8BAA8B;AAC9B,wBAAgB,iBAAiB,IAAI,WAAW,EAAE,CAgQjD;AAED,8BAA8B;AAC9B,wBAAgB,oBAAoB,CAAC,QAAQ,EAAE,cAAc,GAAG,WAAW,EAAE,CAE5E;AAED,gCAAgC;AAChC,wBAAgB,mBAAmB,IAAI;IAAE,EAAE,EAAE,cAAc,CAAC;IAAC,KAAK,EAAE,MAAM,CAAA;CAAE,EAAE,CAe7E"}