From 1de0ce5e1a28640a3faee6ced4f163f1e9ddd660 Mon Sep 17 00:00:00 2001 From: chenos Date: Tue, 27 Aug 2024 07:15:54 +0800 Subject: [PATCH] fix: use the built-in logo file (#5032) * fix: logo url * fix: logo with internal url * fix: tz * fix: improve code * fix: tz * fix: tz * fix: test case * fix: tz --- packages/core/app/client/public/nocobase.png | Bin 0 -> 11186 bytes packages/core/cli/src/util.js | 6 +- .../src/server/__tests__/sync.test.ts | 55 ++++-------------- .../src/server/logo.png | Bin 0 -> 11186 bytes .../src/server/server.ts | 27 ++++++--- 5 files changed, 36 insertions(+), 52 deletions(-) create mode 100644 packages/core/app/client/public/nocobase.png create mode 100644 packages/plugins/@nocobase/plugin-system-settings/src/server/logo.png diff --git a/packages/core/app/client/public/nocobase.png b/packages/core/app/client/public/nocobase.png new file mode 100644 index 0000000000000000000000000000000000000000..6f6625caaa7b324dfec0b85a60ac2aad30a1f649 GIT binary patch literal 11186 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 literal 0 HcmV?d00001 diff --git a/packages/core/cli/src/util.js b/packages/core/cli/src/util.js index c18ad659d0..eb3acd54f8 100644 --- a/packages/core/cli/src/util.js +++ b/packages/core/cli/src/util.js @@ -313,7 +313,7 @@ function areTimeZonesEqual(timeZone1, timeZone2) { } timeZone1 = getTimezonesByOffset(timeZone1); timeZone2 = getTimezonesByOffset(timeZone2); - return moment.tz(timeZone1).format() === moment.tz(timeZone2).format(); + return moment.tz(timeZone1).format('Z') === moment.tz(timeZone2).format('Z'); } exports.initEnv = function initEnv() { @@ -406,6 +406,10 @@ exports.initEnv = function initEnv() { process.env.DB_TIMEZONE = process.env.TZ; } + if (!/^[+-]\d{1,2}:\d{2}$/.test(process.env.DB_TIMEZONE)) { + process.env.DB_TIMEZONE = moment.tz(process.env.DB_TIMEZONE).format('Z'); + } + if (!areTimeZonesEqual(process.env.DB_TIMEZONE, process.env.TZ)) { throw new Error( `process.env.DB_TIMEZONE="${process.env.DB_TIMEZONE}" and process.env.TZ="${process.env.TZ}" are different`, diff --git a/packages/plugins/@nocobase/plugin-collection-tree/src/server/__tests__/sync.test.ts b/packages/plugins/@nocobase/plugin-collection-tree/src/server/__tests__/sync.test.ts index 2a1aae5043..2291fc041c 100644 --- a/packages/plugins/@nocobase/plugin-collection-tree/src/server/__tests__/sync.test.ts +++ b/packages/plugins/@nocobase/plugin-collection-tree/src/server/__tests__/sync.test.ts @@ -7,9 +7,9 @@ * For more information, please refer to: https://www.nocobase.com/agreement. */ +import { Repository } from '@nocobase/database'; import { MockDatabase, MockServer, createMockServer } from '@nocobase/test'; import Migration from '../migrations/20240802141435-collection-tree'; -import { Repository } from '@nocobase/database'; describe('tree collection sync', async () => { let app: MockServer; @@ -77,38 +77,25 @@ describe('collection tree migrate test', () => { { type: 'belongsTo', name: 'parent', + foreignKey: 'parentId', + target: 'test_tree', treeParent: true, }, { type: 'hasMany', name: 'children', + foreignKey: 'parentId', + target: 'test_tree', treeChildren: true, }, ], }, + context: {}, }); - const collection = db.collection({ - name: 'test_tree', - tree: 'adjacency-list', - fields: [ - { - type: 'string', - name: 'name', - }, - { - type: 'belongsTo', - name: 'parent', - treeParent: true, - }, - { - type: 'hasMany', - name: 'children', - treeChildren: true, - }, - ], - }); - await collection.sync(); - await collection.repository.create({ + await app.db.getCollection('test_tree').model.truncate(); + await app.db.getCollection('main_test_tree_path').model.truncate(); + const repository = app.db.getRepository('test_tree'); + await repository.create({ values: [ { name: 'c1', @@ -131,7 +118,6 @@ describe('collection tree migrate test', () => { }); afterEach(async () => { - await app.db.clean({ drop: true }); await app.destroy(); }); @@ -164,26 +150,7 @@ describe('collection tree migrate test', () => { }, }); expect(p.name).toBe('collection-tree'); - const collection1 = db.collection({ - name: 'test_tree', - tree: 'adjacency-list', - fields: [ - { - type: 'string', - name: 'name', - }, - { - type: 'belongsTo', - name: 'parent', - treeParent: true, - }, - { - type: 'hasMany', - name: 'children', - treeChildren: true, - }, - ], - }); + const collection1 = db.getCollection('test_tree'); const pathCollection1 = db.getCollection(name); expect(pathCollection1).toBeTruthy(); expect(await pathCollection1.existsInDb()).toBeTruthy(); diff --git a/packages/plugins/@nocobase/plugin-system-settings/src/server/logo.png b/packages/plugins/@nocobase/plugin-system-settings/src/server/logo.png new file mode 100644 index 0000000000000000000000000000000000000000..6f6625caaa7b324dfec0b85a60ac2aad30a1f649 GIT binary patch literal 11186 zcmaKSby!v3+U=%WKvHr`H=FM6Mp_ZcP4}j|JEajM4G@r0q)U)akq`lCkOt|vlk=V5 z`R*V0-1YFlWk z&m#{7BM)5{YY%U8cQ{1G%EbZ>RdF)6f$PA{t$f}3;o=Yo3Z0#vk%y6nx~Qd#6PNjY z8!jIwSI`>*5ts6DHMewtdq6GVHg?Vubo!+z_ z>E~c6Vnrt<2^IGd1p_$2J-^&CRjN8ZDm79kPcK=BKG}O@e z|2K7V`cG?whYtLI=llO07@_Cu3g^~=BV0V)Ey2cF)8F69RaDL$ZtmgYuIJ+7_|Gb8 z+q!tTAZ%S+p>n!{P!>ZwXDb(P1na-rYiNk7I3qmFoh{)i@)C4l1TH%}D^XcNVP082 z1qA_^91jnVf~>57oUj56CMO6J=93o`5&EaEyo;r$6WrP3pT1WA+gI_w_Pq}UCs%N1 zdAPfs7u-tG-Ngy|uSXWO`|op+`>*5uyRX%MpNsr|?aK`&!+pQ8|JO$U^A(7m`;Y$# zTky|+0w3-SqTL;Y^+)|xItYY?Nkv{p&u4DO1j9&AiOhuHp+6ZRVNV#{X%%!PrZ^1k zr%Pv5O|f!1W?T%l_V<}YqZ;oDvmP!|ZJ8(96@>mhBf%rqSuQ3GEu4iar$LKXq+W}! za)j3A5jK1CJgQn+Wbh~kX6AS{g9;YEyW7^T#aDt(bGH328RONVG&D5r%W*runj89{ z=sYnpwW{j8?B?|J^pT5X>;^-Q6QwFduLK;{#T|ZBj3v`b1wjZ#FbI^AAMy2aKYsi> zXe3WWp|`i!RN~vdtgNj3#nBpHeXb0y1;GvGBQxvgRv}V%*9b*PRDLb3(Z}BV3$34= ze>Dj(s%3IKz8RjFsGV8viSMp@(VENay3|3~V$zluaN8MO^;K9*Oh_NSH<41vDjd3CvoNDuY~c*Mp_b?&&HMHM(;$4kPXFWxC9s$urCLQ0SKY^KtZ7Ytb1; zU#N(ma+jmtTu#Q5aleplyz@L>A5OO!ef`VR+na2yFST2{( z&d#oQz7av`>*Is_six);nzZot%F6LozL@u(-OK36$jA$DE3DVUDW(Jvx1fN4>kY6> zHt?I2NSd+L(3qGQxvHuvi&J|iCr;}w`v|5x4kVT6m2KU3>&Cfrtw;iWDTtvSZfna7b$*!>Exu_q4<9~U-QSm@X=r7JbUl1{b26zFm3zAo57pGvTr9N& z%U0v}cY6&|PRz~Ct;JtaQw68TdH%)qH!Td$8M;XJB@TW_6>8Z;>JH-2$kNhMw+RWW z&$7D1>W+VC_Ik`vO7LZTyc*6$(9YHtYZzMT30?KL&JtRr-Rk=KkCT(FN#-1yYLDQm z=Z)@`0kI|nxPL1a)ofDe#z6SlN0fHTd;a-RDTP=cnk~FGt=Ax0GDp=A-5JW^dpCC8 z_^iQs_wwL(_s^ldfw4up4kVe1D&M9EOHN>ZU1C7vOa_SUeTc6^&2(wV?1%qK$N0z{Sxc zlr{`99*@@^4ioZ@vIyr=G6pubZ5RxeT%7cm9!DdKQpnj+`d7=#GdupiV6`y}{wA^; z6I7ye%f+_9t1NEQg||w{G$t~zt^YW0^^_mqZwCuw2RAiPmJ$8?~&@N2jMWx0in%-FQY<~}Po|N${5BNX z;W)ZjZ#P+!H>&5Qb#wU_?Tx|`z=)QKMRVu)*~SXi9ul-Lk&rkpwD|H3pJ`^@#vQ#w1W~V)*mQ=WsV#pH zR?yXPl)Lci5Q}TK$#-X@@Ps=12YmA;YnK}Ay-YPV$!uD*wP=zGywrP6DyhWx`l86W zt|tG@Ukz{QTMgQ$MRB2{2PVXU-%c%O8TYep_O~^I?@o7(51WsL*59#ke{Syo-5rfa z($&-RhPFQCX12~|dI3aICKq+rz`%g}<;j*VrJ&;`0d5YT&4{??F~fumhf`i~T!+Wj z-9|z1NOQnNt?W0IB9s>Q|0>XV#2~R(;&30b9mtcbctPG+*Ke4 zD3G`ZU(O1@FKfwa<_Wv80g{!mMTlFPZ~ddb28-6C8x-cA#Cn&YqOVU*8aJY4yv zP-in*wGFN?$&Hxnfyb5CFRw%N_i0dss*0BX)L7RncwcR*w%V*D{-H5hkJV!&7U$RXzPJ|HYZ^J z-8TA4VYEQ19iO@yZ@-NoZt3A5lbCQBWNf2djkYWM3d+bC7i9BOn^pOZN*dEJlPn~} z;&^!=gMHd-Z{8Oxjwxe>WPpbovPc10-CJE<<+1o0Lk7Yd_cdS)9`!3qcELJK`~da- zFgqh^ufZ0G(j|s~w5)jj;KBp|t-rW;Lr76zDJA|56}x`<>gMk5FQl`$LZ2@GlTDrn ze%w!KvWaW6Cl^=J03W)+1ihC6pQz5|Si1;7{Ya)8Dk7qyqF_$2O3}F2p&6-e z+}S@F7I374<7A|oK+gR!aEUX=DMhTpOb*F99|Am(zO&-%?@Usz=kMzi%n~2jg;1d# zJPkRZCr3y^1>haGUkBu{?XOE^Sq&;?MxC9V@w`Ad=Z->*X~H=L3FA;$TtWdiaayi3 z>*?=~!lOiW(AoL{Got=+dwbjVzQNFE73Wa>)SE!K2OqhRf(m5g>VS=qD9n`BWUR0s zOfCR+QPepiNrvBZC){>j8JRf^g$AQQY9&cpo7*5`)6?Gklp-d{$V99(){cyioltvc zDGUE{nT#S=|IAD~onM^9!bT!s@=Iwuh95kbjZrWoTEv6kQwdiWWEuh(Yb>^TPtIcI z#%F{M8F~OSLlmvxT)?Bdj0bGIcjrFkqa$ZmPw*CtFK+;L-A6uoxRVR=9+{@PIDo=peC7F%5=F1kq5~LFAr+6u?D6qHCIo&fct7 z$*T&1{Z>NjC@n2TRs5^%P0N4ISQa)$25ACZF zrTg48*nELzQ+1WSSD9`pZq4=Iaf<8G?$Thq$BU z;88+d+e`P;@1C7&V8v4bG2iO@P#VXZX&zL)L#kTfFkT#K05JmbhOO=ZIMWA`jOgRB zywTM>TH^4LAk{o}>maaoG@F0^u=DoD)6_OJcu!2bOA-X48RmZ}3Gaj)gcSo)@V+%Y zvgzGZ8VU;0!HJ0piUPjFV5}&-%hZSu9vrVy{J$kp|6$Iz{V}D4YbJ^*ZC2LLmsimS zu!cHaM5DV!e2qEJZesfVlaeH+trT-@oI0vpal^`I0>&5^(Q`WOLVGDoq$(N{J|~;w zrq91$0Re!a@%s4qm=fa;ee&ns(!NT?j8V!f`2xv6zpz+pWD#Z5tDUfYDOD4_RWt)b z{+ZvhEG5I`r&MH|&-9#bF`yhSXfd_^F!aiEtRFdre`aEnliPdI8rBB0K5CzcNw-o~ z7j@jL$X4HDCXMN9LC2YDG^=gV^exN;IiggiTV=9-FYYTUT0^TNni!xzAQ$ZQ@% zst+B>PCnAz>te2x#yAyYssLwykA|5&m!B<^ zuC7J0zx~ypNj)2;X^8$l%Jq?(D&GEIWTz}c(+K$d7q|Ah>y6QZj~~VjzMQDfhdmzT zdL&D`erlE7gtxXIPRd6q?7HM=+gk-_01YJ}p_{g7I}3@BkdS>6hh+$C9O1UO-r{?_ zK9bEN=j5sjJcv{n?X6X*1Ej;>>Bw=cP)4Hqp~K^|mpr?(b?;oVxJ*t@c4l>(>eiXi zhx;>Cc5!fnV~IHAhZ7I-9xgDc~$f zlD=hbsG186E{mN&5$}|Ai)SYxKE7y0%}?r)YcMNEPDxL%&tmtl?b`K}l$4B*K!#@P!kePz!PW?Ne5A>5i4<4rzWFdBU&=XuM)VV9m@fSzg{w8N;x+R;AtO!EnpNc4E=BydK{YN|r_?2jWgO@I z>9M{AdzJ_%-9J2gKyT66cP05jynhiTpKLYV4 zPA|p6en?d$4zag*;n3xseiL%q9&6DX@}A#rs(gz3e!B}Et(51kD&WhW8GvPiVezN8kqOq{9$HhX6`xnc)}*0^@^y|Tz$V! zkfcU=#R6NjH?hq*fR_#2m3#Z3ar-qA(I1pF-laEeS^h}*axo#>1^(CPZcWHu@~#PT zlr1GHm0Z-wG#gQvA-Svg2O8)O@%sFb&Q;yQYvtrG8yQtJ&7uCOCwt7U12v31llQ`0 zzsR>h-1jKGb`hx85iE^wK%e0PITKutdpJxD1Kj3(;0YnN;&)&-yeUP#nM&s%Sb8zv z+xs>tCnx6$7&$_czDEpGqobqVzq=yU;D4ZeYn&LRewpWtfbQ=AF?tpq9qqCS0IZ?D zzTPBvwZu_USM#?)I_#AFGC+wbu5qr_bt$kjV?QAt7N8jFEV1GP9ZA2tYb0J1(^1L?y)N$?xu#S5{WO;A!HemDUbL zdc@fs?6D36tr&2!3^iz**=vwg4Tar2D?{nv4jwe@_;pWFob=WIw66N$Mv>vvxv2ES zk+8eAUjzFk6LRq9WPdTZFrdk=-b|f?gCht^bc{nUix0|LQdB9ChUD~PO7A)C3n zOfcpd`3FAlNL3)=9QY!9+}(K_S~!N;ApDuWPi?!r&Ae919!*JL6jBXE5@{TFn_Y`Y zol#YPKB0KRjS#=60)|-MQ1$Tjf*$Z=f}h(8G*MNyQ~ zPWKnv_hAfzf`UoT&lobFJ$xnm(mh~28Yf{so$?)N0zb0!%=NID;McLC@J5m3-|6+^ zg5+oIm*6rdAej;(uPGW#XVsNCp@sv(@Jca(+^twMUli|qw*HRz$mf7nf;UKn9zRY=gj_YAQ=LIZL#GS*XB4K=fy)pG}E05`Hjl zI~pv4W%SwKb}^xLPqYxbxM)$3U2Xa;oX6ENN+ zIu6)W)JHJP=6KBDln@rO5dUejXA5iBA03}Pk0rH0p4?S10OG>?_G~d&YBUHxgu|rr z*{5=W$5uHV`)q&zOnZ|HI+7=cyb&867XameX8_+>@9ZghZWZs0(88#lC)LU0mfw%P+woJ(Efi11AN_9^gsY%ow z8OSoKOqw%UzFG`2S$WDvJ{^)ogK4gRvYUKc`LaMmEuG~_?Tc1FPac|Qo%P@`g>)Ry9U;%2%ZfNEL~3Smis7SAqik{2n9h z{ZDMqeG(P>1Ov_w9*^O+Z3NYPo_mUv@hhpE&I)MVD zPje7UKx3U~Uj@0YGu;n*@(2e9NA1#%jn`6`yXO`~Ixy&HwSTgFS?wW&hvmgYg=}tE zN=#76KoGljp>$BuaV!UOvfw!lMEN&X>^}v!T(OXN1 zzSTKrbw(?BAK^QI0N_dfG#o)NkuO<+7l;L6!MxrreWFJ)3eQl?4I{^wKKnKNN+`{j zX84R?Gym$Eql-_l{q@VG0UyombYrBTPmP12Bim0+B&!l-Qn6YkNUZH$wY9ZT=lq#D z`eJQenxq5QT085sOLrNFAp#_=nzpW{o4}R)QPTdi5=6o;Z&axgS~OH<%{=lxjjKz| zEW(}01@J=s617dE!yckmGT^7ta4y1hF0wfPXNl*wKdNYA7Kt{#A?=$YDiRD1pUWW7Ew} zkvZkdcHOtuYcI@lsmix~K+GUDwWVCYFthD>31daYfF>p3h~ z6TUq(&Fx()>F^jTQ(>ThHTVx^aerI}Rg#yPk3n@o%xKCPi3e*xT;-#r*N%}%?va_; zCxHYjzNbjAx$d1HPX0uCrKF*lq@*8g6u1p{TMr2`c!7H|`%;mOUt}ac13W9219p2~E)GtJ|C>?c=79{z7OL5Q%UBMJ6Y; z3^sj}4k~LNMYK*c;pn5+ReEI;B74hA=325x0OC)K=8bWnUfDP-pk7mN89}0t!{Cl^ z+yZjx`L7yFB`1|A$%+rT;={YZ#cgPu(q()5_U-!nL3i8f*7vme-3%FACQZarLQZq? z=%kXO82)0WsE5bup{6`xH4B@*x3#I?2GE4~MrpDAdiNPfsZWL_Du9l!-1~E0KwfFp6;K?t){jJX)$D&g zD#L16_1tc+v@h;@ysTffyxIhyJo9n@!k|@bW+U_V=E{K@U)vD9ua0x`BPKdUC6q2f z`1OLj1a*2M#{-^LV8gMW%!HJg6fmC)*p4lI$TuDt8F|JhUBBUc*~Nyvj=l7OH8!E{ z>81yYT(BEaY%LBp>VJKNcPReQ;=FV?x^XrFz;1 z%OoBv`!<3Y)$$-dZ(Z{N5CN}A{$hOghu|(fyt8I_SUsBPbN7B|M2M4f7tch^Bj?*> z2GUU3Q|_ z>sM6RjEfgXKJZ@Vlc>c6n;RQHeOsd|ttylMviWYu{^#dPp^#5Fd!KapMRJnIgP)AM z;Nofr>+$L5%br;zkqWe~J21&=N)w39N|yL%{|kWy^4Fn19X$1aUWiA@DuSev-K&714%FG|9JJk zChl!C-67Q`2t+XiCDSZz{+fOU;m$|KLC=kmeB#fIg8NwTAI7y%AGE;FnCa!v9}`Hp z^uKA*Lmo@fK~xQBsZa1ih}F~vEfNNbK4J%4o$fl&D3-|F4ct?Yo@%O-A2GP*i;akl z(+S+(BUIH|Q+*iN`S_$naq1@!`>S;@(GjwhL^=(@#0+ z_;GZ^P|qQRvM9E=#IdWxYq}JAUnCK5U6RH}dRBGsh6R;qgxLa^F-tD15e_Sz?E9c4Xlv!B*~P77|y%wEnxj(99Ceo zG=CDj2vcb@X%D)Y1BDa~^z$H+TpUksNsi}{2h|@U^XiI!CS4Dd)dF4Z&`6iWW03xM z#K%WCbQg@E1dd2hQxFo?=sRmBbYvV#$*mpEQ}3N3%~V8$dA?s3~k8qRShbq((ZT6>iI6;}V%uV9x=%e+IM?WknBJ z{?amS@O2TsIOCK-a}#=Hz(99*NjuXqr#Q!pwD(LPb{CL!znRYN=ZU?Hwa=iwsqpp3 zG~BJIs89`Mbp5$+sM)CJ>S*YZw;_%q#Ky+DHbsGT}NQe7-i{QUjn@$1&tgD+wh zQB9q(x}}HzY;VtD-;{A~H#|7vL<;He)i|o%AGylm4%y@J-jN>PSD8zhJyLL%+yZ5y-07=!4Adp9VqomTFCb&CSiN zxLluaxtpSBr1=ip9F<&h@DfgWoVNe9K17WcQp!ADpQr(Nj~I*!9F) z(3aSXpCU)W`oR$=16_HfB_`G7waTn_4WXf-Y4zq@d8nsnXSB(x59`_%gRV4ChfBG2 zSZyz~(#$d($@?LbwsueSX{;3ZldU>KP-t>bnR|mRVOq7gwRj#Wj$bw;k||e7KNzO~ zdM;jiM=T~9s!GZs+#dd!R8Ns+q`i@GN1JC)mrvmk2j7oD0`Jhh=g}I$9-%4`h6U0B;xpALO}nuk+V^J1YU7v*t}P zR&AQ(94_T2nI|M7XdMbPJZh`VgOxiG@(N*ReGrTXL7yLoegxHJMr~8U_g4=S1T|=7 zS^BXGr!!9`UrjB;a23u#XVceix~+IpgE2HBiXU4H0;3gvN8!df=BrM}J} zitS=YeVY|)c>xlCu#bi>lN@HfX+FcPmYl`91$rEmT3RQ5fq^-}K- zw1vMfSrRpc^)yaQt%H&}8T`@QJ&Q+4m~V_!p5zC`gKqv`DNzBrhGs$DOL-Ns5lV$mUP)^FbDO)u`q%phZY8h?)0yL|3X(W)qD%2&ynh5a7^_zO$` literal 0 HcmV?d00001 diff --git a/packages/plugins/@nocobase/plugin-system-settings/src/server/server.ts b/packages/plugins/@nocobase/plugin-system-settings/src/server/server.ts index 326271631c..87d51fb5e7 100644 --- a/packages/plugins/@nocobase/plugin-system-settings/src/server/server.ts +++ b/packages/plugins/@nocobase/plugin-system-settings/src/server/server.ts @@ -7,6 +7,7 @@ * For more information, please refer to: https://www.nocobase.com/agreement. */ +import PluginFileManagerServer from '@nocobase/plugin-file-manager'; import { InstallOptions, Plugin } from '@nocobase/server'; import { resolve } from 'path'; @@ -16,18 +17,30 @@ export class PluginSystemSettingsServer extends Plugin { } async install(options?: InstallOptions) { + const plugin = this.pm.get('file-manager') as PluginFileManagerServer; + const logo = plugin + ? await plugin.createFileRecord({ + filePath: resolve(__dirname, './logo.png'), + collectionName: 'attachments', + values: { + title: 'nocobase-logo', + extname: '.png', + mimetype: 'image/png', + }, + }) + : { + title: 'nocobase-logo', + filename: '682e5ad037dd02a0fe4800a3e91c283b.png', + extname: '.png', + mimetype: 'image/png', + url: '/nocobase.png', + }; await this.db.getRepository('systemSettings').create({ values: { title: 'NocoBase', appLang: this.getInitAppLang(options), enabledLanguages: [this.getInitAppLang(options)], - logo: { - title: 'nocobase-logo', - filename: '682e5ad037dd02a0fe4800a3e91c283b.png', - extname: '.png', - mimetype: 'image/png', - url: 'https://nocobase.oss-cn-beijing.aliyuncs.com/682e5ad037dd02a0fe4800a3e91c283b.png', - }, + logo, }, }); }