@cryozerolabs/n8n-nodes-dingtalk 0.1.1 → 0.3.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +44 -4
- package/dist/credentials/DingtalkApi.credentials.js +8 -1
- package/dist/credentials/DingtalkApi.credentials.js.map +1 -1
- package/dist/docs/images/notable-ai-table-guide.png +0 -0
- package/dist/nodes/DingtalkNode/DingtalkNode.node.d.ts +20 -0
- package/dist/nodes/DingtalkNode/DingtalkNode.node.js +38 -68
- package/dist/nodes/DingtalkNode/DingtalkNode.node.js.map +1 -1
- package/dist/nodes/DingtalkNode/DingtalkNode.node.json +5 -5
- package/dist/nodes/DingtalkNode/resources/auth/index.js +5 -1
- package/dist/nodes/DingtalkNode/resources/auth/index.js.map +1 -1
- package/dist/nodes/DingtalkNode/resources/doc/index.d.ts +2 -0
- package/dist/nodes/DingtalkNode/resources/doc/index.js +13 -0
- package/dist/nodes/DingtalkNode/resources/doc/index.js.map +1 -0
- package/dist/nodes/DingtalkNode/resources/doc/resourceGetUploadinfo.d.ts +3 -0
- package/dist/nodes/DingtalkNode/resources/doc/resourceGetUploadinfo.js +70 -0
- package/dist/nodes/DingtalkNode/resources/doc/resourceGetUploadinfo.js.map +1 -0
- package/dist/nodes/DingtalkNode/resources/notable/common.d.ts +5 -0
- package/dist/nodes/DingtalkNode/resources/notable/common.js +100 -0
- package/dist/nodes/DingtalkNode/resources/notable/common.js.map +1 -0
- package/dist/nodes/DingtalkNode/resources/notable/fieldCreate.js +11 -33
- package/dist/nodes/DingtalkNode/resources/notable/fieldCreate.js.map +1 -1
- package/dist/nodes/DingtalkNode/resources/notable/fieldDelete.js +8 -30
- package/dist/nodes/DingtalkNode/resources/notable/fieldDelete.js.map +1 -1
- package/dist/nodes/DingtalkNode/resources/notable/fieldGetAll.js +8 -30
- package/dist/nodes/DingtalkNode/resources/notable/fieldGetAll.js.map +1 -1
- package/dist/nodes/DingtalkNode/resources/notable/fieldUpdate.js +11 -33
- package/dist/nodes/DingtalkNode/resources/notable/fieldUpdate.js.map +1 -1
- package/dist/nodes/DingtalkNode/resources/notable/index.js +37 -1
- package/dist/nodes/DingtalkNode/resources/notable/index.js.map +1 -1
- package/dist/nodes/DingtalkNode/resources/notable/methods/index.d.ts +9 -0
- package/dist/nodes/DingtalkNode/resources/notable/methods/index.js +45 -0
- package/dist/nodes/DingtalkNode/resources/notable/methods/index.js.map +1 -0
- package/dist/nodes/DingtalkNode/resources/notable/methods/listSearch.d.ts +2 -0
- package/dist/nodes/DingtalkNode/resources/notable/methods/listSearch.js +29 -0
- package/dist/nodes/DingtalkNode/resources/notable/methods/listSearch.js.map +1 -0
- package/dist/nodes/DingtalkNode/resources/notable/methods/loadOptions.d.ts +3 -0
- package/dist/nodes/DingtalkNode/resources/notable/methods/loadOptions.js +50 -0
- package/dist/nodes/DingtalkNode/resources/notable/methods/loadOptions.js.map +1 -0
- package/dist/nodes/DingtalkNode/resources/notable/methods/resourceMapping.d.ts +2 -0
- package/dist/nodes/DingtalkNode/resources/notable/methods/resourceMapping.js +48 -0
- package/dist/nodes/DingtalkNode/resources/notable/methods/resourceMapping.js.map +1 -0
- package/dist/nodes/DingtalkNode/resources/notable/recordDelete.js +35 -44
- package/dist/nodes/DingtalkNode/resources/notable/recordDelete.js.map +1 -1
- package/dist/nodes/DingtalkNode/resources/notable/recordGet.js +10 -32
- package/dist/nodes/DingtalkNode/resources/notable/recordGet.js.map +1 -1
- package/dist/nodes/DingtalkNode/resources/notable/recordInsert.js +65 -40
- package/dist/nodes/DingtalkNode/resources/notable/recordInsert.js.map +1 -1
- package/dist/nodes/DingtalkNode/resources/notable/recordList.js +190 -37
- package/dist/nodes/DingtalkNode/resources/notable/recordList.js.map +1 -1
- package/dist/nodes/DingtalkNode/resources/notable/recordUpdate.js +68 -39
- package/dist/nodes/DingtalkNode/resources/notable/recordUpdate.js.map +1 -1
- package/dist/nodes/DingtalkNode/resources/notable/sheetCreate.js +13 -28
- package/dist/nodes/DingtalkNode/resources/notable/sheetCreate.js.map +1 -1
- package/dist/nodes/DingtalkNode/resources/notable/sheetDelete.js +8 -30
- package/dist/nodes/DingtalkNode/resources/notable/sheetDelete.js.map +1 -1
- package/dist/nodes/DingtalkNode/resources/notable/sheetGet.js +8 -30
- package/dist/nodes/DingtalkNode/resources/notable/sheetGet.js.map +1 -1
- package/dist/nodes/DingtalkNode/resources/notable/sheetGetAll.js +5 -23
- package/dist/nodes/DingtalkNode/resources/notable/sheetGetAll.js.map +1 -1
- package/dist/nodes/DingtalkNode/resources/notable/sheetUpdate.js +15 -38
- package/dist/nodes/DingtalkNode/resources/notable/sheetUpdate.js.map +1 -1
- package/dist/nodes/DingtalkNode/resources/user/index.js +5 -1
- package/dist/nodes/DingtalkNode/resources/user/index.js.map +1 -1
- package/dist/nodes/shared/properties/body.d.ts +14 -0
- package/dist/nodes/shared/properties/body.js +123 -0
- package/dist/nodes/shared/properties/body.js.map +1 -0
- package/dist/nodes/shared/properties/commaSeparatedString.d.ts +3 -0
- package/dist/nodes/shared/properties/commaSeparatedString.js +28 -0
- package/dist/nodes/shared/properties/commaSeparatedString.js.map +1 -0
- package/dist/nodes/shared/properties/operator.d.ts +4 -0
- package/dist/nodes/shared/properties/operator.js +66 -0
- package/dist/nodes/shared/properties/operator.js.map +1 -0
- package/dist/nodes/shared/request.js +2 -0
- package/dist/nodes/shared/request.js.map +1 -1
- package/dist/nodes/shared/resource.d.ts +5 -3
- package/dist/nodes/shared/resource.js +17 -68
- package/dist/nodes/shared/resource.js.map +1 -1
- package/dist/package.json +1 -1
- package/dist/tsconfig.tsbuildinfo +1 -1
- package/package.json +1 -1
- package/dist/nodes/shared/validation.d.ts +0 -2
- package/dist/nodes/shared/validation.js +0 -20
- package/dist/nodes/shared/validation.js.map +0 -1
|
@@ -0,0 +1,123 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.parseJsonBody = parseJsonBody;
|
|
4
|
+
exports.bodyProps = bodyProps;
|
|
5
|
+
exports.getBodyData = getBodyData;
|
|
6
|
+
const n8n_workflow_1 = require("n8n-workflow");
|
|
7
|
+
function parseJsonBody(raw, node, itemIndex) {
|
|
8
|
+
let body = raw;
|
|
9
|
+
if (typeof raw === 'string') {
|
|
10
|
+
try {
|
|
11
|
+
body = JSON.parse(raw);
|
|
12
|
+
}
|
|
13
|
+
catch {
|
|
14
|
+
throw new n8n_workflow_1.NodeOperationError(node, '请求体 JSON 不是合法的 JSON 字符串', { itemIndex });
|
|
15
|
+
}
|
|
16
|
+
}
|
|
17
|
+
if (typeof body !== 'object' || body === null) {
|
|
18
|
+
throw new n8n_workflow_1.NodeOperationError(node, '请求体必须为 JSON 对象', { itemIndex });
|
|
19
|
+
}
|
|
20
|
+
return body;
|
|
21
|
+
}
|
|
22
|
+
const sendBodyModeProperty = {
|
|
23
|
+
displayName: '发送请求体',
|
|
24
|
+
name: 'sendBody',
|
|
25
|
+
type: 'options',
|
|
26
|
+
options: [
|
|
27
|
+
{
|
|
28
|
+
name: '使用下面定义的表单',
|
|
29
|
+
value: 'form',
|
|
30
|
+
},
|
|
31
|
+
{
|
|
32
|
+
name: '使用JSON',
|
|
33
|
+
value: 'json',
|
|
34
|
+
},
|
|
35
|
+
],
|
|
36
|
+
default: 'form',
|
|
37
|
+
description: '如何发送请求体数据',
|
|
38
|
+
};
|
|
39
|
+
const jsonBodyProperty = {
|
|
40
|
+
displayName: '请求体JSON',
|
|
41
|
+
name: 'jsonBody',
|
|
42
|
+
type: 'json',
|
|
43
|
+
default: '{}',
|
|
44
|
+
description: '请求体JSON数据',
|
|
45
|
+
displayOptions: {
|
|
46
|
+
show: {
|
|
47
|
+
sendBody: ['json'],
|
|
48
|
+
},
|
|
49
|
+
},
|
|
50
|
+
};
|
|
51
|
+
function bodyProps(displayOptions, options = {}) {
|
|
52
|
+
const { defaultJsonBody = '{}', jsonDescription = '请求体JSON数据', formProperties = [], defaultMode = 'form', showModeSelector = true, } = options;
|
|
53
|
+
const properties = [];
|
|
54
|
+
if (showModeSelector) {
|
|
55
|
+
properties.push({
|
|
56
|
+
...sendBodyModeProperty,
|
|
57
|
+
default: defaultMode,
|
|
58
|
+
displayOptions,
|
|
59
|
+
});
|
|
60
|
+
}
|
|
61
|
+
const jsonDisplayOptions = showModeSelector
|
|
62
|
+
? {
|
|
63
|
+
...displayOptions,
|
|
64
|
+
show: {
|
|
65
|
+
...displayOptions.show,
|
|
66
|
+
sendBody: ['json'],
|
|
67
|
+
},
|
|
68
|
+
}
|
|
69
|
+
: displayOptions;
|
|
70
|
+
properties.push({
|
|
71
|
+
...jsonBodyProperty,
|
|
72
|
+
default: defaultJsonBody,
|
|
73
|
+
description: jsonDescription,
|
|
74
|
+
displayOptions: jsonDisplayOptions,
|
|
75
|
+
});
|
|
76
|
+
if (formProperties.length > 0) {
|
|
77
|
+
const formDisplayOptions = showModeSelector
|
|
78
|
+
? {
|
|
79
|
+
...displayOptions,
|
|
80
|
+
show: {
|
|
81
|
+
...displayOptions.show,
|
|
82
|
+
sendBody: ['form'],
|
|
83
|
+
},
|
|
84
|
+
}
|
|
85
|
+
: displayOptions;
|
|
86
|
+
formProperties.forEach((prop) => {
|
|
87
|
+
var _a;
|
|
88
|
+
properties.push({
|
|
89
|
+
...prop,
|
|
90
|
+
displayOptions: {
|
|
91
|
+
...prop.displayOptions,
|
|
92
|
+
...formDisplayOptions,
|
|
93
|
+
show: {
|
|
94
|
+
...formDisplayOptions.show,
|
|
95
|
+
...(_a = prop.displayOptions) === null || _a === void 0 ? void 0 : _a.show,
|
|
96
|
+
},
|
|
97
|
+
},
|
|
98
|
+
});
|
|
99
|
+
});
|
|
100
|
+
}
|
|
101
|
+
return properties;
|
|
102
|
+
}
|
|
103
|
+
function getBodyData(ctx, itemIndex, options = {}) {
|
|
104
|
+
const { showModeSelector = true, defaultMode = 'form', formBuilder } = options;
|
|
105
|
+
let sendBodyMode;
|
|
106
|
+
if (showModeSelector) {
|
|
107
|
+
sendBodyMode = ctx.getNodeParameter('sendBody', itemIndex, defaultMode);
|
|
108
|
+
}
|
|
109
|
+
else {
|
|
110
|
+
sendBodyMode = defaultMode;
|
|
111
|
+
}
|
|
112
|
+
if (sendBodyMode === 'json') {
|
|
113
|
+
const raw = ctx.getNodeParameter('jsonBody', itemIndex, {});
|
|
114
|
+
return parseJsonBody(raw, ctx.getNode(), itemIndex);
|
|
115
|
+
}
|
|
116
|
+
else {
|
|
117
|
+
if (formBuilder) {
|
|
118
|
+
return formBuilder(ctx, itemIndex);
|
|
119
|
+
}
|
|
120
|
+
return {};
|
|
121
|
+
}
|
|
122
|
+
}
|
|
123
|
+
//# sourceMappingURL=body.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"body.js","sourceRoot":"","sources":["../../../../nodes/shared/properties/body.ts"],"names":[],"mappings":";;AAgBA,sCAiBC;AA+CD,8BA2EC;AASD,kCA8BC;AAlMD,+CAOsB;AAStB,SAAgB,aAAa,CAC3B,GAAY,EACZ,IAAW,EACX,SAAiB;IAEjB,IAAI,IAAI,GAAY,GAAG,CAAC;IACxB,IAAI,OAAO,GAAG,KAAK,QAAQ,EAAE,CAAC;QAC5B,IAAI,CAAC;YACH,IAAI,GAAG,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;QACzB,CAAC;QAAC,MAAM,CAAC;YACP,MAAM,IAAI,iCAAkB,CAAC,IAAI,EAAE,yBAAyB,EAAE,EAAE,SAAS,EAAE,CAAC,CAAC;QAC/E,CAAC;IACH,CAAC;IACD,IAAI,OAAO,IAAI,KAAK,QAAQ,IAAI,IAAI,KAAK,IAAI,EAAE,CAAC;QAC9C,MAAM,IAAI,iCAAkB,CAAC,IAAI,EAAE,gBAAgB,EAAE,EAAE,SAAS,EAAE,CAAC,CAAC;IACtE,CAAC;IACD,OAAO,IAA+B,CAAC;AACzC,CAAC;AAKD,MAAM,oBAAoB,GAAoB;IAC5C,WAAW,EAAE,OAAO;IACpB,IAAI,EAAE,UAAU;IAChB,IAAI,EAAE,SAAS;IACf,OAAO,EAAE;QACP;YACE,IAAI,EAAE,WAAW;YACjB,KAAK,EAAE,MAAM;SACd;QACD;YACE,IAAI,EAAE,QAAQ;YACd,KAAK,EAAE,MAAM;SACd;KACF;IACD,OAAO,EAAE,MAAM;IACf,WAAW,EAAE,WAAW;CACzB,CAAC;AAKF,MAAM,gBAAgB,GAAoB;IACxC,WAAW,EAAE,SAAS;IACtB,IAAI,EAAE,UAAU;IAChB,IAAI,EAAE,MAAM;IACZ,OAAO,EAAE,IAAI;IACb,WAAW,EAAE,WAAW;IACxB,cAAc,EAAE;QACd,IAAI,EAAE;YACJ,QAAQ,EAAE,CAAC,MAAM,CAAC;SACnB;KACF;CACF,CAAC;AAUF,SAAgB,SAAS,CACvB,cAA+B,EAC/B,UAMI,EAAE;IAEN,MAAM,EACJ,eAAe,GAAG,IAAI,EACtB,eAAe,GAAG,WAAW,EAC7B,cAAc,GAAG,EAAE,EACnB,WAAW,GAAG,MAAM,EACpB,gBAAgB,GAAG,IAAI,GACxB,GAAG,OAAO,CAAC;IAEZ,MAAM,UAAU,GAAsB,EAAE,CAAC;IAGzC,IAAI,gBAAgB,EAAE,CAAC;QACrB,UAAU,CAAC,IAAI,CAAC;YACd,GAAG,oBAAoB;YACvB,OAAO,EAAE,WAAW;YACpB,cAAc;SACf,CAAC,CAAC;IACL,CAAC;IAGD,MAAM,kBAAkB,GAAG,gBAAgB;QACzC,CAAC,CAAC;YACE,GAAG,cAAc;YACjB,IAAI,EAAE;gBACJ,GAAG,cAAc,CAAC,IAAI;gBACtB,QAAQ,EAAE,CAAC,MAAM,CAAC;aACnB;SACF;QACH,CAAC,CAAC,cAAc,CAAC;IAEnB,UAAU,CAAC,IAAI,CAAC;QACd,GAAG,gBAAgB;QACnB,OAAO,EAAE,eAAe;QACxB,WAAW,EAAE,eAAe;QAC5B,cAAc,EAAE,kBAAkB;KACnC,CAAC,CAAC;IAGH,IAAI,cAAc,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;QAC9B,MAAM,kBAAkB,GAAG,gBAAgB;YACzC,CAAC,CAAC;gBACE,GAAG,cAAc;gBACjB,IAAI,EAAE;oBACJ,GAAG,cAAc,CAAC,IAAI;oBACtB,QAAQ,EAAE,CAAC,MAAM,CAAC;iBACnB;aACF;YACH,CAAC,CAAC,cAAc,CAAC;QAEnB,cAAc,CAAC,OAAO,CAAC,CAAC,IAAI,EAAE,EAAE;;YAC9B,UAAU,CAAC,IAAI,CAAC;gBACd,GAAG,IAAI;gBACP,cAAc,EAAE;oBACd,GAAG,IAAI,CAAC,cAAc;oBACtB,GAAG,kBAAkB;oBACrB,IAAI,EAAE;wBACJ,GAAG,kBAAkB,CAAC,IAAI;wBAC1B,GAAG,MAAA,IAAI,CAAC,cAAc,0CAAE,IAAI;qBAC7B;iBACF;aACF,CAAC,CAAC;QACL,CAAC,CAAC,CAAC;IACL,CAAC;IAED,OAAO,UAAU,CAAC;AACpB,CAAC;AASD,SAAgB,WAAW,CACzB,GAAsB,EACtB,SAAiB,EACjB,UAII,EAAE;IAEN,MAAM,EAAE,gBAAgB,GAAG,IAAI,EAAE,WAAW,GAAG,MAAM,EAAE,WAAW,EAAE,GAAG,OAAO,CAAC;IAE/E,IAAI,YAAoB,CAAC;IAEzB,IAAI,gBAAgB,EAAE,CAAC;QACrB,YAAY,GAAG,GAAG,CAAC,gBAAgB,CAAC,UAAU,EAAE,SAAS,EAAE,WAAW,CAAW,CAAC;IACpF,CAAC;SAAM,CAAC;QACN,YAAY,GAAG,WAAW,CAAC;IAC7B,CAAC;IAED,IAAI,YAAY,KAAK,MAAM,EAAE,CAAC;QAE5B,MAAM,GAAG,GAAG,GAAG,CAAC,gBAAgB,CAAC,UAAU,EAAE,SAAS,EAAE,EAAE,CAAY,CAAC;QACvE,OAAO,aAAa,CAAC,GAAG,EAAE,GAAG,CAAC,OAAO,EAAE,EAAE,SAAS,CAAgB,CAAC;IACrE,CAAC;SAAM,CAAC;QAEN,IAAI,WAAW,EAAE,CAAC;YAChB,OAAO,WAAW,CAAC,GAAG,EAAE,SAAS,CAAC,CAAC;QACrC,CAAC;QACD,OAAO,EAAE,CAAC;IACZ,CAAC;AACH,CAAC"}
|
|
@@ -0,0 +1,3 @@
|
|
|
1
|
+
import type { IExecuteFunctions, INodeProperties } from 'n8n-workflow';
|
|
2
|
+
export declare function commaSeparatedStringProperty(overrides?: Partial<INodeProperties>): INodeProperties;
|
|
3
|
+
export declare function getCommaSeparatedValues(ctx: IExecuteFunctions, itemIndex: number, parameterName: string): string[];
|
|
@@ -0,0 +1,28 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.commaSeparatedStringProperty = commaSeparatedStringProperty;
|
|
4
|
+
exports.getCommaSeparatedValues = getCommaSeparatedValues;
|
|
5
|
+
function commaSeparatedStringProperty(overrides = {}) {
|
|
6
|
+
const property = {
|
|
7
|
+
displayName: '值列表',
|
|
8
|
+
name: 'values',
|
|
9
|
+
type: 'string',
|
|
10
|
+
placeholder: '例如:value1, value2',
|
|
11
|
+
description: '多个参数请用","分隔',
|
|
12
|
+
hint: '多个参数请用","分隔',
|
|
13
|
+
default: '',
|
|
14
|
+
...overrides,
|
|
15
|
+
};
|
|
16
|
+
property.default = typeof overrides.default === 'undefined' ? '' : overrides.default;
|
|
17
|
+
return property;
|
|
18
|
+
}
|
|
19
|
+
function getCommaSeparatedValues(ctx, itemIndex, parameterName) {
|
|
20
|
+
const raw = ctx.getNodeParameter(parameterName, itemIndex);
|
|
21
|
+
console.log(`raw: ${raw}`);
|
|
22
|
+
return raw
|
|
23
|
+
.trim()
|
|
24
|
+
.split(/[\n,,]/)
|
|
25
|
+
.map((value) => value.trim())
|
|
26
|
+
.filter((value) => value.length > 0);
|
|
27
|
+
}
|
|
28
|
+
//# sourceMappingURL=commaSeparatedString.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"commaSeparatedString.js","sourceRoot":"","sources":["../../../../nodes/shared/properties/commaSeparatedString.ts"],"names":[],"mappings":";;AAKA,oEAiBC;AAKD,0DAYC;AAlCD,SAAgB,4BAA4B,CAC1C,YAAsC,EAAE;IAExC,MAAM,QAAQ,GAAoB;QAChC,WAAW,EAAE,KAAK;QAClB,IAAI,EAAE,QAAQ;QACd,IAAI,EAAE,QAAQ;QACd,WAAW,EAAE,mBAAmB;QAChC,WAAW,EAAE,aAAa;QAC1B,IAAI,EAAE,aAAa;QACnB,OAAO,EAAE,EAAE;QACX,GAAG,SAAS;KACb,CAAC;IAEF,QAAQ,CAAC,OAAO,GAAG,OAAO,SAAS,CAAC,OAAO,KAAK,WAAW,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,SAAS,CAAC,OAAO,CAAC;IAErF,OAAO,QAAQ,CAAC;AAClB,CAAC;AAKD,SAAgB,uBAAuB,CACrC,GAAsB,EACtB,SAAiB,EACjB,aAAqB;IAErB,MAAM,GAAG,GAAG,GAAG,CAAC,gBAAgB,CAAC,aAAa,EAAE,SAAS,CAAW,CAAC;IACrE,OAAO,CAAC,GAAG,CAAC,QAAQ,GAAG,EAAE,CAAC,CAAC;IAC3B,OAAO,GAAG;SACP,IAAI,EAAE;SACN,KAAK,CAAC,QAAQ,CAAC;SACf,GAAG,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,KAAK,CAAC,IAAI,EAAE,CAAC;SAC5B,MAAM,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,KAAK,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC;AACzC,CAAC"}
|
|
@@ -0,0 +1,4 @@
|
|
|
1
|
+
import { IDisplayOptions, IExecuteFunctions, ILoadOptionsFunctions, INodeProperties } from 'n8n-workflow';
|
|
2
|
+
export declare function operatorProps(displayOptions: IDisplayOptions): INodeProperties[];
|
|
3
|
+
export declare function getOperatorId(ctx: IExecuteFunctions, itemIndex: number): Promise<string>;
|
|
4
|
+
export declare function getOperatorIdForLoadOptions(ctx: ILoadOptionsFunctions): Promise<string>;
|
|
@@ -0,0 +1,66 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.operatorProps = operatorProps;
|
|
4
|
+
exports.getOperatorId = getOperatorId;
|
|
5
|
+
exports.getOperatorIdForLoadOptions = getOperatorIdForLoadOptions;
|
|
6
|
+
const overrideOperatorProperty = {
|
|
7
|
+
displayName: '不使用凭证中的操作人',
|
|
8
|
+
name: 'overrideOperator',
|
|
9
|
+
type: 'boolean',
|
|
10
|
+
default: false,
|
|
11
|
+
description: '不使用凭证中的操作人,手动设置操作人unionId',
|
|
12
|
+
};
|
|
13
|
+
const operatorIdProperty = {
|
|
14
|
+
displayName: '操作人的unionId',
|
|
15
|
+
name: 'operatorId',
|
|
16
|
+
type: 'string',
|
|
17
|
+
default: '',
|
|
18
|
+
required: true,
|
|
19
|
+
placeholder: '可通过[用户管理 查询用户详情]获取指定用户的unionId',
|
|
20
|
+
displayOptions: {
|
|
21
|
+
show: {
|
|
22
|
+
overrideOperator: [true],
|
|
23
|
+
},
|
|
24
|
+
},
|
|
25
|
+
};
|
|
26
|
+
function operatorProps(displayOptions) {
|
|
27
|
+
return [
|
|
28
|
+
{
|
|
29
|
+
...overrideOperatorProperty,
|
|
30
|
+
displayOptions,
|
|
31
|
+
},
|
|
32
|
+
{
|
|
33
|
+
...operatorIdProperty,
|
|
34
|
+
displayOptions: {
|
|
35
|
+
...displayOptions,
|
|
36
|
+
show: {
|
|
37
|
+
...displayOptions.show,
|
|
38
|
+
overrideOperator: [true],
|
|
39
|
+
},
|
|
40
|
+
},
|
|
41
|
+
},
|
|
42
|
+
];
|
|
43
|
+
}
|
|
44
|
+
async function getOperatorId(ctx, itemIndex) {
|
|
45
|
+
const overrideOperator = ctx.getNodeParameter('overrideOperator', itemIndex, false);
|
|
46
|
+
if (overrideOperator) {
|
|
47
|
+
const nodeOperatorId = ctx.getNodeParameter('operatorId', itemIndex);
|
|
48
|
+
return nodeOperatorId;
|
|
49
|
+
}
|
|
50
|
+
else {
|
|
51
|
+
const credentials = await ctx.getCredentials('dingtalkApi');
|
|
52
|
+
return credentials.userUnionId || '';
|
|
53
|
+
}
|
|
54
|
+
}
|
|
55
|
+
async function getOperatorIdForLoadOptions(ctx) {
|
|
56
|
+
const overrideOperator = ctx.getNodeParameter('overrideOperator', undefined);
|
|
57
|
+
if (overrideOperator) {
|
|
58
|
+
const nodeOperatorId = ctx.getNodeParameter('operatorId', undefined);
|
|
59
|
+
return nodeOperatorId;
|
|
60
|
+
}
|
|
61
|
+
else {
|
|
62
|
+
const credentials = await ctx.getCredentials('dingtalkApi');
|
|
63
|
+
return credentials.userUnionId || '';
|
|
64
|
+
}
|
|
65
|
+
}
|
|
66
|
+
//# sourceMappingURL=operator.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"operator.js","sourceRoot":"","sources":["../../../../nodes/shared/properties/operator.ts"],"names":[],"mappings":";;AAyCA,sCAiBC;AAKD,sCAaC;AAKD,kEAaC;AApFD,MAAM,wBAAwB,GAAoB;IAChD,WAAW,EAAE,YAAY;IACzB,IAAI,EAAE,kBAAkB;IACxB,IAAI,EAAE,SAAS;IACf,OAAO,EAAE,KAAK;IAEd,WAAW,EAAE,2BAA2B;CACzC,CAAC;AAKF,MAAM,kBAAkB,GAAoB;IAC1C,WAAW,EAAE,aAAa;IAC1B,IAAI,EAAE,YAAY;IAClB,IAAI,EAAE,QAAQ;IACd,OAAO,EAAE,EAAE;IACX,QAAQ,EAAE,IAAI;IACd,WAAW,EAAE,gCAAgC;IAC7C,cAAc,EAAE;QACd,IAAI,EAAE;YACJ,gBAAgB,EAAE,CAAC,IAAI,CAAC;SACzB;KACF;CACF,CAAC;AAOF,SAAgB,aAAa,CAAC,cAA+B;IAC3D,OAAO;QACL;YACE,GAAG,wBAAwB;YAC3B,cAAc;SACf;QACD;YACE,GAAG,kBAAkB;YACrB,cAAc,EAAE;gBACd,GAAG,cAAc;gBACjB,IAAI,EAAE;oBACJ,GAAG,cAAc,CAAC,IAAI;oBACtB,gBAAgB,EAAE,CAAC,IAAI,CAAC;iBACzB;aACF;SACF;KACF,CAAC;AACJ,CAAC;AAKM,KAAK,UAAU,aAAa,CAAC,GAAsB,EAAE,SAAiB;IAE3E,MAAM,gBAAgB,GAAG,GAAG,CAAC,gBAAgB,CAAC,kBAAkB,EAAE,SAAS,EAAE,KAAK,CAAY,CAAC;IAE/F,IAAI,gBAAgB,EAAE,CAAC;QAErB,MAAM,cAAc,GAAG,GAAG,CAAC,gBAAgB,CAAC,YAAY,EAAE,SAAS,CAAW,CAAC;QAC/E,OAAO,cAAc,CAAC;IACxB,CAAC;SAAM,CAAC;QAEN,MAAM,WAAW,GAAG,MAAM,GAAG,CAAC,cAAc,CAAC,aAAa,CAAC,CAAC;QAC5D,OAAQ,WAAW,CAAC,WAAsB,IAAI,EAAE,CAAC;IACnD,CAAC;AACH,CAAC;AAKM,KAAK,UAAU,2BAA2B,CAAC,GAA0B;IAE1E,MAAM,gBAAgB,GAAG,GAAG,CAAC,gBAAgB,CAAC,kBAAkB,EAAE,SAAS,CAAY,CAAC;IAExF,IAAI,gBAAgB,EAAE,CAAC;QAErB,MAAM,cAAc,GAAG,GAAG,CAAC,gBAAgB,CAAC,YAAY,EAAE,SAAS,CAAW,CAAC;QAC/E,OAAO,cAAc,CAAC;IACxB,CAAC;SAAM,CAAC;QAEN,MAAM,WAAW,GAAG,MAAM,GAAG,CAAC,cAAc,CAAC,aAAa,CAAC,CAAC;QAC5D,OAAQ,WAAW,CAAC,WAAsB,IAAI,EAAE,CAAC;IACnD,CAAC;AACH,CAAC"}
|
|
@@ -44,6 +44,7 @@ async function originRequest(options, clearAccessToken = false) {
|
|
|
44
44
|
...defaultHeaders,
|
|
45
45
|
...options.headers,
|
|
46
46
|
},
|
|
47
|
+
qs: options.qs,
|
|
47
48
|
};
|
|
48
49
|
(_d = (_c = this.logger) === null || _c === void 0 ? void 0 : _c.debug) === null || _d === void 0 ? void 0 : _d.call(_c, 'request (before)', {
|
|
49
50
|
method: mergedOptions.method,
|
|
@@ -52,6 +53,7 @@ async function originRequest(options, clearAccessToken = false) {
|
|
|
52
53
|
qs: mergedOptions.qs,
|
|
53
54
|
headers: Object.keys(mergedOptions.headers),
|
|
54
55
|
json: mergedOptions.json,
|
|
56
|
+
body: mergedOptions.body,
|
|
55
57
|
});
|
|
56
58
|
const resp = await this.helpers.requestWithAuthentication.call(this, 'dingtalkApi', mergedOptions, {
|
|
57
59
|
credentialsDecrypted: {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"request.js","sourceRoot":"","sources":["../../../nodes/shared/request.ts"],"names":[],"mappings":";;
|
|
1
|
+
{"version":3,"file":"request.js","sourceRoot":"","sources":["../../../nodes/shared/request.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,15 +1,17 @@
|
|
|
1
|
-
import type { INodeProperties } from 'n8n-workflow';
|
|
1
|
+
import type { INodeProperties, INodeType } from 'n8n-workflow';
|
|
2
2
|
import type { OperationDef } from './operation';
|
|
3
|
+
export type MethodsBundle = Partial<NonNullable<INodeType['methods']>>;
|
|
3
4
|
export interface ResourceBundle {
|
|
4
5
|
value: string;
|
|
5
6
|
name: string;
|
|
6
7
|
operations: OperationDef[];
|
|
7
8
|
operationProperty: INodeProperties;
|
|
8
9
|
properties: INodeProperties[];
|
|
10
|
+
methods?: MethodsBundle;
|
|
9
11
|
}
|
|
10
|
-
export declare function loadOperationsFromDirSync(dir: string): OperationDef[];
|
|
11
12
|
export declare function makeResourceBundle(args: {
|
|
12
13
|
value: string;
|
|
13
14
|
name: string;
|
|
14
|
-
|
|
15
|
+
operations: OperationDef[];
|
|
16
|
+
methods?: MethodsBundle;
|
|
15
17
|
}): ResourceBundle;
|
|
@@ -1,42 +1,6 @@
|
|
|
1
1
|
"use strict";
|
|
2
|
-
var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
|
|
3
|
-
if (k2 === undefined) k2 = k;
|
|
4
|
-
var desc = Object.getOwnPropertyDescriptor(m, k);
|
|
5
|
-
if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
|
|
6
|
-
desc = { enumerable: true, get: function() { return m[k]; } };
|
|
7
|
-
}
|
|
8
|
-
Object.defineProperty(o, k2, desc);
|
|
9
|
-
}) : (function(o, m, k, k2) {
|
|
10
|
-
if (k2 === undefined) k2 = k;
|
|
11
|
-
o[k2] = m[k];
|
|
12
|
-
}));
|
|
13
|
-
var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
|
|
14
|
-
Object.defineProperty(o, "default", { enumerable: true, value: v });
|
|
15
|
-
}) : function(o, v) {
|
|
16
|
-
o["default"] = v;
|
|
17
|
-
});
|
|
18
|
-
var __importStar = (this && this.__importStar) || (function () {
|
|
19
|
-
var ownKeys = function(o) {
|
|
20
|
-
ownKeys = Object.getOwnPropertyNames || function (o) {
|
|
21
|
-
var ar = [];
|
|
22
|
-
for (var k in o) if (Object.prototype.hasOwnProperty.call(o, k)) ar[ar.length] = k;
|
|
23
|
-
return ar;
|
|
24
|
-
};
|
|
25
|
-
return ownKeys(o);
|
|
26
|
-
};
|
|
27
|
-
return function (mod) {
|
|
28
|
-
if (mod && mod.__esModule) return mod;
|
|
29
|
-
var result = {};
|
|
30
|
-
if (mod != null) for (var k = ownKeys(mod), i = 0; i < k.length; i++) if (k[i] !== "default") __createBinding(result, mod, k[i]);
|
|
31
|
-
__setModuleDefault(result, mod);
|
|
32
|
-
return result;
|
|
33
|
-
};
|
|
34
|
-
})();
|
|
35
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
36
|
-
exports.loadOperationsFromDirSync = loadOperationsFromDirSync;
|
|
37
3
|
exports.makeResourceBundle = makeResourceBundle;
|
|
38
|
-
const fs = __importStar(require("node:fs"));
|
|
39
|
-
const path = __importStar(require("node:path"));
|
|
40
4
|
function attachResourceShow(props, resource) {
|
|
41
5
|
return props.map((p) => {
|
|
42
6
|
var _a, _b, _c;
|
|
@@ -54,48 +18,33 @@ function attachResourceShow(props, resource) {
|
|
|
54
18
|
};
|
|
55
19
|
});
|
|
56
20
|
}
|
|
57
|
-
function
|
|
58
|
-
var _a
|
|
59
|
-
const
|
|
60
|
-
|
|
61
|
-
|
|
62
|
-
|
|
63
|
-
|
|
64
|
-
|
|
65
|
-
continue;
|
|
66
|
-
const file = path.join(dir, e.name);
|
|
67
|
-
if (!file.endsWith('.js'))
|
|
68
|
-
continue;
|
|
69
|
-
if (path.basename(file).startsWith('index.'))
|
|
70
|
-
continue;
|
|
71
|
-
const mod = require(file);
|
|
72
|
-
const def = (_b = (_a = mod.default) !== null && _a !== void 0 ? _a : mod.op) !== null && _b !== void 0 ? _b : mod.operation;
|
|
73
|
-
if (!def || typeof def !== 'object')
|
|
74
|
-
continue;
|
|
75
|
-
const od = def;
|
|
76
|
-
if (typeof od.value === 'string' &&
|
|
77
|
-
typeof od.name === 'string' &&
|
|
78
|
-
Array.isArray(od.properties) &&
|
|
79
|
-
typeof od.run === 'function') {
|
|
80
|
-
ops.push(od);
|
|
21
|
+
function processOperations(operations) {
|
|
22
|
+
var _a;
|
|
23
|
+
for (const od of operations) {
|
|
24
|
+
if (typeof od.value !== 'string' ||
|
|
25
|
+
typeof od.name !== 'string' ||
|
|
26
|
+
!Array.isArray(od.properties) ||
|
|
27
|
+
typeof od.run !== 'function') {
|
|
28
|
+
throw new Error(`Invalid operation definition: ${JSON.stringify({ value: od.value, name: od.name })}`);
|
|
81
29
|
}
|
|
82
30
|
}
|
|
83
31
|
const seen = {};
|
|
84
|
-
for (const o of
|
|
85
|
-
seen[o.value] = ((
|
|
32
|
+
for (const o of operations)
|
|
33
|
+
seen[o.value] = ((_a = seen[o.value]) !== null && _a !== void 0 ? _a : 0) + 1;
|
|
86
34
|
if (Object.values(seen).some((c) => c > 1)) {
|
|
87
35
|
const dupList = Object.entries(seen)
|
|
88
36
|
.filter(([, c]) => c > 1)
|
|
89
37
|
.map(([v, c]) => `${v} x${c}`)
|
|
90
38
|
.join(', ');
|
|
91
|
-
throw new Error(`Duplicate operations
|
|
39
|
+
throw new Error(`Duplicate operations: ${dupList}`);
|
|
92
40
|
}
|
|
93
|
-
|
|
94
|
-
|
|
41
|
+
const sorted = [...operations];
|
|
42
|
+
sorted.sort((a, b) => a.value.localeCompare(b.value, 'zh-Hans-CN'));
|
|
43
|
+
return sorted;
|
|
95
44
|
}
|
|
96
45
|
function makeResourceBundle(args) {
|
|
97
|
-
const { value, name,
|
|
98
|
-
const operations =
|
|
46
|
+
const { value, name, methods } = args;
|
|
47
|
+
const operations = processOperations(args.operations);
|
|
99
48
|
const operationProperty = {
|
|
100
49
|
displayName: 'Operation',
|
|
101
50
|
name: 'operation',
|
|
@@ -114,6 +63,6 @@ function makeResourceBundle(args) {
|
|
|
114
63
|
default: '',
|
|
115
64
|
};
|
|
116
65
|
const properties = attachResourceShow(operations.flatMap((o) => o.properties), value);
|
|
117
|
-
return { value, name, operations, operationProperty, properties };
|
|
66
|
+
return { value, name, operations, operationProperty, properties, methods };
|
|
118
67
|
}
|
|
119
68
|
//# sourceMappingURL=resource.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"resource.js","sourceRoot":"","sources":["../../../nodes/shared/resource.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"resource.js","sourceRoot":"","sources":["../../../nodes/shared/resource.ts"],"names":[],"mappings":";;AAmEA,gDA8BC;AAlFD,SAAS,kBAAkB,CAAC,KAAwB,EAAE,QAAgB;IACpE,OAAO,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE;;QACrB,MAAM,OAAO,GAAG,MAAA,MAAA,CAAC,CAAC,cAAc,0CAAE,IAAI,mCAAI,EAAE,CAAC;QAC7C,MAAM,UAAU,GAAI,OAAmC,CAAC,QAAgC,CAAC;QACzF,MAAM,OAAO,GAAG,KAAK,CAAC,OAAO,CAAC,UAAU,CAAC;YACvC,CAAC,CAAC,KAAK,CAAC,IAAI,CAAC,IAAI,GAAG,CAAC,CAAC,GAAG,UAAU,EAAE,QAAQ,CAAC,CAAC,CAAC;YAChD,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC;QAEf,OAAO;YACL,GAAG,CAAC;YACJ,cAAc,EAAE;gBACd,GAAG,CAAC,MAAA,CAAC,CAAC,cAAc,mCAAI,EAAE,CAAC;gBAC3B,IAAI,EAAE,EAAE,GAAG,OAAO,EAAE,QAAQ,EAAE,OAAO,EAAE;aACxC;SACF,CAAC;IACJ,CAAC,CAAC,CAAC;AACL,CAAC;AAGD,SAAS,iBAAiB,CAAC,UAA0B;;IAEnD,KAAK,MAAM,EAAE,IAAI,UAAU,EAAE,CAAC;QAC5B,IACE,OAAO,EAAE,CAAC,KAAK,KAAK,QAAQ;YAC5B,OAAO,EAAE,CAAC,IAAI,KAAK,QAAQ;YAC3B,CAAC,KAAK,CAAC,OAAO,CAAC,EAAE,CAAC,UAAU,CAAC;YAC7B,OAAO,EAAE,CAAC,GAAG,KAAK,UAAU,EAC5B,CAAC;YACD,MAAM,IAAI,KAAK,CACb,iCAAiC,IAAI,CAAC,SAAS,CAAC,EAAE,KAAK,EAAE,EAAE,CAAC,KAAK,EAAE,IAAI,EAAE,EAAE,CAAC,IAAI,EAAE,CAAC,EAAE,CACtF,CAAC;QACJ,CAAC;IACH,CAAC;IAGD,MAAM,IAAI,GAA2B,EAAE,CAAC;IACxC,KAAK,MAAM,CAAC,IAAI,UAAU;QAAE,IAAI,CAAC,CAAC,CAAC,KAAK,CAAC,GAAG,CAAC,MAAA,IAAI,CAAC,CAAC,CAAC,KAAK,CAAC,mCAAI,CAAC,CAAC,GAAG,CAAC,CAAC;IACrE,IAAI,MAAM,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,GAAG,CAAC,CAAC,EAAE,CAAC;QAC3C,MAAM,OAAO,GAAG,MAAM,CAAC,OAAO,CAAC,IAAI,CAAC;aACjC,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,GAAG,CAAC,CAAC;aACxB,GAAG,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,EAAE,CAAC,GAAG,CAAC,KAAK,CAAC,EAAE,CAAC;aAC7B,IAAI,CAAC,IAAI,CAAC,CAAC;QACd,MAAM,IAAI,KAAK,CAAC,yBAAyB,OAAO,EAAE,CAAC,CAAC;IACtD,CAAC;IAGD,MAAM,MAAM,GAAG,CAAC,GAAG,UAAU,CAAC,CAAC;IAC/B,MAAM,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,KAAK,CAAC,aAAa,CAAC,CAAC,CAAC,KAAK,EAAE,YAAY,CAAC,CAAC,CAAC;IACpE,OAAO,MAAM,CAAC;AAChB,CAAC;AAGD,SAAgB,kBAAkB,CAAC,IAKlC;IACC,MAAM,EAAE,KAAK,EAAE,IAAI,EAAE,OAAO,EAAE,GAAG,IAAI,CAAC;IACtC,MAAM,UAAU,GAAG,iBAAiB,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC;IAEtD,MAAM,iBAAiB,GAAoB;QACzC,WAAW,EAAE,WAAW;QACxB,IAAI,EAAE,WAAW;QACjB,IAAI,EAAE,SAAS;QACf,gBAAgB,EAAE,IAAI;QACtB,cAAc,EAAE,EAAE,IAAI,EAAE,EAAE,QAAQ,EAAE,CAAC,KAAK,CAAC,EAAE,EAAE;QAC/C,OAAO,EAAE,UAAU,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE;;YAAC,OAAA,CAAC;gBAC9B,IAAI,EAAE,CAAC,CAAC,IAAI;gBACZ,KAAK,EAAE,CAAC,CAAC,KAAK;gBACd,MAAM,EAAE,GAAG,IAAI,IAAI,MAAA,CAAC,CAAC,MAAM,mCAAI,CAAC,CAAC,IAAI,EAAE;gBACvC,WAAW,EAAE,CAAC,CAAC,WAAW;aAC3B,CAAC,CAAA;SAAA,CAAC;QACH,OAAO,EAAE,EAAE;KACZ,CAAC;IAEF,MAAM,UAAU,GAAG,kBAAkB,CACnC,UAAU,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,UAAU,CAAC,EACvC,KAAK,CACN,CAAC;IAEF,OAAO,EAAE,KAAK,EAAE,IAAI,EAAE,UAAU,EAAE,iBAAiB,EAAE,UAAU,EAAE,OAAO,EAAE,CAAC;AAC7E,CAAC"}
|