Skip to content

Commit

Permalink
Merge pull request #4956 from wireapp/staging
Browse files Browse the repository at this point in the history
release 2018-10-23
  • Loading branch information
Gregor Herdmann committed Oct 23, 2018
2 parents 2c69b36 + 1dda036 commit c09a1d0
Show file tree
Hide file tree
Showing 194 changed files with 3,731 additions and 3,973 deletions.
9 changes: 6 additions & 3 deletions .eslintrc.json
Expand Up @@ -5,7 +5,7 @@
"jasmine": true,
"node": true
},
"extends": ["plugin:no-unsanitized/DOM", "plugin:react/recommended", "prettier"],
"extends": ["plugin:jasmine/recommended", "plugin:no-unsanitized/DOM", "plugin:react/recommended", "prettier"],
"globals": {
"$": true,
"_": true,
Expand All @@ -31,7 +31,6 @@
"LRUCache": true,
"marked": true,
"moment": true,
"mixpanel": true,
"OpenGraphMocks": true,
"pako": true,
"payload": true,
Expand All @@ -50,7 +49,7 @@
"z": true,
"zeta": true
},
"plugins": ["jsdoc", "no-unsanitized", "prettier", "react"],
"plugins": ["jasmine", "jsdoc", "no-unsanitized", "prettier", "react"],
"parser": "babel-eslint",
"parserOptions": {
"ecmaVersion": 6,
Expand All @@ -62,6 +61,10 @@
"rules": {
"curly": 2,
"dot-notation": 2,
"jasmine/prefer-toHaveBeenCalledWith": 0,
"jasmine/no-expect-in-setup-teardown": 0,
"jasmine/no-spec-dupes": 0,
"jasmine/no-suite-dupes": 0,
"jsdoc/require-hyphen-before-param-description": 2,
"no-console": [
2,
Expand Down
1 change: 0 additions & 1 deletion app/page/template/_deploy/vendor.htm
@@ -1,2 +1 @@
<script>window.MIXPANEL_CUSTOM_LIB_URL = '/ext/js/mixpanel/mixpanel.min.js';</script>
<script src="/min/wire-vendor.min.js?{{config.CURRENT_VERSION_ID}}"></script>
38 changes: 21 additions & 17 deletions app/page/template/_dist/app.htm
Expand Up @@ -29,28 +29,42 @@
<script src="/script/util/PopupUtil.js"></script>
<!-- Config -->
<script src="/script/config.js"></script>
<!-- Error -->
<script src="/script/error/BaseError.js"></script>
<script src="/script/error/AccessTokenError.js"></script>
<script src="/script/error/AuthError.js"></script>
<script src="/script/error/AudioError.js"></script>
<script src="/script/error/BackendClientError.js"></script>
<script src="/script/error/CallError.js"></script>
<script src="/script/error/ClientError.js"></script>
<script src="/script/error/ConnectError.js"></script>
<script src="/script/error/ConversationError.js"></script>
<script src="/script/error/CryptographyError.js"></script>
<script src="/script/error/EventError.js"></script>
<script src="/script/error/LinkPreviewError.js"></script>
<script src="/script/error/MediaError.js"></script>
<script src="/script/error/NotificationError.js"></script>
<script src="/script/error/PermissionError.js"></script>
<script src="/script/error/StorageError.js"></script>
<script src="/script/error/TeamError.js"></script>
<script src="/script/error/UserError.js"></script>
<!-- Audio -->
<script src="/script/audio/AudioError.js"></script>
<script src="/script/audio/AudioRepository.js"></script>
<script src="/script/audio/AudioPreference.js"></script>
<script src="/script/audio/AudioType.js"></script>
<script src="/script/audio/AudioPlayingType.js"></script>
<!-- Authentication -->
<script src="/script/auth/AccessTokenError.js"></script>
<script src="/script/auth/AuthError.js"></script>
<script src="/script/auth/AuthService.js"></script>
<script src="/script/auth/AuthRepository.js"></script>
<script src="/script/auth/SignOutReason.js"></script>
<script src="/script/auth/URLParameter.js"></script>
<!-- Service -->
<script src="/script/service/BackendClientError.js"></script>
<script src="/script/service/BackendClient.js"></script>
<script src="/script/service/BackendEnvironment.js"></script>
<script src="/script/service/QueueState.js"></script>
<!-- Initialization -->
<script src="/script/main/auth.js"></script>
<!-- Storage -->
<script src="/script/storage/StorageError.js"></script>
<script src="/script/storage/StorageKey.js"></script>
<script src="/script/storage/StorageRepository.js"></script>
<script src="/script/storage/StorageSchemata.js"></script>
Expand Down Expand Up @@ -132,23 +146,20 @@
<script src="/script/calling/entities/FlowAudioEntity.js"></script>
<script src="/script/calling/entities/ParticipantEntity.js"></script>
<!-- Calling -->
<script src="/script/calling/CallError.js"></script>
<script src="/script/calling/CallingRepository.js"></script>
<script src="/script/calling/CallingService.js"></script>
<script src="/script/calling/CallMessageBuilder.js"></script>
<script src="/script/calling/CallMessageMapper.js"></script>
<script src="/script/calling/SDPMapper.js"></script>
<script src="/script/calling/VideoGridRepository.js"></script>
<!-- Connect -->
<script src="/script/connect/ConnectError.js"></script>
<script src="/script/connect/ConnectGoogleService.js"></script>
<script src="/script/connect/ConnectService.js"></script>
<script src="/script/connect/ConnectRepository.js"></script>
<script src="/script/connect/ConnectSource.js"></script>
<script src="/script/connect/PhoneBook.js"></script>
<!-- Client -->
<script src="/script/client/ClientEntity.js"></script>
<script src="/script/client/ClientError.js"></script>
<script src="/script/client/ClientMapper.js"></script>
<script src="/script/client/ClientRepository.js"></script>
<script src="/script/client/ClientService.js"></script>
Expand All @@ -161,7 +172,6 @@
<script src="/script/conversation/ClientMismatchHandler.js"></script>
<script src="/script/conversation/ConversationCellState.js"></script>
<script src="/script/conversation/ConversationEphemeralHandler.js"></script>
<script src="/script/conversation/ConversationError.js"></script>
<script src="/script/conversation/ConversationMapper.js"></script>
<script src="/script/conversation/ConversationRepository.js"></script>
<script src="/script/conversation/ConversationService.js"></script>
Expand All @@ -176,7 +186,6 @@
<script src="/script/conversation/EventMapper.js"></script>
<script src="/script/conversation/NotificationSetting.js"></script>
<!-- Cryptography -->
<script src="/script/cryptography/CryptographyError.js"></script>
<script src="/script/cryptography/CryptographyMapper.js"></script>
<script src="/script/cryptography/CryptographyRepository.js"></script>
<script src="/script/cryptography/CryptographyService.js"></script>
Expand All @@ -187,7 +196,6 @@
<!-- Events -->
<script src="/script/event/Backend.js"></script>
<script src="/script/event/Client.js"></script>
<script src="/script/event/EventError.js"></script>
<script src="/script/event/EventRepository.js"></script>
<script src="/script/event/EventService.js"></script>
<script src="/script/event/EventServiceNoCompound.js"></script>
Expand All @@ -214,7 +222,6 @@
<script src="/script/lifecycle/LifecycleRepository.js"></script>
<script src="/script/lifecycle/UpdateSource.js"></script>
<!-- Link Previews -->
<script src="/script/links/LinkPreviewError.js"></script>
<script src="/script/links/LinkPreviewHelpers.js"></script>
<script src="/script/links/LinkPreviewMetaDataType.js"></script>
<script src="/script/links/LinkPreviewProtoBuilder.js"></script>
Expand All @@ -229,7 +236,6 @@
<script src="/script/media/MediaDeviceType.js"></script>
<script src="/script/media/MediaElementHandler.js"></script>
<script src="/script/media/MediaEmbeds.js"></script>
<script src="/script/media/MediaError.js"></script>
<script src="/script/media/MediaParser.js"></script>
<script src="/script/media/MediaRepository.js"></script>
<script src="/script/media/MediaStreamError.js"></script>
Expand All @@ -243,11 +249,9 @@
<script src="/script/motion/MotionDuration.js"></script>
<!-- Notification -->
<script src="/script/notification/PermissionState.js"></script>
<script src="/script/notification/NotificationError.js"></script>
<script src="/script/notification/NotificationPreference.js"></script>
<script src="/script/notification/NotificationRepository.js"></script>
<!-- Permission -->
<script src="/script/permission/PermissionError.js"></script>
<script src="/script/permission/PermissionRepository.js"></script>
<script src="/script/permission/PermissionStatusState.js"></script>
<script src="/script/permission/PermissionType.js"></script>
Expand All @@ -260,9 +264,10 @@
<script src="/script/search/FullTextSearch.js"></script>
<script src="/script/search/SearchService.js"></script>
<script src="/script/search/SearchRepository.js"></script>
<!-- Server -->
<script src="/script/time/ServerTimeRepository.js"></script>
<!-- Team -->
<script src="/script/team/TeamEntity.js"></script>
<script src="/script/team/TeamError.js"></script>
<script src="/script/team/TeamMapper.js"></script>
<script src="/script/team/TeamMemberEntity.js"></script>
<script src="/script/team/TeamPermission.js"></script>
Expand All @@ -288,7 +293,6 @@
<script src="/script/user/ConnectionStatus.js"></script>
<script src="/script/user/ConsentType.js"></script>
<script src="/script/user/ConsentValue.js"></script>
<script src="/script/user/UserError.js"></script>
<script src="/script/user/UserService.js"></script>
<script src="/script/user/UserMapper.js"></script>
<script src="/script/user/UserConnectionMapper.js"></script>
Expand Down
3 changes: 1 addition & 2 deletions app/page/template/_dist/vendor.htm
Expand Up @@ -15,8 +15,6 @@
<script src="/ext/js/js-cookie/js.cookie.js"></script>
<script src="/ext/js/keyboardjs/keyboard.js"></script>
<script src="/ext/js/knockout/knockout.debug.js"></script>
<script>window.MIXPANEL_CUSTOM_LIB_URL = '/ext/js/mixpanel/mixpanel.min.js';</script>
<script src="/ext/js/mixpanel/mixpanel-jslib-snippet.js"></script>
<script src="/ext/js/moment/moment.js"></script>
<script src="/ext/js/moment/cs.js"></script>
<script src="/ext/js/moment/da.js"></script>
Expand Down Expand Up @@ -56,6 +54,7 @@
<script src="/ext/js/crypto-js/sha256.js"></script>
<script src="/ext/js/linkifyjs/linkify.min.js"></script>
<script src="/ext/js/linkifyjs/linkify-html.min.js"></script>
<script src="/ext/js/simplebar/dist/simplebar.min.js"></script>
<!-- Encryption: Base libraries (don't change the order) -->
<script>
window.sodium = {
Expand Down
1 change: 0 additions & 1 deletion app/page/template/_prod/vendor.htm
@@ -1,2 +1 @@
<script>window.MIXPANEL_CUSTOM_LIB_URL = '/ext/js/mixpanel/mixpanel.min.js';</script>
<script src="/min/wire-vendor.min.js?{{config.CURRENT_VERSION_ID}}"></script>
2 changes: 1 addition & 1 deletion app/page/template/content/conversation/input-bar.htm
Expand Up @@ -30,7 +30,7 @@
<div class="shadow-input" data-bind="html: richTextInput,
scrollSync: '#conversation-input-bar-text',
heightSync: {target: '#conversation-input-bar-text', trigger: richTextInput, callback: scrollMessageList}"
data-uie-name="input-message-rich-text"></div>
data-uie-name="input-message-rich-text" dir="auto"></div>
</div>
<mention-suggestions params="suggestions: mentionSuggestions, targetInputSelector: '#conversation-input-bar-text', onSelectionValidated: addMention"></mention-suggestions>

Expand Down
2 changes: 1 addition & 1 deletion app/page/template/panel/add-participants.htm
Expand Up @@ -36,7 +36,7 @@
<service-icon class="search__no-services__icon"></service-icon>
<!-- ko if: isTeamManager() -->
<div class="search__no-services__info" data-bind="l10n_text: z.string.addParticipantsNoServicesManager" data-uie-name="label-no-services-enabled-manager"></div>
<div class="search__no-services__manage-button search__no-services__manage-button--alternate" data-bind="l10n_text: z.string.addParticipantsManageServicesNoResults, click: clickToOpenManageServices" data-uie-name="go-enable-services"></div>
<div class="search__no-services__manage-button search__no-services__manage-button--alternate" data-bind="l10n_text: z.string.addParticipantsManageServicesNoResults, click: clickOpenManageServices" data-uie-name="go-enable-services"></div>
<!-- /ko -->
<!-- ko ifnot: isTeamManager() -->
<div class="search__no-services__info" data-bind="l10n_text: z.string.addParticipantsNoServicesMember" data-uie-name="label-no-services-enabled"></div>
Expand Down
4 changes: 2 additions & 2 deletions app/script/assets/AssetRemoteData.js
Expand Up @@ -123,8 +123,8 @@ z.assets.AssetRemoteData = class AssetRemoteData {
.then(plaintext => new Blob([new Uint8Array(plaintext)], {mime_type: type}))
.catch(error => {
const errorMessage = (error && error.message) || '';
const isAssetNotFound = errorMessage.endsWith(z.service.BackendClientError.STATUS_CODE.NOT_FOUND);
const isServerError = errorMessage.endsWith(z.service.BackendClientError.STATUS_CODE.INTERNAL_SERVER_ERROR);
const isAssetNotFound = errorMessage.endsWith(z.error.BackendClientError.STATUS_CODE.NOT_FOUND);
const isServerError = errorMessage.endsWith(z.error.BackendClientError.STATUS_CODE.INTERNAL_SERVER_ERROR);

const isExpectedError = isAssetNotFound || isServerError;
if (!isExpectedError) {
Expand Down
13 changes: 5 additions & 8 deletions app/script/assets/AssetService.js
Expand Up @@ -136,7 +136,7 @@ z.assets.AssetService = class AssetService {
generateAssetUrl(assetId, conversationId, forceCaching) {
return Promise.resolve().then(() => {
z.util.ValidationUtil.asset.legacy(assetId, conversationId);
const url = this.client.create_url(`/assets/${assetId}`);
const url = this.client.createUrl(`/assets/${assetId}`);
const cachingParam = forceCaching ? '&forceCaching=true' : '';
const conversationIdParam = `&conv_id=${window.encodeURIComponent(conversationId)}`;

Expand All @@ -156,7 +156,7 @@ z.assets.AssetService = class AssetService {
generateAssetUrlV2(assetId, conversationId, forceCaching) {
return Promise.resolve().then(() => {
z.util.ValidationUtil.asset.legacy(assetId, conversationId);
const url = this.client.create_url(`/conversations/${conversationId}/otr/assets/${assetId}`);
const url = this.client.createUrl(`/conversations/${conversationId}/otr/assets/${assetId}`);
const cachingParam = forceCaching ? '&forceCaching=true' : '';

return `${url}?access_token=${this.client.access_token}${cachingParam}`;
Expand All @@ -174,7 +174,7 @@ z.assets.AssetService = class AssetService {
generateAssetUrlV3(assetKey, assetToken, forceCaching) {
return Promise.resolve().then(() => {
z.util.ValidationUtil.asset.v3(assetKey, assetToken);
const url = `${this.client.create_url(`/assets/v3/${assetKey}`)}`;
const url = `${this.client.createUrl(`/assets/v3/${assetKey}`)}`;
const assetTokenParam = assetToken ? `&asset_token=${window.encodeURIComponent(assetToken)}` : '';
const cachingParam = forceCaching ? '&forceCaching=true' : '';

Expand Down Expand Up @@ -231,14 +231,11 @@ z.assets.AssetService = class AssetService {
const footer = `\r\n--${BOUNDARY}--\r\n`;

const xhr = new XMLHttpRequest();
xhr.open('POST', this.client.create_url('/assets/v3'));
xhr.open('POST', this.client.createUrl('/assets/v3'));
xhr.setRequestHeader('Content-Type', `multipart/mixed; boundary=${BOUNDARY}`);
xhr.setRequestHeader('Authorization', `${this.client.access_token_type} ${this.client.access_token}`);
xhr.onload = function(event) {
if (this.status === 201) {
return resolve(JSON.parse(this.response));
}
return reject(event);
return this.status === 201 ? resolve(JSON.parse(this.response)) : reject(event);
};
xhr.onerror = reject;

Expand Down
58 changes: 0 additions & 58 deletions app/script/audio/AudioError.js

This file was deleted.

16 changes: 8 additions & 8 deletions app/script/audio/AudioRepository.js
Expand Up @@ -45,17 +45,17 @@ window.z.audio.AudioRepository = class AudioRepository {
*/
_checkSoundSetting(audioId) {
if (this.muted && !z.audio.AudioPlayingType.MUTED.includes(audioId)) {
return Promise.reject(new z.audio.AudioError(z.audio.AudioError.TYPE.IGNORED_SOUND));
return Promise.reject(new z.error.AudioError(z.error.AudioError.TYPE.IGNORED_SOUND));
}

const preferenceIsNone = this.audioPreference() === z.audio.AudioPreference.NONE;
if (preferenceIsNone && !z.audio.AudioPlayingType.NONE.includes(audioId)) {
return Promise.reject(new z.audio.AudioError(z.audio.AudioError.TYPE.IGNORED_SOUND));
return Promise.reject(new z.error.AudioError(z.error.AudioError.TYPE.IGNORED_SOUND));
}

const preferenceIsSome = this.audioPreference() === z.audio.AudioPreference.SOME;
if (preferenceIsSome && !z.audio.AudioPlayingType.SOME.includes(audioId)) {
return Promise.reject(new z.audio.AudioError(z.audio.AudioError.TYPE.IGNORED_SOUND));
return Promise.reject(new z.error.AudioError(z.error.AudioError.TYPE.IGNORED_SOUND));
}

return Promise.resolve();
Expand Down Expand Up @@ -84,7 +84,7 @@ window.z.audio.AudioRepository = class AudioRepository {
if (this.audioElements[audioId]) {
return Promise.resolve(this.audioElements[audioId]);
}
return Promise.reject(new z.audio.AudioError(z.audio.AudioError.TYPE.NOT_FOUND));
return Promise.reject(new z.error.AudioError(z.error.AudioError.TYPE.NOT_FOUND));
}

/**
Expand All @@ -110,7 +110,7 @@ window.z.audio.AudioRepository = class AudioRepository {
*/
_play(audioId, audioElement, playInLoop = false) {
if (!audioId || !audioElement) {
return Promise.reject(new z.audio.AudioError(z.audio.AudioError.TYPE.NOT_FOUND));
return Promise.reject(new z.error.AudioError(z.error.AudioError.TYPE.NOT_FOUND));
}

return new Promise((resolve, reject) => {
Expand All @@ -133,12 +133,12 @@ window.z.audio.AudioRepository = class AudioRepository {
if (playPromise) {
return playPromise
.then(_playSuccess)
.catch(() => reject(new z.audio.AudioError(z.audio.AudioError.TYPE.FAILED_TO_PLAY)));
.catch(() => reject(new z.error.AudioError(z.error.AudioError.TYPE.FAILED_TO_PLAY)));
}

_playSuccess();
} else {
reject(new z.audio.AudioError(z.audio.AudioError.TYPE.ALREADY_PLAYING));
reject(new z.error.AudioError(z.error.AudioError.TYPE.ALREADY_PLAYING));
}
});
}
Expand Down Expand Up @@ -223,7 +223,7 @@ window.z.audio.AudioRepository = class AudioRepository {
.then(audioElement => this._play(audioId, audioElement, playInLoop))
.then(audioElement => this.logger.info(`Playing sound '${audioId}' (loop: '${playInLoop}')`, audioElement))
.catch(error => {
if (!(error instanceof z.audio.AudioError)) {
if (!(error instanceof z.error.AudioError)) {
this.logger.error(`Failed playing sound '${audioId}': ${error.message}`);
throw error;
}
Expand Down

0 comments on commit c09a1d0

Please sign in to comment.