eslint-plugin-jsdoc 39.3.5 → 39.3.12

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 (124) hide show
  1. package/README.md +273 -52
  2. package/dist/WarnSettings.js +0 -5
  3. package/dist/WarnSettings.js.map +1 -1
  4. package/dist/alignTransform.js +69 -61
  5. package/dist/alignTransform.js.map +1 -1
  6. package/dist/bin/generateRule.js +7 -26
  7. package/dist/bin/generateRule.js.map +1 -1
  8. package/dist/defaultTagOrder.js +30 -14
  9. package/dist/defaultTagOrder.js.map +1 -1
  10. package/dist/exportParser.js +34 -143
  11. package/dist/exportParser.js.map +1 -1
  12. package/dist/generateRule.js +7 -26
  13. package/dist/generateRule.js.map +1 -1
  14. package/dist/getDefaultTagStructureForMode.js +189 -93
  15. package/dist/getDefaultTagStructureForMode.js.map +1 -1
  16. package/dist/index.js +0 -51
  17. package/dist/index.js.map +1 -1
  18. package/dist/iterateJsdoc.js +44 -207
  19. package/dist/iterateJsdoc.js.map +1 -1
  20. package/dist/jsdocUtils.js +72 -221
  21. package/dist/jsdocUtils.js.map +1 -1
  22. package/dist/rules/checkAccess.js +0 -8
  23. package/dist/rules/checkAccess.js.map +1 -1
  24. package/dist/rules/checkAlignment.js +0 -8
  25. package/dist/rules/checkAlignment.js.map +1 -1
  26. package/dist/rules/checkExamples.js +25 -63
  27. package/dist/rules/checkExamples.js.map +1 -1
  28. package/dist/rules/checkIndentation.js +0 -7
  29. package/dist/rules/checkIndentation.js.map +1 -1
  30. package/dist/rules/checkLineAlignment.js +9 -30
  31. package/dist/rules/checkLineAlignment.js.map +1 -1
  32. package/dist/rules/checkParamNames.js +9 -47
  33. package/dist/rules/checkParamNames.js.map +1 -1
  34. package/dist/rules/checkPropertyNames.js +1 -18
  35. package/dist/rules/checkPropertyNames.js.map +1 -1
  36. package/dist/rules/checkSyntax.js +2 -5
  37. package/dist/rules/checkSyntax.js.map +1 -1
  38. package/dist/rules/checkTagNames.js +0 -18
  39. package/dist/rules/checkTagNames.js.map +1 -1
  40. package/dist/rules/checkTypes.js +17 -46
  41. package/dist/rules/checkTypes.js.map +1 -1
  42. package/dist/rules/checkValues.js +0 -18
  43. package/dist/rules/checkValues.js.map +1 -1
  44. package/dist/rules/emptyTags.js +6 -11
  45. package/dist/rules/emptyTags.js.map +1 -1
  46. package/dist/rules/implementsOnClasses.js +0 -6
  47. package/dist/rules/implementsOnClasses.js.map +1 -1
  48. package/dist/rules/matchDescription.js +0 -20
  49. package/dist/rules/matchDescription.js.map +1 -1
  50. package/dist/rules/matchName.js +2 -17
  51. package/dist/rules/matchName.js.map +1 -1
  52. package/dist/rules/multilineBlocks.js +10 -34
  53. package/dist/rules/multilineBlocks.js.map +1 -1
  54. package/dist/rules/newlineAfterDescription.js +0 -8
  55. package/dist/rules/newlineAfterDescription.js.map +1 -1
  56. package/dist/rules/noBadBlocks.js +2 -16
  57. package/dist/rules/noBadBlocks.js.map +1 -1
  58. package/dist/rules/noDefaults.js +0 -7
  59. package/dist/rules/noDefaults.js.map +1 -1
  60. package/dist/rules/noMissingSyntax.js +2 -16
  61. package/dist/rules/noMissingSyntax.js.map +1 -1
  62. package/dist/rules/noMultiAsterisks.js +2 -16
  63. package/dist/rules/noMultiAsterisks.js.map +1 -1
  64. package/dist/rules/noRestrictedSyntax.js +3 -9
  65. package/dist/rules/noRestrictedSyntax.js.map +1 -1
  66. package/dist/rules/noTypes.js +0 -7
  67. package/dist/rules/noTypes.js.map +1 -1
  68. package/dist/rules/noUndefinedTypes.js +13 -34
  69. package/dist/rules/noUndefinedTypes.js.map +1 -1
  70. package/dist/rules/requireAsteriskPrefix.js +2 -26
  71. package/dist/rules/requireAsteriskPrefix.js.map +1 -1
  72. package/dist/rules/requireDescription.js +0 -17
  73. package/dist/rules/requireDescription.js.map +1 -1
  74. package/dist/rules/requireDescriptionCompleteSentence.js +13 -34
  75. package/dist/rules/requireDescriptionCompleteSentence.js.map +1 -1
  76. package/dist/rules/requireExample.js +0 -9
  77. package/dist/rules/requireExample.js.map +1 -1
  78. package/dist/rules/requireFileOverview.js +0 -16
  79. package/dist/rules/requireFileOverview.js.map +1 -1
  80. package/dist/rules/requireHyphenBeforeParamDescription.js +2 -16
  81. package/dist/rules/requireHyphenBeforeParamDescription.js.map +1 -1
  82. package/dist/rules/requireJsdoc.js +13 -58
  83. package/dist/rules/requireJsdoc.js.map +1 -1
  84. package/dist/rules/requireParam.js +6 -53
  85. package/dist/rules/requireParam.js.map +1 -1
  86. package/dist/rules/requireParamDescription.js +0 -4
  87. package/dist/rules/requireParamDescription.js.map +1 -1
  88. package/dist/rules/requireParamName.js +0 -4
  89. package/dist/rules/requireParamName.js.map +1 -1
  90. package/dist/rules/requireParamType.js +0 -4
  91. package/dist/rules/requireParamType.js.map +1 -1
  92. package/dist/rules/requireProperty.js +0 -9
  93. package/dist/rules/requireProperty.js.map +1 -1
  94. package/dist/rules/requirePropertyDescription.js +0 -4
  95. package/dist/rules/requirePropertyDescription.js.map +1 -1
  96. package/dist/rules/requirePropertyName.js +0 -4
  97. package/dist/rules/requirePropertyName.js.map +1 -1
  98. package/dist/rules/requirePropertyType.js +0 -4
  99. package/dist/rules/requirePropertyType.js.map +1 -1
  100. package/dist/rules/requireReturns.js +13 -23
  101. package/dist/rules/requireReturns.js.map +1 -1
  102. package/dist/rules/requireReturnsCheck.js +12 -20
  103. package/dist/rules/requireReturnsCheck.js.map +1 -1
  104. package/dist/rules/requireReturnsDescription.js +0 -6
  105. package/dist/rules/requireReturnsDescription.js.map +1 -1
  106. package/dist/rules/requireReturnsType.js +0 -4
  107. package/dist/rules/requireReturnsType.js.map +1 -1
  108. package/dist/rules/requireThrows.js +6 -15
  109. package/dist/rules/requireThrows.js.map +1 -1
  110. package/dist/rules/requireYields.js +13 -29
  111. package/dist/rules/requireYields.js.map +1 -1
  112. package/dist/rules/requireYieldsCheck.js +8 -29
  113. package/dist/rules/requireYieldsCheck.js.map +1 -1
  114. package/dist/rules/sortTags.js +17 -30
  115. package/dist/rules/sortTags.js.map +1 -1
  116. package/dist/rules/tagLines.js +0 -26
  117. package/dist/rules/tagLines.js.map +1 -1
  118. package/dist/rules/validTypes.js +22 -53
  119. package/dist/rules/validTypes.js.map +1 -1
  120. package/dist/tagNames.js +7 -4
  121. package/dist/tagNames.js.map +1 -1
  122. package/dist/utils/hasReturnValue.js +22 -66
  123. package/dist/utils/hasReturnValue.js.map +1 -1
  124. package/package.json +16 -16
@@ -4,7 +4,6 @@ Object.defineProperty(exports, "__esModule", {
4
4
  value: true
5
5
  });
6
6
  exports.default = void 0;
7
-
8
7
  const getDefaultTagStructureForMode = mode => {
9
8
  const isJsdoc = mode === 'jsdoc';
10
9
  const isClosure = mode === 'closure';
@@ -14,167 +13,264 @@ const getDefaultTagStructureForMode = mode => {
14
13
  const isJsdocOrTypescript = isJsdoc || isTypescript;
15
14
  const isTypescriptOrClosure = isTypescript || isClosure;
16
15
  const isClosureOrPermissive = isClosure || isPermissive;
17
- const isJsdocTypescriptOrPermissive = isJsdocOrTypescript || isPermissive; // Properties:
16
+ const isJsdocTypescriptOrPermissive = isJsdocOrTypescript || isPermissive;
17
+
18
+ // Properties:
18
19
  // `nameContents` - 'namepath-referencing'|'namepath-defining'|'text'|false
19
20
  // `typeAllowed` - boolean
20
21
  // `nameRequired` - boolean
21
22
  // `typeRequired` - boolean
22
23
  // `typeOrNameRequired` - boolean
24
+
23
25
  // All of `typeAllowed` have a signature with "type" except for
24
26
  // `augments`/`extends` ("namepath")
25
27
  // `param`/`arg`/`argument` (no signature)
26
28
  // `property`/`prop` (no signature)
27
29
  // `modifies` (undocumented)
30
+
28
31
  // None of the `nameContents: 'namepath-defining'` show as having curly
29
32
  // brackets for their name/namepath
33
+
30
34
  // Among `namepath-defining` and `namepath-referencing`, these do not seem
31
35
  // to allow curly brackets in their doc signature or examples (`modifies`
32
36
  // references namepaths within its type brackets and `param` is
33
37
  // name-defining but not namepath-defining, so not part of these groups)
38
+
34
39
  // Todo: Should support special processing for "name" as distinct from
35
40
  // "namepath" (e.g., param can't define a namepath)
41
+
36
42
  // Once checking inline tags:
37
43
  // Todo: Re: `typeOrNameRequired`, `@link` (or @linkcode/@linkplain) seems
38
44
  // to require a namepath OR URL and might be checked as such.
39
45
  // Todo: Should support a `tutorialID` type (for `@tutorial` block and
40
46
  // inline)
41
47
 
42
- return new Map([['alias', new Map([// Signature seems to require a "namepath" (and no counter-examples)
43
- ['nameContents', 'namepath-referencing'], // "namepath"
44
- ['typeOrNameRequired', true]])], ['arg', new Map([['nameContents', 'namepath-defining'], // See `param`
45
- ['nameRequired', true], // Has no formal signature in the docs but shows curly brackets
48
+ return new Map([['alias', new Map([
49
+ // Signature seems to require a "namepath" (and no counter-examples)
50
+ ['nameContents', 'namepath-referencing'],
51
+ // "namepath"
52
+ ['typeOrNameRequired', true]])], ['arg', new Map([['nameContents', 'namepath-defining'],
53
+ // See `param`
54
+ ['nameRequired', true],
55
+ // Has no formal signature in the docs but shows curly brackets
46
56
  // in the examples
47
- ['typeAllowed', true]])], ['argument', new Map([['nameContents', 'namepath-defining'], // See `param`
48
- ['nameRequired', true], // Has no formal signature in the docs but shows curly brackets
57
+ ['typeAllowed', true]])], ['argument', new Map([['nameContents', 'namepath-defining'],
58
+ // See `param`
59
+ ['nameRequired', true],
60
+ // Has no formal signature in the docs but shows curly brackets
49
61
  // in the examples
50
- ['typeAllowed', true]])], ['augments', new Map([// Signature seems to require a "namepath" (and no counter-examples)
51
- ['nameContents', 'namepath-referencing'], // Does not show curly brackets in either the signature or examples
52
- ['typeAllowed', true], // "namepath"
53
- ['typeOrNameRequired', true]])], ['borrows', new Map([// `borrows` has a different format, however, so needs special parsing;
62
+ ['typeAllowed', true]])], ['augments', new Map([
63
+ // Signature seems to require a "namepath" (and no counter-examples)
64
+ ['nameContents', 'namepath-referencing'],
65
+ // Does not show curly brackets in either the signature or examples
66
+ ['typeAllowed', true],
67
+ // "namepath"
68
+ ['typeOrNameRequired', true]])], ['borrows', new Map([
69
+ // `borrows` has a different format, however, so needs special parsing;
54
70
  // seems to require both, and as "namepath"'s
55
- ['nameContents', 'namepath-referencing'], // "namepath"
56
- ['typeOrNameRequired', true]])], ['callback', new Map([// Seems to require a "namepath" in the signature (with no
71
+ ['nameContents', 'namepath-referencing'],
72
+ // "namepath"
73
+ ['typeOrNameRequired', true]])], ['callback', new Map([
74
+ // Seems to require a "namepath" in the signature (with no
57
75
  // counter-examples); TypeScript does not enforce but seems
58
76
  // problematic as not attached so presumably not useable without it
59
- ['nameContents', 'namepath-defining'], // "namepath"
60
- ['nameRequired', true]])], ['class', new Map([// Allows for "name"'s in signature, but indicated as optional
61
- ['nameContents', 'namepath-defining'], // Not in use, but should be this value if using to power `empty-tags`
62
- ['nameAllowed', true], ['typeAllowed', true]])], ['const', new Map([// Allows for "name"'s in signature, but indicated as optional
63
- ['nameContents', 'namepath-defining'], ['typeAllowed', true]])], ['constant', new Map([// Allows for "name"'s in signature, but indicated as optional
64
- ['nameContents', 'namepath-defining'], ['typeAllowed', true]])], ['constructor', new Map([// Allows for "name"'s in signature, but indicated as optional
65
- ['nameContents', 'namepath-defining'], ['typeAllowed', true]])], ['constructs', new Map([// Allows for "name"'s in signature, but indicated as optional
66
- ['nameContents', 'namepath-defining'], ['nameRequired', false], ['typeAllowed', false]])], ['define', new Map([['typeRequired', isClosure]])], ['emits', new Map([// Signature seems to require a "name" (of an event) and no counter-examples
67
- ['nameContents', 'namepath-referencing'], ['nameRequired', true], ['typeAllowed', false]])], ['enum', new Map([// Has example showing curly brackets but not in doc signature
68
- ['typeAllowed', true]])], ['event', new Map([// The doc signature of `event` seems to require a "name"
69
- ['nameRequired', true], // Appears to require a "name" in its signature, albeit somewhat
77
+ ['nameContents', 'namepath-defining'],
78
+ // "namepath"
79
+ ['nameRequired', true]])], ['class', new Map([
80
+ // Allows for "name"'s in signature, but indicated as optional
81
+ ['nameContents', 'namepath-defining'],
82
+ // Not in use, but should be this value if using to power `empty-tags`
83
+ ['nameAllowed', true], ['typeAllowed', true]])], ['const', new Map([
84
+ // Allows for "name"'s in signature, but indicated as optional
85
+ ['nameContents', 'namepath-defining'], ['typeAllowed', true]])], ['constant', new Map([
86
+ // Allows for "name"'s in signature, but indicated as optional
87
+ ['nameContents', 'namepath-defining'], ['typeAllowed', true]])], ['constructor', new Map([
88
+ // Allows for "name"'s in signature, but indicated as optional
89
+ ['nameContents', 'namepath-defining'], ['typeAllowed', true]])], ['constructs', new Map([
90
+ // Allows for "name"'s in signature, but indicated as optional
91
+ ['nameContents', 'namepath-defining'], ['nameRequired', false], ['typeAllowed', false]])], ['define', new Map([['typeRequired', isClosure]])], ['emits', new Map([
92
+ // Signature seems to require a "name" (of an event) and no counter-examples
93
+ ['nameContents', 'namepath-referencing'], ['nameRequired', true], ['typeAllowed', false]])], ['enum', new Map([
94
+ // Has example showing curly brackets but not in doc signature
95
+ ['typeAllowed', true]])], ['event', new Map([
96
+ // The doc signature of `event` seems to require a "name"
97
+ ['nameRequired', true],
98
+ // Appears to require a "name" in its signature, albeit somewhat
70
99
  // different from other "name"'s (including as described
71
100
  // at https://jsdoc.app/about-namepaths.html )
72
- ['nameContents', 'namepath-defining']])], ['exception', new Map([// Shows curly brackets in the signature and in the examples
73
- ['typeAllowed', true]])], // Closure
74
- ['export', new Map([['typeAllowed', isClosureOrPermissive]])], ['exports', new Map([['nameContents', 'namepath-defining'], ['nameRequired', isJsdoc], ['typeAllowed', isClosureOrPermissive]])], ['extends', new Map([// Signature seems to require a "namepath" (and no counter-examples)
75
- ['nameContents', 'namepath-referencing'], // Does not show curly brackets in either the signature or examples
76
- ['typeAllowed', isTypescriptOrClosure || isPermissive], ['nameRequired', isJsdoc], // "namepath"
77
- ['typeOrNameRequired', isTypescriptOrClosure || isPermissive]])], ['external', new Map([// Appears to require a "name" in its signature, albeit somewhat
101
+ ['nameContents', 'namepath-defining']])], ['exception', new Map([
102
+ // Shows curly brackets in the signature and in the examples
103
+ ['typeAllowed', true]])],
104
+ // Closure
105
+ ['export', new Map([['typeAllowed', isClosureOrPermissive]])], ['exports', new Map([['nameContents', 'namepath-defining'], ['nameRequired', isJsdoc], ['typeAllowed', isClosureOrPermissive]])], ['extends', new Map([
106
+ // Signature seems to require a "namepath" (and no counter-examples)
107
+ ['nameContents', 'namepath-referencing'],
108
+ // Does not show curly brackets in either the signature or examples
109
+ ['typeAllowed', isTypescriptOrClosure || isPermissive], ['nameRequired', isJsdoc],
110
+ // "namepath"
111
+ ['typeOrNameRequired', isTypescriptOrClosure || isPermissive]])], ['external', new Map([
112
+ // Appears to require a "name" in its signature, albeit somewhat
78
113
  // different from other "name"'s (including as described
79
114
  // at https://jsdoc.app/about-namepaths.html )
80
- ['nameContents', 'namepath-defining'], // "name" (and a special syntax for the `external` name)
81
- ['nameRequired', true], ['typeAllowed', false]])], ['fires', new Map([// Signature seems to require a "name" (of an event) and no
115
+ ['nameContents', 'namepath-defining'],
116
+ // "name" (and a special syntax for the `external` name)
117
+ ['nameRequired', true], ['typeAllowed', false]])], ['fires', new Map([
118
+ // Signature seems to require a "name" (of an event) and no
82
119
  // counter-examples
83
- ['nameContents', 'namepath-referencing'], ['nameRequired', true], ['typeAllowed', false]])], ['function', new Map([// Allows for "name"'s in signature, but indicated as optional
84
- ['nameContents', 'namepath-defining'], ['nameRequired', false], ['typeAllowed', false]])], ['func', new Map([// Allows for "name"'s in signature, but indicated as optional
85
- ['nameContents', 'namepath-defining']])], ['host', new Map([// Appears to require a "name" in its signature, albeit somewhat
120
+ ['nameContents', 'namepath-referencing'], ['nameRequired', true], ['typeAllowed', false]])], ['function', new Map([
121
+ // Allows for "name"'s in signature, but indicated as optional
122
+ ['nameContents', 'namepath-defining'], ['nameRequired', false], ['typeAllowed', false]])], ['func', new Map([
123
+ // Allows for "name"'s in signature, but indicated as optional
124
+ ['nameContents', 'namepath-defining']])], ['host', new Map([
125
+ // Appears to require a "name" in its signature, albeit somewhat
86
126
  // different from other "name"'s (including as described
87
127
  // at https://jsdoc.app/about-namepaths.html )
88
- ['nameContents', 'namepath-defining'], // See `external`
89
- ['nameRequired', true], ['typeAllowed', false]])], ['interface', new Map([// Allows for "name" in signature, but indicates as optional
90
- ['nameContents', isJsdocTypescriptOrPermissive ? 'namepath-defining' : false], // Not in use, but should be this value if using to power `empty-tags`
91
- ['nameAllowed', isClosure], ['typeAllowed', false]])], ['internal', new Map([// https://www.typescriptlang.org/tsconfig/#stripInternal
92
- ['nameContents', false], // Not in use, but should be this value if using to power `empty-tags`
93
- ['nameAllowed', false]])], ['implements', new Map([// Shows curly brackets in the doc signature and examples
128
+ ['nameContents', 'namepath-defining'],
129
+ // See `external`
130
+ ['nameRequired', true], ['typeAllowed', false]])], ['interface', new Map([
131
+ // Allows for "name" in signature, but indicates as optional
132
+ ['nameContents', isJsdocTypescriptOrPermissive ? 'namepath-defining' : false],
133
+ // Not in use, but should be this value if using to power `empty-tags`
134
+ ['nameAllowed', isClosure], ['typeAllowed', false]])], ['internal', new Map([
135
+ // https://www.typescriptlang.org/tsconfig/#stripInternal
136
+ ['nameContents', false],
137
+ // Not in use, but should be this value if using to power `empty-tags`
138
+ ['nameAllowed', false]])], ['implements', new Map([
139
+ // Shows curly brackets in the doc signature and examples
94
140
  // "typeExpression"
95
- ['typeRequired', true]])], ['lends', new Map([// Signature seems to require a "namepath" (and no counter-examples)
96
- ['nameContents', 'namepath-referencing'], // "namepath"
97
- ['typeOrNameRequired', true]])], ['listens', new Map([// Signature seems to require a "name" (of an event) and no
141
+ ['typeRequired', true]])], ['lends', new Map([
142
+ // Signature seems to require a "namepath" (and no counter-examples)
143
+ ['nameContents', 'namepath-referencing'],
144
+ // "namepath"
145
+ ['typeOrNameRequired', true]])], ['listens', new Map([
146
+ // Signature seems to require a "name" (of an event) and no
98
147
  // counter-examples
99
- ['nameContents', 'namepath-referencing'], ['nameRequired', true], ['typeAllowed', false]])], ['member', new Map([// Allows for "name"'s in signature, but indicated as optional
100
- ['nameContents', 'namepath-defining'], // Has example showing curly brackets but not in doc signature
101
- ['typeAllowed', true]])], ['memberof', new Map([// Signature seems to require a "namepath" (and no counter-examples),
148
+ ['nameContents', 'namepath-referencing'], ['nameRequired', true], ['typeAllowed', false]])], ['member', new Map([
149
+ // Allows for "name"'s in signature, but indicated as optional
150
+ ['nameContents', 'namepath-defining'],
151
+ // Has example showing curly brackets but not in doc signature
152
+ ['typeAllowed', true]])], ['memberof', new Map([
153
+ // Signature seems to require a "namepath" (and no counter-examples),
102
154
  // though it allows an incomplete namepath ending with connecting symbol
103
- ['nameContents', 'namepath-referencing'], // "namepath"
104
- ['typeOrNameRequired', true]])], ['memberof!', new Map([// Signature seems to require a "namepath" (and no counter-examples),
155
+ ['nameContents', 'namepath-referencing'],
156
+ // "namepath"
157
+ ['typeOrNameRequired', true]])], ['memberof!', new Map([
158
+ // Signature seems to require a "namepath" (and no counter-examples),
105
159
  // though it allows an incomplete namepath ending with connecting symbol
106
- ['nameContents', 'namepath-referencing'], // "namepath"
107
- ['typeOrNameRequired', true]])], ['method', new Map([// Allows for "name"'s in signature, but indicated as optional
108
- ['nameContents', 'namepath-defining']])], ['mixes', new Map([// Signature seems to require a "OtherObjectPath" with no
160
+ ['nameContents', 'namepath-referencing'],
161
+ // "namepath"
162
+ ['typeOrNameRequired', true]])], ['method', new Map([
163
+ // Allows for "name"'s in signature, but indicated as optional
164
+ ['nameContents', 'namepath-defining']])], ['mixes', new Map([
165
+ // Signature seems to require a "OtherObjectPath" with no
109
166
  // counter-examples
110
- ['nameContents', 'namepath-referencing'], // "OtherObjectPath"
111
- ['typeOrNameRequired', true]])], ['mixin', new Map([// Allows for "name"'s in signature, but indicated as optional
112
- ['nameContents', 'namepath-defining'], ['nameRequired', false], ['typeAllowed', false]])], ['modifies', new Map([// Has no documentation, but test example has curly brackets, and
167
+ ['nameContents', 'namepath-referencing'],
168
+ // "OtherObjectPath"
169
+ ['typeOrNameRequired', true]])], ['mixin', new Map([
170
+ // Allows for "name"'s in signature, but indicated as optional
171
+ ['nameContents', 'namepath-defining'], ['nameRequired', false], ['typeAllowed', false]])], ['modifies', new Map([
172
+ // Has no documentation, but test example has curly brackets, and
113
173
  // "name" would be suggested rather than "namepath" based on example;
114
174
  // not sure if name is required
115
- ['typeAllowed', true]])], ['module', new Map([// Optional "name" and no curly brackets
175
+ ['typeAllowed', true]])], ['module', new Map([
176
+ // Optional "name" and no curly brackets
116
177
  // this block impacts `no-undefined-types` and `valid-types` (search for
117
178
  // "isNamepathDefiningTag|tagMightHaveNamepath|tagMightHaveEitherTypeOrNamePosition")
118
- ['nameContents', isJsdoc ? 'namepath-defining' : 'text'], // Shows the signature with curly brackets but not in the example
119
- ['typeAllowed', true]])], ['name', new Map([// Seems to require a "namepath" in the signature (with no
179
+ ['nameContents', isJsdoc ? 'namepath-defining' : 'text'],
180
+ // Shows the signature with curly brackets but not in the example
181
+ ['typeAllowed', true]])], ['name', new Map([
182
+ // Seems to require a "namepath" in the signature (with no
120
183
  // counter-examples)
121
- ['nameContents', 'namepath-defining'], // "namepath"
122
- ['nameRequired', true], // "namepath"
123
- ['typeOrNameRequired', true]])], ['namespace', new Map([// Allows for "name"'s in signature, but indicated as optional
124
- ['nameContents', 'namepath-defining'], // Shows the signature with curly brackets but not in the example
125
- ['typeAllowed', true]])], ['package', new Map([// Shows the signature with curly brackets but not in the example
184
+ ['nameContents', 'namepath-defining'],
185
+ // "namepath"
186
+ ['nameRequired', true],
187
+ // "namepath"
188
+ ['typeOrNameRequired', true]])], ['namespace', new Map([
189
+ // Allows for "name"'s in signature, but indicated as optional
190
+ ['nameContents', 'namepath-defining'],
191
+ // Shows the signature with curly brackets but not in the example
192
+ ['typeAllowed', true]])], ['package', new Map([
193
+ // Shows the signature with curly brackets but not in the example
126
194
  // "typeExpression"
127
- ['typeAllowed', isClosureOrPermissive]])], ['param', new Map([['nameContents', 'namepath-defining'], // Though no signature provided requiring, per
195
+ ['typeAllowed', isClosureOrPermissive]])], ['param', new Map([['nameContents', 'namepath-defining'],
196
+ // Though no signature provided requiring, per
128
197
  // https://jsdoc.app/tags-param.html:
129
198
  // "The @param tag requires you to specify the name of the parameter you
130
199
  // are documenting."
131
- ['nameRequired', true], // Has no formal signature in the docs but shows curly brackets
200
+ ['nameRequired', true],
201
+ // Has no formal signature in the docs but shows curly brackets
132
202
  // in the examples
133
- ['typeAllowed', true]])], ['private', new Map([// Shows the signature with curly brackets but not in the example
203
+ ['typeAllowed', true]])], ['private', new Map([
204
+ // Shows the signature with curly brackets but not in the example
134
205
  // "typeExpression"
135
- ['typeAllowed', isClosureOrPermissive]])], ['prop', new Map([['nameContents', 'namepath-defining'], // See `property`
136
- ['nameRequired', true], // Has no formal signature in the docs but shows curly brackets
206
+ ['typeAllowed', isClosureOrPermissive]])], ['prop', new Map([['nameContents', 'namepath-defining'],
207
+ // See `property`
208
+ ['nameRequired', true],
209
+ // Has no formal signature in the docs but shows curly brackets
137
210
  // in the examples
138
- ['typeAllowed', true]])], ['property', new Map([['nameContents', 'namepath-defining'], // No docs indicate required, but since parallel to `param`, we treat as
211
+ ['typeAllowed', true]])], ['property', new Map([['nameContents', 'namepath-defining'],
212
+ // No docs indicate required, but since parallel to `param`, we treat as
139
213
  // such:
140
- ['nameRequired', true], // Has no formal signature in the docs but shows curly brackets
214
+ ['nameRequired', true],
215
+ // Has no formal signature in the docs but shows curly brackets
141
216
  // in the examples
142
- ['typeAllowed', true]])], ['protected', new Map([// Shows the signature with curly brackets but not in the example
217
+ ['typeAllowed', true]])], ['protected', new Map([
218
+ // Shows the signature with curly brackets but not in the example
143
219
  // "typeExpression"
144
- ['typeAllowed', isClosureOrPermissive]])], ['public', new Map([// Does not show a signature nor show curly brackets in the example
145
- ['typeAllowed', isClosureOrPermissive]])], ['requires', new Map([// <someModuleName>
146
- ['nameContents', 'namepath-referencing'], ['nameRequired', true], ['typeAllowed', false]])], ['returns', new Map([// Shows curly brackets in the signature and in the examples
147
- ['typeAllowed', true]])], ['return', new Map([// Shows curly brackets in the signature and in the examples
148
- ['typeAllowed', true]])], ['see', new Map([// Signature allows for "namepath" or text, so user must configure to
220
+ ['typeAllowed', isClosureOrPermissive]])], ['public', new Map([
221
+ // Does not show a signature nor show curly brackets in the example
222
+ ['typeAllowed', isClosureOrPermissive]])], ['requires', new Map([
223
+ // <someModuleName>
224
+ ['nameContents', 'namepath-referencing'], ['nameRequired', true], ['typeAllowed', false]])], ['returns', new Map([
225
+ // Shows curly brackets in the signature and in the examples
226
+ ['typeAllowed', true]])], ['return', new Map([
227
+ // Shows curly brackets in the signature and in the examples
228
+ ['typeAllowed', true]])], ['see', new Map([
229
+ // Signature allows for "namepath" or text, so user must configure to
149
230
  // 'namepath-referencing' to enforce checks
150
- ['nameContents', 'text']])], ['static', new Map([// Does not show a signature nor show curly brackets in the example
151
- ['typeAllowed', isClosureOrPermissive]])], ['suppress', new Map([['nameContents', !isClosure], ['typeRequired', isClosure]])], ['template', new Map([['nameContents', isJsdoc ? 'text' : 'namepath-referencing'], // Though defines `nameContents: 'namepath-defining'` in a sense, it is
231
+ ['nameContents', 'text']])], ['static', new Map([
232
+ // Does not show a signature nor show curly brackets in the example
233
+ ['typeAllowed', isClosureOrPermissive]])], ['suppress', new Map([['nameContents', !isClosure], ['typeRequired', isClosure]])], ['template', new Map([['nameContents', isJsdoc ? 'text' : 'namepath-referencing'],
234
+ // Though defines `nameContents: 'namepath-defining'` in a sense, it is
152
235
  // not parseable in the same way for template (e.g., allowing commas),
153
236
  // so not adding
154
- ['typeAllowed', isTypescriptOrClosure || isPermissive]])], ['this', new Map([// Signature seems to require a "namepath" (and no counter-examples)
237
+ ['typeAllowed', isTypescriptOrClosure || isPermissive]])], ['this', new Map([
238
+ // Signature seems to require a "namepath" (and no counter-examples)
155
239
  // Not used with namepath in Closure/TypeScript, however
156
- ['nameContents', isJsdoc ? 'namepath-referencing' : false], ['typeRequired', isTypescriptOrClosure], // namepath
157
- ['typeOrNameRequired', isJsdoc]])], ['throws', new Map([// Shows curly brackets in the signature and in the examples
158
- ['typeAllowed', true]])], ['tutorial', new Map([// (a tutorial ID)
159
- ['nameRequired', true], ['typeAllowed', false]])], ['type', new Map([// Shows curly brackets in the doc signature and examples
240
+ ['nameContents', isJsdoc ? 'namepath-referencing' : false], ['typeRequired', isTypescriptOrClosure],
241
+ // namepath
242
+ ['typeOrNameRequired', isJsdoc]])], ['throws', new Map([
243
+ // Shows curly brackets in the signature and in the examples
244
+ ['typeAllowed', true]])], ['tutorial', new Map([
245
+ // (a tutorial ID)
246
+ ['nameRequired', true], ['typeAllowed', false]])], ['type', new Map([
247
+ // Shows curly brackets in the doc signature and examples
160
248
  // "typeName"
161
- ['typeRequired', true]])], ['typedef', new Map([// Seems to require a "namepath" in the signature (with no
249
+ ['typeRequired', true]])], ['typedef', new Map([
250
+ // Seems to require a "namepath" in the signature (with no
162
251
  // counter-examples)
163
- ['nameContents', 'namepath-defining'], // TypeScript may allow it to be dropped if followed by @property or @member;
252
+ ['nameContents', 'namepath-defining'],
253
+ // TypeScript may allow it to be dropped if followed by @property or @member;
164
254
  // also shown as missing in Closure
165
255
  // "namepath"
166
- ['nameRequired', isJsdocOrPermissive], // Is not `typeRequired` for TypeScript because it gives an error:
256
+ ['nameRequired', isJsdocOrPermissive],
257
+ // Is not `typeRequired` for TypeScript because it gives an error:
167
258
  // JSDoc '@typedef' tag should either have a type annotation or be followed by '@property' or '@member' tags.
259
+
168
260
  // Has example showing curly brackets but not in doc signature
169
- ['typeAllowed', true], // TypeScript may allow it to be dropped if followed by @property or @member
261
+ ['typeAllowed', true],
262
+ // TypeScript may allow it to be dropped if followed by @property or @member
170
263
  // "namepath"
171
- ['typeOrNameRequired', !isTypescript]])], ['var', new Map([// Allows for "name"'s in signature, but indicated as optional
172
- ['nameContents', 'namepath-defining'], // Has example showing curly brackets but not in doc signature
173
- ['typeAllowed', true]])], ['yields', new Map([// Shows curly brackets in the signature and in the examples
174
- ['typeAllowed', true]])], ['yield', new Map([// Shows curly brackets in the signature and in the examples
264
+ ['typeOrNameRequired', !isTypescript]])], ['var', new Map([
265
+ // Allows for "name"'s in signature, but indicated as optional
266
+ ['nameContents', 'namepath-defining'],
267
+ // Has example showing curly brackets but not in doc signature
268
+ ['typeAllowed', true]])], ['yields', new Map([
269
+ // Shows curly brackets in the signature and in the examples
270
+ ['typeAllowed', true]])], ['yield', new Map([
271
+ // Shows curly brackets in the signature and in the examples
175
272
  ['typeAllowed', true]])]]);
176
273
  };
177
-
178
274
  var _default = getDefaultTagStructureForMode;
179
275
  exports.default = _default;
180
276
  module.exports = exports.default;
@@ -1 +1 @@
1
- {"version":3,"file":"getDefaultTagStructureForMode.js","names":["getDefaultTagStructureForMode","mode","isJsdoc","isClosure","isTypescript","isPermissive","isJsdocOrPermissive","isJsdocOrTypescript","isTypescriptOrClosure","isClosureOrPermissive","isJsdocTypescriptOrPermissive","Map"],"sources":["../src/getDefaultTagStructureForMode.js"],"sourcesContent":["const getDefaultTagStructureForMode = (mode) => {\n const isJsdoc = mode === 'jsdoc';\n const isClosure = mode === 'closure';\n const isTypescript = mode === 'typescript';\n const isPermissive = mode === 'permissive';\n\n const isJsdocOrPermissive = isJsdoc || isPermissive;\n const isJsdocOrTypescript = isJsdoc || isTypescript;\n const isTypescriptOrClosure = isTypescript || isClosure;\n const isClosureOrPermissive = isClosure || isPermissive;\n const isJsdocTypescriptOrPermissive = isJsdocOrTypescript || isPermissive;\n\n // Properties:\n // `nameContents` - 'namepath-referencing'|'namepath-defining'|'text'|false\n // `typeAllowed` - boolean\n // `nameRequired` - boolean\n // `typeRequired` - boolean\n // `typeOrNameRequired` - boolean\n\n // All of `typeAllowed` have a signature with \"type\" except for\n // `augments`/`extends` (\"namepath\")\n // `param`/`arg`/`argument` (no signature)\n // `property`/`prop` (no signature)\n // `modifies` (undocumented)\n\n // None of the `nameContents: 'namepath-defining'` show as having curly\n // brackets for their name/namepath\n\n // Among `namepath-defining` and `namepath-referencing`, these do not seem\n // to allow curly brackets in their doc signature or examples (`modifies`\n // references namepaths within its type brackets and `param` is\n // name-defining but not namepath-defining, so not part of these groups)\n\n // Todo: Should support special processing for \"name\" as distinct from\n // \"namepath\" (e.g., param can't define a namepath)\n\n // Once checking inline tags:\n // Todo: Re: `typeOrNameRequired`, `@link` (or @linkcode/@linkplain) seems\n // to require a namepath OR URL and might be checked as such.\n // Todo: Should support a `tutorialID` type (for `@tutorial` block and\n // inline)\n\n return new Map([\n [\n 'alias', new Map([\n // Signature seems to require a \"namepath\" (and no counter-examples)\n [\n 'nameContents', 'namepath-referencing',\n ],\n\n // \"namepath\"\n [\n 'typeOrNameRequired', true,\n ],\n ]),\n ],\n\n [\n 'arg', new Map([\n [\n 'nameContents', 'namepath-defining',\n ],\n\n // See `param`\n [\n 'nameRequired', true,\n ],\n\n // Has no formal signature in the docs but shows curly brackets\n // in the examples\n [\n 'typeAllowed', true,\n ],\n ]),\n ],\n\n [\n 'argument', new Map([\n [\n 'nameContents', 'namepath-defining',\n ],\n\n // See `param`\n [\n 'nameRequired', true,\n ],\n\n // Has no formal signature in the docs but shows curly brackets\n // in the examples\n [\n 'typeAllowed', true,\n ],\n ]),\n ],\n\n [\n 'augments', new Map([\n // Signature seems to require a \"namepath\" (and no counter-examples)\n [\n 'nameContents', 'namepath-referencing',\n ],\n\n // Does not show curly brackets in either the signature or examples\n [\n 'typeAllowed', true,\n ],\n\n // \"namepath\"\n [\n 'typeOrNameRequired', true,\n ],\n ]),\n ],\n\n [\n 'borrows', new Map([\n // `borrows` has a different format, however, so needs special parsing;\n // seems to require both, and as \"namepath\"'s\n [\n 'nameContents', 'namepath-referencing',\n ],\n\n // \"namepath\"\n [\n 'typeOrNameRequired', true,\n ],\n ]),\n ],\n\n [\n 'callback', new Map([\n // Seems to require a \"namepath\" in the signature (with no\n // counter-examples); TypeScript does not enforce but seems\n // problematic as not attached so presumably not useable without it\n [\n 'nameContents', 'namepath-defining',\n ],\n\n // \"namepath\"\n [\n 'nameRequired', true,\n ],\n ]),\n ],\n\n [\n 'class', new Map([\n // Allows for \"name\"'s in signature, but indicated as optional\n [\n 'nameContents', 'namepath-defining',\n ],\n\n // Not in use, but should be this value if using to power `empty-tags`\n [\n 'nameAllowed', true,\n ],\n\n [\n 'typeAllowed', true,\n ],\n ]),\n ],\n\n [\n 'const', new Map([\n // Allows for \"name\"'s in signature, but indicated as optional\n [\n 'nameContents', 'namepath-defining',\n ],\n\n [\n 'typeAllowed', true,\n ],\n ]),\n ],\n [\n 'constant', new Map([\n // Allows for \"name\"'s in signature, but indicated as optional\n [\n 'nameContents', 'namepath-defining',\n ],\n\n [\n 'typeAllowed', true,\n ],\n ]),\n ],\n [\n 'constructor', new Map([\n // Allows for \"name\"'s in signature, but indicated as optional\n [\n 'nameContents', 'namepath-defining',\n ],\n\n [\n 'typeAllowed', true,\n ],\n ]),\n ],\n\n [\n 'constructs', new Map([\n // Allows for \"name\"'s in signature, but indicated as optional\n [\n 'nameContents', 'namepath-defining',\n ],\n\n [\n 'nameRequired', false,\n ],\n\n [\n 'typeAllowed', false,\n ],\n ]),\n ],\n\n [\n 'define', new Map([\n [\n 'typeRequired', isClosure,\n ],\n ]),\n ],\n\n [\n 'emits', new Map([\n // Signature seems to require a \"name\" (of an event) and no counter-examples\n [\n 'nameContents', 'namepath-referencing',\n ],\n\n [\n 'nameRequired', true,\n ],\n\n [\n 'typeAllowed', false,\n ],\n ]),\n ],\n\n [\n 'enum', new Map([\n // Has example showing curly brackets but not in doc signature\n [\n 'typeAllowed', true,\n ],\n ]),\n ],\n\n [\n 'event', new Map([\n // The doc signature of `event` seems to require a \"name\"\n [\n 'nameRequired', true,\n ],\n\n // Appears to require a \"name\" in its signature, albeit somewhat\n // different from other \"name\"'s (including as described\n // at https://jsdoc.app/about-namepaths.html )\n [\n 'nameContents', 'namepath-defining',\n ],\n ]),\n ],\n\n [\n 'exception', new Map([\n // Shows curly brackets in the signature and in the examples\n [\n 'typeAllowed', true,\n ],\n ]),\n ],\n\n // Closure\n [\n 'export', new Map([\n [\n 'typeAllowed', isClosureOrPermissive,\n ],\n ]),\n ],\n\n [\n 'exports', new Map([\n [\n 'nameContents', 'namepath-defining',\n ],\n\n [\n 'nameRequired', isJsdoc,\n ],\n\n [\n 'typeAllowed', isClosureOrPermissive,\n ],\n ]),\n ],\n\n [\n 'extends', new Map([\n // Signature seems to require a \"namepath\" (and no counter-examples)\n [\n 'nameContents', 'namepath-referencing',\n ],\n\n // Does not show curly brackets in either the signature or examples\n [\n 'typeAllowed', isTypescriptOrClosure || isPermissive,\n ],\n\n [\n 'nameRequired', isJsdoc,\n ],\n\n // \"namepath\"\n [\n 'typeOrNameRequired', isTypescriptOrClosure || isPermissive,\n ],\n ]),\n ],\n\n [\n 'external', new Map([\n // Appears to require a \"name\" in its signature, albeit somewhat\n // different from other \"name\"'s (including as described\n // at https://jsdoc.app/about-namepaths.html )\n [\n 'nameContents', 'namepath-defining',\n ],\n\n // \"name\" (and a special syntax for the `external` name)\n [\n 'nameRequired', true,\n ],\n\n [\n 'typeAllowed', false,\n ],\n ]),\n ],\n\n [\n 'fires', new Map([\n // Signature seems to require a \"name\" (of an event) and no\n // counter-examples\n [\n 'nameContents', 'namepath-referencing',\n ],\n\n [\n 'nameRequired', true,\n ],\n\n [\n 'typeAllowed', false,\n ],\n ]),\n ],\n\n [\n 'function', new Map([\n // Allows for \"name\"'s in signature, but indicated as optional\n [\n 'nameContents', 'namepath-defining',\n ],\n\n [\n 'nameRequired', false,\n ],\n\n [\n 'typeAllowed', false,\n ],\n ]),\n ],\n [\n 'func', new Map([\n // Allows for \"name\"'s in signature, but indicated as optional\n [\n 'nameContents', 'namepath-defining',\n ],\n ]),\n ],\n\n [\n 'host', new Map([\n // Appears to require a \"name\" in its signature, albeit somewhat\n // different from other \"name\"'s (including as described\n // at https://jsdoc.app/about-namepaths.html )\n [\n 'nameContents', 'namepath-defining',\n ],\n\n // See `external`\n [\n 'nameRequired', true,\n ],\n\n [\n 'typeAllowed', false,\n ],\n ]),\n ],\n\n [\n 'interface', new Map([\n // Allows for \"name\" in signature, but indicates as optional\n [\n 'nameContents',\n isJsdocTypescriptOrPermissive ? 'namepath-defining' : false,\n ],\n\n // Not in use, but should be this value if using to power `empty-tags`\n [\n 'nameAllowed', isClosure,\n ],\n\n [\n 'typeAllowed', false,\n ],\n ]),\n ],\n\n [\n 'internal', new Map([\n // https://www.typescriptlang.org/tsconfig/#stripInternal\n [\n 'nameContents', false,\n ],\n // Not in use, but should be this value if using to power `empty-tags`\n [\n 'nameAllowed', false,\n ],\n ]),\n ],\n\n [\n 'implements', new Map([\n // Shows curly brackets in the doc signature and examples\n // \"typeExpression\"\n [\n 'typeRequired', true,\n ],\n ]),\n ],\n\n [\n 'lends', new Map([\n // Signature seems to require a \"namepath\" (and no counter-examples)\n [\n 'nameContents', 'namepath-referencing',\n ],\n\n // \"namepath\"\n [\n 'typeOrNameRequired', true,\n ],\n ]),\n ],\n\n [\n 'listens', new Map([\n // Signature seems to require a \"name\" (of an event) and no\n // counter-examples\n [\n 'nameContents', 'namepath-referencing',\n ],\n\n [\n 'nameRequired', true,\n ],\n\n [\n 'typeAllowed', false,\n ],\n ]),\n ],\n\n [\n 'member', new Map([\n // Allows for \"name\"'s in signature, but indicated as optional\n [\n 'nameContents', 'namepath-defining',\n ],\n\n // Has example showing curly brackets but not in doc signature\n [\n 'typeAllowed', true,\n ],\n ]),\n ],\n\n [\n 'memberof', new Map([\n // Signature seems to require a \"namepath\" (and no counter-examples),\n // though it allows an incomplete namepath ending with connecting symbol\n [\n 'nameContents', 'namepath-referencing',\n ],\n\n // \"namepath\"\n [\n 'typeOrNameRequired', true,\n ],\n ]),\n ],\n [\n 'memberof!', new Map([\n // Signature seems to require a \"namepath\" (and no counter-examples),\n // though it allows an incomplete namepath ending with connecting symbol\n [\n 'nameContents', 'namepath-referencing',\n ],\n\n // \"namepath\"\n [\n 'typeOrNameRequired', true,\n ],\n ]),\n ],\n\n [\n 'method', new Map([\n // Allows for \"name\"'s in signature, but indicated as optional\n [\n 'nameContents', 'namepath-defining',\n ],\n ]),\n ],\n [\n 'mixes', new Map([\n // Signature seems to require a \"OtherObjectPath\" with no\n // counter-examples\n [\n 'nameContents', 'namepath-referencing',\n ],\n\n // \"OtherObjectPath\"\n [\n 'typeOrNameRequired', true,\n ],\n ]),\n ],\n\n [\n 'mixin', new Map([\n // Allows for \"name\"'s in signature, but indicated as optional\n [\n 'nameContents', 'namepath-defining',\n ],\n\n [\n 'nameRequired', false,\n ],\n\n [\n 'typeAllowed', false,\n ],\n ]),\n ],\n\n [\n 'modifies', new Map([\n // Has no documentation, but test example has curly brackets, and\n // \"name\" would be suggested rather than \"namepath\" based on example;\n // not sure if name is required\n [\n 'typeAllowed', true,\n ],\n ]),\n ],\n\n [\n 'module', new Map([\n // Optional \"name\" and no curly brackets\n // this block impacts `no-undefined-types` and `valid-types` (search for\n // \"isNamepathDefiningTag|tagMightHaveNamepath|tagMightHaveEitherTypeOrNamePosition\")\n [\n 'nameContents', isJsdoc ? 'namepath-defining' : 'text',\n ],\n\n // Shows the signature with curly brackets but not in the example\n [\n 'typeAllowed', true,\n ],\n ]),\n ],\n\n [\n 'name', new Map([\n // Seems to require a \"namepath\" in the signature (with no\n // counter-examples)\n [\n 'nameContents', 'namepath-defining',\n ],\n\n // \"namepath\"\n [\n 'nameRequired', true,\n ],\n\n // \"namepath\"\n [\n 'typeOrNameRequired', true,\n ],\n ]),\n ],\n\n [\n 'namespace', new Map([\n // Allows for \"name\"'s in signature, but indicated as optional\n [\n 'nameContents', 'namepath-defining',\n ],\n\n // Shows the signature with curly brackets but not in the example\n [\n 'typeAllowed', true,\n ],\n ]),\n ],\n [\n 'package', new Map([\n // Shows the signature with curly brackets but not in the example\n // \"typeExpression\"\n [\n 'typeAllowed', isClosureOrPermissive,\n ],\n ]),\n ],\n\n [\n 'param', new Map([\n [\n 'nameContents', 'namepath-defining',\n ],\n\n // Though no signature provided requiring, per\n // https://jsdoc.app/tags-param.html:\n // \"The @param tag requires you to specify the name of the parameter you\n // are documenting.\"\n [\n 'nameRequired', true,\n ],\n\n // Has no formal signature in the docs but shows curly brackets\n // in the examples\n [\n 'typeAllowed', true,\n ],\n ]),\n ],\n\n [\n 'private', new Map([\n // Shows the signature with curly brackets but not in the example\n // \"typeExpression\"\n [\n 'typeAllowed', isClosureOrPermissive,\n ],\n ]),\n ],\n\n [\n 'prop', new Map([\n [\n 'nameContents', 'namepath-defining',\n ],\n\n // See `property`\n [\n 'nameRequired', true,\n ],\n\n // Has no formal signature in the docs but shows curly brackets\n // in the examples\n [\n 'typeAllowed', true,\n ],\n ]),\n ],\n\n [\n 'property', new Map([\n [\n 'nameContents', 'namepath-defining',\n ],\n\n // No docs indicate required, but since parallel to `param`, we treat as\n // such:\n [\n 'nameRequired', true,\n ],\n\n // Has no formal signature in the docs but shows curly brackets\n // in the examples\n [\n 'typeAllowed', true,\n ],\n ]),\n ],\n\n [\n 'protected', new Map([\n // Shows the signature with curly brackets but not in the example\n // \"typeExpression\"\n [\n 'typeAllowed', isClosureOrPermissive,\n ],\n ]),\n ],\n\n [\n 'public', new Map([\n // Does not show a signature nor show curly brackets in the example\n [\n 'typeAllowed', isClosureOrPermissive,\n ],\n ]),\n ],\n\n [\n 'requires', new Map([\n // <someModuleName>\n [\n 'nameContents', 'namepath-referencing',\n ],\n\n [\n 'nameRequired', true,\n ],\n\n [\n 'typeAllowed', false,\n ],\n ]),\n ],\n\n [\n 'returns', new Map([\n // Shows curly brackets in the signature and in the examples\n [\n 'typeAllowed', true,\n ],\n ]),\n ],\n [\n 'return', new Map([\n // Shows curly brackets in the signature and in the examples\n [\n 'typeAllowed', true,\n ],\n ]),\n ],\n\n [\n 'see', new Map([\n // Signature allows for \"namepath\" or text, so user must configure to\n // 'namepath-referencing' to enforce checks\n [\n 'nameContents', 'text',\n ],\n ]),\n ],\n\n [\n 'static', new Map([\n // Does not show a signature nor show curly brackets in the example\n [\n 'typeAllowed', isClosureOrPermissive,\n ],\n ]),\n ],\n\n [\n 'suppress', new Map([\n [\n 'nameContents', !isClosure,\n ],\n [\n 'typeRequired', isClosure,\n ],\n ]),\n ],\n\n [\n 'template', new Map([\n [\n 'nameContents', isJsdoc ? 'text' : 'namepath-referencing',\n ],\n\n // Though defines `nameContents: 'namepath-defining'` in a sense, it is\n // not parseable in the same way for template (e.g., allowing commas),\n // so not adding\n [\n 'typeAllowed', isTypescriptOrClosure || isPermissive,\n ],\n ]),\n ],\n\n [\n 'this', new Map([\n // Signature seems to require a \"namepath\" (and no counter-examples)\n // Not used with namepath in Closure/TypeScript, however\n [\n 'nameContents', isJsdoc ? 'namepath-referencing' : false,\n ],\n\n [\n 'typeRequired', isTypescriptOrClosure,\n ],\n\n // namepath\n [\n 'typeOrNameRequired', isJsdoc,\n ],\n ]),\n ],\n\n [\n 'throws', new Map([\n // Shows curly brackets in the signature and in the examples\n [\n 'typeAllowed', true,\n ],\n ]),\n ],\n\n [\n 'tutorial', new Map([\n // (a tutorial ID)\n [\n 'nameRequired', true,\n ],\n\n [\n 'typeAllowed', false,\n ],\n ]),\n ],\n\n [\n 'type', new Map([\n // Shows curly brackets in the doc signature and examples\n // \"typeName\"\n [\n 'typeRequired', true,\n ],\n ]),\n ],\n\n [\n 'typedef', new Map([\n // Seems to require a \"namepath\" in the signature (with no\n // counter-examples)\n [\n 'nameContents', 'namepath-defining',\n ],\n\n // TypeScript may allow it to be dropped if followed by @property or @member;\n // also shown as missing in Closure\n // \"namepath\"\n [\n 'nameRequired', isJsdocOrPermissive,\n ],\n\n // Is not `typeRequired` for TypeScript because it gives an error:\n // JSDoc '@typedef' tag should either have a type annotation or be followed by '@property' or '@member' tags.\n\n // Has example showing curly brackets but not in doc signature\n [\n 'typeAllowed', true,\n ],\n\n // TypeScript may allow it to be dropped if followed by @property or @member\n // \"namepath\"\n [\n 'typeOrNameRequired', !isTypescript,\n ],\n ]),\n ],\n\n [\n 'var', new Map([\n // Allows for \"name\"'s in signature, but indicated as optional\n [\n 'nameContents', 'namepath-defining',\n ],\n\n // Has example showing curly brackets but not in doc signature\n [\n 'typeAllowed', true,\n ],\n ]),\n ],\n\n [\n 'yields', new Map([\n // Shows curly brackets in the signature and in the examples\n [\n 'typeAllowed', true,\n ],\n ]),\n ],\n [\n 'yield', new Map([\n // Shows curly brackets in the signature and in the examples\n [\n 'typeAllowed', true,\n ],\n ]),\n ],\n ]);\n};\n\nexport default getDefaultTagStructureForMode;\n"],"mappings":";;;;;;;AAAA,MAAMA,6BAA6B,GAAIC,IAAD,IAAU;EAC9C,MAAMC,OAAO,GAAGD,IAAI,KAAK,OAAzB;EACA,MAAME,SAAS,GAAGF,IAAI,KAAK,SAA3B;EACA,MAAMG,YAAY,GAAGH,IAAI,KAAK,YAA9B;EACA,MAAMI,YAAY,GAAGJ,IAAI,KAAK,YAA9B;EAEA,MAAMK,mBAAmB,GAAGJ,OAAO,IAAIG,YAAvC;EACA,MAAME,mBAAmB,GAAGL,OAAO,IAAIE,YAAvC;EACA,MAAMI,qBAAqB,GAAGJ,YAAY,IAAID,SAA9C;EACA,MAAMM,qBAAqB,GAAGN,SAAS,IAAIE,YAA3C;EACA,MAAMK,6BAA6B,GAAGH,mBAAmB,IAAIF,YAA7D,CAV8C,CAY9C;EACA;EACA;EACA;EACA;EACA;EAEA;EACA;EACA;EACA;EACA;EAEA;EACA;EAEA;EACA;EACA;EACA;EAEA;EACA;EAEA;EACA;EACA;EACA;EACA;;EAEA,OAAO,IAAIM,GAAJ,CAAQ,CACb,CACE,OADF,EACW,IAAIA,GAAJ,CAAQ,CACf;EACA,CACE,cADF,EACkB,sBADlB,CAFe,EAMf;EACA,CACE,oBADF,EACwB,IADxB,CAPe,CAAR,CADX,CADa,EAeb,CACE,KADF,EACS,IAAIA,GAAJ,CAAQ,CACb,CACE,cADF,EACkB,mBADlB,CADa,EAKb;EACA,CACE,cADF,EACkB,IADlB,CANa,EAUb;EACA;EACA,CACE,aADF,EACiB,IADjB,CAZa,CAAR,CADT,CAfa,EAkCb,CACE,UADF,EACc,IAAIA,GAAJ,CAAQ,CAClB,CACE,cADF,EACkB,mBADlB,CADkB,EAKlB;EACA,CACE,cADF,EACkB,IADlB,CANkB,EAUlB;EACA;EACA,CACE,aADF,EACiB,IADjB,CAZkB,CAAR,CADd,CAlCa,EAqDb,CACE,UADF,EACc,IAAIA,GAAJ,CAAQ,CAClB;EACA,CACE,cADF,EACkB,sBADlB,CAFkB,EAMlB;EACA,CACE,aADF,EACiB,IADjB,CAPkB,EAWlB;EACA,CACE,oBADF,EACwB,IADxB,CAZkB,CAAR,CADd,CArDa,EAwEb,CACE,SADF,EACa,IAAIA,GAAJ,CAAQ,CACjB;EACA;EACA,CACE,cADF,EACkB,sBADlB,CAHiB,EAOjB;EACA,CACE,oBADF,EACwB,IADxB,CARiB,CAAR,CADb,CAxEa,EAuFb,CACE,UADF,EACc,IAAIA,GAAJ,CAAQ,CAClB;EACA;EACA;EACA,CACE,cADF,EACkB,mBADlB,CAJkB,EAQlB;EACA,CACE,cADF,EACkB,IADlB,CATkB,CAAR,CADd,CAvFa,EAuGb,CACE,OADF,EACW,IAAIA,GAAJ,CAAQ,CACf;EACA,CACE,cADF,EACkB,mBADlB,CAFe,EAMf;EACA,CACE,aADF,EACiB,IADjB,CAPe,EAWf,CACE,aADF,EACiB,IADjB,CAXe,CAAR,CADX,CAvGa,EAyHb,CACE,OADF,EACW,IAAIA,GAAJ,CAAQ,CACf;EACA,CACE,cADF,EACkB,mBADlB,CAFe,EAMf,CACE,aADF,EACiB,IADjB,CANe,CAAR,CADX,CAzHa,EAqIb,CACE,UADF,EACc,IAAIA,GAAJ,CAAQ,CAClB;EACA,CACE,cADF,EACkB,mBADlB,CAFkB,EAMlB,CACE,aADF,EACiB,IADjB,CANkB,CAAR,CADd,CArIa,EAiJb,CACE,aADF,EACiB,IAAIA,GAAJ,CAAQ,CACrB;EACA,CACE,cADF,EACkB,mBADlB,CAFqB,EAMrB,CACE,aADF,EACiB,IADjB,CANqB,CAAR,CADjB,CAjJa,EA8Jb,CACE,YADF,EACgB,IAAIA,GAAJ,CAAQ,CACpB;EACA,CACE,cADF,EACkB,mBADlB,CAFoB,EAMpB,CACE,cADF,EACkB,KADlB,CANoB,EAUpB,CACE,aADF,EACiB,KADjB,CAVoB,CAAR,CADhB,CA9Ja,EA+Kb,CACE,QADF,EACY,IAAIA,GAAJ,CAAQ,CAChB,CACE,cADF,EACkBR,SADlB,CADgB,CAAR,CADZ,CA/Ka,EAuLb,CACE,OADF,EACW,IAAIQ,GAAJ,CAAQ,CACf;EACA,CACE,cADF,EACkB,sBADlB,CAFe,EAMf,CACE,cADF,EACkB,IADlB,CANe,EAUf,CACE,aADF,EACiB,KADjB,CAVe,CAAR,CADX,CAvLa,EAwMb,CACE,MADF,EACU,IAAIA,GAAJ,CAAQ,CACd;EACA,CACE,aADF,EACiB,IADjB,CAFc,CAAR,CADV,CAxMa,EAiNb,CACE,OADF,EACW,IAAIA,GAAJ,CAAQ,CACf;EACA,CACE,cADF,EACkB,IADlB,CAFe,EAMf;EACA;EACA;EACA,CACE,cADF,EACkB,mBADlB,CATe,CAAR,CADX,CAjNa,EAiOb,CACE,WADF,EACe,IAAIA,GAAJ,CAAQ,CACnB;EACA,CACE,aADF,EACiB,IADjB,CAFmB,CAAR,CADf,CAjOa,EA0Ob;EACA,CACE,QADF,EACY,IAAIA,GAAJ,CAAQ,CAChB,CACE,aADF,EACiBF,qBADjB,CADgB,CAAR,CADZ,CA3Oa,EAmPb,CACE,SADF,EACa,IAAIE,GAAJ,CAAQ,CACjB,CACE,cADF,EACkB,mBADlB,CADiB,EAKjB,CACE,cADF,EACkBT,OADlB,CALiB,EASjB,CACE,aADF,EACiBO,qBADjB,CATiB,CAAR,CADb,CAnPa,EAmQb,CACE,SADF,EACa,IAAIE,GAAJ,CAAQ,CACjB;EACA,CACE,cADF,EACkB,sBADlB,CAFiB,EAMjB;EACA,CACE,aADF,EACiBH,qBAAqB,IAAIH,YAD1C,CAPiB,EAWjB,CACE,cADF,EACkBH,OADlB,CAXiB,EAejB;EACA,CACE,oBADF,EACwBM,qBAAqB,IAAIH,YADjD,CAhBiB,CAAR,CADb,CAnQa,EA0Rb,CACE,UADF,EACc,IAAIM,GAAJ,CAAQ,CAClB;EACA;EACA;EACA,CACE,cADF,EACkB,mBADlB,CAJkB,EAQlB;EACA,CACE,cADF,EACkB,IADlB,CATkB,EAalB,CACE,aADF,EACiB,KADjB,CAbkB,CAAR,CADd,CA1Ra,EA8Sb,CACE,OADF,EACW,IAAIA,GAAJ,CAAQ,CACf;EACA;EACA,CACE,cADF,EACkB,sBADlB,CAHe,EAOf,CACE,cADF,EACkB,IADlB,CAPe,EAWf,CACE,aADF,EACiB,KADjB,CAXe,CAAR,CADX,CA9Sa,EAgUb,CACE,UADF,EACc,IAAIA,GAAJ,CAAQ,CAClB;EACA,CACE,cADF,EACkB,mBADlB,CAFkB,EAMlB,CACE,cADF,EACkB,KADlB,CANkB,EAUlB,CACE,aADF,EACiB,KADjB,CAVkB,CAAR,CADd,CAhUa,EAgVb,CACE,MADF,EACU,IAAIA,GAAJ,CAAQ,CACd;EACA,CACE,cADF,EACkB,mBADlB,CAFc,CAAR,CADV,CAhVa,EAyVb,CACE,MADF,EACU,IAAIA,GAAJ,CAAQ,CACd;EACA;EACA;EACA,CACE,cADF,EACkB,mBADlB,CAJc,EAQd;EACA,CACE,cADF,EACkB,IADlB,CATc,EAad,CACE,aADF,EACiB,KADjB,CAbc,CAAR,CADV,CAzVa,EA6Wb,CACE,WADF,EACe,IAAIA,GAAJ,CAAQ,CACnB;EACA,CACE,cADF,EAEED,6BAA6B,GAAG,mBAAH,GAAyB,KAFxD,CAFmB,EAOnB;EACA,CACE,aADF,EACiBP,SADjB,CARmB,EAYnB,CACE,aADF,EACiB,KADjB,CAZmB,CAAR,CADf,CA7Wa,EAgYb,CACE,UADF,EACc,IAAIQ,GAAJ,CAAQ,CAClB;EACA,CACE,cADF,EACkB,KADlB,CAFkB,EAKlB;EACA,CACE,aADF,EACiB,KADjB,CANkB,CAAR,CADd,CAhYa,EA6Yb,CACE,YADF,EACgB,IAAIA,GAAJ,CAAQ,CACpB;EACA;EACA,CACE,cADF,EACkB,IADlB,CAHoB,CAAR,CADhB,CA7Ya,EAuZb,CACE,OADF,EACW,IAAIA,GAAJ,CAAQ,CACf;EACA,CACE,cADF,EACkB,sBADlB,CAFe,EAMf;EACA,CACE,oBADF,EACwB,IADxB,CAPe,CAAR,CADX,CAvZa,EAqab,CACE,SADF,EACa,IAAIA,GAAJ,CAAQ,CACjB;EACA;EACA,CACE,cADF,EACkB,sBADlB,CAHiB,EAOjB,CACE,cADF,EACkB,IADlB,CAPiB,EAWjB,CACE,aADF,EACiB,KADjB,CAXiB,CAAR,CADb,CAraa,EAubb,CACE,QADF,EACY,IAAIA,GAAJ,CAAQ,CAChB;EACA,CACE,cADF,EACkB,mBADlB,CAFgB,EAMhB;EACA,CACE,aADF,EACiB,IADjB,CAPgB,CAAR,CADZ,CAvba,EAqcb,CACE,UADF,EACc,IAAIA,GAAJ,CAAQ,CAClB;EACA;EACA,CACE,cADF,EACkB,sBADlB,CAHkB,EAOlB;EACA,CACE,oBADF,EACwB,IADxB,CARkB,CAAR,CADd,CArca,EAmdb,CACE,WADF,EACe,IAAIA,GAAJ,CAAQ,CACnB;EACA;EACA,CACE,cADF,EACkB,sBADlB,CAHmB,EAOnB;EACA,CACE,oBADF,EACwB,IADxB,CARmB,CAAR,CADf,CAnda,EAkeb,CACE,QADF,EACY,IAAIA,GAAJ,CAAQ,CAChB;EACA,CACE,cADF,EACkB,mBADlB,CAFgB,CAAR,CADZ,CAlea,EA0eb,CACE,OADF,EACW,IAAIA,GAAJ,CAAQ,CACf;EACA;EACA,CACE,cADF,EACkB,sBADlB,CAHe,EAOf;EACA,CACE,oBADF,EACwB,IADxB,CARe,CAAR,CADX,CA1ea,EAyfb,CACE,OADF,EACW,IAAIA,GAAJ,CAAQ,CACf;EACA,CACE,cADF,EACkB,mBADlB,CAFe,EAMf,CACE,cADF,EACkB,KADlB,CANe,EAUf,CACE,aADF,EACiB,KADjB,CAVe,CAAR,CADX,CAzfa,EA0gBb,CACE,UADF,EACc,IAAIA,GAAJ,CAAQ,CAClB;EACA;EACA;EACA,CACE,aADF,EACiB,IADjB,CAJkB,CAAR,CADd,CA1gBa,EAqhBb,CACE,QADF,EACY,IAAIA,GAAJ,CAAQ,CAChB;EACA;EACA;EACA,CACE,cADF,EACkBT,OAAO,GAAG,mBAAH,GAAyB,MADlD,CAJgB,EAQhB;EACA,CACE,aADF,EACiB,IADjB,CATgB,CAAR,CADZ,CArhBa,EAqiBb,CACE,MADF,EACU,IAAIS,GAAJ,CAAQ,CACd;EACA;EACA,CACE,cADF,EACkB,mBADlB,CAHc,EAOd;EACA,CACE,cADF,EACkB,IADlB,CARc,EAYd;EACA,CACE,oBADF,EACwB,IADxB,CAbc,CAAR,CADV,CAriBa,EAyjBb,CACE,WADF,EACe,IAAIA,GAAJ,CAAQ,CACnB;EACA,CACE,cADF,EACkB,mBADlB,CAFmB,EAMnB;EACA,CACE,aADF,EACiB,IADjB,CAPmB,CAAR,CADf,CAzjBa,EAskBb,CACE,SADF,EACa,IAAIA,GAAJ,CAAQ,CACjB;EACA;EACA,CACE,aADF,EACiBF,qBADjB,CAHiB,CAAR,CADb,CAtkBa,EAglBb,CACE,OADF,EACW,IAAIE,GAAJ,CAAQ,CACf,CACE,cADF,EACkB,mBADlB,CADe,EAKf;EACA;EACA;EACA;EACA,CACE,cADF,EACkB,IADlB,CATe,EAaf;EACA;EACA,CACE,aADF,EACiB,IADjB,CAfe,CAAR,CADX,CAhlBa,EAsmBb,CACE,SADF,EACa,IAAIA,GAAJ,CAAQ,CACjB;EACA;EACA,CACE,aADF,EACiBF,qBADjB,CAHiB,CAAR,CADb,CAtmBa,EAgnBb,CACE,MADF,EACU,IAAIE,GAAJ,CAAQ,CACd,CACE,cADF,EACkB,mBADlB,CADc,EAKd;EACA,CACE,cADF,EACkB,IADlB,CANc,EAUd;EACA;EACA,CACE,aADF,EACiB,IADjB,CAZc,CAAR,CADV,CAhnBa,EAmoBb,CACE,UADF,EACc,IAAIA,GAAJ,CAAQ,CAClB,CACE,cADF,EACkB,mBADlB,CADkB,EAKlB;EACA;EACA,CACE,cADF,EACkB,IADlB,CAPkB,EAWlB;EACA;EACA,CACE,aADF,EACiB,IADjB,CAbkB,CAAR,CADd,CAnoBa,EAupBb,CACE,WADF,EACe,IAAIA,GAAJ,CAAQ,CACnB;EACA;EACA,CACE,aADF,EACiBF,qBADjB,CAHmB,CAAR,CADf,CAvpBa,EAiqBb,CACE,QADF,EACY,IAAIE,GAAJ,CAAQ,CAChB;EACA,CACE,aADF,EACiBF,qBADjB,CAFgB,CAAR,CADZ,CAjqBa,EA0qBb,CACE,UADF,EACc,IAAIE,GAAJ,CAAQ,CAClB;EACA,CACE,cADF,EACkB,sBADlB,CAFkB,EAMlB,CACE,cADF,EACkB,IADlB,CANkB,EAUlB,CACE,aADF,EACiB,KADjB,CAVkB,CAAR,CADd,CA1qBa,EA2rBb,CACE,SADF,EACa,IAAIA,GAAJ,CAAQ,CACjB;EACA,CACE,aADF,EACiB,IADjB,CAFiB,CAAR,CADb,CA3rBa,EAmsBb,CACE,QADF,EACY,IAAIA,GAAJ,CAAQ,CAChB;EACA,CACE,aADF,EACiB,IADjB,CAFgB,CAAR,CADZ,CAnsBa,EA4sBb,CACE,KADF,EACS,IAAIA,GAAJ,CAAQ,CACb;EACA;EACA,CACE,cADF,EACkB,MADlB,CAHa,CAAR,CADT,CA5sBa,EAstBb,CACE,QADF,EACY,IAAIA,GAAJ,CAAQ,CAChB;EACA,CACE,aADF,EACiBF,qBADjB,CAFgB,CAAR,CADZ,CAttBa,EA+tBb,CACE,UADF,EACc,IAAIE,GAAJ,CAAQ,CAClB,CACE,cADF,EACkB,CAACR,SADnB,CADkB,EAIlB,CACE,cADF,EACkBA,SADlB,CAJkB,CAAR,CADd,CA/tBa,EA0uBb,CACE,UADF,EACc,IAAIQ,GAAJ,CAAQ,CAClB,CACE,cADF,EACkBT,OAAO,GAAG,MAAH,GAAY,sBADrC,CADkB,EAKlB;EACA;EACA;EACA,CACE,aADF,EACiBM,qBAAqB,IAAIH,YAD1C,CARkB,CAAR,CADd,CA1uBa,EAyvBb,CACE,MADF,EACU,IAAIM,GAAJ,CAAQ,CACd;EACA;EACA,CACE,cADF,EACkBT,OAAO,GAAG,sBAAH,GAA4B,KADrD,CAHc,EAOd,CACE,cADF,EACkBM,qBADlB,CAPc,EAWd;EACA,CACE,oBADF,EACwBN,OADxB,CAZc,CAAR,CADV,CAzvBa,EA4wBb,CACE,QADF,EACY,IAAIS,GAAJ,CAAQ,CAChB;EACA,CACE,aADF,EACiB,IADjB,CAFgB,CAAR,CADZ,CA5wBa,EAqxBb,CACE,UADF,EACc,IAAIA,GAAJ,CAAQ,CAClB;EACA,CACE,cADF,EACkB,IADlB,CAFkB,EAMlB,CACE,aADF,EACiB,KADjB,CANkB,CAAR,CADd,CArxBa,EAkyBb,CACE,MADF,EACU,IAAIA,GAAJ,CAAQ,CACd;EACA;EACA,CACE,cADF,EACkB,IADlB,CAHc,CAAR,CADV,CAlyBa,EA4yBb,CACE,SADF,EACa,IAAIA,GAAJ,CAAQ,CACjB;EACA;EACA,CACE,cADF,EACkB,mBADlB,CAHiB,EAOjB;EACA;EACA;EACA,CACE,cADF,EACkBL,mBADlB,CAViB,EAcjB;EACA;EAEA;EACA,CACE,aADF,EACiB,IADjB,CAlBiB,EAsBjB;EACA;EACA,CACE,oBADF,EACwB,CAACF,YADzB,CAxBiB,CAAR,CADb,CA5yBa,EA20Bb,CACE,KADF,EACS,IAAIO,GAAJ,CAAQ,CACb;EACA,CACE,cADF,EACkB,mBADlB,CAFa,EAMb;EACA,CACE,aADF,EACiB,IADjB,CAPa,CAAR,CADT,CA30Ba,EAy1Bb,CACE,QADF,EACY,IAAIA,GAAJ,CAAQ,CAChB;EACA,CACE,aADF,EACiB,IADjB,CAFgB,CAAR,CADZ,CAz1Ba,EAi2Bb,CACE,OADF,EACW,IAAIA,GAAJ,CAAQ,CACf;EACA,CACE,aADF,EACiB,IADjB,CAFe,CAAR,CADX,CAj2Ba,CAAR,CAAP;AA02BD,CAp5BD;;eAs5BeX,6B"}
1
+ {"version":3,"file":"getDefaultTagStructureForMode.js","names":["getDefaultTagStructureForMode","mode","isJsdoc","isClosure","isTypescript","isPermissive","isJsdocOrPermissive","isJsdocOrTypescript","isTypescriptOrClosure","isClosureOrPermissive","isJsdocTypescriptOrPermissive","Map"],"sources":["../src/getDefaultTagStructureForMode.js"],"sourcesContent":["const getDefaultTagStructureForMode = (mode) => {\n const isJsdoc = mode === 'jsdoc';\n const isClosure = mode === 'closure';\n const isTypescript = mode === 'typescript';\n const isPermissive = mode === 'permissive';\n\n const isJsdocOrPermissive = isJsdoc || isPermissive;\n const isJsdocOrTypescript = isJsdoc || isTypescript;\n const isTypescriptOrClosure = isTypescript || isClosure;\n const isClosureOrPermissive = isClosure || isPermissive;\n const isJsdocTypescriptOrPermissive = isJsdocOrTypescript || isPermissive;\n\n // Properties:\n // `nameContents` - 'namepath-referencing'|'namepath-defining'|'text'|false\n // `typeAllowed` - boolean\n // `nameRequired` - boolean\n // `typeRequired` - boolean\n // `typeOrNameRequired` - boolean\n\n // All of `typeAllowed` have a signature with \"type\" except for\n // `augments`/`extends` (\"namepath\")\n // `param`/`arg`/`argument` (no signature)\n // `property`/`prop` (no signature)\n // `modifies` (undocumented)\n\n // None of the `nameContents: 'namepath-defining'` show as having curly\n // brackets for their name/namepath\n\n // Among `namepath-defining` and `namepath-referencing`, these do not seem\n // to allow curly brackets in their doc signature or examples (`modifies`\n // references namepaths within its type brackets and `param` is\n // name-defining but not namepath-defining, so not part of these groups)\n\n // Todo: Should support special processing for \"name\" as distinct from\n // \"namepath\" (e.g., param can't define a namepath)\n\n // Once checking inline tags:\n // Todo: Re: `typeOrNameRequired`, `@link` (or @linkcode/@linkplain) seems\n // to require a namepath OR URL and might be checked as such.\n // Todo: Should support a `tutorialID` type (for `@tutorial` block and\n // inline)\n\n return new Map([\n [\n 'alias', new Map([\n // Signature seems to require a \"namepath\" (and no counter-examples)\n [\n 'nameContents', 'namepath-referencing',\n ],\n\n // \"namepath\"\n [\n 'typeOrNameRequired', true,\n ],\n ]),\n ],\n\n [\n 'arg', new Map([\n [\n 'nameContents', 'namepath-defining',\n ],\n\n // See `param`\n [\n 'nameRequired', true,\n ],\n\n // Has no formal signature in the docs but shows curly brackets\n // in the examples\n [\n 'typeAllowed', true,\n ],\n ]),\n ],\n\n [\n 'argument', new Map([\n [\n 'nameContents', 'namepath-defining',\n ],\n\n // See `param`\n [\n 'nameRequired', true,\n ],\n\n // Has no formal signature in the docs but shows curly brackets\n // in the examples\n [\n 'typeAllowed', true,\n ],\n ]),\n ],\n\n [\n 'augments', new Map([\n // Signature seems to require a \"namepath\" (and no counter-examples)\n [\n 'nameContents', 'namepath-referencing',\n ],\n\n // Does not show curly brackets in either the signature or examples\n [\n 'typeAllowed', true,\n ],\n\n // \"namepath\"\n [\n 'typeOrNameRequired', true,\n ],\n ]),\n ],\n\n [\n 'borrows', new Map([\n // `borrows` has a different format, however, so needs special parsing;\n // seems to require both, and as \"namepath\"'s\n [\n 'nameContents', 'namepath-referencing',\n ],\n\n // \"namepath\"\n [\n 'typeOrNameRequired', true,\n ],\n ]),\n ],\n\n [\n 'callback', new Map([\n // Seems to require a \"namepath\" in the signature (with no\n // counter-examples); TypeScript does not enforce but seems\n // problematic as not attached so presumably not useable without it\n [\n 'nameContents', 'namepath-defining',\n ],\n\n // \"namepath\"\n [\n 'nameRequired', true,\n ],\n ]),\n ],\n\n [\n 'class', new Map([\n // Allows for \"name\"'s in signature, but indicated as optional\n [\n 'nameContents', 'namepath-defining',\n ],\n\n // Not in use, but should be this value if using to power `empty-tags`\n [\n 'nameAllowed', true,\n ],\n\n [\n 'typeAllowed', true,\n ],\n ]),\n ],\n\n [\n 'const', new Map([\n // Allows for \"name\"'s in signature, but indicated as optional\n [\n 'nameContents', 'namepath-defining',\n ],\n\n [\n 'typeAllowed', true,\n ],\n ]),\n ],\n [\n 'constant', new Map([\n // Allows for \"name\"'s in signature, but indicated as optional\n [\n 'nameContents', 'namepath-defining',\n ],\n\n [\n 'typeAllowed', true,\n ],\n ]),\n ],\n [\n 'constructor', new Map([\n // Allows for \"name\"'s in signature, but indicated as optional\n [\n 'nameContents', 'namepath-defining',\n ],\n\n [\n 'typeAllowed', true,\n ],\n ]),\n ],\n\n [\n 'constructs', new Map([\n // Allows for \"name\"'s in signature, but indicated as optional\n [\n 'nameContents', 'namepath-defining',\n ],\n\n [\n 'nameRequired', false,\n ],\n\n [\n 'typeAllowed', false,\n ],\n ]),\n ],\n\n [\n 'define', new Map([\n [\n 'typeRequired', isClosure,\n ],\n ]),\n ],\n\n [\n 'emits', new Map([\n // Signature seems to require a \"name\" (of an event) and no counter-examples\n [\n 'nameContents', 'namepath-referencing',\n ],\n\n [\n 'nameRequired', true,\n ],\n\n [\n 'typeAllowed', false,\n ],\n ]),\n ],\n\n [\n 'enum', new Map([\n // Has example showing curly brackets but not in doc signature\n [\n 'typeAllowed', true,\n ],\n ]),\n ],\n\n [\n 'event', new Map([\n // The doc signature of `event` seems to require a \"name\"\n [\n 'nameRequired', true,\n ],\n\n // Appears to require a \"name\" in its signature, albeit somewhat\n // different from other \"name\"'s (including as described\n // at https://jsdoc.app/about-namepaths.html )\n [\n 'nameContents', 'namepath-defining',\n ],\n ]),\n ],\n\n [\n 'exception', new Map([\n // Shows curly brackets in the signature and in the examples\n [\n 'typeAllowed', true,\n ],\n ]),\n ],\n\n // Closure\n [\n 'export', new Map([\n [\n 'typeAllowed', isClosureOrPermissive,\n ],\n ]),\n ],\n\n [\n 'exports', new Map([\n [\n 'nameContents', 'namepath-defining',\n ],\n\n [\n 'nameRequired', isJsdoc,\n ],\n\n [\n 'typeAllowed', isClosureOrPermissive,\n ],\n ]),\n ],\n\n [\n 'extends', new Map([\n // Signature seems to require a \"namepath\" (and no counter-examples)\n [\n 'nameContents', 'namepath-referencing',\n ],\n\n // Does not show curly brackets in either the signature or examples\n [\n 'typeAllowed', isTypescriptOrClosure || isPermissive,\n ],\n\n [\n 'nameRequired', isJsdoc,\n ],\n\n // \"namepath\"\n [\n 'typeOrNameRequired', isTypescriptOrClosure || isPermissive,\n ],\n ]),\n ],\n\n [\n 'external', new Map([\n // Appears to require a \"name\" in its signature, albeit somewhat\n // different from other \"name\"'s (including as described\n // at https://jsdoc.app/about-namepaths.html )\n [\n 'nameContents', 'namepath-defining',\n ],\n\n // \"name\" (and a special syntax for the `external` name)\n [\n 'nameRequired', true,\n ],\n\n [\n 'typeAllowed', false,\n ],\n ]),\n ],\n\n [\n 'fires', new Map([\n // Signature seems to require a \"name\" (of an event) and no\n // counter-examples\n [\n 'nameContents', 'namepath-referencing',\n ],\n\n [\n 'nameRequired', true,\n ],\n\n [\n 'typeAllowed', false,\n ],\n ]),\n ],\n\n [\n 'function', new Map([\n // Allows for \"name\"'s in signature, but indicated as optional\n [\n 'nameContents', 'namepath-defining',\n ],\n\n [\n 'nameRequired', false,\n ],\n\n [\n 'typeAllowed', false,\n ],\n ]),\n ],\n [\n 'func', new Map([\n // Allows for \"name\"'s in signature, but indicated as optional\n [\n 'nameContents', 'namepath-defining',\n ],\n ]),\n ],\n\n [\n 'host', new Map([\n // Appears to require a \"name\" in its signature, albeit somewhat\n // different from other \"name\"'s (including as described\n // at https://jsdoc.app/about-namepaths.html )\n [\n 'nameContents', 'namepath-defining',\n ],\n\n // See `external`\n [\n 'nameRequired', true,\n ],\n\n [\n 'typeAllowed', false,\n ],\n ]),\n ],\n\n [\n 'interface', new Map([\n // Allows for \"name\" in signature, but indicates as optional\n [\n 'nameContents',\n isJsdocTypescriptOrPermissive ? 'namepath-defining' : false,\n ],\n\n // Not in use, but should be this value if using to power `empty-tags`\n [\n 'nameAllowed', isClosure,\n ],\n\n [\n 'typeAllowed', false,\n ],\n ]),\n ],\n\n [\n 'internal', new Map([\n // https://www.typescriptlang.org/tsconfig/#stripInternal\n [\n 'nameContents', false,\n ],\n // Not in use, but should be this value if using to power `empty-tags`\n [\n 'nameAllowed', false,\n ],\n ]),\n ],\n\n [\n 'implements', new Map([\n // Shows curly brackets in the doc signature and examples\n // \"typeExpression\"\n [\n 'typeRequired', true,\n ],\n ]),\n ],\n\n [\n 'lends', new Map([\n // Signature seems to require a \"namepath\" (and no counter-examples)\n [\n 'nameContents', 'namepath-referencing',\n ],\n\n // \"namepath\"\n [\n 'typeOrNameRequired', true,\n ],\n ]),\n ],\n\n [\n 'listens', new Map([\n // Signature seems to require a \"name\" (of an event) and no\n // counter-examples\n [\n 'nameContents', 'namepath-referencing',\n ],\n\n [\n 'nameRequired', true,\n ],\n\n [\n 'typeAllowed', false,\n ],\n ]),\n ],\n\n [\n 'member', new Map([\n // Allows for \"name\"'s in signature, but indicated as optional\n [\n 'nameContents', 'namepath-defining',\n ],\n\n // Has example showing curly brackets but not in doc signature\n [\n 'typeAllowed', true,\n ],\n ]),\n ],\n\n [\n 'memberof', new Map([\n // Signature seems to require a \"namepath\" (and no counter-examples),\n // though it allows an incomplete namepath ending with connecting symbol\n [\n 'nameContents', 'namepath-referencing',\n ],\n\n // \"namepath\"\n [\n 'typeOrNameRequired', true,\n ],\n ]),\n ],\n [\n 'memberof!', new Map([\n // Signature seems to require a \"namepath\" (and no counter-examples),\n // though it allows an incomplete namepath ending with connecting symbol\n [\n 'nameContents', 'namepath-referencing',\n ],\n\n // \"namepath\"\n [\n 'typeOrNameRequired', true,\n ],\n ]),\n ],\n\n [\n 'method', new Map([\n // Allows for \"name\"'s in signature, but indicated as optional\n [\n 'nameContents', 'namepath-defining',\n ],\n ]),\n ],\n [\n 'mixes', new Map([\n // Signature seems to require a \"OtherObjectPath\" with no\n // counter-examples\n [\n 'nameContents', 'namepath-referencing',\n ],\n\n // \"OtherObjectPath\"\n [\n 'typeOrNameRequired', true,\n ],\n ]),\n ],\n\n [\n 'mixin', new Map([\n // Allows for \"name\"'s in signature, but indicated as optional\n [\n 'nameContents', 'namepath-defining',\n ],\n\n [\n 'nameRequired', false,\n ],\n\n [\n 'typeAllowed', false,\n ],\n ]),\n ],\n\n [\n 'modifies', new Map([\n // Has no documentation, but test example has curly brackets, and\n // \"name\" would be suggested rather than \"namepath\" based on example;\n // not sure if name is required\n [\n 'typeAllowed', true,\n ],\n ]),\n ],\n\n [\n 'module', new Map([\n // Optional \"name\" and no curly brackets\n // this block impacts `no-undefined-types` and `valid-types` (search for\n // \"isNamepathDefiningTag|tagMightHaveNamepath|tagMightHaveEitherTypeOrNamePosition\")\n [\n 'nameContents', isJsdoc ? 'namepath-defining' : 'text',\n ],\n\n // Shows the signature with curly brackets but not in the example\n [\n 'typeAllowed', true,\n ],\n ]),\n ],\n\n [\n 'name', new Map([\n // Seems to require a \"namepath\" in the signature (with no\n // counter-examples)\n [\n 'nameContents', 'namepath-defining',\n ],\n\n // \"namepath\"\n [\n 'nameRequired', true,\n ],\n\n // \"namepath\"\n [\n 'typeOrNameRequired', true,\n ],\n ]),\n ],\n\n [\n 'namespace', new Map([\n // Allows for \"name\"'s in signature, but indicated as optional\n [\n 'nameContents', 'namepath-defining',\n ],\n\n // Shows the signature with curly brackets but not in the example\n [\n 'typeAllowed', true,\n ],\n ]),\n ],\n [\n 'package', new Map([\n // Shows the signature with curly brackets but not in the example\n // \"typeExpression\"\n [\n 'typeAllowed', isClosureOrPermissive,\n ],\n ]),\n ],\n\n [\n 'param', new Map([\n [\n 'nameContents', 'namepath-defining',\n ],\n\n // Though no signature provided requiring, per\n // https://jsdoc.app/tags-param.html:\n // \"The @param tag requires you to specify the name of the parameter you\n // are documenting.\"\n [\n 'nameRequired', true,\n ],\n\n // Has no formal signature in the docs but shows curly brackets\n // in the examples\n [\n 'typeAllowed', true,\n ],\n ]),\n ],\n\n [\n 'private', new Map([\n // Shows the signature with curly brackets but not in the example\n // \"typeExpression\"\n [\n 'typeAllowed', isClosureOrPermissive,\n ],\n ]),\n ],\n\n [\n 'prop', new Map([\n [\n 'nameContents', 'namepath-defining',\n ],\n\n // See `property`\n [\n 'nameRequired', true,\n ],\n\n // Has no formal signature in the docs but shows curly brackets\n // in the examples\n [\n 'typeAllowed', true,\n ],\n ]),\n ],\n\n [\n 'property', new Map([\n [\n 'nameContents', 'namepath-defining',\n ],\n\n // No docs indicate required, but since parallel to `param`, we treat as\n // such:\n [\n 'nameRequired', true,\n ],\n\n // Has no formal signature in the docs but shows curly brackets\n // in the examples\n [\n 'typeAllowed', true,\n ],\n ]),\n ],\n\n [\n 'protected', new Map([\n // Shows the signature with curly brackets but not in the example\n // \"typeExpression\"\n [\n 'typeAllowed', isClosureOrPermissive,\n ],\n ]),\n ],\n\n [\n 'public', new Map([\n // Does not show a signature nor show curly brackets in the example\n [\n 'typeAllowed', isClosureOrPermissive,\n ],\n ]),\n ],\n\n [\n 'requires', new Map([\n // <someModuleName>\n [\n 'nameContents', 'namepath-referencing',\n ],\n\n [\n 'nameRequired', true,\n ],\n\n [\n 'typeAllowed', false,\n ],\n ]),\n ],\n\n [\n 'returns', new Map([\n // Shows curly brackets in the signature and in the examples\n [\n 'typeAllowed', true,\n ],\n ]),\n ],\n [\n 'return', new Map([\n // Shows curly brackets in the signature and in the examples\n [\n 'typeAllowed', true,\n ],\n ]),\n ],\n\n [\n 'see', new Map([\n // Signature allows for \"namepath\" or text, so user must configure to\n // 'namepath-referencing' to enforce checks\n [\n 'nameContents', 'text',\n ],\n ]),\n ],\n\n [\n 'static', new Map([\n // Does not show a signature nor show curly brackets in the example\n [\n 'typeAllowed', isClosureOrPermissive,\n ],\n ]),\n ],\n\n [\n 'suppress', new Map([\n [\n 'nameContents', !isClosure,\n ],\n [\n 'typeRequired', isClosure,\n ],\n ]),\n ],\n\n [\n 'template', new Map([\n [\n 'nameContents', isJsdoc ? 'text' : 'namepath-referencing',\n ],\n\n // Though defines `nameContents: 'namepath-defining'` in a sense, it is\n // not parseable in the same way for template (e.g., allowing commas),\n // so not adding\n [\n 'typeAllowed', isTypescriptOrClosure || isPermissive,\n ],\n ]),\n ],\n\n [\n 'this', new Map([\n // Signature seems to require a \"namepath\" (and no counter-examples)\n // Not used with namepath in Closure/TypeScript, however\n [\n 'nameContents', isJsdoc ? 'namepath-referencing' : false,\n ],\n\n [\n 'typeRequired', isTypescriptOrClosure,\n ],\n\n // namepath\n [\n 'typeOrNameRequired', isJsdoc,\n ],\n ]),\n ],\n\n [\n 'throws', new Map([\n // Shows curly brackets in the signature and in the examples\n [\n 'typeAllowed', true,\n ],\n ]),\n ],\n\n [\n 'tutorial', new Map([\n // (a tutorial ID)\n [\n 'nameRequired', true,\n ],\n\n [\n 'typeAllowed', false,\n ],\n ]),\n ],\n\n [\n 'type', new Map([\n // Shows curly brackets in the doc signature and examples\n // \"typeName\"\n [\n 'typeRequired', true,\n ],\n ]),\n ],\n\n [\n 'typedef', new Map([\n // Seems to require a \"namepath\" in the signature (with no\n // counter-examples)\n [\n 'nameContents', 'namepath-defining',\n ],\n\n // TypeScript may allow it to be dropped if followed by @property or @member;\n // also shown as missing in Closure\n // \"namepath\"\n [\n 'nameRequired', isJsdocOrPermissive,\n ],\n\n // Is not `typeRequired` for TypeScript because it gives an error:\n // JSDoc '@typedef' tag should either have a type annotation or be followed by '@property' or '@member' tags.\n\n // Has example showing curly brackets but not in doc signature\n [\n 'typeAllowed', true,\n ],\n\n // TypeScript may allow it to be dropped if followed by @property or @member\n // \"namepath\"\n [\n 'typeOrNameRequired', !isTypescript,\n ],\n ]),\n ],\n\n [\n 'var', new Map([\n // Allows for \"name\"'s in signature, but indicated as optional\n [\n 'nameContents', 'namepath-defining',\n ],\n\n // Has example showing curly brackets but not in doc signature\n [\n 'typeAllowed', true,\n ],\n ]),\n ],\n\n [\n 'yields', new Map([\n // Shows curly brackets in the signature and in the examples\n [\n 'typeAllowed', true,\n ],\n ]),\n ],\n [\n 'yield', new Map([\n // Shows curly brackets in the signature and in the examples\n [\n 'typeAllowed', true,\n ],\n ]),\n ],\n ]);\n};\n\nexport default getDefaultTagStructureForMode;\n"],"mappings":";;;;;;AAAA,MAAMA,6BAA6B,GAAIC,IAAI,IAAK;EAC9C,MAAMC,OAAO,GAAGD,IAAI,KAAK,OAAO;EAChC,MAAME,SAAS,GAAGF,IAAI,KAAK,SAAS;EACpC,MAAMG,YAAY,GAAGH,IAAI,KAAK,YAAY;EAC1C,MAAMI,YAAY,GAAGJ,IAAI,KAAK,YAAY;EAE1C,MAAMK,mBAAmB,GAAGJ,OAAO,IAAIG,YAAY;EACnD,MAAME,mBAAmB,GAAGL,OAAO,IAAIE,YAAY;EACnD,MAAMI,qBAAqB,GAAGJ,YAAY,IAAID,SAAS;EACvD,MAAMM,qBAAqB,GAAGN,SAAS,IAAIE,YAAY;EACvD,MAAMK,6BAA6B,GAAGH,mBAAmB,IAAIF,YAAY;;EAEzE;EACA;EACA;EACA;EACA;EACA;;EAEA;EACA;EACA;EACA;EACA;;EAEA;EACA;;EAEA;EACA;EACA;EACA;;EAEA;EACA;;EAEA;EACA;EACA;EACA;EACA;;EAEA,OAAO,IAAIM,GAAG,CAAC,CACb,CACE,OAAO,EAAE,IAAIA,GAAG,CAAC;EACf;EACA,CACE,cAAc,EAAE,sBAAsB,CACvC;EAED;EACA,CACE,oBAAoB,EAAE,IAAI,CAC3B,CACF,CAAC,CACH,EAED,CACE,KAAK,EAAE,IAAIA,GAAG,CAAC,CACb,CACE,cAAc,EAAE,mBAAmB,CACpC;EAED;EACA,CACE,cAAc,EAAE,IAAI,CACrB;EAED;EACA;EACA,CACE,aAAa,EAAE,IAAI,CACpB,CACF,CAAC,CACH,EAED,CACE,UAAU,EAAE,IAAIA,GAAG,CAAC,CAClB,CACE,cAAc,EAAE,mBAAmB,CACpC;EAED;EACA,CACE,cAAc,EAAE,IAAI,CACrB;EAED;EACA;EACA,CACE,aAAa,EAAE,IAAI,CACpB,CACF,CAAC,CACH,EAED,CACE,UAAU,EAAE,IAAIA,GAAG,CAAC;EAClB;EACA,CACE,cAAc,EAAE,sBAAsB,CACvC;EAED;EACA,CACE,aAAa,EAAE,IAAI,CACpB;EAED;EACA,CACE,oBAAoB,EAAE,IAAI,CAC3B,CACF,CAAC,CACH,EAED,CACE,SAAS,EAAE,IAAIA,GAAG,CAAC;EACjB;EACA;EACA,CACE,cAAc,EAAE,sBAAsB,CACvC;EAED;EACA,CACE,oBAAoB,EAAE,IAAI,CAC3B,CACF,CAAC,CACH,EAED,CACE,UAAU,EAAE,IAAIA,GAAG,CAAC;EAClB;EACA;EACA;EACA,CACE,cAAc,EAAE,mBAAmB,CACpC;EAED;EACA,CACE,cAAc,EAAE,IAAI,CACrB,CACF,CAAC,CACH,EAED,CACE,OAAO,EAAE,IAAIA,GAAG,CAAC;EACf;EACA,CACE,cAAc,EAAE,mBAAmB,CACpC;EAED;EACA,CACE,aAAa,EAAE,IAAI,CACpB,EAED,CACE,aAAa,EAAE,IAAI,CACpB,CACF,CAAC,CACH,EAED,CACE,OAAO,EAAE,IAAIA,GAAG,CAAC;EACf;EACA,CACE,cAAc,EAAE,mBAAmB,CACpC,EAED,CACE,aAAa,EAAE,IAAI,CACpB,CACF,CAAC,CACH,EACD,CACE,UAAU,EAAE,IAAIA,GAAG,CAAC;EAClB;EACA,CACE,cAAc,EAAE,mBAAmB,CACpC,EAED,CACE,aAAa,EAAE,IAAI,CACpB,CACF,CAAC,CACH,EACD,CACE,aAAa,EAAE,IAAIA,GAAG,CAAC;EACrB;EACA,CACE,cAAc,EAAE,mBAAmB,CACpC,EAED,CACE,aAAa,EAAE,IAAI,CACpB,CACF,CAAC,CACH,EAED,CACE,YAAY,EAAE,IAAIA,GAAG,CAAC;EACpB;EACA,CACE,cAAc,EAAE,mBAAmB,CACpC,EAED,CACE,cAAc,EAAE,KAAK,CACtB,EAED,CACE,aAAa,EAAE,KAAK,CACrB,CACF,CAAC,CACH,EAED,CACE,QAAQ,EAAE,IAAIA,GAAG,CAAC,CAChB,CACE,cAAc,EAAER,SAAS,CAC1B,CACF,CAAC,CACH,EAED,CACE,OAAO,EAAE,IAAIQ,GAAG,CAAC;EACf;EACA,CACE,cAAc,EAAE,sBAAsB,CACvC,EAED,CACE,cAAc,EAAE,IAAI,CACrB,EAED,CACE,aAAa,EAAE,KAAK,CACrB,CACF,CAAC,CACH,EAED,CACE,MAAM,EAAE,IAAIA,GAAG,CAAC;EACd;EACA,CACE,aAAa,EAAE,IAAI,CACpB,CACF,CAAC,CACH,EAED,CACE,OAAO,EAAE,IAAIA,GAAG,CAAC;EACf;EACA,CACE,cAAc,EAAE,IAAI,CACrB;EAED;EACA;EACA;EACA,CACE,cAAc,EAAE,mBAAmB,CACpC,CACF,CAAC,CACH,EAED,CACE,WAAW,EAAE,IAAIA,GAAG,CAAC;EACnB;EACA,CACE,aAAa,EAAE,IAAI,CACpB,CACF,CAAC,CACH;EAED;EACA,CACE,QAAQ,EAAE,IAAIA,GAAG,CAAC,CAChB,CACE,aAAa,EAAEF,qBAAqB,CACrC,CACF,CAAC,CACH,EAED,CACE,SAAS,EAAE,IAAIE,GAAG,CAAC,CACjB,CACE,cAAc,EAAE,mBAAmB,CACpC,EAED,CACE,cAAc,EAAET,OAAO,CACxB,EAED,CACE,aAAa,EAAEO,qBAAqB,CACrC,CACF,CAAC,CACH,EAED,CACE,SAAS,EAAE,IAAIE,GAAG,CAAC;EACjB;EACA,CACE,cAAc,EAAE,sBAAsB,CACvC;EAED;EACA,CACE,aAAa,EAAEH,qBAAqB,IAAIH,YAAY,CACrD,EAED,CACE,cAAc,EAAEH,OAAO,CACxB;EAED;EACA,CACE,oBAAoB,EAAEM,qBAAqB,IAAIH,YAAY,CAC5D,CACF,CAAC,CACH,EAED,CACE,UAAU,EAAE,IAAIM,GAAG,CAAC;EAClB;EACA;EACA;EACA,CACE,cAAc,EAAE,mBAAmB,CACpC;EAED;EACA,CACE,cAAc,EAAE,IAAI,CACrB,EAED,CACE,aAAa,EAAE,KAAK,CACrB,CACF,CAAC,CACH,EAED,CACE,OAAO,EAAE,IAAIA,GAAG,CAAC;EACf;EACA;EACA,CACE,cAAc,EAAE,sBAAsB,CACvC,EAED,CACE,cAAc,EAAE,IAAI,CACrB,EAED,CACE,aAAa,EAAE,KAAK,CACrB,CACF,CAAC,CACH,EAED,CACE,UAAU,EAAE,IAAIA,GAAG,CAAC;EAClB;EACA,CACE,cAAc,EAAE,mBAAmB,CACpC,EAED,CACE,cAAc,EAAE,KAAK,CACtB,EAED,CACE,aAAa,EAAE,KAAK,CACrB,CACF,CAAC,CACH,EACD,CACE,MAAM,EAAE,IAAIA,GAAG,CAAC;EACd;EACA,CACE,cAAc,EAAE,mBAAmB,CACpC,CACF,CAAC,CACH,EAED,CACE,MAAM,EAAE,IAAIA,GAAG,CAAC;EACd;EACA;EACA;EACA,CACE,cAAc,EAAE,mBAAmB,CACpC;EAED;EACA,CACE,cAAc,EAAE,IAAI,CACrB,EAED,CACE,aAAa,EAAE,KAAK,CACrB,CACF,CAAC,CACH,EAED,CACE,WAAW,EAAE,IAAIA,GAAG,CAAC;EACnB;EACA,CACE,cAAc,EACdD,6BAA6B,GAAG,mBAAmB,GAAG,KAAK,CAC5D;EAED;EACA,CACE,aAAa,EAAEP,SAAS,CACzB,EAED,CACE,aAAa,EAAE,KAAK,CACrB,CACF,CAAC,CACH,EAED,CACE,UAAU,EAAE,IAAIQ,GAAG,CAAC;EAClB;EACA,CACE,cAAc,EAAE,KAAK,CACtB;EACD;EACA,CACE,aAAa,EAAE,KAAK,CACrB,CACF,CAAC,CACH,EAED,CACE,YAAY,EAAE,IAAIA,GAAG,CAAC;EACpB;EACA;EACA,CACE,cAAc,EAAE,IAAI,CACrB,CACF,CAAC,CACH,EAED,CACE,OAAO,EAAE,IAAIA,GAAG,CAAC;EACf;EACA,CACE,cAAc,EAAE,sBAAsB,CACvC;EAED;EACA,CACE,oBAAoB,EAAE,IAAI,CAC3B,CACF,CAAC,CACH,EAED,CACE,SAAS,EAAE,IAAIA,GAAG,CAAC;EACjB;EACA;EACA,CACE,cAAc,EAAE,sBAAsB,CACvC,EAED,CACE,cAAc,EAAE,IAAI,CACrB,EAED,CACE,aAAa,EAAE,KAAK,CACrB,CACF,CAAC,CACH,EAED,CACE,QAAQ,EAAE,IAAIA,GAAG,CAAC;EAChB;EACA,CACE,cAAc,EAAE,mBAAmB,CACpC;EAED;EACA,CACE,aAAa,EAAE,IAAI,CACpB,CACF,CAAC,CACH,EAED,CACE,UAAU,EAAE,IAAIA,GAAG,CAAC;EAClB;EACA;EACA,CACE,cAAc,EAAE,sBAAsB,CACvC;EAED;EACA,CACE,oBAAoB,EAAE,IAAI,CAC3B,CACF,CAAC,CACH,EACD,CACE,WAAW,EAAE,IAAIA,GAAG,CAAC;EACnB;EACA;EACA,CACE,cAAc,EAAE,sBAAsB,CACvC;EAED;EACA,CACE,oBAAoB,EAAE,IAAI,CAC3B,CACF,CAAC,CACH,EAED,CACE,QAAQ,EAAE,IAAIA,GAAG,CAAC;EAChB;EACA,CACE,cAAc,EAAE,mBAAmB,CACpC,CACF,CAAC,CACH,EACD,CACE,OAAO,EAAE,IAAIA,GAAG,CAAC;EACf;EACA;EACA,CACE,cAAc,EAAE,sBAAsB,CACvC;EAED;EACA,CACE,oBAAoB,EAAE,IAAI,CAC3B,CACF,CAAC,CACH,EAED,CACE,OAAO,EAAE,IAAIA,GAAG,CAAC;EACf;EACA,CACE,cAAc,EAAE,mBAAmB,CACpC,EAED,CACE,cAAc,EAAE,KAAK,CACtB,EAED,CACE,aAAa,EAAE,KAAK,CACrB,CACF,CAAC,CACH,EAED,CACE,UAAU,EAAE,IAAIA,GAAG,CAAC;EAClB;EACA;EACA;EACA,CACE,aAAa,EAAE,IAAI,CACpB,CACF,CAAC,CACH,EAED,CACE,QAAQ,EAAE,IAAIA,GAAG,CAAC;EAChB;EACA;EACA;EACA,CACE,cAAc,EAAET,OAAO,GAAG,mBAAmB,GAAG,MAAM,CACvD;EAED;EACA,CACE,aAAa,EAAE,IAAI,CACpB,CACF,CAAC,CACH,EAED,CACE,MAAM,EAAE,IAAIS,GAAG,CAAC;EACd;EACA;EACA,CACE,cAAc,EAAE,mBAAmB,CACpC;EAED;EACA,CACE,cAAc,EAAE,IAAI,CACrB;EAED;EACA,CACE,oBAAoB,EAAE,IAAI,CAC3B,CACF,CAAC,CACH,EAED,CACE,WAAW,EAAE,IAAIA,GAAG,CAAC;EACnB;EACA,CACE,cAAc,EAAE,mBAAmB,CACpC;EAED;EACA,CACE,aAAa,EAAE,IAAI,CACpB,CACF,CAAC,CACH,EACD,CACE,SAAS,EAAE,IAAIA,GAAG,CAAC;EACjB;EACA;EACA,CACE,aAAa,EAAEF,qBAAqB,CACrC,CACF,CAAC,CACH,EAED,CACE,OAAO,EAAE,IAAIE,GAAG,CAAC,CACf,CACE,cAAc,EAAE,mBAAmB,CACpC;EAED;EACA;EACA;EACA;EACA,CACE,cAAc,EAAE,IAAI,CACrB;EAED;EACA;EACA,CACE,aAAa,EAAE,IAAI,CACpB,CACF,CAAC,CACH,EAED,CACE,SAAS,EAAE,IAAIA,GAAG,CAAC;EACjB;EACA;EACA,CACE,aAAa,EAAEF,qBAAqB,CACrC,CACF,CAAC,CACH,EAED,CACE,MAAM,EAAE,IAAIE,GAAG,CAAC,CACd,CACE,cAAc,EAAE,mBAAmB,CACpC;EAED;EACA,CACE,cAAc,EAAE,IAAI,CACrB;EAED;EACA;EACA,CACE,aAAa,EAAE,IAAI,CACpB,CACF,CAAC,CACH,EAED,CACE,UAAU,EAAE,IAAIA,GAAG,CAAC,CAClB,CACE,cAAc,EAAE,mBAAmB,CACpC;EAED;EACA;EACA,CACE,cAAc,EAAE,IAAI,CACrB;EAED;EACA;EACA,CACE,aAAa,EAAE,IAAI,CACpB,CACF,CAAC,CACH,EAED,CACE,WAAW,EAAE,IAAIA,GAAG,CAAC;EACnB;EACA;EACA,CACE,aAAa,EAAEF,qBAAqB,CACrC,CACF,CAAC,CACH,EAED,CACE,QAAQ,EAAE,IAAIE,GAAG,CAAC;EAChB;EACA,CACE,aAAa,EAAEF,qBAAqB,CACrC,CACF,CAAC,CACH,EAED,CACE,UAAU,EAAE,IAAIE,GAAG,CAAC;EAClB;EACA,CACE,cAAc,EAAE,sBAAsB,CACvC,EAED,CACE,cAAc,EAAE,IAAI,CACrB,EAED,CACE,aAAa,EAAE,KAAK,CACrB,CACF,CAAC,CACH,EAED,CACE,SAAS,EAAE,IAAIA,GAAG,CAAC;EACjB;EACA,CACE,aAAa,EAAE,IAAI,CACpB,CACF,CAAC,CACH,EACD,CACE,QAAQ,EAAE,IAAIA,GAAG,CAAC;EAChB;EACA,CACE,aAAa,EAAE,IAAI,CACpB,CACF,CAAC,CACH,EAED,CACE,KAAK,EAAE,IAAIA,GAAG,CAAC;EACb;EACA;EACA,CACE,cAAc,EAAE,MAAM,CACvB,CACF,CAAC,CACH,EAED,CACE,QAAQ,EAAE,IAAIA,GAAG,CAAC;EAChB;EACA,CACE,aAAa,EAAEF,qBAAqB,CACrC,CACF,CAAC,CACH,EAED,CACE,UAAU,EAAE,IAAIE,GAAG,CAAC,CAClB,CACE,cAAc,EAAE,CAACR,SAAS,CAC3B,EACD,CACE,cAAc,EAAEA,SAAS,CAC1B,CACF,CAAC,CACH,EAED,CACE,UAAU,EAAE,IAAIQ,GAAG,CAAC,CAClB,CACE,cAAc,EAAET,OAAO,GAAG,MAAM,GAAG,sBAAsB,CAC1D;EAED;EACA;EACA;EACA,CACE,aAAa,EAAEM,qBAAqB,IAAIH,YAAY,CACrD,CACF,CAAC,CACH,EAED,CACE,MAAM,EAAE,IAAIM,GAAG,CAAC;EACd;EACA;EACA,CACE,cAAc,EAAET,OAAO,GAAG,sBAAsB,GAAG,KAAK,CACzD,EAED,CACE,cAAc,EAAEM,qBAAqB,CACtC;EAED;EACA,CACE,oBAAoB,EAAEN,OAAO,CAC9B,CACF,CAAC,CACH,EAED,CACE,QAAQ,EAAE,IAAIS,GAAG,CAAC;EAChB;EACA,CACE,aAAa,EAAE,IAAI,CACpB,CACF,CAAC,CACH,EAED,CACE,UAAU,EAAE,IAAIA,GAAG,CAAC;EAClB;EACA,CACE,cAAc,EAAE,IAAI,CACrB,EAED,CACE,aAAa,EAAE,KAAK,CACrB,CACF,CAAC,CACH,EAED,CACE,MAAM,EAAE,IAAIA,GAAG,CAAC;EACd;EACA;EACA,CACE,cAAc,EAAE,IAAI,CACrB,CACF,CAAC,CACH,EAED,CACE,SAAS,EAAE,IAAIA,GAAG,CAAC;EACjB;EACA;EACA,CACE,cAAc,EAAE,mBAAmB,CACpC;EAED;EACA;EACA;EACA,CACE,cAAc,EAAEL,mBAAmB,CACpC;EAED;EACA;;EAEA;EACA,CACE,aAAa,EAAE,IAAI,CACpB;EAED;EACA;EACA,CACE,oBAAoB,EAAE,CAACF,YAAY,CACpC,CACF,CAAC,CACH,EAED,CACE,KAAK,EAAE,IAAIO,GAAG,CAAC;EACb;EACA,CACE,cAAc,EAAE,mBAAmB,CACpC;EAED;EACA,CACE,aAAa,EAAE,IAAI,CACpB,CACF,CAAC,CACH,EAED,CACE,QAAQ,EAAE,IAAIA,GAAG,CAAC;EAChB;EACA,CACE,aAAa,EAAE,IAAI,CACpB,CACF,CAAC,CACH,EACD,CACE,OAAO,EAAE,IAAIA,GAAG,CAAC;EACf;EACA,CACE,aAAa,EAAE,IAAI,CACpB,CACF,CAAC,CACH,CACF,CAAC;AACJ,CAAC;AAAC,eAEaX,6BAA6B;AAAA;AAAA"}