@nam088/zca-js 1.0.1 → 3.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/.releaserc.json +35 -0
- package/CHANGELOG.md +6 -0
- package/CODE_OF_CONDUCT.md +37 -36
- package/CONTRIBUTING.md +162 -154
- package/README.md +22 -22
- package/SECURITY.md +25 -20
- package/dist/index.cjs +3424 -3275
- package/dist/index.d.cts +1292 -1292
- package/dist/index.d.ts +1292 -1292
- package/dist/index.js +3244 -3108
- package/{eslint.config.mjs → eslint.config.js} +0 -6
- package/package.json +76 -80
- package/tsup.config.ts +11 -43
- package/dist/index.cjs.map +0 -1
- package/dist/index.js.map +0 -1
- package/dist/index.min.cjs +0 -5
- package/dist/index.min.cjs.map +0 -1
- package/dist/index.min.js +0 -5
- package/dist/index.min.js.map +0 -1
- package/index.d.ts +0 -2
- package/qr.png +0 -0
package/.releaserc.json
ADDED
|
@@ -0,0 +1,35 @@
|
|
|
1
|
+
{
|
|
2
|
+
"branches": [
|
|
3
|
+
"main",
|
|
4
|
+
{
|
|
5
|
+
"name": "beta",
|
|
6
|
+
"prerelease": true
|
|
7
|
+
},
|
|
8
|
+
{
|
|
9
|
+
"name": "develop",
|
|
10
|
+
"prerelease": "dev"
|
|
11
|
+
}
|
|
12
|
+
],
|
|
13
|
+
"plugins": [
|
|
14
|
+
"@semantic-release/commit-analyzer",
|
|
15
|
+
"@semantic-release/release-notes-generator",
|
|
16
|
+
[
|
|
17
|
+
"@semantic-release/changelog",
|
|
18
|
+
{
|
|
19
|
+
"changelogFile": "CHANGELOG.md"
|
|
20
|
+
}
|
|
21
|
+
],
|
|
22
|
+
"@semantic-release/npm",
|
|
23
|
+
[
|
|
24
|
+
"@semantic-release/git",
|
|
25
|
+
{
|
|
26
|
+
"assets": [
|
|
27
|
+
"package.json",
|
|
28
|
+
"CHANGELOG.md"
|
|
29
|
+
],
|
|
30
|
+
"message": "chore(release): ${nextRelease.version} [skip ci]\n\n${nextRelease.notes}"
|
|
31
|
+
}
|
|
32
|
+
],
|
|
33
|
+
"@semantic-release/github"
|
|
34
|
+
]
|
|
35
|
+
}
|
package/CHANGELOG.md
ADDED
|
@@ -0,0 +1,6 @@
|
|
|
1
|
+
# [3.1.0](https://github.com/Nam088/zca-js/compare/v3.0.0...v3.1.0) (2026-03-12)
|
|
2
|
+
|
|
3
|
+
|
|
4
|
+
### Features
|
|
5
|
+
|
|
6
|
+
* Implement automated releases using semantic-release and GitHub Actions. ([7fcc602](https://github.com/Nam088/zca-js/commit/7fcc6027e955bbf50926c738ffaca84fbbcc8b33))
|
package/CODE_OF_CONDUCT.md
CHANGED
|
@@ -17,24 +17,24 @@ diverse, inclusive, and healthy community.
|
|
|
17
17
|
Examples of behavior that contributes to a positive environment for our
|
|
18
18
|
community include:
|
|
19
19
|
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
20
|
+
- Demonstrating empathy and kindness toward other people
|
|
21
|
+
- Being respectful of differing opinions, viewpoints, and experiences
|
|
22
|
+
- Giving and gracefully accepting constructive feedback
|
|
23
|
+
- Accepting responsibility and apologizing to those affected by our mistakes,
|
|
24
|
+
and learning from the experience
|
|
25
|
+
- Focusing on what is best not just for us as individuals, but for the
|
|
26
|
+
overall community
|
|
27
27
|
|
|
28
28
|
Examples of unacceptable behavior include:
|
|
29
29
|
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
30
|
+
- The use of sexualized language or imagery, and sexual attention or
|
|
31
|
+
advances of any kind
|
|
32
|
+
- Trolling, insulting or derogatory comments, and personal or political attacks
|
|
33
|
+
- Public or private harassment
|
|
34
|
+
- Publishing others' private information, such as a physical or email
|
|
35
|
+
address, without their explicit permission
|
|
36
|
+
- Other conduct which could reasonably be considered inappropriate in a
|
|
37
|
+
professional setting
|
|
38
38
|
|
|
39
39
|
## Enforcement Responsibilities
|
|
40
40
|
|
|
@@ -60,13 +60,14 @@ representative at an online or offline event.
|
|
|
60
60
|
|
|
61
61
|
Instances of abusive, harassing, or otherwise unacceptable behavior may be
|
|
62
62
|
reported to the community leaders responsible for enforcement through:
|
|
63
|
-
|
|
64
|
-
-
|
|
65
|
-
-
|
|
66
|
-
-
|
|
67
|
-
|
|
68
|
-
|
|
69
|
-
|
|
63
|
+
|
|
64
|
+
- **GitHub Issues**: Create a private issue with the `[CONDUCT]` label
|
|
65
|
+
- **GitHub Discussions**: Use the "Community" category for general concerns
|
|
66
|
+
- **Direct Contact**: Reach out to any team member through GitHub
|
|
67
|
+
- **Team Members**:
|
|
68
|
+
- [@RFS-ADRENO](https://github.com/RFS-ADRENO)
|
|
69
|
+
- [@truong9c2208](https://github.com/truong9c2208)
|
|
70
|
+
- [@JustKemForFun](https://github.com/JustKemForFun)
|
|
70
71
|
|
|
71
72
|
All complaints will be reviewed and investigated promptly and fairly by the team.
|
|
72
73
|
|
|
@@ -113,7 +114,7 @@ Violating these terms may lead to a permanent ban.
|
|
|
113
114
|
### 4. Permanent Ban
|
|
114
115
|
|
|
115
116
|
**Community Impact**: Demonstrating a pattern of violation of community
|
|
116
|
-
standards, including sustained inappropriate behavior,
|
|
117
|
+
standards, including sustained inappropriate behavior, harassment of an
|
|
117
118
|
individual, or aggression toward or disparagement of classes of individuals.
|
|
118
119
|
|
|
119
120
|
**Consequence**: A permanent ban from any sort of public interaction within
|
|
@@ -141,23 +142,23 @@ guidelines specific to our project:
|
|
|
141
142
|
|
|
142
143
|
### Responsible Usage
|
|
143
144
|
|
|
144
|
-
|
|
145
|
-
|
|
146
|
-
|
|
147
|
-
|
|
148
|
-
|
|
149
|
-
|
|
150
|
-
|
|
151
|
-
|
|
145
|
+
- **Respect Zalo's Terms of Service**: While this is an unofficial library,
|
|
146
|
+
users should be aware of and respect Zalo's terms of service
|
|
147
|
+
- **Account Safety**: Do not encourage or provide guidance on circumventing
|
|
148
|
+
Zalo's security measures
|
|
149
|
+
- **Privacy**: Respect user privacy and do not share personal information
|
|
150
|
+
obtained through the API
|
|
151
|
+
- **Rate Limiting**: Encourage responsible usage that doesn't overload Zalo's
|
|
152
|
+
servers
|
|
152
153
|
|
|
153
154
|
### Technical Discussions
|
|
154
155
|
|
|
155
|
-
|
|
156
|
-
|
|
157
|
-
|
|
158
|
-
|
|
156
|
+
- **Security**: When discussing security-related topics, use appropriate
|
|
157
|
+
channels and follow responsible disclosure practices
|
|
158
|
+
- **Bugs and Issues**: Report bugs and issues through proper channels
|
|
159
|
+
- **Documentation**: Help improve documentation and examples for the community
|
|
159
160
|
|
|
160
161
|
---
|
|
161
162
|
|
|
162
163
|
**Note**: This Code of Conduct is a living document and may be updated as our
|
|
163
|
-
community grows and evolves.
|
|
164
|
+
community grows and evolves.
|
package/CONTRIBUTING.md
CHANGED
|
@@ -4,17 +4,17 @@ Thank you for your interest in contributing to zca-js! This project is maintaine
|
|
|
4
4
|
|
|
5
5
|
## Table of Contents
|
|
6
6
|
|
|
7
|
-
-
|
|
8
|
-
-
|
|
9
|
-
-
|
|
10
|
-
-
|
|
11
|
-
-
|
|
12
|
-
-
|
|
13
|
-
-
|
|
14
|
-
-
|
|
15
|
-
-
|
|
16
|
-
-
|
|
17
|
-
-
|
|
7
|
+
- [Code of Conduct](#code-of-conduct)
|
|
8
|
+
- [Getting Started](#getting-started)
|
|
9
|
+
- [Development Setup](#development-setup)
|
|
10
|
+
- [How to Contribute](#how-to-contribute)
|
|
11
|
+
- [Pull Request Process](#pull-request-process)
|
|
12
|
+
- [Code Style Guidelines](#code-style-guidelines)
|
|
13
|
+
- [Testing Guidelines](#testing-guidelines)
|
|
14
|
+
- [Documentation Guidelines](#documentation-guidelines)
|
|
15
|
+
- [Security Guidelines](#security-guidelines)
|
|
16
|
+
- [Release Process](#release-process)
|
|
17
|
+
- [Getting Help](#getting-help)
|
|
18
18
|
|
|
19
19
|
## Code of Conduct
|
|
20
20
|
|
|
@@ -24,22 +24,22 @@ This project adheres to our [Code of Conduct](CODE_OF_CONDUCT.md). By participat
|
|
|
24
24
|
|
|
25
25
|
### Prerequisites
|
|
26
26
|
|
|
27
|
-
-
|
|
28
|
-
-
|
|
29
|
-
-
|
|
27
|
+
- Node.js >= 18.0.0
|
|
28
|
+
- Bun (recommended) or npm
|
|
29
|
+
- Git
|
|
30
30
|
|
|
31
31
|
### Fork and Clone
|
|
32
32
|
|
|
33
33
|
1. Fork this repository
|
|
34
34
|
2. Clone your fork:
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
35
|
+
```bash
|
|
36
|
+
git clone https://github.com/YOUR_USERNAME/zca-js.git
|
|
37
|
+
cd zca-js
|
|
38
|
+
```
|
|
39
39
|
3. Add upstream remote:
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
|
|
40
|
+
```bash
|
|
41
|
+
git remote add upstream https://github.com/RFS-ADRENO/zca-js.git
|
|
42
|
+
```
|
|
43
43
|
|
|
44
44
|
## Development Setup
|
|
45
45
|
|
|
@@ -89,13 +89,13 @@ bun run prettier
|
|
|
89
89
|
|
|
90
90
|
We welcome the following types of contributions:
|
|
91
91
|
|
|
92
|
-
-
|
|
93
|
-
-
|
|
94
|
-
-
|
|
95
|
-
-
|
|
96
|
-
-
|
|
97
|
-
-
|
|
98
|
-
-
|
|
92
|
+
- 🐛 **Bug Reports**: Report bugs and issues
|
|
93
|
+
- ✨ **Feature Requests**: Suggest new features
|
|
94
|
+
- 🔧 **Code Contributions**: Fix bugs and add features
|
|
95
|
+
- 📚 **Documentation**: Improve docs and examples
|
|
96
|
+
- 🧪 **Tests**: Add or improve tests
|
|
97
|
+
- 🔒 **Security**: Report security vulnerabilities
|
|
98
|
+
- 🌐 **Translations**: Translate docs to other languages
|
|
99
99
|
|
|
100
100
|
### Before You Start
|
|
101
101
|
|
|
@@ -108,38 +108,43 @@ We welcome the following types of contributions:
|
|
|
108
108
|
### Creating a Pull Request
|
|
109
109
|
|
|
110
110
|
1. **Create a feature branch**:
|
|
111
|
-
|
|
112
|
-
|
|
113
|
-
|
|
114
|
-
|
|
115
|
-
|
|
111
|
+
|
|
112
|
+
```bash
|
|
113
|
+
git checkout -b feature/your-feature-name
|
|
114
|
+
# or
|
|
115
|
+
git checkout -b fix/your-bug-fix
|
|
116
|
+
```
|
|
116
117
|
|
|
117
118
|
2. **Make your changes**:
|
|
118
|
-
|
|
119
|
-
|
|
120
|
-
|
|
119
|
+
|
|
120
|
+
- Follow code style guidelines
|
|
121
|
+
- Add tests for new functionality
|
|
122
|
+
- Update documentation if needed
|
|
121
123
|
|
|
122
124
|
3. **Test your changes**:
|
|
123
|
-
|
|
124
|
-
|
|
125
|
-
|
|
126
|
-
|
|
125
|
+
|
|
126
|
+
```bash
|
|
127
|
+
bun run build
|
|
128
|
+
bun run test:feat
|
|
129
|
+
```
|
|
127
130
|
|
|
128
131
|
4. **Commit your changes**:
|
|
129
|
-
|
|
130
|
-
|
|
131
|
-
|
|
132
|
-
|
|
132
|
+
|
|
133
|
+
```bash
|
|
134
|
+
git add .
|
|
135
|
+
git commit -m "feat: add new API method for group management"
|
|
136
|
+
```
|
|
133
137
|
|
|
134
138
|
5. **Push to your fork**:
|
|
135
|
-
|
|
136
|
-
|
|
137
|
-
|
|
139
|
+
|
|
140
|
+
```bash
|
|
141
|
+
git push origin feature/your-feature-name
|
|
142
|
+
```
|
|
138
143
|
|
|
139
144
|
6. **Create a Pull Request**:
|
|
140
|
-
|
|
141
|
-
|
|
142
|
-
|
|
145
|
+
- Use the provided PR template
|
|
146
|
+
- Link related issues
|
|
147
|
+
- Provide clear description of changes
|
|
143
148
|
|
|
144
149
|
### PR Review Process
|
|
145
150
|
|
|
@@ -153,11 +158,11 @@ We welcome the following types of contributions:
|
|
|
153
158
|
|
|
154
159
|
### TypeScript Guidelines
|
|
155
160
|
|
|
156
|
-
-
|
|
157
|
-
-
|
|
158
|
-
-
|
|
159
|
-
-
|
|
160
|
-
-
|
|
161
|
+
- Use TypeScript strict mode
|
|
162
|
+
- Prefer interfaces over types for object shapes
|
|
163
|
+
- Use meaningful variable and function names
|
|
164
|
+
- Add JSDoc comments for public APIs
|
|
165
|
+
- Use async/await over Promises when possible
|
|
161
166
|
|
|
162
167
|
### Code Organization
|
|
163
168
|
|
|
@@ -222,52 +227,55 @@ zca-js/
|
|
|
222
227
|
|
|
223
228
|
### Key Directories Explained
|
|
224
229
|
|
|
225
|
-
-
|
|
230
|
+
- **`src/apis/`**: Contains all API method implementations (~100 files)
|
|
226
231
|
|
|
227
|
-
-
|
|
228
|
-
- Core data structures for messages, events, and API responses
|
|
229
|
-
- Ensures type safety across the application
|
|
232
|
+
- **`src/models/`**: TypeScript interfaces and type definitions
|
|
230
233
|
|
|
231
|
-
-
|
|
232
|
-
|
|
233
|
-
- Provides consistent error handling across the library
|
|
234
|
+
- Core data structures for messages, events, and API responses
|
|
235
|
+
- Ensures type safety across the application
|
|
234
236
|
|
|
235
|
-
-
|
|
236
|
-
- `echobot.ts`: Complete example of a Zalo bot implementation
|
|
237
|
+
- **`src/Errors/`**: Custom error handling
|
|
237
238
|
|
|
238
|
-
-
|
|
239
|
-
|
|
240
|
-
|
|
239
|
+
- `ZaloApiError.ts`: Handles API-specific errors
|
|
240
|
+
- Provides consistent error handling across the library
|
|
241
|
+
|
|
242
|
+
- **`examples/`**: Usage examples and demonstrations
|
|
243
|
+
|
|
244
|
+
- `echobot.ts`: Complete example of a Zalo bot implementation
|
|
245
|
+
|
|
246
|
+
- **`test/`**: Test suites and test assets
|
|
247
|
+
- Feature tests for core functionality
|
|
248
|
+
- Integration tests for API methods
|
|
241
249
|
|
|
242
250
|
### Naming Conventions
|
|
243
251
|
|
|
244
|
-
-
|
|
245
|
-
-
|
|
246
|
-
-
|
|
247
|
-
-
|
|
248
|
-
-
|
|
252
|
+
- **Files**: camelCase (e.g., `sendMessage.ts`)
|
|
253
|
+
- **Classes**: PascalCase (e.g., `ZaloApiError`)
|
|
254
|
+
- **Functions**: camelCase (e.g., `sendMessage`)
|
|
255
|
+
- **Constants**: UPPER_SNAKE_CASE (e.g., `API_BASE_URL`)
|
|
256
|
+
- **Interfaces**: PascalCase with `I` prefix (e.g., `IMessage`)
|
|
249
257
|
|
|
250
258
|
### Error Handling
|
|
251
259
|
|
|
252
260
|
```typescript
|
|
253
261
|
// Good
|
|
254
262
|
try {
|
|
255
|
-
|
|
256
|
-
|
|
263
|
+
const result = await api.sendMessage(message);
|
|
264
|
+
return result;
|
|
257
265
|
} catch (error) {
|
|
258
|
-
|
|
259
|
-
|
|
260
|
-
|
|
261
|
-
|
|
266
|
+
if (error instanceof ZaloApiError) {
|
|
267
|
+
throw error;
|
|
268
|
+
}
|
|
269
|
+
throw new ZaloApiError(`Failed to send message: ${error.message}`);
|
|
262
270
|
}
|
|
263
271
|
|
|
264
272
|
// Bad
|
|
265
273
|
try {
|
|
266
|
-
|
|
267
|
-
|
|
274
|
+
const result = await api.sendMessage(message);
|
|
275
|
+
return result;
|
|
268
276
|
} catch (error) {
|
|
269
|
-
|
|
270
|
-
|
|
277
|
+
console.error(error);
|
|
278
|
+
return null;
|
|
271
279
|
}
|
|
272
280
|
```
|
|
273
281
|
|
|
@@ -276,32 +284,32 @@ try {
|
|
|
276
284
|
### Test Structure
|
|
277
285
|
|
|
278
286
|
```typescript
|
|
279
|
-
describe(
|
|
280
|
-
|
|
281
|
-
|
|
282
|
-
|
|
283
|
-
|
|
284
|
-
|
|
285
|
-
|
|
286
|
-
|
|
287
|
-
|
|
288
|
-
|
|
289
|
-
|
|
290
|
-
|
|
291
|
-
|
|
292
|
-
|
|
293
|
-
|
|
294
|
-
|
|
287
|
+
describe("API Method", () => {
|
|
288
|
+
beforeEach(() => {
|
|
289
|
+
// Setup
|
|
290
|
+
});
|
|
291
|
+
|
|
292
|
+
afterEach(() => {
|
|
293
|
+
// Cleanup
|
|
294
|
+
});
|
|
295
|
+
|
|
296
|
+
it("should handle success case", async () => {
|
|
297
|
+
// Test implementation
|
|
298
|
+
});
|
|
299
|
+
|
|
300
|
+
it("should handle error case", async () => {
|
|
301
|
+
// Test error handling
|
|
302
|
+
});
|
|
295
303
|
});
|
|
296
304
|
```
|
|
297
305
|
|
|
298
306
|
### Testing Best Practices
|
|
299
307
|
|
|
300
|
-
-
|
|
301
|
-
-
|
|
302
|
-
-
|
|
303
|
-
-
|
|
304
|
-
-
|
|
308
|
+
- Test both success and failure scenarios
|
|
309
|
+
- Mock external dependencies
|
|
310
|
+
- Use descriptive test names
|
|
311
|
+
- Keep tests independent
|
|
312
|
+
- Test edge cases and error conditions
|
|
305
313
|
|
|
306
314
|
### Running Tests
|
|
307
315
|
|
|
@@ -320,12 +328,12 @@ bun run test:coverage
|
|
|
320
328
|
|
|
321
329
|
### API Documentation
|
|
322
330
|
|
|
323
|
-
-
|
|
324
|
-
-
|
|
325
|
-
-
|
|
326
|
-
-
|
|
331
|
+
- Document all public methods with JSDoc
|
|
332
|
+
- Include parameter types and descriptions
|
|
333
|
+
- Provide usage examples
|
|
334
|
+
- Document error conditions
|
|
327
335
|
|
|
328
|
-
|
|
336
|
+
````typescript
|
|
329
337
|
/**
|
|
330
338
|
* Sends a message to a specific thread
|
|
331
339
|
* @param message - The message object containing content and metadata
|
|
@@ -343,24 +351,24 @@ bun run test:coverage
|
|
|
343
351
|
* ```
|
|
344
352
|
*/
|
|
345
353
|
async sendMessage(message: IMessage, threadId: string, threadType: ThreadType): Promise<Message>
|
|
346
|
-
|
|
354
|
+
````
|
|
347
355
|
|
|
348
356
|
### README Updates
|
|
349
357
|
|
|
350
|
-
-
|
|
351
|
-
-
|
|
352
|
-
-
|
|
353
|
-
-
|
|
358
|
+
- Update README.md for new features
|
|
359
|
+
- Add examples for new APIs
|
|
360
|
+
- Update installation instructions if needed
|
|
361
|
+
- Keep the table of contents updated
|
|
354
362
|
|
|
355
363
|
## Security Guidelines
|
|
356
364
|
|
|
357
365
|
### Security Best Practices
|
|
358
366
|
|
|
359
|
-
-
|
|
360
|
-
-
|
|
361
|
-
-
|
|
362
|
-
-
|
|
363
|
-
-
|
|
367
|
+
- Never commit sensitive data (tokens, passwords, etc.)
|
|
368
|
+
- Use environment variables for configuration
|
|
369
|
+
- Validate all user inputs
|
|
370
|
+
- Follow the principle of least privilege
|
|
371
|
+
- Report security issues privately
|
|
364
372
|
|
|
365
373
|
### Security Reporting
|
|
366
374
|
|
|
@@ -376,18 +384,18 @@ If you discover a security vulnerability:
|
|
|
376
384
|
```typescript
|
|
377
385
|
// Good - Validate inputs
|
|
378
386
|
function sendMessage(content: string, threadId: string) {
|
|
379
|
-
|
|
380
|
-
|
|
381
|
-
|
|
382
|
-
|
|
383
|
-
|
|
384
|
-
|
|
385
|
-
|
|
387
|
+
if (!content || typeof content !== "string") {
|
|
388
|
+
throw new ZaloApiError("Content must be a non-empty string");
|
|
389
|
+
}
|
|
390
|
+
if (!threadId || typeof threadId !== "string") {
|
|
391
|
+
throw new ZaloApiError("ThreadId must be a non-empty string");
|
|
392
|
+
}
|
|
393
|
+
// Implementation
|
|
386
394
|
}
|
|
387
395
|
|
|
388
396
|
// Bad - No validation
|
|
389
397
|
function sendMessage(content: any, threadId: any) {
|
|
390
|
-
|
|
398
|
+
// Implementation without validation
|
|
391
399
|
}
|
|
392
400
|
```
|
|
393
401
|
|
|
@@ -397,17 +405,17 @@ function sendMessage(content: any, threadId: any) {
|
|
|
397
405
|
|
|
398
406
|
We follow [Semantic Versioning](https://semver.org/):
|
|
399
407
|
|
|
400
|
-
-
|
|
401
|
-
-
|
|
402
|
-
-
|
|
408
|
+
- **MAJOR**: Breaking changes
|
|
409
|
+
- **MINOR**: New features (backward compatible)
|
|
410
|
+
- **PATCH**: Bug fixes (backward compatible)
|
|
403
411
|
|
|
404
412
|
### Release Checklist
|
|
405
413
|
|
|
406
|
-
-
|
|
407
|
-
-
|
|
408
|
-
-
|
|
409
|
-
-
|
|
410
|
-
-
|
|
414
|
+
- [ ] All tests pass
|
|
415
|
+
- [ ] Documentation is updated
|
|
416
|
+
- [ ] Version is bumped in package.json
|
|
417
|
+
- [ ] Build is successful
|
|
418
|
+
- [ ] Release notes are prepared
|
|
411
419
|
|
|
412
420
|
### Publishing
|
|
413
421
|
|
|
@@ -426,23 +434,23 @@ npm publish
|
|
|
426
434
|
|
|
427
435
|
### Communication Channels
|
|
428
436
|
|
|
429
|
-
-
|
|
430
|
-
-
|
|
431
|
-
-
|
|
432
|
-
-
|
|
437
|
+
- **GitHub Issues**: For bug reports and feature requests
|
|
438
|
+
- **GitHub Discussions**: For questions and general discussion
|
|
439
|
+
- **Pull Requests**: For code contributions
|
|
440
|
+
- **Security Issues**: Use `[SECURITY]` label
|
|
433
441
|
|
|
434
442
|
### Team Members
|
|
435
443
|
|
|
436
|
-
-
|
|
437
|
-
-
|
|
438
|
-
-
|
|
444
|
+
- [@RFS-ADRENO](https://github.com/RFS-ADRENO)
|
|
445
|
+
- [@truong9c2208](https://github.com/truong9c2208)
|
|
446
|
+
- [@JustKemForFun](https://github.com/JustKemForFun)
|
|
439
447
|
|
|
440
448
|
### Resources
|
|
441
449
|
|
|
442
|
-
-
|
|
443
|
-
-
|
|
444
|
-
-
|
|
445
|
-
-
|
|
450
|
+
- [API Documentation](https://tdung.gitbook.io/zca-js)
|
|
451
|
+
- [Examples](examples/)
|
|
452
|
+
- [Security Policy](SECURITY.md)
|
|
453
|
+
- [Code of Conduct](CODE_OF_CONDUCT.md)
|
|
446
454
|
|
|
447
455
|
## Special Considerations for zca-js
|
|
448
456
|
|
|
@@ -451,20 +459,20 @@ npm publish
|
|
|
451
459
|
> [!IMPORTANT]
|
|
452
460
|
> ⚠️ zca-js is an unofficial API library for Zalo. Please be aware of:
|
|
453
461
|
|
|
454
|
-
-
|
|
455
|
-
-
|
|
456
|
-
-
|
|
457
|
-
-
|
|
462
|
+
- **Account Risk**: Using this API may result in account suspension
|
|
463
|
+
- **Terms of Service**: Respect Zalo's ToS in your contributions
|
|
464
|
+
- **Rate Limiting**: Be mindful of API usage limits
|
|
465
|
+
- **Privacy**: Protect user privacy and data
|
|
458
466
|
|
|
459
467
|
### Responsible Development
|
|
460
468
|
|
|
461
|
-
-
|
|
462
|
-
-
|
|
463
|
-
-
|
|
464
|
-
-
|
|
469
|
+
- Test changes thoroughly before submitting
|
|
470
|
+
- Avoid introducing features that could harm users
|
|
471
|
+
- Consider the impact on Zalo's infrastructure
|
|
472
|
+
- Document any risks or limitations
|
|
465
473
|
|
|
466
474
|
---
|
|
467
475
|
|
|
468
476
|
**Thank you for contributing to zca-js!** 🚀
|
|
469
477
|
|
|
470
|
-
Your contributions help make this library better for the entire community.
|
|
478
|
+
Your contributions help make this library better for the entire community.
|