@api-doctor/cli 0.0.1 → 0.0.4

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.
@@ -0,0 +1,1791 @@
1
+ declare const plugin: {
2
+ readonly meta: {
3
+ readonly name: "@api-doctor/cli";
4
+ readonly version: "0.0.1";
5
+ };
6
+ readonly rules: {
7
+ readonly 'resend-webhook-signature': {
8
+ meta: {
9
+ type: string;
10
+ docs: {
11
+ description: string;
12
+ category: string;
13
+ cwe: string;
14
+ owasp: string;
15
+ rationale: string;
16
+ docsUrl: string;
17
+ recommended: boolean;
18
+ };
19
+ messages: {
20
+ missingVerification: string;
21
+ };
22
+ };
23
+ create(context: any): {
24
+ ImportDeclaration(node: any): void;
25
+ ExportNamedDeclaration(node: any): void;
26
+ CallExpression(node: any): void;
27
+ MemberExpression(node: any): void;
28
+ 'Program:exit'(): void;
29
+ };
30
+ };
31
+ readonly 'resend-api-key-hardcoded': {
32
+ meta: {
33
+ type: string;
34
+ docs: {
35
+ description: string;
36
+ category: string;
37
+ cwe: string;
38
+ owasp: string;
39
+ rationale: string;
40
+ docsUrl: string;
41
+ recommended: boolean;
42
+ };
43
+ messages: {
44
+ hardcodedApiKey: string;
45
+ };
46
+ schema: never[];
47
+ };
48
+ create(context: any): {
49
+ Literal(node: any): void;
50
+ TemplateElement(node: any): void;
51
+ };
52
+ };
53
+ readonly 'resend-api-key-in-client-bundle': {
54
+ meta: {
55
+ type: string;
56
+ docs: {
57
+ description: string;
58
+ category: string;
59
+ cwe: string;
60
+ owasp: string;
61
+ rationale: string;
62
+ docsUrl: string;
63
+ recommended: boolean;
64
+ };
65
+ messages: {
66
+ clientBundleImport: string;
67
+ };
68
+ schema: never[];
69
+ };
70
+ create(context: any): {
71
+ Program(node: any): void;
72
+ ImportDeclaration(node: any): void;
73
+ JSXElement(): void;
74
+ JSXFragment(): void;
75
+ 'Program:exit'(): void;
76
+ };
77
+ };
78
+ readonly 'resend-marketing-via-batch-send': {
79
+ meta: {
80
+ type: string;
81
+ docs: {
82
+ description: string;
83
+ category: string;
84
+ rationale: string;
85
+ docsUrl: string;
86
+ recommended: boolean;
87
+ };
88
+ messages: {
89
+ marketingViaBatch: string;
90
+ };
91
+ schema: never[];
92
+ };
93
+ create(context: any): {
94
+ CallExpression(node: any): void;
95
+ };
96
+ };
97
+ readonly 'resend-marketing-missing-unsubscribe': {
98
+ meta: {
99
+ type: string;
100
+ docs: {
101
+ description: string;
102
+ category: string;
103
+ rationale: string;
104
+ docsUrl: string;
105
+ recommended: boolean;
106
+ };
107
+ messages: {
108
+ missingUnsubscribe: string;
109
+ };
110
+ schema: never[];
111
+ };
112
+ create(context: any): {
113
+ CallExpression(node: any): void;
114
+ };
115
+ };
116
+ readonly 'resend-test-domain-in-production-path': {
117
+ meta: {
118
+ type: string;
119
+ docs: {
120
+ description: string;
121
+ category: string;
122
+ rationale: string;
123
+ docsUrl: string;
124
+ recommended: boolean;
125
+ };
126
+ messages: {
127
+ testDomain: string;
128
+ };
129
+ schema: never[];
130
+ };
131
+ create(context: any): {
132
+ Literal?: undefined;
133
+ TemplateElement?: undefined;
134
+ } | {
135
+ Literal(node: any): void;
136
+ TemplateElement(node: any): void;
137
+ };
138
+ };
139
+ readonly 'resend-from-address-not-friendly-format': {
140
+ meta: {
141
+ type: string;
142
+ docs: {
143
+ description: string;
144
+ category: string;
145
+ rationale: string;
146
+ docsUrl: string;
147
+ recommended: boolean;
148
+ };
149
+ messages: {
150
+ bareFromAddress: string;
151
+ };
152
+ schema: never[];
153
+ };
154
+ create(context: any): {
155
+ CallExpression(node: any): void;
156
+ };
157
+ };
158
+ readonly 'resend-batch-size-not-enforced': {
159
+ meta: {
160
+ type: string;
161
+ docs: {
162
+ description: string;
163
+ category: string;
164
+ rationale: string;
165
+ docsUrl: string;
166
+ recommended: boolean;
167
+ };
168
+ messages: {
169
+ batchSizeNotEnforced: string;
170
+ };
171
+ schema: never[];
172
+ };
173
+ create(context: any): {
174
+ FunctionDeclaration(node: any): void;
175
+ FunctionExpression(node: any): void;
176
+ ArrowFunctionExpression(node: any): void;
177
+ ForStatement(node: any): void;
178
+ ForOfStatement(node: any): void;
179
+ ForInStatement(node: any): void;
180
+ WhileStatement(node: any): void;
181
+ DoWhileStatement(node: any): void;
182
+ BinaryExpression(node: any): void;
183
+ CallExpression(node: any): void;
184
+ 'Program:exit'(): void;
185
+ };
186
+ };
187
+ readonly 'resend-missing-idempotency-key': {
188
+ meta: {
189
+ type: string;
190
+ docs: {
191
+ description: string;
192
+ category: string;
193
+ rationale: string;
194
+ docsUrl: string;
195
+ recommended: boolean;
196
+ };
197
+ messages: {
198
+ missingIdempotencyKey: string;
199
+ };
200
+ schema: never[];
201
+ };
202
+ create(context: any): {
203
+ CallExpression(node: any): void;
204
+ };
205
+ };
206
+ readonly 'resend-no-error-code-mapping': {
207
+ meta: {
208
+ type: string;
209
+ docs: {
210
+ description: string;
211
+ category: string;
212
+ rationale: string;
213
+ docsUrl: string;
214
+ recommended: boolean;
215
+ };
216
+ messages: {
217
+ noErrorCodeMapping: string;
218
+ };
219
+ schema: never[];
220
+ };
221
+ create(context: any): {
222
+ FunctionDeclaration(node: any): void;
223
+ FunctionExpression(node: any): void;
224
+ ArrowFunctionExpression(node: any): void;
225
+ VariableDeclarator(node: any): void;
226
+ IfStatement(node: any): void;
227
+ CallExpression(node: any): void;
228
+ 'Program:exit'(): void;
229
+ };
230
+ };
231
+ readonly 'resend-webhook-no-idempotency': {
232
+ meta: {
233
+ type: string;
234
+ docs: {
235
+ description: string;
236
+ category: string;
237
+ rationale: string;
238
+ docsUrl: string;
239
+ recommended: boolean;
240
+ };
241
+ messages: {
242
+ noIdempotency: string;
243
+ };
244
+ schema: never[];
245
+ };
246
+ create(context: any): {
247
+ ImportDeclaration(node: any): void;
248
+ ExportNamedDeclaration(node: any): void;
249
+ NewExpression(node: any): void;
250
+ CallExpression(node: any): void;
251
+ MemberExpression(node: any): void;
252
+ 'Program:exit'(): void;
253
+ };
254
+ };
255
+ readonly 'resend-missing-tags': {
256
+ meta: {
257
+ type: string;
258
+ docs: {
259
+ description: string;
260
+ category: string;
261
+ rationale: string;
262
+ docsUrl: string;
263
+ recommended: boolean;
264
+ };
265
+ messages: {
266
+ missingTags: string;
267
+ };
268
+ schema: never[];
269
+ };
270
+ create(context: any): {
271
+ CallExpression(node: any): void;
272
+ };
273
+ };
274
+ readonly 'resend-request-id-not-logged': {
275
+ meta: {
276
+ type: string;
277
+ docs: {
278
+ description: string;
279
+ category: string;
280
+ rationale: string;
281
+ docsUrl: string;
282
+ recommended: boolean;
283
+ };
284
+ messages: {
285
+ requestIdNotLogged: string;
286
+ };
287
+ schema: never[];
288
+ };
289
+ create(context: any): {
290
+ ImportDeclaration(node: any): void;
291
+ CatchClause(node: any): void;
292
+ IfStatement(node: any): void;
293
+ MemberExpression(node: any): void;
294
+ Literal(node: any): void;
295
+ 'Program:exit'(): void;
296
+ };
297
+ };
298
+ readonly 'supabase-scope-queries-by-tenant-column': {
299
+ meta: {
300
+ type: string;
301
+ docs: {
302
+ description: string;
303
+ category: string;
304
+ rationale: string;
305
+ docsUrl: string;
306
+ recommended: boolean;
307
+ };
308
+ messages: {
309
+ missingTenantFilter: string;
310
+ };
311
+ schema: never[];
312
+ };
313
+ create(context: any): {
314
+ 'CallExpression:exit'(node: any): void;
315
+ 'Program:exit'(): void;
316
+ };
317
+ };
318
+ readonly 'supabase-validate-uuid-columns': {
319
+ meta: {
320
+ type: string;
321
+ docs: {
322
+ description: string;
323
+ category: string;
324
+ rationale: string;
325
+ docsUrl: string;
326
+ recommended: boolean;
327
+ };
328
+ messages: {
329
+ missingUuidValidation: string;
330
+ };
331
+ schema: never[];
332
+ };
333
+ create(context: any): {
334
+ VariableDeclarator(node: any): void;
335
+ BinaryExpression(node: any): void;
336
+ CallExpression(node: any): void;
337
+ };
338
+ };
339
+ readonly 'supabase-order-by-timestamp-not-identity': {
340
+ meta: {
341
+ type: string;
342
+ docs: {
343
+ description: string;
344
+ category: string;
345
+ rationale: string;
346
+ docsUrl: string;
347
+ recommended: boolean;
348
+ };
349
+ messages: {
350
+ orderByIdentity: string;
351
+ };
352
+ schema: never[];
353
+ };
354
+ create(context: any): {
355
+ 'CallExpression:exit'(node: any): void;
356
+ };
357
+ };
358
+ readonly 'supabase-consistent-input-length-limits': {
359
+ meta: {
360
+ type: string;
361
+ docs: {
362
+ description: string;
363
+ category: string;
364
+ rationale: string;
365
+ docsUrl: string;
366
+ recommended: boolean;
367
+ };
368
+ messages: {
369
+ inconsistentLengthLimit: string;
370
+ };
371
+ schema: never[];
372
+ };
373
+ create(context: any): {
374
+ BinaryExpression(node: any): void;
375
+ CallExpression(node: any): void;
376
+ };
377
+ };
378
+ readonly 'supabase-idempotent-mutations': {
379
+ meta: {
380
+ type: string;
381
+ docs: {
382
+ description: string;
383
+ category: string;
384
+ rationale: string;
385
+ docsUrl: string;
386
+ recommended: boolean;
387
+ };
388
+ messages: {
389
+ missingIdempotencyKey: string;
390
+ };
391
+ schema: never[];
392
+ };
393
+ create(context: any): {
394
+ CallExpression(node: any): void;
395
+ };
396
+ };
397
+ readonly 'supabase-fail-fast-env-validation': {
398
+ meta: {
399
+ type: string;
400
+ docs: {
401
+ description: string;
402
+ category: string;
403
+ rationale: string;
404
+ docsUrl: string;
405
+ recommended: boolean;
406
+ };
407
+ messages: {
408
+ missingEnvValidation: string;
409
+ };
410
+ schema: never[];
411
+ };
412
+ create(context: any): {
413
+ ImportDeclaration(node: any): void;
414
+ VariableDeclarator(node: any): void;
415
+ IfStatement(node: any): void;
416
+ CallExpression(node: any): void;
417
+ };
418
+ };
419
+ readonly 'supabase-no-user-metadata-authz': {
420
+ meta: {
421
+ type: string;
422
+ docs: {
423
+ description: string;
424
+ category: string;
425
+ cwe: string;
426
+ owasp: string;
427
+ rationale: string;
428
+ docsUrl: string;
429
+ recommended: boolean;
430
+ };
431
+ messages: {
432
+ userMetadataAuthzRead: string;
433
+ userMetadataAuthzWrite: string;
434
+ };
435
+ schema: never[];
436
+ };
437
+ create(context: any): {
438
+ MemberExpression(node: any): void;
439
+ CallExpression(node: any): void;
440
+ };
441
+ };
442
+ readonly 'supabase-single-without-error-check': {
443
+ meta: {
444
+ type: string;
445
+ docs: {
446
+ description: string;
447
+ category: string;
448
+ rationale: string;
449
+ docsUrl: string;
450
+ recommended: boolean;
451
+ };
452
+ messages: {
453
+ missingErrorCheck: string;
454
+ };
455
+ schema: never[];
456
+ };
457
+ create(context: any): {
458
+ VariableDeclarator(node: any): void;
459
+ AssignmentExpression(node: any): void;
460
+ ExpressionStatement(node: any): void;
461
+ };
462
+ };
463
+ readonly 'supabase-non-atomic-replace-pattern': {
464
+ meta: {
465
+ type: string;
466
+ docs: {
467
+ description: string;
468
+ category: string;
469
+ rationale: string;
470
+ docsUrl: string;
471
+ recommended: boolean;
472
+ };
473
+ messages: {
474
+ nonAtomicReplace: string;
475
+ };
476
+ schema: never[];
477
+ };
478
+ create(context: any): {
479
+ FunctionDeclaration(node: any): void;
480
+ 'FunctionDeclaration:exit'(node: any): void;
481
+ FunctionExpression(node: any): void;
482
+ 'FunctionExpression:exit'(node: any): void;
483
+ ArrowFunctionExpression(node: any): void;
484
+ 'ArrowFunctionExpression:exit'(node: any): void;
485
+ VariableDeclarator(node: any): void;
486
+ ExpressionStatement(node: any): void;
487
+ };
488
+ };
489
+ readonly 'supabase-unchecked-mutation-error': {
490
+ meta: {
491
+ type: string;
492
+ docs: {
493
+ description: string;
494
+ category: string;
495
+ rationale: string;
496
+ docsUrl: string;
497
+ recommended: boolean;
498
+ };
499
+ messages: {
500
+ uncheckedMutation: string;
501
+ };
502
+ schema: never[];
503
+ };
504
+ create(context: any): {
505
+ ExpressionStatement(node: any): void;
506
+ VariableDeclarator(node: any): void;
507
+ AssignmentExpression(node: any): void;
508
+ };
509
+ };
510
+ readonly 'supabase-realtime-missing-filter': {
511
+ meta: {
512
+ type: string;
513
+ docs: {
514
+ description: string;
515
+ category: string;
516
+ rationale: string;
517
+ docsUrl: string;
518
+ recommended: boolean;
519
+ };
520
+ messages: {
521
+ missingFilter: string;
522
+ };
523
+ schema: never[];
524
+ };
525
+ create(context: any): {
526
+ CallExpression(node: any): void;
527
+ };
528
+ };
529
+ readonly 'supabase-storage-error-not-surfaced': {
530
+ meta: {
531
+ type: string;
532
+ docs: {
533
+ description: string;
534
+ category: string;
535
+ rationale: string;
536
+ docsUrl: string;
537
+ recommended: boolean;
538
+ };
539
+ messages: {
540
+ uploadErrorNotSurfaced: string;
541
+ };
542
+ schema: never[];
543
+ };
544
+ create(context: any): {
545
+ VariableDeclarator(node: any): void;
546
+ IfStatement(node: any): void;
547
+ 'Program:exit'(): void;
548
+ };
549
+ };
550
+ readonly 'auth0-required-audience-validation': {
551
+ meta: {
552
+ type: string;
553
+ docs: {
554
+ description: string;
555
+ category: string;
556
+ cwe: string;
557
+ owasp: string;
558
+ rationale: string;
559
+ docsUrl: string;
560
+ recommended: boolean;
561
+ };
562
+ messages: {
563
+ missingAudience: string;
564
+ conditionalAudience: string;
565
+ };
566
+ };
567
+ create(context: any): {
568
+ ImportDeclaration(node: any): void;
569
+ CallExpression(node: any): void;
570
+ };
571
+ };
572
+ readonly 'auth0-no-account-link-without-verified-email': {
573
+ meta: {
574
+ type: string;
575
+ docs: {
576
+ description: string;
577
+ category: string;
578
+ cwe: string;
579
+ owasp: string;
580
+ rationale: string;
581
+ docsUrl: string;
582
+ recommended: boolean;
583
+ };
584
+ messages: {
585
+ unverifiedEmailLink: string;
586
+ };
587
+ };
588
+ create(context: any): {
589
+ Program(node: any): void;
590
+ 'Program:exit'(): void;
591
+ FunctionDeclaration(node: any): void;
592
+ 'FunctionDeclaration:exit'(): void;
593
+ FunctionExpression(node: any): void;
594
+ 'FunctionExpression:exit'(): void;
595
+ ArrowFunctionExpression(node: any): void;
596
+ 'ArrowFunctionExpression:exit'(): void;
597
+ CallExpression(node: any): void;
598
+ MemberExpression(node: any): void;
599
+ Literal(node: any): void;
600
+ };
601
+ };
602
+ readonly 'auth0-dead-claim-verification-check': {
603
+ meta: {
604
+ type: string;
605
+ docs: {
606
+ description: string;
607
+ category: string;
608
+ rationale: string;
609
+ docsUrl: string;
610
+ recommended: boolean;
611
+ };
612
+ messages: {
613
+ deadVerificationCheck: string;
614
+ };
615
+ };
616
+ create(context: any): {
617
+ CallExpression(node: any): void;
618
+ };
619
+ };
620
+ readonly 'auth0-jwks-refresh-on-unknown-kid': {
621
+ meta: {
622
+ type: string;
623
+ docs: {
624
+ description: string;
625
+ category: string;
626
+ rationale: string;
627
+ docsUrl: string;
628
+ recommended: boolean;
629
+ };
630
+ messages: {
631
+ noRefreshOnMiss: string;
632
+ };
633
+ };
634
+ create(context: any): {
635
+ Program(node: any): void;
636
+ CallExpression(node: any): void;
637
+ BinaryExpression(node: any): void;
638
+ 'Program:exit'(): void;
639
+ };
640
+ };
641
+ readonly 'firebase-missing-app-check': {
642
+ meta: {
643
+ type: string;
644
+ docs: {
645
+ description: string;
646
+ category: string;
647
+ cwe: string;
648
+ owasp: string;
649
+ rationale: string;
650
+ docsUrl: string;
651
+ recommended: boolean;
652
+ };
653
+ messages: {
654
+ missingAppCheck: string;
655
+ };
656
+ schema: never[];
657
+ };
658
+ create(context: any): {
659
+ ImportDeclaration?: undefined;
660
+ CallExpression?: undefined;
661
+ 'Program:exit'?: undefined;
662
+ } | {
663
+ ImportDeclaration(node: any): void;
664
+ CallExpression(node: any): void;
665
+ 'Program:exit'(): void;
666
+ };
667
+ };
668
+ readonly 'firebase-unhandled-auth-popup-rejection': {
669
+ meta: {
670
+ type: string;
671
+ docs: {
672
+ description: string;
673
+ category: string;
674
+ rationale: string;
675
+ docsUrl: string;
676
+ recommended: boolean;
677
+ };
678
+ messages: {
679
+ unhandledPopupRejection: string;
680
+ };
681
+ schema: never[];
682
+ };
683
+ create(context: any): {
684
+ ImportDeclaration(node: any): void;
685
+ TryStatement(node: any): void;
686
+ CallExpression(node: any): void;
687
+ 'Program:exit'(): void;
688
+ };
689
+ };
690
+ readonly 'firebase-rtdb-list-read-for-single-item': {
691
+ meta: {
692
+ type: string;
693
+ docs: {
694
+ description: string;
695
+ category: string;
696
+ rationale: string;
697
+ docsUrl: string;
698
+ recommended: boolean;
699
+ };
700
+ messages: {
701
+ listReadForSingleItem: string;
702
+ };
703
+ schema: never[];
704
+ };
705
+ create(context: any): {
706
+ VariableDeclarator(node: any): void;
707
+ CallExpression(node: any): void;
708
+ 'Program:exit'(): void;
709
+ };
710
+ };
711
+ readonly 'firebase-unvalidated-external-data-to-rtdb': {
712
+ meta: {
713
+ type: string;
714
+ docs: {
715
+ description: string;
716
+ category: string;
717
+ rationale: string;
718
+ docsUrl: string;
719
+ recommended: boolean;
720
+ };
721
+ messages: {
722
+ unvalidatedWrite: string;
723
+ };
724
+ schema: never[];
725
+ };
726
+ create(context: any): {
727
+ ImportDeclaration(node: any): void;
728
+ FunctionDeclaration(node: any): void;
729
+ FunctionExpression(node: any): void;
730
+ ArrowFunctionExpression(node: any): void;
731
+ CallExpression(node: any): void;
732
+ 'Program:exit'(): void;
733
+ };
734
+ };
735
+ readonly 'firebase-rtdb-batch-write-not-atomic': {
736
+ meta: {
737
+ type: string;
738
+ docs: {
739
+ description: string;
740
+ category: string;
741
+ rationale: string;
742
+ docsUrl: string;
743
+ recommended: boolean;
744
+ };
745
+ messages: {
746
+ batchWriteNotAtomic: string;
747
+ };
748
+ schema: never[];
749
+ };
750
+ create(context: any): {
751
+ ImportDeclaration(node: any): void;
752
+ VariableDeclarator(node: any): void;
753
+ CallExpression(node: any): void;
754
+ };
755
+ };
756
+ readonly 'firebase-rtdb-listener-error-not-handled': {
757
+ meta: {
758
+ type: string;
759
+ docs: {
760
+ description: string;
761
+ category: string;
762
+ rationale: string;
763
+ docsUrl: string;
764
+ recommended: boolean;
765
+ };
766
+ messages: {
767
+ listenerErrorNotHandled: string;
768
+ };
769
+ schema: never[];
770
+ };
771
+ create(context: any): {
772
+ ImportDeclaration(node: any): void;
773
+ CallExpression(node: any): void;
774
+ };
775
+ };
776
+ readonly 'firebase-effect-deps-whole-user-object': {
777
+ meta: {
778
+ type: string;
779
+ docs: {
780
+ description: string;
781
+ category: string;
782
+ rationale: string;
783
+ docsUrl: string;
784
+ recommended: boolean;
785
+ };
786
+ messages: {
787
+ wholeUserObjectDep: string;
788
+ };
789
+ schema: never[];
790
+ };
791
+ create(context: any): {
792
+ CallExpression(node: any): void;
793
+ };
794
+ };
795
+ readonly 'firebase-rtdb-write-promise-not-handled': {
796
+ meta: {
797
+ type: string;
798
+ docs: {
799
+ description: string;
800
+ category: string;
801
+ rationale: string;
802
+ docsUrl: string;
803
+ recommended: boolean;
804
+ };
805
+ messages: {
806
+ writePromiseNotHandled: string;
807
+ };
808
+ schema: never[];
809
+ };
810
+ create(context: any): {
811
+ ImportDeclaration(node: any): void;
812
+ TryStatement(node: any): void;
813
+ ReturnStatement(node: any): void;
814
+ AwaitExpression(node: any): void;
815
+ CallExpression(node: any): void;
816
+ 'Program:exit'(): void;
817
+ };
818
+ };
819
+ readonly 'firebase-firestore-rules-expired': {
820
+ meta: {
821
+ type: string;
822
+ docs: {
823
+ description: string;
824
+ category: string;
825
+ cwe: string;
826
+ owasp: string;
827
+ rationale: string;
828
+ docsUrl: string;
829
+ recommended: boolean;
830
+ };
831
+ messages: {
832
+ firestoreRulesExpired: string;
833
+ };
834
+ schema: never[];
835
+ };
836
+ create(context: any): {
837
+ Literal(node: any): void;
838
+ TemplateLiteral(node: any): void;
839
+ };
840
+ };
841
+ readonly 'firebase-id-token-cookie-flags': {
842
+ meta: {
843
+ type: string;
844
+ docs: {
845
+ description: string;
846
+ category: string;
847
+ cwe: string;
848
+ owasp: string;
849
+ rationale: string;
850
+ docsUrl: string;
851
+ recommended: boolean;
852
+ };
853
+ messages: {
854
+ idTokenCookieMissingHttpOnly: string;
855
+ };
856
+ schema: never[];
857
+ };
858
+ create(context: any): {
859
+ CallExpression(node: any): void;
860
+ };
861
+ };
862
+ readonly 'firebase-middleware-token-not-verified': {
863
+ meta: {
864
+ type: string;
865
+ docs: {
866
+ description: string;
867
+ category: string;
868
+ cwe: string;
869
+ owasp: string;
870
+ rationale: string;
871
+ docsUrl: string;
872
+ recommended: boolean;
873
+ };
874
+ messages: {
875
+ tokenNotVerified: string;
876
+ };
877
+ schema: never[];
878
+ };
879
+ create(context: any): {
880
+ CallExpression(node: any): void;
881
+ 'Program:exit'(): void;
882
+ };
883
+ };
884
+ readonly 'firebase-hardcoded-user-id': {
885
+ meta: {
886
+ type: string;
887
+ docs: {
888
+ description: string;
889
+ category: string;
890
+ cwe: string;
891
+ owasp: string;
892
+ rationale: string;
893
+ docsUrl: string;
894
+ recommended: boolean;
895
+ };
896
+ messages: {
897
+ hardcodedUserId: string;
898
+ };
899
+ schema: never[];
900
+ };
901
+ create(context: any): {
902
+ VariableDeclarator(node: any): void;
903
+ };
904
+ };
905
+ readonly 'firebase-auth-user-not-found-disclosure': {
906
+ meta: {
907
+ type: string;
908
+ docs: {
909
+ description: string;
910
+ category: string;
911
+ cwe: string;
912
+ owasp: string;
913
+ rationale: string;
914
+ docsUrl: string;
915
+ recommended: boolean;
916
+ };
917
+ messages: {
918
+ userNotFoundDisclosure: string;
919
+ };
920
+ schema: never[];
921
+ };
922
+ create(context: any): {
923
+ BinaryExpression(node: any): void;
924
+ SwitchCase(node: any): void;
925
+ };
926
+ };
927
+ readonly 'firebase-signup-password-confirm': {
928
+ meta: {
929
+ type: string;
930
+ docs: {
931
+ description: string;
932
+ category: string;
933
+ rationale: string;
934
+ docsUrl: string;
935
+ recommended: boolean;
936
+ };
937
+ messages: {
938
+ passwordConfirmNotChecked: string;
939
+ };
940
+ schema: never[];
941
+ };
942
+ create(context: any): {
943
+ ImportDeclaration(node: any): void;
944
+ Identifier(node: any): void;
945
+ BinaryExpression(node: any): void;
946
+ CallExpression(node: any): void;
947
+ 'Program:exit'(): void;
948
+ };
949
+ };
950
+ readonly 'firebase-use-array-union-remove': {
951
+ meta: {
952
+ type: string;
953
+ docs: {
954
+ description: string;
955
+ category: string;
956
+ rationale: string;
957
+ docsUrl: string;
958
+ recommended: boolean;
959
+ };
960
+ messages: {
961
+ useArrayUnionRemove: string;
962
+ };
963
+ schema: never[];
964
+ };
965
+ create(context: any): {
966
+ CallExpression(node: any): void;
967
+ };
968
+ };
969
+ readonly 'firebase-duplicate-initialize-app': {
970
+ meta: {
971
+ type: string;
972
+ docs: {
973
+ description: string;
974
+ category: string;
975
+ rationale: string;
976
+ docsUrl: string;
977
+ recommended: boolean;
978
+ };
979
+ messages: {
980
+ duplicateInitializeApp: string;
981
+ };
982
+ schema: never[];
983
+ };
984
+ create(context: any): {
985
+ ImportDeclaration(node: any): void;
986
+ CallExpression(node: any): void;
987
+ 'Program:exit'(): void;
988
+ };
989
+ };
990
+ readonly 'firebase-onSnapshot-async-throw': {
991
+ meta: {
992
+ type: string;
993
+ docs: {
994
+ description: string;
995
+ category: string;
996
+ rationale: string;
997
+ docsUrl: string;
998
+ recommended: boolean;
999
+ };
1000
+ messages: {
1001
+ asyncThrowInSnapshot: string;
1002
+ };
1003
+ schema: never[];
1004
+ };
1005
+ create(context: any): {
1006
+ CallExpression(node: any): void;
1007
+ };
1008
+ };
1009
+ readonly 'firebase-onSnapshot-missing-error-callback': {
1010
+ meta: {
1011
+ type: string;
1012
+ docs: {
1013
+ description: string;
1014
+ category: string;
1015
+ rationale: string;
1016
+ docsUrl: string;
1017
+ recommended: boolean;
1018
+ };
1019
+ messages: {
1020
+ missingErrorCallback: string;
1021
+ };
1022
+ schema: never[];
1023
+ };
1024
+ create(context: any): {
1025
+ CallExpression(node: any): void;
1026
+ };
1027
+ };
1028
+ readonly 'firebase-firestore-document-size-guard': {
1029
+ meta: {
1030
+ type: string;
1031
+ docs: {
1032
+ description: string;
1033
+ category: string;
1034
+ rationale: string;
1035
+ docsUrl: string;
1036
+ recommended: boolean;
1037
+ };
1038
+ messages: {
1039
+ missingDocumentSizeGuard: string;
1040
+ };
1041
+ schema: never[];
1042
+ };
1043
+ create(context: any): {
1044
+ CallExpression(node: any): void;
1045
+ NewExpression(node: any): void;
1046
+ 'Program:exit'(): void;
1047
+ };
1048
+ };
1049
+ readonly 'firebase-use-timestamp-now': {
1050
+ meta: {
1051
+ type: string;
1052
+ docs: {
1053
+ description: string;
1054
+ category: string;
1055
+ rationale: string;
1056
+ docsUrl: string;
1057
+ recommended: boolean;
1058
+ };
1059
+ messages: {
1060
+ useTimestampNow: string;
1061
+ };
1062
+ schema: never[];
1063
+ };
1064
+ create(context: any): {
1065
+ ImportDeclaration(node: any): void;
1066
+ NewExpression(node: any): void;
1067
+ };
1068
+ };
1069
+ readonly 'lovable-no-client-side-secret-fetch': {
1070
+ meta: {
1071
+ type: string;
1072
+ docs: {
1073
+ description: string;
1074
+ category: string;
1075
+ cwe: string;
1076
+ owasp: string;
1077
+ rationale: string;
1078
+ docsUrl: string;
1079
+ recommended: boolean;
1080
+ };
1081
+ messages: {
1082
+ clientSideSecretFetch: string;
1083
+ };
1084
+ };
1085
+ create(context: any): {
1086
+ VariableDeclarator(node: any): void;
1087
+ CallExpression(node: any): void;
1088
+ };
1089
+ };
1090
+ readonly 'lovable-paid-flag-without-edge-function': {
1091
+ meta: {
1092
+ type: string;
1093
+ docs: {
1094
+ description: string;
1095
+ category: string;
1096
+ cwe: string;
1097
+ owasp: string;
1098
+ rationale: string;
1099
+ docsUrl: string;
1100
+ recommended: boolean;
1101
+ };
1102
+ messages: {
1103
+ paidFlagWithoutPayment: string;
1104
+ };
1105
+ };
1106
+ create(context: any): {
1107
+ Program(node: any): void;
1108
+ 'Program:exit'(): void;
1109
+ FunctionDeclaration(node: any): void;
1110
+ 'FunctionDeclaration:exit'(): void;
1111
+ FunctionExpression(node: any): void;
1112
+ 'FunctionExpression:exit'(): void;
1113
+ ArrowFunctionExpression(node: any): void;
1114
+ 'ArrowFunctionExpression:exit'(): void;
1115
+ Literal(node: any): void;
1116
+ JSXText(node: any): void;
1117
+ TemplateElement(node: any): void;
1118
+ CallExpression(node: any): void;
1119
+ };
1120
+ };
1121
+ readonly 'lovable-expiry-column-never-checked': {
1122
+ meta: {
1123
+ type: string;
1124
+ docs: {
1125
+ description: string;
1126
+ category: string;
1127
+ rationale: string;
1128
+ docsUrl: string;
1129
+ recommended: boolean;
1130
+ };
1131
+ messages: {
1132
+ expiryNeverChecked: string;
1133
+ };
1134
+ };
1135
+ create(context: any): {
1136
+ CallExpression(node: any): void;
1137
+ BinaryExpression(node: any): void;
1138
+ 'Program:exit'(): void;
1139
+ };
1140
+ };
1141
+ readonly 'lovable-silent-catch-on-provider-call': {
1142
+ meta: {
1143
+ type: string;
1144
+ docs: {
1145
+ description: string;
1146
+ category: string;
1147
+ rationale: string;
1148
+ docsUrl: string;
1149
+ recommended: boolean;
1150
+ };
1151
+ messages: {
1152
+ silentCatch: string;
1153
+ };
1154
+ };
1155
+ create(context: any): {
1156
+ TryStatement(node: any): void;
1157
+ };
1158
+ };
1159
+ readonly 'browserbase-no-conditional-authz-on-anonymous-user': {
1160
+ meta: {
1161
+ type: string;
1162
+ docs: {
1163
+ description: string;
1164
+ category: string;
1165
+ cwe: string;
1166
+ owasp: string;
1167
+ rationale: string;
1168
+ docsUrl: string;
1169
+ recommended: boolean;
1170
+ };
1171
+ messages: {
1172
+ conditionalAuthz: string;
1173
+ };
1174
+ schema: never[];
1175
+ };
1176
+ create(context: any): {
1177
+ FunctionDeclaration(node: any): void;
1178
+ FunctionExpression(node: any): void;
1179
+ ArrowFunctionExpression(node: any): void;
1180
+ IfStatement(node: any): void;
1181
+ CallExpression(node: any): void;
1182
+ 'Program:exit'(): void;
1183
+ };
1184
+ };
1185
+ readonly 'browserbase-no-connect-url-in-api-response': {
1186
+ meta: {
1187
+ type: string;
1188
+ docs: {
1189
+ description: string;
1190
+ category: string;
1191
+ cwe: string;
1192
+ owasp: string;
1193
+ rationale: string;
1194
+ docsUrl: string;
1195
+ recommended: boolean;
1196
+ };
1197
+ messages: {
1198
+ connectUrlInResponse: string;
1199
+ };
1200
+ schema: never[];
1201
+ };
1202
+ create(context: any): {
1203
+ CallExpression(node: any): void;
1204
+ };
1205
+ };
1206
+ readonly 'browserbase-session-id-requires-ownership-check': {
1207
+ meta: {
1208
+ type: string;
1209
+ docs: {
1210
+ description: string;
1211
+ category: string;
1212
+ cwe: string;
1213
+ rationale: string;
1214
+ docsUrl: string;
1215
+ recommended: boolean;
1216
+ };
1217
+ messages: {
1218
+ missingOwnershipCheck: string;
1219
+ };
1220
+ schema: never[];
1221
+ };
1222
+ create(context: any): {
1223
+ FunctionDeclaration(node: any): void;
1224
+ FunctionExpression(node: any): void;
1225
+ ArrowFunctionExpression(node: any): void;
1226
+ CallExpression(node: any): void;
1227
+ 'Program:exit'(): void;
1228
+ };
1229
+ };
1230
+ readonly 'browserbase-no-concurrent-shared-context': {
1231
+ meta: {
1232
+ type: string;
1233
+ docs: {
1234
+ description: string;
1235
+ category: string;
1236
+ rationale: string;
1237
+ docsUrl: string;
1238
+ recommended: boolean;
1239
+ };
1240
+ messages: {
1241
+ concurrentSharedContext: string;
1242
+ };
1243
+ schema: never[];
1244
+ };
1245
+ create(context: any): {
1246
+ VariableDeclarator(node: any): void;
1247
+ CallExpression(node: any): void;
1248
+ };
1249
+ };
1250
+ readonly 'browserbase-mobile-device-requires-os-setting': {
1251
+ meta: {
1252
+ type: string;
1253
+ docs: {
1254
+ description: string;
1255
+ category: string;
1256
+ rationale: string;
1257
+ docsUrl: string;
1258
+ recommended: boolean;
1259
+ };
1260
+ messages: {
1261
+ missingOsSetting: string;
1262
+ };
1263
+ schema: never[];
1264
+ };
1265
+ create(context: any): {
1266
+ IfStatement(node: any): void;
1267
+ Property(node: any): void;
1268
+ AssignmentExpression(node: any): void;
1269
+ 'Program:exit'(): void;
1270
+ };
1271
+ };
1272
+ readonly 'browserbase-use-typed-exception-status-not-substring': {
1273
+ meta: {
1274
+ type: string;
1275
+ docs: {
1276
+ description: string;
1277
+ category: string;
1278
+ rationale: string;
1279
+ docsUrl: string;
1280
+ recommended: boolean;
1281
+ };
1282
+ messages: {
1283
+ substringStatusMatch: string;
1284
+ };
1285
+ schema: never[];
1286
+ };
1287
+ create(context: any): {
1288
+ CatchClause(node: any): void;
1289
+ };
1290
+ };
1291
+ readonly 'browserbase-release-session-on-connect-failure': {
1292
+ meta: {
1293
+ type: string;
1294
+ docs: {
1295
+ description: string;
1296
+ category: string;
1297
+ rationale: string;
1298
+ docsUrl: string;
1299
+ recommended: boolean;
1300
+ };
1301
+ messages: {
1302
+ sessionNotReleasedOnFailure: string;
1303
+ };
1304
+ schema: never[];
1305
+ };
1306
+ create(context: any): {
1307
+ AwaitExpression(node: any): void;
1308
+ TryStatement(node: any): void;
1309
+ CallExpression(node: any): void;
1310
+ 'Program:exit'(): void;
1311
+ };
1312
+ };
1313
+ readonly 'browserbase-dont-stack-custom-retry-on-sdk-retry': {
1314
+ meta: {
1315
+ type: string;
1316
+ docs: {
1317
+ description: string;
1318
+ category: string;
1319
+ rationale: string;
1320
+ docsUrl: string;
1321
+ recommended: boolean;
1322
+ };
1323
+ messages: {
1324
+ stackedRetry: string;
1325
+ };
1326
+ schema: never[];
1327
+ };
1328
+ create(context: any): {
1329
+ ForStatement(node: any): void;
1330
+ WhileStatement(node: any): void;
1331
+ DoWhileStatement(node: any): void;
1332
+ CallExpression(node: any): void;
1333
+ };
1334
+ };
1335
+ readonly 'browserbase-no-overbroad-error-substring-match': {
1336
+ meta: {
1337
+ type: string;
1338
+ docs: {
1339
+ description: string;
1340
+ category: string;
1341
+ rationale: string;
1342
+ docsUrl: string;
1343
+ recommended: boolean;
1344
+ };
1345
+ messages: {
1346
+ overbroadMatch: string;
1347
+ };
1348
+ schema: never[];
1349
+ };
1350
+ create(context: any): {
1351
+ IfStatement(node: any): void;
1352
+ };
1353
+ };
1354
+ readonly 'browserbase-use-sdk-not-raw-requests': {
1355
+ meta: {
1356
+ type: string;
1357
+ docs: {
1358
+ description: string;
1359
+ category: string;
1360
+ rationale: string;
1361
+ docsUrl: string;
1362
+ recommended: boolean;
1363
+ };
1364
+ messages: {
1365
+ rawRequestToBrowserbase: string;
1366
+ };
1367
+ schema: never[];
1368
+ };
1369
+ create(context: any): {
1370
+ VariableDeclarator(node: any): void;
1371
+ CallExpression(node: any): void;
1372
+ };
1373
+ };
1374
+ readonly 'browserbase-centralize-request-release': {
1375
+ meta: {
1376
+ type: string;
1377
+ docs: {
1378
+ description: string;
1379
+ category: string;
1380
+ rationale: string;
1381
+ docsUrl: string;
1382
+ recommended: boolean;
1383
+ };
1384
+ messages: {
1385
+ inlineRequestRelease: string;
1386
+ };
1387
+ schema: never[];
1388
+ };
1389
+ create(context: any): {
1390
+ CallExpression?: undefined;
1391
+ } | {
1392
+ CallExpression(node: any): void;
1393
+ };
1394
+ };
1395
+ readonly 'openai-cua-no-domain-allowlist': {
1396
+ meta: {
1397
+ type: string;
1398
+ docs: {
1399
+ description: string;
1400
+ category: string;
1401
+ cwe: string;
1402
+ owasp: string;
1403
+ rationale: string;
1404
+ docsUrl: string;
1405
+ recommended: boolean;
1406
+ };
1407
+ messages: {
1408
+ noOriginCheck: string;
1409
+ };
1410
+ };
1411
+ create(context: any): {
1412
+ Program(node: any): void;
1413
+ 'Program:exit'(): void;
1414
+ FunctionDeclaration(node: any): void;
1415
+ 'FunctionDeclaration:exit'(): void;
1416
+ FunctionExpression(node: any): void;
1417
+ 'FunctionExpression:exit'(): void;
1418
+ ArrowFunctionExpression(node: any): void;
1419
+ 'ArrowFunctionExpression:exit'(): void;
1420
+ CallExpression(node: any): void;
1421
+ NewExpression(node: any): void;
1422
+ MemberExpression(node: any): void;
1423
+ Identifier(node: any): void;
1424
+ };
1425
+ };
1426
+ readonly 'openai-cua-scroll-delta-default-zero': {
1427
+ meta: {
1428
+ type: string;
1429
+ docs: {
1430
+ description: string;
1431
+ category: string;
1432
+ rationale: string;
1433
+ docsUrl: string;
1434
+ recommended: boolean;
1435
+ };
1436
+ messages: {
1437
+ nonZeroDefault: string;
1438
+ };
1439
+ };
1440
+ create(context: any): {
1441
+ LogicalExpression(node: any): void;
1442
+ IfStatement(node: any): void;
1443
+ };
1444
+ };
1445
+ readonly 'openai-cua-structured-step-metadata-not-text-json': {
1446
+ meta: {
1447
+ type: string;
1448
+ docs: {
1449
+ description: string;
1450
+ category: string;
1451
+ rationale: string;
1452
+ docsUrl: string;
1453
+ recommended: boolean;
1454
+ };
1455
+ messages: {
1456
+ textJsonExtraction: string;
1457
+ };
1458
+ };
1459
+ create(context: any): {
1460
+ Program(node: any): void;
1461
+ 'Program:exit'(): void;
1462
+ FunctionDeclaration(node: any): void;
1463
+ 'FunctionDeclaration:exit'(): void;
1464
+ FunctionExpression(node: any): void;
1465
+ 'FunctionExpression:exit'(): void;
1466
+ ArrowFunctionExpression(node: any): void;
1467
+ 'ArrowFunctionExpression:exit'(): void;
1468
+ CallExpression(node: any): void;
1469
+ };
1470
+ };
1471
+ readonly 'openai-cua-no-blind-safety-check-ack': {
1472
+ meta: {
1473
+ type: string;
1474
+ docs: {
1475
+ description: string;
1476
+ category: string;
1477
+ rationale: string;
1478
+ docsUrl: string;
1479
+ recommended: boolean;
1480
+ };
1481
+ messages: {
1482
+ blindAck: string;
1483
+ };
1484
+ };
1485
+ create(context: any): {
1486
+ CallExpression(node: any): void;
1487
+ };
1488
+ };
1489
+ readonly 'openai-cua-retry-transient-turn-errors': {
1490
+ meta: {
1491
+ type: string;
1492
+ docs: {
1493
+ description: string;
1494
+ category: string;
1495
+ rationale: string;
1496
+ docsUrl: string;
1497
+ recommended: boolean;
1498
+ };
1499
+ messages: {
1500
+ noTurnRetry: string;
1501
+ };
1502
+ };
1503
+ create(context: any): {
1504
+ ForStatement(): void;
1505
+ 'ForStatement:exit'(): void;
1506
+ WhileStatement(): void;
1507
+ 'WhileStatement:exit'(): void;
1508
+ DoWhileStatement(): void;
1509
+ 'DoWhileStatement:exit'(): void;
1510
+ ForOfStatement(): void;
1511
+ 'ForOfStatement:exit'(): void;
1512
+ ForInStatement(): void;
1513
+ 'ForInStatement:exit'(): void;
1514
+ TryStatement(node: any): void;
1515
+ };
1516
+ };
1517
+ readonly 'openai-cua-check-response-status-incomplete': {
1518
+ meta: {
1519
+ type: string;
1520
+ docs: {
1521
+ description: string;
1522
+ category: string;
1523
+ rationale: string;
1524
+ docsUrl: string;
1525
+ recommended: boolean;
1526
+ };
1527
+ messages: {
1528
+ missingIncompleteCheck: string;
1529
+ };
1530
+ };
1531
+ create(context: any): {
1532
+ Program(node: any): void;
1533
+ 'Program:exit'(): void;
1534
+ FunctionDeclaration(node: any): void;
1535
+ 'FunctionDeclaration:exit'(): void;
1536
+ FunctionExpression(node: any): void;
1537
+ 'FunctionExpression:exit'(): void;
1538
+ ArrowFunctionExpression(node: any): void;
1539
+ 'ArrowFunctionExpression:exit'(): void;
1540
+ CallExpression(node: any): void;
1541
+ ObjectExpression(node: any): void;
1542
+ BinaryExpression(node: any): void;
1543
+ };
1544
+ };
1545
+ readonly 'openai-cua-set-safety-identifier': {
1546
+ meta: {
1547
+ type: string;
1548
+ docs: {
1549
+ description: string;
1550
+ category: string;
1551
+ rationale: string;
1552
+ docsUrl: string;
1553
+ recommended: boolean;
1554
+ };
1555
+ messages: {
1556
+ missingSafetyIdentifier: string;
1557
+ };
1558
+ };
1559
+ create(context: any): {
1560
+ CallExpression(node: any): void;
1561
+ };
1562
+ };
1563
+ readonly 'tiptap-upload-validate-fn-void': {
1564
+ meta: {
1565
+ type: string;
1566
+ docs: {
1567
+ description: string;
1568
+ category: string;
1569
+ cwe: string;
1570
+ owasp: string;
1571
+ rationale: string;
1572
+ docsUrl: string;
1573
+ recommended: boolean;
1574
+ };
1575
+ messages: {
1576
+ validateFnVoid: string;
1577
+ };
1578
+ schema: never[];
1579
+ };
1580
+ create(context: any): {
1581
+ ImportDeclaration(node: any): void;
1582
+ TSInterfaceDeclaration(node: any): void;
1583
+ ExpressionStatement(node: any): void;
1584
+ };
1585
+ };
1586
+ readonly 'tiptap-script-src-hardcoded-api-key': {
1587
+ meta: {
1588
+ type: string;
1589
+ docs: {
1590
+ description: string;
1591
+ category: string;
1592
+ cwe: string;
1593
+ owasp: string;
1594
+ rationale: string;
1595
+ docsUrl: string;
1596
+ recommended: boolean;
1597
+ };
1598
+ messages: {
1599
+ hardcodedApiKey: string;
1600
+ };
1601
+ schema: never[];
1602
+ };
1603
+ create(context: any): {
1604
+ AssignmentExpression(node: any): void;
1605
+ };
1606
+ };
1607
+ readonly 'tiptap-dynamic-script-no-sri': {
1608
+ meta: {
1609
+ type: string;
1610
+ docs: {
1611
+ description: string;
1612
+ category: string;
1613
+ cwe: string;
1614
+ owasp: string;
1615
+ rationale: string;
1616
+ docsUrl: string;
1617
+ recommended: boolean;
1618
+ };
1619
+ messages: {
1620
+ missingIntegrity: string;
1621
+ };
1622
+ schema: never[];
1623
+ };
1624
+ create(context: any): {
1625
+ VariableDeclarator(node: any): void;
1626
+ ExpressionStatement(node: any): void;
1627
+ AssignmentExpression(node: any): void;
1628
+ 'Program:exit'(): void;
1629
+ };
1630
+ };
1631
+ readonly 'tiptap-addAttributes-missing-renderHTML': {
1632
+ meta: {
1633
+ type: string;
1634
+ docs: {
1635
+ description: string;
1636
+ category: string;
1637
+ rationale: string;
1638
+ docsUrl: string;
1639
+ recommended: boolean;
1640
+ };
1641
+ messages: {
1642
+ missingRenderHTML: string;
1643
+ };
1644
+ schema: never[];
1645
+ };
1646
+ create(context: any): {
1647
+ Property(node: any): void;
1648
+ };
1649
+ };
1650
+ readonly 'tiptap-appendTransaction-add-to-history': {
1651
+ meta: {
1652
+ type: string;
1653
+ docs: {
1654
+ description: string;
1655
+ category: string;
1656
+ rationale: string;
1657
+ docsUrl: string;
1658
+ recommended: boolean;
1659
+ };
1660
+ messages: {
1661
+ missingAddToHistory: string;
1662
+ };
1663
+ schema: never[];
1664
+ };
1665
+ create(context: any): {
1666
+ Property(node: any): void;
1667
+ };
1668
+ };
1669
+ readonly 'tiptap-appendTransaction-full-scan': {
1670
+ meta: {
1671
+ type: string;
1672
+ docs: {
1673
+ description: string;
1674
+ category: string;
1675
+ rationale: string;
1676
+ docsUrl: string;
1677
+ recommended: boolean;
1678
+ };
1679
+ messages: {
1680
+ fullScanOnEveryTransaction: string;
1681
+ };
1682
+ schema: never[];
1683
+ };
1684
+ create(context: any): {
1685
+ Property(node: any): void;
1686
+ };
1687
+ };
1688
+ readonly 'tiptap-atom-node-wrap-in': {
1689
+ meta: {
1690
+ type: string;
1691
+ docs: {
1692
+ description: string;
1693
+ category: string;
1694
+ rationale: string;
1695
+ docsUrl: string;
1696
+ recommended: boolean;
1697
+ };
1698
+ messages: {
1699
+ wrapInAtomNode: string;
1700
+ };
1701
+ schema: never[];
1702
+ };
1703
+ create(context: any): {
1704
+ CallExpression(node: any): void;
1705
+ 'Program:exit'(): void;
1706
+ };
1707
+ };
1708
+ readonly 'tiptap-twitter-url-regex': {
1709
+ meta: {
1710
+ type: string;
1711
+ docs: {
1712
+ description: string;
1713
+ category: string;
1714
+ rationale: string;
1715
+ docsUrl: string;
1716
+ recommended: boolean;
1717
+ };
1718
+ messages: {
1719
+ twitterRegexMissingLegacyDomain: string;
1720
+ };
1721
+ schema: never[];
1722
+ };
1723
+ create(context: any): {
1724
+ Literal(node: any): void;
1725
+ NewExpression(node: any): void;
1726
+ };
1727
+ };
1728
+ readonly 'tiptap-drop-handler-pos-precedence': {
1729
+ meta: {
1730
+ type: string;
1731
+ docs: {
1732
+ description: string;
1733
+ category: string;
1734
+ rationale: string;
1735
+ docsUrl: string;
1736
+ recommended: boolean;
1737
+ };
1738
+ messages: {
1739
+ posNullCoalescePrecedence: string;
1740
+ };
1741
+ schema: never[];
1742
+ };
1743
+ create(context: any): {
1744
+ LogicalExpression(node: any): void;
1745
+ };
1746
+ };
1747
+ readonly 'tiptap-prefer-table-kit': {
1748
+ meta: {
1749
+ type: string;
1750
+ docs: {
1751
+ description: string;
1752
+ category: string;
1753
+ rationale: string;
1754
+ docsUrl: string;
1755
+ recommended: boolean;
1756
+ };
1757
+ messages: {
1758
+ preferTableKit: string;
1759
+ };
1760
+ schema: never[];
1761
+ };
1762
+ create(context: any): {
1763
+ ImportDeclaration(node: any): void;
1764
+ 'Program:exit'(): void;
1765
+ };
1766
+ };
1767
+ readonly 'tiptap-tiptap-markdown-missing-node-spec': {
1768
+ meta: {
1769
+ type: string;
1770
+ docs: {
1771
+ description: string;
1772
+ category: string;
1773
+ rationale: string;
1774
+ docsUrl: string;
1775
+ recommended: boolean;
1776
+ };
1777
+ messages: {
1778
+ missingMarkdownNodeSpec: string;
1779
+ };
1780
+ schema: never[];
1781
+ };
1782
+ create(context: any): {
1783
+ ImportDeclaration(node: any): void;
1784
+ CallExpression(node: any): void;
1785
+ 'Program:exit'(): void;
1786
+ };
1787
+ };
1788
+ };
1789
+ };
1790
+
1791
+ export { plugin as default, plugin };