server-devtools 0.1.4 → 0.1.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.
@@ -5,7 +5,7 @@
5
5
  <link rel="icon" type="image/svg+xml" href="/_devtools/favicon.svg" />
6
6
  <meta name="viewport" content="width=device-width, initial-scale=1.0" />
7
7
  <title>ServerDevTools Dashboard</title>
8
- <script type="module" crossorigin src="/_devtools/assets/index-ChfcS51A.js"></script>
8
+ <script type="module" crossorigin src="/_devtools/assets/index-BXbomG5W.js"></script>
9
9
  <link rel="stylesheet" crossorigin href="/_devtools/assets/index-DYvJ5RTl.css">
10
10
  </head>
11
11
  <body>
@@ -1 +1 @@
1
- {"version":3,"file":"instrumentation.d.ts","sourceRoot":"","sources":["../../../src/instrumentation/instrumentation.ts"],"names":[],"mappings":"AAOA,OAAO,aAAa,MAAM,2BAA2B,CAAC;AAQtD,qBAAa,eAAe;IAMpB,OAAO,CAAC,QAAQ,CAAC,OAAO;IAL5B,OAAO,CAAC,QAAQ,CAAC,OAAO,CAAU;IAClC,OAAO,CAAC,QAAQ,CAAC,mBAAmB,CAAsB;IAC1D,OAAO,CAAC,UAAU,CAAS;IAE3B,YACqB,OAAO,EAAE,aAAa,EA8H1C;IAEK,KAAK,kBAKV;IAEK,QAAQ,kBAcb;CACJ"}
1
+ {"version":3,"file":"instrumentation.d.ts","sourceRoot":"","sources":["../../../src/instrumentation/instrumentation.ts"],"names":[],"mappings":"AAOA,OAAO,aAAa,MAAM,2BAA2B,CAAC;AAatD,qBAAa,eAAe;IAMpB,OAAO,CAAC,QAAQ,CAAC,OAAO;IAL5B,OAAO,CAAC,QAAQ,CAAC,OAAO,CAAU;IAClC,OAAO,CAAC,QAAQ,CAAC,mBAAmB,CAAsB;IAC1D,OAAO,CAAC,UAAU,CAAS;IAE3B,YACqB,OAAO,EAAE,aAAa,EA+H1C;IAEK,KAAK,kBAaV;IAEK,QAAQ,kBAcb;CACJ"}
@@ -16,6 +16,11 @@ const node_http_1 = require("node:http");
16
16
  const logger_1 = require("../utils/logger");
17
17
  const instrumentation_pg_1 = require("@opentelemetry/instrumentation-pg");
18
18
  const instrumentation_mysql2_1 = require("@opentelemetry/instrumentation-mysql2");
19
+ const instrumentation_ioredis_1 = require("@opentelemetry/instrumentation-ioredis");
20
+ const node_module_1 = require("node:module");
21
+ const node_url_1 = require("node:url");
22
+ const esmHookRegistered = Symbol.for("server-devtools.opentelemetry.esm-hook-registered");
23
+ const processState = process;
19
24
  class Instrumentation {
20
25
  storage;
21
26
  oTelSdk;
@@ -119,10 +124,18 @@ class Instrumentation {
119
124
  }),
120
125
  new instrumentation_pg_1.PgInstrumentation(),
121
126
  new instrumentation_mysql2_1.MySQL2Instrumentation(),
127
+ new instrumentation_ioredis_1.IORedisInstrumentation(),
122
128
  ],
123
129
  });
124
130
  }
125
131
  async start() {
132
+ if (!processState[esmHookRegistered]) {
133
+ // OpenTelemetry's hook exports async loader hooks. Despite its
134
+ // deprecation, register() is required; registerHooks() takes sync hooks.
135
+ (0, node_module_1.register)((0, node_url_1.pathToFileURL)(require.resolve("@opentelemetry/instrumentation/hook.mjs")));
136
+ // Keep registration across instances/restarts, but allow retry on failure.
137
+ processState[esmHookRegistered] = true;
138
+ }
126
139
  (0, logger_1.debugLog)("Starting OpenTelemetry SDK");
127
140
  await this.oTelSdk.start();
128
141
  this.outboundHttpCapture.startFetchCapture();
@@ -1 +1 @@
1
- {"version":3,"file":"instrumentation.js","sourceRoot":"","sources":["../../../src/instrumentation/instrumentation.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"instrumentation.js","sourceRoot":"","sources":["../../../src/instrumentation/instrumentation.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,3 @@
1
+ declare const ServerDevToolsNestInterceptor: any;
2
+ export { ServerDevToolsNestInterceptor };
3
+ //# sourceMappingURL=nestjs.d.mts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"nestjs.d.mts","sourceRoot":"","sources":["../../src/nestjs.mts"],"names":[],"mappings":"AAGA,QAAA,MAAiB,6BAA6B,KAE7C,CAAC;AAEF,OAAO,EAAE,6BAA6B,EAAE,CAAC"}
@@ -0,0 +1,5 @@
1
+ import { createRequire } from "node:module";
2
+ const require = createRequire(import.meta.url);
3
+ const { default: ServerDevToolsNestInterceptor } = require("./integrations/nestjs/server-devtools-nest.interceptor.js");
4
+ export { ServerDevToolsNestInterceptor };
5
+ //# sourceMappingURL=nestjs.mjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"nestjs.mjs","sourceRoot":"","sources":["../../src/nestjs.mts"],"names":[],"mappings":"AAAA,OAAO,EAAE,aAAa,EAAE,MAAM,aAAa,CAAC;AAE5C,MAAM,OAAO,GAAG,aAAa,CAAC,OAAO,IAAI,CAAC,GAAG,CAAC,CAAC;AAC/C,MAAM,EAAE,OAAO,EAAE,6BAA6B,EAAE,GAAG,OAAO,CACxD,2DAA2D,CAC5D,CAAC;AAEF,OAAO,EAAE,6BAA6B,EAAE,CAAC"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "server-devtools",
3
- "version": "0.1.4",
3
+ "version": "0.1.5",
4
4
  "description": "Chrome DevTools for your backend. Inspect HTTP requests, database operations, outbound calls, errors, and execution timing from an embedded dashboard.",
5
5
  "license": "Apache-2.0",
6
6
  "author": "Godwin Ehikhamhen",
@@ -16,6 +16,7 @@
16
16
  "./nestjs": {
17
17
  "types": "./dist/src/nestjs.d.ts",
18
18
  "require": "./dist/src/nestjs.js",
19
+ "import": "./dist/src/nestjs.mjs",
19
20
  "default": "./dist/src/nestjs.js"
20
21
  }
21
22
  },
@@ -51,8 +52,10 @@
51
52
  "dependencies": {
52
53
  "@opentelemetry/api": "^1.9.1",
53
54
  "@opentelemetry/core": "^2.11.0",
55
+ "@opentelemetry/instrumentation": "^0.221.0",
54
56
  "@opentelemetry/instrumentation-express": "^0.69.0",
55
57
  "@opentelemetry/instrumentation-http": "^0.222.0",
58
+ "@opentelemetry/instrumentation-ioredis": "^0.70.0",
56
59
  "@opentelemetry/instrumentation-mongodb": "^0.74.0",
57
60
  "@opentelemetry/instrumentation-mysql2": "^0.68.0",
58
61
  "@opentelemetry/instrumentation-pg": "^0.74.0",
@@ -66,8 +69,10 @@
66
69
  "@nestjs/core": "^11.2.3",
67
70
  "@nestjs/platform-express": "^11.2.3",
68
71
  "@types/express": "^5.0.6",
69
- "@types/node": "^26.6.1",
72
+ "@types/node": "^26.6.4",
73
+ "dotenv": "^18.0.4",
70
74
  "express": "^5.2.1",
75
+ "ioredis": "^6.0.0",
71
76
  "mongodb": "^7.6.0",
72
77
  "mysql2": "^3.24.4",
73
78
  "pg": "^8.23.0",