win-portal-auth-sdk 1.0.0 → 1.1.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.
Files changed (53) hide show
  1. package/README.md +146 -1
  2. package/TYPE_SAFETY.md +97 -0
  3. package/dist/client/api/auth.api.d.ts +58 -4
  4. package/dist/client/api/auth.api.d.ts.map +1 -1
  5. package/dist/client/api/auth.api.js +64 -2
  6. package/dist/client/api/files.api.d.ts +5 -5
  7. package/dist/client/api/files.api.d.ts.map +1 -1
  8. package/dist/client/api/index.d.ts +5 -0
  9. package/dist/client/api/index.d.ts.map +1 -1
  10. package/dist/client/api/index.js +8 -1
  11. package/dist/client/api/line.api.d.ts +150 -0
  12. package/dist/client/api/line.api.d.ts.map +1 -0
  13. package/dist/client/api/line.api.js +114 -0
  14. package/dist/client/api/oauth.api.d.ts +221 -0
  15. package/dist/client/api/oauth.api.d.ts.map +1 -0
  16. package/dist/client/api/oauth.api.js +258 -0
  17. package/dist/client/api/system-config.api.d.ts +4 -14
  18. package/dist/client/api/system-config.api.d.ts.map +1 -1
  19. package/dist/client/api/system-config.api.js +0 -8
  20. package/dist/client/auth-client.d.ts +16 -1
  21. package/dist/client/auth-client.d.ts.map +1 -1
  22. package/dist/client/auth-client.js +16 -0
  23. package/dist/index.d.ts +1 -0
  24. package/dist/index.d.ts.map +1 -1
  25. package/dist/index.js +2 -0
  26. package/dist/middleware/express.middleware.d.ts +62 -0
  27. package/dist/middleware/express.middleware.d.ts.map +1 -0
  28. package/dist/middleware/express.middleware.js +185 -0
  29. package/dist/middleware/express.types.d.ts +28 -0
  30. package/dist/middleware/express.types.d.ts.map +1 -0
  31. package/dist/middleware/express.types.js +7 -0
  32. package/dist/middleware/index.d.ts +8 -0
  33. package/dist/middleware/index.d.ts.map +1 -0
  34. package/dist/middleware/index.js +26 -0
  35. package/dist/middleware/nestjs.decorators.d.ts +31 -0
  36. package/dist/middleware/nestjs.decorators.d.ts.map +1 -0
  37. package/dist/middleware/nestjs.decorators.js +56 -0
  38. package/dist/middleware/nestjs.guard.d.ts +55 -0
  39. package/dist/middleware/nestjs.guard.d.ts.map +1 -0
  40. package/dist/middleware/nestjs.guard.js +188 -0
  41. package/dist/middleware/types.d.ts +59 -0
  42. package/dist/middleware/types.d.ts.map +1 -0
  43. package/dist/middleware/types.js +5 -0
  44. package/dist/types/auth.types.d.ts +16 -13
  45. package/dist/types/auth.types.d.ts.map +1 -1
  46. package/dist/types/auth.types.js +2 -2
  47. package/dist/types/file.types.d.ts +13 -9
  48. package/dist/types/file.types.d.ts.map +1 -1
  49. package/dist/types/file.types.js +2 -2
  50. package/dist/types/system-config.types.d.ts +8 -18
  51. package/dist/types/system-config.types.d.ts.map +1 -1
  52. package/dist/types/system-config.types.js +2 -2
  53. package/package.json +8 -2
@@ -0,0 +1,150 @@
1
+ /**
2
+ * LINE Messaging API
3
+ *
4
+ * ส่ง LINE messages ไปยัง users ผ่าน backend API
5
+ */
6
+ import { AuthClient } from '../auth-client';
7
+ export interface SendTextMessageRequest {
8
+ userId: string;
9
+ message: string;
10
+ }
11
+ export interface SendStickerRequest {
12
+ userId: string;
13
+ packageId: string;
14
+ stickerId: string;
15
+ }
16
+ export interface SendImageRequest {
17
+ userId: string;
18
+ originalContentUrl: string;
19
+ previewImageUrl: string;
20
+ }
21
+ export interface LineMessagePayload {
22
+ type: 'text' | 'image' | 'video' | 'audio' | 'file' | 'location' | 'sticker';
23
+ text?: string;
24
+ originalContentUrl?: string;
25
+ previewImageUrl?: string;
26
+ title?: string;
27
+ address?: string;
28
+ latitude?: number;
29
+ longitude?: number;
30
+ packageId?: string;
31
+ stickerId?: string;
32
+ }
33
+ export interface SendMessagesRequest {
34
+ userId: string;
35
+ messages: LineMessagePayload[];
36
+ }
37
+ export interface SendNotificationRequest {
38
+ userId: string;
39
+ title: string;
40
+ message: string;
41
+ type?: 'info' | 'success' | 'warning' | 'error';
42
+ action_url?: string;
43
+ priority?: 'low' | 'normal' | 'high';
44
+ }
45
+ export interface LineMessageResponse {
46
+ success: boolean;
47
+ data?: {
48
+ messageSent: boolean;
49
+ };
50
+ message?: string;
51
+ errors?: string[];
52
+ timestamp: string;
53
+ }
54
+ export interface LineMessagingAvailabilityResponse {
55
+ success: boolean;
56
+ data?: {
57
+ canReceiveMessages: boolean;
58
+ lineUserId?: string;
59
+ };
60
+ message?: string;
61
+ errors?: string[];
62
+ timestamp: string;
63
+ }
64
+ export declare class LineAPI {
65
+ private client;
66
+ constructor(client: AuthClient);
67
+ /**
68
+ * ส่งข้อความ text ไปยัง user
69
+ *
70
+ * @example
71
+ * ```typescript
72
+ * const result = await authClient.line.sendTextMessage({
73
+ * userId: 'user-123',
74
+ * message: 'สวัสดีครับ! ยินดีต้อนรับ'
75
+ * });
76
+ * ```
77
+ */
78
+ sendTextMessage(request: SendTextMessageRequest): Promise<LineMessageResponse>;
79
+ /**
80
+ * ส่ง sticker ไปยัง user
81
+ *
82
+ * @example
83
+ * ```typescript
84
+ * const result = await authClient.line.sendSticker({
85
+ * userId: 'user-123',
86
+ * packageId: '11537',
87
+ * stickerId: '52002734'
88
+ * });
89
+ * ```
90
+ */
91
+ sendSticker(request: SendStickerRequest): Promise<LineMessageResponse>;
92
+ /**
93
+ * ส่งรูปภาพไปยัง user
94
+ *
95
+ * @example
96
+ * ```typescript
97
+ * const result = await authClient.line.sendImage({
98
+ * userId: 'user-123',
99
+ * originalContentUrl: 'https://example.com/image.jpg',
100
+ * previewImageUrl: 'https://example.com/preview.jpg'
101
+ * });
102
+ * ```
103
+ */
104
+ sendImage(request: SendImageRequest): Promise<LineMessageResponse>;
105
+ /**
106
+ * ส่งหลายข้อความพร้อมกัน (สูงสุด 5 ข้อความ)
107
+ *
108
+ * @example
109
+ * ```typescript
110
+ * const result = await authClient.line.sendMessages({
111
+ * userId: 'user-123',
112
+ * messages: [
113
+ * { type: 'text', text: 'ข้อความแรก' },
114
+ * { type: 'sticker', packageId: '11537', stickerId: '52002734' },
115
+ * { type: 'text', text: 'ข้อความสุดท้าย' }
116
+ * ]
117
+ * });
118
+ * ```
119
+ */
120
+ sendMessages(request: SendMessagesRequest): Promise<LineMessageResponse>;
121
+ /**
122
+ * ส่ง notification แบบ high-level (มี title, icon และ action URL)
123
+ *
124
+ * @example
125
+ * ```typescript
126
+ * const result = await authClient.line.sendNotification({
127
+ * userId: 'user-123',
128
+ * title: 'งานใหม่ได้รับมอบหมาย',
129
+ * message: 'คุณได้รับมอบหมายงาน: ทำรายงานประจำเดือน',
130
+ * type: 'info',
131
+ * action_url: 'https://app.example.com/tasks/123',
132
+ * priority: 'high'
133
+ * });
134
+ * ```
135
+ */
136
+ sendNotification(request: SendNotificationRequest): Promise<LineMessageResponse>;
137
+ /**
138
+ * ตรวจสอบว่า user สามารถรับข้อความ LINE ได้หรือไม่
139
+ *
140
+ * @example
141
+ * ```typescript
142
+ * const result = await authClient.line.checkMessagingAvailability('user-123');
143
+ * if (result.data?.canReceiveMessages) {
144
+ * console.log('User can receive LINE messages');
145
+ * }
146
+ * ```
147
+ */
148
+ checkMessagingAvailability(userId: string): Promise<LineMessagingAvailabilityResponse>;
149
+ }
150
+ //# sourceMappingURL=line.api.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"line.api.d.ts","sourceRoot":"","sources":["../../../src/client/api/line.api.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,114 @@
1
+ "use strict";
2
+ /**
3
+ * LINE Messaging API
4
+ *
5
+ * ส่ง LINE messages ไปยัง users ผ่าน backend API
6
+ */
7
+ Object.defineProperty(exports, "__esModule", { value: true });
8
+ exports.LineAPI = void 0;
9
+ class LineAPI {
10
+ constructor(client) {
11
+ this.client = client;
12
+ }
13
+ /**
14
+ * ส่งข้อความ text ไปยัง user
15
+ *
16
+ * @example
17
+ * ```typescript
18
+ * const result = await authClient.line.sendTextMessage({
19
+ * userId: 'user-123',
20
+ * message: 'สวัสดีครับ! ยินดีต้อนรับ'
21
+ * });
22
+ * ```
23
+ */
24
+ async sendTextMessage(request) {
25
+ const response = await this.client.post('/api/line/send-text', request);
26
+ return response.data;
27
+ }
28
+ /**
29
+ * ส่ง sticker ไปยัง user
30
+ *
31
+ * @example
32
+ * ```typescript
33
+ * const result = await authClient.line.sendSticker({
34
+ * userId: 'user-123',
35
+ * packageId: '11537',
36
+ * stickerId: '52002734'
37
+ * });
38
+ * ```
39
+ */
40
+ async sendSticker(request) {
41
+ const response = await this.client.post('/api/line/send-sticker', request);
42
+ return response.data;
43
+ }
44
+ /**
45
+ * ส่งรูปภาพไปยัง user
46
+ *
47
+ * @example
48
+ * ```typescript
49
+ * const result = await authClient.line.sendImage({
50
+ * userId: 'user-123',
51
+ * originalContentUrl: 'https://example.com/image.jpg',
52
+ * previewImageUrl: 'https://example.com/preview.jpg'
53
+ * });
54
+ * ```
55
+ */
56
+ async sendImage(request) {
57
+ const response = await this.client.post('/api/line/send-image', request);
58
+ return response.data;
59
+ }
60
+ /**
61
+ * ส่งหลายข้อความพร้อมกัน (สูงสุด 5 ข้อความ)
62
+ *
63
+ * @example
64
+ * ```typescript
65
+ * const result = await authClient.line.sendMessages({
66
+ * userId: 'user-123',
67
+ * messages: [
68
+ * { type: 'text', text: 'ข้อความแรก' },
69
+ * { type: 'sticker', packageId: '11537', stickerId: '52002734' },
70
+ * { type: 'text', text: 'ข้อความสุดท้าย' }
71
+ * ]
72
+ * });
73
+ * ```
74
+ */
75
+ async sendMessages(request) {
76
+ const response = await this.client.post('/api/line/send-messages', request);
77
+ return response.data;
78
+ }
79
+ /**
80
+ * ส่ง notification แบบ high-level (มี title, icon และ action URL)
81
+ *
82
+ * @example
83
+ * ```typescript
84
+ * const result = await authClient.line.sendNotification({
85
+ * userId: 'user-123',
86
+ * title: 'งานใหม่ได้รับมอบหมาย',
87
+ * message: 'คุณได้รับมอบหมายงาน: ทำรายงานประจำเดือน',
88
+ * type: 'info',
89
+ * action_url: 'https://app.example.com/tasks/123',
90
+ * priority: 'high'
91
+ * });
92
+ * ```
93
+ */
94
+ async sendNotification(request) {
95
+ const response = await this.client.post('/api/line/send-notification', request);
96
+ return response.data;
97
+ }
98
+ /**
99
+ * ตรวจสอบว่า user สามารถรับข้อความ LINE ได้หรือไม่
100
+ *
101
+ * @example
102
+ * ```typescript
103
+ * const result = await authClient.line.checkMessagingAvailability('user-123');
104
+ * if (result.data?.canReceiveMessages) {
105
+ * console.log('User can receive LINE messages');
106
+ * }
107
+ * ```
108
+ */
109
+ async checkMessagingAvailability(userId) {
110
+ const response = await this.client.get(`/api/line/messaging-availability/${userId}`);
111
+ return response.data;
112
+ }
113
+ }
114
+ exports.LineAPI = LineAPI;
@@ -0,0 +1,221 @@
1
+ /**
2
+ * OAuth 2.0 & OpenID Connect API
3
+ *
4
+ * Client methods for OAuth 2.0 Authorization Code Flow with PKCE
5
+ * and OpenID Connect authentication
6
+ */
7
+ import { AuthClient } from '../auth-client';
8
+ export interface OAuthConfig {
9
+ clientId: string;
10
+ clientSecret?: string;
11
+ redirectUri: string;
12
+ scope?: string;
13
+ }
14
+ export interface AuthorizationUrlOptions {
15
+ state?: string;
16
+ scope?: string;
17
+ codeChallenge?: string;
18
+ codeChallengeMethod?: 'S256' | 'plain';
19
+ responseType?: 'code';
20
+ }
21
+ export interface TokenResponse {
22
+ access_token: string;
23
+ token_type: string;
24
+ expires_in: number;
25
+ refresh_token?: string;
26
+ id_token?: string;
27
+ scope: string;
28
+ }
29
+ export interface UserInfo {
30
+ sub: string;
31
+ name?: string;
32
+ given_name?: string;
33
+ family_name?: string;
34
+ middle_name?: string;
35
+ nickname?: string;
36
+ preferred_username?: string;
37
+ profile?: string;
38
+ picture?: string;
39
+ website?: string;
40
+ email?: string;
41
+ email_verified?: boolean;
42
+ gender?: string;
43
+ birthdate?: string;
44
+ zoneinfo?: string;
45
+ locale?: string;
46
+ phone_number?: string;
47
+ phone_number_verified?: boolean;
48
+ address?: {
49
+ formatted?: string;
50
+ street_address?: string;
51
+ locality?: string;
52
+ region?: string;
53
+ postal_code?: string;
54
+ country?: string;
55
+ };
56
+ updated_at?: number;
57
+ }
58
+ export interface DiscoveryDocument {
59
+ issuer: string;
60
+ authorization_endpoint: string;
61
+ token_endpoint: string;
62
+ userinfo_endpoint: string;
63
+ jwks_uri: string;
64
+ registration_endpoint?: string;
65
+ scopes_supported: string[];
66
+ response_types_supported: string[];
67
+ response_modes_supported?: string[];
68
+ grant_types_supported: string[];
69
+ token_endpoint_auth_methods_supported: string[];
70
+ id_token_signing_alg_values_supported: string[];
71
+ subject_types_supported: string[];
72
+ code_challenge_methods_supported?: string[];
73
+ claims_supported?: string[];
74
+ }
75
+ export declare class OAuthAPI {
76
+ private client;
77
+ private config;
78
+ constructor(client: AuthClient, config: OAuthConfig);
79
+ /**
80
+ * Generate authorization URL for OAuth 2.0 Authorization Code Flow
81
+ *
82
+ * @example
83
+ * ```typescript
84
+ * const pkce = generatePKCE(); // Helper function (implement separately)
85
+ * const authUrl = oauth.getAuthorizationUrl({
86
+ * state: 'random_state_string',
87
+ * codeChallenge: pkce.codeChallenge,
88
+ * codeChallengeMethod: 'S256',
89
+ * scope: 'openid profile email'
90
+ * });
91
+ * // Redirect user to authUrl
92
+ * window.location.href = authUrl;
93
+ * ```
94
+ */
95
+ getAuthorizationUrl(options?: AuthorizationUrlOptions): string;
96
+ /**
97
+ * Exchange authorization code for access token
98
+ *
99
+ * @example
100
+ * ```typescript
101
+ * // After user is redirected back with code
102
+ * const urlParams = new URLSearchParams(window.location.search);
103
+ * const code = urlParams.get('code');
104
+ *
105
+ * const tokens = await oauth.exchangeCodeForToken(code, {
106
+ * codeVerifier: pkce.codeVerifier // From PKCE generation
107
+ * });
108
+ *
109
+ * console.log('Access Token:', tokens.access_token);
110
+ * console.log('ID Token:', tokens.id_token);
111
+ * ```
112
+ */
113
+ exchangeCodeForToken(code: string, options?: {
114
+ codeVerifier?: string;
115
+ }): Promise<TokenResponse>;
116
+ /**
117
+ * Refresh access token using refresh token
118
+ *
119
+ * @example
120
+ * ```typescript
121
+ * const newTokens = await oauth.refreshAccessToken(refreshToken);
122
+ * ```
123
+ */
124
+ refreshAccessToken(refreshToken: string): Promise<TokenResponse>;
125
+ /**
126
+ * Get user information from UserInfo endpoint (OIDC)
127
+ *
128
+ * @example
129
+ * ```typescript
130
+ * const userInfo = await oauth.getUserInfo(accessToken);
131
+ * console.log('User:', userInfo.name, userInfo.email);
132
+ * ```
133
+ */
134
+ getUserInfo(accessToken: string): Promise<UserInfo>;
135
+ /**
136
+ * Revoke access or refresh token
137
+ *
138
+ * @example
139
+ * ```typescript
140
+ * await oauth.revokeToken(accessToken, 'access_token');
141
+ * ```
142
+ */
143
+ revokeToken(token: string, tokenTypeHint?: 'access_token' | 'refresh_token'): Promise<void>;
144
+ /**
145
+ * Introspect token to check if it's valid
146
+ *
147
+ * @example
148
+ * ```typescript
149
+ * const result = await oauth.introspectToken(accessToken);
150
+ * if (result.active) {
151
+ * console.log('Token is valid, expires at:', result.exp);
152
+ * }
153
+ * ```
154
+ */
155
+ introspectToken(token: string): Promise<{
156
+ active: boolean;
157
+ scope?: string;
158
+ client_id?: string;
159
+ username?: string;
160
+ token_type?: string;
161
+ exp?: number;
162
+ iat?: number;
163
+ sub?: string;
164
+ }>;
165
+ /**
166
+ * Get OpenID Connect Discovery Document
167
+ *
168
+ * @example
169
+ * ```typescript
170
+ * const discovery = await oauth.getDiscoveryDocument();
171
+ * console.log('Issuer:', discovery.issuer);
172
+ * console.log('Authorization Endpoint:', discovery.authorization_endpoint);
173
+ * ```
174
+ */
175
+ getDiscoveryDocument(): Promise<DiscoveryDocument>;
176
+ /**
177
+ * Get JSON Web Key Set (JWKS) for token verification
178
+ *
179
+ * @example
180
+ * ```typescript
181
+ * const jwks = await oauth.getJWKS();
182
+ * // Use jwks to verify ID tokens
183
+ * ```
184
+ */
185
+ getJWKS(): Promise<{
186
+ keys: Array<{
187
+ kid: string;
188
+ kty: string;
189
+ alg: string;
190
+ use: string;
191
+ n: string;
192
+ e: string;
193
+ }>;
194
+ }>;
195
+ }
196
+ /**
197
+ * Generate PKCE code verifier and challenge
198
+ *
199
+ * @example
200
+ * ```typescript
201
+ * const pkce = await generatePKCE();
202
+ * // Store pkce.codeVerifier in sessionStorage
203
+ * // Use pkce.codeChallenge in authorization URL
204
+ * ```
205
+ */
206
+ export declare function generatePKCE(): Promise<{
207
+ codeVerifier: string;
208
+ codeChallenge: string;
209
+ codeChallengeMethod: 'S256';
210
+ }>;
211
+ /**
212
+ * Generate random state parameter
213
+ *
214
+ * @example
215
+ * ```typescript
216
+ * const state = generateState();
217
+ * // Store in sessionStorage for CSRF protection
218
+ * ```
219
+ */
220
+ export declare function generateState(): string;
221
+ //# sourceMappingURL=oauth.api.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"oauth.api.d.ts","sourceRoot":"","sources":["../../../src/client/api/oauth.api.ts"],"names":[],"mappings":"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"}