cloudisk 1.0.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.
Files changed (189) hide show
  1. package/.env.example +17 -0
  2. package/README.md +120 -0
  3. package/dist/config/index.d.ts +27 -0
  4. package/dist/config/index.d.ts.map +1 -0
  5. package/dist/config/index.js +45 -0
  6. package/dist/config/index.js.map +1 -0
  7. package/dist/dto/auth.dto.d.ts +14 -0
  8. package/dist/dto/auth.dto.d.ts.map +1 -0
  9. package/dist/dto/auth.dto.js +16 -0
  10. package/dist/dto/auth.dto.js.map +1 -0
  11. package/dist/dto/user.dto.d.ts +76 -0
  12. package/dist/dto/user.dto.d.ts.map +1 -0
  13. package/dist/dto/user.dto.js +70 -0
  14. package/dist/dto/user.dto.js.map +1 -0
  15. package/dist/handlers/auth.handler.d.ts +10 -0
  16. package/dist/handlers/auth.handler.d.ts.map +1 -0
  17. package/dist/handlers/auth.handler.js +41 -0
  18. package/dist/handlers/auth.handler.js.map +1 -0
  19. package/dist/handlers/disk.handler.d.ts +12 -0
  20. package/dist/handlers/disk.handler.d.ts.map +1 -0
  21. package/dist/handlers/disk.handler.js +61 -0
  22. package/dist/handlers/disk.handler.js.map +1 -0
  23. package/dist/handlers/samba.handler.d.ts +16 -0
  24. package/dist/handlers/samba.handler.d.ts.map +1 -0
  25. package/dist/handlers/samba.handler.js +120 -0
  26. package/dist/handlers/samba.handler.js.map +1 -0
  27. package/dist/handlers/share.handler.d.ts +11 -0
  28. package/dist/handlers/share.handler.d.ts.map +1 -0
  29. package/dist/handlers/share.handler.js +52 -0
  30. package/dist/handlers/share.handler.js.map +1 -0
  31. package/dist/handlers/system.handler.d.ts +17 -0
  32. package/dist/handlers/system.handler.d.ts.map +1 -0
  33. package/dist/handlers/system.handler.js +210 -0
  34. package/dist/handlers/system.handler.js.map +1 -0
  35. package/dist/handlers/user.handler.d.ts +16 -0
  36. package/dist/handlers/user.handler.d.ts.map +1 -0
  37. package/dist/handlers/user.handler.js +101 -0
  38. package/dist/handlers/user.handler.js.map +1 -0
  39. package/dist/index.d.ts +3 -0
  40. package/dist/index.d.ts.map +1 -0
  41. package/dist/index.js +799 -0
  42. package/dist/index.js.map +1 -0
  43. package/dist/lib/errors.d.ts +13 -0
  44. package/dist/lib/errors.d.ts.map +1 -0
  45. package/dist/lib/errors.js +35 -0
  46. package/dist/lib/errors.js.map +1 -0
  47. package/dist/lib/log-buffer.d.ts +20 -0
  48. package/dist/lib/log-buffer.d.ts.map +1 -0
  49. package/dist/lib/log-buffer.js +75 -0
  50. package/dist/lib/log-buffer.js.map +1 -0
  51. package/dist/lib/response.d.ts +5 -0
  52. package/dist/lib/response.d.ts.map +1 -0
  53. package/dist/lib/response.js +19 -0
  54. package/dist/lib/response.js.map +1 -0
  55. package/dist/lib/shell.d.ts +9 -0
  56. package/dist/lib/shell.d.ts.map +1 -0
  57. package/dist/lib/shell.js +32 -0
  58. package/dist/lib/shell.js.map +1 -0
  59. package/dist/middleware/auth.d.ts +17 -0
  60. package/dist/middleware/auth.d.ts.map +1 -0
  61. package/dist/middleware/auth.js +43 -0
  62. package/dist/middleware/auth.js.map +1 -0
  63. package/dist/middleware/error-handler.d.ts +3 -0
  64. package/dist/middleware/error-handler.d.ts.map +1 -0
  65. package/dist/middleware/error-handler.js +14 -0
  66. package/dist/middleware/error-handler.js.map +1 -0
  67. package/dist/middleware/logger.d.ts +3 -0
  68. package/dist/middleware/logger.d.ts.map +1 -0
  69. package/dist/middleware/logger.js +25 -0
  70. package/dist/middleware/logger.js.map +1 -0
  71. package/dist/middleware/validate.d.ts +3 -0
  72. package/dist/middleware/validate.d.ts.map +1 -0
  73. package/dist/middleware/validate.js +28 -0
  74. package/dist/middleware/validate.js.map +1 -0
  75. package/dist/operators/disk.operator.d.ts +29 -0
  76. package/dist/operators/disk.operator.d.ts.map +1 -0
  77. package/dist/operators/disk.operator.js +70 -0
  78. package/dist/operators/disk.operator.js.map +1 -0
  79. package/dist/operators/linux-user.operator.d.ts +13 -0
  80. package/dist/operators/linux-user.operator.d.ts.map +1 -0
  81. package/dist/operators/linux-user.operator.js +47 -0
  82. package/dist/operators/linux-user.operator.js.map +1 -0
  83. package/dist/operators/quota.operator.d.ts +18 -0
  84. package/dist/operators/quota.operator.d.ts.map +1 -0
  85. package/dist/operators/quota.operator.js +54 -0
  86. package/dist/operators/quota.operator.js.map +1 -0
  87. package/dist/operators/samba.operator.d.ts +41 -0
  88. package/dist/operators/samba.operator.d.ts.map +1 -0
  89. package/dist/operators/samba.operator.js +274 -0
  90. package/dist/operators/samba.operator.js.map +1 -0
  91. package/dist/operators/share.operator.d.ts +21 -0
  92. package/dist/operators/share.operator.d.ts.map +1 -0
  93. package/dist/operators/share.operator.js +67 -0
  94. package/dist/operators/share.operator.js.map +1 -0
  95. package/dist/repositories/admin.repo.d.ts +30 -0
  96. package/dist/repositories/admin.repo.d.ts.map +1 -0
  97. package/dist/repositories/admin.repo.js +20 -0
  98. package/dist/repositories/admin.repo.js.map +1 -0
  99. package/dist/repositories/user.repo.d.ts +44 -0
  100. package/dist/repositories/user.repo.d.ts.map +1 -0
  101. package/dist/repositories/user.repo.js +3 -0
  102. package/dist/repositories/user.repo.js.map +1 -0
  103. package/dist/repositories/user.repo.sqlite.d.ts +16 -0
  104. package/dist/repositories/user.repo.sqlite.d.ts.map +1 -0
  105. package/dist/repositories/user.repo.sqlite.js +47 -0
  106. package/dist/repositories/user.repo.sqlite.js.map +1 -0
  107. package/dist/routes/auth.routes.d.ts +4 -0
  108. package/dist/routes/auth.routes.d.ts.map +1 -0
  109. package/dist/routes/auth.routes.js +15 -0
  110. package/dist/routes/auth.routes.js.map +1 -0
  111. package/dist/routes/disk.routes.d.ts +4 -0
  112. package/dist/routes/disk.routes.d.ts.map +1 -0
  113. package/dist/routes/disk.routes.js +16 -0
  114. package/dist/routes/disk.routes.js.map +1 -0
  115. package/dist/routes/index.d.ts +4 -0
  116. package/dist/routes/index.d.ts.map +1 -0
  117. package/dist/routes/index.js +64 -0
  118. package/dist/routes/index.js.map +1 -0
  119. package/dist/routes/samba.routes.d.ts +4 -0
  120. package/dist/routes/samba.routes.d.ts.map +1 -0
  121. package/dist/routes/samba.routes.js +20 -0
  122. package/dist/routes/samba.routes.js.map +1 -0
  123. package/dist/routes/share.routes.d.ts +4 -0
  124. package/dist/routes/share.routes.d.ts.map +1 -0
  125. package/dist/routes/share.routes.js +15 -0
  126. package/dist/routes/share.routes.js.map +1 -0
  127. package/dist/routes/system.routes.d.ts +4 -0
  128. package/dist/routes/system.routes.d.ts.map +1 -0
  129. package/dist/routes/system.routes.js +20 -0
  130. package/dist/routes/system.routes.js.map +1 -0
  131. package/dist/routes/user.routes.d.ts +5 -0
  132. package/dist/routes/user.routes.d.ts.map +1 -0
  133. package/dist/routes/user.routes.js +44 -0
  134. package/dist/routes/user.routes.js.map +1 -0
  135. package/dist/services/auth.service.d.ts +23 -0
  136. package/dist/services/auth.service.d.ts.map +1 -0
  137. package/dist/services/auth.service.js +62 -0
  138. package/dist/services/auth.service.js.map +1 -0
  139. package/dist/services/disk.service.d.ts +12 -0
  140. package/dist/services/disk.service.d.ts.map +1 -0
  141. package/dist/services/disk.service.js +34 -0
  142. package/dist/services/disk.service.js.map +1 -0
  143. package/dist/services/init.service.d.ts +8 -0
  144. package/dist/services/init.service.d.ts.map +1 -0
  145. package/dist/services/init.service.js +47 -0
  146. package/dist/services/init.service.js.map +1 -0
  147. package/dist/services/quota.service.d.ts +14 -0
  148. package/dist/services/quota.service.d.ts.map +1 -0
  149. package/dist/services/quota.service.js +32 -0
  150. package/dist/services/quota.service.js.map +1 -0
  151. package/dist/services/samba.service.d.ts +45 -0
  152. package/dist/services/samba.service.d.ts.map +1 -0
  153. package/dist/services/samba.service.js +61 -0
  154. package/dist/services/samba.service.js.map +1 -0
  155. package/dist/services/share.service.d.ts +18 -0
  156. package/dist/services/share.service.d.ts.map +1 -0
  157. package/dist/services/share.service.js +29 -0
  158. package/dist/services/share.service.js.map +1 -0
  159. package/dist/services/user.service.d.ts +48 -0
  160. package/dist/services/user.service.d.ts.map +1 -0
  161. package/dist/services/user.service.js +196 -0
  162. package/dist/services/user.service.js.map +1 -0
  163. package/dist/types/index.d.ts +7 -0
  164. package/dist/types/index.d.ts.map +1 -0
  165. package/dist/types/index.js +23 -0
  166. package/dist/types/index.js.map +1 -0
  167. package/dist/types/service.interfaces.d.ts +45 -0
  168. package/dist/types/service.interfaces.d.ts.map +1 -0
  169. package/dist/types/service.interfaces.js +3 -0
  170. package/dist/types/service.interfaces.js.map +1 -0
  171. package/package.json +63 -0
  172. package/prisma/schema.prisma +53 -0
  173. package/public/assets/Dashboard-BupoWE_7.js +1 -0
  174. package/public/assets/DiskManage-BY6Sy7T6.js +1 -0
  175. package/public/assets/InitWizard-CA9epEkr.css +1 -0
  176. package/public/assets/InitWizard-D5Xj7dX0.js +1 -0
  177. package/public/assets/Layout-D-CPXnPP.js +1 -0
  178. package/public/assets/Layout-DaQY8YzE.css +1 -0
  179. package/public/assets/LogViewer-CIJZzoXw.css +1 -0
  180. package/public/assets/LogViewer-DDAIjW9J.js +1 -0
  181. package/public/assets/Login-D92i6dQA.js +1 -0
  182. package/public/assets/Login-DimFYijw.css +1 -0
  183. package/public/assets/ServiceManage-CIWLurL_.css +1 -0
  184. package/public/assets/ServiceManage-D-ZWP7Ry.js +1 -0
  185. package/public/assets/ShareManage-BMsFoGea.js +1 -0
  186. package/public/assets/UserList-CqeA7r2Y.js +1 -0
  187. package/public/assets/index-B-crAlzg.css +1 -0
  188. package/public/assets/index-CfC5GCM9.js +100 -0
  189. package/public/index.html +14 -0
@@ -0,0 +1 @@
1
+ {"version":3,"file":"admin.repo.js","sourceRoot":"","sources":["../../src/repositories/admin.repo.ts"],"names":[],"mappings":";;;AAiBA,MAAa,eAAe;IACN;IAApB,YAAoB,MAAoB;QAApB,WAAM,GAAN,MAAM,CAAc;IAAG,CAAC;IAE5C,KAAK,CAAC,QAAQ,CAAC,EAAU;QACvB,OAAO,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,UAAU,CAAC,EAAE,KAAK,EAAE,EAAE,EAAE,EAAE,EAAE,CAAC,CAAA;IACxD,CAAC;IAED,KAAK,CAAC,cAAc,CAAC,QAAgB;QACnC,OAAO,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,UAAU,CAAC,EAAE,KAAK,EAAE,EAAE,QAAQ,EAAE,EAAE,CAAC,CAAA;IAC9D,CAAC;IAED,KAAK,CAAC,MAAM,CAAC,IAA0D;QACrE,OAAO,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,MAAM,CAAC,EAAE,IAAI,EAAE,CAAC,CAAA;IAC3C,CAAC;CACF;AAdD,0CAcC"}
@@ -0,0 +1,44 @@
1
+ export interface User {
2
+ id: number;
3
+ username: string;
4
+ password: string;
5
+ groupName: string;
6
+ sharePath: string;
7
+ quotaSoft: number;
8
+ quotaHard: number;
9
+ status: string;
10
+ createdAt: Date;
11
+ updatedAt: Date;
12
+ }
13
+ export interface CreateUserInput {
14
+ username: string;
15
+ password: string;
16
+ groupName: string;
17
+ sharePath: string;
18
+ quotaSoft: number;
19
+ quotaHard: number;
20
+ }
21
+ export interface UpdateUserInput {
22
+ password?: string;
23
+ groupName?: string;
24
+ quotaSoft?: number;
25
+ quotaHard?: number;
26
+ status?: string;
27
+ }
28
+ export interface ListParams {
29
+ page: number;
30
+ size: number;
31
+ q?: string;
32
+ }
33
+ export interface IUserRepository {
34
+ create(data: CreateUserInput): Promise<User>;
35
+ findById(id: number): Promise<User | null>;
36
+ findByUsername(username: string): Promise<User | null>;
37
+ list(params: ListParams): Promise<{
38
+ items: User[];
39
+ total: number;
40
+ }>;
41
+ update(id: number, data: UpdateUserInput): Promise<User>;
42
+ delete(id: number): Promise<void>;
43
+ }
44
+ //# sourceMappingURL=user.repo.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"user.repo.d.ts","sourceRoot":"","sources":["../../src/repositories/user.repo.ts"],"names":[],"mappings":"AAAA,MAAM,WAAW,IAAI;IACnB,EAAE,EAAE,MAAM,CAAA;IACV,QAAQ,EAAE,MAAM,CAAA;IAChB,QAAQ,EAAE,MAAM,CAAA;IAChB,SAAS,EAAE,MAAM,CAAA;IACjB,SAAS,EAAE,MAAM,CAAA;IACjB,SAAS,EAAE,MAAM,CAAA;IACjB,SAAS,EAAE,MAAM,CAAA;IACjB,MAAM,EAAE,MAAM,CAAA;IACd,SAAS,EAAE,IAAI,CAAA;IACf,SAAS,EAAE,IAAI,CAAA;CAChB;AAED,MAAM,WAAW,eAAe;IAC9B,QAAQ,EAAE,MAAM,CAAA;IAChB,QAAQ,EAAE,MAAM,CAAA;IAChB,SAAS,EAAE,MAAM,CAAA;IACjB,SAAS,EAAE,MAAM,CAAA;IACjB,SAAS,EAAE,MAAM,CAAA;IACjB,SAAS,EAAE,MAAM,CAAA;CAClB;AAED,MAAM,WAAW,eAAe;IAC9B,QAAQ,CAAC,EAAE,MAAM,CAAA;IACjB,SAAS,CAAC,EAAE,MAAM,CAAA;IAClB,SAAS,CAAC,EAAE,MAAM,CAAA;IAClB,SAAS,CAAC,EAAE,MAAM,CAAA;IAClB,MAAM,CAAC,EAAE,MAAM,CAAA;CAChB;AAED,MAAM,WAAW,UAAU;IACzB,IAAI,EAAE,MAAM,CAAA;IACZ,IAAI,EAAE,MAAM,CAAA;IACZ,CAAC,CAAC,EAAE,MAAM,CAAA;CACX;AAED,MAAM,WAAW,eAAe;IAC9B,MAAM,CAAC,IAAI,EAAE,eAAe,GAAG,OAAO,CAAC,IAAI,CAAC,CAAA;IAC5C,QAAQ,CAAC,EAAE,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,GAAG,IAAI,CAAC,CAAA;IAC1C,cAAc,CAAC,QAAQ,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,GAAG,IAAI,CAAC,CAAA;IACtD,IAAI,CAAC,MAAM,EAAE,UAAU,GAAG,OAAO,CAAC;QAAE,KAAK,EAAE,IAAI,EAAE,CAAC;QAAC,KAAK,EAAE,MAAM,CAAA;KAAE,CAAC,CAAA;IACnE,MAAM,CAAC,EAAE,EAAE,MAAM,EAAE,IAAI,EAAE,eAAe,GAAG,OAAO,CAAC,IAAI,CAAC,CAAA;IACxD,MAAM,CAAC,EAAE,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CAAA;CAClC"}
@@ -0,0 +1,3 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ //# sourceMappingURL=user.repo.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"user.repo.js","sourceRoot":"","sources":["../../src/repositories/user.repo.ts"],"names":[],"mappings":""}
@@ -0,0 +1,16 @@
1
+ import { PrismaClient } from '@prisma/client';
2
+ import { IUserRepository, User, CreateUserInput, UpdateUserInput, ListParams } from './user.repo';
3
+ export declare class SqliteUserRepo implements IUserRepository {
4
+ private prisma;
5
+ constructor(prisma: PrismaClient);
6
+ create(data: CreateUserInput): Promise<User>;
7
+ findById(id: number): Promise<User | null>;
8
+ findByUsername(username: string): Promise<User | null>;
9
+ list(params: ListParams): Promise<{
10
+ items: User[];
11
+ total: number;
12
+ }>;
13
+ update(id: number, data: UpdateUserInput): Promise<User>;
14
+ delete(id: number): Promise<void>;
15
+ }
16
+ //# sourceMappingURL=user.repo.sqlite.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"user.repo.sqlite.d.ts","sourceRoot":"","sources":["../../src/repositories/user.repo.sqlite.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,EAAE,MAAM,gBAAgB,CAAA;AAC7C,OAAO,EACL,eAAe,EACf,IAAI,EACJ,eAAe,EACf,eAAe,EACf,UAAU,EACX,MAAM,aAAa,CAAA;AAEpB,qBAAa,cAAe,YAAW,eAAe;IACxC,OAAO,CAAC,MAAM;gBAAN,MAAM,EAAE,YAAY;IAElC,MAAM,CAAC,IAAI,EAAE,eAAe,GAAG,OAAO,CAAC,IAAI,CAAC;IAI5C,QAAQ,CAAC,EAAE,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,GAAG,IAAI,CAAC;IAI1C,cAAc,CAAC,QAAQ,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,GAAG,IAAI,CAAC;IAItD,IAAI,CAAC,MAAM,EAAE,UAAU,GAAG,OAAO,CAAC;QAAE,KAAK,EAAE,IAAI,EAAE,CAAC;QAAC,KAAK,EAAE,MAAM,CAAA;KAAE,CAAC;IAwBnE,MAAM,CAAC,EAAE,EAAE,MAAM,EAAE,IAAI,EAAE,eAAe,GAAG,OAAO,CAAC,IAAI,CAAC;IAIxD,MAAM,CAAC,EAAE,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;CAGxC"}
@@ -0,0 +1,47 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.SqliteUserRepo = void 0;
4
+ class SqliteUserRepo {
5
+ prisma;
6
+ constructor(prisma) {
7
+ this.prisma = prisma;
8
+ }
9
+ async create(data) {
10
+ return this.prisma.user.create({ data });
11
+ }
12
+ async findById(id) {
13
+ return this.prisma.user.findUnique({ where: { id } });
14
+ }
15
+ async findByUsername(username) {
16
+ return this.prisma.user.findUnique({ where: { username } });
17
+ }
18
+ async list(params) {
19
+ const { page, size, q } = params;
20
+ const where = q
21
+ ? {
22
+ OR: [
23
+ { username: { contains: q } },
24
+ { groupName: { contains: q } },
25
+ ],
26
+ }
27
+ : {};
28
+ const [items, total] = await Promise.all([
29
+ this.prisma.user.findMany({
30
+ where,
31
+ skip: (page - 1) * size,
32
+ take: size,
33
+ orderBy: { createdAt: 'desc' },
34
+ }),
35
+ this.prisma.user.count({ where }),
36
+ ]);
37
+ return { items, total };
38
+ }
39
+ async update(id, data) {
40
+ return this.prisma.user.update({ where: { id }, data });
41
+ }
42
+ async delete(id) {
43
+ await this.prisma.user.delete({ where: { id } });
44
+ }
45
+ }
46
+ exports.SqliteUserRepo = SqliteUserRepo;
47
+ //# sourceMappingURL=user.repo.sqlite.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"user.repo.sqlite.js","sourceRoot":"","sources":["../../src/repositories/user.repo.sqlite.ts"],"names":[],"mappings":";;;AASA,MAAa,cAAc;IACL;IAApB,YAAoB,MAAoB;QAApB,WAAM,GAAN,MAAM,CAAc;IAAG,CAAC;IAE5C,KAAK,CAAC,MAAM,CAAC,IAAqB;QAChC,OAAO,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,MAAM,CAAC,EAAE,IAAI,EAAE,CAAC,CAAA;IAC1C,CAAC;IAED,KAAK,CAAC,QAAQ,CAAC,EAAU;QACvB,OAAO,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,UAAU,CAAC,EAAE,KAAK,EAAE,EAAE,EAAE,EAAE,EAAE,CAAC,CAAA;IACvD,CAAC;IAED,KAAK,CAAC,cAAc,CAAC,QAAgB;QACnC,OAAO,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,UAAU,CAAC,EAAE,KAAK,EAAE,EAAE,QAAQ,EAAE,EAAE,CAAC,CAAA;IAC7D,CAAC;IAED,KAAK,CAAC,IAAI,CAAC,MAAkB;QAC3B,MAAM,EAAE,IAAI,EAAE,IAAI,EAAE,CAAC,EAAE,GAAG,MAAM,CAAA;QAChC,MAAM,KAAK,GAAG,CAAC;YACb,CAAC,CAAC;gBACE,EAAE,EAAE;oBACF,EAAE,QAAQ,EAAE,EAAE,QAAQ,EAAE,CAAC,EAAE,EAAE;oBAC7B,EAAE,SAAS,EAAE,EAAE,QAAQ,EAAE,CAAC,EAAE,EAAE;iBAC/B;aACF;YACH,CAAC,CAAC,EAAE,CAAA;QAEN,MAAM,CAAC,KAAK,EAAE,KAAK,CAAC,GAAG,MAAM,OAAO,CAAC,GAAG,CAAC;YACvC,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,QAAQ,CAAC;gBACxB,KAAK;gBACL,IAAI,EAAE,CAAC,IAAI,GAAG,CAAC,CAAC,GAAG,IAAI;gBACvB,IAAI,EAAE,IAAI;gBACV,OAAO,EAAE,EAAE,SAAS,EAAE,MAAM,EAAE;aAC/B,CAAC;YACF,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,EAAE,KAAK,EAAE,CAAC;SAClC,CAAC,CAAA;QAEF,OAAO,EAAE,KAAK,EAAE,KAAK,EAAE,CAAA;IACzB,CAAC;IAED,KAAK,CAAC,MAAM,CAAC,EAAU,EAAE,IAAqB;QAC5C,OAAO,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,MAAM,CAAC,EAAE,KAAK,EAAE,EAAE,EAAE,EAAE,EAAE,IAAI,EAAE,CAAC,CAAA;IACzD,CAAC;IAED,KAAK,CAAC,MAAM,CAAC,EAAU;QACrB,MAAM,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,MAAM,CAAC,EAAE,KAAK,EAAE,EAAE,EAAE,EAAE,EAAE,CAAC,CAAA;IAClD,CAAC;CACF;AA9CD,wCA8CC"}
@@ -0,0 +1,4 @@
1
+ import { Router } from 'express';
2
+ import { AuthHandler } from '../handlers/auth.handler';
3
+ export declare function authRoutes(handler: AuthHandler): Router;
4
+ //# sourceMappingURL=auth.routes.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"auth.routes.d.ts","sourceRoot":"","sources":["../../src/routes/auth.routes.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,EAAE,MAAM,SAAS,CAAA;AAChC,OAAO,EAAE,WAAW,EAAE,MAAM,0BAA0B,CAAA;AAKtD,wBAAgB,UAAU,CAAC,OAAO,EAAE,WAAW,GAAG,MAAM,CAQvD"}
@@ -0,0 +1,15 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.authRoutes = authRoutes;
4
+ const express_1 = require("express");
5
+ const auth_1 = require("../middleware/auth");
6
+ const validate_1 = require("../middleware/validate");
7
+ const auth_dto_1 = require("../dto/auth.dto");
8
+ function authRoutes(handler) {
9
+ const router = (0, express_1.Router)();
10
+ router.post('/login', (0, validate_1.validate)(auth_dto_1.loginSchema), handler.login);
11
+ router.post('/refresh', (0, validate_1.validate)(auth_dto_1.refreshTokenSchema), handler.refresh);
12
+ router.get('/me', auth_1.authMiddleware, handler.me);
13
+ return router;
14
+ }
15
+ //# sourceMappingURL=auth.routes.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"auth.routes.js","sourceRoot":"","sources":["../../src/routes/auth.routes.ts"],"names":[],"mappings":";;AAMA,gCAQC;AAdD,qCAAgC;AAEhC,6CAAmD;AACnD,qDAAiD;AACjD,8CAAiE;AAEjE,SAAgB,UAAU,CAAC,OAAoB;IAC7C,MAAM,MAAM,GAAG,IAAA,gBAAM,GAAE,CAAA;IAEvB,MAAM,CAAC,IAAI,CAAC,QAAQ,EAAE,IAAA,mBAAQ,EAAC,sBAAW,CAAC,EAAE,OAAO,CAAC,KAAK,CAAC,CAAA;IAC3D,MAAM,CAAC,IAAI,CAAC,UAAU,EAAE,IAAA,mBAAQ,EAAC,6BAAkB,CAAC,EAAE,OAAO,CAAC,OAAO,CAAC,CAAA;IACtE,MAAM,CAAC,GAAG,CAAC,KAAK,EAAE,qBAAc,EAAE,OAAO,CAAC,EAAE,CAAC,CAAA;IAE7C,OAAO,MAAM,CAAA;AACf,CAAC"}
@@ -0,0 +1,4 @@
1
+ import { Router } from 'express';
2
+ import { DiskHandler } from '../handlers/disk.handler';
3
+ export declare function diskRoutes(handler: DiskHandler): Router;
4
+ //# sourceMappingURL=disk.routes.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"disk.routes.d.ts","sourceRoot":"","sources":["../../src/routes/disk.routes.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,EAAE,MAAM,SAAS,CAAA;AAChC,OAAO,EAAE,WAAW,EAAE,MAAM,0BAA0B,CAAA;AAGtD,wBAAgB,UAAU,CAAC,OAAO,EAAE,WAAW,GAAG,MAAM,CAYvD"}
@@ -0,0 +1,16 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.diskRoutes = diskRoutes;
4
+ const express_1 = require("express");
5
+ const auth_1 = require("../middleware/auth");
6
+ function diskRoutes(handler) {
7
+ const router = (0, express_1.Router)();
8
+ router.use(auth_1.authMiddleware);
9
+ router.get('/', handler.list);
10
+ router.post('/format', handler.format);
11
+ router.post('/mount', handler.mount);
12
+ router.post('/umount', handler.umount);
13
+ router.get('/usage', handler.usage);
14
+ return router;
15
+ }
16
+ //# sourceMappingURL=disk.routes.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"disk.routes.js","sourceRoot":"","sources":["../../src/routes/disk.routes.ts"],"names":[],"mappings":";;AAIA,gCAYC;AAhBD,qCAAgC;AAEhC,6CAAmD;AAEnD,SAAgB,UAAU,CAAC,OAAoB;IAC7C,MAAM,MAAM,GAAG,IAAA,gBAAM,GAAE,CAAA;IAEvB,MAAM,CAAC,GAAG,CAAC,qBAAc,CAAC,CAAA;IAE1B,MAAM,CAAC,GAAG,CAAC,GAAG,EAAE,OAAO,CAAC,IAAI,CAAC,CAAA;IAC7B,MAAM,CAAC,IAAI,CAAC,SAAS,EAAE,OAAO,CAAC,MAAM,CAAC,CAAA;IACtC,MAAM,CAAC,IAAI,CAAC,QAAQ,EAAE,OAAO,CAAC,KAAK,CAAC,CAAA;IACpC,MAAM,CAAC,IAAI,CAAC,SAAS,EAAE,OAAO,CAAC,MAAM,CAAC,CAAA;IACtC,MAAM,CAAC,GAAG,CAAC,QAAQ,EAAE,OAAO,CAAC,KAAK,CAAC,CAAA;IAEnC,OAAO,MAAM,CAAA;AACf,CAAC"}
@@ -0,0 +1,4 @@
1
+ import { Router } from 'express';
2
+ import { PrismaClient } from '@prisma/client';
3
+ export declare function registerRoutes(prisma: PrismaClient): Router;
4
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/routes/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,EAAE,MAAM,SAAS,CAAA;AAChC,OAAO,EAAE,YAAY,EAAE,MAAM,gBAAgB,CAAA;AA+B7C,wBAAgB,cAAc,CAAC,MAAM,EAAE,YAAY,GAAG,MAAM,CAuC3D"}
@@ -0,0 +1,64 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.registerRoutes = registerRoutes;
4
+ const express_1 = require("express");
5
+ const user_repo_sqlite_1 = require("../repositories/user.repo.sqlite");
6
+ const admin_repo_1 = require("../repositories/admin.repo");
7
+ const linux_user_operator_1 = require("../operators/linux-user.operator");
8
+ const samba_operator_1 = require("../operators/samba.operator");
9
+ const quota_operator_1 = require("../operators/quota.operator");
10
+ const disk_operator_1 = require("../operators/disk.operator");
11
+ const share_operator_1 = require("../operators/share.operator");
12
+ const auth_service_1 = require("../services/auth.service");
13
+ const user_service_1 = require("../services/user.service");
14
+ const quota_service_1 = require("../services/quota.service");
15
+ const samba_service_1 = require("../services/samba.service");
16
+ const disk_service_1 = require("../services/disk.service");
17
+ const share_service_1 = require("../services/share.service");
18
+ const auth_handler_1 = require("../handlers/auth.handler");
19
+ const user_handler_1 = require("../handlers/user.handler");
20
+ const samba_handler_1 = require("../handlers/samba.handler");
21
+ const disk_handler_1 = require("../handlers/disk.handler");
22
+ const share_handler_1 = require("../handlers/share.handler");
23
+ const system_handler_1 = require("../handlers/system.handler");
24
+ const auth_routes_1 = require("./auth.routes");
25
+ const user_routes_1 = require("./user.routes");
26
+ const samba_routes_1 = require("./samba.routes");
27
+ const disk_routes_1 = require("./disk.routes");
28
+ const share_routes_1 = require("./share.routes");
29
+ const system_routes_1 = require("./system.routes");
30
+ function registerRoutes(prisma) {
31
+ const router = (0, express_1.Router)();
32
+ // Operators
33
+ const userOp = new linux_user_operator_1.LinuxUserOperator();
34
+ const sambaOp = new samba_operator_1.SambaOperator();
35
+ const quotaOp = new quota_operator_1.QuotaOperator();
36
+ const diskOp = new disk_operator_1.DiskOperator();
37
+ const shareOp = new share_operator_1.ShareOperator();
38
+ // Repositories
39
+ const userRepo = new user_repo_sqlite_1.SqliteUserRepo(prisma);
40
+ const adminRepo = new admin_repo_1.SqliteAdminRepo(prisma);
41
+ // Services
42
+ const authService = new auth_service_1.AuthService(adminRepo);
43
+ const userService = new user_service_1.UserService(userRepo, userOp, sambaOp, quotaOp, shareOp);
44
+ const quotaService = new quota_service_1.QuotaService(userRepo, quotaOp);
45
+ const sambaService = new samba_service_1.SambaService(sambaOp);
46
+ const diskService = new disk_service_1.DiskService(diskOp);
47
+ const shareService = new share_service_1.ShareService(shareOp);
48
+ // Handlers
49
+ const authHandler = new auth_handler_1.AuthHandler(authService);
50
+ const userHandler = new user_handler_1.UserHandler(userService);
51
+ const sambaHandler = new samba_handler_1.SambaHandler(sambaService);
52
+ const diskHandler = new disk_handler_1.DiskHandler(diskService);
53
+ const shareHandler = new share_handler_1.ShareHandler(shareService);
54
+ const systemHandler = new system_handler_1.SystemHandler(prisma, sambaOp);
55
+ // Register routes
56
+ router.use('/api/v1/auth', (0, auth_routes_1.authRoutes)(authHandler));
57
+ router.use('/api/v1/users', (0, user_routes_1.userRoutes)(userHandler, quotaService));
58
+ router.use('/api/v1/samba', (0, samba_routes_1.sambaRoutes)(sambaHandler));
59
+ router.use('/api/v1/disks', (0, disk_routes_1.diskRoutes)(diskHandler));
60
+ router.use('/api/v1/shares', (0, share_routes_1.shareRoutes)(shareHandler));
61
+ router.use('/api/v1/system', (0, system_routes_1.systemRoutes)(systemHandler));
62
+ return router;
63
+ }
64
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/routes/index.ts"],"names":[],"mappings":";;AAgCA,wCAuCC;AAvED,qCAAgC;AAGhC,uEAAiE;AACjE,2DAA4D;AAC5D,0EAAoE;AACpE,gEAA2D;AAC3D,gEAA2D;AAC3D,8DAAyD;AACzD,gEAA2D;AAE3D,2DAAsD;AACtD,2DAAsD;AACtD,6DAAwD;AACxD,6DAAwD;AACxD,2DAAsD;AACtD,6DAAwD;AAExD,2DAAsD;AACtD,2DAAsD;AACtD,6DAAwD;AACxD,2DAAsD;AACtD,6DAAwD;AACxD,+DAA0D;AAE1D,+CAA0C;AAC1C,+CAA0C;AAC1C,iDAA4C;AAC5C,+CAA0C;AAC1C,iDAA4C;AAC5C,mDAA8C;AAE9C,SAAgB,cAAc,CAAC,MAAoB;IACjD,MAAM,MAAM,GAAG,IAAA,gBAAM,GAAE,CAAA;IAEvB,YAAY;IACZ,MAAM,MAAM,GAAG,IAAI,uCAAiB,EAAE,CAAA;IACtC,MAAM,OAAO,GAAG,IAAI,8BAAa,EAAE,CAAA;IACnC,MAAM,OAAO,GAAG,IAAI,8BAAa,EAAE,CAAA;IACnC,MAAM,MAAM,GAAG,IAAI,4BAAY,EAAE,CAAA;IACjC,MAAM,OAAO,GAAG,IAAI,8BAAa,EAAE,CAAA;IAEnC,eAAe;IACf,MAAM,QAAQ,GAAG,IAAI,iCAAc,CAAC,MAAM,CAAC,CAAA;IAC3C,MAAM,SAAS,GAAG,IAAI,4BAAe,CAAC,MAAM,CAAC,CAAA;IAE7C,WAAW;IACX,MAAM,WAAW,GAAG,IAAI,0BAAW,CAAC,SAAS,CAAC,CAAA;IAC9C,MAAM,WAAW,GAAG,IAAI,0BAAW,CAAC,QAAQ,EAAE,MAAM,EAAE,OAAO,EAAE,OAAO,EAAE,OAAO,CAAC,CAAA;IAChF,MAAM,YAAY,GAAG,IAAI,4BAAY,CAAC,QAAQ,EAAE,OAAO,CAAC,CAAA;IACxD,MAAM,YAAY,GAAG,IAAI,4BAAY,CAAC,OAAO,CAAC,CAAA;IAC9C,MAAM,WAAW,GAAG,IAAI,0BAAW,CAAC,MAAM,CAAC,CAAA;IAC3C,MAAM,YAAY,GAAG,IAAI,4BAAY,CAAC,OAAO,CAAC,CAAA;IAE9C,WAAW;IACX,MAAM,WAAW,GAAG,IAAI,0BAAW,CAAC,WAAW,CAAC,CAAA;IAChD,MAAM,WAAW,GAAG,IAAI,0BAAW,CAAC,WAAW,CAAC,CAAA;IAChD,MAAM,YAAY,GAAG,IAAI,4BAAY,CAAC,YAAY,CAAC,CAAA;IACnD,MAAM,WAAW,GAAG,IAAI,0BAAW,CAAC,WAAW,CAAC,CAAA;IAChD,MAAM,YAAY,GAAG,IAAI,4BAAY,CAAC,YAAY,CAAC,CAAA;IACnD,MAAM,aAAa,GAAG,IAAI,8BAAa,CAAC,MAAM,EAAE,OAAO,CAAC,CAAA;IAExD,kBAAkB;IAClB,MAAM,CAAC,GAAG,CAAC,cAAc,EAAE,IAAA,wBAAU,EAAC,WAAW,CAAC,CAAC,CAAA;IACnD,MAAM,CAAC,GAAG,CAAC,eAAe,EAAE,IAAA,wBAAU,EAAC,WAAW,EAAE,YAAY,CAAC,CAAC,CAAA;IAClE,MAAM,CAAC,GAAG,CAAC,eAAe,EAAE,IAAA,0BAAW,EAAC,YAAY,CAAC,CAAC,CAAA;IACtD,MAAM,CAAC,GAAG,CAAC,eAAe,EAAE,IAAA,wBAAU,EAAC,WAAW,CAAC,CAAC,CAAA;IACpD,MAAM,CAAC,GAAG,CAAC,gBAAgB,EAAE,IAAA,0BAAW,EAAC,YAAY,CAAC,CAAC,CAAA;IACvD,MAAM,CAAC,GAAG,CAAC,gBAAgB,EAAE,IAAA,4BAAY,EAAC,aAAa,CAAC,CAAC,CAAA;IAEzD,OAAO,MAAM,CAAA;AACf,CAAC"}
@@ -0,0 +1,4 @@
1
+ import { Router } from 'express';
2
+ import { SambaHandler } from '../handlers/samba.handler';
3
+ export declare function sambaRoutes(handler: SambaHandler): Router;
4
+ //# sourceMappingURL=samba.routes.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"samba.routes.d.ts","sourceRoot":"","sources":["../../src/routes/samba.routes.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,EAAE,MAAM,SAAS,CAAA;AAChC,OAAO,EAAE,YAAY,EAAE,MAAM,2BAA2B,CAAA;AAGxD,wBAAgB,WAAW,CAAC,OAAO,EAAE,YAAY,GAAG,MAAM,CAgBzD"}
@@ -0,0 +1,20 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.sambaRoutes = sambaRoutes;
4
+ const express_1 = require("express");
5
+ const auth_1 = require("../middleware/auth");
6
+ function sambaRoutes(handler) {
7
+ const router = (0, express_1.Router)();
8
+ router.use(auth_1.authMiddleware);
9
+ router.get('/status', handler.status);
10
+ router.post('/install', handler.install);
11
+ router.get('/install-stream', handler.installStream);
12
+ router.get('/uninstall-stream', handler.uninstallStream);
13
+ router.post('/start', handler.start);
14
+ router.post('/stop', handler.stop);
15
+ router.post('/restart', handler.restart);
16
+ router.get('/config', handler.getConfig);
17
+ router.put('/config', handler.updateConfig);
18
+ return router;
19
+ }
20
+ //# sourceMappingURL=samba.routes.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"samba.routes.js","sourceRoot":"","sources":["../../src/routes/samba.routes.ts"],"names":[],"mappings":";;AAIA,kCAgBC;AApBD,qCAAgC;AAEhC,6CAAmD;AAEnD,SAAgB,WAAW,CAAC,OAAqB;IAC/C,MAAM,MAAM,GAAG,IAAA,gBAAM,GAAE,CAAA;IAEvB,MAAM,CAAC,GAAG,CAAC,qBAAc,CAAC,CAAA;IAE1B,MAAM,CAAC,GAAG,CAAC,SAAS,EAAE,OAAO,CAAC,MAAM,CAAC,CAAA;IACrC,MAAM,CAAC,IAAI,CAAC,UAAU,EAAE,OAAO,CAAC,OAAO,CAAC,CAAA;IACxC,MAAM,CAAC,GAAG,CAAC,iBAAiB,EAAE,OAAO,CAAC,aAAa,CAAC,CAAA;IACpD,MAAM,CAAC,GAAG,CAAC,mBAAmB,EAAE,OAAO,CAAC,eAAe,CAAC,CAAA;IACxD,MAAM,CAAC,IAAI,CAAC,QAAQ,EAAE,OAAO,CAAC,KAAK,CAAC,CAAA;IACpC,MAAM,CAAC,IAAI,CAAC,OAAO,EAAE,OAAO,CAAC,IAAI,CAAC,CAAA;IAClC,MAAM,CAAC,IAAI,CAAC,UAAU,EAAE,OAAO,CAAC,OAAO,CAAC,CAAA;IACxC,MAAM,CAAC,GAAG,CAAC,SAAS,EAAE,OAAO,CAAC,SAAS,CAAC,CAAA;IACxC,MAAM,CAAC,GAAG,CAAC,SAAS,EAAE,OAAO,CAAC,YAAY,CAAC,CAAA;IAE3C,OAAO,MAAM,CAAA;AACf,CAAC"}
@@ -0,0 +1,4 @@
1
+ import { Router } from 'express';
2
+ import { ShareHandler } from '../handlers/share.handler';
3
+ export declare function shareRoutes(handler: ShareHandler): Router;
4
+ //# sourceMappingURL=share.routes.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"share.routes.d.ts","sourceRoot":"","sources":["../../src/routes/share.routes.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,EAAE,MAAM,SAAS,CAAA;AAChC,OAAO,EAAE,YAAY,EAAE,MAAM,2BAA2B,CAAA;AAGxD,wBAAgB,WAAW,CAAC,OAAO,EAAE,YAAY,GAAG,MAAM,CAWzD"}
@@ -0,0 +1,15 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.shareRoutes = shareRoutes;
4
+ const express_1 = require("express");
5
+ const auth_1 = require("../middleware/auth");
6
+ function shareRoutes(handler) {
7
+ const router = (0, express_1.Router)();
8
+ router.use(auth_1.authMiddleware);
9
+ router.get('/', handler.list);
10
+ router.post('/', handler.create);
11
+ router.delete('/:path', handler.remove);
12
+ router.put('/:path/permissions', handler.setPermissions);
13
+ return router;
14
+ }
15
+ //# sourceMappingURL=share.routes.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"share.routes.js","sourceRoot":"","sources":["../../src/routes/share.routes.ts"],"names":[],"mappings":";;AAIA,kCAWC;AAfD,qCAAgC;AAEhC,6CAAmD;AAEnD,SAAgB,WAAW,CAAC,OAAqB;IAC/C,MAAM,MAAM,GAAG,IAAA,gBAAM,GAAE,CAAA;IAEvB,MAAM,CAAC,GAAG,CAAC,qBAAc,CAAC,CAAA;IAE1B,MAAM,CAAC,GAAG,CAAC,GAAG,EAAE,OAAO,CAAC,IAAI,CAAC,CAAA;IAC7B,MAAM,CAAC,IAAI,CAAC,GAAG,EAAE,OAAO,CAAC,MAAM,CAAC,CAAA;IAChC,MAAM,CAAC,MAAM,CAAC,QAAQ,EAAE,OAAO,CAAC,MAAM,CAAC,CAAA;IACvC,MAAM,CAAC,GAAG,CAAC,oBAAoB,EAAE,OAAO,CAAC,cAAc,CAAC,CAAA;IAExD,OAAO,MAAM,CAAA;AACf,CAAC"}
@@ -0,0 +1,4 @@
1
+ import { Router } from 'express';
2
+ import { SystemHandler } from '../handlers/system.handler';
3
+ export declare function systemRoutes(handler: SystemHandler): Router;
4
+ //# sourceMappingURL=system.routes.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"system.routes.d.ts","sourceRoot":"","sources":["../../src/routes/system.routes.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,EAAE,MAAM,SAAS,CAAA;AAChC,OAAO,EAAE,aAAa,EAAE,MAAM,4BAA4B,CAAA;AAG1D,wBAAgB,YAAY,CAAC,OAAO,EAAE,aAAa,GAAG,MAAM,CAgB3D"}
@@ -0,0 +1,20 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.systemRoutes = systemRoutes;
4
+ const express_1 = require("express");
5
+ const auth_1 = require("../middleware/auth");
6
+ function systemRoutes(handler) {
7
+ const router = (0, express_1.Router)();
8
+ // Public endpoints (no auth)
9
+ router.get('/init-status', handler.initStatus);
10
+ router.post('/init', handler.init);
11
+ // Protected endpoints
12
+ router.use(auth_1.authMiddleware);
13
+ router.get('/storage', handler.storage);
14
+ router.get('/health', handler.health);
15
+ router.get('/info', handler.info);
16
+ router.get('/logs', handler.logs);
17
+ router.get('/logs/stream', handler.logsStream);
18
+ return router;
19
+ }
20
+ //# sourceMappingURL=system.routes.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"system.routes.js","sourceRoot":"","sources":["../../src/routes/system.routes.ts"],"names":[],"mappings":";;AAIA,oCAgBC;AApBD,qCAAgC;AAEhC,6CAAmD;AAEnD,SAAgB,YAAY,CAAC,OAAsB;IACjD,MAAM,MAAM,GAAG,IAAA,gBAAM,GAAE,CAAA;IAEvB,6BAA6B;IAC7B,MAAM,CAAC,GAAG,CAAC,cAAc,EAAE,OAAO,CAAC,UAAU,CAAC,CAAA;IAC9C,MAAM,CAAC,IAAI,CAAC,OAAO,EAAE,OAAO,CAAC,IAAI,CAAC,CAAA;IAElC,sBAAsB;IACtB,MAAM,CAAC,GAAG,CAAC,qBAAc,CAAC,CAAA;IAC1B,MAAM,CAAC,GAAG,CAAC,UAAU,EAAE,OAAO,CAAC,OAAO,CAAC,CAAA;IACvC,MAAM,CAAC,GAAG,CAAC,SAAS,EAAE,OAAO,CAAC,MAAM,CAAC,CAAA;IACrC,MAAM,CAAC,GAAG,CAAC,OAAO,EAAE,OAAO,CAAC,IAAI,CAAC,CAAA;IACjC,MAAM,CAAC,GAAG,CAAC,OAAO,EAAE,OAAO,CAAC,IAAI,CAAC,CAAA;IACjC,MAAM,CAAC,GAAG,CAAC,cAAc,EAAE,OAAO,CAAC,UAAU,CAAC,CAAA;IAE9C,OAAO,MAAM,CAAA;AACf,CAAC"}
@@ -0,0 +1,5 @@
1
+ import { Router } from 'express';
2
+ import { UserHandler } from '../handlers/user.handler';
3
+ import { QuotaService } from '../services/quota.service';
4
+ export declare function userRoutes(handler: UserHandler, quotaService: QuotaService): Router;
5
+ //# sourceMappingURL=user.routes.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"user.routes.d.ts","sourceRoot":"","sources":["../../src/routes/user.routes.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,EAAE,MAAM,SAAS,CAAA;AAChC,OAAO,EAAE,WAAW,EAAE,MAAM,0BAA0B,CAAA;AAatD,OAAO,EAAE,YAAY,EAAE,MAAM,2BAA2B,CAAA;AAGxD,wBAAgB,UAAU,CAAC,OAAO,EAAE,WAAW,EAAE,YAAY,EAAE,YAAY,GAAG,MAAM,CAuCnF"}
@@ -0,0 +1,44 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.userRoutes = userRoutes;
4
+ const express_1 = require("express");
5
+ const auth_1 = require("../middleware/auth");
6
+ const validate_1 = require("../middleware/validate");
7
+ const user_dto_1 = require("../dto/user.dto");
8
+ const response_1 = require("../lib/response");
9
+ function userRoutes(handler, quotaService) {
10
+ const router = (0, express_1.Router)();
11
+ // Public endpoint - user self-service password change
12
+ router.post('/change-password', (0, validate_1.validate)(user_dto_1.changePasswordSchema), handler.changePassword);
13
+ router.use(auth_1.authMiddleware);
14
+ router.get('/', (0, validate_1.validate)(user_dto_1.listUsersSchema), handler.list);
15
+ router.post('/', (0, validate_1.validate)(user_dto_1.createUserSchema), handler.create);
16
+ router.post('/batch', (0, validate_1.validate)(user_dto_1.batchUsersSchema), handler.batch);
17
+ router.get('/:id', (0, validate_1.validate)(user_dto_1.getUserSchema), handler.getById);
18
+ router.put('/:id', (0, validate_1.validate)(user_dto_1.updateUserSchema), handler.update);
19
+ router.delete('/:id', (0, validate_1.validate)(user_dto_1.deleteUserSchema), handler.delete);
20
+ router.post('/:id/disable', (0, validate_1.validate)(user_dto_1.getUserSchema), handler.disable);
21
+ router.post('/:id/enable', (0, validate_1.validate)(user_dto_1.getUserSchema), handler.enable);
22
+ // Quota sub-resource
23
+ router.get('/:id/quota', (0, validate_1.validate)(user_dto_1.getUserSchema), async (req, res, next) => {
24
+ try {
25
+ const result = await quotaService.get(Number(req.params.id));
26
+ (0, response_1.ok)(res, result);
27
+ }
28
+ catch (err) {
29
+ next(err);
30
+ }
31
+ });
32
+ router.put('/:id/quota', (0, validate_1.validate)(user_dto_1.updateQuotaSchema), async (req, res, next) => {
33
+ try {
34
+ const { quotaSoft, quotaHard } = req.body;
35
+ const result = await quotaService.update(Number(req.params.id), quotaSoft, quotaHard);
36
+ (0, response_1.ok)(res, result, '配额更新成功');
37
+ }
38
+ catch (err) {
39
+ next(err);
40
+ }
41
+ });
42
+ return router;
43
+ }
44
+ //# sourceMappingURL=user.routes.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"user.routes.js","sourceRoot":"","sources":["../../src/routes/user.routes.ts"],"names":[],"mappings":";;AAiBA,gCAuCC;AAxDD,qCAAgC;AAEhC,6CAAmD;AACnD,qDAAiD;AACjD,8CASwB;AAExB,8CAAoC;AAEpC,SAAgB,UAAU,CAAC,OAAoB,EAAE,YAA0B;IACzE,MAAM,MAAM,GAAG,IAAA,gBAAM,GAAE,CAAA;IAEvB,sDAAsD;IACtD,MAAM,CAAC,IAAI,CAAC,kBAAkB,EAAE,IAAA,mBAAQ,EAAC,+BAAoB,CAAC,EAAE,OAAO,CAAC,cAAc,CAAC,CAAA;IAEvF,MAAM,CAAC,GAAG,CAAC,qBAAc,CAAC,CAAA;IAE1B,MAAM,CAAC,GAAG,CAAC,GAAG,EAAE,IAAA,mBAAQ,EAAC,0BAAe,CAAC,EAAE,OAAO,CAAC,IAAI,CAAC,CAAA;IACxD,MAAM,CAAC,IAAI,CAAC,GAAG,EAAE,IAAA,mBAAQ,EAAC,2BAAgB,CAAC,EAAE,OAAO,CAAC,MAAM,CAAC,CAAA;IAC5D,MAAM,CAAC,IAAI,CAAC,QAAQ,EAAE,IAAA,mBAAQ,EAAC,2BAAgB,CAAC,EAAE,OAAO,CAAC,KAAK,CAAC,CAAA;IAEhE,MAAM,CAAC,GAAG,CAAC,MAAM,EAAE,IAAA,mBAAQ,EAAC,wBAAa,CAAC,EAAE,OAAO,CAAC,OAAO,CAAC,CAAA;IAC5D,MAAM,CAAC,GAAG,CAAC,MAAM,EAAE,IAAA,mBAAQ,EAAC,2BAAgB,CAAC,EAAE,OAAO,CAAC,MAAM,CAAC,CAAA;IAC9D,MAAM,CAAC,MAAM,CAAC,MAAM,EAAE,IAAA,mBAAQ,EAAC,2BAAgB,CAAC,EAAE,OAAO,CAAC,MAAM,CAAC,CAAA;IACjE,MAAM,CAAC,IAAI,CAAC,cAAc,EAAE,IAAA,mBAAQ,EAAC,wBAAa,CAAC,EAAE,OAAO,CAAC,OAAO,CAAC,CAAA;IACrE,MAAM,CAAC,IAAI,CAAC,aAAa,EAAE,IAAA,mBAAQ,EAAC,wBAAa,CAAC,EAAE,OAAO,CAAC,MAAM,CAAC,CAAA;IAEnE,qBAAqB;IACrB,MAAM,CAAC,GAAG,CAAC,YAAY,EAAE,IAAA,mBAAQ,EAAC,wBAAa,CAAC,EAAE,KAAK,EAAE,GAAG,EAAE,GAAG,EAAE,IAAI,EAAE,EAAE;QACzE,IAAI,CAAC;YACH,MAAM,MAAM,GAAG,MAAM,YAAY,CAAC,GAAG,CAAC,MAAM,CAAC,GAAG,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC,CAAA;YAC5D,IAAA,aAAE,EAAC,GAAG,EAAE,MAAM,CAAC,CAAA;QACjB,CAAC;QAAC,OAAO,GAAG,EAAE,CAAC;YACb,IAAI,CAAC,GAAG,CAAC,CAAA;QACX,CAAC;IACH,CAAC,CAAC,CAAA;IAEF,MAAM,CAAC,GAAG,CAAC,YAAY,EAAE,IAAA,mBAAQ,EAAC,4BAAiB,CAAC,EAAE,KAAK,EAAE,GAAG,EAAE,GAAG,EAAE,IAAI,EAAE,EAAE;QAC7E,IAAI,CAAC;YACH,MAAM,EAAE,SAAS,EAAE,SAAS,EAAE,GAAG,GAAG,CAAC,IAAI,CAAA;YACzC,MAAM,MAAM,GAAG,MAAM,YAAY,CAAC,MAAM,CAAC,MAAM,CAAC,GAAG,CAAC,MAAM,CAAC,EAAE,CAAC,EAAE,SAAS,EAAE,SAAS,CAAC,CAAA;YACrF,IAAA,aAAE,EAAC,GAAG,EAAE,MAAM,EAAE,QAAQ,CAAC,CAAA;QAC3B,CAAC;QAAC,OAAO,GAAG,EAAE,CAAC;YACb,IAAI,CAAC,GAAG,CAAC,CAAA;QACX,CAAC;IACH,CAAC,CAAC,CAAA;IAEF,OAAO,MAAM,CAAA;AACf,CAAC"}
@@ -0,0 +1,23 @@
1
+ import type { IAdminRepository } from '../repositories/admin.repo';
2
+ import type { IAuthService } from '../types/service.interfaces';
3
+ export declare class AuthService implements IAuthService {
4
+ private adminRepo;
5
+ constructor(adminRepo: IAdminRepository);
6
+ login(username: string, password: string): Promise<{
7
+ token: string;
8
+ user: {
9
+ id: number;
10
+ username: string;
11
+ role: string;
12
+ };
13
+ }>;
14
+ refreshToken(token: string): Promise<{
15
+ token: string;
16
+ }>;
17
+ getMe(userId: number): Promise<{
18
+ id: number;
19
+ username: string;
20
+ role: string;
21
+ }>;
22
+ }
23
+ //# sourceMappingURL=auth.service.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"auth.service.d.ts","sourceRoot":"","sources":["../../src/services/auth.service.ts"],"names":[],"mappings":"AAMA,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,4BAA4B,CAAA;AAClE,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,6BAA6B,CAAA;AAE/D,qBAAa,WAAY,YAAW,YAAY;IAClC,OAAO,CAAC,SAAS;gBAAT,SAAS,EAAE,gBAAgB;IAEzC,KAAK,CAAC,QAAQ,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM;;;;;;;;IA4BxC,YAAY,CAAC,KAAK,EAAE,MAAM;;;IAkB1B,KAAK,CAAC,MAAM,EAAE,MAAM;;;;;CAK3B"}
@@ -0,0 +1,62 @@
1
+ "use strict";
2
+ var __importDefault = (this && this.__importDefault) || function (mod) {
3
+ return (mod && mod.__esModule) ? mod : { "default": mod };
4
+ };
5
+ Object.defineProperty(exports, "__esModule", { value: true });
6
+ exports.AuthService = void 0;
7
+ const jsonwebtoken_1 = __importDefault(require("jsonwebtoken"));
8
+ const bcryptjs_1 = __importDefault(require("bcryptjs"));
9
+ const errors_1 = require("../lib/errors");
10
+ const auth_1 = require("../middleware/auth");
11
+ const logger_1 = require("../middleware/logger");
12
+ class AuthService {
13
+ adminRepo;
14
+ constructor(adminRepo) {
15
+ this.adminRepo = adminRepo;
16
+ }
17
+ async login(username, password) {
18
+ const admin = await this.adminRepo.findByUsername(username);
19
+ if (!admin) {
20
+ logger_1.logger.warn({ username }, '登录失败: 用户不存在');
21
+ throw errors_1.AppError.unauthorized('用户名或密码错误');
22
+ }
23
+ const valid = await bcryptjs_1.default.compare(password, admin.password);
24
+ if (!valid) {
25
+ logger_1.logger.warn({ username }, '登录失败: 密码错误');
26
+ throw errors_1.AppError.unauthorized('用户名或密码错误');
27
+ }
28
+ const payload = {
29
+ id: admin.id,
30
+ username: admin.username,
31
+ role: admin.role,
32
+ };
33
+ const secret = (0, auth_1.getJwtSecret)();
34
+ if (!secret)
35
+ throw errors_1.AppError.internal('系统未初始化');
36
+ const token = jsonwebtoken_1.default.sign(payload, secret, { expiresIn: '24h' });
37
+ logger_1.logger.info({ username: admin.username, role: admin.role }, '管理员登录成功');
38
+ return { token, user: { id: admin.id, username: admin.username, role: admin.role } };
39
+ }
40
+ async refreshToken(token) {
41
+ logger_1.logger.debug('刷新 Token');
42
+ const secret = (0, auth_1.getJwtSecret)();
43
+ if (!secret)
44
+ throw errors_1.AppError.internal('系统未初始化');
45
+ try {
46
+ const payload = jsonwebtoken_1.default.verify(token, secret);
47
+ const newToken = jsonwebtoken_1.default.sign({ id: payload.id, username: payload.username, role: payload.role }, secret, { expiresIn: '24h' });
48
+ return { token: newToken };
49
+ }
50
+ catch {
51
+ throw errors_1.AppError.unauthorized('Token 无效或已过期');
52
+ }
53
+ }
54
+ async getMe(userId) {
55
+ const admin = await this.adminRepo.findById(userId);
56
+ if (!admin)
57
+ throw errors_1.AppError.notFound('用户不存在');
58
+ return { id: admin.id, username: admin.username, role: admin.role };
59
+ }
60
+ }
61
+ exports.AuthService = AuthService;
62
+ //# sourceMappingURL=auth.service.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"auth.service.js","sourceRoot":"","sources":["../../src/services/auth.service.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,12 @@
1
+ import { IDiskOperator } from '../operators/disk.operator';
2
+ import type { IDiskService } from '../types/service.interfaces';
3
+ export declare class DiskService implements IDiskService {
4
+ private diskOp;
5
+ constructor(diskOp: IDiskOperator);
6
+ list(): Promise<import("../types").DiskInfo[]>;
7
+ format(device: string, fsType: string): Promise<void>;
8
+ mount(device: string, target: string, options?: string): Promise<void>;
9
+ umount(target: string): Promise<void>;
10
+ usage(mountPoint: string): Promise<import("../types").DiskUsage>;
11
+ }
12
+ //# sourceMappingURL=disk.service.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"disk.service.d.ts","sourceRoot":"","sources":["../../src/services/disk.service.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,aAAa,EAAE,MAAM,4BAA4B,CAAA;AAG1D,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,6BAA6B,CAAA;AAE/D,qBAAa,WAAY,YAAW,YAAY;IAClC,OAAO,CAAC,MAAM;gBAAN,MAAM,EAAE,aAAa;IAEnC,IAAI;IAIJ,MAAM,CAAC,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM;IAQrC,KAAK,CAAC,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,OAAO,CAAC,EAAE,MAAM;IAKtD,MAAM,CAAC,MAAM,EAAE,MAAM;IAKrB,KAAK,CAAC,UAAU,EAAE,MAAM;CAG/B"}
@@ -0,0 +1,34 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.DiskService = void 0;
4
+ const errors_1 = require("../lib/errors");
5
+ const logger_1 = require("../middleware/logger");
6
+ class DiskService {
7
+ diskOp;
8
+ constructor(diskOp) {
9
+ this.diskOp = diskOp;
10
+ }
11
+ async list() {
12
+ return this.diskOp.list();
13
+ }
14
+ async format(device, fsType) {
15
+ if (!device.startsWith('/dev/')) {
16
+ throw errors_1.AppError.badRequest('设备路径必须以 /dev/ 开头');
17
+ }
18
+ logger_1.logger.info({ device, fsType }, '格式化磁盘');
19
+ return this.diskOp.format(device, fsType);
20
+ }
21
+ async mount(device, target, options) {
22
+ logger_1.logger.info({ device, target, options }, '挂载磁盘');
23
+ return this.diskOp.mount(device, target, options);
24
+ }
25
+ async umount(target) {
26
+ logger_1.logger.info({ target }, '卸载磁盘');
27
+ return this.diskOp.umount(target);
28
+ }
29
+ async usage(mountPoint) {
30
+ return this.diskOp.usage(mountPoint);
31
+ }
32
+ }
33
+ exports.DiskService = DiskService;
34
+ //# sourceMappingURL=disk.service.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"disk.service.js","sourceRoot":"","sources":["../../src/services/disk.service.ts"],"names":[],"mappings":";;;AACA,0CAAwC;AACxC,iDAA6C;AAG7C,MAAa,WAAW;IACF;IAApB,YAAoB,MAAqB;QAArB,WAAM,GAAN,MAAM,CAAe;IAAG,CAAC;IAE7C,KAAK,CAAC,IAAI;QACR,OAAO,IAAI,CAAC,MAAM,CAAC,IAAI,EAAE,CAAA;IAC3B,CAAC;IAED,KAAK,CAAC,MAAM,CAAC,MAAc,EAAE,MAAc;QACzC,IAAI,CAAC,MAAM,CAAC,UAAU,CAAC,OAAO,CAAC,EAAE,CAAC;YAChC,MAAM,iBAAQ,CAAC,UAAU,CAAC,kBAAkB,CAAC,CAAA;QAC/C,CAAC;QACD,eAAM,CAAC,IAAI,CAAC,EAAE,MAAM,EAAE,MAAM,EAAE,EAAE,OAAO,CAAC,CAAA;QACxC,OAAO,IAAI,CAAC,MAAM,CAAC,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAA;IAC3C,CAAC;IAED,KAAK,CAAC,KAAK,CAAC,MAAc,EAAE,MAAc,EAAE,OAAgB;QAC1D,eAAM,CAAC,IAAI,CAAC,EAAE,MAAM,EAAE,MAAM,EAAE,OAAO,EAAE,EAAE,MAAM,CAAC,CAAA;QAChD,OAAO,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,MAAM,EAAE,MAAM,EAAE,OAAO,CAAC,CAAA;IACnD,CAAC;IAED,KAAK,CAAC,MAAM,CAAC,MAAc;QACzB,eAAM,CAAC,IAAI,CAAC,EAAE,MAAM,EAAE,EAAE,MAAM,CAAC,CAAA;QAC/B,OAAO,IAAI,CAAC,MAAM,CAAC,MAAM,CAAC,MAAM,CAAC,CAAA;IACnC,CAAC;IAED,KAAK,CAAC,KAAK,CAAC,UAAkB;QAC5B,OAAO,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,UAAU,CAAC,CAAA;IACtC,CAAC;CACF;AA5BD,kCA4BC"}
@@ -0,0 +1,8 @@
1
+ import { PrismaClient } from '@prisma/client';
2
+ export declare class InitService {
3
+ private prisma;
4
+ constructor(prisma: PrismaClient);
5
+ getInitStatus(): Promise<boolean>;
6
+ init(adminUsername: string, adminPassword: string, siteTitle?: string): Promise<void>;
7
+ }
8
+ //# sourceMappingURL=init.service.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"init.service.d.ts","sourceRoot":"","sources":["../../src/services/init.service.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,YAAY,EAAE,MAAM,gBAAgB,CAAA;AAI7C,qBAAa,WAAW;IACV,OAAO,CAAC,MAAM;gBAAN,MAAM,EAAE,YAAY;IAElC,aAAa,IAAI,OAAO,CAAC,OAAO,CAAC;IASjC,IAAI,CAAC,aAAa,EAAE,MAAM,EAAE,aAAa,EAAE,MAAM,EAAE,SAAS,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;CAwB5F"}