@aibrains/shared-types 0.11.0 → 0.13.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.
@@ -0,0 +1,125 @@
1
+ /**
2
+ * Grade Level Constants — Shared across all EdForge apps
3
+ *
4
+ * Canonical definitions for grade ordering, display labels,
5
+ * EdFi descriptor mapping, and school-type-to-grade-range defaults.
6
+ *
7
+ * IMPORTANT: This is the single source of truth for grade-level constants.
8
+ * Do NOT duplicate these arrays in other files — import from here.
9
+ */
10
+ /** Canonical ordered grade codes from earliest to latest */
11
+ export declare const ORDERED_GRADES: readonly ["PK", "K", "1", "2", "3", "4", "5", "6", "7", "8", "9", "10", "11", "12"];
12
+ export type GradeCode = (typeof ORDERED_GRADES)[number];
13
+ /** Grade display options for dropdowns and tables (PK–12) */
14
+ export declare const GRADE_LEVEL_OPTIONS: readonly [{
15
+ readonly value: "PK";
16
+ readonly label: "Pre-K";
17
+ }, {
18
+ readonly value: "K";
19
+ readonly label: "Kindergarten";
20
+ }, {
21
+ readonly value: "1";
22
+ readonly label: "Grade 1";
23
+ }, {
24
+ readonly value: "2";
25
+ readonly label: "Grade 2";
26
+ }, {
27
+ readonly value: "3";
28
+ readonly label: "Grade 3";
29
+ }, {
30
+ readonly value: "4";
31
+ readonly label: "Grade 4";
32
+ }, {
33
+ readonly value: "5";
34
+ readonly label: "Grade 5";
35
+ }, {
36
+ readonly value: "6";
37
+ readonly label: "Grade 6";
38
+ }, {
39
+ readonly value: "7";
40
+ readonly label: "Grade 7";
41
+ }, {
42
+ readonly value: "8";
43
+ readonly label: "Grade 8";
44
+ }, {
45
+ readonly value: "9";
46
+ readonly label: "Grade 9";
47
+ }, {
48
+ readonly value: "10";
49
+ readonly label: "Grade 10";
50
+ }, {
51
+ readonly value: "11";
52
+ readonly label: "Grade 11";
53
+ }, {
54
+ readonly value: "12";
55
+ readonly label: "Grade 12";
56
+ }];
57
+ /** Get display label for a grade code. Returns the code itself if not found. */
58
+ export declare function getGradeLevelLabel(value: string): string;
59
+ /** Get the numeric index of a grade code in ORDERED_GRADES. Returns -1 if not found. */
60
+ export declare function getGradeIndex(grade: string): number;
61
+ /** Returns true if startGrade comes before or is equal to endGrade in the ordering. */
62
+ export declare function isValidGradeRange(start: string, end: string): boolean;
63
+ /** Maps simple grade codes (PK, K, 1–12) to Ed-Fi GradeLevelDescriptor values */
64
+ export declare const GRADE_RANGE_TO_DESCRIPTOR: Record<string, string>;
65
+ /**
66
+ * Compute Ed-Fi grade level descriptor array from a grade range.
67
+ * Returns empty array if inputs are invalid.
68
+ */
69
+ export declare function computeGradeLevels(start: string, end: string): string[];
70
+ /** Default grade range for each school type */
71
+ export declare const SCHOOL_TYPE_GRADE_DEFAULTS: Record<string, {
72
+ start: string;
73
+ end: string;
74
+ }>;
75
+ /**
76
+ * Get the default grade range for a given school type.
77
+ * Falls back to PK–12 for unknown types.
78
+ */
79
+ export declare function getDefaultGradeRange(schoolType: string): {
80
+ start: string;
81
+ end: string;
82
+ };
83
+ /** Map internal school type to suggested Ed-Fi school category */
84
+ export declare const TYPE_TO_SUGGESTED_CATEGORY: Record<string, string>;
85
+ /** Map internal school type to suggested Ed-Fi school type descriptor */
86
+ export declare const TYPE_TO_SUGGESTED_DESCRIPTOR: Record<string, string>;
87
+ /** Get the suggested Ed-Fi school category for a school type */
88
+ export declare function getSuggestedCategory(schoolType: string): string | undefined;
89
+ /** Get the suggested Ed-Fi school type descriptor for a school type */
90
+ export declare function getSuggestedDescriptor(schoolType: string): string | undefined;
91
+ export declare const SCHOOL_TYPE_OPTIONS: readonly [{
92
+ readonly value: "elementary";
93
+ readonly label: "Elementary School";
94
+ }, {
95
+ readonly value: "middle";
96
+ readonly label: "Middle School";
97
+ }, {
98
+ readonly value: "high";
99
+ readonly label: "High School";
100
+ }, {
101
+ readonly value: "k12";
102
+ readonly label: "K-12 School";
103
+ }, {
104
+ readonly value: "charter";
105
+ readonly label: "Charter School";
106
+ }, {
107
+ readonly value: "private";
108
+ readonly label: "Private School";
109
+ }, {
110
+ readonly value: "vocational";
111
+ readonly label: "Vocational School";
112
+ }, {
113
+ readonly value: "special_education";
114
+ readonly label: "Special Education";
115
+ }];
116
+ export declare const SCHOOL_TYPE_LABELS: Record<string, string>;
117
+ /**
118
+ * Validate that a school type and grade range combination is reasonable.
119
+ * Returns null if valid, or an error message string if invalid.
120
+ */
121
+ export declare function validateSchoolTypeGradeRange(schoolType: string, gradeRange: {
122
+ start: string;
123
+ end: string;
124
+ }): string | null;
125
+ //# sourceMappingURL=grade-levels.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"grade-levels.d.ts","sourceRoot":"","sources":["../../../src/schemas/identity/grade-levels.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AAMH,4DAA4D;AAC5D,eAAO,MAAM,cAAc,qFAEjB,CAAC;AAEX,MAAM,MAAM,SAAS,GAAG,CAAC,OAAO,cAAc,CAAC,CAAC,MAAM,CAAC,CAAC;AAExD,6DAA6D;AAC7D,eAAO,MAAM,mBAAmB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EAetB,CAAC;AAEX,gFAAgF;AAChF,wBAAgB,kBAAkB,CAAC,KAAK,EAAE,MAAM,GAAG,MAAM,CAGxD;AAED,wFAAwF;AACxF,wBAAgB,aAAa,CAAC,KAAK,EAAE,MAAM,GAAG,MAAM,CAEnD;AAED,uFAAuF;AACvF,wBAAgB,iBAAiB,CAAC,KAAK,EAAE,MAAM,EAAE,GAAG,EAAE,MAAM,GAAG,OAAO,CAIrE;AAMD,iFAAiF;AACjF,eAAO,MAAM,yBAAyB,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAe5D,CAAC;AAEF;;;GAGG;AACH,wBAAgB,kBAAkB,CAAC,KAAK,EAAE,MAAM,EAAE,GAAG,EAAE,MAAM,GAAG,MAAM,EAAE,CAQvE;AAMD,+CAA+C;AAC/C,eAAO,MAAM,0BAA0B,EAAE,MAAM,CAAC,MAAM,EAAE;IAAE,KAAK,EAAE,MAAM,CAAC;IAAC,GAAG,EAAE,MAAM,CAAA;CAAE,CASrF,CAAC;AAEF;;;GAGG;AACH,wBAAgB,oBAAoB,CAAC,UAAU,EAAE,MAAM,GAAG;IAAE,KAAK,EAAE,MAAM,CAAC;IAAC,GAAG,EAAE,MAAM,CAAA;CAAE,CAEvF;AAMD,kEAAkE;AAClE,eAAO,MAAM,0BAA0B,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAS7D,CAAC;AAEF,yEAAyE;AACzE,eAAO,MAAM,4BAA4B,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAS/D,CAAC;AAEF,gEAAgE;AAChE,wBAAgB,oBAAoB,CAAC,UAAU,EAAE,MAAM,GAAG,MAAM,GAAG,SAAS,CAE3E;AAED,uEAAuE;AACvE,wBAAgB,sBAAsB,CAAC,UAAU,EAAE,MAAM,GAAG,MAAM,GAAG,SAAS,CAE7E;AAMD,eAAO,MAAM,mBAAmB;;;;;;;;;;;;;;;;;;;;;;;;EAStB,CAAC;AAEX,eAAO,MAAM,kBAAkB,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAUrD,CAAC;AAsBF;;;GAGG;AACH,wBAAgB,4BAA4B,CAC1C,UAAU,EAAE,MAAM,EAClB,UAAU,EAAE;IAAE,KAAK,EAAE,MAAM,CAAC;IAAC,GAAG,EAAE,MAAM,CAAA;CAAE,GACzC,MAAM,GAAG,IAAI,CA8Bf"}
@@ -0,0 +1,222 @@
1
+ "use strict";
2
+ /**
3
+ * Grade Level Constants — Shared across all EdForge apps
4
+ *
5
+ * Canonical definitions for grade ordering, display labels,
6
+ * EdFi descriptor mapping, and school-type-to-grade-range defaults.
7
+ *
8
+ * IMPORTANT: This is the single source of truth for grade-level constants.
9
+ * Do NOT duplicate these arrays in other files — import from here.
10
+ */
11
+ Object.defineProperty(exports, "__esModule", { value: true });
12
+ exports.SCHOOL_TYPE_LABELS = exports.SCHOOL_TYPE_OPTIONS = exports.TYPE_TO_SUGGESTED_DESCRIPTOR = exports.TYPE_TO_SUGGESTED_CATEGORY = exports.SCHOOL_TYPE_GRADE_DEFAULTS = exports.GRADE_RANGE_TO_DESCRIPTOR = exports.GRADE_LEVEL_OPTIONS = exports.ORDERED_GRADES = void 0;
13
+ exports.getGradeLevelLabel = getGradeLevelLabel;
14
+ exports.getGradeIndex = getGradeIndex;
15
+ exports.isValidGradeRange = isValidGradeRange;
16
+ exports.computeGradeLevels = computeGradeLevels;
17
+ exports.getDefaultGradeRange = getDefaultGradeRange;
18
+ exports.getSuggestedCategory = getSuggestedCategory;
19
+ exports.getSuggestedDescriptor = getSuggestedDescriptor;
20
+ exports.validateSchoolTypeGradeRange = validateSchoolTypeGradeRange;
21
+ // ============================================================================
22
+ // GRADE ORDERING & OPTIONS
23
+ // ============================================================================
24
+ /** Canonical ordered grade codes from earliest to latest */
25
+ exports.ORDERED_GRADES = [
26
+ 'PK', 'K', '1', '2', '3', '4', '5', '6', '7', '8', '9', '10', '11', '12',
27
+ ];
28
+ /** Grade display options for dropdowns and tables (PK–12) */
29
+ exports.GRADE_LEVEL_OPTIONS = [
30
+ { value: 'PK', label: 'Pre-K' },
31
+ { value: 'K', label: 'Kindergarten' },
32
+ { value: '1', label: 'Grade 1' },
33
+ { value: '2', label: 'Grade 2' },
34
+ { value: '3', label: 'Grade 3' },
35
+ { value: '4', label: 'Grade 4' },
36
+ { value: '5', label: 'Grade 5' },
37
+ { value: '6', label: 'Grade 6' },
38
+ { value: '7', label: 'Grade 7' },
39
+ { value: '8', label: 'Grade 8' },
40
+ { value: '9', label: 'Grade 9' },
41
+ { value: '10', label: 'Grade 10' },
42
+ { value: '11', label: 'Grade 11' },
43
+ { value: '12', label: 'Grade 12' },
44
+ ];
45
+ /** Get display label for a grade code. Returns the code itself if not found. */
46
+ function getGradeLevelLabel(value) {
47
+ var _a;
48
+ const option = exports.GRADE_LEVEL_OPTIONS.find((o) => o.value === value);
49
+ return (_a = option === null || option === void 0 ? void 0 : option.label) !== null && _a !== void 0 ? _a : value;
50
+ }
51
+ /** Get the numeric index of a grade code in ORDERED_GRADES. Returns -1 if not found. */
52
+ function getGradeIndex(grade) {
53
+ return exports.ORDERED_GRADES.indexOf(grade);
54
+ }
55
+ /** Returns true if startGrade comes before or is equal to endGrade in the ordering. */
56
+ function isValidGradeRange(start, end) {
57
+ const startIdx = getGradeIndex(start);
58
+ const endIdx = getGradeIndex(end);
59
+ return startIdx !== -1 && endIdx !== -1 && startIdx <= endIdx;
60
+ }
61
+ // ============================================================================
62
+ // GRADE RANGE → ED-FI DESCRIPTOR MAPPING
63
+ // ============================================================================
64
+ /** Maps simple grade codes (PK, K, 1–12) to Ed-Fi GradeLevelDescriptor values */
65
+ exports.GRADE_RANGE_TO_DESCRIPTOR = {
66
+ PK: 'Prekindergarten',
67
+ K: 'Kindergarten',
68
+ '1': 'FirstGrade',
69
+ '2': 'SecondGrade',
70
+ '3': 'ThirdGrade',
71
+ '4': 'FourthGrade',
72
+ '5': 'FifthGrade',
73
+ '6': 'SixthGrade',
74
+ '7': 'SeventhGrade',
75
+ '8': 'EighthGrade',
76
+ '9': 'NinthGrade',
77
+ '10': 'TenthGrade',
78
+ '11': 'EleventhGrade',
79
+ '12': 'TwelfthGrade',
80
+ };
81
+ /**
82
+ * Compute Ed-Fi grade level descriptor array from a grade range.
83
+ * Returns empty array if inputs are invalid.
84
+ */
85
+ function computeGradeLevels(start, end) {
86
+ if (!start || !end)
87
+ return [];
88
+ const startIdx = getGradeIndex(start);
89
+ const endIdx = getGradeIndex(end);
90
+ if (startIdx === -1 || endIdx === -1 || startIdx > endIdx)
91
+ return [];
92
+ return exports.ORDERED_GRADES.slice(startIdx, endIdx + 1)
93
+ .map((g) => exports.GRADE_RANGE_TO_DESCRIPTOR[g])
94
+ .filter(Boolean);
95
+ }
96
+ // ============================================================================
97
+ // SCHOOL TYPE → GRADE RANGE DEFAULTS
98
+ // ============================================================================
99
+ /** Default grade range for each school type */
100
+ exports.SCHOOL_TYPE_GRADE_DEFAULTS = {
101
+ elementary: { start: 'PK', end: '5' },
102
+ middle: { start: '6', end: '8' },
103
+ high: { start: '9', end: '12' },
104
+ k12: { start: 'PK', end: '12' },
105
+ charter: { start: 'PK', end: '12' },
106
+ private: { start: 'PK', end: '12' },
107
+ vocational: { start: '9', end: '12' },
108
+ special_education: { start: 'PK', end: '12' },
109
+ };
110
+ /**
111
+ * Get the default grade range for a given school type.
112
+ * Falls back to PK–12 for unknown types.
113
+ */
114
+ function getDefaultGradeRange(schoolType) {
115
+ var _a;
116
+ return (_a = exports.SCHOOL_TYPE_GRADE_DEFAULTS[schoolType]) !== null && _a !== void 0 ? _a : { start: 'PK', end: '12' };
117
+ }
118
+ // ============================================================================
119
+ // SCHOOL TYPE → ED-FI SUGGESTIONS
120
+ // ============================================================================
121
+ /** Map internal school type to suggested Ed-Fi school category */
122
+ exports.TYPE_TO_SUGGESTED_CATEGORY = {
123
+ elementary: 'Elementary',
124
+ middle: 'MiddleSchool',
125
+ high: 'HighSchool',
126
+ k12: 'AllLevels',
127
+ charter: 'AllLevels',
128
+ private: 'AllLevels',
129
+ vocational: 'SecondarySchool',
130
+ special_education: 'Ungraded',
131
+ };
132
+ /** Map internal school type to suggested Ed-Fi school type descriptor */
133
+ exports.TYPE_TO_SUGGESTED_DESCRIPTOR = {
134
+ elementary: 'Regular',
135
+ middle: 'Regular',
136
+ high: 'Regular',
137
+ k12: 'Regular',
138
+ charter: 'Regular',
139
+ private: 'Regular',
140
+ vocational: 'CareerAndTechnical',
141
+ special_education: 'SpecialEducation',
142
+ };
143
+ /** Get the suggested Ed-Fi school category for a school type */
144
+ function getSuggestedCategory(schoolType) {
145
+ return exports.TYPE_TO_SUGGESTED_CATEGORY[schoolType];
146
+ }
147
+ /** Get the suggested Ed-Fi school type descriptor for a school type */
148
+ function getSuggestedDescriptor(schoolType) {
149
+ return exports.TYPE_TO_SUGGESTED_DESCRIPTOR[schoolType];
150
+ }
151
+ // ============================================================================
152
+ // SCHOOL TYPE OPTIONS & LABELS
153
+ // ============================================================================
154
+ exports.SCHOOL_TYPE_OPTIONS = [
155
+ { value: 'elementary', label: 'Elementary School' },
156
+ { value: 'middle', label: 'Middle School' },
157
+ { value: 'high', label: 'High School' },
158
+ { value: 'k12', label: 'K-12 School' },
159
+ { value: 'charter', label: 'Charter School' },
160
+ { value: 'private', label: 'Private School' },
161
+ { value: 'vocational', label: 'Vocational School' },
162
+ { value: 'special_education', label: 'Special Education' },
163
+ ];
164
+ exports.SCHOOL_TYPE_LABELS = {
165
+ elementary: 'Elementary',
166
+ middle: 'Middle School',
167
+ high: 'High School',
168
+ k12: 'K-12',
169
+ charter: 'Charter',
170
+ private: 'Private',
171
+ vocational: 'Vocational',
172
+ special_education: 'Special Ed',
173
+ other: 'Other',
174
+ };
175
+ // ============================================================================
176
+ // CROSS-VALIDATION: SCHOOL TYPE VS GRADE RANGE
177
+ // ============================================================================
178
+ /**
179
+ * Acceptable grade range boundaries per school type.
180
+ * `null` means no constraint on that end.
181
+ * Uses grade index values (0=PK, 1=K, 2=1st, ... 13=12th).
182
+ */
183
+ const SCHOOL_TYPE_GRADE_BOUNDARIES = {
184
+ elementary: { maxEnd: 9 }, // end ≤ 8th grade (index 9)
185
+ middle: { minStart: 5 }, // start ≥ 4th grade (index 5) — no maxEnd, allow through 9th
186
+ high: { minStart: 8 }, // start ≥ 7th grade (index 8)
187
+ k12: null, // any range
188
+ charter: null, // any range
189
+ private: null, // any range
190
+ vocational: { minStart: 8 }, // start ≥ 7th grade
191
+ special_education: null, // any range
192
+ };
193
+ /**
194
+ * Validate that a school type and grade range combination is reasonable.
195
+ * Returns null if valid, or an error message string if invalid.
196
+ */
197
+ function validateSchoolTypeGradeRange(schoolType, gradeRange) {
198
+ const startIdx = getGradeIndex(gradeRange.start);
199
+ const endIdx = getGradeIndex(gradeRange.end);
200
+ if (startIdx === -1 || endIdx === -1) {
201
+ return 'Invalid grade values';
202
+ }
203
+ if (startIdx > endIdx) {
204
+ return 'Start grade must be before or equal to end grade';
205
+ }
206
+ const boundaries = SCHOOL_TYPE_GRADE_BOUNDARIES[schoolType];
207
+ if (boundaries === null || boundaries === undefined) {
208
+ return null; // no constraints for this type
209
+ }
210
+ if (boundaries.minStart !== undefined && startIdx < boundaries.minStart) {
211
+ const minGrade = exports.ORDERED_GRADES[boundaries.minStart];
212
+ const label = getGradeLevelLabel(minGrade);
213
+ return `${exports.SCHOOL_TYPE_LABELS[schoolType] || schoolType} school grade range should start at or above ${label}`;
214
+ }
215
+ if (boundaries.maxEnd !== undefined && endIdx > boundaries.maxEnd) {
216
+ const maxGrade = exports.ORDERED_GRADES[boundaries.maxEnd];
217
+ const label = getGradeLevelLabel(maxGrade);
218
+ return `${exports.SCHOOL_TYPE_LABELS[schoolType] || schoolType} school grade range should end at or below ${label}`;
219
+ }
220
+ return null;
221
+ }
222
+ //# sourceMappingURL=grade-levels.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"grade-levels.js","sourceRoot":"","sources":["../../../src/schemas/identity/grade-levels.ts"],"names":[],"mappings":"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"}
@@ -12,6 +12,7 @@ export * from './role.schema';
12
12
  export * from './session.schema';
13
13
  export * from './academic-year.schema';
14
14
  export * from './department.schema';
15
+ export * from './grade-levels';
15
16
  export * from './education-org-descriptors';
16
17
  export * from './education-organization.schema';
17
18
  export * from './state-education-agency.schema';
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/schemas/identity/index.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,cAAc,eAAe,CAAC;AAC9B,cAAc,eAAe,CAAC;AAC9B,cAAc,mBAAmB,CAAC;AAClC,cAAc,iBAAiB,CAAC;AAChC,cAAc,iBAAiB,CAAC;AAChC,cAAc,eAAe,CAAC;AAC9B,cAAc,kBAAkB,CAAC;AACjC,cAAc,wBAAwB,CAAC;AACvC,cAAc,qBAAqB,CAAC;AAGpC,cAAc,6BAA6B,CAAC;AAC5C,cAAc,iCAAiC,CAAC;AAChD,cAAc,iCAAiC,CAAC;AAChD,cAAc,iCAAiC,CAAC;AAChD,cAAc,mCAAmC,CAAC;AAClD,cAAc,gCAAgC,CAAC;AAC/C,cAAc,kCAAkC,CAAC;AAGjD,cAAc,gBAAgB,CAAC;AAC/B,cAAc,2BAA2B,CAAC;AAC1C,cAAc,mCAAmC,CAAC;AAClD,cAAc,qBAAqB,CAAC;AACpC,cAAc,gBAAgB,CAAC;AAG/B,cAAc,wBAAwB,CAAC;AACvC,cAAc,mBAAmB,CAAC;AAClC,cAAc,wBAAwB,CAAC;AACvC,cAAc,2BAA2B,CAAC;AAC1C,cAAc,sBAAsB,CAAC;AAGrC,cAAc,uBAAuB,CAAC;AACtC,cAAc,mBAAmB,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/schemas/identity/index.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,cAAc,eAAe,CAAC;AAC9B,cAAc,eAAe,CAAC;AAC9B,cAAc,mBAAmB,CAAC;AAClC,cAAc,iBAAiB,CAAC;AAChC,cAAc,iBAAiB,CAAC;AAChC,cAAc,eAAe,CAAC;AAC9B,cAAc,kBAAkB,CAAC;AACjC,cAAc,wBAAwB,CAAC;AACvC,cAAc,qBAAqB,CAAC;AAGpC,cAAc,gBAAgB,CAAC;AAG/B,cAAc,6BAA6B,CAAC;AAC5C,cAAc,iCAAiC,CAAC;AAChD,cAAc,iCAAiC,CAAC;AAChD,cAAc,iCAAiC,CAAC;AAChD,cAAc,mCAAmC,CAAC;AAClD,cAAc,gCAAgC,CAAC;AAC/C,cAAc,kCAAkC,CAAC;AAGjD,cAAc,gBAAgB,CAAC;AAC/B,cAAc,2BAA2B,CAAC;AAC1C,cAAc,mCAAmC,CAAC;AAClD,cAAc,qBAAqB,CAAC;AACpC,cAAc,gBAAgB,CAAC;AAG/B,cAAc,wBAAwB,CAAC;AACvC,cAAc,mBAAmB,CAAC;AAClC,cAAc,wBAAwB,CAAC;AACvC,cAAc,2BAA2B,CAAC;AAC1C,cAAc,sBAAsB,CAAC;AAGrC,cAAc,uBAAuB,CAAC;AACtC,cAAc,mBAAmB,CAAC"}
@@ -28,6 +28,8 @@ __exportStar(require("./role.schema"), exports);
28
28
  __exportStar(require("./session.schema"), exports);
29
29
  __exportStar(require("./academic-year.schema"), exports);
30
30
  __exportStar(require("./department.schema"), exports);
31
+ // Grade Level Constants (canonical source of truth)
32
+ __exportStar(require("./grade-levels"), exports);
31
33
  // Education Organization Domain (Ed-Fi aligned)
32
34
  __exportStar(require("./education-org-descriptors"), exports);
33
35
  __exportStar(require("./education-organization.schema"), exports);
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/schemas/identity/index.ts"],"names":[],"mappings":";AAAA;;;;GAIG;;;;;;;;;;;;;;;;AAEH,gDAA8B;AAC9B,gDAA8B;AAC9B,oDAAkC;AAClC,kDAAgC;AAChC,kDAAgC;AAChC,gDAA8B;AAC9B,mDAAiC;AACjC,yDAAuC;AACvC,sDAAoC;AAEpC,gDAAgD;AAChD,8DAA4C;AAC5C,kEAAgD;AAChD,kEAAgD;AAChD,kEAAgD;AAChD,oEAAkD;AAClD,iEAA+C;AAC/C,mEAAiD;AAEjD,mCAAmC;AACnC,iDAA+B;AAC/B,4DAA0C;AAC1C,oEAAkD;AAClD,sDAAoC;AACpC,iDAA+B;AAE/B,sCAAsC;AACtC,yDAAuC;AACvC,oDAAkC;AAClC,yDAAuC;AACvC,4DAA0C;AAC1C,uDAAqC;AAErC,kCAAkC;AAClC,wDAAsC;AACtC,oDAAkC"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/schemas/identity/index.ts"],"names":[],"mappings":";AAAA;;;;GAIG;;;;;;;;;;;;;;;;AAEH,gDAA8B;AAC9B,gDAA8B;AAC9B,oDAAkC;AAClC,kDAAgC;AAChC,kDAAgC;AAChC,gDAA8B;AAC9B,mDAAiC;AACjC,yDAAuC;AACvC,sDAAoC;AAEpC,oDAAoD;AACpD,iDAA+B;AAE/B,gDAAgD;AAChD,8DAA4C;AAC5C,kEAAgD;AAChD,kEAAgD;AAChD,kEAAgD;AAChD,oEAAkD;AAClD,iEAA+C;AAC/C,mEAAiD;AAEjD,mCAAmC;AACnC,iDAA+B;AAC/B,4DAA0C;AAC1C,oEAAkD;AAClD,sDAAoC;AACpC,iDAA+B;AAE/B,sCAAsC;AACtC,yDAAuC;AACvC,oDAAkC;AAClC,yDAAuC;AACvC,4DAA0C;AAC1C,uDAAqC;AAErC,kCAAkC;AAClC,wDAAsC;AACtC,oDAAkC"}
@@ -48,7 +48,7 @@ export declare const createLeaveRequestSchema: z.ZodObject<{
48
48
  }, "strip", z.ZodTypeAny, {
49
49
  startDate: string;
50
50
  endDate: string;
51
- leaveType: "professional_development" | "personal" | "other" | "annual" | "sick" | "bereavement" | "maternity" | "paternity" | "family_medical" | "jury_duty" | "military" | "sabbatical" | "unpaid";
51
+ leaveType: "other" | "professional_development" | "personal" | "annual" | "sick" | "bereavement" | "maternity" | "paternity" | "family_medical" | "jury_duty" | "military" | "sabbatical" | "unpaid";
52
52
  durationType: "full_day" | "half_day_am" | "half_day_pm" | "hours";
53
53
  reason?: string | undefined;
54
54
  notes?: string | undefined;
@@ -65,7 +65,7 @@ export declare const createLeaveRequestSchema: z.ZodObject<{
65
65
  }, {
66
66
  startDate: string;
67
67
  endDate: string;
68
- leaveType: "professional_development" | "personal" | "other" | "annual" | "sick" | "bereavement" | "maternity" | "paternity" | "family_medical" | "jury_duty" | "military" | "sabbatical" | "unpaid";
68
+ leaveType: "other" | "professional_development" | "personal" | "annual" | "sick" | "bereavement" | "maternity" | "paternity" | "family_medical" | "jury_duty" | "military" | "sabbatical" | "unpaid";
69
69
  reason?: string | undefined;
70
70
  notes?: string | undefined;
71
71
  documentUrl?: string | undefined;
@@ -108,7 +108,7 @@ export declare const createLeaveRequestWithValidationSchema: z.ZodEffects<z.ZodO
108
108
  }, "strip", z.ZodTypeAny, {
109
109
  startDate: string;
110
110
  endDate: string;
111
- leaveType: "professional_development" | "personal" | "other" | "annual" | "sick" | "bereavement" | "maternity" | "paternity" | "family_medical" | "jury_duty" | "military" | "sabbatical" | "unpaid";
111
+ leaveType: "other" | "professional_development" | "personal" | "annual" | "sick" | "bereavement" | "maternity" | "paternity" | "family_medical" | "jury_duty" | "military" | "sabbatical" | "unpaid";
112
112
  durationType: "full_day" | "half_day_am" | "half_day_pm" | "hours";
113
113
  reason?: string | undefined;
114
114
  notes?: string | undefined;
@@ -125,7 +125,7 @@ export declare const createLeaveRequestWithValidationSchema: z.ZodEffects<z.ZodO
125
125
  }, {
126
126
  startDate: string;
127
127
  endDate: string;
128
- leaveType: "professional_development" | "personal" | "other" | "annual" | "sick" | "bereavement" | "maternity" | "paternity" | "family_medical" | "jury_duty" | "military" | "sabbatical" | "unpaid";
128
+ leaveType: "other" | "professional_development" | "personal" | "annual" | "sick" | "bereavement" | "maternity" | "paternity" | "family_medical" | "jury_duty" | "military" | "sabbatical" | "unpaid";
129
129
  reason?: string | undefined;
130
130
  notes?: string | undefined;
131
131
  documentUrl?: string | undefined;
@@ -142,7 +142,7 @@ export declare const createLeaveRequestWithValidationSchema: z.ZodEffects<z.ZodO
142
142
  }>, {
143
143
  startDate: string;
144
144
  endDate: string;
145
- leaveType: "professional_development" | "personal" | "other" | "annual" | "sick" | "bereavement" | "maternity" | "paternity" | "family_medical" | "jury_duty" | "military" | "sabbatical" | "unpaid";
145
+ leaveType: "other" | "professional_development" | "personal" | "annual" | "sick" | "bereavement" | "maternity" | "paternity" | "family_medical" | "jury_duty" | "military" | "sabbatical" | "unpaid";
146
146
  durationType: "full_day" | "half_day_am" | "half_day_pm" | "hours";
147
147
  reason?: string | undefined;
148
148
  notes?: string | undefined;
@@ -159,7 +159,7 @@ export declare const createLeaveRequestWithValidationSchema: z.ZodEffects<z.ZodO
159
159
  }, {
160
160
  startDate: string;
161
161
  endDate: string;
162
- leaveType: "professional_development" | "personal" | "other" | "annual" | "sick" | "bereavement" | "maternity" | "paternity" | "family_medical" | "jury_duty" | "military" | "sabbatical" | "unpaid";
162
+ leaveType: "other" | "professional_development" | "personal" | "annual" | "sick" | "bereavement" | "maternity" | "paternity" | "family_medical" | "jury_duty" | "military" | "sabbatical" | "unpaid";
163
163
  reason?: string | undefined;
164
164
  notes?: string | undefined;
165
165
  documentUrl?: string | undefined;
@@ -208,7 +208,7 @@ export declare const updateLeaveRequestSchema: z.ZodEffects<z.ZodObject<{
208
208
  documentUrl?: string | undefined;
209
209
  documentFileName?: string | undefined;
210
210
  hours?: number | undefined;
211
- leaveType?: "professional_development" | "personal" | "other" | "annual" | "sick" | "bereavement" | "maternity" | "paternity" | "family_medical" | "jury_duty" | "military" | "sabbatical" | "unpaid" | undefined;
211
+ leaveType?: "other" | "professional_development" | "personal" | "annual" | "sick" | "bereavement" | "maternity" | "paternity" | "family_medical" | "jury_duty" | "military" | "sabbatical" | "unpaid" | undefined;
212
212
  durationType?: "full_day" | "half_day_am" | "half_day_pm" | "hours" | undefined;
213
213
  substituteStaffId?: string | undefined;
214
214
  coverageNotes?: string | undefined;
@@ -225,7 +225,7 @@ export declare const updateLeaveRequestSchema: z.ZodEffects<z.ZodObject<{
225
225
  documentUrl?: string | undefined;
226
226
  documentFileName?: string | undefined;
227
227
  hours?: number | undefined;
228
- leaveType?: "professional_development" | "personal" | "other" | "annual" | "sick" | "bereavement" | "maternity" | "paternity" | "family_medical" | "jury_duty" | "military" | "sabbatical" | "unpaid" | undefined;
228
+ leaveType?: "other" | "professional_development" | "personal" | "annual" | "sick" | "bereavement" | "maternity" | "paternity" | "family_medical" | "jury_duty" | "military" | "sabbatical" | "unpaid" | undefined;
229
229
  durationType?: "full_day" | "half_day_am" | "half_day_pm" | "hours" | undefined;
230
230
  substituteStaffId?: string | undefined;
231
231
  coverageNotes?: string | undefined;
@@ -242,7 +242,7 @@ export declare const updateLeaveRequestSchema: z.ZodEffects<z.ZodObject<{
242
242
  documentUrl?: string | undefined;
243
243
  documentFileName?: string | undefined;
244
244
  hours?: number | undefined;
245
- leaveType?: "professional_development" | "personal" | "other" | "annual" | "sick" | "bereavement" | "maternity" | "paternity" | "family_medical" | "jury_duty" | "military" | "sabbatical" | "unpaid" | undefined;
245
+ leaveType?: "other" | "professional_development" | "personal" | "annual" | "sick" | "bereavement" | "maternity" | "paternity" | "family_medical" | "jury_duty" | "military" | "sabbatical" | "unpaid" | undefined;
246
246
  durationType?: "full_day" | "half_day_am" | "half_day_pm" | "hours" | undefined;
247
247
  substituteStaffId?: string | undefined;
248
248
  coverageNotes?: string | undefined;
@@ -259,7 +259,7 @@ export declare const updateLeaveRequestSchema: z.ZodEffects<z.ZodObject<{
259
259
  documentUrl?: string | undefined;
260
260
  documentFileName?: string | undefined;
261
261
  hours?: number | undefined;
262
- leaveType?: "professional_development" | "personal" | "other" | "annual" | "sick" | "bereavement" | "maternity" | "paternity" | "family_medical" | "jury_duty" | "military" | "sabbatical" | "unpaid" | undefined;
262
+ leaveType?: "other" | "professional_development" | "personal" | "annual" | "sick" | "bereavement" | "maternity" | "paternity" | "family_medical" | "jury_duty" | "military" | "sabbatical" | "unpaid" | undefined;
263
263
  durationType?: "full_day" | "half_day_am" | "half_day_pm" | "hours" | undefined;
264
264
  substituteStaffId?: string | undefined;
265
265
  coverageNotes?: string | undefined;
@@ -320,7 +320,7 @@ export declare const leaveRequestResponseSchema: z.ZodObject<{
320
320
  schoolId: string;
321
321
  staffId: string;
322
322
  staffName: string;
323
- leaveType: "professional_development" | "personal" | "other" | "annual" | "sick" | "bereavement" | "maternity" | "paternity" | "family_medical" | "jury_duty" | "military" | "sabbatical" | "unpaid";
323
+ leaveType: "other" | "professional_development" | "personal" | "annual" | "sick" | "bereavement" | "maternity" | "paternity" | "family_medical" | "jury_duty" | "military" | "sabbatical" | "unpaid";
324
324
  durationType: "full_day" | "half_day_am" | "half_day_pm" | "hours";
325
325
  leaveId: string;
326
326
  totalDays: number;
@@ -352,7 +352,7 @@ export declare const leaveRequestResponseSchema: z.ZodObject<{
352
352
  schoolId: string;
353
353
  staffId: string;
354
354
  staffName: string;
355
- leaveType: "professional_development" | "personal" | "other" | "annual" | "sick" | "bereavement" | "maternity" | "paternity" | "family_medical" | "jury_duty" | "military" | "sabbatical" | "unpaid";
355
+ leaveType: "other" | "professional_development" | "personal" | "annual" | "sick" | "bereavement" | "maternity" | "paternity" | "family_medical" | "jury_duty" | "military" | "sabbatical" | "unpaid";
356
356
  durationType: "full_day" | "half_day_am" | "half_day_pm" | "hours";
357
357
  leaveId: string;
358
358
  totalDays: number;
@@ -427,7 +427,7 @@ export declare const leaveListResponseSchema: z.ZodObject<{
427
427
  schoolId: string;
428
428
  staffId: string;
429
429
  staffName: string;
430
- leaveType: "professional_development" | "personal" | "other" | "annual" | "sick" | "bereavement" | "maternity" | "paternity" | "family_medical" | "jury_duty" | "military" | "sabbatical" | "unpaid";
430
+ leaveType: "other" | "professional_development" | "personal" | "annual" | "sick" | "bereavement" | "maternity" | "paternity" | "family_medical" | "jury_duty" | "military" | "sabbatical" | "unpaid";
431
431
  durationType: "full_day" | "half_day_am" | "half_day_pm" | "hours";
432
432
  leaveId: string;
433
433
  totalDays: number;
@@ -459,7 +459,7 @@ export declare const leaveListResponseSchema: z.ZodObject<{
459
459
  schoolId: string;
460
460
  staffId: string;
461
461
  staffName: string;
462
- leaveType: "professional_development" | "personal" | "other" | "annual" | "sick" | "bereavement" | "maternity" | "paternity" | "family_medical" | "jury_duty" | "military" | "sabbatical" | "unpaid";
462
+ leaveType: "other" | "professional_development" | "personal" | "annual" | "sick" | "bereavement" | "maternity" | "paternity" | "family_medical" | "jury_duty" | "military" | "sabbatical" | "unpaid";
463
463
  durationType: "full_day" | "half_day_am" | "half_day_pm" | "hours";
464
464
  leaveId: string;
465
465
  totalDays: number;
@@ -496,7 +496,7 @@ export declare const leaveListResponseSchema: z.ZodObject<{
496
496
  schoolId: string;
497
497
  staffId: string;
498
498
  staffName: string;
499
- leaveType: "professional_development" | "personal" | "other" | "annual" | "sick" | "bereavement" | "maternity" | "paternity" | "family_medical" | "jury_duty" | "military" | "sabbatical" | "unpaid";
499
+ leaveType: "other" | "professional_development" | "personal" | "annual" | "sick" | "bereavement" | "maternity" | "paternity" | "family_medical" | "jury_duty" | "military" | "sabbatical" | "unpaid";
500
500
  durationType: "full_day" | "half_day_am" | "half_day_pm" | "hours";
501
501
  leaveId: string;
502
502
  totalDays: number;
@@ -533,7 +533,7 @@ export declare const leaveListResponseSchema: z.ZodObject<{
533
533
  schoolId: string;
534
534
  staffId: string;
535
535
  staffName: string;
536
- leaveType: "professional_development" | "personal" | "other" | "annual" | "sick" | "bereavement" | "maternity" | "paternity" | "family_medical" | "jury_duty" | "military" | "sabbatical" | "unpaid";
536
+ leaveType: "other" | "professional_development" | "personal" | "annual" | "sick" | "bereavement" | "maternity" | "paternity" | "family_medical" | "jury_duty" | "military" | "sabbatical" | "unpaid";
537
537
  durationType: "full_day" | "half_day_am" | "half_day_pm" | "hours";
538
538
  leaveId: string;
539
539
  totalDays: number;
@@ -576,7 +576,7 @@ export declare const leaveFilterSchema: z.ZodObject<{
576
576
  cursor?: string | undefined;
577
577
  schoolId?: string | undefined;
578
578
  staffId?: string | undefined;
579
- leaveType?: "professional_development" | "personal" | "other" | "annual" | "sick" | "bereavement" | "maternity" | "paternity" | "family_medical" | "jury_duty" | "military" | "sabbatical" | "unpaid" | undefined;
579
+ leaveType?: "other" | "professional_development" | "personal" | "annual" | "sick" | "bereavement" | "maternity" | "paternity" | "family_medical" | "jury_duty" | "military" | "sabbatical" | "unpaid" | undefined;
580
580
  startDateFrom?: string | undefined;
581
581
  startDateTo?: string | undefined;
582
582
  }, {
@@ -585,7 +585,7 @@ export declare const leaveFilterSchema: z.ZodObject<{
585
585
  cursor?: string | undefined;
586
586
  schoolId?: string | undefined;
587
587
  staffId?: string | undefined;
588
- leaveType?: "professional_development" | "personal" | "other" | "annual" | "sick" | "bereavement" | "maternity" | "paternity" | "family_medical" | "jury_duty" | "military" | "sabbatical" | "unpaid" | undefined;
588
+ leaveType?: "other" | "professional_development" | "personal" | "annual" | "sick" | "bereavement" | "maternity" | "paternity" | "family_medical" | "jury_duty" | "military" | "sabbatical" | "unpaid" | undefined;
589
589
  startDateFrom?: string | undefined;
590
590
  startDateTo?: string | undefined;
591
591
  }>;
@@ -618,14 +618,14 @@ export declare const leaveBalanceSchema: z.ZodObject<{
618
618
  carryOver: z.ZodOptional<z.ZodNumber>;
619
619
  }, "strip", z.ZodTypeAny, {
620
620
  pending: number;
621
- leaveType: "professional_development" | "personal" | "other" | "annual" | "sick" | "bereavement" | "maternity" | "paternity" | "family_medical" | "jury_duty" | "military" | "sabbatical" | "unpaid";
621
+ leaveType: "other" | "professional_development" | "personal" | "annual" | "sick" | "bereavement" | "maternity" | "paternity" | "family_medical" | "jury_duty" | "military" | "sabbatical" | "unpaid";
622
622
  accrued: number;
623
623
  used: number;
624
624
  available: number;
625
625
  carryOver?: number | undefined;
626
626
  }, {
627
627
  pending: number;
628
- leaveType: "professional_development" | "personal" | "other" | "annual" | "sick" | "bereavement" | "maternity" | "paternity" | "family_medical" | "jury_duty" | "military" | "sabbatical" | "unpaid";
628
+ leaveType: "other" | "professional_development" | "personal" | "annual" | "sick" | "bereavement" | "maternity" | "paternity" | "family_medical" | "jury_duty" | "military" | "sabbatical" | "unpaid";
629
629
  accrued: number;
630
630
  used: number;
631
631
  available: number;
@@ -637,7 +637,7 @@ export declare const leaveBalanceSchema: z.ZodObject<{
637
637
  fiscalYear: string;
638
638
  balances: {
639
639
  pending: number;
640
- leaveType: "professional_development" | "personal" | "other" | "annual" | "sick" | "bereavement" | "maternity" | "paternity" | "family_medical" | "jury_duty" | "military" | "sabbatical" | "unpaid";
640
+ leaveType: "other" | "professional_development" | "personal" | "annual" | "sick" | "bereavement" | "maternity" | "paternity" | "family_medical" | "jury_duty" | "military" | "sabbatical" | "unpaid";
641
641
  accrued: number;
642
642
  used: number;
643
643
  available: number;
@@ -649,7 +649,7 @@ export declare const leaveBalanceSchema: z.ZodObject<{
649
649
  fiscalYear: string;
650
650
  balances: {
651
651
  pending: number;
652
- leaveType: "professional_development" | "personal" | "other" | "annual" | "sick" | "bereavement" | "maternity" | "paternity" | "family_medical" | "jury_duty" | "military" | "sabbatical" | "unpaid";
652
+ leaveType: "other" | "professional_development" | "personal" | "annual" | "sick" | "bereavement" | "maternity" | "paternity" | "family_medical" | "jury_duty" | "military" | "sabbatical" | "unpaid";
653
653
  accrued: number;
654
654
  used: number;
655
655
  available: number;
@@ -675,13 +675,13 @@ export declare const leaveSummarySchema: z.ZodObject<{
675
675
  status: "completed" | "pending" | "rejected" | "approved" | "cancelled" | "in_progress";
676
676
  startDate: string;
677
677
  endDate: string;
678
- leaveType: "professional_development" | "personal" | "other" | "annual" | "sick" | "bereavement" | "maternity" | "paternity" | "family_medical" | "jury_duty" | "military" | "sabbatical" | "unpaid";
678
+ leaveType: "other" | "professional_development" | "personal" | "annual" | "sick" | "bereavement" | "maternity" | "paternity" | "family_medical" | "jury_duty" | "military" | "sabbatical" | "unpaid";
679
679
  leaveId: string;
680
680
  }, {
681
681
  status: "completed" | "pending" | "rejected" | "approved" | "cancelled" | "in_progress";
682
682
  startDate: string;
683
683
  endDate: string;
684
- leaveType: "professional_development" | "personal" | "other" | "annual" | "sick" | "bereavement" | "maternity" | "paternity" | "family_medical" | "jury_duty" | "military" | "sabbatical" | "unpaid";
684
+ leaveType: "other" | "professional_development" | "personal" | "annual" | "sick" | "bereavement" | "maternity" | "paternity" | "family_medical" | "jury_duty" | "military" | "sabbatical" | "unpaid";
685
685
  leaveId: string;
686
686
  }>, "many">>;
687
687
  }, "strip", z.ZodTypeAny, {
@@ -695,7 +695,7 @@ export declare const leaveSummarySchema: z.ZodObject<{
695
695
  status: "completed" | "pending" | "rejected" | "approved" | "cancelled" | "in_progress";
696
696
  startDate: string;
697
697
  endDate: string;
698
- leaveType: "professional_development" | "personal" | "other" | "annual" | "sick" | "bereavement" | "maternity" | "paternity" | "family_medical" | "jury_duty" | "military" | "sabbatical" | "unpaid";
698
+ leaveType: "other" | "professional_development" | "personal" | "annual" | "sick" | "bereavement" | "maternity" | "paternity" | "family_medical" | "jury_duty" | "military" | "sabbatical" | "unpaid";
699
699
  leaveId: string;
700
700
  }[] | undefined;
701
701
  }, {
@@ -709,7 +709,7 @@ export declare const leaveSummarySchema: z.ZodObject<{
709
709
  status: "completed" | "pending" | "rejected" | "approved" | "cancelled" | "in_progress";
710
710
  startDate: string;
711
711
  endDate: string;
712
- leaveType: "professional_development" | "personal" | "other" | "annual" | "sick" | "bereavement" | "maternity" | "paternity" | "family_medical" | "jury_duty" | "military" | "sabbatical" | "unpaid";
712
+ leaveType: "other" | "professional_development" | "personal" | "annual" | "sick" | "bereavement" | "maternity" | "paternity" | "family_medical" | "jury_duty" | "military" | "sabbatical" | "unpaid";
713
713
  leaveId: string;
714
714
  }[] | undefined;
715
715
  }>;