@limetech/n8n-nodes-lime 2.7.0-dev.1 → 3.1.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/.devcontainer/devcontainer.json +44 -0
- package/.devcontainer/docker-compose.yml +27 -0
- package/.gitattributes +34 -0
- package/.nvmrc +1 -0
- package/CHANGELOG.md +17 -5
- package/README.md +40 -47
- package/credentials/index.ts +0 -1
- package/dist/credentials/index.d.ts +0 -1
- package/dist/credentials/index.js +0 -1
- package/dist/credentials/index.js.map +1 -1
- package/dist/nodes/index.d.ts +0 -1
- package/dist/nodes/index.js +0 -1
- package/dist/nodes/index.js.map +1 -1
- package/dist/nodes/lime-crm/LimeCrmNode.node.d.ts +1 -4
- package/dist/nodes/lime-crm/LimeCrmNode.node.js +0 -3
- package/dist/nodes/lime-crm/LimeCrmNode.node.js.map +1 -1
- package/dist/nodes/lime-crm/methods/getLimetypeProperties.d.ts +0 -2
- package/dist/nodes/lime-crm/methods/getLimetypeProperties.js +0 -43
- package/dist/nodes/lime-crm/methods/getLimetypeProperties.js.map +1 -1
- package/dist/nodes/lime-crm/methods/index.d.ts +2 -2
- package/dist/nodes/lime-crm/methods/index.js +1 -4
- package/dist/nodes/lime-crm/methods/index.js.map +1 -1
- package/dist/nodes/lime-crm/methods/resourceMapping.d.ts +0 -1
- package/dist/nodes/lime-crm/methods/resourceMapping.js +0 -46
- package/dist/nodes/lime-crm/methods/resourceMapping.js.map +1 -1
- package/dist/nodes/lime-crm/models/limetype.d.ts +0 -1
- package/dist/nodes/lime-crm/resources/data/index.d.ts +1 -1
- package/dist/nodes/lime-crm/resources/data/index.js +0 -20
- package/dist/nodes/lime-crm/resources/data/index.js.map +1 -1
- package/dist/nodes/lime-crm/resources/data/operations/index.d.ts +0 -4
- package/dist/nodes/lime-crm/resources/data/operations/index.js +1 -5
- package/dist/nodes/lime-crm/resources/data/operations/index.js.map +1 -1
- package/dist/nodes/lime-crm/transport/index.d.ts +0 -1
- package/dist/nodes/lime-crm/transport/index.js +1 -6
- package/dist/nodes/lime-crm/transport/index.js.map +1 -1
- package/dist/nodes/lime-crm/transport/limetypes.js +4 -15
- package/dist/nodes/lime-crm/transport/limetypes.js.map +1 -1
- package/dist/nodes/lime-forms/LimeFormsTrigger.node.js +3 -3
- package/dist/nodes/lime-forms/LimeFormsTrigger.node.js.map +1 -1
- package/dist/nodes/lime-forms/assets/lime-crm.svg +1 -0
- package/dist/package.json +5 -12
- package/dist/tsconfig.tsbuildinfo +1 -1
- package/nodes/index.ts +0 -1
- package/nodes/lime-crm/LimeCrmNode.node.ts +0 -6
- package/nodes/lime-crm/methods/getLimetypeProperties.ts +0 -84
- package/nodes/lime-crm/methods/index.ts +0 -3
- package/nodes/lime-crm/methods/resourceMapping.ts +0 -76
- package/nodes/lime-crm/models/limetype.ts +0 -1
- package/nodes/lime-crm/resources/data/index.ts +1 -34
- package/nodes/lime-crm/resources/data/operations/index.ts +0 -17
- package/nodes/lime-crm/transport/index.ts +0 -8
- package/nodes/lime-crm/transport/limetypes.ts +8 -26
- package/nodes/lime-forms/LimeFormsTrigger.node.ts +3 -3
- package/nodes/lime-forms/assets/lime-crm.svg +1 -0
- package/package.json +6 -13
- package/credentials/FortnoxApi.credentials.ts +0 -61
- package/dist/credentials/FortnoxApi.credentials.d.ts +0 -9
- package/dist/credentials/FortnoxApi.credentials.js +0 -57
- package/dist/credentials/FortnoxApi.credentials.js.map +0 -1
- package/dist/nodes/fortnox/Fortnox.node.d.ts +0 -5
- package/dist/nodes/fortnox/Fortnox.node.js +0 -95
- package/dist/nodes/fortnox/Fortnox.node.js.map +0 -1
- package/dist/nodes/fortnox/Fortnox.node.json +0 -18
- package/dist/nodes/fortnox/FortnoxTrigger.node.d.ts +0 -5
- package/dist/nodes/fortnox/FortnoxTrigger.node.js +0 -155
- package/dist/nodes/fortnox/FortnoxTrigger.node.js.map +0 -1
- package/dist/nodes/fortnox/FortnoxTrigger.node.json +0 -18
- package/dist/nodes/fortnox/commons.d.ts +0 -25
- package/dist/nodes/fortnox/commons.js +0 -44
- package/dist/nodes/fortnox/commons.js.map +0 -1
- package/dist/nodes/fortnox/fortnoxLogo.svg +0 -15
- package/dist/nodes/fortnox/index.d.ts +0 -6
- package/dist/nodes/fortnox/index.js +0 -23
- package/dist/nodes/fortnox/index.js.map +0 -1
- package/dist/nodes/fortnox/model.d.ts +0 -20
- package/dist/nodes/fortnox/model.js +0 -3
- package/dist/nodes/fortnox/model.js.map +0 -1
- package/dist/nodes/fortnox/resources/customers/filterParameters.d.ts +0 -2
- package/dist/nodes/fortnox/resources/customers/filterParameters.js +0 -31
- package/dist/nodes/fortnox/resources/customers/filterParameters.js.map +0 -1
- package/dist/nodes/fortnox/resources/customers/index.d.ts +0 -7
- package/dist/nodes/fortnox/resources/customers/index.js +0 -85
- package/dist/nodes/fortnox/resources/customers/index.js.map +0 -1
- package/dist/nodes/fortnox/resources/customers/model.d.ts +0 -99
- package/dist/nodes/fortnox/resources/customers/model.js +0 -3
- package/dist/nodes/fortnox/resources/customers/model.js.map +0 -1
- package/dist/nodes/fortnox/resources/customers/operations/create.operation.d.ts +0 -10
- package/dist/nodes/fortnox/resources/customers/operations/create.operation.js +0 -281
- package/dist/nodes/fortnox/resources/customers/operations/create.operation.js.map +0 -1
- package/dist/nodes/fortnox/resources/customers/operations/delete.operation.d.ts +0 -9
- package/dist/nodes/fortnox/resources/customers/operations/delete.operation.js +0 -38
- package/dist/nodes/fortnox/resources/customers/operations/delete.operation.js.map +0 -1
- package/dist/nodes/fortnox/resources/customers/operations/get.operation.d.ts +0 -10
- package/dist/nodes/fortnox/resources/customers/operations/get.operation.js +0 -38
- package/dist/nodes/fortnox/resources/customers/operations/get.operation.js.map +0 -1
- package/dist/nodes/fortnox/resources/customers/operations/getAll.operation.d.ts +0 -10
- package/dist/nodes/fortnox/resources/customers/operations/getAll.operation.js +0 -68
- package/dist/nodes/fortnox/resources/customers/operations/getAll.operation.js.map +0 -1
- package/dist/nodes/fortnox/resources/customers/operations/index.d.ts +0 -5
- package/dist/nodes/fortnox/resources/customers/operations/index.js +0 -42
- package/dist/nodes/fortnox/resources/customers/operations/index.js.map +0 -1
- package/dist/nodes/fortnox/resources/customers/operations/update.operation.d.ts +0 -10
- package/dist/nodes/fortnox/resources/customers/operations/update.operation.js +0 -261
- package/dist/nodes/fortnox/resources/customers/operations/update.operation.js.map +0 -1
- package/dist/nodes/fortnox/resources/customers/sortParameters.d.ts +0 -2
- package/dist/nodes/fortnox/resources/customers/sortParameters.js +0 -30
- package/dist/nodes/fortnox/resources/customers/sortParameters.js.map +0 -1
- package/dist/nodes/fortnox/resources/invoice/filterParameters.d.ts +0 -2
- package/dist/nodes/fortnox/resources/invoice/filterParameters.js +0 -72
- package/dist/nodes/fortnox/resources/invoice/filterParameters.js.map +0 -1
- package/dist/nodes/fortnox/resources/invoice/index.d.ts +0 -7
- package/dist/nodes/fortnox/resources/invoice/index.js +0 -81
- package/dist/nodes/fortnox/resources/invoice/index.js.map +0 -1
- package/dist/nodes/fortnox/resources/invoice/invoiceParameters.d.ts +0 -2
- package/dist/nodes/fortnox/resources/invoice/invoiceParameters.js +0 -193
- package/dist/nodes/fortnox/resources/invoice/invoiceParameters.js.map +0 -1
- package/dist/nodes/fortnox/resources/invoice/model.d.ts +0 -147
- package/dist/nodes/fortnox/resources/invoice/model.js +0 -3
- package/dist/nodes/fortnox/resources/invoice/model.js.map +0 -1
- package/dist/nodes/fortnox/resources/invoice/operations/create.operation.d.ts +0 -10
- package/dist/nodes/fortnox/resources/invoice/operations/create.operation.js +0 -64
- package/dist/nodes/fortnox/resources/invoice/operations/create.operation.js.map +0 -1
- package/dist/nodes/fortnox/resources/invoice/operations/get.operation.d.ts +0 -10
- package/dist/nodes/fortnox/resources/invoice/operations/get.operation.js +0 -37
- package/dist/nodes/fortnox/resources/invoice/operations/get.operation.js.map +0 -1
- package/dist/nodes/fortnox/resources/invoice/operations/getAll.operation.d.ts +0 -10
- package/dist/nodes/fortnox/resources/invoice/operations/getAll.operation.js +0 -92
- package/dist/nodes/fortnox/resources/invoice/operations/getAll.operation.js.map +0 -1
- package/dist/nodes/fortnox/resources/invoice/operations/index.d.ts +0 -4
- package/dist/nodes/fortnox/resources/invoice/operations/index.js +0 -41
- package/dist/nodes/fortnox/resources/invoice/operations/index.js.map +0 -1
- package/dist/nodes/fortnox/resources/invoice/operations/update.operation.d.ts +0 -10
- package/dist/nodes/fortnox/resources/invoice/operations/update.operation.js +0 -64
- package/dist/nodes/fortnox/resources/invoice/operations/update.operation.js.map +0 -1
- package/dist/nodes/fortnox/transport/errorCodes.d.ts +0 -1
- package/dist/nodes/fortnox/transport/errorCodes.js +0 -50
- package/dist/nodes/fortnox/transport/errorCodes.js.map +0 -1
- package/dist/nodes/fortnox/transport/index.d.ts +0 -3
- package/dist/nodes/fortnox/transport/index.js +0 -76
- package/dist/nodes/fortnox/transport/index.js.map +0 -1
- package/dist/nodes/lime-crm/resources/data/operations/bulkImportCommons.d.ts +0 -5
- package/dist/nodes/lime-crm/resources/data/operations/bulkImportCommons.js +0 -230
- package/dist/nodes/lime-crm/resources/data/operations/bulkImportCommons.js.map +0 -1
- package/dist/nodes/lime-crm/resources/data/operations/createManyObjects.operation.d.ts +0 -9
- package/dist/nodes/lime-crm/resources/data/operations/createManyObjects.operation.js +0 -16
- package/dist/nodes/lime-crm/resources/data/operations/createManyObjects.operation.js.map +0 -1
- package/dist/nodes/lime-crm/resources/data/operations/createOrUpdateManyObjects.operation.d.ts +0 -9
- package/dist/nodes/lime-crm/resources/data/operations/createOrUpdateManyObjects.operation.js +0 -16
- package/dist/nodes/lime-crm/resources/data/operations/createOrUpdateManyObjects.operation.js.map +0 -1
- package/dist/nodes/lime-crm/resources/data/operations/deprecated-startBulkImport.operation.d.ts +0 -9
- package/dist/nodes/lime-crm/resources/data/operations/deprecated-startBulkImport.operation.js +0 -241
- package/dist/nodes/lime-crm/resources/data/operations/deprecated-startBulkImport.operation.js.map +0 -1
- package/dist/nodes/lime-crm/resources/data/operations/updateManyObjects.operation.d.ts +0 -9
- package/dist/nodes/lime-crm/resources/data/operations/updateManyObjects.operation.js +0 -16
- package/dist/nodes/lime-crm/resources/data/operations/updateManyObjects.operation.js.map +0 -1
- package/dist/nodes/lime-crm/transport/bulkimport.d.ts +0 -41
- package/dist/nodes/lime-crm/transport/bulkimport.js +0 -86
- package/dist/nodes/lime-crm/transport/bulkimport.js.map +0 -1
- package/dist/nodes/lime-forms/lime-forms.svg +0 -6
- package/docker-compose.yml +0 -0
- package/nodes/fortnox/Fortnox.node.json +0 -18
- package/nodes/fortnox/Fortnox.node.ts +0 -102
- package/nodes/fortnox/FortnoxTrigger.node.json +0 -18
- package/nodes/fortnox/FortnoxTrigger.node.ts +0 -196
- package/nodes/fortnox/commons.ts +0 -94
- package/nodes/fortnox/fortnoxLogo.svg +0 -15
- package/nodes/fortnox/index.ts +0 -6
- package/nodes/fortnox/model.ts +0 -25
- package/nodes/fortnox/resources/customers/filterParameters.ts +0 -47
- package/nodes/fortnox/resources/customers/index.ts +0 -53
- package/nodes/fortnox/resources/customers/model.ts +0 -107
- package/nodes/fortnox/resources/customers/operations/create.operation.ts +0 -307
- package/nodes/fortnox/resources/customers/operations/delete.operation.ts +0 -49
- package/nodes/fortnox/resources/customers/operations/get.operation.ts +0 -50
- package/nodes/fortnox/resources/customers/operations/getAll.operation.ts +0 -79
- package/nodes/fortnox/resources/customers/operations/index.ts +0 -5
- package/nodes/fortnox/resources/customers/operations/update.operation.ts +0 -288
- package/nodes/fortnox/resources/customers/sortParameters.ts +0 -32
- package/nodes/fortnox/resources/invoice/filterParameters.ts +0 -88
- package/nodes/fortnox/resources/invoice/index.ts +0 -49
- package/nodes/fortnox/resources/invoice/invoiceParameters.ts +0 -214
- package/nodes/fortnox/resources/invoice/model.ts +0 -156
- package/nodes/fortnox/resources/invoice/operations/create.operation.ts +0 -71
- package/nodes/fortnox/resources/invoice/operations/get.operation.ts +0 -50
- package/nodes/fortnox/resources/invoice/operations/getAll.operation.ts +0 -100
- package/nodes/fortnox/resources/invoice/operations/index.ts +0 -4
- package/nodes/fortnox/resources/invoice/operations/update.operation.ts +0 -79
- package/nodes/fortnox/transport/errorCodes.ts +0 -62
- package/nodes/fortnox/transport/index.ts +0 -106
- package/nodes/lime-crm/resources/data/operations/bulkImportCommons.ts +0 -323
- package/nodes/lime-crm/resources/data/operations/createManyObjects.operation.ts +0 -44
- package/nodes/lime-crm/resources/data/operations/createOrUpdateManyObjects.operation.ts +0 -44
- package/nodes/lime-crm/resources/data/operations/deprecated-startBulkImport.operation.ts +0 -364
- package/nodes/lime-crm/resources/data/operations/updateManyObjects.operation.ts +0 -44
- package/nodes/lime-crm/transport/bulkimport.ts +0 -271
- package/nodes/lime-forms/lime-forms.svg +0 -6
package/nodes/index.ts
CHANGED
|
@@ -24,11 +24,8 @@ import {
|
|
|
24
24
|
getLimetypeProperties,
|
|
25
25
|
getLimetypes,
|
|
26
26
|
getNoHasManyProperties,
|
|
27
|
-
getRelationProperties,
|
|
28
27
|
getCreateMappingColumns,
|
|
29
28
|
getUpdateMappingColumns,
|
|
30
|
-
getRelationLookupMappingColumns,
|
|
31
|
-
getRelationPropertiesWithLookupField,
|
|
32
29
|
} from './methods';
|
|
33
30
|
|
|
34
31
|
/**
|
|
@@ -151,13 +148,10 @@ export class LimeCrmNode implements INodeType {
|
|
|
151
148
|
getLimetypeProperties,
|
|
152
149
|
getFileProperties,
|
|
153
150
|
getNoHasManyProperties,
|
|
154
|
-
getRelationProperties,
|
|
155
|
-
getRelationPropertiesWithLookupField,
|
|
156
151
|
},
|
|
157
152
|
resourceMapping: {
|
|
158
153
|
getUpdateMappingColumns,
|
|
159
154
|
getCreateMappingColumns,
|
|
160
|
-
getRelationLookupMappingColumns,
|
|
161
155
|
},
|
|
162
156
|
};
|
|
163
157
|
|
|
@@ -110,87 +110,3 @@ export async function getNoHasManyProperties(
|
|
|
110
110
|
): Promise<INodePropertyOptions[]> {
|
|
111
111
|
return getFilteredLimetypeProperties(this, undefined, new Set(['hasmany']));
|
|
112
112
|
}
|
|
113
|
-
|
|
114
|
-
/**
|
|
115
|
-
* Get only relation properties (belongsto/hasone) for the current Limetype.
|
|
116
|
-
*
|
|
117
|
-
* @returns Array of relation property options
|
|
118
|
-
*
|
|
119
|
-
* @public
|
|
120
|
-
* @group Load Options Methods
|
|
121
|
-
*/
|
|
122
|
-
export async function getRelationProperties(
|
|
123
|
-
this: ILoadOptionsFunctions
|
|
124
|
-
): Promise<INodePropertyOptions[]> {
|
|
125
|
-
return getFilteredLimetypeProperties(
|
|
126
|
-
this,
|
|
127
|
-
new Set(['belongsto', 'hasone'])
|
|
128
|
-
);
|
|
129
|
-
}
|
|
130
|
-
|
|
131
|
-
/**
|
|
132
|
-
* Get properties from ALL related limetypes for relation fields.
|
|
133
|
-
*
|
|
134
|
-
* This method finds all relation properties (belongsto/hasone) on the current limetype,
|
|
135
|
-
* fetches properties from each related limetype, and returns them grouped by limetype.
|
|
136
|
-
* Each option is prefixed with the relation field name for clarity.
|
|
137
|
-
*
|
|
138
|
-
* @returns Array of property options from all related limetypes, grouped by relation
|
|
139
|
-
*
|
|
140
|
-
* @public
|
|
141
|
-
* @group Load Options Methods
|
|
142
|
-
*/
|
|
143
|
-
export async function getRelationPropertiesWithLookupField(
|
|
144
|
-
this: ILoadOptionsFunctions
|
|
145
|
-
): Promise<INodePropertyOptions[]> {
|
|
146
|
-
const limetype = this.getNodeParameter('limetype', '') as string;
|
|
147
|
-
|
|
148
|
-
if (!limetype) return [];
|
|
149
|
-
|
|
150
|
-
const propertiesResponse = await getProperties(this, limetype);
|
|
151
|
-
if (!propertiesResponse.success) return [];
|
|
152
|
-
|
|
153
|
-
const relationProperties = propertiesResponse.data.filter(
|
|
154
|
-
(p) => p.type === 'belongsto' || p.type === 'hasone'
|
|
155
|
-
);
|
|
156
|
-
|
|
157
|
-
const allOptions: INodePropertyOptions[] = [];
|
|
158
|
-
for (const relationProp of relationProperties) {
|
|
159
|
-
const relatedLimetype = relationProp.relatedLimetype as string;
|
|
160
|
-
|
|
161
|
-
if (!relatedLimetype) {
|
|
162
|
-
Logger.warn(`No relatedLimetype found for ${relationProp.name}`);
|
|
163
|
-
continue;
|
|
164
|
-
}
|
|
165
|
-
|
|
166
|
-
const relatedPropertiesResponse = await getProperties(
|
|
167
|
-
this,
|
|
168
|
-
relatedLimetype
|
|
169
|
-
);
|
|
170
|
-
if (!relatedPropertiesResponse.success) continue;
|
|
171
|
-
|
|
172
|
-
const relationDisplayName =
|
|
173
|
-
(relationProp.localname as string) || (relationProp.name as string);
|
|
174
|
-
|
|
175
|
-
const options = relatedPropertiesResponse.data
|
|
176
|
-
.filter((p) => p.type !== 'hasmany')
|
|
177
|
-
.map((p) => ({
|
|
178
|
-
name: `${relationDisplayName} → ${(p.localname as string) || (p.name as string)}`,
|
|
179
|
-
value: `${relationProp.name}.${p.name}`,
|
|
180
|
-
description: `Lookup ${relationDisplayName} by ${p.name} (${p.type})`,
|
|
181
|
-
}));
|
|
182
|
-
|
|
183
|
-
allOptions.push(...options);
|
|
184
|
-
}
|
|
185
|
-
|
|
186
|
-
const emptyOption: INodePropertyOptions = {
|
|
187
|
-
name: '(None - not a relation field)',
|
|
188
|
-
value: '',
|
|
189
|
-
description: 'Leave empty if this field is not a relation',
|
|
190
|
-
};
|
|
191
|
-
|
|
192
|
-
return [
|
|
193
|
-
emptyOption,
|
|
194
|
-
...allOptions.sort((a, b) => a.name.localeCompare(b.name)),
|
|
195
|
-
];
|
|
196
|
-
}
|
|
@@ -4,12 +4,9 @@ export {
|
|
|
4
4
|
getFilteredLimetypeProperties,
|
|
5
5
|
getLimetypeProperties,
|
|
6
6
|
getNoHasManyProperties,
|
|
7
|
-
getRelationProperties,
|
|
8
|
-
getRelationPropertiesWithLookupField,
|
|
9
7
|
} from './getLimetypeProperties';
|
|
10
8
|
export {
|
|
11
9
|
getCreateMappingColumns,
|
|
12
10
|
getUpdateMappingColumns,
|
|
13
|
-
getRelationLookupMappingColumns,
|
|
14
11
|
parseResourceMapperFields,
|
|
15
12
|
} from './resourceMapping';
|
|
@@ -139,79 +139,3 @@ export async function getUpdateMappingColumns(
|
|
|
139
139
|
const limetype = this.getNodeParameter('limetype') as string;
|
|
140
140
|
return getMappingColumns(this, 'update', limetype);
|
|
141
141
|
}
|
|
142
|
-
|
|
143
|
-
/**
|
|
144
|
-
* Method for getting relation lookup fields as a resource mapper.
|
|
145
|
-
* Shows one picker per relation (belongsto/hasone) with the related object's properties.
|
|
146
|
-
*/
|
|
147
|
-
export async function getRelationLookupMappingColumns(
|
|
148
|
-
this: ILoadOptionsFunctions
|
|
149
|
-
): Promise<ResourceMapperFields> {
|
|
150
|
-
const limetype = this.getNodeParameter('limetype') as string;
|
|
151
|
-
if (!limetype) {
|
|
152
|
-
return { fields: [] };
|
|
153
|
-
}
|
|
154
|
-
|
|
155
|
-
const propertiesResponse = await getProperties(this, limetype);
|
|
156
|
-
if (!propertiesResponse.success) {
|
|
157
|
-
Logger.error(
|
|
158
|
-
`There was an error with fetching properties: ${JSON.stringify(propertiesResponse.data)}`
|
|
159
|
-
);
|
|
160
|
-
return { fields: [] };
|
|
161
|
-
}
|
|
162
|
-
|
|
163
|
-
// Find all relation properties (belongsto/hasone)
|
|
164
|
-
const relationProperties = propertiesResponse.data.filter(
|
|
165
|
-
(property) =>
|
|
166
|
-
property.type === 'belongsto' || property.type === 'hasone'
|
|
167
|
-
);
|
|
168
|
-
|
|
169
|
-
const fields = await Promise.all(
|
|
170
|
-
relationProperties.map(async (relationProp) => {
|
|
171
|
-
const relatedLimetype = relationProp.relatedLimetype as string;
|
|
172
|
-
const relationDisplayName =
|
|
173
|
-
relationProp.localname || relationProp.name;
|
|
174
|
-
|
|
175
|
-
if (!relatedLimetype) {
|
|
176
|
-
Logger.warn(
|
|
177
|
-
`No relatedLimetype found for ${relationProp.name}`
|
|
178
|
-
);
|
|
179
|
-
return null;
|
|
180
|
-
}
|
|
181
|
-
|
|
182
|
-
// Fetch properties from the related limetype
|
|
183
|
-
const relatedPropertiesResponse = await getProperties(
|
|
184
|
-
this,
|
|
185
|
-
relatedLimetype
|
|
186
|
-
);
|
|
187
|
-
if (!relatedPropertiesResponse.success) {
|
|
188
|
-
return null;
|
|
189
|
-
}
|
|
190
|
-
|
|
191
|
-
// Get available lookup properties (exclude hasmany relations)
|
|
192
|
-
const lookupOptions = relatedPropertiesResponse.data
|
|
193
|
-
.filter((p) => p.type !== 'hasmany')
|
|
194
|
-
.map((p) => ({
|
|
195
|
-
value: p.name,
|
|
196
|
-
name: `${p.localname || p.name} [${p.type}]`,
|
|
197
|
-
}))
|
|
198
|
-
.sort((a, b) => a.name.localeCompare(b.name));
|
|
199
|
-
|
|
200
|
-
return {
|
|
201
|
-
id: relationProp.name,
|
|
202
|
-
displayName: `${relationDisplayName}`,
|
|
203
|
-
required: false,
|
|
204
|
-
defaultMatch: false,
|
|
205
|
-
display: true,
|
|
206
|
-
type: 'options' as FieldType,
|
|
207
|
-
options: lookupOptions,
|
|
208
|
-
};
|
|
209
|
-
})
|
|
210
|
-
);
|
|
211
|
-
|
|
212
|
-
return {
|
|
213
|
-
fields: fields
|
|
214
|
-
.filter((f): f is NonNullable<typeof f> => f !== null)
|
|
215
|
-
.sort((a, b) => a.displayName.localeCompare(b.displayName)),
|
|
216
|
-
};
|
|
217
|
-
}
|
|
@@ -21,10 +21,6 @@ const moduleHandler = new N8NOperationModuleHandler([
|
|
|
21
21
|
operations.deleteSingleObject,
|
|
22
22
|
operations.getManyObjects,
|
|
23
23
|
operations.getSingleFile,
|
|
24
|
-
operations.createManyObjects,
|
|
25
|
-
operations.updateManyObjects,
|
|
26
|
-
operations.createOrUpdateManyObjects,
|
|
27
|
-
operations.startBulkImport,
|
|
28
24
|
]);
|
|
29
25
|
|
|
30
26
|
/**
|
|
@@ -79,7 +75,7 @@ export const dataFields: INodeProperties[] = [
|
|
|
79
75
|
export async function dataOperations(
|
|
80
76
|
this: IExecuteFunctions,
|
|
81
77
|
{ operation, i }: { operation: string; i: number }
|
|
82
|
-
): Promise<INodeExecutionData | INodeExecutionData[]
|
|
78
|
+
): Promise<INodeExecutionData | INodeExecutionData[]> {
|
|
83
79
|
switch (operation) {
|
|
84
80
|
case 'createSingleObject': {
|
|
85
81
|
return {
|
|
@@ -119,35 +115,6 @@ export async function dataOperations(
|
|
|
119
115
|
case 'getSingleFile': {
|
|
120
116
|
return await operations.getSingleFile.execute.call(this, i);
|
|
121
117
|
}
|
|
122
|
-
case 'createManyObjects': {
|
|
123
|
-
const result = await operations.createManyObjects.execute.call(
|
|
124
|
-
this,
|
|
125
|
-
i
|
|
126
|
-
);
|
|
127
|
-
return result && { json: result };
|
|
128
|
-
}
|
|
129
|
-
case 'updateManyObjects': {
|
|
130
|
-
const result = await operations.updateManyObjects.execute.call(
|
|
131
|
-
this,
|
|
132
|
-
i
|
|
133
|
-
);
|
|
134
|
-
return result && { json: result };
|
|
135
|
-
}
|
|
136
|
-
case 'createOrUpdateManyObjects': {
|
|
137
|
-
const result =
|
|
138
|
-
await operations.createOrUpdateManyObjects.execute.call(
|
|
139
|
-
this,
|
|
140
|
-
i
|
|
141
|
-
);
|
|
142
|
-
return result && { json: result };
|
|
143
|
-
}
|
|
144
|
-
case 'startBulkImport': {
|
|
145
|
-
const result = await operations.startBulkImport.execute.call(
|
|
146
|
-
this,
|
|
147
|
-
i
|
|
148
|
-
);
|
|
149
|
-
return result && { json: result };
|
|
150
|
-
}
|
|
151
118
|
}
|
|
152
119
|
|
|
153
120
|
throw new NodeOperationError(
|
|
@@ -22,20 +22,3 @@ export * as getManyObjects from './getManyObjects.operation';
|
|
|
22
22
|
* @group Resources
|
|
23
23
|
*/
|
|
24
24
|
export * as getSingleFile from './getSingleFile.operation';
|
|
25
|
-
/**
|
|
26
|
-
* @group Resources
|
|
27
|
-
*/
|
|
28
|
-
export * as createManyObjects from './createManyObjects.operation';
|
|
29
|
-
/**
|
|
30
|
-
* @group Resources
|
|
31
|
-
*/
|
|
32
|
-
export * as updateManyObjects from './updateManyObjects.operation';
|
|
33
|
-
/**
|
|
34
|
-
* @group Resources
|
|
35
|
-
*/
|
|
36
|
-
export * as createOrUpdateManyObjects from './createOrUpdateManyObjects.operation';
|
|
37
|
-
/**
|
|
38
|
-
* @group Resources
|
|
39
|
-
* @deprecated Use createManyObjects, updateManyObjects, or createOrUpdateManyObjects instead.
|
|
40
|
-
*/
|
|
41
|
-
export * as startBulkImport from './deprecated-startBulkImport.operation';
|
|
@@ -41,11 +41,3 @@ export {
|
|
|
41
41
|
fetchSingleUserById,
|
|
42
42
|
fetchSingleUserByLimeobjectId,
|
|
43
43
|
} from './users';
|
|
44
|
-
export {
|
|
45
|
-
BulkImportJobResponse,
|
|
46
|
-
BulkImportJobPayload,
|
|
47
|
-
createBulkImportJob,
|
|
48
|
-
uploadBulkImportData,
|
|
49
|
-
getBulkImportJobStatus,
|
|
50
|
-
waitForBulkImportJob,
|
|
51
|
-
} from './bulkimport';
|
|
@@ -103,30 +103,6 @@ function deserializeLimetype(limetype: LimetypeCrmApiResponse): Limetype {
|
|
|
103
103
|
} as Limetype;
|
|
104
104
|
}
|
|
105
105
|
|
|
106
|
-
type RelatedTypeLinks = {
|
|
107
|
-
related_type?: {
|
|
108
|
-
name: string;
|
|
109
|
-
};
|
|
110
|
-
};
|
|
111
|
-
|
|
112
|
-
function getRelatedLimetypeName(property: {
|
|
113
|
-
_links?: unknown;
|
|
114
|
-
}): string | undefined {
|
|
115
|
-
const links = property._links as RelatedTypeLinks | undefined;
|
|
116
|
-
return links?.related_type?.name;
|
|
117
|
-
}
|
|
118
|
-
|
|
119
|
-
function deserializeLimetypeProperty(
|
|
120
|
-
property: LimetypeCrmApiResponse
|
|
121
|
-
): LimetypeProperty {
|
|
122
|
-
const relatedLimetype = getRelatedLimetypeName(property);
|
|
123
|
-
|
|
124
|
-
return {
|
|
125
|
-
...removeKeys(property, ['_links', '_embedded']),
|
|
126
|
-
...(relatedLimetype ? { relatedLimetype } : {}),
|
|
127
|
-
} as LimetypeProperty;
|
|
128
|
-
}
|
|
129
|
-
|
|
130
106
|
/**
|
|
131
107
|
* Fetch all available Limetypes from the Lime CRM API, including their properties.
|
|
132
108
|
*
|
|
@@ -225,10 +201,16 @@ export async function getProperties(
|
|
|
225
201
|
}
|
|
226
202
|
);
|
|
227
203
|
if (response.success) {
|
|
228
|
-
const properties = response.data._embedded?.properties ?? [];
|
|
229
204
|
return {
|
|
230
205
|
success: true,
|
|
231
|
-
data:
|
|
206
|
+
data:
|
|
207
|
+
response.data._embedded.properties.map(
|
|
208
|
+
(property) =>
|
|
209
|
+
removeKeys(property, [
|
|
210
|
+
'_links',
|
|
211
|
+
'_embedded',
|
|
212
|
+
]) as LimetypeProperty
|
|
213
|
+
) || [],
|
|
232
214
|
};
|
|
233
215
|
} else {
|
|
234
216
|
return response;
|
|
@@ -29,11 +29,11 @@ const FORMS_OBSERVABLE_WEBHOOK_NAME_PREFIX = 'N8N';
|
|
|
29
29
|
|
|
30
30
|
export class LimeFormsTrigger implements INodeType {
|
|
31
31
|
description: INodeTypeDescription = {
|
|
32
|
-
displayName: 'Lime Forms Trigger',
|
|
33
|
-
name: '
|
|
32
|
+
displayName: 'Lime CRM Forms Trigger',
|
|
33
|
+
name: 'limeCrmFormsTrigger',
|
|
34
34
|
group: ['trigger'],
|
|
35
35
|
version: 1,
|
|
36
|
-
icon: 'file:lime-
|
|
36
|
+
icon: 'file:assets/lime-crm.svg',
|
|
37
37
|
description: 'Handle webhooks from Lime Forms',
|
|
38
38
|
defaults: {
|
|
39
39
|
name: 'Lime Forms',
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
<svg viewBox="0 0 1024 1025" xmlns="http://www.w3.org/2000/svg" xml:space="preserve"><clipPath id="a"><path d="M0 .03h1024v1024H0z"/></clipPath><g clip-path="url(#a)"><path d="M92.399 480.888c0-257.059 208.719-465.779 465.78-465.779C815.28 15.109 1024 223.829 1024 480.888c0 133.713-55.806 271.139-193.403 385.355-166.779 138.45-390.39 157.35-736.15 134.525-102.653-6.785-117.502-24.319-64.468-63.444 166.694-123.047 62.42-217.167 62.42-456.436Z" style="fill:#bee034"/><clipPath id="b"><path d="M92.399 480.888c0-257.059 208.719-465.779 465.78-465.779C815.28 15.109 1024 223.829 1024 480.888c0 133.713-55.806 271.139-193.403 385.355-166.779 138.45-390.39 157.35-736.15 134.525-102.653-6.785-117.502-24.319-64.468-63.444 166.694-123.047 62.42-217.167 62.42-456.436Z"/></clipPath><g clip-path="url(#b)"><path d="M1023-361.59c0 784.587-711.326 1420.62-1588.79 1420.62C-1402.638-283.55 1023-1146.18 1023-361.59Z" style="fill:#a6efff;filter:blur(200px)"/></g><path d="M433.85 723.911c-24.702-12.757-47.23-29.226-66.813-48.596-9.088-9.002-23.765-8.959-32.768.129-9.001 9.087-8.916 23.763.171 32.766 22.911 22.698 49.236 41.941 78.121 56.873 11.392 5.888 25.385 1.409 31.231-9.94 5.888-11.349 1.409-25.344-9.942-31.232Zm367.266-363.98a270.163 270.163 0 0 1 25.556 78.547c2.048 12.629 13.952 21.206 26.581 19.158 12.586-2.006 21.204-13.951 19.156-26.539a316.387 316.387 0 0 0-29.907-92.029c-5.803-11.434-19.754-15.999-31.146-10.24-11.393 5.76-16 19.713-10.24 31.103Zm-51.497 315.384c-19.584 19.37-42.069 35.839-66.815 48.596-11.349 5.888-15.786 19.883-9.94 31.232 5.887 11.349 19.881 15.828 31.229 9.94 28.929-14.932 55.253-34.175 78.164-56.873 9.045-9.003 9.131-23.679.128-32.766-9.002-9.088-23.678-9.131-32.766-.129ZM517.006 213.546a274.904 274.904 0 0 1 41.343-3.114c14.036 0 27.861 1.066 41.343 3.114 12.629 1.919 24.448-6.784 26.367-19.413 1.962-12.628-6.741-24.446-19.371-26.409a322.626 322.626 0 0 0-48.339-3.627 322.201 322.201 0 0 0-48.34 3.627c-12.672 1.963-21.332 13.781-19.413 26.409 1.92 12.629 13.739 21.332 26.41 19.413Zm41.343 490.355c-40.489 0-73.385 32.853-73.385 73.342s32.896 73.385 73.385 73.385c40.489 0 73.342-32.896 73.342-73.385 0-40.489-32.853-73.342-73.342-73.342ZM290.025 438.478c4.481-27.818 13.227-54.227 25.514-78.547 5.761-11.39 1.195-25.343-10.239-31.103-11.392-5.759-25.343-1.194-31.104 10.24a313.893 313.893 0 0 0-29.908 92.029c-2.048 12.588 6.527 24.533 19.157 26.539 12.629 2.048 24.532-6.529 26.58-19.158Zm479.092 112.254c-12.501 38.527 8.618 79.955 47.102 92.456 38.528 12.502 79.956-8.618 92.457-47.104 12.501-38.525-8.619-79.953-47.103-92.455-38.527-12.501-79.955 8.619-92.456 47.103Zm-80.51-247.802c32.766 23.808 78.675 16.554 102.482-16.212 23.808-32.767 16.512-78.675-16.256-102.482-32.723-23.809-78.675-16.512-102.439 16.254-23.808 32.725-16.555 78.633 16.213 102.44Zm-260.558 0c32.766-23.807 40.063-69.715 16.254-102.44-23.807-32.766-69.715-40.063-102.482-16.254-32.766 23.807-40.02 69.715-16.255 102.482 23.806 32.766 69.758 40.02 102.483 16.212Zm-80.51 247.802c-12.501-38.484-53.929-59.604-92.415-47.103-38.526 12.502-59.645 53.93-47.102 92.455 12.501 38.486 53.929 59.606 92.413 47.104 38.528-12.501 59.605-53.929 47.104-92.456Z" style="fill:#fff"/></g></svg>
|
package/package.json
CHANGED
|
@@ -1,14 +1,13 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@limetech/n8n-nodes-lime",
|
|
3
|
-
"version": "
|
|
3
|
+
"version": "3.1.0",
|
|
4
4
|
"description": "n8n node to connect to Lime CRM",
|
|
5
5
|
"license": "Apache-2.0",
|
|
6
6
|
"main": "nodes/index.ts",
|
|
7
7
|
"scripts": {
|
|
8
8
|
"build": "tsc && copyfiles \"nodes/**/*.svg\" dist",
|
|
9
9
|
"dev": "tsc --watch",
|
|
10
|
-
"
|
|
11
|
-
"watch": "concurrently \"npm run dev\" \"npm run dev:reload\"",
|
|
10
|
+
"watch": "tsc --watch",
|
|
12
11
|
"lint": "eslint --max-warnings=0 .",
|
|
13
12
|
"lint:fix": "eslint --max-warnings=0 . --fix",
|
|
14
13
|
"format": "prettier -c .",
|
|
@@ -31,14 +30,11 @@
|
|
|
31
30
|
"n8nNodesApiVersion": 1,
|
|
32
31
|
"credentials": [
|
|
33
32
|
"dist/credentials/LimeCrmApi.credentials.js",
|
|
34
|
-
"dist/credentials/FortnoxApi.credentials.js",
|
|
35
33
|
"dist/credentials/LimeFormsApi.credentials.js"
|
|
36
34
|
],
|
|
37
35
|
"nodes": [
|
|
38
36
|
"dist/nodes/lime-crm/LimeCrmNode.node.js",
|
|
39
37
|
"dist/nodes/lime-crm/LimeCrmTrigger.node.js",
|
|
40
|
-
"dist/nodes/fortnox/Fortnox.node.js",
|
|
41
|
-
"dist/nodes/fortnox/FortnoxTrigger.node.js",
|
|
42
38
|
"dist/nodes/lime-forms/LimeFormsTrigger.node.js"
|
|
43
39
|
]
|
|
44
40
|
},
|
|
@@ -48,26 +44,23 @@
|
|
|
48
44
|
"@semantic-release/git": "^10.0.1",
|
|
49
45
|
"@types/jest": "^30.0.0",
|
|
50
46
|
"@types/node": "^24.10.1",
|
|
51
|
-
"@types/ws": "^8.18.1",
|
|
52
|
-
"concurrently": "^9.2.1",
|
|
53
47
|
"copyfiles": "^2.4.1",
|
|
54
48
|
"eslint": "^9.39.1",
|
|
55
49
|
"jest": "^30.2.0",
|
|
56
50
|
"knip": "^5.69.0",
|
|
57
|
-
"nodemon": "^3.1.11",
|
|
58
51
|
"prettier": "^3.6.2",
|
|
59
52
|
"semantic-release": "^25.0.2",
|
|
60
53
|
"ts-jest": "^29.4.5",
|
|
61
54
|
"typedoc": "^0.28.14",
|
|
62
55
|
"typescript": "^5.9.3"
|
|
63
56
|
},
|
|
64
|
-
"dependencies": {
|
|
65
|
-
"currency-codes": "^2.2.0",
|
|
66
|
-
"ws": "^8.18.3"
|
|
67
|
-
},
|
|
68
57
|
"peerDependencies": {
|
|
69
58
|
"n8n-workflow": "^1.109.0"
|
|
70
59
|
},
|
|
60
|
+
"engines": {
|
|
61
|
+
"node": ">=24 <25",
|
|
62
|
+
"npm": ">=10"
|
|
63
|
+
},
|
|
71
64
|
"publishConfig": {
|
|
72
65
|
"access": "public"
|
|
73
66
|
}
|
|
@@ -1,61 +0,0 @@
|
|
|
1
|
-
import {
|
|
2
|
-
ICredentialType,
|
|
3
|
-
INodeProperties,
|
|
4
|
-
IHttpRequestMethods,
|
|
5
|
-
IAuthenticate,
|
|
6
|
-
ICredentialTestRequest,
|
|
7
|
-
} from 'n8n-workflow';
|
|
8
|
-
import { FORTNOX_API_CREDENTIAL_KEY } from '../nodes/fortnox/commons';
|
|
9
|
-
import { FORTNOX_BASE_URL } from '../nodes/fortnox/transport';
|
|
10
|
-
|
|
11
|
-
export class FortnoxApi implements ICredentialType {
|
|
12
|
-
name = FORTNOX_API_CREDENTIAL_KEY;
|
|
13
|
-
displayName = 'Fortnox API';
|
|
14
|
-
documentationUrl = 'https://www.fortnox.se/developer';
|
|
15
|
-
properties: INodeProperties[] = [
|
|
16
|
-
{
|
|
17
|
-
displayName: 'Token',
|
|
18
|
-
name: 'token',
|
|
19
|
-
type: 'string',
|
|
20
|
-
typeOptions: {
|
|
21
|
-
password: true,
|
|
22
|
-
},
|
|
23
|
-
default: '',
|
|
24
|
-
required: true,
|
|
25
|
-
description: 'Token for authentication with the Fortnox API',
|
|
26
|
-
},
|
|
27
|
-
{
|
|
28
|
-
displayName: 'Client Secret',
|
|
29
|
-
name: 'clientSecret',
|
|
30
|
-
type: 'string',
|
|
31
|
-
typeOptions: {
|
|
32
|
-
password: true,
|
|
33
|
-
},
|
|
34
|
-
default: '',
|
|
35
|
-
description:
|
|
36
|
-
'Unique key provided when you register your Fortnox integration',
|
|
37
|
-
},
|
|
38
|
-
];
|
|
39
|
-
|
|
40
|
-
authenticate: IAuthenticate = {
|
|
41
|
-
type: 'generic',
|
|
42
|
-
properties: {
|
|
43
|
-
headers: {
|
|
44
|
-
Authorization: '=Bearer {{$credentials.token}}',
|
|
45
|
-
Accept: 'application/json',
|
|
46
|
-
'Content-Type': 'application/json',
|
|
47
|
-
},
|
|
48
|
-
},
|
|
49
|
-
};
|
|
50
|
-
|
|
51
|
-
test: ICredentialTestRequest = {
|
|
52
|
-
request: {
|
|
53
|
-
baseURL: FORTNOX_BASE_URL,
|
|
54
|
-
url: 'invoices',
|
|
55
|
-
method: 'GET' as IHttpRequestMethods,
|
|
56
|
-
headers: {
|
|
57
|
-
Authorization: '=Bearer {{$credentials.token}}',
|
|
58
|
-
},
|
|
59
|
-
},
|
|
60
|
-
};
|
|
61
|
-
}
|
|
@@ -1,9 +0,0 @@
|
|
|
1
|
-
import { ICredentialType, INodeProperties, IAuthenticate, ICredentialTestRequest } from 'n8n-workflow';
|
|
2
|
-
export declare class FortnoxApi implements ICredentialType {
|
|
3
|
-
name: string;
|
|
4
|
-
displayName: string;
|
|
5
|
-
documentationUrl: string;
|
|
6
|
-
properties: INodeProperties[];
|
|
7
|
-
authenticate: IAuthenticate;
|
|
8
|
-
test: ICredentialTestRequest;
|
|
9
|
-
}
|
|
@@ -1,57 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.FortnoxApi = void 0;
|
|
4
|
-
const commons_1 = require("../nodes/fortnox/commons");
|
|
5
|
-
const transport_1 = require("../nodes/fortnox/transport");
|
|
6
|
-
class FortnoxApi {
|
|
7
|
-
constructor() {
|
|
8
|
-
this.name = commons_1.FORTNOX_API_CREDENTIAL_KEY;
|
|
9
|
-
this.displayName = 'Fortnox API';
|
|
10
|
-
this.documentationUrl = 'https://www.fortnox.se/developer';
|
|
11
|
-
this.properties = [
|
|
12
|
-
{
|
|
13
|
-
displayName: 'Token',
|
|
14
|
-
name: 'token',
|
|
15
|
-
type: 'string',
|
|
16
|
-
typeOptions: {
|
|
17
|
-
password: true,
|
|
18
|
-
},
|
|
19
|
-
default: '',
|
|
20
|
-
required: true,
|
|
21
|
-
description: 'Token for authentication with the Fortnox API',
|
|
22
|
-
},
|
|
23
|
-
{
|
|
24
|
-
displayName: 'Client Secret',
|
|
25
|
-
name: 'clientSecret',
|
|
26
|
-
type: 'string',
|
|
27
|
-
typeOptions: {
|
|
28
|
-
password: true,
|
|
29
|
-
},
|
|
30
|
-
default: '',
|
|
31
|
-
description: 'Unique key provided when you register your Fortnox integration',
|
|
32
|
-
},
|
|
33
|
-
];
|
|
34
|
-
this.authenticate = {
|
|
35
|
-
type: 'generic',
|
|
36
|
-
properties: {
|
|
37
|
-
headers: {
|
|
38
|
-
Authorization: '=Bearer {{$credentials.token}}',
|
|
39
|
-
Accept: 'application/json',
|
|
40
|
-
'Content-Type': 'application/json',
|
|
41
|
-
},
|
|
42
|
-
},
|
|
43
|
-
};
|
|
44
|
-
this.test = {
|
|
45
|
-
request: {
|
|
46
|
-
baseURL: transport_1.FORTNOX_BASE_URL,
|
|
47
|
-
url: 'invoices',
|
|
48
|
-
method: 'GET',
|
|
49
|
-
headers: {
|
|
50
|
-
Authorization: '=Bearer {{$credentials.token}}',
|
|
51
|
-
},
|
|
52
|
-
},
|
|
53
|
-
};
|
|
54
|
-
}
|
|
55
|
-
}
|
|
56
|
-
exports.FortnoxApi = FortnoxApi;
|
|
57
|
-
//# sourceMappingURL=FortnoxApi.credentials.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"FortnoxApi.credentials.js","sourceRoot":"","sources":["../../credentials/FortnoxApi.credentials.ts"],"names":[],"mappings":";;;AAOA,sDAAsE;AACtE,0DAA8D;AAE9D,MAAa,UAAU;IAAvB;QACI,SAAI,GAAG,oCAA0B,CAAC;QAClC,gBAAW,GAAG,aAAa,CAAC;QAC5B,qBAAgB,GAAG,kCAAkC,CAAC;QACtD,eAAU,GAAsB;YAC5B;gBACI,WAAW,EAAE,OAAO;gBACpB,IAAI,EAAE,OAAO;gBACb,IAAI,EAAE,QAAQ;gBACd,WAAW,EAAE;oBACT,QAAQ,EAAE,IAAI;iBACjB;gBACD,OAAO,EAAE,EAAE;gBACX,QAAQ,EAAE,IAAI;gBACd,WAAW,EAAE,+CAA+C;aAC/D;YACD;gBACI,WAAW,EAAE,eAAe;gBAC5B,IAAI,EAAE,cAAc;gBACpB,IAAI,EAAE,QAAQ;gBACd,WAAW,EAAE;oBACT,QAAQ,EAAE,IAAI;iBACjB;gBACD,OAAO,EAAE,EAAE;gBACX,WAAW,EACP,gEAAgE;aACvE;SACJ,CAAC;QAEF,iBAAY,GAAkB;YAC1B,IAAI,EAAE,SAAS;YACf,UAAU,EAAE;gBACR,OAAO,EAAE;oBACL,aAAa,EAAE,gCAAgC;oBAC/C,MAAM,EAAE,kBAAkB;oBAC1B,cAAc,EAAE,kBAAkB;iBACrC;aACJ;SACJ,CAAC;QAEF,SAAI,GAA2B;YAC3B,OAAO,EAAE;gBACL,OAAO,EAAE,4BAAgB;gBACzB,GAAG,EAAE,UAAU;gBACf,MAAM,EAAE,KAA4B;gBACpC,OAAO,EAAE;oBACL,aAAa,EAAE,gCAAgC;iBAClD;aACJ;SACJ,CAAC;IACN,CAAC;CAAA;AAlDD,gCAkDC"}
|