@xapp/stentor-service-jobber 1.51.3 → 1.51.4
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/lib/JobberService.d.ts +7 -5
- package/lib/JobberService.js +29 -95
- package/lib/JobberService.js.map +1 -1
- package/package.json +2 -2
- package/lib/Secrets.d.ts +0 -10
- package/lib/Secrets.js +0 -92
- package/lib/Secrets.js.map +0 -1
package/lib/JobberService.d.ts
CHANGED
|
@@ -4,6 +4,12 @@ import { BaseService, CrmResponse, CrmService, ExternalLead } from "stentor-mode
|
|
|
4
4
|
export interface JobberServiceProps extends BaseService {
|
|
5
5
|
appId: string;
|
|
6
6
|
channel: string;
|
|
7
|
+
authenticate: JobberAuthenticator;
|
|
8
|
+
}
|
|
9
|
+
export interface JobberAuthenticator {
|
|
10
|
+
(): Promise<{
|
|
11
|
+
accessToken: string;
|
|
12
|
+
}>;
|
|
7
13
|
}
|
|
8
14
|
export interface JobberContact {
|
|
9
15
|
name: string;
|
|
@@ -65,14 +71,9 @@ export interface JobberResponse {
|
|
|
65
71
|
}
|
|
66
72
|
export declare class JobberService extends FetchService implements CrmService {
|
|
67
73
|
private props;
|
|
68
|
-
private tokenUrl;
|
|
69
|
-
private OAuthSecrets;
|
|
70
74
|
private access_token;
|
|
71
75
|
constructor(props: JobberServiceProps);
|
|
72
|
-
authenticate(code?: string): Promise<void>;
|
|
73
76
|
send(externalLead: ExternalLead): Promise<CrmResponse>;
|
|
74
|
-
private grantToken;
|
|
75
|
-
private refreshToken;
|
|
76
77
|
private createContact;
|
|
77
78
|
private createProperty;
|
|
78
79
|
private createRequest;
|
|
@@ -80,4 +81,5 @@ export declare class JobberService extends FetchService implements CrmService {
|
|
|
80
81
|
private checkForExistingClient;
|
|
81
82
|
private getProperty;
|
|
82
83
|
private requestHeader;
|
|
84
|
+
private getAuthenticationToken;
|
|
83
85
|
}
|
package/lib/JobberService.js
CHANGED
|
@@ -17,49 +17,12 @@ exports.JobberService = void 0;
|
|
|
17
17
|
const stentor_service_fetch_1 = require("stentor-service-fetch");
|
|
18
18
|
const stentor_logger_1 = require("stentor-logger");
|
|
19
19
|
const axios_1 = __importDefault(require("axios"));
|
|
20
|
-
const Secrets_1 = require("./Secrets");
|
|
21
20
|
const addresser_1 = __importDefault(require("addresser"));
|
|
22
|
-
const TOKEN_URL = "https://api.getjobber.com/api/oauth/token";
|
|
23
21
|
class JobberService extends stentor_service_fetch_1.FetchService {
|
|
24
22
|
constructor(props) {
|
|
25
23
|
(0, stentor_logger_1.log)().info(`Jobber Service, app id: ${props.appId}`);
|
|
26
24
|
super(props);
|
|
27
25
|
this.props = Object.assign({}, props);
|
|
28
|
-
this.tokenUrl = TOKEN_URL;
|
|
29
|
-
this.OAuthSecrets = new Secrets_1.OAUTH_Secrets();
|
|
30
|
-
}
|
|
31
|
-
authenticate(code = "") {
|
|
32
|
-
return __awaiter(this, void 0, void 0, function* () {
|
|
33
|
-
const secretResponse = yield this.OAuthSecrets.getSecretValue();
|
|
34
|
-
const secret = JSON.parse(secretResponse.SecretString);
|
|
35
|
-
let credentials;
|
|
36
|
-
const matchingRecordIndex = secret.Config.JOBBER.findIndex((x) => x.app === this.props.appId);
|
|
37
|
-
// Generate Access Token or Renew Token?
|
|
38
|
-
if (code) {
|
|
39
|
-
credentials = yield this.grantToken(code);
|
|
40
|
-
}
|
|
41
|
-
else if (matchingRecordIndex >= 0) {
|
|
42
|
-
credentials = yield this.refreshToken(secret.Config.JOBBER[matchingRecordIndex].refreshToken);
|
|
43
|
-
}
|
|
44
|
-
else {
|
|
45
|
-
(0, stentor_logger_1.log)().warn(`Please send an access code, or a matching secret that contains credentials for ${this.props.appId}`);
|
|
46
|
-
}
|
|
47
|
-
// Update existing App?
|
|
48
|
-
if (matchingRecordIndex >= 0) {
|
|
49
|
-
secret.Config.JOBBER[matchingRecordIndex].accessToken = credentials.access_token;
|
|
50
|
-
secret.Config.JOBBER[matchingRecordIndex].refreshToken = credentials.refresh_token;
|
|
51
|
-
}
|
|
52
|
-
//New App
|
|
53
|
-
else {
|
|
54
|
-
secret.Config.JOBBER.push({
|
|
55
|
-
app: this.props.appId,
|
|
56
|
-
accessToken: credentials.access_token,
|
|
57
|
-
refreshToken: credentials.refresh_token
|
|
58
|
-
});
|
|
59
|
-
}
|
|
60
|
-
yield this.OAuthSecrets.updateSecretValue(JSON.stringify(secret));
|
|
61
|
-
this.access_token = credentials.access_token;
|
|
62
|
-
});
|
|
63
26
|
}
|
|
64
27
|
// Called by CRM Service to send the lead
|
|
65
28
|
send(externalLead) {
|
|
@@ -93,41 +56,10 @@ class JobberService extends stentor_service_fetch_1.FetchService {
|
|
|
93
56
|
return crmResponse;
|
|
94
57
|
});
|
|
95
58
|
}
|
|
96
|
-
grantToken(code) {
|
|
97
|
-
return __awaiter(this, void 0, void 0, function* () {
|
|
98
|
-
const response = yield axios_1.default.post(this.tokenUrl, `client_id=${process.env.JOBBER_ClientId}&client_secret=${process.env.JOBBER_ClientSecret}&grant_type=authorization_code&code=${code}`, {
|
|
99
|
-
headers: {
|
|
100
|
-
"Content-Type": "application/x-www-form-urlencoded"
|
|
101
|
-
}
|
|
102
|
-
});
|
|
103
|
-
const returnValue = {
|
|
104
|
-
access_token: response.data.access_token,
|
|
105
|
-
refresh_token: response.data.refresh_token
|
|
106
|
-
};
|
|
107
|
-
return returnValue;
|
|
108
|
-
});
|
|
109
|
-
}
|
|
110
|
-
refreshToken(refreshToken) {
|
|
111
|
-
return __awaiter(this, void 0, void 0, function* () {
|
|
112
|
-
const response = yield axios_1.default.post(this.tokenUrl, `client_id=${process.env.JOBBER_ClientId}&client_secret=${process.env.JOBBER_ClientSecret}&grant_type=refresh_token&refresh_token=${refreshToken}`, {
|
|
113
|
-
headers: {
|
|
114
|
-
"Content-Type": "application/x-www-form-urlencoded"
|
|
115
|
-
}
|
|
116
|
-
});
|
|
117
|
-
const returnValue = {
|
|
118
|
-
access_token: response.data.access_token,
|
|
119
|
-
refresh_token: response.data.refresh_token
|
|
120
|
-
};
|
|
121
|
-
return returnValue;
|
|
122
|
-
});
|
|
123
|
-
}
|
|
124
59
|
// Create a Contact (lead)
|
|
125
60
|
createContact(contact, transcriptData) {
|
|
126
61
|
var _a, _b;
|
|
127
62
|
return __awaiter(this, void 0, void 0, function* () {
|
|
128
|
-
if (!this.access_token) {
|
|
129
|
-
yield this.authenticate();
|
|
130
|
-
}
|
|
131
63
|
let clientId = yield this.checkForExistingClient(contact);
|
|
132
64
|
// New Client?
|
|
133
65
|
if (!clientId) {
|
|
@@ -149,7 +81,8 @@ class JobberService extends stentor_service_fetch_1.FetchService {
|
|
|
149
81
|
}`,
|
|
150
82
|
operationName: "AddClient"
|
|
151
83
|
};
|
|
152
|
-
const
|
|
84
|
+
const header = yield this.requestHeader();
|
|
85
|
+
const response = yield axios_1.default.post(process.env.JOBBER_BaseUrl, requestData, header);
|
|
153
86
|
clientId = (_b = (_a = response.data.data.clientCreate) === null || _a === void 0 ? void 0 : _a.client) === null || _b === void 0 ? void 0 : _b.id;
|
|
154
87
|
}
|
|
155
88
|
const propertyId = yield this.createProperty(clientId, contact);
|
|
@@ -168,9 +101,6 @@ class JobberService extends stentor_service_fetch_1.FetchService {
|
|
|
168
101
|
(0, stentor_logger_1.log)().info("no address to add");
|
|
169
102
|
return;
|
|
170
103
|
}
|
|
171
|
-
if (!this.access_token) {
|
|
172
|
-
yield this.authenticate();
|
|
173
|
-
}
|
|
174
104
|
const propertyId = yield this.getProperty(contactId, contact);
|
|
175
105
|
// Property already exists.
|
|
176
106
|
if (propertyId) {
|
|
@@ -198,7 +128,8 @@ class JobberService extends stentor_service_fetch_1.FetchService {
|
|
|
198
128
|
}`,
|
|
199
129
|
operationName: "AddProperty"
|
|
200
130
|
};
|
|
201
|
-
const
|
|
131
|
+
const header = yield this.requestHeader();
|
|
132
|
+
const response = yield axios_1.default.post(process.env.JOBBER_BaseUrl, requestData, header);
|
|
202
133
|
return response.data.data.propertyCreate.properties[0].id;
|
|
203
134
|
});
|
|
204
135
|
}
|
|
@@ -209,9 +140,6 @@ class JobberService extends stentor_service_fetch_1.FetchService {
|
|
|
209
140
|
(0, stentor_logger_1.log)().info("no contact id", contactId);
|
|
210
141
|
return;
|
|
211
142
|
}
|
|
212
|
-
if (!this.access_token) {
|
|
213
|
-
yield this.authenticate();
|
|
214
|
-
}
|
|
215
143
|
const requestData = {
|
|
216
144
|
query: `mutation AddRequest {
|
|
217
145
|
requestCreate(
|
|
@@ -227,7 +155,8 @@ class JobberService extends stentor_service_fetch_1.FetchService {
|
|
|
227
155
|
}`,
|
|
228
156
|
operationName: "AddRequest"
|
|
229
157
|
};
|
|
230
|
-
const
|
|
158
|
+
const header = yield this.requestHeader();
|
|
159
|
+
const response = yield axios_1.default.post(process.env.JOBBER_BaseUrl, requestData, header);
|
|
231
160
|
return response.data.data.requestCreate.request.id;
|
|
232
161
|
});
|
|
233
162
|
}
|
|
@@ -245,9 +174,6 @@ class JobberService extends stentor_service_fetch_1.FetchService {
|
|
|
245
174
|
? "user: "
|
|
246
175
|
: process.env.STUDIO_APP_ID + ": "} ${x.message} \n`);
|
|
247
176
|
});
|
|
248
|
-
if (!this.access_token) {
|
|
249
|
-
yield this.authenticate();
|
|
250
|
-
}
|
|
251
177
|
const requestData = {
|
|
252
178
|
query: `mutation AddNote {
|
|
253
179
|
requestCreateNote(requestId: "${requestId}",
|
|
@@ -261,15 +187,13 @@ class JobberService extends stentor_service_fetch_1.FetchService {
|
|
|
261
187
|
}`,
|
|
262
188
|
operationName: "AddNote"
|
|
263
189
|
};
|
|
264
|
-
|
|
190
|
+
const header = yield this.requestHeader();
|
|
191
|
+
yield axios_1.default.post(process.env.JOBBER_BaseUrl, requestData, header);
|
|
265
192
|
});
|
|
266
193
|
}
|
|
267
194
|
// Check for Existing Contact
|
|
268
195
|
checkForExistingClient(contact) {
|
|
269
196
|
return __awaiter(this, void 0, void 0, function* () {
|
|
270
|
-
if (!this.access_token) {
|
|
271
|
-
yield this.authenticate();
|
|
272
|
-
}
|
|
273
197
|
const requestData = {
|
|
274
198
|
query: `query CheckExisting {
|
|
275
199
|
clients(searchTerm: "${contact.email ? contact.email : contact.name}") {
|
|
@@ -281,7 +205,8 @@ class JobberService extends stentor_service_fetch_1.FetchService {
|
|
|
281
205
|
}`,
|
|
282
206
|
operationName: "CheckExisting"
|
|
283
207
|
};
|
|
284
|
-
const
|
|
208
|
+
const header = yield this.requestHeader();
|
|
209
|
+
const result = yield axios_1.default.post(process.env.JOBBER_BaseUrl, requestData, header);
|
|
285
210
|
// Match: Return the ClientID
|
|
286
211
|
if (result.data.data.clients.nodes.length > 0) {
|
|
287
212
|
return result.data.data.clients.nodes[0].id;
|
|
@@ -294,9 +219,6 @@ class JobberService extends stentor_service_fetch_1.FetchService {
|
|
|
294
219
|
// Get Property for a Contact
|
|
295
220
|
getProperty(clientId, contact) {
|
|
296
221
|
return __awaiter(this, void 0, void 0, function* () {
|
|
297
|
-
if (!this.access_token) {
|
|
298
|
-
yield this.authenticate();
|
|
299
|
-
}
|
|
300
222
|
let propertyId = "";
|
|
301
223
|
const requestData = {
|
|
302
224
|
query: `query GetProperties {
|
|
@@ -312,7 +234,8 @@ class JobberService extends stentor_service_fetch_1.FetchService {
|
|
|
312
234
|
}`,
|
|
313
235
|
operationName: "GetProperties"
|
|
314
236
|
};
|
|
315
|
-
const
|
|
237
|
+
const header = yield this.requestHeader();
|
|
238
|
+
const result = yield axios_1.default.post(process.env.JOBBER_BaseUrl, requestData, header);
|
|
316
239
|
// Match: Return the ClientID
|
|
317
240
|
if (result.data.data.properties.nodes.length) {
|
|
318
241
|
const parsedAddress = addresser_1.default.parseAddress(contact.address);
|
|
@@ -327,13 +250,24 @@ class JobberService extends stentor_service_fetch_1.FetchService {
|
|
|
327
250
|
});
|
|
328
251
|
}
|
|
329
252
|
requestHeader() {
|
|
330
|
-
return {
|
|
331
|
-
|
|
332
|
-
|
|
333
|
-
|
|
334
|
-
|
|
253
|
+
return __awaiter(this, void 0, void 0, function* () {
|
|
254
|
+
return {
|
|
255
|
+
headers: {
|
|
256
|
+
Authorization: `Bearer ${yield this.getAuthenticationToken()}}`,
|
|
257
|
+
"Content-Type": "application/json",
|
|
258
|
+
"X-JOBBER-GRAPHQL-VERSION": process.env.JOBBER_API_VERSION
|
|
259
|
+
}
|
|
260
|
+
};
|
|
261
|
+
});
|
|
262
|
+
}
|
|
263
|
+
getAuthenticationToken() {
|
|
264
|
+
return __awaiter(this, void 0, void 0, function* () {
|
|
265
|
+
if (!this.access_token) {
|
|
266
|
+
const authenticateResponse = yield this.props.authenticate();
|
|
267
|
+
this.access_token = authenticateResponse.accessToken;
|
|
335
268
|
}
|
|
336
|
-
|
|
269
|
+
return this.access_token;
|
|
270
|
+
});
|
|
337
271
|
}
|
|
338
272
|
}
|
|
339
273
|
exports.JobberService = JobberService;
|
package/lib/JobberService.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"JobberService.js","sourceRoot":"","sources":["../src/JobberService.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;AAAA,oCAAoC;AACpC,iEAAqD;AAErD,mDAAqC;AACrC,kDAA0B;AAC1B,
|
|
1
|
+
{"version":3,"file":"JobberService.js","sourceRoot":"","sources":["../src/JobberService.ts"],"names":[],"mappings":"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"}
|
package/package.json
CHANGED
|
@@ -4,7 +4,7 @@
|
|
|
4
4
|
"publishConfig": {
|
|
5
5
|
"access": "public"
|
|
6
6
|
},
|
|
7
|
-
"version": "1.51.
|
|
7
|
+
"version": "1.51.4",
|
|
8
8
|
"description": "Service to integrate with Jobber",
|
|
9
9
|
"types": "lib/index",
|
|
10
10
|
"main": "lib/index",
|
|
@@ -37,7 +37,7 @@
|
|
|
37
37
|
"clean": "rm -rf ./lib/*",
|
|
38
38
|
"test": "exit 0"
|
|
39
39
|
},
|
|
40
|
-
"gitHead": "
|
|
40
|
+
"gitHead": "36216ee21f985b7f824f327863238226f686bb1a",
|
|
41
41
|
"dependencies": {
|
|
42
42
|
"addresser": "1.1.20"
|
|
43
43
|
}
|
package/lib/Secrets.d.ts
DELETED
|
@@ -1,10 +0,0 @@
|
|
|
1
|
-
/*! Copyright (c) 2022, XAPPmedia */
|
|
2
|
-
import * as AWS from "aws-sdk";
|
|
3
|
-
import { GetSecretValueResponse, PutSecretValueResponse } from "aws-sdk/clients/secretsmanager";
|
|
4
|
-
export declare class OAUTH_Secrets {
|
|
5
|
-
secret_name: string;
|
|
6
|
-
client: AWS.SecretsManager;
|
|
7
|
-
constructor();
|
|
8
|
-
getSecretValue(): Promise<GetSecretValueResponse>;
|
|
9
|
-
updateSecretValue(config: any): Promise<PutSecretValueResponse>;
|
|
10
|
-
}
|
package/lib/Secrets.js
DELETED
|
@@ -1,92 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
|
|
3
|
-
if (k2 === undefined) k2 = k;
|
|
4
|
-
var desc = Object.getOwnPropertyDescriptor(m, k);
|
|
5
|
-
if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
|
|
6
|
-
desc = { enumerable: true, get: function() { return m[k]; } };
|
|
7
|
-
}
|
|
8
|
-
Object.defineProperty(o, k2, desc);
|
|
9
|
-
}) : (function(o, m, k, k2) {
|
|
10
|
-
if (k2 === undefined) k2 = k;
|
|
11
|
-
o[k2] = m[k];
|
|
12
|
-
}));
|
|
13
|
-
var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
|
|
14
|
-
Object.defineProperty(o, "default", { enumerable: true, value: v });
|
|
15
|
-
}) : function(o, v) {
|
|
16
|
-
o["default"] = v;
|
|
17
|
-
});
|
|
18
|
-
var __importStar = (this && this.__importStar) || function (mod) {
|
|
19
|
-
if (mod && mod.__esModule) return mod;
|
|
20
|
-
var result = {};
|
|
21
|
-
if (mod != null) for (var k in mod) if (k !== "default" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);
|
|
22
|
-
__setModuleDefault(result, mod);
|
|
23
|
-
return result;
|
|
24
|
-
};
|
|
25
|
-
var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
|
|
26
|
-
function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
|
|
27
|
-
return new (P || (P = Promise))(function (resolve, reject) {
|
|
28
|
-
function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
|
|
29
|
-
function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
|
|
30
|
-
function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
|
|
31
|
-
step((generator = generator.apply(thisArg, _arguments || [])).next());
|
|
32
|
-
});
|
|
33
|
-
};
|
|
34
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
35
|
-
exports.OAUTH_Secrets = void 0;
|
|
36
|
-
/*! Copyright (c) 2022, XAPPmedia */
|
|
37
|
-
const AWS = __importStar(require("aws-sdk"));
|
|
38
|
-
class OAUTH_Secrets {
|
|
39
|
-
constructor() {
|
|
40
|
-
this.secret_name = process.env.SECRET_MANAGER;
|
|
41
|
-
this.client = new AWS.SecretsManager({
|
|
42
|
-
region: process.env.AWS_REGION
|
|
43
|
-
});
|
|
44
|
-
}
|
|
45
|
-
getSecretValue() {
|
|
46
|
-
return __awaiter(this, void 0, void 0, function* () {
|
|
47
|
-
try {
|
|
48
|
-
return new Promise((resolve) => {
|
|
49
|
-
this.client.getSecretValue({
|
|
50
|
-
SecretId: this.secret_name
|
|
51
|
-
}, (error, data) => {
|
|
52
|
-
if (error) {
|
|
53
|
-
console.error("ERROR getting secret", { error });
|
|
54
|
-
resolve(null);
|
|
55
|
-
}
|
|
56
|
-
else {
|
|
57
|
-
resolve(data);
|
|
58
|
-
}
|
|
59
|
-
});
|
|
60
|
-
});
|
|
61
|
-
}
|
|
62
|
-
catch (error) {
|
|
63
|
-
console.error("ERROR GETTING SECRET VALUE: ", JSON.stringify(error));
|
|
64
|
-
}
|
|
65
|
-
});
|
|
66
|
-
}
|
|
67
|
-
updateSecretValue(config) {
|
|
68
|
-
return __awaiter(this, void 0, void 0, function* () {
|
|
69
|
-
try {
|
|
70
|
-
return new Promise((resolve) => {
|
|
71
|
-
this.client.putSecretValue({
|
|
72
|
-
SecretId: this.secret_name,
|
|
73
|
-
SecretString: config
|
|
74
|
-
}, (error, data) => {
|
|
75
|
-
if (error) {
|
|
76
|
-
console.error("ERROR getting secret", { error });
|
|
77
|
-
resolve(null);
|
|
78
|
-
}
|
|
79
|
-
else {
|
|
80
|
-
resolve(data);
|
|
81
|
-
}
|
|
82
|
-
});
|
|
83
|
-
});
|
|
84
|
-
}
|
|
85
|
-
catch (error) {
|
|
86
|
-
console.error("ERROR UPDATING SECRET VALUE: ", error);
|
|
87
|
-
}
|
|
88
|
-
});
|
|
89
|
-
}
|
|
90
|
-
}
|
|
91
|
-
exports.OAUTH_Secrets = OAUTH_Secrets;
|
|
92
|
-
//# sourceMappingURL=Secrets.js.map
|
package/lib/Secrets.js.map
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"Secrets.js","sourceRoot":"","sources":["../src/Secrets.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA,oCAAoC;AACpC,6CAA+B;AAG/B,MAAa,aAAa;IAItB;QACI,IAAI,CAAC,WAAW,GAAG,OAAO,CAAC,GAAG,CAAC,cAAc,CAAC;QAE9C,IAAI,CAAC,MAAM,GAAG,IAAI,GAAG,CAAC,cAAc,CAAC;YACjC,MAAM,EAAE,OAAO,CAAC,GAAG,CAAC,UAAU;SACjC,CAAC,CAAC;IACP,CAAC;IAEK,cAAc;;YAChB,IAAI;gBACA,OAAO,IAAI,OAAO,CAAC,CAAC,OAAO,EAAE,EAAE;oBAC3B,IAAI,CAAC,MAAM,CAAC,cAAc,CACtB;wBACI,QAAQ,EAAE,IAAI,CAAC,WAAW;qBAC7B,EACD,CAAC,KAAK,EAAE,IAAI,EAAE,EAAE;wBACZ,IAAI,KAAK,EAAE;4BACP,OAAO,CAAC,KAAK,CAAC,sBAAsB,EAAE,EAAE,KAAK,EAAE,CAAC,CAAC;4BACjD,OAAO,CAAC,IAAI,CAAC,CAAC;yBACjB;6BAAM;4BACH,OAAO,CAAC,IAAI,CAAC,CAAC;yBACjB;oBACL,CAAC,CACJ,CAAC;gBACN,CAAC,CAAC,CAAC;aACN;YAAC,OAAO,KAAK,EAAE;gBACZ,OAAO,CAAC,KAAK,CAAC,8BAA8B,EAAE,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC,CAAC,CAAC;aACxE;QACL,CAAC;KAAA;IAEK,iBAAiB,CAAC,MAAW;;YAC/B,IAAI;gBACA,OAAO,IAAI,OAAO,CAAC,CAAC,OAAO,EAAE,EAAE;oBAC3B,IAAI,CAAC,MAAM,CAAC,cAAc,CACtB;wBACI,QAAQ,EAAE,IAAI,CAAC,WAAW;wBAC1B,YAAY,EAAE,MAAM;qBACvB,EACD,CAAC,KAAK,EAAE,IAAI,EAAE,EAAE;wBACZ,IAAI,KAAK,EAAE;4BACP,OAAO,CAAC,KAAK,CAAC,sBAAsB,EAAE,EAAE,KAAK,EAAE,CAAC,CAAC;4BACjD,OAAO,CAAC,IAAI,CAAC,CAAC;yBACjB;6BAAM;4BACH,OAAO,CAAC,IAAI,CAAC,CAAC;yBACjB;oBACL,CAAC,CACJ,CAAC;gBACN,CAAC,CAAC,CAAC;aACN;YAAC,OAAO,KAAK,EAAE;gBACZ,OAAO,CAAC,KAAK,CAAC,+BAA+B,EAAE,KAAK,CAAC,CAAC;aACzD;QACL,CAAC;KAAA;CACJ;AAxDD,sCAwDC"}
|