Merge pull request #1594 from ClearlyClaire/glitch-soc/merge-upstream
Merge upstream changes
This commit is contained in:
		
						commit
						127aaa8174
					
				
							
								
								
									
										10
									
								
								Gemfile
									
									
									
									
									
								
							
							
						
						
									
										10
									
								
								Gemfile
									
									
									
									
									
								
							| @ -17,7 +17,7 @@ gem 'makara', '~> 0.5' | ||||
| gem 'pghero', '~> 2.8' | ||||
| gem 'dotenv-rails', '~> 2.7' | ||||
| 
 | ||||
| gem 'aws-sdk-s3', '~> 1.99', require: false | ||||
| gem 'aws-sdk-s3', '~> 1.100', require: false | ||||
| gem 'fog-core', '<= 2.1.0' | ||||
| gem 'fog-openstack', '~> 0.3', require: false | ||||
| gem 'paperclip', '~> 6.0' | ||||
| @ -53,7 +53,7 @@ gem 'fastimage' | ||||
| gem 'hiredis', '~> 0.6' | ||||
| gem 'redis-namespace', '~> 1.8' | ||||
| gem 'htmlentities', '~> 4.3' | ||||
| gem 'http', '~> 4.4' | ||||
| gem 'http', '~> 5.0' | ||||
| gem 'http_accept_language', '~> 2.1' | ||||
| gem 'httplog', '~> 1.5.0' | ||||
| gem 'idn-ruby', require: 'idn' | ||||
| @ -75,7 +75,7 @@ gem 'rails-i18n', '~> 6.0' | ||||
| gem 'rails-settings-cached', '~> 0.6' | ||||
| gem 'redis', '~> 4.4', require: ['redis', 'redis/connection/hiredis'] | ||||
| gem 'mario-redis-lock', '~> 1.2', require: 'redis_lock' | ||||
| gem 'rqrcode', '~> 2.0' | ||||
| gem 'rqrcode', '~> 2.1' | ||||
| gem 'ruby-progressbar', '~> 1.11' | ||||
| gem 'sanitize', '~> 6.0' | ||||
| gem 'scenic', '~> 1.5' | ||||
| @ -117,7 +117,7 @@ end | ||||
| group :test do | ||||
|   gem 'capybara', '~> 3.35' | ||||
|   gem 'climate_control', '~> 0.2' | ||||
|   gem 'faker', '~> 2.18' | ||||
|   gem 'faker', '~> 2.19' | ||||
|   gem 'microformats', '~> 4.2' | ||||
|   gem 'rails-controller-testing', '~> 1.0' | ||||
|   gem 'rspec-sidekiq', '~> 3.1' | ||||
| @ -136,7 +136,7 @@ group :development do | ||||
|   gem 'letter_opener', '~> 1.7' | ||||
|   gem 'letter_opener_web', '~> 1.4' | ||||
|   gem 'memory_profiler' | ||||
|   gem 'rubocop', '~> 1.19', require: false | ||||
|   gem 'rubocop', '~> 1.20', require: false | ||||
|   gem 'rubocop-rails', '~> 2.11', require: false | ||||
|   gem 'brakeman', '~> 5.1', require: false | ||||
|   gem 'bundler-audit', '~> 0.8', require: false | ||||
|  | ||||
							
								
								
									
										49
									
								
								Gemfile.lock
									
									
									
									
									
								
							
							
						
						
									
										49
									
								
								Gemfile.lock
									
									
									
									
									
								
							| @ -79,16 +79,16 @@ GEM | ||||
|       encryptor (~> 3.0.0) | ||||
|     awrence (1.1.1) | ||||
|     aws-eventstream (1.1.1) | ||||
|     aws-partitions (1.488.0) | ||||
|     aws-sdk-core (3.119.0) | ||||
|     aws-partitions (1.492.0) | ||||
|     aws-sdk-core (3.119.1) | ||||
|       aws-eventstream (~> 1, >= 1.0.2) | ||||
|       aws-partitions (~> 1, >= 1.239.0) | ||||
|       aws-sigv4 (~> 1.1) | ||||
|       jmespath (~> 1.0) | ||||
|     aws-sdk-kms (1.46.0) | ||||
|     aws-sdk-kms (1.47.0) | ||||
|       aws-sdk-core (~> 3, >= 3.119.0) | ||||
|       aws-sigv4 (~> 1.1) | ||||
|     aws-sdk-s3 (1.99.0) | ||||
|     aws-sdk-s3 (1.100.0) | ||||
|       aws-sdk-core (~> 3, >= 3.119.0) | ||||
|       aws-sdk-kms (~> 1) | ||||
|       aws-sigv4 (~> 1.1) | ||||
| @ -211,7 +211,7 @@ GEM | ||||
|       tzinfo | ||||
|     excon (0.76.0) | ||||
|     fabrication (2.22.0) | ||||
|     faker (2.18.0) | ||||
|     faker (2.19.0) | ||||
|       i18n (>= 1.6, < 2) | ||||
|     faraday (1.3.0) | ||||
|       faraday-net_http (~> 1.0) | ||||
| @ -220,7 +220,7 @@ GEM | ||||
|     faraday-net_http (1.0.1) | ||||
|     fast_blank (1.0.1) | ||||
|     fastimage (2.2.5) | ||||
|     ffi (1.15.0) | ||||
|     ffi (1.15.3) | ||||
|     ffi-compiler (1.0.1) | ||||
|       ffi (>= 1.0.0) | ||||
|       rake | ||||
| @ -262,16 +262,14 @@ GEM | ||||
|     hiredis (0.6.3) | ||||
|     hkdf (0.3.0) | ||||
|     htmlentities (4.3.4) | ||||
|     http (4.4.1) | ||||
|     http (5.0.1) | ||||
|       addressable (~> 2.3) | ||||
|       http-cookie (~> 1.0) | ||||
|       http-form_data (~> 2.2) | ||||
|       http-parser (~> 1.2.0) | ||||
|     http-cookie (1.0.3) | ||||
|       llhttp-ffi (~> 0.3.0) | ||||
|     http-cookie (1.0.4) | ||||
|       domain_name (~> 0.5) | ||||
|     http-form_data (2.3.0) | ||||
|     http-parser (1.2.1) | ||||
|       ffi-compiler (>= 1.0, < 2.0) | ||||
|     http_accept_language (2.1.1) | ||||
|     httplog (1.5.0) | ||||
|       rack (>= 1.0) | ||||
| @ -327,6 +325,9 @@ GEM | ||||
|       letter_opener (~> 1.0) | ||||
|       railties (>= 3.2) | ||||
|     link_header (0.0.8) | ||||
|     llhttp-ffi (0.3.1) | ||||
|       ffi-compiler (~> 1.0) | ||||
|       rake (~> 13.0) | ||||
|     lograge (0.11.2) | ||||
|       actionpack (>= 4) | ||||
|       activesupport (>= 4) | ||||
| @ -364,7 +365,7 @@ GEM | ||||
|       net-ssh (>= 2.6.5, < 7.0.0) | ||||
|     net-ssh (6.1.0) | ||||
|     nio4r (2.5.8) | ||||
|     nokogiri (1.12.3) | ||||
|     nokogiri (1.12.4) | ||||
|       mini_portile2 (~> 2.6.1) | ||||
|       racc (~> 1.4) | ||||
|     nsa (0.2.8) | ||||
| @ -437,7 +438,7 @@ GEM | ||||
|       rack (>= 1.0, < 3) | ||||
|     rack-cors (1.1.1) | ||||
|       rack (>= 2.0.0) | ||||
|     rack-proxy (0.6.5) | ||||
|     rack-proxy (0.7.0) | ||||
|       rack | ||||
|     rack-test (1.1.0) | ||||
|       rack (>= 1.0, < 3) | ||||
| @ -496,10 +497,10 @@ GEM | ||||
|     rexml (3.2.5) | ||||
|     rotp (6.2.0) | ||||
|     rpam2 (4.0.2) | ||||
|     rqrcode (2.0.0) | ||||
|     rqrcode (2.1.0) | ||||
|       chunky_png (~> 1.0) | ||||
|       rqrcode_core (~> 1.0) | ||||
|     rqrcode_core (1.0.0) | ||||
|     rqrcode_core (1.2.0) | ||||
|     rspec-core (3.10.1) | ||||
|       rspec-support (~> 3.10.0) | ||||
|     rspec-expectations (3.10.1) | ||||
| @ -522,7 +523,7 @@ GEM | ||||
|     rspec-support (3.10.2) | ||||
|     rspec_junit_formatter (0.4.1) | ||||
|       rspec-core (>= 2, < 4, != 2.12.0) | ||||
|     rubocop (1.19.0) | ||||
|     rubocop (1.20.0) | ||||
|       parallel (~> 1.10) | ||||
|       parser (>= 3.0.0.0) | ||||
|       rainbow (>= 2.2.2, < 4.0) | ||||
| @ -531,7 +532,7 @@ GEM | ||||
|       rubocop-ast (>= 1.9.1, < 2.0) | ||||
|       ruby-progressbar (~> 1.7) | ||||
|       unicode-display_width (>= 1.4.0, < 3.0) | ||||
|     rubocop-ast (1.10.0) | ||||
|     rubocop-ast (1.11.0) | ||||
|       parser (>= 3.0.1.1) | ||||
|     rubocop-rails (2.11.3) | ||||
|       activesupport (>= 4.2.0) | ||||
| @ -553,7 +554,7 @@ GEM | ||||
|       railties (>= 4.0.0) | ||||
|     securecompare (1.0.0) | ||||
|     semantic_range (3.0.0) | ||||
|     sidekiq (6.2.1) | ||||
|     sidekiq (6.2.2) | ||||
|       connection_pool (>= 2.2.2) | ||||
|       rack (~> 2.0) | ||||
|       redis (>= 4.2.0) | ||||
| @ -647,7 +648,7 @@ GEM | ||||
|       addressable (>= 2.8.0) | ||||
|       crack (>= 0.3.2) | ||||
|       hashdiff (>= 0.4.0, < 2.0.0) | ||||
|     webpacker (5.4.0) | ||||
|     webpacker (5.4.2) | ||||
|       activesupport (>= 5.2) | ||||
|       rack-proxy (>= 0.6.1) | ||||
|       railties (>= 5.2) | ||||
| @ -672,7 +673,7 @@ DEPENDENCIES | ||||
|   active_record_query_trace (~> 1.8) | ||||
|   addressable (~> 2.8) | ||||
|   annotate (~> 3.1) | ||||
|   aws-sdk-s3 (~> 1.99) | ||||
|   aws-sdk-s3 (~> 1.100) | ||||
|   better_errors (~> 2.9) | ||||
|   binding_of_caller (~> 1.0) | ||||
|   blurhash (~> 0.1) | ||||
| @ -701,7 +702,7 @@ DEPENDENCIES | ||||
|   dotenv-rails (~> 2.7) | ||||
|   ed25519 (~> 1.2) | ||||
|   fabrication (~> 2.22) | ||||
|   faker (~> 2.18) | ||||
|   faker (~> 2.19) | ||||
|   fast_blank (~> 1.0) | ||||
|   fastimage | ||||
|   fog-core (<= 2.1.0) | ||||
| @ -710,7 +711,7 @@ DEPENDENCIES | ||||
|   hamlit-rails (~> 0.2) | ||||
|   hiredis (~> 0.6) | ||||
|   htmlentities (~> 4.3) | ||||
|   http (~> 4.4) | ||||
|   http (~> 5.0) | ||||
|   http_accept_language (~> 2.1) | ||||
|   httplog (~> 1.5.0) | ||||
|   i18n-tasks (~> 0.9) | ||||
| @ -762,11 +763,11 @@ DEPENDENCIES | ||||
|   redcarpet (~> 3.5) | ||||
|   redis (~> 4.4) | ||||
|   redis-namespace (~> 1.8) | ||||
|   rqrcode (~> 2.0) | ||||
|   rqrcode (~> 2.1) | ||||
|   rspec-rails (~> 5.0) | ||||
|   rspec-sidekiq (~> 3.1) | ||||
|   rspec_junit_formatter (~> 0.4) | ||||
|   rubocop (~> 1.19) | ||||
|   rubocop (~> 1.20) | ||||
|   rubocop-rails (~> 2.11) | ||||
|   ruby-progressbar (~> 1.11) | ||||
|   sanitize (~> 6.0) | ||||
|  | ||||
| @ -59,7 +59,7 @@ class Account < ApplicationRecord | ||||
|   ) | ||||
| 
 | ||||
|   USERNAME_RE   = /[a-z0-9_]+([a-z0-9_\.-]+[a-z0-9_]+)?/i | ||||
|   MENTION_RE    = /(?<=^|[^\/[:word:]])@((#{USERNAME_RE})(?:@[[:word:]\.\-]+[a-z0-9]+)?)/i | ||||
|   MENTION_RE    = /(?<=^|[^\/[:word:]])@((#{USERNAME_RE})(?:@[[:word:]\.\-]+[[:word:]]+)?)/i | ||||
|   URL_PREFIX_RE = /\Ahttp(s?):\/\/[^\/]+/ | ||||
| 
 | ||||
|   include AccountAssociations | ||||
|  | ||||
| @ -1,7 +1,7 @@ | ||||
| // Note: You must restart bin/webpack-dev-server for changes to take effect
 | ||||
| 
 | ||||
| const { merge } = require('webpack-merge'); | ||||
| const sharedConfig = require('./shared.js'); | ||||
| const sharedConfig = require('./shared'); | ||||
| 
 | ||||
| module.exports = merge(sharedConfig, { | ||||
|   mode: 'development', | ||||
|  | ||||
							
								
								
									
										15
									
								
								package.json
									
									
									
									
									
								
							
							
						
						
									
										15
									
								
								package.json
									
									
									
									
									
								
							| @ -14,7 +14,7 @@ | ||||
|     "test:lint": "${npm_execpath} run test:lint:js && ${npm_execpath} run test:lint:sass", | ||||
|     "test:lint:js": "eslint --ext=js . --cache", | ||||
|     "test:lint:sass": "sass-lint -v", | ||||
|     "test:jest": "cross-env NODE_ENV=test jest --coverage" | ||||
|     "test:jest": "cross-env NODE_ENV=test jest" | ||||
|   }, | ||||
|   "repository": { | ||||
|     "type": "git", | ||||
| @ -27,6 +27,7 @@ | ||||
|     "not dead" | ||||
|   ], | ||||
|   "jest": { | ||||
|     "testEnvironment": "jsdom", | ||||
|     "projects": [ | ||||
|       "<rootDir>/app/javascript/mastodon" | ||||
|     ], | ||||
| @ -154,7 +155,7 @@ | ||||
|     "requestidlecallback": "^0.3.0", | ||||
|     "reselect": "^4.0.0", | ||||
|     "rimraf": "^3.0.2", | ||||
|     "sass": "^1.38.0", | ||||
|     "sass": "^1.38.2", | ||||
|     "sass-loader": "^10.2.0", | ||||
|     "stacktrace-js": "^2.0.2", | ||||
|     "stringz": "^2.1.0", | ||||
| @ -171,19 +172,19 @@ | ||||
|     "webpack-cli": "^3.3.12", | ||||
|     "webpack-merge": "^5.8.0", | ||||
|     "wicg-inert": "^3.1.1", | ||||
|     "ws": "^8.2.0" | ||||
|     "ws": "^8.2.1" | ||||
|   }, | ||||
|   "devDependencies": { | ||||
|     "@testing-library/jest-dom": "^5.14.1", | ||||
|     "@testing-library/react": "^12.0.0", | ||||
|     "babel-eslint": "^10.1.0", | ||||
|     "babel-jest": "^27.0.6", | ||||
|     "babel-jest": "^27.1.0", | ||||
|     "eslint": "^7.32.0", | ||||
|     "eslint-plugin-import": "~2.24.1", | ||||
|     "eslint-plugin-import": "~2.24.2", | ||||
|     "eslint-plugin-jsx-a11y": "~6.4.1", | ||||
|     "eslint-plugin-promise": "~5.1.0", | ||||
|     "eslint-plugin-react": "~7.24.0", | ||||
|     "jest": "^26.6.3", | ||||
|     "eslint-plugin-react": "~7.25.1", | ||||
|     "jest": "^27.1.0", | ||||
|     "raf": "^3.4.1", | ||||
|     "react-intl-translations-manager": "^5.0.3", | ||||
|     "react-test-renderer": "^16.14.0", | ||||
|  | ||||
| @ -42,6 +42,24 @@ RSpec.describe ProcessMentionsService, type: :service do | ||||
|         expect(a_request(:post, remote_user.inbox_url)).to have_been_made.once | ||||
|       end | ||||
|     end | ||||
| 
 | ||||
|     context 'with an IDN TLD' do | ||||
|       let(:remote_user) { Fabricate(:account, username: 'foo', protocol: :activitypub, domain: 'xn--y9a3aq.xn--y9a3aq', inbox_url: 'http://example.com/inbox') } | ||||
|       let(:status) { Fabricate(:status, account: account, text: "Hello @foo@հայ.հայ") } | ||||
| 
 | ||||
|       before do | ||||
|         stub_request(:post, remote_user.inbox_url) | ||||
|         subject.call(status) | ||||
|       end | ||||
| 
 | ||||
|       it 'creates a mention' do | ||||
|         expect(remote_user.mentions.where(status: status).count).to eq 1 | ||||
|       end | ||||
| 
 | ||||
|       it 'sends activity to the inbox' do | ||||
|         expect(a_request(:post, remote_user.inbox_url)).to have_been_made.once | ||||
|       end | ||||
|     end | ||||
|   end | ||||
| 
 | ||||
|   context 'Temporarily-unreachable ActivityPub user' do | ||||
|  | ||||
		Loading…
	
	
			
			x
			
			
		
	
		Reference in New Issue
	
	Block a user