eslint-plugin-runtime-cleanup 1.2.9 → 1.2.10
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/_internal/ast-node.d.ts +5 -1
- package/dist/_internal/ast-node.d.ts.map +1 -1
- package/dist/_internal/ast-node.js +2 -1
- package/dist/_internal/ast-node.js.map +1 -1
- package/dist/_internal/bounded-cache.d.ts.map +1 -1
- package/dist/_internal/bounded-cache.js +2 -1
- package/dist/_internal/bounded-cache.js.map +1 -1
- package/dist/_internal/expression-boolean-memoizer.d.ts.map +1 -1
- package/dist/_internal/expression-boolean-memoizer.js +2 -1
- package/dist/_internal/expression-boolean-memoizer.js.map +1 -1
- package/dist/_internal/filter-callback.d.ts +5 -1
- package/dist/_internal/filter-callback.d.ts.map +1 -1
- package/dist/_internal/filter-callback.js +9 -10
- package/dist/_internal/filter-callback.js.map +1 -1
- package/dist/_internal/floating-resource.d.ts +8 -0
- package/dist/_internal/floating-resource.d.ts.map +1 -1
- package/dist/_internal/floating-resource.js +42 -36
- package/dist/_internal/floating-resource.js.map +1 -1
- package/dist/_internal/normalize-expression-text.d.ts +6 -1
- package/dist/_internal/normalize-expression-text.d.ts.map +1 -1
- package/dist/_internal/normalize-expression-text.js +30 -28
- package/dist/_internal/normalize-expression-text.js.map +1 -1
- package/dist/_internal/nullish-comparison.d.ts +1 -1
- package/dist/_internal/nullish-comparison.d.ts.map +1 -1
- package/dist/_internal/nullish-comparison.js +16 -11
- package/dist/_internal/nullish-comparison.js.map +1 -1
- package/dist/_internal/plugin-settings.d.ts +2 -1
- package/dist/_internal/plugin-settings.d.ts.map +1 -1
- package/dist/_internal/plugin-settings.js +3 -2
- package/dist/_internal/plugin-settings.js.map +1 -1
- package/dist/_internal/report-adapter.d.ts +5 -4
- package/dist/_internal/report-adapter.d.ts.map +1 -1
- package/dist/_internal/report-adapter.js +3 -2
- package/dist/_internal/report-adapter.js.map +1 -1
- package/dist/_internal/rule-catalog.d.ts.map +1 -1
- package/dist/_internal/rule-catalog.js +3 -2
- package/dist/_internal/rule-catalog.js.map +1 -1
- package/dist/_internal/rule-docs-metadata.d.ts +2 -1
- package/dist/_internal/rule-docs-metadata.d.ts.map +1 -1
- package/dist/_internal/rule-docs-metadata.js +36 -33
- package/dist/_internal/rule-docs-metadata.js.map +1 -1
- package/dist/_internal/rules-registry.d.ts +2 -1
- package/dist/_internal/rules-registry.d.ts.map +1 -1
- package/dist/_internal/rules-registry.js.map +1 -1
- package/dist/_internal/runtime-cleanup-config-references.d.ts +2 -1
- package/dist/_internal/runtime-cleanup-config-references.d.ts.map +1 -1
- package/dist/_internal/runtime-cleanup-config-references.js +2 -1
- package/dist/_internal/runtime-cleanup-config-references.js.map +1 -1
- package/dist/_internal/scope-variable.d.ts.map +1 -1
- package/dist/_internal/scope-variable.js +5 -4
- package/dist/_internal/scope-variable.js.map +1 -1
- package/dist/_internal/type-checker.d.ts +2 -2
- package/dist/_internal/type-checker.d.ts.map +1 -1
- package/dist/_internal/type-checker.js +10 -8
- package/dist/_internal/type-checker.js.map +1 -1
- package/dist/_internal/type-predicate-autofix-safety.d.ts +5 -1
- package/dist/_internal/type-predicate-autofix-safety.d.ts.map +1 -1
- package/dist/_internal/type-predicate-autofix-safety.js +9 -10
- package/dist/_internal/type-predicate-autofix-safety.js.map +1 -1
- package/dist/_internal/type-reference-node.d.ts +7 -5
- package/dist/_internal/type-reference-node.d.ts.map +1 -1
- package/dist/_internal/type-reference-node.js +6 -6
- package/dist/_internal/type-reference-node.js.map +1 -1
- package/dist/_internal/typed-rule.d.ts +2 -1
- package/dist/_internal/typed-rule.d.ts.map +1 -1
- package/dist/_internal/typed-rule.js +6 -5
- package/dist/_internal/typed-rule.js.map +1 -1
- package/dist/_internal/value-rewrite-autofix-safety.d.ts +5 -1
- package/dist/_internal/value-rewrite-autofix-safety.d.ts.map +1 -1
- package/dist/_internal/value-rewrite-autofix-safety.js +10 -18
- package/dist/_internal/value-rewrite-autofix-safety.js.map +1 -1
- package/dist/plugin.cjs +565 -656
- package/dist/plugin.cjs.map +4 -4
- package/dist/plugin.d.cts +2 -1
- package/dist/plugin.d.ts +2 -1
- package/dist/plugin.d.ts.map +1 -1
- package/dist/plugin.js +8 -7
- package/dist/plugin.js.map +1 -1
- package/dist/rules/no-floating-abort-controllers.d.ts.map +1 -1
- package/dist/rules/no-floating-abort-controllers.js +24 -52
- package/dist/rules/no-floating-abort-controllers.js.map +1 -1
- package/dist/rules/no-floating-audio-contexts.d.ts.map +1 -1
- package/dist/rules/no-floating-audio-contexts.js +7 -6
- package/dist/rules/no-floating-audio-contexts.js.map +1 -1
- package/dist/rules/no-floating-broadcast-channels.d.ts.map +1 -1
- package/dist/rules/no-floating-broadcast-channels.js +31 -59
- package/dist/rules/no-floating-broadcast-channels.js.map +1 -1
- package/dist/rules/no-floating-child-processes.d.ts.map +1 -1
- package/dist/rules/no-floating-child-processes.js +43 -45
- package/dist/rules/no-floating-child-processes.js.map +1 -1
- package/dist/rules/no-floating-disposable-stacks.d.ts.map +1 -1
- package/dist/rules/no-floating-disposable-stacks.js +37 -38
- package/dist/rules/no-floating-disposable-stacks.js.map +1 -1
- package/dist/rules/no-floating-file-watchers.d.ts.map +1 -1
- package/dist/rules/no-floating-file-watchers.js +40 -42
- package/dist/rules/no-floating-file-watchers.js.map +1 -1
- package/dist/rules/no-floating-geolocation-watches.js +20 -20
- package/dist/rules/no-floating-geolocation-watches.js.map +1 -1
- package/dist/rules/no-floating-infinite-animations.d.ts.map +1 -1
- package/dist/rules/no-floating-infinite-animations.js +4 -3
- package/dist/rules/no-floating-infinite-animations.js.map +1 -1
- package/dist/rules/no-floating-media-streams.d.ts.map +1 -1
- package/dist/rules/no-floating-media-streams.js +24 -24
- package/dist/rules/no-floating-media-streams.js.map +1 -1
- package/dist/rules/no-floating-message-channels.js +30 -30
- package/dist/rules/no-floating-message-channels.js.map +1 -1
- package/dist/rules/no-floating-network-connections.d.ts.map +1 -1
- package/dist/rules/no-floating-network-connections.js +36 -36
- package/dist/rules/no-floating-network-connections.js.map +1 -1
- package/dist/rules/no-floating-object-urls.d.ts.map +1 -1
- package/dist/rules/no-floating-object-urls.js +4 -3
- package/dist/rules/no-floating-object-urls.js.map +1 -1
- package/dist/rules/no-floating-observers.d.ts.map +1 -1
- package/dist/rules/no-floating-observers.js +33 -34
- package/dist/rules/no-floating-observers.js.map +1 -1
- package/dist/rules/no-floating-servers.d.ts.map +1 -1
- package/dist/rules/no-floating-servers.js +50 -52
- package/dist/rules/no-floating-servers.js.map +1 -1
- package/dist/rules/no-floating-streams.d.ts.map +1 -1
- package/dist/rules/no-floating-streams.js +28 -29
- package/dist/rules/no-floating-streams.js.map +1 -1
- package/dist/rules/no-floating-timers.d.ts.map +1 -1
- package/dist/rules/no-floating-timers.js +7 -47
- package/dist/rules/no-floating-timers.js.map +1 -1
- package/dist/rules/no-floating-wake-locks.js +20 -20
- package/dist/rules/no-floating-wake-locks.js.map +1 -1
- package/dist/rules/no-floating-web-stream-locks.d.ts.map +1 -1
- package/dist/rules/no-floating-web-stream-locks.js +4 -3
- package/dist/rules/no-floating-web-stream-locks.js.map +1 -1
- package/dist/rules/no-floating-workers.d.ts.map +1 -1
- package/dist/rules/no-floating-workers.js +39 -40
- package/dist/rules/no-floating-workers.js.map +1 -1
- package/dist/rules/no-unmanaged-event-listeners.d.ts.map +1 -1
- package/dist/rules/no-unmanaged-event-listeners.js +23 -23
- package/dist/rules/no-unmanaged-event-listeners.js.map +1 -1
- package/docs/rules/no-floating-audio-contexts.md +1 -2
- package/docs/rules/no-floating-media-streams.md +1 -1
- package/docs/rules/no-floating-object-urls.md +3 -3
- package/docs/rules/no-floating-observers.md +1 -1
- package/docs/rules/no-floating-servers.md +1 -1
- package/docs/rules/no-floating-wake-locks.md +1 -1
- package/docs/rules/no-floating-web-stream-locks.md +1 -2
- package/package.json +7 -4
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"no-floating-geolocation-watches.js","sourceRoot":"","sources":["../../src/rules/no-floating-geolocation-watches.ts"],"names":[],"mappings":"AAAA;;;GAGG;AACH,OAAO,EACH,cAAc,GAGjB,MAAM,0BAA0B,CAAC;
|
|
1
|
+
{"version":3,"file":"no-floating-geolocation-watches.js","sourceRoot":"","sources":["../../src/rules/no-floating-geolocation-watches.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"no-floating-infinite-animations.d.ts","sourceRoot":"","sources":["../../src/rules/no-floating-infinite-animations.ts"],"names":[],"mappings":"AAAA;;;GAGG;AACH,OAAO,EAEH,KAAK,QAAQ,EAEhB,MAAM,0BAA0B,CAAC;
|
|
1
|
+
{"version":3,"file":"no-floating-infinite-animations.d.ts","sourceRoot":"","sources":["../../src/rules/no-floating-infinite-animations.ts"],"names":[],"mappings":"AAAA;;;GAGG;AACH,OAAO,EAEH,KAAK,QAAQ,EAEhB,MAAM,0BAA0B,CAAC;AA2JlC,iFAAiF;AACjF,QAAA,MAAM,4BAA4B,EAAE,QAAQ,CAAC,UAAU,CACnD,2BAA2B,EAC3B,SAAS,EAAE,CAmDb,CAAC;AAEH,eAAe,4BAA4B,CAAC"}
|
|
@@ -3,6 +3,7 @@
|
|
|
3
3
|
* Require infinite Web Animations to be retained so they can be canceled.
|
|
4
4
|
*/
|
|
5
5
|
import { AST_NODE_TYPES, } from "@typescript-eslint/utils";
|
|
6
|
+
import { arrayAt, isDefined } from "ts-extras";
|
|
6
7
|
import { getStaticPropertyName, isDiscardedResourceExpression, isImmediateUnownedMemberReceiver, } from "../_internal/floating-resource.js";
|
|
7
8
|
import { createRuleDocsUrl } from "../_internal/rule-docs-url.js";
|
|
8
9
|
import { getVariableInScopeChain } from "../_internal/scope-variable.js";
|
|
@@ -90,9 +91,9 @@ const noFloatingInfiniteAnimations = createTypedRule({
|
|
|
90
91
|
return {
|
|
91
92
|
CallExpression(node) {
|
|
92
93
|
const receiver = getAnimationReceiver(node.callee);
|
|
93
|
-
const timingOptions = node.arguments
|
|
94
|
-
if (receiver
|
|
95
|
-
timingOptions
|
|
94
|
+
const timingOptions = arrayAt(node.arguments, 1);
|
|
95
|
+
if (!isDefined(receiver) ||
|
|
96
|
+
!isDefined(timingOptions) ||
|
|
96
97
|
!hasInfiniteIterationsOption(context, timingOptions) ||
|
|
97
98
|
!isReceiverElement(context, receiver) ||
|
|
98
99
|
(!isDiscardedResourceExpression(node) &&
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"no-floating-infinite-animations.js","sourceRoot":"","sources":["../../src/rules/no-floating-infinite-animations.ts"],"names":[],"mappings":"AAAA;;;GAGG;AACH,OAAO,EACH,cAAc,GAGjB,MAAM,0BAA0B,CAAC;
|
|
1
|
+
{"version":3,"file":"no-floating-infinite-animations.js","sourceRoot":"","sources":["../../src/rules/no-floating-infinite-animations.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"no-floating-media-streams.d.ts","sourceRoot":"","sources":["../../src/rules/no-floating-media-streams.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"no-floating-media-streams.d.ts","sourceRoot":"","sources":["../../src/rules/no-floating-media-streams.ts"],"names":[],"mappings":"AAEA;;;GAGG;AACH,OAAO,EAEH,KAAK,QAAQ,EAEhB,MAAM,0BAA0B,CAAC;AA2NlC,2EAA2E;AAC3E,QAAA,MAAM,sBAAsB,EAAE,QAAQ,CAAC,UAAU,CAC7C,qBAAqB,EACrB,SAAS,EAAE,CAgDb,CAAC;AAEH,eAAe,sBAAsB,CAAC"}
|
|
@@ -3,6 +3,7 @@
|
|
|
3
3
|
* Require captured MediaStream handles to be retained so their tracks can be stopped.
|
|
4
4
|
*/
|
|
5
5
|
import { AST_NODE_TYPES, } from "@typescript-eslint/utils";
|
|
6
|
+
import { arrayAt, arrayFirst, isDefined, setHas } from "ts-extras";
|
|
6
7
|
import { getParentNode } from "../_internal/ast-node.js";
|
|
7
8
|
import { createRuleDocsUrl } from "../_internal/rule-docs-url.js";
|
|
8
9
|
import { getVariableInScopeChain } from "../_internal/scope-variable.js";
|
|
@@ -14,7 +15,7 @@ const mediaCaptureFunctionNames = [
|
|
|
14
15
|
const globalNavigatorReceiverNames = ["globalThis", "window"];
|
|
15
16
|
const mediaCaptureFunctionNameSet = new Set(mediaCaptureFunctionNames);
|
|
16
17
|
const globalNavigatorReceiverNameSet = new Set(globalNavigatorReceiverNames);
|
|
17
|
-
const isMediaCaptureFunctionName = (name) => mediaCaptureFunctionNameSet
|
|
18
|
+
const isMediaCaptureFunctionName = (name) => setHas(mediaCaptureFunctionNameSet, name);
|
|
18
19
|
const getTransparentWrappedExpression = (node) => {
|
|
19
20
|
if (node.type === AST_NODE_TYPES.AwaitExpression) {
|
|
20
21
|
return node.argument;
|
|
@@ -56,7 +57,7 @@ const collectStaticMemberPath = (node) => {
|
|
|
56
57
|
}
|
|
57
58
|
const objectPath = collectStaticMemberPath(node.object);
|
|
58
59
|
const propertyName = getStaticPropertyName(node.property, node.computed);
|
|
59
|
-
return objectPath
|
|
60
|
+
return !isDefined(objectPath) || !isDefined(propertyName)
|
|
60
61
|
? undefined
|
|
61
62
|
: [...objectPath, propertyName];
|
|
62
63
|
};
|
|
@@ -82,17 +83,17 @@ const isNavigatorPathShadowed = (context, callee) => {
|
|
|
82
83
|
isShadowedNavigatorIdentifier(context, rootIdentifier));
|
|
83
84
|
};
|
|
84
85
|
const getMediaCaptureNameFromPath = (path) => {
|
|
85
|
-
const captureName = path
|
|
86
|
-
if (captureName
|
|
86
|
+
const captureName = arrayAt(path, -1);
|
|
87
|
+
if (!isDefined(captureName) || !isMediaCaptureFunctionName(captureName)) {
|
|
87
88
|
return undefined;
|
|
88
89
|
}
|
|
89
90
|
if (path.length === 3 &&
|
|
90
|
-
path
|
|
91
|
+
arrayFirst(path) === "navigator" &&
|
|
91
92
|
path[1] === "mediaDevices") {
|
|
92
93
|
return captureName;
|
|
93
94
|
}
|
|
94
95
|
if (path.length === 4 &&
|
|
95
|
-
globalNavigatorReceiverNameSet
|
|
96
|
+
setHas(globalNavigatorReceiverNameSet, arrayFirst(path) ?? "") &&
|
|
96
97
|
path[1] === "navigator" &&
|
|
97
98
|
path[2] === "mediaDevices") {
|
|
98
99
|
return captureName;
|
|
@@ -105,29 +106,28 @@ const getMediaCaptureFunctionName = (context, callee) => {
|
|
|
105
106
|
return undefined;
|
|
106
107
|
}
|
|
107
108
|
const path = collectStaticMemberPath(callee);
|
|
108
|
-
return path
|
|
109
|
+
return isDefined(path) ? getMediaCaptureNameFromPath(path) : undefined;
|
|
109
110
|
};
|
|
110
111
|
const isDiscardedMediaStreamRequest = (node) => {
|
|
111
112
|
let current = node;
|
|
112
113
|
let parent = getParentNode(current);
|
|
113
|
-
while (parent
|
|
114
|
+
while (isDefined(parent)) {
|
|
114
115
|
const wrappedExpression = getTransparentWrappedExpression(parent);
|
|
115
|
-
if (wrappedExpression
|
|
116
|
-
|
|
117
|
-
|
|
118
|
-
|
|
116
|
+
if (wrappedExpression !== current) {
|
|
117
|
+
if (parent.type === AST_NODE_TYPES.ExpressionStatement &&
|
|
118
|
+
parent.expression === current) {
|
|
119
|
+
return true;
|
|
120
|
+
}
|
|
121
|
+
if (parent.type === AST_NODE_TYPES.UnaryExpression &&
|
|
122
|
+
parent.operator === "void" &&
|
|
123
|
+
parent.argument === current) {
|
|
124
|
+
const unaryParent = getParentNode(parent);
|
|
125
|
+
return unaryParent?.type === AST_NODE_TYPES.ExpressionStatement;
|
|
126
|
+
}
|
|
127
|
+
return false;
|
|
119
128
|
}
|
|
120
|
-
|
|
121
|
-
|
|
122
|
-
return true;
|
|
123
|
-
}
|
|
124
|
-
if (parent.type === AST_NODE_TYPES.UnaryExpression &&
|
|
125
|
-
parent.operator === "void" &&
|
|
126
|
-
parent.argument === current) {
|
|
127
|
-
const unaryParent = getParentNode(parent);
|
|
128
|
-
return unaryParent?.type === AST_NODE_TYPES.ExpressionStatement;
|
|
129
|
-
}
|
|
130
|
-
return false;
|
|
129
|
+
current = parent;
|
|
130
|
+
parent = getParentNode(current);
|
|
131
131
|
}
|
|
132
132
|
return false;
|
|
133
133
|
};
|
|
@@ -137,7 +137,7 @@ const noFloatingMediaStreams = createTypedRule({
|
|
|
137
137
|
return {
|
|
138
138
|
CallExpression(node) {
|
|
139
139
|
const captureName = getMediaCaptureFunctionName(context, node.callee);
|
|
140
|
-
if (captureName
|
|
140
|
+
if (!isDefined(captureName) ||
|
|
141
141
|
!isDiscardedMediaStreamRequest(node)) {
|
|
142
142
|
return;
|
|
143
143
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"no-floating-media-streams.js","sourceRoot":"","sources":["../../src/rules/no-floating-media-streams.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"no-floating-media-streams.js","sourceRoot":"","sources":["../../src/rules/no-floating-media-streams.ts"],"names":[],"mappings":"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"}
|
|
@@ -3,6 +3,7 @@
|
|
|
3
3
|
* Require MessageChannel ports to be retained so they can be closed.
|
|
4
4
|
*/
|
|
5
5
|
import { AST_NODE_TYPES, } from "@typescript-eslint/utils";
|
|
6
|
+
import { isDefined, setHas } from "ts-extras";
|
|
6
7
|
import { getParentNode } from "../_internal/ast-node.js";
|
|
7
8
|
import { createRuleDocsUrl } from "../_internal/rule-docs-url.js";
|
|
8
9
|
import { getVariableInScopeChain } from "../_internal/scope-variable.js";
|
|
@@ -16,8 +17,8 @@ const globalReceiverNames = [
|
|
|
16
17
|
];
|
|
17
18
|
const globalReceiverNameSet = new Set(globalReceiverNames);
|
|
18
19
|
const messagePortPropertyNameSet = new Set(messagePortPropertyNames);
|
|
19
|
-
const isGlobalReceiverName = (name) => globalReceiverNameSet
|
|
20
|
-
const isMessagePortPropertyName = (name) => messagePortPropertyNameSet
|
|
20
|
+
const isGlobalReceiverName = (name) => setHas(globalReceiverNameSet, name);
|
|
21
|
+
const isMessagePortPropertyName = (name) => setHas(messagePortPropertyNameSet, name);
|
|
21
22
|
const getTransparentWrappedExpression = (node) => {
|
|
22
23
|
if (node.type === AST_NODE_TYPES.ChainExpression) {
|
|
23
24
|
return node.expression;
|
|
@@ -66,44 +67,43 @@ const isMessageChannelConstructor = (context, callee) => isDirectMessageChannelC
|
|
|
66
67
|
const isDiscardedMessageChannel = (node) => {
|
|
67
68
|
let current = node;
|
|
68
69
|
let parent = getParentNode(current);
|
|
69
|
-
while (parent
|
|
70
|
+
while (isDefined(parent)) {
|
|
70
71
|
const wrappedExpression = getTransparentWrappedExpression(parent);
|
|
71
|
-
if (wrappedExpression
|
|
72
|
-
|
|
73
|
-
|
|
74
|
-
|
|
75
|
-
|
|
76
|
-
|
|
77
|
-
|
|
78
|
-
|
|
79
|
-
|
|
80
|
-
|
|
81
|
-
|
|
82
|
-
|
|
83
|
-
const unaryParent = getParentNode(parent);
|
|
84
|
-
return unaryParent?.type === AST_NODE_TYPES.ExpressionStatement;
|
|
72
|
+
if (wrappedExpression !== current) {
|
|
73
|
+
if (parent.type === AST_NODE_TYPES.ExpressionStatement &&
|
|
74
|
+
parent.expression === current) {
|
|
75
|
+
return true;
|
|
76
|
+
}
|
|
77
|
+
if (parent.type === AST_NODE_TYPES.UnaryExpression &&
|
|
78
|
+
parent.operator === "void" &&
|
|
79
|
+
parent.argument === current) {
|
|
80
|
+
const unaryParent = getParentNode(parent);
|
|
81
|
+
return unaryParent?.type === AST_NODE_TYPES.ExpressionStatement;
|
|
82
|
+
}
|
|
83
|
+
return false;
|
|
85
84
|
}
|
|
86
|
-
|
|
85
|
+
current = parent;
|
|
86
|
+
parent = getParentNode(current);
|
|
87
87
|
}
|
|
88
88
|
return false;
|
|
89
89
|
};
|
|
90
90
|
const isImmediateMessagePortAccess = (node) => {
|
|
91
91
|
let current = node;
|
|
92
92
|
let parent = getParentNode(current);
|
|
93
|
-
while (parent
|
|
93
|
+
while (isDefined(parent)) {
|
|
94
94
|
const wrappedExpression = getTransparentWrappedExpression(parent);
|
|
95
|
-
if (wrappedExpression
|
|
96
|
-
|
|
97
|
-
|
|
98
|
-
|
|
99
|
-
|
|
100
|
-
|
|
101
|
-
parent.
|
|
102
|
-
|
|
103
|
-
|
|
95
|
+
if (wrappedExpression !== current) {
|
|
96
|
+
if (parent.type !== AST_NODE_TYPES.MemberExpression ||
|
|
97
|
+
parent.object !== current ||
|
|
98
|
+
parent.optional) {
|
|
99
|
+
return false;
|
|
100
|
+
}
|
|
101
|
+
const propertyName = getStaticPropertyName(parent.property, parent.computed);
|
|
102
|
+
return (isDefined(propertyName) &&
|
|
103
|
+
isMessagePortPropertyName(propertyName));
|
|
104
104
|
}
|
|
105
|
-
|
|
106
|
-
|
|
105
|
+
current = parent;
|
|
106
|
+
parent = getParentNode(current);
|
|
107
107
|
}
|
|
108
108
|
return false;
|
|
109
109
|
};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"no-floating-message-channels.js","sourceRoot":"","sources":["../../src/rules/no-floating-message-channels.ts"],"names":[],"mappings":"AAAA;;;GAGG;AACH,OAAO,EACH,cAAc,GAGjB,MAAM,0BAA0B,CAAC;
|
|
1
|
+
{"version":3,"file":"no-floating-message-channels.js","sourceRoot":"","sources":["../../src/rules/no-floating-message-channels.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"no-floating-network-connections.d.ts","sourceRoot":"","sources":["../../src/rules/no-floating-network-connections.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"no-floating-network-connections.d.ts","sourceRoot":"","sources":["../../src/rules/no-floating-network-connections.ts"],"names":[],"mappings":"AAEA;;;GAGG;AACH,OAAO,EAEH,KAAK,QAAQ,EAEhB,MAAM,0BAA0B,CAAC;AAwNlC,iFAAiF;AACjF,QAAA,MAAM,4BAA4B,EAAE,QAAQ,CAAC,UAAU,CACnD,2BAA2B,EAC3B,SAAS,EAAE,CAiDb,CAAC;AAEH,eAAe,4BAA4B,CAAC"}
|
|
@@ -3,6 +3,7 @@
|
|
|
3
3
|
* Require browser network connection handles to be retained so they can be closed.
|
|
4
4
|
*/
|
|
5
5
|
import { AST_NODE_TYPES, } from "@typescript-eslint/utils";
|
|
6
|
+
import { isDefined, setHas } from "ts-extras";
|
|
6
7
|
import { getParentNode } from "../_internal/ast-node.js";
|
|
7
8
|
import { createRuleDocsUrl } from "../_internal/rule-docs-url.js";
|
|
8
9
|
import { getVariableInScopeChain } from "../_internal/scope-variable.js";
|
|
@@ -18,8 +19,8 @@ const globalReceiverNames = [
|
|
|
18
19
|
];
|
|
19
20
|
const networkConnectionConstructorNameSet = new Set(networkConnectionConstructorNames);
|
|
20
21
|
const globalReceiverNameSet = new Set(globalReceiverNames);
|
|
21
|
-
const isNetworkConnectionConstructorName = (name) => networkConnectionConstructorNameSet
|
|
22
|
-
const isGlobalReceiverName = (name) => globalReceiverNameSet
|
|
22
|
+
const isNetworkConnectionConstructorName = (name) => setHas(networkConnectionConstructorNameSet, name);
|
|
23
|
+
const isGlobalReceiverName = (name) => setHas(globalReceiverNameSet, name);
|
|
23
24
|
const getTransparentWrappedExpression = (node) => {
|
|
24
25
|
if (node.type === AST_NODE_TYPES.ChainExpression) {
|
|
25
26
|
return node.expression;
|
|
@@ -70,7 +71,7 @@ const getMemberNetworkConnectionConstructorName = (callee) => {
|
|
|
70
71
|
return undefined;
|
|
71
72
|
}
|
|
72
73
|
const constructorName = getStaticPropertyName(callee.property, callee.computed);
|
|
73
|
-
return constructorName
|
|
74
|
+
return isDefined(constructorName) &&
|
|
74
75
|
isNetworkConnectionConstructorName(constructorName)
|
|
75
76
|
? constructorName
|
|
76
77
|
: undefined;
|
|
@@ -80,48 +81,47 @@ const getNetworkConnectionConstructorName = (context, callee) => getDirectNetwor
|
|
|
80
81
|
const isDiscardedNetworkConnection = (node) => {
|
|
81
82
|
let current = node;
|
|
82
83
|
let parent = getParentNode(current);
|
|
83
|
-
while (parent
|
|
84
|
+
while (isDefined(parent)) {
|
|
84
85
|
const wrappedExpression = getTransparentWrappedExpression(parent);
|
|
85
|
-
if (wrappedExpression
|
|
86
|
-
|
|
87
|
-
|
|
88
|
-
|
|
89
|
-
|
|
90
|
-
|
|
91
|
-
|
|
92
|
-
|
|
93
|
-
|
|
94
|
-
|
|
95
|
-
|
|
96
|
-
|
|
97
|
-
const unaryParent = getParentNode(parent);
|
|
98
|
-
return unaryParent?.type === AST_NODE_TYPES.ExpressionStatement;
|
|
86
|
+
if (wrappedExpression !== current) {
|
|
87
|
+
if (parent.type === AST_NODE_TYPES.ExpressionStatement &&
|
|
88
|
+
parent.expression === current) {
|
|
89
|
+
return true;
|
|
90
|
+
}
|
|
91
|
+
if (parent.type === AST_NODE_TYPES.UnaryExpression &&
|
|
92
|
+
parent.operator === "void" &&
|
|
93
|
+
parent.argument === current) {
|
|
94
|
+
const unaryParent = getParentNode(parent);
|
|
95
|
+
return unaryParent?.type === AST_NODE_TYPES.ExpressionStatement;
|
|
96
|
+
}
|
|
97
|
+
return false;
|
|
99
98
|
}
|
|
100
|
-
|
|
99
|
+
current = parent;
|
|
100
|
+
parent = getParentNode(current);
|
|
101
101
|
}
|
|
102
102
|
return false;
|
|
103
103
|
};
|
|
104
104
|
const isImmediateNetworkConnectionMethodReceiver = (node) => {
|
|
105
105
|
let current = node;
|
|
106
106
|
let parent = getParentNode(current);
|
|
107
|
-
while (parent
|
|
107
|
+
while (isDefined(parent)) {
|
|
108
108
|
const wrappedExpression = getTransparentWrappedExpression(parent);
|
|
109
|
-
if (wrappedExpression
|
|
110
|
-
|
|
111
|
-
|
|
112
|
-
|
|
113
|
-
|
|
114
|
-
|
|
115
|
-
parent.
|
|
116
|
-
|
|
117
|
-
|
|
118
|
-
|
|
119
|
-
|
|
120
|
-
return
|
|
109
|
+
if (wrappedExpression !== current) {
|
|
110
|
+
if (parent.type !== AST_NODE_TYPES.MemberExpression ||
|
|
111
|
+
parent.object !== current ||
|
|
112
|
+
parent.optional) {
|
|
113
|
+
return false;
|
|
114
|
+
}
|
|
115
|
+
if (getStaticPropertyName(parent.property, parent.computed) ===
|
|
116
|
+
"close") {
|
|
117
|
+
return false;
|
|
118
|
+
}
|
|
119
|
+
const callExpression = getParentNode(parent);
|
|
120
|
+
return (callExpression?.type === AST_NODE_TYPES.CallExpression &&
|
|
121
|
+
callExpression.callee === parent);
|
|
121
122
|
}
|
|
122
|
-
|
|
123
|
-
|
|
124
|
-
callExpression.callee === parent);
|
|
123
|
+
current = parent;
|
|
124
|
+
parent = getParentNode(current);
|
|
125
125
|
}
|
|
126
126
|
return false;
|
|
127
127
|
};
|
|
@@ -131,7 +131,7 @@ const noFloatingNetworkConnections = createTypedRule({
|
|
|
131
131
|
return {
|
|
132
132
|
NewExpression(node) {
|
|
133
133
|
const connectionName = getNetworkConnectionConstructorName(context, node.callee);
|
|
134
|
-
if (connectionName
|
|
134
|
+
if (!isDefined(connectionName) ||
|
|
135
135
|
(!isDiscardedNetworkConnection(node) &&
|
|
136
136
|
!isImmediateNetworkConnectionMethodReceiver(node))) {
|
|
137
137
|
return;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"no-floating-network-connections.js","sourceRoot":"","sources":["../../src/rules/no-floating-network-connections.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"no-floating-network-connections.js","sourceRoot":"","sources":["../../src/rules/no-floating-network-connections.ts"],"names":[],"mappings":"AAEA;;;GAGG;AACH,OAAO,EACH,cAAc,GAGjB,MAAM,0BAA0B,CAAC;AAClC,OAAO,EAAE,SAAS,EAAE,MAAM,EAAE,MAAM,WAAW,CAAC;AAE9C,OAAO,EAAE,aAAa,EAAE,MAAM,0BAA0B,CAAC;AACzD,OAAO,EAAE,iBAAiB,EAAE,MAAM,+BAA+B,CAAC;AAClE,OAAO,EAAE,uBAAuB,EAAE,MAAM,gCAAgC,CAAC;AACzE,OAAO,EACH,eAAe,GAElB,MAAM,4BAA4B,CAAC;AAEpC,MAAM,iCAAiC,GAAG;IACtC,aAAa;IACb,WAAW;CACL,CAAC;AACX,MAAM,mBAAmB,GAAG;IACxB,YAAY;IACZ,MAAM;IACN,QAAQ;CACF,CAAC;AAKX,MAAM,mCAAmC,GAAwB,IAAI,GAAG,CACpE,iCAAiC,CACpC,CAAC;AACF,MAAM,qBAAqB,GAAwB,IAAI,GAAG,CACtD,mBAAmB,CACtB,CAAC;AAEF,MAAM,kCAAkC,GAAG,CACvC,IAAY,EAC4B,EAAE,CAC1C,MAAM,CAAC,mCAAmC,EAAE,IAAI,CAAC,CAAC;AAEtD,MAAM,oBAAoB,GAAG,CAAC,IAAY,EAAW,EAAE,CACnD,MAAM,CAAC,qBAAqB,EAAE,IAAI,CAAC,CAAC;AAExC,MAAM,+BAA+B,GAAG,CACpC,IAA6B,EACM,EAAE;IACrC,IAAI,IAAI,CAAC,IAAI,KAAK,cAAc,CAAC,eAAe,EAAE,CAAC;QAC/C,OAAO,IAAI,CAAC,UAAU,CAAC;IAC3B,CAAC;IAED,IAAI,IAAI,CAAC,IAAI,KAAK,cAAc,CAAC,cAAc,EAAE,CAAC;QAC9C,OAAO,IAAI,CAAC,UAAU,CAAC;IAC3B,CAAC;IAED,IAAI,IAAI,CAAC,IAAI,KAAK,cAAc,CAAC,mBAAmB,EAAE,CAAC;QACnD,OAAO,IAAI,CAAC,UAAU,CAAC;IAC3B,CAAC;IAED,IAAI,IAAI,CAAC,IAAI,KAAK,cAAc,CAAC,qBAAqB,EAAE,CAAC;QACrD,OAAO,IAAI,CAAC,UAAU,CAAC;IAC3B,CAAC;IAED,IAAI,IAAI,CAAC,IAAI,KAAK,cAAc,CAAC,eAAe,EAAE,CAAC;QAC/C,OAAO,IAAI,CAAC,UAAU,CAAC;IAC3B,CAAC;IAED,OAAO,SAAS,CAAC;AACrB,CAAC,CAAC;AAEF,MAAM,qBAAqB,GAAG,CAC1B,IAAqD,EACrD,QAAiB,EACC,EAAE;IACpB,IAAI,CAAC,QAAQ,IAAI,IAAI,CAAC,IAAI,KAAK,cAAc,CAAC,UAAU,EAAE,CAAC;QACvD,OAAO,IAAI,CAAC,IAAI,CAAC;IACrB,CAAC;IAED,IACI,QAAQ;QACR,IAAI,CAAC,IAAI,KAAK,cAAc,CAAC,OAAO;QACpC,OAAO,IAAI,CAAC,KAAK,KAAK,QAAQ,EAChC,CAAC;QACC,OAAO,IAAI,CAAC,KAAK,CAAC;IACtB,CAAC;IAED,OAAO,SAAS,CAAC;AACrB,CAAC,CAAC;AAEF,MAAM,qCAAqC,GAAG,CAC1C,OAAyB,EACzB,UAAyC,EAClC,EAAE;IACT,MAAM,KAAK,GAAG,OAAO,CAAC,UAAU,CAAC,QAAQ,CAAC,UAAU,CAAC,CAAC;IACtD,MAAM,QAAQ,GAAG,uBAAuB,CAAC,KAAK,EAAE,UAAU,CAAC,IAAI,CAAC,CAAC;IAEjE,OAAO,QAAQ,KAAK,IAAI,IAAI,QAAQ,CAAC,IAAI,CAAC,MAAM,GAAG,CAAC,CAAC;AACzD,CAAC,CAAC;AAEF,MAAM,yCAAyC,GAAG,CAC9C,OAAyB,EACzB,MAAkD,EACN,EAAE;IAC9C,IACI,MAAM,CAAC,IAAI,KAAK,cAAc,CAAC,UAAU;QACzC,CAAC,kCAAkC,CAAC,MAAM,CAAC,IAAI,CAAC;QAChD,qCAAqC,CAAC,OAAO,EAAE,MAAM,CAAC,EACxD,CAAC;QACC,OAAO,SAAS,CAAC;IACrB,CAAC;IAED,OAAO,MAAM,CAAC,IAAI,CAAC;AACvB,CAAC,CAAC;AAEF,MAAM,yCAAyC,GAAG,CAC9C,MAAkD,EACN,EAAE;IAC9C,IACI,MAAM,CAAC,IAAI,KAAK,cAAc,CAAC,gBAAgB;QAC/C,MAAM,CAAC,QAAQ;QACf,MAAM,CAAC,MAAM,CAAC,IAAI,KAAK,cAAc,CAAC,UAAU;QAChD,CAAC,oBAAoB,CAAC,MAAM,CAAC,MAAM,CAAC,IAAI,CAAC,EAC3C,CAAC;QACC,OAAO,SAAS,CAAC;IACrB,CAAC;IAED,MAAM,eAAe,GAAG,qBAAqB,CACzC,MAAM,CAAC,QAAQ,EACf,MAAM,CAAC,QAAQ,CAClB,CAAC;IAEF,OAAO,SAAS,CAAC,eAAe,CAAC;QAC7B,kCAAkC,CAAC,eAAe,CAAC;QACnD,CAAC,CAAC,eAAe;QACjB,CAAC,CAAC,SAAS,CAAC;AACpB,CAAC,CAAC;AAEF,MAAM,mCAAmC,GAAG,CACxC,OAAyB,EACzB,MAAkD,EACN,EAAE,CAC9C,yCAAyC,CAAC,OAAO,EAAE,MAAM,CAAC;IAC1D,yCAAyC,CAAC,MAAM,CAAC,CAAC;AAEtD,MAAM,4BAA4B,GAAG,CACjC,IAAsC,EAC/B,EAAE;IACT,IAAI,OAAO,GAA4B,IAAI,CAAC;IAC5C,IAAI,MAAM,GAAG,aAAa,CAAC,OAAO,CAAC,CAAC;IAEpC,OAAO,SAAS,CAAC,MAAM,CAAC,EAAE,CAAC;QACvB,MAAM,iBAAiB,GAAG,+BAA+B,CAAC,MAAM,CAAC,CAAC;QAElE,IAAI,iBAAiB,KAAK,OAAO,EAAE,CAAC;YAChC,IACI,MAAM,CAAC,IAAI,KAAK,cAAc,CAAC,mBAAmB;gBAClD,MAAM,CAAC,UAAU,KAAK,OAAO,EAC/B,CAAC;gBACC,OAAO,IAAI,CAAC;YAChB,CAAC;YAED,IACI,MAAM,CAAC,IAAI,KAAK,cAAc,CAAC,eAAe;gBAC9C,MAAM,CAAC,QAAQ,KAAK,MAAM;gBAC1B,MAAM,CAAC,QAAQ,KAAK,OAAO,EAC7B,CAAC;gBACC,MAAM,WAAW,GAAG,aAAa,CAAC,MAAM,CAAC,CAAC;gBAE1C,OAAO,WAAW,EAAE,IAAI,KAAK,cAAc,CAAC,mBAAmB,CAAC;YACpE,CAAC;YAED,OAAO,KAAK,CAAC;QACjB,CAAC;QAED,OAAO,GAAG,MAAM,CAAC;QACjB,MAAM,GAAG,aAAa,CAAC,OAAO,CAAC,CAAC;IACpC,CAAC;IAED,OAAO,KAAK,CAAC;AACjB,CAAC,CAAC;AAEF,MAAM,0CAA0C,GAAG,CAC/C,IAAsC,EAC/B,EAAE;IACT,IAAI,OAAO,GAA4B,IAAI,CAAC;IAC5C,IAAI,MAAM,GAAG,aAAa,CAAC,OAAO,CAAC,CAAC;IAEpC,OAAO,SAAS,CAAC,MAAM,CAAC,EAAE,CAAC;QACvB,MAAM,iBAAiB,GAAG,+BAA+B,CAAC,MAAM,CAAC,CAAC;QAElE,IAAI,iBAAiB,KAAK,OAAO,EAAE,CAAC;YAChC,IACI,MAAM,CAAC,IAAI,KAAK,cAAc,CAAC,gBAAgB;gBAC/C,MAAM,CAAC,MAAM,KAAK,OAAO;gBACzB,MAAM,CAAC,QAAQ,EACjB,CAAC;gBACC,OAAO,KAAK,CAAC;YACjB,CAAC;YAED,IACI,qBAAqB,CAAC,MAAM,CAAC,QAAQ,EAAE,MAAM,CAAC,QAAQ,CAAC;gBACvD,OAAO,EACT,CAAC;gBACC,OAAO,KAAK,CAAC;YACjB,CAAC;YAED,MAAM,cAAc,GAAG,aAAa,CAAC,MAAM,CAAC,CAAC;YAE7C,OAAO,CACH,cAAc,EAAE,IAAI,KAAK,cAAc,CAAC,cAAc;gBACtD,cAAc,CAAC,MAAM,KAAK,MAAM,CACnC,CAAC;QACN,CAAC;QAED,OAAO,GAAG,MAAM,CAAC;QACjB,MAAM,GAAG,aAAa,CAAC,OAAO,CAAC,CAAC;IACpC,CAAC;IAED,OAAO,KAAK,CAAC;AACjB,CAAC,CAAC;AAEF,iFAAiF;AACjF,MAAM,4BAA4B,GAG9B,eAAe,CAAC;IAChB,MAAM,CAAC,OAAO;QACV,OAAO;YACH,aAAa,CAAC,IAAsC;gBAChD,MAAM,cAAc,GAAG,mCAAmC,CACtD,OAAO,EACP,IAAI,CAAC,MAAM,CACd,CAAC;gBAEF,IACI,CAAC,SAAS,CAAC,cAAc,CAAC;oBAC1B,CAAC,CAAC,4BAA4B,CAAC,IAAI,CAAC;wBAChC,CAAC,0CAA0C,CAAC,IAAI,CAAC,CAAC,EACxD,CAAC;oBACC,OAAO;gBACX,CAAC;gBAED,OAAO,CAAC,MAAM,CAAC;oBACX,IAAI,EAAE,EAAE,cAAc,EAAE;oBACxB,SAAS,EAAE,2BAA2B;oBACtC,IAAI;iBACP,CAAC,CAAC;YACP,CAAC;SACJ,CAAC;IACN,CAAC;IACD,cAAc,EAAE,EAAE;IAClB,IAAI,EAAE;QACF,IAAI,EAAE;YACF,WAAW,EACP,kFAAkF;YACtF,WAAW,EAAE,IAAI;YACjB,oBAAoB,EAAE,KAAK;YAC3B,qBAAqB,EAAE;gBACnB,qCAAqC;gBACrC,kDAAkD;gBAClD,gCAAgC;gBAChC,6BAA6B;aAChC;YACD,GAAG,EAAE,iBAAiB,CAAC,iCAAiC,CAAC;SAC5D;QACD,QAAQ,EAAE;YACN,yBAAyB,EACrB,qGAAqG;SAC5G;QACD,MAAM,EAAE,EAAE;QACV,IAAI,EAAE,SAAS;KAClB;IACD,IAAI,EAAE,iCAAiC;CAC1C,CAAC,CAAC;AAEH,eAAe,4BAA4B,CAAC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"no-floating-object-urls.d.ts","sourceRoot":"","sources":["../../src/rules/no-floating-object-urls.ts"],"names":[],"mappings":"AAAA;;;GAGG;AACH,OAAO,EAEH,KAAK,QAAQ,EAEhB,MAAM,0BAA0B,CAAC;
|
|
1
|
+
{"version":3,"file":"no-floating-object-urls.d.ts","sourceRoot":"","sources":["../../src/rules/no-floating-object-urls.ts"],"names":[],"mappings":"AAAA;;;GAGG;AACH,OAAO,EAEH,KAAK,QAAQ,EAEhB,MAAM,0BAA0B,CAAC;AA0ElC,yEAAyE;AACzE,QAAA,MAAM,oBAAoB,EAAE,QAAQ,CAAC,UAAU,CAC3C,mBAAmB,EACnB,SAAS,EAAE,CA0Cb,CAAC;AAEH,eAAe,oBAAoB,CAAC"}
|
|
@@ -3,6 +3,7 @@
|
|
|
3
3
|
* Require object URLs to be retained so they can be revoked.
|
|
4
4
|
*/
|
|
5
5
|
import { AST_NODE_TYPES, } from "@typescript-eslint/utils";
|
|
6
|
+
import { arrayFirst, isDefined, setHas } from "ts-extras";
|
|
6
7
|
import { collectStaticMemberPath, isDiscardedResourceExpression, } from "../_internal/floating-resource.js";
|
|
7
8
|
import { createRuleDocsUrl } from "../_internal/rule-docs-url.js";
|
|
8
9
|
import { getVariableInScopeChain } from "../_internal/scope-variable.js";
|
|
@@ -23,10 +24,10 @@ const isShadowedIdentifier = (context, identifier) => {
|
|
|
23
24
|
return variable !== null && variable.defs.length > 0;
|
|
24
25
|
};
|
|
25
26
|
const isDirectUrlPath = (path) => path.length === 2 &&
|
|
26
|
-
path
|
|
27
|
+
arrayFirst(path) === "URL" &&
|
|
27
28
|
path[1] === "createObjectURL";
|
|
28
29
|
const isGlobalUrlPath = (path) => path.length === 3 &&
|
|
29
|
-
globalUrlReceiverNameSet
|
|
30
|
+
setHas(globalUrlReceiverNameSet, arrayFirst(path) ?? "") &&
|
|
30
31
|
path[1] === "URL" &&
|
|
31
32
|
path[2] === "createObjectURL";
|
|
32
33
|
const isObjectUrlCreateCall = (context, callee) => {
|
|
@@ -34,7 +35,7 @@ const isObjectUrlCreateCall = (context, callee) => {
|
|
|
34
35
|
return false;
|
|
35
36
|
}
|
|
36
37
|
const path = collectStaticMemberPath(callee);
|
|
37
|
-
if (path
|
|
38
|
+
if (!isDefined(path) || (!isDirectUrlPath(path) && !isGlobalUrlPath(path))) {
|
|
38
39
|
return false;
|
|
39
40
|
}
|
|
40
41
|
const rootIdentifier = getRootIdentifier(callee.object);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"no-floating-object-urls.js","sourceRoot":"","sources":["../../src/rules/no-floating-object-urls.ts"],"names":[],"mappings":"AAAA;;;GAGG;AACH,OAAO,EACH,cAAc,GAGjB,MAAM,0BAA0B,CAAC;
|
|
1
|
+
{"version":3,"file":"no-floating-object-urls.js","sourceRoot":"","sources":["../../src/rules/no-floating-object-urls.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"no-floating-observers.d.ts","sourceRoot":"","sources":["../../src/rules/no-floating-observers.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"no-floating-observers.d.ts","sourceRoot":"","sources":["../../src/rules/no-floating-observers.ts"],"names":[],"mappings":"AAEA;;;GAGG;AACH,OAAO,EAEH,KAAK,QAAQ,EAEhB,MAAM,0BAA0B,CAAC;AA6LlC,uEAAuE;AACvE,QAAA,MAAM,mBAAmB,EAAE,QAAQ,CAAC,UAAU,CAC1C,kBAAkB,EAClB,SAAS,EAAE,CAiDb,CAAC;AAEH,eAAe,mBAAmB,CAAC"}
|