@etus/bhono-app 0.1.6 → 0.1.7

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 (61) hide show
  1. package/package.json +3 -2
  2. package/templates/base/.claude/commands/check-skill-rules.md +112 -29
  3. package/templates/base/.claude/commands/linear/implement-issue.md +383 -55
  4. package/templates/base/.claude/commands/ship.md +77 -13
  5. package/templates/base/.claude/hooks/package-lock.json +0 -419
  6. package/templates/base/.claude/hooks/skill-activation-prompt.ts +185 -113
  7. package/templates/base/.claude/hooks/skill-tool-guard.sh +6 -0
  8. package/templates/base/.claude/hooks/skill-tool-guard.ts +198 -0
  9. package/templates/base/.claude/scripts/validate-skill-rules.sh +55 -32
  10. package/templates/base/.claude/settings.json +18 -11
  11. package/templates/base/.claude/skills/skill-rules.json +326 -173
  12. package/templates/base/.env.example +3 -0
  13. package/templates/base/README.md +9 -7
  14. package/templates/base/config/eslint.config.js +1 -0
  15. package/templates/base/config/wrangler.json +16 -17
  16. package/templates/base/docs/SETUP-GUIDE.md +566 -0
  17. package/templates/base/docs/architecture/README.md +162 -8
  18. package/templates/base/docs/architecture/api-catalog.md +575 -0
  19. package/templates/base/docs/architecture/c4-component.md +309 -0
  20. package/templates/base/docs/architecture/c4-container.md +183 -0
  21. package/templates/base/docs/architecture/c4-context.md +106 -0
  22. package/templates/base/docs/architecture/dependencies.md +327 -0
  23. package/templates/base/docs/architecture/tech-debt.md +184 -0
  24. package/templates/base/package.json +20 -15
  25. package/templates/base/scripts/capture-prod-session.ts +2 -2
  26. package/templates/base/scripts/sync-template.sh +104 -0
  27. package/templates/base/src/server/db/sql.ts +24 -4
  28. package/templates/base/src/server/index.ts +1 -0
  29. package/templates/base/src/server/lib/audited-db.ts +10 -10
  30. package/templates/base/src/server/middleware/account.ts +1 -1
  31. package/templates/base/src/server/middleware/auth.ts +11 -11
  32. package/templates/base/src/server/middleware/rate-limit.ts +3 -6
  33. package/templates/base/src/server/routes/auth/handlers.ts +5 -5
  34. package/templates/base/src/server/routes/auth/test-login.ts +9 -9
  35. package/templates/base/src/server/routes/index.ts +9 -0
  36. package/templates/base/src/server/routes/invitations/handlers.ts +6 -6
  37. package/templates/base/src/server/routes/openapi.ts +1 -1
  38. package/templates/base/src/server/services/accounts.ts +9 -9
  39. package/templates/base/src/server/services/audits.ts +12 -12
  40. package/templates/base/src/server/services/auth.ts +15 -15
  41. package/templates/base/src/server/services/invitations.ts +16 -16
  42. package/templates/base/src/server/services/users.ts +13 -13
  43. package/templates/base/src/shared/types/api.ts +66 -198
  44. package/templates/base/tests/e2e/auth.setup.ts +1 -1
  45. package/templates/base/tests/unit/server/auth/guards.test.ts +1 -1
  46. package/templates/base/tests/unit/server/middleware/auth.test.ts +273 -0
  47. package/templates/base/tests/unit/server/routes/auth/handlers.test.ts +111 -0
  48. package/templates/base/tests/unit/server/routes/users/handlers.test.ts +69 -5
  49. package/templates/base/tests/unit/server/services/accounts.test.ts +148 -0
  50. package/templates/base/tests/unit/server/services/audits.test.ts +219 -0
  51. package/templates/base/tests/unit/server/services/auth.test.ts +480 -3
  52. package/templates/base/tests/unit/server/services/invitations.test.ts +178 -0
  53. package/templates/base/tests/unit/server/services/users.test.ts +363 -8
  54. package/templates/base/tests/unit/shared/schemas.test.ts +1 -1
  55. package/templates/base/vite.config.ts +3 -1
  56. package/templates/base/.github/workflows/test.yml +0 -127
  57. package/templates/base/.husky/pre-push +0 -26
  58. package/templates/base/auth-setup-error.png +0 -0
  59. package/templates/base/pnpm-lock.yaml +0 -8052
  60. package/templates/base/tests/e2e/_auth/.gitkeep +0 -0
  61. package/templates/base/tsconfig.tsbuildinfo +0 -1
@@ -29,18 +29,14 @@ export interface paths {
29
29
  responses: {
30
30
  /** @description List of users */
31
31
  200: {
32
- headers: {
33
- [name: string]: unknown;
34
- };
32
+ headers: Record<string, unknown>;
35
33
  content: {
36
34
  "application/json": components["schemas"]["PaginatedUsers"];
37
35
  };
38
36
  };
39
37
  /** @description Unauthorized */
40
38
  401: {
41
- headers: {
42
- [name: string]: unknown;
43
- };
39
+ headers: Record<string, unknown>;
44
40
  content: {
45
41
  "application/json": components["schemas"]["ErrorResponse"];
46
42
  };
@@ -83,36 +79,28 @@ export interface paths {
83
79
  responses: {
84
80
  /** @description User accounts created successfully */
85
81
  201: {
86
- headers: {
87
- [name: string]: unknown;
88
- };
82
+ headers: Record<string, unknown>;
89
83
  content: {
90
84
  "application/json": components["schemas"]["BulkOperationSuccess"];
91
85
  };
92
86
  };
93
87
  /** @description Invalid input */
94
88
  400: {
95
- headers: {
96
- [name: string]: unknown;
97
- };
89
+ headers: Record<string, unknown>;
98
90
  content: {
99
91
  "application/json": components["schemas"]["ErrorResponse"];
100
92
  };
101
93
  };
102
94
  /** @description Unauthorized */
103
95
  401: {
104
- headers: {
105
- [name: string]: unknown;
106
- };
96
+ headers: Record<string, unknown>;
107
97
  content: {
108
98
  "application/json": components["schemas"]["ErrorResponse"];
109
99
  };
110
100
  };
111
101
  /** @description Forbidden - requires MANAGER role or higher */
112
102
  403: {
113
- headers: {
114
- [name: string]: unknown;
115
- };
103
+ headers: Record<string, unknown>;
116
104
  content: {
117
105
  "application/json": components["schemas"]["ErrorResponse"];
118
106
  };
@@ -138,36 +126,28 @@ export interface paths {
138
126
  responses: {
139
127
  /** @description User accounts deleted successfully */
140
128
  200: {
141
- headers: {
142
- [name: string]: unknown;
143
- };
129
+ headers: Record<string, unknown>;
144
130
  content: {
145
131
  "application/json": components["schemas"]["BulkOperationSuccess"];
146
132
  };
147
133
  };
148
134
  /** @description Invalid input */
149
135
  400: {
150
- headers: {
151
- [name: string]: unknown;
152
- };
136
+ headers: Record<string, unknown>;
153
137
  content: {
154
138
  "application/json": components["schemas"]["ErrorResponse"];
155
139
  };
156
140
  };
157
141
  /** @description Unauthorized */
158
142
  401: {
159
- headers: {
160
- [name: string]: unknown;
161
- };
143
+ headers: Record<string, unknown>;
162
144
  content: {
163
145
  "application/json": components["schemas"]["ErrorResponse"];
164
146
  };
165
147
  };
166
148
  /** @description Forbidden - requires MANAGER role or higher */
167
149
  403: {
168
- headers: {
169
- [name: string]: unknown;
170
- };
150
+ headers: Record<string, unknown>;
171
151
  content: {
172
152
  "application/json": components["schemas"]["ErrorResponse"];
173
153
  };
@@ -200,9 +180,7 @@ export interface paths {
200
180
  responses: {
201
181
  /** @description User details */
202
182
  200: {
203
- headers: {
204
- [name: string]: unknown;
205
- };
183
+ headers: Record<string, unknown>;
206
184
  content: {
207
185
  "application/json": {
208
186
  data: components["schemas"]["User"];
@@ -211,18 +189,14 @@ export interface paths {
211
189
  };
212
190
  /** @description Unauthorized */
213
191
  401: {
214
- headers: {
215
- [name: string]: unknown;
216
- };
192
+ headers: Record<string, unknown>;
217
193
  content: {
218
194
  "application/json": components["schemas"]["ErrorResponse"];
219
195
  };
220
196
  };
221
197
  /** @description User not found */
222
198
  404: {
223
- headers: {
224
- [name: string]: unknown;
225
- };
199
+ headers: Record<string, unknown>;
226
200
  content: {
227
201
  "application/json": components["schemas"]["ErrorResponse"];
228
202
  };
@@ -245,25 +219,19 @@ export interface paths {
245
219
  responses: {
246
220
  /** @description User deleted */
247
221
  204: {
248
- headers: {
249
- [name: string]: unknown;
250
- };
222
+ headers: Record<string, unknown>;
251
223
  content?: never;
252
224
  };
253
225
  /** @description Unauthorized */
254
226
  401: {
255
- headers: {
256
- [name: string]: unknown;
257
- };
227
+ headers: Record<string, unknown>;
258
228
  content: {
259
229
  "application/json": components["schemas"]["ErrorResponse"];
260
230
  };
261
231
  };
262
232
  /** @description User not found */
263
233
  404: {
264
- headers: {
265
- [name: string]: unknown;
266
- };
234
+ headers: Record<string, unknown>;
267
235
  content: {
268
236
  "application/json": components["schemas"]["ErrorResponse"];
269
237
  };
@@ -290,9 +258,7 @@ export interface paths {
290
258
  responses: {
291
259
  /** @description User updated */
292
260
  200: {
293
- headers: {
294
- [name: string]: unknown;
295
- };
261
+ headers: Record<string, unknown>;
296
262
  content: {
297
263
  "application/json": {
298
264
  data: components["schemas"]["User"];
@@ -301,27 +267,21 @@ export interface paths {
301
267
  };
302
268
  /** @description Invalid input */
303
269
  400: {
304
- headers: {
305
- [name: string]: unknown;
306
- };
270
+ headers: Record<string, unknown>;
307
271
  content: {
308
272
  "application/json": components["schemas"]["ErrorResponse"];
309
273
  };
310
274
  };
311
275
  /** @description Unauthorized */
312
276
  401: {
313
- headers: {
314
- [name: string]: unknown;
315
- };
277
+ headers: Record<string, unknown>;
316
278
  content: {
317
279
  "application/json": components["schemas"]["ErrorResponse"];
318
280
  };
319
281
  };
320
282
  /** @description User not found */
321
283
  404: {
322
- headers: {
323
- [name: string]: unknown;
324
- };
284
+ headers: Record<string, unknown>;
325
285
  content: {
326
286
  "application/json": components["schemas"]["ErrorResponse"];
327
287
  };
@@ -353,9 +313,7 @@ export interface paths {
353
313
  responses: {
354
314
  /** @description User restored successfully */
355
315
  200: {
356
- headers: {
357
- [name: string]: unknown;
358
- };
316
+ headers: Record<string, unknown>;
359
317
  content: {
360
318
  "application/json": {
361
319
  data: components["schemas"]["User"];
@@ -364,27 +322,21 @@ export interface paths {
364
322
  };
365
323
  /** @description Unauthorized */
366
324
  401: {
367
- headers: {
368
- [name: string]: unknown;
369
- };
325
+ headers: Record<string, unknown>;
370
326
  content: {
371
327
  "application/json": components["schemas"]["ErrorResponse"];
372
328
  };
373
329
  };
374
330
  /** @description Forbidden - requires ADMIN role */
375
331
  403: {
376
- headers: {
377
- [name: string]: unknown;
378
- };
332
+ headers: Record<string, unknown>;
379
333
  content: {
380
334
  "application/json": components["schemas"]["ErrorResponse"];
381
335
  };
382
336
  };
383
337
  /** @description User not found or not deleted */
384
338
  404: {
385
- headers: {
386
- [name: string]: unknown;
387
- };
339
+ headers: Record<string, unknown>;
388
340
  content: {
389
341
  "application/json": components["schemas"]["ErrorResponse"];
390
342
  };
@@ -422,18 +374,14 @@ export interface paths {
422
374
  responses: {
423
375
  /** @description List of accounts */
424
376
  200: {
425
- headers: {
426
- [name: string]: unknown;
427
- };
377
+ headers: Record<string, unknown>;
428
378
  content: {
429
379
  "application/json": components["schemas"]["PaginatedAccounts"];
430
380
  };
431
381
  };
432
382
  /** @description Unauthorized */
433
383
  401: {
434
- headers: {
435
- [name: string]: unknown;
436
- };
384
+ headers: Record<string, unknown>;
437
385
  content: {
438
386
  "application/json": components["schemas"]["ErrorResponse"];
439
387
  };
@@ -457,9 +405,7 @@ export interface paths {
457
405
  responses: {
458
406
  /** @description Account created */
459
407
  201: {
460
- headers: {
461
- [name: string]: unknown;
462
- };
408
+ headers: Record<string, unknown>;
463
409
  content: {
464
410
  "application/json": {
465
411
  data: components["schemas"]["Account"];
@@ -468,36 +414,28 @@ export interface paths {
468
414
  };
469
415
  /** @description Invalid input */
470
416
  400: {
471
- headers: {
472
- [name: string]: unknown;
473
- };
417
+ headers: Record<string, unknown>;
474
418
  content: {
475
419
  "application/json": components["schemas"]["ErrorResponse"];
476
420
  };
477
421
  };
478
422
  /** @description Unauthorized */
479
423
  401: {
480
- headers: {
481
- [name: string]: unknown;
482
- };
424
+ headers: Record<string, unknown>;
483
425
  content: {
484
426
  "application/json": components["schemas"]["ErrorResponse"];
485
427
  };
486
428
  };
487
429
  /** @description Forbidden - Super admin only */
488
430
  403: {
489
- headers: {
490
- [name: string]: unknown;
491
- };
431
+ headers: Record<string, unknown>;
492
432
  content: {
493
433
  "application/json": components["schemas"]["ErrorResponse"];
494
434
  };
495
435
  };
496
436
  /** @description Domain already exists */
497
437
  409: {
498
- headers: {
499
- [name: string]: unknown;
500
- };
438
+ headers: Record<string, unknown>;
501
439
  content: {
502
440
  "application/json": components["schemas"]["ErrorResponse"];
503
441
  };
@@ -531,9 +469,7 @@ export interface paths {
531
469
  responses: {
532
470
  /** @description Account details */
533
471
  200: {
534
- headers: {
535
- [name: string]: unknown;
536
- };
472
+ headers: Record<string, unknown>;
537
473
  content: {
538
474
  "application/json": {
539
475
  data: components["schemas"]["Account"];
@@ -542,18 +478,14 @@ export interface paths {
542
478
  };
543
479
  /** @description Unauthorized */
544
480
  401: {
545
- headers: {
546
- [name: string]: unknown;
547
- };
481
+ headers: Record<string, unknown>;
548
482
  content: {
549
483
  "application/json": components["schemas"]["ErrorResponse"];
550
484
  };
551
485
  };
552
486
  /** @description Account not found */
553
487
  404: {
554
- headers: {
555
- [name: string]: unknown;
556
- };
488
+ headers: Record<string, unknown>;
557
489
  content: {
558
490
  "application/json": components["schemas"]["ErrorResponse"];
559
491
  };
@@ -576,34 +508,26 @@ export interface paths {
576
508
  responses: {
577
509
  /** @description Account deleted */
578
510
  204: {
579
- headers: {
580
- [name: string]: unknown;
581
- };
511
+ headers: Record<string, unknown>;
582
512
  content?: never;
583
513
  };
584
514
  /** @description Unauthorized */
585
515
  401: {
586
- headers: {
587
- [name: string]: unknown;
588
- };
516
+ headers: Record<string, unknown>;
589
517
  content: {
590
518
  "application/json": components["schemas"]["ErrorResponse"];
591
519
  };
592
520
  };
593
521
  /** @description Forbidden - Super admin only */
594
522
  403: {
595
- headers: {
596
- [name: string]: unknown;
597
- };
523
+ headers: Record<string, unknown>;
598
524
  content: {
599
525
  "application/json": components["schemas"]["ErrorResponse"];
600
526
  };
601
527
  };
602
528
  /** @description Account not found */
603
529
  404: {
604
- headers: {
605
- [name: string]: unknown;
606
- };
530
+ headers: Record<string, unknown>;
607
531
  content: {
608
532
  "application/json": components["schemas"]["ErrorResponse"];
609
533
  };
@@ -630,9 +554,7 @@ export interface paths {
630
554
  responses: {
631
555
  /** @description Account updated */
632
556
  200: {
633
- headers: {
634
- [name: string]: unknown;
635
- };
557
+ headers: Record<string, unknown>;
636
558
  content: {
637
559
  "application/json": {
638
560
  data: components["schemas"]["Account"];
@@ -641,36 +563,28 @@ export interface paths {
641
563
  };
642
564
  /** @description Invalid input */
643
565
  400: {
644
- headers: {
645
- [name: string]: unknown;
646
- };
566
+ headers: Record<string, unknown>;
647
567
  content: {
648
568
  "application/json": components["schemas"]["ErrorResponse"];
649
569
  };
650
570
  };
651
571
  /** @description Unauthorized */
652
572
  401: {
653
- headers: {
654
- [name: string]: unknown;
655
- };
573
+ headers: Record<string, unknown>;
656
574
  content: {
657
575
  "application/json": components["schemas"]["ErrorResponse"];
658
576
  };
659
577
  };
660
578
  /** @description Account not found */
661
579
  404: {
662
- headers: {
663
- [name: string]: unknown;
664
- };
580
+ headers: Record<string, unknown>;
665
581
  content: {
666
582
  "application/json": components["schemas"]["ErrorResponse"];
667
583
  };
668
584
  };
669
585
  /** @description Domain already exists */
670
586
  409: {
671
- headers: {
672
- [name: string]: unknown;
673
- };
587
+ headers: Record<string, unknown>;
674
588
  content: {
675
589
  "application/json": components["schemas"]["ErrorResponse"];
676
590
  };
@@ -705,9 +619,7 @@ export interface paths {
705
619
  responses: {
706
620
  /** @description Account restored successfully */
707
621
  200: {
708
- headers: {
709
- [name: string]: unknown;
710
- };
622
+ headers: Record<string, unknown>;
711
623
  content: {
712
624
  "application/json": {
713
625
  data: components["schemas"]["Account"];
@@ -716,27 +628,21 @@ export interface paths {
716
628
  };
717
629
  /** @description Unauthorized */
718
630
  401: {
719
- headers: {
720
- [name: string]: unknown;
721
- };
631
+ headers: Record<string, unknown>;
722
632
  content: {
723
633
  "application/json": components["schemas"]["ErrorResponse"];
724
634
  };
725
635
  };
726
636
  /** @description Forbidden - Super admin only */
727
637
  403: {
728
- headers: {
729
- [name: string]: unknown;
730
- };
638
+ headers: Record<string, unknown>;
731
639
  content: {
732
640
  "application/json": components["schemas"]["ErrorResponse"];
733
641
  };
734
642
  };
735
643
  /** @description Account not found or not deleted */
736
644
  404: {
737
- headers: {
738
- [name: string]: unknown;
739
- };
645
+ headers: Record<string, unknown>;
740
646
  content: {
741
647
  "application/json": components["schemas"]["ErrorResponse"];
742
648
  };
@@ -771,9 +677,7 @@ export interface paths {
771
677
  responses: {
772
678
  /** @description List of pending invitations */
773
679
  200: {
774
- headers: {
775
- [name: string]: unknown;
776
- };
680
+ headers: Record<string, unknown>;
777
681
  content: {
778
682
  "application/json": {
779
683
  data: {
@@ -824,9 +728,7 @@ export interface paths {
824
728
  responses: {
825
729
  /** @description User linked or invitation sent */
826
730
  200: {
827
- headers: {
828
- [name: string]: unknown;
829
- };
731
+ headers: Record<string, unknown>;
830
732
  content: {
831
733
  "application/json": {
832
734
  linked: boolean;
@@ -847,18 +749,14 @@ export interface paths {
847
749
  };
848
750
  /** @description Cannot assign role higher than own */
849
751
  403: {
850
- headers: {
851
- [name: string]: unknown;
852
- };
752
+ headers: Record<string, unknown>;
853
753
  content: {
854
754
  "application/json": components["schemas"]["ErrorResponse"];
855
755
  };
856
756
  };
857
757
  /** @description User already in account or pending invitation exists */
858
758
  409: {
859
- headers: {
860
- [name: string]: unknown;
861
- };
759
+ headers: Record<string, unknown>;
862
760
  content: {
863
761
  "application/json": components["schemas"]["ErrorResponse"];
864
762
  };
@@ -898,16 +796,12 @@ export interface paths {
898
796
  responses: {
899
797
  /** @description Invitation revoked */
900
798
  204: {
901
- headers: {
902
- [name: string]: unknown;
903
- };
799
+ headers: Record<string, unknown>;
904
800
  content?: never;
905
801
  };
906
802
  /** @description Invitation not found */
907
803
  404: {
908
- headers: {
909
- [name: string]: unknown;
910
- };
804
+ headers: Record<string, unknown>;
911
805
  content: {
912
806
  "application/json": components["schemas"]["ErrorResponse"];
913
807
  };
@@ -950,27 +844,21 @@ export interface paths {
950
844
  responses: {
951
845
  /** @description List of audit logs */
952
846
  200: {
953
- headers: {
954
- [name: string]: unknown;
955
- };
847
+ headers: Record<string, unknown>;
956
848
  content: {
957
849
  "application/json": components["schemas"]["PaginatedAuditLogs"];
958
850
  };
959
851
  };
960
852
  /** @description Unauthorized */
961
853
  401: {
962
- headers: {
963
- [name: string]: unknown;
964
- };
854
+ headers: Record<string, unknown>;
965
855
  content: {
966
856
  "application/json": components["schemas"]["ErrorResponse"];
967
857
  };
968
858
  };
969
859
  /** @description Forbidden - requires ADMIN or ANALYTICS role */
970
860
  403: {
971
- headers: {
972
- [name: string]: unknown;
973
- };
861
+ headers: Record<string, unknown>;
974
862
  content: {
975
863
  "application/json": components["schemas"]["ErrorResponse"];
976
864
  };
@@ -1010,27 +898,21 @@ export interface paths {
1010
898
  responses: {
1011
899
  /** @description Upload URL generated successfully */
1012
900
  200: {
1013
- headers: {
1014
- [name: string]: unknown;
1015
- };
901
+ headers: Record<string, unknown>;
1016
902
  content: {
1017
903
  "application/json": components["schemas"]["UploadUrlResponse"];
1018
904
  };
1019
905
  };
1020
906
  /** @description Invalid input */
1021
907
  400: {
1022
- headers: {
1023
- [name: string]: unknown;
1024
- };
908
+ headers: Record<string, unknown>;
1025
909
  content: {
1026
910
  "application/json": components["schemas"]["ErrorResponse"];
1027
911
  };
1028
912
  };
1029
913
  /** @description Unauthorized */
1030
914
  401: {
1031
- headers: {
1032
- [name: string]: unknown;
1033
- };
915
+ headers: Record<string, unknown>;
1034
916
  content: {
1035
917
  "application/json": components["schemas"]["ErrorResponse"];
1036
918
  };
@@ -1066,27 +948,21 @@ export interface paths {
1066
948
  responses: {
1067
949
  /** @description File uploaded successfully */
1068
950
  200: {
1069
- headers: {
1070
- [name: string]: unknown;
1071
- };
951
+ headers: Record<string, unknown>;
1072
952
  content: {
1073
953
  "application/json": components["schemas"]["UploadSuccess"];
1074
954
  };
1075
955
  };
1076
956
  /** @description Invalid input or missing file */
1077
957
  400: {
1078
- headers: {
1079
- [name: string]: unknown;
1080
- };
958
+ headers: Record<string, unknown>;
1081
959
  content: {
1082
960
  "application/json": components["schemas"]["ErrorResponse"];
1083
961
  };
1084
962
  };
1085
963
  /** @description Unauthorized */
1086
964
  401: {
1087
- headers: {
1088
- [name: string]: unknown;
1089
- };
965
+ headers: Record<string, unknown>;
1090
966
  content: {
1091
967
  "application/json": components["schemas"]["ErrorResponse"];
1092
968
  };
@@ -1125,25 +1001,19 @@ export interface paths {
1125
1001
  responses: {
1126
1002
  /** @description File deleted successfully */
1127
1003
  204: {
1128
- headers: {
1129
- [name: string]: unknown;
1130
- };
1004
+ headers: Record<string, unknown>;
1131
1005
  content?: never;
1132
1006
  };
1133
1007
  /** @description Unauthorized */
1134
1008
  401: {
1135
- headers: {
1136
- [name: string]: unknown;
1137
- };
1009
+ headers: Record<string, unknown>;
1138
1010
  content: {
1139
1011
  "application/json": components["schemas"]["ErrorResponse"];
1140
1012
  };
1141
1013
  };
1142
1014
  /** @description File not found */
1143
1015
  404: {
1144
- headers: {
1145
- [name: string]: unknown;
1146
- };
1016
+ headers: Record<string, unknown>;
1147
1017
  content: {
1148
1018
  "application/json": components["schemas"]["ErrorResponse"];
1149
1019
  };
@@ -1330,9 +1200,7 @@ export interface components {
1330
1200
  * "status": "active"
1331
1201
  * }
1332
1202
  */
1333
- changes: {
1334
- [key: string]: unknown;
1335
- } | null;
1203
+ changes: Record<string, unknown> | null;
1336
1204
  /** @example 192.168.1.1 */
1337
1205
  ipAddress: string | null;
1338
1206
  /** @example Mozilla/5.0... */
@@ -9,7 +9,7 @@ const accountFile = path.join(__dirname, '.auth/account.json')
9
9
 
10
10
  // Production URL pattern - skip test-login for these
11
11
  const PRODUCTION_URLS = [
12
- '{{projectName}}.a3s.workers.dev',
12
+ 'hono-boilerplate.a3s.workers.dev',
13
13
  'workers.dev',
14
14
  ]
15
15