@lakebed-native/capabilities 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,8 @@
1
+ import type { CapabilityErrorCode, CapabilityResult } from "@lakebed-native/shared";
2
+ export declare function ok<T>(data: T): CapabilityResult<T>;
3
+ export declare function fail<T>(code: CapabilityErrorCode, message: string): CapabilityResult<T>;
4
+ export declare function unsupported<T>(feature: string): CapabilityResult<T>;
5
+ export declare function permissionDenied<T>(feature: string): CapabilityResult<T>;
6
+ export declare function unavailable<T>(feature: string): CapabilityResult<T>;
7
+ export declare function withCapability<T>(name: string, fn: () => Promise<CapabilityResult<T>>): Promise<CapabilityResult<T>>;
8
+ //# sourceMappingURL=errors.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"errors.d.ts","sourceRoot":"","sources":["../../src/capabilities/errors.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,mBAAmB,EAAE,gBAAgB,EAAE,MAAM,wBAAwB,CAAC;AAGpF,wBAAgB,EAAE,CAAC,CAAC,EAAE,IAAI,EAAE,CAAC,GAAG,gBAAgB,CAAC,CAAC,CAAC,CAElD;AAED,wBAAgB,IAAI,CAAC,CAAC,EACpB,IAAI,EAAE,mBAAmB,EACzB,OAAO,EAAE,MAAM,GACd,gBAAgB,CAAC,CAAC,CAAC,CAErB;AAED,wBAAgB,WAAW,CAAC,CAAC,EAAE,OAAO,EAAE,MAAM,GAAG,gBAAgB,CAAC,CAAC,CAAC,CAEnE;AAED,wBAAgB,gBAAgB,CAAC,CAAC,EAAE,OAAO,EAAE,MAAM,GAAG,gBAAgB,CAAC,CAAC,CAAC,CAExE;AAED,wBAAgB,WAAW,CAAC,CAAC,EAAE,OAAO,EAAE,MAAM,GAAG,gBAAgB,CAAC,CAAC,CAAC,CAEnE;AAED,wBAAsB,cAAc,CAAC,CAAC,EACpC,IAAI,EAAE,MAAM,EACZ,EAAE,EAAE,MAAM,OAAO,CAAC,gBAAgB,CAAC,CAAC,CAAC,CAAC,GACrC,OAAO,CAAC,gBAAgB,CAAC,CAAC,CAAC,CAAC,CAa9B"}
@@ -0,0 +1,32 @@
1
+ import { Platform } from "react-native";
2
+ export function ok(data) {
3
+ return { ok: true, data };
4
+ }
5
+ export function fail(code, message) {
6
+ return { ok: false, code, message };
7
+ }
8
+ export function unsupported(feature) {
9
+ return fail("unsupported_platform", `${feature} is not supported on ${Platform.OS}`);
10
+ }
11
+ export function permissionDenied(feature) {
12
+ return fail("permission_denied", `Permission denied for ${feature}`);
13
+ }
14
+ export function unavailable(feature) {
15
+ return fail("unavailable_hardware", `${feature} hardware is unavailable`);
16
+ }
17
+ export async function withCapability(name, fn) {
18
+ try {
19
+ return await fn();
20
+ }
21
+ catch (err) {
22
+ const msg = err instanceof Error ? err.message : String(err);
23
+ if (/permission|denied|authorized/i.test(msg)) {
24
+ return permissionDenied(name);
25
+ }
26
+ if (/unavailable|not available|hardware/i.test(msg)) {
27
+ return unavailable(name);
28
+ }
29
+ return fail("unknown", msg);
30
+ }
31
+ }
32
+ //# sourceMappingURL=errors.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"errors.js","sourceRoot":"","sources":["../../src/capabilities/errors.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,QAAQ,EAAE,MAAM,cAAc,CAAC;AAExC,MAAM,UAAU,EAAE,CAAI,IAAO;IAC3B,OAAO,EAAE,EAAE,EAAE,IAAI,EAAE,IAAI,EAAE,CAAC;AAC5B,CAAC;AAED,MAAM,UAAU,IAAI,CAClB,IAAyB,EACzB,OAAe;IAEf,OAAO,EAAE,EAAE,EAAE,KAAK,EAAE,IAAI,EAAE,OAAO,EAAE,CAAC;AACtC,CAAC;AAED,MAAM,UAAU,WAAW,CAAI,OAAe;IAC5C,OAAO,IAAI,CAAC,sBAAsB,EAAE,GAAG,OAAO,wBAAwB,QAAQ,CAAC,EAAE,EAAE,CAAC,CAAC;AACvF,CAAC;AAED,MAAM,UAAU,gBAAgB,CAAI,OAAe;IACjD,OAAO,IAAI,CAAC,mBAAmB,EAAE,yBAAyB,OAAO,EAAE,CAAC,CAAC;AACvE,CAAC;AAED,MAAM,UAAU,WAAW,CAAI,OAAe;IAC5C,OAAO,IAAI,CAAC,sBAAsB,EAAE,GAAG,OAAO,0BAA0B,CAAC,CAAC;AAC5E,CAAC;AAED,MAAM,CAAC,KAAK,UAAU,cAAc,CAClC,IAAY,EACZ,EAAsC;IAEtC,IAAI,CAAC;QACH,OAAO,MAAM,EAAE,EAAE,CAAC;IACpB,CAAC;IAAC,OAAO,GAAG,EAAE,CAAC;QACb,MAAM,GAAG,GAAG,GAAG,YAAY,KAAK,CAAC,CAAC,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC;QAC7D,IAAI,+BAA+B,CAAC,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC;YAC9C,OAAO,gBAAgB,CAAC,IAAI,CAAC,CAAC;QAChC,CAAC;QACD,IAAI,qCAAqC,CAAC,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC;YACpD,OAAO,WAAW,CAAC,IAAI,CAAC,CAAC;QAC3B,CAAC;QACD,OAAO,IAAI,CAAC,SAAS,EAAE,GAAG,CAAC,CAAC;IAC9B,CAAC;AACH,CAAC"}
@@ -0,0 +1,43 @@
1
+ export type PhotoResult = {
2
+ uri: string;
3
+ width?: number;
4
+ height?: number;
5
+ };
6
+ export declare const camera: {
7
+ takePhoto(): Promise<import("@lakebed-native/shared").CapabilityResult<PhotoResult>>;
8
+ };
9
+ export declare const imagePicker: {
10
+ pick(): Promise<import("@lakebed-native/shared").CapabilityResult<PhotoResult>>;
11
+ };
12
+ export declare const location: {
13
+ getCurrent(): Promise<import("@lakebed-native/shared").CapabilityResult<{
14
+ latitude: number;
15
+ longitude: number;
16
+ accuracy?: number;
17
+ }>>;
18
+ };
19
+ export declare const haptics: {
20
+ impact(style?: "light" | "medium" | "heavy"): Promise<import("@lakebed-native/shared").CapabilityResult<void>>;
21
+ };
22
+ export declare const clipboard: {
23
+ set(text: string): Promise<import("@lakebed-native/shared").CapabilityResult<void>>;
24
+ get(): Promise<import("@lakebed-native/shared").CapabilityResult<string>>;
25
+ };
26
+ export declare const notifications: {
27
+ requestPermission(): Promise<import("@lakebed-native/shared").CapabilityResult<boolean>>;
28
+ };
29
+ export declare const secureStorage: {
30
+ set(key: string, value: string): Promise<import("@lakebed-native/shared").CapabilityResult<void>>;
31
+ get(key: string): Promise<import("@lakebed-native/shared").CapabilityResult<string | null>>;
32
+ };
33
+ export declare const files: {
34
+ read(uri: string): Promise<import("@lakebed-native/shared").CapabilityResult<string>>;
35
+ write(uri: string, content: string): Promise<import("@lakebed-native/shared").CapabilityResult<void>>;
36
+ };
37
+ export declare const share: {
38
+ text(message: string): Promise<import("@lakebed-native/shared").CapabilityResult<void>>;
39
+ };
40
+ export declare const linking: {
41
+ open(url: string): Promise<import("@lakebed-native/shared").CapabilityResult<void>>;
42
+ };
43
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/capabilities/index.ts"],"names":[],"mappings":"AAEA,MAAM,MAAM,WAAW,GAAG;IAAE,GAAG,EAAE,MAAM,CAAC;IAAC,KAAK,CAAC,EAAE,MAAM,CAAC;IAAC,MAAM,CAAC,EAAE,MAAM,CAAA;CAAE,CAAC;AAE3E,eAAO,MAAM,MAAM;iBACE,OAAO,CAAC,OAAO,wBAAwB,EAAE,gBAAgB,CAAC,WAAW,CAAC,CAAC;CAmB3F,CAAC;AAEF,eAAO,MAAM,WAAW;YACR,OAAO,CAAC,OAAO,wBAAwB,EAAE,gBAAgB,CAAC,WAAW,CAAC,CAAC;CActF,CAAC;AAEF,eAAO,MAAM,QAAQ;kBACC,OAAO,CACzB,OAAO,wBAAwB,EAAE,gBAAgB,CAAC;QAChD,QAAQ,EAAE,MAAM,CAAC;QACjB,SAAS,EAAE,MAAM,CAAC;QAClB,QAAQ,CAAC,EAAE,MAAM,CAAC;KACnB,CAAC,CACH;CAcF,CAAC;AAEF,eAAO,MAAM,OAAO;mBACE,OAAO,GAAG,QAAQ,GAAG,OAAO,GAAc,OAAO,CACnE,OAAO,wBAAwB,EAAE,gBAAgB,CAAC,IAAI,CAAC,CACxD;CAaF,CAAC;AAEF,eAAO,MAAM,SAAS;cACJ,MAAM,GAAG,OAAO,CAAC,OAAO,wBAAwB,EAAE,gBAAgB,CAAC,IAAI,CAAC,CAAC;WAQ5E,OAAO,CAAC,OAAO,wBAAwB,EAAE,gBAAgB,CAAC,MAAM,CAAC,CAAC;CAQhF,CAAC;AAEF,eAAO,MAAM,aAAa;yBACG,OAAO,CAAC,OAAO,wBAAwB,EAAE,gBAAgB,CAAC,OAAO,CAAC,CAAC;CAQ/F,CAAC;AAEF,eAAO,MAAM,aAAa;aACT,MAAM,SAAS,MAAM,GAAG,OAAO,CAAC,OAAO,wBAAwB,EAAE,gBAAgB,CAAC,IAAI,CAAC,CAAC;aAQxF,MAAM,GAAG,OAAO,CAAC,OAAO,wBAAwB,EAAE,gBAAgB,CAAC,MAAM,GAAG,IAAI,CAAC,CAAC;CAQlG,CAAC;AAEF,eAAO,MAAM,KAAK;cACA,MAAM,GAAG,OAAO,CAAC,OAAO,wBAAwB,EAAE,gBAAgB,CAAC,MAAM,CAAC,CAAC;eAQ1E,MAAM,WAAW,MAAM,GAAG,OAAO,CAAC,OAAO,wBAAwB,EAAE,gBAAgB,CAAC,IAAI,CAAC,CAAC;CAQ5G,CAAC;AAEF,eAAO,MAAM,KAAK;kBACI,MAAM,GAAG,OAAO,CAAC,OAAO,wBAAwB,EAAE,gBAAgB,CAAC,IAAI,CAAC,CAAC;CAO9F,CAAC;AAEF,eAAO,MAAM,OAAO;cACF,MAAM,GAAG,OAAO,CAAC,OAAO,wBAAwB,EAAE,gBAAgB,CAAC,IAAI,CAAC,CAAC;CAS1F,CAAC"}
@@ -0,0 +1,170 @@
1
+ import { withCapability, ok, permissionDenied, unsupported } from "./errors.js";
2
+ export const camera = {
3
+ async takePhoto() {
4
+ return withCapability("camera", async () => {
5
+ const cameraMod = await import("expo-camera").catch(() => null);
6
+ const imagePickerMod = await import("expo-image-picker").catch(() => null);
7
+ if (!cameraMod || !imagePickerMod)
8
+ return unsupported("camera");
9
+ try {
10
+ const perm = await cameraMod.Camera.requestCameraPermissionsAsync();
11
+ if (!perm.granted)
12
+ return permissionDenied("camera");
13
+ const result = await imagePickerMod.launchCameraAsync({ quality: 0.8 });
14
+ if (result.canceled || !result.assets[0]) {
15
+ return permissionDenied("camera");
16
+ }
17
+ const asset = result.assets[0];
18
+ return ok({ uri: asset.uri, width: asset.width, height: asset.height });
19
+ }
20
+ catch {
21
+ return unsupported("camera");
22
+ }
23
+ });
24
+ },
25
+ };
26
+ export const imagePicker = {
27
+ async pick() {
28
+ return withCapability("imagePicker", async () => {
29
+ const ImagePicker = await import("expo-image-picker").catch(() => null);
30
+ if (!ImagePicker)
31
+ return unsupported("imagePicker");
32
+ const perm = await ImagePicker.requestMediaLibraryPermissionsAsync();
33
+ if (!perm.granted)
34
+ return permissionDenied("imagePicker");
35
+ const result = await ImagePicker.launchImageLibraryAsync({ quality: 0.8 });
36
+ if (result.canceled || !result.assets[0]) {
37
+ return permissionDenied("imagePicker");
38
+ }
39
+ const asset = result.assets[0];
40
+ return ok({ uri: asset.uri, width: asset.width, height: asset.height });
41
+ });
42
+ },
43
+ };
44
+ export const location = {
45
+ async getCurrent() {
46
+ return withCapability("location", async () => {
47
+ const Loc = await import("expo-location").catch(() => null);
48
+ if (!Loc)
49
+ return unsupported("location");
50
+ const perm = await Loc.requestForegroundPermissionsAsync();
51
+ if (!perm.granted)
52
+ return permissionDenied("location");
53
+ const pos = await Loc.getCurrentPositionAsync({});
54
+ return ok({
55
+ latitude: pos.coords.latitude,
56
+ longitude: pos.coords.longitude,
57
+ accuracy: pos.coords.accuracy ?? undefined,
58
+ });
59
+ });
60
+ },
61
+ };
62
+ export const haptics = {
63
+ async impact(style = "medium") {
64
+ return withCapability("haptics", async () => {
65
+ const Haptics = await import("expo-haptics").catch(() => null);
66
+ if (!Haptics)
67
+ return unsupported("haptics");
68
+ const styleMap = {
69
+ light: Haptics.ImpactFeedbackStyle.Light,
70
+ medium: Haptics.ImpactFeedbackStyle.Medium,
71
+ heavy: Haptics.ImpactFeedbackStyle.Heavy,
72
+ };
73
+ await Haptics.impactAsync(styleMap[style]);
74
+ return ok(undefined);
75
+ });
76
+ },
77
+ };
78
+ export const clipboard = {
79
+ async set(text) {
80
+ return withCapability("clipboard", async () => {
81
+ const Clipboard = await import("expo-clipboard").catch(() => null);
82
+ if (!Clipboard)
83
+ return unsupported("clipboard");
84
+ await Clipboard.setStringAsync(text);
85
+ return ok(undefined);
86
+ });
87
+ },
88
+ async get() {
89
+ return withCapability("clipboard", async () => {
90
+ const Clipboard = await import("expo-clipboard").catch(() => null);
91
+ if (!Clipboard)
92
+ return unsupported("clipboard");
93
+ const text = await Clipboard.getStringAsync();
94
+ return ok(text);
95
+ });
96
+ },
97
+ };
98
+ export const notifications = {
99
+ async requestPermission() {
100
+ return withCapability("notifications", async () => {
101
+ const Notifications = await import("expo-notifications").catch(() => null);
102
+ if (!Notifications)
103
+ return unsupported("notifications");
104
+ const result = await Notifications.requestPermissionsAsync();
105
+ return ok(result.granted);
106
+ });
107
+ },
108
+ };
109
+ export const secureStorage = {
110
+ async set(key, value) {
111
+ return withCapability("secureStorage", async () => {
112
+ const SecureStore = await import("expo-secure-store").catch(() => null);
113
+ if (!SecureStore)
114
+ return unsupported("secureStorage");
115
+ await SecureStore.setItemAsync(key, value);
116
+ return ok(undefined);
117
+ });
118
+ },
119
+ async get(key) {
120
+ return withCapability("secureStorage", async () => {
121
+ const SecureStore = await import("expo-secure-store").catch(() => null);
122
+ if (!SecureStore)
123
+ return unsupported("secureStorage");
124
+ const value = await SecureStore.getItemAsync(key);
125
+ return ok(value);
126
+ });
127
+ },
128
+ };
129
+ export const files = {
130
+ async read(uri) {
131
+ return withCapability("files", async () => {
132
+ const FileSystem = await import("expo-file-system").catch(() => null);
133
+ if (!FileSystem)
134
+ return unsupported("files");
135
+ const content = await FileSystem.readAsStringAsync(uri);
136
+ return ok(content);
137
+ });
138
+ },
139
+ async write(uri, content) {
140
+ return withCapability("files", async () => {
141
+ const FileSystem = await import("expo-file-system").catch(() => null);
142
+ if (!FileSystem)
143
+ return unsupported("files");
144
+ await FileSystem.writeAsStringAsync(uri, content);
145
+ return ok(undefined);
146
+ });
147
+ },
148
+ };
149
+ export const share = {
150
+ async text(message) {
151
+ return withCapability("share", async () => {
152
+ const { Share } = await import("react-native");
153
+ await Share.share({ message });
154
+ return ok(undefined);
155
+ });
156
+ },
157
+ };
158
+ export const linking = {
159
+ async open(url) {
160
+ return withCapability("linking", async () => {
161
+ const { Linking } = await import("react-native");
162
+ const can = await Linking.canOpenURL(url);
163
+ if (!can)
164
+ return unsupported("linking");
165
+ await Linking.openURL(url);
166
+ return ok(undefined);
167
+ });
168
+ },
169
+ };
170
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/capabilities/index.ts"],"names":[],"mappings":"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"}
package/package.json ADDED
@@ -0,0 +1,39 @@
1
+ {
2
+ "name": "@lakebed-native/capabilities",
3
+ "version": "0.1.0",
4
+ "description": "Lakebed Native device capabilities",
5
+ "license": "MIT",
6
+ "repository": {
7
+ "type": "git",
8
+ "url": "git+https://github.com/mawlicious/lakebed-native.git",
9
+ "directory": "packages/capabilities"
10
+ },
11
+ "publishConfig": {
12
+ "access": "public"
13
+ },
14
+ "files": [
15
+ "dist"
16
+ ],
17
+ "type": "module",
18
+ "main": "./dist/capabilities/index.js",
19
+ "types": "./dist/capabilities/index.d.ts",
20
+ "exports": {
21
+ ".": {
22
+ "types": "./dist/capabilities/index.d.ts",
23
+ "import": "./dist/capabilities/index.js",
24
+ "react-native": "./dist/capabilities/index.js"
25
+ }
26
+ },
27
+ "scripts": {
28
+ "build": "tsc -p tsconfig.json"
29
+ },
30
+ "peerDependencies": {
31
+ "react-native": ">=0.76"
32
+ },
33
+ "dependencies": {
34
+ "@lakebed-native/shared": "0.1.0"
35
+ },
36
+ "devDependencies": {
37
+ "react-native": "^0.79.2"
38
+ }
39
+ }