@memberjunction/core-actions 6.1.0-edge.2 → 6.1.0-edge.4
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/LICENSE +180 -4
- package/README.md +17 -0
- package/dist/config.d.ts +18 -0
- package/dist/config.d.ts.map +1 -1
- package/dist/config.js +9 -0
- package/dist/config.js.map +1 -1
- package/dist/custom/ai/base-find-agents.action.d.ts +7 -5
- package/dist/custom/ai/base-find-agents.action.d.ts.map +1 -1
- package/dist/custom/ai/base-find-agents.action.js +30 -8
- package/dist/custom/ai/base-find-agents.action.js.map +1 -1
- package/dist/custom/ai/load-agent-spec.action.d.ts.map +1 -1
- package/dist/custom/ai/load-agent-spec.action.js +11 -5
- package/dist/custom/ai/load-agent-spec.action.js.map +1 -1
- package/dist/custom/ai/semantic-entity-search.helper.d.ts +17 -8
- package/dist/custom/ai/semantic-entity-search.helper.d.ts.map +1 -1
- package/dist/custom/ai/semantic-entity-search.helper.js +23 -10
- package/dist/custom/ai/semantic-entity-search.helper.js.map +1 -1
- package/dist/custom/communication/slack-webhook.action.d.ts.map +1 -1
- package/dist/custom/communication/slack-webhook.action.js +11 -10
- package/dist/custom/communication/slack-webhook.action.js.map +1 -1
- package/dist/custom/communication/teams-webhook.action.js +15 -15
- package/dist/custom/communication/teams-webhook.action.js.map +1 -1
- package/dist/custom/demo/get-stock-price.action.d.ts.map +1 -1
- package/dist/custom/demo/get-stock-price.action.js +6 -6
- package/dist/custom/demo/get-stock-price.action.js.map +1 -1
- package/dist/custom/demo/get-weather.action.d.ts.map +1 -1
- package/dist/custom/demo/get-weather.action.js +12 -12
- package/dist/custom/demo/get-weather.action.js.map +1 -1
- package/dist/custom/geo/scheduled-geocoding.action.d.ts.map +1 -1
- package/dist/custom/geo/scheduled-geocoding.action.js +6 -2
- package/dist/custom/geo/scheduled-geocoding.action.js.map +1 -1
- package/dist/custom/integration/api-rate-limiter.action.d.ts +2 -2
- package/dist/custom/integration/api-rate-limiter.action.d.ts.map +1 -1
- package/dist/custom/integration/api-rate-limiter.action.js +34 -24
- package/dist/custom/integration/api-rate-limiter.action.js.map +1 -1
- package/dist/custom/integration/gamma-generate-presentation.action.d.ts.map +1 -1
- package/dist/custom/integration/gamma-generate-presentation.action.js +13 -13
- package/dist/custom/integration/gamma-generate-presentation.action.js.map +1 -1
- package/dist/custom/integration/graphql-query.action.d.ts.map +1 -1
- package/dist/custom/integration/graphql-query.action.js +18 -7
- package/dist/custom/integration/graphql-query.action.js.map +1 -1
- package/dist/custom/integration/http-request.action.d.ts +19 -20
- package/dist/custom/integration/http-request.action.d.ts.map +1 -1
- package/dist/custom/integration/http-request.action.js +110 -121
- package/dist/custom/integration/http-request.action.js.map +1 -1
- package/dist/custom/integration/oauth-flow.action.d.ts.map +1 -1
- package/dist/custom/integration/oauth-flow.action.js +25 -37
- package/dist/custom/integration/oauth-flow.action.js.map +1 -1
- package/dist/custom/utilities/address-services.action.js +4 -4
- package/dist/custom/utilities/address-services.action.js.map +1 -1
- package/dist/custom/utilities/census-data-lookup.action.d.ts.map +1 -1
- package/dist/custom/utilities/census-data-lookup.action.js +14 -14
- package/dist/custom/utilities/census-data-lookup.action.js.map +1 -1
- package/dist/custom/utilities/ip-geolocation.action.js +10 -10
- package/dist/custom/utilities/ip-geolocation.action.js.map +1 -1
- package/dist/custom/web/google-custom-search.action.js +9 -9
- package/dist/custom/web/google-custom-search.action.js.map +1 -1
- package/dist/custom/web/perplexity-search.action.d.ts +5 -4
- package/dist/custom/web/perplexity-search.action.d.ts.map +1 -1
- package/dist/custom/web/perplexity-search.action.js +15 -14
- package/dist/custom/web/perplexity-search.action.js.map +1 -1
- package/dist/custom/web/url-link-validator.action.d.ts.map +1 -1
- package/dist/custom/web/url-link-validator.action.js +37 -9
- package/dist/custom/web/url-link-validator.action.js.map +1 -1
- package/dist/custom/web/url-metadata-extractor.action.d.ts.map +1 -1
- package/dist/custom/web/url-metadata-extractor.action.js +36 -41
- package/dist/custom/web/url-metadata-extractor.action.js.map +1 -1
- package/dist/custom/web/web-page-content.action.d.ts.map +1 -1
- package/dist/custom/web/web-page-content.action.js +11 -1
- package/dist/custom/web/web-page-content.action.js.map +1 -1
- package/package.json +40 -41
|
@@ -6,7 +6,7 @@ var __decorate = (this && this.__decorate) || function (decorators, target, key,
|
|
|
6
6
|
};
|
|
7
7
|
import { RegisterClass, BaseSingleton, MJLruCache } from "@memberjunction/global";
|
|
8
8
|
import { BaseAction } from "@memberjunction/actions";
|
|
9
|
-
import
|
|
9
|
+
import { HttpRequest, IsHttpError, SSRFError } from "@memberjunction/network-utils";
|
|
10
10
|
import { Subject, Observable } from "rxjs";
|
|
11
11
|
import { concatMap } from "rxjs/operators";
|
|
12
12
|
/**
|
|
@@ -59,10 +59,10 @@ export class APIRateLimiter {
|
|
|
59
59
|
this.queueSubscription.unsubscribe();
|
|
60
60
|
this.requestQueue$.complete();
|
|
61
61
|
}
|
|
62
|
-
async execute(
|
|
62
|
+
async execute(requestConfig) {
|
|
63
63
|
return new Promise((resolve, reject) => {
|
|
64
64
|
this.requestQueue$.next({
|
|
65
|
-
config:
|
|
65
|
+
config: requestConfig,
|
|
66
66
|
resolve,
|
|
67
67
|
reject,
|
|
68
68
|
retryCount: 0
|
|
@@ -96,7 +96,7 @@ export class APIRateLimiter {
|
|
|
96
96
|
this.requestCount++;
|
|
97
97
|
this.activeRequests++;
|
|
98
98
|
try {
|
|
99
|
-
const response = await
|
|
99
|
+
const response = await HttpRequest(request.config);
|
|
100
100
|
this.activeRequests--;
|
|
101
101
|
request.resolve(response);
|
|
102
102
|
observer.next();
|
|
@@ -105,9 +105,10 @@ export class APIRateLimiter {
|
|
|
105
105
|
catch (error) {
|
|
106
106
|
this.activeRequests--;
|
|
107
107
|
// Check if rate limited
|
|
108
|
-
const isRateLimited = error
|
|
109
|
-
error.
|
|
110
|
-
|
|
108
|
+
const isRateLimited = IsHttpError(error) &&
|
|
109
|
+
(error.Status === 429 ||
|
|
110
|
+
error.Status === 503 ||
|
|
111
|
+
error.Headers['x-ratelimit-remaining'] === '0');
|
|
111
112
|
if (isRateLimited && this.config.retryOnRateLimit && request.retryCount < this.config.maxRetries) {
|
|
112
113
|
// Calculate backoff
|
|
113
114
|
const backoffTime = this.config.backoffMs * Math.pow(2, request.retryCount);
|
|
@@ -248,16 +249,18 @@ let APIRateLimiterAction = class APIRateLimiterAction extends BaseAction {
|
|
|
248
249
|
backoffMs,
|
|
249
250
|
maxRetries
|
|
250
251
|
});
|
|
251
|
-
// Build request config
|
|
252
|
+
// Build request config. The URL is caller-controlled, so this request is SSRF-guarded
|
|
253
|
+
// (every redirect hop re-validated) — unlike the fixed-provider actions in this package.
|
|
252
254
|
const config = {
|
|
253
|
-
url,
|
|
254
|
-
|
|
255
|
-
headers,
|
|
256
|
-
timeout,
|
|
257
|
-
|
|
255
|
+
Url: url,
|
|
256
|
+
Method: method,
|
|
257
|
+
Headers: headers,
|
|
258
|
+
Timeout: timeout,
|
|
259
|
+
ValidateUrl: true,
|
|
260
|
+
ThrowOnError: false // Handle all status codes
|
|
258
261
|
};
|
|
259
262
|
if (body && ['POST', 'PUT', 'PATCH'].includes(method)) {
|
|
260
|
-
config.
|
|
263
|
+
config.Body = body;
|
|
261
264
|
}
|
|
262
265
|
// Execute with rate limiting
|
|
263
266
|
const startTime = Date.now();
|
|
@@ -277,25 +280,25 @@ let APIRateLimiterAction = class APIRateLimiterAction extends BaseAction {
|
|
|
277
280
|
'ratelimit-reset'
|
|
278
281
|
];
|
|
279
282
|
for (const header of headerNames) {
|
|
280
|
-
if (response.
|
|
281
|
-
rateLimitHeaders[header] = response.
|
|
283
|
+
if (response.Headers[header]) {
|
|
284
|
+
rateLimitHeaders[header] = response.Headers[header];
|
|
282
285
|
}
|
|
283
286
|
}
|
|
284
287
|
// Add output parameters
|
|
285
288
|
params.Params.push({
|
|
286
289
|
Name: 'ResponseStatus',
|
|
287
290
|
Type: 'Output',
|
|
288
|
-
Value: response.
|
|
291
|
+
Value: response.Status
|
|
289
292
|
});
|
|
290
293
|
params.Params.push({
|
|
291
294
|
Name: 'ResponseHeaders',
|
|
292
295
|
Type: 'Output',
|
|
293
|
-
Value: response.
|
|
296
|
+
Value: response.Headers
|
|
294
297
|
});
|
|
295
298
|
params.Params.push({
|
|
296
299
|
Name: 'ResponseData',
|
|
297
300
|
Type: 'Output',
|
|
298
|
-
Value: response.
|
|
301
|
+
Value: response.Data
|
|
299
302
|
});
|
|
300
303
|
params.Params.push({
|
|
301
304
|
Name: 'RateLimitInfo',
|
|
@@ -308,22 +311,29 @@ let APIRateLimiterAction = class APIRateLimiterAction extends BaseAction {
|
|
|
308
311
|
Value: duration
|
|
309
312
|
});
|
|
310
313
|
// Check if request was successful
|
|
311
|
-
const isSuccess = response.
|
|
314
|
+
const isSuccess = response.Status >= 200 && response.Status < 300;
|
|
312
315
|
return {
|
|
313
316
|
Success: true,
|
|
314
|
-
ResultCode: isSuccess ? "SUCCESS" : `HTTP_${response.
|
|
317
|
+
ResultCode: isSuccess ? "SUCCESS" : `HTTP_${response.Status}`,
|
|
315
318
|
Message: JSON.stringify({
|
|
316
319
|
message: "API request completed with rate limiting",
|
|
317
|
-
status: response.
|
|
318
|
-
statusText: response.
|
|
320
|
+
status: response.Status,
|
|
321
|
+
statusText: response.StatusText,
|
|
319
322
|
duration: duration,
|
|
320
323
|
rateLimitInfo: rateLimitHeaders,
|
|
321
324
|
rateLimitKey: rateLimitKey,
|
|
322
|
-
data: response.
|
|
325
|
+
data: response.Data
|
|
323
326
|
}, null, 2)
|
|
324
327
|
};
|
|
325
328
|
}
|
|
326
329
|
catch (error) {
|
|
330
|
+
if (error instanceof SSRFError) {
|
|
331
|
+
return {
|
|
332
|
+
Success: false,
|
|
333
|
+
Message: "URL resolves to a private or reserved address and was blocked",
|
|
334
|
+
ResultCode: "SSRF_BLOCKED"
|
|
335
|
+
};
|
|
336
|
+
}
|
|
327
337
|
return {
|
|
328
338
|
Success: false,
|
|
329
339
|
Message: `Rate limited API request failed: ${error instanceof Error ? error.message : String(error)}`,
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"api-rate-limiter.action.js","sourceRoot":"","sources":["../../../src/custom/integration/api-rate-limiter.action.ts"],"names":[],"mappings":";;;;;;AACA,OAAO,EAAE,aAAa,EAAE,aAAa,EAAE,UAAU,EAAE,MAAM,wBAAwB,CAAC;AAClF,OAAO,EAAE,UAAU,EAAE,MAAM,yBAAyB,CAAC;AACrD,OAAO,
|
|
1
|
+
{"version":3,"file":"api-rate-limiter.action.js","sourceRoot":"","sources":["../../../src/custom/integration/api-rate-limiter.action.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"gamma-generate-presentation.action.d.ts","sourceRoot":"","sources":["../../../src/custom/integration/gamma-generate-presentation.action.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,kBAAkB,EAAE,eAAe,EAAE,MAAM,8BAA8B,CAAC;AACnF,OAAO,EAAE,UAAU,EAAE,MAAM,yBAAyB,CAAC;
|
|
1
|
+
{"version":3,"file":"gamma-generate-presentation.action.d.ts","sourceRoot":"","sources":["../../../src/custom/integration/gamma-generate-presentation.action.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,kBAAkB,EAAE,eAAe,EAAE,MAAM,8BAA8B,CAAC;AACnF,OAAO,EAAE,UAAU,EAAE,MAAM,yBAAyB,CAAC;AAkBrD;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAgDG;AACH,qBACa,+BAAgC,SAAQ,UAAU;IAE3D;;;;;;;;;;;;;;;;;;;;;;;;OAwBG;cACa,iBAAiB,CAAC,MAAM,EAAE,eAAe,GAAG,OAAO,CAAC,kBAAkB,CAAC;IA+MvF;;OAEG;IACH,OAAO,CAAC,KAAK;IAIb;;OAEG;IACH,OAAO,CAAC,cAAc;IAMtB;;OAEG;IACH,OAAO,CAAC,eAAe;IAMvB;;OAEG;IACH,OAAO,CAAC,eAAe;IAOvB;;OAEG;IACH,OAAO,CAAC,cAAc;IAQtB;;OAEG;IACH,OAAO,CAAC,iBAAiB;CAO5B"}
|
|
@@ -6,7 +6,7 @@ var __decorate = (this && this.__decorate) || function (decorators, target, key,
|
|
|
6
6
|
};
|
|
7
7
|
import { BaseAction } from "@memberjunction/actions";
|
|
8
8
|
import { RegisterClass } from "@memberjunction/global";
|
|
9
|
-
import
|
|
9
|
+
import { HttpGet, HttpPost, IsHttpError } from "@memberjunction/network-utils";
|
|
10
10
|
import { getApiIntegrationsConfig } from "../../config.js";
|
|
11
11
|
/**
|
|
12
12
|
* Action that generates presentations using Gamma's Generations API
|
|
@@ -161,17 +161,17 @@ let GammaGeneratePresentationAction = class GammaGeneratePresentationAction exte
|
|
|
161
161
|
requestBody.imageOptions = imageOptions;
|
|
162
162
|
}
|
|
163
163
|
// Make API request to start generation
|
|
164
|
-
const response = await
|
|
165
|
-
|
|
164
|
+
const response = await HttpPost('https://public-api.gamma.app/v0.2/generations', requestBody, {
|
|
165
|
+
Headers: {
|
|
166
166
|
'X-API-KEY': apiKey,
|
|
167
167
|
'Content-Type': 'application/json'
|
|
168
168
|
},
|
|
169
|
-
|
|
169
|
+
Timeout: 60000 // 60 second timeout
|
|
170
170
|
});
|
|
171
|
-
if (!response.
|
|
171
|
+
if (!response.Data || !response.Data.generationId) {
|
|
172
172
|
return this.createErrorResult("Invalid response from Gamma API", "INVALID_RESPONSE");
|
|
173
173
|
}
|
|
174
|
-
const generationId = response.
|
|
174
|
+
const generationId = response.Data.generationId;
|
|
175
175
|
this.addOutputParam(params, 'GenerationId', generationId);
|
|
176
176
|
// If polling is disabled, return immediately
|
|
177
177
|
if (!pollStatus) {
|
|
@@ -191,13 +191,13 @@ let GammaGeneratePresentationAction = class GammaGeneratePresentationAction exte
|
|
|
191
191
|
const maxPollTimeMs = maxPollTime * 1000;
|
|
192
192
|
while (Date.now() - startTime < maxPollTimeMs) {
|
|
193
193
|
await this.sleep(pollIntervalMs);
|
|
194
|
-
const statusResponse = await
|
|
195
|
-
|
|
194
|
+
const statusResponse = await HttpGet(`https://public-api.gamma.app/v0.2/generations/${generationId}`, {
|
|
195
|
+
Headers: {
|
|
196
196
|
'X-API-KEY': apiKey
|
|
197
197
|
},
|
|
198
|
-
|
|
198
|
+
Timeout: 30000
|
|
199
199
|
});
|
|
200
|
-
const statusData = statusResponse.
|
|
200
|
+
const statusData = statusResponse.Data;
|
|
201
201
|
if (statusData.status === 'completed') {
|
|
202
202
|
// Add output parameters
|
|
203
203
|
this.addOutputParam(params, 'GammaUrl', statusData.gammaUrl);
|
|
@@ -223,9 +223,9 @@ let GammaGeneratePresentationAction = class GammaGeneratePresentationAction exte
|
|
|
223
223
|
return this.createErrorResult(`Generation timed out after ${maxPollTime} seconds. Use GenerationId to check status later.`, "GENERATION_TIMEOUT");
|
|
224
224
|
}
|
|
225
225
|
catch (error) {
|
|
226
|
-
if (
|
|
227
|
-
const status = error.
|
|
228
|
-
const errorData = error.
|
|
226
|
+
if (IsHttpError(error)) {
|
|
227
|
+
const status = error.Status;
|
|
228
|
+
const errorData = error.Data;
|
|
229
229
|
if (status === 401) {
|
|
230
230
|
return this.createErrorResult("Invalid Gamma API key. Verify your API key is correct and has proper permissions.", "INVALID_API_KEY");
|
|
231
231
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"gamma-generate-presentation.action.js","sourceRoot":"","sources":["../../../src/custom/integration/gamma-generate-presentation.action.ts"],"names":[],"mappings":";;;;;;AACA,OAAO,EAAE,UAAU,EAAE,MAAM,yBAAyB,CAAC;AACrD,OAAO,EAAE,aAAa,EAAE,MAAM,wBAAwB,CAAC;AACvD,OAAO,
|
|
1
|
+
{"version":3,"file":"gamma-generate-presentation.action.js","sourceRoot":"","sources":["../../../src/custom/integration/gamma-generate-presentation.action.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"graphql-query.action.d.ts","sourceRoot":"","sources":["../../../src/custom/integration/graphql-query.action.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,kBAAkB,EAAE,eAAe,EAAE,MAAM,8BAA8B,CAAC;AAEnF,OAAO,EAAE,UAAU,EAAE,MAAM,yBAAyB,CAAC;AAIrD;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA4DG;AACH,qBACa,kBAAmB,SAAQ,UAAU;IAE9C;;;;;;;;;;;;OAYG;cACa,iBAAiB,CAAC,MAAM,EAAE,eAAe,GAAG,OAAO,CAAC,kBAAkB,CAAC;
|
|
1
|
+
{"version":3,"file":"graphql-query.action.d.ts","sourceRoot":"","sources":["../../../src/custom/integration/graphql-query.action.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,kBAAkB,EAAE,eAAe,EAAE,MAAM,8BAA8B,CAAC;AAEnF,OAAO,EAAE,UAAU,EAAE,MAAM,yBAAyB,CAAC;AAIrD;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA4DG;AACH,qBACa,kBAAmB,SAAQ,UAAU;IAE9C;;;;;;;;;;;;OAYG;cACa,iBAAiB,CAAC,MAAM,EAAE,eAAe,GAAG,OAAO,CAAC,kBAAkB,CAAC;IAyJvF;;OAEG;IACH,OAAO,CAAC,eAAe;IAOvB;;OAEG;IACH,OAAO,CAAC,aAAa;CAIxB"}
|
|
@@ -6,8 +6,8 @@ var __decorate = (this && this.__decorate) || function (decorators, target, key,
|
|
|
6
6
|
};
|
|
7
7
|
import { RegisterClass } from "@memberjunction/global";
|
|
8
8
|
import { BaseAction } from "@memberjunction/actions";
|
|
9
|
-
import axios from "axios";
|
|
10
9
|
import { JSONParamHelper } from "../utilities/json-param-helper.js";
|
|
10
|
+
import { SafeFetch, SSRFError } from "@memberjunction/network-utils";
|
|
11
11
|
/**
|
|
12
12
|
* Action that executes GraphQL queries and mutations
|
|
13
13
|
*
|
|
@@ -106,7 +106,7 @@ let GraphQLQueryAction = class GraphQLQueryAction extends BaseAction {
|
|
|
106
106
|
ResultCode: "MISSING_QUERY"
|
|
107
107
|
};
|
|
108
108
|
}
|
|
109
|
-
// Validate endpoint URL
|
|
109
|
+
// Validate endpoint URL format
|
|
110
110
|
try {
|
|
111
111
|
new URL(endpoint);
|
|
112
112
|
}
|
|
@@ -131,11 +131,14 @@ let GraphQLQueryAction = class GraphQLQueryAction extends BaseAction {
|
|
|
131
131
|
'Accept': 'application/json',
|
|
132
132
|
...headers
|
|
133
133
|
};
|
|
134
|
-
// Make GraphQL request
|
|
135
|
-
|
|
134
|
+
// Make GraphQL request. The endpoint is caller-controlled, so route it through the
|
|
135
|
+
// SSRF guard — private/loopback/link-local/reserved targets are blocked and each
|
|
136
|
+
// redirect hop is re-validated.
|
|
137
|
+
const response = await SafeFetch(endpoint, {
|
|
138
|
+
method: 'POST',
|
|
136
139
|
headers: requestHeaders,
|
|
137
|
-
|
|
138
|
-
|
|
140
|
+
body: JSON.stringify(requestBody),
|
|
141
|
+
signal: AbortSignal.timeout(timeout)
|
|
139
142
|
});
|
|
140
143
|
// Check for HTTP errors
|
|
141
144
|
if (response.status < 200 || response.status >= 300) {
|
|
@@ -146,7 +149,8 @@ let GraphQLQueryAction = class GraphQLQueryAction extends BaseAction {
|
|
|
146
149
|
};
|
|
147
150
|
}
|
|
148
151
|
// Check for GraphQL errors
|
|
149
|
-
const
|
|
152
|
+
const responseText = await response.text();
|
|
153
|
+
const responseData = responseText.length > 0 ? JSON.parse(responseText) : {};
|
|
150
154
|
const hasErrors = responseData.errors && responseData.errors.length > 0;
|
|
151
155
|
// Add output parameters
|
|
152
156
|
if (responseData.data) {
|
|
@@ -206,6 +210,13 @@ let GraphQLQueryAction = class GraphQLQueryAction extends BaseAction {
|
|
|
206
210
|
}
|
|
207
211
|
}
|
|
208
212
|
catch (error) {
|
|
213
|
+
if (error instanceof SSRFError) {
|
|
214
|
+
return {
|
|
215
|
+
Success: false,
|
|
216
|
+
Message: "URL resolves to a private or reserved address and was blocked",
|
|
217
|
+
ResultCode: "SSRF_BLOCKED"
|
|
218
|
+
};
|
|
219
|
+
}
|
|
209
220
|
return {
|
|
210
221
|
Success: false,
|
|
211
222
|
Message: `GraphQL request failed: ${error instanceof Error ? error.message : String(error)}`,
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"graphql-query.action.js","sourceRoot":"","sources":["../../../src/custom/integration/graphql-query.action.ts"],"names":[],"mappings":";;;;;;AACA,OAAO,EAAE,aAAa,EAAE,MAAM,wBAAwB,CAAC;AACvD,OAAO,EAAE,UAAU,EAAE,MAAM,yBAAyB,CAAC;AACrD,OAAO,
|
|
1
|
+
{"version":3,"file":"graphql-query.action.js","sourceRoot":"","sources":["../../../src/custom/integration/graphql-query.action.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,7 +1,11 @@
|
|
|
1
1
|
import { ActionResultSimple, RunActionParams } from "@memberjunction/actions-base";
|
|
2
2
|
import { BaseAction } from "@memberjunction/actions";
|
|
3
3
|
/**
|
|
4
|
-
* Action that makes HTTP requests with full control over headers, authentication, and request options
|
|
4
|
+
* Action that makes HTTP requests with full control over headers, authentication, and request options.
|
|
5
|
+
*
|
|
6
|
+
* The target URL is caller-controlled, so it is routed through {@link SafeFetch}, which blocks
|
|
7
|
+
* private/loopback/link-local/reserved addresses (including the cloud metadata endpoint) and
|
|
8
|
+
* re-validates every redirect hop to defeat DNS-rebinding / redirect SSRF bypasses.
|
|
5
9
|
*
|
|
6
10
|
* @example
|
|
7
11
|
* ```typescript
|
|
@@ -31,21 +35,6 @@ import { BaseAction } from "@memberjunction/actions";
|
|
|
31
35
|
* Value: { 'Content-Type': 'application/json' }
|
|
32
36
|
* }]
|
|
33
37
|
* });
|
|
34
|
-
*
|
|
35
|
-
* // Request with authentication
|
|
36
|
-
* await runAction({
|
|
37
|
-
* ActionName: 'HTTP Request',
|
|
38
|
-
* Params: [{
|
|
39
|
-
* Name: 'URL',
|
|
40
|
-
* Value: 'https://api.example.com/protected'
|
|
41
|
-
* }, {
|
|
42
|
-
* Name: 'Authentication',
|
|
43
|
-
* Value: {
|
|
44
|
-
* type: 'bearer',
|
|
45
|
-
* token: 'your-api-token'
|
|
46
|
-
* }
|
|
47
|
-
* }]
|
|
48
|
-
* });
|
|
49
38
|
* ```
|
|
50
39
|
*/
|
|
51
40
|
export declare class HTTPRequestAction extends BaseAction {
|
|
@@ -62,18 +51,28 @@ export declare class HTTPRequestAction extends BaseAction {
|
|
|
62
51
|
* - Timeout: Request timeout in milliseconds - default: 30000
|
|
63
52
|
* - FollowRedirects: Boolean - default: true
|
|
64
53
|
* - MaxRedirects: Number - default: 5
|
|
65
|
-
* -
|
|
66
|
-
* - ResponseType: "json" | "text" | "arraybuffer" | "stream" - default: "json"
|
|
54
|
+
* - ResponseType: "json" | "text" | "arraybuffer" - default: "json"
|
|
67
55
|
*
|
|
68
56
|
* @returns Response object with status, headers, and body
|
|
69
57
|
*/
|
|
70
58
|
protected InternalRunAction(params: RunActionParams): Promise<ActionResultSimple>;
|
|
71
59
|
/**
|
|
72
|
-
*
|
|
60
|
+
* Reads the response, populates output parameters, and builds the action result.
|
|
61
|
+
*/
|
|
62
|
+
private buildResult;
|
|
63
|
+
/**
|
|
64
|
+
* Reads the response body in the requested representation.
|
|
65
|
+
* `arraybuffer` is returned as a base64 string; unknown types fall back to text.
|
|
66
|
+
*/
|
|
67
|
+
private readResponseBody;
|
|
68
|
+
/** Converts a fetch `Headers` object into a plain record. */
|
|
69
|
+
private headersToObject;
|
|
70
|
+
/**
|
|
71
|
+
* Configure authentication for the request (basic, bearer, or apikey).
|
|
73
72
|
*/
|
|
74
73
|
private configureAuthentication;
|
|
75
74
|
/**
|
|
76
|
-
* Configure request body based on type
|
|
75
|
+
* Configure request body based on type (json, form, text, binary).
|
|
77
76
|
*/
|
|
78
77
|
private configureRequestBody;
|
|
79
78
|
/**
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"http-request.action.d.ts","sourceRoot":"","sources":["../../../src/custom/integration/http-request.action.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,kBAAkB,EAAE,eAAe,EAAE,MAAM,8BAA8B,CAAC;AAEnF,OAAO,EAAE,UAAU,EAAE,MAAM,yBAAyB,CAAC;
|
|
1
|
+
{"version":3,"file":"http-request.action.d.ts","sourceRoot":"","sources":["../../../src/custom/integration/http-request.action.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,kBAAkB,EAAE,eAAe,EAAE,MAAM,8BAA8B,CAAC;AAEnF,OAAO,EAAE,UAAU,EAAE,MAAM,yBAAyB,CAAC;AAsBrD;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAoCG;AACH,qBACa,iBAAkB,SAAQ,UAAU;IAE7C;;;;;;;;;;;;;;;;OAgBG;cACa,iBAAiB,CAAC,MAAM,EAAE,eAAe,GAAG,OAAO,CAAC,kBAAkB,CAAC;IAgEvF;;OAEG;YACW,WAAW;IA6BzB;;;OAGG;YACW,gBAAgB;IAgB9B,6DAA6D;IAC7D,OAAO,CAAC,eAAe;IAQvB;;OAEG;IACH,OAAO,CAAC,uBAAuB;IAsC/B;;OAEG;IACH,OAAO,CAAC,oBAAoB;IA+C5B;;OAEG;IACH,OAAO,CAAC,eAAe;IAOvB;;OAEG;IACH,OAAO,CAAC,eAAe;IAUvB;;OAEG;IACH,OAAO,CAAC,aAAa;CAKxB"}
|