polarity-integration-utils 4.2.2 → 4.3.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/dist/dts/requests/polarity-request.d.ts +25 -1
- package/dist/dts/requests/polarity-request.d.ts.map +1 -1
- package/dist/dts/testing/enhanced-utils/create-mock-integration-context.d.ts.map +1 -1
- package/dist/es/requests/polarity-request.js +33 -0
- package/dist/es/testing/enhanced-utils/create-mock-integration-context.js +4 -1
- package/dist/lib/requests/polarity-request.js +33 -0
- package/dist/lib/testing/enhanced-utils/create-mock-integration-context.js +4 -1
- package/dist/polarity-integration-utils.d.ts +29 -0
- package/package.json +3 -3
|
@@ -1,5 +1,6 @@
|
|
|
1
1
|
import { ApiRequestError, NetworkError, RetryRequestError } from '../errors';
|
|
2
|
-
import type { Entity, DoLookupUserOptions } from '@polarityio/integration-types';
|
|
2
|
+
import type { Entity, DoLookupUserOptions, NetworkContext, NetworkProxy } from '@polarityio/integration-types';
|
|
3
|
+
export type { NetworkContext, NetworkProxy };
|
|
3
4
|
/**
|
|
4
5
|
* @public
|
|
5
6
|
*/
|
|
@@ -279,6 +280,14 @@ export interface PolarityRequestHooks {
|
|
|
279
280
|
*/
|
|
280
281
|
export interface PolarityRequestOptions {
|
|
281
282
|
defaults?: ConfigRequestProxyOptions;
|
|
283
|
+
/**
|
|
284
|
+
* Per-integration network configuration from `context.network`. When provided,
|
|
285
|
+
* proxy and TLS settings from this object override values from `defaults`.
|
|
286
|
+
*
|
|
287
|
+
* Can also be set (or updated) after construction via the {@link PolarityRequest.network}
|
|
288
|
+
* property to reflect per-request runtime config.
|
|
289
|
+
*/
|
|
290
|
+
network?: NetworkContext;
|
|
282
291
|
isApiError?: IsApiErrorFunction;
|
|
283
292
|
roundedSuccessStatusCodes?: number[];
|
|
284
293
|
httpResponseErrorProperties?: string[];
|
|
@@ -352,6 +361,21 @@ export declare class PolarityRequest {
|
|
|
352
361
|
* integration context.
|
|
353
362
|
*/
|
|
354
363
|
limiter: PolarityRequestLimiter | null;
|
|
364
|
+
/**
|
|
365
|
+
* Per-integration network configuration from `context.network`.
|
|
366
|
+
*
|
|
367
|
+
* When set, proxy and TLS settings are applied dynamically on each
|
|
368
|
+
* {@link PolarityRequest.run} call, overriding any static values from
|
|
369
|
+
* the constructor `defaults`. Set this before each `run()` call to
|
|
370
|
+
* reflect the latest runtime config.
|
|
371
|
+
*
|
|
372
|
+
* @example
|
|
373
|
+
* ```typescript
|
|
374
|
+
* polarityRequest.network = context.network;
|
|
375
|
+
* const response = await polarityRequest.run(requestOptions);
|
|
376
|
+
* ```
|
|
377
|
+
*/
|
|
378
|
+
network: NetworkContext | null;
|
|
355
379
|
/**
|
|
356
380
|
* Lifecycle hooks for customizing request behavior. Hooks are configured via the
|
|
357
381
|
* {@link PolarityRequestOptions.hooks} property when creating a new instance of the
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"polarity-request.d.ts","sourceRoot":"","sources":["../../../lib/requests/polarity-request.ts"],"names":[],"mappings":"AAMA,OAAO,EACL,eAAe,EACf,YAAY,EACZ,iBAAiB,EAElB,MAAM,WAAW,CAAC;AAGnB,OAAO,KAAK,
|
|
1
|
+
{"version":3,"file":"polarity-request.d.ts","sourceRoot":"","sources":["../../../lib/requests/polarity-request.ts"],"names":[],"mappings":"AAMA,OAAO,EACL,eAAe,EACf,YAAY,EACZ,iBAAiB,EAElB,MAAM,WAAW,CAAC;AAGnB,OAAO,KAAK,EACV,MAAM,EACN,mBAAmB,EACnB,cAAc,EACd,YAAY,EACb,MAAM,+BAA+B,CAAC;AAGvC,YAAY,EAAE,cAAc,EAAE,YAAY,EAAE,CAAC;AAE7C;;GAEG;AACH,MAAM,MAAM,yBAAyB,GAAG;IACtC,EAAE,CAAC,EAAE,SAAS,GAAG,MAAM,CAAC;IACxB,IAAI,CAAC,EAAE,SAAS,GAAG,MAAM,CAAC;IAC1B,GAAG,CAAC,EAAE,SAAS,GAAG,MAAM,CAAC;IACzB,UAAU,CAAC,EAAE,SAAS,GAAG,MAAM,CAAC;IAChC,kBAAkB,CAAC,EAAE,SAAS,GAAG,OAAO,CAAC;IACzC,KAAK,CAAC,EAAE,SAAS,GAAG,MAAM,CAAC;IAC3B,IAAI,CAAC,EAAE,SAAS,GAAG,OAAO,CAAC;CAC5B,CAAC;AAEF,MAAM,MAAM,UAAU,GAAG,KAAK,GAAG,MAAM,GAAG,KAAK,GAAG,OAAO,GAAG,QAAQ,GAAG,MAAM,GAAG,SAAS,CAAC;AAE1F;;GAEG;AACH,MAAM,MAAM,kBAAkB,GAAG;IAC/B;;OAEG;IACH,GAAG,CAAC,EAAE,MAAM,CAAC;IACb;;;;OAIG;IACH,MAAM,CAAC,EAAE,UAAU,CAAC;IACpB;;;;;OAKG;IACH,IAAI,CAAC,EAAE,OAAO,CAAC;IACf;;;;;;;;;;;OAWG;IACH,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB;;;;;;;;;;;OAWG;IACH,EAAE,CAAC,EAAE,MAAM,CAAC;IACZ;;;OAGG;IACH,IAAI,CAAC,EAAE,MAAM,CAAC;IACd;;OAEG;IACH,IAAI,CAAC,EAAE,MAAM,CAAC;IACd;;OAEG;IACH,IAAI,CAAC,EACD;QACE,QAAQ,EAAE,MAAM,CAAC;QACjB,QAAQ,EAAE,MAAM,CAAC;QACjB,eAAe,CAAC,EAAE,OAAO,CAAC;KAC3B,GACD;QACE,MAAM,EAAE,MAAM,CAAC;QACf,eAAe,CAAC,EAAE,OAAO,CAAC;KAC3B,CAAC;IACN,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC;CACxB,GAAG,CACA;IAAE,MAAM,EAAE,MAAM,CAAC;IAAC,QAAQ,CAAC,EAAE,KAAK,CAAC;IAAC,SAAS,CAAC,EAAE,KAAK,CAAA;CAAE,GACvD;IAAE,QAAQ,EAAE,MAAM,EAAE,CAAC;IAAC,MAAM,CAAC,EAAE,KAAK,CAAC;IAAC,SAAS,CAAC,EAAE,KAAK,CAAA;CAAE,GACzD;IAAE,SAAS,EAAE,MAAM,GAAG,OAAO,CAAC;IAAC,MAAM,CAAC,EAAE,KAAK,CAAC;IAAC,QAAQ,CAAC,EAAE,KAAK,CAAA;CAAE,GACjE;IAAE,MAAM,CAAC,EAAE,KAAK,CAAC;IAAC,QAAQ,CAAC,EAAE,KAAK,CAAC;IAAC,SAAS,CAAC,EAAE,KAAK,CAAA;CAAE,CAC1D,CAAC;AAEF;;GAEG;AACH,MAAM,MAAM,oBAAoB,GAAG;IACjC;;;OAGG;IACH,iBAAiB,EAAE,kBAAkB,EAAE,CAAC;IACxC;;;;OAIG;IACH,qBAAqB,CAAC,EAAE,MAAM,CAAC;IAC/B;;;;;;OAMG;IACH,YAAY,CAAC,EAAE,OAAO,CAAC;CACxB,CAAC;AAEF;;GAEG;AACH,MAAM,MAAM,mBAAmB,GAAG;IAChC;;OAEG;IACH,UAAU,EAAE,MAAM,CAAC;IACnB,OAAO,EAAE;QACP,GAAG,EAAE,OAAO,CAAC;QACb,MAAM,EAAE,MAAM,CAAC;QACf,OAAO,EAAE,OAAO,CAAC;QACjB,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC;KACxB,CAAC;IACF;;OAEG;IACH,IAAI,EAAE,OAAO,CAAC;IACd;;OAEG;IACH,OAAO,EAAE,OAAO,CAAC;IACjB;;OAEG;IACH,KAAK,CAAC,EAAE,eAAe,GAAG,YAAY,GAAG,iBAAiB,CAAC;IAC3D;;;OAGG;IACH,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB;;;;OAIG;IACH,QAAQ,CAAC,EAAE,MAAM,EAAE,CAAC;IACpB;;;OAGG;IACH,SAAS,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC;IAC7B,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC;CACxB,CAAC;AAEF;;GAEG;AACH,MAAM,MAAM,gBAAgB,GAAG;IAC7B;;OAEG;IACH,UAAU,EAAE,OAAO,CAAC;IACpB;;;;OAIG;IACH,OAAO,CAAC,EAAE,MAAM,CAAC;CAClB,CAAC;AAEF;;GAEG;AACH,MAAM,MAAM,kBAAkB,GAAG,CAC/B,QAAQ,EAAE,mBAAmB,EAC7B,cAAc,EAAE,kBAAkB,EAClC,WAAW,EAAE,mBAAmB,KAC7B,gBAAgB,CAAC;AAEtB;;;;;;;;GAQG;AACH,MAAM,WAAW,sBAAsB;IACrC,QAAQ,CAAC,CAAC,EAAE,EAAE,EAAE,CAAC,GAAG,IAAI,EAAE,OAAO,EAAE,KAAK,WAAW,CAAC,CAAC,CAAC,EAAE,GAAG,IAAI,EAAE,OAAO,EAAE,GAAG,OAAO,CAAC,CAAC,CAAC,CAAC;CACzF;AAED;;;GAGG;AACH,MAAM,MAAM,OAAO,GAAG,sBAAsB,CAAC;AAE7C;;;;;;;;GAQG;AACH,MAAM,MAAM,iBAAiB,GAAG,CAC9B,cAAc,EAAE,kBAAkB,EAClC,WAAW,EAAE,mBAAmB,KAC7B,OAAO,CAAC,kBAAkB,CAAC,CAAC;AAEjC;;;;;;;;GAQG;AACH,MAAM,MAAM,iBAAiB,GAAG,CAC9B,QAAQ,EAAE,mBAAmB,EAC7B,cAAc,EAAE,kBAAkB,EAClC,WAAW,EAAE,mBAAmB,KAC7B,OAAO,CAAC,mBAAmB,CAAC,CAAC;AAElC;;;;;;;;;;GAUG;AACH,MAAM,MAAM,cAAc,GAAG,CAC3B,KAAK,EAAE,eAAe,EACtB,QAAQ,EAAE,mBAAmB,EAC7B,cAAc,EAAE,kBAAkB,EAClC,WAAW,EAAE,mBAAmB,KAC7B,OAAO,CAAC,IAAI,CAAC,CAAC;AAEnB;;;;;;;GAOG;AACH,MAAM,MAAM,kBAAkB,GAAG,CAC/B,KAAK,EAAE,YAAY,GAAG,iBAAiB,EACvC,cAAc,EAAE,kBAAkB,EAClC,WAAW,EAAE,mBAAmB,KAC7B,OAAO,CAAC,IAAI,CAAC,CAAC;AAEnB;;;;;;;GAOG;AACH,MAAM,WAAW,oBAAoB;IACnC;;;OAGG;IACH,aAAa,CAAC,EAAE,iBAAiB,EAAE,CAAC;IACpC;;;;OAIG;IACH,aAAa,CAAC,EAAE,iBAAiB,EAAE,CAAC;IACpC;;;OAGG;IACH,UAAU,CAAC,EAAE,cAAc,EAAE,CAAC;IAC9B;;;OAGG;IACH,cAAc,CAAC,EAAE,kBAAkB,EAAE,CAAC;CACvC;AAED;;GAEG;AACH,MAAM,WAAW,sBAAsB;IACrC,QAAQ,CAAC,EAAE,yBAAyB,CAAC;IACrC;;;;;;OAMG;IACH,OAAO,CAAC,EAAE,cAAc,CAAC;IACzB,UAAU,CAAC,EAAE,kBAAkB,CAAC;IAChC,yBAAyB,CAAC,EAAE,MAAM,EAAE,CAAC;IACrC,2BAA2B,CAAC,EAAE,MAAM,EAAE,CAAC;IACvC,kCAAkC,CAAC,EAAE,MAAM,EAAE,CAAC;IAC9C,wBAAwB,CAAC,EAAE,MAAM,EAAE,CAAC;IACpC,KAAK,CAAC,EAAE,oBAAoB,CAAC;IAC7B,OAAO,CAAC,EAAE,sBAAsB,CAAC;CAClC;AAED;;;;GAIG;AACH,qBAAa,eAAe;IAC1B;;OAEG;IACH,OAAO,CAAC,MAAM,CAAC;IACf;;;OAGG;IACH,OAAO,CAAC,QAAQ,CAAC,mBAAmB,CAEF;IAElC,SAAgB,yBAAyB,EAAE,MAAM,EAAE,CAAS;IAC5D;;;;;;;;OAQG;IACH,SAAgB,2BAA2B,EAAE,MAAM,EAAE,CAAM;IAC3D;;;;;;;OAOG;IACH,SAAgB,kCAAkC,EAAE,MAAM,EAAE,CAAM;IAClE;;;;;;;;;OASG;IACH,SAAgB,UAAU,EAAE,kBAAkB,CAAQ;IACtD;;;;;;;;;OASG;IACH,SAAgB,wBAAwB,EAAE,MAAM,EAAE,CAAM;IACjD,WAAW,EAAE,mBAAmB,CAAQ;IAE/C;;;;;OAKG;IACI,OAAO,EAAE,sBAAsB,GAAG,IAAI,CAAQ;IAErD;;;;;;;;;;;;;OAaG;IACI,OAAO,EAAE,cAAc,GAAG,IAAI,CAAQ;IAE7C;;;;;;OAMG;IACH,SAAgB,KAAK,EAAE,QAAQ,CAAC,oBAAoB,CAAC,CAKnD;gBAEU,OAAO,GAAE,sBAA2B;IAuEhD,OAAO,CAAC,kBAAkB,CACsB;IAEhD;;;;;OAKG;IACU,GAAG,CACd,cAAc,EAAE,kBAAkB,GACjC,OAAO,CAAC,mBAAmB,GAAG,SAAS,CAAC,GAAG,KAAK;IA+GnD;;;;;;;;;OASG;IACH,OAAO,CAAC,cAAc;IAoEtB;;;;;;OAMG;IACH,OAAO,CAAC,qBAAqB;IAO7B;;;;;;;OAOG;IACH,OAAO,CAAC,4BAA4B;IAIpC;;;;;;;;OAQG;IACH,OAAO,CAAC,+BAA+B;IAkBvC;;;;;;;;OAQG;IACH,OAAO,CAAC,2BAA2B;IAiBnC;;;;;;;;;;;;;;;;;;;;;;OAsBG;IACU,aAAa,CACxB,OAAO,EAAE,oBAAoB,GAC5B,OAAO,CAAC,CAAC,mBAAmB,GAAG,SAAS,CAAC,EAAE,CAAC;CA8ChD"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"create-mock-integration-context.d.ts","sourceRoot":"","sources":["../../../../lib/testing/enhanced-utils/create-mock-integration-context.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,+BAA+B,CAAC;AAExE;;;;;;;;;;;;;;;;;GAiBG;AAEH,MAAM,MAAM,aAAa,GAAG,MAAM,CAAC,GAAG,IAAI,EAAE,GAAG,EAAE,KAAK,GAAG,CAAC;AAI1D;;;;;;;;;;;;;;;;;;;;;;;;GAwBG;AACH,eAAO,MAAM,4BAA4B,GACvC,eAAc,aAAoB,KACjC,
|
|
1
|
+
{"version":3,"file":"create-mock-integration-context.d.ts","sourceRoot":"","sources":["../../../../lib/testing/enhanced-utils/create-mock-integration-context.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,+BAA+B,CAAC;AAExE;;;;;;;;;;;;;;;;;GAiBG;AAEH,MAAM,MAAM,aAAa,GAAG,MAAM,CAAC,GAAG,IAAI,EAAE,GAAG,EAAE,KAAK,GAAG,CAAC;AAI1D;;;;;;;;;;;;;;;;;;;;;;;;GAwBG;AACH,eAAO,MAAM,4BAA4B,GACvC,eAAc,aAAoB,KACjC,kBA0GF,CAAC"}
|
|
@@ -78,6 +78,21 @@ class PolarityRequest {
|
|
|
78
78
|
* integration context.
|
|
79
79
|
*/
|
|
80
80
|
limiter = null;
|
|
81
|
+
/**
|
|
82
|
+
* Per-integration network configuration from `context.network`.
|
|
83
|
+
*
|
|
84
|
+
* When set, proxy and TLS settings are applied dynamically on each
|
|
85
|
+
* {@link PolarityRequest.run} call, overriding any static values from
|
|
86
|
+
* the constructor `defaults`. Set this before each `run()` call to
|
|
87
|
+
* reflect the latest runtime config.
|
|
88
|
+
*
|
|
89
|
+
* @example
|
|
90
|
+
* ```typescript
|
|
91
|
+
* polarityRequest.network = context.network;
|
|
92
|
+
* const response = await polarityRequest.run(requestOptions);
|
|
93
|
+
* ```
|
|
94
|
+
*/
|
|
95
|
+
network = null;
|
|
81
96
|
/**
|
|
82
97
|
* Lifecycle hooks for customizing request behavior. Hooks are configured via the
|
|
83
98
|
* {@link PolarityRequestOptions.hooks} property when creating a new instance of the
|
|
@@ -133,6 +148,9 @@ class PolarityRequest {
|
|
|
133
148
|
if (options.limiter) {
|
|
134
149
|
this.limiter = options.limiter;
|
|
135
150
|
}
|
|
151
|
+
if (options.network) {
|
|
152
|
+
this.network = options.network;
|
|
153
|
+
}
|
|
136
154
|
const defaultRequestOptions = {
|
|
137
155
|
...(this.configFieldIsValid(ca) && { ca: fs_1.default.readFileSync(ca) }),
|
|
138
156
|
...(this.configFieldIsValid(cert) && { cert: fs_1.default.readFileSync(cert) }),
|
|
@@ -164,6 +182,21 @@ class PolarityRequest {
|
|
|
164
182
|
}
|
|
165
183
|
processedOptions = hookResult;
|
|
166
184
|
}
|
|
185
|
+
// Apply runtime network settings (overrides defaults and hook mutations)
|
|
186
|
+
if (this.network) {
|
|
187
|
+
const url = (processedOptions.url || '').trim().toLowerCase();
|
|
188
|
+
const isHttps = url.startsWith('https://') || !url.startsWith('http://');
|
|
189
|
+
const proxy = isHttps
|
|
190
|
+
? (this.network.proxy?.https ?? this.network.proxy?.http)
|
|
191
|
+
: (this.network.proxy?.http ?? this.network.proxy?.https);
|
|
192
|
+
if (proxy) {
|
|
193
|
+
processedOptions.proxy = proxy;
|
|
194
|
+
}
|
|
195
|
+
if (this.network.proxy?.noProxy) {
|
|
196
|
+
processedOptions.noProxyHost = this.network.proxy.noProxy;
|
|
197
|
+
}
|
|
198
|
+
processedOptions.rejectUnauthorized = this.network.rejectUnauthorized;
|
|
199
|
+
}
|
|
167
200
|
let httpResponse;
|
|
168
201
|
try {
|
|
169
202
|
httpResponse = await (this.limiter
|
|
@@ -111,7 +111,10 @@ const createMockIntegrationContext = (createMockFn = noOp) => {
|
|
|
111
111
|
: () => ({ schedule: scheduleImpl }))
|
|
112
112
|
},
|
|
113
113
|
startPolling: createMockFn(),
|
|
114
|
-
stopPolling: createMockFn()
|
|
114
|
+
stopPolling: createMockFn(),
|
|
115
|
+
network: {
|
|
116
|
+
rejectUnauthorized: true
|
|
117
|
+
}
|
|
115
118
|
};
|
|
116
119
|
};
|
|
117
120
|
exports.createMockIntegrationContext = createMockIntegrationContext;
|
|
@@ -78,6 +78,21 @@ class PolarityRequest {
|
|
|
78
78
|
* integration context.
|
|
79
79
|
*/
|
|
80
80
|
limiter = null;
|
|
81
|
+
/**
|
|
82
|
+
* Per-integration network configuration from `context.network`.
|
|
83
|
+
*
|
|
84
|
+
* When set, proxy and TLS settings are applied dynamically on each
|
|
85
|
+
* {@link PolarityRequest.run} call, overriding any static values from
|
|
86
|
+
* the constructor `defaults`. Set this before each `run()` call to
|
|
87
|
+
* reflect the latest runtime config.
|
|
88
|
+
*
|
|
89
|
+
* @example
|
|
90
|
+
* ```typescript
|
|
91
|
+
* polarityRequest.network = context.network;
|
|
92
|
+
* const response = await polarityRequest.run(requestOptions);
|
|
93
|
+
* ```
|
|
94
|
+
*/
|
|
95
|
+
network = null;
|
|
81
96
|
/**
|
|
82
97
|
* Lifecycle hooks for customizing request behavior. Hooks are configured via the
|
|
83
98
|
* {@link PolarityRequestOptions.hooks} property when creating a new instance of the
|
|
@@ -133,6 +148,9 @@ class PolarityRequest {
|
|
|
133
148
|
if (options.limiter) {
|
|
134
149
|
this.limiter = options.limiter;
|
|
135
150
|
}
|
|
151
|
+
if (options.network) {
|
|
152
|
+
this.network = options.network;
|
|
153
|
+
}
|
|
136
154
|
const defaultRequestOptions = {
|
|
137
155
|
...(this.configFieldIsValid(ca) && { ca: fs_1.default.readFileSync(ca) }),
|
|
138
156
|
...(this.configFieldIsValid(cert) && { cert: fs_1.default.readFileSync(cert) }),
|
|
@@ -164,6 +182,21 @@ class PolarityRequest {
|
|
|
164
182
|
}
|
|
165
183
|
processedOptions = hookResult;
|
|
166
184
|
}
|
|
185
|
+
// Apply runtime network settings (overrides defaults and hook mutations)
|
|
186
|
+
if (this.network) {
|
|
187
|
+
const url = (processedOptions.url || '').trim().toLowerCase();
|
|
188
|
+
const isHttps = url.startsWith('https://') || !url.startsWith('http://');
|
|
189
|
+
const proxy = isHttps
|
|
190
|
+
? (this.network.proxy?.https ?? this.network.proxy?.http)
|
|
191
|
+
: (this.network.proxy?.http ?? this.network.proxy?.https);
|
|
192
|
+
if (proxy) {
|
|
193
|
+
processedOptions.proxy = proxy;
|
|
194
|
+
}
|
|
195
|
+
if (this.network.proxy?.noProxy) {
|
|
196
|
+
processedOptions.noProxyHost = this.network.proxy.noProxy;
|
|
197
|
+
}
|
|
198
|
+
processedOptions.rejectUnauthorized = this.network.rejectUnauthorized;
|
|
199
|
+
}
|
|
167
200
|
let httpResponse;
|
|
168
201
|
try {
|
|
169
202
|
httpResponse = await (this.limiter
|
|
@@ -111,7 +111,10 @@ const createMockIntegrationContext = (createMockFn = noOp) => {
|
|
|
111
111
|
: () => ({ schedule: scheduleImpl }))
|
|
112
112
|
},
|
|
113
113
|
startPolling: createMockFn(),
|
|
114
|
-
stopPolling: createMockFn()
|
|
114
|
+
stopPolling: createMockFn(),
|
|
115
|
+
network: {
|
|
116
|
+
rejectUnauthorized: true
|
|
117
|
+
}
|
|
115
118
|
};
|
|
116
119
|
};
|
|
117
120
|
exports.createMockIntegrationContext = createMockIntegrationContext;
|
|
@@ -3,6 +3,8 @@ import type { Entity } from '@polarityio/integration-types';
|
|
|
3
3
|
import type { EntityType } from '@polarityio/integration-types';
|
|
4
4
|
import type { IntegrationContext } from '@polarityio/integration-types';
|
|
5
5
|
import type { Logger } from '@polarityio/integration-types';
|
|
6
|
+
import type { NetworkContext } from '@polarityio/integration-types';
|
|
7
|
+
import type { NetworkProxy } from '@polarityio/integration-types';
|
|
6
8
|
|
|
7
9
|
/**
|
|
8
10
|
* Hook that runs after a successful HTTP response. Each hook receives the output
|
|
@@ -551,6 +553,8 @@ export declare type ConfigRequestProxyOptions = {
|
|
|
551
553
|
*/
|
|
552
554
|
export declare type MockFnFactory = () => (...args: any[]) => any;
|
|
553
555
|
|
|
556
|
+
export { NetworkContext }
|
|
557
|
+
|
|
554
558
|
/**
|
|
555
559
|
* Generic network error for REST requests.
|
|
556
560
|
* https://betterstack.com/community/guides/scaling-nodejs/nodejs-errors/#4-econnrefused
|
|
@@ -561,6 +565,8 @@ export declare type ConfigRequestProxyOptions = {
|
|
|
561
565
|
constructor(message: string, properties?: IntegrationErrorProperties);
|
|
562
566
|
}
|
|
563
567
|
|
|
568
|
+
export { NetworkProxy }
|
|
569
|
+
|
|
564
570
|
/**
|
|
565
571
|
* Hook that runs when an API error is detected (non-success status code or error
|
|
566
572
|
* properties found in the response body). Receives the full HTTP response so the
|
|
@@ -657,6 +663,21 @@ export declare type ConfigRequestProxyOptions = {
|
|
|
657
663
|
* integration context.
|
|
658
664
|
*/
|
|
659
665
|
limiter: PolarityRequestLimiter | null;
|
|
666
|
+
/**
|
|
667
|
+
* Per-integration network configuration from `context.network`.
|
|
668
|
+
*
|
|
669
|
+
* When set, proxy and TLS settings are applied dynamically on each
|
|
670
|
+
* {@link PolarityRequest.run} call, overriding any static values from
|
|
671
|
+
* the constructor `defaults`. Set this before each `run()` call to
|
|
672
|
+
* reflect the latest runtime config.
|
|
673
|
+
*
|
|
674
|
+
* @example
|
|
675
|
+
* ```typescript
|
|
676
|
+
* polarityRequest.network = context.network;
|
|
677
|
+
* const response = await polarityRequest.run(requestOptions);
|
|
678
|
+
* ```
|
|
679
|
+
*/
|
|
680
|
+
network: NetworkContext | null;
|
|
660
681
|
/**
|
|
661
682
|
* Lifecycle hooks for customizing request behavior. Hooks are configured via the
|
|
662
683
|
* {@link PolarityRequestOptions.hooks} property when creating a new instance of the
|
|
@@ -798,6 +819,14 @@ export declare type ConfigRequestProxyOptions = {
|
|
|
798
819
|
*/
|
|
799
820
|
export declare interface PolarityRequestOptions {
|
|
800
821
|
defaults?: ConfigRequestProxyOptions;
|
|
822
|
+
/**
|
|
823
|
+
* Per-integration network configuration from `context.network`. When provided,
|
|
824
|
+
* proxy and TLS settings from this object override values from `defaults`.
|
|
825
|
+
*
|
|
826
|
+
* Can also be set (or updated) after construction via the {@link PolarityRequest.network}
|
|
827
|
+
* property to reflect per-request runtime config.
|
|
828
|
+
*/
|
|
829
|
+
network?: NetworkContext;
|
|
801
830
|
isApiError?: IsApiErrorFunction;
|
|
802
831
|
roundedSuccessStatusCodes?: number[];
|
|
803
832
|
httpResponseErrorProperties?: string[];
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "polarity-integration-utils",
|
|
3
|
-
"version": "4.
|
|
3
|
+
"version": "4.3.0",
|
|
4
4
|
"description": "A utility library for building Polarity Integrations",
|
|
5
5
|
"files": [
|
|
6
6
|
"dist"
|
|
@@ -86,7 +86,7 @@
|
|
|
86
86
|
"devDependencies": {
|
|
87
87
|
"@eslint/js": "^9.39.4",
|
|
88
88
|
"@microsoft/api-extractor": "^7.57.7",
|
|
89
|
-
"@polarityio/integration-types": "^
|
|
89
|
+
"@polarityio/integration-types": "^2.0.0",
|
|
90
90
|
"@types/jest": "^30.0.0",
|
|
91
91
|
"@types/lodash": "^4.17.24",
|
|
92
92
|
"@types/node": "^20.14.8",
|
|
@@ -108,7 +108,7 @@
|
|
|
108
108
|
"postman-request": "^2.88.1-postman.48"
|
|
109
109
|
},
|
|
110
110
|
"peerDependencies": {
|
|
111
|
-
"@polarityio/integration-types": "^
|
|
111
|
+
"@polarityio/integration-types": "^2.0.0"
|
|
112
112
|
},
|
|
113
113
|
"sideEffects": false,
|
|
114
114
|
"overrides": {
|