@sentry/node 9.16.0 → 9.16.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 (24) hide show
  1. package/build/cjs/integrations/anr/index.js +1 -1
  2. package/build/cjs/integrations/http/index.js +0 -18
  3. package/build/cjs/integrations/http/index.js.map +1 -1
  4. package/build/cjs/integrations/local-variables/local-variables-async.js +1 -1
  5. package/build/esm/integrations/anr/index.js +1 -1
  6. package/build/esm/integrations/anr/worker-script.js +2 -2
  7. package/build/esm/integrations/http/index.js +0 -18
  8. package/build/esm/integrations/http/index.js.map +1 -1
  9. package/build/esm/integrations/local-variables/local-variables-async.js +1 -1
  10. package/build/esm/integrations/local-variables/worker-script.js +2 -2
  11. package/build/esm/package.json +1 -1
  12. package/build/types/integrations/http/index.d.ts.map +1 -1
  13. package/package.json +3 -3
  14. package/build/cjs/integrations/http/SentryHttpInstrumentationBeforeOtel.js +0 -136
  15. package/build/cjs/integrations/http/SentryHttpInstrumentationBeforeOtel.js.map +0 -1
  16. package/build/cjs/integrations/http/utils.js +0 -44
  17. package/build/cjs/integrations/http/utils.js.map +0 -1
  18. package/build/esm/integrations/http/SentryHttpInstrumentationBeforeOtel.js +0 -134
  19. package/build/esm/integrations/http/SentryHttpInstrumentationBeforeOtel.js.map +0 -1
  20. package/build/esm/integrations/http/utils.js +0 -42
  21. package/build/esm/integrations/http/utils.js.map +0 -1
  22. package/build/types/integrations/http/SentryHttpInstrumentationBeforeOtel.d.ts +0 -17
  23. package/build/types/integrations/http/SentryHttpInstrumentationBeforeOtel.d.ts.map +0 -1
  24. package/build/types-ts3.8/integrations/http/SentryHttpInstrumentationBeforeOtel.d.ts +0 -20
@@ -1,134 +0,0 @@
1
- import { VERSION } from '@opentelemetry/core';
2
- import { InstrumentationBase, InstrumentationNodeModuleDefinition } from '@opentelemetry/instrumentation';
3
- import { logger, vercelWaitUntil, flush } from '@sentry/core';
4
- import { DEBUG_BUILD } from '../../debug-build.js';
5
- import { stealthWrap } from './utils.js';
6
-
7
- // The reason this "before OTEL" integration even exists is due to timing reasons. We need to be able to register a
8
- // `res.on('close')` handler **after** OTEL registers its own handler (which it uses to end spans), so that we can do
9
- // something (ie. flush) after OTEL has ended a span for a request. If you think about it like an onion:
10
- //
11
- // (Sentry after OTEL instrumentation
12
- // (OTEL instrumentation
13
- // (Sentry before OTEL instrumentation
14
- // (orig HTTP request handler))))
15
- //
16
- // registering an instrumentation before OTEL allows us to do this for incoming requests.
17
-
18
- /**
19
- * A Sentry specific http instrumentation that is applied before the otel instrumentation.
20
- */
21
- class SentryHttpInstrumentationBeforeOtel extends InstrumentationBase {
22
- constructor() {
23
- super('@sentry/instrumentation-http-before-otel', VERSION, {});
24
- }
25
-
26
- // eslint-disable-next-line jsdoc/require-jsdoc
27
- init() {
28
- return [this._getHttpsInstrumentation(), this._getHttpInstrumentation()];
29
- }
30
-
31
- /** Get the instrumentation for the http module. */
32
- _getHttpInstrumentation() {
33
- return new InstrumentationNodeModuleDefinition('http', ['*'], (moduleExports) => {
34
- // Patch incoming requests
35
- stealthWrap(moduleExports.Server.prototype, 'emit', this._getPatchIncomingRequestFunction());
36
-
37
- return moduleExports;
38
- });
39
- }
40
-
41
- /** Get the instrumentation for the https module. */
42
- _getHttpsInstrumentation() {
43
- return new InstrumentationNodeModuleDefinition('https', ['*'], (moduleExports) => {
44
- // Patch incoming requests
45
- stealthWrap(moduleExports.Server.prototype, 'emit', this._getPatchIncomingRequestFunction());
46
-
47
- return moduleExports;
48
- });
49
- }
50
-
51
- /**
52
- * Patch the incoming request function for request isolation.
53
- */
54
- _getPatchIncomingRequestFunction()
55
-
56
- {
57
- return (
58
- original,
59
- ) => {
60
- return function incomingRequest( ...args) {
61
- // Only traces request events
62
- if (args[0] !== 'request') {
63
- return original.apply(this, args);
64
- }
65
-
66
- const response = args[2] ;
67
- patchResponseToFlushOnServerlessPlatforms(response);
68
-
69
- return original.apply(this, args);
70
- };
71
- };
72
- }
73
- }
74
-
75
- function patchResponseToFlushOnServerlessPlatforms(res) {
76
- // Freely extend this function with other platforms if necessary
77
- if (process.env.VERCEL) {
78
- DEBUG_BUILD && logger.log('Patching response to flush on Vercel');
79
-
80
- // In some cases res.end does not seem to be defined leading to errors if passed to Proxy
81
- // https://github.com/getsentry/sentry-javascript/issues/15759
82
- if (typeof res.end !== 'function') {
83
- DEBUG_BUILD && logger.warn('res.end is not a function, skipping patch...');
84
- return;
85
- }
86
-
87
- let markOnEndDone = () => undefined;
88
- const onEndDonePromise = new Promise(res => {
89
- markOnEndDone = res;
90
- });
91
-
92
- res.on('close', () => {
93
- markOnEndDone();
94
- });
95
-
96
- logger.log('Patching res.end()');
97
-
98
- // eslint-disable-next-line @typescript-eslint/unbound-method
99
- res.end = new Proxy(res.end, {
100
- apply(target, thisArg, argArray) {
101
- vercelWaitUntil(
102
- new Promise(finishWaitUntil => {
103
- // Define a timeout that unblocks the lambda just to be safe so we're not indefinitely keeping it alive, exploding server bills
104
- const timeout = setTimeout(() => {
105
- finishWaitUntil();
106
- }, 2000);
107
-
108
- onEndDonePromise
109
- .then(() => {
110
- DEBUG_BUILD && logger.log('Flushing events before Vercel Lambda freeze');
111
- return flush(2000);
112
- })
113
- .then(
114
- () => {
115
- clearTimeout(timeout);
116
- finishWaitUntil();
117
- },
118
- e => {
119
- clearTimeout(timeout);
120
- DEBUG_BUILD && logger.log('Error while flushing events for Vercel:\n', e);
121
- finishWaitUntil();
122
- },
123
- );
124
- }),
125
- );
126
-
127
- return target.apply(thisArg, argArray);
128
- },
129
- });
130
- }
131
- }
132
-
133
- export { SentryHttpInstrumentationBeforeOtel };
134
- //# sourceMappingURL=SentryHttpInstrumentationBeforeOtel.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"SentryHttpInstrumentationBeforeOtel.js","sources":["../../../../src/integrations/http/SentryHttpInstrumentationBeforeOtel.ts"],"sourcesContent":["import type * as http from 'node:http';\nimport type * as https from 'node:https';\nimport { VERSION } from '@opentelemetry/core';\nimport { InstrumentationBase, InstrumentationNodeModuleDefinition } from '@opentelemetry/instrumentation';\nimport { flush, logger, vercelWaitUntil } from '@sentry/core';\nimport { DEBUG_BUILD } from '../../debug-build';\nimport { stealthWrap } from './utils';\n\ntype Http = typeof http;\ntype Https = typeof https;\n\n// The reason this \"before OTEL\" integration even exists is due to timing reasons. We need to be able to register a\n// `res.on('close')` handler **after** OTEL registers its own handler (which it uses to end spans), so that we can do\n// something (ie. flush) after OTEL has ended a span for a request. If you think about it like an onion:\n//\n// (Sentry after OTEL instrumentation\n// (OTEL instrumentation\n// (Sentry before OTEL instrumentation\n// (orig HTTP request handler))))\n//\n// registering an instrumentation before OTEL allows us to do this for incoming requests.\n\n/**\n * A Sentry specific http instrumentation that is applied before the otel instrumentation.\n */\nexport class SentryHttpInstrumentationBeforeOtel extends InstrumentationBase {\n public constructor() {\n super('@sentry/instrumentation-http-before-otel', VERSION, {});\n }\n\n // eslint-disable-next-line jsdoc/require-jsdoc\n public init(): [InstrumentationNodeModuleDefinition, InstrumentationNodeModuleDefinition] {\n return [this._getHttpsInstrumentation(), this._getHttpInstrumentation()];\n }\n\n /** Get the instrumentation for the http module. */\n private _getHttpInstrumentation(): InstrumentationNodeModuleDefinition {\n return new InstrumentationNodeModuleDefinition('http', ['*'], (moduleExports: Http): Http => {\n // Patch incoming requests\n stealthWrap(moduleExports.Server.prototype, 'emit', this._getPatchIncomingRequestFunction());\n\n return moduleExports;\n });\n }\n\n /** Get the instrumentation for the https module. */\n private _getHttpsInstrumentation(): InstrumentationNodeModuleDefinition {\n return new InstrumentationNodeModuleDefinition('https', ['*'], (moduleExports: Https): Https => {\n // Patch incoming requests\n stealthWrap(moduleExports.Server.prototype, 'emit', this._getPatchIncomingRequestFunction());\n\n return moduleExports;\n });\n }\n\n /**\n * Patch the incoming request function for request isolation.\n */\n private _getPatchIncomingRequestFunction(): (\n original: (event: string, ...args: unknown[]) => boolean,\n ) => (this: unknown, event: string, ...args: unknown[]) => boolean {\n return (\n original: (event: string, ...args: unknown[]) => boolean,\n ): ((this: unknown, event: string, ...args: unknown[]) => boolean) => {\n return function incomingRequest(this: unknown, ...args: [event: string, ...args: unknown[]]): boolean {\n // Only traces request events\n if (args[0] !== 'request') {\n return original.apply(this, args);\n }\n\n const response = args[2] as http.OutgoingMessage;\n patchResponseToFlushOnServerlessPlatforms(response);\n\n return original.apply(this, args);\n };\n };\n }\n}\n\nfunction patchResponseToFlushOnServerlessPlatforms(res: http.OutgoingMessage): void {\n // Freely extend this function with other platforms if necessary\n if (process.env.VERCEL) {\n DEBUG_BUILD && logger.log('Patching response to flush on Vercel');\n\n // In some cases res.end does not seem to be defined leading to errors if passed to Proxy\n // https://github.com/getsentry/sentry-javascript/issues/15759\n if (typeof res.end !== 'function') {\n DEBUG_BUILD && logger.warn('res.end is not a function, skipping patch...');\n return;\n }\n\n let markOnEndDone = (): void => undefined;\n const onEndDonePromise = new Promise<void>(res => {\n markOnEndDone = res;\n });\n\n res.on('close', () => {\n markOnEndDone();\n });\n\n logger.log('Patching res.end()');\n\n // eslint-disable-next-line @typescript-eslint/unbound-method\n res.end = new Proxy(res.end, {\n apply(target, thisArg, argArray) {\n vercelWaitUntil(\n new Promise<void>(finishWaitUntil => {\n // Define a timeout that unblocks the lambda just to be safe so we're not indefinitely keeping it alive, exploding server bills\n const timeout = setTimeout(() => {\n finishWaitUntil();\n }, 2000);\n\n onEndDonePromise\n .then(() => {\n DEBUG_BUILD && logger.log('Flushing events before Vercel Lambda freeze');\n return flush(2000);\n })\n .then(\n () => {\n clearTimeout(timeout);\n finishWaitUntil();\n },\n e => {\n clearTimeout(timeout);\n DEBUG_BUILD && logger.log('Error while flushing events for Vercel:\\n', e);\n finishWaitUntil();\n },\n );\n }),\n );\n\n return target.apply(thisArg, argArray);\n },\n });\n }\n}\n"],"names":[],"mappings":"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"}
@@ -1,42 +0,0 @@
1
- /**
2
- * This is a minimal version of `wrap` from shimmer:
3
- * https://github.com/othiym23/shimmer/blob/master/index.js
4
- *
5
- * In contrast to the original implementation, this version does not allow to unwrap,
6
- * and does not make it clear that the method is wrapped.
7
- * This is necessary because we want to wrap the http module with our own code,
8
- * while still allowing to use the HttpInstrumentation from OTEL.
9
- *
10
- * Without this, if we'd just use `wrap` from shimmer, the OTEL instrumentation would remove our wrapping,
11
- * because it only allows any module to be wrapped a single time.
12
- */
13
- function stealthWrap(
14
- nodule,
15
- name,
16
- wrapper,
17
- ) {
18
- const original = nodule[name];
19
- const wrapped = wrapper(original);
20
-
21
- defineProperty(nodule, name, wrapped);
22
- return wrapped;
23
- }
24
-
25
- // Sets a property on an object, preserving its enumerability.
26
- function defineProperty(
27
- obj,
28
- name,
29
- value,
30
- ) {
31
- const enumerable = !!obj[name] && Object.prototype.propertyIsEnumerable.call(obj, name);
32
-
33
- Object.defineProperty(obj, name, {
34
- configurable: true,
35
- enumerable: enumerable,
36
- writable: true,
37
- value: value,
38
- });
39
- }
40
-
41
- export { stealthWrap };
42
- //# sourceMappingURL=utils.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"utils.js","sources":["../../../../src/integrations/http/utils.ts"],"sourcesContent":["/**\n * This is a minimal version of `wrap` from shimmer:\n * https://github.com/othiym23/shimmer/blob/master/index.js\n *\n * In contrast to the original implementation, this version does not allow to unwrap,\n * and does not make it clear that the method is wrapped.\n * This is necessary because we want to wrap the http module with our own code,\n * while still allowing to use the HttpInstrumentation from OTEL.\n *\n * Without this, if we'd just use `wrap` from shimmer, the OTEL instrumentation would remove our wrapping,\n * because it only allows any module to be wrapped a single time.\n */\nexport function stealthWrap<Nodule extends object, FieldName extends keyof Nodule>(\n nodule: Nodule,\n name: FieldName,\n wrapper: (original: Nodule[FieldName]) => Nodule[FieldName],\n): Nodule[FieldName] {\n const original = nodule[name];\n const wrapped = wrapper(original);\n\n defineProperty(nodule, name, wrapped);\n return wrapped;\n}\n\n// Sets a property on an object, preserving its enumerability.\nfunction defineProperty<Nodule extends object, FieldName extends keyof Nodule>(\n obj: Nodule,\n name: FieldName,\n value: Nodule[FieldName],\n): void {\n const enumerable = !!obj[name] && Object.prototype.propertyIsEnumerable.call(obj, name);\n\n Object.defineProperty(obj, name, {\n configurable: true,\n enumerable: enumerable,\n writable: true,\n value: value,\n });\n}\n"],"names":[],"mappings":"AAAA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACO,SAAS,WAAW;AAC3B,EAAE,MAAM;AACR,EAAE,IAAI;AACN,EAAE,OAAO;AACT,EAAqB;AACrB,EAAE,MAAM,QAAS,GAAE,MAAM,CAAC,IAAI,CAAC;AAC/B,EAAE,MAAM,OAAQ,GAAE,OAAO,CAAC,QAAQ,CAAC;;AAEnC,EAAE,cAAc,CAAC,MAAM,EAAE,IAAI,EAAE,OAAO,CAAC;AACvC,EAAE,OAAO,OAAO;AAChB;;AAEA;AACA,SAAS,cAAc;AACvB,EAAE,GAAG;AACL,EAAE,IAAI;AACN,EAAE,KAAK;AACP,EAAQ;AACR,EAAE,MAAM,aAAa,CAAC,CAAC,GAAG,CAAC,IAAI,CAAE,IAAG,MAAM,CAAC,SAAS,CAAC,oBAAoB,CAAC,IAAI,CAAC,GAAG,EAAE,IAAI,CAAC;;AAEzF,EAAE,MAAM,CAAC,cAAc,CAAC,GAAG,EAAE,IAAI,EAAE;AACnC,IAAI,YAAY,EAAE,IAAI;AACtB,IAAI,UAAU,EAAE,UAAU;AAC1B,IAAI,QAAQ,EAAE,IAAI;AAClB,IAAI,KAAK,EAAE,KAAK;AAChB,GAAG,CAAC;AACJ;;;;"}
@@ -1,17 +0,0 @@
1
- import { InstrumentationBase, InstrumentationNodeModuleDefinition } from '@opentelemetry/instrumentation';
2
- /**
3
- * A Sentry specific http instrumentation that is applied before the otel instrumentation.
4
- */
5
- export declare class SentryHttpInstrumentationBeforeOtel extends InstrumentationBase {
6
- constructor();
7
- init(): [InstrumentationNodeModuleDefinition, InstrumentationNodeModuleDefinition];
8
- /** Get the instrumentation for the http module. */
9
- private _getHttpInstrumentation;
10
- /** Get the instrumentation for the https module. */
11
- private _getHttpsInstrumentation;
12
- /**
13
- * Patch the incoming request function for request isolation.
14
- */
15
- private _getPatchIncomingRequestFunction;
16
- }
17
- //# sourceMappingURL=SentryHttpInstrumentationBeforeOtel.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"SentryHttpInstrumentationBeforeOtel.d.ts","sourceRoot":"","sources":["../../../../src/integrations/http/SentryHttpInstrumentationBeforeOtel.ts"],"names":[],"mappings":"AAGA,OAAO,EAAE,mBAAmB,EAAE,mCAAmC,EAAE,MAAM,gCAAgC,CAAC;AAmB1G;;GAEG;AACH,qBAAa,mCAAoC,SAAQ,mBAAmB;;IAMnE,IAAI,IAAI,CAAC,mCAAmC,EAAE,mCAAmC,CAAC;IAIzF,mDAAmD;IACnD,OAAO,CAAC,uBAAuB;IAS/B,oDAAoD;IACpD,OAAO,CAAC,wBAAwB;IAShC;;OAEG;IACH,OAAO,CAAC,gCAAgC;CAmBzC"}
@@ -1,20 +0,0 @@
1
- import { InstrumentationBase, InstrumentationNodeModuleDefinition } from '@opentelemetry/instrumentation';
2
- /**
3
- * A Sentry specific http instrumentation that is applied before the otel instrumentation.
4
- */
5
- export declare class SentryHttpInstrumentationBeforeOtel extends InstrumentationBase {
6
- constructor();
7
- init(): [
8
- InstrumentationNodeModuleDefinition,
9
- InstrumentationNodeModuleDefinition
10
- ];
11
- /** Get the instrumentation for the http module. */
12
- private _getHttpInstrumentation;
13
- /** Get the instrumentation for the https module. */
14
- private _getHttpsInstrumentation;
15
- /**
16
- * Patch the incoming request function for request isolation.
17
- */
18
- private _getPatchIncomingRequestFunction;
19
- }
20
- //# sourceMappingURL=SentryHttpInstrumentationBeforeOtel.d.ts.map