@tony.ganchev/eslint-plugin-header 3.4.2 → 3.4.4
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +72 -12
- package/lib/rules/header.js +63 -18
- package/package.json +15 -13
- package/types/lib/rules/header.d.ts +1 -1
- package/types/lib/rules/header.d.ts.map +1 -1
package/README.md
CHANGED
|
@@ -7,7 +7,7 @@
|
|
|
7
7
|
The native ESLint 9/10 standard header-validating plugin. A zero-bloat, drop-in
|
|
8
8
|
replacement for [eslint-plugin-header](https://github.com/Stuk/eslint-plugin-header)
|
|
9
9
|
with first-class Flat Config & TypeScript support. Auto-fix copyright, license,
|
|
10
|
-
and banner comments in JavaScript, TypeScript, Vue, Svelte, CSS, HTML, and
|
|
10
|
+
and banner comments in JavaScript, TypeScript, Vue, Svelte, CSS, HTML, YAML, and
|
|
11
11
|
Markdown files. Supports _oxlint_.
|
|
12
12
|
|
|
13
13
|
## Table of Contents
|
|
@@ -33,6 +33,7 @@ Markdown files. Supports _oxlint_.
|
|
|
33
33
|
7. [Linting Vue](#linting-vue)
|
|
34
34
|
8. [Linting Svelte](#linting-svelte)
|
|
35
35
|
9. [Linting Markdown](#linting-markdown)
|
|
36
|
+
10. [Linting YAML](#linting-yaml)
|
|
36
37
|
5. [Comparison to Alternatives](#comparison-to-alternatives)
|
|
37
38
|
1. [Compared to eslint-plugin-headers](#compared-to-eslint-plugin-headers)
|
|
38
39
|
1. [Health Scans](#health-scans)
|
|
@@ -78,8 +79,14 @@ consistent header structures. Notable adopters include:
|
|
|
78
79
|
|
|
79
80
|
[](./docs/consumers.md#salesforce)
|
|
80
81
|
|
|
82
|
+
[](./docs/consumers.md#google)
|
|
83
|
+
|
|
81
84
|
[](./docs/consumers.md#angular)
|
|
82
85
|
|
|
86
|
+
[](./docs/consumers.md#broadcom)
|
|
87
|
+
|
|
88
|
+
[](./docs/consumers.md#vmware)
|
|
89
|
+
|
|
83
90
|
[](./docs/consumers.md#amazon)
|
|
84
91
|
|
|
85
92
|
[](./docs/consumers.md#cloudscape-design-system)
|
|
@@ -94,6 +101,8 @@ consistent header structures. Notable adopters include:
|
|
|
94
101
|
|
|
95
102
|
[](./docs/consumers.md#flowcrypt)
|
|
96
103
|
|
|
104
|
+
[](./docs/consumers.md#frontify)
|
|
105
|
+
|
|
97
106
|
[](./docs/consumers.md#cratis)
|
|
98
107
|
|
|
99
108
|
[](./docs/consumers.md#mysten-labs)
|
|
@@ -134,9 +143,10 @@ statements. Smoke tests cover this support as well.
|
|
|
134
143
|
### Languages
|
|
135
144
|
|
|
136
145
|
Currently the plugin supports linting copyright headers in JavaScript,
|
|
137
|
-
TypeScript and their JSX / TSX flavors; Vue, Svelte, CSS, HTML, and
|
|
138
|
-
files. As mentioned in the previous sections, not all languages are
|
|
139
|
-
for oxlint or ESLint older than 9. Refer to the table below for more
|
|
146
|
+
TypeScript and their JSX / TSX flavors; Vue, Svelte, CSS, HTML, YAML, and
|
|
147
|
+
Markdown files. As mentioned in the previous sections, not all languages are
|
|
148
|
+
supported for oxlint or ESLint older than 9. Refer to the table below for more
|
|
149
|
+
details.
|
|
140
150
|
|
|
141
151
|
| Language | ESLint 7 / 8 | ESLint 9 / 10 | oxlint |
|
|
142
152
|
|------------|---------------|---------------|--------|
|
|
@@ -148,6 +158,7 @@ for oxlint or ESLint older than 9. Refer to the table below for more details.
|
|
|
148
158
|
| Svelte | ✅ Yes | ✅ Yes | ❌ No |
|
|
149
159
|
| CSS | ❌ No | ✅ Yes | ❌ No |
|
|
150
160
|
| HTML | ❌ No | ✅ Yes | ❌ No |
|
|
161
|
+
| YAML | ❌ No | ✅ Yes | ❌ No |
|
|
151
162
|
| Markdown | ❌ No | ✅ Yes | ❌ No |
|
|
152
163
|
|
|
153
164
|
## Usage
|
|
@@ -1488,6 +1499,50 @@ Markdown (`**/*.md/*.js`). Same applies to `*.ts`, `*.jsx`, `*.tsx`, etc.
|
|
|
1488
1499
|
|
|
1489
1500
|
As with CSS, only block comments are supported - no line- or shebang comments.
|
|
1490
1501
|
|
|
1502
|
+
### Linting YAML
|
|
1503
|
+
|
|
1504
|
+
The rule supports linting copyright notices in YAML files. The rule works with
|
|
1505
|
+
the _eslint-plugin-yml_ plugin and its parser.
|
|
1506
|
+
|
|
1507
|
+
Similar to CSS and Markdown, all you need to do to turn on header validation is
|
|
1508
|
+
to configure the _eslint-plugin-yml_ plugin, the correct language, and the rule:
|
|
1509
|
+
|
|
1510
|
+
```ts
|
|
1511
|
+
import header from "@tony.ganchev/eslint-plugin-header";
|
|
1512
|
+
import yml from "eslint-plugin-yml";
|
|
1513
|
+
|
|
1514
|
+
export default [
|
|
1515
|
+
{
|
|
1516
|
+
files: ["**/*.yaml", "**/*.yml"],
|
|
1517
|
+
plugins: {
|
|
1518
|
+
"@tony.ganchev": header,
|
|
1519
|
+
yml
|
|
1520
|
+
},
|
|
1521
|
+
language: "yml/yaml",
|
|
1522
|
+
rules: {
|
|
1523
|
+
"@tony.ganchev/header": [
|
|
1524
|
+
"error",
|
|
1525
|
+
{
|
|
1526
|
+
header: {
|
|
1527
|
+
commentType: "line",
|
|
1528
|
+
lines: [" Copyright 2025 "]
|
|
1529
|
+
}
|
|
1530
|
+
}
|
|
1531
|
+
]
|
|
1532
|
+
}
|
|
1533
|
+
}
|
|
1534
|
+
];
|
|
1535
|
+
```
|
|
1536
|
+
|
|
1537
|
+
```yaml
|
|
1538
|
+
# Copyright 2025
|
|
1539
|
+
|
|
1540
|
+
foo: bar
|
|
1541
|
+
```
|
|
1542
|
+
|
|
1543
|
+
As YAML only supports line comments, be sure to use `commentType: "line"`. If
|
|
1544
|
+
`commentType: "block"` is used, the rule will report a violation.
|
|
1545
|
+
|
|
1491
1546
|
## Comparison to Alternatives
|
|
1492
1547
|
|
|
1493
1548
|
A number of projects have been aiming to solve problems similar to
|
|
@@ -1583,20 +1638,25 @@ migrate to _\@tony.ganchev/eslint-plugin-header_.
|
|
|
1583
1638
|
|
|
1584
1639
|
### Compared to [eslint-plugin-notice](https://github.com/earl-man/eslint-plugin-notice)
|
|
1585
1640
|
|
|
1586
|
-
_eslint-plugin-notice_ is another alternative that uses a template-based
|
|
1587
|
-
(powered by Lodash templates) to manage headers. This makes it quite
|
|
1588
|
-
dynamic content but also brings in more dependencies and a more
|
|
1589
|
-
configuration schema that doesn't always feel "native" to the new ESLint
|
|
1590
|
-
Config era.
|
|
1641
|
+
_eslint-plugin-notice_ is another alternative that uses a template-based
|
|
1642
|
+
approach (powered by Lodash templates) to manage headers. This makes it quite
|
|
1643
|
+
powerful for dynamic content but also brings in more dependencies and a more
|
|
1644
|
+
complex configuration schema that doesn't always feel "native" to the new ESLint
|
|
1645
|
+
Flat Config era.
|
|
1591
1646
|
|
|
1592
1647
|
Key differences:
|
|
1593
1648
|
|
|
1649
|
+
- **Compatibility**: _eslint-plugin-notice_ **does not support ESLint 10** and
|
|
1650
|
+
**does not provide TypeScript bindings**.
|
|
1651
|
+
- **Support**: _eslint-plugin-notice_ has **not seen its code updated in 2
|
|
1652
|
+
years** and has pull request published by the project's owner dangling for
|
|
1653
|
+
over 2 years.
|
|
1594
1654
|
- **Philosophy**: _\@tony.ganchev/eslint-plugin-header_ focuses on a zero-bloat,
|
|
1595
1655
|
native ESLint feel with first-class support for Flat Config and TypeScript.
|
|
1596
|
-
|
|
1597
|
-
|
|
1656
|
+
The project offers much more features and includes a much larger list of
|
|
1657
|
+
supported languages.
|
|
1598
1658
|
- **Languages**: We provide native support for linting headers in HTML, CSS,
|
|
1599
|
-
|
|
1659
|
+
Vue, Svelte, YAML, Markdown via their respective ESLint plugins and parsers.
|
|
1600
1660
|
- **Simplicity**: No need for external template engines or complex variable
|
|
1601
1661
|
mappings. Use standard JavaScript template literals in your `eslint.config.ts`
|
|
1602
1662
|
to handle dynamic years or other variables.
|
package/lib/rules/header.js
CHANGED
|
@@ -35,7 +35,6 @@ const { lineEndingOptions, commentTypeOptions, schema } = require("./header.sche
|
|
|
35
35
|
/**
|
|
36
36
|
* @import { JSSyntaxElement, Linter, Rule, SourceCode } from "eslint"
|
|
37
37
|
* @import { Comment, SourceLocation } from "estree"
|
|
38
|
-
* @import { ViolationReport } from "@eslint/core";
|
|
39
38
|
* @typedef {Rule.NodeListener} NodeListener
|
|
40
39
|
* @typedef {Rule.ReportFixer} ReportFixer
|
|
41
40
|
* @typedef {Rule.RuleFixer} RuleFixer
|
|
@@ -206,7 +205,7 @@ function match(actual, expected) {
|
|
|
206
205
|
|
|
207
206
|
/**
|
|
208
207
|
* @typedef {object} Language
|
|
209
|
-
* @property { BlockComment } blockComment The tokens delimiting a block
|
|
208
|
+
* @property { BlockComment } [blockComment] The tokens delimiting a block
|
|
210
209
|
* comment.
|
|
211
210
|
* @property { LineComment } [lineComment] The tokens delimiting a line comment
|
|
212
211
|
* if such is allowed.
|
|
@@ -348,7 +347,8 @@ function getLeadingComments(sourceCode, language) {
|
|
|
348
347
|
*/
|
|
349
348
|
function genCommentBody(commentType, textArray, eol, language) {
|
|
350
349
|
if (commentType === commentTypeOptions.block) {
|
|
351
|
-
|
|
350
|
+
const blockComment = /** @type {BlockComment} */ (language.blockComment);
|
|
351
|
+
return blockComment.startDelimiter + textArray.join(eol) + blockComment.endDelimiter;
|
|
352
352
|
} else {
|
|
353
353
|
const lineStartDelimiter = /** @type {LineComment} */ (language.lineComment).startDelimiter;
|
|
354
354
|
// We need one trailing EOL on line comments to ensure the fixed source
|
|
@@ -413,8 +413,15 @@ function genPrependFixer(commentType, sourceCode, headerLines, eol, numNewlines,
|
|
|
413
413
|
newHeader = eol + newHeader;
|
|
414
414
|
}
|
|
415
415
|
}
|
|
416
|
-
const
|
|
417
|
-
const
|
|
416
|
+
const existingSourceCodeFromInsertPos = sourceCode.text.substring(insertPos);
|
|
417
|
+
const numEmptyLines = leadingEmptyLines(existingSourceCodeFromInsertPos);
|
|
418
|
+
const additionalEmptyLines = Math.max(numNewlines - numEmptyLines,
|
|
419
|
+
(commentType === commentTypeOptions.line
|
|
420
|
+
&& existingSourceCodeFromInsertPos.startsWith(
|
|
421
|
+
/** @type {{ startDelimiter: string }} */(language.lineComment).startDelimiter))
|
|
422
|
+
? 1
|
|
423
|
+
: 0
|
|
424
|
+
);
|
|
418
425
|
newHeader += eol.repeat(additionalEmptyLines);
|
|
419
426
|
return fixer.insertTextBeforeRange(
|
|
420
427
|
[insertPos, insertPos /* don't care */],
|
|
@@ -700,19 +707,14 @@ class CommentMatcher {
|
|
|
700
707
|
this.language = language;
|
|
701
708
|
}
|
|
702
709
|
|
|
703
|
-
/**
|
|
704
|
-
* @typedef {ViolationReport<JSSyntaxElement, string>} ViolationReportBad
|
|
705
|
-
* @typedef {ViolationReportBad & { messageId: string }} ViolationReportEx
|
|
706
|
-
*/
|
|
707
|
-
|
|
708
710
|
/**
|
|
709
711
|
* Performs a validation of a comment against a header matching
|
|
710
712
|
* configuration.
|
|
711
713
|
* @param {CommentEx[]} leadingComments The block comment or sequence of
|
|
712
714
|
* line comments to test.
|
|
713
715
|
* @param {SourceCode} sourceCode The source code AST.
|
|
714
|
-
* @returns {
|
|
715
|
-
*
|
|
716
|
+
* @returns {Rule.ReportDescriptor | null} If set a violation report to pass
|
|
717
|
+
* back to ESLint or interpret as necessary.
|
|
716
718
|
*/
|
|
717
719
|
validate(leadingComments, sourceCode) {
|
|
718
720
|
|
|
@@ -833,7 +835,7 @@ class CommentMatcher {
|
|
|
833
835
|
}
|
|
834
836
|
}
|
|
835
837
|
|
|
836
|
-
const commentRange = leadingComments[
|
|
838
|
+
const commentRange = leadingComments[leadingComments.length - 1].range;
|
|
837
839
|
const actualLeadingEmptyLines = leadingEmptyLines(sourceCode.text.substring(commentRange[1]));
|
|
838
840
|
const missingEmptyLines = this.numLines - actualLeadingEmptyLines;
|
|
839
841
|
if (missingEmptyLines > 0) {
|
|
@@ -849,6 +851,7 @@ class CommentMatcher {
|
|
|
849
851
|
|
|
850
852
|
return null;
|
|
851
853
|
}
|
|
854
|
+
|
|
852
855
|
// if block comment pattern has more than 1 line, we also split the
|
|
853
856
|
// comment
|
|
854
857
|
let leadingLines = [leadingComments[0].value];
|
|
@@ -862,8 +865,9 @@ class CommentMatcher {
|
|
|
862
865
|
let errorMessageData;
|
|
863
866
|
/** @type {null | SourceLocation} */
|
|
864
867
|
let errorMessageLoc = null;
|
|
865
|
-
const
|
|
866
|
-
const
|
|
868
|
+
const blockComment = /** @type {BlockComment} */(this.language.blockComment);
|
|
869
|
+
const blockStartLen = blockComment.startDelimiter.length;
|
|
870
|
+
const blockEndLen = blockComment.endDelimiter.length;
|
|
867
871
|
|
|
868
872
|
for (let i = 0; i < this.headerLines.length; i++) {
|
|
869
873
|
if (leadingLines.length - 1 < i) {
|
|
@@ -1017,7 +1021,8 @@ const headerRule = {
|
|
|
1017
1021
|
// messages only applicable to header validation.
|
|
1018
1022
|
missingHeader: "missing header",
|
|
1019
1023
|
noNewlineAfterHeader: "not enough newlines after header: expected: {{expected}}, actual: {{actual}}",
|
|
1020
|
-
|
|
1024
|
+
unsupportedBlockHeader: "block-comment header configured but not supported for this language",
|
|
1025
|
+
unsupportedLineHeader: "line-comment header configured but not supported for this language"
|
|
1021
1026
|
}
|
|
1022
1027
|
},
|
|
1023
1028
|
|
|
@@ -1030,6 +1035,7 @@ const headerRule = {
|
|
|
1030
1035
|
|
|
1031
1036
|
const newStyleOptions = transformLegacyOptions(/** @type {AllHeaderOptions} */(context.options));
|
|
1032
1037
|
const sourceCode = contextSourceCode(context);
|
|
1038
|
+
// console.log(sourceCode);
|
|
1033
1039
|
|
|
1034
1040
|
/**
|
|
1035
1041
|
* Hooks into the processing of the overall script node to do the
|
|
@@ -1051,7 +1057,7 @@ const headerRule = {
|
|
|
1051
1057
|
});
|
|
1052
1058
|
const numLines = /** @type {number} */ (options.trailingEmptyLines?.minimum);
|
|
1053
1059
|
|
|
1054
|
-
if (!language.lineComment &&
|
|
1060
|
+
if (!language.lineComment && header.commentType === "line") {
|
|
1055
1061
|
context.report({
|
|
1056
1062
|
messageId: "unsupportedLineHeader",
|
|
1057
1063
|
loc: {
|
|
@@ -1062,6 +1068,17 @@ const headerRule = {
|
|
|
1062
1068
|
return;
|
|
1063
1069
|
}
|
|
1064
1070
|
|
|
1071
|
+
if (!language.blockComment && header.commentType === "block") {
|
|
1072
|
+
context.report({
|
|
1073
|
+
messageId: "unsupportedBlockHeader",
|
|
1074
|
+
loc: {
|
|
1075
|
+
start: sourceCode.getLocFromIndex(0),
|
|
1076
|
+
end: sourceCode.getLocFromIndex(1),
|
|
1077
|
+
},
|
|
1078
|
+
});
|
|
1079
|
+
return;
|
|
1080
|
+
}
|
|
1081
|
+
|
|
1065
1082
|
const headerMatcher = new CommentMatcher(header, eol, numLines, language);
|
|
1066
1083
|
const allowedLeadingComments = /** @type {LeadingComments} */ (options.leadingComments).comments;
|
|
1067
1084
|
const allowedCommentsMatchers =
|
|
@@ -1205,6 +1222,13 @@ const headerRule = {
|
|
|
1205
1222
|
}
|
|
1206
1223
|
};
|
|
1207
1224
|
|
|
1225
|
+
/** @type {Language} */
|
|
1226
|
+
const yamlStyleLanguage = {
|
|
1227
|
+
lineComment: {
|
|
1228
|
+
startDelimiter: "#"
|
|
1229
|
+
}
|
|
1230
|
+
};
|
|
1231
|
+
|
|
1208
1232
|
/**
|
|
1209
1233
|
* Tests if the source code was parsed by _@html-eslint/eslint-plugin_'s
|
|
1210
1234
|
* parser.
|
|
@@ -1243,8 +1267,29 @@ const headerRule = {
|
|
|
1243
1267
|
return isHtmlParser() || isVueParser() || isSvelteParser();
|
|
1244
1268
|
};
|
|
1245
1269
|
|
|
1270
|
+
/**
|
|
1271
|
+
* Tests if the source code was parsed by _yaml-eslint-parser_.
|
|
1272
|
+
* @returns {boolean} `true` if the source code is parsed by the parser.
|
|
1273
|
+
*/
|
|
1274
|
+
function isYamlStyleLanguage() {
|
|
1275
|
+
// YAML parser has distinct identity from JS parset but also has an
|
|
1276
|
+
// identifier in its `parserServices` section and that check is
|
|
1277
|
+
// faster.
|
|
1278
|
+
return sourceCode.parserServices.isYAML;
|
|
1279
|
+
}
|
|
1280
|
+
|
|
1281
|
+
const programLanguageSearchMap = [
|
|
1282
|
+
{ test: isHtmlStyleLanguage, language: htmlStyleLanguage },
|
|
1283
|
+
{ test: isYamlStyleLanguage, language: yamlStyleLanguage },
|
|
1284
|
+
{ test: () => true, language: jsStyleLanguage }
|
|
1285
|
+
];
|
|
1286
|
+
|
|
1246
1287
|
const hooks = {
|
|
1247
|
-
Program: () => onRootNode(
|
|
1288
|
+
Program: () => onRootNode(
|
|
1289
|
+
/** @type {{ test: () => boolean, language: Language}} */(
|
|
1290
|
+
programLanguageSearchMap.find((item) => item.test())
|
|
1291
|
+
).language
|
|
1292
|
+
),
|
|
1248
1293
|
StyleSheet: () => onRootNode(cssStyleLanguage),
|
|
1249
1294
|
// eslint/markdown
|
|
1250
1295
|
root: () => onRootNode(htmlStyleLanguage),
|
package/package.json
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@tony.ganchev/eslint-plugin-header",
|
|
3
|
-
"version": "3.4.
|
|
4
|
-
"description": "The native ESLint 9/10 header plugin. A zero-bloat, drop-in replacement for 'eslint-plugin-header' with first-class Flat Config & TypeScript support. Auto-fix Copyright, License, and banner comments in JavaScript, TypeScript, Vue, Svelte, CSS, HTML, and Markdown files. Supports oxlint.",
|
|
3
|
+
"version": "3.4.4",
|
|
4
|
+
"description": "The native ESLint 9/10 header plugin. A zero-bloat, drop-in replacement for 'eslint-plugin-header' with first-class Flat Config & TypeScript support. Auto-fix Copyright, License, and banner comments in JavaScript, TypeScript, Vue, Svelte, CSS, HTML, YAML, and Markdown files. Supports oxlint.",
|
|
5
5
|
"main": "index.js",
|
|
6
6
|
"types": "index.d.ts",
|
|
7
7
|
"exports": {
|
|
@@ -18,29 +18,29 @@
|
|
|
18
18
|
"CONTRIBUTING.md"
|
|
19
19
|
],
|
|
20
20
|
"devDependencies": {
|
|
21
|
-
"@eslint/core": "^1.2.0",
|
|
22
21
|
"@eslint/css": "^1.1.0",
|
|
23
22
|
"@eslint/js": "^10.0.1",
|
|
24
|
-
"@eslint/markdown": "^
|
|
25
|
-
"@html-eslint/eslint-plugin": "^0.
|
|
23
|
+
"@eslint/markdown": "^8.0.1",
|
|
24
|
+
"@html-eslint/eslint-plugin": "^0.59.0",
|
|
26
25
|
"@stylistic/eslint-plugin": "^5.10.0",
|
|
27
26
|
"@types/estree": "^1.0.8",
|
|
28
27
|
"@types/json-schema": "^7.0.15",
|
|
29
|
-
"@types/node": "^25.
|
|
28
|
+
"@types/node": "^25.6.0",
|
|
30
29
|
"c8": "^11.0.0",
|
|
31
|
-
"eslint": "^10.1
|
|
30
|
+
"eslint": "^10.2.1",
|
|
32
31
|
"eslint-plugin-eslint-plugin": "^7.3.2",
|
|
33
32
|
"eslint-plugin-jsdoc": "^62.9.0",
|
|
34
33
|
"eslint-plugin-n": "^17.24.0",
|
|
35
|
-
"eslint-plugin-svelte": "^3.17.
|
|
36
|
-
"eslint-plugin-vue": "^10.
|
|
37
|
-
"
|
|
34
|
+
"eslint-plugin-svelte": "^3.17.1",
|
|
35
|
+
"eslint-plugin-vue": "^10.9.0",
|
|
36
|
+
"eslint-plugin-yml": "^3.3.1",
|
|
37
|
+
"globals": "^17.5.0",
|
|
38
38
|
"markdownlint-cli": "^0.48.0",
|
|
39
39
|
"mocha": "12.0.0-beta-10",
|
|
40
40
|
"svelte-eslint-parser": "^1.6.0",
|
|
41
41
|
"testdouble": "^3.20.2",
|
|
42
|
-
"typescript": "^
|
|
43
|
-
"typescript-eslint": "^8.
|
|
42
|
+
"typescript": "^6.0.3",
|
|
43
|
+
"typescript-eslint": "^8.59.0",
|
|
44
44
|
"vue-eslint-parser": "^10.4.0"
|
|
45
45
|
},
|
|
46
46
|
"peerDependencies": {
|
|
@@ -84,7 +84,9 @@
|
|
|
84
84
|
"typescript",
|
|
85
85
|
"vue",
|
|
86
86
|
"vuejs",
|
|
87
|
-
"vue-js"
|
|
87
|
+
"vue-js",
|
|
88
|
+
"yaml",
|
|
89
|
+
"yml"
|
|
88
90
|
],
|
|
89
91
|
"repository": {
|
|
90
92
|
"type": "git",
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"header.d.ts","sourceRoot":"","sources":["../../../lib/rules/header.js"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"header.d.ts","sourceRoot":"","sources":["../../../lib/rules/header.js"],"names":[],"mappings":"2BAqCa,iBAAiB;0BACjB,gBAAgB;wBAChB,cAAc;0BACd,gBAAgB;;;;;yBAIhB,IAAI,GAAG,MAAM;;;;;;;;;;aAOZ,MAAM,GAAG,MAAM;;;;;;;;;;;;yBAOhB,MAAM,GAAG,MAAM,GAAG,iBAAiB;;;;;0BAGnC,UAAU,GAAG,UAAU,EAAE;;;;;;+BAEzB,IAAI,GAAG,MAAM,GAAG,SAAS;;;;;6BAGzB;IAAE,WAAW,CAAC,EAAE,gBAAgB,CAAA;CAAE;;;;;0BAElC,OAAO,GAAG,MAAM;;;;;;;;;;UAOf,MAAM;;;;;;;;;;;;;;;iBASN,WAAW;;;;;;WACX,UAAU,EAAE;;;;;;;;;;;;cAQZ,CAAC,eAAe,GAAG,YAAY,CAAC,EAAE;;;;;;;;;;;;;;;;;;YAclC,eAAe,GAAG,YAAY;;;;;;;;;;;;;;;;;4BAU/B,4BAA4B,GAAG,cAAc;oCAK7C,CAAC,QAAQ,EAAE,MAAM,CAAC;4CAClB,CAAC,QAAQ,EAAE,MAAM,EAAE,QAAQ,EAAE,cAAc,CAAC;iCAE5C,CAAC,IAAI,EAAE,WAAW,EAAE,KAAK,EAAE,WAAW,CAAC;yCACvC,CAAC,IAAI,EAAE,WAAW,EAAE,KAAK,EAAE,WAAW,EAAE,QAAQ,EAAE,cAAc,CAAC;yCAEjE,CAAC,IAAI,EAAE,WAAW,EAAE,KAAK,EAAE,WAAW,EAAE,QAAQ,EAAE,MAAM,CAAC;iDAEzD,CACV,IAAI,EAAE,WAAW,EACjB,KAAK,EAAE,WAAW,EAClB,QAAQ,EAAE,MAAM,EAChB,QAAQ,EAAE,cAAc,CACvB;;;;+BACS,CAAC,aAAa,CAAC,GACvB,qBAAqB,GACrB,6BAA6B,GAC7B,kBAAkB,GAClB,0BAA0B,GAC1B,0BAA0B,GAC1B,kCAAkC;;;;;+BAK1B,iBAAiB,gBAAgB,CAAC;oBAiClC,CAAC,MAAM,EAAE,MAAM,CAAC;;;;;UAKf,SAAS,GAAG,OAAO,GAAG,MAAM;;;;WAC5B,MAAM;;;;WACN,KAAK;;;;SACL,cAAc;;;;;;;oBAKd,MAAM;;;;;kBAEN,MAAM;;;;;;;oBAMN,MAAM;;;;;;;;;;;;;;;;;;;AA8wBpB,8BAA8B;AAC9B,0BADW,eAAe,CA2TxB;AAtsBF,2EAA2E;AAC3E,+BADW,MAAM,CAAC,MAAM,EAAE;IAAE,WAAW,EAAE,WAAW,CAAC;IAAC,KAAK,EAAE,MAAM,EAAE,CAAA;CAAC,CAAC,CAC3C;0BA1iBkC,QAAQ;4BAAR,QAAQ;oCAC1B,QAAQ"}
|