@23blocks/block-authentication 1.0.4 → 2.0.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 +1 -0
- package/dist/index.esm.js +2095 -0
- package/dist/src/index.d.ts +5 -0
- package/dist/src/index.d.ts.map +1 -0
- package/dist/src/lib/authentication.block.d.ts +149 -0
- package/dist/src/lib/authentication.block.d.ts.map +1 -0
- package/dist/src/lib/mappers/api-key.mapper.d.ts +11 -0
- package/dist/src/lib/mappers/api-key.mapper.d.ts.map +1 -0
- package/dist/src/lib/mappers/app.mapper.d.ts +15 -0
- package/dist/src/lib/mappers/app.mapper.d.ts.map +1 -0
- package/dist/src/lib/mappers/company.mapper.d.ts +23 -0
- package/dist/src/lib/mappers/company.mapper.d.ts.map +1 -0
- package/dist/src/lib/mappers/geography.mapper.d.ts +23 -0
- package/dist/src/lib/mappers/geography.mapper.d.ts.map +1 -0
- package/dist/src/lib/mappers/guest.mapper.d.ts +27 -0
- package/dist/src/lib/mappers/guest.mapper.d.ts.map +1 -0
- package/dist/{lib/mappers/index.js → src/lib/mappers/index.d.ts} +2 -11
- package/dist/src/lib/mappers/index.d.ts.map +1 -0
- package/dist/src/lib/mappers/subscription.mapper.d.ts +15 -0
- package/dist/src/lib/mappers/subscription.mapper.d.ts.map +1 -0
- package/dist/src/lib/mappers/user.mapper.d.ts +23 -0
- package/dist/src/lib/mappers/user.mapper.d.ts.map +1 -0
- package/dist/src/lib/mappers/utils.d.ts +21 -0
- package/dist/src/lib/mappers/utils.d.ts.map +1 -0
- package/dist/src/lib/services/api-keys.service.d.ts +65 -0
- package/dist/src/lib/services/api-keys.service.d.ts.map +1 -0
- package/dist/src/lib/services/apps.service.d.ts +87 -0
- package/dist/src/lib/services/apps.service.d.ts.map +1 -0
- package/dist/src/lib/services/auth.service.d.ts +69 -0
- package/dist/src/lib/services/auth.service.d.ts.map +1 -0
- package/dist/src/lib/services/geography.service.d.ts +125 -0
- package/dist/src/lib/services/geography.service.d.ts.map +1 -0
- package/dist/src/lib/services/guests.service.d.ts +166 -0
- package/dist/src/lib/services/guests.service.d.ts.map +1 -0
- package/dist/src/lib/services/index.d.ts +9 -0
- package/dist/src/lib/services/index.d.ts.map +1 -0
- package/dist/src/lib/services/roles.service.d.ts +82 -0
- package/dist/src/lib/services/roles.service.d.ts.map +1 -0
- package/dist/src/lib/services/subscriptions.service.d.ts +102 -0
- package/dist/src/lib/services/subscriptions.service.d.ts.map +1 -0
- package/dist/src/lib/services/users.service.d.ts +85 -0
- package/dist/src/lib/services/users.service.d.ts.map +1 -0
- package/dist/src/lib/types/api-key.d.ts +71 -0
- package/dist/src/lib/types/api-key.d.ts.map +1 -0
- package/dist/src/lib/types/app.d.ts +86 -0
- package/dist/src/lib/types/app.d.ts.map +1 -0
- package/dist/src/lib/types/auth.d.ts +138 -0
- package/dist/src/lib/types/auth.d.ts.map +1 -0
- package/dist/src/lib/types/company.d.ts +73 -0
- package/dist/src/lib/types/company.d.ts.map +1 -0
- package/dist/src/lib/types/geography.d.ts +73 -0
- package/dist/src/lib/types/geography.d.ts.map +1 -0
- package/dist/src/lib/types/guest.d.ts +136 -0
- package/dist/src/lib/types/guest.d.ts.map +1 -0
- package/dist/src/lib/types/index.d.ts +9 -0
- package/dist/src/lib/types/index.d.ts.map +1 -0
- package/dist/src/lib/types/subscription.d.ts +78 -0
- package/dist/src/lib/types/subscription.d.ts.map +1 -0
- package/dist/src/lib/types/user.d.ts +108 -0
- package/dist/src/lib/types/user.d.ts.map +1 -0
- package/package.json +10 -8
- package/dist/index.js +0 -6
- package/dist/index.js.map +0 -1
- package/dist/lib/authentication.block.js +0 -102
- package/dist/lib/authentication.block.js.map +0 -1
- package/dist/lib/mappers/api-key.mapper.js +0 -57
- package/dist/lib/mappers/api-key.mapper.js.map +0 -1
- package/dist/lib/mappers/app.mapper.js +0 -98
- package/dist/lib/mappers/app.mapper.js.map +0 -1
- package/dist/lib/mappers/company.mapper.js +0 -128
- package/dist/lib/mappers/company.mapper.js.map +0 -1
- package/dist/lib/mappers/geography.mapper.js +0 -129
- package/dist/lib/mappers/geography.mapper.js.map +0 -1
- package/dist/lib/mappers/guest.mapper.js +0 -176
- package/dist/lib/mappers/guest.mapper.js.map +0 -1
- package/dist/lib/mappers/index.js.map +0 -1
- package/dist/lib/mappers/subscription.mapper.js +0 -134
- package/dist/lib/mappers/subscription.mapper.js.map +0 -1
- package/dist/lib/mappers/user.mapper.js +0 -163
- package/dist/lib/mappers/user.mapper.js.map +0 -1
- package/dist/lib/mappers/utils.js +0 -54
- package/dist/lib/mappers/utils.js.map +0 -1
- package/dist/lib/services/api-keys.service.js +0 -93
- package/dist/lib/services/api-keys.service.js.map +0 -1
- package/dist/lib/services/apps.service.js +0 -139
- package/dist/lib/services/apps.service.js.map +0 -1
- package/dist/lib/services/auth.service.js +0 -147
- package/dist/lib/services/auth.service.js.map +0 -1
- package/dist/lib/services/geography.service.js +0 -151
- package/dist/lib/services/geography.service.js.map +0 -1
- package/dist/lib/services/guests.service.js +0 -219
- package/dist/lib/services/guests.service.js.map +0 -1
- package/dist/lib/services/index.js +0 -14
- package/dist/lib/services/index.js.map +0 -1
- package/dist/lib/services/roles.service.js +0 -91
- package/dist/lib/services/roles.service.js.map +0 -1
- package/dist/lib/services/subscriptions.service.js +0 -146
- package/dist/lib/services/subscriptions.service.js.map +0 -1
- package/dist/lib/services/users.service.js +0 -116
- package/dist/lib/services/users.service.js.map +0 -1
- package/dist/lib/types/api-key.js +0 -5
- package/dist/lib/types/api-key.js.map +0 -1
- package/dist/lib/types/app.js +0 -5
- package/dist/lib/types/app.js.map +0 -1
- package/dist/lib/types/auth.js +0 -5
- package/dist/lib/types/auth.js.map +0 -1
- package/dist/lib/types/company.js +0 -5
- package/dist/lib/types/company.js.map +0 -1
- package/dist/lib/types/geography.js +0 -5
- package/dist/lib/types/geography.js.map +0 -1
- package/dist/lib/types/guest.js +0 -5
- package/dist/lib/types/guest.js.map +0 -1
- package/dist/lib/types/index.js +0 -4
- package/dist/lib/types/index.js.map +0 -1
- package/dist/lib/types/subscription.js +0 -5
- package/dist/lib/types/subscription.js.map +0 -1
- package/dist/lib/types/user.js +0 -13
- package/dist/lib/types/user.js.map +0 -1
|
@@ -1,147 +0,0 @@
|
|
|
1
|
-
import { decodeOne } from '@23blocks/jsonapi-codec';
|
|
2
|
-
import { userMapper } from '../mappers/index.js';
|
|
3
|
-
/**
|
|
4
|
-
* Create the auth service
|
|
5
|
-
*/ export function createAuthService(transport, _config) {
|
|
6
|
-
return {
|
|
7
|
-
async signIn (request) {
|
|
8
|
-
var _response_meta, _response_meta1, _response_meta2, _response_meta3;
|
|
9
|
-
const response = await transport.post('/auth/sign_in', {
|
|
10
|
-
email: request.email,
|
|
11
|
-
password: request.password
|
|
12
|
-
});
|
|
13
|
-
const user = decodeOne(response, userMapper);
|
|
14
|
-
var _response_meta_access_token, _ref;
|
|
15
|
-
return {
|
|
16
|
-
user,
|
|
17
|
-
accessToken: (_ref = (_response_meta_access_token = (_response_meta = response.meta) == null ? void 0 : _response_meta.access_token) != null ? _response_meta_access_token : (_response_meta1 = response.meta) == null ? void 0 : _response_meta1.token) != null ? _ref : '',
|
|
18
|
-
refreshToken: (_response_meta2 = response.meta) == null ? void 0 : _response_meta2.refresh_token,
|
|
19
|
-
tokenType: 'Bearer',
|
|
20
|
-
expiresIn: (_response_meta3 = response.meta) == null ? void 0 : _response_meta3.expires_in
|
|
21
|
-
};
|
|
22
|
-
},
|
|
23
|
-
async signUp (request) {
|
|
24
|
-
var _response_meta, _response_meta1, _response_meta2;
|
|
25
|
-
const response = await transport.post('/auth', {
|
|
26
|
-
email: request.email,
|
|
27
|
-
password: request.password,
|
|
28
|
-
password_confirmation: request.passwordConfirmation,
|
|
29
|
-
name: request.name,
|
|
30
|
-
username: request.username,
|
|
31
|
-
role_id: request.roleId
|
|
32
|
-
});
|
|
33
|
-
const user = decodeOne(response, userMapper);
|
|
34
|
-
var _response_meta_access_token;
|
|
35
|
-
return {
|
|
36
|
-
user,
|
|
37
|
-
accessToken: (_response_meta_access_token = (_response_meta = response.meta) == null ? void 0 : _response_meta.access_token) != null ? _response_meta_access_token : (_response_meta1 = response.meta) == null ? void 0 : _response_meta1.token,
|
|
38
|
-
message: (_response_meta2 = response.meta) == null ? void 0 : _response_meta2.message
|
|
39
|
-
};
|
|
40
|
-
},
|
|
41
|
-
async signOut () {
|
|
42
|
-
await transport.delete('/auth/sign_out');
|
|
43
|
-
},
|
|
44
|
-
async validateToken () {
|
|
45
|
-
const response = await transport.get('/auth/validate_token');
|
|
46
|
-
const user = decodeOne(response, userMapper);
|
|
47
|
-
return {
|
|
48
|
-
user,
|
|
49
|
-
valid: true
|
|
50
|
-
};
|
|
51
|
-
},
|
|
52
|
-
async getCurrentUser () {
|
|
53
|
-
const response = await transport.get('/auth/validate_token', {
|
|
54
|
-
params: {
|
|
55
|
-
include: 'role,user_avatar,user_profile'
|
|
56
|
-
}
|
|
57
|
-
});
|
|
58
|
-
return decodeOne(response, userMapper);
|
|
59
|
-
},
|
|
60
|
-
async requestPasswordReset (request) {
|
|
61
|
-
await transport.post('/auth/password', {
|
|
62
|
-
email: request.email,
|
|
63
|
-
redirect_url: request.redirectUrl
|
|
64
|
-
});
|
|
65
|
-
},
|
|
66
|
-
async updatePassword (request) {
|
|
67
|
-
await transport.put('/auth/password', {
|
|
68
|
-
password: request.password,
|
|
69
|
-
password_confirmation: request.passwordConfirmation,
|
|
70
|
-
reset_password_token: request.resetPasswordToken,
|
|
71
|
-
current_password: request.currentPassword
|
|
72
|
-
});
|
|
73
|
-
},
|
|
74
|
-
async refreshToken (request) {
|
|
75
|
-
const response = await transport.post('/auth/refresh', {
|
|
76
|
-
refresh_token: request.refreshToken
|
|
77
|
-
});
|
|
78
|
-
return {
|
|
79
|
-
accessToken: response.meta.access_token,
|
|
80
|
-
refreshToken: response.meta.refresh_token,
|
|
81
|
-
tokenType: 'Bearer',
|
|
82
|
-
expiresIn: response.meta.expires_in
|
|
83
|
-
};
|
|
84
|
-
},
|
|
85
|
-
async requestMagicLink (request) {
|
|
86
|
-
await transport.post('/auth/magic_link', {
|
|
87
|
-
email: request.email,
|
|
88
|
-
redirect_url: request.redirectUrl
|
|
89
|
-
});
|
|
90
|
-
},
|
|
91
|
-
async verifyMagicLink (request) {
|
|
92
|
-
var _response_meta, _response_meta1, _response_meta2;
|
|
93
|
-
const response = await transport.post('/auth/magic_link/verify', {
|
|
94
|
-
token: request.token
|
|
95
|
-
});
|
|
96
|
-
const user = decodeOne(response, userMapper);
|
|
97
|
-
var _response_meta_access_token;
|
|
98
|
-
return {
|
|
99
|
-
user,
|
|
100
|
-
accessToken: (_response_meta_access_token = (_response_meta = response.meta) == null ? void 0 : _response_meta.access_token) != null ? _response_meta_access_token : '',
|
|
101
|
-
refreshToken: (_response_meta1 = response.meta) == null ? void 0 : _response_meta1.refresh_token,
|
|
102
|
-
tokenType: 'Bearer',
|
|
103
|
-
expiresIn: (_response_meta2 = response.meta) == null ? void 0 : _response_meta2.expires_in
|
|
104
|
-
};
|
|
105
|
-
},
|
|
106
|
-
async sendInvitation (request) {
|
|
107
|
-
await transport.post('/auth/invitation', {
|
|
108
|
-
email: request.email,
|
|
109
|
-
role_id: request.roleId,
|
|
110
|
-
redirect_url: request.redirectUrl
|
|
111
|
-
});
|
|
112
|
-
},
|
|
113
|
-
async acceptInvitation (request) {
|
|
114
|
-
var _response_meta, _response_meta1, _response_meta2;
|
|
115
|
-
const response = await transport.put('/auth/invitation', {
|
|
116
|
-
invitation_token: request.invitationToken,
|
|
117
|
-
password: request.password,
|
|
118
|
-
password_confirmation: request.passwordConfirmation,
|
|
119
|
-
name: request.name
|
|
120
|
-
});
|
|
121
|
-
const user = decodeOne(response, userMapper);
|
|
122
|
-
var _response_meta_access_token;
|
|
123
|
-
return {
|
|
124
|
-
user,
|
|
125
|
-
accessToken: (_response_meta_access_token = (_response_meta = response.meta) == null ? void 0 : _response_meta.access_token) != null ? _response_meta_access_token : '',
|
|
126
|
-
refreshToken: (_response_meta1 = response.meta) == null ? void 0 : _response_meta1.refresh_token,
|
|
127
|
-
tokenType: 'Bearer',
|
|
128
|
-
expiresIn: (_response_meta2 = response.meta) == null ? void 0 : _response_meta2.expires_in
|
|
129
|
-
};
|
|
130
|
-
},
|
|
131
|
-
async confirmEmail (token) {
|
|
132
|
-
const response = await transport.get('/auth/confirmation', {
|
|
133
|
-
params: {
|
|
134
|
-
confirmation_token: token
|
|
135
|
-
}
|
|
136
|
-
});
|
|
137
|
-
return decodeOne(response, userMapper);
|
|
138
|
-
},
|
|
139
|
-
async resendConfirmation (email) {
|
|
140
|
-
await transport.post('/auth/confirmation', {
|
|
141
|
-
email
|
|
142
|
-
});
|
|
143
|
-
}
|
|
144
|
-
};
|
|
145
|
-
}
|
|
146
|
-
|
|
147
|
-
//# sourceMappingURL=auth.service.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"sources":["../../../src/lib/services/auth.service.ts"],"sourcesContent":["import type { Transport } from '@23blocks/contracts';\nimport { decodeOne } from '@23blocks/jsonapi-codec';\nimport type {\n SignInRequest,\n SignInResponse,\n SignUpRequest,\n SignUpResponse,\n PasswordResetRequest,\n PasswordUpdateRequest,\n TokenValidationResponse,\n RefreshTokenRequest,\n RefreshTokenResponse,\n MagicLinkRequest,\n MagicLinkVerifyRequest,\n InvitationRequest,\n AcceptInvitationRequest,\n User,\n} from '../types/index.js';\nimport { userMapper } from '../mappers/index.js';\nimport type { AuthenticationBlockConfig } from '../authentication.block.js';\n\n/**\n * Authentication service\n */\nexport interface AuthService {\n /**\n * Sign in with email and password\n */\n signIn(request: SignInRequest): Promise<SignInResponse>;\n\n /**\n * Sign up a new user\n */\n signUp(request: SignUpRequest): Promise<SignUpResponse>;\n\n /**\n * Sign out the current user\n */\n signOut(): Promise<void>;\n\n /**\n * Validate the current token and get user info\n */\n validateToken(): Promise<TokenValidationResponse>;\n\n /**\n * Get the current authenticated user\n */\n getCurrentUser(): Promise<User>;\n\n /**\n * Request a password reset email\n */\n requestPasswordReset(request: PasswordResetRequest): Promise<void>;\n\n /**\n * Update password (with reset token or current password)\n */\n updatePassword(request: PasswordUpdateRequest): Promise<void>;\n\n /**\n * Refresh the access token\n */\n refreshToken(request: RefreshTokenRequest): Promise<RefreshTokenResponse>;\n\n /**\n * Request a magic link for passwordless login\n */\n requestMagicLink(request: MagicLinkRequest): Promise<void>;\n\n /**\n * Verify a magic link token\n */\n verifyMagicLink(request: MagicLinkVerifyRequest): Promise<SignInResponse>;\n\n /**\n * Send an invitation to a new user\n */\n sendInvitation(request: InvitationRequest): Promise<void>;\n\n /**\n * Accept an invitation\n */\n acceptInvitation(request: AcceptInvitationRequest): Promise<SignInResponse>;\n\n /**\n * Confirm email with token\n */\n confirmEmail(token: string): Promise<User>;\n\n /**\n * Resend confirmation email\n */\n resendConfirmation(email: string): Promise<void>;\n}\n\n/**\n * Create the auth service\n */\nexport function createAuthService(\n transport: Transport,\n _config: AuthenticationBlockConfig\n): AuthService {\n return {\n async signIn(request: SignInRequest): Promise<SignInResponse> {\n const response = await transport.post<{\n data: unknown;\n meta?: { token?: string; access_token?: string; refresh_token?: string; expires_in?: number };\n }>('/auth/sign_in', {\n email: request.email,\n password: request.password,\n });\n\n const user = decodeOne(response, userMapper);\n\n return {\n user,\n accessToken: response.meta?.access_token ?? response.meta?.token ?? '',\n refreshToken: response.meta?.refresh_token,\n tokenType: 'Bearer',\n expiresIn: response.meta?.expires_in,\n };\n },\n\n async signUp(request: SignUpRequest): Promise<SignUpResponse> {\n const response = await transport.post<{\n data: unknown;\n meta?: { token?: string; access_token?: string; message?: string };\n }>('/auth', {\n email: request.email,\n password: request.password,\n password_confirmation: request.passwordConfirmation,\n name: request.name,\n username: request.username,\n role_id: request.roleId,\n });\n\n const user = decodeOne(response, userMapper);\n\n return {\n user,\n accessToken: response.meta?.access_token ?? response.meta?.token,\n message: response.meta?.message,\n };\n },\n\n async signOut(): Promise<void> {\n await transport.delete('/auth/sign_out');\n },\n\n async validateToken(): Promise<TokenValidationResponse> {\n const response = await transport.get<{ data: unknown }>('/auth/validate_token');\n const user = decodeOne(response, userMapper);\n\n return {\n user,\n valid: true,\n };\n },\n\n async getCurrentUser(): Promise<User> {\n const response = await transport.get<{ data: unknown }>(\n '/auth/validate_token',\n { params: { include: 'role,user_avatar,user_profile' } }\n );\n return decodeOne(response, userMapper);\n },\n\n async requestPasswordReset(request: PasswordResetRequest): Promise<void> {\n await transport.post('/auth/password', {\n email: request.email,\n redirect_url: request.redirectUrl,\n });\n },\n\n async updatePassword(request: PasswordUpdateRequest): Promise<void> {\n await transport.put('/auth/password', {\n password: request.password,\n password_confirmation: request.passwordConfirmation,\n reset_password_token: request.resetPasswordToken,\n current_password: request.currentPassword,\n });\n },\n\n async refreshToken(request: RefreshTokenRequest): Promise<RefreshTokenResponse> {\n const response = await transport.post<{\n meta: { access_token: string; refresh_token?: string; expires_in?: number };\n }>('/auth/refresh', {\n refresh_token: request.refreshToken,\n });\n\n return {\n accessToken: response.meta.access_token,\n refreshToken: response.meta.refresh_token,\n tokenType: 'Bearer',\n expiresIn: response.meta.expires_in,\n };\n },\n\n async requestMagicLink(request: MagicLinkRequest): Promise<void> {\n await transport.post('/auth/magic_link', {\n email: request.email,\n redirect_url: request.redirectUrl,\n });\n },\n\n async verifyMagicLink(request: MagicLinkVerifyRequest): Promise<SignInResponse> {\n const response = await transport.post<{\n data: unknown;\n meta?: { access_token?: string; refresh_token?: string; expires_in?: number };\n }>('/auth/magic_link/verify', {\n token: request.token,\n });\n\n const user = decodeOne(response, userMapper);\n\n return {\n user,\n accessToken: response.meta?.access_token ?? '',\n refreshToken: response.meta?.refresh_token,\n tokenType: 'Bearer',\n expiresIn: response.meta?.expires_in,\n };\n },\n\n async sendInvitation(request: InvitationRequest): Promise<void> {\n await transport.post('/auth/invitation', {\n email: request.email,\n role_id: request.roleId,\n redirect_url: request.redirectUrl,\n });\n },\n\n async acceptInvitation(request: AcceptInvitationRequest): Promise<SignInResponse> {\n const response = await transport.put<{\n data: unknown;\n meta?: { access_token?: string; refresh_token?: string; expires_in?: number };\n }>('/auth/invitation', {\n invitation_token: request.invitationToken,\n password: request.password,\n password_confirmation: request.passwordConfirmation,\n name: request.name,\n });\n\n const user = decodeOne(response, userMapper);\n\n return {\n user,\n accessToken: response.meta?.access_token ?? '',\n refreshToken: response.meta?.refresh_token,\n tokenType: 'Bearer',\n expiresIn: response.meta?.expires_in,\n };\n },\n\n async confirmEmail(token: string): Promise<User> {\n const response = await transport.get<{ data: unknown }>('/auth/confirmation', {\n params: { confirmation_token: token },\n });\n return decodeOne(response, userMapper);\n },\n\n async resendConfirmation(email: string): Promise<void> {\n await transport.post('/auth/confirmation', { email });\n },\n };\n}\n"],"names":["decodeOne","userMapper","createAuthService","transport","_config","signIn","request","response","post","email","password","user","accessToken","meta","access_token","token","refreshToken","refresh_token","tokenType","expiresIn","expires_in","signUp","password_confirmation","passwordConfirmation","name","username","role_id","roleId","message","signOut","delete","validateToken","get","valid","getCurrentUser","params","include","requestPasswordReset","redirect_url","redirectUrl","updatePassword","put","reset_password_token","resetPasswordToken","current_password","currentPassword","requestMagicLink","verifyMagicLink","sendInvitation","acceptInvitation","invitation_token","invitationToken","confirmEmail","confirmation_token","resendConfirmation"],"rangeMappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;","mappings":"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"}
|
|
@@ -1,151 +0,0 @@
|
|
|
1
|
-
import { decodeOne, decodeMany, decodePageResult } from '@23blocks/jsonapi-codec';
|
|
2
|
-
import { countryMapper, stateMapper, countyMapper, cityMapper, currencyMapper } from '../mappers/index.js';
|
|
3
|
-
/**
|
|
4
|
-
* Build filter params for list operations
|
|
5
|
-
*/ function buildListParams(params) {
|
|
6
|
-
if (!params) return {};
|
|
7
|
-
const queryParams = {};
|
|
8
|
-
if (params.page) {
|
|
9
|
-
queryParams['page[number]'] = params.page;
|
|
10
|
-
}
|
|
11
|
-
if (params.perPage) {
|
|
12
|
-
queryParams['page[size]'] = params.perPage;
|
|
13
|
-
}
|
|
14
|
-
if (params.sort) {
|
|
15
|
-
const sorts = Array.isArray(params.sort) ? params.sort : [
|
|
16
|
-
params.sort
|
|
17
|
-
];
|
|
18
|
-
queryParams['sort'] = sorts.map((s)=>s.direction === 'desc' ? `-${s.field}` : s.field).join(',');
|
|
19
|
-
}
|
|
20
|
-
if (params.filter) {
|
|
21
|
-
for (const [key, value] of Object.entries(params.filter)){
|
|
22
|
-
queryParams[`filter[${key}]`] = value;
|
|
23
|
-
}
|
|
24
|
-
}
|
|
25
|
-
if (params.include) {
|
|
26
|
-
queryParams['include'] = params.include.join(',');
|
|
27
|
-
}
|
|
28
|
-
return queryParams;
|
|
29
|
-
}
|
|
30
|
-
/**
|
|
31
|
-
* Create the countries service
|
|
32
|
-
*/ export function createCountriesService(transport, _config) {
|
|
33
|
-
return {
|
|
34
|
-
async list (params) {
|
|
35
|
-
const response = await transport.get('/countries', {
|
|
36
|
-
params: buildListParams(params)
|
|
37
|
-
});
|
|
38
|
-
return decodePageResult(response, countryMapper);
|
|
39
|
-
},
|
|
40
|
-
async get (id) {
|
|
41
|
-
const response = await transport.get(`/countries/${id}`);
|
|
42
|
-
return decodeOne(response, countryMapper);
|
|
43
|
-
},
|
|
44
|
-
async getByIsoCode (isoCode) {
|
|
45
|
-
const response = await transport.get(`/countries/by_iso_code/${isoCode}`);
|
|
46
|
-
return decodeOne(response, countryMapper);
|
|
47
|
-
},
|
|
48
|
-
async all () {
|
|
49
|
-
const response = await transport.get('/countries/all');
|
|
50
|
-
return decodeMany(response, countryMapper);
|
|
51
|
-
}
|
|
52
|
-
};
|
|
53
|
-
}
|
|
54
|
-
/**
|
|
55
|
-
* Create the states service
|
|
56
|
-
*/ export function createStatesService(transport, _config) {
|
|
57
|
-
return {
|
|
58
|
-
async list (params) {
|
|
59
|
-
const response = await transport.get('/states', {
|
|
60
|
-
params: buildListParams(params)
|
|
61
|
-
});
|
|
62
|
-
return decodePageResult(response, stateMapper);
|
|
63
|
-
},
|
|
64
|
-
async get (id) {
|
|
65
|
-
const response = await transport.get(`/states/${id}`);
|
|
66
|
-
return decodeOne(response, stateMapper);
|
|
67
|
-
},
|
|
68
|
-
async forCountry (countryId) {
|
|
69
|
-
const response = await transport.get(`/countries/${countryId}/states`);
|
|
70
|
-
return decodeMany(response, stateMapper);
|
|
71
|
-
}
|
|
72
|
-
};
|
|
73
|
-
}
|
|
74
|
-
/**
|
|
75
|
-
* Create the counties service
|
|
76
|
-
*/ export function createCountiesService(transport, _config) {
|
|
77
|
-
return {
|
|
78
|
-
async list (params) {
|
|
79
|
-
const response = await transport.get('/counties', {
|
|
80
|
-
params: buildListParams(params)
|
|
81
|
-
});
|
|
82
|
-
return decodePageResult(response, countyMapper);
|
|
83
|
-
},
|
|
84
|
-
async get (id) {
|
|
85
|
-
const response = await transport.get(`/counties/${id}`);
|
|
86
|
-
return decodeOne(response, countyMapper);
|
|
87
|
-
},
|
|
88
|
-
async forState (stateId) {
|
|
89
|
-
const response = await transport.get(`/states/${stateId}/counties`);
|
|
90
|
-
return decodeMany(response, countyMapper);
|
|
91
|
-
}
|
|
92
|
-
};
|
|
93
|
-
}
|
|
94
|
-
/**
|
|
95
|
-
* Create the cities service
|
|
96
|
-
*/ export function createCitiesService(transport, _config) {
|
|
97
|
-
return {
|
|
98
|
-
async list (params) {
|
|
99
|
-
const response = await transport.get('/cities', {
|
|
100
|
-
params: buildListParams(params)
|
|
101
|
-
});
|
|
102
|
-
return decodePageResult(response, cityMapper);
|
|
103
|
-
},
|
|
104
|
-
async get (id) {
|
|
105
|
-
const response = await transport.get(`/cities/${id}`);
|
|
106
|
-
return decodeOne(response, cityMapper);
|
|
107
|
-
},
|
|
108
|
-
async forState (stateId) {
|
|
109
|
-
const response = await transport.get(`/states/${stateId}/cities`);
|
|
110
|
-
return decodeMany(response, cityMapper);
|
|
111
|
-
},
|
|
112
|
-
async forCounty (countyId) {
|
|
113
|
-
const response = await transport.get(`/counties/${countyId}/cities`);
|
|
114
|
-
return decodeMany(response, cityMapper);
|
|
115
|
-
},
|
|
116
|
-
async search (query, params) {
|
|
117
|
-
const queryParams = buildListParams(params);
|
|
118
|
-
queryParams['q'] = query;
|
|
119
|
-
const response = await transport.get('/cities/search', {
|
|
120
|
-
params: queryParams
|
|
121
|
-
});
|
|
122
|
-
return decodePageResult(response, cityMapper);
|
|
123
|
-
}
|
|
124
|
-
};
|
|
125
|
-
}
|
|
126
|
-
/**
|
|
127
|
-
* Create the currencies service
|
|
128
|
-
*/ export function createCurrenciesService(transport, _config) {
|
|
129
|
-
return {
|
|
130
|
-
async list (params) {
|
|
131
|
-
const response = await transport.get('/currencies', {
|
|
132
|
-
params: buildListParams(params)
|
|
133
|
-
});
|
|
134
|
-
return decodePageResult(response, currencyMapper);
|
|
135
|
-
},
|
|
136
|
-
async get (id) {
|
|
137
|
-
const response = await transport.get(`/currencies/${id}`);
|
|
138
|
-
return decodeOne(response, currencyMapper);
|
|
139
|
-
},
|
|
140
|
-
async getByCode (code) {
|
|
141
|
-
const response = await transport.get(`/currencies/by_code/${code}`);
|
|
142
|
-
return decodeOne(response, currencyMapper);
|
|
143
|
-
},
|
|
144
|
-
async all () {
|
|
145
|
-
const response = await transport.get('/currencies/all');
|
|
146
|
-
return decodeMany(response, currencyMapper);
|
|
147
|
-
}
|
|
148
|
-
};
|
|
149
|
-
}
|
|
150
|
-
|
|
151
|
-
//# sourceMappingURL=geography.service.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"sources":["../../../src/lib/services/geography.service.ts"],"sourcesContent":["import type { Transport, PageResult, ListParams } from '@23blocks/contracts';\nimport type { JsonApiDocument } from '@23blocks/jsonapi-codec';\nimport { decodeOne, decodeMany, decodePageResult } from '@23blocks/jsonapi-codec';\nimport type { Country, State, County, City, Currency } from '../types/index.js';\nimport {\n countryMapper,\n stateMapper,\n countyMapper,\n cityMapper,\n currencyMapper,\n} from '../mappers/index.js';\nimport type { AuthenticationBlockConfig } from '../authentication.block.js';\n\n/**\n * Countries service interface\n */\nexport interface CountriesService {\n /**\n * List countries\n */\n list(params?: ListParams): Promise<PageResult<Country>>;\n\n /**\n * Get a country by ID\n */\n get(id: string): Promise<Country>;\n\n /**\n * Get a country by ISO code\n */\n getByIsoCode(isoCode: string): Promise<Country>;\n\n /**\n * Get all countries (no pagination)\n */\n all(): Promise<Country[]>;\n}\n\n/**\n * States service interface\n */\nexport interface StatesService {\n /**\n * List states\n */\n list(params?: ListParams): Promise<PageResult<State>>;\n\n /**\n * Get a state by ID\n */\n get(id: string): Promise<State>;\n\n /**\n * Get states for a country\n */\n forCountry(countryId: string): Promise<State[]>;\n}\n\n/**\n * Counties service interface\n */\nexport interface CountiesService {\n /**\n * List counties\n */\n list(params?: ListParams): Promise<PageResult<County>>;\n\n /**\n * Get a county by ID\n */\n get(id: string): Promise<County>;\n\n /**\n * Get counties for a state\n */\n forState(stateId: string): Promise<County[]>;\n}\n\n/**\n * Cities service interface\n */\nexport interface CitiesService {\n /**\n * List cities\n */\n list(params?: ListParams): Promise<PageResult<City>>;\n\n /**\n * Get a city by ID\n */\n get(id: string): Promise<City>;\n\n /**\n * Get cities for a state\n */\n forState(stateId: string): Promise<City[]>;\n\n /**\n * Get cities for a county\n */\n forCounty(countyId: string): Promise<City[]>;\n\n /**\n * Search cities by name\n */\n search(query: string, params?: ListParams): Promise<PageResult<City>>;\n}\n\n/**\n * Currencies service interface\n */\nexport interface CurrenciesService {\n /**\n * List currencies\n */\n list(params?: ListParams): Promise<PageResult<Currency>>;\n\n /**\n * Get a currency by ID\n */\n get(id: string): Promise<Currency>;\n\n /**\n * Get a currency by code\n */\n getByCode(code: string): Promise<Currency>;\n\n /**\n * Get all currencies (no pagination)\n */\n all(): Promise<Currency[]>;\n}\n\n/**\n * Build filter params for list operations\n */\nfunction buildListParams(params?: ListParams): Record<string, string | number | boolean | string[] | undefined> {\n if (!params) return {};\n\n const queryParams: Record<string, string | number | boolean | string[] | undefined> = {};\n\n if (params.page) {\n queryParams['page[number]'] = params.page;\n }\n if (params.perPage) {\n queryParams['page[size]'] = params.perPage;\n }\n\n if (params.sort) {\n const sorts = Array.isArray(params.sort) ? params.sort : [params.sort];\n queryParams['sort'] = sorts\n .map((s) => (s.direction === 'desc' ? `-${s.field}` : s.field))\n .join(',');\n }\n\n if (params.filter) {\n for (const [key, value] of Object.entries(params.filter)) {\n queryParams[`filter[${key}]`] = value;\n }\n }\n\n if (params.include) {\n queryParams['include'] = params.include.join(',');\n }\n\n return queryParams;\n}\n\n/**\n * Create the countries service\n */\nexport function createCountriesService(\n transport: Transport,\n _config: AuthenticationBlockConfig\n): CountriesService {\n return {\n async list(params?: ListParams): Promise<PageResult<Country>> {\n const response = await transport.get<JsonApiDocument>(\n '/countries',\n { params: buildListParams(params) }\n );\n return decodePageResult(response, countryMapper);\n },\n\n async get(id: string): Promise<Country> {\n const response = await transport.get<JsonApiDocument>(`/countries/${id}`);\n return decodeOne(response, countryMapper);\n },\n\n async getByIsoCode(isoCode: string): Promise<Country> {\n const response = await transport.get<JsonApiDocument>(\n `/countries/by_iso_code/${isoCode}`\n );\n return decodeOne(response, countryMapper);\n },\n\n async all(): Promise<Country[]> {\n const response = await transport.get<JsonApiDocument>(\n '/countries/all'\n );\n return decodeMany(response, countryMapper);\n },\n };\n}\n\n/**\n * Create the states service\n */\nexport function createStatesService(\n transport: Transport,\n _config: AuthenticationBlockConfig\n): StatesService {\n return {\n async list(params?: ListParams): Promise<PageResult<State>> {\n const response = await transport.get<JsonApiDocument>(\n '/states',\n { params: buildListParams(params) }\n );\n return decodePageResult(response, stateMapper);\n },\n\n async get(id: string): Promise<State> {\n const response = await transport.get<JsonApiDocument>(`/states/${id}`);\n return decodeOne(response, stateMapper);\n },\n\n async forCountry(countryId: string): Promise<State[]> {\n const response = await transport.get<JsonApiDocument>(\n `/countries/${countryId}/states`\n );\n return decodeMany(response, stateMapper);\n },\n };\n}\n\n/**\n * Create the counties service\n */\nexport function createCountiesService(\n transport: Transport,\n _config: AuthenticationBlockConfig\n): CountiesService {\n return {\n async list(params?: ListParams): Promise<PageResult<County>> {\n const response = await transport.get<JsonApiDocument>(\n '/counties',\n { params: buildListParams(params) }\n );\n return decodePageResult(response, countyMapper);\n },\n\n async get(id: string): Promise<County> {\n const response = await transport.get<JsonApiDocument>(`/counties/${id}`);\n return decodeOne(response, countyMapper);\n },\n\n async forState(stateId: string): Promise<County[]> {\n const response = await transport.get<JsonApiDocument>(\n `/states/${stateId}/counties`\n );\n return decodeMany(response, countyMapper);\n },\n };\n}\n\n/**\n * Create the cities service\n */\nexport function createCitiesService(\n transport: Transport,\n _config: AuthenticationBlockConfig\n): CitiesService {\n return {\n async list(params?: ListParams): Promise<PageResult<City>> {\n const response = await transport.get<JsonApiDocument>(\n '/cities',\n { params: buildListParams(params) }\n );\n return decodePageResult(response, cityMapper);\n },\n\n async get(id: string): Promise<City> {\n const response = await transport.get<JsonApiDocument>(`/cities/${id}`);\n return decodeOne(response, cityMapper);\n },\n\n async forState(stateId: string): Promise<City[]> {\n const response = await transport.get<JsonApiDocument>(\n `/states/${stateId}/cities`\n );\n return decodeMany(response, cityMapper);\n },\n\n async forCounty(countyId: string): Promise<City[]> {\n const response = await transport.get<JsonApiDocument>(\n `/counties/${countyId}/cities`\n );\n return decodeMany(response, cityMapper);\n },\n\n async search(query: string, params?: ListParams): Promise<PageResult<City>> {\n const queryParams = buildListParams(params);\n queryParams['q'] = query;\n\n const response = await transport.get<JsonApiDocument>(\n '/cities/search',\n { params: queryParams }\n );\n return decodePageResult(response, cityMapper);\n },\n };\n}\n\n/**\n * Create the currencies service\n */\nexport function createCurrenciesService(\n transport: Transport,\n _config: AuthenticationBlockConfig\n): CurrenciesService {\n return {\n async list(params?: ListParams): Promise<PageResult<Currency>> {\n const response = await transport.get<JsonApiDocument>(\n '/currencies',\n { params: buildListParams(params) }\n );\n return decodePageResult(response, currencyMapper);\n },\n\n async get(id: string): Promise<Currency> {\n const response = await transport.get<JsonApiDocument>(`/currencies/${id}`);\n return decodeOne(response, currencyMapper);\n },\n\n async getByCode(code: string): Promise<Currency> {\n const response = await transport.get<JsonApiDocument>(\n `/currencies/by_code/${code}`\n );\n return decodeOne(response, currencyMapper);\n },\n\n async all(): Promise<Currency[]> {\n const response = await transport.get<JsonApiDocument>(\n '/currencies/all'\n );\n return decodeMany(response, currencyMapper);\n },\n };\n}\n"],"names":["decodeOne","decodeMany","decodePageResult","countryMapper","stateMapper","countyMapper","cityMapper","currencyMapper","buildListParams","params","queryParams","page","perPage","sort","sorts","Array","isArray","map","s","direction","field","join","filter","key","value","Object","entries","include","createCountriesService","transport","_config","list","response","get","id","getByIsoCode","isoCode","all","createStatesService","forCountry","countryId","createCountiesService","forState","stateId","createCitiesService","forCounty","countyId","search","query","createCurrenciesService","getByCode","code"],"rangeMappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;","mappings":"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"}
|
|
@@ -1,219 +0,0 @@
|
|
|
1
|
-
import { decodeOne, decodeMany, decodePageResult } from '@23blocks/jsonapi-codec';
|
|
2
|
-
import { guestMapper, magicLinkMapper, refreshTokenMapper, userDeviceMapper, tenantUserMapper, mailTemplateMapper } from '../mappers/index.js';
|
|
3
|
-
/**
|
|
4
|
-
* Build filter params for list operations
|
|
5
|
-
*/ function buildListParams(params) {
|
|
6
|
-
if (!params) return {};
|
|
7
|
-
const queryParams = {};
|
|
8
|
-
if (params.page) {
|
|
9
|
-
queryParams['page[number]'] = params.page;
|
|
10
|
-
}
|
|
11
|
-
if (params.perPage) {
|
|
12
|
-
queryParams['page[size]'] = params.perPage;
|
|
13
|
-
}
|
|
14
|
-
if (params.sort) {
|
|
15
|
-
const sorts = Array.isArray(params.sort) ? params.sort : [
|
|
16
|
-
params.sort
|
|
17
|
-
];
|
|
18
|
-
queryParams['sort'] = sorts.map((s)=>s.direction === 'desc' ? `-${s.field}` : s.field).join(',');
|
|
19
|
-
}
|
|
20
|
-
if (params.filter) {
|
|
21
|
-
for (const [key, value] of Object.entries(params.filter)){
|
|
22
|
-
queryParams[`filter[${key}]`] = value;
|
|
23
|
-
}
|
|
24
|
-
}
|
|
25
|
-
if (params.include) {
|
|
26
|
-
queryParams['include'] = params.include.join(',');
|
|
27
|
-
}
|
|
28
|
-
return queryParams;
|
|
29
|
-
}
|
|
30
|
-
/**
|
|
31
|
-
* Create the guests service
|
|
32
|
-
*/ export function createGuestsService(transport, _config) {
|
|
33
|
-
return {
|
|
34
|
-
async list (params) {
|
|
35
|
-
const response = await transport.get('/guests', {
|
|
36
|
-
params: buildListParams(params)
|
|
37
|
-
});
|
|
38
|
-
return decodePageResult(response, guestMapper);
|
|
39
|
-
},
|
|
40
|
-
async get (id) {
|
|
41
|
-
const response = await transport.get(`/guests/${id}`);
|
|
42
|
-
return decodeOne(response, guestMapper);
|
|
43
|
-
},
|
|
44
|
-
async track () {
|
|
45
|
-
const response = await transport.post('/guests/track');
|
|
46
|
-
return decodeOne(response, guestMapper);
|
|
47
|
-
},
|
|
48
|
-
async convert (id) {
|
|
49
|
-
const response = await transport.post(`/guests/${id}/convert`);
|
|
50
|
-
return decodeOne(response, guestMapper);
|
|
51
|
-
}
|
|
52
|
-
};
|
|
53
|
-
}
|
|
54
|
-
/**
|
|
55
|
-
* Create the magic links service
|
|
56
|
-
*/ export function createMagicLinksService(transport, _config) {
|
|
57
|
-
return {
|
|
58
|
-
async list (params) {
|
|
59
|
-
const response = await transport.get('/magic_links', {
|
|
60
|
-
params: buildListParams(params)
|
|
61
|
-
});
|
|
62
|
-
return decodePageResult(response, magicLinkMapper);
|
|
63
|
-
},
|
|
64
|
-
async get (id) {
|
|
65
|
-
const response = await transport.get(`/magic_links/${id}`);
|
|
66
|
-
return decodeOne(response, magicLinkMapper);
|
|
67
|
-
},
|
|
68
|
-
async create (request) {
|
|
69
|
-
const response = await transport.post('/magic_links', {
|
|
70
|
-
user_unique_id: request.userUniqueId,
|
|
71
|
-
email: request.email,
|
|
72
|
-
target_url: request.targetUrl,
|
|
73
|
-
expired_url: request.expiredUrl,
|
|
74
|
-
expires_in_hours: request.expiresInHours,
|
|
75
|
-
description: request.description,
|
|
76
|
-
payload: request.payload
|
|
77
|
-
});
|
|
78
|
-
return decodeOne(response, magicLinkMapper);
|
|
79
|
-
},
|
|
80
|
-
async validate (token) {
|
|
81
|
-
const response = await transport.post('/magic_links/validate', {
|
|
82
|
-
token
|
|
83
|
-
});
|
|
84
|
-
return decodeOne(response, magicLinkMapper);
|
|
85
|
-
},
|
|
86
|
-
async expire (id) {
|
|
87
|
-
const response = await transport.post(`/magic_links/${id}/expire`);
|
|
88
|
-
return decodeOne(response, magicLinkMapper);
|
|
89
|
-
}
|
|
90
|
-
};
|
|
91
|
-
}
|
|
92
|
-
/**
|
|
93
|
-
* Create the refresh tokens service
|
|
94
|
-
*/ export function createRefreshTokensService(transport, _config) {
|
|
95
|
-
return {
|
|
96
|
-
async list (params) {
|
|
97
|
-
const response = await transport.get('/refresh_tokens', {
|
|
98
|
-
params: buildListParams(params)
|
|
99
|
-
});
|
|
100
|
-
return decodePageResult(response, refreshTokenMapper);
|
|
101
|
-
},
|
|
102
|
-
async get (id) {
|
|
103
|
-
const response = await transport.get(`/refresh_tokens/${id}`);
|
|
104
|
-
return decodeOne(response, refreshTokenMapper);
|
|
105
|
-
},
|
|
106
|
-
async revoke (id) {
|
|
107
|
-
const response = await transport.post(`/refresh_tokens/${id}/revoke`);
|
|
108
|
-
return decodeOne(response, refreshTokenMapper);
|
|
109
|
-
},
|
|
110
|
-
async revokeAll () {
|
|
111
|
-
await transport.post('/refresh_tokens/revoke_all');
|
|
112
|
-
},
|
|
113
|
-
async revokeOthers () {
|
|
114
|
-
await transport.post('/refresh_tokens/revoke_others');
|
|
115
|
-
}
|
|
116
|
-
};
|
|
117
|
-
}
|
|
118
|
-
/**
|
|
119
|
-
* Create the user devices service
|
|
120
|
-
*/ export function createUserDevicesService(transport, _config) {
|
|
121
|
-
return {
|
|
122
|
-
async list (params) {
|
|
123
|
-
const response = await transport.get('/user_devices', {
|
|
124
|
-
params: buildListParams(params)
|
|
125
|
-
});
|
|
126
|
-
return decodePageResult(response, userDeviceMapper);
|
|
127
|
-
},
|
|
128
|
-
async get (id) {
|
|
129
|
-
const response = await transport.get(`/user_devices/${id}`);
|
|
130
|
-
return decodeOne(response, userDeviceMapper);
|
|
131
|
-
},
|
|
132
|
-
async register (request) {
|
|
133
|
-
const response = await transport.post('/user_devices', {
|
|
134
|
-
device_type: request.deviceType,
|
|
135
|
-
push_id: request.pushId,
|
|
136
|
-
os_type: request.osType,
|
|
137
|
-
default_device: request.defaultDevice,
|
|
138
|
-
location_enabled: request.locationEnabled,
|
|
139
|
-
notifications_enabled: request.notificationsEnabled
|
|
140
|
-
});
|
|
141
|
-
return decodeOne(response, userDeviceMapper);
|
|
142
|
-
},
|
|
143
|
-
async update (id, request) {
|
|
144
|
-
const response = await transport.patch(`/user_devices/${id}`, {
|
|
145
|
-
device_type: request.deviceType,
|
|
146
|
-
push_id: request.pushId,
|
|
147
|
-
os_type: request.osType,
|
|
148
|
-
default_device: request.defaultDevice,
|
|
149
|
-
location_enabled: request.locationEnabled,
|
|
150
|
-
notifications_enabled: request.notificationsEnabled
|
|
151
|
-
});
|
|
152
|
-
return decodeOne(response, userDeviceMapper);
|
|
153
|
-
},
|
|
154
|
-
async unregister (id) {
|
|
155
|
-
await transport.delete(`/user_devices/${id}`);
|
|
156
|
-
},
|
|
157
|
-
async setDefault (id) {
|
|
158
|
-
const response = await transport.post(`/user_devices/${id}/set_default`);
|
|
159
|
-
return decodeOne(response, userDeviceMapper);
|
|
160
|
-
}
|
|
161
|
-
};
|
|
162
|
-
}
|
|
163
|
-
/**
|
|
164
|
-
* Create the tenant users service
|
|
165
|
-
*/ export function createTenantUsersService(transport, _config) {
|
|
166
|
-
return {
|
|
167
|
-
async current () {
|
|
168
|
-
const response = await transport.get('/tenant_users/current');
|
|
169
|
-
return decodeOne(response, tenantUserMapper);
|
|
170
|
-
},
|
|
171
|
-
async get (userUniqueId) {
|
|
172
|
-
const response = await transport.get(`/tenant_users/${userUniqueId}`);
|
|
173
|
-
return decodeOne(response, tenantUserMapper);
|
|
174
|
-
},
|
|
175
|
-
async list (params) {
|
|
176
|
-
const response = await transport.get('/tenant_users', {
|
|
177
|
-
params: buildListParams(params)
|
|
178
|
-
});
|
|
179
|
-
return decodeMany(response, tenantUserMapper);
|
|
180
|
-
}
|
|
181
|
-
};
|
|
182
|
-
}
|
|
183
|
-
/**
|
|
184
|
-
* Create the mail templates service
|
|
185
|
-
*/ export function createMailTemplatesService(transport, _config) {
|
|
186
|
-
return {
|
|
187
|
-
async list (params) {
|
|
188
|
-
const response = await transport.get('/mail_templates', {
|
|
189
|
-
params: buildListParams(params)
|
|
190
|
-
});
|
|
191
|
-
return decodePageResult(response, mailTemplateMapper);
|
|
192
|
-
},
|
|
193
|
-
async get (id) {
|
|
194
|
-
const response = await transport.get(`/mail_templates/${id}`);
|
|
195
|
-
return decodeOne(response, mailTemplateMapper);
|
|
196
|
-
},
|
|
197
|
-
async getByEvent (eventName) {
|
|
198
|
-
const response = await transport.get(`/mail_templates/by_event/${eventName}`);
|
|
199
|
-
return decodeOne(response, mailTemplateMapper);
|
|
200
|
-
},
|
|
201
|
-
async update (id, template) {
|
|
202
|
-
const response = await transport.patch(`/mail_templates/${id}`, {
|
|
203
|
-
template_name: template.templateName,
|
|
204
|
-
template_html: template.templateHtml,
|
|
205
|
-
template_text: template.templateText,
|
|
206
|
-
from_domain: template.fromDomain,
|
|
207
|
-
from_address: template.fromAddress,
|
|
208
|
-
from_name: template.fromName,
|
|
209
|
-
from_subject: template.fromSubject,
|
|
210
|
-
payload: template.payload,
|
|
211
|
-
preferred_language: template.preferredLanguage,
|
|
212
|
-
provider: template.provider
|
|
213
|
-
});
|
|
214
|
-
return decodeOne(response, mailTemplateMapper);
|
|
215
|
-
}
|
|
216
|
-
};
|
|
217
|
-
}
|
|
218
|
-
|
|
219
|
-
//# sourceMappingURL=guests.service.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"sources":["../../../src/lib/services/guests.service.ts"],"sourcesContent":["import type { Transport, PageResult, ListParams } from '@23blocks/contracts';\nimport type { JsonApiDocument } from '@23blocks/jsonapi-codec';\nimport { decodeOne, decodeMany, decodePageResult } from '@23blocks/jsonapi-codec';\nimport type {\n Guest,\n MagicLink,\n RefreshToken,\n UserDevice,\n TenantUser,\n MailTemplate,\n CreateMagicLinkRequest,\n RegisterDeviceRequest,\n} from '../types/index.js';\nimport {\n guestMapper,\n magicLinkMapper,\n refreshTokenMapper,\n userDeviceMapper,\n tenantUserMapper,\n mailTemplateMapper,\n} from '../mappers/index.js';\nimport type { AuthenticationBlockConfig } from '../authentication.block.js';\n\n/**\n * Guests service interface\n */\nexport interface GuestsService {\n /**\n * List guests\n */\n list(params?: ListParams): Promise<PageResult<Guest>>;\n\n /**\n * Get a guest by ID\n */\n get(id: string): Promise<Guest>;\n\n /**\n * Track a guest visit\n */\n track(): Promise<Guest>;\n\n /**\n * Convert guest to user (registration)\n */\n convert(id: string): Promise<Guest>;\n}\n\n/**\n * Magic links service interface\n */\nexport interface MagicLinksService {\n /**\n * List magic links\n */\n list(params?: ListParams): Promise<PageResult<MagicLink>>;\n\n /**\n * Get a magic link by ID\n */\n get(id: string): Promise<MagicLink>;\n\n /**\n * Create a magic link\n */\n create(request: CreateMagicLinkRequest): Promise<MagicLink>;\n\n /**\n * Validate a magic link token\n */\n validate(token: string): Promise<MagicLink>;\n\n /**\n * Expire a magic link\n */\n expire(id: string): Promise<MagicLink>;\n}\n\n/**\n * Refresh tokens service interface\n */\nexport interface RefreshTokensService {\n /**\n * List refresh tokens for the current user\n */\n list(params?: ListParams): Promise<PageResult<RefreshToken>>;\n\n /**\n * Get a refresh token by ID\n */\n get(id: string): Promise<RefreshToken>;\n\n /**\n * Revoke a refresh token\n */\n revoke(id: string): Promise<RefreshToken>;\n\n /**\n * Revoke all refresh tokens for current user\n */\n revokeAll(): Promise<void>;\n\n /**\n * Revoke all refresh tokens except current\n */\n revokeOthers(): Promise<void>;\n}\n\n/**\n * User devices service interface\n */\nexport interface UserDevicesService {\n /**\n * List devices for current user\n */\n list(params?: ListParams): Promise<PageResult<UserDevice>>;\n\n /**\n * Get a device by ID\n */\n get(id: string): Promise<UserDevice>;\n\n /**\n * Register a new device\n */\n register(request: RegisterDeviceRequest): Promise<UserDevice>;\n\n /**\n * Update device settings\n */\n update(id: string, request: Partial<RegisterDeviceRequest>): Promise<UserDevice>;\n\n /**\n * Unregister a device\n */\n unregister(id: string): Promise<void>;\n\n /**\n * Set default device\n */\n setDefault(id: string): Promise<UserDevice>;\n}\n\n/**\n * Tenant users service interface\n */\nexport interface TenantUsersService {\n /**\n * Get current tenant user context\n */\n current(): Promise<TenantUser>;\n\n /**\n * Get tenant user by user ID\n */\n get(userUniqueId: string): Promise<TenantUser>;\n\n /**\n * List tenant users\n */\n list(params?: ListParams): Promise<TenantUser[]>;\n}\n\n/**\n * Mail templates service interface\n */\nexport interface MailTemplatesService {\n /**\n * List mail templates\n */\n list(params?: ListParams): Promise<PageResult<MailTemplate>>;\n\n /**\n * Get a mail template by ID\n */\n get(id: string): Promise<MailTemplate>;\n\n /**\n * Get a mail template by event name\n */\n getByEvent(eventName: string): Promise<MailTemplate>;\n\n /**\n * Update a mail template\n */\n update(id: string, template: Partial<MailTemplate>): Promise<MailTemplate>;\n}\n\n/**\n * Build filter params for list operations\n */\nfunction buildListParams(params?: ListParams): Record<string, string | number | boolean | string[] | undefined> {\n if (!params) return {};\n\n const queryParams: Record<string, string | number | boolean | string[] | undefined> = {};\n\n if (params.page) {\n queryParams['page[number]'] = params.page;\n }\n if (params.perPage) {\n queryParams['page[size]'] = params.perPage;\n }\n\n if (params.sort) {\n const sorts = Array.isArray(params.sort) ? params.sort : [params.sort];\n queryParams['sort'] = sorts\n .map((s) => (s.direction === 'desc' ? `-${s.field}` : s.field))\n .join(',');\n }\n\n if (params.filter) {\n for (const [key, value] of Object.entries(params.filter)) {\n queryParams[`filter[${key}]`] = value;\n }\n }\n\n if (params.include) {\n queryParams['include'] = params.include.join(',');\n }\n\n return queryParams;\n}\n\n/**\n * Create the guests service\n */\nexport function createGuestsService(\n transport: Transport,\n _config: AuthenticationBlockConfig\n): GuestsService {\n return {\n async list(params?: ListParams): Promise<PageResult<Guest>> {\n const response = await transport.get<JsonApiDocument>(\n '/guests',\n { params: buildListParams(params) }\n );\n return decodePageResult(response, guestMapper);\n },\n\n async get(id: string): Promise<Guest> {\n const response = await transport.get<JsonApiDocument>(`/guests/${id}`);\n return decodeOne(response, guestMapper);\n },\n\n async track(): Promise<Guest> {\n const response = await transport.post<JsonApiDocument>('/guests/track');\n return decodeOne(response, guestMapper);\n },\n\n async convert(id: string): Promise<Guest> {\n const response = await transport.post<JsonApiDocument>(\n `/guests/${id}/convert`\n );\n return decodeOne(response, guestMapper);\n },\n };\n}\n\n/**\n * Create the magic links service\n */\nexport function createMagicLinksService(\n transport: Transport,\n _config: AuthenticationBlockConfig\n): MagicLinksService {\n return {\n async list(params?: ListParams): Promise<PageResult<MagicLink>> {\n const response = await transport.get<JsonApiDocument>(\n '/magic_links',\n { params: buildListParams(params) }\n );\n return decodePageResult(response, magicLinkMapper);\n },\n\n async get(id: string): Promise<MagicLink> {\n const response = await transport.get<JsonApiDocument>(\n `/magic_links/${id}`\n );\n return decodeOne(response, magicLinkMapper);\n },\n\n async create(request: CreateMagicLinkRequest): Promise<MagicLink> {\n const response = await transport.post<JsonApiDocument>('/magic_links', {\n user_unique_id: request.userUniqueId,\n email: request.email,\n target_url: request.targetUrl,\n expired_url: request.expiredUrl,\n expires_in_hours: request.expiresInHours,\n description: request.description,\n payload: request.payload,\n });\n return decodeOne(response, magicLinkMapper);\n },\n\n async validate(token: string): Promise<MagicLink> {\n const response = await transport.post<JsonApiDocument>(\n '/magic_links/validate',\n { token }\n );\n return decodeOne(response, magicLinkMapper);\n },\n\n async expire(id: string): Promise<MagicLink> {\n const response = await transport.post<JsonApiDocument>(\n `/magic_links/${id}/expire`\n );\n return decodeOne(response, magicLinkMapper);\n },\n };\n}\n\n/**\n * Create the refresh tokens service\n */\nexport function createRefreshTokensService(\n transport: Transport,\n _config: AuthenticationBlockConfig\n): RefreshTokensService {\n return {\n async list(params?: ListParams): Promise<PageResult<RefreshToken>> {\n const response = await transport.get<JsonApiDocument>(\n '/refresh_tokens',\n { params: buildListParams(params) }\n );\n return decodePageResult(response, refreshTokenMapper);\n },\n\n async get(id: string): Promise<RefreshToken> {\n const response = await transport.get<JsonApiDocument>(\n `/refresh_tokens/${id}`\n );\n return decodeOne(response, refreshTokenMapper);\n },\n\n async revoke(id: string): Promise<RefreshToken> {\n const response = await transport.post<JsonApiDocument>(\n `/refresh_tokens/${id}/revoke`\n );\n return decodeOne(response, refreshTokenMapper);\n },\n\n async revokeAll(): Promise<void> {\n await transport.post('/refresh_tokens/revoke_all');\n },\n\n async revokeOthers(): Promise<void> {\n await transport.post('/refresh_tokens/revoke_others');\n },\n };\n}\n\n/**\n * Create the user devices service\n */\nexport function createUserDevicesService(\n transport: Transport,\n _config: AuthenticationBlockConfig\n): UserDevicesService {\n return {\n async list(params?: ListParams): Promise<PageResult<UserDevice>> {\n const response = await transport.get<JsonApiDocument>(\n '/user_devices',\n { params: buildListParams(params) }\n );\n return decodePageResult(response, userDeviceMapper);\n },\n\n async get(id: string): Promise<UserDevice> {\n const response = await transport.get<JsonApiDocument>(\n `/user_devices/${id}`\n );\n return decodeOne(response, userDeviceMapper);\n },\n\n async register(request: RegisterDeviceRequest): Promise<UserDevice> {\n const response = await transport.post<JsonApiDocument>('/user_devices', {\n device_type: request.deviceType,\n push_id: request.pushId,\n os_type: request.osType,\n default_device: request.defaultDevice,\n location_enabled: request.locationEnabled,\n notifications_enabled: request.notificationsEnabled,\n });\n return decodeOne(response, userDeviceMapper);\n },\n\n async update(\n id: string,\n request: Partial<RegisterDeviceRequest>\n ): Promise<UserDevice> {\n const response = await transport.patch<JsonApiDocument>(\n `/user_devices/${id}`,\n {\n device_type: request.deviceType,\n push_id: request.pushId,\n os_type: request.osType,\n default_device: request.defaultDevice,\n location_enabled: request.locationEnabled,\n notifications_enabled: request.notificationsEnabled,\n }\n );\n return decodeOne(response, userDeviceMapper);\n },\n\n async unregister(id: string): Promise<void> {\n await transport.delete(`/user_devices/${id}`);\n },\n\n async setDefault(id: string): Promise<UserDevice> {\n const response = await transport.post<JsonApiDocument>(\n `/user_devices/${id}/set_default`\n );\n return decodeOne(response, userDeviceMapper);\n },\n };\n}\n\n/**\n * Create the tenant users service\n */\nexport function createTenantUsersService(\n transport: Transport,\n _config: AuthenticationBlockConfig\n): TenantUsersService {\n return {\n async current(): Promise<TenantUser> {\n const response = await transport.get<JsonApiDocument>(\n '/tenant_users/current'\n );\n return decodeOne(response, tenantUserMapper);\n },\n\n async get(userUniqueId: string): Promise<TenantUser> {\n const response = await transport.get<JsonApiDocument>(\n `/tenant_users/${userUniqueId}`\n );\n return decodeOne(response, tenantUserMapper);\n },\n\n async list(params?: ListParams): Promise<TenantUser[]> {\n const response = await transport.get<JsonApiDocument>(\n '/tenant_users',\n { params: buildListParams(params) }\n );\n return decodeMany(response, tenantUserMapper);\n },\n };\n}\n\n/**\n * Create the mail templates service\n */\nexport function createMailTemplatesService(\n transport: Transport,\n _config: AuthenticationBlockConfig\n): MailTemplatesService {\n return {\n async list(params?: ListParams): Promise<PageResult<MailTemplate>> {\n const response = await transport.get<JsonApiDocument>(\n '/mail_templates',\n { params: buildListParams(params) }\n );\n return decodePageResult(response, mailTemplateMapper);\n },\n\n async get(id: string): Promise<MailTemplate> {\n const response = await transport.get<JsonApiDocument>(\n `/mail_templates/${id}`\n );\n return decodeOne(response, mailTemplateMapper);\n },\n\n async getByEvent(eventName: string): Promise<MailTemplate> {\n const response = await transport.get<JsonApiDocument>(\n `/mail_templates/by_event/${eventName}`\n );\n return decodeOne(response, mailTemplateMapper);\n },\n\n async update(id: string, template: Partial<MailTemplate>): Promise<MailTemplate> {\n const response = await transport.patch<JsonApiDocument>(\n `/mail_templates/${id}`,\n {\n template_name: template.templateName,\n template_html: template.templateHtml,\n template_text: template.templateText,\n from_domain: template.fromDomain,\n from_address: template.fromAddress,\n from_name: template.fromName,\n from_subject: template.fromSubject,\n payload: template.payload,\n preferred_language: template.preferredLanguage,\n provider: template.provider,\n }\n );\n return decodeOne(response, mailTemplateMapper);\n },\n };\n}\n"],"names":["decodeOne","decodeMany","decodePageResult","guestMapper","magicLinkMapper","refreshTokenMapper","userDeviceMapper","tenantUserMapper","mailTemplateMapper","buildListParams","params","queryParams","page","perPage","sort","sorts","Array","isArray","map","s","direction","field","join","filter","key","value","Object","entries","include","createGuestsService","transport","_config","list","response","get","id","track","post","convert","createMagicLinksService","create","request","user_unique_id","userUniqueId","email","target_url","targetUrl","expired_url","expiredUrl","expires_in_hours","expiresInHours","description","payload","validate","token","expire","createRefreshTokensService","revoke","revokeAll","revokeOthers","createUserDevicesService","register","device_type","deviceType","push_id","pushId","os_type","osType","default_device","defaultDevice","location_enabled","locationEnabled","notifications_enabled","notificationsEnabled","update","patch","unregister","delete","setDefault","createTenantUsersService","current","createMailTemplatesService","getByEvent","eventName","template","template_name","templateName","template_html","templateHtml","template_text","templateText","from_domain","fromDomain","from_address","fromAddress","from_name","fromName","from_subject","fromSubject","preferred_language","preferredLanguage","provider"],"rangeMappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;","mappings":"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"}
|
|
@@ -1,14 +0,0 @@
|
|
|
1
|
-
export { createAuthService } from './auth.service.js';
|
|
2
|
-
export { createUsersService } from './users.service.js';
|
|
3
|
-
export { createRolesService } from './roles.service.js';
|
|
4
|
-
export { createApiKeysService } from './api-keys.service.js';
|
|
5
|
-
// Apps and services
|
|
6
|
-
export { createAppsService, createBlocksService, createServicesRegistryService } from './apps.service.js';
|
|
7
|
-
// Subscriptions
|
|
8
|
-
export { createSubscriptionModelsService, createUserSubscriptionsService, createCompanySubscriptionsService } from './subscriptions.service.js';
|
|
9
|
-
// Geography
|
|
10
|
-
export { createCountriesService, createStatesService, createCountiesService, createCitiesService, createCurrenciesService } from './geography.service.js';
|
|
11
|
-
// Guests and related
|
|
12
|
-
export { createGuestsService, createMagicLinksService, createRefreshTokensService, createUserDevicesService, createTenantUsersService, createMailTemplatesService } from './guests.service.js';
|
|
13
|
-
|
|
14
|
-
//# sourceMappingURL=index.js.map
|