hiresquire-cli 1.1.0 → 1.2.2
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.
- package/README.md +64 -1
- package/dist/api.d.ts +267 -0
- package/dist/api.d.ts.map +1 -0
- package/dist/api.js +735 -0
- package/dist/api.js.map +1 -0
- package/dist/config.d.ts +49 -0
- package/dist/config.d.ts.map +1 -0
- package/dist/config.js +197 -0
- package/dist/config.js.map +1 -0
- package/dist/index.d.ts +24 -0
- package/dist/index.d.ts.map +1 -0
- package/dist/index.js +1501 -0
- package/dist/index.js.map +1 -0
- package/dist/types.d.ts +354 -0
- package/dist/types.d.ts.map +1 -0
- package/dist/types.js +49 -0
- package/dist/types.js.map +1 -0
- package/package.json +73 -63
- package/jest.config.js +0 -30
- package/tsconfig.tsbuildinfo +0 -1
package/README.md
CHANGED
|
@@ -15,6 +15,31 @@ HireSquire CLI enables AI agents and developers to screen candidates directly fr
|
|
|
15
15
|
- 📄 **JSON Output**: Machine-readable output for automation
|
|
16
16
|
- ⚙️ **Config Management**: Easy API token setup and storage
|
|
17
17
|
- 🔗 **Webhook Support**: Conditional webhooks for automated workflows
|
|
18
|
+
- 📄 **Resume Parsing**: Supports PDF, DOCX, DOC, TXT, and Markdown files
|
|
19
|
+
|
|
20
|
+
## Supported Resume Formats
|
|
21
|
+
|
|
22
|
+
The CLI automatically detects and parses the following resume formats:
|
|
23
|
+
|
|
24
|
+
| Format | Extension | Parser |
|
|
25
|
+
|--------|-----------|--------|
|
|
26
|
+
| PDF | `.pdf` | pdf-parse |
|
|
27
|
+
| Word DOCX | `.docx` | officeparser |
|
|
28
|
+
| Word DOC | `.doc` | officeparser |
|
|
29
|
+
| Plain Text | `.txt` | Native |
|
|
30
|
+
| Markdown | `.md` | Native |
|
|
31
|
+
|
|
32
|
+
No manual conversion needed - just point to your resume files or directory!
|
|
33
|
+
|
|
34
|
+
### Installation Notes
|
|
35
|
+
|
|
36
|
+
When installing from source, the parser dependencies will be included automatically:
|
|
37
|
+
|
|
38
|
+
```bash
|
|
39
|
+
npm install -g hiresquire-cli
|
|
40
|
+
```
|
|
41
|
+
|
|
42
|
+
The parsers are pure JavaScript with no native dependencies, making them suitable for all environments including Docker containers.
|
|
18
43
|
|
|
19
44
|
## Installation
|
|
20
45
|
|
|
@@ -87,6 +112,13 @@ hiresquire results --job 123
|
|
|
87
112
|
| [`candidate`](#candidate) | Get candidate details |
|
|
88
113
|
| [`set-status`](#set-status) | Update candidate status |
|
|
89
114
|
| [`schema`](#schema) | Get API schema |
|
|
115
|
+
| [`whoami`](#whoami) | Verify API token and get profile/balance info |
|
|
116
|
+
| [`agent-keys`](#agent-keys) | Manage agent-specific API keys |
|
|
117
|
+
| [`credits`](#credits) | Manage prepaid credits (balance, checkout, auto-reload) |
|
|
118
|
+
| [`calendar`](#calendar) | Manage calendar connections (Calendly, Cal.com) |
|
|
119
|
+
| [`interviews`](#interviews) | Manage and schedule interviews |
|
|
120
|
+
| [`meetings`](#meetings) | Generate meeting links (Zoom, Google Meet) |
|
|
121
|
+
| [`estimate`](#estimate) | Estimate screening costs |
|
|
90
122
|
|
|
91
123
|
### init
|
|
92
124
|
|
|
@@ -114,7 +146,7 @@ Options:
|
|
|
114
146
|
- `-t, --title <title>` - Job posting title (required)
|
|
115
147
|
- `-d, --description <description>` - Job description (string or @file) (required)
|
|
116
148
|
- `-r, --resumes <paths>` - Resume files or directory (comma-separated or @file)
|
|
117
|
-
- `-l, --leniency <1-10>` - Screening leniency (1=
|
|
149
|
+
- `-l, --leniency <1-10>` - Screening leniency (1=loose, 10=strict), default: 5
|
|
118
150
|
- `-w, --webhook <url>` - Webhook URL for notifications
|
|
119
151
|
- `--watch` - Poll for completion and show results
|
|
120
152
|
- `--min-score <number>` - Minimum score threshold (0-100)
|
|
@@ -195,6 +227,37 @@ Options:
|
|
|
195
227
|
- `-l, --leniency <number>` - Default leniency level
|
|
196
228
|
- `--clear` - Clear all configuration
|
|
197
229
|
|
|
230
|
+
### credits
|
|
231
|
+
|
|
232
|
+
Manage prepaid credits:
|
|
233
|
+
|
|
234
|
+
```bash
|
|
235
|
+
# Check current balance
|
|
236
|
+
hiresquire credits balance
|
|
237
|
+
|
|
238
|
+
# List available credit packs
|
|
239
|
+
hiresquire credits list-packs
|
|
240
|
+
|
|
241
|
+
# Create checkout session
|
|
242
|
+
hiresquire credits checkout --pack pouch
|
|
243
|
+
|
|
244
|
+
# View transaction history
|
|
245
|
+
hiresquire credits transactions
|
|
246
|
+
|
|
247
|
+
# Enable auto-reload (when balance drops below threshold)
|
|
248
|
+
hiresquire credits auto-reload-enable --threshold 10 --amount 25 --payment-method-id pm_12345
|
|
249
|
+
|
|
250
|
+
# Disable auto-reload
|
|
251
|
+
hiresquire credits auto-reload-disable
|
|
252
|
+
```
|
|
253
|
+
|
|
254
|
+
Options:
|
|
255
|
+
- `-a, --action <action>` - Action: balance, list-packs, checkout, transactions, auto-reload-enable, auto-reload-disable
|
|
256
|
+
- `-p, --pack <pack>` - Credit pack: pouch, satchel, chest
|
|
257
|
+
- `--threshold <number>` - Auto-reload threshold in dollars
|
|
258
|
+
- `--amount <number>` - Amount to reload each time
|
|
259
|
+
- `--payment-method-id <id>` - Stripe payment method ID
|
|
260
|
+
|
|
198
261
|
## Agent Integration Examples
|
|
199
262
|
|
|
200
263
|
### OpenClaw
|
package/dist/api.d.ts
ADDED
|
@@ -0,0 +1,267 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* HireSquire CLI - API Client
|
|
3
|
+
*
|
|
4
|
+
* HTTP client for interacting with the HireSquire API
|
|
5
|
+
* Handles authentication, request/response typing, and error handling
|
|
6
|
+
*/
|
|
7
|
+
import { Config, CreateJobParams, CreateJobResponse, JobStatusResponse, ResultsResponse, JobsListResponse, EmailParams, EmailResponse, Resume, CalendarConnection, CreateCalendarConnectionParams, Interview, CreateInterviewParams, MeetingLinkResponse, AvailableSlotsResponse } from './types';
|
|
8
|
+
export declare class ApiClient {
|
|
9
|
+
private client;
|
|
10
|
+
private config;
|
|
11
|
+
constructor(config: Config);
|
|
12
|
+
private shouldRetryRequest;
|
|
13
|
+
private handleError;
|
|
14
|
+
/**
|
|
15
|
+
* Generic GET request
|
|
16
|
+
*/
|
|
17
|
+
get<T = any>(url: string, config?: any): Promise<{
|
|
18
|
+
data: T;
|
|
19
|
+
}>;
|
|
20
|
+
/**
|
|
21
|
+
* Generic POST request
|
|
22
|
+
*/
|
|
23
|
+
post<T = any>(url: string, data?: any, config?: any): Promise<{
|
|
24
|
+
data: T;
|
|
25
|
+
}>;
|
|
26
|
+
/**
|
|
27
|
+
* Generic PUT request
|
|
28
|
+
*/
|
|
29
|
+
put<T = any>(url: string, data?: any, config?: any): Promise<{
|
|
30
|
+
data: T;
|
|
31
|
+
}>;
|
|
32
|
+
/**
|
|
33
|
+
* Generic DELETE request
|
|
34
|
+
*/
|
|
35
|
+
delete<T = any>(url: string, config?: any): Promise<{
|
|
36
|
+
data: T;
|
|
37
|
+
}>;
|
|
38
|
+
/**
|
|
39
|
+
* Create a new screening job
|
|
40
|
+
*/
|
|
41
|
+
createJob(params: CreateJobParams): Promise<CreateJobResponse>;
|
|
42
|
+
/**
|
|
43
|
+
* Upload a ZIP file containing resumes to create a new screening job
|
|
44
|
+
*/
|
|
45
|
+
uploadZip(params: Omit<CreateJobParams, 'resumes'> & {
|
|
46
|
+
zipPath: string;
|
|
47
|
+
}): Promise<CreateJobResponse>;
|
|
48
|
+
/**
|
|
49
|
+
* Get job status
|
|
50
|
+
*/
|
|
51
|
+
getJobStatus(jobId: number): Promise<JobStatusResponse>;
|
|
52
|
+
/**
|
|
53
|
+
* Get job results
|
|
54
|
+
*/
|
|
55
|
+
getResults(jobId: number, options?: {
|
|
56
|
+
min_score?: number;
|
|
57
|
+
only_top_n?: number;
|
|
58
|
+
}): Promise<ResultsResponse>;
|
|
59
|
+
/**
|
|
60
|
+
* List all jobs
|
|
61
|
+
*/
|
|
62
|
+
listJobs(options?: {
|
|
63
|
+
status?: string;
|
|
64
|
+
page?: number;
|
|
65
|
+
per_page?: number;
|
|
66
|
+
}): Promise<JobsListResponse>;
|
|
67
|
+
/**
|
|
68
|
+
* Generate an email for a candidate
|
|
69
|
+
*/
|
|
70
|
+
generateEmail(params: EmailParams): Promise<EmailResponse>;
|
|
71
|
+
/**
|
|
72
|
+
* Poll for job completion
|
|
73
|
+
*/
|
|
74
|
+
pollForCompletion(jobId: number, options?: {
|
|
75
|
+
interval?: number;
|
|
76
|
+
timeout?: number;
|
|
77
|
+
onProgress?: (status: JobStatusResponse) => void;
|
|
78
|
+
}): Promise<JobStatusResponse>;
|
|
79
|
+
/**
|
|
80
|
+
* Sleep for specified milliseconds
|
|
81
|
+
*/
|
|
82
|
+
private sleep;
|
|
83
|
+
/**
|
|
84
|
+
* Test API connection
|
|
85
|
+
*/
|
|
86
|
+
testConnection(): Promise<boolean>;
|
|
87
|
+
/**
|
|
88
|
+
* Get current config
|
|
89
|
+
*/
|
|
90
|
+
getConfig(): Config;
|
|
91
|
+
/**
|
|
92
|
+
* Cancel a running job
|
|
93
|
+
*/
|
|
94
|
+
cancelJob(jobId: number): Promise<{
|
|
95
|
+
job_id: number;
|
|
96
|
+
status: string;
|
|
97
|
+
message: string;
|
|
98
|
+
}>;
|
|
99
|
+
/**
|
|
100
|
+
* Compare multiple candidates side-by-side
|
|
101
|
+
*/
|
|
102
|
+
compareCandidates(jobId: number, candidateIds: number[]): Promise<{
|
|
103
|
+
job_id: number;
|
|
104
|
+
candidates: Array<{
|
|
105
|
+
id: number;
|
|
106
|
+
name: string;
|
|
107
|
+
score: number;
|
|
108
|
+
summary: string;
|
|
109
|
+
}>;
|
|
110
|
+
comparison: {
|
|
111
|
+
top_candidate: string;
|
|
112
|
+
score_diff: number;
|
|
113
|
+
};
|
|
114
|
+
}>;
|
|
115
|
+
/**
|
|
116
|
+
* Report hiring outcome to improve AI accuracy
|
|
117
|
+
*/
|
|
118
|
+
reportOutcome(jobId: number, candidateId: number, outcome: 'hired' | 'rejected' | 'withdrawn'): Promise<{
|
|
119
|
+
success: boolean;
|
|
120
|
+
message: string;
|
|
121
|
+
}>;
|
|
122
|
+
/**
|
|
123
|
+
* Test a webhook endpoint
|
|
124
|
+
*/
|
|
125
|
+
testWebhook(webhookUrl: string): Promise<{
|
|
126
|
+
success: boolean;
|
|
127
|
+
message: string;
|
|
128
|
+
response_code?: number;
|
|
129
|
+
}>;
|
|
130
|
+
/**
|
|
131
|
+
* Get current rate limit status
|
|
132
|
+
*/
|
|
133
|
+
getRateLimit(): Promise<{
|
|
134
|
+
limit: number;
|
|
135
|
+
remaining: number;
|
|
136
|
+
reset_at: string;
|
|
137
|
+
reset_in_seconds: number;
|
|
138
|
+
}>;
|
|
139
|
+
/**
|
|
140
|
+
* Get a specific candidate
|
|
141
|
+
*/
|
|
142
|
+
getCandidate(candidateId: number): Promise<any>;
|
|
143
|
+
/**
|
|
144
|
+
* Update candidate status
|
|
145
|
+
*/
|
|
146
|
+
updateCandidateStatus(candidateId: number, status: 'pending' | 'shortlisted' | 'rejected' | 'interviewed' | 'offered' | 'hired'): Promise<{
|
|
147
|
+
success: boolean;
|
|
148
|
+
candidate: any;
|
|
149
|
+
}>;
|
|
150
|
+
/**
|
|
151
|
+
* Get API schema for discovery
|
|
152
|
+
*/
|
|
153
|
+
getSchema(): Promise<any>;
|
|
154
|
+
/**
|
|
155
|
+
* List calendar connections
|
|
156
|
+
*/
|
|
157
|
+
listCalendarConnections(): Promise<{
|
|
158
|
+
success: boolean;
|
|
159
|
+
data: CalendarConnection[];
|
|
160
|
+
}>;
|
|
161
|
+
/**
|
|
162
|
+
* Create a calendar connection
|
|
163
|
+
*/
|
|
164
|
+
createCalendarConnection(params: CreateCalendarConnectionParams): Promise<{
|
|
165
|
+
success: boolean;
|
|
166
|
+
data: CalendarConnection;
|
|
167
|
+
message: string;
|
|
168
|
+
}>;
|
|
169
|
+
/**
|
|
170
|
+
* Delete a calendar connection
|
|
171
|
+
*/
|
|
172
|
+
deleteCalendarConnection(id: number): Promise<{
|
|
173
|
+
success: boolean;
|
|
174
|
+
message: string;
|
|
175
|
+
}>;
|
|
176
|
+
/**
|
|
177
|
+
* Get available slots from calendar
|
|
178
|
+
*/
|
|
179
|
+
getAvailableSlots(params: {
|
|
180
|
+
provider: string;
|
|
181
|
+
date: string;
|
|
182
|
+
duration?: number;
|
|
183
|
+
}): Promise<AvailableSlotsResponse>;
|
|
184
|
+
/**
|
|
185
|
+
* List interviews
|
|
186
|
+
*/
|
|
187
|
+
listInterviews(jobId?: number): Promise<{
|
|
188
|
+
success: boolean;
|
|
189
|
+
data: Interview[];
|
|
190
|
+
}>;
|
|
191
|
+
/**
|
|
192
|
+
* Create an interview
|
|
193
|
+
*/
|
|
194
|
+
createInterview(params: CreateInterviewParams): Promise<{
|
|
195
|
+
success: boolean;
|
|
196
|
+
data: Interview;
|
|
197
|
+
message: string;
|
|
198
|
+
}>;
|
|
199
|
+
/**
|
|
200
|
+
* Show a specific interview
|
|
201
|
+
*/
|
|
202
|
+
showInterview(id: number): Promise<{
|
|
203
|
+
success: boolean;
|
|
204
|
+
data: Interview;
|
|
205
|
+
}>;
|
|
206
|
+
/**
|
|
207
|
+
* Update an interview
|
|
208
|
+
*/
|
|
209
|
+
updateInterview(id: number, params: Partial<CreateInterviewParams>): Promise<{
|
|
210
|
+
success: boolean;
|
|
211
|
+
data: Interview;
|
|
212
|
+
message: string;
|
|
213
|
+
}>;
|
|
214
|
+
/**
|
|
215
|
+
* Delete/cancel an interview
|
|
216
|
+
*/
|
|
217
|
+
deleteInterview(id: number): Promise<{
|
|
218
|
+
success: boolean;
|
|
219
|
+
message: string;
|
|
220
|
+
}>;
|
|
221
|
+
/**
|
|
222
|
+
* Generate a meeting link
|
|
223
|
+
*/
|
|
224
|
+
generateMeetingLink(params: {
|
|
225
|
+
provider: string;
|
|
226
|
+
topic: string;
|
|
227
|
+
duration?: number;
|
|
228
|
+
}): Promise<MeetingLinkResponse>;
|
|
229
|
+
/**
|
|
230
|
+
* Create a checkout session for credit purchase
|
|
231
|
+
*/
|
|
232
|
+
createCheckoutSession(params: {
|
|
233
|
+
pack?: string;
|
|
234
|
+
amount?: number;
|
|
235
|
+
success_url?: string;
|
|
236
|
+
cancel_url?: string;
|
|
237
|
+
}): Promise<any>;
|
|
238
|
+
/**
|
|
239
|
+
* Proxy MCP JSON-RPC requests to the server
|
|
240
|
+
*/
|
|
241
|
+
mcpProxy(payload: any): Promise<any>;
|
|
242
|
+
/**
|
|
243
|
+
* Regenerate an agent API key
|
|
244
|
+
*/
|
|
245
|
+
regenerateAgentKey(id: number): Promise<any>;
|
|
246
|
+
}
|
|
247
|
+
/**
|
|
248
|
+
* Create API client from config
|
|
249
|
+
*/
|
|
250
|
+
export declare function createApiClient(config: Config): ApiClient;
|
|
251
|
+
/**
|
|
252
|
+
* Create API client from token
|
|
253
|
+
*/
|
|
254
|
+
export declare function createApiClientFromToken(token: string, baseUrl?: string): ApiClient;
|
|
255
|
+
/**
|
|
256
|
+
* Read resume from file path (async - supports PDF, DOCX, DOC, TXT, MD)
|
|
257
|
+
*/
|
|
258
|
+
export declare function readResumeFromFile(filePath: string): Promise<Resume>;
|
|
259
|
+
/**
|
|
260
|
+
* Read resumes from directory (async)
|
|
261
|
+
*/
|
|
262
|
+
export declare function readResumesFromDirectory(dirPath: string, currentCount?: number): Promise<Resume[]>;
|
|
263
|
+
/**
|
|
264
|
+
* Read multiple resume files (async)
|
|
265
|
+
*/
|
|
266
|
+
export declare function readResumesFromPaths(paths: string[]): Promise<Resume[]>;
|
|
267
|
+
//# sourceMappingURL=api.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"api.d.ts","sourceRoot":"","sources":["../src/api.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAQH,OAAO,EACH,MAAM,EACN,eAAe,EACf,iBAAiB,EACjB,iBAAiB,EACjB,eAAe,EACf,gBAAgB,EAChB,WAAW,EACX,aAAa,EAMb,MAAM,EACN,kBAAkB,EAClB,8BAA8B,EAC9B,SAAS,EACT,qBAAqB,EACrB,mBAAmB,EACnB,sBAAsB,EACzB,MAAM,SAAS,CAAC;AAgBjB,qBAAa,SAAS;IAClB,OAAO,CAAC,MAAM,CAAgB;IAC9B,OAAO,CAAC,MAAM,CAAS;gBAEX,MAAM,EAAE,MAAM;IA0C1B,OAAO,CAAC,kBAAkB;IAY1B,OAAO,CAAC,WAAW;IA6BnB;;OAEG;IACG,GAAG,CAAC,CAAC,GAAG,GAAG,EAAE,GAAG,EAAE,MAAM,EAAE,MAAM,CAAC,EAAE,GAAG,GAAG,OAAO,CAAC;QAAE,IAAI,EAAE,CAAC,CAAA;KAAE,CAAC;IAKnE;;OAEG;IACG,IAAI,CAAC,CAAC,GAAG,GAAG,EAAE,GAAG,EAAE,MAAM,EAAE,IAAI,CAAC,EAAE,GAAG,EAAE,MAAM,CAAC,EAAE,GAAG,GAAG,OAAO,CAAC;QAAE,IAAI,EAAE,CAAC,CAAA;KAAE,CAAC;IAKhF;;OAEG;IACG,GAAG,CAAC,CAAC,GAAG,GAAG,EAAE,GAAG,EAAE,MAAM,EAAE,IAAI,CAAC,EAAE,GAAG,EAAE,MAAM,CAAC,EAAE,GAAG,GAAG,OAAO,CAAC;QAAE,IAAI,EAAE,CAAC,CAAA;KAAE,CAAC;IAK/E;;OAEG;IACG,MAAM,CAAC,CAAC,GAAG,GAAG,EAAE,GAAG,EAAE,MAAM,EAAE,MAAM,CAAC,EAAE,GAAG,GAAG,OAAO,CAAC;QAAE,IAAI,EAAE,CAAC,CAAA;KAAE,CAAC;IAKtE;;OAEG;IACG,SAAS,CAAC,MAAM,EAAE,eAAe,GAAG,OAAO,CAAC,iBAAiB,CAAC;IAUpE;;OAEG;IACG,SAAS,CACX,MAAM,EAAE,IAAI,CAAC,eAAe,EAAE,SAAS,CAAC,GAAG;QAAE,OAAO,EAAE,MAAM,CAAA;KAAE,GAC/D,OAAO,CAAC,iBAAiB,CAAC;IA+B7B;;OAEG;IACG,YAAY,CAAC,KAAK,EAAE,MAAM,GAAG,OAAO,CAAC,iBAAiB,CAAC;IAK7D;;OAEG;IACG,UAAU,CACZ,KAAK,EAAE,MAAM,EACb,OAAO,GAAE;QAAE,SAAS,CAAC,EAAE,MAAM,CAAC;QAAC,UAAU,CAAC,EAAE,MAAM,CAAA;KAAO,GAC1D,OAAO,CAAC,eAAe,CAAC;IAc3B;;OAEG;IACG,QAAQ,CAAC,OAAO,GAAE;QACpB,MAAM,CAAC,EAAE,MAAM,CAAC;QAChB,IAAI,CAAC,EAAE,MAAM,CAAC;QACd,QAAQ,CAAC,EAAE,MAAM,CAAC;KAChB,GAAG,OAAO,CAAC,gBAAgB,CAAC;IAiBlC;;OAEG;IACG,aAAa,CAAC,MAAM,EAAE,WAAW,GAAG,OAAO,CAAC,aAAa,CAAC;IAgBhE;;OAEG;IACG,iBAAiB,CACnB,KAAK,EAAE,MAAM,EACb,OAAO,GAAE;QACL,QAAQ,CAAC,EAAE,MAAM,CAAC;QAClB,OAAO,CAAC,EAAE,MAAM,CAAC;QACjB,UAAU,CAAC,EAAE,CAAC,MAAM,EAAE,iBAAiB,KAAK,IAAI,CAAC;KAC/C,GACP,OAAO,CAAC,iBAAiB,CAAC;IAyB7B;;OAEG;IACH,OAAO,CAAC,KAAK;IAIb;;OAEG;IACG,cAAc,IAAI,OAAO,CAAC,OAAO,CAAC;IASxC;;OAEG;IACH,SAAS,IAAI,MAAM;IAQnB;;OAEG;IACG,SAAS,CAAC,KAAK,EAAE,MAAM,GAAG,OAAO,CAAC;QAAE,MAAM,EAAE,MAAM,CAAC;QAAC,MAAM,EAAE,MAAM,CAAC;QAAC,OAAO,EAAE,MAAM,CAAA;KAAE,CAAC;IAO5F;;OAEG;IACG,iBAAiB,CACnB,KAAK,EAAE,MAAM,EACb,YAAY,EAAE,MAAM,EAAE,GACvB,OAAO,CAAC;QACP,MAAM,EAAE,MAAM,CAAC;QACf,UAAU,EAAE,KAAK,CAAC;YAAE,EAAE,EAAE,MAAM,CAAC;YAAC,IAAI,EAAE,MAAM,CAAC;YAAC,KAAK,EAAE,MAAM,CAAC;YAAC,OAAO,EAAE,MAAM,CAAA;SAAE,CAAC,CAAC;QAChF,UAAU,EAAE;YAAE,aAAa,EAAE,MAAM,CAAC;YAAC,UAAU,EAAE,MAAM,CAAA;SAAE,CAAC;KAC7D,CAAC;IAOF;;OAEG;IACG,aAAa,CACf,KAAK,EAAE,MAAM,EACb,WAAW,EAAE,MAAM,EACnB,OAAO,EAAE,OAAO,GAAG,UAAU,GAAG,WAAW,GAC5C,OAAO,CAAC;QAAE,OAAO,EAAE,OAAO,CAAC;QAAC,OAAO,EAAE,MAAM,CAAA;KAAE,CAAC;IAYjD;;OAEG;IACG,WAAW,CAAC,UAAU,EAAE,MAAM,GAAG,OAAO,CAAC;QAAE,OAAO,EAAE,OAAO,CAAC;QAAC,OAAO,EAAE,MAAM,CAAC;QAAC,aAAa,CAAC,EAAE,MAAM,CAAA;KAAE,CAAC;IAS7G;;OAEG;IACG,YAAY,IAAI,OAAO,CAAC;QAC1B,KAAK,EAAE,MAAM,CAAC;QACd,SAAS,EAAE,MAAM,CAAC;QAClB,QAAQ,EAAE,MAAM,CAAC;QACjB,gBAAgB,EAAE,MAAM,CAAC;KAC5B,CAAC;IASF;;OAEG;IACG,YAAY,CAAC,WAAW,EAAE,MAAM,GAAG,OAAO,CAAC,GAAG,CAAC;IAKrD;;OAEG;IACG,qBAAqB,CACvB,WAAW,EAAE,MAAM,EACnB,MAAM,EAAE,SAAS,GAAG,aAAa,GAAG,UAAU,GAAG,aAAa,GAAG,SAAS,GAAG,OAAO,GACrF,OAAO,CAAC;QAAE,OAAO,EAAE,OAAO,CAAC;QAAC,SAAS,EAAE,GAAG,CAAA;KAAE,CAAC;IAShD;;OAEG;IACG,SAAS,IAAI,OAAO,CAAC,GAAG,CAAC;IAS/B;;OAEG;IACG,uBAAuB,IAAI,OAAO,CAAC;QAAE,OAAO,EAAE,OAAO,CAAC;QAAC,IAAI,EAAE,kBAAkB,EAAE,CAAA;KAAE,CAAC;IAK1F;;OAEG;IACG,wBAAwB,CAAC,MAAM,EAAE,8BAA8B,GAAG,OAAO,CAAC;QAAE,OAAO,EAAE,OAAO,CAAC;QAAC,IAAI,EAAE,kBAAkB,CAAC;QAAC,OAAO,EAAE,MAAM,CAAA;KAAE,CAAC;IAKhJ;;OAEG;IACG,wBAAwB,CAAC,EAAE,EAAE,MAAM,GAAG,OAAO,CAAC;QAAE,OAAO,EAAE,OAAO,CAAC;QAAC,OAAO,EAAE,MAAM,CAAA;KAAE,CAAC;IAK1F;;OAEG;IACG,iBAAiB,CAAC,MAAM,EAAE;QAAE,QAAQ,EAAE,MAAM,CAAC;QAAC,IAAI,EAAE,MAAM,CAAC;QAAC,QAAQ,CAAC,EAAE,MAAM,CAAA;KAAE,GAAG,OAAO,CAAC,sBAAsB,CAAC;IASvH;;OAEG;IACG,cAAc,CAAC,KAAK,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC;QAAE,OAAO,EAAE,OAAO,CAAC;QAAC,IAAI,EAAE,SAAS,EAAE,CAAA;KAAE,CAAC;IAMtF;;OAEG;IACG,eAAe,CAAC,MAAM,EAAE,qBAAqB,GAAG,OAAO,CAAC;QAAE,OAAO,EAAE,OAAO,CAAC;QAAC,IAAI,EAAE,SAAS,CAAC;QAAC,OAAO,EAAE,MAAM,CAAA;KAAE,CAAC;IAKrH;;OAEG;IACG,aAAa,CAAC,EAAE,EAAE,MAAM,GAAG,OAAO,CAAC;QAAE,OAAO,EAAE,OAAO,CAAC;QAAC,IAAI,EAAE,SAAS,CAAA;KAAE,CAAC;IAK/E;;OAEG;IACG,eAAe,CAAC,EAAE,EAAE,MAAM,EAAE,MAAM,EAAE,OAAO,CAAC,qBAAqB,CAAC,GAAG,OAAO,CAAC;QAAE,OAAO,EAAE,OAAO,CAAC;QAAC,IAAI,EAAE,SAAS,CAAC;QAAC,OAAO,EAAE,MAAM,CAAA;KAAE,CAAC;IAK1I;;OAEG;IACG,eAAe,CAAC,EAAE,EAAE,MAAM,GAAG,OAAO,CAAC;QAAE,OAAO,EAAE,OAAO,CAAC;QAAC,OAAO,EAAE,MAAM,CAAA;KAAE,CAAC;IASjF;;OAEG;IACG,mBAAmB,CAAC,MAAM,EAAE;QAAE,QAAQ,EAAE,MAAM,CAAC;QAAC,KAAK,EAAE,MAAM,CAAC;QAAC,QAAQ,CAAC,EAAE,MAAM,CAAA;KAAE,GAAG,OAAO,CAAC,mBAAmB,CAAC;IASvH;;OAEG;IACG,qBAAqB,CAAC,MAAM,EAAE;QAAE,IAAI,CAAC,EAAE,MAAM,CAAC;QAAC,MAAM,CAAC,EAAE,MAAM,CAAC;QAAC,WAAW,CAAC,EAAE,MAAM,CAAC;QAAC,UAAU,CAAC,EAAE,MAAM,CAAA;KAAE,GAAG,OAAO,CAAC,GAAG,CAAC;IAKhI;;OAEG;IACG,QAAQ,CAAC,OAAO,EAAE,GAAG,GAAG,OAAO,CAAC,GAAG,CAAC;IAK1C;;OAEG;IACG,kBAAkB,CAAC,EAAE,EAAE,MAAM,GAAG,OAAO,CAAC,GAAG,CAAC;CAIrD;AAQD;;GAEG;AACH,wBAAgB,eAAe,CAAC,MAAM,EAAE,MAAM,GAAG,SAAS,CAEzD;AAED;;GAEG;AACH,wBAAgB,wBAAwB,CAAC,KAAK,EAAE,MAAM,EAAE,OAAO,CAAC,EAAE,MAAM,GAAG,SAAS,CAKnF;AAMD;;GAEG;AACH,wBAAsB,kBAAkB,CAAC,QAAQ,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC,CA+C1E;AAkDD;;GAEG;AACH,wBAAsB,wBAAwB,CAAC,OAAO,EAAE,MAAM,EAAE,YAAY,GAAE,MAAU,GAAG,OAAO,CAAC,MAAM,EAAE,CAAC,CA2B3G;AAED;;GAEG;AACH,wBAAsB,oBAAoB,CAAC,KAAK,EAAE,MAAM,EAAE,GAAG,OAAO,CAAC,MAAM,EAAE,CAAC,CAoC7E"}
|