diff --git a/.babelrc.js b/.babelrc.js
index 8af2f88ab..444a07c4b 100644
--- a/.babelrc.js
+++ b/.babelrc.js
@@ -1,4 +1,4 @@
-// Copyright 2019-2021 Signal Messenger, LLC
+// Copyright 2019 Signal Messenger, LLC
// SPDX-License-Identifier: AGPL-3.0-only
module.exports = {
diff --git a/.eslintrc.js b/.eslintrc.js
index b4012931f..16b743779 100644
--- a/.eslintrc.js
+++ b/.eslintrc.js
@@ -1,4 +1,4 @@
-// Copyright 2018-2022 Signal Messenger, LLC
+// Copyright 2018 Signal Messenger, LLC
// SPDX-License-Identifier: AGPL-3.0-only
// For reference: https://github.com/airbnb/javascript
@@ -191,13 +191,13 @@ const typescriptRules = {
'@typescript-eslint/no-misused-promises': [
'error',
{
- checksVoidReturn: false
- }
+ checksVoidReturn: false,
+ },
],
'@typescript-eslint/no-floating-promises': 'error',
// We allow "void promise", but new call-sites should use `drop(promise)`.
- 'no-void': ['error', { 'allowAsStatement': true }],
+ 'no-void': ['error', { allowAsStatement: true }],
'no-shadow': 'off',
'no-useless-constructor': 'off',
diff --git a/.github/stale.yml b/.github/stale.yml
index d17eabb96..130a28287 100644
--- a/.github/stale.yml
+++ b/.github/stale.yml
@@ -1,4 +1,4 @@
-# Copyright 2021-2022 Signal Messenger, LLC
+# Copyright 2021 Signal Messenger, LLC
# SPDX-License-Identifier: AGPL-3.0-only
# Configuration for probot-stale - https://github.com/probot/stale
@@ -68,4 +68,3 @@ limitPerRun: 5
# issues:
# exemptLabels:
# - confirmed
-
diff --git a/.github/workflows/backport.yml b/.github/workflows/backport.yml
index 0e2736413..2750ab353 100644
--- a/.github/workflows/backport.yml
+++ b/.github/workflows/backport.yml
@@ -1,4 +1,4 @@
-# Copyright 2021-2022 Signal Messenger, LLC
+# Copyright 2021 Signal Messenger, LLC
# SPDX-License-Identifier: AGPL-3.0-only
name: Backport
diff --git a/.github/workflows/benchmark.yml b/.github/workflows/benchmark.yml
index 95be05f0e..37e843618 100644
--- a/.github/workflows/benchmark.yml
+++ b/.github/workflows/benchmark.yml
@@ -1,4 +1,4 @@
-# Copyright 2020-2022 Signal Messenger, LLC
+# Copyright 2020 Signal Messenger, LLC
# SPDX-License-Identifier: AGPL-3.0-only
name: Benchmark
diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml
index 205e0a60c..5c0dea0eb 100644
--- a/.github/workflows/ci.yml
+++ b/.github/workflows/ci.yml
@@ -1,4 +1,4 @@
-# Copyright 2020-2022 Signal Messenger, LLC
+# Copyright 2020 Signal Messenger, LLC
# SPDX-License-Identifier: AGPL-3.0-only
name: CI
@@ -39,7 +39,7 @@ jobs:
- run: yarn generate
- run: yarn lint
- run: yarn lint-deps
- # - run: yarn lint-license-comments
+ - run: yarn lint-license-comments
- run: git diff --exit-code
macos:
diff --git a/.github/workflows/danger.yml b/.github/workflows/danger.yml
index e9c9ae22a..4b1834463 100644
--- a/.github/workflows/danger.yml
+++ b/.github/workflows/danger.yml
@@ -1,4 +1,4 @@
-# Copyright 2020-2022 Signal Messenger, LLC
+# Copyright 2020 Signal Messenger, LLC
# SPDX-License-Identifier: AGPL-3.0-only
name: CI
diff --git a/.github/workflows/notes.yml b/.github/workflows/notes.yml
index 8336ca76f..f467ae0f3 100644
--- a/.github/workflows/notes.yml
+++ b/.github/workflows/notes.yml
@@ -1,4 +1,4 @@
-# Copyright 2021-2022 Signal Messenger, LLC
+# Copyright 2021 Signal Messenger, LLC
# SPDX-License-Identifier: AGPL-3.0-only
name: Notes
diff --git a/.prettierrc.js b/.prettierrc.js
index 26000173a..124e59afb 100644
--- a/.prettierrc.js
+++ b/.prettierrc.js
@@ -1,4 +1,4 @@
-// Copyright 2018-2020 Signal Messenger, LLC
+// Copyright 2018 Signal Messenger, LLC
// SPDX-License-Identifier: AGPL-3.0-only
module.exports = {
diff --git a/.storybook/preview-head.html b/.storybook/preview-head.html
index ff7b8b61f..e3c5d8274 100644
--- a/.storybook/preview-head.html
+++ b/.storybook/preview-head.html
@@ -1,4 +1,4 @@
-
+
diff --git a/.storybook/preview.tsx b/.storybook/preview.tsx
index ca2a1df0d..9add33b68 100644
--- a/.storybook/preview.tsx
+++ b/.storybook/preview.tsx
@@ -1,4 +1,4 @@
-// Copyright 2019-2022 Signal Messenger, LLC
+// Copyright 2019 Signal Messenger, LLC
// SPDX-License-Identifier: AGPL-3.0-only
import React from 'react';
@@ -75,10 +75,7 @@ const withI18n = (Story, context) => (
);
-export const decorators = [
- withModeAndThemeProvider,
- withI18n,
-];
+export const decorators = [withModeAndThemeProvider, withI18n];
export const parameters = {
axe: {
diff --git a/.storybook/styles.scss b/.storybook/styles.scss
index 254a67bcd..e7db1ab20 100644
--- a/.storybook/styles.scss
+++ b/.storybook/styles.scss
@@ -1,4 +1,4 @@
-// Copyright 2019-2020 Signal Messenger, LLC
+// Copyright 2019 Signal Messenger, LLC
// SPDX-License-Identifier: AGPL-3.0-only
@import '../stylesheets/variables';
diff --git a/.storybook/webpack.config.js b/.storybook/webpack.config.js
index 6935444dd..092ed194f 100644
--- a/.storybook/webpack.config.js
+++ b/.storybook/webpack.config.js
@@ -1,4 +1,4 @@
-// Copyright 2019-2022 Signal Messenger, LLC
+// Copyright 2019 Signal Messenger, LLC
// SPDX-License-Identifier: AGPL-3.0-only
const webpack = require('webpack');
@@ -9,16 +9,14 @@ module.exports = ({ config }) => {
'!!style-loader!css-loader!typeface-inter'
);
- config.module.rules.unshift(
- {
- test: /\.scss$/,
- loaders: [
- 'style-loader',
- 'css-loader?modules=true&localsConvention=camelCaseOnly',
- 'sass-loader',
- ],
- }
- );
+ config.module.rules.unshift({
+ test: /\.scss$/,
+ loaders: [
+ 'style-loader',
+ 'css-loader?modules=true&localsConvention=camelCaseOnly',
+ 'sass-loader',
+ ],
+ });
config.externals = {
net: 'net',
diff --git a/ACKNOWLEDGMENTS.md b/ACKNOWLEDGMENTS.md
index a84017bfa..7af0a73a8 100644
--- a/ACKNOWLEDGMENTS.md
+++ b/ACKNOWLEDGMENTS.md
@@ -1,4 +1,4 @@
-
+
# Acknowledgments
diff --git a/CONTRIBUTING.md b/CONTRIBUTING.md
index 1e25e1b92..d4eb51d0f 100644
--- a/CONTRIBUTING.md
+++ b/CONTRIBUTING.md
@@ -1,4 +1,4 @@
-
+
# Contributor Guidelines
diff --git a/README.md b/README.md
index 34ad86518..dffcd9ce3 100644
--- a/README.md
+++ b/README.md
@@ -1,4 +1,4 @@
-
+
# Signal Desktop
diff --git a/about.html b/about.html
index a8122f4e5..ad24f1228 100644
--- a/about.html
+++ b/about.html
@@ -1,4 +1,4 @@
-
+
diff --git a/app/.eslintrc.js b/app/.eslintrc.js
index 8ee45b9bd..ea1600cb8 100644
--- a/app/.eslintrc.js
+++ b/app/.eslintrc.js
@@ -1,4 +1,4 @@
-// Copyright 2018-2021 Signal Messenger, LLC
+// Copyright 2018 Signal Messenger, LLC
// SPDX-License-Identifier: AGPL-3.0-only
// For reference: https://github.com/airbnb/javascript
diff --git a/app/SystemTrayService.ts b/app/SystemTrayService.ts
index 3cc9a079c..04763b43e 100644
--- a/app/SystemTrayService.ts
+++ b/app/SystemTrayService.ts
@@ -1,4 +1,4 @@
-// Copyright 2017-2021 Signal Messenger, LLC
+// Copyright 2017 Signal Messenger, LLC
// SPDX-License-Identifier: AGPL-3.0-only
import { join } from 'path';
diff --git a/app/SystemTraySettingCache.ts b/app/SystemTraySettingCache.ts
index aff9e1ae3..f1fca090c 100644
--- a/app/SystemTraySettingCache.ts
+++ b/app/SystemTraySettingCache.ts
@@ -1,4 +1,4 @@
-// Copyright 2017-2021 Signal Messenger, LLC
+// Copyright 2017 Signal Messenger, LLC
// SPDX-License-Identifier: AGPL-3.0-only
import * as log from '../ts/logging/log';
diff --git a/app/attachment_channel.ts b/app/attachment_channel.ts
index 00f580be8..9d6c0e006 100644
--- a/app/attachment_channel.ts
+++ b/app/attachment_channel.ts
@@ -1,4 +1,4 @@
-// Copyright 2018-2020 Signal Messenger, LLC
+// Copyright 2018 Signal Messenger, LLC
// SPDX-License-Identifier: AGPL-3.0-only
import { ipcMain } from 'electron';
diff --git a/app/attachments.ts b/app/attachments.ts
index 7a7bc11e8..0ce1ea3b4 100644
--- a/app/attachments.ts
+++ b/app/attachments.ts
@@ -1,4 +1,4 @@
-// Copyright 2018-2021 Signal Messenger, LLC
+// Copyright 2018 Signal Messenger, LLC
// SPDX-License-Identifier: AGPL-3.0-only
import { join, relative, normalize } from 'path';
diff --git a/app/base_config.ts b/app/base_config.ts
index 1a6f2506c..350339243 100644
--- a/app/base_config.ts
+++ b/app/base_config.ts
@@ -1,4 +1,4 @@
-// Copyright 2018-2022 Signal Messenger, LLC
+// Copyright 2018 Signal Messenger, LLC
// SPDX-License-Identifier: AGPL-3.0-only
import { readFileSync, writeFileSync, unlinkSync } from 'fs';
diff --git a/app/config.ts b/app/config.ts
index 7a4bb3c04..c4784c40d 100644
--- a/app/config.ts
+++ b/app/config.ts
@@ -1,4 +1,4 @@
-// Copyright 2017-2020 Signal Messenger, LLC
+// Copyright 2017 Signal Messenger, LLC
// SPDX-License-Identifier: AGPL-3.0-only
import { join } from 'path';
diff --git a/app/ephemeral_config.ts b/app/ephemeral_config.ts
index 3857151b3..3ed1b792d 100644
--- a/app/ephemeral_config.ts
+++ b/app/ephemeral_config.ts
@@ -1,4 +1,4 @@
-// Copyright 2018-2022 Signal Messenger, LLC
+// Copyright 2018 Signal Messenger, LLC
// SPDX-License-Identifier: AGPL-3.0-only
import { join } from 'path';
diff --git a/app/global_errors.ts b/app/global_errors.ts
index 66d79d3be..222684f96 100644
--- a/app/global_errors.ts
+++ b/app/global_errors.ts
@@ -1,4 +1,4 @@
-// Copyright 2018-2020 Signal Messenger, LLC
+// Copyright 2018 Signal Messenger, LLC
// SPDX-License-Identifier: AGPL-3.0-only
import { app, dialog, clipboard } from 'electron';
diff --git a/app/locale.ts b/app/locale.ts
index ff1a7da96..e47a50e7c 100644
--- a/app/locale.ts
+++ b/app/locale.ts
@@ -1,4 +1,4 @@
-// Copyright 2017-2022 Signal Messenger, LLC
+// Copyright 2017 Signal Messenger, LLC
// SPDX-License-Identifier: AGPL-3.0-only
import { join } from 'path';
diff --git a/app/main.ts b/app/main.ts
index 76daf5af2..3a5c5f1ed 100644
--- a/app/main.ts
+++ b/app/main.ts
@@ -1,4 +1,4 @@
-// Copyright 2017-2022 Signal Messenger, LLC
+// Copyright 2017 Signal Messenger, LLC
// SPDX-License-Identifier: AGPL-3.0-only
import { join, normalize } from 'path';
diff --git a/app/menu.ts b/app/menu.ts
index 3c8560608..ac7570080 100644
--- a/app/menu.ts
+++ b/app/menu.ts
@@ -1,4 +1,4 @@
-// Copyright 2017-2022 Signal Messenger, LLC
+// Copyright 2017 Signal Messenger, LLC
// SPDX-License-Identifier: AGPL-3.0-only
import { isString } from 'lodash';
diff --git a/app/permissions.ts b/app/permissions.ts
index bea0f2503..3927f88bf 100644
--- a/app/permissions.ts
+++ b/app/permissions.ts
@@ -1,4 +1,4 @@
-// Copyright 2018-2020 Signal Messenger, LLC
+// Copyright 2018 Signal Messenger, LLC
// SPDX-License-Identifier: AGPL-3.0-only
// The list of permissions is here:
diff --git a/app/protocol_filter.ts b/app/protocol_filter.ts
index d5ff3691a..5b1efab32 100644
--- a/app/protocol_filter.ts
+++ b/app/protocol_filter.ts
@@ -1,4 +1,4 @@
-// Copyright 2018-2020 Signal Messenger, LLC
+// Copyright 2018 Signal Messenger, LLC
// SPDX-License-Identifier: AGPL-3.0-only
import type {
diff --git a/app/spell_check.ts b/app/spell_check.ts
index cd658088a..b6b855f48 100644
--- a/app/spell_check.ts
+++ b/app/spell_check.ts
@@ -1,4 +1,4 @@
-// Copyright 2020-2022 Signal Messenger, LLC
+// Copyright 2020 Signal Messenger, LLC
// SPDX-License-Identifier: AGPL-3.0-only
import type { BrowserWindow } from 'electron';
diff --git a/app/sql_channel.ts b/app/sql_channel.ts
index 25e442d3d..59bac5960 100644
--- a/app/sql_channel.ts
+++ b/app/sql_channel.ts
@@ -1,4 +1,4 @@
-// Copyright 2018-2020 Signal Messenger, LLC
+// Copyright 2018 Signal Messenger, LLC
// SPDX-License-Identifier: AGPL-3.0-only
import { ipcMain } from 'electron';
diff --git a/app/user_config.ts b/app/user_config.ts
index 1e04192ce..12da26a31 100644
--- a/app/user_config.ts
+++ b/app/user_config.ts
@@ -1,4 +1,4 @@
-// Copyright 2017-2022 Signal Messenger, LLC
+// Copyright 2017 Signal Messenger, LLC
// SPDX-License-Identifier: AGPL-3.0-only
import { join } from 'path';
diff --git a/app/window_state.ts b/app/window_state.ts
index e21417c15..53798e459 100644
--- a/app/window_state.ts
+++ b/app/window_state.ts
@@ -1,4 +1,4 @@
-// Copyright 2017-2020 Signal Messenger, LLC
+// Copyright 2017 Signal Messenger, LLC
// SPDX-License-Identifier: AGPL-3.0-only
let shouldQuitFlag = false;
diff --git a/aptly.sh b/aptly.sh
index 072a4eb6d..dae47d028 100755
--- a/aptly.sh
+++ b/aptly.sh
@@ -1,8 +1,8 @@
#!/bin/bash
-# Copyright 2017-2021 Signal Messenger, LLC
+# Copyright 2017 Signal Messenger, LLC
# SPDX-License-Identifier: AGPL-3.0-only
-# First run on a machine - uncomment the two 'first run' sections below, comment out the 'later runs' section.
+# First run on a machine - uncomment the two 'first run' sections below, comment out the 'later runs' section.
#
# Release:
# NAME=signal-desktop(-beta) VERSION=X.X.X ./aptly.sh
diff --git a/background.html b/background.html
index c7f1fb740..0e2212917 100644
--- a/background.html
+++ b/background.html
@@ -1,4 +1,4 @@
-
+
diff --git a/build/entitlements.mac.plist b/build/entitlements.mac.plist
index 5f372c251..5d035c990 100644
--- a/build/entitlements.mac.plist
+++ b/build/entitlements.mac.plist
@@ -1,4 +1,4 @@
-
+
@@ -25,4 +25,3 @@
-
diff --git a/build/entitlements.mas.plist b/build/entitlements.mas.plist
index e45a78b96..2863ba3c6 100644
--- a/build/entitlements.mas.plist
+++ b/build/entitlements.mas.plist
@@ -1,4 +1,4 @@
-
+
diff --git a/debug_log.html b/debug_log.html
index c9f18a804..093cd03dd 100644
--- a/debug_log.html
+++ b/debug_log.html
@@ -1,4 +1,4 @@
-
+
diff --git a/fixtures/README.md b/fixtures/README.md
index b82d5155c..a8943f9b4 100644
--- a/fixtures/README.md
+++ b/fixtures/README.md
@@ -1,4 +1,4 @@
-
+
-A collection of fixture files. These files were made available in the public domain.
\ No newline at end of file
+A collection of fixture files. These files were made available in the public domain.
diff --git a/loading.html b/loading.html
index 6bef5633c..7bc05c79a 100644
--- a/loading.html
+++ b/loading.html
@@ -1,4 +1,4 @@
-
+
diff --git a/permissions_popup.html b/permissions_popup.html
index 4b3b3f89a..cf8042775 100644
--- a/permissions_popup.html
+++ b/permissions_popup.html
@@ -1,4 +1,4 @@
-
+
diff --git a/protos/ContactDiscovery.proto b/protos/ContactDiscovery.proto
index 22eb1ad5a..d1f5e046b 100644
--- a/protos/ContactDiscovery.proto
+++ b/protos/ContactDiscovery.proto
@@ -1,4 +1,4 @@
-// Copyright 2021-2022 Signal Messenger, LLC
+// Copyright 2021 Signal Messenger, LLC
// SPDX-License-Identifier: AGPL-3.0-only
package signalservice;
diff --git a/protos/CrashReports.proto b/protos/CrashReports.proto
index 9542f53cb..6c93d8b60 100644
--- a/protos/CrashReports.proto
+++ b/protos/CrashReports.proto
@@ -1,6 +1,6 @@
syntax = "proto3";
-// Copyright 2020-2021 Signal Messenger, LLC
+// Copyright 2020 Signal Messenger, LLC
// SPDX-License-Identifier: AGPL-3.0-only
package signalservice;
diff --git a/protos/DeviceMessages.proto b/protos/DeviceMessages.proto
index 765b76719..30174af3a 100644
--- a/protos/DeviceMessages.proto
+++ b/protos/DeviceMessages.proto
@@ -1,4 +1,4 @@
-// Copyright 2014-2021 Signal Messenger, LLC
+// Copyright 2014 Signal Messenger, LLC
// SPDX-License-Identifier: AGPL-3.0-only
package signalservice;
diff --git a/protos/DeviceName.proto b/protos/DeviceName.proto
index 512d76505..af14c1bff 100644
--- a/protos/DeviceName.proto
+++ b/protos/DeviceName.proto
@@ -1,4 +1,4 @@
-// Copyright 2018-2021 Signal Messenger, LLC
+// Copyright 2018 Signal Messenger, LLC
// SPDX-License-Identifier: AGPL-3.0-only
package signalservice;
diff --git a/protos/Groups.proto b/protos/Groups.proto
index aed0512bd..c2acb6dec 100644
--- a/protos/Groups.proto
+++ b/protos/Groups.proto
@@ -1,6 +1,6 @@
syntax = "proto3";
-// Copyright 2020-2021 Signal Messenger, LLC
+// Copyright 2020 Signal Messenger, LLC
// SPDX-License-Identifier: AGPL-3.0-only
package signalservice;
diff --git a/protos/LibSignal-Client.proto b/protos/LibSignal-Client.proto
index 634a29eba..6055458d3 100644
--- a/protos/LibSignal-Client.proto
+++ b/protos/LibSignal-Client.proto
@@ -1,7 +1,7 @@
syntax = "proto3";
//
-// Copyright 2020-2021 Signal Messenger, LLC.
+// Copyright 2020 Signal Messenger, LLC.
// SPDX-License-Identifier: AGPL-3.0-only
//
@@ -104,4 +104,4 @@ message SenderKeyStateStructure {
message SenderKeyRecordStructure {
repeated SenderKeyStateStructure sender_key_states = 1;
-}
\ No newline at end of file
+}
diff --git a/protos/SignalService.proto b/protos/SignalService.proto
index 07cce1fb6..2b83cfa76 100644
--- a/protos/SignalService.proto
+++ b/protos/SignalService.proto
@@ -1,4 +1,4 @@
-// Copyright 2014-2021 Signal Messenger, LLC
+// Copyright 2014 Signal Messenger, LLC
// SPDX-License-Identifier: AGPL-3.0-only
// Source: https://github.com/signalapp/libsignal-service-java/blob/4684a49b2ed8f32be619e0d0eea423626b6cb2cb/protobuf/SignalService.proto
diff --git a/protos/SignalStorage.proto b/protos/SignalStorage.proto
index 0507a433e..578298b6d 100644
--- a/protos/SignalStorage.proto
+++ b/protos/SignalStorage.proto
@@ -1,4 +1,4 @@
-// Copyright 2020-2022 Signal Messenger, LLC
+// Copyright 2020 Signal Messenger, LLC
// SPDX-License-Identifier: AGPL-3.0-only
package signalservice;
diff --git a/protos/Stickers.proto b/protos/Stickers.proto
index 3c66bd0d6..a19bf745a 100644
--- a/protos/Stickers.proto
+++ b/protos/Stickers.proto
@@ -1,4 +1,4 @@
-// Copyright 2019-2021 Signal Messenger, LLC
+// Copyright 2019 Signal Messenger, LLC
// SPDX-License-Identifier: AGPL-3.0-only
package signalservice;
diff --git a/protos/SubProtocol.proto b/protos/SubProtocol.proto
index 98641ee36..f41607326 100644
--- a/protos/SubProtocol.proto
+++ b/protos/SubProtocol.proto
@@ -1,4 +1,4 @@
-// Copyright 2014-2021 Signal Messenger, LLC
+// Copyright 2014 Signal Messenger, LLC
// SPDX-License-Identifier: AGPL-3.0-only
package signalservice;
diff --git a/protos/UnidentifiedDelivery.proto b/protos/UnidentifiedDelivery.proto
index 1364eee80..fb86b6057 100644
--- a/protos/UnidentifiedDelivery.proto
+++ b/protos/UnidentifiedDelivery.proto
@@ -1,4 +1,4 @@
-// Copyright 2018-2021 Signal Messenger, LLC
+// Copyright 2018 Signal Messenger, LLC
// SPDX-License-Identifier: AGPL-3.0-only
package signalservice;
diff --git a/scripts/generate-acknowledgments.js b/scripts/generate-acknowledgments.js
index 546d65223..db64727f2 100644
--- a/scripts/generate-acknowledgments.js
+++ b/scripts/generate-acknowledgments.js
@@ -70,20 +70,6 @@ async function getMarkdownForDependency(dependencyName) {
].join('\n');
}
-function licenseComment() {
- const fileCreatedYear = 2020;
- const currentYear = new Date().getFullYear();
- const yearRange =
- fileCreatedYear === currentYear
- ? fileCreatedYear
- : `${fileCreatedYear}-${currentYear}`;
-
- return [
- ``,
- '',
- ].join('\n');
-}
-
async function main() {
assert.deepStrictEqual(
Object.keys(optionalDependencies),
@@ -109,7 +95,8 @@ async function main() {
);
const unformattedOutput = [
- licenseComment(),
+ '',
+ '',
'# Acknowledgments',
'',
'Signal Desktop makes use of the following open source projects.',
diff --git a/scripts/prepare_beta_build.js b/scripts/prepare_beta_build.js
index 99173e1b0..112ada814 100644
--- a/scripts/prepare_beta_build.js
+++ b/scripts/prepare_beta_build.js
@@ -1,4 +1,4 @@
-// Copyright 2018-2020 Signal Messenger, LLC
+// Copyright 2018 Signal Messenger, LLC
// SPDX-License-Identifier: AGPL-3.0-only
const fs = require('fs');
diff --git a/scripts/prepare_windows_cert.js b/scripts/prepare_windows_cert.js
index 5c772fa0f..de0da4813 100644
--- a/scripts/prepare_windows_cert.js
+++ b/scripts/prepare_windows_cert.js
@@ -1,4 +1,4 @@
-// Copyright 2018-2020 Signal Messenger, LLC
+// Copyright 2018 Signal Messenger, LLC
// SPDX-License-Identifier: AGPL-3.0-only
const fs = require('fs');
diff --git a/sticker-creator/_mixins.scss b/sticker-creator/_mixins.scss
index 3dba7f333..01b502c65 100644
--- a/sticker-creator/_mixins.scss
+++ b/sticker-creator/_mixins.scss
@@ -1,4 +1,4 @@
-// Copyright 2019-2020 Signal Messenger, LLC
+// Copyright 2019 Signal Messenger, LLC
// SPDX-License-Identifier: AGPL-3.0-only
@mixin light-theme() {
diff --git a/sticker-creator/app/index.scss b/sticker-creator/app/index.scss
index 0dd6c01a9..fca5e596a 100644
--- a/sticker-creator/app/index.scss
+++ b/sticker-creator/app/index.scss
@@ -1,4 +1,4 @@
-// Copyright 2019-2020 Signal Messenger, LLC
+// Copyright 2019 Signal Messenger, LLC
// SPDX-License-Identifier: AGPL-3.0-only
@import '../mixins';
diff --git a/sticker-creator/app/index.tsx b/sticker-creator/app/index.tsx
index 29ccb1a90..a4d844156 100644
--- a/sticker-creator/app/index.tsx
+++ b/sticker-creator/app/index.tsx
@@ -1,4 +1,4 @@
-// Copyright 2019-2020 Signal Messenger, LLC
+// Copyright 2019 Signal Messenger, LLC
// SPDX-License-Identifier: AGPL-3.0-only
import * as React from 'react';
diff --git a/sticker-creator/app/stages/AppStage.scss b/sticker-creator/app/stages/AppStage.scss
index c03d92ec6..6d2da47c3 100644
--- a/sticker-creator/app/stages/AppStage.scss
+++ b/sticker-creator/app/stages/AppStage.scss
@@ -1,4 +1,4 @@
-// Copyright 2019-2020 Signal Messenger, LLC
+// Copyright 2019 Signal Messenger, LLC
// SPDX-License-Identifier: AGPL-3.0-only
.padded {
diff --git a/sticker-creator/app/stages/AppStage.tsx b/sticker-creator/app/stages/AppStage.tsx
index ee24ed5d0..cde18961b 100644
--- a/sticker-creator/app/stages/AppStage.tsx
+++ b/sticker-creator/app/stages/AppStage.tsx
@@ -1,4 +1,4 @@
-// Copyright 2019-2020 Signal Messenger, LLC
+// Copyright 2019 Signal Messenger, LLC
// SPDX-License-Identifier: AGPL-3.0-only
import React from 'react';
diff --git a/sticker-creator/app/stages/DropStage.scss b/sticker-creator/app/stages/DropStage.scss
index 5efe45740..d7d6ddff9 100644
--- a/sticker-creator/app/stages/DropStage.scss
+++ b/sticker-creator/app/stages/DropStage.scss
@@ -1,4 +1,4 @@
-// Copyright 2019-2020 Signal Messenger, LLC
+// Copyright 2019 Signal Messenger, LLC
// SPDX-License-Identifier: AGPL-3.0-only
.message {
diff --git a/sticker-creator/app/stages/DropStage.tsx b/sticker-creator/app/stages/DropStage.tsx
index d8a04f13c..51d123f5c 100644
--- a/sticker-creator/app/stages/DropStage.tsx
+++ b/sticker-creator/app/stages/DropStage.tsx
@@ -1,4 +1,4 @@
-// Copyright 2019-2020 Signal Messenger, LLC
+// Copyright 2019 Signal Messenger, LLC
// SPDX-License-Identifier: AGPL-3.0-only
import * as React from 'react';
diff --git a/sticker-creator/app/stages/EmojiStage.tsx b/sticker-creator/app/stages/EmojiStage.tsx
index 2bf635ba6..115154313 100644
--- a/sticker-creator/app/stages/EmojiStage.tsx
+++ b/sticker-creator/app/stages/EmojiStage.tsx
@@ -1,4 +1,4 @@
-// Copyright 2019-2020 Signal Messenger, LLC
+// Copyright 2019 Signal Messenger, LLC
// SPDX-License-Identifier: AGPL-3.0-only
import * as React from 'react';
diff --git a/sticker-creator/app/stages/MetaStage.scss b/sticker-creator/app/stages/MetaStage.scss
index 84c3e7f66..33d0ef1c8 100644
--- a/sticker-creator/app/stages/MetaStage.scss
+++ b/sticker-creator/app/stages/MetaStage.scss
@@ -1,4 +1,4 @@
-// Copyright 2019-2021 Signal Messenger, LLC
+// Copyright 2019 Signal Messenger, LLC
// SPDX-License-Identifier: AGPL-3.0-only
@import '../../../stylesheets/variables';
diff --git a/sticker-creator/app/stages/MetaStage.tsx b/sticker-creator/app/stages/MetaStage.tsx
index 93d735f9d..9885bafb6 100644
--- a/sticker-creator/app/stages/MetaStage.tsx
+++ b/sticker-creator/app/stages/MetaStage.tsx
@@ -1,4 +1,4 @@
-// Copyright 2019-2020 Signal Messenger, LLC
+// Copyright 2019 Signal Messenger, LLC
// SPDX-License-Identifier: AGPL-3.0-only
import * as React from 'react';
diff --git a/sticker-creator/app/stages/ShareStage.scss b/sticker-creator/app/stages/ShareStage.scss
index fab76396b..b3be78b06 100644
--- a/sticker-creator/app/stages/ShareStage.scss
+++ b/sticker-creator/app/stages/ShareStage.scss
@@ -1,4 +1,4 @@
-// Copyright 2019-2020 Signal Messenger, LLC
+// Copyright 2019 Signal Messenger, LLC
// SPDX-License-Identifier: AGPL-3.0-only
@import '../../../stylesheets/variables';
diff --git a/sticker-creator/app/stages/ShareStage.tsx b/sticker-creator/app/stages/ShareStage.tsx
index 00edeae3d..ee2f70da0 100644
--- a/sticker-creator/app/stages/ShareStage.tsx
+++ b/sticker-creator/app/stages/ShareStage.tsx
@@ -1,4 +1,4 @@
-// Copyright 2019-2020 Signal Messenger, LLC
+// Copyright 2019 Signal Messenger, LLC
// SPDX-License-Identifier: AGPL-3.0-only
import * as React from 'react';
diff --git a/sticker-creator/app/stages/UploadStage.scss b/sticker-creator/app/stages/UploadStage.scss
index b6291ef5d..f720d91a0 100644
--- a/sticker-creator/app/stages/UploadStage.scss
+++ b/sticker-creator/app/stages/UploadStage.scss
@@ -1,4 +1,4 @@
-// Copyright 2019-2020 Signal Messenger, LLC
+// Copyright 2019 Signal Messenger, LLC
// SPDX-License-Identifier: AGPL-3.0-only
.base {
diff --git a/sticker-creator/app/stages/UploadStage.tsx b/sticker-creator/app/stages/UploadStage.tsx
index e4e85fe85..7bed41a7a 100644
--- a/sticker-creator/app/stages/UploadStage.tsx
+++ b/sticker-creator/app/stages/UploadStage.tsx
@@ -1,4 +1,4 @@
-// Copyright 2019-2021 Signal Messenger, LLC
+// Copyright 2019 Signal Messenger, LLC
// SPDX-License-Identifier: AGPL-3.0-only
import * as React from 'react';
diff --git a/sticker-creator/components/ConfirmModal.scss b/sticker-creator/components/ConfirmModal.scss
index 89d1bbdb1..65e91de0b 100644
--- a/sticker-creator/components/ConfirmModal.scss
+++ b/sticker-creator/components/ConfirmModal.scss
@@ -1,4 +1,4 @@
-// Copyright 2019-2020 Signal Messenger, LLC
+// Copyright 2019 Signal Messenger, LLC
// SPDX-License-Identifier: AGPL-3.0-only
.facade {
diff --git a/sticker-creator/components/ConfirmModal.tsx b/sticker-creator/components/ConfirmModal.tsx
index 019316c40..10eccb4b7 100644
--- a/sticker-creator/components/ConfirmModal.tsx
+++ b/sticker-creator/components/ConfirmModal.tsx
@@ -1,4 +1,4 @@
-// Copyright 2019-2020 Signal Messenger, LLC
+// Copyright 2019 Signal Messenger, LLC
// SPDX-License-Identifier: AGPL-3.0-only
import * as React from 'react';
diff --git a/sticker-creator/components/ShareButtons.scss b/sticker-creator/components/ShareButtons.scss
index 0ccbdf24c..3b0ff7aaf 100644
--- a/sticker-creator/components/ShareButtons.scss
+++ b/sticker-creator/components/ShareButtons.scss
@@ -1,4 +1,4 @@
-// Copyright 2019-2020 Signal Messenger, LLC
+// Copyright 2019 Signal Messenger, LLC
// SPDX-License-Identifier: AGPL-3.0-only
@import '../../stylesheets/variables';
diff --git a/sticker-creator/components/ShareButtons.stories.tsx b/sticker-creator/components/ShareButtons.stories.tsx
index 9e90390f0..8f9717200 100644
--- a/sticker-creator/components/ShareButtons.stories.tsx
+++ b/sticker-creator/components/ShareButtons.stories.tsx
@@ -1,4 +1,4 @@
-// Copyright 2019-2020 Signal Messenger, LLC
+// Copyright 2019 Signal Messenger, LLC
// SPDX-License-Identifier: AGPL-3.0-only
import * as React from 'react';
diff --git a/sticker-creator/components/ShareButtons.tsx b/sticker-creator/components/ShareButtons.tsx
index 8d6bfd7dd..bf0fc49e3 100644
--- a/sticker-creator/components/ShareButtons.tsx
+++ b/sticker-creator/components/ShareButtons.tsx
@@ -1,4 +1,4 @@
-// Copyright 2019-2020 Signal Messenger, LLC
+// Copyright 2019 Signal Messenger, LLC
// SPDX-License-Identifier: AGPL-3.0-only
/* eslint-disable max-len */
diff --git a/sticker-creator/components/StickerFrame.scss b/sticker-creator/components/StickerFrame.scss
index b650d52b7..039e98717 100644
--- a/sticker-creator/components/StickerFrame.scss
+++ b/sticker-creator/components/StickerFrame.scss
@@ -1,4 +1,4 @@
-// Copyright 2019-2021 Signal Messenger, LLC
+// Copyright 2019 Signal Messenger, LLC
// SPDX-License-Identifier: AGPL-3.0-only
@import '../mixins';
diff --git a/sticker-creator/components/StickerFrame.stories.tsx b/sticker-creator/components/StickerFrame.stories.tsx
index 518783008..b616ebd40 100644
--- a/sticker-creator/components/StickerFrame.stories.tsx
+++ b/sticker-creator/components/StickerFrame.stories.tsx
@@ -1,4 +1,4 @@
-// Copyright 2019-2020 Signal Messenger, LLC
+// Copyright 2019 Signal Messenger, LLC
// SPDX-License-Identifier: AGPL-3.0-only
import * as React from 'react';
diff --git a/sticker-creator/components/StickerFrame.tsx b/sticker-creator/components/StickerFrame.tsx
index 9ba23b2b1..12ab0f207 100644
--- a/sticker-creator/components/StickerFrame.tsx
+++ b/sticker-creator/components/StickerFrame.tsx
@@ -1,4 +1,4 @@
-// Copyright 2019-2021 Signal Messenger, LLC
+// Copyright 2019 Signal Messenger, LLC
// SPDX-License-Identifier: AGPL-3.0-only
import * as React from 'react';
diff --git a/sticker-creator/components/StickerGrid.scss b/sticker-creator/components/StickerGrid.scss
index 8c7ff4a19..d7bc2df2c 100644
--- a/sticker-creator/components/StickerGrid.scss
+++ b/sticker-creator/components/StickerGrid.scss
@@ -1,4 +1,4 @@
-// Copyright 2019-2020 Signal Messenger, LLC
+// Copyright 2019 Signal Messenger, LLC
// SPDX-License-Identifier: AGPL-3.0-only
.grid {
diff --git a/sticker-creator/components/StickerGrid.tsx b/sticker-creator/components/StickerGrid.tsx
index 8a9f5535a..1dbcf735d 100644
--- a/sticker-creator/components/StickerGrid.tsx
+++ b/sticker-creator/components/StickerGrid.tsx
@@ -1,4 +1,4 @@
-// Copyright 2019-2020 Signal Messenger, LLC
+// Copyright 2019 Signal Messenger, LLC
// SPDX-License-Identifier: AGPL-3.0-only
import * as React from 'react';
diff --git a/sticker-creator/components/StickerPackPreview.scss b/sticker-creator/components/StickerPackPreview.scss
index 6ec162b42..53cdc2ea8 100644
--- a/sticker-creator/components/StickerPackPreview.scss
+++ b/sticker-creator/components/StickerPackPreview.scss
@@ -1,4 +1,4 @@
-// Copyright 2019-2020 Signal Messenger, LLC
+// Copyright 2019 Signal Messenger, LLC
// SPDX-License-Identifier: AGPL-3.0-only
@import '../mixins';
diff --git a/sticker-creator/components/StickerPackPreview.stories.tsx b/sticker-creator/components/StickerPackPreview.stories.tsx
index 89b5354c0..93ea912c9 100644
--- a/sticker-creator/components/StickerPackPreview.stories.tsx
+++ b/sticker-creator/components/StickerPackPreview.stories.tsx
@@ -1,4 +1,4 @@
-// Copyright 2019-2020 Signal Messenger, LLC
+// Copyright 2019 Signal Messenger, LLC
// SPDX-License-Identifier: AGPL-3.0-only
import * as React from 'react';
diff --git a/sticker-creator/components/StickerPackPreview.tsx b/sticker-creator/components/StickerPackPreview.tsx
index 3dfce5e34..85836e0ac 100644
--- a/sticker-creator/components/StickerPackPreview.tsx
+++ b/sticker-creator/components/StickerPackPreview.tsx
@@ -1,4 +1,4 @@
-// Copyright 2019-2020 Signal Messenger, LLC
+// Copyright 2019 Signal Messenger, LLC
// SPDX-License-Identifier: AGPL-3.0-only
import * as React from 'react';
diff --git a/sticker-creator/elements/Button.scss b/sticker-creator/elements/Button.scss
index a0c6a5b99..e4dd33c42 100644
--- a/sticker-creator/elements/Button.scss
+++ b/sticker-creator/elements/Button.scss
@@ -1,4 +1,4 @@
-// Copyright 2019-2021 Signal Messenger, LLC
+// Copyright 2019 Signal Messenger, LLC
// SPDX-License-Identifier: AGPL-3.0-only
@import '../mixins';
diff --git a/sticker-creator/elements/Button.stories.tsx b/sticker-creator/elements/Button.stories.tsx
index 57948efa5..c1d7341cc 100644
--- a/sticker-creator/elements/Button.stories.tsx
+++ b/sticker-creator/elements/Button.stories.tsx
@@ -1,4 +1,4 @@
-// Copyright 2019-2020 Signal Messenger, LLC
+// Copyright 2019 Signal Messenger, LLC
// SPDX-License-Identifier: AGPL-3.0-only
import * as React from 'react';
diff --git a/sticker-creator/elements/Button.tsx b/sticker-creator/elements/Button.tsx
index ad5e773d6..8abd38482 100644
--- a/sticker-creator/elements/Button.tsx
+++ b/sticker-creator/elements/Button.tsx
@@ -1,4 +1,4 @@
-// Copyright 2019-2020 Signal Messenger, LLC
+// Copyright 2019 Signal Messenger, LLC
// SPDX-License-Identifier: AGPL-3.0-only
import React from 'react';
diff --git a/sticker-creator/elements/ConfirmDialog.scss b/sticker-creator/elements/ConfirmDialog.scss
index 56dbb7b8f..3d067df13 100644
--- a/sticker-creator/elements/ConfirmDialog.scss
+++ b/sticker-creator/elements/ConfirmDialog.scss
@@ -1,4 +1,4 @@
-// Copyright 2019-2021 Signal Messenger, LLC
+// Copyright 2019 Signal Messenger, LLC
// SPDX-License-Identifier: AGPL-3.0-only
@import '../mixins';
diff --git a/sticker-creator/elements/ConfirmDialog.stories.tsx b/sticker-creator/elements/ConfirmDialog.stories.tsx
index a58e44b62..f282aff6a 100644
--- a/sticker-creator/elements/ConfirmDialog.stories.tsx
+++ b/sticker-creator/elements/ConfirmDialog.stories.tsx
@@ -1,4 +1,4 @@
-// Copyright 2019-2020 Signal Messenger, LLC
+// Copyright 2019 Signal Messenger, LLC
// SPDX-License-Identifier: AGPL-3.0-only
import * as React from 'react';
diff --git a/sticker-creator/elements/ConfirmDialog.tsx b/sticker-creator/elements/ConfirmDialog.tsx
index 7a0909c0d..39c6bcb0b 100644
--- a/sticker-creator/elements/ConfirmDialog.tsx
+++ b/sticker-creator/elements/ConfirmDialog.tsx
@@ -1,4 +1,4 @@
-// Copyright 2019-2020 Signal Messenger, LLC
+// Copyright 2019 Signal Messenger, LLC
// SPDX-License-Identifier: AGPL-3.0-only
import * as React from 'react';
diff --git a/sticker-creator/elements/CopyText.scss b/sticker-creator/elements/CopyText.scss
index 722559170..2483f6af6 100644
--- a/sticker-creator/elements/CopyText.scss
+++ b/sticker-creator/elements/CopyText.scss
@@ -1,4 +1,4 @@
-// Copyright 2019-2020 Signal Messenger, LLC
+// Copyright 2019 Signal Messenger, LLC
// SPDX-License-Identifier: AGPL-3.0-only
@import '../../stylesheets/variables';
diff --git a/sticker-creator/elements/CopyText.stories.tsx b/sticker-creator/elements/CopyText.stories.tsx
index 76d274d7d..5b819bd96 100644
--- a/sticker-creator/elements/CopyText.stories.tsx
+++ b/sticker-creator/elements/CopyText.stories.tsx
@@ -1,4 +1,4 @@
-// Copyright 2019-2020 Signal Messenger, LLC
+// Copyright 2019 Signal Messenger, LLC
// SPDX-License-Identifier: AGPL-3.0-only
import * as React from 'react';
diff --git a/sticker-creator/elements/CopyText.tsx b/sticker-creator/elements/CopyText.tsx
index c8e437a7e..855bb3105 100644
--- a/sticker-creator/elements/CopyText.tsx
+++ b/sticker-creator/elements/CopyText.tsx
@@ -1,4 +1,4 @@
-// Copyright 2019-2020 Signal Messenger, LLC
+// Copyright 2019 Signal Messenger, LLC
// SPDX-License-Identifier: AGPL-3.0-only
import * as React from 'react';
diff --git a/sticker-creator/elements/DropZone.scss b/sticker-creator/elements/DropZone.scss
index 365f4b44a..08a0016ba 100644
--- a/sticker-creator/elements/DropZone.scss
+++ b/sticker-creator/elements/DropZone.scss
@@ -1,4 +1,4 @@
-// Copyright 2019-2021 Signal Messenger, LLC
+// Copyright 2019 Signal Messenger, LLC
// SPDX-License-Identifier: AGPL-3.0-only
@import '../../stylesheets/variables';
diff --git a/sticker-creator/elements/DropZone.stories.tsx b/sticker-creator/elements/DropZone.stories.tsx
index bfb3fb175..5c8637b78 100644
--- a/sticker-creator/elements/DropZone.stories.tsx
+++ b/sticker-creator/elements/DropZone.stories.tsx
@@ -1,4 +1,4 @@
-// Copyright 2019-2020 Signal Messenger, LLC
+// Copyright 2019 Signal Messenger, LLC
// SPDX-License-Identifier: AGPL-3.0-only
import * as React from 'react';
diff --git a/sticker-creator/elements/DropZone.tsx b/sticker-creator/elements/DropZone.tsx
index 4a5752400..9cd286444 100644
--- a/sticker-creator/elements/DropZone.tsx
+++ b/sticker-creator/elements/DropZone.tsx
@@ -1,4 +1,4 @@
-// Copyright 2019-2021 Signal Messenger, LLC
+// Copyright 2019 Signal Messenger, LLC
// SPDX-License-Identifier: AGPL-3.0-only
import * as React from 'react';
diff --git a/sticker-creator/elements/LabeledCheckbox.scss b/sticker-creator/elements/LabeledCheckbox.scss
index b61f2d97e..99c75af32 100644
--- a/sticker-creator/elements/LabeledCheckbox.scss
+++ b/sticker-creator/elements/LabeledCheckbox.scss
@@ -1,4 +1,4 @@
-// Copyright 2019-2021 Signal Messenger, LLC
+// Copyright 2019 Signal Messenger, LLC
// SPDX-License-Identifier: AGPL-3.0-only
@import '../../stylesheets/variables';
diff --git a/sticker-creator/elements/LabeledCheckbox.stories.tsx b/sticker-creator/elements/LabeledCheckbox.stories.tsx
index ca89ea77c..008af57e5 100644
--- a/sticker-creator/elements/LabeledCheckbox.stories.tsx
+++ b/sticker-creator/elements/LabeledCheckbox.stories.tsx
@@ -1,4 +1,4 @@
-// Copyright 2019-2020 Signal Messenger, LLC
+// Copyright 2019 Signal Messenger, LLC
// SPDX-License-Identifier: AGPL-3.0-only
import * as React from 'react';
diff --git a/sticker-creator/elements/LabeledCheckbox.tsx b/sticker-creator/elements/LabeledCheckbox.tsx
index 9fc6d2964..c388c81e6 100644
--- a/sticker-creator/elements/LabeledCheckbox.tsx
+++ b/sticker-creator/elements/LabeledCheckbox.tsx
@@ -1,4 +1,4 @@
-// Copyright 2019-2020 Signal Messenger, LLC
+// Copyright 2019 Signal Messenger, LLC
// SPDX-License-Identifier: AGPL-3.0-only
import * as React from 'react';
diff --git a/sticker-creator/elements/LabeledInput.scss b/sticker-creator/elements/LabeledInput.scss
index b89bc988c..a803bf90a 100644
--- a/sticker-creator/elements/LabeledInput.scss
+++ b/sticker-creator/elements/LabeledInput.scss
@@ -1,4 +1,4 @@
-// Copyright 2019-2021 Signal Messenger, LLC
+// Copyright 2019 Signal Messenger, LLC
// SPDX-License-Identifier: AGPL-3.0-only
@import '../../stylesheets/variables';
diff --git a/sticker-creator/elements/LabeledInput.stories.tsx b/sticker-creator/elements/LabeledInput.stories.tsx
index 060f40bd8..4403744c5 100644
--- a/sticker-creator/elements/LabeledInput.stories.tsx
+++ b/sticker-creator/elements/LabeledInput.stories.tsx
@@ -1,4 +1,4 @@
-// Copyright 2019-2020 Signal Messenger, LLC
+// Copyright 2019 Signal Messenger, LLC
// SPDX-License-Identifier: AGPL-3.0-only
import * as React from 'react';
diff --git a/sticker-creator/elements/LabeledInput.tsx b/sticker-creator/elements/LabeledInput.tsx
index a034bcc58..cc89bc6af 100644
--- a/sticker-creator/elements/LabeledInput.tsx
+++ b/sticker-creator/elements/LabeledInput.tsx
@@ -1,4 +1,4 @@
-// Copyright 2019-2020 Signal Messenger, LLC
+// Copyright 2019 Signal Messenger, LLC
// SPDX-License-Identifier: AGPL-3.0-only
import * as React from 'react';
diff --git a/sticker-creator/elements/MessageBubble.scss b/sticker-creator/elements/MessageBubble.scss
index 607bba613..08bbd31d2 100644
--- a/sticker-creator/elements/MessageBubble.scss
+++ b/sticker-creator/elements/MessageBubble.scss
@@ -1,4 +1,4 @@
-// Copyright 2019-2022 Signal Messenger, LLC
+// Copyright 2019 Signal Messenger, LLC
// SPDX-License-Identifier: AGPL-3.0-only
@import '../../stylesheets/variables';
diff --git a/sticker-creator/elements/MessageBubble.stories.tsx b/sticker-creator/elements/MessageBubble.stories.tsx
index 79ca45867..c952cb825 100644
--- a/sticker-creator/elements/MessageBubble.stories.tsx
+++ b/sticker-creator/elements/MessageBubble.stories.tsx
@@ -1,4 +1,4 @@
-// Copyright 2019-2020 Signal Messenger, LLC
+// Copyright 2019 Signal Messenger, LLC
// SPDX-License-Identifier: AGPL-3.0-only
import * as React from 'react';
diff --git a/sticker-creator/elements/MessageBubble.tsx b/sticker-creator/elements/MessageBubble.tsx
index a75f9cff2..b146d621f 100644
--- a/sticker-creator/elements/MessageBubble.tsx
+++ b/sticker-creator/elements/MessageBubble.tsx
@@ -1,4 +1,4 @@
-// Copyright 2019-2020 Signal Messenger, LLC
+// Copyright 2019 Signal Messenger, LLC
// SPDX-License-Identifier: AGPL-3.0-only
import * as React from 'react';
diff --git a/sticker-creator/elements/MessageMeta.scss b/sticker-creator/elements/MessageMeta.scss
index 1aee5a63c..291f16c52 100644
--- a/sticker-creator/elements/MessageMeta.scss
+++ b/sticker-creator/elements/MessageMeta.scss
@@ -1,4 +1,4 @@
-// Copyright 2019-2020 Signal Messenger, LLC
+// Copyright 2019 Signal Messenger, LLC
// SPDX-License-Identifier: AGPL-3.0-only
@import '../mixins';
diff --git a/sticker-creator/elements/MessageMeta.tsx b/sticker-creator/elements/MessageMeta.tsx
index da754b34f..b96731cba 100644
--- a/sticker-creator/elements/MessageMeta.tsx
+++ b/sticker-creator/elements/MessageMeta.tsx
@@ -1,4 +1,4 @@
-// Copyright 2019-2020 Signal Messenger, LLC
+// Copyright 2019 Signal Messenger, LLC
// SPDX-License-Identifier: AGPL-3.0-only
import * as React from 'react';
diff --git a/sticker-creator/elements/MessageSticker.scss b/sticker-creator/elements/MessageSticker.scss
index 4fa579a12..65edeccbe 100644
--- a/sticker-creator/elements/MessageSticker.scss
+++ b/sticker-creator/elements/MessageSticker.scss
@@ -1,4 +1,4 @@
-// Copyright 2019-2020 Signal Messenger, LLC
+// Copyright 2019 Signal Messenger, LLC
// SPDX-License-Identifier: AGPL-3.0-only
@import '../../stylesheets/variables';
diff --git a/sticker-creator/elements/MessageSticker.stories.tsx b/sticker-creator/elements/MessageSticker.stories.tsx
index e31a8eca3..2e8538a40 100644
--- a/sticker-creator/elements/MessageSticker.stories.tsx
+++ b/sticker-creator/elements/MessageSticker.stories.tsx
@@ -1,4 +1,4 @@
-// Copyright 2019-2020 Signal Messenger, LLC
+// Copyright 2019 Signal Messenger, LLC
// SPDX-License-Identifier: AGPL-3.0-only
import * as React from 'react';
diff --git a/sticker-creator/elements/MessageSticker.tsx b/sticker-creator/elements/MessageSticker.tsx
index 95a98a344..e35022778 100644
--- a/sticker-creator/elements/MessageSticker.tsx
+++ b/sticker-creator/elements/MessageSticker.tsx
@@ -1,4 +1,4 @@
-// Copyright 2019-2020 Signal Messenger, LLC
+// Copyright 2019 Signal Messenger, LLC
// SPDX-License-Identifier: AGPL-3.0-only
import * as React from 'react';
diff --git a/sticker-creator/elements/PageHeader.scss b/sticker-creator/elements/PageHeader.scss
index b9c0ff694..6ed2d2749 100644
--- a/sticker-creator/elements/PageHeader.scss
+++ b/sticker-creator/elements/PageHeader.scss
@@ -1,4 +1,4 @@
-// Copyright 2019-2020 Signal Messenger, LLC
+// Copyright 2019 Signal Messenger, LLC
// SPDX-License-Identifier: AGPL-3.0-only
@import '../../stylesheets/variables';
diff --git a/sticker-creator/elements/PageHeader.stories.tsx b/sticker-creator/elements/PageHeader.stories.tsx
index 018b0185f..de7143eeb 100644
--- a/sticker-creator/elements/PageHeader.stories.tsx
+++ b/sticker-creator/elements/PageHeader.stories.tsx
@@ -1,4 +1,4 @@
-// Copyright 2019-2020 Signal Messenger, LLC
+// Copyright 2019 Signal Messenger, LLC
// SPDX-License-Identifier: AGPL-3.0-only
import * as React from 'react';
diff --git a/sticker-creator/elements/PageHeader.tsx b/sticker-creator/elements/PageHeader.tsx
index d1ed108cc..6f595a8c4 100644
--- a/sticker-creator/elements/PageHeader.tsx
+++ b/sticker-creator/elements/PageHeader.tsx
@@ -1,4 +1,4 @@
-// Copyright 2019-2020 Signal Messenger, LLC
+// Copyright 2019 Signal Messenger, LLC
// SPDX-License-Identifier: AGPL-3.0-only
import * as React from 'react';
diff --git a/sticker-creator/elements/ProgressBar.scss b/sticker-creator/elements/ProgressBar.scss
index 9b0bb42db..0a73e843d 100644
--- a/sticker-creator/elements/ProgressBar.scss
+++ b/sticker-creator/elements/ProgressBar.scss
@@ -1,4 +1,4 @@
-// Copyright 2019-2021 Signal Messenger, LLC
+// Copyright 2019 Signal Messenger, LLC
// SPDX-License-Identifier: AGPL-3.0-only
@import '../../stylesheets/variables';
diff --git a/sticker-creator/elements/ProgressBar.stories.tsx b/sticker-creator/elements/ProgressBar.stories.tsx
index 91cac357a..6e4401576 100644
--- a/sticker-creator/elements/ProgressBar.stories.tsx
+++ b/sticker-creator/elements/ProgressBar.stories.tsx
@@ -1,4 +1,4 @@
-// Copyright 2019-2020 Signal Messenger, LLC
+// Copyright 2019 Signal Messenger, LLC
// SPDX-License-Identifier: AGPL-3.0-only
import * as React from 'react';
diff --git a/sticker-creator/elements/ProgressBar.tsx b/sticker-creator/elements/ProgressBar.tsx
index ac50a07e9..ec783a82b 100644
--- a/sticker-creator/elements/ProgressBar.tsx
+++ b/sticker-creator/elements/ProgressBar.tsx
@@ -1,4 +1,4 @@
-// Copyright 2019-2020 Signal Messenger, LLC
+// Copyright 2019 Signal Messenger, LLC
// SPDX-License-Identifier: AGPL-3.0-only
import * as React from 'react';
diff --git a/sticker-creator/elements/StickerPreview.scss b/sticker-creator/elements/StickerPreview.scss
index a8e00a7c4..9d623e24b 100644
--- a/sticker-creator/elements/StickerPreview.scss
+++ b/sticker-creator/elements/StickerPreview.scss
@@ -1,4 +1,4 @@
-// Copyright 2019-2021 Signal Messenger, LLC
+// Copyright 2019 Signal Messenger, LLC
// SPDX-License-Identifier: AGPL-3.0-only
@import '../mixins';
diff --git a/sticker-creator/elements/StickerPreview.stories.tsx b/sticker-creator/elements/StickerPreview.stories.tsx
index 6cee1c449..b44c9f25f 100644
--- a/sticker-creator/elements/StickerPreview.stories.tsx
+++ b/sticker-creator/elements/StickerPreview.stories.tsx
@@ -1,4 +1,4 @@
-// Copyright 2019-2020 Signal Messenger, LLC
+// Copyright 2019 Signal Messenger, LLC
// SPDX-License-Identifier: AGPL-3.0-only
import * as React from 'react';
diff --git a/sticker-creator/elements/StickerPreview.tsx b/sticker-creator/elements/StickerPreview.tsx
index eedb22430..f275bb2a1 100644
--- a/sticker-creator/elements/StickerPreview.tsx
+++ b/sticker-creator/elements/StickerPreview.tsx
@@ -1,4 +1,4 @@
-// Copyright 2019-2021 Signal Messenger, LLC
+// Copyright 2019 Signal Messenger, LLC
// SPDX-License-Identifier: AGPL-3.0-only
import * as React from 'react';
diff --git a/sticker-creator/elements/StoryRow.scss b/sticker-creator/elements/StoryRow.scss
index ec2344504..f26214ae5 100644
--- a/sticker-creator/elements/StoryRow.scss
+++ b/sticker-creator/elements/StoryRow.scss
@@ -1,4 +1,4 @@
-// Copyright 2019-2020 Signal Messenger, LLC
+// Copyright 2019 Signal Messenger, LLC
// SPDX-License-Identifier: AGPL-3.0-only
.base {
diff --git a/sticker-creator/elements/StoryRow.tsx b/sticker-creator/elements/StoryRow.tsx
index dfa88582b..342f8795e 100644
--- a/sticker-creator/elements/StoryRow.tsx
+++ b/sticker-creator/elements/StoryRow.tsx
@@ -1,4 +1,4 @@
-// Copyright 2019-2020 Signal Messenger, LLC
+// Copyright 2019 Signal Messenger, LLC
// SPDX-License-Identifier: AGPL-3.0-only
import * as React from 'react';
diff --git a/sticker-creator/elements/Toast.scss b/sticker-creator/elements/Toast.scss
index 52dbb0ae5..65e9c6891 100644
--- a/sticker-creator/elements/Toast.scss
+++ b/sticker-creator/elements/Toast.scss
@@ -1,4 +1,4 @@
-// Copyright 2019-2020 Signal Messenger, LLC
+// Copyright 2019 Signal Messenger, LLC
// SPDX-License-Identifier: AGPL-3.0-only
@import '../../stylesheets/variables';
diff --git a/sticker-creator/elements/Toast.stories.tsx b/sticker-creator/elements/Toast.stories.tsx
index 4b80528e4..2d6b98c07 100644
--- a/sticker-creator/elements/Toast.stories.tsx
+++ b/sticker-creator/elements/Toast.stories.tsx
@@ -1,4 +1,4 @@
-// Copyright 2019-2020 Signal Messenger, LLC
+// Copyright 2019 Signal Messenger, LLC
// SPDX-License-Identifier: AGPL-3.0-only
import * as React from 'react';
diff --git a/sticker-creator/elements/Toast.tsx b/sticker-creator/elements/Toast.tsx
index 433270dc0..864ab5262 100644
--- a/sticker-creator/elements/Toast.tsx
+++ b/sticker-creator/elements/Toast.tsx
@@ -1,4 +1,4 @@
-// Copyright 2019-2020 Signal Messenger, LLC
+// Copyright 2019 Signal Messenger, LLC
// SPDX-License-Identifier: AGPL-3.0-only
import * as React from 'react';
diff --git a/sticker-creator/elements/Typography.scss b/sticker-creator/elements/Typography.scss
index 5610943a1..19edf2e80 100644
--- a/sticker-creator/elements/Typography.scss
+++ b/sticker-creator/elements/Typography.scss
@@ -1,4 +1,4 @@
-// Copyright 2019-2021 Signal Messenger, LLC
+// Copyright 2019 Signal Messenger, LLC
// SPDX-License-Identifier: AGPL-3.0-only
@import '../../stylesheets/variables';
diff --git a/sticker-creator/elements/Typography.stories.tsx b/sticker-creator/elements/Typography.stories.tsx
index a531fc0e9..6319e81e4 100644
--- a/sticker-creator/elements/Typography.stories.tsx
+++ b/sticker-creator/elements/Typography.stories.tsx
@@ -1,4 +1,4 @@
-// Copyright 2019-2020 Signal Messenger, LLC
+// Copyright 2019 Signal Messenger, LLC
// SPDX-License-Identifier: AGPL-3.0-only
/* eslint-disable jsx-a11y/anchor-is-valid */
diff --git a/sticker-creator/elements/Typography.tsx b/sticker-creator/elements/Typography.tsx
index a89621b48..80fe1fecb 100644
--- a/sticker-creator/elements/Typography.tsx
+++ b/sticker-creator/elements/Typography.tsx
@@ -1,4 +1,4 @@
-// Copyright 2019-2020 Signal Messenger, LLC
+// Copyright 2019 Signal Messenger, LLC
// SPDX-License-Identifier: AGPL-3.0-only
import * as React from 'react';
diff --git a/sticker-creator/elements/icons/AddEmoji.tsx b/sticker-creator/elements/icons/AddEmoji.tsx
index 5cb0cb790..7074f07e1 100644
--- a/sticker-creator/elements/icons/AddEmoji.tsx
+++ b/sticker-creator/elements/icons/AddEmoji.tsx
@@ -1,4 +1,4 @@
-// Copyright 2019-2020 Signal Messenger, LLC
+// Copyright 2019 Signal Messenger, LLC
// SPDX-License-Identifier: AGPL-3.0-only
import * as React from 'react';
diff --git a/sticker-creator/elements/icons/index.tsx b/sticker-creator/elements/icons/index.tsx
index 50e0a2e7c..aacea4a8d 100644
--- a/sticker-creator/elements/icons/index.tsx
+++ b/sticker-creator/elements/icons/index.tsx
@@ -1,4 +1,4 @@
-// Copyright 2019-2020 Signal Messenger, LLC
+// Copyright 2019 Signal Messenger, LLC
// SPDX-License-Identifier: AGPL-3.0-only
export { AddEmoji } from './AddEmoji';
diff --git a/sticker-creator/index.html b/sticker-creator/index.html
index 4c5222de7..e1363b394 100644
--- a/sticker-creator/index.html
+++ b/sticker-creator/index.html
@@ -1,4 +1,4 @@
-
+
diff --git a/sticker-creator/index.tsx b/sticker-creator/index.tsx
index 34bccbbc5..52b1ef137 100644
--- a/sticker-creator/index.tsx
+++ b/sticker-creator/index.tsx
@@ -1,4 +1,4 @@
-// Copyright 2019-2020 Signal Messenger, LLC
+// Copyright 2019 Signal Messenger, LLC
// SPDX-License-Identifier: AGPL-3.0-only
import * as React from 'react';
diff --git a/sticker-creator/preload.ts b/sticker-creator/preload.ts
index 61f756a43..d71d7de2b 100644
--- a/sticker-creator/preload.ts
+++ b/sticker-creator/preload.ts
@@ -1,4 +1,4 @@
-// Copyright 2019-2022 Signal Messenger, LLC
+// Copyright 2019 Signal Messenger, LLC
// SPDX-License-Identifier: AGPL-3.0-only
import './window/phase1-dependencies';
diff --git a/sticker-creator/root.tsx b/sticker-creator/root.tsx
index 139e64bd3..a2db2a33c 100644
--- a/sticker-creator/root.tsx
+++ b/sticker-creator/root.tsx
@@ -1,4 +1,4 @@
-// Copyright 2019-2021 Signal Messenger, LLC
+// Copyright 2019 Signal Messenger, LLC
// SPDX-License-Identifier: AGPL-3.0-only
import { hot } from 'react-hot-loader/root';
diff --git a/sticker-creator/store/ducks/stickers.ts b/sticker-creator/store/ducks/stickers.ts
index a493d21c5..b01e020a0 100644
--- a/sticker-creator/store/ducks/stickers.ts
+++ b/sticker-creator/store/ducks/stickers.ts
@@ -1,4 +1,4 @@
-// Copyright 2019-2022 Signal Messenger, LLC
+// Copyright 2019 Signal Messenger, LLC
// SPDX-License-Identifier: AGPL-3.0-only
/* eslint-disable no-param-reassign */
diff --git a/sticker-creator/store/index.ts b/sticker-creator/store/index.ts
index d3271735a..f82408e2b 100644
--- a/sticker-creator/store/index.ts
+++ b/sticker-creator/store/index.ts
@@ -1,4 +1,4 @@
-// Copyright 2019-2020 Signal Messenger, LLC
+// Copyright 2019 Signal Messenger, LLC
// SPDX-License-Identifier: AGPL-3.0-only
import { createStore } from 'redux';
diff --git a/sticker-creator/store/reducer.ts b/sticker-creator/store/reducer.ts
index 8ceb3ea19..1d7ddbde8 100644
--- a/sticker-creator/store/reducer.ts
+++ b/sticker-creator/store/reducer.ts
@@ -1,4 +1,4 @@
-// Copyright 2019-2022 Signal Messenger, LLC
+// Copyright 2019 Signal Messenger, LLC
// SPDX-License-Identifier: AGPL-3.0-only
import type { Reducer } from 'redux';
diff --git a/sticker-creator/util/history.ts b/sticker-creator/util/history.ts
index 2c894bafd..2bebc1578 100644
--- a/sticker-creator/util/history.ts
+++ b/sticker-creator/util/history.ts
@@ -1,4 +1,4 @@
-// Copyright 2019-2020 Signal Messenger, LLC
+// Copyright 2019 Signal Messenger, LLC
// SPDX-License-Identifier: AGPL-3.0-only
import { createMemoryHistory } from 'history';
diff --git a/sticker-creator/util/i18n.tsx b/sticker-creator/util/i18n.tsx
index 05d5958ec..dfd45000a 100644
--- a/sticker-creator/util/i18n.tsx
+++ b/sticker-creator/util/i18n.tsx
@@ -1,4 +1,4 @@
-// Copyright 2019-2020 Signal Messenger, LLC
+// Copyright 2019 Signal Messenger, LLC
// SPDX-License-Identifier: AGPL-3.0-only
import * as React from 'react';
diff --git a/sticker-creator/util/preload.ts b/sticker-creator/util/preload.ts
index dfebe5493..5b2639158 100644
--- a/sticker-creator/util/preload.ts
+++ b/sticker-creator/util/preload.ts
@@ -1,4 +1,4 @@
-// Copyright 2019-2021 Signal Messenger, LLC
+// Copyright 2019 Signal Messenger, LLC
// SPDX-License-Identifier: AGPL-3.0-only
import type {
diff --git a/stylesheets/_conversation.scss b/stylesheets/_conversation.scss
index 6300970e9..dd0e8f395 100644
--- a/stylesheets/_conversation.scss
+++ b/stylesheets/_conversation.scss
@@ -1,4 +1,4 @@
-// Copyright 2015-2021 Signal Messenger, LLC
+// Copyright 2015 Signal Messenger, LLC
// SPDX-License-Identifier: AGPL-3.0-only
@import './mixins';
diff --git a/stylesheets/_emoji.scss b/stylesheets/_emoji.scss
index 0ebd4a9c4..d126ee5da 100644
--- a/stylesheets/_emoji.scss
+++ b/stylesheets/_emoji.scss
@@ -1,4 +1,4 @@
-// Copyright 2016-2020 Signal Messenger, LLC
+// Copyright 2016 Signal Messenger, LLC
// SPDX-License-Identifier: AGPL-3.0-only
span.emoji {
diff --git a/stylesheets/_fontfaces.scss b/stylesheets/_fontfaces.scss
index 0dd68f0c0..a66ae37b5 100644
--- a/stylesheets/_fontfaces.scss
+++ b/stylesheets/_fontfaces.scss
@@ -1,4 +1,4 @@
-// Copyright 2019-2020 Signal Messenger, LLC
+// Copyright 2019 Signal Messenger, LLC
// SPDX-License-Identifier: AGPL-3.0-only
@font-face {
diff --git a/stylesheets/_global.scss b/stylesheets/_global.scss
index c02bb9f70..926361bf5 100644
--- a/stylesheets/_global.scss
+++ b/stylesheets/_global.scss
@@ -1,4 +1,4 @@
-// Copyright 2015-2021 Signal Messenger, LLC
+// Copyright 2015 Signal Messenger, LLC
// SPDX-License-Identifier: AGPL-3.0-only
html {
diff --git a/stylesheets/_index.scss b/stylesheets/_index.scss
index 6f78e0916..aeddb4357 100644
--- a/stylesheets/_index.scss
+++ b/stylesheets/_index.scss
@@ -1,4 +1,4 @@
-// Copyright 2015-2021 Signal Messenger, LLC
+// Copyright 2015 Signal Messenger, LLC
// SPDX-License-Identifier: AGPL-3.0-only
#app-container {
diff --git a/stylesheets/_mixins.scss b/stylesheets/_mixins.scss
index 262830cc2..851e230fd 100644
--- a/stylesheets/_mixins.scss
+++ b/stylesheets/_mixins.scss
@@ -1,4 +1,4 @@
-// Copyright 2016-2022 Signal Messenger, LLC
+// Copyright 2016 Signal Messenger, LLC
// SPDX-License-Identifier: AGPL-3.0-only
// Fonts
diff --git a/stylesheets/_modules.scss b/stylesheets/_modules.scss
index 1cd4efe75..3bec60d62 100644
--- a/stylesheets/_modules.scss
+++ b/stylesheets/_modules.scss
@@ -1,4 +1,4 @@
-// Copyright 2018-2022 Signal Messenger, LLC
+// Copyright 2018 Signal Messenger, LLC
// SPDX-License-Identifier: AGPL-3.0-only
// Using BEM syntax explained here: https://csswizardry.com/2013/01/mindbemding-getting-your-head-round-bem-syntax/
diff --git a/stylesheets/_options.scss b/stylesheets/_options.scss
index 75990a6eb..da8e661b9 100644
--- a/stylesheets/_options.scss
+++ b/stylesheets/_options.scss
@@ -1,4 +1,4 @@
-// Copyright 2018-2022 Signal Messenger, LLC
+// Copyright 2018 Signal Messenger, LLC
// SPDX-License-Identifier: AGPL-3.0-only
@use '../node_modules/intl-tel-input/build/css/intlTelInput.css';
diff --git a/stylesheets/_progress.scss b/stylesheets/_progress.scss
index cde537b4b..3b163f353 100644
--- a/stylesheets/_progress.scss
+++ b/stylesheets/_progress.scss
@@ -1,4 +1,4 @@
-// Copyright 2017-2020 Signal Messenger, LLC
+// Copyright 2017 Signal Messenger, LLC
// SPDX-License-Identifier: AGPL-3.0-only
@keyframes progress-bar-stripes {
diff --git a/stylesheets/_variables.scss b/stylesheets/_variables.scss
index 50768dbfe..2944f390f 100644
--- a/stylesheets/_variables.scss
+++ b/stylesheets/_variables.scss
@@ -1,4 +1,4 @@
-// Copyright 2015-2022 Signal Messenger, LLC
+// Copyright 2015 Signal Messenger, LLC
// SPDX-License-Identifier: AGPL-3.0-only
$inter: Inter, 'Helvetica Neue', 'Source Sans Pro', 'Source Han Sans SC',
diff --git a/stylesheets/components/AddGroupMembersModal.scss b/stylesheets/components/AddGroupMembersModal.scss
index e07b9a41b..687d854bf 100644
--- a/stylesheets/components/AddGroupMembersModal.scss
+++ b/stylesheets/components/AddGroupMembersModal.scss
@@ -1,4 +1,4 @@
-// Copyright 2021-2022 Signal Messenger, LLC
+// Copyright 2021 Signal Messenger, LLC
// SPDX-License-Identifier: AGPL-3.0-only
.module-AddGroupMembersModal {
diff --git a/stylesheets/components/AudioCapture.scss b/stylesheets/components/AudioCapture.scss
index 9b9b86b5c..36e3f07c5 100644
--- a/stylesheets/components/AudioCapture.scss
+++ b/stylesheets/components/AudioCapture.scss
@@ -1,4 +1,4 @@
-// Copyright 2016-2022 Signal Messenger, LLC
+// Copyright 2016 Signal Messenger, LLC
// SPDX-License-Identifier: AGPL-3.0-only
.AudioCapture {
diff --git a/stylesheets/components/Avatar.scss b/stylesheets/components/Avatar.scss
index f09517599..3794f62a3 100644
--- a/stylesheets/components/Avatar.scss
+++ b/stylesheets/components/Avatar.scss
@@ -1,4 +1,4 @@
-// Copyright 2021-2022 Signal Messenger, LLC
+// Copyright 2021 Signal Messenger, LLC
// SPDX-License-Identifier: AGPL-3.0-only
.module-Avatar {
diff --git a/stylesheets/components/DebugLogWindow.scss b/stylesheets/components/DebugLogWindow.scss
index bf6624b93..e919ae94b 100644
--- a/stylesheets/components/DebugLogWindow.scss
+++ b/stylesheets/components/DebugLogWindow.scss
@@ -1,4 +1,4 @@
-// Copyright 2016-2021 Signal Messenger, LLC
+// Copyright 2016 Signal Messenger, LLC
// SPDX-License-Identifier: AGPL-3.0-only
.DebugLogWindow {
diff --git a/stylesheets/components/InstallScreenQrCodeNotScannedStep.scss b/stylesheets/components/InstallScreenQrCodeNotScannedStep.scss
index 8442fc898..9ed9621ff 100644
--- a/stylesheets/components/InstallScreenQrCodeNotScannedStep.scss
+++ b/stylesheets/components/InstallScreenQrCodeNotScannedStep.scss
@@ -1,4 +1,4 @@
-// Copyright 2021-2022 Signal Messenger, LLC
+// Copyright 2021 Signal Messenger, LLC
// SPDX-License-Identifier: AGPL-3.0-only
.module-InstallScreenQrCodeNotScannedStep {
diff --git a/stylesheets/components/LeftPaneDialog.scss b/stylesheets/components/LeftPaneDialog.scss
index 7f41da8b7..7aad96964 100644
--- a/stylesheets/components/LeftPaneDialog.scss
+++ b/stylesheets/components/LeftPaneDialog.scss
@@ -1,4 +1,4 @@
-// Copyright 2021-2022 Signal Messenger, LLC
+// Copyright 2021 Signal Messenger, LLC
// SPDX-License-Identifier: AGPL-3.0-only
@keyframes progress-animation {
diff --git a/stylesheets/components/LeftPaneSearchInput.scss b/stylesheets/components/LeftPaneSearchInput.scss
index 9ffc117d6..1ad30dd9d 100644
--- a/stylesheets/components/LeftPaneSearchInput.scss
+++ b/stylesheets/components/LeftPaneSearchInput.scss
@@ -1,4 +1,4 @@
-// Copyright 2021-2022 Signal Messenger, LLC
+// Copyright 2021 Signal Messenger, LLC
// SPDX-License-Identifier: AGPL-3.0-only
.LeftPaneSearchInput {
diff --git a/stylesheets/components/MessageDetail.scss b/stylesheets/components/MessageDetail.scss
index 42e842626..f5873ce29 100644
--- a/stylesheets/components/MessageDetail.scss
+++ b/stylesheets/components/MessageDetail.scss
@@ -1,4 +1,4 @@
-// Copyright 2018-2021 Signal Messenger, LLC
+// Copyright 2018 Signal Messenger, LLC
// SPDX-License-Identifier: AGPL-3.0-only
.module-message-detail {
diff --git a/stylesheets/components/ProfileEditor.scss b/stylesheets/components/ProfileEditor.scss
index 4284a9b34..2f758ee05 100644
--- a/stylesheets/components/ProfileEditor.scss
+++ b/stylesheets/components/ProfileEditor.scss
@@ -1,4 +1,4 @@
-// Copyright 2021-2022 Signal Messenger, LLC
+// Copyright 2021 Signal Messenger, LLC
// SPDX-License-Identifier: AGPL-3.0-only
.ProfileEditor {
diff --git a/stylesheets/components/ReactionPickerPicker.scss b/stylesheets/components/ReactionPickerPicker.scss
index 619766e94..c7d24f005 100644
--- a/stylesheets/components/ReactionPickerPicker.scss
+++ b/stylesheets/components/ReactionPickerPicker.scss
@@ -1,4 +1,4 @@
-// Copyright 2021-2022 Signal Messenger, LLC
+// Copyright 2021 Signal Messenger, LLC
// SPDX-License-Identifier: AGPL-3.0-only
@use 'sass:math';
diff --git a/stylesheets/components/ScrollDownButton.scss b/stylesheets/components/ScrollDownButton.scss
index 390efa554..f098ed2fd 100644
--- a/stylesheets/components/ScrollDownButton.scss
+++ b/stylesheets/components/ScrollDownButton.scss
@@ -1,4 +1,4 @@
-// Copyright 2018-2022 Signal Messenger, LLC
+// Copyright 2018 Signal Messenger, LLC
// SPDX-License-Identifier: AGPL-3.0-only
.ScrollDownButton {
diff --git a/stylesheets/components/SearchInput.scss b/stylesheets/components/SearchInput.scss
index 4e3ae368a..c6870d8af 100644
--- a/stylesheets/components/SearchInput.scss
+++ b/stylesheets/components/SearchInput.scss
@@ -1,4 +1,4 @@
-// Copyright 2021-2022 Signal Messenger, LLC
+// Copyright 2021 Signal Messenger, LLC
// SPDX-License-Identifier: AGPL-3.0-only
.module-SearchInput {
diff --git a/stylesheets/components/StagedLinkPreview.scss b/stylesheets/components/StagedLinkPreview.scss
index 240cf8e30..4c5830e39 100644
--- a/stylesheets/components/StagedLinkPreview.scss
+++ b/stylesheets/components/StagedLinkPreview.scss
@@ -1,4 +1,4 @@
-// Copyright 2021-2022 Signal Messenger, LLC
+// Copyright 2021 Signal Messenger, LLC
// SPDX-License-Identifier: AGPL-3.0-only
.module-staged-link-preview {
diff --git a/stylesheets/components/SystemMessage.scss b/stylesheets/components/SystemMessage.scss
index 54b5d98d6..bb63dfd16 100644
--- a/stylesheets/components/SystemMessage.scss
+++ b/stylesheets/components/SystemMessage.scss
@@ -1,4 +1,4 @@
-// Copyright 2021-2022 Signal Messenger, LLC
+// Copyright 2021 Signal Messenger, LLC
// SPDX-License-Identifier: AGPL-3.0-only
@mixin system-message-icon($light, $dark) {
diff --git a/stylesheets/components/TimelineWarnings.scss b/stylesheets/components/TimelineWarnings.scss
index 5b1b2db71..f8a76046f 100644
--- a/stylesheets/components/TimelineWarnings.scss
+++ b/stylesheets/components/TimelineWarnings.scss
@@ -1,4 +1,4 @@
-// Copyright 2021-2022 Signal Messenger, LLC
+// Copyright 2021 Signal Messenger, LLC
// SPDX-License-Identifier: AGPL-3.0-only
.module-TimelineWarnings {
diff --git a/stylesheets/manifest.scss b/stylesheets/manifest.scss
index dea9ffed9..e6314c289 100644
--- a/stylesheets/manifest.scss
+++ b/stylesheets/manifest.scss
@@ -1,4 +1,4 @@
-// Copyright 2014-2022 Signal Messenger, LLC
+// Copyright 2014 Signal Messenger, LLC
// SPDX-License-Identifier: AGPL-3.0-only
// Global Settings, Variables, and Mixins
diff --git a/stylesheets/manifest_bridge.scss b/stylesheets/manifest_bridge.scss
index fd7a5dfc1..2ed7bf1a3 100644
--- a/stylesheets/manifest_bridge.scss
+++ b/stylesheets/manifest_bridge.scss
@@ -1,4 +1,4 @@
-// Copyright 2019-2020 Signal Messenger, LLC
+// Copyright 2019 Signal Messenger, LLC
// SPDX-License-Identifier: AGPL-3.0-only
// This file acts as a bridge to allow BEM modules to work in the newer CSS
diff --git a/test/.eslintrc.js b/test/.eslintrc.js
index b2a0af3c9..59ddb42e0 100644
--- a/test/.eslintrc.js
+++ b/test/.eslintrc.js
@@ -1,4 +1,4 @@
-// Copyright 2018-2020 Signal Messenger, LLC
+// Copyright 2018 Signal Messenger, LLC
// SPDX-License-Identifier: AGPL-3.0-only
// For reference: https://github.com/airbnb/javascript
diff --git a/test/index.html b/test/index.html
index 7a5344809..6c8efb8f0 100644
--- a/test/index.html
+++ b/test/index.html
@@ -1,4 +1,4 @@
-
+
diff --git a/test/modules/.eslintrc.js b/test/modules/.eslintrc.js
index 2d0b3f6a3..1db728015 100644
--- a/test/modules/.eslintrc.js
+++ b/test/modules/.eslintrc.js
@@ -1,4 +1,4 @@
-// Copyright 2018-2020 Signal Messenger, LLC
+// Copyright 2018 Signal Messenger, LLC
// SPDX-License-Identifier: AGPL-3.0-only
// For reference: https://github.com/airbnb/javascript
diff --git a/test/setup-test-node.js b/test/setup-test-node.js
index 4e030043a..6238ae91f 100644
--- a/test/setup-test-node.js
+++ b/test/setup-test-node.js
@@ -1,4 +1,4 @@
-// Copyright 2021-2022 Signal Messenger, LLC
+// Copyright 2021 Signal Messenger, LLC
// SPDX-License-Identifier: AGPL-3.0-only
/* eslint-disable no-console */
diff --git a/test/test.js b/test/test.js
index 111399c4d..32da00cf9 100644
--- a/test/test.js
+++ b/test/test.js
@@ -1,4 +1,4 @@
-// Copyright 2014-2022 Signal Messenger, LLC
+// Copyright 2014 Signal Messenger, LLC
// SPDX-License-Identifier: AGPL-3.0-only
/* global Whisper, _, Backbone */
diff --git a/ts/ConversationController.ts b/ts/ConversationController.ts
index 41446ea11..313e90966 100644
--- a/ts/ConversationController.ts
+++ b/ts/ConversationController.ts
@@ -1,4 +1,4 @@
-// Copyright 2020-2022 Signal Messenger, LLC
+// Copyright 2020 Signal Messenger, LLC
// SPDX-License-Identifier: AGPL-3.0-only
import { debounce, pick, uniq, without } from 'lodash';
diff --git a/ts/Crypto.ts b/ts/Crypto.ts
index fb43fd37d..157eec8c2 100644
--- a/ts/Crypto.ts
+++ b/ts/Crypto.ts
@@ -1,4 +1,4 @@
-// Copyright 2020-2022 Signal Messenger, LLC
+// Copyright 2020 Signal Messenger, LLC
// SPDX-License-Identifier: AGPL-3.0-only
import { Buffer } from 'buffer';
diff --git a/ts/IdleDetector.ts b/ts/IdleDetector.ts
index 2c371231d..f21b4959c 100644
--- a/ts/IdleDetector.ts
+++ b/ts/IdleDetector.ts
@@ -1,4 +1,4 @@
-// Copyright 2018-2022 Signal Messenger, LLC
+// Copyright 2018 Signal Messenger, LLC
// SPDX-License-Identifier: AGPL-3.0-only
import EventEmitter from 'events';
diff --git a/ts/OS.ts b/ts/OS.ts
index 0f19966a8..1be92a06f 100644
--- a/ts/OS.ts
+++ b/ts/OS.ts
@@ -1,4 +1,4 @@
-// Copyright 2018-2020 Signal Messenger, LLC
+// Copyright 2018 Signal Messenger, LLC
// SPDX-License-Identifier: AGPL-3.0-only
import is from '@sindresorhus/is';
diff --git a/ts/RemoteConfig.ts b/ts/RemoteConfig.ts
index 60e82eddb..179ae6fff 100644
--- a/ts/RemoteConfig.ts
+++ b/ts/RemoteConfig.ts
@@ -1,4 +1,4 @@
-// Copyright 2020-2022 Signal Messenger, LLC
+// Copyright 2020 Signal Messenger, LLC
// SPDX-License-Identifier: AGPL-3.0-only
import { get, throttle } from 'lodash';
diff --git a/ts/SignalProtocolStore.ts b/ts/SignalProtocolStore.ts
index 3f9f0bcc8..b70e2f54f 100644
--- a/ts/SignalProtocolStore.ts
+++ b/ts/SignalProtocolStore.ts
@@ -1,4 +1,4 @@
-// Copyright 2016-2022 Signal Messenger, LLC
+// Copyright 2016 Signal Messenger, LLC
// SPDX-License-Identifier: AGPL-3.0-only
import PQueue from 'p-queue';
diff --git a/ts/backbone/reliable_trigger.ts b/ts/backbone/reliable_trigger.ts
index b810d6c4e..50196124d 100644
--- a/ts/backbone/reliable_trigger.ts
+++ b/ts/backbone/reliable_trigger.ts
@@ -1,4 +1,4 @@
-// Copyright 2017-2022 Signal Messenger, LLC
+// Copyright 2017 Signal Messenger, LLC
// SPDX-License-Identifier: AGPL-3.0-only
import type * as Backbone from 'backbone';
diff --git a/ts/background.ts b/ts/background.ts
index 3ff048b28..c4c1e151d 100644
--- a/ts/background.ts
+++ b/ts/background.ts
@@ -1,4 +1,4 @@
-// Copyright 2020-2022 Signal Messenger, LLC
+// Copyright 2020 Signal Messenger, LLC
// SPDX-License-Identifier: AGPL-3.0-only
import { webFrame } from 'electron';
diff --git a/ts/calling/constants.ts b/ts/calling/constants.ts
index 93275dea7..761f709c4 100644
--- a/ts/calling/constants.ts
+++ b/ts/calling/constants.ts
@@ -1,4 +1,4 @@
-// Copyright 2020-2022 Signal Messenger, LLC
+// Copyright 2020 Signal Messenger, LLC
// SPDX-License-Identifier: AGPL-3.0-only
// See `TICK_INTERVAL` in group_call.rs in RingRTC
diff --git a/ts/challenge.ts b/ts/challenge.ts
index a9882123a..0086ae086 100644
--- a/ts/challenge.ts
+++ b/ts/challenge.ts
@@ -1,4 +1,4 @@
-// Copyright 2021-2022 Signal Messenger, LLC
+// Copyright 2021 Signal Messenger, LLC
// SPDX-License-Identifier: AGPL-3.0-only
// `ChallengeHandler` is responsible for:
diff --git a/ts/components/About.tsx b/ts/components/About.tsx
index 9e49e515f..9b297fa6b 100644
--- a/ts/components/About.tsx
+++ b/ts/components/About.tsx
@@ -1,4 +1,4 @@
-// Copyright 2021-2022 Signal Messenger, LLC
+// Copyright 2021 Signal Messenger, LLC
// SPDX-License-Identifier: AGPL-3.0-only
import React from 'react';
diff --git a/ts/components/AddGroupMemberErrorDialog.stories.tsx b/ts/components/AddGroupMemberErrorDialog.stories.tsx
index 64f73f5fe..9ced0f47f 100644
--- a/ts/components/AddGroupMemberErrorDialog.stories.tsx
+++ b/ts/components/AddGroupMemberErrorDialog.stories.tsx
@@ -1,4 +1,4 @@
-// Copyright 2021-2022 Signal Messenger, LLC
+// Copyright 2021 Signal Messenger, LLC
// SPDX-License-Identifier: AGPL-3.0-only
import React from 'react';
diff --git a/ts/components/AddGroupMemberErrorDialog.tsx b/ts/components/AddGroupMemberErrorDialog.tsx
index 673b20e2d..7eb5ec927 100644
--- a/ts/components/AddGroupMemberErrorDialog.tsx
+++ b/ts/components/AddGroupMemberErrorDialog.tsx
@@ -1,4 +1,4 @@
-// Copyright 2021-2022 Signal Messenger, LLC
+// Copyright 2021 Signal Messenger, LLC
// SPDX-License-Identifier: AGPL-3.0-only
import type { ReactNode } from 'react';
diff --git a/ts/components/App.tsx b/ts/components/App.tsx
index bbec517c0..ad4f0eba0 100644
--- a/ts/components/App.tsx
+++ b/ts/components/App.tsx
@@ -1,4 +1,4 @@
-// Copyright 2021-2022 Signal Messenger, LLC
+// Copyright 2021 Signal Messenger, LLC
// SPDX-License-Identifier: AGPL-3.0-only
import React, { useEffect } from 'react';
diff --git a/ts/components/Avatar.stories.tsx b/ts/components/Avatar.stories.tsx
index d8d8edfc0..ec29c5cad 100644
--- a/ts/components/Avatar.stories.tsx
+++ b/ts/components/Avatar.stories.tsx
@@ -1,4 +1,4 @@
-// Copyright 2020-2022 Signal Messenger, LLC
+// Copyright 2020 Signal Messenger, LLC
// SPDX-License-Identifier: AGPL-3.0-only
import type { Meta, Story } from '@storybook/react';
diff --git a/ts/components/Avatar.tsx b/ts/components/Avatar.tsx
index 0c3056295..9169e21e8 100644
--- a/ts/components/Avatar.tsx
+++ b/ts/components/Avatar.tsx
@@ -1,4 +1,4 @@
-// Copyright 2018-2022 Signal Messenger, LLC
+// Copyright 2018 Signal Messenger, LLC
// SPDX-License-Identifier: AGPL-3.0-only
import type { CSSProperties, MouseEvent, ReactChild, ReactNode } from 'react';
diff --git a/ts/components/AvatarPopup.stories.tsx b/ts/components/AvatarPopup.stories.tsx
index 2caf3c046..5b032081d 100644
--- a/ts/components/AvatarPopup.stories.tsx
+++ b/ts/components/AvatarPopup.stories.tsx
@@ -1,4 +1,4 @@
-// Copyright 2020-2021 Signal Messenger, LLC
+// Copyright 2020 Signal Messenger, LLC
// SPDX-License-Identifier: AGPL-3.0-only
import * as React from 'react';
diff --git a/ts/components/AvatarPopup.tsx b/ts/components/AvatarPopup.tsx
index 9dbc8e305..a655614b6 100644
--- a/ts/components/AvatarPopup.tsx
+++ b/ts/components/AvatarPopup.tsx
@@ -1,4 +1,4 @@
-// Copyright 2019-2021 Signal Messenger, LLC
+// Copyright 2019 Signal Messenger, LLC
// SPDX-License-Identifier: AGPL-3.0-only
import * as React from 'react';
diff --git a/ts/components/CallBackgroundBlur.tsx b/ts/components/CallBackgroundBlur.tsx
index 2f62667f0..163815847 100644
--- a/ts/components/CallBackgroundBlur.tsx
+++ b/ts/components/CallBackgroundBlur.tsx
@@ -1,4 +1,4 @@
-// Copyright 2020-2021 Signal Messenger, LLC
+// Copyright 2020 Signal Messenger, LLC
// SPDX-License-Identifier: AGPL-3.0-only
import React from 'react';
diff --git a/ts/components/CallManager.stories.tsx b/ts/components/CallManager.stories.tsx
index c036187e0..e0716be0d 100644
--- a/ts/components/CallManager.stories.tsx
+++ b/ts/components/CallManager.stories.tsx
@@ -1,4 +1,4 @@
-// Copyright 2020-2022 Signal Messenger, LLC
+// Copyright 2020 Signal Messenger, LLC
// SPDX-License-Identifier: AGPL-3.0-only
import * as React from 'react';
diff --git a/ts/components/CallManager.tsx b/ts/components/CallManager.tsx
index e73cfa162..6ad08223f 100644
--- a/ts/components/CallManager.tsx
+++ b/ts/components/CallManager.tsx
@@ -1,4 +1,4 @@
-// Copyright 2020-2022 Signal Messenger, LLC
+// Copyright 2020 Signal Messenger, LLC
// SPDX-License-Identifier: AGPL-3.0-only
import React, { useCallback, useEffect } from 'react';
diff --git a/ts/components/CallNeedPermissionScreen.tsx b/ts/components/CallNeedPermissionScreen.tsx
index d7d01ca94..5dd138997 100644
--- a/ts/components/CallNeedPermissionScreen.tsx
+++ b/ts/components/CallNeedPermissionScreen.tsx
@@ -1,4 +1,4 @@
-// Copyright 2020-2021 Signal Messenger, LLC
+// Copyright 2020 Signal Messenger, LLC
// SPDX-License-Identifier: AGPL-3.0-only
import React, { useRef, useEffect } from 'react';
diff --git a/ts/components/CallScreen.stories.tsx b/ts/components/CallScreen.stories.tsx
index 0b1d397da..a3f32532c 100644
--- a/ts/components/CallScreen.stories.tsx
+++ b/ts/components/CallScreen.stories.tsx
@@ -1,4 +1,4 @@
-// Copyright 2020-2022 Signal Messenger, LLC
+// Copyright 2020 Signal Messenger, LLC
// SPDX-License-Identifier: AGPL-3.0-only
import * as React from 'react';
diff --git a/ts/components/CallScreen.tsx b/ts/components/CallScreen.tsx
index d4a5d2b62..f14bd2a57 100644
--- a/ts/components/CallScreen.tsx
+++ b/ts/components/CallScreen.tsx
@@ -1,4 +1,4 @@
-// Copyright 2020-2022 Signal Messenger, LLC
+// Copyright 2020 Signal Messenger, LLC
// SPDX-License-Identifier: AGPL-3.0-only
import type { ReactNode } from 'react';
diff --git a/ts/components/CallingButton.stories.tsx b/ts/components/CallingButton.stories.tsx
index 969b6658c..6f0fec299 100644
--- a/ts/components/CallingButton.stories.tsx
+++ b/ts/components/CallingButton.stories.tsx
@@ -1,4 +1,4 @@
-// Copyright 2020-2021 Signal Messenger, LLC
+// Copyright 2020 Signal Messenger, LLC
// SPDX-License-Identifier: AGPL-3.0-only
import * as React from 'react';
diff --git a/ts/components/CallingButton.tsx b/ts/components/CallingButton.tsx
index 5d551b41a..032cca55f 100644
--- a/ts/components/CallingButton.tsx
+++ b/ts/components/CallingButton.tsx
@@ -1,4 +1,4 @@
-// Copyright 2020-2021 Signal Messenger, LLC
+// Copyright 2020 Signal Messenger, LLC
// SPDX-License-Identifier: AGPL-3.0-only
import React, { useMemo } from 'react';
diff --git a/ts/components/CallingDeviceSelection.tsx b/ts/components/CallingDeviceSelection.tsx
index 9ec6da791..4f137d2ba 100644
--- a/ts/components/CallingDeviceSelection.tsx
+++ b/ts/components/CallingDeviceSelection.tsx
@@ -1,4 +1,4 @@
-// Copyright 2020-2021 Signal Messenger, LLC
+// Copyright 2020 Signal Messenger, LLC
// SPDX-License-Identifier: AGPL-3.0-only
import * as React from 'react';
diff --git a/ts/components/CallingHeader.stories.tsx b/ts/components/CallingHeader.stories.tsx
index 2146f806a..e00400db2 100644
--- a/ts/components/CallingHeader.stories.tsx
+++ b/ts/components/CallingHeader.stories.tsx
@@ -1,4 +1,4 @@
-// Copyright 2020-2021 Signal Messenger, LLC
+// Copyright 2020 Signal Messenger, LLC
// SPDX-License-Identifier: AGPL-3.0-only
import * as React from 'react';
diff --git a/ts/components/CallingHeader.tsx b/ts/components/CallingHeader.tsx
index d7d4a6d96..3868e6047 100644
--- a/ts/components/CallingHeader.tsx
+++ b/ts/components/CallingHeader.tsx
@@ -1,4 +1,4 @@
-// Copyright 2020-2021 Signal Messenger, LLC
+// Copyright 2020 Signal Messenger, LLC
// SPDX-License-Identifier: AGPL-3.0-only
import type { ReactNode } from 'react';
diff --git a/ts/components/CallingLobby.stories.tsx b/ts/components/CallingLobby.stories.tsx
index 320ba5516..46d2f73a3 100644
--- a/ts/components/CallingLobby.stories.tsx
+++ b/ts/components/CallingLobby.stories.tsx
@@ -1,4 +1,4 @@
-// Copyright 2020-2022 Signal Messenger, LLC
+// Copyright 2020 Signal Messenger, LLC
// SPDX-License-Identifier: AGPL-3.0-only
import * as React from 'react';
diff --git a/ts/components/CallingLobby.tsx b/ts/components/CallingLobby.tsx
index 2f2079174..fee91ada6 100644
--- a/ts/components/CallingLobby.tsx
+++ b/ts/components/CallingLobby.tsx
@@ -1,4 +1,4 @@
-// Copyright 2020-2022 Signal Messenger, LLC
+// Copyright 2020 Signal Messenger, LLC
// SPDX-License-Identifier: AGPL-3.0-only
import React from 'react';
diff --git a/ts/components/CallingParticipantsList.stories.tsx b/ts/components/CallingParticipantsList.stories.tsx
index b4db4e046..3477589b2 100644
--- a/ts/components/CallingParticipantsList.stories.tsx
+++ b/ts/components/CallingParticipantsList.stories.tsx
@@ -1,4 +1,4 @@
-// Copyright 2020-2021 Signal Messenger, LLC
+// Copyright 2020 Signal Messenger, LLC
// SPDX-License-Identifier: AGPL-3.0-only
import * as React from 'react';
diff --git a/ts/components/CallingParticipantsList.tsx b/ts/components/CallingParticipantsList.tsx
index 09fbbd31e..1dc7e2a0f 100644
--- a/ts/components/CallingParticipantsList.tsx
+++ b/ts/components/CallingParticipantsList.tsx
@@ -1,4 +1,4 @@
-// Copyright 2020-2022 Signal Messenger, LLC
+// Copyright 2020 Signal Messenger, LLC
// SPDX-License-Identifier: AGPL-3.0-only
/* eslint-disable react/no-array-index-key */
diff --git a/ts/components/CallingPip.stories.tsx b/ts/components/CallingPip.stories.tsx
index aefd11b2a..1049e597a 100644
--- a/ts/components/CallingPip.stories.tsx
+++ b/ts/components/CallingPip.stories.tsx
@@ -1,4 +1,4 @@
-// Copyright 2020-2022 Signal Messenger, LLC
+// Copyright 2020 Signal Messenger, LLC
// SPDX-License-Identifier: AGPL-3.0-only
import * as React from 'react';
diff --git a/ts/components/CallingPip.tsx b/ts/components/CallingPip.tsx
index 0385bd255..f00b842d3 100644
--- a/ts/components/CallingPip.tsx
+++ b/ts/components/CallingPip.tsx
@@ -1,4 +1,4 @@
-// Copyright 2020-2022 Signal Messenger, LLC
+// Copyright 2020 Signal Messenger, LLC
// SPDX-License-Identifier: AGPL-3.0-only
import React from 'react';
diff --git a/ts/components/CallingPipRemoteVideo.tsx b/ts/components/CallingPipRemoteVideo.tsx
index bb3c2f3b3..be89a5e6d 100644
--- a/ts/components/CallingPipRemoteVideo.tsx
+++ b/ts/components/CallingPipRemoteVideo.tsx
@@ -1,4 +1,4 @@
-// Copyright 2020-2022 Signal Messenger, LLC
+// Copyright 2020 Signal Messenger, LLC
// SPDX-License-Identifier: AGPL-3.0-only
import React, { useMemo, useEffect } from 'react';
diff --git a/ts/components/CallingToastManager.tsx b/ts/components/CallingToastManager.tsx
index fca85d930..390bfc2b4 100644
--- a/ts/components/CallingToastManager.tsx
+++ b/ts/components/CallingToastManager.tsx
@@ -1,4 +1,4 @@
-// Copyright 2020-2022 Signal Messenger, LLC
+// Copyright 2020 Signal Messenger, LLC
// SPDX-License-Identifier: AGPL-3.0-only
import React, { useCallback, useEffect, useRef, useState } from 'react';
diff --git a/ts/components/CompositionArea.stories.tsx b/ts/components/CompositionArea.stories.tsx
index 770e644f5..39d6df176 100644
--- a/ts/components/CompositionArea.stories.tsx
+++ b/ts/components/CompositionArea.stories.tsx
@@ -1,4 +1,4 @@
-// Copyright 2020-2021 Signal Messenger, LLC
+// Copyright 2020 Signal Messenger, LLC
// SPDX-License-Identifier: AGPL-3.0-only
import type { DecoratorFunction } from '@storybook/addons';
diff --git a/ts/components/CompositionArea.tsx b/ts/components/CompositionArea.tsx
index 139711e7e..f0bcf0947 100644
--- a/ts/components/CompositionArea.tsx
+++ b/ts/components/CompositionArea.tsx
@@ -1,4 +1,4 @@
-// Copyright 2019-2022 Signal Messenger, LLC
+// Copyright 2019 Signal Messenger, LLC
// SPDX-License-Identifier: AGPL-3.0-only
import React, { useCallback, useEffect, useRef, useState } from 'react';
diff --git a/ts/components/CompositionInput.stories.tsx b/ts/components/CompositionInput.stories.tsx
index ff3c96779..883c0caab 100644
--- a/ts/components/CompositionInput.stories.tsx
+++ b/ts/components/CompositionInput.stories.tsx
@@ -1,4 +1,4 @@
-// Copyright 2020-2021 Signal Messenger, LLC
+// Copyright 2020 Signal Messenger, LLC
// SPDX-License-Identifier: AGPL-3.0-only
import * as React from 'react';
diff --git a/ts/components/CompositionInput.tsx b/ts/components/CompositionInput.tsx
index 244f02d4d..9d1ccefd4 100644
--- a/ts/components/CompositionInput.tsx
+++ b/ts/components/CompositionInput.tsx
@@ -1,4 +1,4 @@
-// Copyright 2019-2022 Signal Messenger, LLC
+// Copyright 2019 Signal Messenger, LLC
// SPDX-License-Identifier: AGPL-3.0-only
import * as React from 'react';
diff --git a/ts/components/ConfirmationDialog.tsx b/ts/components/ConfirmationDialog.tsx
index b75786c38..3695b9de7 100644
--- a/ts/components/ConfirmationDialog.tsx
+++ b/ts/components/ConfirmationDialog.tsx
@@ -1,4 +1,4 @@
-// Copyright 2019-2021 Signal Messenger, LLC
+// Copyright 2019 Signal Messenger, LLC
// SPDX-License-Identifier: AGPL-3.0-only
import type { MouseEvent } from 'react';
diff --git a/ts/components/ContactPills.tsx b/ts/components/ContactPills.tsx
index 63d243d30..c59900088 100644
--- a/ts/components/ContactPills.tsx
+++ b/ts/components/ContactPills.tsx
@@ -1,4 +1,4 @@
-// Copyright 2021-2022 Signal Messenger, LLC
+// Copyright 2021 Signal Messenger, LLC
// SPDX-License-Identifier: AGPL-3.0-only
import type { ReactNode } from 'react';
diff --git a/ts/components/ContextMenu.stories.tsx b/ts/components/ContextMenu.stories.tsx
index 99f9db985..5dc2b0383 100644
--- a/ts/components/ContextMenu.stories.tsx
+++ b/ts/components/ContextMenu.stories.tsx
@@ -1,4 +1,4 @@
-// Copyright 2021-2022 Signal Messenger, LLC
+// Copyright 2021 Signal Messenger, LLC
// SPDX-License-Identifier: AGPL-3.0-only
import React from 'react';
diff --git a/ts/components/ContextMenu.tsx b/ts/components/ContextMenu.tsx
index 482b095c5..4a6ee6235 100644
--- a/ts/components/ContextMenu.tsx
+++ b/ts/components/ContextMenu.tsx
@@ -1,4 +1,4 @@
-// Copyright 2018-2022 Signal Messenger, LLC
+// Copyright 2018 Signal Messenger, LLC
// SPDX-License-Identifier: AGPL-3.0-only
import type { KeyboardEvent, ReactNode } from 'react';
diff --git a/ts/components/ConversationList.stories.tsx b/ts/components/ConversationList.stories.tsx
index 130a622c7..682a45731 100644
--- a/ts/components/ConversationList.stories.tsx
+++ b/ts/components/ConversationList.stories.tsx
@@ -1,4 +1,4 @@
-// Copyright 2021-2022 Signal Messenger, LLC
+// Copyright 2021 Signal Messenger, LLC
// SPDX-License-Identifier: AGPL-3.0-only
import React, { useContext } from 'react';
diff --git a/ts/components/DebugLogWindow.tsx b/ts/components/DebugLogWindow.tsx
index f73cd7567..6b8cdd035 100644
--- a/ts/components/DebugLogWindow.tsx
+++ b/ts/components/DebugLogWindow.tsx
@@ -1,4 +1,4 @@
-// Copyright 2015-2021 Signal Messenger, LLC
+// Copyright 2015 Signal Messenger, LLC
// SPDX-License-Identifier: AGPL-3.0-only
import type { MouseEvent } from 'react';
diff --git a/ts/components/DialogExpiredBuild.stories.tsx b/ts/components/DialogExpiredBuild.stories.tsx
index 47ea82d8e..b4f98cd3b 100644
--- a/ts/components/DialogExpiredBuild.stories.tsx
+++ b/ts/components/DialogExpiredBuild.stories.tsx
@@ -1,4 +1,4 @@
-// Copyright 2020-2021 Signal Messenger, LLC
+// Copyright 2020 Signal Messenger, LLC
// SPDX-License-Identifier: AGPL-3.0-only
import * as React from 'react';
diff --git a/ts/components/DialogExpiredBuild.tsx b/ts/components/DialogExpiredBuild.tsx
index 1deb50596..895cc125e 100644
--- a/ts/components/DialogExpiredBuild.tsx
+++ b/ts/components/DialogExpiredBuild.tsx
@@ -1,4 +1,4 @@
-// Copyright 2020-2021 Signal Messenger, LLC
+// Copyright 2020 Signal Messenger, LLC
// SPDX-License-Identifier: AGPL-3.0-only
import React from 'react';
diff --git a/ts/components/DialogNetworkStatus.stories.tsx b/ts/components/DialogNetworkStatus.stories.tsx
index 6c3a161ad..9bcf717e1 100644
--- a/ts/components/DialogNetworkStatus.stories.tsx
+++ b/ts/components/DialogNetworkStatus.stories.tsx
@@ -1,4 +1,4 @@
-// Copyright 2020-2021 Signal Messenger, LLC
+// Copyright 2020 Signal Messenger, LLC
// SPDX-License-Identifier: AGPL-3.0-only
import * as React from 'react';
diff --git a/ts/components/DialogNetworkStatus.tsx b/ts/components/DialogNetworkStatus.tsx
index 3eb0c2a56..1f3228913 100644
--- a/ts/components/DialogNetworkStatus.tsx
+++ b/ts/components/DialogNetworkStatus.tsx
@@ -1,4 +1,4 @@
-// Copyright 2020-2022 Signal Messenger, LLC
+// Copyright 2020 Signal Messenger, LLC
// SPDX-License-Identifier: AGPL-3.0-only
import React, { useEffect } from 'react';
diff --git a/ts/components/DialogRelink.stories.tsx b/ts/components/DialogRelink.stories.tsx
index edba61839..b8f0cab41 100644
--- a/ts/components/DialogRelink.stories.tsx
+++ b/ts/components/DialogRelink.stories.tsx
@@ -1,4 +1,4 @@
-// Copyright 2020-2021 Signal Messenger, LLC
+// Copyright 2020 Signal Messenger, LLC
// SPDX-License-Identifier: AGPL-3.0-only
import * as React from 'react';
diff --git a/ts/components/DialogRelink.tsx b/ts/components/DialogRelink.tsx
index 472b4b9a6..880c694a5 100644
--- a/ts/components/DialogRelink.tsx
+++ b/ts/components/DialogRelink.tsx
@@ -1,4 +1,4 @@
-// Copyright 2020-2021 Signal Messenger, LLC
+// Copyright 2020 Signal Messenger, LLC
// SPDX-License-Identifier: AGPL-3.0-only
import React from 'react';
diff --git a/ts/components/DialogUpdate.stories.tsx b/ts/components/DialogUpdate.stories.tsx
index df52f0dac..74d53f615 100644
--- a/ts/components/DialogUpdate.stories.tsx
+++ b/ts/components/DialogUpdate.stories.tsx
@@ -1,4 +1,4 @@
-// Copyright 2020-2021 Signal Messenger, LLC
+// Copyright 2020 Signal Messenger, LLC
// SPDX-License-Identifier: AGPL-3.0-only
import * as React from 'react';
diff --git a/ts/components/DialogUpdate.tsx b/ts/components/DialogUpdate.tsx
index 895cfdab8..ba4e21e50 100644
--- a/ts/components/DialogUpdate.tsx
+++ b/ts/components/DialogUpdate.tsx
@@ -1,4 +1,4 @@
-// Copyright 2020-2021 Signal Messenger, LLC
+// Copyright 2020 Signal Messenger, LLC
// SPDX-License-Identifier: AGPL-3.0-only
import React from 'react';
diff --git a/ts/components/DirectCallRemoteParticipant.tsx b/ts/components/DirectCallRemoteParticipant.tsx
index b88ab9b24..edc51e5d4 100644
--- a/ts/components/DirectCallRemoteParticipant.tsx
+++ b/ts/components/DirectCallRemoteParticipant.tsx
@@ -1,4 +1,4 @@
-// Copyright 2020-2021 Signal Messenger, LLC
+// Copyright 2020 Signal Messenger, LLC
// SPDX-License-Identifier: AGPL-3.0-only
import React, { useRef, useEffect } from 'react';
diff --git a/ts/components/DisappearingTimeDialog.tsx b/ts/components/DisappearingTimeDialog.tsx
index 89a33640c..eb1a37233 100644
--- a/ts/components/DisappearingTimeDialog.tsx
+++ b/ts/components/DisappearingTimeDialog.tsx
@@ -1,4 +1,4 @@
-// Copyright 2021-2022 Signal Messenger, LLC
+// Copyright 2021 Signal Messenger, LLC
// SPDX-License-Identifier: AGPL-3.0-only
import React, { useState } from 'react';
diff --git a/ts/components/ErrorModal.tsx b/ts/components/ErrorModal.tsx
index 1e9b8b5bf..06448a85a 100644
--- a/ts/components/ErrorModal.tsx
+++ b/ts/components/ErrorModal.tsx
@@ -1,4 +1,4 @@
-// Copyright 2020-2021 Signal Messenger, LLC
+// Copyright 2020 Signal Messenger, LLC
// SPDX-License-Identifier: AGPL-3.0-only
import * as React from 'react';
diff --git a/ts/components/ForwardMessageModal.tsx b/ts/components/ForwardMessageModal.tsx
index 0c8122687..fc6795b49 100644
--- a/ts/components/ForwardMessageModal.tsx
+++ b/ts/components/ForwardMessageModal.tsx
@@ -1,4 +1,4 @@
-// Copyright 2021-2022 Signal Messenger, LLC
+// Copyright 2021 Signal Messenger, LLC
// SPDX-License-Identifier: AGPL-3.0-only
import React, {
diff --git a/ts/components/GlobalAudioContext.tsx b/ts/components/GlobalAudioContext.tsx
index 3e40f6504..e2bcaf125 100644
--- a/ts/components/GlobalAudioContext.tsx
+++ b/ts/components/GlobalAudioContext.tsx
@@ -1,4 +1,4 @@
-// Copyright 2021-2022 Signal Messenger, LLC
+// Copyright 2021 Signal Messenger, LLC
// SPDX-License-Identifier: AGPL-3.0-only
import * as React from 'react';
diff --git a/ts/components/GroupCallOverflowArea.stories.tsx b/ts/components/GroupCallOverflowArea.stories.tsx
index 053edfe64..2e32834ef 100644
--- a/ts/components/GroupCallOverflowArea.stories.tsx
+++ b/ts/components/GroupCallOverflowArea.stories.tsx
@@ -1,4 +1,4 @@
-// Copyright 2021-2022 Signal Messenger, LLC
+// Copyright 2021 Signal Messenger, LLC
// SPDX-License-Identifier: AGPL-3.0-only
import React from 'react';
diff --git a/ts/components/GroupCallOverflowArea.tsx b/ts/components/GroupCallOverflowArea.tsx
index 4424c80eb..73be6fe80 100644
--- a/ts/components/GroupCallOverflowArea.tsx
+++ b/ts/components/GroupCallOverflowArea.tsx
@@ -1,4 +1,4 @@
-// Copyright 2021-2022 Signal Messenger, LLC
+// Copyright 2021 Signal Messenger, LLC
// SPDX-License-Identifier: AGPL-3.0-only
import type { ReactElement } from 'react';
diff --git a/ts/components/GroupCallRemoteParticipant.stories.tsx b/ts/components/GroupCallRemoteParticipant.stories.tsx
index 6279945a5..f118076b8 100644
--- a/ts/components/GroupCallRemoteParticipant.stories.tsx
+++ b/ts/components/GroupCallRemoteParticipant.stories.tsx
@@ -1,4 +1,4 @@
-// Copyright 2020-2022 Signal Messenger, LLC
+// Copyright 2020 Signal Messenger, LLC
// SPDX-License-Identifier: AGPL-3.0-only
import * as React from 'react';
diff --git a/ts/components/GroupCallRemoteParticipant.tsx b/ts/components/GroupCallRemoteParticipant.tsx
index e95ec79e9..e2ea2de87 100644
--- a/ts/components/GroupCallRemoteParticipant.tsx
+++ b/ts/components/GroupCallRemoteParticipant.tsx
@@ -1,4 +1,4 @@
-// Copyright 2020-2022 Signal Messenger, LLC
+// Copyright 2020 Signal Messenger, LLC
// SPDX-License-Identifier: AGPL-3.0-only
import type { CSSProperties } from 'react';
diff --git a/ts/components/GroupCallRemoteParticipants.tsx b/ts/components/GroupCallRemoteParticipants.tsx
index 551839c1a..e9d9a1ed9 100644
--- a/ts/components/GroupCallRemoteParticipants.tsx
+++ b/ts/components/GroupCallRemoteParticipants.tsx
@@ -1,4 +1,4 @@
-// Copyright 2020-2022 Signal Messenger, LLC
+// Copyright 2020 Signal Messenger, LLC
// SPDX-License-Identifier: AGPL-3.0-only
import React, { useCallback, useState, useMemo, useEffect } from 'react';
diff --git a/ts/components/GroupV1MigrationDialog.stories.tsx b/ts/components/GroupV1MigrationDialog.stories.tsx
index ed53a1768..e86725e4e 100644
--- a/ts/components/GroupV1MigrationDialog.stories.tsx
+++ b/ts/components/GroupV1MigrationDialog.stories.tsx
@@ -1,4 +1,4 @@
-// Copyright 2020-2021 Signal Messenger, LLC
+// Copyright 2020 Signal Messenger, LLC
// SPDX-License-Identifier: AGPL-3.0-only
import * as React from 'react';
diff --git a/ts/components/GroupV1MigrationDialog.tsx b/ts/components/GroupV1MigrationDialog.tsx
index c05cf7974..a85cbeffb 100644
--- a/ts/components/GroupV1MigrationDialog.tsx
+++ b/ts/components/GroupV1MigrationDialog.tsx
@@ -1,4 +1,4 @@
-// Copyright 2019-2021 Signal Messenger, LLC
+// Copyright 2019 Signal Messenger, LLC
// SPDX-License-Identifier: AGPL-3.0-only
import * as React from 'react';
diff --git a/ts/components/InContactsIcon.tsx b/ts/components/InContactsIcon.tsx
index 7edc91888..c21bde39f 100644
--- a/ts/components/InContactsIcon.tsx
+++ b/ts/components/InContactsIcon.tsx
@@ -1,4 +1,4 @@
-// Copyright 2020-2021 Signal Messenger, LLC
+// Copyright 2020 Signal Messenger, LLC
// SPDX-License-Identifier: AGPL-3.0-only
import React from 'react';
diff --git a/ts/components/IncomingCallBar.stories.tsx b/ts/components/IncomingCallBar.stories.tsx
index e07c36425..0228afebc 100644
--- a/ts/components/IncomingCallBar.stories.tsx
+++ b/ts/components/IncomingCallBar.stories.tsx
@@ -1,4 +1,4 @@
-// Copyright 2020-2021 Signal Messenger, LLC
+// Copyright 2020 Signal Messenger, LLC
// SPDX-License-Identifier: AGPL-3.0-only
import * as React from 'react';
diff --git a/ts/components/IncomingCallBar.tsx b/ts/components/IncomingCallBar.tsx
index 9e80a33b4..7c4b75e5b 100644
--- a/ts/components/IncomingCallBar.tsx
+++ b/ts/components/IncomingCallBar.tsx
@@ -1,4 +1,4 @@
-// Copyright 2020-2021 Signal Messenger, LLC
+// Copyright 2020 Signal Messenger, LLC
// SPDX-License-Identifier: AGPL-3.0-only
import type { ReactChild } from 'react';
diff --git a/ts/components/Input.stories.tsx b/ts/components/Input.stories.tsx
index c8c68bb6d..370358fa5 100644
--- a/ts/components/Input.stories.tsx
+++ b/ts/components/Input.stories.tsx
@@ -1,4 +1,4 @@
-// Copyright 2021-2022 Signal Messenger, LLC
+// Copyright 2021 Signal Messenger, LLC
// SPDX-License-Identifier: AGPL-3.0-only
import React, { useState } from 'react';
diff --git a/ts/components/Input.tsx b/ts/components/Input.tsx
index 6b679d83c..30b0890e8 100644
--- a/ts/components/Input.tsx
+++ b/ts/components/Input.tsx
@@ -1,4 +1,4 @@
-// Copyright 2021-2022 Signal Messenger, LLC
+// Copyright 2021 Signal Messenger, LLC
// SPDX-License-Identifier: AGPL-3.0-only
import type { ClipboardEvent, ReactNode } from 'react';
diff --git a/ts/components/Intl.tsx b/ts/components/Intl.tsx
index e77b4ecda..23953a140 100644
--- a/ts/components/Intl.tsx
+++ b/ts/components/Intl.tsx
@@ -1,4 +1,4 @@
-// Copyright 2018-2021 Signal Messenger, LLC
+// Copyright 2018 Signal Messenger, LLC
// SPDX-License-Identifier: AGPL-3.0-only
import React from 'react';
diff --git a/ts/components/LeftPane.stories.tsx b/ts/components/LeftPane.stories.tsx
index 3a8d4cd48..d2b39d302 100644
--- a/ts/components/LeftPane.stories.tsx
+++ b/ts/components/LeftPane.stories.tsx
@@ -1,4 +1,4 @@
-// Copyright 2020-2022 Signal Messenger, LLC
+// Copyright 2020 Signal Messenger, LLC
// SPDX-License-Identifier: AGPL-3.0-only
import * as React from 'react';
diff --git a/ts/components/LeftPane.tsx b/ts/components/LeftPane.tsx
index 83a0ed056..a58cf3cef 100644
--- a/ts/components/LeftPane.tsx
+++ b/ts/components/LeftPane.tsx
@@ -1,4 +1,4 @@
-// Copyright 2019-2022 Signal Messenger, LLC
+// Copyright 2019 Signal Messenger, LLC
// SPDX-License-Identifier: AGPL-3.0-only
import React, { useEffect, useCallback, useMemo, useState } from 'react';
diff --git a/ts/components/LeftPaneSearchInput.tsx b/ts/components/LeftPaneSearchInput.tsx
index 9cf432ddd..4cfb82c73 100644
--- a/ts/components/LeftPaneSearchInput.tsx
+++ b/ts/components/LeftPaneSearchInput.tsx
@@ -1,4 +1,4 @@
-// Copyright 2021-2022 Signal Messenger, LLC
+// Copyright 2021 Signal Messenger, LLC
// SPDX-License-Identifier: AGPL-3.0-only
import React, { useEffect, useRef } from 'react';
diff --git a/ts/components/Lightbox.stories.tsx b/ts/components/Lightbox.stories.tsx
index b37874156..ceda8fa66 100644
--- a/ts/components/Lightbox.stories.tsx
+++ b/ts/components/Lightbox.stories.tsx
@@ -1,4 +1,4 @@
-// Copyright 2020-2021 Signal Messenger, LLC
+// Copyright 2020 Signal Messenger, LLC
// SPDX-License-Identifier: AGPL-3.0-only
import * as React from 'react';
diff --git a/ts/components/Lightbox.tsx b/ts/components/Lightbox.tsx
index fc4454e6a..89759fcfb 100644
--- a/ts/components/Lightbox.tsx
+++ b/ts/components/Lightbox.tsx
@@ -1,4 +1,4 @@
-// Copyright 2018-2022 Signal Messenger, LLC
+// Copyright 2018 Signal Messenger, LLC
// SPDX-License-Identifier: AGPL-3.0-only
import type { ReactNode } from 'react';
diff --git a/ts/components/MainHeader.stories.tsx b/ts/components/MainHeader.stories.tsx
index 48f64a928..04fdd9773 100644
--- a/ts/components/MainHeader.stories.tsx
+++ b/ts/components/MainHeader.stories.tsx
@@ -1,4 +1,4 @@
-// Copyright 2021-2022 Signal Messenger, LLC
+// Copyright 2021 Signal Messenger, LLC
// SPDX-License-Identifier: AGPL-3.0-only
import type { Meta, Story } from '@storybook/react';
diff --git a/ts/components/MainHeader.tsx b/ts/components/MainHeader.tsx
index d26fd3e29..d91b7735b 100644
--- a/ts/components/MainHeader.tsx
+++ b/ts/components/MainHeader.tsx
@@ -1,4 +1,4 @@
-// Copyright 2018-2022 Signal Messenger, LLC
+// Copyright 2018 Signal Messenger, LLC
// SPDX-License-Identifier: AGPL-3.0-only
import React from 'react';
diff --git a/ts/components/MediaEditor.tsx b/ts/components/MediaEditor.tsx
index f34d02aea..ce63ff047 100644
--- a/ts/components/MediaEditor.tsx
+++ b/ts/components/MediaEditor.tsx
@@ -1,4 +1,4 @@
-// Copyright 2021-2022 Signal Messenger, LLC
+// Copyright 2021 Signal Messenger, LLC
// SPDX-License-Identifier: AGPL-3.0-only
import Measure from 'react-measure';
diff --git a/ts/components/MediaQualitySelector.tsx b/ts/components/MediaQualitySelector.tsx
index 51cb38c75..be78889e6 100644
--- a/ts/components/MediaQualitySelector.tsx
+++ b/ts/components/MediaQualitySelector.tsx
@@ -1,4 +1,4 @@
-// Copyright 2018-2021 Signal Messenger, LLC
+// Copyright 2018 Signal Messenger, LLC
// SPDX-License-Identifier: AGPL-3.0-only
import type { KeyboardEvent } from 'react';
diff --git a/ts/components/Modal.tsx b/ts/components/Modal.tsx
index f58860c60..749ae8cd2 100644
--- a/ts/components/Modal.tsx
+++ b/ts/components/Modal.tsx
@@ -1,4 +1,4 @@
-// Copyright 2021-2022 Signal Messenger, LLC
+// Copyright 2021 Signal Messenger, LLC
// SPDX-License-Identifier: AGPL-3.0-only
import type { ReactElement, ReactNode } from 'react';
diff --git a/ts/components/ModalHost.tsx b/ts/components/ModalHost.tsx
index edcce8043..5c9b8e36b 100644
--- a/ts/components/ModalHost.tsx
+++ b/ts/components/ModalHost.tsx
@@ -1,4 +1,4 @@
-// Copyright 2019-2022 Signal Messenger, LLC
+// Copyright 2019 Signal Messenger, LLC
// SPDX-License-Identifier: AGPL-3.0-only
import React, { useContext, useEffect } from 'react';
diff --git a/ts/components/Preferences.tsx b/ts/components/Preferences.tsx
index b966dbf0a..9fae24ded 100644
--- a/ts/components/Preferences.tsx
+++ b/ts/components/Preferences.tsx
@@ -1,4 +1,4 @@
-// Copyright 2021-2022 Signal Messenger, LLC
+// Copyright 2021 Signal Messenger, LLC
// SPDX-License-Identifier: AGPL-3.0-only
import type { ReactNode } from 'react';
diff --git a/ts/components/ProfileEditor.tsx b/ts/components/ProfileEditor.tsx
index 78e63c1aa..fc7c9020b 100644
--- a/ts/components/ProfileEditor.tsx
+++ b/ts/components/ProfileEditor.tsx
@@ -1,4 +1,4 @@
-// Copyright 2021-2022 Signal Messenger, LLC
+// Copyright 2021 Signal Messenger, LLC
// SPDX-License-Identifier: AGPL-3.0-only
import React, { useCallback, useEffect, useRef, useState } from 'react';
diff --git a/ts/components/ProgressDialog.tsx b/ts/components/ProgressDialog.tsx
index 329a8d53b..7430c11a5 100644
--- a/ts/components/ProgressDialog.tsx
+++ b/ts/components/ProgressDialog.tsx
@@ -1,4 +1,4 @@
-// Copyright 2020-2021 Signal Messenger, LLC
+// Copyright 2020 Signal Messenger, LLC
// SPDX-License-Identifier: AGPL-3.0-only
import * as React from 'react';
diff --git a/ts/components/ReactionPickerPicker.tsx b/ts/components/ReactionPickerPicker.tsx
index b5e8a2579..1416a6d18 100644
--- a/ts/components/ReactionPickerPicker.tsx
+++ b/ts/components/ReactionPickerPicker.tsx
@@ -1,4 +1,4 @@
-// Copyright 2020-2021 Signal Messenger, LLC
+// Copyright 2020 Signal Messenger, LLC
// SPDX-License-Identifier: AGPL-3.0-only
import type { CSSProperties, ReactNode } from 'react';
diff --git a/ts/components/SafetyNumberChangeDialog.stories.tsx b/ts/components/SafetyNumberChangeDialog.stories.tsx
index 83e2c7702..36d84d927 100644
--- a/ts/components/SafetyNumberChangeDialog.stories.tsx
+++ b/ts/components/SafetyNumberChangeDialog.stories.tsx
@@ -1,4 +1,4 @@
-// Copyright 2020-2021 Signal Messenger, LLC
+// Copyright 2020 Signal Messenger, LLC
// SPDX-License-Identifier: AGPL-3.0-only
import * as React from 'react';
diff --git a/ts/components/SafetyNumberChangeDialog.tsx b/ts/components/SafetyNumberChangeDialog.tsx
index 8d2561b49..05b55a134 100644
--- a/ts/components/SafetyNumberChangeDialog.tsx
+++ b/ts/components/SafetyNumberChangeDialog.tsx
@@ -1,4 +1,4 @@
-// Copyright 2020-2021 Signal Messenger, LLC
+// Copyright 2020 Signal Messenger, LLC
// SPDX-License-Identifier: AGPL-3.0-only
import * as React from 'react';
diff --git a/ts/components/SampleMessageBubbles.tsx b/ts/components/SampleMessageBubbles.tsx
index b71a49408..5da193f51 100644
--- a/ts/components/SampleMessageBubbles.tsx
+++ b/ts/components/SampleMessageBubbles.tsx
@@ -1,4 +1,4 @@
-// Copyright 2021-2022 Signal Messenger, LLC
+// Copyright 2021 Signal Messenger, LLC
// SPDX-License-Identifier: AGPL-3.0-only
import type { CSSProperties } from 'react';
diff --git a/ts/components/SearchInput.tsx b/ts/components/SearchInput.tsx
index f25994585..ac595bbfc 100644
--- a/ts/components/SearchInput.tsx
+++ b/ts/components/SearchInput.tsx
@@ -1,4 +1,4 @@
-// Copyright 2021-2022 Signal Messenger, LLC
+// Copyright 2021 Signal Messenger, LLC
// SPDX-License-Identifier: AGPL-3.0-only
import type {
diff --git a/ts/components/Select.tsx b/ts/components/Select.tsx
index aa79e40e6..7ae1df487 100644
--- a/ts/components/Select.tsx
+++ b/ts/components/Select.tsx
@@ -1,4 +1,4 @@
-// Copyright 2021-2022 Signal Messenger, LLC
+// Copyright 2021 Signal Messenger, LLC
// SPDX-License-Identifier: AGPL-3.0-only
import type { ChangeEvent } from 'react';
diff --git a/ts/components/ShortcutGuide.tsx b/ts/components/ShortcutGuide.tsx
index 3c27182a6..cddd1d407 100644
--- a/ts/components/ShortcutGuide.tsx
+++ b/ts/components/ShortcutGuide.tsx
@@ -1,4 +1,4 @@
-// Copyright 2019-2021 Signal Messenger, LLC
+// Copyright 2019 Signal Messenger, LLC
// SPDX-License-Identifier: AGPL-3.0-only
import * as React from 'react';
diff --git a/ts/components/ShortcutGuideModal.tsx b/ts/components/ShortcutGuideModal.tsx
index 7f2fcd81c..aee6f89fb 100644
--- a/ts/components/ShortcutGuideModal.tsx
+++ b/ts/components/ShortcutGuideModal.tsx
@@ -1,4 +1,4 @@
-// Copyright 2019-2022 Signal Messenger, LLC
+// Copyright 2019 Signal Messenger, LLC
// SPDX-License-Identifier: AGPL-3.0-only
import * as React from 'react';
diff --git a/ts/components/Spinner.tsx b/ts/components/Spinner.tsx
index 96094732a..9030a1d33 100644
--- a/ts/components/Spinner.tsx
+++ b/ts/components/Spinner.tsx
@@ -1,4 +1,4 @@
-// Copyright 2019-2021 Signal Messenger, LLC
+// Copyright 2019 Signal Messenger, LLC
// SPDX-License-Identifier: AGPL-3.0-only
import React from 'react';
diff --git a/ts/components/StandaloneRegistration.tsx b/ts/components/StandaloneRegistration.tsx
index b613897fd..2509fe3bd 100644
--- a/ts/components/StandaloneRegistration.tsx
+++ b/ts/components/StandaloneRegistration.tsx
@@ -1,4 +1,4 @@
-// Copyright 2021-2022 Signal Messenger, LLC
+// Copyright 2021 Signal Messenger, LLC
// SPDX-License-Identifier: AGPL-3.0-only
import type { ChangeEvent } from 'react';
diff --git a/ts/components/StopPropagation.tsx b/ts/components/StopPropagation.tsx
index c8b059c56..4453ed241 100644
--- a/ts/components/StopPropagation.tsx
+++ b/ts/components/StopPropagation.tsx
@@ -1,4 +1,4 @@
-// Copyright 2021-2022 Signal Messenger, LLC
+// Copyright 2021 Signal Messenger, LLC
// SPDX-License-Identifier: AGPL-3.0-only
import type { ReactNode } from 'react';
diff --git a/ts/components/StoryLinkPreview.stories.tsx b/ts/components/StoryLinkPreview.stories.tsx
index 1df0ae1b0..8bffcea29 100644
--- a/ts/components/StoryLinkPreview.stories.tsx
+++ b/ts/components/StoryLinkPreview.stories.tsx
@@ -1,4 +1,4 @@
-// Copyright 2020-2021 Signal Messenger, LLC
+// Copyright 2020 Signal Messenger, LLC
// SPDX-License-Identifier: AGPL-3.0-only
import type { Meta, Story } from '@storybook/react';
diff --git a/ts/components/Tabs.tsx b/ts/components/Tabs.tsx
index 2f39bace4..2226a6258 100644
--- a/ts/components/Tabs.tsx
+++ b/ts/components/Tabs.tsx
@@ -1,4 +1,4 @@
-// Copyright 2021-2022 Signal Messenger, LLC
+// Copyright 2021 Signal Messenger, LLC
// SPDX-License-Identifier: AGPL-3.0-only
import type { ReactNode } from 'react';
diff --git a/ts/components/Toast.tsx b/ts/components/Toast.tsx
index 4e14e7ec0..f91ab04c3 100644
--- a/ts/components/Toast.tsx
+++ b/ts/components/Toast.tsx
@@ -1,4 +1,4 @@
-// Copyright 2021-2022 Signal Messenger, LLC
+// Copyright 2021 Signal Messenger, LLC
// SPDX-License-Identifier: AGPL-3.0-only
import type { KeyboardEvent, MouseEvent, ReactNode } from 'react';
diff --git a/ts/components/Tooltip.tsx b/ts/components/Tooltip.tsx
index 5a08c89ca..1783e46ae 100644
--- a/ts/components/Tooltip.tsx
+++ b/ts/components/Tooltip.tsx
@@ -1,4 +1,4 @@
-// Copyright 2020-2021 Signal Messenger, LLC
+// Copyright 2020 Signal Messenger, LLC
// SPDX-License-Identifier: AGPL-3.0-only
import React from 'react';
diff --git a/ts/components/WhatsNewModal.tsx b/ts/components/WhatsNewModal.tsx
index 89f7b1d2b..21e199f27 100644
--- a/ts/components/WhatsNewModal.tsx
+++ b/ts/components/WhatsNewModal.tsx
@@ -1,4 +1,4 @@
-// Copyright 2021-2022 Signal Messenger, LLC
+// Copyright 2021 Signal Messenger, LLC
// SPDX-License-Identifier: AGPL-3.0-only
import type { ReactChild } from 'react';
diff --git a/ts/components/_util.ts b/ts/components/_util.ts
index 36fd93c58..7605ab90a 100644
--- a/ts/components/_util.ts
+++ b/ts/components/_util.ts
@@ -1,4 +1,4 @@
-// Copyright 2019-2021 Signal Messenger, LLC
+// Copyright 2019 Signal Messenger, LLC
// SPDX-License-Identifier: AGPL-3.0-only
export function cleanId(id: string): string {
diff --git a/ts/components/conversation/AddNewLines.tsx b/ts/components/conversation/AddNewLines.tsx
index 38a58102f..349cc7b4d 100644
--- a/ts/components/conversation/AddNewLines.tsx
+++ b/ts/components/conversation/AddNewLines.tsx
@@ -1,4 +1,4 @@
-// Copyright 2018-2021 Signal Messenger, LLC
+// Copyright 2018 Signal Messenger, LLC
// SPDX-License-Identifier: AGPL-3.0-only
import React from 'react';
diff --git a/ts/components/conversation/AttachmentList.tsx b/ts/components/conversation/AttachmentList.tsx
index dd6b7769e..946e673f0 100644
--- a/ts/components/conversation/AttachmentList.tsx
+++ b/ts/components/conversation/AttachmentList.tsx
@@ -1,4 +1,4 @@
-// Copyright 2018-2021 Signal Messenger, LLC
+// Copyright 2018 Signal Messenger, LLC
// SPDX-License-Identifier: AGPL-3.0-only
import React from 'react';
diff --git a/ts/components/conversation/AudioCapture.tsx b/ts/components/conversation/AudioCapture.tsx
index 98e4b4e8a..9cf3ea718 100644
--- a/ts/components/conversation/AudioCapture.tsx
+++ b/ts/components/conversation/AudioCapture.tsx
@@ -1,4 +1,4 @@
-// Copyright 2016-2020 Signal Messenger, LLC
+// Copyright 2016 Signal Messenger, LLC
// SPDX-License-Identifier: AGPL-3.0-only
import React, { useCallback, useEffect, useState } from 'react';
diff --git a/ts/components/conversation/CallingNotification.stories.tsx b/ts/components/conversation/CallingNotification.stories.tsx
index b8e35e5cc..865218b6a 100644
--- a/ts/components/conversation/CallingNotification.stories.tsx
+++ b/ts/components/conversation/CallingNotification.stories.tsx
@@ -1,4 +1,4 @@
-// Copyright 2021-2022 Signal Messenger, LLC
+// Copyright 2021 Signal Messenger, LLC
// SPDX-License-Identifier: AGPL-3.0-only
import * as React from 'react';
diff --git a/ts/components/conversation/CallingNotification.tsx b/ts/components/conversation/CallingNotification.tsx
index 30ee5c977..bfa2ac86c 100644
--- a/ts/components/conversation/CallingNotification.tsx
+++ b/ts/components/conversation/CallingNotification.tsx
@@ -1,4 +1,4 @@
-// Copyright 2020-2022 Signal Messenger, LLC
+// Copyright 2020 Signal Messenger, LLC
// SPDX-License-Identifier: AGPL-3.0-only
import type { ReactNode } from 'react';
diff --git a/ts/components/conversation/ChangeNumberNotification.stories.tsx b/ts/components/conversation/ChangeNumberNotification.stories.tsx
index 4a8da6310..a2fa44a74 100644
--- a/ts/components/conversation/ChangeNumberNotification.stories.tsx
+++ b/ts/components/conversation/ChangeNumberNotification.stories.tsx
@@ -1,4 +1,4 @@
-// Copyright 2021-2022 Signal Messenger, LLC
+// Copyright 2021 Signal Messenger, LLC
// SPDX-License-Identifier: AGPL-3.0-only
import * as React from 'react';
diff --git a/ts/components/conversation/ChangeNumberNotification.tsx b/ts/components/conversation/ChangeNumberNotification.tsx
index 0f4e3aff9..8e2e81db6 100644
--- a/ts/components/conversation/ChangeNumberNotification.tsx
+++ b/ts/components/conversation/ChangeNumberNotification.tsx
@@ -1,4 +1,4 @@
-// Copyright 2021-2022 Signal Messenger, LLC
+// Copyright 2021 Signal Messenger, LLC
// SPDX-License-Identifier: AGPL-3.0-only
import React from 'react';
diff --git a/ts/components/conversation/ContactDetail.tsx b/ts/components/conversation/ContactDetail.tsx
index 1a195d2bb..23bc0f53d 100644
--- a/ts/components/conversation/ContactDetail.tsx
+++ b/ts/components/conversation/ContactDetail.tsx
@@ -1,4 +1,4 @@
-// Copyright 2018-2021 Signal Messenger, LLC
+// Copyright 2018 Signal Messenger, LLC
// SPDX-License-Identifier: AGPL-3.0-only
import React from 'react';
diff --git a/ts/components/conversation/ContactModal.stories.tsx b/ts/components/conversation/ContactModal.stories.tsx
index 7aa9a9ed2..78d97014e 100644
--- a/ts/components/conversation/ContactModal.stories.tsx
+++ b/ts/components/conversation/ContactModal.stories.tsx
@@ -1,4 +1,4 @@
-// Copyright 2020-2022 Signal Messenger, LLC
+// Copyright 2020 Signal Messenger, LLC
// SPDX-License-Identifier: AGPL-3.0-only
import type { Meta, Story } from '@storybook/react';
diff --git a/ts/components/conversation/ContactModal.tsx b/ts/components/conversation/ContactModal.tsx
index 1cc9758e0..3fc8b5415 100644
--- a/ts/components/conversation/ContactModal.tsx
+++ b/ts/components/conversation/ContactModal.tsx
@@ -1,4 +1,4 @@
-// Copyright 2020-2022 Signal Messenger, LLC
+// Copyright 2020 Signal Messenger, LLC
// SPDX-License-Identifier: AGPL-3.0-only
import React, { useEffect, useState } from 'react';
diff --git a/ts/components/conversation/ContactName.stories.tsx b/ts/components/conversation/ContactName.stories.tsx
index 382138303..8ce5763c6 100644
--- a/ts/components/conversation/ContactName.stories.tsx
+++ b/ts/components/conversation/ContactName.stories.tsx
@@ -1,4 +1,4 @@
-// Copyright 2020-2021 Signal Messenger, LLC
+// Copyright 2020 Signal Messenger, LLC
// SPDX-License-Identifier: AGPL-3.0-only
import * as React from 'react';
diff --git a/ts/components/conversation/ContactName.tsx b/ts/components/conversation/ContactName.tsx
index 7f4cb3c58..ee1dc8e55 100644
--- a/ts/components/conversation/ContactName.tsx
+++ b/ts/components/conversation/ContactName.tsx
@@ -1,4 +1,4 @@
-// Copyright 2018-2021 Signal Messenger, LLC
+// Copyright 2018 Signal Messenger, LLC
// SPDX-License-Identifier: AGPL-3.0-only
import React from 'react';
diff --git a/ts/components/conversation/ConversationHeader.stories.tsx b/ts/components/conversation/ConversationHeader.stories.tsx
index a3cef53ec..4cf64a095 100644
--- a/ts/components/conversation/ConversationHeader.stories.tsx
+++ b/ts/components/conversation/ConversationHeader.stories.tsx
@@ -1,4 +1,4 @@
-// Copyright 2020-2022 Signal Messenger, LLC
+// Copyright 2020 Signal Messenger, LLC
// SPDX-License-Identifier: AGPL-3.0-only
import type { ComponentProps } from 'react';
diff --git a/ts/components/conversation/ConversationHeader.tsx b/ts/components/conversation/ConversationHeader.tsx
index 92fe9ebe2..2a6ee7a51 100644
--- a/ts/components/conversation/ConversationHeader.tsx
+++ b/ts/components/conversation/ConversationHeader.tsx
@@ -1,4 +1,4 @@
-// Copyright 2018-2022 Signal Messenger, LLC
+// Copyright 2018 Signal Messenger, LLC
// SPDX-License-Identifier: AGPL-3.0-only
import type { ReactNode } from 'react';
diff --git a/ts/components/conversation/ConversationHero.stories.tsx b/ts/components/conversation/ConversationHero.stories.tsx
index 934929eb2..fb763928d 100644
--- a/ts/components/conversation/ConversationHero.stories.tsx
+++ b/ts/components/conversation/ConversationHero.stories.tsx
@@ -1,4 +1,4 @@
-// Copyright 2020-2022 Signal Messenger, LLC
+// Copyright 2020 Signal Messenger, LLC
// SPDX-License-Identifier: AGPL-3.0-only
import type { Meta, Story } from '@storybook/react';
diff --git a/ts/components/conversation/ConversationHero.tsx b/ts/components/conversation/ConversationHero.tsx
index 0b3f9abfc..2d5ee033b 100644
--- a/ts/components/conversation/ConversationHero.tsx
+++ b/ts/components/conversation/ConversationHero.tsx
@@ -1,4 +1,4 @@
-// Copyright 2020-2022 Signal Messenger, LLC
+// Copyright 2020 Signal Messenger, LLC
// SPDX-License-Identifier: AGPL-3.0-only
import React, { useEffect, useState } from 'react';
diff --git a/ts/components/conversation/ConversationMergeNotification.stories.tsx b/ts/components/conversation/ConversationMergeNotification.stories.tsx
index 5bb408315..61a642981 100644
--- a/ts/components/conversation/ConversationMergeNotification.stories.tsx
+++ b/ts/components/conversation/ConversationMergeNotification.stories.tsx
@@ -1,4 +1,4 @@
-// Copyright 2020-2021 Signal Messenger, LLC
+// Copyright 2020 Signal Messenger, LLC
// SPDX-License-Identifier: AGPL-3.0-only
import * as React from 'react';
diff --git a/ts/components/conversation/ConversationView.tsx b/ts/components/conversation/ConversationView.tsx
index e44c5ae49..d0b9fe96a 100644
--- a/ts/components/conversation/ConversationView.tsx
+++ b/ts/components/conversation/ConversationView.tsx
@@ -1,4 +1,4 @@
-// Copyright 2020-2021 Signal Messenger, LLC
+// Copyright 2020 Signal Messenger, LLC
// SPDX-License-Identifier: AGPL-3.0-only
import React from 'react';
diff --git a/ts/components/conversation/EmbeddedContact.tsx b/ts/components/conversation/EmbeddedContact.tsx
index 1c6255b61..395a4ae2b 100644
--- a/ts/components/conversation/EmbeddedContact.tsx
+++ b/ts/components/conversation/EmbeddedContact.tsx
@@ -1,4 +1,4 @@
-// Copyright 2018-2021 Signal Messenger, LLC
+// Copyright 2018 Signal Messenger, LLC
// SPDX-License-Identifier: AGPL-3.0-only
import React from 'react';
diff --git a/ts/components/conversation/Emojify.tsx b/ts/components/conversation/Emojify.tsx
index d0e1ca1e2..08f15395c 100644
--- a/ts/components/conversation/Emojify.tsx
+++ b/ts/components/conversation/Emojify.tsx
@@ -1,4 +1,4 @@
-// Copyright 2018-2021 Signal Messenger, LLC
+// Copyright 2018 Signal Messenger, LLC
// SPDX-License-Identifier: AGPL-3.0-only
import React from 'react';
diff --git a/ts/components/conversation/ExpireTimer.tsx b/ts/components/conversation/ExpireTimer.tsx
index c12db463a..3fda3008e 100644
--- a/ts/components/conversation/ExpireTimer.tsx
+++ b/ts/components/conversation/ExpireTimer.tsx
@@ -1,4 +1,4 @@
-// Copyright 2018-2022 Signal Messenger, LLC
+// Copyright 2018 Signal Messenger, LLC
// SPDX-License-Identifier: AGPL-3.0-only
import React from 'react';
diff --git a/ts/components/conversation/GroupNotification.stories.tsx b/ts/components/conversation/GroupNotification.stories.tsx
index 46244e167..2f6eaf83a 100644
--- a/ts/components/conversation/GroupNotification.stories.tsx
+++ b/ts/components/conversation/GroupNotification.stories.tsx
@@ -1,4 +1,4 @@
-// Copyright 2020-2022 Signal Messenger, LLC
+// Copyright 2020 Signal Messenger, LLC
// SPDX-License-Identifier: AGPL-3.0-only
import * as React from 'react';
diff --git a/ts/components/conversation/GroupNotification.tsx b/ts/components/conversation/GroupNotification.tsx
index fd6405306..68a66c4b9 100644
--- a/ts/components/conversation/GroupNotification.tsx
+++ b/ts/components/conversation/GroupNotification.tsx
@@ -1,4 +1,4 @@
-// Copyright 2018-2021 Signal Messenger, LLC
+// Copyright 2018 Signal Messenger, LLC
// SPDX-License-Identifier: AGPL-3.0-only
import type { ReactNode } from 'react';
diff --git a/ts/components/conversation/GroupV1Migration.stories.tsx b/ts/components/conversation/GroupV1Migration.stories.tsx
index dac5c30b4..17a699cf3 100644
--- a/ts/components/conversation/GroupV1Migration.stories.tsx
+++ b/ts/components/conversation/GroupV1Migration.stories.tsx
@@ -1,4 +1,4 @@
-// Copyright 2020-2022 Signal Messenger, LLC
+// Copyright 2020 Signal Messenger, LLC
// SPDX-License-Identifier: AGPL-3.0-only
import * as React from 'react';
diff --git a/ts/components/conversation/GroupV1Migration.tsx b/ts/components/conversation/GroupV1Migration.tsx
index 06bc49bb0..e40cefb1f 100644
--- a/ts/components/conversation/GroupV1Migration.tsx
+++ b/ts/components/conversation/GroupV1Migration.tsx
@@ -1,4 +1,4 @@
-// Copyright 2020-2021 Signal Messenger, LLC
+// Copyright 2020 Signal Messenger, LLC
// SPDX-License-Identifier: AGPL-3.0-only
import * as React from 'react';
diff --git a/ts/components/conversation/GroupV2Change.stories.tsx b/ts/components/conversation/GroupV2Change.stories.tsx
index 605f438aa..6d883709c 100644
--- a/ts/components/conversation/GroupV2Change.stories.tsx
+++ b/ts/components/conversation/GroupV2Change.stories.tsx
@@ -1,4 +1,4 @@
-// Copyright 2020-2022 Signal Messenger, LLC
+// Copyright 2020 Signal Messenger, LLC
// SPDX-License-Identifier: AGPL-3.0-only
import * as React from 'react';
diff --git a/ts/components/conversation/GroupV2Change.tsx b/ts/components/conversation/GroupV2Change.tsx
index beb9b2f38..c4f354d43 100644
--- a/ts/components/conversation/GroupV2Change.tsx
+++ b/ts/components/conversation/GroupV2Change.tsx
@@ -1,4 +1,4 @@
-// Copyright 2020-2022 Signal Messenger, LLC
+// Copyright 2020 Signal Messenger, LLC
// SPDX-License-Identifier: AGPL-3.0-only
import type { ReactElement, ReactNode } from 'react';
diff --git a/ts/components/conversation/Image.stories.tsx b/ts/components/conversation/Image.stories.tsx
index 09da9a0a1..fe033f266 100644
--- a/ts/components/conversation/Image.stories.tsx
+++ b/ts/components/conversation/Image.stories.tsx
@@ -1,4 +1,4 @@
-// Copyright 2020-2021 Signal Messenger, LLC
+// Copyright 2020 Signal Messenger, LLC
// SPDX-License-Identifier: AGPL-3.0-only
import * as React from 'react';
diff --git a/ts/components/conversation/Image.tsx b/ts/components/conversation/Image.tsx
index 2fc63020d..dc6f0a954 100644
--- a/ts/components/conversation/Image.tsx
+++ b/ts/components/conversation/Image.tsx
@@ -1,4 +1,4 @@
-// Copyright 2018-2022 Signal Messenger, LLC
+// Copyright 2018 Signal Messenger, LLC
// SPDX-License-Identifier: AGPL-3.0-only
import React from 'react';
diff --git a/ts/components/conversation/ImageGrid.tsx b/ts/components/conversation/ImageGrid.tsx
index 538b0029f..1a73ffe2b 100644
--- a/ts/components/conversation/ImageGrid.tsx
+++ b/ts/components/conversation/ImageGrid.tsx
@@ -1,4 +1,4 @@
-// Copyright 2018-2020 Signal Messenger, LLC
+// Copyright 2018 Signal Messenger, LLC
// SPDX-License-Identifier: AGPL-3.0-only
import React from 'react';
diff --git a/ts/components/conversation/InlineNotificationWrapper.tsx b/ts/components/conversation/InlineNotificationWrapper.tsx
index d95f60d8f..b63f8a282 100644
--- a/ts/components/conversation/InlineNotificationWrapper.tsx
+++ b/ts/components/conversation/InlineNotificationWrapper.tsx
@@ -1,4 +1,4 @@
-// Copyright 2019-2021 Signal Messenger, LLC
+// Copyright 2019 Signal Messenger, LLC
// SPDX-License-Identifier: AGPL-3.0-only
import React from 'react';
diff --git a/ts/components/conversation/LastSeenIndicator.tsx b/ts/components/conversation/LastSeenIndicator.tsx
index ca7a3f6ed..43542bb15 100644
--- a/ts/components/conversation/LastSeenIndicator.tsx
+++ b/ts/components/conversation/LastSeenIndicator.tsx
@@ -1,4 +1,4 @@
-// Copyright 2019-2022 Signal Messenger, LLC
+// Copyright 2019 Signal Messenger, LLC
// SPDX-License-Identifier: AGPL-3.0-only
import React, { forwardRef } from 'react';
diff --git a/ts/components/conversation/LinkPreviewDate.tsx b/ts/components/conversation/LinkPreviewDate.tsx
index 1517fbed1..90c11a873 100644
--- a/ts/components/conversation/LinkPreviewDate.tsx
+++ b/ts/components/conversation/LinkPreviewDate.tsx
@@ -1,4 +1,4 @@
-// Copyright 2020-2021 Signal Messenger, LLC
+// Copyright 2020 Signal Messenger, LLC
// SPDX-License-Identifier: AGPL-3.0-only
import * as React from 'react';
diff --git a/ts/components/conversation/Linkify.tsx b/ts/components/conversation/Linkify.tsx
index 163c86e70..bad73069f 100644
--- a/ts/components/conversation/Linkify.tsx
+++ b/ts/components/conversation/Linkify.tsx
@@ -1,4 +1,4 @@
-// Copyright 2018-2021 Signal Messenger, LLC
+// Copyright 2018 Signal Messenger, LLC
// SPDX-License-Identifier: AGPL-3.0-only
import React from 'react';
diff --git a/ts/components/conversation/MandatoryProfileSharingActions.stories.tsx b/ts/components/conversation/MandatoryProfileSharingActions.stories.tsx
index 619be61ee..8ae788209 100644
--- a/ts/components/conversation/MandatoryProfileSharingActions.stories.tsx
+++ b/ts/components/conversation/MandatoryProfileSharingActions.stories.tsx
@@ -1,4 +1,4 @@
-// Copyright 2020-2021 Signal Messenger, LLC
+// Copyright 2020 Signal Messenger, LLC
// SPDX-License-Identifier: AGPL-3.0-only
import * as React from 'react';
diff --git a/ts/components/conversation/MandatoryProfileSharingActions.tsx b/ts/components/conversation/MandatoryProfileSharingActions.tsx
index 5afa17f1f..f03aa7651 100644
--- a/ts/components/conversation/MandatoryProfileSharingActions.tsx
+++ b/ts/components/conversation/MandatoryProfileSharingActions.tsx
@@ -1,4 +1,4 @@
-// Copyright 2020-2021 Signal Messenger, LLC
+// Copyright 2020 Signal Messenger, LLC
// SPDX-License-Identifier: AGPL-3.0-only
import * as React from 'react';
diff --git a/ts/components/conversation/Message.tsx b/ts/components/conversation/Message.tsx
index d99401631..c07badea8 100644
--- a/ts/components/conversation/Message.tsx
+++ b/ts/components/conversation/Message.tsx
@@ -1,4 +1,4 @@
-// Copyright 2018-2022 Signal Messenger, LLC
+// Copyright 2018 Signal Messenger, LLC
// SPDX-License-Identifier: AGPL-3.0-only
import type { ReactNode, RefObject } from 'react';
diff --git a/ts/components/conversation/MessageAudio.tsx b/ts/components/conversation/MessageAudio.tsx
index 6e54bf4cf..b44dece63 100644
--- a/ts/components/conversation/MessageAudio.tsx
+++ b/ts/components/conversation/MessageAudio.tsx
@@ -1,4 +1,4 @@
-// Copyright 2021-2022 Signal Messenger, LLC
+// Copyright 2021 Signal Messenger, LLC
// SPDX-License-Identifier: AGPL-3.0-only
import React, { useCallback, useRef, useEffect, useState } from 'react';
diff --git a/ts/components/conversation/MessageBody.tsx b/ts/components/conversation/MessageBody.tsx
index 1fd7c6769..f645d88cc 100644
--- a/ts/components/conversation/MessageBody.tsx
+++ b/ts/components/conversation/MessageBody.tsx
@@ -1,4 +1,4 @@
-// Copyright 2018-2021 Signal Messenger, LLC
+// Copyright 2018 Signal Messenger, LLC
// SPDX-License-Identifier: AGPL-3.0-only
import type { KeyboardEvent } from 'react';
diff --git a/ts/components/conversation/MessageBodyReadMore.stories.tsx b/ts/components/conversation/MessageBodyReadMore.stories.tsx
index e8ef5b53a..a46f93e63 100644
--- a/ts/components/conversation/MessageBodyReadMore.stories.tsx
+++ b/ts/components/conversation/MessageBodyReadMore.stories.tsx
@@ -1,4 +1,4 @@
-// Copyright 2021-2022 Signal Messenger, LLC
+// Copyright 2021 Signal Messenger, LLC
// SPDX-License-Identifier: AGPL-3.0-only
import React, { useState } from 'react';
diff --git a/ts/components/conversation/MessageBodyReadMore.tsx b/ts/components/conversation/MessageBodyReadMore.tsx
index d5d3f4a54..37e0f7d8f 100644
--- a/ts/components/conversation/MessageBodyReadMore.tsx
+++ b/ts/components/conversation/MessageBodyReadMore.tsx
@@ -1,4 +1,4 @@
-// Copyright 2021-2022 Signal Messenger, LLC
+// Copyright 2021 Signal Messenger, LLC
// SPDX-License-Identifier: AGPL-3.0-only
import React from 'react';
diff --git a/ts/components/conversation/MessageDetail.stories.tsx b/ts/components/conversation/MessageDetail.stories.tsx
index 7fba2deea..55a127a85 100644
--- a/ts/components/conversation/MessageDetail.stories.tsx
+++ b/ts/components/conversation/MessageDetail.stories.tsx
@@ -1,4 +1,4 @@
-// Copyright 2020-2021 Signal Messenger, LLC
+// Copyright 2020 Signal Messenger, LLC
// SPDX-License-Identifier: AGPL-3.0-only
import * as React from 'react';
diff --git a/ts/components/conversation/MessageDetail.tsx b/ts/components/conversation/MessageDetail.tsx
index 366d67304..2e81bf7ec 100644
--- a/ts/components/conversation/MessageDetail.tsx
+++ b/ts/components/conversation/MessageDetail.tsx
@@ -1,4 +1,4 @@
-// Copyright 2018-2022 Signal Messenger, LLC
+// Copyright 2018 Signal Messenger, LLC
// SPDX-License-Identifier: AGPL-3.0-only
import type { ReactChild, ReactNode } from 'react';
diff --git a/ts/components/conversation/MessageMetadata.tsx b/ts/components/conversation/MessageMetadata.tsx
index 6c521a97e..9a612c0fb 100644
--- a/ts/components/conversation/MessageMetadata.tsx
+++ b/ts/components/conversation/MessageMetadata.tsx
@@ -1,4 +1,4 @@
-// Copyright 2018-2022 Signal Messenger, LLC
+// Copyright 2018 Signal Messenger, LLC
// SPDX-License-Identifier: AGPL-3.0-only
import type { ReactChild, ReactElement } from 'react';
diff --git a/ts/components/conversation/MessageRequestActions.stories.tsx b/ts/components/conversation/MessageRequestActions.stories.tsx
index c834d6df9..81586efbf 100644
--- a/ts/components/conversation/MessageRequestActions.stories.tsx
+++ b/ts/components/conversation/MessageRequestActions.stories.tsx
@@ -1,4 +1,4 @@
-// Copyright 2020-2021 Signal Messenger, LLC
+// Copyright 2020 Signal Messenger, LLC
// SPDX-License-Identifier: AGPL-3.0-only
import * as React from 'react';
diff --git a/ts/components/conversation/MessageRequestActions.tsx b/ts/components/conversation/MessageRequestActions.tsx
index c76e40d6e..32ee5174c 100644
--- a/ts/components/conversation/MessageRequestActions.tsx
+++ b/ts/components/conversation/MessageRequestActions.tsx
@@ -1,4 +1,4 @@
-// Copyright 2020-2021 Signal Messenger, LLC
+// Copyright 2020 Signal Messenger, LLC
// SPDX-License-Identifier: AGPL-3.0-only
import * as React from 'react';
diff --git a/ts/components/conversation/MessageRequestActionsConfirmation.tsx b/ts/components/conversation/MessageRequestActionsConfirmation.tsx
index 00303a97c..3dbfb291a 100644
--- a/ts/components/conversation/MessageRequestActionsConfirmation.tsx
+++ b/ts/components/conversation/MessageRequestActionsConfirmation.tsx
@@ -1,4 +1,4 @@
-// Copyright 2020-2021 Signal Messenger, LLC
+// Copyright 2020 Signal Messenger, LLC
// SPDX-License-Identifier: AGPL-3.0-only
import * as React from 'react';
diff --git a/ts/components/conversation/MessageTimestamp.stories.tsx b/ts/components/conversation/MessageTimestamp.stories.tsx
index 4535230cd..a161a7a7f 100644
--- a/ts/components/conversation/MessageTimestamp.stories.tsx
+++ b/ts/components/conversation/MessageTimestamp.stories.tsx
@@ -1,4 +1,4 @@
-// Copyright 2020-2022 Signal Messenger, LLC
+// Copyright 2020 Signal Messenger, LLC
// SPDX-License-Identifier: AGPL-3.0-only
import * as React from 'react';
diff --git a/ts/components/conversation/MessageTimestamp.tsx b/ts/components/conversation/MessageTimestamp.tsx
index b6755518e..c64642baa 100644
--- a/ts/components/conversation/MessageTimestamp.tsx
+++ b/ts/components/conversation/MessageTimestamp.tsx
@@ -1,4 +1,4 @@
-// Copyright 2018-2022 Signal Messenger, LLC
+// Copyright 2018 Signal Messenger, LLC
// SPDX-License-Identifier: AGPL-3.0-only
import type { ReactElement } from 'react';
diff --git a/ts/components/conversation/PaymentEventNotification.tsx b/ts/components/conversation/PaymentEventNotification.tsx
index 41e49f4ff..67bffa7a2 100644
--- a/ts/components/conversation/PaymentEventNotification.tsx
+++ b/ts/components/conversation/PaymentEventNotification.tsx
@@ -1,4 +1,4 @@
-// Copyright 2020-2021 Signal Messenger, LLC
+// Copyright 2020 Signal Messenger, LLC
// SPDX-License-Identifier: AGPL-3.0-only
import React from 'react';
diff --git a/ts/components/conversation/ProfileChangeNotification.stories.tsx b/ts/components/conversation/ProfileChangeNotification.stories.tsx
index 10bb1d678..49bb4b4e0 100644
--- a/ts/components/conversation/ProfileChangeNotification.stories.tsx
+++ b/ts/components/conversation/ProfileChangeNotification.stories.tsx
@@ -1,4 +1,4 @@
-// Copyright 2020-2021 Signal Messenger, LLC
+// Copyright 2020 Signal Messenger, LLC
// SPDX-License-Identifier: AGPL-3.0-only
import * as React from 'react';
diff --git a/ts/components/conversation/ProfileChangeNotification.tsx b/ts/components/conversation/ProfileChangeNotification.tsx
index 9bef08d82..f30938c45 100644
--- a/ts/components/conversation/ProfileChangeNotification.tsx
+++ b/ts/components/conversation/ProfileChangeNotification.tsx
@@ -1,4 +1,4 @@
-// Copyright 2020-2021 Signal Messenger, LLC
+// Copyright 2020 Signal Messenger, LLC
// SPDX-License-Identifier: AGPL-3.0-only
import React from 'react';
diff --git a/ts/components/conversation/Quote.stories.tsx b/ts/components/conversation/Quote.stories.tsx
index e24bd2d51..629cc79bc 100644
--- a/ts/components/conversation/Quote.stories.tsx
+++ b/ts/components/conversation/Quote.stories.tsx
@@ -1,4 +1,4 @@
-// Copyright 2020-2022 Signal Messenger, LLC
+// Copyright 2020 Signal Messenger, LLC
// SPDX-License-Identifier: AGPL-3.0-only
import type { Meta, Story } from '@storybook/react';
diff --git a/ts/components/conversation/Quote.tsx b/ts/components/conversation/Quote.tsx
index 34264ca5a..6cedd5588 100644
--- a/ts/components/conversation/Quote.tsx
+++ b/ts/components/conversation/Quote.tsx
@@ -1,4 +1,4 @@
-// Copyright 2018-2022 Signal Messenger, LLC
+// Copyright 2018 Signal Messenger, LLC
// SPDX-License-Identifier: AGPL-3.0-only
import type { ReactNode } from 'react';
diff --git a/ts/components/conversation/ReactionPicker.stories.tsx b/ts/components/conversation/ReactionPicker.stories.tsx
index 97cae657c..bb62616fc 100644
--- a/ts/components/conversation/ReactionPicker.stories.tsx
+++ b/ts/components/conversation/ReactionPicker.stories.tsx
@@ -1,4 +1,4 @@
-// Copyright 2020-2021 Signal Messenger, LLC
+// Copyright 2020 Signal Messenger, LLC
// SPDX-License-Identifier: AGPL-3.0-only
import * as React from 'react';
diff --git a/ts/components/conversation/ReactionPicker.tsx b/ts/components/conversation/ReactionPicker.tsx
index cdd6457bc..4cc7f18d7 100644
--- a/ts/components/conversation/ReactionPicker.tsx
+++ b/ts/components/conversation/ReactionPicker.tsx
@@ -1,4 +1,4 @@
-// Copyright 2020-2021 Signal Messenger, LLC
+// Copyright 2020 Signal Messenger, LLC
// SPDX-License-Identifier: AGPL-3.0-only
import * as React from 'react';
diff --git a/ts/components/conversation/ReactionViewer.stories.tsx b/ts/components/conversation/ReactionViewer.stories.tsx
index c3735367c..4193a3a9a 100644
--- a/ts/components/conversation/ReactionViewer.stories.tsx
+++ b/ts/components/conversation/ReactionViewer.stories.tsx
@@ -1,4 +1,4 @@
-// Copyright 2020-2021 Signal Messenger, LLC
+// Copyright 2020 Signal Messenger, LLC
// SPDX-License-Identifier: AGPL-3.0-only
import * as React from 'react';
diff --git a/ts/components/conversation/ReactionViewer.tsx b/ts/components/conversation/ReactionViewer.tsx
index 1279669e3..1e5e25c50 100644
--- a/ts/components/conversation/ReactionViewer.tsx
+++ b/ts/components/conversation/ReactionViewer.tsx
@@ -1,4 +1,4 @@
-// Copyright 2020-2021 Signal Messenger, LLC
+// Copyright 2020 Signal Messenger, LLC
// SPDX-License-Identifier: AGPL-3.0-only
import * as React from 'react';
diff --git a/ts/components/conversation/ResetSessionNotification.tsx b/ts/components/conversation/ResetSessionNotification.tsx
index 5598d2b00..9396fbcbf 100644
--- a/ts/components/conversation/ResetSessionNotification.tsx
+++ b/ts/components/conversation/ResetSessionNotification.tsx
@@ -1,4 +1,4 @@
-// Copyright 2018-2021 Signal Messenger, LLC
+// Copyright 2018 Signal Messenger, LLC
// SPDX-License-Identifier: AGPL-3.0-only
import React from 'react';
diff --git a/ts/components/conversation/SafetyNumberNotification.tsx b/ts/components/conversation/SafetyNumberNotification.tsx
index 3c2325af2..f80223d1a 100644
--- a/ts/components/conversation/SafetyNumberNotification.tsx
+++ b/ts/components/conversation/SafetyNumberNotification.tsx
@@ -1,4 +1,4 @@
-// Copyright 2018-2021 Signal Messenger, LLC
+// Copyright 2018 Signal Messenger, LLC
// SPDX-License-Identifier: AGPL-3.0-only
import React from 'react';
diff --git a/ts/components/conversation/ScrollDownButton.tsx b/ts/components/conversation/ScrollDownButton.tsx
index 8a8c65eab..5aaf1b8e0 100644
--- a/ts/components/conversation/ScrollDownButton.tsx
+++ b/ts/components/conversation/ScrollDownButton.tsx
@@ -1,4 +1,4 @@
-// Copyright 2019-2020 Signal Messenger, LLC
+// Copyright 2019 Signal Messenger, LLC
// SPDX-License-Identifier: AGPL-3.0-only
import React from 'react';
diff --git a/ts/components/conversation/StagedGenericAttachment.tsx b/ts/components/conversation/StagedGenericAttachment.tsx
index ae9259992..beaa8cf0e 100644
--- a/ts/components/conversation/StagedGenericAttachment.tsx
+++ b/ts/components/conversation/StagedGenericAttachment.tsx
@@ -1,4 +1,4 @@
-// Copyright 2018-2021 Signal Messenger, LLC
+// Copyright 2018 Signal Messenger, LLC
// SPDX-License-Identifier: AGPL-3.0-only
import React from 'react';
diff --git a/ts/components/conversation/StagedLinkPreview.stories.tsx b/ts/components/conversation/StagedLinkPreview.stories.tsx
index 61b50d4f9..7b7966fd8 100644
--- a/ts/components/conversation/StagedLinkPreview.stories.tsx
+++ b/ts/components/conversation/StagedLinkPreview.stories.tsx
@@ -1,4 +1,4 @@
-// Copyright 2020-2021 Signal Messenger, LLC
+// Copyright 2020 Signal Messenger, LLC
// SPDX-License-Identifier: AGPL-3.0-only
import type { Meta, Story } from '@storybook/react';
diff --git a/ts/components/conversation/StagedLinkPreview.tsx b/ts/components/conversation/StagedLinkPreview.tsx
index 04c83ab79..50f8bcea6 100644
--- a/ts/components/conversation/StagedLinkPreview.tsx
+++ b/ts/components/conversation/StagedLinkPreview.tsx
@@ -1,4 +1,4 @@
-// Copyright 2019-2021 Signal Messenger, LLC
+// Copyright 2019 Signal Messenger, LLC
// SPDX-License-Identifier: AGPL-3.0-only
import React from 'react';
diff --git a/ts/components/conversation/StagedPlaceholderAttachment.tsx b/ts/components/conversation/StagedPlaceholderAttachment.tsx
index a4b43d16a..977d7443c 100644
--- a/ts/components/conversation/StagedPlaceholderAttachment.tsx
+++ b/ts/components/conversation/StagedPlaceholderAttachment.tsx
@@ -1,4 +1,4 @@
-// Copyright 2019-2021 Signal Messenger, LLC
+// Copyright 2019 Signal Messenger, LLC
// SPDX-License-Identifier: AGPL-3.0-only
import React from 'react';
diff --git a/ts/components/conversation/Timeline.stories.tsx b/ts/components/conversation/Timeline.stories.tsx
index e9d1b71e9..289000201 100644
--- a/ts/components/conversation/Timeline.stories.tsx
+++ b/ts/components/conversation/Timeline.stories.tsx
@@ -1,4 +1,4 @@
-// Copyright 2020-2022 Signal Messenger, LLC
+// Copyright 2020 Signal Messenger, LLC
// SPDX-License-Identifier: AGPL-3.0-only
import * as React from 'react';
diff --git a/ts/components/conversation/Timeline.tsx b/ts/components/conversation/Timeline.tsx
index 658a28407..8041b4f77 100644
--- a/ts/components/conversation/Timeline.tsx
+++ b/ts/components/conversation/Timeline.tsx
@@ -1,4 +1,4 @@
-// Copyright 2019-2022 Signal Messenger, LLC
+// Copyright 2019 Signal Messenger, LLC
// SPDX-License-Identifier: AGPL-3.0-only
import { first, get, isNumber, last, throttle } from 'lodash';
diff --git a/ts/components/conversation/TimelineItem.stories.tsx b/ts/components/conversation/TimelineItem.stories.tsx
index 9b1eefe44..6c6074f8a 100644
--- a/ts/components/conversation/TimelineItem.stories.tsx
+++ b/ts/components/conversation/TimelineItem.stories.tsx
@@ -1,4 +1,4 @@
-// Copyright 2020-2022 Signal Messenger, LLC
+// Copyright 2020 Signal Messenger, LLC
// SPDX-License-Identifier: AGPL-3.0-only
import * as React from 'react';
diff --git a/ts/components/conversation/TimelineItem.tsx b/ts/components/conversation/TimelineItem.tsx
index bf49919c3..c7a511111 100644
--- a/ts/components/conversation/TimelineItem.tsx
+++ b/ts/components/conversation/TimelineItem.tsx
@@ -1,4 +1,4 @@
-// Copyright 2019-2022 Signal Messenger, LLC
+// Copyright 2019 Signal Messenger, LLC
// SPDX-License-Identifier: AGPL-3.0-only
import type { ReactChild, RefObject } from 'react';
diff --git a/ts/components/conversation/TimelineMessage.stories.tsx b/ts/components/conversation/TimelineMessage.stories.tsx
index 712c48560..f33b59668 100644
--- a/ts/components/conversation/TimelineMessage.stories.tsx
+++ b/ts/components/conversation/TimelineMessage.stories.tsx
@@ -1,4 +1,4 @@
-// Copyright 2020-2022 Signal Messenger, LLC
+// Copyright 2020 Signal Messenger, LLC
// SPDX-License-Identifier: AGPL-3.0-only
import * as React from 'react';
diff --git a/ts/components/conversation/TimelineMessage.tsx b/ts/components/conversation/TimelineMessage.tsx
index a53c9d6bc..3478f2d3f 100644
--- a/ts/components/conversation/TimelineMessage.tsx
+++ b/ts/components/conversation/TimelineMessage.tsx
@@ -1,4 +1,4 @@
-// Copyright 2019-2022 Signal Messenger, LLC
+// Copyright 2019 Signal Messenger, LLC
// SPDX-License-Identifier: AGPL-3.0-only
import classNames from 'classnames';
diff --git a/ts/components/conversation/TimerNotification.stories.tsx b/ts/components/conversation/TimerNotification.stories.tsx
index 67439ef49..25d2f2b07 100644
--- a/ts/components/conversation/TimerNotification.stories.tsx
+++ b/ts/components/conversation/TimerNotification.stories.tsx
@@ -1,4 +1,4 @@
-// Copyright 2020-2021 Signal Messenger, LLC
+// Copyright 2020 Signal Messenger, LLC
// SPDX-License-Identifier: AGPL-3.0-only
import * as React from 'react';
diff --git a/ts/components/conversation/TimerNotification.tsx b/ts/components/conversation/TimerNotification.tsx
index 6b164d9c9..c8909745c 100644
--- a/ts/components/conversation/TimerNotification.tsx
+++ b/ts/components/conversation/TimerNotification.tsx
@@ -1,4 +1,4 @@
-// Copyright 2018-2021 Signal Messenger, LLC
+// Copyright 2018 Signal Messenger, LLC
// SPDX-License-Identifier: AGPL-3.0-only
import type { ReactNode } from 'react';
diff --git a/ts/components/conversation/TypingAnimation.tsx b/ts/components/conversation/TypingAnimation.tsx
index 2ea66da26..d3d7d7378 100644
--- a/ts/components/conversation/TypingAnimation.tsx
+++ b/ts/components/conversation/TypingAnimation.tsx
@@ -1,4 +1,4 @@
-// Copyright 2018-2020 Signal Messenger, LLC
+// Copyright 2018 Signal Messenger, LLC
// SPDX-License-Identifier: AGPL-3.0-only
import React from 'react';
diff --git a/ts/components/conversation/TypingBubble.stories.tsx b/ts/components/conversation/TypingBubble.stories.tsx
index 01eb211fa..566965c6e 100644
--- a/ts/components/conversation/TypingBubble.stories.tsx
+++ b/ts/components/conversation/TypingBubble.stories.tsx
@@ -1,4 +1,4 @@
-// Copyright 2020-2021 Signal Messenger, LLC
+// Copyright 2020 Signal Messenger, LLC
// SPDX-License-Identifier: AGPL-3.0-only
import * as React from 'react';
diff --git a/ts/components/conversation/TypingBubble.tsx b/ts/components/conversation/TypingBubble.tsx
index 11d27d2bc..d594deba9 100644
--- a/ts/components/conversation/TypingBubble.tsx
+++ b/ts/components/conversation/TypingBubble.tsx
@@ -1,4 +1,4 @@
-// Copyright 2018-2021 Signal Messenger, LLC
+// Copyright 2018 Signal Messenger, LLC
// SPDX-License-Identifier: AGPL-3.0-only
import type { ReactElement } from 'react';
diff --git a/ts/components/conversation/UnsupportedMessage.tsx b/ts/components/conversation/UnsupportedMessage.tsx
index bbf165559..3eb5f6016 100644
--- a/ts/components/conversation/UnsupportedMessage.tsx
+++ b/ts/components/conversation/UnsupportedMessage.tsx
@@ -1,4 +1,4 @@
-// Copyright 2019-2021 Signal Messenger, LLC
+// Copyright 2019 Signal Messenger, LLC
// SPDX-License-Identifier: AGPL-3.0-only
import React from 'react';
diff --git a/ts/components/conversation/VerificationNotification.stories.tsx b/ts/components/conversation/VerificationNotification.stories.tsx
index d750eb9a5..cafe88c42 100644
--- a/ts/components/conversation/VerificationNotification.stories.tsx
+++ b/ts/components/conversation/VerificationNotification.stories.tsx
@@ -1,4 +1,4 @@
-// Copyright 2020-2021 Signal Messenger, LLC
+// Copyright 2020 Signal Messenger, LLC
// SPDX-License-Identifier: AGPL-3.0-only
import * as React from 'react';
diff --git a/ts/components/conversation/VerificationNotification.tsx b/ts/components/conversation/VerificationNotification.tsx
index d00d12109..a5433ffc9 100644
--- a/ts/components/conversation/VerificationNotification.tsx
+++ b/ts/components/conversation/VerificationNotification.tsx
@@ -1,4 +1,4 @@
-// Copyright 2018-2021 Signal Messenger, LLC
+// Copyright 2018 Signal Messenger, LLC
// SPDX-License-Identifier: AGPL-3.0-only
import React from 'react';
diff --git a/ts/components/conversation/contactUtil.tsx b/ts/components/conversation/contactUtil.tsx
index 3daa99f0c..6cb0caeda 100644
--- a/ts/components/conversation/contactUtil.tsx
+++ b/ts/components/conversation/contactUtil.tsx
@@ -1,4 +1,4 @@
-// Copyright 2019-2021 Signal Messenger, LLC
+// Copyright 2019 Signal Messenger, LLC
// SPDX-License-Identifier: AGPL-3.0-only
import React from 'react';
diff --git a/ts/components/conversation/conversation-details/AddGroupMembersModal.tsx b/ts/components/conversation/conversation-details/AddGroupMembersModal.tsx
index 6fffa94d9..c8be4d252 100644
--- a/ts/components/conversation/conversation-details/AddGroupMembersModal.tsx
+++ b/ts/components/conversation/conversation-details/AddGroupMembersModal.tsx
@@ -1,4 +1,4 @@
-// Copyright 2021-2022 Signal Messenger, LLC
+// Copyright 2021 Signal Messenger, LLC
// SPDX-License-Identifier: AGPL-3.0-only
import React, { useReducer } from 'react';
diff --git a/ts/components/conversation/conversation-details/AddGroupMembersModal/ChooseGroupMembersModal.tsx b/ts/components/conversation/conversation-details/AddGroupMembersModal/ChooseGroupMembersModal.tsx
index 8c98571a9..5936636f5 100644
--- a/ts/components/conversation/conversation-details/AddGroupMembersModal/ChooseGroupMembersModal.tsx
+++ b/ts/components/conversation/conversation-details/AddGroupMembersModal/ChooseGroupMembersModal.tsx
@@ -1,4 +1,4 @@
-// Copyright 2021-2022 Signal Messenger, LLC
+// Copyright 2021 Signal Messenger, LLC
// SPDX-License-Identifier: AGPL-3.0-only
import React, {
diff --git a/ts/components/conversation/conversation-details/ConversationDetails.stories.tsx b/ts/components/conversation/conversation-details/ConversationDetails.stories.tsx
index fa78fc31c..5f0803e34 100644
--- a/ts/components/conversation/conversation-details/ConversationDetails.stories.tsx
+++ b/ts/components/conversation/conversation-details/ConversationDetails.stories.tsx
@@ -1,4 +1,4 @@
-// Copyright 2021-2022 Signal Messenger, LLC
+// Copyright 2021 Signal Messenger, LLC
// SPDX-License-Identifier: AGPL-3.0-only
import * as React from 'react';
diff --git a/ts/components/conversation/conversation-details/ConversationDetails.tsx b/ts/components/conversation/conversation-details/ConversationDetails.tsx
index 350159340..9756ebc73 100644
--- a/ts/components/conversation/conversation-details/ConversationDetails.tsx
+++ b/ts/components/conversation/conversation-details/ConversationDetails.tsx
@@ -1,4 +1,4 @@
-// Copyright 2021-2022 Signal Messenger, LLC
+// Copyright 2021 Signal Messenger, LLC
// SPDX-License-Identifier: AGPL-3.0-only
import type { ReactNode } from 'react';
diff --git a/ts/components/conversation/conversation-details/ConversationNotificationsModal.tsx b/ts/components/conversation/conversation-details/ConversationNotificationsModal.tsx
index ed7d7f5dc..14cbe12a0 100644
--- a/ts/components/conversation/conversation-details/ConversationNotificationsModal.tsx
+++ b/ts/components/conversation/conversation-details/ConversationNotificationsModal.tsx
@@ -1,4 +1,4 @@
-// Copyright 2021-2022 Signal Messenger, LLC
+// Copyright 2021 Signal Messenger, LLC
// SPDX-License-Identifier: AGPL-3.0-only
import React, { useMemo, useState } from 'react';
diff --git a/ts/components/conversation/conversation-details/ConversationNotificationsSettings.tsx b/ts/components/conversation/conversation-details/ConversationNotificationsSettings.tsx
index 212ff5a82..650e71659 100644
--- a/ts/components/conversation/conversation-details/ConversationNotificationsSettings.tsx
+++ b/ts/components/conversation/conversation-details/ConversationNotificationsSettings.tsx
@@ -1,4 +1,4 @@
-// Copyright 2021-2022 Signal Messenger, LLC
+// Copyright 2021 Signal Messenger, LLC
// SPDX-License-Identifier: AGPL-3.0-only
import React, { useMemo } from 'react';
diff --git a/ts/components/conversation/conversation-details/GroupLinkManagement.tsx b/ts/components/conversation/conversation-details/GroupLinkManagement.tsx
index 26fe29c50..8745a4e40 100644
--- a/ts/components/conversation/conversation-details/GroupLinkManagement.tsx
+++ b/ts/components/conversation/conversation-details/GroupLinkManagement.tsx
@@ -1,4 +1,4 @@
-// Copyright 2020-2022 Signal Messenger, LLC
+// Copyright 2020 Signal Messenger, LLC
// SPDX-License-Identifier: AGPL-3.0-only
import React, { useState } from 'react';
diff --git a/ts/components/conversation/conversation-details/GroupV2Permissions.stories.tsx b/ts/components/conversation/conversation-details/GroupV2Permissions.stories.tsx
index fbba2d9aa..60ea837f9 100644
--- a/ts/components/conversation/conversation-details/GroupV2Permissions.stories.tsx
+++ b/ts/components/conversation/conversation-details/GroupV2Permissions.stories.tsx
@@ -1,4 +1,4 @@
-// Copyright 2020-2021 Signal Messenger, LLC
+// Copyright 2020 Signal Messenger, LLC
// SPDX-License-Identifier: AGPL-3.0-only
import * as React from 'react';
diff --git a/ts/components/conversation/conversation-details/GroupV2Permissions.tsx b/ts/components/conversation/conversation-details/GroupV2Permissions.tsx
index e3f48d582..850fbd490 100644
--- a/ts/components/conversation/conversation-details/GroupV2Permissions.tsx
+++ b/ts/components/conversation/conversation-details/GroupV2Permissions.tsx
@@ -1,4 +1,4 @@
-// Copyright 2020-2022 Signal Messenger, LLC
+// Copyright 2020 Signal Messenger, LLC
// SPDX-License-Identifier: AGPL-3.0-only
import React from 'react';
diff --git a/ts/components/conversation/media-gallery/AttachmentSection.tsx b/ts/components/conversation/media-gallery/AttachmentSection.tsx
index 643d5537a..b5f181016 100644
--- a/ts/components/conversation/media-gallery/AttachmentSection.tsx
+++ b/ts/components/conversation/media-gallery/AttachmentSection.tsx
@@ -1,4 +1,4 @@
-// Copyright 2018-2022 Signal Messenger, LLC
+// Copyright 2018 Signal Messenger, LLC
// SPDX-License-Identifier: AGPL-3.0-only
import React from 'react';
diff --git a/ts/components/conversation/media-gallery/DocumentListItem.tsx b/ts/components/conversation/media-gallery/DocumentListItem.tsx
index d26700152..1fa49653f 100644
--- a/ts/components/conversation/media-gallery/DocumentListItem.tsx
+++ b/ts/components/conversation/media-gallery/DocumentListItem.tsx
@@ -1,4 +1,4 @@
-// Copyright 2018-2021 Signal Messenger, LLC
+// Copyright 2018 Signal Messenger, LLC
// SPDX-License-Identifier: AGPL-3.0-only
import React from 'react';
diff --git a/ts/components/conversation/media-gallery/EmptyState.tsx b/ts/components/conversation/media-gallery/EmptyState.tsx
index e536e2256..4415442c3 100644
--- a/ts/components/conversation/media-gallery/EmptyState.tsx
+++ b/ts/components/conversation/media-gallery/EmptyState.tsx
@@ -1,4 +1,4 @@
-// Copyright 2018-2020 Signal Messenger, LLC
+// Copyright 2018 Signal Messenger, LLC
// SPDX-License-Identifier: AGPL-3.0-only
import React from 'react';
diff --git a/ts/components/conversation/media-gallery/LoadingIndicator.tsx b/ts/components/conversation/media-gallery/LoadingIndicator.tsx
index c4e551b92..9dafb05d5 100644
--- a/ts/components/conversation/media-gallery/LoadingIndicator.tsx
+++ b/ts/components/conversation/media-gallery/LoadingIndicator.tsx
@@ -1,4 +1,4 @@
-// Copyright 2018-2020 Signal Messenger, LLC
+// Copyright 2018 Signal Messenger, LLC
// SPDX-License-Identifier: AGPL-3.0-only
import React from 'react';
diff --git a/ts/components/conversation/media-gallery/MediaGallery.stories.tsx b/ts/components/conversation/media-gallery/MediaGallery.stories.tsx
index 5ef5e3c89..1027f61a7 100644
--- a/ts/components/conversation/media-gallery/MediaGallery.stories.tsx
+++ b/ts/components/conversation/media-gallery/MediaGallery.stories.tsx
@@ -1,4 +1,4 @@
-// Copyright 2020-2022 Signal Messenger, LLC
+// Copyright 2020 Signal Messenger, LLC
// SPDX-License-Identifier: AGPL-3.0-only
import * as React from 'react';
diff --git a/ts/components/conversation/media-gallery/MediaGallery.tsx b/ts/components/conversation/media-gallery/MediaGallery.tsx
index 0a9de9229..29e015ad3 100644
--- a/ts/components/conversation/media-gallery/MediaGallery.tsx
+++ b/ts/components/conversation/media-gallery/MediaGallery.tsx
@@ -1,4 +1,4 @@
-// Copyright 2018-2022 Signal Messenger, LLC
+// Copyright 2018 Signal Messenger, LLC
// SPDX-License-Identifier: AGPL-3.0-only
import React, { useEffect, useRef } from 'react';
diff --git a/ts/components/conversation/media-gallery/MediaGridItem.tsx b/ts/components/conversation/media-gallery/MediaGridItem.tsx
index 4d36b5a32..95f4a43d5 100644
--- a/ts/components/conversation/media-gallery/MediaGridItem.tsx
+++ b/ts/components/conversation/media-gallery/MediaGridItem.tsx
@@ -1,4 +1,4 @@
-// Copyright 2018-2021 Signal Messenger, LLC
+// Copyright 2018 Signal Messenger, LLC
// SPDX-License-Identifier: AGPL-3.0-only
import React from 'react';
diff --git a/ts/components/conversation/media-gallery/groupMediaItemsByDate.ts b/ts/components/conversation/media-gallery/groupMediaItemsByDate.ts
index ec56d02e5..ceda3a98b 100644
--- a/ts/components/conversation/media-gallery/groupMediaItemsByDate.ts
+++ b/ts/components/conversation/media-gallery/groupMediaItemsByDate.ts
@@ -1,4 +1,4 @@
-// Copyright 2018-2020 Signal Messenger, LLC
+// Copyright 2018 Signal Messenger, LLC
// SPDX-License-Identifier: AGPL-3.0-only
import moment from 'moment';
diff --git a/ts/components/conversation/media-gallery/types/ItemClickEvent.ts b/ts/components/conversation/media-gallery/types/ItemClickEvent.ts
index 0a39f71ec..960b4502d 100644
--- a/ts/components/conversation/media-gallery/types/ItemClickEvent.ts
+++ b/ts/components/conversation/media-gallery/types/ItemClickEvent.ts
@@ -1,4 +1,4 @@
-// Copyright 2018-2022 Signal Messenger, LLC
+// Copyright 2018 Signal Messenger, LLC
// SPDX-License-Identifier: AGPL-3.0-only
import type { MessageAttributesType } from '../../../../model-types.d';
diff --git a/ts/components/conversationList/BaseConversationListItem.tsx b/ts/components/conversationList/BaseConversationListItem.tsx
index 60fe82539..f70321113 100644
--- a/ts/components/conversationList/BaseConversationListItem.tsx
+++ b/ts/components/conversationList/BaseConversationListItem.tsx
@@ -1,4 +1,4 @@
-// Copyright 2021-2022 Signal Messenger, LLC
+// Copyright 2021 Signal Messenger, LLC
// SPDX-License-Identifier: AGPL-3.0-only
import type { ReactNode, FunctionComponent } from 'react';
diff --git a/ts/components/conversationList/ContactCheckbox.tsx b/ts/components/conversationList/ContactCheckbox.tsx
index efda869b9..ead1eba8c 100644
--- a/ts/components/conversationList/ContactCheckbox.tsx
+++ b/ts/components/conversationList/ContactCheckbox.tsx
@@ -1,4 +1,4 @@
-// Copyright 2021-2022 Signal Messenger, LLC
+// Copyright 2021 Signal Messenger, LLC
// SPDX-License-Identifier: AGPL-3.0-only
import type { FunctionComponent, ReactNode } from 'react';
diff --git a/ts/components/conversationList/ConversationListItem.tsx b/ts/components/conversationList/ConversationListItem.tsx
index e5fb9a743..197ee33c6 100644
--- a/ts/components/conversationList/ConversationListItem.tsx
+++ b/ts/components/conversationList/ConversationListItem.tsx
@@ -1,4 +1,4 @@
-// Copyright 2018-2021 Signal Messenger, LLC
+// Copyright 2018 Signal Messenger, LLC
// SPDX-License-Identifier: AGPL-3.0-only
import type { FunctionComponent, ReactNode } from 'react';
diff --git a/ts/components/conversationList/MessageBodyHighlight.stories.tsx b/ts/components/conversationList/MessageBodyHighlight.stories.tsx
index 883f0f9bd..cd7a26e8c 100644
--- a/ts/components/conversationList/MessageBodyHighlight.stories.tsx
+++ b/ts/components/conversationList/MessageBodyHighlight.stories.tsx
@@ -1,4 +1,4 @@
-// Copyright 2020-2021 Signal Messenger, LLC
+// Copyright 2020 Signal Messenger, LLC
// SPDX-License-Identifier: AGPL-3.0-only
import * as React from 'react';
diff --git a/ts/components/conversationList/MessageBodyHighlight.tsx b/ts/components/conversationList/MessageBodyHighlight.tsx
index 3e3af52f3..d695f3aff 100644
--- a/ts/components/conversationList/MessageBodyHighlight.tsx
+++ b/ts/components/conversationList/MessageBodyHighlight.tsx
@@ -1,4 +1,4 @@
-// Copyright 2019-2021 Signal Messenger, LLC
+// Copyright 2019 Signal Messenger, LLC
// SPDX-License-Identifier: AGPL-3.0-only
import type { ReactNode } from 'react';
diff --git a/ts/components/conversationList/MessageSearchResult.stories.tsx b/ts/components/conversationList/MessageSearchResult.stories.tsx
index 9638f910e..882472550 100644
--- a/ts/components/conversationList/MessageSearchResult.stories.tsx
+++ b/ts/components/conversationList/MessageSearchResult.stories.tsx
@@ -1,4 +1,4 @@
-// Copyright 2020-2021 Signal Messenger, LLC
+// Copyright 2020 Signal Messenger, LLC
// SPDX-License-Identifier: AGPL-3.0-only
import * as React from 'react';
diff --git a/ts/components/conversationList/MessageSearchResult.tsx b/ts/components/conversationList/MessageSearchResult.tsx
index 8e77f2d33..79ec45323 100644
--- a/ts/components/conversationList/MessageSearchResult.tsx
+++ b/ts/components/conversationList/MessageSearchResult.tsx
@@ -1,4 +1,4 @@
-// Copyright 2019-2021 Signal Messenger, LLC
+// Copyright 2019 Signal Messenger, LLC
// SPDX-License-Identifier: AGPL-3.0-only
import type { FunctionComponent, ReactNode } from 'react';
diff --git a/ts/components/conversationList/StartNewConversation.tsx b/ts/components/conversationList/StartNewConversation.tsx
index 3efd6f377..f7494ceca 100644
--- a/ts/components/conversationList/StartNewConversation.tsx
+++ b/ts/components/conversationList/StartNewConversation.tsx
@@ -1,4 +1,4 @@
-// Copyright 2019-2021 Signal Messenger, LLC
+// Copyright 2019 Signal Messenger, LLC
// SPDX-License-Identifier: AGPL-3.0-only
import type { FunctionComponent } from 'react';
diff --git a/ts/components/emoji/Emoji.tsx b/ts/components/emoji/Emoji.tsx
index 91390e24e..974a0639c 100644
--- a/ts/components/emoji/Emoji.tsx
+++ b/ts/components/emoji/Emoji.tsx
@@ -1,4 +1,4 @@
-// Copyright 2019-2020 Signal Messenger, LLC
+// Copyright 2019 Signal Messenger, LLC
// SPDX-License-Identifier: AGPL-3.0-only
import * as React from 'react';
diff --git a/ts/components/emoji/EmojiButton.tsx b/ts/components/emoji/EmojiButton.tsx
index f861a5371..541627bdd 100644
--- a/ts/components/emoji/EmojiButton.tsx
+++ b/ts/components/emoji/EmojiButton.tsx
@@ -1,4 +1,4 @@
-// Copyright 2019-2022 Signal Messenger, LLC
+// Copyright 2019 Signal Messenger, LLC
// SPDX-License-Identifier: AGPL-3.0-only
import * as React from 'react';
diff --git a/ts/components/emoji/EmojiPicker.stories.tsx b/ts/components/emoji/EmojiPicker.stories.tsx
index 7f7efc1ee..4014f95a4 100644
--- a/ts/components/emoji/EmojiPicker.stories.tsx
+++ b/ts/components/emoji/EmojiPicker.stories.tsx
@@ -1,4 +1,4 @@
-// Copyright 2020-2021 Signal Messenger, LLC
+// Copyright 2020 Signal Messenger, LLC
// SPDX-License-Identifier: AGPL-3.0-only
import * as React from 'react';
diff --git a/ts/components/emoji/EmojiPicker.tsx b/ts/components/emoji/EmojiPicker.tsx
index cd9d6d252..610b3a575 100644
--- a/ts/components/emoji/EmojiPicker.tsx
+++ b/ts/components/emoji/EmojiPicker.tsx
@@ -1,4 +1,4 @@
-// Copyright 2019-2022 Signal Messenger, LLC
+// Copyright 2019 Signal Messenger, LLC
// SPDX-License-Identifier: AGPL-3.0-only
import * as React from 'react';
diff --git a/ts/components/emoji/lib.ts b/ts/components/emoji/lib.ts
index 70d8c0d7b..1d5e4a1c1 100644
--- a/ts/components/emoji/lib.ts
+++ b/ts/components/emoji/lib.ts
@@ -1,4 +1,4 @@
-// Copyright 2019-2022 Signal Messenger, LLC
+// Copyright 2019 Signal Messenger, LLC
// SPDX-License-Identifier: AGPL-3.0-only
// Camelcase disabled due to emoji-datasource using snake_case
diff --git a/ts/components/installScreen/InstallScreenQrCodeNotScannedStep.tsx b/ts/components/installScreen/InstallScreenQrCodeNotScannedStep.tsx
index f957c6219..b16d555a3 100644
--- a/ts/components/installScreen/InstallScreenQrCodeNotScannedStep.tsx
+++ b/ts/components/installScreen/InstallScreenQrCodeNotScannedStep.tsx
@@ -1,4 +1,4 @@
-// Copyright 2021-2022 Signal Messenger, LLC
+// Copyright 2021 Signal Messenger, LLC
// SPDX-License-Identifier: AGPL-3.0-only
import type { ReactElement, ReactNode } from 'react';
diff --git a/ts/components/leftPane/LeftPaneArchiveHelper.tsx b/ts/components/leftPane/LeftPaneArchiveHelper.tsx
index f96a83f21..fa5b72385 100644
--- a/ts/components/leftPane/LeftPaneArchiveHelper.tsx
+++ b/ts/components/leftPane/LeftPaneArchiveHelper.tsx
@@ -1,4 +1,4 @@
-// Copyright 2021-2022 Signal Messenger, LLC
+// Copyright 2021 Signal Messenger, LLC
// SPDX-License-Identifier: AGPL-3.0-only
import type { ReactChild } from 'react';
diff --git a/ts/components/leftPane/LeftPaneChooseGroupMembersHelper.tsx b/ts/components/leftPane/LeftPaneChooseGroupMembersHelper.tsx
index d78e3c750..eebf6390d 100644
--- a/ts/components/leftPane/LeftPaneChooseGroupMembersHelper.tsx
+++ b/ts/components/leftPane/LeftPaneChooseGroupMembersHelper.tsx
@@ -1,4 +1,4 @@
-// Copyright 2021-2022 Signal Messenger, LLC
+// Copyright 2021 Signal Messenger, LLC
// SPDX-License-Identifier: AGPL-3.0-only
import type { ReactChild, ChangeEvent } from 'react';
diff --git a/ts/components/leftPane/LeftPaneComposeHelper.tsx b/ts/components/leftPane/LeftPaneComposeHelper.tsx
index 80fd6969c..a71b89d2f 100644
--- a/ts/components/leftPane/LeftPaneComposeHelper.tsx
+++ b/ts/components/leftPane/LeftPaneComposeHelper.tsx
@@ -1,4 +1,4 @@
-// Copyright 2021-2022 Signal Messenger, LLC
+// Copyright 2021 Signal Messenger, LLC
// SPDX-License-Identifier: AGPL-3.0-only
import type { ReactChild, ChangeEvent } from 'react';
diff --git a/ts/components/leftPane/LeftPaneHelper.tsx b/ts/components/leftPane/LeftPaneHelper.tsx
index bc3639c68..58e81ff5a 100644
--- a/ts/components/leftPane/LeftPaneHelper.tsx
+++ b/ts/components/leftPane/LeftPaneHelper.tsx
@@ -1,4 +1,4 @@
-// Copyright 2021-2022 Signal Messenger, LLC
+// Copyright 2021 Signal Messenger, LLC
// SPDX-License-Identifier: AGPL-3.0-only
import type { ChangeEvent, ReactChild } from 'react';
diff --git a/ts/components/leftPane/LeftPaneInboxHelper.tsx b/ts/components/leftPane/LeftPaneInboxHelper.tsx
index ce8858b57..a7e4757a5 100644
--- a/ts/components/leftPane/LeftPaneInboxHelper.tsx
+++ b/ts/components/leftPane/LeftPaneInboxHelper.tsx
@@ -1,4 +1,4 @@
-// Copyright 2021-2022 Signal Messenger, LLC
+// Copyright 2021 Signal Messenger, LLC
// SPDX-License-Identifier: AGPL-3.0-only
import { last } from 'lodash';
diff --git a/ts/components/leftPane/LeftPaneSearchHelper.tsx b/ts/components/leftPane/LeftPaneSearchHelper.tsx
index d630c14e9..e0fbd2c20 100644
--- a/ts/components/leftPane/LeftPaneSearchHelper.tsx
+++ b/ts/components/leftPane/LeftPaneSearchHelper.tsx
@@ -1,4 +1,4 @@
-// Copyright 2021-2022 Signal Messenger, LLC
+// Copyright 2021 Signal Messenger, LLC
// SPDX-License-Identifier: AGPL-3.0-only
import type { ReactChild } from 'react';
diff --git a/ts/components/stickers/StickerButton.tsx b/ts/components/stickers/StickerButton.tsx
index ccbea36e9..242ed2522 100644
--- a/ts/components/stickers/StickerButton.tsx
+++ b/ts/components/stickers/StickerButton.tsx
@@ -1,4 +1,4 @@
-// Copyright 2019-2021 Signal Messenger, LLC
+// Copyright 2019 Signal Messenger, LLC
// SPDX-License-Identifier: AGPL-3.0-only
import * as React from 'react';
diff --git a/ts/components/stickers/StickerManager.tsx b/ts/components/stickers/StickerManager.tsx
index 2f035c1cf..f563295d1 100644
--- a/ts/components/stickers/StickerManager.tsx
+++ b/ts/components/stickers/StickerManager.tsx
@@ -1,4 +1,4 @@
-// Copyright 2019-2021 Signal Messenger, LLC
+// Copyright 2019 Signal Messenger, LLC
// SPDX-License-Identifier: AGPL-3.0-only
import * as React from 'react';
diff --git a/ts/components/stickers/StickerManagerPackRow.tsx b/ts/components/stickers/StickerManagerPackRow.tsx
index 9e871a7a2..2350a687e 100644
--- a/ts/components/stickers/StickerManagerPackRow.tsx
+++ b/ts/components/stickers/StickerManagerPackRow.tsx
@@ -1,4 +1,4 @@
-// Copyright 2019-2021 Signal Messenger, LLC
+// Copyright 2019 Signal Messenger, LLC
// SPDX-License-Identifier: AGPL-3.0-only
import * as React from 'react';
diff --git a/ts/components/stickers/StickerPackInstallButton.tsx b/ts/components/stickers/StickerPackInstallButton.tsx
index ba9e8c936..b32bb05e5 100644
--- a/ts/components/stickers/StickerPackInstallButton.tsx
+++ b/ts/components/stickers/StickerPackInstallButton.tsx
@@ -1,4 +1,4 @@
-// Copyright 2019-2020 Signal Messenger, LLC
+// Copyright 2019 Signal Messenger, LLC
// SPDX-License-Identifier: AGPL-3.0-only
import type { ButtonHTMLAttributes } from 'react';
diff --git a/ts/components/stickers/StickerPicker.tsx b/ts/components/stickers/StickerPicker.tsx
index f0407ff51..e9e4d1624 100644
--- a/ts/components/stickers/StickerPicker.tsx
+++ b/ts/components/stickers/StickerPicker.tsx
@@ -1,4 +1,4 @@
-// Copyright 2019-2020 Signal Messenger, LLC
+// Copyright 2019 Signal Messenger, LLC
// SPDX-License-Identifier: AGPL-3.0-only
import * as React from 'react';
diff --git a/ts/components/stickers/StickerPreviewModal.tsx b/ts/components/stickers/StickerPreviewModal.tsx
index f39cb3405..7336d1bb2 100644
--- a/ts/components/stickers/StickerPreviewModal.tsx
+++ b/ts/components/stickers/StickerPreviewModal.tsx
@@ -1,4 +1,4 @@
-// Copyright 2019-2021 Signal Messenger, LLC
+// Copyright 2019 Signal Messenger, LLC
// SPDX-License-Identifier: AGPL-3.0-only
import * as React from 'react';
diff --git a/ts/components/stickers/lib.ts b/ts/components/stickers/lib.ts
index 122d36a0b..d16a70802 100644
--- a/ts/components/stickers/lib.ts
+++ b/ts/components/stickers/lib.ts
@@ -1,4 +1,4 @@
-// Copyright 2019-2020 Signal Messenger, LLC
+// Copyright 2019 Signal Messenger, LLC
// SPDX-License-Identifier: AGPL-3.0-only
import type { StickerPackType } from '../../state/ducks/stickers';
diff --git a/ts/firstline.d.ts b/ts/firstline.d.ts
index 97be1e299..1031a1c83 100644
--- a/ts/firstline.d.ts
+++ b/ts/firstline.d.ts
@@ -1,4 +1,4 @@
-// Copyright 2021-2022 Signal Messenger, LLC
+// Copyright 2021 Signal Messenger, LLC
// SPDX-License-Identifier: AGPL-3.0-only
declare module 'firstline' {
diff --git a/ts/groupChange.ts b/ts/groupChange.ts
index 30dc1dc69..bdba7fd22 100644
--- a/ts/groupChange.ts
+++ b/ts/groupChange.ts
@@ -1,4 +1,4 @@
-// Copyright 2020-2022 Signal Messenger, LLC
+// Copyright 2020 Signal Messenger, LLC
// SPDX-License-Identifier: AGPL-3.0-only
import type { LocalizerType } from './types/Util';
diff --git a/ts/groups.ts b/ts/groups.ts
index 3c8dd1963..adb09432e 100644
--- a/ts/groups.ts
+++ b/ts/groups.ts
@@ -1,4 +1,4 @@
-// Copyright 2020-2022 Signal Messenger, LLC
+// Copyright 2020 Signal Messenger, LLC
// SPDX-License-Identifier: AGPL-3.0-only
import {
diff --git a/ts/groups/joinViaLink.ts b/ts/groups/joinViaLink.ts
index 53f2ec992..e0838496a 100644
--- a/ts/groups/joinViaLink.ts
+++ b/ts/groups/joinViaLink.ts
@@ -1,4 +1,4 @@
-// Copyright 2021-2022 Signal Messenger, LLC
+// Copyright 2021 Signal Messenger, LLC
// SPDX-License-Identifier: AGPL-3.0-only
import { render, unmountComponentAtNode } from 'react-dom';
diff --git a/ts/hooks/useBoundActions.ts b/ts/hooks/useBoundActions.ts
index c74b6e956..29cc1e5d6 100644
--- a/ts/hooks/useBoundActions.ts
+++ b/ts/hooks/useBoundActions.ts
@@ -1,4 +1,4 @@
-// Copyright 2020-2021 Signal Messenger, LLC
+// Copyright 2020 Signal Messenger, LLC
// SPDX-License-Identifier: AGPL-3.0-only
import type { ActionCreatorsMapObject } from 'redux';
diff --git a/ts/hooks/useHasWrapped.ts b/ts/hooks/useHasWrapped.ts
index 11f3e3890..4b10e2821 100644
--- a/ts/hooks/useHasWrapped.ts
+++ b/ts/hooks/useHasWrapped.ts
@@ -1,4 +1,4 @@
-// Copyright 2020-2021 Signal Messenger, LLC
+// Copyright 2020 Signal Messenger, LLC
// SPDX-License-Identifier: AGPL-3.0-only
import type { Ref } from 'react';
diff --git a/ts/hooks/useIntersectionObserver.ts b/ts/hooks/useIntersectionObserver.ts
index f79e9e915..3eb3e343b 100644
--- a/ts/hooks/useIntersectionObserver.ts
+++ b/ts/hooks/useIntersectionObserver.ts
@@ -1,4 +1,4 @@
-// Copyright 2020-2021 Signal Messenger, LLC
+// Copyright 2020 Signal Messenger, LLC
// SPDX-License-Identifier: AGPL-3.0-only
import { useCallback, useRef, useState } from 'react';
diff --git a/ts/hooks/usePageVisibility.ts b/ts/hooks/usePageVisibility.ts
index 1faa4be17..cae8f87b3 100644
--- a/ts/hooks/usePageVisibility.ts
+++ b/ts/hooks/usePageVisibility.ts
@@ -1,4 +1,4 @@
-// Copyright 2020-2021 Signal Messenger, LLC
+// Copyright 2020 Signal Messenger, LLC
// SPDX-License-Identifier: AGPL-3.0-only
import { useEffect, useState } from 'react';
diff --git a/ts/hooks/usePortal.ts b/ts/hooks/usePortal.ts
index 94c20c465..75081cd01 100644
--- a/ts/hooks/usePortal.ts
+++ b/ts/hooks/usePortal.ts
@@ -1,4 +1,4 @@
-// Copyright 2019-2020 Signal Messenger, LLC
+// Copyright 2019 Signal Messenger, LLC
// SPDX-License-Identifier: AGPL-3.0-only
import { useEffect, useState } from 'react';
diff --git a/ts/hooks/usePrevious.ts b/ts/hooks/usePrevious.ts
index 5ed10dcb5..bc9ca876f 100644
--- a/ts/hooks/usePrevious.ts
+++ b/ts/hooks/usePrevious.ts
@@ -1,4 +1,4 @@
-// Copyright 2020-2021 Signal Messenger, LLC
+// Copyright 2020 Signal Messenger, LLC
// SPDX-License-Identifier: AGPL-3.0-only
import { useRef } from 'react';
diff --git a/ts/indexeddb.ts b/ts/indexeddb.ts
index ecc2db60d..6d0852c0d 100644
--- a/ts/indexeddb.ts
+++ b/ts/indexeddb.ts
@@ -1,4 +1,4 @@
-// Copyright 2018-2022 Signal Messenger, LLC
+// Copyright 2018 Signal Messenger, LLC
// SPDX-License-Identifier: AGPL-3.0-only
const LEGACY_DATABASE_ID = 'signal';
diff --git a/ts/jobs/conversationJobQueue.ts b/ts/jobs/conversationJobQueue.ts
index 7d379c0be..2744b12f9 100644
--- a/ts/jobs/conversationJobQueue.ts
+++ b/ts/jobs/conversationJobQueue.ts
@@ -1,4 +1,4 @@
-// Copyright 2021-2022 Signal Messenger, LLC
+// Copyright 2021 Signal Messenger, LLC
// SPDX-License-Identifier: AGPL-3.0-only
import { z } from 'zod';
diff --git a/ts/jobs/helpers/findRetryAfterTimeFromError.ts b/ts/jobs/helpers/findRetryAfterTimeFromError.ts
index d2303af5b..be36ad6d4 100644
--- a/ts/jobs/helpers/findRetryAfterTimeFromError.ts
+++ b/ts/jobs/helpers/findRetryAfterTimeFromError.ts
@@ -1,4 +1,4 @@
-// Copyright 2021-2022 Signal Messenger, LLC
+// Copyright 2021 Signal Messenger, LLC
// SPDX-License-Identifier: AGPL-3.0-only
import { isRecord } from '../../util/isRecord';
diff --git a/ts/jobs/helpers/getHttpErrorCode.ts b/ts/jobs/helpers/getHttpErrorCode.ts
index 1ff23dfa8..7c55d7f4d 100644
--- a/ts/jobs/helpers/getHttpErrorCode.ts
+++ b/ts/jobs/helpers/getHttpErrorCode.ts
@@ -1,4 +1,4 @@
-// Copyright 2021-2022 Signal Messenger, LLC
+// Copyright 2021 Signal Messenger, LLC
// SPDX-License-Identifier: AGPL-3.0-only
import { isRecord } from '../../util/isRecord';
diff --git a/ts/jobs/helpers/sendReaction.ts b/ts/jobs/helpers/sendReaction.ts
index 0726d2681..41678f546 100644
--- a/ts/jobs/helpers/sendReaction.ts
+++ b/ts/jobs/helpers/sendReaction.ts
@@ -1,4 +1,4 @@
-// Copyright 2021-2022 Signal Messenger, LLC
+// Copyright 2021 Signal Messenger, LLC
// SPDX-License-Identifier: AGPL-3.0-only
import { isNumber } from 'lodash';
diff --git a/ts/jobs/helpers/sleepForRateLimitRetryAfterTime.ts b/ts/jobs/helpers/sleepForRateLimitRetryAfterTime.ts
index 7c7b8a66b..37f8ff1f5 100644
--- a/ts/jobs/helpers/sleepForRateLimitRetryAfterTime.ts
+++ b/ts/jobs/helpers/sleepForRateLimitRetryAfterTime.ts
@@ -1,4 +1,4 @@
-// Copyright 2021-2022 Signal Messenger, LLC
+// Copyright 2021 Signal Messenger, LLC
// SPDX-License-Identifier: AGPL-3.0-only
import type { LoggerType } from '../../types/Logging';
diff --git a/ts/jobs/helpers/syncHelpers.ts b/ts/jobs/helpers/syncHelpers.ts
index b28b94417..5cdae7f17 100644
--- a/ts/jobs/helpers/syncHelpers.ts
+++ b/ts/jobs/helpers/syncHelpers.ts
@@ -1,4 +1,4 @@
-// Copyright 2021-2022 Signal Messenger, LLC
+// Copyright 2021 Signal Messenger, LLC
// SPDX-License-Identifier: AGPL-3.0-only
import { chunk } from 'lodash';
diff --git a/ts/jobs/initializeAllJobQueues.ts b/ts/jobs/initializeAllJobQueues.ts
index 22c9e86b5..451aab3ad 100644
--- a/ts/jobs/initializeAllJobQueues.ts
+++ b/ts/jobs/initializeAllJobQueues.ts
@@ -1,4 +1,4 @@
-// Copyright 2021-2022 Signal Messenger, LLC
+// Copyright 2021 Signal Messenger, LLC
// SPDX-License-Identifier: AGPL-3.0-only
import type { WebAPIType } from '../textsecure/WebAPI';
diff --git a/ts/jobs/readSyncJobQueue.ts b/ts/jobs/readSyncJobQueue.ts
index d60a6605d..58bc34be1 100644
--- a/ts/jobs/readSyncJobQueue.ts
+++ b/ts/jobs/readSyncJobQueue.ts
@@ -1,4 +1,4 @@
-// Copyright 2021-2022 Signal Messenger, LLC
+// Copyright 2021 Signal Messenger, LLC
// SPDX-License-Identifier: AGPL-3.0-only
import * as durations from '../util/durations';
diff --git a/ts/jobs/viewSyncJobQueue.ts b/ts/jobs/viewSyncJobQueue.ts
index f435b0266..26ec9cdcf 100644
--- a/ts/jobs/viewSyncJobQueue.ts
+++ b/ts/jobs/viewSyncJobQueue.ts
@@ -1,4 +1,4 @@
-// Copyright 2021-2022 Signal Messenger, LLC
+// Copyright 2021 Signal Messenger, LLC
// SPDX-License-Identifier: AGPL-3.0-only
import * as durations from '../util/durations';
diff --git a/ts/linkPreviews/linkPreviewFetch.ts b/ts/linkPreviews/linkPreviewFetch.ts
index d43300dc1..8da77fcf8 100644
--- a/ts/linkPreviews/linkPreviewFetch.ts
+++ b/ts/linkPreviews/linkPreviewFetch.ts
@@ -1,4 +1,4 @@
-// Copyright 2020-2022 Signal Messenger, LLC
+// Copyright 2020 Signal Messenger, LLC
// SPDX-License-Identifier: AGPL-3.0-only
import type { RequestInit, Response } from 'node-fetch';
diff --git a/ts/logging/debuglogs.ts b/ts/logging/debuglogs.ts
index 2bab8a59a..8b631fbc7 100644
--- a/ts/logging/debuglogs.ts
+++ b/ts/logging/debuglogs.ts
@@ -1,4 +1,4 @@
-// Copyright 2018-2021 Signal Messenger, LLC
+// Copyright 2018 Signal Messenger, LLC
// SPDX-License-Identifier: AGPL-3.0-only
import { memoize, sortBy } from 'lodash';
diff --git a/ts/logging/main_process_logging.ts b/ts/logging/main_process_logging.ts
index a4037c961..e9966f799 100644
--- a/ts/logging/main_process_logging.ts
+++ b/ts/logging/main_process_logging.ts
@@ -1,4 +1,4 @@
-// Copyright 2017-2021 Signal Messenger, LLC
+// Copyright 2017 Signal Messenger, LLC
// SPDX-License-Identifier: AGPL-3.0-only
// NOTE: Temporarily allow `then` until we convert the entire file to `async` / `await`:
diff --git a/ts/logging/set_up_renderer_logging.ts b/ts/logging/set_up_renderer_logging.ts
index 87f155fde..e9eb09897 100644
--- a/ts/logging/set_up_renderer_logging.ts
+++ b/ts/logging/set_up_renderer_logging.ts
@@ -1,4 +1,4 @@
-// Copyright 2017-2021 Signal Messenger, LLC
+// Copyright 2017 Signal Messenger, LLC
// SPDX-License-Identifier: AGPL-3.0-only
/* eslint-env node */
diff --git a/ts/logging/uploadDebugLog.ts b/ts/logging/uploadDebugLog.ts
index 09626c16d..bd162a96b 100644
--- a/ts/logging/uploadDebugLog.ts
+++ b/ts/logging/uploadDebugLog.ts
@@ -1,4 +1,4 @@
-// Copyright 2018-2022 Signal Messenger, LLC
+// Copyright 2018 Signal Messenger, LLC
// SPDX-License-Identifier: AGPL-3.0-only
import type { Response } from 'got';
diff --git a/ts/main/settingsChannel.ts b/ts/main/settingsChannel.ts
index 93387833f..620ff919d 100644
--- a/ts/main/settingsChannel.ts
+++ b/ts/main/settingsChannel.ts
@@ -1,4 +1,4 @@
-// Copyright 2017-2021 Signal Messenger, LLC
+// Copyright 2017 Signal Messenger, LLC
// SPDX-License-Identifier: AGPL-3.0-only
import type { BrowserWindow } from 'electron';
diff --git a/ts/manage_full_screen_class.ts b/ts/manage_full_screen_class.ts
index 59751de51..5c3c7a217 100644
--- a/ts/manage_full_screen_class.ts
+++ b/ts/manage_full_screen_class.ts
@@ -1,4 +1,4 @@
-// Copyright 2021-2022 Signal Messenger, LLC
+// Copyright 2021 Signal Messenger, LLC
// SPDX-License-Identifier: AGPL-3.0-only
{
diff --git a/ts/messageModifiers/AttachmentDownloads.ts b/ts/messageModifiers/AttachmentDownloads.ts
index bc80569a4..2529519bc 100644
--- a/ts/messageModifiers/AttachmentDownloads.ts
+++ b/ts/messageModifiers/AttachmentDownloads.ts
@@ -1,4 +1,4 @@
-// Copyright 2019-2022 Signal Messenger, LLC
+// Copyright 2019 Signal Messenger, LLC
// SPDX-License-Identifier: AGPL-3.0-only
import { isNumber, omit } from 'lodash';
diff --git a/ts/messageModifiers/Deletes.ts b/ts/messageModifiers/Deletes.ts
index da0ba5844..0a58f16e7 100644
--- a/ts/messageModifiers/Deletes.ts
+++ b/ts/messageModifiers/Deletes.ts
@@ -1,4 +1,4 @@
-// Copyright 2020-2021 Signal Messenger, LLC
+// Copyright 2020 Signal Messenger, LLC
// SPDX-License-Identifier: AGPL-3.0-only
/* eslint-disable max-classes-per-file */
diff --git a/ts/messageModifiers/MessageReceipts.ts b/ts/messageModifiers/MessageReceipts.ts
index bc9ecbf3b..ffdb03dcd 100644
--- a/ts/messageModifiers/MessageReceipts.ts
+++ b/ts/messageModifiers/MessageReceipts.ts
@@ -1,4 +1,4 @@
-// Copyright 2016-2021 Signal Messenger, LLC
+// Copyright 2016 Signal Messenger, LLC
// SPDX-License-Identifier: AGPL-3.0-only
/* eslint-disable max-classes-per-file */
diff --git a/ts/messageModifiers/MessageRequests.ts b/ts/messageModifiers/MessageRequests.ts
index 515330665..93d5788ea 100644
--- a/ts/messageModifiers/MessageRequests.ts
+++ b/ts/messageModifiers/MessageRequests.ts
@@ -1,4 +1,4 @@
-// Copyright 2020-2021 Signal Messenger, LLC
+// Copyright 2020 Signal Messenger, LLC
// SPDX-License-Identifier: AGPL-3.0-only
/* eslint-disable max-classes-per-file */
diff --git a/ts/messageModifiers/Reactions.ts b/ts/messageModifiers/Reactions.ts
index a37c41e92..dcb587561 100644
--- a/ts/messageModifiers/Reactions.ts
+++ b/ts/messageModifiers/Reactions.ts
@@ -1,4 +1,4 @@
-// Copyright 2020-2021 Signal Messenger, LLC
+// Copyright 2020 Signal Messenger, LLC
// SPDX-License-Identifier: AGPL-3.0-only
/* eslint-disable max-classes-per-file */
diff --git a/ts/messageModifiers/ReadSyncs.ts b/ts/messageModifiers/ReadSyncs.ts
index a8cbcbe3b..f95ab938e 100644
--- a/ts/messageModifiers/ReadSyncs.ts
+++ b/ts/messageModifiers/ReadSyncs.ts
@@ -1,4 +1,4 @@
-// Copyright 2017-2021 Signal Messenger, LLC
+// Copyright 2017 Signal Messenger, LLC
// SPDX-License-Identifier: AGPL-3.0-only
/* eslint-disable max-classes-per-file */
diff --git a/ts/messageModifiers/ViewOnceOpenSyncs.ts b/ts/messageModifiers/ViewOnceOpenSyncs.ts
index c8d05fe26..c3f896611 100644
--- a/ts/messageModifiers/ViewOnceOpenSyncs.ts
+++ b/ts/messageModifiers/ViewOnceOpenSyncs.ts
@@ -1,4 +1,4 @@
-// Copyright 2019-2021 Signal Messenger, LLC
+// Copyright 2019 Signal Messenger, LLC
// SPDX-License-Identifier: AGPL-3.0-only
/* eslint-disable max-classes-per-file */
diff --git a/ts/messages/MessageSendState.ts b/ts/messages/MessageSendState.ts
index 38e53f670..7f1173fc4 100644
--- a/ts/messages/MessageSendState.ts
+++ b/ts/messages/MessageSendState.ts
@@ -1,4 +1,4 @@
-// Copyright 2021-2022 Signal Messenger, LLC
+// Copyright 2021 Signal Messenger, LLC
// SPDX-License-Identifier: AGPL-3.0-only
import { makeEnumParser } from '../util/enum';
diff --git a/ts/messages/getMessagesById.ts b/ts/messages/getMessagesById.ts
index 5a9b51518..5038df69d 100644
--- a/ts/messages/getMessagesById.ts
+++ b/ts/messages/getMessagesById.ts
@@ -1,4 +1,4 @@
-// Copyright 2021-2022 Signal Messenger, LLC
+// Copyright 2021 Signal Messenger, LLC
// SPDX-License-Identifier: AGPL-3.0-only
import * as log from '../logging/log';
diff --git a/ts/messages/migrateMessageData.ts b/ts/messages/migrateMessageData.ts
index 3d1ba4fe8..a7779c87b 100644
--- a/ts/messages/migrateMessageData.ts
+++ b/ts/messages/migrateMessageData.ts
@@ -1,4 +1,4 @@
-// Copyright 2018-2022 Signal Messenger, LLC
+// Copyright 2018 Signal Messenger, LLC
// SPDX-License-Identifier: AGPL-3.0-only
import { isFunction, isNumber } from 'lodash';
diff --git a/ts/model-types.d.ts b/ts/model-types.d.ts
index 956dd381b..6a3793380 100644
--- a/ts/model-types.d.ts
+++ b/ts/model-types.d.ts
@@ -1,4 +1,4 @@
-// Copyright 2020-2022 Signal Messenger, LLC
+// Copyright 2020 Signal Messenger, LLC
// SPDX-License-Identifier: AGPL-3.0-only
/* eslint-disable max-classes-per-file */
diff --git a/ts/models/conversations.ts b/ts/models/conversations.ts
index f010a55ad..c2ef43856 100644
--- a/ts/models/conversations.ts
+++ b/ts/models/conversations.ts
@@ -1,4 +1,4 @@
-// Copyright 2020-2022 Signal Messenger, LLC
+// Copyright 2020 Signal Messenger, LLC
// SPDX-License-Identifier: AGPL-3.0-only
import {
diff --git a/ts/models/messages.ts b/ts/models/messages.ts
index c1346031b..80236b79e 100644
--- a/ts/models/messages.ts
+++ b/ts/models/messages.ts
@@ -1,4 +1,4 @@
-// Copyright 2020-2022 Signal Messenger, LLC
+// Copyright 2020 Signal Messenger, LLC
// SPDX-License-Identifier: AGPL-3.0-only
import {
diff --git a/ts/protobuf/README.md b/ts/protobuf/README.md
index eb772ca6c..043ff7bf7 100644
--- a/ts/protobuf/README.md
+++ b/ts/protobuf/README.md
@@ -1,4 +1,4 @@
-
+
# Protocol Buffers
diff --git a/ts/protobuf/index.ts b/ts/protobuf/index.ts
index 5c2465d1f..6fa2bde35 100644
--- a/ts/protobuf/index.ts
+++ b/ts/protobuf/index.ts
@@ -1,4 +1,4 @@
-// Copyright 2018-2020 Signal Messenger, LLC
+// Copyright 2018 Signal Messenger, LLC
// SPDX-License-Identifier: AGPL-3.0-only
import './wrap';
diff --git a/ts/quill/emoji/blot.tsx b/ts/quill/emoji/blot.tsx
index ea32a7394..797f5bc1d 100644
--- a/ts/quill/emoji/blot.tsx
+++ b/ts/quill/emoji/blot.tsx
@@ -1,4 +1,4 @@
-// Copyright 2020-2021 Signal Messenger, LLC
+// Copyright 2020 Signal Messenger, LLC
// SPDX-License-Identifier: AGPL-3.0-only
import type Parchment from 'parchment';
diff --git a/ts/quill/emoji/completion.tsx b/ts/quill/emoji/completion.tsx
index c32f2cb60..ea846d243 100644
--- a/ts/quill/emoji/completion.tsx
+++ b/ts/quill/emoji/completion.tsx
@@ -1,4 +1,4 @@
-// Copyright 2020-2021 Signal Messenger, LLC
+// Copyright 2020 Signal Messenger, LLC
// SPDX-License-Identifier: AGPL-3.0-only
import Quill from 'quill';
diff --git a/ts/quill/memberRepository.ts b/ts/quill/memberRepository.ts
index 3e91a4f7c..178ef91e6 100644
--- a/ts/quill/memberRepository.ts
+++ b/ts/quill/memberRepository.ts
@@ -1,4 +1,4 @@
-// Copyright 2020-2022 Signal Messenger, LLC
+// Copyright 2020 Signal Messenger, LLC
// SPDX-License-Identifier: AGPL-3.0-only
import Fuse from 'fuse.js';
diff --git a/ts/quill/mentions/blot.tsx b/ts/quill/mentions/blot.tsx
index 555695b83..bdffa169e 100644
--- a/ts/quill/mentions/blot.tsx
+++ b/ts/quill/mentions/blot.tsx
@@ -1,4 +1,4 @@
-// Copyright 2020-2021 Signal Messenger, LLC
+// Copyright 2020 Signal Messenger, LLC
// SPDX-License-Identifier: AGPL-3.0-only
/* eslint-disable max-classes-per-file */
diff --git a/ts/quill/mentions/completion.tsx b/ts/quill/mentions/completion.tsx
index 8e8666d70..b57643140 100644
--- a/ts/quill/mentions/completion.tsx
+++ b/ts/quill/mentions/completion.tsx
@@ -1,4 +1,4 @@
-// Copyright 2020-2022 Signal Messenger, LLC
+// Copyright 2020 Signal Messenger, LLC
// SPDX-License-Identifier: AGPL-3.0-only
import _ from 'lodash';
diff --git a/ts/quill/types.d.ts b/ts/quill/types.d.ts
index 35767afa2..fc969fb2d 100644
--- a/ts/quill/types.d.ts
+++ b/ts/quill/types.d.ts
@@ -1,4 +1,4 @@
-// Copyright 2019-2022 Signal Messenger, LLC
+// Copyright 2019 Signal Messenger, LLC
// SPDX-License-Identifier: AGPL-3.0-only
import type UpdatedDelta from 'quill-delta';
diff --git a/ts/quill/util.ts b/ts/quill/util.ts
index 6fdb32dd7..223868b29 100644
--- a/ts/quill/util.ts
+++ b/ts/quill/util.ts
@@ -1,4 +1,4 @@
-// Copyright 2020-2021 Signal Messenger, LLC
+// Copyright 2020 Signal Messenger, LLC
// SPDX-License-Identifier: AGPL-3.0-only
import emojiRegex from 'emoji-regex';
diff --git a/ts/routineProfileRefresh.ts b/ts/routineProfileRefresh.ts
index 64c81a31b..13860b7a5 100644
--- a/ts/routineProfileRefresh.ts
+++ b/ts/routineProfileRefresh.ts
@@ -1,4 +1,4 @@
-// Copyright 2021-2022 Signal Messenger, LLC
+// Copyright 2021 Signal Messenger, LLC
// SPDX-License-Identifier: AGPL-3.0-only
import { isNil, sortBy } from 'lodash';
diff --git a/ts/scripts/after-pack.ts b/ts/scripts/after-pack.ts
index f3f6b185a..66befe480 100644
--- a/ts/scripts/after-pack.ts
+++ b/ts/scripts/after-pack.ts
@@ -1,4 +1,4 @@
-// Copyright 2021-2022 Signal Messenger, LLC
+// Copyright 2021 Signal Messenger, LLC
// SPDX-License-Identifier: AGPL-3.0-only
import type { AfterPackContext } from 'electron-builder';
diff --git a/ts/scripts/copy-and-concat.ts b/ts/scripts/copy-and-concat.ts
index b7bdbdff5..d70f38f72 100644
--- a/ts/scripts/copy-and-concat.ts
+++ b/ts/scripts/copy-and-concat.ts
@@ -1,4 +1,4 @@
-// Copyright 2021-2022 Signal Messenger, LLC
+// Copyright 2021 Signal Messenger, LLC
// SPDX-License-Identifier: AGPL-3.0-only
import { basename, join } from 'path';
diff --git a/ts/scripts/notarize.ts b/ts/scripts/notarize.ts
index 1f1a3faf3..113e2b8f6 100644
--- a/ts/scripts/notarize.ts
+++ b/ts/scripts/notarize.ts
@@ -1,4 +1,4 @@
-// Copyright 2019-2022 Signal Messenger, LLC
+// Copyright 2019 Signal Messenger, LLC
// SPDX-License-Identifier: AGPL-3.0-only
import path from 'path';
diff --git a/ts/scripts/prune-macos-release.ts b/ts/scripts/prune-macos-release.ts
index cb91ded60..b09f3731e 100644
--- a/ts/scripts/prune-macos-release.ts
+++ b/ts/scripts/prune-macos-release.ts
@@ -1,4 +1,4 @@
-// Copyright 2020-2022 Signal Messenger, LLC
+// Copyright 2020 Signal Messenger, LLC
// SPDX-License-Identifier: AGPL-3.0-only
import fs from 'fs/promises';
diff --git a/ts/scripts/test-electron.ts b/ts/scripts/test-electron.ts
index 23f3a4fbc..75c9171f5 100644
--- a/ts/scripts/test-electron.ts
+++ b/ts/scripts/test-electron.ts
@@ -1,4 +1,4 @@
-// Copyright 2021-2022 Signal Messenger, LLC
+// Copyright 2021 Signal Messenger, LLC
// SPDX-License-Identifier: AGPL-3.0-only
import { execFileSync } from 'child_process';
diff --git a/ts/scripts/test-release.ts b/ts/scripts/test-release.ts
index f57245823..97f5442fd 100644
--- a/ts/scripts/test-release.ts
+++ b/ts/scripts/test-release.ts
@@ -1,4 +1,4 @@
-// Copyright 2021-2022 Signal Messenger, LLC
+// Copyright 2021 Signal Messenger, LLC
// SPDX-License-Identifier: AGPL-3.0-only
import asar from 'asar';
diff --git a/ts/services/audioRecorder.ts b/ts/services/audioRecorder.ts
index 1a53e066a..d5df6cc4c 100644
--- a/ts/services/audioRecorder.ts
+++ b/ts/services/audioRecorder.ts
@@ -1,4 +1,4 @@
-// Copyright 2016-2020 Signal Messenger, LLC
+// Copyright 2016 Signal Messenger, LLC
// SPDX-License-Identifier: AGPL-3.0-only
import { requestMicrophonePermissions } from '../util/requestMicrophonePermissions';
diff --git a/ts/services/calling.ts b/ts/services/calling.ts
index 478b9f72d..49721f726 100644
--- a/ts/services/calling.ts
+++ b/ts/services/calling.ts
@@ -1,4 +1,4 @@
-// Copyright 2020-2022 Signal Messenger, LLC
+// Copyright 2020 Signal Messenger, LLC
// SPDX-License-Identifier: AGPL-3.0-only
import type { DesktopCapturerSource } from 'electron';
diff --git a/ts/services/contactSync.ts b/ts/services/contactSync.ts
index 7f64978c6..f7e378670 100644
--- a/ts/services/contactSync.ts
+++ b/ts/services/contactSync.ts
@@ -1,4 +1,4 @@
-// Copyright 2020-2022 Signal Messenger, LLC
+// Copyright 2020 Signal Messenger, LLC
// SPDX-License-Identifier: AGPL-3.0-only
import PQueue from 'p-queue';
diff --git a/ts/services/expiringMessagesDeletion.ts b/ts/services/expiringMessagesDeletion.ts
index 89ac28a36..1b078a283 100644
--- a/ts/services/expiringMessagesDeletion.ts
+++ b/ts/services/expiringMessagesDeletion.ts
@@ -1,4 +1,4 @@
-// Copyright 2016-2022 Signal Messenger, LLC
+// Copyright 2016 Signal Messenger, LLC
// SPDX-License-Identifier: AGPL-3.0-only
import { debounce } from 'lodash';
diff --git a/ts/services/notifications.ts b/ts/services/notifications.ts
index a5393b8f6..2e33c5453 100644
--- a/ts/services/notifications.ts
+++ b/ts/services/notifications.ts
@@ -1,4 +1,4 @@
-// Copyright 2015-2021 Signal Messenger, LLC
+// Copyright 2015 Signal Messenger, LLC
// SPDX-License-Identifier: AGPL-3.0-only
import { debounce } from 'lodash';
diff --git a/ts/services/storage.ts b/ts/services/storage.ts
index ed5b2032a..12837d171 100644
--- a/ts/services/storage.ts
+++ b/ts/services/storage.ts
@@ -1,4 +1,4 @@
-// Copyright 2020-2022 Signal Messenger, LLC
+// Copyright 2020 Signal Messenger, LLC
// SPDX-License-Identifier: AGPL-3.0-only
import { debounce, isNumber, chunk } from 'lodash';
diff --git a/ts/services/storageRecordOps.ts b/ts/services/storageRecordOps.ts
index 9c2705cb5..fdd66b398 100644
--- a/ts/services/storageRecordOps.ts
+++ b/ts/services/storageRecordOps.ts
@@ -1,4 +1,4 @@
-// Copyright 2020-2022 Signal Messenger, LLC
+// Copyright 2020 Signal Messenger, LLC
// SPDX-License-Identifier: AGPL-3.0-only
import { isEqual, isNumber } from 'lodash';
diff --git a/ts/services/tapToViewMessagesDeletionService.ts b/ts/services/tapToViewMessagesDeletionService.ts
index 192e30816..902e99baa 100644
--- a/ts/services/tapToViewMessagesDeletionService.ts
+++ b/ts/services/tapToViewMessagesDeletionService.ts
@@ -1,4 +1,4 @@
-// Copyright 2019-2022 Signal Messenger, LLC
+// Copyright 2019 Signal Messenger, LLC
// SPDX-License-Identifier: AGPL-3.0-only
import { debounce } from 'lodash';
diff --git a/ts/services/username.ts b/ts/services/username.ts
index 5fe04bd88..9f6512c00 100644
--- a/ts/services/username.ts
+++ b/ts/services/username.ts
@@ -1,4 +1,4 @@
-// Copyright 2021-2022 Signal Messenger, LLC
+// Copyright 2021 Signal Messenger, LLC
// SPDX-License-Identifier: AGPL-3.0-only
import { singleProtoJobQueue } from '../jobs/singleProtoJobQueue';
diff --git a/ts/services/writeProfile.ts b/ts/services/writeProfile.ts
index 184a2b004..365eab67e 100644
--- a/ts/services/writeProfile.ts
+++ b/ts/services/writeProfile.ts
@@ -1,4 +1,4 @@
-// Copyright 2021-2022 Signal Messenger, LLC
+// Copyright 2021 Signal Messenger, LLC
// SPDX-License-Identifier: AGPL-3.0-only
import dataInterface from '../sql/Client';
diff --git a/ts/setAppLoadingScreenMessage.ts b/ts/setAppLoadingScreenMessage.ts
index 36aede445..e6eb6b0ed 100644
--- a/ts/setAppLoadingScreenMessage.ts
+++ b/ts/setAppLoadingScreenMessage.ts
@@ -1,4 +1,4 @@
-// Copyright 2018-2022 Signal Messenger, LLC
+// Copyright 2018 Signal Messenger, LLC
// SPDX-License-Identifier: AGPL-3.0-only
import type { LocalizerType } from './types/Util';
diff --git a/ts/shims/Whisper.ts b/ts/shims/Whisper.ts
index f5580b0f2..f995b8910 100644
--- a/ts/shims/Whisper.ts
+++ b/ts/shims/Whisper.ts
@@ -1,4 +1,4 @@
-// Copyright 2019-2020 Signal Messenger, LLC
+// Copyright 2019 Signal Messenger, LLC
// SPDX-License-Identifier: AGPL-3.0-only
export function showSettings(): void {
diff --git a/ts/shims/dispatchItemsMiddleware.ts b/ts/shims/dispatchItemsMiddleware.ts
index 0ec5ff849..9cf2971b0 100644
--- a/ts/shims/dispatchItemsMiddleware.ts
+++ b/ts/shims/dispatchItemsMiddleware.ts
@@ -1,4 +1,4 @@
-// Copyright 2021-2022 Signal Messenger, LLC
+// Copyright 2021 Signal Messenger, LLC
// SPDX-License-Identifier: AGPL-3.0-only
import { ipcRenderer } from 'electron';
diff --git a/ts/shims/events.ts b/ts/shims/events.ts
index 27d3051f5..6beea7328 100644
--- a/ts/shims/events.ts
+++ b/ts/shims/events.ts
@@ -1,4 +1,4 @@
-// Copyright 2019-2022 Signal Messenger, LLC
+// Copyright 2019 Signal Messenger, LLC
// SPDX-License-Identifier: AGPL-3.0-only
// Matching Whisper.events.trigger API
diff --git a/ts/shims/showConfirmationDialog.tsx b/ts/shims/showConfirmationDialog.tsx
index 3ebf7102d..952868170 100644
--- a/ts/shims/showConfirmationDialog.tsx
+++ b/ts/shims/showConfirmationDialog.tsx
@@ -1,4 +1,4 @@
-// Copyright 2015-2021 Signal Messenger, LLC
+// Copyright 2015 Signal Messenger, LLC
// SPDX-License-Identifier: AGPL-3.0-only
// This file is here temporarily while we're switching off of Backbone into
diff --git a/ts/shims/socketStatus.ts b/ts/shims/socketStatus.ts
index 2a3e13247..8353a3bac 100644
--- a/ts/shims/socketStatus.ts
+++ b/ts/shims/socketStatus.ts
@@ -1,4 +1,4 @@
-// Copyright 2020-2021 Signal Messenger, LLC
+// Copyright 2020 Signal Messenger, LLC
// SPDX-License-Identifier: AGPL-3.0-only
import type { SocketStatus } from '../types/SocketStatus';
diff --git a/ts/shims/storage.ts b/ts/shims/storage.ts
index b5f8e4cc4..174bae0c5 100644
--- a/ts/shims/storage.ts
+++ b/ts/shims/storage.ts
@@ -1,4 +1,4 @@
-// Copyright 2019-2020 Signal Messenger, LLC
+// Copyright 2019 Signal Messenger, LLC
// SPDX-License-Identifier: AGPL-3.0-only
import type { StorageAccessType } from '../types/Storage.d';
diff --git a/ts/shims/textsecure.ts b/ts/shims/textsecure.ts
index 5ed10bf17..883bf37f1 100644
--- a/ts/shims/textsecure.ts
+++ b/ts/shims/textsecure.ts
@@ -1,4 +1,4 @@
-// Copyright 2019-2022 Signal Messenger, LLC
+// Copyright 2019 Signal Messenger, LLC
// SPDX-License-Identifier: AGPL-3.0-only
import * as log from '../logging/log';
diff --git a/ts/shims/themeChanged.ts b/ts/shims/themeChanged.ts
index 13a8951ce..8b79e5706 100644
--- a/ts/shims/themeChanged.ts
+++ b/ts/shims/themeChanged.ts
@@ -1,4 +1,4 @@
-// Copyright 2021-2022 Signal Messenger, LLC
+// Copyright 2021 Signal Messenger, LLC
// SPDX-License-Identifier: AGPL-3.0-only
import { getThemeType } from '../util/getThemeType';
diff --git a/ts/signal.ts b/ts/signal.ts
index 1efce74be..dde7fad19 100644
--- a/ts/signal.ts
+++ b/ts/signal.ts
@@ -1,4 +1,4 @@
-// Copyright 2018-2022 Signal Messenger, LLC
+// Copyright 2018 Signal Messenger, LLC
// SPDX-License-Identifier: AGPL-3.0-only
// The idea with this file is to make it webpackable for the style guide
diff --git a/ts/sql/Client.ts b/ts/sql/Client.ts
index 2bb62f005..aa929fe6d 100644
--- a/ts/sql/Client.ts
+++ b/ts/sql/Client.ts
@@ -1,4 +1,4 @@
-// Copyright 2020-2021 Signal Messenger, LLC
+// Copyright 2020 Signal Messenger, LLC
// SPDX-License-Identifier: AGPL-3.0-only
import { ipcRenderer as ipc } from 'electron';
diff --git a/ts/sql/Interface.ts b/ts/sql/Interface.ts
index a798c3fa1..8c1d3edb7 100644
--- a/ts/sql/Interface.ts
+++ b/ts/sql/Interface.ts
@@ -1,4 +1,4 @@
-// Copyright 2020-2022 Signal Messenger, LLC
+// Copyright 2020 Signal Messenger, LLC
// SPDX-License-Identifier: AGPL-3.0-only
import type {
diff --git a/ts/sql/Server.ts b/ts/sql/Server.ts
index 7ec457b19..7b35eb397 100644
--- a/ts/sql/Server.ts
+++ b/ts/sql/Server.ts
@@ -1,4 +1,4 @@
-// Copyright 2020-2022 Signal Messenger, LLC
+// Copyright 2020 Signal Messenger, LLC
// SPDX-License-Identifier: AGPL-3.0-only
/* eslint-disable camelcase */
diff --git a/ts/sql/migrations/56-add-unseen-to-message.ts b/ts/sql/migrations/56-add-unseen-to-message.ts
index ace178f73..cbb86599a 100644
--- a/ts/sql/migrations/56-add-unseen-to-message.ts
+++ b/ts/sql/migrations/56-add-unseen-to-message.ts
@@ -1,4 +1,4 @@
-// Copyright 2021-2022 Signal Messenger, LLC
+// Copyright 2021 Signal Messenger, LLC
// SPDX-License-Identifier: AGPL-3.0-only
import type { Database } from '@signalapp/better-sqlite3';
diff --git a/ts/sql/migrations/58-update-unread.ts b/ts/sql/migrations/58-update-unread.ts
index bda043dd6..b8c6b8a98 100644
--- a/ts/sql/migrations/58-update-unread.ts
+++ b/ts/sql/migrations/58-update-unread.ts
@@ -1,4 +1,4 @@
-// Copyright 2021-2022 Signal Messenger, LLC
+// Copyright 2021 Signal Messenger, LLC
// SPDX-License-Identifier: AGPL-3.0-only
import type { Database } from '@signalapp/better-sqlite3';
diff --git a/ts/sql/migrations/60-update-expiring-index.ts b/ts/sql/migrations/60-update-expiring-index.ts
index 076abf9b7..58fcb1838 100644
--- a/ts/sql/migrations/60-update-expiring-index.ts
+++ b/ts/sql/migrations/60-update-expiring-index.ts
@@ -1,4 +1,4 @@
-// Copyright 2021-2022 Signal Messenger, LLC
+// Copyright 2021 Signal Messenger, LLC
// SPDX-License-Identifier: AGPL-3.0-only
import type { Database } from '@signalapp/better-sqlite3';
diff --git a/ts/sql/migrations/62-add-urgent-to-send-log.ts b/ts/sql/migrations/62-add-urgent-to-send-log.ts
index 421d86029..c4da52818 100644
--- a/ts/sql/migrations/62-add-urgent-to-send-log.ts
+++ b/ts/sql/migrations/62-add-urgent-to-send-log.ts
@@ -1,4 +1,4 @@
-// Copyright 2021-2022 Signal Messenger, LLC
+// Copyright 2021 Signal Messenger, LLC
// SPDX-License-Identifier: AGPL-3.0-only
import type { Database } from '@signalapp/better-sqlite3';
diff --git a/ts/sql/migrations/63-add-urgent-to-unprocessed.ts b/ts/sql/migrations/63-add-urgent-to-unprocessed.ts
index dd0a3db2f..2149c953d 100644
--- a/ts/sql/migrations/63-add-urgent-to-unprocessed.ts
+++ b/ts/sql/migrations/63-add-urgent-to-unprocessed.ts
@@ -1,4 +1,4 @@
-// Copyright 2021-2022 Signal Messenger, LLC
+// Copyright 2021 Signal Messenger, LLC
// SPDX-License-Identifier: AGPL-3.0-only
import type { Database } from '@signalapp/better-sqlite3';
diff --git a/ts/sql/migrations/65-add-storage-id-to-stickers.ts b/ts/sql/migrations/65-add-storage-id-to-stickers.ts
index 5483a6c27..12197fdf5 100644
--- a/ts/sql/migrations/65-add-storage-id-to-stickers.ts
+++ b/ts/sql/migrations/65-add-storage-id-to-stickers.ts
@@ -1,4 +1,4 @@
-// Copyright 2021-2022 Signal Messenger, LLC
+// Copyright 2021 Signal Messenger, LLC
// SPDX-License-Identifier: AGPL-3.0-only
import type { Database } from '@signalapp/better-sqlite3';
diff --git a/ts/sql/migrations/67-add-story-to-unprocessed.ts b/ts/sql/migrations/67-add-story-to-unprocessed.ts
index 9ff4032a0..cea1070f1 100644
--- a/ts/sql/migrations/67-add-story-to-unprocessed.ts
+++ b/ts/sql/migrations/67-add-story-to-unprocessed.ts
@@ -1,4 +1,4 @@
-// Copyright 2021-2022 Signal Messenger, LLC
+// Copyright 2021 Signal Messenger, LLC
// SPDX-License-Identifier: AGPL-3.0-only
import type { Database } from '@signalapp/better-sqlite3';
diff --git a/ts/sql/migrations/70-story-reply-index.ts b/ts/sql/migrations/70-story-reply-index.ts
index f55886759..aae22ff84 100644
--- a/ts/sql/migrations/70-story-reply-index.ts
+++ b/ts/sql/migrations/70-story-reply-index.ts
@@ -1,4 +1,4 @@
-// Copyright 2021-2022 Signal Messenger, LLC
+// Copyright 2021 Signal Messenger, LLC
// SPDX-License-Identifier: AGPL-3.0-only
import type { Database } from '@signalapp/better-sqlite3';
diff --git a/ts/sql/migrations/index.ts b/ts/sql/migrations/index.ts
index 192f102e9..7155e89ba 100644
--- a/ts/sql/migrations/index.ts
+++ b/ts/sql/migrations/index.ts
@@ -1,4 +1,4 @@
-// Copyright 2021-2022 Signal Messenger, LLC
+// Copyright 2021 Signal Messenger, LLC
// SPDX-License-Identifier: AGPL-3.0-only
import type { Database } from '@signalapp/better-sqlite3';
diff --git a/ts/state/actions.ts b/ts/state/actions.ts
index 4ca6b6e0d..9b920da8e 100644
--- a/ts/state/actions.ts
+++ b/ts/state/actions.ts
@@ -1,4 +1,4 @@
-// Copyright 2019-2022 Signal Messenger, LLC
+// Copyright 2019 Signal Messenger, LLC
// SPDX-License-Identifier: AGPL-3.0-only
import { actions as accounts } from './ducks/accounts';
diff --git a/ts/state/createStore.ts b/ts/state/createStore.ts
index 4c3bf4f5b..3780f1584 100644
--- a/ts/state/createStore.ts
+++ b/ts/state/createStore.ts
@@ -1,4 +1,4 @@
-// Copyright 2019-2022 Signal Messenger, LLC
+// Copyright 2019 Signal Messenger, LLC
// SPDX-License-Identifier: AGPL-3.0-only
/* eslint-disable no-console */
diff --git a/ts/state/ducks/audioPlayer.ts b/ts/state/ducks/audioPlayer.ts
index e4b69f5d4..4f7fdd744 100644
--- a/ts/state/ducks/audioPlayer.ts
+++ b/ts/state/ducks/audioPlayer.ts
@@ -1,4 +1,4 @@
-// Copyright 2021-2022 Signal Messenger, LLC
+// Copyright 2021 Signal Messenger, LLC
// SPDX-License-Identifier: AGPL-3.0-only
import type { ThunkAction } from 'redux-thunk';
diff --git a/ts/state/ducks/calling.ts b/ts/state/ducks/calling.ts
index 7ffebcc24..04d4a5da9 100644
--- a/ts/state/ducks/calling.ts
+++ b/ts/state/ducks/calling.ts
@@ -1,4 +1,4 @@
-// Copyright 2020-2022 Signal Messenger, LLC
+// Copyright 2020 Signal Messenger, LLC
// SPDX-License-Identifier: AGPL-3.0-only
import { ipcRenderer } from 'electron';
diff --git a/ts/state/ducks/composer.ts b/ts/state/ducks/composer.ts
index 6dffdfcf2..79b1c85d8 100644
--- a/ts/state/ducks/composer.ts
+++ b/ts/state/ducks/composer.ts
@@ -1,4 +1,4 @@
-// Copyright 2021-2022 Signal Messenger, LLC
+// Copyright 2021 Signal Messenger, LLC
// SPDX-License-Identifier: AGPL-3.0-only
import path from 'path';
diff --git a/ts/state/ducks/conversations.ts b/ts/state/ducks/conversations.ts
index 9da9a85d4..294c9a92c 100644
--- a/ts/state/ducks/conversations.ts
+++ b/ts/state/ducks/conversations.ts
@@ -1,4 +1,4 @@
-// Copyright 2019-2022 Signal Messenger, LLC
+// Copyright 2019 Signal Messenger, LLC
// SPDX-License-Identifier: AGPL-3.0-only
import type { ThunkAction } from 'redux-thunk';
diff --git a/ts/state/ducks/emojis.ts b/ts/state/ducks/emojis.ts
index 4fd5f54bf..7d054f5ab 100644
--- a/ts/state/ducks/emojis.ts
+++ b/ts/state/ducks/emojis.ts
@@ -1,4 +1,4 @@
-// Copyright 2019-2020 Signal Messenger, LLC
+// Copyright 2019 Signal Messenger, LLC
// SPDX-License-Identifier: AGPL-3.0-only
import { take, uniq } from 'lodash';
diff --git a/ts/state/ducks/items.ts b/ts/state/ducks/items.ts
index 56abbd728..0618fa9f3 100644
--- a/ts/state/ducks/items.ts
+++ b/ts/state/ducks/items.ts
@@ -1,4 +1,4 @@
-// Copyright 2019-2021 Signal Messenger, LLC
+// Copyright 2019 Signal Messenger, LLC
// SPDX-License-Identifier: AGPL-3.0-only
import { omit } from 'lodash';
diff --git a/ts/state/ducks/noop.ts b/ts/state/ducks/noop.ts
index c175e935e..dfa6f38de 100644
--- a/ts/state/ducks/noop.ts
+++ b/ts/state/ducks/noop.ts
@@ -1,4 +1,4 @@
-// Copyright 2019-2020 Signal Messenger, LLC
+// Copyright 2019 Signal Messenger, LLC
// SPDX-License-Identifier: AGPL-3.0-only
export type NoopActionType = {
diff --git a/ts/state/ducks/search.ts b/ts/state/ducks/search.ts
index b224ee3a9..1fb3b7230 100644
--- a/ts/state/ducks/search.ts
+++ b/ts/state/ducks/search.ts
@@ -1,4 +1,4 @@
-// Copyright 2019-2022 Signal Messenger, LLC
+// Copyright 2019 Signal Messenger, LLC
// SPDX-License-Identifier: AGPL-3.0-only
import type { ThunkAction, ThunkDispatch } from 'redux-thunk';
diff --git a/ts/state/ducks/stickers.ts b/ts/state/ducks/stickers.ts
index 751651363..c2d5d79ba 100644
--- a/ts/state/ducks/stickers.ts
+++ b/ts/state/ducks/stickers.ts
@@ -1,4 +1,4 @@
-// Copyright 2019-2020 Signal Messenger, LLC
+// Copyright 2019 Signal Messenger, LLC
// SPDX-License-Identifier: AGPL-3.0-only
import type { Dictionary } from 'lodash';
diff --git a/ts/state/ducks/stories.ts b/ts/state/ducks/stories.ts
index f1d715f31..08e9caa29 100644
--- a/ts/state/ducks/stories.ts
+++ b/ts/state/ducks/stories.ts
@@ -1,4 +1,4 @@
-// Copyright 2021-2022 Signal Messenger, LLC
+// Copyright 2021 Signal Messenger, LLC
// SPDX-License-Identifier: AGPL-3.0-only
import type { ThunkAction, ThunkDispatch } from 'redux-thunk';
diff --git a/ts/state/ducks/user.ts b/ts/state/ducks/user.ts
index bc405b538..9e963f3ee 100644
--- a/ts/state/ducks/user.ts
+++ b/ts/state/ducks/user.ts
@@ -1,4 +1,4 @@
-// Copyright 2019-2022 Signal Messenger, LLC
+// Copyright 2019 Signal Messenger, LLC
// SPDX-License-Identifier: AGPL-3.0-only
import { trigger } from '../../shims/events';
diff --git a/ts/state/reducer.ts b/ts/state/reducer.ts
index cc9a125a7..50c07d473 100644
--- a/ts/state/reducer.ts
+++ b/ts/state/reducer.ts
@@ -1,4 +1,4 @@
-// Copyright 2019-2022 Signal Messenger, LLC
+// Copyright 2019 Signal Messenger, LLC
// SPDX-License-Identifier: AGPL-3.0-only
import { combineReducers } from 'redux';
diff --git a/ts/state/roots/createGroupV2JoinModal.tsx b/ts/state/roots/createGroupV2JoinModal.tsx
index 52494aa7e..438060061 100644
--- a/ts/state/roots/createGroupV2JoinModal.tsx
+++ b/ts/state/roots/createGroupV2JoinModal.tsx
@@ -1,4 +1,4 @@
-// Copyright 2021-2022 Signal Messenger, LLC
+// Copyright 2021 Signal Messenger, LLC
// SPDX-License-Identifier: AGPL-3.0-only
// TODO DESKTOP-4761
diff --git a/ts/state/roots/createSafetyNumberViewer.tsx b/ts/state/roots/createSafetyNumberViewer.tsx
index 8c0fd0c3e..8aecb0013 100644
--- a/ts/state/roots/createSafetyNumberViewer.tsx
+++ b/ts/state/roots/createSafetyNumberViewer.tsx
@@ -1,4 +1,4 @@
-// Copyright 2020-2022 Signal Messenger, LLC
+// Copyright 2020 Signal Messenger, LLC
// SPDX-License-Identifier: AGPL-3.0-only
import React from 'react';
diff --git a/ts/state/selectors/accounts.ts b/ts/state/selectors/accounts.ts
index caca10dfb..78fa55e07 100644
--- a/ts/state/selectors/accounts.ts
+++ b/ts/state/selectors/accounts.ts
@@ -1,4 +1,4 @@
-// Copyright 2019-2021 Signal Messenger, LLC
+// Copyright 2019 Signal Messenger, LLC
// SPDX-License-Identifier: AGPL-3.0-only
import { createSelector } from 'reselect';
diff --git a/ts/state/selectors/audioPlayer.ts b/ts/state/selectors/audioPlayer.ts
index 0427e6ed6..bafa90be4 100644
--- a/ts/state/selectors/audioPlayer.ts
+++ b/ts/state/selectors/audioPlayer.ts
@@ -1,4 +1,4 @@
-// Copyright 2021-2022 Signal Messenger, LLC
+// Copyright 2021 Signal Messenger, LLC
// SPDX-License-Identifier: AGPL-3.0-only
import { createSelector } from 'reselect';
diff --git a/ts/state/selectors/calling.ts b/ts/state/selectors/calling.ts
index 73bbaa01b..6a63a76c1 100644
--- a/ts/state/selectors/calling.ts
+++ b/ts/state/selectors/calling.ts
@@ -1,4 +1,4 @@
-// Copyright 2020-2022 Signal Messenger, LLC
+// Copyright 2020 Signal Messenger, LLC
// SPDX-License-Identifier: AGPL-3.0-only
import { createSelector } from 'reselect';
diff --git a/ts/state/selectors/conversations.ts b/ts/state/selectors/conversations.ts
index aebe4c3d2..ae63ae0c7 100644
--- a/ts/state/selectors/conversations.ts
+++ b/ts/state/selectors/conversations.ts
@@ -1,4 +1,4 @@
-// Copyright 2019-2022 Signal Messenger, LLC
+// Copyright 2019 Signal Messenger, LLC
// SPDX-License-Identifier: AGPL-3.0-only
import memoizee from 'memoizee';
diff --git a/ts/state/selectors/items.ts b/ts/state/selectors/items.ts
index 8fbe2e6b3..feb052550 100644
--- a/ts/state/selectors/items.ts
+++ b/ts/state/selectors/items.ts
@@ -1,4 +1,4 @@
-// Copyright 2019-2022 Signal Messenger, LLC
+// Copyright 2019 Signal Messenger, LLC
// SPDX-License-Identifier: AGPL-3.0-only
import { createSelector } from 'reselect';
diff --git a/ts/state/selectors/message.ts b/ts/state/selectors/message.ts
index 9ed3fc2af..e7ea6c2a1 100644
--- a/ts/state/selectors/message.ts
+++ b/ts/state/selectors/message.ts
@@ -1,4 +1,4 @@
-// Copyright 2021-2022 Signal Messenger, LLC
+// Copyright 2021 Signal Messenger, LLC
// SPDX-License-Identifier: AGPL-3.0-only
import { groupBy, isEmpty, isNumber, isObject, map, omit } from 'lodash';
diff --git a/ts/state/selectors/search.ts b/ts/state/selectors/search.ts
index ce593bef0..f0cd96a64 100644
--- a/ts/state/selectors/search.ts
+++ b/ts/state/selectors/search.ts
@@ -1,4 +1,4 @@
-// Copyright 2019-2022 Signal Messenger, LLC
+// Copyright 2019 Signal Messenger, LLC
// SPDX-License-Identifier: AGPL-3.0-only
import memoizee from 'memoizee';
diff --git a/ts/state/selectors/stickers.ts b/ts/state/selectors/stickers.ts
index 91445be6c..de19e8a67 100644
--- a/ts/state/selectors/stickers.ts
+++ b/ts/state/selectors/stickers.ts
@@ -1,4 +1,4 @@
-// Copyright 2019-2020 Signal Messenger, LLC
+// Copyright 2019 Signal Messenger, LLC
// SPDX-License-Identifier: AGPL-3.0-only
import { join } from 'path';
diff --git a/ts/state/selectors/timeline.ts b/ts/state/selectors/timeline.ts
index bed0a7cfb..66c2c2fa1 100644
--- a/ts/state/selectors/timeline.ts
+++ b/ts/state/selectors/timeline.ts
@@ -1,4 +1,4 @@
-// Copyright 2021-2022 Signal Messenger, LLC
+// Copyright 2021 Signal Messenger, LLC
// SPDX-License-Identifier: AGPL-3.0-only
import { memoize } from '@indutny/sneequals';
diff --git a/ts/state/selectors/user.ts b/ts/state/selectors/user.ts
index c67637d03..ce4409edd 100644
--- a/ts/state/selectors/user.ts
+++ b/ts/state/selectors/user.ts
@@ -1,4 +1,4 @@
-// Copyright 2019-2022 Signal Messenger, LLC
+// Copyright 2019 Signal Messenger, LLC
// SPDX-License-Identifier: AGPL-3.0-only
import { createSelector } from 'reselect';
diff --git a/ts/state/smart/App.tsx b/ts/state/smart/App.tsx
index bffa572e8..891ef5542 100644
--- a/ts/state/smart/App.tsx
+++ b/ts/state/smart/App.tsx
@@ -1,4 +1,4 @@
-// Copyright 2021-2022 Signal Messenger, LLC
+// Copyright 2021 Signal Messenger, LLC
// SPDX-License-Identifier: AGPL-3.0-only
import React from 'react';
diff --git a/ts/state/smart/CallManager.tsx b/ts/state/smart/CallManager.tsx
index c2a75c5e5..27ae485cf 100644
--- a/ts/state/smart/CallManager.tsx
+++ b/ts/state/smart/CallManager.tsx
@@ -1,4 +1,4 @@
-// Copyright 2020-2022 Signal Messenger, LLC
+// Copyright 2020 Signal Messenger, LLC
// SPDX-License-Identifier: AGPL-3.0-only
import React from 'react';
diff --git a/ts/state/smart/CompositionArea.tsx b/ts/state/smart/CompositionArea.tsx
index 2cd9a972f..d11b3ff6b 100644
--- a/ts/state/smart/CompositionArea.tsx
+++ b/ts/state/smart/CompositionArea.tsx
@@ -1,4 +1,4 @@
-// Copyright 2019-2021 Signal Messenger, LLC
+// Copyright 2019 Signal Messenger, LLC
// SPDX-License-Identifier: AGPL-3.0-only
import { connect } from 'react-redux';
diff --git a/ts/state/smart/ContactModal.tsx b/ts/state/smart/ContactModal.tsx
index 32e2e1d0b..c6fb15f79 100644
--- a/ts/state/smart/ContactModal.tsx
+++ b/ts/state/smart/ContactModal.tsx
@@ -1,4 +1,4 @@
-// Copyright 2020-2021 Signal Messenger, LLC
+// Copyright 2020 Signal Messenger, LLC
// SPDX-License-Identifier: AGPL-3.0-only
import { connect } from 'react-redux';
diff --git a/ts/state/smart/ContactName.tsx b/ts/state/smart/ContactName.tsx
index fabb5fc28..5da3cb0dc 100644
--- a/ts/state/smart/ContactName.tsx
+++ b/ts/state/smart/ContactName.tsx
@@ -1,4 +1,4 @@
-// Copyright 2020-2021 Signal Messenger, LLC
+// Copyright 2020 Signal Messenger, LLC
// SPDX-License-Identifier: AGPL-3.0-only
import * as React from 'react';
diff --git a/ts/state/smart/ConversationDetails.tsx b/ts/state/smart/ConversationDetails.tsx
index fce7f3079..6402465a2 100644
--- a/ts/state/smart/ConversationDetails.tsx
+++ b/ts/state/smart/ConversationDetails.tsx
@@ -1,4 +1,4 @@
-// Copyright 2021-2022 Signal Messenger, LLC
+// Copyright 2021 Signal Messenger, LLC
// SPDX-License-Identifier: AGPL-3.0-only
import React from 'react';
diff --git a/ts/state/smart/ConversationHeader.tsx b/ts/state/smart/ConversationHeader.tsx
index 70ef5f18f..73be65a7a 100644
--- a/ts/state/smart/ConversationHeader.tsx
+++ b/ts/state/smart/ConversationHeader.tsx
@@ -1,4 +1,4 @@
-// Copyright 2020-2022 Signal Messenger, LLC
+// Copyright 2020 Signal Messenger, LLC
// SPDX-License-Identifier: AGPL-3.0-only
import { connect } from 'react-redux';
diff --git a/ts/state/smart/ConversationView.tsx b/ts/state/smart/ConversationView.tsx
index 4372c1d37..d1f49185d 100644
--- a/ts/state/smart/ConversationView.tsx
+++ b/ts/state/smart/ConversationView.tsx
@@ -1,4 +1,4 @@
-// Copyright 2021-2022 Signal Messenger, LLC
+// Copyright 2021 Signal Messenger, LLC
// SPDX-License-Identifier: AGPL-3.0-only
import React from 'react';
diff --git a/ts/state/smart/EmojiPicker.tsx b/ts/state/smart/EmojiPicker.tsx
index 15e2417b6..c9e56a265 100644
--- a/ts/state/smart/EmojiPicker.tsx
+++ b/ts/state/smart/EmojiPicker.tsx
@@ -1,4 +1,4 @@
-// Copyright 2020-2021 Signal Messenger, LLC
+// Copyright 2020 Signal Messenger, LLC
// SPDX-License-Identifier: AGPL-3.0-only
import * as React from 'react';
diff --git a/ts/state/smart/ExpiredBuildDialog.tsx b/ts/state/smart/ExpiredBuildDialog.tsx
index b365f57b7..f9f7c5436 100644
--- a/ts/state/smart/ExpiredBuildDialog.tsx
+++ b/ts/state/smart/ExpiredBuildDialog.tsx
@@ -1,4 +1,4 @@
-// Copyright 2020-2021 Signal Messenger, LLC
+// Copyright 2020 Signal Messenger, LLC
// SPDX-License-Identifier: AGPL-3.0-only
import { connect } from 'react-redux';
diff --git a/ts/state/smart/ForwardMessageModal.tsx b/ts/state/smart/ForwardMessageModal.tsx
index fdb2a62c9..5394064cc 100644
--- a/ts/state/smart/ForwardMessageModal.tsx
+++ b/ts/state/smart/ForwardMessageModal.tsx
@@ -1,4 +1,4 @@
-// Copyright 2021-2022 Signal Messenger, LLC
+// Copyright 2021 Signal Messenger, LLC
// SPDX-License-Identifier: AGPL-3.0-only
import React from 'react';
diff --git a/ts/state/smart/GroupV1MigrationDialog.tsx b/ts/state/smart/GroupV1MigrationDialog.tsx
index ef16871e7..6547729ce 100644
--- a/ts/state/smart/GroupV1MigrationDialog.tsx
+++ b/ts/state/smart/GroupV1MigrationDialog.tsx
@@ -1,4 +1,4 @@
-// Copyright 2020-2021 Signal Messenger, LLC
+// Copyright 2020 Signal Messenger, LLC
// SPDX-License-Identifier: AGPL-3.0-only
import { connect } from 'react-redux';
diff --git a/ts/state/smart/HeroRow.tsx b/ts/state/smart/HeroRow.tsx
index 803a02964..3e9dad04f 100644
--- a/ts/state/smart/HeroRow.tsx
+++ b/ts/state/smart/HeroRow.tsx
@@ -1,4 +1,4 @@
-// Copyright 2020-2021 Signal Messenger, LLC
+// Copyright 2020 Signal Messenger, LLC
// SPDX-License-Identifier: AGPL-3.0-only
import { connect } from 'react-redux';
diff --git a/ts/state/smart/InstallScreen.tsx b/ts/state/smart/InstallScreen.tsx
index c6393fd12..f096db455 100644
--- a/ts/state/smart/InstallScreen.tsx
+++ b/ts/state/smart/InstallScreen.tsx
@@ -1,4 +1,4 @@
-// Copyright 2021-2022 Signal Messenger, LLC
+// Copyright 2021 Signal Messenger, LLC
// SPDX-License-Identifier: AGPL-3.0-only
import type { ComponentProps, ReactElement } from 'react';
diff --git a/ts/state/smart/LeftPane.tsx b/ts/state/smart/LeftPane.tsx
index 17c5ba9ae..7543bf6be 100644
--- a/ts/state/smart/LeftPane.tsx
+++ b/ts/state/smart/LeftPane.tsx
@@ -1,4 +1,4 @@
-// Copyright 2019-2022 Signal Messenger, LLC
+// Copyright 2019 Signal Messenger, LLC
// SPDX-License-Identifier: AGPL-3.0-only
import React from 'react';
diff --git a/ts/state/smart/MainHeader.tsx b/ts/state/smart/MainHeader.tsx
index 79f050e67..be838b0d0 100644
--- a/ts/state/smart/MainHeader.tsx
+++ b/ts/state/smart/MainHeader.tsx
@@ -1,4 +1,4 @@
-// Copyright 2019-2022 Signal Messenger, LLC
+// Copyright 2019 Signal Messenger, LLC
// SPDX-License-Identifier: AGPL-3.0-only
import { connect } from 'react-redux';
diff --git a/ts/state/smart/MessageAudio.tsx b/ts/state/smart/MessageAudio.tsx
index 340feff25..5c83773ac 100644
--- a/ts/state/smart/MessageAudio.tsx
+++ b/ts/state/smart/MessageAudio.tsx
@@ -1,4 +1,4 @@
-// Copyright 2021-2022 Signal Messenger, LLC
+// Copyright 2021 Signal Messenger, LLC
// SPDX-License-Identifier: AGPL-3.0-only
import { connect } from 'react-redux';
diff --git a/ts/state/smart/MessageSearchResult.tsx b/ts/state/smart/MessageSearchResult.tsx
index 34772a723..123a69fa5 100644
--- a/ts/state/smart/MessageSearchResult.tsx
+++ b/ts/state/smart/MessageSearchResult.tsx
@@ -1,4 +1,4 @@
-// Copyright 2019-2021 Signal Messenger, LLC
+// Copyright 2019 Signal Messenger, LLC
// SPDX-License-Identifier: AGPL-3.0-only
import type { CSSProperties } from 'react';
diff --git a/ts/state/smart/NetworkStatus.tsx b/ts/state/smart/NetworkStatus.tsx
index 9cdd8589f..0073c2591 100644
--- a/ts/state/smart/NetworkStatus.tsx
+++ b/ts/state/smart/NetworkStatus.tsx
@@ -1,4 +1,4 @@
-// Copyright 2020-2021 Signal Messenger, LLC
+// Copyright 2020 Signal Messenger, LLC
// SPDX-License-Identifier: AGPL-3.0-only
import { connect } from 'react-redux';
diff --git a/ts/state/smart/ProfileEditorModal.tsx b/ts/state/smart/ProfileEditorModal.tsx
index 435f2f45c..e260dd4ac 100644
--- a/ts/state/smart/ProfileEditorModal.tsx
+++ b/ts/state/smart/ProfileEditorModal.tsx
@@ -1,4 +1,4 @@
-// Copyright 2021-2022 Signal Messenger, LLC
+// Copyright 2021 Signal Messenger, LLC
// SPDX-License-Identifier: AGPL-3.0-only
import React from 'react';
diff --git a/ts/state/smart/ReactionPicker.tsx b/ts/state/smart/ReactionPicker.tsx
index c76e0d95c..66656bbc3 100644
--- a/ts/state/smart/ReactionPicker.tsx
+++ b/ts/state/smart/ReactionPicker.tsx
@@ -1,4 +1,4 @@
-// Copyright 2020-2021 Signal Messenger, LLC
+// Copyright 2020 Signal Messenger, LLC
// SPDX-License-Identifier: AGPL-3.0-only
import * as React from 'react';
diff --git a/ts/state/smart/RelinkDialog.tsx b/ts/state/smart/RelinkDialog.tsx
index ce2f0cd5d..e9fd948a3 100644
--- a/ts/state/smart/RelinkDialog.tsx
+++ b/ts/state/smart/RelinkDialog.tsx
@@ -1,4 +1,4 @@
-// Copyright 2020-2021 Signal Messenger, LLC
+// Copyright 2020 Signal Messenger, LLC
// SPDX-License-Identifier: AGPL-3.0-only
import { connect } from 'react-redux';
diff --git a/ts/state/smart/ShortcutGuideModal.tsx b/ts/state/smart/ShortcutGuideModal.tsx
index a054ad8ff..2d508441d 100644
--- a/ts/state/smart/ShortcutGuideModal.tsx
+++ b/ts/state/smart/ShortcutGuideModal.tsx
@@ -1,4 +1,4 @@
-// Copyright 2019-2022 Signal Messenger, LLC
+// Copyright 2019 Signal Messenger, LLC
// SPDX-License-Identifier: AGPL-3.0-only
import { connect } from 'react-redux';
diff --git a/ts/state/smart/StickerManager.tsx b/ts/state/smart/StickerManager.tsx
index b9804f2ee..4fcda26e0 100644
--- a/ts/state/smart/StickerManager.tsx
+++ b/ts/state/smart/StickerManager.tsx
@@ -1,4 +1,4 @@
-// Copyright 2019-2020 Signal Messenger, LLC
+// Copyright 2019 Signal Messenger, LLC
// SPDX-License-Identifier: AGPL-3.0-only
import { connect } from 'react-redux';
diff --git a/ts/state/smart/StickerPreviewModal.tsx b/ts/state/smart/StickerPreviewModal.tsx
index c20c73d45..675f9dac7 100644
--- a/ts/state/smart/StickerPreviewModal.tsx
+++ b/ts/state/smart/StickerPreviewModal.tsx
@@ -1,4 +1,4 @@
-// Copyright 2019-2022 Signal Messenger, LLC
+// Copyright 2019 Signal Messenger, LLC
// SPDX-License-Identifier: AGPL-3.0-only
import { connect } from 'react-redux';
diff --git a/ts/state/smart/Timeline.tsx b/ts/state/smart/Timeline.tsx
index af3915393..ec9a69589 100644
--- a/ts/state/smart/Timeline.tsx
+++ b/ts/state/smart/Timeline.tsx
@@ -1,4 +1,4 @@
-// Copyright 2019-2022 Signal Messenger, LLC
+// Copyright 2019 Signal Messenger, LLC
// SPDX-License-Identifier: AGPL-3.0-only
import { isEmpty, mapValues, pick } from 'lodash';
diff --git a/ts/state/smart/TimelineItem.tsx b/ts/state/smart/TimelineItem.tsx
index dee8d1000..c96e2aa31 100644
--- a/ts/state/smart/TimelineItem.tsx
+++ b/ts/state/smart/TimelineItem.tsx
@@ -1,4 +1,4 @@
-// Copyright 2019-2022 Signal Messenger, LLC
+// Copyright 2019 Signal Messenger, LLC
// SPDX-License-Identifier: AGPL-3.0-only
import type { RefObject } from 'react';
diff --git a/ts/state/smart/TypingBubble.tsx b/ts/state/smart/TypingBubble.tsx
index bc5d6ad3a..9820b382a 100644
--- a/ts/state/smart/TypingBubble.tsx
+++ b/ts/state/smart/TypingBubble.tsx
@@ -1,4 +1,4 @@
-// Copyright 2019-2021 Signal Messenger, LLC
+// Copyright 2019 Signal Messenger, LLC
// SPDX-License-Identifier: AGPL-3.0-only
import { connect } from 'react-redux';
diff --git a/ts/state/smart/UpdateDialog.tsx b/ts/state/smart/UpdateDialog.tsx
index 3d001563d..be5b82ad0 100644
--- a/ts/state/smart/UpdateDialog.tsx
+++ b/ts/state/smart/UpdateDialog.tsx
@@ -1,4 +1,4 @@
-// Copyright 2020-2021 Signal Messenger, LLC
+// Copyright 2020 Signal Messenger, LLC
// SPDX-License-Identifier: AGPL-3.0-only
import { connect } from 'react-redux';
diff --git a/ts/state/smart/renderAudioAttachment.tsx b/ts/state/smart/renderAudioAttachment.tsx
index 4ecb37fe1..dee8d5983 100644
--- a/ts/state/smart/renderAudioAttachment.tsx
+++ b/ts/state/smart/renderAudioAttachment.tsx
@@ -1,4 +1,4 @@
-// Copyright 2021-2022 Signal Messenger, LLC
+// Copyright 2021 Signal Messenger, LLC
// SPDX-License-Identifier: AGPL-3.0-only
import type { ReactElement } from 'react';
diff --git a/ts/state/types.ts b/ts/state/types.ts
index 49ff1f2ef..260efcd65 100644
--- a/ts/state/types.ts
+++ b/ts/state/types.ts
@@ -1,4 +1,4 @@
-// Copyright 2021-2022 Signal Messenger, LLC
+// Copyright 2021 Signal Messenger, LLC
// SPDX-License-Identifier: AGPL-3.0-only
import type { actions as accounts } from './ducks/accounts';
diff --git a/ts/test-both/ContactsParser_test.ts b/ts/test-both/ContactsParser_test.ts
index f58699bde..5fa21f1df 100644
--- a/ts/test-both/ContactsParser_test.ts
+++ b/ts/test-both/ContactsParser_test.ts
@@ -1,4 +1,4 @@
-// Copyright 2015-2021 Signal Messenger, LLC
+// Copyright 2015 Signal Messenger, LLC
// SPDX-License-Identifier: AGPL-3.0-only
import { assert } from 'chai';
diff --git a/ts/test-both/TaskWithTimeout_test.ts b/ts/test-both/TaskWithTimeout_test.ts
index 987dd99d3..e82b1f6a6 100644
--- a/ts/test-both/TaskWithTimeout_test.ts
+++ b/ts/test-both/TaskWithTimeout_test.ts
@@ -1,4 +1,4 @@
-// Copyright 2017-2021 Signal Messenger, LLC
+// Copyright 2017 Signal Messenger, LLC
// SPDX-License-Identifier: AGPL-3.0-only
import { assert } from 'chai';
diff --git a/ts/test-both/conversations/isConversationTooBigToRing_test.ts b/ts/test-both/conversations/isConversationTooBigToRing_test.ts
index c86389429..ef4496fe3 100644
--- a/ts/test-both/conversations/isConversationTooBigToRing_test.ts
+++ b/ts/test-both/conversations/isConversationTooBigToRing_test.ts
@@ -1,4 +1,4 @@
-// Copyright 2021-2022 Signal Messenger, LLC
+// Copyright 2021 Signal Messenger, LLC
// SPDX-License-Identifier: AGPL-3.0-only
import { assert } from 'chai';
diff --git a/ts/test-both/groups/limits_test.ts b/ts/test-both/groups/limits_test.ts
index 4f763c52e..5e91fd820 100644
--- a/ts/test-both/groups/limits_test.ts
+++ b/ts/test-both/groups/limits_test.ts
@@ -1,4 +1,4 @@
-// Copyright 2021-2022 Signal Messenger, LLC
+// Copyright 2021 Signal Messenger, LLC
// SPDX-License-Identifier: AGPL-3.0-only
import { assert } from 'chai';
diff --git a/ts/test-both/helpers/defaultComposerStates.ts b/ts/test-both/helpers/defaultComposerStates.ts
index 581cfbf97..2164406c7 100644
--- a/ts/test-both/helpers/defaultComposerStates.ts
+++ b/ts/test-both/helpers/defaultComposerStates.ts
@@ -1,4 +1,4 @@
-// Copyright 2021-2022 Signal Messenger, LLC
+// Copyright 2021 Signal Messenger, LLC
// SPDX-License-Identifier: AGPL-3.0-only
import { ComposerStep } from '../../state/ducks/conversationsEnums';
diff --git a/ts/test-both/helpers/fakeAttachment.ts b/ts/test-both/helpers/fakeAttachment.ts
index 1c068692d..49e0a6b81 100644
--- a/ts/test-both/helpers/fakeAttachment.ts
+++ b/ts/test-both/helpers/fakeAttachment.ts
@@ -1,4 +1,4 @@
-// Copyright 2021-2022 Signal Messenger, LLC
+// Copyright 2021 Signal Messenger, LLC
// SPDX-License-Identifier: AGPL-3.0-only
import type {
diff --git a/ts/test-both/helpers/getDefaultConversation.ts b/ts/test-both/helpers/getDefaultConversation.ts
index 7e86df542..de52b5a3f 100644
--- a/ts/test-both/helpers/getDefaultConversation.ts
+++ b/ts/test-both/helpers/getDefaultConversation.ts
@@ -1,4 +1,4 @@
-// Copyright 2020-2022 Signal Messenger, LLC
+// Copyright 2020 Signal Messenger, LLC
// SPDX-License-Identifier: AGPL-3.0-only
import casual from 'casual';
diff --git a/ts/test-both/state/ducks/audioPlayer_test.ts b/ts/test-both/state/ducks/audioPlayer_test.ts
index 26b9f73ab..a92d8188e 100644
--- a/ts/test-both/state/ducks/audioPlayer_test.ts
+++ b/ts/test-both/state/ducks/audioPlayer_test.ts
@@ -1,4 +1,4 @@
-// Copyright 2021-2022 Signal Messenger, LLC
+// Copyright 2021 Signal Messenger, LLC
// SPDX-License-Identifier: AGPL-3.0-only
import { assert } from 'chai';
diff --git a/ts/test-both/state/selectors/conversations_test.ts b/ts/test-both/state/selectors/conversations_test.ts
index b27acef90..f8bcd9b20 100644
--- a/ts/test-both/state/selectors/conversations_test.ts
+++ b/ts/test-both/state/selectors/conversations_test.ts
@@ -1,4 +1,4 @@
-// Copyright 2019-2022 Signal Messenger, LLC
+// Copyright 2019 Signal Messenger, LLC
// SPDX-License-Identifier: AGPL-3.0-only
import { assert } from 'chai';
diff --git a/ts/test-both/state/selectors/items_test.ts b/ts/test-both/state/selectors/items_test.ts
index 102806534..60da1e837 100644
--- a/ts/test-both/state/selectors/items_test.ts
+++ b/ts/test-both/state/selectors/items_test.ts
@@ -1,4 +1,4 @@
-// Copyright 2020-2022 Signal Messenger, LLC
+// Copyright 2020 Signal Messenger, LLC
// SPDX-License-Identifier: AGPL-3.0-only
import { assert } from 'chai';
diff --git a/ts/test-both/types/SchemaVersion_test.ts b/ts/test-both/types/SchemaVersion_test.ts
index 33d2717fc..172ca411c 100644
--- a/ts/test-both/types/SchemaVersion_test.ts
+++ b/ts/test-both/types/SchemaVersion_test.ts
@@ -1,4 +1,4 @@
-// Copyright 2018-2021 Signal Messenger, LLC
+// Copyright 2018 Signal Messenger, LLC
// SPDX-License-Identifier: AGPL-3.0-only
import { assert } from 'chai';
diff --git a/ts/test-both/types/Stickers_test.ts b/ts/test-both/types/Stickers_test.ts
index a17ed3c09..2e39c8fde 100644
--- a/ts/test-both/types/Stickers_test.ts
+++ b/ts/test-both/types/Stickers_test.ts
@@ -1,4 +1,4 @@
-// Copyright 2020-2022 Signal Messenger, LLC
+// Copyright 2020 Signal Messenger, LLC
// SPDX-License-Identifier: AGPL-3.0-only
import { assert } from 'chai';
diff --git a/ts/test-both/types/errors_test.ts b/ts/test-both/types/errors_test.ts
index e5784619d..bdff074c9 100644
--- a/ts/test-both/types/errors_test.ts
+++ b/ts/test-both/types/errors_test.ts
@@ -1,4 +1,4 @@
-// Copyright 2018-2021 Signal Messenger, LLC
+// Copyright 2018 Signal Messenger, LLC
// SPDX-License-Identifier: AGPL-3.0-only
import * as Path from 'path';
diff --git a/ts/test-both/types/setupI18n_test.ts b/ts/test-both/types/setupI18n_test.ts
index 3e6d452b9..d29c078cf 100644
--- a/ts/test-both/types/setupI18n_test.ts
+++ b/ts/test-both/types/setupI18n_test.ts
@@ -1,4 +1,4 @@
-// Copyright 2017-2022 Signal Messenger, LLC
+// Copyright 2017 Signal Messenger, LLC
// SPDX-License-Identifier: AGPL-3.0-only
import { assert } from 'chai';
diff --git a/ts/test-both/util/assert_test.ts b/ts/test-both/util/assert_test.ts
index 177cf0cbf..5a25da4de 100644
--- a/ts/test-both/util/assert_test.ts
+++ b/ts/test-both/util/assert_test.ts
@@ -1,4 +1,4 @@
-// Copyright 2021-2022 Signal Messenger, LLC
+// Copyright 2021 Signal Messenger, LLC
// SPDX-License-Identifier: AGPL-3.0-only
import { assert as chaiAssert } from 'chai';
diff --git a/ts/test-both/util/assignWithNoUnnecessaryAllocation_test.ts b/ts/test-both/util/assignWithNoUnnecessaryAllocation_test.ts
index 5a10796c1..ab4c71a9b 100644
--- a/ts/test-both/util/assignWithNoUnnecessaryAllocation_test.ts
+++ b/ts/test-both/util/assignWithNoUnnecessaryAllocation_test.ts
@@ -1,4 +1,4 @@
-// Copyright 2020-2021 Signal Messenger, LLC
+// Copyright 2020 Signal Messenger, LLC
// SPDX-License-Identifier: AGPL-3.0-only
import { assert } from 'chai';
diff --git a/ts/test-both/util/asyncIterables_test.ts b/ts/test-both/util/asyncIterables_test.ts
index 90553a911..e650e4cd3 100644
--- a/ts/test-both/util/asyncIterables_test.ts
+++ b/ts/test-both/util/asyncIterables_test.ts
@@ -1,4 +1,4 @@
-// Copyright 2021-2022 Signal Messenger, LLC
+// Copyright 2021 Signal Messenger, LLC
// SPDX-License-Identifier: AGPL-3.0-only
import { assert } from 'chai';
diff --git a/ts/test-both/util/getStreamWithTimeout_test.ts b/ts/test-both/util/getStreamWithTimeout_test.ts
index 3a79c33e2..3bf037974 100644
--- a/ts/test-both/util/getStreamWithTimeout_test.ts
+++ b/ts/test-both/util/getStreamWithTimeout_test.ts
@@ -1,4 +1,4 @@
-// Copyright 2021-2022 Signal Messenger, LLC
+// Copyright 2021 Signal Messenger, LLC
// SPDX-License-Identifier: AGPL-3.0-only
import { assert } from 'chai';
diff --git a/ts/test-both/util/grapheme_test.ts b/ts/test-both/util/grapheme_test.ts
index 2610688dd..28f0f6100 100644
--- a/ts/test-both/util/grapheme_test.ts
+++ b/ts/test-both/util/grapheme_test.ts
@@ -1,4 +1,4 @@
-// Copyright 2021-2022 Signal Messenger, LLC
+// Copyright 2021 Signal Messenger, LLC
// SPDX-License-Identifier: AGPL-3.0-only
import { assert } from 'chai';
diff --git a/ts/test-both/util/isConversationMuted_test.ts b/ts/test-both/util/isConversationMuted_test.ts
index 8c550ebd2..b9ddadc09 100644
--- a/ts/test-both/util/isConversationMuted_test.ts
+++ b/ts/test-both/util/isConversationMuted_test.ts
@@ -1,4 +1,4 @@
-// Copyright 2020-2022 Signal Messenger, LLC
+// Copyright 2020 Signal Messenger, LLC
// SPDX-License-Identifier: AGPL-3.0-only
import { assert } from 'chai';
diff --git a/ts/test-both/util/iterables_test.ts b/ts/test-both/util/iterables_test.ts
index ce9ae9660..755d62fd8 100644
--- a/ts/test-both/util/iterables_test.ts
+++ b/ts/test-both/util/iterables_test.ts
@@ -1,4 +1,4 @@
-// Copyright 2021-2022 Signal Messenger, LLC
+// Copyright 2021 Signal Messenger, LLC
// SPDX-License-Identifier: AGPL-3.0-only
import { assert } from 'chai';
diff --git a/ts/test-both/util/libphonenumberUtil_test.ts b/ts/test-both/util/libphonenumberUtil_test.ts
index 85c53acd0..53d6f8591 100644
--- a/ts/test-both/util/libphonenumberUtil_test.ts
+++ b/ts/test-both/util/libphonenumberUtil_test.ts
@@ -1,4 +1,4 @@
-// Copyright 2015-2022 Signal Messenger, LLC
+// Copyright 2015 Signal Messenger, LLC
// SPDX-License-Identifier: AGPL-3.0-only
import { assert, AssertionError } from 'chai';
diff --git a/ts/test-both/util/parseRetryAfter_test.ts b/ts/test-both/util/parseRetryAfter_test.ts
index 9b3d04b22..f072ff8d3 100644
--- a/ts/test-both/util/parseRetryAfter_test.ts
+++ b/ts/test-both/util/parseRetryAfter_test.ts
@@ -1,4 +1,4 @@
-// Copyright 2021-2022 Signal Messenger, LLC
+// Copyright 2021 Signal Messenger, LLC
// SPDX-License-Identifier: AGPL-3.0-only
import { assert } from 'chai';
diff --git a/ts/test-both/util/privacy_test.ts b/ts/test-both/util/privacy_test.ts
index 80934baf2..d671a2edf 100644
--- a/ts/test-both/util/privacy_test.ts
+++ b/ts/test-both/util/privacy_test.ts
@@ -1,4 +1,4 @@
-// Copyright 2018-2021 Signal Messenger, LLC
+// Copyright 2018 Signal Messenger, LLC
// SPDX-License-Identifier: AGPL-3.0-only
import { assert } from 'chai';
diff --git a/ts/test-both/util/setUtil_test.ts b/ts/test-both/util/setUtil_test.ts
index 856e8925a..53d2735f3 100644
--- a/ts/test-both/util/setUtil_test.ts
+++ b/ts/test-both/util/setUtil_test.ts
@@ -1,4 +1,4 @@
-// Copyright 2021-2022 Signal Messenger, LLC
+// Copyright 2021 Signal Messenger, LLC
// SPDX-License-Identifier: AGPL-3.0-only
import { assert } from 'chai';
diff --git a/ts/test-both/util/timestamp_test.ts b/ts/test-both/util/timestamp_test.ts
index df56b2a6b..86315cdc3 100644
--- a/ts/test-both/util/timestamp_test.ts
+++ b/ts/test-both/util/timestamp_test.ts
@@ -1,4 +1,4 @@
-// Copyright 2021-2022 Signal Messenger, LLC
+// Copyright 2021 Signal Messenger, LLC
// SPDX-License-Identifier: AGPL-3.0-only
import { assert } from 'chai';
diff --git a/ts/test-electron/Crypto_test.ts b/ts/test-electron/Crypto_test.ts
index 85f644376..ce9910244 100644
--- a/ts/test-electron/Crypto_test.ts
+++ b/ts/test-electron/Crypto_test.ts
@@ -1,4 +1,4 @@
-// Copyright 2015-2021 Signal Messenger, LLC
+// Copyright 2015 Signal Messenger, LLC
// SPDX-License-Identifier: AGPL-3.0-only
import { assert } from 'chai';
diff --git a/ts/test-electron/MessageReceiver_test.ts b/ts/test-electron/MessageReceiver_test.ts
index 7fab0f400..9a8ca31d1 100644
--- a/ts/test-electron/MessageReceiver_test.ts
+++ b/ts/test-electron/MessageReceiver_test.ts
@@ -1,4 +1,4 @@
-// Copyright 2015-2021 Signal Messenger, LLC
+// Copyright 2015 Signal Messenger, LLC
// SPDX-License-Identifier: AGPL-3.0-only
/* eslint-disable @typescript-eslint/no-empty-function */
diff --git a/ts/test-electron/SignalProtocolStore_test.ts b/ts/test-electron/SignalProtocolStore_test.ts
index 66c50d29f..2d6ccbdf7 100644
--- a/ts/test-electron/SignalProtocolStore_test.ts
+++ b/ts/test-electron/SignalProtocolStore_test.ts
@@ -1,4 +1,4 @@
-// Copyright 2015-2022 Signal Messenger, LLC
+// Copyright 2015 Signal Messenger, LLC
// SPDX-License-Identifier: AGPL-3.0-only
/* eslint-disable @typescript-eslint/no-explicit-any */
diff --git a/ts/test-electron/WebsocketResources_test.ts b/ts/test-electron/WebsocketResources_test.ts
index dfe544460..45184bc9b 100644
--- a/ts/test-electron/WebsocketResources_test.ts
+++ b/ts/test-electron/WebsocketResources_test.ts
@@ -1,4 +1,4 @@
-// Copyright 2015-2021 Signal Messenger, LLC
+// Copyright 2015 Signal Messenger, LLC
// SPDX-License-Identifier: AGPL-3.0-only
/* eslint-disable
diff --git a/ts/test-electron/backbone/reliable_trigger_test.ts b/ts/test-electron/backbone/reliable_trigger_test.ts
index 56e0d41bf..f21b349f5 100644
--- a/ts/test-electron/backbone/reliable_trigger_test.ts
+++ b/ts/test-electron/backbone/reliable_trigger_test.ts
@@ -1,4 +1,4 @@
-// Copyright 2017-2022 Signal Messenger, LLC
+// Copyright 2017 Signal Messenger, LLC
// SPDX-License-Identifier: AGPL-3.0-only
import { assert } from 'chai';
diff --git a/ts/test-electron/components/Avatar_test.tsx b/ts/test-electron/components/Avatar_test.tsx
index bbd0e5e05..6b69bd67b 100644
--- a/ts/test-electron/components/Avatar_test.tsx
+++ b/ts/test-electron/components/Avatar_test.tsx
@@ -1,4 +1,4 @@
-// Copyright 2021-2022 Signal Messenger, LLC
+// Copyright 2021 Signal Messenger, LLC
// SPDX-License-Identifier: AGPL-3.0-only
import { assert } from 'chai';
diff --git a/ts/test-electron/linkPreviews/linkPreviewFetch_test.ts b/ts/test-electron/linkPreviews/linkPreviewFetch_test.ts
index e6d162dfe..a11e1e0be 100644
--- a/ts/test-electron/linkPreviews/linkPreviewFetch_test.ts
+++ b/ts/test-electron/linkPreviews/linkPreviewFetch_test.ts
@@ -1,4 +1,4 @@
-// Copyright 2020-2022 Signal Messenger, LLC
+// Copyright 2020 Signal Messenger, LLC
// SPDX-License-Identifier: AGPL-3.0-only
import { assert } from 'chai';
diff --git a/ts/test-electron/models/conversations_test.ts b/ts/test-electron/models/conversations_test.ts
index da93c9d81..59fb8a8ae 100644
--- a/ts/test-electron/models/conversations_test.ts
+++ b/ts/test-electron/models/conversations_test.ts
@@ -1,4 +1,4 @@
-// Copyright 2014-2021 Signal Messenger, LLC
+// Copyright 2014 Signal Messenger, LLC
// SPDX-License-Identifier: AGPL-3.0-only
import { assert } from 'chai';
diff --git a/ts/test-electron/models/messages_test.ts b/ts/test-electron/models/messages_test.ts
index 988d58c95..e3564b0fc 100644
--- a/ts/test-electron/models/messages_test.ts
+++ b/ts/test-electron/models/messages_test.ts
@@ -1,4 +1,4 @@
-// Copyright 2020-2022 Signal Messenger, LLC
+// Copyright 2020 Signal Messenger, LLC
// SPDX-License-Identifier: AGPL-3.0-only
import { assert } from 'chai';
diff --git a/ts/test-electron/quill/emoji/completion_test.tsx b/ts/test-electron/quill/emoji/completion_test.tsx
index ae72ad871..58d4557d2 100644
--- a/ts/test-electron/quill/emoji/completion_test.tsx
+++ b/ts/test-electron/quill/emoji/completion_test.tsx
@@ -1,4 +1,4 @@
-// Copyright 2020-2021 Signal Messenger, LLC
+// Copyright 2020 Signal Messenger, LLC
// SPDX-License-Identifier: AGPL-3.0-only
import { assert } from 'chai';
diff --git a/ts/test-electron/quill/mentions/completion_test.tsx b/ts/test-electron/quill/mentions/completion_test.tsx
index 30d24d435..b687c19cb 100644
--- a/ts/test-electron/quill/mentions/completion_test.tsx
+++ b/ts/test-electron/quill/mentions/completion_test.tsx
@@ -1,4 +1,4 @@
-// Copyright 2020-2021 Signal Messenger, LLC
+// Copyright 2020 Signal Messenger, LLC
// SPDX-License-Identifier: AGPL-3.0-only
import { assert } from 'chai';
diff --git a/ts/test-electron/routineProfileRefresh_test.ts b/ts/test-electron/routineProfileRefresh_test.ts
index f6152fe36..5b83aa76b 100644
--- a/ts/test-electron/routineProfileRefresh_test.ts
+++ b/ts/test-electron/routineProfileRefresh_test.ts
@@ -1,4 +1,4 @@
-// Copyright 2021-2022 Signal Messenger, LLC
+// Copyright 2021 Signal Messenger, LLC
// SPDX-License-Identifier: AGPL-3.0-only
import * as sinon from 'sinon';
diff --git a/ts/test-electron/scrollUtil_test.ts b/ts/test-electron/scrollUtil_test.ts
index 87f486767..fdb1eade7 100644
--- a/ts/test-electron/scrollUtil_test.ts
+++ b/ts/test-electron/scrollUtil_test.ts
@@ -1,4 +1,4 @@
-// Copyright 2021-2022 Signal Messenger, LLC
+// Copyright 2021 Signal Messenger, LLC
// SPDX-License-Identifier: AGPL-3.0-only
import { assert } from 'chai';
diff --git a/ts/test-electron/sql/conversationSummary_test.ts b/ts/test-electron/sql/conversationSummary_test.ts
index 1957e8445..99fa36400 100644
--- a/ts/test-electron/sql/conversationSummary_test.ts
+++ b/ts/test-electron/sql/conversationSummary_test.ts
@@ -1,4 +1,4 @@
-// Copyright 2021-2022 Signal Messenger, LLC
+// Copyright 2021 Signal Messenger, LLC
// SPDX-License-Identifier: AGPL-3.0-only
import { assert } from 'chai';
diff --git a/ts/test-electron/state/ducks/calling_test.ts b/ts/test-electron/state/ducks/calling_test.ts
index 0bc28536d..39702955c 100644
--- a/ts/test-electron/state/ducks/calling_test.ts
+++ b/ts/test-electron/state/ducks/calling_test.ts
@@ -1,4 +1,4 @@
-// Copyright 2020-2022 Signal Messenger, LLC
+// Copyright 2020 Signal Messenger, LLC
// SPDX-License-Identifier: AGPL-3.0-only
import { assert } from 'chai';
diff --git a/ts/test-electron/state/ducks/conversations_test.ts b/ts/test-electron/state/ducks/conversations_test.ts
index b8d63e818..6ac7af2e2 100644
--- a/ts/test-electron/state/ducks/conversations_test.ts
+++ b/ts/test-electron/state/ducks/conversations_test.ts
@@ -1,4 +1,4 @@
-// Copyright 2020-2022 Signal Messenger, LLC
+// Copyright 2020 Signal Messenger, LLC
// SPDX-License-Identifier: AGPL-3.0-only
import { assert } from 'chai';
diff --git a/ts/test-electron/state/selectors/audioPlayer_test.ts b/ts/test-electron/state/selectors/audioPlayer_test.ts
index 041923069..14b2b265f 100644
--- a/ts/test-electron/state/selectors/audioPlayer_test.ts
+++ b/ts/test-electron/state/selectors/audioPlayer_test.ts
@@ -1,4 +1,4 @@
-// Copyright 2021-2022 Signal Messenger, LLC
+// Copyright 2021 Signal Messenger, LLC
// SPDX-License-Identifier: AGPL-3.0-only
import { assert } from 'chai';
diff --git a/ts/test-electron/state/selectors/calling_test.ts b/ts/test-electron/state/selectors/calling_test.ts
index 977c2cf5a..0a0786868 100644
--- a/ts/test-electron/state/selectors/calling_test.ts
+++ b/ts/test-electron/state/selectors/calling_test.ts
@@ -1,4 +1,4 @@
-// Copyright 2019-2022 Signal Messenger, LLC
+// Copyright 2019 Signal Messenger, LLC
// SPDX-License-Identifier: AGPL-3.0-only
import { assert } from 'chai';
diff --git a/ts/test-electron/textsecure/AccountManager_test.ts b/ts/test-electron/textsecure/AccountManager_test.ts
index d585a7b36..a91eeee04 100644
--- a/ts/test-electron/textsecure/AccountManager_test.ts
+++ b/ts/test-electron/textsecure/AccountManager_test.ts
@@ -1,4 +1,4 @@
-// Copyright 2017-2020 Signal Messenger, LLC
+// Copyright 2017 Signal Messenger, LLC
// SPDX-License-Identifier: AGPL-3.0-only
import { assert } from 'chai';
diff --git a/ts/test-electron/textsecure/KeyChangeListener_test.ts b/ts/test-electron/textsecure/KeyChangeListener_test.ts
index a98ac6b88..fd2acfb57 100644
--- a/ts/test-electron/textsecure/KeyChangeListener_test.ts
+++ b/ts/test-electron/textsecure/KeyChangeListener_test.ts
@@ -1,4 +1,4 @@
-// Copyright 2017-2021 Signal Messenger, LLC
+// Copyright 2017 Signal Messenger, LLC
// SPDX-License-Identifier: AGPL-3.0-only
import { assert } from 'chai';
diff --git a/ts/test-electron/textsecure/SendMessage_test.ts b/ts/test-electron/textsecure/SendMessage_test.ts
index 13ae847ad..48f461491 100644
--- a/ts/test-electron/textsecure/SendMessage_test.ts
+++ b/ts/test-electron/textsecure/SendMessage_test.ts
@@ -1,4 +1,4 @@
-// Copyright 2019-2021 Signal Messenger, LLC
+// Copyright 2019 Signal Messenger, LLC
// SPDX-License-Identifier: AGPL-3.0-only
import { assert } from 'chai';
diff --git a/ts/test-electron/textsecure/generate_keys_test.ts b/ts/test-electron/textsecure/generate_keys_test.ts
index 9d887896e..0c85f8b57 100644
--- a/ts/test-electron/textsecure/generate_keys_test.ts
+++ b/ts/test-electron/textsecure/generate_keys_test.ts
@@ -1,4 +1,4 @@
-// Copyright 2015-2021 Signal Messenger, LLC
+// Copyright 2015 Signal Messenger, LLC
// SPDX-License-Identifier: AGPL-3.0-only
import { assert } from 'chai';
diff --git a/ts/test-node/.eslintrc.js b/ts/test-node/.eslintrc.js
index 2792285b7..13565dfeb 100644
--- a/ts/test-node/.eslintrc.js
+++ b/ts/test-node/.eslintrc.js
@@ -1,4 +1,4 @@
-// Copyright 2021-2022 Signal Messenger, LLC
+// Copyright 2021 Signal Messenger, LLC
// SPDX-License-Identifier: AGPL-3.0-only
const { update } = require('lodash/fp');
diff --git a/ts/test-node/app/base_config_test.ts b/ts/test-node/app/base_config_test.ts
index 35cb479a4..6d4d15958 100644
--- a/ts/test-node/app/base_config_test.ts
+++ b/ts/test-node/app/base_config_test.ts
@@ -1,4 +1,4 @@
-// Copyright 2021-2022 Signal Messenger, LLC
+// Copyright 2021 Signal Messenger, LLC
// SPDX-License-Identifier: AGPL-3.0-only
import * as path from 'path';
diff --git a/ts/test-node/app/menu_test.ts b/ts/test-node/app/menu_test.ts
index e22e521a6..d2243786f 100644
--- a/ts/test-node/app/menu_test.ts
+++ b/ts/test-node/app/menu_test.ts
@@ -1,4 +1,4 @@
-// Copyright 2018-2022 Signal Messenger, LLC
+// Copyright 2018 Signal Messenger, LLC
// SPDX-License-Identifier: AGPL-3.0-only
import { assert } from 'chai';
diff --git a/ts/test-node/app/protocol_filter_test.ts b/ts/test-node/app/protocol_filter_test.ts
index 4a2ad0915..614384cda 100644
--- a/ts/test-node/app/protocol_filter_test.ts
+++ b/ts/test-node/app/protocol_filter_test.ts
@@ -1,4 +1,4 @@
-// Copyright 2018-2022 Signal Messenger, LLC
+// Copyright 2018 Signal Messenger, LLC
// SPDX-License-Identifier: AGPL-3.0-only
import { assert } from 'chai';
diff --git a/ts/test-node/app/spell_check_test.ts b/ts/test-node/app/spell_check_test.ts
index e29dc360c..0a0aff7d2 100644
--- a/ts/test-node/app/spell_check_test.ts
+++ b/ts/test-node/app/spell_check_test.ts
@@ -1,4 +1,4 @@
-// Copyright 2020-2022 Signal Messenger, LLC
+// Copyright 2020 Signal Messenger, LLC
// SPDX-License-Identifier: AGPL-3.0-only
import { assert } from 'chai';
diff --git a/ts/test-node/components/leftPane/LeftPaneChooseGroupMembersHelper_test.ts b/ts/test-node/components/leftPane/LeftPaneChooseGroupMembersHelper_test.ts
index 3a74a9ea6..c51ef48db 100644
--- a/ts/test-node/components/leftPane/LeftPaneChooseGroupMembersHelper_test.ts
+++ b/ts/test-node/components/leftPane/LeftPaneChooseGroupMembersHelper_test.ts
@@ -1,4 +1,4 @@
-// Copyright 2021-2022 Signal Messenger, LLC
+// Copyright 2021 Signal Messenger, LLC
// SPDX-License-Identifier: AGPL-3.0-only
import { assert } from 'chai';
diff --git a/ts/test-node/components/leftPane/LeftPaneInboxHelper_test.tsx b/ts/test-node/components/leftPane/LeftPaneInboxHelper_test.tsx
index a3c4f02ca..eb294a156 100644
--- a/ts/test-node/components/leftPane/LeftPaneInboxHelper_test.tsx
+++ b/ts/test-node/components/leftPane/LeftPaneInboxHelper_test.tsx
@@ -1,4 +1,4 @@
-// Copyright 2021-2022 Signal Messenger, LLC
+// Copyright 2021 Signal Messenger, LLC
// SPDX-License-Identifier: AGPL-3.0-only
import { assert } from 'chai';
diff --git a/ts/test-node/components/leftPane/LeftPaneSearchHelper_test.ts b/ts/test-node/components/leftPane/LeftPaneSearchHelper_test.ts
index b1ed5fe9f..50d511cf7 100644
--- a/ts/test-node/components/leftPane/LeftPaneSearchHelper_test.ts
+++ b/ts/test-node/components/leftPane/LeftPaneSearchHelper_test.ts
@@ -1,4 +1,4 @@
-// Copyright 2021-2022 Signal Messenger, LLC
+// Copyright 2021 Signal Messenger, LLC
// SPDX-License-Identifier: AGPL-3.0-only
import { assert } from 'chai';
diff --git a/ts/test-node/components/media-gallery/groupMessagesByDate_test.ts b/ts/test-node/components/media-gallery/groupMessagesByDate_test.ts
index 076e5a252..0a20c1a97 100644
--- a/ts/test-node/components/media-gallery/groupMessagesByDate_test.ts
+++ b/ts/test-node/components/media-gallery/groupMessagesByDate_test.ts
@@ -1,4 +1,4 @@
-// Copyright 2018-2021 Signal Messenger, LLC
+// Copyright 2018 Signal Messenger, LLC
// SPDX-License-Identifier: AGPL-3.0-only
import { assert } from 'chai';
diff --git a/ts/test-node/jobs/helpers/sleepForRateLimitRetryAfterTime_test.ts b/ts/test-node/jobs/helpers/sleepForRateLimitRetryAfterTime_test.ts
index 071b943db..6724b0a4d 100644
--- a/ts/test-node/jobs/helpers/sleepForRateLimitRetryAfterTime_test.ts
+++ b/ts/test-node/jobs/helpers/sleepForRateLimitRetryAfterTime_test.ts
@@ -1,4 +1,4 @@
-// Copyright 2021-2022 Signal Messenger, LLC
+// Copyright 2021 Signal Messenger, LLC
// SPDX-License-Identifier: AGPL-3.0-only
import { assert } from 'chai';
diff --git a/ts/test-node/jobs/helpers/syncHelpers_test.ts b/ts/test-node/jobs/helpers/syncHelpers_test.ts
index 37ed2af18..842e44c0e 100644
--- a/ts/test-node/jobs/helpers/syncHelpers_test.ts
+++ b/ts/test-node/jobs/helpers/syncHelpers_test.ts
@@ -1,4 +1,4 @@
-// Copyright 2021-2022 Signal Messenger, LLC
+// Copyright 2021 Signal Messenger, LLC
// SPDX-License-Identifier: AGPL-3.0-only
import { assert } from 'chai';
diff --git a/ts/test-node/license_comments_test.ts b/ts/test-node/license_comments_test.ts
deleted file mode 100644
index bf20ce6be..000000000
--- a/ts/test-node/license_comments_test.ts
+++ /dev/null
@@ -1,62 +0,0 @@
-// Copyright 2020-2021 Signal Messenger, LLC
-// SPDX-License-Identifier: AGPL-3.0-only
-
-// This file is meant to be run frequently, so it doesn't check the license year. See the
-// imported `license_comments` file for a job that does this, to be run on CI.
-
-import { assert } from 'chai';
-
-import {
- forEachRelevantFile,
- getExtension,
- readFirstLines,
-} from '../util/lint/license_comments';
-
-describe('license comments', () => {
- it('includes a license comment at the top of every relevant file', async function test() {
- await forEachRelevantFile(async file => {
- let firstLine: string;
- let secondLine: string;
-
- if (getExtension(file) === '.sh') {
- const firstThreeLines = await readFirstLines(file, 3);
- [, firstLine, secondLine] = firstThreeLines;
- } else {
- [firstLine, secondLine] = await readFirstLines(file, 2);
- }
-
- if (!firstLine || !secondLine) {
- throw new Error(`file ${file}: was missing a first or second line!`);
- }
-
- const { groups = {} } =
- firstLine.match(
- /Copyright (?\d{4}-)?(?\d{4}) Signal Messenger, LLC/
- ) || {};
- const { startYearWithDash, endYearString } = groups;
- const endYear = Number(endYearString);
-
- // We added these comments in 2020.
- assert.isAtLeast(
- endYear,
- 2020,
- `First line of ${file} is missing correct license header comment`
- );
-
- if (startYearWithDash) {
- const startYear = Number(startYearWithDash.slice(0, -1));
- assert.isBelow(
- startYear,
- endYear,
- `Starting license year of ${file} is not below the ending year`
- );
- }
-
- assert.include(
- secondLine,
- 'SPDX-License-Identifier: AGPL-3.0-only',
- `Second line of ${file} is missing correct license header comment`
- );
- });
- });
-});
diff --git a/ts/test-node/logging_test.ts b/ts/test-node/logging_test.ts
index 0db112134..5f4547922 100644
--- a/ts/test-node/logging_test.ts
+++ b/ts/test-node/logging_test.ts
@@ -1,4 +1,4 @@
-// Copyright 2018-2022 Signal Messenger, LLC
+// Copyright 2018 Signal Messenger, LLC
// SPDX-License-Identifier: AGPL-3.0-only
// NOTE: Temporarily allow `then` until we convert the entire file to `async` / `await`:
diff --git a/ts/test-node/quill/memberRepository_test.ts b/ts/test-node/quill/memberRepository_test.ts
index 944f64089..fb8e5151b 100644
--- a/ts/test-node/quill/memberRepository_test.ts
+++ b/ts/test-node/quill/memberRepository_test.ts
@@ -1,4 +1,4 @@
-// Copyright 2020-2021 Signal Messenger, LLC
+// Copyright 2020 Signal Messenger, LLC
// SPDX-License-Identifier: AGPL-3.0-only
import { assert } from 'chai';
diff --git a/ts/test-node/quill/mentions/matchers_test.ts b/ts/test-node/quill/mentions/matchers_test.ts
index 10e0d73da..a1adaf3ab 100644
--- a/ts/test-node/quill/mentions/matchers_test.ts
+++ b/ts/test-node/quill/mentions/matchers_test.ts
@@ -1,4 +1,4 @@
-// Copyright 2020-2021 Signal Messenger, LLC
+// Copyright 2020 Signal Messenger, LLC
// SPDX-License-Identifier: AGPL-3.0-only
import { assert } from 'chai';
diff --git a/ts/test-node/sql_migrations_test.ts b/ts/test-node/sql_migrations_test.ts
index d317b4d35..e8dd0b7c6 100644
--- a/ts/test-node/sql_migrations_test.ts
+++ b/ts/test-node/sql_migrations_test.ts
@@ -1,4 +1,4 @@
-// Copyright 2021-2022 Signal Messenger, LLC
+// Copyright 2021 Signal Messenger, LLC
// SPDX-License-Identifier: AGPL-3.0-only
import { assert } from 'chai';
diff --git a/ts/test-node/types/Attachment_test.ts b/ts/test-node/types/Attachment_test.ts
index 9a69a87ce..11fae6e92 100644
--- a/ts/test-node/types/Attachment_test.ts
+++ b/ts/test-node/types/Attachment_test.ts
@@ -1,4 +1,4 @@
-// Copyright 2018-2021 Signal Messenger, LLC
+// Copyright 2018 Signal Messenger, LLC
// SPDX-License-Identifier: AGPL-3.0-only
import { assert } from 'chai';
diff --git a/ts/test-node/types/EmbeddedContact_test.ts b/ts/test-node/types/EmbeddedContact_test.ts
index 7a2d175f7..e1c149a1d 100644
--- a/ts/test-node/types/EmbeddedContact_test.ts
+++ b/ts/test-node/types/EmbeddedContact_test.ts
@@ -1,4 +1,4 @@
-// Copyright 2018-2020 Signal Messenger, LLC
+// Copyright 2018 Signal Messenger, LLC
// SPDX-License-Identifier: AGPL-3.0-only
import { assert } from 'chai';
diff --git a/ts/test-node/types/LinkPreview_test.ts b/ts/test-node/types/LinkPreview_test.ts
index 45d7b7656..5f060bd69 100644
--- a/ts/test-node/types/LinkPreview_test.ts
+++ b/ts/test-node/types/LinkPreview_test.ts
@@ -1,4 +1,4 @@
-// Copyright 2019-2022 Signal Messenger, LLC
+// Copyright 2019 Signal Messenger, LLC
// SPDX-License-Identifier: AGPL-3.0-only
import { assert } from 'chai';
diff --git a/ts/test-node/types/MIME_test.ts b/ts/test-node/types/MIME_test.ts
index 970e0b212..70ef29d02 100644
--- a/ts/test-node/types/MIME_test.ts
+++ b/ts/test-node/types/MIME_test.ts
@@ -1,4 +1,4 @@
-// Copyright 2018-2022 Signal Messenger, LLC
+// Copyright 2018 Signal Messenger, LLC
// SPDX-License-Identifier: AGPL-3.0-only
import { assert } from 'chai';
diff --git a/ts/test-node/types/Message2_test.ts b/ts/test-node/types/Message2_test.ts
index c776c3911..399434f35 100644
--- a/ts/test-node/types/Message2_test.ts
+++ b/ts/test-node/types/Message2_test.ts
@@ -1,4 +1,4 @@
-// Copyright 2018-2020 Signal Messenger, LLC
+// Copyright 2018 Signal Messenger, LLC
// SPDX-License-Identifier: AGPL-3.0-only
import { assert } from 'chai';
diff --git a/ts/test-node/types/Settings_test.ts b/ts/test-node/types/Settings_test.ts
index 050d4b3e0..79239c605 100644
--- a/ts/test-node/types/Settings_test.ts
+++ b/ts/test-node/types/Settings_test.ts
@@ -1,4 +1,4 @@
-// Copyright 2018-2021 Signal Messenger, LLC
+// Copyright 2018 Signal Messenger, LLC
// SPDX-License-Identifier: AGPL-3.0-only
import os from 'os';
diff --git a/ts/test-node/types/message/initializeAttachmentMetadata_test.ts b/ts/test-node/types/message/initializeAttachmentMetadata_test.ts
index a22d95330..01020eb50 100644
--- a/ts/test-node/types/message/initializeAttachmentMetadata_test.ts
+++ b/ts/test-node/types/message/initializeAttachmentMetadata_test.ts
@@ -1,4 +1,4 @@
-// Copyright 2018-2020 Signal Messenger, LLC
+// Copyright 2018 Signal Messenger, LLC
// SPDX-License-Identifier: AGPL-3.0-only
import { assert } from 'chai';
diff --git a/ts/test-node/updater/common_test.ts b/ts/test-node/updater/common_test.ts
index 3453048af..d48047f21 100644
--- a/ts/test-node/updater/common_test.ts
+++ b/ts/test-node/updater/common_test.ts
@@ -1,4 +1,4 @@
-// Copyright 2019-2020 Signal Messenger, LLC
+// Copyright 2019 Signal Messenger, LLC
// SPDX-License-Identifier: AGPL-3.0-only
import { assert } from 'chai';
diff --git a/ts/test-node/updater/curve_test.ts b/ts/test-node/updater/curve_test.ts
index 55108b00c..1d00284bf 100644
--- a/ts/test-node/updater/curve_test.ts
+++ b/ts/test-node/updater/curve_test.ts
@@ -1,4 +1,4 @@
-// Copyright 2019-2020 Signal Messenger, LLC
+// Copyright 2019 Signal Messenger, LLC
// SPDX-License-Identifier: AGPL-3.0-only
import { assert } from 'chai';
diff --git a/ts/test-node/updater/signature_test.ts b/ts/test-node/updater/signature_test.ts
index 65826e409..421eaccf8 100644
--- a/ts/test-node/updater/signature_test.ts
+++ b/ts/test-node/updater/signature_test.ts
@@ -1,4 +1,4 @@
-// Copyright 2019-2020 Signal Messenger, LLC
+// Copyright 2019 Signal Messenger, LLC
// SPDX-License-Identifier: AGPL-3.0-only
import { existsSync } from 'fs';
diff --git a/ts/test-node/util/getTextWithMentions_test.ts b/ts/test-node/util/getTextWithMentions_test.ts
index ea73f8810..8bd6ec4bc 100644
--- a/ts/test-node/util/getTextWithMentions_test.ts
+++ b/ts/test-node/util/getTextWithMentions_test.ts
@@ -1,4 +1,4 @@
-// Copyright 2020-2022 Signal Messenger, LLC
+// Copyright 2020 Signal Messenger, LLC
// SPDX-License-Identifier: AGPL-3.0-only
import { assert } from 'chai';
diff --git a/ts/test-node/util/isFileDangerous_test.ts b/ts/test-node/util/isFileDangerous_test.ts
index a658bdb80..6a86f7429 100644
--- a/ts/test-node/util/isFileDangerous_test.ts
+++ b/ts/test-node/util/isFileDangerous_test.ts
@@ -1,4 +1,4 @@
-// Copyright 2018-2020 Signal Messenger, LLC
+// Copyright 2018 Signal Messenger, LLC
// SPDX-License-Identifier: AGPL-3.0-only
import { assert } from 'chai';
diff --git a/ts/test-node/util/sgnlHref_test.ts b/ts/test-node/util/sgnlHref_test.ts
index faa6d479c..75544aa63 100644
--- a/ts/test-node/util/sgnlHref_test.ts
+++ b/ts/test-node/util/sgnlHref_test.ts
@@ -1,4 +1,4 @@
-// Copyright 2020-2022 Signal Messenger, LLC
+// Copyright 2020 Signal Messenger, LLC
// SPDX-License-Identifier: AGPL-3.0-only
import { assert } from 'chai';
diff --git a/ts/test-node/util/windowsZoneIdentifier_test.ts b/ts/test-node/util/windowsZoneIdentifier_test.ts
index 7fa60bb8e..fdab80718 100644
--- a/ts/test-node/util/windowsZoneIdentifier_test.ts
+++ b/ts/test-node/util/windowsZoneIdentifier_test.ts
@@ -1,4 +1,4 @@
-// Copyright 2020-2021 Signal Messenger, LLC
+// Copyright 2020 Signal Messenger, LLC
// SPDX-License-Identifier: AGPL-3.0-only
import { assert } from 'chai';
diff --git a/ts/textsecure/AccountManager.ts b/ts/textsecure/AccountManager.ts
index 31ec9f0ec..791cf1b88 100644
--- a/ts/textsecure/AccountManager.ts
+++ b/ts/textsecure/AccountManager.ts
@@ -1,4 +1,4 @@
-// Copyright 2020-2022 Signal Messenger, LLC
+// Copyright 2020 Signal Messenger, LLC
// SPDX-License-Identifier: AGPL-3.0-only
import PQueue from 'p-queue';
diff --git a/ts/textsecure/Errors.ts b/ts/textsecure/Errors.ts
index e7f63db4b..5a57b1b44 100644
--- a/ts/textsecure/Errors.ts
+++ b/ts/textsecure/Errors.ts
@@ -1,4 +1,4 @@
-// Copyright 2020-2021 Signal Messenger, LLC
+// Copyright 2020 Signal Messenger, LLC
// SPDX-License-Identifier: AGPL-3.0-only
/* eslint-disable max-classes-per-file */
diff --git a/ts/textsecure/EventTarget.ts b/ts/textsecure/EventTarget.ts
index 003e98d5b..b8d5d18a6 100644
--- a/ts/textsecure/EventTarget.ts
+++ b/ts/textsecure/EventTarget.ts
@@ -1,4 +1,4 @@
-// Copyright 2020-2022 Signal Messenger, LLC
+// Copyright 2020 Signal Messenger, LLC
// SPDX-License-Identifier: AGPL-3.0-only
/* eslint-disable @typescript-eslint/explicit-module-boundary-types */
diff --git a/ts/textsecure/KeyChangeListener.ts b/ts/textsecure/KeyChangeListener.ts
index 8b0b97c4d..ad7e1cc81 100644
--- a/ts/textsecure/KeyChangeListener.ts
+++ b/ts/textsecure/KeyChangeListener.ts
@@ -1,4 +1,4 @@
-// Copyright 2017-2021 Signal Messenger, LLC
+// Copyright 2017 Signal Messenger, LLC
// SPDX-License-Identifier: AGPL-3.0-only
import type { UUID } from '../types/UUID';
diff --git a/ts/textsecure/MessageReceiver.ts b/ts/textsecure/MessageReceiver.ts
index 142e0ceeb..5df523259 100644
--- a/ts/textsecure/MessageReceiver.ts
+++ b/ts/textsecure/MessageReceiver.ts
@@ -1,4 +1,4 @@
-// Copyright 2020-2022 Signal Messenger, LLC
+// Copyright 2020 Signal Messenger, LLC
// SPDX-License-Identifier: AGPL-3.0-only
/* eslint-disable no-bitwise */
diff --git a/ts/textsecure/OutgoingMessage.ts b/ts/textsecure/OutgoingMessage.ts
index 17d994882..ca2468a20 100644
--- a/ts/textsecure/OutgoingMessage.ts
+++ b/ts/textsecure/OutgoingMessage.ts
@@ -1,4 +1,4 @@
-// Copyright 2020-2022 Signal Messenger, LLC
+// Copyright 2020 Signal Messenger, LLC
// SPDX-License-Identifier: AGPL-3.0-only
/* eslint-disable @typescript-eslint/no-explicit-any */
diff --git a/ts/textsecure/ProvisioningCipher.ts b/ts/textsecure/ProvisioningCipher.ts
index ade6b2295..d28b8bf8e 100644
--- a/ts/textsecure/ProvisioningCipher.ts
+++ b/ts/textsecure/ProvisioningCipher.ts
@@ -1,4 +1,4 @@
-// Copyright 2020-2022 Signal Messenger, LLC
+// Copyright 2020 Signal Messenger, LLC
// SPDX-License-Identifier: AGPL-3.0-only
/* eslint-disable max-classes-per-file */
diff --git a/ts/textsecure/RotateSignedPreKeyListener.ts b/ts/textsecure/RotateSignedPreKeyListener.ts
index 7e66e0c2c..7c77a5515 100644
--- a/ts/textsecure/RotateSignedPreKeyListener.ts
+++ b/ts/textsecure/RotateSignedPreKeyListener.ts
@@ -1,4 +1,4 @@
-// Copyright 2017-2022 Signal Messenger, LLC
+// Copyright 2017 Signal Messenger, LLC
// SPDX-License-Identifier: AGPL-3.0-only
import * as durations from '../util/durations';
diff --git a/ts/textsecure/SendMessage.ts b/ts/textsecure/SendMessage.ts
index 3d859a821..f7a4fa375 100644
--- a/ts/textsecure/SendMessage.ts
+++ b/ts/textsecure/SendMessage.ts
@@ -1,4 +1,4 @@
-// Copyright 2020-2022 Signal Messenger, LLC
+// Copyright 2020 Signal Messenger, LLC
// SPDX-License-Identifier: AGPL-3.0-only
/* eslint-disable no-bitwise */
diff --git a/ts/textsecure/Storage.ts b/ts/textsecure/Storage.ts
index 1e13f9849..1908dc089 100644
--- a/ts/textsecure/Storage.ts
+++ b/ts/textsecure/Storage.ts
@@ -1,4 +1,4 @@
-// Copyright 2020-2021 Signal Messenger, LLC
+// Copyright 2020 Signal Messenger, LLC
// SPDX-License-Identifier: AGPL-3.0-only
import type {
diff --git a/ts/textsecure/SyncRequest.ts b/ts/textsecure/SyncRequest.ts
index 2020e312c..a62bcc61b 100644
--- a/ts/textsecure/SyncRequest.ts
+++ b/ts/textsecure/SyncRequest.ts
@@ -1,4 +1,4 @@
-// Copyright 2020-2022 Signal Messenger, LLC
+// Copyright 2020 Signal Messenger, LLC
// SPDX-License-Identifier: AGPL-3.0-only
/* eslint-disable @typescript-eslint/no-explicit-any */
diff --git a/ts/textsecure/TaskWithTimeout.ts b/ts/textsecure/TaskWithTimeout.ts
index 83c2e0d06..d03dda2f7 100644
--- a/ts/textsecure/TaskWithTimeout.ts
+++ b/ts/textsecure/TaskWithTimeout.ts
@@ -1,4 +1,4 @@
-// Copyright 2020-2022 Signal Messenger, LLC
+// Copyright 2020 Signal Messenger, LLC
// SPDX-License-Identifier: AGPL-3.0-only
import { MINUTE } from '../util/durations';
diff --git a/ts/textsecure/Types.d.ts b/ts/textsecure/Types.d.ts
index d451c5308..536b48594 100644
--- a/ts/textsecure/Types.d.ts
+++ b/ts/textsecure/Types.d.ts
@@ -1,4 +1,4 @@
-// Copyright 2021-2022 Signal Messenger, LLC
+// Copyright 2021 Signal Messenger, LLC
// SPDX-License-Identifier: AGPL-3.0-only
import type { SignalService as Proto } from '../protobuf';
diff --git a/ts/textsecure/Utils.ts b/ts/textsecure/Utils.ts
index 8ad21f6da..c68895e25 100644
--- a/ts/textsecure/Utils.ts
+++ b/ts/textsecure/Utils.ts
@@ -1,4 +1,4 @@
-// Copyright 2020-2021 Signal Messenger, LLC
+// Copyright 2020 Signal Messenger, LLC
// SPDX-License-Identifier: AGPL-3.0-only
import * as log from '../logging/log';
diff --git a/ts/textsecure/WebAPI.ts b/ts/textsecure/WebAPI.ts
index 5bb24eaf6..26691cc27 100644
--- a/ts/textsecure/WebAPI.ts
+++ b/ts/textsecure/WebAPI.ts
@@ -1,4 +1,4 @@
-// Copyright 2020-2022 Signal Messenger, LLC
+// Copyright 2020 Signal Messenger, LLC
// SPDX-License-Identifier: AGPL-3.0-only
/* eslint-disable no-param-reassign */
diff --git a/ts/textsecure/WebsocketResources.ts b/ts/textsecure/WebsocketResources.ts
index 69b44eb52..64c2ba2fd 100644
--- a/ts/textsecure/WebsocketResources.ts
+++ b/ts/textsecure/WebsocketResources.ts
@@ -1,4 +1,4 @@
-// Copyright 2020-2021 Signal Messenger, LLC
+// Copyright 2020 Signal Messenger, LLC
// SPDX-License-Identifier: AGPL-3.0-only
/* eslint-disable max-classes-per-file */
diff --git a/ts/textsecure/cds/CDSSocketBase.ts b/ts/textsecure/cds/CDSSocketBase.ts
index b7a2b2762..b064b7b77 100644
--- a/ts/textsecure/cds/CDSSocketBase.ts
+++ b/ts/textsecure/cds/CDSSocketBase.ts
@@ -1,4 +1,4 @@
-// Copyright 2021-2022 Signal Messenger, LLC
+// Copyright 2021 Signal Messenger, LLC
// SPDX-License-Identifier: AGPL-3.0-only
import { EventEmitter } from 'events';
diff --git a/ts/textsecure/cds/CDSSocketManagerBase.ts b/ts/textsecure/cds/CDSSocketManagerBase.ts
index 99ab50bf5..0fbf369cd 100644
--- a/ts/textsecure/cds/CDSSocketManagerBase.ts
+++ b/ts/textsecure/cds/CDSSocketManagerBase.ts
@@ -1,4 +1,4 @@
-// Copyright 2021-2022 Signal Messenger, LLC
+// Copyright 2021 Signal Messenger, LLC
// SPDX-License-Identifier: AGPL-3.0-only
import type { connection as WebSocket } from 'websocket';
diff --git a/ts/textsecure/cds/Types.d.ts b/ts/textsecure/cds/Types.d.ts
index e8eae7500..32558dba5 100644
--- a/ts/textsecure/cds/Types.d.ts
+++ b/ts/textsecure/cds/Types.d.ts
@@ -1,4 +1,4 @@
-// Copyright 2021-2022 Signal Messenger, LLC
+// Copyright 2021 Signal Messenger, LLC
// SPDX-License-Identifier: AGPL-3.0-only
import type { UUIDStringType } from '../../types/UUID';
diff --git a/ts/textsecure/downloadAttachment.ts b/ts/textsecure/downloadAttachment.ts
index 7b30c9c7a..d8543de15 100644
--- a/ts/textsecure/downloadAttachment.ts
+++ b/ts/textsecure/downloadAttachment.ts
@@ -1,4 +1,4 @@
-// Copyright 2020-2021 Signal Messenger, LLC
+// Copyright 2020 Signal Messenger, LLC
// SPDX-License-Identifier: AGPL-3.0-only
import { isNumber, omit } from 'lodash';
diff --git a/ts/textsecure/messageReceiverEvents.ts b/ts/textsecure/messageReceiverEvents.ts
index cbe7b2ae5..7b602fbe5 100644
--- a/ts/textsecure/messageReceiverEvents.ts
+++ b/ts/textsecure/messageReceiverEvents.ts
@@ -1,4 +1,4 @@
-// Copyright 2020-2021 Signal Messenger, LLC
+// Copyright 2020 Signal Messenger, LLC
// SPDX-License-Identifier: AGPL-3.0-only
/* eslint-disable max-classes-per-file */
diff --git a/ts/textsecure/processDataMessage.ts b/ts/textsecure/processDataMessage.ts
index a06189b2f..2d4a49b5d 100644
--- a/ts/textsecure/processDataMessage.ts
+++ b/ts/textsecure/processDataMessage.ts
@@ -1,4 +1,4 @@
-// Copyright 2020-2022 Signal Messenger, LLC
+// Copyright 2020 Signal Messenger, LLC
// SPDX-License-Identifier: AGPL-3.0-only
import Long from 'long';
diff --git a/ts/textsecure/storage/Blocked.ts b/ts/textsecure/storage/Blocked.ts
index 7e9b8f904..16080f7b8 100644
--- a/ts/textsecure/storage/Blocked.ts
+++ b/ts/textsecure/storage/Blocked.ts
@@ -1,4 +1,4 @@
-// Copyright 2016-2021 Signal Messenger, LLC
+// Copyright 2016 Signal Messenger, LLC
// SPDX-License-Identifier: AGPL-3.0-only
import { without } from 'lodash';
diff --git a/ts/types/Attachment.ts b/ts/types/Attachment.ts
index ca851aeb8..1bedaac68 100644
--- a/ts/types/Attachment.ts
+++ b/ts/types/Attachment.ts
@@ -1,4 +1,4 @@
-// Copyright 2018-2022 Signal Messenger, LLC
+// Copyright 2018 Signal Messenger, LLC
// SPDX-License-Identifier: AGPL-3.0-only
import is from '@sindresorhus/is';
diff --git a/ts/types/Calling.ts b/ts/types/Calling.ts
index cc9fc267f..a29daacae 100644
--- a/ts/types/Calling.ts
+++ b/ts/types/Calling.ts
@@ -1,4 +1,4 @@
-// Copyright 2020-2022 Signal Messenger, LLC
+// Copyright 2020 Signal Messenger, LLC
// SPDX-License-Identifier: AGPL-3.0-only
import type { AudioDevice } from 'ringrtc';
diff --git a/ts/types/Colors.ts b/ts/types/Colors.ts
index 0f41a5ea4..797532baa 100644
--- a/ts/types/Colors.ts
+++ b/ts/types/Colors.ts
@@ -1,4 +1,4 @@
-// Copyright 2020-2022 Signal Messenger, LLC
+// Copyright 2020 Signal Messenger, LLC
// SPDX-License-Identifier: AGPL-3.0-only
export const AvatarColorMap = new Map([
diff --git a/ts/types/Conversation.ts b/ts/types/Conversation.ts
index 29bc7755b..578bb1307 100644
--- a/ts/types/Conversation.ts
+++ b/ts/types/Conversation.ts
@@ -1,4 +1,4 @@
-// Copyright 2018-2021 Signal Messenger, LLC
+// Copyright 2018 Signal Messenger, LLC
// SPDX-License-Identifier: AGPL-3.0-only
import type { ConversationAttributesType } from '../model-types.d';
diff --git a/ts/types/EmbeddedContact.ts b/ts/types/EmbeddedContact.ts
index a7504e86d..375f167d9 100644
--- a/ts/types/EmbeddedContact.ts
+++ b/ts/types/EmbeddedContact.ts
@@ -1,4 +1,4 @@
-// Copyright 2019-2022 Signal Messenger, LLC
+// Copyright 2019 Signal Messenger, LLC
// SPDX-License-Identifier: AGPL-3.0-only
import { omit } from 'lodash';
diff --git a/ts/types/IndexedDB.ts b/ts/types/IndexedDB.ts
index 312e2433f..b6eaf6a3b 100644
--- a/ts/types/IndexedDB.ts
+++ b/ts/types/IndexedDB.ts
@@ -1,4 +1,4 @@
-// Copyright 2018-2020 Signal Messenger, LLC
+// Copyright 2018 Signal Messenger, LLC
// SPDX-License-Identifier: AGPL-3.0-only
// IndexedDB doesn’t support boolean indexes so we map `true` to 1 and `false`
diff --git a/ts/types/LinkPreview.ts b/ts/types/LinkPreview.ts
index f95ee89db..04efa649a 100644
--- a/ts/types/LinkPreview.ts
+++ b/ts/types/LinkPreview.ts
@@ -1,4 +1,4 @@
-// Copyright 2019-2021 Signal Messenger, LLC
+// Copyright 2019 Signal Messenger, LLC
// SPDX-License-Identifier: AGPL-3.0-only
import { isNumber, compact, isEmpty, range } from 'lodash';
diff --git a/ts/types/MIME.ts b/ts/types/MIME.ts
index 15712892f..04f77b2a1 100644
--- a/ts/types/MIME.ts
+++ b/ts/types/MIME.ts
@@ -1,4 +1,4 @@
-// Copyright 2018-2021 Signal Messenger, LLC
+// Copyright 2018 Signal Messenger, LLC
// SPDX-License-Identifier: AGPL-3.0-only
export type MIMEType = string & { _mimeTypeBrand: never };
diff --git a/ts/types/MapAsync.ts b/ts/types/MapAsync.ts
index 2ebb8f5ec..961190337 100644
--- a/ts/types/MapAsync.ts
+++ b/ts/types/MapAsync.ts
@@ -1,4 +1,4 @@
-// Copyright 2018-2020 Signal Messenger, LLC
+// Copyright 2018 Signal Messenger, LLC
// SPDX-License-Identifier: AGPL-3.0-only
export type MapAsync = (value: T) => Promise;
diff --git a/ts/types/MediaItem.ts b/ts/types/MediaItem.ts
index 1259b3a02..ecbf3e909 100644
--- a/ts/types/MediaItem.ts
+++ b/ts/types/MediaItem.ts
@@ -1,4 +1,4 @@
-// Copyright 2021-2022 Signal Messenger, LLC
+// Copyright 2021 Signal Messenger, LLC
// SPDX-License-Identifier: AGPL-3.0-only
import type { MessageAttributesType } from '../model-types.d';
diff --git a/ts/types/Message.ts b/ts/types/Message.ts
index 64530d9ef..c515df03b 100644
--- a/ts/types/Message.ts
+++ b/ts/types/Message.ts
@@ -1,4 +1,4 @@
-// Copyright 2018-2022 Signal Messenger, LLC
+// Copyright 2018 Signal Messenger, LLC
// SPDX-License-Identifier: AGPL-3.0-only
import type { DurationInSeconds } from '../util/durations';
diff --git a/ts/types/Message2.ts b/ts/types/Message2.ts
index 56ded98b0..9453b49bc 100644
--- a/ts/types/Message2.ts
+++ b/ts/types/Message2.ts
@@ -1,4 +1,4 @@
-// Copyright 2018-2021 Signal Messenger, LLC
+// Copyright 2018 Signal Messenger, LLC
// SPDX-License-Identifier: AGPL-3.0-only
import { isFunction, isObject, isString, omit } from 'lodash';
diff --git a/ts/types/PhoneNumber.ts b/ts/types/PhoneNumber.ts
index 72ca1a5fa..97bf67019 100644
--- a/ts/types/PhoneNumber.ts
+++ b/ts/types/PhoneNumber.ts
@@ -1,4 +1,4 @@
-// Copyright 2018-2020 Signal Messenger, LLC
+// Copyright 2018 Signal Messenger, LLC
// SPDX-License-Identifier: AGPL-3.0-only
import memoizee from 'memoizee';
diff --git a/ts/types/SchemaVersion.ts b/ts/types/SchemaVersion.ts
index 96699ebbf..ca2437e80 100644
--- a/ts/types/SchemaVersion.ts
+++ b/ts/types/SchemaVersion.ts
@@ -1,4 +1,4 @@
-// Copyright 2018-2021 Signal Messenger, LLC
+// Copyright 2018 Signal Messenger, LLC
// SPDX-License-Identifier: AGPL-3.0-only
import { isNumber } from 'lodash';
diff --git a/ts/types/Settings.ts b/ts/types/Settings.ts
index bd9e11062..dbad91bf3 100644
--- a/ts/types/Settings.ts
+++ b/ts/types/Settings.ts
@@ -1,4 +1,4 @@
-// Copyright 2018-2021 Signal Messenger, LLC
+// Copyright 2018 Signal Messenger, LLC
// SPDX-License-Identifier: AGPL-3.0-only
import semver from 'semver';
diff --git a/ts/types/Stickers.ts b/ts/types/Stickers.ts
index 45bea5716..1b017797f 100644
--- a/ts/types/Stickers.ts
+++ b/ts/types/Stickers.ts
@@ -1,4 +1,4 @@
-// Copyright 2019-2022 Signal Messenger, LLC
+// Copyright 2019 Signal Messenger, LLC
// SPDX-License-Identifier: AGPL-3.0-only
import { isNumber, pick, reject, groupBy, values } from 'lodash';
diff --git a/ts/types/Storage.d.ts b/ts/types/Storage.d.ts
index 307dacca8..2882d9569 100644
--- a/ts/types/Storage.d.ts
+++ b/ts/types/Storage.d.ts
@@ -1,4 +1,4 @@
-// Copyright 2020-2022 Signal Messenger, LLC
+// Copyright 2020 Signal Messenger, LLC
// SPDX-License-Identifier: AGPL-3.0-only
import type { AudioDevice } from 'ringrtc';
diff --git a/ts/types/StorageService.d.ts b/ts/types/StorageService.d.ts
index df6ba9d18..1844a608c 100644
--- a/ts/types/StorageService.d.ts
+++ b/ts/types/StorageService.d.ts
@@ -1,4 +1,4 @@
-// Copyright 2020-2022 Signal Messenger, LLC
+// Copyright 2020 Signal Messenger, LLC
// SPDX-License-Identifier: AGPL-3.0-only
export type ExtendedStorageID = {
diff --git a/ts/types/Util.ts b/ts/types/Util.ts
index 37d49f189..6ac78aa2d 100644
--- a/ts/types/Util.ts
+++ b/ts/types/Util.ts
@@ -1,4 +1,4 @@
-// Copyright 2018-2021 Signal Messenger, LLC
+// Copyright 2018 Signal Messenger, LLC
// SPDX-License-Identifier: AGPL-3.0-only
import type { IntlShape } from 'react-intl';
diff --git a/ts/types/VisualAttachment.ts b/ts/types/VisualAttachment.ts
index 9e049a0f5..5d360eccf 100644
--- a/ts/types/VisualAttachment.ts
+++ b/ts/types/VisualAttachment.ts
@@ -1,4 +1,4 @@
-// Copyright 2018-2021 Signal Messenger, LLC
+// Copyright 2018 Signal Messenger, LLC
// SPDX-License-Identifier: AGPL-3.0-only
import loadImage from 'blueimp-load-image';
diff --git a/ts/types/errors.ts b/ts/types/errors.ts
index 7b65721a1..b029fea77 100644
--- a/ts/types/errors.ts
+++ b/ts/types/errors.ts
@@ -1,4 +1,4 @@
-// Copyright 2018-2022 Signal Messenger, LLC
+// Copyright 2018 Signal Messenger, LLC
// SPDX-License-Identifier: AGPL-3.0-only
import { get, has } from 'lodash';
diff --git a/ts/types/menu.ts b/ts/types/menu.ts
index fa7ab98f3..7ed0f0bbd 100644
--- a/ts/types/menu.ts
+++ b/ts/types/menu.ts
@@ -1,4 +1,4 @@
-// Copyright 2017-2022 Signal Messenger, LLC
+// Copyright 2017 Signal Messenger, LLC
// SPDX-License-Identifier: AGPL-3.0-only
import type { MenuItemConstructorOptions } from 'electron';
diff --git a/ts/types/message/initializeAttachmentMetadata.ts b/ts/types/message/initializeAttachmentMetadata.ts
index ab8fb711f..fa4ab7187 100644
--- a/ts/types/message/initializeAttachmentMetadata.ts
+++ b/ts/types/message/initializeAttachmentMetadata.ts
@@ -1,4 +1,4 @@
-// Copyright 2018-2022 Signal Messenger, LLC
+// Copyright 2018 Signal Messenger, LLC
// SPDX-License-Identifier: AGPL-3.0-only
import * as Attachment from '../Attachment';
diff --git a/ts/updater/common.ts b/ts/updater/common.ts
index 92b4a66da..5d32686a8 100644
--- a/ts/updater/common.ts
+++ b/ts/updater/common.ts
@@ -1,4 +1,4 @@
-// Copyright 2019-2020 Signal Messenger, LLC
+// Copyright 2019 Signal Messenger, LLC
// SPDX-License-Identifier: AGPL-3.0-only
/* eslint-disable no-console */
diff --git a/ts/updater/curve.ts b/ts/updater/curve.ts
index b8944e45f..352dda1ec 100644
--- a/ts/updater/curve.ts
+++ b/ts/updater/curve.ts
@@ -1,4 +1,4 @@
-// Copyright 2019-2021 Signal Messenger, LLC
+// Copyright 2019 Signal Messenger, LLC
// SPDX-License-Identifier: AGPL-3.0-only
import { PrivateKey, PublicKey } from '@signalapp/libsignal-client';
diff --git a/ts/updater/generateKeyPair.ts b/ts/updater/generateKeyPair.ts
index 651fd1846..fbfe1dd81 100644
--- a/ts/updater/generateKeyPair.ts
+++ b/ts/updater/generateKeyPair.ts
@@ -1,4 +1,4 @@
-// Copyright 2019-2020 Signal Messenger, LLC
+// Copyright 2019 Signal Messenger, LLC
// SPDX-License-Identifier: AGPL-3.0-only
/* eslint-disable no-console */
diff --git a/ts/updater/generateSignature.ts b/ts/updater/generateSignature.ts
index 412aa5929..af2e83485 100644
--- a/ts/updater/generateSignature.ts
+++ b/ts/updater/generateSignature.ts
@@ -1,4 +1,4 @@
-// Copyright 2019-2020 Signal Messenger, LLC
+// Copyright 2019 Signal Messenger, LLC
// SPDX-License-Identifier: AGPL-3.0-only
/* eslint-disable no-console */
diff --git a/ts/updater/got.ts b/ts/updater/got.ts
index 9dfe6fa0d..1572eb028 100644
--- a/ts/updater/got.ts
+++ b/ts/updater/got.ts
@@ -1,4 +1,4 @@
-// Copyright 2019-2022 Signal Messenger, LLC
+// Copyright 2019 Signal Messenger, LLC
// SPDX-License-Identifier: AGPL-3.0-only
import type { StrictOptions as GotOptions } from 'got';
diff --git a/ts/updater/index.ts b/ts/updater/index.ts
index c73e77cab..edf48eac7 100644
--- a/ts/updater/index.ts
+++ b/ts/updater/index.ts
@@ -1,4 +1,4 @@
-// Copyright 2019-2020 Signal Messenger, LLC
+// Copyright 2019 Signal Messenger, LLC
// SPDX-License-Identifier: AGPL-3.0-only
import config from 'config';
diff --git a/ts/updater/macos.ts b/ts/updater/macos.ts
index fefbfc9b7..adb0e591a 100644
--- a/ts/updater/macos.ts
+++ b/ts/updater/macos.ts
@@ -1,4 +1,4 @@
-// Copyright 2019-2020 Signal Messenger, LLC
+// Copyright 2019 Signal Messenger, LLC
// SPDX-License-Identifier: AGPL-3.0-only
import { createReadStream, statSync } from 'fs';
diff --git a/ts/updater/signature.ts b/ts/updater/signature.ts
index d752e9f03..0a5294636 100644
--- a/ts/updater/signature.ts
+++ b/ts/updater/signature.ts
@@ -1,4 +1,4 @@
-// Copyright 2019-2020 Signal Messenger, LLC
+// Copyright 2019 Signal Messenger, LLC
// SPDX-License-Identifier: AGPL-3.0-only
import { createHash } from 'crypto';
diff --git a/ts/updater/windows.ts b/ts/updater/windows.ts
index bfdb2e52d..f36e379a9 100644
--- a/ts/updater/windows.ts
+++ b/ts/updater/windows.ts
@@ -1,4 +1,4 @@
-// Copyright 2019-2020 Signal Messenger, LLC
+// Copyright 2019 Signal Messenger, LLC
// SPDX-License-Identifier: AGPL-3.0-only
import { join } from 'path';
diff --git a/ts/util/GoogleChrome.ts b/ts/util/GoogleChrome.ts
index f9a4edecc..ff0df00de 100644
--- a/ts/util/GoogleChrome.ts
+++ b/ts/util/GoogleChrome.ts
@@ -1,4 +1,4 @@
-// Copyright 2018-2021 Signal Messenger, LLC
+// Copyright 2018 Signal Messenger, LLC
// SPDX-License-Identifier: AGPL-3.0-only
import type * as MIME from '../types/MIME';
diff --git a/ts/util/MessageController.ts b/ts/util/MessageController.ts
index bf41d454a..92e581b05 100644
--- a/ts/util/MessageController.ts
+++ b/ts/util/MessageController.ts
@@ -1,4 +1,4 @@
-// Copyright 2019-2021 Signal Messenger, LLC
+// Copyright 2019 Signal Messenger, LLC
// SPDX-License-Identifier: AGPL-3.0-only
import type { MessageModel } from '../models/messages';
diff --git a/ts/util/areArraysMatchingSets.ts b/ts/util/areArraysMatchingSets.ts
index f428413ee..a6168dc30 100644
--- a/ts/util/areArraysMatchingSets.ts
+++ b/ts/util/areArraysMatchingSets.ts
@@ -1,4 +1,4 @@
-// Copyright 2020-2021 Signal Messenger, LLC
+// Copyright 2020 Signal Messenger, LLC
// SPDX-License-Identifier: AGPL-3.0-only
export function areArraysMatchingSets(
diff --git a/ts/util/arrayBufferToObjectURL.ts b/ts/util/arrayBufferToObjectURL.ts
index 3196b0e4a..5972ee91b 100644
--- a/ts/util/arrayBufferToObjectURL.ts
+++ b/ts/util/arrayBufferToObjectURL.ts
@@ -1,4 +1,4 @@
-// Copyright 2018-2020 Signal Messenger, LLC
+// Copyright 2018 Signal Messenger, LLC
// SPDX-License-Identifier: AGPL-3.0-only
import is from '@sindresorhus/is';
diff --git a/ts/util/assignWithNoUnnecessaryAllocation.ts b/ts/util/assignWithNoUnnecessaryAllocation.ts
index bcdda4fcf..9e6337dc8 100644
--- a/ts/util/assignWithNoUnnecessaryAllocation.ts
+++ b/ts/util/assignWithNoUnnecessaryAllocation.ts
@@ -1,4 +1,4 @@
-// Copyright 2020-2022 Signal Messenger, LLC
+// Copyright 2020 Signal Messenger, LLC
// SPDX-License-Identifier: AGPL-3.0-only
import { has } from 'lodash';
diff --git a/ts/util/batcher.ts b/ts/util/batcher.ts
index 0e73950a9..b123b41d2 100644
--- a/ts/util/batcher.ts
+++ b/ts/util/batcher.ts
@@ -1,4 +1,4 @@
-// Copyright 2019-2022 Signal Messenger, LLC
+// Copyright 2019 Signal Messenger, LLC
// SPDX-License-Identifier: AGPL-3.0-only
import PQueue from 'p-queue';
diff --git a/ts/util/callingNotification.ts b/ts/util/callingNotification.ts
index 348e8f955..ac8636810 100644
--- a/ts/util/callingNotification.ts
+++ b/ts/util/callingNotification.ts
@@ -1,4 +1,4 @@
-// Copyright 2020-2022 Signal Messenger, LLC
+// Copyright 2020 Signal Messenger, LLC
// SPDX-License-Identifier: AGPL-3.0-only
import type { LocalizerType } from '../types/Util';
diff --git a/ts/util/callingTones.ts b/ts/util/callingTones.ts
index c4d45d8a5..5e0f3f239 100644
--- a/ts/util/callingTones.ts
+++ b/ts/util/callingTones.ts
@@ -1,4 +1,4 @@
-// Copyright 2020-2021 Signal Messenger, LLC
+// Copyright 2020 Signal Messenger, LLC
// SPDX-License-Identifier: AGPL-3.0-only
import PQueue from 'p-queue';
diff --git a/ts/util/cleanSearchTerm.ts b/ts/util/cleanSearchTerm.ts
index f77fa513c..995df3053 100644
--- a/ts/util/cleanSearchTerm.ts
+++ b/ts/util/cleanSearchTerm.ts
@@ -1,4 +1,4 @@
-// Copyright 2019-2020 Signal Messenger, LLC
+// Copyright 2019 Signal Messenger, LLC
// SPDX-License-Identifier: AGPL-3.0-only
export function cleanSearchTerm(searchTerm: string): string {
diff --git a/ts/util/combineNames.ts b/ts/util/combineNames.ts
index f002360ab..7f83fe952 100644
--- a/ts/util/combineNames.ts
+++ b/ts/util/combineNames.ts
@@ -1,4 +1,4 @@
-// Copyright 2020-2021 Signal Messenger, LLC
+// Copyright 2020 Signal Messenger, LLC
// SPDX-License-Identifier: AGPL-3.0-only
/* eslint-disable camelcase */
diff --git a/ts/util/createIPCEvents.ts b/ts/util/createIPCEvents.ts
index 8708cb90f..bc55c853b 100644
--- a/ts/util/createIPCEvents.ts
+++ b/ts/util/createIPCEvents.ts
@@ -1,4 +1,4 @@
-// Copyright 2020-2022 Signal Messenger, LLC
+// Copyright 2020 Signal Messenger, LLC
// SPDX-License-Identifier: AGPL-3.0-only
import { webFrame } from 'electron';
diff --git a/ts/util/deleteAllLogs.ts b/ts/util/deleteAllLogs.ts
index 83f43dee1..18cd78e2f 100644
--- a/ts/util/deleteAllLogs.ts
+++ b/ts/util/deleteAllLogs.ts
@@ -1,4 +1,4 @@
-// Copyright 2018-2020 Signal Messenger, LLC
+// Copyright 2018 Signal Messenger, LLC
// SPDX-License-Identifier: AGPL-3.0-only
import { ipcRenderer } from 'electron';
diff --git a/ts/util/deleteForEveryone.ts b/ts/util/deleteForEveryone.ts
index 0c5cdf9d8..9597c9495 100644
--- a/ts/util/deleteForEveryone.ts
+++ b/ts/util/deleteForEveryone.ts
@@ -1,4 +1,4 @@
-// Copyright 2020-2022 Signal Messenger, LLC
+// Copyright 2020 Signal Messenger, LLC
// SPDX-License-Identifier: AGPL-3.0-only
import type { DeleteModel } from '../messageModifiers/Deletes';
diff --git a/ts/util/expirationTimer.ts b/ts/util/expirationTimer.ts
index 205682eee..22126eb1d 100644
--- a/ts/util/expirationTimer.ts
+++ b/ts/util/expirationTimer.ts
@@ -1,4 +1,4 @@
-// Copyright 2020-2021 Signal Messenger, LLC
+// Copyright 2020 Signal Messenger, LLC
// SPDX-License-Identifier: AGPL-3.0-only
import humanizeDuration from 'humanize-duration';
diff --git a/ts/util/formatDuration.ts b/ts/util/formatDuration.ts
index 281299638..9a3954ed6 100644
--- a/ts/util/formatDuration.ts
+++ b/ts/util/formatDuration.ts
@@ -1,4 +1,4 @@
-// Copyright 2019-2020 Signal Messenger, LLC
+// Copyright 2019 Signal Messenger, LLC
// SPDX-License-Identifier: AGPL-3.0-only
import moment from 'moment';
diff --git a/ts/util/getAnimatedPngDataIfExists.ts b/ts/util/getAnimatedPngDataIfExists.ts
index 34e9c7ca3..05bbe755f 100644
--- a/ts/util/getAnimatedPngDataIfExists.ts
+++ b/ts/util/getAnimatedPngDataIfExists.ts
@@ -1,4 +1,4 @@
-// Copyright 2020-2021 Signal Messenger, LLC
+// Copyright 2020 Signal Messenger, LLC
// SPDX-License-Identifier: AGPL-3.0-only
const PNG_SIGNATURE = new Uint8Array([137, 80, 78, 71, 13, 10, 26, 10]);
diff --git a/ts/util/getBasicAuth.ts b/ts/util/getBasicAuth.ts
index 64cb06d61..3957b9e38 100644
--- a/ts/util/getBasicAuth.ts
+++ b/ts/util/getBasicAuth.ts
@@ -1,4 +1,4 @@
-// Copyright 2020-2022 Signal Messenger, LLC
+// Copyright 2020 Signal Messenger, LLC
// SPDX-License-Identifier: AGPL-3.0-only
import { fromString, toBase64 } from '../Bytes';
diff --git a/ts/util/getInitials.ts b/ts/util/getInitials.ts
index dca212b1e..80737cca5 100644
--- a/ts/util/getInitials.ts
+++ b/ts/util/getInitials.ts
@@ -1,4 +1,4 @@
-// Copyright 2018-2020 Signal Messenger, LLC
+// Copyright 2018 Signal Messenger, LLC
// SPDX-License-Identifier: AGPL-3.0-only
export function getInitials(name?: string): string | undefined {
diff --git a/ts/util/getMessageTimestamp.ts b/ts/util/getMessageTimestamp.ts
index 17e724ed6..95c87d719 100644
--- a/ts/util/getMessageTimestamp.ts
+++ b/ts/util/getMessageTimestamp.ts
@@ -1,4 +1,4 @@
-// Copyright 2021-2022 Signal Messenger, LLC
+// Copyright 2021 Signal Messenger, LLC
// SPDX-License-Identifier: AGPL-3.0-only
import type { MessageAttributesType } from '../model-types.d';
diff --git a/ts/util/getMuteOptions.ts b/ts/util/getMuteOptions.ts
index 30be76b21..9b15683b6 100644
--- a/ts/util/getMuteOptions.ts
+++ b/ts/util/getMuteOptions.ts
@@ -1,4 +1,4 @@
-// Copyright 2020-2022 Signal Messenger, LLC
+// Copyright 2020 Signal Messenger, LLC
// SPDX-License-Identifier: AGPL-3.0-only
import * as durations from './durations';
diff --git a/ts/util/getMutedUntilText.ts b/ts/util/getMutedUntilText.ts
index 30604f5db..c2e00f529 100644
--- a/ts/util/getMutedUntilText.ts
+++ b/ts/util/getMutedUntilText.ts
@@ -1,4 +1,4 @@
-// Copyright 2021-2022 Signal Messenger, LLC
+// Copyright 2021 Signal Messenger, LLC
// SPDX-License-Identifier: AGPL-3.0-only
import moment from 'moment';
diff --git a/ts/util/getOwn.ts b/ts/util/getOwn.ts
index c39baa2b6..5d5e12ca6 100644
--- a/ts/util/getOwn.ts
+++ b/ts/util/getOwn.ts
@@ -1,4 +1,4 @@
-// Copyright 2020-2022 Signal Messenger, LLC
+// Copyright 2020 Signal Messenger, LLC
// SPDX-License-Identifier: AGPL-3.0-only
import { has } from 'lodash';
diff --git a/ts/util/getProfile.ts b/ts/util/getProfile.ts
index 1765438fd..7d9e7f386 100644
--- a/ts/util/getProfile.ts
+++ b/ts/util/getProfile.ts
@@ -1,4 +1,4 @@
-// Copyright 2020-2022 Signal Messenger, LLC
+// Copyright 2020 Signal Messenger, LLC
// SPDX-License-Identifier: AGPL-3.0-only
import * as log from '../logging/log';
diff --git a/ts/util/getSendOptions.ts b/ts/util/getSendOptions.ts
index 3b6996ebc..79630203f 100644
--- a/ts/util/getSendOptions.ts
+++ b/ts/util/getSendOptions.ts
@@ -1,4 +1,4 @@
-// Copyright 2021-2022 Signal Messenger, LLC
+// Copyright 2021 Signal Messenger, LLC
// SPDX-License-Identifier: AGPL-3.0-only
import type { ConversationAttributesType } from '../model-types.d';
diff --git a/ts/util/getStreamWithTimeout.ts b/ts/util/getStreamWithTimeout.ts
index 00390bf90..c9f14c0bb 100644
--- a/ts/util/getStreamWithTimeout.ts
+++ b/ts/util/getStreamWithTimeout.ts
@@ -1,4 +1,4 @@
-// Copyright 2021-2022 Signal Messenger, LLC
+// Copyright 2021 Signal Messenger, LLC
// SPDX-License-Identifier: AGPL-3.0-only
import type { Readable } from 'stream';
diff --git a/ts/util/grapheme.ts b/ts/util/grapheme.ts
index ba483e66a..dd245e297 100644
--- a/ts/util/grapheme.ts
+++ b/ts/util/grapheme.ts
@@ -1,4 +1,4 @@
-// Copyright 2021-2022 Signal Messenger, LLC
+// Copyright 2021 Signal Messenger, LLC
// SPDX-License-Identifier: AGPL-3.0-only
import { map, size, take, join } from './iterables';
diff --git a/ts/util/graphemeAndLinkAwareSlice.ts b/ts/util/graphemeAndLinkAwareSlice.ts
index 374b923b9..389f1e707 100644
--- a/ts/util/graphemeAndLinkAwareSlice.ts
+++ b/ts/util/graphemeAndLinkAwareSlice.ts
@@ -1,4 +1,4 @@
-// Copyright 2021-2022 Signal Messenger, LLC
+// Copyright 2021 Signal Messenger, LLC
// SPDX-License-Identifier: AGPL-3.0-only
import LinkifyIt from 'linkify-it';
diff --git a/ts/util/handleImageAttachment.ts b/ts/util/handleImageAttachment.ts
index 5b15a207a..09fe1422c 100644
--- a/ts/util/handleImageAttachment.ts
+++ b/ts/util/handleImageAttachment.ts
@@ -1,4 +1,4 @@
-// Copyright 2020-2021 Signal Messenger, LLC
+// Copyright 2020 Signal Messenger, LLC
// SPDX-License-Identifier: AGPL-3.0-only
import path from 'path';
diff --git a/ts/util/handleMessageSend.ts b/ts/util/handleMessageSend.ts
index 7c28e29b2..603b83086 100644
--- a/ts/util/handleMessageSend.ts
+++ b/ts/util/handleMessageSend.ts
@@ -1,4 +1,4 @@
-// Copyright 2021-2022 Signal Messenger, LLC
+// Copyright 2021 Signal Messenger, LLC
// SPDX-License-Identifier: AGPL-3.0-only
import { z } from 'zod';
diff --git a/ts/util/handleRetry.ts b/ts/util/handleRetry.ts
index d382ec1bf..5e1911780 100644
--- a/ts/util/handleRetry.ts
+++ b/ts/util/handleRetry.ts
@@ -1,4 +1,4 @@
-// Copyright 2021-2022 Signal Messenger, LLC
+// Copyright 2021 Signal Messenger, LLC
// SPDX-License-Identifier: AGPL-3.0-only
import {
diff --git a/ts/util/hasAttachmentDownloads.ts b/ts/util/hasAttachmentDownloads.ts
index 0a05abd56..5d753241d 100644
--- a/ts/util/hasAttachmentDownloads.ts
+++ b/ts/util/hasAttachmentDownloads.ts
@@ -1,4 +1,4 @@
-// Copyright 2020-2022 Signal Messenger, LLC
+// Copyright 2020 Signal Messenger, LLC
// SPDX-License-Identifier: AGPL-3.0-only
import { partition } from 'lodash';
diff --git a/ts/util/idForLogging.ts b/ts/util/idForLogging.ts
index 8d0096f98..de6fba108 100644
--- a/ts/util/idForLogging.ts
+++ b/ts/util/idForLogging.ts
@@ -1,4 +1,4 @@
-// Copyright 2020-2022 Signal Messenger, LLC
+// Copyright 2020 Signal Messenger, LLC
// SPDX-License-Identifier: AGPL-3.0-only
import type {
diff --git a/ts/util/index.ts b/ts/util/index.ts
index a430a3eb1..60a914eef 100644
--- a/ts/util/index.ts
+++ b/ts/util/index.ts
@@ -1,4 +1,4 @@
-// Copyright 2018-2021 Signal Messenger, LLC
+// Copyright 2018 Signal Messenger, LLC
// SPDX-License-Identifier: AGPL-3.0-only
import * as GoogleChrome from './GoogleChrome';
diff --git a/ts/util/isConversationMuted.ts b/ts/util/isConversationMuted.ts
index 2ccb75490..e778429fe 100644
--- a/ts/util/isConversationMuted.ts
+++ b/ts/util/isConversationMuted.ts
@@ -1,4 +1,4 @@
-// Copyright 2020-2022 Signal Messenger, LLC
+// Copyright 2020 Signal Messenger, LLC
// SPDX-License-Identifier: AGPL-3.0-only
import type { ConversationAttributesType } from '../model-types.d';
diff --git a/ts/util/isEmojiOnlyText.tsx b/ts/util/isEmojiOnlyText.tsx
index 94907e9a1..64a9ea381 100644
--- a/ts/util/isEmojiOnlyText.tsx
+++ b/ts/util/isEmojiOnlyText.tsx
@@ -1,4 +1,4 @@
-// Copyright 2021-2022 Signal Messenger, LLC
+// Copyright 2021 Signal Messenger, LLC
// SPDX-License-Identifier: AGPL-3.0-only
import emojiRegex from 'emoji-regex';
diff --git a/ts/util/isFileDangerous.ts b/ts/util/isFileDangerous.ts
index 1b88e3bd0..7657f5054 100644
--- a/ts/util/isFileDangerous.ts
+++ b/ts/util/isFileDangerous.ts
@@ -1,4 +1,4 @@
-// Copyright 2018-2020 Signal Messenger, LLC
+// Copyright 2018 Signal Messenger, LLC
// SPDX-License-Identifier: AGPL-3.0-only
const DANGEROUS_FILE_TYPES =
diff --git a/ts/util/iterables.ts b/ts/util/iterables.ts
index 8e69dc350..422ac4284 100644
--- a/ts/util/iterables.ts
+++ b/ts/util/iterables.ts
@@ -1,4 +1,4 @@
-// Copyright 2021-2022 Signal Messenger, LLC
+// Copyright 2021 Signal Messenger, LLC
// SPDX-License-Identifier: AGPL-3.0-only
/* eslint-disable max-classes-per-file */
diff --git a/ts/util/libphonenumberInstance.ts b/ts/util/libphonenumberInstance.ts
index 8edc25907..174b5a02e 100644
--- a/ts/util/libphonenumberInstance.ts
+++ b/ts/util/libphonenumberInstance.ts
@@ -1,4 +1,4 @@
-// Copyright 2018-2020 Signal Messenger, LLC
+// Copyright 2018 Signal Messenger, LLC
// SPDX-License-Identifier: AGPL-3.0-only
import libphonenumber from 'google-libphonenumber';
diff --git a/ts/util/libphonenumberUtil.ts b/ts/util/libphonenumberUtil.ts
index c9fb9f69e..26115ad65 100644
--- a/ts/util/libphonenumberUtil.ts
+++ b/ts/util/libphonenumberUtil.ts
@@ -1,4 +1,4 @@
-// Copyright 2014-2022 Signal Messenger, LLC
+// Copyright 2014 Signal Messenger, LLC
// SPDX-License-Identifier: AGPL-3.0-only
import {
diff --git a/ts/util/lint/analyze_exceptions.ts b/ts/util/lint/analyze_exceptions.ts
index 98734d243..a0552d1a1 100644
--- a/ts/util/lint/analyze_exceptions.ts
+++ b/ts/util/lint/analyze_exceptions.ts
@@ -1,4 +1,4 @@
-// Copyright 2018-2020 Signal Messenger, LLC
+// Copyright 2018 Signal Messenger, LLC
// SPDX-License-Identifier: AGPL-3.0-only
import { join } from 'path';
diff --git a/ts/util/lint/license_comments.ts b/ts/util/lint/license_comments.ts
index a692ac7a2..88ee72728 100644
--- a/ts/util/lint/license_comments.ts
+++ b/ts/util/lint/license_comments.ts
@@ -1,4 +1,4 @@
-// Copyright 2020-2022 Signal Messenger, LLC
+// Copyright 2020 Signal Messenger, LLC
// SPDX-License-Identifier: AGPL-3.0-only
// This file doesn't check the format of license files, just the end year. See
@@ -11,6 +11,8 @@ import * as fs from 'fs';
import { promisify } from 'util';
import * as childProcess from 'child_process';
import pMap from 'p-map';
+// eslint-disable-next-line import/no-extraneous-dependencies
+import chalk from 'chalk';
const exec = promisify(childProcess.exec);
@@ -102,7 +104,10 @@ export function readFirstLines(
input: fs.createReadStream(file),
});
lineReader.on('line', line => {
- lines.push(line);
+ // `lineReader.close()` does not guarantee 'line' won't be emitted again
+ if (lines.length < count) {
+ lines.push(line);
+ }
if (lines.length >= count) {
lineReader.close();
}
@@ -113,15 +118,26 @@ export function readFirstLines(
});
}
-async function getLatestCommitYearForFile(file: string): Promise {
- const dateString = (
+async function getCommitFileWasAdded(
+ file: string
+): Promise<{ commitYear: number; commitHash: string }> {
+ const logLine = (
await new Promise((resolve, reject) => {
let result = '';
// We use the more verbose `spawn` to avoid command injection, in case the filename
// has strange characters.
const gitLog = childProcess.spawn(
'git',
- ['log', '-1', '--format=%as', file],
+ [
+ // From: https://stackoverflow.com/questions/11533199/how-to-find-the-commit-in-which-a-given-file-was-added
+ 'log',
+ '-1', // limit number of lines to return to 1
+ '--diff-filter=A', // select only files that are added (A)
+ '--follow', // continue listing the history of a file beyond renames
+ '--find-renames=40%', // consider a delete/add pair to be a rename if less than 40% of the file has changed (default 50%)
+ '--format=%as %h', // display commit as date YYYY-MM-DD
+ file,
+ ],
{
cwd: rootPath,
env: { PATH: process.env.PATH },
@@ -140,27 +156,110 @@ async function getLatestCommitYearForFile(file: string): Promise {
})
).trim();
- const result = new Date(dateString).getFullYear();
- assert(!Number.isNaN(result), `Could not read commit year for ${file}`);
- return result;
+ const [dateString, commitHash] = logLine.split(' ');
+
+ const commitYear = new Date(dateString).getFullYear();
+ assert(!Number.isNaN(commitYear), `Could not read commit year for ${file}`);
+ return { commitYear, commitHash };
+}
+
+type Failure = {
+ file: string;
+ warnings: Array;
+};
+
+function indent(text: string) {
+ return text
+ .split('\n')
+ .map(line => ` ${line}`)
+ .join('\n');
}
async function main() {
- const currentYear = new Date().getFullYear() + 1;
+ const currentYear = new Date().getFullYear();
+ const failures: Array = [];
await forEachRelevantFile(async file => {
- const [firstLine] = await readFirstLines(file, 1);
- const { groups = {} } =
- firstLine.match(/(?:\d{4}-)?(?\d{4})/) || {};
- const { endYearString } = groups;
- const endYear = Number(endYearString);
+ let lines: Array;
+ let firstLine: string | void;
+ let secondLine: string | void;
- assert(
- endYear === currentYear ||
- endYear === (await getLatestCommitYearForFile(file)),
- `${file} has an invalid end license year`
- );
+ if (getExtension(file) === '.sh') {
+ lines = await readFirstLines(file, 3);
+ [, firstLine, secondLine] = lines;
+ } else {
+ lines = await readFirstLines(file, 2);
+ [firstLine, secondLine] = lines;
+ }
+
+ const warnings = [];
+
+ if (!/Copyright \d{4} Signal Messenger, LLC/.test(firstLine)) {
+ const commit = await getCommitFileWasAdded(file);
+ warnings.push(
+ chalk.red('Missing/Incorrect copyright line'),
+ indent(
+ chalk.green(
+ `Expected: "Copyright ${commit.commitYear} Signal Messenger, LLC"`
+ )
+ ),
+ indent(chalk.yellow(`Actual: "${firstLine}"`)),
+ indent(
+ chalk.italic.dim(
+ `Tip: Looks like this file was added in ${commit.commitHash} in ${commit.commitYear}`
+ )
+ ),
+ indent(
+ chalk.italic.dim(
+ `Tip: You can also use the current year (${currentYear})`
+ )
+ )
+ );
+ } else if (/\d{4}-\d{4}/.test(firstLine)) {
+ warnings.push(
+ chalk.red('Copyright should not include end year'),
+ indent(chalk.yellow(`Actual: "${firstLine}"`))
+ );
+ }
+
+ if (!secondLine.includes('SPDX-License-Identifier: AGPL-3.0-only')) {
+ warnings.push(
+ chalk.red('Missing/incorrect license line'),
+ indent(
+ chalk.green('Expected: "SPDX-License-Identifier: AGPL-3.0-only"')
+ ),
+ indent(chalk.yellow(`Actual: "${secondLine}"`))
+ );
+ }
+
+ if (warnings.length) {
+ failures.push({ file, warnings });
+ }
});
+
+ const failed = failures.length > 0;
+
+ /* eslint-disable no-console */
+ if (failed) {
+ console.log();
+ console.log(
+ chalk.magenta.bold(
+ 'Some files are missing/contain incorrect copyrights/licenses:'
+ )
+ );
+ console.log();
+ for (const failure of failures) {
+ console.log(chalk.bold(`${failure.file}:`));
+ console.log(indent(failure.warnings.join('\n')));
+ console.log();
+ }
+
+ console.log(chalk.magenta.bold('`yarn lint-license-comments` failed'));
+ console.log();
+
+ process.exit(1);
+ }
+ /* eslint-enable no-console */
}
// Note: this check will fail if we switch to ES modules. See
diff --git a/ts/util/lint/linter.ts b/ts/util/lint/linter.ts
index 46cf73d20..b78c3dbe5 100644
--- a/ts/util/lint/linter.ts
+++ b/ts/util/lint/linter.ts
@@ -1,4 +1,4 @@
-// Copyright 2018-2022 Signal Messenger, LLC
+// Copyright 2018 Signal Messenger, LLC
// SPDX-License-Identifier: AGPL-3.0-only
/* eslint-disable no-console */
diff --git a/ts/util/lint/sort_exceptions.ts b/ts/util/lint/sort_exceptions.ts
index 7b7306b8b..7b481e3ba 100644
--- a/ts/util/lint/sort_exceptions.ts
+++ b/ts/util/lint/sort_exceptions.ts
@@ -1,4 +1,4 @@
-// Copyright 2018-2022 Signal Messenger, LLC
+// Copyright 2018 Signal Messenger, LLC
// SPDX-License-Identifier: AGPL-3.0-only
import { join } from 'path';
diff --git a/ts/util/lint/types.ts b/ts/util/lint/types.ts
index 7f04a445f..56626af84 100644
--- a/ts/util/lint/types.ts
+++ b/ts/util/lint/types.ts
@@ -1,4 +1,4 @@
-// Copyright 2018-2021 Signal Messenger, LLC
+// Copyright 2018 Signal Messenger, LLC
// SPDX-License-Identifier: AGPL-3.0-only
// Tool requirements:
diff --git a/ts/util/lint/util.ts b/ts/util/lint/util.ts
index d8c6edff4..1767715cb 100644
--- a/ts/util/lint/util.ts
+++ b/ts/util/lint/util.ts
@@ -1,4 +1,4 @@
-// Copyright 2018-2022 Signal Messenger, LLC
+// Copyright 2018 Signal Messenger, LLC
// SPDX-License-Identifier: AGPL-3.0-only
import { readJsonSync, writeJsonSync } from 'fs-extra';
diff --git a/ts/util/loadRecentEmojis.ts b/ts/util/loadRecentEmojis.ts
index 5c42c73de..5ebf14bbd 100644
--- a/ts/util/loadRecentEmojis.ts
+++ b/ts/util/loadRecentEmojis.ts
@@ -1,4 +1,4 @@
-// Copyright 2019-2021 Signal Messenger, LLC
+// Copyright 2019 Signal Messenger, LLC
// SPDX-License-Identifier: AGPL-3.0-only
import { take } from 'lodash';
diff --git a/ts/util/longRunningTaskWrapper.tsx b/ts/util/longRunningTaskWrapper.tsx
index 553fa866d..d1c457720 100644
--- a/ts/util/longRunningTaskWrapper.tsx
+++ b/ts/util/longRunningTaskWrapper.tsx
@@ -1,4 +1,4 @@
-// Copyright 2021-2022 Signal Messenger, LLC
+// Copyright 2021 Signal Messenger, LLC
// SPDX-License-Identifier: AGPL-3.0-only
import React from 'react';
diff --git a/ts/util/makeLookup.ts b/ts/util/makeLookup.ts
index 7cb8af65f..0f2309c9d 100644
--- a/ts/util/makeLookup.ts
+++ b/ts/util/makeLookup.ts
@@ -1,4 +1,4 @@
-// Copyright 2019-2022 Signal Messenger, LLC
+// Copyright 2019 Signal Messenger, LLC
// SPDX-License-Identifier: AGPL-3.0-only
export function makeLookup(
diff --git a/ts/util/markConversationRead.ts b/ts/util/markConversationRead.ts
index 5e074621b..27d1c243a 100644
--- a/ts/util/markConversationRead.ts
+++ b/ts/util/markConversationRead.ts
@@ -1,4 +1,4 @@
-// Copyright 2021-2022 Signal Messenger, LLC
+// Copyright 2021 Signal Messenger, LLC
// SPDX-License-Identifier: AGPL-3.0-only
import { omit } from 'lodash';
diff --git a/ts/util/migrateColor.ts b/ts/util/migrateColor.ts
index 0e5abfa50..e435079d4 100644
--- a/ts/util/migrateColor.ts
+++ b/ts/util/migrateColor.ts
@@ -1,4 +1,4 @@
-// Copyright 2018-2021 Signal Messenger, LLC
+// Copyright 2018 Signal Messenger, LLC
// SPDX-License-Identifier: AGPL-3.0-only
import { sample } from 'lodash';
diff --git a/ts/util/missingCaseError.ts b/ts/util/missingCaseError.ts
index 6021b2523..bad120b29 100644
--- a/ts/util/missingCaseError.ts
+++ b/ts/util/missingCaseError.ts
@@ -1,4 +1,4 @@
-// Copyright 2018-2022 Signal Messenger, LLC
+// Copyright 2018 Signal Messenger, LLC
// SPDX-License-Identifier: AGPL-3.0-only
import { reallyJsonStringify } from './reallyJsonStringify';
diff --git a/ts/util/parseRetryAfter.ts b/ts/util/parseRetryAfter.ts
index 1b3d4e439..6cd204220 100644
--- a/ts/util/parseRetryAfter.ts
+++ b/ts/util/parseRetryAfter.ts
@@ -1,4 +1,4 @@
-// Copyright 2021-2022 Signal Messenger, LLC
+// Copyright 2021 Signal Messenger, LLC
// SPDX-License-Identifier: AGPL-3.0-only
import { SECOND, MINUTE } from './durations';
diff --git a/ts/util/privacy.ts b/ts/util/privacy.ts
index 6ecd1d8c7..d72b40511 100644
--- a/ts/util/privacy.ts
+++ b/ts/util/privacy.ts
@@ -1,4 +1,4 @@
-// Copyright 2018-2021 Signal Messenger, LLC
+// Copyright 2018 Signal Messenger, LLC
// SPDX-License-Identifier: AGPL-3.0-only
/* eslint-env node */
diff --git a/ts/util/queueAttachmentDownloads.ts b/ts/util/queueAttachmentDownloads.ts
index 024288516..5824f08f9 100644
--- a/ts/util/queueAttachmentDownloads.ts
+++ b/ts/util/queueAttachmentDownloads.ts
@@ -1,4 +1,4 @@
-// Copyright 2020-2022 Signal Messenger, LLC
+// Copyright 2020 Signal Messenger, LLC
// SPDX-License-Identifier: AGPL-3.0-only
import { partition } from 'lodash';
diff --git a/ts/util/resolveAttachmentDraftData.ts b/ts/util/resolveAttachmentDraftData.ts
index 543966dbb..1bdb8ef09 100644
--- a/ts/util/resolveAttachmentDraftData.ts
+++ b/ts/util/resolveAttachmentDraftData.ts
@@ -1,4 +1,4 @@
-// Copyright 2020-2021 Signal Messenger, LLC
+// Copyright 2020 Signal Messenger, LLC
// SPDX-License-Identifier: AGPL-3.0-only
import * as log from '../logging/log';
diff --git a/ts/util/scaleImageToLevel.ts b/ts/util/scaleImageToLevel.ts
index f183f7e94..9b94bdee6 100644
--- a/ts/util/scaleImageToLevel.ts
+++ b/ts/util/scaleImageToLevel.ts
@@ -1,4 +1,4 @@
-// Copyright 2021-2022 Signal Messenger, LLC
+// Copyright 2021 Signal Messenger, LLC
// SPDX-License-Identifier: AGPL-3.0-only
import loadImage from 'blueimp-load-image';
diff --git a/ts/util/scrollUtil.ts b/ts/util/scrollUtil.ts
index 472554002..86b2c02b6 100644
--- a/ts/util/scrollUtil.ts
+++ b/ts/util/scrollUtil.ts
@@ -1,4 +1,4 @@
-// Copyright 2021-2022 Signal Messenger, LLC
+// Copyright 2021 Signal Messenger, LLC
// SPDX-License-Identifier: AGPL-3.0-only
export const getScrollBottom = (
diff --git a/ts/util/sendReceipts.ts b/ts/util/sendReceipts.ts
index 417340c97..4c51d4946 100644
--- a/ts/util/sendReceipts.ts
+++ b/ts/util/sendReceipts.ts
@@ -1,4 +1,4 @@
-// Copyright 2021-2022 Signal Messenger, LLC
+// Copyright 2021 Signal Messenger, LLC
// SPDX-License-Identifier: AGPL-3.0-only
import { chunk } from 'lodash';
diff --git a/ts/util/sendToGroup.ts b/ts/util/sendToGroup.ts
index 217b16570..f5567e37e 100644
--- a/ts/util/sendToGroup.ts
+++ b/ts/util/sendToGroup.ts
@@ -1,4 +1,4 @@
-// Copyright 2021-2022 Signal Messenger, LLC
+// Copyright 2021 Signal Messenger, LLC
// SPDX-License-Identifier: AGPL-3.0-only
import { differenceWith, omit, partition } from 'lodash';
diff --git a/ts/util/setUtil.ts b/ts/util/setUtil.ts
index 1652bb551..cb6c38d0c 100644
--- a/ts/util/setUtil.ts
+++ b/ts/util/setUtil.ts
@@ -1,4 +1,4 @@
-// Copyright 2021-2022 Signal Messenger, LLC
+// Copyright 2021 Signal Messenger, LLC
// SPDX-License-Identifier: AGPL-3.0-only
import { every } from './iterables';
diff --git a/ts/util/setupI18n.ts b/ts/util/setupI18n.ts
index 47383cb48..271bfc87d 100644
--- a/ts/util/setupI18n.ts
+++ b/ts/util/setupI18n.ts
@@ -1,4 +1,4 @@
-// Copyright 2018-2020 Signal Messenger, LLC
+// Copyright 2018 Signal Messenger, LLC
// SPDX-License-Identifier: AGPL-3.0-only
import memoize from '@formatjs/fast-memoize';
diff --git a/ts/util/sgnlHref.ts b/ts/util/sgnlHref.ts
index 4fba7960b..7d0c8fe64 100644
--- a/ts/util/sgnlHref.ts
+++ b/ts/util/sgnlHref.ts
@@ -1,4 +1,4 @@
-// Copyright 2020-2022 Signal Messenger, LLC
+// Copyright 2020 Signal Messenger, LLC
// SPDX-License-Identifier: AGPL-3.0-only
import type { LoggerType } from '../types/Logging';
diff --git a/ts/util/shouldNeverBeCalled.ts b/ts/util/shouldNeverBeCalled.ts
index 0d0b2272d..9bb786e94 100644
--- a/ts/util/shouldNeverBeCalled.ts
+++ b/ts/util/shouldNeverBeCalled.ts
@@ -1,4 +1,4 @@
-// Copyright 2021-2022 Signal Messenger, LLC
+// Copyright 2021 Signal Messenger, LLC
// SPDX-License-Identifier: AGPL-3.0-only
import { assertDev } from './assert';
diff --git a/ts/util/sniffImageMimeType.ts b/ts/util/sniffImageMimeType.ts
index a68cc1fb3..95ab76bc2 100644
--- a/ts/util/sniffImageMimeType.ts
+++ b/ts/util/sniffImageMimeType.ts
@@ -1,4 +1,4 @@
-// Copyright 2020-2021 Signal Messenger, LLC
+// Copyright 2020 Signal Messenger, LLC
// SPDX-License-Identifier: AGPL-3.0-only
import type { MIMEType } from '../types/MIME';
diff --git a/ts/util/sortByTitle.ts b/ts/util/sortByTitle.ts
index 28efb1feb..521becded 100644
--- a/ts/util/sortByTitle.ts
+++ b/ts/util/sortByTitle.ts
@@ -1,4 +1,4 @@
-// Copyright 2020-2021 Signal Messenger, LLC
+// Copyright 2020 Signal Messenger, LLC
// SPDX-License-Identifier: AGPL-3.0-only
type HasTitle = {
diff --git a/ts/util/startTimeTravelDetector.ts b/ts/util/startTimeTravelDetector.ts
index 64107ae80..58bd39e90 100644
--- a/ts/util/startTimeTravelDetector.ts
+++ b/ts/util/startTimeTravelDetector.ts
@@ -1,4 +1,4 @@
-// Copyright 2017-2022 Signal Messenger, LLC
+// Copyright 2017 Signal Messenger, LLC
// SPDX-License-Identifier: AGPL-3.0-only
const INTERVAL = 1000;
diff --git a/ts/util/timer.ts b/ts/util/timer.ts
index 23c4fd7bc..db3dcf9f3 100644
--- a/ts/util/timer.ts
+++ b/ts/util/timer.ts
@@ -1,4 +1,4 @@
-// Copyright 2019-2020 Signal Messenger, LLC
+// Copyright 2019 Signal Messenger, LLC
// SPDX-License-Identifier: AGPL-3.0-only
import { padStart } from 'lodash';
diff --git a/ts/util/timestamp.ts b/ts/util/timestamp.ts
index bf3620f8d..f1ffc8aed 100644
--- a/ts/util/timestamp.ts
+++ b/ts/util/timestamp.ts
@@ -1,4 +1,4 @@
-// Copyright 2021-2022 Signal Messenger, LLC
+// Copyright 2021 Signal Messenger, LLC
// SPDX-License-Identifier: AGPL-3.0-only
import type { Moment } from 'moment';
diff --git a/ts/util/updateOurUsernameAndPni.ts b/ts/util/updateOurUsernameAndPni.ts
index e0e2fcb2a..3675053bc 100644
--- a/ts/util/updateOurUsernameAndPni.ts
+++ b/ts/util/updateOurUsernameAndPni.ts
@@ -1,4 +1,4 @@
-// Copyright 2021-2022 Signal Messenger, LLC
+// Copyright 2021 Signal Messenger, LLC
// SPDX-License-Identifier: AGPL-3.0-only
import { strictAssert } from './assert';
diff --git a/ts/util/userLanguages.ts b/ts/util/userLanguages.ts
index 6484e6137..0929090b5 100644
--- a/ts/util/userLanguages.ts
+++ b/ts/util/userLanguages.ts
@@ -1,4 +1,4 @@
-// Copyright 2021-2022 Signal Messenger, LLC
+// Copyright 2021 Signal Messenger, LLC
// SPDX-License-Identifier: AGPL-3.0-only
// We ["MUST NOT generate more than three digits after the decimal point"][0]. We use a
diff --git a/ts/util/waitBatcher.ts b/ts/util/waitBatcher.ts
index 1e3a8a9a6..1539abe08 100644
--- a/ts/util/waitBatcher.ts
+++ b/ts/util/waitBatcher.ts
@@ -1,4 +1,4 @@
-// Copyright 2019-2022 Signal Messenger, LLC
+// Copyright 2019 Signal Messenger, LLC
// SPDX-License-Identifier: AGPL-3.0-only
import PQueue from 'p-queue';
diff --git a/ts/util/waitForOnline.ts b/ts/util/waitForOnline.ts
index 8bf9bfcac..e61bfe8da 100644
--- a/ts/util/waitForOnline.ts
+++ b/ts/util/waitForOnline.ts
@@ -1,4 +1,4 @@
-// Copyright 2021-2022 Signal Messenger, LLC
+// Copyright 2021 Signal Messenger, LLC
// SPDX-License-Identifier: AGPL-3.0-only
import { clearTimeoutIfNecessary } from './clearTimeoutIfNecessary';
diff --git a/ts/util/zkgroup.ts b/ts/util/zkgroup.ts
index a3e1b7e3c..1ac4d7750 100644
--- a/ts/util/zkgroup.ts
+++ b/ts/util/zkgroup.ts
@@ -1,4 +1,4 @@
-// Copyright 2020-2021 Signal Messenger, LLC
+// Copyright 2020 Signal Messenger, LLC
// SPDX-License-Identifier: AGPL-3.0-only
import type { ProfileKeyCredentialRequestContext } from '@signalapp/libsignal-client/zkgroup';
diff --git a/ts/window.d.ts b/ts/window.d.ts
index f79431f20..838a2ffc5 100644
--- a/ts/window.d.ts
+++ b/ts/window.d.ts
@@ -1,4 +1,4 @@
-// Copyright 2020-2022 Signal Messenger, LLC
+// Copyright 2020 Signal Messenger, LLC
// SPDX-License-Identifier: AGPL-3.0-only
// Captures the globals put in place by preload.js, background.js and others
diff --git a/ts/windows/about/preload.ts b/ts/windows/about/preload.ts
index 0dc214271..9ebf2f281 100644
--- a/ts/windows/about/preload.ts
+++ b/ts/windows/about/preload.ts
@@ -1,4 +1,4 @@
-// Copyright 2018-2022 Signal Messenger, LLC
+// Copyright 2018 Signal Messenger, LLC
// SPDX-License-Identifier: AGPL-3.0-only
import React from 'react';
diff --git a/ts/windows/attachments.ts b/ts/windows/attachments.ts
index 686dda450..04fcf165a 100644
--- a/ts/windows/attachments.ts
+++ b/ts/windows/attachments.ts
@@ -1,4 +1,4 @@
-// Copyright 2018-2022 Signal Messenger, LLC
+// Copyright 2018 Signal Messenger, LLC
// SPDX-License-Identifier: AGPL-3.0-only
import { ipcRenderer } from 'electron';
diff --git a/ts/windows/debuglog/preload.ts b/ts/windows/debuglog/preload.ts
index 3cb4d40ac..6749479c4 100644
--- a/ts/windows/debuglog/preload.ts
+++ b/ts/windows/debuglog/preload.ts
@@ -1,4 +1,4 @@
-// Copyright 2021-2022 Signal Messenger, LLC
+// Copyright 2021 Signal Messenger, LLC
// SPDX-License-Identifier: AGPL-3.0-only
import React from 'react';
diff --git a/ts/windows/loading/preload.ts b/ts/windows/loading/preload.ts
index 5dab0f95a..af191ac21 100644
--- a/ts/windows/loading/preload.ts
+++ b/ts/windows/loading/preload.ts
@@ -1,4 +1,4 @@
-// Copyright 2020-2022 Signal Messenger, LLC
+// Copyright 2020 Signal Messenger, LLC
// SPDX-License-Identifier: AGPL-3.0-only
import { contextBridge } from 'electron';
diff --git a/ts/windows/loading/start.ts b/ts/windows/loading/start.ts
index 4412a41bd..2a7d24fa9 100644
--- a/ts/windows/loading/start.ts
+++ b/ts/windows/loading/start.ts
@@ -1,4 +1,4 @@
-// Copyright 2020-2021 Signal Messenger, LLC
+// Copyright 2020 Signal Messenger, LLC
// SPDX-License-Identifier: AGPL-3.0-only
const message = document.getElementById('message');
diff --git a/ts/windows/main/phase4-test.ts b/ts/windows/main/phase4-test.ts
index 7ebd6d9f9..008945e03 100644
--- a/ts/windows/main/phase4-test.ts
+++ b/ts/windows/main/phase4-test.ts
@@ -1,4 +1,4 @@
-// Copyright 2017-2022 Signal Messenger, LLC
+// Copyright 2017 Signal Messenger, LLC
// SPDX-License-Identifier: AGPL-3.0-only
/* eslint-disable @typescript-eslint/no-var-requires */
diff --git a/ts/windows/main/preload.ts b/ts/windows/main/preload.ts
index 54cd76cd9..2a3226a2b 100644
--- a/ts/windows/main/preload.ts
+++ b/ts/windows/main/preload.ts
@@ -1,4 +1,4 @@
-// Copyright 2017-2022 Signal Messenger, LLC
+// Copyright 2017 Signal Messenger, LLC
// SPDX-License-Identifier: AGPL-3.0-only
/* eslint-disable global-require */
diff --git a/ts/windows/main/preload_test.ts b/ts/windows/main/preload_test.ts
index 01863e00b..363049c16 100644
--- a/ts/windows/main/preload_test.ts
+++ b/ts/windows/main/preload_test.ts
@@ -1,4 +1,4 @@
-// Copyright 2021-2022 Signal Messenger, LLC
+// Copyright 2021 Signal Messenger, LLC
// SPDX-License-Identifier: AGPL-3.0-only
/* eslint-disable no-console */
diff --git a/ts/windows/main/start.ts b/ts/windows/main/start.ts
index 5fcb06aad..2bcb261fb 100644
--- a/ts/windows/main/start.ts
+++ b/ts/windows/main/start.ts
@@ -1,4 +1,4 @@
-// Copyright 2017-2022 Signal Messenger, LLC
+// Copyright 2017 Signal Messenger, LLC
// SPDX-License-Identifier: AGPL-3.0-only
import * as log from '../../logging/log';
diff --git a/ts/windows/permissions/preload.ts b/ts/windows/permissions/preload.ts
index a1d51de93..30f7c66c2 100644
--- a/ts/windows/permissions/preload.ts
+++ b/ts/windows/permissions/preload.ts
@@ -1,4 +1,4 @@
-// Copyright 2021-2022 Signal Messenger, LLC
+// Copyright 2021 Signal Messenger, LLC
// SPDX-License-Identifier: AGPL-3.0-only
import React from 'react';
diff --git a/ts/windows/preload.ts b/ts/windows/preload.ts
index de2cad623..2832a3117 100644
--- a/ts/windows/preload.ts
+++ b/ts/windows/preload.ts
@@ -1,4 +1,4 @@
-// Copyright 2017-2021 Signal Messenger, LLC
+// Copyright 2017 Signal Messenger, LLC
// SPDX-License-Identifier: AGPL-3.0-only
import { ipcRenderer as ipc } from 'electron';
diff --git a/ts/windows/screenShare/preload.ts b/ts/windows/screenShare/preload.ts
index 8358d1e31..2b8e22d8a 100644
--- a/ts/windows/screenShare/preload.ts
+++ b/ts/windows/screenShare/preload.ts
@@ -1,4 +1,4 @@
-// Copyright 2021-2022 Signal Messenger, LLC
+// Copyright 2021 Signal Messenger, LLC
// SPDX-License-Identifier: AGPL-3.0-only
import React from 'react';
diff --git a/ts/windows/settings/preload.ts b/ts/windows/settings/preload.ts
index eb6325213..2f2dedeb7 100644
--- a/ts/windows/settings/preload.ts
+++ b/ts/windows/settings/preload.ts
@@ -1,4 +1,4 @@
-// Copyright 2021-2022 Signal Messenger, LLC
+// Copyright 2021 Signal Messenger, LLC
// SPDX-License-Identifier: AGPL-3.0-only
import React from 'react';
diff --git a/webpack.config.ts b/webpack.config.ts
index ca3ea8f83..a204dfbac 100644
--- a/webpack.config.ts
+++ b/webpack.config.ts
@@ -1,4 +1,4 @@
-// Copyright 2019-2020 Signal Messenger, LLC
+// Copyright 2019 Signal Messenger, LLC
// SPDX-License-Identifier: AGPL-3.0-only
import { resolve } from 'path';