mirror of
https://github.com/zulip/zulip.git
synced 2025-10-23 04:52:12 +00:00
eslint: Migrate to flat configuration.
Signed-off-by: Anders Kaseorg <anders@zulip.com>
This commit is contained in:
committed by
Tim Abbott
parent
7950696081
commit
9a4728425d
@@ -1,15 +0,0 @@
|
||||
# This is intended for generated files and vendored third-party files.
|
||||
# For our source code, instead of adding files here, consider using
|
||||
# specific eslint-disable comments in the files themselves.
|
||||
|
||||
/docs/_build
|
||||
/static/generated
|
||||
/static/webpack-bundles
|
||||
/var/*
|
||||
!/var/puppeteer
|
||||
/var/puppeteer/*
|
||||
!/var/puppeteer/test_credentials.d.ts
|
||||
/web/generated
|
||||
/web/third
|
||||
/zulip-current-venv
|
||||
/zulip-py3-venv
|
296
.eslintrc.cjs
296
.eslintrc.cjs
@@ -1,296 +0,0 @@
|
||||
"use strict";
|
||||
|
||||
const confusingBrowserGlobals = require("confusing-browser-globals");
|
||||
|
||||
module.exports = {
|
||||
root: true,
|
||||
env: {
|
||||
es2020: true,
|
||||
node: true,
|
||||
},
|
||||
extends: [
|
||||
"eslint:recommended",
|
||||
"plugin:import/errors",
|
||||
"plugin:import/warnings",
|
||||
"plugin:no-jquery/recommended",
|
||||
"plugin:no-jquery/deprecated",
|
||||
"plugin:unicorn/recommended",
|
||||
"prettier",
|
||||
],
|
||||
parserOptions: {
|
||||
warnOnUnsupportedTypeScriptVersion: false,
|
||||
},
|
||||
plugins: ["formatjs", "no-jquery"],
|
||||
settings: {
|
||||
formatjs: {
|
||||
additionalFunctionNames: ["$t", "$t_html"],
|
||||
},
|
||||
"no-jquery": {
|
||||
collectionReturningPlugins: {
|
||||
expectOne: "always",
|
||||
},
|
||||
variablePattern: "^\\$(?!t$|t_html$).",
|
||||
},
|
||||
},
|
||||
reportUnusedDisableDirectives: true,
|
||||
rules: {
|
||||
"array-callback-return": "error",
|
||||
"arrow-body-style": "error",
|
||||
"block-scoped-var": "error",
|
||||
"consistent-return": "error",
|
||||
curly: "error",
|
||||
"dot-notation": "error",
|
||||
eqeqeq: "error",
|
||||
"formatjs/enforce-default-message": ["error", "literal"],
|
||||
"formatjs/enforce-placeholders": [
|
||||
"error",
|
||||
{ignoreList: ["b", "code", "em", "i", "kbd", "p", "strong"]},
|
||||
],
|
||||
"formatjs/no-id": "error",
|
||||
"guard-for-in": "error",
|
||||
"import/extensions": ["error", "ignorePackages"],
|
||||
"import/first": "error",
|
||||
"import/newline-after-import": "error",
|
||||
"import/no-cycle": ["error", {ignoreExternal: true}],
|
||||
"import/no-duplicates": "error",
|
||||
"import/no-self-import": "error",
|
||||
"import/no-unresolved": "off",
|
||||
"import/no-useless-path-segments": "error",
|
||||
"import/order": ["error", {alphabetize: {order: "asc"}, "newlines-between": "always"}],
|
||||
"import/unambiguous": "error",
|
||||
"lines-around-directive": "error",
|
||||
"new-cap": "error",
|
||||
"no-alert": "error",
|
||||
"no-array-constructor": "error",
|
||||
"no-bitwise": "error",
|
||||
"no-caller": "error",
|
||||
"no-catch-shadow": "error",
|
||||
"no-constant-condition": ["error", {checkLoops: false}],
|
||||
"no-div-regex": "error",
|
||||
"no-else-return": "error",
|
||||
"no-eq-null": "error",
|
||||
"no-eval": "error",
|
||||
"no-implicit-coercion": "error",
|
||||
"no-implied-eval": "error",
|
||||
"no-inner-declarations": "off",
|
||||
"no-iterator": "error",
|
||||
"no-jquery/no-append-html": "error",
|
||||
"no-jquery/no-constructor-attributes": "error",
|
||||
"no-jquery/no-parse-html-literal": "error",
|
||||
"no-label-var": "error",
|
||||
"no-labels": "error",
|
||||
"no-loop-func": "error",
|
||||
"no-multi-str": "error",
|
||||
"no-native-reassign": "error",
|
||||
"no-new-func": "error",
|
||||
"no-new-object": "error",
|
||||
"no-new-wrappers": "error",
|
||||
"no-octal-escape": "error",
|
||||
"no-plusplus": "error",
|
||||
"no-proto": "error",
|
||||
"no-restricted-globals": ["error", ...confusingBrowserGlobals],
|
||||
"no-return-assign": "error",
|
||||
"no-script-url": "error",
|
||||
"no-self-compare": "error",
|
||||
"no-sync": "error",
|
||||
"no-throw-literal": "error",
|
||||
"no-undef-init": "error",
|
||||
"no-unneeded-ternary": ["error", {defaultAssignment: false}],
|
||||
"no-unused-expressions": "error",
|
||||
"no-unused-vars": [
|
||||
"error",
|
||||
{args: "all", argsIgnorePattern: "^_", ignoreRestSiblings: true},
|
||||
],
|
||||
"no-use-before-define": ["error", {functions: false, variables: false}],
|
||||
"no-useless-concat": "error",
|
||||
"no-useless-constructor": "error",
|
||||
"no-var": "error",
|
||||
"object-shorthand": ["error", "always", {avoidExplicitReturnArrows: true}],
|
||||
"one-var": ["error", "never"],
|
||||
"prefer-arrow-callback": "error",
|
||||
"prefer-const": ["error", {ignoreReadBeforeAssign: true}],
|
||||
radix: "error",
|
||||
"sort-imports": ["error", {ignoreDeclarationSort: true}],
|
||||
"spaced-comment": ["error", "always", {markers: ["/"]}],
|
||||
strict: "error",
|
||||
"unicorn/consistent-function-scoping": "off",
|
||||
"unicorn/explicit-length-check": "off",
|
||||
"unicorn/filename-case": "off",
|
||||
"unicorn/no-await-expression-member": "off",
|
||||
"unicorn/no-negated-condition": "off",
|
||||
"unicorn/no-null": "off",
|
||||
"unicorn/no-process-exit": "off",
|
||||
"unicorn/no-useless-undefined": "off",
|
||||
"unicorn/numeric-separators-style": "off",
|
||||
"unicorn/prefer-global-this": "off",
|
||||
"unicorn/prefer-module": "off",
|
||||
"unicorn/prefer-string-raw": "off",
|
||||
"unicorn/prefer-ternary": "off",
|
||||
"unicorn/prefer-top-level-await": "off",
|
||||
"unicorn/prevent-abbreviations": "off",
|
||||
"unicorn/switch-case-braces": "off",
|
||||
"valid-typeof": ["error", {requireStringLiterals: true}],
|
||||
yoda: "error",
|
||||
},
|
||||
overrides: [
|
||||
{
|
||||
files: ["*.cjs"],
|
||||
parserOptions: {
|
||||
sourceType: "script",
|
||||
},
|
||||
},
|
||||
{
|
||||
files: ["web/tests/**"],
|
||||
rules: {
|
||||
"no-jquery/no-selector-prop": "off",
|
||||
},
|
||||
},
|
||||
{
|
||||
files: ["web/e2e-tests/**"],
|
||||
globals: {
|
||||
zulip_test: false,
|
||||
},
|
||||
},
|
||||
{
|
||||
files: ["web/src/**"],
|
||||
globals: {
|
||||
StripeCheckout: false,
|
||||
},
|
||||
},
|
||||
{
|
||||
files: ["**/*.cts", "**/*.mts", "**/*.ts"],
|
||||
extends: [
|
||||
"plugin:@typescript-eslint/strict-type-checked",
|
||||
"plugin:@typescript-eslint/stylistic-type-checked",
|
||||
"plugin:import/typescript",
|
||||
],
|
||||
parserOptions: {
|
||||
project: true,
|
||||
tsconfigRootDir: __dirname,
|
||||
},
|
||||
settings: {
|
||||
"import/resolver": {
|
||||
node: {
|
||||
extensions: [".ts", ".d.ts", ".js"], // https://github.com/import-js/eslint-plugin-import/issues/2267
|
||||
},
|
||||
},
|
||||
},
|
||||
globals: {
|
||||
JQuery: false,
|
||||
},
|
||||
rules: {
|
||||
// Disable base rule to avoid conflict
|
||||
"no-use-before-define": "off",
|
||||
|
||||
"@typescript-eslint/consistent-type-assertions": [
|
||||
"error",
|
||||
{assertionStyle: "never"},
|
||||
],
|
||||
"@typescript-eslint/consistent-type-definitions": ["error", "type"],
|
||||
"@typescript-eslint/consistent-type-imports": "error",
|
||||
"@typescript-eslint/explicit-function-return-type": [
|
||||
"error",
|
||||
{allowExpressions: true},
|
||||
],
|
||||
"@typescript-eslint/member-ordering": "error",
|
||||
"@typescript-eslint/method-signature-style": "error",
|
||||
"@typescript-eslint/no-non-null-assertion": "off",
|
||||
"@typescript-eslint/no-unnecessary-condition": "off",
|
||||
"@typescript-eslint/no-unnecessary-qualifier": "error",
|
||||
"@typescript-eslint/no-unused-vars": [
|
||||
"error",
|
||||
{args: "all", argsIgnorePattern: "^_", ignoreRestSiblings: true},
|
||||
],
|
||||
"@typescript-eslint/no-use-before-define": [
|
||||
"error",
|
||||
{functions: false, variables: false},
|
||||
],
|
||||
"@typescript-eslint/parameter-properties": "error",
|
||||
"@typescript-eslint/promise-function-async": "error",
|
||||
"@typescript-eslint/restrict-plus-operands": ["error", {}],
|
||||
"@typescript-eslint/restrict-template-expressions": ["error", {}],
|
||||
"no-undef": "error",
|
||||
},
|
||||
},
|
||||
{
|
||||
files: ["**/*.d.ts"],
|
||||
rules: {
|
||||
"import/unambiguous": "off",
|
||||
},
|
||||
},
|
||||
{
|
||||
files: ["web/e2e-tests/**", "web/tests/**"],
|
||||
globals: {
|
||||
CSS: false,
|
||||
document: false,
|
||||
navigator: false,
|
||||
window: false,
|
||||
},
|
||||
rules: {
|
||||
"formatjs/no-id": "off",
|
||||
"new-cap": "off",
|
||||
"no-sync": "off",
|
||||
"unicorn/prefer-prototype-methods": "off",
|
||||
},
|
||||
},
|
||||
{
|
||||
files: ["web/debug-require.cjs"],
|
||||
env: {
|
||||
browser: true,
|
||||
es2020: false,
|
||||
},
|
||||
rules: {
|
||||
// Don’t require ES features that PhantomJS doesn’t support
|
||||
// TODO: Toggle these settings now that we don't use PhantomJS
|
||||
"no-var": "off",
|
||||
"object-shorthand": "off",
|
||||
"prefer-arrow-callback": "off",
|
||||
},
|
||||
},
|
||||
{
|
||||
files: ["web/shared/**", "web/src/**"],
|
||||
env: {
|
||||
browser: true,
|
||||
node: false,
|
||||
},
|
||||
globals: {
|
||||
DEVELOPMENT: false,
|
||||
ZULIP_VERSION: false,
|
||||
},
|
||||
rules: {
|
||||
"no-console": "error",
|
||||
},
|
||||
settings: {
|
||||
"import/resolver": "webpack",
|
||||
},
|
||||
},
|
||||
{
|
||||
files: ["web/shared/**"],
|
||||
env: {
|
||||
browser: false,
|
||||
"shared-node-browser": true,
|
||||
},
|
||||
rules: {
|
||||
"import/no-restricted-paths": [
|
||||
"error",
|
||||
{
|
||||
zones: [
|
||||
{
|
||||
target: "./web/shared",
|
||||
from: ".",
|
||||
except: ["./node_modules", "./web/shared"],
|
||||
},
|
||||
],
|
||||
},
|
||||
],
|
||||
"unicorn/prefer-string-replace-all": "off",
|
||||
},
|
||||
},
|
||||
{
|
||||
files: ["web/server/**"],
|
||||
env: {
|
||||
node: true,
|
||||
},
|
||||
},
|
||||
],
|
||||
};
|
315
eslint.config.js
Normal file
315
eslint.config.js
Normal file
@@ -0,0 +1,315 @@
|
||||
import {FlatCompat} from "@eslint/eslintrc";
|
||||
import js from "@eslint/js";
|
||||
import confusingBrowserGlobals from "confusing-browser-globals";
|
||||
import prettier from "eslint-config-prettier";
|
||||
import formatjs from "eslint-plugin-formatjs";
|
||||
import importPlugin from "eslint-plugin-import";
|
||||
import noJquery from "eslint-plugin-no-jquery";
|
||||
import unicorn from "eslint-plugin-unicorn";
|
||||
import globals from "globals";
|
||||
import tseslint from "typescript-eslint";
|
||||
|
||||
const compat = new FlatCompat({baseDirectory: import.meta.dirname});
|
||||
|
||||
export default [
|
||||
{
|
||||
files: ["tools/check-openapi"],
|
||||
},
|
||||
{
|
||||
// This is intended for generated files and vendored third-party files.
|
||||
// For our source code, instead of adding files here, consider using
|
||||
// specific eslint-disable comments in the files themselves.
|
||||
ignores: [
|
||||
"docs/_build",
|
||||
"static/generated",
|
||||
"static/webpack-bundles",
|
||||
"var/*",
|
||||
"!var/puppeteer",
|
||||
"var/puppeteer/*",
|
||||
"!var/puppeteer/test_credentials.d.ts",
|
||||
"web/generated",
|
||||
"web/third",
|
||||
"zulip-current-venv",
|
||||
"zulip-py3-venv",
|
||||
],
|
||||
},
|
||||
js.configs.recommended,
|
||||
importPlugin.flatConfigs.recommended,
|
||||
...compat.extends("plugin:no-jquery/recommended", "plugin:no-jquery/deprecated"),
|
||||
unicorn.configs["flat/recommended"],
|
||||
prettier,
|
||||
{
|
||||
plugins: {
|
||||
formatjs,
|
||||
"no-jquery": noJquery,
|
||||
},
|
||||
linterOptions: {
|
||||
reportUnusedDisableDirectives: true,
|
||||
},
|
||||
languageOptions: {
|
||||
ecmaVersion: "latest",
|
||||
parserOptions: {
|
||||
warnOnUnsupportedTypeScriptVersion: false,
|
||||
},
|
||||
},
|
||||
settings: {
|
||||
formatjs: {
|
||||
additionalFunctionNames: ["$t", "$t_html"],
|
||||
},
|
||||
"no-jquery": {
|
||||
collectionReturningPlugins: {expectOne: "always"},
|
||||
variablePattern: "^\\$(?!t$|t_html$).",
|
||||
},
|
||||
},
|
||||
rules: {
|
||||
"array-callback-return": "error",
|
||||
"arrow-body-style": "error",
|
||||
"block-scoped-var": "error",
|
||||
"consistent-return": "error",
|
||||
curly: "error",
|
||||
"dot-notation": "error",
|
||||
eqeqeq: "error",
|
||||
"formatjs/enforce-default-message": ["error", "literal"],
|
||||
"formatjs/enforce-placeholders": [
|
||||
"error",
|
||||
{ignoreList: ["b", "code", "em", "i", "kbd", "p", "strong"]},
|
||||
],
|
||||
"formatjs/no-id": "error",
|
||||
"guard-for-in": "error",
|
||||
"import/extensions": ["error", "ignorePackages"],
|
||||
"import/first": "error",
|
||||
"import/newline-after-import": "error",
|
||||
"import/no-cycle": ["error", {ignoreExternal: true}],
|
||||
"import/no-duplicates": "error",
|
||||
"import/no-self-import": "error",
|
||||
"import/no-unresolved": "off",
|
||||
"import/no-useless-path-segments": "error",
|
||||
"import/order": ["error", {alphabetize: {order: "asc"}, "newlines-between": "always"}],
|
||||
"import/unambiguous": "error",
|
||||
"lines-around-directive": "error",
|
||||
"new-cap": "error",
|
||||
"no-alert": "error",
|
||||
"no-array-constructor": "error",
|
||||
"no-bitwise": "error",
|
||||
"no-caller": "error",
|
||||
"no-catch-shadow": "error",
|
||||
"no-constant-condition": ["error", {checkLoops: false}],
|
||||
"no-div-regex": "error",
|
||||
"no-else-return": "error",
|
||||
"no-eq-null": "error",
|
||||
"no-eval": "error",
|
||||
"no-implicit-coercion": "error",
|
||||
"no-implied-eval": "error",
|
||||
"no-inner-declarations": "off",
|
||||
"no-iterator": "error",
|
||||
"no-jquery/no-append-html": "error",
|
||||
"no-jquery/no-constructor-attributes": "error",
|
||||
"no-jquery/no-parse-html-literal": "error",
|
||||
"no-label-var": "error",
|
||||
"no-labels": "error",
|
||||
"no-loop-func": "error",
|
||||
"no-multi-str": "error",
|
||||
"no-native-reassign": "error",
|
||||
"no-new-func": "error",
|
||||
"no-new-object": "error",
|
||||
"no-new-wrappers": "error",
|
||||
"no-octal-escape": "error",
|
||||
"no-plusplus": "error",
|
||||
"no-proto": "error",
|
||||
"no-restricted-globals": ["error", ...confusingBrowserGlobals],
|
||||
"no-return-assign": "error",
|
||||
"no-script-url": "error",
|
||||
"no-self-compare": "error",
|
||||
"no-sync": "error",
|
||||
"no-throw-literal": "error",
|
||||
"no-undef-init": "error",
|
||||
"no-unneeded-ternary": ["error", {defaultAssignment: false}],
|
||||
"no-unused-expressions": "error",
|
||||
"no-unused-vars": [
|
||||
"error",
|
||||
{args: "all", argsIgnorePattern: "^_", ignoreRestSiblings: true},
|
||||
],
|
||||
"no-use-before-define": ["error", {functions: false, variables: false}],
|
||||
"no-useless-concat": "error",
|
||||
"no-useless-constructor": "error",
|
||||
"no-var": "error",
|
||||
"object-shorthand": ["error", "always", {avoidExplicitReturnArrows: true}],
|
||||
"one-var": ["error", "never"],
|
||||
"prefer-arrow-callback": "error",
|
||||
"prefer-const": ["error", {ignoreReadBeforeAssign: true}],
|
||||
radix: "error",
|
||||
"sort-imports": ["error", {ignoreDeclarationSort: true}],
|
||||
"spaced-comment": ["error", "always", {markers: ["/"]}],
|
||||
strict: "error",
|
||||
"unicorn/consistent-function-scoping": "off",
|
||||
"unicorn/explicit-length-check": "off",
|
||||
"unicorn/filename-case": "off",
|
||||
"unicorn/no-await-expression-member": "off",
|
||||
"unicorn/no-negated-condition": "off",
|
||||
"unicorn/no-null": "off",
|
||||
"unicorn/no-process-exit": "off",
|
||||
"unicorn/no-useless-undefined": "off",
|
||||
"unicorn/numeric-separators-style": "off",
|
||||
"unicorn/prefer-global-this": "off",
|
||||
"unicorn/prefer-module": "off",
|
||||
"unicorn/prefer-string-raw": "off",
|
||||
"unicorn/prefer-ternary": "off",
|
||||
"unicorn/prefer-top-level-await": "off",
|
||||
"unicorn/prevent-abbreviations": "off",
|
||||
"unicorn/switch-case-braces": "off",
|
||||
"valid-typeof": ["error", {requireStringLiterals: true}],
|
||||
yoda: "error",
|
||||
},
|
||||
},
|
||||
{
|
||||
files: ["**/*.cjs"],
|
||||
languageOptions: {
|
||||
sourceType: "commonjs",
|
||||
},
|
||||
},
|
||||
{
|
||||
files: ["web/tests/**"],
|
||||
rules: {
|
||||
"no-jquery/no-selector-prop": "off",
|
||||
},
|
||||
},
|
||||
{
|
||||
files: ["web/e2e-tests/**"],
|
||||
languageOptions: {
|
||||
globals: {
|
||||
zulip_test: "readonly",
|
||||
},
|
||||
},
|
||||
},
|
||||
...[
|
||||
...tseslint.configs.strictTypeChecked,
|
||||
...tseslint.configs.stylisticTypeChecked,
|
||||
importPlugin.flatConfigs.typescript,
|
||||
].map((config) => ({
|
||||
...config,
|
||||
files: ["**/*.cts", "**/*.mts", "**/*.ts"],
|
||||
})),
|
||||
{
|
||||
files: ["**/*.cts", "**/*.mts", "**/*.ts"],
|
||||
languageOptions: {
|
||||
globals: {
|
||||
JQuery: "readonly",
|
||||
},
|
||||
parserOptions: {
|
||||
project: true,
|
||||
tsConfigRootDir: import.meta.dirname,
|
||||
},
|
||||
},
|
||||
settings: {
|
||||
"import/resolver": {
|
||||
node: {
|
||||
extensions: [".ts", ".d.ts", ".js"],
|
||||
},
|
||||
},
|
||||
},
|
||||
rules: {
|
||||
"no-use-before-define": "off",
|
||||
"@typescript-eslint/consistent-type-assertions": ["error", {assertionStyle: "never"}],
|
||||
"@typescript-eslint/consistent-type-definitions": ["error", "type"],
|
||||
"@typescript-eslint/consistent-type-imports": "error",
|
||||
"@typescript-eslint/explicit-function-return-type": ["error", {allowExpressions: true}],
|
||||
"@typescript-eslint/member-ordering": "error",
|
||||
"@typescript-eslint/method-signature-style": "error",
|
||||
"@typescript-eslint/no-non-null-assertion": "off",
|
||||
"@typescript-eslint/no-unnecessary-condition": "off",
|
||||
"@typescript-eslint/no-unnecessary-qualifier": "error",
|
||||
"@typescript-eslint/no-unused-vars": [
|
||||
"error",
|
||||
{args: "all", argsIgnorePattern: "^_", ignoreRestSiblings: true},
|
||||
],
|
||||
"@typescript-eslint/no-use-before-define": [
|
||||
"error",
|
||||
{functions: false, variables: false},
|
||||
],
|
||||
"@typescript-eslint/parameter-properties": "error",
|
||||
"@typescript-eslint/promise-function-async": "error",
|
||||
"@typescript-eslint/restrict-plus-operands": ["error", {}],
|
||||
"@typescript-eslint/restrict-template-expressions": ["error", {}],
|
||||
"no-undef": "error",
|
||||
},
|
||||
},
|
||||
{
|
||||
files: ["**/*.d.ts"],
|
||||
rules: {
|
||||
"import/unambiguous": "off",
|
||||
},
|
||||
},
|
||||
{
|
||||
files: ["**"],
|
||||
ignores: ["web/shared/**", "web/src/**"],
|
||||
languageOptions: {
|
||||
globals: globals.node,
|
||||
},
|
||||
},
|
||||
{
|
||||
files: ["web/e2e-tests/**", "web/tests/**"],
|
||||
languageOptions: {
|
||||
globals: {
|
||||
CSS: "readonly",
|
||||
document: "readonly",
|
||||
navigator: "readonly",
|
||||
window: "readonly",
|
||||
},
|
||||
},
|
||||
rules: {
|
||||
"formatjs/no-id": "off",
|
||||
"new-cap": "off",
|
||||
"no-sync": "off",
|
||||
"unicorn/prefer-prototype-methods": "off",
|
||||
},
|
||||
},
|
||||
{
|
||||
files: ["web/debug-require.cjs"],
|
||||
rules: {
|
||||
"no-var": "off",
|
||||
"object-shorthand": "off",
|
||||
"prefer-arrow-callback": "off",
|
||||
},
|
||||
},
|
||||
{
|
||||
files: ["web/shared/**", "web/src/**"],
|
||||
settings: {
|
||||
"import/resolver": "webpack",
|
||||
},
|
||||
rules: {
|
||||
"no-console": "error",
|
||||
},
|
||||
},
|
||||
{
|
||||
files: ["web/src/**"],
|
||||
languageOptions: {
|
||||
globals: {
|
||||
...globals.browser,
|
||||
DEVELOPMENT: "readonly",
|
||||
StripeCheckout: "readonly",
|
||||
ZULIP_VERSION: "readonly",
|
||||
},
|
||||
},
|
||||
},
|
||||
{
|
||||
files: ["web/shared/**"],
|
||||
languageOptions: {
|
||||
globals: globals["shared-node-browser"],
|
||||
},
|
||||
rules: {
|
||||
"import/no-restricted-paths": [
|
||||
"error",
|
||||
{
|
||||
zones: [
|
||||
{
|
||||
target: "./web/shared",
|
||||
from: ".",
|
||||
except: ["./node_modules", "./web/shared"],
|
||||
},
|
||||
],
|
||||
},
|
||||
],
|
||||
"unicorn/prefer-string-replace-all": "off",
|
||||
},
|
||||
},
|
||||
];
|
@@ -97,11 +97,16 @@
|
||||
"devDependencies": {
|
||||
"@babel/eslint-parser": "^7.11.3",
|
||||
"@babel/plugin-transform-modules-commonjs": "^7.19.6",
|
||||
"@eslint/eslintrc": "^2.1.4",
|
||||
"@eslint/js": "^8.57.1",
|
||||
"@formatjs/cli": "^6.0.0",
|
||||
"@giphy/js-types": "^5.1.0",
|
||||
"@types/autosize": "^4.0.1",
|
||||
"@types/blueimp-md5": "^2.18.0",
|
||||
"@types/co-body": "^6.1.3",
|
||||
"@types/confusing-browser-globals": "^1.0.3",
|
||||
"@types/eslint__eslintrc": "^2.1.2",
|
||||
"@types/eslint__js": "^8.42.3",
|
||||
"@types/gtag.js": "^0.0.20",
|
||||
"@types/is-url": "^1.2.32",
|
||||
"@types/jquery": "^3.3.31",
|
||||
@@ -139,6 +144,7 @@
|
||||
"eslint-plugin-import": "^2.22.0",
|
||||
"eslint-plugin-no-jquery": "^3.0.2",
|
||||
"eslint-plugin-unicorn": "^56.0.0",
|
||||
"globals": "^13.24.0",
|
||||
"jsdom": "^25.0.0",
|
||||
"mockdate": "^3.0.2",
|
||||
"nyc": "^17.0.0",
|
||||
@@ -152,6 +158,7 @@
|
||||
"svgo": "^3.0.0",
|
||||
"swagger-parser": "^10.0.0",
|
||||
"typescript": "^5.0.2",
|
||||
"typescript-eslint": "^8.13.0",
|
||||
"vnu-jar": "^24.10.17",
|
||||
"webpack-dev-server": "^5.0.2",
|
||||
"xvfb": "^0.4.0",
|
||||
|
60
pnpm-lock.yaml
generated
60
pnpm-lock.yaml
generated
@@ -302,6 +302,12 @@ importers:
|
||||
'@babel/plugin-transform-modules-commonjs':
|
||||
specifier: ^7.19.6
|
||||
version: 7.25.9(@babel/core@7.26.0)
|
||||
'@eslint/eslintrc':
|
||||
specifier: ^2.1.4
|
||||
version: 2.1.4
|
||||
'@eslint/js':
|
||||
specifier: ^8.57.1
|
||||
version: 8.57.1
|
||||
'@formatjs/cli':
|
||||
specifier: ^6.0.0
|
||||
version: 6.3.8
|
||||
@@ -317,6 +323,15 @@ importers:
|
||||
'@types/co-body':
|
||||
specifier: ^6.1.3
|
||||
version: 6.1.3
|
||||
'@types/confusing-browser-globals':
|
||||
specifier: ^1.0.3
|
||||
version: 1.0.3
|
||||
'@types/eslint__eslintrc':
|
||||
specifier: ^2.1.2
|
||||
version: 2.1.2
|
||||
'@types/eslint__js':
|
||||
specifier: ^8.42.3
|
||||
version: 8.42.3
|
||||
'@types/gtag.js':
|
||||
specifier: ^0.0.20
|
||||
version: 0.0.20
|
||||
@@ -428,6 +443,9 @@ importers:
|
||||
eslint-plugin-unicorn:
|
||||
specifier: ^56.0.0
|
||||
version: 56.0.0(eslint@8.57.1)
|
||||
globals:
|
||||
specifier: ^13.24.0
|
||||
version: 13.24.0
|
||||
jsdom:
|
||||
specifier: ^25.0.0
|
||||
version: 25.0.1
|
||||
@@ -467,6 +485,9 @@ importers:
|
||||
typescript:
|
||||
specifier: ^5.0.2
|
||||
version: 5.6.3
|
||||
typescript-eslint:
|
||||
specifier: ^8.13.0
|
||||
version: 8.13.0(eslint@8.57.1)(typescript@5.6.3)
|
||||
vnu-jar:
|
||||
specifier: ^24.10.17
|
||||
version: 24.10.17
|
||||
@@ -2283,6 +2304,9 @@ packages:
|
||||
'@types/co-body@6.1.3':
|
||||
resolution: {integrity: sha512-UhuhrQ5hclX6UJctv5m4Rfp52AfG9o9+d9/HwjxhVB5NjXxr5t9oKgJxN8xRHgr35oo8meUEHUPFWiKg6y71aA==}
|
||||
|
||||
'@types/confusing-browser-globals@1.0.3':
|
||||
resolution: {integrity: sha512-q+6axdE3RyjrSsy2ONE4UpF89rwOfpoMBP3lqJ+OzLuOeYHwP+o2GITzuleKb1UT3FSYybO8QmeACgyHleu2CA==}
|
||||
|
||||
'@types/connect-history-api-fallback@1.5.4':
|
||||
resolution: {integrity: sha512-n6Cr2xS1h4uAulPRdlw6Jl6s1oG8KrVilPN2yUITEs+K48EzMJJ3W1xy8K5eWuFvjp3R74AOIGSmp2UfBJ8HFw==}
|
||||
|
||||
@@ -2307,6 +2331,12 @@ packages:
|
||||
'@types/eslint@9.6.1':
|
||||
resolution: {integrity: sha512-FXx2pKgId/WyYo2jXw63kk7/+TY7u7AziEJxJAnSFzHlqTAS3Ync6SvgYAN/k4/PQpnnVuzoMuVnByKK2qp0ag==}
|
||||
|
||||
'@types/eslint__eslintrc@2.1.2':
|
||||
resolution: {integrity: sha512-qXvzPFY7Rz05xD8ZApXJ3S8xStQD2Ibzu3EFIF0UMNOAfLY5xUu3H61q0JrHo2OXD6rcFG75yUxNQbkKtFKBSw==}
|
||||
|
||||
'@types/eslint__js@8.42.3':
|
||||
resolution: {integrity: sha512-alfG737uhmPdnvkrLdZLcEKJ/B8s9Y4hrZ+YAdzUeoArBlSUERA2E87ROfOaS4jd/C45fzOoZzidLc1IPwLqOw==}
|
||||
|
||||
'@types/estree-jsx@1.0.5':
|
||||
resolution: {integrity: sha512-52CcUVNFyfb1A2ALocQw/Dd1BQFNmSdkuC3BkZ6iqhdMfQz7JWOFRuJFloOzjk+6WijU56m9oKXFAXc7o3Towg==}
|
||||
|
||||
@@ -8333,6 +8363,15 @@ packages:
|
||||
typescript-auto-import-cache@0.3.5:
|
||||
resolution: {integrity: sha512-fAIveQKsoYj55CozUiBoj4b/7WpN0i4o74wiGY5JVUEoD0XiqDk1tJqTEjgzL2/AizKQrXxyRosSebyDzBZKjw==}
|
||||
|
||||
typescript-eslint@8.13.0:
|
||||
resolution: {integrity: sha512-vIMpDRJrQd70au2G8w34mPps0ezFSPMEX4pXkTzUkrNbRX+36ais2ksGWN0esZL+ZMaFJEneOBHzCgSqle7DHw==}
|
||||
engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0}
|
||||
peerDependencies:
|
||||
typescript: '*'
|
||||
peerDependenciesMeta:
|
||||
typescript:
|
||||
optional: true
|
||||
|
||||
typescript@5.6.3:
|
||||
resolution: {integrity: sha512-hjcS1mhfuyi4WW8IWtjP7brDrG2cuDZukyrYrSauoXGNgx0S7zceP07adYkJycEr56BOUTNPzbInooiN3fn1qw==}
|
||||
engines: {node: '>=14.17'}
|
||||
@@ -11099,6 +11138,8 @@ snapshots:
|
||||
'@types/node': 22.9.0
|
||||
'@types/qs': 6.9.17
|
||||
|
||||
'@types/confusing-browser-globals@1.0.3': {}
|
||||
|
||||
'@types/connect-history-api-fallback@1.5.4':
|
||||
dependencies:
|
||||
'@types/express-serve-static-core': 5.0.1
|
||||
@@ -11133,6 +11174,14 @@ snapshots:
|
||||
'@types/estree': 1.0.6
|
||||
'@types/json-schema': 7.0.15
|
||||
|
||||
'@types/eslint__eslintrc@2.1.2':
|
||||
dependencies:
|
||||
'@types/eslint': 9.6.1
|
||||
|
||||
'@types/eslint__js@8.42.3':
|
||||
dependencies:
|
||||
'@types/eslint': 9.6.1
|
||||
|
||||
'@types/estree-jsx@1.0.5':
|
||||
dependencies:
|
||||
'@types/estree': 1.0.6
|
||||
@@ -18625,6 +18674,17 @@ snapshots:
|
||||
dependencies:
|
||||
semver: 7.6.3
|
||||
|
||||
typescript-eslint@8.13.0(eslint@8.57.1)(typescript@5.6.3):
|
||||
dependencies:
|
||||
'@typescript-eslint/eslint-plugin': 8.13.0(@typescript-eslint/parser@8.13.0(eslint@8.57.1)(typescript@5.6.3))(eslint@8.57.1)(typescript@5.6.3)
|
||||
'@typescript-eslint/parser': 8.13.0(eslint@8.57.1)(typescript@5.6.3)
|
||||
'@typescript-eslint/utils': 8.13.0(eslint@8.57.1)(typescript@5.6.3)
|
||||
optionalDependencies:
|
||||
typescript: 5.6.3
|
||||
transitivePeerDependencies:
|
||||
- eslint
|
||||
- supports-color
|
||||
|
||||
typescript@5.6.3: {}
|
||||
|
||||
uglify-js@3.19.3:
|
||||
|
@@ -49,4 +49,4 @@ API_FEATURE_LEVEL = 322 # Last bumped for adding users to groups using invitati
|
||||
# historical commits sharing the same major version, in which case a
|
||||
# minor version bump suffices.
|
||||
|
||||
PROVISION_VERSION = (303, 0) # bumped 2024-11-18 for types-defusedxml
|
||||
PROVISION_VERSION = (303, 1) # bumped 2024-11-26 for flat ESLint config
|
||||
|
Reference in New Issue
Block a user