@brivioio/api-server-types 7.3.0 → 7.5.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 (53) hide show
  1. package/dist/index.d.ts +1 -5
  2. package/dist/index.d.ts.map +1 -1
  3. package/dist/index.js +1 -5
  4. package/dist/{admin.types.d.ts → organizationUsers.types.d.ts} +11 -5
  5. package/dist/organizationUsers.types.d.ts.map +1 -0
  6. package/dist/organizations.types.d.ts +10 -92
  7. package/dist/organizations.types.d.ts.map +1 -1
  8. package/dist/organizations.types.js +1 -8
  9. package/dist/utils.types.d.ts +2 -9
  10. package/dist/utils.types.d.ts.map +1 -1
  11. package/dist/utils.types.js +1 -9
  12. package/package.json +1 -1
  13. package/dist/admin.types.d.ts.map +0 -1
  14. package/dist/applications.types.d.ts +0 -468
  15. package/dist/applications.types.d.ts.map +0 -1
  16. package/dist/applications.types.js +0 -16
  17. package/dist/candidates/candidateNotes.types.d.ts +0 -25
  18. package/dist/candidates/candidateNotes.types.d.ts.map +0 -1
  19. package/dist/candidates/candidateNotes.types.js +0 -1
  20. package/dist/candidates/candidates.types.d.ts +0 -223
  21. package/dist/candidates/candidates.types.d.ts.map +0 -1
  22. package/dist/candidates/candidates.types.js +0 -1
  23. package/dist/candidates/enums.types.d.ts +0 -76
  24. package/dist/candidates/enums.types.d.ts.map +0 -1
  25. package/dist/candidates/enums.types.js +0 -86
  26. package/dist/candidates/index.d.ts +0 -5
  27. package/dist/candidates/index.d.ts.map +0 -1
  28. package/dist/candidates/index.js +0 -4
  29. package/dist/candidates/others.types.d.ts +0 -132
  30. package/dist/candidates/others.types.d.ts.map +0 -1
  31. package/dist/candidates/others.types.js +0 -1
  32. package/dist/globalCandidates/globalCandidates.types.d.ts +0 -176
  33. package/dist/globalCandidates/globalCandidates.types.d.ts.map +0 -1
  34. package/dist/globalCandidates/globalCandidates.types.js +0 -9
  35. package/dist/globalCandidates/index.d.ts +0 -2
  36. package/dist/globalCandidates/index.d.ts.map +0 -1
  37. package/dist/globalCandidates/index.js +0 -1
  38. package/dist/positions/enums.types.d.ts +0 -31
  39. package/dist/positions/enums.types.d.ts.map +0 -1
  40. package/dist/positions/enums.types.js +0 -36
  41. package/dist/positions/index.d.ts +0 -5
  42. package/dist/positions/index.d.ts.map +0 -1
  43. package/dist/positions/index.js +0 -4
  44. package/dist/positions/listApplications.types.d.ts +0 -25
  45. package/dist/positions/listApplications.types.d.ts.map +0 -1
  46. package/dist/positions/listApplications.types.js +0 -1
  47. package/dist/positions/listViewConfig.types.d.ts +0 -549
  48. package/dist/positions/listViewConfig.types.d.ts.map +0 -1
  49. package/dist/positions/listViewConfig.types.js +0 -275
  50. package/dist/positions/positions.types.d.ts +0 -363
  51. package/dist/positions/positions.types.d.ts.map +0 -1
  52. package/dist/positions/positions.types.js +0 -1
  53. /package/dist/{admin.types.js → organizationUsers.types.js} +0 -0
@@ -1,549 +0,0 @@
1
- /**
2
- * Filter and View Configuration Types for Position Lists
3
- *
4
- * This type system supports comprehensive filtering, sorting, searching, and column visibility
5
- * management for candidate lists within positions.
6
- *
7
- * Key Features:
8
- * 1. Type-safe filters for different data types (string, number, boolean, array, date)
9
- * 2. Single-field sorting (one column at a time)
10
- * 3. Column visibility management
11
- * 4. Support for dynamic position question fields
12
- *
13
- * Design Decisions:
14
- * - Each filter type has a 'none' operation to represent "no filter applied"
15
- * - Each filter type has a 'blank' operation to filter for empty/null values
16
- * - deepProfileStatus is treated as a string filter (for enum values like 'queued', 'processing', etc.)
17
- * - Array sorting uses array length (useful for skills - more skills = higher in desc order)
18
- * - Position questions use discriminated unions to ensure type safety based on question type
19
- * - FieldFilterConfig uses discriminated unions to ensure correct filter type for each field
20
- * - Only one column can be sorted at a time (single-field sorting)
21
- */
22
- /**
23
- * Filter type for each field
24
- */
25
- export type FilterType = 'string' | 'number' | 'boolean' | 'array' | 'date';
26
- /**
27
- * Source of the field data (application document or joined candidate document)
28
- */
29
- export type FieldSource = 'application' | 'candidate';
30
- /**
31
- * Field definition containing all metadata needed across the codebase
32
- */
33
- export interface CandidateFieldDefinition {
34
- filterType: FilterType;
35
- dbPath: string;
36
- source: FieldSource;
37
- isArrayField?: boolean;
38
- isObjectId?: boolean;
39
- }
40
- /**
41
- * SINGLE SOURCE OF TRUTH for all candidate field definitions.
42
- * When adding a new filterable field, add it here and everything else will derive from it.
43
- */
44
- export declare const CANDIDATE_FIELD_DEFINITIONS: {
45
- readonly applicationId: {
46
- readonly filterType: "string";
47
- readonly dbPath: "_id";
48
- readonly source: "application";
49
- readonly isObjectId: true;
50
- };
51
- readonly applicationSubmittedAt: {
52
- readonly filterType: "date";
53
- readonly dbPath: "createdAt";
54
- readonly source: "application";
55
- };
56
- readonly positionTitle: {
57
- readonly filterType: "string";
58
- readonly dbPath: "positionId";
59
- readonly source: "application";
60
- readonly isObjectId: true;
61
- };
62
- readonly candidateId: {
63
- readonly filterType: "string";
64
- readonly dbPath: "candidate._id";
65
- readonly source: "candidate";
66
- readonly isObjectId: true;
67
- };
68
- readonly baseProfileUpdatedAt: {
69
- readonly filterType: "date";
70
- readonly dbPath: "candidate.baseProfile.updatedAt";
71
- readonly source: "candidate";
72
- };
73
- readonly cvUpdatedAt: {
74
- readonly filterType: "date";
75
- readonly dbPath: "candidate.cv.updatedAt";
76
- readonly source: "candidate";
77
- };
78
- readonly lastDeepProfileRequestedAt: {
79
- readonly filterType: "date";
80
- readonly dbPath: "candidate.deepProfile.lastRequestedAt";
81
- readonly source: "candidate";
82
- };
83
- readonly lastSuccessfulDeepProfileAt: {
84
- readonly filterType: "date";
85
- readonly dbPath: "candidate.deepProfile.lastSuccessfulRunAt";
86
- readonly source: "candidate";
87
- };
88
- readonly deepProfileStatus: {
89
- readonly filterType: "string";
90
- readonly dbPath: "candidate.deepProfile.status";
91
- readonly source: "candidate";
92
- };
93
- readonly scrapedProfilesLastRequestedAt: {
94
- readonly filterType: "date";
95
- readonly dbPath: "candidate.scrapedProfiles.lastRequestedAt";
96
- readonly source: "candidate";
97
- };
98
- readonly scrapedProfilesLastSuccessfulRunAt: {
99
- readonly filterType: "date";
100
- readonly dbPath: "candidate.scrapedProfiles.lastSuccessfulRunAt";
101
- readonly source: "candidate";
102
- };
103
- readonly scrapedProfilesStatus: {
104
- readonly filterType: "string";
105
- readonly dbPath: "candidate.scrapedProfiles.status";
106
- readonly source: "candidate";
107
- };
108
- readonly candidateEmail: {
109
- readonly filterType: "string";
110
- readonly dbPath: "candidate.email";
111
- readonly source: "candidate";
112
- };
113
- readonly countryCode: {
114
- readonly filterType: "number";
115
- readonly dbPath: "candidate.baseProfile.phone.countryCode";
116
- readonly source: "candidate";
117
- };
118
- readonly phoneNumber: {
119
- readonly filterType: "number";
120
- readonly dbPath: "candidate.baseProfile.phone.phoneNumber";
121
- readonly source: "candidate";
122
- };
123
- readonly linkedinUrl: {
124
- readonly filterType: "string";
125
- readonly dbPath: "candidate.baseProfile.urls.linkedin";
126
- readonly source: "candidate";
127
- };
128
- readonly githubUrl: {
129
- readonly filterType: "string";
130
- readonly dbPath: "candidate.baseProfile.urls.github";
131
- readonly source: "candidate";
132
- };
133
- readonly codeforcesUrl: {
134
- readonly filterType: "string";
135
- readonly dbPath: "candidate.baseProfile.urls.codeforces";
136
- readonly source: "candidate";
137
- };
138
- readonly codechefUrl: {
139
- readonly filterType: "string";
140
- readonly dbPath: "candidate.baseProfile.urls.codechef";
141
- readonly source: "candidate";
142
- };
143
- readonly leetcodeUrl: {
144
- readonly filterType: "string";
145
- readonly dbPath: "candidate.baseProfile.urls.leetcode";
146
- readonly source: "candidate";
147
- };
148
- readonly fullTimeExperienceInYears: {
149
- readonly filterType: "number";
150
- readonly dbPath: "candidate.baseProfile.fullTimeExperienceInYears";
151
- readonly source: "candidate";
152
- };
153
- readonly coreSkills: {
154
- readonly filterType: "array";
155
- readonly dbPath: "candidate.baseProfile.skills";
156
- readonly source: "candidate";
157
- readonly isArrayField: true;
158
- };
159
- readonly noticePeriod: {
160
- readonly filterType: "number";
161
- readonly dbPath: "candidate.baseProfile.noticePeriodInDays";
162
- readonly source: "candidate";
163
- };
164
- readonly currentSalary: {
165
- readonly filterType: "number";
166
- readonly dbPath: "candidate.baseProfile.currentCashCompInLPA";
167
- readonly source: "candidate";
168
- };
169
- readonly expectedSalary: {
170
- readonly filterType: "number";
171
- readonly dbPath: "candidate.baseProfile.expectedCashCompInLPA";
172
- readonly source: "candidate";
173
- };
174
- readonly currentCity: {
175
- readonly filterType: "string";
176
- readonly dbPath: "candidate.baseProfile.currentLocation.city";
177
- readonly source: "candidate";
178
- };
179
- readonly currentState: {
180
- readonly filterType: "string";
181
- readonly dbPath: "candidate.baseProfile.currentLocation.state";
182
- readonly source: "candidate";
183
- };
184
- readonly preferredCity: {
185
- readonly filterType: "string";
186
- readonly dbPath: "candidate.baseProfile.preferredLocation.city";
187
- readonly source: "candidate";
188
- };
189
- readonly preferredState: {
190
- readonly filterType: "string";
191
- readonly dbPath: "candidate.baseProfile.preferredLocation.state";
192
- readonly source: "candidate";
193
- };
194
- readonly computedFullName: {
195
- readonly filterType: "string";
196
- readonly dbPath: "candidate.computedFields.fullName";
197
- readonly source: "candidate";
198
- };
199
- readonly computedWhatsAppUrl: {
200
- readonly filterType: "string";
201
- readonly dbPath: "candidate.computedFields.whatsAppUrl";
202
- readonly source: "candidate";
203
- };
204
- readonly computedAllSkills: {
205
- readonly filterType: "array";
206
- readonly dbPath: "candidate.computedFields.allSkills";
207
- readonly source: "candidate";
208
- readonly isArrayField: true;
209
- };
210
- readonly computedFullTimeExperienceInYears: {
211
- readonly filterType: "number";
212
- readonly dbPath: "candidate.computedFields.fullTimeExperienceInYears";
213
- readonly source: "candidate";
214
- };
215
- readonly computedIsCurrentlyEmployedFullTime: {
216
- readonly filterType: "boolean";
217
- readonly dbPath: "candidate.computedFields.isCurrentlyEmployedFullTime";
218
- readonly source: "candidate";
219
- };
220
- readonly computedNumberOfFullTimeJobSwitches: {
221
- readonly filterType: "number";
222
- readonly dbPath: "candidate.computedFields.numberOfFullTimeJobSwitches";
223
- readonly source: "candidate";
224
- };
225
- readonly computedLatestFullTimeEmployer: {
226
- readonly filterType: "string";
227
- readonly dbPath: "candidate.computedFields.latestFullTimeEmployer";
228
- readonly source: "candidate";
229
- };
230
- readonly computedMonthsSpentInLatestFullTimeRole: {
231
- readonly filterType: "number";
232
- readonly dbPath: "candidate.computedFields.monthsSpentInLatestFullTimeRole";
233
- readonly source: "candidate";
234
- };
235
- readonly computedMonthsSinceUnemployedFromLastFullTimeRole: {
236
- readonly filterType: "number";
237
- readonly dbPath: "candidate.computedFields.monthsSinceUnemployedFromLastFullTimeRole";
238
- readonly source: "candidate";
239
- };
240
- readonly computedLatestFullTimeRoleTitle: {
241
- readonly filterType: "string";
242
- readonly dbPath: "candidate.computedFields.latestFullTimeRoleTitle";
243
- readonly source: "candidate";
244
- };
245
- readonly organizationName: {
246
- readonly filterType: "string";
247
- readonly dbPath: "organizationNames";
248
- readonly source: "candidate";
249
- };
250
- readonly appliedPositions: {
251
- readonly filterType: "string";
252
- readonly dbPath: "appliedPositionIds";
253
- readonly source: "candidate";
254
- readonly isObjectId: true;
255
- };
256
- readonly candidateCreatedAt: {
257
- readonly filterType: "date";
258
- readonly dbPath: "createdAt";
259
- readonly source: "candidate";
260
- };
261
- };
262
- /**
263
- * All valid candidate field IDs (derived from CANDIDATE_FIELD_DEFINITIONS)
264
- */
265
- export type CandidateFieldId = keyof typeof CANDIDATE_FIELD_DEFINITIONS;
266
- export type SortDirection = 'asc' | 'desc';
267
- export type StringFilterOperation = {
268
- type: 'substring';
269
- value: string;
270
- } | {
271
- type: 'in';
272
- values: string[];
273
- } | {
274
- type: 'blank';
275
- } | {
276
- type: 'none';
277
- };
278
- export type StringFilter = {
279
- operation: StringFilterOperation;
280
- };
281
- export type NumberFilterOperation = {
282
- type: 'equals';
283
- value: number;
284
- } | {
285
- type: 'notEquals';
286
- value: number;
287
- } | {
288
- type: 'greaterThan';
289
- value: number;
290
- } | {
291
- type: 'lessThan';
292
- value: number;
293
- } | {
294
- type: 'greaterThanOrEqual';
295
- value: number;
296
- } | {
297
- type: 'lessThanOrEqual';
298
- value: number;
299
- } | {
300
- type: 'between';
301
- min: number;
302
- max: number;
303
- } | {
304
- type: 'in';
305
- values: number[];
306
- } | {
307
- type: 'blank';
308
- } | {
309
- type: 'none';
310
- };
311
- export type NumberFilter = {
312
- operation: NumberFilterOperation;
313
- };
314
- export type BooleanFilterOperation = {
315
- type: 'true';
316
- } | {
317
- type: 'false';
318
- } | {
319
- type: 'none';
320
- } | {
321
- type: 'blank';
322
- };
323
- export type BooleanFilter = {
324
- operation: BooleanFilterOperation;
325
- };
326
- export type ArrayFilterOperation = {
327
- type: 'containsAll';
328
- values: string[];
329
- } | {
330
- type: 'containsAny';
331
- values: string[];
332
- } | {
333
- type: 'blank';
334
- } | {
335
- type: 'none';
336
- };
337
- export type ArrayFilter = {
338
- operation: ArrayFilterOperation;
339
- };
340
- export type DateFilterOperation = {
341
- type: 'range';
342
- start?: number;
343
- end?: number;
344
- } | {
345
- type: 'in';
346
- values: number[];
347
- } | {
348
- type: 'blank';
349
- } | {
350
- type: 'none';
351
- };
352
- export type DateFilter = {
353
- operation: DateFilterOperation;
354
- };
355
- export type PositionQuestionFilter = {
356
- questionType: 'text';
357
- filter: StringFilter;
358
- } | {
359
- questionType: 'number';
360
- filter: NumberFilter;
361
- } | {
362
- questionType: 'mcq';
363
- filter: ArrayFilter;
364
- };
365
- export type FieldFilterConfig = {
366
- fieldId: 'applicationSubmittedAt';
367
- filter: DateFilter;
368
- } | {
369
- fieldId: 'cvUpdatedAt';
370
- filter: DateFilter;
371
- } | {
372
- fieldId: 'baseProfileUpdatedAt';
373
- filter: DateFilter;
374
- } | {
375
- fieldId: 'lastDeepProfileRequestedAt';
376
- filter: DateFilter;
377
- } | {
378
- fieldId: 'lastSuccessfulDeepProfileAt';
379
- filter: DateFilter;
380
- } | {
381
- fieldId: 'deepProfileStatus';
382
- filter: StringFilter;
383
- } | {
384
- fieldId: 'scrapedProfilesLastRequestedAt';
385
- filter: DateFilter;
386
- } | {
387
- fieldId: 'scrapedProfilesLastSuccessfulRunAt';
388
- filter: DateFilter;
389
- } | {
390
- fieldId: 'scrapedProfilesStatus';
391
- filter: StringFilter;
392
- } | {
393
- fieldId: 'candidateEmail';
394
- filter: StringFilter;
395
- } | {
396
- fieldId: 'candidateId';
397
- filter: StringFilter;
398
- } | {
399
- fieldId: 'applicationId';
400
- filter: StringFilter;
401
- } | {
402
- fieldId: 'positionTitle';
403
- filter: StringFilter;
404
- } | {
405
- fieldId: 'noticePeriod';
406
- filter: NumberFilter;
407
- } | {
408
- fieldId: 'currentSalary';
409
- filter: NumberFilter;
410
- } | {
411
- fieldId: 'expectedSalary';
412
- filter: NumberFilter;
413
- } | {
414
- fieldId: 'currentCity';
415
- filter: StringFilter;
416
- } | {
417
- fieldId: 'currentState';
418
- filter: StringFilter;
419
- } | {
420
- fieldId: 'preferredCity';
421
- filter: StringFilter;
422
- } | {
423
- fieldId: 'preferredState';
424
- filter: StringFilter;
425
- } | {
426
- fieldId: 'fullTimeExperienceInYears';
427
- filter: NumberFilter;
428
- } | {
429
- fieldId: 'countryCode';
430
- filter: NumberFilter;
431
- } | {
432
- fieldId: 'phoneNumber';
433
- filter: NumberFilter;
434
- } | {
435
- fieldId: 'linkedinUrl';
436
- filter: StringFilter;
437
- } | {
438
- fieldId: 'githubUrl';
439
- filter: StringFilter;
440
- } | {
441
- fieldId: 'codeforcesUrl';
442
- filter: StringFilter;
443
- } | {
444
- fieldId: 'codechefUrl';
445
- filter: StringFilter;
446
- } | {
447
- fieldId: 'leetcodeUrl';
448
- filter: StringFilter;
449
- } | {
450
- fieldId: 'coreSkills';
451
- filter: ArrayFilter;
452
- } | {
453
- fieldId: 'computedFullName';
454
- filter: StringFilter;
455
- } | {
456
- fieldId: 'computedWhatsAppUrl';
457
- filter: StringFilter;
458
- } | {
459
- fieldId: 'computedAllSkills';
460
- filter: ArrayFilter;
461
- } | {
462
- fieldId: 'computedFullTimeExperienceInYears';
463
- filter: NumberFilter;
464
- } | {
465
- fieldId: 'computedIsCurrentlyEmployedFullTime';
466
- filter: BooleanFilter;
467
- } | {
468
- fieldId: 'computedNumberOfFullTimeJobSwitches';
469
- filter: NumberFilter;
470
- } | {
471
- fieldId: 'computedLatestFullTimeEmployer';
472
- filter: StringFilter;
473
- } | {
474
- fieldId: 'computedMonthsSpentInLatestFullTimeRole';
475
- filter: NumberFilter;
476
- } | {
477
- fieldId: 'computedMonthsSinceUnemployedFromLastFullTimeRole';
478
- filter: NumberFilter;
479
- } | {
480
- fieldId: 'computedLatestFullTimeRoleTitle';
481
- filter: StringFilter;
482
- } | {
483
- fieldId: 'organizationName';
484
- filter: StringFilter;
485
- } | {
486
- fieldId: 'appliedPositions';
487
- filter: StringFilter;
488
- } | {
489
- fieldId: 'candidateCreatedAt';
490
- filter: DateFilter;
491
- } | {
492
- fieldId: string;
493
- filter: PositionQuestionFilter;
494
- };
495
- export type FieldSortConfig = {
496
- fieldId: CandidateFieldId | string;
497
- direction: SortDirection;
498
- } | null;
499
- export type ListViewConfig = {
500
- filters: FieldFilterConfig[];
501
- sort: FieldSortConfig;
502
- hiddenColumns: (CandidateFieldId | string)[];
503
- };
504
- /**
505
- * Example Usage:
506
- *
507
- * 1. Filter candidates with 3+ years experience, currently employed, and know BOTH React and TypeScript:
508
- * {
509
- * filters: [
510
- * { fieldId: 'fullTimeExperienceInYears', filter: { operation: { type: 'greaterThanOrEqual', value: 3 } } },
511
- * { fieldId: 'isCurrentlyEmployed', filter: { operation: { type: 'true' } } },
512
- * { fieldId: 'coreSkills', filter: { operation: { type: 'containsAll', values: ['React', 'TypeScript'] } } }
513
- * ],
514
- * sort: { fieldId: 'fullTimeExperienceInYears', direction: 'desc' },
515
- * hiddenColumns: ['phoneNumber', 'linkedinUrl']
516
- * }
517
- *
518
- * 2. Filter candidates who know EITHER React OR Vue OR Angular:
519
- * {
520
- * filters: [
521
- * { fieldId: 'coreSkills', filter: { operation: { type: 'containsAny', values: ['React', 'Vue', 'Angular'] } } }
522
- * ],
523
- * sort: { fieldId: 'fullTimeExperienceInYears', direction: 'desc' },
524
- * hiddenColumns: []
525
- * }
526
- *
527
- * 3. Filter by position question (custom field with containsAll):
528
- * {
529
- * filters: [
530
- * {
531
- * fieldId: 'question-id-123',
532
- * filter: { questionType: 'mcq', filter: { operation: { type: 'containsAll', values: ['Option A', 'Option B'] } } }
533
- * }
534
- * ],
535
- * sort: null,
536
- * hiddenColumns: []
537
- * }
538
- *
539
- * 4. Filter for candidates with blank/missing fields:
540
- * {
541
- * filters: [
542
- * { fieldId: 'linkedinUrl', filter: { operation: { type: 'blank' } } },
543
- * { fieldId: 'currentSalary', filter: { operation: { type: 'blank' } } }
544
- * ],
545
- * sort: null,
546
- * hiddenColumns: []
547
- * }
548
- */
549
- //# sourceMappingURL=listViewConfig.types.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"listViewConfig.types.d.ts","sourceRoot":"","sources":["../../src/positions/listViewConfig.types.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;GAoBG;AAMH;;GAEG;AACH,MAAM,MAAM,UAAU,GAAG,QAAQ,GAAG,QAAQ,GAAG,SAAS,GAAG,OAAO,GAAG,MAAM,CAAC;AAE5E;;GAEG;AACH,MAAM,MAAM,WAAW,GAAG,aAAa,GAAG,WAAW,CAAC;AAEtD;;GAEG;AACH,MAAM,WAAW,wBAAwB;IACvC,UAAU,EAAE,UAAU,CAAC;IACvB,MAAM,EAAE,MAAM,CAAC;IACf,MAAM,EAAE,WAAW,CAAC;IACpB,YAAY,CAAC,EAAE,OAAO,CAAC;IACvB,UAAU,CAAC,EAAE,OAAO,CAAC;CACtB;AAED;;;GAGG;AACH,eAAO,MAAM,2BAA2B;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CA8MqB,CAAC;AAM9D;;GAEG;AACH,MAAM,MAAM,gBAAgB,GAAG,MAAM,OAAO,2BAA2B,CAAC;AAOxE,MAAM,MAAM,aAAa,GAAG,KAAK,GAAG,MAAM,CAAC;AAG3C,MAAM,MAAM,qBAAqB,GAC7B;IAAE,IAAI,EAAE,WAAW,CAAC;IAAC,KAAK,EAAE,MAAM,CAAA;CAAE,GACpC;IAAE,IAAI,EAAE,IAAI,CAAC;IAAC,MAAM,EAAE,MAAM,EAAE,CAAA;CAAE,GAChC;IAAE,IAAI,EAAE,OAAO,CAAA;CAAE,GACjB;IAAE,IAAI,EAAE,MAAM,CAAA;CAAE,CAAC;AAErB,MAAM,MAAM,YAAY,GAAG;IACzB,SAAS,EAAE,qBAAqB,CAAC;CAClC,CAAC;AAGF,MAAM,MAAM,qBAAqB,GAC7B;IAAE,IAAI,EAAE,QAAQ,CAAC;IAAC,KAAK,EAAE,MAAM,CAAA;CAAE,GACjC;IAAE,IAAI,EAAE,WAAW,CAAC;IAAC,KAAK,EAAE,MAAM,CAAA;CAAE,GACpC;IAAE,IAAI,EAAE,aAAa,CAAC;IAAC,KAAK,EAAE,MAAM,CAAA;CAAE,GACtC;IAAE,IAAI,EAAE,UAAU,CAAC;IAAC,KAAK,EAAE,MAAM,CAAA;CAAE,GACnC;IAAE,IAAI,EAAE,oBAAoB,CAAC;IAAC,KAAK,EAAE,MAAM,CAAA;CAAE,GAC7C;IAAE,IAAI,EAAE,iBAAiB,CAAC;IAAC,KAAK,EAAE,MAAM,CAAA;CAAE,GAC1C;IAAE,IAAI,EAAE,SAAS,CAAC;IAAC,GAAG,EAAE,MAAM,CAAC;IAAC,GAAG,EAAE,MAAM,CAAA;CAAE,GAC7C;IAAE,IAAI,EAAE,IAAI,CAAC;IAAC,MAAM,EAAE,MAAM,EAAE,CAAA;CAAE,GAChC;IAAE,IAAI,EAAE,OAAO,CAAA;CAAE,GACjB;IAAE,IAAI,EAAE,MAAM,CAAA;CAAE,CAAC;AAErB,MAAM,MAAM,YAAY,GAAG;IACzB,SAAS,EAAE,qBAAqB,CAAC;CAClC,CAAC;AAGF,MAAM,MAAM,sBAAsB,GAC9B;IAAE,IAAI,EAAE,MAAM,CAAA;CAAE,GAChB;IAAE,IAAI,EAAE,OAAO,CAAA;CAAE,GACjB;IAAE,IAAI,EAAE,MAAM,CAAA;CAAE,GAChB;IAAE,IAAI,EAAE,OAAO,CAAA;CAAE,CAAC;AAEtB,MAAM,MAAM,aAAa,GAAG;IAC1B,SAAS,EAAE,sBAAsB,CAAC;CACnC,CAAC;AAIF,MAAM,MAAM,oBAAoB,GAC5B;IAAE,IAAI,EAAE,aAAa,CAAC;IAAC,MAAM,EAAE,MAAM,EAAE,CAAA;CAAE,GACzC;IAAE,IAAI,EAAE,aAAa,CAAC;IAAC,MAAM,EAAE,MAAM,EAAE,CAAA;CAAE,GACzC;IAAE,IAAI,EAAE,OAAO,CAAA;CAAE,GACjB;IAAE,IAAI,EAAE,MAAM,CAAA;CAAE,CAAC;AAErB,MAAM,MAAM,WAAW,GAAG;IACxB,SAAS,EAAE,oBAAoB,CAAC;CACjC,CAAC;AAGF,MAAM,MAAM,mBAAmB,GAC3B;IAAE,IAAI,EAAE,OAAO,CAAC;IAAC,KAAK,CAAC,EAAE,MAAM,CAAC;IAAC,GAAG,CAAC,EAAE,MAAM,CAAA;CAAE,GAC/C;IAAE,IAAI,EAAE,IAAI,CAAC;IAAC,MAAM,EAAE,MAAM,EAAE,CAAA;CAAE,GAChC;IAAE,IAAI,EAAE,OAAO,CAAA;CAAE,GACjB;IAAE,IAAI,EAAE,MAAM,CAAA;CAAE,CAAC;AAErB,MAAM,MAAM,UAAU,GAAG;IACvB,SAAS,EAAE,mBAAmB,CAAC;CAChC,CAAC;AAGF,MAAM,MAAM,sBAAsB,GAC9B;IAAE,YAAY,EAAE,MAAM,CAAC;IAAC,MAAM,EAAE,YAAY,CAAA;CAAE,GAC9C;IAAE,YAAY,EAAE,QAAQ,CAAC;IAAC,MAAM,EAAE,YAAY,CAAA;CAAE,GAChD;IAAE,YAAY,EAAE,KAAK,CAAC;IAAC,MAAM,EAAE,WAAW,CAAA;CAAE,CAAC;AAGjD,MAAM,MAAM,iBAAiB,GACzB;IAAE,OAAO,EAAE,wBAAwB,CAAC;IAAC,MAAM,EAAE,UAAU,CAAA;CAAE,GACzD;IAAE,OAAO,EAAE,aAAa,CAAC;IAAC,MAAM,EAAE,UAAU,CAAA;CAAE,GAC9C;IAAE,OAAO,EAAE,sBAAsB,CAAC;IAAC,MAAM,EAAE,UAAU,CAAA;CAAE,GACvD;IAAE,OAAO,EAAE,4BAA4B,CAAC;IAAC,MAAM,EAAE,UAAU,CAAA;CAAE,GAC7D;IAAE,OAAO,EAAE,6BAA6B,CAAC;IAAC,MAAM,EAAE,UAAU,CAAA;CAAE,GAC9D;IAAE,OAAO,EAAE,mBAAmB,CAAC;IAAC,MAAM,EAAE,YAAY,CAAA;CAAE,GACtD;IAAE,OAAO,EAAE,gCAAgC,CAAC;IAAC,MAAM,EAAE,UAAU,CAAA;CAAE,GACjE;IAAE,OAAO,EAAE,oCAAoC,CAAC;IAAC,MAAM,EAAE,UAAU,CAAA;CAAE,GACrE;IAAE,OAAO,EAAE,uBAAuB,CAAC;IAAC,MAAM,EAAE,YAAY,CAAA;CAAE,GAC1D;IAAE,OAAO,EAAE,gBAAgB,CAAC;IAAC,MAAM,EAAE,YAAY,CAAA;CAAE,GACnD;IAAE,OAAO,EAAE,aAAa,CAAC;IAAC,MAAM,EAAE,YAAY,CAAA;CAAE,GAChD;IAAE,OAAO,EAAE,eAAe,CAAC;IAAC,MAAM,EAAE,YAAY,CAAA;CAAE,GAClD;IAAE,OAAO,EAAE,eAAe,CAAC;IAAC,MAAM,EAAE,YAAY,CAAA;CAAE,GAClD;IAAE,OAAO,EAAE,cAAc,CAAC;IAAC,MAAM,EAAE,YAAY,CAAA;CAAE,GACjD;IAAE,OAAO,EAAE,eAAe,CAAC;IAAC,MAAM,EAAE,YAAY,CAAA;CAAE,GAClD;IAAE,OAAO,EAAE,gBAAgB,CAAC;IAAC,MAAM,EAAE,YAAY,CAAA;CAAE,GACnD;IAAE,OAAO,EAAE,aAAa,CAAC;IAAC,MAAM,EAAE,YAAY,CAAA;CAAE,GAChD;IAAE,OAAO,EAAE,cAAc,CAAC;IAAC,MAAM,EAAE,YAAY,CAAA;CAAE,GACjD;IAAE,OAAO,EAAE,eAAe,CAAC;IAAC,MAAM,EAAE,YAAY,CAAA;CAAE,GAClD;IAAE,OAAO,EAAE,gBAAgB,CAAC;IAAC,MAAM,EAAE,YAAY,CAAA;CAAE,GACnD;IAAE,OAAO,EAAE,2BAA2B,CAAC;IAAC,MAAM,EAAE,YAAY,CAAA;CAAE,GAC9D;IAAE,OAAO,EAAE,aAAa,CAAC;IAAC,MAAM,EAAE,YAAY,CAAA;CAAE,GAChD;IAAE,OAAO,EAAE,aAAa,CAAC;IAAC,MAAM,EAAE,YAAY,CAAA;CAAE,GAChD;IAAE,OAAO,EAAE,aAAa,CAAC;IAAC,MAAM,EAAE,YAAY,CAAA;CAAE,GAChD;IAAE,OAAO,EAAE,WAAW,CAAC;IAAC,MAAM,EAAE,YAAY,CAAA;CAAE,GAC9C;IAAE,OAAO,EAAE,eAAe,CAAC;IAAC,MAAM,EAAE,YAAY,CAAA;CAAE,GAClD;IAAE,OAAO,EAAE,aAAa,CAAC;IAAC,MAAM,EAAE,YAAY,CAAA;CAAE,GAChD;IAAE,OAAO,EAAE,aAAa,CAAC;IAAC,MAAM,EAAE,YAAY,CAAA;CAAE,GAChD;IAAE,OAAO,EAAE,YAAY,CAAC;IAAC,MAAM,EAAE,WAAW,CAAA;CAAE,GAC9C;IAAE,OAAO,EAAE,kBAAkB,CAAC;IAAC,MAAM,EAAE,YAAY,CAAA;CAAE,GACrD;IAAE,OAAO,EAAE,qBAAqB,CAAC;IAAC,MAAM,EAAE,YAAY,CAAA;CAAE,GACxD;IAAE,OAAO,EAAE,mBAAmB,CAAC;IAAC,MAAM,EAAE,WAAW,CAAA;CAAE,GACrD;IAAE,OAAO,EAAE,mCAAmC,CAAC;IAAC,MAAM,EAAE,YAAY,CAAA;CAAE,GACtE;IAAE,OAAO,EAAE,qCAAqC,CAAC;IAAC,MAAM,EAAE,aAAa,CAAA;CAAE,GACzE;IAAE,OAAO,EAAE,qCAAqC,CAAC;IAAC,MAAM,EAAE,YAAY,CAAA;CAAE,GACxE;IAAE,OAAO,EAAE,gCAAgC,CAAC;IAAC,MAAM,EAAE,YAAY,CAAA;CAAE,GACnE;IAAE,OAAO,EAAE,yCAAyC,CAAC;IAAC,MAAM,EAAE,YAAY,CAAA;CAAE,GAC5E;IAAE,OAAO,EAAE,mDAAmD,CAAC;IAAC,MAAM,EAAE,YAAY,CAAA;CAAE,GACtF;IAAE,OAAO,EAAE,iCAAiC,CAAC;IAAC,MAAM,EAAE,YAAY,CAAA;CAAE,GACpE;IAAE,OAAO,EAAE,kBAAkB,CAAC;IAAC,MAAM,EAAE,YAAY,CAAA;CAAE,GACrD;IAAE,OAAO,EAAE,kBAAkB,CAAC;IAAC,MAAM,EAAE,YAAY,CAAA;CAAE,GACrD;IAAE,OAAO,EAAE,oBAAoB,CAAC;IAAC,MAAM,EAAE,UAAU,CAAA;CAAE,GACrD;IAAE,OAAO,EAAE,MAAM,CAAC;IAAC,MAAM,EAAE,sBAAsB,CAAA;CAAE,CAAC;AAGxD,MAAM,MAAM,eAAe,GAAG;IAC5B,OAAO,EAAE,gBAAgB,GAAG,MAAM,CAAC;IACnC,SAAS,EAAE,aAAa,CAAC;CAC1B,GAAG,IAAI,CAAC;AAQT,MAAM,MAAM,cAAc,GAAG;IAE3B,OAAO,EAAE,iBAAiB,EAAE,CAAC;IAE7B,IAAI,EAAE,eAAe,CAAC;IAEtB,aAAa,EAAE,CAAC,gBAAgB,GAAG,MAAM,CAAC,EAAE,CAAC;CAC9C,CAAC;AAEF;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA4CG"}