2016-11-04 23:15:18 +01:00
|
|
|
|
{
|
|
|
|
|
"env": {
|
2020-07-24 04:33:22 +02:00
|
|
|
|
"es2020": true,
|
|
|
|
|
"node": true
|
2017-05-25 01:44:58 +02:00
|
|
|
|
},
|
2020-07-24 05:53:38 +02:00
|
|
|
|
"extends": ["eslint:recommended", "plugin:import/errors", "plugin:import/warnings", "prettier"],
|
2020-08-13 02:22:08 +02:00
|
|
|
|
"parser": "@babel/eslint-parser",
|
2017-05-25 01:44:58 +02:00
|
|
|
|
"parserOptions": {
|
2019-06-04 02:49:59 +02:00
|
|
|
|
"warnOnUnsupportedTypeScriptVersion": false,
|
2020-08-01 03:43:15 +02:00
|
|
|
|
"sourceType": "unambiguous"
|
2016-11-04 23:15:18 +01:00
|
|
|
|
},
|
2020-07-24 01:26:12 +02:00
|
|
|
|
"plugins": ["eslint-plugin-empty-returns"],
|
2016-11-04 23:15:18 +01:00
|
|
|
|
"rules": {
|
2016-12-05 07:53:36 +01:00
|
|
|
|
"array-callback-return": "error",
|
2020-07-02 01:41:40 +02:00
|
|
|
|
"arrow-body-style": "error",
|
2019-06-22 08:00:15 +02:00
|
|
|
|
"block-scoped-var": "error",
|
|
|
|
|
"curly": "error",
|
2020-05-27 03:58:32 +02:00
|
|
|
|
"dot-notation": "error",
|
2018-03-13 13:04:16 +01:00
|
|
|
|
"empty-returns/main": "error",
|
2019-06-22 08:00:15 +02:00
|
|
|
|
"eqeqeq": "error",
|
|
|
|
|
"guard-for-in": "error",
|
2020-07-24 06:02:07 +02:00
|
|
|
|
"import/first": "error",
|
|
|
|
|
"import/newline-after-import": "error",
|
2020-07-24 05:53:38 +02:00
|
|
|
|
"import/no-unresolved": ["error", {"ignore": ["!"]}],
|
2020-07-24 06:02:07 +02:00
|
|
|
|
"import/order": [
|
|
|
|
|
"error",
|
|
|
|
|
{
|
|
|
|
|
"alphabetize": {"order": "asc"},
|
|
|
|
|
"newlines-between": "always"
|
|
|
|
|
}
|
|
|
|
|
],
|
2020-08-01 03:43:15 +02:00
|
|
|
|
"import/unambiguous": "error",
|
2020-07-24 01:26:12 +02:00
|
|
|
|
"new-cap": [
|
|
|
|
|
"error",
|
2017-06-05 09:01:02 +02:00
|
|
|
|
{
|
|
|
|
|
"capIsNew": false
|
|
|
|
|
}
|
|
|
|
|
],
|
2019-06-22 08:00:15 +02:00
|
|
|
|
"no-alert": "error",
|
2017-06-05 09:01:02 +02:00
|
|
|
|
"no-array-constructor": "error",
|
2019-06-22 08:00:15 +02:00
|
|
|
|
"no-bitwise": "error",
|
|
|
|
|
"no-caller": "error",
|
|
|
|
|
"no-catch-shadow": "error",
|
2020-05-27 03:58:32 +02:00
|
|
|
|
"no-constant-condition": ["error", {"checkLoops": false}],
|
2019-06-22 08:00:15 +02:00
|
|
|
|
"no-div-regex": "error",
|
2017-06-05 09:01:02 +02:00
|
|
|
|
"no-duplicate-imports": "error",
|
2019-06-22 08:00:15 +02:00
|
|
|
|
"no-else-return": "error",
|
|
|
|
|
"no-eq-null": "error",
|
|
|
|
|
"no-eval": "error",
|
|
|
|
|
"no-implied-eval": "error",
|
2020-05-27 03:58:32 +02:00
|
|
|
|
"no-inner-declarations": "off",
|
2017-06-05 09:01:02 +02:00
|
|
|
|
"no-iterator": "error",
|
2019-06-22 08:00:15 +02:00
|
|
|
|
"no-label-var": "error",
|
|
|
|
|
"no-labels": "error",
|
|
|
|
|
"no-loop-func": "error",
|
|
|
|
|
"no-multi-str": "error",
|
|
|
|
|
"no-native-reassign": "error",
|
2017-06-05 09:01:02 +02:00
|
|
|
|
"no-new-func": "error",
|
2019-06-22 08:00:15 +02:00
|
|
|
|
"no-new-object": "error",
|
|
|
|
|
"no-new-wrappers": "error",
|
|
|
|
|
"no-octal-escape": "error",
|
|
|
|
|
"no-plusplus": "error",
|
|
|
|
|
"no-proto": "error",
|
|
|
|
|
"no-return-assign": "error",
|
|
|
|
|
"no-script-url": "error",
|
|
|
|
|
"no-self-compare": "error",
|
|
|
|
|
"no-sync": "error",
|
|
|
|
|
"no-undef-init": "error",
|
2020-07-24 01:26:12 +02:00
|
|
|
|
"no-unneeded-ternary": ["error", {"defaultAssignment": false}],
|
2019-06-22 08:00:15 +02:00
|
|
|
|
"no-unused-expressions": "error",
|
2020-07-24 01:26:12 +02:00
|
|
|
|
"no-unused-vars": [
|
|
|
|
|
"error",
|
2017-06-05 09:01:02 +02:00
|
|
|
|
{
|
|
|
|
|
"vars": "local",
|
|
|
|
|
"varsIgnorePattern": "print_elapsed_time|check_duplicate_ids"
|
|
|
|
|
}
|
|
|
|
|
],
|
2019-06-22 08:00:15 +02:00
|
|
|
|
"no-use-before-define": "error",
|
2017-06-05 09:01:02 +02:00
|
|
|
|
"no-useless-constructor": "error",
|
2019-11-02 00:06:25 +01:00
|
|
|
|
"no-var": "error",
|
2020-07-20 22:18:43 +02:00
|
|
|
|
"object-shorthand": "error",
|
2020-07-24 01:26:12 +02:00
|
|
|
|
"one-var": ["error", "never"],
|
2020-07-02 01:45:54 +02:00
|
|
|
|
"prefer-arrow-callback": "error",
|
2020-07-24 01:26:12 +02:00
|
|
|
|
"prefer-const": [
|
|
|
|
|
"error",
|
2017-06-05 09:01:02 +02:00
|
|
|
|
{
|
|
|
|
|
"ignoreReadBeforeAssign": true
|
|
|
|
|
}
|
|
|
|
|
],
|
2019-06-22 08:00:15 +02:00
|
|
|
|
"radix": "error",
|
2019-06-22 08:04:09 +02:00
|
|
|
|
"spaced-comment": "off",
|
2020-08-01 03:43:15 +02:00
|
|
|
|
"strict": "error",
|
2020-07-24 01:26:12 +02:00
|
|
|
|
"valid-typeof": ["error", {"requireStringLiterals": true}],
|
2019-06-22 08:00:15 +02:00
|
|
|
|
"yoda": "error"
|
2019-03-24 11:20:43 +01:00
|
|
|
|
},
|
|
|
|
|
"overrides": [
|
2020-02-18 00:08:43 +01:00
|
|
|
|
{
|
2020-07-24 04:33:22 +02:00
|
|
|
|
"files": ["frontend_tests/**", "static/js/**"],
|
2020-02-18 00:08:43 +01:00
|
|
|
|
"globals": {
|
|
|
|
|
"$": false,
|
|
|
|
|
"FetchStatus": false,
|
|
|
|
|
"Filter": false,
|
|
|
|
|
"LightboxCanvas": false,
|
2020-07-23 01:48:16 +02:00
|
|
|
|
"ListCursor": false,
|
2020-02-18 00:08:43 +01:00
|
|
|
|
"MessageListData": false,
|
|
|
|
|
"MessageListView": false,
|
2020-07-23 04:10:24 +02:00
|
|
|
|
"UserSearch": false,
|
2020-02-18 00:08:43 +01:00
|
|
|
|
"activity": false,
|
|
|
|
|
"admin": false,
|
|
|
|
|
"alert_words": false,
|
|
|
|
|
"alert_words_ui": false,
|
|
|
|
|
"attachments_ui": false,
|
|
|
|
|
"avatar": false,
|
|
|
|
|
"billing": false,
|
|
|
|
|
"blueslip": false,
|
|
|
|
|
"bot_data": false,
|
|
|
|
|
"bridge": false,
|
|
|
|
|
"buddy_data": false,
|
|
|
|
|
"buddy_list": false,
|
|
|
|
|
"channel": false,
|
|
|
|
|
"click_handlers": false,
|
|
|
|
|
"color_data": false,
|
|
|
|
|
"colorspace": false,
|
|
|
|
|
"common": false,
|
|
|
|
|
"components": false,
|
|
|
|
|
"compose": false,
|
|
|
|
|
"compose_actions": false,
|
|
|
|
|
"compose_fade": false,
|
|
|
|
|
"compose_pm_pill": false,
|
|
|
|
|
"compose_state": false,
|
|
|
|
|
"compose_ui": false,
|
|
|
|
|
"composebox_typeahead": false,
|
|
|
|
|
"condense": false,
|
|
|
|
|
"confirm_dialog": false,
|
|
|
|
|
"copy_and_paste": false,
|
|
|
|
|
"csrf_token": false,
|
|
|
|
|
"current_msg_list": true,
|
|
|
|
|
"drafts": false,
|
2020-05-12 20:44:05 +02:00
|
|
|
|
"dropdown_list_widget": false,
|
2020-02-18 00:08:43 +01:00
|
|
|
|
"echo": false,
|
|
|
|
|
"emoji_picker": false,
|
|
|
|
|
"favicon": false,
|
|
|
|
|
"feature_flags": false,
|
|
|
|
|
"feedback_widget": false,
|
|
|
|
|
"flatpickr": false,
|
|
|
|
|
"floating_recipient_bar": false,
|
|
|
|
|
"gear_menu": false,
|
|
|
|
|
"hash_util": false,
|
|
|
|
|
"hashchange": false,
|
|
|
|
|
"helpers": false,
|
|
|
|
|
"history": false,
|
|
|
|
|
"home_msg_list": false,
|
|
|
|
|
"hotspots": false,
|
|
|
|
|
"i18n": false,
|
|
|
|
|
"info_overlay": false,
|
|
|
|
|
"input_pill": false,
|
|
|
|
|
"invite": false,
|
|
|
|
|
"jQuery": false,
|
|
|
|
|
"keydown_util": false,
|
|
|
|
|
"lightbox": false,
|
|
|
|
|
"list_render": false,
|
|
|
|
|
"list_util": false,
|
|
|
|
|
"loading": false,
|
|
|
|
|
"localStorage": false,
|
|
|
|
|
"local_message": false,
|
|
|
|
|
"localstorage": false,
|
|
|
|
|
"location": false,
|
|
|
|
|
"markdown": false,
|
|
|
|
|
"message_edit": false,
|
2020-06-07 04:50:31 +02:00
|
|
|
|
"message_edit_history": false,
|
2020-02-18 00:08:43 +01:00
|
|
|
|
"message_events": false,
|
|
|
|
|
"message_fetch": false,
|
|
|
|
|
"message_flags": false,
|
|
|
|
|
"message_list": false,
|
|
|
|
|
"message_live_update": false,
|
|
|
|
|
"message_scroll": false,
|
|
|
|
|
"message_store": false,
|
|
|
|
|
"message_util": false,
|
|
|
|
|
"message_viewport": false,
|
|
|
|
|
"muting": false,
|
|
|
|
|
"muting_ui": false,
|
|
|
|
|
"narrow": false,
|
|
|
|
|
"narrow_state": false,
|
|
|
|
|
"navigate": false,
|
|
|
|
|
"night_mode": false,
|
|
|
|
|
"notifications": false,
|
|
|
|
|
"overlays": false,
|
|
|
|
|
"padded_widget": false,
|
|
|
|
|
"page_params": false,
|
|
|
|
|
"panels": false,
|
2020-07-24 18:04:15 +02:00
|
|
|
|
"pill_typeahead": false,
|
2020-02-18 00:08:43 +01:00
|
|
|
|
"people": false,
|
|
|
|
|
"pm_conversations": false,
|
|
|
|
|
"pm_list": false,
|
|
|
|
|
"pm_list_dom": false,
|
|
|
|
|
"pointer": false,
|
|
|
|
|
"popovers": false,
|
|
|
|
|
"presence": false,
|
|
|
|
|
"reactions": false,
|
|
|
|
|
"realm_icon": false,
|
|
|
|
|
"realm_logo": false,
|
|
|
|
|
"realm_night_logo": false,
|
|
|
|
|
"recent_senders": false,
|
2020-03-21 14:42:10 +01:00
|
|
|
|
"recent_topics": false,
|
2020-02-18 00:08:43 +01:00
|
|
|
|
"reload": false,
|
|
|
|
|
"reload_state": false,
|
|
|
|
|
"reminder": false,
|
|
|
|
|
"resize": false,
|
|
|
|
|
"rows": false,
|
|
|
|
|
"rtl": false,
|
|
|
|
|
"run_test": false,
|
|
|
|
|
"schema": false,
|
|
|
|
|
"scroll_bar": false,
|
|
|
|
|
"scroll_util": false,
|
|
|
|
|
"search": false,
|
|
|
|
|
"search_pill": false,
|
|
|
|
|
"search_pill_widget": false,
|
|
|
|
|
"search_suggestion": false,
|
|
|
|
|
"search_util": false,
|
|
|
|
|
"sent_messages": false,
|
|
|
|
|
"server_events": false,
|
|
|
|
|
"server_events_dispatch": false,
|
|
|
|
|
"settings": false,
|
|
|
|
|
"settings_account": false,
|
|
|
|
|
"settings_bots": false,
|
|
|
|
|
"settings_display": false,
|
|
|
|
|
"settings_emoji": false,
|
|
|
|
|
"settings_exports": false,
|
|
|
|
|
"settings_linkifiers": false,
|
|
|
|
|
"settings_invites": false,
|
|
|
|
|
"settings_muting": false,
|
|
|
|
|
"settings_notifications": false,
|
|
|
|
|
"settings_org": false,
|
|
|
|
|
"settings_panel_menu": false,
|
|
|
|
|
"settings_profile_fields": false,
|
|
|
|
|
"settings_sections": false,
|
|
|
|
|
"settings_streams": false,
|
|
|
|
|
"settings_toggle": false,
|
|
|
|
|
"settings_ui": false,
|
|
|
|
|
"settings_user_groups": false,
|
|
|
|
|
"settings_users": false,
|
2020-04-04 22:14:34 +02:00
|
|
|
|
"spoilers": false,
|
2020-02-18 00:08:43 +01:00
|
|
|
|
"starred_messages": false,
|
|
|
|
|
"stream_color": false,
|
|
|
|
|
"stream_create": false,
|
|
|
|
|
"stream_data": false,
|
|
|
|
|
"stream_edit": false,
|
|
|
|
|
"stream_events": false,
|
2020-03-22 18:40:05 +01:00
|
|
|
|
"stream_topic_history": false,
|
2020-02-18 00:08:43 +01:00
|
|
|
|
"stream_list": false,
|
|
|
|
|
"stream_muting": false,
|
|
|
|
|
"stream_popover": false,
|
|
|
|
|
"stream_sort": false,
|
|
|
|
|
"stream_ui_updates": false,
|
|
|
|
|
"StripeCheckout": false,
|
|
|
|
|
"submessage": false,
|
|
|
|
|
"subs": false,
|
2020-07-08 23:44:01 +02:00
|
|
|
|
"message_view_header": false,
|
2020-02-18 00:08:43 +01:00
|
|
|
|
"templates": false,
|
|
|
|
|
"tictactoe_widget": false,
|
|
|
|
|
"timerender": false,
|
|
|
|
|
"todo_widget": false,
|
|
|
|
|
"top_left_corner": false,
|
|
|
|
|
"topic_generator": false,
|
|
|
|
|
"topic_list": false,
|
|
|
|
|
"topic_zoom": false,
|
|
|
|
|
"transmit": false,
|
|
|
|
|
"tutorial": false,
|
|
|
|
|
"typeahead_helper": false,
|
|
|
|
|
"typing": false,
|
|
|
|
|
"typing_data": false,
|
|
|
|
|
"typing_events": false,
|
|
|
|
|
"ui": false,
|
|
|
|
|
"ui_init": false,
|
|
|
|
|
"ui_report": false,
|
|
|
|
|
"ui_util": false,
|
|
|
|
|
"unread": false,
|
|
|
|
|
"unread_ops": false,
|
|
|
|
|
"unread_ui": false,
|
|
|
|
|
"upgrade": false,
|
|
|
|
|
"upload": false,
|
|
|
|
|
"upload_widget": false,
|
|
|
|
|
"user_events": false,
|
|
|
|
|
"user_groups": false,
|
|
|
|
|
"user_pill": false,
|
|
|
|
|
"user_status": false,
|
|
|
|
|
"user_status_ui": false,
|
|
|
|
|
"poll_widget": false,
|
|
|
|
|
"vdom": false,
|
|
|
|
|
"widgetize": false,
|
|
|
|
|
"zcommand": false,
|
|
|
|
|
"zform": false,
|
|
|
|
|
"zxcvbn": false
|
|
|
|
|
}
|
|
|
|
|
},
|
2019-03-24 11:20:43 +01:00
|
|
|
|
{
|
|
|
|
|
"files": ["**/*.ts"],
|
2020-07-24 05:53:38 +02:00
|
|
|
|
"extends": [
|
|
|
|
|
"plugin:@typescript-eslint/recommended",
|
|
|
|
|
"plugin:import/typescript",
|
|
|
|
|
"prettier/@typescript-eslint"
|
|
|
|
|
],
|
2019-03-24 11:20:43 +01:00
|
|
|
|
"parserOptions": {
|
2019-11-04 23:37:32 +01:00
|
|
|
|
"project": "tsconfig.json"
|
2019-03-24 11:20:43 +01:00
|
|
|
|
},
|
|
|
|
|
"rules": {
|
2019-05-31 07:15:00 +02:00
|
|
|
|
// Disable base rule to avoid conflict
|
2019-06-22 08:04:09 +02:00
|
|
|
|
"empty-returns/main": "off",
|
|
|
|
|
"no-unused-vars": "off",
|
2019-06-20 11:59:55 +02:00
|
|
|
|
"no-useless-constructor": "off",
|
2019-03-25 15:35:44 +01:00
|
|
|
|
|
2019-06-22 08:00:15 +02:00
|
|
|
|
"@typescript-eslint/array-type": "error",
|
|
|
|
|
"@typescript-eslint/await-thenable": "error",
|
2019-11-09 02:48:01 +01:00
|
|
|
|
"@typescript-eslint/consistent-type-assertions": "error",
|
2020-07-24 01:26:12 +02:00
|
|
|
|
"@typescript-eslint/explicit-function-return-type": [
|
|
|
|
|
"error",
|
|
|
|
|
{"allowExpressions": true}
|
|
|
|
|
],
|
2019-06-22 08:00:15 +02:00
|
|
|
|
"@typescript-eslint/member-ordering": "error",
|
2019-06-22 08:04:09 +02:00
|
|
|
|
"@typescript-eslint/no-explicit-any": "off",
|
2019-06-22 08:00:15 +02:00
|
|
|
|
"@typescript-eslint/no-extraneous-class": "error",
|
2019-06-22 08:04:09 +02:00
|
|
|
|
"@typescript-eslint/no-non-null-assertion": "off",
|
2019-06-22 08:00:15 +02:00
|
|
|
|
"@typescript-eslint/no-parameter-properties": "error",
|
|
|
|
|
"@typescript-eslint/no-unnecessary-qualifier": "error",
|
|
|
|
|
"@typescript-eslint/no-unnecessary-type-assertion": "error",
|
2020-07-24 01:26:12 +02:00
|
|
|
|
"@typescript-eslint/no-unused-vars": ["error", {"varsIgnorePattern": "^_"}],
|
2019-06-22 08:00:15 +02:00
|
|
|
|
"@typescript-eslint/no-use-before-define": "error",
|
|
|
|
|
"@typescript-eslint/no-useless-constructor": "error",
|
|
|
|
|
"@typescript-eslint/prefer-includes": "error",
|
|
|
|
|
"@typescript-eslint/prefer-regexp-exec": "error",
|
|
|
|
|
"@typescript-eslint/prefer-string-starts-ends-with": "error",
|
|
|
|
|
"@typescript-eslint/promise-function-async": "error",
|
|
|
|
|
"@typescript-eslint/unified-signatures": "error"
|
2019-03-24 11:20:43 +01:00
|
|
|
|
}
|
2020-07-24 04:33:22 +02:00
|
|
|
|
},
|
2020-08-01 03:43:15 +02:00
|
|
|
|
{
|
|
|
|
|
"files": ["**/*.d.ts"],
|
|
|
|
|
"rules": {
|
|
|
|
|
"import/unambiguous": "off"
|
|
|
|
|
}
|
|
|
|
|
},
|
2020-07-24 04:33:22 +02:00
|
|
|
|
{
|
|
|
|
|
"files": ["frontend_tests/**"],
|
|
|
|
|
"globals": {
|
|
|
|
|
"assert": false,
|
|
|
|
|
"document": false,
|
|
|
|
|
"set_global": false,
|
|
|
|
|
"window": false,
|
2020-07-27 16:06:46 +02:00
|
|
|
|
"with_field": false,
|
2020-07-24 04:33:22 +02:00
|
|
|
|
"zrequire": false
|
|
|
|
|
},
|
|
|
|
|
"rules": {
|
|
|
|
|
"no-sync": "off"
|
|
|
|
|
}
|
|
|
|
|
},
|
|
|
|
|
{
|
2020-08-30 13:48:09 +02:00
|
|
|
|
"files": ["tools/debug-require.js"],
|
2020-07-24 04:33:22 +02:00
|
|
|
|
"env": {
|
|
|
|
|
"browser": true,
|
|
|
|
|
"es2020": false
|
|
|
|
|
},
|
|
|
|
|
"rules": {
|
|
|
|
|
// Don’t require ES features that PhantomJS doesn’t support
|
|
|
|
|
"no-var": "off",
|
|
|
|
|
"object-shorthand": "off",
|
|
|
|
|
"prefer-arrow-callback": "off"
|
|
|
|
|
}
|
|
|
|
|
},
|
|
|
|
|
{
|
|
|
|
|
"files": ["static/**"],
|
|
|
|
|
"env": {
|
|
|
|
|
"browser": true,
|
|
|
|
|
"commonjs": true,
|
|
|
|
|
"node": false
|
|
|
|
|
},
|
|
|
|
|
"rules": {
|
|
|
|
|
"no-console": "error"
|
|
|
|
|
}
|
|
|
|
|
},
|
|
|
|
|
{
|
|
|
|
|
"files": ["static/shared/**"],
|
|
|
|
|
"env": {
|
|
|
|
|
"browser": false,
|
|
|
|
|
"commonjs": false,
|
|
|
|
|
"shared-node-browser": true
|
2020-07-25 21:22:06 +02:00
|
|
|
|
},
|
|
|
|
|
"rules": {
|
|
|
|
|
"import/no-restricted-paths": [
|
|
|
|
|
"error",
|
|
|
|
|
{
|
|
|
|
|
"zones": [
|
|
|
|
|
{
|
|
|
|
|
"target": "./static/shared",
|
|
|
|
|
"from": ".",
|
|
|
|
|
"except": ["./node_modules", "./static/shared"]
|
|
|
|
|
}
|
|
|
|
|
]
|
|
|
|
|
}
|
|
|
|
|
]
|
2020-07-24 04:33:22 +02:00
|
|
|
|
}
|
2019-03-24 11:20:43 +01:00
|
|
|
|
}
|
|
|
|
|
]
|
2016-11-04 23:15:18 +01:00
|
|
|
|
}
|