@softprobe/softprobe-js 2.0.3 → 2.0.5
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/README.md +14 -1
- package/dist/cli/diff.d.ts.map +1 -1
- package/dist/cli/diff.js +6 -1
- package/dist/cli/diff.js.map +1 -1
- package/dist/core/runtime/architecture-guard.js +13 -13
- package/dist/core/runtime/architecture-guard.js.map +1 -1
- package/dist/core/runtime/http-body.d.ts +5 -0
- package/dist/core/runtime/http-body.d.ts.map +1 -0
- package/dist/core/runtime/http-body.js +20 -0
- package/dist/core/runtime/http-body.js.map +1 -0
- package/dist/instrumentations/common/http/inbound-capture.d.ts +4 -0
- package/dist/instrumentations/common/http/inbound-capture.d.ts.map +1 -1
- package/dist/instrumentations/common/http/inbound-capture.js +5 -2
- package/dist/instrumentations/common/http/inbound-capture.js.map +1 -1
- package/dist/instrumentations/common/http/inbound-record.d.ts +4 -0
- package/dist/instrumentations/common/http/inbound-record.d.ts.map +1 -1
- package/dist/instrumentations/common/http/inbound-record.js +8 -4
- package/dist/instrumentations/common/http/inbound-record.js.map +1 -1
- package/dist/instrumentations/express/capture.d.ts.map +1 -1
- package/dist/instrumentations/express/capture.js +2 -0
- package/dist/instrumentations/express/capture.js.map +1 -1
- package/package.json +3 -2
- package/dist/bindings/http-span.d.ts +0 -6
- package/dist/bindings/http-span.d.ts.map +0 -1
- package/dist/bindings/http-span.js +0 -11
- package/dist/bindings/http-span.js.map +0 -1
- package/dist/bindings/postgres-span.d.ts +0 -6
- package/dist/bindings/postgres-span.d.ts.map +0 -1
- package/dist/bindings/postgres-span.js +0 -11
- package/dist/bindings/postgres-span.js.map +0 -1
- package/dist/bindings/redis-span.d.ts +0 -6
- package/dist/bindings/redis-span.d.ts.map +0 -1
- package/dist/bindings/redis-span.js +0 -11
- package/dist/bindings/redis-span.js.map +0 -1
- package/dist/bindings/test-span.d.ts +0 -6
- package/dist/bindings/test-span.d.ts.map +0 -1
- package/dist/bindings/test-span.js +0 -9
- package/dist/bindings/test-span.js.map +0 -1
- package/dist/capture/express.d.ts +0 -6
- package/dist/capture/express.d.ts.map +0 -1
- package/dist/capture/express.js +0 -11
- package/dist/capture/express.js.map +0 -1
- package/dist/capture/fastify.d.ts +0 -5
- package/dist/capture/fastify.d.ts.map +0 -1
- package/dist/capture/fastify.js +0 -9
- package/dist/capture/fastify.js.map +0 -1
- package/dist/capture/framework-mutator.d.ts +0 -20
- package/dist/capture/framework-mutator.d.ts.map +0 -1
- package/dist/capture/framework-mutator.js +0 -144
- package/dist/capture/framework-mutator.js.map +0 -1
- package/dist/capture/http-inbound.d.ts +0 -28
- package/dist/capture/http-inbound.d.ts.map +0 -1
- package/dist/capture/http-inbound.js +0 -40
- package/dist/capture/http-inbound.js.map +0 -1
- package/dist/capture/inject.d.ts +0 -17
- package/dist/capture/inject.d.ts.map +0 -1
- package/dist/capture/inject.js +0 -28
- package/dist/capture/inject.js.map +0 -1
- package/dist/capture/mutator.d.ts +0 -17
- package/dist/capture/mutator.d.ts.map +0 -1
- package/dist/capture/mutator.js +0 -51
- package/dist/capture/mutator.js.map +0 -1
- package/dist/capture/postgres.d.ts +0 -6
- package/dist/capture/postgres.d.ts.map +0 -1
- package/dist/capture/postgres.js +0 -11
- package/dist/capture/postgres.js.map +0 -1
- package/dist/capture/redis.d.ts +0 -5
- package/dist/capture/redis.d.ts.map +0 -1
- package/dist/capture/redis.js +0 -10
- package/dist/capture/redis.js.map +0 -1
- package/dist/capture/store-accessor.d.ts +0 -11
- package/dist/capture/store-accessor.d.ts.map +0 -1
- package/dist/capture/store-accessor.js +0 -19
- package/dist/capture/store-accessor.js.map +0 -1
- package/dist/capture/stream-tap.d.ts +0 -5
- package/dist/capture/stream-tap.d.ts.map +0 -1
- package/dist/capture/stream-tap.js +0 -9
- package/dist/capture/stream-tap.js.map +0 -1
- package/dist/identifier.d.ts +0 -5
- package/dist/identifier.d.ts.map +0 -1
- package/dist/identifier.js +0 -11
- package/dist/identifier.js.map +0 -1
- package/dist/replay/express.d.ts +0 -5
- package/dist/replay/express.d.ts.map +0 -1
- package/dist/replay/express.js +0 -9
- package/dist/replay/express.js.map +0 -1
- package/dist/replay/extract-key.d.ts +0 -41
- package/dist/replay/extract-key.d.ts.map +0 -1
- package/dist/replay/extract-key.js +0 -80
- package/dist/replay/extract-key.js.map +0 -1
- package/dist/replay/fastify.d.ts +0 -5
- package/dist/replay/fastify.d.ts.map +0 -1
- package/dist/replay/fastify.js +0 -9
- package/dist/replay/fastify.js.map +0 -1
- package/dist/replay/http.d.ts +0 -5
- package/dist/replay/http.d.ts.map +0 -1
- package/dist/replay/http.js +0 -10
- package/dist/replay/http.js.map +0 -1
- package/dist/replay/matcher.d.ts +0 -25
- package/dist/replay/matcher.d.ts.map +0 -1
- package/dist/replay/matcher.js +0 -83
- package/dist/replay/matcher.js.map +0 -1
- package/dist/replay/postgres.d.ts +0 -5
- package/dist/replay/postgres.d.ts.map +0 -1
- package/dist/replay/postgres.js +0 -10
- package/dist/replay/postgres.js.map +0 -1
- package/dist/replay/redis.d.ts +0 -5
- package/dist/replay/redis.d.ts.map +0 -1
- package/dist/replay/redis.js +0 -10
- package/dist/replay/redis.js.map +0 -1
- package/dist/replay/softprobe-matcher.d.ts +0 -41
- package/dist/replay/softprobe-matcher.d.ts.map +0 -1
- package/dist/replay/softprobe-matcher.js +0 -92
- package/dist/replay/softprobe-matcher.js.map +0 -1
- package/dist/replay/store-accessor.d.ts +0 -14
- package/dist/replay/store-accessor.d.ts.map +0 -1
- package/dist/replay/store-accessor.js +0 -26
- package/dist/replay/store-accessor.js.map +0 -1
- package/dist/replay/topology.d.ts +0 -37
- package/dist/replay/topology.d.ts.map +0 -1
- package/dist/replay/topology.js +0 -72
- package/dist/replay/topology.js.map +0 -1
package/README.md
CHANGED
|
@@ -202,7 +202,11 @@ Reference:
|
|
|
202
202
|
Release flow:
|
|
203
203
|
|
|
204
204
|
1. Merge changes to `main`.
|
|
205
|
-
2.
|
|
205
|
+
2. Run one command to bump version, push commit, and push matching tag:
|
|
206
|
+
- Patch release: `npm run release:create`
|
|
207
|
+
- Explicit bump: `npm run release:create -- --bump minor`
|
|
208
|
+
- Explicit version: `npm run release:create -- --set-version 2.1.0`
|
|
209
|
+
This keeps `package.json` and tag `v*` consistent because the tag is derived from the new `package.json` version.
|
|
206
210
|
3. GitHub Action builds and publishes automatically.
|
|
207
211
|
|
|
208
212
|
Manual validation flow:
|
|
@@ -216,15 +220,24 @@ No `NPM_TOKEN` repository secret is required for this workflow.
|
|
|
216
220
|
This repo ships a ready-to-use Cursor Skill at:
|
|
217
221
|
|
|
218
222
|
- `cursor-skills/softprobe/SKILL.md`
|
|
223
|
+
- `cursor-skills/softprobe/docs/softprobe-spec.md`
|
|
224
|
+
- `cursor-skills/softprobe/docs/architecture-contract.md`
|
|
225
|
+
- `cursor-skills/softprobe/docs/integration-runbook.md`
|
|
226
|
+
- `cursor-skills/softprobe/docs/workflow-contract.md`
|
|
227
|
+
- `cursor-skills/softprobe/docs/compatibility-matrix.md`
|
|
228
|
+
- `cursor-skills/softprobe/docs/do-not-infer.md`
|
|
219
229
|
- `cursor-skills/softprobe/templates/capture.sh`
|
|
220
230
|
- `cursor-skills/softprobe/templates/diff.sh`
|
|
221
231
|
- `cursor-skills/softprobe/templates/demo-pricing.sh`
|
|
222
232
|
|
|
233
|
+
For external repositories, install/copy the entire `cursor-skills/softprobe` folder so the skill includes both instructions and product knowledge.
|
|
234
|
+
|
|
223
235
|
### Install into Cursor
|
|
224
236
|
|
|
225
237
|
1. Open Cursor Settings.
|
|
226
238
|
2. Open Skills management.
|
|
227
239
|
3. Add/import the skill from this repo path: `cursor-skills/softprobe`.
|
|
240
|
+
- If importing to another repo, copy the full folder (including `docs/` and `templates/`).
|
|
228
241
|
4. Ensure global CLI is installed: `npm install -g @softprobe/softprobe-js`.
|
|
229
242
|
5. Reload Cursor window.
|
|
230
243
|
|
package/dist/cli/diff.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"diff.d.ts","sourceRoot":"","sources":["../../src/cli/diff.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAIH,OAAO,KAAK,EAAE,uBAAuB,EAAE,MAAM,iBAAiB,CAAC;
|
|
1
|
+
{"version":3,"file":"diff.d.ts","sourceRoot":"","sources":["../../src/cli/diff.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAIH,OAAO,KAAK,EAAE,uBAAuB,EAAE,MAAM,iBAAiB,CAAC;AA2B/D,MAAM,MAAM,aAAa,GAAG;IAAE,QAAQ,EAAE,QAAQ,CAAC;IAAC,OAAO,EAAE,uBAAuB,CAAA;CAAE,CAAC;AAErF;;;GAGG;AACH,wBAAsB,OAAO,CAAC,IAAI,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,GAAG,OAAO,CAAC,aAAa,CAAC,CAsClF"}
|
package/dist/cli/diff.js
CHANGED
|
@@ -64,6 +64,11 @@ function parseHttpIdentifier(identifier) {
|
|
|
64
64
|
url: identifier.slice(idx + 1),
|
|
65
65
|
};
|
|
66
66
|
}
|
|
67
|
+
/** GET/HEAD requests cannot include body in undici/fetch. */
|
|
68
|
+
function methodAllowsBody(method) {
|
|
69
|
+
const normalized = method.trim().toUpperCase();
|
|
70
|
+
return normalized !== 'GET' && normalized !== 'HEAD';
|
|
71
|
+
}
|
|
67
72
|
/**
|
|
68
73
|
* Loads cassette, finds inbound record, sends request to target with coordination headers.
|
|
69
74
|
* Returns the fetch Response and the inbound record so caller can compare recorded vs live.
|
|
@@ -83,7 +88,7 @@ async function runDiff(file, target) {
|
|
|
83
88
|
const { method, url } = parseHttpIdentifier(inbound.identifier);
|
|
84
89
|
const requestUrl = `${target.replace(/\/$/, '')}${url.startsWith('/') ? url : '/' + url}`;
|
|
85
90
|
const requestPayload = inbound.requestPayload;
|
|
86
|
-
const body = requestPayload?.body !== undefined
|
|
91
|
+
const body = methodAllowsBody(method) && requestPayload?.body !== undefined
|
|
87
92
|
? (typeof requestPayload.body === 'string'
|
|
88
93
|
? requestPayload.body
|
|
89
94
|
: JSON.stringify(requestPayload.body))
|
package/dist/cli/diff.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"diff.js","sourceRoot":"","sources":["../../src/cli/diff.ts"],"names":[],"mappings":";AAAA;;;;;;GAMG;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
|
|
1
|
+
{"version":3,"file":"diff.js","sourceRoot":"","sources":["../../src/cli/diff.ts"],"names":[],"mappings":"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"}
|
|
@@ -36,16 +36,15 @@ function collectArchitectureViolations() {
|
|
|
36
36
|
if (!specifier.startsWith('.'))
|
|
37
37
|
continue;
|
|
38
38
|
const resolved = resolveToTsPath(file, specifier);
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
}
|
|
39
|
+
const candidatePath = normalized(node_path_1.default.resolve(node_path_1.default.dirname(file), specifier));
|
|
40
|
+
const normalizedPath = normalized(resolved ?? candidatePath);
|
|
41
|
+
if (normalizedPath.includes('/src/instrumentations/')) {
|
|
42
|
+
violations.push(`core-imports-instrumentation: ${relative(file)} -> ${specifier}`);
|
|
43
|
+
}
|
|
44
|
+
else if (normalizedPath.includes('/src/capture/')
|
|
45
|
+
|| normalizedPath.includes('/src/replay/')
|
|
46
|
+
|| normalizedPath.includes('/src/bindings/')) {
|
|
47
|
+
violations.push(`core-imports-legacy: ${relative(file)} -> ${specifier}`);
|
|
49
48
|
}
|
|
50
49
|
}
|
|
51
50
|
}
|
|
@@ -62,15 +61,16 @@ function collectArchitectureViolations() {
|
|
|
62
61
|
if (!specifier.startsWith('.'))
|
|
63
62
|
continue;
|
|
64
63
|
const resolved = resolveToTsPath(file, specifier);
|
|
65
|
-
|
|
66
|
-
|
|
67
|
-
const normalizedPath = normalized(resolved);
|
|
64
|
+
const candidatePath = normalized(node_path_1.default.resolve(node_path_1.default.dirname(file), specifier));
|
|
65
|
+
const normalizedPath = normalized(resolved ?? candidatePath);
|
|
68
66
|
if (normalizedPath.includes('/src/bindings/')
|
|
69
67
|
|| normalizedPath.includes('/src/capture/')
|
|
70
68
|
|| normalizedPath.includes('/src/replay/')) {
|
|
71
69
|
violations.push(`instrumentation-imports-legacy-helper: ${relative(file)} -> ${specifier}`);
|
|
72
70
|
continue;
|
|
73
71
|
}
|
|
72
|
+
if (!resolved)
|
|
73
|
+
continue;
|
|
74
74
|
if (!normalizedPath.includes('/src/instrumentations/'))
|
|
75
75
|
continue;
|
|
76
76
|
if (normalizedPath.includes('/src/instrumentations/common/'))
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"architecture-guard.js","sourceRoot":"","sources":["../../../src/core/runtime/architecture-guard.ts"],"names":[],"mappings":";;;;;AAgBA,gDAKC;AAKD,sEA+DC;AAzFD,sDAAyB;AACzB,0DAA6B;AAE7B,MAAM,QAAQ,GAAG,mBAAI,CAAC,OAAO,CAAC,SAAS,EAAE,IAAI,EAAE,IAAI,CAAC,CAAC;AACrD,MAAM,qBAAqB,GAAG,mBAAI,CAAC,IAAI,CAAC,QAAQ,EAAE,kBAAkB,CAAC,CAAC;AACtE,MAAM,SAAS,GAAG,mBAAI,CAAC,IAAI,CAAC,QAAQ,EAAE,MAAM,CAAC,CAAC;AAE9C,MAAM,sBAAsB,GAAG;IAC7B,mBAAI,CAAC,IAAI,CAAC,QAAQ,EAAE,UAAU,CAAC;IAC/B,mBAAI,CAAC,IAAI,CAAC,QAAQ,EAAE,SAAS,CAAC;IAC9B,mBAAI,CAAC,IAAI,CAAC,QAAQ,EAAE,QAAQ,CAAC;CAC9B,CAAC;AAEF;;GAEG;AACH,SAAgB,kBAAkB,CAAC,MAAc,EAAE,KAAiC;IAClF,IAAI,KAAK,KAAK,MAAM,EAAE,CAAC;QACrB,OAAO,uEAAuE,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;IAC9F,CAAC;IACD,OAAO,mDAAmD,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;AAC1E,CAAC;AAED;;GAEG;AACH,SAAgB,6BAA6B;IAC3C,MAAM,UAAU,GAAa,EAAE,CAAC;IAEhC,MAAM,SAAS,GAAG,cAAc,CAAC,SAAS,CAAC,CAAC;IAC5C,KAAK,MAAM,IAAI,IAAI,SAAS,EAAE,CAAC;QAC7B,MAAM,OAAO,GAAG,uBAAuB,CAAC,iBAAE,CAAC,YAAY,CAAC,IAAI,EAAE,MAAM,CAAC,CAAC,CAAC;QACvE,KAAK,MAAM,SAAS,IAAI,OAAO,EAAE,CAAC;YAChC,IAAI,CAAC,SAAS,CAAC,UAAU,CAAC,GAAG,CAAC;gBAAE,SAAS;YACzC,MAAM,QAAQ,GAAG,eAAe,CAAC,IAAI,EAAE,SAAS,CAAC,CAAC;YAClD,IAAI,
|
|
1
|
+
{"version":3,"file":"architecture-guard.js","sourceRoot":"","sources":["../../../src/core/runtime/architecture-guard.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,5 @@
|
|
|
1
|
+
/** Keep it simple: ignore body only when content size is explicitly zero. */
|
|
2
|
+
export declare function shouldCaptureBody(body: unknown, bodyBytes?: number): boolean;
|
|
3
|
+
/** Parses content-length from incoming headers; returns undefined for absent/invalid values. */
|
|
4
|
+
export declare function parseContentLengthHeader(headers?: Record<string, string | string[] | undefined>): number | undefined;
|
|
5
|
+
//# sourceMappingURL=http-body.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"http-body.d.ts","sourceRoot":"","sources":["../../../src/core/runtime/http-body.ts"],"names":[],"mappings":"AAAA,6EAA6E;AAC7E,wBAAgB,iBAAiB,CAAC,IAAI,EAAE,OAAO,EAAE,SAAS,CAAC,EAAE,MAAM,GAAG,OAAO,CAG5E;AAED,gGAAgG;AAChG,wBAAgB,wBAAwB,CACtC,OAAO,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,GAAG,MAAM,EAAE,GAAG,SAAS,CAAC,GACtD,MAAM,GAAG,SAAS,CAMpB"}
|
|
@@ -0,0 +1,20 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.shouldCaptureBody = shouldCaptureBody;
|
|
4
|
+
exports.parseContentLengthHeader = parseContentLengthHeader;
|
|
5
|
+
/** Keep it simple: ignore body only when content size is explicitly zero. */
|
|
6
|
+
function shouldCaptureBody(body, bodyBytes) {
|
|
7
|
+
if (bodyBytes === 0)
|
|
8
|
+
return false;
|
|
9
|
+
return body !== undefined && body !== null;
|
|
10
|
+
}
|
|
11
|
+
/** Parses content-length from incoming headers; returns undefined for absent/invalid values. */
|
|
12
|
+
function parseContentLengthHeader(headers) {
|
|
13
|
+
const raw = headers?.['content-length'];
|
|
14
|
+
const value = Array.isArray(raw) ? raw[0] : raw;
|
|
15
|
+
if (value === undefined)
|
|
16
|
+
return undefined;
|
|
17
|
+
const parsed = Number.parseInt(value, 10);
|
|
18
|
+
return Number.isFinite(parsed) && parsed >= 0 ? parsed : undefined;
|
|
19
|
+
}
|
|
20
|
+
//# sourceMappingURL=http-body.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"http-body.js","sourceRoot":"","sources":["../../../src/core/runtime/http-body.ts"],"names":[],"mappings":";;AACA,8CAGC;AAGD,4DAQC;AAfD,6EAA6E;AAC7E,SAAgB,iBAAiB,CAAC,IAAa,EAAE,SAAkB;IACjE,IAAI,SAAS,KAAK,CAAC;QAAE,OAAO,KAAK,CAAC;IAClC,OAAO,IAAI,KAAK,SAAS,IAAI,IAAI,KAAK,IAAI,CAAC;AAC7C,CAAC;AAED,gGAAgG;AAChG,SAAgB,wBAAwB,CACtC,OAAuD;IAEvD,MAAM,GAAG,GAAG,OAAO,EAAE,CAAC,gBAAgB,CAAC,CAAC;IACxC,MAAM,KAAK,GAAG,KAAK,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC;IAChD,IAAI,KAAK,KAAK,SAAS;QAAE,OAAO,SAAS,CAAC;IAC1C,MAAM,MAAM,GAAG,MAAM,CAAC,QAAQ,CAAC,KAAK,EAAE,EAAE,CAAC,CAAC;IAC1C,OAAO,MAAM,CAAC,QAAQ,CAAC,MAAM,CAAC,IAAI,MAAM,IAAI,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,SAAS,CAAC;AACrE,CAAC"}
|
|
@@ -4,6 +4,10 @@ export type QueueInboundResponsePayload = {
|
|
|
4
4
|
identifier: string;
|
|
5
5
|
/** Parsed request body when middleware is placed after body-parser (Task 14.3.1). */
|
|
6
6
|
requestBody?: unknown;
|
|
7
|
+
/** Request body size in bytes when known from transport headers. */
|
|
8
|
+
requestBodyBytes?: number;
|
|
9
|
+
/** Response body size in bytes when known from transport headers. */
|
|
10
|
+
responseBodyBytes?: number;
|
|
7
11
|
};
|
|
8
12
|
/**
|
|
9
13
|
* Queues an inbound HTTP response for capture. Writes one NDJSON record via the capture store.
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"inbound-capture.d.ts","sourceRoot":"","sources":["../../../../src/instrumentations/common/http/inbound-capture.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"inbound-capture.d.ts","sourceRoot":"","sources":["../../../../src/instrumentations/common/http/inbound-capture.ts"],"names":[],"mappings":"AAMA,MAAM,MAAM,2BAA2B,GAAG;IACxC,MAAM,EAAE,MAAM,CAAC;IACf,IAAI,EAAE,OAAO,CAAC;IACd,UAAU,EAAE,MAAM,CAAC;IACnB,qFAAqF;IACrF,WAAW,CAAC,EAAE,OAAO,CAAC;IACtB,oEAAoE;IACpE,gBAAgB,CAAC,EAAE,MAAM,CAAC;IAC1B,qEAAqE;IACrE,iBAAiB,CAAC,EAAE,MAAM,CAAC;CAC5B,CAAC;AAEF;;;GAGG;AACH,wBAAgB,oBAAoB,CAClC,OAAO,EAAE,MAAM,EACf,OAAO,EAAE,2BAA2B,GACnC,IAAI,CA0BN;AAED,uEAAuE;AACvE,eAAO,MAAM,aAAa;;CAEzB,CAAC"}
|
|
@@ -5,6 +5,7 @@ exports.queueInboundResponse = queueInboundResponse;
|
|
|
5
5
|
const api_1 = require("@opentelemetry/api");
|
|
6
6
|
const context_1 = require("../../../context");
|
|
7
7
|
const identifier_1 = require("../../../core/identifier");
|
|
8
|
+
const http_body_1 = require("../../../core/runtime/http-body");
|
|
8
9
|
/**
|
|
9
10
|
* Queues an inbound HTTP response for capture. Writes one NDJSON record via the capture store.
|
|
10
11
|
* Uses active span context for traceId/spanId when not provided in payload.
|
|
@@ -27,9 +28,11 @@ function queueInboundResponse(traceId, payload) {
|
|
|
27
28
|
identifier: (0, identifier_1.httpIdentifier)(method, url),
|
|
28
29
|
responsePayload: {
|
|
29
30
|
statusCode: payload.status,
|
|
30
|
-
body: payload.body,
|
|
31
|
+
...((0, http_body_1.shouldCaptureBody)(payload.body, payload.responseBodyBytes) && { body: payload.body }),
|
|
31
32
|
},
|
|
32
|
-
...(payload.requestBody
|
|
33
|
+
...((0, http_body_1.shouldCaptureBody)(payload.requestBody, payload.requestBodyBytes) && {
|
|
34
|
+
requestPayload: { body: payload.requestBody },
|
|
35
|
+
}),
|
|
33
36
|
};
|
|
34
37
|
const tid = context_1.SoftprobeContext.getTraceId();
|
|
35
38
|
void cassette.saveRecord(tid ? { ...record, traceId: tid } : record).catch(() => { });
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"inbound-capture.js","sourceRoot":"","sources":["../../../../src/instrumentations/common/http/inbound-capture.ts"],"names":[],"mappings":";;;
|
|
1
|
+
{"version":3,"file":"inbound-capture.js","sourceRoot":"","sources":["../../../../src/instrumentations/common/http/inbound-capture.ts"],"names":[],"mappings":";;;AAsBA,oDA6BC;AAnDD,4CAA2C;AAE3C,8CAAoD;AACpD,yDAA0D;AAC1D,+DAAoE;AAcpE;;;GAGG;AACH,SAAgB,oBAAoB,CAClC,OAAe,EACf,OAAoC;IAEpC,MAAM,IAAI,GAAG,WAAK,CAAC,aAAa,EAAE,CAAC;IACnC,MAAM,MAAM,GAAG,IAAI,EAAE,WAAW,EAAE,CAAC,MAAM,IAAI,EAAE,CAAC;IAEhD,MAAM,CAAC,MAAM,EAAE,GAAG,QAAQ,CAAC,GAAG,OAAO,CAAC,UAAU,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;IAC5D,MAAM,GAAG,GAAG,QAAQ,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,GAAG,CAAC;IACtC,MAAM,QAAQ,GAAG,0BAAgB,CAAC,WAAW,EAAE,CAAC;IAChD,IAAI,0BAAgB,CAAC,OAAO,EAAE,KAAK,SAAS,IAAI,CAAC,QAAQ;QAAE,OAAO;IAClE,MAAM,MAAM,GAA4B;QACtC,OAAO,EAAE,KAAK;QACd,OAAO;QACP,MAAM;QACN,SAAS,EAAE,IAAI,IAAI,EAAE,CAAC,WAAW,EAAE;QACnC,IAAI,EAAE,SAAS;QACf,QAAQ,EAAE,MAAM;QAChB,UAAU,EAAE,IAAA,2BAAc,EAAC,MAAM,EAAE,GAAG,CAAC;QACvC,eAAe,EAAE;YACf,UAAU,EAAE,OAAO,CAAC,MAAM;YAC1B,GAAG,CAAC,IAAA,6BAAiB,EAAC,OAAO,CAAC,IAAI,EAAE,OAAO,CAAC,iBAAiB,CAAC,IAAI,EAAE,IAAI,EAAE,OAAO,CAAC,IAAI,EAAE,CAAC;SAC1F;QACD,GAAG,CAAC,IAAA,6BAAiB,EAAC,OAAO,CAAC,WAAW,EAAE,OAAO,CAAC,gBAAgB,CAAC,IAAI;YACtE,cAAc,EAAE,EAAE,IAAI,EAAE,OAAO,CAAC,WAAW,EAAE;SAC9C,CAAC;KACH,CAAC;IACF,MAAM,GAAG,GAAG,0BAAgB,CAAC,UAAU,EAAE,CAAC;IAC1C,KAAK,QAAQ,CAAC,UAAU,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,GAAG,MAAM,EAAE,OAAO,EAAE,GAAG,EAAE,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,KAAK,CAAC,GAAG,EAAE,GAAE,CAAC,CAAC,CAAC;AACvF,CAAC;AAED,uEAAuE;AAC1D,QAAA,aAAa,GAAG;IAC3B,oBAAoB;CACrB,CAAC"}
|
|
@@ -15,10 +15,14 @@ export type WriteInboundHttpOptions = {
|
|
|
15
15
|
url: string;
|
|
16
16
|
/** Request body (optional). */
|
|
17
17
|
requestBody?: unknown;
|
|
18
|
+
/** Request body size in bytes when known from transport headers. */
|
|
19
|
+
requestBodyBytes?: number;
|
|
18
20
|
/** Response status code (optional). */
|
|
19
21
|
statusCode?: number;
|
|
20
22
|
/** Response body (optional). */
|
|
21
23
|
responseBody?: unknown;
|
|
24
|
+
/** Response body size in bytes when known from transport headers. */
|
|
25
|
+
responseBodyBytes?: number;
|
|
22
26
|
};
|
|
23
27
|
/**
|
|
24
28
|
* Writes one inbound HTTP cassette record. Include requestBody for request capture,
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"inbound-record.d.ts","sourceRoot":"","sources":["../../../../src/instrumentations/common/http/inbound-record.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAEH,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,+BAA+B,CAAC;
|
|
1
|
+
{"version":3,"file":"inbound-record.d.ts","sourceRoot":"","sources":["../../../../src/instrumentations/common/http/inbound-record.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAEH,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,+BAA+B,CAAC;AAKnE,MAAM,MAAM,uBAAuB,GAAG;IACpC,OAAO,EAAE,MAAM,CAAC;IAChB,MAAM,EAAE,MAAM,CAAC;IACf,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,MAAM,EAAE,MAAM,CAAC;IACf,GAAG,EAAE,MAAM,CAAC;IACZ,+BAA+B;IAC/B,WAAW,CAAC,EAAE,OAAO,CAAC;IACtB,oEAAoE;IACpE,gBAAgB,CAAC,EAAE,MAAM,CAAC;IAC1B,uCAAuC;IACvC,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,gCAAgC;IAChC,YAAY,CAAC,EAAE,OAAO,CAAC;IACvB,qEAAqE;IACrE,iBAAiB,CAAC,EAAE,MAAM,CAAC;CAC5B,CAAC;AAEF;;;GAGG;AACH,wBAAgB,sBAAsB,CACpC,KAAK,EAAE,aAAa,EACpB,OAAO,EAAE,uBAAuB,GAC/B,IAAI,CAyCN"}
|
|
@@ -9,12 +9,13 @@
|
|
|
9
9
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
10
10
|
exports.writeInboundHttpRecord = writeInboundHttpRecord;
|
|
11
11
|
const identifier_1 = require("../../../core/identifier");
|
|
12
|
+
const http_body_1 = require("../../../core/runtime/http-body");
|
|
12
13
|
/**
|
|
13
14
|
* Writes one inbound HTTP cassette record. Include requestBody for request capture,
|
|
14
15
|
* and statusCode/responseBody when the response is available (same record).
|
|
15
16
|
*/
|
|
16
17
|
function writeInboundHttpRecord(store, options) {
|
|
17
|
-
const { traceId, spanId, parentSpanId, spanName, method, url, requestBody, statusCode, responseBody, } = options;
|
|
18
|
+
const { traceId, spanId, parentSpanId, spanName, method, url, requestBody, requestBodyBytes, statusCode, responseBody, responseBodyBytes, } = options;
|
|
18
19
|
const record = {
|
|
19
20
|
version: '4.1',
|
|
20
21
|
traceId,
|
|
@@ -26,14 +27,17 @@ function writeInboundHttpRecord(store, options) {
|
|
|
26
27
|
protocol: 'http',
|
|
27
28
|
identifier: (0, identifier_1.httpIdentifier)(method, url),
|
|
28
29
|
};
|
|
29
|
-
if (requestBody
|
|
30
|
+
if ((0, http_body_1.shouldCaptureBody)(requestBody, requestBodyBytes)) {
|
|
30
31
|
record.requestPayload = { body: requestBody };
|
|
31
32
|
}
|
|
32
33
|
if (statusCode !== undefined) {
|
|
33
|
-
|
|
34
|
+
const responsePayload = {
|
|
34
35
|
statusCode,
|
|
35
|
-
body: responseBody,
|
|
36
36
|
};
|
|
37
|
+
if ((0, http_body_1.shouldCaptureBody)(responseBody, responseBodyBytes)) {
|
|
38
|
+
responsePayload.body = responseBody;
|
|
39
|
+
}
|
|
40
|
+
record.responsePayload = responsePayload;
|
|
37
41
|
}
|
|
38
42
|
store.saveRecord(record);
|
|
39
43
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"inbound-record.js","sourceRoot":"","sources":["../../../../src/instrumentations/common/http/inbound-record.ts"],"names":[],"mappings":";AAAA;;;;;;GAMG;;
|
|
1
|
+
{"version":3,"file":"inbound-record.js","sourceRoot":"","sources":["../../../../src/instrumentations/common/http/inbound-record.ts"],"names":[],"mappings":";AAAA;;;;;;GAMG;;AA8BH,wDA4CC;AAtED,yDAA0D;AAC1D,+DAAoE;AAqBpE;;;GAGG;AACH,SAAgB,sBAAsB,CACpC,KAAoB,EACpB,OAAgC;IAEhC,MAAM,EACJ,OAAO,EACP,MAAM,EACN,YAAY,EACZ,QAAQ,EACR,MAAM,EACN,GAAG,EACH,WAAW,EACX,gBAAgB,EAChB,UAAU,EACV,YAAY,EACZ,iBAAiB,GAClB,GAAG,OAAO,CAAC;IAEZ,MAAM,MAAM,GAA4B;QACtC,OAAO,EAAE,KAAK;QACd,OAAO;QACP,MAAM;QACN,YAAY;QACZ,QAAQ;QACR,SAAS,EAAE,IAAI,IAAI,EAAE,CAAC,WAAW,EAAE;QACnC,IAAI,EAAE,SAAS;QACf,QAAQ,EAAE,MAAM;QAChB,UAAU,EAAE,IAAA,2BAAc,EAAC,MAAM,EAAE,GAAG,CAAC;KACxC,CAAC;IAEF,IAAI,IAAA,6BAAiB,EAAC,WAAW,EAAE,gBAAgB,CAAC,EAAE,CAAC;QACrD,MAAM,CAAC,cAAc,GAAG,EAAE,IAAI,EAAE,WAAW,EAAE,CAAC;IAChD,CAAC;IACD,IAAI,UAAU,KAAK,SAAS,EAAE,CAAC;QAC7B,MAAM,eAAe,GAA2C;YAC9D,UAAU;SACX,CAAC;QACF,IAAI,IAAA,6BAAiB,EAAC,YAAY,EAAE,iBAAiB,CAAC,EAAE,CAAC;YACvD,eAAe,CAAC,IAAI,GAAG,YAAY,CAAC;QACtC,CAAC;QACD,MAAM,CAAC,eAAe,GAAG,eAAe,CAAC;IAC3C,CAAC;IAED,KAAK,CAAC,UAAU,CAAC,MAAM,CAAC,CAAC;AAC3B,CAAC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"capture.d.ts","sourceRoot":"","sources":["../../../src/instrumentations/express/capture.ts"],"names":[],"mappings":"AAAA;;;;GAIG;
|
|
1
|
+
{"version":3,"file":"capture.d.ts","sourceRoot":"","sources":["../../../src/instrumentations/express/capture.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAOH,OAAO,EACL,aAAa,EACb,oBAAoB,EACpB,KAAK,2BAA2B,EACjC,MAAM,gCAAgC,CAAC;AAGxC,OAAO,EAAE,aAAa,EAAE,oBAAoB,EAAE,CAAC;AAC/C,YAAY,EAAE,2BAA2B,EAAE,CAAC;AAE5C;;;;;;;GAOG;AACH,wBAAgB,0BAA0B,CACxC,GAAG,EAAE;IAAE,MAAM,EAAE,MAAM,CAAC;IAAC,IAAI,EAAE,MAAM,CAAC;IAAC,IAAI,CAAC,EAAE,OAAO,CAAC;IAAC,OAAO,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,GAAG,MAAM,EAAE,GAAG,SAAS,CAAC,CAAA;CAAE,EAC9G,GAAG,EAAE;IAAE,UAAU,EAAE,MAAM,CAAC;IAAC,IAAI,EAAE,CAAC,IAAI,CAAC,EAAE,OAAO,KAAK,OAAO,CAAA;CAAE,EAC9D,IAAI,EAAE,CAAC,GAAG,CAAC,EAAE,OAAO,KAAK,IAAI,GAC5B,IAAI,GAAG,OAAO,CAAC,IAAI,CAAC,CA+DtB"}
|
|
@@ -11,6 +11,7 @@ const api_1 = require("@opentelemetry/api");
|
|
|
11
11
|
const replay_1 = require("./replay");
|
|
12
12
|
const context_1 = require("../../context");
|
|
13
13
|
const context_request_storage_1 = require("../../core/cassette/context-request-storage");
|
|
14
|
+
const http_body_1 = require("../../core/runtime/http-body");
|
|
14
15
|
const inbound_capture_1 = require("../common/http/inbound-capture");
|
|
15
16
|
Object.defineProperty(exports, "CaptureEngine", { enumerable: true, get: function () { return inbound_capture_1.CaptureEngine; } });
|
|
16
17
|
Object.defineProperty(exports, "queueInboundResponse", { enumerable: true, get: function () { return inbound_capture_1.queueInboundResponse; } });
|
|
@@ -69,6 +70,7 @@ function softprobeExpressMiddleware(req, res, next) {
|
|
|
69
70
|
body,
|
|
70
71
|
identifier: (0, span_adapter_1.buildInboundHttpIdentifier)(req.method, req.path),
|
|
71
72
|
requestBody: req.body,
|
|
73
|
+
requestBodyBytes: (0, http_body_1.parseContentLengthHeader)(req.headers),
|
|
72
74
|
});
|
|
73
75
|
return originalSend.apply(res, arguments);
|
|
74
76
|
};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"capture.js","sourceRoot":"","sources":["../../../src/instrumentations/express/capture.ts"],"names":[],"mappings":";AAAA;;;;GAIG;;;
|
|
1
|
+
{"version":3,"file":"capture.js","sourceRoot":"","sources":["../../../src/instrumentations/express/capture.ts"],"names":[],"mappings":"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"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@softprobe/softprobe-js",
|
|
3
|
-
"version": "2.0.
|
|
3
|
+
"version": "2.0.5",
|
|
4
4
|
"description": "Topology-aware record & replay testing framework via OpenTelemetry",
|
|
5
5
|
"keywords": [
|
|
6
6
|
"softprobe",
|
|
@@ -55,7 +55,8 @@
|
|
|
55
55
|
"example:kill": "(lsof -ti :3000; lsof -ti :3010) 2>/dev/null | xargs kill -9 2>/dev/null; echo Done",
|
|
56
56
|
"example:kill-e2e": "pkill -f 'express-inbound-worker|fastify-inbound-worker|diff-headers-server' 2>/dev/null; echo Done",
|
|
57
57
|
"diff": "node dist/cli.js diff",
|
|
58
|
-
"diff:dev": "npx ts-node --transpile-only src/cli.ts diff"
|
|
58
|
+
"diff:dev": "npx ts-node --transpile-only src/cli.ts diff",
|
|
59
|
+
"release:create": "bash scripts/create-release.sh"
|
|
59
60
|
},
|
|
60
61
|
"dependencies": {
|
|
61
62
|
"@mswjs/interceptors": "^0.39.8",
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"http-span.d.ts","sourceRoot":"","sources":["../../src/bindings/http-span.ts"],"names":[],"mappings":"AAAA;;GAEG;AACH,OAAO,EAAE,QAAQ,EAAE,QAAQ,EAAE,UAAU,EAAE,MAAM,4BAA4B,CAAC;AAC5E,YAAY,EAAE,YAAY,EAAE,MAAM,4BAA4B,CAAC"}
|
|
@@ -1,11 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.tagRequest = exports.fromSpan = exports.HttpSpan = void 0;
|
|
4
|
-
/**
|
|
5
|
-
* Legacy compatibility re-export for HTTP span helpers.
|
|
6
|
-
*/
|
|
7
|
-
var http_span_1 = require("../core/bindings/http-span");
|
|
8
|
-
Object.defineProperty(exports, "HttpSpan", { enumerable: true, get: function () { return http_span_1.HttpSpan; } });
|
|
9
|
-
Object.defineProperty(exports, "fromSpan", { enumerable: true, get: function () { return http_span_1.fromSpan; } });
|
|
10
|
-
Object.defineProperty(exports, "tagRequest", { enumerable: true, get: function () { return http_span_1.tagRequest; } });
|
|
11
|
-
//# sourceMappingURL=http-span.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"http-span.js","sourceRoot":"","sources":["../../src/bindings/http-span.ts"],"names":[],"mappings":";;;AAAA;;GAEG;AACH,wDAA4E;AAAnE,qGAAA,QAAQ,OAAA;AAAE,qGAAA,QAAQ,OAAA;AAAE,uGAAA,UAAU,OAAA"}
|
|
@@ -1,6 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* Legacy compatibility re-export for Postgres span helpers.
|
|
3
|
-
*/
|
|
4
|
-
export { PostgresSpan, fromSpan, tagQuery } from '../core/bindings/postgres-span';
|
|
5
|
-
export type { PostgresSpanData } from '../core/bindings/postgres-span';
|
|
6
|
-
//# sourceMappingURL=postgres-span.d.ts.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"postgres-span.d.ts","sourceRoot":"","sources":["../../src/bindings/postgres-span.ts"],"names":[],"mappings":"AAAA;;GAEG;AACH,OAAO,EAAE,YAAY,EAAE,QAAQ,EAAE,QAAQ,EAAE,MAAM,gCAAgC,CAAC;AAClF,YAAY,EAAE,gBAAgB,EAAE,MAAM,gCAAgC,CAAC"}
|
|
@@ -1,11 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.tagQuery = exports.fromSpan = exports.PostgresSpan = void 0;
|
|
4
|
-
/**
|
|
5
|
-
* Legacy compatibility re-export for Postgres span helpers.
|
|
6
|
-
*/
|
|
7
|
-
var postgres_span_1 = require("../core/bindings/postgres-span");
|
|
8
|
-
Object.defineProperty(exports, "PostgresSpan", { enumerable: true, get: function () { return postgres_span_1.PostgresSpan; } });
|
|
9
|
-
Object.defineProperty(exports, "fromSpan", { enumerable: true, get: function () { return postgres_span_1.fromSpan; } });
|
|
10
|
-
Object.defineProperty(exports, "tagQuery", { enumerable: true, get: function () { return postgres_span_1.tagQuery; } });
|
|
11
|
-
//# sourceMappingURL=postgres-span.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"postgres-span.js","sourceRoot":"","sources":["../../src/bindings/postgres-span.ts"],"names":[],"mappings":";;;AAAA;;GAEG;AACH,gEAAkF;AAAzE,6GAAA,YAAY,OAAA;AAAE,yGAAA,QAAQ,OAAA;AAAE,yGAAA,QAAQ,OAAA"}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"redis-span.d.ts","sourceRoot":"","sources":["../../src/bindings/redis-span.ts"],"names":[],"mappings":"AAAA;;GAEG;AACH,OAAO,EAAE,SAAS,EAAE,QAAQ,EAAE,UAAU,EAAE,MAAM,6BAA6B,CAAC;AAC9E,YAAY,EAAE,aAAa,EAAE,MAAM,6BAA6B,CAAC"}
|
|
@@ -1,11 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.tagCommand = exports.fromSpan = exports.RedisSpan = void 0;
|
|
4
|
-
/**
|
|
5
|
-
* Legacy compatibility re-export for Redis span helpers.
|
|
6
|
-
*/
|
|
7
|
-
var redis_span_1 = require("../core/bindings/redis-span");
|
|
8
|
-
Object.defineProperty(exports, "RedisSpan", { enumerable: true, get: function () { return redis_span_1.RedisSpan; } });
|
|
9
|
-
Object.defineProperty(exports, "fromSpan", { enumerable: true, get: function () { return redis_span_1.fromSpan; } });
|
|
10
|
-
Object.defineProperty(exports, "tagCommand", { enumerable: true, get: function () { return redis_span_1.tagCommand; } });
|
|
11
|
-
//# sourceMappingURL=redis-span.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"redis-span.js","sourceRoot":"","sources":["../../src/bindings/redis-span.ts"],"names":[],"mappings":";;;AAAA;;GAEG;AACH,0DAA8E;AAArE,uGAAA,SAAS,OAAA;AAAE,sGAAA,QAAQ,OAAA;AAAE,wGAAA,UAAU,OAAA"}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"test-span.d.ts","sourceRoot":"","sources":["../../src/bindings/test-span.ts"],"names":[],"mappings":"AAAA;;GAEG;AACH,OAAO,EAAE,QAAQ,EAAE,MAAM,4BAA4B,CAAC;AACtD,YAAY,EAAE,QAAQ,EAAE,MAAM,4BAA4B,CAAC"}
|
|
@@ -1,9 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.testSpan = void 0;
|
|
4
|
-
/**
|
|
5
|
-
* Legacy compatibility re-export for test span helper.
|
|
6
|
-
*/
|
|
7
|
-
var test_span_1 = require("../core/bindings/test-span");
|
|
8
|
-
Object.defineProperty(exports, "testSpan", { enumerable: true, get: function () { return test_span_1.testSpan; } });
|
|
9
|
-
//# sourceMappingURL=test-span.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"test-span.js","sourceRoot":"","sources":["../../src/bindings/test-span.ts"],"names":[],"mappings":";;;AAAA;;GAEG;AACH,wDAAsD;AAA7C,qGAAA,QAAQ,OAAA"}
|
|
@@ -1,6 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* Legacy compatibility re-export for Express capture instrumentation.
|
|
3
|
-
*/
|
|
4
|
-
export { CaptureEngine, queueInboundResponse, softprobeExpressMiddleware, } from '../instrumentations/express/capture';
|
|
5
|
-
export type { QueueInboundResponsePayload } from '../instrumentations/express/capture';
|
|
6
|
-
//# sourceMappingURL=express.d.ts.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"express.d.ts","sourceRoot":"","sources":["../../src/capture/express.ts"],"names":[],"mappings":"AAAA;;GAEG;AACH,OAAO,EACL,aAAa,EACb,oBAAoB,EACpB,0BAA0B,GAC3B,MAAM,qCAAqC,CAAC;AAC7C,YAAY,EAAE,2BAA2B,EAAE,MAAM,qCAAqC,CAAC"}
|
package/dist/capture/express.js
DELETED
|
@@ -1,11 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.softprobeExpressMiddleware = exports.queueInboundResponse = exports.CaptureEngine = void 0;
|
|
4
|
-
/**
|
|
5
|
-
* Legacy compatibility re-export for Express capture instrumentation.
|
|
6
|
-
*/
|
|
7
|
-
var capture_1 = require("../instrumentations/express/capture");
|
|
8
|
-
Object.defineProperty(exports, "CaptureEngine", { enumerable: true, get: function () { return capture_1.CaptureEngine; } });
|
|
9
|
-
Object.defineProperty(exports, "queueInboundResponse", { enumerable: true, get: function () { return capture_1.queueInboundResponse; } });
|
|
10
|
-
Object.defineProperty(exports, "softprobeExpressMiddleware", { enumerable: true, get: function () { return capture_1.softprobeExpressMiddleware; } });
|
|
11
|
-
//# sourceMappingURL=express.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"express.js","sourceRoot":"","sources":["../../src/capture/express.ts"],"names":[],"mappings":";;;AAAA;;GAEG;AACH,+DAI6C;AAH3C,wGAAA,aAAa,OAAA;AACb,+GAAA,oBAAoB,OAAA;AACpB,qHAAA,0BAA0B,OAAA"}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"fastify.d.ts","sourceRoot":"","sources":["../../src/capture/fastify.ts"],"names":[],"mappings":"AAAA;;GAEG;AACH,OAAO,EAAE,sBAAsB,EAAE,MAAM,qCAAqC,CAAC"}
|
package/dist/capture/fastify.js
DELETED
|
@@ -1,9 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.softprobeFastifyPlugin = void 0;
|
|
4
|
-
/**
|
|
5
|
-
* Legacy compatibility re-export for Fastify capture instrumentation.
|
|
6
|
-
*/
|
|
7
|
-
var capture_1 = require("../instrumentations/fastify/capture");
|
|
8
|
-
Object.defineProperty(exports, "softprobeFastifyPlugin", { enumerable: true, get: function () { return capture_1.softprobeFastifyPlugin; } });
|
|
9
|
-
//# sourceMappingURL=fastify.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"fastify.js","sourceRoot":"","sources":["../../src/capture/fastify.ts"],"names":[],"mappings":";;;AAAA;;GAEG;AACH,+DAA6E;AAApE,iHAAA,sBAAsB,OAAA"}
|
|
@@ -1,20 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* Framework mutators: patch Express and Fastify so Softprobe middleware/hooks
|
|
3
|
-
* are applied without user intervention. Design §16: patch Express app.use so
|
|
4
|
-
* first middleware/route addition triggers our middleware; patch Fastify factory
|
|
5
|
-
* so new instances get the plugin registered.
|
|
6
|
-
*/
|
|
7
|
-
/**
|
|
8
|
-
* Patch Express so the first time a route is added (e.g. app.get), we call
|
|
9
|
-
* app.use(softprobeExpressMiddleware) so Softprobe middleware is injected.
|
|
10
|
-
* Express 5 uses app.route() for app.get/post/etc., and mixin(app, proto) copies
|
|
11
|
-
* proto onto each app, so we must patch the shared proto (express.application).
|
|
12
|
-
*/
|
|
13
|
-
export declare function patchExpress(express: (req?: unknown) => unknown): void;
|
|
14
|
-
/**
|
|
15
|
-
* Patches Node's require so that when 'express' or 'fastify' is required,
|
|
16
|
-
* the framework is patched to inject Softprobe middleware/hooks. Call from init
|
|
17
|
-
* so that user require('express') or require('fastify') gets the patched version.
|
|
18
|
-
*/
|
|
19
|
-
export declare function applyFrameworkMutators(): void;
|
|
20
|
-
//# sourceMappingURL=framework-mutator.d.ts.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"framework-mutator.d.ts","sourceRoot":"","sources":["../../src/capture/framework-mutator.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AASH;;;;;GAKG;AACH,wBAAgB,YAAY,CAAC,OAAO,EAAE,CAAC,GAAG,CAAC,EAAE,OAAO,KAAK,OAAO,GAAG,IAAI,CAiBtE;AAED;;;;GAIG;AACH,wBAAgB,sBAAsB,IAAI,IAAI,CAgF7C"}
|