n8n-nodes-hudu 1.3.5 → 1.4.1

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.
Files changed (105) hide show
  1. package/README.md +28 -12
  2. package/dist/nodes/Hudu/Hudu.node.js +2 -18
  3. package/dist/nodes/Hudu/Hudu.node.js.map +1 -1
  4. package/dist/nodes/Hudu/Hudu.node.ts +2 -30
  5. package/dist/nodes/Hudu/descriptions/asset_layout_fields.description.js +38 -32
  6. package/dist/nodes/Hudu/descriptions/asset_layout_fields.description.js.map +1 -1
  7. package/dist/nodes/Hudu/descriptions/asset_layout_fields.description.ts +450 -446
  8. package/dist/nodes/Hudu/descriptions/asset_layouts.description.js +112 -18
  9. package/dist/nodes/Hudu/descriptions/asset_layouts.description.js.map +1 -1
  10. package/dist/nodes/Hudu/descriptions/asset_layouts.description.ts +112 -18
  11. package/dist/nodes/Hudu/descriptions/assets.description.js +100 -123
  12. package/dist/nodes/Hudu/descriptions/assets.description.js.map +1 -1
  13. package/dist/nodes/Hudu/descriptions/assets.description.ts +587 -609
  14. package/dist/nodes/Hudu/descriptions/index.js +0 -3
  15. package/dist/nodes/Hudu/descriptions/index.js.map +1 -1
  16. package/dist/nodes/Hudu/descriptions/index.ts +0 -3
  17. package/dist/nodes/Hudu/descriptions/resources.js +0 -12
  18. package/dist/nodes/Hudu/descriptions/resources.js.map +1 -1
  19. package/dist/nodes/Hudu/descriptions/resources.ts +0 -12
  20. package/dist/nodes/Hudu/optionLoaders/asset_layouts/getAssetLayoutFields.js +122 -70
  21. package/dist/nodes/Hudu/optionLoaders/asset_layouts/getAssetLayoutFields.js.map +1 -1
  22. package/dist/nodes/Hudu/optionLoaders/asset_layouts/getAssetLayoutFields.ts +143 -107
  23. package/dist/nodes/Hudu/optionLoaders/asset_layouts/index.js +0 -1
  24. package/dist/nodes/Hudu/optionLoaders/asset_layouts/index.js.map +1 -1
  25. package/dist/nodes/Hudu/optionLoaders/asset_layouts/index.ts +0 -1
  26. package/dist/nodes/Hudu/optionLoaders/assets/index.js +1 -2
  27. package/dist/nodes/Hudu/optionLoaders/assets/index.js.map +1 -1
  28. package/dist/nodes/Hudu/optionLoaders/assets/index.ts +1 -2
  29. package/dist/nodes/Hudu/resources/asset_layout_fields/asset_layout_fields.handler.js +32 -75
  30. package/dist/nodes/Hudu/resources/asset_layout_fields/asset_layout_fields.handler.js.map +1 -1
  31. package/dist/nodes/Hudu/resources/asset_layout_fields/asset_layout_fields.handler.ts +43 -139
  32. package/dist/nodes/Hudu/resources/asset_layouts/asset_layouts.handler.js +9 -11
  33. package/dist/nodes/Hudu/resources/asset_layouts/asset_layouts.handler.js.map +1 -1
  34. package/dist/nodes/Hudu/resources/asset_layouts/asset_layouts.handler.ts +12 -12
  35. package/dist/nodes/Hudu/resources/assets/assets.handler.js +116 -56
  36. package/dist/nodes/Hudu/resources/assets/assets.handler.js.map +1 -1
  37. package/dist/nodes/Hudu/resources/assets/assets.handler.ts +171 -60
  38. package/dist/nodes/Hudu/resources/assets/assets.types.ts +43 -43
  39. package/dist/nodes/Hudu/resources/index.js +0 -6
  40. package/dist/nodes/Hudu/resources/index.js.map +1 -1
  41. package/dist/nodes/Hudu/resources/index.ts +0 -12
  42. package/dist/nodes/Hudu/resources/procedures/procedures.handler.js +1 -3
  43. package/dist/nodes/Hudu/resources/procedures/procedures.handler.js.map +1 -1
  44. package/dist/nodes/Hudu/resources/procedures/procedures.handler.ts +1 -3
  45. package/dist/nodes/Hudu/utils/assetFieldUtils.js +273 -0
  46. package/dist/nodes/Hudu/utils/assetFieldUtils.js.map +1 -0
  47. package/dist/nodes/Hudu/utils/assetFieldUtils.ts +437 -0
  48. package/dist/nodes/Hudu/utils/constants.js +1 -0
  49. package/dist/nodes/Hudu/utils/constants.js.map +1 -1
  50. package/dist/nodes/Hudu/utils/constants.ts +1 -0
  51. package/dist/nodes/Hudu/utils/debugConfig.js +4 -1
  52. package/dist/nodes/Hudu/utils/debugConfig.js.map +1 -1
  53. package/dist/nodes/Hudu/utils/debugConfig.ts +6 -1
  54. package/dist/nodes/Hudu/utils/errorParser.js +57 -0
  55. package/dist/nodes/Hudu/utils/errorParser.js.map +1 -0
  56. package/dist/nodes/Hudu/utils/errorParser.ts +90 -0
  57. package/dist/nodes/Hudu/utils/fieldErrorUtils.js +17 -0
  58. package/dist/nodes/Hudu/utils/fieldErrorUtils.js.map +1 -0
  59. package/dist/nodes/Hudu/utils/fieldErrorUtils.ts +57 -0
  60. package/dist/nodes/Hudu/utils/fieldTypeUtils.js +145 -0
  61. package/dist/nodes/Hudu/utils/fieldTypeUtils.js.map +1 -0
  62. package/dist/nodes/Hudu/utils/fieldTypeUtils.ts +220 -0
  63. package/dist/nodes/Hudu/utils/index.js +3 -0
  64. package/dist/nodes/Hudu/utils/index.js.map +1 -1
  65. package/dist/nodes/Hudu/utils/index.ts +25 -19
  66. package/dist/nodes/Hudu/utils/requestUtils.js +71 -24
  67. package/dist/nodes/Hudu/utils/requestUtils.js.map +1 -1
  68. package/dist/nodes/Hudu/utils/requestUtils.ts +88 -26
  69. package/package.json +1 -1
  70. package/dist/nodes/Hudu/descriptions/HuduAssetCustomFieldDescription.js +0 -75
  71. package/dist/nodes/Hudu/descriptions/HuduAssetCustomFieldDescription.js.map +0 -1
  72. package/dist/nodes/Hudu/descriptions/HuduAssetCustomFieldDescription.ts +0 -73
  73. package/dist/nodes/Hudu/descriptions/HuduAssetLinkFieldDescription.js +0 -77
  74. package/dist/nodes/Hudu/descriptions/HuduAssetLinkFieldDescription.js.map +0 -1
  75. package/dist/nodes/Hudu/descriptions/HuduAssetLinkFieldDescription.ts +0 -75
  76. package/dist/nodes/Hudu/descriptions/HuduAssetStandardFieldDescription.js +0 -74
  77. package/dist/nodes/Hudu/descriptions/HuduAssetStandardFieldDescription.js.map +0 -1
  78. package/dist/nodes/Hudu/descriptions/HuduAssetStandardFieldDescription.ts +0 -72
  79. package/dist/nodes/Hudu/optionLoaders/asset_layouts/getAssetLinkFields.js +0 -51
  80. package/dist/nodes/Hudu/optionLoaders/asset_layouts/getAssetLinkFields.js.map +0 -1
  81. package/dist/nodes/Hudu/optionLoaders/asset_layouts/getAssetLinkFields.ts +0 -70
  82. package/dist/nodes/Hudu/optionLoaders/assets/getAssetCustomFields.js +0 -71
  83. package/dist/nodes/Hudu/optionLoaders/assets/getAssetCustomFields.js.map +0 -1
  84. package/dist/nodes/Hudu/optionLoaders/assets/getAssetCustomFields.ts +0 -80
  85. package/dist/nodes/Hudu/optionLoaders/assets/getLinkableAssets.js +0 -117
  86. package/dist/nodes/Hudu/optionLoaders/assets/getLinkableAssets.js.map +0 -1
  87. package/dist/nodes/Hudu/optionLoaders/assets/getLinkableAssets.ts +0 -147
  88. package/dist/nodes/Hudu/resources/assetCustomField/assetCustomField.handler.js +0 -222
  89. package/dist/nodes/Hudu/resources/assetCustomField/assetCustomField.handler.js.map +0 -1
  90. package/dist/nodes/Hudu/resources/assetCustomField/assetCustomField.handler.ts +0 -293
  91. package/dist/nodes/Hudu/resources/assetCustomField/assetCustomField.types.js +0 -3
  92. package/dist/nodes/Hudu/resources/assetCustomField/assetCustomField.types.js.map +0 -1
  93. package/dist/nodes/Hudu/resources/assetCustomField/assetCustomField.types.ts +0 -1
  94. package/dist/nodes/Hudu/resources/assetLinkField/assetLinkField.handler.js +0 -262
  95. package/dist/nodes/Hudu/resources/assetLinkField/assetLinkField.handler.js.map +0 -1
  96. package/dist/nodes/Hudu/resources/assetLinkField/assetLinkField.handler.ts +0 -363
  97. package/dist/nodes/Hudu/resources/assetLinkField/assetLinkField.types.js +0 -3
  98. package/dist/nodes/Hudu/resources/assetLinkField/assetLinkField.types.js.map +0 -1
  99. package/dist/nodes/Hudu/resources/assetLinkField/assetLinkField.types.ts +0 -1
  100. package/dist/nodes/Hudu/resources/assetStandardField/assetStandardField.handler.js +0 -93
  101. package/dist/nodes/Hudu/resources/assetStandardField/assetStandardField.handler.js.map +0 -1
  102. package/dist/nodes/Hudu/resources/assetStandardField/assetStandardField.handler.ts +0 -141
  103. package/dist/nodes/Hudu/resources/assetStandardField/assetStandardField.types.js +0 -3
  104. package/dist/nodes/Hudu/resources/assetStandardField/assetStandardField.types.js.map +0 -1
  105. package/dist/nodes/Hudu/resources/assetStandardField/assetStandardField.types.ts +0 -1
@@ -1,75 +0,0 @@
1
- import { INodeProperties } from 'n8n-workflow';
2
-
3
- export const assetLinkFieldProperties: INodeProperties[] = [
4
- {
5
- displayName: 'Operation',
6
- name: 'operation',
7
- type: 'options',
8
- noDataExpression: true,
9
- displayOptions: {
10
- show: {
11
- resource: ['assetLinkField'],
12
- },
13
- },
14
- options: [
15
- {
16
- name: 'Get',
17
- value: 'get',
18
- description: 'Retrieve the linked asset(s) for a specific asset link field on a Hudu asset',
19
- action: 'Get an asset link field value',
20
- },
21
- {
22
- name: 'Update',
23
- value: 'update',
24
- description: 'Modify the linked asset(s) for a specific asset link field on a Hudu asset',
25
- action: 'Update an asset link field value',
26
- },
27
- ],
28
- default: 'get',
29
- },
30
- {
31
- displayName: 'Asset ID',
32
- name: 'assetId',
33
- type: 'number',
34
- required: true,
35
- default: undefined,
36
- placeholder: 'Enter the Asset ID',
37
- description: 'The numeric ID of the asset. You can use an <a href="https://docs.n8n.io/code/expressions/">expression</a> to specify this dynamically.',
38
- displayOptions: {
39
- show: {
40
- resource: ['assetLinkField'],
41
- },
42
- },
43
- },
44
- {
45
- displayName: 'Link Field Identifier Name or ID',
46
- name: 'fieldIdentifier',
47
- type: 'options',
48
- required: true,
49
- displayOptions: {
50
- show: {
51
- resource: ['assetLinkField'],
52
- },
53
- },
54
- typeOptions: {
55
- loadOptionsMethod: 'getAssetLinkFields',
56
- loadOptionsDependsOn: ['assetId'],
57
- },
58
- default: '',
59
- description: 'Choose from the list, or specify an ID using an <a href="https://docs.n8n.io/code/expressions/">expression</a>',
60
- },
61
- {
62
- displayName: 'Linked Asset ID(s)',
63
- name: 'value',
64
- type: 'string',
65
- default: '',
66
- description: 'A comma-separated string of asset IDs to link (e.g., \'123,456\'). You can use an <a href="https://docs.n8n.io/code/expressions/">expression</a> to dynamically set linked assets.',
67
- displayOptions: {
68
- show: {
69
- resource: ['assetLinkField'],
70
- operation: ['update'],
71
- },
72
- },
73
- placeholder: 'e.g., 101,202,303',
74
- },
75
- ];
@@ -1,74 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.assetStandardFieldDescription = void 0;
4
- exports.assetStandardFieldDescription = [
5
- {
6
- displayName: 'Operation',
7
- name: 'operation',
8
- type: 'options',
9
- noDataExpression: true,
10
- displayOptions: {
11
- show: {
12
- resource: ['assetStandardField'],
13
- },
14
- },
15
- options: [
16
- {
17
- name: 'Get',
18
- value: 'get',
19
- description: 'Retrieve the value of a specific standard field from a Hudu asset',
20
- action: 'Get an asset standard field value',
21
- },
22
- {
23
- name: 'Update',
24
- value: 'update',
25
- description: 'Modify the value of a specific standard field for a Hudu asset',
26
- action: 'Update an asset standard field value',
27
- },
28
- ],
29
- default: 'get',
30
- },
31
- {
32
- displayName: 'Asset Name or ID',
33
- name: 'assetId',
34
- type: 'string',
35
- required: true,
36
- displayOptions: {
37
- show: {
38
- resource: ['assetStandardField'],
39
- },
40
- },
41
- default: '',
42
- description: 'Enter the Asset ID. This is a plain input field.',
43
- },
44
- {
45
- displayName: 'Field Identifier Name or ID',
46
- name: 'fieldIdentifier',
47
- type: 'options',
48
- required: true,
49
- displayOptions: {
50
- show: {
51
- resource: ['assetStandardField'],
52
- },
53
- },
54
- typeOptions: {
55
- loadOptionsMethod: 'getStandardAssetFields',
56
- },
57
- default: '',
58
- description: 'Choose from the list, or specify an ID using an <a href="https://docs.n8n.io/code/expressions/">expression</a>',
59
- },
60
- {
61
- displayName: 'Value',
62
- name: 'value',
63
- type: 'string',
64
- default: '',
65
- description: 'The new value to assign to the selected standard field. This is only applicable for the Update operation. Ensure the value is compatible with the field\'s expected data type (e.g., true/false for Archived, a number for numeric fields).',
66
- displayOptions: {
67
- show: {
68
- resource: ['assetStandardField'],
69
- operation: ['update'],
70
- },
71
- },
72
- },
73
- ];
74
- //# sourceMappingURL=HuduAssetStandardFieldDescription.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"HuduAssetStandardFieldDescription.js","sourceRoot":"","sources":["../../../../../src/nodes/Hudu/descriptions/HuduAssetStandardFieldDescription.ts"],"names":[],"mappings":";;;AAEa,QAAA,6BAA6B,GAAsB;IAC/D;QACC,WAAW,EAAE,WAAW;QACxB,IAAI,EAAE,WAAW;QACjB,IAAI,EAAE,SAAS;QACf,gBAAgB,EAAE,IAAI;QACtB,cAAc,EAAE;YACf,IAAI,EAAE;gBACL,QAAQ,EAAE,CAAC,oBAAoB,CAAC;aAChC;SACD;QACD,OAAO,EAAE;YACR;gBACC,IAAI,EAAE,KAAK;gBACX,KAAK,EAAE,KAAK;gBACZ,WAAW,EAAE,mEAAmE;gBAChF,MAAM,EAAE,mCAAmC;aAC3C;YACD;gBACC,IAAI,EAAE,QAAQ;gBACd,KAAK,EAAE,QAAQ;gBACf,WAAW,EAAE,gEAAgE;gBAC7E,MAAM,EAAE,sCAAsC;aAC9C;SACD;QACD,OAAO,EAAE,KAAK;KACd;IACD;QACC,WAAW,EAAE,kBAAkB;QAC/B,IAAI,EAAE,SAAS;QACf,IAAI,EAAE,QAAQ;QACd,QAAQ,EAAE,IAAI;QACd,cAAc,EAAE;YACf,IAAI,EAAE;gBACL,QAAQ,EAAE,CAAC,oBAAoB,CAAC;aAChC;SACD;QACD,OAAO,EAAE,EAAE;QACX,WAAW,EAAE,kDAAkD;KAC/D;IACD;QACC,WAAW,EAAE,6BAA6B;QAC1C,IAAI,EAAE,iBAAiB;QACvB,IAAI,EAAE,SAAS;QACf,QAAQ,EAAE,IAAI;QACd,cAAc,EAAE;YACf,IAAI,EAAE;gBACL,QAAQ,EAAE,CAAC,oBAAoB,CAAC;aAChC;SACD;QACD,WAAW,EAAE;YACZ,iBAAiB,EAAE,wBAAwB;SAC3C;QACD,OAAO,EAAE,EAAE;QACX,WAAW,EAAE,gHAAgH;KAC7H;IACD;QACC,WAAW,EAAE,OAAO;QACpB,IAAI,EAAE,OAAO;QACb,IAAI,EAAE,QAAQ;QACd,OAAO,EAAE,EAAE;QACX,WAAW,EAAE,6OAA6O;QAC1P,cAAc,EAAE;YACf,IAAI,EAAE;gBACL,QAAQ,EAAE,CAAC,oBAAoB,CAAC;gBAChC,SAAS,EAAE,CAAC,QAAQ,CAAC;aACrB;SACD;KACD;CACD,CAAC"}
@@ -1,72 +0,0 @@
1
- import { INodeProperties } from 'n8n-workflow';
2
-
3
- export const assetStandardFieldDescription: INodeProperties[] = [
4
- {
5
- displayName: 'Operation',
6
- name: 'operation',
7
- type: 'options',
8
- noDataExpression: true,
9
- displayOptions: {
10
- show: {
11
- resource: ['assetStandardField'],
12
- },
13
- },
14
- options: [
15
- {
16
- name: 'Get',
17
- value: 'get',
18
- description: 'Retrieve the value of a specific standard field from a Hudu asset',
19
- action: 'Get an asset standard field value',
20
- },
21
- {
22
- name: 'Update',
23
- value: 'update',
24
- description: 'Modify the value of a specific standard field for a Hudu asset',
25
- action: 'Update an asset standard field value',
26
- },
27
- ],
28
- default: 'get',
29
- },
30
- {
31
- displayName: 'Asset Name or ID',
32
- name: 'assetId',
33
- type: 'string',
34
- required: true,
35
- displayOptions: {
36
- show: {
37
- resource: ['assetStandardField'],
38
- },
39
- },
40
- default: '',
41
- description: 'Enter the Asset ID. This is a plain input field.',
42
- },
43
- {
44
- displayName: 'Field Identifier Name or ID',
45
- name: 'fieldIdentifier',
46
- type: 'options',
47
- required: true,
48
- displayOptions: {
49
- show: {
50
- resource: ['assetStandardField'],
51
- },
52
- },
53
- typeOptions: {
54
- loadOptionsMethod: 'getStandardAssetFields',
55
- },
56
- default: '',
57
- description: 'Choose from the list, or specify an ID using an <a href="https://docs.n8n.io/code/expressions/">expression</a>',
58
- },
59
- {
60
- displayName: 'Value',
61
- name: 'value',
62
- type: 'string',
63
- default: '',
64
- description: 'The new value to assign to the selected standard field. This is only applicable for the Update operation. Ensure the value is compatible with the field\'s expected data type (e.g., true/false for Archived, a number for numeric fields).',
65
- displayOptions: {
66
- show: {
67
- resource: ['assetStandardField'],
68
- operation: ['update'],
69
- },
70
- },
71
- },
72
- ];
@@ -1,51 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.getAssetLinkFields = void 0;
4
- const requestUtils_1 = require("../../utils/requestUtils");
5
- const debugConfig_1 = require("../../utils/debugConfig");
6
- const operations_1 = require("../../utils/operations");
7
- const constants_1 = require("../../utils/constants");
8
- async function getAssetLinkFields() {
9
- const assetId = this.getCurrentNodeParameter('assetId');
10
- if (!assetId || isNaN(Number(assetId)) || Number(assetId) <= 0) {
11
- return [{ name: 'Please Enter a Valid Asset ID First', value: '' }];
12
- }
13
- try {
14
- (0, debugConfig_1.debugLog)('[OPTION_LOADING] Fetching asset link fields for asset ID:', assetId);
15
- const assetResponse = await requestUtils_1.huduApiRequest.call(this, 'GET', '/assets', {}, { id: assetId });
16
- if (!assetResponse || !assetResponse.assets || !assetResponse.assets.length) {
17
- (0, debugConfig_1.debugLog)('[OPTION_LOADING] No asset found with ID:', assetId);
18
- return [{ name: `Asset with ID ${assetId} Not Found`, value: '' }];
19
- }
20
- const asset = assetResponse.assets[0];
21
- const layoutId = asset.asset_layout_id;
22
- if (!layoutId) {
23
- (0, debugConfig_1.debugLog)('[OPTION_LOADING] Asset has no layout ID');
24
- return [{ name: 'Asset Has No Associated Layout', value: '' }];
25
- }
26
- (0, debugConfig_1.debugLog)('[OPTION_LOADING] Fetching layout details for ID:', layoutId);
27
- const layoutResponse = await operations_1.handleGetOperation.call(this, '/asset_layouts', layoutId);
28
- const layout = layoutResponse.asset_layout;
29
- if (!layout || !Array.isArray(layout.fields)) {
30
- (0, debugConfig_1.debugLog)('[OPTION_LOADING] Layout not found or has no fields');
31
- return [{ name: 'Layout Not Found or Has No Fields', value: '' }];
32
- }
33
- const assetTagFields = layout.fields.filter((field) => field.field_type === constants_1.ASSET_LAYOUT_FIELD_TYPES.ASSET_TAG && !field.is_destroyed);
34
- (0, debugConfig_1.debugLog)('[OPTION_LOADING] Found asset link fields:', { count: assetTagFields.length });
35
- if (assetTagFields.length === 0) {
36
- (0, debugConfig_1.debugLog)('[OPTION_LOADING] No asset link fields found in layout');
37
- return [{ name: 'No Asset Link Fields Found for This Asset', value: 'NO_LINK_FIELDS_FOUND' }];
38
- }
39
- return assetTagFields.map(field => ({
40
- name: field.label,
41
- value: field.label,
42
- description: field.hint || undefined,
43
- }));
44
- }
45
- catch (error) {
46
- (0, debugConfig_1.debugLog)('[OPTION_LOADING] Error in getAssetLinkFields:', error);
47
- return [{ name: `Error: ${error.message}`, value: '' }];
48
- }
49
- }
50
- exports.getAssetLinkFields = getAssetLinkFields;
51
- //# sourceMappingURL=getAssetLinkFields.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"getAssetLinkFields.js","sourceRoot":"","sources":["../../../../../../src/nodes/Hudu/optionLoaders/asset_layouts/getAssetLinkFields.ts"],"names":[],"mappings":"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"}
@@ -1,70 +0,0 @@
1
- import type { ILoadOptionsFunctions } from 'n8n-workflow';
2
- import { huduApiRequest } from '../../utils/requestUtils';
3
- import { debugLog } from '../../utils/debugConfig';
4
- import { handleGetOperation } from '../../utils/operations';
5
- import type { IAssetLayoutFieldEntity } from '../../resources/asset_layout_fields/asset_layout_fields.types';
6
- import { ASSET_LAYOUT_FIELD_TYPES } from '../../utils/constants';
7
- import type { IAssetResponse } from '../../resources/assets/assets.types';
8
-
9
- /**
10
- * Loads asset link fields (fields of type AssetTag) for a given asset.
11
- * Used as a loadOptionsMethod for the assetLinkField resource dropdown in n8n.
12
- *
13
- * @param this - n8n ILoadOptionsFunctions context
14
- * @returns Array of options for asset link fields
15
- */
16
- export async function getAssetLinkFields(
17
- this: ILoadOptionsFunctions,
18
- ): Promise<{ name: string; value: string; description?: string }[]> {
19
- const assetId = this.getCurrentNodeParameter('assetId') as string | number;
20
- if (!assetId || isNaN(Number(assetId)) || Number(assetId) <= 0) {
21
- return [{ name: 'Please Enter a Valid Asset ID First', value: '' }];
22
- }
23
-
24
- try {
25
- debugLog('[OPTION_LOADING] Fetching asset link fields for asset ID:', assetId);
26
-
27
- // Fetch the asset to get its layout ID
28
- const assetResponse = await huduApiRequest.call(this, 'GET', '/assets', {}, { id: assetId }) as IAssetResponse;
29
- if (!assetResponse || !assetResponse.assets || !assetResponse.assets.length) {
30
- debugLog('[OPTION_LOADING] No asset found with ID:', assetId);
31
- return [{ name: `Asset with ID ${assetId} Not Found`, value: '' }];
32
- }
33
-
34
- const asset = assetResponse.assets[0];
35
- const layoutId = asset.asset_layout_id;
36
- if (!layoutId) {
37
- debugLog('[OPTION_LOADING] Asset has no layout ID');
38
- return [{ name: 'Asset Has No Associated Layout', value: '' }];
39
- }
40
-
41
- // Fetch the layout
42
- debugLog('[OPTION_LOADING] Fetching layout details for ID:', layoutId);
43
- const layoutResponse = await handleGetOperation.call(this, '/asset_layouts', layoutId);
44
- const layout = (layoutResponse as { asset_layout: { fields: IAssetLayoutFieldEntity[] } }).asset_layout;
45
- if (!layout || !Array.isArray(layout.fields)) {
46
- debugLog('[OPTION_LOADING] Layout not found or has no fields');
47
- return [{ name: 'Layout Not Found or Has No Fields', value: '' }];
48
- }
49
-
50
- // Filter for ASSET_TAG fields
51
- const assetTagFields = layout.fields.filter((field: IAssetLayoutFieldEntity) => field.field_type === ASSET_LAYOUT_FIELD_TYPES.ASSET_TAG && !field.is_destroyed);
52
- debugLog('[OPTION_LOADING] Found asset link fields:', { count: assetTagFields.length });
53
-
54
- // Return message if no asset link fields are found
55
- if (assetTagFields.length === 0) {
56
- debugLog('[OPTION_LOADING] No asset link fields found in layout');
57
- return [{ name: 'No Asset Link Fields Found for This Asset', value: 'NO_LINK_FIELDS_FOUND' }];
58
- }
59
-
60
- // Return as options
61
- return assetTagFields.map(field => ({
62
- name: field.label,
63
- value: field.label,
64
- description: field.hint || undefined,
65
- }));
66
- } catch (error) {
67
- debugLog('[OPTION_LOADING] Error in getAssetLinkFields:', error);
68
- return [{ name: `Error: ${(error as Error).message}`, value: '' }];
69
- }
70
- }
@@ -1,71 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.getAssetCustomFields = void 0;
4
- const n8n_workflow_1 = require("n8n-workflow");
5
- const requestUtils_1 = require("../../utils/requestUtils");
6
- const debugConfig_1 = require("../../utils/debugConfig");
7
- async function getAssetCustomFields() {
8
- var _a;
9
- const assetId = this.getCurrentNodeParameter('assetId');
10
- if (!assetId || isNaN(Number(assetId)) || Number(assetId) <= 0) {
11
- return [{ name: 'Please Enter a Valid Asset ID First', value: '' }];
12
- }
13
- try {
14
- (0, debugConfig_1.debugLog)('[OPTION_LOADING] Fetching custom fields for asset ID:', assetId);
15
- const response = await requestUtils_1.huduApiRequest.call(this, 'GET', '/assets', {}, { id: assetId });
16
- const assets = Array.isArray(response.assets) ? response.assets : [];
17
- if (!assets.length) {
18
- (0, debugConfig_1.debugLog)('[OPTION_LOADING] No asset found with ID:', assetId);
19
- return [{ name: `Asset with ID ${assetId} not found`, value: '' }];
20
- }
21
- const fields = Array.isArray(assets[0].fields) ? assets[0].fields : [];
22
- (0, debugConfig_1.debugLog)('[OPTION_LOADING] Found fields for asset:', { count: fields.length });
23
- (0, debugConfig_1.debugLog)('[OPTION_LOADING] Field labels and types (raw):', fields.map((f) => ({ label: f.label, type: f.field_type })));
24
- const assetLayoutId = assets[0].asset_layout_id;
25
- let layoutFields = [];
26
- if (assetLayoutId) {
27
- try {
28
- const layoutResponse = await requestUtils_1.huduApiRequest.call(this, 'GET', `/asset_layouts/${assetLayoutId}`);
29
- layoutFields = Array.isArray((_a = layoutResponse.asset_layout) === null || _a === void 0 ? void 0 : _a.fields)
30
- ? layoutResponse.asset_layout.fields
31
- : [];
32
- (0, debugConfig_1.debugLog)('[OPTION_LOADING] Asset layout fields retrieved', { count: layoutFields.length });
33
- }
34
- catch (layoutError) {
35
- (0, debugConfig_1.debugLog)('[OPTION_LOADING] Error fetching asset layout:', layoutError);
36
- }
37
- }
38
- if (!layoutFields.length) {
39
- (0, debugConfig_1.debugLog)('[OPTION_LOADING] No layout fields found, cannot build picklist');
40
- return [{ name: 'No Custom Fields Found for This Asset', value: 'NO_CUSTOM_FIELDS_FOUND' }];
41
- }
42
- const assetFieldValueMap = new Map();
43
- for (const field of fields) {
44
- if (field.label) {
45
- assetFieldValueMap.set(field.label, field.value);
46
- }
47
- }
48
- const customFields = layoutFields
49
- .filter((layoutField) => layoutField.field_type !== 'AssetTag')
50
- .map((layoutField) => {
51
- const value = assetFieldValueMap.get(layoutField.label);
52
- return {
53
- name: layoutField.label,
54
- value: layoutField.label,
55
- description: layoutField.field_type + (value !== undefined && value !== null ? ` (Current value: ${value})` : ''),
56
- };
57
- });
58
- (0, debugConfig_1.debugLog)('[OPTION_LOADING] Custom fields from layout:', customFields);
59
- if (customFields.length === 0) {
60
- (0, debugConfig_1.debugLog)('[OPTION_LOADING] No custom fields found for asset/layout');
61
- return [{ name: 'No Custom Fields Found for This Asset', value: 'NO_CUSTOM_FIELDS_FOUND' }];
62
- }
63
- return customFields;
64
- }
65
- catch (error) {
66
- (0, debugConfig_1.debugLog)('[OPTION_LOADING] Error in getAssetCustomFields:', error);
67
- throw new n8n_workflow_1.NodeOperationError(this.getNode(), `Failed to load custom fields for asset: ${error.message}`);
68
- }
69
- }
70
- exports.getAssetCustomFields = getAssetCustomFields;
71
- //# sourceMappingURL=getAssetCustomFields.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"getAssetCustomFields.js","sourceRoot":"","sources":["../../../../../../src/nodes/Hudu/optionLoaders/assets/getAssetCustomFields.ts"],"names":[],"mappings":"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"}
@@ -1,80 +0,0 @@
1
- import type { ILoadOptionsFunctions, INodePropertyOptions, IDataObject } from 'n8n-workflow';
2
- import { NodeOperationError } from 'n8n-workflow';
3
- import { huduApiRequest } from '../../utils/requestUtils';
4
- import { debugLog } from '../../utils/debugConfig';
5
-
6
- export async function getAssetCustomFields(
7
- this: ILoadOptionsFunctions,
8
- ): Promise<INodePropertyOptions[]> {
9
- const assetId = this.getCurrentNodeParameter('assetId') as string | number;
10
- if (!assetId || isNaN(Number(assetId)) || Number(assetId) <= 0) {
11
- return [{ name: 'Please Enter a Valid Asset ID First', value: '' }];
12
- }
13
-
14
- try {
15
- debugLog('[OPTION_LOADING] Fetching custom fields for asset ID:', assetId);
16
- const response = await huduApiRequest.call(this, 'GET', '/assets', {}, { id: assetId }) as IDataObject;
17
- const assets = Array.isArray(response.assets) ? response.assets : [];
18
-
19
- if (!assets.length) {
20
- debugLog('[OPTION_LOADING] No asset found with ID:', assetId);
21
- return [{ name: `Asset with ID ${assetId} not found`, value: '' }];
22
- }
23
-
24
- const fields = Array.isArray(assets[0].fields) ? assets[0].fields : [];
25
- debugLog('[OPTION_LOADING] Found fields for asset:', { count: fields.length });
26
- debugLog('[OPTION_LOADING] Field labels and types (raw):', fields.map((f: any) => ({ label: f.label, type: f.field_type })));
27
-
28
- // Fetch asset layout to get field types
29
- const assetLayoutId = assets[0].asset_layout_id;
30
- let layoutFields: any[] = [];
31
- if (assetLayoutId) {
32
- try {
33
- const layoutResponse = await huduApiRequest.call(this, 'GET', `/asset_layouts/${assetLayoutId}`) as IDataObject;
34
- layoutFields = Array.isArray((layoutResponse.asset_layout as IDataObject)?.fields)
35
- ? (layoutResponse.asset_layout as IDataObject).fields as IDataObject[]
36
- : [];
37
- debugLog('[OPTION_LOADING] Asset layout fields retrieved', { count: layoutFields.length });
38
- } catch (layoutError) {
39
- debugLog('[OPTION_LOADING] Error fetching asset layout:', layoutError);
40
- }
41
- }
42
-
43
- // Build picklist from layout fields, not asset fields
44
- if (!layoutFields.length) {
45
- debugLog('[OPTION_LOADING] No layout fields found, cannot build picklist');
46
- return [{ name: 'No Custom Fields Found for This Asset', value: 'NO_CUSTOM_FIELDS_FOUND' }];
47
- }
48
-
49
- // Map asset field values by label for quick lookup
50
- const assetFieldValueMap = new Map<string, any>();
51
- for (const field of fields) {
52
- if (field.label) {
53
- assetFieldValueMap.set(field.label, field.value);
54
- }
55
- }
56
-
57
- // Build picklist from layout fields
58
- const customFields = layoutFields
59
- .filter((layoutField: any) => layoutField.field_type !== 'AssetTag')
60
- .map((layoutField: any) => {
61
- const value = assetFieldValueMap.get(layoutField.label);
62
- return {
63
- name: layoutField.label,
64
- value: layoutField.label,
65
- description: layoutField.field_type + (value !== undefined && value !== null ? ` (Current value: ${value})` : ''),
66
- };
67
- });
68
- debugLog('[OPTION_LOADING] Custom fields from layout:', customFields);
69
-
70
- if (customFields.length === 0) {
71
- debugLog('[OPTION_LOADING] No custom fields found for asset/layout');
72
- return [{ name: 'No Custom Fields Found for This Asset', value: 'NO_CUSTOM_FIELDS_FOUND' }];
73
- }
74
-
75
- return customFields;
76
- } catch (error) {
77
- debugLog('[OPTION_LOADING] Error in getAssetCustomFields:', error);
78
- throw new NodeOperationError(this.getNode(), `Failed to load custom fields for asset: ${(error as Error).message}`);
79
- }
80
- }
@@ -1,117 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.getLinkableAssets = void 0;
4
- const requestUtils_1 = require("../../utils/requestUtils");
5
- const debugConfig_1 = require("../../utils/debugConfig");
6
- const utils_1 = require("../../utils");
7
- async function getLinkableAssets() {
8
- try {
9
- const assetId = this.getCurrentNodeParameter('assetId');
10
- const fieldIdentifier = this.getCurrentNodeParameter('fieldIdentifier');
11
- let sameCompanyOnly;
12
- try {
13
- const rawValue = this.getCurrentNodeParameter('sameCompanyOnly');
14
- if (typeof rawValue === 'boolean') {
15
- sameCompanyOnly = rawValue;
16
- }
17
- else if (rawValue === 'true') {
18
- sameCompanyOnly = true;
19
- }
20
- else if (rawValue === 'false') {
21
- sameCompanyOnly = false;
22
- }
23
- else {
24
- sameCompanyOnly = true;
25
- }
26
- }
27
- catch (error) {
28
- sameCompanyOnly = true;
29
- }
30
- (0, debugConfig_1.debugLog)('[OPTION_LOADING] getLinkableAssets parameters:', {
31
- assetId,
32
- fieldIdentifier,
33
- sameCompanyOnly,
34
- sameCompanyOnlyType: typeof sameCompanyOnly
35
- });
36
- if (!assetId || !fieldIdentifier) {
37
- (0, debugConfig_1.debugLog)('[OPTION_LOADING] Missing required parameters:', { assetId, fieldIdentifier });
38
- return [];
39
- }
40
- (0, debugConfig_1.debugLog)('[OPTION_LOADING] Fetching asset details for ID:', assetId);
41
- const assetResp = await requestUtils_1.huduApiRequest.call(this, 'GET', '/assets', {}, { id: assetId });
42
- (0, debugConfig_1.debugLog)('[OPTION_LOADING] Asset API response:', assetResp);
43
- const assetsArr = Array.isArray(assetResp.assets) ? assetResp.assets : [];
44
- if (!assetsArr.length) {
45
- (0, debugConfig_1.debugLog)('[OPTION_LOADING] No asset found with ID:', assetId);
46
- return [];
47
- }
48
- const asset = assetsArr[0];
49
- (0, debugConfig_1.debugLog)('[OPTION_LOADING] Found asset:', asset);
50
- const companyId = asset.company_id;
51
- const assetLayoutId = asset.asset_layout_id;
52
- if (!companyId || !assetLayoutId) {
53
- (0, debugConfig_1.debugLog)('[OPTION_LOADING] Asset missing company_id or asset_layout_id:', { companyId, assetLayoutId });
54
- return [];
55
- }
56
- (0, debugConfig_1.debugLog)('[OPTION_LOADING] Fetching asset layout:', assetLayoutId);
57
- const layoutResp = await requestUtils_1.huduApiRequest.call(this, 'GET', `/asset_layouts/${assetLayoutId}`);
58
- (0, debugConfig_1.debugLog)('[OPTION_LOADING] Asset layout response:', layoutResp);
59
- const layoutData = layoutResp.asset_layout || layoutResp;
60
- (0, debugConfig_1.debugLog)('[OPTION_LOADING] Using layout data:', layoutData);
61
- const layoutFields = Array.isArray(layoutData.fields) ? layoutData.fields : [];
62
- (0, debugConfig_1.debugLog)('[OPTION_LOADING] Found layout fields:', layoutFields);
63
- if (layoutFields.length === 0) {
64
- (0, debugConfig_1.debugLog)('[OPTION_LOADING] No fields found in layout');
65
- return [];
66
- }
67
- (0, debugConfig_1.debugLog)('[OPTION_LOADING] Looking for field with label:', fieldIdentifier);
68
- const linkField = layoutFields.find((f) => {
69
- (0, debugConfig_1.debugLog)('[OPTION_LOADING] Comparing field:', { fieldLabel: f.label, fieldIdentifier });
70
- return f.label === fieldIdentifier;
71
- });
72
- if (!linkField) {
73
- (0, debugConfig_1.debugLog)('[OPTION_LOADING] No field found with label:', fieldIdentifier);
74
- return [];
75
- }
76
- (0, debugConfig_1.debugLog)('[OPTION_LOADING] Found link field:', linkField);
77
- const linkableId = linkField.linkable_id;
78
- (0, debugConfig_1.debugLog)('[OPTION_LOADING] Link field linkable_id:', linkableId);
79
- const qs = { archived: false };
80
- if (linkableId && linkableId > 0) {
81
- qs.asset_layout_id = linkableId;
82
- (0, debugConfig_1.debugLog)('[OPTION_LOADING] Filtering by asset_layout_id:', linkableId);
83
- }
84
- else {
85
- (0, debugConfig_1.debugLog)('[OPTION_LOADING] Not filtering by asset_layout_id (linkable_id is 0 or missing)');
86
- }
87
- (0, debugConfig_1.debugLog)('[OPTION_LOADING] sameCompanyOnly value and type:', {
88
- value: sameCompanyOnly,
89
- type: typeof sameCompanyOnly,
90
- truthyCheck: !!sameCompanyOnly
91
- });
92
- if (sameCompanyOnly === true) {
93
- qs.company_id = companyId;
94
- (0, debugConfig_1.debugLog)('[OPTION_LOADING] Filtering by company_id:', companyId);
95
- }
96
- else {
97
- delete qs.company_id;
98
- (0, debugConfig_1.debugLog)('[OPTION_LOADING] NOT filtering by company_id (sameCompanyOnly is false)');
99
- }
100
- (0, debugConfig_1.debugLog)('[OPTION_LOADING] Beginning paginated asset fetch with query:', qs);
101
- const allAssets = await utils_1.handleListing.call(this, 'GET', '/assets', 'assets', {}, qs, true, 0);
102
- (0, debugConfig_1.debugLog)('[OPTION_LOADING] Finished fetching assets, total count:', allAssets.length);
103
- const result = allAssets.map((a) => ({
104
- name: a.name,
105
- value: a.id,
106
- description: a.asset_type ? `Type: ${a.asset_type}` : undefined,
107
- }));
108
- (0, debugConfig_1.debugLog)('[OPTION_LOADING] Returning options count:', result.length);
109
- return result;
110
- }
111
- catch (error) {
112
- (0, debugConfig_1.debugLog)('[OPTION_LOADING] Error in getLinkableAssets:', error);
113
- return [];
114
- }
115
- }
116
- exports.getLinkableAssets = getLinkableAssets;
117
- //# sourceMappingURL=getLinkableAssets.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"getLinkableAssets.js","sourceRoot":"","sources":["../../../../../../src/nodes/Hudu/optionLoaders/assets/getLinkableAssets.ts"],"names":[],"mappings":";;;AACA,2DAA0D;AAC1D,yDAAmD;AACnD,uCAA4C;AAErC,KAAK,UAAU,iBAAiB;IAGrC,IAAI;QACF,MAAM,OAAO,GAAG,IAAI,CAAC,uBAAuB,CAAC,SAAS,CAAW,CAAC;QAClE,MAAM,eAAe,GAAG,IAAI,CAAC,uBAAuB,CAAC,iBAAiB,CAAW,CAAC;QAClF,IAAI,eAAwB,CAAC;QAC7B,IAAI;YACF,MAAM,QAAQ,GAAG,IAAI,CAAC,uBAAuB,CAAC,iBAAiB,CAAC,CAAC;YACjE,IAAI,OAAO,QAAQ,KAAK,SAAS,EAAE;gBACjC,eAAe,GAAG,QAAQ,CAAC;aAC5B;iBAAM,IAAI,QAAQ,KAAK,MAAM,EAAE;gBAC9B,eAAe,GAAG,IAAI,CAAC;aACxB;iBAAM,IAAI,QAAQ,KAAK,OAAO,EAAE;gBAC/B,eAAe,GAAG,KAAK,CAAC;aACzB;iBAAM;gBACL,eAAe,GAAG,IAAI,CAAC;aACxB;SACF;QAAC,OAAO,KAAK,EAAE;YACd,eAAe,GAAG,IAAI,CAAC;SACxB;QAED,IAAA,sBAAQ,EAAC,gDAAgD,EAAE;YACzD,OAAO;YACP,eAAe;YACf,eAAe;YACf,mBAAmB,EAAE,OAAO,eAAe;SAC5C,CAAC,CAAC;QAEH,IAAI,CAAC,OAAO,IAAI,CAAC,eAAe,EAAE;YAChC,IAAA,sBAAQ,EAAC,+CAA+C,EAAE,EAAE,OAAO,EAAE,eAAe,EAAE,CAAC,CAAC;YACxF,OAAO,EAAE,CAAC;SACX;QAGD,IAAA,sBAAQ,EAAC,iDAAiD,EAAE,OAAO,CAAC,CAAC;QACrE,MAAM,SAAS,GAAG,MAAM,6BAAc,CAAC,IAAI,CAAC,IAAI,EAAE,KAAK,EAAE,SAAS,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,OAAO,EAAE,CAAgB,CAAC;QACxG,IAAA,sBAAQ,EAAC,sCAAsC,EAAE,SAAS,CAAC,CAAC;QAE5D,MAAM,SAAS,GAAG,KAAK,CAAC,OAAO,CAAC,SAAS,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC;QAC1E,IAAI,CAAC,SAAS,CAAC,MAAM,EAAE;YACrB,IAAA,sBAAQ,EAAC,0CAA0C,EAAE,OAAO,CAAC,CAAC;YAC9D,OAAO,EAAE,CAAC;SACX;QAED,MAAM,KAAK,GAAG,SAAS,CAAC,CAAC,CAAgB,CAAC;QAC1C,IAAA,sBAAQ,EAAC,+BAA+B,EAAE,KAAK,CAAC,CAAC;QAEjD,MAAM,SAAS,GAAG,KAAK,CAAC,UAAU,CAAC;QACnC,MAAM,aAAa,GAAG,KAAK,CAAC,eAAe,CAAC;QAC5C,IAAI,CAAC,SAAS,IAAI,CAAC,aAAa,EAAE;YAChC,IAAA,sBAAQ,EAAC,+DAA+D,EAAE,EAAE,SAAS,EAAE,aAAa,EAAE,CAAC,CAAC;YACxG,OAAO,EAAE,CAAC;SACX;QAGD,IAAA,sBAAQ,EAAC,yCAAyC,EAAE,aAAa,CAAC,CAAC;QACnE,MAAM,UAAU,GAAG,MAAM,6BAAc,CAAC,IAAI,CAAC,IAAI,EAAE,KAAK,EAAE,kBAAkB,aAAa,EAAE,CAAgB,CAAC;QAC5G,IAAA,sBAAQ,EAAC,yCAAyC,EAAE,UAAU,CAAC,CAAC;QAGhE,MAAM,UAAU,GAAG,UAAU,CAAC,YAA2B,IAAI,UAAU,CAAC;QACxE,IAAA,sBAAQ,EAAC,qCAAqC,EAAE,UAAU,CAAC,CAAC;QAG5D,MAAM,YAAY,GAAG,KAAK,CAAC,OAAO,CAAC,UAAU,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,UAAU,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC;QAC/E,IAAA,sBAAQ,EAAC,uCAAuC,EAAE,YAAY,CAAC,CAAC;QAChE,IAAI,YAAY,CAAC,MAAM,KAAK,CAAC,EAAE;YAC7B,IAAA,sBAAQ,EAAC,4CAA4C,CAAC,CAAC;YACvD,OAAO,EAAE,CAAC;SACX;QAGD,IAAA,sBAAQ,EAAC,gDAAgD,EAAE,eAAe,CAAC,CAAC;QAC5E,MAAM,SAAS,GAAG,YAAY,CAAC,IAAI,CAAC,CAAC,CAAM,EAAE,EAAE;YAC7C,IAAA,sBAAQ,EAAC,mCAAmC,EAAE,EAAE,UAAU,EAAE,CAAC,CAAC,KAAK,EAAE,eAAe,EAAE,CAAC,CAAC;YACxF,OAAO,CAAC,CAAC,KAAK,KAAK,eAAe,CAAC;QACrC,CAAC,CAAC,CAAC;QAEH,IAAI,CAAC,SAAS,EAAE;YACd,IAAA,sBAAQ,EAAC,6CAA6C,EAAE,eAAe,CAAC,CAAC;YACzE,OAAO,EAAE,CAAC;SACX;QAED,IAAA,sBAAQ,EAAC,oCAAoC,EAAE,SAAS,CAAC,CAAC;QAC1D,MAAM,UAAU,GAAG,SAAS,CAAC,WAAW,CAAC;QACzC,IAAA,sBAAQ,EAAC,0CAA0C,EAAE,UAAU,CAAC,CAAC;QAGjE,MAAM,EAAE,GAAgB,EAAE,QAAQ,EAAE,KAAK,EAAE,CAAC;QAC5C,IAAI,UAAU,IAAI,UAAU,GAAG,CAAC,EAAE;YAChC,EAAE,CAAC,eAAe,GAAG,UAAU,CAAC;YAChC,IAAA,sBAAQ,EAAC,gDAAgD,EAAE,UAAU,CAAC,CAAC;SACxE;aAAM;YACL,IAAA,sBAAQ,EAAC,iFAAiF,CAAC,CAAC;SAC7F;QAED,IAAA,sBAAQ,EAAC,kDAAkD,EAAE;YAC3D,KAAK,EAAE,eAAe;YACtB,IAAI,EAAE,OAAO,eAAe;YAC5B,WAAW,EAAE,CAAC,CAAC,eAAe;SAC/B,CAAC,CAAC;QAEH,IAAI,eAAe,KAAK,IAAI,EAAE;YAC5B,EAAE,CAAC,UAAU,GAAG,SAAS,CAAC;YAC1B,IAAA,sBAAQ,EAAC,2CAA2C,EAAE,SAAS,CAAC,CAAC;SAClE;aAAM;YACL,OAAO,EAAE,CAAC,UAAU,CAAC;YACrB,IAAA,sBAAQ,EAAC,yEAAyE,CAAC,CAAC;SACrF;QAGD,IAAA,sBAAQ,EAAC,8DAA8D,EAAE,EAAE,CAAC,CAAC;QAE7E,MAAM,SAAS,GAAG,MAAM,qBAAa,CAAC,IAAI,CACxC,IAAI,EACJ,KAAK,EACL,SAAS,EACT,QAAQ,EACR,EAAE,EACF,EAAE,EACF,IAAI,EACJ,CAAC,CACe,CAAC;QAEnB,IAAA,sBAAQ,EAAC,yDAAyD,EAAE,SAAS,CAAC,MAAM,CAAC,CAAC;QAGtF,MAAM,MAAM,GAAG,SAAS,CAAC,GAAG,CAAC,CAAC,CAAM,EAAE,EAAE,CAAC,CAAC;YACxC,IAAI,EAAE,CAAC,CAAC,IAAI;YACZ,KAAK,EAAE,CAAC,CAAC,EAAE;YACX,WAAW,EAAE,CAAC,CAAC,UAAU,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,UAAU,EAAE,CAAC,CAAC,CAAC,SAAS;SAChE,CAAC,CAAC,CAAC;QAEJ,IAAA,sBAAQ,EAAC,2CAA2C,EAAE,MAAM,CAAC,MAAM,CAAC,CAAC;QACrE,OAAO,MAAM,CAAC;KACf;IAAC,OAAO,KAAK,EAAE;QACd,IAAA,sBAAQ,EAAC,8CAA8C,EAAE,KAAK,CAAC,CAAC;QAEhE,OAAO,EAAE,CAAC;KACX;AACH,CAAC;AA7ID,8CA6IC"}