From 3ef6f6e2e20a40ce4581f457680b1d0f482b3ac2 Mon Sep 17 00:00:00 2001 From: Anders Kaseorg Date: Tue, 16 Mar 2021 15:38:59 -0700 Subject: [PATCH] js: Convert static/js/blueslip.js to ES6 module. Signed-off-by: Anders Kaseorg --- .eslintrc.json | 2 - docs/subsystems/logging.md | 3 +- frontend_tests/node_tests/activity.js | 1 + frontend_tests/node_tests/buddy_data.js | 1 + frontend_tests/node_tests/buddy_list.js | 1 + frontend_tests/node_tests/channel.js | 1 + frontend_tests/node_tests/compose.js | 1 + frontend_tests/node_tests/dispatch_subs.js | 1 + .../node_tests/dropdown_list_widget.js | 1 + frontend_tests/node_tests/hashchange.js | 1 + frontend_tests/node_tests/input_pill.js | 1 + frontend_tests/node_tests/lazy_set.js | 1 + frontend_tests/node_tests/list_cursor.js | 1 + frontend_tests/node_tests/list_widget.js | 1 + frontend_tests/node_tests/markdown.js | 1 + frontend_tests/node_tests/markdown_katex.js | 1 + frontend_tests/node_tests/message_list.js | 1 + .../node_tests/message_list_data.js | 1 + frontend_tests/node_tests/message_store.js | 1 + frontend_tests/node_tests/muting.js | 1 + frontend_tests/node_tests/narrow_unread.js | 1 + frontend_tests/node_tests/peer_data.js | 1 + frontend_tests/node_tests/people.js | 1 + frontend_tests/node_tests/people_errors.js | 1 + frontend_tests/node_tests/poll_widget.js | 1 + frontend_tests/node_tests/presence.js | 1 + frontend_tests/node_tests/reactions.js | 1 + .../node_tests/rendered_markdown.js | 1 + frontend_tests/node_tests/server_events.js | 1 + frontend_tests/node_tests/settings_org.js | 1 + .../node_tests/settings_user_groups.js | 1 + frontend_tests/node_tests/stream_data.js | 1 + frontend_tests/node_tests/stream_events.js | 1 + frontend_tests/node_tests/transmit.js | 1 + frontend_tests/node_tests/user_events.js | 1 + frontend_tests/node_tests/user_groups.js | 1 + frontend_tests/node_tests/user_status.js | 1 + frontend_tests/node_tests/vdom.js | 1 + frontend_tests/node_tests/widgetize.js | 1 + frontend_tests/node_tests/zblueslip.js | 1 + frontend_tests/zjsunit/index.js | 5 +- frontend_tests/zjsunit/namespace.js | 4 +- frontend_tests/zjsunit/test.js | 3 +- frontend_tests/zjsunit/zblueslip.js | 6 ++- static/js/activity.js | 1 + static/js/blueslip.js | 52 +++++++++---------- static/js/buddy_data.js | 1 + static/js/buddy_list.js | 1 + static/js/channel.js | 1 + static/js/click_handlers.js | 1 + static/js/compose.js | 1 + static/js/confirm_dialog.js | 1 + static/js/drafts.js | 1 + static/js/dropdown_list_widget.js | 1 + static/js/echo.js | 1 + static/js/emoji_picker.js | 1 + static/js/feedback_widget.js | 2 + static/js/floating_recipient_bar.js | 1 + static/js/global.d.ts | 1 - static/js/hashchange.js | 1 + static/js/hotspots.js | 1 + static/js/input_pill.js | 1 + static/js/lazy_set.js | 2 + static/js/lightbox.js | 1 + static/js/lightbox_canvas.js | 1 + static/js/list_cursor.js | 1 + static/js/list_widget.js | 1 + static/js/local_message.js | 1 + static/js/localstorage.js | 2 + static/js/markdown.js | 1 + static/js/message_edit.js | 1 + static/js/message_list.js | 1 + static/js/message_list_data.js | 1 + static/js/message_list_view.js | 1 + static/js/message_store.js | 1 + static/js/message_viewport.js | 1 + static/js/muting.js | 1 + static/js/narrow.js | 1 + static/js/narrow_state.js | 1 + static/js/notifications.js | 1 + static/js/overlays.js | 1 + static/js/peer_data.js | 1 + static/js/people.js | 1 + static/js/poll_widget.js | 1 + static/js/popovers.js | 1 + static/js/presence.js | 1 + static/js/reactions.js | 1 + static/js/reload.js | 1 + static/js/rendered_markdown.js | 1 + static/js/resize.js | 1 + static/js/rows.js | 1 + static/js/sent_messages.js | 1 + static/js/server_events.js | 1 + static/js/server_events_dispatch.js | 1 + static/js/settings.js | 1 + static/js/settings_account.js | 1 + static/js/settings_invites.js | 1 + static/js/settings_org.js | 1 + static/js/settings_sections.js | 1 + static/js/settings_users.js | 1 + static/js/setup.js | 1 + static/js/stream_create.js | 1 + static/js/stream_data.js | 1 + static/js/stream_edit.js | 1 + static/js/stream_events.js | 1 + static/js/stream_list.js | 1 + static/js/stream_popover.js | 1 + static/js/submessage.js | 1 + static/js/subs.js | 1 + static/js/todo_widget.js | 2 + static/js/topic_list.js | 1 + static/js/transmit.js | 1 + static/js/typing.js | 1 + static/js/ui.js | 1 + static/js/ui_init.js | 1 + static/js/user_events.js | 1 + static/js/user_groups.js | 1 + static/js/user_pill.js | 1 + static/js/user_status.js | 1 + static/js/vdom.js | 2 + static/js/widgetize.js | 1 + static/js/zform.js | 1 + tools/linter_lib/custom_check.py | 4 -- 123 files changed, 155 insertions(+), 44 deletions(-) diff --git a/.eslintrc.json b/.eslintrc.json index 6e2f1b1f7f..47f2eb9854 100644 --- a/.eslintrc.json +++ b/.eslintrc.json @@ -107,7 +107,6 @@ { "files": ["frontend_tests/node_tests/**"], "globals": { - "blueslip": false, "current_msg_list": false, "home_msg_list": false, "i18n": false, @@ -126,7 +125,6 @@ { "files": ["static/js/**"], "globals": { - "blueslip": false, "csrf_token": false, "current_msg_list": true, "home_msg_list": false, diff --git a/docs/subsystems/logging.md b/docs/subsystems/logging.md index 9c21d96fa6..790106e623 100644 --- a/docs/subsystems/logging.md +++ b/docs/subsystems/logging.md @@ -127,7 +127,8 @@ new feature hard to miss. * Blueslip keeps a log of all the notices it has received during a browser session, and includes them in reports to the server, so that one can see cases where exceptions chained together. You can print - this log from the browser console using `blueslip.get_log()`. + this log from the browser console using `blueslip = + require("./static/js/blueslip"); blueslip.get_log()`. Blueslip supports several error levels: * `throw new Error(…)`: For fatal errors that cannot be easily diff --git a/frontend_tests/node_tests/activity.js b/frontend_tests/node_tests/activity.js index a3399b8e3f..4f6c540dfc 100644 --- a/frontend_tests/node_tests/activity.js +++ b/frontend_tests/node_tests/activity.js @@ -4,6 +4,7 @@ const {strict: assert} = require("assert"); const {mock_cjs, mock_esm, set_global, zrequire} = require("../zjsunit/namespace"); const {run_test} = require("../zjsunit/test"); +const blueslip = require("../zjsunit/zblueslip"); const $ = require("../zjsunit/zjquery"); mock_cjs("jquery", $); diff --git a/frontend_tests/node_tests/buddy_data.js b/frontend_tests/node_tests/buddy_data.js index dad75af826..d182b438a3 100644 --- a/frontend_tests/node_tests/buddy_data.js +++ b/frontend_tests/node_tests/buddy_data.js @@ -6,6 +6,7 @@ const _ = require("lodash"); const {mock_esm, set_global, with_field, zrequire} = require("../zjsunit/namespace"); const {run_test} = require("../zjsunit/test"); +const blueslip = require("../zjsunit/zblueslip"); const page_params = set_global("page_params", {}); diff --git a/frontend_tests/node_tests/buddy_list.js b/frontend_tests/node_tests/buddy_list.js index 10cf6963a9..71f89567f4 100644 --- a/frontend_tests/node_tests/buddy_list.js +++ b/frontend_tests/node_tests/buddy_list.js @@ -6,6 +6,7 @@ const _ = require("lodash"); const {mock_cjs, mock_esm, zrequire} = require("../zjsunit/namespace"); const {run_test} = require("../zjsunit/test"); +const blueslip = require("../zjsunit/zblueslip"); const $ = require("../zjsunit/zjquery"); mock_cjs("jquery", $); diff --git a/frontend_tests/node_tests/channel.js b/frontend_tests/node_tests/channel.js index 320176a70a..4bdff4d406 100644 --- a/frontend_tests/node_tests/channel.js +++ b/frontend_tests/node_tests/channel.js @@ -6,6 +6,7 @@ const _ = require("lodash"); const {mock_cjs, set_global, zrequire} = require("../zjsunit/namespace"); const {run_test} = require("../zjsunit/test"); +const blueslip = require("../zjsunit/zblueslip"); set_global("setTimeout", (f, delay) => { assert.equal(delay, 0); diff --git a/frontend_tests/node_tests/compose.js b/frontend_tests/node_tests/compose.js index 200c0d6eae..947fcd0736 100644 --- a/frontend_tests/node_tests/compose.js +++ b/frontend_tests/node_tests/compose.js @@ -8,6 +8,7 @@ const MockDate = require("mockdate"); const {stub_templates} = require("../zjsunit/handlebars"); const {mock_cjs, mock_esm, set_global, zrequire} = require("../zjsunit/namespace"); const {run_test} = require("../zjsunit/test"); +const blueslip = require("../zjsunit/zblueslip"); const $ = require("../zjsunit/zjquery"); mock_cjs("jquery", $); diff --git a/frontend_tests/node_tests/dispatch_subs.js b/frontend_tests/node_tests/dispatch_subs.js index 22693f1a51..bed5e5619a 100644 --- a/frontend_tests/node_tests/dispatch_subs.js +++ b/frontend_tests/node_tests/dispatch_subs.js @@ -5,6 +5,7 @@ const {strict: assert} = require("assert"); const {mock_esm, set_global, zrequire} = require("../zjsunit/namespace"); const {make_stub} = require("../zjsunit/stub"); const {run_test} = require("../zjsunit/test"); +const blueslip = require("../zjsunit/zblueslip"); const events = require("./lib/events"); diff --git a/frontend_tests/node_tests/dropdown_list_widget.js b/frontend_tests/node_tests/dropdown_list_widget.js index 20b487a48f..0bf63aa3f3 100644 --- a/frontend_tests/node_tests/dropdown_list_widget.js +++ b/frontend_tests/node_tests/dropdown_list_widget.js @@ -4,6 +4,7 @@ const {strict: assert} = require("assert"); const {mock_cjs, mock_esm, zrequire} = require("../zjsunit/namespace"); const {run_test} = require("../zjsunit/test"); +const blueslip = require("../zjsunit/zblueslip"); const $ = require("../zjsunit/zjquery"); const noop = () => {}; diff --git a/frontend_tests/node_tests/hashchange.js b/frontend_tests/node_tests/hashchange.js index 41ba8a7eec..b860dc7409 100644 --- a/frontend_tests/node_tests/hashchange.js +++ b/frontend_tests/node_tests/hashchange.js @@ -4,6 +4,7 @@ const {strict: assert} = require("assert"); const {mock_cjs, mock_esm, set_global, zrequire} = require("../zjsunit/namespace"); const {run_test} = require("../zjsunit/test"); +const blueslip = require("../zjsunit/zblueslip"); const $ = require("../zjsunit/zjquery"); mock_cjs("jquery", $); diff --git a/frontend_tests/node_tests/input_pill.js b/frontend_tests/node_tests/input_pill.js index d56d34feba..b71a3116ed 100644 --- a/frontend_tests/node_tests/input_pill.js +++ b/frontend_tests/node_tests/input_pill.js @@ -4,6 +4,7 @@ const {strict: assert} = require("assert"); const {mock_cjs, mock_esm, set_global, zrequire} = require("../zjsunit/namespace"); const {run_test} = require("../zjsunit/test"); +const blueslip = require("../zjsunit/zblueslip"); const $ = require("../zjsunit/zjquery"); set_global("document", {}); diff --git a/frontend_tests/node_tests/lazy_set.js b/frontend_tests/node_tests/lazy_set.js index ba4fb43f78..d7e80c9d11 100644 --- a/frontend_tests/node_tests/lazy_set.js +++ b/frontend_tests/node_tests/lazy_set.js @@ -4,6 +4,7 @@ const {strict: assert} = require("assert"); const {zrequire} = require("../zjsunit/namespace"); const {run_test} = require("../zjsunit/test"); +const blueslip = require("../zjsunit/zblueslip"); const {LazySet} = zrequire("lazy_set"); diff --git a/frontend_tests/node_tests/list_cursor.js b/frontend_tests/node_tests/list_cursor.js index 6d97566825..4f80640fe8 100644 --- a/frontend_tests/node_tests/list_cursor.js +++ b/frontend_tests/node_tests/list_cursor.js @@ -4,6 +4,7 @@ const {strict: assert} = require("assert"); const {zrequire} = require("../zjsunit/namespace"); const {run_test} = require("../zjsunit/test"); +const blueslip = require("../zjsunit/zblueslip"); const {ListCursor} = zrequire("list_cursor"); diff --git a/frontend_tests/node_tests/list_widget.js b/frontend_tests/node_tests/list_widget.js index 15d0ffb5cf..9d942262e4 100644 --- a/frontend_tests/node_tests/list_widget.js +++ b/frontend_tests/node_tests/list_widget.js @@ -4,6 +4,7 @@ const {strict: assert} = require("assert"); const {mock_cjs, mock_esm, set_global, zrequire} = require("../zjsunit/namespace"); const {run_test} = require("../zjsunit/test"); +const blueslip = require("../zjsunit/zblueslip"); // We need these stubs to get by instanceof checks. // The ListWidget library allows you to insert objects diff --git a/frontend_tests/node_tests/markdown.js b/frontend_tests/node_tests/markdown.js index 04ddee6be9..9fb27268a8 100644 --- a/frontend_tests/node_tests/markdown.js +++ b/frontend_tests/node_tests/markdown.js @@ -6,6 +6,7 @@ const markdown_test_cases = require("../../zerver/tests/fixtures/markdown_test_c const markdown_assert = require("../zjsunit/markdown_assert"); const {set_global, zrequire} = require("../zjsunit/namespace"); const {run_test} = require("../zjsunit/test"); +const blueslip = require("../zjsunit/zblueslip"); set_global("location", { origin: "http://zulip.zulipdev.com", diff --git a/frontend_tests/node_tests/markdown_katex.js b/frontend_tests/node_tests/markdown_katex.js index cdde8fb44f..d0cf3b0262 100644 --- a/frontend_tests/node_tests/markdown_katex.js +++ b/frontend_tests/node_tests/markdown_katex.js @@ -9,6 +9,7 @@ const {set_global, with_field, zrequire} = require("../zjsunit/namespace"); const {run_test} = require("../zjsunit/test"); +const blueslip = require("../zjsunit/zblueslip"); set_global("page_params", {}); diff --git a/frontend_tests/node_tests/message_list.js b/frontend_tests/node_tests/message_list.js index b00e300eca..74cd52123f 100644 --- a/frontend_tests/node_tests/message_list.js +++ b/frontend_tests/node_tests/message_list.js @@ -5,6 +5,7 @@ const {strict: assert} = require("assert"); const {mock_cjs, mock_esm, set_global, zrequire} = require("../zjsunit/namespace"); const {make_stub} = require("../zjsunit/stub"); const {run_test} = require("../zjsunit/test"); +const blueslip = require("../zjsunit/zblueslip"); const $ = require("../zjsunit/zjquery"); // These unit tests for static/js/message_list.js emphasize the model-ish diff --git a/frontend_tests/node_tests/message_list_data.js b/frontend_tests/node_tests/message_list_data.js index 8a7dd8a394..2191a994f4 100644 --- a/frontend_tests/node_tests/message_list_data.js +++ b/frontend_tests/node_tests/message_list_data.js @@ -4,6 +4,7 @@ const {strict: assert} = require("assert"); const {set_global, with_field, zrequire} = require("../zjsunit/namespace"); const {run_test} = require("../zjsunit/test"); +const blueslip = require("../zjsunit/zblueslip"); set_global("page_params", {}); diff --git a/frontend_tests/node_tests/message_store.js b/frontend_tests/node_tests/message_store.js index 7a9e5cee33..a30ac6f5dc 100644 --- a/frontend_tests/node_tests/message_store.js +++ b/frontend_tests/node_tests/message_store.js @@ -5,6 +5,7 @@ const {strict: assert} = require("assert"); const {mock_esm, set_global, with_field, zrequire} = require("../zjsunit/namespace"); const {make_stub} = require("../zjsunit/stub"); const {run_test} = require("../zjsunit/test"); +const blueslip = require("../zjsunit/zblueslip"); const noop = () => {}; diff --git a/frontend_tests/node_tests/muting.js b/frontend_tests/node_tests/muting.js index fb2047d4d3..cfc886d6c8 100644 --- a/frontend_tests/node_tests/muting.js +++ b/frontend_tests/node_tests/muting.js @@ -4,6 +4,7 @@ const {strict: assert} = require("assert"); const {set_global, zrequire} = require("../zjsunit/namespace"); const {run_test} = require("../zjsunit/test"); +const blueslip = require("../zjsunit/zblueslip"); const page_params = set_global("page_params", {}); diff --git a/frontend_tests/node_tests/narrow_unread.js b/frontend_tests/node_tests/narrow_unread.js index 461813a776..012ef355e4 100644 --- a/frontend_tests/node_tests/narrow_unread.js +++ b/frontend_tests/node_tests/narrow_unread.js @@ -4,6 +4,7 @@ const {strict: assert} = require("assert"); const {mock_esm, set_global, zrequire} = require("../zjsunit/namespace"); const {run_test} = require("../zjsunit/test"); +const blueslip = require("../zjsunit/zblueslip"); const message_store = mock_esm("../../static/js/message_store"); mock_esm("../../static/js/muting", { diff --git a/frontend_tests/node_tests/peer_data.js b/frontend_tests/node_tests/peer_data.js index 9fb86d46bf..3e7dcf4d6d 100644 --- a/frontend_tests/node_tests/peer_data.js +++ b/frontend_tests/node_tests/peer_data.js @@ -10,6 +10,7 @@ const {strict: assert} = require("assert"); const {set_global, zrequire} = require("../zjsunit/namespace"); const {run_test} = require("../zjsunit/test"); +const blueslip = require("../zjsunit/zblueslip"); const peer_data = zrequire("peer_data"); const people = zrequire("people"); diff --git a/frontend_tests/node_tests/people.js b/frontend_tests/node_tests/people.js index 25dd2dcafe..377c5d775d 100644 --- a/frontend_tests/node_tests/people.js +++ b/frontend_tests/node_tests/people.js @@ -8,6 +8,7 @@ const MockDate = require("mockdate"); const {mock_esm, set_global, zrequire} = require("../zjsunit/namespace"); const {run_test} = require("../zjsunit/test"); +const blueslip = require("../zjsunit/zblueslip"); const message_store = mock_esm("../../static/js/message_store"); const page_params = set_global("page_params", {}); diff --git a/frontend_tests/node_tests/people_errors.js b/frontend_tests/node_tests/people_errors.js index 1c243ce64a..07bddec491 100644 --- a/frontend_tests/node_tests/people_errors.js +++ b/frontend_tests/node_tests/people_errors.js @@ -4,6 +4,7 @@ const {strict: assert} = require("assert"); const {mock_esm, zrequire} = require("../zjsunit/namespace"); const {run_test} = require("../zjsunit/test"); +const blueslip = require("../zjsunit/zblueslip"); const reload_state = mock_esm("../../static/js/reload_state", { is_in_progress: () => false, diff --git a/frontend_tests/node_tests/poll_widget.js b/frontend_tests/node_tests/poll_widget.js index d0fe68d4a9..6e253ca699 100644 --- a/frontend_tests/node_tests/poll_widget.js +++ b/frontend_tests/node_tests/poll_widget.js @@ -5,6 +5,7 @@ const {strict: assert} = require("assert"); const {stub_templates} = require("../zjsunit/handlebars"); const {mock_cjs, zrequire} = require("../zjsunit/namespace"); const {run_test} = require("../zjsunit/test"); +const blueslip = require("../zjsunit/zblueslip"); const $ = require("../zjsunit/zjquery"); mock_cjs("jquery", $); diff --git a/frontend_tests/node_tests/presence.js b/frontend_tests/node_tests/presence.js index a22aac02ec..e999c71542 100644 --- a/frontend_tests/node_tests/presence.js +++ b/frontend_tests/node_tests/presence.js @@ -4,6 +4,7 @@ const {strict: assert} = require("assert"); const {mock_esm, zrequire} = require("../zjsunit/namespace"); const {run_test} = require("../zjsunit/test"); +const blueslip = require("../zjsunit/zblueslip"); const reload_state = mock_esm("../../static/js/reload_state", { is_in_progress: () => false, diff --git a/frontend_tests/node_tests/reactions.js b/frontend_tests/node_tests/reactions.js index df49db4593..93669b770f 100644 --- a/frontend_tests/node_tests/reactions.js +++ b/frontend_tests/node_tests/reactions.js @@ -6,6 +6,7 @@ const {stub_templates} = require("../zjsunit/handlebars"); const {mock_cjs, mock_esm, set_global, zrequire} = require("../zjsunit/namespace"); const {make_stub} = require("../zjsunit/stub"); const {run_test} = require("../zjsunit/test"); +const blueslip = require("../zjsunit/zblueslip"); const $ = require("../zjsunit/zjquery"); const alice_user_id = 5; diff --git a/frontend_tests/node_tests/rendered_markdown.js b/frontend_tests/node_tests/rendered_markdown.js index 243ac4444e..cd2e12bf4a 100644 --- a/frontend_tests/node_tests/rendered_markdown.js +++ b/frontend_tests/node_tests/rendered_markdown.js @@ -4,6 +4,7 @@ const {strict: assert} = require("assert"); const {mock_cjs, mock_esm, set_global, with_field, zrequire} = require("../zjsunit/namespace"); const {run_test} = require("../zjsunit/test"); +const blueslip = require("../zjsunit/zblueslip"); const $ = require("../zjsunit/zjquery"); mock_cjs("jquery", $); diff --git a/frontend_tests/node_tests/server_events.js b/frontend_tests/node_tests/server_events.js index 432f3a2bac..4d21cc15a9 100644 --- a/frontend_tests/node_tests/server_events.js +++ b/frontend_tests/node_tests/server_events.js @@ -4,6 +4,7 @@ const {strict: assert} = require("assert"); const {mock_cjs, mock_esm, set_global, zrequire} = require("../zjsunit/namespace"); const {run_test} = require("../zjsunit/test"); +const blueslip = require("../zjsunit/zblueslip"); const $ = require("../zjsunit/zjquery"); const noop = () => {}; diff --git a/frontend_tests/node_tests/settings_org.js b/frontend_tests/node_tests/settings_org.js index 72533225bc..d42ad606d7 100644 --- a/frontend_tests/node_tests/settings_org.js +++ b/frontend_tests/node_tests/settings_org.js @@ -5,6 +5,7 @@ const {strict: assert} = require("assert"); const {stub_templates} = require("../zjsunit/handlebars"); const {mock_cjs, mock_esm, set_global, zrequire} = require("../zjsunit/namespace"); const {run_test} = require("../zjsunit/test"); +const blueslip = require("../zjsunit/zblueslip"); const $ = require("../zjsunit/zjquery"); const noop = () => {}; diff --git a/frontend_tests/node_tests/settings_user_groups.js b/frontend_tests/node_tests/settings_user_groups.js index 6f0f697292..af513d0a10 100644 --- a/frontend_tests/node_tests/settings_user_groups.js +++ b/frontend_tests/node_tests/settings_user_groups.js @@ -7,6 +7,7 @@ const _ = require("lodash"); const {stub_templates} = require("../zjsunit/handlebars"); const {mock_cjs, mock_esm, set_global, zrequire} = require("../zjsunit/namespace"); const {run_test} = require("../zjsunit/test"); +const blueslip = require("../zjsunit/zblueslip"); const $ = require("../zjsunit/zjquery"); const noop = () => {}; diff --git a/frontend_tests/node_tests/stream_data.js b/frontend_tests/node_tests/stream_data.js index 4df2b01e13..f51de181b8 100644 --- a/frontend_tests/node_tests/stream_data.js +++ b/frontend_tests/node_tests/stream_data.js @@ -6,6 +6,7 @@ const _ = require("lodash"); const {set_global, zrequire} = require("../zjsunit/namespace"); const {run_test} = require("../zjsunit/test"); +const blueslip = require("../zjsunit/zblueslip"); let page_params; diff --git a/frontend_tests/node_tests/stream_events.js b/frontend_tests/node_tests/stream_events.js index e5cbaf3b67..c1a9f996a3 100644 --- a/frontend_tests/node_tests/stream_events.js +++ b/frontend_tests/node_tests/stream_events.js @@ -5,6 +5,7 @@ const {strict: assert} = require("assert"); const {mock_cjs, mock_esm, set_global, zrequire} = require("../zjsunit/namespace"); const {make_stub} = require("../zjsunit/stub"); const {run_test} = require("../zjsunit/test"); +const blueslip = require("../zjsunit/zblueslip"); const $ = require("../zjsunit/zjquery"); const noop = () => {}; diff --git a/frontend_tests/node_tests/transmit.js b/frontend_tests/node_tests/transmit.js index 26853ab862..00242bbd69 100644 --- a/frontend_tests/node_tests/transmit.js +++ b/frontend_tests/node_tests/transmit.js @@ -4,6 +4,7 @@ const {strict: assert} = require("assert"); const {mock_esm, set_global, zrequire} = require("../zjsunit/namespace"); const {run_test} = require("../zjsunit/test"); +const blueslip = require("../zjsunit/zblueslip"); const noop = () => {}; diff --git a/frontend_tests/node_tests/user_events.js b/frontend_tests/node_tests/user_events.js index ffb3d75ea6..6ae93a3f95 100644 --- a/frontend_tests/node_tests/user_events.js +++ b/frontend_tests/node_tests/user_events.js @@ -4,6 +4,7 @@ const {strict: assert} = require("assert"); const {mock_cjs, mock_esm, set_global, zrequire} = require("../zjsunit/namespace"); const {run_test} = require("../zjsunit/test"); +const blueslip = require("../zjsunit/zblueslip"); const $ = require("../zjsunit/zjquery"); mock_cjs("jquery", $); diff --git a/frontend_tests/node_tests/user_groups.js b/frontend_tests/node_tests/user_groups.js index 902d0d83d4..6d44bc61ef 100644 --- a/frontend_tests/node_tests/user_groups.js +++ b/frontend_tests/node_tests/user_groups.js @@ -4,6 +4,7 @@ const {strict: assert} = require("assert"); const {zrequire} = require("../zjsunit/namespace"); const {run_test} = require("../zjsunit/test"); +const blueslip = require("../zjsunit/zblueslip"); const user_groups = zrequire("user_groups"); diff --git a/frontend_tests/node_tests/user_status.js b/frontend_tests/node_tests/user_status.js index dbf81d895d..72fc109f0a 100644 --- a/frontend_tests/node_tests/user_status.js +++ b/frontend_tests/node_tests/user_status.js @@ -4,6 +4,7 @@ const {strict: assert} = require("assert"); const {mock_esm, zrequire} = require("../zjsunit/namespace"); const {run_test} = require("../zjsunit/test"); +const blueslip = require("../zjsunit/zblueslip"); const channel = mock_esm("../../static/js/channel"); const user_status = zrequire("user_status"); diff --git a/frontend_tests/node_tests/vdom.js b/frontend_tests/node_tests/vdom.js index 37d967ac98..ba94da1424 100644 --- a/frontend_tests/node_tests/vdom.js +++ b/frontend_tests/node_tests/vdom.js @@ -4,6 +4,7 @@ const {strict: assert} = require("assert"); const {zrequire} = require("../zjsunit/namespace"); const {run_test} = require("../zjsunit/test"); +const blueslip = require("../zjsunit/zblueslip"); const vdom = zrequire("vdom"); diff --git a/frontend_tests/node_tests/widgetize.js b/frontend_tests/node_tests/widgetize.js index 82c7d8c9fd..40a0638648 100644 --- a/frontend_tests/node_tests/widgetize.js +++ b/frontend_tests/node_tests/widgetize.js @@ -4,6 +4,7 @@ const {strict: assert} = require("assert"); const {mock_cjs, mock_esm, set_global, zrequire} = require("../zjsunit/namespace"); const {run_test} = require("../zjsunit/test"); +const blueslip = require("../zjsunit/zblueslip"); const $ = require("../zjsunit/zjquery"); mock_cjs("jquery", $); diff --git a/frontend_tests/node_tests/zblueslip.js b/frontend_tests/node_tests/zblueslip.js index 4110059812..16252ca754 100644 --- a/frontend_tests/node_tests/zblueslip.js +++ b/frontend_tests/node_tests/zblueslip.js @@ -3,6 +3,7 @@ const {strict: assert} = require("assert"); const {run_test} = require("../zjsunit/test"); +const blueslip = require("../zjsunit/zblueslip"); /* diff --git a/frontend_tests/zjsunit/index.js b/frontend_tests/zjsunit/index.js index 3755d850ab..66ab6f6335 100644 --- a/frontend_tests/zjsunit/index.js +++ b/frontend_tests/zjsunit/index.js @@ -11,7 +11,7 @@ const handlebars = require("./handlebars"); const stub_i18n = require("./i18n"); const namespace = require("./namespace"); const test = require("./test"); -const {make_zblueslip} = require("./zblueslip"); +const blueslip = require("./zblueslip"); const zjquery = require("./zjquery"); require("@babel/register")({ @@ -93,7 +93,8 @@ try { _.throttle = immediate; _.debounce = immediate; - const blueslip = namespace.set_global("blueslip", make_zblueslip()); + namespace.mock_esm("../../static/js/blueslip", blueslip); + require("../../static/js/blueslip"); namespace.set_global("i18n", stub_i18n); run_one_module(file); diff --git a/frontend_tests/zjsunit/namespace.js b/frontend_tests/zjsunit/namespace.js index db5e75238a..8e15c93d8d 100644 --- a/frontend_tests/zjsunit/namespace.js +++ b/frontend_tests/zjsunit/namespace.js @@ -120,9 +120,7 @@ const templatesPath = staticPath + "templates" + path.sep; exports.complain_about_unused_mocks = function () { for (const filename of module_mocks.keys()) { if (!used_module_mocks.has(filename)) { - throw new Error( - `You asked to mock ${filename} but we never saw it during compilation.`, - ); + console.error(`You asked to mock ${filename} but we never saw it during compilation.`); } } }; diff --git a/frontend_tests/zjsunit/test.js b/frontend_tests/zjsunit/test.js index e69944ad59..36049d18a4 100644 --- a/frontend_tests/zjsunit/test.js +++ b/frontend_tests/zjsunit/test.js @@ -1,6 +1,7 @@ "use strict"; const namespace = require("./namespace"); +const zblueslip = require("./zblueslip"); const $ = require("./zjquery"); let current_file_name; @@ -34,5 +35,5 @@ exports.run_test = (label, f, opts) => { throw error; } // defensively reset blueslip after each test. - window.blueslip.reset(); + zblueslip.reset(); }; diff --git a/frontend_tests/zjsunit/zblueslip.js b/frontend_tests/zjsunit/zblueslip.js index 0324d1366c..7d96225a8e 100644 --- a/frontend_tests/zjsunit/zblueslip.js +++ b/frontend_tests/zjsunit/zblueslip.js @@ -1,6 +1,6 @@ "use strict"; -exports.make_zblueslip = function () { +function make_zblueslip() { const lib = {}; const opts = { @@ -124,4 +124,6 @@ exports.make_zblueslip = function () { lib.preview_node = (node) => "node:" + node; return lib; -}; +} + +module.exports = make_zblueslip(); diff --git a/static/js/activity.js b/static/js/activity.js index c39e010393..50a230f42f 100644 --- a/static/js/activity.js +++ b/static/js/activity.js @@ -1,6 +1,7 @@ import $ from "jquery"; import _ from "lodash"; +import * as blueslip from "./blueslip"; import * as buddy_data from "./buddy_data"; import {buddy_list} from "./buddy_list"; import * as channel from "./channel"; diff --git a/static/js/blueslip.js b/static/js/blueslip.js index 46e68ccd85..978b3080f2 100644 --- a/static/js/blueslip.js +++ b/static/js/blueslip.js @@ -1,5 +1,3 @@ -"use strict"; - /* eslint-disable no-console */ // System documented in https://zulip.readthedocs.io/en/latest/subsystems/logging.html @@ -8,10 +6,10 @@ // in order to be able to report exceptions that occur during their // execution. -const $ = require("jquery"); +import $ from "jquery"; -const blueslip_stacktrace = require("./blueslip_stacktrace"); -const ui_report = require("./ui_report"); +import * as blueslip_stacktrace from "./blueslip_stacktrace"; +import * as ui_report from "./ui_report"; if (Error.stackTraceLimit !== undefined) { Error.stackTraceLimit = 100000; @@ -70,9 +68,9 @@ for (const name of ["debug", "log", "info", "warn", "error"]) { const logger = new Logger(); -exports.get_log = function blueslip_get_log() { +export function get_log() { return logger.get_log(); -}; +} const reported_errors = new Set(); const last_report_attempt = new Map(); @@ -185,7 +183,7 @@ class BlueslipError extends Error { } } -exports.exception_msg = function blueslip_exception_msg(ex) { +export function exception_msg(ex) { let message = ex.message; if (ex.fileName !== undefined) { message += " at " + ex.fileName; @@ -194,14 +192,14 @@ exports.exception_msg = function blueslip_exception_msg(ex) { } } return message; -}; +} $(window).on("error", (event) => { const ex = event.originalEvent.error; if (!ex || ex instanceof BlueslipError) { return; } - const message = exports.exception_msg(ex); + const message = exception_msg(ex); report_error(message, ex.stack); }); @@ -213,30 +211,30 @@ function build_arg_list(msg, more_info) { return args; } -exports.debug = function blueslip_debug(msg, more_info) { +export function debug(msg, more_info) { const args = build_arg_list(msg, more_info); logger.debug(...args); -}; +} -exports.log = function blueslip_log(msg, more_info) { +export function log(msg, more_info) { const args = build_arg_list(msg, more_info); logger.log(...args); -}; +} -exports.info = function blueslip_info(msg, more_info) { +export function info(msg, more_info) { const args = build_arg_list(msg, more_info); logger.info(...args); -}; +} -exports.warn = function blueslip_warn(msg, more_info) { +export function warn(msg, more_info) { const args = build_arg_list(msg, more_info); logger.warn(...args); if (page_params.debug_mode) { console.trace(); } -}; +} -exports.error = function blueslip_error(msg, more_info, stack) { +export function error(msg, more_info, stack) { if (stack === undefined) { stack = new Error("dummy").stack; } @@ -250,24 +248,24 @@ exports.error = function blueslip_error(msg, more_info, stack) { // This function returns to its caller in production! To raise a // fatal error even in production, use throw new Error(…) instead. -}; +} -exports.timings = new Map(); +export const timings = new Map(); -exports.measure_time = function (label, f) { +export function measure_time(label, f) { const t1 = performance.now(); const ret = f(); const t2 = performance.now(); const elapsed = t2 - t1; - exports.timings.set(label, elapsed); + timings.set(label, elapsed); return ret; -}; +} // Produces an easy-to-read preview on an HTML element. Currently // only used for including in error report emails; be sure to discuss // with other developers before using it in a user-facing context // because it is not XSS-safe. -exports.preview_node = function (node) { +export function preview_node(node) { if (node instanceof $) { node = node[0]; } @@ -286,6 +284,4 @@ exports.preview_node = function (node) { ">"; return node_preview; -}; - -window.blueslip = exports; +} diff --git a/static/js/buddy_data.js b/static/js/buddy_data.js index 9c5f862b63..b1be838140 100644 --- a/static/js/buddy_data.js +++ b/static/js/buddy_data.js @@ -1,3 +1,4 @@ +import * as blueslip from "./blueslip"; import * as compose_fade from "./compose_fade"; import * as hash_util from "./hash_util"; import * as people from "./people"; diff --git a/static/js/buddy_list.js b/static/js/buddy_list.js index 8dd5157402..d943327f4e 100644 --- a/static/js/buddy_list.js +++ b/static/js/buddy_list.js @@ -3,6 +3,7 @@ import $ from "jquery"; import render_user_presence_row from "../templates/user_presence_row.hbs"; import render_user_presence_rows from "../templates/user_presence_rows.hbs"; +import * as blueslip from "./blueslip"; import * as buddy_data from "./buddy_data"; import * as message_viewport from "./message_viewport"; import * as padded_widget from "./padded_widget"; diff --git a/static/js/channel.js b/static/js/channel.js index 62e70319e3..5412fe7759 100644 --- a/static/js/channel.js +++ b/static/js/channel.js @@ -1,5 +1,6 @@ import $ from "jquery"; +import * as blueslip from "./blueslip"; import * as reload_state from "./reload_state"; const pending_requests = []; diff --git a/static/js/click_handlers.js b/static/js/click_handlers.js index 5e6b88e5d5..7483b22120 100644 --- a/static/js/click_handlers.js +++ b/static/js/click_handlers.js @@ -8,6 +8,7 @@ import render_buddy_list_tooltip from "../templates/buddy_list_tooltip.hbs"; import render_buddy_list_tooltip_content from "../templates/buddy_list_tooltip_content.hbs"; import * as activity from "./activity"; +import * as blueslip from "./blueslip"; import * as buddy_data from "./buddy_data"; import * as channel from "./channel"; import * as compose from "./compose"; diff --git a/static/js/compose.js b/static/js/compose.js index ffa9e5ea36..d24426ffdb 100644 --- a/static/js/compose.js +++ b/static/js/compose.js @@ -8,6 +8,7 @@ import render_compose_invite_users from "../templates/compose_invite_users.hbs"; import render_compose_not_subscribed from "../templates/compose_not_subscribed.hbs"; import render_compose_private_stream_alert from "../templates/compose_private_stream_alert.hbs"; +import * as blueslip from "./blueslip"; import * as channel from "./channel"; import * as common from "./common"; import * as compose_actions from "./compose_actions"; diff --git a/static/js/confirm_dialog.js b/static/js/confirm_dialog.js index 4d80d6bb0e..ce209cfd6a 100644 --- a/static/js/confirm_dialog.js +++ b/static/js/confirm_dialog.js @@ -2,6 +2,7 @@ import $ from "jquery"; import render_confirm_dialog from "../templates/confirm_dialog.hbs"; +import * as blueslip from "./blueslip"; import * as overlays from "./overlays"; /* diff --git a/static/js/drafts.js b/static/js/drafts.js index 502216e8b3..bc02a4f401 100644 --- a/static/js/drafts.js +++ b/static/js/drafts.js @@ -4,6 +4,7 @@ import $ from "jquery"; import render_draft_table_body from "../templates/draft_table_body.hbs"; +import * as blueslip from "./blueslip"; import * as compose from "./compose"; import * as compose_actions from "./compose_actions"; import * as compose_fade from "./compose_fade"; diff --git a/static/js/dropdown_list_widget.js b/static/js/dropdown_list_widget.js index 6082214bdb..ed3f724ca3 100644 --- a/static/js/dropdown_list_widget.js +++ b/static/js/dropdown_list_widget.js @@ -2,6 +2,7 @@ import $ from "jquery"; import render_dropdown_list from "../templates/settings/dropdown_list.hbs"; +import * as blueslip from "./blueslip"; import * as ListWidget from "./list_widget"; export const DropdownListWidget = function (opts) { diff --git a/static/js/echo.js b/static/js/echo.js index 395d24df9c..561aa771e3 100644 --- a/static/js/echo.js +++ b/static/js/echo.js @@ -1,6 +1,7 @@ import $ from "jquery"; import * as alert_words from "./alert_words"; +import * as blueslip from "./blueslip"; import * as compose from "./compose"; import * as local_message from "./local_message"; import * as markdown from "./markdown"; diff --git a/static/js/emoji_picker.js b/static/js/emoji_picker.js index db58349445..cbb03ce1c3 100644 --- a/static/js/emoji_picker.js +++ b/static/js/emoji_picker.js @@ -8,6 +8,7 @@ import render_emoji_popover_content from "../templates/emoji_popover_content.hbs import render_emoji_popover_search_results from "../templates/emoji_popover_search_results.hbs"; import render_emoji_showcase from "../templates/emoji_showcase.hbs"; +import * as blueslip from "./blueslip"; import * as compose_ui from "./compose_ui"; import * as message_store from "./message_store"; import * as popovers from "./popovers"; diff --git a/static/js/feedback_widget.js b/static/js/feedback_widget.js index 28056c32f1..7e85763bfb 100644 --- a/static/js/feedback_widget.js +++ b/static/js/feedback_widget.js @@ -2,6 +2,8 @@ import $ from "jquery"; import render_feedback_container from "../templates/feedback_container.hbs"; +import * as blueslip from "./blueslip"; + /* This code lets you show something like this: diff --git a/static/js/floating_recipient_bar.js b/static/js/floating_recipient_bar.js index 093eb7de21..dab73183e5 100644 --- a/static/js/floating_recipient_bar.js +++ b/static/js/floating_recipient_bar.js @@ -1,5 +1,6 @@ import $ from "jquery"; +import * as blueslip from "./blueslip"; import * as message_store from "./message_store"; import * as rows from "./rows"; import * as timerender from "./timerender"; diff --git a/static/js/global.d.ts b/static/js/global.d.ts index 13ea15b953..7b7d78defb 100644 --- a/static/js/global.d.ts +++ b/static/js/global.d.ts @@ -3,7 +3,6 @@ // remove each declaration when the corresponding module is migrated // to TS. -declare let blueslip: any; declare let csrf_token: any; declare let current_msg_list: any; declare let home_msg_list: any; diff --git a/static/js/hashchange.js b/static/js/hashchange.js index a9e433313b..94c2478bbe 100644 --- a/static/js/hashchange.js +++ b/static/js/hashchange.js @@ -1,6 +1,7 @@ import $ from "jquery"; import * as admin from "./admin"; +import * as blueslip from "./blueslip"; import * as drafts from "./drafts"; import * as floating_recipient_bar from "./floating_recipient_bar"; import * as hash_util from "./hash_util"; diff --git a/static/js/hotspots.js b/static/js/hotspots.js index e332da83af..f7a8a64fae 100644 --- a/static/js/hotspots.js +++ b/static/js/hotspots.js @@ -5,6 +5,7 @@ import render_hotspot_icon from "../templates/hotspot_icon.hbs"; import render_hotspot_overlay from "../templates/hotspot_overlay.hbs"; import render_intro_reply_hotspot from "../templates/intro_reply_hotspot.hbs"; +import * as blueslip from "./blueslip"; import * as channel from "./channel"; import * as popovers from "./popovers"; diff --git a/static/js/input_pill.js b/static/js/input_pill.js index 543e9d9804..552ab42ec1 100644 --- a/static/js/input_pill.js +++ b/static/js/input_pill.js @@ -2,6 +2,7 @@ import $ from "jquery"; import render_input_pill from "../templates/input_pill.hbs"; +import * as blueslip from "./blueslip"; import * as ui_util from "./ui_util"; // See https://zulip.readthedocs.io/en/latest/subsystems/input-pills.html diff --git a/static/js/lazy_set.js b/static/js/lazy_set.js index d0999482e2..e4aa2933db 100644 --- a/static/js/lazy_set.js +++ b/static/js/lazy_set.js @@ -1,3 +1,5 @@ +import * as blueslip from "./blueslip"; + export class LazySet { /* This class is optimized for a very diff --git a/static/js/lightbox.js b/static/js/lightbox.js index ae9af3e843..00f79f8367 100644 --- a/static/js/lightbox.js +++ b/static/js/lightbox.js @@ -1,5 +1,6 @@ import $ from "jquery"; +import * as blueslip from "./blueslip"; import {LightboxCanvas} from "./lightbox_canvas"; import * as message_store from "./message_store"; import * as overlays from "./overlays"; diff --git a/static/js/lightbox_canvas.js b/static/js/lightbox_canvas.js index 2ab473a1c7..49ac7f707d 100644 --- a/static/js/lightbox_canvas.js +++ b/static/js/lightbox_canvas.js @@ -1,3 +1,4 @@ +import * as blueslip from "./blueslip"; import * as overlays from "./overlays"; const funcs = { diff --git a/static/js/list_cursor.js b/static/js/list_cursor.js index 671f22d67d..b2bc7d6632 100644 --- a/static/js/list_cursor.js +++ b/static/js/list_cursor.js @@ -1,5 +1,6 @@ import $ from "jquery"; +import * as blueslip from "./blueslip"; import * as scroll_util from "./scroll_util"; export class ListCursor { diff --git a/static/js/list_widget.js b/static/js/list_widget.js index 8711c0cc41..fcb5df00d1 100644 --- a/static/js/list_widget.js +++ b/static/js/list_widget.js @@ -1,5 +1,6 @@ import $ from "jquery"; +import * as blueslip from "./blueslip"; import * as ui from "./ui"; const DEFAULTS = { diff --git a/static/js/local_message.js b/static/js/local_message.js index 5776ea1a48..6ef74f963a 100644 --- a/static/js/local_message.js +++ b/static/js/local_message.js @@ -1,3 +1,4 @@ +import * as blueslip from "./blueslip"; import * as message_events from "./message_events"; import * as message_list from "./message_list"; diff --git a/static/js/localstorage.js b/static/js/localstorage.js index a01c6140e4..ad261478e8 100644 --- a/static/js/localstorage.js +++ b/static/js/localstorage.js @@ -1,3 +1,5 @@ +import * as blueslip from "./blueslip"; + const ls = { // parse JSON without throwing an error. parseJSON(str) { diff --git a/static/js/markdown.js b/static/js/markdown.js index 3e4ffff275..0b1867323d 100644 --- a/static/js/markdown.js +++ b/static/js/markdown.js @@ -6,6 +6,7 @@ import * as emoji from "../shared/js/emoji"; import * as fenced_code from "../shared/js/fenced_code"; import marked from "../third/marked/lib/marked"; +import * as blueslip from "./blueslip"; import * as message_store from "./message_store"; // This contains zulip's frontend Markdown implementation; see diff --git a/static/js/message_edit.js b/static/js/message_edit.js index e86726c945..de08bda8f6 100644 --- a/static/js/message_edit.js +++ b/static/js/message_edit.js @@ -4,6 +4,7 @@ import $ from "jquery"; import render_message_edit_form from "../templates/message_edit_form.hbs"; import render_topic_edit_form from "../templates/topic_edit_form.hbs"; +import * as blueslip from "./blueslip"; import * as channel from "./channel"; import * as compose from "./compose"; import * as compose_actions from "./compose_actions"; diff --git a/static/js/message_list.js b/static/js/message_list.js index 02d40a9733..754e64ebe2 100644 --- a/static/js/message_list.js +++ b/static/js/message_list.js @@ -1,6 +1,7 @@ import autosize from "autosize"; import $ from "jquery"; +import * as blueslip from "./blueslip"; import {MessageListData} from "./message_list_data"; import {MessageListView} from "./message_list_view"; import * as narrow from "./narrow"; diff --git a/static/js/message_list_data.js b/static/js/message_list_data.js index 1a1c833a7e..0b99089167 100644 --- a/static/js/message_list_data.js +++ b/static/js/message_list_data.js @@ -1,5 +1,6 @@ import _ from "lodash"; +import * as blueslip from "./blueslip"; import {FetchStatus} from "./fetch_status"; import {Filter} from "./filter"; import * as muting from "./muting"; diff --git a/static/js/message_list_view.js b/static/js/message_list_view.js index 795a424d3a..9a28fdb2c8 100644 --- a/static/js/message_list_view.js +++ b/static/js/message_list_view.js @@ -8,6 +8,7 @@ import render_recipient_row from "../templates/recipient_row.hbs"; import render_single_message from "../templates/single_message.hbs"; import * as activity from "./activity"; +import * as blueslip from "./blueslip"; import * as compose from "./compose"; import * as compose_fade from "./compose_fade"; import * as condense from "./condense"; diff --git a/static/js/message_store.js b/static/js/message_store.js index 525218f45d..fbebb2d9d5 100644 --- a/static/js/message_store.js +++ b/static/js/message_store.js @@ -1,4 +1,5 @@ import * as alert_words from "./alert_words"; +import * as blueslip from "./blueslip"; import * as message_list from "./message_list"; import * as people from "./people"; import * as pm_conversations from "./pm_conversations"; diff --git a/static/js/message_viewport.js b/static/js/message_viewport.js index 7220e547b8..fdd36e773e 100644 --- a/static/js/message_viewport.js +++ b/static/js/message_viewport.js @@ -1,5 +1,6 @@ import $ from "jquery"; +import * as blueslip from "./blueslip"; import {media_breakpoints} from "./css_variables"; import * as message_scroll from "./message_scroll"; import * as rows from "./rows"; diff --git a/static/js/muting.js b/static/js/muting.js index 332b8aa2c2..6f3391a3aa 100644 --- a/static/js/muting.js +++ b/static/js/muting.js @@ -1,3 +1,4 @@ +import * as blueslip from "./blueslip"; import {FoldDict} from "./fold_dict"; import * as stream_data from "./stream_data"; import * as timerender from "./timerender"; diff --git a/static/js/narrow.js b/static/js/narrow.js index a30ebb95b7..c73f422092 100644 --- a/static/js/narrow.js +++ b/static/js/narrow.js @@ -1,5 +1,6 @@ import $ from "jquery"; +import * as blueslip from "./blueslip"; import * as channel from "./channel"; import * as compose from "./compose"; import * as compose_actions from "./compose_actions"; diff --git a/static/js/narrow_state.js b/static/js/narrow_state.js index 2a6adb598f..687f98cb7c 100644 --- a/static/js/narrow_state.js +++ b/static/js/narrow_state.js @@ -1,3 +1,4 @@ +import * as blueslip from "./blueslip"; import {Filter} from "./filter"; import * as people from "./people"; import * as stream_data from "./stream_data"; diff --git a/static/js/notifications.js b/static/js/notifications.js index 5eee1166bc..b483a480ab 100644 --- a/static/js/notifications.js +++ b/static/js/notifications.js @@ -5,6 +5,7 @@ import render_compose_notification from "../templates/compose_notification.hbs"; import render_notification from "../templates/notification.hbs"; import * as alert_words from "./alert_words"; +import * as blueslip from "./blueslip"; import * as channel from "./channel"; import * as favicon from "./favicon"; import * as message_store from "./message_store"; diff --git a/static/js/overlays.js b/static/js/overlays.js index d253be0f23..c8b5fcbf39 100644 --- a/static/js/overlays.js +++ b/static/js/overlays.js @@ -1,5 +1,6 @@ import $ from "jquery"; +import * as blueslip from "./blueslip"; import * as hashchange from "./hashchange"; import * as popovers from "./popovers"; diff --git a/static/js/peer_data.js b/static/js/peer_data.js index d400202742..39b0b8ce94 100644 --- a/static/js/peer_data.js +++ b/static/js/peer_data.js @@ -1,3 +1,4 @@ +import * as blueslip from "./blueslip"; import {LazySet} from "./lazy_set"; import * as people from "./people"; import * as stream_data from "./stream_data"; diff --git a/static/js/people.js b/static/js/people.js index f3269c0201..e670cc8fcf 100644 --- a/static/js/people.js +++ b/static/js/people.js @@ -4,6 +4,7 @@ import _ from "lodash"; import * as typeahead from "../shared/js/typeahead"; +import * as blueslip from "./blueslip"; import {FoldDict} from "./fold_dict"; import * as message_store from "./message_store"; import * as reload_state from "./reload_state"; diff --git a/static/js/poll_widget.js b/static/js/poll_widget.js index 8e4847cf83..78c6766aec 100644 --- a/static/js/poll_widget.js +++ b/static/js/poll_widget.js @@ -3,6 +3,7 @@ import $ from "jquery"; import render_widgets_poll_widget from "../templates/widgets/poll_widget.hbs"; import render_widgets_poll_widget_results from "../templates/widgets/poll_widget_results.hbs"; +import * as blueslip from "./blueslip"; import * as people from "./people"; export class PollData { diff --git a/static/js/popovers.js b/static/js/popovers.js index c290f62f20..ea3834f6a4 100644 --- a/static/js/popovers.js +++ b/static/js/popovers.js @@ -15,6 +15,7 @@ import render_user_info_popover_content from "../templates/user_info_popover_con import render_user_info_popover_title from "../templates/user_info_popover_title.hbs"; import render_user_profile_modal from "../templates/user_profile_modal.hbs"; +import * as blueslip from "./blueslip"; import * as buddy_data from "./buddy_data"; import * as compose_actions from "./compose_actions"; import * as compose_state from "./compose_state"; diff --git a/static/js/presence.js b/static/js/presence.js index f00cab1819..74b4c5a014 100644 --- a/static/js/presence.js +++ b/static/js/presence.js @@ -1,3 +1,4 @@ +import * as blueslip from "./blueslip"; import * as people from "./people"; import * as reload_state from "./reload_state"; import * as server_events from "./server_events"; diff --git a/static/js/reactions.js b/static/js/reactions.js index 6162337d7b..a8b6152105 100644 --- a/static/js/reactions.js +++ b/static/js/reactions.js @@ -4,6 +4,7 @@ import _ from "lodash"; import * as emoji from "../shared/js/emoji"; import render_message_reaction from "../templates/message_reaction.hbs"; +import * as blueslip from "./blueslip"; import * as channel from "./channel"; import * as emoji_picker from "./emoji_picker"; import * as message_store from "./message_store"; diff --git a/static/js/reload.js b/static/js/reload.js index 778a2ed6d0..ef2d59329a 100644 --- a/static/js/reload.js +++ b/static/js/reload.js @@ -1,6 +1,7 @@ import $ from "jquery"; import * as activity from "./activity"; +import * as blueslip from "./blueslip"; import * as compose from "./compose"; import * as compose_actions from "./compose_actions"; import * as compose_state from "./compose_state"; diff --git a/static/js/rendered_markdown.js b/static/js/rendered_markdown.js index 09dff12641..2814f1cf50 100644 --- a/static/js/rendered_markdown.js +++ b/static/js/rendered_markdown.js @@ -6,6 +6,7 @@ import copy_code_button from "../templates/copy_code_button.hbs"; import render_markdown_timestamp from "../templates/markdown_timestamp.hbs"; import view_code_in_playground from "../templates/view_code_in_playground.hbs"; +import * as blueslip from "./blueslip"; import * as people from "./people"; import * as rtl from "./rtl"; import * as settings_config from "./settings_config"; diff --git a/static/js/resize.js b/static/js/resize.js index 064cedfe7c..e9996e29f8 100644 --- a/static/js/resize.js +++ b/static/js/resize.js @@ -1,6 +1,7 @@ import autosize from "autosize"; import $ from "jquery"; +import * as blueslip from "./blueslip"; import * as condense from "./condense"; import * as message_viewport from "./message_viewport"; import * as navigate from "./navigate"; diff --git a/static/js/rows.js b/static/js/rows.js index 3637d5565e..02e24e6873 100644 --- a/static/js/rows.js +++ b/static/js/rows.js @@ -1,5 +1,6 @@ import $ from "jquery"; +import * as blueslip from "./blueslip"; import * as message_store from "./message_store"; // We don't need an andSelf() here because we already know // that our next element is *not* a message_row, so this diff --git a/static/js/sent_messages.js b/static/js/sent_messages.js index d21bda1b6b..1473daddfb 100644 --- a/static/js/sent_messages.js +++ b/static/js/sent_messages.js @@ -1,3 +1,4 @@ +import * as blueslip from "./blueslip"; import * as channel from "./channel"; import * as server_events from "./server_events"; diff --git a/static/js/server_events.js b/static/js/server_events.js index 766ace5f1c..d3f112eb9f 100644 --- a/static/js/server_events.js +++ b/static/js/server_events.js @@ -1,6 +1,7 @@ import $ from "jquery"; import _ from "lodash"; +import * as blueslip from "./blueslip"; import * as channel from "./channel"; import * as echo from "./echo"; import * as message_events from "./message_events"; diff --git a/static/js/server_events_dispatch.js b/static/js/server_events_dispatch.js index 40775a9e87..caf87d9859 100644 --- a/static/js/server_events_dispatch.js +++ b/static/js/server_events_dispatch.js @@ -6,6 +6,7 @@ import * as activity from "./activity"; import * as alert_words from "./alert_words"; import * as alert_words_ui from "./alert_words_ui"; import * as attachments_ui from "./attachments_ui"; +import * as blueslip from "./blueslip"; import * as bot_data from "./bot_data"; import * as compose from "./compose"; import * as compose_fade from "./compose_fade"; diff --git a/static/js/settings.js b/static/js/settings.js index e7a9aa6ff8..432873075e 100644 --- a/static/js/settings.js +++ b/static/js/settings.js @@ -4,6 +4,7 @@ import timezones from "../generated/timezones.json"; import render_settings_tab from "../templates/settings_tab.hbs"; import * as admin from "./admin"; +import * as blueslip from "./blueslip"; import * as overlays from "./overlays"; import * as people from "./people"; import * as settings_account from "./settings_account"; diff --git a/static/js/settings_account.js b/static/js/settings_account.js index 9c86fcfe14..2b06a49dda 100644 --- a/static/js/settings_account.js +++ b/static/js/settings_account.js @@ -6,6 +6,7 @@ import render_settings_custom_user_profile_field from "../templates/settings/cus import render_settings_dev_env_email_access from "../templates/settings/dev_env_email_access.hbs"; import * as avatar from "./avatar"; +import * as blueslip from "./blueslip"; import * as channel from "./channel"; import * as common from "./common"; import * as overlays from "./overlays"; diff --git a/static/js/settings_invites.js b/static/js/settings_invites.js index 64ac2075f4..8ee2c12c31 100644 --- a/static/js/settings_invites.js +++ b/static/js/settings_invites.js @@ -3,6 +3,7 @@ import $ from "jquery"; import render_admin_invites_list from "../templates/admin_invites_list.hbs"; import render_settings_revoke_invite_modal from "../templates/settings/revoke_invite_modal.hbs"; +import * as blueslip from "./blueslip"; import * as channel from "./channel"; import * as ListWidget from "./list_widget"; import * as loading from "./loading"; diff --git a/static/js/settings_org.js b/static/js/settings_org.js index fb5b106695..a82edfce87 100644 --- a/static/js/settings_org.js +++ b/static/js/settings_org.js @@ -4,6 +4,7 @@ import pygments_data from "../generated/pygments_data.json"; import render_settings_admin_auth_methods_list from "../templates/settings/admin_auth_methods_list.hbs"; import render_settings_admin_realm_domains_list from "../templates/settings/admin_realm_domains_list.hbs"; +import * as blueslip from "./blueslip"; import * as channel from "./channel"; import {DropdownListWidget as dropdown_list_widget} from "./dropdown_list_widget"; import * as loading from "./loading"; diff --git a/static/js/settings_sections.js b/static/js/settings_sections.js index d79fda294e..b13384afb0 100644 --- a/static/js/settings_sections.js +++ b/static/js/settings_sections.js @@ -1,5 +1,6 @@ import * as alert_words_ui from "./alert_words_ui"; import * as attachments_ui from "./attachments_ui"; +import * as blueslip from "./blueslip"; import * as settings_account from "./settings_account"; import * as settings_bots from "./settings_bots"; import * as settings_display from "./settings_display"; diff --git a/static/js/settings_users.js b/static/js/settings_users.js index b77cfe8ea6..38b7d98887 100644 --- a/static/js/settings_users.js +++ b/static/js/settings_users.js @@ -4,6 +4,7 @@ import render_admin_bot_form from "../templates/admin_bot_form.hbs"; import render_admin_human_form from "../templates/admin_human_form.hbs"; import render_admin_user_list from "../templates/admin_user_list.hbs"; +import * as blueslip from "./blueslip"; import * as bot_data from "./bot_data"; import * as channel from "./channel"; import {DropdownListWidget as dropdown_list_widget} from "./dropdown_list_widget"; diff --git a/static/js/setup.js b/static/js/setup.js index b926816128..55afa8980f 100644 --- a/static/js/setup.js +++ b/static/js/setup.js @@ -1,5 +1,6 @@ import $ from "jquery"; +import * as blueslip from "./blueslip"; import * as loading from "./loading"; import * as util from "./util"; diff --git a/static/js/stream_create.js b/static/js/stream_create.js index 536f36dd90..b4e411ce50 100644 --- a/static/js/stream_create.js +++ b/static/js/stream_create.js @@ -4,6 +4,7 @@ import render_announce_stream_docs from "../templates/announce_stream_docs.hbs"; import render_new_stream_users from "../templates/new_stream_users.hbs"; import render_subscription_invites_warning_modal from "../templates/subscription_invites_warning_modal.hbs"; +import * as blueslip from "./blueslip"; import * as channel from "./channel"; import * as loading from "./loading"; import * as peer_data from "./peer_data"; diff --git a/static/js/stream_data.js b/static/js/stream_data.js index bb3d0ea683..c9890b75db 100644 --- a/static/js/stream_data.js +++ b/static/js/stream_data.js @@ -1,3 +1,4 @@ +import * as blueslip from "./blueslip"; import * as color_data from "./color_data"; import {FoldDict} from "./fold_dict"; import * as hash_util from "./hash_util"; diff --git a/static/js/stream_edit.js b/static/js/stream_edit.js index d68d582a60..1d652cbc0a 100644 --- a/static/js/stream_edit.js +++ b/static/js/stream_edit.js @@ -6,6 +6,7 @@ import render_stream_subscription_info from "../templates/stream_subscription_in import render_subscription_settings from "../templates/subscription_settings.hbs"; import render_subscription_stream_privacy_modal from "../templates/subscription_stream_privacy_modal.hbs"; +import * as blueslip from "./blueslip"; import * as channel from "./channel"; import * as hash_util from "./hash_util"; import * as hashchange from "./hashchange"; diff --git a/static/js/stream_events.js b/static/js/stream_events.js index be21ce944c..e648e27977 100644 --- a/static/js/stream_events.js +++ b/static/js/stream_events.js @@ -1,5 +1,6 @@ import $ from "jquery"; +import * as blueslip from "./blueslip"; import * as color_data from "./color_data"; import * as message_list from "./message_list"; import * as message_util from "./message_util"; diff --git a/static/js/stream_list.js b/static/js/stream_list.js index 0b921a509c..07724f11d0 100644 --- a/static/js/stream_list.js +++ b/static/js/stream_list.js @@ -4,6 +4,7 @@ import _ from "lodash"; import render_stream_privacy from "../templates/stream_privacy.hbs"; import render_stream_sidebar_row from "../templates/stream_sidebar_row.hbs"; +import * as blueslip from "./blueslip"; import * as hash_util from "./hash_util"; import * as keydown_util from "./keydown_util"; import {ListCursor} from "./list_cursor"; diff --git a/static/js/stream_popover.js b/static/js/stream_popover.js index 0d244bbe36..40a72cbfe0 100644 --- a/static/js/stream_popover.js +++ b/static/js/stream_popover.js @@ -8,6 +8,7 @@ import render_stream_sidebar_actions from "../templates/stream_sidebar_actions.h import render_topic_sidebar_actions from "../templates/topic_sidebar_actions.hbs"; import render_unstar_messages_modal from "../templates/unstar_messages_modal.hbs"; +import * as blueslip from "./blueslip"; import * as channel from "./channel"; import * as hash_util from "./hash_util"; import * as hashchange from "./hashchange"; diff --git a/static/js/submessage.js b/static/js/submessage.js index 2e81d31692..97871e6fc2 100644 --- a/static/js/submessage.js +++ b/static/js/submessage.js @@ -1,3 +1,4 @@ +import * as blueslip from "./blueslip"; import * as channel from "./channel"; import * as message_store from "./message_store"; import * as widgetize from "./widgetize"; diff --git a/static/js/subs.js b/static/js/subs.js index 7217e32ac7..ae1f1ad065 100644 --- a/static/js/subs.js +++ b/static/js/subs.js @@ -6,6 +6,7 @@ import render_subscription_settings from "../templates/subscription_settings.hbs import render_subscription_table_body from "../templates/subscription_table_body.hbs"; import render_subscriptions from "../templates/subscriptions.hbs"; +import * as blueslip from "./blueslip"; import * as channel from "./channel"; import * as components from "./components"; import * as compose_state from "./compose_state"; diff --git a/static/js/todo_widget.js b/static/js/todo_widget.js index fcc560bd0c..62439122ea 100644 --- a/static/js/todo_widget.js +++ b/static/js/todo_widget.js @@ -3,6 +3,8 @@ import $ from "jquery"; import render_widgets_todo_widget from "../templates/widgets/todo_widget.hbs"; import render_widgets_todo_widget_tasks from "../templates/widgets/todo_widget_tasks.hbs"; +import * as blueslip from "./blueslip"; + export class TaskData { task_map = new Map(); diff --git a/static/js/topic_list.js b/static/js/topic_list.js index 911e61018a..7af9170467 100644 --- a/static/js/topic_list.js +++ b/static/js/topic_list.js @@ -5,6 +5,7 @@ import render_more_topics from "../templates/more_topics.hbs"; import render_more_topics_spinner from "../templates/more_topics_spinner.hbs"; import render_topic_list_item from "../templates/topic_list_item.hbs"; +import * as blueslip from "./blueslip"; import * as narrow from "./narrow"; import * as stream_data from "./stream_data"; import * as stream_popover from "./stream_popover"; diff --git a/static/js/transmit.js b/static/js/transmit.js index 2a8c07b840..a8e6b1242d 100644 --- a/static/js/transmit.js +++ b/static/js/transmit.js @@ -1,3 +1,4 @@ +import * as blueslip from "./blueslip"; import * as channel from "./channel"; import * as people from "./people"; import * as reload from "./reload"; diff --git a/static/js/typing.js b/static/js/typing.js index 0a357aba35..1a4a7d47f4 100644 --- a/static/js/typing.js +++ b/static/js/typing.js @@ -2,6 +2,7 @@ import $ from "jquery"; import * as typing_status from "../shared/js/typing_status"; +import * as blueslip from "./blueslip"; import * as channel from "./channel"; import * as compose_pm_pill from "./compose_pm_pill"; import * as compose_state from "./compose_state"; diff --git a/static/js/ui.js b/static/js/ui.js index baf030608b..fa5c5aad38 100644 --- a/static/js/ui.js +++ b/static/js/ui.js @@ -1,6 +1,7 @@ import $ from "jquery"; import SimpleBar from "simplebar/dist/simplebar"; +import * as blueslip from "./blueslip"; import * as common from "./common"; import {localstorage} from "./localstorage"; import * as message_list from "./message_list"; diff --git a/static/js/ui_init.js b/static/js/ui_init.js index ee0e415904..27d9def8f7 100644 --- a/static/js/ui_init.js +++ b/static/js/ui_init.js @@ -9,6 +9,7 @@ import render_edit_content_button from "../templates/edit_content_button.hbs"; import * as activity from "./activity"; import * as alert_words from "./alert_words"; +import * as blueslip from "./blueslip"; import * as bot_data from "./bot_data"; import * as click_handlers from "./click_handlers"; import * as compose from "./compose"; diff --git a/static/js/user_events.js b/static/js/user_events.js index 2ea59c5039..2e9456b000 100644 --- a/static/js/user_events.js +++ b/static/js/user_events.js @@ -5,6 +5,7 @@ import $ from "jquery"; import * as activity from "./activity"; +import * as blueslip from "./blueslip"; import * as compose from "./compose"; import * as gear_menu from "./gear_menu"; import * as message_live_update from "./message_live_update"; diff --git a/static/js/user_groups.js b/static/js/user_groups.js index 1b82b5dd3e..aae47dad5c 100644 --- a/static/js/user_groups.js +++ b/static/js/user_groups.js @@ -1,3 +1,4 @@ +import * as blueslip from "./blueslip"; import {FoldDict} from "./fold_dict"; let user_group_name_dict; diff --git a/static/js/user_pill.js b/static/js/user_pill.js index dd4d455744..5c9147d3cc 100644 --- a/static/js/user_pill.js +++ b/static/js/user_pill.js @@ -1,3 +1,4 @@ +import * as blueslip from "./blueslip"; import * as input_pill from "./input_pill"; import * as people from "./people"; diff --git a/static/js/user_status.js b/static/js/user_status.js index 3538f372b4..bd42f85b7e 100644 --- a/static/js/user_status.js +++ b/static/js/user_status.js @@ -1,3 +1,4 @@ +import * as blueslip from "./blueslip"; import * as channel from "./channel"; const away_user_ids = new Set(); diff --git a/static/js/vdom.js b/static/js/vdom.js index 812eed79fe..2b3f8aab7b 100644 --- a/static/js/vdom.js +++ b/static/js/vdom.js @@ -1,5 +1,7 @@ import _ from "lodash"; +import * as blueslip from "./blueslip"; + export function eq_array(a, b, eq) { if (a === b) { // either both are undefined, or they diff --git a/static/js/widgetize.js b/static/js/widgetize.js index 184a30d9d8..8cdc1f4018 100644 --- a/static/js/widgetize.js +++ b/static/js/widgetize.js @@ -1,5 +1,6 @@ import $ from "jquery"; +import * as blueslip from "./blueslip"; import * as narrow_state from "./narrow_state"; import * as poll_widget from "./poll_widget"; import * as todo_widget from "./todo_widget"; diff --git a/static/js/zform.js b/static/js/zform.js index d6a64e67f2..1d9ce67945 100644 --- a/static/js/zform.js +++ b/static/js/zform.js @@ -2,6 +2,7 @@ import $ from "jquery"; import render_widgets_zform_choices from "../templates/widgets/zform_choices.hbs"; +import * as blueslip from "./blueslip"; import * as schema from "./schema"; import * as transmit from "./transmit"; diff --git a/tools/linter_lib/custom_check.py b/tools/linter_lib/custom_check.py index 621814d4f0..f86f7629bd 100644 --- a/tools/linter_lib/custom_check.py +++ b/tools/linter_lib/custom_check.py @@ -116,10 +116,6 @@ js_rules = RuleList( "pattern": "msgid|MSGID", "description": 'Avoid using "msgid" as a variable name; use "message_id" instead.', }, - { - "pattern": r".*blueslip.warning\(.*", - "description": "The module blueslip has no function warning, try using blueslip.warn", - }, { "pattern": r"i18n\.t\([^)]+[^,\{\)]$", "description": "i18n string should not be a multiline string",