eslint-plugin-jsdoc 38.0.7 → 38.1.1
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.
- package/README.md +53 -16
- package/dist/defaultTagOrder.js +2 -1
- package/dist/defaultTagOrder.js.map +1 -1
- package/dist/getDefaultTagStructureForMode.js +3 -1
- package/dist/getDefaultTagStructureForMode.js.map +1 -1
- package/dist/rules/checkTypes.js +39 -35
- package/dist/rules/checkTypes.js.map +1 -1
- package/dist/tagNames.js +3 -0
- package/dist/tagNames.js.map +1 -1
- package/package.json +1 -1
package/README.md
CHANGED
|
@@ -4471,10 +4471,11 @@ function quux (foo) {}
|
|
|
4471
4471
|
* @variation
|
|
4472
4472
|
* @version
|
|
4473
4473
|
* @yields
|
|
4474
|
+
* @internal
|
|
4474
4475
|
* @template
|
|
4475
4476
|
*/
|
|
4476
4477
|
function quux (foo) {}
|
|
4477
|
-
// Message: Invalid JSDoc tag name "
|
|
4478
|
+
// Message: Invalid JSDoc tag name "internal".
|
|
4478
4479
|
|
|
4479
4480
|
/**
|
|
4480
4481
|
* @externs
|
|
@@ -4702,6 +4703,7 @@ function quux (foo) {}
|
|
|
4702
4703
|
* @variation
|
|
4703
4704
|
* @version
|
|
4704
4705
|
* @yields
|
|
4706
|
+
* @internal
|
|
4705
4707
|
* @template
|
|
4706
4708
|
*/
|
|
4707
4709
|
function quux (foo) {}
|
|
@@ -4765,6 +4767,11 @@ export function transient<T>(target?: T): T {
|
|
|
4765
4767
|
/** @jsxImportSource preact */
|
|
4766
4768
|
/** @jsxRuntime automatic */
|
|
4767
4769
|
// "jsdoc/check-tag-names": ["error"|"warn", {"jsxTags":true}]
|
|
4770
|
+
|
|
4771
|
+
/**
|
|
4772
|
+
* @internal
|
|
4773
|
+
*/
|
|
4774
|
+
// Settings: {"jsdoc":{"mode":"typescript"}}
|
|
4768
4775
|
````
|
|
4769
4776
|
|
|
4770
4777
|
|
|
@@ -4883,11 +4890,12 @@ as a lone type. However, one additional complexity is that TypeScript allows and
|
|
|
4883
4890
|
actually [currently requires](https://github.com/microsoft/TypeScript/issues/20555)
|
|
4884
4891
|
`Object` (with the initial upper-case) if used in the syntax
|
|
4885
4892
|
`Object.<keyType, valueType>` or `Object<keyType, valueType`, perhaps to
|
|
4886
|
-
adhere to
|
|
4893
|
+
adhere to that which [JSDoc documents](https://jsdoc.app/tags-type.html).
|
|
4887
4894
|
|
|
4888
4895
|
So, for optimal compatibility with TypeScript (especially since TypeScript
|
|
4889
|
-
tools can be used on plain JavaScript with JSDoc), we are now
|
|
4890
|
-
TypeScript approach by default
|
|
4896
|
+
tools can be used on plain JavaScript with JSDoc), we are now requiring this
|
|
4897
|
+
TypeScript approach by default (if you set `object` type `preferredTypes` in
|
|
4898
|
+
TypeScript mode, the defaults will not apply).
|
|
4891
4899
|
|
|
4892
4900
|
Basically, for primitives, we want to define the type as a primitive, because
|
|
4893
4901
|
that's what we use in 99.9% of cases. For everything else, we use the type
|
|
@@ -5491,7 +5499,7 @@ function quux (foo) {
|
|
|
5491
5499
|
function a () {}
|
|
5492
5500
|
|
|
5493
5501
|
/**
|
|
5494
|
-
* @typedef {Object} foo
|
|
5502
|
+
* @typedef {Object<string>} foo
|
|
5495
5503
|
*/
|
|
5496
5504
|
function b () {}
|
|
5497
5505
|
// Settings: {"jsdoc":{"mode":"typescript","preferredTypes":{"object":"Object"}}}
|
|
@@ -5550,6 +5558,24 @@ function quux (foo) {
|
|
|
5550
5558
|
}
|
|
5551
5559
|
// Settings: {"jsdoc":{"mode":"typescript","preferredTypes":{"Object":"object","object.<>":"Object<>","Object.<>":"Object<>","object<>":"Object<>"}}}
|
|
5552
5560
|
// Message: Invalid JSDoc @param "foo" type "object"; prefer: "Object<>".
|
|
5561
|
+
|
|
5562
|
+
/**
|
|
5563
|
+
* @param {object.<string>} foo
|
|
5564
|
+
*/
|
|
5565
|
+
function quux (foo) {
|
|
5566
|
+
|
|
5567
|
+
}
|
|
5568
|
+
// Settings: {"jsdoc":{"mode":"typescript","preferredTypes":{"Object":"object","object.<>":"Object<>","Object.<>":"Object<>","object<>":"Object<>"}}}
|
|
5569
|
+
// Message: Invalid JSDoc @param "foo" type "object"; prefer: "Object<>".
|
|
5570
|
+
|
|
5571
|
+
/**
|
|
5572
|
+
* @param {object.<string>} foo
|
|
5573
|
+
*/
|
|
5574
|
+
function quux (foo) {
|
|
5575
|
+
|
|
5576
|
+
}
|
|
5577
|
+
// Settings: {"jsdoc":{"mode":"typescript"}}
|
|
5578
|
+
// Message: Invalid JSDoc @param "foo" type "object"; prefer: "Object<>".
|
|
5553
5579
|
````
|
|
5554
5580
|
|
|
5555
5581
|
The following patterns are not considered problems:
|
|
@@ -5810,7 +5836,7 @@ function b () {}
|
|
|
5810
5836
|
function a () {}
|
|
5811
5837
|
|
|
5812
5838
|
/**
|
|
5813
|
-
* @typedef {Object} foo
|
|
5839
|
+
* @typedef {Object<string>} foo
|
|
5814
5840
|
*/
|
|
5815
5841
|
function b () {}
|
|
5816
5842
|
// Settings: {"jsdoc":{"mode":"typescript"}}
|
|
@@ -5839,7 +5865,7 @@ function quux (foo) {
|
|
|
5839
5865
|
}
|
|
5840
5866
|
|
|
5841
5867
|
/**
|
|
5842
|
-
* @param {Object
|
|
5868
|
+
* @param {Object<string>} foo
|
|
5843
5869
|
*/
|
|
5844
5870
|
function quux (foo) {
|
|
5845
5871
|
|
|
@@ -5857,6 +5883,17 @@ function a () {}
|
|
|
5857
5883
|
*/
|
|
5858
5884
|
function a () {}
|
|
5859
5885
|
// Settings: {"jsdoc":{"mode":"typescript","preferredTypes":{"Object":"object","object.<>":"Object<>","object<>":"Object<>"}}}
|
|
5886
|
+
|
|
5887
|
+
/**
|
|
5888
|
+
* Does something.
|
|
5889
|
+
*
|
|
5890
|
+
* @param {Object<string,string>} spec - Foo.
|
|
5891
|
+
*/
|
|
5892
|
+
function foo(spec) {
|
|
5893
|
+
return spec;
|
|
5894
|
+
}
|
|
5895
|
+
|
|
5896
|
+
foo()
|
|
5860
5897
|
````
|
|
5861
5898
|
|
|
5862
5899
|
|
|
@@ -20628,7 +20665,7 @@ The following patterns are considered problems:
|
|
|
20628
20665
|
* @param a
|
|
20629
20666
|
*/
|
|
20630
20667
|
function quux () {}
|
|
20631
|
-
// Message: Tags are not in the prescribed order: summary, typeSummary, module, exports, file, fileoverview, overview, typedef, interface, record, template, name, kind, type, alias, external, host, callback, func, function, method, class, constructor, modifies, mixes, mixin, mixinClass, mixinFunction, namespace, borrows, constructs, lends, implements, requires, desc, description, classdesc, tutorial, copyright, license, const, constant, final, global, readonly, abstract, virtual, var, member, memberof, memberof!, inner, instance, inheritdoc, inheritDoc, override, hideconstructor, param, arg, argument, prop, property, return, returns, async, generator, default, defaultvalue, enum, augments, extends, throws, exception, yield, yields, event, fires, emits, listens, this, static, private, protected, public, access, package, -other, see, example, closurePrimitive, customElement, expose, hidden, idGenerator, meaning, ngInject, owner, wizaction, define, dict, export, externs, implicitCast, noalias, nocollapse, nocompile, noinline, nosideeffects, polymer, polymerBehavior, preserve, struct, suppress, unrestricted, category, ignore, author, version, variation, since, deprecated, todo
|
|
20668
|
+
// Message: Tags are not in the prescribed order: summary, typeSummary, module, exports, file, fileoverview, overview, typedef, interface, record, template, name, kind, type, alias, external, host, callback, func, function, method, class, constructor, modifies, mixes, mixin, mixinClass, mixinFunction, namespace, borrows, constructs, lends, implements, requires, desc, description, classdesc, tutorial, copyright, license, internal, const, constant, final, global, readonly, abstract, virtual, var, member, memberof, memberof!, inner, instance, inheritdoc, inheritDoc, override, hideconstructor, param, arg, argument, prop, property, return, returns, async, generator, default, defaultvalue, enum, augments, extends, throws, exception, yield, yields, event, fires, emits, listens, this, static, private, protected, public, access, package, -other, see, example, closurePrimitive, customElement, expose, hidden, idGenerator, meaning, ngInject, owner, wizaction, define, dict, export, externs, implicitCast, noalias, nocollapse, nocompile, noinline, nosideeffects, polymer, polymerBehavior, preserve, struct, suppress, unrestricted, category, ignore, author, version, variation, since, deprecated, todo
|
|
20632
20669
|
|
|
20633
20670
|
/**
|
|
20634
20671
|
* Some description
|
|
@@ -20637,7 +20674,7 @@ function quux () {}
|
|
|
20637
20674
|
* @param a
|
|
20638
20675
|
*/
|
|
20639
20676
|
function quux () {}
|
|
20640
|
-
// Message: Tags are not in the prescribed order: summary, typeSummary, module, exports, file, fileoverview, overview, typedef, interface, record, template, name, kind, type, alias, external, host, callback, func, function, method, class, constructor, modifies, mixes, mixin, mixinClass, mixinFunction, namespace, borrows, constructs, lends, implements, requires, desc, description, classdesc, tutorial, copyright, license, const, constant, final, global, readonly, abstract, virtual, var, member, memberof, memberof!, inner, instance, inheritdoc, inheritDoc, override, hideconstructor, param, arg, argument, prop, property, return, returns, async, generator, default, defaultvalue, enum, augments, extends, throws, exception, yield, yields, event, fires, emits, listens, this, static, private, protected, public, access, package, -other, see, example, closurePrimitive, customElement, expose, hidden, idGenerator, meaning, ngInject, owner, wizaction, define, dict, export, externs, implicitCast, noalias, nocollapse, nocompile, noinline, nosideeffects, polymer, polymerBehavior, preserve, struct, suppress, unrestricted, category, ignore, author, version, variation, since, deprecated, todo
|
|
20677
|
+
// Message: Tags are not in the prescribed order: summary, typeSummary, module, exports, file, fileoverview, overview, typedef, interface, record, template, name, kind, type, alias, external, host, callback, func, function, method, class, constructor, modifies, mixes, mixin, mixinClass, mixinFunction, namespace, borrows, constructs, lends, implements, requires, desc, description, classdesc, tutorial, copyright, license, internal, const, constant, final, global, readonly, abstract, virtual, var, member, memberof, memberof!, inner, instance, inheritdoc, inheritDoc, override, hideconstructor, param, arg, argument, prop, property, return, returns, async, generator, default, defaultvalue, enum, augments, extends, throws, exception, yield, yields, event, fires, emits, listens, this, static, private, protected, public, access, package, -other, see, example, closurePrimitive, customElement, expose, hidden, idGenerator, meaning, ngInject, owner, wizaction, define, dict, export, externs, implicitCast, noalias, nocollapse, nocompile, noinline, nosideeffects, polymer, polymerBehavior, preserve, struct, suppress, unrestricted, category, ignore, author, version, variation, since, deprecated, todo
|
|
20641
20678
|
|
|
20642
20679
|
/**
|
|
20643
20680
|
* @returns {string}
|
|
@@ -20646,7 +20683,7 @@ function quux () {}
|
|
|
20646
20683
|
* @param a
|
|
20647
20684
|
*/
|
|
20648
20685
|
function quux () {}
|
|
20649
|
-
// Message: Tags are not in the prescribed order: summary, typeSummary, module, exports, file, fileoverview, overview, typedef, interface, record, template, name, kind, type, alias, external, host, callback, func, function, method, class, constructor, modifies, mixes, mixin, mixinClass, mixinFunction, namespace, borrows, constructs, lends, implements, requires, desc, description, classdesc, tutorial, copyright, license, const, constant, final, global, readonly, abstract, virtual, var, member, memberof, memberof!, inner, instance, inheritdoc, inheritDoc, override, hideconstructor, param, arg, argument, prop, property, return, returns, async, generator, default, defaultvalue, enum, augments, extends, throws, exception, yield, yields, event, fires, emits, listens, this, static, private, protected, public, access, package, -other, see, example, closurePrimitive, customElement, expose, hidden, idGenerator, meaning, ngInject, owner, wizaction, define, dict, export, externs, implicitCast, noalias, nocollapse, nocompile, noinline, nosideeffects, polymer, polymerBehavior, preserve, struct, suppress, unrestricted, category, ignore, author, version, variation, since, deprecated, todo
|
|
20686
|
+
// Message: Tags are not in the prescribed order: summary, typeSummary, module, exports, file, fileoverview, overview, typedef, interface, record, template, name, kind, type, alias, external, host, callback, func, function, method, class, constructor, modifies, mixes, mixin, mixinClass, mixinFunction, namespace, borrows, constructs, lends, implements, requires, desc, description, classdesc, tutorial, copyright, license, internal, const, constant, final, global, readonly, abstract, virtual, var, member, memberof, memberof!, inner, instance, inheritdoc, inheritDoc, override, hideconstructor, param, arg, argument, prop, property, return, returns, async, generator, default, defaultvalue, enum, augments, extends, throws, exception, yield, yields, event, fires, emits, listens, this, static, private, protected, public, access, package, -other, see, example, closurePrimitive, customElement, expose, hidden, idGenerator, meaning, ngInject, owner, wizaction, define, dict, export, externs, implicitCast, noalias, nocollapse, nocompile, noinline, nosideeffects, polymer, polymerBehavior, preserve, struct, suppress, unrestricted, category, ignore, author, version, variation, since, deprecated, todo
|
|
20650
20687
|
|
|
20651
20688
|
/**
|
|
20652
20689
|
* Some description
|
|
@@ -20656,7 +20693,7 @@ function quux () {}
|
|
|
20656
20693
|
* @param a
|
|
20657
20694
|
*/
|
|
20658
20695
|
function quux () {}
|
|
20659
|
-
// Message: Tags are not in the prescribed order: summary, typeSummary, module, exports, file, fileoverview, overview, typedef, interface, record, template, name, kind, type, alias, external, host, callback, func, function, method, class, constructor, modifies, mixes, mixin, mixinClass, mixinFunction, namespace, borrows, constructs, lends, implements, requires, desc, description, classdesc, tutorial, copyright, license, const, constant, final, global, readonly, abstract, virtual, var, member, memberof, memberof!, inner, instance, inheritdoc, inheritDoc, override, hideconstructor, param, arg, argument, prop, property, return, returns, async, generator, default, defaultvalue, enum, augments, extends, throws, exception, yield, yields, event, fires, emits, listens, this, static, private, protected, public, access, package, -other, see, example, closurePrimitive, customElement, expose, hidden, idGenerator, meaning, ngInject, owner, wizaction, define, dict, export, externs, implicitCast, noalias, nocollapse, nocompile, noinline, nosideeffects, polymer, polymerBehavior, preserve, struct, suppress, unrestricted, category, ignore, author, version, variation, since, deprecated, todo
|
|
20696
|
+
// Message: Tags are not in the prescribed order: summary, typeSummary, module, exports, file, fileoverview, overview, typedef, interface, record, template, name, kind, type, alias, external, host, callback, func, function, method, class, constructor, modifies, mixes, mixin, mixinClass, mixinFunction, namespace, borrows, constructs, lends, implements, requires, desc, description, classdesc, tutorial, copyright, license, internal, const, constant, final, global, readonly, abstract, virtual, var, member, memberof, memberof!, inner, instance, inheritdoc, inheritDoc, override, hideconstructor, param, arg, argument, prop, property, return, returns, async, generator, default, defaultvalue, enum, augments, extends, throws, exception, yield, yields, event, fires, emits, listens, this, static, private, protected, public, access, package, -other, see, example, closurePrimitive, customElement, expose, hidden, idGenerator, meaning, ngInject, owner, wizaction, define, dict, export, externs, implicitCast, noalias, nocollapse, nocompile, noinline, nosideeffects, polymer, polymerBehavior, preserve, struct, suppress, unrestricted, category, ignore, author, version, variation, since, deprecated, todo
|
|
20660
20697
|
|
|
20661
20698
|
/**
|
|
20662
20699
|
* @param b A long
|
|
@@ -20665,7 +20702,7 @@ function quux () {}
|
|
|
20665
20702
|
* @param a
|
|
20666
20703
|
*/
|
|
20667
20704
|
function quux () {}
|
|
20668
|
-
// Message: Tags are not in the prescribed order: summary, typeSummary, module, exports, file, fileoverview, overview, typedef, interface, record, template, name, kind, type, alias, external, host, callback, func, function, method, class, constructor, modifies, mixes, mixin, mixinClass, mixinFunction, namespace, borrows, constructs, lends, implements, requires, desc, description, classdesc, tutorial, copyright, license, const, constant, final, global, readonly, abstract, virtual, var, member, memberof, memberof!, inner, instance, inheritdoc, inheritDoc, override, hideconstructor, param, arg, argument, prop, property, return, returns, async, generator, default, defaultvalue, enum, augments, extends, throws, exception, yield, yields, event, fires, emits, listens, this, static, private, protected, public, access, package, -other, see, example, closurePrimitive, customElement, expose, hidden, idGenerator, meaning, ngInject, owner, wizaction, define, dict, export, externs, implicitCast, noalias, nocollapse, nocompile, noinline, nosideeffects, polymer, polymerBehavior, preserve, struct, suppress, unrestricted, category, ignore, author, version, variation, since, deprecated, todo
|
|
20705
|
+
// Message: Tags are not in the prescribed order: summary, typeSummary, module, exports, file, fileoverview, overview, typedef, interface, record, template, name, kind, type, alias, external, host, callback, func, function, method, class, constructor, modifies, mixes, mixin, mixinClass, mixinFunction, namespace, borrows, constructs, lends, implements, requires, desc, description, classdesc, tutorial, copyright, license, internal, const, constant, final, global, readonly, abstract, virtual, var, member, memberof, memberof!, inner, instance, inheritdoc, inheritDoc, override, hideconstructor, param, arg, argument, prop, property, return, returns, async, generator, default, defaultvalue, enum, augments, extends, throws, exception, yield, yields, event, fires, emits, listens, this, static, private, protected, public, access, package, -other, see, example, closurePrimitive, customElement, expose, hidden, idGenerator, meaning, ngInject, owner, wizaction, define, dict, export, externs, implicitCast, noalias, nocollapse, nocompile, noinline, nosideeffects, polymer, polymerBehavior, preserve, struct, suppress, unrestricted, category, ignore, author, version, variation, since, deprecated, todo
|
|
20669
20706
|
|
|
20670
20707
|
/**
|
|
20671
20708
|
* @def
|
|
@@ -20674,7 +20711,7 @@ function quux () {}
|
|
|
20674
20711
|
*/
|
|
20675
20712
|
function quux () {}
|
|
20676
20713
|
// "jsdoc/sort-tags": ["error"|"warn", {"alphabetizeExtras":true}]
|
|
20677
|
-
// Message: Tags are not in the prescribed order: summary, typeSummary, module, exports, file, fileoverview, overview, typedef, interface, record, template, name, kind, type, alias, external, host, callback, func, function, method, class, constructor, modifies, mixes, mixin, mixinClass, mixinFunction, namespace, borrows, constructs, lends, implements, requires, desc, description, classdesc, tutorial, copyright, license, const, constant, final, global, readonly, abstract, virtual, var, member, memberof, memberof!, inner, instance, inheritdoc, inheritDoc, override, hideconstructor, param, arg, argument, prop, property, return, returns, async, generator, default, defaultvalue, enum, augments, extends, throws, exception, yield, yields, event, fires, emits, listens, this, static, private, protected, public, access, package, -other, see, example, closurePrimitive, customElement, expose, hidden, idGenerator, meaning, ngInject, owner, wizaction, define, dict, export, externs, implicitCast, noalias, nocollapse, nocompile, noinline, nosideeffects, polymer, polymerBehavior, preserve, struct, suppress, unrestricted, category, ignore, author, version, variation, since, deprecated, todo
|
|
20714
|
+
// Message: Tags are not in the prescribed order: summary, typeSummary, module, exports, file, fileoverview, overview, typedef, interface, record, template, name, kind, type, alias, external, host, callback, func, function, method, class, constructor, modifies, mixes, mixin, mixinClass, mixinFunction, namespace, borrows, constructs, lends, implements, requires, desc, description, classdesc, tutorial, copyright, license, internal, const, constant, final, global, readonly, abstract, virtual, var, member, memberof, memberof!, inner, instance, inheritdoc, inheritDoc, override, hideconstructor, param, arg, argument, prop, property, return, returns, async, generator, default, defaultvalue, enum, augments, extends, throws, exception, yield, yields, event, fires, emits, listens, this, static, private, protected, public, access, package, -other, see, example, closurePrimitive, customElement, expose, hidden, idGenerator, meaning, ngInject, owner, wizaction, define, dict, export, externs, implicitCast, noalias, nocollapse, nocompile, noinline, nosideeffects, polymer, polymerBehavior, preserve, struct, suppress, unrestricted, category, ignore, author, version, variation, since, deprecated, todo
|
|
20678
20715
|
|
|
20679
20716
|
/**
|
|
20680
20717
|
* @xyz
|
|
@@ -20694,7 +20731,7 @@ function quux () {}
|
|
|
20694
20731
|
* @module
|
|
20695
20732
|
*/
|
|
20696
20733
|
function quux () {}
|
|
20697
|
-
// Message: Tags are not in the prescribed order: summary, typeSummary, module, exports, file, fileoverview, overview, typedef, interface, record, template, name, kind, type, alias, external, host, callback, func, function, method, class, constructor, modifies, mixes, mixin, mixinClass, mixinFunction, namespace, borrows, constructs, lends, implements, requires, desc, description, classdesc, tutorial, copyright, license, const, constant, final, global, readonly, abstract, virtual, var, member, memberof, memberof!, inner, instance, inheritdoc, inheritDoc, override, hideconstructor, param, arg, argument, prop, property, return, returns, async, generator, default, defaultvalue, enum, augments, extends, throws, exception, yield, yields, event, fires, emits, listens, this, static, private, protected, public, access, package, -other, see, example, closurePrimitive, customElement, expose, hidden, idGenerator, meaning, ngInject, owner, wizaction, define, dict, export, externs, implicitCast, noalias, nocollapse, nocompile, noinline, nosideeffects, polymer, polymerBehavior, preserve, struct, suppress, unrestricted, category, ignore, author, version, variation, since, deprecated, todo
|
|
20734
|
+
// Message: Tags are not in the prescribed order: summary, typeSummary, module, exports, file, fileoverview, overview, typedef, interface, record, template, name, kind, type, alias, external, host, callback, func, function, method, class, constructor, modifies, mixes, mixin, mixinClass, mixinFunction, namespace, borrows, constructs, lends, implements, requires, desc, description, classdesc, tutorial, copyright, license, internal, const, constant, final, global, readonly, abstract, virtual, var, member, memberof, memberof!, inner, instance, inheritdoc, inheritDoc, override, hideconstructor, param, arg, argument, prop, property, return, returns, async, generator, default, defaultvalue, enum, augments, extends, throws, exception, yield, yields, event, fires, emits, listens, this, static, private, protected, public, access, package, -other, see, example, closurePrimitive, customElement, expose, hidden, idGenerator, meaning, ngInject, owner, wizaction, define, dict, export, externs, implicitCast, noalias, nocollapse, nocompile, noinline, nosideeffects, polymer, polymerBehavior, preserve, struct, suppress, unrestricted, category, ignore, author, version, variation, since, deprecated, todo
|
|
20698
20735
|
|
|
20699
20736
|
/**
|
|
20700
20737
|
* @xyz
|
|
@@ -20705,7 +20742,7 @@ function quux () {}
|
|
|
20705
20742
|
*/
|
|
20706
20743
|
function quux () {}
|
|
20707
20744
|
// "jsdoc/sort-tags": ["error"|"warn", {"alphabetizeExtras":true}]
|
|
20708
|
-
// Message: Tags are not in the prescribed order: summary, typeSummary, module, exports, file, fileoverview, overview, typedef, interface, record, template, name, kind, type, alias, external, host, callback, func, function, method, class, constructor, modifies, mixes, mixin, mixinClass, mixinFunction, namespace, borrows, constructs, lends, implements, requires, desc, description, classdesc, tutorial, copyright, license, const, constant, final, global, readonly, abstract, virtual, var, member, memberof, memberof!, inner, instance, inheritdoc, inheritDoc, override, hideconstructor, param, arg, argument, prop, property, return, returns, async, generator, default, defaultvalue, enum, augments, extends, throws, exception, yield, yields, event, fires, emits, listens, this, static, private, protected, public, access, package, -other, see, example, closurePrimitive, customElement, expose, hidden, idGenerator, meaning, ngInject, owner, wizaction, define, dict, export, externs, implicitCast, noalias, nocollapse, nocompile, noinline, nosideeffects, polymer, polymerBehavior, preserve, struct, suppress, unrestricted, category, ignore, author, version, variation, since, deprecated, todo
|
|
20745
|
+
// Message: Tags are not in the prescribed order: summary, typeSummary, module, exports, file, fileoverview, overview, typedef, interface, record, template, name, kind, type, alias, external, host, callback, func, function, method, class, constructor, modifies, mixes, mixin, mixinClass, mixinFunction, namespace, borrows, constructs, lends, implements, requires, desc, description, classdesc, tutorial, copyright, license, internal, const, constant, final, global, readonly, abstract, virtual, var, member, memberof, memberof!, inner, instance, inheritdoc, inheritDoc, override, hideconstructor, param, arg, argument, prop, property, return, returns, async, generator, default, defaultvalue, enum, augments, extends, throws, exception, yield, yields, event, fires, emits, listens, this, static, private, protected, public, access, package, -other, see, example, closurePrimitive, customElement, expose, hidden, idGenerator, meaning, ngInject, owner, wizaction, define, dict, export, externs, implicitCast, noalias, nocollapse, nocompile, noinline, nosideeffects, polymer, polymerBehavior, preserve, struct, suppress, unrestricted, category, ignore, author, version, variation, since, deprecated, todo
|
|
20709
20746
|
|
|
20710
20747
|
/**
|
|
20711
20748
|
* @param b A long
|
|
@@ -20713,7 +20750,7 @@ function quux () {}
|
|
|
20713
20750
|
* @module
|
|
20714
20751
|
*/
|
|
20715
20752
|
function quux () {}
|
|
20716
|
-
// Message: Tags are not in the prescribed order: summary, typeSummary, module, exports, file, fileoverview, overview, typedef, interface, record, template, name, kind, type, alias, external, host, callback, func, function, method, class, constructor, modifies, mixes, mixin, mixinClass, mixinFunction, namespace, borrows, constructs, lends, implements, requires, desc, description, classdesc, tutorial, copyright, license, const, constant, final, global, readonly, abstract, virtual, var, member, memberof, memberof!, inner, instance, inheritdoc, inheritDoc, override, hideconstructor, param, arg, argument, prop, property, return, returns, async, generator, default, defaultvalue, enum, augments, extends, throws, exception, yield, yields, event, fires, emits, listens, this, static, private, protected, public, access, package, -other, see, example, closurePrimitive, customElement, expose, hidden, idGenerator, meaning, ngInject, owner, wizaction, define, dict, export, externs, implicitCast, noalias, nocollapse, nocompile, noinline, nosideeffects, polymer, polymerBehavior, preserve, struct, suppress, unrestricted, category, ignore, author, version, variation, since, deprecated, todo
|
|
20753
|
+
// Message: Tags are not in the prescribed order: summary, typeSummary, module, exports, file, fileoverview, overview, typedef, interface, record, template, name, kind, type, alias, external, host, callback, func, function, method, class, constructor, modifies, mixes, mixin, mixinClass, mixinFunction, namespace, borrows, constructs, lends, implements, requires, desc, description, classdesc, tutorial, copyright, license, internal, const, constant, final, global, readonly, abstract, virtual, var, member, memberof, memberof!, inner, instance, inheritdoc, inheritDoc, override, hideconstructor, param, arg, argument, prop, property, return, returns, async, generator, default, defaultvalue, enum, augments, extends, throws, exception, yield, yields, event, fires, emits, listens, this, static, private, protected, public, access, package, -other, see, example, closurePrimitive, customElement, expose, hidden, idGenerator, meaning, ngInject, owner, wizaction, define, dict, export, externs, implicitCast, noalias, nocollapse, nocompile, noinline, nosideeffects, polymer, polymerBehavior, preserve, struct, suppress, unrestricted, category, ignore, author, version, variation, since, deprecated, todo
|
|
20717
20754
|
````
|
|
20718
20755
|
|
|
20719
20756
|
The following patterns are not considered problems:
|
package/dist/defaultTagOrder.js
CHANGED
|
@@ -10,7 +10,8 @@ const defaultTagOrder = [// Brief descriptions
|
|
|
10
10
|
'typedef', 'interface', 'record', 'template', 'name', 'kind', 'type', 'alias', 'external', 'host', 'callback', 'func', 'function', 'method', 'class', 'constructor', // Relationships
|
|
11
11
|
'modifies', 'mixes', 'mixin', 'mixinClass', 'mixinFunction', 'namespace', 'borrows', 'constructs', 'lends', 'implements', 'requires', // Long descriptions
|
|
12
12
|
'desc', 'description', 'classdesc', 'tutorial', 'copyright', 'license', // Simple annotations
|
|
13
|
-
|
|
13
|
+
// TypeScript
|
|
14
|
+
'internal', 'const', 'constant', 'final', 'global', 'readonly', 'abstract', 'virtual', 'var', 'member', 'memberof', 'memberof!', 'inner', 'instance', 'inheritdoc', 'inheritDoc', 'override', 'hideconstructor', // Core function/object info
|
|
14
15
|
'param', 'arg', 'argument', 'prop', 'property', 'return', 'returns', // Important behavior details
|
|
15
16
|
'async', 'generator', 'default', 'defaultvalue', 'enum', 'augments', 'extends', 'throws', 'exception', 'yield', 'yields', 'event', 'fires', 'emits', 'listens', 'this', // Access
|
|
16
17
|
'static', 'private', 'protected', 'public', 'access', 'package', '-other', // Supplementary descriptions
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../src/defaultTagOrder.js"],"names":["defaultTagOrder"],"mappings":";;;;;;AAAA,MAAMA,eAAe,GAAG,CACtB;AACA,SAFsB,EAGtB,aAHsB,EAKtB;AACA,QANsB,EAOtB,SAPsB,EAQtB,MARsB,EAStB,cATsB,EAUtB,UAVsB,EAYtB;AACA,SAbsB,EActB,WAdsB,EAetB,QAfsB,EAgBtB,UAhBsB,EAiBtB,MAjBsB,EAkBtB,MAlBsB,EAmBtB,MAnBsB,EAoBtB,OApBsB,EAqBtB,UArBsB,EAsBtB,MAtBsB,EAuBtB,UAvBsB,EAwBtB,MAxBsB,EAyBtB,UAzBsB,EA0BtB,QA1BsB,EA2BtB,OA3BsB,EA4BtB,aA5BsB,EA8BtB;AACA,UA/BsB,EAgCtB,OAhCsB,EAiCtB,OAjCsB,EAkCtB,YAlCsB,EAmCtB,eAnCsB,EAoCtB,WApCsB,EAqCtB,SArCsB,EAsCtB,YAtCsB,EAuCtB,OAvCsB,EAwCtB,YAxCsB,EAyCtB,UAzCsB,EA2CtB;AACA,MA5CsB,EA6CtB,aA7CsB,EA8CtB,WA9CsB,EA+CtB,UA/CsB,EAgDtB,WAhDsB,EAiDtB,SAjDsB,EAmDtB;AACA,
|
|
1
|
+
{"version":3,"sources":["../src/defaultTagOrder.js"],"names":["defaultTagOrder"],"mappings":";;;;;;AAAA,MAAMA,eAAe,GAAG,CACtB;AACA,SAFsB,EAGtB,aAHsB,EAKtB;AACA,QANsB,EAOtB,SAPsB,EAQtB,MARsB,EAStB,cATsB,EAUtB,UAVsB,EAYtB;AACA,SAbsB,EActB,WAdsB,EAetB,QAfsB,EAgBtB,UAhBsB,EAiBtB,MAjBsB,EAkBtB,MAlBsB,EAmBtB,MAnBsB,EAoBtB,OApBsB,EAqBtB,UArBsB,EAsBtB,MAtBsB,EAuBtB,UAvBsB,EAwBtB,MAxBsB,EAyBtB,UAzBsB,EA0BtB,QA1BsB,EA2BtB,OA3BsB,EA4BtB,aA5BsB,EA8BtB;AACA,UA/BsB,EAgCtB,OAhCsB,EAiCtB,OAjCsB,EAkCtB,YAlCsB,EAmCtB,eAnCsB,EAoCtB,WApCsB,EAqCtB,SArCsB,EAsCtB,YAtCsB,EAuCtB,OAvCsB,EAwCtB,YAxCsB,EAyCtB,UAzCsB,EA2CtB;AACA,MA5CsB,EA6CtB,aA7CsB,EA8CtB,WA9CsB,EA+CtB,UA/CsB,EAgDtB,WAhDsB,EAiDtB,SAjDsB,EAmDtB;AAEA;AACA,UAtDsB,EAwDtB,OAxDsB,EAyDtB,UAzDsB,EA0DtB,OA1DsB,EA2DtB,QA3DsB,EA4DtB,UA5DsB,EA6DtB,UA7DsB,EA8DtB,SA9DsB,EA+DtB,KA/DsB,EAgEtB,QAhEsB,EAiEtB,UAjEsB,EAkEtB,WAlEsB,EAmEtB,OAnEsB,EAoEtB,UApEsB,EAqEtB,YArEsB,EAsEtB,YAtEsB,EAuEtB,UAvEsB,EAwEtB,iBAxEsB,EA0EtB;AACA,OA3EsB,EA4EtB,KA5EsB,EA6EtB,UA7EsB,EA8EtB,MA9EsB,EA+EtB,UA/EsB,EAgFtB,QAhFsB,EAiFtB,SAjFsB,EAmFtB;AACA,OApFsB,EAqFtB,WArFsB,EAsFtB,SAtFsB,EAuFtB,cAvFsB,EAwFtB,MAxFsB,EAyFtB,UAzFsB,EA0FtB,SA1FsB,EA2FtB,QA3FsB,EA4FtB,WA5FsB,EA6FtB,OA7FsB,EA8FtB,QA9FsB,EA+FtB,OA/FsB,EAgGtB,OAhGsB,EAiGtB,OAjGsB,EAkGtB,SAlGsB,EAmGtB,MAnGsB,EAqGtB;AACA,QAtGsB,EAuGtB,SAvGsB,EAwGtB,WAxGsB,EAyGtB,QAzGsB,EA0GtB,QA1GsB,EA2GtB,SA3GsB,EA6GtB,QA7GsB,EA+GtB;AACA,KAhHsB,EAiHtB,SAjHsB,EAmHtB;AAEA;AACA,kBAtHsB,EAuHtB,eAvHsB,EAwHtB,QAxHsB,EAyHtB,QAzHsB,EA0HtB,aA1HsB,EA2HtB,SA3HsB,EA4HtB,UA5HsB,EA6HtB,OA7HsB,EA8HtB,WA9HsB,EAgItB;AACA,QAjIsB,EAkItB,MAlIsB,EAmItB,QAnIsB,EAoItB,SApIsB,EAqItB,cArIsB,EAsItB,SAtIsB,EAuItB,YAvIsB,EAwItB,WAxIsB,EAyItB,UAzIsB,EA0ItB,eA1IsB,EA2ItB,SA3IsB,EA4ItB,iBA5IsB,EA6ItB,UA7IsB,EA8ItB,QA9IsB,EA+ItB,UA/IsB,EAgJtB,cAhJsB,EAkJtB;AACA,UAnJsB,EAqJtB;AACA,QAtJsB,EAuJtB,QAvJsB,EAwJtB,SAxJsB,EAyJtB,WAzJsB,EA0JtB,OA1JsB,EA2JtB,YA3JsB,EA4JtB,MA5JsB,CAAxB;eA+JeA,e","sourcesContent":["const defaultTagOrder = [\n // Brief descriptions\n 'summary',\n 'typeSummary',\n\n // Module/file-level\n 'module',\n 'exports',\n 'file',\n 'fileoverview',\n 'overview',\n\n // Identifying (name, type)\n 'typedef',\n 'interface',\n 'record',\n 'template',\n 'name',\n 'kind',\n 'type',\n 'alias',\n 'external',\n 'host',\n 'callback',\n 'func',\n 'function',\n 'method',\n 'class',\n 'constructor',\n\n // Relationships\n 'modifies',\n 'mixes',\n 'mixin',\n 'mixinClass',\n 'mixinFunction',\n 'namespace',\n 'borrows',\n 'constructs',\n 'lends',\n 'implements',\n 'requires',\n\n // Long descriptions\n 'desc',\n 'description',\n 'classdesc',\n 'tutorial',\n 'copyright',\n 'license',\n\n // Simple annotations\n\n // TypeScript\n 'internal',\n\n 'const',\n 'constant',\n 'final',\n 'global',\n 'readonly',\n 'abstract',\n 'virtual',\n 'var',\n 'member',\n 'memberof',\n 'memberof!',\n 'inner',\n 'instance',\n 'inheritdoc',\n 'inheritDoc',\n 'override',\n 'hideconstructor',\n\n // Core function/object info\n 'param',\n 'arg',\n 'argument',\n 'prop',\n 'property',\n 'return',\n 'returns',\n\n // Important behavior details\n 'async',\n 'generator',\n 'default',\n 'defaultvalue',\n 'enum',\n 'augments',\n 'extends',\n 'throws',\n 'exception',\n 'yield',\n 'yields',\n 'event',\n 'fires',\n 'emits',\n 'listens',\n 'this',\n\n // Access\n 'static',\n 'private',\n 'protected',\n 'public',\n 'access',\n 'package',\n\n '-other',\n\n // Supplementary descriptions\n 'see',\n 'example',\n\n // METADATA\n\n // Other Closure (undocumented) metadata\n 'closurePrimitive',\n 'customElement',\n 'expose',\n 'hidden',\n 'idGenerator',\n 'meaning',\n 'ngInject',\n 'owner',\n 'wizaction',\n\n // Other Closure (documented) metadata\n 'define',\n 'dict',\n 'export',\n 'externs',\n 'implicitCast',\n 'noalias',\n 'nocollapse',\n 'nocompile',\n 'noinline',\n 'nosideeffects',\n 'polymer',\n 'polymerBehavior',\n 'preserve',\n 'struct',\n 'suppress',\n 'unrestricted',\n\n // @homer0/prettier-plugin-jsdoc metadata\n 'category',\n\n // Non-Closure metadata\n 'ignore',\n 'author',\n 'version',\n 'variation',\n 'since',\n 'deprecated',\n 'todo',\n];\n\nexport default defaultTagOrder;\n"],"file":"defaultTagOrder.js"}
|
|
@@ -88,7 +88,9 @@ const getDefaultTagStructureForMode = mode => {
|
|
|
88
88
|
['nameContents', 'namepath-defining'], // See `external`
|
|
89
89
|
['nameRequired', true], ['typeAllowed', false]])], ['interface', new Map([// Allows for "name" in signature, but indicates as optional
|
|
90
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]])], ['
|
|
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
|
|
92
94
|
// "typeExpression"
|
|
93
95
|
['typeRequired', true]])], ['lends', new Map([// Signature seems to require a "namepath" (and no counter-examples)
|
|
94
96
|
['nameContents', 'namepath-referencing'], // "namepath"
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../src/getDefaultTagStructureForMode.js"],"names":["getDefaultTagStructureForMode","mode","isJsdoc","isClosure","isTypescript","isPermissive","isJsdocOrPermissive","isJsdocOrTypescript","isTypescriptOrClosure","isClosureOrPermissive","isJsdocTypescriptOrPermissive","Map"],"mappings":";;;;;;;AAAA,MAAMA,6BAA6B,GAAIC,IAAD,IAAU;AAC9C,QAAMC,OAAO,GAAGD,IAAI,KAAK,OAAzB;AACA,QAAME,SAAS,GAAGF,IAAI,KAAK,SAA3B;AACA,QAAMG,YAAY,GAAGH,IAAI,KAAK,YAA9B;AACA,QAAMI,YAAY,GAAGJ,IAAI,KAAK,YAA9B;AAEA,QAAMK,mBAAmB,GAAGJ,OAAO,IAAIG,YAAvC;AACA,QAAME,mBAAmB,GAAGL,OAAO,IAAIE,YAAvC;AACA,QAAMI,qBAAqB,GAAGJ,YAAY,IAAID,SAA9C;AACA,QAAMM,qBAAqB,GAAGN,SAAS,IAAIE,YAA3C;AACA,QAAMK,6BAA6B,GAAGH,mBAAmB,IAAIF,YAA7D,CAV8C,CAY9C;AACA;AACA;AACA;AACA;AACA;AAEA;AACA;AACA;AACA;AACA;AAEA;AACA;AAEA;AACA;AACA;AACA;AAEA;AACA;AAEA;AACA;AACA;AACA;AACA;;AAEA,SAAO,IAAIM,GAAJ,CAAQ,CACb,CACE,OADF,EACW,IAAIA,GAAJ,CAAQ,CACf;AACA,GACE,cADF,EACkB,sBADlB,CAFe,EAMf;AACA,GACE,oBADF,EACwB,IADxB,CAPe,CAAR,CADX,CADa,EAeb,CACE,KADF,EACS,IAAIA,GAAJ,CAAQ,CACb,CACE,cADF,EACkB,mBADlB,CADa,EAKb;AACA,GACE,cADF,EACkB,IADlB,CANa,EAUb;AACA;AACA,GACE,aADF,EACiB,IADjB,CAZa,CAAR,CADT,CAfa,EAkCb,CACE,UADF,EACc,IAAIA,GAAJ,CAAQ,CAClB,CACE,cADF,EACkB,mBADlB,CADkB,EAKlB;AACA,GACE,cADF,EACkB,IADlB,CANkB,EAUlB;AACA;AACA,GACE,aADF,EACiB,IADjB,CAZkB,CAAR,CADd,CAlCa,EAqDb,CACE,UADF,EACc,IAAIA,GAAJ,CAAQ,CAClB;AACA,GACE,cADF,EACkB,sBADlB,CAFkB,EAMlB;AACA,GACE,aADF,EACiB,IADjB,CAPkB,EAWlB;AACA,GACE,oBADF,EACwB,IADxB,CAZkB,CAAR,CADd,CArDa,EAwEb,CACE,SADF,EACa,IAAIA,GAAJ,CAAQ,CACjB;AACA;AACA,GACE,cADF,EACkB,sBADlB,CAHiB,EAOjB;AACA,GACE,oBADF,EACwB,IADxB,CARiB,CAAR,CADb,CAxEa,EAuFb,CACE,UADF,EACc,IAAIA,GAAJ,CAAQ,CAClB;AACA;AACA;AACA,GACE,cADF,EACkB,mBADlB,CAJkB,EAQlB;AACA,GACE,cADF,EACkB,IADlB,CATkB,CAAR,CADd,CAvFa,EAuGb,CACE,OADF,EACW,IAAIA,GAAJ,CAAQ,CACf;AACA,GACE,cADF,EACkB,mBADlB,CAFe,EAMf;AACA,GACE,aADF,EACiB,IADjB,CAPe,EAWf,CACE,aADF,EACiB,IADjB,CAXe,CAAR,CADX,CAvGa,EAyHb,CACE,OADF,EACW,IAAIA,GAAJ,CAAQ,CACf;AACA,GACE,cADF,EACkB,mBADlB,CAFe,EAMf,CACE,aADF,EACiB,IADjB,CANe,CAAR,CADX,CAzHa,EAqIb,CACE,UADF,EACc,IAAIA,GAAJ,CAAQ,CAClB;AACA,GACE,cADF,EACkB,mBADlB,CAFkB,EAMlB,CACE,aADF,EACiB,IADjB,CANkB,CAAR,CADd,CArIa,EAiJb,CACE,aADF,EACiB,IAAIA,GAAJ,CAAQ,CACrB;AACA,GACE,cADF,EACkB,mBADlB,CAFqB,EAMrB,CACE,aADF,EACiB,IADjB,CANqB,CAAR,CADjB,CAjJa,EA8Jb,CACE,YADF,EACgB,IAAIA,GAAJ,CAAQ,CACpB;AACA,GACE,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;AACA,GACE,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;AACA,GACE,aADF,EACiB,IADjB,CAFc,CAAR,CADV,CAxMa,EAiNb,CACE,OADF,EACW,IAAIA,GAAJ,CAAQ,CACf;AACA,GACE,cADF,EACkB,IADlB,CAFe,EAMf;AACA;AACA;AACA,GACE,cADF,EACkB,mBADlB,CATe,CAAR,CADX,CAjNa,EAiOb,CACE,WADF,EACe,IAAIA,GAAJ,CAAQ,CACnB;AACA,GACE,aADF,EACiB,IADjB,CAFmB,CAAR,CADf,CAjOa,EA0Ob;AACA,GACE,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;AACA,GACE,cADF,EACkB,sBADlB,CAFiB,EAMjB;AACA,GACE,aADF,EACiBH,qBAAqB,IAAIH,YAD1C,CAPiB,EAWjB,CACE,cADF,EACkBH,OADlB,CAXiB,EAejB;AACA,GACE,oBADF,EACwBM,qBAAqB,IAAIH,YADjD,CAhBiB,CAAR,CADb,CAnQa,EA0Rb,CACE,UADF,EACc,IAAIM,GAAJ,CAAQ,CAClB;AACA;AACA;AACA,GACE,cADF,EACkB,mBADlB,CAJkB,EAQlB;AACA,GACE,cADF,EACkB,IADlB,CATkB,EAalB,CACE,aADF,EACiB,KADjB,CAbkB,CAAR,CADd,CA1Ra,EA8Sb,CACE,OADF,EACW,IAAIA,GAAJ,CAAQ,CACf;AACA;AACA,GACE,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;AACA,GACE,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;AACA,GACE,cADF,EACkB,mBADlB,CAFc,CAAR,CADV,CAhVa,EAyVb,CACE,MADF,EACU,IAAIA,GAAJ,CAAQ,CACd;AACA;AACA;AACA,GACE,cADF,EACkB,mBADlB,CAJc,EAQd;AACA,GACE,cADF,EACkB,IADlB,CATc,EAad,CACE,aADF,EACiB,KADjB,CAbc,CAAR,CADV,CAzVa,EA6Wb,CACE,WADF,EACe,IAAIA,GAAJ,CAAQ,CACnB;AACA,GACE,cADF,EAEED,6BAA6B,GAAG,mBAAH,GAAyB,KAFxD,CAFmB,EAOnB;AACA,GACE,aADF,EACiBP,SADjB,CARmB,EAYnB,CACE,aADF,EACiB,KADjB,CAZmB,CAAR,CADf,CA7Wa,EAgYb,CACE,YADF,EACgB,IAAIQ,GAAJ,CAAQ,CACpB;AACA;AACA,GACE,cADF,EACkB,IADlB,CAHoB,CAAR,CADhB,CAhYa,EA0Yb,CACE,OADF,EACW,IAAIA,GAAJ,CAAQ,CACf;AACA,GACE,cADF,EACkB,sBADlB,CAFe,EAMf;AACA,GACE,oBADF,EACwB,IADxB,CAPe,CAAR,CADX,CA1Ya,EAwZb,CACE,SADF,EACa,IAAIA,GAAJ,CAAQ,CACjB;AACA;AACA,GACE,cADF,EACkB,sBADlB,CAHiB,EAOjB,CACE,cADF,EACkB,IADlB,CAPiB,EAWjB,CACE,aADF,EACiB,KADjB,CAXiB,CAAR,CADb,CAxZa,EA0ab,CACE,QADF,EACY,IAAIA,GAAJ,CAAQ,CAChB;AACA,GACE,cADF,EACkB,mBADlB,CAFgB,EAMhB;AACA,GACE,aADF,EACiB,IADjB,CAPgB,CAAR,CADZ,CA1aa,EAwbb,CACE,UADF,EACc,IAAIA,GAAJ,CAAQ,CAClB;AACA;AACA,GACE,cADF,EACkB,sBADlB,CAHkB,EAOlB;AACA,GACE,oBADF,EACwB,IADxB,CARkB,CAAR,CADd,CAxba,EAscb,CACE,WADF,EACe,IAAIA,GAAJ,CAAQ,CACnB;AACA;AACA,GACE,cADF,EACkB,sBADlB,CAHmB,EAOnB;AACA,GACE,oBADF,EACwB,IADxB,CARmB,CAAR,CADf,CAtca,EAqdb,CACE,QADF,EACY,IAAIA,GAAJ,CAAQ,CAChB;AACA,GACE,cADF,EACkB,mBADlB,CAFgB,CAAR,CADZ,CArda,EA6db,CACE,OADF,EACW,IAAIA,GAAJ,CAAQ,CACf;AACA;AACA,GACE,cADF,EACkB,sBADlB,CAHe,EAOf;AACA,GACE,oBADF,EACwB,IADxB,CARe,CAAR,CADX,CA7da,EA4eb,CACE,OADF,EACW,IAAIA,GAAJ,CAAQ,CACf;AACA,GACE,cADF,EACkB,mBADlB,CAFe,EAMf,CACE,cADF,EACkB,KADlB,CANe,EAUf,CACE,aADF,EACiB,KADjB,CAVe,CAAR,CADX,CA5ea,EA6fb,CACE,UADF,EACc,IAAIA,GAAJ,CAAQ,CAClB;AACA;AACA;AACA,GACE,aADF,EACiB,IADjB,CAJkB,CAAR,CADd,CA7fa,EAwgBb,CACE,QADF,EACY,IAAIA,GAAJ,CAAQ,CAChB;AACA;AACA;AACA,GACE,cADF,EACkBT,OAAO,GAAG,mBAAH,GAAyB,MADlD,CAJgB,EAQhB;AACA,GACE,aADF,EACiB,IADjB,CATgB,CAAR,CADZ,CAxgBa,EAwhBb,CACE,MADF,EACU,IAAIS,GAAJ,CAAQ,CACd;AACA;AACA,GACE,cADF,EACkB,mBADlB,CAHc,EAOd;AACA,GACE,cADF,EACkB,IADlB,CARc,EAYd;AACA,GACE,oBADF,EACwB,IADxB,CAbc,CAAR,CADV,CAxhBa,EA4iBb,CACE,WADF,EACe,IAAIA,GAAJ,CAAQ,CACnB;AACA,GACE,cADF,EACkB,mBADlB,CAFmB,EAMnB;AACA,GACE,aADF,EACiB,IADjB,CAPmB,CAAR,CADf,CA5iBa,EAyjBb,CACE,SADF,EACa,IAAIA,GAAJ,CAAQ,CACjB;AACA;AACA,GACE,aADF,EACiBF,qBADjB,CAHiB,CAAR,CADb,CAzjBa,EAmkBb,CACE,OADF,EACW,IAAIE,GAAJ,CAAQ,CACf,CACE,cADF,EACkB,mBADlB,CADe,EAKf;AACA;AACA;AACA;AACA,GACE,cADF,EACkB,IADlB,CATe,EAaf;AACA;AACA,GACE,aADF,EACiB,IADjB,CAfe,CAAR,CADX,CAnkBa,EAylBb,CACE,SADF,EACa,IAAIA,GAAJ,CAAQ,CACjB;AACA;AACA,GACE,aADF,EACiBF,qBADjB,CAHiB,CAAR,CADb,CAzlBa,EAmmBb,CACE,MADF,EACU,IAAIE,GAAJ,CAAQ,CACd,CACE,cADF,EACkB,mBADlB,CADc,EAKd;AACA,GACE,cADF,EACkB,IADlB,CANc,EAUd;AACA;AACA,GACE,aADF,EACiB,IADjB,CAZc,CAAR,CADV,CAnmBa,EAsnBb,CACE,UADF,EACc,IAAIA,GAAJ,CAAQ,CAClB,CACE,cADF,EACkB,mBADlB,CADkB,EAKlB;AACA;AACA,GACE,cADF,EACkB,IADlB,CAPkB,EAWlB;AACA;AACA,GACE,aADF,EACiB,IADjB,CAbkB,CAAR,CADd,CAtnBa,EA0oBb,CACE,WADF,EACe,IAAIA,GAAJ,CAAQ,CACnB;AACA;AACA,GACE,aADF,EACiBF,qBADjB,CAHmB,CAAR,CADf,CA1oBa,EAopBb,CACE,QADF,EACY,IAAIE,GAAJ,CAAQ,CAChB;AACA,GACE,aADF,EACiBF,qBADjB,CAFgB,CAAR,CADZ,CAppBa,EA6pBb,CACE,UADF,EACc,IAAIE,GAAJ,CAAQ,CAClB;AACA,GACE,cADF,EACkB,sBADlB,CAFkB,EAMlB,CACE,cADF,EACkB,IADlB,CANkB,EAUlB,CACE,aADF,EACiB,KADjB,CAVkB,CAAR,CADd,CA7pBa,EA8qBb,CACE,SADF,EACa,IAAIA,GAAJ,CAAQ,CACjB;AACA,GACE,aADF,EACiB,IADjB,CAFiB,CAAR,CADb,CA9qBa,EAsrBb,CACE,QADF,EACY,IAAIA,GAAJ,CAAQ,CAChB;AACA,GACE,aADF,EACiB,IADjB,CAFgB,CAAR,CADZ,CAtrBa,EA+rBb,CACE,KADF,EACS,IAAIA,GAAJ,CAAQ,CACb;AACA;AACA,GACE,cADF,EACkB,MADlB,CAHa,CAAR,CADT,CA/rBa,EAysBb,CACE,QADF,EACY,IAAIA,GAAJ,CAAQ,CAChB;AACA,GACE,aADF,EACiBF,qBADjB,CAFgB,CAAR,CADZ,CAzsBa,EAktBb,CACE,UADF,EACc,IAAIE,GAAJ,CAAQ,CAClB,CACE,cADF,EACkB,CAACR,SADnB,CADkB,EAIlB,CACE,cADF,EACkBA,SADlB,CAJkB,CAAR,CADd,CAltBa,EA6tBb,CACE,UADF,EACc,IAAIQ,GAAJ,CAAQ,CAClB,CACE,cADF,EACkBT,OAAO,GAAG,MAAH,GAAY,sBADrC,CADkB,EAKlB;AACA;AACA;AACA,GACE,aADF,EACiBM,qBAAqB,IAAIH,YAD1C,CARkB,CAAR,CADd,CA7tBa,EA4uBb,CACE,MADF,EACU,IAAIM,GAAJ,CAAQ,CACd;AACA;AACA,GACE,cADF,EACkBT,OAAO,GAAG,sBAAH,GAA4B,KADrD,CAHc,EAOd,CACE,cADF,EACkBM,qBADlB,CAPc,EAWd;AACA,GACE,oBADF,EACwBN,OADxB,CAZc,CAAR,CADV,CA5uBa,EA+vBb,CACE,QADF,EACY,IAAIS,GAAJ,CAAQ,CAChB;AACA,GACE,aADF,EACiB,IADjB,CAFgB,CAAR,CADZ,CA/vBa,EAwwBb,CACE,UADF,EACc,IAAIA,GAAJ,CAAQ,CAClB;AACA,GACE,cADF,EACkB,IADlB,CAFkB,EAMlB,CACE,aADF,EACiB,KADjB,CANkB,CAAR,CADd,CAxwBa,EAqxBb,CACE,MADF,EACU,IAAIA,GAAJ,CAAQ,CACd;AACA;AACA,GACE,cADF,EACkB,IADlB,CAHc,CAAR,CADV,CArxBa,EA+xBb,CACE,SADF,EACa,IAAIA,GAAJ,CAAQ,CACjB;AACA;AACA,GACE,cADF,EACkB,mBADlB,CAHiB,EAOjB;AACA;AACA;AACA,GACE,cADF,EACkBL,mBADlB,CAViB,EAcjB;AACA;AAEA;AACA,GACE,aADF,EACiB,IADjB,CAlBiB,EAsBjB;AACA;AACA,GACE,oBADF,EACwB,CAACF,YADzB,CAxBiB,CAAR,CADb,CA/xBa,EA8zBb,CACE,KADF,EACS,IAAIO,GAAJ,CAAQ,CACb;AACA,GACE,cADF,EACkB,mBADlB,CAFa,EAMb;AACA,GACE,aADF,EACiB,IADjB,CAPa,CAAR,CADT,CA9zBa,EA40Bb,CACE,QADF,EACY,IAAIA,GAAJ,CAAQ,CAChB;AACA,GACE,aADF,EACiB,IADjB,CAFgB,CAAR,CADZ,CA50Ba,EAo1Bb,CACE,OADF,EACW,IAAIA,GAAJ,CAAQ,CACf;AACA,GACE,aADF,EACiB,IADjB,CAFe,CAAR,CADX,CAp1Ba,CAAR,CAAP;AA61BD,CAv4BD;;eAy4BeX,6B","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 '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"],"file":"getDefaultTagStructureForMode.js"}
|
|
1
|
+
{"version":3,"sources":["../src/getDefaultTagStructureForMode.js"],"names":["getDefaultTagStructureForMode","mode","isJsdoc","isClosure","isTypescript","isPermissive","isJsdocOrPermissive","isJsdocOrTypescript","isTypescriptOrClosure","isClosureOrPermissive","isJsdocTypescriptOrPermissive","Map"],"mappings":";;;;;;;AAAA,MAAMA,6BAA6B,GAAIC,IAAD,IAAU;AAC9C,QAAMC,OAAO,GAAGD,IAAI,KAAK,OAAzB;AACA,QAAME,SAAS,GAAGF,IAAI,KAAK,SAA3B;AACA,QAAMG,YAAY,GAAGH,IAAI,KAAK,YAA9B;AACA,QAAMI,YAAY,GAAGJ,IAAI,KAAK,YAA9B;AAEA,QAAMK,mBAAmB,GAAGJ,OAAO,IAAIG,YAAvC;AACA,QAAME,mBAAmB,GAAGL,OAAO,IAAIE,YAAvC;AACA,QAAMI,qBAAqB,GAAGJ,YAAY,IAAID,SAA9C;AACA,QAAMM,qBAAqB,GAAGN,SAAS,IAAIE,YAA3C;AACA,QAAMK,6BAA6B,GAAGH,mBAAmB,IAAIF,YAA7D,CAV8C,CAY9C;AACA;AACA;AACA;AACA;AACA;AAEA;AACA;AACA;AACA;AACA;AAEA;AACA;AAEA;AACA;AACA;AACA;AAEA;AACA;AAEA;AACA;AACA;AACA;AACA;;AAEA,SAAO,IAAIM,GAAJ,CAAQ,CACb,CACE,OADF,EACW,IAAIA,GAAJ,CAAQ,CACf;AACA,GACE,cADF,EACkB,sBADlB,CAFe,EAMf;AACA,GACE,oBADF,EACwB,IADxB,CAPe,CAAR,CADX,CADa,EAeb,CACE,KADF,EACS,IAAIA,GAAJ,CAAQ,CACb,CACE,cADF,EACkB,mBADlB,CADa,EAKb;AACA,GACE,cADF,EACkB,IADlB,CANa,EAUb;AACA;AACA,GACE,aADF,EACiB,IADjB,CAZa,CAAR,CADT,CAfa,EAkCb,CACE,UADF,EACc,IAAIA,GAAJ,CAAQ,CAClB,CACE,cADF,EACkB,mBADlB,CADkB,EAKlB;AACA,GACE,cADF,EACkB,IADlB,CANkB,EAUlB;AACA;AACA,GACE,aADF,EACiB,IADjB,CAZkB,CAAR,CADd,CAlCa,EAqDb,CACE,UADF,EACc,IAAIA,GAAJ,CAAQ,CAClB;AACA,GACE,cADF,EACkB,sBADlB,CAFkB,EAMlB;AACA,GACE,aADF,EACiB,IADjB,CAPkB,EAWlB;AACA,GACE,oBADF,EACwB,IADxB,CAZkB,CAAR,CADd,CArDa,EAwEb,CACE,SADF,EACa,IAAIA,GAAJ,CAAQ,CACjB;AACA;AACA,GACE,cADF,EACkB,sBADlB,CAHiB,EAOjB;AACA,GACE,oBADF,EACwB,IADxB,CARiB,CAAR,CADb,CAxEa,EAuFb,CACE,UADF,EACc,IAAIA,GAAJ,CAAQ,CAClB;AACA;AACA;AACA,GACE,cADF,EACkB,mBADlB,CAJkB,EAQlB;AACA,GACE,cADF,EACkB,IADlB,CATkB,CAAR,CADd,CAvFa,EAuGb,CACE,OADF,EACW,IAAIA,GAAJ,CAAQ,CACf;AACA,GACE,cADF,EACkB,mBADlB,CAFe,EAMf;AACA,GACE,aADF,EACiB,IADjB,CAPe,EAWf,CACE,aADF,EACiB,IADjB,CAXe,CAAR,CADX,CAvGa,EAyHb,CACE,OADF,EACW,IAAIA,GAAJ,CAAQ,CACf;AACA,GACE,cADF,EACkB,mBADlB,CAFe,EAMf,CACE,aADF,EACiB,IADjB,CANe,CAAR,CADX,CAzHa,EAqIb,CACE,UADF,EACc,IAAIA,GAAJ,CAAQ,CAClB;AACA,GACE,cADF,EACkB,mBADlB,CAFkB,EAMlB,CACE,aADF,EACiB,IADjB,CANkB,CAAR,CADd,CArIa,EAiJb,CACE,aADF,EACiB,IAAIA,GAAJ,CAAQ,CACrB;AACA,GACE,cADF,EACkB,mBADlB,CAFqB,EAMrB,CACE,aADF,EACiB,IADjB,CANqB,CAAR,CADjB,CAjJa,EA8Jb,CACE,YADF,EACgB,IAAIA,GAAJ,CAAQ,CACpB;AACA,GACE,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;AACA,GACE,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;AACA,GACE,aADF,EACiB,IADjB,CAFc,CAAR,CADV,CAxMa,EAiNb,CACE,OADF,EACW,IAAIA,GAAJ,CAAQ,CACf;AACA,GACE,cADF,EACkB,IADlB,CAFe,EAMf;AACA;AACA;AACA,GACE,cADF,EACkB,mBADlB,CATe,CAAR,CADX,CAjNa,EAiOb,CACE,WADF,EACe,IAAIA,GAAJ,CAAQ,CACnB;AACA,GACE,aADF,EACiB,IADjB,CAFmB,CAAR,CADf,CAjOa,EA0Ob;AACA,GACE,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;AACA,GACE,cADF,EACkB,sBADlB,CAFiB,EAMjB;AACA,GACE,aADF,EACiBH,qBAAqB,IAAIH,YAD1C,CAPiB,EAWjB,CACE,cADF,EACkBH,OADlB,CAXiB,EAejB;AACA,GACE,oBADF,EACwBM,qBAAqB,IAAIH,YADjD,CAhBiB,CAAR,CADb,CAnQa,EA0Rb,CACE,UADF,EACc,IAAIM,GAAJ,CAAQ,CAClB;AACA;AACA;AACA,GACE,cADF,EACkB,mBADlB,CAJkB,EAQlB;AACA,GACE,cADF,EACkB,IADlB,CATkB,EAalB,CACE,aADF,EACiB,KADjB,CAbkB,CAAR,CADd,CA1Ra,EA8Sb,CACE,OADF,EACW,IAAIA,GAAJ,CAAQ,CACf;AACA;AACA,GACE,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;AACA,GACE,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;AACA,GACE,cADF,EACkB,mBADlB,CAFc,CAAR,CADV,CAhVa,EAyVb,CACE,MADF,EACU,IAAIA,GAAJ,CAAQ,CACd;AACA;AACA;AACA,GACE,cADF,EACkB,mBADlB,CAJc,EAQd;AACA,GACE,cADF,EACkB,IADlB,CATc,EAad,CACE,aADF,EACiB,KADjB,CAbc,CAAR,CADV,CAzVa,EA6Wb,CACE,WADF,EACe,IAAIA,GAAJ,CAAQ,CACnB;AACA,GACE,cADF,EAEED,6BAA6B,GAAG,mBAAH,GAAyB,KAFxD,CAFmB,EAOnB;AACA,GACE,aADF,EACiBP,SADjB,CARmB,EAYnB,CACE,aADF,EACiB,KADjB,CAZmB,CAAR,CADf,CA7Wa,EAgYb,CACE,UADF,EACc,IAAIQ,GAAJ,CAAQ,CAClB;AACA,GACE,cADF,EACkB,KADlB,CAFkB,EAKlB;AACA,GACE,aADF,EACiB,KADjB,CANkB,CAAR,CADd,CAhYa,EA6Yb,CACE,YADF,EACgB,IAAIA,GAAJ,CAAQ,CACpB;AACA;AACA,GACE,cADF,EACkB,IADlB,CAHoB,CAAR,CADhB,CA7Ya,EAuZb,CACE,OADF,EACW,IAAIA,GAAJ,CAAQ,CACf;AACA,GACE,cADF,EACkB,sBADlB,CAFe,EAMf;AACA,GACE,oBADF,EACwB,IADxB,CAPe,CAAR,CADX,CAvZa,EAqab,CACE,SADF,EACa,IAAIA,GAAJ,CAAQ,CACjB;AACA;AACA,GACE,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;AACA,GACE,cADF,EACkB,mBADlB,CAFgB,EAMhB;AACA,GACE,aADF,EACiB,IADjB,CAPgB,CAAR,CADZ,CAvba,EAqcb,CACE,UADF,EACc,IAAIA,GAAJ,CAAQ,CAClB;AACA;AACA,GACE,cADF,EACkB,sBADlB,CAHkB,EAOlB;AACA,GACE,oBADF,EACwB,IADxB,CARkB,CAAR,CADd,CArca,EAmdb,CACE,WADF,EACe,IAAIA,GAAJ,CAAQ,CACnB;AACA;AACA,GACE,cADF,EACkB,sBADlB,CAHmB,EAOnB;AACA,GACE,oBADF,EACwB,IADxB,CARmB,CAAR,CADf,CAnda,EAkeb,CACE,QADF,EACY,IAAIA,GAAJ,CAAQ,CAChB;AACA,GACE,cADF,EACkB,mBADlB,CAFgB,CAAR,CADZ,CAlea,EA0eb,CACE,OADF,EACW,IAAIA,GAAJ,CAAQ,CACf;AACA;AACA,GACE,cADF,EACkB,sBADlB,CAHe,EAOf;AACA,GACE,oBADF,EACwB,IADxB,CARe,CAAR,CADX,CA1ea,EAyfb,CACE,OADF,EACW,IAAIA,GAAJ,CAAQ,CACf;AACA,GACE,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;AACA;AACA;AACA,GACE,aADF,EACiB,IADjB,CAJkB,CAAR,CADd,CA1gBa,EAqhBb,CACE,QADF,EACY,IAAIA,GAAJ,CAAQ,CAChB;AACA;AACA;AACA,GACE,cADF,EACkBT,OAAO,GAAG,mBAAH,GAAyB,MADlD,CAJgB,EAQhB;AACA,GACE,aADF,EACiB,IADjB,CATgB,CAAR,CADZ,CArhBa,EAqiBb,CACE,MADF,EACU,IAAIS,GAAJ,CAAQ,CACd;AACA;AACA,GACE,cADF,EACkB,mBADlB,CAHc,EAOd;AACA,GACE,cADF,EACkB,IADlB,CARc,EAYd;AACA,GACE,oBADF,EACwB,IADxB,CAbc,CAAR,CADV,CAriBa,EAyjBb,CACE,WADF,EACe,IAAIA,GAAJ,CAAQ,CACnB;AACA,GACE,cADF,EACkB,mBADlB,CAFmB,EAMnB;AACA,GACE,aADF,EACiB,IADjB,CAPmB,CAAR,CADf,CAzjBa,EAskBb,CACE,SADF,EACa,IAAIA,GAAJ,CAAQ,CACjB;AACA;AACA,GACE,aADF,EACiBF,qBADjB,CAHiB,CAAR,CADb,CAtkBa,EAglBb,CACE,OADF,EACW,IAAIE,GAAJ,CAAQ,CACf,CACE,cADF,EACkB,mBADlB,CADe,EAKf;AACA;AACA;AACA;AACA,GACE,cADF,EACkB,IADlB,CATe,EAaf;AACA;AACA,GACE,aADF,EACiB,IADjB,CAfe,CAAR,CADX,CAhlBa,EAsmBb,CACE,SADF,EACa,IAAIA,GAAJ,CAAQ,CACjB;AACA;AACA,GACE,aADF,EACiBF,qBADjB,CAHiB,CAAR,CADb,CAtmBa,EAgnBb,CACE,MADF,EACU,IAAIE,GAAJ,CAAQ,CACd,CACE,cADF,EACkB,mBADlB,CADc,EAKd;AACA,GACE,cADF,EACkB,IADlB,CANc,EAUd;AACA;AACA,GACE,aADF,EACiB,IADjB,CAZc,CAAR,CADV,CAhnBa,EAmoBb,CACE,UADF,EACc,IAAIA,GAAJ,CAAQ,CAClB,CACE,cADF,EACkB,mBADlB,CADkB,EAKlB;AACA;AACA,GACE,cADF,EACkB,IADlB,CAPkB,EAWlB;AACA;AACA,GACE,aADF,EACiB,IADjB,CAbkB,CAAR,CADd,CAnoBa,EAupBb,CACE,WADF,EACe,IAAIA,GAAJ,CAAQ,CACnB;AACA;AACA,GACE,aADF,EACiBF,qBADjB,CAHmB,CAAR,CADf,CAvpBa,EAiqBb,CACE,QADF,EACY,IAAIE,GAAJ,CAAQ,CAChB;AACA,GACE,aADF,EACiBF,qBADjB,CAFgB,CAAR,CADZ,CAjqBa,EA0qBb,CACE,UADF,EACc,IAAIE,GAAJ,CAAQ,CAClB;AACA,GACE,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;AACA,GACE,aADF,EACiB,IADjB,CAFiB,CAAR,CADb,CA3rBa,EAmsBb,CACE,QADF,EACY,IAAIA,GAAJ,CAAQ,CAChB;AACA,GACE,aADF,EACiB,IADjB,CAFgB,CAAR,CADZ,CAnsBa,EA4sBb,CACE,KADF,EACS,IAAIA,GAAJ,CAAQ,CACb;AACA;AACA,GACE,cADF,EACkB,MADlB,CAHa,CAAR,CADT,CA5sBa,EAstBb,CACE,QADF,EACY,IAAIA,GAAJ,CAAQ,CAChB;AACA,GACE,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;AACA;AACA;AACA,GACE,aADF,EACiBM,qBAAqB,IAAIH,YAD1C,CARkB,CAAR,CADd,CA1uBa,EAyvBb,CACE,MADF,EACU,IAAIM,GAAJ,CAAQ,CACd;AACA;AACA,GACE,cADF,EACkBT,OAAO,GAAG,sBAAH,GAA4B,KADrD,CAHc,EAOd,CACE,cADF,EACkBM,qBADlB,CAPc,EAWd;AACA,GACE,oBADF,EACwBN,OADxB,CAZc,CAAR,CADV,CAzvBa,EA4wBb,CACE,QADF,EACY,IAAIS,GAAJ,CAAQ,CAChB;AACA,GACE,aADF,EACiB,IADjB,CAFgB,CAAR,CADZ,CA5wBa,EAqxBb,CACE,UADF,EACc,IAAIA,GAAJ,CAAQ,CAClB;AACA,GACE,cADF,EACkB,IADlB,CAFkB,EAMlB,CACE,aADF,EACiB,KADjB,CANkB,CAAR,CADd,CArxBa,EAkyBb,CACE,MADF,EACU,IAAIA,GAAJ,CAAQ,CACd;AACA;AACA,GACE,cADF,EACkB,IADlB,CAHc,CAAR,CADV,CAlyBa,EA4yBb,CACE,SADF,EACa,IAAIA,GAAJ,CAAQ,CACjB;AACA;AACA,GACE,cADF,EACkB,mBADlB,CAHiB,EAOjB;AACA;AACA;AACA,GACE,cADF,EACkBL,mBADlB,CAViB,EAcjB;AACA;AAEA;AACA,GACE,aADF,EACiB,IADjB,CAlBiB,EAsBjB;AACA;AACA,GACE,oBADF,EACwB,CAACF,YADzB,CAxBiB,CAAR,CADb,CA5yBa,EA20Bb,CACE,KADF,EACS,IAAIO,GAAJ,CAAQ,CACb;AACA,GACE,cADF,EACkB,mBADlB,CAFa,EAMb;AACA,GACE,aADF,EACiB,IADjB,CAPa,CAAR,CADT,CA30Ba,EAy1Bb,CACE,QADF,EACY,IAAIA,GAAJ,CAAQ,CAChB;AACA,GACE,aADF,EACiB,IADjB,CAFgB,CAAR,CADZ,CAz1Ba,EAi2Bb,CACE,OADF,EACW,IAAIA,GAAJ,CAAQ,CACf;AACA,GACE,aADF,EACiB,IADjB,CAFe,CAAR,CADX,CAj2Ba,CAAR,CAAP;AA02BD,CAp5BD;;eAs5BeX,6B","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"],"file":"getDefaultTagStructureForMode.js"}
|
package/dist/rules/checkTypes.js
CHANGED
|
@@ -76,10 +76,19 @@ var _default = (0, _iterateJsdoc.default)(({
|
|
|
76
76
|
return utils.tagMightHaveTypePosition(tag.tag);
|
|
77
77
|
});
|
|
78
78
|
const {
|
|
79
|
-
preferredTypes,
|
|
79
|
+
preferredTypes: preferredTypesOriginal,
|
|
80
80
|
structuredTags,
|
|
81
81
|
mode
|
|
82
82
|
} = settings;
|
|
83
|
+
const injectObjectPreferredTypes = !('Object' in preferredTypesOriginal || 'object' in preferredTypesOriginal || 'object.<>' in preferredTypesOriginal || 'Object.<>' in preferredTypesOriginal || 'object<>' in preferredTypesOriginal);
|
|
84
|
+
const preferredTypes = { ...(injectObjectPreferredTypes ? {
|
|
85
|
+
Object: 'object',
|
|
86
|
+
'object.<>': 'Object<>',
|
|
87
|
+
'Object.<>': 'Object<>',
|
|
88
|
+
'object<>': 'Object<>'
|
|
89
|
+
} : {}),
|
|
90
|
+
...preferredTypesOriginal
|
|
91
|
+
};
|
|
83
92
|
const {
|
|
84
93
|
noDefaults,
|
|
85
94
|
unifyParentAndChildTypeChecks,
|
|
@@ -100,47 +109,43 @@ var _default = (0, _iterateJsdoc.default)(({
|
|
|
100
109
|
let hasMatchingPreferredType = false;
|
|
101
110
|
let isGenericMatch = false;
|
|
102
111
|
let typeName = typeNodeName;
|
|
112
|
+
const isNameOfGeneric = parentNode !== undefined && parentNode.type === 'JsdocTypeGeneric' && property === 'left';
|
|
103
113
|
|
|
104
|
-
if (
|
|
105
|
-
|
|
106
|
-
|
|
107
|
-
if (unifyParentAndChildTypeChecks || isNameOfGeneric) {
|
|
108
|
-
var _parentNode$meta, _parentNode$meta2;
|
|
114
|
+
if (unifyParentAndChildTypeChecks || isNameOfGeneric) {
|
|
115
|
+
var _parentNode$meta, _parentNode$meta2;
|
|
109
116
|
|
|
110
|
-
|
|
111
|
-
|
|
117
|
+
const brackets = parentNode === null || parentNode === void 0 ? void 0 : (_parentNode$meta = parentNode.meta) === null || _parentNode$meta === void 0 ? void 0 : _parentNode$meta.brackets;
|
|
118
|
+
const dot = parentNode === null || parentNode === void 0 ? void 0 : (_parentNode$meta2 = parentNode.meta) === null || _parentNode$meta2 === void 0 ? void 0 : _parentNode$meta2.dot;
|
|
112
119
|
|
|
113
|
-
|
|
114
|
-
|
|
115
|
-
|
|
116
|
-
|
|
117
|
-
|
|
118
|
-
|
|
119
|
-
|
|
120
|
+
if (brackets === 'angle') {
|
|
121
|
+
const checkPostFixes = dot ? ['.', '.<>'] : ['<>'];
|
|
122
|
+
isGenericMatch = checkPostFixes.some(checkPostFix => {
|
|
123
|
+
if ((preferredTypes === null || preferredTypes === void 0 ? void 0 : preferredTypes[typeNodeName + checkPostFix]) !== undefined) {
|
|
124
|
+
typeName += checkPostFix;
|
|
125
|
+
return true;
|
|
126
|
+
}
|
|
120
127
|
|
|
121
|
-
|
|
122
|
-
|
|
123
|
-
|
|
128
|
+
return false;
|
|
129
|
+
});
|
|
130
|
+
}
|
|
124
131
|
|
|
125
|
-
|
|
126
|
-
|
|
127
|
-
|
|
128
|
-
|
|
129
|
-
|
|
130
|
-
|
|
131
|
-
|
|
132
|
+
if (!isGenericMatch && property) {
|
|
133
|
+
const checkPostFixes = dot ? ['.', '.<>'] : [brackets === 'angle' ? '<>' : '[]'];
|
|
134
|
+
isGenericMatch = checkPostFixes.some(checkPostFix => {
|
|
135
|
+
if ((preferredTypes === null || preferredTypes === void 0 ? void 0 : preferredTypes[checkPostFix]) !== undefined) {
|
|
136
|
+
typeName = checkPostFix;
|
|
137
|
+
return true;
|
|
138
|
+
}
|
|
132
139
|
|
|
133
|
-
|
|
134
|
-
|
|
135
|
-
}
|
|
140
|
+
return false;
|
|
141
|
+
});
|
|
136
142
|
}
|
|
137
|
-
|
|
138
|
-
const directNameMatch = (preferredTypes === null || preferredTypes === void 0 ? void 0 : preferredTypes[typeNodeName]) !== undefined && !Object.values(preferredTypes).includes(typeNodeName);
|
|
139
|
-
const unifiedSyntaxParentMatch = property && directNameMatch && unifyParentAndChildTypeChecks;
|
|
140
|
-
isGenericMatch = isGenericMatch || unifiedSyntaxParentMatch;
|
|
141
|
-
hasMatchingPreferredType = isGenericMatch || directNameMatch && !property;
|
|
142
143
|
}
|
|
143
144
|
|
|
145
|
+
const directNameMatch = (preferredTypes === null || preferredTypes === void 0 ? void 0 : preferredTypes[typeNodeName]) !== undefined && !Object.values(preferredTypes).includes(typeNodeName);
|
|
146
|
+
const unifiedSyntaxParentMatch = property && directNameMatch && unifyParentAndChildTypeChecks;
|
|
147
|
+
isGenericMatch = isGenericMatch || unifiedSyntaxParentMatch;
|
|
148
|
+
hasMatchingPreferredType = isGenericMatch || directNameMatch && !property;
|
|
144
149
|
return [hasMatchingPreferredType, typeName, isGenericMatch];
|
|
145
150
|
};
|
|
146
151
|
/**
|
|
@@ -159,8 +164,7 @@ var _default = (0, _iterateJsdoc.default)(({
|
|
|
159
164
|
let changedPreferred = preferred;
|
|
160
165
|
|
|
161
166
|
for (const strictNativeType of strictNativeTypes) {
|
|
162
|
-
if (
|
|
163
|
-
strictNativeType === 'object' && mode === 'typescript' && ( // This is not set to remap with exact type match (e.g.,
|
|
167
|
+
if (strictNativeType === 'object' && ( // This is not set to remap with exact type match (e.g.,
|
|
164
168
|
// `object: 'Object'`), so can ignore (including if circular)
|
|
165
169
|
!(preferredTypes !== null && preferredTypes !== void 0 && preferredTypes[typeNodeName]) || // Although present on `preferredTypes` for remapping, this is a
|
|
166
170
|
// parent object without a parent match (and not
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../../src/rules/checkTypes.js"],"names":["strictNativeTypes","adjustNames","type","preferred","isGenericMatch","typeNodeName","node","parentNode","ret","meta","brackets","dot","dotBracketEnd","match","slice","length","bracketEnd","endsWith","value","replace","jsdocNode","sourceCode","report","utils","settings","context","jsdocTagsWithPossibleType","filterTags","tag","tagMightHaveTypePosition","preferredTypes","structuredTags","mode","noDefaults","unifyParentAndChildTypeChecks","exemptTagContexts","options","getPreferredTypeInfo","_type","property","hasMatchingPreferredType","typeName","Object","keys","isNameOfGeneric","undefined","checkPostFixes","some","checkPostFix","directNameMatch","values","includes","unifiedSyntaxParentMatch","checkNativeTypes","invalidTypes","changedPreferred","strictNativeType","elements","left","toLowerCase","push","getInvalidTypes","tagName","types","preferredSetting","replacement","message","reportSettings","entries","typs","Array","isArray","jsdocTag","typeAst","fixedType","fix","fixer","replaceText","getText","badType","preferredType","tagValue","name","JSON","stringify","iterateAllJsdocs","docs","description","url","fixable","schema","additionalProperties","properties","items","oneOf"],"mappings":"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","sourcesContent":["import {\n parse,\n stringify,\n traverse,\n tryParse,\n} from '@es-joy/jsdoccomment';\nimport iterateJsdoc from '../iterateJsdoc';\n\nconst strictNativeTypes = [\n 'undefined',\n 'null',\n 'boolean',\n 'number',\n 'bigint',\n 'string',\n 'symbol',\n 'object',\n 'Array',\n 'Function',\n 'Date',\n 'RegExp',\n];\n\n/**\n * Adjusts the parent type node `meta` for generic matches (or type node\n * `type` for `JsdocTypeAny`) and sets the type node `value`.\n *\n * @param {string} type The actual type\n * @param {string} preferred The preferred type\n * @param {boolean} isGenericMatch\n * @param {string} typeNodeName\n * @param {import('jsdoc-type-pratt-parser/dist/src/index.d.ts').NonTerminalResult} node\n * @param {import('jsdoc-type-pratt-parser/dist/src/index.d.ts').NonTerminalResult} parentNode\n * @returns {void}\n */\nconst adjustNames = (type, preferred, isGenericMatch, typeNodeName, node, parentNode) => {\n let ret = preferred;\n if (isGenericMatch) {\n if (preferred === '[]') {\n parentNode.meta.brackets = 'square';\n parentNode.meta.dot = false;\n ret = 'Array';\n } else {\n const dotBracketEnd = preferred.match(/\\.(?:<>)?$/u);\n if (dotBracketEnd) {\n parentNode.meta.brackets = 'angle';\n parentNode.meta.dot = true;\n ret = preferred.slice(0, -dotBracketEnd[0].length);\n } else {\n const bracketEnd = preferred.endsWith('<>');\n if (bracketEnd) {\n parentNode.meta.brackets = 'angle';\n parentNode.meta.dot = false;\n ret = preferred.slice(0, -2);\n } else if (\n parentNode.meta.brackets === 'square' &&\n (typeNodeName === '[]' || typeNodeName === 'Array')\n ) {\n parentNode.meta.brackets = 'angle';\n parentNode.meta.dot = false;\n }\n }\n }\n } else if (type === 'JsdocTypeAny') {\n node.type = 'JsdocTypeName';\n }\n\n node.value = ret.replace(/(?:\\.|<>|\\.<>|\\[\\])$/u, '');\n\n // For bare pseudo-types like `<>`\n if (!ret) {\n node.value = typeNodeName;\n }\n};\n\nexport default iterateJsdoc(({\n jsdocNode,\n sourceCode,\n report,\n utils,\n settings,\n context,\n}) => {\n const jsdocTagsWithPossibleType = utils.filterTags((tag) => {\n return utils.tagMightHaveTypePosition(tag.tag);\n });\n\n const {\n preferredTypes,\n structuredTags,\n mode,\n } = settings;\n const {\n noDefaults,\n unifyParentAndChildTypeChecks,\n exemptTagContexts = [],\n } = context.options[0] || {};\n\n /**\n * Gets information about the preferred type: whether there is a matching\n * preferred type, what the type is, and whether it is a match to a generic.\n *\n * @param {string} _type Not currently in use\n * @param {string} typeNodeName\n * @param {import('jsdoc-type-pratt-parser/dist/src/index.d.ts').NonTerminalResult} parentNode\n * @param {string} property\n * @returns {[hasMatchingPreferredType: boolean, typeName: string, isGenericMatch: boolean]}\n */\n const getPreferredTypeInfo = (_type, typeNodeName, parentNode, property) => {\n let hasMatchingPreferredType = false;\n let isGenericMatch = false;\n let typeName = typeNodeName;\n if (Object.keys(preferredTypes).length) {\n const isNameOfGeneric = parentNode !== undefined && parentNode.type === 'JsdocTypeGeneric' && property === 'left';\n if (unifyParentAndChildTypeChecks || isNameOfGeneric) {\n const brackets = parentNode?.meta?.brackets;\n const dot = parentNode?.meta?.dot;\n\n if (brackets === 'angle') {\n const checkPostFixes = dot ? [\n '.', '.<>',\n ] : [\n '<>',\n ];\n isGenericMatch = checkPostFixes.some((checkPostFix) => {\n if (preferredTypes?.[typeNodeName + checkPostFix] !== undefined) {\n typeName += checkPostFix;\n\n return true;\n }\n\n return false;\n });\n }\n\n if (!isGenericMatch && property) {\n const checkPostFixes = dot ? [\n '.', '.<>',\n ] : [\n brackets === 'angle' ? '<>' : '[]',\n ];\n\n isGenericMatch = checkPostFixes.some((checkPostFix) => {\n if (preferredTypes?.[checkPostFix] !== undefined) {\n typeName = checkPostFix;\n\n return true;\n }\n\n return false;\n });\n }\n }\n\n const directNameMatch = preferredTypes?.[typeNodeName] !== undefined &&\n !Object.values(preferredTypes).includes(typeNodeName);\n const unifiedSyntaxParentMatch = property && directNameMatch && unifyParentAndChildTypeChecks;\n isGenericMatch = isGenericMatch || unifiedSyntaxParentMatch;\n\n hasMatchingPreferredType = isGenericMatch ||\n directNameMatch && !property;\n }\n\n return [\n hasMatchingPreferredType, typeName, isGenericMatch,\n ];\n };\n\n /**\n * Iterates strict types to see if any should be added to `invalidTypes` (and\n * the the relevant strict type returned as the new preferred type).\n *\n * @param {string} typeNodeName\n * @param {string} preferred\n * @param {import('jsdoc-type-pratt-parser/dist/src/index.d.ts').NonTerminalResult} parentNode\n * @param {string[]} invalidTypes\n * @returns {string} The `preferred` type string, optionally changed\n */\n const checkNativeTypes = (typeNodeName, preferred, parentNode, invalidTypes) => {\n let changedPreferred = preferred;\n for (const strictNativeType of strictNativeTypes) {\n if (\n // Todo: Avoid typescript condition if moving to default typescript\n strictNativeType === 'object' && mode === 'typescript' &&\n (\n // This is not set to remap with exact type match (e.g.,\n // `object: 'Object'`), so can ignore (including if circular)\n !preferredTypes?.[typeNodeName] ||\n // Although present on `preferredTypes` for remapping, this is a\n // parent object without a parent match (and not\n // `unifyParentAndChildTypeChecks`) and we don't want\n // `object<>` given TypeScript issue https://github.com/microsoft/TypeScript/issues/20555\n parentNode?.elements.length && (\n parentNode?.left.type === 'JsdocTypeName' &&\n parentNode?.left.value === 'Object'\n )\n )\n ) {\n continue;\n }\n\n if (strictNativeType !== typeNodeName &&\n strictNativeType.toLowerCase() === typeNodeName.toLowerCase() &&\n\n // Don't report if user has own map for a strict native type\n (!preferredTypes || preferredTypes?.[strictNativeType] === undefined)\n ) {\n changedPreferred = strictNativeType;\n invalidTypes.push([\n typeNodeName, changedPreferred,\n ]);\n break;\n }\n }\n\n return changedPreferred;\n };\n\n /**\n * Collect invalid type info.\n *\n * @param {string} type\n * @param {string} value\n * @param {string} tagName\n * @param {string} property\n * @param {import('jsdoc-type-pratt-parser/dist/src/index.d.ts').NonTerminalResult} node\n * @param {import('jsdoc-type-pratt-parser/dist/src/index.d.ts').NonTerminalResult} parentNode\n * @param {string[]} invalidTypes\n * @returns {void}\n */\n const getInvalidTypes = (type, value, tagName, property, node, parentNode, invalidTypes) => {\n let typeNodeName = type === 'JsdocTypeAny' ? '*' : value;\n\n const [\n hasMatchingPreferredType,\n typeName,\n isGenericMatch,\n ] = getPreferredTypeInfo(type, typeNodeName, parentNode, property);\n\n let preferred;\n let types;\n if (hasMatchingPreferredType) {\n const preferredSetting = preferredTypes[typeName];\n typeNodeName = typeName === '[]' ? typeName : typeNodeName;\n\n if (!preferredSetting) {\n invalidTypes.push([\n typeNodeName,\n ]);\n } else if (typeof preferredSetting === 'string') {\n preferred = preferredSetting;\n invalidTypes.push([\n typeNodeName, preferred,\n ]);\n } else if (typeof preferredSetting === 'object') {\n preferred = preferredSetting?.replacement;\n invalidTypes.push([\n typeNodeName,\n preferred,\n preferredSetting?.message,\n ]);\n } else {\n utils.reportSettings(\n 'Invalid `settings.jsdoc.preferredTypes`. Values must be falsy, a string, or an object.',\n );\n\n return;\n }\n } else if (Object.entries(structuredTags).some(([\n tag,\n {\n type: typs,\n },\n ]) => {\n types = typs;\n\n return tag === tagName &&\n Array.isArray(types) &&\n !types.includes(typeNodeName);\n })) {\n invalidTypes.push([\n typeNodeName, types,\n ]);\n } else if (!noDefaults && type === 'JsdocTypeName') {\n preferred = checkNativeTypes(typeNodeName, preferred, parentNode, invalidTypes);\n }\n\n // For fixer\n if (preferred) {\n adjustNames(type, preferred, isGenericMatch, typeNodeName, node, parentNode);\n }\n };\n\n for (const jsdocTag of jsdocTagsWithPossibleType) {\n const invalidTypes = [];\n let typeAst;\n\n try {\n typeAst = mode === 'permissive' ? tryParse(jsdocTag.type) : parse(jsdocTag.type, mode);\n } catch {\n continue;\n }\n\n const tagName = jsdocTag.tag;\n\n traverse(typeAst, (node, parentNode, property) => {\n const {\n type,\n value,\n } = node;\n if (![\n 'JsdocTypeName', 'JsdocTypeAny',\n ].includes(type)) {\n return;\n }\n\n getInvalidTypes(type, value, tagName, property, node, parentNode, invalidTypes);\n });\n\n if (invalidTypes.length) {\n const fixedType = stringify(typeAst);\n\n /**\n * @param {any} fixer The ESLint fixer\n * @returns {string}\n */\n const fix = (fixer) => {\n return fixer.replaceText(\n jsdocNode,\n sourceCode.getText(jsdocNode).replace(\n `{${jsdocTag.type}}`,\n `{${fixedType}}`,\n ),\n );\n };\n\n for (const [\n badType,\n preferredType = '',\n message,\n ] of invalidTypes) {\n const tagValue = jsdocTag.name ? ` \"${jsdocTag.name}\"` : '';\n if (exemptTagContexts.some(({\n tag,\n types,\n }) => {\n return tag === tagName &&\n (types === true || types.includes(jsdocTag.type));\n })) {\n continue;\n }\n\n report(\n message ||\n `Invalid JSDoc @${tagName}${tagValue} type \"${badType}\"` +\n (preferredType ? '; ' : '.') +\n (preferredType ? `prefer: ${JSON.stringify(preferredType)}.` : ''),\n preferredType ? fix : null,\n jsdocTag,\n message ? {\n tagName,\n tagValue,\n } : null,\n );\n }\n }\n }\n}, {\n iterateAllJsdocs: true,\n meta: {\n docs: {\n description: 'Reports invalid types.',\n url: 'https://github.com/gajus/eslint-plugin-jsdoc#eslint-plugin-jsdoc-rules-check-types',\n },\n fixable: 'code',\n schema: [\n {\n additionalProperties: false,\n properties: {\n exemptTagContexts: {\n items: {\n additionalProperties: false,\n properties: {\n tag: {\n type: 'string',\n },\n types: {\n oneOf: [\n {\n type: 'boolean',\n },\n {\n items: {\n type: 'string',\n },\n type: 'array',\n },\n ],\n },\n },\n type: 'object',\n },\n type: 'array',\n },\n noDefaults: {\n type: 'boolean',\n },\n unifyParentAndChildTypeChecks: {\n type: 'boolean',\n },\n },\n type: 'object',\n },\n ],\n type: 'suggestion',\n },\n});\n"],"file":"checkTypes.js"}
|
|
1
|
+
{"version":3,"sources":["../../src/rules/checkTypes.js"],"names":["strictNativeTypes","adjustNames","type","preferred","isGenericMatch","typeNodeName","node","parentNode","ret","meta","brackets","dot","dotBracketEnd","match","slice","length","bracketEnd","endsWith","value","replace","jsdocNode","sourceCode","report","utils","settings","context","jsdocTagsWithPossibleType","filterTags","tag","tagMightHaveTypePosition","preferredTypes","preferredTypesOriginal","structuredTags","mode","injectObjectPreferredTypes","Object","noDefaults","unifyParentAndChildTypeChecks","exemptTagContexts","options","getPreferredTypeInfo","_type","property","hasMatchingPreferredType","typeName","isNameOfGeneric","undefined","checkPostFixes","some","checkPostFix","directNameMatch","values","includes","unifiedSyntaxParentMatch","checkNativeTypes","invalidTypes","changedPreferred","strictNativeType","elements","left","toLowerCase","push","getInvalidTypes","tagName","types","preferredSetting","replacement","message","reportSettings","entries","typs","Array","isArray","jsdocTag","typeAst","fixedType","fix","fixer","replaceText","getText","badType","preferredType","tagValue","name","JSON","stringify","iterateAllJsdocs","docs","description","url","fixable","schema","additionalProperties","properties","items","oneOf"],"mappings":"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","sourcesContent":["import {\n parse,\n stringify,\n traverse,\n tryParse,\n} from '@es-joy/jsdoccomment';\nimport iterateJsdoc from '../iterateJsdoc';\n\nconst strictNativeTypes = [\n 'undefined',\n 'null',\n 'boolean',\n 'number',\n 'bigint',\n 'string',\n 'symbol',\n 'object',\n 'Array',\n 'Function',\n 'Date',\n 'RegExp',\n];\n\n/**\n * Adjusts the parent type node `meta` for generic matches (or type node\n * `type` for `JsdocTypeAny`) and sets the type node `value`.\n *\n * @param {string} type The actual type\n * @param {string} preferred The preferred type\n * @param {boolean} isGenericMatch\n * @param {string} typeNodeName\n * @param {import('jsdoc-type-pratt-parser/dist/src/index.d.ts').NonTerminalResult} node\n * @param {import('jsdoc-type-pratt-parser/dist/src/index.d.ts').NonTerminalResult} parentNode\n * @returns {void}\n */\nconst adjustNames = (type, preferred, isGenericMatch, typeNodeName, node, parentNode) => {\n let ret = preferred;\n if (isGenericMatch) {\n if (preferred === '[]') {\n parentNode.meta.brackets = 'square';\n parentNode.meta.dot = false;\n ret = 'Array';\n } else {\n const dotBracketEnd = preferred.match(/\\.(?:<>)?$/u);\n if (dotBracketEnd) {\n parentNode.meta.brackets = 'angle';\n parentNode.meta.dot = true;\n ret = preferred.slice(0, -dotBracketEnd[0].length);\n } else {\n const bracketEnd = preferred.endsWith('<>');\n if (bracketEnd) {\n parentNode.meta.brackets = 'angle';\n parentNode.meta.dot = false;\n ret = preferred.slice(0, -2);\n } else if (\n parentNode.meta.brackets === 'square' &&\n (typeNodeName === '[]' || typeNodeName === 'Array')\n ) {\n parentNode.meta.brackets = 'angle';\n parentNode.meta.dot = false;\n }\n }\n }\n } else if (type === 'JsdocTypeAny') {\n node.type = 'JsdocTypeName';\n }\n\n node.value = ret.replace(/(?:\\.|<>|\\.<>|\\[\\])$/u, '');\n\n // For bare pseudo-types like `<>`\n if (!ret) {\n node.value = typeNodeName;\n }\n};\n\nexport default iterateJsdoc(({\n jsdocNode,\n sourceCode,\n report,\n utils,\n settings,\n context,\n}) => {\n const jsdocTagsWithPossibleType = utils.filterTags((tag) => {\n return utils.tagMightHaveTypePosition(tag.tag);\n });\n\n const {\n preferredTypes: preferredTypesOriginal,\n structuredTags,\n mode,\n } = settings;\n\n const injectObjectPreferredTypes = !('Object' in preferredTypesOriginal ||\n 'object' in preferredTypesOriginal ||\n 'object.<>' in preferredTypesOriginal ||\n 'Object.<>' in preferredTypesOriginal ||\n 'object<>' in preferredTypesOriginal);\n\n const preferredTypes = {\n ...injectObjectPreferredTypes ? {\n Object: 'object',\n 'object.<>': 'Object<>',\n 'Object.<>': 'Object<>',\n 'object<>': 'Object<>',\n } : {},\n ...preferredTypesOriginal,\n };\n\n const {\n noDefaults,\n unifyParentAndChildTypeChecks,\n exemptTagContexts = [],\n } = context.options[0] || {};\n\n /**\n * Gets information about the preferred type: whether there is a matching\n * preferred type, what the type is, and whether it is a match to a generic.\n *\n * @param {string} _type Not currently in use\n * @param {string} typeNodeName\n * @param {import('jsdoc-type-pratt-parser/dist/src/index.d.ts').NonTerminalResult} parentNode\n * @param {string} property\n * @returns {[hasMatchingPreferredType: boolean, typeName: string, isGenericMatch: boolean]}\n */\n const getPreferredTypeInfo = (_type, typeNodeName, parentNode, property) => {\n let hasMatchingPreferredType = false;\n let isGenericMatch = false;\n let typeName = typeNodeName;\n\n const isNameOfGeneric = parentNode !== undefined && parentNode.type === 'JsdocTypeGeneric' && property === 'left';\n if (unifyParentAndChildTypeChecks || isNameOfGeneric) {\n const brackets = parentNode?.meta?.brackets;\n const dot = parentNode?.meta?.dot;\n\n if (brackets === 'angle') {\n const checkPostFixes = dot ? [\n '.', '.<>',\n ] : [\n '<>',\n ];\n isGenericMatch = checkPostFixes.some((checkPostFix) => {\n if (preferredTypes?.[typeNodeName + checkPostFix] !== undefined) {\n typeName += checkPostFix;\n\n return true;\n }\n\n return false;\n });\n }\n\n if (!isGenericMatch && property) {\n const checkPostFixes = dot ? [\n '.', '.<>',\n ] : [\n brackets === 'angle' ? '<>' : '[]',\n ];\n\n isGenericMatch = checkPostFixes.some((checkPostFix) => {\n if (preferredTypes?.[checkPostFix] !== undefined) {\n typeName = checkPostFix;\n\n return true;\n }\n\n return false;\n });\n }\n }\n\n const directNameMatch = preferredTypes?.[typeNodeName] !== undefined &&\n !Object.values(preferredTypes).includes(typeNodeName);\n const unifiedSyntaxParentMatch = property && directNameMatch && unifyParentAndChildTypeChecks;\n isGenericMatch = isGenericMatch || unifiedSyntaxParentMatch;\n\n hasMatchingPreferredType = isGenericMatch ||\n directNameMatch && !property;\n\n return [\n hasMatchingPreferredType, typeName, isGenericMatch,\n ];\n };\n\n /**\n * Iterates strict types to see if any should be added to `invalidTypes` (and\n * the the relevant strict type returned as the new preferred type).\n *\n * @param {string} typeNodeName\n * @param {string} preferred\n * @param {import('jsdoc-type-pratt-parser/dist/src/index.d.ts').NonTerminalResult} parentNode\n * @param {string[]} invalidTypes\n * @returns {string} The `preferred` type string, optionally changed\n */\n const checkNativeTypes = (typeNodeName, preferred, parentNode, invalidTypes) => {\n let changedPreferred = preferred;\n for (const strictNativeType of strictNativeTypes) {\n if (\n strictNativeType === 'object' &&\n (\n // This is not set to remap with exact type match (e.g.,\n // `object: 'Object'`), so can ignore (including if circular)\n !preferredTypes?.[typeNodeName] ||\n // Although present on `preferredTypes` for remapping, this is a\n // parent object without a parent match (and not\n // `unifyParentAndChildTypeChecks`) and we don't want\n // `object<>` given TypeScript issue https://github.com/microsoft/TypeScript/issues/20555\n parentNode?.elements.length && (\n parentNode?.left.type === 'JsdocTypeName' &&\n parentNode?.left.value === 'Object'\n )\n )\n ) {\n continue;\n }\n\n if (strictNativeType !== typeNodeName &&\n strictNativeType.toLowerCase() === typeNodeName.toLowerCase() &&\n\n // Don't report if user has own map for a strict native type\n (!preferredTypes || preferredTypes?.[strictNativeType] === undefined)\n ) {\n changedPreferred = strictNativeType;\n invalidTypes.push([\n typeNodeName, changedPreferred,\n ]);\n break;\n }\n }\n\n return changedPreferred;\n };\n\n /**\n * Collect invalid type info.\n *\n * @param {string} type\n * @param {string} value\n * @param {string} tagName\n * @param {string} property\n * @param {import('jsdoc-type-pratt-parser/dist/src/index.d.ts').NonTerminalResult} node\n * @param {import('jsdoc-type-pratt-parser/dist/src/index.d.ts').NonTerminalResult} parentNode\n * @param {string[]} invalidTypes\n * @returns {void}\n */\n const getInvalidTypes = (type, value, tagName, property, node, parentNode, invalidTypes) => {\n let typeNodeName = type === 'JsdocTypeAny' ? '*' : value;\n\n const [\n hasMatchingPreferredType,\n typeName,\n isGenericMatch,\n ] = getPreferredTypeInfo(type, typeNodeName, parentNode, property);\n\n let preferred;\n let types;\n if (hasMatchingPreferredType) {\n const preferredSetting = preferredTypes[typeName];\n typeNodeName = typeName === '[]' ? typeName : typeNodeName;\n\n if (!preferredSetting) {\n invalidTypes.push([\n typeNodeName,\n ]);\n } else if (typeof preferredSetting === 'string') {\n preferred = preferredSetting;\n invalidTypes.push([\n typeNodeName, preferred,\n ]);\n } else if (typeof preferredSetting === 'object') {\n preferred = preferredSetting?.replacement;\n invalidTypes.push([\n typeNodeName,\n preferred,\n preferredSetting?.message,\n ]);\n } else {\n utils.reportSettings(\n 'Invalid `settings.jsdoc.preferredTypes`. Values must be falsy, a string, or an object.',\n );\n\n return;\n }\n } else if (Object.entries(structuredTags).some(([\n tag,\n {\n type: typs,\n },\n ]) => {\n types = typs;\n\n return tag === tagName &&\n Array.isArray(types) &&\n !types.includes(typeNodeName);\n })) {\n invalidTypes.push([\n typeNodeName, types,\n ]);\n } else if (!noDefaults && type === 'JsdocTypeName') {\n preferred = checkNativeTypes(typeNodeName, preferred, parentNode, invalidTypes);\n }\n\n // For fixer\n if (preferred) {\n adjustNames(type, preferred, isGenericMatch, typeNodeName, node, parentNode);\n }\n };\n\n for (const jsdocTag of jsdocTagsWithPossibleType) {\n const invalidTypes = [];\n let typeAst;\n\n try {\n typeAst = mode === 'permissive' ? tryParse(jsdocTag.type) : parse(jsdocTag.type, mode);\n } catch {\n continue;\n }\n\n const tagName = jsdocTag.tag;\n\n traverse(typeAst, (node, parentNode, property) => {\n const {\n type,\n value,\n } = node;\n if (![\n 'JsdocTypeName', 'JsdocTypeAny',\n ].includes(type)) {\n return;\n }\n\n getInvalidTypes(type, value, tagName, property, node, parentNode, invalidTypes);\n });\n\n if (invalidTypes.length) {\n const fixedType = stringify(typeAst);\n\n /**\n * @param {any} fixer The ESLint fixer\n * @returns {string}\n */\n const fix = (fixer) => {\n return fixer.replaceText(\n jsdocNode,\n sourceCode.getText(jsdocNode).replace(\n `{${jsdocTag.type}}`,\n `{${fixedType}}`,\n ),\n );\n };\n\n for (const [\n badType,\n preferredType = '',\n message,\n ] of invalidTypes) {\n const tagValue = jsdocTag.name ? ` \"${jsdocTag.name}\"` : '';\n if (exemptTagContexts.some(({\n tag,\n types,\n }) => {\n return tag === tagName &&\n (types === true || types.includes(jsdocTag.type));\n })) {\n continue;\n }\n\n report(\n message ||\n `Invalid JSDoc @${tagName}${tagValue} type \"${badType}\"` +\n (preferredType ? '; ' : '.') +\n (preferredType ? `prefer: ${JSON.stringify(preferredType)}.` : ''),\n preferredType ? fix : null,\n jsdocTag,\n message ? {\n tagName,\n tagValue,\n } : null,\n );\n }\n }\n }\n}, {\n iterateAllJsdocs: true,\n meta: {\n docs: {\n description: 'Reports invalid types.',\n url: 'https://github.com/gajus/eslint-plugin-jsdoc#eslint-plugin-jsdoc-rules-check-types',\n },\n fixable: 'code',\n schema: [\n {\n additionalProperties: false,\n properties: {\n exemptTagContexts: {\n items: {\n additionalProperties: false,\n properties: {\n tag: {\n type: 'string',\n },\n types: {\n oneOf: [\n {\n type: 'boolean',\n },\n {\n items: {\n type: 'string',\n },\n type: 'array',\n },\n ],\n },\n },\n type: 'object',\n },\n type: 'array',\n },\n noDefaults: {\n type: 'boolean',\n },\n unifyParentAndChildTypeChecks: {\n type: 'boolean',\n },\n },\n type: 'object',\n },\n ],\n type: 'suggestion',\n },\n});\n"],"file":"checkTypes.js"}
|
package/dist/tagNames.js
CHANGED
|
@@ -84,6 +84,8 @@ const jsdocTags = { ...jsdocTagsUndocumented,
|
|
|
84
84
|
};
|
|
85
85
|
exports.jsdocTags = jsdocTags;
|
|
86
86
|
const typeScriptTags = { ...jsdocTags,
|
|
87
|
+
// https://www.typescriptlang.org/tsconfig/#stripInternal
|
|
88
|
+
internal: [],
|
|
87
89
|
// `@template` is also in TypeScript per:
|
|
88
90
|
// https://www.typescriptlang.org/docs/handbook/type-checking-javascript-files.html#supported-jsdoc
|
|
89
91
|
template: []
|
|
@@ -108,6 +110,7 @@ const undocumentedClosureTags = {
|
|
|
108
110
|
const {
|
|
109
111
|
/* eslint-disable no-unused-vars */
|
|
110
112
|
inheritdoc,
|
|
113
|
+
internal,
|
|
111
114
|
// Will be inverted to prefer `return`
|
|
112
115
|
returns,
|
|
113
116
|
|
package/dist/tagNames.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../src/tagNames.js"],"names":["jsdocTagsUndocumented","modifies","jsdocTags","abstract","access","alias","async","augments","author","borrows","callback","class","classdesc","constant","constructs","copyright","default","deprecated","description","enum","event","example","exports","external","file","fires","function","generator","global","hideconstructor","ignore","implements","inheritdoc","inheritDoc","inner","instance","interface","kind","lends","license","listens","member","memberof","mixes","mixin","module","name","namespace","override","package","param","private","property","protected","public","readonly","requires","returns","see","since","static","summary","this","throws","todo","tutorial","type","typedef","variation","version","yields","typeScriptTags","template","undocumentedClosureTags","closurePrimitive","customElement","expose","hidden","idGenerator","meaning","mixinClass","mixinFunction","ngInject","owner","typeSummary","wizaction","typeScriptTagsInClosure","closureTags","define","dict","export","externs","final","implicitCast","noalias","nocollapse","nocompile","noinline","nosideeffects","polymer","polymerBehavior","preserve","record","return","struct","suppress","unrestricted"],"mappings":"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
|
|
1
|
+
{"version":3,"sources":["../src/tagNames.js"],"names":["jsdocTagsUndocumented","modifies","jsdocTags","abstract","access","alias","async","augments","author","borrows","callback","class","classdesc","constant","constructs","copyright","default","deprecated","description","enum","event","example","exports","external","file","fires","function","generator","global","hideconstructor","ignore","implements","inheritdoc","inheritDoc","inner","instance","interface","kind","lends","license","listens","member","memberof","mixes","mixin","module","name","namespace","override","package","param","private","property","protected","public","readonly","requires","returns","see","since","static","summary","this","throws","todo","tutorial","type","typedef","variation","version","yields","typeScriptTags","internal","template","undocumentedClosureTags","closurePrimitive","customElement","expose","hidden","idGenerator","meaning","mixinClass","mixinFunction","ngInject","owner","typeSummary","wizaction","typeScriptTagsInClosure","closureTags","define","dict","export","externs","final","implicitCast","noalias","nocollapse","nocompile","noinline","nosideeffects","polymer","polymerBehavior","preserve","record","return","struct","suppress","unrestricted"],"mappings":"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","sourcesContent":["const jsdocTagsUndocumented = {\n // Undocumented but present; see\n // https://github.com/jsdoc/jsdoc/issues/1283#issuecomment-516816802\n // https://github.com/jsdoc/jsdoc/blob/master/packages/jsdoc/lib/jsdoc/tag/dictionary/definitions.js#L594\n modifies: [],\n};\n\nconst jsdocTags = {\n ...jsdocTagsUndocumented,\n abstract: [\n 'virtual',\n ],\n access: [],\n alias: [],\n async: [],\n augments: [\n 'extends',\n ],\n author: [],\n borrows: [],\n callback: [],\n class: [\n 'constructor',\n ],\n classdesc: [],\n constant: [\n 'const',\n ],\n constructs: [],\n copyright: [],\n default: [\n 'defaultvalue',\n ],\n deprecated: [],\n description: [\n 'desc',\n ],\n enum: [],\n event: [],\n example: [],\n exports: [],\n external: [\n 'host',\n ],\n file: [\n 'fileoverview',\n 'overview',\n ],\n fires: [\n 'emits',\n ],\n function: [\n 'func',\n 'method',\n ],\n generator: [],\n global: [],\n hideconstructor: [],\n ignore: [],\n implements: [],\n inheritdoc: [],\n\n // Allowing casing distinct from jsdoc `definitions.js` (required in Closure)\n inheritDoc: [],\n\n inner: [],\n instance: [],\n interface: [],\n kind: [],\n lends: [],\n license: [],\n listens: [],\n member: [\n 'var',\n ],\n memberof: [],\n 'memberof!': [],\n mixes: [],\n mixin: [],\n\n module: [],\n name: [],\n namespace: [],\n override: [],\n package: [],\n param: [\n 'arg',\n 'argument',\n ],\n private: [],\n property: [\n 'prop',\n ],\n protected: [],\n public: [],\n readonly: [],\n requires: [],\n returns: [\n 'return',\n ],\n see: [],\n since: [],\n static: [],\n summary: [],\n\n this: [],\n throws: [\n 'exception',\n ],\n todo: [],\n tutorial: [],\n type: [],\n typedef: [],\n variation: [],\n version: [],\n yields: [\n 'yield',\n ],\n};\n\nconst typeScriptTags = {\n ...jsdocTags,\n\n // https://www.typescriptlang.org/tsconfig/#stripInternal\n internal: [],\n\n // `@template` is also in TypeScript per:\n // https://www.typescriptlang.org/docs/handbook/type-checking-javascript-files.html#supported-jsdoc\n template: [],\n};\n\nconst undocumentedClosureTags = {\n // These are in Closure source but not in jsdoc source nor in the Closure\n // docs: https://github.com/google/closure-compiler/blob/master/src/com/google/javascript/jscomp/parsing/Annotation.java\n closurePrimitive: [],\n customElement: [],\n expose: [],\n hidden: [],\n idGenerator: [],\n meaning: [],\n mixinClass: [],\n mixinFunction: [],\n ngInject: [],\n owner: [],\n typeSummary: [],\n wizaction: [],\n};\n\nconst {\n /* eslint-disable no-unused-vars */\n inheritdoc,\n internal,\n\n // Will be inverted to prefer `return`\n returns,\n /* eslint-enable no-unused-vars */\n ...typeScriptTagsInClosure\n} = typeScriptTags;\n\nconst closureTags = {\n ...typeScriptTagsInClosure,\n ...undocumentedClosureTags,\n\n // From https://github.com/google/closure-compiler/wiki/Annotating-JavaScript-for-the-Closure-Compiler\n // These are all recognized in https://github.com/jsdoc/jsdoc/blob/master/packages/jsdoc/lib/jsdoc/tag/dictionary/definitions.js\n // except for the experimental `noinline` and the casing differences noted below\n\n // Defined as a synonym of `const` in jsdoc `definitions.js`\n define: [],\n\n dict: [],\n export: [],\n externs: [],\n final: [],\n\n // With casing distinct from jsdoc `definitions.js`\n implicitCast: [],\n\n noalias: [],\n nocollapse: [],\n nocompile: [],\n noinline: [],\n nosideeffects: [],\n polymer: [],\n polymerBehavior: [],\n preserve: [],\n\n // Defined as a synonym of `interface` in jsdoc `definitions.js`\n record: [],\n\n return: [\n 'returns',\n ],\n\n struct: [],\n suppress: [],\n\n unrestricted: [],\n};\n\nexport {\n jsdocTags,\n closureTags,\n typeScriptTags,\n};\n"],"file":"tagNames.js"}
|
package/package.json
CHANGED