@spfn/auth 0.2.0-beta.8 → 0.2.0-beta.80

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 (42) hide show
  1. package/LICENSE +1 -1
  2. package/README.md +549 -1819
  3. package/dist/authenticate-ofdEmk6x.d.ts +1109 -0
  4. package/dist/config.d.ts +359 -41
  5. package/dist/config.js +186 -30
  6. package/dist/config.js.map +1 -1
  7. package/dist/errors.d.ts +117 -3
  8. package/dist/errors.js +83 -1
  9. package/dist/errors.js.map +1 -1
  10. package/dist/index.d.ts +351 -109
  11. package/dist/index.js +124 -7
  12. package/dist/index.js.map +1 -1
  13. package/dist/nextjs/api.js +591 -61
  14. package/dist/nextjs/api.js.map +1 -1
  15. package/dist/nextjs/client.d.ts +28 -0
  16. package/dist/nextjs/client.js +80 -0
  17. package/dist/nextjs/client.js.map +1 -0
  18. package/dist/nextjs/server.d.ts +92 -3
  19. package/dist/nextjs/server.js +288 -24
  20. package/dist/nextjs/server.js.map +1 -1
  21. package/dist/server.d.ts +2015 -513
  22. package/dist/server.js +4198 -1086
  23. package/dist/server.js.map +1 -1
  24. package/dist/session-CGxgH3C9.d.ts +53 -0
  25. package/dist/types-1BMx0OX1.d.ts +84 -0
  26. package/migrations/0001_smooth_the_fury.sql +3 -0
  27. package/migrations/0002_deep_iceman.sql +11 -0
  28. package/migrations/0003_perfect_deathbird.sql +3 -0
  29. package/migrations/0004_concerned_rawhide_kid.sql +5 -0
  30. package/migrations/0005_lethal_lifeguard.sql +32 -0
  31. package/migrations/0006_easy_hardball.sql +24 -0
  32. package/migrations/0007_glossy_major_mapleleaf.sql +1 -0
  33. package/migrations/meta/0001_snapshot.json +1660 -0
  34. package/migrations/meta/0002_snapshot.json +1660 -0
  35. package/migrations/meta/0003_snapshot.json +1689 -0
  36. package/migrations/meta/0004_snapshot.json +1721 -0
  37. package/migrations/meta/0005_snapshot.json +1721 -0
  38. package/migrations/meta/0006_snapshot.json +1921 -0
  39. package/migrations/meta/0007_snapshot.json +1916 -0
  40. package/migrations/meta/_journal.json +49 -0
  41. package/package.json +43 -39
  42. package/dist/dto-lZmWuObc.d.ts +0 -645
package/dist/config.d.ts CHANGED
@@ -19,11 +19,11 @@ import * as _spfn_core_env from '@spfn/core/env';
19
19
  *
20
20
  * @example
21
21
  * ```typescript
22
- * import { authEnvSchema } from '@spfn/auth/config';
22
+ * import { envSchema } from '@spfn/auth/config';
23
23
  *
24
24
  * // Access schema information
25
- * console.log(authEnvSchema.SPFN_AUTH_SESSION_SECRET.description);
26
- * console.log(authEnvSchema.SPFN_AUTH_JWT_EXPIRES_IN.default);
25
+ * console.log(envSchema.SPFN_AUTH_SESSION_SECRET.description);
26
+ * console.log(envSchema.SPFN_AUTH_JWT_EXPIRES_IN.default);
27
27
  * ```
28
28
  */
29
29
  declare const authEnvSchema: {
@@ -31,7 +31,7 @@ declare const authEnvSchema: {
31
31
  description: string;
32
32
  required: boolean;
33
33
  fallbackKeys: string[];
34
- validator: _spfn_core_env.Parser<string>;
34
+ validator: _spfn_core_env.Parser<string> & ((value: string) => string);
35
35
  sensitive: boolean;
36
36
  nextjs: boolean;
37
37
  examples: string[];
@@ -46,6 +46,7 @@ declare const authEnvSchema: {
46
46
  nextjs: boolean;
47
47
  examples: string[];
48
48
  type: "string";
49
+ validator: (value: string) => string;
49
50
  } & {
50
51
  key: "SPFN_AUTH_SESSION_TTL";
51
52
  };
@@ -55,6 +56,7 @@ declare const authEnvSchema: {
55
56
  required: boolean;
56
57
  examples: string[];
57
58
  type: "string";
59
+ validator: (value: string) => string;
58
60
  } & {
59
61
  key: "SPFN_AUTH_JWT_SECRET";
60
62
  };
@@ -64,9 +66,20 @@ declare const authEnvSchema: {
64
66
  required: boolean;
65
67
  examples: string[];
66
68
  type: "string";
69
+ validator: (value: string) => string;
67
70
  } & {
68
71
  key: "SPFN_AUTH_JWT_EXPIRES_IN";
69
72
  };
73
+ SPFN_AUTH_COOKIE_SECURE: {
74
+ description: string;
75
+ required: boolean;
76
+ nextjs: boolean;
77
+ examples: boolean[];
78
+ type: "boolean";
79
+ validator: (value: string) => boolean;
80
+ } & {
81
+ key: "SPFN_AUTH_COOKIE_SECURE";
82
+ };
70
83
  SPFN_AUTH_BCRYPT_SALT_ROUNDS: {
71
84
  key: string;
72
85
  description: string;
@@ -83,14 +96,26 @@ declare const authEnvSchema: {
83
96
  required: boolean;
84
97
  examples: string[];
85
98
  type: "string";
99
+ validator: (value: string) => string;
86
100
  } & {
87
101
  key: "SPFN_AUTH_VERIFICATION_TOKEN_SECRET";
88
102
  };
103
+ SPFN_AUTH_TOKEN_ENCRYPTION_KEYS: {
104
+ description: string;
105
+ required: boolean;
106
+ sensitive: boolean;
107
+ examples: string[];
108
+ type: "string";
109
+ validator: (value: string) => string;
110
+ } & {
111
+ key: "SPFN_AUTH_TOKEN_ENCRYPTION_KEYS";
112
+ };
89
113
  SPFN_AUTH_ADMIN_ACCOUNTS: {
90
114
  description: string;
91
115
  required: boolean;
92
116
  examples: string[];
93
117
  type: "string";
118
+ validator: (value: string) => string;
94
119
  } & {
95
120
  key: "SPFN_AUTH_ADMIN_ACCOUNTS";
96
121
  };
@@ -99,6 +124,7 @@ declare const authEnvSchema: {
99
124
  required: boolean;
100
125
  examples: string[];
101
126
  type: "string";
127
+ validator: (value: string) => string;
102
128
  } & {
103
129
  key: "SPFN_AUTH_ADMIN_EMAILS";
104
130
  };
@@ -107,6 +133,7 @@ declare const authEnvSchema: {
107
133
  required: boolean;
108
134
  examples: string[];
109
135
  type: "string";
136
+ validator: (value: string) => string;
110
137
  } & {
111
138
  key: "SPFN_AUTH_ADMIN_PASSWORDS";
112
139
  };
@@ -115,6 +142,7 @@ declare const authEnvSchema: {
115
142
  required: boolean;
116
143
  examples: string[];
117
144
  type: "string";
145
+ validator: (value: string) => string;
118
146
  } & {
119
147
  key: "SPFN_AUTH_ADMIN_ROLES";
120
148
  };
@@ -123,96 +151,227 @@ declare const authEnvSchema: {
123
151
  required: boolean;
124
152
  examples: string[];
125
153
  type: "string";
154
+ validator: (value: string) => string;
126
155
  } & {
127
156
  key: "SPFN_AUTH_ADMIN_EMAIL";
128
157
  };
129
158
  SPFN_AUTH_ADMIN_PASSWORD: {
130
159
  description: string;
131
160
  required: boolean;
132
- validator: _spfn_core_env.Parser<string>;
161
+ validator: _spfn_core_env.Parser<string> & ((value: string) => string);
133
162
  sensitive: boolean;
134
163
  examples: string[];
135
164
  type: "string";
136
165
  } & {
137
166
  key: "SPFN_AUTH_ADMIN_PASSWORD";
138
167
  };
168
+ SPFN_AUTH_RESERVED_USERNAMES: {
169
+ description: string;
170
+ required: boolean;
171
+ default: string;
172
+ examples: string[];
173
+ type: "string";
174
+ validator: (value: string) => string;
175
+ } & {
176
+ key: "SPFN_AUTH_RESERVED_USERNAMES";
177
+ };
178
+ SPFN_AUTH_USERNAME_MIN_LENGTH: {
179
+ description: string;
180
+ default: number;
181
+ required: boolean;
182
+ examples: number[];
183
+ type: "number";
184
+ validator: (value: string) => number;
185
+ } & {
186
+ key: "SPFN_AUTH_USERNAME_MIN_LENGTH";
187
+ };
188
+ SPFN_AUTH_USERNAME_MAX_LENGTH: {
189
+ description: string;
190
+ default: number;
191
+ required: boolean;
192
+ examples: number[];
193
+ type: "number";
194
+ validator: (value: string) => number;
195
+ } & {
196
+ key: "SPFN_AUTH_USERNAME_MAX_LENGTH";
197
+ };
139
198
  SPFN_API_URL: {
140
199
  description: string;
141
200
  default: string;
142
201
  required: boolean;
143
202
  examples: string[];
144
203
  type: "string";
204
+ validator: (value: string) => string;
145
205
  } & {
146
206
  key: "SPFN_API_URL";
147
207
  };
148
- SPFN_AUTH_AWS_REGION: {
208
+ NEXT_PUBLIC_SPFN_API_URL: {
209
+ description: string;
210
+ required: boolean;
211
+ examples: string[];
212
+ type: "string";
213
+ validator: (value: string) => string;
214
+ } & {
215
+ key: "NEXT_PUBLIC_SPFN_API_URL";
216
+ };
217
+ SPFN_APP_URL: {
149
218
  description: string;
150
219
  default: string;
151
220
  required: boolean;
152
221
  examples: string[];
153
222
  type: "string";
223
+ validator: (value: string) => string;
154
224
  } & {
155
- key: "SPFN_AUTH_AWS_REGION";
225
+ key: "SPFN_APP_URL";
156
226
  };
157
- SPFN_AUTH_AWS_SNS_ACCESS_KEY_ID: {
227
+ NEXT_PUBLIC_SPFN_APP_URL: {
228
+ description: string;
229
+ required: boolean;
230
+ examples: string[];
231
+ type: "string";
232
+ validator: (value: string) => string;
233
+ } & {
234
+ key: "NEXT_PUBLIC_SPFN_APP_URL";
235
+ };
236
+ SPFN_AUTH_GOOGLE_CLIENT_ID: {
158
237
  description: string;
159
238
  required: boolean;
160
- sensitive: boolean;
161
239
  examples: string[];
162
240
  type: "string";
241
+ validator: (value: string) => string;
163
242
  } & {
164
- key: "SPFN_AUTH_AWS_SNS_ACCESS_KEY_ID";
243
+ key: "SPFN_AUTH_GOOGLE_CLIENT_ID";
165
244
  };
166
- SPFN_AUTH_AWS_SNS_SECRET_ACCESS_KEY: {
245
+ SPFN_AUTH_GOOGLE_CLIENT_SECRET: {
167
246
  description: string;
168
247
  required: boolean;
169
248
  sensitive: boolean;
170
249
  examples: string[];
171
250
  type: "string";
251
+ validator: (value: string) => string;
252
+ } & {
253
+ key: "SPFN_AUTH_GOOGLE_CLIENT_SECRET";
254
+ };
255
+ SPFN_AUTH_GOOGLE_SCOPES: {
256
+ description: string;
257
+ required: boolean;
258
+ examples: string[];
259
+ type: "string";
260
+ validator: (value: string) => string;
172
261
  } & {
173
- key: "SPFN_AUTH_AWS_SNS_SECRET_ACCESS_KEY";
262
+ key: "SPFN_AUTH_GOOGLE_SCOPES";
174
263
  };
175
- SPFN_AUTH_AWS_SNS_SENDER_ID: {
264
+ SPFN_AUTH_GOOGLE_REDIRECT_URI: {
176
265
  description: string;
177
266
  required: boolean;
178
267
  examples: string[];
179
268
  type: "string";
269
+ validator: (value: string) => string;
180
270
  } & {
181
- key: "SPFN_AUTH_AWS_SNS_SENDER_ID";
271
+ key: "SPFN_AUTH_GOOGLE_REDIRECT_URI";
182
272
  };
183
- SPFN_AUTH_AWS_SES_ACCESS_KEY_ID: {
273
+ SPFN_AUTH_KAKAO_CLIENT_ID: {
274
+ description: string;
275
+ required: boolean;
276
+ examples: string[];
277
+ type: "string";
278
+ validator: (value: string) => string;
279
+ } & {
280
+ key: "SPFN_AUTH_KAKAO_CLIENT_ID";
281
+ };
282
+ SPFN_AUTH_KAKAO_CLIENT_SECRET: {
184
283
  description: string;
185
284
  required: boolean;
186
285
  sensitive: boolean;
187
286
  examples: string[];
188
287
  type: "string";
288
+ validator: (value: string) => string;
189
289
  } & {
190
- key: "SPFN_AUTH_AWS_SES_ACCESS_KEY_ID";
290
+ key: "SPFN_AUTH_KAKAO_CLIENT_SECRET";
191
291
  };
192
- SPFN_AUTH_AWS_SES_SECRET_ACCESS_KEY: {
292
+ SPFN_AUTH_KAKAO_SCOPES: {
293
+ description: string;
294
+ required: boolean;
295
+ examples: string[];
296
+ type: "string";
297
+ validator: (value: string) => string;
298
+ } & {
299
+ key: "SPFN_AUTH_KAKAO_SCOPES";
300
+ };
301
+ SPFN_AUTH_KAKAO_REDIRECT_URI: {
302
+ description: string;
303
+ required: boolean;
304
+ examples: string[];
305
+ type: "string";
306
+ validator: (value: string) => string;
307
+ } & {
308
+ key: "SPFN_AUTH_KAKAO_REDIRECT_URI";
309
+ };
310
+ SPFN_AUTH_NAVER_CLIENT_ID: {
311
+ description: string;
312
+ required: boolean;
313
+ examples: string[];
314
+ type: "string";
315
+ validator: (value: string) => string;
316
+ } & {
317
+ key: "SPFN_AUTH_NAVER_CLIENT_ID";
318
+ };
319
+ SPFN_AUTH_NAVER_CLIENT_SECRET: {
193
320
  description: string;
194
321
  required: boolean;
195
322
  sensitive: boolean;
196
323
  examples: string[];
197
324
  type: "string";
325
+ validator: (value: string) => string;
326
+ } & {
327
+ key: "SPFN_AUTH_NAVER_CLIENT_SECRET";
328
+ };
329
+ SPFN_AUTH_NAVER_REDIRECT_URI: {
330
+ description: string;
331
+ required: boolean;
332
+ examples: string[];
333
+ type: "string";
334
+ validator: (value: string) => string;
335
+ } & {
336
+ key: "SPFN_AUTH_NAVER_REDIRECT_URI";
337
+ };
338
+ SPFN_AUTH_GOOGLE_NATIVE_CLIENT_IDS: {
339
+ description: string;
340
+ required: boolean;
341
+ examples: string[];
342
+ type: "string";
343
+ validator: (value: string) => string;
344
+ } & {
345
+ key: "SPFN_AUTH_GOOGLE_NATIVE_CLIENT_IDS";
346
+ };
347
+ SPFN_AUTH_APPLE_CLIENT_IDS: {
348
+ description: string;
349
+ required: boolean;
350
+ examples: string[];
351
+ type: "string";
352
+ validator: (value: string) => string;
198
353
  } & {
199
- key: "SPFN_AUTH_AWS_SES_SECRET_ACCESS_KEY";
354
+ key: "SPFN_AUTH_APPLE_CLIENT_IDS";
200
355
  };
201
- SPFN_AUTH_AWS_SES_FROM_EMAIL: {
356
+ SPFN_AUTH_OAUTH_SUCCESS_URL: {
202
357
  description: string;
203
358
  required: boolean;
359
+ default: string;
204
360
  examples: string[];
205
361
  type: "string";
362
+ validator: (value: string) => string;
206
363
  } & {
207
- key: "SPFN_AUTH_AWS_SES_FROM_EMAIL";
364
+ key: "SPFN_AUTH_OAUTH_SUCCESS_URL";
208
365
  };
209
- SPFN_AUTH_AWS_SES_FROM_NAME: {
366
+ SPFN_AUTH_OAUTH_ERROR_URL: {
210
367
  description: string;
211
368
  required: boolean;
369
+ default: string;
212
370
  examples: string[];
213
371
  type: "string";
372
+ validator: (value: string) => string;
214
373
  } & {
215
- key: "SPFN_AUTH_AWS_SES_FROM_NAME";
374
+ key: "SPFN_AUTH_OAUTH_ERROR_URL";
216
375
  };
217
376
  };
218
377
 
@@ -221,7 +380,7 @@ declare const env: _spfn_core_env.InferEnvType<{
221
380
  description: string;
222
381
  required: boolean;
223
382
  fallbackKeys: string[];
224
- validator: _spfn_core_env.Parser<string>;
383
+ validator: _spfn_core_env.Parser<string> & ((value: string) => string);
225
384
  sensitive: boolean;
226
385
  nextjs: boolean;
227
386
  examples: string[];
@@ -236,6 +395,7 @@ declare const env: _spfn_core_env.InferEnvType<{
236
395
  nextjs: boolean;
237
396
  examples: string[];
238
397
  type: "string";
398
+ validator: (value: string) => string;
239
399
  } & {
240
400
  key: "SPFN_AUTH_SESSION_TTL";
241
401
  };
@@ -245,6 +405,7 @@ declare const env: _spfn_core_env.InferEnvType<{
245
405
  required: boolean;
246
406
  examples: string[];
247
407
  type: "string";
408
+ validator: (value: string) => string;
248
409
  } & {
249
410
  key: "SPFN_AUTH_JWT_SECRET";
250
411
  };
@@ -254,9 +415,20 @@ declare const env: _spfn_core_env.InferEnvType<{
254
415
  required: boolean;
255
416
  examples: string[];
256
417
  type: "string";
418
+ validator: (value: string) => string;
257
419
  } & {
258
420
  key: "SPFN_AUTH_JWT_EXPIRES_IN";
259
421
  };
422
+ SPFN_AUTH_COOKIE_SECURE: {
423
+ description: string;
424
+ required: boolean;
425
+ nextjs: boolean;
426
+ examples: boolean[];
427
+ type: "boolean";
428
+ validator: (value: string) => boolean;
429
+ } & {
430
+ key: "SPFN_AUTH_COOKIE_SECURE";
431
+ };
260
432
  SPFN_AUTH_BCRYPT_SALT_ROUNDS: {
261
433
  key: string;
262
434
  description: string;
@@ -273,14 +445,26 @@ declare const env: _spfn_core_env.InferEnvType<{
273
445
  required: boolean;
274
446
  examples: string[];
275
447
  type: "string";
448
+ validator: (value: string) => string;
276
449
  } & {
277
450
  key: "SPFN_AUTH_VERIFICATION_TOKEN_SECRET";
278
451
  };
452
+ SPFN_AUTH_TOKEN_ENCRYPTION_KEYS: {
453
+ description: string;
454
+ required: boolean;
455
+ sensitive: boolean;
456
+ examples: string[];
457
+ type: "string";
458
+ validator: (value: string) => string;
459
+ } & {
460
+ key: "SPFN_AUTH_TOKEN_ENCRYPTION_KEYS";
461
+ };
279
462
  SPFN_AUTH_ADMIN_ACCOUNTS: {
280
463
  description: string;
281
464
  required: boolean;
282
465
  examples: string[];
283
466
  type: "string";
467
+ validator: (value: string) => string;
284
468
  } & {
285
469
  key: "SPFN_AUTH_ADMIN_ACCOUNTS";
286
470
  };
@@ -289,6 +473,7 @@ declare const env: _spfn_core_env.InferEnvType<{
289
473
  required: boolean;
290
474
  examples: string[];
291
475
  type: "string";
476
+ validator: (value: string) => string;
292
477
  } & {
293
478
  key: "SPFN_AUTH_ADMIN_EMAILS";
294
479
  };
@@ -297,6 +482,7 @@ declare const env: _spfn_core_env.InferEnvType<{
297
482
  required: boolean;
298
483
  examples: string[];
299
484
  type: "string";
485
+ validator: (value: string) => string;
300
486
  } & {
301
487
  key: "SPFN_AUTH_ADMIN_PASSWORDS";
302
488
  };
@@ -305,6 +491,7 @@ declare const env: _spfn_core_env.InferEnvType<{
305
491
  required: boolean;
306
492
  examples: string[];
307
493
  type: "string";
494
+ validator: (value: string) => string;
308
495
  } & {
309
496
  key: "SPFN_AUTH_ADMIN_ROLES";
310
497
  };
@@ -313,96 +500,227 @@ declare const env: _spfn_core_env.InferEnvType<{
313
500
  required: boolean;
314
501
  examples: string[];
315
502
  type: "string";
503
+ validator: (value: string) => string;
316
504
  } & {
317
505
  key: "SPFN_AUTH_ADMIN_EMAIL";
318
506
  };
319
507
  SPFN_AUTH_ADMIN_PASSWORD: {
320
508
  description: string;
321
509
  required: boolean;
322
- validator: _spfn_core_env.Parser<string>;
510
+ validator: _spfn_core_env.Parser<string> & ((value: string) => string);
323
511
  sensitive: boolean;
324
512
  examples: string[];
325
513
  type: "string";
326
514
  } & {
327
515
  key: "SPFN_AUTH_ADMIN_PASSWORD";
328
516
  };
517
+ SPFN_AUTH_RESERVED_USERNAMES: {
518
+ description: string;
519
+ required: boolean;
520
+ default: string;
521
+ examples: string[];
522
+ type: "string";
523
+ validator: (value: string) => string;
524
+ } & {
525
+ key: "SPFN_AUTH_RESERVED_USERNAMES";
526
+ };
527
+ SPFN_AUTH_USERNAME_MIN_LENGTH: {
528
+ description: string;
529
+ default: number;
530
+ required: boolean;
531
+ examples: number[];
532
+ type: "number";
533
+ validator: (value: string) => number;
534
+ } & {
535
+ key: "SPFN_AUTH_USERNAME_MIN_LENGTH";
536
+ };
537
+ SPFN_AUTH_USERNAME_MAX_LENGTH: {
538
+ description: string;
539
+ default: number;
540
+ required: boolean;
541
+ examples: number[];
542
+ type: "number";
543
+ validator: (value: string) => number;
544
+ } & {
545
+ key: "SPFN_AUTH_USERNAME_MAX_LENGTH";
546
+ };
329
547
  SPFN_API_URL: {
330
548
  description: string;
331
549
  default: string;
332
550
  required: boolean;
333
551
  examples: string[];
334
552
  type: "string";
553
+ validator: (value: string) => string;
335
554
  } & {
336
555
  key: "SPFN_API_URL";
337
556
  };
338
- SPFN_AUTH_AWS_REGION: {
557
+ NEXT_PUBLIC_SPFN_API_URL: {
558
+ description: string;
559
+ required: boolean;
560
+ examples: string[];
561
+ type: "string";
562
+ validator: (value: string) => string;
563
+ } & {
564
+ key: "NEXT_PUBLIC_SPFN_API_URL";
565
+ };
566
+ SPFN_APP_URL: {
339
567
  description: string;
340
568
  default: string;
341
569
  required: boolean;
342
570
  examples: string[];
343
571
  type: "string";
572
+ validator: (value: string) => string;
344
573
  } & {
345
- key: "SPFN_AUTH_AWS_REGION";
574
+ key: "SPFN_APP_URL";
346
575
  };
347
- SPFN_AUTH_AWS_SNS_ACCESS_KEY_ID: {
576
+ NEXT_PUBLIC_SPFN_APP_URL: {
577
+ description: string;
578
+ required: boolean;
579
+ examples: string[];
580
+ type: "string";
581
+ validator: (value: string) => string;
582
+ } & {
583
+ key: "NEXT_PUBLIC_SPFN_APP_URL";
584
+ };
585
+ SPFN_AUTH_GOOGLE_CLIENT_ID: {
348
586
  description: string;
349
587
  required: boolean;
350
- sensitive: boolean;
351
588
  examples: string[];
352
589
  type: "string";
590
+ validator: (value: string) => string;
353
591
  } & {
354
- key: "SPFN_AUTH_AWS_SNS_ACCESS_KEY_ID";
592
+ key: "SPFN_AUTH_GOOGLE_CLIENT_ID";
355
593
  };
356
- SPFN_AUTH_AWS_SNS_SECRET_ACCESS_KEY: {
594
+ SPFN_AUTH_GOOGLE_CLIENT_SECRET: {
357
595
  description: string;
358
596
  required: boolean;
359
597
  sensitive: boolean;
360
598
  examples: string[];
361
599
  type: "string";
600
+ validator: (value: string) => string;
601
+ } & {
602
+ key: "SPFN_AUTH_GOOGLE_CLIENT_SECRET";
603
+ };
604
+ SPFN_AUTH_GOOGLE_SCOPES: {
605
+ description: string;
606
+ required: boolean;
607
+ examples: string[];
608
+ type: "string";
609
+ validator: (value: string) => string;
362
610
  } & {
363
- key: "SPFN_AUTH_AWS_SNS_SECRET_ACCESS_KEY";
611
+ key: "SPFN_AUTH_GOOGLE_SCOPES";
364
612
  };
365
- SPFN_AUTH_AWS_SNS_SENDER_ID: {
613
+ SPFN_AUTH_GOOGLE_REDIRECT_URI: {
366
614
  description: string;
367
615
  required: boolean;
368
616
  examples: string[];
369
617
  type: "string";
618
+ validator: (value: string) => string;
370
619
  } & {
371
- key: "SPFN_AUTH_AWS_SNS_SENDER_ID";
620
+ key: "SPFN_AUTH_GOOGLE_REDIRECT_URI";
372
621
  };
373
- SPFN_AUTH_AWS_SES_ACCESS_KEY_ID: {
622
+ SPFN_AUTH_KAKAO_CLIENT_ID: {
623
+ description: string;
624
+ required: boolean;
625
+ examples: string[];
626
+ type: "string";
627
+ validator: (value: string) => string;
628
+ } & {
629
+ key: "SPFN_AUTH_KAKAO_CLIENT_ID";
630
+ };
631
+ SPFN_AUTH_KAKAO_CLIENT_SECRET: {
374
632
  description: string;
375
633
  required: boolean;
376
634
  sensitive: boolean;
377
635
  examples: string[];
378
636
  type: "string";
637
+ validator: (value: string) => string;
379
638
  } & {
380
- key: "SPFN_AUTH_AWS_SES_ACCESS_KEY_ID";
639
+ key: "SPFN_AUTH_KAKAO_CLIENT_SECRET";
381
640
  };
382
- SPFN_AUTH_AWS_SES_SECRET_ACCESS_KEY: {
641
+ SPFN_AUTH_KAKAO_SCOPES: {
642
+ description: string;
643
+ required: boolean;
644
+ examples: string[];
645
+ type: "string";
646
+ validator: (value: string) => string;
647
+ } & {
648
+ key: "SPFN_AUTH_KAKAO_SCOPES";
649
+ };
650
+ SPFN_AUTH_KAKAO_REDIRECT_URI: {
651
+ description: string;
652
+ required: boolean;
653
+ examples: string[];
654
+ type: "string";
655
+ validator: (value: string) => string;
656
+ } & {
657
+ key: "SPFN_AUTH_KAKAO_REDIRECT_URI";
658
+ };
659
+ SPFN_AUTH_NAVER_CLIENT_ID: {
660
+ description: string;
661
+ required: boolean;
662
+ examples: string[];
663
+ type: "string";
664
+ validator: (value: string) => string;
665
+ } & {
666
+ key: "SPFN_AUTH_NAVER_CLIENT_ID";
667
+ };
668
+ SPFN_AUTH_NAVER_CLIENT_SECRET: {
383
669
  description: string;
384
670
  required: boolean;
385
671
  sensitive: boolean;
386
672
  examples: string[];
387
673
  type: "string";
674
+ validator: (value: string) => string;
675
+ } & {
676
+ key: "SPFN_AUTH_NAVER_CLIENT_SECRET";
677
+ };
678
+ SPFN_AUTH_NAVER_REDIRECT_URI: {
679
+ description: string;
680
+ required: boolean;
681
+ examples: string[];
682
+ type: "string";
683
+ validator: (value: string) => string;
684
+ } & {
685
+ key: "SPFN_AUTH_NAVER_REDIRECT_URI";
686
+ };
687
+ SPFN_AUTH_GOOGLE_NATIVE_CLIENT_IDS: {
688
+ description: string;
689
+ required: boolean;
690
+ examples: string[];
691
+ type: "string";
692
+ validator: (value: string) => string;
693
+ } & {
694
+ key: "SPFN_AUTH_GOOGLE_NATIVE_CLIENT_IDS";
695
+ };
696
+ SPFN_AUTH_APPLE_CLIENT_IDS: {
697
+ description: string;
698
+ required: boolean;
699
+ examples: string[];
700
+ type: "string";
701
+ validator: (value: string) => string;
388
702
  } & {
389
- key: "SPFN_AUTH_AWS_SES_SECRET_ACCESS_KEY";
703
+ key: "SPFN_AUTH_APPLE_CLIENT_IDS";
390
704
  };
391
- SPFN_AUTH_AWS_SES_FROM_EMAIL: {
705
+ SPFN_AUTH_OAUTH_SUCCESS_URL: {
392
706
  description: string;
393
707
  required: boolean;
708
+ default: string;
394
709
  examples: string[];
395
710
  type: "string";
711
+ validator: (value: string) => string;
396
712
  } & {
397
- key: "SPFN_AUTH_AWS_SES_FROM_EMAIL";
713
+ key: "SPFN_AUTH_OAUTH_SUCCESS_URL";
398
714
  };
399
- SPFN_AUTH_AWS_SES_FROM_NAME: {
715
+ SPFN_AUTH_OAUTH_ERROR_URL: {
400
716
  description: string;
401
717
  required: boolean;
718
+ default: string;
402
719
  examples: string[];
403
720
  type: "string";
721
+ validator: (value: string) => string;
404
722
  } & {
405
- key: "SPFN_AUTH_AWS_SES_FROM_NAME";
723
+ key: "SPFN_AUTH_OAUTH_ERROR_URL";
406
724
  };
407
725
  }>;
408
726