@wirecat/bitrix24-cli 0.3.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 +52 -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-W5YAO5G5.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-H3TGGRQ6.js → chunk-J7OMY6EO.js} +16654 -18332
- 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-5RSWNTHS.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 +1 -0
- package/dist/crm/deal.d.ts.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 +7 -1
- package/dist/crm/items.d.ts.map +1 -1
- package/dist/crm/items.js +17 -15
- package/dist/crm/items.js.map +1 -1
- package/dist/crm/lead.d.ts +1 -0
- package/dist/crm/lead.d.ts.map +1 -1
- package/dist/crm/organization.d.ts +1 -0
- package/dist/crm/organization.d.ts.map +1 -1
- package/dist/crm/person.d.ts +1 -0
- package/dist/crm/person.d.ts.map +1 -1
- package/dist/crm/values.d.ts +7 -1
- package/dist/crm/values.d.ts.map +1 -1
- package/dist/crm/values.js +12 -3
- 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,5 +1,6 @@
|
|
|
1
1
|
import type { BitrixTransport } from "../bitrix/transport.js";
|
|
2
2
|
import { type Condition } from "./conditions.js";
|
|
3
|
+
import { type Field } from "./fields.js";
|
|
3
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`. */
|
|
@@ -14,7 +15,12 @@ export interface ItemType<T> {
|
|
|
14
15
|
nameOf: (item: T) => string | null;
|
|
15
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,QAAQ,EAAE,KAAK,GAAG,
|
|
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,6 +1,7 @@
|
|
|
1
1
|
import { CliError, isCliError } from "@wirecat/cli-base";
|
|
2
2
|
import { needsRest2, rest2Filter, rest3Filter } from "./conditions.js";
|
|
3
|
-
import {
|
|
3
|
+
import { loadFields, metadataOf } from "./fields.js";
|
|
4
|
+
import { customFields } from "./values.js";
|
|
4
5
|
import { walk } from "./walk.js";
|
|
5
6
|
const REST3_PAGE = 1000;
|
|
6
7
|
const REST2_PAGE = 50;
|
|
@@ -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) => {
|
|
@@ -47,22 +54,17 @@ export const getItem = async (portal, type, id) => {
|
|
|
47
54
|
const custom = customFields(full.result?.item);
|
|
48
55
|
if (!Object.keys(custom).length)
|
|
49
56
|
return type.map(item);
|
|
50
|
-
|
|
51
|
-
return type.map(item, Object.fromEntries(Object.entries(custom).map(([code, value]) => [code, { label: labels.get(code) ?? null, value }])));
|
|
57
|
+
return type.map(item, metadataOf(custom, await fieldsOrNone(portal, type.type)));
|
|
52
58
|
};
|
|
53
|
-
/**
|
|
54
|
-
|
|
55
|
-
* to edit CRM settings. Labels are extra, so a failed call leaves them out rather than failing `show`.
|
|
56
|
-
*/
|
|
57
|
-
const labelsOf = async (portal, type) => {
|
|
59
|
+
/** Labels are extra, so a failed call leaves them out rather than failing `show`. */
|
|
60
|
+
const fieldsOrNone = async (portal, type) => {
|
|
58
61
|
try {
|
|
59
|
-
|
|
60
|
-
return new Map(itemsOf(answer.result).map((field) => [String(field.name), text(field.title)]));
|
|
62
|
+
return await loadFields(portal, type);
|
|
61
63
|
}
|
|
62
64
|
catch (error) {
|
|
63
65
|
if (isCliError(error) && error.code === "cancelled")
|
|
64
66
|
throw error;
|
|
65
|
-
return
|
|
67
|
+
return [];
|
|
66
68
|
}
|
|
67
69
|
};
|
|
68
70
|
const folded = (value) => value?.trim().toLocaleLowerCase() ?? "";
|
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,UAAU,EAAE,MAAM,mBAAmB,CAAA;AAExD,OAAO,EAAkB,UAAU,EAAE,WAAW,EAAE,WAAW,EAAE,MAAM,iBAAiB,CAAA;AACtF,OAAO,EAAE,
|
|
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
|
@@ -29,6 +29,7 @@ export declare const leadSchema: v.StrictObjectSchema<{
|
|
|
29
29
|
readonly provider_metadata: v.OptionalSchema<v.RecordSchema<v.StringSchema<undefined>, v.StrictObjectSchema<{
|
|
30
30
|
readonly label: v.NullableSchema<v.StringSchema<undefined>, undefined>;
|
|
31
31
|
readonly value: v.UnknownSchema;
|
|
32
|
+
readonly option_id: v.OptionalSchema<v.UnionSchema<[v.StringSchema<undefined>, v.ArraySchema<v.StringSchema<undefined>, undefined>], undefined>, undefined>;
|
|
32
33
|
}, undefined>, undefined>, undefined>;
|
|
33
34
|
}, undefined>;
|
|
34
35
|
export type Lead = v.InferOutput<typeof leadSchema>;
|
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,EAML,KAAK,QAAQ,EAMb,KAAK,GAAG,EAGT,MAAM,aAAa,CAAA;AAEpB,eAAO,MAAM,UAAU
|
|
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"}
|
|
@@ -26,6 +26,7 @@ export declare const organizationSchema: v.StrictObjectSchema<{
|
|
|
26
26
|
readonly provider_metadata: v.OptionalSchema<v.RecordSchema<v.StringSchema<undefined>, v.StrictObjectSchema<{
|
|
27
27
|
readonly label: v.NullableSchema<v.StringSchema<undefined>, undefined>;
|
|
28
28
|
readonly value: v.UnknownSchema;
|
|
29
|
+
readonly option_id: v.OptionalSchema<v.UnionSchema<[v.StringSchema<undefined>, v.ArraySchema<v.StringSchema<undefined>, undefined>], undefined>, undefined>;
|
|
29
30
|
}, undefined>, undefined>, undefined>;
|
|
30
31
|
}, undefined>;
|
|
31
32
|
export type Organization = v.InferOutput<typeof organizationSchema>;
|
|
@@ -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,EAKL,KAAK,QAAQ,EAIb,KAAK,GAAG,EAGT,MAAM,aAAa,CAAA;AAEpB,wEAAwE;AACxE,eAAO,MAAM,kBAAkB
|
|
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/person.d.ts
CHANGED
|
@@ -25,6 +25,7 @@ export declare const personSchema: v.StrictObjectSchema<{
|
|
|
25
25
|
readonly provider_metadata: v.OptionalSchema<v.RecordSchema<v.StringSchema<undefined>, v.StrictObjectSchema<{
|
|
26
26
|
readonly label: v.NullableSchema<v.StringSchema<undefined>, undefined>;
|
|
27
27
|
readonly value: v.UnknownSchema;
|
|
28
|
+
readonly option_id: v.OptionalSchema<v.UnionSchema<[v.StringSchema<undefined>, v.ArraySchema<v.StringSchema<undefined>, undefined>], undefined>, undefined>;
|
|
28
29
|
}, undefined>, undefined>, undefined>;
|
|
29
30
|
}, undefined>;
|
|
30
31
|
export type Person = v.InferOutput<typeof personSchema>;
|
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,EAML,KAAK,QAAQ,EAGb,KAAK,GAAG,EAGT,MAAM,aAAa,CAAA;AAEpB,gEAAgE;AAChE,eAAO,MAAM,YAAY
|
|
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/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,10 +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
|
+
*/
|
|
33
38
|
export declare const metadataSchema: v.OptionalSchema<v.RecordSchema<v.StringSchema<undefined>, v.StrictObjectSchema<{
|
|
34
39
|
readonly label: v.NullableSchema<v.StringSchema<undefined>, undefined>;
|
|
35
40
|
readonly value: v.UnknownSchema;
|
|
41
|
+
readonly option_id: v.OptionalSchema<v.UnionSchema<[v.StringSchema<undefined>, v.ArraySchema<v.StringSchema<undefined>, undefined>], undefined>, undefined>;
|
|
36
42
|
}, undefined>, undefined>, undefined>;
|
|
37
43
|
export type Metadata = NonNullable<v.InferOutput<typeof metadataSchema>>;
|
|
38
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,14 +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
|
-
/**
|
|
54
|
-
|
|
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
|
+
})));
|
|
55
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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"}
|
package/dist/mcp.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"mcp.d.ts","sourceRoot":"","sources":["../src/mcp.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,MAAM,8BAA8B,CAAA;AAGxD,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,4BAA4B,CAAA;AAC7D,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,uBAAuB,CAAA;AAUvD,OAAO,KAAK,EAAE,KAAK,EAAE,MAAM,yBAAyB,CAAA;
|
|
1
|
+
{"version":3,"file":"mcp.d.ts","sourceRoot":"","sources":["../src/mcp.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,MAAM,8BAA8B,CAAA;AAGxD,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,4BAA4B,CAAA;AAC7D,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,uBAAuB,CAAA;AAUvD,OAAO,KAAK,EAAE,KAAK,EAAE,MAAM,yBAAyB,CAAA;AAIpD,MAAM,WAAW,UAAU;IACzB,OAAO,EAAE,MAAM,CAAA;IACf,QAAQ,EAAE,SAAS,WAAW,EAAE,CAAA;IAChC,gGAAgG;IAChG,MAAM,EAAE,MAAM,QAAQ,CAAC,MAAM,CAAC,MAAM,EAAE,KAAK,CAAC,CAAC,CAAA;IAC7C,SAAS,EAAE,CAAC,IAAI,EAAE,SAAS,MAAM,EAAE,KAAK,OAAO,CAAA;IAC/C,GAAG,EAAE,CAAC,IAAI,EAAE,MAAM,EAAE,EAAE,WAAW,EAAE,UAAU,KAAK,OAAO,CAAC,MAAM,CAAC,CAAA;IACjE,MAAM,CAAC,EAAE,WAAW,CAAA;IACpB,SAAS,CAAC,EAAE,UAAU,CAAC,SAAS,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,CAAC,CAAA;CAChD;AAOD,6GAA6G;AAC7G,eAAO,MAAM,eAAe,YAAa,UAAU,KAAG,SA2CrD,CAAA;AAED,+EAA+E;AAC/E,eAAO,MAAM,QAAQ,YAAmB,UAAU,KAAG,OAAO,CAAC,IAAI,CAkBhE,CAAA;AAED,MAAM,WAAW,WAAW;IAC1B,SAAS,EAAE,GAAG,CAAA;IACd,IAAI,EAAE,MAAM,CAAA;IACZ,SAAS,EAAE,MAAM,CAAA;IACjB,+DAA+D;IAC/D,UAAU,EAAE,OAAO,CAAA;IACnB,IAAI,EAAE,CAAC,IAAI,EAAE,MAAM,KAAK,IAAI,CAAA;CAC7B;AAED,8FAA8F;AAC9F,eAAO,MAAM,gBAAgB,YAAmB,UAAU,QAAQ,WAAW,KAAG,OAAO,CAAC,IAAI,CAgC3F,CAAA"}
|
package/dist/mcp.js
CHANGED
|
@@ -2,6 +2,7 @@ import { McpServer } from "@modelcontextprotocol/server";
|
|
|
2
2
|
import { StdioServerTransport } from "@modelcontextprotocol/server/stdio";
|
|
3
3
|
import { CliError, mcpErrorResult } from "@wirecat/cli-base";
|
|
4
4
|
import { httpLockFile, MCP_PATH, registerCommands, runCommandForAgent, serveOverHttp, toolsFromCommands, } from "@wirecat/cli-core/mcp";
|
|
5
|
+
import { permissions } from "./config.js";
|
|
5
6
|
import { IDENTITY } from "./identity.js";
|
|
6
7
|
const EXCLUDED = [["mcp"]];
|
|
7
8
|
const isObject = (value) => typeof value === "object" && value !== null && !Array.isArray(value);
|
|
@@ -15,13 +16,15 @@ export const createMcpServer = (options) => {
|
|
|
15
16
|
"whatever api call returns. They go to the owner only.",
|
|
16
17
|
});
|
|
17
18
|
const program = { commands: options.commands, run: options.run };
|
|
18
|
-
|
|
19
|
+
// Without the table, a denied command would still be offered and run as a tool (WC-PERM-23).
|
|
20
|
+
const context = { profile: options.profile, levels: options.levels, authority: options.authority, permissions };
|
|
19
21
|
const tools = toolsFromCommands(options.commands, {
|
|
20
22
|
includeUnavailable: true,
|
|
21
23
|
currentLevels: options.levels,
|
|
22
24
|
levels: options.levels(),
|
|
23
25
|
exclude: EXCLUDED,
|
|
24
26
|
authority: options.authority,
|
|
27
|
+
permissions,
|
|
25
28
|
});
|
|
26
29
|
const commands = Object.fromEntries(tools.map((tool) => [
|
|
27
30
|
tool.command,
|
package/dist/mcp.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"mcp.js","sourceRoot":"","sources":["../src/mcp.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,MAAM,8BAA8B,CAAA;AACxD,OAAO,EAAE,oBAAoB,EAAE,MAAM,oCAAoC,CAAA;AACzE,OAAO,EAAE,QAAQ,EAAE,cAAc,EAAE,MAAM,mBAAmB,CAAA;AAG5D,OAAO,EACL,YAAY,EACZ,QAAQ,EAER,gBAAgB,EAChB,kBAAkB,EAClB,aAAa,EACb,iBAAiB,GAClB,MAAM,uBAAuB,CAAA;AAE9B,OAAO,EAAE,QAAQ,EAAE,MAAM,eAAe,CAAA;AAaxC,MAAM,QAAQ,GAAG,CAAC,CAAC,KAAK,CAAC,CAAC,CAAA;AAE1B,MAAM,QAAQ,GAAG,CAAC,KAAc,EAAoC,EAAE,CACpE,OAAO,KAAK,KAAK,QAAQ,IAAI,KAAK,KAAK,IAAI,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC,CAAA;AAEtE,6GAA6G;AAC7G,MAAM,CAAC,MAAM,eAAe,GAAG,CAAC,OAAmB,EAAa,EAAE;IAChE,MAAM,MAAM,GAAG,IAAI,SAAS,CAC1B,EAAE,IAAI,EAAE,QAAQ,CAAC,OAAO,EAAE,OAAO,EAAE,QAAQ,CAAC,OAAO,EAAE,EACrD;QACE,YAAY,EACV,GAAG,QAAQ,CAAC,OAAO,uBAAuB,OAAO,CAAC,OAAO,yBAAyB,QAAQ,CAAC,OAAO,iBAAiB;YACnH,oBAAoB,QAAQ,CAAC,OAAO,YAAY,QAAQ,CAAC,OAAO,kCAAkC;YAClG,wGAAwG;YACxG,yGAAyG;YACzG,uDAAuD;KAC1D,CACF,CAAA;IACD,MAAM,OAAO,GAAG,EAAE,QAAQ,EAAE,OAAO,CAAC,QAAQ,EAAE,GAAG,EAAE,OAAO,CAAC,GAAG,EAAE,CAAA;IAChE,MAAM,OAAO,GAAG,EAAE,OAAO,EAAE,OAAO,CAAC,OAAO,EAAE,MAAM,EAAE,OAAO,CAAC,MAAM,EAAE,SAAS,EAAE,OAAO,CAAC,SAAS,EAAE,CAAA;
|
|
1
|
+
{"version":3,"file":"mcp.js","sourceRoot":"","sources":["../src/mcp.ts"],"names":[],"mappings":"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"}
|
package/dist/program.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"program.d.ts","sourceRoot":"","sources":["../src/program.ts"],"names":[],"mappings":"AAEA,OAAO,EAKL,KAAK,iBAAiB,EACtB,KAAK,cAAc,EACnB,KAAK,UAAU,EAKhB,MAAM,uBAAuB,CAAA;AAE9B,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,WAAW,CAAA;
|
|
1
|
+
{"version":3,"file":"program.d.ts","sourceRoot":"","sources":["../src/program.ts"],"names":[],"mappings":"AAEA,OAAO,EAKL,KAAK,iBAAiB,EACtB,KAAK,cAAc,EACnB,KAAK,UAAU,EAKhB,MAAM,uBAAuB,CAAA;AAE9B,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,WAAW,CAAA;AAsBxC,eAAO,MAAM,UAAU,QAAO,iBAsB5B,CAAA;AAEF,eAAO,MAAM,aAAa,aAAc,cAAc,KAAG,OAAqD,CAAA;AAE9G,eAAO,MAAM,GAAG,SAAU,MAAM,EAAE,YAAY,UAAU,KAAG,OAAO,CAAC,MAAM,CAA2C,CAAA"}
|
package/dist/program.js
CHANGED
|
@@ -6,6 +6,7 @@ import { apiCommand } from "./commands/api.js";
|
|
|
6
6
|
import { crmCommands } from "./commands/crm.js";
|
|
7
7
|
import { addWrites } from "./commands/crm-writes.js";
|
|
8
8
|
import { doctorCommand } from "./commands/doctor.js";
|
|
9
|
+
import { fieldsCommand } from "./commands/fields.js";
|
|
9
10
|
import { mcpCommand } from "./commands/mcp.js";
|
|
10
11
|
import { sessionCommand } from "./commands/session.js";
|
|
11
12
|
import { configuration } from "./config.js";
|
|
@@ -21,11 +22,13 @@ const update = appUpdate({
|
|
|
21
22
|
});
|
|
22
23
|
export const definition = () => ({
|
|
23
24
|
app: IDENTITY,
|
|
24
|
-
|
|
25
|
+
// The whole object: cli-core refuses a command by its key only when it gets the permission table too.
|
|
26
|
+
configuration,
|
|
25
27
|
commands: () => [
|
|
26
28
|
commandsCommand(IDENTITY),
|
|
27
29
|
sessionCommand(),
|
|
28
30
|
...crmCommands().map(addWrites),
|
|
31
|
+
fieldsCommand(),
|
|
29
32
|
apiCommand(),
|
|
30
33
|
doctorCommand(),
|
|
31
34
|
skillCommand(IDENTITY, SKILL),
|
package/dist/program.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"program.js","sourceRoot":"","sources":["../src/program.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,IAAI,EAAE,MAAM,WAAW,CAAA;AAChC,OAAO,EAAE,YAAY,EAAE,MAAM,mBAAmB,CAAA;AAChD,OAAO,EACL,eAAe,EACf,aAAa,EACb,aAAa,IAAI,mBAAmB,EACpC,SAAS,EAIT,GAAG,IAAI,SAAS,EAChB,WAAW,EACX,YAAY,EACZ,cAAc,GACf,MAAM,uBAAuB,CAAA;AAC9B,OAAO,EAAE,SAAS,EAAE,MAAM,0BAA0B,CAAA;AAEpD,OAAO,EAAE,UAAU,EAAE,MAAM,mBAAmB,CAAA;AAC9C,OAAO,EAAE,WAAW,EAAE,MAAM,mBAAmB,CAAA;AAC/C,OAAO,EAAE,SAAS,EAAE,MAAM,0BAA0B,CAAA;AACpD,OAAO,EAAE,aAAa,EAAE,MAAM,sBAAsB,CAAA;AACpD,OAAO,EAAE,UAAU,EAAE,MAAM,mBAAmB,CAAA;AAC9C,OAAO,EAAE,cAAc,EAAE,MAAM,uBAAuB,CAAA;AACtD,OAAO,EAAE,aAAa,EAAE,MAAM,aAAa,CAAA;AAC3C,OAAO,EAAE,QAAQ,EAAE,OAAO,EAAE,KAAK,EAAE,MAAM,eAAe,CAAA;AAExD,MAAM,MAAM,GAAG,SAAS,CAAC;IACvB,WAAW,EAAE,OAAO;IACpB,OAAO,EAAE,QAAQ,CAAC,OAAO;IACzB,OAAO,EAAE,QAAQ,CAAC,OAAO;IACzB,KAAK,EAAE,OAAO,IAAI,CAAC,GAAG;IACtB,SAAS,EAAE,CAAC,GAAG,EAAE,EAAE,CACjB,IAAI,CAAC,YAAY,CAAC,EAAE,OAAO,EAAE,QAAQ,CAAC,OAAO,EAAE,MAAM,EAAE,QAAQ,CAAC,SAAS,EAAE,GAAG,EAAE,CAAC,CAAC,KAAK,EAAE,mBAAmB,CAAC;IAC/G,OAAO,EAAE,CAAC,GAAG,EAAE,EAAE,CAAC,aAAa,CAAC,eAAe,CAAC,EAAE,EAAE,EAAE,GAAG,EAAE,YAAY,EAAE,KAAK,EAAE,CAAC,CAAC,WAAW;IAC7F,YAAY,EAAE,CAAC,GAAG,QAAQ,CAAC,SAAS,kBAAkB,CAAC;CACxD,CAAC,CAAA;AAEF,MAAM,CAAC,MAAM,UAAU,GAAG,GAAsB,EAAE,CAAC,CAAC;IAClD,GAAG,EAAE,QAAQ;IACb,
|
|
1
|
+
{"version":3,"file":"program.js","sourceRoot":"","sources":["../src/program.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,IAAI,EAAE,MAAM,WAAW,CAAA;AAChC,OAAO,EAAE,YAAY,EAAE,MAAM,mBAAmB,CAAA;AAChD,OAAO,EACL,eAAe,EACf,aAAa,EACb,aAAa,IAAI,mBAAmB,EACpC,SAAS,EAIT,GAAG,IAAI,SAAS,EAChB,WAAW,EACX,YAAY,EACZ,cAAc,GACf,MAAM,uBAAuB,CAAA;AAC9B,OAAO,EAAE,SAAS,EAAE,MAAM,0BAA0B,CAAA;AAEpD,OAAO,EAAE,UAAU,EAAE,MAAM,mBAAmB,CAAA;AAC9C,OAAO,EAAE,WAAW,EAAE,MAAM,mBAAmB,CAAA;AAC/C,OAAO,EAAE,SAAS,EAAE,MAAM,0BAA0B,CAAA;AACpD,OAAO,EAAE,aAAa,EAAE,MAAM,sBAAsB,CAAA;AACpD,OAAO,EAAE,aAAa,EAAE,MAAM,sBAAsB,CAAA;AACpD,OAAO,EAAE,UAAU,EAAE,MAAM,mBAAmB,CAAA;AAC9C,OAAO,EAAE,cAAc,EAAE,MAAM,uBAAuB,CAAA;AACtD,OAAO,EAAE,aAAa,EAAE,MAAM,aAAa,CAAA;AAC3C,OAAO,EAAE,QAAQ,EAAE,OAAO,EAAE,KAAK,EAAE,MAAM,eAAe,CAAA;AAExD,MAAM,MAAM,GAAG,SAAS,CAAC;IACvB,WAAW,EAAE,OAAO;IACpB,OAAO,EAAE,QAAQ,CAAC,OAAO;IACzB,OAAO,EAAE,QAAQ,CAAC,OAAO;IACzB,KAAK,EAAE,OAAO,IAAI,CAAC,GAAG;IACtB,SAAS,EAAE,CAAC,GAAG,EAAE,EAAE,CACjB,IAAI,CAAC,YAAY,CAAC,EAAE,OAAO,EAAE,QAAQ,CAAC,OAAO,EAAE,MAAM,EAAE,QAAQ,CAAC,SAAS,EAAE,GAAG,EAAE,CAAC,CAAC,KAAK,EAAE,mBAAmB,CAAC;IAC/G,OAAO,EAAE,CAAC,GAAG,EAAE,EAAE,CAAC,aAAa,CAAC,eAAe,CAAC,EAAE,EAAE,EAAE,GAAG,EAAE,YAAY,EAAE,KAAK,EAAE,CAAC,CAAC,WAAW;IAC7F,YAAY,EAAE,CAAC,GAAG,QAAQ,CAAC,SAAS,kBAAkB,CAAC;CACxD,CAAC,CAAA;AAEF,MAAM,CAAC,MAAM,UAAU,GAAG,GAAsB,EAAE,CAAC,CAAC;IAClD,GAAG,EAAE,QAAQ;IACb,sGAAsG;IACtG,aAAa;IACb,QAAQ,EAAE,GAAG,EAAE,CAAC;QACd,eAAe,CAAC,QAAQ,CAAC;QACzB,cAAc,EAAE;QAChB,GAAG,WAAW,EAAE,CAAC,GAAG,CAAC,SAAS,CAAC;QAC/B,aAAa,EAAE;QACf,UAAU,EAAE;QACZ,aAAa,EAAE;QACf,YAAY,CAAC,QAAQ,EAAE,KAAK,CAAC;QAC7B,UAAU,EAAE;QACZ,cAAc,CAAC,QAAQ,EAAE,OAAO,EAAE,CAAC,OAAO,EAAE,EAAE,CAAC,CAAC;YAC9C,GAAG,SAAS,CAAC,OAAO,CAAC;YACrB,SAAS,EAAE,GAAG,EAAE,CAAC,MAAM,CAAC,SAAS,CAAC,EAAE,CAAC;YACrC,MAAM,EAAE,GAAG,EAAE,CAAC,MAAM,CAAC,MAAM,CAAC,EAAE,CAAC;YAC/B,OAAO,EAAE,CAAC,IAAI,EAAE,EAAE,CAAC,MAAM,CAAC,SAAS,CAAC,IAAI,EAAE,EAAE,CAAC;SAC9C,CAAC,CAAC;QACH,aAAa,CAAC,QAAQ,EAAE,aAAa,CAAC;QACtC,WAAW,CAAC,QAAQ,CAAC;KACtB;CACF,CAAC,CAAA;AAEF,MAAM,CAAC,MAAM,aAAa,GAAG,CAAC,OAAwB,EAAW,EAAE,CAAC,mBAAmB,CAAC,UAAU,EAAE,EAAE,OAAO,CAAC,CAAA;AAE9G,MAAM,CAAC,MAAM,GAAG,GAAG,CAAC,IAAc,EAAE,OAAoB,EAAmB,EAAE,CAAC,SAAS,CAAC,IAAI,EAAE,UAAU,EAAE,EAAE,OAAO,CAAC,CAAA"}
|
package/dist/reasons.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"reasons.d.ts","sourceRoot":"","sources":["../src/reasons.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"reasons.d.ts","sourceRoot":"","sources":["../src/reasons.ts"],"names":[],"mappings":"AAoCA,eAAO,MAAM,OAAO;;;;;;GAAoG,CAAA;AAExH,4DAA4D;AAC5D,eAAO,MAAM,OAAO,UAAsB,CAAA"}
|
package/dist/reasons.js
CHANGED
|
@@ -19,10 +19,15 @@ const OWN = [
|
|
|
19
19
|
["method.unknown", "not_found", "Bitrix24 does not know this method, or the webhook has no scope for it"],
|
|
20
20
|
["operation.reused", "conflict", "this operation id was already used for a different request"],
|
|
21
21
|
["query.bad-value", "validation_error", "a query term takes an id or a number"],
|
|
22
|
+
["field.unknown-kind", "validation_error", "fields are listed for deals, leads, people and organizations"],
|
|
23
|
+
["field.ambiguous", "validation_error", "more than one custom field has that label; name one by its code"],
|
|
24
|
+
["field.unknown", "validation_error", "no custom field has that label or code"],
|
|
25
|
+
["field.unknown-option", "validation_error", "the list field has no option with that label or id"],
|
|
26
|
+
["field.not-filterable", "validation_error", "the portal cannot filter a list by this custom field"],
|
|
22
27
|
...NAMED,
|
|
23
28
|
];
|
|
24
29
|
const ENTRIES = OWN.filter(([reason]) => !CORE.has(reason));
|
|
25
30
|
export const REASONS = defineReasons(ENTRIES.map(([reason, code, message]) => ({ reason, code, message, details: [] })));
|
|
26
31
|
/** Detail keys b24's errors carry beyond cli-core's own. */
|
|
27
|
-
export const DETAILS = ["fields"];
|
|
32
|
+
export const DETAILS = ["fields", "field"];
|
|
28
33
|
//# sourceMappingURL=reasons.js.map
|
package/dist/reasons.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"reasons.js","sourceRoot":"","sources":["../src/reasons.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,aAAa,EAAE,MAAM,6BAA6B,CAAA;AAC3D,OAAO,EAAE,YAAY,EAAE,MAAM,mBAAmB,CAAA;AAEhD;;;GAGG;AACH,MAAM,IAAI,GAAG,IAAI,GAAG,CAAC,YAAY,CAAC,GAAG,CAAC,CAAC,GAAG,EAAE,EAAE,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC,CAAA;AAE3D,MAAM,KAAK,GAAG,CAAC,MAAM,EAAE,MAAM,EAAE,QAAQ,EAAE,cAAc,EAAE,UAAU,EAAE,OAAO,CAAC,CAAC,OAAO,CACnF,CAAC,IAAI,EAA8B,EAAE,CAAC;IACpC,CAAC,GAAG,IAAI,YAAY,EAAE,kBAAkB,EAAE,iBAAiB,IAAI,oCAAoC,CAAC;IACpG,CAAC,GAAG,IAAI,YAAY,EAAE,WAAW,EAAE,MAAM,IAAI,wBAAwB,CAAC;CACvE,CACF,CAAA;AAED,uGAAuG;AACvG,MAAM,GAAG,GAAsD;IAC7D,CAAC,mBAAmB,EAAE,kBAAkB,EAAE,iDAAiD,CAAC;IAC5F,CAAC,iBAAiB,EAAE,sBAAsB,EAAE,4CAA4C,CAAC;IACzF,CAAC,iBAAiB,EAAE,sBAAsB,EAAE,+BAA+B,CAAC;IAC5E,CAAC,uBAAuB,EAAE,kBAAkB,EAAE,0CAA0C,CAAC;IACzF,CAAC,sBAAsB,EAAE,kBAAkB,EAAE,oCAAoC,CAAC;IAClF,CAAC,gBAAgB,EAAE,WAAW,EAAE,wEAAwE,CAAC;IACzG,CAAC,kBAAkB,EAAE,UAAU,EAAE,4DAA4D,CAAC;IAC9F,CAAC,iBAAiB,EAAE,kBAAkB,EAAE,sCAAsC,CAAC;IAC/E,GAAG,KAAK;CACT,CAAA;AAED,MAAM,OAAO,GAAG,GAAG,CAAC,MAAM,CAAC,CAAC,CAAC,MAAM,CAAC,EAAE,EAAE,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC,CAAA;AAE3D,MAAM,CAAC,MAAM,OAAO,GAAG,aAAa,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC,CAAC,MAAM,EAAE,IAAI,EAAE,OAAO,CAAC,EAAE,EAAE,CAAC,CAAC,EAAE,MAAM,EAAE,IAAI,EAAE,OAAO,EAAE,OAAO,EAAE,EAAE,EAAE,CAAC,CAAC,CAAC,CAAA;AAExH,4DAA4D;AAC5D,MAAM,CAAC,MAAM,OAAO,GAAG,CAAC,QAAQ,CAAC,CAAA"}
|
|
1
|
+
{"version":3,"file":"reasons.js","sourceRoot":"","sources":["../src/reasons.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,aAAa,EAAE,MAAM,6BAA6B,CAAA;AAC3D,OAAO,EAAE,YAAY,EAAE,MAAM,mBAAmB,CAAA;AAEhD;;;GAGG;AACH,MAAM,IAAI,GAAG,IAAI,GAAG,CAAC,YAAY,CAAC,GAAG,CAAC,CAAC,GAAG,EAAE,EAAE,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC,CAAA;AAE3D,MAAM,KAAK,GAAG,CAAC,MAAM,EAAE,MAAM,EAAE,QAAQ,EAAE,cAAc,EAAE,UAAU,EAAE,OAAO,CAAC,CAAC,OAAO,CACnF,CAAC,IAAI,EAA8B,EAAE,CAAC;IACpC,CAAC,GAAG,IAAI,YAAY,EAAE,kBAAkB,EAAE,iBAAiB,IAAI,oCAAoC,CAAC;IACpG,CAAC,GAAG,IAAI,YAAY,EAAE,WAAW,EAAE,MAAM,IAAI,wBAAwB,CAAC;CACvE,CACF,CAAA;AAED,uGAAuG;AACvG,MAAM,GAAG,GAAsD;IAC7D,CAAC,mBAAmB,EAAE,kBAAkB,EAAE,iDAAiD,CAAC;IAC5F,CAAC,iBAAiB,EAAE,sBAAsB,EAAE,4CAA4C,CAAC;IACzF,CAAC,iBAAiB,EAAE,sBAAsB,EAAE,+BAA+B,CAAC;IAC5E,CAAC,uBAAuB,EAAE,kBAAkB,EAAE,0CAA0C,CAAC;IACzF,CAAC,sBAAsB,EAAE,kBAAkB,EAAE,oCAAoC,CAAC;IAClF,CAAC,gBAAgB,EAAE,WAAW,EAAE,wEAAwE,CAAC;IACzG,CAAC,kBAAkB,EAAE,UAAU,EAAE,4DAA4D,CAAC;IAC9F,CAAC,iBAAiB,EAAE,kBAAkB,EAAE,sCAAsC,CAAC;IAC/E,CAAC,oBAAoB,EAAE,kBAAkB,EAAE,8DAA8D,CAAC;IAC1G,CAAC,iBAAiB,EAAE,kBAAkB,EAAE,iEAAiE,CAAC;IAC1G,CAAC,eAAe,EAAE,kBAAkB,EAAE,wCAAwC,CAAC;IAC/E,CAAC,sBAAsB,EAAE,kBAAkB,EAAE,oDAAoD,CAAC;IAClG,CAAC,sBAAsB,EAAE,kBAAkB,EAAE,sDAAsD,CAAC;IACpG,GAAG,KAAK;CACT,CAAA;AAED,MAAM,OAAO,GAAG,GAAG,CAAC,MAAM,CAAC,CAAC,CAAC,MAAM,CAAC,EAAE,EAAE,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC,CAAA;AAE3D,MAAM,CAAC,MAAM,OAAO,GAAG,aAAa,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC,CAAC,MAAM,EAAE,IAAI,EAAE,OAAO,CAAC,EAAE,EAAE,CAAC,CAAC,EAAE,MAAM,EAAE,IAAI,EAAE,OAAO,EAAE,OAAO,EAAE,EAAE,EAAE,CAAC,CAAC,CAAC,CAAA;AAExH,4DAA4D;AAC5D,MAAM,CAAC,MAAM,OAAO,GAAG,CAAC,QAAQ,EAAE,OAAO,CAAC,CAAA"}
|
package/dist/version.d.ts
CHANGED
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
export declare const VERSION = "0.
|
|
1
|
+
export declare const VERSION = "0.4.0";
|
|
2
2
|
//# sourceMappingURL=version.d.ts.map
|
package/dist/version.js
CHANGED
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
export const VERSION = "0.
|
|
1
|
+
export const VERSION = "0.4.0";
|
|
2
2
|
//# sourceMappingURL=version.js.map
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@wirecat/bitrix24-cli",
|
|
3
|
-
"version": "0.
|
|
3
|
+
"version": "0.4.0",
|
|
4
4
|
"description": "Read and change a Bitrix24 portal's CRM — deals, leads, contacts, companies — from the terminal, scripts and AI agents",
|
|
5
5
|
"license": "Apache-2.0",
|
|
6
6
|
"author": "Viacheslav Ptsarev",
|
|
@@ -56,8 +56,8 @@
|
|
|
56
56
|
},
|
|
57
57
|
"dependencies": {
|
|
58
58
|
"@modelcontextprotocol/server": "2.4.0",
|
|
59
|
-
"@wirecat/cli-base": "0.
|
|
60
|
-
"@wirecat/cli-core": "0.
|
|
59
|
+
"@wirecat/cli-base": "0.80.1",
|
|
60
|
+
"@wirecat/cli-core": "0.590.0",
|
|
61
61
|
"commander": "15.0.0",
|
|
62
62
|
"valibot": "1.5.0"
|
|
63
63
|
},
|