@memberjunction/core-actions 2.54.0 → 2.55.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.
Files changed (118) hide show
  1. package/dist/custom/ai/execute-ai-prompt.action.d.ts +94 -0
  2. package/dist/custom/ai/execute-ai-prompt.action.d.ts.map +1 -0
  3. package/dist/custom/ai/execute-ai-prompt.action.js +274 -0
  4. package/dist/custom/ai/execute-ai-prompt.action.js.map +1 -0
  5. package/dist/custom/communication/slack-webhook.action.d.ts +101 -0
  6. package/dist/custom/communication/slack-webhook.action.d.ts.map +1 -0
  7. package/dist/custom/communication/slack-webhook.action.js +269 -0
  8. package/dist/custom/communication/slack-webhook.action.js.map +1 -0
  9. package/dist/custom/communication/teams-webhook.action.d.ts +96 -0
  10. package/dist/custom/communication/teams-webhook.action.d.ts.map +1 -0
  11. package/dist/custom/communication/teams-webhook.action.js +275 -0
  12. package/dist/custom/communication/teams-webhook.action.js.map +1 -0
  13. package/dist/custom/data/aggregate-data.action.d.ts +91 -0
  14. package/dist/custom/data/aggregate-data.action.d.ts.map +1 -0
  15. package/dist/custom/data/aggregate-data.action.js +333 -0
  16. package/dist/custom/data/aggregate-data.action.js.map +1 -0
  17. package/dist/custom/data/csv-parser.action.d.ts +68 -0
  18. package/dist/custom/data/csv-parser.action.d.ts.map +1 -0
  19. package/dist/custom/data/csv-parser.action.js +184 -0
  20. package/dist/custom/data/csv-parser.action.js.map +1 -0
  21. package/dist/custom/data/data-mapper.action.d.ts +89 -0
  22. package/dist/custom/data/data-mapper.action.d.ts.map +1 -0
  23. package/dist/custom/data/data-mapper.action.js +325 -0
  24. package/dist/custom/data/data-mapper.action.js.map +1 -0
  25. package/dist/custom/data/json-transform.action.d.ts +57 -0
  26. package/dist/custom/data/json-transform.action.d.ts.map +1 -0
  27. package/dist/custom/data/json-transform.action.js +205 -0
  28. package/dist/custom/data/json-transform.action.js.map +1 -0
  29. package/dist/custom/data/xml-parser.action.d.ts +85 -0
  30. package/dist/custom/data/xml-parser.action.d.ts.map +1 -0
  31. package/dist/custom/data/xml-parser.action.js +326 -0
  32. package/dist/custom/data/xml-parser.action.js.map +1 -0
  33. package/dist/custom/files/excel-reader.action.d.ts +86 -0
  34. package/dist/custom/files/excel-reader.action.d.ts.map +1 -0
  35. package/dist/custom/files/excel-reader.action.js +348 -0
  36. package/dist/custom/files/excel-reader.action.js.map +1 -0
  37. package/dist/custom/files/excel-writer.action.d.ts +79 -0
  38. package/dist/custom/files/excel-writer.action.d.ts.map +1 -0
  39. package/dist/custom/files/excel-writer.action.js +325 -0
  40. package/dist/custom/files/excel-writer.action.js.map +1 -0
  41. package/dist/custom/files/file-compress.action.d.ts +90 -0
  42. package/dist/custom/files/file-compress.action.d.ts.map +1 -0
  43. package/dist/custom/files/file-compress.action.js +346 -0
  44. package/dist/custom/files/file-compress.action.js.map +1 -0
  45. package/dist/custom/files/pdf-extractor.action.d.ts +86 -0
  46. package/dist/custom/files/pdf-extractor.action.d.ts.map +1 -0
  47. package/dist/custom/files/pdf-extractor.action.js +247 -0
  48. package/dist/custom/files/pdf-extractor.action.js.map +1 -0
  49. package/dist/custom/files/pdf-generator.action.d.ts +70 -0
  50. package/dist/custom/files/pdf-generator.action.d.ts.map +1 -0
  51. package/dist/custom/files/pdf-generator.action.js +286 -0
  52. package/dist/custom/files/pdf-generator.action.js.map +1 -0
  53. package/dist/custom/integration/api-rate-limiter.action.d.ts +88 -0
  54. package/dist/custom/integration/api-rate-limiter.action.d.ts.map +1 -0
  55. package/dist/custom/integration/api-rate-limiter.action.js +363 -0
  56. package/dist/custom/integration/api-rate-limiter.action.js.map +1 -0
  57. package/dist/custom/integration/graphql-query.action.d.ts +92 -0
  58. package/dist/custom/integration/graphql-query.action.d.ts.map +1 -0
  59. package/dist/custom/integration/graphql-query.action.js +251 -0
  60. package/dist/custom/integration/graphql-query.action.js.map +1 -0
  61. package/dist/custom/integration/http-request.action.d.ts +96 -0
  62. package/dist/custom/integration/http-request.action.d.ts.map +1 -0
  63. package/dist/custom/integration/http-request.action.js +316 -0
  64. package/dist/custom/integration/http-request.action.js.map +1 -0
  65. package/dist/custom/integration/oauth-flow.action.d.ts +130 -0
  66. package/dist/custom/integration/oauth-flow.action.d.ts.map +1 -0
  67. package/dist/custom/integration/oauth-flow.action.js +624 -0
  68. package/dist/custom/integration/oauth-flow.action.js.map +1 -0
  69. package/dist/custom/security/password-strength.action.d.ts +129 -0
  70. package/dist/custom/security/password-strength.action.d.ts.map +1 -0
  71. package/dist/custom/security/password-strength.action.js +463 -0
  72. package/dist/custom/security/password-strength.action.js.map +1 -0
  73. package/dist/custom/utilities/base-file-handler.d.ts +54 -0
  74. package/dist/custom/utilities/base-file-handler.d.ts.map +1 -0
  75. package/dist/custom/utilities/base-file-handler.js +167 -0
  76. package/dist/custom/utilities/base-file-handler.js.map +1 -0
  77. package/dist/custom/utilities/index.d.ts +3 -0
  78. package/dist/custom/utilities/index.d.ts.map +1 -0
  79. package/dist/custom/utilities/index.js +19 -0
  80. package/dist/custom/utilities/index.js.map +1 -0
  81. package/dist/custom/utilities/json-param-helper.d.ts +33 -0
  82. package/dist/custom/utilities/json-param-helper.d.ts.map +1 -0
  83. package/dist/custom/utilities/json-param-helper.js +66 -0
  84. package/dist/custom/utilities/json-param-helper.js.map +1 -0
  85. package/dist/custom/web/duckduckgo-rate-limiter.d.ts +72 -0
  86. package/dist/custom/web/duckduckgo-rate-limiter.d.ts.map +1 -0
  87. package/dist/custom/web/duckduckgo-rate-limiter.js +175 -0
  88. package/dist/custom/web/duckduckgo-rate-limiter.js.map +1 -0
  89. package/dist/custom/web/web-search.action.d.ts +1 -0
  90. package/dist/custom/web/web-search.action.d.ts.map +1 -1
  91. package/dist/custom/web/web-search.action.js +48 -20
  92. package/dist/custom/web/web-search.action.js.map +1 -1
  93. package/dist/custom/workflow/conditional.action.d.ts +94 -0
  94. package/dist/custom/workflow/conditional.action.d.ts.map +1 -0
  95. package/dist/custom/workflow/conditional.action.js +274 -0
  96. package/dist/custom/workflow/conditional.action.js.map +1 -0
  97. package/dist/custom/workflow/delay.action.d.ts +76 -0
  98. package/dist/custom/workflow/delay.action.d.ts.map +1 -0
  99. package/dist/custom/workflow/delay.action.js +187 -0
  100. package/dist/custom/workflow/delay.action.js.map +1 -0
  101. package/dist/custom/workflow/loop.action.d.ts +112 -0
  102. package/dist/custom/workflow/loop.action.d.ts.map +1 -0
  103. package/dist/custom/workflow/loop.action.js +380 -0
  104. package/dist/custom/workflow/loop.action.js.map +1 -0
  105. package/dist/custom/workflow/parallel-execute.action.d.ts +105 -0
  106. package/dist/custom/workflow/parallel-execute.action.d.ts.map +1 -0
  107. package/dist/custom/workflow/parallel-execute.action.js +457 -0
  108. package/dist/custom/workflow/parallel-execute.action.js.map +1 -0
  109. package/dist/custom/workflow/retry.action.d.ts +90 -0
  110. package/dist/custom/workflow/retry.action.d.ts.map +1 -0
  111. package/dist/custom/workflow/retry.action.js +378 -0
  112. package/dist/custom/workflow/retry.action.js.map +1 -0
  113. package/dist/index.d.ts +23 -0
  114. package/dist/index.d.ts.map +1 -1
  115. package/dist/index.js +75 -0
  116. package/dist/index.js.map +1 -1
  117. package/package.json +25 -10
  118. package/readme.md +11270 -101
@@ -0,0 +1,57 @@
1
+ import { ActionResultSimple, RunActionParams } from "@memberjunction/actions-base";
2
+ import { BaseAction } from "@memberjunction/actions";
3
+ /**
4
+ * Action that transforms JSON data using JSONPath or JMESPath expressions
5
+ * Enables powerful querying and transformation of JSON structures
6
+ *
7
+ * @example
8
+ * ```typescript
9
+ * // Extract values using JSONPath
10
+ * await runAction({
11
+ * ActionName: 'JSON Transform',
12
+ * Params: [{
13
+ * Name: 'InputData',
14
+ * Value: { users: [{ name: 'John', age: 30 }, { name: 'Jane', age: 25 }] }
15
+ * }, {
16
+ * Name: 'Expression',
17
+ * Value: '$.users[?(@.age > 26)].name'
18
+ * }]
19
+ * });
20
+ *
21
+ * // Transform using JMESPath
22
+ * await runAction({
23
+ * ActionName: 'JSON Transform',
24
+ * Params: [{
25
+ * Name: 'InputData',
26
+ * Value: { items: [{ price: 10, qty: 2 }, { price: 20, qty: 1 }] }
27
+ * }, {
28
+ * Name: 'Expression',
29
+ * Value: 'items[].{total: price * qty}'
30
+ * }, {
31
+ * Name: 'TransformType',
32
+ * Value: 'JMESPath'
33
+ * }]
34
+ * });
35
+ * ```
36
+ */
37
+ export declare class JSONTransformAction extends BaseAction {
38
+ /**
39
+ * Transforms JSON data using JSONPath or JMESPath expressions
40
+ *
41
+ * @param params - The action parameters containing:
42
+ * - InputData: JSON object or array to transform
43
+ * - Expression: JSONPath or JMESPath query expression
44
+ * - TransformType: "JSONPath" | "JMESPath" (default: "JSONPath")
45
+ * - Multiple: Boolean - return all matches vs first match (JSONPath only, default: true)
46
+ * - Flatten: Boolean - flatten array results (default: false)
47
+ * - WrapScalar: Boolean - wrap scalar results in object (default: false)
48
+ *
49
+ * @returns Transformed data based on the expression
50
+ */
51
+ protected InternalRunAction(params: RunActionParams): Promise<ActionResultSimple>;
52
+ }
53
+ /**
54
+ * Loader function to ensure the JSONTransformAction class is included in the bundle
55
+ */
56
+ export declare function LoadJSONTransformAction(): void;
57
+ //# sourceMappingURL=json-transform.action.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"json-transform.action.d.ts","sourceRoot":"","sources":["../../../src/custom/data/json-transform.action.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,kBAAkB,EAAE,eAAe,EAAE,MAAM,8BAA8B,CAAC;AACnF,OAAO,EAAE,UAAU,EAAE,MAAM,yBAAyB,CAAC;AAMrD;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAiCG;AACH,qBACa,mBAAoB,SAAQ,UAAU;IAE/C;;;;;;;;;;;;OAYG;cACa,iBAAiB,CAAC,MAAM,EAAE,eAAe,GAAG,OAAO,CAAC,kBAAkB,CAAC;CAiH1F;AAED;;GAEG;AACH,wBAAgB,uBAAuB,SAEtC"}
@@ -0,0 +1,205 @@
1
+ "use strict";
2
+ var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
3
+ if (k2 === undefined) k2 = k;
4
+ var desc = Object.getOwnPropertyDescriptor(m, k);
5
+ if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
6
+ desc = { enumerable: true, get: function() { return m[k]; } };
7
+ }
8
+ Object.defineProperty(o, k2, desc);
9
+ }) : (function(o, m, k, k2) {
10
+ if (k2 === undefined) k2 = k;
11
+ o[k2] = m[k];
12
+ }));
13
+ var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
14
+ Object.defineProperty(o, "default", { enumerable: true, value: v });
15
+ }) : function(o, v) {
16
+ o["default"] = v;
17
+ });
18
+ var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {
19
+ var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
20
+ if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
21
+ else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
22
+ return c > 3 && r && Object.defineProperty(target, key, r), r;
23
+ };
24
+ var __importStar = (this && this.__importStar) || function (mod) {
25
+ if (mod && mod.__esModule) return mod;
26
+ var result = {};
27
+ if (mod != null) for (var k in mod) if (k !== "default" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);
28
+ __setModuleDefault(result, mod);
29
+ return result;
30
+ };
31
+ Object.defineProperty(exports, "__esModule", { value: true });
32
+ exports.LoadJSONTransformAction = exports.JSONTransformAction = void 0;
33
+ const actions_1 = require("@memberjunction/actions");
34
+ const global_1 = require("@memberjunction/global");
35
+ const jsonpath_plus_1 = require("jsonpath-plus");
36
+ const jmespath = __importStar(require("jmespath"));
37
+ const json_param_helper_1 = require("../utilities/json-param-helper");
38
+ /**
39
+ * Action that transforms JSON data using JSONPath or JMESPath expressions
40
+ * Enables powerful querying and transformation of JSON structures
41
+ *
42
+ * @example
43
+ * ```typescript
44
+ * // Extract values using JSONPath
45
+ * await runAction({
46
+ * ActionName: 'JSON Transform',
47
+ * Params: [{
48
+ * Name: 'InputData',
49
+ * Value: { users: [{ name: 'John', age: 30 }, { name: 'Jane', age: 25 }] }
50
+ * }, {
51
+ * Name: 'Expression',
52
+ * Value: '$.users[?(@.age > 26)].name'
53
+ * }]
54
+ * });
55
+ *
56
+ * // Transform using JMESPath
57
+ * await runAction({
58
+ * ActionName: 'JSON Transform',
59
+ * Params: [{
60
+ * Name: 'InputData',
61
+ * Value: { items: [{ price: 10, qty: 2 }, { price: 20, qty: 1 }] }
62
+ * }, {
63
+ * Name: 'Expression',
64
+ * Value: 'items[].{total: price * qty}'
65
+ * }, {
66
+ * Name: 'TransformType',
67
+ * Value: 'JMESPath'
68
+ * }]
69
+ * });
70
+ * ```
71
+ */
72
+ let JSONTransformAction = class JSONTransformAction extends actions_1.BaseAction {
73
+ /**
74
+ * Transforms JSON data using JSONPath or JMESPath expressions
75
+ *
76
+ * @param params - The action parameters containing:
77
+ * - InputData: JSON object or array to transform
78
+ * - Expression: JSONPath or JMESPath query expression
79
+ * - TransformType: "JSONPath" | "JMESPath" (default: "JSONPath")
80
+ * - Multiple: Boolean - return all matches vs first match (JSONPath only, default: true)
81
+ * - Flatten: Boolean - flatten array results (default: false)
82
+ * - WrapScalar: Boolean - wrap scalar results in object (default: false)
83
+ *
84
+ * @returns Transformed data based on the expression
85
+ */
86
+ async InternalRunAction(params) {
87
+ try {
88
+ // Extract parameters
89
+ let inputData;
90
+ try {
91
+ inputData = json_param_helper_1.JSONParamHelper.getRequiredJSONParam(params, 'InputData');
92
+ }
93
+ catch (error) {
94
+ return {
95
+ Success: false,
96
+ Message: error instanceof Error ? error.message : String(error),
97
+ ResultCode: "MISSING_PARAMETERS"
98
+ };
99
+ }
100
+ const expressionParam = params.Params.find(p => p.Name.trim().toLowerCase() === 'expression');
101
+ const transformTypeParam = params.Params.find(p => p.Name.trim().toLowerCase() === 'transformtype');
102
+ const multipleParam = params.Params.find(p => p.Name.trim().toLowerCase() === 'multiple');
103
+ const flattenParam = params.Params.find(p => p.Name.trim().toLowerCase() === 'flatten');
104
+ const wrapScalarParam = params.Params.find(p => p.Name.trim().toLowerCase() === 'wrapscalar');
105
+ // Validate required parameters
106
+ if (!expressionParam?.Value) {
107
+ return {
108
+ Success: false,
109
+ Message: "Expression parameter is required",
110
+ ResultCode: "MISSING_PARAMETERS"
111
+ };
112
+ }
113
+ const expression = expressionParam.Value.toString();
114
+ const transformType = (transformTypeParam?.Value?.toString() || 'JSONPath').toUpperCase();
115
+ const multiple = multipleParam?.Value?.toString()?.toLowerCase() === 'true' ?? true;
116
+ const flatten = flattenParam?.Value?.toString()?.toLowerCase() === 'true' ?? false;
117
+ const wrapScalar = wrapScalarParam?.Value?.toString()?.toLowerCase() === 'true' ?? false;
118
+ let result;
119
+ if (transformType === 'JSONPATH') {
120
+ // Use JSONPath
121
+ try {
122
+ const options = {
123
+ path: expression,
124
+ json: inputData,
125
+ resultType: (multiple ? 'all' : 'value'),
126
+ wrap: false,
127
+ flatten: flatten
128
+ };
129
+ result = (0, jsonpath_plus_1.JSONPath)(options);
130
+ // Handle empty results
131
+ if (result === undefined || (Array.isArray(result) && result.length === 0)) {
132
+ result = null;
133
+ }
134
+ }
135
+ catch (error) {
136
+ return {
137
+ Success: false,
138
+ Message: `JSONPath error: ${error instanceof Error ? error.message : String(error)}`,
139
+ ResultCode: "EXPRESSION_ERROR"
140
+ };
141
+ }
142
+ }
143
+ else if (transformType === 'JMESPATH') {
144
+ // Use JMESPath
145
+ try {
146
+ result = jmespath.search(inputData, expression);
147
+ }
148
+ catch (error) {
149
+ return {
150
+ Success: false,
151
+ Message: `JMESPath error: ${error instanceof Error ? error.message : String(error)}`,
152
+ ResultCode: "EXPRESSION_ERROR"
153
+ };
154
+ }
155
+ }
156
+ else {
157
+ return {
158
+ Success: false,
159
+ Message: `Invalid TransformType: ${transformType}. Must be 'JSONPath' or 'JMESPath'`,
160
+ ResultCode: "INVALID_PARAMETERS"
161
+ };
162
+ }
163
+ // Wrap scalar results if requested
164
+ if (wrapScalar && (typeof result === 'string' || typeof result === 'number' || typeof result === 'boolean')) {
165
+ result = { value: result };
166
+ }
167
+ // Prepare output
168
+ const output = {
169
+ result: result,
170
+ transformType: transformType,
171
+ expression: expression,
172
+ inputType: Array.isArray(inputData) ? 'array' : typeof inputData,
173
+ resultType: result === null ? 'null' : Array.isArray(result) ? 'array' : typeof result
174
+ };
175
+ // Add match count for arrays
176
+ if (Array.isArray(result)) {
177
+ output['matchCount'] = result.length;
178
+ }
179
+ return {
180
+ Success: true,
181
+ ResultCode: "SUCCESS",
182
+ Message: JSON.stringify(output, null, 2)
183
+ };
184
+ }
185
+ catch (error) {
186
+ return {
187
+ Success: false,
188
+ Message: `Failed to transform JSON: ${error instanceof Error ? error.message : String(error)}`,
189
+ ResultCode: "FAILED"
190
+ };
191
+ }
192
+ }
193
+ };
194
+ exports.JSONTransformAction = JSONTransformAction;
195
+ exports.JSONTransformAction = JSONTransformAction = __decorate([
196
+ (0, global_1.RegisterClass)(actions_1.BaseAction, "JSON Transform")
197
+ ], JSONTransformAction);
198
+ /**
199
+ * Loader function to ensure the JSONTransformAction class is included in the bundle
200
+ */
201
+ function LoadJSONTransformAction() {
202
+ // Stub function to prevent tree shaking
203
+ }
204
+ exports.LoadJSONTransformAction = LoadJSONTransformAction;
205
+ //# sourceMappingURL=json-transform.action.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"json-transform.action.js","sourceRoot":"","sources":["../../../src/custom/data/json-transform.action.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,85 @@
1
+ import { ActionResultSimple, RunActionParams } from "@memberjunction/actions-base";
2
+ import { BaseFileHandlerAction } from "../utilities/base-file-handler";
3
+ /**
4
+ * Action that parses XML data and extracts content using XPath expressions
5
+ * Supports namespaces, various return types, and multiple input sources
6
+ *
7
+ * @example
8
+ * ```typescript
9
+ * // Parse XML and extract with XPath
10
+ * await runAction({
11
+ * ActionName: 'XML Parser',
12
+ * Params: [{
13
+ * Name: 'XMLData',
14
+ * Value: '<users><user id="1"><name>John</name></user><user id="2"><name>Jane</name></user></users>'
15
+ * }, {
16
+ * Name: 'XPathExpression',
17
+ * Value: '//user[@id="1"]/name/text()'
18
+ * }]
19
+ * });
20
+ *
21
+ * // Parse XML with namespaces
22
+ * await runAction({
23
+ * ActionName: 'XML Parser',
24
+ * Params: [{
25
+ * Name: 'XMLData',
26
+ * Value: '<ns:root xmlns:ns="http://example.com"><ns:value>Test</ns:value></ns:root>'
27
+ * }, {
28
+ * Name: 'XPathExpression',
29
+ * Value: '//ns:value/text()'
30
+ * }, {
31
+ * Name: 'NamespaceMap',
32
+ * Value: { ns: 'http://example.com' }
33
+ * }]
34
+ * });
35
+ *
36
+ * // Convert entire XML to JSON
37
+ * await runAction({
38
+ * ActionName: 'XML Parser',
39
+ * Params: [{
40
+ * Name: 'XMLData',
41
+ * Value: '<root><item>Value 1</item><item>Value 2</item></root>'
42
+ * }]
43
+ * });
44
+ * ```
45
+ */
46
+ export declare class XMLParserAction extends BaseFileHandlerAction {
47
+ /**
48
+ * Parses XML and extracts data using XPath expressions
49
+ *
50
+ * @param params - The action parameters containing:
51
+ * - XMLData: String containing XML data (direct input)
52
+ * - FileID: UUID of MJ Storage file (alternative)
53
+ * - FileURL: URL of XML file (alternative)
54
+ * - XPathExpression: XPath query to extract data (optional - if not provided, converts entire XML to JSON)
55
+ * - NamespaceMap: Object mapping namespace prefixes to URIs
56
+ * - ReturnType: "string" | "number" | "boolean" | "node" | "nodes" | "json" (default: "string")
57
+ * - PreserveAttributes: Boolean - include attributes in JSON conversion (default: true)
58
+ * - ExplicitArray: Boolean - always put child nodes in array (default: false)
59
+ * - IgnoreAttributes: Boolean - ignore attributes in conversion (default: false)
60
+ *
61
+ * @returns Extracted data based on XPath or full JSON conversion
62
+ */
63
+ protected InternalRunAction(params: RunActionParams): Promise<ActionResultSimple>;
64
+ /**
65
+ * Extract data using XPath
66
+ */
67
+ private extractWithXPath;
68
+ /**
69
+ * Convert node to string
70
+ */
71
+ private nodeToString;
72
+ /**
73
+ * Convert node to JSON representation
74
+ */
75
+ private nodeToJSON;
76
+ /**
77
+ * Convert entire XML to JSON using xml2js
78
+ */
79
+ private convertToJSON;
80
+ }
81
+ /**
82
+ * Loader function to ensure the XMLParserAction class is included in the bundle
83
+ */
84
+ export declare function LoadXMLParserAction(): void;
85
+ //# sourceMappingURL=xml-parser.action.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"xml-parser.action.d.ts","sourceRoot":"","sources":["../../../src/custom/data/xml-parser.action.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,kBAAkB,EAAE,eAAe,EAAE,MAAM,8BAA8B,CAAC;AAEnF,OAAO,EAAE,qBAAqB,EAAE,MAAM,gCAAgC,CAAC;AAMvE;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA0CG;AACH,qBACa,eAAgB,SAAQ,qBAAqB;IAEtD;;;;;;;;;;;;;;;OAeG;cACa,iBAAiB,CAAC,MAAM,EAAE,eAAe,GAAG,OAAO,CAAC,kBAAkB,CAAC;IAwEvF;;OAEG;YACW,gBAAgB;IAiE9B;;OAEG;IACH,OAAO,CAAC,YAAY;IASpB;;OAEG;IACH,OAAO,CAAC,UAAU;IA4DlB;;OAEG;YACW,aAAa;CAqB9B;AAED;;GAEG;AACH,wBAAgB,mBAAmB,SAElC"}