@zintrust/core 0.4.95 → 0.4.98
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/package.json +5 -5
- package/src/common/ExternalServiceUtils.d.ts +5 -1
- package/src/common/ExternalServiceUtils.d.ts.map +1 -1
- package/src/common/ExternalServiceUtils.js +5 -2
- package/src/index.js +3 -3
- package/src/tools/broadcast/Broadcast.d.ts.map +1 -1
- package/src/tools/broadcast/Broadcast.js +3 -2
- package/src/tools/broadcast/drivers/Pusher.d.ts.map +1 -1
- package/src/tools/broadcast/drivers/Pusher.js +3 -2
- package/src/tools/http/Http.d.ts.map +1 -1
- package/src/tools/http/Http.js +1 -0
- package/src/tools/mail/drivers/Mailgun.d.ts.map +1 -1
- package/src/tools/mail/drivers/Mailgun.js +3 -2
- package/src/tools/mail/drivers/SendGrid.d.ts.map +1 -1
- package/src/tools/mail/drivers/SendGrid.js +3 -2
- package/src/tools/mail/drivers/Ses.d.ts.map +1 -1
- package/src/tools/mail/drivers/Ses.js +3 -3
- package/src/tools/notification/Service.d.ts.map +1 -1
- package/src/tools/notification/Service.js +3 -2
- package/src/tools/notification/drivers/Slack.d.ts.map +1 -1
- package/src/tools/notification/drivers/Slack.js +3 -2
- package/src/tools/notification/drivers/Termii.d.ts.map +1 -1
- package/src/tools/notification/drivers/Termii.js +1 -1
- package/src/tools/notification/drivers/Twilio.d.ts.map +1 -1
- package/src/tools/notification/drivers/Twilio.js +3 -2
- package/src/tools/storage/drivers/S3.d.ts.map +1 -1
- package/src/tools/storage/drivers/S3.js +7 -7
- package/src/trace/SystemTraceBridge.d.ts +1 -0
- package/src/trace/SystemTraceBridge.d.ts.map +1 -1
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@zintrust/core",
|
|
3
|
-
"version": "0.4.
|
|
3
|
+
"version": "0.4.98",
|
|
4
4
|
"description": "Production-grade TypeScript backend framework for JavaScript",
|
|
5
5
|
"homepage": "https://zintrust.com",
|
|
6
6
|
"repository": {
|
|
@@ -57,14 +57,14 @@
|
|
|
57
57
|
"./package.json": "./package.json"
|
|
58
58
|
},
|
|
59
59
|
"dependencies": {
|
|
60
|
-
"@cloudflare/containers": "^0.
|
|
60
|
+
"@cloudflare/containers": "^0.3.0",
|
|
61
61
|
"bcryptjs": "^3.0.3",
|
|
62
|
-
"bullmq": "^5.73.
|
|
62
|
+
"bullmq": "^5.73.4",
|
|
63
63
|
"chalk": "^5.6.2",
|
|
64
64
|
"commander": "^14.0.3",
|
|
65
|
-
"inquirer": "^13.4.
|
|
65
|
+
"inquirer": "^13.4.1",
|
|
66
66
|
"jsonwebtoken": "^9.0.3",
|
|
67
|
-
"mysql2": "^3.
|
|
67
|
+
"mysql2": "^3.22.0",
|
|
68
68
|
"pg": "^8.20.0"
|
|
69
69
|
},
|
|
70
70
|
"overrides": {
|
|
@@ -2,6 +2,9 @@
|
|
|
2
2
|
* Shared Utilities for External Service Drivers
|
|
3
3
|
* Common patterns for API calls, environment variable reading, and error handling
|
|
4
4
|
*/
|
|
5
|
+
export type TracedFetchTraceOptions = {
|
|
6
|
+
source?: string;
|
|
7
|
+
};
|
|
5
8
|
/**
|
|
6
9
|
* Environment variable reader with fallback support
|
|
7
10
|
* Handles both Env.get() and process.env for maximum compatibility
|
|
@@ -15,10 +18,11 @@ export declare const validateRequiredParams: (params: Record<string, unknown>, r
|
|
|
15
18
|
* Create standardized API error response
|
|
16
19
|
*/
|
|
17
20
|
export declare const createApiError: (message: string, service: string) => Error;
|
|
21
|
+
export declare const tracedFetch: (url: string, options: RequestInit, _trace?: TracedFetchTraceOptions) => Promise<Response>;
|
|
18
22
|
/**
|
|
19
23
|
* Common fetch wrapper with error handling
|
|
20
24
|
*/
|
|
21
|
-
export declare const safeFetch: (url: string, options: RequestInit) => Promise<Response>;
|
|
25
|
+
export declare const safeFetch: (url: string, options: RequestInit, trace?: TracedFetchTraceOptions) => Promise<Response>;
|
|
22
26
|
/**
|
|
23
27
|
* Standard API response builder
|
|
24
28
|
*/
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ExternalServiceUtils.d.ts","sourceRoot":"","sources":["../../../src/common/ExternalServiceUtils.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAKH;;;GAGG;AACH,eAAO,MAAM,aAAa,GAAI,KAAK,MAAM,EAAE,iBAAa,KAAG,MAe1D,CAAC;AAEF;;GAEG;AACH,eAAO,MAAM,sBAAsB,GACjC,QAAQ,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EAC/B,UAAU,MAAM,EAAE,KACjB,IAWF,CAAC;AAEF;;GAEG;AACH,eAAO,MAAM,cAAc,GAAI,SAAS,MAAM,EAAE,SAAS,MAAM,KAAG,KAEjE,CAAC;AAEF;;GAEG;AACH,eAAO,MAAM,SAAS,
|
|
1
|
+
{"version":3,"file":"ExternalServiceUtils.d.ts","sourceRoot":"","sources":["../../../src/common/ExternalServiceUtils.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAKH,MAAM,MAAM,uBAAuB,GAAG;IACpC,MAAM,CAAC,EAAE,MAAM,CAAC;CACjB,CAAC;AAEF;;;GAGG;AACH,eAAO,MAAM,aAAa,GAAI,KAAK,MAAM,EAAE,iBAAa,KAAG,MAe1D,CAAC;AAEF;;GAEG;AACH,eAAO,MAAM,sBAAsB,GACjC,QAAQ,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EAC/B,UAAU,MAAM,EAAE,KACjB,IAWF,CAAC;AAEF;;GAEG;AACH,eAAO,MAAM,cAAc,GAAI,SAAS,MAAM,EAAE,SAAS,MAAM,KAAG,KAEjE,CAAC;AAEF,eAAO,MAAM,WAAW,GACtB,KAAK,MAAM,EACX,SAAS,WAAW,EACpB,SAAS,uBAAuB,KAC/B,OAAO,CAAC,QAAQ,CAElB,CAAC;AAEF;;GAEG;AACH,eAAO,MAAM,SAAS,GACpB,KAAK,MAAM,EACX,SAAS,WAAW,EACpB,QAAQ,uBAAuB,KAC9B,OAAO,CAAC,QAAQ,CAclB,CAAC;AAEF;;GAEG;AACH,eAAO,MAAM,gBAAgB,GAAI,CAAC,EAChC,SAAS,OAAO,EAChB,OAAO,CAAC,EACR,QAAQ,MAAM,KACb;IAAE,OAAO,EAAE,OAAO,CAAC;IAAC,IAAI,CAAC,EAAE,CAAC,CAAC;IAAC,KAAK,CAAC,EAAE,MAAM,CAAA;CAY9C,CAAC;AAEF;;GAEG;AACH,eAAO,MAAM,WAAW;IACtB;;OAEG;iBACU,MAAM;IAMnB;;OAEG;oBACa,MAAM;IAItB;;OAEG;8BACuB,MAAM,GAAG,OAAO;IAI1C;;OAEG;gCAEO,SAAS,GAAG,WAAW,GAAG,OAAO,GAAG,OAAO,GAAG,WAAW,eACpD,MAAM,UACX,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC;;;;;IAYjC;;OAEG;+BAEO,WAAW,GAAG,WAAW,eACpB,MAAM,SACZ,KAAK,UACJ,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC;;;;;CASlC,CAAC"}
|
|
@@ -44,12 +44,15 @@ export const validateRequiredParams = (params, required) => {
|
|
|
44
44
|
export const createApiError = (message, service) => {
|
|
45
45
|
return ErrorFactory.createValidationError(`${service} API error: ${message}`);
|
|
46
46
|
};
|
|
47
|
+
export const tracedFetch = async (url, options, _trace) => {
|
|
48
|
+
return globalThis.fetch(url, options);
|
|
49
|
+
};
|
|
47
50
|
/**
|
|
48
51
|
* Common fetch wrapper with error handling
|
|
49
52
|
*/
|
|
50
|
-
export const safeFetch = async (url, options) => {
|
|
53
|
+
export const safeFetch = async (url, options, trace) => {
|
|
51
54
|
try {
|
|
52
|
-
const response = await
|
|
55
|
+
const response = await tracedFetch(url, options, trace);
|
|
53
56
|
if (!response.ok) {
|
|
54
57
|
throw ErrorFactory.createValidationError(`HTTP ${response.status}: ${response.statusText}`);
|
|
55
58
|
}
|
package/src/index.js
CHANGED
|
@@ -1,11 +1,11 @@
|
|
|
1
1
|
/**
|
|
2
|
-
* @zintrust/core v0.4.
|
|
2
|
+
* @zintrust/core v0.4.98
|
|
3
3
|
*
|
|
4
4
|
* ZinTrust Framework - Production-Grade TypeScript Backend
|
|
5
5
|
* Built for performance, type safety, and exceptional developer experience
|
|
6
6
|
*
|
|
7
7
|
* Build Information:
|
|
8
|
-
* Built: 2026-04-
|
|
8
|
+
* Built: 2026-04-12T07:36:38.129Z
|
|
9
9
|
* Node: >=20.0.0
|
|
10
10
|
* License: MIT
|
|
11
11
|
*
|
|
@@ -21,7 +21,7 @@
|
|
|
21
21
|
* Available at runtime for debugging and health checks
|
|
22
22
|
*/
|
|
23
23
|
export const ZINTRUST_VERSION = '0.1.41';
|
|
24
|
-
export const ZINTRUST_BUILD_DATE = '2026-04-
|
|
24
|
+
export const ZINTRUST_BUILD_DATE = '2026-04-12T07:36:38.086Z'; // Replaced during build
|
|
25
25
|
export { Application } from './boot/Application.js';
|
|
26
26
|
export { AwsSigV4 } from './common/index.js';
|
|
27
27
|
export { SignedRequest } from './security/SignedRequest.js';
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Broadcast.d.ts","sourceRoot":"","sources":["../../../../src/tools/broadcast/Broadcast.ts"],"names":[],"mappings":"AAQA,OAAO,KAAK,EAAE,0BAA0B,EAAE,MAAM,cAAc,CAAC;AAE/D,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,eAAe,CAAC;AAE9C,KAAK,WAAW,GAAG,QAAQ,CAAC;IAC1B,IAAI,EAAE,CAAC,OAAO,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,EAAE,IAAI,EAAE,OAAO,KAAK,OAAO,CAAC,OAAO,CAAC,CAAC;IAC1E,OAAO,EAAE,CAAC,KAAK,EAAE,qBAAqB,KAAK,OAAO,CAAC,sBAAsB,CAAC,CAAC;CAC5E,CAAC,CAAC;AAEH,KAAK,qBAAqB,GAAG,QAAQ,GAAG,SAAS,GAAG,UAAU,GAAG,YAAY,CAAC;AAC9E,KAAK,qBAAqB,GAAG,MAAM,GAAG,QAAQ,GAAG,QAAQ,CAAC;AAC1D,KAAK,kBAAkB,GAAG,eAAe,GAAG,QAAQ,GAAG,QAAQ,CAAC;AAShE,MAAM,MAAM,qBAAqB,GAAG,QAAQ,CAAC;IAC3C,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,QAAQ,CAAC,EAAE,SAAS,MAAM,EAAE,CAAC;IAC7B,KAAK,CAAC,EAAE,qBAAqB,CAAC;IAC9B,YAAY,CAAC,EAAE,qBAAqB,CAAC;IACrC,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,IAAI,CAAC,EAAE,OAAO,CAAC;IACf,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,QAAQ,CAAC,EAAE,qBAAqB,CAAC;IACjC,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,OAAO,CAAC,EAAE,QAAQ,CAAC;IACnB,IAAI,CAAC,EAAE,OAAO,CAAC;CAChB,CAAC,CAAC;AA0BH,MAAM,MAAM,sBAAsB,GAAG,QAAQ,CAAC;IAC5C,EAAE,EAAE,IAAI,CAAC;IACT,SAAS,EAAE,kBAAkB,CAAC;IAC9B,QAAQ,EAAE,SAAS,MAAM,EAAE,CAAC;IAC5B,KAAK,EAAE,MAAM,CAAC;IACd,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,MAAM,CAAC,EAAE,0BAA0B,CAAC,QAAQ,CAAC,CAAC;IAC9C,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,mBAAmB,CAAC,EAAE,SAAS,kBAAkB,EAAE,CAAC;IACpD,MAAM,CAAC,EAAE,OAAO,CAAC;IACjB,OAAO,CAAC,EAAE,SAAS,OAAO,EAAE,CAAC;CAC9B,CAAC,CAAC;
|
|
1
|
+
{"version":3,"file":"Broadcast.d.ts","sourceRoot":"","sources":["../../../../src/tools/broadcast/Broadcast.ts"],"names":[],"mappings":"AAQA,OAAO,KAAK,EAAE,0BAA0B,EAAE,MAAM,cAAc,CAAC;AAE/D,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,eAAe,CAAC;AAE9C,KAAK,WAAW,GAAG,QAAQ,CAAC;IAC1B,IAAI,EAAE,CAAC,OAAO,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,EAAE,IAAI,EAAE,OAAO,KAAK,OAAO,CAAC,OAAO,CAAC,CAAC;IAC1E,OAAO,EAAE,CAAC,KAAK,EAAE,qBAAqB,KAAK,OAAO,CAAC,sBAAsB,CAAC,CAAC;CAC5E,CAAC,CAAC;AAEH,KAAK,qBAAqB,GAAG,QAAQ,GAAG,SAAS,GAAG,UAAU,GAAG,YAAY,CAAC;AAC9E,KAAK,qBAAqB,GAAG,MAAM,GAAG,QAAQ,GAAG,QAAQ,CAAC;AAC1D,KAAK,kBAAkB,GAAG,eAAe,GAAG,QAAQ,GAAG,QAAQ,CAAC;AAShE,MAAM,MAAM,qBAAqB,GAAG,QAAQ,CAAC;IAC3C,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,QAAQ,CAAC,EAAE,SAAS,MAAM,EAAE,CAAC;IAC7B,KAAK,CAAC,EAAE,qBAAqB,CAAC;IAC9B,YAAY,CAAC,EAAE,qBAAqB,CAAC;IACrC,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,IAAI,CAAC,EAAE,OAAO,CAAC;IACf,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,QAAQ,CAAC,EAAE,qBAAqB,CAAC;IACjC,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,OAAO,CAAC,EAAE,QAAQ,CAAC;IACnB,IAAI,CAAC,EAAE,OAAO,CAAC;CAChB,CAAC,CAAC;AA0BH,MAAM,MAAM,sBAAsB,GAAG,QAAQ,CAAC;IAC5C,EAAE,EAAE,IAAI,CAAC;IACT,SAAS,EAAE,kBAAkB,CAAC;IAC9B,QAAQ,EAAE,SAAS,MAAM,EAAE,CAAC;IAC5B,KAAK,EAAE,MAAM,CAAC;IACd,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,MAAM,CAAC,EAAE,0BAA0B,CAAC,QAAQ,CAAC,CAAC;IAC9C,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,mBAAmB,CAAC,EAAE,SAAS,kBAAkB,EAAE,CAAC;IACpD,MAAM,CAAC,EAAE,OAAO,CAAC;IACjB,OAAO,CAAC,EAAE,SAAS,OAAO,EAAE,CAAC;CAC9B,CAAC,CAAC;AAoyBH,eAAO,MAAM,SAAS;mBACC,qBAAqB,GAAG,OAAO,CAAC,sBAAsB,CAAC;kBAIxD,MAAM,SAAS,MAAM,QAAQ,OAAO;0BAU5B,MAAM,SAAS,MAAM,QAAQ,OAAO;wBAKvD,qBAAqB,YACnB;QAAE,SAAS,CAAC,EAAE,MAAM,CAAC;QAAC,SAAS,CAAC,EAAE,MAAM,CAAA;KAAE;4BAO1C,MAAM,SACR,MAAM,QACP,OAAO,YACJ;QAAE,SAAS,CAAC,EAAE,MAAM,CAAC;QAAC,SAAS,CAAC,EAAE,MAAM,CAAA;KAAE;qBAKpC,MAAM;8BAES,qBAAqB;kCAEjB,MAAM,SAAS,MAAM,QAAQ,OAAO;;uBAKrD,MAAM,GAAG,WAAW;EAmBvC,CAAC;AAEH,eAAe,SAAS,CAAC"}
|
|
@@ -208,6 +208,7 @@ const getDeliveries = (payload) => {
|
|
|
208
208
|
const deliveries = payload['deliveries'];
|
|
209
209
|
return typeof deliveries === 'number' && Number.isFinite(deliveries) ? deliveries : undefined;
|
|
210
210
|
};
|
|
211
|
+
import { tracedFetch } from '../../common/ExternalServiceUtils.js';
|
|
211
212
|
const describeError = (error) => {
|
|
212
213
|
if (error instanceof Error) {
|
|
213
214
|
return {
|
|
@@ -225,7 +226,7 @@ const logTransportFallback = (transport, details) => {
|
|
|
225
226
|
};
|
|
226
227
|
const requestInternalPublishEndpoint = async (endpoint, secret, payload) => {
|
|
227
228
|
try {
|
|
228
|
-
const response = await
|
|
229
|
+
const response = await tracedFetch(endpoint, {
|
|
229
230
|
method: 'POST',
|
|
230
231
|
headers: {
|
|
231
232
|
'content-type': 'application/json',
|
|
@@ -237,7 +238,7 @@ const requestInternalPublishEndpoint = async (endpoint, secret, payload) => {
|
|
|
237
238
|
}),
|
|
238
239
|
},
|
|
239
240
|
body: JSON.stringify(payload),
|
|
240
|
-
});
|
|
241
|
+
}, { source: 'broadcast-internal-http' });
|
|
241
242
|
const responseBody = await parseJsonResponseSafe(response);
|
|
242
243
|
if (!response.ok) {
|
|
243
244
|
const error = ErrorFactory.createTryCatchError(`Internal socket publish request failed (${response.status})`, {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Pusher.d.ts","sourceRoot":"","sources":["../../../../../src/tools/broadcast/drivers/Pusher.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"Pusher.d.ts","sourceRoot":"","sources":["../../../../../src/tools/broadcast/drivers/Pusher.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,2BAA2B,EAAE,MAAM,cAAc,CAAC;AAqDhE,eAAO,MAAM,YAAY;iBACJ,2BAA2B,WAAW,MAAM,SAAS,MAAM,QAAQ,OAAO;;;EAsD7F,CAAC;AAEH,eAAe,YAAY,CAAC"}
|
|
@@ -1,3 +1,4 @@
|
|
|
1
|
+
import { tracedFetch } from '../../../common/ExternalServiceUtils.js';
|
|
1
2
|
import { ErrorFactory } from '../../../exceptions/ZintrustError.js';
|
|
2
3
|
import { createHash, createHmac } from '../../../node-singletons/crypto.js';
|
|
3
4
|
const md5Hex = (data) => createHash('md5').update(data).digest('hex');
|
|
@@ -49,13 +50,13 @@ export const PusherDriver = Object.freeze({
|
|
|
49
50
|
const authSignature = signRequest({ method: 'POST', path, secret: config.secret, queryString });
|
|
50
51
|
const baseUrl = buildBaseUrl(config.cluster);
|
|
51
52
|
const url = `${baseUrl}${path}?${queryString}&auth_signature=${authSignature}`;
|
|
52
|
-
const res = await
|
|
53
|
+
const res = await tracedFetch(url, {
|
|
53
54
|
method: 'POST',
|
|
54
55
|
headers: {
|
|
55
56
|
'content-type': 'application/json',
|
|
56
57
|
},
|
|
57
58
|
body,
|
|
58
|
-
});
|
|
59
|
+
}, { source: 'pusher' });
|
|
59
60
|
if (!res.ok) {
|
|
60
61
|
let responseBody;
|
|
61
62
|
try {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Http.d.ts","sourceRoot":"","sources":["../../../../src/tools/http/Http.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAOH,OAAO,EAAsB,KAAK,aAAa,EAAE,MAAM,0BAA0B,CAAC;AAElF,YAAY,EAAE,aAAa,EAAE,MAAM,0BAA0B,CAAC;AAE9D;;GAEG;AACH,MAAM,WAAW,YAAY;IAC3B,UAAU,CAAC,IAAI,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,GAAG,YAAY,CAAC;IACtD,WAAW,CAAC,OAAO,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,GAAG,YAAY,CAAC;IAC3D,QAAQ,CAAC,KAAK,EAAE,MAAM,EAAE,MAAM,CAAC,EAAE,QAAQ,GAAG,OAAO,GAAG,YAAY,CAAC;IACnE,aAAa,CAAC,QAAQ,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,GAAG,YAAY,CAAC;IAChE,WAAW,CAAC,EAAE,EAAE,MAAM,GAAG,YAAY,CAAC;IACtC,MAAM,IAAI,YAAY,CAAC;IACvB,MAAM,IAAI,YAAY,CAAC;IACvB,IAAI,IAAI,OAAO,CAAC,aAAa,CAAC,CAAC;IAC/B,OAAO,IAAI,OAAO,CAAC,QAAQ,CAAC,CAAC;IAC7B,UAAU,IAAI,OAAO,CAAC;QAAE,QAAQ,EAAE,QAAQ,CAAC;QAAC,MAAM,EAAE,cAAc,CAAC,UAAU,CAAC,GAAG,IAAI,CAAA;KAAE,CAAC,CAAC;CAC1F;
|
|
1
|
+
{"version":3,"file":"Http.d.ts","sourceRoot":"","sources":["../../../../src/tools/http/Http.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAOH,OAAO,EAAsB,KAAK,aAAa,EAAE,MAAM,0BAA0B,CAAC;AAElF,YAAY,EAAE,aAAa,EAAE,MAAM,0BAA0B,CAAC;AAE9D;;GAEG;AACH,MAAM,WAAW,YAAY;IAC3B,UAAU,CAAC,IAAI,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,GAAG,YAAY,CAAC;IACtD,WAAW,CAAC,OAAO,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,GAAG,YAAY,CAAC;IAC3D,QAAQ,CAAC,KAAK,EAAE,MAAM,EAAE,MAAM,CAAC,EAAE,QAAQ,GAAG,OAAO,GAAG,YAAY,CAAC;IACnE,aAAa,CAAC,QAAQ,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,GAAG,YAAY,CAAC;IAChE,WAAW,CAAC,EAAE,EAAE,MAAM,GAAG,YAAY,CAAC;IACtC,MAAM,IAAI,YAAY,CAAC;IACvB,MAAM,IAAI,YAAY,CAAC;IACvB,IAAI,IAAI,OAAO,CAAC,aAAa,CAAC,CAAC;IAC/B,OAAO,IAAI,OAAO,CAAC,QAAQ,CAAC,CAAC;IAC7B,UAAU,IAAI,OAAO,CAAC;QAAE,QAAQ,EAAE,QAAQ,CAAC;QAAC,MAAM,EAAE,cAAc,CAAC,UAAU,CAAC,GAAG,IAAI,CAAA;KAAE,CAAC,CAAC;CAC1F;AA6QD;;GAEG;AACH,eAAO,MAAM,UAAU;IACrB;;OAEG;aACM,MAAM,GAAG,YAAY;IAI9B;;OAEG;cACO,MAAM,SAAS,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,YAAY;IAQ/D;;OAEG;aACM,MAAM,SAAS,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,YAAY;IAQ9D;;OAEG;eACQ,MAAM,SAAS,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,YAAY;IAQhE;;OAEG;gBACS,MAAM,SAAS,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,YAAY;EAOjE,CAAC;AAEH,eAAe,UAAU,CAAC"}
|
package/src/tools/http/Http.js
CHANGED
|
@@ -50,6 +50,7 @@ const bodyToTracePayload = (body) => {
|
|
|
50
50
|
const emitHttpClientTrace = (input) => {
|
|
51
51
|
const { state, durationMs, response, responseBody, error } = input;
|
|
52
52
|
SystemTraceBridge.emitHttpClient({
|
|
53
|
+
source: 'http-client',
|
|
53
54
|
method: state.method,
|
|
54
55
|
url: state.url,
|
|
55
56
|
requestHeaders: { ...state.headers },
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Mailgun.d.ts","sourceRoot":"","sources":["../../../../../src/tools/mail/drivers/Mailgun.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"Mailgun.d.ts","sourceRoot":"","sources":["../../../../../src/tools/mail/drivers/Mailgun.ts"],"names":[],"mappings":"AAGA,MAAM,MAAM,aAAa,GAAG;IAC1B,MAAM,EAAE,MAAM,CAAC;IACf,MAAM,EAAE,MAAM,CAAC;IACf,OAAO,CAAC,EAAE,MAAM,CAAC;CAClB,CAAC;AAEF,MAAM,MAAM,WAAW,GAAG;IACxB,KAAK,EAAE,MAAM,CAAC;IACd,IAAI,CAAC,EAAE,MAAM,CAAC;CACf,CAAC;AAEF,MAAM,MAAM,cAAc,GAAG;IAAE,QAAQ,EAAE,MAAM,CAAC;IAAC,OAAO,EAAE,MAAM,CAAA;CAAE,CAAC;AAEnE,MAAM,MAAM,WAAW,GAAG;IACxB,EAAE,EAAE,MAAM,GAAG,MAAM,EAAE,CAAC;IACtB,IAAI,EAAE,WAAW,CAAC;IAClB,OAAO,EAAE,MAAM,CAAC;IAChB,IAAI,EAAE,MAAM,CAAC;IACb,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,WAAW,CAAC,EAAE,cAAc,EAAE,CAAC;CAChC,CAAC;AAEF,MAAM,MAAM,UAAU,GAAG;IACvB,EAAE,EAAE,OAAO,CAAC;IACZ,QAAQ,EAAE,SAAS,CAAC;IACpB,SAAS,CAAC,EAAE,MAAM,CAAC;CACpB,CAAC;AA2CF,eAAO,MAAM,aAAa;iBACL,aAAa,WAAW,WAAW,GAAG,OAAO,CAAC,UAAU,CAAC;EA2D5E,CAAC;AAEH,eAAe,aAAa,CAAC"}
|
|
@@ -1,3 +1,4 @@
|
|
|
1
|
+
import { tracedFetch } from '../../../common/ExternalServiceUtils.js';
|
|
1
2
|
import { ErrorFactory } from '../../../exceptions/ZintrustError.js';
|
|
2
3
|
const normalizeRecipients = (to) => (Array.isArray(to) ? to : [to]);
|
|
3
4
|
const base64 = (value) => Buffer.from(value, 'utf8').toString('base64');
|
|
@@ -54,13 +55,13 @@ export const MailgunDriver = Object.freeze({
|
|
|
54
55
|
}
|
|
55
56
|
}
|
|
56
57
|
const auth = `Basic ${base64('api:' + apiKey)}`;
|
|
57
|
-
const res = await
|
|
58
|
+
const res = await tracedFetch(url, {
|
|
58
59
|
method: 'POST',
|
|
59
60
|
headers: {
|
|
60
61
|
Authorization: auth,
|
|
61
62
|
},
|
|
62
63
|
body: form,
|
|
63
|
-
});
|
|
64
|
+
}, { source: 'mailgun' });
|
|
64
65
|
if (res.ok) {
|
|
65
66
|
try {
|
|
66
67
|
const json = (await res.json());
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"SendGrid.d.ts","sourceRoot":"","sources":["../../../../../src/tools/mail/drivers/SendGrid.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"SendGrid.d.ts","sourceRoot":"","sources":["../../../../../src/tools/mail/drivers/SendGrid.ts"],"names":[],"mappings":"AAIA,MAAM,MAAM,cAAc,GAAG;IAC3B,MAAM,EAAE,MAAM,CAAC;CAChB,CAAC;AAEF,MAAM,MAAM,WAAW,GAAG;IACxB,KAAK,EAAE,MAAM,CAAC;IACd,IAAI,CAAC,EAAE,MAAM,CAAC;CACf,CAAC;AAEF,MAAM,MAAM,cAAc,GAAG;IAAE,QAAQ,EAAE,MAAM,CAAC;IAAC,OAAO,EAAE,MAAM,CAAA;CAAE,CAAC;AAEnE,MAAM,MAAM,WAAW,GAAG;IACxB,EAAE,EAAE,MAAM,GAAG,MAAM,EAAE,CAAC;IACtB,IAAI,EAAE,WAAW,CAAC;IAClB,OAAO,EAAE,MAAM,CAAC;IAChB,IAAI,EAAE,MAAM,CAAC;IACb,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,WAAW,CAAC,EAAE,cAAc,EAAE,CAAC;CAChC,CAAC;AAEF,MAAM,MAAM,UAAU,GAAG;IACvB,EAAE,EAAE,OAAO,CAAC;IACZ,QAAQ,EAAE,UAAU,CAAC;IACrB,SAAS,CAAC,EAAE,MAAM,CAAC;CACpB,CAAC;AAIF,eAAO,MAAM,cAAc;iBACN,cAAc,WAAW,WAAW,GAAG,OAAO,CAAC,UAAU,CAAC;EAwE7E,CAAC;AAEH,eAAe,cAAc,CAAC"}
|
|
@@ -1,4 +1,5 @@
|
|
|
1
1
|
import { MIME_TYPES } from '../../../config/constants.js';
|
|
2
|
+
import { tracedFetch } from '../../../common/ExternalServiceUtils.js';
|
|
2
3
|
import { ErrorFactory } from '../../../exceptions/ZintrustError.js';
|
|
3
4
|
const normalizeRecipients = (to) => (Array.isArray(to) ? to : [to]);
|
|
4
5
|
export const SendGridDriver = Object.freeze({
|
|
@@ -35,14 +36,14 @@ export const SendGridDriver = Object.freeze({
|
|
|
35
36
|
filename: a.filename,
|
|
36
37
|
}));
|
|
37
38
|
}
|
|
38
|
-
const res = await
|
|
39
|
+
const res = await tracedFetch('https://api.sendgrid.com/v3/mail/send', {
|
|
39
40
|
method: 'POST',
|
|
40
41
|
headers: {
|
|
41
42
|
Authorization: `Bearer ${config.apiKey}`,
|
|
42
43
|
'content-type': MIME_TYPES.JSON,
|
|
43
44
|
},
|
|
44
45
|
body: JSON.stringify(body),
|
|
45
|
-
});
|
|
46
|
+
}, { source: 'sendgrid' });
|
|
46
47
|
// SendGrid typically returns 202 for success.
|
|
47
48
|
if (res.status === 202) {
|
|
48
49
|
const messageId = res.headers.get('x-message-id') ?? undefined;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Ses.d.ts","sourceRoot":"","sources":["../../../../../src/tools/mail/drivers/Ses.ts"],"names":[],"mappings":"AAIA,MAAM,MAAM,SAAS,GAAG;IACtB,MAAM,EAAE,MAAM,CAAC;CAChB,CAAC;AAEF,MAAM,MAAM,WAAW,GAAG;IACxB,KAAK,EAAE,MAAM,CAAC;IACd,IAAI,CAAC,EAAE,MAAM,CAAC;CACf,CAAC;AAEF,MAAM,MAAM,WAAW,GAAG;IACxB,EAAE,EAAE,MAAM,GAAG,MAAM,EAAE,CAAC;IACtB,IAAI,EAAE,WAAW,CAAC;IAClB,OAAO,EAAE,MAAM,CAAC;IAChB,IAAI,EAAE,MAAM,CAAC;IACb,IAAI,CAAC,EAAE,MAAM,CAAC;CACf,CAAC;AAEF,MAAM,MAAM,UAAU,GAAG;IACvB,EAAE,EAAE,OAAO,CAAC;IACZ,QAAQ,EAAE,KAAK,CAAC;IAChB,SAAS,CAAC,EAAE,MAAM,CAAC;CACpB,CAAC;AAsGF,eAAO,MAAM,SAAS;iBACD,SAAS,WAAW,WAAW,GAAG,OAAO,CAAC,UAAU,CAAC;
|
|
1
|
+
{"version":3,"file":"Ses.d.ts","sourceRoot":"","sources":["../../../../../src/tools/mail/drivers/Ses.ts"],"names":[],"mappings":"AAIA,MAAM,MAAM,SAAS,GAAG;IACtB,MAAM,EAAE,MAAM,CAAC;CAChB,CAAC;AAEF,MAAM,MAAM,WAAW,GAAG;IACxB,KAAK,EAAE,MAAM,CAAC;IACd,IAAI,CAAC,EAAE,MAAM,CAAC;CACf,CAAC;AAEF,MAAM,MAAM,WAAW,GAAG;IACxB,EAAE,EAAE,MAAM,GAAG,MAAM,EAAE,CAAC;IACtB,IAAI,EAAE,WAAW,CAAC;IAClB,OAAO,EAAE,MAAM,CAAC;IAChB,IAAI,EAAE,MAAM,CAAC;IACb,IAAI,CAAC,EAAE,MAAM,CAAC;CACf,CAAC;AAEF,MAAM,MAAM,UAAU,GAAG;IACvB,EAAE,EAAE,OAAO,CAAC;IACZ,QAAQ,EAAE,KAAK,CAAC;IAChB,SAAS,CAAC,EAAE,MAAM,CAAC;CACpB,CAAC;AAsGF,eAAO,MAAM,SAAS;iBACD,SAAS,WAAW,WAAW,GAAG,OAAO,CAAC,UAAU,CAAC;EAoDxE,CAAC;AAEH,eAAe,SAAS,CAAC"}
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { readEnvString } from '../../../common/ExternalServiceUtils.js';
|
|
1
|
+
import { readEnvString, tracedFetch } from '../../../common/ExternalServiceUtils.js';
|
|
2
2
|
import { AwsSigV4 } from '../../../common/index.js';
|
|
3
3
|
import { ErrorFactory } from '../../../exceptions/ZintrustError.js';
|
|
4
4
|
const sha256Hex = (data) => AwsSigV4.sha256Hex(data);
|
|
@@ -92,11 +92,11 @@ export const SesDriver = Object.freeze({
|
|
|
92
92
|
path,
|
|
93
93
|
});
|
|
94
94
|
const headers = buildHeaders(amzDate, authorization, sessionToken);
|
|
95
|
-
const res = await
|
|
95
|
+
const res = await tracedFetch(url, {
|
|
96
96
|
method: 'POST',
|
|
97
97
|
headers,
|
|
98
98
|
body: bodyJson,
|
|
99
|
-
});
|
|
99
|
+
}, { source: 'ses' });
|
|
100
100
|
if (res.ok) {
|
|
101
101
|
try {
|
|
102
102
|
const json = (await res.json());
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Service.d.ts","sourceRoot":"","sources":["../../../../src/tools/notification/Service.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"Service.d.ts","sourceRoot":"","sources":["../../../../src/tools/notification/Service.ts"],"names":[],"mappings":"AA0EA,eAAO,MAAM,mBAAmB;oBACR,MAAM,WAAW,MAAM,YAAW,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC;yBAWhE,MAAM,aACR,MAAM,WACR,MAAM,YACN,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC;mBA4DnB,MAAM,EAAE;EAGvB,CAAC;AAEH,eAAe,mBAAmB,CAAC"}
|
|
@@ -1,4 +1,5 @@
|
|
|
1
1
|
import { SystemTraceBridge } from '../../trace/SystemTraceBridge.js';
|
|
2
|
+
import { tracedFetch } from '../../common/ExternalServiceUtils.js';
|
|
2
3
|
import notificationConfig from '../../config/notification.js';
|
|
3
4
|
import { ErrorFactory } from '../../exceptions/ZintrustError.js';
|
|
4
5
|
import { NotificationConfig } from './config.js';
|
|
@@ -38,11 +39,11 @@ const sendTermii = async (cfg, recipient, message, options) => {
|
|
|
38
39
|
api_key: apiKey,
|
|
39
40
|
...options,
|
|
40
41
|
};
|
|
41
|
-
const res = await
|
|
42
|
+
const res = await tracedFetch(url, {
|
|
42
43
|
method: 'POST',
|
|
43
44
|
headers: { 'Content-Type': 'application/json' },
|
|
44
45
|
body: JSON.stringify(payload),
|
|
45
|
-
});
|
|
46
|
+
}, { source: 'termii' });
|
|
46
47
|
if (!res.ok) {
|
|
47
48
|
const txt = await res.text().catch(() => '');
|
|
48
49
|
throw ErrorFactory.createTryCatchError(`Termii request failed (${res.status})`, {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Slack.d.ts","sourceRoot":"","sources":["../../../../../src/tools/notification/drivers/Slack.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"Slack.d.ts","sourceRoot":"","sources":["../../../../../src/tools/notification/drivers/Slack.ts"],"names":[],"mappings":"AAGA,MAAM,MAAM,WAAW,GAAG;IACxB,UAAU,EAAE,MAAM,CAAC;CACpB,CAAC;AAEF,MAAM,MAAM,YAAY,GAAG,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;AAEnD,eAAO,MAAM,WAAW;iBAEZ,WAAW,WACV,YAAY,GACpB,OAAO,CAAC;QAAE,EAAE,EAAE,OAAO,CAAC;QAAC,MAAM,CAAC,EAAE,MAAM,CAAA;KAAE,CAAC;EA0B5C,CAAC;AAEH,eAAO,MAAM,gBAAgB,GAC3B,QAAQ,WAAW,EACnB,SAAS,YAAY,KACpB,OAAO,CAAC;IAAE,EAAE,EAAE,OAAO,CAAC;IAAC,MAAM,CAAC,EAAE,MAAM,CAAA;CAAE,CAAsC,CAAC;AAElF,eAAe,WAAW,CAAC"}
|
|
@@ -1,3 +1,4 @@
|
|
|
1
|
+
import { tracedFetch } from '../../../common/ExternalServiceUtils.js';
|
|
1
2
|
import { ErrorFactory } from '../../../exceptions/ZintrustError.js';
|
|
2
3
|
export const SlackDriver = Object.freeze({
|
|
3
4
|
async send(config, payload) {
|
|
@@ -5,11 +6,11 @@ export const SlackDriver = Object.freeze({
|
|
|
5
6
|
if (typeof url !== 'string' || url.trim() === '') {
|
|
6
7
|
throw ErrorFactory.createConfigError('Slack: missing webhook URL');
|
|
7
8
|
}
|
|
8
|
-
const res = await
|
|
9
|
+
const res = await tracedFetch(url, {
|
|
9
10
|
method: 'POST',
|
|
10
11
|
headers: { 'content-type': 'application/json' },
|
|
11
12
|
body: JSON.stringify(payload),
|
|
12
|
-
});
|
|
13
|
+
}, { source: 'slack' });
|
|
13
14
|
if (!res.ok) {
|
|
14
15
|
const text = await res.text();
|
|
15
16
|
throw ErrorFactory.createConnectionError(`Slack webhook failed (${res.status})`, {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Termii.d.ts","sourceRoot":"","sources":["../../../../../src/tools/notification/drivers/Termii.ts"],"names":[],"mappings":"AAGA;;;;GAIG;AACH,eAAO,MAAM,YAAY;oBACD,MAAM,WAAW,MAAM,YAAW,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC;
|
|
1
|
+
{"version":3,"file":"Termii.d.ts","sourceRoot":"","sources":["../../../../../src/tools/notification/drivers/Termii.ts"],"names":[],"mappings":"AAGA;;;;GAIG;AACH,eAAO,MAAM,YAAY;oBACD,MAAM,WAAW,MAAM,YAAW,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC;EAmC/E,CAAC;AAEH,eAAe,YAAY,CAAC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Twilio.d.ts","sourceRoot":"","sources":["../../../../../src/tools/notification/drivers/Twilio.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"Twilio.d.ts","sourceRoot":"","sources":["../../../../../src/tools/notification/drivers/Twilio.ts"],"names":[],"mappings":"AAGA,MAAM,MAAM,YAAY,GAAG;IACzB,UAAU,EAAE,MAAM,CAAC;IACnB,SAAS,EAAE,MAAM,CAAC;IAClB,IAAI,EAAE,MAAM,CAAC;CACd,CAAC;AAEF,MAAM,MAAM,aAAa,GAAG;IAC1B,EAAE,EAAE,MAAM,CAAC;IACX,IAAI,EAAE,MAAM,CAAC;CACd,CAAC;AAOF,eAAO,MAAM,YAAY;iBAEb,YAAY,WACX,aAAa,GACrB,OAAO,CAAC;QAAE,EAAE,EAAE,OAAO,CAAC;QAAC,MAAM,CAAC,EAAE,MAAM,CAAA;KAAE,CAAC;EAmD5C,CAAC;AAEH,eAAO,MAAM,OAAO,GAClB,QAAQ,YAAY,EACpB,SAAS,aAAa,KACrB,OAAO,CAAC;IAAE,EAAE,EAAE,OAAO,CAAC;IAAC,MAAM,CAAC,EAAE,MAAM,CAAA;CAAE,CAAuC,CAAC;AAEnF,eAAe,YAAY,CAAC"}
|
|
@@ -1,3 +1,4 @@
|
|
|
1
|
+
import { tracedFetch } from '../../../common/ExternalServiceUtils.js';
|
|
1
2
|
import { ErrorFactory } from '../../../exceptions/ZintrustError.js';
|
|
2
3
|
const buildUrl = (accountSid) => {
|
|
3
4
|
const base = 'https://api.twilio.com/2010-04-01/Accounts/';
|
|
@@ -26,14 +27,14 @@ export const TwilioDriver = Object.freeze({
|
|
|
26
27
|
params.append('From', from);
|
|
27
28
|
params.append('Body', payload.body);
|
|
28
29
|
const basic = Buffer.from(`${accountSid}:${authToken}`).toString('base64');
|
|
29
|
-
const res = await
|
|
30
|
+
const res = await tracedFetch(url, {
|
|
30
31
|
method: 'POST',
|
|
31
32
|
headers: {
|
|
32
33
|
Authorization: `Basic ${basic}`,
|
|
33
34
|
'content-type': 'application/x-www-form-urlencoded',
|
|
34
35
|
},
|
|
35
36
|
body: params.toString(),
|
|
36
|
-
});
|
|
37
|
+
}, { source: 'twilio' });
|
|
37
38
|
if (!res.ok) {
|
|
38
39
|
const body = await res.text();
|
|
39
40
|
throw ErrorFactory.createConnectionError(`Twilio API failed (${res.status})`, {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"S3.d.ts","sourceRoot":"","sources":["../../../../../src/tools/storage/drivers/S3.ts"],"names":[],"mappings":"AAKA,MAAM,MAAM,QAAQ,GAAG;IACrB,MAAM,EAAE,MAAM,CAAC;IACf,MAAM,EAAE,MAAM,CAAC;IACf,WAAW,EAAE,MAAM,CAAC;IACpB,eAAe,EAAE,MAAM,CAAC;IACxB,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,YAAY,CAAC,EAAE,OAAO,CAAC;CACxB,CAAC;AAEF,MAAM,MAAM,OAAO,GAAG;IACpB,WAAW,EAAE,MAAM,CAAC;IACpB,eAAe,EAAE,MAAM,CAAC;IACxB,YAAY,EAAE,MAAM,GAAG,SAAS,CAAC;CAClC,CAAC;AAwGF,eAAO,MAAM,QAAQ;gBACD,QAAQ,OAAO,MAAM,WAAW,MAAM,GAAG,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC;
|
|
1
|
+
{"version":3,"file":"S3.d.ts","sourceRoot":"","sources":["../../../../../src/tools/storage/drivers/S3.ts"],"names":[],"mappings":"AAKA,MAAM,MAAM,QAAQ,GAAG;IACrB,MAAM,EAAE,MAAM,CAAC;IACf,MAAM,EAAE,MAAM,CAAC;IACf,WAAW,EAAE,MAAM,CAAC;IACpB,eAAe,EAAE,MAAM,CAAC;IACxB,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,YAAY,CAAC,EAAE,OAAO,CAAC;CACxB,CAAC;AAEF,MAAM,MAAM,OAAO,GAAG;IACpB,WAAW,EAAE,MAAM,CAAC;IACpB,eAAe,EAAE,MAAM,CAAC;IACxB,YAAY,EAAE,MAAM,GAAG,SAAS,CAAC;CAClC,CAAC;AAwGF,eAAO,MAAM,QAAQ;gBACD,QAAQ,OAAO,MAAM,WAAW,MAAM,GAAG,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC;gBAkDjE,QAAQ,OAAO,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC;mBA8CpC,QAAQ,OAAO,MAAM,GAAG,OAAO,CAAC,OAAO,CAAC;mBAsCxC,QAAQ,OAAO,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;gBAwC9C,QAAQ,OAAO,MAAM,GAAG,MAAM;oBAOhC,QAAQ,OACX,MAAM,YACD;QAAE,SAAS,CAAC,EAAE,MAAM,CAAC;QAAC,MAAM,CAAC,EAAE,KAAK,GAAG,KAAK,CAAA;KAAE,GACvD,MAAM;EAqDT,CAAC;AAEH,eAAe,QAAQ,CAAC"}
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { readEnvString } from '../../../common/ExternalServiceUtils.js';
|
|
1
|
+
import { readEnvString, tracedFetch } from '../../../common/ExternalServiceUtils.js';
|
|
2
2
|
import { AwsSigV4 } from '../../../common/index.js';
|
|
3
3
|
import { ErrorFactory } from '../../../exceptions/ZintrustError.js';
|
|
4
4
|
import { createHash, createHmac } from '../../../node-singletons/crypto.js';
|
|
@@ -97,11 +97,11 @@ export const S3Driver = Object.freeze({
|
|
|
97
97
|
};
|
|
98
98
|
if (sessionToken !== undefined)
|
|
99
99
|
headers['x-amz-security-token'] = sessionToken;
|
|
100
|
-
const res = await
|
|
100
|
+
const res = await tracedFetch(`https://${host}${path}`, {
|
|
101
101
|
method: 'PUT',
|
|
102
102
|
headers,
|
|
103
103
|
body,
|
|
104
|
-
});
|
|
104
|
+
}, { source: 's3' });
|
|
105
105
|
if (!res.ok) {
|
|
106
106
|
const text = await res.text();
|
|
107
107
|
throw ErrorFactory.createConnectionError(`S3 put failed (${res.status})`, {
|
|
@@ -134,10 +134,10 @@ export const S3Driver = Object.freeze({
|
|
|
134
134
|
};
|
|
135
135
|
if (sessionToken !== undefined)
|
|
136
136
|
headers['x-amz-security-token'] = sessionToken;
|
|
137
|
-
const res = await
|
|
137
|
+
const res = await tracedFetch(`https://${host}${path}`, {
|
|
138
138
|
method: 'GET',
|
|
139
139
|
headers,
|
|
140
|
-
});
|
|
140
|
+
}, { source: 's3' });
|
|
141
141
|
if (!res.ok) {
|
|
142
142
|
const text = await res.text();
|
|
143
143
|
throw ErrorFactory.createNotFoundError('S3 get failed', { status: res.status, body: text });
|
|
@@ -169,7 +169,7 @@ export const S3Driver = Object.freeze({
|
|
|
169
169
|
};
|
|
170
170
|
if (sessionToken !== undefined)
|
|
171
171
|
headers['x-amz-security-token'] = sessionToken;
|
|
172
|
-
const res = await
|
|
172
|
+
const res = await tracedFetch(`https://${host}${path}`, { method: 'HEAD', headers }, { source: 's3' });
|
|
173
173
|
return res.ok;
|
|
174
174
|
}
|
|
175
175
|
catch {
|
|
@@ -199,7 +199,7 @@ export const S3Driver = Object.freeze({
|
|
|
199
199
|
};
|
|
200
200
|
if (sessionToken !== undefined)
|
|
201
201
|
headers['x-amz-security-token'] = sessionToken;
|
|
202
|
-
const res = await
|
|
202
|
+
const res = await tracedFetch(`https://${host}${path}`, { method: 'DELETE', headers }, { source: 's3' });
|
|
203
203
|
if (!res.ok) {
|
|
204
204
|
const text = await res.text();
|
|
205
205
|
throw ErrorFactory.createConnectionError(`S3 delete failed (${res.status})`, {
|
|
@@ -5,6 +5,7 @@ export declare const SystemTraceBridge: Readonly<{
|
|
|
5
5
|
emitCommand: (name: string, args: Record<string, unknown>, exitCode: number, duration: number, output?: string) => void;
|
|
6
6
|
emitEvent: (name: string, listenerCount: number, payload?: unknown) => void;
|
|
7
7
|
emitHttpClient: (payload: {
|
|
8
|
+
source?: string;
|
|
8
9
|
method: string;
|
|
9
10
|
url: string;
|
|
10
11
|
requestHeaders: Record<string, string>;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"SystemTraceBridge.d.ts","sourceRoot":"","sources":["../../../src/trace/SystemTraceBridge.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"SystemTraceBridge.d.ts","sourceRoot":"","sources":["../../../src/trace/SystemTraceBridge.ts"],"names":[],"mappings":"AAsOA,eAAO,MAAM,iBAAiB;mBALJ,OAAO,CAAC,OAAO,CAAC;sBAlBjB,OAAO,GAAG,QAAQ,GAAG,QAAQ,WAAW,MAAM,KAAG,IAAI;2BA/FjE,KAAK,GAAG,KAAK,GAAG,QAAQ,GAAG,OAAO,GAAG,KAAK,OAChD,MAAM,YACD,MAAM,QACV,OAAO,YACH,OAAO,UACT,MAAM,QACR,MAAM,KACX,IAAI;wBA+FC,MAAM,QACN,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,YACnB,MAAM,YACN,MAAM,WACP,MAAM,KACd,IAAI;sBAlBkB,MAAM,iBAAiB,MAAM,YAAY,OAAO,KAAG,IAAI;8BAlC/C;QAC/B,MAAM,CAAC,EAAE,MAAM,CAAC;QAChB,MAAM,EAAE,MAAM,CAAC;QACf,GAAG,EAAE,MAAM,CAAC;QACZ,cAAc,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;QACvC,cAAc,CAAC,EAAE,MAAM,CAAC;QACxB,QAAQ,EAAE,MAAM,CAAC;QACjB,WAAW,CAAC,EAAE,OAAO,CAAC;QACtB,eAAe,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;QACzC,YAAY,CAAC,EAAE,OAAO,CAAC;QACvB,KAAK,CAAC,EAAE,MAAM,CAAC;KAChB,KAAG,IAAI;4BArDuB,MAAM,SAAS,MAAM,cAAc,MAAM,SAAS,OAAO,KAAG,IAAI;0BAYlE,MAAM,SAAS,KAAK,KAAG,IAAI;6BANxB,MAAM,KAAG,IAAI;mBAyBvC,MAAM,WACD,MAAM,aACJ,MAAM,SACV,MAAM,SACN,MAAM,KACZ,IAAI;qCAjBS,MAAM,YACV,MAAM,EAAE,eACL,MAAM,YACT,MAAM,YACN,OAAO,KAChB,IAAI;uBAoCE,MAAM,UACL,OAAO,EAAE,YACP,MAAM,eACH,MAAM,KAClB,IAAI;yBAMqB,MAAM,YAAY,MAAM,KAAG,IAAI;EAiDzD,CAAC;AAEH,eAAe,iBAAiB,CAAC"}
|