diff --git a/app/main.js b/app/main.js index 9c5a3de9..c6a89dce 100644 --- a/app/main.js +++ b/app/main.js @@ -1,5 +1,6 @@ /* global DEFAULTS LIMITS WEB_UI PREFS */ import 'core-js'; +import 'fast-text-encoding'; // MS Edge support import 'intl-pluralrules'; import choo from 'choo'; import nanotiming from 'nanotiming'; diff --git a/package-lock.json b/package-lock.json index 130f4da5..1a6929a3 100644 --- a/package-lock.json +++ b/package-lock.json @@ -18,6 +18,7 @@ "body-parser": "^1.20.0", "choo": "^7.0.0", "cldr-core": "^35.1.0", + "configstore": "github:dannycoates/configstore#master", "convict": "^6.2.3", "convict-format-with-validator": "^6.2.0", "double-ended-queue": "^2.1.0-0", @@ -47,6 +48,7 @@ "crc": "^3.8.0", "cross-env": "^6.0.3", "css-loader": "^5.2.7", + "css-mqpacker": "^7.0.0", "cssnano": "^5.1.12", "eslint": "^8.21.0", "eslint-config-prettier": "^8.5.0", @@ -54,6 +56,7 @@ "eslint-plugin-n": "^15.2.4", "eslint-plugin-security": "^1.5.0", "extract-text-webpack-plugin": "^4.0.0-beta.0", + "fast-text-encoding": "^1.0.3", "file-loader": "^6.2.0", "git-rev-sync": "^3.0.2", "http_ece": "^1.1.0", @@ -4766,6 +4769,18 @@ "safe-buffer": "~5.1.0" } }, + "node_modules/configstore": { + "version": "5.0.0", + "resolved": "git+ssh://git@github.com/dannycoates/configstore.git#45c19536db34e7005a50b435582692886322ab36", + "integrity": "sha512-oVFYKWfl3LOK2Ugy+7/p/9BGaCjLzmOiCQpxh6SHo+RpBH0o2EUm9JqqHfvQu8jO4Au7pjFbJJnecLS+7BwNvQ==", + "license": "BSD-2-Clause", + "dependencies": { + "dot-prop": "^5.1.0" + }, + "engines": { + "node": ">=8" + } + }, "node_modules/connect-history-api-fallback": { "version": "1.6.0", "resolved": "https://registry.npmjs.org/connect-history-api-fallback/-/connect-history-api-fallback-1.6.0.tgz", @@ -5429,6 +5444,52 @@ "integrity": "sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A==", "dev": true }, + "node_modules/css-mqpacker": { + "version": "7.0.0", + "resolved": "https://registry.npmjs.org/css-mqpacker/-/css-mqpacker-7.0.0.tgz", + "integrity": "sha512-temVrWS+sB4uocE2quhW8ru/KguDmGhCU7zN213KxtDvWOH3WS/ZUStfpF4fdCT7W8fPpFrQdWRFqtFtPPfBLA==", + "deprecated": "Package no longer supported. Contact support@npmjs.com for more info.", + "dev": true, + "dependencies": { + "minimist": "^1.2.0", + "postcss": "^7.0.0" + }, + "bin": { + "mqpacker": "bin/mqpacker.js" + } + }, + "node_modules/css-mqpacker/node_modules/picocolors": { + "version": "0.2.1", + "resolved": "https://registry.npmjs.org/picocolors/-/picocolors-0.2.1.tgz", + "integrity": "sha512-cMlDqaLEqfSaW8Z7N5Jw+lyIW869EzT73/F5lhtY9cLGoVxSXznfgfXMO0Z5K0o0Q2TkTXq+0KFsdnSe3jDViA==", + "dev": true + }, + "node_modules/css-mqpacker/node_modules/postcss": { + "version": "7.0.39", + "resolved": "https://registry.npmjs.org/postcss/-/postcss-7.0.39.tgz", + "integrity": "sha512-yioayjNbHn6z1/Bywyb2Y4s3yvDAeXGOyxqD+LnVOinq6Mdmd++SW2wUNVzavyyHxd6+DxzWGIuosg6P1Rj8uA==", + "dev": true, + "dependencies": { + "picocolors": "^0.2.1", + "source-map": "^0.6.1" + }, + "engines": { + "node": ">=6.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/postcss/" + } + }, + "node_modules/css-mqpacker/node_modules/source-map": { + "version": "0.6.1", + "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", + "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, "node_modules/css-prefers-color-scheme": { "version": "6.0.3", "resolved": "https://registry.npmjs.org/css-prefers-color-scheme/-/css-prefers-color-scheme-6.0.3.tgz", @@ -6354,6 +6415,17 @@ "node": ">=4.0.0" } }, + "node_modules/dot-prop": { + "version": "5.3.0", + "resolved": "https://registry.npmjs.org/dot-prop/-/dot-prop-5.3.0.tgz", + "integrity": "sha512-QM8q3zDe58hqUqjraQOmzZ1LIH9SWQJTlEKCH4kJ2oQvLZk7RbQXvtDM2XEq3fwkV9CCvvH4LA0AV+ogFsBM2Q==", + "dependencies": { + "is-obj": "^2.0.0" + }, + "engines": { + "node": ">=8" + } + }, "node_modules/double-ended-queue": { "version": "2.1.0-0", "resolved": "https://registry.npmjs.org/double-ended-queue/-/double-ended-queue-2.1.0-0.tgz", @@ -10406,6 +10478,14 @@ "url": "https://github.com/sponsors/ljharb" } }, + "node_modules/is-obj": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/is-obj/-/is-obj-2.0.0.tgz", + "integrity": "sha512-drqDG3cbczxxEJRoOXcOjtdp1J/lyp1mNn0xaznRs8+muBhgQcrnbspox5X5fOw0HnMnbfDzvnEMEtqDEJEo8w==", + "engines": { + "node": ">=8" + } + }, "node_modules/is-object": { "version": "1.0.2", "resolved": "https://registry.npmjs.org/is-object/-/is-object-1.0.2.tgz", @@ -24800,6 +24880,14 @@ } } }, + "configstore": { + "version": "git+ssh://git@github.com/dannycoates/configstore.git#45c19536db34e7005a50b435582692886322ab36", + "integrity": "sha512-oVFYKWfl3LOK2Ugy+7/p/9BGaCjLzmOiCQpxh6SHo+RpBH0o2EUm9JqqHfvQu8jO4Au7pjFbJJnecLS+7BwNvQ==", + "from": "configstore@github:dannycoates/configstore#master", + "requires": { + "dot-prop": "^5.1.0" + } + }, "connect-history-api-fallback": { "version": "1.6.0", "resolved": "https://registry.npmjs.org/connect-history-api-fallback/-/connect-history-api-fallback-1.6.0.tgz", @@ -25296,6 +25384,40 @@ } } }, + "css-mqpacker": { + "version": "7.0.0", + "resolved": "https://registry.npmjs.org/css-mqpacker/-/css-mqpacker-7.0.0.tgz", + "integrity": "sha512-temVrWS+sB4uocE2quhW8ru/KguDmGhCU7zN213KxtDvWOH3WS/ZUStfpF4fdCT7W8fPpFrQdWRFqtFtPPfBLA==", + "dev": true, + "requires": { + "minimist": "^1.2.0", + "postcss": "^7.0.0" + }, + "dependencies": { + "picocolors": { + "version": "0.2.1", + "resolved": "https://registry.npmjs.org/picocolors/-/picocolors-0.2.1.tgz", + "integrity": "sha512-cMlDqaLEqfSaW8Z7N5Jw+lyIW869EzT73/F5lhtY9cLGoVxSXznfgfXMO0Z5K0o0Q2TkTXq+0KFsdnSe3jDViA==", + "dev": true + }, + "postcss": { + "version": "7.0.39", + "resolved": "https://registry.npmjs.org/postcss/-/postcss-7.0.39.tgz", + "integrity": "sha512-yioayjNbHn6z1/Bywyb2Y4s3yvDAeXGOyxqD+LnVOinq6Mdmd++SW2wUNVzavyyHxd6+DxzWGIuosg6P1Rj8uA==", + "dev": true, + "requires": { + "picocolors": "^0.2.1", + "source-map": "^0.6.1" + } + }, + "source-map": { + "version": "0.6.1", + "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", + "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", + "dev": true + } + } + }, "css-prefers-color-scheme": { "version": "6.0.3", "resolved": "https://registry.npmjs.org/css-prefers-color-scheme/-/css-prefers-color-scheme-6.0.3.tgz", @@ -26019,6 +26141,14 @@ "resolved": "https://registry.npmjs.org/dont-sniff-mimetype/-/dont-sniff-mimetype-1.1.0.tgz", "integrity": "sha512-ZjI4zqTaxveH2/tTlzS1wFp+7ncxNZaIEWYg3lzZRHkKf5zPT/MnEG6WL0BhHMJUabkh8GeU5NL5j+rEUCb7Ug==" }, + "dot-prop": { + "version": "5.3.0", + "resolved": "https://registry.npmjs.org/dot-prop/-/dot-prop-5.3.0.tgz", + "integrity": "sha512-QM8q3zDe58hqUqjraQOmzZ1LIH9SWQJTlEKCH4kJ2oQvLZk7RbQXvtDM2XEq3fwkV9CCvvH4LA0AV+ogFsBM2Q==", + "requires": { + "is-obj": "^2.0.0" + } + }, "double-ended-queue": { "version": "2.1.0-0", "resolved": "https://registry.npmjs.org/double-ended-queue/-/double-ended-queue-2.1.0-0.tgz", @@ -29224,6 +29354,11 @@ "has-tostringtag": "^1.0.0" } }, + "is-obj": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/is-obj/-/is-obj-2.0.0.tgz", + "integrity": "sha512-drqDG3cbczxxEJRoOXcOjtdp1J/lyp1mNn0xaznRs8+muBhgQcrnbspox5X5fOw0HnMnbfDzvnEMEtqDEJEo8w==" + }, "is-object": { "version": "1.0.2", "resolved": "https://registry.npmjs.org/is-object/-/is-object-1.0.2.tgz", diff --git a/package.json b/package.json index 5be22ed2..a1526bef 100644 --- a/package.json +++ b/package.json @@ -78,6 +78,7 @@ "crc": "^3.8.0", "cross-env": "^6.0.3", "css-loader": "^5.2.7", + "css-mqpacker": "^7.0.0", "cssnano": "^5.1.12", "eslint": "^8.21.0", "eslint-config-prettier": "^8.5.0", @@ -85,6 +86,7 @@ "eslint-plugin-n": "^15.2.4", "eslint-plugin-security": "^1.5.0", "extract-text-webpack-plugin": "^4.0.0-beta.0", + "fast-text-encoding": "^1.0.3", "file-loader": "^6.2.0", "git-rev-sync": "^3.0.2", "http_ece": "^1.1.0", diff --git a/test/frontend/index.js b/test/frontend/index.js index f909d728..3e323ef2 100644 --- a/test/frontend/index.js +++ b/test/frontend/index.js @@ -9,7 +9,7 @@ module.exports = function() { const files = fs .readdirSync(path.join(__dirname, 'tests')) .filter(p => /\.js$/.test(p)); - const code = files.map(kv).join(';\n'); + const code = "require('fast-text-encoding');\n" + files.map(kv).join(';\n'); return { code, dependencies: files.map(f => require.resolve('./tests/' + f)),