@ringg/react-native 0.0.1-alpha.10

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 (112) hide show
  1. package/LICENSE +21 -0
  2. package/README.md +250 -0
  3. package/app.plugin.js +51 -0
  4. package/lib/module/adapters/index.js +4 -0
  5. package/lib/module/adapters/index.js.map +1 -0
  6. package/lib/module/adapters/livekit-rn-adapter.js +216 -0
  7. package/lib/module/adapters/livekit-rn-adapter.js.map +1 -0
  8. package/lib/module/components/RinggWidget.js +554 -0
  9. package/lib/module/components/RinggWidget.js.map +1 -0
  10. package/lib/module/components/steps/ButtonsStep.js +146 -0
  11. package/lib/module/components/steps/ButtonsStep.js.map +1 -0
  12. package/lib/module/components/steps/CalendarStep.js +190 -0
  13. package/lib/module/components/steps/CalendarStep.js.map +1 -0
  14. package/lib/module/components/steps/ConfirmationStep.js +175 -0
  15. package/lib/module/components/steps/ConfirmationStep.js.map +1 -0
  16. package/lib/module/components/steps/FormStep.js +346 -0
  17. package/lib/module/components/steps/FormStep.js.map +1 -0
  18. package/lib/module/components/steps/InteractiveFlow.js +249 -0
  19. package/lib/module/components/steps/InteractiveFlow.js.map +1 -0
  20. package/lib/module/components/ui/ActionButton.js +92 -0
  21. package/lib/module/components/ui/ActionButton.js.map +1 -0
  22. package/lib/module/components/ui/CallControls.js +168 -0
  23. package/lib/module/components/ui/CallControls.js.map +1 -0
  24. package/lib/module/components/ui/FeedbackScreen.js +180 -0
  25. package/lib/module/components/ui/FeedbackScreen.js.map +1 -0
  26. package/lib/module/components/ui/Icons.js +294 -0
  27. package/lib/module/components/ui/Icons.js.map +1 -0
  28. package/lib/module/components/ui/MessageBubble.js +80 -0
  29. package/lib/module/components/ui/MessageBubble.js.map +1 -0
  30. package/lib/module/components/ui/TabSelector.js +80 -0
  31. package/lib/module/components/ui/TabSelector.js.map +1 -0
  32. package/lib/module/components/ui/WidgetHeader.js +168 -0
  33. package/lib/module/components/ui/WidgetHeader.js.map +1 -0
  34. package/lib/module/context/RinggProvider.js +134 -0
  35. package/lib/module/context/RinggProvider.js.map +1 -0
  36. package/lib/module/context/index.js +4 -0
  37. package/lib/module/context/index.js.map +1 -0
  38. package/lib/module/globals.d.js +2 -0
  39. package/lib/module/globals.d.js.map +1 -0
  40. package/lib/module/hooks/index.js +10 -0
  41. package/lib/module/hooks/index.js.map +1 -0
  42. package/lib/module/hooks/useRinggCall.js +259 -0
  43. package/lib/module/hooks/useRinggCall.js.map +1 -0
  44. package/lib/module/hooks/useRinggChat.js +141 -0
  45. package/lib/module/hooks/useRinggChat.js.map +1 -0
  46. package/lib/module/hooks/useRinggComponents.js +236 -0
  47. package/lib/module/hooks/useRinggComponents.js.map +1 -0
  48. package/lib/module/hooks/useRinggFeedback.js +66 -0
  49. package/lib/module/hooks/useRinggFeedback.js.map +1 -0
  50. package/lib/module/hooks/useRinggTheme.js +39 -0
  51. package/lib/module/hooks/useRinggTheme.js.map +1 -0
  52. package/lib/module/hooks/useRinggTranscripts.js +70 -0
  53. package/lib/module/hooks/useRinggTranscripts.js.map +1 -0
  54. package/lib/module/hooks/useRinggWidgetState.js +51 -0
  55. package/lib/module/hooks/useRinggWidgetState.js.map +1 -0
  56. package/lib/module/index.js +56 -0
  57. package/lib/module/index.js.map +1 -0
  58. package/lib/module/package.json +1 -0
  59. package/lib/typescript/adapters/index.d.ts +2 -0
  60. package/lib/typescript/adapters/index.d.ts.map +1 -0
  61. package/lib/typescript/adapters/livekit-rn-adapter.d.ts +38 -0
  62. package/lib/typescript/adapters/livekit-rn-adapter.d.ts.map +1 -0
  63. package/lib/typescript/components/RinggWidget.d.ts +44 -0
  64. package/lib/typescript/components/RinggWidget.d.ts.map +1 -0
  65. package/lib/typescript/components/steps/ButtonsStep.d.ts +17 -0
  66. package/lib/typescript/components/steps/ButtonsStep.d.ts.map +1 -0
  67. package/lib/typescript/components/steps/CalendarStep.d.ts +16 -0
  68. package/lib/typescript/components/steps/CalendarStep.d.ts.map +1 -0
  69. package/lib/typescript/components/steps/ConfirmationStep.d.ts +16 -0
  70. package/lib/typescript/components/steps/ConfirmationStep.d.ts.map +1 -0
  71. package/lib/typescript/components/steps/FormStep.d.ts +17 -0
  72. package/lib/typescript/components/steps/FormStep.d.ts.map +1 -0
  73. package/lib/typescript/components/steps/InteractiveFlow.d.ts +23 -0
  74. package/lib/typescript/components/steps/InteractiveFlow.d.ts.map +1 -0
  75. package/lib/typescript/components/ui/ActionButton.d.ts +22 -0
  76. package/lib/typescript/components/ui/ActionButton.d.ts.map +1 -0
  77. package/lib/typescript/components/ui/CallControls.d.ts +22 -0
  78. package/lib/typescript/components/ui/CallControls.d.ts.map +1 -0
  79. package/lib/typescript/components/ui/FeedbackScreen.d.ts +24 -0
  80. package/lib/typescript/components/ui/FeedbackScreen.d.ts.map +1 -0
  81. package/lib/typescript/components/ui/Icons.d.ts +28 -0
  82. package/lib/typescript/components/ui/Icons.d.ts.map +1 -0
  83. package/lib/typescript/components/ui/MessageBubble.d.ts +17 -0
  84. package/lib/typescript/components/ui/MessageBubble.d.ts.map +1 -0
  85. package/lib/typescript/components/ui/TabSelector.d.ts +21 -0
  86. package/lib/typescript/components/ui/TabSelector.d.ts.map +1 -0
  87. package/lib/typescript/components/ui/WidgetHeader.d.ts +20 -0
  88. package/lib/typescript/components/ui/WidgetHeader.d.ts.map +1 -0
  89. package/lib/typescript/context/RinggProvider.d.ts +53 -0
  90. package/lib/typescript/context/RinggProvider.d.ts.map +1 -0
  91. package/lib/typescript/context/index.d.ts +3 -0
  92. package/lib/typescript/context/index.d.ts.map +1 -0
  93. package/lib/typescript/hooks/index.d.ts +15 -0
  94. package/lib/typescript/hooks/index.d.ts.map +1 -0
  95. package/lib/typescript/hooks/useRinggCall.d.ts +41 -0
  96. package/lib/typescript/hooks/useRinggCall.d.ts.map +1 -0
  97. package/lib/typescript/hooks/useRinggChat.d.ts +29 -0
  98. package/lib/typescript/hooks/useRinggChat.d.ts.map +1 -0
  99. package/lib/typescript/hooks/useRinggComponents.d.ts +52 -0
  100. package/lib/typescript/hooks/useRinggComponents.d.ts.map +1 -0
  101. package/lib/typescript/hooks/useRinggFeedback.d.ts +23 -0
  102. package/lib/typescript/hooks/useRinggFeedback.d.ts.map +1 -0
  103. package/lib/typescript/hooks/useRinggTheme.d.ts +40 -0
  104. package/lib/typescript/hooks/useRinggTheme.d.ts.map +1 -0
  105. package/lib/typescript/hooks/useRinggTranscripts.d.ts +30 -0
  106. package/lib/typescript/hooks/useRinggTranscripts.d.ts.map +1 -0
  107. package/lib/typescript/hooks/useRinggWidgetState.d.ts +38 -0
  108. package/lib/typescript/hooks/useRinggWidgetState.d.ts.map +1 -0
  109. package/lib/typescript/index.d.ts +44 -0
  110. package/lib/typescript/index.d.ts.map +1 -0
  111. package/lib/typescript/package.json +1 -0
  112. package/package.json +80 -0
@@ -0,0 +1,40 @@
1
+ /**
2
+ * useRinggTheme — hook to access the resolved widget theme.
3
+ *
4
+ * Returns the fully resolved theme (all defaults filled in),
5
+ * plus utility functions for gradient-aware styling.
6
+ *
7
+ * Usage:
8
+ * ```tsx
9
+ * const { theme, getBackgroundStyle, getSolidColor } = useRinggTheme();
10
+ *
11
+ * <View style={{ backgroundColor: theme.backgroundColor }}>
12
+ * <View style={getBackgroundStyle(theme.primaryColor)}>
13
+ * <Text style={{ color: theme.primaryTextColor }}>Hello</Text>
14
+ * </View>
15
+ * </View>
16
+ * ```
17
+ */
18
+ import { type ResolvedWidgetTheme } from "@ringg/core";
19
+ export interface UseRinggThemeReturn {
20
+ /** Fully resolved widget theme */
21
+ theme: ResolvedWidgetTheme;
22
+ /** Get a solid color from a potentially gradient color string */
23
+ getSolidColor: (color: string) => string;
24
+ /** Get the button border radius for the current theme */
25
+ buttonRadius: string;
26
+ /** Check if a color is light (for contrast decisions) */
27
+ isLight: (color: string) => boolean;
28
+ /** Get a contrasting text color (black or white) for a given background */
29
+ getContrastText: (bgColor: string) => string;
30
+ /**
31
+ * Get a RN-safe background style.
32
+ * Gradients are not natively supported in RN, so this returns
33
+ * the dominant solid color. For gradient support, use a LinearGradient component.
34
+ */
35
+ getBackgroundStyle: (color: string) => {
36
+ backgroundColor: string;
37
+ };
38
+ }
39
+ export declare function useRinggTheme(): UseRinggThemeReturn;
40
+ //# sourceMappingURL=useRinggTheme.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"useRinggTheme.d.ts","sourceRoot":"","sources":["../../../src/hooks/useRinggTheme.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;GAgBG;AAIH,OAAO,EAAwE,KAAK,mBAAmB,EAAE,MAAM,aAAa,CAAC;AAI7H,MAAM,WAAW,mBAAmB;IAClC,kCAAkC;IAClC,KAAK,EAAE,mBAAmB,CAAC;IAE3B,iEAAiE;IACjE,aAAa,EAAE,CAAC,KAAK,EAAE,MAAM,KAAK,MAAM,CAAC;IAEzC,yDAAyD;IACzD,YAAY,EAAE,MAAM,CAAC;IAErB,yDAAyD;IACzD,OAAO,EAAE,CAAC,KAAK,EAAE,MAAM,KAAK,OAAO,CAAC;IAEpC,2EAA2E;IAC3E,eAAe,EAAE,CAAC,OAAO,EAAE,MAAM,KAAK,MAAM,CAAC;IAE7C;;;;OAIG;IACH,kBAAkB,EAAE,CAAC,KAAK,EAAE,MAAM,KAAK;QAAE,eAAe,EAAE,MAAM,CAAA;KAAE,CAAC;CACpE;AAED,wBAAgB,aAAa,IAAI,mBAAmB,CAgBnD"}
@@ -0,0 +1,30 @@
1
+ /**
2
+ * useRinggTranscripts — headless hook for live audio transcription.
3
+ *
4
+ * During a voice call, the AI agent's speech and the user's speech
5
+ * are transcribed in real-time. This hook provides those transcripts
6
+ * as a sorted message list.
7
+ *
8
+ * Usage:
9
+ * ```tsx
10
+ * const { transcripts } = useRinggTranscripts();
11
+ *
12
+ * <FlatList
13
+ * data={transcripts}
14
+ * renderItem={({ item }) => (
15
+ * <Text style={{ color: item.isSelf ? 'blue' : 'black' }}>
16
+ * {item.name}: {item.message}
17
+ * </Text>
18
+ * )}
19
+ * />
20
+ * ```
21
+ */
22
+ import type { ChatMessage } from "@ringg/core";
23
+ export interface UseRinggTranscriptsReturn {
24
+ /** Live transcripts sorted chronologically */
25
+ transcripts: ChatMessage[];
26
+ /** Clear all transcripts (e.g., after call ends) */
27
+ clearTranscripts: () => void;
28
+ }
29
+ export declare function useRinggTranscripts(): UseRinggTranscriptsReturn;
30
+ //# sourceMappingURL=useRinggTranscripts.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"useRinggTranscripts.d.ts","sourceRoot":"","sources":["../../../src/hooks/useRinggTranscripts.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;GAoBG;AAIH,OAAO,KAAK,EAAE,WAAW,EAAyC,MAAM,aAAa,CAAC;AAItF,MAAM,WAAW,yBAAyB;IACxC,8CAA8C;IAC9C,WAAW,EAAE,WAAW,EAAE,CAAC;IAE3B,oDAAoD;IACpD,gBAAgB,EAAE,MAAM,IAAI,CAAC;CAC9B;AAED,wBAAgB,mBAAmB,IAAI,yBAAyB,CAgD/D"}
@@ -0,0 +1,38 @@
1
+ /**
2
+ * useRinggWidgetState — hook to observe the widget's open/close/feedback state.
3
+ *
4
+ * Subscribes to the WidgetStateController from @ringg/core and
5
+ * re-renders when the state changes.
6
+ *
7
+ * Usage:
8
+ * ```tsx
9
+ * const { isOpen, isShowingFeedback, toggle, open, close } = useRinggWidgetState();
10
+ *
11
+ * <TouchableOpacity onPress={toggle}>
12
+ * <PhoneIcon />
13
+ * </TouchableOpacity>
14
+ *
15
+ * {isOpen && <WidgetPanel />}
16
+ * {isShowingFeedback && <FeedbackScreen />}
17
+ * ```
18
+ */
19
+ export interface UseRinggWidgetStateReturn {
20
+ /** Whether the widget panel is currently visible */
21
+ isOpen: boolean;
22
+ /** Whether the feedback screen is showing */
23
+ isShowingFeedback: boolean;
24
+ /** Current call ID (null if not in a call) */
25
+ currentCallId: string | null;
26
+ /** Open the widget panel */
27
+ open: () => void;
28
+ /** Minimize (close) the widget panel */
29
+ minimize: () => void;
30
+ /** Close and reset (clears call ID, hides feedback) */
31
+ close: () => void;
32
+ /** Toggle the widget open/closed */
33
+ toggle: () => void;
34
+ /** Show the feedback screen */
35
+ showFeedback: () => void;
36
+ }
37
+ export declare function useRinggWidgetState(): UseRinggWidgetStateReturn;
38
+ //# sourceMappingURL=useRinggWidgetState.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"useRinggWidgetState.d.ts","sourceRoot":"","sources":["../../../src/hooks/useRinggWidgetState.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;GAiBG;AAQH,MAAM,WAAW,yBAAyB;IACxC,oDAAoD;IACpD,MAAM,EAAE,OAAO,CAAC;IAEhB,6CAA6C;IAC7C,iBAAiB,EAAE,OAAO,CAAC;IAE3B,8CAA8C;IAC9C,aAAa,EAAE,MAAM,GAAG,IAAI,CAAC;IAE7B,4BAA4B;IAC5B,IAAI,EAAE,MAAM,IAAI,CAAC;IAEjB,wCAAwC;IACxC,QAAQ,EAAE,MAAM,IAAI,CAAC;IAErB,uDAAuD;IACvD,KAAK,EAAE,MAAM,IAAI,CAAC;IAElB,oCAAoC;IACpC,MAAM,EAAE,MAAM,IAAI,CAAC;IAEnB,+BAA+B;IAC/B,YAAY,EAAE,MAAM,IAAI,CAAC;CAC1B;AAED,wBAAgB,mBAAmB,IAAI,yBAAyB,CA4B/D"}
@@ -0,0 +1,44 @@
1
+ /**
2
+ * @ringg/react-native
3
+ *
4
+ * Ringg AI widget for React Native apps.
5
+ *
6
+ * Provides two consumption modes:
7
+ *
8
+ * 1. DROP-IN WIDGET — pre-built UI with FAB trigger + chat panel:
9
+ * ```tsx
10
+ * import { RinggWidget } from "@ringg/react-native";
11
+ * <RinggWidget config={{ agentId: "...", xApiKey: "...", variables: {} }} />
12
+ * ```
13
+ *
14
+ * 2. HEADLESS HOOKS — build your own UI:
15
+ * ```tsx
16
+ * import { RinggProvider, useRinggCall, useRinggChat } from "@ringg/react-native";
17
+ *
18
+ * <RinggProvider config={{ agentId: "...", xApiKey: "...", variables: {} }}>
19
+ * <YourCustomUI />
20
+ * </RinggProvider>
21
+ * ```
22
+ */
23
+ export { RinggWidget } from "./components/RinggWidget";
24
+ export type { RinggWidgetProps } from "./components/RinggWidget";
25
+ export { RinggProvider, useRinggContext } from "./context";
26
+ export type { RinggProviderProps, RinggContextValue } from "./context";
27
+ export { useRinggCall, useRinggChat, useRinggTranscripts, useRinggComponents, useRinggWidgetState, useRinggFeedback, useRinggTheme } from "./hooks";
28
+ export type { UseRinggCallReturn, UseRinggChatReturn, UseRinggTranscriptsReturn, UseRinggComponentsReturn, UseRinggWidgetStateReturn, UseRinggFeedbackReturn, UseRinggThemeReturn } from "./hooks";
29
+ export { LiveKitRNAdapter } from "./adapters";
30
+ export type { RinggWidgetConfig, MediaType, WidgetTheme, ResolvedWidgetTheme, ComponentTheme, ChatMessage, CalendarSlot, CalendarBookingPayload, FormPayload, ButtonsPayload, ConfirmationPayload, InteractiveFlowPayload, SimpleComponentPayload, ComponentPayload, ComponentActionResponse, SlashCommand, DiseaseOption, WidgetEventName, WidgetEventMap, ConnectionState, } from "@ringg/core";
31
+ export { DEFAULT_CONFIG, DEFAULT_WIDGET_THEME, WIDGET_PRESET_THEMES, mergeWidgetTheme, getButtonRadius, colorToSolid, isGradient, formatTimestamp, groupSlotsByDate, formatSlotTime, formatSlotDate, isAgentIdentity, filterSlashCommands, } from "@ringg/core";
32
+ export { MessageBubble } from "./components/ui/MessageBubble";
33
+ export { WidgetHeader } from "./components/ui/WidgetHeader";
34
+ export { ActionButton } from "./components/ui/ActionButton";
35
+ export { CallControls } from "./components/ui/CallControls";
36
+ export { FeedbackScreen } from "./components/ui/FeedbackScreen";
37
+ export { TabSelector } from "./components/ui/TabSelector";
38
+ export { InteractiveFlow } from "./components/steps/InteractiveFlow";
39
+ export { CalendarStep } from "./components/steps/CalendarStep";
40
+ export { FormStep } from "./components/steps/FormStep";
41
+ export { ButtonsStep } from "./components/steps/ButtonsStep";
42
+ export { ConfirmationStep } from "./components/steps/ConfirmationStep";
43
+ export { PhoneCallRingIcon, PhoneCallIcon, PhoneEndCallIcon, MicrophoneIcon, MicOffIcon, ChatIcon, SendIcon, StarIcon, CloseIcon, MinusIcon, WidgetPhoneIcon } from "./components/ui/Icons";
44
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;GAqBG;AAGH,OAAO,EAAE,WAAW,EAAE,MAAM,0BAA0B,CAAC;AACvD,YAAY,EAAE,gBAAgB,EAAE,MAAM,0BAA0B,CAAC;AAGjE,OAAO,EAAE,aAAa,EAAE,eAAe,EAAE,MAAM,WAAW,CAAC;AAC3D,YAAY,EAAE,kBAAkB,EAAE,iBAAiB,EAAE,MAAM,WAAW,CAAC;AAGvE,OAAO,EAAE,YAAY,EAAE,YAAY,EAAE,mBAAmB,EAAE,kBAAkB,EAAE,mBAAmB,EAAE,gBAAgB,EAAE,aAAa,EAAE,MAAM,SAAS,CAAC;AAEpJ,YAAY,EAAE,kBAAkB,EAAE,kBAAkB,EAAE,yBAAyB,EAAE,wBAAwB,EAAE,yBAAyB,EAAE,sBAAsB,EAAE,mBAAmB,EAAE,MAAM,SAAS,CAAC;AAGnM,OAAO,EAAE,gBAAgB,EAAE,MAAM,YAAY,CAAC;AAG9C,YAAY,EACV,iBAAiB,EACjB,SAAS,EACT,WAAW,EACX,mBAAmB,EACnB,cAAc,EACd,WAAW,EACX,YAAY,EACZ,sBAAsB,EACtB,WAAW,EACX,cAAc,EACd,mBAAmB,EACnB,sBAAsB,EACtB,sBAAsB,EACtB,gBAAgB,EAChB,uBAAuB,EACvB,YAAY,EACZ,aAAa,EACb,eAAe,EACf,cAAc,EACd,eAAe,GAChB,MAAM,aAAa,CAAC;AAErB,OAAO,EACL,cAAc,EACd,oBAAoB,EACpB,oBAAoB,EACpB,gBAAgB,EAChB,eAAe,EACf,YAAY,EACZ,UAAU,EACV,eAAe,EACf,gBAAgB,EAChB,cAAc,EACd,cAAc,EACd,eAAe,EACf,mBAAmB,GACpB,MAAM,aAAa,CAAC;AAGrB,OAAO,EAAE,aAAa,EAAE,MAAM,+BAA+B,CAAC;AAC9D,OAAO,EAAE,YAAY,EAAE,MAAM,8BAA8B,CAAC;AAC5D,OAAO,EAAE,YAAY,EAAE,MAAM,8BAA8B,CAAC;AAC5D,OAAO,EAAE,YAAY,EAAE,MAAM,8BAA8B,CAAC;AAC5D,OAAO,EAAE,cAAc,EAAE,MAAM,gCAAgC,CAAC;AAChE,OAAO,EAAE,WAAW,EAAE,MAAM,6BAA6B,CAAC;AAG1D,OAAO,EAAE,eAAe,EAAE,MAAM,oCAAoC,CAAC;AACrE,OAAO,EAAE,YAAY,EAAE,MAAM,iCAAiC,CAAC;AAC/D,OAAO,EAAE,QAAQ,EAAE,MAAM,6BAA6B,CAAC;AACvD,OAAO,EAAE,WAAW,EAAE,MAAM,gCAAgC,CAAC;AAC7D,OAAO,EAAE,gBAAgB,EAAE,MAAM,qCAAqC,CAAC;AAGvE,OAAO,EAAE,iBAAiB,EAAE,aAAa,EAAE,gBAAgB,EAAE,cAAc,EAAE,UAAU,EAAE,QAAQ,EAAE,QAAQ,EAAE,QAAQ,EAAE,SAAS,EAAE,SAAS,EAAE,eAAe,EAAE,MAAM,uBAAuB,CAAC"}
@@ -0,0 +1 @@
1
+ {"type":"module"}
package/package.json ADDED
@@ -0,0 +1,80 @@
1
+ {
2
+ "name": "@ringg/react-native",
3
+ "version": "0.0.1-alpha.10",
4
+ "private": false,
5
+ "license": "MIT",
6
+ "description": "Ringg AI widget for React Native — drop-in component and headless hooks for voice/text AI agents",
7
+ "author": "Ringg AI <dev@ringg.ai>",
8
+ "homepage": "https://ringg.ai",
9
+ "keywords": [
10
+ "ringg",
11
+ "react-native",
12
+ "ai-agent",
13
+ "voice-agent",
14
+ "widget",
15
+ "conversational-ai",
16
+ "headless",
17
+ "expo"
18
+ ],
19
+ "engines": {
20
+ "node": ">=18"
21
+ },
22
+ "sideEffects": false,
23
+ "main": "./lib/module/index.js",
24
+ "types": "./lib/typescript/index.d.ts",
25
+ "react-native": "./lib/module/index.js",
26
+ "exports": {
27
+ ".": {
28
+ "types": "./lib/typescript/index.d.ts",
29
+ "default": "./lib/module/index.js"
30
+ },
31
+ "./app.plugin.js": "./app.plugin.js",
32
+ "./app.plugin": "./app.plugin.js",
33
+ "./package.json": "./package.json"
34
+ },
35
+ "files": [
36
+ "lib",
37
+ "app.plugin.js",
38
+ "LICENSE",
39
+ "README.md"
40
+ ],
41
+ "peerDependencies": {
42
+ "react": ">=17.0.0",
43
+ "react-native": ">=0.70.0"
44
+ },
45
+ "dependencies": {
46
+ "@livekit/react-native": ">=2.0.0",
47
+ "@livekit/react-native-expo-plugin": ">=1.0.0",
48
+ "@config-plugins/react-native-webrtc": ">=9.0.0",
49
+ "livekit-client": ">=2.0.0",
50
+ "@ringg/core": "0.0.1-alpha.10"
51
+ },
52
+ "devDependencies": {
53
+ "@types/react": "^18.3.10",
54
+ "react": "^18.3.1",
55
+ "react-native": "^0.76.0",
56
+ "@livekit/react-native": "^2.4.0",
57
+ "livekit-client": "^2.17.2",
58
+ "react-native-builder-bob": "^0.40.0",
59
+ "typescript": "^5"
60
+ },
61
+ "react-native-builder-bob": {
62
+ "source": "src",
63
+ "output": "lib",
64
+ "targets": [
65
+ [
66
+ "module",
67
+ {
68
+ "esm": true
69
+ }
70
+ ],
71
+ "typescript"
72
+ ]
73
+ },
74
+ "scripts": {
75
+ "typecheck": "tsc --noEmit",
76
+ "build": "bob build",
77
+ "lint": "eslint src/",
78
+ "release": "pnpm build && pnpm publish --access public --no-git-checks --tag alpha"
79
+ }
80
+ }