@interfere/next 1.0.0 → 1.0.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 (95) hide show
  1. package/dist/_virtual/_rolldown/runtime.mjs +13 -0
  2. package/dist/config.d.mts +11 -0
  3. package/dist/config.d.mts.map +1 -0
  4. package/dist/config.mjs +115 -0
  5. package/dist/config.mjs.map +1 -0
  6. package/dist/instrument-client.d.mts +3 -0
  7. package/dist/instrument-client.mjs +2 -0
  8. package/dist/internal/build/configure-build.d.mts +25 -0
  9. package/dist/internal/build/configure-build.d.mts.map +1 -0
  10. package/dist/internal/build/configure-build.mjs +87 -0
  11. package/dist/internal/build/configure-build.mjs.map +1 -0
  12. package/dist/internal/build/release/destinations/vercel.d.mts +6 -0
  13. package/dist/internal/build/release/destinations/vercel.d.mts.map +1 -0
  14. package/dist/internal/build/release/destinations/vercel.mjs +25 -0
  15. package/dist/internal/build/release/destinations/vercel.mjs.map +1 -0
  16. package/dist/internal/build/release/git.d.mts +4 -0
  17. package/dist/internal/build/release/git.d.mts.map +1 -0
  18. package/dist/internal/build/release/git.mjs +21 -0
  19. package/dist/internal/build/release/git.mjs.map +1 -0
  20. package/dist/internal/build/release/index.d.mts +7 -0
  21. package/dist/internal/build/release/index.d.mts.map +1 -0
  22. package/dist/internal/build/release/index.mjs +24 -0
  23. package/dist/internal/build/release/index.mjs.map +1 -0
  24. package/dist/internal/build/release/sources/github.d.mts +6 -0
  25. package/dist/internal/build/release/sources/github.d.mts.map +1 -0
  26. package/dist/internal/build/release/sources/github.mjs +15 -0
  27. package/dist/internal/build/release/sources/github.mjs.map +1 -0
  28. package/dist/internal/build/source-maps/discover.d.mts +15 -0
  29. package/dist/internal/build/source-maps/discover.d.mts.map +1 -0
  30. package/dist/internal/build/source-maps/discover.mjs +62 -0
  31. package/dist/internal/build/source-maps/discover.mjs.map +1 -0
  32. package/dist/internal/build/source-maps/index.d.mts +23 -0
  33. package/dist/internal/build/source-maps/index.d.mts.map +1 -0
  34. package/dist/internal/build/source-maps/index.mjs +34 -0
  35. package/dist/internal/build/source-maps/index.mjs.map +1 -0
  36. package/dist/internal/build/value-injection-loader.d.mts +13 -0
  37. package/dist/internal/build/value-injection-loader.d.mts.map +1 -0
  38. package/dist/internal/build/value-injection-loader.mjs +24 -0
  39. package/dist/internal/build/value-injection-loader.mjs.map +1 -0
  40. package/dist/internal/env.d.mts +16 -0
  41. package/dist/internal/env.d.mts.map +1 -0
  42. package/dist/internal/env.mjs +19 -0
  43. package/dist/internal/env.mjs.map +1 -0
  44. package/dist/internal/logger.d.mts +8 -0
  45. package/dist/internal/logger.d.mts.map +1 -0
  46. package/dist/internal/logger.mjs +44 -0
  47. package/dist/internal/logger.mjs.map +1 -0
  48. package/dist/internal/route/handle-get.d.mts +4 -0
  49. package/dist/internal/route/handle-get.d.mts.map +1 -0
  50. package/dist/internal/route/handle-get.mjs +15 -0
  51. package/dist/internal/route/handle-get.mjs.map +1 -0
  52. package/dist/internal/route/handle-post.d.mts +4 -0
  53. package/dist/internal/route/handle-post.d.mts.map +1 -0
  54. package/dist/internal/route/handle-post.mjs +105 -0
  55. package/dist/internal/route/handle-post.mjs.map +1 -0
  56. package/dist/internal/route/sw-script.d.mts +4 -0
  57. package/dist/internal/route/sw-script.d.mts.map +1 -0
  58. package/dist/internal/route/sw-script.mjs +38 -0
  59. package/dist/internal/route/sw-script.mjs.map +1 -0
  60. package/dist/internal/server/capture.d.mts +9 -0
  61. package/dist/internal/server/capture.d.mts.map +1 -0
  62. package/dist/internal/server/capture.mjs +50 -0
  63. package/dist/internal/server/capture.mjs.map +1 -0
  64. package/dist/internal/server/dedupe.d.mts +5 -0
  65. package/dist/internal/server/dedupe.d.mts.map +1 -0
  66. package/dist/internal/server/dedupe.mjs +11 -0
  67. package/dist/internal/server/dedupe.mjs.map +1 -0
  68. package/dist/internal/server/envelope.d.mts +14 -0
  69. package/dist/internal/server/envelope.d.mts.map +1 -0
  70. package/dist/internal/server/envelope.mjs +55 -0
  71. package/dist/internal/server/envelope.mjs.map +1 -0
  72. package/dist/internal/server/normalize-request.d.mts +7 -0
  73. package/dist/internal/server/normalize-request.d.mts.map +1 -0
  74. package/dist/internal/server/normalize-request.mjs +50 -0
  75. package/dist/internal/server/normalize-request.mjs.map +1 -0
  76. package/dist/internal/server/runtime.d.mts +14 -0
  77. package/dist/internal/server/runtime.d.mts.map +1 -0
  78. package/dist/internal/server/runtime.mjs +18 -0
  79. package/dist/internal/server/runtime.mjs.map +1 -0
  80. package/dist/internal/server/transport.d.mts +12 -0
  81. package/dist/internal/server/transport.d.mts.map +1 -0
  82. package/dist/internal/server/transport.mjs +17 -0
  83. package/dist/internal/server/transport.mjs.map +1 -0
  84. package/dist/internal/server/types.d.mts +17 -0
  85. package/dist/internal/server/types.d.mts.map +1 -0
  86. package/dist/internal/server/types.mjs +1 -0
  87. package/dist/provider.d.mts +3 -0
  88. package/dist/provider.mjs +3 -0
  89. package/dist/route-handler.d.mts +7 -0
  90. package/dist/route-handler.d.mts.map +1 -0
  91. package/dist/route-handler.mjs +26 -0
  92. package/dist/route-handler.mjs.map +1 -0
  93. package/dist/server.d.mts +3 -0
  94. package/dist/server.mjs +2 -0
  95. package/package.json +1 -1
@@ -0,0 +1,50 @@
1
+ //#region src/internal/server/normalize-request.ts
2
+ const TRACEPARENT_HEADER = "traceparent";
3
+ function normalizeRequest(request) {
4
+ if (request instanceof Request) return {
5
+ method: normalizeMethod(request.method),
6
+ path: normalizePath(request.url),
7
+ headers: request.headers
8
+ };
9
+ if (typeof request !== "object" || request === null) return null;
10
+ const value = request;
11
+ return {
12
+ method: normalizeMethod(value.method),
13
+ path: normalizePath(typeof value.path === "string" ? value.path : toStringOrDefault(value.url)),
14
+ headers: normalizeHeaders(value.headers)
15
+ };
16
+ }
17
+ function normalizeMethod(value) {
18
+ if (typeof value !== "string") return "GET";
19
+ const method = value.trim();
20
+ return method.length > 0 ? method.toUpperCase() : "GET";
21
+ }
22
+ function normalizePath(value) {
23
+ if (value.length === 0) return "/";
24
+ try {
25
+ return new URL(value, "http://localhost").pathname || "/";
26
+ } catch {
27
+ return value.startsWith("/") ? value : `/${value}`;
28
+ }
29
+ }
30
+ function toStringOrDefault(value, fallback = "/") {
31
+ if (typeof value !== "string") return fallback;
32
+ const trimmed = value.trim();
33
+ return trimmed.length > 0 ? trimmed : fallback;
34
+ }
35
+ function normalizeHeaders(value) {
36
+ if (value instanceof Headers) return new Headers(value);
37
+ if (typeof value !== "object" || value === null) return new Headers();
38
+ const headers = new Headers();
39
+ for (const [key, headerValue] of Object.entries(value)) {
40
+ if (headerValue === void 0) continue;
41
+ if (Array.isArray(headerValue)) {
42
+ headers.set(key, headerValue.join(", "));
43
+ continue;
44
+ }
45
+ headers.set(key, String(headerValue));
46
+ }
47
+ return headers;
48
+ }
49
+ //#endregion
50
+ export { TRACEPARENT_HEADER, normalizeRequest };
@@ -0,0 +1 @@
1
+ {"version":3,"file":"normalize-request.mjs","names":[],"sources":["../../../src/internal/server/normalize-request.ts"],"sourcesContent":["import type { NormalizedRequest } from \"./types.js\";\n\nexport const TRACEPARENT_HEADER = \"traceparent\";\n\nexport function normalizeRequest(request: unknown): NormalizedRequest | null {\n if (request instanceof Request) {\n return {\n method: normalizeMethod(request.method),\n path: normalizePath(request.url),\n headers: request.headers,\n };\n }\n\n if (typeof request !== \"object\" || request === null) {\n return null;\n }\n\n const value = request as {\n headers?: unknown;\n method?: unknown;\n path?: unknown;\n url?: unknown;\n };\n\n return {\n method: normalizeMethod(value.method),\n path: normalizePath(\n typeof value.path === \"string\" ? value.path : toStringOrDefault(value.url)\n ),\n headers: normalizeHeaders(value.headers),\n };\n}\n\nfunction normalizeMethod(value: unknown): string {\n if (typeof value !== \"string\") {\n return \"GET\";\n }\n\n const method = value.trim();\n return method.length > 0 ? method.toUpperCase() : \"GET\";\n}\n\nfunction normalizePath(value: string): string {\n if (value.length === 0) {\n return \"/\";\n }\n\n try {\n const parsed = new URL(value, \"http://localhost\");\n return parsed.pathname || \"/\";\n } catch {\n return value.startsWith(\"/\") ? value : `/${value}`;\n }\n}\n\nfunction toStringOrDefault(value: unknown, fallback = \"/\"): string {\n if (typeof value !== \"string\") {\n return fallback;\n }\n\n const trimmed = value.trim();\n return trimmed.length > 0 ? trimmed : fallback;\n}\n\nfunction normalizeHeaders(value: unknown): Headers {\n if (value instanceof Headers) {\n return new Headers(value);\n }\n\n if (typeof value !== \"object\" || value === null) {\n return new Headers();\n }\n\n const headers = new Headers();\n for (const [key, headerValue] of Object.entries(value)) {\n if (headerValue === undefined) {\n continue;\n }\n\n if (Array.isArray(headerValue)) {\n headers.set(key, headerValue.join(\", \"));\n continue;\n }\n\n headers.set(key, String(headerValue));\n }\n\n return headers;\n}\n"],"mappings":";AAEA,MAAa,qBAAqB;AAElC,SAAgB,iBAAiB,SAA4C;AAC3E,KAAI,mBAAmB,QACrB,QAAO;EACL,QAAQ,gBAAgB,QAAQ,OAAO;EACvC,MAAM,cAAc,QAAQ,IAAI;EAChC,SAAS,QAAQ;EAClB;AAGH,KAAI,OAAO,YAAY,YAAY,YAAY,KAC7C,QAAO;CAGT,MAAM,QAAQ;AAOd,QAAO;EACL,QAAQ,gBAAgB,MAAM,OAAO;EACrC,MAAM,cACJ,OAAO,MAAM,SAAS,WAAW,MAAM,OAAO,kBAAkB,MAAM,IAAI,CAC3E;EACD,SAAS,iBAAiB,MAAM,QAAQ;EACzC;;AAGH,SAAS,gBAAgB,OAAwB;AAC/C,KAAI,OAAO,UAAU,SACnB,QAAO;CAGT,MAAM,SAAS,MAAM,MAAM;AAC3B,QAAO,OAAO,SAAS,IAAI,OAAO,aAAa,GAAG;;AAGpD,SAAS,cAAc,OAAuB;AAC5C,KAAI,MAAM,WAAW,EACnB,QAAO;AAGT,KAAI;AAEF,SADe,IAAI,IAAI,OAAO,mBAAmB,CACnC,YAAY;SACpB;AACN,SAAO,MAAM,WAAW,IAAI,GAAG,QAAQ,IAAI;;;AAI/C,SAAS,kBAAkB,OAAgB,WAAW,KAAa;AACjE,KAAI,OAAO,UAAU,SACnB,QAAO;CAGT,MAAM,UAAU,MAAM,MAAM;AAC5B,QAAO,QAAQ,SAAS,IAAI,UAAU;;AAGxC,SAAS,iBAAiB,OAAyB;AACjD,KAAI,iBAAiB,QACnB,QAAO,IAAI,QAAQ,MAAM;AAG3B,KAAI,OAAO,UAAU,YAAY,UAAU,KACzC,QAAO,IAAI,SAAS;CAGtB,MAAM,UAAU,IAAI,SAAS;AAC7B,MAAK,MAAM,CAAC,KAAK,gBAAgB,OAAO,QAAQ,MAAM,EAAE;AACtD,MAAI,gBAAgB,KAAA,EAClB;AAGF,MAAI,MAAM,QAAQ,YAAY,EAAE;AAC9B,WAAQ,IAAI,KAAK,YAAY,KAAK,KAAK,CAAC;AACxC;;AAGF,UAAQ,IAAI,KAAK,OAAO,YAAY,CAAC;;AAGvC,QAAO"}
@@ -0,0 +1,14 @@
1
+ import { Env, Runtime } from "@interfere/types/sdk/runtime";
2
+
3
+ //#region src/internal/server/runtime.d.ts
4
+ interface ServerCaptureRuntime {
5
+ readonly apiKey: string | null;
6
+ readonly buildId: string;
7
+ readonly environment: Env;
8
+ readonly ingestUrl: string;
9
+ readonly releaseId: string | null;
10
+ readonly runtime: Runtime;
11
+ }
12
+ declare function resolveServerCaptureRuntime(): ServerCaptureRuntime;
13
+ //#endregion
14
+ export { ServerCaptureRuntime, resolveServerCaptureRuntime };
@@ -0,0 +1 @@
1
+ {"version":3,"file":"runtime.d.mts","names":[],"sources":["../../../src/internal/server/runtime.ts"],"mappings":";;;UAMiB,oBAAA;EAAA,SACN,MAAA;EAAA,SACA,OAAA;EAAA,SACA,WAAA,EAAa,GAAA;EAAA,SACb,SAAA;EAAA,SACA,SAAA;EAAA,SACA,OAAA,EAAS,OAAA;AAAA;AAAA,iBAGJ,2BAAA,CAAA,GAA+B,oBAAA"}
@@ -0,0 +1,18 @@
1
+ import { readInterfereEnv } from "../env.mjs";
2
+ import { API_PATHS } from "@interfere/constants/api";
3
+ import { inferRuntime } from "@interfere/types/sdk/runtime";
4
+ //#region src/internal/server/runtime.ts
5
+ function resolveServerCaptureRuntime() {
6
+ const env = readInterfereEnv();
7
+ if (env.release.sourceId === null) throw new Error("[interfere] Missing NEXT_PUBLIC_INTERFERE_BUILD_ID at runtime. Ensure withInterfere() wraps your Next.js config.");
8
+ return {
9
+ apiKey: env.apiKey,
10
+ ingestUrl: `${env.apiUrl}${API_PATHS.INGEST}`,
11
+ environment: env.nodeEnvironment,
12
+ runtime: inferRuntime({ nextRuntime: env.nextRuntime }),
13
+ buildId: env.release.sourceId,
14
+ releaseId: env.release.destinationId
15
+ };
16
+ }
17
+ //#endregion
18
+ export { resolveServerCaptureRuntime };
@@ -0,0 +1 @@
1
+ {"version":3,"file":"runtime.mjs","names":[],"sources":["../../../src/internal/server/runtime.ts"],"sourcesContent":["import { API_PATHS } from \"@interfere/constants/api\";\nimport type { Env, Runtime } from \"@interfere/types/sdk/runtime\";\nimport { inferRuntime } from \"@interfere/types/sdk/runtime\";\n\nimport { readInterfereEnv } from \"../env.js\";\n\nexport interface ServerCaptureRuntime {\n readonly apiKey: string | null;\n readonly buildId: string;\n readonly environment: Env;\n readonly ingestUrl: string;\n readonly releaseId: string | null;\n readonly runtime: Runtime;\n}\n\nexport function resolveServerCaptureRuntime(): ServerCaptureRuntime {\n const env = readInterfereEnv();\n\n if (env.release.sourceId === null) {\n throw new Error(\n \"[interfere] Missing NEXT_PUBLIC_INTERFERE_BUILD_ID at runtime. \" +\n \"Ensure withInterfere() wraps your Next.js config.\"\n );\n }\n\n return {\n apiKey: env.apiKey,\n ingestUrl: `${env.apiUrl}${API_PATHS.INGEST}`,\n environment: env.nodeEnvironment,\n runtime: inferRuntime({ nextRuntime: env.nextRuntime }),\n buildId: env.release.sourceId,\n releaseId: env.release.destinationId,\n };\n}\n"],"mappings":";;;;AAeA,SAAgB,8BAAoD;CAClE,MAAM,MAAM,kBAAkB;AAE9B,KAAI,IAAI,QAAQ,aAAa,KAC3B,OAAM,IAAI,MACR,mHAED;AAGH,QAAO;EACL,QAAQ,IAAI;EACZ,WAAW,GAAG,IAAI,SAAS,UAAU;EACrC,aAAa,IAAI;EACjB,SAAS,aAAa,EAAE,aAAa,IAAI,aAAa,CAAC;EACvD,SAAS,IAAI,QAAQ;EACrB,WAAW,IAAI,QAAQ;EACxB"}
@@ -0,0 +1,12 @@
1
+ import { ServerCaptureRuntime } from "./runtime.mjs";
2
+ import { Envelope } from "@interfere/types/sdk/envelope";
3
+
4
+ //#region src/internal/server/transport.d.ts
5
+ interface SendEnvelopeInput {
6
+ readonly envelope: Envelope<"error">;
7
+ readonly runtime: ServerCaptureRuntime;
8
+ readonly traceparent?: string;
9
+ }
10
+ declare function sendEnvelope(input: SendEnvelopeInput): Promise<void>;
11
+ //#endregion
12
+ export { SendEnvelopeInput, sendEnvelope };
@@ -0,0 +1 @@
1
+ {"version":3,"file":"transport.d.mts","names":[],"sources":["../../../src/internal/server/transport.ts"],"mappings":";;;;UAIiB,iBAAA;EAAA,SACN,QAAA,EAAU,QAAA;EAAA,SACV,OAAA,EAAS,oBAAA;EAAA,SACT,WAAA;AAAA;AAAA,iBAGW,YAAA,CAAa,KAAA,EAAO,iBAAA,GAAoB,OAAA"}
@@ -0,0 +1,17 @@
1
+ //#region src/internal/server/transport.ts
2
+ async function sendEnvelope(input) {
3
+ const { envelope, runtime, traceparent } = input;
4
+ if (runtime.apiKey === null) return;
5
+ await fetch(runtime.ingestUrl, {
6
+ method: "POST",
7
+ headers: {
8
+ "content-type": "application/json",
9
+ "x-api-key": runtime.apiKey,
10
+ ...traceparent ? { traceparent } : {}
11
+ },
12
+ body: JSON.stringify([envelope]),
13
+ keepalive: true
14
+ });
15
+ }
16
+ //#endregion
17
+ export { sendEnvelope };
@@ -0,0 +1 @@
1
+ {"version":3,"file":"transport.mjs","names":[],"sources":["../../../src/internal/server/transport.ts"],"sourcesContent":["import type { Envelope } from \"@interfere/types/sdk/envelope\";\n\nimport type { ServerCaptureRuntime } from \"./runtime.js\";\n\nexport interface SendEnvelopeInput {\n readonly envelope: Envelope<\"error\">;\n readonly runtime: ServerCaptureRuntime;\n readonly traceparent?: string;\n}\n\nexport async function sendEnvelope(input: SendEnvelopeInput): Promise<void> {\n const { envelope, runtime, traceparent } = input;\n\n if (runtime.apiKey === null) {\n return;\n }\n\n await fetch(runtime.ingestUrl, {\n method: \"POST\",\n headers: {\n \"content-type\": \"application/json\",\n \"x-api-key\": runtime.apiKey,\n ...(traceparent ? { traceparent } : {}),\n },\n body: JSON.stringify([envelope]),\n keepalive: true,\n });\n}\n"],"mappings":";AAUA,eAAsB,aAAa,OAAyC;CAC1E,MAAM,EAAE,UAAU,SAAS,gBAAgB;AAE3C,KAAI,QAAQ,WAAW,KACrB;AAGF,OAAM,MAAM,QAAQ,WAAW;EAC7B,QAAQ;EACR,SAAS;GACP,gBAAgB;GAChB,aAAa,QAAQ;GACrB,GAAI,cAAc,EAAE,aAAa,GAAG,EAAE;GACvC;EACD,MAAM,KAAK,UAAU,CAAC,SAAS,CAAC;EAChC,WAAW;EACZ,CAAC"}
@@ -0,0 +1,17 @@
1
+ import { NextjsContext } from "@interfere/types/sdk/plugins/context/next";
2
+ import { ErrorMechanism } from "@interfere/types/sdk/plugins/payload/errors";
3
+
4
+ //#region src/internal/server/types.d.ts
5
+ type OnRequestErrorContext = Omit<NextjsContext, "errorDigest" | "requestMethod" | "requestPath" | "runtime">;
6
+ interface CaptureErrorContext {
7
+ readonly mechanism?: ErrorMechanism;
8
+ readonly nextjs?: Omit<NextjsContext, "runtime">;
9
+ readonly traceparent?: string;
10
+ }
11
+ interface NormalizedRequest {
12
+ readonly headers: Headers;
13
+ readonly method: string;
14
+ readonly path: string;
15
+ }
16
+ //#endregion
17
+ export { CaptureErrorContext, NormalizedRequest, OnRequestErrorContext };
@@ -0,0 +1 @@
1
+ {"version":3,"file":"types.d.mts","names":[],"sources":["../../../src/internal/server/types.ts"],"mappings":";;;;KAGY,qBAAA,GAAwB,IAAA,CAClC,aAAA;AAAA,UAIe,mBAAA;EAAA,SACN,SAAA,GAAY,cAAA;EAAA,SACZ,MAAA,GAAS,IAAA,CAAK,aAAA;EAAA,SACd,WAAA;AAAA;AAAA,UAGM,iBAAA;EAAA,SACN,OAAA,EAAS,OAAA;EAAA,SACT,MAAA;EAAA,SACA,IAAA;AAAA"}
@@ -0,0 +1 @@
1
+ export {};
@@ -0,0 +1,3 @@
1
+ import { InterfereProvider, useInterfere, useSession } from "@interfere/react/provider";
2
+ import { ConsentCategory, ConsentState, GateableCategory } from "@interfere/types/sdk/plugins/manifest";
3
+ export { type ConsentCategory, type ConsentState, type GateableCategory, InterfereProvider, useInterfere, useSession };
@@ -0,0 +1,3 @@
1
+ "use client";
2
+ import { InterfereProvider, useInterfere, useSession } from "@interfere/react/provider";
3
+ export { InterfereProvider, useInterfere, useSession };
@@ -0,0 +1,7 @@
1
+ //#region src/route-handler.d.ts
2
+ declare function GET(request: Request): Response;
3
+ declare function POST(request: Request): Promise<Response>;
4
+ declare function PUT(request: Request): Promise<Response>;
5
+ declare function OPTIONS(): Response;
6
+ //#endregion
7
+ export { GET, OPTIONS, POST, PUT };
@@ -0,0 +1 @@
1
+ {"version":3,"file":"route-handler.d.mts","names":[],"sources":["../src/route-handler.ts"],"mappings":";iBAGgB,GAAA,CAAI,OAAA,EAAS,OAAA,GAAU,QAAA;AAAA,iBAIvB,IAAA,CAAK,OAAA,EAAS,OAAA,GAAU,OAAA,CAAQ,QAAA;AAAA,iBAIhC,GAAA,CAAI,OAAA,EAAS,OAAA,GAAU,OAAA,CAAQ,QAAA;AAAA,iBAW/B,OAAA,CAAA,GAAW,QAAA"}
@@ -0,0 +1,26 @@
1
+ import { handleGet } from "./internal/route/handle-get.mjs";
2
+ import { handlePost } from "./internal/route/handle-post.mjs";
3
+ //#region src/route-handler.ts
4
+ function GET(request) {
5
+ return handleGet(request);
6
+ }
7
+ function POST(request) {
8
+ return handlePost(request);
9
+ }
10
+ function PUT(request) {
11
+ return handlePost(request);
12
+ }
13
+ const CORS_HEADERS = {
14
+ "Access-Control-Allow-Origin": "*",
15
+ "Access-Control-Allow-Methods": "GET, POST, PUT, OPTIONS",
16
+ "Access-Control-Allow-Headers": "Content-Type",
17
+ "Access-Control-Max-Age": "86400"
18
+ };
19
+ function OPTIONS() {
20
+ return new Response(null, {
21
+ status: 200,
22
+ headers: CORS_HEADERS
23
+ });
24
+ }
25
+ //#endregion
26
+ export { GET, OPTIONS, POST, PUT };
@@ -0,0 +1 @@
1
+ {"version":3,"file":"route-handler.mjs","names":[],"sources":["../src/route-handler.ts"],"sourcesContent":["import { handleGet } from \"./internal/route/handle-get.js\";\nimport { handlePost } from \"./internal/route/handle-post.js\";\n\nexport function GET(request: Request): Response {\n return handleGet(request);\n}\n\nexport function POST(request: Request): Promise<Response> {\n return handlePost(request);\n}\n\nexport function PUT(request: Request): Promise<Response> {\n return handlePost(request);\n}\n\nconst CORS_HEADERS = {\n \"Access-Control-Allow-Origin\": \"*\",\n \"Access-Control-Allow-Methods\": \"GET, POST, PUT, OPTIONS\",\n \"Access-Control-Allow-Headers\": \"Content-Type\",\n \"Access-Control-Max-Age\": \"86400\",\n};\n\nexport function OPTIONS(): Response {\n return new Response(null, { status: 200, headers: CORS_HEADERS });\n}\n"],"mappings":";;;AAGA,SAAgB,IAAI,SAA4B;AAC9C,QAAO,UAAU,QAAQ;;AAG3B,SAAgB,KAAK,SAAqC;AACxD,QAAO,WAAW,QAAQ;;AAG5B,SAAgB,IAAI,SAAqC;AACvD,QAAO,WAAW,QAAQ;;AAG5B,MAAM,eAAe;CACnB,+BAA+B;CAC/B,gCAAgC;CAChC,gCAAgC;CAChC,0BAA0B;CAC3B;AAED,SAAgB,UAAoB;AAClC,QAAO,IAAI,SAAS,MAAM;EAAE,QAAQ;EAAK,SAAS;EAAc,CAAC"}
@@ -0,0 +1,3 @@
1
+ import { CaptureErrorContext, OnRequestErrorContext } from "./internal/server/types.mjs";
2
+ import { captureError, onRequestError } from "./internal/server/capture.mjs";
3
+ export { type CaptureErrorContext, type OnRequestErrorContext, captureError, onRequestError };
@@ -0,0 +1,2 @@
1
+ import { captureError, onRequestError } from "./internal/server/capture.mjs";
2
+ export { captureError, onRequestError };
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@interfere/next",
3
- "version": "1.0.0",
3
+ "version": "1.0.1",
4
4
  "license": "MIT",
5
5
  "description": "Build software that never breaks.",
6
6
  "keywords": [