@interfere/nest 0.0.1-canary.0 → 0.0.1-canary.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 (32) hide show
  1. package/README.md +1 -1
  2. package/dist/_virtual/_@oxc-project_runtime@0.132.0/helpers/decorate.cjs +1 -0
  3. package/dist/_virtual/_@oxc-project_runtime@0.132.0/helpers/decorate.mjs +1 -0
  4. package/dist/_virtual/_@oxc-project_runtime@0.132.0/helpers/decorateMetadata.cjs +1 -0
  5. package/dist/_virtual/_@oxc-project_runtime@0.132.0/helpers/decorateMetadata.mjs +1 -0
  6. package/dist/_virtual/_@oxc-project_runtime@0.132.0/helpers/decorateParam.cjs +1 -0
  7. package/dist/_virtual/_@oxc-project_runtime@0.132.0/helpers/decorateParam.mjs +1 -0
  8. package/dist/exception-filter.cjs +1 -0
  9. package/dist/exception-filter.d.cts +19 -0
  10. package/dist/exception-filter.d.mts +2 -1
  11. package/dist/exception-filter.mjs +2 -33
  12. package/dist/index.cjs +1 -0
  13. package/dist/index.d.cts +5 -0
  14. package/dist/index.mjs +1 -5
  15. package/dist/init.cjs +1 -0
  16. package/dist/init.d.cts +14 -0
  17. package/dist/init.d.mts +2 -1
  18. package/dist/init.mjs +2 -21
  19. package/dist/module.cjs +1 -0
  20. package/dist/module.d.cts +14 -0
  21. package/dist/module.d.mts +2 -1
  22. package/dist/module.mjs +2 -20
  23. package/package.json +26 -14
  24. package/dist/_virtual/_@oxc-project_runtime@0.129.0/helpers/decorate.mjs +0 -9
  25. package/dist/_virtual/_@oxc-project_runtime@0.129.0/helpers/decorateMetadata.mjs +0 -6
  26. package/dist/_virtual/_@oxc-project_runtime@0.129.0/helpers/decorateParam.mjs +0 -8
  27. package/dist/exception-filter.d.mts.map +0 -1
  28. package/dist/exception-filter.mjs.map +0 -1
  29. package/dist/init.d.mts.map +0 -1
  30. package/dist/init.mjs.map +0 -1
  31. package/dist/module.d.mts.map +0 -1
  32. package/dist/module.mjs.map +0 -1
package/README.md CHANGED
@@ -27,4 +27,4 @@ import { InterfereModule } from "@interfere/nest";
27
27
  export class AppModule {}
28
28
  ```
29
29
 
30
- Set `INTERFERE_API_KEY` in the environment. Full docs at <https://interfere.com/docs>.
30
+ Set `INTERFERE_PUBLIC_KEY` to your surface's `interfere_pk_*` public key. Full docs at <https://interfere.com/docs>.
@@ -0,0 +1 @@
1
+ function __decorate(decorators,target,key,desc){var c=arguments.length,r=c<3?target:desc===null?desc=Object.getOwnPropertyDescriptor(target,key):desc,d;if(typeof Reflect==`object`&&typeof Reflect.decorate==`function`)r=Reflect.decorate(decorators,target,key,desc);else for(var i=decorators.length-1;i>=0;i--)(d=decorators[i])&&(r=(c<3?d(r):c>3?d(target,key,r):d(target,key))||r);return c>3&&r&&Object.defineProperty(target,key,r),r}exports.__decorate=__decorate;
@@ -0,0 +1 @@
1
+ function __decorate(decorators,target,key,desc){var c=arguments.length,r=c<3?target:desc===null?desc=Object.getOwnPropertyDescriptor(target,key):desc,d;if(typeof Reflect==`object`&&typeof Reflect.decorate==`function`)r=Reflect.decorate(decorators,target,key,desc);else for(var i=decorators.length-1;i>=0;i--)(d=decorators[i])&&(r=(c<3?d(r):c>3?d(target,key,r):d(target,key))||r);return c>3&&r&&Object.defineProperty(target,key,r),r}export{__decorate};
@@ -0,0 +1 @@
1
+ function __decorateMetadata(k,v){if(typeof Reflect==`object`&&typeof Reflect.metadata==`function`)return Reflect.metadata(k,v)}exports.__decorateMetadata=__decorateMetadata;
@@ -0,0 +1 @@
1
+ function __decorateMetadata(k,v){if(typeof Reflect==`object`&&typeof Reflect.metadata==`function`)return Reflect.metadata(k,v)}export{__decorateMetadata};
@@ -0,0 +1 @@
1
+ function __decorateParam(paramIndex,decorator){return function(target,key){decorator(target,key,paramIndex)}}exports.__decorateParam=__decorateParam;
@@ -0,0 +1 @@
1
+ function __decorateParam(paramIndex,decorator){return function(target,key){decorator(target,key,paramIndex)}}export{__decorateParam};
@@ -0,0 +1 @@
1
+ Object.defineProperty(exports,Symbol.toStringTag,{value:`Module`});const require_decorateMetadata=require("./_virtual/_@oxc-project_runtime@0.132.0/helpers/decorateMetadata.cjs"),require_decorateParam=require("./_virtual/_@oxc-project_runtime@0.132.0/helpers/decorateParam.cjs"),require_decorate=require("./_virtual/_@oxc-project_runtime@0.132.0/helpers/decorate.cjs");let _interfere_node=require("@interfere/node"),_nestjs_common=require("@nestjs/common"),_nestjs_core=require("@nestjs/core");var _ref;let InterfereExceptionFilter=class extends _nestjs_core.BaseExceptionFilter{constructor(adapterHost){super(adapterHost?.httpAdapter)}catch(exception,host){this.shouldReport(exception)&&(0,_interfere_node.captureError)(exception,this.extractRequest(host)),super.catch(exception,host)}shouldReport(exception){return exception instanceof _nestjs_common.HttpException?exception.getStatus()>=500:!0}extractRequest(host){if(host.getType()===`http`)return host.switchToHttp().getRequest()}};InterfereExceptionFilter=require_decorate.__decorate([(0,_nestjs_common.Catch)(),require_decorateParam.__decorateParam(0,(0,_nestjs_common.Optional)()),require_decorateParam.__decorateParam(0,(0,_nestjs_common.Inject)(_nestjs_core.HttpAdapterHost)),require_decorateMetadata.__decorateMetadata(`design:paramtypes`,[typeof(_ref=_nestjs_core.HttpAdapterHost!==void 0&&_nestjs_core.HttpAdapterHost)==`function`?_ref:Object])],InterfereExceptionFilter),Object.defineProperty(exports,"InterfereExceptionFilter",{enumerable:!0,get:function(){return InterfereExceptionFilter}});
@@ -0,0 +1,19 @@
1
+ import { ArgumentsHost, ExceptionFilter } from "@nestjs/common";
2
+ import { BaseExceptionFilter, HttpAdapterHost } from "@nestjs/core";
3
+
4
+ //#region src/exception-filter.d.ts
5
+ /**
6
+ * Forwards uncaught exceptions to Interfere, then delegates to Nest's
7
+ * default response shaping. Skips `HttpException` with status 4xx —
8
+ * client-fault errors are framework-handled and shouldn't bill against
9
+ * crash dashboards.
10
+ */
11
+ declare class InterfereExceptionFilter extends BaseExceptionFilter implements ExceptionFilter {
12
+ constructor(adapterHost?: HttpAdapterHost);
13
+ catch(exception: unknown, host: ArgumentsHost): void;
14
+ private shouldReport;
15
+ private extractRequest;
16
+ }
17
+ //#endregion
18
+ export { InterfereExceptionFilter };
19
+ //# sourceMappingURL=exception-filter.d.cts.map
@@ -15,4 +15,5 @@ declare class InterfereExceptionFilter extends BaseExceptionFilter implements Ex
15
15
  private extractRequest;
16
16
  }
17
17
  //#endregion
18
- export { InterfereExceptionFilter };
18
+ export { InterfereExceptionFilter };
19
+ //# sourceMappingURL=exception-filter.d.mts.map
@@ -1,33 +1,2 @@
1
- import { __decorateMetadata } from "./_virtual/_@oxc-project_runtime@0.129.0/helpers/decorateMetadata.mjs";
2
- import { __decorateParam } from "./_virtual/_@oxc-project_runtime@0.129.0/helpers/decorateParam.mjs";
3
- import { __decorate } from "./_virtual/_@oxc-project_runtime@0.129.0/helpers/decorate.mjs";
4
- import { captureError } from "@interfere/node";
5
- import { Catch, HttpException, Inject, Optional } from "@nestjs/common";
6
- import { BaseExceptionFilter, HttpAdapterHost } from "@nestjs/core";
7
- //#region src/exception-filter.ts
8
- var _ref;
9
- let InterfereExceptionFilter = class InterfereExceptionFilter extends BaseExceptionFilter {
10
- constructor(adapterHost) {
11
- super(adapterHost?.httpAdapter);
12
- }
13
- catch(exception, host) {
14
- if (this.shouldReport(exception)) captureError(exception, this.extractRequest(host));
15
- super.catch(exception, host);
16
- }
17
- shouldReport(exception) {
18
- if (exception instanceof HttpException) return exception.getStatus() >= 500;
19
- return true;
20
- }
21
- extractRequest(host) {
22
- if (host.getType() !== "http") return;
23
- return host.switchToHttp().getRequest();
24
- }
25
- };
26
- InterfereExceptionFilter = __decorate([
27
- Catch(),
28
- __decorateParam(0, Optional()),
29
- __decorateParam(0, Inject(HttpAdapterHost)),
30
- __decorateMetadata("design:paramtypes", [typeof (_ref = typeof HttpAdapterHost !== "undefined" && HttpAdapterHost) === "function" ? _ref : Object])
31
- ], InterfereExceptionFilter);
32
- //#endregion
33
- export { InterfereExceptionFilter };
1
+ import{__decorateMetadata}from"./_virtual/_@oxc-project_runtime@0.132.0/helpers/decorateMetadata.mjs";import{__decorateParam}from"./_virtual/_@oxc-project_runtime@0.132.0/helpers/decorateParam.mjs";import{__decorate}from"./_virtual/_@oxc-project_runtime@0.132.0/helpers/decorate.mjs";import{captureError}from"@interfere/node";import{Catch,HttpException,Inject,Optional}from"@nestjs/common";import{BaseExceptionFilter,HttpAdapterHost}from"@nestjs/core";var _ref;let InterfereExceptionFilter=class extends BaseExceptionFilter{constructor(adapterHost){super(adapterHost?.httpAdapter)}catch(exception,host){this.shouldReport(exception)&&captureError(exception,this.extractRequest(host)),super.catch(exception,host)}shouldReport(exception){return exception instanceof HttpException?exception.getStatus()>=500:!0}extractRequest(host){if(host.getType()===`http`)return host.switchToHttp().getRequest()}};InterfereExceptionFilter=__decorate([Catch(),__decorateParam(0,Optional()),__decorateParam(0,Inject(HttpAdapterHost)),__decorateMetadata(`design:paramtypes`,[typeof(_ref=HttpAdapterHost!==void 0&&HttpAdapterHost)==`function`?_ref:Object])],InterfereExceptionFilter);export{InterfereExceptionFilter};
2
+ //# sourceMappingURL=exception-filter.mjs.map
package/dist/index.cjs ADDED
@@ -0,0 +1 @@
1
+ Object.defineProperty(exports,Symbol.toStringTag,{value:`Module`});const require_exception_filter=require("./exception-filter.cjs"),require_init=require("./init.cjs"),require_module=require("./module.cjs");let _interfere_node=require("@interfere/node");Object.defineProperty(exports,"InterfereExceptionFilter",{enumerable:!0,get:function(){return require_exception_filter.InterfereExceptionFilter}}),Object.defineProperty(exports,"InterfereModule",{enumerable:!0,get:function(){return require_module.InterfereModule}}),Object.defineProperty(exports,"captureError",{enumerable:!0,get:function(){return _interfere_node.captureError}}),Object.defineProperty(exports,"captureMessage",{enumerable:!0,get:function(){return _interfere_node.captureMessage}}),Object.defineProperty(exports,"close",{enumerable:!0,get:function(){return _interfere_node.close}}),Object.defineProperty(exports,"flush",{enumerable:!0,get:function(){return _interfere_node.flush}}),exports.init=require_init.init,Object.defineProperty(exports,"withSpan",{enumerable:!0,get:function(){return _interfere_node.withSpan}});
@@ -0,0 +1,5 @@
1
+ import { InterfereExceptionFilter } from "./exception-filter.cjs";
2
+ import { InitOptions, init } from "./init.cjs";
3
+ import { InterfereModule } from "./module.cjs";
4
+ import { CaptureErrorContext, captureError, captureMessage, close, flush, withSpan } from "@interfere/node";
5
+ export { type CaptureErrorContext, type InitOptions, InterfereExceptionFilter, InterfereModule, captureError, captureMessage, close, flush, init, withSpan };
package/dist/index.mjs CHANGED
@@ -1,5 +1 @@
1
- import { InterfereExceptionFilter } from "./exception-filter.mjs";
2
- import { init } from "./init.mjs";
3
- import { InterfereModule } from "./module.mjs";
4
- import { captureError, captureMessage, close, flush, withSpan } from "@interfere/node";
5
- export { InterfereExceptionFilter, InterfereModule, captureError, captureMessage, close, flush, init, withSpan };
1
+ import{InterfereExceptionFilter}from"./exception-filter.mjs";import{init}from"./init.mjs";import{InterfereModule}from"./module.mjs";import{captureError,captureMessage,close,flush,withSpan}from"@interfere/node";export{InterfereExceptionFilter,InterfereModule,captureError,captureMessage,close,flush,init,withSpan};
package/dist/init.cjs ADDED
@@ -0,0 +1 @@
1
+ Object.defineProperty(exports,Symbol.toStringTag,{value:`Module`});let _interfere_node=require("@interfere/node"),_opentelemetry_instrumentation=require("@opentelemetry/instrumentation"),_opentelemetry_instrumentation_nestjs_core=require("@opentelemetry/instrumentation-nestjs-core"),instrumented=!1;async function init(options={}){instrumented||=((0,_opentelemetry_instrumentation.registerInstrumentations)({instrumentations:[new _opentelemetry_instrumentation_nestjs_core.NestInstrumentation]}),!0),await(0,_interfere_node.init)(options)}exports.init=init;
@@ -0,0 +1,14 @@
1
+ import { InitOptions, InitOptions as InitOptions$1 } from "@interfere/node";
2
+
3
+ //#region src/init.d.ts
4
+ /**
5
+ * Bootstraps `@interfere/node` and registers
6
+ * `@opentelemetry/instrumentation-nestjs-core` for auto-spans across
7
+ * controllers, guards, pipes, interceptors, and middleware. Must run
8
+ * before `@nestjs/core` is imported — see the README for the
9
+ * `instrument.ts` pattern.
10
+ */
11
+ declare function init(options?: InitOptions$1): Promise<void>;
12
+ //#endregion
13
+ export { type InitOptions, init };
14
+ //# sourceMappingURL=init.d.cts.map
package/dist/init.d.mts CHANGED
@@ -10,4 +10,5 @@ import { InitOptions, InitOptions as InitOptions$1 } from "@interfere/node";
10
10
  */
11
11
  declare function init(options?: InitOptions$1): Promise<void>;
12
12
  //#endregion
13
- export { type InitOptions, init };
13
+ export { type InitOptions, init };
14
+ //# sourceMappingURL=init.d.mts.map
package/dist/init.mjs CHANGED
@@ -1,21 +1,2 @@
1
- import { init as init$1 } from "@interfere/node";
2
- import { registerInstrumentations } from "@opentelemetry/instrumentation";
3
- import { NestInstrumentation } from "@opentelemetry/instrumentation-nestjs-core";
4
- //#region src/init.ts
5
- let instrumented = false;
6
- /**
7
- * Bootstraps `@interfere/node` and registers
8
- * `@opentelemetry/instrumentation-nestjs-core` for auto-spans across
9
- * controllers, guards, pipes, interceptors, and middleware. Must run
10
- * before `@nestjs/core` is imported — see the README for the
11
- * `instrument.ts` pattern.
12
- */
13
- async function init(options = {}) {
14
- if (!instrumented) {
15
- registerInstrumentations({ instrumentations: [new NestInstrumentation()] });
16
- instrumented = true;
17
- }
18
- await init$1(options);
19
- }
20
- //#endregion
21
- export { init };
1
+ import{init as init$1}from"@interfere/node";import{registerInstrumentations}from"@opentelemetry/instrumentation";import{NestInstrumentation}from"@opentelemetry/instrumentation-nestjs-core";let instrumented=!1;async function init(options={}){instrumented||=(registerInstrumentations({instrumentations:[new NestInstrumentation]}),!0),await init$1(options)}export{init};
2
+ //# sourceMappingURL=init.mjs.map
@@ -0,0 +1 @@
1
+ Object.defineProperty(exports,Symbol.toStringTag,{value:`Module`});const require_decorate=require("./_virtual/_@oxc-project_runtime@0.132.0/helpers/decorate.cjs"),require_exception_filter=require("./exception-filter.cjs");let _nestjs_common=require("@nestjs/common"),_nestjs_core=require("@nestjs/core");var _InterfereModule;let InterfereModule=_InterfereModule=class{static forRoot(){return{module:_InterfereModule,providers:[{provide:_nestjs_core.APP_FILTER,useClass:require_exception_filter.InterfereExceptionFilter}]}}};InterfereModule=_InterfereModule=require_decorate.__decorate([(0,_nestjs_common.Module)({})],InterfereModule),Object.defineProperty(exports,"InterfereModule",{enumerable:!0,get:function(){return InterfereModule}});
@@ -0,0 +1,14 @@
1
+ import { DynamicModule } from "@nestjs/common";
2
+
3
+ //#region src/module.d.ts
4
+ /**
5
+ * Registers `InterfereExceptionFilter` as a global filter via
6
+ * `APP_FILTER`. Import once at the app root: `imports:
7
+ * [InterfereModule.forRoot()]`.
8
+ */
9
+ declare class InterfereModule {
10
+ static forRoot(): DynamicModule;
11
+ }
12
+ //#endregion
13
+ export { InterfereModule };
14
+ //# sourceMappingURL=module.d.cts.map
package/dist/module.d.mts CHANGED
@@ -10,4 +10,5 @@ declare class InterfereModule {
10
10
  static forRoot(): DynamicModule;
11
11
  }
12
12
  //#endregion
13
- export { InterfereModule };
13
+ export { InterfereModule };
14
+ //# sourceMappingURL=module.d.mts.map
package/dist/module.mjs CHANGED
@@ -1,20 +1,2 @@
1
- import { __decorate } from "./_virtual/_@oxc-project_runtime@0.129.0/helpers/decorate.mjs";
2
- import { InterfereExceptionFilter } from "./exception-filter.mjs";
3
- import { Module } from "@nestjs/common";
4
- import { APP_FILTER } from "@nestjs/core";
5
- //#region src/module.ts
6
- var _InterfereModule;
7
- let InterfereModule = _InterfereModule = class InterfereModule {
8
- static forRoot() {
9
- return {
10
- module: _InterfereModule,
11
- providers: [{
12
- provide: APP_FILTER,
13
- useClass: InterfereExceptionFilter
14
- }]
15
- };
16
- }
17
- };
18
- InterfereModule = _InterfereModule = __decorate([Module({})], InterfereModule);
19
- //#endregion
20
- export { InterfereModule };
1
+ import{__decorate}from"./_virtual/_@oxc-project_runtime@0.132.0/helpers/decorate.mjs";import{InterfereExceptionFilter}from"./exception-filter.mjs";import{Module}from"@nestjs/common";import{APP_FILTER}from"@nestjs/core";var _InterfereModule;let InterfereModule=_InterfereModule=class{static forRoot(){return{module:_InterfereModule,providers:[{provide:APP_FILTER,useClass:InterfereExceptionFilter}]}}};InterfereModule=_InterfereModule=__decorate([Module({})],InterfereModule);export{InterfereModule};
2
+ //# sourceMappingURL=module.mjs.map
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@interfere/nest",
3
- "version": "0.0.1-canary.0",
3
+ "version": "0.0.1-canary.1",
4
4
  "license": "MIT",
5
5
  "description": "NestJS SDK for Interfere. Auto-captures uncaught exceptions from controllers, providers, and middleware via a global ExceptionFilter, plus re-exports the @interfere/node OTel instrumentation.",
6
6
  "keywords": [
@@ -22,20 +22,32 @@
22
22
  "directory": "src/packages/public/nest"
23
23
  },
24
24
  "files": [
25
- "dist"
25
+ "dist/**/*.cjs",
26
+ "dist/**/*.mjs",
27
+ "dist/**/*.d.cts",
28
+ "dist/**/*.d.mts",
29
+ "README.md"
26
30
  ],
27
31
  "type": "module",
32
+ "main": "./dist/index.cjs",
33
+ "module": "./dist/index.mjs",
34
+ "types": "./dist/index.d.cts",
28
35
  "exports": {
29
36
  ".": {
30
- "@source": "./src/index.ts",
31
- "types": "./dist/index.d.mts",
32
- "default": "./dist/index.mjs"
37
+ "monorepo": "./src/index.ts",
38
+ "import": {
39
+ "types": "./dist/index.d.mts",
40
+ "default": "./dist/index.mjs"
41
+ },
42
+ "require": {
43
+ "types": "./dist/index.d.cts",
44
+ "default": "./dist/index.cjs"
45
+ }
33
46
  }
34
47
  },
35
48
  "sideEffects": false,
36
49
  "publishConfig": {
37
- "access": "public",
38
- "tag": "canary"
50
+ "access": "public"
39
51
  },
40
52
  "scripts": {
41
53
  "build": "tsdown",
@@ -43,19 +55,19 @@
43
55
  "typecheck": "tsc --noEmit --incremental"
44
56
  },
45
57
  "dependencies": {
46
- "@interfere/node": "^0.0.1-canary.0",
47
- "@opentelemetry/instrumentation": "^0.217.0",
48
- "@opentelemetry/instrumentation-nestjs-core": "^0.63.0"
58
+ "@interfere/node": "^0.0.1-canary.1",
59
+ "@opentelemetry/instrumentation": "^0.218.0",
60
+ "@opentelemetry/instrumentation-nestjs-core": "^0.64.0"
49
61
  },
50
62
  "peerDependencies": {
51
- "@nestjs/common": "^10 || ^11",
52
- "@nestjs/core": "^10 || ^11"
63
+ "@nestjs/common": "^11.1.21",
64
+ "@nestjs/core": "^11.1.21"
53
65
  },
54
66
  "devDependencies": {
55
67
  "@interfere/test-utils": "^9.0.0",
56
68
  "@interfere/typescript-config": "^9.0.0",
57
- "@nestjs/common": "^11",
58
- "@nestjs/core": "^11",
69
+ "@nestjs/common": "^11.1.21",
70
+ "@nestjs/core": "^11.1.21",
59
71
  "@types/node": "^24.12.0",
60
72
  "@vitest/coverage-v8": "^4.1.6",
61
73
  "reflect-metadata": "^0.2",
@@ -1,9 +0,0 @@
1
- //#region \0@oxc-project+runtime@0.129.0/helpers/decorate.js
2
- function __decorate(decorators, target, key, desc) {
3
- var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
4
- if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
5
- else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
6
- return c > 3 && r && Object.defineProperty(target, key, r), r;
7
- }
8
- //#endregion
9
- export { __decorate };
@@ -1,6 +0,0 @@
1
- //#region \0@oxc-project+runtime@0.129.0/helpers/decorateMetadata.js
2
- function __decorateMetadata(k, v) {
3
- if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k, v);
4
- }
5
- //#endregion
6
- export { __decorateMetadata };
@@ -1,8 +0,0 @@
1
- //#region \0@oxc-project+runtime@0.129.0/helpers/decorateParam.js
2
- function __decorateParam(paramIndex, decorator) {
3
- return function(target, key) {
4
- decorator(target, key, paramIndex);
5
- };
6
- }
7
- //#endregion
8
- export { __decorateParam };
@@ -1 +0,0 @@
1
- {"version":3,"file":"exception-filter.d.mts","names":[],"sources":["../src/exception-filter.ts"],"mappings":";;;;;;AAkBA;;;;cACa,wBAAA,SACH,mBAAA,YACG,eAAA;cAG4B,WAAA,GAAc,eAAA;EAK5C,KAAA,CAAM,SAAA,WAAoB,IAAA,EAAM,aAAA;EAAA,QAOjC,YAAA;EAAA,QAOA,cAAA;AAAA"}
@@ -1 +0,0 @@
1
- {"version":3,"file":"exception-filter.mjs","names":[],"sources":["../src/exception-filter.ts"],"sourcesContent":["import { captureError } from \"@interfere/node\";\n\nimport {\n type ArgumentsHost,\n Catch,\n type ExceptionFilter,\n HttpException,\n Inject,\n Optional,\n} from \"@nestjs/common\";\nimport { BaseExceptionFilter, HttpAdapterHost } from \"@nestjs/core\";\n\n/**\n * Forwards uncaught exceptions to Interfere, then delegates to Nest's\n * default response shaping. Skips `HttpException` with status 4xx —\n * client-fault errors are framework-handled and shouldn't bill against\n * crash dashboards.\n */\n@Catch()\nexport class InterfereExceptionFilter\n extends BaseExceptionFilter\n implements ExceptionFilter\n{\n constructor(\n @Optional() @Inject(HttpAdapterHost) adapterHost?: HttpAdapterHost\n ) {\n super(adapterHost?.httpAdapter);\n }\n\n override catch(exception: unknown, host: ArgumentsHost): void {\n if (this.shouldReport(exception)) {\n captureError(exception, this.extractRequest(host));\n }\n super.catch(exception, host);\n }\n\n private shouldReport(exception: unknown): boolean {\n if (exception instanceof HttpException) {\n return exception.getStatus() >= 500;\n }\n return true;\n }\n\n private extractRequest(host: ArgumentsHost): unknown {\n if (host.getType() !== \"http\") {\n return;\n }\n return host.switchToHttp().getRequest();\n }\n}\n"],"mappings":";;;;;;;;AAmBO,IAAA,2BAAA,MAAM,iCACH,oBAEV;CACE,YACE,aACA;EACA,MAAM,aAAa,YAAY;;CAGjC,MAAe,WAAoB,MAA2B;EAC5D,IAAI,KAAK,aAAa,UAAU,EAC9B,aAAa,WAAW,KAAK,eAAe,KAAK,CAAC;EAEpD,MAAM,MAAM,WAAW,KAAK;;CAG9B,aAAqB,WAA6B;EAChD,IAAI,qBAAqB,eACvB,OAAO,UAAU,WAAW,IAAI;EAElC,OAAO;;CAGT,eAAuB,MAA8B;EACnD,IAAI,KAAK,SAAS,KAAK,QACrB;EAEF,OAAO,KAAK,cAAc,CAAC,YAAY;;;;CA7B1C,OAAO;oBAMH,UAAU,CAAA;oBAAE,OAAO,gBAAgB,CAAA"}
@@ -1 +0,0 @@
1
- {"version":3,"file":"init.d.mts","names":[],"sources":["../src/init.ts"],"mappings":";;;;;AAcA;;;;;iBAAsB,IAAA,CAAK,OAAA,GAAS,aAAA,GAAmB,OAAA"}
package/dist/init.mjs.map DELETED
@@ -1 +0,0 @@
1
- {"version":3,"file":"init.mjs","names":["nodeInit"],"sources":["../src/init.ts"],"sourcesContent":["import { type InitOptions, init as nodeInit } from \"@interfere/node\";\n\nimport { registerInstrumentations } from \"@opentelemetry/instrumentation\";\nimport { NestInstrumentation } from \"@opentelemetry/instrumentation-nestjs-core\";\n\nlet instrumented = false;\n\n/**\n * Bootstraps `@interfere/node` and registers\n * `@opentelemetry/instrumentation-nestjs-core` for auto-spans across\n * controllers, guards, pipes, interceptors, and middleware. Must run\n * before `@nestjs/core` is imported — see the README for the\n * `instrument.ts` pattern.\n */\nexport async function init(options: InitOptions = {}): Promise<void> {\n if (!instrumented) {\n registerInstrumentations({\n instrumentations: [new NestInstrumentation()],\n });\n instrumented = true;\n }\n await nodeInit(options);\n}\n\nexport type { InitOptions } from \"@interfere/node\";\n"],"mappings":";;;;AAKA,IAAI,eAAe;;;;;;;;AASnB,eAAsB,KAAK,UAAuB,EAAE,EAAiB;CACnE,IAAI,CAAC,cAAc;EACjB,yBAAyB,EACvB,kBAAkB,CAAC,IAAI,qBAAqB,CAAC,EAC9C,CAAC;EACF,eAAe;;CAEjB,MAAMA,OAAS,QAAQ"}
@@ -1 +0,0 @@
1
- {"version":3,"file":"module.d.mts","names":[],"sources":["../src/module.ts"],"mappings":";;;;;AAUA;;;cACa,eAAA;EAAA,OACJ,OAAA,CAAA,GAAW,aAAA;AAAA"}
@@ -1 +0,0 @@
1
- {"version":3,"file":"module.mjs","names":[],"sources":["../src/module.ts"],"sourcesContent":["import { type DynamicModule, Module } from \"@nestjs/common\";\nimport { APP_FILTER } from \"@nestjs/core\";\n\nimport { InterfereExceptionFilter } from \"./exception-filter.js\";\n\n/**\n * Registers `InterfereExceptionFilter` as a global filter via\n * `APP_FILTER`. Import once at the app root: `imports:\n * [InterfereModule.forRoot()]`.\n */\n@Module({})\nexport class InterfereModule {\n static forRoot(): DynamicModule {\n return {\n module: InterfereModule,\n providers: [\n {\n provide: APP_FILTER,\n useClass: InterfereExceptionFilter,\n },\n ],\n };\n }\n}\n"],"mappings":";;;;;;AAWO,IAAA,kBAAA,mBAAA,MAAM,gBAAgB;CAC3B,OAAO,UAAyB;EAC9B,OAAO;GACL,QAAA;GACA,WAAW,CACT;IACE,SAAS;IACT,UAAU;IACX,CACF;GACF;;;iDAXJ,OAAO,EAAE,CAAC,CAAA,EAAA,gBAAA"}