@interfere/next 0.0.15-alpha.3 → 0.0.15-alpha.4

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 CHANGED
@@ -30,7 +30,21 @@ export const interfere = init({
30
30
  });
31
31
  ```
32
32
 
33
- ### 2. Add Error Boundary (App Directory)
33
+ ### 2. Add the Proxy Route
34
+
35
+ The SDK sends events through a server-side proxy route to keep your API credentials secure. Create `app/api/interfere/[[...path]]/route.ts`:
36
+
37
+ ```typescript
38
+ export { GET, OPTIONS, POST } from '@interfere/next/route-handler';
39
+ ```
40
+
41
+ This route proxies client-side events to Interfere's ingest API using your `INTERFERE_SECRET_KEY` environment variable. Add the key to your `.env.local`:
42
+
43
+ ```bash
44
+ INTERFERE_SECRET_KEY=if_sk_xxx
45
+ ```
46
+
47
+ ### 3. Add Error Boundary (App Directory)
34
48
 
35
49
  In your root layout (`app/layout.tsx`):
36
50
 
@@ -57,7 +71,7 @@ export default function RootLayout({
57
71
  }
58
72
  ```
59
73
 
60
- ### 3. Add Error Handler (App Directory)
74
+ ### 4. Add Error Handler (App Directory)
61
75
 
62
76
  Create `app/error.tsx`:
63
77
 
@@ -89,7 +103,7 @@ export default function Error({
89
103
  }
90
104
  ```
91
105
 
92
- ### 4. Add Global Error Handler
106
+ ### 5. Add Global Error Handler
93
107
 
94
108
  Create `app/global-error.tsx`:
95
109
 
@@ -1 +1 @@
1
- {"version":3,"file":"logger.d.mts","names":[],"sources":["../../src/build/logger.ts"],"sourcesContent":[],"mappings":";;;cA+CM,iBAAe,MAAA,CAAA;AAAf,iBA0HU,cAAA,CA1HK,KAAA,EA0HiB,QAAA,CAAS,OA1H1B,EAAA,KAAA,EAAA,MAAA,EAAA,KAAA,EAAA,MAAA,EAAA,CAAA,EA0HiE,MAAA,CAAA,MA1HjE,CAAA,IAAA,EAAA,KAAA,EAAA,KAAA,CAAA;AA0HL,iBAyCA,gBAAA,CAzC+B,KAAA,EA0CtC,QAAA,CAAS,OA1CoE,EAAA,KAAA,EAAA,MAAA,CAAA,EA2CvE,MAAA,CAAA,MA3CuE,CAAA,IAAA,EAAA,KAAA,EAAA,KAAA,CAAA;AAyCtE,iBAUA,kBAAA,CATE,IAAA,EAAA,MACH,CAAA,EAQgC,MAAA,CAAA,MARhC,CAAA,IAAA,EAAA,KAAA,EAAA,KAAA,CAAA;AAQC,iBAWA,aAAA,CAAA,CAX+B,EAWlB,MAAA,CAAA,MAXkB,CAAA,IAAA,EAAA,KAAA,EAAA,KAAA,CAAA;AAW/B,iBAmBA,oBAAA,CAnBa,KAAA,EAoBpB,QAAA,CAAS,OApBW,EAAA,KAAA,EAAA,MAAA,EAAA,GAAA,EAAA,CAAA,GAAA,EAAA,CAAA,IAAA,EAAA,MAAA,EAAA,GAuBF,UAvBE,CAAA,OAuBgB,kBAvBhB,CAAA,EAAA,GAwBtB,MAAA,CAAO,MAxBe,CAAA,OAAA,EAAA,OAAA,EAAA,OAAA,CAAA,CAAA,EAwBkB,MAAA,CAAA,MAxBlB,CAAA,OAAA,EAAA,OAAA,EAAA,OAAA,CAAA"}
1
+ {"version":3,"file":"logger.d.mts","names":[],"sources":["../../src/build/logger.ts"],"sourcesContent":[],"mappings":";;;cA+CM,iBAAe,MAAA,CAAA;AAAf,iBA0HU,cAAA,CA1HK,KAAA,EA0HiB,QAAA,CAAS,OA1H1B,EAAA,KAAA,EAAA,MAAA,EAAA,KAAA,EAAA,MAAA,EAAA,CAAA,EA0HiE,MAAA,CAAA,MA1HjE,CAAA,IAAA,EAAA,KAAA,EAAA,KAAA,CAAA;AA0HL,iBAyCA,gBAAA,CAzCsB,KAAS,EA0CtC,QAAA,CAAS,OA1CoE,EAAA,KAAA,EAAA,MAAA,CAAA,EA2CvE,MAAA,CAAA,MA3CuE,CAAA,IAAA,EAAA,KAAA,EAAA,KAAA,CAAA;AAyCtE,iBAUA,kBAAA,CATP,IAAS,EAAA,MACH,CAAA,EAQgC,MAAA,CAAA,MARhC,CAAA,IAAA,EAAA,KAAA,EAAA,KAAA,CAAA;AAQC,iBAWA,aAAA,CAAA,CAX+B,EAWlB,MAAA,CAAA,MAXkB,CAAA,IAAA,EAAA,KAAA,EAAA,KAAA,CAAA;AAW/B,iBAmBA,oBAAA,CAnBa,KAAA,EAoBpB,QAAA,CAAS,OApBW,EAAA,KAAA,EAAA,MAAA,EAAA,GAAA,EAAA,CAAA,GAAA,EAAA,CAAA,IAAA,EAAA,MAAA,EAAA,GAuBF,UAvBE,CAAA,OAuBgB,kBAvBhB,CAAA,EAAA,GAwBtB,MAAA,CAAO,MAxBe,CAAA,OAAA,EAAA,OAAA,EAAA,OAAA,CAAA,CAAA,EAwBkB,MAAA,CAAA,MAxBlB,CAAA,OAAA,EAAA,OAAA,EAAA,OAAA,CAAA"}
@@ -14,6 +14,6 @@ declare const releaseProgram: Effect.Effect<unknown, unknown, unknown>;
14
14
  /**
15
15
  * Create the layer stack for the release program
16
16
  */
17
- declare const createReleaseLayers: (config: PreflightConfig) => Layer.Layer<ConfigService | SourceMapService | ReleaseIdentityService, never, never>;
17
+ declare const createReleaseLayers: (config: PreflightConfig) => Layer.Layer<ReleaseIdentityService | ConfigService | SourceMapService, never, never>;
18
18
  //#endregion
19
19
  export { createReleaseLayers, releaseProgram };
@@ -1 +1 @@
1
- {"version":3,"file":"release-program.d.mts","names":[],"sources":["../../src/build/release-program.ts"],"sourcesContent":[],"mappings":";;;;;;;;;;AAuBA;AA6IA;AAA4C,cA7I/B,cA6I+B,EA7IjB,MAAA,CAAA,MA6IiB,CAAA,OAAA,EAAA,OAAA,EAAA,OAAA,CAAA;;;;AAAe,cAA9C,mBAA8C,EAAA,CAAA,MAAA,EAAf,eAAe,EAAA,GAAA,KAAA,CAAA,KAAA,CAAA,aAAA,GAAA,gBAAA,GAAA,sBAAA,EAAA,KAAA,EAAA,KAAA,CAAA"}
1
+ {"version":3,"file":"release-program.d.mts","names":[],"sources":["../../src/build/release-program.ts"],"sourcesContent":[],"mappings":";;;;;;;;;;AAuBA;AA6IA;AAA4C,cA7I/B,cA6I+B,EA7IjB,MAAA,CAAA,MA6IiB,CAAA,OAAA,EAAA,OAAA,EAAA,OAAA,CAAA;;;;AAAe,cAA9C,mBAA8C,EAAA,CAAA,MAAA,EAAf,eAAe,EAAA,GAAA,KAAA,CAAA,KAAA,CAAA,sBAAA,GAAA,aAAA,GAAA,gBAAA,EAAA,KAAA,EAAA,KAAA,CAAA"}
@@ -22,7 +22,7 @@ declare function createRelease(config: PreflightConfig, releaseInfo: ReleaseInfo
22
22
  environment: string;
23
23
  releaseId: number;
24
24
  releaseSlug: string;
25
- }, UploadError | InvalidApiUrlError | InvalidSecretKeyError, never>;
25
+ }, InvalidSecretKeyError | UploadError | InvalidApiUrlError, never>;
26
26
  /**
27
27
  * Upload source maps using the new v2 client
28
28
  * @param sourceMapToGenerated - Mapping from source map filename to generated JS file path
@@ -1 +1 @@
1
- {"version":3,"file":"api.d.mts","names":[],"sources":["../../../src/build/source-maps/api.ts"],"sourcesContent":[],"mappings":";;;;;;;;KAyBK,WAAA;;EAAA,QAAA,EAAA,MAAW;EAGF,UAAA,EAAA,iBAAA;EACI,cAAA,EAAA,qBAAA;EACC,eAAA,EAAA,sBAAA;EACI,mBAAA,EAAA,0BAAA;CAA0B;AA4FjC,iBAAA,aAAA,CAAa,MAAA,EACnB,eADmB,EAAA,WAAA,EAEd,WAFc,CAAA,EAEH,MAAA,CAAA,MAFG,CAAA;EACnB,KAAA,EAAA,MAAA;EACK,SAAA,EAAA,MAAA;;;;EAAW,SAAA,EAAA,MAAA;EAAA,WAAA,EAAA,MAAA;AAmB1B,CAAA,aAAgB,qBAAgB,wBAAA,EAAA,KAAA,CAAA;;;;;iBAAhB,gBAAA,aACF,2CACU,gCACd,uBACF,aAAU,MAAA,CAAA;;;CAAA,aAAA,wCAAA,EAAA,KAAA,CAAA"}
1
+ {"version":3,"file":"api.d.mts","names":[],"sources":["../../../src/build/source-maps/api.ts"],"sourcesContent":[],"mappings":";;;;;;;;KAyBK,WAAA;;EAAA,QAAA,EAAA,MAAW;EAGF,UAAA,EAAA,iBAAA;EACI,cAAA,EAAA,qBAAA;EACC,eAAA,EAAA,sBAAA;EACI,mBAAA,EAAA,0BAAA;CAA0B;AA4FjC,iBAAA,aAAA,CAAa,MAAA,EACnB,eADmB,EAAA,WAAA,EAEd,WAFc,CAAA,EAEH,MAAA,CAAA,MAFG,CAAA;EACnB,KAAA,EAAA,MAAA;EACK,SAAA,EAAA,MAAA;;;;EAAW,SAAA,EAAA,MAAA;EAAA,WAAA,EAAA,MAAA;AAmB1B,CAAA,uBAAgC,cAAA,qBAAA,EAAA,KAAA,CAAA;;;;;iBAAhB,gBAAA,aACF,2CACU,gCACd,uBACF,aAAU,MAAA,CAAA;;;CAAA,aAAA,wCAAA,EAAA,KAAA,CAAA"}
@@ -1,10 +1,10 @@
1
1
  import { ConfigService } from "./config.service.mjs";
2
2
  import { Context, Effect, Layer } from "effect";
3
- import * as effect_Types15 from "effect/Types";
4
- import * as effect_Cause15 from "effect/Cause";
3
+ import * as effect_Types0 from "effect/Types";
4
+ import * as effect_Cause0 from "effect/Cause";
5
5
 
6
6
  //#region src/server/services/error-tracking.service.d.ts
7
- declare const ErrorTrackingError_base: new <A extends Record<string, any> = {}>(args: effect_Types15.Equals<A, {}> extends true ? void : { readonly [P in keyof A as P extends "_tag" ? never : P]: A[P] }) => effect_Cause15.YieldableError & {
7
+ declare const ErrorTrackingError_base: new <A extends Record<string, any> = {}>(args: effect_Types0.Equals<A, {}> extends true ? void : { readonly [P in keyof A as P extends "_tag" ? never : P]: A[P] }) => effect_Cause0.YieldableError & {
8
8
  readonly _tag: "ErrorTrackingError";
9
9
  } & Readonly<A>;
10
10
  declare class ErrorTrackingError extends ErrorTrackingError_base<{
@@ -1,7 +1,7 @@
1
1
  import { ConfigService } from "./config.service.mjs";
2
+ import { getRuntime } from "@interfere/react/core/runtime/config";
2
3
  import { API_PATHS } from "@interfere/constants/api";
3
4
  import { Context, Data, Effect, Layer } from "effect";
4
- import { getRuntime } from "@interfere/react/core/runtime/config";
5
5
  import { buildServerErrorEnvelope, sendEnvelopesToIngest } from "@interfere/react/server/capture";
6
6
 
7
7
  //#region src/server/services/error-tracking.service.ts
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@interfere/next",
3
- "version": "0.0.15-alpha.3",
3
+ "version": "0.0.15-alpha.4",
4
4
  "license": "MIT",
5
5
  "description": "Build apps that never break.",
6
6
  "keywords": [
@@ -74,7 +74,7 @@
74
74
  "zod": "^4.2.1",
75
75
  "@interfere/constants": "0.0.2-alpha.0",
76
76
  "@interfere/effect-utils": "0.0.2-alpha.0",
77
- "@interfere/react": "0.0.2-alpha.0",
77
+ "@interfere/react": "0.0.2-alpha.1",
78
78
  "@interfere/types": "0.0.2-alpha.0"
79
79
  },
80
80
  "peerDependencies": {
@@ -88,8 +88,8 @@
88
88
  "@types/react": "19.2.7",
89
89
  "@types/react-dom": "19.2.3",
90
90
  "@vitest/coverage-v8": "^4.0.16",
91
- "jsdom": "^27.3.0",
92
- "msw": "^2.12.4",
91
+ "jsdom": "^27.4.0",
92
+ "msw": "^2.12.7",
93
93
  "next": "^16.1.1",
94
94
  "react": "^19.2.3",
95
95
  "react-dom": "^19.2.3",
@@ -98,8 +98,8 @@
98
98
  "vitest": "^4.0.16",
99
99
  "webpack": "^5.104.1",
100
100
  "@interfere/test-utils": "0.0.0",
101
- "@interfere/typescript-config": "1.0.3-alpha.0",
102
- "@interfere/vitest-config": "1.0.1-alpha.0"
101
+ "@interfere/vitest-config": "1.0.1-alpha.0",
102
+ "@interfere/typescript-config": "1.0.3-alpha.0"
103
103
  },
104
104
  "scripts": {
105
105
  "build": "tsdown",