expo-beacon 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.
Files changed (42) hide show
  1. package/README.md +514 -0
  2. package/android/build.gradle +23 -0
  3. package/android/src/main/AndroidManifest.xml +57 -0
  4. package/android/src/main/java/expo/modules/beacon/BeaconEventReceiver.kt +41 -0
  5. package/android/src/main/java/expo/modules/beacon/BeaconForegroundService.kt +300 -0
  6. package/android/src/main/java/expo/modules/beacon/BootReceiver.kt +18 -0
  7. package/android/src/main/java/expo/modules/beacon/ExpoBeaconModule.kt +329 -0
  8. package/build/ExpoBeacon.types.d.ts +53 -0
  9. package/build/ExpoBeacon.types.d.ts.map +1 -0
  10. package/build/ExpoBeacon.types.js +2 -0
  11. package/build/ExpoBeacon.types.js.map +1 -0
  12. package/build/ExpoBeaconModule.d.ts +46 -0
  13. package/build/ExpoBeaconModule.d.ts.map +1 -0
  14. package/build/ExpoBeaconModule.js +3 -0
  15. package/build/ExpoBeaconModule.js.map +1 -0
  16. package/build/ExpoBeaconModule.web.d.ts +16 -0
  17. package/build/ExpoBeaconModule.web.d.ts.map +1 -0
  18. package/build/ExpoBeaconModule.web.js +18 -0
  19. package/build/ExpoBeaconModule.web.js.map +1 -0
  20. package/build/ExpoBeaconView.d.ts +2 -0
  21. package/build/ExpoBeaconView.d.ts.map +1 -0
  22. package/build/ExpoBeaconView.js +2 -0
  23. package/build/ExpoBeaconView.js.map +1 -0
  24. package/build/ExpoBeaconView.web.d.ts +2 -0
  25. package/build/ExpoBeaconView.web.d.ts.map +1 -0
  26. package/build/ExpoBeaconView.web.js +2 -0
  27. package/build/ExpoBeaconView.web.js.map +1 -0
  28. package/build/index.d.ts +3 -0
  29. package/build/index.d.ts.map +1 -0
  30. package/build/index.js +3 -0
  31. package/build/index.js.map +1 -0
  32. package/expo-module.config.json +9 -0
  33. package/ios/ExpoBeacon.podspec +32 -0
  34. package/ios/ExpoBeaconModule.swift +432 -0
  35. package/ios/ExpoBeaconView.swift +5 -0
  36. package/package.json +67 -0
  37. package/src/ExpoBeacon.types.ts +57 -0
  38. package/src/ExpoBeaconModule.ts +64 -0
  39. package/src/ExpoBeaconModule.web.ts +31 -0
  40. package/src/ExpoBeaconView.tsx +2 -0
  41. package/src/ExpoBeaconView.web.tsx +2 -0
  42. package/src/index.ts +11 -0
@@ -0,0 +1,53 @@
1
+ /** Raw beacon discovered during a scan. */
2
+ export type BeaconScanResult = {
3
+ uuid: string;
4
+ major: number;
5
+ minor: number;
6
+ rssi: number;
7
+ distance: number;
8
+ txPower: number;
9
+ };
10
+ /** A beacon that has been paired/registered for monitoring. */
11
+ export type PairedBeacon = {
12
+ identifier: string;
13
+ uuid: string;
14
+ major: number;
15
+ minor: number;
16
+ };
17
+ /** Payload for enter/exit region events. */
18
+ export type BeaconRegionEvent = {
19
+ identifier: string;
20
+ uuid: string;
21
+ major: number;
22
+ minor: number;
23
+ event: "enter" | "exit";
24
+ /** Measured distance in metres at the time of the event (–1 if unavailable). */
25
+ distance: number;
26
+ };
27
+ /** Payload for ranging events (beacon proximity update). */
28
+ export type BeaconRangingEvent = {
29
+ identifier: string;
30
+ uuid: string;
31
+ major: number;
32
+ minor: number;
33
+ rssi: number;
34
+ distance: number;
35
+ };
36
+ /** Payload for periodic distance update events during monitoring. */
37
+ export type BeaconDistanceEvent = {
38
+ identifier: string;
39
+ uuid: string;
40
+ major: number;
41
+ minor: number;
42
+ distance: number;
43
+ };
44
+ /** Module event map. */
45
+ export type ExpoBeaconModuleEvents = {
46
+ onBeaconEnter: (params: BeaconRegionEvent) => void;
47
+ onBeaconExit: (params: BeaconRegionEvent) => void;
48
+ onBeaconRanging: (params: BeaconRangingEvent) => void;
49
+ onBeaconDistance: (params: BeaconDistanceEvent) => void;
50
+ /** Fired continuously during a live scan as each beacon is detected. */
51
+ onBeaconFound: (params: BeaconScanResult) => void;
52
+ };
53
+ //# sourceMappingURL=ExpoBeacon.types.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ExpoBeacon.types.d.ts","sourceRoot":"","sources":["../src/ExpoBeacon.types.ts"],"names":[],"mappings":"AAAA,2CAA2C;AAC3C,MAAM,MAAM,gBAAgB,GAAG;IAC7B,IAAI,EAAE,MAAM,CAAC;IACb,KAAK,EAAE,MAAM,CAAC;IACd,KAAK,EAAE,MAAM,CAAC;IACd,IAAI,EAAE,MAAM,CAAC;IACb,QAAQ,EAAE,MAAM,CAAC;IACjB,OAAO,EAAE,MAAM,CAAC;CACjB,CAAC;AAEF,+DAA+D;AAC/D,MAAM,MAAM,YAAY,GAAG;IACzB,UAAU,EAAE,MAAM,CAAC;IACnB,IAAI,EAAE,MAAM,CAAC;IACb,KAAK,EAAE,MAAM,CAAC;IACd,KAAK,EAAE,MAAM,CAAC;CACf,CAAC;AAEF,4CAA4C;AAC5C,MAAM,MAAM,iBAAiB,GAAG;IAC9B,UAAU,EAAE,MAAM,CAAC;IACnB,IAAI,EAAE,MAAM,CAAC;IACb,KAAK,EAAE,MAAM,CAAC;IACd,KAAK,EAAE,MAAM,CAAC;IACd,KAAK,EAAE,OAAO,GAAG,MAAM,CAAC;IACxB,gFAAgF;IAChF,QAAQ,EAAE,MAAM,CAAC;CAClB,CAAC;AAEF,4DAA4D;AAC5D,MAAM,MAAM,kBAAkB,GAAG;IAC/B,UAAU,EAAE,MAAM,CAAC;IACnB,IAAI,EAAE,MAAM,CAAC;IACb,KAAK,EAAE,MAAM,CAAC;IACd,KAAK,EAAE,MAAM,CAAC;IACd,IAAI,EAAE,MAAM,CAAC;IACb,QAAQ,EAAE,MAAM,CAAC;CAClB,CAAC;AAEF,qEAAqE;AACrE,MAAM,MAAM,mBAAmB,GAAG;IAChC,UAAU,EAAE,MAAM,CAAC;IACnB,IAAI,EAAE,MAAM,CAAC;IACb,KAAK,EAAE,MAAM,CAAC;IACd,KAAK,EAAE,MAAM,CAAC;IACd,QAAQ,EAAE,MAAM,CAAC;CAClB,CAAC;AAEF,wBAAwB;AACxB,MAAM,MAAM,sBAAsB,GAAG;IACnC,aAAa,EAAE,CAAC,MAAM,EAAE,iBAAiB,KAAK,IAAI,CAAC;IACnD,YAAY,EAAE,CAAC,MAAM,EAAE,iBAAiB,KAAK,IAAI,CAAC;IAClD,eAAe,EAAE,CAAC,MAAM,EAAE,kBAAkB,KAAK,IAAI,CAAC;IACtD,gBAAgB,EAAE,CAAC,MAAM,EAAE,mBAAmB,KAAK,IAAI,CAAC;IACxD,wEAAwE;IACxE,aAAa,EAAE,CAAC,MAAM,EAAE,gBAAgB,KAAK,IAAI,CAAC;CACnD,CAAC"}
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=ExpoBeacon.types.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ExpoBeacon.types.js","sourceRoot":"","sources":["../src/ExpoBeacon.types.ts"],"names":[],"mappings":"","sourcesContent":["/** Raw beacon discovered during a scan. */\r\nexport type BeaconScanResult = {\r\n uuid: string; // iBeacon proximity UUID (uppercase, formatted)\r\n major: number; // iBeacon major value (0–65535)\r\n minor: number; // iBeacon minor value (0–65535)\r\n rssi: number; // Signal strength in dBm (negative number)\r\n distance: number; // Estimated distance in meters\r\n txPower: number; // Calibrated TX power\r\n};\r\n\r\n/** A beacon that has been paired/registered for monitoring. */\r\nexport type PairedBeacon = {\r\n identifier: string; // User-defined label (e.g. \"lobby-door\")\r\n uuid: string;\r\n major: number;\r\n minor: number;\r\n};\r\n\r\n/** Payload for enter/exit region events. */\r\nexport type BeaconRegionEvent = {\r\n identifier: string; // Matches PairedBeacon.identifier\r\n uuid: string;\r\n major: number;\r\n minor: number;\r\n event: \"enter\" | \"exit\";\r\n /** Measured distance in metres at the time of the event (–1 if unavailable). */\r\n distance: number;\r\n};\r\n\r\n/** Payload for ranging events (beacon proximity update). */\r\nexport type BeaconRangingEvent = {\r\n identifier: string;\r\n uuid: string;\r\n major: number;\r\n minor: number;\r\n rssi: number;\r\n distance: number;\r\n};\r\n\r\n/** Payload for periodic distance update events during monitoring. */\r\nexport type BeaconDistanceEvent = {\r\n identifier: string;\r\n uuid: string;\r\n major: number;\r\n minor: number;\r\n distance: number;\r\n};\r\n\r\n/** Module event map. */\r\nexport type ExpoBeaconModuleEvents = {\r\n onBeaconEnter: (params: BeaconRegionEvent) => void;\r\n onBeaconExit: (params: BeaconRegionEvent) => void;\r\n onBeaconRanging: (params: BeaconRangingEvent) => void;\r\n onBeaconDistance: (params: BeaconDistanceEvent) => void;\r\n /** Fired continuously during a live scan as each beacon is detected. */\r\n onBeaconFound: (params: BeaconScanResult) => void;\r\n};\r\n"]}
@@ -0,0 +1,46 @@
1
+ import { NativeModule } from "expo";
2
+ import { ExpoBeaconModuleEvents, BeaconScanResult, PairedBeacon } from "./ExpoBeacon.types";
3
+ declare class ExpoBeaconModule extends NativeModule<ExpoBeaconModuleEvents> {
4
+ /**
5
+ * Start a one-shot BLE scan. Resolves with discovered beacons after scanDuration ms.
6
+ * @param scanDuration Duration in ms (default 5000)
7
+ */
8
+ scanForBeaconsAsync(scanDuration?: number): Promise<BeaconScanResult[]>;
9
+ /**
10
+ * Register a beacon for persistent region monitoring.
11
+ */
12
+ pairBeacon(identifier: string, uuid: string, major: number, minor: number): void;
13
+ /**
14
+ * Remove a previously paired beacon.
15
+ */
16
+ unpairBeacon(identifier: string): void;
17
+ /**
18
+ * Return all currently paired beacons.
19
+ */
20
+ getPairedBeacons(): PairedBeacon[];
21
+ /**
22
+ * Start background region monitoring for all paired beacons.
23
+ * On Android starts a foreground service.
24
+ * On iOS starts CLLocationManager region monitoring.
25
+ * @param maxDistance Optional distance threshold in metres. Enter events are only
26
+ * emitted when the beacon is measured to be within this distance.
27
+ * Exit events are always emitted when the beacon region is lost.
28
+ */
29
+ startMonitoring(maxDistance?: number): Promise<void>;
30
+ /**
31
+ * Stop background region monitoring.
32
+ */
33
+ stopMonitoring(): Promise<void>;
34
+ /**
35
+ * Start a continuous BLE scan. Fires `onBeaconFound` events as beacons are detected.
36
+ * Call stopContinuousScan() to end the scan.
37
+ */
38
+ startContinuousScan(): void;
39
+ /** Stop the continuous scan started by startContinuousScan(). */
40
+ stopContinuousScan(): void;
41
+ /** Request Bluetooth + Location permissions. Returns true if granted. */
42
+ requestPermissionsAsync(): Promise<boolean>;
43
+ }
44
+ declare const _default: ExpoBeaconModule;
45
+ export default _default;
46
+ //# sourceMappingURL=ExpoBeaconModule.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ExpoBeaconModule.d.ts","sourceRoot":"","sources":["../src/ExpoBeaconModule.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,EAAuB,MAAM,MAAM,CAAC;AAEzD,OAAO,EACL,sBAAsB,EACtB,gBAAgB,EAChB,YAAY,EACb,MAAM,oBAAoB,CAAC;AAE5B,OAAO,OAAO,gBAAiB,SAAQ,YAAY,CAAC,sBAAsB,CAAC;IACzE;;;OAGG;IACH,mBAAmB,CAAC,YAAY,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC,gBAAgB,EAAE,CAAC;IAEvE;;OAEG;IACH,UAAU,CACR,UAAU,EAAE,MAAM,EAClB,IAAI,EAAE,MAAM,EACZ,KAAK,EAAE,MAAM,EACb,KAAK,EAAE,MAAM,GACZ,IAAI;IAEP;;OAEG;IACH,YAAY,CAAC,UAAU,EAAE,MAAM,GAAG,IAAI;IAEtC;;OAEG;IACH,gBAAgB,IAAI,YAAY,EAAE;IAElC;;;;;;;OAOG;IACH,eAAe,CAAC,WAAW,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IAEpD;;OAEG;IACH,cAAc,IAAI,OAAO,CAAC,IAAI,CAAC;IAE/B;;;OAGG;IACH,mBAAmB,IAAI,IAAI;IAE3B,iEAAiE;IACjE,kBAAkB,IAAI,IAAI;IAE1B,yEAAyE;IACzE,uBAAuB,IAAI,OAAO,CAAC,OAAO,CAAC;CAC5C;;AAED,wBAAmE"}
@@ -0,0 +1,3 @@
1
+ import { requireNativeModule } from "expo";
2
+ export default requireNativeModule("ExpoBeacon");
3
+ //# sourceMappingURL=ExpoBeaconModule.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ExpoBeaconModule.js","sourceRoot":"","sources":["../src/ExpoBeaconModule.ts"],"names":[],"mappings":"AAAA,OAAO,EAAgB,mBAAmB,EAAE,MAAM,MAAM,CAAC;AA+DzD,eAAe,mBAAmB,CAAmB,YAAY,CAAC,CAAC","sourcesContent":["import { NativeModule, requireNativeModule } from \"expo\";\r\n\r\nimport {\r\n ExpoBeaconModuleEvents,\r\n BeaconScanResult,\r\n PairedBeacon,\r\n} from \"./ExpoBeacon.types\";\r\n\r\ndeclare class ExpoBeaconModule extends NativeModule<ExpoBeaconModuleEvents> {\r\n /**\r\n * Start a one-shot BLE scan. Resolves with discovered beacons after scanDuration ms.\r\n * @param scanDuration Duration in ms (default 5000)\r\n */\r\n scanForBeaconsAsync(scanDuration?: number): Promise<BeaconScanResult[]>;\r\n\r\n /**\r\n * Register a beacon for persistent region monitoring.\r\n */\r\n pairBeacon(\r\n identifier: string,\r\n uuid: string,\r\n major: number,\r\n minor: number,\r\n ): void;\r\n\r\n /**\r\n * Remove a previously paired beacon.\r\n */\r\n unpairBeacon(identifier: string): void;\r\n\r\n /**\r\n * Return all currently paired beacons.\r\n */\r\n getPairedBeacons(): PairedBeacon[];\r\n\r\n /**\r\n * Start background region monitoring for all paired beacons.\r\n * On Android starts a foreground service.\r\n * On iOS starts CLLocationManager region monitoring.\r\n * @param maxDistance Optional distance threshold in metres. Enter events are only\r\n * emitted when the beacon is measured to be within this distance.\r\n * Exit events are always emitted when the beacon region is lost.\r\n */\r\n startMonitoring(maxDistance?: number): Promise<void>;\r\n\r\n /**\r\n * Stop background region monitoring.\r\n */\r\n stopMonitoring(): Promise<void>;\r\n\r\n /**\r\n * Start a continuous BLE scan. Fires `onBeaconFound` events as beacons are detected.\r\n * Call stopContinuousScan() to end the scan.\r\n */\r\n startContinuousScan(): void;\r\n\r\n /** Stop the continuous scan started by startContinuousScan(). */\r\n stopContinuousScan(): void;\r\n\r\n /** Request Bluetooth + Location permissions. Returns true if granted. */\r\n requestPermissionsAsync(): Promise<boolean>;\r\n}\r\n\r\nexport default requireNativeModule<ExpoBeaconModule>(\"ExpoBeacon\");\r\n"]}
@@ -0,0 +1,16 @@
1
+ import type { ExpoBeaconModuleEvents, BeaconScanResult, PairedBeacon } from "./ExpoBeacon.types";
2
+ declare const stub: {
3
+ scanForBeaconsAsync: (_scanDuration?: number) => Promise<BeaconScanResult[]>;
4
+ pairBeacon: (_identifier: string, _uuid: string, _major: number, _minor: number) => void;
5
+ unpairBeacon: (_identifier: string) => void;
6
+ getPairedBeacons: () => PairedBeacon[];
7
+ startMonitoring: () => Promise<void>;
8
+ stopMonitoring: () => Promise<void>;
9
+ requestPermissionsAsync: () => Promise<boolean>;
10
+ addListener: (_eventName: keyof ExpoBeaconModuleEvents, _listener: any) => {
11
+ remove: () => void;
12
+ };
13
+ removeAllListeners: (_eventName: keyof ExpoBeaconModuleEvents) => void;
14
+ };
15
+ export default stub;
16
+ //# sourceMappingURL=ExpoBeaconModule.web.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ExpoBeaconModule.web.d.ts","sourceRoot":"","sources":["../src/ExpoBeaconModule.web.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EACV,sBAAsB,EACtB,gBAAgB,EAChB,YAAY,EACb,MAAM,oBAAoB,CAAC;AAM5B,QAAA,MAAM,IAAI;0CAC8B,MAAM,KAAG,OAAO,CAAC,gBAAgB,EAAE,CAAC;8BAG3D,MAAM,SACZ,MAAM,UACL,MAAM,UACN,MAAM,KACb,IAAI;gCACqB,MAAM,KAAG,IAAI;4BACnB,YAAY,EAAE;2BACf,OAAO,CAAC,IAAI,CAAC;0BACd,OAAO,CAAC,IAAI,CAAC;mCACJ,OAAO,CAAC,OAAO,CAAC;8BACnB,MAAM,sBAAsB,aAAa,GAAG;;;qCAGrC,MAAM,sBAAsB;CAC9D,CAAC;AAEF,eAAe,IAAI,CAAC"}
@@ -0,0 +1,18 @@
1
+ const notSupported = () => {
2
+ throw new Error("expo-beacon is not supported on web.");
3
+ };
4
+ const stub = {
5
+ scanForBeaconsAsync: (_scanDuration) => notSupported(),
6
+ pairBeacon: (_identifier, _uuid, _major, _minor) => notSupported(),
7
+ unpairBeacon: (_identifier) => notSupported(),
8
+ getPairedBeacons: () => notSupported(),
9
+ startMonitoring: () => notSupported(),
10
+ stopMonitoring: () => notSupported(),
11
+ requestPermissionsAsync: () => notSupported(),
12
+ addListener: (_eventName, _listener) => ({
13
+ remove: () => { },
14
+ }),
15
+ removeAllListeners: (_eventName) => { },
16
+ };
17
+ export default stub;
18
+ //# sourceMappingURL=ExpoBeaconModule.web.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ExpoBeaconModule.web.js","sourceRoot":"","sources":["../src/ExpoBeaconModule.web.ts"],"names":[],"mappings":"AAMA,MAAM,YAAY,GAAG,GAAU,EAAE;IAC/B,MAAM,IAAI,KAAK,CAAC,sCAAsC,CAAC,CAAC;AAC1D,CAAC,CAAC;AAEF,MAAM,IAAI,GAAG;IACX,mBAAmB,EAAE,CAAC,aAAsB,EAA+B,EAAE,CAC3E,YAAY,EAAE;IAChB,UAAU,EAAE,CACV,WAAmB,EACnB,KAAa,EACb,MAAc,EACd,MAAc,EACR,EAAE,CAAC,YAAY,EAAE;IACzB,YAAY,EAAE,CAAC,WAAmB,EAAQ,EAAE,CAAC,YAAY,EAAE;IAC3D,gBAAgB,EAAE,GAAmB,EAAE,CAAC,YAAY,EAAE;IACtD,eAAe,EAAE,GAAkB,EAAE,CAAC,YAAY,EAAE;IACpD,cAAc,EAAE,GAAkB,EAAE,CAAC,YAAY,EAAE;IACnD,uBAAuB,EAAE,GAAqB,EAAE,CAAC,YAAY,EAAE;IAC/D,WAAW,EAAE,CAAC,UAAwC,EAAE,SAAc,EAAE,EAAE,CAAC,CAAC;QAC1E,MAAM,EAAE,GAAG,EAAE,GAAE,CAAC;KACjB,CAAC;IACF,kBAAkB,EAAE,CAAC,UAAwC,EAAE,EAAE,GAAE,CAAC;CACrE,CAAC;AAEF,eAAe,IAAI,CAAC","sourcesContent":["import type {\r\n ExpoBeaconModuleEvents,\r\n BeaconScanResult,\r\n PairedBeacon,\r\n} from \"./ExpoBeacon.types\";\r\n\r\nconst notSupported = (): never => {\r\n throw new Error(\"expo-beacon is not supported on web.\");\r\n};\r\n\r\nconst stub = {\r\n scanForBeaconsAsync: (_scanDuration?: number): Promise<BeaconScanResult[]> =>\r\n notSupported(),\r\n pairBeacon: (\r\n _identifier: string,\r\n _uuid: string,\r\n _major: number,\r\n _minor: number,\r\n ): void => notSupported(),\r\n unpairBeacon: (_identifier: string): void => notSupported(),\r\n getPairedBeacons: (): PairedBeacon[] => notSupported(),\r\n startMonitoring: (): Promise<void> => notSupported(),\r\n stopMonitoring: (): Promise<void> => notSupported(),\r\n requestPermissionsAsync: (): Promise<boolean> => notSupported(),\r\n addListener: (_eventName: keyof ExpoBeaconModuleEvents, _listener: any) => ({\r\n remove: () => {},\r\n }),\r\n removeAllListeners: (_eventName: keyof ExpoBeaconModuleEvents) => {},\r\n};\r\n\r\nexport default stub;\r\n"]}
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=ExpoBeaconView.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ExpoBeaconView.d.ts","sourceRoot":"","sources":["../src/ExpoBeaconView.tsx"],"names":[],"mappings":"AACA,OAAO,EAAE,CAAC"}
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=ExpoBeaconView.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ExpoBeaconView.js","sourceRoot":"","sources":["../src/ExpoBeaconView.tsx"],"names":[],"mappings":"","sourcesContent":["// Beacon module does not use native views.\r\nexport {};\r\n"]}
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=ExpoBeaconView.web.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ExpoBeaconView.web.d.ts","sourceRoot":"","sources":["../src/ExpoBeaconView.web.tsx"],"names":[],"mappings":"AACA,OAAO,EAAE,CAAC"}
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=ExpoBeaconView.web.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ExpoBeaconView.web.js","sourceRoot":"","sources":["../src/ExpoBeaconView.web.tsx"],"names":[],"mappings":"","sourcesContent":["// Beacon module does not use native views.\r\nexport {};\r\n"]}
@@ -0,0 +1,3 @@
1
+ export { default } from "./ExpoBeaconModule";
2
+ export type { BeaconScanResult, PairedBeacon, BeaconRegionEvent, BeaconRangingEvent, ExpoBeaconModuleEvents, } from "./ExpoBeacon.types";
3
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,OAAO,EAAE,MAAM,oBAAoB,CAAC;AAG7C,YAAY,EACV,gBAAgB,EAChB,YAAY,EACZ,iBAAiB,EACjB,kBAAkB,EAClB,sBAAsB,GACvB,MAAM,oBAAoB,CAAC"}
package/build/index.js ADDED
@@ -0,0 +1,3 @@
1
+ // Native module (default export)
2
+ export { default } from "./ExpoBeaconModule";
3
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,iCAAiC;AACjC,OAAO,EAAE,OAAO,EAAE,MAAM,oBAAoB,CAAC","sourcesContent":["// Native module (default export)\r\nexport { default } from \"./ExpoBeaconModule\";\r\n\r\n// All public types\r\nexport type {\r\n BeaconScanResult,\r\n PairedBeacon,\r\n BeaconRegionEvent,\r\n BeaconRangingEvent,\r\n ExpoBeaconModuleEvents,\r\n} from \"./ExpoBeacon.types\";\r\n"]}
@@ -0,0 +1,9 @@
1
+ {
2
+ "platforms": ["apple", "android", "web"],
3
+ "apple": {
4
+ "modules": ["ExpoBeaconModule"]
5
+ },
6
+ "android": {
7
+ "modules": ["expo.modules.beacon.ExpoBeaconModule"]
8
+ }
9
+ }
@@ -0,0 +1,32 @@
1
+ require 'json'
2
+
3
+ package = JSON.parse(File.read(File.join(__dir__, '..', 'package.json')))
4
+
5
+ Pod::Spec.new do |s|
6
+ s.name = 'ExpoBeacon'
7
+ s.version = package['version']
8
+ s.summary = package['description']
9
+ s.description = package['description']
10
+ s.license = package['license']
11
+ s.author = package['author']
12
+ s.homepage = package['homepage']
13
+ s.platforms = {
14
+ :ios => '15.1'
15
+ }
16
+ s.swift_version = '5.9'
17
+ s.source = { git: 'https://github.com/martinmikesCCS/expo-beacon' }
18
+ s.static_framework = true
19
+
20
+ s.dependency 'ExpoModulesCore'
21
+
22
+ # Required system frameworks for iBeacon monitoring
23
+ s.frameworks = 'CoreLocation', 'CoreBluetooth', 'UserNotifications'
24
+
25
+ # Swift/Objective-C compatibility
26
+ s.pod_target_xcconfig = {
27
+ 'DEFINES_MODULE' => 'YES',
28
+ }
29
+
30
+ s.source_files = "**/*.{h,m,mm,swift,hpp,cpp}"
31
+ end
32
+