@pickleball/expo-sdk 0.1.1 → 1.0.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.
- package/CHANGELOG.md +65 -0
- package/README.md +163 -40
- package/dist/advanced-DcbHBCGb.d.ts +300 -0
- package/dist/advanced-DeQwg7MK.d.cts +300 -0
- package/dist/advanced.cjs +47 -0
- package/dist/advanced.d.cts +3 -0
- package/dist/advanced.d.ts +3 -0
- package/dist/advanced.js +47 -0
- package/dist/camera-controls-By8tHigY.d.cts +97 -0
- package/dist/camera-controls-rCBUGGPC.d.ts +97 -0
- package/dist/chunk-2JHULJZ7.js +265 -0
- package/dist/chunk-62YV3PCD.cjs +139 -0
- package/dist/chunk-6F3HN6US.js +50 -0
- package/dist/chunk-6YE5BL3A.cjs +50 -0
- package/dist/chunk-7OX2DSKI.cjs +33 -0
- package/dist/chunk-7Z7TN5N3.js +318 -0
- package/dist/chunk-DHDX3ZOO.js +800 -0
- package/dist/chunk-GXQYMPHE.cjs +9 -0
- package/dist/chunk-IUIRVKJI.cjs +2290 -0
- package/dist/chunk-KFQGP6VL.js +33 -0
- package/dist/chunk-LCWGNGEN.cjs +265 -0
- package/dist/chunk-TBUEXRFQ.cjs +318 -0
- package/dist/chunk-XGP2MN5R.js +2290 -0
- package/dist/chunk-XL4CISVQ.js +9 -0
- package/dist/chunk-YGSQ25UA.cjs +800 -0
- package/dist/chunk-ZSKSXOCZ.js +139 -0
- package/dist/convex-command-subscription-Cabh9tND.d.ts +41 -0
- package/dist/convex-command-subscription-DUgpu75l.d.cts +41 -0
- package/dist/device-agent/index.cjs +1427 -0
- package/dist/device-agent/index.d.cts +493 -0
- package/dist/device-agent/index.d.ts +493 -0
- package/dist/device-agent/index.js +1427 -0
- package/dist/engine-BSvSdCSE.d.cts +741 -0
- package/dist/engine-BSvSdCSE.d.ts +741 -0
- package/dist/index.cjs +426 -6174
- package/dist/index.d.cts +299 -1400
- package/dist/index.d.ts +299 -1400
- package/dist/index.js +413 -6063
- package/dist/match/index.cjs +2456 -0
- package/dist/match/index.d.cts +253 -0
- package/dist/match/index.d.ts +253 -0
- package/dist/match/index.js +2456 -0
- package/dist/match/remote/index.cjs +21 -0
- package/dist/match/remote/index.d.cts +67 -0
- package/dist/match/remote/index.d.ts +67 -0
- package/dist/match/remote/index.js +21 -0
- package/dist/match/voice/index.cjs +23 -0
- package/dist/match/voice/index.d.cts +114 -0
- package/dist/match/voice/index.d.ts +114 -0
- package/dist/match/voice/index.js +23 -0
- package/dist/plugin.cjs +52 -71
- package/dist/plugin.d.cts +28 -1
- package/dist/plugin.d.ts +28 -1
- package/dist/plugin.js +26 -23
- package/dist/realtime/index.cjs +31 -0
- package/dist/realtime/index.d.cts +15 -0
- package/dist/realtime/index.d.ts +15 -0
- package/dist/realtime/index.js +31 -0
- package/dist/types-CrmcX408.d.cts +176 -0
- package/dist/types-CrmcX408.d.ts +176 -0
- package/dist/types-DiKWjwvN.d.cts +96 -0
- package/dist/types-DiKWjwvN.d.ts +96 -0
- package/dist/ui/index.cjs +1297 -0
- package/dist/ui/index.d.cts +493 -0
- package/dist/ui/index.d.ts +493 -0
- package/dist/ui/index.js +1297 -0
- package/dist/version.cjs +4 -32
- package/dist/version.js +2 -1
- package/package.json +95 -15
- package/src/advanced.ts +49 -0
- package/src/auto-resume.tsx +259 -0
- package/src/camera-controls.ts +99 -0
- package/src/camera-grant-provider.ts +392 -0
- package/src/camera-settings.ts +133 -0
- package/src/contracts.ts +73 -0
- package/src/device-agent/agent.ts +696 -0
- package/src/device-agent/beat-policy.ts +46 -0
- package/src/device-agent/component.tsx +60 -0
- package/src/device-agent/convex-beat-transport.ts +140 -0
- package/src/device-agent/convex-command-subscription.ts +101 -0
- package/src/device-agent/convex-control-channel.ts +88 -0
- package/src/device-agent/http-transport.ts +164 -0
- package/src/device-agent/index.ts +26 -0
- package/src/device-agent/mqtt-channel.ts +379 -0
- package/src/device-agent/mqtt-codec.ts +347 -0
- package/src/device-agent/tournament.ts +352 -0
- package/src/engine.ts +601 -20
- package/src/errors.ts +16 -0
- package/src/http-session-provider.ts +21 -183
- package/src/index.ts +117 -14
- package/src/local-video-quality.ts +43 -0
- package/src/match/index.ts +29 -0
- package/src/match/provider.tsx +4 -2
- package/src/match/remote/hid-gesture.ts +10 -2
- package/src/match/remote/types.ts +6 -4
- package/src/match/voice/scheduler.ts +6 -1
- package/src/match/voice/service.ts +16 -4
- package/src/native-runtime.ts +283 -77
- package/src/plugin.ts +54 -20
- package/src/provider.tsx +129 -22
- package/src/realtime/index.ts +56 -0
- package/src/resume-policy.ts +85 -0
- package/src/resume.ts +132 -0
- package/src/rtmp-room-adapter.ts +348 -0
- package/src/session-grant.ts +256 -0
- package/src/ui/camera-screen.tsx +484 -0
- package/src/ui/controls-sheet.tsx +445 -0
- package/src/ui/copy.ts +326 -0
- package/src/ui/helpers.ts +105 -0
- package/src/ui/hooks.ts +59 -0
- package/src/ui/index.ts +42 -0
- package/src/ui/preview-view.tsx +39 -0
- package/src/ui/primitives.tsx +304 -0
- package/src/uplink-check.ts +173 -0
- package/dist/chunk-VHLUJQG5.js +0 -17
- package/src/livekit-room-adapter.ts +0 -353
- package/src/livestream-screen.tsx +0 -980
|
@@ -0,0 +1,96 @@
|
|
|
1
|
+
declare const BTHOME_SERVICE_UUID: "FCD2";
|
|
2
|
+
type RemoteButtonAction = "single" | "double" | "long";
|
|
3
|
+
type RemoteInputMode = "bthome" | "hidVolume" | "both";
|
|
4
|
+
type RemoteMappedAction = "left" | "right" | "undo" | "announce" | "none";
|
|
5
|
+
interface RemoteActionMapping {
|
|
6
|
+
readonly volumeUp: RemoteMappedAction;
|
|
7
|
+
readonly volumeDown: RemoteMappedAction;
|
|
8
|
+
readonly longPress: RemoteMappedAction;
|
|
9
|
+
}
|
|
10
|
+
declare const DEFAULT_REMOTE_ACTION_MAPPING: RemoteActionMapping;
|
|
11
|
+
interface RemoteHidVolumeEvent {
|
|
12
|
+
readonly source: "hidVolume";
|
|
13
|
+
readonly direction: "volumeUp" | "volumeDown";
|
|
14
|
+
readonly repeat: boolean;
|
|
15
|
+
readonly longPress: boolean;
|
|
16
|
+
readonly timestamp: number;
|
|
17
|
+
}
|
|
18
|
+
type RemoteHidGesture = "single" | "double" | "triple" | "quadruple" | "hold";
|
|
19
|
+
interface RemoteHidGestureMapping {
|
|
20
|
+
/** Raw HID direction emitted by the calibrated remote button, or "any" for single-button remotes that alternate directions. */
|
|
21
|
+
readonly direction: RemoteHidVolumeEvent["direction"] | "any";
|
|
22
|
+
/** Quiet window used to close one physical gesture burst. */
|
|
23
|
+
readonly settleMs: number;
|
|
24
|
+
/** Repeated volume changes required to classify a hold before the burst ends. */
|
|
25
|
+
readonly holdEventCount: number;
|
|
26
|
+
readonly single: RemoteMappedAction;
|
|
27
|
+
readonly double: RemoteMappedAction;
|
|
28
|
+
readonly triple?: RemoteMappedAction;
|
|
29
|
+
readonly quadruple?: RemoteMappedAction;
|
|
30
|
+
readonly hold: RemoteMappedAction;
|
|
31
|
+
}
|
|
32
|
+
interface RemoteBinding {
|
|
33
|
+
/** Stable identifier supplied by CoreBluetooth or BluetoothLeScanner. */
|
|
34
|
+
readonly deviceId: string;
|
|
35
|
+
readonly label?: string;
|
|
36
|
+
}
|
|
37
|
+
type RemotePermissionStatus = "unknown" | "granted" | "denied" | "restricted" | "unavailable";
|
|
38
|
+
type RemoteStatus = "unavailable" | "poweredOff" | "idle" | "scanning" | "bound" | "outOfRange";
|
|
39
|
+
interface RemoteCandidate {
|
|
40
|
+
readonly deviceId: string;
|
|
41
|
+
readonly label?: string;
|
|
42
|
+
readonly rssi: number;
|
|
43
|
+
readonly lastSeenAt: number;
|
|
44
|
+
}
|
|
45
|
+
interface RemoteState {
|
|
46
|
+
readonly status: RemoteStatus;
|
|
47
|
+
readonly permission: RemotePermissionStatus;
|
|
48
|
+
readonly binding: RemoteBinding | null;
|
|
49
|
+
readonly candidate: RemoteCandidate | null;
|
|
50
|
+
readonly lastSeenAt: number | null;
|
|
51
|
+
readonly error: RemoteError | null;
|
|
52
|
+
readonly hidCaptureArmed: boolean;
|
|
53
|
+
readonly lastInputSource: "bthome" | "hidVolume" | null;
|
|
54
|
+
readonly lastHidEvent: RemoteHidVolumeEvent | null;
|
|
55
|
+
}
|
|
56
|
+
type RemoteErrorCode = "permission_denied" | "permission_restricted" | "bluetooth_unavailable" | "bluetooth_powered_off" | "scan_failed" | "native_unavailable";
|
|
57
|
+
declare class RemoteError extends Error {
|
|
58
|
+
readonly code: RemoteErrorCode;
|
|
59
|
+
readonly name = "RemoteError";
|
|
60
|
+
constructor(code: RemoteErrorCode, message: string, options?: {
|
|
61
|
+
cause?: unknown;
|
|
62
|
+
});
|
|
63
|
+
}
|
|
64
|
+
interface RemoteScanAdvertisement {
|
|
65
|
+
readonly deviceId: string;
|
|
66
|
+
readonly name?: string;
|
|
67
|
+
readonly rssi: number;
|
|
68
|
+
readonly serviceUuid: string;
|
|
69
|
+
/** Base64 encoded FCD2 service-data payload, beginning with the device-info byte. */
|
|
70
|
+
readonly serviceData: string;
|
|
71
|
+
readonly timestamp: number;
|
|
72
|
+
}
|
|
73
|
+
type RemoteNativeState = {
|
|
74
|
+
readonly status: "permission";
|
|
75
|
+
readonly permission: RemotePermissionStatus;
|
|
76
|
+
} | {
|
|
77
|
+
readonly status: "poweredOff" | "unavailable" | "scanning" | "idle";
|
|
78
|
+
} | {
|
|
79
|
+
readonly status: "error";
|
|
80
|
+
readonly code: string;
|
|
81
|
+
readonly message: string;
|
|
82
|
+
};
|
|
83
|
+
interface RemoteService {
|
|
84
|
+
start(): Promise<void>;
|
|
85
|
+
stop(): Promise<void>;
|
|
86
|
+
dispose(): Promise<void>;
|
|
87
|
+
subscribeAdvertisement(listener: (event: RemoteScanAdvertisement) => void): () => void;
|
|
88
|
+
subscribeState(listener: (event: RemoteNativeState) => void): () => void;
|
|
89
|
+
startHidCapture(options?: {
|
|
90
|
+
consume?: boolean;
|
|
91
|
+
}): Promise<void>;
|
|
92
|
+
stopHidCapture(): Promise<void>;
|
|
93
|
+
subscribeHidVolume(listener: (event: RemoteHidVolumeEvent) => void): () => void;
|
|
94
|
+
}
|
|
95
|
+
|
|
96
|
+
export { BTHOME_SERVICE_UUID as B, DEFAULT_REMOTE_ACTION_MAPPING as D, type RemoteButtonAction as R, type RemoteHidGestureMapping as a, type RemoteHidGesture as b, type RemoteHidVolumeEvent as c, type RemoteActionMapping as d, type RemoteBinding as e, type RemoteCandidate as f, RemoteError as g, type RemoteErrorCode as h, type RemoteInputMode as i, type RemoteMappedAction as j, type RemoteNativeState as k, type RemotePermissionStatus as l, type RemoteScanAdvertisement as m, type RemoteService as n, type RemoteState as o, type RemoteStatus as p };
|
|
@@ -0,0 +1,96 @@
|
|
|
1
|
+
declare const BTHOME_SERVICE_UUID: "FCD2";
|
|
2
|
+
type RemoteButtonAction = "single" | "double" | "long";
|
|
3
|
+
type RemoteInputMode = "bthome" | "hidVolume" | "both";
|
|
4
|
+
type RemoteMappedAction = "left" | "right" | "undo" | "announce" | "none";
|
|
5
|
+
interface RemoteActionMapping {
|
|
6
|
+
readonly volumeUp: RemoteMappedAction;
|
|
7
|
+
readonly volumeDown: RemoteMappedAction;
|
|
8
|
+
readonly longPress: RemoteMappedAction;
|
|
9
|
+
}
|
|
10
|
+
declare const DEFAULT_REMOTE_ACTION_MAPPING: RemoteActionMapping;
|
|
11
|
+
interface RemoteHidVolumeEvent {
|
|
12
|
+
readonly source: "hidVolume";
|
|
13
|
+
readonly direction: "volumeUp" | "volumeDown";
|
|
14
|
+
readonly repeat: boolean;
|
|
15
|
+
readonly longPress: boolean;
|
|
16
|
+
readonly timestamp: number;
|
|
17
|
+
}
|
|
18
|
+
type RemoteHidGesture = "single" | "double" | "triple" | "quadruple" | "hold";
|
|
19
|
+
interface RemoteHidGestureMapping {
|
|
20
|
+
/** Raw HID direction emitted by the calibrated remote button, or "any" for single-button remotes that alternate directions. */
|
|
21
|
+
readonly direction: RemoteHidVolumeEvent["direction"] | "any";
|
|
22
|
+
/** Quiet window used to close one physical gesture burst. */
|
|
23
|
+
readonly settleMs: number;
|
|
24
|
+
/** Repeated volume changes required to classify a hold before the burst ends. */
|
|
25
|
+
readonly holdEventCount: number;
|
|
26
|
+
readonly single: RemoteMappedAction;
|
|
27
|
+
readonly double: RemoteMappedAction;
|
|
28
|
+
readonly triple?: RemoteMappedAction;
|
|
29
|
+
readonly quadruple?: RemoteMappedAction;
|
|
30
|
+
readonly hold: RemoteMappedAction;
|
|
31
|
+
}
|
|
32
|
+
interface RemoteBinding {
|
|
33
|
+
/** Stable identifier supplied by CoreBluetooth or BluetoothLeScanner. */
|
|
34
|
+
readonly deviceId: string;
|
|
35
|
+
readonly label?: string;
|
|
36
|
+
}
|
|
37
|
+
type RemotePermissionStatus = "unknown" | "granted" | "denied" | "restricted" | "unavailable";
|
|
38
|
+
type RemoteStatus = "unavailable" | "poweredOff" | "idle" | "scanning" | "bound" | "outOfRange";
|
|
39
|
+
interface RemoteCandidate {
|
|
40
|
+
readonly deviceId: string;
|
|
41
|
+
readonly label?: string;
|
|
42
|
+
readonly rssi: number;
|
|
43
|
+
readonly lastSeenAt: number;
|
|
44
|
+
}
|
|
45
|
+
interface RemoteState {
|
|
46
|
+
readonly status: RemoteStatus;
|
|
47
|
+
readonly permission: RemotePermissionStatus;
|
|
48
|
+
readonly binding: RemoteBinding | null;
|
|
49
|
+
readonly candidate: RemoteCandidate | null;
|
|
50
|
+
readonly lastSeenAt: number | null;
|
|
51
|
+
readonly error: RemoteError | null;
|
|
52
|
+
readonly hidCaptureArmed: boolean;
|
|
53
|
+
readonly lastInputSource: "bthome" | "hidVolume" | null;
|
|
54
|
+
readonly lastHidEvent: RemoteHidVolumeEvent | null;
|
|
55
|
+
}
|
|
56
|
+
type RemoteErrorCode = "permission_denied" | "permission_restricted" | "bluetooth_unavailable" | "bluetooth_powered_off" | "scan_failed" | "native_unavailable";
|
|
57
|
+
declare class RemoteError extends Error {
|
|
58
|
+
readonly code: RemoteErrorCode;
|
|
59
|
+
readonly name = "RemoteError";
|
|
60
|
+
constructor(code: RemoteErrorCode, message: string, options?: {
|
|
61
|
+
cause?: unknown;
|
|
62
|
+
});
|
|
63
|
+
}
|
|
64
|
+
interface RemoteScanAdvertisement {
|
|
65
|
+
readonly deviceId: string;
|
|
66
|
+
readonly name?: string;
|
|
67
|
+
readonly rssi: number;
|
|
68
|
+
readonly serviceUuid: string;
|
|
69
|
+
/** Base64 encoded FCD2 service-data payload, beginning with the device-info byte. */
|
|
70
|
+
readonly serviceData: string;
|
|
71
|
+
readonly timestamp: number;
|
|
72
|
+
}
|
|
73
|
+
type RemoteNativeState = {
|
|
74
|
+
readonly status: "permission";
|
|
75
|
+
readonly permission: RemotePermissionStatus;
|
|
76
|
+
} | {
|
|
77
|
+
readonly status: "poweredOff" | "unavailable" | "scanning" | "idle";
|
|
78
|
+
} | {
|
|
79
|
+
readonly status: "error";
|
|
80
|
+
readonly code: string;
|
|
81
|
+
readonly message: string;
|
|
82
|
+
};
|
|
83
|
+
interface RemoteService {
|
|
84
|
+
start(): Promise<void>;
|
|
85
|
+
stop(): Promise<void>;
|
|
86
|
+
dispose(): Promise<void>;
|
|
87
|
+
subscribeAdvertisement(listener: (event: RemoteScanAdvertisement) => void): () => void;
|
|
88
|
+
subscribeState(listener: (event: RemoteNativeState) => void): () => void;
|
|
89
|
+
startHidCapture(options?: {
|
|
90
|
+
consume?: boolean;
|
|
91
|
+
}): Promise<void>;
|
|
92
|
+
stopHidCapture(): Promise<void>;
|
|
93
|
+
subscribeHidVolume(listener: (event: RemoteHidVolumeEvent) => void): () => void;
|
|
94
|
+
}
|
|
95
|
+
|
|
96
|
+
export { BTHOME_SERVICE_UUID as B, DEFAULT_REMOTE_ACTION_MAPPING as D, type RemoteButtonAction as R, type RemoteHidGestureMapping as a, type RemoteHidGesture as b, type RemoteHidVolumeEvent as c, type RemoteActionMapping as d, type RemoteBinding as e, type RemoteCandidate as f, RemoteError as g, type RemoteErrorCode as h, type RemoteInputMode as i, type RemoteMappedAction as j, type RemoteNativeState as k, type RemotePermissionStatus as l, type RemoteScanAdvertisement as m, type RemoteService as n, type RemoteState as o, type RemoteStatus as p };
|