unicode-input-toolconverter 0.2.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (123) hide show
  1. package/.babelrc.json +3 -0
  2. package/.editorconfig +16 -0
  3. package/.nojekyll +0 -0
  4. package/.nyc_output/out.json +173804 -0
  5. package/.nyc_output/processinfo/index.json +1 -0
  6. package/CHANGES.md +11 -0
  7. package/COPYING.LESSER.txt +180 -0
  8. package/COPYING.txt +687 -0
  9. package/README.md +65 -0
  10. package/_locales/en-US/messages.json +3126 -0
  11. package/_locales/hu-HU/messages.json +3126 -0
  12. package/_locales/pt-BR/messages.json +3126 -0
  13. package/_locales/sv-SE/messages.json +3126 -0
  14. package/babel.config.json +5 -0
  15. package/browser_action/characterSelection.js +91 -0
  16. package/browser_action/charrefConverters.js +389 -0
  17. package/browser_action/chartBuild.js +155 -0
  18. package/browser_action/encodingBehaviors.js +72 -0
  19. package/browser_action/encodings.js +97 -0
  20. package/browser_action/entities.js +12 -0
  21. package/browser_action/entityBehaviors.js +96 -0
  22. package/browser_action/index-es.html +15 -0
  23. package/browser_action/index-instrumented.html +16 -0
  24. package/browser_action/index-pages.html +16 -0
  25. package/browser_action/index.html +16 -0
  26. package/browser_action/index.iife.min.js +2 -0
  27. package/browser_action/index.iife.min.js.map +1 -0
  28. package/browser_action/index.instrumented.iife.min.js +2 -0
  29. package/browser_action/index.instrumented.iife.min.js.map +1 -0
  30. package/browser_action/index.js +95 -0
  31. package/browser_action/preferences/prefDefaults.js +52 -0
  32. package/browser_action/service-worker/sw-activateCallback.js +53 -0
  33. package/browser_action/service-worker/sw-locales.json +6 -0
  34. package/browser_action/service-worker/sw-resources.json +73 -0
  35. package/browser_action/service-worker/sw-unicode-data.json +3 -0
  36. package/browser_action/styles/unicode-dialog.css +391 -0
  37. package/browser_action/templateUtils/elements.js +12 -0
  38. package/browser_action/templateUtils/fill.js +3 -0
  39. package/browser_action/templateUtils/validation.js +6 -0
  40. package/browser_action/templates/chartBuild.js +185 -0
  41. package/browser_action/templates/index.js +1304 -0
  42. package/browser_action/templatesElementCustomization/widgets.js +56 -0
  43. package/browser_action/unicode/UnicodeConverter.js +793 -0
  44. package/browser_action/unicode/charrefunicodeDb.js +258 -0
  45. package/browser_action/unicode/getScriptInfoForCodePoint.js +646 -0
  46. package/browser_action/unicode/hangul.js +253 -0
  47. package/browser_action/unicode/lastScriptNames.json +5 -0
  48. package/browser_action/unicode/parseUnihanFromTextFileStrings.js +56 -0
  49. package/browser_action/unicode/unicodeFieldInfo.js +120 -0
  50. package/browser_action/unicode/unicodeScripts.js +4912 -0
  51. package/browser_action/unicode/unihan.js +129 -0
  52. package/browser_action/unicode/unihanDbPopulate.js +26 -0
  53. package/browser_action/unicodecharref.js +1480 -0
  54. package/browser_action/utils/DOMUtils.js +122 -0
  55. package/browser_action/utils/FetchUtils.js +19 -0
  56. package/browser_action/utils/TextUtils.js +28 -0
  57. package/browser_action/utils/TypedArrayUtils.js +21 -0
  58. package/browser_action/utils/semicolonSeparatedToArray.js +12 -0
  59. package/browser_action/utils/setupServiceWorker.js +193 -0
  60. package/cypress.config.js +21 -0
  61. package/download/entities/copyright-software-20021231.html +70 -0
  62. package/download/entities/html5-uppercase.ent +54 -0
  63. package/download/entities/htmlmathml-f.ent +2164 -0
  64. package/download/entities/isoamsa.ent +201 -0
  65. package/download/entities/isoamsb.ent +177 -0
  66. package/download/entities/isoamsc.ent +77 -0
  67. package/download/entities/isoamsn.ent +148 -0
  68. package/download/entities/isoamso.ent +107 -0
  69. package/download/entities/isoamsr.ent +238 -0
  70. package/download/entities/isobox.ent +95 -0
  71. package/download/entities/isocyr1.ent +122 -0
  72. package/download/entities/isocyr2.ent +81 -0
  73. package/download/entities/isodia.ent +69 -0
  74. package/download/entities/isogrk1.ent +104 -0
  75. package/download/entities/isogrk2.ent +75 -0
  76. package/download/entities/isogrk3.ent +98 -0
  77. package/download/entities/isogrk4.ent +98 -0
  78. package/download/entities/isolat1.ent +117 -0
  79. package/download/entities/isolat2.ent +176 -0
  80. package/download/entities/isomfrk.ent +107 -0
  81. package/download/entities/isomopf.ent +81 -0
  82. package/download/entities/isomscr.ent +107 -0
  83. package/download/entities/isonum.ent +131 -0
  84. package/download/entities/isopub.ent +140 -0
  85. package/download/entities/isotech.ent +216 -0
  86. package/download/entities/mmlalias.ent +598 -0
  87. package/download/entities/mmlextra.ent +154 -0
  88. package/download/entities/predefined.ent +52 -0
  89. package/download/entities/w3centities-f.ent +2276 -0
  90. package/download/entities/xhtml1-lat1.ent +143 -0
  91. package/download/entities/xhtml1-special.ent +78 -0
  92. package/download/entities/xhtml1-symbol.ent +171 -0
  93. package/eslint.config.js +66 -0
  94. package/icons/openWindow16.png +0 -0
  95. package/icons/openWindow24.png +0 -0
  96. package/lgtm.yml +5 -0
  97. package/lib/background.html +11 -0
  98. package/lib/background.js +13 -0
  99. package/lib/overlay.css +6 -0
  100. package/manifest.json +37 -0
  101. package/package.json +121 -0
  102. package/polyfills/browser-polyfill.min.js +8 -0
  103. package/polyfills/browser-polyfill.min.js.map +1 -0
  104. package/server.js +61 -0
  105. package/sw.js +259 -0
  106. package/tools/entities-import.js +62 -0
  107. package/tools/findEsResources.js +30 -0
  108. package/tools/list-locales.js +17 -0
  109. package/tools/parseUnicodeCharts.js +428 -0
  110. package/tools/ucd-import.js +24 -0
  111. package/tools/unicode-charts.html +596 -0
  112. package/tools/unihan-import.js +72 -0
  113. package/unicode_copyright.txt +46 -0
  114. package/vendor/camelcase/index.js +110 -0
  115. package/vendor/fflate/esm/browser.js +2665 -0
  116. package/vendor/intl-dom/dist/index.esm.js +2962 -0
  117. package/vendor/jamilih/dist/jml-es.js +2359 -0
  118. package/vendor/jquery/dist/jquery.js +10716 -0
  119. package/vendor/json-6/dist/index.mjs +1783 -0
  120. package/vendor/miller-columns/dist/index-es.min.js +1 -0
  121. package/vendor/miller-columns/miller-columns.css +75 -0
  122. package/vendor/simple-prefs/dist/index.esm.js +286 -0
  123. package/web-ext-config.cjs +13 -0
@@ -0,0 +1,72 @@
1
+ import {$} from '../vendor/jamilih/dist/jml-es.js';
2
+
3
+ import {classChange as charrefClassChange} from './charrefConverters.js';
4
+
5
+ // UI Bridges
6
+ export const convertEncoding = (out) => {
7
+ const from = $('#encoding_from').value,
8
+ to = $('#encoding_to').value,
9
+ toconvert = out;
10
+
11
+ if (!from || !to) {
12
+ return;
13
+ }
14
+
15
+ const Components = 'todo';
16
+ const Cc = Components.classes,
17
+ Ci = Components.interfaces;
18
+ const cnv = Cc[
19
+ '@mozilla.org/intl/scriptableunicodeconverter'
20
+ ].createInstance(Ci.nsIScriptableUnicodeConverter);
21
+ cnv.charset = from; // The charset to use
22
+ const os = cnv.convertToInputStream(toconvert);
23
+
24
+ // Fix: could customize
25
+ const replacementChar = Ci.
26
+ nsIConverterInputStream.DEFAULT_REPLACEMENT_CHARACTER;
27
+
28
+ const is = Cc[
29
+ '@mozilla.org/intl/converter-input-stream;1'
30
+ ].createInstance(Ci.nsIConverterInputStream);
31
+ is.init(os, to, 1024, replacementChar);
32
+ const str = {};
33
+ let output = '';
34
+ while (is.readString(4096, str) !== 0) {
35
+ output += str.value;
36
+ }
37
+ os.close();
38
+ $('#converted').value = output;
39
+ /*
40
+ const cv = Cc[
41
+ '@mozilla.org/intl/scriptableunicodeconverter'
42
+ ].getService(Ci.nsIScriptableUnicodeConverter);
43
+ cv.charset = to;
44
+ const unicode_str = cv.ConvertToUnicode(toconvert);
45
+ cv.charset = from;
46
+ $('#converted').value = cv.ConvertFromUnicode(unicode_str);
47
+ */
48
+ };
49
+
50
+ /**
51
+ * @param {PlainObject} cfg
52
+ * @param {import('intl-dom').I18NCallback} cfg._
53
+ * @returns {void}
54
+ */
55
+ function setupEncodingEvents ({_}) {
56
+ /**
57
+ * @returns {void}
58
+ */
59
+ function encodingListener () {
60
+ charrefClassChange(this);
61
+ try {
62
+ convertEncoding($('#toconvert').value);
63
+ } catch {
64
+ alert(_('chars_could_not_be_converted'));
65
+ }
66
+ }
67
+
68
+ $('#encoding_from').addEventListener('click', encodingListener);
69
+ $('#encoding_to').addEventListener('click', encodingListener);
70
+ }
71
+
72
+ export {setupEncodingEvents};
@@ -0,0 +1,97 @@
1
+ // Todo: Autogenerate if updating
2
+ const encodings = [
3
+ // eslint-disable-next-line unicorn/text-encoding-identifier-case -- Required
4
+ 'UTF-8',
5
+ 'ISO-8859-1',
6
+ 'Big5',
7
+ 'Big5-HKSCS',
8
+ 'EUC-JP',
9
+ 'EUC-KR',
10
+ 'GB2312',
11
+ 'GEOSTD8',
12
+ 'HZ-GB-2312',
13
+ 'IBM850',
14
+ 'IBM852',
15
+ 'IBM855',
16
+ 'IBM857',
17
+ 'IBM862',
18
+ 'IBM864',
19
+ 'IBM864i',
20
+ 'IBM866',
21
+ 'ISO-2022-CN',
22
+ 'ISO-2022-JP',
23
+ 'ISO-2022-KR',
24
+ 'ISO-8859-1',
25
+ 'ISO-8859-10',
26
+ 'ISO-8859-11',
27
+ 'ISO-8859-13',
28
+ 'ISO-8859-14',
29
+ 'ISO-8859-15',
30
+ 'ISO-8859-16',
31
+ 'ISO-8859-2',
32
+ 'ISO-8859-3',
33
+ 'ISO-8859-4',
34
+ 'ISO-8859-5',
35
+ 'ISO-8859-6',
36
+ 'ISO-8859-6-E',
37
+ 'ISO-8859-6-I',
38
+ 'ISO-8859-7',
39
+ 'ISO-8859-8',
40
+ 'ISO-8859-8-E',
41
+ 'ISO-8859-8-I',
42
+ 'ISO-8859-9',
43
+ 'ISO-IR-111',
44
+ 'KOI8-R',
45
+ 'KOI8-U',
46
+ 'Shift_JIS',
47
+ 'T.61-8bit',
48
+ 'TIS-620',
49
+ 'UTF-16',
50
+ 'UTF-16BE',
51
+ 'UTF-16LE',
52
+ 'UTF-32',
53
+ 'UTF-32BE',
54
+ 'UTF-32LE',
55
+ 'UTF-7',
56
+ // eslint-disable-next-line unicorn/text-encoding-identifier-case -- Required
57
+ 'UTF-8',
58
+ 'VISCII',
59
+ 'armscii-8',
60
+ 'gb18030',
61
+ 'us-ascii',
62
+ 'windows-1250',
63
+ 'windows-1251',
64
+ 'windows-1252',
65
+ 'windows-1253',
66
+ 'windows-1254',
67
+ 'windows-1255',
68
+ 'windows-1256',
69
+ 'windows-1257',
70
+ 'windows-1258',
71
+ 'windows-874',
72
+ 'windows-936',
73
+ 'x-euc-tw',
74
+ 'x-gbk',
75
+ 'x-imap4-modified-utf7',
76
+ 'x-johab',
77
+ 'x-mac-arabic',
78
+ 'x-mac-ce',
79
+ 'x-mac-croatian',
80
+ 'x-mac-cyrillic',
81
+ 'x-mac-devanagari',
82
+ 'x-mac-farsi',
83
+ 'x-mac-greek',
84
+ 'x-mac-gujarati',
85
+ 'x-mac-gurmukhi',
86
+ 'x-mac-hebrew',
87
+ 'x-mac-icelandic',
88
+ 'x-mac-roman',
89
+ 'x-mac-romanian',
90
+ 'x-mac-turkish',
91
+ 'x-user-defined',
92
+ 'x-viet-tcvn5712',
93
+ 'x-viet-vps',
94
+ 'x-windows-949'
95
+ ];
96
+
97
+ export default encodings;
@@ -0,0 +1,12 @@
1
+ /* eslint-disable @stylistic/comma-spacing, @stylistic/max-len -- Lot of data */
2
+ const entities = ['nbsp','iexcl','cent','pound','curren','yen','brvbar','sect','uml','copy','ordf','laquo','not','shy','reg','macr','deg','plusmn','sup2','sup3','acute','micro','para','middot','cedil','sup1','ordm','raquo','frac14','frac12','frac34','iquest','Agrave','Aacute','Acirc','Atilde','Auml','Aring','AElig','Ccedil','Egrave','Eacute','Ecirc','Euml','Igrave','Iacute','Icirc','Iuml','ETH','Ntilde','Ograve','Oacute','Ocirc','Otilde','Ouml','times','Oslash','Ugrave','Uacute','Ucirc','Uuml','Yacute','THORN','szlig','agrave','aacute','acirc','atilde','auml','aring','aelig','ccedil','egrave','eacute','ecirc','euml','igrave','iacute','icirc','iuml','eth','ntilde','ograve','oacute','ocirc','otilde','ouml','divide','oslash','ugrave','uacute','ucirc','uuml','yacute','thorn','yuml','quot','gt','apos','amp','lt','OElig','oelig','Scaron','scaron','Yuml','circ','tilde','ensp','emsp','thinsp','zwnj','zwj','lrm','rlm','ndash','mdash','lsquo','rsquo','sbquo','ldquo','rdquo','bdquo','dagger','Dagger','permil','lsaquo','rsaquo','euro','fnof','Alpha','Beta','Gamma','Delta','Epsilon','Zeta','Eta','Theta','Iota','Kappa','Lambda','Mu','Nu','Xi','Omicron','Pi','Rho','Sigma','Tau','Upsilon','Phi','Chi','Psi','Omega','alpha','beta','gamma','delta','epsilon','zeta','eta','theta','iota','kappa','lambda','mu','nu','xi','omicron','pi','rho','sigmaf','sigma','tau','upsilon','phi','chi','psi','omega','thetasym','upsih','piv','bull','hellip','prime','Prime','oline','frasl','weierp','image','real','trade','alefsym','larr','uarr','rarr','darr','harr','crarr','lArr','uArr','rArr','dArr','hArr','forall','part','exist','empty','nabla','isin','notin','ni','prod','sum','minus','lowast','radic','prop','infin','ang','and','or','cap','cup','int','there4','sim','cong','asymp','ne','equiv','le','ge','sub','sup','nsub','sube','supe','oplus','otimes','perp','sdot','lceil','rceil','lfloor','rfloor','lang','rang','loz','spades','clubs','hearts','diams'];
3
+ /* eslint-enable @stylistic/comma-spacing, @stylistic/max-len -- Lot of data */
4
+
5
+ const numericCharacterReferences =
6
+ // This should be kept in sync with the entities array
7
+ /* eslint-disable @stylistic/max-len -- Long */
8
+ /* eslint-disable @stylistic/comma-spacing -- Lot of data */
9
+ [160,161,162,163,164,165,166,167,168,169,170,171,172,173,174,175,176,177,178,179,180,181,182,183,184,185,186,187,188,189,190,191,192,193,194,195,196,197,198,199,200,201,202,203,204,205,206,207,208,209,210,211,212,213,214,215,216,217,218,219,220,221,222,223,224,225,226,227,228,229,230,231,232,233,234,235,236,237,238,239,240,241,242,243,244,245,246,247,248,249,250,251,252,253,254,255,34,62,39,38,60,338,339,352,353,376,710,732,8194,8195,8201,8204,8205,8206,8207,8211,8212,8216,8217,8218,8220,8221,8222,8224,8225,8240,8249,8250,8364,402,913,914,915,916,917,918,919,920,921,922,923,924,925,926,927,928,929,931,932,933,934,935,936,937,945,946,947,948,949,950,951,952,953,954,955,956,957,958,959,960,961,962,963,964,965,966,967,968,969,977,978,982,8226,8230,8242,8243,8254,8260,8472,8465,8476,8482,8501,8592,8593,8594,8595,8596,8629,8656,8657,8658,8659,8660,8704,8706,8707,8709,8711,8712,8713,8715,8719,8721,8722,8727,8730,8733,8734,8736,8743,8744,8745,8746,8747,8756,8764,8773,8776,8800,8801,8804,8805,8834,8835,8836,8838,8839,8853,8855,8869,8901,8968,8969,8970,8971,9001,9002,9674,9824,9827,9829,9830];
10
+ /* eslint-enable @stylistic/comma-spacing -- Lot of data */
11
+ /* eslint-enable @stylistic/max-len -- Long */
12
+ export {entities, numericCharacterReferences};
@@ -0,0 +1,96 @@
1
+ import {$} from '../vendor/jamilih/dist/jml-es.js';
2
+ import {getUnicodeDefaults} from './preferences/prefDefaults.js';
3
+ import unicodecharref from './unicodecharref.js';
4
+
5
+ let charrefunicodeConverter, getPref, setPref;
6
+ export const shareVars = ({charrefunicodeConverter: _uc}) => {
7
+ charrefunicodeConverter = _uc;
8
+ ({getPref, setPref} = getUnicodeDefaults());
9
+ };
10
+
11
+ /**
12
+ * @param {Event} e
13
+ * @returns {Promise<void>}
14
+ */
15
+ async function insertEntityFile (e) {
16
+ const entFile = await fetch(
17
+ '../download/entities/' + e.target.value + '.ent'
18
+ );
19
+ const data = await entFile.text();
20
+
21
+ $('#DTDtextbox').value += '\n' + data;
22
+ await registerDTD();
23
+ }
24
+
25
+ /**
26
+ * @returns {Promise<{void}>}
27
+ */
28
+ async function registerDTD () {
29
+ // Cannot use back-reference inside char. class, so need to do twice
30
+ const pattern = /<!ENTITY\s+([^'"\s]*)\s+(["'])(.*)\2\s*>/gu;
31
+
32
+ const text = $('#DTDtextbox').value;
33
+ await setPref('DTDtextbox', text);
34
+
35
+ let result;
36
+
37
+ // Reset in case charrefs or ents array deleted before and now want to
38
+ // go back to their original values.
39
+ if (await getPref('appendtohtmldtd')) {
40
+ charrefunicodeConverter.entities = [...unicodecharref.origents];
41
+ charrefunicodeConverter.numericCharacterReferences = [
42
+ ...unicodecharref.origcharrefs
43
+ ];
44
+ } else {
45
+ charrefunicodeConverter.entities = [];
46
+ charrefunicodeConverter.numericCharacterReferences = [];
47
+ }
48
+
49
+ // Start off blank in case items erased
50
+ charrefunicodeConverter.newents = [...unicodecharref.orignewents];
51
+ // Start off blank in case items erased
52
+ charrefunicodeConverter.newcharrefs = [...unicodecharref.orignewcharrefs];
53
+
54
+ const decreg = /^(?:&#|#)?(\d\d+);?$/u;
55
+ // const decreg2 = /^(&#|#)([0-9]);?$/u;
56
+ const hexreg = /^(?:&#|#|0|U|u)?(?:[xX+])([\da-fA-F]+);?$/u;
57
+
58
+ while ((result = pattern.exec(text)) !== null) {
59
+ let m = result[3];
60
+ let addreg = true;
61
+ if (decreg.test(m)) { // Dec
62
+ m = m.replace(decreg, '$1');
63
+ m = Number.parseInt(m);
64
+ } else if (hexreg.test(m)) { // Hex
65
+ m = m.replace(hexreg, '$1');
66
+ m = Number.parseInt(m, 16);
67
+ // Todo: Fix this so it can handle surrogate pairs
68
+ // If replacing with Unicode sequence longer than one character, assume
69
+ // only wish to convert from entity (not from Unicode)
70
+ } else if (m.length > 1) {
71
+ addreg = false;
72
+ } else {
73
+ m = m.charCodeAt();
74
+ }
75
+ if (addreg) {
76
+ // Used to ensure apos or amp is detected in same position
77
+ charrefunicodeConverter.entities.unshift(result[1]);
78
+ charrefunicodeConverter.numericCharacterReferences.unshift(m);
79
+ // For translating entities into two-char+ Unicode, or hex or dec
80
+ } else {
81
+ charrefunicodeConverter.newents.push(result[1]);
82
+ charrefunicodeConverter.newcharrefs.push(m); // Can be a string, etc.
83
+ }
84
+ }
85
+ }
86
+
87
+ /**
88
+ * @returns {void}
89
+ */
90
+ function setupEntityEvents () {
91
+ $('#insertEntityFile').addEventListener('change', async function (e) {
92
+ await insertEntityFile(e);
93
+ });
94
+ }
95
+
96
+ export {registerDTD, setupEntityEvents};
@@ -0,0 +1,15 @@
1
+ <!DOCTYPE html>
2
+ <html lang="en">
3
+ <head>
4
+ <meta charset="utf-8" />
5
+ <title>-</title>
6
+ <!-- Temporary favicon no-op -->
7
+ <link rel="shortcut icon" href="data:image/x-icon;," type="image/x-icon">
8
+
9
+ <script src="/vendor/jquery/dist/jquery.js"></script>
10
+ <!-- <script src="/polyfills/browser-polyfill.min.js"></script> -->
11
+ <script type="module" src="/browser_action/index.js"></script>
12
+ </head>
13
+ <body>
14
+ </body>
15
+ </html>
@@ -0,0 +1,16 @@
1
+ <!DOCTYPE html>
2
+ <html lang="en">
3
+ <head>
4
+ <meta charset="utf-8" />
5
+ <title>-</title>
6
+ <!-- Temporary favicon no-op -->
7
+ <link rel="shortcut icon" href="data:image/x-icon;," type="image/x-icon">
8
+
9
+ <script src="/vendor/jquery/dist/jquery.js"></script>
10
+ <!-- <script src="/polyfills/browser-polyfill.min.js"></script> -->
11
+ <!-- <script type="module" src="/browser_action/index.js"></script> -->
12
+ </head>
13
+ <body>
14
+ <script src="/browser_action/index.instrumented.iife.min.js"></script>
15
+ </body>
16
+ </html>
@@ -0,0 +1,16 @@
1
+ <!DOCTYPE html>
2
+ <html lang="en">
3
+ <head>
4
+ <meta charset="utf-8" />
5
+ <title>-</title>
6
+ <!-- Temporary favicon no-op -->
7
+ <link rel="shortcut icon" href="data:image/x-icon;," type="image/x-icon">
8
+
9
+ <script src="../vendor/jquery/dist/jquery.js"></script>
10
+ <!-- <script src="/polyfills/browser-polyfill.min.js"></script> -->
11
+ <!-- <script type="module" src="/browser_action/index.js"></script> -->
12
+ </head>
13
+ <body>
14
+ <script src="index.iife.min.js"></script>
15
+ </body>
16
+ </html>
@@ -0,0 +1,16 @@
1
+ <!DOCTYPE html>
2
+ <html lang="en">
3
+ <head>
4
+ <meta charset="utf-8" />
5
+ <title>-</title>
6
+ <!-- Temporary favicon no-op -->
7
+ <link rel="shortcut icon" href="data:image/x-icon;," type="image/x-icon">
8
+
9
+ <script src="/vendor/jquery/dist/jquery.js"></script>
10
+ <!-- <script src="/polyfills/browser-polyfill.min.js"></script> -->
11
+ <!-- <script type="module" src="/browser_action/index.js"></script> -->
12
+ </head>
13
+ <body>
14
+ <script src="/browser_action/index.iife.min.js"></script>
15
+ </body>
16
+ </html>