@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":"calendar-date.schema.d.ts","sourceRoot":"","sources":["../../../src/schemas/identity/calendar-date.schema.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,208 @@
1
+ "use strict";
2
+ /**
3
+ * Calendar Date Schemas - Identity Service
4
+ *
5
+ * Zod schemas for school calendar date management with Ed-Fi alignment.
6
+ * Ed-Fi: CalendarDate defines day-by-day events and characteristics.
7
+ */
8
+ Object.defineProperty(exports, "__esModule", { value: true });
9
+ exports.calendarSummarySchema = exports.bulkUpdateCalendarDatesSchema = exports.generateCalendarSchema = exports.calendarDateFilterSchema = exports.calendarDateListResponseSchema = exports.calendarDateResponseSchema = exports.updateCalendarDateSchema = exports.createCalendarDateSchema = exports.calendarDateSchema = exports.calendarEventSchema = exports.calendarDayOfWeekSchema = exports.calendarEventDescriptorSchema = void 0;
10
+ const zod_1 = require("zod");
11
+ const common_1 = require("../common");
12
+ // ============================================
13
+ // Enums (Ed-Fi aligned)
14
+ // ============================================
15
+ /**
16
+ * Calendar event type (Ed-Fi: calendarEventDescriptor)
17
+ */
18
+ exports.calendarEventDescriptorSchema = zod_1.z.enum([
19
+ 'instructional_day', // Regular school day
20
+ 'non_instructional_day', // No classes
21
+ 'holiday', // Official holiday
22
+ 'teacher_only', // Professional development
23
+ 'student_holiday', // Students off, teachers work
24
+ 'weather_day', // Emergency closure
25
+ 'testing_day', // Standardized testing
26
+ 'early_release', // Shortened day
27
+ 'late_start', // Delayed start
28
+ 'conference_day', // Parent-teacher conferences
29
+ 'graduation', // Graduation ceremony
30
+ 'break', // Spring/Winter break
31
+ 'in_service', // Teacher in-service
32
+ 'make_up_day', // Make-up for missed day
33
+ 'other',
34
+ ]);
35
+ /**
36
+ * Day of week (calendar context - lowercase full names)
37
+ */
38
+ exports.calendarDayOfWeekSchema = zod_1.z.enum([
39
+ 'monday',
40
+ 'tuesday',
41
+ 'wednesday',
42
+ 'thursday',
43
+ 'friday',
44
+ 'saturday',
45
+ 'sunday',
46
+ ]);
47
+ // ============================================
48
+ // Calendar Event Schema
49
+ // ============================================
50
+ exports.calendarEventSchema = zod_1.z.object({
51
+ eventType: exports.calendarEventDescriptorSchema,
52
+ description: zod_1.z.string().max(255).optional(),
53
+ isAllDay: zod_1.z.boolean().default(true),
54
+ startTime: zod_1.z.string().optional(), // For partial day events
55
+ endTime: zod_1.z.string().optional(),
56
+ });
57
+ // ============================================
58
+ // Create/Update Calendar Date Schema
59
+ // ============================================
60
+ exports.calendarDateSchema = zod_1.z.object({
61
+ // Ed-Fi Core
62
+ date: common_1.dateSchema, // Ed-Fi: date (YYYY-MM-DD)
63
+ calendarEvents: zod_1.z.array(exports.calendarEventSchema).min(1), // Ed-Fi: calendarEvents
64
+ // EdForge Extensions
65
+ isInstructionalDay: zod_1.z.boolean(),
66
+ isHoliday: zod_1.z.boolean().default(false),
67
+ isWeekend: zod_1.z.boolean().optional(),
68
+ // Schedule association
69
+ bellScheduleId: zod_1.z.string().uuid().optional(),
70
+ bellScheduleName: zod_1.z.string().optional(),
71
+ // Grading period association
72
+ gradingPeriodId: zod_1.z.string().uuid().optional(),
73
+ gradingPeriodName: zod_1.z.string().optional(),
74
+ // Notes
75
+ notes: zod_1.z.string().max(500).optional(),
76
+ });
77
+ // ============================================
78
+ // Create Calendar Date Schema
79
+ // ============================================
80
+ exports.createCalendarDateSchema = exports.calendarDateSchema;
81
+ // ============================================
82
+ // Update Calendar Date Schema
83
+ // ============================================
84
+ exports.updateCalendarDateSchema = exports.calendarDateSchema.partial().omit({
85
+ date: true, // Cannot change date
86
+ });
87
+ // ============================================
88
+ // Calendar Date Response Schema
89
+ // ============================================
90
+ exports.calendarDateResponseSchema = zod_1.z.object({
91
+ // Identifiers
92
+ calendarDateId: zod_1.z.string().uuid(),
93
+ schoolId: zod_1.z.string().uuid(),
94
+ academicYearId: zod_1.z.string().uuid(),
95
+ tenantId: zod_1.z.string().uuid(),
96
+ // Ed-Fi Core
97
+ date: zod_1.z.string(),
98
+ calendarEvents: zod_1.z.array(exports.calendarEventSchema),
99
+ // EdForge Extensions
100
+ isInstructionalDay: zod_1.z.boolean(),
101
+ isHoliday: zod_1.z.boolean(),
102
+ isWeekend: zod_1.z.boolean(),
103
+ dayOfWeek: exports.calendarDayOfWeekSchema,
104
+ // Schedule
105
+ bellScheduleId: zod_1.z.string().optional(),
106
+ bellScheduleName: zod_1.z.string().optional(),
107
+ // Grading period
108
+ gradingPeriodId: zod_1.z.string().optional(),
109
+ gradingPeriodName: zod_1.z.string().optional(),
110
+ // Computed
111
+ dayNumber: zod_1.z.number().optional(), // Day number in academic year (1, 2, 3...)
112
+ instructionalDayNumber: zod_1.z.number().optional(), // Instructional day number
113
+ // Notes
114
+ notes: zod_1.z.string().optional(),
115
+ // Metadata
116
+ createdAt: zod_1.z.string(),
117
+ updatedAt: zod_1.z.string(),
118
+ });
119
+ // ============================================
120
+ // Calendar Date List Response
121
+ // ============================================
122
+ exports.calendarDateListResponseSchema = (0, common_1.createPaginatedResponseSchema)(exports.calendarDateResponseSchema);
123
+ // ============================================
124
+ // Calendar Date Filter Schema
125
+ // ============================================
126
+ exports.calendarDateFilterSchema = zod_1.z.object({
127
+ schoolId: zod_1.z.string().uuid().optional(),
128
+ academicYearId: zod_1.z.string().uuid().optional(),
129
+ gradingPeriodId: zod_1.z.string().uuid().optional(),
130
+ startDate: common_1.dateSchema.optional(),
131
+ endDate: common_1.dateSchema.optional(),
132
+ month: zod_1.z.number().int().min(1).max(12).optional(), // Filter by month
133
+ year: zod_1.z.number().int().min(2020).max(2100).optional(),
134
+ eventType: exports.calendarEventDescriptorSchema.optional(),
135
+ isInstructionalDay: zod_1.z.boolean().optional(),
136
+ isHoliday: zod_1.z.boolean().optional(),
137
+ limit: zod_1.z.coerce.number().min(1).max(400).default(100), // Higher limit for calendar views
138
+ cursor: zod_1.z.string().optional(),
139
+ });
140
+ // ============================================
141
+ // Generate Calendar Schema
142
+ // ============================================
143
+ /**
144
+ * Auto-generate calendar dates from academic year
145
+ */
146
+ exports.generateCalendarSchema = zod_1.z.object({
147
+ academicYearId: zod_1.z.string().uuid(),
148
+ startDate: common_1.dateSchema,
149
+ endDate: common_1.dateSchema,
150
+ // Default settings
151
+ defaultBellScheduleId: zod_1.z.string().uuid().optional(),
152
+ includeWeekends: zod_1.z.boolean().default(false),
153
+ // Auto-detect weekends
154
+ schoolDays: zod_1.z.array(exports.calendarDayOfWeekSchema).default(['monday', 'tuesday', 'wednesday', 'thursday', 'friday']),
155
+ // Known holidays (dates to mark as holidays)
156
+ holidays: zod_1.z.array(zod_1.z.object({
157
+ date: common_1.dateSchema,
158
+ name: zod_1.z.string().max(100),
159
+ eventType: exports.calendarEventDescriptorSchema.default('holiday'),
160
+ })).optional(),
161
+ // Breaks
162
+ breaks: zod_1.z.array(zod_1.z.object({
163
+ startDate: common_1.dateSchema,
164
+ endDate: common_1.dateSchema,
165
+ name: zod_1.z.string().max(100),
166
+ eventType: exports.calendarEventDescriptorSchema.default('break'),
167
+ })).optional(),
168
+ }).refine(data => new Date(data.endDate) >= new Date(data.startDate), { message: 'End date must be on or after start date' });
169
+ // ============================================
170
+ // Bulk Update Calendar Dates Schema
171
+ // ============================================
172
+ exports.bulkUpdateCalendarDatesSchema = zod_1.z.object({
173
+ dates: zod_1.z.array(common_1.dateSchema).min(1).max(100),
174
+ updates: exports.updateCalendarDateSchema,
175
+ });
176
+ // ============================================
177
+ // Calendar Summary Schema
178
+ // ============================================
179
+ exports.calendarSummarySchema = zod_1.z.object({
180
+ schoolId: zod_1.z.string().uuid(),
181
+ academicYearId: zod_1.z.string().uuid(),
182
+ academicYearName: zod_1.z.string(),
183
+ // Totals
184
+ totalDays: zod_1.z.number(),
185
+ instructionalDays: zod_1.z.number(),
186
+ nonInstructionalDays: zod_1.z.number(),
187
+ holidays: zod_1.z.number(),
188
+ teacherOnlyDays: zod_1.z.number(),
189
+ // Progress (if current year)
190
+ daysPassed: zod_1.z.number().optional(),
191
+ daysRemaining: zod_1.z.number().optional(),
192
+ instructionalDaysPassed: zod_1.z.number().optional(),
193
+ instructionalDaysRemaining: zod_1.z.number().optional(),
194
+ progressPercentage: zod_1.z.number().optional(),
195
+ // Current period info
196
+ currentGradingPeriod: zod_1.z.object({
197
+ gradingPeriodId: zod_1.z.string(),
198
+ name: zod_1.z.string(),
199
+ daysRemaining: zod_1.z.number(),
200
+ }).optional(),
201
+ // Upcoming events
202
+ upcomingEvents: zod_1.z.array(zod_1.z.object({
203
+ date: zod_1.z.string(),
204
+ eventType: exports.calendarEventDescriptorSchema,
205
+ description: zod_1.z.string().optional(),
206
+ })).optional(),
207
+ });
208
+ //# sourceMappingURL=calendar-date.schema.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"calendar-date.schema.js","sourceRoot":"","sources":["../../../src/schemas/identity/calendar-date.schema.ts"],"names":[],"mappings":"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"}