├── .commitlintrc.js ├── .editorconfig ├── .eslintignore ├── .eslintrc.js ├── .gitignore ├── .huskyrc ├── .postcssrc.js ├── .stylintrc ├── LICENSE ├── README.md ├── babel.config.js ├── package.json ├── publish.js ├── quasar.conf.js ├── quasar.extensions.json ├── src-cordova ├── config.xml ├── hooks │ └── README.md ├── package-lock.json └── package.json ├── src-electron ├── icons │ ├── Square107x107Logo.png │ ├── Square142x142Logo.png │ ├── Square150x150Logo.png │ ├── Square284x284Logo.png │ ├── Square30x30Logo.png │ ├── Square310x310Logo.png │ ├── Square44x44Logo.png │ ├── Square71x71Logo.png │ ├── Square89x89Logo.png │ ├── StoreLogo.png │ ├── icon.icns │ ├── icon.ico │ ├── icon.png │ ├── linux-128x128.png │ ├── linux-16x16.png │ ├── linux-24x24.png │ ├── linux-32x32.png │ ├── linux-48x48.png │ ├── linux-512x512.png │ ├── linux-64x64.png │ └── linux-96x96.png └── main-process │ ├── electron-main.dev.js │ └── electron-main.js ├── src-extension ├── background.html └── manifest.json ├── src-pwa ├── custom-service-worker.js └── register-service-worker.js ├── src ├── App.vue ├── assets │ └── sad.svg ├── boot │ └── axios.js ├── components │ └── .gitkeep ├── css │ ├── app.styl │ └── quasar.variables.styl ├── index.template.html ├── layouts │ └── MyLayout.vue ├── pages │ ├── Error404.vue │ └── Index.vue ├── router │ ├── index.js │ └── routes.js └── statics │ ├── app-logo-128x128.png │ └── icons │ ├── apple-icon-120x120.png │ ├── apple-icon-152x152.png │ ├── apple-icon-167x167.png │ ├── apple-icon-180x180.png │ ├── favicon-16x16.png │ ├── favicon-32x32.png │ ├── favicon-96x96.png │ ├── favicon.ico │ ├── icon-128x128.png │ ├── icon-192x192.png │ ├── icon-256x256.png │ ├── icon-384x384.png │ ├── icon-512x512.png │ ├── ms-icon-144x144.png │ └── safari-pinned-tab.svg └── yarn.lock /.commitlintrc.js: -------------------------------------------------------------------------------- 1 | module.exports = { 2 | extends: ['@commitlint/config-conventional'] 3 | } 4 | -------------------------------------------------------------------------------- /.editorconfig: -------------------------------------------------------------------------------- 1 | root = true 2 | 3 | [*] 4 | charset = utf-8 5 | indent_style = space 6 | indent_size = 2 7 | end_of_line = lf 8 | insert_final_newline = true 9 | trim_trailing_whitespace = true 10 | -------------------------------------------------------------------------------- /.eslintignore: -------------------------------------------------------------------------------- 1 | /dist 2 | -------------------------------------------------------------------------------- /.eslintrc.js: -------------------------------------------------------------------------------- 1 | module.exports = { 2 | root: true, 3 | 4 | parserOptions: { 5 | parser: 'babel-eslint', 6 | sourceType: 'module' 7 | }, 8 | 9 | env: { 10 | browser: true 11 | }, 12 | 13 | // https://github.com/vuejs/eslint-plugin-vue#priority-a-essential-error-prevention 14 | // consider switching to `plugin:vue/strongly-recommended` or `plugin:vue/recommended` for stricter rules. 15 | extends: [ 16 | 'plugin:vue/essential', 17 | 'airbnb-base' 18 | ], 19 | 20 | // required to lint *.vue files 21 | plugins: [ 22 | 'vue' 23 | ], 24 | 25 | globals: { 26 | 'ga': true, // Google Analytics 27 | 'cordova': true, 28 | '__statics': true, 29 | 'process': true 30 | }, 31 | 32 | // add your custom rules here 33 | rules: { 34 | 'no-param-reassign': 'off', 35 | 'object-shorthand': 'off', 36 | 37 | 'import/first': 'off', 38 | 'import/named': 'error', 39 | 'import/namespace': 'error', 40 | 'import/default': 'error', 41 | 'import/export': 'error', 42 | 'import/extensions': 'off', 43 | 'import/no-unresolved': 'off', 44 | 'import/no-extraneous-dependencies': 'off', 45 | 'import/prefer-default-export': 'off', 46 | 'prefer-promise-reject-errors': 'off', 47 | 48 | // allow console.log during development only 49 | 'no-console': process.env.NODE_ENV === 'production' ? 'error' : 'off', 50 | // allow debugger during development only 51 | 'no-debugger': process.env.NODE_ENV === 'production' ? 'error' : 'off' 52 | } 53 | } 54 | -------------------------------------------------------------------------------- /.gitignore: -------------------------------------------------------------------------------- 1 | .quasar 2 | .DS_Store 3 | .thumbs.db 4 | node_modules 5 | /dist 6 | /src-cordova/node_modules 7 | /src-cordova/platforms 8 | /src-cordova/plugins 9 | /src-cordova/www 10 | npm-debug.log* 11 | yarn-debug.log* 12 | yarn-error.log* 13 | 14 | # Editor directories and files 15 | .idea 16 | .vscode 17 | *.suo 18 | *.ntvs* 19 | *.njsproj 20 | *.sln 21 | -------------------------------------------------------------------------------- /.huskyrc: -------------------------------------------------------------------------------- 1 | { 2 | "hooks": { 3 | "commit-msg": "commitlint -E HUSKY_GIT_PARAMS" 4 | } 5 | } 6 | -------------------------------------------------------------------------------- /.postcssrc.js: -------------------------------------------------------------------------------- 1 | // https://github.com/michael-ciniawsky/postcss-load-config 2 | 3 | module.exports = { 4 | plugins: [ 5 | // to edit target browsers: use "browserslist" field in package.json 6 | require('autoprefixer') 7 | ] 8 | } 9 | -------------------------------------------------------------------------------- /.stylintrc: -------------------------------------------------------------------------------- 1 | { 2 | "blocks": "never", 3 | "brackets": "never", 4 | "colons": "never", 5 | "colors": "always", 6 | "commaSpace": "always", 7 | "commentSpace": "always", 8 | "cssLiteral": "never", 9 | "depthLimit": false, 10 | "duplicates": true, 11 | "efficient": "always", 12 | "extendPref": false, 13 | "globalDupe": true, 14 | "indentPref": 2, 15 | "leadingZero": "never", 16 | "maxErrors": false, 17 | "maxWarnings": false, 18 | "mixed": false, 19 | "namingConvention": false, 20 | "namingConventionStrict": false, 21 | "none": "never", 22 | "noImportant": false, 23 | "parenSpace": "never", 24 | "placeholder": false, 25 | "prefixVarsWithDollar": "always", 26 | "quotePref": "single", 27 | "semicolons": "never", 28 | "sortOrder": false, 29 | "stackedProperties": "never", 30 | "trailingWhitespace": "never", 31 | "universal": "never", 32 | "valid": true, 33 | "zeroUnits": "never", 34 | "zIndexNormalize": false 35 | } 36 | -------------------------------------------------------------------------------- /LICENSE: -------------------------------------------------------------------------------- 1 | MIT License 2 | 3 | Copyright (c) 2019 回家看动画 4 | 5 | Permission is hereby granted, free of charge, to any person obtaining a copy 6 | of this software and associated documentation files (the "Software"), to deal 7 | in the Software without restriction, including without limitation the rights 8 | to use, copy, modify, merge, publish, distribute, sublicense, and/or sell 9 | copies of the Software, and to permit persons to whom the Software is 10 | furnished to do so, subject to the following conditions: 11 | 12 | The above copyright notice and this permission notice shall be included in all 13 | copies or substantial portions of the Software. 14 | 15 | THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR 16 | IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, 17 | FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE 18 | AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER 19 | LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, 20 | OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE 21 | SOFTWARE. 22 | -------------------------------------------------------------------------------- /README.md: -------------------------------------------------------------------------------- 1 | # 今日热榜 2 | 3 | 今日热榜,摸鱼神器。支持全平台: PC 端移动端 Web、Chrome 插件、PWA 程序(Android、iOS)和桌面端程序(Win、Linux、MacOS)。 4 | 5 | 线上地址:[https://ttop5.net/to-be-slack](https://ttop5.net/to-be-slack) 6 | 7 | 最近更新:[https://github.com/ttop5/to-be-slack/releases](https://github.com/ttop5/to-be-slack/releases) 8 | 9 | 使用说明:[https://github.com/ttop5/to-be-slack/wiki/%E4%BD%BF%E7%94%A8%E8%AF%B4%E6%98%8E](https://github.com/ttop5/to-be-slack/wiki/%E4%BD%BF%E7%94%A8%E8%AF%B4%E6%98%8E) 10 | 11 | 12 | ## 使用截图 13 | 14 | ### PC 端 Web: 15 | 16 |  17 | 18 | ### 移动端 Web: 19 | 20 |   21 | 22 | ### Chrome 插件: 23 | 24 | 25 | 26 | ### PWA 程序(iOS为例): 27 | 28 | 29 | 30 | ### 桌面端程序(MacOS为例): 31 | 32 | 33 | 34 | 随时随地,愉快摸鱼! 35 | -------------------------------------------------------------------------------- /babel.config.js: -------------------------------------------------------------------------------- 1 | module.exports = { 2 | presets: [ 3 | '@quasar/babel-preset-app' 4 | ] 5 | } 6 | -------------------------------------------------------------------------------- /package.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "to-be-slack", 3 | "version": "1.7.3", 4 | "description": "摸鱼愉快", 5 | "productName": "今日热榜", 6 | "cordovaId": "org.cordova.quasar.app", 7 | "author": "ttop5 ", 8 | "private": true, 9 | "scripts": { 10 | "lint": "eslint --ext .js,.vue src", 11 | "dev": "quasar dev", 12 | "dev-pwa": "quasar dev -m pwa", 13 | "dev-android": "quasar dev -m android", 14 | "dev-ios": "quasar dev -m ios", 15 | "dev-electron": "quasar dev -m electron", 16 | "build": "quasar build && cp src-extension/background.html ./dist/spa && cp src-extension/manifest.json ./dist/spa", 17 | "build-pwa": "quasar build -m pwa", 18 | "build-android": "quasar build -m android", 19 | "build-ios": "quasar build -m ios", 20 | "build-electron": "quasar build -m electron", 21 | "deploy": "yarn build-pwa && node publish.js", 22 | "test": "echo \"No test specified\" && exit 0" 23 | }, 24 | "dependencies": { 25 | "@quasar/extras": "^1.0.0", 26 | "axios": "^0.18.1", 27 | "quasar": "^1.0.0" 28 | }, 29 | "devDependencies": { 30 | "@commitlint/cli": "^8.1.0", 31 | "@commitlint/config-conventional": "^8.1.0", 32 | "@quasar/app": "^1.0.0", 33 | "@vue/eslint-config-airbnb": "^4.0.0", 34 | "babel-eslint": "^10.0.1", 35 | "devtron": "^1.4.0", 36 | "electron": "^7.2.4", 37 | "electron-builder": "^21.2.0", 38 | "electron-debug": "^3.0.0", 39 | "electron-devtools-installer": "^2.2.4", 40 | "electron-packager": "^13.1.0", 41 | "eslint": "^5.10.0", 42 | "eslint-loader": "^2.1.1", 43 | "eslint-plugin-vue": "^5.0.0", 44 | "gh-pages": "^2.0.1", 45 | "husky": "^3.0.2" 46 | }, 47 | "engines": { 48 | "node": ">= 8.9.0", 49 | "npm": ">= 5.6.0", 50 | "yarn": ">= 1.6.0" 51 | }, 52 | "browserslist": [ 53 | "last 1 version, not dead, ie >= 11" 54 | ] 55 | } 56 | -------------------------------------------------------------------------------- /publish.js: -------------------------------------------------------------------------------- 1 | const ghpages = require('gh-pages'); 2 | 3 | ghpages.publish('dist/pwa', () => {}); 4 | -------------------------------------------------------------------------------- /quasar.conf.js: -------------------------------------------------------------------------------- 1 | // Configuration for your app 2 | // https://quasar.dev/quasar-cli/quasar-conf-js 3 | 4 | module.exports = function (ctx) { 5 | return { 6 | // app boot file (/src/boot) 7 | // --> boot files are part of "main.js" 8 | boot: [ 9 | 'axios' 10 | ], 11 | 12 | css: [ 13 | 'app.styl' 14 | ], 15 | 16 | extras: [ 17 | // 'ionicons-v4', 18 | // 'mdi-v3', 19 | 'fontawesome-v5', 20 | // 'eva-icons', 21 | // 'themify', 22 | // 'roboto-font-latin-ext', // this or either 'roboto-font', NEVER both! 23 | 24 | 'roboto-font', // optional, you are not bound to it 25 | 'material-icons' // optional, you are not bound to it 26 | ], 27 | 28 | framework: { 29 | iconSet: 'fontawesome-v5', 30 | // lang: 'de', // Quasar language 31 | 32 | // all: true, // --- includes everything; for dev only! 33 | 34 | components: [ 35 | 'QLayout', 36 | 'QHeader', 37 | 'QDrawer', 38 | 'QBanner', 39 | 'QSelect', 40 | 'QPageContainer', 41 | 'QPage', 42 | 'QToolbar', 43 | 'QToolbarTitle', 44 | 'QBtn', 45 | 'QIcon', 46 | 'QList', 47 | 'QItem', 48 | 'QItemSection', 49 | 'QItemLabel', 50 | 'QToggle', 51 | 'QBtnDropdown', 52 | 'QPageScroller' 53 | ], 54 | 55 | directives: [ 56 | 'Ripple' 57 | ], 58 | 59 | // Quasar plugins 60 | plugins: [ 61 | 'Notify', 62 | 'LoadingBar' 63 | ], 64 | config: { 65 | loadingBar: { 66 | color: 'amber', 67 | }, 68 | } 69 | }, 70 | 71 | supportIE: true, 72 | 73 | build: { 74 | scopeHoisting: true, 75 | // vueRouterMode: 'history', 76 | // vueCompiler: true, 77 | // gzip: true, 78 | // analyze: true, 79 | // extractCSS: false, 80 | extendWebpack (cfg) { 81 | cfg.module.rules.push({ 82 | enforce: 'pre', 83 | test: /\.(js|vue)$/, 84 | loader: 'eslint-loader', 85 | exclude: /node_modules/, 86 | options: { 87 | formatter: require('eslint').CLIEngine.getFormatter('stylish') 88 | } 89 | }) 90 | } 91 | }, 92 | 93 | devServer: { 94 | // https: true, 95 | // port: 8080, 96 | open: true // opens browser window automatically 97 | }, 98 | 99 | // animations: 'all', // --- includes all animations 100 | animations: [], 101 | 102 | ssr: { 103 | pwa: false 104 | }, 105 | 106 | pwa: { 107 | // workboxPluginMode: 'InjectManifest', 108 | // workboxOptions: {}, // only for NON InjectManifest 109 | manifest: { 110 | name: '今日热榜', 111 | short_name: '今日热榜', 112 | description: '摸鱼愉快', 113 | display: 'standalone', 114 | orientation: 'portrait', 115 | background_color: '#ffffff', 116 | theme_color: '#027be3', 117 | icons: [ 118 | { 119 | 'src': 'statics/icons/icon-128x128.png', 120 | 'sizes': '128x128', 121 | 'type': 'image/png' 122 | }, 123 | { 124 | 'src': 'statics/icons/icon-192x192.png', 125 | 'sizes': '192x192', 126 | 'type': 'image/png' 127 | }, 128 | { 129 | 'src': 'statics/icons/icon-256x256.png', 130 | 'sizes': '256x256', 131 | 'type': 'image/png' 132 | }, 133 | { 134 | 'src': 'statics/icons/icon-384x384.png', 135 | 'sizes': '384x384', 136 | 'type': 'image/png' 137 | }, 138 | { 139 | 'src': 'statics/icons/icon-512x512.png', 140 | 'sizes': '512x512', 141 | 'type': 'image/png' 142 | } 143 | ] 144 | } 145 | }, 146 | 147 | cordova: { 148 | // id: 'org.cordova.quasar.app', 149 | // noIosLegacyBuildFlag: true, // uncomment only if you know what you are doing 150 | }, 151 | 152 | electron: { 153 | bundler: 'packager', // or 'builder' 154 | 155 | extendWebpack (cfg) { 156 | // do something with Electron main process Webpack cfg 157 | // chainWebpack also available besides this extendWebpack 158 | }, 159 | 160 | packager: { 161 | // https://github.com/electron-userland/electron-packager/blob/master/docs/api.md#options 162 | 163 | platform: 'all', 164 | 165 | // OS X / Mac App Store 166 | // appBundleId: '', 167 | // appCategoryType: '', 168 | // osxSign: '', 169 | // protocol: 'myapp://path', 170 | 171 | // Windows only 172 | // win32metadata: { ... } 173 | }, 174 | 175 | builder: { 176 | // https://www.electron.build/configuration/configuration 177 | 178 | // appId: 'com.electron.to-be-slack', 179 | } 180 | } 181 | } 182 | } 183 | -------------------------------------------------------------------------------- /quasar.extensions.json: -------------------------------------------------------------------------------- 1 | {} -------------------------------------------------------------------------------- /src-cordova/config.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 今日热榜 4 | 摸鱼愉快 5 | 6 | Apache Cordova Team 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | 17 | 18 | 19 | 20 | 21 | 22 | 23 | 24 | 25 | -------------------------------------------------------------------------------- /src-cordova/hooks/README.md: -------------------------------------------------------------------------------- 1 | 21 | # Cordova Hooks 22 | 23 | Cordova Hooks represent special scripts which could be added by application and plugin developers or even by your own build system to customize cordova commands. See Hooks Guide for more details: http://cordova.apache.org/docs/en/edge/guide_appdev_hooks_index.md.html#Hooks%20Guide. 24 | -------------------------------------------------------------------------------- /src-cordova/package-lock.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "org.cordova.quasar.app", 3 | "version": "1.7.3", 4 | "lockfileVersion": 1, 5 | "requires": true, 6 | "dependencies": { 7 | "abbrev": { 8 | "version": "1.1.1", 9 | "resolved": "http://registry.npm.taobao.org/abbrev/download/abbrev-1.1.1.tgz", 10 | "integrity": "sha1-+PLIh60Qv2f2NPAFtph/7TF5qsg=" 11 | }, 12 | "android-versions": { 13 | "version": "1.4.0", 14 | "resolved": "https://registry.npm.taobao.org/android-versions/download/android-versions-1.4.0.tgz", 15 | "integrity": "sha1-gH6ilB1+V4Dm3WHF2be288Bwbgk=", 16 | "requires": { 17 | "semver": "^5.4.1" 18 | } 19 | }, 20 | "ansi": { 21 | "version": "0.3.1", 22 | "resolved": "http://registry.npm.taobao.org/ansi/download/ansi-0.3.1.tgz", 23 | "integrity": "sha1-DELU+xcWDVqa8eSEus4cZpIsGyE=" 24 | }, 25 | "balanced-match": { 26 | "version": "1.0.0", 27 | "resolved": "http://registry.npm.taobao.org/balanced-match/download/balanced-match-1.0.0.tgz", 28 | "integrity": "sha1-ibTRmasr7kneFk6gK4nORi1xt2c=" 29 | }, 30 | "base64-js": { 31 | "version": "1.3.1", 32 | "resolved": "https://registry.npm.taobao.org/base64-js/download/base64-js-1.3.1.tgz", 33 | "integrity": "sha1-WOzoy3XdB+ce0IxzarxfrE2/jfE=" 34 | }, 35 | "big-integer": { 36 | "version": "1.6.44", 37 | "resolved": "https://registry.npm.taobao.org/big-integer/download/big-integer-1.6.44.tgz?cache=0&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fbig-integer%2Fdownload%2Fbig-integer-1.6.44.tgz", 38 | "integrity": "sha1-TumuX1g5/BGt4zj+oha0UTRUpTk=" 39 | }, 40 | "bplist-creator": { 41 | "version": "0.0.7", 42 | "resolved": "https://registry.npm.taobao.org/bplist-creator/download/bplist-creator-0.0.7.tgz", 43 | "integrity": "sha1-N98VNgkoJLh8QvlXsBNEEXNyrkU=", 44 | "requires": { 45 | "stream-buffers": "~2.2.0" 46 | } 47 | }, 48 | "bplist-parser": { 49 | "version": "0.1.1", 50 | "resolved": "https://registry.npm.taobao.org/bplist-parser/download/bplist-parser-0.1.1.tgz", 51 | "integrity": "sha1-1g1dzCDLptx+HymbNdPh+V2vuuY=", 52 | "requires": { 53 | "big-integer": "^1.6.7" 54 | } 55 | }, 56 | "brace-expansion": { 57 | "version": "1.1.11", 58 | "resolved": "http://registry.npm.taobao.org/brace-expansion/download/brace-expansion-1.1.11.tgz", 59 | "integrity": "sha1-PH/L9SnYcibz0vUrlm/1Jx60Qd0=", 60 | "requires": { 61 | "balanced-match": "^1.0.0", 62 | "concat-map": "0.0.1" 63 | } 64 | }, 65 | "concat-map": { 66 | "version": "0.0.1", 67 | "resolved": "http://registry.npm.taobao.org/concat-map/download/concat-map-0.0.1.tgz", 68 | "integrity": "sha1-2Klr13/Wjfd5OnMDajug1UBdR3s=" 69 | }, 70 | "cordova-android": { 71 | "version": "8.0.0", 72 | "resolved": "https://registry.npm.taobao.org/cordova-android/download/cordova-android-8.0.0.tgz", 73 | "integrity": "sha1-H74FqRRzHfYZUiuThdTRsYPDa9s=", 74 | "requires": { 75 | "android-versions": "^1.3.0", 76 | "cordova-common": "^3.1.0", 77 | "elementtree": "^0.1.7", 78 | "nopt": "^4.0.1", 79 | "properties-parser": "^0.3.1", 80 | "q": "^1.4.1", 81 | "shelljs": "^0.5.3" 82 | } 83 | }, 84 | "cordova-common": { 85 | "version": "3.2.0", 86 | "resolved": "https://registry.npm.taobao.org/cordova-common/download/cordova-common-3.2.0.tgz", 87 | "integrity": "sha1-mlySFfgX16CPvQFL+WPFROH+tnE=", 88 | "requires": { 89 | "ansi": "^0.3.1", 90 | "bplist-parser": "^0.1.0", 91 | "cross-spawn": "^6.0.5", 92 | "elementtree": "0.1.7", 93 | "endent": "^1.1.1", 94 | "fs-extra": "^8.0.0", 95 | "glob": "^7.1.2", 96 | "minimatch": "^3.0.0", 97 | "plist": "^3.0.1", 98 | "q": "^1.4.1", 99 | "strip-bom": "^3.0.0", 100 | "underscore": "^1.8.3", 101 | "which": "^1.3.0" 102 | } 103 | }, 104 | "cordova-ios": { 105 | "version": "5.0.1", 106 | "resolved": "https://registry.npm.taobao.org/cordova-ios/download/cordova-ios-5.0.1.tgz", 107 | "integrity": "sha1-juMCgMR/Kcw+hxYWepzjPLr53r0=", 108 | "requires": { 109 | "cordova-common": "^3.1.0", 110 | "ios-sim": "^8.0.1", 111 | "nopt": "^4.0.1", 112 | "plist": "^3.0.1", 113 | "q": "^1.5.1", 114 | "shelljs": "^0.5.3", 115 | "unorm": "^1.4.1", 116 | "xcode": "^2.0.0", 117 | "xml-escape": "^1.1.0" 118 | } 119 | }, 120 | "cordova-plugin-whitelist": { 121 | "version": "1.3.4", 122 | "resolved": "https://registry.npm.taobao.org/cordova-plugin-whitelist/download/cordova-plugin-whitelist-1.3.4.tgz", 123 | "integrity": "sha1-MZOFRcfD5941wgqwjCw6+gboo/k=", 124 | "dev": true 125 | }, 126 | "cross-spawn": { 127 | "version": "6.0.5", 128 | "resolved": "http://registry.npm.taobao.org/cross-spawn/download/cross-spawn-6.0.5.tgz", 129 | "integrity": "sha1-Sl7Hxk364iw6FBJNus3uhG2Ay8Q=", 130 | "requires": { 131 | "nice-try": "^1.0.4", 132 | "path-key": "^2.0.1", 133 | "semver": "^5.5.0", 134 | "shebang-command": "^1.2.0", 135 | "which": "^1.2.9" 136 | } 137 | }, 138 | "dedent": { 139 | "version": "0.7.0", 140 | "resolved": "http://registry.npm.taobao.org/dedent/download/dedent-0.7.0.tgz", 141 | "integrity": "sha1-JJXduvbrh0q7Dhvp3yLS5aVEMmw=" 142 | }, 143 | "deep-equal": { 144 | "version": "1.0.1", 145 | "resolved": "http://registry.npm.taobao.org/deep-equal/download/deep-equal-1.0.1.tgz", 146 | "integrity": "sha1-9dJgKStmDghO/0zbyfCK0yR0SLU=" 147 | }, 148 | "define-properties": { 149 | "version": "1.1.3", 150 | "resolved": "http://registry.npm.taobao.org/define-properties/download/define-properties-1.1.3.tgz", 151 | "integrity": "sha1-z4jabL7ib+bbcJT2HYcMvYTO6fE=", 152 | "requires": { 153 | "object-keys": "^1.0.12" 154 | } 155 | }, 156 | "defined": { 157 | "version": "1.0.0", 158 | "resolved": "http://registry.npm.taobao.org/defined/download/defined-1.0.0.tgz", 159 | "integrity": "sha1-yY2bzvdWdBiOEQlpFRGZ45sfppM=" 160 | }, 161 | "elementtree": { 162 | "version": "0.1.7", 163 | "resolved": "https://registry.npm.taobao.org/elementtree/download/elementtree-0.1.7.tgz", 164 | "integrity": "sha1-mskb5uUvtuYkTE5UpKw+2K6OKcA=", 165 | "requires": { 166 | "sax": "1.1.4" 167 | } 168 | }, 169 | "endent": { 170 | "version": "1.3.0", 171 | "resolved": "https://registry.npm.taobao.org/endent/download/endent-1.3.0.tgz", 172 | "integrity": "sha1-6oa1g9e3yv9cvuWtLHwyLrGQDHY=", 173 | "requires": { 174 | "dedent": "^0.7.0", 175 | "fast-json-parse": "^1.0.3", 176 | "objectorarray": "^1.0.3" 177 | } 178 | }, 179 | "es-abstract": { 180 | "version": "1.13.0", 181 | "resolved": "http://registry.npm.taobao.org/es-abstract/download/es-abstract-1.13.0.tgz?cache=0&other_urls=http%3A%2F%2Fregistry.npm.taobao.org%2Fes-abstract%2Fdownload%2Fes-abstract-1.13.0.tgz", 182 | "integrity": "sha1-rIYUX91QmdjdSVWMy6Lq+biOJOk=", 183 | "requires": { 184 | "es-to-primitive": "^1.2.0", 185 | "function-bind": "^1.1.1", 186 | "has": "^1.0.3", 187 | "is-callable": "^1.1.4", 188 | "is-regex": "^1.0.4", 189 | "object-keys": "^1.0.12" 190 | } 191 | }, 192 | "es-to-primitive": { 193 | "version": "1.2.0", 194 | "resolved": "http://registry.npm.taobao.org/es-to-primitive/download/es-to-primitive-1.2.0.tgz", 195 | "integrity": "sha1-7fckeAM0VujdqO8J4ArZZQcH83c=", 196 | "requires": { 197 | "is-callable": "^1.1.4", 198 | "is-date-object": "^1.0.1", 199 | "is-symbol": "^1.0.2" 200 | } 201 | }, 202 | "fast-json-parse": { 203 | "version": "1.0.3", 204 | "resolved": "http://registry.npm.taobao.org/fast-json-parse/download/fast-json-parse-1.0.3.tgz", 205 | "integrity": "sha1-Q+XGHuTvqSZWMwRrdw+2gqdXfE0=" 206 | }, 207 | "for-each": { 208 | "version": "0.3.3", 209 | "resolved": "https://registry.npm.taobao.org/for-each/download/for-each-0.3.3.tgz", 210 | "integrity": "sha1-abRH6IoKXTLD5whPPxcQA0shN24=", 211 | "requires": { 212 | "is-callable": "^1.1.3" 213 | } 214 | }, 215 | "fs-extra": { 216 | "version": "8.1.0", 217 | "resolved": "https://registry.npm.taobao.org/fs-extra/download/fs-extra-8.1.0.tgz?cache=0&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Ffs-extra%2Fdownload%2Ffs-extra-8.1.0.tgz", 218 | "integrity": "sha1-SdQ8RaiM2Wd2aMt74bRu/bjS4cA=", 219 | "requires": { 220 | "graceful-fs": "^4.2.0", 221 | "jsonfile": "^4.0.0", 222 | "universalify": "^0.1.0" 223 | } 224 | }, 225 | "fs.realpath": { 226 | "version": "1.0.0", 227 | "resolved": "http://registry.npm.taobao.org/fs.realpath/download/fs.realpath-1.0.0.tgz", 228 | "integrity": "sha1-FQStJSMVjKpA20onh8sBQRmU6k8=" 229 | }, 230 | "function-bind": { 231 | "version": "1.1.1", 232 | "resolved": "http://registry.npm.taobao.org/function-bind/download/function-bind-1.1.1.tgz", 233 | "integrity": "sha1-pWiZ0+o8m6uHS7l3O3xe3pL0iV0=" 234 | }, 235 | "glob": { 236 | "version": "7.1.4", 237 | "resolved": "https://registry.npm.taobao.org/glob/download/glob-7.1.4.tgz", 238 | "integrity": "sha1-qmCKL2xXetNX4a5aXCbZqNGWklU=", 239 | "requires": { 240 | "fs.realpath": "^1.0.0", 241 | "inflight": "^1.0.4", 242 | "inherits": "2", 243 | "minimatch": "^3.0.4", 244 | "once": "^1.3.0", 245 | "path-is-absolute": "^1.0.0" 246 | } 247 | }, 248 | "graceful-fs": { 249 | "version": "4.2.1", 250 | "resolved": "https://registry.npm.taobao.org/graceful-fs/download/graceful-fs-4.2.1.tgz?cache=0&sync_timestamp=1564898698078&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fgraceful-fs%2Fdownload%2Fgraceful-fs-4.2.1.tgz", 251 | "integrity": "sha1-HB8MNkiCyGj1v/ZRIUYygzahGx0=" 252 | }, 253 | "has": { 254 | "version": "1.0.3", 255 | "resolved": "http://registry.npm.taobao.org/has/download/has-1.0.3.tgz", 256 | "integrity": "sha1-ci18v8H2qoJB8W3YFOAR4fQeh5Y=", 257 | "requires": { 258 | "function-bind": "^1.1.1" 259 | } 260 | }, 261 | "has-symbols": { 262 | "version": "1.0.0", 263 | "resolved": "http://registry.npm.taobao.org/has-symbols/download/has-symbols-1.0.0.tgz", 264 | "integrity": "sha1-uhqPGvKg/DllD1yFA2dwQSIGO0Q=" 265 | }, 266 | "inflight": { 267 | "version": "1.0.6", 268 | "resolved": "http://registry.npm.taobao.org/inflight/download/inflight-1.0.6.tgz", 269 | "integrity": "sha1-Sb1jMdfQLQwJvJEKEHW6gWW1bfk=", 270 | "requires": { 271 | "once": "^1.3.0", 272 | "wrappy": "1" 273 | } 274 | }, 275 | "inherits": { 276 | "version": "2.0.4", 277 | "resolved": "https://registry.npm.taobao.org/inherits/download/inherits-2.0.4.tgz?cache=0&sync_timestamp=1560975547815&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Finherits%2Fdownload%2Finherits-2.0.4.tgz", 278 | "integrity": "sha1-D6LGT5MpF8NDOg3tVTY6rjdBa3w=" 279 | }, 280 | "ios-sim": { 281 | "version": "8.0.1", 282 | "resolved": "https://registry.npm.taobao.org/ios-sim/download/ios-sim-8.0.1.tgz", 283 | "integrity": "sha1-t0+8RmAal3P+6QQX11OWTAjg6Z0=", 284 | "requires": { 285 | "bplist-parser": "^0.0.6", 286 | "nopt": "1.0.9", 287 | "plist": "^3.0.1", 288 | "simctl": "^2" 289 | }, 290 | "dependencies": { 291 | "bplist-parser": { 292 | "version": "0.0.6", 293 | "resolved": "https://registry.npm.taobao.org/bplist-parser/download/bplist-parser-0.0.6.tgz", 294 | "integrity": "sha1-ONo0cYF9+dRKs4kuJ3B7u9daEbk=" 295 | }, 296 | "nopt": { 297 | "version": "1.0.9", 298 | "resolved": "http://registry.npm.taobao.org/nopt/download/nopt-1.0.9.tgz", 299 | "integrity": "sha1-O8DXy6e/sNWmdtvtfA6+SKT9RU4=", 300 | "requires": { 301 | "abbrev": "1" 302 | } 303 | } 304 | } 305 | }, 306 | "is-callable": { 307 | "version": "1.1.4", 308 | "resolved": "http://registry.npm.taobao.org/is-callable/download/is-callable-1.1.4.tgz", 309 | "integrity": "sha1-HhrfIZ4e62hNaR+dagX/DTCiTXU=" 310 | }, 311 | "is-date-object": { 312 | "version": "1.0.1", 313 | "resolved": "http://registry.npm.taobao.org/is-date-object/download/is-date-object-1.0.1.tgz", 314 | "integrity": "sha1-mqIOtq7rv/d/vTPnTKAbM1gdOhY=" 315 | }, 316 | "is-regex": { 317 | "version": "1.0.4", 318 | "resolved": "http://registry.npm.taobao.org/is-regex/download/is-regex-1.0.4.tgz", 319 | "integrity": "sha1-VRdIm1RwkbCTDglWVM7SXul+lJE=", 320 | "requires": { 321 | "has": "^1.0.1" 322 | } 323 | }, 324 | "is-symbol": { 325 | "version": "1.0.2", 326 | "resolved": "http://registry.npm.taobao.org/is-symbol/download/is-symbol-1.0.2.tgz", 327 | "integrity": "sha1-oFX2rlcZLK7jKeeoYBGLSXqVDzg=", 328 | "requires": { 329 | "has-symbols": "^1.0.0" 330 | } 331 | }, 332 | "isexe": { 333 | "version": "2.0.0", 334 | "resolved": "http://registry.npm.taobao.org/isexe/download/isexe-2.0.0.tgz", 335 | "integrity": "sha1-6PvzdNxVb/iUehDcsFctYz8s+hA=" 336 | }, 337 | "jsonfile": { 338 | "version": "4.0.0", 339 | "resolved": "http://registry.npm.taobao.org/jsonfile/download/jsonfile-4.0.0.tgz", 340 | "integrity": "sha1-h3Gq4HmbZAdrdmQPygWPnBDjPss=", 341 | "requires": { 342 | "graceful-fs": "^4.1.6" 343 | } 344 | }, 345 | "minimatch": { 346 | "version": "3.0.4", 347 | "resolved": "http://registry.npm.taobao.org/minimatch/download/minimatch-3.0.4.tgz", 348 | "integrity": "sha1-UWbihkV/AzBgZL5Ul+jbsMPTIIM=", 349 | "requires": { 350 | "brace-expansion": "^1.1.7" 351 | } 352 | }, 353 | "minimist": { 354 | "version": "1.2.5", 355 | "resolved": "https://registry.npmjs.org/minimist/-/minimist-1.2.5.tgz", 356 | "integrity": "sha512-FM9nNUYrRBAELZQT3xeZQ7fmMOBg6nWNmJKTcgsJeaLstP/UODVpGsr5OhXhhXg6f+qtJ8uiZ+PUxkDWcgIXLw==" 357 | }, 358 | "nice-try": { 359 | "version": "1.0.5", 360 | "resolved": "http://registry.npm.taobao.org/nice-try/download/nice-try-1.0.5.tgz", 361 | "integrity": "sha1-ozeKdpbOfSI+iPybdkvX7xCJ42Y=" 362 | }, 363 | "nopt": { 364 | "version": "4.0.1", 365 | "resolved": "http://registry.npm.taobao.org/nopt/download/nopt-4.0.1.tgz", 366 | "integrity": "sha1-0NRoWv1UFRk8jHUFYC0NF81kR00=", 367 | "requires": { 368 | "abbrev": "1", 369 | "osenv": "^0.1.4" 370 | } 371 | }, 372 | "object-inspect": { 373 | "version": "1.6.0", 374 | "resolved": "http://registry.npm.taobao.org/object-inspect/download/object-inspect-1.6.0.tgz", 375 | "integrity": "sha1-xwtsv3LydKq0w0wMgvUWe/gs8Vs=" 376 | }, 377 | "object-keys": { 378 | "version": "1.1.1", 379 | "resolved": "https://registry.npm.taobao.org/object-keys/download/object-keys-1.1.1.tgz", 380 | "integrity": "sha1-HEfyct8nfzsdrwYWd9nILiMixg4=" 381 | }, 382 | "objectorarray": { 383 | "version": "1.0.3", 384 | "resolved": "https://registry.npm.taobao.org/objectorarray/download/objectorarray-1.0.3.tgz", 385 | "integrity": "sha1-0qLekJfAakjX13Jk/XFAZRnnx3I=", 386 | "requires": { 387 | "tape": "^4.8.0" 388 | } 389 | }, 390 | "once": { 391 | "version": "1.4.0", 392 | "resolved": "http://registry.npm.taobao.org/once/download/once-1.4.0.tgz", 393 | "integrity": "sha1-WDsap3WWHUsROsF9nFC6753Xa9E=", 394 | "requires": { 395 | "wrappy": "1" 396 | } 397 | }, 398 | "os-homedir": { 399 | "version": "1.0.2", 400 | "resolved": "http://registry.npm.taobao.org/os-homedir/download/os-homedir-1.0.2.tgz", 401 | "integrity": "sha1-/7xJiDNuDoM94MFox+8VISGqf7M=" 402 | }, 403 | "os-tmpdir": { 404 | "version": "1.0.2", 405 | "resolved": "http://registry.npm.taobao.org/os-tmpdir/download/os-tmpdir-1.0.2.tgz", 406 | "integrity": "sha1-u+Z0BseaqFxc/sdm/lc0VV36EnQ=" 407 | }, 408 | "osenv": { 409 | "version": "0.1.5", 410 | "resolved": "http://registry.npm.taobao.org/osenv/download/osenv-0.1.5.tgz", 411 | "integrity": "sha1-hc36+uso6Gd/QW4odZK18/SepBA=", 412 | "requires": { 413 | "os-homedir": "^1.0.0", 414 | "os-tmpdir": "^1.0.0" 415 | } 416 | }, 417 | "path-is-absolute": { 418 | "version": "1.0.1", 419 | "resolved": "http://registry.npm.taobao.org/path-is-absolute/download/path-is-absolute-1.0.1.tgz", 420 | "integrity": "sha1-F0uSaHNVNP+8es5r9TpanhtcX18=" 421 | }, 422 | "path-key": { 423 | "version": "2.0.1", 424 | "resolved": "http://registry.npm.taobao.org/path-key/download/path-key-2.0.1.tgz", 425 | "integrity": "sha1-QRyttXTFoUDTpLGRDUDYDMn0C0A=" 426 | }, 427 | "path-parse": { 428 | "version": "1.0.6", 429 | "resolved": "http://registry.npm.taobao.org/path-parse/download/path-parse-1.0.6.tgz", 430 | "integrity": "sha1-1i27VnlAXXLEc37FhgDp3c8G0kw=" 431 | }, 432 | "plist": { 433 | "version": "3.0.1", 434 | "resolved": "http://registry.npm.taobao.org/plist/download/plist-3.0.1.tgz", 435 | "integrity": "sha1-qbkx0XwwTokS7wujvdYYK68uH4w=", 436 | "requires": { 437 | "base64-js": "^1.2.3", 438 | "xmlbuilder": "^9.0.7", 439 | "xmldom": "0.1.x" 440 | } 441 | }, 442 | "properties-parser": { 443 | "version": "0.3.1", 444 | "resolved": "https://registry.npm.taobao.org/properties-parser/download/properties-parser-0.3.1.tgz", 445 | "integrity": "sha1-ExbpU5/7/ZOEXjabIRAiq9R4dxo=", 446 | "requires": { 447 | "string.prototype.codepointat": "^0.2.0" 448 | } 449 | }, 450 | "q": { 451 | "version": "1.5.1", 452 | "resolved": "http://registry.npm.taobao.org/q/download/q-1.5.1.tgz", 453 | "integrity": "sha1-fjL3W0E4EpHQRhHxvxQQmsAGUdc=" 454 | }, 455 | "resolve": { 456 | "version": "1.11.1", 457 | "resolved": "https://registry.npm.taobao.org/resolve/download/resolve-1.11.1.tgz?cache=0&sync_timestamp=1564641434608&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fresolve%2Fdownload%2Fresolve-1.11.1.tgz", 458 | "integrity": "sha1-6hDYEQN2mC/vV434/DC5rDCgej4=", 459 | "requires": { 460 | "path-parse": "^1.0.6" 461 | } 462 | }, 463 | "resumer": { 464 | "version": "0.0.0", 465 | "resolved": "https://registry.npm.taobao.org/resumer/download/resumer-0.0.0.tgz", 466 | "integrity": "sha1-8ej0YeQGS6Oegq883CqMiT0HZ1k=", 467 | "requires": { 468 | "through": "~2.3.4" 469 | } 470 | }, 471 | "sax": { 472 | "version": "1.1.4", 473 | "resolved": "http://registry.npm.taobao.org/sax/download/sax-1.1.4.tgz", 474 | "integrity": "sha1-dLbTPJrh4AFRDxeakRaFiPGu2qk=" 475 | }, 476 | "semver": { 477 | "version": "5.7.0", 478 | "resolved": "https://registry.npm.taobao.org/semver/download/semver-5.7.0.tgz", 479 | "integrity": "sha1-eQp89v6lRZuslhELKbYEEtyP+Ws=" 480 | }, 481 | "shebang-command": { 482 | "version": "1.2.0", 483 | "resolved": "http://registry.npm.taobao.org/shebang-command/download/shebang-command-1.2.0.tgz", 484 | "integrity": "sha1-RKrGW2lbAzmJaMOfNj/uXer98eo=", 485 | "requires": { 486 | "shebang-regex": "^1.0.0" 487 | } 488 | }, 489 | "shebang-regex": { 490 | "version": "1.0.0", 491 | "resolved": "https://registry.npm.taobao.org/shebang-regex/download/shebang-regex-1.0.0.tgz", 492 | "integrity": "sha1-2kL0l0DAtC2yypcoVxyxkMmO/qM=" 493 | }, 494 | "shelljs": { 495 | "version": "0.5.3", 496 | "resolved": "http://registry.npm.taobao.org/shelljs/download/shelljs-0.5.3.tgz", 497 | "integrity": "sha1-xUmCuZbHbvDB5rWfvcWCX1txMRM=" 498 | }, 499 | "simctl": { 500 | "version": "2.0.0", 501 | "resolved": "https://registry.npm.taobao.org/simctl/download/simctl-2.0.0.tgz", 502 | "integrity": "sha1-4/HGkIc1lp4j4JIrDLEWGEPdDFk=", 503 | "requires": { 504 | "shelljs": "^0.2.6", 505 | "tail": "^0.4.0" 506 | }, 507 | "dependencies": { 508 | "shelljs": { 509 | "version": "0.2.6", 510 | "resolved": "http://registry.npm.taobao.org/shelljs/download/shelljs-0.2.6.tgz", 511 | "integrity": "sha1-kEktcv/MgVmXa6umL7D2iE8MM3g=" 512 | } 513 | } 514 | }, 515 | "simple-plist": { 516 | "version": "1.0.0", 517 | "resolved": "http://registry.npm.taobao.org/simple-plist/download/simple-plist-1.0.0.tgz", 518 | "integrity": "sha1-vtMIVjOyLzceER9F0VmhzPlLges=", 519 | "requires": { 520 | "bplist-creator": "0.0.7", 521 | "bplist-parser": "0.1.1", 522 | "plist": "^3.0.1" 523 | } 524 | }, 525 | "stream-buffers": { 526 | "version": "2.2.0", 527 | "resolved": "http://registry.npm.taobao.org/stream-buffers/download/stream-buffers-2.2.0.tgz", 528 | "integrity": "sha1-kdX1Ew0c75bc+n9yaUUYh0HQnuQ=" 529 | }, 530 | "string.prototype.codepointat": { 531 | "version": "0.2.1", 532 | "resolved": "https://registry.npm.taobao.org/string.prototype.codepointat/download/string.prototype.codepointat-0.2.1.tgz", 533 | "integrity": "sha1-AErUTIr8cnUnsQjNRitNlxzUabw=" 534 | }, 535 | "string.prototype.trim": { 536 | "version": "1.1.2", 537 | "resolved": "https://registry.npm.taobao.org/string.prototype.trim/download/string.prototype.trim-1.1.2.tgz", 538 | "integrity": "sha1-0E3iyJ4Tf019IG8Ia17S+ua+jOo=", 539 | "requires": { 540 | "define-properties": "^1.1.2", 541 | "es-abstract": "^1.5.0", 542 | "function-bind": "^1.0.2" 543 | } 544 | }, 545 | "strip-bom": { 546 | "version": "3.0.0", 547 | "resolved": "https://registry.npm.taobao.org/strip-bom/download/strip-bom-3.0.0.tgz", 548 | "integrity": "sha1-IzTBjpx1n3vdVv3vfprj1YjmjtM=" 549 | }, 550 | "tail": { 551 | "version": "0.4.0", 552 | "resolved": "https://registry.npm.taobao.org/tail/download/tail-0.4.0.tgz", 553 | "integrity": "sha1-0p3nJ1DMmdseBTr/E8NZ7PtxMAI=" 554 | }, 555 | "tape": { 556 | "version": "4.11.0", 557 | "resolved": "https://registry.npm.taobao.org/tape/download/tape-4.11.0.tgz?cache=0&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Ftape%2Fdownload%2Ftape-4.11.0.tgz", 558 | "integrity": "sha1-Y9QazNleRaI6h0RzBRxX/bxY7cE=", 559 | "requires": { 560 | "deep-equal": "~1.0.1", 561 | "defined": "~1.0.0", 562 | "for-each": "~0.3.3", 563 | "function-bind": "~1.1.1", 564 | "glob": "~7.1.4", 565 | "has": "~1.0.3", 566 | "inherits": "~2.0.4", 567 | "minimist": "~1.2.0", 568 | "object-inspect": "~1.6.0", 569 | "resolve": "~1.11.1", 570 | "resumer": "~0.0.0", 571 | "string.prototype.trim": "~1.1.2", 572 | "through": "~2.3.8" 573 | } 574 | }, 575 | "through": { 576 | "version": "2.3.8", 577 | "resolved": "http://registry.npm.taobao.org/through/download/through-2.3.8.tgz", 578 | "integrity": "sha1-DdTJ/6q8NXlgsbckEV1+Doai4fU=" 579 | }, 580 | "underscore": { 581 | "version": "1.9.1", 582 | "resolved": "http://registry.npm.taobao.org/underscore/download/underscore-1.9.1.tgz", 583 | "integrity": "sha1-BtzjSg5op7q8KbNluOdLiSUgOWE=" 584 | }, 585 | "universalify": { 586 | "version": "0.1.2", 587 | "resolved": "http://registry.npm.taobao.org/universalify/download/universalify-0.1.2.tgz", 588 | "integrity": "sha1-tkb2m+OULavOzJ1mOcgNwQXvqmY=" 589 | }, 590 | "unorm": { 591 | "version": "1.6.0", 592 | "resolved": "https://registry.npm.taobao.org/unorm/download/unorm-1.6.0.tgz", 593 | "integrity": "sha1-ApsolmH7pxTxqa9DnrUdmxbCBa8=" 594 | }, 595 | "uuid": { 596 | "version": "3.3.2", 597 | "resolved": "http://registry.npm.taobao.org/uuid/download/uuid-3.3.2.tgz", 598 | "integrity": "sha1-G0r0lV6zB3xQHCOHL8ZROBFYcTE=" 599 | }, 600 | "which": { 601 | "version": "1.3.1", 602 | "resolved": "http://registry.npm.taobao.org/which/download/which-1.3.1.tgz", 603 | "integrity": "sha1-pFBD1U9YBTFtqNYvn1CRjT2nCwo=", 604 | "requires": { 605 | "isexe": "^2.0.0" 606 | } 607 | }, 608 | "wrappy": { 609 | "version": "1.0.2", 610 | "resolved": "http://registry.npm.taobao.org/wrappy/download/wrappy-1.0.2.tgz", 611 | "integrity": "sha1-tSQ9jz7BqjXxNkYFvA0QNuMKtp8=" 612 | }, 613 | "xcode": { 614 | "version": "2.0.0", 615 | "resolved": "http://registry.npm.taobao.org/xcode/download/xcode-2.0.0.tgz", 616 | "integrity": "sha1-E08flMJvv+ipqqlyS/snckGdoaI=", 617 | "requires": { 618 | "simple-plist": "^1.0.0", 619 | "uuid": "^3.3.2" 620 | } 621 | }, 622 | "xml-escape": { 623 | "version": "1.1.0", 624 | "resolved": "https://registry.npm.taobao.org/xml-escape/download/xml-escape-1.1.0.tgz", 625 | "integrity": "sha1-OQTBQ/qOs6ADDsZG0pAqLxtwbEQ=" 626 | }, 627 | "xmlbuilder": { 628 | "version": "9.0.7", 629 | "resolved": "https://registry.npm.taobao.org/xmlbuilder/download/xmlbuilder-9.0.7.tgz", 630 | "integrity": "sha1-Ey7mPS7FVlxVfiD0wi35rKaGsQ0=" 631 | }, 632 | "xmldom": { 633 | "version": "0.1.27", 634 | "resolved": "http://registry.npm.taobao.org/xmldom/download/xmldom-0.1.27.tgz", 635 | "integrity": "sha1-1QH5ezvbQDr4757MIFcxh6rawOk=" 636 | } 637 | } 638 | } 639 | -------------------------------------------------------------------------------- /src-cordova/package.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "org.cordova.quasar.app", 3 | "displayName": "今日热榜", 4 | "version": "1.7.3", 5 | "description": "A sample Apache Cordova application that responds to the deviceready event.", 6 | "main": "index.js", 7 | "scripts": { 8 | "test": "echo \"Error: no test specified\" && exit 1" 9 | }, 10 | "keywords": [ 11 | "ecosystem:cordova" 12 | ], 13 | "author": "Apache Cordova Team", 14 | "license": "Apache-2.0", 15 | "dependencies": { 16 | "cordova-android": "^8.0.0", 17 | "cordova-ios": "^5.0.1" 18 | }, 19 | "devDependencies": { 20 | "cordova-plugin-whitelist": "^1.3.4" 21 | }, 22 | "cordova": { 23 | "plugins": { 24 | "cordova-plugin-whitelist": {} 25 | }, 26 | "platforms": [ 27 | "android", 28 | "ios" 29 | ] 30 | } 31 | } 32 | -------------------------------------------------------------------------------- /src-electron/icons/Square107x107Logo.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ttop5/to-be-slack/e6aa890c588af11e2e9ce89f3d859dde413d3774/src-electron/icons/Square107x107Logo.png -------------------------------------------------------------------------------- /src-electron/icons/Square142x142Logo.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ttop5/to-be-slack/e6aa890c588af11e2e9ce89f3d859dde413d3774/src-electron/icons/Square142x142Logo.png -------------------------------------------------------------------------------- /src-electron/icons/Square150x150Logo.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ttop5/to-be-slack/e6aa890c588af11e2e9ce89f3d859dde413d3774/src-electron/icons/Square150x150Logo.png -------------------------------------------------------------------------------- /src-electron/icons/Square284x284Logo.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ttop5/to-be-slack/e6aa890c588af11e2e9ce89f3d859dde413d3774/src-electron/icons/Square284x284Logo.png -------------------------------------------------------------------------------- /src-electron/icons/Square30x30Logo.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ttop5/to-be-slack/e6aa890c588af11e2e9ce89f3d859dde413d3774/src-electron/icons/Square30x30Logo.png -------------------------------------------------------------------------------- /src-electron/icons/Square310x310Logo.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ttop5/to-be-slack/e6aa890c588af11e2e9ce89f3d859dde413d3774/src-electron/icons/Square310x310Logo.png -------------------------------------------------------------------------------- /src-electron/icons/Square44x44Logo.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ttop5/to-be-slack/e6aa890c588af11e2e9ce89f3d859dde413d3774/src-electron/icons/Square44x44Logo.png -------------------------------------------------------------------------------- /src-electron/icons/Square71x71Logo.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ttop5/to-be-slack/e6aa890c588af11e2e9ce89f3d859dde413d3774/src-electron/icons/Square71x71Logo.png -------------------------------------------------------------------------------- /src-electron/icons/Square89x89Logo.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ttop5/to-be-slack/e6aa890c588af11e2e9ce89f3d859dde413d3774/src-electron/icons/Square89x89Logo.png -------------------------------------------------------------------------------- /src-electron/icons/StoreLogo.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ttop5/to-be-slack/e6aa890c588af11e2e9ce89f3d859dde413d3774/src-electron/icons/StoreLogo.png -------------------------------------------------------------------------------- /src-electron/icons/icon.icns: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ttop5/to-be-slack/e6aa890c588af11e2e9ce89f3d859dde413d3774/src-electron/icons/icon.icns -------------------------------------------------------------------------------- /src-electron/icons/icon.ico: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ttop5/to-be-slack/e6aa890c588af11e2e9ce89f3d859dde413d3774/src-electron/icons/icon.ico -------------------------------------------------------------------------------- /src-electron/icons/icon.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ttop5/to-be-slack/e6aa890c588af11e2e9ce89f3d859dde413d3774/src-electron/icons/icon.png -------------------------------------------------------------------------------- /src-electron/icons/linux-128x128.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ttop5/to-be-slack/e6aa890c588af11e2e9ce89f3d859dde413d3774/src-electron/icons/linux-128x128.png -------------------------------------------------------------------------------- /src-electron/icons/linux-16x16.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ttop5/to-be-slack/e6aa890c588af11e2e9ce89f3d859dde413d3774/src-electron/icons/linux-16x16.png -------------------------------------------------------------------------------- /src-electron/icons/linux-24x24.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ttop5/to-be-slack/e6aa890c588af11e2e9ce89f3d859dde413d3774/src-electron/icons/linux-24x24.png -------------------------------------------------------------------------------- /src-electron/icons/linux-32x32.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ttop5/to-be-slack/e6aa890c588af11e2e9ce89f3d859dde413d3774/src-electron/icons/linux-32x32.png -------------------------------------------------------------------------------- /src-electron/icons/linux-48x48.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ttop5/to-be-slack/e6aa890c588af11e2e9ce89f3d859dde413d3774/src-electron/icons/linux-48x48.png -------------------------------------------------------------------------------- /src-electron/icons/linux-512x512.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ttop5/to-be-slack/e6aa890c588af11e2e9ce89f3d859dde413d3774/src-electron/icons/linux-512x512.png -------------------------------------------------------------------------------- /src-electron/icons/linux-64x64.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ttop5/to-be-slack/e6aa890c588af11e2e9ce89f3d859dde413d3774/src-electron/icons/linux-64x64.png -------------------------------------------------------------------------------- /src-electron/icons/linux-96x96.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ttop5/to-be-slack/e6aa890c588af11e2e9ce89f3d859dde413d3774/src-electron/icons/linux-96x96.png -------------------------------------------------------------------------------- /src-electron/main-process/electron-main.dev.js: -------------------------------------------------------------------------------- 1 | /** 2 | * This file is used specifically and only for development. It installs 3 | * `electron-debug` & `vue-devtools`. There shouldn't be any need to 4 | * modify this file, but it can be used to extend your development 5 | * environment. 6 | */ 7 | 8 | // Install `electron-debug` with `devtron` 9 | require('electron-debug')({ showDevTools: true }) 10 | 11 | // Install `vue-devtools` 12 | require('electron').app.on('ready', () => { 13 | let installExtension = require('electron-devtools-installer') 14 | installExtension.default(installExtension.VUEJS_DEVTOOLS) 15 | .then(() => {}) 16 | .catch(err => { 17 | console.log('Unable to install `vue-devtools`: \n', err) 18 | }) 19 | }) 20 | 21 | // Require `main` process to boot app 22 | require('./electron-main') 23 | -------------------------------------------------------------------------------- /src-electron/main-process/electron-main.js: -------------------------------------------------------------------------------- 1 | import { app, BrowserWindow } from 'electron' 2 | 3 | /** 4 | * Set `__statics` path to static files in production; 5 | * The reason we are setting it here is that the path needs to be evaluated at runtime 6 | */ 7 | if (process.env.PROD) { 8 | global.__statics = require('path').join(__dirname, 'statics').replace(/\\/g, '\\\\') 9 | } 10 | 11 | let mainWindow 12 | 13 | function createWindow () { 14 | /** 15 | * Initial window options 16 | */ 17 | mainWindow = new BrowserWindow({ 18 | width: 1000, 19 | height: 600, 20 | useContentSize: true, 21 | webPreferences: { 22 | nodeIntegration: true 23 | } 24 | }) 25 | 26 | mainWindow.loadURL(process.env.APP_URL) 27 | 28 | mainWindow.on('closed', () => { 29 | mainWindow = null 30 | }) 31 | } 32 | 33 | app.on('ready', createWindow) 34 | 35 | app.on('window-all-closed', () => { 36 | if (process.platform !== 'darwin') { 37 | app.quit() 38 | } 39 | }) 40 | 41 | app.on('activate', () => { 42 | if (mainWindow === null) { 43 | createWindow() 44 | } 45 | }) 46 | -------------------------------------------------------------------------------- /src-extension/background.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | -------------------------------------------------------------------------------- /src-extension/manifest.json: -------------------------------------------------------------------------------- 1 | { 2 | "manifest_version": 2, 3 | "name": "今日热榜", 4 | "version": "1.7.3", 5 | "description": "摸鱼愉快", 6 | "icons": 7 | { 8 | "16": "statics/icons/icon-128x128.png", 9 | "48": "statics/icons/icon-128x128.png", 10 | "128": "statics/icons/icon-128x128.png" 11 | }, 12 | "browser_action": 13 | { 14 | "default_icon": "statics/icons/icon-128x128.png", 15 | "default_title": "今日热榜", 16 | "default_popup": "background.html" 17 | }, 18 | "homepage_url": "https://github.com/ttop5/to-be-slack" 19 | } 20 | -------------------------------------------------------------------------------- /src-pwa/custom-service-worker.js: -------------------------------------------------------------------------------- 1 | /* 2 | * This file (which will be your service worker) 3 | * is picked up by the build system ONLY if 4 | * quasar.conf > pwa > workboxPluginMode is set to "InjectManifest" 5 | */ 6 | -------------------------------------------------------------------------------- /src-pwa/register-service-worker.js: -------------------------------------------------------------------------------- 1 | import { register } from 'register-service-worker'; 2 | 3 | // The ready(), registered(), cached(), updatefound() and updated() 4 | // events passes a ServiceWorkerRegistration instance in their arguments. 5 | // ServiceWorkerRegistration: https://developer.mozilla.org/en-US/docs/Web/API/ServiceWorkerRegistration 6 | 7 | register(process.env.SERVICE_WORKER_FILE, { 8 | // The registrationOptions object will be passed as the second argument 9 | // to ServiceWorkerContainer.register() 10 | // https://developer.mozilla.org/en-US/docs/Web/API/ServiceWorkerContainer/register#Parameter 11 | 12 | // registrationOptions: { scope: './' }, 13 | 14 | ready() { 15 | console.log('App is being served from cache by a service worker.'); 16 | }, 17 | 18 | registered() { 19 | console.log('Service worker has been registered.'); 20 | }, 21 | 22 | cached() { 23 | console.log('Content has been cached for offline use.'); 24 | }, 25 | 26 | updatefound() { 27 | console.log('New content is downloading.'); 28 | }, 29 | 30 | updated() { 31 | console.log('New content is available; please refresh.'); 32 | }, 33 | 34 | offline() { 35 | console.log('No internet connection found. App is running in offline mode.'); 36 | }, 37 | 38 | error(err) { 39 | console.error('Error during service worker registration:', err); 40 | }, 41 | }); 42 | -------------------------------------------------------------------------------- /src/App.vue: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 12 | 13 | 15 | -------------------------------------------------------------------------------- /src/assets/sad.svg: -------------------------------------------------------------------------------- 1 | 2 | -------------------------------------------------------------------------------- /src/boot/axios.js: -------------------------------------------------------------------------------- 1 | import axios from 'axios'; 2 | 3 | const axiosInstance = axios.create({ 4 | baseURL: 'https://www.tophub.fun:8888', 5 | }); 6 | 7 | export default ({ Vue }) => { 8 | Vue.prototype.$axios = axiosInstance; 9 | }; 10 | 11 | export { axiosInstance }; 12 | -------------------------------------------------------------------------------- /src/components/.gitkeep: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ttop5/to-be-slack/e6aa890c588af11e2e9ce89f3d859dde413d3774/src/components/.gitkeep -------------------------------------------------------------------------------- /src/css/app.styl: -------------------------------------------------------------------------------- 1 | // app global css 2 | .q-field--filled .q-field__control 3 | background unset 4 | -------------------------------------------------------------------------------- /src/css/quasar.variables.styl: -------------------------------------------------------------------------------- 1 | // Quasar Stylus Variables 2 | // -------------------------------------------------- 3 | // To customize the look and feel of this app, you can override 4 | // the Stylus variables found in Quasar's source Stylus files. 5 | 6 | // Check documentation for full list of Quasar variables 7 | 8 | // It's highly recommended to change the default colors 9 | // to match your app's branding. 10 | // Tip: Use the "Theme Builder" on Quasar's documentation website. 11 | 12 | $primary = #027BE3 13 | $secondary = #26A69A 14 | $accent = #9C27B0 15 | 16 | $positive = #21BA45 17 | $negative = #C10015 18 | $info = #31CCEC 19 | $warning = #F2C037 20 | -------------------------------------------------------------------------------- /src/index.template.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | <%= htmlWebpackPlugin.options.productName %> 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | 17 | 18 | 27 | 28 | 29 | 30 | 31 | 32 | 33 | -------------------------------------------------------------------------------- /src/layouts/MyLayout.vue: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 12 | 13 | 14 | {{ typeListObj[$route.query.id] }} 15 | 16 | 17 | 26 | 27 | 28 | 29 | {{ item.title }} 30 | 31 | 32 | 33 | 34 | 35 | 36 | 37 | 41 | 47 | 48 | 49 | 50 | 菜单编辑 51 | 52 | 53 | 54 | 55 | 56 | 恢复默认 57 | 58 | 59 | 60 | 61 | 62 | 73 | {{ item.name }} 74 | 75 | 76 | 77 | 78 | 79 | 80 | 81 | 82 | 83 | 84 | 85 | 86 | 87 | 88 | 89 | 90 | 219 | 220 | 230 | -------------------------------------------------------------------------------- /src/pages/Error404.vue: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 8 | 9 | Sorry, nothing here...(404) 10 | Go back 15 | 16 | 17 | 18 | 23 | 24 | 26 | -------------------------------------------------------------------------------- /src/pages/Index.vue: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 22 | 23 | {{ item.Title }} 24 | {{ item.Desc }} 25 | 33 | 34 | 35 | 36 | 37 | 38 | 39 | 84 | 85 | 94 | -------------------------------------------------------------------------------- /src/router/index.js: -------------------------------------------------------------------------------- 1 | import Vue from 'vue'; 2 | import VueRouter from 'vue-router'; 3 | 4 | import routes from './routes'; 5 | 6 | Vue.use(VueRouter); 7 | 8 | /* 9 | * If not building with SSR mode, you can 10 | * directly export the Router instantiation 11 | */ 12 | 13 | export default function (/* { store, ssrContext } */) { 14 | const Router = new VueRouter({ 15 | scrollBehavior: () => ({ x: 0, y: 0 }), 16 | routes, 17 | 18 | // Leave these as is and change from quasar.conf.js instead! 19 | // quasar.conf.js -> build -> vueRouterMode 20 | // quasar.conf.js -> build -> publicPath 21 | mode: process.env.VUE_ROUTER_MODE, 22 | base: process.env.VUE_ROUTER_BASE, 23 | }); 24 | 25 | Router.beforeEach((to, from, next) => { 26 | if (to.fullPath === '/') { 27 | const id = localStorage.getItem('slackActiveTab') || 1; 28 | next(`/?id=${id}`); 29 | } else { 30 | next(); 31 | } 32 | }); 33 | 34 | return Router; 35 | } 36 | -------------------------------------------------------------------------------- /src/router/routes.js: -------------------------------------------------------------------------------- 1 | 2 | const routes = [ 3 | { 4 | path: '/', 5 | component: () => import('layouts/MyLayout.vue'), 6 | children: [ 7 | { path: '', component: () => import('pages/Index.vue') }, 8 | ], 9 | }, 10 | ]; 11 | 12 | // Always leave this as last one 13 | if (process.env.MODE !== 'ssr') { 14 | routes.push({ 15 | path: '*', 16 | component: () => import('pages/Error404.vue'), 17 | }); 18 | } 19 | 20 | export default routes; 21 | -------------------------------------------------------------------------------- /src/statics/app-logo-128x128.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ttop5/to-be-slack/e6aa890c588af11e2e9ce89f3d859dde413d3774/src/statics/app-logo-128x128.png -------------------------------------------------------------------------------- /src/statics/icons/apple-icon-120x120.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ttop5/to-be-slack/e6aa890c588af11e2e9ce89f3d859dde413d3774/src/statics/icons/apple-icon-120x120.png -------------------------------------------------------------------------------- /src/statics/icons/apple-icon-152x152.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ttop5/to-be-slack/e6aa890c588af11e2e9ce89f3d859dde413d3774/src/statics/icons/apple-icon-152x152.png -------------------------------------------------------------------------------- /src/statics/icons/apple-icon-167x167.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ttop5/to-be-slack/e6aa890c588af11e2e9ce89f3d859dde413d3774/src/statics/icons/apple-icon-167x167.png -------------------------------------------------------------------------------- /src/statics/icons/apple-icon-180x180.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ttop5/to-be-slack/e6aa890c588af11e2e9ce89f3d859dde413d3774/src/statics/icons/apple-icon-180x180.png -------------------------------------------------------------------------------- /src/statics/icons/favicon-16x16.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ttop5/to-be-slack/e6aa890c588af11e2e9ce89f3d859dde413d3774/src/statics/icons/favicon-16x16.png -------------------------------------------------------------------------------- /src/statics/icons/favicon-32x32.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ttop5/to-be-slack/e6aa890c588af11e2e9ce89f3d859dde413d3774/src/statics/icons/favicon-32x32.png -------------------------------------------------------------------------------- /src/statics/icons/favicon-96x96.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ttop5/to-be-slack/e6aa890c588af11e2e9ce89f3d859dde413d3774/src/statics/icons/favicon-96x96.png -------------------------------------------------------------------------------- /src/statics/icons/favicon.ico: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ttop5/to-be-slack/e6aa890c588af11e2e9ce89f3d859dde413d3774/src/statics/icons/favicon.ico -------------------------------------------------------------------------------- /src/statics/icons/icon-128x128.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ttop5/to-be-slack/e6aa890c588af11e2e9ce89f3d859dde413d3774/src/statics/icons/icon-128x128.png -------------------------------------------------------------------------------- /src/statics/icons/icon-192x192.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ttop5/to-be-slack/e6aa890c588af11e2e9ce89f3d859dde413d3774/src/statics/icons/icon-192x192.png -------------------------------------------------------------------------------- /src/statics/icons/icon-256x256.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ttop5/to-be-slack/e6aa890c588af11e2e9ce89f3d859dde413d3774/src/statics/icons/icon-256x256.png -------------------------------------------------------------------------------- /src/statics/icons/icon-384x384.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ttop5/to-be-slack/e6aa890c588af11e2e9ce89f3d859dde413d3774/src/statics/icons/icon-384x384.png -------------------------------------------------------------------------------- /src/statics/icons/icon-512x512.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ttop5/to-be-slack/e6aa890c588af11e2e9ce89f3d859dde413d3774/src/statics/icons/icon-512x512.png -------------------------------------------------------------------------------- /src/statics/icons/ms-icon-144x144.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ttop5/to-be-slack/e6aa890c588af11e2e9ce89f3d859dde413d3774/src/statics/icons/ms-icon-144x144.png -------------------------------------------------------------------------------- /src/statics/icons/safari-pinned-tab.svg: -------------------------------------------------------------------------------- 1 | --------------------------------------------------------------------------------
4 | 8 |
Sorry, nothing here...(404)