@wirecat/bitrix24-cli 0.2.0 → 0.4.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/CHANGELOG.md +60 -0
- package/dist/api-keys.d.ts +30 -8
- package/dist/api-keys.d.ts.map +1 -1
- package/dist/api-keys.js +81 -18
- package/dist/api-keys.js.map +1 -1
- package/dist/bin/b24.js +2 -2
- package/dist/bitrix/methods.d.ts.map +1 -1
- package/dist/bitrix/methods.js +7 -3
- package/dist/bitrix/methods.js.map +1 -1
- package/dist/bitrix/transport.d.ts +4 -7
- package/dist/bitrix/transport.d.ts.map +1 -1
- package/dist/bitrix/transport.js +12 -16
- package/dist/bitrix/transport.js.map +1 -1
- package/dist/bundle/{all-profiles-QJ444GSX.js → all-profiles-MBQZCOVK.js} +6 -6
- package/dist/bundle/{anthropic-RHRAVHC2.js → anthropic-QCYLKSJJ.js} +4 -4
- package/dist/bundle/{app-server-QIT6S7AZ.js → app-server-FSLZ2Y6N.js} +42 -42
- package/dist/bundle/b24.js +12 -12
- package/dist/bundle/{bun-H6RSODZ3.js → bun-UYRQXF33.js} +2 -2
- package/dist/bundle/{bun-sqlite-BO4LTQHX.js → bun-sqlite-GXME7EMT.js} +3 -3
- package/dist/bundle/{chunk-MBDK4YXG.js → chunk-2D5W4LWL.js} +1 -1
- package/dist/bundle/{chunk-U5ACMCAQ.js → chunk-2IZ6GGU2.js} +151 -151
- package/dist/bundle/{chunk-VEWWAGTD.js → chunk-4OVK5XW2.js} +8 -8
- package/dist/bundle/{chunk-45AKJVKV.js → chunk-66QLBRIT.js} +1 -1
- package/dist/bundle/{chunk-P364PLIK.js → chunk-6BLVBGRK.js} +9 -9
- package/dist/bundle/{chunk-FOTREPNS.js → chunk-6ERX33NC.js} +8 -8
- package/dist/bundle/{chunk-LRGYKOCP.js → chunk-AMVRNYD6.js} +1 -1
- package/dist/bundle/{chunk-YZ5LHE5Q.js → chunk-AOUNT22U.js} +2 -2
- package/dist/bundle/{chunk-ZDQQCXFG.js → chunk-B252WFK7.js} +13 -13
- package/dist/bundle/{chunk-WKRQ44EH.js → chunk-BHZ5VDDY.js} +13 -13
- package/dist/bundle/{chunk-ZIAQPTUS.js → chunk-COOOXDKZ.js} +3 -3
- package/dist/bundle/{chunk-GDFNH33E.js → chunk-CR3TLGM4.js} +9 -4
- package/dist/bundle/{chunk-D5S6QV6R.js → chunk-D2IRPC5I.js} +6 -6
- package/dist/bundle/{chunk-POC3V3AO.js → chunk-DQIQIZQS.js} +297 -256
- package/dist/bundle/{chunk-QGMDQ2PM.js → chunk-EIGPMMGC.js} +3 -3
- package/dist/bundle/{chunk-WTPMJYMD.js → chunk-ELBOQHJA.js} +45 -45
- package/dist/bundle/{chunk-LSPIOT6Z.js → chunk-EQLWU6ZB.js} +7 -7
- package/dist/bundle/{chunk-WII44RXN.js → chunk-F5NH3UJQ.js} +2 -2
- package/dist/bundle/{chunk-HAXNUIGQ.js → chunk-GTDOUP6L.js} +26 -23
- package/dist/bundle/{chunk-QQXH2OPB.js → chunk-GTFRSYYJ.js} +17 -12
- package/dist/bundle/{chunk-H2ADPPSH.js → chunk-GTMCLOYY.js} +670 -465
- package/dist/bundle/{chunk-7GRZAKBB.js → chunk-IF27EQN6.js} +2 -2
- package/dist/bundle/{chunk-FZL7F5NR.js → chunk-IWEWDVZ6.js} +22 -22
- package/dist/bundle/{program-UYX5362I.js → chunk-J7OMY6EO.js} +16672 -18336
- package/dist/bundle/{chunk-QIPTIUMJ.js → chunk-JAS3OZSP.js} +4 -4
- package/dist/bundle/{chunk-OTD2ZRXD.js → chunk-JB7OXYAU.js} +4 -4
- package/dist/bundle/{chunk-ZEW4P6AH.js → chunk-K7XWCZF6.js} +8 -8
- package/dist/bundle/{chunk-YYO7D2MO.js → chunk-LAYH344Y.js} +28 -28
- package/dist/bundle/{chunk-K3UIB6ZF.js → chunk-M5XMAUGZ.js} +2 -2
- package/dist/bundle/{chunk-2KCZ7BKW.js → chunk-MPI2FDJ4.js} +11 -11
- package/dist/bundle/{chunk-HGL63O5V.js → chunk-MY6FAZRA.js} +2 -2
- package/dist/bundle/{chunk-QC53QBNC.js → chunk-NDSOBIR3.js} +3 -3
- package/dist/bundle/{chunk-XRFJWHY5.js → chunk-NEK7LKC6.js} +4 -4
- package/dist/bundle/{chunk-2SNUMZ7S.js → chunk-NKLLI4B2.js} +6 -6
- package/dist/bundle/{chunk-QMPN6WKD.js → chunk-NWKXMMON.js} +100 -81
- package/dist/bundle/{chunk-P33NDCDI.js → chunk-O7FVOICH.js} +1 -1
- package/dist/bundle/{chunk-SFRNX2TI.js → chunk-OCRCVLZQ.js} +1 -1
- package/dist/bundle/{chunk-TE3FR6MI.js → chunk-OKDC6CLH.js} +5 -5
- package/dist/bundle/{chunk-DTXERR44.js → chunk-OWILUBCI.js} +2 -2
- package/dist/bundle/{chunk-CXL33BFL.js → chunk-OYLJHX74.js} +1 -1
- package/dist/bundle/{chunk-6WY72XVQ.js → chunk-POUSZWMP.js} +4 -4
- package/dist/bundle/{chunk-N6FLBXZS.js → chunk-Q4ILKTV4.js} +3 -3
- package/dist/bundle/{chunk-FLUEXJ4X.js → chunk-Q7Z5IMVY.js} +1 -1
- package/dist/bundle/{chunk-XJXONOB5.js → chunk-QVZSLBR6.js} +1 -1
- package/dist/bundle/{chunk-IRV2PCQ2.js → chunk-SBW2Y7AZ.js} +26 -26
- package/dist/bundle/{chunk-XNHSPHUN.js → chunk-UCLWWSQK.js} +2 -2
- package/dist/bundle/{chunk-BCF7P4FZ.js → chunk-UH56WLDS.js} +8 -8
- package/dist/bundle/{chunk-ZGZT5S6B.js → chunk-VMQL4GNH.js} +55 -55
- package/dist/bundle/{chunk-XD4FRDSL.js → chunk-VTIUWHZ3.js} +5 -5
- package/dist/bundle/{chunk-SGRYYE4X.js → chunk-WJRBX5QB.js} +4 -4
- package/dist/bundle/{chunk-VL6SPMZV.js → chunk-XG6QKS7L.js} +5 -5
- package/dist/bundle/{chunk-RRJNNPR4.js → chunk-XKQZLR2X.js} +1 -1
- package/dist/bundle/{chunk-QSNROIJL.js → chunk-XOPMSWFC.js} +9 -9
- package/dist/bundle/{chunk-EVYSBZ3I.js → chunk-XR5SUCAC.js} +4 -4
- package/dist/bundle/{chunk-PH5FZX6E.js → chunk-Y5PPMGCS.js} +2 -2
- package/dist/bundle/{chunk-EXOOKUEA.js → chunk-YFZXI3NN.js} +2 -2
- package/dist/bundle/{chunk-CNNEA2M4.js → chunk-ZU4HXKEW.js} +3 -3
- package/dist/bundle/command-contract-UON4EIC4.js +30 -0
- package/dist/bundle/{decode-5ZPLTYV6.js → decode-IF2F2SFC.js} +3 -3
- package/dist/bundle/{echarts-J6LAPIX7.js → echarts-WDDVEJO2.js} +2 -2
- package/dist/bundle/{embed-YG5LDHME.js → embed-VDUGYEAR.js} +4 -4
- package/dist/bundle/{embedder-7FNUA5OZ.js → embedder-DUN62H3Z.js} +7 -7
- package/dist/bundle/{first-run-JPZNWIJN.js → first-run-NDGYBQEN.js} +8 -8
- package/dist/bundle/first-screen-QAVKP5RF.js +28 -0
- package/dist/bundle/{instructions-AXWTQHMR.js → instructions-JIIKWS7X.js} +1 -1
- package/dist/bundle/{mcp-7F46P6AM.js → mcp-33JX6KP4.js} +2 -2
- package/dist/bundle/{mcp-HUD6UH5X.js → mcp-57EQ6QJO.js} +58 -47
- package/dist/bundle/mcp-PFJER2DE.js +87 -0
- package/dist/bundle/{node-CWKAIOEM.js → node-K57WT42O.js} +2 -2
- package/dist/bundle/{node-sqlite-LSEKVRDA.js → node-sqlite-KS6ORRIG.js} +4 -4
- package/dist/bundle/{oauth-THYNLRLD.js → oauth-SLSANN37.js} +5 -5
- package/dist/bundle/{open-E47QYKFC.js → open-WJPHADEX.js} +3 -3
- package/dist/bundle/{openai-EWSGC3BC.js → openai-HXB3GTOD.js} +12 -12
- package/dist/bundle/{process-WKTEA3WE.js → process-P73TFAXT.js} +1 -1
- package/dist/bundle/program-7BMG5NIN.js +2250 -0
- package/dist/bundle/{prompt-CAQ7QR3U.js → prompt-WDPV37R4.js} +3 -3
- package/dist/bundle/{recognize-6KGHNZC3.js → recognize-CXIFL6IV.js} +2 -2
- package/dist/bundle/{remote-3UO2WDC3.js → remote-Q4VJ4OQW.js} +5 -5
- package/dist/bundle/{rerank-2JVDPZBX.js → rerank-SUFYK63I.js} +5 -5
- package/dist/bundle/{serve-ES7AG5IK.js → serve-B7PGFOC2.js} +7 -7
- package/dist/bundle/server-4DBNJWW6.js +58 -0
- package/dist/bundle/server-OKE7SXJ2.js +45 -0
- package/dist/bundle/{state-7NH5G4XJ.js → state-EZCCXQV7.js} +4 -4
- package/dist/bundle/{store-7O4JQD2Z.js → store-MZ7JBYR6.js} +12 -12
- package/dist/bundle/store-maintenance-command-T5QZMENJ.js +47 -0
- package/dist/commands/api.d.ts.map +1 -1
- package/dist/commands/api.js +57 -7
- package/dist/commands/api.js.map +1 -1
- package/dist/commands/crm-writes.d.ts.map +1 -1
- package/dist/commands/crm-writes.js +24 -8
- package/dist/commands/crm-writes.js.map +1 -1
- package/dist/commands/crm.d.ts.map +1 -1
- package/dist/commands/crm.js +29 -3
- package/dist/commands/crm.js.map +1 -1
- package/dist/commands/fields.d.ts +3 -0
- package/dist/commands/fields.d.ts.map +1 -0
- package/dist/commands/fields.js +45 -0
- package/dist/commands/fields.js.map +1 -0
- package/dist/commands/write.d.ts +6 -1
- package/dist/commands/write.d.ts.map +1 -1
- package/dist/commands/write.js +7 -5
- package/dist/commands/write.js.map +1 -1
- package/dist/config.d.ts.map +1 -1
- package/dist/config.js +2 -1
- package/dist/config.js.map +1 -1
- package/dist/crm/conditions.js +1 -1
- package/dist/crm/conditions.js.map +1 -1
- package/dist/crm/custom-query.d.ts +19 -0
- package/dist/crm/custom-query.d.ts.map +1 -0
- package/dist/crm/custom-query.js +79 -0
- package/dist/crm/custom-query.js.map +1 -0
- package/dist/crm/deal.d.ts +7 -3
- package/dist/crm/deal.d.ts.map +1 -1
- package/dist/crm/deal.js +3 -3
- package/dist/crm/deal.js.map +1 -1
- package/dist/crm/fields.d.ts +44 -0
- package/dist/crm/fields.d.ts.map +1 -0
- package/dist/crm/fields.js +143 -0
- package/dist/crm/fields.js.map +1 -0
- package/dist/crm/items.d.ts +9 -3
- package/dist/crm/items.d.ts.map +1 -1
- package/dist/crm/items.js +27 -6
- package/dist/crm/items.js.map +1 -1
- package/dist/crm/lead.d.ts +7 -3
- package/dist/crm/lead.d.ts.map +1 -1
- package/dist/crm/lead.js +3 -3
- package/dist/crm/lead.js.map +1 -1
- package/dist/crm/organization.d.ts +7 -3
- package/dist/crm/organization.d.ts.map +1 -1
- package/dist/crm/organization.js +3 -3
- package/dist/crm/organization.js.map +1 -1
- package/dist/crm/person.d.ts +7 -3
- package/dist/crm/person.d.ts.map +1 -1
- package/dist/crm/person.js +3 -3
- package/dist/crm/person.js.map +1 -1
- package/dist/crm/values.d.ts +12 -1
- package/dist/crm/values.d.ts.map +1 -1
- package/dist/crm/values.js +12 -2
- package/dist/crm/values.js.map +1 -1
- package/dist/mcp.d.ts.map +1 -1
- package/dist/mcp.js +4 -1
- package/dist/mcp.js.map +1 -1
- package/dist/program.d.ts.map +1 -1
- package/dist/program.js +4 -1
- package/dist/program.js.map +1 -1
- package/dist/reasons.d.ts.map +1 -1
- package/dist/reasons.js +6 -1
- package/dist/reasons.js.map +1 -1
- package/dist/version.d.ts +1 -1
- package/dist/version.js +1 -1
- package/package.json +3 -3
- package/skills/bitrix24-cli/SKILL.md +8 -3
- package/dist/bundle/command-contract-OKQOE6G4.js +0 -30
- package/dist/bundle/first-screen-VQM4MTS7.js +0 -28
- package/dist/bundle/mcp-J5R5A65I.js +0 -87
- package/dist/bundle/server-5LE5LNUQ.js +0 -45
- package/dist/bundle/server-BU4VBM6S.js +0 -58
- package/dist/bundle/store-maintenance-command-UDVGEY2D.js +0 -47
- /package/dist/bundle/{chunk-4PDYYS5K.js → chunk-NDTJE6JQ.js} +0 -0
|
@@ -0,0 +1,143 @@
|
|
|
1
|
+
import { CliError } from "@wirecat/cli-base";
|
|
2
|
+
import * as v from "valibot";
|
|
3
|
+
import { isCustom, text, yes } from "./values.js";
|
|
4
|
+
export const fieldSchema = v.strictObject({
|
|
5
|
+
code: v.string(),
|
|
6
|
+
label: v.nullable(v.string()),
|
|
7
|
+
type: v.string(),
|
|
8
|
+
multiple: v.boolean(),
|
|
9
|
+
filterable: v.boolean(),
|
|
10
|
+
/** A list field's options; absent on any other field. */
|
|
11
|
+
options: v.optional(v.array(v.strictObject({ id: v.string(), label: v.string() }))),
|
|
12
|
+
});
|
|
13
|
+
const rows = (result) => {
|
|
14
|
+
const items = Array.isArray(result) ? result : result?.items;
|
|
15
|
+
return Array.isArray(items) ? items : [];
|
|
16
|
+
};
|
|
17
|
+
/**
|
|
18
|
+
* The portal's custom fields of one type, in two calls that need only read rights: REST 3.0's `field.list` has the
|
|
19
|
+
* title and whether a list can filter by it, and REST 2's `userfield.list` the real type and a list field's options,
|
|
20
|
+
* which `field.list` shows only as `int` (apidocs crm.<type>.field.custom.enum.list).
|
|
21
|
+
*/
|
|
22
|
+
export const loadFields = async (portal, type) => {
|
|
23
|
+
const described = await portal.call(`crm.${type}.field.list`, {
|
|
24
|
+
select: ["name", "title", "type", "multiple", "filterable"],
|
|
25
|
+
});
|
|
26
|
+
const custom = await portal.call(`crm.${type}.userfield.list`, { order: { SORT: "ASC" } });
|
|
27
|
+
const own = new Map(rows(custom.result).map((field) => [String(field.FIELD_NAME), field]));
|
|
28
|
+
return rows(described.result)
|
|
29
|
+
.filter((field) => isCustom(String(field.name)))
|
|
30
|
+
.map((field) => {
|
|
31
|
+
const code = String(field.name);
|
|
32
|
+
const user = own.get(code);
|
|
33
|
+
const options = Array.isArray(user?.LIST)
|
|
34
|
+
? user.LIST.flatMap((option) => {
|
|
35
|
+
const id = text(option.ID);
|
|
36
|
+
return id === null ? [] : [{ id, label: text(option.VALUE) ?? id }];
|
|
37
|
+
})
|
|
38
|
+
: undefined;
|
|
39
|
+
return {
|
|
40
|
+
code,
|
|
41
|
+
label: text(field.title),
|
|
42
|
+
type: text(user?.USER_TYPE_ID) ?? text(field.type) ?? "string",
|
|
43
|
+
multiple: yes(field.multiple),
|
|
44
|
+
filterable: yes(field.filterable),
|
|
45
|
+
...(options ? { options } : {}),
|
|
46
|
+
};
|
|
47
|
+
});
|
|
48
|
+
};
|
|
49
|
+
const optionLabel = (field, id) => field.options?.find((option) => option.id === String(id))?.label ?? String(id);
|
|
50
|
+
/** Custom values as `{ label, value }`, a list field's option ids turned into their labels. */
|
|
51
|
+
export const metadataOf = (custom, fields) => {
|
|
52
|
+
const byCode = new Map(fields.map((field) => [field.code, field]));
|
|
53
|
+
return Object.fromEntries(Object.entries(custom).map(([code, value]) => {
|
|
54
|
+
const field = byCode.get(code);
|
|
55
|
+
const label = field?.label ?? null;
|
|
56
|
+
if (!field?.options)
|
|
57
|
+
return [code, { label, value }];
|
|
58
|
+
if (Array.isArray(value))
|
|
59
|
+
return [
|
|
60
|
+
code,
|
|
61
|
+
{ label, value: value.map((one) => optionLabel(field, one)), option_id: value.map((one) => String(one)) },
|
|
62
|
+
];
|
|
63
|
+
return [code, { label, value: optionLabel(field, value), option_id: String(value) }];
|
|
64
|
+
}));
|
|
65
|
+
};
|
|
66
|
+
/** Case, spaces and underscores aside: `lead_source` and `Lead source` are one name. */
|
|
67
|
+
const folded = (name) => name
|
|
68
|
+
.trim()
|
|
69
|
+
.toLocaleLowerCase()
|
|
70
|
+
.replace(/[\s_]+/g, " ");
|
|
71
|
+
const named = (field) => ({ code: field.code, label: field.label });
|
|
72
|
+
/** No field by that name: the fields whose code or label holds it, or is held in it, as candidates. */
|
|
73
|
+
export const unknownField = (fields, name) => {
|
|
74
|
+
const want = folded(name);
|
|
75
|
+
const close = fields.filter((field) => [field.code, field.label ?? ""].some((one) => {
|
|
76
|
+
const other = folded(one);
|
|
77
|
+
return other !== "" && (other.includes(want) || want.includes(other));
|
|
78
|
+
}));
|
|
79
|
+
return new CliError("validation_error", `no custom field is named ${name}${close.length ? "; close ones are in candidates" : ""} — \`fields list\` lists them`, { reason: "field.unknown", candidates: close.map(named) });
|
|
80
|
+
};
|
|
81
|
+
/**
|
|
82
|
+
* A custom field by its code, or by its whole label; two fields with that label are refused with both, never
|
|
83
|
+
* guessed (as `resolveItem` refuses two records).
|
|
84
|
+
*/
|
|
85
|
+
export const findField = (fields, name) => {
|
|
86
|
+
const want = folded(name);
|
|
87
|
+
const byCode = fields.find((field) => folded(field.code) === want);
|
|
88
|
+
if (byCode)
|
|
89
|
+
return byCode;
|
|
90
|
+
const labelled = fields.filter((field) => field.label !== null && folded(field.label) === want);
|
|
91
|
+
if (labelled.length === 1 && labelled[0])
|
|
92
|
+
return labelled[0];
|
|
93
|
+
if (labelled.length > 1)
|
|
94
|
+
throw new CliError("validation_error", `${labelled.length} custom fields are labelled ${name}; name one by its code`, {
|
|
95
|
+
reason: "field.ambiguous",
|
|
96
|
+
candidates: labelled.map(named),
|
|
97
|
+
});
|
|
98
|
+
throw unknownField(fields, name);
|
|
99
|
+
};
|
|
100
|
+
/** A list field's option by its id or its whole label. */
|
|
101
|
+
export const optionOf = (field, value) => {
|
|
102
|
+
if (!field.options)
|
|
103
|
+
return value;
|
|
104
|
+
const want = folded(value);
|
|
105
|
+
const found = field.options.find((option) => option.id === value.trim()) ??
|
|
106
|
+
field.options.find((option) => folded(option.label) === want);
|
|
107
|
+
if (!found)
|
|
108
|
+
throw new CliError("validation_error", `${field.label ?? field.code} has no option ${value}`, {
|
|
109
|
+
reason: "field.unknown-option",
|
|
110
|
+
field: field.code,
|
|
111
|
+
allowed: field.options,
|
|
112
|
+
});
|
|
113
|
+
return found.id;
|
|
114
|
+
};
|
|
115
|
+
/** `--field` as typed, split at the first `=`. */
|
|
116
|
+
export const fieldPairsOf = (typed) => typed.map((one) => {
|
|
117
|
+
const at = one.indexOf("=");
|
|
118
|
+
if (at <= 0 || one.slice(0, at).trim() === "")
|
|
119
|
+
throw new CliError("validation_error", `--field takes <key>=<value>; got ${one}`, { param: "--field" });
|
|
120
|
+
return [one.slice(0, at), one.slice(at + 1)];
|
|
121
|
+
});
|
|
122
|
+
/**
|
|
123
|
+
* The custom values to write, by code, as typed: a list field's options as their ids, numbers as `field.list` types
|
|
124
|
+
* them (`int`), and a multiple field's values as an array.
|
|
125
|
+
*/
|
|
126
|
+
export const customValues = (fields, pairs) => {
|
|
127
|
+
const values = new Map();
|
|
128
|
+
for (const [name, value] of pairs) {
|
|
129
|
+
const field = findField(fields, name);
|
|
130
|
+
values.set(field, [...(values.get(field) ?? []), field.options ? Number(optionOf(field, value)) : value]);
|
|
131
|
+
}
|
|
132
|
+
return Object.fromEntries([...values].map(([field, all]) => {
|
|
133
|
+
if (field.multiple)
|
|
134
|
+
return [field.code, all];
|
|
135
|
+
if (all.length > 1)
|
|
136
|
+
throw new CliError("validation_error", `${field.label ?? field.code} holds one value; give --field once`, {
|
|
137
|
+
param: "--field",
|
|
138
|
+
field: field.code,
|
|
139
|
+
});
|
|
140
|
+
return [field.code, all[0]];
|
|
141
|
+
}));
|
|
142
|
+
};
|
|
143
|
+
//# sourceMappingURL=fields.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"fields.js","sourceRoot":"","sources":["../../src/crm/fields.ts"],"names":[],"mappings":"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"}
|
package/dist/crm/items.d.ts
CHANGED
|
@@ -1,6 +1,7 @@
|
|
|
1
1
|
import type { BitrixTransport } from "../bitrix/transport.js";
|
|
2
2
|
import { type Condition } from "./conditions.js";
|
|
3
|
-
import { type
|
|
3
|
+
import { type Field } from "./fields.js";
|
|
4
|
+
import { type Metadata, type Raw } from "./values.js";
|
|
4
5
|
import { type Window } from "./walk.js";
|
|
5
6
|
/** A CRM object REST 3.0 serves as `crm.<type>.*`, and REST 2 as `crm.item.*` with its `entityTypeId`. */
|
|
6
7
|
export interface ItemType<T> {
|
|
@@ -12,9 +13,14 @@ export interface ItemType<T> {
|
|
|
12
13
|
/** The fields a free word in a list query, or a name in `show`, is matched against. */
|
|
13
14
|
words: readonly string[];
|
|
14
15
|
nameOf: (item: T) => string | null;
|
|
15
|
-
map: (raw: Raw,
|
|
16
|
+
map: (raw: Raw, metadata?: Metadata) => T;
|
|
16
17
|
}
|
|
17
|
-
|
|
18
|
+
/** Custom fields a list selects beside its own, with the definitions that label them. */
|
|
19
|
+
export interface Custom {
|
|
20
|
+
codes: readonly string[];
|
|
21
|
+
fields: readonly Field[];
|
|
22
|
+
}
|
|
23
|
+
export declare const listItems: <T>(portal: BitrixTransport, type: ItemType<T>, conditions: readonly Condition[], window: Window, custom?: Custom) => Promise<{
|
|
18
24
|
items: T[];
|
|
19
25
|
has_more: boolean;
|
|
20
26
|
}>;
|
package/dist/crm/items.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"items.d.ts","sourceRoot":"","sources":["../../src/crm/items.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,wBAAwB,CAAA;AAC7D,OAAO,EAAE,KAAK,SAAS,EAAwC,MAAM,iBAAiB,CAAA;AACtF,OAAO,EAAgB,KAAK,GAAG,EAAE,MAAM,aAAa,CAAA;
|
|
1
|
+
{"version":3,"file":"items.d.ts","sourceRoot":"","sources":["../../src/crm/items.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,wBAAwB,CAAA;AAC7D,OAAO,EAAE,KAAK,SAAS,EAAwC,MAAM,iBAAiB,CAAA;AACtF,OAAO,EAAE,KAAK,KAAK,EAA0B,MAAM,aAAa,CAAA;AAChE,OAAO,EAAgB,KAAK,QAAQ,EAAE,KAAK,GAAG,EAAE,MAAM,aAAa,CAAA;AACnE,OAAO,EAAE,KAAK,MAAM,EAAQ,MAAM,WAAW,CAAA;AAE7C,0GAA0G;AAC1G,MAAM,WAAW,QAAQ,CAAC,CAAC;IACzB,IAAI,EAAE,MAAM,GAAG,MAAM,GAAG,SAAS,GAAG,SAAS,CAAA;IAC7C,YAAY,EAAE,MAAM,CAAA;IACpB,+DAA+D;IAC/D,IAAI,EAAE,MAAM,CAAA;IACZ,MAAM,EAAE,SAAS,MAAM,EAAE,CAAA;IACzB,uFAAuF;IACvF,KAAK,EAAE,SAAS,MAAM,EAAE,CAAA;IACxB,MAAM,EAAE,CAAC,IAAI,EAAE,CAAC,KAAK,MAAM,GAAG,IAAI,CAAA;IAClC,GAAG,EAAE,CAAC,GAAG,EAAE,GAAG,EAAE,QAAQ,CAAC,EAAE,QAAQ,KAAK,CAAC,CAAA;CAC1C;AAaD,yFAAyF;AACzF,MAAM,WAAW,MAAM;IACrB,KAAK,EAAE,SAAS,MAAM,EAAE,CAAA;IACxB,MAAM,EAAE,SAAS,KAAK,EAAE,CAAA;CACzB;AAED,eAAO,MAAM,SAAS,GAAU,CAAC,UACvB,eAAe,QACjB,QAAQ,CAAC,CAAC,CAAC,cACL,SAAS,SAAS,EAAE,UACxB,MAAM,WACN,MAAM;;;EA6Bf,CAAA;AAOD,6GAA6G;AAC7G,eAAO,MAAM,OAAO,GAAU,CAAC,UAAU,eAAe,QAAQ,QAAQ,CAAC,CAAC,CAAC,MAAM,MAAM,KAAG,OAAO,CAAC,CAAC,CAYlG,CAAA;AAcD;;;GAGG;AACH,eAAO,MAAM,WAAW,GAAU,CAAC,SAAS;IAAE,EAAE,EAAE,MAAM,CAAA;CAAE,UAChD,eAAe,QACjB,QAAQ,CAAC,CAAC,CAAC,aACN,MAAM,KAChB,OAAO,CAAC,MAAM,CAuBhB,CAAA"}
|
package/dist/crm/items.js
CHANGED
|
@@ -1,5 +1,6 @@
|
|
|
1
|
-
import { CliError } from "@wirecat/cli-base";
|
|
1
|
+
import { CliError, isCliError } from "@wirecat/cli-base";
|
|
2
2
|
import { needsRest2, rest2Filter, rest3Filter } from "./conditions.js";
|
|
3
|
+
import { loadFields, metadataOf } from "./fields.js";
|
|
3
4
|
import { customFields } from "./values.js";
|
|
4
5
|
import { walk } from "./walk.js";
|
|
5
6
|
const REST3_PAGE = 1000;
|
|
@@ -10,28 +11,34 @@ const itemsOf = (result) => {
|
|
|
10
11
|
};
|
|
11
12
|
/** Newest first; REST 3.0 adds `id` itself for stable pages. */
|
|
12
13
|
const ORDER = { id: "DESC" };
|
|
13
|
-
export const listItems = async (portal, type, conditions, window) => {
|
|
14
|
+
export const listItems = async (portal, type, conditions, window, custom = { codes: [], fields: [] }) => {
|
|
15
|
+
const select = [...type.select, ...custom.codes];
|
|
14
16
|
const { items, has_more } = needsRest2(conditions)
|
|
15
17
|
? await walk(window, REST2_PAGE, async (start) => {
|
|
16
18
|
const answer = await portal.call("crm.item.list", {
|
|
17
19
|
entityTypeId: type.entityTypeId,
|
|
18
|
-
select
|
|
20
|
+
select,
|
|
19
21
|
filter: rest2Filter(conditions, { [type.words[0] ?? "title"]: type.words }),
|
|
20
22
|
order: ORDER,
|
|
21
23
|
start,
|
|
24
|
+
useOriginalUfNames: "Y",
|
|
22
25
|
});
|
|
23
26
|
return { rows: itemsOf(answer.result), more: answer.next !== undefined };
|
|
24
27
|
})
|
|
25
28
|
: await walk(window, REST3_PAGE, async (offset, limit) => {
|
|
26
29
|
const rows = itemsOf((await portal.call(`crm.${type.type}.list`, {
|
|
27
|
-
select
|
|
30
|
+
select,
|
|
28
31
|
filter: rest3Filter(conditions),
|
|
29
32
|
order: ORDER,
|
|
30
33
|
pagination: { limit, offset },
|
|
31
34
|
})).result);
|
|
32
35
|
return { rows, more: rows.length === limit };
|
|
33
36
|
});
|
|
34
|
-
return { items: items.map((raw) => type.map(raw)), has_more };
|
|
37
|
+
return { items: items.map((raw) => type.map(raw, metadataIn(raw, custom))), has_more };
|
|
38
|
+
};
|
|
39
|
+
const metadataIn = (raw, { codes, fields }) => {
|
|
40
|
+
const values = Object.entries(customFields(raw)).filter(([code]) => codes.includes(code));
|
|
41
|
+
return values.length ? metadataOf(Object.fromEntries(values), fields) : undefined;
|
|
35
42
|
};
|
|
36
43
|
/** One item, with the portal's custom fields, which REST 3.0 returns only when each is named in `select`. */
|
|
37
44
|
export const getItem = async (portal, type, id) => {
|
|
@@ -44,7 +51,21 @@ export const getItem = async (portal, type, id) => {
|
|
|
44
51
|
id: Number(id),
|
|
45
52
|
useOriginalUfNames: "Y",
|
|
46
53
|
});
|
|
47
|
-
|
|
54
|
+
const custom = customFields(full.result?.item);
|
|
55
|
+
if (!Object.keys(custom).length)
|
|
56
|
+
return type.map(item);
|
|
57
|
+
return type.map(item, metadataOf(custom, await fieldsOrNone(portal, type.type)));
|
|
58
|
+
};
|
|
59
|
+
/** Labels are extra, so a failed call leaves them out rather than failing `show`. */
|
|
60
|
+
const fieldsOrNone = async (portal, type) => {
|
|
61
|
+
try {
|
|
62
|
+
return await loadFields(portal, type);
|
|
63
|
+
}
|
|
64
|
+
catch (error) {
|
|
65
|
+
if (isCliError(error) && error.code === "cancelled")
|
|
66
|
+
throw error;
|
|
67
|
+
return [];
|
|
68
|
+
}
|
|
48
69
|
};
|
|
49
70
|
const folded = (value) => value?.trim().toLocaleLowerCase() ?? "";
|
|
50
71
|
/**
|
package/dist/crm/items.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"items.js","sourceRoot":"","sources":["../../src/crm/items.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAE,MAAM,mBAAmB,CAAA;
|
|
1
|
+
{"version":3,"file":"items.js","sourceRoot":"","sources":["../../src/crm/items.ts"],"names":[],"mappings":"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"}
|
package/dist/crm/lead.d.ts
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import * as v from "valibot";
|
|
2
2
|
import type { FieldMap } from "./conditions.js";
|
|
3
3
|
import type { ItemType } from "./items.js";
|
|
4
|
-
import { type Raw } from "./values.js";
|
|
4
|
+
import { type Metadata, type Raw } from "./values.js";
|
|
5
5
|
export declare const leadSchema: v.StrictObjectSchema<{
|
|
6
6
|
readonly id: v.StringSchema<undefined>;
|
|
7
7
|
readonly title: v.NullableSchema<v.StringSchema<undefined>, undefined>;
|
|
@@ -26,11 +26,15 @@ export declare const leadSchema: v.StrictObjectSchema<{
|
|
|
26
26
|
readonly created_at: v.NullableSchema<v.SchemaWithPipe<readonly [v.StringSchema<undefined>, v.IsoTimestampAction<string, "an ISO 8601 time in UTC">, v.EndsWithAction<string, "Z", "an ISO 8601 time in UTC, ending in `Z`">]>, undefined>;
|
|
27
27
|
readonly updated_at: v.NullableSchema<v.SchemaWithPipe<readonly [v.StringSchema<undefined>, v.IsoTimestampAction<string, "an ISO 8601 time in UTC">, v.EndsWithAction<string, "Z", "an ISO 8601 time in UTC, ending in `Z`">]>, undefined>;
|
|
28
28
|
readonly url: v.NullableSchema<v.StringSchema<undefined>, undefined>;
|
|
29
|
-
readonly provider_metadata: v.OptionalSchema<v.RecordSchema<v.StringSchema<undefined>, v.
|
|
29
|
+
readonly provider_metadata: v.OptionalSchema<v.RecordSchema<v.StringSchema<undefined>, v.StrictObjectSchema<{
|
|
30
|
+
readonly label: v.NullableSchema<v.StringSchema<undefined>, undefined>;
|
|
31
|
+
readonly value: v.UnknownSchema;
|
|
32
|
+
readonly option_id: v.OptionalSchema<v.UnionSchema<[v.StringSchema<undefined>, v.ArraySchema<v.StringSchema<undefined>, undefined>], undefined>, undefined>;
|
|
33
|
+
}, undefined>, undefined>, undefined>;
|
|
30
34
|
}, undefined>;
|
|
31
35
|
export type Lead = v.InferOutput<typeof leadSchema>;
|
|
32
36
|
export declare const LEAD_FIELDS: Record<string, FieldMap>;
|
|
33
37
|
/** Phones and emails come from REST 3.0 only; REST 2's crm.item.list leaves them out, so they are left out here too. */
|
|
34
|
-
export declare const fromBitrixLead: (raw: Raw,
|
|
38
|
+
export declare const fromBitrixLead: (raw: Raw, metadata?: Metadata) => Lead;
|
|
35
39
|
export declare const LEAD: ItemType<Lead>;
|
|
36
40
|
//# sourceMappingURL=lead.d.ts.map
|
package/dist/crm/lead.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"lead.d.ts","sourceRoot":"","sources":["../../src/crm/lead.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,CAAC,MAAM,SAAS,CAAA;AAC5B,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,iBAAiB,CAAA;AAC/C,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,YAAY,CAAA;AAC1C,OAAO,
|
|
1
|
+
{"version":3,"file":"lead.d.ts","sourceRoot":"","sources":["../../src/crm/lead.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,CAAC,MAAM,SAAS,CAAA;AAC5B,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,iBAAiB,CAAA;AAC/C,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,YAAY,CAAA;AAC1C,OAAO,EAML,KAAK,QAAQ,EAMb,KAAK,GAAG,EAGT,MAAM,aAAa,CAAA;AAEpB,eAAO,MAAM,UAAU;;;;;;;;;;;;;;;;;;;;;;;;;;;;;aAmBrB,CAAA;AAEF,MAAM,MAAM,IAAI,GAAG,CAAC,CAAC,WAAW,CAAC,OAAO,UAAU,CAAC,CAAA;AAEnD,eAAO,MAAM,WAAW,EAAE,MAAM,CAAC,MAAM,EAAE,QAAQ,CAWhD,CAAA;AAED,wHAAwH;AACxH,eAAO,MAAM,cAAc,QAAS,GAAG,aAAa,QAAQ,KAAG,IAmB7D,CAAA;AAEF,eAAO,MAAM,IAAI,EAAE,QAAQ,CAAC,IAAI,CA4B/B,CAAA"}
|
package/dist/crm/lead.js
CHANGED
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import * as v from "valibot";
|
|
2
|
-
import { contactSchema, contacts,
|
|
2
|
+
import { contactSchema, contacts, fullName, id, ids, metadataSchema, nullableTime, number, OUTCOMES, outcomeOf, text, time, } from "./values.js";
|
|
3
3
|
export const leadSchema = v.strictObject({
|
|
4
4
|
id: v.string(),
|
|
5
5
|
title: v.nullable(v.string()),
|
|
@@ -33,7 +33,7 @@ export const LEAD_FIELDS = {
|
|
|
33
33
|
updated_at: { field: "updatedTime", kind: "time" },
|
|
34
34
|
};
|
|
35
35
|
/** Phones and emails come from REST 3.0 only; REST 2's crm.item.list leaves them out, so they are left out here too. */
|
|
36
|
-
export const fromBitrixLead = (raw,
|
|
36
|
+
export const fromBitrixLead = (raw, metadata) => ({
|
|
37
37
|
id: id(raw.id) ?? "",
|
|
38
38
|
title: text(raw.title),
|
|
39
39
|
name: fullName(raw.name, raw.secondName, raw.lastName),
|
|
@@ -51,7 +51,7 @@ export const fromBitrixLead = (raw, custom) => ({
|
|
|
51
51
|
created_at: time(raw.createdTime),
|
|
52
52
|
updated_at: time(raw.updatedTime),
|
|
53
53
|
url: text(raw.url),
|
|
54
|
-
...(
|
|
54
|
+
...(metadata ? { provider_metadata: metadata } : {}),
|
|
55
55
|
});
|
|
56
56
|
export const LEAD = {
|
|
57
57
|
type: "lead",
|
package/dist/crm/lead.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"lead.js","sourceRoot":"","sources":["../../src/crm/lead.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,CAAC,MAAM,SAAS,CAAA;AAG5B,OAAO,EACL,aAAa,EACb,QAAQ,EACR,
|
|
1
|
+
{"version":3,"file":"lead.js","sourceRoot":"","sources":["../../src/crm/lead.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import * as v from "valibot";
|
|
2
2
|
import type { FieldMap } from "./conditions.js";
|
|
3
3
|
import type { ItemType } from "./items.js";
|
|
4
|
-
import { type Raw } from "./values.js";
|
|
4
|
+
import { type Metadata, type Raw } from "./values.js";
|
|
5
5
|
/** A Bitrix24 company: an `organizations` record in WireCat's words. */
|
|
6
6
|
export declare const organizationSchema: v.StrictObjectSchema<{
|
|
7
7
|
readonly id: v.StringSchema<undefined>;
|
|
@@ -23,10 +23,14 @@ export declare const organizationSchema: v.StrictObjectSchema<{
|
|
|
23
23
|
readonly created_at: v.NullableSchema<v.SchemaWithPipe<readonly [v.StringSchema<undefined>, v.IsoTimestampAction<string, "an ISO 8601 time in UTC">, v.EndsWithAction<string, "Z", "an ISO 8601 time in UTC, ending in `Z`">]>, undefined>;
|
|
24
24
|
readonly updated_at: v.NullableSchema<v.SchemaWithPipe<readonly [v.StringSchema<undefined>, v.IsoTimestampAction<string, "an ISO 8601 time in UTC">, v.EndsWithAction<string, "Z", "an ISO 8601 time in UTC, ending in `Z`">]>, undefined>;
|
|
25
25
|
readonly url: v.NullableSchema<v.StringSchema<undefined>, undefined>;
|
|
26
|
-
readonly provider_metadata: v.OptionalSchema<v.RecordSchema<v.StringSchema<undefined>, v.
|
|
26
|
+
readonly provider_metadata: v.OptionalSchema<v.RecordSchema<v.StringSchema<undefined>, v.StrictObjectSchema<{
|
|
27
|
+
readonly label: v.NullableSchema<v.StringSchema<undefined>, undefined>;
|
|
28
|
+
readonly value: v.UnknownSchema;
|
|
29
|
+
readonly option_id: v.OptionalSchema<v.UnionSchema<[v.StringSchema<undefined>, v.ArraySchema<v.StringSchema<undefined>, undefined>], undefined>, undefined>;
|
|
30
|
+
}, undefined>, undefined>, undefined>;
|
|
27
31
|
}, undefined>;
|
|
28
32
|
export type Organization = v.InferOutput<typeof organizationSchema>;
|
|
29
33
|
export declare const ORGANIZATION_FIELDS: Record<string, FieldMap>;
|
|
30
|
-
export declare const fromBitrixOrganization: (raw: Raw,
|
|
34
|
+
export declare const fromBitrixOrganization: (raw: Raw, metadata?: Metadata) => Organization;
|
|
31
35
|
export declare const ORGANIZATION: ItemType<Organization>;
|
|
32
36
|
//# sourceMappingURL=organization.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"organization.d.ts","sourceRoot":"","sources":["../../src/crm/organization.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,CAAC,MAAM,SAAS,CAAA;AAC5B,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,iBAAiB,CAAA;AAC/C,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,YAAY,CAAA;AAC1C,OAAO,
|
|
1
|
+
{"version":3,"file":"organization.d.ts","sourceRoot":"","sources":["../../src/crm/organization.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,CAAC,MAAM,SAAS,CAAA;AAC5B,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,iBAAiB,CAAA;AAC/C,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,YAAY,CAAA;AAC1C,OAAO,EAKL,KAAK,QAAQ,EAIb,KAAK,GAAG,EAGT,MAAM,aAAa,CAAA;AAEpB,wEAAwE;AACxE,eAAO,MAAM,kBAAkB;;;;;;;;;;;;;;;;;;;;;;;;;aAe7B,CAAA;AAEF,MAAM,MAAM,YAAY,GAAG,CAAC,CAAC,WAAW,CAAC,OAAO,kBAAkB,CAAC,CAAA;AAEnE,eAAO,MAAM,mBAAmB,EAAE,MAAM,CAAC,MAAM,EAAE,QAAQ,CAOxD,CAAA;AAED,eAAO,MAAM,sBAAsB,QAAS,GAAG,aAAa,QAAQ,KAAG,YAerE,CAAA;AAEF,eAAO,MAAM,YAAY,EAAE,QAAQ,CAAC,YAAY,CAsB/C,CAAA"}
|
package/dist/crm/organization.js
CHANGED
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import * as v from "valibot";
|
|
2
|
-
import { contactSchema, contacts,
|
|
2
|
+
import { contactSchema, contacts, id, ids, metadataSchema, nullableTime, number, text, time, } from "./values.js";
|
|
3
3
|
/** A Bitrix24 company: an `organizations` record in WireCat's words. */
|
|
4
4
|
export const organizationSchema = v.strictObject({
|
|
5
5
|
id: v.string(),
|
|
@@ -25,7 +25,7 @@ export const ORGANIZATION_FIELDS = {
|
|
|
25
25
|
created_at: { field: "createdTime", kind: "time" },
|
|
26
26
|
updated_at: { field: "updatedTime", kind: "time" },
|
|
27
27
|
};
|
|
28
|
-
export const fromBitrixOrganization = (raw,
|
|
28
|
+
export const fromBitrixOrganization = (raw, metadata) => ({
|
|
29
29
|
id: id(raw.id) ?? "",
|
|
30
30
|
name: text(raw.title),
|
|
31
31
|
type_id: text(raw.typeId),
|
|
@@ -39,7 +39,7 @@ export const fromBitrixOrganization = (raw, custom) => ({
|
|
|
39
39
|
created_at: time(raw.createdTime),
|
|
40
40
|
updated_at: time(raw.updatedTime),
|
|
41
41
|
url: text(raw.url),
|
|
42
|
-
...(
|
|
42
|
+
...(metadata ? { provider_metadata: metadata } : {}),
|
|
43
43
|
});
|
|
44
44
|
export const ORGANIZATION = {
|
|
45
45
|
type: "company",
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"organization.js","sourceRoot":"","sources":["../../src/crm/organization.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,CAAC,MAAM,SAAS,CAAA;AAG5B,OAAO,EACL,aAAa,EACb,QAAQ,EACR,
|
|
1
|
+
{"version":3,"file":"organization.js","sourceRoot":"","sources":["../../src/crm/organization.ts"],"names":[],"mappings":"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"}
|
package/dist/crm/person.d.ts
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import * as v from "valibot";
|
|
2
2
|
import type { FieldMap } from "./conditions.js";
|
|
3
3
|
import type { ItemType } from "./items.js";
|
|
4
|
-
import { type Raw } from "./values.js";
|
|
4
|
+
import { type Metadata, type Raw } from "./values.js";
|
|
5
5
|
/** A Bitrix24 contact: a `people` record in WireCat's words. */
|
|
6
6
|
export declare const personSchema: v.StrictObjectSchema<{
|
|
7
7
|
readonly id: v.StringSchema<undefined>;
|
|
@@ -22,10 +22,14 @@ export declare const personSchema: v.StrictObjectSchema<{
|
|
|
22
22
|
readonly created_at: v.NullableSchema<v.SchemaWithPipe<readonly [v.StringSchema<undefined>, v.IsoTimestampAction<string, "an ISO 8601 time in UTC">, v.EndsWithAction<string, "Z", "an ISO 8601 time in UTC, ending in `Z`">]>, undefined>;
|
|
23
23
|
readonly updated_at: v.NullableSchema<v.SchemaWithPipe<readonly [v.StringSchema<undefined>, v.IsoTimestampAction<string, "an ISO 8601 time in UTC">, v.EndsWithAction<string, "Z", "an ISO 8601 time in UTC, ending in `Z`">]>, undefined>;
|
|
24
24
|
readonly url: v.NullableSchema<v.StringSchema<undefined>, undefined>;
|
|
25
|
-
readonly provider_metadata: v.OptionalSchema<v.RecordSchema<v.StringSchema<undefined>, v.
|
|
25
|
+
readonly provider_metadata: v.OptionalSchema<v.RecordSchema<v.StringSchema<undefined>, v.StrictObjectSchema<{
|
|
26
|
+
readonly label: v.NullableSchema<v.StringSchema<undefined>, undefined>;
|
|
27
|
+
readonly value: v.UnknownSchema;
|
|
28
|
+
readonly option_id: v.OptionalSchema<v.UnionSchema<[v.StringSchema<undefined>, v.ArraySchema<v.StringSchema<undefined>, undefined>], undefined>, undefined>;
|
|
29
|
+
}, undefined>, undefined>, undefined>;
|
|
26
30
|
}, undefined>;
|
|
27
31
|
export type Person = v.InferOutput<typeof personSchema>;
|
|
28
32
|
export declare const PERSON_FIELDS: Record<string, FieldMap>;
|
|
29
|
-
export declare const fromBitrixPerson: (raw: Raw,
|
|
33
|
+
export declare const fromBitrixPerson: (raw: Raw, metadata?: Metadata) => Person;
|
|
30
34
|
export declare const PERSON: ItemType<Person>;
|
|
31
35
|
//# sourceMappingURL=person.d.ts.map
|
package/dist/crm/person.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"person.d.ts","sourceRoot":"","sources":["../../src/crm/person.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,CAAC,MAAM,SAAS,CAAA;AAC5B,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,iBAAiB,CAAA;AAC/C,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,YAAY,CAAA;AAC1C,OAAO,
|
|
1
|
+
{"version":3,"file":"person.d.ts","sourceRoot":"","sources":["../../src/crm/person.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,CAAC,MAAM,SAAS,CAAA;AAC5B,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,iBAAiB,CAAA;AAC/C,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,YAAY,CAAA;AAC1C,OAAO,EAML,KAAK,QAAQ,EAGb,KAAK,GAAG,EAGT,MAAM,aAAa,CAAA;AAEpB,gEAAgE;AAChE,eAAO,MAAM,YAAY;;;;;;;;;;;;;;;;;;;;;;;;aAcvB,CAAA;AAEF,MAAM,MAAM,MAAM,GAAG,CAAC,CAAC,WAAW,CAAC,OAAO,YAAY,CAAC,CAAA;AAEvD,eAAO,MAAM,aAAa,EAAE,MAAM,CAAC,MAAM,EAAE,QAAQ,CAKlD,CAAA;AAED,eAAO,MAAM,gBAAgB,QAAS,GAAG,aAAa,QAAQ,KAAG,MAkBhE,CAAA;AAED,eAAO,MAAM,MAAM,EAAE,QAAQ,CAAC,MAAM,CAsBnC,CAAA"}
|
package/dist/crm/person.js
CHANGED
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import * as v from "valibot";
|
|
2
|
-
import { contactSchema, contacts,
|
|
2
|
+
import { contactSchema, contacts, fullName, id, ids, metadataSchema, nullableTime, text, time, } from "./values.js";
|
|
3
3
|
/** A Bitrix24 contact: a `people` record in WireCat's words. */
|
|
4
4
|
export const personSchema = v.strictObject({
|
|
5
5
|
id: v.string(),
|
|
@@ -22,7 +22,7 @@ export const PERSON_FIELDS = {
|
|
|
22
22
|
created_at: { field: "createdTime", kind: "time" },
|
|
23
23
|
updated_at: { field: "updatedTime", kind: "time" },
|
|
24
24
|
};
|
|
25
|
-
export const fromBitrixPerson = (raw,
|
|
25
|
+
export const fromBitrixPerson = (raw, metadata) => {
|
|
26
26
|
const companies = ids(raw.companiesId);
|
|
27
27
|
const first = id(raw.companyId);
|
|
28
28
|
return {
|
|
@@ -38,7 +38,7 @@ export const fromBitrixPerson = (raw, custom) => {
|
|
|
38
38
|
created_at: time(raw.createdTime),
|
|
39
39
|
updated_at: time(raw.updatedTime),
|
|
40
40
|
url: text(raw.url),
|
|
41
|
-
...(
|
|
41
|
+
...(metadata ? { provider_metadata: metadata } : {}),
|
|
42
42
|
};
|
|
43
43
|
};
|
|
44
44
|
export const PERSON = {
|
package/dist/crm/person.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"person.js","sourceRoot":"","sources":["../../src/crm/person.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,CAAC,MAAM,SAAS,CAAA;AAG5B,OAAO,EACL,aAAa,EACb,QAAQ,EACR,
|
|
1
|
+
{"version":3,"file":"person.js","sourceRoot":"","sources":["../../src/crm/person.ts"],"names":[],"mappings":"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"}
|
package/dist/crm/values.d.ts
CHANGED
|
@@ -19,6 +19,8 @@ export interface Contact {
|
|
|
19
19
|
}
|
|
20
20
|
/** REST 3.0 `phone` and `email`: `[{ valueTypeId, value }]`. */
|
|
21
21
|
export declare const contacts: (value: unknown) => Contact[];
|
|
22
|
+
/** A portal's own field, not its read-only `_data` twin. */
|
|
23
|
+
export declare const isCustom: (name: string) => boolean;
|
|
22
24
|
/**
|
|
23
25
|
* The portal's own fields that hold a value, as it names them: their meaning is the portal owner's, so they stay
|
|
24
26
|
* unmapped. `false` and `0` stay, since a yes/no field saying no is an answer.
|
|
@@ -29,5 +31,14 @@ export declare const contactSchema: v.StrictObjectSchema<{
|
|
|
29
31
|
readonly value: v.StringSchema<undefined>;
|
|
30
32
|
}, undefined>;
|
|
31
33
|
export declare const nullableTime: v.NullableSchema<v.SchemaWithPipe<readonly [v.StringSchema<undefined>, v.IsoTimestampAction<string, "an ISO 8601 time in UTC">, v.EndsWithAction<string, "Z", "an ISO 8601 time in UTC, ending in `Z`">]>, undefined>;
|
|
32
|
-
|
|
34
|
+
/**
|
|
35
|
+
* A custom field's value with its title on the portal; `label` is null when the portal did not give one. A list
|
|
36
|
+
* field's value is its option's label, and `option_id` the option's id (both arrays for a multiple field).
|
|
37
|
+
*/
|
|
38
|
+
export declare const metadataSchema: v.OptionalSchema<v.RecordSchema<v.StringSchema<undefined>, v.StrictObjectSchema<{
|
|
39
|
+
readonly label: v.NullableSchema<v.StringSchema<undefined>, undefined>;
|
|
40
|
+
readonly value: v.UnknownSchema;
|
|
41
|
+
readonly option_id: v.OptionalSchema<v.UnionSchema<[v.StringSchema<undefined>, v.ArraySchema<v.StringSchema<undefined>, undefined>], undefined>, undefined>;
|
|
42
|
+
}, undefined>, undefined>, undefined>;
|
|
43
|
+
export type Metadata = NonNullable<v.InferOutput<typeof metadataSchema>>;
|
|
33
44
|
//# sourceMappingURL=values.d.ts.map
|
package/dist/crm/values.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"values.d.ts","sourceRoot":"","sources":["../../src/crm/values.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,CAAC,MAAM,SAAS,CAAA;AAE5B,MAAM,MAAM,GAAG,GAAG,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAA;AAEzC,eAAO,MAAM,QAAQ,YAAI,MAAM,EAAE,KAAK,EAAE,MAAM,CAAU,CAAA;AACxD,MAAM,MAAM,OAAO,GAAG,CAAC,OAAO,QAAQ,CAAC,CAAC,MAAM,CAAC,CAAA;AAE/C,yHAAyH;AACzH,eAAO,MAAM,SAAS,cAAe,OAAO,KAAG,OACkB,CAAA;AACjE,eAAO,MAAM,WAAW,YAAa,MAAM,KAAG,MAAoE,CAAA;AAElH,eAAO,MAAM,IAAI,UAAW,OAAO,KAAG,MAAM,GAAG,IAI9C,CAAA;AAED,eAAO,MAAM,EAAE,UAAW,OAAO,KAAG,MAAM,GAAG,IAG5C,CAAA;AAED,eAAO,MAAM,GAAG,UAAW,OAAO,KAAG,MAAM,EAC6C,CAAA;AAExF,eAAO,MAAM,MAAM,UAAW,OAAO,KAAG,MAAM,GAAG,IAIhD,CAAA;AAED,uFAAuF;AACvF,eAAO,MAAM,IAAI,UAAW,OAAO,KAAG,MAAM,GAAG,IAK9C,CAAA;AAED,eAAO,MAAM,GAAG,UAAW,OAAO,KAAG,OAA0E,CAAA;AAE/G,eAAO,MAAM,QAAQ,aAAc,OAAO,EAAE,KAAG,MAAM,GAAG,IAIlC,CAAA;AAEtB,MAAM,WAAW,OAAO;IACtB,IAAI,EAAE,MAAM,GAAG,IAAI,CAAA;IACnB,KAAK,EAAE,MAAM,CAAA;CACd;AAED,gEAAgE;AAChE,eAAO,MAAM,QAAQ,UAAW,OAAO,KAAG,OAAO,EAMzC,CAAA;
|
|
1
|
+
{"version":3,"file":"values.d.ts","sourceRoot":"","sources":["../../src/crm/values.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,CAAC,MAAM,SAAS,CAAA;AAE5B,MAAM,MAAM,GAAG,GAAG,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAA;AAEzC,eAAO,MAAM,QAAQ,YAAI,MAAM,EAAE,KAAK,EAAE,MAAM,CAAU,CAAA;AACxD,MAAM,MAAM,OAAO,GAAG,CAAC,OAAO,QAAQ,CAAC,CAAC,MAAM,CAAC,CAAA;AAE/C,yHAAyH;AACzH,eAAO,MAAM,SAAS,cAAe,OAAO,KAAG,OACkB,CAAA;AACjE,eAAO,MAAM,WAAW,YAAa,MAAM,KAAG,MAAoE,CAAA;AAElH,eAAO,MAAM,IAAI,UAAW,OAAO,KAAG,MAAM,GAAG,IAI9C,CAAA;AAED,eAAO,MAAM,EAAE,UAAW,OAAO,KAAG,MAAM,GAAG,IAG5C,CAAA;AAED,eAAO,MAAM,GAAG,UAAW,OAAO,KAAG,MAAM,EAC6C,CAAA;AAExF,eAAO,MAAM,MAAM,UAAW,OAAO,KAAG,MAAM,GAAG,IAIhD,CAAA;AAED,uFAAuF;AACvF,eAAO,MAAM,IAAI,UAAW,OAAO,KAAG,MAAM,GAAG,IAK9C,CAAA;AAED,eAAO,MAAM,GAAG,UAAW,OAAO,KAAG,OAA0E,CAAA;AAE/G,eAAO,MAAM,QAAQ,aAAc,OAAO,EAAE,KAAG,MAAM,GAAG,IAIlC,CAAA;AAEtB,MAAM,WAAW,OAAO;IACtB,IAAI,EAAE,MAAM,GAAG,IAAI,CAAA;IACnB,KAAK,EAAE,MAAM,CAAA;CACd;AAED,gEAAgE;AAChE,eAAO,MAAM,QAAQ,UAAW,OAAO,KAAG,OAAO,EAMzC,CAAA;AAIR,4DAA4D;AAC5D,eAAO,MAAM,QAAQ,SAAU,MAAM,YAAiD,CAAA;AAItF;;;GAGG;AACH,eAAO,MAAM,YAAY,QAAS,GAAG,GAAG,SAAS,KAAG,MAAM,CAAC,MAAM,EAAE,OAAO,CAC8B,CAAA;AAExG,eAAO,MAAM,aAAa;;;aAAsE,CAAA;AAChG,eAAO,MAAM,YAAY,uNAAsB,CAAA;AAC/C;;;GAGG;AACH,eAAO,MAAM,cAAc;;;;qCAS1B,CAAA;AACD,MAAM,MAAM,QAAQ,GAAG,WAAW,CAAC,CAAC,CAAC,WAAW,CAAC,OAAO,cAAc,CAAC,CAAC,CAAA"}
|
package/dist/crm/values.js
CHANGED
|
@@ -42,13 +42,23 @@ export const contacts = (value) => Array.isArray(value)
|
|
|
42
42
|
})
|
|
43
43
|
: [];
|
|
44
44
|
const CUSTOM = /^(UF_CRM_|ufCrm)/;
|
|
45
|
+
/** A portal's own field, not its read-only `_data` twin. */
|
|
46
|
+
export const isCustom = (name) => CUSTOM.test(name) && !name.endsWith("_data");
|
|
45
47
|
const empty = (value) => value === null || value === "" || (Array.isArray(value) && value.length === 0);
|
|
46
48
|
/**
|
|
47
49
|
* The portal's own fields that hold a value, as it names them: their meaning is the portal owner's, so they stay
|
|
48
50
|
* unmapped. `false` and `0` stay, since a yes/no field saying no is an answer.
|
|
49
51
|
*/
|
|
50
|
-
export const customFields = (raw) => Object.fromEntries(Object.entries(raw ?? {}).filter(([key, value]) =>
|
|
52
|
+
export const customFields = (raw) => Object.fromEntries(Object.entries(raw ?? {}).filter(([key, value]) => isCustom(key) && !empty(value)));
|
|
51
53
|
export const contactSchema = v.strictObject({ type: v.nullable(v.string()), value: v.string() });
|
|
52
54
|
export const nullableTime = v.nullable(isoTime);
|
|
53
|
-
|
|
55
|
+
/**
|
|
56
|
+
* A custom field's value with its title on the portal; `label` is null when the portal did not give one. A list
|
|
57
|
+
* field's value is its option's label, and `option_id` the option's id (both arrays for a multiple field).
|
|
58
|
+
*/
|
|
59
|
+
export const metadataSchema = v.optional(v.record(v.string(), v.strictObject({
|
|
60
|
+
label: v.nullable(v.string()),
|
|
61
|
+
value: v.unknown(),
|
|
62
|
+
option_id: v.optional(v.union([v.string(), v.array(v.string())])),
|
|
63
|
+
})));
|
|
54
64
|
//# sourceMappingURL=values.js.map
|
package/dist/crm/values.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"values.js","sourceRoot":"","sources":["../../src/crm/values.ts"],"names":[],"mappings":"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
|
|
1
|
+
{"version":3,"file":"values.js","sourceRoot":"","sources":["../../src/crm/values.ts"],"names":[],"mappings":"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"}
|