n8n-nodes-base 1.20.0 → 1.21.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +1 -1
- package/dist/build.tsbuildinfo +1 -1
- package/dist/known/nodes.json +24 -0
- package/dist/nodes/Airtable/v2/methods/listSearch.js +1 -1
- package/dist/nodes/Airtable/v2/methods/listSearch.js.map +1 -1
- package/dist/nodes/Airtable/v2/methods/loadOptions.js +2 -2
- package/dist/nodes/Airtable/v2/methods/loadOptions.js.map +1 -1
- package/dist/nodes/Airtable/v2/methods/resourceMapping.js +1 -1
- package/dist/nodes/Airtable/v2/methods/resourceMapping.js.map +1 -1
- package/dist/nodes/Code/Code.node.json +1 -1
- package/dist/nodes/CompareDatasets/CompareDatasets.node.json +1 -1
- package/dist/nodes/CompareDatasets/GenericFunctions.js +6 -5
- package/dist/nodes/CompareDatasets/GenericFunctions.js.map +1 -1
- package/dist/nodes/Crypto/Crypto.node.json +1 -1
- package/dist/nodes/DateTime/DateTime.node.json +1 -1
- package/dist/nodes/DateTime/V2/DateTimeV2.node.js +1 -0
- package/dist/nodes/DateTime/V2/DateTimeV2.node.js.map +1 -1
- package/dist/nodes/EmailReadImap/EmailReadImap.node.json +1 -1
- package/dist/nodes/EmailSend/EmailSend.node.json +0 -3
- package/dist/nodes/ErrorTrigger/ErrorTrigger.node.json +1 -1
- package/dist/nodes/ExecuteWorkflow/ExecuteWorkflow.node.json +1 -1
- package/dist/nodes/Facebook/FacebookTrigger.node.js +1 -1
- package/dist/nodes/Facebook/FacebookTrigger.node.js.map +1 -1
- package/dist/nodes/FacebookLeadAds/FacebookLeadAdsTrigger.node.js +1 -1
- package/dist/nodes/FacebookLeadAds/FacebookLeadAdsTrigger.node.js.map +1 -1
- package/dist/nodes/FileMaker/FileMaker.node.js +2 -0
- package/dist/nodes/FileMaker/FileMaker.node.js.map +1 -1
- package/dist/nodes/Filter/Filter.node.js +1 -1
- package/dist/nodes/Filter/Filter.node.js.map +1 -1
- package/dist/nodes/Filter/Filter.node.json +1 -1
- package/dist/nodes/Form/FormTrigger.node.d.ts +3 -4
- package/dist/nodes/Form/FormTrigger.node.js +9 -247
- package/dist/nodes/Form/FormTrigger.node.js.map +1 -1
- package/dist/nodes/Form/FormTrigger.node.json +1 -1
- package/dist/nodes/Form/common.descriptions.d.ts +18 -0
- package/dist/nodes/Form/common.descriptions.js +237 -0
- package/dist/nodes/Form/common.descriptions.js.map +1 -0
- package/dist/nodes/Form/interfaces.d.ts +2 -0
- package/dist/nodes/Form/utils.d.ts +11 -1
- package/dist/nodes/Form/utils.js +70 -2
- package/dist/nodes/Form/utils.js.map +1 -1
- package/dist/nodes/Form/v1/FormTriggerV1.node.d.ts +14 -0
- package/dist/nodes/Form/v1/FormTriggerV1.node.js +82 -0
- package/dist/nodes/Form/v1/FormTriggerV1.node.js.map +1 -0
- package/dist/nodes/Form/v2/FormTriggerV2.node.d.ts +14 -0
- package/dist/nodes/Form/v2/FormTriggerV2.node.js +84 -0
- package/dist/nodes/Form/v2/FormTriggerV2.node.js.map +1 -0
- package/dist/nodes/Github/GithubTrigger.node.js +2 -2
- package/dist/nodes/Github/GithubTrigger.node.js.map +1 -1
- package/dist/nodes/Google/Ads/CampaignDescription.js +2 -2
- package/dist/nodes/Google/Ads/GoogleAds.node.js +1 -1
- package/dist/nodes/Google/BigQuery/v2/actions/database/insert.operation.js +1 -1
- package/dist/nodes/Google/BigQuery/v2/actions/database/insert.operation.js.map +1 -1
- package/dist/nodes/Google/Sheet/v2/actions/sheet/append.operation.js +1 -1
- package/dist/nodes/Google/Sheet/v2/actions/sheet/append.operation.js.map +1 -1
- package/dist/nodes/Google/Sheet/v2/helpers/GoogleSheet.js +1 -1
- package/dist/nodes/Google/Sheet/v2/helpers/GoogleSheet.js.map +1 -1
- package/dist/nodes/Google/Sheet/v2/helpers/GoogleSheets.utils.js +1 -1
- package/dist/nodes/Google/Sheet/v2/helpers/GoogleSheets.utils.js.map +1 -1
- package/dist/nodes/Google/Sheet/v2/methods/listSearch.js +4 -1
- package/dist/nodes/Google/Sheet/v2/methods/listSearch.js.map +1 -1
- package/dist/nodes/Google/Sheet/v2/methods/resourceMapping.js +4 -1
- package/dist/nodes/Google/Sheet/v2/methods/resourceMapping.js.map +1 -1
- package/dist/nodes/Html/Html.node.json +1 -1
- package/dist/nodes/If/If.node.d.ts +3 -4
- package/dist/nodes/If/If.node.js +10 -406
- package/dist/nodes/If/If.node.js.map +1 -1
- package/dist/nodes/If/V1/IfV1.node.d.ts +6 -0
- package/dist/nodes/If/V1/IfV1.node.js +414 -0
- package/dist/nodes/If/V1/IfV1.node.js.map +1 -0
- package/dist/nodes/If/V2/IfV2.node.d.ts +6 -0
- package/dist/nodes/If/V2/IfV2.node.js +101 -0
- package/dist/nodes/If/V2/IfV2.node.js.map +1 -0
- package/dist/nodes/If/test/v2/IfV2.date-time.json +163 -0
- package/dist/nodes/If/test/v2/IfV2.number.json +165 -0
- package/dist/nodes/If/test/v2/IfV2.other.json +182 -0
- package/dist/nodes/If/test/v2/IfV2.string.json +178 -0
- package/dist/nodes/ItemLists/ItemLists.node.js +1 -0
- package/dist/nodes/ItemLists/ItemLists.node.js.map +1 -1
- package/dist/nodes/Kafka/Kafka.node.js +3 -1
- package/dist/nodes/Kafka/Kafka.node.js.map +1 -1
- package/dist/nodes/LocalFileTrigger/LocalFileTrigger.node.js +24 -1
- package/dist/nodes/LocalFileTrigger/LocalFileTrigger.node.js.map +1 -1
- package/dist/nodes/Markdown/Markdown.node.json +1 -1
- package/dist/nodes/Merge/Merge.node.json +1 -1
- package/dist/nodes/Merge/v2/MergeV2.node.js +1 -1
- package/dist/nodes/Merge/v2/MergeV2.node.js.map +1 -1
- package/dist/nodes/MySql/v2/actions/database/insert.operation.js +1 -1
- package/dist/nodes/MySql/v2/actions/database/update.operation.js +1 -1
- package/dist/nodes/MySql/v2/actions/database/upsert.operation.js +1 -1
- package/dist/nodes/N8n/N8n.node.json +1 -1
- package/dist/nodes/NocoDB/OperationDescription.js +1 -1
- package/dist/nodes/NocoDB/OperationDescription.js.map +1 -1
- package/dist/nodes/OpenAi/OpenAi.node.js +6 -0
- package/dist/nodes/OpenAi/OpenAi.node.js.map +1 -1
- package/dist/nodes/Postgres/PostgresTrigger.node.js +1 -1
- package/dist/nodes/Postgres/v2/actions/database/insert.operation.js +1 -1
- package/dist/nodes/Postgres/v2/actions/database/update.operation.js +1 -1
- package/dist/nodes/Postgres/v2/actions/database/upsert.operation.js +1 -1
- package/dist/nodes/Postgres/v2/helpers/utils.d.ts +2 -2
- package/dist/nodes/Postgres/v2/methods/resourceMapping.js +1 -1
- package/dist/nodes/Postgres/v2/methods/resourceMapping.js.map +1 -1
- package/dist/nodes/RenameKeys/RenameKeys.node.js +1 -1
- package/dist/nodes/RenameKeys/RenameKeys.node.js.map +1 -1
- package/dist/nodes/RespondToWebhook/RespondToWebhook.node.js +26 -2
- package/dist/nodes/RespondToWebhook/RespondToWebhook.node.js.map +1 -1
- package/dist/nodes/RespondToWebhook/RespondToWebhook.node.json +1 -1
- package/dist/nodes/RssFeedRead/RssFeedRead.node.json +0 -3
- package/dist/nodes/Schedule/ScheduleTrigger.node.json +1 -4
- package/dist/nodes/Set/v2/SetV2.node.js +1 -1
- package/dist/nodes/Slack/V2/GenericFunctions.js +2 -2
- package/dist/nodes/Slack/V2/GenericFunctions.js.map +1 -1
- package/dist/nodes/SseTrigger/SseTrigger.node.json +1 -1
- package/dist/nodes/StopAndError/StopAndError.node.json +1 -1
- package/dist/nodes/TheHive/GenericFunctions.js +1 -1
- package/dist/nodes/TheHive/GenericFunctions.js.map +1 -1
- package/dist/nodes/Transform/Aggregate/Aggregate.node.d.ts +5 -0
- package/dist/nodes/Transform/Aggregate/Aggregate.node.js +365 -0
- package/dist/nodes/Transform/Aggregate/Aggregate.node.js.map +1 -0
- package/dist/nodes/Transform/Aggregate/Aggregate.node.json +19 -0
- package/dist/nodes/Transform/Aggregate/aggregate.svg +14 -0
- package/dist/nodes/Transform/Aggregate/test/workflow.aggregate.json +207 -0
- package/dist/nodes/Transform/Aggregate/utils.d.ts +2 -0
- package/dist/nodes/Transform/Aggregate/utils.js +48 -0
- package/dist/nodes/Transform/Aggregate/utils.js.map +1 -0
- package/dist/nodes/Transform/Limit/Limit.node.d.ts +5 -0
- package/dist/nodes/Transform/Limit/Limit.node.js +68 -0
- package/dist/nodes/Transform/Limit/Limit.node.js.map +1 -0
- package/dist/nodes/Transform/Limit/Limit.node.json +19 -0
- package/dist/nodes/Transform/Limit/limit.svg +16 -0
- package/dist/nodes/Transform/Limit/test/workflow.limit.json +97 -0
- package/dist/nodes/Transform/RemoveDuplicates/RemoveDuplicates.node.d.ts +5 -0
- package/dist/nodes/Transform/RemoveDuplicates/RemoveDuplicates.node.js +221 -0
- package/dist/nodes/Transform/RemoveDuplicates/RemoveDuplicates.node.js.map +1 -0
- package/dist/nodes/Transform/RemoveDuplicates/RemoveDuplicates.node.json +29 -0
- package/dist/nodes/Transform/RemoveDuplicates/removeDuplicates.svg +15 -0
- package/dist/nodes/Transform/RemoveDuplicates/test/workflow.removeDuplicates.json +325 -0
- package/dist/nodes/Transform/RemoveDuplicates/utils.d.ts +3 -0
- package/dist/nodes/Transform/RemoveDuplicates/utils.js +37 -0
- package/dist/nodes/Transform/RemoveDuplicates/utils.js.map +1 -0
- package/dist/nodes/Transform/Sort/Sort.node.d.ts +5 -0
- package/dist/nodes/Transform/Sort/Sort.node.js +257 -0
- package/dist/nodes/Transform/Sort/Sort.node.js.map +1 -0
- package/dist/nodes/Transform/Sort/Sort.node.json +19 -0
- package/dist/nodes/Transform/Sort/sort.svg +6 -0
- package/dist/nodes/Transform/Sort/test/workflow.sort.json +213 -0
- package/dist/nodes/Transform/Sort/utils.d.ts +3 -0
- package/dist/nodes/Transform/Sort/utils.js +27 -0
- package/dist/nodes/Transform/Sort/utils.js.map +1 -0
- package/dist/nodes/Transform/SplitOut/SplitOut.node.d.ts +5 -0
- package/dist/nodes/Transform/SplitOut/SplitOut.node.js +223 -0
- package/dist/nodes/Transform/SplitOut/SplitOut.node.js.map +1 -0
- package/dist/nodes/Transform/SplitOut/SplitOut.node.json +19 -0
- package/dist/nodes/Transform/SplitOut/splitOut.svg +14 -0
- package/dist/nodes/Transform/SplitOut/test/workflow.splitOut.json +354 -0
- package/dist/nodes/Transform/SplitOut/test/workflow.splitOutObject.json +386 -0
- package/dist/nodes/Transform/Summarize/Summarize.node.d.ts +5 -0
- package/dist/nodes/Transform/Summarize/Summarize.node.js +311 -0
- package/dist/nodes/Transform/Summarize/Summarize.node.js.map +1 -0
- package/dist/nodes/Transform/Summarize/Summarize.node.json +32 -0
- package/dist/nodes/Transform/Summarize/summarize.svg +10 -0
- package/dist/nodes/Transform/Summarize/test/workflow.summarize.json +296 -0
- package/dist/nodes/Transform/Summarize/utils.d.ts +22 -0
- package/dist/nodes/Transform/Summarize/utils.js +206 -0
- package/dist/nodes/Transform/Summarize/utils.js.map +1 -0
- package/dist/nodes/Transform/utils/utils.d.ts +1 -0
- package/dist/nodes/Transform/utils/utils.js +18 -0
- package/dist/nodes/Transform/utils/utils.js.map +1 -0
- package/dist/nodes/Wait/Wait.node.d.ts +3 -2
- package/dist/nodes/Wait/Wait.node.js +199 -129
- package/dist/nodes/Wait/Wait.node.js.map +1 -1
- package/dist/nodes/Wait/Wait.node.json +1 -1
- package/dist/nodes/Webhook/Webhook.node.js +26 -10
- package/dist/nodes/Webhook/Webhook.node.js.map +1 -1
- package/dist/nodes/Webhook/Webhook.node.json +1 -1
- package/dist/nodes/Webhook/description.js +31 -2
- package/dist/nodes/Webhook/description.js.map +1 -1
- package/dist/types/nodes.json +74 -66
- package/package.json +10 -4
- /package/dist/nodes/If/test/{IF.boolean.json → v1/IF.boolean.json} +0 -0
- /package/dist/nodes/If/test/{IF.date-time.json → v1/IF.date-time.json} +0 -0
- /package/dist/nodes/If/test/{IF.number.json → v1/IF.number.json} +0 -0
- /package/dist/nodes/If/test/{IF.string.json → v1/IF.string.json} +0 -0
|
@@ -0,0 +1,257 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
3
|
+
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
4
|
+
};
|
|
5
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
6
|
+
exports.Sort = void 0;
|
|
7
|
+
const get_1 = __importDefault(require("lodash/get"));
|
|
8
|
+
const isEqual_1 = __importDefault(require("lodash/isEqual"));
|
|
9
|
+
const lt_1 = __importDefault(require("lodash/lt"));
|
|
10
|
+
const n8n_workflow_1 = require("n8n-workflow");
|
|
11
|
+
const utils_1 = require("./utils");
|
|
12
|
+
class Sort {
|
|
13
|
+
constructor() {
|
|
14
|
+
this.description = {
|
|
15
|
+
displayName: 'Sort',
|
|
16
|
+
name: 'sort',
|
|
17
|
+
icon: 'file:sort.svg',
|
|
18
|
+
group: ['transform'],
|
|
19
|
+
subtitle: '',
|
|
20
|
+
version: 1,
|
|
21
|
+
description: 'Change items order',
|
|
22
|
+
defaults: {
|
|
23
|
+
name: 'Sort',
|
|
24
|
+
},
|
|
25
|
+
inputs: ['main'],
|
|
26
|
+
outputs: ['main'],
|
|
27
|
+
properties: [
|
|
28
|
+
{
|
|
29
|
+
displayName: 'Type',
|
|
30
|
+
name: 'type',
|
|
31
|
+
type: 'options',
|
|
32
|
+
options: [
|
|
33
|
+
{
|
|
34
|
+
name: 'Simple',
|
|
35
|
+
value: 'simple',
|
|
36
|
+
},
|
|
37
|
+
{
|
|
38
|
+
name: 'Random',
|
|
39
|
+
value: 'random',
|
|
40
|
+
},
|
|
41
|
+
{
|
|
42
|
+
name: 'Code',
|
|
43
|
+
value: 'code',
|
|
44
|
+
},
|
|
45
|
+
],
|
|
46
|
+
default: 'simple',
|
|
47
|
+
description: 'The fields of the input items to compare to see if they are the same',
|
|
48
|
+
},
|
|
49
|
+
{
|
|
50
|
+
displayName: 'Fields To Sort By',
|
|
51
|
+
name: 'sortFieldsUi',
|
|
52
|
+
type: 'fixedCollection',
|
|
53
|
+
typeOptions: {
|
|
54
|
+
multipleValues: true,
|
|
55
|
+
},
|
|
56
|
+
placeholder: 'Add Field To Sort By',
|
|
57
|
+
options: [
|
|
58
|
+
{
|
|
59
|
+
displayName: '',
|
|
60
|
+
name: 'sortField',
|
|
61
|
+
values: [
|
|
62
|
+
{
|
|
63
|
+
displayName: 'Field Name',
|
|
64
|
+
name: 'fieldName',
|
|
65
|
+
type: 'string',
|
|
66
|
+
required: true,
|
|
67
|
+
default: '',
|
|
68
|
+
description: 'The field to sort by',
|
|
69
|
+
placeholder: 'e.g. id',
|
|
70
|
+
hint: ' Enter the field name as text',
|
|
71
|
+
requiresDataPath: 'single',
|
|
72
|
+
},
|
|
73
|
+
{
|
|
74
|
+
displayName: 'Order',
|
|
75
|
+
name: 'order',
|
|
76
|
+
type: 'options',
|
|
77
|
+
options: [
|
|
78
|
+
{
|
|
79
|
+
name: 'Ascending',
|
|
80
|
+
value: 'ascending',
|
|
81
|
+
},
|
|
82
|
+
{
|
|
83
|
+
name: 'Descending',
|
|
84
|
+
value: 'descending',
|
|
85
|
+
},
|
|
86
|
+
],
|
|
87
|
+
default: 'ascending',
|
|
88
|
+
description: 'The order to sort by',
|
|
89
|
+
},
|
|
90
|
+
],
|
|
91
|
+
},
|
|
92
|
+
],
|
|
93
|
+
default: {},
|
|
94
|
+
description: 'The fields of the input items to compare to see if they are the same',
|
|
95
|
+
displayOptions: {
|
|
96
|
+
show: {
|
|
97
|
+
type: ['simple'],
|
|
98
|
+
},
|
|
99
|
+
},
|
|
100
|
+
},
|
|
101
|
+
{
|
|
102
|
+
displayName: 'Code',
|
|
103
|
+
name: 'code',
|
|
104
|
+
type: 'string',
|
|
105
|
+
typeOptions: {
|
|
106
|
+
alwaysOpenEditWindow: true,
|
|
107
|
+
editor: 'code',
|
|
108
|
+
rows: 10,
|
|
109
|
+
},
|
|
110
|
+
default: `// The two items to compare are in the variables a and b
|
|
111
|
+
// Access the fields in a.json and b.json
|
|
112
|
+
// Return -1 if a should go before b
|
|
113
|
+
// Return 1 if b should go before a
|
|
114
|
+
// Return 0 if there's no difference
|
|
115
|
+
|
|
116
|
+
fieldName = 'myField';
|
|
117
|
+
|
|
118
|
+
if (a.json[fieldName] < b.json[fieldName]) {
|
|
119
|
+
return -1;
|
|
120
|
+
}
|
|
121
|
+
if (a.json[fieldName] > b.json[fieldName]) {
|
|
122
|
+
return 1;
|
|
123
|
+
}
|
|
124
|
+
return 0;`,
|
|
125
|
+
description: 'Javascript code to determine the order of any two items',
|
|
126
|
+
displayOptions: {
|
|
127
|
+
show: {
|
|
128
|
+
type: ['code'],
|
|
129
|
+
},
|
|
130
|
+
},
|
|
131
|
+
},
|
|
132
|
+
{
|
|
133
|
+
displayName: 'Options',
|
|
134
|
+
name: 'options',
|
|
135
|
+
type: 'collection',
|
|
136
|
+
placeholder: 'Add Field',
|
|
137
|
+
default: {},
|
|
138
|
+
displayOptions: {
|
|
139
|
+
show: {
|
|
140
|
+
type: ['simple'],
|
|
141
|
+
},
|
|
142
|
+
},
|
|
143
|
+
options: [
|
|
144
|
+
{
|
|
145
|
+
displayName: 'Disable Dot Notation',
|
|
146
|
+
name: 'disableDotNotation',
|
|
147
|
+
type: 'boolean',
|
|
148
|
+
default: false,
|
|
149
|
+
description: 'Whether to disallow referencing child fields using `parent.child` in the field name',
|
|
150
|
+
},
|
|
151
|
+
],
|
|
152
|
+
},
|
|
153
|
+
],
|
|
154
|
+
};
|
|
155
|
+
}
|
|
156
|
+
async execute() {
|
|
157
|
+
const items = this.getInputData();
|
|
158
|
+
let returnData = [...items];
|
|
159
|
+
const type = this.getNodeParameter('type', 0);
|
|
160
|
+
const disableDotNotation = this.getNodeParameter('options.disableDotNotation', 0, false);
|
|
161
|
+
if (type === 'random') {
|
|
162
|
+
(0, utils_1.shuffleArray)(returnData);
|
|
163
|
+
return [returnData];
|
|
164
|
+
}
|
|
165
|
+
if (type === 'simple') {
|
|
166
|
+
const sortFieldsUi = this.getNodeParameter('sortFieldsUi', 0);
|
|
167
|
+
const sortFields = sortFieldsUi.sortField;
|
|
168
|
+
if (!(sortFields === null || sortFields === void 0 ? void 0 : sortFields.length)) {
|
|
169
|
+
throw new n8n_workflow_1.NodeOperationError(this.getNode(), 'No sorting specified. Please add a field to sort by');
|
|
170
|
+
}
|
|
171
|
+
for (const { fieldName } of sortFields) {
|
|
172
|
+
let found = false;
|
|
173
|
+
for (const item of items) {
|
|
174
|
+
if (!disableDotNotation) {
|
|
175
|
+
if ((0, get_1.default)(item.json, fieldName) !== undefined) {
|
|
176
|
+
found = true;
|
|
177
|
+
}
|
|
178
|
+
}
|
|
179
|
+
else if (item.json.hasOwnProperty(fieldName)) {
|
|
180
|
+
found = true;
|
|
181
|
+
}
|
|
182
|
+
}
|
|
183
|
+
if (!found && disableDotNotation && fieldName.includes('.')) {
|
|
184
|
+
throw new n8n_workflow_1.NodeOperationError(this.getNode(), `Couldn't find the field '${fieldName}' in the input data`, {
|
|
185
|
+
description: "If you're trying to use a nested field, make sure you turn off 'disable dot notation' in the node options",
|
|
186
|
+
});
|
|
187
|
+
}
|
|
188
|
+
else if (!found) {
|
|
189
|
+
throw new n8n_workflow_1.NodeOperationError(this.getNode(), `Couldn't find the field '${fieldName}' in the input data`);
|
|
190
|
+
}
|
|
191
|
+
}
|
|
192
|
+
const sortFieldsWithDirection = sortFields.map((field) => ({
|
|
193
|
+
name: field.fieldName,
|
|
194
|
+
dir: field.order === 'ascending' ? 1 : -1,
|
|
195
|
+
}));
|
|
196
|
+
returnData.sort((a, b) => {
|
|
197
|
+
let result = 0;
|
|
198
|
+
for (const field of sortFieldsWithDirection) {
|
|
199
|
+
let equal;
|
|
200
|
+
if (!disableDotNotation) {
|
|
201
|
+
const _a = typeof (0, get_1.default)(a.json, field.name) === 'string'
|
|
202
|
+
? (0, get_1.default)(a.json, field.name).toLowerCase()
|
|
203
|
+
: (0, get_1.default)(a.json, field.name);
|
|
204
|
+
const _b = typeof (0, get_1.default)(b.json, field.name) === 'string'
|
|
205
|
+
? (0, get_1.default)(b.json, field.name).toLowerCase()
|
|
206
|
+
: (0, get_1.default)(b.json, field.name);
|
|
207
|
+
equal = (0, isEqual_1.default)(_a, _b);
|
|
208
|
+
}
|
|
209
|
+
else {
|
|
210
|
+
const _a = typeof a.json[field.name] === 'string'
|
|
211
|
+
? a.json[field.name].toLowerCase()
|
|
212
|
+
: a.json[field.name];
|
|
213
|
+
const _b = typeof b.json[field.name] === 'string'
|
|
214
|
+
? b.json[field.name].toLowerCase()
|
|
215
|
+
: b.json[field.name];
|
|
216
|
+
equal = (0, isEqual_1.default)(_a, _b);
|
|
217
|
+
}
|
|
218
|
+
if (!equal) {
|
|
219
|
+
let lessThan;
|
|
220
|
+
if (!disableDotNotation) {
|
|
221
|
+
const _a = typeof (0, get_1.default)(a.json, field.name) === 'string'
|
|
222
|
+
? (0, get_1.default)(a.json, field.name).toLowerCase()
|
|
223
|
+
: (0, get_1.default)(a.json, field.name);
|
|
224
|
+
const _b = typeof (0, get_1.default)(b.json, field.name) === 'string'
|
|
225
|
+
? (0, get_1.default)(b.json, field.name).toLowerCase()
|
|
226
|
+
: (0, get_1.default)(b.json, field.name);
|
|
227
|
+
lessThan = (0, lt_1.default)(_a, _b);
|
|
228
|
+
}
|
|
229
|
+
else {
|
|
230
|
+
const _a = typeof a.json[field.name] === 'string'
|
|
231
|
+
? a.json[field.name].toLowerCase()
|
|
232
|
+
: a.json[field.name];
|
|
233
|
+
const _b = typeof b.json[field.name] === 'string'
|
|
234
|
+
? b.json[field.name].toLowerCase()
|
|
235
|
+
: b.json[field.name];
|
|
236
|
+
lessThan = (0, lt_1.default)(_a, _b);
|
|
237
|
+
}
|
|
238
|
+
if (lessThan) {
|
|
239
|
+
result = -1 * field.dir;
|
|
240
|
+
}
|
|
241
|
+
else {
|
|
242
|
+
result = 1 * field.dir;
|
|
243
|
+
}
|
|
244
|
+
break;
|
|
245
|
+
}
|
|
246
|
+
}
|
|
247
|
+
return result;
|
|
248
|
+
});
|
|
249
|
+
}
|
|
250
|
+
else {
|
|
251
|
+
returnData = utils_1.sortByCode.call(this, returnData);
|
|
252
|
+
}
|
|
253
|
+
return [returnData];
|
|
254
|
+
}
|
|
255
|
+
}
|
|
256
|
+
exports.Sort = Sort;
|
|
257
|
+
//# sourceMappingURL=Sort.node.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"Sort.node.js","sourceRoot":"","sources":["../../../../nodes/Transform/Sort/Sort.node.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,19 @@
|
|
|
1
|
+
{
|
|
2
|
+
"node": "n8n-nodes-base.sort",
|
|
3
|
+
"nodeVersion": "1.0",
|
|
4
|
+
"codexVersion": "1.0",
|
|
5
|
+
"details": "",
|
|
6
|
+
"categories": ["Core Nodes"],
|
|
7
|
+
"resources": {
|
|
8
|
+
"primaryDocumentation": [
|
|
9
|
+
{
|
|
10
|
+
"url": "https://docs.n8n.io/integrations/builtin/core-nodes/n8n-nodes-base.sort/"
|
|
11
|
+
}
|
|
12
|
+
],
|
|
13
|
+
"generic": []
|
|
14
|
+
},
|
|
15
|
+
"alias": ["Sort", "Order", "Transform", "Array", "List", "Item"],
|
|
16
|
+
"subcategories": {
|
|
17
|
+
"Core Nodes": ["Data Transformation"]
|
|
18
|
+
}
|
|
19
|
+
}
|
|
@@ -0,0 +1,6 @@
|
|
|
1
|
+
<svg width="512" height="512" viewBox="0 0 512 512" fill="none" xmlns="http://www.w3.org/2000/svg">
|
|
2
|
+
<path fill-rule="evenodd" clip-rule="evenodd" d="M130.5 422.5C123.873 422.5 118.5 417.127 118.5 410.5L118.5 59.5C118.5 52.8726 123.873 47.5 130.5 47.5L154.5 47.5C161.127 47.5 166.5 52.8726 166.5 59.5L166.5 410.5C166.5 417.127 161.127 422.5 154.5 422.5L130.5 422.5Z" fill="#8287EB"/>
|
|
3
|
+
<path fill-rule="evenodd" clip-rule="evenodd" d="M36.0768 333.482C45.4754 324.136 60.6713 324.178 70.0178 333.577L142.5 406.464L214.982 333.577C224.329 324.178 239.525 324.136 248.923 333.482C258.322 342.829 258.364 358.025 249.018 367.423L159.518 457.423C155.013 461.953 148.888 464.5 142.5 464.5C136.112 464.5 129.987 461.953 125.482 457.423L35.9822 367.423C26.6358 358.025 26.6781 342.829 36.0768 333.482Z" fill="#8287EB"/>
|
|
4
|
+
<path fill-rule="evenodd" clip-rule="evenodd" d="M381.5 89.5C388.127 89.5 393.5 94.8726 393.5 101.5L393.5 452.5C393.5 459.127 388.127 464.5 381.5 464.5L357.5 464.5C350.873 464.5 345.5 459.127 345.5 452.5L345.5 101.5C345.5 94.8726 350.873 89.5 357.5 89.5L381.5 89.5Z" fill="#8287EB"/>
|
|
5
|
+
<path fill-rule="evenodd" clip-rule="evenodd" d="M475.923 178.518C466.525 187.864 451.329 187.822 441.982 178.423L369.5 105.536L297.018 178.423C287.671 187.822 272.475 187.864 263.077 178.518C253.678 169.171 253.636 153.975 262.982 144.577L352.482 54.5768C356.987 50.0469 363.112 47.5 369.5 47.5C375.888 47.5 382.013 50.0469 386.518 54.5768L476.018 144.577C485.364 153.975 485.322 169.171 475.923 178.518Z" fill="#8287EB"/>
|
|
6
|
+
</svg>
|
|
@@ -0,0 +1,213 @@
|
|
|
1
|
+
{
|
|
2
|
+
"name": "sort test",
|
|
3
|
+
"nodes": [
|
|
4
|
+
{
|
|
5
|
+
"parameters": {},
|
|
6
|
+
"id": "6c90bf81-0c0e-4c5f-9f0c-297f06d9668a",
|
|
7
|
+
"name": "When clicking \"Execute Workflow\"",
|
|
8
|
+
"type": "n8n-nodes-base.manualTrigger",
|
|
9
|
+
"typeVersion": 1,
|
|
10
|
+
"position": [-440, 300]
|
|
11
|
+
},
|
|
12
|
+
{
|
|
13
|
+
"parameters": {
|
|
14
|
+
"jsCode": "return [\n {id: 3, char: 'c'},\n {id: 4, char: 'd'},\n {id: 5, char: 'e'},\n {id: 1, char: 'a'},\n {id: 2, char: 'b'},\n];"
|
|
15
|
+
},
|
|
16
|
+
"id": "2e0011d5-c6a0-4a40-ab8c-9d011cde40d5",
|
|
17
|
+
"name": "Code",
|
|
18
|
+
"type": "n8n-nodes-base.code",
|
|
19
|
+
"typeVersion": 1,
|
|
20
|
+
"position": [-180, 300]
|
|
21
|
+
},
|
|
22
|
+
{
|
|
23
|
+
"parameters": {
|
|
24
|
+
"sortFieldsUi": {
|
|
25
|
+
"sortField": [
|
|
26
|
+
{
|
|
27
|
+
"fieldName": "char",
|
|
28
|
+
"order": "descending"
|
|
29
|
+
},
|
|
30
|
+
{
|
|
31
|
+
"fieldName": "id",
|
|
32
|
+
"order": "descending"
|
|
33
|
+
}
|
|
34
|
+
]
|
|
35
|
+
},
|
|
36
|
+
"options": {}
|
|
37
|
+
},
|
|
38
|
+
"id": "20031848-2374-45b2-98db-69d7b8d055ad",
|
|
39
|
+
"name": "Item Lists1",
|
|
40
|
+
"type": "n8n-nodes-base.sort",
|
|
41
|
+
"typeVersion": 1,
|
|
42
|
+
"position": [80, 300]
|
|
43
|
+
},
|
|
44
|
+
{
|
|
45
|
+
"parameters": {
|
|
46
|
+
"sortFieldsUi": {
|
|
47
|
+
"sortField": [
|
|
48
|
+
{
|
|
49
|
+
"fieldName": "id"
|
|
50
|
+
}
|
|
51
|
+
]
|
|
52
|
+
},
|
|
53
|
+
"options": {}
|
|
54
|
+
},
|
|
55
|
+
"id": "93dd8c32-21e1-4762-a340-b3e8c6866811",
|
|
56
|
+
"name": "Item Lists",
|
|
57
|
+
"type": "n8n-nodes-base.sort",
|
|
58
|
+
"typeVersion": 1,
|
|
59
|
+
"position": [80, 120]
|
|
60
|
+
},
|
|
61
|
+
{
|
|
62
|
+
"parameters": {
|
|
63
|
+
"type": "code",
|
|
64
|
+
"code": "// The two items to compare are in the variables a and b\n// Access the fields in a.json and b.json\n// Return -1 if a should go before b\n// Return 1 if b should go before a\n// Return 0 if there's no difference\n\nfieldName = 'id';\n\nif (a.json[fieldName] < b.json[fieldName]) {\n\t\treturn -1;\n}\nif (a.json[fieldName] > b.json[fieldName]) {\n\t\treturn 1;\n}\nreturn 0;"
|
|
65
|
+
},
|
|
66
|
+
"id": "112c72e6-b5d9-4d6d-87fc-2621fbaa5bf7",
|
|
67
|
+
"name": "Item Lists2",
|
|
68
|
+
"type": "n8n-nodes-base.sort",
|
|
69
|
+
"typeVersion": 1,
|
|
70
|
+
"position": [80, 500]
|
|
71
|
+
}
|
|
72
|
+
],
|
|
73
|
+
"pinData": {
|
|
74
|
+
"Item Lists": [
|
|
75
|
+
{
|
|
76
|
+
"json": {
|
|
77
|
+
"id": 1,
|
|
78
|
+
"char": "a"
|
|
79
|
+
}
|
|
80
|
+
},
|
|
81
|
+
{
|
|
82
|
+
"json": {
|
|
83
|
+
"id": 2,
|
|
84
|
+
"char": "b"
|
|
85
|
+
}
|
|
86
|
+
},
|
|
87
|
+
{
|
|
88
|
+
"json": {
|
|
89
|
+
"id": 3,
|
|
90
|
+
"char": "c"
|
|
91
|
+
}
|
|
92
|
+
},
|
|
93
|
+
{
|
|
94
|
+
"json": {
|
|
95
|
+
"id": 4,
|
|
96
|
+
"char": "d"
|
|
97
|
+
}
|
|
98
|
+
},
|
|
99
|
+
{
|
|
100
|
+
"json": {
|
|
101
|
+
"id": 5,
|
|
102
|
+
"char": "e"
|
|
103
|
+
}
|
|
104
|
+
}
|
|
105
|
+
],
|
|
106
|
+
"Item Lists1": [
|
|
107
|
+
{
|
|
108
|
+
"json": {
|
|
109
|
+
"id": 5,
|
|
110
|
+
"char": "e"
|
|
111
|
+
}
|
|
112
|
+
},
|
|
113
|
+
{
|
|
114
|
+
"json": {
|
|
115
|
+
"id": 4,
|
|
116
|
+
"char": "d"
|
|
117
|
+
}
|
|
118
|
+
},
|
|
119
|
+
{
|
|
120
|
+
"json": {
|
|
121
|
+
"id": 3,
|
|
122
|
+
"char": "c"
|
|
123
|
+
}
|
|
124
|
+
},
|
|
125
|
+
{
|
|
126
|
+
"json": {
|
|
127
|
+
"id": 2,
|
|
128
|
+
"char": "b"
|
|
129
|
+
}
|
|
130
|
+
},
|
|
131
|
+
{
|
|
132
|
+
"json": {
|
|
133
|
+
"id": 1,
|
|
134
|
+
"char": "a"
|
|
135
|
+
}
|
|
136
|
+
}
|
|
137
|
+
],
|
|
138
|
+
"Item Lists2": [
|
|
139
|
+
{
|
|
140
|
+
"json": {
|
|
141
|
+
"id": 1,
|
|
142
|
+
"char": "a"
|
|
143
|
+
}
|
|
144
|
+
},
|
|
145
|
+
{
|
|
146
|
+
"json": {
|
|
147
|
+
"id": 2,
|
|
148
|
+
"char": "b"
|
|
149
|
+
}
|
|
150
|
+
},
|
|
151
|
+
{
|
|
152
|
+
"json": {
|
|
153
|
+
"id": 3,
|
|
154
|
+
"char": "c"
|
|
155
|
+
}
|
|
156
|
+
},
|
|
157
|
+
{
|
|
158
|
+
"json": {
|
|
159
|
+
"id": 4,
|
|
160
|
+
"char": "d"
|
|
161
|
+
}
|
|
162
|
+
},
|
|
163
|
+
{
|
|
164
|
+
"json": {
|
|
165
|
+
"id": 5,
|
|
166
|
+
"char": "e"
|
|
167
|
+
}
|
|
168
|
+
}
|
|
169
|
+
]
|
|
170
|
+
},
|
|
171
|
+
"connections": {
|
|
172
|
+
"When clicking \"Execute Workflow\"": {
|
|
173
|
+
"main": [
|
|
174
|
+
[
|
|
175
|
+
{
|
|
176
|
+
"node": "Code",
|
|
177
|
+
"type": "main",
|
|
178
|
+
"index": 0
|
|
179
|
+
}
|
|
180
|
+
]
|
|
181
|
+
]
|
|
182
|
+
},
|
|
183
|
+
"Code": {
|
|
184
|
+
"main": [
|
|
185
|
+
[
|
|
186
|
+
{
|
|
187
|
+
"node": "Item Lists1",
|
|
188
|
+
"type": "main",
|
|
189
|
+
"index": 0
|
|
190
|
+
},
|
|
191
|
+
{
|
|
192
|
+
"node": "Item Lists",
|
|
193
|
+
"type": "main",
|
|
194
|
+
"index": 0
|
|
195
|
+
},
|
|
196
|
+
{
|
|
197
|
+
"node": "Item Lists2",
|
|
198
|
+
"type": "main",
|
|
199
|
+
"index": 0
|
|
200
|
+
}
|
|
201
|
+
]
|
|
202
|
+
]
|
|
203
|
+
}
|
|
204
|
+
},
|
|
205
|
+
"active": false,
|
|
206
|
+
"settings": {},
|
|
207
|
+
"versionId": "6f896427-a3be-44bc-898f-c1a6f58fa1e1",
|
|
208
|
+
"id": "105",
|
|
209
|
+
"meta": {
|
|
210
|
+
"instanceId": "36203ea1ce3cef713fa25999bd9874ae26b9e4c2c3a90a365f2882a154d031d0"
|
|
211
|
+
},
|
|
212
|
+
"tags": []
|
|
213
|
+
}
|
|
@@ -0,0 +1,27 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.sortByCode = exports.shuffleArray = void 0;
|
|
4
|
+
const vm2_1 = require("@n8n/vm2");
|
|
5
|
+
const n8n_workflow_1 = require("n8n-workflow");
|
|
6
|
+
const shuffleArray = (array) => {
|
|
7
|
+
for (let i = array.length - 1; i > 0; i--) {
|
|
8
|
+
const j = Math.floor(Math.random() * (i + 1));
|
|
9
|
+
[array[i], array[j]] = [array[j], array[i]];
|
|
10
|
+
}
|
|
11
|
+
};
|
|
12
|
+
exports.shuffleArray = shuffleArray;
|
|
13
|
+
const returnRegExp = /\breturn\b/g;
|
|
14
|
+
function sortByCode(items) {
|
|
15
|
+
const code = this.getNodeParameter('code', 0);
|
|
16
|
+
if (!returnRegExp.test(code)) {
|
|
17
|
+
throw new n8n_workflow_1.NodeOperationError(this.getNode(), "Sort code doesn't return. Please add a 'return' statement to your code");
|
|
18
|
+
}
|
|
19
|
+
const mode = this.getMode();
|
|
20
|
+
const vm = new vm2_1.NodeVM({
|
|
21
|
+
console: mode === 'manual' ? 'redirect' : 'inherit',
|
|
22
|
+
sandbox: { items },
|
|
23
|
+
});
|
|
24
|
+
return vm.run(`module.exports = items.sort((a, b) => { ${code} })`);
|
|
25
|
+
}
|
|
26
|
+
exports.sortByCode = sortByCode;
|
|
27
|
+
//# sourceMappingURL=utils.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"utils.js","sourceRoot":"","sources":["../../../../nodes/Transform/Sort/utils.ts"],"names":[],"mappings":";;;AAAA,kCAAkC;AAClC,+CAAmG;AAE5F,MAAM,YAAY,GAAG,CAAC,KAAY,EAAE,EAAE;IAC5C,KAAK,IAAI,CAAC,GAAG,KAAK,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC,GAAG,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC;QAC3C,MAAM,CAAC,GAAG,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,MAAM,EAAE,GAAG,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC;QAC9C,CAAC,KAAK,CAAC,CAAC,CAAC,EAAE,KAAK,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC,CAAC,EAAE,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC;IAC7C,CAAC;AACF,CAAC,CAAC;AALW,QAAA,YAAY,gBAKvB;AAEF,MAAM,YAAY,GAAG,aAAa,CAAC;AACnC,SAAgB,UAAU,CAEzB,KAA2B;IAE3B,MAAM,IAAI,GAAG,IAAI,CAAC,gBAAgB,CAAC,MAAM,EAAE,CAAC,CAAW,CAAC;IACxD,IAAI,CAAC,YAAY,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC;QAC9B,MAAM,IAAI,iCAAkB,CAC3B,IAAI,CAAC,OAAO,EAAE,EACd,wEAAwE,CACxE,CAAC;IACH,CAAC;IAED,MAAM,IAAI,GAAG,IAAI,CAAC,OAAO,EAAE,CAAC;IAC5B,MAAM,EAAE,GAAG,IAAI,YAAM,CAAC;QACrB,OAAO,EAAE,IAAI,KAAK,QAAQ,CAAC,CAAC,CAAC,UAAU,CAAC,CAAC,CAAC,SAAS;QACnD,OAAO,EAAE,EAAE,KAAK,EAAE;KAClB,CAAC,CAAC;IAEH,OAAO,EAAE,CAAC,GAAG,CAAC,2CAA2C,IAAI,KAAK,CAAC,CAAC;AACrE,CAAC;AAnBD,gCAmBC"}
|
|
@@ -0,0 +1,5 @@
|
|
|
1
|
+
import { type IExecuteFunctions, type INodeExecutionData, type INodeType, type INodeTypeDescription } from 'n8n-workflow';
|
|
2
|
+
export declare class SplitOut implements INodeType {
|
|
3
|
+
description: INodeTypeDescription;
|
|
4
|
+
execute(this: IExecuteFunctions): Promise<INodeExecutionData[][]>;
|
|
5
|
+
}
|