@azat-io/eslint-config 2.16.0 → 2.18.0

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.
@@ -1,252 +0,0 @@
1
- "use strict";
2
- var __create = Object.create;
3
- var __defProp = Object.defineProperty;
4
- var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
5
- var __getOwnPropNames = Object.getOwnPropertyNames;
6
- var __getProtoOf = Object.getPrototypeOf;
7
- var __hasOwnProp = Object.prototype.hasOwnProperty;
8
- var __copyProps = (to, from, except, desc) => {
9
- if (from && typeof from === "object" || typeof from === "function") {
10
- for (let key of __getOwnPropNames(from))
11
- if (!__hasOwnProp.call(to, key) && key !== except)
12
- __defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });
13
- }
14
- return to;
15
- };
16
- var __toESM = (mod, isNodeMode, target) => (target = mod != null ? __create(__getProtoOf(mod)) : {}, __copyProps(
17
- isNodeMode || !mod || !mod.__esModule ? __defProp(target, "default", { value: mod, enumerable: true }) : target,
18
- mod
19
- ));
20
- Object.defineProperty(exports, Symbol.toStringTag, { value: "Module" });
21
- const utilities = require("../utilities.cjs");
22
- let typescript = async (config) => {
23
- if (!config.typescript) {
24
- return {};
25
- }
26
- let { parser: typescriptParser, plugin: typescriptPlugin } = await utilities.interopDefault(import("typescript-eslint"));
27
- let files = ["**/*.ts", "**/*.cts", "**/*.mts"];
28
- if (config.react || config.qwik) {
29
- files.push("**/*.tsx");
30
- }
31
- if (config.astro) {
32
- files.push("**/*.astro");
33
- }
34
- if (config.svelte) {
35
- files.push("**/*.svelte");
36
- }
37
- if (config.vue) {
38
- files.push("**/*.vue");
39
- }
40
- return {
41
- name: "azat-io/typescript/rules",
42
- files,
43
- languageOptions: {
44
- parser: typescriptParser,
45
- parserOptions: {
46
- ecmaFeatures: {
47
- jsx: config.react || config.qwik
48
- },
49
- ecmaVersion: "latest",
50
- projectService: true,
51
- sourceType: "module",
52
- tsconfigRootDir: process.cwd()
53
- }
54
- },
55
- plugins: {
56
- typescript: typescriptPlugin
57
- },
58
- rules: {
59
- "typescript/array-type": [
60
- "error",
61
- {
62
- default: "array",
63
- readonly: "array"
64
- }
65
- ],
66
- "typescript/await-thenable": "error",
67
- "typescript/class-literal-property-style": "error",
68
- "typescript/class-methods-use-this": "error",
69
- "typescript/consistent-generic-constructors": ["error", "constructor"],
70
- "typescript/consistent-indexed-object-style": ["error", "record"],
71
- "typescript/consistent-type-definitions": "error",
72
- "typescript/consistent-type-exports": "error",
73
- "typescript/consistent-type-imports": "error",
74
- "typescript/default-param-last": "error",
75
- "typescript/dot-notation": "error",
76
- "typescript/explicit-function-return-type": [
77
- "error",
78
- {
79
- allowedNames: config.astro ? ["getStaticPaths"] : [],
80
- allowExpressions: true,
81
- allowHigherOrderFunctions: true,
82
- allowIIFEs: true
83
- }
84
- ],
85
- "typescript/explicit-member-accessibility": "error",
86
- "typescript/explicit-module-boundary-types": [
87
- "error",
88
- {
89
- allowedNames: config.astro ? ["getStaticPaths"] : []
90
- }
91
- ],
92
- "typescript/max-params": [
93
- "error",
94
- {
95
- max: 3
96
- }
97
- ],
98
- "typescript/method-signature-style": ["error", "method"],
99
- "typescript/naming-convention": [
100
- "error",
101
- {
102
- format: ["camelCase", "PascalCase", "UPPER_CASE"],
103
- selector: "import"
104
- },
105
- {
106
- format: ["UPPER_CASE"],
107
- modifiers: ["const"],
108
- selector: "variable"
109
- },
110
- {
111
- format: ["PascalCase", "UPPER_CASE"],
112
- selector: "typeLike"
113
- }
114
- ],
115
- "typescript/no-array-constructor": "error",
116
- "typescript/no-array-delete": "error",
117
- "typescript/no-base-to-string": "error",
118
- "typescript/no-duplicate-enum-values": "error",
119
- "typescript/no-duplicate-type-constituents": "error",
120
- "typescript/no-empty-object-type": "error",
121
- "typescript/no-explicit-any": "error",
122
- "typescript/no-extra-non-null-assertion": "error",
123
- "typescript/no-floating-promises": [
124
- "error",
125
- {
126
- allowForKnownSafeCalls: [
127
- {
128
- from: "package",
129
- name: ["task"],
130
- package: "nanostores"
131
- }
132
- ],
133
- checkThenables: true,
134
- ignoreIIFE: true,
135
- ignoreVoid: true
136
- }
137
- ],
138
- "typescript/no-for-in-array": "error",
139
- "typescript/no-implied-eval": "error",
140
- "typescript/no-import-type-side-effects": "error",
141
- "typescript/no-invalid-void-type": "error",
142
- "typescript/no-loop-func": "error",
143
- "typescript/no-meaningless-void-operator": "error",
144
- "typescript/no-misused-new": "error",
145
- "typescript/no-misused-promises": [
146
- "error",
147
- {
148
- checksVoidReturn: false
149
- }
150
- ],
151
- "typescript/no-mixed-enums": "error",
152
- "typescript/no-namespace": "error",
153
- "typescript/no-non-null-asserted-nullish-coalescing": "error",
154
- "typescript/no-non-null-asserted-optional-chain": "error",
155
- "typescript/no-require-imports": "error",
156
- "typescript/no-shadow": "error",
157
- "typescript/no-this-alias": "error",
158
- "typescript/no-unnecessary-boolean-literal-compare": "error",
159
- "typescript/no-unnecessary-condition": "error",
160
- "typescript/no-unnecessary-parameter-property-assignment": "error",
161
- "typescript/no-unnecessary-qualifier": "error",
162
- "typescript/no-unnecessary-template-expression": "error",
163
- "typescript/no-unnecessary-type-arguments": "error",
164
- "typescript/no-unnecessary-type-assertion": "error",
165
- "typescript/no-unnecessary-type-constraint": "error",
166
- "typescript/no-unnecessary-type-parameters": "error",
167
- "typescript/no-unsafe-argument": "error",
168
- "typescript/no-unsafe-assignment": (
169
- config.astro ? "off" : "error"
170
- ),
171
- "typescript/no-unsafe-call": "error",
172
- "typescript/no-unsafe-declaration-merging": "error",
173
- "typescript/no-unsafe-function-type": "error",
174
- "typescript/no-unsafe-member-access": "error",
175
- "typescript/no-unsafe-return": "error",
176
- "typescript/no-unsafe-unary-minus": "error",
177
- "typescript/no-unused-expressions": [
178
- "error",
179
- {
180
- allowShortCircuit: true,
181
- allowTaggedTemplates: true,
182
- allowTernary: true
183
- }
184
- ],
185
- "typescript/no-unused-vars": [
186
- "error",
187
- {
188
- argsIgnorePattern: "^_",
189
- caughtErrorsIgnorePattern: "^_",
190
- ignoreRestSiblings: true,
191
- varsIgnorePattern: "^_"
192
- }
193
- ],
194
- "typescript/no-use-before-define": [
195
- "error",
196
- {
197
- classes: false,
198
- functions: false,
199
- variables: false
200
- }
201
- ],
202
- "typescript/no-useless-constructor": "error",
203
- "typescript/no-useless-empty-export": "error",
204
- "typescript/no-wrapper-object-types": "error",
205
- "typescript/non-nullable-type-assertion-style": "error",
206
- "typescript/only-throw-error": "error",
207
- "typescript/prefer-as-const": "error",
208
- "typescript/prefer-destructuring": "error",
209
- "typescript/prefer-enum-initializers": "error",
210
- "typescript/prefer-for-of": "error",
211
- "typescript/prefer-function-type": "error",
212
- "typescript/prefer-literal-enum-member": "error",
213
- "typescript/prefer-namespace-keyword": "error",
214
- "typescript/prefer-nullish-coalescing": "error",
215
- "typescript/prefer-optional-chain": "error",
216
- "typescript/prefer-promise-reject-errors": "error",
217
- "typescript/prefer-readonly": "error",
218
- "typescript/prefer-reduce-type-parameter": "error",
219
- "typescript/prefer-return-this-type": "error",
220
- "typescript/related-getter-setter-pairs": "error",
221
- "typescript/require-array-sort-compare": "error",
222
- "typescript/require-await": "error",
223
- "typescript/restrict-plus-operands": "error",
224
- "typescript/restrict-template-expressions": "error",
225
- "typescript/triple-slash-reference": config.astro ? "off" : "error",
226
- "typescript/unified-signatures": "error",
227
- "class-methods-use-this": "off",
228
- "consistent-return": "off",
229
- "default-param-last": "off",
230
- "dot-notation": "off",
231
- "max-params": "off",
232
- "no-array-constructor": "off",
233
- "no-dupe-class-members": "off",
234
- "no-implied-eval": "off",
235
- "no-loop-func": "off",
236
- "no-shadow": "off",
237
- "no-undef": "off",
238
- "no-unused-expressions": "off",
239
- "no-unused-vars": "off",
240
- "no-use-before-define": "off",
241
- "no-useless-constructor": "off",
242
- "prefer-destructuring": "off",
243
- "require-await": "off"
244
- },
245
- settings: {
246
- jsdoc: {
247
- mode: "typescript"
248
- }
249
- }
250
- };
251
- };
252
- exports.typescript = typescript;
@@ -1,21 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, Symbol.toStringTag, { value: "Module" });
3
- let interopDefault = async (module2) => {
4
- try {
5
- let resolved = await module2;
6
- if (typeof resolved === "object" && resolved !== null) {
7
- if ("default" in resolved && Object.keys(resolved).length === 1) {
8
- let defaultExport = resolved.default;
9
- if (!defaultExport) {
10
- return defaultExport;
11
- }
12
- return defaultExport;
13
- }
14
- return resolved;
15
- }
16
- return resolved;
17
- } catch (error) {
18
- throw new Error(`Cannot import module: ${String(error)}`);
19
- }
20
- };
21
- exports.interopDefault = interopDefault;
@@ -1,101 +0,0 @@
1
- "use strict";
2
- var __create = Object.create;
3
- var __defProp = Object.defineProperty;
4
- var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
5
- var __getOwnPropNames = Object.getOwnPropertyNames;
6
- var __getProtoOf = Object.getPrototypeOf;
7
- var __hasOwnProp = Object.prototype.hasOwnProperty;
8
- var __copyProps = (to, from, except, desc) => {
9
- if (from && typeof from === "object" || typeof from === "function") {
10
- for (let key of __getOwnPropNames(from))
11
- if (!__hasOwnProp.call(to, key) && key !== except)
12
- __defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });
13
- }
14
- return to;
15
- };
16
- var __toESM = (mod, isNodeMode, target) => (target = mod != null ? __create(__getProtoOf(mod)) : {}, __copyProps(
17
- isNodeMode || !mod || !mod.__esModule ? __defProp(target, "default", { value: mod, enumerable: true }) : target,
18
- mod
19
- ));
20
- Object.defineProperty(exports, Symbol.toStringTag, { value: "Module" });
21
- const utilities = require("../utilities.cjs");
22
- let vitest = async (config) => {
23
- if (!config.vitest) {
24
- return {};
25
- }
26
- let vitestPlugin = await utilities.interopDefault(import("@vitest/eslint-plugin"));
27
- let files = [
28
- "**/test/*.js",
29
- "**/test/*.cjs",
30
- "**/test/*.mjs",
31
- "**/*.test.js",
32
- "**/*.test.cjs",
33
- "**/*.test.mjs"
34
- ];
35
- if (config.typescript) {
36
- files.push(
37
- "**/test/*.ts",
38
- "**/test/*.cts",
39
- "**/test/*.mts",
40
- "**/*.test.ts",
41
- "**/*.test.cts",
42
- "**/*.test.mts"
43
- );
44
- }
45
- if (config.react || config.qwik) {
46
- files.push("**/test/*.jsx", "**/*.test.jsx");
47
- if (config.typescript) {
48
- files.push("**/test/*.tsx", "**/*.test.tsx");
49
- }
50
- }
51
- return {
52
- name: "azat-io/vitest/rules",
53
- files,
54
- plugins: {
55
- vitest: vitestPlugin
56
- },
57
- rules: {
58
- "vitest/consistent-test-it": ["error", { fn: "it" }],
59
- "vitest/no-alias-methods": "error",
60
- "vitest/no-commented-out-tests": "error",
61
- "vitest/no-conditional-expect": "error",
62
- "vitest/no-conditional-in-test": "error",
63
- "vitest/no-conditional-tests": "error",
64
- "vitest/no-disabled-tests": "error",
65
- "vitest/no-duplicate-hooks": "error",
66
- "vitest/no-focused-tests": "error",
67
- "vitest/no-identical-title": "error",
68
- "vitest/no-import-node-test": "error",
69
- "vitest/no-interpolation-in-snapshots": "error",
70
- "vitest/no-standalone-expect": "error",
71
- "vitest/no-test-return-statement": "error",
72
- "vitest/prefer-called-with": "error",
73
- "vitest/prefer-comparison-matcher": "error",
74
- "vitest/prefer-each": "error",
75
- "vitest/prefer-equality-matcher": "error",
76
- "vitest/prefer-expect-resolves": "error",
77
- "vitest/prefer-hooks-in-order": "error",
78
- "vitest/prefer-hooks-on-top": "error",
79
- "vitest/prefer-lowercase-title": "error",
80
- "vitest/prefer-mock-promise-shorthand": "error",
81
- "vitest/prefer-spy-on": "error",
82
- "vitest/prefer-to-be": "error",
83
- "vitest/prefer-to-be-falsy": "error",
84
- "vitest/prefer-to-be-object": "error",
85
- "vitest/prefer-to-be-truthy": "error",
86
- "vitest/prefer-to-contain": "error",
87
- "vitest/prefer-to-have-length": "error",
88
- "vitest/prefer-vi-mocked": "error",
89
- "vitest/require-top-level-describe": "error",
90
- "vitest/valid-describe-callback": "error",
91
- "vitest/valid-expect": "error",
92
- "vitest/valid-expect-in-promise": "error"
93
- },
94
- settings: {
95
- vitest: {
96
- typecheck: true
97
- }
98
- }
99
- };
100
- };
101
- exports.vitest = vitest;
@@ -1,212 +0,0 @@
1
- "use strict";
2
- var __create = Object.create;
3
- var __defProp = Object.defineProperty;
4
- var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
5
- var __getOwnPropNames = Object.getOwnPropertyNames;
6
- var __getProtoOf = Object.getPrototypeOf;
7
- var __hasOwnProp = Object.prototype.hasOwnProperty;
8
- var __copyProps = (to, from, except, desc) => {
9
- if (from && typeof from === "object" || typeof from === "function") {
10
- for (let key of __getOwnPropNames(from))
11
- if (!__hasOwnProp.call(to, key) && key !== except)
12
- __defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });
13
- }
14
- return to;
15
- };
16
- var __toESM = (mod, isNodeMode, target) => (target = mod != null ? __create(__getProtoOf(mod)) : {}, __copyProps(
17
- isNodeMode || !mod || !mod.__esModule ? __defProp(target, "default", { value: mod, enumerable: true }) : target,
18
- mod
19
- ));
20
- Object.defineProperty(exports, Symbol.toStringTag, { value: "Module" });
21
- const utilities = require("../utilities.cjs");
22
- let vue = async (config) => {
23
- if (!config.vue) {
24
- return {};
25
- }
26
- let [vuePlugin, vueParser] = await Promise.all([
27
- utilities.interopDefault(import("eslint-plugin-vue")),
28
- utilities.interopDefault(import("vue-eslint-parser"))
29
- ]);
30
- let files = ["**/*.vue"];
31
- let additionalParserOptions = {};
32
- if (config.typescript) {
33
- let { parser: typescriptParser } = await utilities.interopDefault(
34
- import("typescript-eslint")
35
- );
36
- additionalParserOptions = {
37
- ...additionalParserOptions,
38
- parser: typescriptParser,
39
- projectService: true,
40
- tsconfigRootDir: process.cwd()
41
- };
42
- }
43
- return {
44
- name: "azat-io/vue/rules",
45
- files,
46
- languageOptions: {
47
- parser: vueParser,
48
- parserOptions: {
49
- ecmaVersion: "latest",
50
- extraFileExtensions: [".vue"],
51
- sourceType: "module",
52
- ...additionalParserOptions
53
- }
54
- },
55
- plugins: {
56
- vue: vuePlugin
57
- },
58
- rules: {
59
- "vue/attribute-hyphenation": ["error", "always"],
60
- "vue/block-order": [
61
- "error",
62
- {
63
- order: ["script", "template", "style"]
64
- }
65
- ],
66
- "vue/comment-directive": "error",
67
- "vue/component-api-style": "error",
68
- "vue/component-definition-name-casing": ["error", "kebab-case"],
69
- "vue/component-name-in-template-casing": ["error", "kebab-case"],
70
- "vue/component-options-name-casing": ["error", "kebab-case"],
71
- "vue/custom-event-name-casing": ["error", "kebab-case"],
72
- "vue/define-emits-declaration": "error",
73
- "vue/define-props-declaration": "error",
74
- "vue/enforce-style-attribute": [
75
- "error",
76
- {
77
- allow: ["scoped", "plain"]
78
- }
79
- ],
80
- "vue/html-button-has-type": "error",
81
- "vue/html-end-tags": "error",
82
- "vue/jsx-uses-vars": "error",
83
- "vue/no-async-in-computed-properties": "error",
84
- "vue/no-child-content": "error",
85
- "vue/no-computed-properties-in-data": "error",
86
- "vue/no-deprecated-data-object-declaration": "error",
87
- "vue/no-deprecated-delete-set": "error",
88
- "vue/no-deprecated-destroyed-lifecycle": "error",
89
- "vue/no-deprecated-dollar-listeners-api": "error",
90
- "vue/no-deprecated-dollar-scopedslots-api": "error",
91
- "vue/no-deprecated-events-api": "error",
92
- "vue/no-deprecated-filter": "error",
93
- "vue/no-deprecated-functional-template": "error",
94
- "vue/no-deprecated-html-element-is": "error",
95
- "vue/no-deprecated-inline-template": "error",
96
- "vue/no-deprecated-model-definition": "error",
97
- "vue/no-deprecated-props-default-this": "error",
98
- "vue/no-deprecated-router-link-tag-prop": "error",
99
- "vue/no-deprecated-scope-attribute": "error",
100
- "vue/no-deprecated-slot-attribute": "error",
101
- "vue/no-deprecated-slot-scope-attribute": "error",
102
- "vue/no-deprecated-v-bind-sync": "error",
103
- "vue/no-deprecated-v-is": "error",
104
- "vue/no-deprecated-v-on-native-modifier": "error",
105
- "vue/no-deprecated-v-on-number-modifiers": "error",
106
- "vue/no-deprecated-vue-config-keycodes": "error",
107
- "vue/no-dupe-keys": "error",
108
- "vue/no-dupe-v-else-if": "error",
109
- "vue/no-duplicate-attr-inheritance": "error",
110
- "vue/no-duplicate-attributes": "error",
111
- "vue/no-empty-component-block": "error",
112
- "vue/no-export-in-script-setup": "error",
113
- "vue/no-expose-after-await": "error",
114
- "vue/no-lifecycle-after-await": "error",
115
- "vue/no-lone-template": "error",
116
- "vue/no-multiple-objects-in-class": "error",
117
- "vue/no-multiple-slot-args": "error",
118
- "vue/no-mutating-props": "error",
119
- "vue/no-parsing-error": "error",
120
- "vue/no-potential-component-option-typo": "error",
121
- "vue/no-ref-as-operand": "error",
122
- "vue/no-ref-object-reactivity-loss": "error",
123
- "vue/no-required-prop-with-default": "error",
124
- "vue/no-reserved-component-names": "error",
125
- "vue/no-reserved-keys": "error",
126
- "vue/no-reserved-props": "error",
127
- "vue/no-setup-props-reactivity-loss": "error",
128
- "vue/no-shared-component-data": "error",
129
- "vue/no-side-effects-in-computed-properties": "error",
130
- "vue/no-template-key": "error",
131
- "vue/no-template-shadow": "error",
132
- "vue/no-template-target-blank": "error",
133
- "vue/no-textarea-mustache": "error",
134
- "vue/no-this-in-before-route-enter": "error",
135
- "vue/no-undef-components": "error",
136
- "vue/no-undef-properties": "error",
137
- "vue/no-unused-components": "error",
138
- "vue/no-unused-emit-declarations": "error",
139
- "vue/no-unused-vars": "error",
140
- "vue/no-use-computed-property-like-method": "error",
141
- "vue/no-use-v-else-with-v-for": "error",
142
- "vue/no-use-v-if-with-v-for": "error",
143
- "vue/no-useless-mustaches": "error",
144
- "vue/no-useless-template-attributes": "error",
145
- "vue/no-useless-v-bind": "error",
146
- "vue/no-v-for-template-key-on-child": "error",
147
- "vue/no-v-html": "error",
148
- "vue/no-v-text-v-html-on-component": "error",
149
- "vue/no-watch-after-await": "error",
150
- "vue/prefer-define-options": "error",
151
- "vue/prefer-import-from-vue": "error",
152
- "vue/prefer-separate-static-class": "error",
153
- "vue/prefer-true-attribute-shorthand": "error",
154
- "vue/prop-name-casing": ["error", "camelCase"],
155
- "vue/require-component-is": "error",
156
- "vue/require-default-prop": "error",
157
- "vue/require-emit-validator": "error",
158
- "vue/require-explicit-emits": "error",
159
- "vue/require-explicit-slots": "error",
160
- "vue/require-macro-variable-name": [
161
- "error",
162
- {
163
- defineEmits: "emit",
164
- defineProps: "props",
165
- defineSlots: "slots",
166
- useAttrs: "attrs",
167
- useSlots: "slots"
168
- }
169
- ],
170
- "vue/require-name-property": "error",
171
- "vue/require-prop-type-constructor": "error",
172
- "vue/require-render-return": "error",
173
- "vue/require-slots-as-functions": "error",
174
- "vue/require-toggle-inside-transition": "error",
175
- "vue/require-typed-ref": "error",
176
- "vue/require-v-for-key": "error",
177
- "vue/require-valid-default-prop": "error",
178
- "vue/return-in-computed-property": "error",
179
- "vue/return-in-emits-validator": "error",
180
- "vue/this-in-template": "error",
181
- "vue/use-v-on-exact": "error",
182
- "vue/v-bind-style": "error",
183
- "vue/v-on-event-hyphenation": "error",
184
- "vue/v-on-style": "error",
185
- "vue/v-slot-style": "error",
186
- "vue/valid-attribute-name": "error",
187
- "vue/valid-define-emits": "error",
188
- "vue/valid-define-options": "error",
189
- "vue/valid-define-props": "error",
190
- "vue/valid-next-tick": "error",
191
- "vue/valid-template-root": "error",
192
- "vue/valid-v-bind": "error",
193
- "vue/valid-v-cloak": "error",
194
- "vue/valid-v-else": "error",
195
- "vue/valid-v-else-if": "error",
196
- "vue/valid-v-for": "error",
197
- "vue/valid-v-html": "error",
198
- "vue/valid-v-if": "error",
199
- "vue/valid-v-is": "error",
200
- "vue/valid-v-memo": "error",
201
- "vue/valid-v-model": "error",
202
- "vue/valid-v-on": "error",
203
- "vue/valid-v-once": "error",
204
- "vue/valid-v-pre": "error",
205
- "vue/valid-v-show": "error",
206
- "vue/valid-v-slot": "error",
207
- "vue/valid-v-text": "error"
208
- },
209
- processor: vuePlugin.processors[".vue"]
210
- };
211
- };
212
- exports.vue = vue;
File without changes
File without changes
File without changes