* 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
* 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 e64aabe9fc.
* 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>
* 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
* 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
* 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
* 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
* 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.
* 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
* 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>
* 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
* [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
* 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
* 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
* 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
* 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>
* 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>
* 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
* 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
* adding group members to channel initial commit
* adding group to channel functionality along with add new team members
* fixing circular dependency
* fixing e2e and other optimizations
* adding e2e tests for adding group members to channels
* cypress lint
* fixing comments
* adding count to button
* improvements
* adjusting some stuff from PR comments
* remove ability to add user to team, update message for non-team members
* remove adding to team from add groups functionality
* update misspelled variable
* lint and unit test fixes
* add tests, cleanup
* lint fix
* revert package-lock.json
* fixes for cypress tests
* rename TeamInviteBanner to TeamWarningBanner, since invites are no longer allowed
* update for warning
* lint fixes
* cleanup
* fix failing e2e tests
* update slash command for user groups
* revert package-lock
* remove unused function
* update based on feedback
* update tests for last change
* i18n-extract, reorder
* retrieve and display user name
---------
Co-authored-by: Benjamin Cooke <benkcooke@gmail.com>
Co-authored-by: Mattermost Build <build@mattermost.com>
* MM-54191 Change how menu item click handlers are triggered after menus fully close
* Switch menu items to use onClick instead of onMouseDown
* Add unit tests for menu keyboard navigation and opening modals
* Fix missing use of useMenuContextValue
* Remove unneeded ?.
* Fix unrelated test broken by @testing-library/user-event update
* MM-53989 Update to Node 18 and NPM 9
* MM-53989 Remove skip_integrity_check.js
* Force e2e-test/cypress to use its version of TS for types package
* Update .nvmrc
* Update .nvmrc lineending
* Update server.override.yml
---------
Co-authored-by: M-ZubairAhmed <m-zubairahmed@protonmail.com>
Co-authored-by: Mattermost Build <build@mattermost.com>
* Remove build references
* Remove playbooks webapp and server, and add the prepackaged plugin
* Remove translations
* Add ProductSettings to the playwright type
* Restore playbooks as a prepackaged plugin for cypress e2e tests
* Prevent boards product from being included automatically
* Fix config diff test
* Update prepackaged plugin version
Co-authored-by: Scott Bishel <scott.bishel@mattermost.com>
* Readd boards/dist to the gitignore
* Does not enable the focalboard plugin by default
* Update plugin version to v7.10.3
---------
Co-authored-by: Scott Bishel <scott.bishel@mattermost.com>
* Remove unneeded Babel plugins and update Babel preset
* Remove unneeded babel/cli package
* Update and share Babel and presets
* Update and share babel-plugin-styled-components
* Update and share babel-plugin-formatjs
* Update and share babel-plugin-typescript-to-proptypes
* Update and share babel-loader
* Remove all Babel-related ESLint libraries
* Remove unused babel-jest from Playbooks
* MM-51968 Remove unused Babel libraries from Boards
* Update snapshots because of course I have to
* Update snapshot
* MM-52536 Update Webpack and use the same version for all products
* Switch Channels to use asset modules
* Remove unused module configuration from Boards/Playbooks
* Remove file-loader and html-loader
* Unify versions of CSS-related loaders
* Remove unused webpack-node-externals dependency
* Add missing MiniCssExtractPlugin to Boards/Playbooks production builds
* wrap all the components using compass-components with compass-components theme provider
Co-authored-by: @michelengelen
Co-authored-by: Mattermost Build <build@mattermost.com>
Picks out formatjs-eslint-plugin to webapp root. Updates react-intl to 6.3.2 in all products. Executed i18n-extract and checked if any translations got changed. Although it was a major version update, the only breaking change was for a vue peer dependency. Adds "*" to take whatever dependency rule to products and declare the react-intl as the root package. Fixes a few lint and type errors cropped in due to the update No-ID rule removed from playbooks in preparation for unifying practices across products. Lastly, a few missing translations in Playbooks added
This package was added during the resolution of issues with Boards CI tests. This pull request isolates and tests the package's impact after recent npm changes. It was found that removing the stub package did not result in any issues.
The version in package.json was added to display the workspace name in the terminal for playbooks. Additionally, it was ensured that all products now have the same version number, as the release of all products is tied to a single release channel.
* MM-51735 Remove references to mattermost-redux from Boards
* Fix styling and remove debug comments
* Update Playbooks Jest config to point to mattermost-redux correctly