/
package.json
122 lines (122 loc) · 13.8 KB
/
package.json
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
{
"name": "talkie",
"private": true,
"version": "3.1.0",
"description": "Text-to-speech (TTS) browser extension button.",
"scripts": {
"clean": "rimraf package/ && rimraf dist/ && rimraf web-ext-artifacts/ && rimraf lib/ && rimraf _locales/*/*.json~ _locales/*/messages.json _locales/*/messages.premium.json",
"build": "npm run --silent messages:refresh && npm run --silent build:webextension-polyfill && rollup --config rollup.config.background.js && rollup --config rollup.config.popup.js && rollup --config rollup.config.options.js && rollup --config rollup.config.stay-alive.js && rollup --config rollup.config.extension-translator.js && npm run --silent build:chrome:free && npm run --silent build:webextension:free && npm run --silent build:chrome:premium && npm run --silent build:webextension:premium",
"build:webextension-polyfill": "mkdirp lib/ && cp node_modules/webextension-polyfill/dist/browser-polyfill.js node_modules/webextension-polyfill/dist/browser-polyfill.js.map lib/",
"build:chrome:free": "mkdirp package/chrome/ && rsync -a --files-from extension-files.txt . package/chrome/ && npm run --silent build:chrome:free:patch",
"build:chrome:free:patch": "npm run --silent build:patch:chrome:manifest -- package/chrome/manifest.json",
"build:chrome:premium": "mkdirp package/chrome-premium/ && npm run --silent build:patch:premium:filelist && rsync -a --files-from extension-files.premium.txt . package/chrome-premium/ && rename --force --delete '.premium' --glob 'package/chrome-premium/_locales/*/messages.premium.json' && npm run --silent build:chrome:premium:patch",
"build:chrome:premium:patch": "npm run --silent build:patch:chrome:manifest -- package/chrome-premium/manifest.json && npm run --silent build:patch:premium:manifest -- package/chrome-premium/manifest.json",
"build:webextension:free": "mkdirp package/webextension/ && rsync -a --files-from extension-files.txt . package/webextension/ && npm run --silent build:webextension:free:patch -- package/webextension/manifest.json",
"build:webextension:free:patch": "npm run --silent build:patch:webextension:manifest -- ",
"build:webextension:premium": "mkdirp package/webextension-premium/ && npm run --silent build:patch:premium:filelist && rsync -a --files-from extension-files.premium.txt . package/webextension-premium/ && rename --force --delete '.premium' --glob 'package/webextension-premium/_locales/*/messages.premium.json' && npm run --silent build:webextension:premium:patch",
"build:webextension:premium:patch": "npm run --silent build:webextension:free:patch -- package/webextension-premium/manifest.json && npm run --silent build:patch:premium:manifest -- package/webextension-premium/manifest.json",
"build:patch:chrome:manifest": "json -Ie \"this.version_name=this.version_name.replace(/ (Free|Premium) /, ' \\$1 Chrome Extension '); ['open-website-main', 'open-website-store-free', 'open-website-store-premium', 'open-website-donate'].forEach((command) => delete this.commands[command].suggested_key); delete this.applications;\" -f",
"build:patch:webextension:manifest": "json -Ie \"this.version_name=this.version_name.replace(/ (Free|Premium) /, ' \\$1 WebExtension '); delete this.commands['read-clipboard'];\" -f",
"build:patch:premium:filelist": "sed -e 's/messages\\.json$/messages.premium.json/' -e '/^[^.]/ s_/free/_/premium/_' extension-files.txt > extension-files.premium.txt",
"build:patch:premium:manifest": "json -Ie \"this.version_name=this.version_name.replace(' Free ', ' Premium '); Object.keys(this.browser_action.default_icon).forEach((icon) => this.browser_action.default_icon[icon] = this.browser_action.default_icon[icon].replace('/free/', '/premium/')); Object.keys(this.browser_action.default_icon).forEach((icon) => this.icons[icon] = this.icons[icon].replace('/free/', '/premium/'));\" -f",
"rebuild": "npm run --silent clean && npm run --silent build",
"watch": "concurrently --prefix-colors cyan --kill-others --kill-others-on-fail --prefix '{index} {name} {time}' --names 'watch:background,watch:popup,watch:options,watch:stay-alive,watch:chrome:free,watch:chrome:premium,watch:webextension:free,watch:webextension:premium' 'npm run --silent watch:background' 'npm run --silent watch:popup' 'npm run --silent watch:options' 'npm run --silent watch:stay-alive' 'npm run --silent watch:chrome:free' 'npm run --silent watch:chrome:premium' 'npm run --silent watch:webextension:free' 'npm run --silent watch:webextension:premium'",
"watch:source": "concurrently --prefix-colors cyan --kill-others --kill-others-on-fail --prefix '{index} {name} {time}' --names 'watch:background,watch:popup,watch:options,watch:stay-alive' 'npm run --silent watch:background' 'npm run --silent watch:popup' 'npm run --silent watch:options' 'npm run --silent watch:stay-alive'",
"watch:tools": "concurrently --prefix-colors cyan --kill-others --kill-others-on-fail --prefix '{index} {name} {time}' --names 'watch:extension-translator' 'npm run --silent watch:extension-translator'",
"watch:background": "rollup --watch --config rollup.config.background.js",
"watch:popup": "rollup --watch --config rollup.config.popup.js",
"watch:options": "rollup --watch --config rollup.config.options.js",
"watch:stay-alive": "rollup --watch --config rollup.config.stay-alive.js",
"watch:extension-translator": "rollup --watch --config rollup.config.extension-translator.js",
"watch:chrome:free": "chokidar --silent 'dist/**/*.js' --command 'npm run --silent build:chrome:free'",
"watch:chrome:premium": "chokidar --silent 'dist/**/*.js' --command 'npm run --silent build:chrome:premium'",
"watch:webextension:free": "chokidar --silent 'dist/**/*.js' --command 'npm run --silent build:webextension:free'",
"watch:webextension:premium": "chokidar --silent 'dist/**/*.js' --command 'npm run --silent build:webextension:premium'",
"run:chrome:free": "mkdirp package/profiles/chrome/ && google-chrome --no-first-run --enable-logging=stderr --v=0 --enable-extension-activity-logging --error-console --user-data-dir=package/profiles/chrome/ --load-extension=package/chrome/",
"run:chrome:premium": "mkdirp package/profiles/chrome-premium/ && google-chrome --no-first-run --enable-logging=stderr --v=0 --enable-extension-activity-logging --error-console --user-data-dir=package/profiles/chrome-premium/ --load-extension=package/chrome-premium/",
"run:firefox:free": "web-ext --source-dir=package/webextension/ run --browser-console --start-url 'https://www.wikipedia.org/'",
"run:firefox:premium": "web-ext --source-dir=package/webextension-premium/ run --browser-console --start-url 'https://www.wikipedia.org/'",
"prepackage": "npm run --silent rebuild && npm run --silent test && npm run --silent messages:count",
"package": "npm run --silent package:chrome:free && npm run --silent package:webextension:free && npm run --silent package:chrome:premium && npm run --silent package:webextension:premium",
"package:chrome:free": "rimraf web-ext-artifacts/ && web-ext --source-dir=package/chrome/ build --ignore-files ./resources/style/options.css ./resources/style/shared.css && mv \"web-ext-artifacts/talkie-${npm_package_version}.zip\" \"talkie-joelpurra.com-${npm_package_version}-chrome-free.zip\"",
"package:chrome:premium": "rimraf web-ext-artifacts/ && web-ext --source-dir=package/chrome-premium/ build --ignore-files ./resources/style/options.css ./resources/style/shared.css && mv \"web-ext-artifacts/talkie_premium-${npm_package_version}.zip\" \"talkie-joelpurra.com-${npm_package_version}-chrome-premium.zip\"",
"package:webextension:free": "rimraf web-ext-artifacts/ && web-ext --source-dir=package/webextension/ build --ignore-files ./resources/style/options.css ./resources/style/shared.css && mv \"web-ext-artifacts/talkie-${npm_package_version}.zip\" \"talkie-joelpurra.com-${npm_package_version}-webextension-free.zip\"",
"package:webextension:premium": "rimraf web-ext-artifacts/ && web-ext --source-dir=package/webextension-premium/ build --ignore-files ./resources/style/options.css ./resources/style/shared.css && mv \"web-ext-artifacts/talkie_premium-${npm_package_version}.zip\" \"talkie-joelpurra.com-${npm_package_version}-webextension-premium.zip\"",
"version:get": "git rev-parse --abbrev-ref HEAD | sed -n -e '/release/ s_release/v_v_ p'",
"version:update": "export TALKIE_VERSION=$(npm run --silent version:get | sed -e 's/^v//') && git diff-index --quiet HEAD -- && npm run --silent version:update:file -- manifest.json && npm run --silent version:update:file:free -- manifest.json && npm run --silent version:update:file -- package.json && git add manifest.json package.json && git commit -m \"${TALKIE_VERSION}\"",
"version:update:file": "json -Ie \"this.version='${TALKIE_VERSION}'\" -f",
"version:update:file:free": "json -Ie \"this.version_name='v' + this.version + ' Free (' + new Date().toISOString().substring(0,10) + ')'\" -f",
"test": "npm run --silent lint",
"lint": "npm run --silent eslint && npm run --silent web-ext:lint",
"eslint": "eslint ./src",
"eslint:fix": "eslint --fix ./src",
"web-ext:lint": "npm run --silent web-ext:lint:chrome:free && npm run --silent web-ext:lint:webextension:free && npm run --silent web-ext:lint:chrome:premium && npm run --silent web-ext:lint:webextension:premium",
"web-ext:lint:chrome:free": "echo web-ext linting package/chrome/ && web-ext --source-dir=package/chrome/ lint --warnings-as-errors --ignore-files ./resources/style/options.css ./resources/style/shared.css",
"web-ext:lint:chrome:premium": "echo web-ext linting package/chrome-premium/ && web-ext --source-dir=package/chrome-premium/ lint --warnings-as-errors --ignore-files ./resources/style/options.css ./resources/style/shared.css",
"web-ext:lint:webextension:free": "echo web-ext linting package/webextension/ && web-ext --source-dir=package/webextension/ lint --warnings-as-errors --ignore-files ./resources/style/options.css ./resources/style/shared.css",
"web-ext:lint:webextension:premium": "echo web-ext linting package/webextension-premium/ && web-ext --source-dir=package/webextension-premium/ lint --warnings-as-errors --ignore-files ./resources/style/options.css ./resources/style/shared.css",
"chromestore": "npm run --silent chromestore:free && npm run --silent chromestore:premium",
"chromestore:free": "export WEBSTORE_TOKEN=$(chrome-webstore-manager refresh_token --client_id \"$CHROME_CLIENT_ID\" --client_secret \"$CHROME_CLIENT_SECRET\" --refresh_token \"$CHROME_REFRESH_TOKEN\") && npm run chromestore:free:update && npm run chromestore:free:publish",
"chromestore:free:update": "chrome-webstore-manager update enfbcfmmdpdminapkflljhbfeejjhjjk \"talkie-joelpurra.com-${npm_package_version}-chrome-free.zip\"",
"chromestore:free:publish": "chrome-webstore-manager publish enfbcfmmdpdminapkflljhbfeejjhjjk",
"chromestore:premium": "export WEBSTORE_TOKEN=$(chrome-webstore-manager refresh_token --client_id \"$CHROME_CLIENT_ID\" --client_secret \"$CHROME_CLIENT_SECRET\" --refresh_token \"$CHROME_REFRESH_TOKEN\") && npm run chromestore:premium:update && npm run chromestore:premium:publish",
"chromestore:premium:update": "chrome-webstore-manager update madmpgibncancdmkjflnifcdakndkngo \"talkie-joelpurra.com-${npm_package_version}-chrome-premium.zip\"",
"chromestore:premium:publish": "chrome-webstore-manager publish madmpgibncancdmkjflnifcdakndkngo",
"messages:translate": "npm run --silent messages:download && npm run --silent messages:refresh && npm run --silent messages:count",
"messages:download": "npm run --silent messages:sort && node ./dist/extension-translator.js . en base.json automatic.json && npm run --silent messages:sort",
"messages:refresh": "npm run --silent messages:sort && ./tools/translations/merge.sh && npm run --silent messages:sort && npm run --silent messages:override:refresh",
"messages:sort": "for MESSAGES in $(find ./_locales -name '*.json'); do jq --sort-keys '.' \"$MESSAGES\" > \"${MESSAGES}~\"; mv \"${MESSAGES}~\" \"$MESSAGES\"; done",
"messages:override:refresh": "for MESSAGES in $(find ./_locales \\( -name 'override.json' -or -name 'manual.json' \\)); do jq --slurp --sort-keys '.[0] as $en | .[1] | with_entries(.key as $key | .value |= (.original = $en[$key].message) + if $en[$key].description then { description: $en[$key].description } else {} end)' \"./_locales/en/messages.json\" \"$MESSAGES\" > \"${MESSAGES}~\"; mv \"${MESSAGES}~\" \"$MESSAGES\"; done",
"messages:count": "for MESSAGES in $(find ./_locales -name 'messages.json'); do jq 'to_entries | .[].key' \"$MESSAGES\"; done | sort | uniq -c"
},
"repository": {
"type": "git",
"url": "git+https://github.com/joelpurra/talkie.git"
},
"keywords": [
"tts",
"text-to-speech",
"browser",
"extension"
],
"author": {
"name": "Joel Purra",
"email": "code+github@joelpurra.com",
"url": "https://joelpurra.com/"
},
"license": "GPL-3.0",
"bugs": {
"url": "https://joelpurra.com/support/"
},
"homepage": "https://joelpurra.com/projects/talkie/",
"devDependencies": {
"@google-cloud/translate": "^0.8.1",
"bluebird": "^3.5.0",
"chokidar-cli": "^1.2.0",
"chrome-webstore-manager": "^0.4.1",
"concurrently": "^3.4.0",
"configvention": "^1.1.0",
"eslint": "^3.12.2",
"eslint-config-standard": "^6.2.1",
"eslint-plugin-compat": "^1.0.2",
"eslint-plugin-promise": "^3.4.0",
"eslint-plugin-standard": "^2.0.1",
"json": "^9.0.4",
"jsonfile": "^3.0.0",
"pre-commit": "^1.2.2",
"rimraf": "^2.5.4",
"rollup": "^0.41.5",
"rollup-plugin-cleanup": "^1.0.0",
"rollup-plugin-json": "^2.1.0",
"rollup-plugin-license": "^0.4.0",
"rollup-watch": "^3.2.2",
"stream-to-promise": "^2.2.0",
"striptags": "^3.0.1",
"web-ext": "^1.8.1",
"webextension-polyfill": "^0.1.1"
},
"browserslist": [
"last 5 Chrome versions",
"last 5 Firefox versions"
]
}