@tern-secure/nextjs 5.2.0-canary.v20250919131424 → 5.2.0-canary.v20250926170202

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 (66) hide show
  1. package/dist/cjs/app-router/admin/api/endpoints/abstract.js.map +1 -1
  2. package/dist/cjs/app-router/admin/{claude-authenticateRequestProcessor.js → c-authenticateRequestProcessor.js} +22 -7
  3. package/dist/cjs/app-router/admin/c-authenticateRequestProcessor.js.map +1 -0
  4. package/dist/cjs/app-router/admin/endpointRouter.js +10 -11
  5. package/dist/cjs/app-router/admin/endpointRouter.js.map +1 -1
  6. package/dist/cjs/app-router/admin/fnValidators.js +10 -24
  7. package/dist/cjs/app-router/admin/fnValidators.js.map +1 -1
  8. package/dist/cjs/app-router/admin/index.js +0 -5
  9. package/dist/cjs/app-router/admin/index.js.map +1 -1
  10. package/dist/cjs/app-router/admin/sessionHandlers.js +83 -123
  11. package/dist/cjs/app-router/admin/sessionHandlers.js.map +1 -1
  12. package/dist/cjs/app-router/admin/ternsecureNextjsHandler.js +21 -34
  13. package/dist/cjs/app-router/admin/ternsecureNextjsHandler.js.map +1 -1
  14. package/dist/cjs/app-router/admin/types.js +83 -5
  15. package/dist/cjs/app-router/admin/types.js.map +1 -1
  16. package/dist/cjs/server/constant.js +4 -1
  17. package/dist/cjs/server/constant.js.map +1 -1
  18. package/dist/cjs/server/ternSecureEdgeMiddleware.js +1 -11
  19. package/dist/cjs/server/ternSecureEdgeMiddleware.js.map +1 -1
  20. package/dist/esm/app-router/admin/api/endpoints/abstract.js.map +1 -1
  21. package/dist/esm/app-router/admin/{claude-authenticateRequestProcessor.js → c-authenticateRequestProcessor.js} +19 -4
  22. package/dist/esm/app-router/admin/c-authenticateRequestProcessor.js.map +1 -0
  23. package/dist/esm/app-router/admin/endpointRouter.js +11 -12
  24. package/dist/esm/app-router/admin/endpointRouter.js.map +1 -1
  25. package/dist/esm/app-router/admin/fnValidators.js +10 -23
  26. package/dist/esm/app-router/admin/fnValidators.js.map +1 -1
  27. package/dist/esm/app-router/admin/index.js +0 -3
  28. package/dist/esm/app-router/admin/index.js.map +1 -1
  29. package/dist/esm/app-router/admin/sessionHandlers.js +82 -110
  30. package/dist/esm/app-router/admin/sessionHandlers.js.map +1 -1
  31. package/dist/esm/app-router/admin/ternsecureNextjsHandler.js +22 -35
  32. package/dist/esm/app-router/admin/ternsecureNextjsHandler.js.map +1 -1
  33. package/dist/esm/app-router/admin/types.js +80 -4
  34. package/dist/esm/app-router/admin/types.js.map +1 -1
  35. package/dist/esm/server/constant.js +3 -1
  36. package/dist/esm/server/constant.js.map +1 -1
  37. package/dist/esm/server/ternSecureEdgeMiddleware.js +2 -12
  38. package/dist/esm/server/ternSecureEdgeMiddleware.js.map +1 -1
  39. package/dist/types/app-router/admin/api/endpoints/abstract.d.ts +6 -4
  40. package/dist/types/app-router/admin/api/endpoints/abstract.d.ts.map +1 -1
  41. package/dist/types/app-router/admin/{claude-authenticateRequestProcessor.d.ts → c-authenticateRequestProcessor.d.ts} +13 -5
  42. package/dist/types/app-router/admin/c-authenticateRequestProcessor.d.ts.map +1 -0
  43. package/dist/types/app-router/admin/endpointRouter.d.ts +7 -4
  44. package/dist/types/app-router/admin/endpointRouter.d.ts.map +1 -1
  45. package/dist/types/app-router/admin/fnValidators.d.ts +2 -11
  46. package/dist/types/app-router/admin/fnValidators.d.ts.map +1 -1
  47. package/dist/types/app-router/admin/index.d.ts +1 -3
  48. package/dist/types/app-router/admin/index.d.ts.map +1 -1
  49. package/dist/types/app-router/admin/sessionHandlers.d.ts +3 -24
  50. package/dist/types/app-router/admin/sessionHandlers.d.ts.map +1 -1
  51. package/dist/types/app-router/admin/ternsecureNextjsHandler.d.ts.map +1 -1
  52. package/dist/types/app-router/admin/types.d.ts +40 -64
  53. package/dist/types/app-router/admin/types.d.ts.map +1 -1
  54. package/dist/types/server/constant.d.ts +2 -1
  55. package/dist/types/server/constant.d.ts.map +1 -1
  56. package/dist/types/server/ternSecureEdgeMiddleware.d.ts.map +1 -1
  57. package/package.json +5 -5
  58. package/dist/cjs/app-router/admin/claude-authenticateRequestProcessor.js.map +0 -1
  59. package/dist/cjs/app-router/admin/handlerUtils.js +0 -63
  60. package/dist/cjs/app-router/admin/handlerUtils.js.map +0 -1
  61. package/dist/esm/app-router/admin/claude-authenticateRequestProcessor.js.map +0 -1
  62. package/dist/esm/app-router/admin/handlerUtils.js +0 -38
  63. package/dist/esm/app-router/admin/handlerUtils.js.map +0 -1
  64. package/dist/types/app-router/admin/claude-authenticateRequestProcessor.d.ts.map +0 -1
  65. package/dist/types/app-router/admin/handlerUtils.d.ts +0 -19
  66. package/dist/types/app-router/admin/handlerUtils.d.ts.map +0 -1
@@ -1,72 +1,33 @@
1
+ import type { AuthEndpoint, CookieOpts as CookieOptions, CorsOptions, EndpointConfig, SecurityOptions, SessionEndpointConfig, SessionSubEndpoint, TernSecureHandlerOptions, TokenCookieConfig } from '@tern-secure/types';
1
2
  import { type NextResponse } from 'next/server';
2
- export interface CorsOptions {
3
- allowedOrigins: string[] | '*';
4
- allowedMethods?: string[];
5
- allowedHeaders?: string[];
6
- allowCredentials?: boolean;
7
- maxAge?: number;
8
- skipSameOrigin?: boolean;
9
- }
10
- export interface CookieOptions {
11
- name?: string;
12
- domain?: string;
13
- path?: string;
14
- httpOnly?: boolean;
15
- sameSite?: 'strict' | 'lax' | 'none';
16
- maxAge?: number;
17
- }
18
- export interface RateLimitOptions {
19
- windowMs?: number;
20
- maxRequests?: number;
21
- skipSuccessful?: boolean;
22
- skipFailedRequests?: boolean;
23
- }
24
- export interface SecurityOptions {
25
- requireCSRF?: boolean;
26
- allowedReferers?: string[];
27
- requiredHeaders?: Record<string, string>;
28
- ipWhitelist?: string[];
29
- userAgent?: {
30
- block?: string[];
31
- allow?: string[];
3
+ export declare const DEFAULT_CORS_OPTIONS: CorsOptions;
4
+ export declare const DEFAULT_COOKIE_OPTIONS: CookieOptions;
5
+ export declare const FIXED_TOKEN_CONFIGS: {
6
+ readonly id: {
7
+ readonly path: "/";
8
+ readonly httpOnly: true;
9
+ readonly sameSite: "lax";
10
+ readonly maxAge: 3600;
32
11
  };
33
- }
34
- export interface EndpointConfig {
35
- enabled: boolean;
36
- methods: ('GET' | 'POST' | 'PUT' | 'DELETE')[];
37
- requireAuth?: boolean;
38
- rateLimit?: RateLimitOptions;
39
- security?: SecurityOptions;
40
- cors?: Partial<CorsOptions>;
41
- }
42
- export interface SessionEndpointConfig extends EndpointConfig {
43
- subEndpoints?: {
44
- [K in SessionSubEndpoint]?: Partial<EndpointConfig>;
12
+ readonly refresh: {
13
+ readonly path: "/";
14
+ readonly httpOnly: true;
15
+ readonly sameSite: "lax";
16
+ readonly maxAge: number;
45
17
  };
46
- }
47
- export interface TernSecureHandlerOptions {
48
- cors?: CorsOptions;
49
- cookies?: CookieOptions;
50
- rateLimit?: RateLimitOptions;
51
- security?: SecurityOptions;
52
- endpoints?: {
53
- sessions?: SessionEndpointConfig;
18
+ readonly signature: {
19
+ readonly path: "/";
20
+ readonly httpOnly: true;
21
+ readonly sameSite: "lax";
22
+ readonly maxAge: number;
23
+ };
24
+ readonly custom: {
25
+ readonly path: "/";
26
+ readonly httpOnly: true;
27
+ readonly sameSite: "lax";
28
+ readonly maxAge: number;
54
29
  };
55
- debug?: boolean;
56
- environment?: 'development' | 'production' | 'test';
57
- basePath?: string;
58
- }
59
- /**
60
- * Define an internal config type that extends the public options
61
- * with server-side only values like tenantId.
62
- */
63
- export type TernSecureInternalHandlerConfig = Required<TernSecureHandlerOptions> & {
64
- tenantId?: string;
65
30
  };
66
- export type AuthEndpoint = 'sessions' | 'users';
67
- export type SessionSubEndpoint = 'verify' | 'createsession' | 'refresh' | 'revoke';
68
- export declare const DEFAULT_CORS_OPTIONS: CorsOptions;
69
- export declare const DEFAULT_COOKIE_OPTIONS: CookieOptions;
70
31
  export declare const DEFAULT_SECURITY_OPTIONS: SecurityOptions;
71
32
  export declare const DEFAULT_ENDPOINT_CONFIG: EndpointConfig;
72
33
  export declare const DEFAULT_SESSIONS_CONFIG: SessionEndpointConfig;
@@ -101,4 +62,19 @@ export interface ComprehensiveValidationResult {
101
62
  csrfToken?: string;
102
63
  };
103
64
  }
65
+ export type suffix = 'session' | 'id' | 'refresh' | 'signature' | 'custom';
66
+ export declare class CookieUtils {
67
+ static getCookieName(namePrefix: string, tokenType: suffix): string;
68
+ static getCookieNames(namePrefix: string): {
69
+ session: string;
70
+ id: string;
71
+ refresh: string;
72
+ signature: string;
73
+ custom: string;
74
+ };
75
+ static getSessionConfig(cookieOptions: CookieOptions): TokenCookieConfig;
76
+ static getFixedTokenConfig(cookieOptions: CookieOptions, tokenType: Exclude<suffix, 'session'>): TokenCookieConfig;
77
+ static validateSessionMaxAge(maxAge: number): boolean;
78
+ }
79
+ export { AuthEndpoint, CookieOptions, CorsOptions, SecurityOptions, SessionSubEndpoint, EndpointConfig, SessionEndpointConfig, TernSecureHandlerOptions, };
104
80
  //# sourceMappingURL=types.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../../src/app-router/admin/types.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../../src/app-router/admin/types.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EACV,YAAY,EACZ,UAAU,IAAI,aAAa,EAC3B,WAAW,EACX,cAAc,EACd,eAAe,EACf,qBAAqB,EACrB,kBAAkB,EAClB,wBAAwB,EACxB,iBAAiB,EAClB,MAAM,oBAAoB,CAAC;AAC5B,OAAO,EAAE,KAAK,YAAY,EAAE,MAAM,aAAa,CAAC;AAEhD,eAAO,MAAM,oBAAoB,EAAE,WAMlC,CAAC;AAEF,eAAO,MAAM,sBAAsB,EAAE,aAQpC,CAAC;AAEF,eAAO,MAAM,mBAAmB;;;;;;;;;;;;;;;;;;;;;;;;;CAyBtB,CAAC;AAEX,eAAO,MAAM,wBAAwB,EAAE,eAStC,CAAC;AAEF,eAAO,MAAM,uBAAuB,EAAE,cAKrC,CAAC;AAEF,eAAO,MAAM,uBAAuB,EAAE,qBAqCrC,CAAC;AAEF,eAAO,MAAM,uBAAuB,EAAE,QAAQ,CAAC,wBAAwB,CAAC,GAAG;IACzE,SAAS,EAAE,QAAQ,CAAC,WAAW,CAAC,wBAAwB,CAAC,WAAW,CAAC,CAAC,CAAC,CAAC;CAmBzE,CAAC;AAEF,MAAM,WAAW,gBAAgB;IAC/B,KAAK,CAAC,EAAE,YAAY,CAAC;IACrB,IAAI,CAAC,EAAE,GAAG,CAAC;CACZ;AAED,MAAM,WAAW,gBAAgB;IAC/B,IAAI,CAAC,EAAE,WAAW,CAAC;IACnB,QAAQ,CAAC,EAAE,eAAe,CAAC;IAC3B,QAAQ,CAAC,EAAE;QACT,IAAI,EAAE,YAAY,CAAC;QACnB,MAAM,EAAE,cAAc,CAAC;KACxB,CAAC;IACF,WAAW,CAAC,EAAE;QACZ,IAAI,EAAE,kBAAkB,CAAC;QACzB,MAAM,EAAE,cAAc,CAAC;KACxB,CAAC;IACF,cAAc,CAAC,EAAE,OAAO,CAAC;IACzB,gBAAgB,CAAC,EAAE,OAAO,CAAC;CAC5B;AAED,MAAM,WAAW,6BAA6B;IAC5C,OAAO,EAAE,OAAO,CAAC;IACjB,KAAK,CAAC,EAAE,QAAQ,CAAC;IACjB,YAAY,CAAC,EAAE,QAAQ,CAAC;IACxB,WAAW,CAAC,EAAE;QACZ,IAAI,EAAE,GAAG,CAAC;QACV,OAAO,CAAC,EAAE,MAAM,CAAC;QACjB,SAAS,CAAC,EAAE,MAAM,CAAC;KACpB,CAAC;CACH;AAED,MAAM,MAAM,MAAM,GAAG,SAAS,GAAG,IAAI,GAAG,SAAS,GAAG,WAAW,GAAG,QAAQ,CAAC;AAE3E,qBAAa,WAAW;IACtB,MAAM,CAAC,aAAa,CAAC,UAAU,EAAE,MAAM,EAAE,SAAS,EAAE,MAAM,GAAG,MAAM;IAInE,MAAM,CAAC,cAAc,CAAC,UAAU,EAAE,MAAM;;;;;;;IAUxC,MAAM,CAAC,gBAAgB,CAAC,aAAa,EAAE,aAAa,GAAG,iBAAiB;IAaxE,MAAM,CAAC,mBAAmB,CACxB,aAAa,EAAE,aAAa,EAC5B,SAAS,EAAE,OAAO,CAAC,MAAM,EAAE,SAAS,CAAC,GACpC,iBAAiB;IAYpB,MAAM,CAAC,qBAAqB,CAAC,MAAM,EAAE,MAAM,GAAG,OAAO;CAKtD;AAED,OAAO,EACL,YAAY,EACZ,aAAa,EACb,WAAW,EACX,eAAe,EACf,kBAAkB,EAClB,cAAc,EACd,qBAAqB,EACrB,wBAAwB,GACzB,CAAC"}
@@ -1,4 +1,5 @@
1
- export declare const API_URL: string | undefined;
1
+ export declare const API_KEY: string;
2
+ export declare const API_URL: string;
2
3
  export declare const API_VERSION: string;
3
4
  export declare const SIGN_IN_URL: string;
4
5
  export declare const SIGN_UP_URL: string;
@@ -1 +1 @@
1
- {"version":3,"file":"constant.d.ts","sourceRoot":"","sources":["../../../src/server/constant.ts"],"names":[],"mappings":"AACA,eAAO,MAAM,OAAO,oBAAiC,CAAA;AACrD,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,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 +1 @@
1
- {"version":3,"file":"ternSecureEdgeMiddleware.d.ts","sourceRoot":"","sources":["../../../src/server/ternSecureEdgeMiddleware.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EACV,UAAU,EACV,cAAc,EAEf,MAAM,sBAAsB,CAAC;AAO9B,OAAO,KAAK,EACV,gBAAgB,EACjB,MAAM,oBAAoB,CAAC;AAE5B,OAAO,KAAK,EAAE,cAAc,EAAC,WAAW,EAAE,MAAM,aAAa,CAAC;AAC9D,OAAO,EAAE,YAAY,EAAE,MAAM,aAAa,CAAC;AAe3C,OAAO,EAAE,KAAK,WAAW,EAAgB,MAAM,WAAW,CAAC;AAC3D,OAAO,EAAkB,KAAK,WAAW,EAAE,MAAM,YAAY,CAAC;AAC9D,OAAO,KAAK,EACV,sBAAsB,EACtB,0BAA0B,EAC1B,oBAAoB,EACrB,MAAM,SAAS,CAAC;AAGjB,MAAM,MAAM,oBAAoB,GAAG,UAAU,GAAG;IAC9C,gBAAgB,EAAE,WAAW,CAAC,QAAQ,CAAC,CAAC;IACxC,gBAAgB,EAAE,WAAW,CAAC,QAAQ,CAAC,CAAC;CACzC,CAAC;AAEF,MAAM,WAAW,cAAc;IAC7B,IAAI,OAAO,CAAC,oBAAoB,CAAC,CAAC;IAElC,OAAO,EAAE,WAAW,CAAC;CACtB;AAED,KAAK,iBAAiB,GAAG,CACvB,IAAI,EAAE,cAAc,EACpB,OAAO,EAAE,0BAA0B,EACnC,KAAK,EAAE,sBAAsB,KAC1B,oBAAoB,CAAC;AAE1B,MAAM,WAAW,iBAAkB,SAAQ,cAAc;IACvD,KAAK,CAAC,EAAE,OAAO,CAAC;IAChB,eAAe,CAAC,EAAE,gBAAgB,CAAC;CACpC;AACD,KAAK,yBAAyB,GAAG,CAC/B,GAAG,EAAE,WAAW,KACb,iBAAiB,GAAG,OAAO,CAAC,iBAAiB,CAAC,CAAC;AAEpD,UAAU,oBAAoB;IAC5B;;;OAGG;IACH,CAAC,OAAO,EAAE,iBAAiB,EAAE,OAAO,CAAC,EAAE,iBAAiB,GAAG,cAAc,CAAC;IAE1E;;;OAGG;IACH,CAAC,OAAO,EAAE,iBAAiB,EAAE,OAAO,CAAC,EAAE,yBAAyB,GAAG,cAAc,CAAC;IAElF;;;OAGG;IACH,CAAC,OAAO,CAAC,EAAE,iBAAiB,GAAG,cAAc,CAAC;IAC9C;;;OAGG;IACH,CAAC,OAAO,EAAE,0BAA0B,EAAE,KAAK,EAAE,sBAAsB,GAAG,oBAAoB,CAAC;CAC5F;AAkBD,eAAO,MAAM,oBAAoB,EA0G3B,oBAAoB,CAAC;AA0E3B,eAAO,MAAM,eAAe,GAAI,KAAK,MAAM,GAAG,GAAG,0BAIhD,CAAC"}
1
+ {"version":3,"file":"ternSecureEdgeMiddleware.d.ts","sourceRoot":"","sources":["../../../src/server/ternSecureEdgeMiddleware.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EACV,UAAU,EACV,cAAc,EAEf,MAAM,sBAAsB,CAAC;AAO9B,OAAO,KAAK,EACV,gBAAgB,EACjB,MAAM,oBAAoB,CAAC;AAE5B,OAAO,KAAK,EAAE,cAAc,EAAC,WAAW,EAAE,MAAM,aAAa,CAAC;AAC9D,OAAO,EAAE,YAAY,EAAE,MAAM,aAAa,CAAC;AAe3C,OAAO,EAAE,KAAK,WAAW,EAAgB,MAAM,WAAW,CAAC;AAC3D,OAAO,EAAkB,KAAK,WAAW,EAAE,MAAM,YAAY,CAAC;AAC9D,OAAO,KAAK,EACV,sBAAsB,EACtB,0BAA0B,EAC1B,oBAAoB,EACrB,MAAM,SAAS,CAAC;AAGjB,MAAM,MAAM,oBAAoB,GAAG,UAAU,GAAG;IAC9C,gBAAgB,EAAE,WAAW,CAAC,QAAQ,CAAC,CAAC;IACxC,gBAAgB,EAAE,WAAW,CAAC,QAAQ,CAAC,CAAC;CACzC,CAAC;AAEF,MAAM,WAAW,cAAc;IAC7B,IAAI,OAAO,CAAC,oBAAoB,CAAC,CAAC;IAElC,OAAO,EAAE,WAAW,CAAC;CACtB;AAED,KAAK,iBAAiB,GAAG,CACvB,IAAI,EAAE,cAAc,EACpB,OAAO,EAAE,0BAA0B,EACnC,KAAK,EAAE,sBAAsB,KAC1B,oBAAoB,CAAC;AAE1B,MAAM,WAAW,iBAAkB,SAAQ,cAAc;IACvD,KAAK,CAAC,EAAE,OAAO,CAAC;IAChB,eAAe,CAAC,EAAE,gBAAgB,CAAC;CACpC;AACD,KAAK,yBAAyB,GAAG,CAC/B,GAAG,EAAE,WAAW,KACb,iBAAiB,GAAG,OAAO,CAAC,iBAAiB,CAAC,CAAC;AAEpD,UAAU,oBAAoB;IAC5B;;;OAGG;IACH,CAAC,OAAO,EAAE,iBAAiB,EAAE,OAAO,CAAC,EAAE,iBAAiB,GAAG,cAAc,CAAC;IAE1E;;;OAGG;IACH,CAAC,OAAO,EAAE,iBAAiB,EAAE,OAAO,CAAC,EAAE,yBAAyB,GAAG,cAAc,CAAC;IAElF;;;OAGG;IACH,CAAC,OAAO,CAAC,EAAE,iBAAiB,GAAG,cAAc,CAAC;IAC9C;;;OAGG;IACH,CAAC,OAAO,EAAE,0BAA0B,EAAE,KAAK,EAAE,sBAAsB,GAAG,oBAAoB,CAAC;CAC5F;AAmBD,eAAO,MAAM,oBAAoB,EA+F3B,oBAAoB,CAAC;AA0E3B,eAAO,MAAM,eAAe,GAAI,KAAK,MAAM,GAAG,GAAG,0BAIhD,CAAC"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@tern-secure/nextjs",
3
- "version": "5.2.0-canary.v20250919131424",
3
+ "version": "5.2.0-canary.v20250926170202",
4
4
  "publishConfig": {
5
5
  "access": "public"
6
6
  },
@@ -63,10 +63,10 @@
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.v20250919131424",
67
- "@tern-secure/react": "1.2.0-canary.v20250919131424",
68
- "@tern-secure/shared": "1.3.0-canary.v20250919131424",
69
- "@tern-secure/types": "1.1.0-canary.v20250919131424"
66
+ "@tern-secure/backend": "1.2.0-canary.v20250926170202",
67
+ "@tern-secure/react": "1.2.0-canary.v20250926170202",
68
+ "@tern-secure/shared": "1.3.0-canary.v20250926170202",
69
+ "@tern-secure/types": "1.1.0-canary.v20250926170202"
70
70
  },
71
71
  "peerDependencies": {
72
72
  "next": "^13.0.0 || ^14.0.0 || ^15.0.0",
@@ -1 +0,0 @@
1
- {"version":3,"sources":["../../../../src/app-router/admin/claude-authenticateRequestProcessor.ts"],"sourcesContent":["import type { TernSecureRequest } from '@tern-secure/backend';\nimport { constants } from '@tern-secure/backend';\n\nimport type { TernSecureHandlerOptions} from './types';\n\n/**\n * Request context for better type safety and clarity\n */\ninterface RequestProcessorContext extends TernSecureHandlerOptions {\n // header-based values\n sessionTokenInHeader: string | undefined;\n origin: string | undefined;\n host: string | undefined;\n forwardedHost: string | undefined;\n forwardedProto: string | undefined;\n referrer: string | undefined;\n userAgent: string | undefined;\n secFetchDest: string | undefined;\n accept: string | undefined;\n\n // cookie-based values\n sessionTokenInCookie: string | undefined;\n refreshTokenInCookie: string | undefined;\n csrfTokenInCookie: string | undefined;\n\n ternUrl: URL;\n}\n\n/**\n * Request processor utility class for common operations\n */\nclass RequestProcessorContext implements RequestProcessorContext {\n public constructor(\n private ternSecureRequest: TernSecureRequest,\n private options: TernSecureHandlerOptions,\n ) {\n this.initHeaderValues();\n this.initCookieValues();\n this.ternUrl = this.ternSecureRequest.ternUrl;\n }\n\n private initHeaderValues() {\n this.sessionTokenInHeader = this.parseAuthorizationHeader(\n this.getHeader(constants.Headers.Authorization),\n );\n this.origin = this.getHeader(constants.Headers.Origin);\n this.host = this.getHeader(constants.Headers.Host);\n this.forwardedHost = this.getHeader(constants.Headers.ForwardedHost);\n this.forwardedProto =\n this.getHeader(constants.Headers.CloudFrontForwardedProto) ||\n this.getHeader(constants.Headers.ForwardedProto);\n this.referrer = this.getHeader(constants.Headers.Referrer);\n this.userAgent = this.getHeader(constants.Headers.UserAgent);\n this.secFetchDest = this.getHeader(constants.Headers.SecFetchDest);\n this.accept = this.getHeader(constants.Headers.Accept);\n }\n\n private initCookieValues() {\n //this.sessionTokenInCookie = this.getCookie(this.options.cookies.name);\n this.csrfTokenInCookie = this.getCookie(constants.Cookies.CsrfToken);\n }\n\n private getQueryParam(name: string) {\n return this.ternSecureRequest.ternUrl.searchParams.get(name);\n }\n\n private getHeader(name: string) {\n return this.ternSecureRequest.headers.get(name) || undefined;\n }\n\n private getCookie(name: string) {\n return this.ternSecureRequest.cookies.get(name) || undefined;\n }\n\n private parseAuthorizationHeader(\n authorizationHeader: string | undefined | null,\n ): string | undefined {\n if (!authorizationHeader) {\n return undefined;\n }\n\n const [scheme, token] = authorizationHeader.split(' ', 2);\n\n if (!token) {\n // No scheme specified, treat the entire value as the token\n return scheme;\n }\n\n if (scheme === 'Bearer') {\n return token;\n }\n\n // Skip all other schemes\n return undefined;\n }\n}\n\nexport type { RequestProcessorContext };\n\nexport const createRequestProcessor = async (\n ternSecureRequest: TernSecureRequest,\n options: TernSecureHandlerOptions,\n): Promise<RequestProcessorContext> => {\n return new RequestProcessorContext(ternSecureRequest, options);\n};\n"],"mappings":";;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;AACA,qBAA0B;AA8B1B,MAAM,wBAA2D;AAAA,EACxD,YACG,mBACA,SACR;AAFQ;AACA;AAER,SAAK,iBAAiB;AACtB,SAAK,iBAAiB;AACtB,SAAK,UAAU,KAAK,kBAAkB;AAAA,EACxC;AAAA,EAEQ,mBAAmB;AACzB,SAAK,uBAAuB,KAAK;AAAA,MAC/B,KAAK,UAAU,yBAAU,QAAQ,aAAa;AAAA,IAChD;AACA,SAAK,SAAS,KAAK,UAAU,yBAAU,QAAQ,MAAM;AACrD,SAAK,OAAO,KAAK,UAAU,yBAAU,QAAQ,IAAI;AACjD,SAAK,gBAAgB,KAAK,UAAU,yBAAU,QAAQ,aAAa;AACnE,SAAK,iBACH,KAAK,UAAU,yBAAU,QAAQ,wBAAwB,KACzD,KAAK,UAAU,yBAAU,QAAQ,cAAc;AACjD,SAAK,WAAW,KAAK,UAAU,yBAAU,QAAQ,QAAQ;AACzD,SAAK,YAAY,KAAK,UAAU,yBAAU,QAAQ,SAAS;AAC3D,SAAK,eAAe,KAAK,UAAU,yBAAU,QAAQ,YAAY;AACjE,SAAK,SAAS,KAAK,UAAU,yBAAU,QAAQ,MAAM;AAAA,EACvD;AAAA,EAEQ,mBAAmB;AAEzB,SAAK,oBAAoB,KAAK,UAAU,yBAAU,QAAQ,SAAS;AAAA,EACrE;AAAA,EAEQ,cAAc,MAAc;AAClC,WAAO,KAAK,kBAAkB,QAAQ,aAAa,IAAI,IAAI;AAAA,EAC7D;AAAA,EAEQ,UAAU,MAAc;AAC9B,WAAO,KAAK,kBAAkB,QAAQ,IAAI,IAAI,KAAK;AAAA,EACrD;AAAA,EAEQ,UAAU,MAAc;AAC9B,WAAO,KAAK,kBAAkB,QAAQ,IAAI,IAAI,KAAK;AAAA,EACrD;AAAA,EAEQ,yBACN,qBACoB;AACpB,QAAI,CAAC,qBAAqB;AACxB,aAAO;AAAA,IACT;AAEA,UAAM,CAAC,QAAQ,KAAK,IAAI,oBAAoB,MAAM,KAAK,CAAC;AAExD,QAAI,CAAC,OAAO;AAEV,aAAO;AAAA,IACT;AAEA,QAAI,WAAW,UAAU;AACvB,aAAO;AAAA,IACT;AAGA,WAAO;AAAA,EACT;AACF;AAIO,MAAM,yBAAyB,OACpC,mBACA,YACqC;AACrC,SAAO,IAAI,wBAAwB,mBAAmB,OAAO;AAC/D;","names":[]}
@@ -1,63 +0,0 @@
1
- "use strict";
2
- var __defProp = Object.defineProperty;
3
- var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
4
- var __getOwnPropNames = Object.getOwnPropertyNames;
5
- var __hasOwnProp = Object.prototype.hasOwnProperty;
6
- var __export = (target, all) => {
7
- for (var name in all)
8
- __defProp(target, name, { get: all[name], enumerable: true });
9
- };
10
- var __copyProps = (to, from, except, desc) => {
11
- if (from && typeof from === "object" || typeof from === "function") {
12
- for (let key of __getOwnPropNames(from))
13
- if (!__hasOwnProp.call(to, key) && key !== except)
14
- __defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });
15
- }
16
- return to;
17
- };
18
- var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
19
- var handlerUtils_exports = {};
20
- __export(handlerUtils_exports, {
21
- RequestContextBuilder: () => RequestContextBuilder,
22
- ValidationPipeline: () => ValidationPipeline
23
- });
24
- module.exports = __toCommonJS(handlerUtils_exports);
25
- var import_fnValidators = require("./fnValidators");
26
- class RequestContextBuilder {
27
- static create(request) {
28
- const context = (0, import_fnValidators.createRequestContext)(request);
29
- const { pathSegments } = context;
30
- return {
31
- request,
32
- pathSegments,
33
- endpoint: pathSegments[2],
34
- subEndpoint: pathSegments[3],
35
- method: request.method
36
- };
37
- }
38
- }
39
- class ValidationPipeline {
40
- config;
41
- context;
42
- constructor(config, context) {
43
- this.config = config;
44
- this.context = context;
45
- }
46
- async execute() {
47
- const validators = (0, import_fnValidators.createValidators)(this.context);
48
- const corsError = await validators.validateCors(this.config.cors);
49
- if (corsError) return corsError;
50
- if (this.context.method === "OPTIONS") {
51
- return validators.createCorsOptionsResponse(this.config.cors);
52
- }
53
- const securityError = await validators.validateSecurity(this.config.security);
54
- if (securityError) return securityError;
55
- return null;
56
- }
57
- }
58
- // Annotate the CommonJS export names for ESM import in node:
59
- 0 && (module.exports = {
60
- RequestContextBuilder,
61
- ValidationPipeline
62
- });
63
- //# sourceMappingURL=handlerUtils.js.map
@@ -1 +0,0 @@
1
- {"version":3,"sources":["../../../../src/app-router/admin/handlerUtils.ts"],"sourcesContent":["import type { RequestContext } from './fnValidators';\nimport { createRequestContext, createValidators } from './fnValidators';\nimport type {\n AuthEndpoint,\n SessionSubEndpoint,\n TernSecureHandlerOptions,\n} from './types';\n\nexport interface HandlerContext {\n request: Request;\n pathSegments: string[];\n endpoint: AuthEndpoint;\n subEndpoint: SessionSubEndpoint | undefined;\n method: string;\n}\n\nexport class RequestContextBuilder {\n static create(request: Request): HandlerContext {\n const context = createRequestContext(request);\n const { pathSegments } = context;\n\n return {\n request,\n pathSegments,\n endpoint: pathSegments[2] as AuthEndpoint,\n subEndpoint: pathSegments[3] as SessionSubEndpoint | undefined,\n method: request.method,\n };\n }\n}\n\nexport class ValidationPipeline {\n private readonly config: Required<TernSecureHandlerOptions>;\n private readonly context: RequestContext;\n\n constructor(\n config: Required<TernSecureHandlerOptions>,\n context: RequestContext,\n ) {\n this.config = config;\n this.context = context;\n }\n\n async execute(): Promise<Response | null> {\n const validators = createValidators(this.context);\n\n const corsError = await validators.validateCors(this.config.cors);\n if (corsError) return corsError;\n\n if (this.context.method === 'OPTIONS') {\n return validators.createCorsOptionsResponse(this.config.cors);\n }\n\n const securityError = await validators.validateSecurity(this.config.security);\n if (securityError) return securityError;\n\n return null;\n }\n}\n\n"],"mappings":";;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AACA,0BAAuD;AAehD,MAAM,sBAAsB;AAAA,EACjC,OAAO,OAAO,SAAkC;AAC9C,UAAM,cAAU,0CAAqB,OAAO;AAC5C,UAAM,EAAE,aAAa,IAAI;AAEzB,WAAO;AAAA,MACL;AAAA,MACA;AAAA,MACA,UAAU,aAAa,CAAC;AAAA,MACxB,aAAa,aAAa,CAAC;AAAA,MAC3B,QAAQ,QAAQ;AAAA,IAClB;AAAA,EACF;AACF;AAEO,MAAM,mBAAmB;AAAA,EACb;AAAA,EACA;AAAA,EAEjB,YACE,QACA,SACA;AACA,SAAK,SAAS;AACd,SAAK,UAAU;AAAA,EACjB;AAAA,EAEA,MAAM,UAAoC;AACxC,UAAM,iBAAa,sCAAiB,KAAK,OAAO;AAEhD,UAAM,YAAY,MAAM,WAAW,aAAa,KAAK,OAAO,IAAI;AAChE,QAAI,UAAW,QAAO;AAEtB,QAAI,KAAK,QAAQ,WAAW,WAAW;AACrC,aAAO,WAAW,0BAA0B,KAAK,OAAO,IAAI;AAAA,IAC9D;AAEA,UAAM,gBAAgB,MAAM,WAAW,iBAAiB,KAAK,OAAO,QAAQ;AAC5E,QAAI,cAAe,QAAO;AAE1B,WAAO;AAAA,EACT;AACF;","names":[]}
@@ -1 +0,0 @@
1
- {"version":3,"sources":["../../../../src/app-router/admin/claude-authenticateRequestProcessor.ts"],"sourcesContent":["import type { TernSecureRequest } from '@tern-secure/backend';\nimport { constants } from '@tern-secure/backend';\n\nimport type { TernSecureHandlerOptions} from './types';\n\n/**\n * Request context for better type safety and clarity\n */\ninterface RequestProcessorContext extends TernSecureHandlerOptions {\n // header-based values\n sessionTokenInHeader: string | undefined;\n origin: string | undefined;\n host: string | undefined;\n forwardedHost: string | undefined;\n forwardedProto: string | undefined;\n referrer: string | undefined;\n userAgent: string | undefined;\n secFetchDest: string | undefined;\n accept: string | undefined;\n\n // cookie-based values\n sessionTokenInCookie: string | undefined;\n refreshTokenInCookie: string | undefined;\n csrfTokenInCookie: string | undefined;\n\n ternUrl: URL;\n}\n\n/**\n * Request processor utility class for common operations\n */\nclass RequestProcessorContext implements RequestProcessorContext {\n public constructor(\n private ternSecureRequest: TernSecureRequest,\n private options: TernSecureHandlerOptions,\n ) {\n this.initHeaderValues();\n this.initCookieValues();\n this.ternUrl = this.ternSecureRequest.ternUrl;\n }\n\n private initHeaderValues() {\n this.sessionTokenInHeader = this.parseAuthorizationHeader(\n this.getHeader(constants.Headers.Authorization),\n );\n this.origin = this.getHeader(constants.Headers.Origin);\n this.host = this.getHeader(constants.Headers.Host);\n this.forwardedHost = this.getHeader(constants.Headers.ForwardedHost);\n this.forwardedProto =\n this.getHeader(constants.Headers.CloudFrontForwardedProto) ||\n this.getHeader(constants.Headers.ForwardedProto);\n this.referrer = this.getHeader(constants.Headers.Referrer);\n this.userAgent = this.getHeader(constants.Headers.UserAgent);\n this.secFetchDest = this.getHeader(constants.Headers.SecFetchDest);\n this.accept = this.getHeader(constants.Headers.Accept);\n }\n\n private initCookieValues() {\n //this.sessionTokenInCookie = this.getCookie(this.options.cookies.name);\n this.csrfTokenInCookie = this.getCookie(constants.Cookies.CsrfToken);\n }\n\n private getQueryParam(name: string) {\n return this.ternSecureRequest.ternUrl.searchParams.get(name);\n }\n\n private getHeader(name: string) {\n return this.ternSecureRequest.headers.get(name) || undefined;\n }\n\n private getCookie(name: string) {\n return this.ternSecureRequest.cookies.get(name) || undefined;\n }\n\n private parseAuthorizationHeader(\n authorizationHeader: string | undefined | null,\n ): string | undefined {\n if (!authorizationHeader) {\n return undefined;\n }\n\n const [scheme, token] = authorizationHeader.split(' ', 2);\n\n if (!token) {\n // No scheme specified, treat the entire value as the token\n return scheme;\n }\n\n if (scheme === 'Bearer') {\n return token;\n }\n\n // Skip all other schemes\n return undefined;\n }\n}\n\nexport type { RequestProcessorContext };\n\nexport const createRequestProcessor = async (\n ternSecureRequest: TernSecureRequest,\n options: TernSecureHandlerOptions,\n): Promise<RequestProcessorContext> => {\n return new RequestProcessorContext(ternSecureRequest, options);\n};\n"],"mappings":"AACA,SAAS,iBAAiB;AA8B1B,MAAM,wBAA2D;AAAA,EACxD,YACG,mBACA,SACR;AAFQ;AACA;AAER,SAAK,iBAAiB;AACtB,SAAK,iBAAiB;AACtB,SAAK,UAAU,KAAK,kBAAkB;AAAA,EACxC;AAAA,EAEQ,mBAAmB;AACzB,SAAK,uBAAuB,KAAK;AAAA,MAC/B,KAAK,UAAU,UAAU,QAAQ,aAAa;AAAA,IAChD;AACA,SAAK,SAAS,KAAK,UAAU,UAAU,QAAQ,MAAM;AACrD,SAAK,OAAO,KAAK,UAAU,UAAU,QAAQ,IAAI;AACjD,SAAK,gBAAgB,KAAK,UAAU,UAAU,QAAQ,aAAa;AACnE,SAAK,iBACH,KAAK,UAAU,UAAU,QAAQ,wBAAwB,KACzD,KAAK,UAAU,UAAU,QAAQ,cAAc;AACjD,SAAK,WAAW,KAAK,UAAU,UAAU,QAAQ,QAAQ;AACzD,SAAK,YAAY,KAAK,UAAU,UAAU,QAAQ,SAAS;AAC3D,SAAK,eAAe,KAAK,UAAU,UAAU,QAAQ,YAAY;AACjE,SAAK,SAAS,KAAK,UAAU,UAAU,QAAQ,MAAM;AAAA,EACvD;AAAA,EAEQ,mBAAmB;AAEzB,SAAK,oBAAoB,KAAK,UAAU,UAAU,QAAQ,SAAS;AAAA,EACrE;AAAA,EAEQ,cAAc,MAAc;AAClC,WAAO,KAAK,kBAAkB,QAAQ,aAAa,IAAI,IAAI;AAAA,EAC7D;AAAA,EAEQ,UAAU,MAAc;AAC9B,WAAO,KAAK,kBAAkB,QAAQ,IAAI,IAAI,KAAK;AAAA,EACrD;AAAA,EAEQ,UAAU,MAAc;AAC9B,WAAO,KAAK,kBAAkB,QAAQ,IAAI,IAAI,KAAK;AAAA,EACrD;AAAA,EAEQ,yBACN,qBACoB;AACpB,QAAI,CAAC,qBAAqB;AACxB,aAAO;AAAA,IACT;AAEA,UAAM,CAAC,QAAQ,KAAK,IAAI,oBAAoB,MAAM,KAAK,CAAC;AAExD,QAAI,CAAC,OAAO;AAEV,aAAO;AAAA,IACT;AAEA,QAAI,WAAW,UAAU;AACvB,aAAO;AAAA,IACT;AAGA,WAAO;AAAA,EACT;AACF;AAIO,MAAM,yBAAyB,OACpC,mBACA,YACqC;AACrC,SAAO,IAAI,wBAAwB,mBAAmB,OAAO;AAC/D;","names":[]}
@@ -1,38 +0,0 @@
1
- import { createRequestContext, createValidators } from "./fnValidators";
2
- class RequestContextBuilder {
3
- static create(request) {
4
- const context = createRequestContext(request);
5
- const { pathSegments } = context;
6
- return {
7
- request,
8
- pathSegments,
9
- endpoint: pathSegments[2],
10
- subEndpoint: pathSegments[3],
11
- method: request.method
12
- };
13
- }
14
- }
15
- class ValidationPipeline {
16
- config;
17
- context;
18
- constructor(config, context) {
19
- this.config = config;
20
- this.context = context;
21
- }
22
- async execute() {
23
- const validators = createValidators(this.context);
24
- const corsError = await validators.validateCors(this.config.cors);
25
- if (corsError) return corsError;
26
- if (this.context.method === "OPTIONS") {
27
- return validators.createCorsOptionsResponse(this.config.cors);
28
- }
29
- const securityError = await validators.validateSecurity(this.config.security);
30
- if (securityError) return securityError;
31
- return null;
32
- }
33
- }
34
- export {
35
- RequestContextBuilder,
36
- ValidationPipeline
37
- };
38
- //# sourceMappingURL=handlerUtils.js.map
@@ -1 +0,0 @@
1
- {"version":3,"sources":["../../../../src/app-router/admin/handlerUtils.ts"],"sourcesContent":["import type { RequestContext } from './fnValidators';\nimport { createRequestContext, createValidators } from './fnValidators';\nimport type {\n AuthEndpoint,\n SessionSubEndpoint,\n TernSecureHandlerOptions,\n} from './types';\n\nexport interface HandlerContext {\n request: Request;\n pathSegments: string[];\n endpoint: AuthEndpoint;\n subEndpoint: SessionSubEndpoint | undefined;\n method: string;\n}\n\nexport class RequestContextBuilder {\n static create(request: Request): HandlerContext {\n const context = createRequestContext(request);\n const { pathSegments } = context;\n\n return {\n request,\n pathSegments,\n endpoint: pathSegments[2] as AuthEndpoint,\n subEndpoint: pathSegments[3] as SessionSubEndpoint | undefined,\n method: request.method,\n };\n }\n}\n\nexport class ValidationPipeline {\n private readonly config: Required<TernSecureHandlerOptions>;\n private readonly context: RequestContext;\n\n constructor(\n config: Required<TernSecureHandlerOptions>,\n context: RequestContext,\n ) {\n this.config = config;\n this.context = context;\n }\n\n async execute(): Promise<Response | null> {\n const validators = createValidators(this.context);\n\n const corsError = await validators.validateCors(this.config.cors);\n if (corsError) return corsError;\n\n if (this.context.method === 'OPTIONS') {\n return validators.createCorsOptionsResponse(this.config.cors);\n }\n\n const securityError = await validators.validateSecurity(this.config.security);\n if (securityError) return securityError;\n\n return null;\n }\n}\n\n"],"mappings":"AACA,SAAS,sBAAsB,wBAAwB;AAehD,MAAM,sBAAsB;AAAA,EACjC,OAAO,OAAO,SAAkC;AAC9C,UAAM,UAAU,qBAAqB,OAAO;AAC5C,UAAM,EAAE,aAAa,IAAI;AAEzB,WAAO;AAAA,MACL;AAAA,MACA;AAAA,MACA,UAAU,aAAa,CAAC;AAAA,MACxB,aAAa,aAAa,CAAC;AAAA,MAC3B,QAAQ,QAAQ;AAAA,IAClB;AAAA,EACF;AACF;AAEO,MAAM,mBAAmB;AAAA,EACb;AAAA,EACA;AAAA,EAEjB,YACE,QACA,SACA;AACA,SAAK,SAAS;AACd,SAAK,UAAU;AAAA,EACjB;AAAA,EAEA,MAAM,UAAoC;AACxC,UAAM,aAAa,iBAAiB,KAAK,OAAO;AAEhD,UAAM,YAAY,MAAM,WAAW,aAAa,KAAK,OAAO,IAAI;AAChE,QAAI,UAAW,QAAO;AAEtB,QAAI,KAAK,QAAQ,WAAW,WAAW;AACrC,aAAO,WAAW,0BAA0B,KAAK,OAAO,IAAI;AAAA,IAC9D;AAEA,UAAM,gBAAgB,MAAM,WAAW,iBAAiB,KAAK,OAAO,QAAQ;AAC5E,QAAI,cAAe,QAAO;AAE1B,WAAO;AAAA,EACT;AACF;","names":[]}
@@ -1 +0,0 @@
1
- {"version":3,"file":"claude-authenticateRequestProcessor.d.ts","sourceRoot":"","sources":["../../../../src/app-router/admin/claude-authenticateRequestProcessor.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,sBAAsB,CAAC;AAG9D,OAAO,KAAK,EAAE,wBAAwB,EAAC,MAAM,SAAS,CAAC;AAEvD;;GAEG;AACH,UAAU,uBAAwB,SAAQ,wBAAwB;IAEhE,oBAAoB,EAAE,MAAM,GAAG,SAAS,CAAC;IACzC,MAAM,EAAE,MAAM,GAAG,SAAS,CAAC;IAC3B,IAAI,EAAE,MAAM,GAAG,SAAS,CAAC;IACzB,aAAa,EAAE,MAAM,GAAG,SAAS,CAAC;IAClC,cAAc,EAAE,MAAM,GAAG,SAAS,CAAC;IACnC,QAAQ,EAAE,MAAM,GAAG,SAAS,CAAC;IAC7B,SAAS,EAAE,MAAM,GAAG,SAAS,CAAC;IAC9B,YAAY,EAAE,MAAM,GAAG,SAAS,CAAC;IACjC,MAAM,EAAE,MAAM,GAAG,SAAS,CAAC;IAG3B,oBAAoB,EAAE,MAAM,GAAG,SAAS,CAAC;IACzC,oBAAoB,EAAE,MAAM,GAAG,SAAS,CAAC;IACzC,iBAAiB,EAAE,MAAM,GAAG,SAAS,CAAC;IAEtC,OAAO,EAAE,GAAG,CAAC;CACd;AAED;;GAEG;AACH,cAAM,uBAAwB,YAAW,uBAAuB;IAE5D,OAAO,CAAC,iBAAiB;IACzB,OAAO,CAAC,OAAO;gBADP,iBAAiB,EAAE,iBAAiB,EACpC,OAAO,EAAE,wBAAwB;IAO3C,OAAO,CAAC,gBAAgB;IAgBxB,OAAO,CAAC,gBAAgB;IAKxB,OAAO,CAAC,aAAa;IAIrB,OAAO,CAAC,SAAS;IAIjB,OAAO,CAAC,SAAS;IAIjB,OAAO,CAAC,wBAAwB;CAqBjC;AAED,YAAY,EAAE,uBAAuB,EAAE,CAAC;AAExC,eAAO,MAAM,sBAAsB,GACjC,mBAAmB,iBAAiB,EACpC,SAAS,wBAAwB,KAChC,OAAO,CAAC,uBAAuB,CAEjC,CAAC"}
@@ -1,19 +0,0 @@
1
- import type { RequestContext } from './fnValidators';
2
- import type { AuthEndpoint, SessionSubEndpoint, TernSecureHandlerOptions } from './types';
3
- export interface HandlerContext {
4
- request: Request;
5
- pathSegments: string[];
6
- endpoint: AuthEndpoint;
7
- subEndpoint: SessionSubEndpoint | undefined;
8
- method: string;
9
- }
10
- export declare class RequestContextBuilder {
11
- static create(request: Request): HandlerContext;
12
- }
13
- export declare class ValidationPipeline {
14
- private readonly config;
15
- private readonly context;
16
- constructor(config: Required<TernSecureHandlerOptions>, context: RequestContext);
17
- execute(): Promise<Response | null>;
18
- }
19
- //# sourceMappingURL=handlerUtils.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"handlerUtils.d.ts","sourceRoot":"","sources":["../../../../src/app-router/admin/handlerUtils.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,gBAAgB,CAAC;AAErD,OAAO,KAAK,EACV,YAAY,EACZ,kBAAkB,EAClB,wBAAwB,EACzB,MAAM,SAAS,CAAC;AAEjB,MAAM,WAAW,cAAc;IAC7B,OAAO,EAAE,OAAO,CAAC;IACjB,YAAY,EAAE,MAAM,EAAE,CAAC;IACvB,QAAQ,EAAE,YAAY,CAAC;IACvB,WAAW,EAAE,kBAAkB,GAAG,SAAS,CAAC;IAC5C,MAAM,EAAE,MAAM,CAAC;CAChB;AAED,qBAAa,qBAAqB;IAChC,MAAM,CAAC,MAAM,CAAC,OAAO,EAAE,OAAO,GAAG,cAAc;CAYhD;AAED,qBAAa,kBAAkB;IAC7B,OAAO,CAAC,QAAQ,CAAC,MAAM,CAAqC;IAC5D,OAAO,CAAC,QAAQ,CAAC,OAAO,CAAiB;gBAGvC,MAAM,EAAE,QAAQ,CAAC,wBAAwB,CAAC,EAC1C,OAAO,EAAE,cAAc;IAMnB,OAAO,IAAI,OAAO,CAAC,QAAQ,GAAG,IAAI,CAAC;CAe1C"}