@codingfactory/socialkit-vue 0.1.0 → 0.2.0

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.
package/dist/index.d.ts CHANGED
@@ -5,15 +5,19 @@
5
5
  * auth service, auth store, terminology plugin) that each site frontend
6
6
  * instantiates with its own configuration.
7
7
  */
8
- export type { ApiResponse, PaginatedResponse, ApiError, UploadProgressEvent, RequestConfig } from './types/api.js';
8
+ export type { ApiResponse, PaginatedResponse, ApiError, EchoConfig, UploadProgressEvent, RequestConfig } from './types/api.js';
9
9
  export type { User, IdentityUser } from './types/user.js';
10
+ export type { AuthResponse, LoginCredentials, PasswordResetConfirm, PasswordResetRequest, RegisterCredentials } from './types/auth.js';
10
11
  export { isUser, isIdentityUser, identityUserToUser } from './types/user.js';
11
12
  export type { TokenStorageConfig, TokenStorage } from './utils/tokenStorage.js';
12
13
  export { createTokenStorage, extractTokenFromResponse } from './utils/tokenStorage.js';
13
14
  export type { ApiServiceConfig, ApiService } from './services/api.js';
14
15
  export { createApiService } from './services/api.js';
16
+ export type { IdentityServiceConfig, IdentityServiceInstance } from './services/identity.js';
17
+ export { createIdentityService } from './services/identity.js';
15
18
  export type { AuthServiceConfig, AuthServiceInstance, AuthenticatedLoginResponse, AuthenticatedRegisterResponse, AuthLoginResult, ConfiguredTokenAuthClient, ExtendedAuthServiceConfig, ExtendedAuthServiceInstance, RegisterData, RegisterResponse, ResetPasswordData, LoginResponse, TokenAuthClientConfig, TwoFactorChallengeResponse, VerificationRequiredRegisterResponse } from './services/auth.js';
16
19
  export { configureTokenAuthClient, createAuthService, createExtendedAuthService } from './services/auth.js';
20
+ export type { AccountDeletionConfirmationResult, AccountDeletionRequestResult, ChangePasswordPayload, ChangePasswordResult, TwoFactorDisablePayload, TwoFactorEnableResult, TwoFactorEnrollment, TwoFactorStatus } from './types/identity.js';
17
21
  export type { AuthStoreConfig, AuthStoreActions, AuthStoreExtension, AuthStoreExtensionContext, AuthStoreGetters, AuthStoreStateRefs, AuthStoreReturn } from './stores/auth.js';
18
22
  export { createAuthStoreDefinition } from './stores/auth.js';
19
23
  export type { UseAuthReturn } from './composables/useAuth.js';
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAGH,YAAY,EACV,WAAW,EACX,iBAAiB,EACjB,QAAQ,EACR,mBAAmB,EACnB,aAAa,EACd,MAAM,gBAAgB,CAAA;AAEvB,YAAY,EACV,IAAI,EACJ,YAAY,EACb,MAAM,iBAAiB,CAAA;AAExB,OAAO,EACL,MAAM,EACN,cAAc,EACd,kBAAkB,EACnB,MAAM,iBAAiB,CAAA;AAGxB,YAAY,EACV,kBAAkB,EAClB,YAAY,EACb,MAAM,yBAAyB,CAAA;AAEhC,OAAO,EACL,kBAAkB,EAClB,wBAAwB,EACzB,MAAM,yBAAyB,CAAA;AAGhC,YAAY,EACV,gBAAgB,EAChB,UAAU,EACX,MAAM,mBAAmB,CAAA;AAE1B,OAAO,EACL,gBAAgB,EACjB,MAAM,mBAAmB,CAAA;AAG1B,YAAY,EACV,iBAAiB,EACjB,mBAAmB,EACnB,0BAA0B,EAC1B,6BAA6B,EAC7B,eAAe,EACf,yBAAyB,EACzB,yBAAyB,EACzB,2BAA2B,EAC3B,YAAY,EACZ,gBAAgB,EAChB,iBAAiB,EACjB,aAAa,EACb,qBAAqB,EACrB,0BAA0B,EAC1B,oCAAoC,EACrC,MAAM,oBAAoB,CAAA;AAE3B,OAAO,EACL,wBAAwB,EACxB,iBAAiB,EACjB,yBAAyB,EAC1B,MAAM,oBAAoB,CAAA;AAG3B,YAAY,EACV,eAAe,EACf,gBAAgB,EAChB,kBAAkB,EAClB,yBAAyB,EACzB,gBAAgB,EAChB,kBAAkB,EAClB,eAAe,EAChB,MAAM,kBAAkB,CAAA;AAEzB,OAAO,EACL,yBAAyB,EAC1B,MAAM,kBAAkB,CAAA;AAGzB,YAAY,EACV,aAAa,EACd,MAAM,0BAA0B,CAAA;AAEjC,OAAO,EACL,WAAW,EACZ,MAAM,0BAA0B,CAAA;AAGjC,YAAY,EACV,SAAS,EACT,WAAW,EACX,kBAAkB,EACnB,MAAM,gCAAgC,CAAA;AAEvC,YAAY,EACV,WAAW,EACZ,MAAM,gCAAgC,CAAA;AAEvC,OAAO,EACL,eAAe,EAChB,MAAM,gCAAgC,CAAA;AAEvC,OAAO,EACL,iBAAiB,EACjB,QAAQ,EACR,cAAc,EACf,MAAM,gCAAgC,CAAA"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAGH,YAAY,EACV,WAAW,EACX,iBAAiB,EACjB,QAAQ,EACR,UAAU,EACV,mBAAmB,EACnB,aAAa,EACd,MAAM,gBAAgB,CAAA;AAEvB,YAAY,EACV,IAAI,EACJ,YAAY,EACb,MAAM,iBAAiB,CAAA;AAExB,YAAY,EACV,YAAY,EACZ,gBAAgB,EAChB,oBAAoB,EACpB,oBAAoB,EACpB,mBAAmB,EACpB,MAAM,iBAAiB,CAAA;AAExB,OAAO,EACL,MAAM,EACN,cAAc,EACd,kBAAkB,EACnB,MAAM,iBAAiB,CAAA;AAGxB,YAAY,EACV,kBAAkB,EAClB,YAAY,EACb,MAAM,yBAAyB,CAAA;AAEhC,OAAO,EACL,kBAAkB,EAClB,wBAAwB,EACzB,MAAM,yBAAyB,CAAA;AAGhC,YAAY,EACV,gBAAgB,EAChB,UAAU,EACX,MAAM,mBAAmB,CAAA;AAE1B,OAAO,EACL,gBAAgB,EACjB,MAAM,mBAAmB,CAAA;AAG1B,YAAY,EACV,qBAAqB,EACrB,uBAAuB,EACxB,MAAM,wBAAwB,CAAA;AAE/B,OAAO,EACL,qBAAqB,EACtB,MAAM,wBAAwB,CAAA;AAG/B,YAAY,EACV,iBAAiB,EACjB,mBAAmB,EACnB,0BAA0B,EAC1B,6BAA6B,EAC7B,eAAe,EACf,yBAAyB,EACzB,yBAAyB,EACzB,2BAA2B,EAC3B,YAAY,EACZ,gBAAgB,EAChB,iBAAiB,EACjB,aAAa,EACb,qBAAqB,EACrB,0BAA0B,EAC1B,oCAAoC,EACrC,MAAM,oBAAoB,CAAA;AAE3B,OAAO,EACL,wBAAwB,EACxB,iBAAiB,EACjB,yBAAyB,EAC1B,MAAM,oBAAoB,CAAA;AAG3B,YAAY,EACV,iCAAiC,EACjC,4BAA4B,EAC5B,qBAAqB,EACrB,oBAAoB,EACpB,uBAAuB,EACvB,qBAAqB,EACrB,mBAAmB,EACnB,eAAe,EAChB,MAAM,qBAAqB,CAAA;AAG5B,YAAY,EACV,eAAe,EACf,gBAAgB,EAChB,kBAAkB,EAClB,yBAAyB,EACzB,gBAAgB,EAChB,kBAAkB,EAClB,eAAe,EAChB,MAAM,kBAAkB,CAAA;AAEzB,OAAO,EACL,yBAAyB,EAC1B,MAAM,kBAAkB,CAAA;AAGzB,YAAY,EACV,aAAa,EACd,MAAM,0BAA0B,CAAA;AAEjC,OAAO,EACL,WAAW,EACZ,MAAM,0BAA0B,CAAA;AAGjC,YAAY,EACV,SAAS,EACT,WAAW,EACX,kBAAkB,EACnB,MAAM,gCAAgC,CAAA;AAEvC,YAAY,EACV,WAAW,EACZ,MAAM,gCAAgC,CAAA;AAEvC,OAAO,EACL,eAAe,EAChB,MAAM,gCAAgC,CAAA;AAEvC,OAAO,EACL,iBAAiB,EACjB,QAAQ,EACR,cAAc,EACf,MAAM,gCAAgC,CAAA"}
package/dist/index.js CHANGED
@@ -8,6 +8,7 @@
8
8
  export { isUser, isIdentityUser, identityUserToUser } from './types/user.js';
9
9
  export { createTokenStorage, extractTokenFromResponse } from './utils/tokenStorage.js';
10
10
  export { createApiService } from './services/api.js';
11
+ export { createIdentityService } from './services/identity.js';
11
12
  export { configureTokenAuthClient, createAuthService, createExtendedAuthService } from './services/auth.js';
12
13
  export { createAuthStoreDefinition } from './stores/auth.js';
13
14
  export { makeUseAuth } from './composables/useAuth.js';
package/dist/index.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAgBH,OAAO,EACL,MAAM,EACN,cAAc,EACd,kBAAkB,EACnB,MAAM,iBAAiB,CAAA;AAQxB,OAAO,EACL,kBAAkB,EAClB,wBAAwB,EACzB,MAAM,yBAAyB,CAAA;AAQhC,OAAO,EACL,gBAAgB,EACjB,MAAM,mBAAmB,CAAA;AAqB1B,OAAO,EACL,wBAAwB,EACxB,iBAAiB,EACjB,yBAAyB,EAC1B,MAAM,oBAAoB,CAAA;AAa3B,OAAO,EACL,yBAAyB,EAC1B,MAAM,kBAAkB,CAAA;AAOzB,OAAO,EACL,WAAW,EACZ,MAAM,0BAA0B,CAAA;AAajC,OAAO,EACL,eAAe,EAChB,MAAM,gCAAgC,CAAA;AAEvC,OAAO,EACL,iBAAiB,EACjB,QAAQ,EACR,cAAc,EACf,MAAM,gCAAgC,CAAA"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAyBH,OAAO,EACL,MAAM,EACN,cAAc,EACd,kBAAkB,EACnB,MAAM,iBAAiB,CAAA;AAQxB,OAAO,EACL,kBAAkB,EAClB,wBAAwB,EACzB,MAAM,yBAAyB,CAAA;AAQhC,OAAO,EACL,gBAAgB,EACjB,MAAM,mBAAmB,CAAA;AAQ1B,OAAO,EACL,qBAAqB,EACtB,MAAM,wBAAwB,CAAA;AAqB/B,OAAO,EACL,wBAAwB,EACxB,iBAAiB,EACjB,yBAAyB,EAC1B,MAAM,oBAAoB,CAAA;AAyB3B,OAAO,EACL,yBAAyB,EAC1B,MAAM,kBAAkB,CAAA;AAOzB,OAAO,EACL,WAAW,EACZ,MAAM,0BAA0B,CAAA;AAajC,OAAO,EACL,eAAe,EAChB,MAAM,gCAAgC,CAAA;AAEvC,OAAO,EACL,iBAAiB,EACjB,QAAQ,EACR,cAAc,EACf,MAAM,gCAAgC,CAAA"}
@@ -0,0 +1,29 @@
1
+ /**
2
+ * Configurable identity service for SocialKit-powered frontends.
3
+ */
4
+ import type { AxiosInstance } from 'axios';
5
+ import type { TokenStorage } from '../utils/tokenStorage.js';
6
+ import type { AccountDeletionConfirmationResult, AccountDeletionRequestResult, ChangePasswordPayload, ChangePasswordResult, TwoFactorDisablePayload, TwoFactorEnableResult, TwoFactorEnrollment, TwoFactorStatus } from '../types/identity.js';
7
+ import type { IdentityUser } from '../types/user.js';
8
+ export interface IdentityServiceConfig {
9
+ client: AxiosInstance;
10
+ tokenStorage: TokenStorage;
11
+ }
12
+ export interface IdentityServiceInstance {
13
+ getCurrentUser(): Promise<IdentityUser>;
14
+ getUser(userId: string): Promise<IdentityUser>;
15
+ updateUser(userId: string, payload: Partial<IdentityUser>): Promise<IdentityUser>;
16
+ uploadAvatar(file: File): Promise<{
17
+ url: string;
18
+ }>;
19
+ changePassword(payload: ChangePasswordPayload): Promise<ChangePasswordResult>;
20
+ getTwoFactorStatus(): Promise<TwoFactorStatus>;
21
+ startTwoFactorEnrollment(currentPassword: string): Promise<TwoFactorEnrollment>;
22
+ enableTwoFactor(code: string): Promise<TwoFactorEnableResult>;
23
+ regenerateTwoFactorRecoveryCodes(code: string): Promise<TwoFactorEnableResult>;
24
+ disableTwoFactor(payload: TwoFactorDisablePayload): Promise<void>;
25
+ requestAccountDeletion(): Promise<AccountDeletionRequestResult>;
26
+ confirmAccountDeletion(requestId: string, confirmationToken: string): Promise<AccountDeletionConfirmationResult>;
27
+ }
28
+ export declare function createIdentityService(config: IdentityServiceConfig): IdentityServiceInstance;
29
+ //# sourceMappingURL=identity.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"identity.d.ts","sourceRoot":"","sources":["../../src/services/identity.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,OAAO,CAAA;AAC1C,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,0BAA0B,CAAA;AAE5D,OAAO,KAAK,EACV,iCAAiC,EACjC,4BAA4B,EAC5B,qBAAqB,EACrB,oBAAoB,EACpB,uBAAuB,EACvB,qBAAqB,EACrB,mBAAmB,EACnB,eAAe,EAChB,MAAM,sBAAsB,CAAA;AAC7B,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,kBAAkB,CAAA;AA4CpD,MAAM,WAAW,qBAAqB;IACpC,MAAM,EAAE,aAAa,CAAA;IACrB,YAAY,EAAE,YAAY,CAAA;CAC3B;AAED,MAAM,WAAW,uBAAuB;IACtC,cAAc,IAAI,OAAO,CAAC,YAAY,CAAC,CAAA;IACvC,OAAO,CAAC,MAAM,EAAE,MAAM,GAAG,OAAO,CAAC,YAAY,CAAC,CAAA;IAC9C,UAAU,CAAC,MAAM,EAAE,MAAM,EAAE,OAAO,EAAE,OAAO,CAAC,YAAY,CAAC,GAAG,OAAO,CAAC,YAAY,CAAC,CAAA;IACjF,YAAY,CAAC,IAAI,EAAE,IAAI,GAAG,OAAO,CAAC;QAAE,GAAG,EAAE,MAAM,CAAA;KAAE,CAAC,CAAA;IAClD,cAAc,CAAC,OAAO,EAAE,qBAAqB,GAAG,OAAO,CAAC,oBAAoB,CAAC,CAAA;IAC7E,kBAAkB,IAAI,OAAO,CAAC,eAAe,CAAC,CAAA;IAC9C,wBAAwB,CAAC,eAAe,EAAE,MAAM,GAAG,OAAO,CAAC,mBAAmB,CAAC,CAAA;IAC/E,eAAe,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAAC,qBAAqB,CAAC,CAAA;IAC7D,gCAAgC,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAAC,qBAAqB,CAAC,CAAA;IAC9E,gBAAgB,CAAC,OAAO,EAAE,uBAAuB,GAAG,OAAO,CAAC,IAAI,CAAC,CAAA;IACjE,sBAAsB,IAAI,OAAO,CAAC,4BAA4B,CAAC,CAAA;IAC/D,sBAAsB,CACpB,SAAS,EAAE,MAAM,EACjB,iBAAiB,EAAE,MAAM,GACxB,OAAO,CAAC,iCAAiC,CAAC,CAAA;CAC9C;AAoMD,wBAAgB,qBAAqB,CAAC,MAAM,EAAE,qBAAqB,GAAG,uBAAuB,CAE5F"}
@@ -0,0 +1,150 @@
1
+ /**
2
+ * Configurable identity service for SocialKit-powered frontends.
3
+ */
4
+ import { extractTokenFromResponse } from '../utils/tokenStorage.js';
5
+ class IdentityService {
6
+ client;
7
+ tokenStorage;
8
+ constructor(client, tokenStorage) {
9
+ this.client = client;
10
+ this.tokenStorage = tokenStorage;
11
+ }
12
+ async getCurrentUser() {
13
+ const response = await this.client.get('/v1/me');
14
+ return this.normalizeUser(response.data.data);
15
+ }
16
+ async getUser(userId) {
17
+ const response = await this.client.get('/v1/identity/users/by-ids', {
18
+ params: {
19
+ ids: userId
20
+ }
21
+ });
22
+ const users = Array.isArray(response.data?.data) ? response.data.data : [];
23
+ const user = users.find((candidate) => {
24
+ if (!candidate || typeof candidate !== 'object') {
25
+ return false;
26
+ }
27
+ const candidateWithId = candidate;
28
+ return candidateWithId.id === userId;
29
+ });
30
+ if (!user) {
31
+ throw new Error('User not found');
32
+ }
33
+ return this.normalizeUser(user);
34
+ }
35
+ async updateUser(_userId, payload) {
36
+ const response = await this.client.patch('/v1/me', payload);
37
+ return this.normalizeUser(response.data.data);
38
+ }
39
+ async uploadAvatar(file) {
40
+ const formData = new FormData();
41
+ formData.append('file', file);
42
+ const response = await this.client.post('/v1/media/upload', formData);
43
+ return response.data;
44
+ }
45
+ async changePassword(payload) {
46
+ const response = await this.client.patch('/v1/me/password', {
47
+ current_password: payload.currentPassword,
48
+ password: payload.newPassword,
49
+ password_confirmation: payload.confirmPassword
50
+ });
51
+ const rotatedToken = extractTokenFromResponse(response.data);
52
+ if (rotatedToken) {
53
+ this.tokenStorage.setToken(rotatedToken);
54
+ }
55
+ const message = typeof response.data?.message === 'string' && response.data.message.trim() !== ''
56
+ ? response.data.message
57
+ : 'Password updated successfully';
58
+ return { message };
59
+ }
60
+ async getTwoFactorStatus() {
61
+ const response = await this.client.get('/v1/security/2fa/status');
62
+ return {
63
+ enabled: response.data?.data?.enabled === true
64
+ };
65
+ }
66
+ async startTwoFactorEnrollment(currentPassword) {
67
+ const response = await this.client.post('/v1/security/2fa/start', {
68
+ current_password: currentPassword
69
+ });
70
+ const qrCodeUrl = response.data?.data?.qr_code_url;
71
+ const secretBase32 = response.data?.data?.secret_base32;
72
+ if (typeof qrCodeUrl !== 'string' || typeof secretBase32 !== 'string') {
73
+ throw new Error('Invalid two-factor enrollment response payload');
74
+ }
75
+ return {
76
+ qrCodeUrl,
77
+ secretBase32
78
+ };
79
+ }
80
+ async enableTwoFactor(code) {
81
+ const response = await this.client.post('/v1/security/2fa/enable', { code });
82
+ return {
83
+ recoveryCodes: this.normalizeRecoveryCodes(response.data?.data?.recovery_codes)
84
+ };
85
+ }
86
+ async regenerateTwoFactorRecoveryCodes(code) {
87
+ const response = await this.client.post('/v1/security/2fa/recovery-codes/regenerate', { code });
88
+ return {
89
+ recoveryCodes: this.normalizeRecoveryCodes(response.data?.data?.recovery_codes)
90
+ };
91
+ }
92
+ async disableTwoFactor(payload) {
93
+ await this.client.post('/v1/security/2fa/disable', {
94
+ password: payload.password,
95
+ code: payload.code
96
+ });
97
+ }
98
+ async requestAccountDeletion() {
99
+ const response = await this.client.post('/v1/compliance/dsar/erase');
100
+ const id = response.data?.data?.id;
101
+ const status = response.data?.data?.status;
102
+ const confirmationToken = response.data?.data?.confirmation_token;
103
+ const devToken = response.data?.data?.dev_token;
104
+ if (typeof id !== 'string' || typeof status !== 'string') {
105
+ throw new Error('Invalid account deletion request payload');
106
+ }
107
+ return {
108
+ requestId: id,
109
+ status,
110
+ confirmationToken: typeof confirmationToken === 'string'
111
+ ? confirmationToken
112
+ : typeof devToken === 'string'
113
+ ? devToken
114
+ : null
115
+ };
116
+ }
117
+ async confirmAccountDeletion(requestId, confirmationToken) {
118
+ const response = await this.client.post(`/v1/compliance/dsar/${encodeURIComponent(requestId)}/confirm`, {
119
+ token: confirmationToken
120
+ });
121
+ const status = response.data?.data?.status;
122
+ if (typeof status !== 'string') {
123
+ throw new Error('Invalid account deletion confirmation payload');
124
+ }
125
+ return { status };
126
+ }
127
+ normalizeUser(user) {
128
+ if (!user || typeof user !== 'object') {
129
+ throw new Error('Invalid user data');
130
+ }
131
+ const userData = user;
132
+ const avatarUrl = typeof userData.avatar === 'string'
133
+ ? userData.avatar
134
+ : userData.avatar?.url ?? userData.avatar_url ?? null;
135
+ return {
136
+ ...userData,
137
+ avatar: avatarUrl,
138
+ ...(avatarUrl ? { avatar_url: avatarUrl } : {})
139
+ };
140
+ }
141
+ normalizeRecoveryCodes(recoveryCodesRaw) {
142
+ return Array.isArray(recoveryCodesRaw)
143
+ ? recoveryCodesRaw.filter((value) => typeof value === 'string')
144
+ : [];
145
+ }
146
+ }
147
+ export function createIdentityService(config) {
148
+ return new IdentityService(config.client, config.tokenStorage);
149
+ }
150
+ //# sourceMappingURL=identity.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"identity.js","sourceRoot":"","sources":["../../src/services/identity.ts"],"names":[],"mappings":"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"}
@@ -93,6 +93,7 @@ export declare function createAuthStoreDefinition<TExtension extends AuthStoreEx
93
93
  avatar?: (string | Record<string, unknown> | null) | undefined;
94
94
  avatar_url?: string | null | undefined;
95
95
  cover_photo?: string | null | undefined;
96
+ bio?: string | null | undefined;
96
97
  handle?: string | undefined;
97
98
  role: "admin" | "moderator" | "user";
98
99
  tenant_id?: string | undefined;
@@ -125,6 +126,7 @@ export declare function createAuthStoreDefinition<TExtension extends AuthStoreEx
125
126
  avatar?: (string | Record<string, unknown> | null) | undefined;
126
127
  avatar_url?: string | null | undefined;
127
128
  cover_photo?: string | null | undefined;
129
+ bio?: string | null | undefined;
128
130
  handle?: string | undefined;
129
131
  role: "admin" | "moderator" | "user";
130
132
  tenant_id?: string | undefined;
@@ -157,6 +159,7 @@ export declare function createAuthStoreDefinition<TExtension extends AuthStoreEx
157
159
  avatar?: (string | Record<string, unknown> | null) | undefined;
158
160
  avatar_url?: string | null | undefined;
159
161
  cover_photo?: string | null | undefined;
162
+ bio?: string | null | undefined;
160
163
  handle?: string | undefined;
161
164
  role: "admin" | "moderator" | "user";
162
165
  tenant_id?: string | undefined;
@@ -1 +1 @@
1
- {"version":3,"file":"auth.d.ts","sourceRoot":"","sources":["../../src/stores/auth.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"auth.d.ts","sourceRoot":"","sources":["../../src/stores/auth.ts"],"names":[],"mappings":"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"}
@@ -49,4 +49,23 @@ export interface RequestConfig {
49
49
  onUploadProgress?: (progressEvent: UploadProgressEvent) => void;
50
50
  signal?: AbortSignal;
51
51
  }
52
+ /** Echo/WebSocket configuration shape used by app-level realtime clients. */
53
+ export interface EchoConfig {
54
+ broadcaster: string;
55
+ key: string;
56
+ wsHost: string;
57
+ wsPort: number;
58
+ wssPort: number;
59
+ forceTLS: boolean;
60
+ encrypted: boolean;
61
+ disableStats: boolean;
62
+ enabledTransports: string[];
63
+ auth: {
64
+ headers: {
65
+ Authorization: string;
66
+ Accept: string;
67
+ };
68
+ };
69
+ authEndpoint: string;
70
+ }
52
71
  //# sourceMappingURL=api.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"api.d.ts","sourceRoot":"","sources":["../../src/types/api.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,qCAAqC;AACrC,MAAM,WAAW,WAAW,CAAC,CAAC;IAC5B,IAAI,EAAE,CAAC,CAAA;IACP,IAAI,CAAC,EAAE;QACL,YAAY,CAAC,EAAE,MAAM,CAAA;QACrB,KAAK,CAAC,EAAE,MAAM,CAAA;QACd,QAAQ,CAAC,EAAE,MAAM,CAAA;QACjB,SAAS,CAAC,EAAE,MAAM,CAAA;QAClB,WAAW,CAAC,EAAE,MAAM,CAAA;QACpB,WAAW,CAAC,EAAE,MAAM,CAAA;QACpB,QAAQ,CAAC,EAAE,OAAO,CAAA;KACnB,CAAA;IACD,OAAO,CAAC,EAAE,MAAM,CAAA;IAChB,MAAM,CAAC,EAAE,MAAM,CAAA;CAChB;AAED,gCAAgC;AAChC,MAAM,WAAW,iBAAiB,CAAC,CAAC;IAClC,KAAK,EAAE,CAAC,EAAE,CAAA;IACV,KAAK,EAAE,MAAM,CAAA;IACb,QAAQ,EAAE,MAAM,CAAA;IAChB,YAAY,EAAE,MAAM,CAAA;IACpB,SAAS,EAAE,MAAM,CAAA;IACjB,WAAW,CAAC,EAAE,MAAM,CAAA;IACpB,WAAW,CAAC,EAAE,MAAM,CAAA;CACrB;AAED,uBAAuB;AACvB,MAAM,WAAW,QAAQ;IACvB,OAAO,EAAE,MAAM,CAAA;IACf,IAAI,CAAC,EAAE,MAAM,CAAA;IACb,MAAM,CAAC,EAAE,MAAM,CAAA;IACf,OAAO,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAA;CAClC;AAED,6BAA6B;AAC7B,MAAM,WAAW,mBAAmB;IAClC,MAAM,EAAE,MAAM,CAAA;IACd,KAAK,CAAC,EAAE,MAAM,CAAA;IACd,QAAQ,CAAC,EAAE,MAAM,CAAA;CAClB;AAED,4DAA4D;AAC5D,MAAM,WAAW,aAAa;IAC5B,OAAO,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAA;IAChC,MAAM,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,GAAG,MAAM,GAAG,OAAO,CAAC,CAAA;IAClD,OAAO,CAAC,EAAE,MAAM,CAAA;IAChB,gBAAgB,CAAC,EAAE,CAAC,aAAa,EAAE,mBAAmB,KAAK,IAAI,CAAA;IAC/D,MAAM,CAAC,EAAE,WAAW,CAAA;CACrB"}
1
+ {"version":3,"file":"api.d.ts","sourceRoot":"","sources":["../../src/types/api.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,qCAAqC;AACrC,MAAM,WAAW,WAAW,CAAC,CAAC;IAC5B,IAAI,EAAE,CAAC,CAAA;IACP,IAAI,CAAC,EAAE;QACL,YAAY,CAAC,EAAE,MAAM,CAAA;QACrB,KAAK,CAAC,EAAE,MAAM,CAAA;QACd,QAAQ,CAAC,EAAE,MAAM,CAAA;QACjB,SAAS,CAAC,EAAE,MAAM,CAAA;QAClB,WAAW,CAAC,EAAE,MAAM,CAAA;QACpB,WAAW,CAAC,EAAE,MAAM,CAAA;QACpB,QAAQ,CAAC,EAAE,OAAO,CAAA;KACnB,CAAA;IACD,OAAO,CAAC,EAAE,MAAM,CAAA;IAChB,MAAM,CAAC,EAAE,MAAM,CAAA;CAChB;AAED,gCAAgC;AAChC,MAAM,WAAW,iBAAiB,CAAC,CAAC;IAClC,KAAK,EAAE,CAAC,EAAE,CAAA;IACV,KAAK,EAAE,MAAM,CAAA;IACb,QAAQ,EAAE,MAAM,CAAA;IAChB,YAAY,EAAE,MAAM,CAAA;IACpB,SAAS,EAAE,MAAM,CAAA;IACjB,WAAW,CAAC,EAAE,MAAM,CAAA;IACpB,WAAW,CAAC,EAAE,MAAM,CAAA;CACrB;AAED,uBAAuB;AACvB,MAAM,WAAW,QAAQ;IACvB,OAAO,EAAE,MAAM,CAAA;IACf,IAAI,CAAC,EAAE,MAAM,CAAA;IACb,MAAM,CAAC,EAAE,MAAM,CAAA;IACf,OAAO,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAA;CAClC;AAED,6BAA6B;AAC7B,MAAM,WAAW,mBAAmB;IAClC,MAAM,EAAE,MAAM,CAAA;IACd,KAAK,CAAC,EAAE,MAAM,CAAA;IACd,QAAQ,CAAC,EAAE,MAAM,CAAA;CAClB;AAED,4DAA4D;AAC5D,MAAM,WAAW,aAAa;IAC5B,OAAO,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAA;IAChC,MAAM,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,GAAG,MAAM,GAAG,OAAO,CAAC,CAAA;IAClD,OAAO,CAAC,EAAE,MAAM,CAAA;IAChB,gBAAgB,CAAC,EAAE,CAAC,aAAa,EAAE,mBAAmB,KAAK,IAAI,CAAA;IAC/D,MAAM,CAAC,EAAE,WAAW,CAAA;CACrB;AAED,6EAA6E;AAC7E,MAAM,WAAW,UAAU;IACzB,WAAW,EAAE,MAAM,CAAA;IACnB,GAAG,EAAE,MAAM,CAAA;IACX,MAAM,EAAE,MAAM,CAAA;IACd,MAAM,EAAE,MAAM,CAAA;IACd,OAAO,EAAE,MAAM,CAAA;IACf,QAAQ,EAAE,OAAO,CAAA;IACjB,SAAS,EAAE,OAAO,CAAA;IAClB,YAAY,EAAE,OAAO,CAAA;IACrB,iBAAiB,EAAE,MAAM,EAAE,CAAA;IAC3B,IAAI,EAAE;QACJ,OAAO,EAAE;YACP,aAAa,EAAE,MAAM,CAAA;YACrB,MAAM,EAAE,MAAM,CAAA;SACf,CAAA;KACF,CAAA;IACD,YAAY,EAAE,MAAM,CAAA;CACrB"}
@@ -0,0 +1,34 @@
1
+ /**
2
+ * Legacy auth DTOs that remain useful for app-level compatibility.
3
+ *
4
+ * These types do not drive the shared auth service implementation directly,
5
+ * but keeping them in the package lets apps re-export one source of truth.
6
+ */
7
+ import type { User } from './user.js';
8
+ export interface LoginCredentials {
9
+ email: string;
10
+ password: string;
11
+ remember?: boolean;
12
+ }
13
+ export interface RegisterCredentials {
14
+ name: string;
15
+ email: string;
16
+ username: string;
17
+ password: string;
18
+ password_confirmation: string;
19
+ }
20
+ export interface AuthResponse {
21
+ user: User;
22
+ token: string;
23
+ expires_at?: string;
24
+ }
25
+ export interface PasswordResetRequest {
26
+ email: string;
27
+ }
28
+ export interface PasswordResetConfirm {
29
+ email: string;
30
+ token: string;
31
+ password: string;
32
+ password_confirmation: string;
33
+ }
34
+ //# sourceMappingURL=auth.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"auth.d.ts","sourceRoot":"","sources":["../../src/types/auth.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,OAAO,KAAK,EAAE,IAAI,EAAE,MAAM,WAAW,CAAA;AAErC,MAAM,WAAW,gBAAgB;IAC/B,KAAK,EAAE,MAAM,CAAA;IACb,QAAQ,EAAE,MAAM,CAAA;IAChB,QAAQ,CAAC,EAAE,OAAO,CAAA;CACnB;AAED,MAAM,WAAW,mBAAmB;IAClC,IAAI,EAAE,MAAM,CAAA;IACZ,KAAK,EAAE,MAAM,CAAA;IACb,QAAQ,EAAE,MAAM,CAAA;IAChB,QAAQ,EAAE,MAAM,CAAA;IAChB,qBAAqB,EAAE,MAAM,CAAA;CAC9B;AAED,MAAM,WAAW,YAAY;IAC3B,IAAI,EAAE,IAAI,CAAA;IACV,KAAK,EAAE,MAAM,CAAA;IACb,UAAU,CAAC,EAAE,MAAM,CAAA;CACpB;AAED,MAAM,WAAW,oBAAoB;IACnC,KAAK,EAAE,MAAM,CAAA;CACd;AAED,MAAM,WAAW,oBAAoB;IACnC,KAAK,EAAE,MAAM,CAAA;IACb,KAAK,EAAE,MAAM,CAAA;IACb,QAAQ,EAAE,MAAM,CAAA;IAChB,qBAAqB,EAAE,MAAM,CAAA;CAC9B"}
@@ -0,0 +1,8 @@
1
+ /**
2
+ * Legacy auth DTOs that remain useful for app-level compatibility.
3
+ *
4
+ * These types do not drive the shared auth service implementation directly,
5
+ * but keeping them in the package lets apps re-export one source of truth.
6
+ */
7
+ export {};
8
+ //# sourceMappingURL=auth.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"auth.js","sourceRoot":"","sources":["../../src/types/auth.ts"],"names":[],"mappings":"AAAA;;;;;GAKG"}
@@ -0,0 +1,34 @@
1
+ /**
2
+ * Identity-service DTOs shared across SocialKit frontends.
3
+ */
4
+ export interface ChangePasswordPayload {
5
+ currentPassword: string;
6
+ newPassword: string;
7
+ confirmPassword: string;
8
+ }
9
+ export interface ChangePasswordResult {
10
+ message: string;
11
+ }
12
+ export interface TwoFactorStatus {
13
+ enabled: boolean;
14
+ }
15
+ export interface TwoFactorEnrollment {
16
+ qrCodeUrl: string;
17
+ secretBase32: string;
18
+ }
19
+ export interface TwoFactorEnableResult {
20
+ recoveryCodes: string[];
21
+ }
22
+ export interface TwoFactorDisablePayload {
23
+ password: string;
24
+ code: string;
25
+ }
26
+ export interface AccountDeletionRequestResult {
27
+ requestId: string;
28
+ status: string;
29
+ confirmationToken: string | null;
30
+ }
31
+ export interface AccountDeletionConfirmationResult {
32
+ status: string;
33
+ }
34
+ //# sourceMappingURL=identity.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"identity.d.ts","sourceRoot":"","sources":["../../src/types/identity.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,MAAM,WAAW,qBAAqB;IACpC,eAAe,EAAE,MAAM,CAAA;IACvB,WAAW,EAAE,MAAM,CAAA;IACnB,eAAe,EAAE,MAAM,CAAA;CACxB;AAED,MAAM,WAAW,oBAAoB;IACnC,OAAO,EAAE,MAAM,CAAA;CAChB;AAED,MAAM,WAAW,eAAe;IAC9B,OAAO,EAAE,OAAO,CAAA;CACjB;AAED,MAAM,WAAW,mBAAmB;IAClC,SAAS,EAAE,MAAM,CAAA;IACjB,YAAY,EAAE,MAAM,CAAA;CACrB;AAED,MAAM,WAAW,qBAAqB;IACpC,aAAa,EAAE,MAAM,EAAE,CAAA;CACxB;AAED,MAAM,WAAW,uBAAuB;IACtC,QAAQ,EAAE,MAAM,CAAA;IAChB,IAAI,EAAE,MAAM,CAAA;CACb;AAED,MAAM,WAAW,4BAA4B;IAC3C,SAAS,EAAE,MAAM,CAAA;IACjB,MAAM,EAAE,MAAM,CAAA;IACd,iBAAiB,EAAE,MAAM,GAAG,IAAI,CAAA;CACjC;AAED,MAAM,WAAW,iCAAiC;IAChD,MAAM,EAAE,MAAM,CAAA;CACf"}
@@ -0,0 +1,5 @@
1
+ /**
2
+ * Identity-service DTOs shared across SocialKit frontends.
3
+ */
4
+ export {};
5
+ //# sourceMappingURL=identity.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"identity.js","sourceRoot":"","sources":["../../src/types/identity.ts"],"names":[],"mappings":"AAAA;;GAEG"}
@@ -9,6 +9,7 @@ export interface User {
9
9
  avatar?: string | Record<string, unknown> | null;
10
10
  avatar_url?: string | null;
11
11
  cover_photo?: string | null;
12
+ bio?: string | null;
12
13
  handle?: string;
13
14
  role: 'admin' | 'moderator' | 'user';
14
15
  tenant_id?: string;
@@ -1 +1 @@
1
- {"version":3,"file":"user.d.ts","sourceRoot":"","sources":["../../src/types/user.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,8CAA8C;AAC9C,MAAM,WAAW,IAAI;IACnB,EAAE,EAAE,MAAM,CAAA;IACV,IAAI,EAAE,MAAM,CAAA;IACZ,KAAK,EAAE,MAAM,CAAA;IACb,MAAM,CAAC,EAAE,MAAM,GAAG,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,IAAI,CAAA;IAChD,UAAU,CAAC,EAAE,MAAM,GAAG,IAAI,CAAA;IAC1B,WAAW,CAAC,EAAE,MAAM,GAAG,IAAI,CAAA;IAC3B,MAAM,CAAC,EAAE,MAAM,CAAA;IACf,IAAI,EAAE,OAAO,GAAG,WAAW,GAAG,MAAM,CAAA;IACpC,SAAS,CAAC,EAAE,MAAM,CAAA;IAClB,KAAK,CAAC,EAAE,MAAM,EAAE,CAAA;IAChB,WAAW,CAAC,EAAE,MAAM,EAAE,CAAA;IACtB,YAAY,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAA;IACtC,aAAa,CAAC,EAAE,MAAM,CAAA;IACtB,UAAU,CAAC,EAAE,MAAM,CAAA;IACnB,MAAM,CAAC,EAAE,QAAQ,GAAG,WAAW,GAAG,QAAQ,CAAA;IAC1C,UAAU,CAAC,EAAE,MAAM,CAAA;CACpB;AAED,oDAAoD;AACpD,MAAM,WAAW,YAAY;IAC3B,EAAE,EAAE,MAAM,CAAA;IACV,MAAM,CAAC,EAAE,MAAM,CAAA;IACf,IAAI,EAAE,MAAM,CAAA;IACZ,MAAM,CAAC,EAAE,MAAM,GAAG,IAAI,CAAA;IACtB,UAAU,CAAC,EAAE,MAAM,GAAG,IAAI,CAAA;IAC1B,WAAW,CAAC,EAAE,MAAM,GAAG,IAAI,CAAA;IAC3B,GAAG,CAAC,EAAE,MAAM,GAAG,IAAI,CAAA;IACnB,KAAK,CAAC,EAAE,MAAM,CAAA;IACd,UAAU,CAAC,EAAE,MAAM,CAAA;IACnB,UAAU,CAAC,EAAE,MAAM,CAAA;CACpB;AAED,2BAA2B;AAC3B,wBAAgB,MAAM,CAAC,GAAG,EAAE,OAAO,GAAG,GAAG,IAAI,IAAI,CAShD;AAED,mCAAmC;AACnC,wBAAgB,cAAc,CAAC,GAAG,EAAE,OAAO,GAAG,GAAG,IAAI,YAAY,CAOhE;AAED,qDAAqD;AACrD,wBAAgB,kBAAkB,CAChC,QAAQ,EAAE,YAAY,EACtB,IAAI,GAAE,OAAO,GAAG,WAAW,GAAG,MAAe,GAC5C,IAAI,CA6BN"}
1
+ {"version":3,"file":"user.d.ts","sourceRoot":"","sources":["../../src/types/user.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,8CAA8C;AAC9C,MAAM,WAAW,IAAI;IACnB,EAAE,EAAE,MAAM,CAAA;IACV,IAAI,EAAE,MAAM,CAAA;IACZ,KAAK,EAAE,MAAM,CAAA;IACb,MAAM,CAAC,EAAE,MAAM,GAAG,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,IAAI,CAAA;IAChD,UAAU,CAAC,EAAE,MAAM,GAAG,IAAI,CAAA;IAC1B,WAAW,CAAC,EAAE,MAAM,GAAG,IAAI,CAAA;IAC3B,GAAG,CAAC,EAAE,MAAM,GAAG,IAAI,CAAA;IACnB,MAAM,CAAC,EAAE,MAAM,CAAA;IACf,IAAI,EAAE,OAAO,GAAG,WAAW,GAAG,MAAM,CAAA;IACpC,SAAS,CAAC,EAAE,MAAM,CAAA;IAClB,KAAK,CAAC,EAAE,MAAM,EAAE,CAAA;IAChB,WAAW,CAAC,EAAE,MAAM,EAAE,CAAA;IACtB,YAAY,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAA;IACtC,aAAa,CAAC,EAAE,MAAM,CAAA;IACtB,UAAU,CAAC,EAAE,MAAM,CAAA;IACnB,MAAM,CAAC,EAAE,QAAQ,GAAG,WAAW,GAAG,QAAQ,CAAA;IAC1C,UAAU,CAAC,EAAE,MAAM,CAAA;CACpB;AAED,oDAAoD;AACpD,MAAM,WAAW,YAAY;IAC3B,EAAE,EAAE,MAAM,CAAA;IACV,MAAM,CAAC,EAAE,MAAM,CAAA;IACf,IAAI,EAAE,MAAM,CAAA;IACZ,MAAM,CAAC,EAAE,MAAM,GAAG,IAAI,CAAA;IACtB,UAAU,CAAC,EAAE,MAAM,GAAG,IAAI,CAAA;IAC1B,WAAW,CAAC,EAAE,MAAM,GAAG,IAAI,CAAA;IAC3B,GAAG,CAAC,EAAE,MAAM,GAAG,IAAI,CAAA;IACnB,KAAK,CAAC,EAAE,MAAM,CAAA;IACd,UAAU,CAAC,EAAE,MAAM,CAAA;IACnB,UAAU,CAAC,EAAE,MAAM,CAAA;CACpB;AAED,2BAA2B;AAC3B,wBAAgB,MAAM,CAAC,GAAG,EAAE,OAAO,GAAG,GAAG,IAAI,IAAI,CAShD;AAED,mCAAmC;AACnC,wBAAgB,cAAc,CAAC,GAAG,EAAE,OAAO,GAAG,GAAG,IAAI,YAAY,CAOhE;AAED,qDAAqD;AACrD,wBAAgB,kBAAkB,CAChC,QAAQ,EAAE,YAAY,EACtB,IAAI,GAAE,OAAO,GAAG,WAAW,GAAG,MAAe,GAC5C,IAAI,CA6BN"}
@@ -1 +1 @@
1
- {"version":3,"file":"user.js","sourceRoot":"","sources":["../../src/types/user.ts"],"names":[],"mappings":"AAAA;;GAEG;AAoCH,2BAA2B;AAC3B,MAAM,UAAU,MAAM,CAAC,GAAY;IACjC,OAAO,CACL,GAAG,KAAK,IAAI;QACZ,OAAO,GAAG,KAAK,QAAQ;QACvB,IAAI,IAAI,GAAG;QACX,MAAM,IAAI,GAAG;QACb,OAAO,IAAI,GAAG;QACd,MAAM,IAAI,GAAG,CACd,CAAA;AACH,CAAC;AAED,mCAAmC;AACnC,MAAM,UAAU,cAAc,CAAC,GAAY;IACzC,OAAO,CACL,GAAG,KAAK,IAAI;QACZ,OAAO,GAAG,KAAK,QAAQ;QACvB,IAAI,IAAI,GAAG;QACX,MAAM,IAAI,GAAG,CACd,CAAA;AACH,CAAC;AAED,qDAAqD;AACrD,MAAM,UAAU,kBAAkB,CAChC,QAAsB,EACtB,OAAuC,MAAM;IAE7C,MAAM,IAAI,GAAS;QACjB,EAAE,EAAE,QAAQ,CAAC,EAAE;QACf,IAAI,EAAE,QAAQ,CAAC,IAAI;QACnB,KAAK,EAAE,QAAQ,CAAC,KAAK,IAAI,EAAE;QAC3B,IAAI;KACL,CAAA;IAED,IAAI,QAAQ,CAAC,MAAM,KAAK,IAAI,IAAI,QAAQ,CAAC,MAAM,KAAK,SAAS,EAAE,CAAC;QAC9D,IAAI,CAAC,MAAM,GAAG,QAAQ,CAAC,MAAM,CAAA;IAC/B,CAAC;IAED,IAAI,QAAQ,CAAC,UAAU,KAAK,IAAI,IAAI,QAAQ,CAAC,UAAU,KAAK,SAAS,EAAE,CAAC;QACtE,IAAI,CAAC,UAAU,GAAG,QAAQ,CAAC,UAAU,CAAA;IACvC,CAAC;IAED,IAAI,QAAQ,CAAC,WAAW,KAAK,IAAI,IAAI,QAAQ,CAAC,WAAW,KAAK,SAAS,EAAE,CAAC;QACxE,IAAI,CAAC,WAAW,GAAG,QAAQ,CAAC,WAAW,CAAA;IACzC,CAAC;IAED,IAAI,QAAQ,CAAC,MAAM,KAAK,SAAS,EAAE,CAAC;QAClC,IAAI,CAAC,MAAM,GAAG,QAAQ,CAAC,MAAM,CAAA;IAC/B,CAAC;IAED,IAAI,QAAQ,CAAC,UAAU,KAAK,SAAS,EAAE,CAAC;QACtC,IAAI,CAAC,UAAU,GAAG,QAAQ,CAAC,UAAU,CAAA;IACvC,CAAC;IAED,OAAO,IAAI,CAAA;AACb,CAAC"}
1
+ {"version":3,"file":"user.js","sourceRoot":"","sources":["../../src/types/user.ts"],"names":[],"mappings":"AAAA;;GAEG;AAqCH,2BAA2B;AAC3B,MAAM,UAAU,MAAM,CAAC,GAAY;IACjC,OAAO,CACL,GAAG,KAAK,IAAI;QACZ,OAAO,GAAG,KAAK,QAAQ;QACvB,IAAI,IAAI,GAAG;QACX,MAAM,IAAI,GAAG;QACb,OAAO,IAAI,GAAG;QACd,MAAM,IAAI,GAAG,CACd,CAAA;AACH,CAAC;AAED,mCAAmC;AACnC,MAAM,UAAU,cAAc,CAAC,GAAY;IACzC,OAAO,CACL,GAAG,KAAK,IAAI;QACZ,OAAO,GAAG,KAAK,QAAQ;QACvB,IAAI,IAAI,GAAG;QACX,MAAM,IAAI,GAAG,CACd,CAAA;AACH,CAAC;AAED,qDAAqD;AACrD,MAAM,UAAU,kBAAkB,CAChC,QAAsB,EACtB,OAAuC,MAAM;IAE7C,MAAM,IAAI,GAAS;QACjB,EAAE,EAAE,QAAQ,CAAC,EAAE;QACf,IAAI,EAAE,QAAQ,CAAC,IAAI;QACnB,KAAK,EAAE,QAAQ,CAAC,KAAK,IAAI,EAAE;QAC3B,IAAI;KACL,CAAA;IAED,IAAI,QAAQ,CAAC,MAAM,KAAK,IAAI,IAAI,QAAQ,CAAC,MAAM,KAAK,SAAS,EAAE,CAAC;QAC9D,IAAI,CAAC,MAAM,GAAG,QAAQ,CAAC,MAAM,CAAA;IAC/B,CAAC;IAED,IAAI,QAAQ,CAAC,UAAU,KAAK,IAAI,IAAI,QAAQ,CAAC,UAAU,KAAK,SAAS,EAAE,CAAC;QACtE,IAAI,CAAC,UAAU,GAAG,QAAQ,CAAC,UAAU,CAAA;IACvC,CAAC;IAED,IAAI,QAAQ,CAAC,WAAW,KAAK,IAAI,IAAI,QAAQ,CAAC,WAAW,KAAK,SAAS,EAAE,CAAC;QACxE,IAAI,CAAC,WAAW,GAAG,QAAQ,CAAC,WAAW,CAAA;IACzC,CAAC;IAED,IAAI,QAAQ,CAAC,MAAM,KAAK,SAAS,EAAE,CAAC;QAClC,IAAI,CAAC,MAAM,GAAG,QAAQ,CAAC,MAAM,CAAA;IAC/B,CAAC;IAED,IAAI,QAAQ,CAAC,UAAU,KAAK,SAAS,EAAE,CAAC;QACtC,IAAI,CAAC,UAAU,GAAG,QAAQ,CAAC,UAAU,CAAA;IACvC,CAAC;IAED,OAAO,IAAI,CAAA;AACb,CAAC"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@codingfactory/socialkit-vue",
3
- "version": "0.1.0",
3
+ "version": "0.2.0",
4
4
  "description": "Shared Vue 3 utilities for SocialKit-powered frontends",
5
5
  "type": "module",
6
6
  "main": "./dist/index.js",
package/src/index.ts CHANGED
@@ -11,6 +11,7 @@ export type {
11
11
  ApiResponse,
12
12
  PaginatedResponse,
13
13
  ApiError,
14
+ EchoConfig,
14
15
  UploadProgressEvent,
15
16
  RequestConfig
16
17
  } from './types/api.js'
@@ -20,6 +21,14 @@ export type {
20
21
  IdentityUser
21
22
  } from './types/user.js'
22
23
 
24
+ export type {
25
+ AuthResponse,
26
+ LoginCredentials,
27
+ PasswordResetConfirm,
28
+ PasswordResetRequest,
29
+ RegisterCredentials
30
+ } from './types/auth.js'
31
+
23
32
  export {
24
33
  isUser,
25
34
  isIdentityUser,
@@ -47,6 +56,16 @@ export {
47
56
  createApiService
48
57
  } from './services/api.js'
49
58
 
59
+ // ── Identity Service ─────────────────────────────────────────────────────────
60
+ export type {
61
+ IdentityServiceConfig,
62
+ IdentityServiceInstance
63
+ } from './services/identity.js'
64
+
65
+ export {
66
+ createIdentityService
67
+ } from './services/identity.js'
68
+
50
69
  // ── Auth Service ─────────────────────────────────────────────────────────────
51
70
  export type {
52
71
  AuthServiceConfig,
@@ -72,6 +91,18 @@ export {
72
91
  createExtendedAuthService
73
92
  } from './services/auth.js'
74
93
 
94
+ // ── Identity Types ───────────────────────────────────────────────────────────
95
+ export type {
96
+ AccountDeletionConfirmationResult,
97
+ AccountDeletionRequestResult,
98
+ ChangePasswordPayload,
99
+ ChangePasswordResult,
100
+ TwoFactorDisablePayload,
101
+ TwoFactorEnableResult,
102
+ TwoFactorEnrollment,
103
+ TwoFactorStatus
104
+ } from './types/identity.js'
105
+
75
106
  // ── Auth Store ───────────────────────────────────────────────────────────────
76
107
  export type {
77
108
  AuthStoreConfig,
@@ -0,0 +1,281 @@
1
+ /**
2
+ * Configurable identity service for SocialKit-powered frontends.
3
+ */
4
+
5
+ import type { AxiosInstance } from 'axios'
6
+ import type { TokenStorage } from '../utils/tokenStorage.js'
7
+ import { extractTokenFromResponse } from '../utils/tokenStorage.js'
8
+ import type {
9
+ AccountDeletionConfirmationResult,
10
+ AccountDeletionRequestResult,
11
+ ChangePasswordPayload,
12
+ ChangePasswordResult,
13
+ TwoFactorDisablePayload,
14
+ TwoFactorEnableResult,
15
+ TwoFactorEnrollment,
16
+ TwoFactorStatus
17
+ } from '../types/identity.js'
18
+ import type { IdentityUser } from '../types/user.js'
19
+
20
+ interface IdentityUserResponse {
21
+ id: string
22
+ handle?: string
23
+ name: string
24
+ avatar?: string | { url: string; thumb_url?: string } | null
25
+ avatar_url?: string | null
26
+ cover_photo?: string | null
27
+ bio?: string | null
28
+ email?: string
29
+ created_at?: string
30
+ updated_at?: string
31
+ }
32
+
33
+ interface DataEnvelope<T> {
34
+ data?: T
35
+ message?: string
36
+ }
37
+
38
+ interface TwoFactorStatusPayload {
39
+ enabled?: unknown
40
+ }
41
+
42
+ interface TwoFactorEnrollmentPayload {
43
+ qr_code_url?: unknown
44
+ secret_base32?: unknown
45
+ }
46
+
47
+ interface RecoveryCodesPayload {
48
+ recovery_codes?: unknown
49
+ }
50
+
51
+ interface AccountDeletionRequestPayload {
52
+ id?: unknown
53
+ status?: unknown
54
+ confirmation_token?: unknown
55
+ dev_token?: unknown
56
+ }
57
+
58
+ interface AccountDeletionConfirmationPayload {
59
+ status?: unknown
60
+ }
61
+
62
+ export interface IdentityServiceConfig {
63
+ client: AxiosInstance
64
+ tokenStorage: TokenStorage
65
+ }
66
+
67
+ export interface IdentityServiceInstance {
68
+ getCurrentUser(): Promise<IdentityUser>
69
+ getUser(userId: string): Promise<IdentityUser>
70
+ updateUser(userId: string, payload: Partial<IdentityUser>): Promise<IdentityUser>
71
+ uploadAvatar(file: File): Promise<{ url: string }>
72
+ changePassword(payload: ChangePasswordPayload): Promise<ChangePasswordResult>
73
+ getTwoFactorStatus(): Promise<TwoFactorStatus>
74
+ startTwoFactorEnrollment(currentPassword: string): Promise<TwoFactorEnrollment>
75
+ enableTwoFactor(code: string): Promise<TwoFactorEnableResult>
76
+ regenerateTwoFactorRecoveryCodes(code: string): Promise<TwoFactorEnableResult>
77
+ disableTwoFactor(payload: TwoFactorDisablePayload): Promise<void>
78
+ requestAccountDeletion(): Promise<AccountDeletionRequestResult>
79
+ confirmAccountDeletion(
80
+ requestId: string,
81
+ confirmationToken: string
82
+ ): Promise<AccountDeletionConfirmationResult>
83
+ }
84
+
85
+ class IdentityService implements IdentityServiceInstance {
86
+ public constructor(
87
+ private readonly client: AxiosInstance,
88
+ private readonly tokenStorage: TokenStorage
89
+ ) {}
90
+
91
+ public async getCurrentUser(): Promise<IdentityUser> {
92
+ const response = await this.client.get<DataEnvelope<unknown>>('/v1/me')
93
+ return this.normalizeUser(response.data.data)
94
+ }
95
+
96
+ public async getUser(userId: string): Promise<IdentityUser> {
97
+ const response = await this.client.get<DataEnvelope<unknown>>('/v1/identity/users/by-ids', {
98
+ params: {
99
+ ids: userId
100
+ }
101
+ })
102
+
103
+ const users = Array.isArray(response.data?.data) ? response.data.data : []
104
+ const user = users.find((candidate: unknown) => {
105
+ if (!candidate || typeof candidate !== 'object') {
106
+ return false
107
+ }
108
+
109
+ const candidateWithId = candidate as { id?: unknown }
110
+
111
+ return candidateWithId.id === userId
112
+ })
113
+
114
+ if (!user) {
115
+ throw new Error('User not found')
116
+ }
117
+
118
+ return this.normalizeUser(user)
119
+ }
120
+
121
+ public async updateUser(
122
+ _userId: string,
123
+ payload: Partial<IdentityUser>
124
+ ): Promise<IdentityUser> {
125
+ const response = await this.client.patch<DataEnvelope<unknown>>('/v1/me', payload)
126
+ return this.normalizeUser(response.data.data)
127
+ }
128
+
129
+ public async uploadAvatar(file: File): Promise<{ url: string }> {
130
+ const formData = new FormData()
131
+ formData.append('file', file)
132
+
133
+ const response = await this.client.post<{ url: string }>('/v1/media/upload', formData)
134
+ return response.data
135
+ }
136
+
137
+ public async changePassword(payload: ChangePasswordPayload): Promise<ChangePasswordResult> {
138
+ const response = await this.client.patch<DataEnvelope<unknown>>('/v1/me/password', {
139
+ current_password: payload.currentPassword,
140
+ password: payload.newPassword,
141
+ password_confirmation: payload.confirmPassword
142
+ })
143
+
144
+ const rotatedToken = extractTokenFromResponse(response.data)
145
+ if (rotatedToken) {
146
+ this.tokenStorage.setToken(rotatedToken)
147
+ }
148
+
149
+ const message = typeof response.data?.message === 'string' && response.data.message.trim() !== ''
150
+ ? response.data.message
151
+ : 'Password updated successfully'
152
+
153
+ return { message }
154
+ }
155
+
156
+ public async getTwoFactorStatus(): Promise<TwoFactorStatus> {
157
+ const response = await this.client.get<DataEnvelope<TwoFactorStatusPayload>>('/v1/security/2fa/status')
158
+
159
+ return {
160
+ enabled: response.data?.data?.enabled === true
161
+ }
162
+ }
163
+
164
+ public async startTwoFactorEnrollment(currentPassword: string): Promise<TwoFactorEnrollment> {
165
+ const response = await this.client.post<DataEnvelope<TwoFactorEnrollmentPayload>>(
166
+ '/v1/security/2fa/start',
167
+ {
168
+ current_password: currentPassword
169
+ }
170
+ )
171
+
172
+ const qrCodeUrl = response.data?.data?.qr_code_url
173
+ const secretBase32 = response.data?.data?.secret_base32
174
+
175
+ if (typeof qrCodeUrl !== 'string' || typeof secretBase32 !== 'string') {
176
+ throw new Error('Invalid two-factor enrollment response payload')
177
+ }
178
+
179
+ return {
180
+ qrCodeUrl,
181
+ secretBase32
182
+ }
183
+ }
184
+
185
+ public async enableTwoFactor(code: string): Promise<TwoFactorEnableResult> {
186
+ const response = await this.client.post<DataEnvelope<RecoveryCodesPayload>>(
187
+ '/v1/security/2fa/enable',
188
+ { code }
189
+ )
190
+
191
+ return {
192
+ recoveryCodes: this.normalizeRecoveryCodes(response.data?.data?.recovery_codes)
193
+ }
194
+ }
195
+
196
+ public async regenerateTwoFactorRecoveryCodes(code: string): Promise<TwoFactorEnableResult> {
197
+ const response = await this.client.post<DataEnvelope<RecoveryCodesPayload>>(
198
+ '/v1/security/2fa/recovery-codes/regenerate',
199
+ { code }
200
+ )
201
+
202
+ return {
203
+ recoveryCodes: this.normalizeRecoveryCodes(response.data?.data?.recovery_codes)
204
+ }
205
+ }
206
+
207
+ public async disableTwoFactor(payload: TwoFactorDisablePayload): Promise<void> {
208
+ await this.client.post('/v1/security/2fa/disable', {
209
+ password: payload.password,
210
+ code: payload.code
211
+ })
212
+ }
213
+
214
+ public async requestAccountDeletion(): Promise<AccountDeletionRequestResult> {
215
+ const response = await this.client.post<DataEnvelope<AccountDeletionRequestPayload>>('/v1/compliance/dsar/erase')
216
+ const id = response.data?.data?.id
217
+ const status = response.data?.data?.status
218
+ const confirmationToken = response.data?.data?.confirmation_token
219
+ const devToken = response.data?.data?.dev_token
220
+
221
+ if (typeof id !== 'string' || typeof status !== 'string') {
222
+ throw new Error('Invalid account deletion request payload')
223
+ }
224
+
225
+ return {
226
+ requestId: id,
227
+ status,
228
+ confirmationToken: typeof confirmationToken === 'string'
229
+ ? confirmationToken
230
+ : typeof devToken === 'string'
231
+ ? devToken
232
+ : null
233
+ }
234
+ }
235
+
236
+ public async confirmAccountDeletion(
237
+ requestId: string,
238
+ confirmationToken: string
239
+ ): Promise<AccountDeletionConfirmationResult> {
240
+ const response = await this.client.post<DataEnvelope<AccountDeletionConfirmationPayload>>(
241
+ `/v1/compliance/dsar/${encodeURIComponent(requestId)}/confirm`,
242
+ {
243
+ token: confirmationToken
244
+ }
245
+ )
246
+ const status = response.data?.data?.status
247
+
248
+ if (typeof status !== 'string') {
249
+ throw new Error('Invalid account deletion confirmation payload')
250
+ }
251
+
252
+ return { status }
253
+ }
254
+
255
+ private normalizeUser(user: unknown): IdentityUser {
256
+ if (!user || typeof user !== 'object') {
257
+ throw new Error('Invalid user data')
258
+ }
259
+
260
+ const userData = user as IdentityUserResponse
261
+ const avatarUrl = typeof userData.avatar === 'string'
262
+ ? userData.avatar
263
+ : userData.avatar?.url ?? userData.avatar_url ?? null
264
+
265
+ return {
266
+ ...userData,
267
+ avatar: avatarUrl,
268
+ ...(avatarUrl ? { avatar_url: avatarUrl } : {})
269
+ }
270
+ }
271
+
272
+ private normalizeRecoveryCodes(recoveryCodesRaw: unknown): string[] {
273
+ return Array.isArray(recoveryCodesRaw)
274
+ ? recoveryCodesRaw.filter((value: unknown): value is string => typeof value === 'string')
275
+ : []
276
+ }
277
+ }
278
+
279
+ export function createIdentityService(config: IdentityServiceConfig): IdentityServiceInstance {
280
+ return new IdentityService(config.client, config.tokenStorage)
281
+ }
package/src/types/api.ts CHANGED
@@ -54,3 +54,23 @@ export interface RequestConfig {
54
54
  onUploadProgress?: (progressEvent: UploadProgressEvent) => void
55
55
  signal?: AbortSignal
56
56
  }
57
+
58
+ /** Echo/WebSocket configuration shape used by app-level realtime clients. */
59
+ export interface EchoConfig {
60
+ broadcaster: string
61
+ key: string
62
+ wsHost: string
63
+ wsPort: number
64
+ wssPort: number
65
+ forceTLS: boolean
66
+ encrypted: boolean
67
+ disableStats: boolean
68
+ enabledTransports: string[]
69
+ auth: {
70
+ headers: {
71
+ Authorization: string
72
+ Accept: string
73
+ }
74
+ }
75
+ authEndpoint: string
76
+ }
@@ -0,0 +1,39 @@
1
+ /**
2
+ * Legacy auth DTOs that remain useful for app-level compatibility.
3
+ *
4
+ * These types do not drive the shared auth service implementation directly,
5
+ * but keeping them in the package lets apps re-export one source of truth.
6
+ */
7
+
8
+ import type { User } from './user.js'
9
+
10
+ export interface LoginCredentials {
11
+ email: string
12
+ password: string
13
+ remember?: boolean
14
+ }
15
+
16
+ export interface RegisterCredentials {
17
+ name: string
18
+ email: string
19
+ username: string
20
+ password: string
21
+ password_confirmation: string
22
+ }
23
+
24
+ export interface AuthResponse {
25
+ user: User
26
+ token: string
27
+ expires_at?: string
28
+ }
29
+
30
+ export interface PasswordResetRequest {
31
+ email: string
32
+ }
33
+
34
+ export interface PasswordResetConfirm {
35
+ email: string
36
+ token: string
37
+ password: string
38
+ password_confirmation: string
39
+ }
@@ -0,0 +1,41 @@
1
+ /**
2
+ * Identity-service DTOs shared across SocialKit frontends.
3
+ */
4
+
5
+ export interface ChangePasswordPayload {
6
+ currentPassword: string
7
+ newPassword: string
8
+ confirmPassword: string
9
+ }
10
+
11
+ export interface ChangePasswordResult {
12
+ message: string
13
+ }
14
+
15
+ export interface TwoFactorStatus {
16
+ enabled: boolean
17
+ }
18
+
19
+ export interface TwoFactorEnrollment {
20
+ qrCodeUrl: string
21
+ secretBase32: string
22
+ }
23
+
24
+ export interface TwoFactorEnableResult {
25
+ recoveryCodes: string[]
26
+ }
27
+
28
+ export interface TwoFactorDisablePayload {
29
+ password: string
30
+ code: string
31
+ }
32
+
33
+ export interface AccountDeletionRequestResult {
34
+ requestId: string
35
+ status: string
36
+ confirmationToken: string | null
37
+ }
38
+
39
+ export interface AccountDeletionConfirmationResult {
40
+ status: string
41
+ }
package/src/types/user.ts CHANGED
@@ -10,6 +10,7 @@ export interface User {
10
10
  avatar?: string | Record<string, unknown> | null
11
11
  avatar_url?: string | null
12
12
  cover_photo?: string | null
13
+ bio?: string | null
13
14
  handle?: string
14
15
  role: 'admin' | 'moderator' | 'user'
15
16
  tenant_id?: string