From 1d6fc9e062fd486055f68853ab4405f776dae5f7 Mon Sep 17 00:00:00 2001 From: multipleof4 Date: Thu, 17 Sep 2026 22:30:50 -0700 Subject: [PATCH] Organize extension source and tests into folders --- dist/chrome/index.html | 2 +- dist/firefox/index.html | 2 +- dist/inzerosight-chrome.zip | Bin 168262 -> 168259 bytes dist/inzerosight-firefox.zip | Bin 168367 -> 168364 bytes docs/zwus.md | 2 +- package.json | 2 +- readme.md | 2 +- .../fonts}/open-sans-v44-latin-regular.woff2 | Bin icon_128.png => src/assets/icon_128.png | Bin icon_500.png => src/assets/icon_500.png | Bin chunked.js => src/chunked.js | 0 content.js => src/content.js | 0 dash.js => src/dash.js | 0 index.html => src/index.html | 0 sig.js => src/sig.js | 0 speck32_64ecb.js => src/speck32_64ecb.js | 0 speck48_96ctr.js => src/speck48_96ctr.js | 0 style.css => src/style.css | 2 +- content.test.js => tests/content.test.js | 4 ++-- sig.test.js => tests/sig.test.js | 8 ++++---- vite.config.js | 7 ++++--- 21 files changed, 16 insertions(+), 15 deletions(-) rename {fonts => src/assets/fonts}/open-sans-v44-latin-regular.woff2 (100%) rename icon_128.png => src/assets/icon_128.png (100%) rename icon_500.png => src/assets/icon_500.png (100%) rename chunked.js => src/chunked.js (100%) rename content.js => src/content.js (100%) rename dash.js => src/dash.js (100%) rename index.html => src/index.html (100%) rename sig.js => src/sig.js (100%) rename speck32_64ecb.js => src/speck32_64ecb.js (100%) rename speck48_96ctr.js => src/speck48_96ctr.js (100%) rename style.css => src/style.css (97%) rename content.test.js => tests/content.test.js (98%) rename sig.test.js => tests/sig.test.js (97%) diff --git a/dist/chrome/index.html b/dist/chrome/index.html index 9d26d6b..3d62064 100644 --- a/dist/chrome/index.html +++ b/dist/chrome/index.html @@ -2,7 +2,7 @@ - + diff --git a/dist/firefox/index.html b/dist/firefox/index.html index 9d26d6b..3d62064 100644 --- a/dist/firefox/index.html +++ b/dist/firefox/index.html @@ -2,7 +2,7 @@ - + diff --git a/dist/inzerosight-chrome.zip b/dist/inzerosight-chrome.zip index 5dd508833f03cc64b3bb68f43dcb010f6479c0f5..3a4404b4a4d523b4e079976f20207c0d1c8ccaf2 100644 GIT binary patch delta 828 zcmX@Mi0kkoE}j5yW)=|!1_lm>=FN>ftvrldd6*>Bn3^|lS5sqRVySQ5Y#2M|*1-sG zCI*IkEDQ`>K((29DXA5D86~+nQ$sH1T{aM@UB9K?ppL0it=TWt$4}+jSH{MKMa~>? zYRC8ao{_n|DSy{g{hR;a9G~!bNff*Eqm!1qp3BUC{d$J2_3u49e$?$#;oY{&X2yoQ zTrtzwg`GGObrsYXJ+xyG+j6-6>z5htuJYtBTp-PQ{an=&mx$(s4GXS&B?Wuj&|thQ zw@2laMo5f*^8=}_@SBOBk{m0ZPIz$5(J@-vns*9EzVn8-tEVPBaCIzBRk@R5&#W6c zPbD=ZJ9S+Ld+ddVXx@d42Wl%HC+@x6Es$ZE`169=>NR(cg|6Za+_a#KdEcXX)9TMm zJ$2_UTd285+D#qnl!JwrCpWD+&)}Fa|7c;b(LHgg+f9#6FC<=OyVyF}X1%Cc>{QO% z&rbbe%CElt`~DP#@1-`+PJ0y>y9WCoi(+T9(QSUahhf_1Nl(|M>4 z{sy7tI~$H=aqe4iY6qXE&LlRQlt{7U{wFtT>XTf!4Gwu(ycJlx@UX`!#-)k<8HY>R z7dI?Wb^8bwr&u8c8XT=?Zlos3 zq3jtM{O`xNQq#E`Ya03mo>?C{Y~^X`p!R5XZBqX)9mAq|JNPegKb@t1NWb^P?R%f{ zKc2VWSN*^KW#^aGpPxQDeDUMc+dm&YI=#PQ^Y!VU7e9S8#U@;>;f2kf3Wdro^G!B= z%>R+R&gruNmsEAc%3B+3L>FE9s+1haDPisNqJ`zQ)1Ey$w(a9R;_R@VWzz2GOZG~C zlaH`A@kgF{e5!dzkA0z?P11fw$p+j=k{efOj9L5$R!52P83r}Io?GGXiK2j&9?0ENV8hyVZp delta 813 zcmX@Si0jxQE}j5yW)=|!1_llWk&TT!tvrldd6*>Bn1nZOS5sqRVyPG2Xc)U>LDqgh zCI*K4EDQ`>K((29DXA5D86~+nQ$ud&2^$L3_Ft(tsAK9}!@bgJU{yJ^KA~(v=%C9wi(q z*X9V7@!?QxF>h!(5!J#m z#=+W!Z|~+_3GGdpc6O7q+};hc8n0gQ2&k0B?b*O89=oWFw<3^HmT#?Ktxe*ZOA*^s z)nX5C`OA8+bkq0mQx&HfTz>19n5WkyDW;UjX*vB5>O*S!J%kdL1{d5?vhr@9HpTf$d3BH3 zp)CeN99Bxb-=iTA_wonWemHBlq1#ITq|xh*{CB+HzE(e@zn15= z->3X<=k4qFRsVm<`F-{0r;iR_{P^_t&qt3=?=RSVefsCcPajROxo*~!!@Q@$p>oT- zeW{Q0e=J^qsY9Z8R#wEzQ$^R*g)Wz?ybkb|(0;R6SSXhH<;O?2TGb{o2sTgic$epC z?z$^eMa8Kj^3&tX91nB;9LbrHw4V`?9ziM3ar*)trWq1UA{)0`xiUF3g3@KZ82$i^1SV~eRP_WV8L25cOwc5oRUF{W$Rxr5OYqY-0_7PE ir=J5-Amwj>G;^67)AR{$OiI&rCo&1J_4fl4J_7(+d|ycb diff --git a/dist/inzerosight-firefox.zip b/dist/inzerosight-firefox.zip index 6c09cb73566fe3de43df6ed822135e1260aec742..8a45fa80d383c0c8103064bb29efcea21885c9cf 100644 GIT binary patch delta 835 zcmZ3#m}|{qE}j5yW)=|!1_lm>rp=8!tvrldd6*>Bn3^_kS5sqRVySQ1Y#2M|*1-sG zCI*IkEDQ`>K((29DXA5D86~+nQ$sH1T{aM@UB9K?ppL0it=TWt$4}+jSH{MKMa~>? zYRC8ao{_n|DSy{g{hR;a9G~!bNff*Eqm!1qp3BUC{d$J2_3u49e$?$#;oY{&X2yoQ zTrtzwg`GGObrsYXJ+xyG+j6-6>z5htuJYtBTp-PQ{an=&mx$(s4GXS&B?Wuj&|thQ zw@2laMo5f*^8=}_@SBOBk{m0ZPIz$5(J@-vns*9EzVn8-tEVPBaCIzBRk@R5&#W6c zPbD=ZJ9S+Ld+ddVXx@d42Wl%HC+@x6Es$ZE`169=>NR(cg|6Za+_a#KdEcXX)9TMm zJ$2_UTd285+D#qnl!JwrCpWD+&)}Fa|7c;b(LHgg+f9#6FC<=OyVyF}X1%Cc>{QO% z&rbbe%CElt`~DP#@1-`+PJ0y>y9WCoi(+T9(QSUahhf_1Nl(|M>4 z{sy7tI~$H=aqe4iY6qXE&LlRQlt{7U{wFtT>XTf!4Gwu(ycJlx@UX`!#-)k<8HY>R z7dI?Wb^8bwr&u8c8XT=?Zlos3 zq3jtM{O`xNQq#E`Ya03mo>?C{Y~^X`p!R5XZBqX)9mAq|JNPegKb@t1NWb^P?R%f{ zKc2VWSN*^KW#^aGpPxQDeDUMc+dm&YI=#PQ^Y!VU7e9S8#U@;>;f2kf3Wdro^G!B= z%>R+R&gruNmsEAc%3B+3L>FE9s+1haDPisNqJ`zQ)1Ey$w(a9R;_R@VWzz2GOZG~C zlaH`A@kgF{e5!dzkA0z?P11fw$p+j=k{efOj9L5$QY@!E|^(i6y- z&NhLm07O?zU^3-JNvG3yO<>Zt011K2D3@Shcx4Sr;>cj44ihvXXB7u{Gct)Vz_P(~ o*@;XtjC#|pfE3952q4XT$Bk+FA2%kY=`$xX39xBn1nWNS5sqRVyPF}Xc)U>LDqgh zCI*K4EDQ`>K((29DXA5D86~+nQ$ud&2^$L3_Ft(tsAK9}!@bgJU{yJ^KA~(v=%C9wi(q z*X9V7@!?QxF>h!(5!J#m z#=+W!Z|~+_3GGdpc6O7q+};hc8n0gQ2&k0B?b*O89=oWFw<3^HmT#?Ktxe*ZOA*^s z)nX5C`OA8+bkq0mQx&HfTz>19n5WkyDW;UjX*vB5>O*S!J%kdL1{d5?vhr@9HpTf$d3BH3 zp)CeN99Bxb-=iTA_wonWemHBlq1#ITq|xh*{CB+HzE(e@zn15= z->3X<=k4qFRsVm<`F-{0r;iR_{P^_t&qt3=?=RSVefsCcPajROxo*~!!@Q@$p>oT- zeW{Q0e=J^qsY9Z8R#wEzQ$^R*g)Wz?ybkb|(0;R6SSXhH<;O?2TGb{o2sTgic$epC z?z$^eMa8Kj^3&tX91nB;9LbrHw4V_5LPZ#DOMHmzu~V zV`u2f#E_eqmzkDYT%wm%oSzrq&B!Fe0LvPNv8ncHYPUQX7%l*@BC

+

inØsight

This sentence contains hidden text you can only read by installing inzerosight.‍​­‌‍‏‎‏‌⁠‍⁠‌⁠‍­‌­‎‏‌⁠‏‍‌­​‏‌⁠‏­‌⁠‏‏‌‏‏­‌‎­‌⁠­‏‌⁠‍⁠‌⁠‏⁠‌‎­‌­​⁠‌­​‏‌⁠‍­‌‎­‌⁠‍­‌⁠‍⁠‌⁠‏‎‌‎­‌­​⁠‌⁠‍⁠‌⁠‍‏‌⁠‍‏‌⁠‏⁠‌⁠‍­‌­‎⁠‌­​⁠‌­​‏‌⁠‏­‌­​‎‌‎­‌⁠‏‏‌­​‎‌­​⁠‌⁠‏‍‌­​‎‌⁠‏­‌⁠‍‍‌⁠­‏‌‎­‌­‎⁠‌⁠‍­‌‎­‌⁠‍​‌⁠‍‍‌­​‏‌­‎⁠‌⁠‍­‌‎­‌⁠‏‏‌­‎⁠‌­‎‏‌­‎­‌⁠‏­‌‏‏​

diff --git a/fonts/open-sans-v44-latin-regular.woff2 b/src/assets/fonts/open-sans-v44-latin-regular.woff2 similarity index 100% rename from fonts/open-sans-v44-latin-regular.woff2 rename to src/assets/fonts/open-sans-v44-latin-regular.woff2 diff --git a/icon_128.png b/src/assets/icon_128.png similarity index 100% rename from icon_128.png rename to src/assets/icon_128.png diff --git a/icon_500.png b/src/assets/icon_500.png similarity index 100% rename from icon_500.png rename to src/assets/icon_500.png diff --git a/chunked.js b/src/chunked.js similarity index 100% rename from chunked.js rename to src/chunked.js diff --git a/content.js b/src/content.js similarity index 100% rename from content.js rename to src/content.js diff --git a/dash.js b/src/dash.js similarity index 100% rename from dash.js rename to src/dash.js diff --git a/index.html b/src/index.html similarity index 100% rename from index.html rename to src/index.html diff --git a/sig.js b/src/sig.js similarity index 100% rename from sig.js rename to src/sig.js diff --git a/speck32_64ecb.js b/src/speck32_64ecb.js similarity index 100% rename from speck32_64ecb.js rename to src/speck32_64ecb.js diff --git a/speck48_96ctr.js b/src/speck48_96ctr.js similarity index 100% rename from speck48_96ctr.js rename to src/speck48_96ctr.js diff --git a/style.css b/src/style.css similarity index 97% rename from style.css rename to src/style.css index 60db6c8..de6e2e0 100644 --- a/style.css +++ b/src/style.css @@ -3,7 +3,7 @@ font-style: normal; font-weight: 400; font-display: swap; - src: url('fonts/open-sans-v44-latin-regular.woff2') format('woff2'); + src: url('assets/fonts/open-sans-v44-latin-regular.woff2') format('woff2'); } html, body, div, span, applet, object, iframe, diff --git a/content.test.js b/tests/content.test.js similarity index 98% rename from content.test.js rename to tests/content.test.js index 6819872..197cc77 100644 --- a/content.test.js +++ b/tests/content.test.js @@ -1,7 +1,7 @@ import assert from 'node:assert/strict'; import { test } from 'node:test'; import zwus from 'zwus'; -import { makeSig } from './sig.js'; +import { makeSig } from '../src/sig.js'; test('page overlay detects headers split by WBR and decodes across the split', async () => { const buttons = [], inserted = [], fixtures = [], texts = []; @@ -78,7 +78,7 @@ test('page overlay detects headers split by WBR and decodes across the split', a }; globalThis.requestAnimationFrame = callback => { callback(); return 1; }; - await import('./content.js'); + await import('../src/content.js'); assert.equal(buttons.length, fixtures.length); fixtures.forEach(({ cipher }, i) => assert.equal(buttons[i].textContent, cipher === 'PLAIN' ? 'Decode' : 'Decrypt')); diff --git a/sig.test.js b/tests/sig.test.js similarity index 97% rename from sig.test.js rename to tests/sig.test.js index 125d88d..e52b418 100644 --- a/sig.test.js +++ b/tests/sig.test.js @@ -1,10 +1,10 @@ import assert from 'node:assert/strict'; import { test } from 'node:test'; import zwus from 'zwus'; -import * as chunked from './chunked.js'; -import * as ctr from './speck48_96ctr.js'; -import * as ecb from './speck32_64ecb.js'; -import { makeSig, parseSig, parseModernSig, parseLegacySig, getPayloadEnd } from './sig.js'; +import * as chunked from '../src/chunked.js'; +import * as ctr from '../src/speck48_96ctr.js'; +import * as ecb from '../src/speck32_64ecb.js'; +import { makeSig, parseSig, parseModernSig, parseLegacySig, getPayloadEnd } from '../src/sig.js'; // Frozen wire-format fixtures, independent of the signature registry. const HEADERS = { diff --git a/vite.config.js b/vite.config.js index 73fc40f..8844023 100644 --- a/vite.config.js +++ b/vite.config.js @@ -65,15 +65,16 @@ export default defineConfig(async ({ mode }) => { plugins.push({ name: 'copy-icon', writeBundle() { - if (fs.existsSync('icon_500.png')) { - fs.copyFileSync('icon_500.png', `dist/${target}/icon_500.png`); + if (fs.existsSync('src/assets/icon_500.png')) { + fs.copyFileSync('src/assets/icon_500.png', `dist/${target}/icon_500.png`); } } }); return { + root: 'src', build: { - outDir: `dist/${target}`, + outDir: `../dist/${target}`, emptyOutDir: true, }, plugins,