@every-app/sdk 0.0.9 → 0.0.11

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 (88) hide show
  1. package/dist/cloudflare/getLocalD1Url.d.ts.map +1 -0
  2. package/dist/cloudflare/index.d.ts +2 -0
  3. package/dist/cloudflare/index.d.ts.map +1 -0
  4. package/dist/cloudflare/index.js +1 -0
  5. package/dist/{client/lazyInitForWorkers.d.ts → cloudflare/lazyInit.d.ts} +1 -1
  6. package/dist/cloudflare/lazyInit.d.ts.map +1 -0
  7. package/dist/cloudflare/server/index.d.ts +2 -0
  8. package/dist/cloudflare/server/index.d.ts.map +1 -0
  9. package/dist/cloudflare/server/index.js +1 -0
  10. package/dist/core/authenticatedFetch.d.ts.map +1 -0
  11. package/dist/core/index.d.ts +4 -0
  12. package/dist/core/index.d.ts.map +1 -0
  13. package/dist/core/index.js +2 -0
  14. package/dist/{client/session-manager.d.ts → core/sessionManager.d.ts} +1 -1
  15. package/dist/core/sessionManager.d.ts.map +1 -0
  16. package/dist/{client → tanstack}/EmbeddedAppProvider.d.ts +1 -1
  17. package/dist/tanstack/EmbeddedAppProvider.d.ts.map +1 -0
  18. package/dist/{client → tanstack}/EmbeddedAppProvider.js +1 -1
  19. package/dist/tanstack/GatewayRequiredError.d.ts.map +1 -0
  20. package/dist/{client → tanstack}/_internal/useEveryAppSession.d.ts +1 -1
  21. package/dist/tanstack/_internal/useEveryAppSession.d.ts.map +1 -0
  22. package/dist/{client → tanstack}/_internal/useEveryAppSession.js +1 -1
  23. package/dist/tanstack/index.d.ts +4 -0
  24. package/dist/tanstack/index.d.ts.map +1 -0
  25. package/dist/tanstack/index.js +3 -0
  26. package/dist/{server/auth-config.d.ts → tanstack/server/authConfig.d.ts} +1 -1
  27. package/dist/tanstack/server/authConfig.d.ts.map +1 -0
  28. package/dist/{server → tanstack/server}/authenticateRequest.d.ts +10 -2
  29. package/dist/tanstack/server/authenticateRequest.d.ts.map +1 -0
  30. package/dist/{server → tanstack/server}/index.d.ts +1 -1
  31. package/dist/tanstack/server/index.d.ts.map +1 -0
  32. package/dist/{server → tanstack/server}/index.js +1 -1
  33. package/dist/tanstack/server/types.d.ts.map +1 -0
  34. package/dist/{client/_internal → tanstack}/useEveryAppRouter.d.ts +1 -1
  35. package/dist/tanstack/useEveryAppRouter.d.ts.map +1 -0
  36. package/dist/tanstack/useSessionTokenClientMiddleware.d.ts.map +1 -0
  37. package/package.json +18 -12
  38. package/src/cloudflare/index.ts +1 -0
  39. package/src/cloudflare/server/index.ts +1 -0
  40. package/src/core/index.ts +4 -0
  41. package/src/{client/session-manager.test.ts → core/sessionManager.test.ts} +4 -4
  42. package/src/{client → tanstack}/EmbeddedAppProvider.tsx +2 -2
  43. package/src/{client → tanstack}/_internal/useEveryAppSession.tsx +4 -1
  44. package/src/tanstack/index.ts +3 -0
  45. package/src/{server → tanstack/server}/authenticateRequest.test.ts +3 -4
  46. package/src/{server → tanstack/server}/authenticateRequest.ts +10 -2
  47. package/src/{server → tanstack/server}/index.ts +1 -1
  48. package/src/{client/_internal → tanstack}/useEveryAppRouter.tsx +2 -1
  49. package/src/{client → tanstack}/useSessionTokenClientMiddleware.ts +1 -1
  50. package/dist/client/EmbeddedAppProvider.d.ts.map +0 -1
  51. package/dist/client/GatewayRequiredError.d.ts.map +0 -1
  52. package/dist/client/_internal/useEveryAppRouter.d.ts.map +0 -1
  53. package/dist/client/_internal/useEveryAppSession.d.ts.map +0 -1
  54. package/dist/client/authenticatedFetch.d.ts.map +0 -1
  55. package/dist/client/index.d.ts +0 -8
  56. package/dist/client/index.d.ts.map +0 -1
  57. package/dist/client/index.js +0 -6
  58. package/dist/client/lazyInitForWorkers.d.ts.map +0 -1
  59. package/dist/client/session-manager.d.ts.map +0 -1
  60. package/dist/client/useSessionTokenClientMiddleware.d.ts.map +0 -1
  61. package/dist/server/auth-config.d.ts.map +0 -1
  62. package/dist/server/authenticateRequest.d.ts.map +0 -1
  63. package/dist/server/getLocalD1Url.d.ts.map +0 -1
  64. package/dist/server/index.d.ts.map +0 -1
  65. package/dist/server/types.d.ts.map +0 -1
  66. package/src/client/index.ts +0 -10
  67. /package/dist/{server → cloudflare}/getLocalD1Url.d.ts +0 -0
  68. /package/dist/{server → cloudflare}/getLocalD1Url.js +0 -0
  69. /package/dist/{client/lazyInitForWorkers.js → cloudflare/lazyInit.js} +0 -0
  70. /package/dist/{client → core}/authenticatedFetch.d.ts +0 -0
  71. /package/dist/{client → core}/authenticatedFetch.js +0 -0
  72. /package/dist/{client/session-manager.js → core/sessionManager.js} +0 -0
  73. /package/dist/{client → tanstack}/GatewayRequiredError.d.ts +0 -0
  74. /package/dist/{client → tanstack}/GatewayRequiredError.js +0 -0
  75. /package/dist/{server/auth-config.js → tanstack/server/authConfig.js} +0 -0
  76. /package/dist/{server → tanstack/server}/authenticateRequest.js +0 -0
  77. /package/dist/{server → tanstack/server}/types.d.ts +0 -0
  78. /package/dist/{server → tanstack/server}/types.js +0 -0
  79. /package/dist/{client/_internal → tanstack}/useEveryAppRouter.js +0 -0
  80. /package/dist/{client → tanstack}/useSessionTokenClientMiddleware.d.ts +0 -0
  81. /package/dist/{client → tanstack}/useSessionTokenClientMiddleware.js +0 -0
  82. /package/src/{server → cloudflare}/getLocalD1Url.ts +0 -0
  83. /package/src/{client/lazyInitForWorkers.ts → cloudflare/lazyInit.ts} +0 -0
  84. /package/src/{client → core}/authenticatedFetch.ts +0 -0
  85. /package/src/{client/session-manager.ts → core/sessionManager.ts} +0 -0
  86. /package/src/{client → tanstack}/GatewayRequiredError.tsx +0 -0
  87. /package/src/{server/auth-config.ts → tanstack/server/authConfig.ts} +0 -0
  88. /package/src/{server → tanstack/server}/types.ts +0 -0
@@ -0,0 +1 @@
1
+ {"version":3,"file":"getLocalD1Url.d.ts","sourceRoot":"","sources":["../../src/cloudflare/getLocalD1Url.ts"],"names":[],"mappings":"AAWA,wBAAgB,aAAa,kBAoD5B"}
@@ -0,0 +1,2 @@
1
+ export { lazyInitForWorkers } from "./lazyInit";
2
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/cloudflare/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,kBAAkB,EAAE,MAAM,YAAY,CAAC"}
@@ -0,0 +1 @@
1
+ export { lazyInitForWorkers } from "./lazyInit";
@@ -19,4 +19,4 @@
19
19
  * ```
20
20
  */
21
21
  export declare function lazyInitForWorkers<T extends object>(factory: () => T): T;
22
- //# sourceMappingURL=lazyInitForWorkers.d.ts.map
22
+ //# sourceMappingURL=lazyInit.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"lazyInit.d.ts","sourceRoot":"","sources":["../../src/cloudflare/lazyInit.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;GAmBG;AACH,wBAAgB,kBAAkB,CAAC,CAAC,SAAS,MAAM,EAAE,OAAO,EAAE,MAAM,CAAC,GAAG,CAAC,CA8CxE"}
@@ -0,0 +1,2 @@
1
+ export { getLocalD1Url } from "../getLocalD1Url";
2
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/cloudflare/server/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,aAAa,EAAE,MAAM,kBAAkB,CAAC"}
@@ -0,0 +1 @@
1
+ export { getLocalD1Url } from "../getLocalD1Url";
@@ -0,0 +1 @@
1
+ {"version":3,"file":"authenticatedFetch.d.ts","sourceRoot":"","sources":["../../src/core/authenticatedFetch.ts"],"names":[],"mappings":"AAQA;;GAEG;AACH,wBAAsB,eAAe,IAAI,OAAO,CAAC,MAAM,CAAC,CAevD;AAED;;GAEG;AACH,wBAAsB,kBAAkB,CACtC,KAAK,EAAE,WAAW,GAAG,GAAG,EACxB,IAAI,CAAC,EAAE,WAAW,GACjB,OAAO,CAAC,QAAQ,CAAC,CAUnB"}
@@ -0,0 +1,4 @@
1
+ export { SessionManager, isRunningInIframe } from "./sessionManager";
2
+ export type { SessionManagerConfig } from "./sessionManager";
3
+ export { authenticatedFetch, getSessionToken } from "./authenticatedFetch";
4
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/core/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,cAAc,EAAE,iBAAiB,EAAE,MAAM,kBAAkB,CAAC;AACrE,YAAY,EAAE,oBAAoB,EAAE,MAAM,kBAAkB,CAAC;AAE7D,OAAO,EAAE,kBAAkB,EAAE,eAAe,EAAE,MAAM,sBAAsB,CAAC"}
@@ -0,0 +1,2 @@
1
+ export { SessionManager, isRunningInIframe } from "./sessionManager";
2
+ export { authenticatedFetch, getSessionToken } from "./authenticatedFetch";
@@ -30,4 +30,4 @@ export declare class SessionManager {
30
30
  email: string;
31
31
  } | null;
32
32
  }
33
- //# sourceMappingURL=session-manager.d.ts.map
33
+ //# sourceMappingURL=sessionManager.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"sessionManager.d.ts","sourceRoot":"","sources":["../../src/core/sessionManager.ts"],"names":[],"mappings":"AAWA,MAAM,WAAW,oBAAoB;IACnC,KAAK,EAAE,MAAM,CAAC;CACf;AAMD;;;GAGG;AACH,wBAAgB,iBAAiB,IAAI,OAAO,CAQ3C;AAED,qBAAa,cAAc;IACzB,QAAQ,CAAC,YAAY,EAAE,MAAM,CAAC;IAC9B,QAAQ,CAAC,KAAK,EAAE,MAAM,CAAC;IACvB,QAAQ,CAAC,UAAU,EAAE,OAAO,CAAC;IAE7B,OAAO,CAAC,KAAK,CAA6B;IAC1C,OAAO,CAAC,cAAc,CAAgC;gBAE1C,MAAM,EAAE,oBAAoB;IAqBxC,OAAO,CAAC,mBAAmB;IAO3B,OAAO,CAAC,uBAAuB;IAuCzB,eAAe,IAAI,OAAO,CAAC,MAAM,CAAC;IA8ClC,QAAQ,IAAI,OAAO,CAAC,MAAM,CAAC;IAOjC,aAAa,IAAI;QACf,MAAM,EAAE,UAAU,GAAG,OAAO,GAAG,SAAS,GAAG,YAAY,CAAC;QACxD,KAAK,EAAE,MAAM,GAAG,IAAI,CAAC;KACtB;IAgBD;;;OAGG;IACH,OAAO,IAAI;QAAE,MAAM,EAAE,MAAM,CAAC;QAAC,KAAK,EAAE,MAAM,CAAA;KAAE,GAAG,IAAI;CAwBpD"}
@@ -1,5 +1,5 @@
1
1
  import React from "react";
2
- import { SessionManagerConfig } from "./session-manager";
2
+ import { SessionManagerConfig } from "../core/sessionManager";
3
3
  interface EmbeddedProviderConfig extends SessionManagerConfig {
4
4
  children: React.ReactNode;
5
5
  }
@@ -0,0 +1 @@
1
+ {"version":3,"file":"EmbeddedAppProvider.d.ts","sourceRoot":"","sources":["../../src/tanstack/EmbeddedAppProvider.tsx"],"names":[],"mappings":"AAAA,OAAO,KAA6C,MAAM,OAAO,CAAC;AAClE,OAAO,EAAkB,oBAAoB,EAAE,MAAM,wBAAwB,CAAC;AAK9E,UAAU,sBAAuB,SAAQ,oBAAoB;IAC3D,QAAQ,EAAE,KAAK,CAAC,SAAS,CAAC;CAC3B;AAUD,wBAAgB,mBAAmB,CAAC,EAClC,QAAQ,EACR,GAAG,MAAM,EACV,EAAE,sBAAsB,kDA6BxB;AAED;;;;;;;;;;;;;;;;;GAiBG;AACH,wBAAgB,cAAc,IAAI;IAAE,MAAM,EAAE,MAAM,CAAC;IAAC,KAAK,EAAE,MAAM,CAAA;CAAE,GAAG,IAAI,CAmBzE"}
@@ -1,7 +1,7 @@
1
1
  import { jsx as _jsx } from "react/jsx-runtime";
2
2
  import { createContext, useContext, useMemo } from "react";
3
3
  import { useEveryAppSession } from "./_internal/useEveryAppSession";
4
- import { useEveryAppRouter } from "./_internal/useEveryAppRouter";
4
+ import { useEveryAppRouter } from "./useEveryAppRouter";
5
5
  import { GatewayRequiredError } from "./GatewayRequiredError";
6
6
  const EmbeddedAppContext = createContext(null);
7
7
  export function EmbeddedAppProvider({ children, ...config }) {
@@ -0,0 +1 @@
1
+ {"version":3,"file":"GatewayRequiredError.d.ts","sourceRoot":"","sources":["../../src/tanstack/GatewayRequiredError.tsx"],"names":[],"mappings":"AAEA,UAAU,yBAAyB;IACjC;;OAEG;IACH,aAAa,EAAE,MAAM,CAAC;IACtB;;OAEG;IACH,KAAK,EAAE,MAAM,CAAC;CACf;AAmFD;;;;;;GAMG;AACH,wBAAgB,oBAAoB,CAAC,EACnC,aAAa,EACb,KAAK,GACN,EAAE,yBAAyB,2CA6C3B"}
@@ -1,4 +1,4 @@
1
- import { SessionManager, SessionManagerConfig } from "../session-manager";
1
+ import { SessionManager, SessionManagerConfig } from "../../core/sessionManager";
2
2
  interface UseEveryAppSessionParams {
3
3
  sessionManagerConfig: SessionManagerConfig;
4
4
  }
@@ -0,0 +1 @@
1
+ {"version":3,"file":"useEveryAppSession.d.ts","sourceRoot":"","sources":["../../../src/tanstack/_internal/useEveryAppSession.tsx"],"names":[],"mappings":"AACA,OAAO,EACL,cAAc,EACd,oBAAoB,EACrB,MAAM,2BAA2B,CAAC;AAEnC,UAAU,wBAAwB;IAChC,oBAAoB,EAAE,oBAAoB,CAAC;CAC5C;AAED,wBAAgB,kBAAkB,CAAC,EACjC,oBAAoB,GACrB,EAAE,wBAAwB;;;;;;EAyC1B"}
@@ -1,5 +1,5 @@
1
1
  import { useEffect, useRef, useState } from "react";
2
- import { SessionManager } from "../session-manager";
2
+ import { SessionManager, } from "../../core/sessionManager";
3
3
  export function useEveryAppSession({ sessionManagerConfig, }) {
4
4
  const sessionManagerRef = useRef(null);
5
5
  const [sessionTokenState, setSessionTokenState] = useState({
@@ -0,0 +1,4 @@
1
+ export { useSessionTokenClientMiddleware } from "./useSessionTokenClientMiddleware";
2
+ export { useEveryAppRouter } from "./useEveryAppRouter";
3
+ export { EmbeddedAppProvider, useCurrentUser } from "./EmbeddedAppProvider";
4
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/tanstack/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,+BAA+B,EAAE,MAAM,mCAAmC,CAAC;AACpF,OAAO,EAAE,iBAAiB,EAAE,MAAM,qBAAqB,CAAC;AACxD,OAAO,EAAE,mBAAmB,EAAE,cAAc,EAAE,MAAM,uBAAuB,CAAC"}
@@ -0,0 +1,3 @@
1
+ export { useSessionTokenClientMiddleware } from "./useSessionTokenClientMiddleware";
2
+ export { useEveryAppRouter } from "./useEveryAppRouter";
3
+ export { EmbeddedAppProvider, useCurrentUser } from "./EmbeddedAppProvider";
@@ -1,3 +1,3 @@
1
1
  import type { AuthConfig } from "./types";
2
2
  export declare function getAuthConfig(): AuthConfig;
3
- //# sourceMappingURL=auth-config.d.ts.map
3
+ //# sourceMappingURL=authConfig.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"authConfig.d.ts","sourceRoot":"","sources":["../../../src/tanstack/server/authConfig.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,SAAS,CAAC;AAG1C,wBAAgB,aAAa,IAAI,UAAU,CAK1C"}
@@ -1,12 +1,20 @@
1
1
  import type { AuthConfig } from "./types";
2
+ /**
3
+ * JWT payload structure for embedded app session tokens.
4
+ * Contains minimal claims for security - only what's needed for authentication.
5
+ */
2
6
  interface SessionTokenPayload {
7
+ /** User ID (subject claim) */
3
8
  sub: string;
9
+ /** Gateway URL (issuer claim) */
4
10
  iss: string;
11
+ /** App ID (audience claim) - scopes token to specific app */
5
12
  aud: string;
13
+ /** Expiration timestamp */
6
14
  exp: number;
15
+ /** Issued at timestamp */
7
16
  iat: number;
8
- appId?: string;
9
- permissions?: string[];
17
+ /** User email - used for user provisioning in apps */
10
18
  email?: string;
11
19
  }
12
20
  export declare function authenticateRequest(authConfig: AuthConfig, providedRequest?: Request): Promise<SessionTokenPayload | null>;
@@ -0,0 +1 @@
1
+ {"version":3,"file":"authenticateRequest.d.ts","sourceRoot":"","sources":["../../../src/tanstack/server/authenticateRequest.ts"],"names":[],"mappings":"AAQA,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,SAAS,CAAC;AAG1C;;;GAGG;AACH,UAAU,mBAAmB;IAC3B,8BAA8B;IAC9B,GAAG,EAAE,MAAM,CAAC;IACZ,iCAAiC;IACjC,GAAG,EAAE,MAAM,CAAC;IACZ,6DAA6D;IAC7D,GAAG,EAAE,MAAM,CAAC;IACZ,2BAA2B;IAC3B,GAAG,EAAE,MAAM,CAAC;IACZ,0BAA0B;IAC1B,GAAG,EAAE,MAAM,CAAC;IACZ,sDAAsD;IACtD,KAAK,CAAC,EAAE,MAAM,CAAC;CAChB;AAED,wBAAsB,mBAAmB,CACvC,UAAU,EAAE,UAAU,EACtB,eAAe,CAAC,EAAE,OAAO,GACxB,OAAO,CAAC,mBAAmB,GAAG,IAAI,CAAC,CA+BrC;AAyCD;;;;;GAKG;AACH,wBAAgB,kBAAkB,CAAC,UAAU,EAAE,MAAM,GAAG,IAAI,GAAG,MAAM,GAAG,IAAI,CAK3E"}
@@ -1,4 +1,4 @@
1
1
  export { authenticateRequest } from "./authenticateRequest";
2
2
  export type { AuthConfig } from "./types";
3
- export { getAuthConfig } from "./auth-config";
3
+ export { getAuthConfig } from "./authConfig";
4
4
  //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/tanstack/server/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,mBAAmB,EAAE,MAAM,uBAAuB,CAAC;AAC5D,YAAY,EAAE,UAAU,EAAE,MAAM,SAAS,CAAC;AAC1C,OAAO,EAAE,aAAa,EAAE,MAAM,cAAc,CAAC"}
@@ -1,2 +1,2 @@
1
1
  export { authenticateRequest } from "./authenticateRequest";
2
- export { getAuthConfig } from "./auth-config";
2
+ export { getAuthConfig } from "./authConfig";
@@ -0,0 +1 @@
1
+ {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../src/tanstack/server/types.ts"],"names":[],"mappings":"AAAA,MAAM,WAAW,UAAU;IACzB,MAAM,EAAE,MAAM,CAAC;IACf,QAAQ,EAAE,MAAM,CAAC;CAClB"}
@@ -1,4 +1,4 @@
1
- import { SessionManager } from "../session-manager";
1
+ import { SessionManager } from "../core/sessionManager";
2
2
  interface UseEveryAppRouterParams {
3
3
  sessionManager: SessionManager | null;
4
4
  }
@@ -0,0 +1 @@
1
+ {"version":3,"file":"useEveryAppRouter.d.ts","sourceRoot":"","sources":["../../src/tanstack/useEveryAppRouter.tsx"],"names":[],"mappings":"AACA,OAAO,EAAE,cAAc,EAAE,MAAM,wBAAwB,CAAC;AAGxD,UAAU,uBAAuB;IAC/B,cAAc,EAAE,cAAc,GAAG,IAAI,CAAC;CACvC;AAED,wBAAgB,iBAAiB,CAAC,EAAE,cAAc,EAAE,EAAE,uBAAuB,QAmE5E"}
@@ -0,0 +1 @@
1
+ {"version":3,"file":"useSessionTokenClientMiddleware.d.ts","sourceRoot":"","sources":["../../src/tanstack/useSessionTokenClientMiddleware.ts"],"names":[],"mappings":"AAGA,eAAO,MAAM,+BAA+B,6GA2B1C,CAAC"}
package/package.json CHANGED
@@ -1,21 +1,27 @@
1
1
  {
2
2
  "name": "@every-app/sdk",
3
- "version": "0.0.9",
3
+ "version": "0.0.11",
4
4
  "type": "module",
5
- "main": "./dist/client/index.js",
6
- "types": "./dist/client/index.d.ts",
7
5
  "exports": {
8
- "./client": {
9
- "types": "./dist/client/index.d.ts",
10
- "default": "./dist/client/index.js"
6
+ "./core": {
7
+ "types": "./dist/core/index.d.ts",
8
+ "default": "./dist/core/index.js"
11
9
  },
12
- "./server": {
13
- "types": "./dist/server/index.d.ts",
14
- "default": "./dist/server/index.js"
10
+ "./tanstack": {
11
+ "types": "./dist/tanstack/index.d.ts",
12
+ "default": "./dist/tanstack/index.js"
15
13
  },
16
- "./server/getLocalD1Url": {
17
- "types": "./dist/server/getLocalD1Url.d.ts",
18
- "default": "./dist/server/getLocalD1Url.js"
14
+ "./tanstack/server": {
15
+ "types": "./dist/tanstack/server/index.d.ts",
16
+ "default": "./dist/tanstack/server/index.js"
17
+ },
18
+ "./cloudflare": {
19
+ "types": "./dist/cloudflare/index.d.ts",
20
+ "default": "./dist/cloudflare/index.js"
21
+ },
22
+ "./cloudflare/server": {
23
+ "types": "./dist/cloudflare/server/index.d.ts",
24
+ "default": "./dist/cloudflare/server/index.js"
19
25
  }
20
26
  },
21
27
  "files": [
@@ -0,0 +1 @@
1
+ export { lazyInitForWorkers } from "./lazyInit";
@@ -0,0 +1 @@
1
+ export { getLocalD1Url } from "../getLocalD1Url";
@@ -0,0 +1,4 @@
1
+ export { SessionManager, isRunningInIframe } from "./sessionManager";
2
+ export type { SessionManagerConfig } from "./sessionManager";
3
+
4
+ export { authenticatedFetch, getSessionToken } from "./authenticatedFetch";
@@ -4,7 +4,7 @@ import { describe, it, expect, vi, beforeEach, afterEach } from "vitest";
4
4
  vi.stubEnv("VITE_GATEWAY_URL", "https://gateway.example.com");
5
5
 
6
6
  describe("SessionManager", () => {
7
- let SessionManager: typeof import("./session-manager").SessionManager;
7
+ let SessionManager: typeof import("./sessionManager").SessionManager;
8
8
  let mockPostMessage: ReturnType<typeof vi.fn>;
9
9
  let messageHandler: ((event: MessageEvent) => void) | null = null;
10
10
  let addEventListenerSpy: ReturnType<typeof vi.fn>;
@@ -74,7 +74,7 @@ describe("SessionManager", () => {
74
74
  });
75
75
 
76
76
  // Import fresh module
77
- const module = await import("./session-manager");
77
+ const module = await import("./sessionManager");
78
78
  SessionManager = module.SessionManager;
79
79
  });
80
80
 
@@ -97,7 +97,7 @@ describe("SessionManager", () => {
97
97
  vi.resetModules();
98
98
  vi.stubEnv("VITE_GATEWAY_URL", "");
99
99
 
100
- const module = await import("./session-manager");
100
+ const module = await import("./sessionManager");
101
101
 
102
102
  expect(() => new module.SessionManager({ appId: "test-app" })).toThrow(
103
103
  "[SessionManager] VITE_GATEWAY_URL env var is required.",
@@ -108,7 +108,7 @@ describe("SessionManager", () => {
108
108
  vi.resetModules();
109
109
  vi.stubEnv("VITE_GATEWAY_URL", "not-a-valid-url");
110
110
 
111
- const module = await import("./session-manager");
111
+ const module = await import("./sessionManager");
112
112
 
113
113
  expect(() => new module.SessionManager({ appId: "test-app" })).toThrow(
114
114
  "[SessionManager] Invalid gateway URL: not-a-valid-url",
@@ -1,7 +1,7 @@
1
1
  import React, { createContext, useContext, useMemo } from "react";
2
- import { SessionManager, SessionManagerConfig } from "./session-manager";
2
+ import { SessionManager, SessionManagerConfig } from "../core/sessionManager";
3
3
  import { useEveryAppSession } from "./_internal/useEveryAppSession";
4
- import { useEveryAppRouter } from "./_internal/useEveryAppRouter";
4
+ import { useEveryAppRouter } from "./useEveryAppRouter";
5
5
  import { GatewayRequiredError } from "./GatewayRequiredError";
6
6
 
7
7
  interface EmbeddedProviderConfig extends SessionManagerConfig {
@@ -1,5 +1,8 @@
1
1
  import { useEffect, useRef, useState } from "react";
2
- import { SessionManager, SessionManagerConfig } from "../session-manager";
2
+ import {
3
+ SessionManager,
4
+ SessionManagerConfig,
5
+ } from "../../core/sessionManager";
3
6
 
4
7
  interface UseEveryAppSessionParams {
5
8
  sessionManagerConfig: SessionManagerConfig;
@@ -0,0 +1,3 @@
1
+ export { useSessionTokenClientMiddleware } from "./useSessionTokenClientMiddleware";
2
+ export { useEveryAppRouter } from "./useEveryAppRouter";
3
+ export { EmbeddedAppProvider, useCurrentUser } from "./EmbeddedAppProvider";
@@ -59,10 +59,10 @@ describe("authenticateRequest", () => {
59
59
  });
60
60
 
61
61
  async function createValidToken(overrides: Record<string, unknown> = {}) {
62
+ // Token now only contains minimal claims: sub, email, iss, aud, exp, iat
63
+ // appId is represented by aud claim, permissions and embeddedApp were removed
62
64
  const jwt = await new SignJWT({
63
65
  email: "user@example.com",
64
- appId: "test-app",
65
- permissions: ["read", "write"],
66
66
  ...overrides,
67
67
  })
68
68
  .setProtectedHeader({ alg: "RS256" })
@@ -127,9 +127,8 @@ describe("authenticateRequest", () => {
127
127
  expect(result).not.toBeNull();
128
128
  expect(result!.sub).toBe("user-123");
129
129
  expect(result!.email).toBe("user@example.com");
130
- expect(result!.appId).toBe("test-app");
131
- expect(result!.permissions).toEqual(["read", "write"]);
132
130
  expect(result!.iss).toBe(authConfig.issuer);
131
+ // audience contains the appId
133
132
  expect(result!.aud).toBe(authConfig.audience);
134
133
  });
135
134
 
@@ -9,14 +9,22 @@ import {
9
9
  import type { AuthConfig } from "./types";
10
10
  import { env } from "cloudflare:workers";
11
11
 
12
+ /**
13
+ * JWT payload structure for embedded app session tokens.
14
+ * Contains minimal claims for security - only what's needed for authentication.
15
+ */
12
16
  interface SessionTokenPayload {
17
+ /** User ID (subject claim) */
13
18
  sub: string;
19
+ /** Gateway URL (issuer claim) */
14
20
  iss: string;
21
+ /** App ID (audience claim) - scopes token to specific app */
15
22
  aud: string;
23
+ /** Expiration timestamp */
16
24
  exp: number;
25
+ /** Issued at timestamp */
17
26
  iat: number;
18
- appId?: string;
19
- permissions?: string[];
27
+ /** User email - used for user provisioning in apps */
20
28
  email?: string;
21
29
  }
22
30
 
@@ -1,3 +1,3 @@
1
1
  export { authenticateRequest } from "./authenticateRequest";
2
2
  export type { AuthConfig } from "./types";
3
- export { getAuthConfig } from "./auth-config";
3
+ export { getAuthConfig } from "./authConfig";
@@ -1,10 +1,11 @@
1
1
  import { useEffect } from "react";
2
- import { SessionManager } from "../session-manager";
2
+ import { SessionManager } from "../core/sessionManager";
3
3
  import { useRouter } from "@tanstack/react-router";
4
4
 
5
5
  interface UseEveryAppRouterParams {
6
6
  sessionManager: SessionManager | null;
7
7
  }
8
+
8
9
  export function useEveryAppRouter({ sessionManager }: UseEveryAppRouterParams) {
9
10
  const router = useRouter();
10
11
  // Route synchronization effect
@@ -1,5 +1,5 @@
1
1
  import { createMiddleware } from "@tanstack/react-start";
2
- import type { SessionManager } from "./session-manager";
2
+ import type { SessionManager } from "../core/sessionManager";
3
3
 
4
4
  export const useSessionTokenClientMiddleware = createMiddleware({
5
5
  type: "function",
@@ -1 +0,0 @@
1
- {"version":3,"file":"EmbeddedAppProvider.d.ts","sourceRoot":"","sources":["../../src/client/EmbeddedAppProvider.tsx"],"names":[],"mappings":"AAAA,OAAO,KAA6C,MAAM,OAAO,CAAC;AAClE,OAAO,EAAkB,oBAAoB,EAAE,MAAM,mBAAmB,CAAC;AAKzE,UAAU,sBAAuB,SAAQ,oBAAoB;IAC3D,QAAQ,EAAE,KAAK,CAAC,SAAS,CAAC;CAC3B;AAUD,wBAAgB,mBAAmB,CAAC,EAClC,QAAQ,EACR,GAAG,MAAM,EACV,EAAE,sBAAsB,kDA6BxB;AAED;;;;;;;;;;;;;;;;;GAiBG;AACH,wBAAgB,cAAc,IAAI;IAAE,MAAM,EAAE,MAAM,CAAC;IAAC,KAAK,EAAE,MAAM,CAAA;CAAE,GAAG,IAAI,CAmBzE"}
@@ -1 +0,0 @@
1
- {"version":3,"file":"GatewayRequiredError.d.ts","sourceRoot":"","sources":["../../src/client/GatewayRequiredError.tsx"],"names":[],"mappings":"AAEA,UAAU,yBAAyB;IACjC;;OAEG;IACH,aAAa,EAAE,MAAM,CAAC;IACtB;;OAEG;IACH,KAAK,EAAE,MAAM,CAAC;CACf;AAmFD;;;;;;GAMG;AACH,wBAAgB,oBAAoB,CAAC,EACnC,aAAa,EACb,KAAK,GACN,EAAE,yBAAyB,2CA6C3B"}
@@ -1 +0,0 @@
1
- {"version":3,"file":"useEveryAppRouter.d.ts","sourceRoot":"","sources":["../../../src/client/_internal/useEveryAppRouter.tsx"],"names":[],"mappings":"AACA,OAAO,EAAE,cAAc,EAAE,MAAM,oBAAoB,CAAC;AAGpD,UAAU,uBAAuB;IAC/B,cAAc,EAAE,cAAc,GAAG,IAAI,CAAC;CACvC;AACD,wBAAgB,iBAAiB,CAAC,EAAE,cAAc,EAAE,EAAE,uBAAuB,QAmE5E"}
@@ -1 +0,0 @@
1
- {"version":3,"file":"useEveryAppSession.d.ts","sourceRoot":"","sources":["../../../src/client/_internal/useEveryAppSession.tsx"],"names":[],"mappings":"AACA,OAAO,EAAE,cAAc,EAAE,oBAAoB,EAAE,MAAM,oBAAoB,CAAC;AAE1E,UAAU,wBAAwB;IAChC,oBAAoB,EAAE,oBAAoB,CAAC;CAC5C;AAED,wBAAgB,kBAAkB,CAAC,EACjC,oBAAoB,GACrB,EAAE,wBAAwB;;;;;;EAyC1B"}
@@ -1 +0,0 @@
1
- {"version":3,"file":"authenticatedFetch.d.ts","sourceRoot":"","sources":["../../src/client/authenticatedFetch.ts"],"names":[],"mappings":"AAQA;;GAEG;AACH,wBAAsB,eAAe,IAAI,OAAO,CAAC,MAAM,CAAC,CAevD;AAED;;GAEG;AACH,wBAAsB,kBAAkB,CACtC,KAAK,EAAE,WAAW,GAAG,GAAG,EACxB,IAAI,CAAC,EAAE,WAAW,GACjB,OAAO,CAAC,QAAQ,CAAC,CAUnB"}
@@ -1,8 +0,0 @@
1
- export { SessionManager, isRunningInIframe } from "./session-manager";
2
- export type { SessionManagerConfig } from "./session-manager";
3
- export { useSessionTokenClientMiddleware } from "./useSessionTokenClientMiddleware";
4
- export { EmbeddedAppProvider, useCurrentUser } from "./EmbeddedAppProvider";
5
- export { GatewayRequiredError } from "./GatewayRequiredError";
6
- export { lazyInitForWorkers } from "./lazyInitForWorkers";
7
- export { authenticatedFetch, getSessionToken } from "./authenticatedFetch";
8
- //# sourceMappingURL=index.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/client/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,cAAc,EAAE,iBAAiB,EAAE,MAAM,mBAAmB,CAAC;AACtE,YAAY,EAAE,oBAAoB,EAAE,MAAM,mBAAmB,CAAC;AAC9D,OAAO,EAAE,+BAA+B,EAAE,MAAM,mCAAmC,CAAC;AAEpF,OAAO,EAAE,mBAAmB,EAAE,cAAc,EAAE,MAAM,uBAAuB,CAAC;AAC5E,OAAO,EAAE,oBAAoB,EAAE,MAAM,wBAAwB,CAAC;AAE9D,OAAO,EAAE,kBAAkB,EAAE,MAAM,sBAAsB,CAAC;AAE1D,OAAO,EAAE,kBAAkB,EAAE,eAAe,EAAE,MAAM,sBAAsB,CAAC"}
@@ -1,6 +0,0 @@
1
- export { SessionManager, isRunningInIframe } from "./session-manager";
2
- export { useSessionTokenClientMiddleware } from "./useSessionTokenClientMiddleware";
3
- export { EmbeddedAppProvider, useCurrentUser } from "./EmbeddedAppProvider";
4
- export { GatewayRequiredError } from "./GatewayRequiredError";
5
- export { lazyInitForWorkers } from "./lazyInitForWorkers";
6
- export { authenticatedFetch, getSessionToken } from "./authenticatedFetch";
@@ -1 +0,0 @@
1
- {"version":3,"file":"lazyInitForWorkers.d.ts","sourceRoot":"","sources":["../../src/client/lazyInitForWorkers.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;GAmBG;AACH,wBAAgB,kBAAkB,CAAC,CAAC,SAAS,MAAM,EAAE,OAAO,EAAE,MAAM,CAAC,GAAG,CAAC,CA8CxE"}
@@ -1 +0,0 @@
1
- {"version":3,"file":"session-manager.d.ts","sourceRoot":"","sources":["../../src/client/session-manager.ts"],"names":[],"mappings":"AAWA,MAAM,WAAW,oBAAoB;IACnC,KAAK,EAAE,MAAM,CAAC;CACf;AAMD;;;GAGG;AACH,wBAAgB,iBAAiB,IAAI,OAAO,CAQ3C;AAED,qBAAa,cAAc;IACzB,QAAQ,CAAC,YAAY,EAAE,MAAM,CAAC;IAC9B,QAAQ,CAAC,KAAK,EAAE,MAAM,CAAC;IACvB,QAAQ,CAAC,UAAU,EAAE,OAAO,CAAC;IAE7B,OAAO,CAAC,KAAK,CAA6B;IAC1C,OAAO,CAAC,cAAc,CAAgC;gBAE1C,MAAM,EAAE,oBAAoB;IAqBxC,OAAO,CAAC,mBAAmB;IAO3B,OAAO,CAAC,uBAAuB;IAuCzB,eAAe,IAAI,OAAO,CAAC,MAAM,CAAC;IA8ClC,QAAQ,IAAI,OAAO,CAAC,MAAM,CAAC;IAOjC,aAAa,IAAI;QACf,MAAM,EAAE,UAAU,GAAG,OAAO,GAAG,SAAS,GAAG,YAAY,CAAC;QACxD,KAAK,EAAE,MAAM,GAAG,IAAI,CAAC;KACtB;IAgBD;;;OAGG;IACH,OAAO,IAAI;QAAE,MAAM,EAAE,MAAM,CAAC;QAAC,KAAK,EAAE,MAAM,CAAA;KAAE,GAAG,IAAI;CAwBpD"}
@@ -1 +0,0 @@
1
- {"version":3,"file":"useSessionTokenClientMiddleware.d.ts","sourceRoot":"","sources":["../../src/client/useSessionTokenClientMiddleware.ts"],"names":[],"mappings":"AAGA,eAAO,MAAM,+BAA+B,6GA2B1C,CAAC"}
@@ -1 +0,0 @@
1
- {"version":3,"file":"auth-config.d.ts","sourceRoot":"","sources":["../../src/server/auth-config.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,SAAS,CAAC;AAG1C,wBAAgB,aAAa,IAAI,UAAU,CAK1C"}
@@ -1 +0,0 @@
1
- {"version":3,"file":"authenticateRequest.d.ts","sourceRoot":"","sources":["../../src/server/authenticateRequest.ts"],"names":[],"mappings":"AAQA,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,SAAS,CAAC;AAG1C,UAAU,mBAAmB;IAC3B,GAAG,EAAE,MAAM,CAAC;IACZ,GAAG,EAAE,MAAM,CAAC;IACZ,GAAG,EAAE,MAAM,CAAC;IACZ,GAAG,EAAE,MAAM,CAAC;IACZ,GAAG,EAAE,MAAM,CAAC;IACZ,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,WAAW,CAAC,EAAE,MAAM,EAAE,CAAC;IACvB,KAAK,CAAC,EAAE,MAAM,CAAC;CAChB;AAED,wBAAsB,mBAAmB,CACvC,UAAU,EAAE,UAAU,EACtB,eAAe,CAAC,EAAE,OAAO,GACxB,OAAO,CAAC,mBAAmB,GAAG,IAAI,CAAC,CA+BrC;AAyCD;;;;;GAKG;AACH,wBAAgB,kBAAkB,CAAC,UAAU,EAAE,MAAM,GAAG,IAAI,GAAG,MAAM,GAAG,IAAI,CAK3E"}
@@ -1 +0,0 @@
1
- {"version":3,"file":"getLocalD1Url.d.ts","sourceRoot":"","sources":["../../src/server/getLocalD1Url.ts"],"names":[],"mappings":"AAWA,wBAAgB,aAAa,kBAoD5B"}
@@ -1 +0,0 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/server/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,mBAAmB,EAAE,MAAM,uBAAuB,CAAC;AAC5D,YAAY,EAAE,UAAU,EAAE,MAAM,SAAS,CAAC;AAC1C,OAAO,EAAE,aAAa,EAAE,MAAM,eAAe,CAAC"}
@@ -1 +0,0 @@
1
- {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../src/server/types.ts"],"names":[],"mappings":"AAAA,MAAM,WAAW,UAAU;IACzB,MAAM,EAAE,MAAM,CAAC;IACf,QAAQ,EAAE,MAAM,CAAC;CAClB"}
@@ -1,10 +0,0 @@
1
- export { SessionManager, isRunningInIframe } from "./session-manager";
2
- export type { SessionManagerConfig } from "./session-manager";
3
- export { useSessionTokenClientMiddleware } from "./useSessionTokenClientMiddleware";
4
-
5
- export { EmbeddedAppProvider, useCurrentUser } from "./EmbeddedAppProvider";
6
- export { GatewayRequiredError } from "./GatewayRequiredError";
7
-
8
- export { lazyInitForWorkers } from "./lazyInitForWorkers";
9
-
10
- export { authenticatedFetch, getSessionToken } from "./authenticatedFetch";
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes