Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Review: v1.9.3 to master #729

Merged
merged 37 commits into from
Feb 7, 2020
Merged
Show file tree
Hide file tree
Changes from 31 commits
Commits
Show all changes
37 commits
Select commit Hold shift + click to select a range
7216d7f
refactor: rewrite additional post content to support typed message
Jack-Works Feb 3, 2020
434f26f
refactor: change signature of post id
Jack-Works Feb 3, 2020
ccd4d1d
refactor: change to mui style style overwriting
Jack-Works Feb 3, 2020
2d6c771
refactor: re-order deps, add ok and err as serializable
Jack-Works Feb 3, 2020
8fa97fb
refactor: make action button strongly typed again
Jack-Works Feb 3, 2020
38cb8cd
chore: add some comments
Jack-Works Feb 3, 2020
5474427
chore: update deps & reduce use of require
Jack-Works Feb 3, 2020
94187be
refactor: remove unused component
guanbinrui Feb 4, 2020
58c6384
refactor: remove unused variables
guanbinrui Feb 4, 2020
c2d8612
refactor: move erc20 token settings into same folder
guanbinrui Feb 4, 2020
65dabec
fix: render only in debug mode
guanbinrui Feb 4, 2020
7c9561f
chore: clean unused code
Jack-Works Feb 4, 2020
161d5c3
test: add type coverage
Jack-Works Jan 30, 2020
1ad6c5e
chore: remove dup types
Jack-Works Feb 4, 2020
859613d
docs: add storybook for RedPacket
Jack-Works Feb 4, 2020
8d75d77
chore: themed hasRedPacket
Feb 4, 2020
335aca6
docs: enhance RedPacket storybook
Jack-Works Feb 4, 2020
5c3cbdc
refactor: refactor the RedPacketWithState and add storybook
Jack-Works Feb 4, 2020
b899d41
refactor: split RedPacketDialog into logic and UI
Jack-Works Feb 4, 2020
de2010e
fix: identifier map
Feb 4, 2020
96e229a
refactor: rename BackupRestoreTab to AbstractTab since its multiple p…
Jack-Works Feb 4, 2020
689a76c
refactor: refactor red packet dialog
Jack-Works Feb 4, 2020
7b8c13c
docs: add decrypted post with red packet in storybook
Jack-Works Feb 4, 2020
6e28f4e
fix: facebook comment decrypt and encrypt, close #712
Feb 4, 2020
dea4623
chore: rename WithRedPacket to RedPacketInDecryptedPost
Jack-Works Feb 4, 2020
3445b82
crefactor: refactor red packet in decrypted post
Jack-Works Feb 4, 2020
c515899
fix: add recipient option
guanbinrui Feb 5, 2020
ae61e43
fix: laggy typing
guanbinrui Feb 5, 2020
28cee01
fix: post button state
guanbinrui Feb 5, 2020
2d7b6a2
fix: recipient chip state
guanbinrui Feb 5, 2020
d19514c
fix: reset post dialog after delete red packet
guanbinrui Feb 5, 2020
a3c9b40
refactor: refactor useSettingsUI
Jack-Works Feb 5, 2020
a43b1f3
chore: rename StructuredPluginWrapper
Jack-Works Feb 5, 2020
cccfc73
fix: type error
Jack-Works Feb 6, 2020
c8c953b
chore: remove welcome banner related code
Jack-Works Feb 6, 2020
078bbed
chore: upgrade holoflows kit
Jack-Works Feb 6, 2020
c770bb2
chore: upgrade kit
Jack-Works Feb 7, 2020
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
10 changes: 10 additions & 0 deletions .circleci/config.yml
Original file line number Diff line number Diff line change
Expand Up @@ -53,6 +53,13 @@ jobs:
path: reports/junit
- store_artifacts:
path: reports/junit
type_coverage:
executor: maskbook_node
steps:
- restore_workspace
- run:
name: 'Type coverage'
command: 'yarn lint:typecoverage'
custom_linter:
executor: maskbook_node
steps:
Expand Down Expand Up @@ -148,6 +155,9 @@ workflows:
- custom_linter:
requires:
- install_dependencies
- type_coverage:
requires:
- install_dependencies
- jest:
requires:
- install_dependencies
Expand Down
2 changes: 2 additions & 0 deletions config-overrides/index.js
Original file line number Diff line number Diff line change
Expand Up @@ -118,6 +118,8 @@ function override(config, env) {
})
}

// The background.js is too big to analyzed by the Firefox Addon's linter.
// After https://github.com/DimensionDev/Maskbook/pull/372 is shipped this can be removed.
if (target.Firefox) {
const TerserPlugin = require('terser-webpack-plugin')
config.plugins.push(new TerserPlugin())
Expand Down
81 changes: 41 additions & 40 deletions package.json
Original file line number Diff line number Diff line change
Expand Up @@ -29,113 +29,115 @@
"uninstall": "node scripts/postinstall.js",
"lint": "eslint src/ --ext .ts,.tsx --fix",
"lint:report": "eslint src/ --ext .ts,.tsx --format junit -o reports/junit/eslint-results.xml",
"lint:typecoverage": "type-coverage -p tsconfig_cjs.json --strict --ignore-catch --detail --at-least 98.5",
"compile:contracts": "./scripts/contracts.sh"
},
"dependencies": {
"@commitlint/cli": "^8.2.0",
"@commitlint/config-conventional": "^8.3.4",
"@holoflows/kit": "https://github.com/DimensionDev/holoflows-kit",
"@material-ui/core": "4.8.2",
"@material-ui/icons": "4.5.1",
"@material-ui/lab": "^4.0.0-alpha.39",
"@types/bip39": "^3.0.0",
"@types/classnames": "^2.2.7",
"@types/gun": "^0.9.1",
"@types/jest": "^24.0.25",
"@types/gun": "^0.9.2",
"@types/json-stable-stringify": "^1.0.32",
"@types/jsonwebtoken": "^8.3.6",
"@types/jsonwebtoken": "^8.3.7",
"@types/lodash-es": "^4.17.3",
"@types/node": "^13.1.6",
"@types/node": "^13.7.0",
"@types/qrcode": "^1.3.3",
"@types/react": "^16.9.19",
"@types/react-dom": "^16.9.4",
"@types/react-dom": "^16.9.5",
"@types/react-router-dom": "^5.1.3",
"@types/react-window": "^1.8.1",
"@types/tiny-secp256k1": "^1.0.0",
"@types/uuid": "^3.4.6",
"@typescript-eslint/eslint-plugin": "^2.14.0",
"@types/uuid": "^3.4.7",
"anchorme": "^1.1.2",
"async-call-rpc": "^1.0.4",
"bip39": "^3.0.2",
"classnames": "^2.2.6",
"construct-style-sheets-polyfill": "^2.3.0",
"copy-webpack-plugin": "^5.1.1",
"elliptic": "^6.4.1",
"eslint-plugin-import": "^2.19.1",
"eslint-plugin-react-hooks": "^2.3.0",
"gun": "0.2020.116",
"husky": "^3.1.0",
"idb": "^5.0.0",
"husky": "^4.2.1",
"idb": "^5.0.1",
"json-stable-stringify": "^1.0.1",
"jsonwebtoken": "^8.5.1",
"jsqr": "^1.2.0",
"jss": "^10",
"lint-staged": "^9.5.0",
"lodash-es": "^4.17.11",
"node-stego": "^0.10.0",
"notistack": "^0.9.7",
"npm-run-all": "^4.1.5",
"openzeppelin-solidity": "^2.4.0",
"pvtsutils": "^1.0.9",
"qrcode": "^1.4.4",
"react": "^16.12.0",
"react-app-rewired": "^2.1.5",
"react-dom": "^16.12.0",
"react-router-dom": "^5.0.0",
"react-scripts": "^3.3.0",
"react-window": "^1.8.5",
"tiny-secp256k1": "^1.1.2",
"ts-loader": "^6.2.1",
"ts-results": "^2.0.1",
"typescript": "^3.7.5",
"typeson": "^5.18.1",
"typeson-registry": "^1.0.0-alpha.33",
"uuid": "^3.3.3",
"typeson": "^5.18.2",
"typeson-registry": "^1.0.0-alpha.34",
"uuid": "^3.4.0",
"wallet.ts": "^0.2.8",
"web-ext-types": "^3.1.0",
"web3": "^1.2.5-rc.0",
"web3": "^1.2.6",
"webcrypto-liner": "1.0.2",
"webextension-polyfill": "^0.4.0",
"webpack-web-ext-plugin": "github:DimensionDev/webpack-web-ext-plugin"
"webextension-polyfill": "^0.6.0"
},
"devDependencies": {
"@babel/core": "^7.8.3",
"@babel/core": "^7.8.4",
"@commitlint/cli": "^8.3.5",
"@commitlint/config-conventional": "^8.3.4",
"@sinonjs/text-encoding": "^0.7.1",
"@storybook/addon-actions": "^5.2.8",
"@storybook/addon-info": "^5.2.8",
"@storybook/addon-knobs": "^5.2.8",
"@storybook/addon-links": "^5.3.9",
"@storybook/addon-viewport": "^5.3.9",
"@storybook/addon-actions": "^5.3.10",
"@storybook/addon-info": "^5.3.10",
"@storybook/addon-knobs": "^5.3.10",
"@storybook/addon-links": "^5.3.10",
"@storybook/addon-viewport": "^5.3.10",
"@storybook/addons": "^5.2.6",
"@storybook/react": "^5.3.10",
"@storybook/theming": "^5.3.10",
"@trust/webcrypto": "^0.9.2",
"@types/jest": "^24.0.25",
"@types/storybook__addon-info": "^5.2.1",
"@types/storybook__react": "^4.0.1",
"@typescript-eslint/parser": "^2.16.0",
"@types/storybook__react": "^5.2.1",
"@typescript-eslint/eslint-plugin": "^2.18.0",
"@typescript-eslint/parser": "^2.18.0",
"asmcrypto.js": "^2.3.2",
"awesome-typescript-loader": "^5.2.1",
"chrome-launcher": "^0.12.0",
"copy-webpack-plugin": "^5.1.1",
"eslint": "^6.7.2",
"eslint-config-prettier": "^6.9.0",
"eslint-config-prettier": "^6.10.0",
"eslint-plugin-import": "^2.20.1",
"eslint-plugin-prettier": "^3.1.2",
"eslint-plugin-react-hooks": "^2.3.0",
"esm": "^3.2.25",
"fake-indexeddb": "^3.0.0",
"jest": "^24.9.0",
"jest-esm-transformer": "^1.0.0",
"jest-junit": "^10.0.0",
"lint-staged": "^10.0.7",
"npm-run-all": "^4.1.5",
"prettier": "^1.19.1",
"puppeteer-core": "^2.0.0",
"puppeteer-core": "^2.1.0",
"react-devtools": "^4.4.0",
"react-scripts": "^3.3.1",
"storybook-addon-material-ui": "^0.9.0-alpha.21",
"ts-jest": "^24.2.0",
"ts-loader": "^6.2.1",
"ts-morph": "^6.0.2",
"ts-node": "^8.5.4",
"typechain": "^1.0.3",
"ts-node": "^8.6.2",
"type-coverage": "^2.4.0",
"typechain": "^1.0.4",
"typechain-target-web3-v1": "^1.0.4",
"typescript": "^3.7.5",
"web-ext": "^4.0.0",
"webpack-extension-manifest-plugin": "^0.5.0",
"yargs": "^15.0.2"
"webpack-web-ext-plugin": "github:DimensionDev/webpack-web-ext-plugin",
"yargs": "^15.1.0"
},
"browserslist": {
"production": [
Expand All @@ -157,8 +159,7 @@
},
"lint-staged": {
"*.{ts,tsx,js,jsx}": [
"npm run lint",
"git add"
"npm run lint"
]
}
}
3 changes: 3 additions & 0 deletions src/_background_loader.0.ts
Original file line number Diff line number Diff line change
@@ -0,0 +1,3 @@
// @ts-ignore
import elliptic from 'elliptic'
Object.assign(window, { elliptic })
27 changes: 27 additions & 0 deletions src/_background_loader.1.ts
Original file line number Diff line number Diff line change
@@ -0,0 +1,27 @@
/**
* Load service here. sorry for the ugly pattern.
* But here's some strange problem with webpack.
*
* you should also add register in './extension/service.ts'
*/
import * as CryptoService from './extension/background-script/CryptoService'
import * as WelcomeService from './extension/background-script/WelcomeService'
import * as IdentityService from './extension/background-script/IdentityService'
import * as UserGroupService from './extension/background-script/UserGroupService'
import * as SteganographyService from './extension/background-script/SteganographyService'
import * as PluginService from './extension/background-script/PluginService'
import { decryptFromMessageWithProgress } from './extension/background-script/CryptoServices/decryptFrom'

Object.assign(window, {
CryptoService,
WelcomeService,
SteganographyService,
IdentityService,
UserGroupService,
PluginService,
})
Object.assign(window, {
ServicesWithProgress: {
decryptFrom: decryptFromMessageWithProgress,
},
})
80 changes: 26 additions & 54 deletions src/background-service.ts
Original file line number Diff line number Diff line change
@@ -1,42 +1,25 @@
import { GetContext } from '@holoflows/kit/es'
import { MessageCenter } from './utils/messages'
// @ts-ignore
import elliptic from 'elliptic'
import './_background_loader.0'
import 'webcrypto-liner'
import './_background_loader.1'
import './extension/service'
import './provider.worker'

Object.assign(window, { elliptic })
require('webcrypto-liner')
/**
* Load service here. sorry for the ugly pattern.
* But here's some strange problem with webpack.
*
* you should also add register in './extension/service.ts'
*/
import * as CryptoService from './extension/background-script/CryptoService'
import * as WelcomeService from './extension/background-script/WelcomeService'
import * as IdentityService from './extension/background-script/IdentityService'
import * as UserGroupService from './extension/background-script/UserGroupService'
import * as SteganographyService from './extension/background-script/SteganographyService'
import { decryptFromMessageWithProgress } from './extension/background-script/CryptoServices/decryptFrom'
import * as PersonaDB from './database/Persona/Persona.db'
import * as PersonaDBHelper from './database/Persona/helpers'
import { initAutoShareToFriends } from './extension/background-script/Jobs/AutoShareToFriends'

const PluginService = require('./extension/background-script/PluginService')

Object.assign(window, {
CryptoService,
WelcomeService,
SteganographyService,
IdentityService,
UserGroupService,
PluginService,
})
Object.assign(window, {
ServicesWithProgress: {
decryptFrom: decryptFromMessageWithProgress,
},
})

require('./extension/service')
require('./provider.worker')
import { gun2 } from './network/gun/version.2'
import * as crypto40 from './crypto/crypto-alpha-40'
import * as crypto39 from './crypto/crypto-alpha-39'
import * as crypto38 from './crypto/crypto-alpha-38'
import * as avatar from './database/avatar'
import * as group from './database/group'
import * as type from './database/type'
import * as post from './database/post'
import { definedSocialNetworkWorkers } from './social-network/worker'
import { getWelcomePageURL } from './extension/options-page/Welcome/getWelcomePageURL'

if (GetContext() === 'background') {
const injectedScript = `{
Expand Down Expand Up @@ -82,9 +65,6 @@ if (GetContext() === 'background') {

browser.runtime.onInstalled.addListener(detail => {
if (webpackEnv.target === 'WKWebview') return
const {
getWelcomePageURL,
} = require('./extension/options-page/Welcome/getWelcomePageURL') as typeof import('./extension/options-page/Welcome/getWelcomePageURL')
if (detail.reason === 'install') {
browser.tabs.create({ url: getWelcomePageURL() })
}
Expand Down Expand Up @@ -120,29 +100,21 @@ function IgnoreError(arg: unknown): (reason: Error) => void {
} else console.error('Inject error', e, arg, Object.entries(e))
}
}
Object.assign(window, {
definedSocialNetworkWorkers: (require('./social-network/worker') as typeof import('./social-network/worker'))
.definedSocialNetworkWorkers,
})

import * as PersonaDB from './database/Persona/Persona.db'
import * as PersonaDBHelper from './database/Persona/helpers'

// Friendly to debug
Object.assign(window, {
gun1: require('./network/gun/version.1'),
gun2: require('./network/gun/version.2'),
crypto40: require('./crypto/crypto-alpha-40'),
crypto39: require('./crypto/crypto-alpha-39'),
crypto38: require('./crypto/crypto-alpha-38'),
definedSocialNetworkWorkers,
gun2: gun2,
crypto40: crypto40,
crypto39: crypto39,
crypto38: crypto38,
db: {
avatar: require('./database/avatar'),
group: require('./database/group'),
deprecated_people: require('./database/migrate/_deprecated_people_db'),
avatar: avatar,
group: group,
persona: PersonaDB,
personaHelper: PersonaDBHelper,
type: require('./database/type'),
post: require('./database/post'),
type: type,
post: post,
},
})
initAutoShareToFriends()
2 changes: 1 addition & 1 deletion src/components/DataSource/useActivatedUI.ts
Original file line number Diff line number Diff line change
Expand Up @@ -2,7 +2,7 @@ import { Profile } from '../../database'
import { useValueRef } from '../../utils/hooks/useValueRef'
import { getActivatedUI } from '../../social-network/ui'
import { currentSelectedIdentity } from '../../components/shared-settings/settings'
import { GetContext, OnlyRunInContext } from '@holoflows/kit/es'
import { OnlyRunInContext } from '@holoflows/kit/es'

export function useFriendsList() {
return useValueRef(getActivatedUI().friendsRef)
Expand Down
13 changes: 7 additions & 6 deletions src/components/InjectedComponents/AddToKeyStore.tsx
Original file line number Diff line number Diff line change
Expand Up @@ -43,15 +43,16 @@ type WaitingProps = Partial<AdditionalContentProps>
type FailedProps = Partial<AdditionalContentProps> & { error: Error }
export const AddToKeyStoreUI = {
success: React.memo((props: SuccessProps) => (
<AdditionalContent title={geti18nString('add_to_key_store_success')} {...props} />
<AdditionalContent header={geti18nString('add_to_key_store_success')} {...props} />
)),
awaiting: React.memo((props: WaitingProps) => (
<AdditionalContent title={geti18nString('add_to_key_store_verifying')} {...props} />
<AdditionalContent header={geti18nString('add_to_key_store_verifying')} {...props} />
)),
failed: React.memo(({ error, ...props }: FailedProps) => (
<AdditionalContent title={geti18nString('add_to_key_store_failed_title')} {...props}>
{geti18nString('add_to_key_store_failed_text', error.message)}
{console.error(error)}
</AdditionalContent>
<AdditionalContent
header={geti18nString('add_to_key_store_failed_title')}
message={(console.error(error), geti18nString('add_to_key_store_failed_text', error.message))}
{...props}
/>
)),
}
Loading