@redonvn/redai-backend-api-sdk 0.5.9 → 0.5.12
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/README.md +89 -89
- package/package.json +76 -76
package/README.md
CHANGED
|
@@ -1,89 +1,89 @@
|
|
|
1
|
-
# RedAI Backend API SDK
|
|
2
|
-
|
|
3
|
-
SDK axios cho backend NestJS theo mô hình đa module:
|
|
4
|
-
|
|
5
|
-
- `dynamic-table`
|
|
6
|
-
- `integration` (chỉ route protected user)
|
|
7
|
-
- `rai-job`
|
|
8
|
-
|
|
9
|
-
## Cài đặt
|
|
10
|
-
|
|
11
|
-
```bash
|
|
12
|
-
npm install
|
|
13
|
-
```
|
|
14
|
-
|
|
15
|
-
## Generate
|
|
16
|
-
|
|
17
|
-
```bash
|
|
18
|
-
npm run generate
|
|
19
|
-
```
|
|
20
|
-
|
|
21
|
-
Script generate mặc định chạy tuần tự cho 3 module và tự đồng bộ root index.
|
|
22
|
-
|
|
23
|
-
## Build
|
|
24
|
-
|
|
25
|
-
```bash
|
|
26
|
-
npm run verify:generated
|
|
27
|
-
npm run type-check
|
|
28
|
-
npm run build
|
|
29
|
-
```
|
|
30
|
-
|
|
31
|
-
## Sử dụng
|
|
32
|
-
|
|
33
|
-
```ts
|
|
34
|
-
import {
|
|
35
|
-
createDynamicTableSdk,
|
|
36
|
-
createFrontendAxiosScopeProvider,
|
|
37
|
-
createFrontendAxiosTokenProvider,
|
|
38
|
-
} from '@redonvn/redai-backend-api-sdk';
|
|
39
|
-
|
|
40
|
-
const sdk = createDynamicTableSdk({
|
|
41
|
-
baseURL: 'https://api.example.com/v1',
|
|
42
|
-
tokenProvider: createFrontendAxiosTokenProvider({
|
|
43
|
-
authStorageKey: 'auth_data',
|
|
44
|
-
}),
|
|
45
|
-
scopeProvider: createFrontendAxiosScopeProvider({
|
|
46
|
-
workspaceId: 'workspace-uuid',
|
|
47
|
-
baseId: 'base-uuid',
|
|
48
|
-
}),
|
|
49
|
-
});
|
|
50
|
-
|
|
51
|
-
const res = await sdk.workspaces.getWorkspaceBySlug({ slug: 'my-workspace' });
|
|
52
|
-
```
|
|
53
|
-
|
|
54
|
-
## Webhook body
|
|
55
|
-
|
|
56
|
-
- `notification.payload.body` là body tùy biến dạng JSON object hoặc JSON array.
|
|
57
|
-
- Nếu không truyền `notification.payload.body`, hệ thống sẽ dùng payload webhook runtime mặc định khi trigger.
|
|
58
|
-
- SDK không nên gửi placeholder như `{{ json event }}`; trường `body` phải được bỏ trống hoặc truyền JSON hợp lệ.
|
|
59
|
-
|
|
60
|
-
## Import chuẩn (không dùng dist)
|
|
61
|
-
|
|
62
|
-
```ts
|
|
63
|
-
import { WorkspaceResponseDto, WorkspacesService } from '@redonvn/redai-backend-api-sdk';
|
|
64
|
-
```
|
|
65
|
-
|
|
66
|
-
Khi cần deep import theo module generated:
|
|
67
|
-
|
|
68
|
-
```ts
|
|
69
|
-
import type { WorkspaceResponseDto } from '@redonvn/redai-backend-api-sdk/generated/dynamic-table/types';
|
|
70
|
-
import { WorkspacesService } from '@redonvn/redai-backend-api-sdk/generated/dynamic-table/services/workspaces.service';
|
|
71
|
-
```
|
|
72
|
-
|
|
73
|
-
## Auth và scope runtime
|
|
74
|
-
|
|
75
|
-
```ts
|
|
76
|
-
sdk.auth.setBearerToken('new-jwt');
|
|
77
|
-
sdk.auth.setAuth({ bearerToken: null });
|
|
78
|
-
sdk.auth.setScope({ workspaceId: 'workspace-uuid', baseId: 'base-uuid' });
|
|
79
|
-
|
|
80
|
-
// Tắt provider để quay về set thủ công
|
|
81
|
-
sdk.auth.setTokenProvider(null);
|
|
82
|
-
sdk.auth.setScopeProvider(null);
|
|
83
|
-
```
|
|
84
|
-
|
|
85
|
-
## Cấu trúc
|
|
86
|
-
|
|
87
|
-
- `src/core/*`: runtime axios + auth + scope headers
|
|
88
|
-
- `src/generated/*`: code sinh cho các module
|
|
89
|
-
- `tools/generate-dynamic-table-sdk.ts`: orchestrator generate đa module
|
|
1
|
+
# RedAI Backend API SDK
|
|
2
|
+
|
|
3
|
+
SDK axios cho backend NestJS theo mô hình đa module:
|
|
4
|
+
|
|
5
|
+
- `dynamic-table`
|
|
6
|
+
- `integration` (chỉ route protected user)
|
|
7
|
+
- `rai-job`
|
|
8
|
+
|
|
9
|
+
## Cài đặt
|
|
10
|
+
|
|
11
|
+
```bash
|
|
12
|
+
npm install
|
|
13
|
+
```
|
|
14
|
+
|
|
15
|
+
## Generate
|
|
16
|
+
|
|
17
|
+
```bash
|
|
18
|
+
npm run generate
|
|
19
|
+
```
|
|
20
|
+
|
|
21
|
+
Script generate mặc định chạy tuần tự cho 3 module và tự đồng bộ root index.
|
|
22
|
+
|
|
23
|
+
## Build
|
|
24
|
+
|
|
25
|
+
```bash
|
|
26
|
+
npm run verify:generated
|
|
27
|
+
npm run type-check
|
|
28
|
+
npm run build
|
|
29
|
+
```
|
|
30
|
+
|
|
31
|
+
## Sử dụng
|
|
32
|
+
|
|
33
|
+
```ts
|
|
34
|
+
import {
|
|
35
|
+
createDynamicTableSdk,
|
|
36
|
+
createFrontendAxiosScopeProvider,
|
|
37
|
+
createFrontendAxiosTokenProvider,
|
|
38
|
+
} from '@redonvn/redai-backend-api-sdk';
|
|
39
|
+
|
|
40
|
+
const sdk = createDynamicTableSdk({
|
|
41
|
+
baseURL: 'https://api.example.com/v1',
|
|
42
|
+
tokenProvider: createFrontendAxiosTokenProvider({
|
|
43
|
+
authStorageKey: 'auth_data',
|
|
44
|
+
}),
|
|
45
|
+
scopeProvider: createFrontendAxiosScopeProvider({
|
|
46
|
+
workspaceId: 'workspace-uuid',
|
|
47
|
+
baseId: 'base-uuid',
|
|
48
|
+
}),
|
|
49
|
+
});
|
|
50
|
+
|
|
51
|
+
const res = await sdk.workspaces.getWorkspaceBySlug({ slug: 'my-workspace' });
|
|
52
|
+
```
|
|
53
|
+
|
|
54
|
+
## Webhook body
|
|
55
|
+
|
|
56
|
+
- `notification.payload.body` là body tùy biến dạng JSON object hoặc JSON array.
|
|
57
|
+
- Nếu không truyền `notification.payload.body`, hệ thống sẽ dùng payload webhook runtime mặc định khi trigger.
|
|
58
|
+
- SDK không nên gửi placeholder như `{{ json event }}`; trường `body` phải được bỏ trống hoặc truyền JSON hợp lệ.
|
|
59
|
+
|
|
60
|
+
## Import chuẩn (không dùng dist)
|
|
61
|
+
|
|
62
|
+
```ts
|
|
63
|
+
import { WorkspaceResponseDto, WorkspacesService } from '@redonvn/redai-backend-api-sdk';
|
|
64
|
+
```
|
|
65
|
+
|
|
66
|
+
Khi cần deep import theo module generated:
|
|
67
|
+
|
|
68
|
+
```ts
|
|
69
|
+
import type { WorkspaceResponseDto } from '@redonvn/redai-backend-api-sdk/generated/dynamic-table/types';
|
|
70
|
+
import { WorkspacesService } from '@redonvn/redai-backend-api-sdk/generated/dynamic-table/services/workspaces.service';
|
|
71
|
+
```
|
|
72
|
+
|
|
73
|
+
## Auth và scope runtime
|
|
74
|
+
|
|
75
|
+
```ts
|
|
76
|
+
sdk.auth.setBearerToken('new-jwt');
|
|
77
|
+
sdk.auth.setAuth({ bearerToken: null });
|
|
78
|
+
sdk.auth.setScope({ workspaceId: 'workspace-uuid', baseId: 'base-uuid' });
|
|
79
|
+
|
|
80
|
+
// Tắt provider để quay về set thủ công
|
|
81
|
+
sdk.auth.setTokenProvider(null);
|
|
82
|
+
sdk.auth.setScopeProvider(null);
|
|
83
|
+
```
|
|
84
|
+
|
|
85
|
+
## Cấu trúc
|
|
86
|
+
|
|
87
|
+
- `src/core/*`: runtime axios + auth + scope headers
|
|
88
|
+
- `src/generated/*`: code sinh cho các module
|
|
89
|
+
- `tools/generate-dynamic-table-sdk.ts`: orchestrator generate đa module
|
package/package.json
CHANGED
|
@@ -1,76 +1,76 @@
|
|
|
1
|
-
{
|
|
2
|
-
"name": "@redonvn/redai-backend-api-sdk",
|
|
3
|
-
"version": "0.5.
|
|
4
|
-
"description": "Axios SDK for RedAI Dynamic Table APIs",
|
|
5
|
-
"license": "UNLICENSED",
|
|
6
|
-
"main": "./dist/index.cjs",
|
|
7
|
-
"module": "./dist/index.mjs",
|
|
8
|
-
"types": "./dist/esm/index.d.ts",
|
|
9
|
-
"exports": {
|
|
10
|
-
".": {
|
|
11
|
-
"types": "./dist/esm/index.d.ts",
|
|
12
|
-
"import": "./dist/index.mjs",
|
|
13
|
-
"require": "./dist/index.cjs",
|
|
14
|
-
"default": "./dist/index.mjs"
|
|
15
|
-
},
|
|
16
|
-
"./generated": {
|
|
17
|
-
"types": "./dist/esm/generated/index.d.ts",
|
|
18
|
-
"import": "./dist/esm/generated/index.js",
|
|
19
|
-
"require": "./dist/cjs/generated/index.js",
|
|
20
|
-
"default": "./dist/esm/generated/index.js"
|
|
21
|
-
},
|
|
22
|
-
"./generated/*": {
|
|
23
|
-
"types": "./dist/esm/generated/*.d.ts",
|
|
24
|
-
"import": "./dist/esm/generated/*.js",
|
|
25
|
-
"require": "./dist/cjs/generated/*.js",
|
|
26
|
-
"default": "./dist/esm/generated/*.js"
|
|
27
|
-
},
|
|
28
|
-
"./generated/*/*": {
|
|
29
|
-
"types": "./dist/esm/generated/*/*.d.ts",
|
|
30
|
-
"import": "./dist/esm/generated/*/*.js",
|
|
31
|
-
"require": "./dist/cjs/generated/*/*.js",
|
|
32
|
-
"default": "./dist/esm/generated/*/*.js"
|
|
33
|
-
},
|
|
34
|
-
"./generated/*/*/*": {
|
|
35
|
-
"types": "./dist/esm/generated/*/*/*.d.ts",
|
|
36
|
-
"import": "./dist/esm/generated/*/*/*.js",
|
|
37
|
-
"require": "./dist/cjs/generated/*/*/*.js",
|
|
38
|
-
"default": "./dist/esm/generated/*/*/*.js"
|
|
39
|
-
},
|
|
40
|
-
"./package.json": "./package.json"
|
|
41
|
-
},
|
|
42
|
-
"files": [
|
|
43
|
-
"dist/**/*",
|
|
44
|
-
"README.md",
|
|
45
|
-
"package.json"
|
|
46
|
-
],
|
|
47
|
-
"publishConfig": {
|
|
48
|
-
"access": "public",
|
|
49
|
-
"registry": "https://registry.npmjs.org/"
|
|
50
|
-
},
|
|
51
|
-
"scripts": {
|
|
52
|
-
"clean": "node -e \"require('fs').rmSync('dist',{ recursive: true, force: true })\"",
|
|
53
|
-
"generate": "cross-env GEN_MODE=hybrid OUTPUT_REPORT=true tsx tools/generate-dynamic-table-sdk.ts",
|
|
54
|
-
"generate:sdk": "tsx tools/generate-sdk.ts",
|
|
55
|
-
"generate:index": "node tools/sync-sdk-index.cjs",
|
|
56
|
-
"generate:dynamic-table": "cross-env GEN_MODE=ts OUTPUT_REPORT=true tsx tools/generate-dynamic-table-only-sdk.ts",
|
|
57
|
-
"generate:ts": "cross-env GEN_MODE=ts OUTPUT_REPORT=true tsx tools/generate-dynamic-table-sdk.ts",
|
|
58
|
-
"generate:openapi": "cross-env GEN_MODE=openapi OUTPUT_REPORT=true tsx tools/generate-dynamic-table-sdk.ts",
|
|
59
|
-
"generate:report": "cross-env GEN_MODE=hybrid OUTPUT_REPORT=true tsx tools/generate-dynamic-table-sdk.ts",
|
|
60
|
-
"verify:generated": "tsx tools/verify-generated.ts",
|
|
61
|
-
"typecheck": "tsc --noEmit",
|
|
62
|
-
"type-check": "npm run typecheck",
|
|
63
|
-
"lint": "tsc --noEmit -p tsconfig.json",
|
|
64
|
-
"build": "npm run clean && npm run generate:index && tsc -p tsconfig.build.esm.json && node tools/fix-esm-imports.cjs && tsc -p tsconfig.build.cjs.json && node tools/write-entrypoints.cjs",
|
|
65
|
-
"prepublishOnly": "npm run build"
|
|
66
|
-
},
|
|
67
|
-
"dependencies": {
|
|
68
|
-
"axios": "^1.9.0"
|
|
69
|
-
},
|
|
70
|
-
"devDependencies": {
|
|
71
|
-
"@types/node": "^20.12.12",
|
|
72
|
-
"cross-env": "^7.0.3",
|
|
73
|
-
"tsx": "^4.20.5",
|
|
74
|
-
"typescript": "^5.4.5"
|
|
75
|
-
}
|
|
76
|
-
}
|
|
1
|
+
{
|
|
2
|
+
"name": "@redonvn/redai-backend-api-sdk",
|
|
3
|
+
"version": "0.5.12",
|
|
4
|
+
"description": "Axios SDK for RedAI Dynamic Table APIs",
|
|
5
|
+
"license": "UNLICENSED",
|
|
6
|
+
"main": "./dist/index.cjs",
|
|
7
|
+
"module": "./dist/index.mjs",
|
|
8
|
+
"types": "./dist/esm/index.d.ts",
|
|
9
|
+
"exports": {
|
|
10
|
+
".": {
|
|
11
|
+
"types": "./dist/esm/index.d.ts",
|
|
12
|
+
"import": "./dist/index.mjs",
|
|
13
|
+
"require": "./dist/index.cjs",
|
|
14
|
+
"default": "./dist/index.mjs"
|
|
15
|
+
},
|
|
16
|
+
"./generated": {
|
|
17
|
+
"types": "./dist/esm/generated/index.d.ts",
|
|
18
|
+
"import": "./dist/esm/generated/index.js",
|
|
19
|
+
"require": "./dist/cjs/generated/index.js",
|
|
20
|
+
"default": "./dist/esm/generated/index.js"
|
|
21
|
+
},
|
|
22
|
+
"./generated/*": {
|
|
23
|
+
"types": "./dist/esm/generated/*.d.ts",
|
|
24
|
+
"import": "./dist/esm/generated/*.js",
|
|
25
|
+
"require": "./dist/cjs/generated/*.js",
|
|
26
|
+
"default": "./dist/esm/generated/*.js"
|
|
27
|
+
},
|
|
28
|
+
"./generated/*/*": {
|
|
29
|
+
"types": "./dist/esm/generated/*/*.d.ts",
|
|
30
|
+
"import": "./dist/esm/generated/*/*.js",
|
|
31
|
+
"require": "./dist/cjs/generated/*/*.js",
|
|
32
|
+
"default": "./dist/esm/generated/*/*.js"
|
|
33
|
+
},
|
|
34
|
+
"./generated/*/*/*": {
|
|
35
|
+
"types": "./dist/esm/generated/*/*/*.d.ts",
|
|
36
|
+
"import": "./dist/esm/generated/*/*/*.js",
|
|
37
|
+
"require": "./dist/cjs/generated/*/*/*.js",
|
|
38
|
+
"default": "./dist/esm/generated/*/*/*.js"
|
|
39
|
+
},
|
|
40
|
+
"./package.json": "./package.json"
|
|
41
|
+
},
|
|
42
|
+
"files": [
|
|
43
|
+
"dist/**/*",
|
|
44
|
+
"README.md",
|
|
45
|
+
"package.json"
|
|
46
|
+
],
|
|
47
|
+
"publishConfig": {
|
|
48
|
+
"access": "public",
|
|
49
|
+
"registry": "https://registry.npmjs.org/"
|
|
50
|
+
},
|
|
51
|
+
"scripts": {
|
|
52
|
+
"clean": "node -e \"require('fs').rmSync('dist',{ recursive: true, force: true })\"",
|
|
53
|
+
"generate": "cross-env GEN_MODE=hybrid OUTPUT_REPORT=true tsx tools/generate-dynamic-table-sdk.ts",
|
|
54
|
+
"generate:sdk": "tsx tools/generate-sdk.ts",
|
|
55
|
+
"generate:index": "node tools/sync-sdk-index.cjs",
|
|
56
|
+
"generate:dynamic-table": "cross-env GEN_MODE=ts OUTPUT_REPORT=true tsx tools/generate-dynamic-table-only-sdk.ts",
|
|
57
|
+
"generate:ts": "cross-env GEN_MODE=ts OUTPUT_REPORT=true tsx tools/generate-dynamic-table-sdk.ts",
|
|
58
|
+
"generate:openapi": "cross-env GEN_MODE=openapi OUTPUT_REPORT=true tsx tools/generate-dynamic-table-sdk.ts",
|
|
59
|
+
"generate:report": "cross-env GEN_MODE=hybrid OUTPUT_REPORT=true tsx tools/generate-dynamic-table-sdk.ts",
|
|
60
|
+
"verify:generated": "tsx tools/verify-generated.ts",
|
|
61
|
+
"typecheck": "tsc --noEmit",
|
|
62
|
+
"type-check": "npm run typecheck",
|
|
63
|
+
"lint": "tsc --noEmit -p tsconfig.json",
|
|
64
|
+
"build": "npm run clean && npm run generate:index && tsc -p tsconfig.build.esm.json && node tools/fix-esm-imports.cjs && tsc -p tsconfig.build.cjs.json && node tools/write-entrypoints.cjs",
|
|
65
|
+
"prepublishOnly": "npm run build"
|
|
66
|
+
},
|
|
67
|
+
"dependencies": {
|
|
68
|
+
"axios": "^1.9.0"
|
|
69
|
+
},
|
|
70
|
+
"devDependencies": {
|
|
71
|
+
"@types/node": "^20.12.12",
|
|
72
|
+
"cross-env": "^7.0.3",
|
|
73
|
+
"tsx": "^4.20.5",
|
|
74
|
+
"typescript": "^5.4.5"
|
|
75
|
+
}
|
|
76
|
+
}
|