@eminuckan/spine 0.2.1 → 0.2.4

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (81) hide show
  1. package/CHANGELOG.md +29 -0
  2. package/README.md +45 -6
  3. package/dist/access/evaluator.d.ts +3 -0
  4. package/dist/access/evaluator.d.ts.map +1 -0
  5. package/dist/access/index.d.ts +3 -0
  6. package/dist/access/index.d.ts.map +1 -0
  7. package/dist/access/index.js +4 -0
  8. package/dist/access/types.d.ts +30 -0
  9. package/dist/access/types.d.ts.map +1 -0
  10. package/dist/access-DlAqsVGQ.js +59 -0
  11. package/dist/access-DlAqsVGQ.js.map +1 -0
  12. package/dist/api-client/index.js +2 -2
  13. package/dist/api-client/server.js +3 -3
  14. package/dist/{api-client-DsrxK05Z.js → api-client-CZapXIF8.js} +1 -1
  15. package/dist/{api-client-DsrxK05Z.js.map → api-client-CZapXIF8.js.map} +1 -1
  16. package/dist/auth/auth.server.d.ts +21 -16
  17. package/dist/auth/auth.server.d.ts.map +1 -1
  18. package/dist/auth/index.d.ts +1 -1
  19. package/dist/auth/index.d.ts.map +1 -1
  20. package/dist/auth/redis-session-storage.server.d.ts +18 -1
  21. package/dist/auth/redis-session-storage.server.d.ts.map +1 -1
  22. package/dist/auth/route-protection.server.d.ts.map +1 -1
  23. package/dist/auth/server.d.ts +1 -1
  24. package/dist/auth/server.d.ts.map +1 -1
  25. package/dist/auth/server.js +4 -4
  26. package/dist/auth/types.d.ts +65 -20
  27. package/dist/auth/types.d.ts.map +1 -1
  28. package/dist/auth.server-B3ODGIX4.js +1057 -0
  29. package/dist/auth.server-B3ODGIX4.js.map +1 -0
  30. package/dist/auth.server-wdKsjQsn.js +5 -0
  31. package/dist/identity/index.js +1 -1
  32. package/dist/identity/server.js +2 -2
  33. package/dist/{identity-CFa1txoj.js → identity-yT2ijZF0.js} +1 -1
  34. package/dist/{identity-CFa1txoj.js.map → identity-yT2ijZF0.js.map} +1 -1
  35. package/dist/index.d.ts +1 -0
  36. package/dist/index.d.ts.map +1 -1
  37. package/dist/index.js +11 -9
  38. package/dist/permission-service-CvGpwI0d.js +95 -0
  39. package/dist/permission-service-CvGpwI0d.js.map +1 -0
  40. package/dist/permissions/index.js +2 -1
  41. package/dist/{permissions-D5ScGGnd.js → permissions-OUK8Eql2.js} +3 -95
  42. package/dist/permissions-OUK8Eql2.js.map +1 -0
  43. package/dist/query-client/index.js +1 -1
  44. package/dist/{query-client-Bpe08pk9.js → query-client-Bh3TyB8W.js} +2 -2
  45. package/dist/query-client-Bh3TyB8W.js.map +1 -0
  46. package/dist/react-router/index.js +11 -9
  47. package/dist/react-router/server.js +18 -16
  48. package/dist/redis-session-storage.server-D0-72FV-.js +500 -0
  49. package/dist/redis-session-storage.server-D0-72FV-.js.map +1 -0
  50. package/dist/{server-BHfKHKF_.js → server-B7JN86_0.js} +13 -9
  51. package/dist/server-B7JN86_0.js.map +1 -0
  52. package/dist/{server-C3L8J7iE.js → server-BmiuV28c.js} +2 -2
  53. package/dist/{server-C3L8J7iE.js.map → server-BmiuV28c.js.map} +1 -1
  54. package/dist/{server-BxvRxjCK.js → server-Ce9jQRdL.js} +2 -2
  55. package/dist/{server-BxvRxjCK.js.map → server-Ce9jQRdL.js.map} +1 -1
  56. package/dist/{server-DZmcd2Lr.js → server-DeBlxoaW.js} +3 -3
  57. package/dist/{server-DZmcd2Lr.js.map → server-DeBlxoaW.js.map} +1 -1
  58. package/dist/{server-CouYoZiw.js → server-hGrElJMG.js} +2 -2
  59. package/dist/{server-CouYoZiw.js.map → server-hGrElJMG.js.map} +1 -1
  60. package/dist/server.js +18 -16
  61. package/dist/signalr/index.js +1 -1
  62. package/dist/{signalr-SJ-1sIxw.js → signalr-CSfCz1Ik.js} +1 -1
  63. package/dist/{signalr-SJ-1sIxw.js.map → signalr-CSfCz1Ik.js.map} +1 -1
  64. package/dist/tenant/index.js +1 -1
  65. package/dist/tenant/server.js +2 -2
  66. package/dist/{tenant-C6KPaSCX.js → tenant-BErqEENp.js} +1 -1
  67. package/dist/{tenant-C6KPaSCX.js.map → tenant-BErqEENp.js.map} +1 -1
  68. package/dist/{types-BnKaWdfe.js → types-BaaE6wjY.js} +1 -1
  69. package/dist/{types-BnKaWdfe.js.map → types-BaaE6wjY.js.map} +1 -1
  70. package/package.json +7 -6
  71. package/dist/auth.server-BPiCtlJE.js +0 -5
  72. package/dist/auth.server-Cx2h2qu3.js +0 -724
  73. package/dist/auth.server-Cx2h2qu3.js.map +0 -1
  74. package/dist/permissions-D5ScGGnd.js.map +0 -1
  75. package/dist/query-client-Bpe08pk9.js.map +0 -1
  76. package/dist/redis-session-storage.server-BR_0y-QO.js +0 -250
  77. package/dist/redis-session-storage.server-BR_0y-QO.js.map +0 -1
  78. package/dist/server-BHfKHKF_.js.map +0 -1
  79. package/dist/utils.d.ts +0 -6
  80. package/dist/utils.d.ts.map +0 -1
  81. /package/dist/{src-CJ2RLi94.js → src-B9rDUgSb.js} +0 -0
@@ -3,9 +3,10 @@
3
3
  */
4
4
  /**
5
5
  * Application Type
6
- * Determines logout behavior and error handling
6
+ * Describes app UX shape for login/error handling.
7
7
  */
8
8
  export type ApplicationType = 'no-landing-page' | 'landing-page' | 'dashboard' | 'tenant-app' | 'custom';
9
+ export type OidcClientAuthMethod = 'none' | 'client_secret_post' | 'client_secret_basic';
9
10
  /**
10
11
  * OAuth Configuration
11
12
  */
@@ -13,32 +14,22 @@ export interface AuthConfig {
13
14
  authority: string;
14
15
  clientId: string;
15
16
  clientSecret?: string;
17
+ clientAuthMethod?: OidcClientAuthMethod;
16
18
  redirectUri: string;
17
19
  postLogoutRedirectUri?: string;
18
20
  scope: string;
19
21
  /**
20
- * Application type - determines logout behavior
21
- * - 'no-landing-page': No landing page, defaults to full SSO logout
22
- * - 'landing-page': Has a landing page, defaults to app-specific logout
22
+ * Application type - determines landing/error handling only.
23
+ * Logout scope is request intent:
24
+ * - default `/auth/logout`: RP-Initiated Logout at the identity provider
25
+ * - `/auth/logout?logout=local`: application session cleanup only
26
+ *
27
+ * Aliases:
23
28
  * - 'dashboard': Legacy alias for 'no-landing-page'
24
29
  * - 'tenant-app': Legacy alias for 'landing-page'
25
- * - 'custom': Use explicit ssoLogout setting
26
30
  * @default 'custom'
27
31
  */
28
32
  applicationType?: ApplicationType;
29
- /**
30
- * Whether to perform full SSO logout (clear identity cookie) or app-specific logout
31
- * - true: Full logout - clears identity cookie, revokes all tokens
32
- * - false: App-specific logout - keeps identity cookie, revokes only this app's tokens
33
- *
34
- * If not set, determined by applicationType:
35
- * - 'no-landing-page': true (full logout)
36
- * - 'landing-page': false (app-specific)
37
- * - 'dashboard': true (legacy alias)
38
- * - 'tenant-app': false (legacy alias)
39
- * - 'custom': false (default)
40
- */
41
- ssoLogout?: boolean;
42
33
  /**
43
34
  * Whether the application has a landing page
44
35
  * - true: Has landing page - OAuth errors redirect to home, user sees landing
@@ -95,20 +86,57 @@ export interface OAuthState {
95
86
  codeVerifier: string;
96
87
  nonce?: string;
97
88
  returnUrl?: string;
89
+ /** Keycloak application initiated action requested for this authorization flow. */
90
+ kcAction?: string;
98
91
  createdAt: number;
99
92
  }
100
93
  /**
101
94
  * Session Data stored in Redis
102
95
  */
103
96
  export interface SessionData {
97
+ sessionId?: string;
104
98
  userId?: string;
105
99
  accessToken?: string;
106
100
  refreshToken?: string;
107
101
  idToken?: string;
108
102
  expiresAt?: number;
103
+ issuer?: string;
104
+ sid?: string;
105
+ sessionState?: string;
106
+ clientId?: string;
107
+ ipAddress?: string;
108
+ userAgent?: string;
109
109
  user?: UserInfo;
110
+ createdAt?: number;
110
111
  lastActivity?: number;
111
112
  }
113
+ export interface AuthSessionSummary {
114
+ sessionId: string;
115
+ userId?: string;
116
+ email?: string;
117
+ name?: string;
118
+ issuer?: string;
119
+ sid?: string;
120
+ sessionState?: string;
121
+ clientId?: string;
122
+ ipAddress?: string;
123
+ userAgent?: string;
124
+ createdAt?: number;
125
+ lastActivity?: number;
126
+ expiresAt?: number;
127
+ isCurrent?: boolean;
128
+ }
129
+ export interface BackChannelLogoutResult {
130
+ destroyedSessions: number;
131
+ issuer?: string;
132
+ subject?: string;
133
+ sid?: string;
134
+ }
135
+ export interface FrontChannelLogoutResult {
136
+ destroyedSessions: number;
137
+ issuer?: string;
138
+ sid?: string;
139
+ }
112
140
  /**
113
141
  * Session Flash Data for temporary messages
114
142
  */
@@ -145,8 +173,25 @@ export type ProtectedLoaderFn<T> = (user?: UserInfo) => Promise<T> | T;
145
173
  export interface LoginOptions {
146
174
  /** Return URL after successful login */
147
175
  returnUrl?: string;
148
- /** OAuth prompt parameter (none, login, consent, select_account) */
149
- prompt?: 'none' | 'login' | 'consent' | 'select_account';
176
+ /** OAuth prompt parameter (none, login, consent, select_account, create) */
177
+ prompt?: 'none' | 'login' | 'consent' | 'select_account' | 'create';
178
+ /**
179
+ * Additional authorization request parameters.
180
+ *
181
+ * Use this for safe provider hints: `login_hint`, `ui_locales`,
182
+ * `acr_values`, `kc_idp_hint`, or custom `uf_` theme context parameters.
183
+ * Security-sensitive protocol parameters such as state, nonce, redirect_uri,
184
+ * scope, PKCE, prompt, and kc_action are managed by Spine and cannot be
185
+ * overridden.
186
+ */
187
+ extraAuthParams?: Record<string, string | number | boolean | null | undefined>;
188
+ /**
189
+ * Keycloak application initiated action.
190
+ *
191
+ * Example: `webauthn-register` starts native passkey registration.
192
+ * This is Keycloak-specific and is ignored by non-Keycloak providers.
193
+ */
194
+ kcAction?: string;
150
195
  }
151
196
  /**
152
197
  * Auth error information from OAuth callback
@@ -1 +1 @@
1
- {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../src/auth/types.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../src/auth/types.ts"],"names":[],"mappings":"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"}