From 384312f54fe7eb9634d50aec24d8949687af53bb Mon Sep 17 00:00:00 2001 From: Irakli Gozalishvili Date: Fri, 27 Nov 2020 07:32:09 -0800 Subject: [PATCH] feat: implement service worker example (#3374) Adds example demonstrating how to use IPFS node in shared worker from service worker. Co-authored-by: Alex Potsides --- browser-service-worker/README.md | 92 +++++ browser-service-worker/index-view.png | Bin 0 -> 102575 bytes browser-service-worker/index.html | 119 +++++++ browser-service-worker/package.json | 37 ++ browser-service-worker/page-view.png | Bin 0 -> 150000 bytes browser-service-worker/src/main.js | 87 +++++ browser-service-worker/src/service.js | 372 +++++++++++++++++++++ browser-service-worker/src/service/util.js | 120 +++++++ browser-service-worker/src/worker.js | 71 ++++ browser-service-worker/test.js | 32 ++ browser-service-worker/tsconfig.json | 20 ++ browser-service-worker/webpack.config.js | 55 +++ 12 files changed, 1005 insertions(+) create mode 100644 browser-service-worker/README.md create mode 100644 browser-service-worker/index-view.png create mode 100644 browser-service-worker/index.html create mode 100644 browser-service-worker/package.json create mode 100644 browser-service-worker/page-view.png create mode 100644 browser-service-worker/src/main.js create mode 100644 browser-service-worker/src/service.js create mode 100644 browser-service-worker/src/service/util.js create mode 100644 browser-service-worker/src/worker.js create mode 100644 browser-service-worker/test.js create mode 100644 browser-service-worker/tsconfig.json create mode 100644 browser-service-worker/webpack.config.js diff --git a/browser-service-worker/README.md b/browser-service-worker/README.md new file mode 100644 index 00000000..a0ae6380 --- /dev/null +++ b/browser-service-worker/README.md @@ -0,0 +1,92 @@ +# Using js-ipfs node in [SharedWorker][] from [ServiceWorker][] + +> In this example, you will find boilerplate code you can use to set up an IPFS +> node in a [SharedWorker][] and use it from a [ServiceWorker][]. + +## General Overview + +### `src/main.js` + +Module is loaded in the main thread (DOM window) and is responsible for wiring +all the pieces together: + +1. Activates a [SharedWorker][] that runs an IPFS node. +2. Registers a [ServiceWorker][] to serve IPFS content from. +3. Listens to [MessagePort][] requests from the [ServiceWorker][] and responds + back with a [MessagePort][] of the [SharedWorker][], enabling + it to interact with shaerd IPFS node. + +### `src/worker.js` + +Module is loaded in the [SharedWorker][]. It demonstrates how to setup the IPFS +node such that it can be used in other browsing contexts. + +### `src/service.js` + +Module is loaded in the [ServiceWorker][] and responds to all the requests from +the page. It recognizes four different request routes: + +1. Routes `/ipfs/...`, `/ipns/...` are served html pages that: + + - Contain a full page iframe that has an `src` derived from request path e.g.: + + ``` + /ipfs/Qm...hash/file/name -> /view/Qm...hash/file/name + ``` + - `src/main.js` script loaded in it. + + This way when request from `/view/Qm..hash/file/name` arrives [ServiceWorker][] + can obtain a [MessagePort][] for the [SharedWorker][] by requesting it from + the iframe container. + +2. Routes `/view/ipfs/...` and are served corresponding content from IPFS. On + such request message is send to an iframe container (That is why `/ipfs/...` + and `/ipns/...` routes served `iframe` and `src/main.js`), through which + [MessagePort][] for the [SharedWorker][] is obtained and used to retrieve + content from the shared IPFS node and served back. + + > There is a stub for `/view/ipns/...` route, which is left as an excercise + > for the reader to fill. + +3. All other routes are served by fetchging it from the network. + + +## Before you start + +First clone this repo, cd into the example directory and install the dependencies + +```bash +git clone https://github.com/ipfs/js-ipfs.git +cd js-ipfs/examples/browser-service-worker +npm install +``` + +## Running the example + +Run the following command within this folder: + +```bash +npm start +``` + +Now open your browser at `http://localhost:3000` + +You should see the following: + +![Screen Shot](./index-view.png) + +If you navigate to the following address `http://localhost:3000/ipfs/bafybeicqzoixu6ivztffjy4bktwxy6lxaxkvnavkya7kfgwyhx4bund2ga/` it should load a +page from ipfs and appear as: + +![Screen Shot](./page-view.png) + +### Run tests + +```bash +npm test +``` + + +[SharedWorker]:https://developer.mozilla.org/en-US/docs/Web/API/SharedWorker +[ServiceWorker]:https://developer.mozilla.org/en-US/docs/Web/API/Service_Worker_API +[MessagePort]:https://developer.mozilla.org/en-US/docs/Web/API/MessagePort diff --git a/browser-service-worker/index-view.png b/browser-service-worker/index-view.png new file mode 100644 index 0000000000000000000000000000000000000000..b3e8b42026649d6e33de03b5e0ba4ce89474da38 GIT binary patch literal 102575 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�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 literal 0 HcmV?d00001 diff --git a/browser-service-worker/index.html b/browser-service-worker/index.html new file mode 100644 index 00000000..79c564a9 --- /dev/null +++ b/browser-service-worker/index.html @@ -0,0 +1,119 @@ + + + + IPFS Viewer + + + + + +
+ + + + + diff --git a/browser-service-worker/package.json b/browser-service-worker/package.json new file mode 100644 index 00000000..4e13489b --- /dev/null +++ b/browser-service-worker/package.json @@ -0,0 +1,37 @@ +{ + "name": "example-browser-service-worker", + "description": "IPFS with service worker", + "version": "1.0.0", + "private": true, + "scripts": { + "clean": "rm -rf ./dist", + "build": "webpack", + "start": "webpack-dev-server", + "test": "test-ipfs-example" + }, + "license": "MIT", + "keywords": [], + "devDependencies": { + "@babel/core": "^7.2.2", + "@babel/preset-env": "^7.3.1", + "babel-loader": "^8.0.5", + "copy-webpack-plugin": "^5.0.4", + "test-ipfs-example": "^2.0.3", + "webpack": "5.4.0", + "webpack-cli": "4.1.0", + "webpack-dev-server": "3.11.0" + }, + "dependencies": { + "ipfs": "^0.51.0", + "ipfs-message-port-client": "^0.3.0", + "ipfs-message-port-protocol": "^0.3.0", + "ipfs-message-port-server": "^0.3.0", + "process": "0.11.10" + }, + "browserslist": [ + ">1%", + "not dead", + "not ie <= 11", + "not op_mini all" + ] +} diff --git a/browser-service-worker/page-view.png b/browser-service-worker/page-view.png new file mode 100644 index 0000000000000000000000000000000000000000..5bc0d8abe31b0e02ddaa99026ba131a1861b60f3 GIT binary patch literal 150000 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 iq(De1#d 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
3S0v18}*1!zl6Ju*ix4Z`?W*FZsYfeOq2^gZ=q1 zsBCaFg!J=5hOdA0E=MXY-mLcB;AJ*e=I;614+hikY|$e3T--?Yo4Tb*yNe z;vbzBwY^*Fzl4KZzbU(I@ype(?|~XO|5|Cwf}ZY(1x{d)ufHcP73i$}+F02N=Fhc{ z5R`Cz-G8@40w#{`C*kd{LLTOc0v}yqnTNCR`YJYGC zyRx zxsQ~eGBs(AnK+i-5|nl2o))KJNq?oyBi$~cDSGP>rTKz|BmQ$**Y6hlzgLx!CL=Y0 zDnG<&uR7Iez#pPKe_|Fn^ud~Ku?k>YCi#0iWuyxW%RGyg6>QsYl5y^;X12+UMff4- z`6L8uJ7QjZKxk+*okNPsA@(j&Tnih9_|rYnE3md0H!N3$ zfJ@fCdzb%!C(~(p9tg1uv4uk#uhh{$;wPyN*yC%)g4#oOhaanQ$r&+bcNlNQ*zToM zj0kHQP>j>vygdTq6REgeNK0Ia%3(!r*=mAzto0~W2I~mPg@CuUi9j{1({M2GTeed9 zyiAi9M;^$EIS?{A6>swJKYPpd89dyeF6S~8PQyxZ3-}QuP2rY|_ZgzJ2YG4dS@V3v z>>F)*h{Tf2^WcT>Si=av#ccCc0As%YUG?4xF$uw4k$ReU5F=7OJF^>{)n$D?qpW$j zf^ZrK;W6RWD_iAKiVrc*g_U z0rlcaWZ=Zh{jje0_n#bCnk%DL=}!1F#uZ#-weQO5rW@+8QbV>oTe7$5bwVeX!2w%a zw)fE|iPxY3MRm%)?k+70nD!aP4=i zIJ;mV_s^KHTev0A;mI0w`2oMn0d}6)u70XVgIOZ9Gfz|JX2glHj|agnt}rZ;r7Q|c>L_Kl3xP(|d`uyBm^zV6 z7NLQEr~{&TQE3=RGB46`xIYDUbV78B=SAq5md5JbcuUi@bF2b64LC!farrcR-In>O7}jXk?LgC zIDaR*21ta<7JRgjDZRaZzZ{kJ0sVBmqv^@ez?e($D5D5d*)F81wX&M-`z2+iZ0x)d zk(-?usqbBUP;dNpYkRE2kGViu2_JmP-E2B4V@eB{;{8`J12bXJD)UE z&^kT0F}CS<->}n&HpTlW)Q?J~J#W~{>qs-!uVgytLNE&*cFOv^s?)D>1@y^ali3dW z^wJubLJ%m>qpRImEx#aF=y=H57$SG@3%R=7hRxiX_s19H+LXYTM9_(ghUjxGuRTNd z%h8^Ue<;Ckw&;f(XC=9DHrR_bvJ>q@d(lr%LCG#GO|o zPPA{*Z2pz?I!o`c(yb>Oe5v9&1j)7$JtpkwGx==(^bx1S5hw4|I9- zNQ88m+4egiwc0NJChYBwr;0y#2UFhpDfy}RlWL@n-Mk5J(2&8p-d?-moVOrTB?Kx8 zJ(TT{9#pdDU^CJ_L+OvOwP%M;BavYw$RRtJ89e$`Dneb0Asokcdcud5U(XT+z1gh ze%C#fQJ8zdEAdR04EESb-Cd!wvlj*0hH|6e+^LdXyPgWW8%$2JdOC0sZ$5ey zuhk=1N3ai`-LB~sTvqg`e$CyQy6rVQ@Y>^EIjBl{*2Ly#{W{L>?b4+K=q3=E5PA(*&f9MSZ;gWBg>$bi@nAIS2a&s znhNnv)S;UMM~BM>tvu@9Tgmt;BF4qrhe)gqi;6moY}%1MGDN!wSK5ll{olOtewG`G zsa$6pvb9qAt%yBG+-_=&`Hem%`lSPy810l=TX>X2<@J-W%@%*R@R02rxJAec-r`>s zc9gW##}66+>(9cRtkeyo?=s9=%sb-o$v)(J^LTkKlI8K(}8)oMEYhqayr`jNBg6;pL_DIwU;QY!8SK#RFnqI121(CZ00d1)RSBi z2bJni`;yy28EwjzZxKys`90D z>!=Zt8)9!P)T`nuUn8ST@CUWg8}7a~x0<~-tBQko#|}EqaUYeL-ENbh%$$k)Ct#l; z$t6)dF{y|*ke*J1uUr{S4TF!Zk%sY$v4!S|i_Tf;=qj5|)gwX*TU7a&*g5uL@5g63 z8Q!2c)lC5bX^s88wkxrYnz`vZzKdC5nKVpoT9yj}8w2Kr96zqF5Sf$ga| zd~dg47!rT|^Aqgnd&HApA0cyQY9m5kLcAvq@p3xtmT=AHKPpD9xTlKz%783t5A`DQ zF}=0l9=fM{d_CguPaQ{1L%Zah_r<>jhYKu&289B0zn?bvz~_G2^hSyx7j--ByZOTG zQ{>GnlhL&O`?iK=q@dcYgX@G(<+p%rMR&!TiFYG?CRLwwAB!DKmEHUHwn3_{fNtn3 zDaEG?)z=oGHy2ptArf-JZKC5m*i*0-W`O(HAnz} z8KYx$XjOjo>NV?5?VQL1%BNkpB93%Ie11686babGB4Is-XdO!eGT+RWb_ta~S)48` z-pTbwMiM_V5|hl@Waj%0USREsKCk9%7^CAWLrgdJ%@)uKMX{B(Vxs;*3j7~Nz9Vcq zGE~DUiz&j=oJD5zpXT&M@qJf9V{H|@`wpk}i5zs=eag!Ou$3eE)aT|EscC@_0aN;p z!=OJU+Rkj{7^@j|n{nshcbl&w)ePACa;W?Ntf@W_1&TArBJ^K&dSj-}{U?LsDpLHE ze?o?gc(IKv#JT;3w>xR_zOzhK(o)AMu%b30zg(Jtq@s+;Z2+x1m%pI%pQ%r3IMM7G z`OPYU2EOyBg%^*cF2^3q5YT2Fu3bM7>cc$}2|-w_z3tYJ-W!Gf-)Hjs|84MvX~RS4 z%%@`iKtAmn^m(|Fbt0VXvz=E#OsE?nLi6}@jYa@g8Y@P}X^XSA z>{^BY?&cZj=hpE01GA;ZG=~s@v*9pOzKf3PMC5p>7VVbGjJjyW;YCv>4 zbjAg5M0+Vt>RtU4eMm#7poe-VAxMJ{2iK79h|5vSCnmwHaaf zS0!V=7?h_C4C!Dd+VHY(l!Q;77DISCNz|#DryZ3q*I{ zm%jh*r2Ol;anV>$eJW~wzq20|MU`VsrJW)AVWHi5Scn)|i1<}OcqZtR)T6gNM^5^l zDUe`UT_`Zoj%dpk?|Yr$aGllKn|o?!zSAVn`_WHt?Sw!*;{{c_@XIp@XUP=?6Eg|^29e_~;Z|ZQH8TNkh zdXjnf%DWzZr|en5JGrR!?Da;T5`7Dn;(|+TkN;NB+3)Ya6It!kdbWP8|C$o`Kl3fO z*q{ITX0abB|V z%UiDzJ<+!bNMWBnA=o=p2{YboqpA~}pN6N{dEg1FZj60a-6vhR<(a*yp~7(vJd+uz zP@-9GI-Ht-ekOmpIKsxHDGw;RWhfd4p+Dg3x~M$7o&UdGqF*!*Qz)IE5>9F0{8Y~~ z*ACS9bX9Yfxn{o@A@QngJ=UuteTo(El{mj5Jv(cJsNPVpGo!t!onB zMN@OXquR=^8^R9lFw)+d!9qY>_dnxObgDGW#M(4J^zrfAy4-5<6f!(iwLdRi%dbQB zQAW0S>FlsUeO{xGfpwsdMqiAMmUtC%ENQV@Z|wcYeMkPE_U%7zS=Xwt@SsRTxO%?w zG~%^RZ<7H~p?P^7y4+p?3%nCQ#>mAV<>Ap$HZst=jgU0!bn)ganyZ|uzw#pV>9a|m zunX-k7iUr@ol$^5`kRM*hqlD$&7d{APeOVqx$%O5v>(w-qFryaTSs*;mpbHj>8b7D zX167IBJvhRIY}Q!3xBYQ;=J7Q=VE8oKhA|}CB5dk@E&D^88p4~!k>_~m z!b!WK63?QUOXCacF$e1952$yOt_H`>cgKtVU@xkk)pI)z%fIAXtaOR2Rt_cHyjC4B#{^~Y|dweZ>G{Q{ZJG7mUdY)pJ zmk>J`1`^y#3h_C9`jUhUXJ*zma5zQ9d+x1}w*Ou8k6emf*UnvfZRkbP$xnTmS?n9c z_o!khssyzFuMIcp%nc$yjCVx=<)R9VT zIyFb*^VRG&YWL+rDvH^A1z`}_Hgr>`{LYd67iD^6g?C9e?>#KBD6o^~@OS#%YyI+r zqCBNpyi*ZsZR-oeGm$}yCqLe@^-AtnWA;ZNP1AJcIfe zY35%uaV$`Hy}!3m&*2?;H zw-<#8mtuSfGp`-e7e~Go_-@GlZwm~O;)z%q$tg2V)|fMj2`B|{JA7wTIk$3+VWul< zmo}Z-x3It*Abb9C2Un9j9<4NmnfGo1v!7hE-bIR1c@}$fpkAu^v3yP{zp_ln{tDOA zTlpt@B0?S1EAtvon~VtixR@pT(ac?k($qYEp-9SOD37F0>)1yu>C$c}{2yP};nwasQDm8zL%wEdU5gQrc#gTM4< z>NlT?zoHM=TPZzTm2sHul(yl`J5epi$Eimm6KSVB*;tw=5znMADOx?=$qwT%FG;~U z(-h7Ii=pa0w<&~ze$*H;hd@}Z+KuiM%ugtDa`>UZMTC@0D>pu@T{b1(_7QG-Y@V#8 zdp93lem!ZM8JUrOp1r_N$~JkVq4>zaH~XqP>ZaMY0=9Hf?((y_>o#ed z^QaWTH`eH!tP*>}Kw5%Zh|9bFTy}PTqgtTg^TV7?AgKWSIID=6@Hln;&Uz7h!m1Zz zQoRP*hY~NV$2@g!qKP69WQG~l@)aIWrO2~cX}%qY1_4$ozkY;!%NAnxVh&EqoPECU z(en$15KBK+(Nb{`20~ZArjb>I{sEAff~G7k=!^ZptGT^ef1Ch%bv{I4sZv)fyDh7c zaZ{Qg!ul}D?;G?o75z^0VT9W2#q1D51fUF_B z%k|lpuHKosS=jJMz4-khsVj$e=$$DWvlhpPFlp@8W-de%%X0#Qb|P%0ko6TmDC0C zFDS?bXJwc=bjj5QHb+6TH-8$TG*4u;&RIoIZOEp65hq4kWlqaaM=GZgVjt-r9h+9q zO^_UI!nTM)#1I=r%K1@WG2;k2b{n~Z31(|Z<0giZhpXP;0~Mk3O=*=r+stu>;a1mi zOQpP+I>ZWVi8O)9&kE*rM=YAb)C-XXRcNy=YOCOSW{eP3y1-;(SEMaM9~CY~;c*a} zEQ;|ikD=I$1rKe-x$n;UMQ+ZoJes&@jmK)5TU!Q|s48_qvt2|$$+E40VAc#j zjj4Q|G&AqIuyaQ5NgakW<8dwrCl&E5m}hK9m(O13vFBZqc44~DKJ{L_(s)X3q9Led z75xTj45+33iWV;)AP{j@SsRZ8u^d+xtdea5|L~T?Y_O5CiFMbS3r{ksx`C9m@W!GX zQk8>)CKbt%yEft=+cX1cT@+&WJ1nuFgOix@6@#O2#>^jo4k{()D{S_Svi$q+(axCH za0$YXAUJKC- zwuZG1Lo6d4R^QE>0TedRAeFRO=44cKfVT-2XZry|7@sa{;9CeejNG5yUa^G>Fe@VA zm_0zbv5#e~01GvK+6nr-5G7ERxSFQ8$v(g4P3ljl2>1AIY_>i!UEa3a+ltBj(alf0 zVebQG-1D%pIcDS8NJ|0Jt_k9KW5A(N)3dnyiif;S-v!W?PURp&ygpcK>a;lh$_w{M zg*bqR-;fmGY{3C_I;{NYdJ`7tSgJii9b^nMJyu_ zS%qPM{`l4OajGE+zg!bpOJ|=GrQFda-C@pkQ5yR6f)~B{X*|`WG{gcYhyKbIyw1ynf$Un4Fw!Dep%yYW=< zz=X|9U2<~{-;)M@wglbpYY1Ai^Ha)=S(wv9Dhc!|f!T)S4PzkVkVdmJ{J#H2W{QoG znp{NdaNHwOmQJ9z_C2AiG1jpr+YgtcK%v$#Dw-LJHgGb-_|6lpd(hF%H~0^oO$Y{C zonwip;rP6)WHkmbV$Qm9e%my@4zbKC2%edMaB3O;cwn0O>IDh|BEk4hLZT&BDFARN zWjPJA$YGgz2l)r95q?pdGN`W9h%yvzfbWgRS;-sC%&69{ydH&+I;J?m@U4#}LW7Y9 zO%hLMcM%*#LW(E&qru_g4aPeUyiIxKxkq2Ub-7gf3Bji;J+E2lcsfc26zkzbeh?JZ ztDww&ZZiY|*FAI<%OX`bwF<2tL@dUhifE0Etz$gixL+q=3B^! z+{bqws?x=bk7#Yfr$Wgo>XyP2RCDl*kSiNUAEIk7HQ11s*)??A5c%4_?Ye|W>Q|(& zJ<}zEIa(WCb*i-#+)}g(3AueB7PZ~QWPc#8E~`5WS${}J(e=a6fmC!B#Aoz7*>%)j z1bHYcjB+0a&IPX9AH~D&L#jN{b5ua@$hseTvGee7Lh{ z&Eg#&Z%oVGTl2X_&7{vc^w`!f@Ki)u?i{w#^&w9l=Ntnc!c8RD053>FRBapr?L@kW zkU$@Je4}KL)QQ~#fJw5dZFNaAy{yArB`RxSCb%$4Cj)6hp6(7lg3-z#@?tMUbC>O| z&T&%i`#FG=@V*q>;Y`7grn+*5*)>Gm)^$-vLm7A7^4o0Bxl7h9*xw$_LW#M^sB8=V z#@Td*kwfG&i7Zjp-iaE{=GU!!&Q#bys^Azs62iJbiXhuUY_LQ_%xq*7imV47Om?*= z>$rZcBBzcvz!xX^eKt->(yixp1I(v{p9;)fTD=g6-swt6kT;^zv|F4^&t@3)E+7k0 zT-N*D^P_2yk{-<#b#B+di+AwXD#~CGn0m&fWFrkpDC2d#&o>qsX&(0~qItsMhWdma zIMCUXkM5(V=3LQRR1%P2&K$S}n}$t=&G|$ZBDrB4v*o`UvHiAt6;oN~$iQvmL5PXf z*B}HAT}6pmDkOrxQHtsieo53j6jG;y_RTupl8FKc{`~mH{0{JZvqvX2!y}4%&c+kn z!&x7v7@}#M(_jm{DeiM{QEV69>wdc@N*h-8HIm7>;M{g=&0qmf*1{xfVLp15&`8L+v~ zS=AXh2eH|xhc@v~HZyx3Oe+AL)qFm3^uW4t*^#-;LK)EA>mY{&qN?@!Lc+?XC5&#j zXaXvQeM;$VN{SMhY3^l^K)BSN)WC73ZE)ro>>GQ*gVp+D&u=@g;QTglVs*hXi@1{3 zX;i}92%9=e5dec2b{GfsnX^z@OKi)+X~xTXzGb~?bUU*WpW$&pYxU*R+M)@L<5}>} z1L~act+yo0C>@Ir0H0$k$zA?7Dl|RI-tupP)x+}I_elC}q$jnB@9ac)miN5_4n4df zylOOfl1zO(HP4{h)rElzH-wy$FahUSdwk^aI@iurQ)#Ic^M^Vk0*d8pn$9_=%?}u< zO`Cu%F8^=}+*j7Fu5G8YLMTxHS8L3u!pW=fw~=BK)D(m-Zw0$kXN+>dJ=lqY@7L!> zqB;i#$#->?<~@L|i|NzX3Z4QXia_N=TskD}+xE4PlQxVTRv8iZ&EF;sGW%6$05S7b zymTL7u#zr-iZq;1-~SQMgV9))yD%4FEfnGx`c_hW(-Qz>xj>Vcb<{a)rq6I$7?Ex% zB-Rzw+3li_bc2=xr;aZx?tb=RztyLqOxm;7Q0%cr_W22!bhNZuNs?v8MH z$%9hZF;R{bpp?+dOBclVJsAz4d;~c|L>~5%o z_s{P{LwGFcwoy3T=5Ro|s47|`DvL-FvcW%NZnOGf!_V>@#$ZG%Lhr8Dw^@K^G4R7{ zvS|uWJfB@yP#`&2J-crpas$zHLmsefoNiL8ncEzLsc%M&_CnNAjiPXBA>x%}>0FX> zo&EI1CVf$W@~R#<;~wBE#QOWtJfXgq^j5#A(w6|05&;|rfQWA5he_Zj{y82s_7+&} zj}ZK)X>w!l2D}URJN`Z)A&KtP%5lt!H59-1ZZ`{mpDww;UIHy4n!;4zTCVFxO+xh> zlSgE2oBZpVBIY0T+E$P^5+NJJf*5xgI1vD!@1KNJlr>_(v;99pI;$OI6+{D&a@OEUmJaB52E;PhGQG9z3We{K?|aWxuQ6wrj8`e>;}U6@P;g1*!4H?tTq zfZDmP+DXDjJ7gkhs^*)!r>`~C z4h2>d35%*E7u}CXaV>E+C$-)ZF*q^)cbO2(PN(FrilvE0{mv+kk1J^D&$^Io2SE-b z+m+NM?P;e8PQf?IA`X6_M*)5e&^3#r5iw#OG1EE0u|jFgqk!F;o1OHXZ{>HVQ3F83 zl3yaCJt_#z*ONlvE%(iIf)a88la^*^0&XkeHF7o8gAO2oH6XXE_Za8D5O6+p4vynq zz&$Tiy1jqc=R6ixv0^KO~0OgQhgrwqDTGqlaEjpzN5xcX>6%2g6j8R7g#{h(mMxsqM`STagwwc9*Ze@b6q1~~dz& zeeyeO^g#>uutd0P+~}$*CE^le9y{RhONF=6T6!iRg$!ak7yKB|=DcPgg1ga&Z9#qm znIQ=saKHV4>41%tsJEEMLEDg^uVo)>S?o#CE}=KbqJ@;`l4dJMaUHb)N%*?77uHocv8*c{M#i7v=R~d2RUGT)XB=+{v}>>zDXLQa5_7Ee?*82pC{lwfz&=U+z|>WkG4-8Q#Bzg@~G&Qe4_nK`A)@VYD>eH z0)Svz6GXL=2H7ay^505jpr6z-NWX4{IBrY&Fu5)WKfw-8`?{D_=K5!_d|+4$@}9HK zt~*aohXk`f$8`=H@;<0nIW=F}FTpfxsvT%fKVn=lAchlFDD;yQCSI1X^PK#X z8+U))_$V&OT(G?~-|-^BDFW)D>_uNeLVKF|=bM&6SV)U}7o}%ooT*TrOPJ<`FEl)a z-Q&}OJX~(IJ0Cly!6K9`VB;SpA;Y(djewd+!ZZ>2%OQ0_4^8IuQd&;2rIRA)}{ z@OD|H&>hSWxqS1HLh8te%e-ih8{46&09buRRfb+^o;hsYJ_GV%2O>YftfkPdiF~8$ zVZyi5-*-vOB$y07({*4EJ)iE)wA2|ADbg60{1mbO{c=3MIfVP7TPnh@*XaU0_Nz*j ziuhV$8q>i1Y7^E$Y$hw!F~!8IVz@V%ym7#C^z3H}fv8?f#*MkLi|F8MT#3s+^Vp$- zc**Ti1g@@xo7!Q5IYW%W2?zwk@h1s#78&ZCG(5#4A~3guQB-viZ-v!@0aACdsl?Ldg7P~`?%TZ|^rsfn~JyP5y=EoO$EO5@y)pZmGM-y4gt zNy9P)xJnNa-ZIBrWiP}B{{|mZs^n{$kwLvsPc`-&Vu>`;yRwgw3sR>XfOnw>RQ)(< z7Q<}s{!3d2(|vEJxpBtXH7tK_GbqpEzIhO$(?*MtTf1|spPSOE5}nd8s>B3k%2WUJ zWR4L9{(~6`Mt47y^hN4u9S2tjaB&ESYSlTWzM@#Ht%mJNSpY1QnU=LA*8V-fhi7!t zQXh{rOP8F$?*?ug)*GZ;-PeLFK^;4KLP=#f(DTTL7o{anwWzJ+;ZSZvq!wm#?TrE) zm`(NhIQTX}IheUjO~?)cQ{O!$-nEl1PO=QWp)6H)^4$O2+D=V^p?Sf#DOGwWaJsmjDjV7e#52-+MZ!*1m zllE;jhR}q-#KmHYorWr0dP88=ABx=KW zi1-gWDN#UKbGRDE37jAE6{8BM;dG{}Fp$4KCp><{zzvfsIW|e@k00WYOYq;&iRw1{ zLBujEi(O19DwEVQLkzGYF_U*V3KJmC3a*p2sz)IS!74Tws1Hv`gW@(=q?eZK8y6i6 z=A$AU{RUuyp{+p&K8$bL)`qh}XRrhzpjE0FBNB3)BO!e3p@*xqw~BMD@^a?OW4Olp*rwVo`ssQ4SCIoBD^*x?3hbTh%t~b)`tn+f z-t^N_%`4%sPU=Hi&}j+C8xNhqVsa5Iscc<*f{EO^uo1S~65%B1$FXKX-O7_BFMBbE z*xs`b8Kl77dE6>$o4H_>=X61kYmeK}$wC)~HYmRu(lHPU^Nyw0h(%5(yqpaanH8GD zc&JaKli!#{$wzv;E!>_8VDV}UO9#y#QM88D(pcs&7|+JOkMbvQjiP9I8$5!4iNwnf z*)d!xfc^+OpI{ulTh((@Ppf;`(q~UbIO#>b|LA6~_H9Y{hD0ZS;GR=Y;52z?l84p< zzu`{%2G#WQ4mbCMNth!a!KF_6m4S`DkP|b2v{dUVp!;{~0Ktfx;9NlX@F2uEac>MI z+knfwDI8TH_xkZ}|o%Nn(f)?=CDx`P)X z<8CDKLN6BTG(wV!`wp4!XbZH&gYOzp>yOMNpW-8M*nWj1SFI_5 zEp*+jtfuEWDA}#-qrXBC&0+OQ<$GqE|G(($v zW!WK(e;6gzT-tEnMeTC8n~k0|*WAR|QQ`fM?pMj!cHHcV3v*`k{#mc9pZPJJcEvIs ziC=U@J1m?C@&?d;?_U~C-dtcS3mBA%W;863BnM<|XLNtnp4MG7wTstTeIdO~V88g8 zMjlU}jqHIa)2Tcc`~rdk0-J){?cw57i1t~jbU?oAF;ut|vnXcOW;@@7zBoQHsx)`1 z4*Ss>HTh|A=6%(#5!d0%9NjZJ4rwy(`qe}ojsMft=Ip$njJ_cX>Soo46{@+>4@ zwLXie8v<=w5;j{@%=pSHCLPA<{UPj^6{RT>o#Y&hg}Qgb@aNTOT?%xiv+sInNSI!* zjwTT=xQ=-jXMf5PZZDj6Jd)HmP*ufYTXu6HT68^Ez1wCu{QD!z(Pe8op3Z$Af!%dy zryWx}L4Jox!dEUKEZk6r$qOzEU83n}4x;Di$GNDO(d89uFhB(ue$Zm(HyvS}^=k5v z4q9(!O}8$-m`6#%FF;CBc)Ge+khz%MbOgL)Mp_%t$Dd`rqBI>YF^E32DEUQ#)@Cv| zfe*`6HMAG0*dx7VDw6Cz4eSrmwW*4MhTDFvlmW&nX*K!H>{K&*BuP92(xmD zCM{h@8%Vp&JMDZM+N@Mi;l4EBA6!yV*PL zR&kak6BpPVOBa)vF6Xj__hBcw>h4GmN(GMBfpCF4PmOYR2a2ayUdIoH5JmPhN*r(v z^rLi@GBnr>>5rHHfErBF4K(v|hdCDibp|@A@kn-T+^cZw%O7 zx-_P6*K>d{bfE6c^YBOJm@QDaYeMJP#O0xydkMcmQvb|j2|R*CC-G(Y5zz&sN-g)R z0X48yt@;h6{fyaAwb7Q?^@SuJ zbVCUzUbd|HlrV1z?B1ISiIrz1<@^Ve>F9jf_13QcEWv!gXdN7Gu94qD{yisNdu&MKQ0k`{EX?iZGzi^XK9c%@O6JJH_I;8kA4GzDL$O^Y8z3X z)XUQlmJxc|znZ5OJENqOBec~9Rco>jhWx1lS@am3opmY0O^<88(|nYvKKjptcHs`l z6%)&BM&On)4E}4{eJUvFEy2|vjj|XmiFq>UvuAuS@an9WE5IoSG)|IUmqDBkUSJC; zmeep+>Ly|h{x*2#ip?I(dq;*|*m*g?2By#&kEIZ#Vqj&IvApnby#w0Of)za=D7zXI zQzu`9ZT@sK$T&BVuw@4`OW?7G(`{a(9^FP+3LTe6XT$Mb$9#oCyEHg*q6ZZEXgoH4 zBXGi;U$u`TZ)ivZLh&`4YX>bZa1S6u<>*>%Or^Sh(5CFWZw zWhbsHa_|Ip9wj%HH&5Nk7GlRE+gN&Ce0aPE%Y8&AEK7uvmDn~?9Pp4U$vy&F?wAf0B zaSu9DoZ<}Je5)8YXYqSzenqhW};J&x+(YeC-UHdd+r*Q9_uYb zie?c{b}JZj)5JvdpF_I1#@wl_Z(_&7r+Kx+64_X7)p^#}3pff2vp3hjhP~U_IhPP7 z&kug*N+4MFQp^L5q6E56<@rffz$U@OMi_tA++9GXQqwbvQZIORg_48 z(f+1A3w)SMIp`F*+KhOPZN^F;x$^uq z;70Lzq+#@yuevi_QD&S7LDmw9T~zP7s(5^9K`C|CvfE+|xp>zdB4+un1nJK9Zx`BE zC$Kj+${wf=Jc7J7mtPmw>#eC-dxfrJl=RRj5`@ClTRWX96?EtMgzXllc?vyJY~hLT zz=oXJ_6x_=m*M;4e2QogB>GTF9&i;n3H5&&Vc6iAtz%&y=8X_h@PuAq?6Quueb9)6 zAGac#R#@kWS1Cz&d6)J(#ch@f#Q#b?jJpz7M_x+kH`IGZA_xvl9*@bS0E7L&8#7CK z4Kb~`9}i&6+&4nxj!qvg}`_(R1@3(H4 zk2p`d;|Oo^I4b#EHbsMke#QI>40J>$$G(6WRI7z<=3&O0`#^4hU$cV{o$HUoOxZt~g&TLLOhCkxOp;wy0YI0b z)_%@a35Te3!ES%@pL*k_Sb`+*)@)>@s+$ek_U(c1@8~ zdTjp_{z4>kQ!gvzbcpm!PUW9VEXwhNF-2w7pw<*P-an)8<7OZTOQcHV1v=o}2K~pCS)uO~ci8%s74iAT29J`8@6cS25?{dufHp zv?Z4lzkv^N1s+s=q~0{(R0}_XSJD3Ugo7fL5EEEt5DgiTGoYW!EmgI%z^0?GC^n^} z;y|iHf0;sl#sG{%Ts|+1?^}?;lQ94XncNAWs3Si!D=KI&&_5hij6pa_BBRiW zvRl*8IJau*q&{L4x$HJzQL^&rqDN7PuL!Au!GC{$+8xv3;P`RCRgsorzE1S&!0sj8 z9=UjJOC;xz2-wK)U>_rIfMKK=Au(QTs@a^V8!J_#&%91joI%s^nS~z49COWpp7j=Z z1Mii_N-9Y`t+T8d_`h1>^{v@;*l`{)e6+?YHuBSq2}l8zy12@>@9JD?X0$Ftu?QYu5M+wxB_0`Gd6RVR^ z0n|HxR7EtMwk%L*`ZroV55ps>2F5bEeaJu5blubbw6{+t==X@UZ_Lr{DaFB4L@1#& zH->qSh-@4+2GTPCcSs&!is%KiUi)7I5=HQbVk;nfk1BdLL)Z%aSY=o+AKHhK3S%XdIuyDH!#HZj0tMAb79RHU6IJCJIm< z2Vf0|C*GpX%xEK(Pwg!JHdkIe4}2)jUbEu+Luv48)Se0Xs{3%H&#BZyIQ902QC{EN zahdpBh|=pvZLV_sv!KlFOxrwGGyE>eZ4M^%=L@?*xiCGnaty?f?ex4%X`&$>2FfB( zB2=lM@I2tvU7GPN%)v$(jliuyj(`c3>kg11;@cSiwjSK*Ig>&#gmEe57GS0a6nvFV z3w*eP?V<7Wy=`PxaL}0Wl?cjcFHFLZt+K?>QjI$SfpXUO9@lbfq`}hitX@Nwsv|8f z+!}A1eWu2g`z6Wq{OKukar#Sztj#~W>^!}?UY5+xOC@E63dNS(_(SnNH>j%Uj46I=nTUob;ap-Ya#AdX&Unwh}EwN=h<9c=exe z$cTL%ef&ydZ^M7rl{kMu*54+mVdXz#5UUXXsMIMHICCo&G@!mX9qSvd~^(Yb}bxS zcw$Vs(-f^({;b&yiZNO)nJduSvzF^&MtQG~?06mX9x0AQ%9?=@7N5cI+d5mpC2Ca) zC(zzg+5y)L*Nj|7FzlM4QpZzLm1x~7{0s=1MPv#H4>mM|G6n{Ggn$-;W~d;R>`>rj zdK8`9-l}G^%~WbNXkW*?eej_LCv7O`y=BTSMs*)I(F zOD17RAlTl-_&zvS4U89<)tGabd{meu?ZFPZHrSud(`#)9FB~1bGZh- z!r?{u@A^l!5XTcM9bO;$c}w4;&^=XI**g>W_=Hsn_BEOBf|JJ&@aybKHnqTgL-)H2 zpZQ(gt+a+PWz5x-vl|J%bMux?$3RfUntU?+II|59DUh(2v?~Gj3j;#mxCI?youOt~ z42~0Jz$suvTb>s*V4#U8M)5+$k5wNpu^LQ@nJ6mBeQ{B#H}GqS!z>~lm|V2PAXxP# zh^I4dGV5L4>L0eJBm1>F(?dd(i+@`>@MH=l9WdJ?@8NoQ=908XZTDRs+C0rjEey|2 z*>Y=j=mBY0=H3VGo?!e;STCh7APiu~m&5K_hGs{6=+u{(u^ZF)>mkd8jj9H2BTA}y zZnxIMUmvb{<{ud`D~61j38*Y7oB)6|&awVM@l$Besu$!AlhZiq+M8ChK>8}nwDI=r zzxlIk0ZWlH)_VefyE3Lz7-vvj-so@cf|{@KR~>*7cOP9h7bk(10E0gtEZDTt{&YMP1qsG zTGB>(eduX(*JBKVb<|G;I%%f8kSVez*;-D#e1FZQPxV{c-6 zh9!0mB~7d2xi;dhxpY+e7b)WH&PMK5asFH7gR(f2U#e9by(M`#K+mrtPNnf`(aS2F zvV~XbPiYx^NW=&tky^4?v*}>wHwR}D8k`Q++s|$H9lA+)0C0e{@7}{#w7v{~d?se+ z=tSuLy~E4rZet50uuCJ5qo{tQ=Bga%&vk$%r%$sUYe>#5*H<-+aRV| zV&76EV|d1Cc!6MSbEy8Gf2nE)EeYg=l_Cq<2O@=bS%rvpcJ!9cXus z#V$=@RIL`%a{aU!=drN9+@PuPix(7T2@`k-3Vk~S$!eRTe#fu2%+gchc&;k|1%D3mI%#@Nam0K3n0Lxo)_SKb?O<;7%Gaa z{!&#V9wv+nb^8I<&rMS>H6&gso9M!P~%?>HQ}rY5?= z?Ws6;zl@!^@bIEp;meTY@ttD-%u=^@M`Q`Hh=*(`hy8*`^Z^e8v-;~;WB^rx*1J0W zJ6-|%PB)Z;XN7!;i<&s=KAeDlqD|KaidEUO^~qodG+9K!On42h6$}Tn=6a4l2)Ypq zX`}*0#(Dp{k?U7L_2Xa5pVH-_v5?oH6Zo!VT!2TS4<`BC*Iflz>ezPcGI@7iY3JA| zem>LJ9xH75@R)nuO@_I0#?#@Md6$VCa@YM};!lZPFaK8C#cUgnzzI$3HUV*-l)0k+O7%*d9@VyhtARy-MmN zvQ~k$Pp*`b;zW z42$%W524lduiS6HFsxH{CtFPs05I{%AYy*Ta3(D~=U6lPH(=H!Do_unl?>h1dmJ*v znIF28{L68{E%}&3!F0{qi%FD-$$7J`mbbwD)SU**+f?( zF~b@nPOXYE88@N{xVn3Z8o3xsv-vvi=HDmA=d!~vbc;XcHeuC;X7g??XN4Aa`BA;ei+drL_L< z*QSlBC{-I2-^YFaYFoCmDf`Wx-gaftPdl26DnUD*fCO?pNxu9pqFw~dr)YvhujTzd z%h2=>3$Mx-@U4)3Cx42UH~Fm%96w6@=#=8;qW&H&g#RdO4NTZZc^(h8_gOHKn)}kd z$6v8$$|>O^xN6sZ1pfss5e(Q2ZkSy0`A@=+mV;kzoEeF#{E}W!qz%H0NagkVxLM#0 zO1jI;Kw3FG;H}?b=6H*=MAllDO1iJ{5 zJ(%g_63`RO(;Ynt+BGVUk^)k&$%6gYTCt!ttsKVQ;500kXk=UeY$Ta-&`w7OjkrE= zZGu0G1Yj{zDh19cRYnO@Gn1(i; { + // We start a shared worker where IPFS node is loaded. + const worker = createIPFSWorker() + // @ts-ignore - Store worker in the window so that it's available in console. + window.worker = createIPFSWorker() + + // Service workers do not have access to the `SharedWorker` API + // (see https://github.com/w3c/ServiceWorker/issues/678) + // To overcome that limitation the page will listen for the service worker message + // and provide it with a message port to the shared worker, which will enable + // it to use our (shared) IPFS node. + navigator.serviceWorker.onmessage = onServiceWorkerMessage + + // @ts-ignore - register expects string but weback requires this URL hack. + await navigator.serviceWorker.register(new URL('./service.js', import.meta.url), { scope: '/' }) + + await navigator.serviceWorker.ready + + // This is just for testing, lets us know when SW is ready. + const meta = document.createElement("meta") + meta.name = "sw-ready" + document.head.appendChild(meta) + + // URLs like `localhost:3000/ipfs/Qmf412jQZiuVUtdgnB36FXFX7xg5V6KEbSJ4dpQuhkLyfD` + // are loaded from service worker. However it could be that such a URL is loaded + // before the service worker was registered in which case our server just loads a blank + // page (that doesn't have data-viewer attribute). If that is the case we load + // the actual IPFS content after the SW is ready. + if (document.documentElement.dataset.viewer == null) { + load(location.pathname) + } +} + +/** + * @param {string} path + */ +const load = async (path) => { + const [,protocol] = path.split('/') + switch (protocol) { + case 'ipfs': + case 'ipns': { + document.body.innerHTML = `` + } + } +} + +/** + * Handles ipfs message port request from service worker and + * responds to it with it. + * + * @param {MessageEvent} event + */ +const onServiceWorkerMessage = (event) => { + /** @type {null|ServiceWorker} */ + const serviceWorker = (event.source) + if (serviceWorker == null) return + switch (event.data.method) { + case 'ipfs-message-port': { + // Receives request from service worker, creates a new shared worker and + // responds back with the message port. + // Note: MessagePort can be transferred only once which is why we need to + // create a SharedWorker each time. However a ServiceWorker is only created + // once (in main function) all other creations just create port to it. + const worker = createIPFSWorker() + return serviceWorker.postMessage({ + method: 'ipfs-message-port', + id: event.data.id, + port: worker.port + }, [worker.port]) + } + } +} + +/** + * Creates a shared worker instance that exposes JS-IPFS node over MessagePort. + * @returns {SharedWorker} + */ +const createIPFSWorker = () => new SharedWorker( + // @ts-ignore - Constructor takes string but webpack needs URL + new URL('./worker.js', import.meta.url), + 'IPFS' +) + +main() diff --git a/browser-service-worker/src/service.js b/browser-service-worker/src/service.js new file mode 100644 index 00000000..16e5e9fa --- /dev/null +++ b/browser-service-worker/src/service.js @@ -0,0 +1,372 @@ +// @ts-check +/* eslint-env browser, serviceworker */ +import IPFS from "ipfs-message-port-client" +import { defer, selectClient, toReadableStream } from "./service/util" + +/** + * @param {LifecycleEvent} event + */ +const oninstall = async (event) => { + // We don't want to wait for old workers to be deactivated before the + // new one gets activated + event.waitUntil(event.target.skipWaiting()) +} + +/** + * @param {LifecycleEvent} event + */ +const onactivate = async (event) => { + // We want to start handling requests right away, so that requests from the + // very first page will be handled by service worker. Which is why we claim + // clients. + event.waitUntil(event.target.clients.claim()) +} + +/** + * @param {Fetch} event + */ +const onfetch = (event) => { + const url = new URL(event.request.url) + switch (url.origin) { + // Our service worker only serves pages for its own page origin + case location.origin: { + const [,protocol] = url.pathname.split('/') + switch (protocol) { + // If requests are for `/ipfs/...` or `/ipns/` URLs we respond with + // a content viewer which is a page containing an iframe + // for actual content like + + + +`], { type: 'text/html'}) + return new Response(body, { + status: 200 + }) +} + + + +/** + * Fetches content from the IPFS and responds with it. + * + * @param {Object} options + * @param {Fetch} options.event + * @param {string} options.path + */ +const fetchContent = async ({ event, path }) => { + const [,protocol] = path.split('/') + switch (protocol) { + case 'ipns': { + return await fetchIPNSContent({ + event, + path + }) + } + case 'ipfs': + return await fetchIPFSContent({ + event, + path + }) + default: { + const response = await unsupportedProtocol(protocol) + return response + } + } +} + +/** + * @param {Object} options + * @param {Fetch} options.event + * @param {string} options.path + */ +const fetchIPNSContent = async ({/* path, event */}) => { + // Challenge: Implement IPNS support. + return new Response(` + +

IPNS protocol support is not implemented

+

It is left as an excercise to the viewer

+ +`, { + statusText: "IPNS support is not implemented", + status: 502 + }) +} + + +/** + * @param {Object} options + * @param {Fetch} options.event + * @param {string} options.path + */ +const fetchIPFSContent = async ({ event, path }) => { + // Obtains IPFS instance + const ipfs = await createIPFSClient(event) + try { + const stat = await ipfs.files.stat(path) + switch (stat.type) { + case 'file': { + return await fetchIPFSFile(ipfs, path) + } + case 'directory': { + if (!path.endsWith('/')) { + return Response.redirect(`${event.request.url}/`) + } else { + // try index.html file in this directory if there is such file + // render it otherwise render directory + const index = `${path}index.html` + const stat = await ipfs.files.stat(index).catch(() => ({ type: null })) + return stat.type === 'file' + ? fetchIPFSFile(ipfs, index) + : fetchIPFSDirectory(ipfs, path) + } + } + default: { + // If non file redirect to ipld explorer + return Response.redirect(`https://explore.ipld.io/#/explore${path}`) + } + } + } catch ({ message }) { + console.error(message) + + // If such link does not exists respond with 404 + if (message.startsWith('no link named') || message.includes('does not exist')) { + return new Response(message, { + statusText: message, + status: 404 + }) + } + + // If problem with CID respond with 400 + if (message.includes('invalid')) { + return new Response(message, { + statusText: message, + status: 400 + }) + } + + // Otherwise respond with 500 + return new Response(message, { + statusText: message, + status: 500 + }) + } +} + +/** + * @param {IPFS} ipfs + * @param {string} path + */ +const fetchIPFSFile = async (ipfs, path) => { + const content = ipfs.cat(path) + const body = toReadableStream(content) + // Note: Browsers by default perform content sniffing to do a content type + // decetion https://developer.mozilla.org/en-US/docs/Mozilla/How_Mozilla_determines_MIME_Types + // but it is limited to web relevant content and seems to exclude svg. + // Here we fix svg support that otherwise breaks many pages doing proper content + // type detection is left as an excercise to the reader. + const contentType = path.endsWith('.svg') ? { 'content-type': 'image/svg+xml' } : null + + return new Response(body, { + status: 200, + headers: { + ...contentType + } + }) +} + +/** + * @param {IPFS} ipfs + * @param {string} path + */ +const fetchIPFSDirectory = async (ipfs, path) => { + return new Response(toReadableStream(renderDirectory(ipfs, path)), { + headers: { + 'content-type': 'text/html' + }, + status: 200 + }) +} + +/** + * @param {IPFS} ipfs + * @param {string} path + * @param {number} [limit=174] + * @returns {AsyncIterable} + */ +const renderDirectory = async function * (ipfs, path, limit = 64) { + const encoder = new TextEncoder() + yield encoder.encode(`

Index of ${path}

    `) + + for await (const entry of ipfs.ls(path)) { + yield encoder.encode(renderDirectoryEntry(path, entry)) + if (--limit < 0) { + break + } + } + + yield encoder.encode(`
${limit < 0 ? PAGINATION_NOTE : ''}`) +} + +const PAGINATION_NOTE = '

Directory has too many entries

Implementing a pagination is left as an excercise to the viewer

' + +/** + * @param {string} base + * @param {import('ipfs-message-port-client/src/core').LsEntry} entry + */ +const renderDirectoryEntry = (base, entry) => +`
` + + +/** + * @param {string} protocol + */ +const unsupportedProtocol = async (protocol) => { + return new Response(` + +

Protocol ${protocol} is not supported

+ +`, { + statusText: `Unsupported protocol ${protocol}`, + status: 405 +}) +} + + +/** + * Obtains MessagePort for the SharedWorker operating IPFS node and + * creates a client for it. + * + * @param {Fetch} context + */ +const createIPFSClient = async (context) => { + // Selects a service worker client that can be used to obtain a message port + // from, then sends a request to it and once a response is obtained, creates a + // IPFS client and returns it + const client = await selectClient(context.target) + const port = await requestIPFSPort(client) + return IPFS.from(port) +} + + + + +/** + * Sends a message prot request to the window client and waits for the response. + * Returns promise for the message port it will receive. + * + * @param {WindowClient} client + * @returns {Promise} + */ +const requestIPFSPort = (client) => { + // We might receive multiple concurrent requests from the same client (e.g. + // images, scripts, stylesheets for the page) to avoid creating a port for + // each request we use a little table keyed by client id instead. + const request = portRequests[client.id] + if (request == null) { + const request = defer() + portRequests[client.id] = request + client.postMessage({ + method: 'ipfs-message-port', + id: client.id + }) + return request.promise + } else { + return request.promise + } +} + + +/** @type {Record, resolve(port:MessagePort):void, reject(error:Error):void }>} */ +const portRequests = Object.create(null) + +/** + * Listens to the messages from the clients if it is response to pending message + * port request resolves it. + * + * @param {MessageEvent} event + */ +const onmessage = ({data}) => { + if (data) { + const request = portRequests[data.id] + if (request != null) { + delete portRequests[data.id] + if (data.port instanceof MessagePort) { + request.resolve(data.port) + } else { + request.reject(new Error(data.error)) + } + } + } +} + + + +/** + * Sets up service worker event handlers. + * @param {any} self + */ +const setup = (self) => { + self.oninstall = oninstall + self.onactivate = onactivate + self.onfetch = onfetch + self.onmessage = onmessage +} + +setup(self) + + +/** + * @typedef {FetchEvent & { target: Scope }} Fetch + * @typedef {ExtendableEvent & { target: Scope }} LifecycleEvent + * @typedef {ServiceWorkerGlobalScope & { onMessagePort: (event:MessageEvent) => void }} Scope + * @typedef {Object} MessagePortRequest + */ diff --git a/browser-service-worker/src/service/util.js b/browser-service-worker/src/service/util.js new file mode 100644 index 00000000..ecc0b14c --- /dev/null +++ b/browser-service-worker/src/service/util.js @@ -0,0 +1,120 @@ +/** + * Find a window client with the best score. + * + * @param {ServiceWorkerGlobalScope} target + * @param {(client:WindowClient) => number} [scoreClient] + * @returns {Promise} + */ +export const selectClient = async (target, scoreClient = scoreWindowClient) => { + // Get all the controlled window clients, score them and use the best one if + // it is visible. + const controlled = await getWindowClients(target) + const [best] = controlled.sort((a, b) => scoreClient(b) - scoreClient(a)) + if (best && best.visibilityState === 'visible') { + return best + // Otherwise collect all window client (including not yet controlled ones) + // score them and use the best one. + } else { + const clients = await getWindowClients(target, true) + const [best] = clients.sort((a, b) => scoreClient(b) - scoreClient(a)) + if (best) { + return best + } else { + // In theory this should never happen because all the content is loaded + // from iframes that have windows. + throw new Error('No viable client can be found') + } + } +} + +/** + * @param {WindowClient} client + */ +const scoreWindowClient = ({ frameType, type, focused, visibilityState }) => { + // Eliminate nested clients because they won't embed JS that responds to our request. + const top = frameType === "nested" ? 0 : 1 + // If not a window it's not use to us. + const typeScore = type === 'window' ? 1 : 0 + // if not visible it can't execute js so not use for us either. + const visibiltyScore = visibilityState === 'visible' ? 1 : 0 + // if not focused it's event loop may be throttled so prefer focused. + const focusScore = focused ? 2 : 1 + return typeScore * focusScore * visibiltyScore * top +} + + + +/** + * Utility function to get window clients. + * + * @param {ServiceWorkerGlobalScope} target + * @param {boolean} [includeUncontrolled=false] + * @returns {Promise} + */ +const getWindowClients = async (target, includeUncontrolled=false) => { + const clients = await target.clients.matchAll({ + type: 'window', + includeUncontrolled + }) + return /** @type {WindowClient[]} */ (clients) +} + +/** + * Utility function to create a `promise` and it's `resolve`, `reject` + * controllers. + * + * @template X,T + * @returns {PromiseController} + */ +export const defer = () => { + /** @type {PromiseController} */ + const controller = {} + controller.promise = new Promise((resolve, reject) => { + controller.resolve = resolve + controller.reject = reject + }) + + return controller +} + +/** + * @template T + * @param {(AsyncIterable & { return?: () => {}}) | AsyncGenerator} source + * @returns {ReadableStream} + */ +export const toReadableStream = (source) => { + const iterator = source[Symbol.asyncIterator]() + return new ReadableStream({ + /** + * @param {ReadableStreamDefaultController} controller + */ + async pull(controller) { + try { + const chunk = await iterator.next() + if (chunk.done) { + controller.close() + } else { + controller.enqueue(chunk.value) + } + } catch(error) { + controller.error(error) + } + }, + /** + * @param {any} reason + */ + cancel(reason) { + if (source.return) { + source.return(reason) + } + } + }) +} + +/** + * @template X,T + * @typedef {Object} PromiseController + * @property {(ok:T) => void} resolve + * @property {(error:X) => void} reject + * @property {Promise} promise + */ diff --git a/browser-service-worker/src/worker.js b/browser-service-worker/src/worker.js new file mode 100644 index 00000000..2b35fe6f --- /dev/null +++ b/browser-service-worker/src/worker.js @@ -0,0 +1,71 @@ +'use strict' + +import IPFS from 'ipfs' +import { Server, IPFSService } from 'ipfs-message-port-server' + +const main = async () => { + // start listening to all incoming connections - they will be from browsing + // contexts that run `new SharedWorker(...)` + // Note: It is important to start listening before we do any async work to + // ensure that connections aren't missed while awaiting + const connections = listen(self, 'connect') + + // Start an IPFS node & create server that will expose its API to all clients + // over message channel + const ipfs = await IPFS.create() + // And add hello world for tests + await ipfs.add({ content: 'hello world' }) + + // @ts-ignore + const service = new IPFSService(ipfs) + const server = new Server(service) + self.server = server + self.ipfs = ipfs + + // connect every queued and future connection to the server + for await (const event of connections) { + const port = event.ports[0] + if (port) { + server.connect(port) + } + } +} + +/** + * Creates an AsyncIterable for all the events on the given `target` for + * the given event `type`. It is like `target.addEventListener(type, listener, options)` + * but instead of passing listener you get `AsyncIterable` instead. + * @param {EventTarget} target + * @param {string} type + * @param {AddEventListenerOptions} [options] + */ +const listen = function (target, type, options) { + const events = [] + let resume + let ready = new Promise(resolve => (resume = resolve)) + + const write = event => { + events.push(event) + resume() + } + const read = async () => { + await ready + ready = new Promise(resolve => (resume = resolve)) + return events.splice(0) + } + + const reader = async function * () { + try { + while (true) { + yield * await read() + } + } finally { + target.removeEventListener(type, write, options) + } + } + + target.addEventListener(type, write, options) + return reader() +} + +main() diff --git a/browser-service-worker/test.js b/browser-service-worker/test.js new file mode 100644 index 00000000..2d297a7c --- /dev/null +++ b/browser-service-worker/test.js @@ -0,0 +1,32 @@ +'use strict' + +const pkg = require('./package.json') + +module.exports = { + [pkg.name]: (browser) => { + browser + .url(process.env.IPFS_EXAMPLE_TEST_URL) + .waitForElementVisible('body') + + + browser.expect.element('body').text.to.contain('Load content by adding IPFS path to the URL') + browser.expect.element('a').text.to.contain('/ipfs/bafy') + + browser.waitForElementPresent('meta[name=sw-ready]') + + browser + .url(`${process.env.IPFS_EXAMPLE_TEST_URL}/ipfs/Qmf412jQZiuVUtdgnB36FXFX7xg5V6KEbSJ4dpQuhkLyfD`) + .waitForElementVisible('body') + .waitForElementVisible('iframe') + + + + browser.element('css selector', 'iframe', frame => { + browser.frame({ ELEMENT: frame.value.ELEMENT }, () => { + browser.waitForElementPresent('body') + browser.expect.element('body').text.to.contain('hello world') + browser.end() + }) + }) + } +} diff --git a/browser-service-worker/tsconfig.json b/browser-service-worker/tsconfig.json new file mode 100644 index 00000000..341ea193 --- /dev/null +++ b/browser-service-worker/tsconfig.json @@ -0,0 +1,20 @@ +{ + "compilerOptions": { + "allowJs": true, + "checkJs": true, + "noEmit": true, + "strict": true, + "noImplicitAny": true, + "strictNullChecks": true, + "moduleResolution": "node", + "esModuleInterop": true, + "lib": [ + "esnext", + "DOM", + "webworker" + ] + }, + "include": [ + "src" + ] +} diff --git a/browser-service-worker/webpack.config.js b/browser-service-worker/webpack.config.js new file mode 100644 index 00000000..5c6b204e --- /dev/null +++ b/browser-service-worker/webpack.config.js @@ -0,0 +1,55 @@ +'use strict' + +const path = require('path') +const webpack = require('webpack') +const CopyWebpackPlugin = require('copy-webpack-plugin') + +module.exports = { + mode: "development", + devtool: 'source-map', + entry: './src/main.js', + output: { + path: path.join(__dirname, 'dist'), + filename: 'main.js', + publicPath: '/' + }, + devServer: { + serveIndex: true, + index: './index.html', + compress: true, + port: 3000, + historyApiFallback: true + }, + module: { + rules: [ + { + test: /\.js$/, + exclude: /node_modules/, + use: { + loader: 'babel-loader', + options: { + presets: ['@babel/preset-env'] + } + } + } + ] + }, + resolve: { + fallback: { + "stream": require.resolve("stream-browserify") + } + }, + plugins: [ + new CopyWebpackPlugin([{ + from: 'index.html' + }]), + // Note: stream-browserify has assumption about `Buffer` global in its + // dependencies causing runtime errors. This is a workaround to provide + // global `Buffer` until https://github.com/isaacs/core-util-is/issues/29 + // is fixed. + new webpack.ProvidePlugin({ + Buffer: ['buffer', 'Buffer'], + process: 'process/browser' + }) + ] +}
  • + + ${entry.cid.toString()} +
    ${JSON.stringify(entry, null, 2)}
    +