@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.
Files changed (2) hide show
  1. package/README.md +89 -89
  2. 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.9",
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
+ }