From d011ec602a8d2289315ccd5c660de737d7189169 Mon Sep 17 00:00:00 2001 From: Jason Kuhrt Date: Tue, 27 Jan 2015 19:15:33 -0500 Subject: [PATCH] First pass at integrating postcss-url into cssnext. There is one test that demonstrates url-writing in the face of @import. --- index.js | 3 ++- package.json | 1 + test/features.js | 12 +++++++++--- test/features/url.css | 1 + test/features/url.expected.css | 4 ++++ .../url/assets/source-sans-regular.woff | Bin 0 -> 19616 bytes test/features/url/dependency.css | 4 ++++ 7 files changed, 21 insertions(+), 4 deletions(-) create mode 100644 test/features/url.css create mode 100644 test/features/url.expected.css create mode 100644 test/features/url/assets/source-sans-regular.woff create mode 100644 test/features/url/dependency.css diff --git a/index.js b/index.js index 7cd9c54..96488ba 100644 --- a/index.js +++ b/index.js @@ -7,6 +7,7 @@ var assign = require("object-assign") var features = { // Reminder: order is important import: function(options) { return require("postcss-import")(options) }, + url: function(options) { return require("postcss-url")(options) }, customProperties: function(options) { return require("postcss-custom-properties")(options) }, calc: function(options) { return require("postcss-calc")(options)}, customMedia: function(options) { return require("postcss-custom-media")(options)}, @@ -60,7 +61,7 @@ function cssnext(string, options) { var postcss = Postcss() Object.keys(cssnext.features).forEach(function(key) { - // if undefined, we use consider feature is wanted (default behavior) + // if undefined, we default to assuming this feature is wanted by the user if (features[key] !== false) { postcss.use(cssnext.features[key](typeof features[key] === "object" ? features[key] : undefined)) } diff --git a/package.json b/package.json index 177bdbe..e65fe6b 100644 --- a/package.json +++ b/package.json @@ -48,6 +48,7 @@ "postcss-font-variant": "^1.0.0", "postcss-import": "^5.0.0", "postcss-media-minmax": "^1.1.0", + "postcss-url": "^2.0.0", "read-file-stdin": "^0.2.0", "to-slug-case": "^0.1.2", "to-space-case": "^0.1.3", diff --git a/test/features.js b/test/features.js index 6142676..4d4c5e3 100644 --- a/test/features.js +++ b/test/features.js @@ -21,8 +21,14 @@ var testFeature = function(t, feature, cssnext, version, source, input, expected t.notEqual(css, expected, version + ": should not add " + feature + " support if disabled") t.equal(css, input, version + ": should not modify input if " + feature + " is disabled") - // enable only the one we want to test + // enable only the one we want to test... options.features[feature] = true + + // ...except "url" because we want to validate its behaviour when integrated + // with "import" + if (feature === "url") { + options.features["import"] = true + } t.equal(cssnext(input, options).trim(), expected.trim(), version + ": should add " + feature + " support") } @@ -35,8 +41,8 @@ Object.keys(cssnext.features).forEach(function(name) { test(slug, function(t) { testFeature(t, name, cssnext, "node.js", source, input, expected) - // we do not support @import in the browser - if ("import" === name) { + // we do not support @import or url rewriting in the browser + if ("import" === name || "url" === name) { t.end() return } diff --git a/test/features/url.css b/test/features/url.css new file mode 100644 index 0000000..272d4c4 --- /dev/null +++ b/test/features/url.css @@ -0,0 +1 @@ +@import './url/dependency' diff --git a/test/features/url.expected.css b/test/features/url.expected.css new file mode 100644 index 0000000..2e7c6ad --- /dev/null +++ b/test/features/url.expected.css @@ -0,0 +1,4 @@ +@font-face { + name: 'url-font'; + src: url('url/assets/source-sans-regular.woff') +} diff --git a/test/features/url/assets/source-sans-regular.woff b/test/features/url/assets/source-sans-regular.woff new file mode 100644 index 0000000000000000000000000000000000000000..34fdfde24860b4170aa4d1015ca47021dc89ab2e GIT binary patch literal 19616 zcmY&YkpNgPNJ@ z_D~QP2LJ(nifkSL`M3zzjCM&15EoaK`{5RUWZeH? z!92tj68q* z3jR0#|7;0?7yyCxMs{XD+>c*q7XW}FaTKo-!qLIS6#$T~`>{LzX>)FJri;_V%=o8& zvgto|;Q!$oUYW*o-New;&~OJ}j1JBZUNV`y_)+k&$qP=7!I6sy-km*|$P11J&JK?F zqXk@XU}X5w8VXbdQ%MP^>wt#-Y30Ykf0s$Vf|>uR^N&RStEZK6WB*^6kPt*I|=vt>9cyZMBzFk48BXjZUs1BpY=k77K@&P9YQmCrctK4^=*(gRw&2 zVn)Izj#ms0IJj_`>Ds=2?|$wUNUCT{yMEvDxc>AX1h@qfiu>;7uozQ_-K zNDy3=Q;*v1$kY)>tCx=+%1OAD_D)`&bN5d95{)IRN56o+ASshwPp`W^DXYQ9+_cET5TY@hFe z+ogBXCDqk?58S-J=I8kYpeq{69;#xR95-G@o;({G)i&Jhy&i9eVLWEfE1qKsJWkZ58B$yZr?#O?yNV=#$M}$rkkO z+XT+Wj#?Vx3spy54((F|L56L`(iQq!!xF)50f}2KprGLmUu^CX4Tryf)n#Xj&Hk9? zWm93w6}ghaY8qAX(7%R%*uu%CgiAee1#8+_z>_V)F_R^IQ>Ef2>&|P_#1-;!kFUQd z&PPdS?!q055BQ(p2fu;v`J3OtG{aGB_9UL{RtH0+xeVjetu)Ta*#7-H9sf?=K(?u^DTdd8b2rfF9XRaf2b@%!AziY@&x$w0Tu|6g z+)yy9xR+VdtmghkInq-XK1;iS6GOP+FD2Y>LtVxk%^d(Rr`%hVs1b<6^NKrX_BhYX zR6GQ!0SP>TUZby_9rOEZ(dvh9|K1IY#=l8L+jg+DcXofHc9mi|Qwd7HI;vc!I8^t~ zco(GD^Y|<9Ky`J1@KUz>C`;y!nyu!2Y$@bn7dR--?S|^AhpRxEpYhNpmv-XcRr2^0{aVa*_NdiiD{+F0Wv^G~HMEWE#gSE|P8vwlA8puO)foBd8RZ4ZCP%NwK%z-=E zw=pEbiSH$WWmeN8KgWKA-(Bo?RpgJ`%6=A+!bF3k<%`t?=>D zq2I?wK`Ac=`&2><7W&GHfdwWV87+8ZAb{voEKS^x|dT;$o?G zP@i7H2%%)91||qrqpaaE@dsveG^Zs}2s|9<=zb8pk>R=XW0+C_Pph<_sJcc4l+g~9 zM>;3CM4Xni3f-bMjfrda`~NmjBNIO2fW}`VcXl3{__ZgE`Kf=N>^M8rFr@W8nia40 z_qGiYDd-t0JGLx<*5RhiGaAd2{BczVcik~thmo5ce~c(LXCyLn+ktXLw!=~20O*;T zcvVU!4Rf13WXu0b{T4+2(2IY{BIuS)VKb-sWt0clYW~_JMvru6{$3vyT;CX|?z>(% z7o6m#E->lts3xXm>}Di9oJt^mJ)3>1P?|@&9JLy4UO>rPva>qM(WOg1>kccLOvIS# zd(?(f8h`A?1*t)KeH-TK(oNN*>Gv@f)nsm9Rym`3(V#TlZG2@|;$glAwo+DDs5Zo} zr^fL>`vZkp{mLfpT@_S-@CZENx6kp2$Tw}r( zl#pnuN>!D#xzkTxEX1EyQDEXC6H&{zX!FrNFLE6R>t-9h=n&aCz&#u5mz@0Yg{2Yl zZR<3p8eYAo*&NC|gcSE)P!=*h3``bsk6k-|@DebY_7^R7QuJ?2^G)++rry>O!4jib z9fC#Hc+H18k{Vfzz54p|h5i^oQpIuL`uDvrV^d4V(XQ;fpQj35LLbYCa_wuEicQ4m ztaGQ6x7dcQ^7N!U1CzzGo|xaqc+|{TN=`5pw-w%-PDe8KS|F5eD?8)&r#V;5z2cTG zuG?9F=Z`Oa|FdWQJ$PJKIFaA>eDz?*5x`{2ufEl_gf?jC0OhvS)<({Z}+y?FoVIy_V6m(TBGS1!eHtdP};Gjfj5OD1?o_|?- z(HX&yWfxuJ%frZ$ef!k@uMwR-U6*=t9errwkFgF5%S;M}^V;ej6-k7C%Zo|GpgEl0 zSz)&m$5(fR+3oUO5>YquLWMUJ=hfX7v;gMrP^5)$t^7wWM#yz3ZIDD)>U_Ig_x!t7lI*EHj zslOOR3oeB7ts4a8iKS$>p69O3uhed5rna_$qcDSW!X`y;V7v1FQIGl_1$W|q`j0=T zMh4Vg*e3cg7BtixFHW9neFKY$vG~fFjhjvddPeOJ7hdeQuPG1k@#m-@BSv3)bq>5& z`nREQ7;G~jBToNAe&r5=WXLbz^%r3t7}zQE*5H|bA0mbeU6iK3EqZYrXi(2|5Ht?= zYg~?~=0oc;iaVncD~c)}ij!atcS%izP4<6pQDprr>pYz)_c;F>;gg2OFln0kOx2ty zF|&GpC~W!fh1QJuINFJLalj(PZA*_&VI|c0pNECtSR-tBj6Za>K+#U9K`7&bff?`> z(U(abSg2@DmkcTaT?^Y5D!RKoDv8t7`8ce&qt`Hmb~YU zzp3*YCq&vpGYiyj_|+v67iy|r$;&dTP2tP)+$cDF&F(!RVvL8)X8*dWcB2>iwOYFzIq{g zRZMIK5BRQRYjHJjmK=t~Y=Nk%E&2RH8*}ry+yq;{{3zio0&;k*X4I<96?Hzh>X6cS z9;(aQ%c|Z&;CZU9WneB`gd2j*SmW6ZyS%jp4H7%!AA2Gh_A7pC)3NG>Eh{I`EIYx0w6C#TkaOH|gox?=raR?pDUV;Q@H zo+Sk|pt8b`Tuv|4AqG%8EOCa;fmP!GMG zX0md)vv2*t56sOEXfNme@^H*qR>V15AtLA?w5rYH7tt%rIt84epNZQQa46*#lRV)6 z-4Y4N|MS4n9(wEl2Jx9$v(R(W`rv?_zb%C0E8SE2JHeCJ82nK+!B8-!r|iMVMIWn1h(l!IF?!VL>TD5M>%cLLq&jL2#7AgND635N2Xbs)1Uu zuylr*8Ac!jRN)Y?v4-^siYzaIn$XtT2m`F)Y_J=>)QAnjhUg%=$x%W8OA1*Gk`RPw zT6R7{e#vYg>V8nyR_GAAgrz}75X))Wa4^_#*oeT{;9W>W?cm2qqEn!7C=q1%1;PSZ zSYlXY!4^O?=O87XDifO8gX&wq1jXlNd2hy^YVj`$bkfGPNu78W9~2|ffkVF<+ZmU)rs!vfa4 z%8+~5RU$}6NK{B#NM1-vNKVM0Pnt;ID6U{0Bz#-;`#WT67wk-@7ZX%%DvvOaFrN@a z%??Uq3Q~3I<@@}5aF2G$RR=|LHf2p(M|Fr z)nb?^h&Vg=UvzPD!oJWNz=<2WI=ef(JiR@>KEFSZ5Rnm*5|a~@6qOa07MB;87?~NG z8k-xO9GxAW9-kkG2#E=b3X2Pj42=zr4v!Cn1ce2L28RcN0)qpAfxvfQZ{AMAY~4-d zXxT~n>fe`8(eRe1>8ml8BRc&i)3y0S8jV`*M)%KlI2;a#e+_mcPkbHES0u{rQd;ODBedbh;NcI>b?463nCchSveO{-E;iR>Y|Zilt}kcJI<2+at7DEgkOTV= z2)TR~Wu0CT`NgGet(5`&gWcr|m?e`LJXyOZ^}=~2)ISf{%{9se@UzeU*?e*h!X_2i4loAxM-pa521Z8y2TE#SVyd_cVq)zg%VmT3yWK695Et)aiO01@(+i#H9-ttGx_ zFo!QD^RGn%e69Hm^wK1!Iq^VQF*Mw>Vx#ki;s)i32vJI-a+|9EcwxQTn(wk%3QV1= z&fydGt60}K9G~)gh?4XJjO8d0eH$TyT7m@q8z}@?FnBVgS#KDS?C?UAZGK&hlQ|}# zJ23O=1^d8xjrb@%H zjKD|`h=%3!)I$f|5*tbyO;!3by`%GHW`FPC+?lG?@i3klEra)2-yj3|q4nfIv_@AT zrL4m7t(GotvsGPi8Hxj|Qc7*i5m*!3bf(xur@p3D9__n%^)?@EZsm5{V(7fobslS8 z@9ud|&h;2tJE5ni8pq51GakI_?XRP*UpzGW8?Dc?L=U@0oqn2y=KPnaO(yM=SUTp|TS7Lp zFx7?Qz>?Kw{tv+_QFu5AybgKdbER?JI z93-?sk1jQQjt?H zmfDb$6|P{;+H)$sprvwri5Wwg5?fl4fl$nm7}gV0Ffc$|f;$94>{#4{Z-BAlaS?CB z9Lz(0yqb0XvTRHl1gU89WJ8tsNXSZp7q_Dm!pnpFctG)d4#vrhD>{L?d(EzzFhSYD zGompG3Q)3A)6P(*TNoc?u7{3|(f{5Wj4v*qKS$Zp!O$8Ym+e9PQ`Y^MqGS9Jc1q`I zhv*VwhhmD7Eghvxl4e-h{9C5istK-&0f?*Y4!n#WlxH?mxCz}LHxyfl&Lvm7dK|&> zZ`bZ)v9YplgJtqa72?$7jrC%B!MucsK=pBKY$zSUPBT*;9(P}c=P_2fxIGGpeXx61 zPCheD-xndlz>uq@&ub8J5`^SAyKk>%p-P?Fs_ZU+tu8zoc%RNy`eB1$pv)jLV0~=a zHsbNK|pk`akFxWwBheCr=)L_w~8XwL!PrxwF33Y4}IO9TOoMXpoj66L;uz z-h!n87bcW#ARA)g$neZu0OJ;TRg+l1Q>ZvwYO-($8=_1l5GNmJLL~%x%0=;{laRu) z>YmNOP4hbw+~9!a2dHYskfvew8}v|)b(@^4mdS!}?bPeip%jdQgJlQ*7L~WV(cLCq zqmYob)xuCTbx-#A=h)Z;|7X@n#bR*r(&@eUBH|ZYdJi`2Mvjqd;61@F=s3Li5R4qm z4rF2x9=VGe7948^Ke*+?(v@Ud>nqDIXP4y?jqi8%vkHT*R!SF@jIR|k8);^2g$un_ zkA}6EeI5O89+AVcUfw1X|Djm4)F$1%e6`5IUU4ENLpdPpF*rqz$w^+YY_I*mdbsv% zFoeEgu7D(5A(n}H@=}ZXAUzJqE^FCqdsqwJd=FrBpkv2DYASWM)K<$*y0a6lcXd?O zEBeKsEu}}Wnq-lr*4A5XUGQgpz+!a{+AB6@y$;tJ&e4Tv7V8SX?pBjGcQFgt0LSd7 zKfVnU1w5=j@D6Vc80x+A2sRiQzJJv^9<|B?&b|5aOWZmbH%hL-F-~^Y!O$DqG~ZX> zpKyd6PkR4)?z@KykT5ZxV+PI@qV$%2H6FW#>h(34T0Q0df*l3~fqSIie2)KzYv~x@Nvu_9L$%dyDlc@$GDH9}hPN!N1I(Tt68U8*VgQBtUYw@iQNbmhi?c{bNc|MDY9`rj&=D_bk_roV)R2&?l&89J^^^M zc}=Q z>P84xpvx~(`rbrd6XKz%hHK#mWIjSYB6B0#9V*|u1gb69y}_?AGd&sxf6Yp7TVXY7 zt-@M8BnAUQ!(!sDP2~Tg3OvGGpv4-57cWk*NWS?*5jIQIjp@`GZ4nV|>G$;wr`z`c zaczqk#g!t}>6Bdn6u>dzH5FAH(!gs$eVhVweb-jnlnBs4#SIOxBloeM9D2=3KM4kF z#DAXv)dABnHscOnRw=OP_#0B>Q$VWL*L|rS-hdcvHz(;$ok7DWX&M;`{9Prn zDw+Sb)mf3B1+JO}L4^vSl?eX>k(yP!bUo-ua+3oU%Eh_NvxD}_zn?#+FF2(hKZkrS z2+;*c<8~b+)uv~q>k$P=$Ev@DyRYG;t z1K&|9?}{A@b550D8Ob+c!q=tc=c0+hQNWx!D)flN%LrW-yZ@VMt{F>mUN;EsOE;ui zfz2C^7?Dz=+pf>}F%~sCZJhW7fxOOKx@)M{+ub_+gVsHnYbiMqo8Q~;K0*r_{WydW zJ@xnDYqA2;0Hkp!cc)Hao$lePa+JUz7lnKlKoXc?3KEhv3m;mMs9}jCm#7g+zzI)UvvXtI#sql20Vk)v|R5R4$Az_;xzUs7v6>pVSN0R^OEH)S_Rl`uwpHy}6|5$5*7 z-!B7^`~h5_%E~Z|h0cTz7)EbXlIVfuBUy2Mm47kMLFJ7Sun|M23luWXyT4!iKDqPZ zv1Yv<;JurXV}TGE1B<9Z;eGH1u;lZ1szQ9Sjm3t=0}(@Q!rHA-4MN0M7)#D)cF(7L z3>0d^VU0(dx0Z$n_&Q6CwkQa;j8-!U6Wm!CW2p5!Vkox6=0D^fYxd zT%2>1_x|h}m-^b|o__o@XassqtgFHOkvp>6h+Y+tW-dhlItaSZ3JfKXuLr)FU;LOR zFamK&C0>p=f)ecl-Hdss`sjjvNI5*lS&rz6YXAdoNDqNX4}>z?bPJ;gzA~7MBPF>Y z&R97-p(K+6XkB67GA&BJ>0*izym%CoxW)rYLVrBdy~jilY3(}V4jPi;xd zh{~{W*2G@Ot6D}FCJ}Cb*a*S(K)Vrv1@h%+ zke1VekC$EQX+WAG!IIgt!GL9GcoG*kgal=0gbpnWQjn4)p@;o|n7auF>j_3N=zR96 z_I+?Z(+Y9&8A|aD3PU35q5WZXf$|3Vy&6sTZZo3{`4rt7ogwTr=p&E4B1_q=L!4w@ zNRb?HrnW9fSN{bjJ3JFuae~@0>GOU6QA47R8< zH4R;91z^=wBG&vf<^ZQC!O%^J}GGhzO{vaB{695xqI7-RLqL&*4x%6f@IbZKO z8yC-tf1sur?h@4Ox|4_2IW~iO2bmX&Cc)_LYW|dPI^8T59BV#JuTVyb?(mqZzfNHH zkmxiBjx-OvntLtV%&dF)Nt0$g^yjNhAzos@H#E_Rxb+a$0M>s`e_q2DWQQBIL*60V zCug7LgwvNo2~{iQ=aM?lbYBG03zcKV>EDthQrc(=SwbKvfS>zQBw$bR+h%xw{Tfx{ z-H07%5vyl9;;Cd0;ay3WlwjX*w2q-qU%$rZ22ds3VIO@U6@VyW3T=p}Ln)i*g&m%c zDgT85u%ny3qLyRR(GTuvy?o=4gh*Z0x+=ND3qjm?WsTWMF&e@d@LxRCZ%iGB2!*sZ zin$?ug|D-way_->A}a%PKf#$sI566vGVXB1ZK0SO6*}F8?YL)(0=|ZCL8q$*G;vZM z0zoi}aFY#NY*Yf_9m{v>b4fcIw|3t;Di2om-$(>N)a8ri|ANYDVwU(G65Idk#OtUm zB>n&idJOf2&js2D468%i==Gd#jFEDlUecrv)3l++x*P%zG2GsA(FkE*99mY5raQpV zUv+NH4R(oy!Cj1@cdhEBIBrUzIiN>Ra0ty+GqJ|nH07bWP$pSm@UYX zM&&o7;1F=RW)pHS36fl{5XD#C8F5ELe7UV4DG`{kE1Gm_+g;ye{q{$@eJb1WSznVV1)CS2#ZaU z>XuE5JpI(g@fL@rx!B_q9v9gZw)62;+Xi!P>2VCWE#FJ~n_8N{^K}SJaU@s_*%B62MjBu^kj#^^N|T8tu(&Zfo_3*G*|h zlhF%uOW~jUOKU7bA8Ln-@y}uqXWH~lxDwCT*=-=e+8p+rZGDItf0?LzCzwfB9J*pM zG{R>Rqs&!WW;VXBFuRBsJhr{U(&$+_^4d*!It@P7O5}2XyU@$Nn6-Okr|#0i_~>L4 z&fe)5Ge#CXlL2E46eK5XS{5j4kQgfk)dQ2Op@U1{=#6fv8fKWm(A3cxU-!>K$JX^5 zd-k%i5fZZPL<`OC9q+N*WoAvF&^*~=jN$Dpn4?Or#F4H=#U4nDqN+CgDC(}}@9|yI3DgfhSeN0FRcyT9PQJb$n`jMF)T~)YDrh&Rbm`b}_Hc$J z9WP@%W9mg}J|mWAdbY*x%6PqeK7)hA@zxDCabaqj>TXx>ULJYCiU@x|*5hPC&M8(j zU%3+(46ZTY^Siwat$oPc2Vp$EKc5@$_Gb9rr2dM-;U}ymu(fRW?>b$L!&#Kb2Mq!X zm-99yVGd zG1x+L?tffmn;DU-amrLX8sD;$(Kc(GV5V6qE4AsW*B#ku&g5@P9@py4XrW38Zh)$? z4UUv4=`;zZIVPhgsD*WRQ-+|sQS9#8Rz%Ba^foH^*VH=(tWFx5lx@!A#c$zvd(z;s zQgeG72ZMW^uc)n~Eq60J?Lt>(kcGrCvm$@V*oO?rR{fPoIo#0>Q30LR4<%=>z+?1h zhiMGGc+g3z4Z2byjiIM$#+wH-$R93~gG;lU-PD6gQABN*kx=BBCYB>9EtXD|-KC*? z;G?<0BkD@Z%jag%nI11q*WFFdiK_8l1U3bIZ_OuZj;#**2>ZO%?pI_4M#u2APP*Ve z9hb%cqxcOM>TgE5K4>Mq`?X`f$w8pR#t0=opB2wy_g&h%J)`GxW!_;9hn`+c;opVf(A15+O(2d#PM zgg4chVC+Zx!V`H|FK3l$RnXbp!pf{wE@^*MyeM)l1{J%drhXlkfOKV09Oh9k`Pu5# z!B*RSIVPrM6wlNxi>uyl#)f(2cWXZwF2*rF<=jp*ODtZ?g;r2#937RERa@zYTDc84 zz8@HIb0W)yf$sG22Kk~6J*ny97y4E=FGKeG#hMZ)Md3L5`RlkH^@AS6wI=PCQ?vBYH4k|6WbdV z1MJ-u(H#_Z3*D?;Z?$avChe132Fq&rUfQKVm_pUGALur7OCq_OnY$TO;=>qw;=Q>w z9UU0sff;ZDo*}0&(*P&zATBz??6e%&rZ#S=F^6>5C90fKPMYI5xlYVy3Ab@)J-p_? zy**hr758%jkEhssR8Jv8v-O~p!Ls)Tr_<}}ju!WM*S>a^q9nWz%QAUS-3eC|zZc8L z>JE-AKx>Ki1ZQp0*qsBNkeqG}A{ormUPEWVadwR+%_z;NY&Z?QTPm@^K^HeMwP|QY z)o1QulAaqNCzrX>!KGqumJX#WA)88RcbU`3>F%a*SFtyFoYYxbeZN4v&6RXhZdB8l z2F5kXIgBKsfo27i2#?WMlM*F`O@WdGo*!Lo9}Zr0_EIoATkv8>_12#}E>^s|TO323 z^dKgccxg3JQIT3~*OQ}|*icPf%xfg!`SL6Dt||JiDKWGn5|WXn$NqYtox3L7q}GuS z=7Ntgq7%wkdml$(3P7O zcq--!X-ZLEBOzlkY1GYf;kmK=#?Y!n&eXuSA*@dojd_3uX50Xj0!RIO*ej_LXRV~;Jx&@ZWw->V0%Vi_^meUH2w3#+*!-dqva&NU_xQ*L zMXF;~IW6YQSMm7cC|s`#67>nJO9VFCUed@G$Av4B;xlh576)5wUo!Z*cMt)nHB3TT>>?#UI)YztKNiz9NlNyxZf zB@qv#Y0R>2Cr}rN3bP)KOn_t~qe3ngR;v$8lP*>(^9Hx+Rn;oz1IjqGK__qf8nv%C z_7X%%teGZXi(j@AbrATdW_hd+(Ao)qLfF@x48|LNEWFo48SD!huz`UqP}ly#ed@JF z!WKiPjL%w8E)|rqMq1yZ@IHy+6zp0p8Y6vOv>MEYBX9k%+T}q`6tIlHb?>iH0u1NP zxfWO!yTW|!Q&7Q)J_maa+_$4F5wWQN5xtRknI~`t*F*|(@DWRLo)OQ1iVniV4Trg} zj$MZ()m(oci7A~d!OvK&aV(O|ib?^eI)t4wdyYOfbu!o@Hx4LE`yGzH=4@PR7A9Nt zSR{1E<6u6wu)ti)-b8_CExSvL=9543VD*Rfw(4^3SJQvm*3JeK)?`vAOZeF#X$V(v zD2_k7I`%gd79s)~{N;(EH<0e}kdbmxka1Psf-M^Shx>mQG`nsKud3BS z50I5Y{Tu2WPG-2b!)G$U=MEp7qJxxOP3)kha6am6`@P0cz1d9XYPBCe*ah6!+sVaZ z5jHG())|s$j&@jd0#Y<#VSzq%eBh(0IH8?B&4#MHT%Zyl?TPFMa`A$TSzLeYC~w5W zI8$gZ87|ZNlDy`XFF{QQ8urM7F&>f6x=U{2XGWBJj;B(wEzWW3&nIW7Fz@0-YeQ82 zbs?qu9I_A?isuf?cG0GTuRYhv-L2&LeCwIsbs}wdHK&?ZgJ9}svc-K7TT`5hIZ{TvEMV&NT~$WEiKAvg0V<#rU z%H$ueeL_s<@YQ`^MDM9p#>8k?AaiQ1c2~XcS(PF}?K4gd)L;9;FBI-bYV6@+ma%DvX<8Qct^r>jge(^v zJt}3?F>P?V+YAVvJ7#f_i~$=v96qwmh5^zGI8hT&Q%5Z`#Nv+vX291l0s1O|i>dK*9Ta_QvH z7&e!9QI-2u37$ThM{F50>irYrI6iv-Zi`h@kHi2l%7u#8_j>H=Yic5haR}P(Tb{D=w8~mU02W+T z)yn~~tjmh5OAQM`BQ9hZ;GKeYn1-`eUG|ro(vt(W=WeV}$h!vjgBm+21+zQT{3>Db z96ECv#AD_ww$}h<3Il>lB(cP(-@93Lf8bcUA-aX7FHGT1 z7OhR(;3!32btBTRUke=9ugT$Pu;_byvUzH7EaTf1V6y$vRqwl@JA6-d+B1OS9lf?% z(cr7*<3|g8h=a_2qiIH%&6P4tKf|n@YkFAa%yuNfsak8*+OtQ$baz#E6vx3`;19sI z1eId(Ak?@O5=dm)2%FevIZp|g-?uP+qj(f3^y*@7z#g}tX zV&b(gMJBZ9>)EFOyH4WtB;U%qO6}TkY%{LRfTA}~J*-{XKbN@cvV+3S9x17{Br-l| z%Tok5iJq2%(YBny6j99-CyE5svgbEOhKkcxoRSj-cswYn%w&TyhXtp-S?ONF>i2oV^7OA&|j>2Bk5b8cUbm+80^Ut?r3;CHss+wT6$`0#2| z|MLNiac$LuH<5X;)X>LsC3+5V*&gyR4P!TB-_@w+D)5aBUj-Gi7wE&?+Vg6Q8_W~3 zgZT`L+ldZ04b%AOOj2K*|5|?0rzYkk=M7Hp!>wTvE%xyRH=Vz>_`-#9GrhYb3Oqju zr7{$C6eV&)d$;IlG&X_fP#9P$p>Ucp$_Xd0bWI=K`CPSW$og+jj==H;g(-%ptR8dF zACLr2*dc=`>EfBfHJb^N!G##|B-V?drwi)a*W~F6^)g&I0U!?~M6AR711=O(AC)Z+ zAj-Bc;p-xONy%Z0C1&c)o}4pup9DI-3tB~YDX-Ira^lRJ6D%?JcaE&=4q)zh@I4)>=oMwiELm*xURof_#^b)AJ){}MD;L< zwIj&6L_qE?eT-12ua!|zz>fks$oeKv6nM``4$B=)h-nv%5CDvlCEPO>9K20gT*W+%JaohHOT}pZ@>F%UsOH>+|D8f8PbOc3?GIBUTb$KM0j6BZgXb||JGd^ z3x#P7<;LtjoZ@psQ{w3dguySP9yb3oo6Maf#bXy(jOh13_vg10(dsSkul zm%(#U($oDg^(;CJtkmdVz4g44U&)r+S?K`kyyI7l`2qSx5uo=*(@RWEOl^8){ummU z$1c%hemc*lXW&h9J}q`kE8t@8G1rG4F>(^pF5X?571@8f84of5IphaTQ-);<4_Q)v z2j@MJ^u+?Q-MJA!Xj$m?aPV+dQLzXv*?q-=+XOukK7C=hLCV78E~0RWSj&2F@axcH z$^x8V8wf9(mo_yp{!3er_mQX7$h(FIw)x7L<2O zj#vLUp9!I9E8mjxTm_6jBypNw97d`c^x+{kqxLr3#2zkO5?5@r3PC^|B7@iW-{sbd z)Ga+G?9%E+()o*t)yo41ZWGu8cQ-nz$%LpkI0*OT`yqbs;y3^0pbc%ktmf50YAwXO zlRcxa)EIkn1!aQ&CAI7^HSIP}e-`I+`rvj<(OI|2PY_cTk<*Iq^P&=&D%IF+ku207 z=~fumAs6YhUxGXjJawNl?=bMFp@=ZfJEcG%HN}oTwuDm+abRdO3!ZDPgDZ=jQRf&=ot+ z@^7Re#t?GGSk{&hGcjrV9IT9YSk5v~g_Q2Xx3qu;-jlcMKOOHJv7#G`+cl`AqiT{+%vW3W#=ijxKF)FRcZL^ZB_uJxVw8&-xZ_grlp~u&>g8*$`|+##4jz zwV$aI(OK@Pw{Kf?mj+^l(Q(f(P?xr>fT;TyZsgq=fIz{b$@1ULCQE5k zY^-sT!+GdV zwBz>k_biE8W+hVg!~(zKTRrYE{h|4l7K+kq;e0F}P>0A`N5pxxI(u3O^czeQ7F$?Se3nNU z*6;hLbilVjzPSgCvBW0Yw`QLM!exin6+ z76?TD`^R0$^bKC`!ckk!xrsMsXsEyo&7lH6WJ*K6=GN}dLVYuPU_R}$A9CigzA6po zHS8y(4fspi>=xtpAu?iz$!S4DH4I6A?f%ukf6o*jF4>V+#@PKC6uXR1L)*Isma^4f zN$VACIpL}FkFm_#Gll6OxX(8n^dZYuD}>WMnNVHZv0hz-kD_92k4FCG^Y}j$HSp>A zSNMeo_2*S}t#7PqTHi~yt95@8!Y*-v(N5xDVF;nt&Y23=456lqNw6||7z!mm(D0LeVwtXqVI?%8I%K&@SGmE%B9xG!kK0#Ul4^I;ltu9w^1A58E=pK zA|afPOmzQL??-$BlR6Pey5XU z1ehYD3v|AXjI&-_mfAOu3U^FcX+{`hiK;_Cq-CcZG-h3@bCfk&lC`am+nC z4xTLy8(=MTd0pT=!Pi?sonmgEW=i6-=DhBe5}f*RZvIi{6RF_yH~=Vb&f$?pyLpXF zd)>=&9QR(s4wZj>l>=S;`>e%Jd)_QwC@vr~A7Z7aIxzRkafha*sQ@z%%4pSNd91KbN99FY@) zvj;-_+u%7qNG}j?@X*i@SP2lJ3)}IN5Bh&?a-UbCf`USJzuUhl*1#|Wi79u$0MXmv zCZ6kdNqm+nO1MKa9natPF(I6g>_KOQ!J0*&zvqcSi-wydL5TQCLlFyjrRxYF*>)h( z`-HNiBMqI(SnqVXlZmmSH6!GS?SE0j!>e(l#$mDMyx$2?;`wJkUmbtvxYWJ{{Y0aq zA9Ll+Yc8;8F3A;1uJMXV^X~`WV^p4j12b3G7W8+MZbYBaH!MP&@%?I`lh99~a?Z&n zJ(etANF&4I*_v*)dAMP+Yhfbc!dw&7OI1w8JHtHlj&F}?m~cQl{H7o^4SR!gdnVzM znaAzfoWmY52&G8E^iVL-`vqc-T!=gb^_l;uFh6>at5fBbp1Jeo0U8;3Tx1G~rX`qX zL#Y_k9u$0sm?m_frL)6&Gi%kd{J`Mt1R10yL@2fwwhwZ9I>vr{%vi&YxSws|je_(H zXY36%@RVgC=eS*TkCOH0v($Tw!zq5!{R5}jq|9sCee&Oc+arA1BktWY%Xt_5t!@sA zO7rYS(Yjc8(dtuTGpKXNAB1m$dOy8O!s*w0@}P<~G3fl~;@M{q#&{>vN#m+NVi-q& zhKhn}0d$V&D0}#KBR&45R;>pV^V{fix<>i)cc65cPMgX8qge!($b{$x%TMxcviLQ9 z`1iW*(Cx_rf-JFgwiJ(ATYZMPxuHAPRM6#}!ChLr9YwZgyK&h_PSLqjFnq#CzXB>9hv{|NCAU z&ISn!g#VXH5RdtY$%ARZWN*?r_!1NqA{93lIu=6}T^?rzzd%(IFeyDLG>MYFQpZ@w zSyxmqYoayc9C?UdiD-j!PQC17t843RYj4YBi?XU-XJ^#W`}FIQpab6r;Dh$g`^1Aw zi))XIgsX_qLD>E!Jw?r84R;wZnTJLnY?6EYD<6J>+Ef^N@m4`NSn#e5~T zY4i8m@q2%6H)`*6S8M1#Oe1VGDf-mJYpzAs6%qm*U9P0i;jXQWE91KV$NdRV)|k< z>5*iAs&gs|sx-=4;C_&CjpW)g$uiHf(DH|}pGp%F3 z{QtQM0_guEJlFqeOF58?pw;~TGw5!3jEu>JH3*97102mV?-_L|V;O}_RU)ZfWWGl- zBxbA7m}SI4b}sOOdLZ$0K9ivGYpiFy^15riJ!^szG8PlK{7hTF>(EC=O@-=_<`LmB z-23KeL%Q5xAz}kz5#nL+lJ7BxJNXHxqWX*Ql0!}8lkhUPytw$@<*@_8&FWkD^S%$p zs;8KL%g12dp>q4;Q)#_NHNr<@-v7BZVEetYXYV zs-`+tU#S+gd=s4M_6;jh=VaJNOJ}7IW`()Cb2oX;e$#gdeTln0jtOn>FIB6Vv|`ts6vB9S5%HdlH~$2#%ZT z8?E) zqCx6*gz7lN)_e>!us7sDk@nw+{Fn1dE-2C%hzWHXPh<4y?;FA80xwH^2YxYImMyt%2h#S~i5dSY$9vQh9Bv0wx*HS%fx zb)>x$@7EfciKWIt447L^{K&e%+??8s{~7$+j|VQ27UL#k=mb7CgcWt<$vi8RBc{(c z>xa2s$&9)nYentI_RMLfexBM$XXIiz*)B^|L@S#gjFw|)XDCrLg)Pl9b9(2YJAuSC z#L8Hr>YbfA2cI#tm?0Am3W#G2M965d$YFL&K#4O(gedILZmiAgN0@E2b0wK3wi?l# zT;XYK`!?w!%#KbrKkhSkStj zhZbv$>S{pOR;+6y*${Ct7VM@0{!&`I@_2DE(nz0K)aDg>PrZsKLc7`mE?yi{Ryv`a z+o8{ZK3!y9J@Rlv<@HdsF_rjZBr!Z`*^FYZ)9NG`22TeMFcM5Qa!f~N2Utl`oh!+ zjH*rN0e zXuDoXb(BL|vvwafbXaYeRj#f{4or;dX}rnomCm@p_i@KRl_^Uv?v;#Q-cFs0zS~$4`ll4GXXA}k_6le%j=H;t>@}t3XkpHC zMVw3}8mFjES+k6=v7EG0WZo|9nLi+pfySwd*{FToo|C=*Neak6ig46pf@IDih z*hBqODc?2RtgSe>f{vu-a;N#~>d)2snNajkZecw)2CqIwO;wc3KKrm8Ba0*S_i|eB zE58{kI=y0FD)+H>mp79hlQsNY>vXUXjV>U&xxtx>COLytQJ*9Kb6+mE84)l!#%{)% zWkwIViqFDq@o&UM9w{w80{qX?FFM_VecK1H8qE^wtp7=7@9Tb^Q55h(7wB#6Vo8$ z_*Gmr-A%aR8$8a*;XQ@BH}UTl=a@6G_1_r#W>VKIrJCm(kQ_Fec(HaH;_HGt9q|@k zw$^dt75KZA_1B{r{CkS~d62`-CjoXgS2^X1i8-sPrs_MN zk(lxd9%gW{F5|LaL~bU~`_?{J!rB z)pBa@SQ5N>i9K80&}bxg`_r|j=wkI#tg6emwVd(&yF7h5J5p`p{fwm0vM}$bc$enh zvi0$PV4z;o%nOX2;a3m(eN~s@%o*+lkEutWeETx~5D0vUlin%Ky96z!aY5gj_P6rx zp@wJu^fk13jI}NGCwV8<2h}dMYv8qqH-9aer&nk>E+JD#J*U2}WWNrrGH(jc!3%Rb zpnkV&$kiEkG@P+!jz|U`Z4&J>(9`_ap()+&SUyjL(Jg$XVP1vJvwQvG2Jr~X|JscT3 zUJ44kma|a5##_w1T_Ob2GJA&>JjPq@ws6?D+SpE)qu1;I&gTho?ltPM2G-B1^%8eV zt}f+YYW3wb+DD~SqrcDaD}iUU-=X@Pz7M2F|2F8^e*jR+nO6XK+HKHRaLjQK!13=U zm%HTBd)Gzh|NmbuMZc3fJ$kPp$=wl2TpXf>k?0I##v3Ey1*6wt@PN_VD1!&j`gp)A z7yq9(`|_FHncdl4BKRA>eN^+m_y7_ikwju43M)3EiNQ`Ram15AB1t5ZLMmyblR+j~ zWRpWKdF0c9j&!0kUFb?Tx>G<8deV#D^r0{P=+6K&bPOC6;-rXTN+@L@gBZ*ZhBA!d zxNtLqGCX)0$tXrMhOvxeJmpMaB9oZR6s9tb>C9jzvzW~s<}#1@EMOrOV&MqQv~ZmR z;fuDghn*bc7)K?F9lT>R`^73Yc1twdxW#*k;Sk69$q#(~X9)q8vWyyPIZPePsV7JSAy%-GReWMK zYiMLG>siMYT4`bf8`;DczHyZ^oaGvCcq?{^l{kr)1WA-6NtP5zl{87049Vmi=efjX zZgYW)++iyxB#Rr|lx)dim*h&GqWm|{WvZ*Wx^Axy_(H*|%8CZRSu(t)POrri3f8qJ9<_(pZSE1) S_ydk5nhF2_0a7dP4FCXcq^%MF literal 0 HcmV?d00001 diff --git a/test/features/url/dependency.css b/test/features/url/dependency.css new file mode 100644 index 0000000..aa0b966 --- /dev/null +++ b/test/features/url/dependency.css @@ -0,0 +1,4 @@ +@font-face { + name: 'url-font'; + src: url('./assets/source-sans-regular.woff'); +}