@torrow/sdk-client 0.1.0 → 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.
- package/README.md +1 -0
- package/dist/index.d.ts +2346 -1297
- package/dist/index.js +2069 -395
- package/dist/index.js.map +1 -1
- package/package.json +2 -2
package/dist/index.js
CHANGED
|
@@ -20,6 +20,9 @@ function pickApiErrorName(body) {
|
|
|
20
20
|
if (typeof o.error === "string" && o.error.length > 0) {
|
|
21
21
|
return o.error;
|
|
22
22
|
}
|
|
23
|
+
if (typeof o.name === "string" && o.name.length > 0) {
|
|
24
|
+
return o.name;
|
|
25
|
+
}
|
|
23
26
|
if (typeof o.title === "string" && o.title.length > 0) {
|
|
24
27
|
return o.title;
|
|
25
28
|
}
|
|
@@ -35,27 +38,59 @@ function pickApiCode(body) {
|
|
|
35
38
|
const c = body.code;
|
|
36
39
|
return typeof c === "string" ? c : void 0;
|
|
37
40
|
}
|
|
41
|
+
function pickTraceIdentifier(body) {
|
|
42
|
+
if (body === null || typeof body !== "object") {
|
|
43
|
+
return void 0;
|
|
44
|
+
}
|
|
45
|
+
const o = body;
|
|
46
|
+
if (typeof o.traceIdentifier === "string" && o.traceIdentifier.length > 0) {
|
|
47
|
+
return o.traceIdentifier;
|
|
48
|
+
}
|
|
49
|
+
for (const key of ["torrowError", "torrowErrorClient", "innerError"]) {
|
|
50
|
+
const nested = o[key];
|
|
51
|
+
if (nested !== null && typeof nested === "object") {
|
|
52
|
+
const t = nested.traceIdentifier;
|
|
53
|
+
if (typeof t === "string" && t.length > 0) {
|
|
54
|
+
return t;
|
|
55
|
+
}
|
|
56
|
+
}
|
|
57
|
+
}
|
|
58
|
+
return void 0;
|
|
59
|
+
}
|
|
38
60
|
var TorrowHttpError = class _TorrowHttpError extends Error {
|
|
39
61
|
status;
|
|
40
62
|
body;
|
|
41
63
|
apiErrorName;
|
|
42
64
|
code;
|
|
43
65
|
requestId;
|
|
66
|
+
/**
|
|
67
|
+
* Идентификатор трассировки шлюза (`TorrowErrorClient.traceIdentifier`
|
|
68
|
+
* или заголовок `trace-identifier`) — для саппорта/логов.
|
|
69
|
+
*/
|
|
70
|
+
traceIdentifier;
|
|
44
71
|
url;
|
|
45
72
|
constructor(init) {
|
|
46
73
|
const apiName = pickApiErrorName(init.body);
|
|
47
74
|
const code = pickApiCode(init.body);
|
|
48
|
-
const
|
|
75
|
+
const traceIdentifier = (typeof init.traceIdentifier === "string" && init.traceIdentifier.length > 0 ? init.traceIdentifier : void 0) ?? pickTraceIdentifier(init.body);
|
|
76
|
+
const message = _TorrowHttpError.buildMessage(
|
|
77
|
+
init.status,
|
|
78
|
+
init.url,
|
|
79
|
+
apiName,
|
|
80
|
+
code,
|
|
81
|
+
traceIdentifier
|
|
82
|
+
);
|
|
49
83
|
super(message, { cause: init.cause });
|
|
50
84
|
this.name = "TorrowHttpError";
|
|
51
85
|
this.status = init.status;
|
|
52
86
|
this.body = init.body;
|
|
53
87
|
this.url = init.url;
|
|
54
88
|
this.requestId = init.requestId;
|
|
89
|
+
this.traceIdentifier = traceIdentifier;
|
|
55
90
|
this.apiErrorName = apiName;
|
|
56
91
|
this.code = code;
|
|
57
92
|
}
|
|
58
|
-
static buildMessage(status, url, apiErrorName, code) {
|
|
93
|
+
static buildMessage(status, url, apiErrorName, code, traceIdentifier) {
|
|
59
94
|
const parts = [`HTTP ${status}`, url];
|
|
60
95
|
if (code) {
|
|
61
96
|
parts.push(`code=${code}`);
|
|
@@ -63,6 +98,9 @@ var TorrowHttpError = class _TorrowHttpError extends Error {
|
|
|
63
98
|
if (apiErrorName) {
|
|
64
99
|
parts.push(apiErrorName);
|
|
65
100
|
}
|
|
101
|
+
if (traceIdentifier) {
|
|
102
|
+
parts.push(`trace-identifier=${traceIdentifier}`);
|
|
103
|
+
}
|
|
66
104
|
return parts.join(" \u2014 ");
|
|
67
105
|
}
|
|
68
106
|
};
|
|
@@ -151,6 +189,7 @@ var HttpClient = class {
|
|
|
151
189
|
signal: init.signal
|
|
152
190
|
});
|
|
153
191
|
const requestId = res.headers.get("x-request-id") ?? void 0;
|
|
192
|
+
const traceIdentifier = res.headers.get("trace-identifier") ?? void 0;
|
|
154
193
|
const text = await res.text();
|
|
155
194
|
if (!res.ok) {
|
|
156
195
|
const errBody = tryParseErrorBody(text, res.headers.get("content-type"));
|
|
@@ -158,7 +197,8 @@ var HttpClient = class {
|
|
|
158
197
|
status: res.status,
|
|
159
198
|
body: errBody,
|
|
160
199
|
url,
|
|
161
|
-
requestId
|
|
200
|
+
requestId,
|
|
201
|
+
traceIdentifier
|
|
162
202
|
});
|
|
163
203
|
}
|
|
164
204
|
if (text === "") {
|
|
@@ -170,9 +210,6 @@ var HttpClient = class {
|
|
|
170
210
|
const origin = this.config.baseUrl ?? DEFAULT_TORROW_API_BASE_URL;
|
|
171
211
|
const basePath = joinBaseUrlAndPath(origin, path);
|
|
172
212
|
const q = { ...query };
|
|
173
|
-
if (this.config.securityToken !== void 0 && this.config.securityToken !== "") {
|
|
174
|
-
q.securityToken = this.config.securityToken;
|
|
175
|
-
}
|
|
176
213
|
const qs = buildQueryString(q);
|
|
177
214
|
if (!qs) {
|
|
178
215
|
return basePath;
|
|
@@ -219,11 +256,305 @@ var RawClient = class {
|
|
|
219
256
|
}
|
|
220
257
|
};
|
|
221
258
|
|
|
259
|
+
// ../../src/resources/common/facade-response-unwrap.ts
|
|
260
|
+
function unwrapDeleteCount(resp) {
|
|
261
|
+
if (resp == null || typeof resp !== "object") return 0;
|
|
262
|
+
const n = resp.deleteCount;
|
|
263
|
+
return typeof n === "number" && Number.isFinite(n) ? n : 0;
|
|
264
|
+
}
|
|
265
|
+
function unwrapDeletedUserAccountCount(resp) {
|
|
266
|
+
if (resp == null || typeof resp !== "object") return 0;
|
|
267
|
+
const n = resp.deletedCount;
|
|
268
|
+
return typeof n === "number" && Number.isFinite(n) ? n : 0;
|
|
269
|
+
}
|
|
270
|
+
function unwrapAddProfileContact(resp) {
|
|
271
|
+
if (resp == null || typeof resp !== "object") {
|
|
272
|
+
throw new Error("Add profile: expected JSON object response");
|
|
273
|
+
}
|
|
274
|
+
const p = resp.profile;
|
|
275
|
+
if (!p || typeof p !== "object") {
|
|
276
|
+
throw new Error("Add profile: response missing profile");
|
|
277
|
+
}
|
|
278
|
+
return p;
|
|
279
|
+
}
|
|
280
|
+
function unwrapRemoveProfileList(resp) {
|
|
281
|
+
if (resp == null || typeof resp !== "object") return [];
|
|
282
|
+
const pl = resp.personalContactList;
|
|
283
|
+
if (pl === void 0 || pl === null) return [];
|
|
284
|
+
if (!Array.isArray(pl)) {
|
|
285
|
+
throw new Error("Remove profile: personalContactList must be an array when present");
|
|
286
|
+
}
|
|
287
|
+
return pl;
|
|
288
|
+
}
|
|
289
|
+
function unwrapTorrowObjectFromProfilePropertiesUpdate(resp) {
|
|
290
|
+
if (resp == null || typeof resp !== "object") return void 0;
|
|
291
|
+
return resp.torrowObject ?? void 0;
|
|
292
|
+
}
|
|
293
|
+
function unwrapTorrowObjectFromContactPropertiesUpdate(resp) {
|
|
294
|
+
if (resp == null || typeof resp !== "object") return void 0;
|
|
295
|
+
return resp.torrowObject ?? void 0;
|
|
296
|
+
}
|
|
297
|
+
function unwrapTorrowId(resp) {
|
|
298
|
+
if (resp == null || typeof resp !== "object") {
|
|
299
|
+
throw new Error("getNextId: expected JSON object response");
|
|
300
|
+
}
|
|
301
|
+
const id = resp.torrowId?.trim();
|
|
302
|
+
if (!id) {
|
|
303
|
+
throw new Error("getNextId: response missing torrowId");
|
|
304
|
+
}
|
|
305
|
+
return id;
|
|
306
|
+
}
|
|
307
|
+
function unwrapTimetableStatisticsList(resp) {
|
|
308
|
+
if (resp == null || typeof resp !== "object") return [];
|
|
309
|
+
const list = resp.timetableStatisticsRespList;
|
|
310
|
+
if (list === void 0 || list === null) return [];
|
|
311
|
+
if (!Array.isArray(list)) {
|
|
312
|
+
throw new Error("getTimetableStatistics: timetableStatisticsRespList must be an array when present");
|
|
313
|
+
}
|
|
314
|
+
return list;
|
|
315
|
+
}
|
|
316
|
+
function unwrapCreatedViewInfoList(resp) {
|
|
317
|
+
if (resp == null || typeof resp !== "object") return [];
|
|
318
|
+
const list = resp.createdViewInfoList;
|
|
319
|
+
if (list === void 0 || list === null) return [];
|
|
320
|
+
if (!Array.isArray(list)) {
|
|
321
|
+
throw new Error("create views: createdViewInfoList must be an array when present");
|
|
322
|
+
}
|
|
323
|
+
return list;
|
|
324
|
+
}
|
|
325
|
+
function unwrapUpdatedViewInfoList(resp) {
|
|
326
|
+
if (resp == null || typeof resp !== "object") return [];
|
|
327
|
+
const list = resp.updatedViewInfoList;
|
|
328
|
+
if (list === void 0 || list === null) return [];
|
|
329
|
+
if (!Array.isArray(list)) {
|
|
330
|
+
throw new Error("update view order: updatedViewInfoList must be an array when present");
|
|
331
|
+
}
|
|
332
|
+
return list;
|
|
333
|
+
}
|
|
334
|
+
function unwrapLoyaltySystemsStatisticsList(resp) {
|
|
335
|
+
if (resp == null || typeof resp !== "object") return [];
|
|
336
|
+
const list = resp.loyaltySystemsStatisticsRespList;
|
|
337
|
+
if (list === void 0 || list === null) return [];
|
|
338
|
+
if (!Array.isArray(list)) {
|
|
339
|
+
throw new Error("loyaltysystems statistics: loyaltySystemsStatisticsRespList must be an array when present");
|
|
340
|
+
}
|
|
341
|
+
return list;
|
|
342
|
+
}
|
|
343
|
+
function unwrapSendCommunicationSessionId(resp) {
|
|
344
|
+
if (resp == null || typeof resp !== "object") {
|
|
345
|
+
throw new Error("sendCommunicationCode: expected JSON object response");
|
|
346
|
+
}
|
|
347
|
+
const sid = resp.sessionId?.trim();
|
|
348
|
+
if (!sid) {
|
|
349
|
+
throw new Error("sendCommunicationCode: response missing sessionId");
|
|
350
|
+
}
|
|
351
|
+
return sid;
|
|
352
|
+
}
|
|
353
|
+
function unwrapFilePutUrl(resp) {
|
|
354
|
+
if (resp == null || typeof resp !== "object") {
|
|
355
|
+
throw new Error("getFilePutUrl: expected JSON object response");
|
|
356
|
+
}
|
|
357
|
+
const url = resp.url?.trim();
|
|
358
|
+
if (!url) {
|
|
359
|
+
throw new Error("getFilePutUrl: response missing url");
|
|
360
|
+
}
|
|
361
|
+
const exp = resp.urlExpiration;
|
|
362
|
+
const urlExpiration = exp == null ? "" : exp.toISOString();
|
|
363
|
+
if (!urlExpiration) {
|
|
364
|
+
throw new Error("getFilePutUrl: response missing urlExpiration");
|
|
365
|
+
}
|
|
366
|
+
return { url, urlExpiration };
|
|
367
|
+
}
|
|
368
|
+
|
|
222
369
|
// ../../src/util/path.ts
|
|
223
370
|
function encodePathSegment(id) {
|
|
224
371
|
return encodeURIComponent(id);
|
|
225
372
|
}
|
|
226
373
|
|
|
374
|
+
// ../../src/resources/common/discriminator.ts
|
|
375
|
+
var Discriminator = /* @__PURE__ */ ((Discriminator2) => {
|
|
376
|
+
Discriminator2["ActionHistoryInfo"] = "ActionHistoryInfo";
|
|
377
|
+
Discriminator2["AnnouncementInfo"] = "AnnouncementInfo";
|
|
378
|
+
Discriminator2["CalendarItem"] = "CalendarItem";
|
|
379
|
+
Discriminator2["TorrowItem"] = "TorrowItem";
|
|
380
|
+
Discriminator2["TorrowView"] = "TorrowView";
|
|
381
|
+
Discriminator2["CaseItem"] = "CaseItem";
|
|
382
|
+
Discriminator2["ResourceItem"] = "ResourceItem";
|
|
383
|
+
Discriminator2["ContactItem"] = "ContactItem";
|
|
384
|
+
Discriminator2["ContextItem"] = "ContextItem";
|
|
385
|
+
Discriminator2["NoteItem"] = "NoteItem";
|
|
386
|
+
Discriminator2["ServiceResourceItem"] = "ServiceResourceItem";
|
|
387
|
+
Discriminator2["ServiceItem"] = "ServiceItem";
|
|
388
|
+
Discriminator2["User"] = "User";
|
|
389
|
+
Discriminator2["TextNoteItem"] = "TextNoteItem";
|
|
390
|
+
Discriminator2["ItemView"] = "ItemView";
|
|
391
|
+
Discriminator2["ContactView"] = "ContactView";
|
|
392
|
+
Discriminator2["ContextView"] = "ContextView";
|
|
393
|
+
Discriminator2["NoteView"] = "NoteView";
|
|
394
|
+
Discriminator2["CaseView"] = "CaseView";
|
|
395
|
+
Discriminator2["CalendarView"] = "CalendarView";
|
|
396
|
+
Discriminator2["ServiceView"] = "ServiceView";
|
|
397
|
+
Discriminator2["ResourceView"] = "ResourceView";
|
|
398
|
+
Discriminator2["ParticipantView"] = "ParticipantView";
|
|
399
|
+
Discriminator2["CaseParticipantView"] = "CaseParticipantView";
|
|
400
|
+
Discriminator2["TimetableCase"] = "TimetableCase";
|
|
401
|
+
Discriminator2["PersonalInfo"] = "PersonalInfo";
|
|
402
|
+
Discriminator2["ContactPersonalInfo"] = "ContactPersonalInfo";
|
|
403
|
+
Discriminator2["CasePersonalInfo"] = "CasePersonalInfo";
|
|
404
|
+
Discriminator2["CustomLinkPaymentParameters"] = "CustomLinkPaymentParameters";
|
|
405
|
+
Discriminator2["RoboKassaPaymentParameters"] = "RoboKassaPaymentParameters";
|
|
406
|
+
Discriminator2["PaykeeperPaymentParameters"] = "PaykeeperPaymentParameters";
|
|
407
|
+
Discriminator2["ProdamusPaymentParameters"] = "ProdamusPaymentParameters";
|
|
408
|
+
Discriminator2["YooMoneyPaymentParameters"] = "YooMoneyPaymentParameters";
|
|
409
|
+
Discriminator2["YooKassaPaymentParameters"] = "YooKassaPaymentParameters";
|
|
410
|
+
Discriminator2["SberbankPaymentParameters"] = "SberbankPaymentParameters";
|
|
411
|
+
Discriminator2["UralsibPaymentParameters"] = "UralsibPaymentParameters";
|
|
412
|
+
Discriminator2["AlfabankPaymentParameters"] = "AlfabankPaymentParameters";
|
|
413
|
+
Discriminator2["MockPaymentProviderParameters"] = "MockPaymentProviderParameters";
|
|
414
|
+
Discriminator2["QiwiP2PPaymentParameters"] = "QiwiP2PPaymentParameters";
|
|
415
|
+
Discriminator2["TinkoffPaymentParameters"] = "TinkoffPaymentParameters";
|
|
416
|
+
Discriminator2["CashPaymentParameters"] = "CashPaymentParameters";
|
|
417
|
+
Discriminator2["CaseReportProperties"] = "CaseReportProperties";
|
|
418
|
+
Discriminator2["ServiceReportProperties"] = "ServiceReportProperties";
|
|
419
|
+
Discriminator2["ReportProperties"] = "ReportProperties";
|
|
420
|
+
Discriminator2["ServicesResourcesReportProperties"] = "ServicesResourcesReportProperties";
|
|
421
|
+
Discriminator2["ResourcesRentReportProperties"] = "ResourcesRentReportProperties";
|
|
422
|
+
Discriminator2["ResourceReportProperties"] = "ResourceReportProperties";
|
|
423
|
+
Discriminator2["LoyaltyCardItem"] = "LoyaltyCardItem";
|
|
424
|
+
Discriminator2["LoyaltySystemItem"] = "LoyaltySystemItem";
|
|
425
|
+
Discriminator2["LoyaltyCardView"] = "LoyaltyCardView";
|
|
426
|
+
Discriminator2["LoyaltySystemView"] = "LoyaltySystemView";
|
|
427
|
+
Discriminator2["VideoTelephonyIntegration"] = "VideoTelephonyIntegration";
|
|
428
|
+
Discriminator2["ExternalCalendarIntegration"] = "ExternalCalendarIntegration";
|
|
429
|
+
Discriminator2["WebHookIntegration"] = "WebHookIntegration";
|
|
430
|
+
return Discriminator2;
|
|
431
|
+
})(Discriminator || {});
|
|
432
|
+
|
|
433
|
+
// ../../src/resources/common/item-create-defaults.ts
|
|
434
|
+
function applyItemCreateDefaults(body, discriminator) {
|
|
435
|
+
const payload = { ...body };
|
|
436
|
+
payload.discriminator = discriminator;
|
|
437
|
+
const withPublicity = payload;
|
|
438
|
+
withPublicity.publicityType = withPublicity.publicityType ?? "Personal";
|
|
439
|
+
return payload;
|
|
440
|
+
}
|
|
441
|
+
|
|
442
|
+
// ../../src/util/torrow-id.ts
|
|
443
|
+
import { randomBytes } from "crypto";
|
|
444
|
+
var TORROW_OBJECT_ID_HEX_LENGTH = 24;
|
|
445
|
+
var OBJECT_ID_HEX_LENGTH = TORROW_OBJECT_ID_HEX_LENGTH;
|
|
446
|
+
var RID_HEX_PATTERN = /^[0-9a-fA-F]{24}$/;
|
|
447
|
+
var TORROW_ID_HEX_PATTERN = /^[0-9a-fA-F]+$/;
|
|
448
|
+
function generateRid() {
|
|
449
|
+
return randomBytes(12).toString("hex");
|
|
450
|
+
}
|
|
451
|
+
function isValidRid(value) {
|
|
452
|
+
return typeof value === "string" && RID_HEX_PATTERN.test(value);
|
|
453
|
+
}
|
|
454
|
+
var OBJECT_TYPE_HEX_LENGTH = 4;
|
|
455
|
+
var HEX_RADIX = 16;
|
|
456
|
+
function unpackTorrowId(torrowId) {
|
|
457
|
+
const objectId = torrowId.substring(torrowId.length - OBJECT_ID_HEX_LENGTH);
|
|
458
|
+
const objectTypeString = torrowId.substring(
|
|
459
|
+
torrowId.length - (OBJECT_ID_HEX_LENGTH + OBJECT_TYPE_HEX_LENGTH),
|
|
460
|
+
torrowId.length - OBJECT_ID_HEX_LENGTH
|
|
461
|
+
);
|
|
462
|
+
const objectType = Number.parseInt(objectTypeString, HEX_RADIX);
|
|
463
|
+
const shardStartIndex = torrowId.length - (OBJECT_ID_HEX_LENGTH + objectTypeString.length);
|
|
464
|
+
const shard = shardStartIndex === 0 ? 0 : Number.parseInt(torrowId.substring(0, shardStartIndex), HEX_RADIX);
|
|
465
|
+
return { shard, objectType, objectId };
|
|
466
|
+
}
|
|
467
|
+
function packTorrowId(parts) {
|
|
468
|
+
const objectType = parts.objectType.toString(HEX_RADIX).padStart(OBJECT_TYPE_HEX_LENGTH, "0");
|
|
469
|
+
const shard = parts.shard.toString(HEX_RADIX);
|
|
470
|
+
return `${shard}${objectType}${parts.objectId}`.replace(/^0+/, "");
|
|
471
|
+
}
|
|
472
|
+
function getShardFromTorrowId(torrowId) {
|
|
473
|
+
return unpackTorrowId(torrowId).shard;
|
|
474
|
+
}
|
|
475
|
+
var TorrowObjectTypeCode = {
|
|
476
|
+
User: 2,
|
|
477
|
+
File: 10,
|
|
478
|
+
Context: 1001,
|
|
479
|
+
Contact: 1002,
|
|
480
|
+
Note: 1003,
|
|
481
|
+
Case: 1004,
|
|
482
|
+
Service: 1005,
|
|
483
|
+
Resource: 1009,
|
|
484
|
+
Calendar: 1010,
|
|
485
|
+
LoyaltySystem: 1019,
|
|
486
|
+
LoyaltyCard: 1020
|
|
487
|
+
};
|
|
488
|
+
var STRING_TYPE_TO_CODE = {
|
|
489
|
+
User: TorrowObjectTypeCode.User,
|
|
490
|
+
File: TorrowObjectTypeCode.File,
|
|
491
|
+
Context: TorrowObjectTypeCode.Context,
|
|
492
|
+
Contact: TorrowObjectTypeCode.Contact,
|
|
493
|
+
Note: TorrowObjectTypeCode.Note,
|
|
494
|
+
Case: TorrowObjectTypeCode.Case,
|
|
495
|
+
Service: TorrowObjectTypeCode.Service,
|
|
496
|
+
Resource: TorrowObjectTypeCode.Resource,
|
|
497
|
+
Calendar: TorrowObjectTypeCode.Calendar,
|
|
498
|
+
LoyaltySystem: TorrowObjectTypeCode.LoyaltySystem,
|
|
499
|
+
LoyaltyCard: TorrowObjectTypeCode.LoyaltyCard
|
|
500
|
+
};
|
|
501
|
+
var CODE_TO_STRING_TYPE = /* @__PURE__ */ new Map();
|
|
502
|
+
for (const [objectType, code] of Object.entries(STRING_TYPE_TO_CODE)) {
|
|
503
|
+
if (CODE_TO_STRING_TYPE.has(code)) {
|
|
504
|
+
throw new Error(`Duplicate Torrow object type code: ${code}`);
|
|
505
|
+
}
|
|
506
|
+
CODE_TO_STRING_TYPE.set(code, objectType);
|
|
507
|
+
}
|
|
508
|
+
var TorrowIdError = class extends TypeError {
|
|
509
|
+
reason;
|
|
510
|
+
objectTypeCode;
|
|
511
|
+
constructor(reason, message, objectTypeCode) {
|
|
512
|
+
super(message);
|
|
513
|
+
this.name = "TorrowIdError";
|
|
514
|
+
this.reason = reason;
|
|
515
|
+
this.objectTypeCode = objectTypeCode;
|
|
516
|
+
}
|
|
517
|
+
};
|
|
518
|
+
function unpackCanonicalTorrowId(torrowId) {
|
|
519
|
+
if (typeof torrowId !== "string" || torrowId.length <= OBJECT_ID_HEX_LENGTH || !TORROW_ID_HEX_PATTERN.test(torrowId) || !RID_HEX_PATTERN.test(torrowId.slice(-OBJECT_ID_HEX_LENGTH))) {
|
|
520
|
+
throw new TorrowIdError("invalid-id", "Invalid Torrow ID format");
|
|
521
|
+
}
|
|
522
|
+
const unpacked = unpackTorrowId(torrowId);
|
|
523
|
+
if (!Number.isSafeInteger(unpacked.shard) || unpacked.shard < 0 || !Number.isSafeInteger(unpacked.objectType) || unpacked.objectType < 0 || packTorrowId(unpacked).toLowerCase() !== torrowId.toLowerCase()) {
|
|
524
|
+
throw new TorrowIdError("invalid-id", "Non-canonical Torrow ID");
|
|
525
|
+
}
|
|
526
|
+
return unpacked;
|
|
527
|
+
}
|
|
528
|
+
function getTorrowObjectTypeFromTorrowId(torrowId) {
|
|
529
|
+
const { objectType } = unpackCanonicalTorrowId(torrowId);
|
|
530
|
+
const result = CODE_TO_STRING_TYPE.get(objectType);
|
|
531
|
+
if (result === void 0) {
|
|
532
|
+
throw new TorrowIdError(
|
|
533
|
+
"unknown-object-type-code",
|
|
534
|
+
`Unknown Torrow object type code: ${objectType}`,
|
|
535
|
+
objectType
|
|
536
|
+
);
|
|
537
|
+
}
|
|
538
|
+
return result;
|
|
539
|
+
}
|
|
540
|
+
function torrowObjectTypeToCode(objectType) {
|
|
541
|
+
const code = STRING_TYPE_TO_CODE[objectType];
|
|
542
|
+
if (code === void 0) {
|
|
543
|
+
throw new Error(`torrowObjectTypeToCode: unsupported object type "${objectType}"`);
|
|
544
|
+
}
|
|
545
|
+
return code;
|
|
546
|
+
}
|
|
547
|
+
function generateTorrowId(objectTypeCode, shard) {
|
|
548
|
+
return packTorrowId({
|
|
549
|
+
shard,
|
|
550
|
+
objectType: objectTypeCode,
|
|
551
|
+
objectId: generateRid()
|
|
552
|
+
});
|
|
553
|
+
}
|
|
554
|
+
function generateTorrowIdForOwner(objectTypeCode, ownerTorrowId) {
|
|
555
|
+
return generateTorrowId(objectTypeCode, getShardFromTorrowId(ownerTorrowId));
|
|
556
|
+
}
|
|
557
|
+
|
|
227
558
|
// ../../src/resources/common/item-social-facet-base.ts
|
|
228
559
|
var TorrowItemCoreFacade = class {
|
|
229
560
|
constructor(http, basePath, socialOpts = {}) {
|
|
@@ -234,6 +565,17 @@ var TorrowItemCoreFacade = class {
|
|
|
234
565
|
http;
|
|
235
566
|
basePath;
|
|
236
567
|
socialOpts;
|
|
568
|
+
/**
|
|
569
|
+
* Id вложения (presigned image/file) — тип **File**.
|
|
570
|
+
* `ownerTorrowId`: profileId, userId или id item того же пользователя (shard).
|
|
571
|
+
*/
|
|
572
|
+
generateFileId(ownerTorrowId) {
|
|
573
|
+
return generateTorrowIdForOwner(TorrowObjectTypeCode.File, ownerTorrowId);
|
|
574
|
+
}
|
|
575
|
+
/** Id item этого домена до `create` / upload (клиентская генерация, без запроса к API). */
|
|
576
|
+
generateItemId(ownerTorrowId) {
|
|
577
|
+
return generateTorrowIdForOwner(this.itemObjectTypeCode, ownerTorrowId);
|
|
578
|
+
}
|
|
237
579
|
/** `PUT /api/v1/{domain}/{torrowId}/publicity` */
|
|
238
580
|
updatePublicity(torrowId, body, options) {
|
|
239
581
|
return this.http.requestJson({
|
|
@@ -299,7 +641,11 @@ var TorrowItemCoreFacade = class {
|
|
|
299
641
|
signal: options?.signal
|
|
300
642
|
});
|
|
301
643
|
}
|
|
302
|
-
/**
|
|
644
|
+
/**
|
|
645
|
+
* `GET /api/v1/{domain}/{torrowId}/participants` — список участников.
|
|
646
|
+
* Фильтры: **`participantStateList`** (`Offered` / `Requested` / `Accepted` / …), **`participantTypeList`**.
|
|
647
|
+
* Query-тип: {@link TorrowItemCoreFacade TParticipantsQuery}. Флоу: `docs/agents/participation-flow.md`.
|
|
648
|
+
*/
|
|
303
649
|
listParticipants(torrowId, query, options) {
|
|
304
650
|
return this.http.requestJson({
|
|
305
651
|
method: "GET",
|
|
@@ -308,7 +654,11 @@ var TorrowItemCoreFacade = class {
|
|
|
308
654
|
signal: options?.signal
|
|
309
655
|
});
|
|
310
656
|
}
|
|
311
|
-
/**
|
|
657
|
+
/**
|
|
658
|
+
* `POST /api/v1/{domain}/{torrowId}/generatesecuritytoken` — токен для внешней ссылки.
|
|
659
|
+
* **`participantType: Reader`** — обычная ссылка; **`Owner`** — ссылка управления (apps: `ShareWithRightsService`).
|
|
660
|
+
* Получатель сохраняет через {@link saveToMindMap} с `securityToken` в теле. Сам по себе Offered не создаёт.
|
|
661
|
+
*/
|
|
312
662
|
generateSecurityToken(torrowId, body, options) {
|
|
313
663
|
return this.http.requestJson({
|
|
314
664
|
method: "POST",
|
|
@@ -330,7 +680,11 @@ var TorrowItemCoreFacade = class {
|
|
|
330
680
|
signal: options?.signal
|
|
331
681
|
});
|
|
332
682
|
}
|
|
333
|
-
/**
|
|
683
|
+
/**
|
|
684
|
+
* `PUT /api/v1/{domain}/{torrowId}/participation/requestaccess` — запрос доступа (не-владелец).
|
|
685
|
+
* Body: **`profileId`**. State → **`Requested`**; владельцу announcement **`RequestAccessToItem`**.
|
|
686
|
+
* Владелец своего item вызвать не может. Дальше: {@link grantAccess} / {@link declineAccess} / {@link revokeAccessRequest}.
|
|
687
|
+
*/
|
|
334
688
|
requestAccess(torrowId, profileId, options) {
|
|
335
689
|
return this.http.requestJson({
|
|
336
690
|
method: "PUT",
|
|
@@ -340,7 +694,10 @@ var TorrowItemCoreFacade = class {
|
|
|
340
694
|
signal: options?.signal
|
|
341
695
|
});
|
|
342
696
|
}
|
|
343
|
-
/**
|
|
697
|
+
/**
|
|
698
|
+
* `PUT /api/v1/{domain}/{torrowId}/participation/revokerequest` — requester отменяет свой запрос.
|
|
699
|
+
* **`Requested`** → **`Revoked`**.
|
|
700
|
+
*/
|
|
344
701
|
revokeAccessRequest(torrowId, options) {
|
|
345
702
|
return this.http.requestJson({
|
|
346
703
|
method: "PUT",
|
|
@@ -379,19 +736,43 @@ var TorrowItemCoreFacade = class {
|
|
|
379
736
|
signal: options?.signal
|
|
380
737
|
});
|
|
381
738
|
}
|
|
382
|
-
/**
|
|
383
|
-
|
|
739
|
+
/**
|
|
740
|
+
* `GET /api/v1/{domain}/{parentId}/group/list` — список **групп родительского
|
|
741
|
+
* элемента, доступных для включения дочерних элементов**
|
|
742
|
+
* (torrow-apps: `getGroups(parentId)`).
|
|
743
|
+
*
|
|
744
|
+
* Контекст (иерархия + группы):
|
|
745
|
+
* - `parentId` — родительский элемент, к которому крепятся дочерние.
|
|
746
|
+
* - Ответ — каталог групп этого родителя, в которые UI/API предлагает включать
|
|
747
|
+
* дочерние items (часть дочерних items сама может быть группами через `setGroup`).
|
|
748
|
+
* - Часто в выборку входит и сам parent, если он группа; в apps при пустом
|
|
749
|
+
* `group/list` UI fallback → `[parent]`.
|
|
750
|
+
* - Членство child ↔ group в контексте родителя: {@link listItemGroups}
|
|
751
|
+
* (`…/{itemId}/groups?parentId=`) и мутации `includeToGroups` / `updateGroups`
|
|
752
|
+
* (там тоже передаётся `parentId`).
|
|
753
|
+
*
|
|
754
|
+
* **Не** список членов группы. Члены группы → `client.search.*(…, { groupIds })`.
|
|
755
|
+
*
|
|
756
|
+
* @param parentId родитель, чьи группы доступны для include дочерних
|
|
757
|
+
*/
|
|
758
|
+
listGroups(parentId, query, options) {
|
|
384
759
|
if (this.socialOpts.withGroupListEndpoint === false) {
|
|
385
|
-
throw new Error(
|
|
760
|
+
throw new Error(
|
|
761
|
+
"listGroups is not supported for this API domain (withGroupListEndpoint: false)"
|
|
762
|
+
);
|
|
386
763
|
}
|
|
387
764
|
return this.http.requestJson({
|
|
388
765
|
method: "GET",
|
|
389
|
-
path: `${this.basePath}/${encodePathSegment(
|
|
766
|
+
path: `${this.basePath}/${encodePathSegment(parentId)}/group/list`,
|
|
390
767
|
query: { ...query ?? {} },
|
|
391
768
|
signal: options?.signal
|
|
392
769
|
});
|
|
393
770
|
}
|
|
394
|
-
/**
|
|
771
|
+
/**
|
|
772
|
+
* `PUT /api/v1/{domain}/{itemId}/updategroups` — включить/исключить **этот** item из групп
|
|
773
|
+
* (в torrow-apps основной путь «включить в группу»: `updateItemGroups` с `parentId`).
|
|
774
|
+
* Массовый вариант: {@link includeToGroups} / {@link excludeFromGroups}.
|
|
775
|
+
*/
|
|
395
776
|
updateGroups(torrowId, body, options) {
|
|
396
777
|
return this.http.requestJson({
|
|
397
778
|
method: "PUT",
|
|
@@ -407,7 +788,11 @@ var TorrowItemCoreFacade = class {
|
|
|
407
788
|
signal: options?.signal
|
|
408
789
|
});
|
|
409
790
|
}
|
|
410
|
-
/**
|
|
791
|
+
/**
|
|
792
|
+
* `PUT /api/v1/{domain}/include/togroups` — включить items в указанные группы.
|
|
793
|
+
* Проверка членства после include — через search с `groupIds` (индекс асинхронный),
|
|
794
|
+
* не через {@link listGroups}.
|
|
795
|
+
*/
|
|
411
796
|
includeToGroups(body, options) {
|
|
412
797
|
return this.http.requestJson({
|
|
413
798
|
method: "PUT",
|
|
@@ -426,42 +811,61 @@ var TorrowItemCoreFacade = class {
|
|
|
426
811
|
});
|
|
427
812
|
}
|
|
428
813
|
/** `PUT /api/v1/{domain}/{parentId}/include/items` */
|
|
429
|
-
includeToParent(parentId,
|
|
814
|
+
includeToParent(parentId, itemPropertiesList, options) {
|
|
430
815
|
return this.http.requestJson({
|
|
431
816
|
method: "PUT",
|
|
432
817
|
path: `${this.basePath}/${encodePathSegment(parentId)}/include/items`,
|
|
433
|
-
body
|
|
818
|
+
body: {
|
|
819
|
+
itemPropertiesList: [...itemPropertiesList],
|
|
820
|
+
versionToCheck: options?.versionToCheck,
|
|
821
|
+
isNeedAnnouncement: options?.isNeedAnnouncement
|
|
822
|
+
},
|
|
434
823
|
signal: options?.signal
|
|
435
824
|
});
|
|
436
825
|
}
|
|
437
|
-
/** `PUT /api/v1/{domain}/{parentId}/exclude/items` */
|
|
438
|
-
excludeFromParent(parentId,
|
|
826
|
+
/** `PUT /api/v1/{domain}/{parentId}/exclude/items` — removes the specified child items from the parent. */
|
|
827
|
+
excludeFromParent(parentId, childIds, options) {
|
|
439
828
|
return this.http.requestJson({
|
|
440
829
|
method: "PUT",
|
|
441
830
|
path: `${this.basePath}/${encodePathSegment(parentId)}/exclude/items`,
|
|
442
|
-
body
|
|
831
|
+
body: {
|
|
832
|
+
itemIds: [...childIds],
|
|
833
|
+
versionToCheck: options?.versionToCheck,
|
|
834
|
+
isNeedAnnouncement: options?.isNeedAnnouncement
|
|
835
|
+
},
|
|
443
836
|
signal: options?.signal
|
|
444
837
|
});
|
|
445
838
|
}
|
|
446
839
|
/** `PUT /api/v1/{domain}/{parentId}/include/foruser` */
|
|
447
|
-
includeForUser(parentId,
|
|
840
|
+
includeForUser(parentId, itemPropertiesList, options) {
|
|
448
841
|
return this.http.requestJson({
|
|
449
842
|
method: "PUT",
|
|
450
843
|
path: `${this.basePath}/${encodePathSegment(parentId)}/include/foruser`,
|
|
451
|
-
body
|
|
844
|
+
body: {
|
|
845
|
+
itemPropertiesList: [...itemPropertiesList],
|
|
846
|
+
versionToCheck: options?.versionToCheck,
|
|
847
|
+
isNeedAnnouncement: options?.isNeedAnnouncement
|
|
848
|
+
},
|
|
452
849
|
signal: options?.signal
|
|
453
850
|
});
|
|
454
851
|
}
|
|
455
|
-
/** `PUT /api/v1/{domain}/{parentId}/exclude/fromuser` */
|
|
456
|
-
excludeFromUser(parentId,
|
|
852
|
+
/** `PUT /api/v1/{domain}/{parentId}/exclude/fromuser` — removes the specified child items from the user's mind map. */
|
|
853
|
+
excludeFromUser(parentId, childIds, options) {
|
|
457
854
|
return this.http.requestJson({
|
|
458
855
|
method: "PUT",
|
|
459
856
|
path: `${this.basePath}/${encodePathSegment(parentId)}/exclude/fromuser`,
|
|
460
|
-
body
|
|
857
|
+
body: {
|
|
858
|
+
itemIds: [...childIds],
|
|
859
|
+
versionToCheck: options?.versionToCheck,
|
|
860
|
+
isNeedAnnouncement: options?.isNeedAnnouncement
|
|
861
|
+
},
|
|
461
862
|
signal: options?.signal
|
|
462
863
|
});
|
|
463
864
|
}
|
|
464
|
-
/**
|
|
865
|
+
/**
|
|
866
|
+
* `PUT /api/v1/{domain}/{torrowId}/participation/rejectoffer` — invitee отклоняет приглашение.
|
|
867
|
+
* **`Offered`** → **`Rejected`**. Body: **`profileId`**. В UI часто только Hide announcement без этого вызова.
|
|
868
|
+
*/
|
|
465
869
|
rejectOffer(torrowId, profileId, options) {
|
|
466
870
|
return this.http.requestJson({
|
|
467
871
|
method: "PUT",
|
|
@@ -471,7 +875,7 @@ var TorrowItemCoreFacade = class {
|
|
|
471
875
|
signal: options?.signal
|
|
472
876
|
});
|
|
473
877
|
}
|
|
474
|
-
/** `PUT /api/v1/{domain}/{torrowId}/participation/reject` */
|
|
878
|
+
/** `PUT /api/v1/{domain}/{torrowId}/participation/reject` — body: **`profileId`**. */
|
|
475
879
|
reject(torrowId, profileId, options) {
|
|
476
880
|
return this.http.requestJson({
|
|
477
881
|
method: "PUT",
|
|
@@ -480,7 +884,12 @@ var TorrowItemCoreFacade = class {
|
|
|
480
884
|
signal: options?.signal
|
|
481
885
|
});
|
|
482
886
|
}
|
|
483
|
-
/**
|
|
887
|
+
/**
|
|
888
|
+
* `PUT /api/v1/{domain}/{torrowId}/participation/share` — владелец приглашает профили.
|
|
889
|
+
* Создаёт **`Offered`** (+ тип из body); invitee — announcement **`ShareItem`**.
|
|
890
|
+
* Принять = {@link saveToMindMap} (отдельного `acceptOffer` нет). Отозвать = {@link revokeOffer}.
|
|
891
|
+
* Флоу: `docs/agents/participation-flow.md`.
|
|
892
|
+
*/
|
|
484
893
|
share(torrowId, body, options) {
|
|
485
894
|
return this.http.requestJson({
|
|
486
895
|
method: "PUT",
|
|
@@ -489,7 +898,10 @@ var TorrowItemCoreFacade = class {
|
|
|
489
898
|
signal: options?.signal
|
|
490
899
|
});
|
|
491
900
|
}
|
|
492
|
-
/**
|
|
901
|
+
/**
|
|
902
|
+
* `PUT /api/v1/{domain}/{torrowId}/participation/revokeoffer` — владелец отзывает приглашение.
|
|
903
|
+
* **`Offered`** → **`Revoked`**. Body: `profileIds[]`.
|
|
904
|
+
*/
|
|
493
905
|
revokeOffer(torrowId, profileIds, options) {
|
|
494
906
|
return this.http.requestJson({
|
|
495
907
|
method: "PUT",
|
|
@@ -498,7 +910,10 @@ var TorrowItemCoreFacade = class {
|
|
|
498
910
|
signal: options?.signal
|
|
499
911
|
});
|
|
500
912
|
}
|
|
501
|
-
/**
|
|
913
|
+
/**
|
|
914
|
+
* `PUT /api/v1/{domain}/{torrowId}/participation/grantaccess` — владелец принимает запрос доступа.
|
|
915
|
+
* **`Requested`** → **`Accepted`**. Body: `profileIds[]`. Не путать с {@link share}.
|
|
916
|
+
*/
|
|
502
917
|
grantAccess(torrowId, profileIds, options) {
|
|
503
918
|
return this.http.requestJson({
|
|
504
919
|
method: "PUT",
|
|
@@ -507,7 +922,10 @@ var TorrowItemCoreFacade = class {
|
|
|
507
922
|
signal: options?.signal
|
|
508
923
|
});
|
|
509
924
|
}
|
|
510
|
-
/**
|
|
925
|
+
/**
|
|
926
|
+
* `PUT /api/v1/{domain}/{torrowId}/participation/declineaccess` — владелец отклоняет запрос доступа.
|
|
927
|
+
* **`Requested`** → **`Declined`**. Body: `profileIds[]`; query **`userMessage`**.
|
|
928
|
+
*/
|
|
511
929
|
declineAccess(torrowId, profileIds, options) {
|
|
512
930
|
return this.http.requestJson({
|
|
513
931
|
method: "PUT",
|
|
@@ -565,7 +983,10 @@ var TorrowItemCoreFacade = class {
|
|
|
565
983
|
signal: options?.signal
|
|
566
984
|
});
|
|
567
985
|
}
|
|
568
|
-
/**
|
|
986
|
+
/**
|
|
987
|
+
* `PUT /api/v1/{domain}/{itemId}/sendlink` — in-app «вот ссылка» другому профилю.
|
|
988
|
+
* Announcement **`SendLinkOfItem`**. **Не** создаёт `Offered` и не меняет participation (не путать с {@link share}).
|
|
989
|
+
*/
|
|
569
990
|
sendLink(itemId, body, options) {
|
|
570
991
|
return this.http.requestJson({
|
|
571
992
|
method: "PUT",
|
|
@@ -574,7 +995,7 @@ var TorrowItemCoreFacade = class {
|
|
|
574
995
|
signal: options?.signal
|
|
575
996
|
});
|
|
576
997
|
}
|
|
577
|
-
/** `POST /api/v1/{domain}/{torrowId}/shorturl` */
|
|
998
|
+
/** `POST /api/v1/{domain}/{torrowId}/shorturl` → короткая URL элемента (`string`), без смены participation. */
|
|
578
999
|
getShortUrl(torrowId, options) {
|
|
579
1000
|
return this.http.requestJson({
|
|
580
1001
|
method: "POST",
|
|
@@ -608,23 +1029,30 @@ var TorrowItemCoreFacade = class {
|
|
|
608
1029
|
});
|
|
609
1030
|
}
|
|
610
1031
|
/** `GET /api/v1/{domain}/{torrowId}/image/puturl` */
|
|
611
|
-
getImagePutUrl(torrowId, options) {
|
|
1032
|
+
async getImagePutUrl(torrowId, fileId, fileName, fileSize, options) {
|
|
612
1033
|
const query = {
|
|
613
|
-
fileId
|
|
614
|
-
fileName
|
|
615
|
-
fileSize
|
|
1034
|
+
fileId,
|
|
1035
|
+
fileName,
|
|
1036
|
+
fileSize
|
|
616
1037
|
};
|
|
617
1038
|
if (this.socialOpts.imagePutUrlSecurityToken) {
|
|
618
1039
|
query.securityToken = options?.securityToken;
|
|
619
1040
|
}
|
|
620
|
-
|
|
1041
|
+
const resp = await this.http.requestJson({
|
|
621
1042
|
method: "GET",
|
|
622
1043
|
path: `${this.basePath}/${encodePathSegment(torrowId)}/image/puturl`,
|
|
623
1044
|
query,
|
|
624
1045
|
signal: options?.signal
|
|
625
1046
|
});
|
|
1047
|
+
return unwrapFilePutUrl(resp);
|
|
626
1048
|
}
|
|
627
|
-
/**
|
|
1049
|
+
/**
|
|
1050
|
+
* `PUT /api/v1/{domain}/{torrowId}/savetomindmap` — сохранить в личный список / mind map.
|
|
1051
|
+
* Это же **accept** приглашения (`Offered` → `Accepted`); отдельного `acceptOffer` нет.
|
|
1052
|
+
* Также: open/link save без одобрения; save по **`securityToken`** (Reader / Owner link).
|
|
1053
|
+
* Флоу: `docs/agents/participation-flow.md`.
|
|
1054
|
+
* Placement User link (канон apps): `client.relations.saveToMindMap` + `offlinable` / `parentItemId` / `userProfileId` — см. `relations-flow.md` (этот item-метод — accept / open-link / `securityToken`).
|
|
1055
|
+
*/
|
|
628
1056
|
saveToMindMap(torrowId, body, options) {
|
|
629
1057
|
return this.http.requestJson({
|
|
630
1058
|
method: "PUT",
|
|
@@ -672,21 +1100,22 @@ var TorrowItemCoreFacade = class {
|
|
|
672
1100
|
});
|
|
673
1101
|
}
|
|
674
1102
|
/** `GET /api/v1/{domain}/{torrowId}/photo/puturl` — только при {@link TorrowItemFacadeOptions.withPhotoEndpoints}. */
|
|
675
|
-
getPhotoPutUrl(torrowId, options) {
|
|
1103
|
+
async getPhotoPutUrl(torrowId, fileId, fileName, fileSize, options) {
|
|
676
1104
|
if (!this.socialOpts.withPhotoEndpoints) {
|
|
677
1105
|
throw new Error("getPhotoPutUrl is only supported when withPhotoEndpoints is true (contacts)");
|
|
678
1106
|
}
|
|
679
|
-
|
|
1107
|
+
const resp = await this.http.requestJson({
|
|
680
1108
|
method: "GET",
|
|
681
1109
|
path: `${this.basePath}/${encodePathSegment(torrowId)}/photo/puturl`,
|
|
682
1110
|
query: {
|
|
683
|
-
fileId
|
|
684
|
-
fileName
|
|
685
|
-
fileSize
|
|
1111
|
+
fileId,
|
|
1112
|
+
fileName,
|
|
1113
|
+
fileSize,
|
|
686
1114
|
securityToken: options?.securityToken
|
|
687
1115
|
},
|
|
688
1116
|
signal: options?.signal
|
|
689
1117
|
});
|
|
1118
|
+
return unwrapFilePutUrl(resp);
|
|
690
1119
|
}
|
|
691
1120
|
};
|
|
692
1121
|
var TorrowItemFacade = class extends TorrowItemCoreFacade {
|
|
@@ -732,11 +1161,27 @@ var TorrowItemFacade = class extends TorrowItemCoreFacade {
|
|
|
732
1161
|
signal: options?.signal
|
|
733
1162
|
});
|
|
734
1163
|
}
|
|
735
|
-
/**
|
|
736
|
-
|
|
1164
|
+
/**
|
|
1165
|
+
* `GET /api/v1/{domain}/{itemId}/groups` — **`GroupStatus[]`**: в каких группах состоит
|
|
1166
|
+
* `itemId` **в контексте родителя** `parentId` (torrow-apps: `getItemGroups(itemId, parentId)`).
|
|
1167
|
+
*
|
|
1168
|
+
* Контекст (иерархия + группы):
|
|
1169
|
+
* - Child крепится к `parentId` (иерархия / mind map).
|
|
1170
|
+
* - В этом же parent-scope есть набор групп, доступных для включения дочерних —
|
|
1171
|
+
* см. {@link listGroups} (`…/{parentId}/group/list`), плюс сам parent, если он группа.
|
|
1172
|
+
* - Этот метод для child отвечает: «в какие из этих групп он включён»
|
|
1173
|
+
* (`GroupStatus.include` + `GroupStatus.group`).
|
|
1174
|
+
*
|
|
1175
|
+
* Не путать с {@link listGroups} (группы родителя для include дочерних) и с поиском
|
|
1176
|
+
* членов группы (`search.*(groupIds)`).
|
|
1177
|
+
*
|
|
1178
|
+
* @param itemId child, чьё членство смотрим
|
|
1179
|
+
* @param query.parentId родительский scope (обязателен по смыслу API, как в apps)
|
|
1180
|
+
*/
|
|
1181
|
+
listItemGroups(itemId, query, options) {
|
|
737
1182
|
return this.http.requestJson({
|
|
738
1183
|
method: "GET",
|
|
739
|
-
path: `${this.basePath}/${encodePathSegment(
|
|
1184
|
+
path: `${this.basePath}/${encodePathSegment(itemId)}/groups`,
|
|
740
1185
|
query: { ...query ?? {} },
|
|
741
1186
|
signal: options?.signal
|
|
742
1187
|
});
|
|
@@ -754,7 +1199,14 @@ var TorrowItemFacade = class extends TorrowItemCoreFacade {
|
|
|
754
1199
|
signal: options?.signal
|
|
755
1200
|
});
|
|
756
1201
|
}
|
|
757
|
-
/**
|
|
1202
|
+
/**
|
|
1203
|
+
* **WIP / do not use in product.** `POST .../{torrowId}/participation/shareitemlink` —
|
|
1204
|
+
* invite-session URL (`GetShareItemSessionReq` → `string`).
|
|
1205
|
+
* Gateway stub → `""` (HTTP 200). Apps: InvitationLink menu on ContactItem copies that response.
|
|
1206
|
+
* Activate: `client.item.activateShareItemSession` (also stub; unused in apps UI).
|
|
1207
|
+
* Product alternative: `generateSecurityToken` + client URI. Do not compose URL from `getShortUrl`.
|
|
1208
|
+
* Не путать с `sendLink` / `share`.
|
|
1209
|
+
*/
|
|
758
1210
|
shareItemLink(torrowId, body, options) {
|
|
759
1211
|
return this.http.requestJson({
|
|
760
1212
|
method: "POST",
|
|
@@ -850,11 +1302,17 @@ function buildTimetableQuery(options) {
|
|
|
850
1302
|
// ../../src/resources/calendars/CalendarsFacade.ts
|
|
851
1303
|
var BASE = "/api/v1/calendars";
|
|
852
1304
|
var CalendarsFacade = class extends TorrowItemFacade {
|
|
1305
|
+
itemObjectTypeCode = TorrowObjectTypeCode.Calendar;
|
|
853
1306
|
constructor(http) {
|
|
854
1307
|
super(http, BASE, { imagePutUrlSecurityToken: false, withPhotoEndpoints: false });
|
|
855
1308
|
}
|
|
1309
|
+
/** Id календаря до `create` / presigned upload. */
|
|
1310
|
+
generateCalendarId(ownerTorrowId) {
|
|
1311
|
+
return this.generateItemId(ownerTorrowId);
|
|
1312
|
+
}
|
|
856
1313
|
/** `POST /api/v1/calendars` */
|
|
857
1314
|
create(body, options) {
|
|
1315
|
+
const payload = applyItemCreateDefaults(body, "CalendarItem" /* CalendarItem */);
|
|
858
1316
|
return this.http.requestJson({
|
|
859
1317
|
method: "POST",
|
|
860
1318
|
path: BASE,
|
|
@@ -862,7 +1320,7 @@ var CalendarsFacade = class extends TorrowItemFacade {
|
|
|
862
1320
|
parentId: options?.parentId,
|
|
863
1321
|
profileId: options?.profileId
|
|
864
1322
|
},
|
|
865
|
-
body,
|
|
1323
|
+
body: payload,
|
|
866
1324
|
signal: options?.signal
|
|
867
1325
|
});
|
|
868
1326
|
}
|
|
@@ -881,8 +1339,8 @@ var CalendarsFacade = class extends TorrowItemFacade {
|
|
|
881
1339
|
});
|
|
882
1340
|
}
|
|
883
1341
|
/** `DELETE /api/v1/calendars/{torrowId}` */
|
|
884
|
-
delete(torrowId, options) {
|
|
885
|
-
|
|
1342
|
+
async delete(torrowId, options) {
|
|
1343
|
+
const resp = await this.http.requestJson({
|
|
886
1344
|
method: "DELETE",
|
|
887
1345
|
path: `${BASE}/${encodePathSegment(torrowId)}`,
|
|
888
1346
|
query: {
|
|
@@ -893,6 +1351,7 @@ var CalendarsFacade = class extends TorrowItemFacade {
|
|
|
893
1351
|
},
|
|
894
1352
|
signal: options.signal
|
|
895
1353
|
});
|
|
1354
|
+
return unwrapDeleteCount(resp);
|
|
896
1355
|
}
|
|
897
1356
|
/** `GET /api/v1/calendars/{torrowId}` */
|
|
898
1357
|
getById(torrowId, options) {
|
|
@@ -930,13 +1389,14 @@ var CalendarsFacade = class extends TorrowItemFacade {
|
|
|
930
1389
|
});
|
|
931
1390
|
}
|
|
932
1391
|
/** `POST /api/v1/calendars/timetable/statistics` */
|
|
933
|
-
getTimetableStatistics(body, options) {
|
|
934
|
-
|
|
1392
|
+
async getTimetableStatistics(body, options) {
|
|
1393
|
+
const resp = await this.http.requestJson({
|
|
935
1394
|
method: "POST",
|
|
936
1395
|
path: `${BASE}/timetable/statistics`,
|
|
937
1396
|
body,
|
|
938
1397
|
signal: options?.signal
|
|
939
1398
|
});
|
|
1399
|
+
return unwrapTimetableStatisticsList(resp);
|
|
940
1400
|
}
|
|
941
1401
|
/** `PUT /api/v1/calendars/{calendarId}/includecase` — тело: массив id кейсов. */
|
|
942
1402
|
includeCase(calendarId, caseIds, options) {
|
|
@@ -980,43 +1440,83 @@ var CalendarsFacade = class extends TorrowItemFacade {
|
|
|
980
1440
|
}
|
|
981
1441
|
};
|
|
982
1442
|
|
|
1443
|
+
// ../../src/resources/cases/types.ts
|
|
1444
|
+
var CaseStateValues = {
|
|
1445
|
+
Unknown: "UnknownCaseState",
|
|
1446
|
+
Verifying: "Verifying",
|
|
1447
|
+
Waiting: "Waiting",
|
|
1448
|
+
Processing: "Processing",
|
|
1449
|
+
Preparing: "Preparing",
|
|
1450
|
+
Completed: "Completed",
|
|
1451
|
+
Closed: "Closed",
|
|
1452
|
+
Rejected: "Rejected",
|
|
1453
|
+
Canceled: "Canceled",
|
|
1454
|
+
TimeControlled: "TimeControlled",
|
|
1455
|
+
TaskNotCompleted: "TaskNotCompleted",
|
|
1456
|
+
TaskCompleted: "TaskCompleted"
|
|
1457
|
+
};
|
|
1458
|
+
var CaseTypeValues = {
|
|
1459
|
+
Unknown: "UnknownTimeType",
|
|
1460
|
+
Time: "Time",
|
|
1461
|
+
RepeatedTime: "RepeatedTime",
|
|
1462
|
+
Today: "Today",
|
|
1463
|
+
Week: "Week",
|
|
1464
|
+
Later: "Later",
|
|
1465
|
+
Date: "Date",
|
|
1466
|
+
State: "State"
|
|
1467
|
+
};
|
|
1468
|
+
|
|
983
1469
|
// ../../src/resources/cases/CasesFacade.ts
|
|
984
1470
|
var BASE2 = "/api/v1/cases";
|
|
985
1471
|
var CasesFacade = class extends TorrowItemFacade {
|
|
1472
|
+
itemObjectTypeCode = TorrowObjectTypeCode.Case;
|
|
986
1473
|
constructor(http) {
|
|
987
1474
|
super(http, BASE2);
|
|
988
1475
|
}
|
|
989
|
-
/**
|
|
990
|
-
|
|
1476
|
+
/** Id события до `createWithOptions` / `createCaseItem` / presigned upload. */
|
|
1477
|
+
generateCaseId(ownerTorrowId) {
|
|
1478
|
+
return this.generateItemId(ownerTorrowId);
|
|
1479
|
+
}
|
|
1480
|
+
/**
|
|
1481
|
+
* Основной create события — `PUT /api/v1/cases` + **`CreateCaseReq`**
|
|
1482
|
+
* (`caseItem`, опционально `reminders`, `calendarId`, check-in / road time / participant type, …).
|
|
1483
|
+
* NSwag: `createCaseWithReminder`. Для «голого» `CaseItem` без оболочки — **`createCaseItem`**.
|
|
1484
|
+
*/
|
|
1485
|
+
createWithOptions(body, options) {
|
|
1486
|
+
const payload = {
|
|
1487
|
+
...body,
|
|
1488
|
+
caseItem: body.caseItem ? this.withCreateDefaults(body.caseItem) : body.caseItem
|
|
1489
|
+
};
|
|
991
1490
|
return this.http.requestJson({
|
|
992
|
-
method: "
|
|
1491
|
+
method: "PUT",
|
|
993
1492
|
path: BASE2,
|
|
994
1493
|
query: {
|
|
995
1494
|
parentId: options?.parentId,
|
|
996
|
-
profileId: options?.profileId
|
|
997
|
-
isNeedToCheckInMySelf: options?.isNeedToCheckInMySelf,
|
|
998
|
-
availabilityTime: options?.availabilityTime,
|
|
999
|
-
roadTime: options?.roadTime,
|
|
1000
|
-
calendarId: options?.calendarId,
|
|
1001
|
-
caseParticipantType: options?.caseParticipantType
|
|
1495
|
+
profileId: options?.profileId
|
|
1002
1496
|
},
|
|
1003
|
-
body,
|
|
1497
|
+
body: payload,
|
|
1004
1498
|
signal: options?.signal
|
|
1005
1499
|
});
|
|
1006
1500
|
}
|
|
1007
1501
|
/**
|
|
1008
|
-
* `
|
|
1009
|
-
*
|
|
1502
|
+
* `POST /api/v1/cases` — create из тела **`CaseItem`** (query: calendar / check-in / road / participant).
|
|
1503
|
+
* NSwag: `createCase`. Предпочтительный путь с оболочкой — **`createWithOptions`** (`CreateCaseReq`).
|
|
1010
1504
|
*/
|
|
1011
|
-
|
|
1505
|
+
createCaseItem(body, options) {
|
|
1506
|
+
const payload = this.withCreateDefaults(body);
|
|
1012
1507
|
return this.http.requestJson({
|
|
1013
|
-
method: "
|
|
1508
|
+
method: "POST",
|
|
1014
1509
|
path: BASE2,
|
|
1015
1510
|
query: {
|
|
1016
1511
|
parentId: options?.parentId,
|
|
1017
|
-
profileId: options?.profileId
|
|
1512
|
+
profileId: options?.profileId,
|
|
1513
|
+
isNeedToCheckInMySelf: options?.isNeedToCheckInMySelf,
|
|
1514
|
+
availabilityTime: options?.availabilityTime,
|
|
1515
|
+
roadTime: options?.roadTime,
|
|
1516
|
+
calendarId: options?.calendarId,
|
|
1517
|
+
caseParticipantType: options?.caseParticipantType
|
|
1018
1518
|
},
|
|
1019
|
-
body,
|
|
1519
|
+
body: payload,
|
|
1020
1520
|
signal: options?.signal
|
|
1021
1521
|
});
|
|
1022
1522
|
}
|
|
@@ -1035,9 +1535,25 @@ var CasesFacade = class extends TorrowItemFacade {
|
|
|
1035
1535
|
signal: options?.signal
|
|
1036
1536
|
});
|
|
1037
1537
|
}
|
|
1538
|
+
withCreateDefaults(body) {
|
|
1539
|
+
const payload = applyItemCreateDefaults(body, "CaseItem" /* CaseItem */);
|
|
1540
|
+
return {
|
|
1541
|
+
...payload,
|
|
1542
|
+
caseState: payload.caseState ?? CaseStateValues.Verifying,
|
|
1543
|
+
caseType: payload.caseType ?? CaseTypeValues.Time,
|
|
1544
|
+
// Сервер отклоняет create без VisitCard («Parameter VisitCard cannot have value null»).
|
|
1545
|
+
visitCard: payload.visitCard ?? {
|
|
1546
|
+
fields: [
|
|
1547
|
+
{ number: 0, value: payload.name ?? "", expression: '{"type":"Name"}' },
|
|
1548
|
+
{ number: 1, value: "", expression: null },
|
|
1549
|
+
{ number: 2, value: "", expression: null }
|
|
1550
|
+
]
|
|
1551
|
+
}
|
|
1552
|
+
};
|
|
1553
|
+
}
|
|
1038
1554
|
/** `DELETE /api/v1/cases/{torrowId}` */
|
|
1039
|
-
delete(torrowId, options) {
|
|
1040
|
-
|
|
1555
|
+
async delete(torrowId, options) {
|
|
1556
|
+
const resp = await this.http.requestJson({
|
|
1041
1557
|
method: "DELETE",
|
|
1042
1558
|
path: `${BASE2}/${encodePathSegment(torrowId)}`,
|
|
1043
1559
|
query: {
|
|
@@ -1048,6 +1564,7 @@ var CasesFacade = class extends TorrowItemFacade {
|
|
|
1048
1564
|
},
|
|
1049
1565
|
signal: options.signal
|
|
1050
1566
|
});
|
|
1567
|
+
return unwrapDeleteCount(resp);
|
|
1051
1568
|
}
|
|
1052
1569
|
/** `GET /api/v1/cases/{torrowId}` */
|
|
1053
1570
|
getById(torrowId, options) {
|
|
@@ -1186,25 +1703,6 @@ var CasesFacade = class extends TorrowItemFacade {
|
|
|
1186
1703
|
signal: options?.signal
|
|
1187
1704
|
});
|
|
1188
1705
|
}
|
|
1189
|
-
/** `PUT /api/v1/cases/{torrowId}/caseparticipation/checkinmyself` (deprecated в Swagger). */
|
|
1190
|
-
checkInMyself(torrowId, body, options) {
|
|
1191
|
-
return this.http.requestJson({
|
|
1192
|
-
method: "PUT",
|
|
1193
|
-
path: `${BASE2}/${encodePathSegment(torrowId)}/caseparticipation/checkinmyself`,
|
|
1194
|
-
query: { message: options?.message },
|
|
1195
|
-
body,
|
|
1196
|
-
signal: options?.signal
|
|
1197
|
-
});
|
|
1198
|
-
}
|
|
1199
|
-
/** `PUT /api/v1/cases/{torrowId}/caseparticipation/checkinother` (deprecated). */
|
|
1200
|
-
checkInOther(torrowId, body, options) {
|
|
1201
|
-
return this.http.requestJson({
|
|
1202
|
-
method: "PUT",
|
|
1203
|
-
path: `${BASE2}/${encodePathSegment(torrowId)}/caseparticipation/checkinother`,
|
|
1204
|
-
body,
|
|
1205
|
-
signal: options?.signal
|
|
1206
|
-
});
|
|
1207
|
-
}
|
|
1208
1706
|
/** `PUT /api/v1/cases/{torrowId}/caseparticipation/bookresourcesforme` */
|
|
1209
1707
|
bookResourcesForMe(torrowId, body, options) {
|
|
1210
1708
|
return this.http.requestJson({
|
|
@@ -1224,15 +1722,6 @@ var CasesFacade = class extends TorrowItemFacade {
|
|
|
1224
1722
|
signal: options?.signal
|
|
1225
1723
|
});
|
|
1226
1724
|
}
|
|
1227
|
-
/** `PUT /api/v1/cases/{torrowId}/caseparticipation/bookresources` (deprecated). */
|
|
1228
|
-
bookResources(torrowId, body, options) {
|
|
1229
|
-
return this.http.requestJson({
|
|
1230
|
-
method: "PUT",
|
|
1231
|
-
path: `${BASE2}/${encodePathSegment(torrowId)}/caseparticipation/bookresources`,
|
|
1232
|
-
body,
|
|
1233
|
-
signal: options?.signal
|
|
1234
|
-
});
|
|
1235
|
-
}
|
|
1236
1725
|
/** `PUT /api/v1/cases/{torrowId}/caseparticipants/approvemoneyreceive` */
|
|
1237
1726
|
approveMoneyReceive(torrowId, body, options) {
|
|
1238
1727
|
return this.http.requestJson({
|
|
@@ -1251,25 +1740,6 @@ var CasesFacade = class extends TorrowItemFacade {
|
|
|
1251
1740
|
signal: options?.signal
|
|
1252
1741
|
});
|
|
1253
1742
|
}
|
|
1254
|
-
/** `PUT /api/v1/cases/{torrowId}/caseparticipation/cancelmycaseparticipation` (deprecated). */
|
|
1255
|
-
cancelMyCaseParticipation(torrowId, body, options) {
|
|
1256
|
-
return this.http.requestJson({
|
|
1257
|
-
method: "PUT",
|
|
1258
|
-
path: `${BASE2}/${encodePathSegment(torrowId)}/caseparticipation/cancelmycaseparticipation`,
|
|
1259
|
-
query: { profileId: options?.profileId },
|
|
1260
|
-
body,
|
|
1261
|
-
signal: options?.signal
|
|
1262
|
-
});
|
|
1263
|
-
}
|
|
1264
|
-
/** `PUT /api/v1/cases/{torrowId}/caseparticipation/cancelothercaseparticipation` (deprecated). */
|
|
1265
|
-
cancelOtherCaseParticipation(torrowId, body, options) {
|
|
1266
|
-
return this.http.requestJson({
|
|
1267
|
-
method: "PUT",
|
|
1268
|
-
path: `${BASE2}/${encodePathSegment(torrowId)}/caseparticipation/cancelothercaseparticipation`,
|
|
1269
|
-
body,
|
|
1270
|
-
signal: options?.signal
|
|
1271
|
-
});
|
|
1272
|
-
}
|
|
1273
1743
|
/** `PUT /api/v1/cases/{torrowId}/caseparticipation/approvecaseparticipation` */
|
|
1274
1744
|
approveCaseParticipation(torrowId, body, options) {
|
|
1275
1745
|
return this.http.requestJson({
|
|
@@ -1375,6 +1845,111 @@ var CasesFacade = class extends TorrowItemFacade {
|
|
|
1375
1845
|
}
|
|
1376
1846
|
};
|
|
1377
1847
|
|
|
1848
|
+
// ../../src/resources/contacts/contact-communications-write-defaults.ts
|
|
1849
|
+
var CONTACT_COMMUNICATION_DEFAULT_CHECK_STATE = "Unchecked";
|
|
1850
|
+
function normalizeContactCommunicationsForWrite(body) {
|
|
1851
|
+
const items = body.communications;
|
|
1852
|
+
if (!Array.isArray(items)) {
|
|
1853
|
+
return;
|
|
1854
|
+
}
|
|
1855
|
+
for (const item of items) {
|
|
1856
|
+
if (item === null || item === void 0 || typeof item !== "object") {
|
|
1857
|
+
continue;
|
|
1858
|
+
}
|
|
1859
|
+
if (item.checkState === void 0 || item.checkState === null) {
|
|
1860
|
+
item.checkState = CONTACT_COMMUNICATION_DEFAULT_CHECK_STATE;
|
|
1861
|
+
}
|
|
1862
|
+
}
|
|
1863
|
+
}
|
|
1864
|
+
|
|
1865
|
+
// ../../src/resources/contacts/contact-structured-array-rids.ts
|
|
1866
|
+
var CONTACT_STRUCTURED_ARRAY_KEYS = ["addresses", "communications", "dates"];
|
|
1867
|
+
function isMissingRid(rid) {
|
|
1868
|
+
if (rid === null || rid === void 0) {
|
|
1869
|
+
return true;
|
|
1870
|
+
}
|
|
1871
|
+
return typeof rid === "string" && rid.trim() === "";
|
|
1872
|
+
}
|
|
1873
|
+
function ensureRidsOnArray(items, arrayKey) {
|
|
1874
|
+
if (!Array.isArray(items)) {
|
|
1875
|
+
return;
|
|
1876
|
+
}
|
|
1877
|
+
for (let i = 0; i < items.length; i++) {
|
|
1878
|
+
const item = items[i];
|
|
1879
|
+
if (item === null || item === void 0 || typeof item !== "object") {
|
|
1880
|
+
continue;
|
|
1881
|
+
}
|
|
1882
|
+
const rid = item.rid;
|
|
1883
|
+
if (isMissingRid(rid)) {
|
|
1884
|
+
item.rid = generateRid();
|
|
1885
|
+
continue;
|
|
1886
|
+
}
|
|
1887
|
+
if (!isValidRid(rid)) {
|
|
1888
|
+
throw new Error(
|
|
1889
|
+
`Invalid rid for contact.${arrayKey}[${i}]: expected ${TORROW_OBJECT_ID_HEX_LENGTH} hexadecimal characters`
|
|
1890
|
+
);
|
|
1891
|
+
}
|
|
1892
|
+
}
|
|
1893
|
+
}
|
|
1894
|
+
function normalizeContactStructuredArrayRidsForWrite(body) {
|
|
1895
|
+
for (const key of CONTACT_STRUCTURED_ARRAY_KEYS) {
|
|
1896
|
+
ensureRidsOnArray(body[key], key);
|
|
1897
|
+
}
|
|
1898
|
+
}
|
|
1899
|
+
|
|
1900
|
+
// ../../src/resources/contacts/contact-visit-card-fields.ts
|
|
1901
|
+
var CONTACT_VISIT_CARD_SLOT_COUNT = 3;
|
|
1902
|
+
var CONTACT_VISIT_CARD_DEFAULT_SLOT_0_EXPRESSION = JSON.stringify({ type: "LastNameFirstName" });
|
|
1903
|
+
function trimNonEmptyString(value) {
|
|
1904
|
+
if (typeof value !== "string") return void 0;
|
|
1905
|
+
const trimmed = value.trim();
|
|
1906
|
+
return trimmed === "" ? void 0 : trimmed;
|
|
1907
|
+
}
|
|
1908
|
+
function contactVisitCardDefaultSlot0Value(body) {
|
|
1909
|
+
const name = trimNonEmptyString(body.name);
|
|
1910
|
+
if (name !== void 0) {
|
|
1911
|
+
return name;
|
|
1912
|
+
}
|
|
1913
|
+
const lastName = trimNonEmptyString(body.lastName);
|
|
1914
|
+
const firstName = trimNonEmptyString(body.firstName);
|
|
1915
|
+
const middleName = trimNonEmptyString(body.middleName);
|
|
1916
|
+
if (lastName !== void 0 && firstName !== void 0 && middleName !== void 0) {
|
|
1917
|
+
return `${lastName} ${firstName} ${middleName}`;
|
|
1918
|
+
}
|
|
1919
|
+
return trimNonEmptyString(body.company) ?? "";
|
|
1920
|
+
}
|
|
1921
|
+
function normalizeContactVisitCardFieldsForWrite(body) {
|
|
1922
|
+
let visitCard = body.visitCard;
|
|
1923
|
+
if (visitCard === void 0 || visitCard === null || typeof visitCard !== "object" || Array.isArray(visitCard)) {
|
|
1924
|
+
visitCard = {};
|
|
1925
|
+
}
|
|
1926
|
+
let incoming = Array.isArray(visitCard.fields) ? visitCard.fields : [];
|
|
1927
|
+
if (incoming.length === 0) {
|
|
1928
|
+
incoming = [
|
|
1929
|
+
{
|
|
1930
|
+
expression: CONTACT_VISIT_CARD_DEFAULT_SLOT_0_EXPRESSION,
|
|
1931
|
+
number: 0,
|
|
1932
|
+
value: contactVisitCardDefaultSlot0Value(body)
|
|
1933
|
+
}
|
|
1934
|
+
];
|
|
1935
|
+
}
|
|
1936
|
+
const picked = [];
|
|
1937
|
+
for (let i = 0; i < CONTACT_VISIT_CARD_SLOT_COUNT; i++) {
|
|
1938
|
+
picked.push(void 0);
|
|
1939
|
+
}
|
|
1940
|
+
for (const field of incoming) {
|
|
1941
|
+
if (field === void 0 || field === null || typeof field !== "object") continue;
|
|
1942
|
+
const n = field.number;
|
|
1943
|
+
if (typeof n !== "number" || !Number.isInteger(n) || n < 0 || n >= CONTACT_VISIT_CARD_SLOT_COUNT) continue;
|
|
1944
|
+
picked[n] = { ...field, number: n };
|
|
1945
|
+
}
|
|
1946
|
+
const fields = [];
|
|
1947
|
+
for (let i = 0; i < CONTACT_VISIT_CARD_SLOT_COUNT; i++) {
|
|
1948
|
+
fields.push(picked[i] ?? { number: i, value: "" });
|
|
1949
|
+
}
|
|
1950
|
+
body.visitCard = { ...visitCard, fields };
|
|
1951
|
+
}
|
|
1952
|
+
|
|
1378
1953
|
// ../../src/resources/contacts/ContactsFacade.ts
|
|
1379
1954
|
var BASE3 = "/api/v1/contacts";
|
|
1380
1955
|
var CONTACT_SOCIAL_OPTS = {
|
|
@@ -1382,11 +1957,17 @@ var CONTACT_SOCIAL_OPTS = {
|
|
|
1382
1957
|
withPhotoEndpoints: true
|
|
1383
1958
|
};
|
|
1384
1959
|
var ContactsFacade = class extends TorrowItemFacade {
|
|
1960
|
+
itemObjectTypeCode = TorrowObjectTypeCode.Contact;
|
|
1385
1961
|
constructor(http) {
|
|
1386
1962
|
super(http, BASE3, CONTACT_SOCIAL_OPTS);
|
|
1387
1963
|
}
|
|
1964
|
+
/** Id контакта до `create` / presigned upload. */
|
|
1965
|
+
generateContactId(ownerTorrowId) {
|
|
1966
|
+
return this.generateItemId(ownerTorrowId);
|
|
1967
|
+
}
|
|
1388
1968
|
/** `POST /api/v1/contacts` */
|
|
1389
1969
|
create(body, options) {
|
|
1970
|
+
const payload = this.withCreateDefaults(body);
|
|
1390
1971
|
return this.http.requestJson({
|
|
1391
1972
|
method: "POST",
|
|
1392
1973
|
path: BASE3,
|
|
@@ -1394,12 +1975,23 @@ var ContactsFacade = class extends TorrowItemFacade {
|
|
|
1394
1975
|
parentId: options?.parentId,
|
|
1395
1976
|
profileId: options?.profileId
|
|
1396
1977
|
},
|
|
1397
|
-
body,
|
|
1978
|
+
body: payload,
|
|
1398
1979
|
signal: options?.signal
|
|
1399
1980
|
});
|
|
1400
1981
|
}
|
|
1982
|
+
withCreateDefaults(body) {
|
|
1983
|
+
const payload = applyItemCreateDefaults(body, "ContactItem" /* ContactItem */);
|
|
1984
|
+
normalizeContactStructuredArrayRidsForWrite(payload);
|
|
1985
|
+
normalizeContactCommunicationsForWrite(payload);
|
|
1986
|
+
normalizeContactVisitCardFieldsForWrite(payload);
|
|
1987
|
+
return payload;
|
|
1988
|
+
}
|
|
1401
1989
|
/** `PUT /api/v1/contacts/{torrowId}` */
|
|
1402
1990
|
update(body, torrowId, options) {
|
|
1991
|
+
const payload = { ...body };
|
|
1992
|
+
normalizeContactStructuredArrayRidsForWrite(payload);
|
|
1993
|
+
normalizeContactCommunicationsForWrite(payload);
|
|
1994
|
+
normalizeContactVisitCardFieldsForWrite(payload);
|
|
1403
1995
|
return this.http.requestJson({
|
|
1404
1996
|
method: "PUT",
|
|
1405
1997
|
path: `${BASE3}/${encodePathSegment(torrowId)}`,
|
|
@@ -1408,7 +2000,7 @@ var ContactsFacade = class extends TorrowItemFacade {
|
|
|
1408
2000
|
isNeedAnnouncement: options?.isNeedAnnouncement,
|
|
1409
2001
|
securityToken: options?.securityToken
|
|
1410
2002
|
},
|
|
1411
|
-
body,
|
|
2003
|
+
body: payload,
|
|
1412
2004
|
signal: options?.signal
|
|
1413
2005
|
});
|
|
1414
2006
|
}
|
|
@@ -1430,8 +2022,8 @@ var ContactsFacade = class extends TorrowItemFacade {
|
|
|
1430
2022
|
* `DELETE /api/v1/contacts/{torrowId}`
|
|
1431
2023
|
* @param options.cascade / withPinnedItems — required by API (see Swagger).
|
|
1432
2024
|
*/
|
|
1433
|
-
delete(torrowId, options) {
|
|
1434
|
-
|
|
2025
|
+
async delete(torrowId, options) {
|
|
2026
|
+
const resp = await this.http.requestJson({
|
|
1435
2027
|
method: "DELETE",
|
|
1436
2028
|
path: `${BASE3}/${encodePathSegment(torrowId)}`,
|
|
1437
2029
|
query: {
|
|
@@ -1442,6 +2034,7 @@ var ContactsFacade = class extends TorrowItemFacade {
|
|
|
1442
2034
|
},
|
|
1443
2035
|
signal: options.signal
|
|
1444
2036
|
});
|
|
2037
|
+
return unwrapDeleteCount(resp);
|
|
1445
2038
|
}
|
|
1446
2039
|
/** `GET /api/v1/contacts/personallist` */
|
|
1447
2040
|
listPersonal(options) {
|
|
@@ -1465,22 +2058,24 @@ var ContactsFacade = class extends TorrowItemFacade {
|
|
|
1465
2058
|
});
|
|
1466
2059
|
}
|
|
1467
2060
|
/** `POST /api/v1/contacts/timetable/statistics` */
|
|
1468
|
-
getTimetableStatistics(body, options) {
|
|
1469
|
-
|
|
2061
|
+
async getTimetableStatistics(body, options) {
|
|
2062
|
+
const resp = await this.http.requestJson({
|
|
1470
2063
|
method: "POST",
|
|
1471
2064
|
path: `${BASE3}/timetable/statistics`,
|
|
1472
2065
|
body,
|
|
1473
2066
|
signal: options?.signal
|
|
1474
2067
|
});
|
|
2068
|
+
return unwrapTimetableStatisticsList(resp);
|
|
1475
2069
|
}
|
|
1476
2070
|
/** `POST /api/v1/contacts/communication/sendcode` */
|
|
1477
|
-
sendCommunicationCode(body, options) {
|
|
1478
|
-
|
|
2071
|
+
async sendCommunicationCode(body, options) {
|
|
2072
|
+
const resp = await this.http.requestJson({
|
|
1479
2073
|
method: "POST",
|
|
1480
2074
|
path: `${BASE3}/communication/sendcode`,
|
|
1481
2075
|
body,
|
|
1482
2076
|
signal: options?.signal
|
|
1483
2077
|
});
|
|
2078
|
+
return unwrapSendCommunicationSessionId(resp);
|
|
1484
2079
|
}
|
|
1485
2080
|
/** `POST /api/v1/contacts/communication/verify` */
|
|
1486
2081
|
verifyCommunicationCode(body, options) {
|
|
@@ -1511,29 +2106,36 @@ var ContactsFacade = class extends TorrowItemFacade {
|
|
|
1511
2106
|
});
|
|
1512
2107
|
}
|
|
1513
2108
|
/** `PUT /api/v1/contacts/{contactId}/contactproperties` */
|
|
1514
|
-
updateContactProperties(contactId, body, options) {
|
|
1515
|
-
|
|
2109
|
+
async updateContactProperties(contactId, body, options) {
|
|
2110
|
+
const resp = await this.http.requestJson({
|
|
1516
2111
|
method: "PUT",
|
|
1517
2112
|
path: `${BASE3}/${encodePathSegment(contactId)}/contactproperties`,
|
|
1518
2113
|
body,
|
|
1519
2114
|
signal: options?.signal
|
|
1520
2115
|
});
|
|
2116
|
+
return unwrapTorrowObjectFromContactPropertiesUpdate(resp);
|
|
1521
2117
|
}
|
|
1522
2118
|
};
|
|
1523
2119
|
|
|
1524
2120
|
// ../../src/resources/contexts/ContextsFacade.ts
|
|
1525
2121
|
var BASE4 = "/api/v1/contexts";
|
|
1526
2122
|
var ContextsFacade = class extends TorrowItemFacade {
|
|
2123
|
+
itemObjectTypeCode = TorrowObjectTypeCode.Context;
|
|
1527
2124
|
constructor(http) {
|
|
1528
2125
|
super(http, BASE4, { imagePutUrlSecurityToken: false, withPhotoEndpoints: false });
|
|
1529
2126
|
}
|
|
2127
|
+
/** Id контекста до `create` / presigned upload. */
|
|
2128
|
+
generateContextId(ownerTorrowId) {
|
|
2129
|
+
return this.generateItemId(ownerTorrowId);
|
|
2130
|
+
}
|
|
1530
2131
|
/** `POST /api/v1/contexts` */
|
|
1531
2132
|
create(body, options) {
|
|
2133
|
+
const payload = applyItemCreateDefaults(body, "ContextItem" /* ContextItem */);
|
|
1532
2134
|
return this.http.requestJson({
|
|
1533
2135
|
method: "POST",
|
|
1534
2136
|
path: BASE4,
|
|
1535
2137
|
query: { profileId: options?.profileId },
|
|
1536
|
-
body,
|
|
2138
|
+
body: payload,
|
|
1537
2139
|
signal: options?.signal
|
|
1538
2140
|
});
|
|
1539
2141
|
}
|
|
@@ -1551,8 +2153,8 @@ var ContextsFacade = class extends TorrowItemFacade {
|
|
|
1551
2153
|
});
|
|
1552
2154
|
}
|
|
1553
2155
|
/** `DELETE /api/v1/contexts/{torrowId}` */
|
|
1554
|
-
delete(torrowId, options) {
|
|
1555
|
-
|
|
2156
|
+
async delete(torrowId, options) {
|
|
2157
|
+
const resp = await this.http.requestJson({
|
|
1556
2158
|
method: "DELETE",
|
|
1557
2159
|
path: `${BASE4}/${encodePathSegment(torrowId)}`,
|
|
1558
2160
|
query: {
|
|
@@ -1563,6 +2165,7 @@ var ContextsFacade = class extends TorrowItemFacade {
|
|
|
1563
2165
|
},
|
|
1564
2166
|
signal: options.signal
|
|
1565
2167
|
});
|
|
2168
|
+
return unwrapDeleteCount(resp);
|
|
1566
2169
|
}
|
|
1567
2170
|
/** `GET /api/v1/contexts/{torrowId}` */
|
|
1568
2171
|
getById(torrowId, options) {
|
|
@@ -1590,14 +2193,45 @@ var ContextsFacade = class extends TorrowItemFacade {
|
|
|
1590
2193
|
}
|
|
1591
2194
|
};
|
|
1592
2195
|
|
|
2196
|
+
// ../../src/resources/notes/types.ts
|
|
2197
|
+
var NoteTypeValues = {
|
|
2198
|
+
Unknown: "Unknown",
|
|
2199
|
+
Text: "Text",
|
|
2200
|
+
Html: "Html",
|
|
2201
|
+
Hlink: "Hlink",
|
|
2202
|
+
File: "File",
|
|
2203
|
+
Photo: "Photo",
|
|
2204
|
+
Voice: "Voice",
|
|
2205
|
+
Geolocation: "Geolocation",
|
|
2206
|
+
Qr: "Qr",
|
|
2207
|
+
ServiceSpecification: "ServiceSpecification"
|
|
2208
|
+
};
|
|
2209
|
+
var ImagePreviewSizeValues = {
|
|
2210
|
+
Undefined: "Undefined",
|
|
2211
|
+
Hidden: "Hidden",
|
|
2212
|
+
Small: "Small",
|
|
2213
|
+
Medium: "Medium",
|
|
2214
|
+
Large: "Large",
|
|
2215
|
+
SmallSlider: "SmallSlider",
|
|
2216
|
+
MediumSlider: "MediumSlider",
|
|
2217
|
+
LargeSlider: "LargeSlider"
|
|
2218
|
+
};
|
|
2219
|
+
|
|
1593
2220
|
// ../../src/resources/notes/NotesFacade.ts
|
|
1594
2221
|
var BASE5 = "/api/v1/notes";
|
|
2222
|
+
var DEFAULT_NOTE_NAME = "Untitled note";
|
|
1595
2223
|
var NotesFacade = class extends TorrowItemFacade {
|
|
2224
|
+
itemObjectTypeCode = TorrowObjectTypeCode.Note;
|
|
1596
2225
|
constructor(http) {
|
|
1597
2226
|
super(http, BASE5, { imagePutUrlSecurityToken: false, withPhotoEndpoints: false });
|
|
1598
2227
|
}
|
|
2228
|
+
/** Id заметки до `create` / presigned upload (`ownerTorrowId` — profileId и т.п.). */
|
|
2229
|
+
generateNoteId(ownerTorrowId) {
|
|
2230
|
+
return this.generateItemId(ownerTorrowId);
|
|
2231
|
+
}
|
|
1599
2232
|
/** `POST /api/v1/notes` */
|
|
1600
2233
|
create(body, options) {
|
|
2234
|
+
const payload = this.withCreateDefaults(body);
|
|
1601
2235
|
return this.http.requestJson({
|
|
1602
2236
|
method: "POST",
|
|
1603
2237
|
path: BASE5,
|
|
@@ -1605,7 +2239,7 @@ var NotesFacade = class extends TorrowItemFacade {
|
|
|
1605
2239
|
parentId: options?.parentId,
|
|
1606
2240
|
profileId: options?.profileId
|
|
1607
2241
|
},
|
|
1608
|
-
body,
|
|
2242
|
+
body: payload,
|
|
1609
2243
|
signal: options?.signal
|
|
1610
2244
|
});
|
|
1611
2245
|
}
|
|
@@ -1622,9 +2256,13 @@ var NotesFacade = class extends TorrowItemFacade {
|
|
|
1622
2256
|
signal: options?.signal
|
|
1623
2257
|
});
|
|
1624
2258
|
}
|
|
1625
|
-
/**
|
|
1626
|
-
|
|
1627
|
-
|
|
2259
|
+
/**
|
|
2260
|
+
* `DELETE /api/v1/notes/{torrowId}`
|
|
2261
|
+
* @param options.cascade — каскад по вложенным дочерним элементам; `false` — только заметка.
|
|
2262
|
+
* @param options.withPinnedItems — удалять закреплённые дочерние представления; `false` — не трогать pinned.
|
|
2263
|
+
*/
|
|
2264
|
+
async delete(torrowId, options) {
|
|
2265
|
+
const resp = await this.http.requestJson({
|
|
1628
2266
|
method: "DELETE",
|
|
1629
2267
|
path: `${BASE5}/${encodePathSegment(torrowId)}`,
|
|
1630
2268
|
query: {
|
|
@@ -1635,6 +2273,7 @@ var NotesFacade = class extends TorrowItemFacade {
|
|
|
1635
2273
|
},
|
|
1636
2274
|
signal: options.signal
|
|
1637
2275
|
});
|
|
2276
|
+
return unwrapDeleteCount(resp);
|
|
1638
2277
|
}
|
|
1639
2278
|
/** `GET /api/v1/notes/{torrowId}` */
|
|
1640
2279
|
getById(torrowId, options) {
|
|
@@ -1661,85 +2300,204 @@ var NotesFacade = class extends TorrowItemFacade {
|
|
|
1661
2300
|
});
|
|
1662
2301
|
}
|
|
1663
2302
|
/** `GET /api/v1/notes/{torrowId}/file/info` */
|
|
1664
|
-
getFileInfo(torrowId, options) {
|
|
2303
|
+
getFileInfo(torrowId, fileId, options) {
|
|
1665
2304
|
return this.http.requestJson({
|
|
1666
2305
|
method: "GET",
|
|
1667
2306
|
path: `${BASE5}/${encodePathSegment(torrowId)}/file/info`,
|
|
1668
|
-
query: { fileId
|
|
2307
|
+
query: { fileId },
|
|
1669
2308
|
signal: options?.signal
|
|
1670
2309
|
});
|
|
1671
2310
|
}
|
|
1672
2311
|
/** `GET /api/v1/notes/{torrowId}/file/puturl` — URL для загрузки файла (presigned). */
|
|
1673
|
-
getFilePutUrl(torrowId, options) {
|
|
1674
|
-
|
|
2312
|
+
async getFilePutUrl(torrowId, fileId, fileName, fileSize, options) {
|
|
2313
|
+
const resp = await this.http.requestJson({
|
|
1675
2314
|
method: "GET",
|
|
1676
2315
|
path: `${BASE5}/${encodePathSegment(torrowId)}/file/puturl`,
|
|
1677
2316
|
query: {
|
|
1678
|
-
fileId
|
|
1679
|
-
fileName
|
|
1680
|
-
fileSize
|
|
2317
|
+
fileId,
|
|
2318
|
+
fileName,
|
|
2319
|
+
fileSize
|
|
1681
2320
|
},
|
|
1682
2321
|
signal: options?.signal
|
|
1683
2322
|
});
|
|
2323
|
+
return unwrapFilePutUrl(resp);
|
|
2324
|
+
}
|
|
2325
|
+
withCreateDefaults(body) {
|
|
2326
|
+
const payload = applyItemCreateDefaults(body, "NoteItem" /* NoteItem */);
|
|
2327
|
+
if (!payload.name?.trim()) {
|
|
2328
|
+
payload.name = this.getDefaultName(payload.data);
|
|
2329
|
+
}
|
|
2330
|
+
payload.imagePreviewSize = payload.imagePreviewSize ?? ImagePreviewSizeValues.Small;
|
|
2331
|
+
return payload;
|
|
2332
|
+
}
|
|
2333
|
+
getDefaultName(data) {
|
|
2334
|
+
if (typeof data !== "string") {
|
|
2335
|
+
return DEFAULT_NOTE_NAME;
|
|
2336
|
+
}
|
|
2337
|
+
const normalized = data.trim();
|
|
2338
|
+
if (!normalized) {
|
|
2339
|
+
return DEFAULT_NOTE_NAME;
|
|
2340
|
+
}
|
|
2341
|
+
return normalized.slice(0, 20);
|
|
1684
2342
|
}
|
|
1685
2343
|
};
|
|
1686
2344
|
|
|
1687
|
-
// ../../src/resources/
|
|
1688
|
-
var
|
|
1689
|
-
|
|
1690
|
-
|
|
1691
|
-
|
|
1692
|
-
|
|
1693
|
-
|
|
1694
|
-
|
|
1695
|
-
|
|
2345
|
+
// ../../src/resources/common/item-type.ts
|
|
2346
|
+
var TorrowItemDefinitions = {
|
|
2347
|
+
Contact: { domain: "contacts", objectTypeCode: TorrowObjectTypeCode.Contact },
|
|
2348
|
+
Note: { domain: "notes", objectTypeCode: TorrowObjectTypeCode.Note },
|
|
2349
|
+
Context: { domain: "contexts", objectTypeCode: TorrowObjectTypeCode.Context },
|
|
2350
|
+
Resource: { domain: "resources", objectTypeCode: TorrowObjectTypeCode.Resource },
|
|
2351
|
+
Service: { domain: "services", objectTypeCode: TorrowObjectTypeCode.Service },
|
|
2352
|
+
Case: { domain: "cases", objectTypeCode: TorrowObjectTypeCode.Case },
|
|
2353
|
+
Calendar: { domain: "calendars", objectTypeCode: TorrowObjectTypeCode.Calendar },
|
|
2354
|
+
LoyaltyCard: {
|
|
2355
|
+
domain: "loyaltycards",
|
|
2356
|
+
objectTypeCode: TorrowObjectTypeCode.LoyaltyCard
|
|
2357
|
+
},
|
|
2358
|
+
LoyaltySystem: {
|
|
2359
|
+
domain: "loyaltysystems",
|
|
2360
|
+
objectTypeCode: TorrowObjectTypeCode.LoyaltySystem
|
|
2361
|
+
}
|
|
1696
2362
|
};
|
|
1697
|
-
var
|
|
1698
|
-
|
|
1699
|
-
|
|
2363
|
+
var TorrowItemTypeValues = {
|
|
2364
|
+
Contact: "Contact",
|
|
2365
|
+
Note: "Note",
|
|
2366
|
+
Context: "Context",
|
|
2367
|
+
Resource: "Resource",
|
|
2368
|
+
Service: "Service",
|
|
2369
|
+
Case: "Case",
|
|
2370
|
+
Calendar: "Calendar",
|
|
2371
|
+
LoyaltyCard: "LoyaltyCard",
|
|
2372
|
+
LoyaltySystem: "LoyaltySystem"
|
|
2373
|
+
};
|
|
2374
|
+
var TorrowItemTypeValueList = Object.values(
|
|
2375
|
+
TorrowItemTypeValues
|
|
2376
|
+
);
|
|
2377
|
+
function isTorrowItemType(value) {
|
|
2378
|
+
return TorrowItemTypeValueList.includes(value);
|
|
2379
|
+
}
|
|
2380
|
+
function getTorrowItemDomain(itemType) {
|
|
2381
|
+
return TorrowItemDefinitions[itemType].domain;
|
|
2382
|
+
}
|
|
2383
|
+
|
|
2384
|
+
// ../../src/resources/common/item-type-resolver.ts
|
|
2385
|
+
function getTorrowItemTypeFromTorrowId(torrowId) {
|
|
2386
|
+
const objectType = getTorrowObjectTypeFromTorrowId(torrowId);
|
|
2387
|
+
if (!isTorrowItemType(objectType)) {
|
|
2388
|
+
throw new TorrowIdError(
|
|
2389
|
+
"unsupported-item-type",
|
|
2390
|
+
`Torrow object type ${objectType} is not an item type`
|
|
2391
|
+
);
|
|
1700
2392
|
}
|
|
1701
|
-
|
|
1702
|
-
|
|
1703
|
-
|
|
2393
|
+
return objectType;
|
|
2394
|
+
}
|
|
2395
|
+
function getTorrowItemTypeFromTorrowIds(torrowIds) {
|
|
2396
|
+
const firstId = torrowIds[0];
|
|
2397
|
+
if (firstId === void 0) {
|
|
2398
|
+
throw new TorrowIdError("empty-id-list", "Torrow ID list must not be empty");
|
|
2399
|
+
}
|
|
2400
|
+
const itemType = getTorrowItemTypeFromTorrowId(firstId);
|
|
2401
|
+
for (const torrowId of torrowIds.slice(1)) {
|
|
2402
|
+
if (getTorrowItemTypeFromTorrowId(torrowId) !== itemType) {
|
|
2403
|
+
throw new TorrowIdError(
|
|
2404
|
+
"mixed-item-types",
|
|
2405
|
+
"All Torrow IDs must have the same item type"
|
|
2406
|
+
);
|
|
2407
|
+
}
|
|
2408
|
+
}
|
|
2409
|
+
return itemType;
|
|
2410
|
+
}
|
|
2411
|
+
function getTorrowItemDomainFromTorrowId(torrowId) {
|
|
2412
|
+
return getTorrowItemDomain(getTorrowItemTypeFromTorrowId(torrowId));
|
|
2413
|
+
}
|
|
2414
|
+
function getTorrowItemDomainFromTorrowIds(torrowIds) {
|
|
2415
|
+
return getTorrowItemDomain(getTorrowItemTypeFromTorrowIds(torrowIds));
|
|
2416
|
+
}
|
|
2417
|
+
|
|
2418
|
+
// ../../src/resources/relations/RelationsFacade.ts
|
|
2419
|
+
var RelationsFacade = class {
|
|
2420
|
+
constructor(http) {
|
|
2421
|
+
this.http = http;
|
|
2422
|
+
}
|
|
2423
|
+
http;
|
|
2424
|
+
base(domain) {
|
|
2425
|
+
return `/api/v1/${domain}`;
|
|
1704
2426
|
}
|
|
1705
|
-
/** `PUT /api/v1/{domain}/{parentId}/include/items` — привязать дочерние
|
|
1706
|
-
includeToParent(
|
|
2427
|
+
/** `PUT /api/v1/{domain}/{parentId}/include/items` — **Pinned link**: привязать дочерние к родителю (`LinkType.Pinned`). Передай массив `itemPropertiesList`; технические параметры — в options. */
|
|
2428
|
+
includeToParent(parentId, itemPropertiesList, options) {
|
|
2429
|
+
const domain = getTorrowItemDomainFromTorrowId(parentId);
|
|
1707
2430
|
return this.http.requestJson({
|
|
1708
2431
|
method: "PUT",
|
|
1709
2432
|
path: `${this.base(domain)}/${encodePathSegment(parentId)}/include/items`,
|
|
1710
|
-
body
|
|
2433
|
+
body: {
|
|
2434
|
+
itemPropertiesList: [...itemPropertiesList],
|
|
2435
|
+
versionToCheck: options?.versionToCheck,
|
|
2436
|
+
isNeedAnnouncement: options?.isNeedAnnouncement
|
|
2437
|
+
},
|
|
1711
2438
|
signal: options?.signal
|
|
1712
2439
|
});
|
|
1713
2440
|
}
|
|
1714
|
-
/**
|
|
1715
|
-
|
|
2441
|
+
/**
|
|
2442
|
+
* `PUT /api/v1/{domain}/{parentId}/include/foruser` — массово добавить несколько дочерних item'ов
|
|
2443
|
+
* в личную структуру пользователя под указанным родителем (`LinkType.User`).
|
|
2444
|
+
* Это batch-операция: `parentId` задаётся в path, а дочерние item'ы передаются
|
|
2445
|
+
* первым аргументом как `itemPropertiesList` (`itemId`, опционально `order`).
|
|
2446
|
+
* Канон torrow-apps для сохранения одного item — {@link saveToMindMap}, не этот метод.
|
|
2447
|
+
*/
|
|
2448
|
+
includeForUser(parentId, itemPropertiesList, options) {
|
|
2449
|
+
const domain = getTorrowItemDomainFromTorrowId(parentId);
|
|
1716
2450
|
return this.http.requestJson({
|
|
1717
2451
|
method: "PUT",
|
|
1718
2452
|
path: `${this.base(domain)}/${encodePathSegment(parentId)}/include/foruser`,
|
|
1719
|
-
body
|
|
2453
|
+
body: {
|
|
2454
|
+
itemPropertiesList: [...itemPropertiesList],
|
|
2455
|
+
versionToCheck: options?.versionToCheck,
|
|
2456
|
+
isNeedAnnouncement: options?.isNeedAnnouncement
|
|
2457
|
+
},
|
|
1720
2458
|
signal: options?.signal
|
|
1721
2459
|
});
|
|
1722
2460
|
}
|
|
1723
|
-
/**
|
|
1724
|
-
|
|
2461
|
+
/**
|
|
2462
|
+
* `PUT /api/v1/{domain}/{parentId}/exclude/items` — убрать дочерние элементы из родителя.
|
|
2463
|
+
* `childIds` — явный список дочерних item ID; снимается **Pinned** link
|
|
2464
|
+
* (`LinkType.Pinned`). См. class bullets и `docs/agents/relations-flow.md`.
|
|
2465
|
+
*/
|
|
2466
|
+
excludeFromParent(parentId, childIds, options) {
|
|
2467
|
+
const domain = getTorrowItemDomainFromTorrowId(parentId);
|
|
1725
2468
|
return this.http.requestJson({
|
|
1726
2469
|
method: "PUT",
|
|
1727
2470
|
path: `${this.base(domain)}/${encodePathSegment(parentId)}/exclude/items`,
|
|
1728
|
-
body
|
|
2471
|
+
body: {
|
|
2472
|
+
itemIds: [...childIds],
|
|
2473
|
+
versionToCheck: options?.versionToCheck,
|
|
2474
|
+
isNeedAnnouncement: options?.isNeedAnnouncement
|
|
2475
|
+
},
|
|
1729
2476
|
signal: options?.signal
|
|
1730
2477
|
});
|
|
1731
2478
|
}
|
|
1732
|
-
/**
|
|
1733
|
-
|
|
2479
|
+
/**
|
|
2480
|
+
* `PUT /api/v1/{domain}/{parentId}/exclude/fromuser` — убрать дочерние элементы
|
|
2481
|
+
* из персонального mind map пользователя. `childIds` — явный список дочерних
|
|
2482
|
+
* item ID; снимается **User** link (`LinkType.User`). См. class bullets и
|
|
2483
|
+
* `docs/agents/relations-flow.md`.
|
|
2484
|
+
*/
|
|
2485
|
+
excludeFromUser(parentId, childIds, options) {
|
|
2486
|
+
const domain = getTorrowItemDomainFromTorrowId(parentId);
|
|
1734
2487
|
return this.http.requestJson({
|
|
1735
2488
|
method: "PUT",
|
|
1736
2489
|
path: `${this.base(domain)}/${encodePathSegment(parentId)}/exclude/fromuser`,
|
|
1737
|
-
body
|
|
2490
|
+
body: {
|
|
2491
|
+
itemIds: [...childIds],
|
|
2492
|
+
versionToCheck: options?.versionToCheck,
|
|
2493
|
+
isNeedAnnouncement: options?.isNeedAnnouncement
|
|
2494
|
+
},
|
|
1738
2495
|
signal: options?.signal
|
|
1739
2496
|
});
|
|
1740
2497
|
}
|
|
1741
2498
|
/** `PUT /api/v1/{domain}/include/togroups` — включить элементы в несколько групп. */
|
|
1742
|
-
includeToGroups(
|
|
2499
|
+
includeToGroups(body, options) {
|
|
2500
|
+
const domain = getTorrowItemDomainFromTorrowIds(body.groupIds);
|
|
1743
2501
|
return this.http.requestJson({
|
|
1744
2502
|
method: "PUT",
|
|
1745
2503
|
path: `${this.base(domain)}/include/togroups`,
|
|
@@ -1748,7 +2506,8 @@ var RelationsFacade = class {
|
|
|
1748
2506
|
});
|
|
1749
2507
|
}
|
|
1750
2508
|
/** `PUT /api/v1/{domain}/exclude/fromgroups` — исключить элементы из групп. */
|
|
1751
|
-
excludeFromGroups(
|
|
2509
|
+
excludeFromGroups(body, options) {
|
|
2510
|
+
const domain = getTorrowItemDomainFromTorrowIds(body.itemIds);
|
|
1752
2511
|
return this.http.requestJson({
|
|
1753
2512
|
method: "PUT",
|
|
1754
2513
|
path: `${this.base(domain)}/exclude/fromgroups`,
|
|
@@ -1756,8 +2515,14 @@ var RelationsFacade = class {
|
|
|
1756
2515
|
signal: options?.signal
|
|
1757
2516
|
});
|
|
1758
2517
|
}
|
|
1759
|
-
/**
|
|
1760
|
-
|
|
2518
|
+
/**
|
|
2519
|
+
* `PUT /api/v1/{domain}/{itemId}/savetomindmap` — сохранить **один item** в личную
|
|
2520
|
+
* структуру пользователя (`LinkType.User`), опционально вложив его в `body.parentItemId`.
|
|
2521
|
+
* `itemId` задаётся в path; это не batch-операция. Канон apps: `userProfileId`, `offlinable: true`.
|
|
2522
|
+
* Не путать с participation accept на item-фасаде — см. `docs/agents/relations-flow.md` vs `participation-flow.md`.
|
|
2523
|
+
*/
|
|
2524
|
+
saveToMindMap(itemId, body, options) {
|
|
2525
|
+
const domain = getTorrowItemDomainFromTorrowId(itemId);
|
|
1761
2526
|
return this.http.requestJson({
|
|
1762
2527
|
method: "PUT",
|
|
1763
2528
|
path: `${this.base(domain)}/${encodePathSegment(itemId)}/savetomindmap`,
|
|
@@ -2044,10 +2809,10 @@ function mergeServiceImplicitTags(baseTags, params, options) {
|
|
|
2044
2809
|
function parseResourceBehaviorSettings(tags) {
|
|
2045
2810
|
const parsed = parseServiceImplicitTagParams(tags);
|
|
2046
2811
|
const lockId = toPositiveInt(firstPrefixBySuffix(tags ?? [], SERVICE_IMPLICIT_TAG_SUFFIX.lockId));
|
|
2047
|
-
|
|
2048
|
-
|
|
2049
|
-
|
|
2050
|
-
|
|
2812
|
+
const result = {};
|
|
2813
|
+
if (parsed.marginTimeSec !== void 0) result.marginTimeSec = parsed.marginTimeSec;
|
|
2814
|
+
if (lockId !== void 0) result.lockId = lockId;
|
|
2815
|
+
return result;
|
|
2051
2816
|
}
|
|
2052
2817
|
function mergeResourceBehaviorTags(baseTags, settings) {
|
|
2053
2818
|
const safeBase = baseTags ?? [];
|
|
@@ -2064,12 +2829,27 @@ function mergeResourceBehaviorTags(baseTags, settings) {
|
|
|
2064
2829
|
return [...nonManaged, ...managed];
|
|
2065
2830
|
}
|
|
2066
2831
|
|
|
2832
|
+
// ../../src/resources/resources/types.ts
|
|
2833
|
+
var UsageTypeValues = {
|
|
2834
|
+
Unknown: "UnknownUsageType",
|
|
2835
|
+
Specification: "Specification",
|
|
2836
|
+
Rent: "Rent",
|
|
2837
|
+
Sale: "Sale",
|
|
2838
|
+
Payment: "Payment",
|
|
2839
|
+
Ticket: "Ticket"
|
|
2840
|
+
};
|
|
2841
|
+
|
|
2067
2842
|
// ../../src/resources/resources/ResourcesFacade.ts
|
|
2068
2843
|
var BASE6 = "/api/v1/resources";
|
|
2069
2844
|
var ResourcesFacade = class extends TorrowItemFacade {
|
|
2845
|
+
itemObjectTypeCode = TorrowObjectTypeCode.Resource;
|
|
2070
2846
|
constructor(http) {
|
|
2071
2847
|
super(http, BASE6, { imagePutUrlSecurityToken: false, withPhotoEndpoints: false });
|
|
2072
2848
|
}
|
|
2849
|
+
/** Id ресурса до `create` / presigned upload. */
|
|
2850
|
+
generateResourceId(ownerTorrowId) {
|
|
2851
|
+
return this.generateItemId(ownerTorrowId);
|
|
2852
|
+
}
|
|
2073
2853
|
toSdkResourceItem(item) {
|
|
2074
2854
|
return {
|
|
2075
2855
|
...item,
|
|
@@ -2077,7 +2857,8 @@ var ResourcesFacade = class extends TorrowItemFacade {
|
|
|
2077
2857
|
};
|
|
2078
2858
|
}
|
|
2079
2859
|
toApiResourceItem(item) {
|
|
2080
|
-
const { behaviorSettings, ...
|
|
2860
|
+
const { behaviorSettings, ...rest } = item;
|
|
2861
|
+
const apiBase = rest;
|
|
2081
2862
|
const nextTags = behaviorSettings ? mergeResourceBehaviorTags(apiBase.tags, behaviorSettings) : apiBase.tags;
|
|
2082
2863
|
return {
|
|
2083
2864
|
...apiBase,
|
|
@@ -2086,6 +2867,7 @@ var ResourcesFacade = class extends TorrowItemFacade {
|
|
|
2086
2867
|
}
|
|
2087
2868
|
/** `POST /api/v1/resources` */
|
|
2088
2869
|
create(body, options) {
|
|
2870
|
+
const payload = this.withCreateDefaults(body);
|
|
2089
2871
|
return this.http.requestJson({
|
|
2090
2872
|
method: "POST",
|
|
2091
2873
|
path: BASE6,
|
|
@@ -2093,7 +2875,7 @@ var ResourcesFacade = class extends TorrowItemFacade {
|
|
|
2093
2875
|
parentId: options?.parentId,
|
|
2094
2876
|
profileId: options?.profileId
|
|
2095
2877
|
},
|
|
2096
|
-
body: this.toApiResourceItem(
|
|
2878
|
+
body: this.toApiResourceItem(payload),
|
|
2097
2879
|
signal: options?.signal
|
|
2098
2880
|
}).then((item) => this.toSdkResourceItem(item));
|
|
2099
2881
|
}
|
|
@@ -2111,9 +2893,16 @@ var ResourcesFacade = class extends TorrowItemFacade {
|
|
|
2111
2893
|
signal: options?.signal
|
|
2112
2894
|
}).then((item) => this.toSdkResourceItem(item));
|
|
2113
2895
|
}
|
|
2896
|
+
withCreateDefaults(body) {
|
|
2897
|
+
const payload = applyItemCreateDefaults(body, "ResourceItem" /* ResourceItem */);
|
|
2898
|
+
return {
|
|
2899
|
+
...payload,
|
|
2900
|
+
usageType: payload.usageType ?? UsageTypeValues.Specification
|
|
2901
|
+
};
|
|
2902
|
+
}
|
|
2114
2903
|
/** `DELETE /api/v1/resources/{torrowId}` */
|
|
2115
|
-
delete(torrowId, options) {
|
|
2116
|
-
|
|
2904
|
+
async delete(torrowId, options) {
|
|
2905
|
+
const resp = await this.http.requestJson({
|
|
2117
2906
|
method: "DELETE",
|
|
2118
2907
|
path: `${BASE6}/${encodePathSegment(torrowId)}`,
|
|
2119
2908
|
query: {
|
|
@@ -2124,6 +2913,7 @@ var ResourcesFacade = class extends TorrowItemFacade {
|
|
|
2124
2913
|
},
|
|
2125
2914
|
signal: options.signal
|
|
2126
2915
|
});
|
|
2916
|
+
return unwrapDeleteCount(resp);
|
|
2127
2917
|
}
|
|
2128
2918
|
/** `GET /api/v1/resources/{torrowId}` */
|
|
2129
2919
|
getById(torrowId, options) {
|
|
@@ -2162,14 +2952,20 @@ var ResourcesFacade = class extends TorrowItemFacade {
|
|
|
2162
2952
|
...this.getBehaviorSettingsFromResource(resource),
|
|
2163
2953
|
...settingsPatch
|
|
2164
2954
|
} : { ...settingsPatch };
|
|
2165
|
-
resource.
|
|
2166
|
-
|
|
2167
|
-
|
|
2168
|
-
profileId: options?.profileId,
|
|
2169
|
-
checkVersion: options?.checkVersion,
|
|
2955
|
+
const nextTags = mergeResourceBehaviorTags(resource.tags, nextSettings);
|
|
2956
|
+
await this.updateTags(resourceId, nextTags, {
|
|
2957
|
+
versionToCheck: options?.checkVersion ? resource.meta?.version ?? void 0 : void 0,
|
|
2170
2958
|
isNeedAnnouncement: options?.isNeedAnnouncement,
|
|
2171
2959
|
signal: options?.signal
|
|
2172
2960
|
});
|
|
2961
|
+
return this.getById(resourceId, {
|
|
2962
|
+
includeDeleted: options?.includeDeleted,
|
|
2963
|
+
isNeedItem: options?.isNeedItem,
|
|
2964
|
+
isNeedParentResource: options?.isNeedParentResource,
|
|
2965
|
+
includeChildTypes: options?.includeChildTypes,
|
|
2966
|
+
securityToken: options?.securityToken,
|
|
2967
|
+
signal: options?.signal
|
|
2968
|
+
});
|
|
2173
2969
|
}
|
|
2174
2970
|
setBehaviorSettings(resourceId, settings, options) {
|
|
2175
2971
|
return this.updateBehaviorSettings(resourceId, settings, {
|
|
@@ -2235,22 +3031,28 @@ var ResourcesFacade = class extends TorrowItemFacade {
|
|
|
2235
3031
|
});
|
|
2236
3032
|
}
|
|
2237
3033
|
/** `POST /api/v1/resources/timetable/statistics`. */
|
|
2238
|
-
getTimetableStatistics(body, options) {
|
|
2239
|
-
|
|
3034
|
+
async getTimetableStatistics(body, options) {
|
|
3035
|
+
const resp = await this.http.requestJson({
|
|
2240
3036
|
method: "POST",
|
|
2241
3037
|
path: `${BASE6}/timetable/statistics`,
|
|
2242
3038
|
body,
|
|
2243
3039
|
signal: options?.signal
|
|
2244
3040
|
});
|
|
3041
|
+
return unwrapTimetableStatisticsList(resp);
|
|
2245
3042
|
}
|
|
2246
3043
|
};
|
|
2247
3044
|
|
|
2248
3045
|
// ../../src/resources/services/ServicesFacade.ts
|
|
2249
3046
|
var BASE7 = "/api/v1/services";
|
|
2250
3047
|
var ServicesFacade = class extends TorrowItemFacade {
|
|
3048
|
+
itemObjectTypeCode = TorrowObjectTypeCode.Service;
|
|
2251
3049
|
constructor(http) {
|
|
2252
3050
|
super(http, BASE7, { imagePutUrlSecurityToken: false, withPhotoEndpoints: false });
|
|
2253
3051
|
}
|
|
3052
|
+
/** Id услуги до `create` / presigned upload. */
|
|
3053
|
+
generateServiceId(ownerTorrowId) {
|
|
3054
|
+
return this.generateItemId(ownerTorrowId);
|
|
3055
|
+
}
|
|
2254
3056
|
toSdkServiceItem(service) {
|
|
2255
3057
|
return {
|
|
2256
3058
|
...service,
|
|
@@ -2258,7 +3060,8 @@ var ServicesFacade = class extends TorrowItemFacade {
|
|
|
2258
3060
|
};
|
|
2259
3061
|
}
|
|
2260
3062
|
toApiServiceItem(service) {
|
|
2261
|
-
const { behaviorSettings, ...
|
|
3063
|
+
const { behaviorSettings, ...rest } = service;
|
|
3064
|
+
const apiBase = rest;
|
|
2262
3065
|
const nextTags = behaviorSettings ? mergeServiceImplicitTags(apiBase.tags, behaviorSettings) : apiBase.tags;
|
|
2263
3066
|
return {
|
|
2264
3067
|
...apiBase,
|
|
@@ -2267,6 +3070,7 @@ var ServicesFacade = class extends TorrowItemFacade {
|
|
|
2267
3070
|
}
|
|
2268
3071
|
/** `POST /api/v1/services` */
|
|
2269
3072
|
create(body, options) {
|
|
3073
|
+
const payload = applyItemCreateDefaults(body, "ServiceItem" /* ServiceItem */);
|
|
2270
3074
|
return this.http.requestJson({
|
|
2271
3075
|
method: "POST",
|
|
2272
3076
|
path: BASE7,
|
|
@@ -2274,7 +3078,7 @@ var ServicesFacade = class extends TorrowItemFacade {
|
|
|
2274
3078
|
parentId: options?.parentId,
|
|
2275
3079
|
profileId: options?.profileId
|
|
2276
3080
|
},
|
|
2277
|
-
body: this.toApiServiceItem(
|
|
3081
|
+
body: this.toApiServiceItem(payload),
|
|
2278
3082
|
signal: options?.signal
|
|
2279
3083
|
}).then((item) => this.toSdkServiceItem(item));
|
|
2280
3084
|
}
|
|
@@ -2293,8 +3097,8 @@ var ServicesFacade = class extends TorrowItemFacade {
|
|
|
2293
3097
|
}).then((item) => this.toSdkServiceItem(item));
|
|
2294
3098
|
}
|
|
2295
3099
|
/** `DELETE /api/v1/services/{torrowId}` */
|
|
2296
|
-
delete(torrowId, options) {
|
|
2297
|
-
|
|
3100
|
+
async delete(torrowId, options) {
|
|
3101
|
+
const resp = await this.http.requestJson({
|
|
2298
3102
|
method: "DELETE",
|
|
2299
3103
|
path: `${BASE7}/${encodePathSegment(torrowId)}`,
|
|
2300
3104
|
query: {
|
|
@@ -2305,6 +3109,7 @@ var ServicesFacade = class extends TorrowItemFacade {
|
|
|
2305
3109
|
},
|
|
2306
3110
|
signal: options.signal
|
|
2307
3111
|
});
|
|
3112
|
+
return unwrapDeleteCount(resp);
|
|
2308
3113
|
}
|
|
2309
3114
|
/** `GET /api/v1/services/{torrowId}` */
|
|
2310
3115
|
getById(torrowId, options) {
|
|
@@ -2334,6 +3139,9 @@ var ServicesFacade = class extends TorrowItemFacade {
|
|
|
2334
3139
|
/**
|
|
2335
3140
|
* Обновляет настройки поведения услуги через типизированную структуру.
|
|
2336
3141
|
* `mergeParameters=true` по умолчанию: patch поверх текущих settings.
|
|
3142
|
+
*
|
|
3143
|
+
* Персист только через **`PUT .../services/{id}/tags`**: поле `tags` в теле `PUT /services/{id}`
|
|
3144
|
+
* сервер игнорирует (`tags` в `TorrowItemKeysExcludedFromItemWriteBody`).
|
|
2337
3145
|
*/
|
|
2338
3146
|
async updateBehaviorSettings(serviceId, settingsPatch, options) {
|
|
2339
3147
|
const service = await this.getById(serviceId, {
|
|
@@ -2348,14 +3156,19 @@ var ServicesFacade = class extends TorrowItemFacade {
|
|
|
2348
3156
|
...this.getBehaviorSettingsFromService(service),
|
|
2349
3157
|
...settingsPatch
|
|
2350
3158
|
} : { ...settingsPatch };
|
|
2351
|
-
service.
|
|
2352
|
-
|
|
2353
|
-
|
|
2354
|
-
profileId: options?.profileId,
|
|
2355
|
-
checkVersion: options?.checkVersion,
|
|
3159
|
+
const nextTags = mergeServiceImplicitTags(service.tags, nextSettings);
|
|
3160
|
+
await this.updateTags(serviceId, nextTags, {
|
|
3161
|
+
versionToCheck: options?.checkVersion ? service.meta?.version ?? void 0 : void 0,
|
|
2356
3162
|
isNeedAnnouncement: options?.isNeedAnnouncement,
|
|
2357
3163
|
signal: options?.signal
|
|
2358
3164
|
});
|
|
3165
|
+
return this.getById(serviceId, {
|
|
3166
|
+
profileId: options?.profileId,
|
|
3167
|
+
includeDeleted: options?.includeDeleted,
|
|
3168
|
+
includeChildTypes: options?.includeChildTypes,
|
|
3169
|
+
securityToken: options?.securityToken,
|
|
3170
|
+
signal: options?.signal
|
|
3171
|
+
});
|
|
2359
3172
|
}
|
|
2360
3173
|
/** Полная установка `ServiceBehaviorSettings` (без merge c текущими параметрами). */
|
|
2361
3174
|
setBehaviorSettings(serviceId, settings, options) {
|
|
@@ -2405,13 +3218,14 @@ var ServicesFacade = class extends TorrowItemFacade {
|
|
|
2405
3218
|
});
|
|
2406
3219
|
}
|
|
2407
3220
|
/** Агрегаты по расписанию услуги — `POST /api/v1/services/timetable/statistics`. */
|
|
2408
|
-
getTimetableStatistics(body, options) {
|
|
2409
|
-
|
|
3221
|
+
async getTimetableStatistics(body, options) {
|
|
3222
|
+
const resp = await this.http.requestJson({
|
|
2410
3223
|
method: "POST",
|
|
2411
3224
|
path: `${BASE7}/timetable/statistics`,
|
|
2412
3225
|
body,
|
|
2413
3226
|
signal: options?.signal
|
|
2414
3227
|
});
|
|
3228
|
+
return unwrapTimetableStatisticsList(resp);
|
|
2415
3229
|
}
|
|
2416
3230
|
/** Доступные окна чекина — `POST /api/v1/services/{id}/checkinschedule`. */
|
|
2417
3231
|
getCheckInSchedule(serviceId, body, options) {
|
|
@@ -2520,14 +3334,23 @@ var ServicesFacade = class extends TorrowItemFacade {
|
|
|
2520
3334
|
};
|
|
2521
3335
|
|
|
2522
3336
|
// ../../src/resources/auth/AuthFacade.ts
|
|
3337
|
+
import { Buffer } from "buffer";
|
|
2523
3338
|
var BASE8 = "/api/v1/auth";
|
|
3339
|
+
function authFacadeDefaultHeaders(config) {
|
|
3340
|
+
const merged = { ...config.defaultHeaders ?? {} };
|
|
3341
|
+
const basic = config.authIdentityBasic;
|
|
3342
|
+
if (basic?.username && basic.password !== void 0 && basic.password !== "") {
|
|
3343
|
+
merged.Authorization = `Basic ${Buffer.from(`${basic.username}:${basic.password}`, "utf8").toString("base64")}`;
|
|
3344
|
+
}
|
|
3345
|
+
return Object.keys(merged).length > 0 ? merged : void 0;
|
|
3346
|
+
}
|
|
2524
3347
|
var AuthFacade = class {
|
|
2525
3348
|
anonHttp;
|
|
2526
3349
|
constructor(config) {
|
|
2527
3350
|
this.anonHttp = new HttpClient({
|
|
2528
3351
|
baseUrl: config.baseUrl,
|
|
2529
3352
|
fetch: config.fetch,
|
|
2530
|
-
defaultHeaders: config
|
|
3353
|
+
defaultHeaders: authFacadeDefaultHeaders(config),
|
|
2531
3354
|
userAgent: config.userAgent
|
|
2532
3355
|
});
|
|
2533
3356
|
}
|
|
@@ -2540,7 +3363,7 @@ var AuthFacade = class {
|
|
|
2540
3363
|
signal: options?.signal
|
|
2541
3364
|
});
|
|
2542
3365
|
}
|
|
2543
|
-
/** `POST /api/v1/auth/token` — обмен `sessionId` / `code` (и др.) на `TokenResp
|
|
3366
|
+
/** `POST /api/v1/auth/token` — обмен `sessionId` / `code` (и др.) на `TokenResp` (смотри `status`). */
|
|
2544
3367
|
requestToken(body, options) {
|
|
2545
3368
|
return this.anonHttp.requestJson({
|
|
2546
3369
|
method: "POST",
|
|
@@ -2558,7 +3381,7 @@ var AuthFacade = class {
|
|
|
2558
3381
|
signal: options?.signal
|
|
2559
3382
|
});
|
|
2560
3383
|
}
|
|
2561
|
-
/** `POST /api/v1/auth/sendcode` — отправка кода входа; ответ `SendCodeResp
|
|
3384
|
+
/** `POST /api/v1/auth/sendcode` — отправка кода входа; ответ `SendCodeResp` (`usedMethod`, `codeLength`, …). */
|
|
2562
3385
|
sendCode(body, options) {
|
|
2563
3386
|
return this.anonHttp.requestJson({
|
|
2564
3387
|
method: "POST",
|
|
@@ -2578,6 +3401,31 @@ var AuthFacade = class {
|
|
|
2578
3401
|
}
|
|
2579
3402
|
};
|
|
2580
3403
|
|
|
3404
|
+
// ../../src/resources/user-profiles/user-profile-write-defaults.ts
|
|
3405
|
+
function trimNonEmptyString2(value) {
|
|
3406
|
+
if (typeof value !== "string") return void 0;
|
|
3407
|
+
const trimmed = value.trim();
|
|
3408
|
+
return trimmed === "" ? void 0 : trimmed;
|
|
3409
|
+
}
|
|
3410
|
+
function ensureContactNameForProfileWrite(body) {
|
|
3411
|
+
if (trimNonEmptyString2(body.name) !== void 0) {
|
|
3412
|
+
return;
|
|
3413
|
+
}
|
|
3414
|
+
const fromParts = [body.lastName, body.firstName, body.middleName].map((p) => typeof p === "string" ? p.trim() : "").filter(Boolean).join(" ");
|
|
3415
|
+
body.name = fromParts || trimNonEmptyString2(body.company) || "Profile";
|
|
3416
|
+
}
|
|
3417
|
+
function prepareUserProfileItemForAdd(body) {
|
|
3418
|
+
const payload = applyItemCreateDefaults(
|
|
3419
|
+
body,
|
|
3420
|
+
"ContactItem" /* ContactItem */
|
|
3421
|
+
);
|
|
3422
|
+
ensureContactNameForProfileWrite(payload);
|
|
3423
|
+
normalizeContactStructuredArrayRidsForWrite(payload);
|
|
3424
|
+
normalizeContactCommunicationsForWrite(payload);
|
|
3425
|
+
normalizeContactVisitCardFieldsForWrite(payload);
|
|
3426
|
+
return payload;
|
|
3427
|
+
}
|
|
3428
|
+
|
|
2581
3429
|
// ../../src/resources/user-profiles/ProfilesFacade.ts
|
|
2582
3430
|
var BASE9 = "/api/v1/user/profiles";
|
|
2583
3431
|
var ProfilesFacade = class {
|
|
@@ -2585,191 +3433,311 @@ var ProfilesFacade = class {
|
|
|
2585
3433
|
this.http = http;
|
|
2586
3434
|
}
|
|
2587
3435
|
http;
|
|
2588
|
-
/**
|
|
2589
|
-
|
|
2590
|
-
|
|
3436
|
+
/**
|
|
3437
|
+
* `GET /api/v1/user/profiles` — список Профилей текущего пользователя.
|
|
3438
|
+
* Возвращает **`profileList`** из ответа API (пустой массив, если поля нет или **`null`**).
|
|
3439
|
+
* @throws Если тело ответа не объект или **`profileList`** не массив при наличии поля.
|
|
3440
|
+
*/
|
|
3441
|
+
async list(options) {
|
|
3442
|
+
const resp = await this.http.requestJson({ method: "GET", path: BASE9, signal: options?.signal });
|
|
3443
|
+
if (resp === null || typeof resp !== "object") {
|
|
3444
|
+
throw new Error("GET /api/v1/user/profiles: expected a JSON object body");
|
|
3445
|
+
}
|
|
3446
|
+
const pl = resp.profileList;
|
|
3447
|
+
if (pl === void 0 || pl === null) return [];
|
|
3448
|
+
if (!Array.isArray(pl)) {
|
|
3449
|
+
throw new Error("GET /api/v1/user/profiles: profileList must be an array when present");
|
|
3450
|
+
}
|
|
3451
|
+
return pl;
|
|
2591
3452
|
}
|
|
2592
3453
|
/**
|
|
2593
|
-
* `POST /api/v1/user/profiles` — создать Профиль по телу
|
|
2594
|
-
*
|
|
3454
|
+
* `POST /api/v1/user/profiles` — создать Профиль по телу **`UserProfileItemForAdd`** (контакт для write + поля Профиля).
|
|
3455
|
+
* Тело перед POST проходит через {@link prepareUserProfileItemForAdd}.
|
|
3456
|
+
* Возвращает созданный **`ContactItem`** (`AddProfileResp.profile`).
|
|
2595
3457
|
*/
|
|
2596
|
-
add(body, options) {
|
|
2597
|
-
|
|
3458
|
+
async add(body, options) {
|
|
3459
|
+
const payload = prepareUserProfileItemForAdd(body);
|
|
3460
|
+
const resp = await this.http.requestJson({
|
|
3461
|
+
method: "POST",
|
|
3462
|
+
path: BASE9,
|
|
3463
|
+
body: payload,
|
|
3464
|
+
signal: options?.signal
|
|
3465
|
+
});
|
|
3466
|
+
return unwrapAddProfileContact(resp);
|
|
2598
3467
|
}
|
|
2599
3468
|
/**
|
|
2600
3469
|
* `PUT /api/v1/user/profiles` — в OpenAPI тело **JSON-строка** (id существующего контакта), не объект.
|
|
2601
|
-
* Добавляет этот контакт как
|
|
3470
|
+
* Добавляет этот контакт как Профиль; возвращает **`ContactItem`** (`AddProfileResp.profile`).
|
|
2602
3471
|
*/
|
|
2603
|
-
addByContactId(contactId, options) {
|
|
2604
|
-
|
|
3472
|
+
async addByContactId(contactId, options) {
|
|
3473
|
+
const resp = await this.http.requestJson({
|
|
3474
|
+
method: "PUT",
|
|
3475
|
+
path: BASE9,
|
|
3476
|
+
body: contactId,
|
|
3477
|
+
signal: options?.signal
|
|
3478
|
+
});
|
|
3479
|
+
return unwrapAddProfileContact(resp);
|
|
2605
3480
|
}
|
|
2606
3481
|
/**
|
|
2607
3482
|
* `PUT /api/v1/user/profiles/{profileId}/profileproperties` — обновить расширенные свойства Профиля
|
|
2608
3483
|
* (цвет, доступность и т.д., см. тип `ProfileProperties`).
|
|
3484
|
+
* Возвращает **`torrowObject`** из ответа (если сервер его прислал).
|
|
2609
3485
|
*/
|
|
2610
|
-
updateProfileProperties(profileId, body, options) {
|
|
2611
|
-
|
|
3486
|
+
async updateProfileProperties(profileId, body, options) {
|
|
3487
|
+
const resp = await this.http.requestJson({
|
|
2612
3488
|
method: "PUT",
|
|
2613
3489
|
path: `${BASE9}/${encodePathSegment(profileId)}/profileproperties`,
|
|
2614
3490
|
body,
|
|
2615
3491
|
signal: options?.signal
|
|
2616
3492
|
});
|
|
3493
|
+
return unwrapTorrowObjectFromProfilePropertiesUpdate(resp);
|
|
2617
3494
|
}
|
|
2618
|
-
/** `DELETE /api/v1/user/profiles/{profileId}` — удалить
|
|
2619
|
-
remove(profileId, options) {
|
|
2620
|
-
|
|
3495
|
+
/** `DELETE /api/v1/user/profiles/{profileId}` — удалить Профиль; возвращает актуальный **`personalContactList`**. */
|
|
3496
|
+
async remove(profileId, options) {
|
|
3497
|
+
const resp = await this.http.requestJson({
|
|
2621
3498
|
method: "DELETE",
|
|
2622
3499
|
path: `${BASE9}/${encodePathSegment(profileId)}`,
|
|
2623
3500
|
signal: options?.signal
|
|
2624
3501
|
});
|
|
3502
|
+
return unwrapRemoveProfileList(resp);
|
|
2625
3503
|
}
|
|
2626
3504
|
};
|
|
2627
3505
|
|
|
2628
|
-
// ../../src/resources/views/
|
|
2629
|
-
|
|
2630
|
-
|
|
2631
|
-
|
|
2632
|
-
|
|
2633
|
-
|
|
2634
|
-
|
|
2635
|
-
|
|
2636
|
-
|
|
2637
|
-
|
|
2638
|
-
|
|
2639
|
-
}
|
|
2640
|
-
|
|
3506
|
+
// ../../src/resources/views/view-domain-resolver.ts
|
|
3507
|
+
function getCreateViewDomain(childIds) {
|
|
3508
|
+
return getTorrowItemDomainFromTorrowIds(childIds);
|
|
3509
|
+
}
|
|
3510
|
+
function getUpdateViewOrderDomain(orderedViews) {
|
|
3511
|
+
const childIds = orderedViews.flatMap(({ childId }) => childId ? [childId] : []);
|
|
3512
|
+
return getTorrowItemDomainFromTorrowIds(childIds);
|
|
3513
|
+
}
|
|
3514
|
+
|
|
3515
|
+
// ../../src/resources/views/view-paths.ts
|
|
3516
|
+
function viewDomainPath(domain) {
|
|
3517
|
+
return `/api/v1/${domain}`;
|
|
3518
|
+
}
|
|
3519
|
+
function viewParentPath(domain, parentId) {
|
|
3520
|
+
return `${viewDomainPath(domain)}/${encodePathSegment(parentId)}`;
|
|
3521
|
+
}
|
|
3522
|
+
function viewChildPath(domain, parentId, kind, childId) {
|
|
3523
|
+
return `${viewParentPath(domain, parentId)}/views/${kind}/${encodePathSegment(childId)}`;
|
|
3524
|
+
}
|
|
3525
|
+
|
|
3526
|
+
// ../../src/resources/views/PinnedViewsFacade.ts
|
|
3527
|
+
var PinnedViewsFacade = class {
|
|
2641
3528
|
constructor(http) {
|
|
2642
3529
|
this.http = http;
|
|
2643
3530
|
}
|
|
2644
3531
|
http;
|
|
2645
|
-
|
|
2646
|
-
|
|
2647
|
-
|
|
2648
|
-
|
|
2649
|
-
|
|
2650
|
-
|
|
2651
|
-
|
|
2652
|
-
|
|
2653
|
-
|
|
2654
|
-
|
|
2655
|
-
|
|
2656
|
-
listUserForParent(domain, parentId, options) {
|
|
3532
|
+
/**
|
|
3533
|
+
* Возвращает закреплённые представления дочерних элементов одного типа под указанным родителем.
|
|
3534
|
+
*
|
|
3535
|
+
* `childItemType` задаёт `{domain}` и тип элементов в результате. Это тип дочернего
|
|
3536
|
+
* элемента, а не родителя: один `parentId` может содержать представления разных типов,
|
|
3537
|
+
* поэтому вывести этот параметр из `parentId` нельзя.
|
|
3538
|
+
*
|
|
3539
|
+
* @param childItemType Тип дочерних элементов, представления которых нужно получить.
|
|
3540
|
+
* @param parentId ID родительского объекта, под которым размещены элементы.
|
|
3541
|
+
*/
|
|
3542
|
+
listForParent(childItemType, parentId, options) {
|
|
2657
3543
|
const { signal, ...query } = options ?? {};
|
|
3544
|
+
const domain = getTorrowItemDomain(childItemType);
|
|
2658
3545
|
return this.http.requestJson({
|
|
2659
3546
|
method: "GET",
|
|
2660
|
-
path: `${
|
|
3547
|
+
path: `${viewParentPath(domain, parentId)}/views/pinned`,
|
|
2661
3548
|
query: { ...query },
|
|
2662
3549
|
signal
|
|
2663
3550
|
});
|
|
2664
3551
|
}
|
|
2665
|
-
/**
|
|
2666
|
-
|
|
2667
|
-
|
|
3552
|
+
/**
|
|
3553
|
+
* Создаёт закреплённые представления дочерних элементов под родителем.
|
|
3554
|
+
* `{domain}` определяется по `childIds`; все ID должны относиться к одному типу элементов.
|
|
3555
|
+
*/
|
|
3556
|
+
async create(parentId, childIds, options) {
|
|
3557
|
+
const domain = getCreateViewDomain(childIds);
|
|
3558
|
+
const body = { childIdList: [...childIds] };
|
|
3559
|
+
const resp = await this.http.requestJson({
|
|
2668
3560
|
method: "POST",
|
|
2669
|
-
path: `${
|
|
3561
|
+
path: `${viewParentPath(domain, parentId)}/views/pinned`,
|
|
2670
3562
|
body,
|
|
2671
3563
|
signal: options?.signal
|
|
2672
3564
|
});
|
|
3565
|
+
return unwrapCreatedViewInfoList(resp);
|
|
2673
3566
|
}
|
|
2674
|
-
/**
|
|
2675
|
-
|
|
2676
|
-
|
|
2677
|
-
|
|
2678
|
-
|
|
2679
|
-
|
|
2680
|
-
query: { ...query },
|
|
2681
|
-
signal
|
|
2682
|
-
});
|
|
2683
|
-
}
|
|
2684
|
-
/** `GET /api/v1/{domain}/{parentId}/views/user/{childId}` */
|
|
2685
|
-
getUserView(domain, parentId, childId, options) {
|
|
3567
|
+
/**
|
|
3568
|
+
* Возвращает закреплённое представление дочернего элемента.
|
|
3569
|
+
* `{domain}` определяется по `childId`, а не по `parentId`.
|
|
3570
|
+
*/
|
|
3571
|
+
get(parentId, childId, options) {
|
|
3572
|
+
const domain = getTorrowItemDomainFromTorrowId(childId);
|
|
2686
3573
|
return this.http.requestJson({
|
|
2687
3574
|
method: "GET",
|
|
2688
|
-
path:
|
|
3575
|
+
path: viewChildPath(domain, parentId, "pinned", childId),
|
|
2689
3576
|
signal: options?.signal
|
|
2690
3577
|
});
|
|
2691
3578
|
}
|
|
2692
|
-
/**
|
|
2693
|
-
|
|
2694
|
-
|
|
3579
|
+
/**
|
|
3580
|
+
* Удаляет закреплённое представление дочернего элемента.
|
|
3581
|
+
* `{domain}` определяется по `childId`, а не по `parentId`.
|
|
3582
|
+
*/
|
|
3583
|
+
async delete(parentId, childId, options) {
|
|
3584
|
+
const domain = getTorrowItemDomainFromTorrowId(childId);
|
|
3585
|
+
const resp = await this.http.requestJson({
|
|
2695
3586
|
method: "DELETE",
|
|
2696
|
-
path:
|
|
3587
|
+
path: viewChildPath(domain, parentId, "pinned", childId),
|
|
2697
3588
|
signal: options?.signal
|
|
2698
3589
|
});
|
|
3590
|
+
return unwrapDeleteCount(resp);
|
|
2699
3591
|
}
|
|
2700
|
-
/**
|
|
2701
|
-
|
|
2702
|
-
|
|
3592
|
+
/**
|
|
3593
|
+
* Изменяет порядок закреплённых представлений одного типа под родителем.
|
|
3594
|
+
* `{domain}` определяется по `orderedViews[].childId`; все ID должны иметь один тип.
|
|
3595
|
+
*/
|
|
3596
|
+
async updateOrder(parentId, orderedViews, options) {
|
|
3597
|
+
const domain = getUpdateViewOrderDomain(orderedViews);
|
|
3598
|
+
const body = { orderedViewList: [...orderedViews] };
|
|
3599
|
+
const resp = await this.http.requestJson({
|
|
2703
3600
|
method: "POST",
|
|
2704
|
-
path: `${
|
|
3601
|
+
path: `${viewParentPath(domain, parentId)}/views/pinned/updateorder`,
|
|
2705
3602
|
body,
|
|
2706
3603
|
signal: options?.signal
|
|
2707
3604
|
});
|
|
3605
|
+
return unwrapUpdatedViewInfoList(resp);
|
|
3606
|
+
}
|
|
3607
|
+
};
|
|
3608
|
+
|
|
3609
|
+
// ../../src/resources/views/UserViewsFacade.ts
|
|
3610
|
+
var UserViewsFacade = class {
|
|
3611
|
+
constructor(http) {
|
|
3612
|
+
this.http = http;
|
|
2708
3613
|
}
|
|
2709
|
-
|
|
2710
|
-
|
|
3614
|
+
http;
|
|
3615
|
+
/**
|
|
3616
|
+
* Возвращает персональные представления дочерних элементов одного типа под родителем.
|
|
3617
|
+
*
|
|
3618
|
+
* `childItemType` задаёт `{domain}` и тип элементов в результате. Это тип дочернего
|
|
3619
|
+
* элемента, а не родителя: один `parentId` может содержать представления разных типов,
|
|
3620
|
+
* поэтому вывести этот параметр из `parentId` нельзя.
|
|
3621
|
+
*
|
|
3622
|
+
* @param childItemType Тип дочерних элементов, представления которых нужно получить.
|
|
3623
|
+
* @param parentId ID родительского объекта, под которым размещены элементы.
|
|
3624
|
+
*/
|
|
3625
|
+
listForParent(childItemType, parentId, options) {
|
|
2711
3626
|
const { signal, ...query } = options ?? {};
|
|
3627
|
+
const domain = getTorrowItemDomain(childItemType);
|
|
2712
3628
|
return this.http.requestJson({
|
|
2713
3629
|
method: "GET",
|
|
2714
|
-
path: `${
|
|
3630
|
+
path: `${viewParentPath(domain, parentId)}/views/user`,
|
|
2715
3631
|
query: { ...query },
|
|
2716
3632
|
signal
|
|
2717
3633
|
});
|
|
2718
3634
|
}
|
|
2719
|
-
/**
|
|
2720
|
-
|
|
2721
|
-
|
|
2722
|
-
|
|
2723
|
-
|
|
3635
|
+
/**
|
|
3636
|
+
* Создаёт персональные представления дочерних элементов под родителем.
|
|
3637
|
+
* `{domain}` определяется по `childIds`; все ID должны относиться к одному типу элементов.
|
|
3638
|
+
*/
|
|
3639
|
+
async create(parentId, childIds, options) {
|
|
3640
|
+
const domain = getCreateViewDomain(childIds);
|
|
3641
|
+
const body = { childIdList: [...childIds] };
|
|
3642
|
+
const resp = await this.http.requestJson({
|
|
3643
|
+
method: "POST",
|
|
3644
|
+
path: `${viewParentPath(domain, parentId)}/views/user`,
|
|
3645
|
+
body,
|
|
2724
3646
|
signal: options?.signal
|
|
2725
3647
|
});
|
|
3648
|
+
return unwrapCreatedViewInfoList(resp);
|
|
2726
3649
|
}
|
|
2727
|
-
/**
|
|
2728
|
-
|
|
3650
|
+
/**
|
|
3651
|
+
* Возвращает все персональные представления дочерних элементов указанного типа.
|
|
3652
|
+
* `viewItemType` задаёт `{domain}` и тип элементов в результате.
|
|
3653
|
+
*/
|
|
3654
|
+
listAll(viewItemType, options) {
|
|
3655
|
+
const { signal, ...query } = options ?? {};
|
|
3656
|
+
const domain = getTorrowItemDomain(viewItemType);
|
|
2729
3657
|
return this.http.requestJson({
|
|
2730
3658
|
method: "GET",
|
|
2731
|
-
path: `${
|
|
2732
|
-
|
|
3659
|
+
path: `${viewDomainPath(domain)}/views/user`,
|
|
3660
|
+
query: { ...query },
|
|
3661
|
+
signal
|
|
2733
3662
|
});
|
|
2734
3663
|
}
|
|
2735
|
-
/**
|
|
2736
|
-
|
|
3664
|
+
/**
|
|
3665
|
+
* Возвращает персональное представление дочернего элемента.
|
|
3666
|
+
* `{domain}` определяется по `childId`, а не по `parentId`.
|
|
3667
|
+
*/
|
|
3668
|
+
get(parentId, childId, options) {
|
|
3669
|
+
const domain = getTorrowItemDomainFromTorrowId(childId);
|
|
2737
3670
|
return this.http.requestJson({
|
|
2738
|
-
method: "
|
|
2739
|
-
path:
|
|
2740
|
-
body,
|
|
3671
|
+
method: "GET",
|
|
3672
|
+
path: viewChildPath(domain, parentId, "user", childId),
|
|
2741
3673
|
signal: options?.signal
|
|
2742
3674
|
});
|
|
2743
3675
|
}
|
|
2744
|
-
/**
|
|
2745
|
-
|
|
2746
|
-
|
|
3676
|
+
/**
|
|
3677
|
+
* Удаляет персональное представление дочернего элемента.
|
|
3678
|
+
* `{domain}` определяется по `childId`, а не по `parentId`.
|
|
3679
|
+
*/
|
|
3680
|
+
async delete(parentId, childId, options) {
|
|
3681
|
+
const domain = getTorrowItemDomainFromTorrowId(childId);
|
|
3682
|
+
const resp = await this.http.requestJson({
|
|
3683
|
+
method: "DELETE",
|
|
3684
|
+
path: viewChildPath(domain, parentId, "user", childId),
|
|
3685
|
+
signal: options?.signal
|
|
3686
|
+
});
|
|
3687
|
+
return unwrapDeleteCount(resp);
|
|
3688
|
+
}
|
|
3689
|
+
/**
|
|
3690
|
+
* Изменяет порядок персональных представлений одного типа под родителем.
|
|
3691
|
+
* `{domain}` определяется по `orderedViews[].childId`; все ID должны иметь один тип.
|
|
3692
|
+
*/
|
|
3693
|
+
async updateOrder(parentId, orderedViews, options) {
|
|
3694
|
+
const domain = getUpdateViewOrderDomain(orderedViews);
|
|
3695
|
+
const body = { orderedViewList: [...orderedViews] };
|
|
3696
|
+
const resp = await this.http.requestJson({
|
|
2747
3697
|
method: "POST",
|
|
2748
|
-
path: `${
|
|
3698
|
+
path: `${viewParentPath(domain, parentId)}/views/user/updateorder`,
|
|
2749
3699
|
body,
|
|
2750
3700
|
signal: options?.signal
|
|
2751
3701
|
});
|
|
3702
|
+
return unwrapUpdatedViewInfoList(resp);
|
|
3703
|
+
}
|
|
3704
|
+
};
|
|
3705
|
+
|
|
3706
|
+
// ../../src/resources/views/ViewsFacade.ts
|
|
3707
|
+
var ViewsFacade = class {
|
|
3708
|
+
constructor(http) {
|
|
3709
|
+
this.http = http;
|
|
3710
|
+
this.user = new UserViewsFacade(http);
|
|
3711
|
+
this.pinned = new PinnedViewsFacade(http);
|
|
2752
3712
|
}
|
|
2753
|
-
|
|
2754
|
-
|
|
3713
|
+
http;
|
|
3714
|
+
user;
|
|
3715
|
+
pinned;
|
|
3716
|
+
/**
|
|
3717
|
+
* `POST /api/v1/{domain}/{parentId}/views/user/{childId}/pin` — переход **User → Pinned**.
|
|
3718
|
+
* Создание исходной User view: `client.views.user.create` или `client.relations.saveToMindMap`.
|
|
3719
|
+
*/
|
|
3720
|
+
pin(parentId, childId, options) {
|
|
2755
3721
|
const { signal, alias } = options ?? {};
|
|
3722
|
+
const domain = getTorrowItemDomainFromTorrowId(childId);
|
|
2756
3723
|
return this.http.requestJson({
|
|
2757
3724
|
method: "POST",
|
|
2758
|
-
path: `${
|
|
3725
|
+
path: `${viewChildPath(domain, parentId, "user", childId)}/pin`,
|
|
2759
3726
|
query: { alias },
|
|
2760
3727
|
signal
|
|
2761
3728
|
});
|
|
2762
3729
|
}
|
|
2763
3730
|
/**
|
|
2764
|
-
*
|
|
2765
|
-
* Для `contacts`: `POST .../views/pinned/{childId}/unpin`; иначе `POST .../views/user/{childId}/unpin`.
|
|
3731
|
+
* Переход **Pinned → User**. Для `contacts` API использует сегмент `pinned`, для остальных доменов — `user`.
|
|
2766
3732
|
*/
|
|
2767
|
-
|
|
3733
|
+
unpin(parentId, childId, options) {
|
|
2768
3734
|
const { signal, alias } = options ?? {};
|
|
2769
|
-
const
|
|
3735
|
+
const itemType = getTorrowItemTypeFromTorrowId(childId);
|
|
3736
|
+
const domain = getTorrowItemDomain(itemType);
|
|
3737
|
+
const kind = itemType === "Contact" ? "pinned" : "user";
|
|
2770
3738
|
return this.http.requestJson({
|
|
2771
3739
|
method: "POST",
|
|
2772
|
-
path: `${
|
|
3740
|
+
path: `${viewChildPath(domain, parentId, kind, childId)}/unpin`,
|
|
2773
3741
|
query: { alias },
|
|
2774
3742
|
signal
|
|
2775
3743
|
});
|
|
@@ -2783,7 +3751,7 @@ var SearchFacade = class {
|
|
|
2783
3751
|
this.http = http;
|
|
2784
3752
|
}
|
|
2785
3753
|
http;
|
|
2786
|
-
/** `GET /api/v1/search/adviseditems` */
|
|
3754
|
+
/** `GET /api/v1/search/adviseditems` — `NearLocation` (гео) / `Recommendation`. */
|
|
2787
3755
|
advisedItems(query, options) {
|
|
2788
3756
|
return this.http.requestJson({
|
|
2789
3757
|
method: "GET",
|
|
@@ -2794,7 +3762,7 @@ var SearchFacade = class {
|
|
|
2794
3762
|
}
|
|
2795
3763
|
/**
|
|
2796
3764
|
* `PUT /api/v1/search/{torrowId}/orders` — заказы (события-заказы) под элементом с фильтром.
|
|
2797
|
-
* Тело **`OrderFilter`**; см. также **`examples/node/raw/
|
|
3765
|
+
* Тело **`OrderFilter`**; см. также **`examples/node/raw/search-orders-raw.ts`** (сырой `raw.put`).
|
|
2798
3766
|
*/
|
|
2799
3767
|
orders(torrowId, body, query, options) {
|
|
2800
3768
|
return this.http.requestJson({
|
|
@@ -2805,7 +3773,15 @@ var SearchFacade = class {
|
|
|
2805
3773
|
signal: options?.signal
|
|
2806
3774
|
});
|
|
2807
3775
|
}
|
|
2808
|
-
/**
|
|
3776
|
+
/**
|
|
3777
|
+
* `GET /api/v1/search/contacts` — текстовый поиск контактов.
|
|
3778
|
+
* Индексируются только **`PublicAvailable`** / **`PublicWithRequest`** (см. class JSDoc).
|
|
3779
|
+
* **`groupIds`**: ограничить выдачу членами указанных групп (в torrow-apps —
|
|
3780
|
+
* «поиск в группе» / `SearchInGroup`). Канонический способ получить элементы группы;
|
|
3781
|
+
* не путать с `contacts.listGroups` (`GET …/group/list` — группы родителя, доступные для включения дочерних).
|
|
3782
|
+
* После `includeToGroups` / смены publicity индекс асинхронный — в примерах нужна пауза перед вызовом.
|
|
3783
|
+
* Доп. фильтр: **`usersOnly`** (`ContactSearchQuery`).
|
|
3784
|
+
*/
|
|
2809
3785
|
contacts(query, options) {
|
|
2810
3786
|
return this.http.requestJson({
|
|
2811
3787
|
method: "GET",
|
|
@@ -2814,7 +3790,13 @@ var SearchFacade = class {
|
|
|
2814
3790
|
signal: options?.signal
|
|
2815
3791
|
});
|
|
2816
3792
|
}
|
|
2817
|
-
/**
|
|
3793
|
+
/**
|
|
3794
|
+
* `GET /api/v1/search/notes` — текстовый поиск заметок.
|
|
3795
|
+
* **`groupIds`**: ограничить выдачу членами указанных групп (в torrow-apps так устроен
|
|
3796
|
+
* «поиск в группе» / `SearchInGroup`). Это канонический способ получить элементы группы;
|
|
3797
|
+
* не путать с `notes.listGroups` (`GET …/group/list` — группы родителя, доступные для включения дочерних).
|
|
3798
|
+
* После `includeToGroups` индекс асинхронный — в примерах нужна пауза перед вызовом.
|
|
3799
|
+
*/
|
|
2818
3800
|
notes(query, options) {
|
|
2819
3801
|
return this.http.requestJson({
|
|
2820
3802
|
method: "GET",
|
|
@@ -2823,7 +3805,13 @@ var SearchFacade = class {
|
|
|
2823
3805
|
signal: options?.signal
|
|
2824
3806
|
});
|
|
2825
3807
|
}
|
|
2826
|
-
/**
|
|
3808
|
+
/**
|
|
3809
|
+
* `GET /api/v1/search/calendars` — текстовый поиск календарей.
|
|
3810
|
+
* **`groupIds`**: ограничить выдачу членами указанных групп (в torrow-apps —
|
|
3811
|
+
* «поиск в группе» / `SearchInGroup`). Канонический способ получить элементы группы;
|
|
3812
|
+
* не путать с `calendars.listGroups` (`GET …/group/list` — группы родителя, доступные для включения дочерних).
|
|
3813
|
+
* После `includeToGroups` индекс асинхронный — в примерах нужна пауза перед вызовом.
|
|
3814
|
+
*/
|
|
2827
3815
|
calendars(query, options) {
|
|
2828
3816
|
return this.http.requestJson({
|
|
2829
3817
|
method: "GET",
|
|
@@ -2832,7 +3820,13 @@ var SearchFacade = class {
|
|
|
2832
3820
|
signal: options?.signal
|
|
2833
3821
|
});
|
|
2834
3822
|
}
|
|
2835
|
-
/**
|
|
3823
|
+
/**
|
|
3824
|
+
* `GET /api/v1/search/cases` — текстовый поиск дел/событий.
|
|
3825
|
+
* **`groupIds`**: ограничить выдачу членами указанных групп (в torrow-apps —
|
|
3826
|
+
* «поиск в группе» / `SearchInGroup`). Канонический способ получить элементы группы;
|
|
3827
|
+
* не путать с `cases.listGroups` (`GET …/group/list` — группы родителя, доступные для включения дочерних).
|
|
3828
|
+
* После `includeToGroups` индекс асинхронный — в примерах нужна пауза перед вызовом.
|
|
3829
|
+
*/
|
|
2836
3830
|
cases(query, options) {
|
|
2837
3831
|
return this.http.requestJson({
|
|
2838
3832
|
method: "GET",
|
|
@@ -2841,7 +3835,13 @@ var SearchFacade = class {
|
|
|
2841
3835
|
signal: options?.signal
|
|
2842
3836
|
});
|
|
2843
3837
|
}
|
|
2844
|
-
/**
|
|
3838
|
+
/**
|
|
3839
|
+
* `GET /api/v1/search/resources` — текстовый поиск ресурсов.
|
|
3840
|
+
* **`groupIds`**: ограничить выдачу членами указанных групп (в torrow-apps —
|
|
3841
|
+
* «поиск в группе» / `SearchInGroup`). Канонический способ получить элементы группы;
|
|
3842
|
+
* не путать с `resourceItems.listGroups` (`GET …/group/list` — группы родителя, доступные для включения дочерних).
|
|
3843
|
+
* После `includeToGroups` индекс асинхронный — в примерах нужна пауза перед вызовом.
|
|
3844
|
+
*/
|
|
2845
3845
|
resources(query, options) {
|
|
2846
3846
|
return this.http.requestJson({
|
|
2847
3847
|
method: "GET",
|
|
@@ -2850,7 +3850,13 @@ var SearchFacade = class {
|
|
|
2850
3850
|
signal: options?.signal
|
|
2851
3851
|
});
|
|
2852
3852
|
}
|
|
2853
|
-
/**
|
|
3853
|
+
/**
|
|
3854
|
+
* `GET /api/v1/search/services` — текстовый поиск услуг.
|
|
3855
|
+
* **`groupIds`**: ограничить выдачу членами указанных групп (в torrow-apps —
|
|
3856
|
+
* «поиск в группе» / `SearchInGroup`). Канонический способ получить элементы группы;
|
|
3857
|
+
* не путать с `services.listGroups` (`GET …/group/list` — группы родителя, доступные для включения дочерних).
|
|
3858
|
+
* После `includeToGroups` индекс асинхронный — в примерах нужна пауза перед вызовом.
|
|
3859
|
+
*/
|
|
2854
3860
|
services(query, options) {
|
|
2855
3861
|
return this.http.requestJson({
|
|
2856
3862
|
method: "GET",
|
|
@@ -2868,7 +3874,11 @@ var ActionHistoryFacade = class {
|
|
|
2868
3874
|
this.http = http;
|
|
2869
3875
|
}
|
|
2870
3876
|
http;
|
|
2871
|
-
/**
|
|
3877
|
+
/**
|
|
3878
|
+
* `GET /api/v1/actionhistory`.
|
|
3879
|
+
* Query: {@link ActionHistoryListQuery} — на шлюзе нужен непустой `language`;
|
|
3880
|
+
* `itemIds` фильтрует по элементам (без него — лента пользователя).
|
|
3881
|
+
*/
|
|
2872
3882
|
list(query, options) {
|
|
2873
3883
|
return this.http.requestJson({
|
|
2874
3884
|
method: "GET",
|
|
@@ -2887,17 +3897,17 @@ var AccountingTransactionsFacade = class {
|
|
|
2887
3897
|
}
|
|
2888
3898
|
http;
|
|
2889
3899
|
/** `POST /api/v1/accountingtransactions` */
|
|
2890
|
-
create(
|
|
3900
|
+
create(transaction, options) {
|
|
2891
3901
|
return this.http.requestJson({
|
|
2892
3902
|
method: "POST",
|
|
2893
3903
|
path: BASE12,
|
|
2894
3904
|
query: { securityToken: options?.securityToken },
|
|
2895
|
-
body,
|
|
3905
|
+
body: transaction,
|
|
2896
3906
|
signal: options?.signal
|
|
2897
3907
|
});
|
|
2898
3908
|
}
|
|
2899
3909
|
/** `PUT /api/v1/accountingtransactions/{torrowId}` */
|
|
2900
|
-
update(
|
|
3910
|
+
update(transaction, torrowId, options) {
|
|
2901
3911
|
return this.http.requestJson({
|
|
2902
3912
|
method: "PUT",
|
|
2903
3913
|
path: `${BASE12}/${encodePathSegment(torrowId)}`,
|
|
@@ -2906,13 +3916,13 @@ var AccountingTransactionsFacade = class {
|
|
|
2906
3916
|
isNeedAnnouncement: options?.isNeedAnnouncement,
|
|
2907
3917
|
securityToken: options?.securityToken
|
|
2908
3918
|
},
|
|
2909
|
-
body,
|
|
3919
|
+
body: transaction,
|
|
2910
3920
|
signal: options?.signal
|
|
2911
3921
|
});
|
|
2912
3922
|
}
|
|
2913
3923
|
/** `DELETE /api/v1/accountingtransactions/{torrowId}` */
|
|
2914
|
-
delete(torrowId, options) {
|
|
2915
|
-
|
|
3924
|
+
async delete(torrowId, options) {
|
|
3925
|
+
const resp = await this.http.requestJson({
|
|
2916
3926
|
method: "DELETE",
|
|
2917
3927
|
path: `${BASE12}/${encodePathSegment(torrowId)}`,
|
|
2918
3928
|
query: {
|
|
@@ -2922,6 +3932,7 @@ var AccountingTransactionsFacade = class {
|
|
|
2922
3932
|
},
|
|
2923
3933
|
signal: options?.signal
|
|
2924
3934
|
});
|
|
3935
|
+
return unwrapDeleteCount(resp);
|
|
2925
3936
|
}
|
|
2926
3937
|
/**
|
|
2927
3938
|
* `PUT /api/v1/accountingtransactions/{torrowId}/state` — смена **`AccountingTransactionState`**
|
|
@@ -2970,7 +3981,11 @@ var AnnouncementsFacade = class {
|
|
|
2970
3981
|
this.http = http;
|
|
2971
3982
|
}
|
|
2972
3983
|
http;
|
|
2973
|
-
/**
|
|
3984
|
+
/**
|
|
3985
|
+
* `GET /api/v1/announcements`.
|
|
3986
|
+
* На шлюзе нужны **`language`** и **`state`/`stateList`** (иначе 500 или пустой список) —
|
|
3987
|
+
* см. **`AnnouncementsListQuery`** / MCP **`AnnouncementsListQuery`**.
|
|
3988
|
+
*/
|
|
2974
3989
|
list(query, options) {
|
|
2975
3990
|
return this.http.requestJson({
|
|
2976
3991
|
method: "GET",
|
|
@@ -3058,16 +4073,22 @@ var ReportsFacade = class {
|
|
|
3058
4073
|
// ../../src/resources/loyalty-systems/LoyaltySystemsFacade.ts
|
|
3059
4074
|
var BASE15 = "/api/v1/loyaltysystems";
|
|
3060
4075
|
var LoyaltySystemsFacade = class extends TorrowItemCoreFacade {
|
|
4076
|
+
itemObjectTypeCode = TorrowObjectTypeCode.LoyaltySystem;
|
|
3061
4077
|
constructor(http) {
|
|
3062
4078
|
super(http, BASE15);
|
|
3063
4079
|
}
|
|
4080
|
+
/** Id программы лояльности до `create` / presigned upload. */
|
|
4081
|
+
generateLoyaltySystemId(ownerTorrowId) {
|
|
4082
|
+
return this.generateItemId(ownerTorrowId);
|
|
4083
|
+
}
|
|
3064
4084
|
/** `POST /api/v1/loyaltysystems` */
|
|
3065
4085
|
create(body, options) {
|
|
4086
|
+
const payload = applyItemCreateDefaults(body, "LoyaltySystemItem" /* LoyaltySystemItem */);
|
|
3066
4087
|
return this.http.requestJson({
|
|
3067
4088
|
method: "POST",
|
|
3068
4089
|
path: BASE15,
|
|
3069
4090
|
query: { parentId: options?.parentId, profileId: options?.profileId },
|
|
3070
|
-
body,
|
|
4091
|
+
body: payload,
|
|
3071
4092
|
signal: options?.signal
|
|
3072
4093
|
});
|
|
3073
4094
|
}
|
|
@@ -3085,8 +4106,8 @@ var LoyaltySystemsFacade = class extends TorrowItemCoreFacade {
|
|
|
3085
4106
|
});
|
|
3086
4107
|
}
|
|
3087
4108
|
/** `DELETE /api/v1/loyaltysystems/{torrowId}` */
|
|
3088
|
-
delete(torrowId, options) {
|
|
3089
|
-
|
|
4109
|
+
async delete(torrowId, options) {
|
|
4110
|
+
const resp = await this.http.requestJson({
|
|
3090
4111
|
method: "DELETE",
|
|
3091
4112
|
path: `${BASE15}/${encodePathSegment(torrowId)}`,
|
|
3092
4113
|
query: {
|
|
@@ -3097,6 +4118,7 @@ var LoyaltySystemsFacade = class extends TorrowItemCoreFacade {
|
|
|
3097
4118
|
},
|
|
3098
4119
|
signal: options.signal
|
|
3099
4120
|
});
|
|
4121
|
+
return unwrapDeleteCount(resp);
|
|
3100
4122
|
}
|
|
3101
4123
|
/** `GET /api/v1/loyaltysystems/{torrowId}` */
|
|
3102
4124
|
getById(torrowId, options) {
|
|
@@ -3130,7 +4152,11 @@ var LoyaltySystemsFacade = class extends TorrowItemCoreFacade {
|
|
|
3130
4152
|
signal: options?.signal
|
|
3131
4153
|
});
|
|
3132
4154
|
}
|
|
3133
|
-
/**
|
|
4155
|
+
/**
|
|
4156
|
+
* `POST /api/v1/loyaltysystems/{loyaltySystemId}/loyaltycard` — выпуск **`LoyaltyCardItem`**.
|
|
4157
|
+
* Тело **`CreateLoyaltyCardReq`**: обязателен **`profileId`**; **`basisItemId`** — id элемента-основания
|
|
4158
|
+
* (напр. заказ), от которого создают карту и абонемент (MCP **`CreateLoyaltyCardReq`**).
|
|
4159
|
+
*/
|
|
3134
4160
|
createLoyaltyCard(loyaltySystemId, body, options) {
|
|
3135
4161
|
return this.http.requestJson({
|
|
3136
4162
|
method: "POST",
|
|
@@ -3139,15 +4165,29 @@ var LoyaltySystemsFacade = class extends TorrowItemCoreFacade {
|
|
|
3139
4165
|
signal: options?.signal
|
|
3140
4166
|
});
|
|
3141
4167
|
}
|
|
3142
|
-
/**
|
|
3143
|
-
|
|
4168
|
+
/**
|
|
4169
|
+
* `POST /api/v1/loyaltysystems/{torrowId}/loyaltycards` — поиск карт в программе
|
|
4170
|
+
* (**`SearchLoyaltyCardsReq`**: `text`, `filter`, `sort`, `take`/`skip`, …).
|
|
4171
|
+
* В torrow-apps: `LoyaltySystemItemService.searchLoyaltyCards` / `SearchLoyaltyCardsTask`.
|
|
4172
|
+
*/
|
|
4173
|
+
searchLoyaltyCards(torrowId, body, options) {
|
|
3144
4174
|
return this.http.requestJson({
|
|
4175
|
+
method: "POST",
|
|
4176
|
+
path: `${BASE15}/${encodePathSegment(torrowId)}/loyaltycards`,
|
|
4177
|
+
body,
|
|
4178
|
+
signal: options?.signal
|
|
4179
|
+
});
|
|
4180
|
+
}
|
|
4181
|
+
/** `POST /api/v1/loyaltysystems/statistics` */
|
|
4182
|
+
async postStatistics(body, options) {
|
|
4183
|
+
const resp = await this.http.requestJson({
|
|
3145
4184
|
method: "POST",
|
|
3146
4185
|
path: `${BASE15}/statistics`,
|
|
3147
4186
|
query: { securityToken: options?.securityToken },
|
|
3148
4187
|
body,
|
|
3149
4188
|
signal: options?.signal
|
|
3150
4189
|
});
|
|
4190
|
+
return unwrapLoyaltySystemsStatisticsList(resp);
|
|
3151
4191
|
}
|
|
3152
4192
|
/** `GET /api/v1/loyaltysystems/{torrowId}/participants/count` */
|
|
3153
4193
|
getParticipantsCount(torrowId, query, options) {
|
|
@@ -3164,9 +4204,14 @@ var LoyaltySystemsFacade = class extends TorrowItemCoreFacade {
|
|
|
3164
4204
|
var BASE16 = "/api/v1/loyaltycards";
|
|
3165
4205
|
var LOYALTY_CARD_SOCIAL_OPTS = { withGroupListEndpoint: false };
|
|
3166
4206
|
var LoyaltyCardsFacade = class extends TorrowItemCoreFacade {
|
|
4207
|
+
itemObjectTypeCode = TorrowObjectTypeCode.LoyaltyCard;
|
|
3167
4208
|
constructor(http) {
|
|
3168
4209
|
super(http, BASE16, LOYALTY_CARD_SOCIAL_OPTS);
|
|
3169
4210
|
}
|
|
4211
|
+
/** Id карты лояльности до `create` / presigned upload. */
|
|
4212
|
+
generateLoyaltyCardId(ownerTorrowId) {
|
|
4213
|
+
return this.generateItemId(ownerTorrowId);
|
|
4214
|
+
}
|
|
3170
4215
|
/** `POST /api/v1/loyaltycards/{loyaltyCardId}/subscription` */
|
|
3171
4216
|
createSubscription(loyaltyCardId, body, options) {
|
|
3172
4217
|
return this.http.requestJson({
|
|
@@ -3241,8 +4286,8 @@ var LoyaltyCardsFacade = class extends TorrowItemCoreFacade {
|
|
|
3241
4286
|
});
|
|
3242
4287
|
}
|
|
3243
4288
|
/** `DELETE /api/v1/loyaltycards/{torrowId}` */
|
|
3244
|
-
delete(torrowId, options) {
|
|
3245
|
-
|
|
4289
|
+
async delete(torrowId, options) {
|
|
4290
|
+
const resp = await this.http.requestJson({
|
|
3246
4291
|
method: "DELETE",
|
|
3247
4292
|
path: `${BASE16}/${encodePathSegment(torrowId)}`,
|
|
3248
4293
|
query: {
|
|
@@ -3253,6 +4298,7 @@ var LoyaltyCardsFacade = class extends TorrowItemCoreFacade {
|
|
|
3253
4298
|
},
|
|
3254
4299
|
signal: options.signal
|
|
3255
4300
|
});
|
|
4301
|
+
return unwrapDeleteCount(resp);
|
|
3256
4302
|
}
|
|
3257
4303
|
/** `GET /api/v1/loyaltycards/{torrowId}` */
|
|
3258
4304
|
getById(torrowId, options) {
|
|
@@ -3287,14 +4333,29 @@ var LoyaltyCardsFacade = class extends TorrowItemCoreFacade {
|
|
|
3287
4333
|
signal: options?.signal
|
|
3288
4334
|
});
|
|
3289
4335
|
}
|
|
3290
|
-
/**
|
|
3291
|
-
|
|
4336
|
+
/**
|
|
4337
|
+
* Расписание по карте — `PUT /api/v1/loyaltycards/{torrowId}/timetable`.
|
|
4338
|
+
* В torrow-apps: `LoyaltyCardClient.getTimetable`.
|
|
4339
|
+
*/
|
|
4340
|
+
getTimetable(torrowId, body, options) {
|
|
4341
|
+
const { signal, ...queryOpts } = options ?? {};
|
|
3292
4342
|
return this.http.requestJson({
|
|
4343
|
+
method: "PUT",
|
|
4344
|
+
path: `${BASE16}/${encodePathSegment(torrowId)}/timetable`,
|
|
4345
|
+
query: buildTimetableQuery(queryOpts),
|
|
4346
|
+
body,
|
|
4347
|
+
signal
|
|
4348
|
+
});
|
|
4349
|
+
}
|
|
4350
|
+
/** `POST /api/v1/loyaltycards/timetable/statistics` */
|
|
4351
|
+
async getTimetableStatistics(body, options) {
|
|
4352
|
+
const resp = await this.http.requestJson({
|
|
3293
4353
|
method: "POST",
|
|
3294
4354
|
path: `${BASE16}/timetable/statistics`,
|
|
3295
4355
|
body,
|
|
3296
4356
|
signal: options?.signal
|
|
3297
4357
|
});
|
|
4358
|
+
return unwrapTimetableStatisticsList(resp);
|
|
3298
4359
|
}
|
|
3299
4360
|
/**
|
|
3300
4361
|
* `PUT /api/v1/loyaltycards/{itemId}/notificationwaylist` — в OpenAPI есть у **loyaltycards**, но не у **loyaltysystems**,
|
|
@@ -3314,6 +4375,22 @@ var LoyaltyCardsFacade = class extends TorrowItemCoreFacade {
|
|
|
3314
4375
|
}
|
|
3315
4376
|
};
|
|
3316
4377
|
|
|
4378
|
+
// ../../src/util/opaque-json-settings.ts
|
|
4379
|
+
function parseOpaqueJsonSettings(raw) {
|
|
4380
|
+
if (raw == null) return null;
|
|
4381
|
+
const trimmed = String(raw).trim();
|
|
4382
|
+
if (trimmed === "") return null;
|
|
4383
|
+
try {
|
|
4384
|
+
return JSON.parse(trimmed);
|
|
4385
|
+
} catch {
|
|
4386
|
+
return null;
|
|
4387
|
+
}
|
|
4388
|
+
}
|
|
4389
|
+
function stringifyOpaqueJsonSettings(value) {
|
|
4390
|
+
if (value === void 0 || value === null) return "";
|
|
4391
|
+
return JSON.stringify(value);
|
|
4392
|
+
}
|
|
4393
|
+
|
|
3317
4394
|
// ../../src/resources/user-settings/UserSettingsFacade.ts
|
|
3318
4395
|
var BASE17 = "/api/v1/user/settings";
|
|
3319
4396
|
var UserSettingsFacade = class {
|
|
@@ -3321,20 +4398,27 @@ var UserSettingsFacade = class {
|
|
|
3321
4398
|
this.http = http;
|
|
3322
4399
|
}
|
|
3323
4400
|
http;
|
|
3324
|
-
/** `GET /api/v1/user/settings` —
|
|
3325
|
-
get(options) {
|
|
3326
|
-
|
|
4401
|
+
/** `GET /api/v1/user/settings` — `settings` как JSON (`null` если пусто/не распарсилось). */
|
|
4402
|
+
async get(options) {
|
|
4403
|
+
const dto = await this.http.requestJson({
|
|
3327
4404
|
method: "GET",
|
|
3328
4405
|
path: BASE17,
|
|
3329
4406
|
signal: options?.signal
|
|
3330
4407
|
});
|
|
4408
|
+
return { settings: parseOpaqueJsonSettings(dto.settings) };
|
|
3331
4409
|
}
|
|
3332
|
-
/**
|
|
4410
|
+
/**
|
|
4411
|
+
* `PUT /api/v1/user/settings/update` — принимает JSON в `settings`, на wire уходит string.
|
|
4412
|
+
* `null`/`undefined` → `settings: null` в теле.
|
|
4413
|
+
*/
|
|
3333
4414
|
update(body, options) {
|
|
4415
|
+
const wire = {
|
|
4416
|
+
settings: body.settings === void 0 || body.settings === null ? null : stringifyOpaqueJsonSettings(body.settings)
|
|
4417
|
+
};
|
|
3334
4418
|
return this.http.requestJson({
|
|
3335
4419
|
method: "PUT",
|
|
3336
4420
|
path: `${BASE17}/update`,
|
|
3337
|
-
body,
|
|
4421
|
+
body: wire,
|
|
3338
4422
|
signal: options?.signal
|
|
3339
4423
|
});
|
|
3340
4424
|
}
|
|
@@ -3379,13 +4463,14 @@ var UserFacade = class {
|
|
|
3379
4463
|
});
|
|
3380
4464
|
}
|
|
3381
4465
|
/** `DELETE /api/v1/user/accounts/delete` */
|
|
3382
|
-
deleteAccount(body, options) {
|
|
3383
|
-
|
|
4466
|
+
async deleteAccount(body, options) {
|
|
4467
|
+
const resp = await this.http.requestJson({
|
|
3384
4468
|
method: "DELETE",
|
|
3385
4469
|
path: `${BASE18}/accounts/delete`,
|
|
3386
4470
|
body,
|
|
3387
4471
|
signal: options?.signal
|
|
3388
4472
|
});
|
|
4473
|
+
return unwrapDeletedUserAccountCount(resp);
|
|
3389
4474
|
}
|
|
3390
4475
|
/** `GET /api/v1/user/devices` */
|
|
3391
4476
|
listDevices(query, options) {
|
|
@@ -3397,27 +4482,36 @@ var UserFacade = class {
|
|
|
3397
4482
|
});
|
|
3398
4483
|
}
|
|
3399
4484
|
/** `DELETE /api/v1/user/devices/{deviceId}` */
|
|
3400
|
-
deleteDevice(deviceId, options) {
|
|
3401
|
-
|
|
4485
|
+
async deleteDevice(deviceId, options) {
|
|
4486
|
+
const resp = await this.http.requestJson({
|
|
3402
4487
|
method: "DELETE",
|
|
3403
4488
|
path: `${BASE18}/devices/${encodePathSegment(deviceId)}`,
|
|
3404
4489
|
signal: options?.signal
|
|
3405
4490
|
});
|
|
4491
|
+
return unwrapDeleteCount(resp);
|
|
3406
4492
|
}
|
|
3407
|
-
/** `GET /api/v1/user/devices/{deviceId}/settings` */
|
|
3408
|
-
getDeviceSettings(deviceId, options) {
|
|
3409
|
-
|
|
4493
|
+
/** `GET /api/v1/user/devices/{deviceId}/settings` — `settings` как JSON (`null` если не распарсилось). */
|
|
4494
|
+
async getDeviceSettings(deviceId, options) {
|
|
4495
|
+
const dto = await this.http.requestJson({
|
|
3410
4496
|
method: "GET",
|
|
3411
4497
|
path: `${BASE18}/devices/${encodePathSegment(deviceId)}/settings`,
|
|
3412
4498
|
signal: options?.signal
|
|
3413
4499
|
});
|
|
4500
|
+
return {
|
|
4501
|
+
deviceId: dto.deviceId ?? null,
|
|
4502
|
+
settings: parseOpaqueJsonSettings(dto.settings)
|
|
4503
|
+
};
|
|
3414
4504
|
}
|
|
3415
|
-
/**
|
|
4505
|
+
/**
|
|
4506
|
+
* `PUT /api/v1/user/devices/{deviceId}/settings` — принимает JSON, на wire уходит string в query.
|
|
4507
|
+
* `null`/`undefined` → `"{}"` (пустой query `settings=` шлюз отклоняет VALIDATION_FAILED).
|
|
4508
|
+
*/
|
|
3416
4509
|
updateDeviceSettings(deviceId, settings, options) {
|
|
4510
|
+
const wire = settings === null || settings === void 0 ? "{}" : stringifyOpaqueJsonSettings(settings);
|
|
3417
4511
|
return this.http.requestJson({
|
|
3418
4512
|
method: "PUT",
|
|
3419
4513
|
path: `${BASE18}/devices/${encodePathSegment(deviceId)}/settings`,
|
|
3420
|
-
query: { settings },
|
|
4514
|
+
query: { settings: wire },
|
|
3421
4515
|
signal: options?.signal
|
|
3422
4516
|
});
|
|
3423
4517
|
}
|
|
@@ -3426,22 +4520,28 @@ var UserFacade = class {
|
|
|
3426
4520
|
return this.http.requestJson({ method: "GET", path: `${BASE18}/defaultprofile`, signal: options?.signal });
|
|
3427
4521
|
}
|
|
3428
4522
|
/** `PUT /api/v1/user/defaultprofile` */
|
|
3429
|
-
setDefaultProfileByContactId(contactId, options) {
|
|
3430
|
-
|
|
4523
|
+
async setDefaultProfileByContactId(contactId, options) {
|
|
4524
|
+
const resp = await this.http.requestJson({
|
|
3431
4525
|
method: "PUT",
|
|
3432
4526
|
path: `${BASE18}/defaultprofile`,
|
|
3433
4527
|
body: contactId,
|
|
3434
4528
|
signal: options?.signal
|
|
3435
4529
|
});
|
|
4530
|
+
return unwrapAddProfileContact(resp);
|
|
3436
4531
|
}
|
|
3437
|
-
/**
|
|
3438
|
-
|
|
3439
|
-
|
|
4532
|
+
/**
|
|
4533
|
+
* `POST /api/v1/user/defaultprofile` — создать и назначить дефолтный профиль.
|
|
4534
|
+
* Тело перед POST проходит через {@link prepareUserProfileItemForAdd} (как у `profiles.add`).
|
|
4535
|
+
*/
|
|
4536
|
+
async createDefaultProfile(body, options) {
|
|
4537
|
+
const payload = prepareUserProfileItemForAdd(body);
|
|
4538
|
+
const resp = await this.http.requestJson({
|
|
3440
4539
|
method: "POST",
|
|
3441
4540
|
path: `${BASE18}/defaultprofile`,
|
|
3442
|
-
body,
|
|
4541
|
+
body: payload,
|
|
3443
4542
|
signal: options?.signal
|
|
3444
4543
|
});
|
|
4544
|
+
return unwrapAddProfileContact(resp);
|
|
3445
4545
|
}
|
|
3446
4546
|
/** `GET /api/v1/user/deliveryways` */
|
|
3447
4547
|
listDeliveryWays(query, options) {
|
|
@@ -3535,14 +4635,48 @@ var UserFacade = class {
|
|
|
3535
4635
|
signal: options?.signal
|
|
3536
4636
|
});
|
|
3537
4637
|
}
|
|
3538
|
-
/** `GET /api/v1/user/count` */
|
|
4638
|
+
/** `GET /api/v1/user/count` — публичный счётчик пользователей (без Bearer ок). */
|
|
3539
4639
|
count(options) {
|
|
3540
4640
|
return this.http.requestJson({ method: "GET", path: `${BASE18}/count`, signal: options?.signal });
|
|
3541
4641
|
}
|
|
3542
4642
|
};
|
|
3543
4643
|
|
|
4644
|
+
// ../../src/resources/api-keys/ApiKeysFacade.ts
|
|
4645
|
+
var BASE19 = "/api/v1/apikeys";
|
|
4646
|
+
var ApiKeysFacade = class {
|
|
4647
|
+
constructor(http) {
|
|
4648
|
+
this.http = http;
|
|
4649
|
+
}
|
|
4650
|
+
http;
|
|
4651
|
+
/** `GET /api/v1/apikeys` */
|
|
4652
|
+
list(options) {
|
|
4653
|
+
return this.http.requestJson({
|
|
4654
|
+
method: "GET",
|
|
4655
|
+
path: BASE19,
|
|
4656
|
+
signal: options?.signal
|
|
4657
|
+
});
|
|
4658
|
+
}
|
|
4659
|
+
/** `POST /api/v1/apikeys` */
|
|
4660
|
+
create(body, options) {
|
|
4661
|
+
return this.http.requestJson({
|
|
4662
|
+
method: "POST",
|
|
4663
|
+
path: BASE19,
|
|
4664
|
+
body,
|
|
4665
|
+
signal: options?.signal
|
|
4666
|
+
});
|
|
4667
|
+
}
|
|
4668
|
+
/** `DELETE /api/v1/apikeys/{keyId}` */
|
|
4669
|
+
delete(keyId, options) {
|
|
4670
|
+
return this.http.requestJson({
|
|
4671
|
+
method: "DELETE",
|
|
4672
|
+
path: `${BASE19}/${encodePathSegment(keyId)}`,
|
|
4673
|
+
signal: options?.signal
|
|
4674
|
+
});
|
|
4675
|
+
}
|
|
4676
|
+
};
|
|
4677
|
+
|
|
3544
4678
|
// ../../src/resources/block-reason/BlockReasonsFacade.ts
|
|
3545
|
-
var
|
|
4679
|
+
var BASE20 = "/api/v1/blockreason";
|
|
3546
4680
|
var BlockReasonsFacade = class {
|
|
3547
4681
|
constructor(http) {
|
|
3548
4682
|
this.http = http;
|
|
@@ -3552,7 +4686,7 @@ var BlockReasonsFacade = class {
|
|
|
3552
4686
|
create(body, options) {
|
|
3553
4687
|
return this.http.requestJson({
|
|
3554
4688
|
method: "POST",
|
|
3555
|
-
path:
|
|
4689
|
+
path: BASE20,
|
|
3556
4690
|
body,
|
|
3557
4691
|
signal: options?.signal
|
|
3558
4692
|
});
|
|
@@ -3561,7 +4695,7 @@ var BlockReasonsFacade = class {
|
|
|
3561
4695
|
getById(id, options) {
|
|
3562
4696
|
return this.http.requestJson({
|
|
3563
4697
|
method: "GET",
|
|
3564
|
-
path: `${
|
|
4698
|
+
path: `${BASE20}/${encodePathSegment(String(id))}`,
|
|
3565
4699
|
query: { lng: options?.lng },
|
|
3566
4700
|
signal: options?.signal
|
|
3567
4701
|
});
|
|
@@ -3571,7 +4705,7 @@ var BlockReasonsFacade = class {
|
|
|
3571
4705
|
const { signal } = options ?? {};
|
|
3572
4706
|
return this.http.requestJson({
|
|
3573
4707
|
method: "GET",
|
|
3574
|
-
path: `${
|
|
4708
|
+
path: `${BASE20}/all`,
|
|
3575
4709
|
query: { ...query ?? {} },
|
|
3576
4710
|
signal
|
|
3577
4711
|
});
|
|
@@ -3580,14 +4714,14 @@ var BlockReasonsFacade = class {
|
|
|
3580
4714
|
delete(id, options) {
|
|
3581
4715
|
return this.http.requestJson({
|
|
3582
4716
|
method: "DELETE",
|
|
3583
|
-
path: `${
|
|
4717
|
+
path: `${BASE20}/${encodePathSegment(String(id))}`,
|
|
3584
4718
|
signal: options?.signal
|
|
3585
4719
|
});
|
|
3586
4720
|
}
|
|
3587
4721
|
};
|
|
3588
4722
|
|
|
3589
4723
|
// ../../src/resources/external-auths/ExternalAuthsFacade.ts
|
|
3590
|
-
var
|
|
4724
|
+
var BASE21 = "/api/v1/externalauths";
|
|
3591
4725
|
var ExternalAuthsFacade = class {
|
|
3592
4726
|
constructor(http) {
|
|
3593
4727
|
this.http = http;
|
|
@@ -3597,7 +4731,7 @@ var ExternalAuthsFacade = class {
|
|
|
3597
4731
|
add(body, options) {
|
|
3598
4732
|
return this.http.requestJson({
|
|
3599
4733
|
method: "POST",
|
|
3600
|
-
path:
|
|
4734
|
+
path: BASE21,
|
|
3601
4735
|
body,
|
|
3602
4736
|
signal: options?.signal
|
|
3603
4737
|
});
|
|
@@ -3606,7 +4740,7 @@ var ExternalAuthsFacade = class {
|
|
|
3606
4740
|
getById(torrowId, options) {
|
|
3607
4741
|
return this.http.requestJson({
|
|
3608
4742
|
method: "GET",
|
|
3609
|
-
path: `${
|
|
4743
|
+
path: `${BASE21}/${encodePathSegment(torrowId)}`,
|
|
3610
4744
|
query: { includeDeleted: options?.includeDeleted },
|
|
3611
4745
|
signal: options?.signal
|
|
3612
4746
|
});
|
|
@@ -3616,43 +4750,45 @@ var ExternalAuthsFacade = class {
|
|
|
3616
4750
|
const { signal, ...rest } = options ?? {};
|
|
3617
4751
|
return this.http.requestJson({
|
|
3618
4752
|
method: "GET",
|
|
3619
|
-
path: `${
|
|
4753
|
+
path: `${BASE21}/all`,
|
|
3620
4754
|
query: { ...rest },
|
|
3621
4755
|
signal
|
|
3622
4756
|
});
|
|
3623
4757
|
}
|
|
3624
4758
|
/** `DELETE /api/v1/externalauths/{externalAuthId}` */
|
|
3625
|
-
delete(externalAuthId, options) {
|
|
3626
|
-
|
|
4759
|
+
async delete(externalAuthId, options) {
|
|
4760
|
+
const resp = await this.http.requestJson({
|
|
3627
4761
|
method: "DELETE",
|
|
3628
|
-
path: `${
|
|
4762
|
+
path: `${BASE21}/${encodePathSegment(externalAuthId)}`,
|
|
3629
4763
|
query: {
|
|
3630
4764
|
versionToCheck: options?.versionToCheck,
|
|
3631
4765
|
isNeedAnnouncement: options?.isNeedAnnouncement
|
|
3632
4766
|
},
|
|
3633
4767
|
signal: options?.signal
|
|
3634
4768
|
});
|
|
4769
|
+
return unwrapDeleteCount(resp);
|
|
3635
4770
|
}
|
|
3636
4771
|
};
|
|
3637
4772
|
|
|
3638
4773
|
// ../../src/resources/id-generator/IdGeneratorFacade.ts
|
|
3639
|
-
var
|
|
4774
|
+
var BASE22 = "/api/v1/idgenerator";
|
|
3640
4775
|
var IdGeneratorFacade = class {
|
|
3641
4776
|
constructor(http) {
|
|
3642
4777
|
this.http = http;
|
|
3643
4778
|
}
|
|
3644
4779
|
http;
|
|
3645
|
-
getNextId(objectType, options) {
|
|
3646
|
-
|
|
4780
|
+
async getNextId(objectType, options) {
|
|
4781
|
+
const resp = await this.http.requestJson({
|
|
3647
4782
|
method: "GET",
|
|
3648
|
-
path: `${
|
|
4783
|
+
path: `${BASE22}/${encodePathSegment(String(objectType))}`,
|
|
3649
4784
|
signal: options?.signal
|
|
3650
4785
|
});
|
|
4786
|
+
return unwrapTorrowId(resp);
|
|
3651
4787
|
}
|
|
3652
4788
|
};
|
|
3653
4789
|
|
|
3654
4790
|
// ../../src/resources/integrations/IntegrationsFacade.ts
|
|
3655
|
-
var
|
|
4791
|
+
var BASE23 = "/api/v1/integrations";
|
|
3656
4792
|
var IntegrationsFacade = class {
|
|
3657
4793
|
constructor(http) {
|
|
3658
4794
|
this.http = http;
|
|
@@ -3662,7 +4798,7 @@ var IntegrationsFacade = class {
|
|
|
3662
4798
|
create(body, options) {
|
|
3663
4799
|
return this.http.requestJson({
|
|
3664
4800
|
method: "POST",
|
|
3665
|
-
path:
|
|
4801
|
+
path: BASE23,
|
|
3666
4802
|
body,
|
|
3667
4803
|
signal: options?.signal
|
|
3668
4804
|
});
|
|
@@ -3671,7 +4807,7 @@ var IntegrationsFacade = class {
|
|
|
3671
4807
|
update(body, torrowId, options) {
|
|
3672
4808
|
return this.http.requestJson({
|
|
3673
4809
|
method: "PUT",
|
|
3674
|
-
path: `${
|
|
4810
|
+
path: `${BASE23}/${encodePathSegment(torrowId)}`,
|
|
3675
4811
|
query: { checkVersion: options?.checkVersion },
|
|
3676
4812
|
body,
|
|
3677
4813
|
signal: options?.signal
|
|
@@ -3681,7 +4817,7 @@ var IntegrationsFacade = class {
|
|
|
3681
4817
|
list(options) {
|
|
3682
4818
|
return this.http.requestJson({
|
|
3683
4819
|
method: "GET",
|
|
3684
|
-
path: `${
|
|
4820
|
+
path: `${BASE23}/list`,
|
|
3685
4821
|
query: {
|
|
3686
4822
|
integrationIds: options?.integrationIds,
|
|
3687
4823
|
includeDeleted: options?.includeDeleted
|
|
@@ -3690,31 +4826,36 @@ var IntegrationsFacade = class {
|
|
|
3690
4826
|
});
|
|
3691
4827
|
}
|
|
3692
4828
|
/** `DELETE /api/v1/integrations/{integrationId}` */
|
|
3693
|
-
delete(integrationId, options) {
|
|
3694
|
-
|
|
4829
|
+
async delete(integrationId, options) {
|
|
4830
|
+
const resp = await this.http.requestJson({
|
|
3695
4831
|
method: "DELETE",
|
|
3696
|
-
path: `${
|
|
4832
|
+
path: `${BASE23}/${encodePathSegment(integrationId)}`,
|
|
3697
4833
|
query: {
|
|
3698
4834
|
versionToCheck: options?.versionToCheck,
|
|
3699
4835
|
isNeedAnnouncement: options?.isNeedAnnouncement
|
|
3700
4836
|
},
|
|
3701
4837
|
signal: options?.signal
|
|
3702
4838
|
});
|
|
4839
|
+
return unwrapDeleteCount(resp);
|
|
3703
4840
|
}
|
|
3704
4841
|
};
|
|
3705
4842
|
|
|
3706
4843
|
// ../../src/resources/item/ItemFacade.ts
|
|
3707
|
-
var
|
|
4844
|
+
var BASE24 = "/api/v1/item";
|
|
3708
4845
|
var ItemFacade = class {
|
|
3709
4846
|
constructor(http) {
|
|
3710
4847
|
this.http = http;
|
|
3711
4848
|
}
|
|
3712
4849
|
http;
|
|
3713
|
-
/**
|
|
4850
|
+
/**
|
|
4851
|
+
* **WIP / do not use in product.** `PUT /api/v1/item/activateshareitemsession/{shareItemSessionId}`.
|
|
4852
|
+
* Gateway stub (empty `ParticipationResp`). Unused in torrow-apps UI.
|
|
4853
|
+
* Pair with stub `shareItemLink` → empty URL. Fix in monolith, not SDK.
|
|
4854
|
+
*/
|
|
3714
4855
|
activateShareItemSession(shareItemSessionId, options) {
|
|
3715
4856
|
return this.http.requestJson({
|
|
3716
4857
|
method: "PUT",
|
|
3717
|
-
path: `${
|
|
4858
|
+
path: `${BASE24}/activateshareitemsession/${encodePathSegment(shareItemSessionId)}`,
|
|
3718
4859
|
query: { userProfileId: options?.userProfileId, code: options?.code },
|
|
3719
4860
|
signal: options?.signal
|
|
3720
4861
|
});
|
|
@@ -3723,7 +4864,7 @@ var ItemFacade = class {
|
|
|
3723
4864
|
getByUniqueName(uniqueName, options) {
|
|
3724
4865
|
return this.http.requestJson({
|
|
3725
4866
|
method: "GET",
|
|
3726
|
-
path: `${
|
|
4867
|
+
path: `${BASE24}/uniquename/${encodePathSegment(uniqueName)}`,
|
|
3727
4868
|
signal: options?.signal
|
|
3728
4869
|
});
|
|
3729
4870
|
}
|
|
@@ -3731,7 +4872,7 @@ var ItemFacade = class {
|
|
|
3731
4872
|
getUserFeedback(torrowId, options) {
|
|
3732
4873
|
return this.http.requestJson({
|
|
3733
4874
|
method: "GET",
|
|
3734
|
-
path: `${
|
|
4875
|
+
path: `${BASE24}/${encodePathSegment(torrowId)}/userfeedback`,
|
|
3735
4876
|
query: {
|
|
3736
4877
|
throwExceptionIfNotFound: options?.throwExceptionIfNotFound,
|
|
3737
4878
|
versionToCheck: options?.versionToCheck,
|
|
@@ -3745,27 +4886,28 @@ var ItemFacade = class {
|
|
|
3745
4886
|
const { signal, ...query } = options ?? {};
|
|
3746
4887
|
return this.http.requestJson({
|
|
3747
4888
|
method: "PUT",
|
|
3748
|
-
path: `${
|
|
4889
|
+
path: `${BASE24}/${encodePathSegment(torrowId)}/userfeedback`,
|
|
3749
4890
|
query: { ...query },
|
|
3750
4891
|
signal
|
|
3751
4892
|
});
|
|
3752
4893
|
}
|
|
3753
4894
|
/** `DELETE /api/v1/item/{torrowId}/userfeedback` */
|
|
3754
|
-
deleteUserFeedback(torrowId, options) {
|
|
4895
|
+
async deleteUserFeedback(torrowId, options) {
|
|
3755
4896
|
const { signal, ...query } = options ?? {};
|
|
3756
|
-
|
|
4897
|
+
const resp = await this.http.requestJson({
|
|
3757
4898
|
method: "DELETE",
|
|
3758
|
-
path: `${
|
|
4899
|
+
path: `${BASE24}/${encodePathSegment(torrowId)}/userfeedback`,
|
|
3759
4900
|
query: { ...query },
|
|
3760
4901
|
signal
|
|
3761
4902
|
});
|
|
4903
|
+
return unwrapDeleteCount(resp);
|
|
3762
4904
|
}
|
|
3763
4905
|
/** `GET /api/v1/item/{torrowId}/feedbacks` */
|
|
3764
4906
|
listFeedbacks(torrowId, options) {
|
|
3765
4907
|
const { signal, ...query } = options ?? {};
|
|
3766
4908
|
return this.http.requestJson({
|
|
3767
4909
|
method: "GET",
|
|
3768
|
-
path: `${
|
|
4910
|
+
path: `${BASE24}/${encodePathSegment(torrowId)}/feedbacks`,
|
|
3769
4911
|
query: { ...query },
|
|
3770
4912
|
signal
|
|
3771
4913
|
});
|
|
@@ -3775,7 +4917,7 @@ var ItemFacade = class {
|
|
|
3775
4917
|
const { signal, ...query } = options ?? {};
|
|
3776
4918
|
return this.http.requestJson({
|
|
3777
4919
|
method: "POST",
|
|
3778
|
-
path: `${
|
|
4920
|
+
path: `${BASE24}/${encodePathSegment(torrowId)}/feedbacks/newmessage`,
|
|
3779
4921
|
query: { ...query },
|
|
3780
4922
|
signal
|
|
3781
4923
|
});
|
|
@@ -3784,7 +4926,7 @@ var ItemFacade = class {
|
|
|
3784
4926
|
getFeedback(torrowId, messageId, options) {
|
|
3785
4927
|
return this.http.requestJson({
|
|
3786
4928
|
method: "GET",
|
|
3787
|
-
path: `${
|
|
4929
|
+
path: `${BASE24}/${encodePathSegment(torrowId)}/feedbacks/${encodePathSegment(messageId)}`,
|
|
3788
4930
|
query: {
|
|
3789
4931
|
versionToCheck: options?.versionToCheck,
|
|
3790
4932
|
includeDeleted: options?.includeDeleted
|
|
@@ -3797,29 +4939,30 @@ var ItemFacade = class {
|
|
|
3797
4939
|
const { signal, ...query } = options ?? {};
|
|
3798
4940
|
return this.http.requestJson({
|
|
3799
4941
|
method: "PUT",
|
|
3800
|
-
path: `${
|
|
4942
|
+
path: `${BASE24}/${encodePathSegment(torrowId)}/feedbacks/${encodePathSegment(messageId)}`,
|
|
3801
4943
|
query: { ...query },
|
|
3802
4944
|
signal
|
|
3803
4945
|
});
|
|
3804
4946
|
}
|
|
3805
4947
|
/** `DELETE /api/v1/item/{torrowId}/feedbacks/{messageId}` */
|
|
3806
|
-
deleteFeedback(torrowId, messageId, options) {
|
|
3807
|
-
|
|
4948
|
+
async deleteFeedback(torrowId, messageId, options) {
|
|
4949
|
+
const resp = await this.http.requestJson({
|
|
3808
4950
|
method: "DELETE",
|
|
3809
|
-
path: `${
|
|
4951
|
+
path: `${BASE24}/${encodePathSegment(torrowId)}/feedbacks/${encodePathSegment(messageId)}`,
|
|
3810
4952
|
query: {
|
|
3811
4953
|
versionToCheck: options?.versionToCheck,
|
|
3812
4954
|
isNeedAnnouncement: options?.isNeedAnnouncement
|
|
3813
4955
|
},
|
|
3814
4956
|
signal: options?.signal
|
|
3815
4957
|
});
|
|
4958
|
+
return unwrapDeleteCount(resp);
|
|
3816
4959
|
}
|
|
3817
4960
|
/** `POST /api/v1/item/{torrowId}/feedbacks/{messageId}/reply` */
|
|
3818
4961
|
replyToFeedback(torrowId, messageId, options) {
|
|
3819
4962
|
const { signal, ...query } = options ?? {};
|
|
3820
4963
|
return this.http.requestJson({
|
|
3821
4964
|
method: "POST",
|
|
3822
|
-
path: `${
|
|
4965
|
+
path: `${BASE24}/${encodePathSegment(torrowId)}/feedbacks/${encodePathSegment(messageId)}/reply`,
|
|
3823
4966
|
query: { ...query },
|
|
3824
4967
|
signal
|
|
3825
4968
|
});
|
|
@@ -3829,7 +4972,7 @@ var ItemFacade = class {
|
|
|
3829
4972
|
const { signal, ...query } = options ?? {};
|
|
3830
4973
|
return this.http.requestJson({
|
|
3831
4974
|
method: "GET",
|
|
3832
|
-
path: `${
|
|
4975
|
+
path: `${BASE24}/${encodePathSegment(torrowId)}/feedbacks/${encodePathSegment(messageId)}/replies`,
|
|
3833
4976
|
query: { ...query },
|
|
3834
4977
|
signal
|
|
3835
4978
|
});
|
|
@@ -3837,7 +4980,7 @@ var ItemFacade = class {
|
|
|
3837
4980
|
};
|
|
3838
4981
|
|
|
3839
4982
|
// ../../src/resources/short-url/ShortUrlFacade.ts
|
|
3840
|
-
var
|
|
4983
|
+
var BASE25 = "/api/v1/u";
|
|
3841
4984
|
var ShortUrlFacade = class {
|
|
3842
4985
|
constructor(http, config) {
|
|
3843
4986
|
this.http = http;
|
|
@@ -3849,7 +4992,7 @@ var ShortUrlFacade = class {
|
|
|
3849
4992
|
getFull(shortUrl, options) {
|
|
3850
4993
|
return this.http.requestJson({
|
|
3851
4994
|
method: "GET",
|
|
3852
|
-
path: `${
|
|
4995
|
+
path: `${BASE25}/${encodePathSegment(shortUrl)}/full`,
|
|
3853
4996
|
signal: options?.signal
|
|
3854
4997
|
});
|
|
3855
4998
|
}
|
|
@@ -3860,7 +5003,7 @@ var ShortUrlFacade = class {
|
|
|
3860
5003
|
async getRedirectLocation(shortUrl, options) {
|
|
3861
5004
|
const fetchFn = this.config.fetch ?? globalThis.fetch;
|
|
3862
5005
|
const origin = this.config.baseUrl ?? DEFAULT_TORROW_API_BASE_URL;
|
|
3863
|
-
const url = joinBaseUrlAndPath(origin, `${
|
|
5006
|
+
const url = joinBaseUrlAndPath(origin, `${BASE25}/${encodePathSegment(shortUrl)}`);
|
|
3864
5007
|
const authHeaders = await buildAuthHeaders(this.config);
|
|
3865
5008
|
const res = await fetchFn(url, {
|
|
3866
5009
|
method: "GET",
|
|
@@ -3877,7 +5020,7 @@ var ShortUrlFacade = class {
|
|
|
3877
5020
|
};
|
|
3878
5021
|
|
|
3879
5022
|
// ../../src/resources/thesaurus/ThesaurusFacade.ts
|
|
3880
|
-
var
|
|
5023
|
+
var BASE26 = "/api/v1/thesaurus";
|
|
3881
5024
|
var ThesaurusFacade = class {
|
|
3882
5025
|
constructor(http) {
|
|
3883
5026
|
this.http = http;
|
|
@@ -3888,7 +5031,7 @@ var ThesaurusFacade = class {
|
|
|
3888
5031
|
const { signal, ...query } = options ?? {};
|
|
3889
5032
|
return this.http.requestJson({
|
|
3890
5033
|
method: "GET",
|
|
3891
|
-
path: `${
|
|
5034
|
+
path: `${BASE26}/places`,
|
|
3892
5035
|
query: { ...query },
|
|
3893
5036
|
signal
|
|
3894
5037
|
});
|
|
@@ -3898,7 +5041,7 @@ var ThesaurusFacade = class {
|
|
|
3898
5041
|
const { signal, ...query } = options ?? {};
|
|
3899
5042
|
return this.http.requestJson({
|
|
3900
5043
|
method: "GET",
|
|
3901
|
-
path: `${
|
|
5044
|
+
path: `${BASE26}/hobbies`,
|
|
3902
5045
|
query: { ...query },
|
|
3903
5046
|
signal
|
|
3904
5047
|
});
|
|
@@ -3907,6 +5050,10 @@ var ThesaurusFacade = class {
|
|
|
3907
5050
|
|
|
3908
5051
|
// ../../src/TorrowClient.ts
|
|
3909
5052
|
var TorrowClient = class {
|
|
5053
|
+
/**
|
|
5054
|
+
* Эффективный конфиг после default `baseUrl` ({@link ResolvedTorrowClientConfig}).
|
|
5055
|
+
* В конструктор передавай {@link TorrowClientConfig} (`baseUrl` опционален).
|
|
5056
|
+
*/
|
|
3910
5057
|
config;
|
|
3911
5058
|
http;
|
|
3912
5059
|
raw;
|
|
@@ -3940,9 +5087,9 @@ var TorrowClient = class {
|
|
|
3940
5087
|
user;
|
|
3941
5088
|
/** Include/exclude в иерархии и группах, mind map (`includeToParent`, `saveToMindMap`, …). */
|
|
3942
5089
|
relations;
|
|
3943
|
-
/**
|
|
5090
|
+
/** Представления под родителем: CRUD в `views.user` / `views.pinned`, переходы через `views.pin` / `views.unpin`. */
|
|
3944
5091
|
views;
|
|
3945
|
-
/** Профили пользователя Torrow (`/api/v1/user/profiles`), не CRUD `/api/v1/contacts`. */
|
|
5092
|
+
/** Профили пользователя Torrow (`/api/v1/user/profiles`), не CRUD `/api/v1/contacts`. `list` — **`ContactItem[]`**. */
|
|
3946
5093
|
profiles;
|
|
3947
5094
|
/** AuthIdentity: `refresh`, `requestToken`, `revoke`, `sendCode`, `createSession` — без Bearer основного клиента. */
|
|
3948
5095
|
auth;
|
|
@@ -3952,6 +5099,8 @@ var TorrowClient = class {
|
|
|
3952
5099
|
externalAuths;
|
|
3953
5100
|
/** Интеграции (`/api/v1/integrations`). */
|
|
3954
5101
|
integrations;
|
|
5102
|
+
/** API keys (`/api/v1/apikeys`). */
|
|
5103
|
+
apiKeys;
|
|
3955
5104
|
/** Генерация id (`/api/v1/idgenerator`). */
|
|
3956
5105
|
idGenerator;
|
|
3957
5106
|
/** Отзывы и шаринг-сессии (`/api/v1/item/...`). */
|
|
@@ -3991,6 +5140,7 @@ var TorrowClient = class {
|
|
|
3991
5140
|
this.blockReasons = new BlockReasonsFacade(this.http);
|
|
3992
5141
|
this.externalAuths = new ExternalAuthsFacade(this.http);
|
|
3993
5142
|
this.integrations = new IntegrationsFacade(this.http);
|
|
5143
|
+
this.apiKeys = new ApiKeysFacade(this.http);
|
|
3994
5144
|
this.idGenerator = new IdGeneratorFacade(this.http);
|
|
3995
5145
|
this.item = new ItemFacade(this.http);
|
|
3996
5146
|
this.thesaurus = new ThesaurusFacade(this.http);
|
|
@@ -3998,6 +5148,379 @@ var TorrowClient = class {
|
|
|
3998
5148
|
}
|
|
3999
5149
|
};
|
|
4000
5150
|
|
|
5151
|
+
// ../../src/resources/auth/auth-enum-values.ts
|
|
5152
|
+
var AccountTypeValues = {
|
|
5153
|
+
Undefined: "Undefined",
|
|
5154
|
+
Phone: "Phone",
|
|
5155
|
+
Email: "Email",
|
|
5156
|
+
Telegram: "Telegram"
|
|
5157
|
+
};
|
|
5158
|
+
var AccountTypeValueList = [
|
|
5159
|
+
AccountTypeValues.Undefined,
|
|
5160
|
+
AccountTypeValues.Phone,
|
|
5161
|
+
AccountTypeValues.Email,
|
|
5162
|
+
AccountTypeValues.Telegram
|
|
5163
|
+
];
|
|
5164
|
+
function isAccountType(value) {
|
|
5165
|
+
return AccountTypeValueList.includes(value);
|
|
5166
|
+
}
|
|
5167
|
+
function parseAccountType(raw) {
|
|
5168
|
+
const t = raw?.trim();
|
|
5169
|
+
if (!t) return void 0;
|
|
5170
|
+
return AccountTypeValueList.find((x) => x.toLowerCase() === t.toLowerCase());
|
|
5171
|
+
}
|
|
5172
|
+
var SendCodeAccountTypeValues = {
|
|
5173
|
+
Phone: AccountTypeValues.Phone,
|
|
5174
|
+
Email: AccountTypeValues.Email
|
|
5175
|
+
};
|
|
5176
|
+
var SendCodeAccountTypeValueList = [
|
|
5177
|
+
SendCodeAccountTypeValues.Phone,
|
|
5178
|
+
SendCodeAccountTypeValues.Email
|
|
5179
|
+
];
|
|
5180
|
+
function isSendCodeAccountType(value) {
|
|
5181
|
+
return SendCodeAccountTypeValueList.includes(value);
|
|
5182
|
+
}
|
|
5183
|
+
function parseSendCodeAccountType(raw) {
|
|
5184
|
+
const t = raw?.trim();
|
|
5185
|
+
if (!t) return void 0;
|
|
5186
|
+
return SendCodeAccountTypeValueList.find((x) => x.toLowerCase() === t.toLowerCase());
|
|
5187
|
+
}
|
|
5188
|
+
var VerificationMethodValues = {
|
|
5189
|
+
UnknownMethod: "UnknownMethod",
|
|
5190
|
+
Sms: "Sms",
|
|
5191
|
+
TelegramGateway: "TelegramGateway",
|
|
5192
|
+
FlashCall: "FlashCall",
|
|
5193
|
+
MtsMobileId: "MtsMobileId"
|
|
5194
|
+
};
|
|
5195
|
+
var VerificationMethodValueList = [
|
|
5196
|
+
VerificationMethodValues.UnknownMethod,
|
|
5197
|
+
VerificationMethodValues.Sms,
|
|
5198
|
+
VerificationMethodValues.TelegramGateway,
|
|
5199
|
+
VerificationMethodValues.FlashCall,
|
|
5200
|
+
VerificationMethodValues.MtsMobileId
|
|
5201
|
+
];
|
|
5202
|
+
function isVerificationMethod(value) {
|
|
5203
|
+
return VerificationMethodValueList.includes(value);
|
|
5204
|
+
}
|
|
5205
|
+
function parseVerificationMethod(raw) {
|
|
5206
|
+
const t = raw?.trim();
|
|
5207
|
+
if (!t) return void 0;
|
|
5208
|
+
return VerificationMethodValueList.find((x) => x.toLowerCase() === t.toLowerCase());
|
|
5209
|
+
}
|
|
5210
|
+
var TokenStatusValues = {
|
|
5211
|
+
TokenReady: "TokenReady",
|
|
5212
|
+
Pending: "Pending",
|
|
5213
|
+
AwaitingSmsCode: "AwaitingSmsCode",
|
|
5214
|
+
Failed: "Failed"
|
|
5215
|
+
};
|
|
5216
|
+
var TokenStatusValueList = [
|
|
5217
|
+
TokenStatusValues.TokenReady,
|
|
5218
|
+
TokenStatusValues.Pending,
|
|
5219
|
+
TokenStatusValues.AwaitingSmsCode,
|
|
5220
|
+
TokenStatusValues.Failed
|
|
5221
|
+
];
|
|
5222
|
+
function isTokenStatus(value) {
|
|
5223
|
+
return TokenStatusValueList.includes(value);
|
|
5224
|
+
}
|
|
5225
|
+
function parseTokenStatus(raw) {
|
|
5226
|
+
const t = raw?.trim();
|
|
5227
|
+
if (!t) return void 0;
|
|
5228
|
+
return TokenStatusValueList.find((x) => x.toLowerCase() === t.toLowerCase());
|
|
5229
|
+
}
|
|
5230
|
+
function isTokenRespReadyStatus(status) {
|
|
5231
|
+
return status == null || status === TokenStatusValues.TokenReady;
|
|
5232
|
+
}
|
|
5233
|
+
var AuthCaptchaTypeValues = {
|
|
5234
|
+
YandexSmartCaptcha: "YandexSmartCaptcha",
|
|
5235
|
+
GoogleRecaptcha: "GoogleRecaptcha"
|
|
5236
|
+
};
|
|
5237
|
+
var AuthCaptchaTypeValueList = [
|
|
5238
|
+
AuthCaptchaTypeValues.YandexSmartCaptcha,
|
|
5239
|
+
AuthCaptchaTypeValues.GoogleRecaptcha
|
|
5240
|
+
];
|
|
5241
|
+
function isAuthCaptchaType(value) {
|
|
5242
|
+
return AuthCaptchaTypeValueList.includes(value);
|
|
5243
|
+
}
|
|
5244
|
+
function parseAuthCaptchaType(raw) {
|
|
5245
|
+
const t = raw?.trim();
|
|
5246
|
+
if (!t) return void 0;
|
|
5247
|
+
return AuthCaptchaTypeValueList.find((x) => x.toLowerCase() === t.toLowerCase());
|
|
5248
|
+
}
|
|
5249
|
+
var AuthScopeValues = {
|
|
5250
|
+
UserApi: "user_api",
|
|
5251
|
+
AdminApi: "admin_api",
|
|
5252
|
+
OfflineAccess: "offline_access"
|
|
5253
|
+
};
|
|
5254
|
+
var AuthScopeValueList = [
|
|
5255
|
+
AuthScopeValues.UserApi,
|
|
5256
|
+
AuthScopeValues.AdminApi,
|
|
5257
|
+
AuthScopeValues.OfflineAccess
|
|
5258
|
+
];
|
|
5259
|
+
var DefaultAuthScopes = [
|
|
5260
|
+
AuthScopeValues.UserApi,
|
|
5261
|
+
AuthScopeValues.OfflineAccess
|
|
5262
|
+
];
|
|
5263
|
+
function isAuthScope(value) {
|
|
5264
|
+
return AuthScopeValueList.includes(value);
|
|
5265
|
+
}
|
|
5266
|
+
function parseAuthScope(raw) {
|
|
5267
|
+
const t = raw?.trim();
|
|
5268
|
+
if (!t) return void 0;
|
|
5269
|
+
return AuthScopeValueList.find((x) => x.toLowerCase() === t.toLowerCase());
|
|
5270
|
+
}
|
|
5271
|
+
|
|
5272
|
+
// ../../src/resources/common/solution-data.ts
|
|
5273
|
+
var LayoutTypeValues = {
|
|
5274
|
+
Unknown: 0,
|
|
5275
|
+
SideImage: 1,
|
|
5276
|
+
SmallImagePanel: 2,
|
|
5277
|
+
MediumImagePanel: 3,
|
|
5278
|
+
BigImagePanel: 4,
|
|
5279
|
+
SmallSlider: 5,
|
|
5280
|
+
BigSlider: 6,
|
|
5281
|
+
NonImage: 7
|
|
5282
|
+
};
|
|
5283
|
+
|
|
5284
|
+
// ../../src/resources/common/timetable-view-type.ts
|
|
5285
|
+
var TimetableViewTypeValues = {
|
|
5286
|
+
Day: 0,
|
|
5287
|
+
Month: 1,
|
|
5288
|
+
MonthEventList: 2,
|
|
5289
|
+
ConnectCalendar: 3,
|
|
5290
|
+
Poster: 4,
|
|
5291
|
+
Schedule: 5
|
|
5292
|
+
};
|
|
5293
|
+
|
|
5294
|
+
// ../../src/resources/contexts/context-icon-preset-paths.ts
|
|
5295
|
+
var CONTEXT_ICON_PRESET_PATHS = {
|
|
5296
|
+
"anchor": "M35.4783 29.6467C30.6084 24.7768 26.629 15.4085 26.586 15.307C26.585 15.3045 26.5825 15.3015 26.5825 15.3015C26.5594 15.2485 26.527 15.2036 26.4889 15.1626C26.4775 15.1501 26.4645 15.1401 26.4515 15.129C26.4195 15.1006 26.3845 15.0771 26.3465 15.058C26.331 15.0505 26.317 15.042 26.301 15.0361C26.2465 15.0155 26.19 15.0011 26.13 15.0005H26.1265H26.125L26.1215 15.001C25.9914 14.9915 25.8714 15.0495 25.78 15.141C25.776 15.145 25.772 15.148 25.768 15.152C25.7279 15.195 25.6924 15.2425 25.668 15.2975L25.6644 15.3055C25.561 15.536 21.6095 24.3088 16.7716 29.1467C16.6441 29.2742 16.5951 29.4602 16.6431 29.6337C16.6911 29.8072 16.8291 29.9417 17.0037 29.9852C20.5716 30.8772 20.6245 37.3121 20.6251 37.5006C20.6256 37.7765 20.8495 37.9995 21.125 37.9995C21.401 37.999 21.6251 37.7761 21.6251 37.5C21.6251 37.4495 21.5811 30.7692 18.0356 29.2767C21.4051 25.6693 24.22 20.5154 25.6249 17.707V27.0508C24.4854 27.2833 23.625 28.2928 23.625 29.5002C23.625 30.8787 24.7465 32.0002 26.125 32.0002C27.5035 32.0002 28.6249 30.8787 28.6249 29.5002C28.6249 28.2928 27.7644 27.2833 26.625 27.0508V17.8115C28.0315 20.7629 30.8454 26.1428 34.2113 29.7717C30.6684 31.2087 30.6249 37.4546 30.6249 37.5C30.6249 37.776 30.8483 37.999 31.1238 37.9995C31.3998 37.9995 31.6239 37.7765 31.6249 37.501C31.6253 37.3331 31.6814 31.3761 35.2463 30.4852C35.4208 30.4417 35.5588 30.3072 35.6068 30.1337C35.6547 29.9602 35.6058 29.7742 35.4783 29.6467ZM27.6249 29.5002C27.6249 30.3272 26.9519 31.0002 26.125 31.0002C25.298 31.0002 24.625 30.3272 24.625 29.5002C24.625 28.6733 25.298 28.0003 26.125 28.0003C26.9519 28.0003 27.6249 28.6733 27.6249 29.5002ZM32.1248 37.0001H20.1251C19.8491 37.0001 19.6251 37.2241 19.6251 37.5V38.5C19.6251 38.776 19.8491 39 20.1251 39C20.4011 39 20.6251 38.776 20.6251 38.5V38.0001H31.6248V38.5C31.6248 38.776 31.8488 39 32.1248 39C32.4007 39 32.6247 38.776 32.6247 38.5V37.5C32.6248 37.2241 32.4008 37.0001 32.1248 37.0001Z",
|
|
5297
|
+
"animals": "M38.1434 21.1127L38.2291 21.1445C38.3104 21.1763 38.4006 21.2127 38.4999 21.2582L38.5044 21.2627C38.6398 21.3309 38.7662 21.4263 38.87 21.5445C38.9693 21.6581 39.0551 21.7945 39.1137 21.9399L39.1182 21.9581C39.1769 22.1263 39.1995 22.2899 39.1905 22.4627C39.1814 22.6308 39.1363 22.799 39.0551 22.9763L39.046 22.9945C38.685 23.6717 38.2021 24.2262 37.6334 24.6353C37.0557 25.0535 36.3877 25.3216 35.6837 25.4126C35.5528 25.4262 35.4174 25.4398 35.2775 25.4444H35.2053C34.93 26.7125 34.6727 27.9897 34.3793 29.2488C34.2484 29.8351 34.1266 30.4033 33.6753 30.8805V35.4076C33.6753 35.7576 33.5308 36.0758 33.3052 36.3031C33.075 36.5349 32.7591 36.6758 32.4116 36.6758H31.9377C31.6308 36.6758 31.3419 36.5622 31.1208 36.3712C30.8996 36.1849 30.7417 35.9167 30.692 35.6076L30.024 31.3669L27.4605 30.9351L24.721 30.4624C24.1974 31.1396 23.3805 31.7169 22.6765 32.2169C22.4869 32.3487 22.3109 32.4714 22.1213 32.6123L20.6365 33.7259L20.9028 35.1804C20.9389 35.3667 20.9298 35.5531 20.8847 35.7304C20.8351 35.9122 20.7493 36.0804 20.6275 36.2258L20.6094 36.2485C20.483 36.3758 20.3567 36.4758 20.2032 36.5531C20.0407 36.6349 19.8692 36.6758 19.6616 36.6758H19.0884C18.7861 36.6758 18.5017 36.5667 18.2806 36.3849C18.0594 36.2031 17.9015 35.9394 17.8473 35.6395L17.2831 32.5941C17.1568 31.9032 17.8699 31.026 18.3663 30.4215L18.4972 30.2578C18.2264 29.6215 18.082 29.0261 18.0233 28.4943C17.933 27.7261 18.0233 27.0761 18.1632 26.5716C18.2219 26.3489 18.2986 26.1489 18.3753 25.9625L18.4115 25.8898C17.8247 25.6353 17.2786 25.2944 16.7957 24.8762C16.209 24.3717 15.7125 23.7535 15.3379 23.0445L15.3334 23.0399C15.1754 22.7263 15.1529 22.3808 15.2522 22.0763C15.347 21.7672 15.5591 21.4991 15.866 21.3354L15.8705 21.3309C16.1142 21.2036 16.385 21.1627 16.6377 21.1991C16.8995 21.24 17.1432 21.3582 17.3373 21.5491C17.4953 21.7036 17.6036 21.8036 17.7299 21.9172L18.0007 22.1581C18.6732 22.7808 19.9234 23.9399 21.1329 23.8672C23.7687 23.8672 26.6707 23.6081 29.3471 23.4853C29.5502 22.9399 29.7848 22.3263 30.024 21.7081C30.5656 20.2991 31.1253 18.8355 31.5179 17.5174L31.527 17.4901C31.6262 17.2401 31.7978 17.031 32.0099 16.8856C32.2265 16.7447 32.4838 16.6674 32.75 16.6765C33.4316 16.6992 33.7023 17.0401 33.8739 17.4765L33.9822 17.4401C34.2169 17.3765 34.4741 17.381 34.7133 17.4628C34.9525 17.5401 35.1556 17.6901 35.3046 17.881C35.4535 18.0674 35.5528 18.3037 35.5708 18.5537L35.6385 19.29C35.8732 19.4219 36.0944 19.5991 36.2839 19.8037C36.5322 20.0764 36.7353 20.3991 36.8526 20.7354C36.8932 20.8582 37.4799 20.8627 37.8591 21.0036L38.1434 21.1127ZM37.9493 21.8809L37.5883 21.7445C37.0828 21.5536 36.1891 21.2172 36.1124 20.9991C36.0312 20.7627 35.8913 20.5355 35.7107 20.3446C35.5392 20.1582 35.3316 20.0037 35.115 19.9128L34.8938 19.8218L34.79 18.6219C34.781 18.5264 34.7449 18.4401 34.6907 18.3674C34.6366 18.2946 34.5554 18.2401 34.4651 18.2083C34.3748 18.181 34.2755 18.1764 34.1853 18.2037C34.095 18.2264 34.0138 18.2764 33.9551 18.3446L33.4812 18.8946L33.2736 18.1719C33.1743 17.8219 33.075 17.4765 32.7275 17.4628C32.6237 17.4628 32.5244 17.4901 32.4431 17.5447C32.3664 17.5947 32.3032 17.6719 32.2626 17.7628C31.87 19.0901 31.3013 20.5673 30.7552 21.9899C30.4979 22.6581 30.2452 23.3126 29.9925 24.0035L29.9067 24.249L21.1826 24.6535C19.6391 24.7444 18.2264 23.4444 17.4727 22.7445L17.2064 22.499C17.062 22.3672 16.9356 22.249 16.7912 22.1127C16.719 22.0399 16.6242 21.9945 16.5249 21.9809C16.4301 21.9672 16.3263 21.9854 16.2361 22.0309L16.227 22.0354C16.1142 22.0945 16.033 22.199 15.9969 22.3127C15.9608 22.4263 15.9698 22.5581 16.0285 22.6717L16.033 22.6763C16.3579 23.299 16.7912 23.8353 17.3057 24.2808C17.8292 24.7308 18.434 25.0807 19.0839 25.308L19.5353 25.4671L19.296 25.8807C19.2283 25.9943 19.1607 26.1262 19.093 26.2807C19.0298 26.4262 18.9666 26.5943 18.9169 26.7852C18.7996 27.2034 18.7274 27.7534 18.7996 28.4034C18.8583 28.9215 19.0117 29.5033 19.3096 30.1487L19.4089 30.3624L19.269 30.5487L18.9711 30.9214C18.5694 31.4123 17.9917 32.1214 18.0504 32.4532L18.6145 35.494C18.6371 35.6076 18.6958 35.7031 18.7815 35.7758C18.8628 35.844 18.9711 35.8849 19.0884 35.8849H19.6616C19.7429 35.8849 19.806 35.8713 19.8557 35.8485C19.9144 35.8167 19.973 35.7667 20.0407 35.6985C20.0814 35.6485 20.1084 35.5895 20.1265 35.5304C20.1445 35.4622 20.1491 35.3895 20.1355 35.3213L19.779 33.385L21.6565 31.9805C21.8099 31.8669 22.013 31.7214 22.2251 31.5714C22.9473 31.0623 23.7958 30.4624 24.22 29.8169L24.3644 29.5988L27.5869 30.1578C28.643 30.3396 29.654 30.5078 30.4257 30.6351L30.7055 30.6805L31.4638 35.4804C31.4818 35.5985 31.5405 35.6985 31.6263 35.7713C31.712 35.844 31.8203 35.8849 31.9377 35.8849H32.4116C32.5424 35.8849 32.6643 35.8304 32.7546 35.744C32.8358 35.6622 32.89 35.5395 32.89 35.4076V30.5442L33.0208 30.426C33.3954 30.0851 33.5038 29.5897 33.6166 29.0761C33.8784 27.617 34.2665 26.0898 34.5824 24.6308L34.9164 24.6489C35.0338 24.658 35.1466 24.658 35.2504 24.658C35.3542 24.6535 35.467 24.6444 35.5844 24.6308C36.1576 24.558 36.7037 24.3353 37.1776 23.9944C37.6469 23.6581 38.0486 23.199 38.3465 22.6445C38.3826 22.5581 38.4052 22.4808 38.4097 22.4127C38.4142 22.3536 38.4052 22.2945 38.3871 22.2354C38.36 22.1718 38.3284 22.1127 38.2878 22.0718C38.2472 22.0263 38.2021 21.9899 38.1524 21.9672L37.9493 21.8809Z",
|
|
5298
|
+
"auto": "M42.598 27.613v2.053c0 1.427-1.174 2.567-2.612 2.567h-.889l-.037.14a3.335 3.335 0 0 1-2.38 2.38 3.347 3.347 0 0 1-4.08-2.38l-.037-.14H21.679l-.037.14a3.335 3.335 0 0 1-2.38 2.38 3.346 3.346 0 0 1-4.08-2.38l-.037-.14h-.533c-1.438 0-2.612-1.14-2.612-2.567v-1.801c0-1.171.785-2.194 1.916-2.502l4.791-1.306 2.857-3.751A3.308 3.308 0 0 1 24.195 19h9.31c1.142 0 2.198.585 2.803 1.551l2.22 3.547 2.54 1.15a2.598 2.598 0 0 1 1.53 2.365zm-24.183 6.355a2.416 2.416 0 1 0 0-4.832 2.416 2.416 0 0 0 0 4.832zm17.41 0a2.416 2.416 0 1 0 .002-4.832 2.416 2.416 0 0 0-.001 4.832zm4.161-2.657c.929 0 1.69-.733 1.69-1.645l.002-2.045a1.697 1.697 0 0 0-.992-1.528l-2.668-1.21a.414.414 0 0 1-.193-.168l-2.301-3.67a2.36 2.36 0 0 0-2.017-1.124h-9.312a2.39 2.39 0 0 0-1.898.943l-2.95 3.875a.48.48 0 0 1-.254.167l-4.933 1.347a1.686 1.686 0 0 0-1.24 1.609v1.805c0 .914.76 1.645 1.692 1.645h.465l.019-.167a3.33 3.33 0 0 1 2.939-2.938 3.34 3.34 0 0 1 3.693 2.94l.02.165h10.746l.019-.167a3.332 3.332 0 0 1 2.939-2.938 3.34 3.34 0 0 1 3.693 2.939l.02.166h.821z",
|
|
5299
|
+
"beauty": "M38.29 26.814c0 3.618-1.12 7.088-3.231 9.727-2.074 2.59-4.863 4.086-7.914 4.086-3.052 0-5.841-1.497-7.915-4.086-2.112-2.639-3.23-6.11-3.23-9.727 0-3.618 1.118-7.089 3.23-9.727C21.304 14.497 24.093 13 27.145 13c3.051 0 5.84 1.497 7.914 4.087 2.112 2.638 3.23 6.109 3.23 9.727zM27.144 39.699c.815 0 1.62-.12 2.395-.357 2.253-.687 4.204-2.302 5.599-4.514 1.458-2.311 2.222-5.123 2.222-8.014 0-2.895-.765-5.712-2.222-8.015-1.395-2.212-3.346-3.827-5.6-4.514a8.248 8.248 0 0 0-4.797 0c-2.247.687-4.198 2.304-5.592 4.514-1.457 2.303-2.222 5.12-2.222 8.015 0 2.891.764 5.703 2.222 8.014 1.394 2.21 3.345 3.827 5.592 4.514a8.249 8.249 0 0 0 2.403.357zm8.482-12.885c0 3.02-.91 5.897-2.649 8.062-1.556 1.945-3.604 3.09-5.833 3.09-2.23 0-4.278-1.145-5.834-3.09-1.739-2.165-2.649-5.042-2.649-8.062 0-3.02.91-5.897 2.649-8.07 1.553-1.941 3.602-3.082 5.834-3.082 2.231 0 4.28 1.14 5.833 3.082 1.74 2.173 2.649 5.05 2.649 8.07zM32.253 34.3c1.607-2.004 2.446-4.67 2.446-7.487 0-2.821-.84-5.491-2.446-7.487-1.377-1.727-3.176-2.744-5.108-2.744-1.933 0-3.732 1.017-5.11 2.745-1.605 1.995-2.445 4.665-2.445 7.486 0 2.818.839 5.483 2.446 7.487 1.374 1.723 3.173 2.736 5.109 2.736 1.935 0 3.734-1.013 5.108-2.736zm-1.037-13.304c1.074 1.618 1.663 3.742 1.663 5.817 0 .255-.213.46-.468.46a.46.46 0 0 1-.46-.46c0-1.841-.508-3.718-1.433-5.18-.89-1.4-2.093-2.296-3.373-2.296a.466.466 0 0 1-.461-.467.46.46 0 0 1 .46-.46c1.572 0 3.028 1.016 4.072 2.586z",
|
|
5300
|
+
"beauty2": "M19.9856 39.8118L16.3104 36.1366C14.9636 34.7897 14.9635 32.5999 16.3104 31.253L31.253 16.3104C32.5999 14.9635 34.7897 14.9635 36.1366 16.3104L39.8118 19.9856C40.5188 20.6926 40.5188 21.8388 39.8118 22.5457C39.224 23.1335 38.3326 23.2326 37.6425 22.843C38.0321 23.5331 37.933 24.4245 37.3452 25.0123C36.7575 25.6001 35.866 25.6991 35.1758 25.3095C35.5655 25.9996 35.4664 26.8911 34.8786 27.4789C34.2909 28.0667 33.3995 28.1657 32.7093 27.7761C33.0989 28.4663 32.9998 29.3577 32.4121 29.9455C31.8243 30.5332 30.9328 30.6323 30.2427 30.2427C30.6323 30.9328 30.5333 31.8243 29.9455 32.4121C29.3577 32.9998 28.4663 33.0989 27.7762 32.7093C28.1658 33.3995 28.0667 34.2909 27.4789 34.8786C26.8911 35.4664 25.9997 35.5655 25.3095 35.1758C25.6992 35.866 25.6001 36.7574 25.0123 37.3452C24.4245 37.933 23.5331 38.0321 22.843 37.6425C23.2326 38.3326 23.1335 39.224 22.5457 39.8118C21.8388 40.5187 20.6926 40.5187 19.9856 39.8118ZM20.5513 39.2461L16.8761 35.5709C15.8416 34.5364 15.8416 32.8532 16.8761 31.8187L31.8187 16.8761C32.8532 15.8416 34.5364 15.8416 35.5709 16.8761L39.2461 20.5513C39.6407 20.9458 39.6407 21.5855 39.2461 21.98C38.8516 22.3746 38.2119 22.3746 37.8174 21.98L34.1422 18.3048C33.8955 18.0581 33.4941 18.0581 33.2474 18.3048L32.657 18.8953L36.7796 23.0179C37.1741 23.4124 37.1741 24.0521 36.7796 24.4466C36.385 24.8411 35.7454 24.8411 35.3509 24.4466L31.2282 20.324L30.1903 21.3619L34.313 25.4845C34.7075 25.879 34.7075 26.5187 34.313 26.9132C33.9184 27.3077 33.2788 27.3077 32.8842 26.9132L28.7616 22.7906L27.7238 23.8284L31.8464 27.9511C32.2409 28.3456 32.2409 28.9852 31.8464 29.3798C31.4519 29.7743 30.8122 29.7743 30.4177 29.3798L26.2951 25.2572L25.2572 26.2951L29.3798 30.4177C29.7743 30.8122 29.7743 31.4518 29.3798 31.8464C28.9853 32.2409 28.3456 32.2409 27.9511 31.8464L23.8285 27.7238L22.7906 28.7616L26.9132 32.8842C27.3077 33.2788 27.3077 33.9184 26.9132 34.3129C26.5187 34.7075 25.879 34.7075 25.4845 34.3129L21.3619 30.1903L20.324 31.2282L24.4466 35.3508C24.8411 35.7454 24.8411 36.385 24.4466 36.7795C24.0521 37.1741 23.4124 37.1741 23.0179 36.7795L18.8953 32.6569L18.3048 33.2474C18.0581 33.4941 18.0581 33.8955 18.3048 34.1422L21.98 37.8174C22.3746 38.2119 22.3746 38.8516 21.98 39.2461C21.5855 39.6406 20.9459 39.6406 20.5513 39.2461Z",
|
|
5301
|
+
"botanical": "M40.8394 28.2455C40.6261 28.044 40.2816 28.045 40.0705 28.248C37.7819 30.4427 34.9907 30.998 32.1098 30.5256C31.558 29.0642 28.0498 21 17.9432 21C16.5136 21 14.9949 21.1628 13.4292 21.484C13.2701 21.5167 13.135 21.6152 13.0604 21.7527C12.9861 21.89 12.98 22.052 13.044 22.1943C16.6947 30.2986 22.8312 32 27.3356 32C27.3359 32 27.3356 32 27.3359 32C29.3661 32 30.923 31.6467 31.5476 31.4793C32.3494 31.6267 33.1352 31.7048 33.8979 31.7048C36.5478 31.7048 38.932 30.8093 40.8422 28.9776C41.0536 28.7748 41.0526 28.4469 40.8394 28.2455ZM27.3355 30.9647C23.2672 30.9647 17.7582 29.4552 14.3166 22.3702C15.5733 22.1478 16.7906 22.0353 17.9432 22.0353C26.4744 22.0353 29.877 28.0418 30.8414 30.255C27.1474 29.2852 23.405 26.7869 20.467 24.0093C20.2541 23.8076 19.9096 23.8091 19.6982 24.0118C19.4867 24.2148 19.4877 24.5426 19.7009 24.7441C22.8746 27.7443 26.1261 29.7934 29.2066 30.8552C28.6529 30.919 28.0245 30.9647 27.3355 30.9647Z",
|
|
5302
|
+
"children": "M32.871 34.797a3.051 3.051 0 0 1 1.956 2.84 3.056 3.056 0 0 1-3.052 3.052 3.056 3.056 0 0 1-3.052-3.052c0-.568.163-1.12.471-1.61l.423-.677-.79.1c-.485.062-.921.093-1.34.093-.415 0-.845-.032-1.34-.093l-.79-.098.423.674c.308.493.471 1.044.471 1.61a3.055 3.055 0 0 1-3.053 3.052 3.056 3.056 0 0 1-3.052-3.052 3.05 3.05 0 0 1 1.955-2.84l.739-.286-.688-.394a10.775 10.775 0 0 1-5.437-9.345V21.82H15.48a.479.479 0 1 1 0-.96l1.715.002c.266 0 .48.214.48.48v2.95h9.333V14.48c0-.266.214-.48.48-.48 5.939 0 10.77 4.833 10.77 10.772 0 3.863-2.075 7.418-5.437 9.345l-.687.394.738.286zM23.2 39.73a2.094 2.094 0 1 0-.004-4.188 2.094 2.094 0 0 0 .004 4.188zm10.67-2.093c0-1.155-.94-2.094-2.094-2.094a2.095 2.095 0 0 0-2.093 2.094c0 1.154.939 2.093 2.094 2.093a2.095 2.095 0 0 0 2.093-2.093zm-5.903-14.69l.013 2.304H17.677l.037.412c.456 5.04 4.708 8.921 9.773 8.921 5.065 0 9.317-3.88 9.772-8.92l.055-.602.001-.565-.056-.617a9.753 9.753 0 0 0-1.38-4.189c-.562-.927-1.516-1.996-2.375-2.665a9.775 9.775 0 0 0-5.126-2.027l-.412-.037v7.984z",
|
|
5303
|
+
"devices": "M35.309 17.1091C35.2563 16.5905 34.8183 16.1857 34.2857 16.1857H19.7143C19.1462 16.1857 18.6857 16.6462 18.6857 17.2143V20.8143H35.3143V17.2143C35.3143 17.1788 35.3125 17.1437 35.309 17.1091ZM35.3143 21.5H18.6857V37.1H35.3143V21.5ZM18 21.5V17.2143C18 16.2675 18.7675 15.5 19.7143 15.5H34.2857C35.1733 15.5 35.9034 16.1746 35.9911 17.039C35.997 17.0966 36 17.1551 36 17.2143V21.5V37.7857H18V21.5ZM27.1528 33.5031C29.3777 33.5031 31.1813 31.6995 31.1813 29.4745C31.1813 27.2496 29.3777 25.446 27.1528 25.446C24.9278 25.446 23.1242 27.2496 23.1242 29.4745C23.1242 31.6995 24.9278 33.5031 27.1528 33.5031ZM27.1528 34.1888C29.7564 34.1888 31.867 32.0782 31.867 29.4745C31.867 26.8709 29.7564 24.7603 27.1528 24.7603C24.5491 24.7603 22.4385 26.8709 22.4385 29.4745C22.4385 32.0782 24.5491 34.1888 27.1528 34.1888ZM32.5714 19.2714L27.4286 19.2714V18.5857L32.5714 18.5857V19.2714ZM21.4286 19.3572C21.6653 19.3572 21.8571 19.1653 21.8571 18.9286C21.8571 18.6919 21.6653 18.5 21.4286 18.5C21.1919 18.5 21 18.6919 21 18.9286C21 19.1653 21.1919 19.3572 21.4286 19.3572Z",
|
|
5304
|
+
"entertainment": "M16.013 20.395a1.896 1.896 0 0 1 1.266-.704l22.428-2.677a1.91 1.91 0 0 1 2.126 1.672l.385 3.219a.455.455 0 0 1-.39.504 2.554 2.554 0 0 0-2.177 2.816 2.558 2.558 0 0 0 2.778 2.225.456.456 0 0 1 .498.398l.384 3.218a1.906 1.906 0 0 1-.397 1.409 1.899 1.899 0 0 1-1.275.716l-4.226.505v1.149a1.915 1.915 0 0 1-1.913 1.913H12.913A1.915 1.915 0 0 1 11 34.845v-3.241c0-.248.198-.45.446-.454a2.55 2.55 0 0 0 2.496-2.539 2.55 2.55 0 0 0-2.496-2.538.455.455 0 0 1-.446-.455v-3.242c0-1.054.858-1.912 1.913-1.912h3.045l.055-.069zm-4.105 14.45c0 .553.451 1.003 1.005 1.003h22.585c.554 0 1.005-.45 1.005-1.003v-2.819l-.149-.028a3.42 3.42 0 0 1-1.803-.967 3.428 3.428 0 0 1-.99-2.419c0-.91.351-1.77.99-2.419a3.43 3.43 0 0 1 1.802-.967l.15-.029v-2.82c0-.553-.45-1.003-1.003-1.003h-3.96l-1.277-.001h-17.35c-.554 0-1.005.45-1.005 1.003v2.82l.15.028c.685.13 1.309.466 1.803.967.639.65.99 1.508.99 2.419s-.351 1.77-.99 2.419a3.43 3.43 0 0 1-1.803.968l-.15.028v2.82zm30.5-3.67l-.334-2.801-.152-.01a3.416 3.416 0 0 1-1.904-.747 3.427 3.427 0 0 1-1.27-2.284c-.108-.9.142-1.804.697-2.52a3.426 3.426 0 0 1 1.675-1.174l.145-.046-.334-2.8a1 1 0 0 0-1.115-.877l-18.641 2.225-3.958.362 3.983-.04h14.3c1.054 0 1.913.858 1.913 1.913v3.24c0 .25-.2.451-.448.455a2.55 2.55 0 0 0-2.495 2.539 2.55 2.55 0 0 0 2.495 2.54.455.455 0 0 1 .448.454v1.177l4.119-.491a1 1 0 0 0 .876-1.116zM28.782 27.14a.454.454 0 0 1 .253.777l-2.099 2.046.495 2.888a.455.455 0 0 1-.658.48l-2.595-1.365-2.595 1.365a.454.454 0 0 1-.659-.48l.496-2.89-2.1-2.044a.457.457 0 0 1 .252-.776l2.9-.422 1.299-2.63a.456.456 0 0 1 .814.002l1.297 2.628 2.9.421zM26 29.881a.454.454 0 0 1 .13-.402l1.612-1.57-2.227-.323a.453.453 0 0 1-.342-.248l-.995-2.017-.995 2.016a.457.457 0 0 1-.306.242c-.01.003-.01.003-.036.007l-2.225.324 1.608 1.568a.46.46 0 0 1 .132.403l-.38 2.217 1.991-1.047c.132-.07.29-.07.423 0l1.99 1.047-.38-2.217z",
|
|
5305
|
+
"evolution": "M33.962 25.089a2.694 2.694 0 1 1 .382 5.31l-4.056 6.744h1.731a.55.55 0 0 1 .535.552v.956h6.288a.542.542 0 0 1 0 1.085H14.389a.542.542 0 0 1 0-1.085H24.87v-.956c0-.3.24-.544.542-.552h3.61l4.253-7.07a2.69 2.69 0 0 1-1.391-2.36c0-.859.404-1.648 1.073-2.153l-6.246-8.125c.501 1.284.47 2.67-.1 4.058a7.312 7.312 0 0 1-1.348 2.137.544.544 0 0 1-.601.124 15.362 15.362 0 0 1-8.017-7.744l-.062-.13a.534.534 0 0 1 .105-.606 7.401 7.401 0 0 1 2.091-1.415c1.519-.678 3.06-.69 4.478-.036a2.31 2.31 0 0 1 1.88-.973c.598 0 1.175.235 1.607.653.443.437.694 1.034.694 1.655 0 .38-.094.756-.274 1.09l6.798 8.84zm.613 1.034a1.592 1.592 0 1 0 .001 3.183 1.592 1.592 0 0 0-.001-3.183zM31.473 38.65v-.426h-5.518v.426h5.518zm-6.151-21.57a.538.538 0 0 1 .265-.784 1.23 1.23 0 0 0-.45-2.365 1.22 1.22 0 0 0-1.147.805.541.541 0 0 1-.78.28c-1.257-.734-2.592-.791-3.986-.17a6.55 6.55 0 0 0-1.49.939 14.31 14.31 0 0 0 6.987 6.811c.367-.47.671-.99.899-1.537.57-1.41.47-2.743-.298-3.98z",
|
|
5306
|
+
"family": "M30.365 32.267a.407.407 0 0 1-.346-.203.453.453 0 0 1-.018-.418l2.098-4.405V25.27c0-1.38 1.068-2.502 2.382-2.502 1.311 0 2.38 1.122 2.38 2.502v1.972l2.097 4.405a.46.46 0 0 1-.018.418.406.406 0 0 1-.348.203h-2.366v6.167c0 .246-.295.556-.525.556L16.452 39a.398.398 0 0 1-.386-.406c0-.134-.005-.272-.005-.408v-7.454A2.553 2.553 0 0 1 15 28.64v-4.7c0-1.39 1.075-2.52 2.398-2.52h2.089c1.32 0 2.398 1.13 2.398 2.52v4.7a2.56 2.56 0 0 1-1.062 2.092v7.45h3.68v-3.855a2.551 2.551 0 0 1-1.06-2.091v-2.454c0-1.39 1.076-2.52 2.399-2.52l.802.003c1.32 0 2.398 1.13 2.398 2.519v2.454c0 .843-.4 1.622-1.062 2.09v3.853h4.769v-5.914h-2.384zm-13.49 5.914h3.132v-7.669l.002-.012a.43.43 0 0 1 .214-.389c.523-.291.846-.855.846-1.47v-4.702c0-.917-.71-1.664-1.582-1.664h-2.09c-.872 0-1.583.745-1.583 1.664v4.701c0 .616.325 1.18.845 1.471a.431.431 0 0 1 .216.38v7.69zm16.688 0h1.85v-6.344c0-.028.002-.057.007-.086l.01-.04a.412.412 0 0 1 .39-.301h2.116l-1.846-3.878a.426.426 0 0 1-.043-.19v-2.073c0-.907-.703-1.647-1.566-1.647-.866 0-1.568.74-1.568 1.647v2.072a.426.426 0 0 1-.044.191l-1.845 3.878h2.132c.182 0 .336.126.388.3l.012.041a.548.548 0 0 1 .007.086v6.344zm.916-16.653c-1.36 0-2.464-1.163-2.464-2.59 0-1.429 1.104-2.589 2.464-2.589 1.359 0 2.466 1.16 2.466 2.588 0 1.428-1.107 2.59-2.466 2.59zm0-4.324c-.91 0-1.65.778-1.65 1.736 0 .955.74 1.73 1.65 1.73.911 0 1.65-.775 1.65-1.73 0-.958-.739-1.736-1.65-1.736zm-9.16 20.977h1.848v-4.073-.01a.435.435 0 0 1 .216-.389c.52-.294.845-.857.845-1.473v-2.454c0-.917-.711-1.665-1.584-1.665h-.802c-.873 0-1.585.748-1.585 1.665v2.454c0 .616.323 1.18.844 1.47a.427.427 0 0 1 .216.38l.002.02v4.075zm.916-12.158c-1.36 0-2.464-1.162-2.464-2.59s1.105-2.588 2.464-2.588c1.357 0 2.464 1.16 2.464 2.588 0 1.428-1.107 2.59-2.464 2.59zm0-4.323c-.91 0-1.65.778-1.65 1.733 0 .957.74 1.733 1.65 1.733.909 0 1.65-.776 1.65-1.733 0-.955-.741-1.733-1.65-1.733zm-7.8-1.521c-1.36 0-2.467-1.163-2.467-2.588 0-1.428 1.107-2.591 2.466-2.591 1.357 0 2.464 1.163 2.464 2.59 0 1.426-1.107 2.589-2.464 2.589zm0-4.324c-.912 0-1.65.778-1.65 1.733 0 .958.738 1.734 1.65 1.734.908 0 1.65-.776 1.65-1.734 0-.955-.742-1.733-1.65-1.733z",
|
|
5307
|
+
"friends": "M26.125 29.568v6.248a.993.993 0 0 1-.992.993H14.55a1.55 1.55 0 0 1-1.55-1.55v-5.57a3.777 3.777 0 0 1 3.777-3.777H36.83a3.777 3.777 0 0 1 3.777 3.777v5.57a1.55 1.55 0 0 1-1.55 1.55H29.032a1.55 1.55 0 0 1-1.55-1.55v-5.691h-1.356zm-.992 0a.435.435 0 1 1 0-.871h9.746a.957.957 0 1 0 0-1.914H16.777a2.906 2.906 0 0 0-2.906 2.906v5.57c0 .375.304.679.679.679h1.235V31.36a.435.435 0 1 1 .872 0v4.578h8.596v-6.37h-.12zm3.22 5.691c0 .375.304.679.678.679h1.235V31.36a.435.435 0 1 1 .872 0v4.578h5.812V31.36a.435.435 0 1 1 .871 0v4.578h1.236a.678.678 0 0 0 .678-.679v-5.57a2.906 2.906 0 0 0-2.906-2.906h-.39l.086.174c.12.245.183.513.183.783a1.827 1.827 0 0 1-1.829 1.828h-6.526v5.691zm8.912-14.481a3.778 3.778 0 1 1-7.556 0 3.778 3.778 0 0 1 7.556 0zm-6.684 0a2.906 2.906 0 1 0 5.812 0 2.906 2.906 0 0 0-5.812 0zm-6.015 0a3.778 3.778 0 1 1-7.556 0 3.778 3.778 0 0 1 7.556 0zm-6.683 0a2.906 2.906 0 1 0 5.812 0 2.906 2.906 0 0 0-5.812 0z",
|
|
5308
|
+
"gamepad": "M23.72 24.983h-2.3v-2.278a.457.457 0 0 0-.456-.456.457.457 0 0 0-.456.456v2.278h-2.255a.457.457 0 0 0-.456.455c0 .251.205.456.456.456h2.255v2.278a.457.457 0 0 0 .911 0v-2.278h2.301c.25 0 .456-.205.456-.456a.457.457 0 0 0-.456-.455zm5.445-.456l-.16.16a.908.908 0 0 0 0 1.298c.183.16.41.25.639.25a.9.9 0 0 0 .637-.273l.16-.16a.908.908 0 0 0 0-1.298.88.88 0 0 0-1.276.023zm2.324-2.437l-.137.182a.908.908 0 0 0 0 1.298c.182.16.41.25.638.25a.9.9 0 0 0 .638-.273l.16-.159a.908.908 0 0 0 0-1.299.908.908 0 0 0-1.3 0zm.023 4.852l-.16.16a.908.908 0 0 0 0 1.298.9.9 0 0 0 .638.273.9.9 0 0 0 .638-.273l.16-.16a.908.908 0 0 0 0-1.298.88.88 0 0 0-1.276 0zm2.483-2.415l-.16.16a.908.908 0 0 0 0 1.298.9.9 0 0 0 .638.274.9.9 0 0 0 .638-.274l.16-.16a.908.908 0 0 0 0-1.298.88.88 0 0 0-1.276 0zM38.073 23.229l-.274-1.14v-.045c-.683-2.073-2.597-3.463-4.761-3.44h-.364c-.456 0-.912.068-1.413.205l-2.46.729a5.17 5.17 0 0 1-1.481.205h-1.663a5.169 5.169 0 0 1-1.481-.205l-2.46-.73a6.163 6.163 0 0 0-1.413-.181h-.342a5.022 5.022 0 0 0-4.761 3.44v.045l-.273 1.14a34.909 34.909 0 0 0-.912 8.998l.046 1.731c.023.684.341 1.345.866 1.8a2.45 2.45 0 0 0 1.64.615c.09 0 .16 0 .25-.022l.524-.046c1.299-.137 2.46-.911 3.053-2.073l.843-1.595a4.064 4.064 0 0 1 3.622-2.21h3.645c1.572 0 3.008.912 3.691 2.324l.66 1.39a3.837 3.837 0 0 0 3.099 2.164l.228.023a2.509 2.509 0 0 0 1.89-.615 2.527 2.527 0 0 0 .866-1.823l.046-1.708a34.255 34.255 0 0 0-.911-8.976zm0 8.976l-.046 1.708a1.609 1.609 0 0 1-.547 1.162 1.556 1.556 0 0 1-1.207.387l-.228-.022c-1.025-.092-1.913-.73-2.37-1.663l-.66-1.39c-.82-1.709-2.597-2.825-4.51-2.825h-3.646a5.013 5.013 0 0 0-4.442 2.71l-.843 1.596c-.456.865-1.344 1.48-2.324 1.572l-.524.045a1.583 1.583 0 0 1-1.207-.387 1.608 1.608 0 0 1-.547-1.162l-.045-1.731a34.245 34.245 0 0 1 .865-8.771l.274-1.117a4.1 4.1 0 0 1 3.895-2.78h.342c.364 0 .752.047 1.14.16l2.46.73a6.29 6.29 0 0 0 1.754.25h1.663c.615 0 1.207-.091 1.754-.25l2.46-.73c.388-.113.775-.16 1.162-.16h.41c1.709 0 3.28 1.14 3.85 2.803l.274 1.116c.638 2.848.934 5.81.843 8.749z",
|
|
5309
|
+
"health": "M41.47 26.874h-2.623c1.093-2.474.973-4.478.56-5.836C38.7 18.623 36.312 16 32.778 16c-.945 0-1.889.176-2.862.53-1.68.62-2.8 1.298-3.3 1.653-.5-.355-1.59-1.034-3.298-1.653a8.418 8.418 0 0 0-2.862-.53c-3.535 0-5.923 2.623-6.628 5.038-.414 1.444-.56 3.627.824 6.366H11.47a.467.467 0 0 0-.47.474c0 .265.205.47.47.47h3.743c.146.265.325.53.53.795 3.064 4.422 9.725 9.225 10.934 9.52v.03s.03 0 .06-.03h.086v-.03c1.033-.5 7.426-4.627 10.788-9.52.325-.44.59-.88.825-1.324h3.094c.265 0 .47-.206.47-.47 0-.27-.265-.445-.53-.445zm-4.713 1.74c-3.124 4.567-8.87 8.25-10.11 9.049-1.268-.799-6.985-4.512-10.139-9.05-.06-.086-.116-.175-.175-.265h4.332c.176 0 .355-.09.44-.265l1.978-3.888 3.094 7.926c.056.176.265.295.44.295h.03c.206 0 .385-.15.44-.355l2.714-9.284 1.444 4.687c.06.175.205.295.384.325.176.03.351-.06.47-.206l1.15-1.68.974 1.65a.469.469 0 0 0 .41.236h2.654c-.18.294-.355.56-.53.824zm1.06-1.74h-2.889l-1.209-2.063a.469.469 0 0 0-.41-.235c-.18 0-.325.06-.415.205l-1 1.474-1.623-5.273c-.06-.206-.265-.325-.47-.355-.206 0-.411.15-.47.355l-2.743 9.46-2.978-7.605a.438.438 0 0 0-.41-.295.463.463 0 0 0-.445.265l-2.325 4.57h-4.687c-1.179-2.152-1.504-4.216-.974-6.07.62-2.094 2.654-4.333 5.717-4.333.825 0 1.683.175 2.538.47 2.15.795 3.299 1.71 3.329 1.71a.452.452 0 0 0 .59 0s1.149-.915 3.328-1.71a7.116 7.116 0 0 1 2.537-.47c3.034 0 5.098 2.239 5.714 4.332.504 1.71.239 3.594-.705 5.568z",
|
|
5310
|
+
"hobbies": "M37.164 19.512A2.844 2.844 0 0 1 40 22.357v11.718a3 3 0 0 1-2.996 3.006H16.996A3 3 0 0 1 14 34.075V22.357a2.852 2.852 0 0 1 2.836-2.845h4.488l.146-.634A3.691 3.691 0 0 1 25.084 16h3.832a3.69 3.69 0 0 1 3.615 2.88l.14.632h4.493zm-15.5.853h-4.828a1.99 1.99 0 0 0-1.986 1.992v11.718c0 1.192.958 2.154 2.146 2.154h20.008c1.183 0 2.14-.963 2.14-2.154V22.357c0-1.1-.89-1.992-1.986-1.992l-4.821-.006a.413.413 0 0 1-.411-.324l-.223-.964a2.858 2.858 0 0 0-2.792-2.224l-3.827.006a2.842 2.842 0 0 0-2.787 2.218l-.223.964a.424.424 0 0 1-.41.33zm-2.776 3.071a.647.647 0 0 1-.645.653.647.647 0 0 1-.645-.653.646.646 0 1 1 1.29 0zM27 33.666c-2.932 0-5.318-2.391-5.318-5.335 0-2.94 2.388-5.336 5.318-5.336 2.93 0 5.318 2.396 5.318 5.336 0 2.94-2.388 5.336-5.318 5.336zm0-9.824c-2.463 0-4.474 2.017-4.474 4.489 0 2.475 2.009 4.489 4.474 4.489 2.465 0 4.474-2.014 4.474-4.489 0-2.472-2.01-4.489-4.474-4.489z",
|
|
5311
|
+
"home": "M36.863 40.113H18.167a.462.462 0 0 1-.46-.464V27.983h-3.243a.465.465 0 0 1-.43-.287.465.465 0 0 1 .103-.503L27.17 14.137a.456.456 0 0 1 .653 0l13.014 13.03a.462.462 0 0 1-.3.817l-3.21-.001v11.666a.462.462 0 0 1-.464.464zm-10.086-.924H36.4V27.52c0-.253.21-.46.463-.46h2.557L27.5 15.118 15.577 27.06h2.59c.257 0 .464.206.464.46v11.67h2.003v-9.974c0-.253.206-.463.463-.463h5.22c.253 0 .46.21.46.463v9.973zm-5.22 0h4.297v-9.51h-4.297v9.51zm12.346-5.066H29.46a.464.464 0 0 1-.463-.463v-4.444c0-.253.207-.463.463-.463h4.443c.254 0 .46.21.46.463v4.444a.464.464 0 0 1-.46.463zm-3.98-.927h3.517V29.68h-3.516v3.516z",
|
|
5312
|
+
"idea": "M30.86 31.2513L31.304 31.0307C34.1245 29.629 36.06 26.7198 36.06 23.36C36.06 18.6324 32.2276 14.8 27.5 14.8C22.7725 14.8 18.94 18.6324 18.94 23.36C18.94 26.7198 20.8755 29.629 23.696 31.0306L24.14 31.2513V33.84C24.14 34.5027 24.6773 35.04 25.34 35.04H29.66C30.3227 35.04 30.86 34.5027 30.86 33.84V31.2513ZM31.66 31.7471V33.84C31.66 34.9446 30.7646 35.84 29.66 35.84H25.34C24.2354 35.84 23.34 34.9446 23.34 33.84V31.7471C20.258 30.2154 18.14 27.0351 18.14 23.36C18.14 18.1906 22.3306 14 27.5 14C32.6694 14 36.86 18.1906 36.86 23.36C36.86 27.0351 34.742 30.2155 31.66 31.7471ZM29.82 35.8H25.18V38.2C25.18 38.8627 25.7173 39.4 26.38 39.4H28.62C29.2827 39.4 29.82 38.8627 29.82 38.2V35.8ZM24.38 35V38.2C24.38 39.3046 25.2754 40.2 26.38 40.2H28.62C29.7246 40.2 30.62 39.3046 30.62 38.2V35H24.38ZM27.9 25.44L27.9 35.8L27.1 35.8L27.1 25.44L27.9 25.44ZM26.98,22.84a0.52,0.52 0 1,0 1.04,0a0.52,0.52 0 1,0 -1.04,0z",
|
|
5313
|
+
"money": "M38.49 25.364h-.61v-4.132c0-.972-.764-1.736-1.687-1.736l-.46.003v-2.766c0-.969-.714-1.733-1.58-1.733h-.104l-17.466 4.49c-.006 0-.016.006-.021.006-.863.07-1.562.808-1.562 1.736v16.035c0 .972.764 1.736 1.684 1.736h19.51a1.72 1.72 0 0 0 1.735-1.736v-4.242h.562c.309 0 .509-.205.509-.509v-6.637a.511.511 0 0 0-.51-.515zm-4.24-9.395c.254.05.509.359.509.764v2.758H20.668l13.581-3.522zm2.66 21.298c0 .408-.309.764-.717.764H16.684c-.405 0-.715-.356-.715-.764V21.232c0-.408.31-.764.715-.764h19.457c.406 0 .715.356.715.764v4.132h-5.055a3.793 3.793 0 0 0-3.83 3.83 3.823 3.823 0 0 0 3.83 3.831h5.11v4.242zm1.066-5.211h-6.175c-1.533 0-2.806-1.279-2.806-2.807s1.278-2.806 2.806-2.806h6.175v5.613z",
|
|
5314
|
+
"music": "M16.0946 41C15.6758 40.9998 15.2613 40.9141 14.8763 40.7478C14.4913 40.5816 14.1438 40.3384 13.8549 40.033C13.5659 39.7275 13.3414 39.3662 13.1951 38.9708C13.0487 38.5754 12.9836 38.1542 13.0035 37.7327C13.0234 37.3112 13.1281 36.8982 13.3111 36.5186C13.494 36.1391 13.7516 35.8008 14.0681 35.5245C14.3846 35.2481 14.7535 35.0393 15.1524 34.9107C15.5513 34.7821 15.972 34.7364 16.389 34.7764L14.6146 26.5102C14.5938 26.4131 14.6087 26.3118 14.6566 26.225C14.7045 26.1383 14.782 26.072 14.8748 26.0386L25.8085 22.105C25.8629 22.0854 25.9208 22.0777 25.9784 22.0824C26.0359 22.0872 26.0918 22.1043 26.1423 22.1326C26.1928 22.1608 26.2368 22.1996 26.2712 22.2464C26.3056 22.2931 26.3297 22.3467 26.3419 22.4036L28.849 34.0823C28.8553 34.1122 28.8583 34.1427 28.8581 34.1732C28.953 34.8152 28.8469 35.4711 28.5543 36.0494C28.2617 36.6277 27.7974 37.0997 27.2259 37.3995C26.6545 37.6993 26.0044 37.812 25.3664 37.722C24.7283 37.6319 24.134 37.3436 23.6664 36.8971C23.1987 36.4506 22.8809 35.8683 22.7574 35.2313C22.6338 34.5942 22.7106 33.9342 22.977 33.3432C23.2435 32.7522 23.6863 32.2597 24.2438 31.9343C24.8012 31.6089 25.4456 31.4668 26.087 31.5278L24.7909 25.4897L17.1952 28.2221L19.1273 37.2215C19.2243 37.677 19.2189 38.1486 19.1115 38.6018C19.0041 39.055 18.7975 39.4782 18.5067 39.8404C18.2159 40.2027 17.8484 40.4949 17.4311 40.6955C17.0137 40.8961 16.5571 41.0002 16.0946 41V41ZM16.096 35.5802C15.9355 35.5801 15.7754 35.5974 15.6184 35.6316C15.1769 35.7276 14.7735 35.9533 14.4593 36.2803C14.1451 36.6072 13.9342 37.0207 13.8533 37.4684C13.7723 37.9162 13.825 38.378 14.0047 38.7956C14.1843 39.2131 14.4828 39.5676 14.8625 39.8142C15.2421 40.0609 15.6858 40.1885 16.1375 40.181C16.5892 40.1736 17.0285 40.0313 17.3999 39.7723C17.7713 39.5133 18.0581 39.1491 18.2241 38.7258C18.39 38.3026 18.4277 37.8392 18.3322 37.3944L16.3263 28.044C16.3056 27.947 16.3205 27.8457 16.3684 27.759C16.4163 27.6723 16.4938 27.6061 16.5866 27.5727L24.9535 24.563C25.0079 24.5433 25.0658 24.5356 25.1234 24.5404C25.181 24.5451 25.2369 24.5622 25.2874 24.5905C25.338 24.6187 25.3819 24.6575 25.4163 24.7043C25.4507 24.7511 25.4748 24.8047 25.487 24.8616L27.012 31.9653C27.0269 32.0353 27.0233 32.108 27.0016 32.1762C26.9799 32.2444 26.9408 32.3057 26.8882 32.3539C26.8356 32.402 26.7713 32.4355 26.7019 32.4508C26.6325 32.4662 26.5602 32.4629 26.4925 32.4413C26.0177 32.2882 25.5062 32.2958 25.0362 32.463C24.5661 32.6302 24.1632 32.9477 23.8891 33.3672C23.615 33.7867 23.4846 34.285 23.518 34.7861C23.5513 35.2872 23.7465 35.7635 24.0737 36.1424C24.4009 36.5212 24.8422 36.7818 25.3302 36.8843C25.8182 36.9869 26.3261 36.9257 26.7764 36.7101C27.2266 36.4946 27.5945 36.1365 27.8238 35.6906C28.0532 35.2447 28.1314 34.7354 28.0465 34.2405C28.0435 34.2233 28.0416 34.2059 28.0409 34.1884L25.6461 23.032L15.4835 26.6871L17.3135 35.2131C17.3285 35.2832 17.325 35.3561 17.3032 35.4244C17.2814 35.4927 17.2422 35.554 17.1895 35.6022C17.1367 35.6504 17.0723 35.6838 17.0028 35.699C16.9332 35.7142 16.8608 35.7107 16.793 35.6889C16.5676 35.6166 16.3325 35.5799 16.096 35.5802V35.5802ZM32.7424 25.1081C32.3884 25.1073 32.0356 25.0655 31.6912 24.9834C29.8486 24.5494 28.6167 23.0683 28.9448 21.6848C29.273 20.3014 31.0409 19.5302 32.8832 19.9647C33.2999 20.0622 33.7004 20.2187 34.0726 20.4294L35.7608 13.3246C35.787 13.2158 35.8552 13.1218 35.9506 13.0631C36.0461 13.0043 36.1609 12.9857 36.2701 13.0111L37.5591 13.3154C37.5742 13.3189 37.5891 13.3234 37.6036 13.3287C39.1526 13.7107 40.4602 14.865 40.8653 16.2137C41.2218 17.3992 40.8653 18.6375 39.86 19.7002C39.7944 19.7695 39.7073 19.8147 39.6127 19.8284C39.5181 19.842 39.4217 19.8234 39.3391 19.7754C39.2565 19.7275 39.1927 19.6531 39.1579 19.5643C39.1231 19.4756 39.1194 19.3777 39.1475 19.2866C39.2703 18.8908 39.3135 18.4747 39.2748 18.0622C39.236 17.6497 39.116 17.2489 38.9217 16.8827C38.5874 16.3177 38.0554 15.896 37.4281 15.6987L35.6302 23.2658C35.6143 23.3294 35.5946 23.392 35.5712 23.4534C35.2164 24.4809 34.0837 25.1081 32.7424 25.1081ZM31.8563 20.6882C30.8189 20.6882 29.9417 21.1531 29.7693 21.8792C29.5516 22.7941 30.5216 23.8397 31.8868 24.1621C33.2065 24.4732 34.4745 24.0415 34.771 23.1768C34.785 23.1422 34.7968 23.1067 34.8065 23.0707L36.7067 15.0719C36.7326 14.963 36.8008 14.8688 36.8963 14.81C36.9919 14.7512 37.107 14.7327 37.2162 14.7584C37.7197 14.8569 38.197 15.0593 38.6173 15.3529C39.0376 15.6464 39.3915 16.0244 39.6564 16.4626C39.871 16.8418 40.0159 17.2563 40.0839 17.6864C40.1869 17.2811 40.1768 16.8554 40.0547 16.4554C39.7345 15.3897 38.6278 14.4367 37.3635 14.1385C37.3487 14.1348 37.3347 14.1307 37.3209 14.1259L36.4871 13.9289L34.7548 21.2213C34.7383 21.291 34.7042 21.3553 34.6559 21.4083C34.6076 21.4612 34.5465 21.501 34.4785 21.524C34.4105 21.5469 34.3377 21.5522 34.2671 21.5394C34.1965 21.5266 34.1303 21.496 34.0747 21.4507C33.6687 21.128 33.1948 20.9008 32.6885 20.7861C32.4159 20.7214 32.1366 20.6886 31.8563 20.6882Z",
|
|
5315
|
+
"palm": "M17.6524 19.9464C19.3386 18.3308 21.0374 17.8884 22.5216 18.0699C24.0877 18.2615 25.3542 19.1402 26.0674 19.9216L26.6525 20.5627L25.785 20.591C23.9571 20.6506 22.6183 21.0316 21.6518 21.6025C20.6903 22.1703 20.0769 22.9376 19.7126 23.811C19.0201 25.4707 19.216 27.5461 19.752 29.3671C20.0706 27.5716 21.1593 26.164 22.409 25.1297C23.7269 24.0391 25.2551 23.3359 26.3578 23.0023L26.8417 22.8559L26.8729 23.3605C27.3722 31.4395 23.3709 36.4639 20.4761 38.6H27.3175C31.2763 32.8381 30.0426 26.5141 28.9068 23.5273L28.7006 22.9851H29.2807C31.1411 22.9851 32.4738 24.3418 33.3841 25.9639C34.2018 27.4208 34.7338 29.1822 35.0389 30.6669C36.5193 26.0858 35.7542 23.5235 34.336 22.1367C32.8301 20.6641 30.4456 20.3654 28.6276 20.5882L27.1558 20.7687L28.3372 19.8725C31.4012 17.5483 34.6599 18.9084 36.4431 20.2465C36.1571 18.7984 35.658 17.8412 35.062 17.23C34.4236 16.5754 33.6414 16.2841 32.7926 16.2385C31.0616 16.1454 29.0887 17.0798 27.7593 18.0322L27.5044 18.2148L27.2662 18.0109C23.932 15.1575 21.7129 15.0232 20.278 15.8259C18.9213 16.5848 18.0765 18.2689 17.6524 19.9464ZM27.5497 17.2035C24.2402 14.4533 21.7219 14.1016 19.8875 15.1277C18.0725 16.1429 17.1343 18.4114 16.7496 20.3095C16.6824 20.6407 16.8722 20.9073 17.1124 21.0153C17.3456 21.1201 17.6546 21.092 17.8696 20.8636C19.5218 19.1086 21.1158 18.7039 22.4245 18.864C23.3615 18.9786 24.1838 19.3869 24.8039 19.8537C23.3374 20.0005 22.1654 20.37 21.245 20.9136C20.1278 21.5735 19.4019 22.4779 18.9742 23.503C18.1278 25.5319 18.4618 27.9958 19.1 29.9665C19.1626 30.1598 19.3033 30.2893 19.4628 30.3527C19.6117 30.412 19.7665 30.4113 19.8956 30.3837C20.1306 30.3335 20.4528 30.1432 20.5002 29.7677C20.711 28.0964 21.6965 26.7578 22.9191 25.746C23.957 24.8871 25.1431 24.2835 26.1004 23.9322C26.4233 32.5112 21.4389 37.3163 18.9186 38.6462L19.1053 39.4H27.7335L27.853 39.2307C31.9135 33.4813 30.9859 27.1858 29.8698 23.8466C31.0131 24.0894 31.9448 25.0338 32.6865 26.3554C33.5441 27.8835 34.0808 29.8065 34.3534 31.3401C34.4121 31.6703 34.6819 31.8546 34.9397 31.8804C35.2 31.9065 35.5063 31.7752 35.6197 31.4499C37.3777 26.4068 36.687 23.3167 34.8954 21.5647C33.6086 20.3065 31.8257 19.8148 30.2067 19.7346C32.5514 18.8515 34.8696 19.9816 36.2156 21.0844C36.4471 21.274 36.7412 21.2695 36.9547 21.1577C37.1721 21.0439 37.3494 20.7933 37.2979 20.4791C37.0099 18.7229 36.4289 17.4858 35.6347 16.6715C34.8345 15.8509 33.8517 15.4942 32.8356 15.4396C30.9561 15.3386 28.9372 16.2662 27.5497 17.2035Z",
|
|
5316
|
+
"party": "M27.46 39.01h3.006c.472 0 .9.247 1.139.642l.169.28h-9.551l.17-.28a1.327 1.327 0 0 1 1.138-.642h3.006v-7.19L17.09 18.937a.461.461 0 0 1 .372-.735H30.25l4.197-5.037a.463.463 0 0 1 .71.592l-3.704 4.445h5.082a.463.463 0 0 1 .373.735 4729.84 4729.84 0 0 1-5.855 7.987l-.106.145c-1.661 2.263-2.457 3.347-3.408 4.645l-.079.107v7.189zm-9.087-19.885l8.625 11.763 8.626-11.763h-17.25z",
|
|
5317
|
+
"reparingService": "M17.6264 35.9866L14.9033 31.3082L17.2692 29.9535C17.0676 29.1684 16.9592 28.3465 16.9592 27.4998C16.9592 26.6532 17.0676 25.8313 17.2692 25.0463L14.9033 23.6915L17.6264 19.0133L19.9935 20.3688C21.1773 19.2228 22.6451 18.3639 24.2819 17.9066V15.2H29.7182V17.9068C31.3549 18.3641 32.8227 19.223 34.0065 20.3689L36.3736 19.0134L39.0967 23.6916L36.7309 25.0464C36.9326 25.8314 37.0409 26.6533 37.0409 27.5001C37.0409 28.3468 36.9326 29.1687 36.7309 29.9537L39.0967 31.3085L36.3736 35.9866L34.0066 34.6311C32.8228 35.777 31.355 36.636 29.7182 37.0933V39.8H24.2819V37.0933C22.6452 36.6359 21.1774 35.777 19.9935 34.6311L17.6264 35.9866ZM20.1352 33.6281C21.4188 35.0414 23.1385 36.0571 25.0819 36.4658V39H28.9182V36.4658C30.8617 36.0571 32.5813 35.0414 33.8649 33.6281L36.0818 34.8976L38 31.6024L35.7864 30.3347C36.08 29.4414 36.2409 28.4893 36.2409 27.5001C36.2409 26.5109 36.08 25.5587 35.7864 24.6654L38 23.3978L36.0819 20.1025L33.8649 21.3719C32.5812 19.9586 30.8616 18.9429 28.9182 18.5343V16H25.0819V18.5341C23.1384 18.9427 21.4188 19.9585 20.1352 21.3718L17.9182 20.1023L16 23.3976L18.2137 24.6653C17.9201 25.5584 17.7592 26.5107 17.7592 27.4998C17.7592 28.489 17.9201 29.4412 18.2137 30.3345L16 31.6021L17.9182 34.8976L20.1352 33.6281ZM27.0001 22.9394C24.4556 22.9394 22.3956 24.9921 22.3956 27.4999C22.3956 30.0078 24.4556 32.0605 27.0001 32.0605C29.5445 32.0605 31.6046 30.0078 31.6046 27.4999C31.6046 24.9921 29.5445 22.9394 27.0001 22.9394ZM27.0001 22.1394C24.02 22.1394 21.5956 24.5441 21.5956 27.4999C21.5956 30.4557 24.02 32.8605 27.0001 32.8605C29.9801 32.8605 32.4046 30.4557 32.4046 27.4999C32.4046 24.5441 29.9801 22.1394 27.0001 22.1394Z",
|
|
5318
|
+
"security": "M35.7582 19.8593L26.5878 15.0529C26.4517 14.9815 26.2887 14.9825 26.1536 15.0554L17.2369 19.8618C17.0907 19.9408 17 20.0916 17 20.2558V26.5343C17.0054 31.6953 20.1141 36.3644 24.9216 38.4321L26.1592 38.9626C26.2749 39.0122 26.4066 39.0125 26.5225 38.9631L27.9172 38.3707C32.8138 36.3479 35.9995 31.6337 36 26.4097V20.2558C36 20.0899 35.907 19.9373 35.7582 19.8593ZM35.0869 26.4097C35.0859 31.2736 32.1191 35.6623 27.5597 37.5445L27.5567 37.546L26.3422 38.0617L25.2869 37.6089C20.8119 35.6843 17.9179 31.3385 17.9128 26.5343V20.5217L26.3761 15.9593L35.0869 20.5249V26.4097ZM22.8092 26.0853C22.6443 25.8753 22.3543 25.8505 22.1612 26.0298C21.9681 26.2088 21.9453 26.5244 22.1102 26.7341L24.5376 29.8247C24.6997 30.031 24.9836 30.0592 25.1769 29.888L30.8304 24.8872C31.0274 24.7132 31.0571 24.3984 30.8968 24.1843C30.7368 23.9704 30.4473 23.9378 30.2503 24.1121L24.9451 28.8045L22.8092 26.0853Z",
|
|
5319
|
+
"smile": "M32.0437 29.7417C31.8288 29.5492 31.4985 29.568 31.307 29.7824C30.2187 30.9986 28.6493 31.6957 27.0001 31.6957C25.3514 31.6957 23.7815 30.9986 22.6931 29.7824C22.5006 29.568 22.1714 29.5492 21.9564 29.7417C21.7415 29.9337 21.7237 30.2635 21.9157 30.4784C23.2018 31.9153 25.055 32.7391 27.0001 32.7391C28.9456 32.7391 30.7989 31.9148 32.0844 30.4784C32.2764 30.2635 32.2582 29.9337 32.0437 29.7417ZM27 15C20.3833 15 15 20.3833 15 27C15 33.6167 20.3833 39 27 39C33.6167 39 39 33.6167 39 27C39 20.3833 33.6167 15 27 15ZM27 37.9565C20.9583 37.9565 16.0435 33.0417 16.0435 27C16.0435 20.9583 20.9583 16.0435 27 16.0435C33.0417 16.0435 37.9565 20.9583 37.9565 27C37.9565 33.0417 33.0417 37.9565 27 37.9565ZM31.1739 23.3478C29.7355 23.3478 28.5652 24.5181 28.5652 25.9565C28.5652 26.2445 28.799 26.4783 29.087 26.4783C29.375 26.4783 29.6087 26.2445 29.6087 25.9565C29.6087 25.0936 30.311 24.3913 31.1739 24.3913C32.0369 24.3913 32.7391 25.0936 32.7391 25.9565C32.7391 26.2445 32.9729 26.4783 33.2609 26.4783C33.5489 26.4783 33.7826 26.2445 33.7826 25.9565C33.7826 24.5181 32.6123 23.3478 31.1739 23.3478ZM24.3912 25.9565C24.3912 26.2445 24.625 26.4783 24.913 26.4783C25.201 26.4783 25.4347 26.2445 25.4347 25.9565C25.4347 24.5181 24.2644 23.3478 22.826 23.3478C21.3876 23.3478 20.2173 24.5181 20.2173 25.9565C20.2173 26.2445 20.4511 26.4783 20.7391 26.4783C21.0271 26.4783 21.2608 26.2445 21.2608 25.9565C21.2608 25.0936 21.9631 24.3913 22.826 24.3913C23.689 24.3913 24.3912 25.0936 24.3912 25.9565Z",
|
|
5320
|
+
"sport": "M19.565 26.508v1.901h15.597v-1.9H19.565zm0-.948v-4.943c0-.892-.715-1.617-1.595-1.617h-.75c-.879 0-1.594.725-1.594 1.617v2.567h-1.031c-.88 0-1.595.723-1.595 1.614v5.323c0 .892.715 1.615 1.595 1.615h1.031v2.567c0 .892.715 1.617 1.595 1.617h.75c.879 0 1.594-.725 1.594-1.617V29.36h15.597v4.943c0 .892.715 1.617 1.595 1.617h.75c.881 0 1.594-.725 1.594-1.617v-2.567h1.031c.882 0 1.595-.723 1.595-1.615v-5.323c0-.891-.713-1.614-1.595-1.614h-1.031v-2.567c0-.892-.713-1.617-1.595-1.617h-.75c-.879 0-1.594.725-1.594 1.617v4.943H19.565zm-3.939 5.225h-1.031a.66.66 0 0 1-.657-.664v-5.323a.66.66 0 0 1 .657-.664h1.031v6.651zm.938.95V20.618c0-.368.294-.667.657-.667h.75c.362 0 .656.3.656.667v13.686a.66.66 0 0 1-.657.664h-.75a.66.66 0 0 1-.656-.664v-2.567zm22.537-.95h1.031a.66.66 0 0 0 .657-.664v-5.323a.66.66 0 0 0-.657-.664h-1.031v6.651zm-.938.95V20.618a.662.662 0 0 0-.657-.667h-.75a.662.662 0 0 0-.656.667v13.686a.66.66 0 0 0 .657.664h.75a.66.66 0 0 0 .656-.664v-2.567z",
|
|
5321
|
+
"theater": "M28.7364 18.87C30.2876 18.87 31.5096 19.6791 31.5096 20.7169C31.5096 21.7492 30.2932 22.5639 28.7364 22.5639C27.1852 22.5639 25.9632 21.7548 25.9632 20.7169C25.9632 19.6791 27.1796 18.87 28.7364 18.87ZM28.7364 21.6432C29.791 21.6432 30.5833 21.1578 30.5833 20.7169C30.5833 20.2761 29.7966 19.7907 28.7364 19.7907C27.6818 19.7907 26.8895 20.2761 26.8895 20.7169C26.8895 21.1522 27.6818 21.6432 28.7364 21.6432ZM19.8701 26.9608C21.2985 26.3414 22.7381 26.6037 23.1454 27.5523C23.5584 28.5008 22.7604 29.734 21.3376 30.3478C19.9147 30.9616 18.4695 30.7049 18.0622 29.7563C17.6493 28.8077 18.4416 27.5802 19.8701 26.9608ZM18.9048 29.388C19.0777 29.7898 19.9984 29.9237 20.9693 29.4996C21.9402 29.0811 22.4703 28.3167 22.2973 27.915C22.1243 27.5132 21.2037 27.3793 20.2328 27.8034C19.2674 28.2274 18.7318 28.9919 18.9048 29.388ZM28.5634 25.5435C29.4227 26.8604 30.8679 27.6416 32.4358 27.6416C34.0038 27.6416 35.449 26.8548 36.3083 25.5435L37.0839 26.0457C36.0572 27.6248 34.3163 28.5678 32.4358 28.5678C30.5498 28.5678 28.8145 27.6248 27.7878 26.0457L28.5634 25.5435ZM36.1298 18.8644C37.681 18.8644 38.903 19.6735 38.903 20.7114C38.903 21.7492 37.6865 22.5583 36.1298 22.5583C34.573 22.5639 33.3566 21.7492 33.3566 20.7114C33.3566 19.6735 34.573 18.8644 36.1298 18.8644ZM36.1298 21.6376C37.1844 21.6376 37.9767 21.1522 37.9767 20.7114C37.9767 20.2761 37.1844 19.7851 36.1298 19.7851C35.0752 19.7851 34.2828 20.2706 34.2828 20.7114C34.2828 21.1466 35.0752 21.6376 36.1298 21.6376ZM23.6587 21.4814V13C23.6587 13 27.7878 15.4775 32.4359 15.4775C37.0783 15.4775 41.2074 13 41.2074 13V24.5949C41.2074 27.781 39.4776 30.7216 36.6933 32.2673C35.8396 32.7415 34.9077 33.0652 33.9536 33.2326C33.6467 34.2593 33.1668 35.2134 32.5196 36.0616C30.84 38.26 28.2677 39.7889 24.7078 39.4708C21.5384 39.1863 18.7764 37.1664 17.5042 34.2425L12.8617 23.6185C12.8617 23.6185 18.648 24.5894 23.6587 21.4814ZM36.2469 31.4582C38.7355 30.0744 40.2867 27.4463 40.2867 24.5949V14.5512C37.8539 15.762 35.1588 16.4037 32.4359 16.4037C29.7129 16.4037 27.0178 15.7676 24.585 14.5512V24.5949C24.585 27.4463 26.1306 30.0744 28.6248 31.4582C30.946 32.7527 33.9201 32.7527 36.2469 31.4582ZM18.3467 33.8798C19.485 36.4912 21.9569 38.2823 24.7915 38.5557C27.5144 38.8124 30.1258 37.6741 31.783 35.5091C32.2852 34.8563 32.6646 34.1309 32.938 33.3609C32.7707 33.3721 30.2095 33.5283 27.5702 31.9046C25.2044 31.9269 23.7536 34.1867 23.4969 35.7379L22.5874 35.5873C22.8999 33.7292 24.5292 31.447 26.5993 31.1569C24.7524 29.5108 23.6587 27.1394 23.6587 24.6061V22.5416C20.8186 24.0872 17.56 24.8405 14.3292 24.6786L18.3467 33.8798Z",
|
|
5322
|
+
"travel": "M42.158 34.859v-.04H26.766a5.54 5.54 0 0 1-.429-2.144 5.488 5.488 0 0 1 5.495-5.495 5.522 5.522 0 0 1 4.831 2.844c2.185-.35 4.365.899 5.185 3.042.232.585.31 1.208.31 1.793zm-14.732-.966h13.705a3.167 3.167 0 0 0-.15-.494c-.65-1.687-2.372-2.749-4.171-2.46l-.64.103-.316-.565a4.594 4.594 0 0 0-4.022-2.371 4.564 4.564 0 0 0-4.57 4.569c0 .418.055.823.164 1.218zm-6.22-15.035a.484.484 0 0 1 .276-.63.485.485 0 0 1 .63.276l.626 1.6a.491.491 0 0 1-.28.632.489.489 0 0 1-.629-.279l-.622-1.599zm-6.708 6.669a.489.489 0 0 1 .374-.902l1.868.78a.487.487 0 0 1 .265.635.493.493 0 0 1-.64.266l-1.867-.78zm22.676-.745a.487.487 0 0 1 .384.898l-1.636.7a.489.489 0 0 1-.64-.255.483.483 0 0 1 .255-.64l1.637-.703zm-6.887-6.516a.486.486 0 0 1 .633-.269c.252.1.371.381.273.633l-.701 1.752a.488.488 0 0 1-.905-.36l.7-1.756zm-14.633 1.531a.488.488 0 0 1 .708-.67l2.729 2.885a.485.485 0 0 1-.02.687.485.485 0 0 1-.688-.017l-2.729-2.885zM11.48 30.082a.487.487 0 1 1 .017-.973l4.014.078a.486.486 0 1 1-.02.974l-4.011-.079zm24.336-10.656c.19-.187.5-.187.687.007.191.19.188.5-.003.687l-2.844 2.807a.489.489 0 0 1-.688-.694l2.848-2.807zm-10.397-3.94a.487.487 0 0 1 .976 0v4.015a.487.487 0 1 1-.976 0v-4.014zm11.503 22.445a.49.49 0 0 1 .218.654.491.491 0 0 1-.654.217c-.017-.01-.04-.017-.102-.044-.085-.034-.122-.048-.187-.082-1.065-.581-2.718-.581-3.78 0-1.354.742-3.361.742-4.715 0-1.065-.581-2.719-.581-3.78 0-1.354.742-3.365.742-4.72 0-1.06-.581-2.714-.581-3.776 0a.487.487 0 1 1-.47-.854c1.355-.745 3.362-.745 4.716 0 1.062.582 2.719.582 3.78 0 1.354-.745 3.362-.745 4.716 0 1.061.582 2.718.582 3.78 0 1.354-.745 3.361-.745 4.698-.01.017.01.041.02.102.044.085.034.123.048.174.075zM18.645 33.86a8.206 8.206 0 0 1-1.017-3.95c0-4.57 3.698-8.285 8.28-8.285 2.447 0 4.747 1.096 6.332 2.94.174.2.154.51-.054.684a.482.482 0 0 1-.684-.051c-1.405-1.63-3.436-2.596-5.593-2.596a7.305 7.305 0 0 0-7.308 7.308c0 1.333.37 2.613 1.061 3.763a.63.63 0 0 1 .058.143 5.135 5.135 0 0 0 1.419-.371c.803-.381 1.81-.558 2.84-.514a.487.487 0 1 1-.04.973c-.881-.037-1.732.112-2.395.425-1.528.68-3.777.68-5.304 0-1.276-.568-3.24-.568-4.515 0a.487.487 0 1 1-.395-.891c1.528-.68 3.777-.68 5.304 0 .575.255 1.286.398 2.01.422z",
|
|
5323
|
+
"work": "M23.893 27.36v1.009c0 .146.105.258.248.258h.216v1.467c0 .552.43 1.027 1.003 1.027h2.538c.573 0 1.003-.475 1.003-1.027v-1.467h.216c.143 0 .248-.112.248-.258v-1.01h8.07v9.67c0 .042-.014.056-.052.056H15.84c-.038 0-.052-.014-.052-.056v-9.67h8.105zm-8.999-.004v9.673c0 .548.416.974.946.974h21.543c.53 0 .946-.426.946-.974v-9.673c.506-.028.894-.44.894-.97v-7.048c0-.544-.412-.97-.946-.97h-7.802v-.57c0-1.03-.904-1.798-2.004-1.798h-3.684c-1.1 0-2.005.768-2.005 1.798v.57h-7.836c-.53 0-.946.426-.946.97v7.047c0 .52.412.943.894.971zm8.964-8.988v-.57c0-.37.384-.698.929-.698h3.684c.545 0 .932.328.932.698v.57h-5.545zm-8.912 8.073c-.02 0-.052-.031-.052-.056v-7.047c0-.038.014-.055.052-.055h23.33c.04 0 .053.017.053.055v7.047c0 .042-.014.056-.052.056h-23.33zm13.193 1.233h-3.055v2.287c0 .21.153.395.37.395h2.315c.217 0 .37-.185.37-.395v-2.287z",
|
|
5324
|
+
"world": "M38.745 22.8998C36.9315 18.1411 32.3667 14.9974 27.2741 15C26.1415 14.9979 25.0141 15.154 23.9246 15.4637L23.9082 15.4686C20.8844 16.3235 18.3068 18.3118 16.7122 21.0195C16.684 21.0672 16.6657 21.1201 16.6585 21.175C16.4625 21.4365 16.2999 21.7215 16.1743 22.0231L16.1435 22.0896C14.3781 25.8923 14.6735 30.3327 16.9271 33.868C19.1808 37.4032 23.0816 39.5453 27.2741 39.5499C30.0925 39.5523 32.8251 38.5801 35.0088 36.7982C35.1857 36.8134 35.3519 36.7118 35.4191 36.5475C35.432 36.5096 35.4393 36.4701 35.4408 36.4301C39.2436 33.043 40.5585 27.6586 38.745 22.8998ZM23.8651 16.3381C24.4076 17.0035 25.207 17.4073 26.0645 17.4493C26.2989 17.4553 26.5335 17.4451 26.7666 17.4185C27.1435 17.333 27.5383 17.38 27.8847 17.5514C28.0786 17.6551 28.1856 17.8702 28.1514 18.0874C28.0624 18.2509 27.9402 18.3941 27.7928 18.508C27.4261 18.7567 27.2052 19.1699 27.2019 19.613C27.2297 19.8888 27.3774 20.1385 27.6057 20.2957C27.9433 20.5212 28.3594 20.5966 28.7546 20.5037C28.9736 20.4464 29.1869 20.3692 29.3918 20.2731C29.5782 20.1815 29.7753 20.1138 29.9786 20.0716C30.4981 19.9986 31.0315 20.342 31.576 20.7327C31.8489 20.9301 32.2933 21.303 32.2014 21.5861C32.1308 21.8032 31.8657 21.96 31.5859 22.1265C31.4726 22.1934 31.3619 22.259 31.2338 22.3481C30.7805 22.6913 30.2838 22.9729 29.7566 23.1856C29.5574 23.2519 29.3545 23.3067 29.1489 23.3497C28.7209 23.4246 28.3095 23.5748 27.9339 23.7933C27.1802 24.28 27.2721 25.0588 27.3299 25.5269C27.3164 25.5224 27.3016 25.5171 27.2856 25.5101C27.2154 25.4814 27.1465 25.4485 27.078 25.4165C26.6537 25.1303 26.104 25.1083 25.6582 25.3597C25.2124 25.6111 24.9468 26.0928 24.9722 26.604C24.9722 27.5778 25.6952 28.1457 26.2762 28.6015L26.4781 28.7615C26.6063 28.8793 26.7217 29.0104 26.8223 29.1526C25.9975 28.9449 25.1722 28.7407 24.3464 28.54C23.6521 28.3721 22.9513 28.1653 22.664 27.6516C22.5542 27.4188 22.4802 27.1708 22.4445 26.9159C22.3925 26.5114 22.2503 26.1239 22.0284 25.7817C21.6073 25.3117 21.0398 24.9977 20.4179 24.8905L20.3428 24.8692C19.7273 24.6862 19.39 24.4658 19.2801 24.1774C19.2115 23.803 19.2726 23.4164 19.4532 23.0814C19.6852 22.5988 19.7625 22.0564 19.6748 21.5282C19.5827 21.1232 19.312 20.7817 18.9386 20.5997C18.7168 20.4964 18.4747 20.4444 18.23 20.4474C18.1779 20.4474 18.1249 20.4499 18.0716 20.454C19.5129 18.4978 21.5434 17.0552 23.8651 16.3381ZM25.5499 38.596L25.5536 38.5997C25.3926 38.5104 25.2364 38.4126 25.0858 38.3067C24.7541 38.1 24.5274 37.7607 24.4634 37.3752C24.4863 37.1277 24.5663 36.8889 24.6973 36.6776C24.789 36.4823 24.8568 36.2766 24.8991 36.065C24.9252 35.8729 24.9954 35.6895 25.1043 35.5291C25.2256 35.4185 25.3662 35.3312 25.5191 35.2714C25.6904 35.1956 25.8532 35.1021 26.0049 34.9924C26.3324 34.7316 26.6039 34.4076 26.8035 34.0396C26.8999 33.8706 26.9832 33.6863 27.0636 33.5062C27.1727 33.2206 27.3249 32.9534 27.515 32.7139C27.9253 32.2818 28.7336 32.6026 29.0611 32.7594C29.6859 33.04 30.2604 33.4213 30.7615 33.8882L30.8087 33.9366C31.3396 34.4978 31.9046 35.0259 32.5005 35.5176C32.9934 35.8984 33.5335 36.2139 34.1073 36.4561C31.6555 38.2845 28.5737 39.0551 25.5499 38.596ZM34.8324 35.8722C34.1816 35.6314 33.5696 35.2967 33.0158 34.8788C32.4463 34.4074 31.906 33.9018 31.3979 33.3647L31.3507 33.3167C30.785 32.7806 30.133 32.3437 29.4222 32.0241C28.3841 31.526 27.474 31.5727 26.9237 32.1529C26.6672 32.4567 26.4629 32.801 26.3193 33.1718C26.2459 33.3334 26.1744 33.4931 26.0952 33.6326C25.9493 33.9054 25.7505 34.1464 25.5105 34.3416C25.4027 34.4168 25.2877 34.481 25.1671 34.5333C24.9171 34.6359 24.6901 34.7874 24.4995 34.9789C24.2917 35.2384 24.1549 35.5475 24.1027 35.8759C24.0741 36.0226 24.0294 36.1657 23.9693 36.3026C23.7738 36.629 23.6619 36.9985 23.6436 37.3785C23.6496 37.6766 23.7367 37.9673 23.8955 38.2196C20.735 37.2398 18.1516 34.9429 16.8088 31.9188C15.4661 28.8946 15.4947 25.4379 16.8874 22.4364L16.9186 22.3687C17.03 22.0745 17.1963 21.8043 17.4086 21.5722C17.484 21.497 17.573 21.4365 17.6708 21.3942C17.8477 21.315 18.0391 21.2731 18.2329 21.2711C18.3528 21.2683 18.4718 21.2921 18.5813 21.3409C18.7363 21.419 18.8462 21.5645 18.8792 21.7348C18.9152 22.1019 18.8468 22.4717 18.6819 22.8016C18.4199 23.318 18.3596 23.9133 18.5124 24.4717C18.7878 25.191 19.5551 25.493 20.1127 25.6588L20.1948 25.6818C20.6382 25.7528 21.0489 25.9587 21.3712 26.2714C21.5168 26.5186 21.6092 26.7935 21.6424 27.0785C21.6929 27.4178 21.7967 27.747 21.9502 28.0539C22.3982 28.8569 23.3244 29.1388 24.1565 29.3398C25.0494 29.5567 25.9431 29.7781 26.8376 30.0037C27.0175 30.0624 27.2116 30.0599 27.3899 29.9968C27.5979 29.916 27.7468 29.7302 27.7806 29.5097C27.8742 28.888 27.0153 28.1404 27.001 28.1297L26.7851 27.9582C26.2759 27.5586 25.795 27.1811 25.795 26.6041C25.7901 26.3618 25.9298 26.1397 26.1504 26.0391C26.3034 25.9755 26.4314 26.0219 26.7297 26.1622C26.8118 26.2008 26.8939 26.2394 26.969 26.2698C27.2878 26.4407 27.6799 26.3914 27.9463 26.1467C28.1197 25.9532 28.1928 25.6899 28.1441 25.4347C28.0768 24.8878 28.1031 24.6617 28.3788 24.4832C28.6766 24.3196 28.9998 24.2073 29.3349 24.1512C29.571 24.1007 29.8039 24.0364 30.0325 23.9588C30.6378 23.7172 31.208 23.3957 31.728 23.0027C31.8101 22.9448 31.9048 22.8898 32 22.8336C32.4392 22.6368 32.7887 22.2825 32.9795 21.8406C33.1728 21.2473 32.8613 20.6506 32.053 20.0676C31.5339 19.6954 30.7469 19.1328 29.8581 19.2604C29.5824 19.3111 29.3147 19.3989 29.0625 19.5214C28.9018 19.5972 28.7348 19.659 28.5635 19.7061C28.399 19.744 28.2263 19.7168 28.0814 19.6301C28.0211 19.5866 28.0178 19.5526 28.0165 19.5399C28.0075 19.4332 28.1396 19.3015 28.3448 19.1123C28.5976 18.9137 28.7966 18.655 28.9238 18.3598C29.0926 17.7794 28.8435 17.1588 28.3202 16.8563C27.8233 16.583 27.2462 16.4928 26.6896 16.6015C26.4943 16.6245 26.2977 16.6338 26.1012 16.6294C25.6106 16.6028 25.1425 16.4153 24.7692 16.096C29.8767 14.9455 35.1138 17.4063 37.4882 22.0723C39.8623 26.7384 38.7689 32.4206 34.8324 35.8722Z",
|
|
5325
|
+
"register_order": "M33.7842 18.4074C33.7842 16.0611 32.9999 11 28.4999 11C26 11 23 13 23.3607 18.4074M22.3757 18.3749H18.2507C17.3963 18.3749 17.3571 17.4289 18.2507 17.4289C18.2507 17.4289 19.9064 17.4398 22.3413 17.453M22.3757 18.3749C22.3502 18.0945 22.3376 17.7842 22.3413 17.453M22.3757 18.3749C22.3757 18.3749 29.9051 18.3638 34.7251 18.3562M22.3757 18.3749H23.8756M22.3413 17.453C22.3733 14.5363 23.6647 10 28.5 10C33.0233 10 34.5595 14.5881 34.7187 17.499M22.3413 17.453C25.7428 17.4716 30.6651 17.4947 34.7187 17.499M34.7251 18.3562C35.5107 18.3757 37.8004 18.0621 39.2507 19.8749C40.7507 21.7499 40.5 22.9997 40.5 25.9997V36.9997C40.5 37.9997 39.5823 39.9997 37.5 39.9997H19.5C18.5 39.9997 17.5 39.5 17 39C16.5 38.5 16 37.4997 16 36.4997C16 35.4997 15 35.5 15 36.4997C15.5 40 17.5 41 19 41C20.5 41 29.9834 40.9997 37.5 40.9997C40.3355 40.9997 41.5 38.4997 41.5 36.9997C41.5 32.9997 41.3863 29.4997 41.3863 22.9997C41.3863 19.874 39.0063 17.4997 36 17.4997C35.5851 17.4997 35.157 17.4995 34.7187 17.499M34.7251 18.3562C34.737 18.094 34.7355 17.8058 34.7187 17.499M36.0015 25.0068H34.6554C34.3189 25.0068 33.9824 25.309 33.9824 25.6818V27.0318C33.9824 27.4046 34.2837 27.7068 34.6554 27.7068H36.0015C36.3732 27.7068 36.6745 27.4046 36.6745 27.0318V25.6818C36.6745 25.2599 36.338 25.0068 36.0015 25.0068ZM36.0117 24H34.5117C34.0117 24 33.0832 24.3318 33.0117 25.5C32.9854 25.9315 33.0116 26.482 33.0116 26.9318C33.0116 27.3046 32.9778 28.6238 34.4778 28.6238C35.3867 28.6238 35.4727 28.6212 36.5117 28.5867C37.5508 28.5522 37.6754 27.4818 37.6754 27.0068V25.4818C37.6754 24.659 36.9302 24 36.0117 24ZM29.0015 25.0068H27.6554C27.3189 25.0068 26.9824 25.309 26.9824 25.6818V27.0318C26.9824 27.4046 27.2837 27.7068 27.6554 27.7068H29.0015C29.3732 27.7068 29.6745 27.4046 29.6745 27.0318V25.6818C29.6745 25.2599 29.338 25.0068 29.0015 25.0068ZM29.0117 24H27.5117C27.0117 24 26.0832 24.3318 26.0117 25.5C25.9854 25.9315 26.0116 26.482 26.0116 26.9318C26.0116 27.3046 25.9778 28.6238 27.4778 28.6238C28.3867 28.6238 28.4727 28.6212 29.5117 28.5867C30.5508 28.5522 30.6754 27.4818 30.6754 27.0068V25.4818C30.6754 24.659 29.9302 24 29.0117 24ZM16.7508 29.9998C14.8758 28.4998 14.5006 28.4998 12.6258 26.2498C10.751 23.9998 9.69068 20.4322 10.7507 17.2499C11.1255 16.1249 11.5004 16.4999 11.5006 17.9999C11.5008 19.1249 12 20.5 12.5 21.5C13 22.5 13.7815 23.5899 14.7501 24.3749C15.7187 25.1598 16.8744 26 18.5001 26.9998C18.5464 27.0284 20.1256 24.7499 20.8756 23.9999C21.2278 23.6477 21.7127 23.9727 21.907 24.7499L23.6882 31.8748C23.7837 32.2568 23.5179 32.6779 23.1256 32.7114C19.7506 32.9998 18.25 33.2548 16 33.5C15.1192 33.596 14.5545 33.1365 15 32.5C16.0499 31 16.768 30.0136 16.7508 29.9998ZM12.5 24.5C11.948 23.3953 11.5 21.5 11.5 21.5L12.7269 23.5899C13.3006 24.3749 14.7226 25.6589 16 26.5C17.8985 27.7502 16.7507 26.9998 18.5 28C18.934 28.2482 19.5 27.5 20.5 26C21.0914 25.1129 21.1167 24.966 21.5001 26.5C22 28.5 22.0001 28.5 22.5001 30.5C22.8425 31.8697 22.7897 31.8748 21.5145 31.9986L21.5001 32C21.2354 32.0257 18.5179 32.3266 17 32.5C16.2698 32.5834 15.7821 32.7724 16 32.5C18 30 17.8898 29.7541 17.6709 29.5899C15.5341 27.9873 13.3119 26.1249 12.5 24.5ZM23.8894 18.4008C24.226 18.4008 24.6747 18.4005 24.6747 18.4005V19.1941C24.6747 19.5669 24.3716 20.0001 23.9999 20.0001H22.6538C22.2821 20.0001 21.9413 19.5979 21.9413 19.2251V18.3955C22.4413 18.3955 23.5529 18.4008 23.8894 18.4008ZM22 18.3955C21.5002 18.3955 22.0752 18.3956 21.0752 18.3956C21.0752 18.8279 21.0752 18.9458 21.0752 19.3956C21.0752 19.8454 21.5312 20.8169 22.4779 20.8478C23.3864 20.8775 23.5185 20.8437 24.324 20.8169C25.1296 20.7901 25.4999 19.9134 25.4999 19.2967C25.4999 18.68 25.4999 19.5116 25.4999 18.4008C24.3247 18.4188 24.5002 18.3954 22 18.3955ZM34.8142 18.4008C35.1508 18.4008 35.5995 18.4005 35.5995 18.4005V19.1941C35.5995 19.5669 35.2964 20.0001 34.9247 20.0001H33.5786C33.2069 20.0001 32.8661 19.5979 32.8661 19.2251V18.3955C33.3661 18.3955 34.4777 18.4008 34.8142 18.4008ZM32.9248 18.3955C32.425 18.3955 33 18.3956 32 18.3956C32 18.8279 32 18.9458 32 19.3956C32 19.8454 32.456 20.8169 33.4027 20.8478C34.3112 20.8775 34.4433 20.8437 35.2488 20.8169C36.0544 20.7901 36.4247 19.9134 36.4247 19.2967C36.4247 18.68 36.4247 18.3796 36.4247 18.4008C36.4247 18.4219 35.5995 18.4005 32.9248 18.3955ZM29.0015 32.0068H27.6554C27.3189 32.0068 26.9824 32.309 26.9824 32.6818V34.0318C26.9824 34.4046 27.2837 34.7068 27.6554 34.7068H29.0015C29.3732 34.7068 29.6745 34.4046 29.6745 34.0318V32.6818C29.6745 32.2599 29.338 32.0068 29.0015 32.0068ZM29.0117 31H27.5117C27.0117 31 26.0832 31.3318 26.0117 32.5C25.9854 32.9315 26.0116 33.482 26.0116 33.9318C26.0116 34.3046 25.9778 35.6238 27.4778 35.6238C28.3867 35.6238 28.4727 35.6212 29.5117 35.5867C30.5508 35.5522 30.6754 34.4818 30.6754 34.0068V32.4818C30.6754 31.659 29.9302 31 29.0117 31ZM36.0015 32.0068H34.6554C34.3189 32.0068 33.9824 32.309 33.9824 32.6818V34.0318C33.9824 34.4046 34.2837 34.7068 34.6554 34.7068H36.0015C36.3732 34.7068 36.6745 34.4046 36.6745 34.0318V32.6818C36.6745 32.2599 36.338 32.0068 36.0015 32.0068ZM36.0117 31H34.5117C34.0117 31 33.0832 31.3318 33.0117 32.5C32.9854 32.9315 33.0116 33.482 33.0116 33.9318C33.0116 34.3046 32.9778 35.6238 34.4778 35.6238C35.3867 35.6238 35.4727 35.6212 36.5117 35.5867C37.5508 35.5522 37.6754 34.4818 37.6754 34.0068V32.4818C37.6754 31.659 36.9302 31 36.0117 31Z"
|
|
5326
|
+
};
|
|
5327
|
+
|
|
5328
|
+
// ../../src/resources/contexts/context-icon-preset.ts
|
|
5329
|
+
var ContextIconPresetValues = {
|
|
5330
|
+
Anchor: "anchor",
|
|
5331
|
+
Animals: "animals",
|
|
5332
|
+
Auto: "auto",
|
|
5333
|
+
Beauty: "beauty",
|
|
5334
|
+
Beauty2: "beauty2",
|
|
5335
|
+
Botanical: "botanical",
|
|
5336
|
+
Children: "children",
|
|
5337
|
+
Devices: "devices",
|
|
5338
|
+
Entertainment: "entertainment",
|
|
5339
|
+
Evolution: "evolution",
|
|
5340
|
+
Family: "family",
|
|
5341
|
+
Friends: "friends",
|
|
5342
|
+
Gamepad: "gamepad",
|
|
5343
|
+
Health: "health",
|
|
5344
|
+
Hobbies: "hobbies",
|
|
5345
|
+
Home: "home",
|
|
5346
|
+
Idea: "idea",
|
|
5347
|
+
Money: "money",
|
|
5348
|
+
Music: "music",
|
|
5349
|
+
Palm: "palm",
|
|
5350
|
+
Party: "party",
|
|
5351
|
+
ReparingService: "reparingService",
|
|
5352
|
+
Security: "security",
|
|
5353
|
+
Smile: "smile",
|
|
5354
|
+
Sport: "sport",
|
|
5355
|
+
Theater: "theater",
|
|
5356
|
+
Travel: "travel",
|
|
5357
|
+
Work: "work",
|
|
5358
|
+
World: "world",
|
|
5359
|
+
RegisterOrder: "register_order"
|
|
5360
|
+
};
|
|
5361
|
+
var PRESET_SET = new Set(Object.values(ContextIconPresetValues));
|
|
5362
|
+
var nextSvgId = 0;
|
|
5363
|
+
function isContextIconPreset(value) {
|
|
5364
|
+
return typeof value === "string" && PRESET_SET.has(value);
|
|
5365
|
+
}
|
|
5366
|
+
function getContextIconPresetFileName(preset) {
|
|
5367
|
+
return `${preset}.svg`;
|
|
5368
|
+
}
|
|
5369
|
+
function parseContextIconPresetFromImage(image) {
|
|
5370
|
+
const fileName = image?.fileName;
|
|
5371
|
+
if (!fileName) {
|
|
5372
|
+
return void 0;
|
|
5373
|
+
}
|
|
5374
|
+
const base = fileName.split(/[/\\]/).pop() ?? fileName;
|
|
5375
|
+
const withoutExt = base.replace(/\.svg$/i, "");
|
|
5376
|
+
return isContextIconPreset(withoutExt) ? withoutExt : void 0;
|
|
5377
|
+
}
|
|
5378
|
+
function buildContextIconSvg(preset, options) {
|
|
5379
|
+
const d = CONTEXT_ICON_PRESET_PATHS[preset];
|
|
5380
|
+
const id = `iconSet${nextSvgId += 1}`;
|
|
5381
|
+
const colorAttr = options?.color ? ` fill="${escapeXmlAttr(options.color)}"` : "";
|
|
5382
|
+
const inversedAttr = options?.inversed !== void 0 ? ` inversed="${options.inversed ? "true" : "false"}"` : "";
|
|
5383
|
+
const styleAttr = options?.backgroundColor ? ` style="background-color: ${escapeXmlAttr(options.backgroundColor)};"` : "";
|
|
5384
|
+
return `<svg viewBox="7 7 40 40" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink"${styleAttr}><defs><path d="${escapeXmlAttr(d)}" id="${id}"${colorAttr}${inversedAttr}/></defs><use xlink:href="#${id}" stroke="none" stroke-width="1" fill-rule="evenodd"/></svg>`;
|
|
5385
|
+
}
|
|
5386
|
+
function buildContextIconSvgBytes(preset, options) {
|
|
5387
|
+
return new TextEncoder().encode(buildContextIconSvg(preset, options));
|
|
5388
|
+
}
|
|
5389
|
+
function escapeXmlAttr(value) {
|
|
5390
|
+
return value.replace(/&/g, "&").replace(/"/g, """).replace(/</g, "<").replace(/>/g, ">");
|
|
5391
|
+
}
|
|
5392
|
+
|
|
5393
|
+
// ../../src/resources/common/anyone-access.ts
|
|
5394
|
+
var AnyoneAccessValues = {
|
|
5395
|
+
Unknown: "UnknownAnyoneAccess",
|
|
5396
|
+
None: "NoneAnyoneAccess",
|
|
5397
|
+
Read: "Read",
|
|
5398
|
+
ReadWrite: "ReadWrite",
|
|
5399
|
+
Denied: "Denied"
|
|
5400
|
+
};
|
|
5401
|
+
|
|
5402
|
+
// ../../src/resources/common/participation-field.ts
|
|
5403
|
+
var ParticipationFieldTypeValues = {
|
|
5404
|
+
Unknown: "UnknownParticipationField",
|
|
5405
|
+
FullName: "FullName",
|
|
5406
|
+
LastName: "LastName",
|
|
5407
|
+
FirstName: "FirstName",
|
|
5408
|
+
MiddleName: "MiddleName",
|
|
5409
|
+
Company: "Company",
|
|
5410
|
+
Position: "Position",
|
|
5411
|
+
MainPhone: "MainPhone",
|
|
5412
|
+
VerifiedMainPhone: "VerifiedMainPhone",
|
|
5413
|
+
AdditionalPhone: "AdditionalPhone",
|
|
5414
|
+
MainEmail: "MainEmail",
|
|
5415
|
+
VerifiedMainEmail: "VerifiedMainEmail",
|
|
5416
|
+
AdditionalEmail: "AdditionalEmail",
|
|
5417
|
+
Address: "Address",
|
|
5418
|
+
AddressLocation: "AddressLocation",
|
|
5419
|
+
PaymentAccount: "PaymentAccount",
|
|
5420
|
+
CustomString: "CustomString",
|
|
5421
|
+
CustomBoolean: "CustomBoolean",
|
|
5422
|
+
CustomInt32: "CustomInt32",
|
|
5423
|
+
CustomDouble: "CustomDouble",
|
|
5424
|
+
CustomMoney: "CustomMoney",
|
|
5425
|
+
CustomDate: "CustomDate",
|
|
5426
|
+
CustomTime: "CustomTime",
|
|
5427
|
+
CustomDateTime: "CustomDateTime"
|
|
5428
|
+
};
|
|
5429
|
+
var ParticipationFieldRequirementTypeValues = {
|
|
5430
|
+
Unknown: "UnknownParticipationFieldRequirement",
|
|
5431
|
+
None: "NoneRequirement",
|
|
5432
|
+
Optional: "OptionalField",
|
|
5433
|
+
Required: "RequiredField"
|
|
5434
|
+
};
|
|
5435
|
+
|
|
5436
|
+
// ../../src/resources/common/user-access-level.ts
|
|
5437
|
+
var UserAccessLevelValues = {
|
|
5438
|
+
Unknown: "UnknownUserAccessLevel",
|
|
5439
|
+
Authenticated: "Authenticated",
|
|
5440
|
+
Unauthenticated: "Unauthenticated"
|
|
5441
|
+
};
|
|
5442
|
+
|
|
5443
|
+
// ../../src/resources/contacts/types.ts
|
|
5444
|
+
var GenderValues = {
|
|
5445
|
+
Unknown: "UnknownGender",
|
|
5446
|
+
Male: "Male",
|
|
5447
|
+
Female: "Female",
|
|
5448
|
+
Other: "OtherGender"
|
|
5449
|
+
};
|
|
5450
|
+
var CommunicationTypeValues = {
|
|
5451
|
+
Unknown: "UnknownCommunicationType",
|
|
5452
|
+
Phone: "Phone",
|
|
5453
|
+
Sms: "Sms",
|
|
5454
|
+
Email: "Email",
|
|
5455
|
+
WebSite: "WebSite",
|
|
5456
|
+
Telegram: "Telegram",
|
|
5457
|
+
WhatsApp: "WhatsApp",
|
|
5458
|
+
Viber: "Viber",
|
|
5459
|
+
Facebook: "Facebook",
|
|
5460
|
+
Instagram: "Instagram",
|
|
5461
|
+
Vkontakte: "Vkontakte",
|
|
5462
|
+
Odnoklassniki: "Odnoklassniki",
|
|
5463
|
+
Skype: "Skype",
|
|
5464
|
+
Youtube: "Youtube",
|
|
5465
|
+
Twitter: "Twitter",
|
|
5466
|
+
LinkedIn: "LinkedIn",
|
|
5467
|
+
Max: "Max",
|
|
5468
|
+
Other: "Other"
|
|
5469
|
+
};
|
|
5470
|
+
|
|
5471
|
+
// ../../src/resources/reports/types.ts
|
|
5472
|
+
var TimeSplitTypeValues = {
|
|
5473
|
+
UnknownTimeSplitType: "UnknownTimeSplitType",
|
|
5474
|
+
None: "None",
|
|
5475
|
+
Monthly: "Monthly",
|
|
5476
|
+
Daily: "Daily",
|
|
5477
|
+
Hourly: "Hourly"
|
|
5478
|
+
};
|
|
5479
|
+
var CellValueTypeValues = {
|
|
5480
|
+
UnknownCellValueType: "UnknownCellValueType",
|
|
5481
|
+
Time: "Time",
|
|
5482
|
+
Items: "Items",
|
|
5483
|
+
ItemsPerPeriod: "ItemsPerPeriod"
|
|
5484
|
+
};
|
|
5485
|
+
var ColumnTypeValues = {
|
|
5486
|
+
UnknownColumnType: "UnknownColumnType",
|
|
5487
|
+
Busy: "Busy",
|
|
5488
|
+
Balance: "Balance",
|
|
5489
|
+
Total: "Total"
|
|
5490
|
+
};
|
|
5491
|
+
|
|
5492
|
+
// ../../src/resources/loyalty-systems/types.ts
|
|
5493
|
+
var LoyaltyCardIssueTypeValues = {
|
|
5494
|
+
Unknown: "UnknownLoyaltyCardIssueType",
|
|
5495
|
+
Manual: "Manual",
|
|
5496
|
+
AutoActive: "AutoActive",
|
|
5497
|
+
AutoIssued: "AutoIssued"
|
|
5498
|
+
};
|
|
5499
|
+
var LoyaltyCardUpdateKeyInformationValues = {
|
|
5500
|
+
Unknown: "UnknownLoyaltyCardUpdateKeyInformation",
|
|
5501
|
+
NonKeyDisallowed: "NonKeyDisallowed",
|
|
5502
|
+
NonKeyAllowed: "NonKeyAllowed"
|
|
5503
|
+
};
|
|
5504
|
+
var LoyaltyCardUpdateNonKeyInformationValues = {
|
|
5505
|
+
Unknown: "UnknownLoyaltyCardUpdateNonKeyInformation",
|
|
5506
|
+
KeyDisallowed: "KeyDisallowed",
|
|
5507
|
+
KeyAllowed: "KeyAllowed"
|
|
5508
|
+
};
|
|
5509
|
+
var LoyaltyCardSortConditionValues = {
|
|
5510
|
+
SequenceCardNumberAsc: "SequenceCardNumberAsc",
|
|
5511
|
+
SequenceCardNumberDesc: "SequenceCardNumberDesc",
|
|
5512
|
+
LoyaltyCardStateAsc: "LoyaltyCardStateAsc",
|
|
5513
|
+
LoyaltyCardStateDesc: "LoyaltyCardStateDesc",
|
|
5514
|
+
SequenceCardNumberAscLoyaltyCardStateAsc: "SequenceCardNumberAscLoyaltyCardStateAsc",
|
|
5515
|
+
SequenceCardNumberDescLoyaltyCardStateAsc: "SequenceCardNumberDescLoyaltyCardStateAsc",
|
|
5516
|
+
SequenceCardNumberAscLoyaltyCardStateDesc: "SequenceCardNumberAscLoyaltyCardStateDesc",
|
|
5517
|
+
SequenceCardNumberDescLoyaltyCardStateDesc: "SequenceCardNumberDescLoyaltyCardStateDesc",
|
|
5518
|
+
LoyaltyCardStateAscSequenceCardNumberAsc: "LoyaltyCardStateAscSequenceCardNumberAsc",
|
|
5519
|
+
LoyaltyCardStateAscSequenceCardNumberDesc: "LoyaltyCardStateAscSequenceCardNumberDesc",
|
|
5520
|
+
LoyaltyCardStateDescSequenceCardNumberAsc: "LoyaltyCardStateDescSequenceCardNumberAsc",
|
|
5521
|
+
LoyaltyCardStateDescSequenceCardNumberDesc: "LoyaltyCardStateDescSequenceCardNumberDesc"
|
|
5522
|
+
};
|
|
5523
|
+
|
|
4001
5524
|
// ../../src/resources/services/booking-wizard-hints.ts
|
|
4002
5525
|
var ServiceCheckInWizardStepType = {
|
|
4003
5526
|
Unknown: 0,
|
|
@@ -4099,6 +5622,32 @@ function expandBookingWizardSteps(service) {
|
|
|
4099
5622
|
return out;
|
|
4100
5623
|
}
|
|
4101
5624
|
|
|
5625
|
+
// ../../src/resources/services/types.ts
|
|
5626
|
+
var SessionDurationTypeValues = {
|
|
5627
|
+
Unknown: "UnknownSessionDurationType",
|
|
5628
|
+
None: "SessionDurationNone",
|
|
5629
|
+
Custom: "Custom",
|
|
5630
|
+
Constant: "Constant",
|
|
5631
|
+
Sum: "Sum"
|
|
5632
|
+
};
|
|
5633
|
+
var TimeSelectionTypeValues = {
|
|
5634
|
+
Unknown: "UnknownTimeSelectionType",
|
|
5635
|
+
None: "TimeSelectionNone",
|
|
5636
|
+
Consumer: "Consumer",
|
|
5637
|
+
Executor: "Executor"
|
|
5638
|
+
};
|
|
5639
|
+
var StateManagementTypeValues = {
|
|
5640
|
+
Unknown: "UnknownStateManagementType",
|
|
5641
|
+
Auto: "Auto",
|
|
5642
|
+
Manual: "Manual"
|
|
5643
|
+
};
|
|
5644
|
+
var SessionPrecisionTypeValues = {
|
|
5645
|
+
Unknown: "UnknownSessionPrecisionType",
|
|
5646
|
+
None: "SessionPrecisionNone",
|
|
5647
|
+
DateTime: "DateTime",
|
|
5648
|
+
Date: "Date"
|
|
5649
|
+
};
|
|
5650
|
+
|
|
4102
5651
|
// ../../src/resources/cases/payment-hints.ts
|
|
4103
5652
|
function normalizePaymentUrl(url) {
|
|
4104
5653
|
if (url == null || url.trim() === "") return void 0;
|
|
@@ -4113,51 +5662,176 @@ function getTicketPaymentUrlRaw(caseItem) {
|
|
|
4113
5662
|
function getTicketPaymentUrl(caseItem) {
|
|
4114
5663
|
return normalizePaymentUrl(getTicketPaymentUrlRaw(caseItem));
|
|
4115
5664
|
}
|
|
5665
|
+
|
|
5666
|
+
// ../../src/resources/common/device-type.ts
|
|
5667
|
+
var DeviceTypeValues = {
|
|
5668
|
+
Unknown: "Unknown",
|
|
5669
|
+
Mobile: "Mobile",
|
|
5670
|
+
Tablet: "Tablet",
|
|
5671
|
+
Desktop: "Desktop"
|
|
5672
|
+
};
|
|
5673
|
+
var DeviceTypeValueList = [
|
|
5674
|
+
DeviceTypeValues.Unknown,
|
|
5675
|
+
DeviceTypeValues.Mobile,
|
|
5676
|
+
DeviceTypeValues.Tablet,
|
|
5677
|
+
DeviceTypeValues.Desktop
|
|
5678
|
+
];
|
|
5679
|
+
function isDeviceType(value) {
|
|
5680
|
+
return DeviceTypeValueList.includes(value);
|
|
5681
|
+
}
|
|
5682
|
+
function parseDeviceType(raw) {
|
|
5683
|
+
const t = raw?.trim();
|
|
5684
|
+
if (!t) return void 0;
|
|
5685
|
+
return DeviceTypeValueList.find((x) => x.toLowerCase() === t.toLowerCase());
|
|
5686
|
+
}
|
|
5687
|
+
|
|
5688
|
+
// ../../src/resources/common/personal-list.ts
|
|
5689
|
+
var ItemViewSortConditionValues = {
|
|
5690
|
+
OrderAsc: "OrderAsc",
|
|
5691
|
+
OrderDesc: "OrderDesc",
|
|
5692
|
+
LastModifiedAsc: "LastModifiedAsc",
|
|
5693
|
+
LastModifiedDesc: "LastModifiedDesc",
|
|
5694
|
+
OrderAscLastModifiedAsc: "OrderAscLastModifiedAsc",
|
|
5695
|
+
OrderDescLastModifiedAsc: "OrderDescLastModifiedAsc",
|
|
5696
|
+
OrderAscLastModifiedDesc: "OrderAscLastModifiedDesc",
|
|
5697
|
+
OrderDescLastModifiedDesc: "OrderDescLastModifiedDesc",
|
|
5698
|
+
LastModifiedAscOrderAsc: "LastModifiedAscOrderAsc",
|
|
5699
|
+
LastModifiedAscOrderDesc: "LastModifiedAscOrderDesc",
|
|
5700
|
+
LastModifiedDescOrderAsc: "LastModifiedDescOrderAsc",
|
|
5701
|
+
LastModifiedDescOrderDesc: "LastModifiedDescOrderDesc"
|
|
5702
|
+
};
|
|
5703
|
+
var ItemViewSortConditionValueList = Object.values(
|
|
5704
|
+
ItemViewSortConditionValues
|
|
5705
|
+
);
|
|
5706
|
+
function isItemViewSortCondition(value) {
|
|
5707
|
+
return ItemViewSortConditionValueList.includes(value);
|
|
5708
|
+
}
|
|
4116
5709
|
export {
|
|
5710
|
+
AccountTypeValueList,
|
|
5711
|
+
AccountTypeValues,
|
|
4117
5712
|
AccountingTransactionsFacade,
|
|
4118
5713
|
ActionHistoryFacade,
|
|
4119
5714
|
AnnouncementsFacade,
|
|
5715
|
+
AnyoneAccessValues,
|
|
5716
|
+
ApiKeysFacade,
|
|
5717
|
+
AuthCaptchaTypeValueList,
|
|
5718
|
+
AuthCaptchaTypeValues,
|
|
4120
5719
|
AuthFacade,
|
|
5720
|
+
AuthScopeValueList,
|
|
5721
|
+
AuthScopeValues,
|
|
4121
5722
|
BlockReasonsFacade,
|
|
4122
5723
|
CalendarsFacade,
|
|
5724
|
+
CaseStateValues,
|
|
5725
|
+
CaseTypeValues,
|
|
4123
5726
|
CasesFacade,
|
|
5727
|
+
CellValueTypeValues,
|
|
5728
|
+
ColumnTypeValues,
|
|
5729
|
+
CommunicationTypeValues,
|
|
4124
5730
|
ContactsFacade,
|
|
5731
|
+
ContextIconPresetValues,
|
|
4125
5732
|
ContextsFacade,
|
|
4126
5733
|
DEFAULT_TORROW_API_BASE_URL,
|
|
5734
|
+
DefaultAuthScopes,
|
|
5735
|
+
DeviceTypeValueList,
|
|
5736
|
+
DeviceTypeValues,
|
|
5737
|
+
Discriminator,
|
|
4127
5738
|
ExportImportFacade,
|
|
4128
5739
|
ExternalAuthsFacade,
|
|
5740
|
+
GenderValues,
|
|
4129
5741
|
HttpClient,
|
|
4130
5742
|
IdGeneratorFacade,
|
|
5743
|
+
ImagePreviewSizeValues,
|
|
4131
5744
|
IntegrationsFacade,
|
|
4132
5745
|
ItemFacade,
|
|
5746
|
+
ItemViewSortConditionValueList,
|
|
5747
|
+
ItemViewSortConditionValues,
|
|
5748
|
+
LayoutTypeValues,
|
|
5749
|
+
LoyaltyCardIssueTypeValues,
|
|
5750
|
+
LoyaltyCardSortConditionValues,
|
|
5751
|
+
LoyaltyCardUpdateKeyInformationValues,
|
|
5752
|
+
LoyaltyCardUpdateNonKeyInformationValues,
|
|
4133
5753
|
LoyaltyCardsFacade,
|
|
4134
5754
|
LoyaltySystemsFacade,
|
|
5755
|
+
NoteTypeValues,
|
|
4135
5756
|
NotesFacade,
|
|
5757
|
+
ParticipationFieldRequirementTypeValues,
|
|
5758
|
+
ParticipationFieldTypeValues,
|
|
5759
|
+
PinnedViewsFacade,
|
|
4136
5760
|
ProfilesFacade,
|
|
4137
5761
|
RawClient,
|
|
4138
5762
|
RelationsFacade,
|
|
4139
5763
|
ReportsFacade,
|
|
4140
5764
|
ResourcesFacade,
|
|
4141
5765
|
SearchFacade,
|
|
5766
|
+
SendCodeAccountTypeValueList,
|
|
5767
|
+
SendCodeAccountTypeValues,
|
|
4142
5768
|
ServiceCheckInWizardStepParameterName,
|
|
4143
5769
|
ServiceCheckInWizardStepType,
|
|
4144
5770
|
ServicesFacade,
|
|
5771
|
+
SessionDurationTypeValues,
|
|
5772
|
+
SessionPrecisionTypeValues,
|
|
4145
5773
|
ShortUrlFacade,
|
|
5774
|
+
StateManagementTypeValues,
|
|
4146
5775
|
ThesaurusFacade,
|
|
5776
|
+
TimeSelectionTypeValues,
|
|
5777
|
+
TimeSplitTypeValues,
|
|
5778
|
+
TimetableViewTypeValues,
|
|
5779
|
+
TokenStatusValueList,
|
|
5780
|
+
TokenStatusValues,
|
|
4147
5781
|
TorrowClient,
|
|
4148
5782
|
TorrowHttpError,
|
|
5783
|
+
TorrowIdError,
|
|
5784
|
+
TorrowItemTypeValueList,
|
|
5785
|
+
TorrowItemTypeValues,
|
|
5786
|
+
TorrowObjectTypeCode,
|
|
5787
|
+
UsageTypeValues,
|
|
5788
|
+
UserAccessLevelValues,
|
|
4149
5789
|
UserFacade,
|
|
4150
5790
|
UserSettingsFacade,
|
|
5791
|
+
UserViewsFacade,
|
|
5792
|
+
VerificationMethodValueList,
|
|
5793
|
+
VerificationMethodValues,
|
|
4151
5794
|
ViewsFacade,
|
|
5795
|
+
buildContextIconSvg,
|
|
5796
|
+
buildContextIconSvgBytes,
|
|
4152
5797
|
expandBookingWizardSteps,
|
|
5798
|
+
generateTorrowId,
|
|
5799
|
+
generateTorrowIdForOwner,
|
|
5800
|
+
getContextIconPresetFileName,
|
|
4153
5801
|
getResourceGroupIdFromStep,
|
|
5802
|
+
getShardFromTorrowId,
|
|
4154
5803
|
getStepParameter,
|
|
4155
5804
|
getTicketPaymentUrl,
|
|
4156
5805
|
getTicketPaymentUrlRaw,
|
|
4157
5806
|
getTimeStepUiMode,
|
|
5807
|
+
getTorrowItemTypeFromTorrowId,
|
|
5808
|
+
getTorrowItemTypeFromTorrowIds,
|
|
5809
|
+
getTorrowObjectTypeFromTorrowId,
|
|
5810
|
+
isAccountType,
|
|
5811
|
+
isAuthCaptchaType,
|
|
5812
|
+
isAuthScope,
|
|
5813
|
+
isContextIconPreset,
|
|
5814
|
+
isDeviceType,
|
|
5815
|
+
isItemViewSortCondition,
|
|
5816
|
+
isSendCodeAccountType,
|
|
4158
5817
|
isStepFlag,
|
|
5818
|
+
isTokenRespReadyStatus,
|
|
5819
|
+
isTokenStatus,
|
|
5820
|
+
isTorrowItemType,
|
|
5821
|
+
isVerificationMethod,
|
|
4159
5822
|
normalizePaymentUrl,
|
|
5823
|
+
packTorrowId,
|
|
5824
|
+
parseAccountType,
|
|
5825
|
+
parseAuthCaptchaType,
|
|
5826
|
+
parseAuthScope,
|
|
5827
|
+
parseContextIconPresetFromImage,
|
|
5828
|
+
parseDeviceType,
|
|
5829
|
+
parseSendCodeAccountType,
|
|
5830
|
+
parseTokenStatus,
|
|
5831
|
+
parseVerificationMethod,
|
|
4160
5832
|
shouldSkipResourceStep,
|
|
4161
|
-
sortStepDescriptionsByOrder
|
|
5833
|
+
sortStepDescriptionsByOrder,
|
|
5834
|
+
torrowObjectTypeToCode,
|
|
5835
|
+
unpackTorrowId
|
|
4162
5836
|
};
|
|
4163
5837
|
//# sourceMappingURL=index.js.map
|