expo-invoke 1.3.0 → 2.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.
- package/android/src/main/java/expo/modules/invoke/InteractiveWidgetReceiver.kt +47 -0
- package/android/src/main/java/expo/modules/invoke/InvokeSliceProvider.kt +83 -0
- package/android/src/main/java/expo/modules/invoke/ShortcutsHelper.kt +38 -32
- package/build/plugin/android/withAndroidInvoke.d.ts +3 -1
- package/build/plugin/android/withAndroidInvoke.js +71 -15
- package/build/plugin/android/withAndroidInvoke.js.map +1 -1
- package/build/plugin/codegen/generateSwiftAppClip.d.ts +2 -0
- package/build/plugin/codegen/generateSwiftAppClip.js +20 -0
- package/build/plugin/codegen/generateSwiftAppClip.js.map +1 -0
- package/build/plugin/codegen/generateSwiftEntities.d.ts +2 -0
- package/build/plugin/codegen/generateSwiftEntities.js +91 -0
- package/build/plugin/codegen/generateSwiftEntities.js.map +1 -0
- package/build/plugin/codegen/generateSwiftFocusFilters.d.ts +2 -0
- package/build/plugin/codegen/generateSwiftFocusFilters.js +42 -0
- package/build/plugin/codegen/generateSwiftFocusFilters.js.map +1 -0
- package/build/plugin/codegen/generateSwiftIntents.d.ts +2 -0
- package/build/plugin/codegen/generateSwiftIntents.js +43 -13
- package/build/plugin/codegen/generateSwiftIntents.js.map +1 -1
- package/build/plugin/codegen/generateSwiftWidget.d.ts +35 -0
- package/build/plugin/codegen/generateSwiftWidget.js +379 -0
- package/build/plugin/codegen/generateSwiftWidget.js.map +1 -0
- package/build/plugin/ios/withIOSInvoke.d.ts +25 -1
- package/build/plugin/ios/withIOSInvoke.js +83 -10
- package/build/plugin/ios/withIOSInvoke.js.map +1 -1
- package/build/plugin/ios/withWidgetExtension.d.ts +14 -0
- package/build/plugin/ios/withWidgetExtension.js +185 -0
- package/build/plugin/ios/withWidgetExtension.js.map +1 -0
- package/build/plugin/src/withInvoke.d.ts +45 -3
- package/build/plugin/src/withInvoke.js +30 -4
- package/build/plugin/src/withInvoke.js.map +1 -1
- package/build/src/components/AddToSiriButton.d.ts +1 -1
- package/build/src/components/AddToSiriButton.d.ts.map +1 -1
- package/build/src/components/InvokeDebugger.d.ts +1 -1
- package/build/src/components/InvokeDebugger.d.ts.map +1 -1
- package/build/src/components/ShortcutChip.d.ts +1 -1
- package/build/src/components/ShortcutChip.d.ts.map +1 -1
- package/build/src/hooks/useBackgroundIntent.d.ts +15 -0
- package/build/src/hooks/useBackgroundIntent.d.ts.map +1 -0
- package/build/src/hooks/useBackgroundIntent.js +41 -0
- package/build/src/hooks/useBackgroundIntent.js.map +1 -0
- package/build/src/hooks/useEntityQuery.d.ts +26 -0
- package/build/src/hooks/useEntityQuery.d.ts.map +1 -0
- package/build/src/hooks/useEntityQuery.js +47 -0
- package/build/src/hooks/useEntityQuery.js.map +1 -0
- package/build/src/hooks/useFocusFilter.d.ts +1 -1
- package/build/src/hooks/useFocusFilter.d.ts.map +1 -1
- package/build/src/hooks/useFocusFilter.js.map +1 -1
- package/build/src/hooks/useFocusFilterState.d.ts +28 -0
- package/build/src/hooks/useFocusFilterState.d.ts.map +1 -0
- package/build/src/hooks/useFocusFilterState.js +47 -0
- package/build/src/hooks/useFocusFilterState.js.map +1 -0
- package/build/src/hooks/useInvoke.d.ts.map +1 -1
- package/build/src/hooks/useInvoke.js +3 -0
- package/build/src/hooks/useInvoke.js.map +1 -1
- package/build/src/hooks/useInvokeAnalytics.d.ts +10 -14
- package/build/src/hooks/useInvokeAnalytics.d.ts.map +1 -1
- package/build/src/hooks/useInvokeAnalytics.js +21 -14
- package/build/src/hooks/useInvokeAnalytics.js.map +1 -1
- package/build/src/hooks/useInvokeQueue.d.ts +32 -0
- package/build/src/hooks/useInvokeQueue.d.ts.map +1 -0
- package/build/src/hooks/useInvokeQueue.js +77 -0
- package/build/src/hooks/useInvokeQueue.js.map +1 -0
- package/build/src/hooks/useLiveActivity.d.ts +37 -0
- package/build/src/hooks/useLiveActivity.d.ts.map +1 -0
- package/build/src/hooks/useLiveActivity.js +74 -0
- package/build/src/hooks/useLiveActivity.js.map +1 -0
- package/build/src/hooks/useOTAConfig.d.ts +24 -0
- package/build/src/hooks/useOTAConfig.d.ts.map +1 -0
- package/build/src/hooks/useOTAConfig.js +40 -0
- package/build/src/hooks/useOTAConfig.js.map +1 -0
- package/build/src/hooks/usePushToTalk.d.ts +35 -0
- package/build/src/hooks/usePushToTalk.d.ts.map +1 -0
- package/build/src/hooks/usePushToTalk.js +101 -0
- package/build/src/hooks/usePushToTalk.js.map +1 -0
- package/build/src/hooks/useSlice.d.ts +19 -0
- package/build/src/hooks/useSlice.d.ts.map +1 -0
- package/build/src/hooks/useSlice.js +22 -0
- package/build/src/hooks/useSlice.js.map +1 -0
- package/build/src/index.d.ts +19 -3
- package/build/src/index.d.ts.map +1 -1
- package/build/src/index.js +16 -1
- package/build/src/index.js.map +1 -1
- package/build/src/module.d.ts +18 -3
- package/build/src/module.d.ts.map +1 -1
- package/build/src/module.js +77 -0
- package/build/src/module.js.map +1 -1
- package/build/src/types/index.d.ts +117 -4
- package/build/src/types/index.d.ts.map +1 -1
- package/build/src/utils/analytics.d.ts +1 -7
- package/build/src/utils/analytics.d.ts.map +1 -1
- package/build/src/utils/analytics.js +9 -0
- package/build/src/utils/analytics.js.map +1 -1
- package/build/src/utils/invokeError.d.ts +28 -0
- package/build/src/utils/invokeError.d.ts.map +1 -0
- package/build/src/utils/invokeError.js +57 -0
- package/build/src/utils/invokeError.js.map +1 -0
- package/build/src/utils/otaConfig.d.ts +9 -0
- package/build/src/utils/otaConfig.d.ts.map +1 -0
- package/build/src/utils/otaConfig.js +45 -0
- package/build/src/utils/otaConfig.js.map +1 -0
- package/build/src/utils/persistentAnalytics.d.ts +5 -0
- package/build/src/utils/persistentAnalytics.d.ts.map +1 -0
- package/build/src/utils/persistentAnalytics.js +52 -0
- package/build/src/utils/persistentAnalytics.js.map +1 -0
- package/build/src/utils/validation.d.ts +12 -0
- package/build/src/utils/validation.d.ts.map +1 -1
- package/build/src/utils/validation.js +81 -1
- package/build/src/utils/validation.js.map +1 -1
- package/build/src/web/index.d.ts +39 -0
- package/build/src/web/index.d.ts.map +1 -0
- package/build/src/web/index.js +37 -0
- package/build/src/web/index.js.map +1 -0
- package/build/src/web/module.d.ts +40 -0
- package/build/src/web/module.d.ts.map +1 -0
- package/build/src/web/module.js +46 -0
- package/build/src/web/module.js.map +1 -0
- package/ios/AppClip/AppClipHandler.swift +41 -0
- package/ios/Background/BackgroundIntentBridge.swift +56 -0
- package/ios/Entities/EntityQueryBridge.swift +40 -0
- package/ios/FocusFilter/FocusFilterRegistrar.swift +40 -0
- package/ios/LiveActivity/LiveActivityManager.swift +83 -0
- package/ios/PTT/PTTManager.swift +51 -0
- package/package.json +2 -1
|
@@ -0,0 +1,35 @@
|
|
|
1
|
+
import type { PTTSessionState } from '../types';
|
|
2
|
+
import { type InvokeError } from '../utils/invokeError';
|
|
3
|
+
export interface UsePushToTalkOptions {
|
|
4
|
+
/** Called when any PTT operation fails. Receives a structured InvokeError. */
|
|
5
|
+
onError?: (error: InvokeError) => void;
|
|
6
|
+
}
|
|
7
|
+
export interface UsePushToTalkResult {
|
|
8
|
+
state: PTTSessionState;
|
|
9
|
+
/** Request PTT channel activation */
|
|
10
|
+
start: (participantName?: string) => Promise<void>;
|
|
11
|
+
/** End the PTT session */
|
|
12
|
+
end: () => Promise<void>;
|
|
13
|
+
/** Toggle microphone open/closed */
|
|
14
|
+
setTransmitting: (active: boolean) => void;
|
|
15
|
+
/** Last error from any PTT operation, null when no error. */
|
|
16
|
+
error: InvokeError | null;
|
|
17
|
+
}
|
|
18
|
+
/**
|
|
19
|
+
* Push-to-Talk (PTT) session management.
|
|
20
|
+
* iOS 16+ only via PushToTalk framework. All methods are no-ops on Android and older iOS.
|
|
21
|
+
*
|
|
22
|
+
* Errors are surfaced via `error` state and optionally via `onError` callback.
|
|
23
|
+
* Operations never throw — the hook always returns safe default values on failure.
|
|
24
|
+
*
|
|
25
|
+
* @param channelId - Unique identifier for this PTT channel
|
|
26
|
+
*
|
|
27
|
+
* @example
|
|
28
|
+
* const ptt = usePushToTalk('errand-channel');
|
|
29
|
+
* <Pressable
|
|
30
|
+
* onPressIn={() => ptt.setTransmitting(true)}
|
|
31
|
+
* onPressOut={() => ptt.setTransmitting(false)}
|
|
32
|
+
* />
|
|
33
|
+
*/
|
|
34
|
+
export declare function usePushToTalk(channelId: string, options?: UsePushToTalkOptions): UsePushToTalkResult;
|
|
35
|
+
//# sourceMappingURL=usePushToTalk.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"usePushToTalk.d.ts","sourceRoot":"","sources":["../../../src/hooks/usePushToTalk.ts"],"names":[],"mappings":"AAQA,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,UAAU,CAAC;AAChD,OAAO,EAAqB,KAAK,WAAW,EAAE,MAAM,sBAAsB,CAAC;AAI3E,MAAM,WAAW,oBAAoB;IACnC,8EAA8E;IAC9E,OAAO,CAAC,EAAE,CAAC,KAAK,EAAE,WAAW,KAAK,IAAI,CAAC;CACxC;AAED,MAAM,WAAW,mBAAmB;IAClC,KAAK,EAAE,eAAe,CAAC;IACvB,qCAAqC;IACrC,KAAK,EAAE,CAAC,eAAe,CAAC,EAAE,MAAM,KAAK,OAAO,CAAC,IAAI,CAAC,CAAC;IACnD,0BAA0B;IAC1B,GAAG,EAAE,MAAM,OAAO,CAAC,IAAI,CAAC,CAAC;IACzB,oCAAoC;IACpC,eAAe,EAAE,CAAC,MAAM,EAAE,OAAO,KAAK,IAAI,CAAC;IAC3C,6DAA6D;IAC7D,KAAK,EAAE,WAAW,GAAG,IAAI,CAAC;CAC3B;AAED;;;;;;;;;;;;;;;GAeG;AACH,wBAAgB,aAAa,CAC3B,SAAS,EAAE,MAAM,EACjB,OAAO,GAAE,oBAAyB,GACjC,mBAAmB,CA0ErB"}
|
|
@@ -0,0 +1,101 @@
|
|
|
1
|
+
import { useCallback, useEffect, useRef, useState } from 'react';
|
|
2
|
+
import { startPTTSession, endPTTSession, setTransmitting, getPTTState, addIntentListener, } from '../module';
|
|
3
|
+
import { reportInvokeError } from '../utils/invokeError';
|
|
4
|
+
const DEFAULT_STATE = { isActive: false, isTransmitting: false };
|
|
5
|
+
/**
|
|
6
|
+
* Push-to-Talk (PTT) session management.
|
|
7
|
+
* iOS 16+ only via PushToTalk framework. All methods are no-ops on Android and older iOS.
|
|
8
|
+
*
|
|
9
|
+
* Errors are surfaced via `error` state and optionally via `onError` callback.
|
|
10
|
+
* Operations never throw — the hook always returns safe default values on failure.
|
|
11
|
+
*
|
|
12
|
+
* @param channelId - Unique identifier for this PTT channel
|
|
13
|
+
*
|
|
14
|
+
* @example
|
|
15
|
+
* const ptt = usePushToTalk('errand-channel');
|
|
16
|
+
* <Pressable
|
|
17
|
+
* onPressIn={() => ptt.setTransmitting(true)}
|
|
18
|
+
* onPressOut={() => ptt.setTransmitting(false)}
|
|
19
|
+
* />
|
|
20
|
+
*/
|
|
21
|
+
export function usePushToTalk(channelId, options = {}) {
|
|
22
|
+
const [state, setState] = useState(DEFAULT_STATE);
|
|
23
|
+
const [error, setError] = useState(null);
|
|
24
|
+
const channelIdRef = useRef(channelId);
|
|
25
|
+
channelIdRef.current = channelId;
|
|
26
|
+
const optionsRef = useRef(options);
|
|
27
|
+
optionsRef.current = options;
|
|
28
|
+
const handleError = useCallback((cause) => {
|
|
29
|
+
var _a, _b;
|
|
30
|
+
const err = reportInvokeError('PTT_SESSION_FAILED', cause);
|
|
31
|
+
setError(err);
|
|
32
|
+
(_b = (_a = optionsRef.current).onError) === null || _b === void 0 ? void 0 : _b.call(_a, err);
|
|
33
|
+
}, []);
|
|
34
|
+
useEffect(() => {
|
|
35
|
+
// Sync initial state — catch rejection instead of crashing
|
|
36
|
+
getPTTState(channelId)
|
|
37
|
+
.then((s) => { setState(s); setError(null); })
|
|
38
|
+
.catch(handleError);
|
|
39
|
+
// Listen for native PTT events (transmitted as intents with source: 'ptt')
|
|
40
|
+
const sub = addIntentListener((intent) => {
|
|
41
|
+
if (intent.source !== 'ptt')
|
|
42
|
+
return;
|
|
43
|
+
if (intent.intentId === `__pttStart_${channelIdRef.current}`) {
|
|
44
|
+
setState((prev) => {
|
|
45
|
+
var _a;
|
|
46
|
+
return ({
|
|
47
|
+
...prev,
|
|
48
|
+
isActive: true,
|
|
49
|
+
participant: (_a = intent.parameters) === null || _a === void 0 ? void 0 : _a.participant,
|
|
50
|
+
});
|
|
51
|
+
});
|
|
52
|
+
setError(null);
|
|
53
|
+
}
|
|
54
|
+
else if (intent.intentId === `__pttEnd_${channelIdRef.current}`) {
|
|
55
|
+
setState(DEFAULT_STATE);
|
|
56
|
+
}
|
|
57
|
+
else if (intent.intentId === `__pttTransmit_${channelIdRef.current}`) {
|
|
58
|
+
setState((prev) => {
|
|
59
|
+
var _a, _b;
|
|
60
|
+
return ({
|
|
61
|
+
...prev,
|
|
62
|
+
isTransmitting: (_b = (_a = intent.parameters) === null || _a === void 0 ? void 0 : _a.transmitting) !== null && _b !== void 0 ? _b : false,
|
|
63
|
+
});
|
|
64
|
+
});
|
|
65
|
+
}
|
|
66
|
+
});
|
|
67
|
+
return () => sub.remove();
|
|
68
|
+
// eslint-disable-next-line react-hooks/exhaustive-deps
|
|
69
|
+
}, [channelId]);
|
|
70
|
+
const start = useCallback(async (participantName) => {
|
|
71
|
+
try {
|
|
72
|
+
await startPTTSession(channelIdRef.current, participantName);
|
|
73
|
+
setState((prev) => ({ ...prev, isActive: true, participant: participantName }));
|
|
74
|
+
setError(null);
|
|
75
|
+
}
|
|
76
|
+
catch (e) {
|
|
77
|
+
handleError(e);
|
|
78
|
+
}
|
|
79
|
+
}, [handleError]);
|
|
80
|
+
const end = useCallback(async () => {
|
|
81
|
+
try {
|
|
82
|
+
await endPTTSession(channelIdRef.current);
|
|
83
|
+
setState(DEFAULT_STATE);
|
|
84
|
+
setError(null);
|
|
85
|
+
}
|
|
86
|
+
catch (e) {
|
|
87
|
+
handleError(e);
|
|
88
|
+
}
|
|
89
|
+
}, [handleError]);
|
|
90
|
+
const transmit = useCallback((active) => {
|
|
91
|
+
try {
|
|
92
|
+
setTransmitting(channelIdRef.current, active);
|
|
93
|
+
setState((prev) => ({ ...prev, isTransmitting: active }));
|
|
94
|
+
}
|
|
95
|
+
catch (e) {
|
|
96
|
+
handleError(e);
|
|
97
|
+
}
|
|
98
|
+
}, [handleError]);
|
|
99
|
+
return { state, start, end, setTransmitting: transmit, error };
|
|
100
|
+
}
|
|
101
|
+
//# sourceMappingURL=usePushToTalk.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"usePushToTalk.js","sourceRoot":"","sources":["../../../src/hooks/usePushToTalk.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,19 @@
|
|
|
1
|
+
export interface UseSliceResult {
|
|
2
|
+
/** Call after updating the data that feeds this slice to trigger a re-bind */
|
|
3
|
+
notify: () => void;
|
|
4
|
+
}
|
|
5
|
+
/**
|
|
6
|
+
* Android Slice refresh trigger.
|
|
7
|
+
* Call notify() after updating widgetData so the Slice displayed in Google Search / Assistant
|
|
8
|
+
* shows the latest content.
|
|
9
|
+
*
|
|
10
|
+
* Android only. No-op on iOS.
|
|
11
|
+
*
|
|
12
|
+
* @param sliceId - Must match a SliceDefinition id in app.json
|
|
13
|
+
*
|
|
14
|
+
* @example
|
|
15
|
+
* const { notify } = useSlice('active-errand');
|
|
16
|
+
* useEffect(() => { notify(); }, [activeErrand]);
|
|
17
|
+
*/
|
|
18
|
+
export declare function useSlice(sliceId: string): UseSliceResult;
|
|
19
|
+
//# sourceMappingURL=useSlice.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"useSlice.d.ts","sourceRoot":"","sources":["../../../src/hooks/useSlice.ts"],"names":[],"mappings":"AAGA,MAAM,WAAW,cAAc;IAC7B,8EAA8E;IAC9E,MAAM,EAAE,MAAM,IAAI,CAAC;CACpB;AAED;;;;;;;;;;;;GAYG;AACH,wBAAgB,QAAQ,CAAC,OAAO,EAAE,MAAM,GAAG,cAAc,CAMxD"}
|
|
@@ -0,0 +1,22 @@
|
|
|
1
|
+
import { useCallback } from 'react';
|
|
2
|
+
import { notifySliceChange } from '../module';
|
|
3
|
+
/**
|
|
4
|
+
* Android Slice refresh trigger.
|
|
5
|
+
* Call notify() after updating widgetData so the Slice displayed in Google Search / Assistant
|
|
6
|
+
* shows the latest content.
|
|
7
|
+
*
|
|
8
|
+
* Android only. No-op on iOS.
|
|
9
|
+
*
|
|
10
|
+
* @param sliceId - Must match a SliceDefinition id in app.json
|
|
11
|
+
*
|
|
12
|
+
* @example
|
|
13
|
+
* const { notify } = useSlice('active-errand');
|
|
14
|
+
* useEffect(() => { notify(); }, [activeErrand]);
|
|
15
|
+
*/
|
|
16
|
+
export function useSlice(sliceId) {
|
|
17
|
+
const notify = useCallback(() => {
|
|
18
|
+
notifySliceChange(sliceId);
|
|
19
|
+
}, [sliceId]);
|
|
20
|
+
return { notify };
|
|
21
|
+
}
|
|
22
|
+
//# sourceMappingURL=useSlice.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"useSlice.js","sourceRoot":"","sources":["../../../src/hooks/useSlice.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,WAAW,EAAE,MAAM,OAAO,CAAC;AACpC,OAAO,EAAE,iBAAiB,EAAE,MAAM,WAAW,CAAC;AAO9C;;;;;;;;;;;;GAYG;AACH,MAAM,UAAU,QAAQ,CAAC,OAAe;IACtC,MAAM,MAAM,GAAG,WAAW,CAAC,GAAG,EAAE;QAC9B,iBAAiB,CAAC,OAAO,CAAC,CAAC;IAC7B,CAAC,EAAE,CAAC,OAAO,CAAC,CAAC,CAAC;IAEd,OAAO,EAAE,MAAM,EAAE,CAAC;AACpB,CAAC"}
|
package/build/src/index.d.ts
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
export { configure } from './module';
|
|
2
2
|
export { onIntentFired } from './utils/analytics';
|
|
3
3
|
export { onIntentFired as onInvoke } from './utils/analytics';
|
|
4
|
-
export { getInitialIntent, addIntentListener, donateAction, deleteAction, deleteAllActions, setDynamicShortcuts, getDynamicShortcuts, clearDynamicShortcuts, indexSpotlightItems, deindexSpotlightItems, setWidgetData, getWidgetData, updateQuickTile, advertiseHandoff, stopHandoff, setLiveActivityIntent, addIntentToSiri, getFocusMode, } from './module';
|
|
4
|
+
export { getInitialIntent, addIntentListener, donateAction, deleteAction, deleteAllActions, setDynamicShortcuts, getDynamicShortcuts, clearDynamicShortcuts, indexSpotlightItems, deindexSpotlightItems, setWidgetData, getWidgetData, reloadWidget, updateQuickTile, advertiseHandoff, stopHandoff, setLiveActivityIntent, addIntentToSiri, getFocusMode, reportFocusFilterResult, provideEntityResults, registerBackgroundHandler, reportBackgroundResult, startLiveActivity, updateLiveActivity, endLiveActivity, getLiveActivities, startPTTSession, endPTTSession, setTransmitting, getPTTState, notifySliceChange, getAnalyticsPersisted, clearAnalyticsPersisted, } from './module';
|
|
5
5
|
export { useInvokeInit } from './hooks/useInvokeInit';
|
|
6
6
|
export { useInvoke } from './hooks/useInvoke';
|
|
7
7
|
export { useDonation } from './hooks/useDonation';
|
|
@@ -15,11 +15,23 @@ export { useInvokeHistory } from './hooks/useInvokeHistory';
|
|
|
15
15
|
export { useInvokeAnalytics } from './hooks/useInvokeAnalytics';
|
|
16
16
|
export { useAddToSiri } from './hooks/useAddToSiri';
|
|
17
17
|
export { useFocusFilter } from './hooks/useFocusFilter';
|
|
18
|
+
export { useInvokeQueue } from './hooks/useInvokeQueue';
|
|
19
|
+
export { useLiveActivity } from './hooks/useLiveActivity';
|
|
20
|
+
export { useFocusFilterState } from './hooks/useFocusFilterState';
|
|
21
|
+
export { useBackgroundIntent } from './hooks/useBackgroundIntent';
|
|
22
|
+
export { useEntityQuery } from './hooks/useEntityQuery';
|
|
23
|
+
export { usePushToTalk } from './hooks/usePushToTalk';
|
|
24
|
+
export { useSlice } from './hooks/useSlice';
|
|
25
|
+
export { useOTAConfig } from './hooks/useOTAConfig';
|
|
18
26
|
export { AddToSiriButton } from './components/AddToSiriButton';
|
|
19
27
|
export { ShortcutChip } from './components/ShortcutChip';
|
|
20
28
|
export { InvokeDebugger } from './components/InvokeDebugger';
|
|
21
29
|
export { mockInvoke, simulateColdStart, simulateWarmStart, createMockIntent, } from './utils/testing';
|
|
22
|
-
export
|
|
30
|
+
export { fetchOTAConfig, applyOTAConfig, getOTAConfig } from './utils/otaConfig';
|
|
31
|
+
export { setInvokeErrorHandler, resetInvokeErrorHandler, reportInvokeError, createInvokeError, } from './utils/invokeError';
|
|
32
|
+
export type { InvokeError, InvokeErrorCode } from './utils/invokeError';
|
|
33
|
+
export { loadPersistedAnalytics, persistAnalytics, clearPersistedAnalytics } from './utils/persistentAnalytics';
|
|
34
|
+
export type { InvokeSource, IntentDefinition, IntentParameter, ParameterType, ParameterValue, ResolvedIntent, DonationInput, ShortcutDefinition, SpotlightItem, WidgetDefinition, WidgetAction, WidgetSize, WidgetDataValue, NotificationCategoryDefinition, NotificationActionDefinition, LocationParameter, PersonParameter, EnumOption, InvokeConfig, AppEntityDefinition, AppEntityProperty, BackgroundIntentResult, LiveActivityConfig, LiveActivityAlertConfig, LiveActivityInfo, FocusFilterDefinition, FocusFilterParameter, AppClipDefinition, SliceDefinition, PTTSessionState, OTAIntentPatch, OTAConfig, AnalyticsRecord, FocusMode, } from './types';
|
|
23
35
|
export type { UseInvokeOptions, UseInvokeResult } from './hooks/useInvoke';
|
|
24
36
|
export type { UseShortcutsResult } from './hooks/useShortcuts';
|
|
25
37
|
export type { UseSpotlightResult } from './hooks/useSpotlight';
|
|
@@ -28,5 +40,9 @@ export type { UseHandoffResult } from './hooks/useHandoff';
|
|
|
28
40
|
export type { InvokeAnalytics } from './hooks/useInvokeAnalytics';
|
|
29
41
|
export type { UseLiveActivityIntentResult } from './hooks/useLiveActivityIntent';
|
|
30
42
|
export type { UseWidgetDataResult } from './hooks/useWidgetData';
|
|
31
|
-
export type { QuickTileState
|
|
43
|
+
export type { QuickTileState } from './module';
|
|
44
|
+
export type { UseLiveActivityResult, UseLiveActivityOptions } from './hooks/useLiveActivity';
|
|
45
|
+
export type { UsePushToTalkResult, UsePushToTalkOptions } from './hooks/usePushToTalk';
|
|
46
|
+
export type { UseEntityQueryOptions } from './hooks/useEntityQuery';
|
|
47
|
+
export type { UseOTAConfigOptions, UseOTAConfigResult } from './hooks/useOTAConfig';
|
|
32
48
|
//# sourceMappingURL=index.d.ts.map
|
package/build/src/index.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,SAAS,EAAE,MAAM,UAAU,CAAC;AACrC,OAAO,EAAE,aAAa,EAAE,MAAM,mBAAmB,CAAC;AAClD,OAAO,EAAE,aAAa,IAAI,QAAQ,EAAE,MAAM,mBAAmB,CAAC;AAG9D,OAAO,EACL,gBAAgB,EAChB,iBAAiB,EACjB,YAAY,EACZ,YAAY,EACZ,gBAAgB,EAChB,mBAAmB,EACnB,mBAAmB,EACnB,qBAAqB,EACrB,mBAAmB,EACnB,qBAAqB,EACrB,aAAa,EACb,aAAa,EACb,eAAe,EACf,gBAAgB,EAChB,WAAW,EACX,qBAAqB,EACrB,eAAe,EACf,YAAY,
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,SAAS,EAAE,MAAM,UAAU,CAAC;AACrC,OAAO,EAAE,aAAa,EAAE,MAAM,mBAAmB,CAAC;AAClD,OAAO,EAAE,aAAa,IAAI,QAAQ,EAAE,MAAM,mBAAmB,CAAC;AAG9D,OAAO,EACL,gBAAgB,EAChB,iBAAiB,EACjB,YAAY,EACZ,YAAY,EACZ,gBAAgB,EAChB,mBAAmB,EACnB,mBAAmB,EACnB,qBAAqB,EACrB,mBAAmB,EACnB,qBAAqB,EACrB,aAAa,EACb,aAAa,EACb,YAAY,EACZ,eAAe,EACf,gBAAgB,EAChB,WAAW,EACX,qBAAqB,EACrB,eAAe,EACf,YAAY,EACZ,uBAAuB,EACvB,oBAAoB,EACpB,yBAAyB,EACzB,sBAAsB,EACtB,iBAAiB,EACjB,kBAAkB,EAClB,eAAe,EACf,iBAAiB,EACjB,eAAe,EACf,aAAa,EACb,eAAe,EACf,WAAW,EACX,iBAAiB,EACjB,qBAAqB,EACrB,uBAAuB,GACxB,MAAM,UAAU,CAAC;AAGlB,OAAO,EAAE,aAAa,EAAE,MAAM,uBAAuB,CAAC;AACtD,OAAO,EAAE,SAAS,EAAE,MAAM,mBAAmB,CAAC;AAC9C,OAAO,EAAE,WAAW,EAAE,MAAM,qBAAqB,CAAC;AAClD,OAAO,EAAE,YAAY,EAAE,MAAM,sBAAsB,CAAC;AACpD,OAAO,EAAE,aAAa,EAAE,MAAM,uBAAuB,CAAC;AACtD,OAAO,EAAE,YAAY,EAAE,MAAM,sBAAsB,CAAC;AACpD,OAAO,EAAE,YAAY,EAAE,MAAM,sBAAsB,CAAC;AACpD,OAAO,EAAE,UAAU,EAAE,MAAM,oBAAoB,CAAC;AAChD,OAAO,EAAE,qBAAqB,EAAE,MAAM,+BAA+B,CAAC;AACtE,OAAO,EAAE,gBAAgB,EAAE,MAAM,0BAA0B,CAAC;AAC5D,OAAO,EAAE,kBAAkB,EAAE,MAAM,4BAA4B,CAAC;AAChE,OAAO,EAAE,YAAY,EAAE,MAAM,sBAAsB,CAAC;AACpD,OAAO,EAAE,cAAc,EAAE,MAAM,wBAAwB,CAAC;AAExD,OAAO,EAAE,cAAc,EAAE,MAAM,wBAAwB,CAAC;AACxD,OAAO,EAAE,eAAe,EAAE,MAAM,yBAAyB,CAAC;AAC1D,OAAO,EAAE,mBAAmB,EAAE,MAAM,6BAA6B,CAAC;AAClE,OAAO,EAAE,mBAAmB,EAAE,MAAM,6BAA6B,CAAC;AAClE,OAAO,EAAE,cAAc,EAAE,MAAM,wBAAwB,CAAC;AACxD,OAAO,EAAE,aAAa,EAAE,MAAM,uBAAuB,CAAC;AACtD,OAAO,EAAE,QAAQ,EAAE,MAAM,kBAAkB,CAAC;AAC5C,OAAO,EAAE,YAAY,EAAE,MAAM,sBAAsB,CAAC;AAGpD,OAAO,EAAE,eAAe,EAAE,MAAM,8BAA8B,CAAC;AAC/D,OAAO,EAAE,YAAY,EAAE,MAAM,2BAA2B,CAAC;AACzD,OAAO,EAAE,cAAc,EAAE,MAAM,6BAA6B,CAAC;AAG7D,OAAO,EACL,UAAU,EACV,iBAAiB,EACjB,iBAAiB,EACjB,gBAAgB,GACjB,MAAM,iBAAiB,CAAC;AAGzB,OAAO,EAAE,cAAc,EAAE,cAAc,EAAE,YAAY,EAAE,MAAM,mBAAmB,CAAC;AAGjF,OAAO,EACL,qBAAqB,EACrB,uBAAuB,EACvB,iBAAiB,EACjB,iBAAiB,GAClB,MAAM,qBAAqB,CAAC;AAC7B,YAAY,EAAE,WAAW,EAAE,eAAe,EAAE,MAAM,qBAAqB,CAAC;AAGxE,OAAO,EAAE,sBAAsB,EAAE,gBAAgB,EAAE,uBAAuB,EAAE,MAAM,6BAA6B,CAAC;AAGhH,YAAY,EACV,YAAY,EACZ,gBAAgB,EAChB,eAAe,EACf,aAAa,EACb,cAAc,EACd,cAAc,EACd,aAAa,EACb,kBAAkB,EAClB,aAAa,EACb,gBAAgB,EAChB,YAAY,EACZ,UAAU,EACV,eAAe,EACf,8BAA8B,EAC9B,4BAA4B,EAC5B,iBAAiB,EACjB,eAAe,EACf,UAAU,EACV,YAAY,EAEZ,mBAAmB,EACnB,iBAAiB,EACjB,sBAAsB,EACtB,kBAAkB,EAClB,uBAAuB,EACvB,gBAAgB,EAChB,qBAAqB,EACrB,oBAAoB,EACpB,iBAAiB,EACjB,eAAe,EACf,eAAe,EACf,cAAc,EACd,SAAS,EACT,eAAe,EACf,SAAS,GACV,MAAM,SAAS,CAAC;AAEjB,YAAY,EAAE,gBAAgB,EAAE,eAAe,EAAE,MAAM,mBAAmB,CAAC;AAC3E,YAAY,EAAE,kBAAkB,EAAE,MAAM,sBAAsB,CAAC;AAC/D,YAAY,EAAE,kBAAkB,EAAE,MAAM,sBAAsB,CAAC;AAC/D,YAAY,EAAE,kBAAkB,EAAE,MAAM,sBAAsB,CAAC;AAC/D,YAAY,EAAE,gBAAgB,EAAE,MAAM,oBAAoB,CAAC;AAC3D,YAAY,EAAE,eAAe,EAAE,MAAM,4BAA4B,CAAC;AAClE,YAAY,EAAE,2BAA2B,EAAE,MAAM,+BAA+B,CAAC;AACjF,YAAY,EAAE,mBAAmB,EAAE,MAAM,uBAAuB,CAAC;AACjE,YAAY,EAAE,cAAc,EAAE,MAAM,UAAU,CAAC;AAC/C,YAAY,EAAE,qBAAqB,EAAE,sBAAsB,EAAE,MAAM,yBAAyB,CAAC;AAC7F,YAAY,EAAE,mBAAmB,EAAE,oBAAoB,EAAE,MAAM,uBAAuB,CAAC;AACvF,YAAY,EAAE,qBAAqB,EAAE,MAAM,wBAAwB,CAAC;AACpE,YAAY,EAAE,mBAAmB,EAAE,kBAAkB,EAAE,MAAM,sBAAsB,CAAC"}
|
package/build/src/index.js
CHANGED
|
@@ -3,7 +3,7 @@ export { configure } from './module';
|
|
|
3
3
|
export { onIntentFired } from './utils/analytics';
|
|
4
4
|
export { onIntentFired as onInvoke } from './utils/analytics';
|
|
5
5
|
// ─── Core module functions ────────────────────────────────────────────────────
|
|
6
|
-
export { getInitialIntent, addIntentListener, donateAction, deleteAction, deleteAllActions, setDynamicShortcuts, getDynamicShortcuts, clearDynamicShortcuts, indexSpotlightItems, deindexSpotlightItems, setWidgetData, getWidgetData, updateQuickTile, advertiseHandoff, stopHandoff, setLiveActivityIntent, addIntentToSiri, getFocusMode, } from './module';
|
|
6
|
+
export { getInitialIntent, addIntentListener, donateAction, deleteAction, deleteAllActions, setDynamicShortcuts, getDynamicShortcuts, clearDynamicShortcuts, indexSpotlightItems, deindexSpotlightItems, setWidgetData, getWidgetData, reloadWidget, updateQuickTile, advertiseHandoff, stopHandoff, setLiveActivityIntent, addIntentToSiri, getFocusMode, reportFocusFilterResult, provideEntityResults, registerBackgroundHandler, reportBackgroundResult, startLiveActivity, updateLiveActivity, endLiveActivity, getLiveActivities, startPTTSession, endPTTSession, setTransmitting, getPTTState, notifySliceChange, getAnalyticsPersisted, clearAnalyticsPersisted, } from './module';
|
|
7
7
|
// ─── Hooks ────────────────────────────────────────────────────────────────────
|
|
8
8
|
export { useInvokeInit } from './hooks/useInvokeInit';
|
|
9
9
|
export { useInvoke } from './hooks/useInvoke';
|
|
@@ -18,10 +18,25 @@ export { useInvokeHistory } from './hooks/useInvokeHistory';
|
|
|
18
18
|
export { useInvokeAnalytics } from './hooks/useInvokeAnalytics';
|
|
19
19
|
export { useAddToSiri } from './hooks/useAddToSiri';
|
|
20
20
|
export { useFocusFilter } from './hooks/useFocusFilter';
|
|
21
|
+
// New hooks
|
|
22
|
+
export { useInvokeQueue } from './hooks/useInvokeQueue';
|
|
23
|
+
export { useLiveActivity } from './hooks/useLiveActivity';
|
|
24
|
+
export { useFocusFilterState } from './hooks/useFocusFilterState';
|
|
25
|
+
export { useBackgroundIntent } from './hooks/useBackgroundIntent';
|
|
26
|
+
export { useEntityQuery } from './hooks/useEntityQuery';
|
|
27
|
+
export { usePushToTalk } from './hooks/usePushToTalk';
|
|
28
|
+
export { useSlice } from './hooks/useSlice';
|
|
29
|
+
export { useOTAConfig } from './hooks/useOTAConfig';
|
|
21
30
|
// ─── Components ───────────────────────────────────────────────────────────────
|
|
22
31
|
export { AddToSiriButton } from './components/AddToSiriButton';
|
|
23
32
|
export { ShortcutChip } from './components/ShortcutChip';
|
|
24
33
|
export { InvokeDebugger } from './components/InvokeDebugger';
|
|
25
34
|
// ─── Testing utilities ────────────────────────────────────────────────────────
|
|
26
35
|
export { mockInvoke, simulateColdStart, simulateWarmStart, createMockIntent, } from './utils/testing';
|
|
36
|
+
// ─── OTA config utilities ─────────────────────────────────────────────────────
|
|
37
|
+
export { fetchOTAConfig, applyOTAConfig, getOTAConfig } from './utils/otaConfig';
|
|
38
|
+
// ─── Error handling ───────────────────────────────────────────────────────────
|
|
39
|
+
export { setInvokeErrorHandler, resetInvokeErrorHandler, reportInvokeError, createInvokeError, } from './utils/invokeError';
|
|
40
|
+
// ─── Persistent analytics utilities ──────────────────────────────────────────
|
|
41
|
+
export { loadPersistedAnalytics, persistAnalytics, clearPersistedAnalytics } from './utils/persistentAnalytics';
|
|
27
42
|
//# sourceMappingURL=index.js.map
|
package/build/src/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":"AAAA,iFAAiF;AACjF,OAAO,EAAE,SAAS,EAAE,MAAM,UAAU,CAAC;AACrC,OAAO,EAAE,aAAa,EAAE,MAAM,mBAAmB,CAAC;AAClD,OAAO,EAAE,aAAa,IAAI,QAAQ,EAAE,MAAM,mBAAmB,CAAC;AAE9D,iFAAiF;AACjF,OAAO,EACL,gBAAgB,EAChB,iBAAiB,EACjB,YAAY,EACZ,YAAY,EACZ,gBAAgB,EAChB,mBAAmB,EACnB,mBAAmB,EACnB,qBAAqB,EACrB,mBAAmB,EACnB,qBAAqB,EACrB,aAAa,EACb,aAAa,EACb,eAAe,EACf,gBAAgB,EAChB,WAAW,EACX,qBAAqB,EACrB,eAAe,EACf,YAAY,
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":"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"}
|
package/build/src/module.d.ts
CHANGED
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import { type EventSubscription } from 'expo-modules-core';
|
|
2
|
-
import type { ResolvedIntent, DonationInput, ShortcutDefinition, SpotlightItem, WidgetDataValue, InvokeConfig } from './types';
|
|
2
|
+
import type { ResolvedIntent, DonationInput, ShortcutDefinition, SpotlightItem, WidgetDataValue, InvokeConfig, FocusMode, LiveActivityConfig, LiveActivityInfo, BackgroundIntentResult, PTTSessionState, AnalyticsRecord, ParameterValue } from './types';
|
|
3
3
|
export declare function configure(config: InvokeConfig): void;
|
|
4
4
|
export declare function getInitialIntent(): ResolvedIntent | null;
|
|
5
5
|
export declare function addIntentListener(listener: (intent: ResolvedIntent) => void): EventSubscription;
|
|
@@ -19,7 +19,22 @@ export declare function advertiseHandoff(intentId: string, params?: Record<strin
|
|
|
19
19
|
export declare function stopHandoff(): void;
|
|
20
20
|
export declare function setLiveActivityIntent(activityId: string, intentId: string): void;
|
|
21
21
|
export declare function addIntentToSiri(intentId: string): void;
|
|
22
|
-
/**
|
|
23
|
-
export
|
|
22
|
+
/** Force a specific widget kind to reload its timeline. Pass null to reload all. */
|
|
23
|
+
export declare function reloadWidget(widgetKind?: string | null): void;
|
|
24
24
|
export declare function getFocusMode(): FocusMode;
|
|
25
|
+
export declare function reportFocusFilterResult(filterId: string, success: boolean): void;
|
|
26
|
+
export declare function provideEntityResults(entityId: string, results: Record<string, ParameterValue>[]): void;
|
|
27
|
+
export declare function registerBackgroundHandler(intentId: string): void;
|
|
28
|
+
export declare function reportBackgroundResult(intentId: string, result: BackgroundIntentResult): void;
|
|
29
|
+
export declare function startLiveActivity(config: LiveActivityConfig): Promise<string>;
|
|
30
|
+
export declare function updateLiveActivity(activityId: string, contentState: Record<string, ParameterValue>): void;
|
|
31
|
+
export declare function endLiveActivity(activityId: string, finalState?: Record<string, ParameterValue>): void;
|
|
32
|
+
export declare function getLiveActivities(): Promise<LiveActivityInfo[]>;
|
|
33
|
+
export declare function startPTTSession(channelId: string, participantName?: string): Promise<void>;
|
|
34
|
+
export declare function endPTTSession(channelId: string): Promise<void>;
|
|
35
|
+
export declare function setTransmitting(channelId: string, isTransmitting: boolean): Promise<void>;
|
|
36
|
+
export declare function getPTTState(channelId: string): Promise<PTTSessionState>;
|
|
37
|
+
export declare function notifySliceChange(sliceId: string): void;
|
|
38
|
+
export declare function getAnalyticsPersisted(): Promise<AnalyticsRecord>;
|
|
39
|
+
export declare function clearAnalyticsPersisted(): Promise<void>;
|
|
25
40
|
//# sourceMappingURL=module.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"module.d.ts","sourceRoot":"","sources":["../../src/module.ts"],"names":[],"mappings":"AAAA,OAAO,EAGL,KAAK,iBAAiB,EACvB,MAAM,mBAAmB,CAAC;AAC3B,OAAO,KAAK,EACV,cAAc,EACd,aAAa,EACb,kBAAkB,EAClB,aAAa,EACb,eAAe,EACf,YAAY,
|
|
1
|
+
{"version":3,"file":"module.d.ts","sourceRoot":"","sources":["../../src/module.ts"],"names":[],"mappings":"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"}
|
package/build/src/module.js
CHANGED
|
@@ -94,9 +94,86 @@ export function setLiveActivityIntent(activityId, intentId) {
|
|
|
94
94
|
export function addIntentToSiri(intentId) {
|
|
95
95
|
NativeModule === null || NativeModule === void 0 ? void 0 : NativeModule.addIntentToSiri(intentId);
|
|
96
96
|
}
|
|
97
|
+
// ─── Widget reload ────────────────────────────────────────────────────────────
|
|
98
|
+
/** Force a specific widget kind to reload its timeline. Pass null to reload all. */
|
|
99
|
+
export function reloadWidget(widgetKind = null) {
|
|
100
|
+
NativeModule === null || NativeModule === void 0 ? void 0 : NativeModule.reloadWidget(widgetKind);
|
|
101
|
+
}
|
|
102
|
+
// ─── Focus mode (iOS) ─────────────────────────────────────────────────────────
|
|
97
103
|
export function getFocusMode() {
|
|
98
104
|
var _a;
|
|
99
105
|
const raw = NativeModule === null || NativeModule === void 0 ? void 0 : NativeModule.getFocusMode();
|
|
100
106
|
return (_a = raw) !== null && _a !== void 0 ? _a : null;
|
|
101
107
|
}
|
|
108
|
+
// ─── Focus filter result (iOS 16+) ───────────────────────────────────────────
|
|
109
|
+
export function reportFocusFilterResult(filterId, success) {
|
|
110
|
+
NativeModule === null || NativeModule === void 0 ? void 0 : NativeModule.reportFocusFilterResult(filterId, success);
|
|
111
|
+
}
|
|
112
|
+
// ─── App Entities (iOS 16.4+) ────────────────────────────────────────────────
|
|
113
|
+
export function provideEntityResults(entityId, results) {
|
|
114
|
+
NativeModule === null || NativeModule === void 0 ? void 0 : NativeModule.provideEntityResults(entityId, JSON.stringify(results));
|
|
115
|
+
}
|
|
116
|
+
// ─── Background intent ────────────────────────────────────────────────────────
|
|
117
|
+
export function registerBackgroundHandler(intentId) {
|
|
118
|
+
NativeModule === null || NativeModule === void 0 ? void 0 : NativeModule.registerBackgroundHandler(intentId);
|
|
119
|
+
}
|
|
120
|
+
export function reportBackgroundResult(intentId, result) {
|
|
121
|
+
NativeModule === null || NativeModule === void 0 ? void 0 : NativeModule.reportBackgroundResult(intentId, JSON.stringify(result));
|
|
122
|
+
}
|
|
123
|
+
// ─── Live Activity lifecycle (iOS 16.1+) ──────────────────────────────────────
|
|
124
|
+
export async function startLiveActivity(config) {
|
|
125
|
+
const raw = await (NativeModule === null || NativeModule === void 0 ? void 0 : NativeModule.startLiveActivity(JSON.stringify(config)));
|
|
126
|
+
return raw !== null && raw !== void 0 ? raw : '';
|
|
127
|
+
}
|
|
128
|
+
export function updateLiveActivity(activityId, contentState) {
|
|
129
|
+
NativeModule === null || NativeModule === void 0 ? void 0 : NativeModule.updateLiveActivity(activityId, JSON.stringify(contentState));
|
|
130
|
+
}
|
|
131
|
+
export function endLiveActivity(activityId, finalState) {
|
|
132
|
+
NativeModule === null || NativeModule === void 0 ? void 0 : NativeModule.endLiveActivity(activityId, finalState ? JSON.stringify(finalState) : null);
|
|
133
|
+
}
|
|
134
|
+
export async function getLiveActivities() {
|
|
135
|
+
try {
|
|
136
|
+
const raw = await (NativeModule === null || NativeModule === void 0 ? void 0 : NativeModule.getLiveActivities());
|
|
137
|
+
return raw ? JSON.parse(raw) : [];
|
|
138
|
+
}
|
|
139
|
+
catch {
|
|
140
|
+
return [];
|
|
141
|
+
}
|
|
142
|
+
}
|
|
143
|
+
// ─── Push-to-Talk (iOS 16+) ──────────────────────────────────────────────────
|
|
144
|
+
export async function startPTTSession(channelId, participantName) {
|
|
145
|
+
await (NativeModule === null || NativeModule === void 0 ? void 0 : NativeModule.startPTTSession(channelId, participantName !== null && participantName !== void 0 ? participantName : null));
|
|
146
|
+
}
|
|
147
|
+
export async function endPTTSession(channelId) {
|
|
148
|
+
await (NativeModule === null || NativeModule === void 0 ? void 0 : NativeModule.endPTTSession(channelId));
|
|
149
|
+
}
|
|
150
|
+
export async function setTransmitting(channelId, isTransmitting) {
|
|
151
|
+
await (NativeModule === null || NativeModule === void 0 ? void 0 : NativeModule.setTransmitting(channelId, isTransmitting));
|
|
152
|
+
}
|
|
153
|
+
export async function getPTTState(channelId) {
|
|
154
|
+
try {
|
|
155
|
+
const raw = await (NativeModule === null || NativeModule === void 0 ? void 0 : NativeModule.getPTTState(channelId));
|
|
156
|
+
return raw ? JSON.parse(raw) : { isActive: false, isTransmitting: false };
|
|
157
|
+
}
|
|
158
|
+
catch {
|
|
159
|
+
return { isActive: false, isTransmitting: false };
|
|
160
|
+
}
|
|
161
|
+
}
|
|
162
|
+
// ─── Android Slices ───────────────────────────────────────────────────────────
|
|
163
|
+
export function notifySliceChange(sliceId) {
|
|
164
|
+
NativeModule === null || NativeModule === void 0 ? void 0 : NativeModule.notifySliceChange(sliceId);
|
|
165
|
+
}
|
|
166
|
+
// ─── Persistent analytics ─────────────────────────────────────────────────────
|
|
167
|
+
export async function getAnalyticsPersisted() {
|
|
168
|
+
try {
|
|
169
|
+
const raw = await (NativeModule === null || NativeModule === void 0 ? void 0 : NativeModule.getAnalyticsPersisted());
|
|
170
|
+
return raw ? JSON.parse(raw) : { fired: {}, donated: {}, bySource: {} };
|
|
171
|
+
}
|
|
172
|
+
catch {
|
|
173
|
+
return { fired: {}, donated: {}, bySource: {} };
|
|
174
|
+
}
|
|
175
|
+
}
|
|
176
|
+
export async function clearAnalyticsPersisted() {
|
|
177
|
+
await (NativeModule === null || NativeModule === void 0 ? void 0 : NativeModule.clearAnalyticsPersisted());
|
|
178
|
+
}
|
|
102
179
|
//# sourceMappingURL=module.js.map
|
package/build/src/module.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"module.js","sourceRoot":"","sources":["../../src/module.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,2BAA2B,EAC3B,YAAY,GAEb,MAAM,mBAAmB,CAAC;
|
|
1
|
+
{"version":3,"file":"module.js","sourceRoot":"","sources":["../../src/module.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
export type InvokeSource = 'siri' | 'google' | 'shortcut' | 'widget' | 'live_activity' | 'notification' | 'notification_tap' | 'nfc' | 'qr' | 'deep_link' | 'spotlight' | 'share' | 'carplay' | 'android_auto' | 'watch' | 'control_center' | 'quick_tile' | 'automation' | 'handoff' | 'unknown';
|
|
1
|
+
export type InvokeSource = 'siri' | 'google' | 'shortcut' | 'widget' | 'live_activity' | 'notification' | 'notification_tap' | 'nfc' | 'qr' | 'deep_link' | 'spotlight' | 'share' | 'carplay' | 'android_auto' | 'watch' | 'control_center' | 'quick_tile' | 'automation' | 'handoff' | 'app_clip' | 'ptt' | 'background' | 'unknown';
|
|
2
2
|
export interface LocationParameter {
|
|
3
3
|
latitude: number;
|
|
4
4
|
longitude: number;
|
|
@@ -39,6 +39,9 @@ export type ParameterType = {
|
|
|
39
39
|
itemType: 'text' | 'location' | 'number';
|
|
40
40
|
} | {
|
|
41
41
|
type: 'person';
|
|
42
|
+
} | {
|
|
43
|
+
type: 'entity';
|
|
44
|
+
entityId: string;
|
|
42
45
|
};
|
|
43
46
|
export type IntentParameter = ParameterType & {
|
|
44
47
|
/** Key used in parameters map */
|
|
@@ -85,8 +88,14 @@ export interface WidgetAction {
|
|
|
85
88
|
label: string;
|
|
86
89
|
intentId: string;
|
|
87
90
|
icon?: string;
|
|
91
|
+
/** Pre-filled parameters passed when the widget button fires */
|
|
92
|
+
parameters?: Record<string, ParameterValue>;
|
|
93
|
+
/** True = fires without opening the app (iOS 17+ interactive widget, requires openAppWhenRun: false on the intent) */
|
|
94
|
+
interactive?: boolean;
|
|
95
|
+
/** Red destructive styling on iOS */
|
|
96
|
+
destructive?: boolean;
|
|
88
97
|
}
|
|
89
|
-
export type WidgetSize = 'small' | 'medium' | 'large' | 'extraLarge' | 'accessory';
|
|
98
|
+
export type WidgetSize = 'small' | 'medium' | 'large' | 'extraLarge' | 'accessory' | 'accessoryStandBy';
|
|
90
99
|
export interface WidgetDefinition {
|
|
91
100
|
id: string;
|
|
92
101
|
title: string;
|
|
@@ -145,12 +154,116 @@ export interface SpotlightItem {
|
|
|
145
154
|
keywords?: string[];
|
|
146
155
|
}
|
|
147
156
|
export type WidgetDataValue = string | number | boolean | null;
|
|
157
|
+
export interface AppEntityProperty {
|
|
158
|
+
name: string;
|
|
159
|
+
type: 'text' | 'number' | 'date';
|
|
160
|
+
displayName: string;
|
|
161
|
+
}
|
|
162
|
+
export interface AppEntityDefinition {
|
|
163
|
+
/** Stable identifier, e.g. "carrier" */
|
|
164
|
+
id: string;
|
|
165
|
+
/** Human-readable label Siri uses, e.g. "Carrier" */
|
|
166
|
+
title: string;
|
|
167
|
+
/** Fields Siri can display/search */
|
|
168
|
+
properties: AppEntityProperty[];
|
|
169
|
+
/** intentId that returns the list for autocomplete (fires onEntityQuery) */
|
|
170
|
+
queryIntentId: string;
|
|
171
|
+
}
|
|
172
|
+
export interface BackgroundIntentResult {
|
|
173
|
+
success: boolean;
|
|
174
|
+
/** Text Siri reads aloud after the handler resolves */
|
|
175
|
+
spokenResponse?: string;
|
|
176
|
+
error?: string;
|
|
177
|
+
}
|
|
178
|
+
export interface LiveActivityAlertConfig {
|
|
179
|
+
title: string;
|
|
180
|
+
body: string;
|
|
181
|
+
sound?: boolean;
|
|
182
|
+
}
|
|
183
|
+
export interface LiveActivityConfig {
|
|
184
|
+
/** Must match ActivityAttributes type name in Swift (e.g. "ErrandActivityAttributes") */
|
|
185
|
+
activityType: string;
|
|
186
|
+
contentState: Record<string, ParameterValue>;
|
|
187
|
+
alertConfig?: LiveActivityAlertConfig;
|
|
188
|
+
/** ms timestamp after which the activity is stale */
|
|
189
|
+
staleDate?: number;
|
|
190
|
+
/** 0–100 score used by system to prioritise competing activities */
|
|
191
|
+
relevanceScore?: number;
|
|
192
|
+
}
|
|
193
|
+
export interface LiveActivityInfo {
|
|
194
|
+
activityId: string;
|
|
195
|
+
activityType: string;
|
|
196
|
+
isActive: boolean;
|
|
197
|
+
}
|
|
198
|
+
export interface FocusFilterParameter {
|
|
199
|
+
name: string;
|
|
200
|
+
type: 'boolean' | 'enum';
|
|
201
|
+
title: string;
|
|
202
|
+
options?: EnumOption[];
|
|
203
|
+
}
|
|
204
|
+
export interface FocusFilterDefinition {
|
|
205
|
+
/** Stable identifier, e.g. "work-mode" */
|
|
206
|
+
id: string;
|
|
207
|
+
title: string;
|
|
208
|
+
/** Which system Focus modes trigger this filter */
|
|
209
|
+
supportedFocusModes: FocusMode[];
|
|
210
|
+
parameters?: FocusFilterParameter[];
|
|
211
|
+
}
|
|
212
|
+
export interface AppClipDefinition {
|
|
213
|
+
/** Intent fired when the clip is invoked */
|
|
214
|
+
intentId: string;
|
|
215
|
+
/** URL prefix registered in Associated Domains, e.g. "https://clips.myapp.com" */
|
|
216
|
+
urlPrefix: string;
|
|
217
|
+
title: string;
|
|
218
|
+
subtitleUrl?: string;
|
|
219
|
+
headerImageUrl?: string;
|
|
220
|
+
}
|
|
221
|
+
export interface SliceDefinition {
|
|
222
|
+
id: string;
|
|
223
|
+
title: string;
|
|
224
|
+
/** Path segment, e.g. "/active-errand" → content://{package}/active-errand */
|
|
225
|
+
uriPath: string;
|
|
226
|
+
/** Intent fired when user taps the slice */
|
|
227
|
+
intentId: string;
|
|
228
|
+
/** widgetData key used as the slice subtitle */
|
|
229
|
+
subtitleKey?: string;
|
|
230
|
+
/** widgetData key used for the slice icon */
|
|
231
|
+
iconKey?: string;
|
|
232
|
+
}
|
|
233
|
+
export interface PTTSessionState {
|
|
234
|
+
isActive: boolean;
|
|
235
|
+
isTransmitting: boolean;
|
|
236
|
+
participant?: string;
|
|
237
|
+
}
|
|
238
|
+
export interface OTAIntentPatch {
|
|
239
|
+
intentId: string;
|
|
240
|
+
title?: string;
|
|
241
|
+
shortTitle?: string;
|
|
242
|
+
/** false = useInvoke ignores this intentId at runtime */
|
|
243
|
+
enabled?: boolean;
|
|
244
|
+
}
|
|
245
|
+
export interface OTAConfig {
|
|
246
|
+
version: number;
|
|
247
|
+
patches: OTAIntentPatch[];
|
|
248
|
+
}
|
|
249
|
+
export interface AnalyticsRecord {
|
|
250
|
+
fired: Record<string, number>;
|
|
251
|
+
donated: Record<string, number>;
|
|
252
|
+
bySource: Partial<Record<InvokeSource, number>>;
|
|
253
|
+
}
|
|
254
|
+
export type FocusMode = 'work' | 'personal' | 'sleep' | 'do_not_disturb' | 'driving' | 'focused' | null;
|
|
148
255
|
export interface InvokeConfig {
|
|
149
256
|
intents: IntentDefinition[];
|
|
150
257
|
widgets?: WidgetDefinition[];
|
|
151
258
|
notificationActions?: NotificationCategoryDefinition[];
|
|
152
|
-
|
|
153
|
-
|
|
259
|
+
entities?: AppEntityDefinition[];
|
|
260
|
+
focusFilters?: FocusFilterDefinition[];
|
|
261
|
+
appClips?: AppClipDefinition[];
|
|
262
|
+
slices?: SliceDefinition[];
|
|
263
|
+
/** Remote URL to fetch OTA patches (JS layer only — native phrases require rebuild) */
|
|
264
|
+
otaConfigUrl?: string;
|
|
265
|
+
/** OTA config provided inline (useful for testing) */
|
|
266
|
+
otaConfig?: OTAConfig;
|
|
154
267
|
/** Log level for debugging */
|
|
155
268
|
logLevel?: 'none' | 'error' | 'warn' | 'debug';
|
|
156
269
|
}
|