@lark-apaas/coding-template-nestjs-react-fullstack 0.1.53 → 0.1.55-alpha.20261030035108
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/package.json +1 -1
- package/template/client/src/components/business-ui/README.md +10 -0
- package/template/client/src/components/business-ui/api/user-profiles/queries.ts +1 -7
- package/template/client/src/components/business-ui/comment/README.md +139 -0
- package/template/client/src/components/business-ui/comment/app-source.ts +175 -0
- package/template/client/src/components/business-ui/comment/ccm-document-source.ts +252 -0
- package/template/client/src/components/business-ui/comment/comment-content.tsx +235 -0
- package/template/client/src/components/business-ui/comment/comment-input.tsx +191 -0
- package/template/client/src/components/business-ui/comment/comment-provider.tsx +40 -0
- package/template/client/src/components/business-ui/comment/content.ts +329 -0
- package/template/client/src/components/business-ui/comment/document-icon.tsx +104 -0
- package/template/client/src/components/business-ui/comment/document-icons.ts +19 -0
- package/template/client/src/components/business-ui/comment/dom-editor.ts +581 -0
- package/template/client/src/components/business-ui/comment/editor.tsx +496 -0
- package/template/client/src/components/business-ui/comment/entity-store.ts +97 -0
- package/template/client/src/components/business-ui/comment/image-attachments.tsx +374 -0
- package/template/client/src/components/business-ui/comment/mention-appearance.ts +35 -0
- package/template/client/src/components/business-ui/comment/mention-provider.tsx +73 -0
- package/template/client/src/components/business-ui/comment/mention-suggestions.tsx +312 -0
- package/template/client/src/components/business-ui/comment/types.ts +154 -0
- package/template/client/src/components/business-ui/comment/use-mention-search.ts +107 -0
- package/template/client/src/components/business-ui/user-display/user-display.tsx +0 -13
- package/template/client/src/components/business-ui/user-profile/user-profile.tsx +146 -397
- package/template/client/src/components/business-ui/user-select/user-pill.tsx +0 -13
- package/template/client/src/hooks/use-example.ts +45 -36
- package/template/client/src/pages/ExamplePage/ExamplePage.tsx +7 -8
- package/template/client/src/tailwind-theme.css +5 -6
- package/template/eslint.config.js +0 -6
- package/template/package-lock.json +83 -62
- package/template/package.json +5 -4
- package/template/server/modules/hello/hello.controller.ts +4 -8
- package/template/server/modules/hello/hello.service.ts +3 -5
- package/template/shared/api.interface.ts +1 -8
- package/template/client/src/components/business-ui/user-profile/lark-card-pool.ts +0 -217
- package/template/client/src/lib/api-error.ts +0 -36
- package/template/server/modules/hello/hello.dto.ts +0 -21
|
@@ -1,43 +1,52 @@
|
|
|
1
|
-
//
|
|
2
|
-
// import { useMutation, useQuery, useQueryClient } from '@tanstack/react-query';
|
|
3
|
-
// import { toast } from 'sonner';
|
|
1
|
+
// import { useState, useEffect } from 'react';
|
|
4
2
|
// import { axiosForBackend } from '@lark-apaas/client-toolkit/utils/getAxiosForBackend';
|
|
5
|
-
// import {
|
|
6
|
-
|
|
7
|
-
// // 接口的请求 / 响应类型先写在 shared/api.interface.ts,再从 @shared/api.interface 导入
|
|
8
|
-
// interface RecordItem {
|
|
9
|
-
// id: string;
|
|
10
|
-
// title?: string;
|
|
11
|
-
// type?: string;
|
|
12
|
-
// creator?: string;
|
|
13
|
-
// speakDate?: string;
|
|
14
|
-
// }
|
|
3
|
+
// import { logger } from '@lark-apaas/client-toolkit/logger';
|
|
15
4
|
|
|
16
|
-
// interface
|
|
17
|
-
//
|
|
18
|
-
// type?: string
|
|
5
|
+
// interface RecordData {
|
|
6
|
+
// title?: string,
|
|
7
|
+
// type?: string,
|
|
8
|
+
// creator?: string,
|
|
9
|
+
// speakDate?: string,
|
|
10
|
+
// record: any;
|
|
11
|
+
// loading: boolean;
|
|
12
|
+
// error?: string;
|
|
19
13
|
// }
|
|
20
14
|
|
|
21
|
-
//
|
|
22
|
-
//
|
|
23
|
-
//
|
|
24
|
-
//
|
|
25
|
-
//
|
|
26
|
-
// axiosForBackend
|
|
27
|
-
// .get<RecordItem[]>('/api/hello/test', { params })
|
|
28
|
-
// .then((r) => r.data),
|
|
15
|
+
// export function useRecordData() {
|
|
16
|
+
// const [data, setData] = useState<RecordData>({
|
|
17
|
+
// record: {},
|
|
18
|
+
// loading: true,
|
|
19
|
+
// error: null,
|
|
29
20
|
// });
|
|
30
|
-
// }
|
|
31
21
|
|
|
32
|
-
//
|
|
33
|
-
//
|
|
34
|
-
//
|
|
35
|
-
|
|
36
|
-
//
|
|
37
|
-
//
|
|
38
|
-
//
|
|
39
|
-
|
|
40
|
-
//
|
|
41
|
-
//
|
|
42
|
-
|
|
22
|
+
// useEffect(() => {
|
|
23
|
+
// fetchRecordData();
|
|
24
|
+
// }, []);
|
|
25
|
+
|
|
26
|
+
// const fetchRecordData = async () => {
|
|
27
|
+
// try {
|
|
28
|
+
// setData(prev => ({ ...prev, loading: true, error: null }));
|
|
29
|
+
|
|
30
|
+
// // 使用axios实例获取数据
|
|
31
|
+
// const response = await axiosForBackend.get('/api/hello');
|
|
32
|
+
|
|
33
|
+
// // 提取响应数据中的 data 字段
|
|
34
|
+
// const record = response.data.data;
|
|
35
|
+
|
|
36
|
+
// setData({
|
|
37
|
+
// record,
|
|
38
|
+
// loading: false,
|
|
39
|
+
// error: null,
|
|
40
|
+
// });
|
|
41
|
+
// } catch (error) {
|
|
42
|
+
// logger.error('获取数据失败', error);
|
|
43
|
+
// setData(prev => ({
|
|
44
|
+
// ...prev,
|
|
45
|
+
// loading: false,
|
|
46
|
+
// error: '获取数据失败,请稍后重试',
|
|
47
|
+
// }));
|
|
48
|
+
// }
|
|
49
|
+
// };
|
|
50
|
+
|
|
51
|
+
// return { ...data, refetch: fetchRecordData };
|
|
43
52
|
// }
|
|
@@ -3,14 +3,13 @@
|
|
|
3
3
|
// import { Button } from '@/components/ui/button';
|
|
4
4
|
// import { RefreshCw, TrendingUp, PieChart, Clock } from 'lucide-react';
|
|
5
5
|
// import { Link } from 'react-router-dom';
|
|
6
|
-
// import {
|
|
7
|
-
// import { getApiErrorMessage } from '@/lib/api-error';
|
|
6
|
+
// import { useRecordData } from '@/hooks/use-example';
|
|
8
7
|
|
|
9
8
|
// export default function ExamplePage() {
|
|
10
|
-
// const {
|
|
9
|
+
// const { record, loading, error, refetch } = useRecordData();
|
|
11
10
|
// const [dimension, setDimension] = useState<'month' | 'quarter' | 'year'>('month');
|
|
12
11
|
|
|
13
|
-
// if (
|
|
12
|
+
// if (loading) {
|
|
14
13
|
// return (
|
|
15
14
|
// <div className="flex items-center justify-center h-64">
|
|
16
15
|
// <div className="text-muted-foreground">加载中...</div>
|
|
@@ -18,11 +17,11 @@
|
|
|
18
17
|
// );
|
|
19
18
|
// }
|
|
20
19
|
|
|
21
|
-
// if (
|
|
20
|
+
// if (error) {
|
|
22
21
|
// return (
|
|
23
22
|
// <div className="flex flex-col items-center justify-center h-64 space-y-4">
|
|
24
|
-
// <div className="text-destructive">{
|
|
25
|
-
// <Button onClick={
|
|
23
|
+
// <div className="text-destructive">{error}</div>
|
|
24
|
+
// <Button onClick={refetch} variant="outline" size="sm">
|
|
26
25
|
// <RefreshCw className="h-4 w-4 mr-2" />
|
|
27
26
|
// 重试
|
|
28
27
|
// </Button>
|
|
@@ -32,7 +31,7 @@
|
|
|
32
31
|
|
|
33
32
|
// return (
|
|
34
33
|
// <div className="space-y-6">
|
|
35
|
-
// {/*
|
|
34
|
+
// {/* 页面内容 */}
|
|
36
35
|
// </div>
|
|
37
36
|
// );
|
|
38
37
|
// }
|
|
@@ -213,12 +213,11 @@
|
|
|
213
213
|
inset: -1px;
|
|
214
214
|
}
|
|
215
215
|
|
|
216
|
-
/* Does not work on elements with overflow:hidden!
|
|
217
|
-
|
|
218
|
-
|
|
219
|
-
|
|
220
|
-
|
|
221
|
-
:where(.active-elevate-2:not(.no-default-active-elevate)) {
|
|
216
|
+
/* Does not work on elements with overflow:hidden! */
|
|
217
|
+
.hover-elevate:not(.no-default-hover-elevate),
|
|
218
|
+
.active-elevate:not(.no-default-active-elevate),
|
|
219
|
+
.hover-elevate-2:not(.no-default-hover-elevate),
|
|
220
|
+
.active-elevate-2:not(.no-default-active-elevate) {
|
|
222
221
|
position: relative;
|
|
223
222
|
z-index: 0;
|
|
224
223
|
}
|
|
@@ -8,7 +8,7 @@
|
|
|
8
8
|
"name": "fullstack-nestjs-template",
|
|
9
9
|
"version": "2.3.0",
|
|
10
10
|
"dependencies": {
|
|
11
|
-
"@lark-apaas/fullstack-nestjs-core": "^1.1.
|
|
11
|
+
"@lark-apaas/fullstack-nestjs-core": "^1.1.66",
|
|
12
12
|
"@nestjs/axios": "^4.0.1",
|
|
13
13
|
"@nestjs/cache-manager": "^3.1.3",
|
|
14
14
|
"@nestjs/common": "^10.4.20",
|
|
@@ -31,9 +31,10 @@
|
|
|
31
31
|
"tslib": "^2.8.1"
|
|
32
32
|
},
|
|
33
33
|
"devDependencies": {
|
|
34
|
+
"@floating-ui/dom": "1.7.4",
|
|
34
35
|
"@hookform/resolvers": "^5.2.2",
|
|
35
|
-
"@lark-apaas/client-toolkit": "^1.2.
|
|
36
|
-
"@lark-apaas/coding-preset-vite-react": "^1.0.
|
|
36
|
+
"@lark-apaas/client-toolkit": "^1.2.74",
|
|
37
|
+
"@lark-apaas/coding-preset-vite-react": "^1.0.25",
|
|
37
38
|
"@lark-apaas/fullstack-presets": "^1.1.25",
|
|
38
39
|
"@nestjs/cli": "^10.4.9",
|
|
39
40
|
"@radix-ui/react-accordion": "^1.2.12",
|
|
@@ -1078,14 +1079,14 @@
|
|
|
1078
1079
|
}
|
|
1079
1080
|
},
|
|
1080
1081
|
"node_modules/@floating-ui/dom": {
|
|
1081
|
-
"version": "1.
|
|
1082
|
-
"resolved": "https://registry.npmmirror.com/@floating-ui/dom/-/dom-1.
|
|
1083
|
-
"integrity": "sha512-
|
|
1082
|
+
"version": "1.7.4",
|
|
1083
|
+
"resolved": "https://registry.npmmirror.com/@floating-ui/dom/-/dom-1.7.4.tgz",
|
|
1084
|
+
"integrity": "sha512-OOchDgh4F2CchOX94cRVqhvy7b3AFb+/rQXyswmzmGakRfkMgoWVjfnLWkRirfLEfuD4ysVW16eXzwt3jHIzKA==",
|
|
1084
1085
|
"dev": true,
|
|
1085
1086
|
"license": "MIT",
|
|
1086
1087
|
"dependencies": {
|
|
1087
|
-
"@floating-ui/core": "^1.
|
|
1088
|
-
"@floating-ui/utils": "^0.2.
|
|
1088
|
+
"@floating-ui/core": "^1.7.3",
|
|
1089
|
+
"@floating-ui/utils": "^0.2.10"
|
|
1089
1090
|
}
|
|
1090
1091
|
},
|
|
1091
1092
|
"node_modules/@floating-ui/react-dom": {
|
|
@@ -1102,6 +1103,17 @@
|
|
|
1102
1103
|
"react-dom": ">=16.8.0"
|
|
1103
1104
|
}
|
|
1104
1105
|
},
|
|
1106
|
+
"node_modules/@floating-ui/react-dom/node_modules/@floating-ui/dom": {
|
|
1107
|
+
"version": "1.8.0",
|
|
1108
|
+
"resolved": "https://registry.npmmirror.com/@floating-ui/dom/-/dom-1.8.0.tgz",
|
|
1109
|
+
"integrity": "sha512-yXSrzeHZBTZadLOlfyhCkJHNeLJnHRnRInwdZ40L7ZiaAtrBwoYlsDrX3v5zB1Utk7CLfzcOVnVVWoXEky7Ceg==",
|
|
1110
|
+
"dev": true,
|
|
1111
|
+
"license": "MIT",
|
|
1112
|
+
"dependencies": {
|
|
1113
|
+
"@floating-ui/core": "^1.8.0",
|
|
1114
|
+
"@floating-ui/utils": "^0.2.12"
|
|
1115
|
+
}
|
|
1116
|
+
},
|
|
1105
1117
|
"node_modules/@floating-ui/utils": {
|
|
1106
1118
|
"version": "0.2.12",
|
|
1107
1119
|
"resolved": "https://registry.npmmirror.com/@floating-ui/utils/-/utils-0.2.12.tgz",
|
|
@@ -1110,9 +1122,9 @@
|
|
|
1110
1122
|
"license": "MIT"
|
|
1111
1123
|
},
|
|
1112
1124
|
"node_modules/@grpc/grpc-js": {
|
|
1113
|
-
"version": "1.14.
|
|
1114
|
-
"resolved": "https://registry.npmmirror.com/@grpc/grpc-js/-/grpc-js-1.14.
|
|
1115
|
-
"integrity": "sha512-
|
|
1125
|
+
"version": "1.14.4",
|
|
1126
|
+
"resolved": "https://registry.npmmirror.com/@grpc/grpc-js/-/grpc-js-1.14.4.tgz",
|
|
1127
|
+
"integrity": "sha512-k9Dj3DV/itK9D06Y8f190Qgop7/Ui+D0njFV3LHMPwPT75DpXLQohE9Wmz0QElrJnzsjB7KPWiKJbOl7IPDArQ==",
|
|
1116
1128
|
"license": "Apache-2.0",
|
|
1117
1129
|
"dependencies": {
|
|
1118
1130
|
"@grpc/proto-loader": "^0.8.0",
|
|
@@ -1546,9 +1558,9 @@
|
|
|
1546
1558
|
}
|
|
1547
1559
|
},
|
|
1548
1560
|
"node_modules/@lark-apaas/cache-service": {
|
|
1549
|
-
"version": "0.1.
|
|
1550
|
-
"resolved": "https://registry.npmmirror.com/@lark-apaas/cache-service/-/cache-service-0.1.
|
|
1551
|
-
"integrity": "sha512-
|
|
1561
|
+
"version": "0.1.2",
|
|
1562
|
+
"resolved": "https://registry.npmmirror.com/@lark-apaas/cache-service/-/cache-service-0.1.2.tgz",
|
|
1563
|
+
"integrity": "sha512-0n24sTo1QyH/8lHs8GUcM/E+zeDau2d5Wqga8QY0A/VbjxctCtmDc8SwN1Zl8mioLNalF3QotnBsNWnOHuOw/A==",
|
|
1552
1564
|
"license": "MIT",
|
|
1553
1565
|
"dependencies": {
|
|
1554
1566
|
"@keyv/redis": "^5.1.6",
|
|
@@ -1562,8 +1574,8 @@
|
|
|
1562
1574
|
},
|
|
1563
1575
|
"peerDependencies": {
|
|
1564
1576
|
"@lark-apaas/nestjs-common": "^0.1.9",
|
|
1565
|
-
"@lark-apaas/nestjs-logger": "^1.0.
|
|
1566
|
-
"@lark-apaas/nestjs-observable": "^0.0.
|
|
1577
|
+
"@lark-apaas/nestjs-logger": "^1.0.18",
|
|
1578
|
+
"@lark-apaas/nestjs-observable": "^0.0.12",
|
|
1567
1579
|
"@nestjs/common": "^10.0.0",
|
|
1568
1580
|
"@nestjs/core": "^10.0.0"
|
|
1569
1581
|
}
|
|
@@ -1579,9 +1591,9 @@
|
|
|
1579
1591
|
}
|
|
1580
1592
|
},
|
|
1581
1593
|
"node_modules/@lark-apaas/client-toolkit": {
|
|
1582
|
-
"version": "1.2.
|
|
1583
|
-
"resolved": "https://registry.npmmirror.com/@lark-apaas/client-toolkit/-/client-toolkit-1.2.
|
|
1584
|
-
"integrity": "sha512-
|
|
1594
|
+
"version": "1.2.74",
|
|
1595
|
+
"resolved": "https://registry.npmmirror.com/@lark-apaas/client-toolkit/-/client-toolkit-1.2.74.tgz",
|
|
1596
|
+
"integrity": "sha512-130dhn1soBcAH/QuJNzn98Y0olakEouHBJ44xW1S6/kX2oqA4kYupLkDJJ9/TyzvA4P1uiqx0P8GUmUyg9+y8g==",
|
|
1585
1597
|
"dev": true,
|
|
1586
1598
|
"dependencies": {
|
|
1587
1599
|
"@ant-design/colors": "^7.2.1",
|
|
@@ -1634,9 +1646,9 @@
|
|
|
1634
1646
|
"license": "MIT"
|
|
1635
1647
|
},
|
|
1636
1648
|
"node_modules/@lark-apaas/coding-preset-vite-react": {
|
|
1637
|
-
"version": "1.0.
|
|
1638
|
-
"resolved": "https://registry.npmmirror.com/@lark-apaas/coding-preset-vite-react/-/coding-preset-vite-react-1.0.
|
|
1639
|
-
"integrity": "sha512-
|
|
1649
|
+
"version": "1.0.25",
|
|
1650
|
+
"resolved": "https://registry.npmmirror.com/@lark-apaas/coding-preset-vite-react/-/coding-preset-vite-react-1.0.25.tgz",
|
|
1651
|
+
"integrity": "sha512-pvYryPeK+/uXlGgSZTPyydVVNVbbYYQNN6hCu/6GXaj8/McFEd1MfYcjehAuxDO4C1LLFEi3korlbSDjpbGZJg==",
|
|
1640
1652
|
"dev": true,
|
|
1641
1653
|
"license": "MIT",
|
|
1642
1654
|
"dependencies": {
|
|
@@ -1697,23 +1709,23 @@
|
|
|
1697
1709
|
}
|
|
1698
1710
|
},
|
|
1699
1711
|
"node_modules/@lark-apaas/fullstack-nestjs-core": {
|
|
1700
|
-
"version": "1.1.
|
|
1701
|
-
"resolved": "https://registry.npmmirror.com/@lark-apaas/fullstack-nestjs-core/-/fullstack-nestjs-core-1.1.
|
|
1702
|
-
"integrity": "sha512-
|
|
1712
|
+
"version": "1.1.66",
|
|
1713
|
+
"resolved": "https://registry.npmmirror.com/@lark-apaas/fullstack-nestjs-core/-/fullstack-nestjs-core-1.1.66.tgz",
|
|
1714
|
+
"integrity": "sha512-TeC/W6q3StOulDo5q8AmzmQCGarR3WKknYc1ZWs0xuptBddDX4w6KfZvLIdr9/Bs9Y0sOW5bEf71WL8o1vXr4g==",
|
|
1703
1715
|
"license": "MIT",
|
|
1704
1716
|
"dependencies": {
|
|
1705
|
-
"@lark-apaas/cache-service": "^0.1.
|
|
1717
|
+
"@lark-apaas/cache-service": "^0.1.2",
|
|
1706
1718
|
"@lark-apaas/file-service": "^0.1.2",
|
|
1707
|
-
"@lark-apaas/http-client": "^0.1.
|
|
1719
|
+
"@lark-apaas/http-client": "^0.1.7",
|
|
1708
1720
|
"@lark-apaas/nestjs-authnpaas": "^1.0.9",
|
|
1709
1721
|
"@lark-apaas/nestjs-authzpaas": "^0.1.16",
|
|
1710
1722
|
"@lark-apaas/nestjs-capability": "^0.1.14",
|
|
1711
1723
|
"@lark-apaas/nestjs-common": "^0.1.9",
|
|
1712
|
-
"@lark-apaas/nestjs-datapaas": "^1.0.
|
|
1724
|
+
"@lark-apaas/nestjs-datapaas": "^1.0.21",
|
|
1713
1725
|
"@lark-apaas/nestjs-http-forwarder": "^0.1.3",
|
|
1714
|
-
"@lark-apaas/nestjs-logger": "^1.0.
|
|
1726
|
+
"@lark-apaas/nestjs-logger": "^1.0.18",
|
|
1715
1727
|
"@lark-apaas/nestjs-mcp": "^0.1.2",
|
|
1716
|
-
"@lark-apaas/nestjs-observable": "^0.0.
|
|
1728
|
+
"@lark-apaas/nestjs-observable": "^0.0.12",
|
|
1717
1729
|
"@lark-apaas/nestjs-openapi-devtools": "^1.0.10",
|
|
1718
1730
|
"@lark-apaas/nestjs-trigger": "^0.0.3",
|
|
1719
1731
|
"@nestjs/axios": "^4.0.1",
|
|
@@ -1773,9 +1785,9 @@
|
|
|
1773
1785
|
}
|
|
1774
1786
|
},
|
|
1775
1787
|
"node_modules/@lark-apaas/http-client": {
|
|
1776
|
-
"version": "0.1.
|
|
1777
|
-
"resolved": "https://registry.npmmirror.com/@lark-apaas/http-client/-/http-client-0.1.
|
|
1778
|
-
"integrity": "sha512-
|
|
1788
|
+
"version": "0.1.7",
|
|
1789
|
+
"resolved": "https://registry.npmmirror.com/@lark-apaas/http-client/-/http-client-0.1.7.tgz",
|
|
1790
|
+
"integrity": "sha512-ihaV4zzMWFTkG/M++Zx88yQ0kRrEWPbI25PtHku3sjGjY9RboNN3onv1lZ8M7kdKSvswU+JjBlBomrIEzbsk5Q==",
|
|
1779
1791
|
"license": "MIT",
|
|
1780
1792
|
"engines": {
|
|
1781
1793
|
"node": ">=18.0.0"
|
|
@@ -1887,9 +1899,9 @@
|
|
|
1887
1899
|
}
|
|
1888
1900
|
},
|
|
1889
1901
|
"node_modules/@lark-apaas/nestjs-datapaas": {
|
|
1890
|
-
"version": "1.0.
|
|
1891
|
-
"resolved": "https://registry.npmmirror.com/@lark-apaas/nestjs-datapaas/-/nestjs-datapaas-1.0.
|
|
1892
|
-
"integrity": "sha512-
|
|
1902
|
+
"version": "1.0.22",
|
|
1903
|
+
"resolved": "https://registry.npmmirror.com/@lark-apaas/nestjs-datapaas/-/nestjs-datapaas-1.0.22.tgz",
|
|
1904
|
+
"integrity": "sha512-UTdYnZGVpVTv5iB9HEiUJTyFmTvEX+QJd/qlJK2CsnyF2MS8YQhyWTSlJZ375DcBpxSngFBhkRfZXHNs1OFp0w==",
|
|
1893
1905
|
"license": "MIT",
|
|
1894
1906
|
"dependencies": {
|
|
1895
1907
|
"@types/pg": "^8.10.9",
|
|
@@ -1901,7 +1913,7 @@
|
|
|
1901
1913
|
},
|
|
1902
1914
|
"peerDependencies": {
|
|
1903
1915
|
"@lark-apaas/nestjs-common": "^0.1.9",
|
|
1904
|
-
"@lark-apaas/nestjs-observable": "^0.0.
|
|
1916
|
+
"@lark-apaas/nestjs-observable": "^0.0.12",
|
|
1905
1917
|
"@nestjs/common": "^10.0.0",
|
|
1906
1918
|
"@nestjs/core": "^10.0.0",
|
|
1907
1919
|
"drizzle-orm": "0.44.6"
|
|
@@ -1926,13 +1938,13 @@
|
|
|
1926
1938
|
}
|
|
1927
1939
|
},
|
|
1928
1940
|
"node_modules/@lark-apaas/nestjs-logger": {
|
|
1929
|
-
"version": "1.0.
|
|
1930
|
-
"resolved": "https://registry.npmmirror.com/@lark-apaas/nestjs-logger/-/nestjs-logger-1.0.
|
|
1931
|
-
"integrity": "sha512-
|
|
1941
|
+
"version": "1.0.18",
|
|
1942
|
+
"resolved": "https://registry.npmmirror.com/@lark-apaas/nestjs-logger/-/nestjs-logger-1.0.18.tgz",
|
|
1943
|
+
"integrity": "sha512-RjucJd+TmACoNfTFw20/ppAT3gaztm3qZagPDHEZabiZxg8UpF1twbmN/VLXTF/fgpyoRFS09CMxa7nfFnrT2A==",
|
|
1932
1944
|
"license": "MIT",
|
|
1933
1945
|
"dependencies": {
|
|
1934
1946
|
"@lark-apaas/nestjs-common": "^0.1.9",
|
|
1935
|
-
"@lark-apaas/nestjs-observable": "^0.0.
|
|
1947
|
+
"@lark-apaas/nestjs-observable": "^0.0.12",
|
|
1936
1948
|
"pino": "^10.0.0",
|
|
1937
1949
|
"rotating-file-stream": "^3.2.9"
|
|
1938
1950
|
},
|
|
@@ -1965,13 +1977,13 @@
|
|
|
1965
1977
|
}
|
|
1966
1978
|
},
|
|
1967
1979
|
"node_modules/@lark-apaas/nestjs-observable": {
|
|
1968
|
-
"version": "0.0.
|
|
1969
|
-
"resolved": "https://registry.npmmirror.com/@lark-apaas/nestjs-observable/-/nestjs-observable-0.0.
|
|
1970
|
-
"integrity": "sha512-
|
|
1980
|
+
"version": "0.0.12",
|
|
1981
|
+
"resolved": "https://registry.npmmirror.com/@lark-apaas/nestjs-observable/-/nestjs-observable-0.0.12.tgz",
|
|
1982
|
+
"integrity": "sha512-hAeP8llTThH//3yo4RQL6VhsX5D7L8DE8nWlt6xJf3VoxTwB5vZCOdI0em1vENmbROmxRMskphyS2H1wRpqcDw==",
|
|
1971
1983
|
"license": "MIT",
|
|
1972
1984
|
"dependencies": {
|
|
1973
1985
|
"@lark-apaas/nestjs-common": "^0.1.9",
|
|
1974
|
-
"@lark-apaas/observable": "^1.0.
|
|
1986
|
+
"@lark-apaas/observable": "^1.0.6"
|
|
1975
1987
|
},
|
|
1976
1988
|
"peerDependencies": {
|
|
1977
1989
|
"@nestjs/common": "^10.4.20",
|
|
@@ -2011,9 +2023,9 @@
|
|
|
2011
2023
|
}
|
|
2012
2024
|
},
|
|
2013
2025
|
"node_modules/@lark-apaas/observable": {
|
|
2014
|
-
"version": "1.0.
|
|
2015
|
-
"resolved": "https://registry.npmmirror.com/@lark-apaas/observable/-/observable-1.0.
|
|
2016
|
-
"integrity": "sha512-
|
|
2026
|
+
"version": "1.0.6",
|
|
2027
|
+
"resolved": "https://registry.npmmirror.com/@lark-apaas/observable/-/observable-1.0.6.tgz",
|
|
2028
|
+
"integrity": "sha512-zMtTdWXEKjhpaC9M0mnv3uP68R+UAwNdctApmpzPhhOaNPjDGSYdvsQtMEMdr8/+tlETx+7OuXN47sYj2lmKAQ==",
|
|
2017
2029
|
"license": "MIT",
|
|
2018
2030
|
"dependencies": {
|
|
2019
2031
|
"@opentelemetry/api": "^1.9.0",
|
|
@@ -10999,9 +11011,9 @@
|
|
|
10999
11011
|
}
|
|
11000
11012
|
},
|
|
11001
11013
|
"node_modules/cjs-module-lexer": {
|
|
11002
|
-
"version": "2.
|
|
11003
|
-
"resolved": "https://registry.npmmirror.com/cjs-module-lexer/-/cjs-module-lexer-2.
|
|
11004
|
-
"integrity": "sha512-
|
|
11014
|
+
"version": "2.2.1",
|
|
11015
|
+
"resolved": "https://registry.npmmirror.com/cjs-module-lexer/-/cjs-module-lexer-2.2.1.tgz",
|
|
11016
|
+
"integrity": "sha512-Ca8swihM+/4yKecYHY52kgJd300hi2lADU/a1RxNTRe+RJ9jvqQlESpbz9DnG9mowez8qwXHB8qYdIUw9e+F5Q==",
|
|
11005
11017
|
"license": "MIT"
|
|
11006
11018
|
},
|
|
11007
11019
|
"node_modules/class-transformer": {
|
|
@@ -18600,9 +18612,9 @@
|
|
|
18600
18612
|
}
|
|
18601
18613
|
},
|
|
18602
18614
|
"node_modules/pino": {
|
|
18603
|
-
"version": "10.
|
|
18604
|
-
"resolved": "https://registry.npmmirror.com/pino/-/pino-10.
|
|
18605
|
-
"integrity": "sha512-
|
|
18615
|
+
"version": "10.3.1",
|
|
18616
|
+
"resolved": "https://registry.npmmirror.com/pino/-/pino-10.3.1.tgz",
|
|
18617
|
+
"integrity": "sha512-r34yH/GlQpKZbU1BvFFqOjhISRo1MNx1tWYsYvmj6KIRHSPMT2+yHOEb1SG6NMvRoHRF0a07kCOox/9yakl1vg==",
|
|
18606
18618
|
"license": "MIT",
|
|
18607
18619
|
"dependencies": {
|
|
18608
18620
|
"@pinojs/redact": "^0.4.0",
|
|
@@ -18612,7 +18624,7 @@
|
|
|
18612
18624
|
"pino-std-serializers": "^7.0.0",
|
|
18613
18625
|
"process-warning": "^5.0.0",
|
|
18614
18626
|
"quick-format-unescaped": "^4.0.3",
|
|
18615
|
-
"real-require": "^
|
|
18627
|
+
"real-require": "^0.2.0",
|
|
18616
18628
|
"safe-stable-stringify": "^2.3.1",
|
|
18617
18629
|
"sonic-boom": "^4.0.1",
|
|
18618
18630
|
"thread-stream": "^4.0.0"
|
|
@@ -18964,9 +18976,9 @@
|
|
|
18964
18976
|
}
|
|
18965
18977
|
},
|
|
18966
18978
|
"node_modules/process-warning": {
|
|
18967
|
-
"version": "5.1.
|
|
18968
|
-
"resolved": "https://registry.npmmirror.com/process-warning/-/process-warning-5.1.
|
|
18969
|
-
"integrity": "sha512-
|
|
18979
|
+
"version": "5.1.0",
|
|
18980
|
+
"resolved": "https://registry.npmmirror.com/process-warning/-/process-warning-5.1.0.tgz",
|
|
18981
|
+
"integrity": "sha512-jQSaVHsPgtyw60e1rQ/A+/ArPEj/S8pS/vFnyGa/gYFXrKk/6RuDkoqVDQ5NI5MmS01698ltlAk0NoDBNLujRw==",
|
|
18970
18982
|
"funding": [
|
|
18971
18983
|
{
|
|
18972
18984
|
"type": "github",
|
|
@@ -19931,10 +19943,13 @@
|
|
|
19931
19943
|
}
|
|
19932
19944
|
},
|
|
19933
19945
|
"node_modules/real-require": {
|
|
19934
|
-
"version": "
|
|
19935
|
-
"resolved": "https://registry.npmmirror.com/real-require/-/real-require-
|
|
19936
|
-
"integrity": "sha512-
|
|
19937
|
-
"license": "MIT"
|
|
19946
|
+
"version": "0.2.0",
|
|
19947
|
+
"resolved": "https://registry.npmmirror.com/real-require/-/real-require-0.2.0.tgz",
|
|
19948
|
+
"integrity": "sha512-57frrGM/OCTLqLOAh0mhVA9VBMHd+9U7Zb2THMGdBUoZVOtGbJzjxsYGDJ3A9AYYCP4hn6y1TVbaOfzWtm5GFg==",
|
|
19949
|
+
"license": "MIT",
|
|
19950
|
+
"engines": {
|
|
19951
|
+
"node": ">= 12.13.0"
|
|
19952
|
+
}
|
|
19938
19953
|
},
|
|
19939
19954
|
"node_modules/recharts": {
|
|
19940
19955
|
"version": "2.15.4",
|
|
@@ -22011,6 +22026,12 @@
|
|
|
22011
22026
|
"node": ">=20"
|
|
22012
22027
|
}
|
|
22013
22028
|
},
|
|
22029
|
+
"node_modules/thread-stream/node_modules/real-require": {
|
|
22030
|
+
"version": "1.0.0",
|
|
22031
|
+
"resolved": "https://registry.npmmirror.com/real-require/-/real-require-1.0.0.tgz",
|
|
22032
|
+
"integrity": "sha512-P4nbQYQfePJxRSmY+v/KINxVucm4NF3p3s7pJveMTtom52FR4YGltUQLB8idDXwDDWW+eYrWDFbuzUnjoWHF7g==",
|
|
22033
|
+
"license": "MIT"
|
|
22034
|
+
},
|
|
22014
22035
|
"node_modules/throttle-debounce": {
|
|
22015
22036
|
"version": "5.0.2",
|
|
22016
22037
|
"resolved": "https://registry.npmmirror.com/throttle-debounce/-/throttle-debounce-5.0.2.tgz",
|
package/template/package.json
CHANGED
|
@@ -28,7 +28,7 @@
|
|
|
28
28
|
"upgrade": "npx -y @lark-apaas/fullstack-cli sync --disable-gen-openapi"
|
|
29
29
|
},
|
|
30
30
|
"dependencies": {
|
|
31
|
-
"@lark-apaas/fullstack-nestjs-core": "^1.1.
|
|
31
|
+
"@lark-apaas/fullstack-nestjs-core": "^1.1.66",
|
|
32
32
|
"@nestjs/axios": "^4.0.1",
|
|
33
33
|
"@nestjs/cache-manager": "^3.1.3",
|
|
34
34
|
"@nestjs/common": "^10.4.20",
|
|
@@ -52,8 +52,8 @@
|
|
|
52
52
|
},
|
|
53
53
|
"devDependencies": {
|
|
54
54
|
"@hookform/resolvers": "^5.2.2",
|
|
55
|
-
"@lark-apaas/client-toolkit": "^1.2.
|
|
56
|
-
"@lark-apaas/coding-preset-vite-react": "^1.0.
|
|
55
|
+
"@lark-apaas/client-toolkit": "^1.2.74",
|
|
56
|
+
"@lark-apaas/coding-preset-vite-react": "^1.0.25",
|
|
57
57
|
"@lark-apaas/fullstack-presets": "^1.1.25",
|
|
58
58
|
"@nestjs/cli": "^10.4.9",
|
|
59
59
|
"@radix-ui/react-accordion": "^1.2.12",
|
|
@@ -133,7 +133,8 @@
|
|
|
133
133
|
"uuid": "11.0.5",
|
|
134
134
|
"vaul": "^1.1.2",
|
|
135
135
|
"vite": "^8",
|
|
136
|
-
"zod": "^4.3.6"
|
|
136
|
+
"zod": "^4.3.6",
|
|
137
|
+
"@floating-ui/dom": "1.7.4"
|
|
137
138
|
},
|
|
138
139
|
"overrides": {
|
|
139
140
|
"dayjs": "^1.11.15",
|
|
@@ -1,20 +1,16 @@
|
|
|
1
1
|
// /* 模板代码 仅作示例 */
|
|
2
|
-
// import { Controller, Get, Query, Req } from '@nestjs/common';
|
|
2
|
+
// import { Controller, Get, Post, Put, Delete, Body, Param, Query, Req, ParseIntPipe } from '@nestjs/common';
|
|
3
3
|
// import type { Request } from 'express';
|
|
4
|
-
// import { NeedLogin } from '@lark-apaas/fullstack-nestjs-core';
|
|
5
4
|
// import { HelloService } from './hello.service';
|
|
6
|
-
// import { HelloListQueryDto } from './hello.dto';
|
|
7
5
|
|
|
8
|
-
// // 整个 controller 都需要登录:在类上写一次 @NeedLogin()
|
|
9
6
|
// @Controller('api/hello')
|
|
10
|
-
// @NeedLogin()
|
|
11
7
|
// export class HelloController {
|
|
12
8
|
// constructor(private readonly helloService: HelloService) {}
|
|
13
9
|
|
|
14
|
-
// // 列表 / 筛选接口:用 @Query() 绑定 DTO,不逐个 @Query('xxx') + parseInt
|
|
15
10
|
// @Get('test')
|
|
16
|
-
// async test(@Req() req: Request, @Query()
|
|
11
|
+
// async test(@Req() req: Request, @Query('limit') limit?: string) {
|
|
17
12
|
// const { userId } = req.userContext;
|
|
18
|
-
//
|
|
13
|
+
// const limitNum = limit ? parseInt(limit) : 5;
|
|
14
|
+
// return this.helloService.test(userId, limitNum);
|
|
19
15
|
// }
|
|
20
16
|
// }
|
|
@@ -2,7 +2,7 @@
|
|
|
2
2
|
// import { Injectable, Inject, Logger } from '@nestjs/common';
|
|
3
3
|
// import { DRIZZLE_DATABASE, type PostgresJsDatabase } from '@lark-apaas/fullstack-nestjs-core';
|
|
4
4
|
// import { record } from '@server/database/schema';
|
|
5
|
-
// import { eq, and, desc } from 'drizzle-orm';
|
|
5
|
+
// import { eq, and, count, desc, sql, gte, lte, or } from 'drizzle-orm';
|
|
6
6
|
|
|
7
7
|
// @Injectable()
|
|
8
8
|
// export class HelloService {
|
|
@@ -10,14 +10,12 @@
|
|
|
10
10
|
|
|
11
11
|
// constructor(@Inject(DRIZZLE_DATABASE) private readonly db: PostgresJsDatabase) {}
|
|
12
12
|
|
|
13
|
-
// async test(userId: string, limit: number = 5
|
|
13
|
+
// async test(userId: string, limit: number = 5) {
|
|
14
14
|
// try {
|
|
15
|
-
// const conditions = [eq(record.userProfile, userId)];
|
|
16
|
-
// if (type) conditions.push(eq(record.type, type));
|
|
17
15
|
// const results = await this.db
|
|
18
16
|
// .select()
|
|
19
17
|
// .from(record)
|
|
20
|
-
// .where(
|
|
18
|
+
// .where(eq(record.userProfile, userId))
|
|
21
19
|
// .orderBy(desc(record.speakDate))
|
|
22
20
|
// .limit(limit);
|
|
23
21
|
|
|
@@ -1,8 +1 @@
|
|
|
1
|
-
/* 前后端共享的类型写在这里 */
|
|
2
|
-
|
|
3
|
-
// 固定取值(状态、类型等)在这里定义一次,前后端都从这里导入,不另写取值数组或守卫:
|
|
4
|
-
// export const RECORD_TYPES = ['meeting', 'memo'] as const;
|
|
5
|
-
// export type RecordType = (typeof RECORD_TYPES)[number];
|
|
6
|
-
// export const isRecordType = (v: string): v is RecordType =>
|
|
7
|
-
// (RECORD_TYPES as readonly string[]).includes(v);
|
|
8
|
-
// export const RECORD_TYPE_LABELS: Record<RecordType, string> = { meeting: '会议', memo: '备忘' };
|
|
1
|
+
/* 前后端共享的类型写在这里 */
|