96 Коммитов

Автор SHA1 Сообщение Дата
Julien Tant
1b29abd857 Add typescript-eslint-language-service (#30015) 2025-02-04 15:29:29 -07:00
Harrison Healey
86aad9d0a5 Add platform/mattermost-redux package for publishing (#30020)
* Replace key-mirror with mattermost-redux/utils/key_mirror

At some point, we made our own version for mattermost-redux with proper type definitions
but we seem to have forgotten to use that everywhere in the web app.

* Remove Rudder reference from mattermost-redux

* Remove Giphy API from mattermost-redux

* Remove mattermost-webapp refernces from Client and Types packages

* Create platform/mattermost-redux without moving its source files

* Don't build mattermost-redux automatically

* Copy changes to package.json from platform/mattermost-redux to other packages

The changes to the typesVersions and exports fields are to make it
easier for tooling to know to make it so that importing a folder imports
the index file inside that folder since that's not standard to all
CommonJS packages.

The added type field is just a good pracice.

* Explicitly type re-exported selectors

For some reason, the types generated by the previous version of this didn't work
when mattermost-redux was built as a standalone package. Explicitly typing these
is a bit more verbose, but it fixes things.

* Fix import loop in selectors introduced by last commit

* Update package versions to 10.6.0

* Add explicit dependencies to mattermost-redux package

* Remove check and run scripts from mattermost-redux package

* Revert changes to NOTICE.txt
2025-02-04 22:26:46 +00:00
Saturnino Abril
95b22f47a0 MM-62426: Remove form-data from @mattermost/client (#29792) 2025-01-10 13:28:32 +08:00
Jesús Espino
4e1e7334d8 Migrate remaining javascript files in webapp/channels/src/plugins to typescript (#29386)
* feat: Migrate actions.js to TypeScript with type annotations

* feat: Migrate actions.js to TypeScript with correct action types

* feat: Add actions plugin for webapp channels

* feat: Migrate actions.js to TypeScript with type annotations

* feat: Add interactive dialog plugin for webapp channels

* feat: Migrate interactive_dialog.js to TypeScript with type definitions

* feat: Add export plugin module for webapp channels

* feat: Migrate export.js to TypeScript with type declarations

* feat: Add initial plugin index file for webapp channels

* feat: migrate plugins/index.js to TypeScript with type definitions

* test: Add export plugin test file

* feat: Migrate export.test.js to TypeScript with type assertions

* feat: Add emoji actions file to webapp channels

* feat: Migrate emoji_actions.js to TypeScript with full type support

* Fixing some issues

* Revert "feat: Migrate emoji_actions.js to TypeScript with full type support"

This reverts commit e64aabe9fc6d36938cbaa40b7acb3356729a6686.

* fixing linter errors

* Fixing CI

* Addressing pr review comments

* Apply suggestions from code review

Co-authored-by: Harrison Healey <harrisonmhealey@gmail.com>

* Fixing linter errors

* Fixing CI

---------

Co-authored-by: Harrison Healey <harrisonmhealey@gmail.com>
2024-12-12 10:03:13 +01:00
M-ZubairAhmed
f80afad1b6 [MM-58441] Create a floating-ui Tooltip which will swap out ReactBootstrap tooltip (#29464)
Added a new tooltip
- components/team_sidebar/components/team_button.tsx
- components/post_view/reaction/reaction_tooltip/reaction_tooltip.tsx
- components/post_view/post_recent_reactions/post_recent_reactions.tsx
- components/common/comment_icon.tsx
2024-12-09 14:50:08 +00:00
Harrison Healey
c519bee236 Fixathon: Web app dependency updates part 2 (Sass) (#29037)
* Update sass-loader@16.0.2

* Update sass part 1 (actually update it)

* Update scss files to remove at-charset and use at-use instead of at-import

at-charset hasn't been needed since we switched to dart-sass, and
at-import is now deprecated. Most of this was done using sass-migrator.

We still use at-import for files imported from node_modules, but sass
doesn't seem to complain about that

* Inline at-extend rule that was causing an error

* Remove or inline at-use rules in components package
2024-11-15 12:23:11 -05:00
Harrison Healey
4136343476 Fixathon: Web app dependency updates part 1 (#29036)
* Ensure all packages remove a node_modules in their folder when cleaning

* Upgrade typescript to 5.6.3 and move to root package.json

Note that this currently fails to build the types package due to
@types/node which I'm going to try to remove

* Update @types/node to 20.11 to match .nvmrc

* Upgrade zen-observable to 0.10.0

It looks like localforage-observable uses its own version
of zen-observable because it hasn't been updated in years.
This seems like something we probably should remove.

* Update yargs to 17.7.2

* Update webpack-dev-server to 5.1.0

* Remove webpack-bundle-analyzer since we haven't used it in years

* Update webpack to 5.95.0

* Update web-vitals to 4.2.4

* Update turndown to 7.2.0

* Update tinycolor2 to 1.6.0

* Update timezones.json to 1.7.0

* Update stylelint to 16.10.0, stylelint-config-recommended-scss to 14.1.0, and stylelint-scss to 6.8.1

* Update webpack-cli to 5.1.4

* Update style-loader to 4.0.0

* Change all Webpack scripts to be ES modules

* Update strip-ansi to 7.1.0

This is a build script dependency

* Update chalk to 5.3.0

This is a build script dependency

* Update concurrently to 9.0.1

This is a build script dependency

* Update smooth-scroll-into-view-if-needed to 2.0.2

* MM-48205 Update serialize-error to 11.0.3

We didn't update this before because it's an ES module which caused Jest to complain. We can fix that by making Jest transform the it

* Update semver to 7.6.3

* Update types for semver, tinycolor2, turndown, and webpack

* Fix type issues: change Props to a type

* Fix type issues: invalid HTML attributes

* Remove unneeded option from Webpack config
2024-11-06 13:40:19 -05:00
Pablo Vélez
87cc13c590 Fixathon ICU - remove npm vulnerabilities from production version (#28999)
* fix high vulnerability present in braces

* remove vulnerabilities from pdfjs-dis and update types for node and react

* adapt the pdf preview file to the lib new version

* lock the estree version to a compatible version

* use minified version of worker and adjust webpack to support extension for ESM module process

* get working the pdf preview

* adjust jest to use babel correctly

* override asn1.js lib to keep working version

* upgrade semver version to a secure version

* remove no longer needed changes

* fix linter issues

* fix merge conflicts

* sync package-lock

* fix conflicts

* adjust lock to npm ci
2024-11-05 13:41:29 +01:00
Caleb Roseland
3ac1c9821b MM-61198: react-hooks-testing-library and renderHookWithContext (#28886) 2024-10-29 08:56:22 -05:00
Devin Binnie
0c90b0363b [MM-60609][MM-60612] Include Desktop App metrics in PerformanceReporter, add metrics in Prometheus for CPU/Memory usage (#28825)
* [MM-60609][MM-60612] Include Desktop App metrics in PerformanceReporter, add metrics in Prometheus for CPU/Memory usage

* Fix mocks

* PR feedback
2024-10-22 12:16:20 -04:00
Harrison Healey
e080f9f5ed Change localizeMessage to take a MessageDescriptor as a parameter (#28141)
* Change localizeAndFormatMessage to take a MessageDescriptor

* Change localizeMessage to take a MessageDescriptor as a parameter

* Update mmjstool to support new localizeMessage signature

* Change mmjstool commit back to master branch
2024-09-24 12:07:51 -04:00
Caleb Roseland
355dd18e52 MM-60335: Upgrade to typescript 5.5.4 (#28099)
Co-authored-by: Mattermost Build <build@mattermost.com>
2024-09-24 10:39:35 -05:00
M-ZubairAhmed
5d7aa17a27 [MM-58726] Add a loading screen to initial load of the web app (#27740) 2024-08-26 12:41:59 +00:00
Harrison Healey
c0874455f3 Disable legacy-peer-deps and manually override mismatched dependencies (#27677)
* Disable legacy-peer-deps and manually override mismatched dependencies

* Switch to overriding dependencies of individual packages
2024-07-18 15:36:02 -04:00
Harrison Healey
e3b2b13292 MM-58535 Add more information to LCP and INP metrics (#27484)
* Improve mocking of imported resources in unit tests

We have Webpack configured so that, when code imports an image or other resource, the code gets the URL of that image. Jest now matches that behaviour which is needed because React Testing Library would previously throw an error.

* Polyfill ResizeObserver in all unit tests

* Ensure haveIChannelPermission always returns a boolean value

The previous code could sometimes return undefined. While that should behave the same in practice, it can cause React to print prop type warnings

* MM-58535 Add region label to LCP metrics

* MM-58535 Upgrade web-vitals and add INP attribution

* Change new labels to use snake_case

* Remove replaceGlobalStore option from renderWithContext

I was going to add this in case any tests failed with this option set to false, but after running those tests, that's not the case. I'm going to remove this as an option since it seems more likely than not that anyone using RTL would prefer to have this on.
2024-07-09 15:06:08 -04:00
Takuya N
6010ff5521 Remove dup stylelint depdendencies in webapp/channels (#27499) 2024-07-09 13:14:53 +00:00
Harrison Healey
de3c7ad544 MM-57878 Add PerformanceReporter for clientside performance metrics (#26800)
* Define rough code for PerformanceReporter

* Create a component to manage the PerformanceReporter

* Start adding tests for PerformanceReporter

* Add test for web vitals reporting

* Update schema to more closely match the API spec

* Collect marks as counters and further update structure of API payload

* Add some outstanding TODOs about the API structure

* Add counter for long tasks

* Add EnableClientMetrics without any System Console UI

* Have PerformanceReporter use EnableClientMetrics

* Have the PerformanceReporter only report results when logged in

* Add test for having PerformanceReporter fall back to fetch

* Stop logging errors for measurements failing

* Remove buffered from observer

* Remove the Mystery Ampersand

* Still record marks with telemetry actions even if telemetry is disabled

* Add timestamps to performance reports

* Reuse the new telemetry code for the old telemetry

* The second half of the last commit

* Use Node performance libraries in all tests

* Set version of PerformanceReport

* Switch to the proper version of EnableClientMetrics

* Remove TODO for unneeded field

* Add user agent and platform detection

* Updated metrics API route
2024-05-09 12:50:52 -04:00
Claudio Costa
5d4ad44bfe [MM-58002] Review start call button functionality in profile popover (#26867)
* Review start call button functionality in profile popover

* Address feedback

* Use published @mattermost/calls-common package

* Fix import

* Lint fix
2024-05-08 13:47:36 -06:00
Nick Misasi
f1019d076e [CLD-7567] Deprecate Self Serve: Second Pass (#26853)
* Deprecate Self Serve: First Pass

* Fix ci

* Fix more ci

* Remmove outdated server tests

* Fix a missed spot opening purchase modal in Self Hosted

* Fix i18n

* Clean up some more server code, fix webapp test

* Fix alignment of button

* Fix linter

* Fix i18n server side

* Deprecate in product true up

* Add back translation

* Remove client functions

* Put back client functions

* webapp deprecation

* Deprecate Self Serve: Second Pass

* Fix various pipeline issues

* Fix linter

* Fix pipelines

* Fix handlers_test.go

* Fix console.error around hostedCustomer in reducer

* PICKY LINTER PLEASE

* Fix webapp tests, various other fixes for the CI pipelines

* Fix i18n

* Updates to accomadate enterprise code removal

* Fix mocks

* More removal

* Fix

* Adjustments from PR

* Fixes for QA Feedback

* Update

* Add migrations to remove true up review history

* Fix migrations check

---------

Co-authored-by: Mattermost Build <build@mattermost.com>
Co-authored-by: maria.nunez <maria.nunez@mattermost.com>
2024-05-02 09:15:15 -04:00
Harrison Healey
22d72b6df8 Remove access to global state from some files (#26752)
* admin_console/license_settings/trial_banner

* invitation_modal and associated utils

* overlay trigger

* Change TrialBanner to not use makeGetCategory

* Address feedback

* Fixing unit tests D:

* Address further feedback

* Fix one last test
2024-04-22 14:53:42 -04:00
Devin Binnie
02e23a3275 [MM-57066][MM-57329] Added metrics for all notification stopping points, consolidated categories between metrics and logging (#26799)
* [MM-57066] Add metric counters for notification events

* Some small changes

* Account for Metrics() sometimes being nil

* Fix test (again)

* Fix more tests

* A few changes from testing - added success counter

* Missed a mock

* Lint

* Add feature flag for notification monitoring
2024-04-18 10:30:08 -04:00
Devin Binnie
65c6717e6b Add login/logout signal to Desktop App API (#26701) 2024-04-09 09:16:07 -04:00
Harrison Healey
30ab45ebb8 MM-57458 Update Katex (#26650) 2024-04-04 16:57:35 -04:00
Harrison Healey
8c3ab07d49 Patch eslint-plugin-react-hooks to properly handle class properties (#26493)
* Update package-lock.json for some reason

* Patch eslint-plugin-react-hooks

* Disable fixed ESLint rule temporarily
2024-03-18 14:24:15 -04:00
M-ZubairAhmed
79b1e9d200 [MM-56594] Upgrade from Node-18.10(Maintaince) to Node-20.11(LTS) (#26335) 2024-03-18 11:22:46 +00:00
Harrison Healey
4d03becdd1 MM-52624/MM-57094 Update ESLint and our ESLint plugin (#26398)
* Update ESLint and plugins

* Move most channels-specific ESLint configuration into ESLint plugin

* Add ESLint to types and client packages

* Add ESLint to components package
2024-03-13 22:07:28 +00:00
Harrison Healey
67f815e373 MM-57093 Update SCSS, Stylelint, and related packages (#26296)
* Update Stylelint and related packages

* Autofix CSS files

* Fix scss/no-global-function-names

* Fix scss/operator-no-unspaced

* Fix scss/comment-no-empty

* Disable scss/at-extend-no-missing-placeholder

* Update libraries for loading sass

* Fix Rollup not emitting the CSS for the components package to the right place

* Add plugin to re-add stylistic Stylelint rules

* Actually import Stylelint plugin
2024-03-13 17:00:57 -04:00
Harrison Healey
eaaf75a232 Fix Rollup warnings and remove some unused Rollup plugins (#26387)
* Fix rollup warnings

* Remove some unused Rollup plugins

* Re-add unintentionally half-removed Stylelint
2024-03-05 09:53:17 -05:00
Harrison Healey
5740b43922 Upgrade web app and pacakges to TypeScript 5.3.3 (#26354) 2024-03-04 16:07:39 -05:00
Harrison Healey
0d2053aa5c MM-56985 Remove babel-plugin-lodash (#26295) 2024-02-26 16:47:26 -05:00
Harrison Healey
8c045b729e MM-53919 Add imagemin-gifsicle and imagemin-mozjpeg as required dependencies (#26118) 2024-02-06 17:04:11 -05:00
M-ZubairAhmed
85d31e8d5c [MM-56609] Remove @floating-ui/react-dom & @floating-ui/react-dom-interactions in favour of @floating-ui/react (#26060) 2024-01-30 20:33:05 +00:00
M-ZubairAhmed
797fe9b917 [MM-56599] Upgrade to "@floating-ui/react" for advanced_text_editor/formatting_bar component (#25970) 2024-01-23 12:18:22 +00:00
Harrison Healey
eac9a39677 Allow NPM v10 when working on the web app (#25959) 2024-01-19 09:43:51 -05:00
M-ZubairAhmed
18f0d8d88f [MM-55407] Remove deprecated LocalizedIcon component (#25828) 2024-01-03 05:25:26 +00:00
M-ZubairAhmed
7b49e15824 [MM-55993] Create a composable independent table to be used in Admin reporting (#25611) 2023-12-18 18:52:58 +00:00
Devin Binnie
d62122b884 [MM-55153] Consolidate Desktop App API, use new contextBridge endpoints when available (#25438)
* Create Desktop API module, migrate message passing code

* Changes to use new API

* Use Desktop API to notify when mentions/unreads/expired changes

* Expose Desktop App module to plugins

* Fix lint

* PR feedback

* Fixed an issue where I forgot to check if the method exists first

* Slight API changes

* Fix package

* Convert all to class, add comments, small reworks for PR feedback
2023-12-04 14:09:46 -05:00
Daniel Espino García
fde9e179be Update typescript dependencies and some other updates (#25535)
* Update typescript dependencies and some other updates

* Fix lint

* Fix tests

* Address feedback

---------

Co-authored-by: Mattermost Build <build@mattermost.com>
2023-12-04 15:29:42 +01:00
Harrison Healey
5a37630058 Update subpackages to 9.3.0 (#25503)
Automatic Merge
2023-11-23 15:30:14 +02:00
Nick Misasi
e1c851a3ca [CLD-6324] Cloud IP Filtering (#24726)
* Initial comit for ip filtering service implementation

* Add audit logs for IP Filters

* start of webapp work

* Stashing

* Updates based on Agniva's feedback around service vs einterface

* Updates completed

* Commit before refactoring, everything's working

* First pass of cleanup complete, front-end tests added

* actually add files

* Updates to some translation strings, running i18n-extract

* Lock everything behind a feature flag

* Fix tests, try to fix some linter stuff

* Fixed linter for JS, on to scss

* Fixed linter for scss

* Fix linter

* More fixes for pipeline

* Support for IPV6

* Remove tsx file that was removed in masteR

* Revert package.json and package-lock.json to master, add cidr-regex dep into channels/package.json

* Another commit to force fix Github

* Fixes around IPV6. Some suggestions from Matt re: UX review. Fixing pipelines for tests and types on new cidr-regex package

* Changes to address Matt's feedback

* A few more changes for clean up

* Add support for permissions

* Fix vet for OpenAPI spec

* Actually add the yaml file for openapi

* Add permission migration to allow support for IP Filtering

* Fix tests

* Final fixes from Matt

* Remove cancel button from page, update link outs to documentation

* Update test to account for removed cancel button

* Adjustments based on feedback from Harrison

* More fixes from PR feedback

* Add a t to fix translations that doesn't seem to be breaking anyone else?

* More fix

* updates for PR feedback

* Fix linter

* Fix types

* Now fix the linter again

* Add back tests because Harrison was able to get them running

* Adjustments for PR feedback

* Remove admin_definition.jsx

* Fix linter

* [CLD-6453] IP Filtering notification email for sysadmins (#25224)

* Initial commit for IP filtering alert email

* Updates to style for email, addition of ip_filtering email:

* Fix pipelines

* Adjustments from Matt's feedback

* Padding changes

* template diff (#25249)

Co-authored-by: Gabe Jackson <3694686+gabrieljackson@users.noreply.github.com>

* Fix hardcoded true, remove bool return value

---------

Co-authored-by: Mattermost Build <build@mattermost.com>
Co-authored-by: Gabe Jackson <3694686+gabrieljackson@users.noreply.github.com>

* Lock feature behind enterprise license. Drop cidr-regex in favour of ipaddr.js dependency. Refactor isIpAddressWithinRanges to use ipaddr.js

* Add a couple server tests

* fix linter

* Fix types from merge conflicts

---------

Co-authored-by: Mattermost Build <build@mattermost.com>
Co-authored-by: Gabe Jackson <3694686+gabrieljackson@users.noreply.github.com>
2023-11-14 09:12:04 -05:00
M-ZubairAhmed
1ff1a1312b upgrade (#25398) 2023-11-10 10:30:34 -05:00
M-ZubairAhmed
f733dc58fa [MM-55294] Migrate jest v26 to v29 to speed up "web app CI PR / test" (#25192) 2023-11-07 11:41:26 +05:30
Jesús Espino
da43d75e78 Admin console definition to typescript (#25232)
* Migrating admin_definition from jsx to tsx

* Fixing types and errors

* Fixing all the types errors

* Fixing linter errors

* Removing no longer needed yup dependency

* Moving admin_definition types to its own file

* Removing a couple of anys

* Fixing linter errors

* Fixing tests snapshots

* Fixing bug

---------

Co-authored-by: Mattermost Build <build@mattermost.com>
2023-11-01 09:57:23 +01:00
Nicolas Le Cam
6649bbebb8 [MM-54924] Update pdfjs to version 3.11.174 (#25075) 2023-10-26 15:36:10 +05:30
M-ZubairAhmed
e552f6b86a [MM-54848] Remove deprecated LocalizedInput component (#25052) 2023-10-24 14:41:29 +05:30
Jesús Espino
6274faeda8 Revert "Migrating the admin_definition.jsx file to typescript (#24658)" (#24869)
This reverts commit a1bf8504a8.
2023-10-10 22:33:24 +02:00
Harrison Healey
88954c651a Update subpackage versions for 9.2 (#24865) 2023-10-10 13:27:16 -04:00
Jesús Espino
a1bf8504a8 Migrating the admin_definition.jsx file to typescript (#24658)
* Migrating admin_definition from jsx to tsx

* Fixing types and errors

* Fixing all the types errors

* Fixing linter errors

* Removing no longer needed yup dependency

* Moving admin_definition types to its own file

* Removing a couple of anys

* Fixing linter errors

* Fixing tests snapshots
2023-10-10 13:26:45 -04:00
Jesús Espino
bb4aa764bc Migrating some files from javascript to typescript (#24663)
* Migrating some files to typescript

* Some other files migrated

* Migrating more javascript to typescript

* Migrating more javascript to typescript

* Fixing types

* Fixing linter errors

* Fixing some imports

* Fixing linter errors

* Renaming the snapshots

* Addressing PR review comments
2023-10-10 16:22:11 +02:00
Daniel Espino García
67ca4644bb Bump to latest mmjstool (#24838)
Automatic Merge
2023-10-09 19:51:15 +03:00