@brandlab-digital/eslint-plugin 0.1.0-alpha.0 → 0.1.0-alpha.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/dist/index.d.ts +6 -0
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +42 -6
- package/dist/index.js.map +1 -1
- package/package.json +1 -1
package/dist/index.d.ts
CHANGED
|
@@ -5,7 +5,13 @@ type ReportDescriptor = {
|
|
|
5
5
|
};
|
|
6
6
|
type RuleContext = {
|
|
7
7
|
getFilename?: () => string;
|
|
8
|
+
getSourceCode?: () => {
|
|
9
|
+
getText?: (node: unknown) => string;
|
|
10
|
+
};
|
|
8
11
|
report: (descriptor: ReportDescriptor) => void;
|
|
12
|
+
sourceCode?: {
|
|
13
|
+
getText?: (node: unknown) => string;
|
|
14
|
+
};
|
|
9
15
|
};
|
|
10
16
|
type Visitor = Record<string, (node: unknown) => void>;
|
|
11
17
|
type RuleModule = {
|
package/dist/index.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,KAAK,gBAAgB,GAAG;IACtB,IAAI,EAAE,OAAO,CAAA;IACb,SAAS,CAAC,EAAE,MAAM,CAAA;IAClB,OAAO,CAAC,EAAE,MAAM,CAAA;CACjB,CAAA;AAED,KAAK,WAAW,GAAG;IACjB,WAAW,CAAC,EAAE,MAAM,MAAM,CAAA;IAC1B,MAAM,EAAE,CAAC,UAAU,EAAE,gBAAgB,KAAK,IAAI,CAAA;
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,KAAK,gBAAgB,GAAG;IACtB,IAAI,EAAE,OAAO,CAAA;IACb,SAAS,CAAC,EAAE,MAAM,CAAA;IAClB,OAAO,CAAC,EAAE,MAAM,CAAA;CACjB,CAAA;AAED,KAAK,WAAW,GAAG;IACjB,WAAW,CAAC,EAAE,MAAM,MAAM,CAAA;IAC1B,aAAa,CAAC,EAAE,MAAM;QACpB,OAAO,CAAC,EAAE,CAAC,IAAI,EAAE,OAAO,KAAK,MAAM,CAAA;KACpC,CAAA;IACD,MAAM,EAAE,CAAC,UAAU,EAAE,gBAAgB,KAAK,IAAI,CAAA;IAC9C,UAAU,CAAC,EAAE;QACX,OAAO,CAAC,EAAE,CAAC,IAAI,EAAE,OAAO,KAAK,MAAM,CAAA;KACpC,CAAA;CACF,CAAA;AAED,KAAK,OAAO,GAAG,MAAM,CAAC,MAAM,EAAE,CAAC,IAAI,EAAE,OAAO,KAAK,IAAI,CAAC,CAAA;AAEtD,KAAK,UAAU,GAAG;IAChB,IAAI,EAAE;QACJ,IAAI,EAAE,SAAS,CAAA;QACf,IAAI,EAAE;YACJ,WAAW,EAAE,MAAM,CAAA;YACnB,WAAW,EAAE,OAAO,CAAA;SACrB,CAAA;QACD,QAAQ,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAA;QAChC,MAAM,EAAE,EAAE,CAAA;KACX,CAAA;IACD,MAAM,EAAE,CAAC,OAAO,EAAE,WAAW,KAAK,OAAO,CAAA;CAC1C,CAAA;AAiHD,eAAO,MAAM,KAAK;;;;;CAuBoB,CAAA;AAEtC,KAAK,cAAc,GAAG;IACpB,KAAK,EAAE,OAAO,KAAK,CAAA;IACnB,OAAO,EAAE;QACP,WAAW,EAAE;YACX,OAAO,EAAE;gBACP,QAAQ,EAAE,OAAO,CAAA;aAClB,CAAA;YACD,KAAK,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAA;SAC/B,CAAA;KACF,CAAA;CACF,CAAA;AAED,QAAA,MAAM,MAAM,EAAE,cAeb,CAAA;AAID,eAAe,MAAM,CAAA"}
|
package/dist/index.js
CHANGED
|
@@ -41,6 +41,47 @@ function createTextRule(options) {
|
|
|
41
41
|
},
|
|
42
42
|
};
|
|
43
43
|
}
|
|
44
|
+
function getSourceText(context, node) {
|
|
45
|
+
const sourceCode = context.sourceCode ?? context.getSourceCode?.();
|
|
46
|
+
return sourceCode?.getText?.(node) ?? '';
|
|
47
|
+
}
|
|
48
|
+
function containsAllowIndexingTrue(text) {
|
|
49
|
+
return (text.includes('ALLOW_INDEXING=true') ||
|
|
50
|
+
/ALLOW_INDEXING[\s\S]{0,80}['"]true['"]/.test(text));
|
|
51
|
+
}
|
|
52
|
+
const noAllowIndexingTrueRule = {
|
|
53
|
+
meta: {
|
|
54
|
+
type: 'problem',
|
|
55
|
+
docs: {
|
|
56
|
+
description: 'Disallow ALLOW_INDEXING=true; only ALLOW_INDEXING=1 is supported.',
|
|
57
|
+
recommended: true,
|
|
58
|
+
},
|
|
59
|
+
messages: {
|
|
60
|
+
allowIndexingTrue: 'Use ALLOW_INDEXING=1 as the only explicit indexing override.',
|
|
61
|
+
},
|
|
62
|
+
schema: [],
|
|
63
|
+
},
|
|
64
|
+
create(context) {
|
|
65
|
+
function inspectStringNode(node) {
|
|
66
|
+
const text = getNodeText(node);
|
|
67
|
+
if (text && containsAllowIndexingTrue(text)) {
|
|
68
|
+
context.report({ node, messageId: 'allowIndexingTrue' });
|
|
69
|
+
}
|
|
70
|
+
}
|
|
71
|
+
function inspectSourceNode(node) {
|
|
72
|
+
const text = getSourceText(context, node);
|
|
73
|
+
if (text && containsAllowIndexingTrue(text)) {
|
|
74
|
+
context.report({ node, messageId: 'allowIndexingTrue' });
|
|
75
|
+
}
|
|
76
|
+
}
|
|
77
|
+
return {
|
|
78
|
+
BinaryExpression: inspectSourceNode,
|
|
79
|
+
Literal: inspectStringNode,
|
|
80
|
+
Property: inspectSourceNode,
|
|
81
|
+
TemplateElement: inspectStringNode,
|
|
82
|
+
};
|
|
83
|
+
},
|
|
84
|
+
};
|
|
44
85
|
const legacyAnalyticsEvents = new Set([
|
|
45
86
|
'contact_form_submission',
|
|
46
87
|
'phone_calls',
|
|
@@ -63,12 +104,7 @@ export const rules = {
|
|
|
63
104
|
return text === 'application/ld+json' && !filename.endsWith('SchemaScript.tsx');
|
|
64
105
|
},
|
|
65
106
|
}),
|
|
66
|
-
'no-allow-indexing-true':
|
|
67
|
-
description: 'Disallow ALLOW_INDEXING=true; only ALLOW_INDEXING=1 is supported.',
|
|
68
|
-
messageId: 'allowIndexingTrue',
|
|
69
|
-
message: 'Use ALLOW_INDEXING=1 as the only explicit indexing override.',
|
|
70
|
-
matcher: (text) => text.includes('ALLOW_INDEXING=true') || text === 'true',
|
|
71
|
-
}),
|
|
107
|
+
'no-allow-indexing-true': noAllowIndexingTrueRule,
|
|
72
108
|
'no-unsafe-rich-text-sinks': createTextRule({
|
|
73
109
|
description: 'Disallow visible rich text sinks that bypass a sanitizer.',
|
|
74
110
|
messageId: 'unsafeRichTextSink',
|
package/dist/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
|