Skip to content

Commit b7f6c04

Browse files
feat: replace 'iso-8859-2' with plain JS (#6108)
1 parent 3e0a015 commit b7f6c04

File tree

11 files changed

+61
-34
lines changed

11 files changed

+61
-34
lines changed

extension/chrome/dev/ci_unit_test.htm

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -27,7 +27,6 @@ <h1 id="h1">loading..</h1>
2727
<script src="/lib/zxcvbn-ts.js"></script>
2828
<script src="/lib/zxcvbn-language-common.js"></script>
2929
<script src="/lib/zxcvbn-language-en.js"></script>
30-
<script src="/lib/iso-8859-2.js"></script>
3130
<script src="/lib/forge.js"></script>
3231
<script src="ci_unit_test.js" type="module"></script>
3332
</body>

extension/chrome/elements/compose.htm

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -255,7 +255,6 @@ <h1 id="header_title" data-test="header-title">New Secure Message</h1>
255255
<script src="/lib/zxcvbn-ts.js"></script>
256256
<script src="/lib/zxcvbn-language-common.js"></script>
257257
<script src="/lib/zxcvbn-language-en.js"></script>
258-
<script src="/lib/iso-8859-2.js"></script>
259258
<script src="/lib/forge.js"></script>
260259
<script src="/lib/linkify.min.js"></script>
261260
<script src="/lib/linkify-html.min.js"></script>

extension/chrome/settings/inbox/inbox.htm

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -51,7 +51,6 @@ <h1></h1>
5151
<script src="/lib/purify.js"></script>
5252
<script src="/lib/jquery.min.js"></script>
5353
<script src="/lib/sweetalert2.js"></script>
54-
<script src="/lib/iso-8859-2.js"></script>
5554
<script src="/lib/emailjs/punycode.js"></script>
5655
<script src="/lib/emailjs/emailjs-stringencoding.js"></script>
5756
<script src="/lib/emailjs/emailjs-mime-codec.js"></script>

extension/js/common/core/mime.ts

Lines changed: 7 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -4,7 +4,7 @@
44
'use strict';
55

66
import { Dict, Str } from './common.js';
7-
import { requireIso88592, requireMimeBuilder, requireMimeParser } from '../platform/require.js';
7+
import { requireMimeBuilder, requireMimeParser } from '../platform/require.js';
88

99
import { Attachment } from './attachment.js';
1010
import { Buf } from './buf.js';
@@ -18,7 +18,6 @@ import { iso2022jpToUtf } from '../platform/util.js';
1818
/* eslint-disable @typescript-eslint/naming-convention */
1919
const MimeParser = requireMimeParser();
2020
const MimeBuilder = requireMimeBuilder();
21-
const Iso88592 = requireIso88592();
2221
/* eslint-enable @typescript-eslint/naming-convention */
2322

2423
type AddressHeader = { address: string; name: string };
@@ -480,9 +479,12 @@ export class Mime {
480479
}
481480

482481
private static getNodeContentAsUtfStr(node: MimeParserNode): string {
483-
if (node.charset && Iso88592.labels.includes(node.charset)) {
484-
// eslint-disable-next-line @typescript-eslint/no-non-null-assertion
485-
return Iso88592.decode(node.rawContent!);
482+
// List of charset labels that map to ISO-8859-2
483+
const iso88592Labels = ['csisolatin2', 'iso-8859-2', 'iso-ir-101', 'iso8859-2', 'iso88592', 'iso_8859-2', 'iso_8859-2:1987', 'l2', 'latin2'];
484+
485+
if (node.charset && node.rawContent && iso88592Labels.includes(node.charset.toLowerCase())) {
486+
const decoder = new TextDecoder('iso-8859-2');
487+
return decoder.decode(Buf.fromRawBytesStr(node.rawContent));
486488
}
487489
let resultBuf: Buf;
488490
if (node.charset === 'utf-8' && node.contentTransferEncoding.value === 'base64') {

extension/js/common/platform/require.ts

Lines changed: 0 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -25,12 +25,6 @@ import { MimeParser } from '../core/types/emailjs.js';
2525
import * as openpgp from 'openpgp';
2626
import { Catch } from './catch.js';
2727

28-
type Codec = {
29-
encode: (text: string, mode: 'fatal' | 'html') => string;
30-
decode: (text: string) => string;
31-
labels: string[];
32-
version: string;
33-
};
3428

3529
export const requireOpenpgp = () => {
3630
if (typeof window !== 'undefined' && typeof globalThis !== 'undefined' && window !== globalThis && Catch.browser().name === 'firefox') {
@@ -52,8 +46,3 @@ export const requireMimeParser = (): typeof MimeParser => {
5246
export const requireMimeBuilder = () => {
5347
return (globalThis as any)['emailjs-mime-builder']; // eslint-disable-line
5448
};
55-
56-
export const requireIso88592 = (): Codec => {
57-
// eslint-disable-next-line @typescript-eslint/no-explicit-any, @typescript-eslint/no-unsafe-member-access
58-
return (globalThis as any).iso88592 as Codec;
59-
};

extension/manifest.json

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -48,7 +48,6 @@
4848
"/lib/sweetalert2.js",
4949
"/lib/streams_web.js",
5050
"/lib/emailjs/punycode.js",
51-
"/lib/iso-8859-2.js",
5251
"/lib/trusted-types.js",
5352
"/lib/emailjs/emailjs-stringencoding.js",
5453
"/lib/emailjs/emailjs-mime-codec.js",

package-lock.json

Lines changed: 54 additions & 7 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

package.json

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -53,7 +53,6 @@
5353
"filesize": "11.0.13",
5454
"fs-extra": "^11.3.2",
5555
"globby": "^15.0.0",
56-
"iso-8859-2": "1.0.0",
5756
"jquery": "3.7.1",
5857
"linkify-html": "4.3.2",
5958
"linkifyjs": "4.3.2",

scripts/build.js

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -57,7 +57,6 @@ const copyDependencies = async () => {
5757
['linkify-html/dist/linkify-html.min.js', 'lib/linkify-html.min.js'],
5858
['sweetalert2/dist/sweetalert2.js', 'lib/sweetalert2.js'],
5959
['sweetalert2/dist/sweetalert2.css', 'css/sweetalert2.css'],
60-
['iso-8859-2/iso-8859-2.js', 'lib/iso-8859-2.js'],
6160
['@zxcvbn-ts/core/dist/zxcvbn-ts.js', 'lib/zxcvbn-ts.js'],
6261
['@zxcvbn-ts/language-common/dist/zxcvbn-ts.js', 'lib/zxcvbn-language-common.js'],
6362
['@zxcvbn-ts/language-en/dist/zxcvbn-ts.js', 'lib/zxcvbn-language-en.js'],

test/source/platform/require.ts

Lines changed: 0 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -21,8 +21,4 @@ export const requireMimeBuilder = (): any => {
2121
return undefined; // todo
2222
};
2323

24-
export const requireIso88592 = (): any => {
25-
// (window as any).iso88592
26-
return undefined; // todo
27-
};
2824
/* eslint-enable @typescript-eslint/no-explicit-any */

0 commit comments

Comments
 (0)