@spfn/auth 0.2.0-beta.9 → 0.2.0-beta.91

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 (55) hide show
  1. package/LICENSE +1 -1
  2. package/README.md +1007 -1739
  3. package/dist/authenticate-DlTGaBT8.d.ts +1403 -0
  4. package/dist/client-proof.d.ts +606 -0
  5. package/dist/client-proof.js +1842 -0
  6. package/dist/client-proof.js.map +1 -0
  7. package/dist/config.d.ts +487 -39
  8. package/dist/config.js +243 -29
  9. package/dist/config.js.map +1 -1
  10. package/dist/errors.d.ts +208 -3
  11. package/dist/errors.js +140 -1
  12. package/dist/errors.js.map +1 -1
  13. package/dist/index.d.ts +392 -110
  14. package/dist/index.js +186 -7
  15. package/dist/index.js.map +1 -1
  16. package/dist/nextjs/api.js +591 -61
  17. package/dist/nextjs/api.js.map +1 -1
  18. package/dist/nextjs/client.d.ts +28 -0
  19. package/dist/nextjs/client.js +80 -0
  20. package/dist/nextjs/client.js.map +1 -0
  21. package/dist/nextjs/server.d.ts +92 -3
  22. package/dist/nextjs/server.js +288 -24
  23. package/dist/nextjs/server.js.map +1 -1
  24. package/dist/server.d.ts +2618 -1092
  25. package/dist/server.js +6553 -1500
  26. package/dist/server.js.map +1 -1
  27. package/dist/session-DTHahDQ9.d.ts +53 -0
  28. package/dist/types-DYyhze28.d.ts +98 -0
  29. package/dist/wire-version-CtzMKvBB.d.ts +134 -0
  30. package/migrations/20251125021229_premium_famine/snapshot.json +2641 -0
  31. package/migrations/20260225130050_smooth_the_fury/migration.sql +3 -0
  32. package/migrations/20260225130050_smooth_the_fury/snapshot.json +2686 -0
  33. package/migrations/20260308141417_deep_iceman/migration.sql +11 -0
  34. package/migrations/20260308141417_deep_iceman/snapshot.json +2686 -0
  35. package/migrations/20260308151309_perfect_deathbird/migration.sql +3 -0
  36. package/migrations/20260308151309_perfect_deathbird/snapshot.json +2731 -0
  37. package/migrations/20260308201135_concerned_rawhide_kid/migration.sql +5 -0
  38. package/migrations/20260308201135_concerned_rawhide_kid/snapshot.json +2786 -0
  39. package/migrations/20260629103209_lethal_lifeguard/migration.sql +32 -0
  40. package/migrations/20260629103209_lethal_lifeguard/snapshot.json +2786 -0
  41. package/migrations/20260709073531_easy_hardball/migration.sql +24 -0
  42. package/migrations/20260709073531_easy_hardball/snapshot.json +3119 -0
  43. package/migrations/20260714081434_glossy_major_mapleleaf/migration.sql +1 -0
  44. package/migrations/20260714081434_glossy_major_mapleleaf/snapshot.json +3112 -0
  45. package/migrations/20260804105939_amazing_bushwacker/migration.sql +3 -0
  46. package/migrations/20260804105939_amazing_bushwacker/snapshot.json +3112 -0
  47. package/migrations/20260804110033_fat_piledriver/migration.sql +2 -0
  48. package/migrations/20260804110033_fat_piledriver/snapshot.json +3138 -0
  49. package/migrations/20260805143152_vengeful_ravenous/migration.sql +4 -0
  50. package/migrations/20260805143152_vengeful_ravenous/snapshot.json +3190 -0
  51. package/package.json +60 -46
  52. package/dist/dto-CRlgoCP5.d.ts +0 -645
  53. package/migrations/meta/0000_snapshot.json +0 -1632
  54. package/migrations/meta/_journal.json +0 -13
  55. /package/migrations/{0000_premium_famine.sql → 20251125021229_premium_famine/migration.sql} +0 -0
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,292 @@ 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;
224
+ } & {
225
+ key: "SPFN_APP_URL";
226
+ };
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: {
237
+ description: string;
238
+ required: boolean;
239
+ examples: string[];
240
+ type: "string";
241
+ validator: (value: string) => string;
242
+ } & {
243
+ key: "SPFN_AUTH_GOOGLE_CLIENT_ID";
244
+ };
245
+ SPFN_AUTH_GOOGLE_CLIENT_SECRET: {
246
+ description: string;
247
+ required: boolean;
248
+ sensitive: boolean;
249
+ examples: string[];
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;
261
+ } & {
262
+ key: "SPFN_AUTH_GOOGLE_SCOPES";
263
+ };
264
+ SPFN_AUTH_GOOGLE_REDIRECT_URI: {
265
+ description: string;
266
+ required: boolean;
267
+ examples: string[];
268
+ type: "string";
269
+ validator: (value: string) => string;
154
270
  } & {
155
- key: "SPFN_AUTH_AWS_REGION";
271
+ key: "SPFN_AUTH_GOOGLE_REDIRECT_URI";
156
272
  };
157
- SPFN_AUTH_AWS_SNS_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: {
158
283
  description: string;
159
284
  required: boolean;
160
285
  sensitive: boolean;
161
286
  examples: string[];
162
287
  type: "string";
288
+ validator: (value: string) => string;
163
289
  } & {
164
- key: "SPFN_AUTH_AWS_SNS_ACCESS_KEY_ID";
290
+ key: "SPFN_AUTH_KAKAO_CLIENT_SECRET";
165
291
  };
166
- SPFN_AUTH_AWS_SNS_SECRET_ACCESS_KEY: {
292
+ SPFN_AUTH_KAKAO_ADMIN_KEY: {
167
293
  description: string;
168
294
  required: boolean;
169
295
  sensitive: boolean;
170
296
  examples: string[];
171
297
  type: "string";
298
+ validator: (value: string) => string;
299
+ } & {
300
+ key: "SPFN_AUTH_KAKAO_ADMIN_KEY";
301
+ };
302
+ SPFN_AUTH_KAKAO_SCOPES: {
303
+ description: string;
304
+ required: boolean;
305
+ examples: string[];
306
+ type: "string";
307
+ validator: (value: string) => string;
172
308
  } & {
173
- key: "SPFN_AUTH_AWS_SNS_SECRET_ACCESS_KEY";
309
+ key: "SPFN_AUTH_KAKAO_SCOPES";
174
310
  };
175
- SPFN_AUTH_AWS_SNS_SENDER_ID: {
311
+ SPFN_AUTH_KAKAO_REDIRECT_URI: {
176
312
  description: string;
177
313
  required: boolean;
178
314
  examples: string[];
179
315
  type: "string";
316
+ validator: (value: string) => string;
180
317
  } & {
181
- key: "SPFN_AUTH_AWS_SNS_SENDER_ID";
318
+ key: "SPFN_AUTH_KAKAO_REDIRECT_URI";
182
319
  };
183
- SPFN_AUTH_AWS_SES_ACCESS_KEY_ID: {
320
+ SPFN_AUTH_NAVER_CLIENT_ID: {
321
+ description: string;
322
+ required: boolean;
323
+ examples: string[];
324
+ type: "string";
325
+ validator: (value: string) => string;
326
+ } & {
327
+ key: "SPFN_AUTH_NAVER_CLIENT_ID";
328
+ };
329
+ SPFN_AUTH_NAVER_CLIENT_SECRET: {
184
330
  description: string;
185
331
  required: boolean;
186
332
  sensitive: boolean;
187
333
  examples: string[];
188
334
  type: "string";
335
+ validator: (value: string) => string;
189
336
  } & {
190
- key: "SPFN_AUTH_AWS_SES_ACCESS_KEY_ID";
337
+ key: "SPFN_AUTH_NAVER_CLIENT_SECRET";
191
338
  };
192
- SPFN_AUTH_AWS_SES_SECRET_ACCESS_KEY: {
339
+ SPFN_AUTH_NAVER_REDIRECT_URI: {
340
+ description: string;
341
+ required: boolean;
342
+ examples: string[];
343
+ type: "string";
344
+ validator: (value: string) => string;
345
+ } & {
346
+ key: "SPFN_AUTH_NAVER_REDIRECT_URI";
347
+ };
348
+ SPFN_AUTH_GITHUB_CLIENT_ID: {
349
+ description: string;
350
+ required: boolean;
351
+ examples: string[];
352
+ type: "string";
353
+ validator: (value: string) => string;
354
+ } & {
355
+ key: "SPFN_AUTH_GITHUB_CLIENT_ID";
356
+ };
357
+ SPFN_AUTH_GITHUB_CLIENT_SECRET: {
193
358
  description: string;
194
359
  required: boolean;
195
360
  sensitive: boolean;
196
361
  examples: string[];
197
362
  type: "string";
363
+ validator: (value: string) => string;
364
+ } & {
365
+ key: "SPFN_AUTH_GITHUB_CLIENT_SECRET";
366
+ };
367
+ SPFN_AUTH_GITHUB_SCOPES: {
368
+ description: string;
369
+ required: boolean;
370
+ examples: string[];
371
+ type: "string";
372
+ validator: (value: string) => string;
373
+ } & {
374
+ key: "SPFN_AUTH_GITHUB_SCOPES";
375
+ };
376
+ SPFN_AUTH_GITHUB_REDIRECT_URI: {
377
+ description: string;
378
+ required: boolean;
379
+ examples: string[];
380
+ type: "string";
381
+ validator: (value: string) => string;
198
382
  } & {
199
- key: "SPFN_AUTH_AWS_SES_SECRET_ACCESS_KEY";
383
+ key: "SPFN_AUTH_GITHUB_REDIRECT_URI";
200
384
  };
201
- SPFN_AUTH_AWS_SES_FROM_EMAIL: {
385
+ SPFN_AUTH_GOOGLE_NATIVE_CLIENT_IDS: {
202
386
  description: string;
203
387
  required: boolean;
204
388
  examples: string[];
205
389
  type: "string";
390
+ validator: (value: string) => string;
206
391
  } & {
207
- key: "SPFN_AUTH_AWS_SES_FROM_EMAIL";
392
+ key: "SPFN_AUTH_GOOGLE_NATIVE_CLIENT_IDS";
208
393
  };
209
- SPFN_AUTH_AWS_SES_FROM_NAME: {
394
+ SPFN_AUTH_APPLE_CLIENT_IDS: {
210
395
  description: string;
211
396
  required: boolean;
212
397
  examples: string[];
213
398
  type: "string";
399
+ validator: (value: string) => string;
400
+ } & {
401
+ key: "SPFN_AUTH_APPLE_CLIENT_IDS";
402
+ };
403
+ SPFN_AUTH_KAKAO_NATIVE_CLIENT_IDS: {
404
+ description: string;
405
+ required: boolean;
406
+ examples: string[];
407
+ type: "string";
408
+ validator: (value: string) => string;
409
+ } & {
410
+ key: "SPFN_AUTH_KAKAO_NATIVE_CLIENT_IDS";
411
+ };
412
+ SPFN_AUTH_NAVER_NATIVE_CLIENT_IDS: {
413
+ description: string;
414
+ required: boolean;
415
+ examples: string[];
416
+ type: "string";
417
+ validator: (value: string) => string;
418
+ } & {
419
+ key: "SPFN_AUTH_NAVER_NATIVE_CLIENT_IDS";
420
+ };
421
+ SPFN_AUTH_OAUTH_SUCCESS_URL: {
422
+ description: string;
423
+ required: boolean;
424
+ default: string;
425
+ examples: string[];
426
+ type: "string";
427
+ validator: (value: string) => string;
428
+ } & {
429
+ key: "SPFN_AUTH_OAUTH_SUCCESS_URL";
430
+ };
431
+ SPFN_AUTH_OAUTH_ERROR_URL: {
432
+ description: string;
433
+ required: boolean;
434
+ default: string;
435
+ examples: string[];
436
+ type: "string";
437
+ validator: (value: string) => string;
214
438
  } & {
215
- key: "SPFN_AUTH_AWS_SES_FROM_NAME";
439
+ key: "SPFN_AUTH_OAUTH_ERROR_URL";
216
440
  };
217
441
  };
218
442
 
@@ -221,7 +445,7 @@ declare const env: _spfn_core_env.InferEnvType<{
221
445
  description: string;
222
446
  required: boolean;
223
447
  fallbackKeys: string[];
224
- validator: _spfn_core_env.Parser<string>;
448
+ validator: _spfn_core_env.Parser<string> & ((value: string) => string);
225
449
  sensitive: boolean;
226
450
  nextjs: boolean;
227
451
  examples: string[];
@@ -236,6 +460,7 @@ declare const env: _spfn_core_env.InferEnvType<{
236
460
  nextjs: boolean;
237
461
  examples: string[];
238
462
  type: "string";
463
+ validator: (value: string) => string;
239
464
  } & {
240
465
  key: "SPFN_AUTH_SESSION_TTL";
241
466
  };
@@ -245,6 +470,7 @@ declare const env: _spfn_core_env.InferEnvType<{
245
470
  required: boolean;
246
471
  examples: string[];
247
472
  type: "string";
473
+ validator: (value: string) => string;
248
474
  } & {
249
475
  key: "SPFN_AUTH_JWT_SECRET";
250
476
  };
@@ -254,9 +480,20 @@ declare const env: _spfn_core_env.InferEnvType<{
254
480
  required: boolean;
255
481
  examples: string[];
256
482
  type: "string";
483
+ validator: (value: string) => string;
257
484
  } & {
258
485
  key: "SPFN_AUTH_JWT_EXPIRES_IN";
259
486
  };
487
+ SPFN_AUTH_COOKIE_SECURE: {
488
+ description: string;
489
+ required: boolean;
490
+ nextjs: boolean;
491
+ examples: boolean[];
492
+ type: "boolean";
493
+ validator: (value: string) => boolean;
494
+ } & {
495
+ key: "SPFN_AUTH_COOKIE_SECURE";
496
+ };
260
497
  SPFN_AUTH_BCRYPT_SALT_ROUNDS: {
261
498
  key: string;
262
499
  description: string;
@@ -273,14 +510,26 @@ declare const env: _spfn_core_env.InferEnvType<{
273
510
  required: boolean;
274
511
  examples: string[];
275
512
  type: "string";
513
+ validator: (value: string) => string;
276
514
  } & {
277
515
  key: "SPFN_AUTH_VERIFICATION_TOKEN_SECRET";
278
516
  };
517
+ SPFN_AUTH_TOKEN_ENCRYPTION_KEYS: {
518
+ description: string;
519
+ required: boolean;
520
+ sensitive: boolean;
521
+ examples: string[];
522
+ type: "string";
523
+ validator: (value: string) => string;
524
+ } & {
525
+ key: "SPFN_AUTH_TOKEN_ENCRYPTION_KEYS";
526
+ };
279
527
  SPFN_AUTH_ADMIN_ACCOUNTS: {
280
528
  description: string;
281
529
  required: boolean;
282
530
  examples: string[];
283
531
  type: "string";
532
+ validator: (value: string) => string;
284
533
  } & {
285
534
  key: "SPFN_AUTH_ADMIN_ACCOUNTS";
286
535
  };
@@ -289,6 +538,7 @@ declare const env: _spfn_core_env.InferEnvType<{
289
538
  required: boolean;
290
539
  examples: string[];
291
540
  type: "string";
541
+ validator: (value: string) => string;
292
542
  } & {
293
543
  key: "SPFN_AUTH_ADMIN_EMAILS";
294
544
  };
@@ -297,6 +547,7 @@ declare const env: _spfn_core_env.InferEnvType<{
297
547
  required: boolean;
298
548
  examples: string[];
299
549
  type: "string";
550
+ validator: (value: string) => string;
300
551
  } & {
301
552
  key: "SPFN_AUTH_ADMIN_PASSWORDS";
302
553
  };
@@ -305,6 +556,7 @@ declare const env: _spfn_core_env.InferEnvType<{
305
556
  required: boolean;
306
557
  examples: string[];
307
558
  type: "string";
559
+ validator: (value: string) => string;
308
560
  } & {
309
561
  key: "SPFN_AUTH_ADMIN_ROLES";
310
562
  };
@@ -313,96 +565,292 @@ declare const env: _spfn_core_env.InferEnvType<{
313
565
  required: boolean;
314
566
  examples: string[];
315
567
  type: "string";
568
+ validator: (value: string) => string;
316
569
  } & {
317
570
  key: "SPFN_AUTH_ADMIN_EMAIL";
318
571
  };
319
572
  SPFN_AUTH_ADMIN_PASSWORD: {
320
573
  description: string;
321
574
  required: boolean;
322
- validator: _spfn_core_env.Parser<string>;
575
+ validator: _spfn_core_env.Parser<string> & ((value: string) => string);
323
576
  sensitive: boolean;
324
577
  examples: string[];
325
578
  type: "string";
326
579
  } & {
327
580
  key: "SPFN_AUTH_ADMIN_PASSWORD";
328
581
  };
582
+ SPFN_AUTH_RESERVED_USERNAMES: {
583
+ description: string;
584
+ required: boolean;
585
+ default: string;
586
+ examples: string[];
587
+ type: "string";
588
+ validator: (value: string) => string;
589
+ } & {
590
+ key: "SPFN_AUTH_RESERVED_USERNAMES";
591
+ };
592
+ SPFN_AUTH_USERNAME_MIN_LENGTH: {
593
+ description: string;
594
+ default: number;
595
+ required: boolean;
596
+ examples: number[];
597
+ type: "number";
598
+ validator: (value: string) => number;
599
+ } & {
600
+ key: "SPFN_AUTH_USERNAME_MIN_LENGTH";
601
+ };
602
+ SPFN_AUTH_USERNAME_MAX_LENGTH: {
603
+ description: string;
604
+ default: number;
605
+ required: boolean;
606
+ examples: number[];
607
+ type: "number";
608
+ validator: (value: string) => number;
609
+ } & {
610
+ key: "SPFN_AUTH_USERNAME_MAX_LENGTH";
611
+ };
329
612
  SPFN_API_URL: {
330
613
  description: string;
331
614
  default: string;
332
615
  required: boolean;
333
616
  examples: string[];
334
617
  type: "string";
618
+ validator: (value: string) => string;
335
619
  } & {
336
620
  key: "SPFN_API_URL";
337
621
  };
338
- SPFN_AUTH_AWS_REGION: {
622
+ NEXT_PUBLIC_SPFN_API_URL: {
623
+ description: string;
624
+ required: boolean;
625
+ examples: string[];
626
+ type: "string";
627
+ validator: (value: string) => string;
628
+ } & {
629
+ key: "NEXT_PUBLIC_SPFN_API_URL";
630
+ };
631
+ SPFN_APP_URL: {
339
632
  description: string;
340
633
  default: string;
341
634
  required: boolean;
342
635
  examples: string[];
343
636
  type: "string";
637
+ validator: (value: string) => string;
638
+ } & {
639
+ key: "SPFN_APP_URL";
640
+ };
641
+ NEXT_PUBLIC_SPFN_APP_URL: {
642
+ description: string;
643
+ required: boolean;
644
+ examples: string[];
645
+ type: "string";
646
+ validator: (value: string) => string;
647
+ } & {
648
+ key: "NEXT_PUBLIC_SPFN_APP_URL";
649
+ };
650
+ SPFN_AUTH_GOOGLE_CLIENT_ID: {
651
+ description: string;
652
+ required: boolean;
653
+ examples: string[];
654
+ type: "string";
655
+ validator: (value: string) => string;
656
+ } & {
657
+ key: "SPFN_AUTH_GOOGLE_CLIENT_ID";
658
+ };
659
+ SPFN_AUTH_GOOGLE_CLIENT_SECRET: {
660
+ description: string;
661
+ required: boolean;
662
+ sensitive: boolean;
663
+ examples: string[];
664
+ type: "string";
665
+ validator: (value: string) => string;
666
+ } & {
667
+ key: "SPFN_AUTH_GOOGLE_CLIENT_SECRET";
668
+ };
669
+ SPFN_AUTH_GOOGLE_SCOPES: {
670
+ description: string;
671
+ required: boolean;
672
+ examples: string[];
673
+ type: "string";
674
+ validator: (value: string) => string;
675
+ } & {
676
+ key: "SPFN_AUTH_GOOGLE_SCOPES";
677
+ };
678
+ SPFN_AUTH_GOOGLE_REDIRECT_URI: {
679
+ description: string;
680
+ required: boolean;
681
+ examples: string[];
682
+ type: "string";
683
+ validator: (value: string) => string;
344
684
  } & {
345
- key: "SPFN_AUTH_AWS_REGION";
685
+ key: "SPFN_AUTH_GOOGLE_REDIRECT_URI";
346
686
  };
347
- SPFN_AUTH_AWS_SNS_ACCESS_KEY_ID: {
687
+ SPFN_AUTH_KAKAO_CLIENT_ID: {
688
+ description: string;
689
+ required: boolean;
690
+ examples: string[];
691
+ type: "string";
692
+ validator: (value: string) => string;
693
+ } & {
694
+ key: "SPFN_AUTH_KAKAO_CLIENT_ID";
695
+ };
696
+ SPFN_AUTH_KAKAO_CLIENT_SECRET: {
348
697
  description: string;
349
698
  required: boolean;
350
699
  sensitive: boolean;
351
700
  examples: string[];
352
701
  type: "string";
702
+ validator: (value: string) => string;
353
703
  } & {
354
- key: "SPFN_AUTH_AWS_SNS_ACCESS_KEY_ID";
704
+ key: "SPFN_AUTH_KAKAO_CLIENT_SECRET";
355
705
  };
356
- SPFN_AUTH_AWS_SNS_SECRET_ACCESS_KEY: {
706
+ SPFN_AUTH_KAKAO_ADMIN_KEY: {
357
707
  description: string;
358
708
  required: boolean;
359
709
  sensitive: boolean;
360
710
  examples: string[];
361
711
  type: "string";
712
+ validator: (value: string) => string;
713
+ } & {
714
+ key: "SPFN_AUTH_KAKAO_ADMIN_KEY";
715
+ };
716
+ SPFN_AUTH_KAKAO_SCOPES: {
717
+ description: string;
718
+ required: boolean;
719
+ examples: string[];
720
+ type: "string";
721
+ validator: (value: string) => string;
362
722
  } & {
363
- key: "SPFN_AUTH_AWS_SNS_SECRET_ACCESS_KEY";
723
+ key: "SPFN_AUTH_KAKAO_SCOPES";
364
724
  };
365
- SPFN_AUTH_AWS_SNS_SENDER_ID: {
725
+ SPFN_AUTH_KAKAO_REDIRECT_URI: {
366
726
  description: string;
367
727
  required: boolean;
368
728
  examples: string[];
369
729
  type: "string";
730
+ validator: (value: string) => string;
370
731
  } & {
371
- key: "SPFN_AUTH_AWS_SNS_SENDER_ID";
732
+ key: "SPFN_AUTH_KAKAO_REDIRECT_URI";
372
733
  };
373
- SPFN_AUTH_AWS_SES_ACCESS_KEY_ID: {
734
+ SPFN_AUTH_NAVER_CLIENT_ID: {
735
+ description: string;
736
+ required: boolean;
737
+ examples: string[];
738
+ type: "string";
739
+ validator: (value: string) => string;
740
+ } & {
741
+ key: "SPFN_AUTH_NAVER_CLIENT_ID";
742
+ };
743
+ SPFN_AUTH_NAVER_CLIENT_SECRET: {
374
744
  description: string;
375
745
  required: boolean;
376
746
  sensitive: boolean;
377
747
  examples: string[];
378
748
  type: "string";
749
+ validator: (value: string) => string;
379
750
  } & {
380
- key: "SPFN_AUTH_AWS_SES_ACCESS_KEY_ID";
751
+ key: "SPFN_AUTH_NAVER_CLIENT_SECRET";
381
752
  };
382
- SPFN_AUTH_AWS_SES_SECRET_ACCESS_KEY: {
753
+ SPFN_AUTH_NAVER_REDIRECT_URI: {
754
+ description: string;
755
+ required: boolean;
756
+ examples: string[];
757
+ type: "string";
758
+ validator: (value: string) => string;
759
+ } & {
760
+ key: "SPFN_AUTH_NAVER_REDIRECT_URI";
761
+ };
762
+ SPFN_AUTH_GITHUB_CLIENT_ID: {
763
+ description: string;
764
+ required: boolean;
765
+ examples: string[];
766
+ type: "string";
767
+ validator: (value: string) => string;
768
+ } & {
769
+ key: "SPFN_AUTH_GITHUB_CLIENT_ID";
770
+ };
771
+ SPFN_AUTH_GITHUB_CLIENT_SECRET: {
383
772
  description: string;
384
773
  required: boolean;
385
774
  sensitive: boolean;
386
775
  examples: string[];
387
776
  type: "string";
777
+ validator: (value: string) => string;
778
+ } & {
779
+ key: "SPFN_AUTH_GITHUB_CLIENT_SECRET";
780
+ };
781
+ SPFN_AUTH_GITHUB_SCOPES: {
782
+ description: string;
783
+ required: boolean;
784
+ examples: string[];
785
+ type: "string";
786
+ validator: (value: string) => string;
787
+ } & {
788
+ key: "SPFN_AUTH_GITHUB_SCOPES";
789
+ };
790
+ SPFN_AUTH_GITHUB_REDIRECT_URI: {
791
+ description: string;
792
+ required: boolean;
793
+ examples: string[];
794
+ type: "string";
795
+ validator: (value: string) => string;
388
796
  } & {
389
- key: "SPFN_AUTH_AWS_SES_SECRET_ACCESS_KEY";
797
+ key: "SPFN_AUTH_GITHUB_REDIRECT_URI";
390
798
  };
391
- SPFN_AUTH_AWS_SES_FROM_EMAIL: {
799
+ SPFN_AUTH_GOOGLE_NATIVE_CLIENT_IDS: {
392
800
  description: string;
393
801
  required: boolean;
394
802
  examples: string[];
395
803
  type: "string";
804
+ validator: (value: string) => string;
396
805
  } & {
397
- key: "SPFN_AUTH_AWS_SES_FROM_EMAIL";
806
+ key: "SPFN_AUTH_GOOGLE_NATIVE_CLIENT_IDS";
398
807
  };
399
- SPFN_AUTH_AWS_SES_FROM_NAME: {
808
+ SPFN_AUTH_APPLE_CLIENT_IDS: {
400
809
  description: string;
401
810
  required: boolean;
402
811
  examples: string[];
403
812
  type: "string";
813
+ validator: (value: string) => string;
814
+ } & {
815
+ key: "SPFN_AUTH_APPLE_CLIENT_IDS";
816
+ };
817
+ SPFN_AUTH_KAKAO_NATIVE_CLIENT_IDS: {
818
+ description: string;
819
+ required: boolean;
820
+ examples: string[];
821
+ type: "string";
822
+ validator: (value: string) => string;
823
+ } & {
824
+ key: "SPFN_AUTH_KAKAO_NATIVE_CLIENT_IDS";
825
+ };
826
+ SPFN_AUTH_NAVER_NATIVE_CLIENT_IDS: {
827
+ description: string;
828
+ required: boolean;
829
+ examples: string[];
830
+ type: "string";
831
+ validator: (value: string) => string;
832
+ } & {
833
+ key: "SPFN_AUTH_NAVER_NATIVE_CLIENT_IDS";
834
+ };
835
+ SPFN_AUTH_OAUTH_SUCCESS_URL: {
836
+ description: string;
837
+ required: boolean;
838
+ default: string;
839
+ examples: string[];
840
+ type: "string";
841
+ validator: (value: string) => string;
842
+ } & {
843
+ key: "SPFN_AUTH_OAUTH_SUCCESS_URL";
844
+ };
845
+ SPFN_AUTH_OAUTH_ERROR_URL: {
846
+ description: string;
847
+ required: boolean;
848
+ default: string;
849
+ examples: string[];
850
+ type: "string";
851
+ validator: (value: string) => string;
404
852
  } & {
405
- key: "SPFN_AUTH_AWS_SES_FROM_NAME";
853
+ key: "SPFN_AUTH_OAUTH_ERROR_URL";
406
854
  };
407
855
  }>;
408
856