ferrovue 0.3.0 → 0.5.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (106) hide show
  1. package/README.md +225 -42
  2. package/dist/attrs.d.ts +3 -53
  3. package/dist/attrs.js +41 -469
  4. package/dist/calls.d.ts +4 -0
  5. package/dist/calls.js +221 -0
  6. package/dist/children.d.ts +16 -0
  7. package/dist/children.js +286 -0
  8. package/dist/classes.d.ts +13 -0
  9. package/dist/classes.js +176 -0
  10. package/dist/cli.js +31 -22
  11. package/dist/client.d.ts +35 -2
  12. package/dist/client.js +77 -14
  13. package/dist/compiler.d.ts +1 -1
  14. package/dist/compiler.js +31 -92
  15. package/dist/component.d.ts +3 -1
  16. package/dist/component.js +123 -104
  17. package/dist/constants.d.ts +42 -0
  18. package/dist/constants.js +292 -0
  19. package/dist/context.d.ts +29 -67
  20. package/dist/context.js +13 -38
  21. package/dist/diagnostics.d.ts +23 -0
  22. package/dist/diagnostics.js +30 -0
  23. package/dist/diff.d.ts +0 -3
  24. package/dist/diff.js +0 -9
  25. package/dist/emitter.d.ts +0 -8
  26. package/dist/emitter.js +0 -12
  27. package/dist/errors.d.ts +867 -0
  28. package/dist/errors.js +330 -0
  29. package/dist/expr.d.ts +1 -70
  30. package/dist/expr.js +142 -934
  31. package/dist/fallthrough.d.ts +9 -0
  32. package/dist/fallthrough.js +78 -0
  33. package/dist/fixture.d.ts +4 -10
  34. package/dist/fixture.js +38 -27
  35. package/dist/hydration.d.ts +15 -0
  36. package/dist/hydration.js +80 -0
  37. package/dist/index.d.ts +3 -0
  38. package/dist/index.js +2 -0
  39. package/dist/islands.d.ts +1 -0
  40. package/dist/islands.js +1 -0
  41. package/dist/link-router.d.ts +24 -0
  42. package/dist/link-router.js +36 -0
  43. package/dist/lists.d.ts +0 -11
  44. package/dist/lists.js +34 -60
  45. package/dist/loops.d.ts +3 -0
  46. package/dist/loops.js +168 -0
  47. package/dist/model.d.ts +46 -144
  48. package/dist/model.js +150 -18
  49. package/dist/narrowing.d.ts +27 -0
  50. package/dist/narrowing.js +157 -0
  51. package/dist/numbers.d.ts +8 -0
  52. package/dist/numbers.js +73 -0
  53. package/dist/parens.d.ts +0 -27
  54. package/dist/parens.js +0 -44
  55. package/dist/plugin.d.ts +84 -0
  56. package/dist/plugin.js +26 -0
  57. package/dist/plugins/client-only.d.ts +8 -0
  58. package/dist/plugins/client-only.js +107 -0
  59. package/dist/plugins/i18n.d.ts +23 -0
  60. package/dist/{i18n.js → plugins/i18n.js} +88 -31
  61. package/dist/plugins/index.d.ts +2 -0
  62. package/dist/plugins/index.js +10 -0
  63. package/dist/plugins/router-link.d.ts +8 -0
  64. package/dist/{router.js → plugins/router-link.js} +52 -91
  65. package/dist/plugins/router.d.ts +42 -0
  66. package/dist/plugins/router.js +256 -0
  67. package/dist/plugins/scoped.d.ts +12 -0
  68. package/dist/plugins/scoped.js +125 -0
  69. package/dist/plugins/shared-types.d.ts +2 -0
  70. package/dist/plugins/shared-types.js +7 -0
  71. package/dist/plugins/stores.d.ts +37 -0
  72. package/dist/plugins/stores.js +379 -0
  73. package/dist/plugins/teleport.d.ts +5 -0
  74. package/dist/plugins/teleport.js +55 -0
  75. package/dist/plugins/twins.d.ts +10 -0
  76. package/dist/plugins/twins.js +164 -0
  77. package/dist/routes.d.ts +10 -0
  78. package/dist/routes.js +6 -0
  79. package/dist/rust.d.ts +1 -7
  80. package/dist/rust.js +56 -174
  81. package/dist/script.d.ts +3 -6
  82. package/dist/script.js +127 -140
  83. package/dist/settle.d.ts +6 -0
  84. package/dist/settle.js +34 -0
  85. package/dist/slots.d.ts +13 -0
  86. package/dist/slots.js +160 -0
  87. package/dist/strings.d.ts +13 -0
  88. package/dist/strings.js +208 -0
  89. package/dist/styles.d.ts +14 -0
  90. package/dist/styles.js +181 -0
  91. package/dist/template.d.ts +1 -42
  92. package/dist/template.js +25 -749
  93. package/dist/testing.d.ts +2 -0
  94. package/dist/testing.js +4 -10
  95. package/dist/types.d.ts +2 -0
  96. package/dist/typescript.d.ts +2 -14
  97. package/dist/typescript.js +53 -59
  98. package/dist/vite.d.ts +2 -1
  99. package/dist/vite.js +11 -32
  100. package/package.json +15 -6
  101. package/dist/i18n.d.ts +0 -27
  102. package/dist/router.d.ts +0 -17
  103. package/dist/scoped.d.ts +0 -24
  104. package/dist/scoped.js +0 -177
  105. package/dist/stores.d.ts +0 -6
  106. package/dist/stores.js +0 -229
@@ -0,0 +1,867 @@
1
+ /** What the documentation says of one error code. */
2
+ export interface ErrorDoc {
3
+ /** What the code refuses, in a few words. */
4
+ title: string;
5
+ /** Why it is refused and what to write instead, where the message alone does not say. */
6
+ detail?: string;
7
+ /** The version that stopped raising it. A retired code stays listed and is never given out again. */
8
+ retired?: string;
9
+ }
10
+ /** The areas codes are grouped in, by their first two digits, with the guide page that explains each. */
11
+ export declare const AREAS: Record<string, {
12
+ name: string;
13
+ guide?: string;
14
+ }>;
15
+ /** Every code the compiler raises. A code is never reused: one the compiler stops raising is marked
16
+ * `retired` and stays listed. `pnpm errors:generate` writes the guide's index from this list. */
17
+ export declare const ERRORS: {
18
+ readonly FV0001: {
19
+ readonly title: "Source file that does not parse";
20
+ readonly detail: "A `<script setup>` block, or a file it reads, is not valid TypeScript. The message is the parser's own, with the line and column where it stopped.";
21
+ };
22
+ readonly FV0002: {
23
+ readonly title: "Component file Vue cannot parse";
24
+ };
25
+ readonly FV0003: {
26
+ readonly title: "`<script>` without `setup`";
27
+ };
28
+ readonly FV0004: {
29
+ readonly title: "Component without a `<template>`";
30
+ };
31
+ readonly FV0005: {
32
+ readonly title: "Template Vue cannot compile";
33
+ };
34
+ readonly FV0006: {
35
+ readonly title: "Unexpected construct in Vue's compiled template";
36
+ readonly detail: "The compiler met output of Vue's server compiler that it has no translation for. Please report it with the component that caused it.";
37
+ };
38
+ readonly FV0101: {
39
+ readonly title: "`inheritAttrs` that is not `true` or `false`";
40
+ };
41
+ readonly FV0102: {
42
+ readonly title: "`watch` with `immediate`";
43
+ };
44
+ readonly FV0103: {
45
+ readonly title: "Effect that runs once on the server";
46
+ };
47
+ readonly FV0104: {
48
+ readonly title: "`onServerPrefetch`";
49
+ };
50
+ readonly FV0105: {
51
+ readonly title: "Statement in setup that could change what renders";
52
+ };
53
+ readonly FV0106: {
54
+ readonly title: "`defineAsyncComponent` of anything but a component of this project";
55
+ };
56
+ readonly FV0107: {
57
+ readonly title: "Unsupported statement in setup";
58
+ };
59
+ readonly FV0108: {
60
+ readonly title: "`...rest` in destructured props";
61
+ };
62
+ readonly FV0109: {
63
+ readonly title: "Destructured prop that is not a plain name";
64
+ };
65
+ readonly FV0201: {
66
+ readonly title: "Constant that refers to itself";
67
+ };
68
+ readonly FV0202: {
69
+ readonly title: "Enum member without a value after a string member";
70
+ };
71
+ readonly FV0203: {
72
+ readonly title: "Enum member value that is not a string or number literal";
73
+ };
74
+ readonly FV0204: {
75
+ readonly title: "Field a constant object does not have";
76
+ };
77
+ readonly FV0205: {
78
+ readonly title: "Spread or hole in a constant list";
79
+ };
80
+ readonly FV0206: {
81
+ readonly title: "Computed or spread key in a constant object";
82
+ };
83
+ readonly FV0207: {
84
+ readonly title: "Constant that is not a literal";
85
+ };
86
+ readonly FV0208: {
87
+ readonly title: "Constant object read whole";
88
+ };
89
+ readonly FV0209: {
90
+ readonly title: "`null` in a constant list of plain values";
91
+ };
92
+ readonly FV0210: {
93
+ readonly title: "Constant list of plain values of different types";
94
+ };
95
+ readonly FV0211: {
96
+ readonly title: "Constant list mixing plain values and objects";
97
+ };
98
+ readonly FV0212: {
99
+ readonly title: "Two constant lists with one Rust name";
100
+ };
101
+ readonly FV0213: {
102
+ readonly title: "Object in a constant list without a required field";
103
+ };
104
+ readonly FV0214: {
105
+ readonly title: "`null` for a field that is not nullable";
106
+ };
107
+ readonly FV0215: {
108
+ readonly title: "Field of the wrong type in a constant list's object";
109
+ };
110
+ readonly FV0216: {
111
+ readonly title: "Field of an unsupported type in a constant list's objects";
112
+ };
113
+ readonly FV0217: {
114
+ readonly title: "Field that is only ever `null`";
115
+ };
116
+ readonly FV0218: {
117
+ readonly title: "Field `null` in some objects and absent in others";
118
+ };
119
+ readonly FV0219: {
120
+ readonly title: "Field of different types across a constant list's objects";
121
+ };
122
+ readonly FV0220: {
123
+ readonly title: "Constant list's object type declared twice";
124
+ };
125
+ readonly FV0221: {
126
+ readonly title: "Constant list's object type named as a Rust type";
127
+ };
128
+ readonly FV0222: {
129
+ readonly title: "Constant object read by a key chosen at run time";
130
+ };
131
+ readonly FV0301: {
132
+ readonly title: "`generic` that is not a list of type parameters";
133
+ };
134
+ readonly FV0302: {
135
+ readonly title: "Type parameter without a constraint";
136
+ readonly detail: "A generic component renders each type parameter as its constraint, so `generic=\"T\"` alone gives the server no type. Write `generic=\"T extends string\"`.";
137
+ };
138
+ readonly FV0303: {
139
+ readonly title: "Props declared at run time";
140
+ };
141
+ readonly FV0304: {
142
+ readonly title: "Props type not declared in the component";
143
+ };
144
+ readonly FV0305: {
145
+ readonly title: "`defineModel` without a type";
146
+ };
147
+ readonly FV0306: {
148
+ readonly title: "`defineModel` of a nullable type that is not required";
149
+ };
150
+ readonly FV0307: {
151
+ readonly title: "Default for a nullable prop";
152
+ };
153
+ readonly FV0308: {
154
+ readonly title: "Unknown type";
155
+ };
156
+ readonly FV0309: {
157
+ readonly title: "Type that is only `undefined`";
158
+ };
159
+ readonly FV0310: {
160
+ readonly title: "Object type written in place";
161
+ };
162
+ readonly FV0311: {
163
+ readonly title: "Type that may be both `null` and `undefined`";
164
+ readonly detail: "A Rust `Option` holds one kind of nothing, where JavaScript has two. Declare `T | null` or `x?: T`, never both. See [`props`](crate::guide::props#nullable-props).";
165
+ };
166
+ readonly FV0312: {
167
+ readonly title: "Union of different types";
168
+ };
169
+ readonly FV0313: {
170
+ readonly title: "`Record` not keyed by `string`";
171
+ };
172
+ readonly FV0314: {
173
+ readonly title: "Type alias that refers to itself";
174
+ };
175
+ readonly FV0315: {
176
+ readonly title: "Unsupported named type";
177
+ };
178
+ readonly FV0316: {
179
+ readonly title: "Unsupported type";
180
+ };
181
+ readonly FV0317: {
182
+ readonly title: "`Record` of unsupported values";
183
+ };
184
+ readonly FV0318: {
185
+ readonly title: "Interface named as a Rust type";
186
+ };
187
+ readonly FV0319: {
188
+ readonly title: "Type declared in two files";
189
+ };
190
+ readonly FV0320: {
191
+ readonly title: "Interface with members other than plain named fields";
192
+ };
193
+ readonly FV0321: {
194
+ readonly title: "Optional field of a nullable type";
195
+ };
196
+ readonly FV0322: {
197
+ readonly title: "Prop default that is not a literal";
198
+ };
199
+ readonly FV0401: {
200
+ readonly title: "Interpolation of a value that is not a string, a number or a boolean";
201
+ };
202
+ readonly FV0402: {
203
+ readonly title: "Attribute value of an unsupported type";
204
+ };
205
+ readonly FV0403: {
206
+ readonly title: "Attribute bound to a value Vue's server leaves out";
207
+ readonly detail: "Vue's server renderer leaves out an attribute bound to a list, an object or a `route.query` value, and hydration then sets it to the value's `String()` without reporting a mismatch. Join a list (`.join(\",\")`) or narrow a query value to one string.";
208
+ };
209
+ readonly FV0404: {
210
+ readonly title: "Unsafe attribute name";
211
+ };
212
+ readonly FV0405: {
213
+ readonly title: "Custom directive not listed in `clientDirectives`";
214
+ readonly detail: "A custom directive's `getSSRProps` may add attributes on the server, which ferrovue does not run. List a directive that adds none in `clientDirectives`.";
215
+ };
216
+ readonly FV0406: {
217
+ readonly title: "`$attrs` on a root that takes scope ids";
218
+ };
219
+ readonly FV0407: {
220
+ readonly title: "Attributes that are not an object literal";
221
+ };
222
+ readonly FV0408: {
223
+ readonly title: "Computed or spread key in an attribute object";
224
+ };
225
+ readonly FV0409: {
226
+ readonly title: "`className` bound in place of `class`";
227
+ };
228
+ readonly FV0410: {
229
+ readonly title: "Merged attributes that are not object literals";
230
+ };
231
+ readonly FV0411: {
232
+ readonly title: "Class merged with a string that may repeat the class before it";
233
+ };
234
+ readonly FV0412: {
235
+ readonly title: "Fallthrough attribute of an unsupported type";
236
+ };
237
+ readonly FV0413: {
238
+ readonly title: "`v-model` comparing values of types it cannot compare";
239
+ };
240
+ readonly FV0414: {
241
+ readonly title: "`v-model` over an array";
242
+ };
243
+ readonly FV0415: {
244
+ readonly title: "Value read from `$attrs`";
245
+ };
246
+ readonly FV0416: {
247
+ readonly title: "Root `<Transition>` or `<KeepAlive>` around `v-if` that is given attributes";
248
+ };
249
+ readonly FV0417: {
250
+ readonly title: "Attribute name chosen at run time";
251
+ };
252
+ readonly FV0418: {
253
+ readonly title: "`<component :is>`";
254
+ };
255
+ readonly FV0501: {
256
+ readonly title: "Child component that is not among the compiled components";
257
+ };
258
+ readonly FV0502: {
259
+ readonly title: "Fallthrough attribute that would reach a child's prop";
260
+ };
261
+ readonly FV0503: {
262
+ readonly title: "Child props that are not an object literal";
263
+ };
264
+ readonly FV0504: {
265
+ readonly title: "Computed or spread key in child props";
266
+ };
267
+ readonly FV0505: {
268
+ readonly title: "Attribute named by an integer";
269
+ };
270
+ readonly FV0506: {
271
+ readonly title: "Required prop not passed";
272
+ };
273
+ readonly FV0507: {
274
+ readonly title: "Required nullable prop not passed";
275
+ };
276
+ readonly FV0508: {
277
+ readonly title: "Attributes passed to a child that takes none";
278
+ };
279
+ readonly FV0509: {
280
+ readonly title: "String prop given a value that is not a string";
281
+ };
282
+ readonly FV0510: {
283
+ readonly title: "One type declared separately by parent and child";
284
+ };
285
+ readonly FV0511: {
286
+ readonly title: "Prop given a value of another type";
287
+ };
288
+ readonly FV0512: {
289
+ readonly title: "`Props` imported from a component that is not compiled";
290
+ };
291
+ readonly FV0513: {
292
+ readonly title: "Component resolved by name that is not imported";
293
+ };
294
+ readonly FV0601: {
295
+ readonly title: "Name or function not available on the server";
296
+ };
297
+ readonly FV0602: {
298
+ readonly title: "Unsupported method";
299
+ };
300
+ readonly FV0603: {
301
+ readonly title: "Unsupported call";
302
+ };
303
+ readonly FV0604: {
304
+ readonly title: "Field read on a value that is not an object";
305
+ };
306
+ readonly FV0605: {
307
+ readonly title: "Field the type does not have";
308
+ };
309
+ readonly FV0606: {
310
+ readonly title: "Value that may be absent where its target cannot take it as it is";
311
+ };
312
+ readonly FV0607: {
313
+ readonly title: "Value of an unexpected type";
314
+ };
315
+ readonly FV0608: {
316
+ readonly title: "`+` between unsupported types";
317
+ };
318
+ readonly FV0609: {
319
+ readonly title: "Comparison between unsupported or absent values";
320
+ };
321
+ readonly FV0610: {
322
+ readonly title: "Spread or hole in an array literal";
323
+ };
324
+ readonly FV0611: {
325
+ readonly title: "Array literal of different types";
326
+ };
327
+ readonly FV0612: {
328
+ readonly title: "Computed member access";
329
+ };
330
+ readonly FV0613: {
331
+ readonly title: "Value set up in a way the server cannot evaluate";
332
+ };
333
+ readonly FV0614: {
334
+ readonly title: "Logical operator between values that are not booleans";
335
+ };
336
+ readonly FV0615: {
337
+ readonly title: "`??` falling back to a computed list";
338
+ };
339
+ readonly FV0616: {
340
+ readonly title: "`??` between different types";
341
+ };
342
+ readonly FV0617: {
343
+ readonly title: "`||` between unsupported types";
344
+ };
345
+ readonly FV0618: {
346
+ readonly title: "Unsupported unary operator";
347
+ };
348
+ readonly FV0619: {
349
+ readonly title: "`==` or `!=` with anything but `null` or `undefined`";
350
+ };
351
+ readonly FV0620: {
352
+ readonly title: "Loose test against `undefined` of a value of a plugin's type";
353
+ };
354
+ readonly FV0621: {
355
+ readonly title: "Comparison of a plugin's value with `null` or `undefined`";
356
+ };
357
+ readonly FV0622: {
358
+ readonly title: "`===` between different types";
359
+ };
360
+ readonly FV0623: {
361
+ readonly title: "Branches of `?:` of different types";
362
+ };
363
+ readonly FV0624: {
364
+ readonly title: "`new` in an expression";
365
+ };
366
+ readonly FV0625: {
367
+ readonly title: "Unsupported expression";
368
+ };
369
+ readonly FV0626: {
370
+ readonly title: "Strict test of a value that may be `null` or `undefined`";
371
+ };
372
+ readonly FV0627: {
373
+ readonly title: "Strict test against the absence a value cannot have";
374
+ };
375
+ readonly FV0701: {
376
+ readonly title: "`Number()` of an unsupported value";
377
+ };
378
+ readonly FV0702: {
379
+ readonly title: "`parseInt()` or `parseFloat()` of a value that is not a string";
380
+ };
381
+ readonly FV0703: {
382
+ readonly title: "`parseInt()` with a radix other than a literal 10 or 16";
383
+ };
384
+ readonly FV0704: {
385
+ readonly title: "Unsupported `Math` method";
386
+ };
387
+ readonly FV0705: {
388
+ readonly title: "`.toFixed()` without a literal number of digits from 0 to 100";
389
+ };
390
+ readonly FV0706: {
391
+ readonly title: "String that may hold half of a surrogate pair compared, searched or joined";
392
+ readonly detail: "`slice`, `substring`, `at`, `charAt` and `split(\"\")` can cut a surrogate pair in half. JavaScript keeps the half where ferrovue holds U+FFFD, so two such strings may compare, search or join differently. See [`strings`](crate::guide::strings#halves-of-surrogate-pairs).";
393
+ };
394
+ readonly FV0707: {
395
+ readonly title: "`JSON.stringify()` of an unsupported value";
396
+ };
397
+ readonly FV0708: {
398
+ readonly title: "Template literal of values that are not present strings, numbers or booleans";
399
+ };
400
+ readonly FV0709: {
401
+ readonly title: "String method with the wrong number of arguments";
402
+ };
403
+ readonly FV0710: {
404
+ readonly title: "Regular expression given to a string method";
405
+ };
406
+ readonly FV0711: {
407
+ readonly title: "String method given a value that is not a present string";
408
+ };
409
+ readonly FV0712: {
410
+ readonly title: "String method given a value that is not a present number";
411
+ };
412
+ readonly FV0713: {
413
+ readonly title: "Function given to a string method";
414
+ };
415
+ readonly FV0714: {
416
+ readonly title: "`.repeat()` by a negative or infinite count";
417
+ };
418
+ readonly FV0715: {
419
+ readonly title: "Case mapping by the server's locale";
420
+ };
421
+ readonly FV0801: {
422
+ readonly title: "`.includes()` of a value of another type than the list's";
423
+ };
424
+ readonly FV0802: {
425
+ readonly title: "`.join()` with a separator that is not a string";
426
+ };
427
+ readonly FV0803: {
428
+ readonly title: "List method on a value that is not a list";
429
+ };
430
+ readonly FV0804: {
431
+ readonly title: "List method over a list of unsupported items";
432
+ };
433
+ readonly FV0805: {
434
+ readonly title: "List method given anything but an arrow function";
435
+ };
436
+ readonly FV0806: {
437
+ readonly title: "Arrow function with a block body";
438
+ };
439
+ readonly FV0807: {
440
+ readonly title: "Arrow function index that is not a plain name";
441
+ };
442
+ readonly FV0808: {
443
+ readonly title: "Defaults or nested patterns in an arrow function's item";
444
+ };
445
+ readonly FV0809: {
446
+ readonly title: "Arrow function item bound by an unsupported pattern";
447
+ };
448
+ readonly FV0810: {
449
+ readonly title: "`.map()` to optional or unsupported values";
450
+ };
451
+ readonly FV0811: {
452
+ readonly title: "`.slice()` with more than two arguments";
453
+ };
454
+ readonly FV0812: {
455
+ readonly title: "`.slice()` of values that are not numbers";
456
+ };
457
+ readonly FV0813: {
458
+ readonly title: "List method given more than one function";
459
+ };
460
+ readonly FV0814: {
461
+ readonly title: "`Object` method of a value that is not a `Record`";
462
+ };
463
+ readonly FV0815: {
464
+ readonly title: "`Object.values()` of a record of lists";
465
+ };
466
+ readonly FV0816: {
467
+ readonly title: "`Object.entries()` outside a `v-for`";
468
+ };
469
+ readonly FV0817: {
470
+ readonly title: "Unsupported `Object` method";
471
+ };
472
+ readonly FV0818: {
473
+ readonly title: "`v-for` over `Object.entries()` without `[key, value]`";
474
+ };
475
+ readonly FV0819: {
476
+ readonly title: "`v-for` over an empty array literal";
477
+ };
478
+ readonly FV0820: {
479
+ readonly title: "`v-for` over a value that is not a list or a number";
480
+ };
481
+ readonly FV0821: {
482
+ readonly title: "Defaults or nested patterns in a `v-for` item";
483
+ };
484
+ readonly FV0822: {
485
+ readonly title: "`v-for` item bound by an unsupported pattern";
486
+ };
487
+ readonly FV0823: {
488
+ readonly title: "`v-for` key or index that is not a plain name";
489
+ };
490
+ readonly FV0901: {
491
+ readonly title: "Slots that are not an object literal";
492
+ };
493
+ readonly FV0902: {
494
+ readonly title: "Computed or spread slot name";
495
+ };
496
+ readonly FV0903: {
497
+ readonly title: "Content for a slot the child does not have";
498
+ };
499
+ readonly FV0904: {
500
+ readonly title: "Defaults or nested patterns in destructured slot props";
501
+ };
502
+ readonly FV0905: {
503
+ readonly title: "Slot props bound by an unsupported pattern";
504
+ };
505
+ readonly FV0906: {
506
+ readonly title: "Slot props taken from a slot that passes none";
507
+ };
508
+ readonly FV0907: {
509
+ readonly title: "Slot read that the template does not render";
510
+ };
511
+ readonly FV0908: {
512
+ readonly title: "Slot prop of a type with no Rust type";
513
+ };
514
+ readonly FV0909: {
515
+ readonly title: "Array literal as a slot prop";
516
+ };
517
+ readonly FV0910: {
518
+ readonly title: "Computed list as a slot prop";
519
+ };
520
+ readonly FV0911: {
521
+ readonly title: "Slot prop of an unsupported type";
522
+ };
523
+ readonly FV0912: {
524
+ readonly title: "Slot name that is not literal";
525
+ };
526
+ readonly FV0913: {
527
+ readonly title: "Slot props that are not attributes or an object literal";
528
+ };
529
+ readonly FV0914: {
530
+ readonly title: "Computed or spread key in slot props";
531
+ };
532
+ readonly FV0915: {
533
+ readonly title: "Slot prop name that is not a plain name";
534
+ };
535
+ readonly FV0916: {
536
+ readonly title: "Outlets of one slot that pass different props";
537
+ };
538
+ readonly FV0917: {
539
+ readonly title: "Interface named as a slot's props type";
540
+ };
541
+ readonly FV0918: {
542
+ readonly title: "Slot scope id given to content that takes none";
543
+ };
544
+ readonly FV1001: {
545
+ readonly title: "Computed or spread key in a class object";
546
+ };
547
+ readonly FV1002: {
548
+ readonly title: "Computed class name that is not a string";
549
+ };
550
+ readonly FV1003: {
551
+ readonly title: "Class name with spaces around it";
552
+ };
553
+ readonly FV1004: {
554
+ readonly title: "Class binding of an unsupported type";
555
+ };
556
+ readonly FV1005: {
557
+ readonly title: "`<style module>`";
558
+ };
559
+ readonly FV1006: {
560
+ readonly title: "`v-bind()` in CSS";
561
+ };
562
+ readonly FV1007: {
563
+ readonly title: "Style binding of an unsupported type";
564
+ };
565
+ readonly FV1008: {
566
+ readonly title: "Computed or spread key in a style object";
567
+ };
568
+ readonly FV1009: {
569
+ readonly title: "Style property named by a number or starting with `:`";
570
+ };
571
+ readonly FV1010: {
572
+ readonly title: "Style array mixing a string with objects";
573
+ };
574
+ readonly FV1011: {
575
+ readonly title: "Style property whose place depends on a condition";
576
+ };
577
+ readonly FV1012: {
578
+ readonly title: "Scope ids handed to a component whose render does not take them";
579
+ };
580
+ readonly FV1101: {
581
+ readonly title: "Helper called with the wrong number of arguments";
582
+ };
583
+ readonly FV1102: {
584
+ readonly title: "Configuration file not found";
585
+ };
586
+ readonly FV1103: {
587
+ readonly title: "Configuration file that is not valid JSON";
588
+ };
589
+ readonly FV1104: {
590
+ readonly title: "Configuration without `components` or `out`";
591
+ };
592
+ readonly FV1105: {
593
+ readonly title: "Unsupported `scopeId`";
594
+ };
595
+ readonly FV1106: {
596
+ readonly title: "`builders` that is not `true` or `false`";
597
+ };
598
+ readonly FV1107: {
599
+ readonly title: "Unknown helper type";
600
+ };
601
+ readonly FV1108: {
602
+ readonly title: "Imported function without a Rust twin";
603
+ };
604
+ readonly FV1109: {
605
+ readonly title: "Twin name that is not PascalCase";
606
+ };
607
+ readonly FV1110: {
608
+ readonly title: "Twin without `rust`";
609
+ };
610
+ readonly FV1111: {
611
+ readonly title: "Twin prop name that is not camelCase";
612
+ };
613
+ readonly FV1112: {
614
+ readonly title: "Twin slot name that is not a plain name";
615
+ };
616
+ readonly FV1201: {
617
+ readonly title: "Route parameter that is not a present string or number";
618
+ };
619
+ readonly FV1202: {
620
+ readonly title: "`to` that is not a string or an object literal";
621
+ };
622
+ readonly FV1203: {
623
+ readonly title: "Computed or spread key in a `to` object";
624
+ };
625
+ readonly FV1204: {
626
+ readonly title: "Unsupported key in a `to` object";
627
+ };
628
+ readonly FV1205: {
629
+ readonly title: "`query` that is not an object literal";
630
+ };
631
+ readonly FV1206: {
632
+ readonly title: "Computed or spread key in a query";
633
+ };
634
+ readonly FV1207: {
635
+ readonly title: "Query value that may be `null`";
636
+ };
637
+ readonly FV1208: {
638
+ readonly title: "`hash` that is not a string";
639
+ };
640
+ readonly FV1209: {
641
+ readonly title: "Route name that is not a string literal";
642
+ };
643
+ readonly FV1210: {
644
+ readonly title: "Unknown route name";
645
+ };
646
+ readonly FV1211: {
647
+ readonly title: "`params` that is not an object literal";
648
+ };
649
+ readonly FV1212: {
650
+ readonly title: "Computed or spread key in `params`";
651
+ };
652
+ readonly FV1213: {
653
+ readonly title: "Unknown route parameter";
654
+ };
655
+ readonly FV1214: {
656
+ readonly title: "Route parameter not given";
657
+ };
658
+ readonly FV1215: {
659
+ readonly title: "`to` with both `path` and `params`";
660
+ };
661
+ readonly FV1216: {
662
+ readonly title: "`path` that is not a string";
663
+ };
664
+ readonly FV1217: {
665
+ readonly title: "`to` without `name` or `path`";
666
+ };
667
+ readonly FV1218: {
668
+ readonly title: "`<RouterLink>` attributes that are not literal";
669
+ };
670
+ readonly FV1219: {
671
+ readonly title: "Computed or spread key in `<RouterLink>` attributes";
672
+ };
673
+ readonly FV1220: {
674
+ readonly title: "`custom` on `<RouterLink>`";
675
+ };
676
+ readonly FV1221: {
677
+ readonly title: "`href` or `aria-current` set on `<RouterLink>`";
678
+ };
679
+ readonly FV1222: {
680
+ readonly title: "`<RouterLink>` without `to`";
681
+ };
682
+ readonly FV1223: {
683
+ readonly title: "Element in a `<RouterLink>` given a slot scope id";
684
+ };
685
+ readonly FV1224: {
686
+ readonly title: "`<slot>` in a `<RouterLink>` that takes scope ids";
687
+ };
688
+ readonly FV1225: {
689
+ readonly title: "`<RouterLink>` without `routes` configured";
690
+ };
691
+ readonly FV1226: {
692
+ readonly title: "`<RouterLink>` attribute that is not a string literal";
693
+ };
694
+ readonly FV1227: {
695
+ readonly title: "Fallthrough attribute that would reach a `<RouterLink>` prop";
696
+ };
697
+ readonly FV1228: {
698
+ readonly title: "Fallthrough attribute that would replace a `<RouterLink>` attribute";
699
+ };
700
+ readonly FV1229: {
701
+ readonly title: "`<RouterLink>` slot other than the default";
702
+ };
703
+ readonly FV1230: {
704
+ readonly title: "Route read without `routes` configured";
705
+ };
706
+ readonly FV1231: {
707
+ readonly title: "Route field not available on the server";
708
+ };
709
+ readonly FV1232: {
710
+ readonly title: "Routes file that is not an array";
711
+ };
712
+ readonly FV1233: {
713
+ readonly title: "Route entry of an unsupported shape";
714
+ };
715
+ readonly FV1234: {
716
+ readonly title: "`typeof` of anything but a query value";
717
+ };
718
+ readonly FV1235: {
719
+ readonly title: "`??` after a query value with a fallback that is not a string";
720
+ };
721
+ readonly FV1236: {
722
+ readonly title: "`<RouterView>` in a component with `<style scoped>`";
723
+ };
724
+ readonly FV1237: {
725
+ readonly title: "`<RouterView>` in a child component";
726
+ };
727
+ readonly FV1301: {
728
+ readonly title: "Type declared by two stores";
729
+ };
730
+ readonly FV1302: {
731
+ readonly title: "Store id that is not a string literal";
732
+ };
733
+ readonly FV1303: {
734
+ readonly title: "Store of an unsupported shape";
735
+ };
736
+ readonly FV1304: {
737
+ readonly title: "Store `state` without a declared return type";
738
+ };
739
+ readonly FV1305: {
740
+ readonly title: "Store `getters` that is not an object literal";
741
+ };
742
+ readonly FV1306: {
743
+ readonly title: "Getter that is not a function of the state";
744
+ };
745
+ readonly FV1307: {
746
+ readonly title: "Setup store without a block body";
747
+ };
748
+ readonly FV1308: {
749
+ readonly title: "Unsupported statement in a setup store";
750
+ };
751
+ readonly FV1309: {
752
+ readonly title: "Setup store that does not return an object";
753
+ };
754
+ readonly FV1310: {
755
+ readonly title: "Setup store returning anything but plain names";
756
+ };
757
+ readonly FV1311: {
758
+ readonly title: "Setup store returning a name it does not declare";
759
+ };
760
+ readonly FV1312: {
761
+ readonly title: "Interface named as a setup store's state type";
762
+ };
763
+ readonly FV1313: {
764
+ readonly title: "`ref<T | null>()` without a value";
765
+ };
766
+ readonly FV1314: {
767
+ readonly title: "Setup store `ref` without a type";
768
+ };
769
+ readonly FV1315: {
770
+ readonly title: "Getter with a block body";
771
+ };
772
+ readonly FV1316: {
773
+ readonly title: "Getter that reads `this`";
774
+ };
775
+ readonly FV1317: {
776
+ readonly title: "Getter that returns a function";
777
+ };
778
+ readonly FV1318: {
779
+ readonly title: "Getters that read each other";
780
+ };
781
+ readonly FV1319: {
782
+ readonly title: "Store imported by anything but its `use…` hook";
783
+ };
784
+ readonly FV1320: {
785
+ readonly title: "`storeToRefs` of anything but a store bound in setup";
786
+ };
787
+ readonly FV1321: {
788
+ readonly title: "`storeToRefs` not destructured into plain names";
789
+ };
790
+ readonly FV1322: {
791
+ readonly title: "Store hook called with arguments";
792
+ };
793
+ readonly FV1401: {
794
+ readonly title: "Locale file that is not valid JSON";
795
+ };
796
+ readonly FV1402: {
797
+ readonly title: "Locale message that does not parse";
798
+ };
799
+ readonly FV1403: {
800
+ readonly title: "Linked message with a key chosen at run time";
801
+ };
802
+ readonly FV1404: {
803
+ readonly title: "Linked message with an unknown modifier";
804
+ };
805
+ readonly FV1405: {
806
+ readonly title: "Locale message construct ferrovue does not render";
807
+ };
808
+ readonly FV1406: {
809
+ readonly title: "`t()` value that is not a present string, number or boolean";
810
+ };
811
+ readonly FV1407: {
812
+ readonly title: "`t()` without `i18n` configured";
813
+ };
814
+ readonly FV1408: {
815
+ readonly title: "`t()` with unsupported arguments";
816
+ };
817
+ readonly FV1409: {
818
+ readonly title: "`t()` key that is not a string";
819
+ };
820
+ readonly FV1410: {
821
+ readonly title: "Computed or spread key in `t()`'s named values";
822
+ };
823
+ readonly FV1411: {
824
+ readonly title: "Default message given to `t()`";
825
+ };
826
+ readonly FV1412: {
827
+ readonly title: "Plural number that is not an integer";
828
+ };
829
+ readonly FV1413: {
830
+ readonly title: "`useI18n()` not destructured into plain names";
831
+ };
832
+ readonly FV1501: {
833
+ readonly title: "Twin props that are not attributes or an object literal";
834
+ };
835
+ readonly FV1502: {
836
+ readonly title: "`v-html` of anything but a `TrustedHtml` prop";
837
+ readonly detail: "`v-html` writes raw HTML, which ferrovue allows only from a type you mark as trusted. See [`escaping`](crate::guide::escaping).";
838
+ };
839
+ readonly FV1503: {
840
+ readonly title: "`TrustedHtml` prop without `trustedHtml` configured";
841
+ };
842
+ readonly FV1504: {
843
+ readonly title: "Attributes on `<ClientOnly>`";
844
+ };
845
+ readonly FV1505: {
846
+ readonly title: "`<ClientOnly>` slot other than the default and `#fallback`";
847
+ };
848
+ readonly FV1506: {
849
+ readonly title: "Slot props taken from `<ClientOnly>`'s `#fallback`";
850
+ };
851
+ readonly FV1507: {
852
+ readonly title: "`<Teleport>` in slot content whose emptiness is decided at run time";
853
+ };
854
+ readonly FV1508: {
855
+ readonly title: "`<Teleport>` target that is not a string";
856
+ };
857
+ readonly FV1509: {
858
+ readonly title: "Twin prop of a type with no Rust type";
859
+ };
860
+ readonly FV1510: {
861
+ readonly title: "Twin for a component ferrovue compiles";
862
+ };
863
+ };
864
+ /** A stable error code, as `FV0604`. */
865
+ export type Code = keyof typeof ERRORS;
866
+ /** Where a code is documented. */
867
+ export declare function docsUrl(code: string): string;