@expressots/studio-agent 4.0.0-preview.1

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.
Files changed (86) hide show
  1. package/README.md +143 -0
  2. package/dist/agent.d.ts +127 -0
  3. package/dist/agent.d.ts.map +1 -0
  4. package/dist/agent.js +1031 -0
  5. package/dist/agent.js.map +1 -0
  6. package/dist/discovery/index.d.ts +2 -0
  7. package/dist/discovery/index.d.ts.map +1 -0
  8. package/dist/discovery/index.js +2 -0
  9. package/dist/discovery/index.js.map +1 -0
  10. package/dist/discovery/route-scanner.d.ts +35 -0
  11. package/dist/discovery/route-scanner.d.ts.map +1 -0
  12. package/dist/discovery/route-scanner.js +385 -0
  13. package/dist/discovery/route-scanner.js.map +1 -0
  14. package/dist/index.d.ts +15 -0
  15. package/dist/index.d.ts.map +1 -0
  16. package/dist/index.js +15 -0
  17. package/dist/index.js.map +1 -0
  18. package/dist/instrumentation/index.d.ts +2 -0
  19. package/dist/instrumentation/index.d.ts.map +1 -0
  20. package/dist/instrumentation/index.js +2 -0
  21. package/dist/instrumentation/index.js.map +1 -0
  22. package/dist/instrumentation/tracer.d.ts +40 -0
  23. package/dist/instrumentation/tracer.d.ts.map +1 -0
  24. package/dist/instrumentation/tracer.js +190 -0
  25. package/dist/instrumentation/tracer.js.map +1 -0
  26. package/dist/introspection/container-introspector.d.ts +81 -0
  27. package/dist/introspection/container-introspector.d.ts.map +1 -0
  28. package/dist/introspection/container-introspector.js +251 -0
  29. package/dist/introspection/container-introspector.js.map +1 -0
  30. package/dist/logging/log-capture.d.ts +58 -0
  31. package/dist/logging/log-capture.d.ts.map +1 -0
  32. package/dist/logging/log-capture.js +184 -0
  33. package/dist/logging/log-capture.js.map +1 -0
  34. package/dist/recording/index.d.ts +2 -0
  35. package/dist/recording/index.d.ts.map +1 -0
  36. package/dist/recording/index.js +2 -0
  37. package/dist/recording/index.js.map +1 -0
  38. package/dist/recording/request-recorder.d.ts +43 -0
  39. package/dist/recording/request-recorder.d.ts.map +1 -0
  40. package/dist/recording/request-recorder.js +373 -0
  41. package/dist/recording/request-recorder.js.map +1 -0
  42. package/dist/security/fix-resolver.d.ts +40 -0
  43. package/dist/security/fix-resolver.d.ts.map +1 -0
  44. package/dist/security/fix-resolver.js +283 -0
  45. package/dist/security/fix-resolver.js.map +1 -0
  46. package/dist/security/fix-runner.d.ts +60 -0
  47. package/dist/security/fix-runner.d.ts.map +1 -0
  48. package/dist/security/fix-runner.js +188 -0
  49. package/dist/security/fix-runner.js.map +1 -0
  50. package/dist/security/index.d.ts +140 -0
  51. package/dist/security/index.d.ts.map +1 -0
  52. package/dist/security/index.js +460 -0
  53. package/dist/security/index.js.map +1 -0
  54. package/dist/security/lockfile-graph.d.ts +69 -0
  55. package/dist/security/lockfile-graph.d.ts.map +1 -0
  56. package/dist/security/lockfile-graph.js +245 -0
  57. package/dist/security/lockfile-graph.js.map +1 -0
  58. package/dist/security/npm-audit.d.ts +67 -0
  59. package/dist/security/npm-audit.d.ts.map +1 -0
  60. package/dist/security/npm-audit.js +320 -0
  61. package/dist/security/npm-audit.js.map +1 -0
  62. package/dist/security/osv-cache.d.ts +51 -0
  63. package/dist/security/osv-cache.d.ts.map +1 -0
  64. package/dist/security/osv-cache.js +99 -0
  65. package/dist/security/osv-cache.js.map +1 -0
  66. package/dist/security/osv-client.d.ts +47 -0
  67. package/dist/security/osv-client.d.ts.map +1 -0
  68. package/dist/security/osv-client.js +247 -0
  69. package/dist/security/osv-client.js.map +1 -0
  70. package/dist/security/posture-analyzer.d.ts +44 -0
  71. package/dist/security/posture-analyzer.d.ts.map +1 -0
  72. package/dist/security/posture-analyzer.js +397 -0
  73. package/dist/security/posture-analyzer.js.map +1 -0
  74. package/dist/security/reachability.d.ts +59 -0
  75. package/dist/security/reachability.d.ts.map +1 -0
  76. package/dist/security/reachability.js +302 -0
  77. package/dist/security/reachability.js.map +1 -0
  78. package/dist/security/score.d.ts +36 -0
  79. package/dist/security/score.d.ts.map +1 -0
  80. package/dist/security/score.js +94 -0
  81. package/dist/security/score.js.map +1 -0
  82. package/dist/types/index.d.ts +587 -0
  83. package/dist/types/index.d.ts.map +1 -0
  84. package/dist/types/index.js +14 -0
  85. package/dist/types/index.js.map +1 -0
  86. package/package.json +75 -0
@@ -0,0 +1 @@
1
+ {"version":3,"file":"agent.js","sourceRoot":"","sources":["../src/agent.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,2 @@
1
+ export { RouteScanner } from './route-scanner.js';
2
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/discovery/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,EAAE,MAAM,oBAAoB,CAAC"}
@@ -0,0 +1,2 @@
1
+ export { RouteScanner } from './route-scanner.js';
2
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/discovery/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,EAAE,MAAM,oBAAoB,CAAC"}
@@ -0,0 +1,35 @@
1
+ /**
2
+ * Route scanner for ExpressoTS applications
3
+ * Discovers routes, controllers, and services from the application
4
+ */
5
+ import type { RouteInfo, AppStructure } from '../types/index.js';
6
+ export declare class RouteScanner {
7
+ private srcPath;
8
+ private controllers;
9
+ private services;
10
+ private providers;
11
+ private middleware;
12
+ private dependencies;
13
+ constructor(srcPath?: string);
14
+ /** Scan the application and return structure */
15
+ scan(): Promise<AppStructure>;
16
+ /** Get all discovered routes */
17
+ getRoutes(): RouteInfo[];
18
+ /** Find all TypeScript files in src directory */
19
+ private findTypeScriptFiles;
20
+ /** Parse a single file for routes and services */
21
+ private parseFile;
22
+ /** Parse controller from file content */
23
+ private parseController;
24
+ /** Parse service from file content */
25
+ private parseService;
26
+ /** Build the dependency graph */
27
+ private buildDependencyGraph;
28
+ /** Get line number for a position in content */
29
+ private getLineNumber;
30
+ /** Normalize and combine paths */
31
+ private normalizePath;
32
+ /** Scan Express app for routes (runtime) */
33
+ static scanExpressApp(app: any): RouteInfo[];
34
+ }
35
+ //# sourceMappingURL=route-scanner.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"route-scanner.d.ts","sourceRoot":"","sources":["../../src/discovery/route-scanner.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAKH,OAAO,KAAK,EACV,SAAS,EAGT,YAAY,EAGb,MAAM,mBAAmB,CAAC;AA+H3B,qBAAa,YAAY;IACvB,OAAO,CAAC,OAAO,CAAS;IACxB,OAAO,CAAC,WAAW,CAAwB;IAC3C,OAAO,CAAC,QAAQ,CAAqB;IACrC,OAAO,CAAC,SAAS,CAAqB;IACtC,OAAO,CAAC,UAAU,CAAgB;IAClC,OAAO,CAAC,YAAY,CAAwB;gBAEhC,OAAO,GAAE,MAAgB;IAIrC,gDAAgD;IAC1C,IAAI,IAAI,OAAO,CAAC,YAAY,CAAC;IA4BnC,gCAAgC;IAChC,SAAS,IAAI,SAAS,EAAE;IAIxB,iDAAiD;YACnC,mBAAmB;IAcjC,kDAAkD;YACpC,SAAS;IAyCvB,yCAAyC;IACzC,OAAO,CAAC,eAAe;IA0DvB,sCAAsC;IACtC,OAAO,CAAC,YAAY;IAmCpB,iCAAiC;IACjC,OAAO,CAAC,oBAAoB;IA0B5B,gDAAgD;IAChD,OAAO,CAAC,aAAa;IAWrB,kCAAkC;IAClC,OAAO,CAAC,aAAa;IAiBrB,4CAA4C;IAC5C,MAAM,CAAC,cAAc,CAAC,GAAG,EAAE,GAAG,GAAG,SAAS,EAAE;CAuC7C"}
@@ -0,0 +1,385 @@
1
+ /**
2
+ * Route scanner for ExpressoTS applications
3
+ * Discovers routes, controllers, and services from the application
4
+ */
5
+ import * as fs from 'fs';
6
+ import * as path from 'path';
7
+ import { glob } from 'glob';
8
+ /** Regular expressions for parsing TypeScript/JavaScript files */
9
+ const PATTERNS = {
10
+ // Match @controller decorator with path
11
+ controller: /@controller\s*\(\s*['"`]([^'"`]+)['"`]/gi,
12
+ // Match HTTP method decorators
13
+ httpMethods: {
14
+ get: /@Get\s*\(\s*['"`]?([^'"`\)]*)?['"`]?\s*\)/gi,
15
+ post: /@Post\s*\(\s*['"`]?([^'"`\)]*)?['"`]?\s*\)/gi,
16
+ put: /@Put\s*\(\s*['"`]?([^'"`\)]*)?['"`]?\s*\)/gi,
17
+ patch: /@Patch\s*\(\s*['"`]?([^'"`\)]*)?['"`]?\s*\)/gi,
18
+ delete: /@Delete\s*\(\s*['"`]?([^'"`\)]*)?['"`]?\s*\)/gi,
19
+ head: /@Head\s*\(\s*['"`]?([^'"`\)]*)?['"`]?\s*\)/gi,
20
+ options: /@Options\s*\(\s*['"`]?([^'"`\)]*)?['"`]?\s*\)/gi,
21
+ },
22
+ // Match class declaration
23
+ classDeclaration: /class\s+(\w+)/g,
24
+ // Match constructor injection
25
+ constructorInjection: /constructor\s*\([^)]*\)/g,
26
+ // Match @inject decorator
27
+ inject: /@inject\s*\(\s*(\w+)\s*\)/gi,
28
+ // Match method declaration
29
+ methodDeclaration: /(?:async\s+)?(\w+)\s*\([^)]*\)\s*(?::\s*[^{]+)?\s*\{/g,
30
+ // Match service/provider decorators
31
+ injectable: /@provide\s*\(\s*(\w+)?\s*\)/gi,
32
+ // Match middleware decorator
33
+ middleware: /@middleware\s*\(/gi,
34
+ // Match scope decorator
35
+ scope: /@scope\s*\(\s*(\w+)\s*\)/gi,
36
+ };
37
+ /**
38
+ * Type names that look like dependencies syntactically but aren't ones we
39
+ * want to plot on the architecture graph. Lowercased for cheap comparison.
40
+ */
41
+ const PRIMITIVE_TYPES = new Set([
42
+ 'string',
43
+ 'number',
44
+ 'boolean',
45
+ 'bigint',
46
+ 'symbol',
47
+ 'any',
48
+ 'unknown',
49
+ 'void',
50
+ 'never',
51
+ 'object',
52
+ 'null',
53
+ 'undefined',
54
+ 'date',
55
+ 'array',
56
+ 'map',
57
+ 'set',
58
+ 'promise',
59
+ 'function',
60
+ 'buffer',
61
+ ]);
62
+ /**
63
+ * Locate the constructor parameter list in `content`, honouring balanced
64
+ * parentheses inside parameter decorators like `@inject(MyService)`.
65
+ *
66
+ * A naive `constructor\s*\(([^)]*)\)` regex breaks the moment a parameter
67
+ * carries any decorator with arguments — it stops at the *inner* close
68
+ * paren, leaving the parameter list truncated. That used to silently kill
69
+ * the architecture graph for any class using `@inject(...)`.
70
+ *
71
+ * Returns `null` when no constructor is found.
72
+ */
73
+ function findConstructorParams(content) {
74
+ const ctorIdx = content.search(/\bconstructor\s*\(/);
75
+ if (ctorIdx < 0)
76
+ return null;
77
+ // Position the cursor at the `(` that opens the parameter list.
78
+ const openIdx = content.indexOf('(', ctorIdx);
79
+ if (openIdx < 0)
80
+ return null;
81
+ let depth = 0;
82
+ for (let i = openIdx; i < content.length; i++) {
83
+ const ch = content[i];
84
+ if (ch === '(')
85
+ depth++;
86
+ else if (ch === ')') {
87
+ depth--;
88
+ if (depth === 0) {
89
+ return content.slice(openIdx + 1, i);
90
+ }
91
+ }
92
+ }
93
+ // Unbalanced — bail out rather than produce garbage.
94
+ return null;
95
+ }
96
+ /**
97
+ * Extract injected dependency types from a constructor parameter list.
98
+ *
99
+ * Handles every shape ExpressoTS users hit in practice:
100
+ *
101
+ * - parameter properties: `private foo: Foo`
102
+ * - readonly properties: `private readonly foo: Foo`
103
+ * - bare params: `foo: Foo`
104
+ * - explicit @inject decorators: `@inject(SYM) private foo: Foo`
105
+ * - multi-modifier combos: `@inject(SYM) private readonly foo: Foo`
106
+ * - multiple params separated by commas
107
+ *
108
+ * The previous implementation captured the access modifier (`private`)
109
+ * instead of the type, so the architecture graph never drew a dependency
110
+ * edge from a controller to its use case.
111
+ */
112
+ function extractParamTypes(params) {
113
+ const out = [];
114
+ // Anchor each iteration to consume exactly one parameter:
115
+ // 1) Optional `@decorator(...)` prefix(es) — args may contain commas
116
+ // 2) Optional access modifier
117
+ // 3) Optional `readonly`
118
+ // 4) Parameter name
119
+ // 5) `:` then the captured Type (allow `Foo`, `Ns.Foo`, `Foo<...>`)
120
+ const PARAM_RE = /(?:@\w+\s*\([^)]*\)\s*)*(?:(?:public|private|protected)\s+)?(?:readonly\s+)?(\w+)\s*:\s*([A-Za-z_$][\w.$]*)/g;
121
+ for (const match of params.matchAll(PARAM_RE)) {
122
+ const typeName = match[2];
123
+ if (!typeName)
124
+ continue;
125
+ const head = typeName.split('.').pop() || typeName;
126
+ if (PRIMITIVE_TYPES.has(head.toLowerCase()))
127
+ continue;
128
+ out.push(head);
129
+ }
130
+ return out;
131
+ }
132
+ export class RouteScanner {
133
+ srcPath;
134
+ controllers = [];
135
+ services = [];
136
+ providers = [];
137
+ middleware = [];
138
+ dependencies = [];
139
+ constructor(srcPath = './src') {
140
+ this.srcPath = path.resolve(srcPath);
141
+ }
142
+ /** Scan the application and return structure */
143
+ async scan() {
144
+ // Reset collections
145
+ this.controllers = [];
146
+ this.services = [];
147
+ this.providers = [];
148
+ this.middleware = [];
149
+ this.dependencies = [];
150
+ // Find all TypeScript files
151
+ const files = await this.findTypeScriptFiles();
152
+ // Parse each file
153
+ for (const file of files) {
154
+ await this.parseFile(file);
155
+ }
156
+ // Build dependency graph
157
+ this.buildDependencyGraph();
158
+ return {
159
+ controllers: this.controllers,
160
+ services: this.services,
161
+ providers: this.providers,
162
+ middleware: this.middleware,
163
+ dependencies: this.dependencies,
164
+ };
165
+ }
166
+ /** Get all discovered routes */
167
+ getRoutes() {
168
+ return this.controllers.flatMap((c) => c.routes);
169
+ }
170
+ /** Find all TypeScript files in src directory */
171
+ async findTypeScriptFiles() {
172
+ if (!fs.existsSync(this.srcPath)) {
173
+ console.warn(`Source path not found: ${this.srcPath}`);
174
+ return [];
175
+ }
176
+ const pattern = path.join(this.srcPath, '**/*.{ts,js}').replace(/\\/g, '/');
177
+ const files = await glob(pattern, {
178
+ ignore: ['**/node_modules/**', '**/*.spec.ts', '**/*.test.ts', '**/*.d.ts'],
179
+ });
180
+ return files;
181
+ }
182
+ /** Parse a single file for routes and services */
183
+ async parseFile(filePath) {
184
+ const content = fs.readFileSync(filePath, 'utf-8');
185
+ const lines = content.split('\n');
186
+ // Check if this is a controller
187
+ const controllerMatch = content.match(/@controller\s*\(\s*['"`]([^'"`]+)['"`]/i);
188
+ if (controllerMatch) {
189
+ const controllerPath = controllerMatch[1];
190
+ const controller = this.parseController(content, filePath, controllerPath, lines);
191
+ if (controller) {
192
+ this.controllers.push(controller);
193
+ }
194
+ }
195
+ // Check if this is a service/provider
196
+ const injectableMatch = content.match(/@provide\s*\(/i);
197
+ if (injectableMatch) {
198
+ const service = this.parseService(content, filePath);
199
+ if (service) {
200
+ // Determine if it's a service or provider based on naming
201
+ if (filePath.includes('provider') ||
202
+ service.name.toLowerCase().includes('provider')) {
203
+ this.providers.push(service);
204
+ }
205
+ else {
206
+ this.services.push(service);
207
+ }
208
+ }
209
+ }
210
+ // Check for middleware
211
+ const middlewareMatch = content.match(/@middleware\s*\(/i);
212
+ if (middlewareMatch) {
213
+ const classMatch = content.match(/class\s+(\w+)/);
214
+ if (classMatch) {
215
+ this.middleware.push(classMatch[1]);
216
+ }
217
+ }
218
+ }
219
+ /** Parse controller from file content */
220
+ parseController(content, filePath, basePath, lines) {
221
+ // Get class name
222
+ const classMatch = content.match(/class\s+(\w+)/);
223
+ if (!classMatch)
224
+ return null;
225
+ const className = classMatch[1];
226
+ const routes = [];
227
+ const dependencies = [];
228
+ // Extract constructor dependencies. We use a balanced-paren scanner
229
+ // here because parameter decorators (@inject(MyService)) contain
230
+ // their own parentheses and a naive `[^)]*` regex would truncate
231
+ // the parameter list at the wrong `)`.
232
+ const params = findConstructorParams(content);
233
+ if (params) {
234
+ dependencies.push(...extractParamTypes(params));
235
+ }
236
+ // Find HTTP method decorators
237
+ for (const [method, regex] of Object.entries(PATTERNS.httpMethods)) {
238
+ regex.lastIndex = 0;
239
+ let match;
240
+ while ((match = regex.exec(content)) !== null) {
241
+ const routePath = match[1] || '/';
242
+ const lineNumber = this.getLineNumber(content, match.index, lines);
243
+ // Find the method name (next function after decorator)
244
+ const afterDecorator = content.slice(match.index);
245
+ const methodMatch = afterDecorator.match(/(?:async\s+)?(\w+)\s*\([^)]*\)\s*(?::\s*[^{]+)?\s*\{/);
246
+ if (methodMatch) {
247
+ routes.push({
248
+ path: this.normalizePath(basePath, routePath),
249
+ method: method.toUpperCase(),
250
+ controller: className,
251
+ controllerMethod: methodMatch[1],
252
+ filePath,
253
+ lineNumber,
254
+ });
255
+ }
256
+ }
257
+ }
258
+ return {
259
+ name: className,
260
+ filePath,
261
+ routes,
262
+ dependencies,
263
+ };
264
+ }
265
+ /** Parse service from file content */
266
+ parseService(content, filePath) {
267
+ const classMatch = content.match(/class\s+(\w+)/);
268
+ if (!classMatch)
269
+ return null;
270
+ const className = classMatch[1];
271
+ const dependencies = [];
272
+ const methods = [];
273
+ // Extract constructor dependencies (same parser as controllers so the
274
+ // service-to-service / service-to-provider edges in the architecture map
275
+ // match the actual TypeScript types instead of parameter names).
276
+ const params = findConstructorParams(content);
277
+ if (params) {
278
+ dependencies.push(...extractParamTypes(params));
279
+ }
280
+ // Extract public methods (simplified)
281
+ const methodMatches = content.matchAll(/(?:public\s+)?(?:async\s+)?(\w+)\s*\([^)]*\)\s*(?::\s*[^{]+)?\s*\{/g);
282
+ for (const match of methodMatches) {
283
+ const methodName = match[1];
284
+ if (methodName !== 'constructor' && !methodName.startsWith('_')) {
285
+ methods.push(methodName);
286
+ }
287
+ }
288
+ return {
289
+ name: className,
290
+ filePath,
291
+ dependencies,
292
+ methods,
293
+ };
294
+ }
295
+ /** Build the dependency graph */
296
+ buildDependencyGraph() {
297
+ // Add controller -> service dependencies
298
+ for (const controller of this.controllers) {
299
+ for (const dep of controller.dependencies) {
300
+ this.dependencies.push({
301
+ source: controller.name,
302
+ target: dep,
303
+ type: 'controller',
304
+ });
305
+ }
306
+ }
307
+ // Add service -> service/provider dependencies
308
+ for (const service of [...this.services, ...this.providers]) {
309
+ for (const dep of service.dependencies) {
310
+ this.dependencies.push({
311
+ source: service.name,
312
+ target: dep,
313
+ type: service.name.toLowerCase().includes('provider')
314
+ ? 'provider'
315
+ : 'service',
316
+ });
317
+ }
318
+ }
319
+ }
320
+ /** Get line number for a position in content */
321
+ getLineNumber(_content, position, lines) {
322
+ let currentPos = 0;
323
+ for (let i = 0; i < lines.length; i++) {
324
+ currentPos += lines[i].length + 1; // +1 for newline
325
+ if (currentPos > position) {
326
+ return i + 1;
327
+ }
328
+ }
329
+ return lines.length;
330
+ }
331
+ /** Normalize and combine paths */
332
+ normalizePath(basePath, routePath) {
333
+ // Ensure basePath starts with /
334
+ if (!basePath.startsWith('/')) {
335
+ basePath = '/' + basePath;
336
+ }
337
+ // Handle empty routePath
338
+ if (!routePath || routePath === '/') {
339
+ return basePath;
340
+ }
341
+ // Ensure routePath starts with /
342
+ if (!routePath.startsWith('/')) {
343
+ routePath = '/' + routePath;
344
+ }
345
+ // Combine paths, avoiding double slashes
346
+ return (basePath + routePath).replace(/\/+/g, '/');
347
+ }
348
+ /** Scan Express app for routes (runtime) */
349
+ static scanExpressApp(app) {
350
+ const routes = [];
351
+ if (!app || !app._router) {
352
+ return routes;
353
+ }
354
+ const extractRoutes = (stack, basePath = '') => {
355
+ for (const layer of stack) {
356
+ if (layer.route) {
357
+ // This is a route
358
+ const route = layer.route;
359
+ const methods = Object.keys(route.methods).filter((m) => route.methods[m]);
360
+ for (const method of methods) {
361
+ routes.push({
362
+ path: basePath + route.path,
363
+ method: method.toUpperCase(),
364
+ controller: 'Unknown',
365
+ controllerMethod: 'Unknown',
366
+ });
367
+ }
368
+ }
369
+ else if (layer.name === 'router' && layer.handle.stack) {
370
+ // This is a nested router
371
+ const routerPath = layer.regexp.source
372
+ .replace('\\/?(?=\\/|$)', '')
373
+ .replace(/\\\//g, '/')
374
+ .replace(/\^/g, '')
375
+ .replace(/\$/g, '')
376
+ .replace(/\(\?:\(\[\^\\\/\]\+\?\)\)/g, ':param');
377
+ extractRoutes(layer.handle.stack, basePath + routerPath);
378
+ }
379
+ }
380
+ };
381
+ extractRoutes(app._router.stack);
382
+ return routes;
383
+ }
384
+ }
385
+ //# sourceMappingURL=route-scanner.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"route-scanner.js","sourceRoot":"","sources":["../../src/discovery/route-scanner.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,15 @@
1
+ /**
2
+ * @expressots/studio-agent
3
+ *
4
+ * Instrumentation agent for ExpressoTS Studio
5
+ * Provides route discovery, OpenTelemetry tracing, and request recording
6
+ */
7
+ export { StudioAgent } from './agent.js';
8
+ export { StudioTracer, StudioSpanProcessor } from './instrumentation/index.js';
9
+ export { RouteScanner } from './discovery/index.js';
10
+ export { RequestRecorder } from './recording/index.js';
11
+ export { ContainerIntrospector, type ContainerSnapshot, type BindingNode, type BindingEdge, } from './introspection/container-introspector.js';
12
+ export { LogCapture, type LogEntry, type LogLevel } from './logging/log-capture.js';
13
+ export { SecurityEngine, OsvCache, OsvClient, runNpmAudit, analyzePosture, buildSecurityReport, hashFindingIds, emptyReport, LockfileGraph, enrichFindingsWithFixes, buildFixGroups, buildReachabilitySnapshot, enrichWithReachability, runFix, buildFixArgs, } from './security/index.js';
14
+ export * from './types/index.js';
15
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,OAAO,EAAE,WAAW,EAAE,MAAM,YAAY,CAAC;AACzC,OAAO,EAAE,YAAY,EAAE,mBAAmB,EAAE,MAAM,4BAA4B,CAAC;AAC/E,OAAO,EAAE,YAAY,EAAE,MAAM,sBAAsB,CAAC;AACpD,OAAO,EAAE,eAAe,EAAE,MAAM,sBAAsB,CAAC;AACvD,OAAO,EACL,qBAAqB,EACrB,KAAK,iBAAiB,EACtB,KAAK,WAAW,EAChB,KAAK,WAAW,GACjB,MAAM,2CAA2C,CAAC;AACnD,OAAO,EAAE,UAAU,EAAE,KAAK,QAAQ,EAAE,KAAK,QAAQ,EAAE,MAAM,0BAA0B,CAAC;AACpF,OAAO,EACL,cAAc,EACd,QAAQ,EACR,SAAS,EACT,WAAW,EACX,cAAc,EACd,mBAAmB,EACnB,cAAc,EACd,WAAW,EACX,aAAa,EACb,uBAAuB,EACvB,cAAc,EACd,yBAAyB,EACzB,sBAAsB,EACtB,MAAM,EACN,YAAY,GACb,MAAM,qBAAqB,CAAC;AAC7B,cAAc,kBAAkB,CAAC"}
package/dist/index.js ADDED
@@ -0,0 +1,15 @@
1
+ /**
2
+ * @expressots/studio-agent
3
+ *
4
+ * Instrumentation agent for ExpressoTS Studio
5
+ * Provides route discovery, OpenTelemetry tracing, and request recording
6
+ */
7
+ export { StudioAgent } from './agent.js';
8
+ export { StudioTracer, StudioSpanProcessor } from './instrumentation/index.js';
9
+ export { RouteScanner } from './discovery/index.js';
10
+ export { RequestRecorder } from './recording/index.js';
11
+ export { ContainerIntrospector, } from './introspection/container-introspector.js';
12
+ export { LogCapture } from './logging/log-capture.js';
13
+ export { SecurityEngine, OsvCache, OsvClient, runNpmAudit, analyzePosture, buildSecurityReport, hashFindingIds, emptyReport, LockfileGraph, enrichFindingsWithFixes, buildFixGroups, buildReachabilitySnapshot, enrichWithReachability, runFix, buildFixArgs, } from './security/index.js';
14
+ export * from './types/index.js';
15
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,OAAO,EAAE,WAAW,EAAE,MAAM,YAAY,CAAC;AACzC,OAAO,EAAE,YAAY,EAAE,mBAAmB,EAAE,MAAM,4BAA4B,CAAC;AAC/E,OAAO,EAAE,YAAY,EAAE,MAAM,sBAAsB,CAAC;AACpD,OAAO,EAAE,eAAe,EAAE,MAAM,sBAAsB,CAAC;AACvD,OAAO,EACL,qBAAqB,GAItB,MAAM,2CAA2C,CAAC;AACnD,OAAO,EAAE,UAAU,EAAgC,MAAM,0BAA0B,CAAC;AACpF,OAAO,EACL,cAAc,EACd,QAAQ,EACR,SAAS,EACT,WAAW,EACX,cAAc,EACd,mBAAmB,EACnB,cAAc,EACd,WAAW,EACX,aAAa,EACb,uBAAuB,EACvB,cAAc,EACd,yBAAyB,EACzB,sBAAsB,EACtB,MAAM,EACN,YAAY,GACb,MAAM,qBAAqB,CAAC;AAC7B,cAAc,kBAAkB,CAAC"}
@@ -0,0 +1,2 @@
1
+ export { StudioTracer, StudioSpanProcessor, trace, context, SpanKind, SpanStatusCode } from './tracer.js';
2
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/instrumentation/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,EAAE,mBAAmB,EAAE,KAAK,EAAE,OAAO,EAAE,QAAQ,EAAE,cAAc,EAAE,MAAM,aAAa,CAAC"}
@@ -0,0 +1,2 @@
1
+ export { StudioTracer, StudioSpanProcessor, trace, context, SpanKind, SpanStatusCode } from './tracer.js';
2
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/instrumentation/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,EAAE,mBAAmB,EAAE,KAAK,EAAE,OAAO,EAAE,QAAQ,EAAE,cAAc,EAAE,MAAM,aAAa,CAAC"}
@@ -0,0 +1,40 @@
1
+ /**
2
+ * OpenTelemetry tracer configuration for ExpressoTS Studio
3
+ */
4
+ import { SpanProcessor, ReadableSpan, Span } from '@opentelemetry/sdk-trace-node';
5
+ import { trace, context, SpanKind, SpanStatusCode } from '@opentelemetry/api';
6
+ import type { TraceInfo } from '../types/index.js';
7
+ /** Custom span processor that emits spans to Studio */
8
+ export declare class StudioSpanProcessor implements SpanProcessor {
9
+ private spans;
10
+ private onTraceComplete?;
11
+ private traceTimeouts;
12
+ private traceCompletionDelay;
13
+ constructor(onTraceComplete?: (trace: TraceInfo) => void);
14
+ forceFlush(): Promise<void>;
15
+ onStart(_span: Span): void;
16
+ onEnd(span: ReadableSpan): void;
17
+ private completeTrace;
18
+ private convertSpan;
19
+ private getSpanKindName;
20
+ private getStatusName;
21
+ shutdown(): Promise<void>;
22
+ }
23
+ /** OpenTelemetry SDK wrapper */
24
+ export declare class StudioTracer {
25
+ private sdk;
26
+ private spanProcessor;
27
+ private serviceName;
28
+ private serviceVersion;
29
+ constructor(serviceName?: string, serviceVersion?: string);
30
+ /** Initialize the OpenTelemetry SDK */
31
+ start(onTraceComplete?: (trace: TraceInfo) => void): Promise<void>;
32
+ /** Stop the OpenTelemetry SDK */
33
+ stop(): Promise<void>;
34
+ /** Get the current tracer */
35
+ getTracer(name?: string): import("@opentelemetry/api").Tracer;
36
+ /** Create a custom span */
37
+ createSpan(name: string, fn: () => void | Promise<void>, attributes?: Record<string, string | number | boolean>): Promise<void>;
38
+ }
39
+ export { trace, context, SpanKind, SpanStatusCode };
40
+ //# sourceMappingURL=tracer.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"tracer.d.ts","sourceRoot":"","sources":["../../src/instrumentation/tracer.ts"],"names":[],"mappings":"AAAA;;GAEG;AASH,OAAO,EACL,aAAa,EACb,YAAY,EACZ,IAAI,EACL,MAAM,+BAA+B,CAAC;AACvC,OAAO,EAAE,KAAK,EAAE,OAAO,EAAE,QAAQ,EAAE,cAAc,EAAE,MAAM,oBAAoB,CAAC;AAC9E,OAAO,KAAK,EAAY,SAAS,EAAE,MAAM,mBAAmB,CAAC;AAE7D,uDAAuD;AACvD,qBAAa,mBAAoB,YAAW,aAAa;IACvD,OAAO,CAAC,KAAK,CAAsC;IACnD,OAAO,CAAC,eAAe,CAAC,CAA6B;IACrD,OAAO,CAAC,aAAa,CAA0C;IAC/D,OAAO,CAAC,oBAAoB,CAAQ;gBAExB,eAAe,CAAC,EAAE,CAAC,KAAK,EAAE,SAAS,KAAK,IAAI;IAIxD,UAAU,IAAI,OAAO,CAAC,IAAI,CAAC;IAI3B,OAAO,CAAC,KAAK,EAAE,IAAI,GAAG,IAAI;IAI1B,KAAK,CAAC,IAAI,EAAE,YAAY,GAAG,IAAI;IAuB/B,OAAO,CAAC,aAAa;IA4BrB,OAAO,CAAC,WAAW;IAmCnB,OAAO,CAAC,eAAe;IAiBvB,OAAO,CAAC,aAAa;IAWrB,QAAQ,IAAI,OAAO,CAAC,IAAI,CAAC;CAQ1B;AAED,gCAAgC;AAChC,qBAAa,YAAY;IACvB,OAAO,CAAC,GAAG,CAAwB;IACnC,OAAO,CAAC,aAAa,CAAoC;IACzD,OAAO,CAAC,WAAW,CAAS;IAC5B,OAAO,CAAC,cAAc,CAAS;gBAG7B,WAAW,GAAE,MAAyB,EACtC,cAAc,GAAE,MAAgB;IAMlC,uCAAuC;IACjC,KAAK,CAAC,eAAe,CAAC,EAAE,CAAC,KAAK,EAAE,SAAS,KAAK,IAAI,GAAG,OAAO,CAAC,IAAI,CAAC;IAmBxE,iCAAiC;IAC3B,IAAI,IAAI,OAAO,CAAC,IAAI,CAAC;IAO3B,6BAA6B;IAC7B,SAAS,CAAC,IAAI,GAAE,MAAuB;IAIvC,2BAA2B;IAC3B,UAAU,CACR,IAAI,EAAE,MAAM,EACZ,EAAE,EAAE,MAAM,IAAI,GAAG,OAAO,CAAC,IAAI,CAAC,EAC9B,UAAU,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,GAAG,MAAM,GAAG,OAAO,CAAC;CAqBzD;AAED,OAAO,EAAE,KAAK,EAAE,OAAO,EAAE,QAAQ,EAAE,cAAc,EAAE,CAAC"}