@brivioio/api-server-types 3.0.0 → 4.0.1

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 (40) hide show
  1. package/dist/{candidates.types.d.ts → candidates/candidates.types.d.ts} +32 -123
  2. package/dist/candidates/candidates.types.d.ts.map +1 -0
  3. package/dist/candidates/enums.types.d.ts +76 -0
  4. package/dist/candidates/enums.types.d.ts.map +1 -0
  5. package/dist/candidates/enums.types.js +86 -0
  6. package/dist/candidates/index.d.ts +4 -0
  7. package/dist/candidates/index.d.ts.map +1 -0
  8. package/dist/candidates/index.js +3 -0
  9. package/dist/candidates/others.types.d.ts +132 -0
  10. package/dist/candidates/others.types.d.ts.map +1 -0
  11. package/dist/index.d.ts +2 -3
  12. package/dist/index.d.ts.map +1 -1
  13. package/dist/index.js +2 -3
  14. package/dist/organizations.types.d.ts +10 -3
  15. package/dist/organizations.types.d.ts.map +1 -1
  16. package/dist/organizations.types.js +8 -1
  17. package/dist/positions/enums.types.d.ts +31 -0
  18. package/dist/positions/enums.types.d.ts.map +1 -0
  19. package/dist/positions/enums.types.js +36 -0
  20. package/dist/positions/index.d.ts +4 -0
  21. package/dist/positions/index.d.ts.map +1 -0
  22. package/dist/positions/index.js +3 -0
  23. package/dist/positions/listViewConfig.types.d.ts +303 -0
  24. package/dist/positions/listViewConfig.types.d.ts.map +1 -0
  25. package/dist/positions/listViewConfig.types.js +67 -0
  26. package/dist/positions/positions.types.d.ts +279 -0
  27. package/dist/positions/positions.types.d.ts.map +1 -0
  28. package/dist/positions/positions.types.js +1 -0
  29. package/dist/utils.types.d.ts +17 -0
  30. package/dist/utils.types.d.ts.map +1 -1
  31. package/dist/utils.types.js +12 -1
  32. package/package.json +1 -1
  33. package/dist/candidates.types.d.ts.map +0 -1
  34. package/dist/enums.types.d.ts +0 -136
  35. package/dist/enums.types.d.ts.map +0 -1
  36. package/dist/enums.types.js +0 -160
  37. package/dist/positions.types.d.ts +0 -556
  38. package/dist/positions.types.d.ts.map +0 -1
  39. /package/dist/{candidates.types.js → candidates/candidates.types.js} +0 -0
  40. /package/dist/{positions.types.js → candidates/others.types.js} +0 -0
@@ -1,556 +0,0 @@
1
- import type { EmploymentType, LocationMode, McqQuestionType, PositionListType, PositionQuestionType, TextQuestionType } from './enums.types';
2
- import type { IOrganization } from './organizations.types';
3
- import type { IResponse } from './utils.types';
4
- /**
5
- * Filter and View Configuration Types for Position Lists
6
- *
7
- * This type system supports comprehensive filtering, sorting, searching, and column visibility
8
- * management for candidate lists within positions.
9
- *
10
- * Key Features:
11
- * 1. Type-safe filters for different data types (string, number, boolean, array, date)
12
- * 2. Single-field sorting (one column at a time)
13
- * 3. Global search across multiple fields
14
- * 4. Column visibility management
15
- * 5. Support for dynamic position question fields
16
- *
17
- * Design Decisions:
18
- * - Each filter type has a 'none' operation to represent "no filter applied"
19
- * - Each filter type has a 'blank' operation to filter for empty/null values
20
- * - deepProfileStatus is treated as a string filter (for enum values like 'queued', 'processing', etc.)
21
- * - Array sorting uses array length (useful for skills - more skills = higher in desc order)
22
- * - Position questions use discriminated unions to ensure type safety based on question type
23
- * - FieldFilterConfig uses discriminated unions to ensure correct filter type for each field
24
- * - Only one column can be sorted at a time (single-field sorting)
25
- */
26
- export type SortDirection = 'asc' | 'desc';
27
- export type StringFilterOperation = {
28
- type: 'substring';
29
- value: string;
30
- } | {
31
- type: 'in';
32
- values: string[];
33
- } | {
34
- type: 'blank';
35
- } | {
36
- type: 'none';
37
- };
38
- export type StringFilter = {
39
- operation: StringFilterOperation;
40
- };
41
- export type NumberFilterOperation = {
42
- type: 'equals';
43
- value: number;
44
- } | {
45
- type: 'notEquals';
46
- value: number;
47
- } | {
48
- type: 'greaterThan';
49
- value: number;
50
- } | {
51
- type: 'lessThan';
52
- value: number;
53
- } | {
54
- type: 'greaterThanOrEqual';
55
- value: number;
56
- } | {
57
- type: 'lessThanOrEqual';
58
- value: number;
59
- } | {
60
- type: 'between';
61
- min: number;
62
- max: number;
63
- } | {
64
- type: 'in';
65
- values: number[];
66
- } | {
67
- type: 'blank';
68
- } | {
69
- type: 'none';
70
- };
71
- export type NumberFilter = {
72
- operation: NumberFilterOperation;
73
- };
74
- export type BooleanFilterOperation = {
75
- type: 'true';
76
- } | {
77
- type: 'false';
78
- } | {
79
- type: 'none';
80
- } | {
81
- type: 'blank';
82
- };
83
- export type BooleanFilter = {
84
- operation: BooleanFilterOperation;
85
- };
86
- export type ArrayFilterOperation = {
87
- type: 'containsAll';
88
- values: string[];
89
- } | {
90
- type: 'containsAny';
91
- values: string[];
92
- } | {
93
- type: 'blank';
94
- } | {
95
- type: 'none';
96
- };
97
- export type ArrayFilter = {
98
- operation: ArrayFilterOperation;
99
- };
100
- export type DateFilterOperation = {
101
- type: 'range';
102
- start?: number;
103
- end?: number;
104
- } | {
105
- type: 'in';
106
- values: number[];
107
- } | {
108
- type: 'blank';
109
- } | {
110
- type: 'none';
111
- };
112
- export type DateFilter = {
113
- operation: DateFilterOperation;
114
- };
115
- export type PositionQuestionFilter = {
116
- questionType: 'text';
117
- filter: StringFilter;
118
- } | {
119
- questionType: 'number';
120
- filter: NumberFilter;
121
- } | {
122
- questionType: 'mcq';
123
- filter: ArrayFilter;
124
- };
125
- export type CandidateFieldId = 'applicationSubmittedAt' | 'cvUpdatedAt' | 'baseProfileUpdatedAt' | 'lastSuccessfulDeepProfileAt' | 'deepProfileStatus' | 'candidateName' | 'candidateEmail' | 'candidateId' | 'applicationId' | 'noticePeriod' | 'currentSalary' | 'expectedSalary' | 'currentCity' | 'currentState' | 'preferredCity' | 'preferredState' | 'fullTimeExperienceInYears' | 'isCurrentlyEmployed' | 'numberOfSwitches' | 'countryCode' | 'phoneNumber' | 'linkedinUrl' | 'githubUrl' | 'codeforcesUrl' | 'codechefUrl' | 'leetcodeUrl' | 'coreSkills';
126
- export type FieldFilterConfig = {
127
- fieldId: 'applicationSubmittedAt';
128
- filter: DateFilter;
129
- } | {
130
- fieldId: 'cvUpdatedAt';
131
- filter: DateFilter;
132
- } | {
133
- fieldId: 'baseProfileUpdatedAt';
134
- filter: DateFilter;
135
- } | {
136
- fieldId: 'lastSuccessfulDeepProfileAt';
137
- filter: DateFilter;
138
- } | {
139
- fieldId: 'deepProfileStatus';
140
- filter: StringFilter;
141
- } | {
142
- fieldId: 'candidateName';
143
- filter: StringFilter;
144
- } | {
145
- fieldId: 'candidateEmail';
146
- filter: StringFilter;
147
- } | {
148
- fieldId: 'candidateId';
149
- filter: StringFilter;
150
- } | {
151
- fieldId: 'applicationId';
152
- filter: StringFilter;
153
- } | {
154
- fieldId: 'noticePeriod';
155
- filter: NumberFilter;
156
- } | {
157
- fieldId: 'currentSalary';
158
- filter: NumberFilter;
159
- } | {
160
- fieldId: 'expectedSalary';
161
- filter: NumberFilter;
162
- } | {
163
- fieldId: 'currentCity';
164
- filter: StringFilter;
165
- } | {
166
- fieldId: 'currentState';
167
- filter: StringFilter;
168
- } | {
169
- fieldId: 'preferredCity';
170
- filter: StringFilter;
171
- } | {
172
- fieldId: 'preferredState';
173
- filter: StringFilter;
174
- } | {
175
- fieldId: 'fullTimeExperienceInYears';
176
- filter: NumberFilter;
177
- } | {
178
- fieldId: 'isCurrentlyEmployed';
179
- filter: BooleanFilter;
180
- } | {
181
- fieldId: 'numberOfSwitches';
182
- filter: NumberFilter;
183
- } | {
184
- fieldId: 'countryCode';
185
- filter: NumberFilter;
186
- } | {
187
- fieldId: 'phoneNumber';
188
- filter: NumberFilter;
189
- } | {
190
- fieldId: 'linkedinUrl';
191
- filter: StringFilter;
192
- } | {
193
- fieldId: 'githubUrl';
194
- filter: StringFilter;
195
- } | {
196
- fieldId: 'codeforcesUrl';
197
- filter: StringFilter;
198
- } | {
199
- fieldId: 'codechefUrl';
200
- filter: StringFilter;
201
- } | {
202
- fieldId: 'leetcodeUrl';
203
- filter: StringFilter;
204
- } | {
205
- fieldId: 'coreSkills';
206
- filter: ArrayFilter;
207
- } | {
208
- fieldId: string;
209
- filter: PositionQuestionFilter;
210
- };
211
- export type FieldSortConfig = {
212
- fieldId: CandidateFieldId | string;
213
- direction: SortDirection;
214
- } | null;
215
- export type GlobalSearchConfig = {
216
- query: string;
217
- };
218
- export type HiddenColumnsConfig = {
219
- hiddenFieldIds: (CandidateFieldId | string)[];
220
- };
221
- export type ListViewConfig = {
222
- filters: FieldFilterConfig[];
223
- sort: FieldSortConfig;
224
- globalSearch?: GlobalSearchConfig;
225
- hiddenColumns: HiddenColumnsConfig;
226
- };
227
- /**
228
- * Example Usage:
229
- *
230
- * 1. Filter candidates with 3+ years experience, currently employed, and know BOTH React and TypeScript:
231
- * {
232
- * filters: [
233
- * { fieldId: 'fullTimeExperienceInYears', filter: { operation: { type: 'greaterThanOrEqual', value: 3 } } },
234
- * { fieldId: 'isCurrentlyEmployed', filter: { operation: { type: 'true' } } },
235
- * { fieldId: 'coreSkills', filter: { operation: { type: 'containsAll', values: ['React', 'TypeScript'] } } }
236
- * ],
237
- * sort: { fieldId: 'fullTimeExperienceInYears', direction: 'desc' },
238
- * hiddenColumns: { hiddenFieldIds: ['phoneNumber', 'linkedinUrl'] }
239
- * }
240
- *
241
- * 2. Filter candidates who know EITHER React OR Vue OR Angular:
242
- * {
243
- * filters: [
244
- * { fieldId: 'coreSkills', filter: { operation: { type: 'containsAny', values: ['React', 'Vue', 'Angular'] } } }
245
- * ],
246
- * sort: { fieldId: 'fullTimeExperienceInYears', direction: 'desc' },
247
- * hiddenColumns: { hiddenFieldIds: [] }
248
- * }
249
- *
250
- * 3. Filter by date range with global search:
251
- * {
252
- * filters: [
253
- * {
254
- * fieldId: 'applicationSubmittedAt',
255
- * filter: { operation: { type: 'range', start: 1704067200000, end: 1706745599999 } }
256
- * }
257
- * ],
258
- * sort: { fieldId: 'applicationSubmittedAt', direction: 'desc' },
259
- * globalSearch: { query: 'engineer' },
260
- * hiddenColumns: { hiddenFieldIds: [] }
261
- * }
262
- *
263
- * 4. Filter by position question (custom field with containsAll):
264
- * {
265
- * filters: [
266
- * {
267
- * fieldId: 'question-id-123',
268
- * filter: { questionType: 'mcq', filter: { operation: { type: 'containsAll', values: ['Option A', 'Option B'] } } }
269
- * }
270
- * ],
271
- * sort: null,
272
- * hiddenColumns: { hiddenFieldIds: [] }
273
- * }
274
- *
275
- * 5. Filter for candidates with blank/missing fields:
276
- * {
277
- * filters: [
278
- * { fieldId: 'linkedinUrl', filter: { operation: { type: 'blank' } } },
279
- * { fieldId: 'currentSalary', filter: { operation: { type: 'blank' } } }
280
- * ],
281
- * sort: null,
282
- * hiddenColumns: { hiddenFieldIds: [] }
283
- * }
284
- */
285
- export interface IPosition {
286
- _id: string;
287
- organizationId: string;
288
- title: string;
289
- description: string;
290
- slugs: {
291
- short: string;
292
- long: string;
293
- };
294
- isOpen: boolean;
295
- isPublished: boolean;
296
- jobDescription: {
297
- requiredExperience: string;
298
- locationMode: LocationMode;
299
- location: string;
300
- datePosted: string;
301
- skills: string[];
302
- tags: string[];
303
- jdMarkdown: string;
304
- employmentType: EmploymentType;
305
- employmentTypeOther?: string;
306
- salary: string;
307
- };
308
- questions: {
309
- id: string;
310
- type: PositionQuestionType;
311
- order: number;
312
- title: string;
313
- description?: string;
314
- isRequired: boolean;
315
- textConfig?: {
316
- type: TextQuestionType;
317
- minCharacters?: number;
318
- maxCharacters?: number;
319
- validationFailErrorMessage?: string;
320
- };
321
- mcqConfig?: {
322
- options: string[];
323
- type: McqQuestionType;
324
- };
325
- numberConfig?: {
326
- minValue?: number;
327
- maxValue?: number;
328
- validationFailErrorMessage?: string;
329
- };
330
- isDeleted: boolean;
331
- createdAt: string;
332
- updatedAt: string;
333
- }[];
334
- lists: {
335
- id: string;
336
- order: number;
337
- title: string;
338
- description: string;
339
- isDeleted: boolean;
340
- type: PositionListType;
341
- viewConfig: ListViewConfig;
342
- createdAt: string;
343
- updatedAt: string;
344
- }[];
345
- internalTags: {
346
- key: string;
347
- value: string;
348
- }[];
349
- isDeleted: boolean;
350
- createdAt: string;
351
- updatedAt: string;
352
- }
353
- export type TPositionWithOrganization = Omit<IPosition, 'organizationId'> & {
354
- organization: IOrganization & {
355
- logoUrl: string | null;
356
- };
357
- totalApplications: number;
358
- };
359
- export declare namespace AdminPositionsAPITypes {
360
- type TGetAllPositionsResponse = IResponse<TPositionWithOrganization[] | null>;
361
- type TGetPositionByIdResponse = IResponse<TPositionWithOrganization | null>;
362
- type TCreatePositionRequestBody = {
363
- organizationId: string;
364
- title: string;
365
- description: string;
366
- slugs: {
367
- short: string;
368
- long: string;
369
- };
370
- isOpen: boolean;
371
- isPublished: boolean;
372
- jobDescription: {
373
- requiredExperience: string;
374
- locationMode: string;
375
- location: string;
376
- datePosted: string;
377
- skills: string[];
378
- tags: string[];
379
- jdMarkdown: string;
380
- employmentType: string;
381
- employmentTypeOther?: string;
382
- salary: string;
383
- };
384
- questions: {
385
- type: PositionQuestionType;
386
- order: number;
387
- title: string;
388
- description?: string;
389
- isRequired: boolean;
390
- textConfig?: {
391
- type: TextQuestionType;
392
- minCharacters?: number;
393
- maxCharacters?: number;
394
- validationFailErrorMessage?: string;
395
- };
396
- mcqConfig?: {
397
- options: string[];
398
- type: McqQuestionType;
399
- };
400
- numberConfig?: {
401
- minValue?: number;
402
- maxValue?: number;
403
- validationFailErrorMessage?: string;
404
- };
405
- }[];
406
- };
407
- type TCreatePositionResponse = IResponse<{
408
- positionId: string;
409
- } | null>;
410
- type TEditPositionRequestBody = {
411
- organizationId: string;
412
- title: string;
413
- description: string;
414
- slugs: {
415
- short: string;
416
- long: string;
417
- };
418
- isOpen: boolean;
419
- isPublished: boolean;
420
- jobDescription: {
421
- requiredExperience: string;
422
- locationMode: string;
423
- location: string;
424
- datePosted: string;
425
- skills: string[];
426
- tags: string[];
427
- jdMarkdown: string;
428
- employmentType: string;
429
- employmentTypeOther?: string;
430
- salary: string;
431
- };
432
- questions: {
433
- id: string;
434
- type: PositionQuestionType;
435
- order: number;
436
- title: string;
437
- description?: string;
438
- isRequired: boolean;
439
- textConfig?: {
440
- type: TextQuestionType;
441
- minCharacters?: number;
442
- maxCharacters?: number;
443
- validationFailErrorMessage?: string;
444
- };
445
- mcqConfig?: {
446
- options: string[];
447
- type: McqQuestionType;
448
- };
449
- numberConfig?: {
450
- minValue?: number;
451
- maxValue?: number;
452
- validationFailErrorMessage?: string;
453
- };
454
- isDeleted: boolean;
455
- }[];
456
- };
457
- type TEditPositionResponse = IResponse<{
458
- positionId: string;
459
- } | null>;
460
- type TDeletePositionResponse = IResponse<{
461
- positionId: string;
462
- } | null>;
463
- type TDuplicatePositionResponse = IResponse<{
464
- positionId: string;
465
- } | null>;
466
- type TCreateListRequestBody = {
467
- title: string;
468
- description: string;
469
- };
470
- type TCreateListResponse = IResponse<{
471
- listId: string;
472
- } | null>;
473
- type TDeleteListResponse = IResponse<{
474
- listId: string;
475
- } | null>;
476
- type TEditListRequestBody = {
477
- title: string;
478
- description: string;
479
- };
480
- type TEditListResponse = IResponse<{
481
- listId: string;
482
- } | null>;
483
- type TReorderListsRequestBody = {
484
- listIds: string[];
485
- };
486
- type TReorderListsResponse = IResponse<null>;
487
- type TGetPositionListsResponseData = {
488
- id: string;
489
- order: number;
490
- title: string;
491
- description: string;
492
- type: PositionListType;
493
- viewConfig: ListViewConfig;
494
- createdAt: string;
495
- updatedAt: string;
496
- positionId: string;
497
- applicationCount: number;
498
- }[];
499
- type TGetPositionListsResponse = IResponse<TGetPositionListsResponseData | null>;
500
- type TDeepProfileCandidatesRequestBody = {
501
- applicationIds?: string[];
502
- listId?: string;
503
- lastApplicationSubmittedAt?: string;
504
- };
505
- type TDeepProfileCandidatesResponse = IResponse<null>;
506
- }
507
- export interface IPositionDetailsForCandidate {
508
- _id: string;
509
- title: string;
510
- description: string;
511
- slugs: {
512
- short: string;
513
- long: string;
514
- };
515
- isOpen: boolean;
516
- isPublished: boolean;
517
- organization: {
518
- name: string;
519
- logoUrl: string | null;
520
- about: string;
521
- urls: {
522
- website: string;
523
- others: string[];
524
- };
525
- };
526
- jobDescription: {
527
- requiredExperience: string;
528
- locationMode: LocationMode;
529
- location: string;
530
- datePosted: string;
531
- skills: string[];
532
- tags: string[];
533
- jdMarkdown: string;
534
- employmentType: EmploymentType;
535
- employmentTypeOther?: string;
536
- salary: string;
537
- };
538
- }
539
- export declare namespace CandidatePositionsAPITypes {
540
- type TGetPositionBySlugResponse = IResponse<IPositionDetailsForCandidate | null>;
541
- type TGetPositionApplicationStatusResponse = IResponse<null>;
542
- type TGetPositionApplicationQuestionsResponse = IResponse<Omit<IPosition['questions'][number], 'isDeleted'>[] | null>;
543
- type TSubmitPositionApplicationRequestBody = {
544
- questionsAndAnswers: {
545
- questionId: string;
546
- answer: {
547
- text?: string;
548
- mcq?: string[];
549
- number?: number;
550
- };
551
- questionUpdatedAtEpochMS: number;
552
- }[];
553
- };
554
- type TSubmitPositionApplicationResponse = IResponse<null>;
555
- }
556
- //# sourceMappingURL=positions.types.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"positions.types.d.ts","sourceRoot":"","sources":["../src/positions.types.ts"],"names":[],"mappings":"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"}