react-native-srschat 0.1.0 → 0.1.2

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 (70) hide show
  1. package/dist/commonjs/index.js +163 -0
  2. package/dist/commonjs/index.js.map +1 -0
  3. package/dist/module/index.js +155 -0
  4. package/dist/module/index.js.map +1 -0
  5. package/dist/typescript/index.d.ts +13 -0
  6. package/dist/typescript/index.d.ts.map +1 -0
  7. package/package.json +61 -172
  8. package/src/index.tsx +189 -4
  9. package/README.md +0 -33
  10. package/android/generated/android/app/build/generated/source/codegen/jni/CMakeLists.txt +0 -36
  11. package/android/generated/android/app/build/generated/source/codegen/jni/RNSrschatSpec-generated.cpp +0 -22
  12. package/android/generated/android/app/build/generated/source/codegen/jni/RNSrschatSpec.h +0 -24
  13. package/android/generated/android/app/build/generated/source/codegen/jni/react/renderer/components/RNSrschatSpec/RNSrschatSpecJSI-generated.cpp +0 -17
  14. package/android/generated/android/app/build/generated/source/codegen/jni/react/renderer/components/RNSrschatSpec/RNSrschatSpecJSI.h +0 -19
  15. package/ios/generated/build/generated/ios/FBReactNativeSpec/FBReactNativeSpec-generated.mm +0 -2321
  16. package/ios/generated/build/generated/ios/FBReactNativeSpec/FBReactNativeSpec.h +0 -2761
  17. package/ios/generated/build/generated/ios/FBReactNativeSpecJSI-generated.cpp +0 -2923
  18. package/ios/generated/build/generated/ios/FBReactNativeSpecJSI.h +0 -7718
  19. package/ios/generated/build/generated/ios/RCTModulesConformingToProtocolsProvider.h +0 -18
  20. package/ios/generated/build/generated/ios/RCTModulesConformingToProtocolsProvider.mm +0 -33
  21. package/ios/generated/build/generated/ios/RNSrschatSpec/RNSrschatSpec-generated.mm +0 -16
  22. package/ios/generated/build/generated/ios/RNSrschatSpec/RNSrschatSpec.h +0 -35
  23. package/ios/generated/build/generated/ios/RNSrschatSpecJSI-generated.cpp +0 -17
  24. package/ios/generated/build/generated/ios/RNSrschatSpecJSI.h +0 -19
  25. package/lib/commonjs/components/Chat.js +0 -43
  26. package/lib/commonjs/components/Chat.js.map +0 -1
  27. package/lib/commonjs/components/ChatInput.js +0 -64
  28. package/lib/commonjs/components/ChatInput.js.map +0 -1
  29. package/lib/commonjs/components/ChatMessage.js +0 -58
  30. package/lib/commonjs/components/ChatMessage.js.map +0 -1
  31. package/lib/commonjs/index.js +0 -37
  32. package/lib/commonjs/index.js.map +0 -1
  33. package/lib/commonjs/types.js +0 -2
  34. package/lib/commonjs/types.js.map +0 -1
  35. package/lib/module/components/Chat.js +0 -39
  36. package/lib/module/components/Chat.js.map +0 -1
  37. package/lib/module/components/ChatInput.js +0 -60
  38. package/lib/module/components/ChatInput.js.map +0 -1
  39. package/lib/module/components/ChatMessage.js +0 -54
  40. package/lib/module/components/ChatMessage.js.map +0 -1
  41. package/lib/module/index.js +0 -8
  42. package/lib/module/index.js.map +0 -1
  43. package/lib/module/types.js +0 -2
  44. package/lib/module/types.js.map +0 -1
  45. package/lib/typescript/commonjs/package.json +0 -1
  46. package/lib/typescript/commonjs/src/components/Chat.d.ts +0 -3
  47. package/lib/typescript/commonjs/src/components/Chat.d.ts.map +0 -1
  48. package/lib/typescript/commonjs/src/components/ChatInput.d.ts +0 -6
  49. package/lib/typescript/commonjs/src/components/ChatInput.d.ts.map +0 -1
  50. package/lib/typescript/commonjs/src/components/ChatMessage.d.ts +0 -8
  51. package/lib/typescript/commonjs/src/components/ChatMessage.d.ts.map +0 -1
  52. package/lib/typescript/commonjs/src/index.d.ts +0 -4
  53. package/lib/typescript/commonjs/src/index.d.ts.map +0 -1
  54. package/lib/typescript/commonjs/src/types.d.ts +0 -12
  55. package/lib/typescript/commonjs/src/types.d.ts.map +0 -1
  56. package/lib/typescript/module/package.json +0 -1
  57. package/lib/typescript/module/src/components/Chat.d.ts +0 -3
  58. package/lib/typescript/module/src/components/Chat.d.ts.map +0 -1
  59. package/lib/typescript/module/src/components/ChatInput.d.ts +0 -6
  60. package/lib/typescript/module/src/components/ChatInput.d.ts.map +0 -1
  61. package/lib/typescript/module/src/components/ChatMessage.d.ts +0 -8
  62. package/lib/typescript/module/src/components/ChatMessage.d.ts.map +0 -1
  63. package/lib/typescript/module/src/index.d.ts +0 -4
  64. package/lib/typescript/module/src/index.d.ts.map +0 -1
  65. package/lib/typescript/module/src/types.d.ts +0 -12
  66. package/lib/typescript/module/src/types.d.ts.map +0 -1
  67. package/src/components/Chat.tsx +0 -34
  68. package/src/components/ChatInput.tsx +0 -58
  69. package/src/components/ChatMessage.tsx +0 -51
  70. package/src/types.ts +0 -12
@@ -0,0 +1,163 @@
1
+ "use strict";
2
+
3
+ Object.defineProperty(exports, "__esModule", {
4
+ value: true
5
+ });
6
+ exports.Chat = void 0;
7
+ var _react = _interopRequireDefault(require("react"));
8
+ var _reactNative = require("react-native");
9
+ function _interopRequireDefault(e) { return e && e.__esModule ? e : { default: e }; }
10
+ const defaultTheme = {
11
+ primaryColor: '#007AFF',
12
+ backgroundColor: '#FFFFFF',
13
+ textColor: '#000000'
14
+ };
15
+ const Chat = ({
16
+ onSendMessage,
17
+ theme = defaultTheme
18
+ }) => {
19
+ const [message, setMessage] = _react.default.useState('');
20
+ const [messages, setMessages] = _react.default.useState([]);
21
+ const handleSend = async () => {
22
+ if (!message.trim()) {
23
+ return;
24
+ }
25
+ setMessages(prev => [...prev, {
26
+ text: message,
27
+ fromUser: true
28
+ }]);
29
+ setMessage('');
30
+ const response = await onSendMessage(message);
31
+ setMessages(prev => [...prev, {
32
+ text: response,
33
+ fromUser: false
34
+ }]);
35
+ };
36
+ const containerStyle = [styles.container, {
37
+ backgroundColor: theme.backgroundColor
38
+ }];
39
+ const getMessageStyle = fromUser => [styles.messageBubble, fromUser ? styles.userMessage : styles.botMessage, {
40
+ backgroundColor: fromUser ? theme.primaryColor : '#E8E8E8'
41
+ }];
42
+ const getTextStyle = fromUser => [styles.messageText, {
43
+ color: fromUser ? '#fff' : theme.textColor
44
+ }];
45
+ return /*#__PURE__*/_react.default.createElement(_reactNative.SafeAreaView, {
46
+ style: containerStyle,
47
+ testID: "chat-container"
48
+ }, /*#__PURE__*/_react.default.createElement(_reactNative.KeyboardAvoidingView, {
49
+ behavior: _reactNative.Platform.OS === 'ios' ? 'padding' : 'height',
50
+ style: styles.content
51
+ }, /*#__PURE__*/_react.default.createElement(_reactNative.ScrollView, {
52
+ style: styles.messagesContainer
53
+ }, messages.map((msg, i) => /*#__PURE__*/_react.default.createElement(_reactNative.View, {
54
+ key: i,
55
+ style: getMessageStyle(msg.fromUser)
56
+ }, /*#__PURE__*/_react.default.createElement(_reactNative.Text, {
57
+ style: getTextStyle(msg.fromUser)
58
+ }, msg.text)))), /*#__PURE__*/_react.default.createElement(_reactNative.View, {
59
+ style: styles.inputContainer
60
+ }, /*#__PURE__*/_react.default.createElement(_reactNative.TextInput, {
61
+ style: [styles.input, {
62
+ color: theme.textColor
63
+ }],
64
+ value: message,
65
+ onChangeText: setMessage,
66
+ placeholder: "Type a message...",
67
+ placeholderTextColor: "#999"
68
+ }), /*#__PURE__*/_react.default.createElement(_reactNative.Button, {
69
+ title: "Send",
70
+ onPress: handleSend,
71
+ color: theme.primaryColor
72
+ }))));
73
+ };
74
+ exports.Chat = Chat;
75
+ const styles = _reactNative.StyleSheet.create({
76
+ container: {
77
+ flex: 1,
78
+ backgroundColor: '#FFFFFF'
79
+ },
80
+ content: {
81
+ flex: 1,
82
+ backgroundColor: '#F8F9FA'
83
+ },
84
+ messagesContainer: {
85
+ flex: 1,
86
+ padding: 20,
87
+ paddingTop: 30
88
+ },
89
+ messageBubble: {
90
+ maxWidth: '85%',
91
+ padding: 16,
92
+ borderRadius: 20,
93
+ marginBottom: 16,
94
+ backgroundColor: '#FFFFFF',
95
+ shadowColor: '#000',
96
+ shadowOffset: {
97
+ width: 0,
98
+ height: 2
99
+ },
100
+ shadowOpacity: 0.05,
101
+ shadowRadius: 8,
102
+ elevation: 3
103
+ },
104
+ userMessage: {
105
+ alignSelf: 'flex-end',
106
+ backgroundColor: '#FFFFFF',
107
+ borderWidth: 1,
108
+ borderColor: 'rgba(0, 0, 0, 0.04)'
109
+ },
110
+ botMessage: {
111
+ alignSelf: 'flex-start',
112
+ backgroundColor: '#FFFFFF',
113
+ borderWidth: 1,
114
+ borderColor: 'rgba(0, 0, 0, 0.04)'
115
+ },
116
+ messageText: {
117
+ fontSize: 15,
118
+ lineHeight: 22,
119
+ fontWeight: '400',
120
+ color: '#2C2C2E',
121
+ letterSpacing: 0.2
122
+ },
123
+ inputContainer: {
124
+ flexDirection: 'row',
125
+ alignItems: 'center',
126
+ paddingHorizontal: 16,
127
+ paddingVertical: 12,
128
+ backgroundColor: '#FFFFFF',
129
+ borderTopWidth: 1,
130
+ borderTopColor: 'rgba(0, 0, 0, 0.06)',
131
+ shadowColor: '#000',
132
+ shadowOffset: {
133
+ width: 0,
134
+ height: -8
135
+ },
136
+ shadowOpacity: 0.04,
137
+ shadowRadius: 12,
138
+ elevation: 8,
139
+ marginTop: 'auto'
140
+ },
141
+ input: {
142
+ flex: 1,
143
+ backgroundColor: '#F8F9FA',
144
+ borderRadius: 16,
145
+ borderWidth: 1,
146
+ borderColor: 'rgba(0, 0, 0, 0.06)',
147
+ paddingHorizontal: 20,
148
+ paddingVertical: 12,
149
+ marginRight: 12,
150
+ fontSize: 15,
151
+ maxHeight: 120,
152
+ color: '#2C2C2E',
153
+ shadowColor: '#000',
154
+ shadowOffset: {
155
+ width: 0,
156
+ height: 1
157
+ },
158
+ shadowOpacity: 0.04,
159
+ shadowRadius: 4,
160
+ elevation: 2
161
+ }
162
+ });
163
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"names":["_react","_interopRequireDefault","require","_reactNative","e","__esModule","default","defaultTheme","primaryColor","backgroundColor","textColor","Chat","onSendMessage","theme","message","setMessage","React","useState","messages","setMessages","handleSend","trim","prev","text","fromUser","response","containerStyle","styles","container","getMessageStyle","messageBubble","userMessage","botMessage","getTextStyle","messageText","color","createElement","SafeAreaView","style","testID","KeyboardAvoidingView","behavior","Platform","OS","content","ScrollView","messagesContainer","map","msg","i","View","key","Text","inputContainer","TextInput","input","value","onChangeText","placeholder","placeholderTextColor","Button","title","onPress","exports","StyleSheet","create","flex","padding","paddingTop","maxWidth","borderRadius","marginBottom","shadowColor","shadowOffset","width","height","shadowOpacity","shadowRadius","elevation","alignSelf","borderWidth","borderColor","fontSize","lineHeight","fontWeight","letterSpacing","flexDirection","alignItems","paddingHorizontal","paddingVertical","borderTopWidth","borderTopColor","marginTop","marginRight","maxHeight"],"sourceRoot":"../../src","sources":["index.tsx"],"mappings":"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","ignoreList":[]}
@@ -0,0 +1,155 @@
1
+ import React from 'react';
2
+ import { SafeAreaView, Text, StyleSheet, View, TextInput, ScrollView, KeyboardAvoidingView, Platform, Button } from 'react-native';
3
+ const defaultTheme = {
4
+ primaryColor: '#007AFF',
5
+ backgroundColor: '#FFFFFF',
6
+ textColor: '#000000'
7
+ };
8
+ export const Chat = ({
9
+ onSendMessage,
10
+ theme = defaultTheme
11
+ }) => {
12
+ const [message, setMessage] = React.useState('');
13
+ const [messages, setMessages] = React.useState([]);
14
+ const handleSend = async () => {
15
+ if (!message.trim()) {
16
+ return;
17
+ }
18
+ setMessages(prev => [...prev, {
19
+ text: message,
20
+ fromUser: true
21
+ }]);
22
+ setMessage('');
23
+ const response = await onSendMessage(message);
24
+ setMessages(prev => [...prev, {
25
+ text: response,
26
+ fromUser: false
27
+ }]);
28
+ };
29
+ const containerStyle = [styles.container, {
30
+ backgroundColor: theme.backgroundColor
31
+ }];
32
+ const getMessageStyle = fromUser => [styles.messageBubble, fromUser ? styles.userMessage : styles.botMessage, {
33
+ backgroundColor: fromUser ? theme.primaryColor : '#E8E8E8'
34
+ }];
35
+ const getTextStyle = fromUser => [styles.messageText, {
36
+ color: fromUser ? '#fff' : theme.textColor
37
+ }];
38
+ return /*#__PURE__*/React.createElement(SafeAreaView, {
39
+ style: containerStyle,
40
+ testID: "chat-container"
41
+ }, /*#__PURE__*/React.createElement(KeyboardAvoidingView, {
42
+ behavior: Platform.OS === 'ios' ? 'padding' : 'height',
43
+ style: styles.content
44
+ }, /*#__PURE__*/React.createElement(ScrollView, {
45
+ style: styles.messagesContainer
46
+ }, messages.map((msg, i) => /*#__PURE__*/React.createElement(View, {
47
+ key: i,
48
+ style: getMessageStyle(msg.fromUser)
49
+ }, /*#__PURE__*/React.createElement(Text, {
50
+ style: getTextStyle(msg.fromUser)
51
+ }, msg.text)))), /*#__PURE__*/React.createElement(View, {
52
+ style: styles.inputContainer
53
+ }, /*#__PURE__*/React.createElement(TextInput, {
54
+ style: [styles.input, {
55
+ color: theme.textColor
56
+ }],
57
+ value: message,
58
+ onChangeText: setMessage,
59
+ placeholder: "Type a message...",
60
+ placeholderTextColor: "#999"
61
+ }), /*#__PURE__*/React.createElement(Button, {
62
+ title: "Send",
63
+ onPress: handleSend,
64
+ color: theme.primaryColor
65
+ }))));
66
+ };
67
+ const styles = StyleSheet.create({
68
+ container: {
69
+ flex: 1,
70
+ backgroundColor: '#FFFFFF'
71
+ },
72
+ content: {
73
+ flex: 1,
74
+ backgroundColor: '#F8F9FA'
75
+ },
76
+ messagesContainer: {
77
+ flex: 1,
78
+ padding: 20,
79
+ paddingTop: 30
80
+ },
81
+ messageBubble: {
82
+ maxWidth: '85%',
83
+ padding: 16,
84
+ borderRadius: 20,
85
+ marginBottom: 16,
86
+ backgroundColor: '#FFFFFF',
87
+ shadowColor: '#000',
88
+ shadowOffset: {
89
+ width: 0,
90
+ height: 2
91
+ },
92
+ shadowOpacity: 0.05,
93
+ shadowRadius: 8,
94
+ elevation: 3
95
+ },
96
+ userMessage: {
97
+ alignSelf: 'flex-end',
98
+ backgroundColor: '#FFFFFF',
99
+ borderWidth: 1,
100
+ borderColor: 'rgba(0, 0, 0, 0.04)'
101
+ },
102
+ botMessage: {
103
+ alignSelf: 'flex-start',
104
+ backgroundColor: '#FFFFFF',
105
+ borderWidth: 1,
106
+ borderColor: 'rgba(0, 0, 0, 0.04)'
107
+ },
108
+ messageText: {
109
+ fontSize: 15,
110
+ lineHeight: 22,
111
+ fontWeight: '400',
112
+ color: '#2C2C2E',
113
+ letterSpacing: 0.2
114
+ },
115
+ inputContainer: {
116
+ flexDirection: 'row',
117
+ alignItems: 'center',
118
+ paddingHorizontal: 16,
119
+ paddingVertical: 12,
120
+ backgroundColor: '#FFFFFF',
121
+ borderTopWidth: 1,
122
+ borderTopColor: 'rgba(0, 0, 0, 0.06)',
123
+ shadowColor: '#000',
124
+ shadowOffset: {
125
+ width: 0,
126
+ height: -8
127
+ },
128
+ shadowOpacity: 0.04,
129
+ shadowRadius: 12,
130
+ elevation: 8,
131
+ marginTop: 'auto'
132
+ },
133
+ input: {
134
+ flex: 1,
135
+ backgroundColor: '#F8F9FA',
136
+ borderRadius: 16,
137
+ borderWidth: 1,
138
+ borderColor: 'rgba(0, 0, 0, 0.06)',
139
+ paddingHorizontal: 20,
140
+ paddingVertical: 12,
141
+ marginRight: 12,
142
+ fontSize: 15,
143
+ maxHeight: 120,
144
+ color: '#2C2C2E',
145
+ shadowColor: '#000',
146
+ shadowOffset: {
147
+ width: 0,
148
+ height: 1
149
+ },
150
+ shadowOpacity: 0.04,
151
+ shadowRadius: 4,
152
+ elevation: 2
153
+ }
154
+ });
155
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"names":["React","SafeAreaView","Text","StyleSheet","View","TextInput","ScrollView","KeyboardAvoidingView","Platform","Button","defaultTheme","primaryColor","backgroundColor","textColor","Chat","onSendMessage","theme","message","setMessage","useState","messages","setMessages","handleSend","trim","prev","text","fromUser","response","containerStyle","styles","container","getMessageStyle","messageBubble","userMessage","botMessage","getTextStyle","messageText","color","createElement","style","testID","behavior","OS","content","messagesContainer","map","msg","i","key","inputContainer","input","value","onChangeText","placeholder","placeholderTextColor","title","onPress","create","flex","padding","paddingTop","maxWidth","borderRadius","marginBottom","shadowColor","shadowOffset","width","height","shadowOpacity","shadowRadius","elevation","alignSelf","borderWidth","borderColor","fontSize","lineHeight","fontWeight","letterSpacing","flexDirection","alignItems","paddingHorizontal","paddingVertical","borderTopWidth","borderTopColor","marginTop","marginRight","maxHeight"],"sourceRoot":"../../src","sources":["index.tsx"],"mappings":"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","ignoreList":[]}
@@ -0,0 +1,13 @@
1
+ import React from 'react';
2
+ interface ChatProps {
3
+ onSendMessage: (message: string) => Promise<string>;
4
+ placeholder?: string;
5
+ theme?: {
6
+ primaryColor?: string;
7
+ backgroundColor?: string;
8
+ textColor?: string;
9
+ };
10
+ }
11
+ export declare const Chat: React.FC<ChatProps>;
12
+ export {};
13
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/index.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,MAAM,OAAO,CAAC;AAa1B,UAAU,SAAS;IACjB,aAAa,EAAE,CAAC,OAAO,EAAE,MAAM,KAAK,OAAO,CAAC,MAAM,CAAC,CAAC;IACpD,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,KAAK,CAAC,EAAE;QACN,YAAY,CAAC,EAAE,MAAM,CAAC;QACtB,eAAe,CAAC,EAAE,MAAM,CAAC;QACzB,SAAS,CAAC,EAAE,MAAM,CAAC;KACpB,CAAC;CACH;AAQD,eAAO,MAAM,IAAI,EAAE,KAAK,CAAC,EAAE,CAAC,SAAS,CAwEpC,CAAC"}
package/package.json CHANGED
@@ -1,204 +1,93 @@
1
1
  {
2
2
  "name": "react-native-srschat",
3
- "version": "0.1.0",
4
- "description": "srschat",
5
- "source": "./src/index.tsx",
6
- "main": "./lib/commonjs/index.js",
7
- "module": "./lib/module/index.js",
8
- "exports": {
9
- ".": {
10
- "import": {
11
- "types": "./lib/typescript/module/src/index.d.ts",
12
- "default": "./lib/module/index.js"
13
- },
14
- "require": {
15
- "types": "./lib/typescript/commonjs/src/index.d.ts",
16
- "default": "./lib/commonjs/index.js"
17
- }
18
- }
3
+ "version": "0.1.2",
4
+ "description": "A modern, sophisticated chat interface for React Native",
5
+ "main": "dist/index.js",
6
+ "types": "dist/index.d.ts",
7
+ "module": "dist/index.js",
8
+ "source": "src/index.tsx",
9
+ "react-native": "src/index.tsx",
10
+ "scripts": {
11
+ "build": "bob build",
12
+ "prepare": "bob build",
13
+ "lint": "eslint \"src/**/*.{ts,tsx}\" \"example/src/**/*.{ts,tsx}\" --fix",
14
+ "prepublishOnly": "yarn lint && yarn build",
15
+ "test": "jest --config jest.config.js",
16
+ "example": "yarn workspace react-native-srschat-example start"
19
17
  },
20
18
  "files": [
19
+ "dist",
21
20
  "src",
22
- "lib",
23
- "android",
24
- "ios",
25
- "cpp",
26
- "*.podspec",
27
- "react-native.config.js",
28
- "!ios/build",
29
- "!android/build",
30
- "!android/gradle",
31
- "!android/gradlew",
32
- "!android/gradlew.bat",
33
- "!android/local.properties",
34
- "!**/__tests__",
35
- "!**/__fixtures__",
36
- "!**/__mocks__",
37
- "!**/.*"
21
+ "README.md",
22
+ "LICENSE"
38
23
  ],
39
- "scripts": {
40
- "example": "yarn workspace react-native-srschat-example",
41
- "test": "jest",
42
- "typecheck": "tsc",
43
- "lint": "eslint \"**/*.{js,ts,tsx}\"",
44
- "clean": "del-cli lib",
45
- "prepare": "bob build",
46
- "release": "release-it"
47
- },
48
24
  "keywords": [
49
25
  "react-native",
50
- "ios",
51
- "android"
26
+ "chat",
27
+ "messaging",
28
+ "ui",
29
+ "modern"
52
30
  ],
31
+ "author": "alxkai",
32
+ "license": "MIT",
33
+ "peerDependencies": {
34
+ "react": ">=16.8.0",
35
+ "react-native": ">=0.60.0"
36
+ },
37
+ "devDependencies": {
38
+ "@babel/core": "^7.20.0",
39
+ "@babel/plugin-transform-runtime": "^7.22.15",
40
+ "@babel/preset-env": "^7.20.0",
41
+ "@babel/preset-react": "^7.20.0",
42
+ "@babel/preset-typescript": "^7.20.0",
43
+ "@react-native/eslint-config": "^0.72.2",
44
+ "@types/jest": "^29.0.0",
45
+ "@types/react": "~18.2.45",
46
+ "@types/react-native": "~0.72.8",
47
+ "@typescript-eslint/eslint-plugin": "^5.0.0",
48
+ "@typescript-eslint/parser": "^5.0.0",
49
+ "eslint": "^8.0.0",
50
+ "eslint-config-prettier": "^10.0.1",
51
+ "eslint-plugin-prettier": "^5.2.3",
52
+ "eslint-plugin-react": "^7.0.0",
53
+ "eslint-plugin-react-native": "^4.0.0",
54
+ "jest": "^29.0.0",
55
+ "jest-expo": "~50.0.0",
56
+ "metro-react-native-babel-preset": "^0.77.0",
57
+ "prettier": "^3.4.2",
58
+ "react": "18.2.0",
59
+ "react-native": "0.73.6",
60
+ "react-native-builder-bob": "^0.20.0",
61
+ "ts-jest": "^29.0.0",
62
+ "typescript": "^5.1.3"
63
+ },
53
64
  "repository": {
54
65
  "type": "git",
55
66
  "url": "git+https://github.com/alxkai/react-native-srschat.git"
56
67
  },
57
- "author": "alxkai <alex@instalily.ai> (https://github.com/alxkai)",
58
- "license": "MIT",
59
68
  "bugs": {
60
69
  "url": "https://github.com/alxkai/react-native-srschat/issues"
61
70
  },
62
71
  "homepage": "https://github.com/alxkai/react-native-srschat#readme",
63
- "publishConfig": {
64
- "registry": "https://registry.npmjs.org/"
65
- },
66
- "devDependencies": {
67
- "@commitlint/config-conventional": "^17.0.2",
68
- "@evilmartians/lefthook": "^1.5.0",
69
- "@react-native/eslint-config": "^0.73.1",
70
- "@release-it/conventional-changelog": "^9.0.2",
71
- "@types/jest": "^29.5.5",
72
- "@types/react": "^18.2.44",
73
- "commitlint": "^17.0.2",
74
- "del-cli": "^5.1.0",
75
- "eslint": "^8.51.0",
76
- "eslint-config-prettier": "^9.0.0",
77
- "eslint-plugin-prettier": "^5.0.1",
78
- "jest": "^29.7.0",
79
- "prettier": "^3.0.3",
80
- "react": "18.3.1",
81
- "react-native": "0.76.6",
82
- "react-native-builder-bob": "^0.35.2",
83
- "release-it": "^17.10.0",
84
- "typescript": "^5.2.2"
85
- },
86
- "resolutions": {
87
- "@types/react": "^18.2.44"
88
- },
89
- "peerDependencies": {
90
- "react": "*",
91
- "react-native": "*"
92
- },
93
72
  "workspaces": [
94
73
  "example"
95
74
  ],
96
- "packageManager": "yarn@3.6.1",
97
- "jest": {
98
- "preset": "react-native",
99
- "modulePathIgnorePatterns": [
100
- "<rootDir>/example/node_modules",
101
- "<rootDir>/lib/"
102
- ]
103
- },
104
- "commitlint": {
105
- "extends": [
106
- "@commitlint/config-conventional"
107
- ]
108
- },
109
- "release-it": {
110
- "git": {
111
- "commitMessage": "chore: release ${version}",
112
- "tagName": "v${version}"
113
- },
114
- "npm": {
115
- "publish": true
116
- },
117
- "github": {
118
- "release": true
119
- },
120
- "plugins": {
121
- "@release-it/conventional-changelog": {
122
- "preset": "angular"
123
- }
124
- }
125
- },
126
- "eslintConfig": {
127
- "root": true,
128
- "extends": [
129
- "@react-native",
130
- "prettier"
131
- ],
132
- "rules": {
133
- "react/react-in-jsx-scope": "off",
134
- "prettier/prettier": [
135
- "error",
136
- {
137
- "quoteProps": "consistent",
138
- "singleQuote": true,
139
- "tabWidth": 2,
140
- "trailingComma": "es5",
141
- "useTabs": false
142
- }
143
- ]
144
- }
145
- },
146
- "eslintIgnore": [
147
- "node_modules/",
148
- "lib/"
149
- ],
150
- "prettier": {
151
- "quoteProps": "consistent",
152
- "singleQuote": true,
153
- "tabWidth": 2,
154
- "trailingComma": "es5",
155
- "useTabs": false
75
+ "dependencies": {
76
+ "@babel/runtime": "^7.20.0"
156
77
  },
157
78
  "react-native-builder-bob": {
158
79
  "source": "src",
159
- "output": "lib",
80
+ "output": "dist",
160
81
  "targets": [
161
- "codegen",
162
- [
163
- "commonjs",
164
- {
165
- "esm": true
166
- }
167
- ],
168
- [
169
- "module",
170
- {
171
- "esm": true
172
- }
173
- ],
82
+ "commonjs",
83
+ "module",
174
84
  [
175
85
  "typescript",
176
86
  {
177
- "project": "tsconfig.build.json",
178
- "esm": true
87
+ "project": "tsconfig.build.json"
179
88
  }
180
89
  ]
181
90
  ]
182
91
  },
183
- "codegenConfig": {
184
- "name": "RNSrschatSpec",
185
- "type": "modules",
186
- "jsSrcsDir": "src",
187
- "outputDir": {
188
- "ios": "ios/generated",
189
- "android": "android/generated"
190
- },
191
- "android": {
192
- "javaPackageName": "com.srschat"
193
- }
194
- },
195
- "create-react-native-library": {
196
- "languages": "js",
197
- "type": "library",
198
- "version": "0.45.5"
199
- },
200
- "dependencies": {
201
- "@expo/vector-icons": "^14.0.4",
202
- "expo-font": "^13.0.3"
203
- }
92
+ "packageManager": "yarn@1.22.22+sha512.a6b2f7906b721bba3d67d4aff083df04dad64c399707841b7acf00f6b133b7ac24255f2652fa22ae3534329dc6180534e98d17432037ff6fd140556e2bb3137e"
204
93
  }