@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 CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@zintrust/core",
3
- "version": "0.4.95",
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.2.3",
60
+ "@cloudflare/containers": "^0.3.0",
61
61
  "bcryptjs": "^3.0.3",
62
- "bullmq": "^5.73.0",
62
+ "bullmq": "^5.73.4",
63
63
  "chalk": "^5.6.2",
64
64
  "commander": "^14.0.3",
65
- "inquirer": "^13.4.0",
65
+ "inquirer": "^13.4.1",
66
66
  "jsonwebtoken": "^9.0.3",
67
- "mysql2": "^3.20.0",
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,GAAU,KAAK,MAAM,EAAE,SAAS,WAAW,KAAG,OAAO,CAAC,QAAQ,CAcnF,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"}
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 globalThis.fetch(url, options);
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.95
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-11T17:42:15.554Z
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-11T17:42:15.520Z'; // Replaced during build
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;AA+xBH,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"}
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 globalThis.fetch(endpoint, {
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":"AAAA,OAAO,KAAK,EAAE,2BAA2B,EAAE,MAAM,cAAc,CAAC;AAqDhE,eAAO,MAAM,YAAY;iBACJ,2BAA2B,WAAW,MAAM,SAAS,MAAM,QAAQ,OAAO;;;EAkD7F,CAAC;AAEH,eAAe,YAAY,CAAC"}
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 fetch(url, {
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;AA4QD;;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"}
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"}
@@ -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":"AAEA,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;EAuD5E,CAAC;AAEH,eAAe,aAAa,CAAC"}
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 fetch(url, {
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":"AAGA,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;EAoE7E,CAAC;AAEH,eAAe,cAAc,CAAC"}
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 fetch('https://api.sendgrid.com/v3/mail/send', {
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;EAgDxE,CAAC;AAEH,eAAe,SAAS,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 fetch(url, {
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":"AAqEA,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
+ {"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 globalThis.fetch(url, {
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":"AAEA,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;EAsB5C,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
+ {"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 fetch(url, {
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;EA+B/E,CAAC;AAEH,eAAe,YAAY,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"}
@@ -28,7 +28,7 @@ export const TermiiDriver = Object.freeze({
28
28
  'Content-Type': 'application/json',
29
29
  },
30
30
  body: JSON.stringify(payload),
31
- });
31
+ }, { source: 'termii' });
32
32
  const json = await res.json().catch(() => ({}));
33
33
  return json;
34
34
  },
@@ -1 +1 @@
1
- {"version":3,"file":"Twilio.d.ts","sourceRoot":"","sources":["../../../../../src/tools/notification/drivers/Twilio.ts"],"names":[],"mappings":"AAEA,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;EA+C5C,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
+ {"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 fetch(url, {
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;gBA8CjE,QAAQ,OAAO,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC;mBA0CpC,QAAQ,OAAO,MAAM,GAAG,OAAO,CAAC,OAAO,CAAC;mBAkCxC,QAAQ,OAAO,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;gBAoC9C,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
+ {"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 fetch(`https://${host}${path}`, {
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 fetch(`https://${host}${path}`, {
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 fetch(`https://${host}${path}`, { method: 'HEAD', headers });
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 fetch(`https://${host}${path}`, { method: 'DELETE', headers });
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":"AAoOA,eAAO,MAAM,iBAAiB;mBALJ,OAAO,CAAC,OAAO,CAAC;sBAlBjB,OAAO,GAAG,QAAQ,GAAG,QAAQ,WAAW,MAAM,KAAG,IAAI;2BA9FjE,KAAK,GAAG,KAAK,GAAG,QAAQ,GAAG,OAAO,GAAG,KAAK,OAChD,MAAM,YACD,MAAM,QACV,OAAO,YACH,OAAO,UACT,MAAM,QACR,MAAM,KACX,IAAI;wBA8FC,MAAM,QACN,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,YACnB,MAAM,YACN,MAAM,WACP,MAAM,KACd,IAAI;sBAlBkB,MAAM,iBAAiB,MAAM,YAAY,OAAO,KAAG,IAAI;8BAjC/C;QAC/B,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;4BApDuB,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;uBAmCE,MAAM,UACL,OAAO,EAAE,YACP,MAAM,eACH,MAAM,KAClB,IAAI;yBAMqB,MAAM,YAAY,MAAM,KAAG,IAAI;EAiDzD,CAAC;AAEH,eAAe,iBAAiB,CAAC"}
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"}