@aibrains/shared-types 0.1.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (158) hide show
  1. package/README.md +170 -0
  2. package/dist/index.d.ts +48 -0
  3. package/dist/index.d.ts.map +1 -0
  4. package/dist/index.js +74 -0
  5. package/dist/index.js.map +1 -0
  6. package/dist/mappers/edfi/calendar.mapper.d.ts +158 -0
  7. package/dist/mappers/edfi/calendar.mapper.d.ts.map +1 -0
  8. package/dist/mappers/edfi/calendar.mapper.js +235 -0
  9. package/dist/mappers/edfi/calendar.mapper.js.map +1 -0
  10. package/dist/mappers/edfi/credential.mapper.d.ts +50 -0
  11. package/dist/mappers/edfi/credential.mapper.d.ts.map +1 -0
  12. package/dist/mappers/edfi/credential.mapper.js +123 -0
  13. package/dist/mappers/edfi/credential.mapper.js.map +1 -0
  14. package/dist/mappers/edfi/index.d.ts +10 -0
  15. package/dist/mappers/edfi/index.d.ts.map +1 -0
  16. package/dist/mappers/edfi/index.js +26 -0
  17. package/dist/mappers/edfi/index.js.map +1 -0
  18. package/dist/mappers/edfi/staff.mapper.d.ts +96 -0
  19. package/dist/mappers/edfi/staff.mapper.d.ts.map +1 -0
  20. package/dist/mappers/edfi/staff.mapper.js +138 -0
  21. package/dist/mappers/edfi/staff.mapper.js.map +1 -0
  22. package/dist/mappers/index.d.ts +7 -0
  23. package/dist/mappers/index.d.ts.map +1 -0
  24. package/dist/mappers/index.js +23 -0
  25. package/dist/mappers/index.js.map +1 -0
  26. package/dist/schemas/academics/assignment.schema.d.ts +1463 -0
  27. package/dist/schemas/academics/assignment.schema.d.ts.map +1 -0
  28. package/dist/schemas/academics/assignment.schema.js +195 -0
  29. package/dist/schemas/academics/assignment.schema.js.map +1 -0
  30. package/dist/schemas/academics/attendance.schema.d.ts +762 -0
  31. package/dist/schemas/academics/attendance.schema.d.ts.map +1 -0
  32. package/dist/schemas/academics/attendance.schema.js +250 -0
  33. package/dist/schemas/academics/attendance.schema.js.map +1 -0
  34. package/dist/schemas/academics/classroom.schema.d.ts +742 -0
  35. package/dist/schemas/academics/classroom.schema.d.ts.map +1 -0
  36. package/dist/schemas/academics/classroom.schema.js +164 -0
  37. package/dist/schemas/academics/classroom.schema.js.map +1 -0
  38. package/dist/schemas/academics/course-section.schema.d.ts +388 -0
  39. package/dist/schemas/academics/course-section.schema.d.ts.map +1 -0
  40. package/dist/schemas/academics/course-section.schema.js +128 -0
  41. package/dist/schemas/academics/course-section.schema.js.map +1 -0
  42. package/dist/schemas/academics/course.schema.d.ts +778 -0
  43. package/dist/schemas/academics/course.schema.d.ts.map +1 -0
  44. package/dist/schemas/academics/course.schema.js +207 -0
  45. package/dist/schemas/academics/course.schema.js.map +1 -0
  46. package/dist/schemas/academics/grade.schema.d.ts +848 -0
  47. package/dist/schemas/academics/grade.schema.d.ts.map +1 -0
  48. package/dist/schemas/academics/grade.schema.js +251 -0
  49. package/dist/schemas/academics/grade.schema.js.map +1 -0
  50. package/dist/schemas/academics/index.d.ts +13 -0
  51. package/dist/schemas/academics/index.d.ts.map +1 -0
  52. package/dist/schemas/academics/index.js +29 -0
  53. package/dist/schemas/academics/index.js.map +1 -0
  54. package/dist/schemas/academics/student.schema.d.ts +2891 -0
  55. package/dist/schemas/academics/student.schema.d.ts.map +1 -0
  56. package/dist/schemas/academics/student.schema.js +249 -0
  57. package/dist/schemas/academics/student.schema.js.map +1 -0
  58. package/dist/schemas/common.d.ts +183 -0
  59. package/dist/schemas/common.d.ts.map +1 -0
  60. package/dist/schemas/common.js +126 -0
  61. package/dist/schemas/common.js.map +1 -0
  62. package/dist/schemas/enrollment/enrollment.schema.d.ts +2799 -0
  63. package/dist/schemas/enrollment/enrollment.schema.d.ts.map +1 -0
  64. package/dist/schemas/enrollment/enrollment.schema.js +435 -0
  65. package/dist/schemas/enrollment/enrollment.schema.js.map +1 -0
  66. package/dist/schemas/enrollment/index.d.ts +7 -0
  67. package/dist/schemas/enrollment/index.d.ts.map +1 -0
  68. package/dist/schemas/enrollment/index.js +23 -0
  69. package/dist/schemas/enrollment/index.js.map +1 -0
  70. package/dist/schemas/identity/academic-year.schema.d.ts +546 -0
  71. package/dist/schemas/identity/academic-year.schema.d.ts.map +1 -0
  72. package/dist/schemas/identity/academic-year.schema.js +137 -0
  73. package/dist/schemas/identity/academic-year.schema.js.map +1 -0
  74. package/dist/schemas/identity/auth.schema.d.ts +670 -0
  75. package/dist/schemas/identity/auth.schema.d.ts.map +1 -0
  76. package/dist/schemas/identity/auth.schema.js +126 -0
  77. package/dist/schemas/identity/auth.schema.js.map +1 -0
  78. package/dist/schemas/identity/bell-schedule.schema.d.ts +630 -0
  79. package/dist/schemas/identity/bell-schedule.schema.d.ts.map +1 -0
  80. package/dist/schemas/identity/bell-schedule.schema.js +143 -0
  81. package/dist/schemas/identity/bell-schedule.schema.js.map +1 -0
  82. package/dist/schemas/identity/calendar-date.schema.d.ts +830 -0
  83. package/dist/schemas/identity/calendar-date.schema.d.ts.map +1 -0
  84. package/dist/schemas/identity/calendar-date.schema.js +208 -0
  85. package/dist/schemas/identity/calendar-date.schema.js.map +1 -0
  86. package/dist/schemas/identity/credential.schema.d.ts +472 -0
  87. package/dist/schemas/identity/credential.schema.d.ts.map +1 -0
  88. package/dist/schemas/identity/credential.schema.js +200 -0
  89. package/dist/schemas/identity/credential.schema.js.map +1 -0
  90. package/dist/schemas/identity/department.schema.d.ts +567 -0
  91. package/dist/schemas/identity/department.schema.d.ts.map +1 -0
  92. package/dist/schemas/identity/department.schema.js +113 -0
  93. package/dist/schemas/identity/department.schema.js.map +1 -0
  94. package/dist/schemas/identity/index.d.ts +21 -0
  95. package/dist/schemas/identity/index.d.ts.map +1 -0
  96. package/dist/schemas/identity/index.js +39 -0
  97. package/dist/schemas/identity/index.js.map +1 -0
  98. package/dist/schemas/identity/leave.schema.d.ts +725 -0
  99. package/dist/schemas/identity/leave.schema.d.ts.map +1 -0
  100. package/dist/schemas/identity/leave.schema.js +204 -0
  101. package/dist/schemas/identity/leave.schema.js.map +1 -0
  102. package/dist/schemas/identity/role.schema.d.ts +356 -0
  103. package/dist/schemas/identity/role.schema.d.ts.map +1 -0
  104. package/dist/schemas/identity/role.schema.js +124 -0
  105. package/dist/schemas/identity/role.schema.js.map +1 -0
  106. package/dist/schemas/identity/school-year.schema.d.ts +303 -0
  107. package/dist/schemas/identity/school-year.schema.d.ts.map +1 -0
  108. package/dist/schemas/identity/school-year.schema.js +59 -0
  109. package/dist/schemas/identity/school-year.schema.js.map +1 -0
  110. package/dist/schemas/identity/school.schema.d.ts +844 -0
  111. package/dist/schemas/identity/school.schema.d.ts.map +1 -0
  112. package/dist/schemas/identity/school.schema.js +139 -0
  113. package/dist/schemas/identity/school.schema.js.map +1 -0
  114. package/dist/schemas/identity/security.schema.d.ts +422 -0
  115. package/dist/schemas/identity/security.schema.d.ts.map +1 -0
  116. package/dist/schemas/identity/security.schema.js +151 -0
  117. package/dist/schemas/identity/security.schema.js.map +1 -0
  118. package/dist/schemas/identity/session.schema.d.ts +193 -0
  119. package/dist/schemas/identity/session.schema.d.ts.map +1 -0
  120. package/dist/schemas/identity/session.schema.js +59 -0
  121. package/dist/schemas/identity/session.schema.js.map +1 -0
  122. package/dist/schemas/identity/staff.schema.d.ts +1037 -0
  123. package/dist/schemas/identity/staff.schema.d.ts.map +1 -0
  124. package/dist/schemas/identity/staff.schema.js +251 -0
  125. package/dist/schemas/identity/staff.schema.js.map +1 -0
  126. package/dist/schemas/identity/tenant.schema.d.ts +313 -0
  127. package/dist/schemas/identity/tenant.schema.d.ts.map +1 -0
  128. package/dist/schemas/identity/tenant.schema.js +81 -0
  129. package/dist/schemas/identity/tenant.schema.js.map +1 -0
  130. package/dist/schemas/identity/user.schema.d.ts +921 -0
  131. package/dist/schemas/identity/user.schema.d.ts.map +1 -0
  132. package/dist/schemas/identity/user.schema.js +201 -0
  133. package/dist/schemas/identity/user.schema.js.map +1 -0
  134. package/dist/schemas/index.d.ts +10 -0
  135. package/dist/schemas/index.d.ts.map +1 -0
  136. package/dist/schemas/index.js +26 -0
  137. package/dist/schemas/index.js.map +1 -0
  138. package/dist/validators/academic-year.d.ts +90 -0
  139. package/dist/validators/academic-year.d.ts.map +1 -0
  140. package/dist/validators/academic-year.js +190 -0
  141. package/dist/validators/academic-year.js.map +1 -0
  142. package/dist/validators/date-range.d.ts +142 -0
  143. package/dist/validators/date-range.d.ts.map +1 -0
  144. package/dist/validators/date-range.js +170 -0
  145. package/dist/validators/date-range.js.map +1 -0
  146. package/dist/validators/grade-level.d.ts +80 -0
  147. package/dist/validators/grade-level.d.ts.map +1 -0
  148. package/dist/validators/grade-level.js +157 -0
  149. package/dist/validators/grade-level.js.map +1 -0
  150. package/dist/validators/index.d.ts +10 -0
  151. package/dist/validators/index.d.ts.map +1 -0
  152. package/dist/validators/index.js +26 -0
  153. package/dist/validators/index.js.map +1 -0
  154. package/dist/validators/password.d.ts +60 -0
  155. package/dist/validators/password.d.ts.map +1 -0
  156. package/dist/validators/password.js +81 -0
  157. package/dist/validators/password.js.map +1 -0
  158. package/package.json +50 -0
@@ -0,0 +1 @@
1
+ {"version":3,"file":"school.schema.d.ts","sourceRoot":"","sources":["../../../src/schemas/identity/school.schema.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAOxB,eAAO,MAAM,gBAAgB,6GAS3B,CAAC;AACH,MAAM,MAAM,UAAU,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,gBAAgB,CAAC,CAAC;AAE1D,eAAO,MAAM,kBAAkB,mEAM7B,CAAC;AACH,MAAM,MAAM,YAAY,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,kBAAkB,CAAC,CAAC;AAE9D,eAAO,MAAM,0BAA0B,iDAA+C,CAAC;AACvF,MAAM,MAAM,oBAAoB,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,0BAA0B,CAAC,CAAC;AAM9E,eAAO,MAAM,uBAAuB;;;;;;;;;;;;;;;;;;;;;EAOlC,CAAC;AAEH,MAAM,MAAM,oBAAoB,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,uBAAuB,CAAC,CAAC;AAM3E,eAAO,MAAM,sBAAsB;;;;;;;;;EAGjC,CAAC;AAEH,MAAM,MAAM,mBAAmB,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,sBAAsB,CAAC,CAAC;AAMzE,eAAO,MAAM,mBAAmB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EAU9B,CAAC;AAEH,MAAM,MAAM,gBAAgB,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,mBAAmB,CAAC,CAAC;AAMnE,eAAO,MAAM,kBAAkB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EAiB7B,CAAC;AAEH,MAAM,MAAM,eAAe,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,kBAAkB,CAAC,CAAC;AAMjE,eAAO,MAAM,kBAAkB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EAiB7B,CAAC;AAEH,MAAM,MAAM,eAAe,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,kBAAkB,CAAC,CAAC;AAMjE,eAAO,MAAM,oBAAoB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EAyB/B,CAAC;AAEH,MAAM,MAAM,iBAAiB,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,oBAAoB,CAAC,CAAC;AAMrE,eAAO,MAAM,wBAAwB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EAAsD,CAAC;AAC5F,MAAM,MAAM,qBAAqB,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,wBAAwB,CAAC,CAAC"}
@@ -0,0 +1,139 @@
1
+ "use strict";
2
+ /**
3
+ * School Schemas - Identity Service
4
+ *
5
+ * Zod schemas for school management DTOs.
6
+ */
7
+ Object.defineProperty(exports, "__esModule", { value: true });
8
+ exports.schoolListResponseSchema = exports.schoolResponseSchema = exports.updateSchoolSchema = exports.createSchoolSchema = exports.schoolAddressSchema = exports.schoolGradeRangeSchema = exports.schoolContactInfoSchema = exports.academicCalendarTypeSchema = exports.schoolStatusSchema = exports.schoolTypeSchema = void 0;
9
+ const zod_1 = require("zod");
10
+ const common_1 = require("../common");
11
+ // ============================================
12
+ // Enums
13
+ // ============================================
14
+ exports.schoolTypeSchema = zod_1.z.enum([
15
+ 'elementary',
16
+ 'middle',
17
+ 'high',
18
+ 'k12',
19
+ 'charter',
20
+ 'private',
21
+ 'vocational',
22
+ 'special_education',
23
+ ]);
24
+ exports.schoolStatusSchema = zod_1.z.enum([
25
+ 'active',
26
+ 'inactive',
27
+ 'setup',
28
+ 'suspended',
29
+ 'closed',
30
+ ]);
31
+ exports.academicCalendarTypeSchema = zod_1.z.enum(['semester', 'quarter', 'trimester']);
32
+ // ============================================
33
+ // Contact Info Schema
34
+ // ============================================
35
+ exports.schoolContactInfoSchema = zod_1.z.object({
36
+ primaryEmail: common_1.emailSchema,
37
+ primaryPhone: zod_1.z.string().min(10).max(20),
38
+ secondaryPhone: zod_1.z.string().min(10).max(20).optional(),
39
+ website: common_1.urlSchema.optional(),
40
+ fax: zod_1.z.string().max(20).optional(),
41
+ schoolEmail: common_1.emailSchema.optional(),
42
+ });
43
+ // ============================================
44
+ // School Grade Range Schema (e.g., K-5, 6-8)
45
+ // ============================================
46
+ exports.schoolGradeRangeSchema = zod_1.z.object({
47
+ start: zod_1.z.string().min(1),
48
+ end: zod_1.z.string().min(1),
49
+ });
50
+ // ============================================
51
+ // School Address Schema (Enhanced with coordinates)
52
+ // ============================================
53
+ exports.schoolAddressSchema = zod_1.z.object({
54
+ street1: zod_1.z.string().min(1).max(200),
55
+ street2: zod_1.z.string().max(200).optional(),
56
+ city: zod_1.z.string().min(1).max(100),
57
+ state: zod_1.z.string().min(1).max(100),
58
+ zipCode: zod_1.z.string().min(1).max(20),
59
+ country: zod_1.z.string().max(100).optional(),
60
+ latitude: zod_1.z.number().min(-90).max(90).optional(),
61
+ longitude: zod_1.z.number().min(-180).max(180).optional(),
62
+ timezone: zod_1.z.string().optional(),
63
+ });
64
+ // ============================================
65
+ // Create School Schema
66
+ // ============================================
67
+ exports.createSchoolSchema = zod_1.z.object({
68
+ schoolCode: zod_1.z.string().min(2).max(10),
69
+ name: zod_1.z.string().min(2).max(100),
70
+ shortName: zod_1.z.string().max(50).optional(),
71
+ schoolType: exports.schoolTypeSchema,
72
+ gradeRange: exports.schoolGradeRangeSchema,
73
+ phone: common_1.phoneSchema.optional(),
74
+ email: common_1.emailSchema.optional(),
75
+ website: common_1.urlSchema.optional(),
76
+ address: exports.schoolAddressSchema.optional(),
77
+ contactInfo: exports.schoolContactInfoSchema.optional(),
78
+ principalName: zod_1.z.string().max(100).optional(),
79
+ principalEmail: common_1.emailSchema.optional(),
80
+ timezone: zod_1.z.string().default('America/Chicago'),
81
+ locale: zod_1.z.string().default('en-US'),
82
+ academicCalendarType: exports.academicCalendarTypeSchema.default('semester'),
83
+ logoUrl: common_1.urlSchema.optional(),
84
+ });
85
+ // ============================================
86
+ // Update School Schema
87
+ // ============================================
88
+ exports.updateSchoolSchema = zod_1.z.object({
89
+ name: zod_1.z.string().min(2).max(100).optional(),
90
+ shortName: zod_1.z.string().max(50).optional(),
91
+ schoolType: exports.schoolTypeSchema.optional(),
92
+ gradeRange: exports.schoolGradeRangeSchema.optional(),
93
+ phone: common_1.phoneSchema.optional(),
94
+ email: common_1.emailSchema.optional(),
95
+ website: common_1.urlSchema.optional(),
96
+ address: exports.schoolAddressSchema.optional(),
97
+ contactInfo: exports.schoolContactInfoSchema.partial().optional(),
98
+ principalName: zod_1.z.string().max(100).optional(),
99
+ principalEmail: common_1.emailSchema.optional(),
100
+ status: exports.schoolStatusSchema.optional(),
101
+ timezone: zod_1.z.string().optional(),
102
+ locale: zod_1.z.string().optional(),
103
+ currentAcademicYearId: zod_1.z.string().uuid().optional(),
104
+ logoUrl: common_1.urlSchema.optional(),
105
+ });
106
+ // ============================================
107
+ // School Response Schema
108
+ // ============================================
109
+ exports.schoolResponseSchema = zod_1.z.object({
110
+ schoolId: zod_1.z.string().uuid(),
111
+ schoolCode: zod_1.z.string(),
112
+ name: zod_1.z.string(),
113
+ shortName: zod_1.z.string().optional(),
114
+ schoolType: exports.schoolTypeSchema,
115
+ gradeRange: exports.schoolGradeRangeSchema,
116
+ phone: zod_1.z.string().optional(),
117
+ email: zod_1.z.string().optional(),
118
+ website: zod_1.z.string().optional(),
119
+ address: exports.schoolAddressSchema.optional(),
120
+ contactInfo: exports.schoolContactInfoSchema.optional(),
121
+ principalName: zod_1.z.string().optional(),
122
+ principalEmail: zod_1.z.string().optional(),
123
+ status: exports.schoolStatusSchema,
124
+ timezone: zod_1.z.string(),
125
+ locale: zod_1.z.string(),
126
+ academicCalendarType: exports.academicCalendarTypeSchema,
127
+ currentAcademicYearId: zod_1.z.string().uuid().optional(),
128
+ studentCount: zod_1.z.number().int().min(0).optional(),
129
+ staffCount: zod_1.z.number().int().min(0).optional(),
130
+ teacherCount: zod_1.z.number().int().min(0).optional(),
131
+ logoUrl: zod_1.z.string().optional(),
132
+ createdAt: common_1.isoDateSchema,
133
+ updatedAt: common_1.isoDateSchema,
134
+ });
135
+ // ============================================
136
+ // School List Response Schema
137
+ // ============================================
138
+ exports.schoolListResponseSchema = (0, common_1.createPaginatedResponseSchema)(exports.schoolResponseSchema);
139
+ //# sourceMappingURL=school.schema.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"school.schema.js","sourceRoot":"","sources":["../../../src/schemas/identity/school.schema.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,422 @@
1
+ /**
2
+ * Security Schemas - Identity Service
3
+ *
4
+ * Zod schemas for security-related DTOs.
5
+ *
6
+ * ============================================
7
+ * PASSWORD VALIDATION - COGNITO IS SOURCE OF TRUTH
8
+ * ============================================
9
+ *
10
+ * AWS Cognito User Pool password policy (from server/lib/tenant-template/identity-provider.ts):
11
+ * passwordPolicy: {
12
+ * minLength: 8,
13
+ * requireLowercase: true,
14
+ * requireUppercase: true,
15
+ * requireDigits: true,
16
+ * requireSymbols: true // Uses Cognito's default symbol set
17
+ * }
18
+ *
19
+ * Cognito's default special characters when requireSymbols=true:
20
+ * ^ $ * . [ ] { } ( ) ? " ! @ # % & / \ , > < ' : ; | _ ~ ` + = -
21
+ *
22
+ * @see https://docs.aws.amazon.com/cognito/latest/developerguide/user-pool-settings-policies.html
23
+ */
24
+ import { z } from 'zod';
25
+ import { passwordSchema, COGNITO_PASSWORD_REQUIREMENTS } from '../../validators/password';
26
+ export { passwordSchema, COGNITO_PASSWORD_REQUIREMENTS };
27
+ export declare const mfaMethodSchema: z.ZodEnum<["totp", "sms"]>;
28
+ export type MfaMethod = z.infer<typeof mfaMethodSchema>;
29
+ export declare const loginStatusSchema: z.ZodEnum<["success", "failed", "blocked"]>;
30
+ export type LoginStatus = z.infer<typeof loginStatusSchema>;
31
+ export declare const deviceTypeSchema: z.ZodEnum<["desktop", "mobile", "tablet", "unknown"]>;
32
+ export type DeviceType = z.infer<typeof deviceTypeSchema>;
33
+ export declare const securityOverviewSchema: z.ZodObject<{
34
+ userId: z.ZodString;
35
+ email: z.ZodString;
36
+ mfaEnabled: z.ZodBoolean;
37
+ mfaMethod: z.ZodOptional<z.ZodEnum<["totp", "sms"]>>;
38
+ lastLoginAt: z.ZodOptional<z.ZodString>;
39
+ lastLoginIp: z.ZodOptional<z.ZodString>;
40
+ lastLoginDevice: z.ZodOptional<z.ZodString>;
41
+ passwordLastChangedAt: z.ZodOptional<z.ZodString>;
42
+ accountLocked: z.ZodBoolean;
43
+ lockExpiresAt: z.ZodOptional<z.ZodString>;
44
+ failedLoginAttempts: z.ZodNumber;
45
+ activeSessions: z.ZodNumber;
46
+ securityScore: z.ZodNumber;
47
+ recommendations: z.ZodArray<z.ZodString, "many">;
48
+ }, "strip", z.ZodTypeAny, {
49
+ userId: string;
50
+ email: string;
51
+ mfaEnabled: boolean;
52
+ accountLocked: boolean;
53
+ failedLoginAttempts: number;
54
+ activeSessions: number;
55
+ securityScore: number;
56
+ recommendations: string[];
57
+ lastLoginAt?: string | undefined;
58
+ mfaMethod?: "sms" | "totp" | undefined;
59
+ lastLoginIp?: string | undefined;
60
+ lastLoginDevice?: string | undefined;
61
+ passwordLastChangedAt?: string | undefined;
62
+ lockExpiresAt?: string | undefined;
63
+ }, {
64
+ userId: string;
65
+ email: string;
66
+ mfaEnabled: boolean;
67
+ accountLocked: boolean;
68
+ failedLoginAttempts: number;
69
+ activeSessions: number;
70
+ securityScore: number;
71
+ recommendations: string[];
72
+ lastLoginAt?: string | undefined;
73
+ mfaMethod?: "sms" | "totp" | undefined;
74
+ lastLoginIp?: string | undefined;
75
+ lastLoginDevice?: string | undefined;
76
+ passwordLastChangedAt?: string | undefined;
77
+ lockExpiresAt?: string | undefined;
78
+ }>;
79
+ export type SecurityOverviewDto = z.infer<typeof securityOverviewSchema>;
80
+ export declare const changePasswordSchema: z.ZodObject<{
81
+ currentPassword: z.ZodString;
82
+ newPassword: z.ZodString;
83
+ }, "strip", z.ZodTypeAny, {
84
+ currentPassword: string;
85
+ newPassword: string;
86
+ }, {
87
+ currentPassword: string;
88
+ newPassword: string;
89
+ }>;
90
+ export type ChangePasswordDto = z.infer<typeof changePasswordSchema>;
91
+ export declare const changePasswordResponseSchema: z.ZodObject<{
92
+ success: z.ZodBoolean;
93
+ message: z.ZodString;
94
+ passwordLastChangedAt: z.ZodString;
95
+ }, "strip", z.ZodTypeAny, {
96
+ message: string;
97
+ success: boolean;
98
+ passwordLastChangedAt: string;
99
+ }, {
100
+ message: string;
101
+ success: boolean;
102
+ passwordLastChangedAt: string;
103
+ }>;
104
+ export type ChangePasswordResponseDto = z.infer<typeof changePasswordResponseSchema>;
105
+ export declare const passwordErrorResponseSchema: z.ZodObject<{
106
+ statusCode: z.ZodNumber;
107
+ errorCode: z.ZodString;
108
+ message: z.ZodString;
109
+ field: z.ZodOptional<z.ZodString>;
110
+ }, "strip", z.ZodTypeAny, {
111
+ message: string;
112
+ statusCode: number;
113
+ errorCode: string;
114
+ field?: string | undefined;
115
+ }, {
116
+ message: string;
117
+ statusCode: number;
118
+ errorCode: string;
119
+ field?: string | undefined;
120
+ }>;
121
+ export type PasswordErrorResponseDto = z.infer<typeof passwordErrorResponseSchema>;
122
+ export declare const mfaSetupResponseSchema: z.ZodObject<{
123
+ secretKey: z.ZodString;
124
+ qrCodeUrl: z.ZodString;
125
+ manualEntryKey: z.ZodString;
126
+ expiresAt: z.ZodString;
127
+ }, "strip", z.ZodTypeAny, {
128
+ secretKey: string;
129
+ qrCodeUrl: string;
130
+ manualEntryKey: string;
131
+ expiresAt: string;
132
+ }, {
133
+ secretKey: string;
134
+ qrCodeUrl: string;
135
+ manualEntryKey: string;
136
+ expiresAt: string;
137
+ }>;
138
+ export type MfaSetupResponseDto = z.infer<typeof mfaSetupResponseSchema>;
139
+ export declare const mfaVerifySchema: z.ZodObject<{
140
+ code: z.ZodString;
141
+ secretKey: z.ZodOptional<z.ZodString>;
142
+ }, "strip", z.ZodTypeAny, {
143
+ code: string;
144
+ secretKey?: string | undefined;
145
+ }, {
146
+ code: string;
147
+ secretKey?: string | undefined;
148
+ }>;
149
+ export type MfaVerifyDto = z.infer<typeof mfaVerifySchema>;
150
+ export declare const mfaVerifyResponseSchema: z.ZodObject<{
151
+ success: z.ZodBoolean;
152
+ backupCodes: z.ZodOptional<z.ZodArray<z.ZodString, "many">>;
153
+ message: z.ZodString;
154
+ }, "strip", z.ZodTypeAny, {
155
+ message: string;
156
+ success: boolean;
157
+ backupCodes?: string[] | undefined;
158
+ }, {
159
+ message: string;
160
+ success: boolean;
161
+ backupCodes?: string[] | undefined;
162
+ }>;
163
+ export type MfaVerifyResponseDto = z.infer<typeof mfaVerifyResponseSchema>;
164
+ export declare const mfaDisableSchema: z.ZodObject<{
165
+ password: z.ZodString;
166
+ code: z.ZodOptional<z.ZodString>;
167
+ }, "strip", z.ZodTypeAny, {
168
+ password: string;
169
+ code?: string | undefined;
170
+ }, {
171
+ password: string;
172
+ code?: string | undefined;
173
+ }>;
174
+ export type MfaDisableDto = z.infer<typeof mfaDisableSchema>;
175
+ export declare const mfaDisableResponseSchema: z.ZodObject<{
176
+ success: z.ZodBoolean;
177
+ message: z.ZodString;
178
+ }, "strip", z.ZodTypeAny, {
179
+ message: string;
180
+ success: boolean;
181
+ }, {
182
+ message: string;
183
+ success: boolean;
184
+ }>;
185
+ export type MfaDisableResponseDto = z.infer<typeof mfaDisableResponseSchema>;
186
+ export declare const securitySessionSchema: z.ZodObject<{
187
+ sessionId: z.ZodString;
188
+ createdAt: z.ZodString;
189
+ lastActivityAt: z.ZodOptional<z.ZodString>;
190
+ expiresAt: z.ZodString;
191
+ ipAddress: z.ZodOptional<z.ZodString>;
192
+ userAgent: z.ZodOptional<z.ZodString>;
193
+ deviceType: z.ZodOptional<z.ZodEnum<["desktop", "mobile", "tablet", "unknown"]>>;
194
+ browser: z.ZodOptional<z.ZodString>;
195
+ os: z.ZodOptional<z.ZodString>;
196
+ location: z.ZodOptional<z.ZodString>;
197
+ isCurrent: z.ZodBoolean;
198
+ }, "strip", z.ZodTypeAny, {
199
+ createdAt: string;
200
+ isCurrent: boolean;
201
+ expiresAt: string;
202
+ sessionId: string;
203
+ lastActivityAt?: string | undefined;
204
+ ipAddress?: string | undefined;
205
+ userAgent?: string | undefined;
206
+ deviceType?: "unknown" | "mobile" | "desktop" | "tablet" | undefined;
207
+ browser?: string | undefined;
208
+ os?: string | undefined;
209
+ location?: string | undefined;
210
+ }, {
211
+ createdAt: string;
212
+ isCurrent: boolean;
213
+ expiresAt: string;
214
+ sessionId: string;
215
+ lastActivityAt?: string | undefined;
216
+ ipAddress?: string | undefined;
217
+ userAgent?: string | undefined;
218
+ deviceType?: "unknown" | "mobile" | "desktop" | "tablet" | undefined;
219
+ browser?: string | undefined;
220
+ os?: string | undefined;
221
+ location?: string | undefined;
222
+ }>;
223
+ export type SecuritySessionDto = z.infer<typeof securitySessionSchema>;
224
+ export declare const securitySessionsListSchema: z.ZodObject<{
225
+ sessions: z.ZodArray<z.ZodObject<{
226
+ sessionId: z.ZodString;
227
+ createdAt: z.ZodString;
228
+ lastActivityAt: z.ZodOptional<z.ZodString>;
229
+ expiresAt: z.ZodString;
230
+ ipAddress: z.ZodOptional<z.ZodString>;
231
+ userAgent: z.ZodOptional<z.ZodString>;
232
+ deviceType: z.ZodOptional<z.ZodEnum<["desktop", "mobile", "tablet", "unknown"]>>;
233
+ browser: z.ZodOptional<z.ZodString>;
234
+ os: z.ZodOptional<z.ZodString>;
235
+ location: z.ZodOptional<z.ZodString>;
236
+ isCurrent: z.ZodBoolean;
237
+ }, "strip", z.ZodTypeAny, {
238
+ createdAt: string;
239
+ isCurrent: boolean;
240
+ expiresAt: string;
241
+ sessionId: string;
242
+ lastActivityAt?: string | undefined;
243
+ ipAddress?: string | undefined;
244
+ userAgent?: string | undefined;
245
+ deviceType?: "unknown" | "mobile" | "desktop" | "tablet" | undefined;
246
+ browser?: string | undefined;
247
+ os?: string | undefined;
248
+ location?: string | undefined;
249
+ }, {
250
+ createdAt: string;
251
+ isCurrent: boolean;
252
+ expiresAt: string;
253
+ sessionId: string;
254
+ lastActivityAt?: string | undefined;
255
+ ipAddress?: string | undefined;
256
+ userAgent?: string | undefined;
257
+ deviceType?: "unknown" | "mobile" | "desktop" | "tablet" | undefined;
258
+ browser?: string | undefined;
259
+ os?: string | undefined;
260
+ location?: string | undefined;
261
+ }>, "many">;
262
+ total: z.ZodNumber;
263
+ currentSessionId: z.ZodOptional<z.ZodString>;
264
+ }, "strip", z.ZodTypeAny, {
265
+ total: number;
266
+ sessions: {
267
+ createdAt: string;
268
+ isCurrent: boolean;
269
+ expiresAt: string;
270
+ sessionId: string;
271
+ lastActivityAt?: string | undefined;
272
+ ipAddress?: string | undefined;
273
+ userAgent?: string | undefined;
274
+ deviceType?: "unknown" | "mobile" | "desktop" | "tablet" | undefined;
275
+ browser?: string | undefined;
276
+ os?: string | undefined;
277
+ location?: string | undefined;
278
+ }[];
279
+ currentSessionId?: string | undefined;
280
+ }, {
281
+ total: number;
282
+ sessions: {
283
+ createdAt: string;
284
+ isCurrent: boolean;
285
+ expiresAt: string;
286
+ sessionId: string;
287
+ lastActivityAt?: string | undefined;
288
+ ipAddress?: string | undefined;
289
+ userAgent?: string | undefined;
290
+ deviceType?: "unknown" | "mobile" | "desktop" | "tablet" | undefined;
291
+ browser?: string | undefined;
292
+ os?: string | undefined;
293
+ location?: string | undefined;
294
+ }[];
295
+ currentSessionId?: string | undefined;
296
+ }>;
297
+ export type SecuritySessionsListDto = z.infer<typeof securitySessionsListSchema>;
298
+ export declare const revokeSessionResponseSchema: z.ZodObject<{
299
+ success: z.ZodBoolean;
300
+ sessionId: z.ZodString;
301
+ message: z.ZodString;
302
+ }, "strip", z.ZodTypeAny, {
303
+ message: string;
304
+ success: boolean;
305
+ sessionId: string;
306
+ }, {
307
+ message: string;
308
+ success: boolean;
309
+ sessionId: string;
310
+ }>;
311
+ export type RevokeSessionResponseDto = z.infer<typeof revokeSessionResponseSchema>;
312
+ export declare const revokeAllSessionsResponseSchema: z.ZodObject<{
313
+ success: z.ZodBoolean;
314
+ revokedCount: z.ZodNumber;
315
+ message: z.ZodString;
316
+ }, "strip", z.ZodTypeAny, {
317
+ message: string;
318
+ success: boolean;
319
+ revokedCount: number;
320
+ }, {
321
+ message: string;
322
+ success: boolean;
323
+ revokedCount: number;
324
+ }>;
325
+ export type RevokeAllSessionsResponseDto = z.infer<typeof revokeAllSessionsResponseSchema>;
326
+ export declare const loginHistoryEntrySchema: z.ZodObject<{
327
+ timestamp: z.ZodString;
328
+ status: z.ZodEnum<["success", "failed", "blocked"]>;
329
+ ipAddress: z.ZodOptional<z.ZodString>;
330
+ userAgent: z.ZodOptional<z.ZodString>;
331
+ deviceType: z.ZodOptional<z.ZodEnum<["desktop", "mobile", "tablet", "unknown"]>>;
332
+ browser: z.ZodOptional<z.ZodString>;
333
+ os: z.ZodOptional<z.ZodString>;
334
+ location: z.ZodOptional<z.ZodString>;
335
+ failureReason: z.ZodOptional<z.ZodString>;
336
+ }, "strip", z.ZodTypeAny, {
337
+ status: "success" | "failed" | "blocked";
338
+ timestamp: string;
339
+ ipAddress?: string | undefined;
340
+ userAgent?: string | undefined;
341
+ deviceType?: "unknown" | "mobile" | "desktop" | "tablet" | undefined;
342
+ browser?: string | undefined;
343
+ os?: string | undefined;
344
+ location?: string | undefined;
345
+ failureReason?: string | undefined;
346
+ }, {
347
+ status: "success" | "failed" | "blocked";
348
+ timestamp: string;
349
+ ipAddress?: string | undefined;
350
+ userAgent?: string | undefined;
351
+ deviceType?: "unknown" | "mobile" | "desktop" | "tablet" | undefined;
352
+ browser?: string | undefined;
353
+ os?: string | undefined;
354
+ location?: string | undefined;
355
+ failureReason?: string | undefined;
356
+ }>;
357
+ export type LoginHistoryEntryDto = z.infer<typeof loginHistoryEntrySchema>;
358
+ export declare const loginHistoryResponseSchema: z.ZodObject<{
359
+ entries: z.ZodArray<z.ZodObject<{
360
+ timestamp: z.ZodString;
361
+ status: z.ZodEnum<["success", "failed", "blocked"]>;
362
+ ipAddress: z.ZodOptional<z.ZodString>;
363
+ userAgent: z.ZodOptional<z.ZodString>;
364
+ deviceType: z.ZodOptional<z.ZodEnum<["desktop", "mobile", "tablet", "unknown"]>>;
365
+ browser: z.ZodOptional<z.ZodString>;
366
+ os: z.ZodOptional<z.ZodString>;
367
+ location: z.ZodOptional<z.ZodString>;
368
+ failureReason: z.ZodOptional<z.ZodString>;
369
+ }, "strip", z.ZodTypeAny, {
370
+ status: "success" | "failed" | "blocked";
371
+ timestamp: string;
372
+ ipAddress?: string | undefined;
373
+ userAgent?: string | undefined;
374
+ deviceType?: "unknown" | "mobile" | "desktop" | "tablet" | undefined;
375
+ browser?: string | undefined;
376
+ os?: string | undefined;
377
+ location?: string | undefined;
378
+ failureReason?: string | undefined;
379
+ }, {
380
+ status: "success" | "failed" | "blocked";
381
+ timestamp: string;
382
+ ipAddress?: string | undefined;
383
+ userAgent?: string | undefined;
384
+ deviceType?: "unknown" | "mobile" | "desktop" | "tablet" | undefined;
385
+ browser?: string | undefined;
386
+ os?: string | undefined;
387
+ location?: string | undefined;
388
+ failureReason?: string | undefined;
389
+ }>, "many">;
390
+ total: z.ZodNumber;
391
+ hasMore: z.ZodBoolean;
392
+ }, "strip", z.ZodTypeAny, {
393
+ entries: {
394
+ status: "success" | "failed" | "blocked";
395
+ timestamp: string;
396
+ ipAddress?: string | undefined;
397
+ userAgent?: string | undefined;
398
+ deviceType?: "unknown" | "mobile" | "desktop" | "tablet" | undefined;
399
+ browser?: string | undefined;
400
+ os?: string | undefined;
401
+ location?: string | undefined;
402
+ failureReason?: string | undefined;
403
+ }[];
404
+ hasMore: boolean;
405
+ total: number;
406
+ }, {
407
+ entries: {
408
+ status: "success" | "failed" | "blocked";
409
+ timestamp: string;
410
+ ipAddress?: string | undefined;
411
+ userAgent?: string | undefined;
412
+ deviceType?: "unknown" | "mobile" | "desktop" | "tablet" | undefined;
413
+ browser?: string | undefined;
414
+ os?: string | undefined;
415
+ location?: string | undefined;
416
+ failureReason?: string | undefined;
417
+ }[];
418
+ hasMore: boolean;
419
+ total: number;
420
+ }>;
421
+ export type LoginHistoryResponseDto = z.infer<typeof loginHistoryResponseSchema>;
422
+ //# sourceMappingURL=security.schema.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"security.schema.d.ts","sourceRoot":"","sources":["../../../src/schemas/identity/security.schema.ts"],"names":[],"mappings":"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"}