@amxts/cli 0.1.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.
Files changed (51) hide show
  1. package/LICENSE +21 -0
  2. package/README.md +20 -0
  3. package/bin/amxts.mjs +8 -0
  4. package/package.json +45 -0
  5. package/src/args.mjs +62 -0
  6. package/src/catalog.mjs +196 -0
  7. package/src/config.mjs +191 -0
  8. package/src/core.mjs +272 -0
  9. package/src/includes.mjs +181 -0
  10. package/src/info.mjs +85 -0
  11. package/src/init-module.mjs +117 -0
  12. package/src/init.mjs +316 -0
  13. package/src/lint.mjs +26 -0
  14. package/src/main.mjs +273 -0
  15. package/src/module.mjs +150 -0
  16. package/src/modules.json +47 -0
  17. package/src/pm.mjs +111 -0
  18. package/src/server.mjs +72 -0
  19. package/src/system.mjs +32 -0
  20. package/src/template.mjs +74 -0
  21. package/src/ui.mjs +101 -0
  22. package/templates/module/LICENSE +21 -0
  23. package/templates/module/README.md +81 -0
  24. package/templates/module/README.ru.md +81 -0
  25. package/templates/module/_gitattributes +5 -0
  26. package/templates/module/_gitignore +11 -0
  27. package/templates/module/_oxfmtrc.json +18 -0
  28. package/templates/module/_oxlintrc.json +784 -0
  29. package/templates/module/assets/logo.svg +8 -0
  30. package/templates/module/playground/amxts.config.ts +4 -0
  31. package/templates/module/playground/plugins/welcome.ts +3 -0
  32. package/templates/module/playground/tsconfig.json +3 -0
  33. package/templates/module/src/index.ts +25 -0
  34. package/templates/module/src/natives.ts +13 -0
  35. package/templates/module/src/types.ts +11 -0
  36. package/templates/module/test/tsconfig.json +13 -0
  37. package/templates/module/test/{{name}}.test.ts +25 -0
  38. package/templates/module/tsconfig.json +10 -0
  39. package/templates/project/README.md +28 -0
  40. package/templates/project/_gitattributes +7 -0
  41. package/templates/project/_gitignore +7 -0
  42. package/templates/project/_oxfmtrc.json +18 -0
  43. package/templates/project/_oxlintrc.json +784 -0
  44. package/templates/project/_vscode/extensions.json +3 -0
  45. package/templates/project/_vscode/settings.json +13 -0
  46. package/templates/project/amxts.config.ts +24 -0
  47. package/templates/project/knip.json +4 -0
  48. package/templates/project/plugins/hello.ts +39 -0
  49. package/templates/project/test/hello.test.ts +37 -0
  50. package/templates/project/test/tsconfig.json +13 -0
  51. package/templates/project/tsconfig.json +3 -0
@@ -0,0 +1,784 @@
1
+ {
2
+ "$schema": "./node_modules/oxlint/configuration_schema.json",
3
+ "plugins": ["import", "node", "jsdoc", "unicorn", "typescript", "vitest"],
4
+ "jsPlugins": [
5
+ "eslint-plugin-antfu",
6
+ { "name": "eslint-comments", "specifier": "@eslint-community/eslint-plugin-eslint-comments" },
7
+ "eslint-plugin-command",
8
+ "eslint-plugin-perfectionist",
9
+ { "name": "e18e", "specifier": "@e18e/eslint-plugin" },
10
+ "@stylistic/eslint-plugin",
11
+ "eslint-plugin-regexp",
12
+ { "name": "n", "specifier": "eslint-plugin-n" },
13
+ { "name": "amxts", "specifier": "@amxts/core/lint/oxlint-plugin.mjs" }
14
+ ],
15
+ "categories": { "correctness": "off" },
16
+ "env": { "builtin": true, "es2026": true, "browser": true, "node": true },
17
+ "ignorePatterns": [
18
+ "**/node_modules/",
19
+ "**/*.tgz",
20
+ "**/bun.lock",
21
+ "**/package-lock.json",
22
+ "**/pnpm-lock.yaml",
23
+ "**/yarn.lock",
24
+ "**/.amxts/",
25
+ "**/dist/",
26
+ "**/node_modules",
27
+ "**/dist",
28
+ "**/bun.lockb",
29
+ "**/output",
30
+ "**/coverage",
31
+ "**/temp",
32
+ "**/.temp",
33
+ "**/tmp",
34
+ "**/.tmp",
35
+ "**/.history",
36
+ "**/.vitepress/cache",
37
+ "**/.nuxt",
38
+ "**/.next",
39
+ "**/.svelte-kit",
40
+ "**/.vercel",
41
+ "**/.changeset",
42
+ "**/.idea",
43
+ "**/.cache",
44
+ "**/.output",
45
+ "**/.vite-inspect",
46
+ "**/.yarn",
47
+ "**/CHANGELOG*.md",
48
+ "**/LICENSE*",
49
+ "**/*.min.*",
50
+ "**/__snapshots__",
51
+ "**/vite.config.*.timestamp-*",
52
+ "**/auto-import.d.ts",
53
+ "**/auto-imports.d.ts",
54
+ "**/components.d.ts",
55
+ "**/.context",
56
+ "**/.claude",
57
+ "**/.agents",
58
+ "**/.*/skills"
59
+ ],
60
+ "rules": {
61
+ "accessor-pairs": ["error", { "enforceForClassMembers": true, "setWithoutGet": true }],
62
+ "antfu/no-top-level-await": "error",
63
+ "array-callback-return": "error",
64
+ "block-scoped-var": "error",
65
+ "constructor-super": "error",
66
+ "default-case-last": "error",
67
+ "eqeqeq": ["error", "smart"],
68
+ "new-cap": ["error", { "capIsNew": false, "newIsCap": true, "properties": true }],
69
+ "no-alert": "error",
70
+ "no-array-constructor": "error",
71
+ "no-async-promise-executor": "error",
72
+ "no-caller": "error",
73
+ "no-case-declarations": "error",
74
+ "no-class-assign": "error",
75
+ "no-compare-neg-zero": "error",
76
+ "no-cond-assign": ["error", "always"],
77
+ "no-console": ["error", { "allow": ["warn", "error"] }],
78
+ "no-const-assign": "error",
79
+ "no-control-regex": "error",
80
+ "no-debugger": "error",
81
+ "no-delete-var": "error",
82
+ "no-dupe-class-members": "error",
83
+ "no-dupe-keys": "error",
84
+ "no-duplicate-case": "error",
85
+ "no-empty": ["error", { "allowEmptyCatch": true }],
86
+ "no-empty-pattern": "error",
87
+ "no-eval": "error",
88
+ "no-ex-assign": "error",
89
+ "no-extend-native": "error",
90
+ "no-extra-bind": "error",
91
+ "no-extra-boolean-cast": "error",
92
+ "no-fallthrough": "error",
93
+ "no-func-assign": "error",
94
+ "no-global-assign": "error",
95
+ "no-implied-eval": "error",
96
+ "no-import-assign": "error",
97
+ "no-irregular-whitespace": "error",
98
+ "no-iterator": "error",
99
+ "no-labels": ["error", { "allowLoop": false, "allowSwitch": false }],
100
+ "no-lone-blocks": "error",
101
+ "no-loss-of-precision": "error",
102
+ "no-misleading-character-class": "error",
103
+ "no-multi-str": "error",
104
+ "no-new": "error",
105
+ "no-new-func": "error",
106
+ "no-new-native-nonconstructor": "error",
107
+ "no-new-wrappers": "error",
108
+ "no-obj-calls": "error",
109
+ "no-proto": "error",
110
+ "no-prototype-builtins": "error",
111
+ "no-redeclare": ["error", { "builtinGlobals": false }],
112
+ "no-regex-spaces": "error",
113
+ "no-restricted-globals": [
114
+ "error",
115
+ { "message": "Use `globalThis` instead.", "name": "global" },
116
+ { "message": "Use `globalThis` instead.", "name": "self" }
117
+ ],
118
+ "no-restricted-properties": [
119
+ "error",
120
+ {
121
+ "message": "Use `Object.getPrototypeOf` or `Object.setPrototypeOf` instead.",
122
+ "property": "__proto__"
123
+ },
124
+ { "message": "Use `Object.defineProperty` instead.", "property": "__defineGetter__" },
125
+ { "message": "Use `Object.defineProperty` instead.", "property": "__defineSetter__" },
126
+ {
127
+ "message": "Use `Object.getOwnPropertyDescriptor` instead.",
128
+ "property": "__lookupGetter__"
129
+ },
130
+ {
131
+ "message": "Use `Object.getOwnPropertyDescriptor` instead.",
132
+ "property": "__lookupSetter__"
133
+ }
134
+ ],
135
+ "no-self-assign": ["error", { "props": true }],
136
+ "no-self-compare": "error",
137
+ "no-sequences": "error",
138
+ "no-shadow-restricted-names": "error",
139
+ "no-sparse-arrays": "error",
140
+ "no-template-curly-in-string": "error",
141
+ "no-this-before-super": "error",
142
+ "no-throw-literal": "error",
143
+ "no-unexpected-multiline": "error",
144
+ "no-unmodified-loop-condition": "error",
145
+ "no-unneeded-ternary": ["error", { "defaultAssignment": false }],
146
+ "no-unreachable": "error",
147
+ "no-unsafe-finally": "error",
148
+ "no-unsafe-negation": "error",
149
+ "no-unused-expressions": [
150
+ "error",
151
+ { "allowShortCircuit": true, "allowTaggedTemplates": true, "allowTernary": true }
152
+ ],
153
+ "no-unused-vars": [
154
+ "error",
155
+ {
156
+ "args": "after-used",
157
+ "argsIgnorePattern": "^_",
158
+ "ignoreRestSiblings": true,
159
+ "vars": "all",
160
+ "varsIgnorePattern": "^_",
161
+ "fix": { "imports": "fix", "variables": "off" }
162
+ }
163
+ ],
164
+ "no-use-before-define": ["error", { "classes": false, "functions": false, "variables": true }],
165
+ "no-useless-call": "error",
166
+ "no-useless-catch": "error",
167
+ "no-useless-computed-key": "error",
168
+ "no-useless-constructor": "error",
169
+ "no-useless-rename": "error",
170
+ "no-useless-return": "error",
171
+ "no-var": "error",
172
+ "no-with": "error",
173
+ "object-shorthand": ["error", "always", { "avoidQuotes": true, "ignoreConstructors": false }],
174
+ "one-var": ["error", { "initialized": "never" }],
175
+ "prefer-arrow-callback": ["error", { "allowNamedFunctions": false, "allowUnboundThis": true }],
176
+ "prefer-const": ["error", { "destructuring": "all", "ignoreReadBeforeAssign": true }],
177
+ "prefer-exponentiation-operator": "error",
178
+ "prefer-promise-reject-errors": "error",
179
+ "prefer-regex-literals": ["error", { "disallowRedundantWrapping": true }],
180
+ "prefer-rest-params": "error",
181
+ "prefer-spread": "error",
182
+ "prefer-template": "error",
183
+ "symbol-description": "error",
184
+ "unicode-bom": ["error", "never"],
185
+ "use-isnan": ["error", { "enforceForIndexOf": true, "enforceForSwitchCase": true }],
186
+ "valid-typeof": ["error", { "requireStringLiterals": true }],
187
+ "vars-on-top": "error",
188
+ "yoda": ["error", "never"],
189
+ "eslint-comments/no-aggregating-enable": "error",
190
+ "eslint-comments/no-duplicate-disable": "error",
191
+ "eslint-comments/no-unlimited-disable": "error",
192
+ "eslint-comments/no-unused-enable": "error",
193
+ "command/command": "error",
194
+ "perfectionist/sort-exports": ["error", { "order": "asc", "type": "natural" }],
195
+ "perfectionist/sort-named-exports": ["error", { "order": "asc", "type": "natural" }],
196
+ "perfectionist/sort-named-imports": ["error", { "order": "asc", "type": "natural" }],
197
+ "antfu/import-dedupe": "error",
198
+ "antfu/no-import-dist": "error",
199
+ "antfu/no-import-node-modules-by-path": "error",
200
+ "import/consistent-type-specifier-style": ["error", "prefer-top-level"],
201
+ "import/first": "error",
202
+ "import/no-duplicates": "error",
203
+ "import/no-mutable-exports": "error",
204
+ "import/no-named-default": "error",
205
+ "import/newline-after-import": ["error", { "count": 1 }],
206
+ "e18e/prefer-array-fill": "error",
207
+ "e18e/prefer-includes": "error",
208
+ "e18e/prefer-nullish-coalescing": "error",
209
+ "e18e/prefer-object-has-own": "error",
210
+ "e18e/prefer-url-canparse": "error",
211
+ "e18e/prefer-timer-args": "error",
212
+ "e18e/prefer-date-now": "error",
213
+ "e18e/prefer-regex-test": "error",
214
+ "e18e/prefer-array-some": "error",
215
+ "e18e/prefer-string-fromcharcode": "error",
216
+ "@stylistic/array-bracket-spacing": ["error", "never"],
217
+ "@stylistic/arrow-parens": ["error", "as-needed", { "requireForBlockBody": true }],
218
+ "@stylistic/arrow-spacing": ["error", { "after": true, "before": true }],
219
+ "@stylistic/block-spacing": ["error", "always"],
220
+ "@stylistic/brace-style": ["error", "stroustrup", { "allowSingleLine": true }],
221
+ "@stylistic/comma-dangle": ["error", "always-multiline"],
222
+ "@stylistic/comma-spacing": ["error", { "after": true, "before": false }],
223
+ "@stylistic/comma-style": ["error", "last"],
224
+ "@stylistic/computed-property-spacing": ["error", "never", { "enforceForClassMembers": true }],
225
+ "@stylistic/dot-location": ["error", "property"],
226
+ "@stylistic/eol-last": "error",
227
+ "@stylistic/generator-star-spacing": ["error", { "after": true, "before": false }],
228
+ "@stylistic/indent": [
229
+ "error",
230
+ "tab",
231
+ {
232
+ "ArrayExpression": 1,
233
+ "CallExpression": { "arguments": 1 },
234
+ "flatTernaryExpressions": false,
235
+ "FunctionDeclaration": { "body": 1, "parameters": 1, "returnType": 1 },
236
+ "FunctionExpression": { "body": 1, "parameters": 1, "returnType": 1 },
237
+ "ignoreComments": false,
238
+ "ignoredNodes": ["TSUnionType", "TSIntersectionType"],
239
+ "ImportDeclaration": 1,
240
+ "MemberExpression": 1,
241
+ "ObjectExpression": 1,
242
+ "offsetTernaryExpressions": true,
243
+ "outerIIFEBody": 1,
244
+ "SwitchCase": 1,
245
+ "tabLength": 4,
246
+ "VariableDeclarator": 1
247
+ }
248
+ ],
249
+ "@stylistic/indent-binary-ops": ["error", "tab"],
250
+ "@stylistic/key-spacing": ["error", { "afterColon": true, "beforeColon": false }],
251
+ "@stylistic/keyword-spacing": ["error", { "after": true, "before": true }],
252
+ "@stylistic/lines-between-class-members": [
253
+ "error",
254
+ "always",
255
+ { "exceptAfterSingleLine": true }
256
+ ],
257
+ "@stylistic/max-statements-per-line": ["error", { "max": 1 }],
258
+ "@stylistic/member-delimiter-style": [
259
+ "error",
260
+ {
261
+ "multiline": { "delimiter": "semi", "requireLast": true },
262
+ "multilineDetection": "brackets",
263
+ "overrides": { "interface": { "multiline": { "delimiter": "semi", "requireLast": true } } },
264
+ "singleline": { "delimiter": "semi" }
265
+ }
266
+ ],
267
+ "@stylistic/multiline-ternary": ["error", "always-multiline"],
268
+ "@stylistic/new-parens": "error",
269
+ "@stylistic/no-extra-parens": ["error", "functions"],
270
+ "@stylistic/no-floating-decimal": "error",
271
+ "@stylistic/no-mixed-operators": [
272
+ "error",
273
+ {
274
+ "allowSamePrecedence": true,
275
+ "groups": [
276
+ ["==", "!=", "===", "!==", ">", ">=", "<", "<="],
277
+ ["&&", "||"],
278
+ ["in", "instanceof"]
279
+ ]
280
+ }
281
+ ],
282
+ "@stylistic/no-mixed-spaces-and-tabs": "error",
283
+ "@stylistic/no-multi-spaces": "error",
284
+ "@stylistic/no-multiple-empty-lines": ["error", { "max": 1, "maxBOF": 0, "maxEOF": 0 }],
285
+ "@stylistic/no-trailing-spaces": "error",
286
+ "@stylistic/no-whitespace-before-property": "error",
287
+ "@stylistic/object-curly-spacing": ["error", "always"],
288
+ "@stylistic/operator-linebreak": ["error", "before"],
289
+ "@stylistic/padded-blocks": [
290
+ "error",
291
+ { "blocks": "never", "classes": "never", "switches": "never" }
292
+ ],
293
+ "@stylistic/quote-props": ["error", "consistent-as-needed"],
294
+ "@stylistic/quotes": [
295
+ "error",
296
+ "double",
297
+ { "allowTemplateLiterals": "always", "avoidEscape": false }
298
+ ],
299
+ "@stylistic/rest-spread-spacing": ["error", "never"],
300
+ "@stylistic/semi": ["error", "always"],
301
+ "@stylistic/semi-spacing": ["error", { "after": true, "before": false }],
302
+ "@stylistic/space-before-blocks": ["error", "always"],
303
+ "@stylistic/space-before-function-paren": [
304
+ "error",
305
+ { "anonymous": "always", "asyncArrow": "always", "named": "never" }
306
+ ],
307
+ "@stylistic/space-in-parens": ["error", "never"],
308
+ "@stylistic/space-infix-ops": "error",
309
+ "@stylistic/space-unary-ops": ["error", { "nonwords": false, "words": true }],
310
+ "@stylistic/spaced-comment": [
311
+ "error",
312
+ "always",
313
+ {
314
+ "block": { "balanced": true, "exceptions": ["*"], "markers": ["!"] },
315
+ "line": { "exceptions": ["/", "#"], "markers": ["/"] }
316
+ }
317
+ ],
318
+ "@stylistic/template-curly-spacing": "error",
319
+ "@stylistic/template-tag-spacing": ["error", "never"],
320
+ "@stylistic/type-annotation-spacing": ["error", {}],
321
+ "@stylistic/type-generic-spacing": "error",
322
+ "@stylistic/type-named-tuple-spacing": "error",
323
+ "@stylistic/wrap-iife": ["error", "any", { "functionPrototypeMethods": true }],
324
+ "@stylistic/yield-star-spacing": ["error", { "after": true, "before": false }],
325
+ "@stylistic/jsx-closing-bracket-location": "error",
326
+ "@stylistic/jsx-closing-tag-location": "error",
327
+ "@stylistic/jsx-curly-brace-presence": ["error", { "propElementValues": "always" }],
328
+ "@stylistic/jsx-curly-newline": "error",
329
+ "@stylistic/jsx-curly-spacing": ["error", "never"],
330
+ "@stylistic/jsx-equals-spacing": "error",
331
+ "@stylistic/jsx-first-prop-new-line": "error",
332
+ "@stylistic/jsx-function-call-newline": ["error", "multiline"],
333
+ "@stylistic/jsx-indent-props": ["error", "tab"],
334
+ "@stylistic/jsx-max-props-per-line": ["error", { "maximum": 1, "when": "multiline" }],
335
+ "@stylistic/jsx-one-expression-per-line": ["error", { "allow": "single-child" }],
336
+ "@stylistic/jsx-quotes": "error",
337
+ "@stylistic/jsx-tag-spacing": [
338
+ "error",
339
+ {
340
+ "afterOpening": "never",
341
+ "beforeClosing": "never",
342
+ "beforeSelfClosing": "always",
343
+ "closingSlash": "never"
344
+ }
345
+ ],
346
+ "@stylistic/jsx-wrap-multilines": [
347
+ "error",
348
+ {
349
+ "arrow": "parens-new-line",
350
+ "assignment": "parens-new-line",
351
+ "condition": "parens-new-line",
352
+ "declaration": "parens-new-line",
353
+ "logical": "parens-new-line",
354
+ "prop": "parens-new-line",
355
+ "propertyValue": "parens-new-line",
356
+ "return": "parens-new-line"
357
+ }
358
+ ],
359
+ "antfu/consistent-list-newline": "error",
360
+ "antfu/consistent-chaining": "error",
361
+ "antfu/curly": "error",
362
+ "antfu/if-newline": "error",
363
+ "antfu/top-level-function": "error",
364
+ "regexp/confusing-quantifier": "warn",
365
+ "regexp/control-character-escape": "error",
366
+ "regexp/match-any": "error",
367
+ "regexp/negation": "error",
368
+ "regexp/no-contradiction-with-assertion": "error",
369
+ "regexp/no-dupe-characters-character-class": "error",
370
+ "regexp/no-dupe-disjunctions": "error",
371
+ "regexp/no-empty-alternative": "warn",
372
+ "regexp/no-empty-capturing-group": "error",
373
+ "regexp/no-empty-character-class": "error",
374
+ "regexp/no-empty-group": "error",
375
+ "regexp/no-empty-lookarounds-assertion": "error",
376
+ "regexp/no-empty-string-literal": "error",
377
+ "regexp/no-escape-backspace": "error",
378
+ "regexp/no-extra-lookaround-assertions": "error",
379
+ "regexp/no-invalid-regexp": "error",
380
+ "regexp/no-invisible-character": "error",
381
+ "regexp/no-lazy-ends": "warn",
382
+ "regexp/no-legacy-features": "error",
383
+ "regexp/no-misleading-capturing-group": "error",
384
+ "regexp/no-misleading-unicode-character": "error",
385
+ "regexp/no-missing-g-flag": "error",
386
+ "regexp/no-non-standard-flag": "error",
387
+ "regexp/no-obscure-range": "error",
388
+ "regexp/no-optional-assertion": "error",
389
+ "regexp/no-potentially-useless-backreference": "warn",
390
+ "regexp/no-super-linear-backtracking": "error",
391
+ "regexp/no-trivially-nested-assertion": "error",
392
+ "regexp/no-trivially-nested-quantifier": "error",
393
+ "regexp/no-unused-capturing-group": "error",
394
+ "regexp/no-useless-assertions": "error",
395
+ "regexp/no-useless-backreference": "error",
396
+ "regexp/no-useless-character-class": "error",
397
+ "regexp/no-useless-dollar-replacements": "error",
398
+ "regexp/no-useless-escape": "error",
399
+ "regexp/no-useless-flag": "warn",
400
+ "regexp/no-useless-lazy": "error",
401
+ "regexp/no-useless-non-capturing-group": "error",
402
+ "regexp/no-useless-quantifier": "error",
403
+ "regexp/no-useless-range": "error",
404
+ "regexp/no-useless-set-operand": "error",
405
+ "regexp/no-useless-string-literal": "error",
406
+ "regexp/no-useless-two-nums-quantifier": "error",
407
+ "regexp/no-zero-quantifier": "error",
408
+ "regexp/optimal-lookaround-quantifier": "warn",
409
+ "regexp/optimal-quantifier-concatenation": "error",
410
+ "regexp/prefer-character-class": "error",
411
+ "regexp/prefer-d": "error",
412
+ "regexp/prefer-plus-quantifier": "error",
413
+ "regexp/prefer-predefined-assertion": "error",
414
+ "regexp/prefer-question-quantifier": "error",
415
+ "regexp/prefer-range": "error",
416
+ "regexp/prefer-set-operation": "error",
417
+ "regexp/prefer-star-quantifier": "error",
418
+ "regexp/prefer-unicode-codepoint-escapes": "error",
419
+ "regexp/prefer-w": "error",
420
+ "regexp/simplify-set-operations": "error",
421
+ "regexp/sort-flags": "error",
422
+ "regexp/strict": "error",
423
+ "regexp/use-ignore-case": "error",
424
+ "n/no-deprecated-api": "error",
425
+ "n/prefer-global/buffer": ["error", "never"],
426
+ "n/prefer-global/process": ["error", "never"],
427
+ "n/process-exit-as-throw": "error",
428
+ "amxts/no-restricted-syntax": ["error", "TSEnumDeclaration[const=true]", "TSExportAssignment"],
429
+ "amxts/jsdoc-check-alignment": "warn",
430
+ "no-unreachable-loop": "error",
431
+ "perfectionist/sort-imports": [
432
+ "error",
433
+ {
434
+ "groups": [
435
+ "type-import",
436
+ ["type-parent", "type-sibling", "type-index", "type-internal"],
437
+ "value-builtin",
438
+ "value-external",
439
+ "value-internal",
440
+ ["value-parent", "value-sibling", "value-index"],
441
+ "side-effect",
442
+ "ts-equals-import",
443
+ "unknown"
444
+ ],
445
+ "newlinesBetween": "ignore",
446
+ "newlinesInside": "ignore",
447
+ "order": "asc",
448
+ "type": "natural"
449
+ }
450
+ ]
451
+ },
452
+ "overrides": [
453
+ {
454
+ "files": [
455
+ "**/*.js",
456
+ "**/*.jsx",
457
+ "**/*.ts",
458
+ "**/*.tsx",
459
+ "**/*.cjs",
460
+ "**/*.cjsx",
461
+ "**/*.cts",
462
+ "**/*.ctsx",
463
+ "**/*.mjs",
464
+ "**/*.mjsx",
465
+ "**/*.mts",
466
+ "**/*.mtsx"
467
+ ],
468
+ "rules": {
469
+ "node/handle-callback-err": ["error", "^(err|error)$"],
470
+ "node/no-exports-assign": "error",
471
+ "node/no-new-require": "error",
472
+ "node/no-path-concat": "error",
473
+ "jsdoc/check-access": "warn",
474
+ "jsdoc/check-property-names": "warn",
475
+ "jsdoc/empty-tags": "warn",
476
+ "jsdoc/implements-on-classes": "warn",
477
+ "jsdoc/no-defaults": "warn",
478
+ "jsdoc/require-param-name": "warn",
479
+ "jsdoc/require-property": "warn",
480
+ "jsdoc/require-property-description": "warn",
481
+ "jsdoc/require-property-name": "warn",
482
+ "jsdoc/require-returns-description": "warn",
483
+ "unicorn/consistent-empty-array-spread": "error",
484
+ "unicorn/error-message": "error",
485
+ "unicorn/escape-case": "error",
486
+ "unicorn/new-for-builtins": "error",
487
+ "unicorn/no-instanceof-builtins": "error",
488
+ "unicorn/no-new-array": "error",
489
+ "unicorn/no-new-buffer": "error",
490
+ "unicorn/number-literal-case": "error",
491
+ "unicorn/prefer-dom-node-text-content": "error",
492
+ "unicorn/prefer-includes": "error",
493
+ "unicorn/prefer-node-protocol": "error",
494
+ "unicorn/prefer-number-properties": "error",
495
+ "unicorn/prefer-string-starts-ends-with": "error",
496
+ "unicorn/prefer-type-error": "error",
497
+ "unicorn/throw-new-error": "error"
498
+ }
499
+ },
500
+ {
501
+ "files": ["**/*.ts", "**/*.cts", "**/*.mts", "**/*.tsx", "**/*.ctsx", "**/*.mtsx"],
502
+ "rules": {
503
+ "constructor-super": "off",
504
+ "getter-return": "off",
505
+ "no-class-assign": "off",
506
+ "no-const-assign": "off",
507
+ "no-dupe-keys": "off",
508
+ "no-func-assign": "off",
509
+ "no-import-assign": "off",
510
+ "no-new-native-nonconstructor": "off",
511
+ "no-obj-calls": "off",
512
+ "no-redeclare": ["error", { "builtinGlobals": false }],
513
+ "no-setter-return": "off",
514
+ "no-this-before-super": "off",
515
+ "no-unreachable": "off",
516
+ "no-unsafe-negation": "off",
517
+ "no-with": "off",
518
+ "prefer-const": ["error", { "destructuring": "all", "ignoreReadBeforeAssign": true }],
519
+ "no-unused-expressions": [
520
+ "error",
521
+ { "allowShortCircuit": true, "allowTaggedTemplates": true, "allowTernary": true }
522
+ ],
523
+ "no-useless-constructor": "off",
524
+ "no-use-before-define": [
525
+ "error",
526
+ { "classes": false, "functions": false, "variables": true }
527
+ ],
528
+ "typescript/ban-ts-comment": ["error", { "ts-expect-error": "allow-with-description" }],
529
+ "typescript/no-duplicate-enum-values": "error",
530
+ "typescript/no-dynamic-delete": "off",
531
+ "typescript/no-empty-object-type": ["error", { "allowInterfaces": "always" }],
532
+ "typescript/no-explicit-any": "off",
533
+ "typescript/no-extra-non-null-assertion": "error",
534
+ "typescript/no-extraneous-class": "off",
535
+ "typescript/no-invalid-void-type": "off",
536
+ "typescript/no-misused-new": "error",
537
+ "typescript/no-namespace": "error",
538
+ "typescript/no-non-null-asserted-nullish-coalescing": "error",
539
+ "typescript/no-non-null-asserted-optional-chain": "error",
540
+ "typescript/no-non-null-assertion": "off",
541
+ "typescript/no-require-imports": "error",
542
+ "typescript/no-this-alias": "error",
543
+ "typescript/no-unnecessary-type-constraint": "error",
544
+ "typescript/no-unsafe-declaration-merging": "error",
545
+ "typescript/no-unsafe-function-type": "error",
546
+ "typescript/no-wrapper-object-types": "error",
547
+ "typescript/prefer-as-const": "error",
548
+ "typescript/prefer-literal-enum-member": "error",
549
+ "typescript/prefer-namespace-keyword": "error",
550
+ "typescript/triple-slash-reference": "off",
551
+ "typescript/unified-signatures": "off",
552
+ "typescript/consistent-type-definitions": ["error", "interface"],
553
+ "typescript/consistent-type-imports": [
554
+ "error",
555
+ {
556
+ "disallowTypeAnnotations": false,
557
+ "fixStyle": "separate-type-imports",
558
+ "prefer": "type-imports"
559
+ }
560
+ ],
561
+ "typescript/method-signature-style": ["error", "property"],
562
+ "typescript/no-import-type-side-effects": "error"
563
+ }
564
+ },
565
+ {
566
+ "files": [
567
+ "**/__tests__/**/*.js",
568
+ "**/__tests__/**/*.jsx",
569
+ "**/__tests__/**/*.ts",
570
+ "**/__tests__/**/*.tsx",
571
+ "**/__tests__/**/*.cjs",
572
+ "**/__tests__/**/*.cjsx",
573
+ "**/__tests__/**/*.cts",
574
+ "**/__tests__/**/*.ctsx",
575
+ "**/__tests__/**/*.mjs",
576
+ "**/__tests__/**/*.mjsx",
577
+ "**/__tests__/**/*.mts",
578
+ "**/__tests__/**/*.mtsx",
579
+ "**/*.spec.js",
580
+ "**/*.spec.jsx",
581
+ "**/*.spec.ts",
582
+ "**/*.spec.tsx",
583
+ "**/*.spec.cjs",
584
+ "**/*.spec.cjsx",
585
+ "**/*.spec.cts",
586
+ "**/*.spec.ctsx",
587
+ "**/*.spec.mjs",
588
+ "**/*.spec.mjsx",
589
+ "**/*.spec.mts",
590
+ "**/*.spec.mtsx",
591
+ "**/*.test.js",
592
+ "**/*.test.jsx",
593
+ "**/*.test.ts",
594
+ "**/*.test.tsx",
595
+ "**/*.test.cjs",
596
+ "**/*.test.cjsx",
597
+ "**/*.test.cts",
598
+ "**/*.test.ctsx",
599
+ "**/*.test.mjs",
600
+ "**/*.test.mjsx",
601
+ "**/*.test.mts",
602
+ "**/*.test.mtsx",
603
+ "**/*.bench.js",
604
+ "**/*.bench.jsx",
605
+ "**/*.bench.ts",
606
+ "**/*.bench.tsx",
607
+ "**/*.bench.cjs",
608
+ "**/*.bench.cjsx",
609
+ "**/*.bench.cts",
610
+ "**/*.bench.ctsx",
611
+ "**/*.bench.mjs",
612
+ "**/*.bench.mjsx",
613
+ "**/*.bench.mts",
614
+ "**/*.bench.mtsx",
615
+ "**/*.benchmark.js",
616
+ "**/*.benchmark.jsx",
617
+ "**/*.benchmark.ts",
618
+ "**/*.benchmark.tsx",
619
+ "**/*.benchmark.cjs",
620
+ "**/*.benchmark.cjsx",
621
+ "**/*.benchmark.cts",
622
+ "**/*.benchmark.ctsx",
623
+ "**/*.benchmark.mjs",
624
+ "**/*.benchmark.mjsx",
625
+ "**/*.benchmark.mts",
626
+ "**/*.benchmark.mtsx"
627
+ ],
628
+ "rules": {
629
+ "vitest/consistent-test-it": ["error", { "fn": "test", "withinDescribe": "test" }],
630
+ "vitest/no-identical-title": "error",
631
+ "vitest/no-import-node-test": "error",
632
+ "vitest/prefer-hooks-in-order": "error",
633
+ "vitest/prefer-lowercase-title": "error",
634
+ "antfu/no-top-level-await": "off",
635
+ "e18e/prefer-static-regex": "off",
636
+ "typescript/explicit-function-return-type": "off",
637
+ "vitest/no-focused-tests": "error",
638
+ "n/prefer-global/process": "off"
639
+ }
640
+ },
641
+ {
642
+ "files": [
643
+ "**/scripts/**/*.js",
644
+ "**/scripts/**/*.jsx",
645
+ "**/scripts/**/*.ts",
646
+ "**/scripts/**/*.tsx",
647
+ "**/scripts/**/*.cjs",
648
+ "**/scripts/**/*.cjsx",
649
+ "**/scripts/**/*.cts",
650
+ "**/scripts/**/*.ctsx",
651
+ "**/scripts/**/*.mjs",
652
+ "**/scripts/**/*.mjsx",
653
+ "**/scripts/**/*.mts",
654
+ "**/scripts/**/*.mtsx"
655
+ ],
656
+ "rules": {
657
+ "antfu/no-top-level-await": "off",
658
+ "no-console": "off",
659
+ "typescript/explicit-function-return-type": "off"
660
+ }
661
+ },
662
+ {
663
+ "files": [
664
+ "**/cli/**/*.js",
665
+ "**/cli/**/*.jsx",
666
+ "**/cli/**/*.ts",
667
+ "**/cli/**/*.tsx",
668
+ "**/cli/**/*.cjs",
669
+ "**/cli/**/*.cjsx",
670
+ "**/cli/**/*.cts",
671
+ "**/cli/**/*.ctsx",
672
+ "**/cli/**/*.mjs",
673
+ "**/cli/**/*.mjsx",
674
+ "**/cli/**/*.mts",
675
+ "**/cli/**/*.mtsx",
676
+ "**/cli.js",
677
+ "**/cli.jsx",
678
+ "**/cli.ts",
679
+ "**/cli.tsx",
680
+ "**/cli.cjs",
681
+ "**/cli.cjsx",
682
+ "**/cli.cts",
683
+ "**/cli.ctsx",
684
+ "**/cli.mjs",
685
+ "**/cli.mjsx",
686
+ "**/cli.mts",
687
+ "**/cli.mtsx"
688
+ ],
689
+ "rules": {
690
+ "antfu/no-top-level-await": "off",
691
+ "no-console": "off"
692
+ }
693
+ },
694
+ {
695
+ "files": [
696
+ "**/bin/**/*",
697
+ "**/bin.js",
698
+ "**/bin.jsx",
699
+ "**/bin.ts",
700
+ "**/bin.tsx",
701
+ "**/bin.cjs",
702
+ "**/bin.cjsx",
703
+ "**/bin.cts",
704
+ "**/bin.ctsx",
705
+ "**/bin.mjs",
706
+ "**/bin.mjsx",
707
+ "**/bin.mts",
708
+ "**/bin.mtsx"
709
+ ],
710
+ "rules": {
711
+ "antfu/no-import-dist": "off",
712
+ "antfu/no-import-node-modules-by-path": "off"
713
+ }
714
+ },
715
+ {
716
+ "files": ["**/*.d.ts", "**/*.d.cts", "**/*.d.mts"],
717
+ "rules": {
718
+ "eslint-comments/no-unlimited-disable": "off",
719
+ "no-unused-vars": "off"
720
+ }
721
+ },
722
+ {
723
+ "files": ["**/*.js", "**/*.cjs"],
724
+ "rules": {
725
+ "typescript/no-require-imports": "off"
726
+ }
727
+ },
728
+ {
729
+ "files": [
730
+ "**/*.config.js",
731
+ "**/*.config.jsx",
732
+ "**/*.config.ts",
733
+ "**/*.config.tsx",
734
+ "**/*.config.cjs",
735
+ "**/*.config.cjsx",
736
+ "**/*.config.cts",
737
+ "**/*.config.ctsx",
738
+ "**/*.config.mjs",
739
+ "**/*.config.mjsx",
740
+ "**/*.config.mts",
741
+ "**/*.config.mtsx",
742
+ "**/*.config.*.js",
743
+ "**/*.config.*.jsx",
744
+ "**/*.config.*.ts",
745
+ "**/*.config.*.tsx",
746
+ "**/*.config.*.cjs",
747
+ "**/*.config.*.cjsx",
748
+ "**/*.config.*.cts",
749
+ "**/*.config.*.ctsx",
750
+ "**/*.config.*.mjs",
751
+ "**/*.config.*.mjsx",
752
+ "**/*.config.*.mts",
753
+ "**/*.config.*.mtsx"
754
+ ],
755
+ "rules": {
756
+ "antfu/no-top-level-await": "off",
757
+ "no-console": "off",
758
+ "typescript/explicit-function-return-type": "off"
759
+ }
760
+ },
761
+ {
762
+ "files": ["**/*"],
763
+ "rules": {
764
+ "no-console": "off",
765
+ "antfu/if-newline": "off",
766
+ "@stylistic/brace-style": ["error", "1tbs", { "allowSingleLine": true }],
767
+ "no-use-before-define": "off",
768
+ "eqeqeq": "off",
769
+ "typescript/ban-ts-comment": "off",
770
+ "perfectionist/sort-imports": "off",
771
+ "perfectionist/sort-named-imports": "off",
772
+ "typescript/consistent-type-imports": "off",
773
+ "import/consistent-type-specifier-style": "off",
774
+ "unicorn/prefer-number-properties": "off",
775
+ "e18e/prefer-timer-args": "off",
776
+ "amxts/no-restricted-syntax": [
777
+ "error",
778
+ "TSEnumDeclaration[const=true]",
779
+ "TSExportAssignment"
780
+ ]
781
+ }
782
+ }
783
+ ]
784
+ }