@inploi/plugin-job-search 0.1.4 → 0.2.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.
@@ -6,7 +6,7 @@ declare const JobSearchResponseSchema: import("valibot").SchemaWithTransform<imp
6
6
  data: import("valibot").ArraySchema<import("valibot").SchemaWithTransform<import("valibot").ObjectSchema<{
7
7
  id: import("valibot").NumberSchema<number>;
8
8
  company_name: import("valibot").StringSchema<string>;
9
- employment_type: import("valibot").UnionSchema<[import("valibot").LiteralSchema<"FULL_TIME", "FULL_TIME">, import("valibot").LiteralSchema<"PART_TIME", "PART_TIME">, import("valibot").LiteralSchema<"TEMPORARY", "TEMPORARY">, import("valibot").LiteralSchema<"CONTRACTOR", "CONTRACTOR">, import("valibot").LiteralSchema<"INTERN", "INTERN">, import("valibot").LiteralSchema<"VOLUNTEER", "VOLUNTEER">, import("valibot").LiteralSchema<"OTHER", "OTHER">], "FULL_TIME" | "PART_TIME" | "TEMPORARY" | "CONTRACTOR" | "INTERN" | "VOLUNTEER" | "OTHER">;
9
+ employment_type: import("valibot").StringSchema<string>;
10
10
  location_type: import("valibot").UnionSchema<[import("valibot").LiteralSchema<"LOCATION", "LOCATION">, import("valibot").LiteralSchema<"REMOTE", "REMOTE">, import("valibot").LiteralSchema<"HYBRID", "HYBRID">], "LOCATION" | "REMOTE" | "HYBRID">;
11
11
  pay_type: import("valibot").UnionSchema<[import("valibot").LiteralSchema<"ANNUALLY", "ANNUALLY">, import("valibot").LiteralSchema<"HOURLY", "HOURLY">, import("valibot").LiteralSchema<"MONTHLY", "MONTHLY">, import("valibot").LiteralSchema<"WEEKLY", "WEEKLY">, import("valibot").LiteralSchema<"DAILY", "DAILY">], "ANNUALLY" | "HOURLY" | "MONTHLY" | "WEEKLY" | "DAILY">;
12
12
  pay_currency: import("valibot").StringSchema<string>;
@@ -17,13 +17,6 @@ declare const JobSearchResponseSchema: import("valibot").SchemaWithTransform<imp
17
17
  pay_max: import("valibot").NullableSchema<import("valibot").StringSchema<string>, undefined, string | null>;
18
18
  description: import("valibot").StringSchema<string>;
19
19
  title: import("valibot").StringSchema<string>;
20
- coordinates: import("valibot").ObjectSchema<{
21
- lat: import("valibot").NumberSchema<number>;
22
- lng: import("valibot").NumberSchema<number>;
23
- }, undefined, {
24
- lat: number;
25
- lng: number;
26
- }>;
27
20
  contract_type: import("valibot").NullableSchema<import("valibot").StringSchema<string>, undefined, string | null>;
28
21
  created_at: import("valibot").NullableSchema<import("valibot").StringSchema<string>, undefined, string | null>;
29
22
  custom_data: import("valibot").NullableSchema<import("valibot").RecordSchema<import("valibot").StringSchema<string>, import("valibot").AnySchema<any>, {
@@ -32,12 +25,16 @@ declare const JobSearchResponseSchema: import("valibot").SchemaWithTransform<imp
32
25
  [x: string]: any;
33
26
  } | null>;
34
27
  href: import("valibot").StringSchema<string>;
28
+ industry: import("valibot").OptionalSchema<import("valibot").StringSchema<string>, undefined, string | undefined>;
29
+ category: import("valibot").OptionalSchema<import("valibot").StringSchema<string>, undefined, string | undefined>;
30
+ skills: import("valibot").OptionalSchema<import("valibot").StringSchema<string>, undefined, string | undefined>;
31
+ town: import("valibot").OptionalSchema<import("valibot").StringSchema<string>, undefined, string | undefined>;
32
+ city: import("valibot").OptionalSchema<import("valibot").StringSchema<string>, undefined, string | undefined>;
33
+ country: import("valibot").OptionalSchema<import("valibot").StringSchema<string>, undefined, string | undefined>;
35
34
  }, undefined, {
36
- title: string;
37
- href: string;
38
35
  id: number;
39
36
  company_name: string;
40
- employment_type: "FULL_TIME" | "PART_TIME" | "TEMPORARY" | "CONTRACTOR" | "INTERN" | "VOLUNTEER" | "OTHER";
37
+ employment_type: string;
41
38
  location_type: "LOCATION" | "REMOTE" | "HYBRID";
42
39
  pay_type: "ANNUALLY" | "HOURLY" | "MONTHLY" | "WEEKLY" | "DAILY";
43
40
  pay_currency: string;
@@ -47,30 +44,57 @@ declare const JobSearchResponseSchema: import("valibot").SchemaWithTransform<imp
47
44
  pay_min: string | null;
48
45
  pay_max: string | null;
49
46
  description: string;
50
- coordinates: {
51
- lat: number;
52
- lng: number;
53
- };
47
+ title: string;
54
48
  contract_type: string | null;
55
49
  created_at: string | null;
56
50
  custom_data: {
57
51
  [x: string]: any;
58
52
  } | null;
53
+ href: string;
54
+ industry?: string | undefined;
55
+ category?: string | undefined;
56
+ skills?: string | undefined;
57
+ town?: string | undefined;
58
+ city?: string | undefined;
59
+ country?: string | undefined;
59
60
  }>, {
61
+ raw: {
62
+ id: number;
63
+ company_name: string;
64
+ employment_type: string;
65
+ location_type: "LOCATION" | "REMOTE" | "HYBRID";
66
+ pay_type: "ANNUALLY" | "HOURLY" | "MONTHLY" | "WEEKLY" | "DAILY";
67
+ pay_currency: string;
68
+ pay_mask: boolean;
69
+ pay_display: boolean;
70
+ pay: string | null;
71
+ pay_min: string | null;
72
+ pay_max: string | null;
73
+ description: string;
74
+ title: string;
75
+ contract_type: string | null;
76
+ created_at: string | null;
77
+ custom_data: {
78
+ [x: string]: any;
79
+ } | null;
80
+ href: string;
81
+ industry?: string | undefined;
82
+ category?: string | undefined;
83
+ skills?: string | undefined;
84
+ town?: string | undefined;
85
+ city?: string | undefined;
86
+ country?: string | undefined;
87
+ };
60
88
  id: number;
61
89
  isNew: boolean;
62
90
  company: {
63
91
  name: string;
64
92
  };
65
- employmentType: "FULL_TIME" | "PART_TIME" | "TEMPORARY" | "CONTRACTOR" | "INTERN" | "VOLUNTEER" | "OTHER";
93
+ employmentType: string;
66
94
  locationType: "LOCATION" | "REMOTE" | "HYBRID";
67
95
  pay: string | undefined;
68
96
  description: string;
69
97
  title: string;
70
- coordinates: {
71
- lat: number;
72
- lng: number;
73
- };
74
98
  contractType: string | null;
75
99
  href: string;
76
100
  relativePostedDate: string;
@@ -78,20 +102,43 @@ declare const JobSearchResponseSchema: import("valibot").SchemaWithTransform<imp
78
102
  [x: string]: any;
79
103
  } | null;
80
104
  }>, {
105
+ raw: {
106
+ id: number;
107
+ company_name: string;
108
+ employment_type: string;
109
+ location_type: "LOCATION" | "REMOTE" | "HYBRID";
110
+ pay_type: "ANNUALLY" | "HOURLY" | "MONTHLY" | "WEEKLY" | "DAILY";
111
+ pay_currency: string;
112
+ pay_mask: boolean;
113
+ pay_display: boolean;
114
+ pay: string | null;
115
+ pay_min: string | null;
116
+ pay_max: string | null;
117
+ description: string;
118
+ title: string;
119
+ contract_type: string | null;
120
+ created_at: string | null;
121
+ custom_data: {
122
+ [x: string]: any;
123
+ } | null;
124
+ href: string;
125
+ industry?: string | undefined;
126
+ category?: string | undefined;
127
+ skills?: string | undefined;
128
+ town?: string | undefined;
129
+ city?: string | undefined;
130
+ country?: string | undefined;
131
+ };
81
132
  id: number;
82
133
  isNew: boolean;
83
134
  company: {
84
135
  name: string;
85
136
  };
86
- employmentType: "FULL_TIME" | "PART_TIME" | "TEMPORARY" | "CONTRACTOR" | "INTERN" | "VOLUNTEER" | "OTHER";
137
+ employmentType: string;
87
138
  locationType: "LOCATION" | "REMOTE" | "HYBRID";
88
139
  pay: string | undefined;
89
140
  description: string;
90
141
  title: string;
91
- coordinates: {
92
- lat: number;
93
- lng: number;
94
- };
95
142
  contractType: string | null;
96
143
  href: string;
97
144
  relativePostedDate: string;
@@ -112,20 +159,43 @@ declare const JobSearchResponseSchema: import("valibot").SchemaWithTransform<imp
112
159
  }>;
113
160
  }, undefined, {
114
161
  data: {
162
+ raw: {
163
+ id: number;
164
+ company_name: string;
165
+ employment_type: string;
166
+ location_type: "LOCATION" | "REMOTE" | "HYBRID";
167
+ pay_type: "ANNUALLY" | "HOURLY" | "MONTHLY" | "WEEKLY" | "DAILY";
168
+ pay_currency: string;
169
+ pay_mask: boolean;
170
+ pay_display: boolean;
171
+ pay: string | null;
172
+ pay_min: string | null;
173
+ pay_max: string | null;
174
+ description: string;
175
+ title: string;
176
+ contract_type: string | null;
177
+ created_at: string | null;
178
+ custom_data: {
179
+ [x: string]: any;
180
+ } | null;
181
+ href: string;
182
+ industry?: string | undefined;
183
+ category?: string | undefined;
184
+ skills?: string | undefined;
185
+ town?: string | undefined;
186
+ city?: string | undefined;
187
+ country?: string | undefined;
188
+ };
115
189
  id: number;
116
190
  isNew: boolean;
117
191
  company: {
118
192
  name: string;
119
193
  };
120
- employmentType: "FULL_TIME" | "PART_TIME" | "TEMPORARY" | "CONTRACTOR" | "INTERN" | "VOLUNTEER" | "OTHER";
194
+ employmentType: string;
121
195
  locationType: "LOCATION" | "REMOTE" | "HYBRID";
122
196
  pay: string | undefined;
123
197
  description: string;
124
198
  title: string;
125
- coordinates: {
126
- lat: number;
127
- lng: number;
128
- };
129
199
  contractType: string | null;
130
200
  href: string;
131
201
  relativePostedDate: string;
@@ -147,20 +217,43 @@ declare const JobSearchResponseSchema: import("valibot").SchemaWithTransform<imp
147
217
  last_page: number;
148
218
  };
149
219
  results: {
220
+ raw: {
221
+ id: number;
222
+ company_name: string;
223
+ employment_type: string;
224
+ location_type: "LOCATION" | "REMOTE" | "HYBRID";
225
+ pay_type: "ANNUALLY" | "HOURLY" | "MONTHLY" | "WEEKLY" | "DAILY";
226
+ pay_currency: string;
227
+ pay_mask: boolean;
228
+ pay_display: boolean;
229
+ pay: string | null;
230
+ pay_min: string | null;
231
+ pay_max: string | null;
232
+ description: string;
233
+ title: string;
234
+ contract_type: string | null;
235
+ created_at: string | null;
236
+ custom_data: {
237
+ [x: string]: any;
238
+ } | null;
239
+ href: string;
240
+ industry?: string | undefined;
241
+ category?: string | undefined;
242
+ skills?: string | undefined;
243
+ town?: string | undefined;
244
+ city?: string | undefined;
245
+ country?: string | undefined;
246
+ };
150
247
  id: number;
151
248
  isNew: boolean;
152
249
  company: {
153
250
  name: string;
154
251
  };
155
- employmentType: "FULL_TIME" | "PART_TIME" | "TEMPORARY" | "CONTRACTOR" | "INTERN" | "VOLUNTEER" | "OTHER";
252
+ employmentType: string;
156
253
  locationType: "LOCATION" | "REMOTE" | "HYBRID";
157
254
  pay: string | undefined;
158
255
  description: string;
159
256
  title: string;
160
- coordinates: {
161
- lat: number;
162
- lng: number;
163
- };
164
257
  contractType: string | null;
165
258
  href: string;
166
259
  relativePostedDate: string;
@@ -177,8 +270,8 @@ export declare const getAvailableFilters: ({ apiClient, filters, logger, signal,
177
270
  filters: Record<string, FilterValue | undefined>;
178
271
  }) => Promise<{
179
272
  [x: string]: {
180
- value: string;
181
273
  label: string;
274
+ value: string;
182
275
  }[];
183
276
  }>;
184
277
  export type GetAvailableFiltersResponse = Awaited<ReturnType<typeof getAvailableFilters>>;
@@ -196,20 +289,43 @@ export declare const getJobSearchResults: ({ apiClient, logger, signal, filters,
196
289
  last_page: number;
197
290
  };
198
291
  results: {
292
+ raw: {
293
+ id: number;
294
+ company_name: string;
295
+ employment_type: string;
296
+ location_type: "LOCATION" | "REMOTE" | "HYBRID";
297
+ pay_type: "ANNUALLY" | "HOURLY" | "MONTHLY" | "WEEKLY" | "DAILY";
298
+ pay_currency: string;
299
+ pay_mask: boolean;
300
+ pay_display: boolean;
301
+ pay: string | null;
302
+ pay_min: string | null;
303
+ pay_max: string | null;
304
+ description: string;
305
+ title: string;
306
+ contract_type: string | null;
307
+ created_at: string | null;
308
+ custom_data: {
309
+ [x: string]: any;
310
+ } | null;
311
+ href: string;
312
+ industry?: string | undefined;
313
+ category?: string | undefined;
314
+ skills?: string | undefined;
315
+ town?: string | undefined;
316
+ city?: string | undefined;
317
+ country?: string | undefined;
318
+ };
199
319
  id: number;
200
320
  isNew: boolean;
201
321
  company: {
202
322
  name: string;
203
323
  };
204
- employmentType: "FULL_TIME" | "PART_TIME" | "TEMPORARY" | "CONTRACTOR" | "INTERN" | "VOLUNTEER" | "OTHER";
324
+ employmentType: string;
205
325
  locationType: "LOCATION" | "REMOTE" | "HYBRID";
206
326
  pay: string | undefined;
207
327
  description: string;
208
328
  title: string;
209
- coordinates: {
210
- lat: number;
211
- lng: number;
212
- };
213
329
  contractType: string | null;
214
330
  href: string;
215
331
  relativePostedDate: string;
@@ -1,4 +1,5 @@
1
1
  import { IconName } from './components/icon.tsx';
2
+ import { HintedString } from './lib/type-utils.ts';
2
3
  type FontSettings = {
3
4
  fontFamily: string;
4
5
  weight: 'normal' | 'bold' | 'lighter' | 'bolder' | number;
@@ -11,8 +12,8 @@ declare const textStyles: {
11
12
  readonly jobHeading: "jobHeading";
12
13
  };
13
14
  type TextStyle = keyof typeof textStyles;
14
- export declare const FILTER_KEYS: readonly ["company_id", "company_name", "industry", "employment_type", "location_type", "pay_type", "pay_currency", "pay_mask", "pay", "pay_min", "pay_max", "title", "category", "skills", "address_1", "address_2", "town", "city", "postcode", "country", "contract_type", "pay_display"];
15
- export type FilterKey = (typeof FILTER_KEYS)[number] | (string & {});
15
+ export declare const FILTER_KEYS: readonly ["company_name", "employment_type", "location_type", "pay_type", "pay_currency", "pay_mask", "pay", "pay_min", "pay_max", "title", "industry", "category", "skills", "town", "city", "country", "contract_type", "pay_display"];
16
+ export type FilterKey = HintedString<(typeof FILTER_KEYS)[number]>;
16
17
  export type FilterProperty = {
17
18
  key: FilterKey;
18
19
  /** The label to display for the property.
@@ -38,6 +39,10 @@ export type FilterProperty = {
38
39
  */
39
40
  select: 'one' | 'many';
40
41
  };
42
+ export type DisplayableFilterProperty = FilterKey | {
43
+ key: string;
44
+ transform: (value: string | undefined) => string | null;
45
+ };
41
46
  export type JobSearchPluginParams = {
42
47
  theme: {
43
48
  mode: 'light' | 'dark';
@@ -62,6 +67,10 @@ export type JobSearchPluginParams = {
62
67
  };
63
68
  /** Array of properties because _order matters_ to display them. */
64
69
  properties: FilterProperty[];
70
+ jobCard: {
71
+ subheading: DisplayableFilterProperty;
72
+ infoTags: DisplayableFilterProperty[];
73
+ };
65
74
  };
66
75
  export declare const createJobSearchDomManager: () => {
67
76
  getRenderTargetElement: () => Element;
@@ -1,11 +1,17 @@
1
1
  import { Output } from 'valibot';
2
- export declare const AvailablePropertiesSchema: import("valibot").RecordSchema<import("valibot").StringSchema<string>, import("valibot").SchemaWithTransform<import("valibot").ArraySchema<import("valibot").StringSchema<string>, string[]>, {
2
+ export declare const AvailablePropertiesSchema: import("valibot").RecordSchema<import("valibot").StringSchema<string>, import("valibot").ArraySchema<import("valibot").ObjectSchema<{
3
+ label: import("valibot").StringSchema<string>;
4
+ value: import("valibot").StringSchema<string>;
5
+ }, undefined, {
6
+ label: string;
3
7
  value: string;
8
+ }>, {
4
9
  label: string;
10
+ value: string;
5
11
  }[]>, {
6
12
  [x: string]: {
7
- value: string;
8
13
  label: string;
14
+ value: string;
9
15
  }[];
10
16
  }>;
11
17
  export type AvailablePropertiesSchema = Output<typeof AvailablePropertiesSchema>;
@@ -25,7 +31,7 @@ export type PaginationSchema = Output<typeof PaginationSchema>;
25
31
  export declare const JobSchema: import("valibot").SchemaWithTransform<import("valibot").ObjectSchema<{
26
32
  id: import("valibot").NumberSchema<number>;
27
33
  company_name: import("valibot").StringSchema<string>;
28
- employment_type: import("valibot").UnionSchema<[import("valibot").LiteralSchema<"FULL_TIME", "FULL_TIME">, import("valibot").LiteralSchema<"PART_TIME", "PART_TIME">, import("valibot").LiteralSchema<"TEMPORARY", "TEMPORARY">, import("valibot").LiteralSchema<"CONTRACTOR", "CONTRACTOR">, import("valibot").LiteralSchema<"INTERN", "INTERN">, import("valibot").LiteralSchema<"VOLUNTEER", "VOLUNTEER">, import("valibot").LiteralSchema<"OTHER", "OTHER">], "FULL_TIME" | "PART_TIME" | "TEMPORARY" | "CONTRACTOR" | "INTERN" | "VOLUNTEER" | "OTHER">;
34
+ employment_type: import("valibot").StringSchema<string>;
29
35
  location_type: import("valibot").UnionSchema<[import("valibot").LiteralSchema<"LOCATION", "LOCATION">, import("valibot").LiteralSchema<"REMOTE", "REMOTE">, import("valibot").LiteralSchema<"HYBRID", "HYBRID">], "LOCATION" | "REMOTE" | "HYBRID">;
30
36
  pay_type: import("valibot").UnionSchema<[import("valibot").LiteralSchema<"ANNUALLY", "ANNUALLY">, import("valibot").LiteralSchema<"HOURLY", "HOURLY">, import("valibot").LiteralSchema<"MONTHLY", "MONTHLY">, import("valibot").LiteralSchema<"WEEKLY", "WEEKLY">, import("valibot").LiteralSchema<"DAILY", "DAILY">], "ANNUALLY" | "HOURLY" | "MONTHLY" | "WEEKLY" | "DAILY">;
31
37
  pay_currency: import("valibot").StringSchema<string>;
@@ -36,13 +42,6 @@ export declare const JobSchema: import("valibot").SchemaWithTransform<import("va
36
42
  pay_max: import("valibot").NullableSchema<import("valibot").StringSchema<string>, undefined, string | null>;
37
43
  description: import("valibot").StringSchema<string>;
38
44
  title: import("valibot").StringSchema<string>;
39
- coordinates: import("valibot").ObjectSchema<{
40
- lat: import("valibot").NumberSchema<number>;
41
- lng: import("valibot").NumberSchema<number>;
42
- }, undefined, {
43
- lat: number;
44
- lng: number;
45
- }>;
46
45
  contract_type: import("valibot").NullableSchema<import("valibot").StringSchema<string>, undefined, string | null>;
47
46
  created_at: import("valibot").NullableSchema<import("valibot").StringSchema<string>, undefined, string | null>;
48
47
  custom_data: import("valibot").NullableSchema<import("valibot").RecordSchema<import("valibot").StringSchema<string>, import("valibot").AnySchema<any>, {
@@ -51,12 +50,16 @@ export declare const JobSchema: import("valibot").SchemaWithTransform<import("va
51
50
  [x: string]: any;
52
51
  } | null>;
53
52
  href: import("valibot").StringSchema<string>;
53
+ industry: import("valibot").OptionalSchema<import("valibot").StringSchema<string>, undefined, string | undefined>;
54
+ category: import("valibot").OptionalSchema<import("valibot").StringSchema<string>, undefined, string | undefined>;
55
+ skills: import("valibot").OptionalSchema<import("valibot").StringSchema<string>, undefined, string | undefined>;
56
+ town: import("valibot").OptionalSchema<import("valibot").StringSchema<string>, undefined, string | undefined>;
57
+ city: import("valibot").OptionalSchema<import("valibot").StringSchema<string>, undefined, string | undefined>;
58
+ country: import("valibot").OptionalSchema<import("valibot").StringSchema<string>, undefined, string | undefined>;
54
59
  }, undefined, {
55
- title: string;
56
- href: string;
57
60
  id: number;
58
61
  company_name: string;
59
- employment_type: "FULL_TIME" | "PART_TIME" | "TEMPORARY" | "CONTRACTOR" | "INTERN" | "VOLUNTEER" | "OTHER";
62
+ employment_type: string;
60
63
  location_type: "LOCATION" | "REMOTE" | "HYBRID";
61
64
  pay_type: "ANNUALLY" | "HOURLY" | "MONTHLY" | "WEEKLY" | "DAILY";
62
65
  pay_currency: string;
@@ -66,30 +69,57 @@ export declare const JobSchema: import("valibot").SchemaWithTransform<import("va
66
69
  pay_min: string | null;
67
70
  pay_max: string | null;
68
71
  description: string;
69
- coordinates: {
70
- lat: number;
71
- lng: number;
72
- };
72
+ title: string;
73
73
  contract_type: string | null;
74
74
  created_at: string | null;
75
75
  custom_data: {
76
76
  [x: string]: any;
77
77
  } | null;
78
+ href: string;
79
+ industry?: string | undefined;
80
+ category?: string | undefined;
81
+ skills?: string | undefined;
82
+ town?: string | undefined;
83
+ city?: string | undefined;
84
+ country?: string | undefined;
78
85
  }>, {
86
+ raw: {
87
+ id: number;
88
+ company_name: string;
89
+ employment_type: string;
90
+ location_type: "LOCATION" | "REMOTE" | "HYBRID";
91
+ pay_type: "ANNUALLY" | "HOURLY" | "MONTHLY" | "WEEKLY" | "DAILY";
92
+ pay_currency: string;
93
+ pay_mask: boolean;
94
+ pay_display: boolean;
95
+ pay: string | null;
96
+ pay_min: string | null;
97
+ pay_max: string | null;
98
+ description: string;
99
+ title: string;
100
+ contract_type: string | null;
101
+ created_at: string | null;
102
+ custom_data: {
103
+ [x: string]: any;
104
+ } | null;
105
+ href: string;
106
+ industry?: string | undefined;
107
+ category?: string | undefined;
108
+ skills?: string | undefined;
109
+ town?: string | undefined;
110
+ city?: string | undefined;
111
+ country?: string | undefined;
112
+ };
79
113
  id: number;
80
114
  isNew: boolean;
81
115
  company: {
82
116
  name: string;
83
117
  };
84
- employmentType: "FULL_TIME" | "PART_TIME" | "TEMPORARY" | "CONTRACTOR" | "INTERN" | "VOLUNTEER" | "OTHER";
118
+ employmentType: string;
85
119
  locationType: "LOCATION" | "REMOTE" | "HYBRID";
86
120
  pay: string | undefined;
87
121
  description: string;
88
122
  title: string;
89
- coordinates: {
90
- lat: number;
91
- lng: number;
92
- };
93
123
  contractType: string | null;
94
124
  href: string;
95
125
  relativePostedDate: string;