@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
package/dist/commands/crm.js
CHANGED
|
@@ -3,7 +3,9 @@ import { defineQuery, queryFieldsOf } from "@wirecat/cli-base/query";
|
|
|
3
3
|
import { answerEntity, commandPath, itemOf, listQuery, nativeTerms, outputFor, pagedList, REMOTE_READ, renderAnswer, typedQuery, unfilteredQuery, withPaging, withQuery, } from "@wirecat/cli-core/cli";
|
|
4
4
|
import { Command } from "commander";
|
|
5
5
|
import { conditionsOf } from "../crm/conditions.js";
|
|
6
|
+
import { customConditions, customNames, filterableFields, selectedCodes, wantedCodes, withCustomFields, } from "../crm/custom-query.js";
|
|
6
7
|
import { DEAL, DEAL_FIELDS, dealSchema } from "../crm/deal.js";
|
|
8
|
+
import { loadFields } from "../crm/fields.js";
|
|
7
9
|
import { getItem, listItems, resolveItem } from "../crm/items.js";
|
|
8
10
|
import { LEAD, LEAD_FIELDS, leadSchema } from "../crm/lead.js";
|
|
9
11
|
import { ORGANIZATION, ORGANIZATION_FIELDS, organizationSchema } from "../crm/organization.js";
|
|
@@ -27,18 +29,31 @@ const nativeQuery = (entity, schema, fields, examples = {}) => defineQuery({
|
|
|
27
29
|
examples,
|
|
28
30
|
}),
|
|
29
31
|
});
|
|
32
|
+
const CUSTOM_HELP = `
|
|
33
|
+
The portal's own fields, as \`fields list\` prints them:
|
|
34
|
+
<code or label>:<value> a field the portal can filter by; a list field takes its option's label or id.
|
|
35
|
+
A label with spaces: lead_source:web, or Lead\\ source:web
|
|
36
|
+
--json=id,title,provider_metadata.<code> adds that field to each item; provider_metadata alone adds them all`;
|
|
30
37
|
const windowOf = (command) => {
|
|
31
38
|
const { settings } = contextOf(command);
|
|
32
39
|
return settings.all ? { offset: 0 } : { offset: (settings.page - 1) * settings.limit, limit: settings.limit };
|
|
33
40
|
};
|
|
34
41
|
const listCommand = (noun) => withPaging(withQuery(answerEntity(annotate(new Command("list"), { effects: REMOTE_READ, offline: false, examples: noun.examples }), noun.entity, noun.schema), noun.query))
|
|
35
42
|
.description(`list ${noun.what} on the portal, newest first`)
|
|
43
|
+
.addHelpText("after", noun.custom ? CUSTOM_HELP : "")
|
|
36
44
|
.action(async function (words) {
|
|
37
45
|
const path = commandPath(this);
|
|
38
|
-
const
|
|
46
|
+
const text = typedQuery(words);
|
|
47
|
+
const options = noun.word ? { defaultField: noun.word } : {};
|
|
48
|
+
const termsOf = (registry) => nativeTerms(listQuery(text, registry, path, options), path);
|
|
49
|
+
const names = noun.custom ? customNames(text, noun.query, path, noun.word) : [];
|
|
50
|
+
const wanted = noun.custom ? wantedCodes(this.optsWithGlobals().fields) : undefined;
|
|
51
|
+
const terms = names.length ? undefined : termsOf(noun.query);
|
|
39
52
|
const { settings } = contextOf(this);
|
|
40
53
|
const window = windowOf(this);
|
|
41
|
-
const found = await withPortal(this, (portal) => noun.
|
|
54
|
+
const found = await withPortal(this, (portal) => noun.custom && (terms === undefined || wanted !== undefined)
|
|
55
|
+
? noun.custom(portal, { names, wanted, terms: termsOf }, window)
|
|
56
|
+
: noun.list(portal, terms ?? new Map(), window));
|
|
42
57
|
renderAnswer(this, outputFor(this), pagedList(path, settings, found));
|
|
43
58
|
});
|
|
44
59
|
const showCommand = (noun) => answerEntity(annotate(new Command("show"), {
|
|
@@ -58,13 +73,24 @@ const nounCommand = (noun, description) => annotate(new Command(noun.noun), { ef
|
|
|
58
73
|
.addCommand(showCommand(noun));
|
|
59
74
|
const itemNoun = (type, shape, examples, listExamples) => {
|
|
60
75
|
const word = Object.entries(shape.fields).find(([, map]) => map.kind === "word")?.[0];
|
|
76
|
+
const query = nativeQuery(shape.entity, shape.schema, shape.fields, examples);
|
|
61
77
|
return {
|
|
62
78
|
...shape,
|
|
63
|
-
query
|
|
79
|
+
query,
|
|
64
80
|
...(word ? { word } : {}),
|
|
65
81
|
examples: listExamples,
|
|
66
82
|
reference: "id-or-name",
|
|
67
83
|
list: (portal, terms, window) => listItems(portal, type, conditionsOf(terms, shape.fields), window),
|
|
84
|
+
custom: async (portal, { names, wanted, terms: termsOf }, window) => {
|
|
85
|
+
const fields = await loadFields(portal, type.type);
|
|
86
|
+
const chosen = filterableFields(fields, names);
|
|
87
|
+
const terms = termsOf(withCustomFields(query, chosen));
|
|
88
|
+
const custom = customConditions(terms, chosen);
|
|
89
|
+
return listItems(portal, type, [...conditionsOf(terms, shape.fields), ...custom], window, {
|
|
90
|
+
codes: selectedCodes(fields, wanted),
|
|
91
|
+
fields,
|
|
92
|
+
});
|
|
93
|
+
},
|
|
68
94
|
show: async (portal, reference) => getItem(portal, type, await resolveItem(portal, type, reference)),
|
|
69
95
|
};
|
|
70
96
|
};
|
package/dist/commands/crm.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"crm.js","sourceRoot":"","sources":["../../src/commands/crm.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"crm.js","sourceRoot":"","sources":["../../src/commands/crm.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"fields.d.ts","sourceRoot":"","sources":["../../src/commands/fields.ts"],"names":[],"mappings":"AAaA,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAA;AA0DnC,eAAO,MAAM,aAAa,QAAO,OAGH,CAAA"}
|
|
@@ -0,0 +1,45 @@
|
|
|
1
|
+
import { CliError } from "@wirecat/cli-base";
|
|
2
|
+
import { annotate } from "@wirecat/cli-base/commands";
|
|
3
|
+
import { answerEntity, commandPath, outputFor, pagedList, REMOTE_READ, renderAnswer, unfilteredQuery, withPaging, withQuery, } from "@wirecat/cli-core/cli";
|
|
4
|
+
import { Command } from "commander";
|
|
5
|
+
import { DEAL } from "../crm/deal.js";
|
|
6
|
+
import { fieldSchema, loadFields } from "../crm/fields.js";
|
|
7
|
+
import { LEAD } from "../crm/lead.js";
|
|
8
|
+
import { ORGANIZATION } from "../crm/organization.js";
|
|
9
|
+
import { PERSON } from "../crm/person.js";
|
|
10
|
+
import { IDENTITY } from "../identity.js";
|
|
11
|
+
import { contextOf, withPortal } from "../portal.js";
|
|
12
|
+
const B24 = IDENTITY.command;
|
|
13
|
+
const KINDS = {
|
|
14
|
+
deals: DEAL.type,
|
|
15
|
+
leads: LEAD.type,
|
|
16
|
+
people: PERSON.type,
|
|
17
|
+
organizations: ORGANIZATION.type,
|
|
18
|
+
};
|
|
19
|
+
const typeOf = (kind) => {
|
|
20
|
+
const type = KINDS[kind];
|
|
21
|
+
if (!type)
|
|
22
|
+
throw new CliError("validation_error", `fields are listed for ${Object.keys(KINDS).join(", ")}; got ${kind}`, {
|
|
23
|
+
reason: "field.unknown-kind",
|
|
24
|
+
allowed: Object.keys(KINDS),
|
|
25
|
+
});
|
|
26
|
+
return type;
|
|
27
|
+
};
|
|
28
|
+
const listCommand = () => withPaging(withQuery(answerEntity(annotate(new Command("list"), {
|
|
29
|
+
effects: REMOTE_READ,
|
|
30
|
+
offline: false,
|
|
31
|
+
examples: [`${B24} work fields list deals`, `${B24} work fields list people --json`],
|
|
32
|
+
}), "crm_field", fieldSchema).argument("<kind>", Object.keys(KINDS).join(", ")), unfilteredQuery("crm_field", fieldSchema)))
|
|
33
|
+
.description("list the portal's custom fields of one kind, with a list field's options")
|
|
34
|
+
.action(async function (kind) {
|
|
35
|
+
const type = typeOf(kind);
|
|
36
|
+
const { settings } = contextOf(this);
|
|
37
|
+
const fields = await withPortal(this, (portal) => loadFields(portal, type));
|
|
38
|
+
const offset = settings.all ? 0 : (settings.page - 1) * settings.limit;
|
|
39
|
+
const end = settings.all ? fields.length : offset + settings.limit;
|
|
40
|
+
renderAnswer(this, outputFor(this), pagedList(commandPath(this), settings, { items: fields.slice(offset, end), has_more: fields.length > end }));
|
|
41
|
+
});
|
|
42
|
+
export const fieldsCommand = () => annotate(new Command("fields"), { effects: REMOTE_READ })
|
|
43
|
+
.description("read the portal's own fields on deals, leads, people and organizations")
|
|
44
|
+
.addCommand(listCommand());
|
|
45
|
+
//# sourceMappingURL=fields.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"fields.js","sourceRoot":"","sources":["../../src/commands/fields.ts"],"names":[],"mappings":"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"}
|
package/dist/commands/write.d.ts
CHANGED
|
@@ -1,3 +1,4 @@
|
|
|
1
|
+
import { type Level } from "@wirecat/cli-core/sends";
|
|
1
2
|
import type { Command } from "commander";
|
|
2
3
|
import type { BitrixTransport } from "../bitrix/transport.js";
|
|
3
4
|
export declare const operationIdOf: (given: string | undefined) => string;
|
|
@@ -10,12 +11,16 @@ export interface Write {
|
|
|
10
11
|
keyed?: boolean;
|
|
11
12
|
/** Keys checked beside `key`, such as the command key a raw `api call` does the same as. */
|
|
12
13
|
extra?: readonly string[];
|
|
14
|
+
/** The built-in levels, when the call adds its own key's (`callDefaults`). */
|
|
15
|
+
defaults?: Readonly<Record<string, Level>>;
|
|
13
16
|
operationId?: string | undefined;
|
|
17
|
+
/** A lookup the write needs, in its own run before the write is checked and sent, as gcal-cli's `api call` reads. */
|
|
18
|
+
prepare?: (portal: BitrixTransport) => Promise<void>;
|
|
14
19
|
act: (portal: BitrixTransport, operationId: string) => Promise<Record<string, unknown>>;
|
|
15
20
|
}
|
|
16
21
|
/**
|
|
17
22
|
* Every write's one path, as gcal-cli's `api call` (src/commands/api.ts): the read-only lock, the profile's levels,
|
|
18
23
|
* one question for every key at `ask`, the send journal, and an `operation_id` in the answer (WC-PERM-13, WC-OUT-10).
|
|
19
24
|
*/
|
|
20
|
-
export declare const write: (command: Command, { key, assignee, extra: also, keyed, operationId: given, act }: Write) => Promise<void>;
|
|
25
|
+
export declare const write: (command: Command, { key, assignee, extra: also, defaults, keyed, operationId: given, prepare, act, }: Write) => Promise<void>;
|
|
21
26
|
//# sourceMappingURL=write.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"write.d.ts","sourceRoot":"","sources":["../../src/commands/write.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"write.d.ts","sourceRoot":"","sources":["../../src/commands/write.ts"],"names":[],"mappings":"AAUA,OAAO,EAAsC,KAAK,KAAK,EAA4B,MAAM,yBAAyB,CAAA;AAClH,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,WAAW,CAAA;AACxC,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,wBAAwB,CAAA;AAQ7D,eAAO,MAAM,aAAa,UAAW,MAAM,GAAG,SAAS,KAAG,MAMzD,CAAA;AAED,MAAM,WAAW,KAAK;IACpB,wDAAwD;IACxD,GAAG,EAAE,MAAM,CAAA;IACX,uEAAuE;IACvE,QAAQ,CAAC,EAAE,MAAM,GAAG,SAAS,CAAA;IAC7B,kGAAkG;IAClG,KAAK,CAAC,EAAE,OAAO,CAAA;IACf,4FAA4F;IAC5F,KAAK,CAAC,EAAE,SAAS,MAAM,EAAE,CAAA;IACzB,8EAA8E;IAC9E,QAAQ,CAAC,EAAE,QAAQ,CAAC,MAAM,CAAC,MAAM,EAAE,KAAK,CAAC,CAAC,CAAA;IAC1C,WAAW,CAAC,EAAE,MAAM,GAAG,SAAS,CAAA;IAChC,qHAAqH;IACrH,OAAO,CAAC,EAAE,CAAC,MAAM,EAAE,eAAe,KAAK,OAAO,CAAC,IAAI,CAAC,CAAA;IACpD,GAAG,EAAE,CAAC,MAAM,EAAE,eAAe,EAAE,WAAW,EAAE,MAAM,KAAK,OAAO,CAAC,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC,CAAA;CACxF;AAED;;;GAGG;AACH,eAAO,MAAM,KAAK,YACP,OAAO,sFAUb,KAAK,kBA2CT,CAAA"}
|
package/dist/commands/write.js
CHANGED
|
@@ -17,7 +17,7 @@ export const operationIdOf = (given) => {
|
|
|
17
17
|
* Every write's one path, as gcal-cli's `api call` (src/commands/api.ts): the read-only lock, the profile's levels,
|
|
18
18
|
* one question for every key at `ask`, the send journal, and an `operation_id` in the answer (WC-PERM-13, WC-OUT-10).
|
|
19
19
|
*/
|
|
20
|
-
export const write = async (command, { key, assignee, extra: also = [], keyed = true, operationId: given, act }) => {
|
|
20
|
+
export const write = async (command, { key, assignee, extra: also = [], defaults = permissions.defaults, keyed = true, operationId: given, prepare, act, }) => {
|
|
21
21
|
const { env, settings, run } = contextOf(command);
|
|
22
22
|
const lock = readOnlyLockOf(IDENTITY, env);
|
|
23
23
|
if (lock)
|
|
@@ -26,20 +26,22 @@ export const write = async (command, { key, assignee, extra: also = [], keyed =
|
|
|
26
26
|
const webhook = webhookOf(command);
|
|
27
27
|
const self = webhook.userId;
|
|
28
28
|
const extra = [...also, ...(assignee !== undefined && assignee !== self ? [ASSIGN_KEY] : [])];
|
|
29
|
-
const levelOf = (one) => levelFor(settings.permissions, one,
|
|
29
|
+
const levelOf = (one) => levelFor(settings.permissions, one, defaults).level;
|
|
30
30
|
const guard = keyedGuard((ask) => guardFor(IDENTITY,
|
|
31
31
|
// The portal limits its own rate; the guard is here for the levels and the journal, not a send limit.
|
|
32
|
-
{ ...settings, sendsPerHour: Number.MAX_SAFE_INTEGER, permissionDefaults:
|
|
32
|
+
{ ...settings, sendsPerHour: Number.MAX_SAFE_INTEGER, permissionDefaults: defaults }, outputFor(command).renderer.warn, environmentOf(command).env ?? process.env, ask), terminalAsker(command), levelOf, extra);
|
|
33
33
|
const request = { chatId: null, kind: "edit", key, operationId };
|
|
34
34
|
guard.refuse(request);
|
|
35
|
+
if (prepare)
|
|
36
|
+
await run((events) => prepare(transportFor(command, webhook, events)));
|
|
35
37
|
let done;
|
|
36
38
|
try {
|
|
37
39
|
done = await guardedWrite(guard, request, () => run((events) => act(transportFor(command, webhook, events), operationId)));
|
|
38
40
|
}
|
|
39
41
|
catch (error) {
|
|
40
42
|
if (keyed && error instanceof CliError && error.code === "outcome_unknown")
|
|
41
|
-
throw new CliError("outcome_unknown", `${error.message} — repeat it with --operation-id ${operationId}
|
|
42
|
-
"
|
|
43
|
+
throw new CliError("outcome_unknown", `${error.message} — check the portal, and repeat it with --operation-id ${operationId} only if it is not ` +
|
|
44
|
+
"there: Bitrix24's documentation says a repeat with that key is answered from its record, not run again", { ...error.details, operation_id: operationId });
|
|
43
45
|
throw error;
|
|
44
46
|
}
|
|
45
47
|
renderAnswer(command, outputFor(command), itemOf({ operation_id: operationId, ...done }));
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"write.js","sourceRoot":"","sources":["../../src/commands/write.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAE,MAAM,mBAAmB,CAAA;AAC5C,OAAO,EACL,aAAa,EACb,MAAM,EACN,SAAS,EACT,cAAc,EACd,eAAe,EACf,YAAY,EACZ,aAAa,GACd,MAAM,uBAAuB,CAAA;AAC9B,OAAO,EAAE,YAAY,EAAE,QAAQ,EAAE,UAAU,
|
|
1
|
+
{"version":3,"file":"write.js","sourceRoot":"","sources":["../../src/commands/write.ts"],"names":[],"mappings":"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"}
|
package/dist/config.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"config.d.ts","sourceRoot":"","sources":["../src/config.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,aAAa,EAAmD,MAAM,uBAAuB,CAAA;AAI3G;;;GAGG;AACH,eAAO,MAAM,UAAU,sBAAsB,CAAA;AAM7C,eAAO,MAAM,WAAW,
|
|
1
|
+
{"version":3,"file":"config.d.ts","sourceRoot":"","sources":["../src/config.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,aAAa,EAAmD,MAAM,uBAAuB,CAAA;AAI3G;;;GAGG;AACH,eAAO,MAAM,UAAU,sBAAsB,CAAA;AAM7C,eAAO,MAAM,WAAW,oDAKtB,CAAA;AAEF,eAAO,MAAM,aAAa,EAAE,aAAsD,CAAA"}
|
package/dist/config.js
CHANGED
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import { commandPathKey, commandPermissions, settingsFor } from "@wirecat/cli-core/cli";
|
|
2
|
-
import { API_DEFAULTS, API_KEYS } from "./api-keys.js";
|
|
2
|
+
import { API_DEFAULTS, API_KEYS, apiKeysOf } from "./api-keys.js";
|
|
3
3
|
import { IDENTITY } from "./identity.js";
|
|
4
4
|
/**
|
|
5
5
|
* Assigning a record to another employee tells that employee in Bitrix24 by itself, so it is its own key, denied
|
|
@@ -10,6 +10,7 @@ export const ASSIGN_KEY = "crm.assign-others";
|
|
|
10
10
|
const keyOf = (path) => path[0] === "api" && ["call", "list", "show"].includes(path[1] ?? "") ? null : commandPathKey(path);
|
|
11
11
|
export const permissions = commandPermissions({
|
|
12
12
|
keyOf,
|
|
13
|
+
alsoChecks: apiKeysOf,
|
|
13
14
|
extra: [ASSIGN_KEY, ...API_KEYS],
|
|
14
15
|
defaults: { [ASSIGN_KEY]: "deny", ...API_DEFAULTS },
|
|
15
16
|
});
|
package/dist/config.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"config.js","sourceRoot":"","sources":["../src/config.ts"],"names":[],"mappings":"AAAA,OAAO,EAAsB,cAAc,EAAE,kBAAkB,EAAE,WAAW,EAAE,MAAM,uBAAuB,CAAA;AAC3G,OAAO,EAAE,YAAY,EAAE,QAAQ,EAAE,MAAM,eAAe,CAAA;
|
|
1
|
+
{"version":3,"file":"config.js","sourceRoot":"","sources":["../src/config.ts"],"names":[],"mappings":"AAAA,OAAO,EAAsB,cAAc,EAAE,kBAAkB,EAAE,WAAW,EAAE,MAAM,uBAAuB,CAAA;AAC3G,OAAO,EAAE,YAAY,EAAE,QAAQ,EAAE,SAAS,EAAE,MAAM,eAAe,CAAA;AACjE,OAAO,EAAE,QAAQ,EAAE,MAAM,eAAe,CAAA;AAExC;;;GAGG;AACH,MAAM,CAAC,MAAM,UAAU,GAAG,mBAAmB,CAAA;AAE7C,4HAA4H;AAC5H,MAAM,KAAK,GAAG,CAAC,IAAuB,EAAE,EAAE,CACxC,IAAI,CAAC,CAAC,CAAC,KAAK,KAAK,IAAI,CAAC,MAAM,EAAE,MAAM,EAAE,MAAM,CAAC,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,cAAc,CAAC,IAAI,CAAC,CAAA;AAErG,MAAM,CAAC,MAAM,WAAW,GAAG,kBAAkB,CAAC;IAC5C,KAAK;IACL,UAAU,EAAE,SAAS;IACrB,KAAK,EAAE,CAAC,UAAU,EAAE,GAAG,QAAQ,CAAC;IAChC,QAAQ,EAAE,EAAE,CAAC,UAAU,CAAC,EAAE,MAAM,EAAE,GAAG,YAAY,EAAE;CACpD,CAAC,CAAA;AAEF,MAAM,CAAC,MAAM,aAAa,GAAkB,WAAW,CAAC,QAAQ,EAAE,EAAE,WAAW,EAAE,CAAC,CAAA"}
|
package/dist/crm/conditions.js
CHANGED
|
@@ -5,7 +5,7 @@ const bare = (value) => value.replace(/^\*+|\*+$/g, "");
|
|
|
5
5
|
const valueFor = (kind, raw, name) => {
|
|
6
6
|
if (kind === "id" || kind === "number") {
|
|
7
7
|
const found = Number(raw);
|
|
8
|
-
if (!Number.isFinite(found) || (kind === "id" && !/^[1-9]\d
|
|
8
|
+
if (!Number.isFinite(found) || (kind === "id" && !/^(0|[1-9]\d*)$/.test(raw)))
|
|
9
9
|
throw new CliError("validation_error", `${name} takes ${kind === "id" ? "an id" : "a number"}; got ${raw}`, {
|
|
10
10
|
reason: "query.bad-value",
|
|
11
11
|
});
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"conditions.js","sourceRoot":"","sources":["../../src/crm/conditions.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAE,MAAM,mBAAmB,CAAA;AAE5C,OAAO,EAAE,UAAU,EAAE,MAAM,uBAAuB,CAAA;AAClD,OAAO,EAAE,WAAW,EAAE,MAAM,aAAa,CAAA;AAiBzC,MAAM,IAAI,GAAG,CAAC,KAAa,EAAE,EAAE,CAAC,KAAK,CAAC,OAAO,CAAC,YAAY,EAAE,EAAE,CAAC,CAAA;AAE/D,MAAM,QAAQ,GAAG,CAAC,IAAsB,EAAE,GAAW,EAAE,IAAY,EAAmB,EAAE;IACtF,IAAI,IAAI,KAAK,IAAI,IAAI,IAAI,KAAK,QAAQ,EAAE,CAAC;QACvC,MAAM,KAAK,GAAG,MAAM,CAAC,GAAG,CAAC,CAAA;QACzB,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,KAAK,CAAC,IAAI,CAAC,IAAI,KAAK,IAAI,IAAI,CAAC,
|
|
1
|
+
{"version":3,"file":"conditions.js","sourceRoot":"","sources":["../../src/crm/conditions.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,19 @@
|
|
|
1
|
+
import { type Predicate, type QueryRegistry } from "@wirecat/cli-base/query";
|
|
2
|
+
import type { Condition } from "./conditions.js";
|
|
3
|
+
import { type Field } from "./fields.js";
|
|
4
|
+
/** The field names a query uses that the list's own fields do not have: the portal's custom fields, if any. */
|
|
5
|
+
export declare const customNames: (text: string, registry: QueryRegistry, command: string, defaultField?: string) => string[];
|
|
6
|
+
/** The custom fields a query names, each as typed, refused unless the portal can filter a list by it. */
|
|
7
|
+
export declare const filterableFields: (fields: readonly Field[], names: readonly string[]) => [string, Field][];
|
|
8
|
+
/** The list's query fields and the custom ones, each a whole value, so cli-base validates the query as it is. */
|
|
9
|
+
export declare const withCustomFields: (registry: QueryRegistry, chosen: readonly [string, Field][]) => QueryRegistry;
|
|
10
|
+
/** The custom terms as conditions on their codes, taken out of `terms` so the rest map as before. */
|
|
11
|
+
export declare const customConditions: (terms: Map<string, Predicate>, chosen: readonly [string, Field][]) => Condition[];
|
|
12
|
+
/**
|
|
13
|
+
* The custom fields `--json` names, as `provider_metadata.<code>`, or every one for a bare `provider_metadata`;
|
|
14
|
+
* undefined when it names none.
|
|
15
|
+
*/
|
|
16
|
+
export declare const wantedCodes: (paths: string | undefined) => string[] | "all" | undefined;
|
|
17
|
+
/** The codes to select: only those the portal lists, since REST 3.0 refuses a whole call over one unknown name. */
|
|
18
|
+
export declare const selectedCodes: (fields: readonly Field[], wanted: string[] | "all" | undefined) => string[];
|
|
19
|
+
//# sourceMappingURL=custom-query.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"custom-query.d.ts","sourceRoot":"","sources":["../../src/crm/custom-query.ts"],"names":[],"mappings":"AACA,OAAO,EAAkB,KAAK,SAAS,EAAe,KAAK,aAAa,EAAa,MAAM,yBAAyB,CAAA;AAEpH,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,iBAAiB,CAAA;AAChD,OAAO,EAAE,KAAK,KAAK,EAAqC,MAAM,aAAa,CAAA;AAE3E,+GAA+G;AAC/G,eAAO,MAAM,WAAW,SAChB,MAAM,YACF,aAAa,WACd,MAAM,4BAEd,MAAM,EAOR,CAAA;AAED,yGAAyG;AACzG,eAAO,MAAM,gBAAgB,WAAY,SAAS,KAAK,EAAE,SAAS,SAAS,MAAM,EAAE,KAAG,CAAC,MAAM,EAAE,KAAK,CAAC,EASjG,CAAA;AAEJ,iHAAiH;AACjH,eAAO,MAAM,gBAAgB,aAAc,aAAa,UAAU,SAAS,CAAC,MAAM,EAAE,KAAK,CAAC,EAAE,KAAG,aAQ7F,CAAA;AAcF,qGAAqG;AACrG,eAAO,MAAM,gBAAgB,UAAW,GAAG,CAAC,MAAM,EAAE,SAAS,CAAC,UAAU,SAAS,CAAC,MAAM,EAAE,KAAK,CAAC,EAAE,KAAG,SAAS,EAK1G,CAAA;AAEJ;;;GAGG;AACH,eAAO,MAAM,WAAW,UAAW,MAAM,GAAG,SAAS,KAAG,MAAM,EAAE,GAAG,KAAK,GAAG,SAY1E,CAAA;AAED,mHAAmH;AACnH,eAAO,MAAM,aAAa,WAAY,SAAS,KAAK,EAAE,UAAU,MAAM,EAAE,GAAG,KAAK,GAAG,SAAS,KAAG,MAAM,EAOpG,CAAA"}
|
|
@@ -0,0 +1,79 @@
|
|
|
1
|
+
import { CliError } from "@wirecat/cli-base";
|
|
2
|
+
import { parseLucene, walkQuery } from "@wirecat/cli-base/query";
|
|
3
|
+
import { LIST_QUERY_GUIDE } from "@wirecat/cli-core/cli";
|
|
4
|
+
import { findField, optionOf, unknownField } from "./fields.js";
|
|
5
|
+
/** The field names a query uses that the list's own fields do not have: the portal's custom fields, if any. */
|
|
6
|
+
export const customNames = (text, registry, command, defaultField = "none") => {
|
|
7
|
+
if (text.trim() === "")
|
|
8
|
+
return [];
|
|
9
|
+
const known = new Set(registry.fields.map((field) => field.name));
|
|
10
|
+
const named = walkQuery(parseLucene(text, { defaultField, command, guide: LIST_QUERY_GUIDE }).root)
|
|
11
|
+
.filter((term) => !term.implicit)
|
|
12
|
+
.map((term) => term.field);
|
|
13
|
+
return [...new Set(named.filter((name) => !known.has(name)))];
|
|
14
|
+
};
|
|
15
|
+
/** The custom fields a query names, each as typed, refused unless the portal can filter a list by it. */
|
|
16
|
+
export const filterableFields = (fields, names) => names.map((name) => {
|
|
17
|
+
const field = findField(fields, name);
|
|
18
|
+
if (!field.filterable)
|
|
19
|
+
throw new CliError("validation_error", `the portal cannot filter a list by ${field.label ?? field.code}`, {
|
|
20
|
+
reason: "field.not-filterable",
|
|
21
|
+
field: field.code,
|
|
22
|
+
});
|
|
23
|
+
return [name, field];
|
|
24
|
+
});
|
|
25
|
+
/** The list's query fields and the custom ones, each a whole value, so cli-base validates the query as it is. */
|
|
26
|
+
export const withCustomFields = (registry, chosen) => ({
|
|
27
|
+
...registry,
|
|
28
|
+
fields: [
|
|
29
|
+
...registry.fields,
|
|
30
|
+
...chosen.map(([name]) => ({ name, type: "kw", operators: ["term", "phrase"], example: `${name}:x`, native: true })),
|
|
31
|
+
],
|
|
32
|
+
});
|
|
33
|
+
const NUMBERS = new Set(["integer", "double"]);
|
|
34
|
+
/**
|
|
35
|
+
* REST 3.0 checks a value's type against the field's: `field.list` gives a list field as `int`, so its option id goes
|
|
36
|
+
* as a number, and so does a number field's value.
|
|
37
|
+
*/
|
|
38
|
+
const filterValue = (field, typed) => {
|
|
39
|
+
if (field.options)
|
|
40
|
+
return Number(optionOf(field, typed));
|
|
41
|
+
const number = Number(typed);
|
|
42
|
+
return NUMBERS.has(field.type) && typed.trim() !== "" && Number.isFinite(number) ? number : typed;
|
|
43
|
+
};
|
|
44
|
+
/** The custom terms as conditions on their codes, taken out of `terms` so the rest map as before. */
|
|
45
|
+
export const customConditions = (terms, chosen) => chosen.flatMap(([name, field]) => {
|
|
46
|
+
const term = terms.get(name);
|
|
47
|
+
terms.delete(name);
|
|
48
|
+
return term ? [{ field: field.code, op: "=", value: filterValue(field, term.value) }] : [];
|
|
49
|
+
});
|
|
50
|
+
/**
|
|
51
|
+
* The custom fields `--json` names, as `provider_metadata.<code>`, or every one for a bare `provider_metadata`;
|
|
52
|
+
* undefined when it names none.
|
|
53
|
+
*/
|
|
54
|
+
export const wantedCodes = (paths) => {
|
|
55
|
+
if (!paths)
|
|
56
|
+
return undefined;
|
|
57
|
+
const parts = paths.split(",").map((path) => path
|
|
58
|
+
.trim()
|
|
59
|
+
.replace(/^items\./, "")
|
|
60
|
+
.split("."));
|
|
61
|
+
const metadata = parts.filter(([top]) => top === "provider_metadata");
|
|
62
|
+
if (metadata.some((part) => part.length === 1))
|
|
63
|
+
return "all";
|
|
64
|
+
const codes = metadata.flatMap(([, code]) => (code ? [code] : []));
|
|
65
|
+
return codes.length ? [...new Set(codes)] : undefined;
|
|
66
|
+
};
|
|
67
|
+
/** The codes to select: only those the portal lists, since REST 3.0 refuses a whole call over one unknown name. */
|
|
68
|
+
export const selectedCodes = (fields, wanted) => {
|
|
69
|
+
if (wanted === undefined)
|
|
70
|
+
return [];
|
|
71
|
+
if (wanted === "all")
|
|
72
|
+
return fields.map((field) => field.code);
|
|
73
|
+
return wanted.map((code) => {
|
|
74
|
+
if (!fields.some((field) => field.code === code))
|
|
75
|
+
throw unknownField(fields, code);
|
|
76
|
+
return code;
|
|
77
|
+
});
|
|
78
|
+
};
|
|
79
|
+
//# sourceMappingURL=custom-query.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"custom-query.js","sourceRoot":"","sources":["../../src/crm/custom-query.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAE,MAAM,mBAAmB,CAAA;AAC5C,OAAO,EAAkC,WAAW,EAAsB,SAAS,EAAE,MAAM,yBAAyB,CAAA;AACpH,OAAO,EAAE,gBAAgB,EAAE,MAAM,uBAAuB,CAAA;AAExD,OAAO,EAAc,SAAS,EAAE,QAAQ,EAAE,YAAY,EAAE,MAAM,aAAa,CAAA;AAE3E,+GAA+G;AAC/G,MAAM,CAAC,MAAM,WAAW,GAAG,CACzB,IAAY,EACZ,QAAuB,EACvB,OAAe,EACf,YAAY,GAAG,MAAM,EACX,EAAE;IACZ,IAAI,IAAI,CAAC,IAAI,EAAE,KAAK,EAAE;QAAE,OAAO,EAAE,CAAA;IACjC,MAAM,KAAK,GAAG,IAAI,GAAG,CAAC,QAAQ,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,CAAA;IACjE,MAAM,KAAK,GAAG,SAAS,CAAC,WAAW,CAAC,IAAI,EAAE,EAAE,YAAY,EAAE,OAAO,EAAE,KAAK,EAAE,gBAAgB,EAAE,CAAC,CAAC,IAAI,CAAC;SAChG,MAAM,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,CAAC,IAAI,CAAC,QAAQ,CAAC;SAChC,GAAG,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,IAAI,CAAC,KAAK,CAAC,CAAA;IAC5B,OAAO,CAAC,GAAG,IAAI,GAAG,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,CAAC,KAAK,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAA;AAC/D,CAAC,CAAA;AAED,yGAAyG;AACzG,MAAM,CAAC,MAAM,gBAAgB,GAAG,CAAC,MAAwB,EAAE,KAAwB,EAAqB,EAAE,CACxG,KAAK,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,EAAE;IACjB,MAAM,KAAK,GAAG,SAAS,CAAC,MAAM,EAAE,IAAI,CAAC,CAAA;IACrC,IAAI,CAAC,KAAK,CAAC,UAAU;QACnB,MAAM,IAAI,QAAQ,CAAC,kBAAkB,EAAE,sCAAsC,KAAK,CAAC,KAAK,IAAI,KAAK,CAAC,IAAI,EAAE,EAAE;YACxG,MAAM,EAAE,sBAAsB;YAC9B,KAAK,EAAE,KAAK,CAAC,IAAI;SAClB,CAAC,CAAA;IACJ,OAAO,CAAC,IAAI,EAAE,KAAK,CAAC,CAAA;AACtB,CAAC,CAAC,CAAA;AAEJ,iHAAiH;AACjH,MAAM,CAAC,MAAM,gBAAgB,GAAG,CAAC,QAAuB,EAAE,MAAkC,EAAiB,EAAE,CAAC,CAAC;IAC/G,GAAG,QAAQ;IACX,MAAM,EAAE;QACN,GAAG,QAAQ,CAAC,MAAM;QAClB,GAAG,MAAM,CAAC,GAAG,CACX,CAAC,CAAC,IAAI,CAAC,EAAa,EAAE,CAAC,CAAC,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,SAAS,EAAE,CAAC,MAAM,EAAE,QAAQ,CAAC,EAAE,OAAO,EAAE,GAAG,IAAI,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,CAAC,CACjH;KACF;CACF,CAAC,CAAA;AAEF,MAAM,OAAO,GAAG,IAAI,GAAG,CAAC,CAAC,SAAS,EAAE,QAAQ,CAAC,CAAC,CAAA;AAE9C;;;GAGG;AACH,MAAM,WAAW,GAAG,CAAC,KAAY,EAAE,KAAa,EAAmB,EAAE;IACnE,IAAI,KAAK,CAAC,OAAO;QAAE,OAAO,MAAM,CAAC,QAAQ,CAAC,KAAK,EAAE,KAAK,CAAC,CAAC,CAAA;IACxD,MAAM,MAAM,GAAG,MAAM,CAAC,KAAK,CAAC,CAAA;IAC5B,OAAO,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,IAAI,CAAC,IAAI,KAAK,CAAC,IAAI,EAAE,KAAK,EAAE,IAAI,MAAM,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,KAAK,CAAA;AACnG,CAAC,CAAA;AAED,qGAAqG;AACrG,MAAM,CAAC,MAAM,gBAAgB,GAAG,CAAC,KAA6B,EAAE,MAAkC,EAAe,EAAE,CACjH,MAAM,CAAC,OAAO,CAAC,CAAC,CAAC,IAAI,EAAE,KAAK,CAAC,EAAE,EAAE;IAC/B,MAAM,IAAI,GAAG,KAAK,CAAC,GAAG,CAAC,IAAI,CAAC,CAAA;IAC5B,KAAK,CAAC,MAAM,CAAC,IAAI,CAAC,CAAA;IAClB,OAAO,IAAI,CAAC,CAAC,CAAC,CAAC,EAAE,KAAK,EAAE,KAAK,CAAC,IAAI,EAAE,EAAE,EAAE,GAAY,EAAE,KAAK,EAAE,WAAW,CAAC,KAAK,EAAE,IAAI,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,EAAE,CAAA;AACrG,CAAC,CAAC,CAAA;AAEJ;;;GAGG;AACH,MAAM,CAAC,MAAM,WAAW,GAAG,CAAC,KAAyB,EAAgC,EAAE;IACrF,IAAI,CAAC,KAAK;QAAE,OAAO,SAAS,CAAA;IAC5B,MAAM,KAAK,GAAG,KAAK,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,EAAE,CAC1C,IAAI;SACD,IAAI,EAAE;SACN,OAAO,CAAC,UAAU,EAAE,EAAE,CAAC;SACvB,KAAK,CAAC,GAAG,CAAC,CACd,CAAA;IACD,MAAM,QAAQ,GAAG,KAAK,CAAC,MAAM,CAAC,CAAC,CAAC,GAAG,CAAC,EAAE,EAAE,CAAC,GAAG,KAAK,mBAAmB,CAAC,CAAA;IACrE,IAAI,QAAQ,CAAC,IAAI,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,IAAI,CAAC,MAAM,KAAK,CAAC,CAAC;QAAE,OAAO,KAAK,CAAA;IAC5D,MAAM,KAAK,GAAG,QAAQ,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE,IAAI,CAAC,EAAE,EAAE,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAA;IAClE,OAAO,KAAK,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,GAAG,IAAI,GAAG,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,SAAS,CAAA;AACvD,CAAC,CAAA;AAED,mHAAmH;AACnH,MAAM,CAAC,MAAM,aAAa,GAAG,CAAC,MAAwB,EAAE,MAAoC,EAAY,EAAE;IACxG,IAAI,MAAM,KAAK,SAAS;QAAE,OAAO,EAAE,CAAA;IACnC,IAAI,MAAM,KAAK,KAAK;QAAE,OAAO,MAAM,CAAC,GAAG,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,KAAK,CAAC,IAAI,CAAC,CAAA;IAC9D,OAAO,MAAM,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,EAAE;QACzB,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,KAAK,CAAC,IAAI,KAAK,IAAI,CAAC;YAAE,MAAM,YAAY,CAAC,MAAM,EAAE,IAAI,CAAC,CAAA;QAClF,OAAO,IAAI,CAAA;IACb,CAAC,CAAC,CAAA;AACJ,CAAC,CAAA"}
|
package/dist/crm/deal.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 dealSchema: v.StrictObjectSchema<{
|
|
6
6
|
readonly id: v.StringSchema<undefined>;
|
|
7
7
|
readonly title: v.NullableSchema<v.StringSchema<undefined>, undefined>;
|
|
@@ -17,11 +17,15 @@ export declare const dealSchema: v.StrictObjectSchema<{
|
|
|
17
17
|
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>;
|
|
18
18
|
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>;
|
|
19
19
|
readonly url: v.NullableSchema<v.StringSchema<undefined>, undefined>;
|
|
20
|
-
readonly provider_metadata: v.OptionalSchema<v.RecordSchema<v.StringSchema<undefined>, v.
|
|
20
|
+
readonly provider_metadata: v.OptionalSchema<v.RecordSchema<v.StringSchema<undefined>, v.StrictObjectSchema<{
|
|
21
|
+
readonly label: v.NullableSchema<v.StringSchema<undefined>, undefined>;
|
|
22
|
+
readonly value: v.UnknownSchema;
|
|
23
|
+
readonly option_id: v.OptionalSchema<v.UnionSchema<[v.StringSchema<undefined>, v.ArraySchema<v.StringSchema<undefined>, undefined>], undefined>, undefined>;
|
|
24
|
+
}, undefined>, undefined>, undefined>;
|
|
21
25
|
}, undefined>;
|
|
22
26
|
export type Deal = v.InferOutput<typeof dealSchema>;
|
|
23
27
|
export declare const DEAL_FIELDS: Record<string, FieldMap>;
|
|
24
28
|
/** Bitrix24 ⇄ neutral for a deal. */
|
|
25
|
-
export declare const fromBitrixDeal: (raw: Raw,
|
|
29
|
+
export declare const fromBitrixDeal: (raw: Raw, metadata?: Metadata) => Deal;
|
|
26
30
|
export declare const DEAL: ItemType<Deal>;
|
|
27
31
|
//# sourceMappingURL=deal.d.ts.map
|
package/dist/crm/deal.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"deal.d.ts","sourceRoot":"","sources":["../../src/crm/deal.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":"deal.d.ts","sourceRoot":"","sources":["../../src/crm/deal.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,EAGL,KAAK,QAAQ,EAMb,KAAK,GAAG,EAGT,MAAM,aAAa,CAAA;AAEpB,eAAO,MAAM,UAAU;;;;;;;;;;;;;;;;;;;;aAgBrB,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,qCAAqC;AACrC,eAAO,MAAM,cAAc,QAAS,GAAG,aAAa,QAAQ,KAAG,IAgB7D,CAAA;AAEF,eAAO,MAAM,IAAI,EAAE,QAAQ,CAAC,IAAI,CAuB/B,CAAA"}
|
package/dist/crm/deal.js
CHANGED
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import * as v from "valibot";
|
|
2
|
-
import {
|
|
2
|
+
import { id, ids, metadataSchema, nullableTime, number, OUTCOMES, outcomeOf, text, time, } from "./values.js";
|
|
3
3
|
export const dealSchema = v.strictObject({
|
|
4
4
|
id: v.string(),
|
|
5
5
|
title: v.nullable(v.string()),
|
|
@@ -30,7 +30,7 @@ export const DEAL_FIELDS = {
|
|
|
30
30
|
updated_at: { field: "updatedTime", kind: "time" },
|
|
31
31
|
};
|
|
32
32
|
/** Bitrix24 ⇄ neutral for a deal. */
|
|
33
|
-
export const fromBitrixDeal = (raw,
|
|
33
|
+
export const fromBitrixDeal = (raw, metadata) => ({
|
|
34
34
|
id: id(raw.id) ?? "",
|
|
35
35
|
title: text(raw.title),
|
|
36
36
|
pipeline_id: text(raw.categoryId),
|
|
@@ -45,7 +45,7 @@ export const fromBitrixDeal = (raw, custom) => ({
|
|
|
45
45
|
created_at: time(raw.createdTime),
|
|
46
46
|
updated_at: time(raw.updatedTime),
|
|
47
47
|
url: text(raw.url),
|
|
48
|
-
...(
|
|
48
|
+
...(metadata ? { provider_metadata: metadata } : {}),
|
|
49
49
|
});
|
|
50
50
|
export const DEAL = {
|
|
51
51
|
type: "deal",
|
package/dist/crm/deal.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"deal.js","sourceRoot":"","sources":["../../src/crm/deal.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,CAAC,MAAM,SAAS,CAAA;AAG5B,OAAO,EACL,
|
|
1
|
+
{"version":3,"file":"deal.js","sourceRoot":"","sources":["../../src/crm/deal.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,44 @@
|
|
|
1
|
+
import { CliError } from "@wirecat/cli-base";
|
|
2
|
+
import * as v from "valibot";
|
|
3
|
+
import type { BitrixTransport } from "../bitrix/transport.js";
|
|
4
|
+
import type { ItemType } from "./items.js";
|
|
5
|
+
import { type Metadata, type Raw } from "./values.js";
|
|
6
|
+
export declare const fieldSchema: v.StrictObjectSchema<{
|
|
7
|
+
readonly code: v.StringSchema<undefined>;
|
|
8
|
+
readonly label: v.NullableSchema<v.StringSchema<undefined>, undefined>;
|
|
9
|
+
readonly type: v.StringSchema<undefined>;
|
|
10
|
+
readonly multiple: v.BooleanSchema<undefined>;
|
|
11
|
+
readonly filterable: v.BooleanSchema<undefined>;
|
|
12
|
+
/** A list field's options; absent on any other field. */
|
|
13
|
+
readonly options: v.OptionalSchema<v.ArraySchema<v.StrictObjectSchema<{
|
|
14
|
+
readonly id: v.StringSchema<undefined>;
|
|
15
|
+
readonly label: v.StringSchema<undefined>;
|
|
16
|
+
}, undefined>, undefined>, undefined>;
|
|
17
|
+
}, undefined>;
|
|
18
|
+
/** One of the portal's own fields on deals, leads, contacts or companies. */
|
|
19
|
+
export type Field = v.InferOutput<typeof fieldSchema>;
|
|
20
|
+
/**
|
|
21
|
+
* The portal's custom fields of one type, in two calls that need only read rights: REST 3.0's `field.list` has the
|
|
22
|
+
* title and whether a list can filter by it, and REST 2's `userfield.list` the real type and a list field's options,
|
|
23
|
+
* which `field.list` shows only as `int` (apidocs crm.<type>.field.custom.enum.list).
|
|
24
|
+
*/
|
|
25
|
+
export declare const loadFields: (portal: BitrixTransport, type: ItemType<unknown>["type"]) => Promise<Field[]>;
|
|
26
|
+
/** Custom values as `{ label, value }`, a list field's option ids turned into their labels. */
|
|
27
|
+
export declare const metadataOf: (custom: Record<string, unknown>, fields: readonly Field[]) => Metadata;
|
|
28
|
+
/** No field by that name: the fields whose code or label holds it, or is held in it, as candidates. */
|
|
29
|
+
export declare const unknownField: (fields: readonly Field[], name: string) => CliError;
|
|
30
|
+
/**
|
|
31
|
+
* A custom field by its code, or by its whole label; two fields with that label are refused with both, never
|
|
32
|
+
* guessed (as `resolveItem` refuses two records).
|
|
33
|
+
*/
|
|
34
|
+
export declare const findField: (fields: readonly Field[], name: string) => Field;
|
|
35
|
+
/** A list field's option by its id or its whole label. */
|
|
36
|
+
export declare const optionOf: (field: Field, value: string) => string;
|
|
37
|
+
/** `--field` as typed, split at the first `=`. */
|
|
38
|
+
export declare const fieldPairsOf: (typed: readonly string[]) => [string, string][];
|
|
39
|
+
/**
|
|
40
|
+
* The custom values to write, by code, as typed: a list field's options as their ids, numbers as `field.list` types
|
|
41
|
+
* them (`int`), and a multiple field's values as an array.
|
|
42
|
+
*/
|
|
43
|
+
export declare const customValues: (fields: readonly Field[], pairs: readonly [string, string][]) => Raw;
|
|
44
|
+
//# sourceMappingURL=fields.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"fields.d.ts","sourceRoot":"","sources":["../../src/crm/fields.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAE,MAAM,mBAAmB,CAAA;AAC5C,OAAO,KAAK,CAAC,MAAM,SAAS,CAAA;AAC5B,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,wBAAwB,CAAA;AAC7D,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,YAAY,CAAA;AAC1C,OAAO,EAAY,KAAK,QAAQ,EAAE,KAAK,GAAG,EAAa,MAAM,aAAa,CAAA;AAE1E,eAAO,MAAM,WAAW;;;;;;IAMtB,yDAAyD;;;;;aAEzD,CAAA;AAEF,6EAA6E;AAC7E,MAAM,MAAM,KAAK,GAAG,CAAC,CAAC,WAAW,CAAC,OAAO,WAAW,CAAC,CAAA;AAOrD;;;;GAIG;AACH,eAAO,MAAM,UAAU,WAAkB,eAAe,QAAQ,QAAQ,CAAC,OAAO,CAAC,CAAC,MAAM,CAAC,KAAG,OAAO,CAAC,KAAK,EAAE,CA0B1G,CAAA;AAKD,+FAA+F;AAC/F,eAAO,MAAM,UAAU,WAAY,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,UAAU,SAAS,KAAK,EAAE,KAAG,QAetF,CAAA;AAWD,uGAAuG;AACvG,eAAO,MAAM,YAAY,WAAY,SAAS,KAAK,EAAE,QAAQ,MAAM,aAalE,CAAA;AAED;;;GAGG;AACH,eAAO,MAAM,SAAS,WAAY,SAAS,KAAK,EAAE,QAAQ,MAAM,KAAG,KAgBlE,CAAA;AAED,0DAA0D;AAC1D,eAAO,MAAM,QAAQ,UAAW,KAAK,SAAS,MAAM,KAAG,MAatD,CAAA;AAED,kDAAkD;AAClD,eAAO,MAAM,YAAY,UAAW,SAAS,MAAM,EAAE,KAAG,CAAC,MAAM,EAAE,MAAM,CAAC,EAMpE,CAAA;AAEJ;;;GAGG;AACH,eAAO,MAAM,YAAY,WAAY,SAAS,KAAK,EAAE,SAAS,SAAS,CAAC,MAAM,EAAE,MAAM,CAAC,EAAE,KAAG,GAiB3F,CAAA"}
|