@tern-secure/nextjs 5.2.0-canary.v20251029025859 → 5.2.0-canary.v20251030165007

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 (63) hide show
  1. package/dist/cjs/app-router/server/TernSecureProvider.js +1 -1
  2. package/dist/cjs/app-router/server/TernSecureProvider.js.map +1 -1
  3. package/dist/cjs/app-router/server/TernSecureProviderNode.js +92 -0
  4. package/dist/cjs/app-router/server/TernSecureProviderNode.js.map +1 -0
  5. package/dist/cjs/app-router/server/auth.js +1 -1
  6. package/dist/cjs/app-router/server/auth.js.map +1 -1
  7. package/dist/cjs/app-router/server/auth_new.js +41 -0
  8. package/dist/cjs/app-router/server/auth_new.js.map +1 -0
  9. package/dist/cjs/boundary/PromiseAuthProvider.js.map +1 -1
  10. package/dist/cjs/boundary/PromiseAuthProviderNode.js +68 -0
  11. package/dist/cjs/boundary/PromiseAuthProviderNode.js.map +1 -0
  12. package/dist/cjs/index.js +3 -0
  13. package/dist/cjs/index.js.map +1 -1
  14. package/dist/cjs/server/constant.js +21 -0
  15. package/dist/cjs/server/constant.js.map +1 -1
  16. package/dist/cjs/server/data/getAuthDataFromRequest.js +105 -2
  17. package/dist/cjs/server/data/getAuthDataFromRequest.js.map +1 -1
  18. package/dist/cjs/server/index.js +6 -0
  19. package/dist/cjs/server/index.js.map +1 -1
  20. package/dist/cjs/server/instrumentation.js +52 -0
  21. package/dist/cjs/server/instrumentation.js.map +1 -0
  22. package/dist/esm/app-router/server/TernSecureProvider.js +2 -2
  23. package/dist/esm/app-router/server/TernSecureProvider.js.map +1 -1
  24. package/dist/esm/app-router/server/TernSecureProviderNode.js +58 -0
  25. package/dist/esm/app-router/server/TernSecureProviderNode.js.map +1 -0
  26. package/dist/esm/app-router/server/auth.js +2 -2
  27. package/dist/esm/app-router/server/auth.js.map +1 -1
  28. package/dist/esm/app-router/server/auth_new.js +17 -0
  29. package/dist/esm/app-router/server/auth_new.js.map +1 -0
  30. package/dist/esm/boundary/PromiseAuthProvider.js.map +1 -1
  31. package/dist/esm/boundary/PromiseAuthProviderNode.js +33 -0
  32. package/dist/esm/boundary/PromiseAuthProviderNode.js.map +1 -0
  33. package/dist/esm/index.js +2 -0
  34. package/dist/esm/index.js.map +1 -1
  35. package/dist/esm/server/constant.js +14 -0
  36. package/dist/esm/server/constant.js.map +1 -1
  37. package/dist/esm/server/data/getAuthDataFromRequest.js +101 -1
  38. package/dist/esm/server/data/getAuthDataFromRequest.js.map +1 -1
  39. package/dist/esm/server/index.js +6 -0
  40. package/dist/esm/server/index.js.map +1 -1
  41. package/dist/esm/server/instrumentation.js +28 -0
  42. package/dist/esm/server/instrumentation.js.map +1 -0
  43. package/dist/types/app-router/server/TernSecureProviderNode.d.ts +4 -0
  44. package/dist/types/app-router/server/TernSecureProviderNode.d.ts.map +1 -0
  45. package/dist/types/app-router/server/auth.d.ts +5 -1
  46. package/dist/types/app-router/server/auth.d.ts.map +1 -1
  47. package/dist/types/app-router/server/auth_new.d.ts +14 -0
  48. package/dist/types/app-router/server/auth_new.d.ts.map +1 -0
  49. package/dist/types/boundary/PromiseAuthProvider.d.ts +2 -2
  50. package/dist/types/boundary/PromiseAuthProvider.d.ts.map +1 -1
  51. package/dist/types/boundary/PromiseAuthProviderNode.d.ts +14 -0
  52. package/dist/types/boundary/PromiseAuthProviderNode.d.ts.map +1 -0
  53. package/dist/types/index.d.ts +1 -0
  54. package/dist/types/index.d.ts.map +1 -1
  55. package/dist/types/server/constant.d.ts +7 -0
  56. package/dist/types/server/constant.d.ts.map +1 -1
  57. package/dist/types/server/data/getAuthDataFromRequest.d.ts +32 -0
  58. package/dist/types/server/data/getAuthDataFromRequest.d.ts.map +1 -1
  59. package/dist/types/server/index.d.ts +2 -0
  60. package/dist/types/server/index.d.ts.map +1 -1
  61. package/dist/types/server/instrumentation.d.ts +27 -0
  62. package/dist/types/server/instrumentation.d.ts.map +1 -0
  63. package/package.json +6 -5
@@ -1,3 +1,10 @@
1
+ export declare const FIREBASE_API_KEY: string;
2
+ export declare const FIREBASE_AUTH_DOMAIN: string;
3
+ export declare const FIREBASE_PROJECT_ID: string;
4
+ export declare const FIREBASE_STORAGE_BUCKET: string;
5
+ export declare const FIREBASE_MESSAGING_SENDER_ID: string;
6
+ export declare const FIREBASE_APP_ID: string;
7
+ export declare const FIREBASE_MEASUREMENT_ID: string;
1
8
  export declare const API_KEY: string;
2
9
  export declare const API_URL: string;
3
10
  export declare const API_VERSION: string;
@@ -1 +1 @@
1
- {"version":3,"file":"constant.d.ts","sourceRoot":"","sources":["../../../src/server/constant.ts"],"names":[],"mappings":"AAAA,eAAO,MAAM,OAAO,QAAiD,CAAC;AACtE,eAAO,MAAM,OAAO,QAAuC,CAAC;AAC5D,eAAO,MAAM,WAAW,QAA6C,CAAC;AACtE,eAAO,MAAM,WAAW,QAA4C,CAAC;AACrE,eAAO,MAAM,WAAW,QAA4C,CAAC"}
1
+ {"version":3,"file":"constant.d.ts","sourceRoot":"","sources":["../../../src/server/constant.ts"],"names":[],"mappings":"AAAA,eAAO,MAAM,gBAAgB,QAAiD,CAAC;AAC/E,eAAO,MAAM,oBAAoB,QAAqD,CAAC;AACvF,eAAO,MAAM,mBAAmB,QAAoD,CAAC;AACrF,eAAO,MAAM,uBAAuB,QAAwD,CAAC;AAC7F,eAAO,MAAM,4BAA4B,QAA6D,CAAC;AACvG,eAAO,MAAM,eAAe,QAAgD,CAAC;AAC7E,eAAO,MAAM,uBAAuB,QAAwD,CAAC;AAE7F,eAAO,MAAM,OAAO,QAAiD,CAAC;AACtE,eAAO,MAAM,OAAO,QAAuC,CAAC;AAC5D,eAAO,MAAM,WAAW,QAA6C,CAAC;AACtE,eAAO,MAAM,WAAW,QAA4C,CAAC;AACrE,eAAO,MAAM,WAAW,QAA4C,CAAC"}
@@ -1,4 +1,5 @@
1
1
  import type { AuthObject } from '@tern-secure/backend';
2
+ import type { TernSecureUser } from '@tern-secure/types';
2
3
  import type { RequestLike } from '../../server/types';
3
4
  /**
4
5
  * Auth objects moving through the server -> client boundary need to be serializable
@@ -23,4 +24,35 @@ export declare function getTernSecureAuthData(req: RequestLike, initialState?: {
23
24
  error: string | null;
24
25
  };
25
26
  export declare function getAuthDataFromRequest(req: RequestLike): AuthObject;
27
+ export type SerializableTernSecureUser = Omit<TernSecureUser, 'delete' | 'getIdToken' | 'getIdTokenResult' | 'reload' | 'toJSON'>;
28
+ export type Aobj = {
29
+ user: SerializableTernSecureUser | null;
30
+ userId: string | null;
31
+ };
32
+ /**
33
+ * Auth objects moving through the server -> client boundary need to be serializable
34
+ * as we need to ensure that they can be transferred via the network as pure strings.
35
+ * Some frameworks like Remix or Next (/pages dir only) handle this serialization by simply
36
+ * ignoring any non-serializable keys, however Nextjs /app directory is stricter and
37
+ * throws an error if a non-serializable value is found.
38
+ * @internal
39
+ */
40
+ export declare const authObjectToSerializableNode: <T extends Record<string, unknown>>(obj: T) => T;
41
+ export declare function getTernSecureAuthDataNode(req: RequestLike, initialState?: {}): Promise<{
42
+ sessionClaims: import("@tern-secure/types").DecodedIdToken;
43
+ userId: string;
44
+ token: string;
45
+ require: import("@tern-secure/types").CheckAuthorizationFromSessionClaims;
46
+ error: string | null;
47
+ user: SerializableTernSecureUser | null;
48
+ } | {
49
+ sessionClaims: null;
50
+ userId: null;
51
+ token: null;
52
+ require: import("@tern-secure/types").CheckAuthorizationFromSessionClaims;
53
+ error: string | null;
54
+ user: SerializableTernSecureUser | null;
55
+ }>;
56
+ export declare function getAuthDataFromRequestNode(req: RequestLike): Promise<AuthObject & Aobj>;
57
+ export { TernSecureUser };
26
58
  //# sourceMappingURL=getAuthDataFromRequest.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"getAuthDataFromRequest.d.ts","sourceRoot":"","sources":["../../../../src/server/data/getAuthDataFromRequest.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,sBAAsB,CAAC;AAKvD,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,oBAAoB,CAAC;AAGtD;;;;;;;GAOG;AACH,eAAO,MAAM,wBAAwB,GAAI,CAAC,SAAS,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EAAE,KAAK,CAAC,KAAG,CAKpF,CAAC;AAEF,wBAAgB,qBAAqB,CAAC,GAAG,EAAE,WAAW,EAAE,YAAY,KAAK;;;;;;;;;;;;EAGxE;AAED,wBAAgB,sBAAsB,CAAC,GAAG,EAAE,WAAW,GAAG,UAAU,CAenE"}
1
+ {"version":3,"file":"getAuthDataFromRequest.d.ts","sourceRoot":"","sources":["../../../../src/server/data/getAuthDataFromRequest.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,sBAAsB,CAAC;AAGvD,OAAO,KAAK,EAAiC,cAAc,EAAE,MAAM,oBAAoB,CAAC;AAOxF,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,oBAAoB,CAAC;AAItD;;;;;;;GAOG;AACH,eAAO,MAAM,wBAAwB,GAAI,CAAC,SAAS,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EAAE,KAAK,CAAC,KAAG,CAKpF,CAAC;AAEF,wBAAgB,qBAAqB,CAAC,GAAG,EAAE,WAAW,EAAE,YAAY,KAAK;;;;;;;;;;;;EAGxE;AAED,wBAAgB,sBAAsB,CAAC,GAAG,EAAE,WAAW,GAAG,UAAU,CAenE;AAGD,MAAM,MAAM,0BAA0B,GAAG,IAAI,CAAC,cAAc,EAAE,QAAQ,GAAG,YAAY,GAAG,kBAAkB,GAAG,QAAQ,GAAG,QAAQ,CAAC,CAAC;AAElI,MAAM,MAAM,IAAI,GAAG;IACjB,IAAI,EAAE,0BAA0B,GAAG,IAAI,CAAA;IACvC,MAAM,EAAE,MAAM,GAAG,IAAI,CAAA;CACtB,CAAA;AAID;;;;;;;GAOG;AACH,eAAO,MAAM,4BAA4B,GAAI,CAAC,SAAS,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EAC5E,KAAK,CAAC,KACL,CAKF,CAAC;AAEF,wBAAsB,yBAAyB,CAC7C,GAAG,EAAE,WAAW,EAChB,YAAY,KAAK;;;;;;UAzBX,0BAA0B,GAAG,IAAI;;;;;;;UAAjC,0BAA0B,GAAG,IAAI;GA6BxC;AAED,wBAAsB,0BAA0B,CAAC,GAAG,EAAE,WAAW,GAAG,OAAO,CAAC,UAAU,GAAG,IAAI,CAAC,CA0B7F;AA4ED,OAAO,EAAE,cAAc,EAAE,CAAA"}
@@ -1,7 +1,9 @@
1
1
  export { ternSecureMiddleware, } from "./ternSecureEdgeMiddleware";
2
+ export { ternSecureInstrumentation } from "./instrumentation";
2
3
  export { createRouteMatcher } from "./routeMatcher";
3
4
  export { ternSecureBackendClient } from "./ternsecureClient";
4
5
  export { auth } from "../app-router/server/auth";
6
+ export { authNew } from "../app-router/server/auth_new";
5
7
  export type { AuthResult } from "../app-router/server/auth";
6
8
  export type { BaseUser, SessionResult } from "./types";
7
9
  export { NextCookieStore } from "../utils/NextCookieAdapter";
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/server/index.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,oBAAoB,GACrB,MAAM,4BAA4B,CAAC;AACpC,OAAO,EAAE,kBAAkB,EAAE,MAAM,gBAAgB,CAAC;AACpD,OAAO,EAAE,uBAAuB,EAAE,MAAM,oBAAoB,CAAC;AAC7D,OAAO,EACL,IAAI,EACL,MAAM,2BAA2B,CAAC;AACnC,YAAY,EAAE,UAAU,EAAE,MAAM,2BAA2B,CAAC;AAC5D,YAAY,EAAE,QAAQ,EAAE,aAAa,EAAE,MAAM,SAAS,CAAC;AACvD,OAAO,EAAE,eAAe,EAAE,MAAM,4BAA4B,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/server/index.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,oBAAoB,GACrB,MAAM,4BAA4B,CAAC;AACpC,OAAO,EAAE,yBAAyB,EAAE,MAAM,mBAAmB,CAAC;AAC9D,OAAO,EAAE,kBAAkB,EAAE,MAAM,gBAAgB,CAAC;AACpD,OAAO,EAAE,uBAAuB,EAAE,MAAM,oBAAoB,CAAC;AAC7D,OAAO,EACL,IAAI,EACL,MAAM,2BAA2B,CAAC;AACnC,OAAO,EACL,OAAO,EACR,MAAM,+BAA+B,CAAC;AACvC,YAAY,EAAE,UAAU,EAAE,MAAM,2BAA2B,CAAC;AAC5D,YAAY,EAAE,QAAQ,EAAE,aAAa,EAAE,MAAM,SAAS,CAAC;AACvD,OAAO,EAAE,eAAe,EAAE,MAAM,4BAA4B,CAAC"}
@@ -0,0 +1,27 @@
1
+ /**
2
+ * Patches global.fetch to add Referer header for Firebase Identity Toolkit requests.
3
+ * This is required for Firebase Auth to work properly on the server side.
4
+ *
5
+ * @param appUrl - Optional URL of your application. If not provided, uses NEXT_PUBLIC_FIREBASE_AUTH_DOMAIN env variable.
6
+ * You must provide either the parameter or set the environment variable.
7
+ *
8
+ * @throws {Error} If no appUrl is provided and NEXT_PUBLIC_FIREBASE_AUTH_DOMAIN is not set.
9
+ *
10
+ * @example
11
+ * ```typescript
12
+ * // In your app's instrumentation.ts
13
+ * import { ternSecureInstrumentation } from '@tern-secure/nextjs/server';
14
+ *
15
+ * export async function register() {
16
+ * if (process.env.NEXT_RUNTIME === 'nodejs') {
17
+ * // Option 1: Use environment variable
18
+ * ternSecureInstrumentation();
19
+ *
20
+ * // Option 2: Provide URL explicitly
21
+ * ternSecureInstrumentation('http://localhost:3000');
22
+ * }
23
+ * }
24
+ * ```
25
+ */
26
+ export declare function ternSecureInstrumentation(appUrl?: string): void;
27
+ //# sourceMappingURL=instrumentation.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"instrumentation.d.ts","sourceRoot":"","sources":["../../../src/server/instrumentation.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;GAwBG;AACH,wBAAgB,yBAAyB,CAAC,MAAM,CAAC,EAAE,MAAM,GAAG,IAAI,CAgC/D"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@tern-secure/nextjs",
3
- "version": "5.2.0-canary.v20251029025859",
3
+ "version": "5.2.0-canary.v20251030165007",
4
4
  "publishConfig": {
5
5
  "access": "public"
6
6
  },
@@ -63,12 +63,13 @@
63
63
  "jose": "^5.9.6",
64
64
  "server-only": "^0.0.1",
65
65
  "tslib": "2.4.1",
66
- "@tern-secure/backend": "1.2.0-canary.v20251029025859",
67
- "@tern-secure/react": "1.2.0-canary.v20251029025859",
68
- "@tern-secure/shared": "1.3.0-canary.v20251029025859",
69
- "@tern-secure/types": "1.1.0-canary.v20251029025859"
66
+ "@tern-secure/backend": "1.2.0-canary.v20251030165007",
67
+ "@tern-secure/react": "1.2.0-canary.v20251030165007",
68
+ "@tern-secure/shared": "1.3.0-canary.v20251030165007",
69
+ "@tern-secure/types": "1.1.0-canary.v20251030165007"
70
70
  },
71
71
  "peerDependencies": {
72
+ "firebase": "^12.0.0",
72
73
  "next": "^13.0.0 || ^14.0.0 || ^15.0.0",
73
74
  "react": "^19.0.0 || ^19.0.0-0",
74
75
  "react-dom": "^19.0.0 || ^19.0.0-0"