From 467f0d1bd7d83c5c101fbac81677a0d6c46534c2 Mon Sep 17 00:00:00 2001 From: Dynesshely Date: Thu, 8 Feb 2024 00:27:28 +0800 Subject: [PATCH 01/24] =?UTF-8?q?=EF=BB=BF=F0=9F=93=9D=20Chore(git):=20Ini?= =?UTF-8?q?t=20`.gitignore`=20file.?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .gitignore | 797 +++++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 797 insertions(+) create mode 100644 .gitignore diff --git a/.gitignore b/.gitignore new file mode 100644 index 0000000..a4056bb --- /dev/null +++ b/.gitignore @@ -0,0 +1,797 @@ +## Ignore Visual Studio temporary files, build results, and + +## files generated by popular Visual Studio add-ons. + +## + +## Get latest from https://github.com/github/gitignore/blob/main/VisualStudio.gitignore + + + +# User-specific files + +*.rsuser + +*.suo + +*.user + +*.userosscache + +*.sln.docstates + + + +# User-specific files (MonoDevelop/Xamarin Studio) + +*.userprefs + + + +# Mono auto generated files + +mono_crash.* + + + +# Build results + +[Dd]ebug/ + +[Dd]ebugPublic/ + +[Rr]elease/ + +[Rr]eleases/ + +x64/ + +x86/ + +[Ww][Ii][Nn]32/ + +[Aa][Rr][Mm]/ + +[Aa][Rr][Mm]64/ + +bld/ + +[Bb]in/ + +[Oo]bj/ + +[Ll]og/ + +[Ll]ogs/ + + + +# Visual Studio 2015/2017 cache/options directory + +.vs/ + +# Uncomment if you have tasks that create the project's static files in wwwroot + +#wwwroot/ + + + +# Visual Studio 2017 auto generated files + +Generated\ Files/ + + + +# MSTest test Results + +[Tt]est[Rr]esult*/ + +[Bb]uild[Ll]og.* + + + +# NUnit + +*.VisualState.xml + +TestResult.xml + +nunit-*.xml + + + +# Build Results of an ATL Project + +[Dd]ebugPS/ + +[Rr]eleasePS/ + +dlldata.c + + + +# Benchmark Results + +BenchmarkDotNet.Artifacts/ + + + +# .NET Core + +project.lock.json + +project.fragment.lock.json + +artifacts/ + + + +# ASP.NET Scaffolding + +ScaffoldingReadMe.txt + + + +# StyleCop + +StyleCopReport.xml + + + +# Files built by Visual Studio + +*_i.c + +*_p.c + +*_h.h + +*.ilk + +*.meta + +*.obj + +*.iobj + +*.pch + +*.pdb + +*.ipdb + +*.pgc + +*.pgd + +*.rsp + +*.sbr + +*.tlb + +*.tli + +*.tlh + +*.tmp + +*.tmp_proj + +*_wpftmp.csproj + +*.log + +*.tlog + +*.vspscc + +*.vssscc + +.builds + +*.pidb + +*.svclog + +*.scc + + + +# Chutzpah Test files + +_Chutzpah* + + + +# Visual C++ cache files + +ipch/ + +*.aps + +*.ncb + +*.opendb + +*.opensdf + +*.sdf + +*.cachefile + +*.VC.db + +*.VC.VC.opendb + + + +# Visual Studio profiler + +*.psess + +*.vsp + +*.vspx + +*.sap + + + +# Visual Studio Trace Files + +*.e2e + + + +# TFS 2012 Local Workspace + +$tf/ + + + +# Guidance Automation Toolkit + +*.gpState + + + +# ReSharper is a .NET coding add-in + +_ReSharper*/ + +*.[Rr]e[Ss]harper + +*.DotSettings.user + + + +# TeamCity is a build add-in + +_TeamCity* + + + +# DotCover is a Code Coverage Tool + +*.dotCover + + + +# AxoCover is a Code Coverage Tool + +.axoCover/* + +!.axoCover/settings.json + + + +# Coverlet is a free, cross platform Code Coverage Tool + +coverage*.json + +coverage*.xml + +coverage*.info + + + +# Visual Studio code coverage results + +*.coverage + +*.coveragexml + + + +# NCrunch + +_NCrunch_* + +.*crunch*.local.xml + +nCrunchTemp_* + + + +# MightyMoose + +*.mm.* + +AutoTest.Net/ + + + +# Web workbench (sass) + +.sass-cache/ + + + +# Installshield output folder + +[Ee]xpress/ + + + +# DocProject is a documentation generator add-in + +DocProject/buildhelp/ + +DocProject/Help/*.HxT + +DocProject/Help/*.HxC + +DocProject/Help/*.hhc + +DocProject/Help/*.hhk + +DocProject/Help/*.hhp + +DocProject/Help/Html2 + +DocProject/Help/html + + + +# Click-Once directory + +publish/ + + + +# Publish Web Output + +*.[Pp]ublish.xml + +*.azurePubxml + +# Note: Comment the next line if you want to checkin your web deploy settings, + +# but database connection strings (with potential passwords) will be unencrypted + +*.pubxml + +*.publishproj + + + +# Microsoft Azure Web App publish settings. Comment the next line if you want to + +# checkin your Azure Web App publish settings, but sensitive information contained + +# in these scripts will be unencrypted + +PublishScripts/ + + + +# NuGet Packages + +*.nupkg + +# NuGet Symbol Packages + +*.snupkg + +# The packages folder can be ignored because of Package Restore + +**/[Pp]ackages/* + +# except build/, which is used as an MSBuild target. + +!**/[Pp]ackages/build/ + +# Uncomment if necessary however generally it will be regenerated when needed + +#!**/[Pp]ackages/repositories.config + +# NuGet v3's project.json files produces more ignorable files + +*.nuget.props + +*.nuget.targets + + + +# Microsoft Azure Build Output + +csx/ + +*.build.csdef + + + +# Microsoft Azure Emulator + +ecf/ + +rcf/ + + + +# Windows Store app package directories and files + +AppPackages/ + +BundleArtifacts/ + +Package.StoreAssociation.xml + +_pkginfo.txt + +*.appx + +*.appxbundle + +*.appxupload + + + +# Visual Studio cache files + +# files ending in .cache can be ignored + +*.[Cc]ache + +# but keep track of directories ending in .cache + +!?*.[Cc]ache/ + + + +# Others + +ClientBin/ + +~$* + +*~ + +*.dbmdl + +*.dbproj.schemaview + +*.jfm + +*.pfx + +*.publishsettings + +orleans.codegen.cs + + + +# Including strong name files can present a security risk + +# (https://github.com/github/gitignore/pull/2483#issue-259490424) + +#*.snk + + + +# Since there are multiple workflows, uncomment next line to ignore bower_components + +# (https://github.com/github/gitignore/pull/1529#issuecomment-104372622) + +#bower_components/ + + + +# RIA/Silverlight projects + +Generated_Code/ + + + +# Backup & report files from converting an old project file + +# to a newer Visual Studio version. Backup files are not needed, + +# because we have git ;-) + +_UpgradeReport_Files/ + +Backup*/ + +UpgradeLog*.XML + +UpgradeLog*.htm + +ServiceFabricBackup/ + +*.rptproj.bak + + + +# SQL Server files + +*.mdf + +*.ldf + +*.ndf + + + +# Business Intelligence projects + +*.rdl.data + +*.bim.layout + +*.bim_*.settings + +*.rptproj.rsuser + +*- [Bb]ackup.rdl + +*- [Bb]ackup ([0-9]).rdl + +*- [Bb]ackup ([0-9][0-9]).rdl + + + +# Microsoft Fakes + +FakesAssemblies/ + + + +# GhostDoc plugin setting file + +*.GhostDoc.xml + + + +# Node.js Tools for Visual Studio + +.ntvs_analysis.dat + +node_modules/ + + + +# Visual Studio 6 build log + +*.plg + + + +# Visual Studio 6 workspace options file + +*.opt + + + +# Visual Studio 6 auto-generated workspace file (contains which files were open etc.) + +*.vbw + + + +# Visual Studio 6 auto-generated project file (contains which files were open etc.) + +*.vbp + + + +# Visual Studio 6 workspace and project file (working project files containing files to include in project) + +*.dsw + +*.dsp + + + +# Visual Studio 6 technical files + +*.ncb + +*.aps + + + +# Visual Studio LightSwitch build output + +**/*.HTMLClient/GeneratedArtifacts + +**/*.DesktopClient/GeneratedArtifacts + +**/*.DesktopClient/ModelManifest.xml + +**/*.Server/GeneratedArtifacts + +**/*.Server/ModelManifest.xml + +_Pvt_Extensions + + + +# Paket dependency manager + +.paket/paket.exe + +paket-files/ + + + +# FAKE - F# Make + +.fake/ + + + +# CodeRush personal settings + +.cr/personal + + + +# Python Tools for Visual Studio (PTVS) + +__pycache__/ + +*.pyc + + + +# Cake - Uncomment if you are using it + +# tools/** + +# !tools/packages.config + + + +# Tabs Studio + +*.tss + + + +# Telerik's JustMock configuration file + +*.jmconfig + + + +# BizTalk build output + +*.btp.cs + +*.btm.cs + +*.odx.cs + +*.xsd.cs + + + +# OpenCover UI analysis results + +OpenCover/ + + + +# Azure Stream Analytics local run output + +ASALocalRun/ + + + +# MSBuild Binary and Structured Log + +*.binlog + + + +# NVidia Nsight GPU debugger configuration file + +*.nvuser + + + +# MFractors (Xamarin productivity tool) working folder + +.mfractor/ + + + +# Local History for Visual Studio + +.localhistory/ + + + +# Visual Studio History (VSHistory) files + +.vshistory/ + + + +# BeatPulse healthcheck temp database + +healthchecksdb + + + +# Backup folder for Package Reference Convert tool in Visual Studio 2017 + +MigrationBackup/ + + + +# Ionide (cross platform F# VS Code tools) working folder + +.ionide/ + + + +# Fody - auto-generated XML schema + +FodyWeavers.xsd + + + +# VS Code files for those working on multiple tools + +.vscode/* + +!.vscode/settings.json + +!.vscode/tasks.json + +!.vscode/launch.json + +!.vscode/extensions.json + +*.code-workspace + + + +# Local History for Visual Studio Code + +.history/ + + + +# Windows Installer files from build outputs + +*.cab + +*.msi + +*.msix + +*.msm + +*.msp + + + +# JetBrains Rider + +*.sln.iml + + From 0277166ca733ad3c20d80105ba42f216998784f6 Mon Sep 17 00:00:00 2001 From: Dynesshely Date: Thu, 8 Feb 2024 00:51:28 +0800 Subject: [PATCH 02/24] =?UTF-8?q?=EF=BB=BF=F0=9F=93=9D=20Chore(Submodules)?= =?UTF-8?q?:=20Sync.?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- KitX File Formats | 2 +- KitX Rules | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/KitX File Formats b/KitX File Formats index 50b818a..7c17547 160000 --- a/KitX File Formats +++ b/KitX File Formats @@ -1 +1 @@ -Subproject commit 50b818aa22b68c8d456125d27baff891ae283031 +Subproject commit 7c1754756979cf0c288f87dfbd4b7303322334e5 diff --git a/KitX Rules b/KitX Rules index 646eb4f..c4c630d 160000 --- a/KitX Rules +++ b/KitX Rules @@ -1 +1 @@ -Subproject commit 646eb4f63db1466825c7459be2810e2a1a81d31c +Subproject commit c4c630d069233b829c8dc5d0dec9913d45219f85 From 42fa849ebe07a66977b595de96e695485246c2c8 Mon Sep 17 00:00:00 2001 From: Dynesshely Date: Thu, 8 Feb 2024 01:05:09 +0800 Subject: [PATCH 03/24] =?UTF-8?q?=EF=BB=BF=F0=9F=92=BE=20Feat:=20Moving=20?= =?UTF-8?q?items=20from=20`KitX=20Rules`.?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- KitX.Shared/Device/DeviceInfo.cs | 24 ++++++++++ KitX.Shared/Device/DeviceLocator.cs | 12 +++++ KitX.Shared/Device/OperatingSystems.cs | 17 ++++++++ KitX.Shared/KitX-Background-ani.png | Bin 0 -> 211184 bytes KitX.Shared/KitX.Shared.csproj | 9 ++++ KitX.Shared/Loader/LoaderInfo.cs | 28 ++++++++++++ KitX.Shared/Plugin/Function.cs | 16 +++++++ KitX.Shared/Plugin/Parameter.cs | 14 ++++++ KitX.Shared/Plugin/PluginInfo.cs | 41 ++++++++++++++++++ KitX.Shared/README.md | 6 +++ KitX.Shared/WebCommand/Command.cs | 25 +++++++++++ KitX.Shared/WebCommand/CommandType.cs | 6 +++ .../WebCommand/Infos/CompressionInfo.cs | 6 +++ .../WebCommand/Infos/EncryptionInfo.cs | 10 +++++ KitX.Shared/WebCommand/Request.cs | 21 +++++++++ 15 files changed, 235 insertions(+) create mode 100644 KitX.Shared/Device/DeviceInfo.cs create mode 100644 KitX.Shared/Device/DeviceLocator.cs create mode 100644 KitX.Shared/Device/OperatingSystems.cs create mode 100644 KitX.Shared/KitX-Background-ani.png create mode 100644 KitX.Shared/KitX.Shared.csproj create mode 100644 KitX.Shared/Loader/LoaderInfo.cs create mode 100644 KitX.Shared/Plugin/Function.cs create mode 100644 KitX.Shared/Plugin/Parameter.cs create mode 100644 KitX.Shared/Plugin/PluginInfo.cs create mode 100644 KitX.Shared/README.md create mode 100644 KitX.Shared/WebCommand/Command.cs create mode 100644 KitX.Shared/WebCommand/CommandType.cs create mode 100644 KitX.Shared/WebCommand/Infos/CompressionInfo.cs create mode 100644 KitX.Shared/WebCommand/Infos/EncryptionInfo.cs create mode 100644 KitX.Shared/WebCommand/Request.cs diff --git a/KitX.Shared/Device/DeviceInfo.cs b/KitX.Shared/Device/DeviceInfo.cs new file mode 100644 index 0000000..3c294b3 --- /dev/null +++ b/KitX.Shared/Device/DeviceInfo.cs @@ -0,0 +1,24 @@ +using System; + +namespace KitX.Shared.Device; + +public struct DeviceInfo +{ + public DeviceLocator Device { get; set; } + + public string DeviceOSVersion { get; set; } + + public int PluginServerPort { get; set; } + + public int PluginsCount { get; set; } + + public DateTime SendTime { get; set; } + + public bool IsMainDevice { get; set; } + + public int DevicesServerPort { get; set; } + + public DateTime DeviceServerBuildTime { get; set; } + + public OperatingSystems DeviceOSType { get; set; } +} diff --git a/KitX.Shared/Device/DeviceLocator.cs b/KitX.Shared/Device/DeviceLocator.cs new file mode 100644 index 0000000..833a9f6 --- /dev/null +++ b/KitX.Shared/Device/DeviceLocator.cs @@ -0,0 +1,12 @@ +namespace KitX.Shared.Device; + +public struct DeviceLocator +{ + public string DeviceName { get; set; } + + public string IPv4 { get; set; } + + public string IPv6 { get; set; } + + public string MacAddress { get; set; } +} diff --git a/KitX.Shared/Device/OperatingSystems.cs b/KitX.Shared/Device/OperatingSystems.cs new file mode 100644 index 0000000..c9cd171 --- /dev/null +++ b/KitX.Shared/Device/OperatingSystems.cs @@ -0,0 +1,17 @@ +namespace KitX.Shared.Device; + +public enum OperatingSystems +{ + Unknown = 0, + Android = 1, + Browser = 2, + FreeBSD = 3, + IOS = 4, + Linux = 5, + MacCatalyst = 6, + MacOS = 7, + TvOS = 8, + WatchOS = 9, + Windows = 10, + IoT = 11 +} diff --git a/KitX.Shared/KitX-Background-ani.png b/KitX.Shared/KitX-Background-ani.png new file mode 100644 index 0000000000000000000000000000000000000000..7abdbc3680d197674c8729ea4c0eab5ca71d03c8 GIT binary patch literal 211184 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

n z*Yos*!C5i<5c~CRI?tncuI_u^B*4ch$$MFQ%WI)`G4xAStDQ_+SEQ8EZnuF|t!24A z-o3cj_nze}yt_Ny@3+V0UJ-p6*Pam6}uD=IQmzizioCm%C}EWMEENkZM&5EhRE-wzGhBsil}mSx(DRR7GEEDUcc?39#5S_u#7CwM3jF$!~20BO6;+gau; zg6WOdOrZPYfAf$2(Z6|h`zv#rjr&@6lN8!wI^~2!rPm3wH1T4}Gt{iiMvj!y_r(GnM6ZqPkC*fVgP_iI9ocE z!o*!pSCZc*vq%y#@U-auRBn&Z%;zxfSGNy{luNpeahRaFvJRZD>y*MXI`dJ0A%B}8eq z=G0i*q_qK_E#FZDW>%_+LDE^iOb@AyWQ$ddDGVfQF8D*cJ~wS)@ow`wM(s1dOB1*U zmj2nTnwP&e>d!w460pb2JK(Q%)0xk*9$I`#*AFBq8CuD_eEMF!J&I*iEhi}@O_ILy z^!4lOCsWFP+PbKzp}GL0H*_~sEmcoyl4qu5kg8r7DEm&Qa56v@i&|y%xVDg4l0j4n z5wX@EDe$X9*TA(0lXHX18)ih9$V4Qi6z4Z+6`mjKt?5*unoRu^R`ZPjlDS$f)$UKn zBuGU`d9;~IJ?V>2s-%+g9v79OiTKUHB$c{-JPTB?V{{EU(av!w8D1O6Eeyka%ihu*?t zYV;d1OvA`^U<)NV_Ck#sm0sO=rHEvt1WBB-OcPT8GeFG07NJm~C$m&u-InEOtiSZu zTYuw&_e-tU7g=CStwmL`Xu`>=`q?W}t6m}o(UegVkd@KvG33J#$JRqFbl<$oX>hYI zJlQ<^X7@&(Bwh8>0F#7P@cdknn2ppaHB^`hO)X97;$o^rpthOw_F{56nnJ6V)AZU> z-IY116}6&vs(Pw=vUZ&OVv;$t0!K9n{{Ni)ORsH9mL>>&->^B?+IyeJeRza>gnPP2 zW++pUN=hVEsDuiYs)6VrB`x%Rp4#k%M2z4lsj+B6$B#y1`|Y}msp=S9T4I-dJ>&XBp_ zA#z@LwnhAS`o))U5~EeSa?*_9!Hj`8WQaRSb<~g<`FLK|#)q}FMvzgFOJbP~Mm1B7 zBY%YW;@rN--P_XqB*+C}Ns*pjqm`kT8yVA4%Zw}t2$#5?r7g_5^iykZdb>ft@BQu5 z!_&`x(YKDSa$2APuG-acWo)`GW8FDJ;+%@a+l+w~lq115XD;^vcp|!)h5MXIaH!=2 z*i^@gf#el-D4b;mW3m(k%T$kNPEj6`S?VGAoUdpC3@2f@Fw={r({O;Zr)q_{8K+CE3iK%qpz<@Z(3;-<7 zeKbS&T6ac3jP9~`(++h;g;6d_Ea%htv}^@5)FKKY+u^)!}I03-4@xUfs_G9PJ*;J+={e3xr)h^GUy?^@Y!}LdZi-m7$C;~;ecN~m|M0m4&Tp{;LSe8+)5zhPNhJGGN8 zkE#`>?`m6D&)!kDtON#ZinA(+wQ+4i#n!DW)I1@dz5>vVUCoQtufny-sY%3AVt&-D zPGF48Mak(+nhcGfCX~5T?UlV9{kQIV0hxaX7@+Rft7iZ=PJA`k1+X+5>m z$-L5K9~sDA3!dmyRohergm9H8Qf4sQyhKww7dB&r;ovNsC-;gWh1f0K5bYWLSz~ZK zgkhpa;vKVeK-4-Biwf7ZZ{IEd1~EhTm=?@ns=#_)7ebmSwYvx5VU)I>mIczHB5%&E z@8Z!oV$Wi!t*e5vn8+s3MV7{9ozIu8(S)*X+qT(heR%hDzFxPF*V{Lj?M3aXO3;gX zHF6~(&9`J%RLc*|Fv)!^W$TycT3lOBQ+zvbARS7;%%XI;Q@#1d{X8C_HMRz626yy~ zFto)z7&CqT;fL?HZ8Lk{`DVRU{k2! zrlzL8rm`-wh#0JyxyJ=V1JU3?1r1l)U}&VLGH0p}*cxGGEnz9nd#FsR6beXg@CH%c z)!bBWfJbYrj^p!~hnSeb7=|*j<%tvvOz8GYo-*&y;)}=*|FN8G3CM;~+X^I`B-|Ka z5F=>{o*o}$U2d0KxN4iLLHb!D6+)pVo`xgAT`Xk)!{jDd@s;ZU(V9q05pgV{WEDyy z5Vg3YC98sag{w(%OWOoXEl9fpL3I*YhYZ!@aCdV+gUyk{^FQ+KK6IbgSEMS2m}JP? zhP0HXnYB?~0?2}9xNUa3U4Qo-tie>It&1$nX=x`etD2axck3!Wss~3A8#OAaCf(Pj zJjw=mp=h(zEdVgKFcLr<3B+*T$?4F?L^D=#n_=k;0vIv-RAu!IUFYn6VFs=Zbqtg>wboTAPHizFV|1EXr8vdENfdIn#k6l z&8)5KdU|wWyWRT6by-(Glk1cu^C)nWA?JQ{dFBNnDOp2i@&i*nCM^fghIrO}`Joxq z!Eg3T(;@Jhb8(1C?9=N8v3}Ejy?yt?%U8GlM%bG8O1mf7QAk%(jS(x<9pHyFmARGY z)eb2xR^=qQVE~5|yQw$`5FCWi`r+#5sg@d|V+P4S1XmH=MieTIGR7fANm|K&-Wyfx zTcjM)^!LGAB=u4;1RQEwa)j2c)!Mh>B7Q=!Lrm`WGtBI&g0i7m6p#XSSTgdVm*QiSnf= zw66LZzGg^DR$m*wbh0ksH4-L{%`4)E!wUefyf(TOA{MbInf#EnWyZtmO(FN;iI^_q z{(76gi<>O@K|3Ji0Aj67NdvDv2~kDbs~|*Wk|w;beS$MJ`4rW!WH!e zx3K5ScaNlnSg~aCP`a@@51_^|z`tA?rhivYpAv@rc7Y$2muiz1#|e4uO=%6Fn3{G~ zSxykPb#12;Kw0ddGux?I7iOggn0X#K zvC`ZLC#;DtIS&8cSNC#>Z}>(|B`GIh&|3 zJmJAg9ctM|09+SDd8Ldy7oHhZ6+{!{K3t1J{IrZ~!8BJjhz4$;7&bFA^MrjiF#^7L zN*b)iiKoGFG*gD=3&n;g_U1>i8=wYX)Gfc0;YWu-$rvD9^twi=d>@#(T>1ig0;i0ZoPX_2I7EZ09cxshkYz+a;a}N z8HZ-({6~dKwXN?NBGVqrGa5b1`VJ#%UYRviH{7a5c6QZ5F{L>k_Cs0GWEuzwfdH@+ z>INin>R&3M`Z;ZWiaE~ZhGOK-+6aZ7H z&*T~;PyQS7JSL(3B|%NYQgQr-Kt#0P-1geGzHOJMTxFw}G+*8Ax>$MJ!^b^F6|Jp5>1M>jfM@UI*przoPA*GOQG>YWPPY?8noERt zUp?dzd(jDaSRsZS!FtUNeawlWQN1FerBXByMneTXO7tT=Fs2P8d%)kmnq)>CGW-=f zKSDrh9Yx3sQ8Iu`<(yXhteP?WMMEZ6!0Kl{x!i&>x?I9kRh6a?fF_Lsbh9SXmc>#U zd)M9}OF@G(o>P$|%tV_baV-_GScH~qfn_4tq^AN9!sLW@q)G@!CYR4_7paV?%4h}| zC1omg0PrlJ@mHEq>3I09NU|3#Eo^_l$I0T0;nOC~r^Y8yuz_vq_*b`gw@l5rJ)X32 zr*UC>Fk7~3*Pd8NujD~cjAA52-9Ssq$0G@bhev|&v#~_rn^z3hBDp+ff)lPK&}0Aa zp!ue8O`~Gg`|vi0#$!UxAe~J=YJE)CzHXkNeL z0Up`Nc0V#E$?5L^Y%@4uvn!={Mx9=Qrb07=G?Le@&mHfL1aF(RASp5~kUEzYln;d- zF_-M*WEjPXJ*B@>4kskaH8R+IYr^`kn@F78E)ic3V4RfnyVGKzJYGfeYa<$w*g4A=bV2#x^X#>>sIvX$U z`GmJ%1B<7{SPwaA`6w{NM(&u9*}`XT4GONZkWQ;Z8#Ra^$(2SG? zTwqN*wX0d|FY}`La5xY1r+PqxX1z8LQ5MZpX}nQqKOvel0V2z$;xzFt|4r1+!Q`7j zhGggci@}&vcHa=2aaW>5hW-J%ja9glPP%GW>!zJ%Ti+vbA{KU))rSJVO&v4B9Eps0&yePo@z^{lx1zpnJiS1(+9ahkKU}q^%Gtk6WO8tOL zHw4B78Tr%jY9sWC^9Sg;Ea?6o4!pGHz1D_QYCo@ zUm4J2J(m&UDcv?H#sD*=wFMwO z4rnm~dX}+OJ_RX4%?*cPphg9cCM2{QOft3;upK}=j|kKI-N^aMu$*sGtj2^`r1ix> z_o^YM#=>hH?1ZeWslNM)B5hsPQ(IPPtB40V{0@zh)x|^7d`z1vjGoNqlA}gx3rud8 zYu`H6{i75kfWpR%K0*<4KZS8hcjL}mLL&JN{_l)|66$2_%uql&J~~*`m;5H>X$j=9 z&f)nPUh7XbRejUsah2A%sd~u@da7@j{{$lb<73FxqBMam88aq%@)K&pX1?WNPK%!_ ziD$e#*zKjrt%qe$MwihGa#=QhIGNt7 z9H7RkuUl0!mJMV`DipxX)14M#h|_HPSo9Q@nkJtb7fsc;2EU|t6+T*7AWUKeI3ioD z=}TQ$W>@MSDxy-IuM~;Msi8?jH=3C&{kCaWFXT>X;kek=uU9`l)^adb4=sL1@mW%W zld2l00vq7jNGz9sFco9HCn8WWc}c9nQWI;Mnc0%cV!Gn!cL#$2h<4rap|WN+rFKGe z8w#Ulhsy;Z5MgD8tqB^~w@pnOAWaO6h+patiJ3Np zI%9DQ0(-`!y2Y9wPCqBDz@qQW2}4@a5glAgz-vtm^q(|Lf`=3Ew$;779D%z~mb{Fq%Jxq3Tq;EoDnXUyDL!Q&wCp?oy z@@iPIQ;FZ`RYfC>sBowdy?nbAazX4`9dm1*Bpa?orX!XQGB1Tp<1LE-^CTvy`)ACa z7g2^bDM3XwFe$q6232+>Ig05r)H02uDt9J$MM_do!9>@HAuS>+ux;Dz<41}BqPJ^k zOA0-oby-wo+is>|pT%%;hm+MKvLnMkw$cG}KPUaQk2RXXb$dIAGxrZuX#e}D5;z{$&=#un>!v*{ z4Ko-e6Xq?!0>zO2xzjtAE4_Pe{AFOi68|}{CJ9rlw)?--!1$CCitTj3Zh%7>vNm8B zh7^I_1h#0&R|V@(gcVSAqmeO(|mj`SHvC@hNk!EU*DV?1dO`R z<-K`;I_vG$?YBt&FC`~s$@`uh?SwqwTK581Z)xoXo(;TlbQX5d0}QN$3E3zuVniN&6snV zW8bX+W6bkRSRTII@j_Z0IdBHNmB1yNB?l%S1dipzSp7HpY_8*y+#0Nq3Q|8lzicm; z<@^Nb>FLofH^6l3%mgeU+p_k4wV~c(ErLVWh4>+0-xbw>6IkMX1E_)AznQR2qFhds4>$bL=n!vN-s}YI{yfb-jcB zvi`^KoU+%cfWl59VK{a0kPu9o06^B4McP~bhe(tqO%rICV*;kRgGzF=NNP;Xv0^np zmskYIq!MM&J&cUxxfF|*LOaXWvby&Om}u*v3FS#6QLr?b-?$Dh#6S$!`CbyR;#ZT$#7E-FmlT@Fw7ER zEvs@}`v#bR{j!;~hqrHJQ)u@i0Zh%dt8=O!QJYGarNZYYVh<30LM8GHm~udh&j%D( zkk^wDBi0|@M8qePsG+~ZmB~jf6ARg(bSeqVYW?6SWMFh2TQUBwi=1aRnJL+GFF!l| zKHZUW7&bkPsp&oYpkfxDucj83jP<$cSPv!%bnVu=q|02Mj~QS+>2;9Vi2_K_8tC=o zulp-v#Rso2?w&oSuWByGl_T)#($8?k!pezX@xXHA@*h#u%fw$=3vv*h&^ zj;xECLGFlT$sfatyr;>YWd`T?M>aP;?v0M+!C#L4850ln5aN&2I|jt=G`FxcG+{`< z(EA+FpCM(-O+ErxxxB~OyCcc`eU0G$MjPK->6R3q**UMlJE9y(+}O z>4wu#)FhAjQ|Wl+CwV`|Kv2-0ahACU$%AG{Y$*k>G{Wq5+xqnip|n+RTNN1U*IPhU z5Lhg$2FCnZD$Afq8uc~+#w=nwq+nXkD1RZhKoqMZkHM?d!w}tUQldjeCjfaKzUQG&)m->VVR@^#oGf*}LHi;?rZ#lmmuUEBuj&^z% zKStzxdVD?DvpLINjqp#I2u`|6UI@q0Yai2#W(dvfx^-HlP*@^K!G{IU1D>BgZk_AOXhJ;MPVnr+ezr8{jj1uJU+sq2t_z~IeDiFRaU>W?IZ z!+i*a9UB=$u(=b{&@(&(?9&|%gvr0=P{5d#m|p`>ySJDG%cx0s&jj{{s=q0$&5jNU zo8J`<4nP!OAs6Ax^=j6er{HZHy$(fdRAkPiHzB*t4ztyp9@QR|83?7`pey%q2Yi=O zu)ol9c{nn<(m<{$h@4VJrLs7BiZwL)Q76nF7`-%P0W_vzJWtNO=v#{Ct_$-tPPc^o zxu=p?oqAP*PUac(xfp_1H5iZUThC~6J#@QpOEKnip`Kvey!90g#?wJtPE&`wo3d^aF4JZy9ui^#V#ivnd+DaH_pmC z#bzjhLR!d_@8!YwLmt>9Oz#&mSOGP46t-SAzzHI?g9V^J?Vuc zx+-AjWm!)vmX#I`ckp(Urhp?jCJI>mOzz2VV-VFdm*eP)dStqK2xLB~d3}nS`ZDUK zB_$gJCgLELIi|J*wpc2;ndxk{$_s@<>ZcDe+5R@J9JJhN)#THWrB+N=y|_~_i5tOr z3NC>`y>HLY+qQ{;(qfgeZug3>5w}oSc)2K_j3g;pLDgVc7$W$oT$Gf$61v3B8Tk$A zHq@%vnAH1l$w4Iqs(MC@hAyJz&}EMF1u zbFk|!rh(XgsO6A3qLn4E=V2s_aUR~Jl~`@fZO2cm zNgEI`MSBJ_bH}v@PQ91T@wxM$$BRM0gk0BUd3Z1`uti$q7DUYi0kcS^u&OUI(alB- z3Z(}NROoRRdO%;xUY}G%qzLESOq^$v$c?9UjpCIPNtio<$x`Q`1}r1XsTD}N$6cq9 z<(!xqMxNRf7O1&Q9-I2J*G(?<$6h0OV@{e+8iT)EbI4sSJId-7cJk^tuvC2TQi0bCTiw$9C!pCHEBx@4z zGE^GKC+=Sl7-vFKHep?R7l3(Z&wHb8_ZaS;KijOyO{xr-vT}D_bn48g|6N!kBs=`d}}wu5d@}D8JZoV|D(} z=d#l)Jz>|spwmF7DQlqa#=#&hxUz|1W@YfI#8#s@MLU@+?{(k(P+nvN$iOD;w63z8 z%$grT5y|AWq7c3Dl0+8uF|swwHGrIieXMgfc2O5qVux8o>ZGKIBC-5y$&N_`e>1$T zK_LUV6hUBSrdbYeGF!r=jEYiL(g6aw-C*Qjr$!nioF``3bB1Zk>S9h*7+Mj#pL76H z#Npc&0Gmgf(E>8!Tf0=>qGX(0p8Q3`R*#s4oFpF7wP(R~Jn)673F~)PIrkfm13svL zS(fbhIrdE!g+|nG`kmA(m@aeGgCqs}*?PJ>E;eQs8-!e`r8rs4Q9?}u`NTriKb!PK zt%3wu$LO-}0~%p^w7 z`O{>Xp)mvPt>ihJt)W2Y7ZXp9xIO>H{l&JspZkjw1ZQ_G{kd8mOzvQXz&Jg2Mv}z2 z!n=H|PwvcYbyHoi%j_(6CB_U*ES`)R)+<IjgB4cE%v5(PitI4U$MSQPlz~ zE54NKSF)yYk6Uhf6IKPFr}r!L zer{Mcf#whbnR{-7II;`zsjgVMK?S%SGjP7JH{`C;Cso zw(F~vys)HUm!U9eKNk~x@?}5zBj1#EsCJ7z4sx|q6+`(%F~pm zja8S%O;$bPp$WTdC*))5nZ=|Ow)$0OyH4&_AHqF6j(@(srY^yM(hb#T%mNe)IjB9| zIJH~KG+AiC6Ur1#xgF}$n@^UjJ~I>eW0965*;04q7!BxZBB+BrT}|m=k3=JyrC~Z~ zlXj%{&M&FSh+nbfFy_~f49_mx7@l|2>Utz+ka2L>GWs~9b|KrG-LE?G-lp(QXwsU= za9)y4_niF-KVxwG{pYVp!I&{8rp3W2NmqX}InLQa#EX1XDeCH_v1$w3WaCUdpB~So zaS$m%vATDV=IQ1i!T))9cR_%H?A=F$o8q}ccn=sei}mhj%JBYiOmy2r#B}c@Z8qB3 z&G?K!93v~dFe@aPA6(Xcj0vc$v$9d6FXjO&n`Ia!wTUQjML+{#R5Q!ci2#<<$%7KE z0E%~sVOYihU58rfBO9u7N99tJi7CJoMLdw&4ikauH;ymv8Yu+K392>F*eYSEqwe@= zJaex?lG4+aqg$+-r(e6Eiyg;ShWwD?-37U7$ocx64eFN-#W5b_cTSC_+i;}WV2fS! zX@nSyw~N7RAkzbeD7b5^YGxwjvS3p)NNeal>=pNM5%m~$(Fw0keaH(5f@*F{CHU@!=llVeLUc1fI-CK%()Cn`kTr3O!ut_FAz|W6|kuFiaMl zrEfo~qqcfQo?jn+5dZF(uK@KFZ5z6)>MXk?wj4^_{SCZOACh)>`nUU%Wg4g z3@81GsnOx&`YvA>9eGA{vaACFMhe@4-bX;$v9xC{aiBRTq@P|>IN0*fDJ~YuY^uK$ zlcgrN8T&POik0l(E;wLQm`GFENl|(ZG4Ad!^B5l3uPWAAWq@FS`cAvdI>{o_W zczg^MP1Z_5_)f{B&Y#$MV*T;EnE%kH*?y{6mQU(<^mJ!l%8a$ms~?;@n8-gN*Z_mq z_2RyJmTtEVA387PbQj9QPaP2cgn#V|JtA#2Lt7}VfpU8DBu%`I$e__~02BJnJu<6L z2yl$rlG~~uyMEtcnXAx&N(Uo+Pqksga43c{nkN^5Q|}MW4H_RY^tD$$fI|gN-I)BO zv93Gf+cbB3I=+AB6Y>ar=c#&iVLNLL2wQa zHg2*>0nFMi;&}Vj%Th09fMZmx~5XMlEpdn^Mb>8z}!|%IMeBzrQ9e$zoq}gX2oqq8s zJDAB`ZR}ls|2X&8>>@OK+i;%ZGGgsbRjcO!cR`bImJGd08^D}7ZPq(sew za%UqvEA-NS1VqJ}HQzGU*2jlNiTpit2C?euWIc>7B?J!I&)`E&pXAAiIVpFTi;3cX z)oirwh?uxF2w2^;x$*h7;T;U1oQCj;8Qs0+Y#hTO!?PL>+UrsEG};y%ZQzo>(7p>Rz_*2?~yoO@ytPZ7@JPBGwbSsB-J_E>@e_CS+ZlNnUPbN%HtwJ4S*yP7 zOvVg)%1j&rvsYS}_4C9ir8D-U8gaNWFZ0lO_vS#D>D8KV3bovgJuOqF43oZ@1F>2| zBCQc1E{K4Vr##NQW3QOaoH}xV(TUW1!Tgce>w|xF*eR5G;aXy!XVu~=2RdNygN~M*p-R?k&jTDvu0VG@f3hn$8GW{#$aE8)57k9+T7`e z!=&uZjhS=z`uG#SouN1dN3pxv(wrE*=5)af zi0k*J-1t5>ZF09AazD(NUq1yFW>g((xz@YaM2b>D2JN0|CV`o1s-1D>$RwW8^#iGS~h zXd69prc@X#)8$8WJs&V3Gv}F_QQmNTz@0(8>)GA(e2PuYKuBAnN~upoB=a9tkquB{ z$s9(^l6e|uOm*s)lFp29AG>wHtk=YDPm167dL1jrTI`*`#pKQl4%gga4#=a8=+%z1Ax0hEA@Fzte8efTk!nTlX zenY7jhky~gN~+tgqoco7nc2M$GM#|(L<&9jEM5dp@aH^#M|E&8YLDDN0Oi^3S@QV) zwVAN{OYSb)FVJHM*bzBiQ(|diPfr`cwbTL!dtleKX`{`+ol-OrTp4;Izn~pM4KweK z&vy~`av+1J^Jh$=P$*5(Af_7`aYi-F0I}Q!?1i0OZNzpkv)EM_4W{7~N|3XTil|)) z+{{3ggvQ(mmZg6Fuotmg1m1lm(-V^DwdW{Q-MyRqD%aWZvp=+da|3rvt`-W2AX{T~ zICX$!NQlW4@D*XW$RP{kw|??$3|C1A^V3eC?}) zITy%35UE6q(}0emoPQ=-OqSOelGu4Z8z&QVC*Yng)V{4Kdc=>a*@hbaIK=g{8#6jX6 zn&MNhd)B+#8T`uAclP@pzV}!&1F+@iwG4RIyPe>Tj@X#%r1b>9_x&vx%8hImHpnb= zuXZ4v)T%s(Bk}T)^PQ9NF%(H^1+oc+cDvoQcao-{G`6S`OMxF_T=}1RyCU*Wa@1u^ zPsQ(Fe;uijygCf}92qloUwZTvHkma$4Pz15_7^2lU5)})b%Nm?(7eWvbH@#nMVIh{ zyLo=~HQEW78VeSI3tSe;v~?-af6l)htW#D(W{INsF&LgRIVR+s1!+Ge^_zF!{m7_Z z`|I_4ZMUuAl_%f5j$iD#Xs4SKb#~J@1s!)D=~x+`r2ZiOxFgr-{2ses;hV|C7@zQN zKr>7aagD=@{lq#%V8_uve!&-k(otYr{bJTrd<}Rg8P__WJc_5c9sij8$aX zZ*WZI5!^MGz(3xV8(I(9p?I)$L{CPvWFFhlV|QKMQ3v6^xSj_@q)}uhiUm)zk^KFdQeo9jd+lL$-|s`l<0S{-xck~-|01M8B#qCBOMS}&igom0C{*_c zq5u#bP+r74%N87Qzh^ zX>TVHC4c)o{m~cB9SsheNl}ct<2OX@^0H){|BQ+ccabe3x{?m#yIW<73!%$aK{!HnV!P}dVPBCHNr&Coux2|7Uxf<-bRC; z(zZYTI+z0k=x69JL*O;Z+I79yWoK>Vo9w0Cx%$zCeDFx8smOi`<_^7Mg>r<}Y_Myh z{}{{;@e6M)Ety(Ea6Vd^oR+pUTHnZpOp_BS>e5VM<~0X5QiRPs&&Yb#(JqSO@=H>hv?e0jngGh? zk^Oxg2|$)cYf!a3q(W6=A<9fg#)9lnHiZELG^U9yo5!#V1?M8L)ruzXHucTIIMHMo zV9v1+F=fF|9`O{HotkopoI*pqV}yY?rBC+@^Z%7!HQkm+;raQvuh}|I(-7P&-JV_4-)nYvfnkl6Kmc*@A%pY|ED@;`!7C) z$oKc(KYDi3#*bNf4rcz*_V4=;3IsC`=g0o8#637IE=cIFqtFKEr`X5*&+D$Nllcg~pPV6XmARJj} z%vUC^z;XV38QR1K+r4(dqgeyYVhx}OWNFIVE<11% z$Xe8QV#!bj!?rO7`m0x+nV)-|I!)LfGz1dul>v;b0$^8aynBQx{_Hi*Zc@=g0yWjgLNgv1N|bj-uv|`BeXbp zbM7a=UAmP`1_!6lkYUFe8-hS-xF3V_jCGi7d^u1tEa}OWnm~KN6L%g+bmtF-_TQ@n zb~rKJRb=MwL(-3gtlRI<3n^R^cn$=qRl(ikOD5-qtJg*96*KKP;JMX5 z{+s&V>hq!Qva#5Y^83MNUs3^CASr>wt=IYzLjmN#cbRe%`jHAQ>k9V;OzN-*#|u-n zSaF1-Q!EpBre=B!;kVuqH-dGn#!2KT+Lo-K(T!&#EvQ(%{Tjktz+ zW)iE8;y=ulX^Qp{r0fQE*ZiK>-Mu5ePcU|P?k=AAmq!kpFXc4J^}|poQWS&do#hhX z+{*7W|5G4m@R}6s=*?>z>*le4Ql|XPVeriJW9*on#JXBtAi9Cri<|CX=ykD!ng@iV(WYjG?oS9{0 z8p2Ew7QpS$>-UV}zO&iZ;m?EmzZ>davCgkUaOYF#f2UAB-St;zXX-O^BYB;G=JLXn zqT|Bbj#_ty&fy6Y%2b0W78Waz@ZNLmMvM`c>w5n0U)VZmgpZf{Q@|~qif_kY&?w@pk*(3DNgL&n?{c8l9XPrNKG0)|!5bm4%B!|7) z`-Hn!Zw#DCP!4T01stX+dS$J`j(<+@@8-b$C3zXcKZt02`Dg~X18J&#vo0`jS;8&} zCMgBZVk*ng5Dd$`g8E0hXB95?Cytqd z;&Y$w^~l`^^OU~Ae|J1NcWVR#6D$(S#-8TrT7pk@tnT~7YwF#R^h13GqB2&+OYn~S z2*&Ty%AcH?BPQ-u$g}|Ba3pE>?09ZJhoPO!EKLJ7W1Z0v=DfL)rKSpL#nW?NqA43X zpq@CG)Jlv~UbxFqpIx6L{!fIuBO#~RxQ}bzfo{=v4#*y2z*F;wxFU~l2YcDwEyLkH?K9gE+BG?A6%!U!=KCov=#yxX; zDTqPey;`p}cRX?bnm(OZN(&-@VRugs^K|d0xagB$wVQr2LO|j&@19dF^aL_8Rz+&n zj`ex!2B(8zlHV!Roy066anIhzzjj3V#PIG_&MfB#o(?!=G6)f(Gw^Pv&s483=Yc;$ z(h1ytgznYc=qKj~PhU-R3242uMtK(OOwWOgmNw$Q97V}s=7C^Fok;1 z$Rk@(cKp?zq(U`%DR~E%IxA(mkkULnV!az6`pE2TJfBAvAg5mL$GhXsBdKkIs=KcXkcX!6gWs)I za>w$%S!r*i%T)@X{;nj$q_X8$o%r6Wq(^8G*~{qUVc@?PKVN+XZtO*++M5{l?rE>m z&=F~PC{|HhwF?$5*#0|lAKpXV0em}U+P4(T;D zmB{H&C6rc@hX1S6a+g~7V}!z52sE_`DpJ>E(E;!3o#W=;+ zeM-~Pe=S(ByD>YKizF8e?8>Y{Xw%$S8fZVR z=wE>jn>z)hL6{6Ju@!@pk$sLP4{D59XW$D>Km}1hPNO;~u?dVjf@f z8vkoT^osA7^Z6R3YF;^CJNM!BZrrs$n&aI!oIkMf>j?0#{xO9a4_6c{O|E!+u%VVx*upXgA zU?(TMv)WTS4kLe^z|;5+&)Tbj*KWFJk^{ZQHAg*jyz_OY+4uY|KsD>Q*|y&WP6Oi7 zhzfVD8r&~CnE%N9gWU>E`NfHLLrQ1CNOjJkZVMdKAxf;WWY`fP_O(Vp%|s|oDB=N0 zn_iJ%mUdytEFn!4uwHRUgH~v9FYC3;k+Q{dYHgZM4vjguZnzc`nJa=hVgeB+%rwx+ zGML`X7&WtjbNP<9x%)lId}5I0viQCwq}Jj7i!u5g_s=1wsS%2>iBq9TsC8hO!bC+p%X~=DP-mFPn;}2F-nwV#OgKBwd zhM|LMW+p`MitYCC`L=1ZoDHKmi|&->e&S{Vypq%~xEZ)df9#st)B49|sKQKxo$s6G ze#Y;<{*m_oF#fnx>nSDqU3O|`t1DZ95TTQ@6^{j^;xTjOAczD{Q&n`cZq`-1IUL#6t#7nE1~QCkWNc!B=Ao|q!LF#x z>I^UP*xen3Sfpo7n;NI_mEs)Q%;oh^4fJRX3=hBjfQswqwfP+GY0X#2JFV4Ck3*bu zzkf8wqiYPa?Br6jAMo0mv?XqF@5?i>Vz3#>rGUfA8!A5On-B8Y$OFnVLVyZ6)YB9D zF#Q^xAJ{vANG>Pu_;2Fdp^I($yT~~r#jn=i8BZUYq8Q~5cF5K4YLAy{A!X0ygihjV8L&R$bN8f^skSRQEgpk{U? zL*!J|)aQ5y8K?W_E+6Q+Q=xZX9zLDE;Qphb9w$0XS4`avm;7*RUQ$EYXK3uTsD+hO z&vX?nr0kws^xdn{38|4AxCABLp(#jHb4$Y1VzZ9lFsojSxKz%7jo$C!`-nk2%+E}Q z(cJ=~-2&z`x4Dir?tEn`_v<#F3ZlRI`t((=*$sC87t2bhK3XC~VQGD?rP)Vc%_jeW zxz&V7@Y+9l2Bjij=^6j+VBuHV1oQQ|e|#Lf8#;H3gYk&eGzMr_>*mFLOjDKntuk5m zZq2BM`;e7zYbPL9z$;k&@^AWn%~#%rcWIL&7dVAjO5x~<1g%gpFYX*Y@ ze)RR4jAQD_jQ@t+6L)PCF;jn)NKQjUf;M&-byNcL6PS`H8HCLS>4$e(*j7HnYEhg^ z1WE{@;mu{3fKfL(Grha2s?pNuwA8|5QNSUJ15oY>xTo|C-s8hPgCEp&O&5>f>{Ezl z`5brVjdv6NhpB*ieS#b2ruIs0J|>LQmFki@A%u&Jjx%QSt7D`9oIqp0c}^@I=Az9q zg~)MBXdWM@S!~#g=&WYl%p1OeM^Ccs{hk)NP#6ls%-5B`e(Sn*(@adxunn0u2LOsu zhXyi(pG-SD7CYUZ7I#>dDHREOLB|>ua|B2C0E436Z^Fpo1YbvHjD?mzaU$x#h)o|Q_7MsGwpdOr~6;wUJXI?uQ<(bKC==% zX5mexzw6H|B#btbYY!QbGed_DHdwXjK78f9^SpBdNJb@4uk z_3@h>e81YVtM5#RLS))v$nH_5rr^%}Ses~ql#F?e9ck7jGo?_aQXVs95+;_$yc%dw zi`)wVjS2vo`!JmcV&x!RW}h_BZ@2LMOVy2zADKH=K0;QxPL^OlhO#OlLP&;#Qv;;7L@VwgfY#n$KWfY~&_Y^gYkV_SZH zKTll#noZ-HI8BvfGsb;AX zq)y>+n(a7o*-Dz1#DEdY_n%b!Oq$v-8&Y+nios!goWk}BA08Ngpr~a}@A|Q`0w)nU zs+_34g`p27H!rxb^jxt(N-f6h zBT?N}@_>Q75)5@7WH>#^>3X2%aAv<$m{fmM#J7 zzmfJk1OIF%Ok!oJ2#Z`hKp$LYh{pZ4z1>pEH;Fwb{fvFcFq#un$NEFyjKW!`YmeZM zfC9I}XlP-58Q7K+NBW0ZSf|`^{OHdJXxg3Oo12B|;=y6n)=(WIeqXx<%Pj6cc_9rq5mtZfIU(TJyattDH#voU<79Hr4-jJPl1?#b76}8gv|Na36?Ad zI_Za5KVqin4)-#WQ@tU;vRS+qn(id00x0pJ2vpg(-mjaYxl=6#5p8o(m+eTxue+~2OXacphA-=)%)8A`p*Dz z|C%Ox@QDhWLY-=k7Ro*7wmV$B3M? zInQmpPk>{}c7`)^NRINsW)qf%nc(XJHb)}0h?2%{*r16Mk*$I|Ixp zkqU%Z?;*LK9~P0TnW~|23~PcFzxh>h$ei+tY{;9l$2q#eKJ&Pyh+xh3OsNFcsnt|8 zLAmG<}gI#98&C27?L_EsExJnfYobAvs1k2qq= z=Vk{V{>v@S0qL_U^ng`o6}u%A;gyp3Sp2?KJXp5XMDc$>EyW0ov8Oa zH4)>#m#6~Hbj94~F4P^e6bJi-r3ZnmOKWVj4l|glDYa{tzL|DYg@B3Y!d(#3mE$V{ zJ}CstCnIGxq5%W?QPYD#jbNk#v0$~djw1*i3l1D~DI44dB-z-}mJppRFo0)2jJk1* zVfT5_bIj3x_DhrOn60FKdTto?84t?N7}9&*aqt9>gF}$}YWzzZ4)kPgIRA4uwn?ho zhF6VM-ZXYn<<4e009lqs8qo8okj6YC(npj}vYPdK%`@0`FE{%QN@f{`b+a&zu`c@V znk{E8Rf%KcPB+y=)i8;SjP57;_1CA9$VN9(Z|@C@T_01a9*8n1!zyUQ3bKqDoea7e z`d=AADNZ|lQGFd(&YE^ig3UunRwz~td%=txqBun@P{C)AFxB4s^}3u5(!!ogCNHnw zBNY(w@^Im!9(p_!QEJ866t#F}LeMUi2OMi#IgVMN21x?%^F%!6vzB_sxYiQ7xwmBo zmk**$U(}>zCq89=)@#V|t`B#&833q3avwkhJUyMy0Lb~wCUr1QH*FU6nlkc3Gq>~% zDJM2`a@hn-ShnokeIWaw=9okn%Uivi5`{pK2Ex{g9PG4~?Q7#pl%i^Pv4DuUdG0$RE zPF2OTEeIvim?CcmQ|k&qfri=8gC8#^^w=(y^Gw|txot#lbW)42{JG|3f3s#wZyER+!GaJEz`GYQ?~Q+w^*cZ$8yA(UClE zW?d0Mh>|o-P6=ZMw&$qfoTR0BWU53i9hDDudnR6=a5GdT zCJImF%s*;%V$!zz*YpgIkAN}AtYVjwJH<32SX(6X{XIYvayftgM+O=xjb_%hoA@lK zZkzVb)<_z~dN)(417@Yv{X`WnAhuJCDOFaM!F2ts9sRPQS5lFfK`Iq7Wh$-j6oW*+ zyjeu({>n%+n?Pb1do!CH74NLZX4(%$<<$00?OGaR@`mTw8BqzCFDe-puU^7dqke~%e-Qh+Pxk=;YnSTQg&#o04fEMrGniGV}|p?te*L)qz=IF zrmJO(!(3*iYx_u-8DK_;klMH2uQwloa~&y0m=_mRjU*JaDJ^9llGVRSrgF7_AuxMc zW`T1qLFH;H4{_n7>;&DUID&?#sgkT(K-0a0Zrp!kbK{9vpA0llFB|i0IKG(>$1s)I zn;vS@4dKg}@99+ZE)Q*e|HX1TFWU{LmAv%cwW*n^_O2b7fRgq+*V?7Lw+hNMLGg18pZPz$A}BhZ>;m zDU6wMXAHH_CoK3$`5V%Jao5!5Q1ydR(gs8YF_J<^N!d*yroUcQ4l}AGbfkyN@@`!v zTd5;=nx~~wOMN}0dk$S>VhdP6mnb`p)`>Mme&+#{8K1o#LNEnk)1aDXXYQDPF0>|@ zYHdI!=_5zzeioD62>M=fy=^5+v+k{&VH?3jt7ybP`Q3o_volelkZ)WXO{9}ByW_{^ zk`7^Cx#;D_TeBs@OY_9fnHK>~IUW9e#H>g5`)-c7kBQ#tuwCbhhpO9Sy(7UT`)3iv zXU2LUU=x^aAHO59JeNWyP_8q{a(%K7mh>Giuy06l4jgixQId4Zs|8_Su81(qJaE*dUe+Sf2X9AmcPEDg8ydL^La< zIf+Ry&6u2=!-EFiy%In7>VMJ!5?T@*9P^rPdQB0~62S8)x+5?%;t z%W7tNyQp?@S)U#r&Z~Ub{KRK9?R{%zYI=R%PUrK|1TAx)RDlg95MgHirX*w?zAPy* zEzR4o-Gbea7vz;C&)O?MQN-}guyZhwu zc`@DnT?k7kwHpfB^6~D8QjYb z(tEjegBJ!d0O~r(H|z@p?j(4C$6%&3)xK?AyQI>IVTSt-13H@29=`I>W}4qFf?th}CN= zV2xO;$5&{KtSf*+5+*3$g^80CLn6#}+k#W$$4%jW%%d1uX3Wc^KFS;O2GVgXcA7_M z^-Pb=_=hZ($TM&c)3R9@)5YLMoN>&PtdL~ zQ0nAdZ)sMyspCwhr$$?>;F>dD-9YG%nSzOvQ0p&jXE~kLrw6+}%jvW} zoS)9?b0>rlF+f#iS){doy!j88iQu+m!WD}j{qv&2+qX=nn&-spgHZd6okvAp}c`& zreWiRYMAD?{t63c%J>c?RUIk}998K#T{ln3Afo4Y>=G=UHtrB;@Nfc)KSSY(o7N{> zu6Z-U3~EsA!1HFe+ordhbGI}BXwV|FM;A%>z5xzP!kIb3p{1>f8qS!D5Ij!)S^eG% zc2R5B!ic6Y#}Ihx-!Dm>nxbj?XO`YSJWX;W4O70uT1z{ZoTOwllIR&N43#j@vT}ju z2XpX=DM&U@Od4cu%bSP({R@_5c{o44ebi@DA)CkdJ336enf9#%CuvL40@5TNCxIQ4 z=F`9wqp8{5^c3hI{XM8fthvHKR%6U)KVdFNX0=d6Mx3J7+{OYF(ymLP9){k;Koj%N zR7;p195a5UDYpN{^+s?{4#8EgI?%d36q;V*ax;$^GEZNTh74O#I2Od%3@~&kg(b$J zhtv{zEh7zih3iZhScywk29d#B`x3;~H#G)pulE)R$B$O$tt z;vnQZ<8sz<902W!rz5+a1_~t7Vrp_=;%Xp3|46C9SD3AG8&_0xEmdwxQQFEu3b+1} zr*|5(u*gEtFeDui@vl6)(G&HhV9H}X09+K|MpkYQCse=%ys6#Hu0~Zu*G4uEdzx37 zaKA6|jOj+9XPSC$V$6&oNfGm3h&q@BD5R|)In8?@nkRCa{#0XW6AV|)X}c6@Gq4@( zldGQ--_(O*{`@j!v^(_ap3@G=aUtnBt25{Cffd#JBviVW`9)G3#&zZCq~z`S1+AUm zzS+24HX6Yuir%-bs$R*Z_udGy5uo^Q^BIDK`~<3KhXRow#;KDD>HDF^d{>Wmc8O)i zoSC{1fuJ-&;g_eb?l5Te)VR2J9(Vb7{beUD9mh}ba^Zc zs0>c}TB|ADQ3h#jXf1?Q5^J5!MbrtO;9;uhJKNK3%@mL_GHe%oFk~Po(BD)6cC~HW z*jC?@2|-(%fY5H6VQKIUXJlJe*QQGoipV0(`GVeOxT>+}^JJz>PU{3+$qI&AL=H>W z<*!_R6gJ_`O+K&`OKa?81?~g}=-1x0A?Zj=JMcn$XNUeD9?fLI30i&XeY%Zq6&dOu ze4PflUq@3wCL7%aVhZ(^V&s_DA!!-D&&i(zqL2+WAMX7*u(=Fn?2tmVv_3%ge2OtV z>GU#a-Ax-38J5j32P4YE&9HU5DU8ij8`&uI@(-R~tQsaiU|qFu!_v<{@m>>Ks-Sd~ za@1o1iDNDc1mf0d-uAdz8Y2;;BAB^{d`V$L;Bh!2**{DBWIUr9PyfPL>N%Z3!@PdK z>v=N51Xrlx9$AKiGUmG&yuP-OUjFUxu9w?FtWS?mqW!~VQ!}bk zHgz=fT>{#-O(<+)5R22=HV{A$h24bGC=#bRs}&c9JzA6K$;Zxcc@R)3W74e-l%<3y z80G2xY2O5*QY}$-n!gZ)3i+mZldRN(dznA9f>O|9N(Ku~7V2b5%v@^b+iXqEWWWZ@?vwSup! zq+dcY&+Agvu4-*Pub`4?-9O?zMA;0J%Mg#a53Rn6`}OGTz72b{#Mul6 zDG$xeryqsumiCCviC42hm<*Yn411_JJUfy$F^g)9gt4{b9i%G96kiHXbZDPy0olOi9X23monsOL<%;n=hcdR` z>*P7?rC}m`{>(hT6oL^5On=X6rA%>Z$r5XE(!M6adh+oI4v=J^B0)9qeM5R-(ld;`5V2Mk?!2thBhISk>@lz4l zdpnf%G)rN@x+1PJnT$~HgjED!I?5QCs#@>;1{ze2X0iyNwwd<8BZF>KvKvfIEEH&V z-_$p9d$+@h&v1Yh2U);Oh;o!+X@ag{n5b>qH&Yn=w8*C0RbaZIU!K*>gpcRb`QfxI z#MYNk0Du@s^Was59@AEuz2mZGl5$Sc@vG)z3RwhR(&G&?<%fGQCCI0&h01qG3rJ-5O9h_jR7+`3pOK!|C$^`G{bKPn$E4QTiYXB97>&r{Ep9$^ zJHa}Wk4AsZNJT<>sml}&nW$Qi8>2Rj9=bfLsXB~_+mEK!4P9;96lU+NQ% z*N5BXc6!&S$zQ(k5T?Fm6p^kTq&0Z{Uux!^!I(mpz*w;9a2@UMxFu(Jn%l$ly@Ca$ z&#M+tS-6V%8J~VtyAH$w5>EN(_Owo56AxB*4=+m|0kB)Uv`Eo$?MjjjCLRo+IA?B( z7qBb!a=ERIV!fT(d2Q51H}tDsug|z$7i-&9*YkO4t>3om{d!uXjw%)s-({$TlA`+*;Y1gjXX4-{VPRsgm=DKLt?RwFh>ej6rg-dH99uhHA zqZxakd=oKHAssYn6bizQ7&!0$EMd?;m0=qmA^`VZz{DaGWhaj%ktrSmLs&lH(TN%b zrmEs+AgRLGNNJ+9e!1%H1`ptqO=#P-_iH2Bny{H|YQ3GB^{w|C%^=HmxxH*%4XcQ- z);$4L&(92NA`A3Lau{9OLqGvUR#$VWQl*(d)Qf^BaMg~!HD%L9u$)AM{rQKjcLg6$ z%lW*XU{n(t1WgPA2m@IR9=@%WpyJQ4`6gornJZJuI&N{jH*7J3c>+&PP=)_kIcG6z z9#gOoaG1rpq;QI2<-@1dxPWN?ignwZ8{wabnHs1nI-FcL zcUjr^iqZiJ)Jjs2k)bzQ9PcMH##Pr{_$}j+5(^UuU2G-=A!$RzrPEBMq3b;5MVU;p z10cEsKL{hcL1{`=sM_V$wd*SF_Oku(^76yA15MUb_vocGatrfR1Zql(Kq0ZeJY?5k z5Qaj#s*!}~l&5g||rzm8-1EgRe^q>NldLwPSW z5h^mO2u|!Cyu|<*o4M1b;YFjN_(Xhy&6IGzJ@ZE>lm1WI+GnBe-!PPbX8oUaq&77wdhyTrRimhvydx-#(sO zYq#EwY^_P2MDH53Nu!+9WczsC`nD`>IX_|TxvbPYMPl1FyenL9+I(Of`kY~My6HSJO~r*oWal0O(uq-3$V>w#d>by!D&ecBN9g zkZ32aCsTb~+Vc(47DAfXA`N0j2qJC6VaBUYJAA~_URs~Y+>yu_%ZJP*^vPdwYtu6e zVsXJ4D3fQ#g_7!=k*J376l|XBXeA8xXCWr=&>rz@Mnx>*O*<0mE=2`lTJq_2H>wGKjRDQ<+bEvRA=t0n8mXx-OPhv)EJW|NbqdR(WnMKxvZa{Im@c)39MfzZPejVQP;9b)9qd6` zgn&R~>^`jT5JVxF;pu$Xv6)Pb8rp(GMW9sLwECUXiE)fVb~(8XwRgi=Av=_eCI*^@ ztp}?0e*W@{hcDh2lq>)jxf%;9r?Puj9RJUl!+KD5)RHOUoE)2{v2p{l)KUY;*6AK5pm zb~XA&fbGVPWmz7;6Re$2Y$t3t@&sw$e)s&hmwr<`ERR%K77<)~?;aQOW5mqy)Irbf z+MrtzaA@2#+1)4@=BA5r<^V?L!*rMqiKsj?bQnw;WFZB%z$7<%`LcxBmU${ITtS0? zVo~QR^!->l9SBo6KX|0b%twiFhXe7Lor}jk-ok-5Dy8gF%cA@r3qwd%ffmvu4$w!w8a_7gkrRxZLDvg?2~-vi|>|;t;gz zl%xU-FU``t+1(T&AhK#2&H50G3F2f}Cw#uPJ}|$TL196bpJsMqa5W=RG`WiDw2aSu z7PR2S&|yet9YZmcr-KL7)x9iLGwrzU-;p;cn`TXHm|MkDHFVElnzyFJ0|Lec}SHJnqKmX>N|NMIW z-VEeQe%Y2kKCP>?wY5Kfc=P`8Nm_fiu8VHpe)#a+wu!W}G)Zd?o_G#y1`&B$*M+>^ zt}nN1SKY{N)_|L;5#3BE&)Tns&rT0tK0N*6{TDy~*_Y?{@2>jte7n4SynO%s!}r(c zD{Xx^zkC1Ln|E)|4{H-?WD_=r#Bf1s2bMdRRT^RP6^6Mrr!HlF0n_TsMEE#*7Y3kr zy=+In#d`YB|K_Xz?SJ~8{`24d-N)@pgTTc7 z`m}`ztmJ1RUoOju(!T#re*1R|MSwTLchb%x06XF^B@&HXDMB{a1>{0GxAwHG=N9J6 z(&W6J9#5yI^ZM@no28*^cmMi&dAZ##SG%g3wG;aF?fI!at@6mz&pvXh*SwU~BWM98Avk&5Ln5shklyG&t zV5oMdl9it)F8_;M%x;@mV~25x7zqgxER9R!B3vXZ8xjQi&D1jY+(AL7&@*?2WkH0c zm=4dTLW_ddf$)_BZC71Z;nJ=z*WY~g z!-w1LL*G93ep=-HHUlY9TYj3u)CFX&F5I~RI}Ko1V!|irPukMY z%R{Xfl!~!Ruu98;k{TzwZ@#FFMDesf&4y!SI#kx3yE2AaJs%;)Xoq6Hf0jZyoz_43 z+4iA`C(bx&wld#U;Tgo*Z;@=D~F^?fK#D`QhF9 z@%_W&)3Q7@ISbIY+jhHd+qG}EuA6q%-hJl@tef3buf1=%tXi~8H_X#t9XMnaIkk3L z+NrfuYv*NITI6Bh)Glg9Y0}Q8^~-l}e(~jJ@6P8B-+uS&ufG27a{HT)mw)yBhp(>N zx7W+JAAh*@Zc%#H8l}M&a3xRV2_S4C-;10KC+OLeil7FgiJDzi00{hamJpf?K%fDQ zSV#po@&nMwRpczoD)Ke#x3}BZ+id}acrjD(sjXj}&hOUc&AL1QA77r0_>-@{{`da< ze|q`hyT?C!xP1G=`?mh(`;WhPx&Cn3u3JB8`~KN(+vcU}AiQmQ>#A0$7onb+n2aPf zXGAuUSj;50Zkt-~dfm3I_pZ9Bs+tfBxr(eJO?X=5>2!KHE$h;jMh~3Wso~7$+x4IS z+u!^@zy9#Ix9wtfYVu}nk868-THZgbpFJ+`PVH%tlVAbF3}$`PkC)9CS2nY*c2oUu z(;sgArR!BQF)O9o!n**G;7cyTQ{%(Z-k#grhvm(Ad2?RRrv_3H5y+>v5AQyETu-Fl z`sJdxu3gOpvMAefI;rB{{^eKy^4H(~i{F0uyXWf}xb^Z-<6?tKrJ!3Hh1TqE4A~z)0doVJ^DjsgBl*PtsK??K80NVrRxaxqa$3IEq z@BWkj<}kzTLjsZeR8Oo!T=@K#<>S z|JL*a?Afr9B2CG*EDi`uTh`@tT24!A0xafr#=EDqUbSz2?u~_Cp23BP3u(rNivC6E zNfU^B7!F*K`x^dTOll()cHM4Wtx=4;blc22qyw9JVGT1=>UIL3h%ZI{!Fu{f506ja zgV{~Dk3HrJ#F<=OtW4?YU1WigbE8C*gN=~<83tAK5CFWW(@k}QDR47;Hv6c0F&NOu zC!v^rxvbB`*W30_-aTF+|L3p1`M%rVYX9$j{>8ud$De)w;qrg~>gz^+*HvK;!ZX>3 z1}-GPZnlMV2laAskM8TxD~wDM;(z887=Y#@g(=W2va4K{1#~y86W{j!TkXH;{e#&J zF^WZ`3Dzd(*4Cx1P0mdoo16(TQ`Jq?5zv6Hc2(QF98$`-Ix?cRJdKcodm#dMF_CHj zt8fhu3_>=MCbD=TT{AO<+PU%Fsl7X|=ViGWo;!Zn^xNz9Z@&HTHyVHa?Z7E&)MC~E@oG=n^~Xw>;`h?k2%3{Gx%ke73{1<=!A2ss*=kGrI<)5|lqrPnYdNWgVd5pw_9)(kN z<_mZxh@`)jE(0-%s=Ggw<{&&{dpYfa^c#dj0jk`fok`^s`_6xqkQ8|Hb9<-#MTD>EjzN=a+taQ9ZX4 zC|B(-+RZc%&p~GO;z{J80mLfuAaWL-S`%T&L*kMj0Owl)NuEe)CW7~E{n^8!da`cU zO@DX2{^oZ3UGHD1eg`(i)nKh%Dcahyp4QU|t#v{vTf;@H2^yN9i8NmZ-TJnfZV?Q% z3@n$D9^Pfft^-aQkAX9}YVT%0A%6YC$6s&yL)Ry1p9BAwZ@>9Jee=zW>Ca{P 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 e|LsIXME(cwwz-{8LzPSb0000 + + + netstandard2.1 + enable + preview + + + diff --git a/KitX.Shared/Loader/LoaderInfo.cs b/KitX.Shared/Loader/LoaderInfo.cs new file mode 100644 index 0000000..e7feb35 --- /dev/null +++ b/KitX.Shared/Loader/LoaderInfo.cs @@ -0,0 +1,28 @@ +using System.Collections.Generic; +using KitX.Shared.Device; + +namespace KitX.Shared.Loader; + +public struct LoaderInfo +{ + public bool SelfLoad { get; set; } + + public string LoaderName { get; set; } + + public string LoaderVersion { get; set; } + + public string LoaderLanguage { get; set; } + + public string LoaderFramework { get; set; } + + public RunType LoaderRunType { get; set; } + + public List SupportOS { get; set; } + + public enum RunType + { + Console, Desktop, Browser + } + + public Dictionary Tags { get; set; } +} diff --git a/KitX.Shared/Plugin/Function.cs b/KitX.Shared/Plugin/Function.cs new file mode 100644 index 0000000..42df3f2 --- /dev/null +++ b/KitX.Shared/Plugin/Function.cs @@ -0,0 +1,16 @@ +using System.Collections.Generic; + +namespace KitX.Shared.Plugin; + +public struct Function +{ + public string Name { get; set; } + + public Dictionary DisplayNames { get; set; } + + public List Parameters { get; set; } + + public string ReturnValueType { get; set; } + + public bool IsVoidable => ReturnValueType.Equals("void"); +} diff --git a/KitX.Shared/Plugin/Parameter.cs b/KitX.Shared/Plugin/Parameter.cs new file mode 100644 index 0000000..54440af --- /dev/null +++ b/KitX.Shared/Plugin/Parameter.cs @@ -0,0 +1,14 @@ +using System.Collections.Generic; + +namespace KitX.Shared.Plugin; + +public struct Parameter +{ + public string Name { get; set; } + + public Dictionary DisplayNames { get; set; } + + public string Type { get; set; } + + public bool IsAppendable { get; set; } +} diff --git a/KitX.Shared/Plugin/PluginInfo.cs b/KitX.Shared/Plugin/PluginInfo.cs new file mode 100644 index 0000000..c90fab3 --- /dev/null +++ b/KitX.Shared/Plugin/PluginInfo.cs @@ -0,0 +1,41 @@ +using System; +using System.Collections.Generic; + +namespace KitX.Shared.Plugin; + +public struct PluginInfo +{ + public string Name { get; set; } + + public string Version { get; set; } + + public Dictionary DisplayName { get; set; } + + public string AuthorName { get; set; } + + public string PublisherName { get; set; } + + public string AuthorLink { get; set; } + + public string PublisherLink { get; set; } + + public Dictionary SimpleDescription { get; set; } + + public Dictionary ComplexDescription { get; set; } + + public Dictionary TotalDescriptionInMarkdown { get; set; } + + public string IconInBase64 { get; set; } + + public DateTime PublishDate { get; set; } + + public DateTime LastUpdateDate { get; set; } + + public bool IsMarketVersion { get; set; } + + public Dictionary Tags { get; set; } + + public List Functions { get; set; } + + public string RootStartupFileName { get; set; } +} diff --git a/KitX.Shared/README.md b/KitX.Shared/README.md new file mode 100644 index 0000000..e7d62c0 --- /dev/null +++ b/KitX.Shared/README.md @@ -0,0 +1,6 @@ +# KitX Shared + +All data structure defined here. + + + diff --git a/KitX.Shared/WebCommand/Command.cs b/KitX.Shared/WebCommand/Command.cs new file mode 100644 index 0000000..bcd7eb2 --- /dev/null +++ b/KitX.Shared/WebCommand/Command.cs @@ -0,0 +1,25 @@ +using System; +using System.Collections.Generic; + +namespace KitX.Shared.WebCommand; + +public struct Command +{ + public CommandType Type { get; set; } + + public int CallId { get; set; } + + public int CallIdTTL { get; set; } + + public DateTime SendTime { get; set; } + + public string Request { get; set; } + + public List RequestArgs { get; set; } + + public byte[] Body { get; set; } + + public int BodyLength { get; set; } + + public Dictionary Tags { get; set; } +} diff --git a/KitX.Shared/WebCommand/CommandType.cs b/KitX.Shared/WebCommand/CommandType.cs new file mode 100644 index 0000000..eb3d59c --- /dev/null +++ b/KitX.Shared/WebCommand/CommandType.cs @@ -0,0 +1,6 @@ +namespace KitX.Shared.WebCommand; + +public enum CommandType +{ + Call = 1, CallBack = 2 +} diff --git a/KitX.Shared/WebCommand/Infos/CompressionInfo.cs b/KitX.Shared/WebCommand/Infos/CompressionInfo.cs new file mode 100644 index 0000000..06a3909 --- /dev/null +++ b/KitX.Shared/WebCommand/Infos/CompressionInfo.cs @@ -0,0 +1,6 @@ +namespace KitX.Shared.WebCommand.Infos; + +public struct CompressionInfo +{ + +} diff --git a/KitX.Shared/WebCommand/Infos/EncryptionInfo.cs b/KitX.Shared/WebCommand/Infos/EncryptionInfo.cs new file mode 100644 index 0000000..edb9673 --- /dev/null +++ b/KitX.Shared/WebCommand/Infos/EncryptionInfo.cs @@ -0,0 +1,10 @@ +namespace KitX.Shared.WebCommand.Infos; + +public struct EncryptionInfo +{ + public bool IsEncrypted { get; set; } + + public string EncryptionMethod { get; set; } + + public string EncryptionKeyId { get; set; } +} diff --git a/KitX.Shared/WebCommand/Request.cs b/KitX.Shared/WebCommand/Request.cs new file mode 100644 index 0000000..5a9e212 --- /dev/null +++ b/KitX.Shared/WebCommand/Request.cs @@ -0,0 +1,21 @@ +using KitX.Shared.WebCommand.Infos; +using KitX.Shared.Device; + +namespace KitX.Shared.WebCommand; + +public struct Request +{ + public string Type { get; set; } + + public string Version { get; set; } + + public DeviceLocator Sender { get; set; } + + public DeviceLocator Target { get; set; } + + public EncryptionInfo EncryptionInfo { get; set; } + + public CompressionInfo CompressionInfo { get; set; } + + public string Content { get; set; } +} From 1d39850ba4e26151b2f9676a4aad08b4de622208 Mon Sep 17 00:00:00 2001 From: Dynesshely Date: Thu, 8 Feb 2024 01:08:11 +0800 Subject: [PATCH 04/24] =?UTF-8?q?=EF=BB=BF=F0=9F=93=9D=20Chore(Submodules)?= =?UTF-8?q?:=20Removed=20`KitX=20Rules`.?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .gitmodules | 3 --- KitX Rules | 1 - 2 files changed, 4 deletions(-) delete mode 160000 KitX Rules diff --git a/.gitmodules b/.gitmodules index 0852a8c..223da22 100644 --- a/.gitmodules +++ b/.gitmodules @@ -10,9 +10,6 @@ [submodule "KitX Plugins"] path = KitX Plugins url = git@github.com:Crequency/KitX-Plugins.git -[submodule "KitX Rules"] - path = KitX Rules - url = git@github.com:Crequency/KitX-Rules.git [submodule "KitX Script"] path = KitX Script url = git@github.com:Crequency/KitX-Script.git diff --git a/KitX Rules b/KitX Rules deleted file mode 160000 index c4c630d..0000000 --- a/KitX Rules +++ /dev/null @@ -1 +0,0 @@ -Subproject commit c4c630d069233b829c8dc5d0dec9913d45219f85 From f87eb77bb6d18969868f7ad7d71032f710518191 Mon Sep 17 00:00:00 2001 From: Dynesshely Date: Thu, 8 Feb 2024 01:21:02 +0800 Subject: [PATCH 05/24] =?UTF-8?q?=EF=BB=BF=F0=9F=92=BE=20Feat(FileFormats)?= =?UTF-8?q?:=20Move=20encoders/decoders'=20codes=20here.?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- KitX.FileFormats/ExtensionsPackage/Decoder.cs | 220 ++++++++++++++++++ KitX.FileFormats/ExtensionsPackage/Encoder.cs | 197 ++++++++++++++++ KitX.FileFormats/ExtensionsPackage/Header.cs | 39 ++++ KitX.FileFormats/ExtensionsPackage/Options.cs | 9 + KitX.FileFormats/KitX-Background-ani.png | Bin 0 -> 211184 bytes KitX.FileFormats/KitX.FileFormats.csproj | 41 ++++ KitX.FileFormats/README.md | 5 + 7 files changed, 511 insertions(+) create mode 100644 KitX.FileFormats/ExtensionsPackage/Decoder.cs create mode 100644 KitX.FileFormats/ExtensionsPackage/Encoder.cs create mode 100644 KitX.FileFormats/ExtensionsPackage/Header.cs create mode 100644 KitX.FileFormats/ExtensionsPackage/Options.cs create mode 100644 KitX.FileFormats/KitX-Background-ani.png create mode 100644 KitX.FileFormats/KitX.FileFormats.csproj create mode 100644 KitX.FileFormats/README.md diff --git a/KitX.FileFormats/ExtensionsPackage/Decoder.cs b/KitX.FileFormats/ExtensionsPackage/Decoder.cs new file mode 100644 index 0000000..1ebcf43 --- /dev/null +++ b/KitX.FileFormats/ExtensionsPackage/Decoder.cs @@ -0,0 +1,220 @@ +using System; +using System.Collections.Generic; +using System.IO; +using System.Security.Cryptography; +using System.Text; + +namespace KitX.FileFormats.ExtensionsPackage; + +public class Decoder +{ + public Decoder(string packagePath, Options? options = null) + { + PackagePath = packagePath; + + Options = options ?? new(); + } + + public string PackagePath { get; set; } + + public Options Options { get; set; } + + internal struct FileMapItem + { + internal long FileNamePathLength; + + internal long FileBodyLength; + } + + public Tuple GetLoaderAndPluginInfo() + { + var fs = new FileStream(PackagePath, FileMode.Open, FileAccess.Read); + var reader = new BinaryReader(fs); + + var header = reader.ReadBytes(16); + + if (!Header.IsKXP(ref header)) + throw new InvalidDataException("It's not a KXP Package."); + + _ = reader.ReadBytes(16); + + long loaderStructLength, pluginStructLength; + + loaderStructLength = BitConverter.ToInt64(reader.ReadBytes(8), 0); + + var loaderStructString = Encoding.UTF8.GetString(reader.ReadBytes((int)loaderStructLength)); + + pluginStructLength = BitConverter.ToInt64(reader.ReadBytes(8), 0); + + var pluginStructString = Encoding.UTF8.GetString(reader.ReadBytes((int)pluginStructLength)); + + var result = new Tuple(loaderStructString, pluginStructString); + + reader.Close(); + fs.Close(); + + return result; + } + + public Tuple Decode(string releaseFolder) + { + if (!Directory.Exists(releaseFolder)) + _ = Directory.CreateDirectory(releaseFolder); + + var src = File.ReadAllBytes(PackagePath); + + #region 获取文件表头, 验证文件是否为 KXP 文件 (0 - 15) + + var header = new byte[16]; // 文件标头 + + for (int i = 0; i < 16; ++i) header[i] = src[i]; + + if (!Header.IsKXP(ref header)) + throw new Exception("It's not a KXP Package."); + + #endregion + + #region 获取哈希校验值 (16 - 31) + + var hash = new byte[16]; // 哈希部分 + + var cursor = 16; // 文件流指针 + + for (; cursor < 32; ++cursor) // 取出哈希部分的字节 + hash[cursor - 16] = src[cursor]; + + if (Options.Verbose) + Console.WriteLine($"Hash Code: {Encoding.UTF8.GetString(hash)}"); + + #endregion + + #region 获取 LoaderStruct 部分 + + var loaderStructLengthByte = new byte[8]; + + for (int i = 0; i < 8; ++i, ++cursor) loaderStructLengthByte[i] = src[cursor]; + + var loaderStructLength = BitConverter.ToInt64(loaderStructLengthByte, 0); + + if (Options.Verbose) + Console.WriteLine($"Loader Struct Length: {loaderStructLength}"); + + var loaderStructByte = new byte[loaderStructLength]; // Loader Struct 的 Byte 数组 + + for (int i = 0; i < loaderStructLength; ++i, ++cursor) loaderStructByte[i] = src[cursor]; + + #endregion + + #region 获取 PluginStruct 部分 + + var pluginStructLengthByte = new byte[8]; + + for (int i = 0; i < 8; ++i, ++cursor) pluginStructLengthByte[i] = src[cursor]; + + var pluginStructLength = BitConverter.ToInt64(pluginStructLengthByte, 0); + + if (Options.Verbose) + Console.WriteLine($"Plugin Struct Length: {pluginStructLength}"); + + var pluginStructByte = new byte[pluginStructLength]; // Plugin Struct 的 Byte 数组 + + for (int i = 0; i < pluginStructLength; ++i, ++cursor) pluginStructByte[i] = src[cursor]; + + #endregion + + #region 获取 LoaderStruct 和 PluginStruct 字符串 + + var loaderStruct = Encoding.UTF8.GetString(loaderStructByte); + var pluginStruct = Encoding.UTF8.GetString(pluginStructByte); + + if (Options.Verbose) + { + Console.WriteLine($"Loader Struct: {loaderStruct}"); + Console.WriteLine($"Plugin Struct: {pluginStruct}"); + } + + #endregion + + #region 获取文件地图 + + var fileMapLengthByte = new byte[8]; // 文件地图长度 + + for (int i = 0; i < 8; ++i, ++cursor) fileMapLengthByte[i] = src[cursor]; + + var fileMapLength = BitConverter.ToInt64(fileMapLengthByte, 0); + + if (Options.Verbose) + Console.WriteLine($"File Map Length: {fileMapLength}"); + + var FileMap = new List(); // 文件地图 + + for (long i = 0; i < fileMapLength; ++i) + { + var fileNameLength = new byte[8]; // 文件名长度 + var fileBodyLength = new byte[8]; // 文件体长度 + for (int j = 0; j < 8; ++j, ++cursor) fileNameLength[j] = src[cursor]; + for (int j = 0; j < 8; ++j, ++cursor) fileBodyLength[j] = src[cursor]; + + FileMap.Add(new FileMapItem() + { + FileNamePathLength = BitConverter.ToInt64(fileNameLength, 0), + FileBodyLength = BitConverter.ToInt64(fileBodyLength, 0) + }); + + if (Options.Verbose) + { + Console.WriteLine($"File Name Length: {BitConverter.ToInt64(fileNameLength, 0)}"); + Console.WriteLine($"File Body Length: {BitConverter.ToInt64(fileBodyLength, 0)}"); + } + } + + #endregion + + #region 获取源文件文件名与文件体并立即写回释放文件夹 + + foreach (var item in FileMap) + { + var fn = new byte[item.FileNamePathLength]; + var fb = new byte[item.FileBodyLength]; + + for (int i = 0; i < item.FileNamePathLength; ++i, ++cursor) + fn[i] = src[cursor]; + + for (int i = 0; i < item.FileBodyLength; ++i, ++cursor) + fb[i] = src[cursor]; + + var fileName = Encoding.UTF8.GetString(fn); + var dirPath = Path.GetDirectoryName( + Path.GetFullPath($"{releaseFolder}/{fileName}") + ); + + if (!Directory.Exists(dirPath)) + Directory.CreateDirectory(dirPath); + + File.WriteAllBytes($"{releaseFolder}/{fileName}", fb); + } + + #endregion + + #region 计算哈希校验值 + + using var md5 = MD5.Create(); + + var localHash = md5.ComputeHash(src, 32, src.Length - 32); + + if (Options.Verbose) + Console.WriteLine($"Local Hash Code: {Encoding.UTF8.GetString(localHash)}"); + + #endregion + + #region 哈希校验不一样时抛出异常 + + for (var i = 0; i < 16; ++i) + if (!hash[i].Equals(localHash[i])) + throw new Exception("MD5 Hash Error."); + + #endregion + + return Tuple.Create(loaderStruct, pluginStruct); + } +} diff --git a/KitX.FileFormats/ExtensionsPackage/Encoder.cs b/KitX.FileFormats/ExtensionsPackage/Encoder.cs new file mode 100644 index 0000000..c6ccfd0 --- /dev/null +++ b/KitX.FileFormats/ExtensionsPackage/Encoder.cs @@ -0,0 +1,197 @@ +using System; +using System.Collections.Generic; +using System.Security.Cryptography; +using System.Text; + +namespace KitX.FileFormats.ExtensionsPackage; + +using File = System.IO.File; + +public class Encoder +{ + public Encoder( + List filesToInclude, + string loaderStruct, + string pluginStruct, + Options? options = null + ) + { + FilesToInclude = filesToInclude; + LoaderStruct = loaderStruct; + PluginStruct = pluginStruct; + Options = options ?? new(); + } + + public List FilesToInclude { get; set; } + + public string LoaderStruct { get; set; } + + public string PluginStruct { get; set; } + + public Options Options { get; set; } + + ///

+ /// 编码包体 + /// + /// 包体源文件根路径 + /// 包体输出路径 + /// 包体名称, 自带 .kxp 后缀 + /// 空错误 + public void Encode(string rootDir, string saveFolder, string filename) + { + #region 读取每个文件的 byte[] + + var files = new Dictionary(); + + foreach (var item in FilesToInclude) + if (File.Exists(item)) + files.Add( + GetRelativePath(rootDir, item), + File.ReadAllBytes(item) + ); + else Console.WriteLine($"File {item} not exists."); + + #endregion + + var loaderStruct = Encoding.UTF8.GetBytes(LoaderStruct); + var pluginStruct = Encoding.UTF8.GetBytes(PluginStruct); + + var fileCount = files.Keys.Count; // 待封装的文件数量 + + if (Options.Verbose) + Console.WriteLine($"Count of files to include: {fileCount}"); + + var target = $"{saveFolder}\\{filename}.kxp"; // 目标文件路径 + + if (File.Exists(target)) File.Delete(target); // 如果目标文件存在就覆盖掉 + + var fs = File.Create(target); // 目标文件文件流 + + var all_files = new Queue(); // 除开头哈希校验值的部分其它全部值 + + #region 入队 LoaderStruct 部分 + + EnqueueSingleLong(ref all_files, loaderStruct.LongLength); // 入队加载器结构的长度 + + if (Options.Verbose) + Console.WriteLine($"Loader Struct Length: {loaderStruct.LongLength}"); + + foreach (var item in loaderStruct) + all_files.Enqueue(item); // 入队加载器结构 + + #endregion + + #region 入队 PluginStruct 部分 + + EnqueueSingleLong(ref all_files, pluginStruct.LongLength); // 入队插件结构的长度 + + if (Options.Verbose) + Console.WriteLine($"Plugin Struct Length: {pluginStruct.LongLength}"); + + foreach (var item in pluginStruct) + all_files.Enqueue(item); // 入队插件结构 + + #endregion + + #region 入队文件表部分 + + EnqueueSingleLong(ref all_files, fileCount); // 入队文件表长度 + + var fileNames = new List(); + + foreach (var item in files) + { + var fileNameByte = Encoding.UTF8.GetBytes(item.Key); // 获取文件相对路径的二进制值 + fileNames.Add(fileNameByte); // 添加文件相对路径的二进制值 + + EnqueueSingleLong(ref all_files, fileNameByte.LongLength); // 入队每个相对路径的长度 + EnqueueSingleLong(ref all_files, item.Value.LongLength); // 入队每个文件的长度 + + if (Options.Verbose) + { + Console.WriteLine($"Relative Path: {item.Key}"); + Console.WriteLine($"Path Length: {fileNameByte.LongLength}"); + Console.WriteLine($"File Length: {item.Value.LongLength}"); + } + } + + #endregion + + #region 入队文件部分 + + var index = 0; + + foreach (var item in files) + { + foreach (var fn in fileNames[index]) + all_files.Enqueue(fn); + + foreach (var one in item.Value) + all_files.Enqueue(one); + + ++index; + } + + #endregion + + #region 计算哈希校验 + + var filesBytes = all_files.ToArray(); + + using var md5 = MD5.Create(); + + var hash = md5.ComputeHash(filesBytes); // 计算文件体哈希 + + if (Options.Verbose) + Console.WriteLine($"Hash Code: {Encoding.UTF8.GetString(hash)}"); + + #endregion + + #region 写入文件 + + foreach (var item in Header.header) + fs.WriteByte(item); // 写入文件标头 + + foreach (var item in hash) + fs.WriteByte(item); // 写入哈希值 + + foreach (var item in filesBytes) + { + fs.WriteByte(item); // 写入文件体 + fs.Flush(); // 每写入一个文件就清空缓冲区并确保写入文件 + } + + #endregion + + fs.Flush(); + fs.Close(); + fs.Dispose(); + } + + /// + /// 入队单个 long 值作为 8 个 byte + /// + /// 队列 + /// long 值 + private static void EnqueueSingleLong(ref Queue queue, long value) + { + var bytes = BitConverter.GetBytes(value); + + foreach (var item in bytes) + queue.Enqueue(item); + } + + /// + /// 获取相对路径 + /// + /// 根目录 + /// 文件目录 + /// 相对于根目录的文件目录 + /// 参数异常 + private static string GetRelativePath(string rootDir, string filePath) + { + if (filePath.StartsWith(rootDir)) + return filePath.Replace(rootDir, ""); + else throw new ArgumentException("文件路径不属于所给的根目录"); + } +} diff --git a/KitX.FileFormats/ExtensionsPackage/Header.cs b/KitX.FileFormats/ExtensionsPackage/Header.cs new file mode 100644 index 0000000..d4f61b0 --- /dev/null +++ b/KitX.FileFormats/ExtensionsPackage/Header.cs @@ -0,0 +1,39 @@ +namespace KitX.FileFormats.ExtensionsPackage; + +internal static class Header +{ + public static byte[] header = new byte[16] + { + 073, // I + 116, // t + 032, // + 105, // i + 115, // s + 032, // + 097, // a + 032, // + 075, // K + 088, // X + 080, // P + 032, // + 102, // f + 105, // i + 108, // l + 101, // e + + // It is a KXP file + }; + + /// + /// 验证文件是否为 KXP 文件 + /// + /// 读取到的文件标头 + /// 是否是 KXP 文件 + public static bool IsKXP(ref byte[] src, int index = 0, int count = 16) + { + for (int i = index; i < index + count; ++i) + if (src[i] != header[i]) + return false; + return true; + } +} diff --git a/KitX.FileFormats/ExtensionsPackage/Options.cs b/KitX.FileFormats/ExtensionsPackage/Options.cs new file mode 100644 index 0000000..0cac235 --- /dev/null +++ b/KitX.FileFormats/ExtensionsPackage/Options.cs @@ -0,0 +1,9 @@ +using CommandLine; + +namespace KitX.FileFormats.ExtensionsPackage; + +public class Options +{ + [Option('v', "verbose", HelpText = "Prints all messages to standard output.")] + public bool Verbose { get; set; } = false; +} diff --git a/KitX.FileFormats/KitX-Background-ani.png b/KitX.FileFormats/KitX-Background-ani.png new file mode 100644 index 0000000000000000000000000000000000000000..7abdbc3680d197674c8729ea4c0eab5ca71d03c8 GIT binary patch literal 211184 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

n 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%0A%6YC$6s&yL)Ry1p9BAwZ@>9Jee=zW>Ca{P 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 e|LsIXME(cwwz-{8LzPSb0000 + + + netstandard2.1 + enable + preview + True + + + + $(Version) + $(Version) + 24.10.$([System.DateTime]::UtcNow.Date.Subtract($([System.DateTime]::Parse("2024-02-08"))).TotalDays).$([System.Math]::Floor($([System.DateTime]::UtcNow.TimeOfDay.TotalMinutes))) + + + + KitX.FileFormats + Crequency + Dynesshely + KitX File Formats' Encoders/Decoders + MIT + True + KitX-Background-ani.png + README.md + https://github.com/Crequency/KitX-Standard/ + https://github.com/Crequency/KitX-Standard/ + + + + + + True + \ + + + + + + + + diff --git a/KitX.FileFormats/README.md b/KitX.FileFormats/README.md new file mode 100644 index 0000000..b68e893 --- /dev/null +++ b/KitX.FileFormats/README.md @@ -0,0 +1,5 @@ +# KitX File Formats + +Encoders/Decoders for KitX customized files. + + From bccee06911079d9f1dfff4445513586a5eaf3588 Mon Sep 17 00:00:00 2001 From: Dynesshely Date: Thu, 8 Feb 2024 01:25:01 +0800 Subject: [PATCH 06/24] =?UTF-8?q?=EF=BB=BF=F0=9F=93=9D=20Chore(Submodules)?= =?UTF-8?q?:=20Optimized.?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .gitmodules | 9 --------- KitX File Formats | 1 - KitX Loaders | 1 - KitX Plugins | 1 - 4 files changed, 12 deletions(-) delete mode 160000 KitX File Formats delete mode 160000 KitX Loaders delete mode 160000 KitX Plugins diff --git a/.gitmodules b/.gitmodules index 223da22..6d8a3a1 100644 --- a/.gitmodules +++ b/.gitmodules @@ -1,15 +1,6 @@ [submodule "KitX Contracts"] path = KitX Contracts url = git@github.com:Crequency/KitX-Contracts.git -[submodule "KitX File Formats"] - path = KitX File Formats - url = git@github.com:Crequency/KitX-File-Formats.git -[submodule "KitX Loaders"] - path = KitX Loaders - url = git@github.com:Crequency/KitX-Loaders.git -[submodule "KitX Plugins"] - path = KitX Plugins - url = git@github.com:Crequency/KitX-Plugins.git [submodule "KitX Script"] path = KitX Script url = git@github.com:Crequency/KitX-Script.git diff --git a/KitX File Formats b/KitX File Formats deleted file mode 160000 index 7c17547..0000000 --- a/KitX File Formats +++ /dev/null @@ -1 +0,0 @@ -Subproject commit 7c1754756979cf0c288f87dfbd4b7303322334e5 diff --git a/KitX Loaders b/KitX Loaders deleted file mode 160000 index 49dbb65..0000000 --- a/KitX Loaders +++ /dev/null @@ -1 +0,0 @@ -Subproject commit 49dbb65c89d72e90d4ab018ff87a51bcf1e4f48d diff --git a/KitX Plugins b/KitX Plugins deleted file mode 160000 index bbb51be..0000000 --- a/KitX Plugins +++ /dev/null @@ -1 +0,0 @@ -Subproject commit bbb51be339675fe5971eaf97d351de3eba54da9e From 29225b3720617bf41db77fcfbbf097120c4a6ff3 Mon Sep 17 00:00:00 2001 From: Dynesshely Date: Thu, 8 Feb 2024 01:49:43 +0800 Subject: [PATCH 07/24] =?UTF-8?q?=EF=BB=BF=F0=9F=8E=87=20Style:=20Optimize?= =?UTF-8?q?d.?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- KitX Contracts | 2 +- KitX.FileFormats/KitX.FileFormats.csproj | 7 +++++-- KitX.Shared/Loader/LoaderInfo.cs | 4 ++-- KitX.Shared/Plugin/Function.cs | 2 +- KitX.Shared/WebCommand/Request.cs | 4 ++-- 5 files changed, 11 insertions(+), 8 deletions(-) diff --git a/KitX Contracts b/KitX Contracts index 856ce49..30686d5 160000 --- a/KitX Contracts +++ b/KitX Contracts @@ -1 +1 @@ -Subproject commit 856ce49b4aa841bde0b579f1a26d134dc8ac0808 +Subproject commit 30686d565a81a2e24ea9b58b58c7941c5f58a36c diff --git a/KitX.FileFormats/KitX.FileFormats.csproj b/KitX.FileFormats/KitX.FileFormats.csproj index 516c0f2..186a592 100644 --- a/KitX.FileFormats/KitX.FileFormats.csproj +++ b/KitX.FileFormats/KitX.FileFormats.csproj @@ -10,7 +10,7 @@ $(Version) $(Version) - 24.10.$([System.DateTime]::UtcNow.Date.Subtract($([System.DateTime]::Parse("2024-02-08"))).TotalDays).$([System.Math]::Floor($([System.DateTime]::UtcNow.TimeOfDay.TotalMinutes))) + 24.10.$([System.DateTime]::UtcNow.Date.Subtract($([System.DateTime]::Parse("2024-02-07"))).TotalDays).$([System.Math]::Floor($([System.DateTime]::UtcNow.TimeOfDay.TotalMinutes))) @@ -27,7 +27,10 @@ - + + True + \ + True \ diff --git a/KitX.Shared/Loader/LoaderInfo.cs b/KitX.Shared/Loader/LoaderInfo.cs index e7feb35..b48b852 100644 --- a/KitX.Shared/Loader/LoaderInfo.cs +++ b/KitX.Shared/Loader/LoaderInfo.cs @@ -1,5 +1,5 @@ -using System.Collections.Generic; -using KitX.Shared.Device; +using KitX.Shared.Device; +using System.Collections.Generic; namespace KitX.Shared.Loader; diff --git a/KitX.Shared/Plugin/Function.cs b/KitX.Shared/Plugin/Function.cs index 42df3f2..64f7fa4 100644 --- a/KitX.Shared/Plugin/Function.cs +++ b/KitX.Shared/Plugin/Function.cs @@ -12,5 +12,5 @@ public struct Function public string ReturnValueType { get; set; } - public bool IsVoidable => ReturnValueType.Equals("void"); + public readonly bool IsVoidable => ReturnValueType.Equals("void"); } diff --git a/KitX.Shared/WebCommand/Request.cs b/KitX.Shared/WebCommand/Request.cs index 5a9e212..5c91f8d 100644 --- a/KitX.Shared/WebCommand/Request.cs +++ b/KitX.Shared/WebCommand/Request.cs @@ -1,5 +1,5 @@ -using KitX.Shared.WebCommand.Infos; -using KitX.Shared.Device; +using KitX.Shared.Device; +using KitX.Shared.WebCommand.Infos; namespace KitX.Shared.WebCommand; From 65986d0527a97d723d7ac7548c6a1da9f6a58dae Mon Sep 17 00:00:00 2001 From: Dynesshely Date: Thu, 8 Feb 2024 04:58:25 +0800 Subject: [PATCH 08/24] =?UTF-8?q?=EF=BB=BF=F0=9F=92=BE=20Feat:=20Optimized?= =?UTF-8?q?.?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- KitX.FileFormats/ExtensionsPackage/Header.cs | 43 +++++++++----------- KitX.Shared/Device/DeviceLocator.cs | 24 +++++++++++ 2 files changed, 43 insertions(+), 24 deletions(-) diff --git a/KitX.FileFormats/ExtensionsPackage/Header.cs b/KitX.FileFormats/ExtensionsPackage/Header.cs index d4f61b0..7735395 100644 --- a/KitX.FileFormats/ExtensionsPackage/Header.cs +++ b/KitX.FileFormats/ExtensionsPackage/Header.cs @@ -2,33 +2,28 @@ internal static class Header { - public static byte[] header = new byte[16] - { - 073, // I - 116, // t - 032, // - 105, // i - 115, // s - 032, // - 097, // a - 032, // - 075, // K - 088, // X - 080, // P - 032, // - 102, // f - 105, // i - 108, // l - 101, // e + public static byte[] header = + [ + 073, // I + 116, // t + 032, // + 105, // i + 115, // s + 032, // + 097, // a + 032, // + 075, // K + 088, // X + 080, // P + 032, // + 102, // f + 105, // i + 108, // l + 101, // e // It is a KXP file - }; + ]; - ///

- /// 验证文件是否为 KXP 文件 - /// - /// 读取到的文件标头 - /// 是否是 KXP 文件 public static bool IsKXP(ref byte[] src, int index = 0, int count = 16) { for (int i = index; i < index + count; ++i) diff --git a/KitX.Shared/Device/DeviceLocator.cs b/KitX.Shared/Device/DeviceLocator.cs index 833a9f6..ab5bc5e 100644 --- a/KitX.Shared/Device/DeviceLocator.cs +++ b/KitX.Shared/Device/DeviceLocator.cs @@ -9,4 +9,28 @@ public struct DeviceLocator public string IPv6 { get; set; } public string MacAddress { get; set; } + + public DeviceLocator ResetDeviceName(string name) + { + DeviceName = name; + return this; + } + + public DeviceLocator ResetIPv4(string ipv4) + { + IPv4 = ipv4; + return this; + } + + public DeviceLocator ResetIPv6(string ipv6) + { + IPv6 = ipv6; + return this; + } + + public DeviceLocator ResetMacAddress(string mac) + { + MacAddress = mac; + return this; + } } From 04c8779f4528b2e5fbb2485e8325791f091022fa Mon Sep 17 00:00:00 2001 From: Dynesshely Date: Thu, 8 Feb 2024 17:07:36 +0800 Subject: [PATCH 09/24] =?UTF-8?q?=F0=9F=93=9D=20Chore:=20Optimized.?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- KitX.FileFormats/KitX.FileFormats.csproj | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/KitX.FileFormats/KitX.FileFormats.csproj b/KitX.FileFormats/KitX.FileFormats.csproj index 186a592..a450b06 100644 --- a/KitX.FileFormats/KitX.FileFormats.csproj +++ b/KitX.FileFormats/KitX.FileFormats.csproj @@ -18,7 +18,7 @@ Crequency Dynesshely KitX File Formats' Encoders/Decoders - MIT + AGPL-3.0-only True KitX-Background-ani.png README.md From 8dc0cf2287102b0150dc2e2a1c6014a80bc6ce32 Mon Sep 17 00:00:00 2001 From: Dynesshely Date: Thu, 8 Feb 2024 17:07:50 +0800 Subject: [PATCH 10/24] =?UTF-8?q?=F0=9F=93=9D=20Chore(Submodules):=20Sync.?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- KitX Contracts | 2 +- KitX Script | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/KitX Contracts b/KitX Contracts index 30686d5..31fa2e8 160000 --- a/KitX Contracts +++ b/KitX Contracts @@ -1 +1 @@ -Subproject commit 30686d565a81a2e24ea9b58b58c7941c5f58a36c +Subproject commit 31fa2e8e67427fbffa70704c77cfe95e2d80299a diff --git a/KitX Script b/KitX Script index a9292af..ec0d6d3 160000 --- a/KitX Script +++ b/KitX Script @@ -1 +1 @@ -Subproject commit a9292af45321127bebd3e98a6fa569765d20aae5 +Subproject commit ec0d6d3f3e01be76e6349c4572ad214d3cd0c4ec From a33e6b5de3e9e650cfabb53a79f37dd803332a82 Mon Sep 17 00:00:00 2001 From: Dynesshely Date: Thu, 15 Feb 2024 23:22:25 +0800 Subject: [PATCH 11/24] =?UTF-8?q?=F0=9F=92=BE=20Feat(Device):=20Add=20`App?= =?UTF-8?q?leVisionOS`=20(12)=20to=20`OperatingSystems`.?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- KitX.Shared/Device/OperatingSystems.cs | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/KitX.Shared/Device/OperatingSystems.cs b/KitX.Shared/Device/OperatingSystems.cs index c9cd171..3c85e6d 100644 --- a/KitX.Shared/Device/OperatingSystems.cs +++ b/KitX.Shared/Device/OperatingSystems.cs @@ -13,5 +13,6 @@ public enum OperatingSystems TvOS = 8, WatchOS = 9, Windows = 10, - IoT = 11 + IoT = 11, + AppleVisionOS = 12, } From fa9e53c90592b763da36b82a2637344a87857482 Mon Sep 17 00:00:00 2001 From: Dynesshely Date: Sat, 17 Feb 2024 02:03:56 +0800 Subject: [PATCH 12/24] =?UTF-8?q?=F0=9F=93=9D=20Chore(KitX.Shared):=20Vers?= =?UTF-8?q?ion=20rule=20added.?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- KitX.Shared/KitX.Shared.csproj | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/KitX.Shared/KitX.Shared.csproj b/KitX.Shared/KitX.Shared.csproj index b8a144a..f655cd0 100644 --- a/KitX.Shared/KitX.Shared.csproj +++ b/KitX.Shared/KitX.Shared.csproj @@ -6,4 +6,10 @@ preview + + $(Version) + $(Version) + 3.24.10.$([System.DateTime]::UtcNow.Date.Subtract($([System.DateTime]::Parse("2020-10-01"))).TotalDays) + + From 335f1e714d50899766f35e0071f7de92b8d03d5a Mon Sep 17 00:00:00 2001 From: Dynesshely Date: Sat, 17 Feb 2024 02:05:02 +0800 Subject: [PATCH 13/24] =?UTF-8?q?=F0=9F=92=BE=20=F0=9F=93=A6=20Feat,=20Str?= =?UTF-8?q?uct(KitX.Shared.Dart):=20Init=20package.?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- KitX.Shared.Dart/kitx_shared_dart/.gitignore | 7 ++++ .../kitx_shared_dart/CHANGELOG.md | 3 ++ KitX.Shared.Dart/kitx_shared_dart/README.md | 9 +++++ .../kitx_shared_dart/analysis_options.yaml | 30 ++++++++++++++++ .../example/kitx_shared_dart_example.dart | 6 ++++ .../lib/kitx_shared_dart.dart | 8 +++++ .../lib/src/kitx_shared_dart_base.dart | 6 ++++ .../kitx_shared_dart/pubspec.yaml | 15 ++++++++ .../test/kitx_shared_dart_test.dart | 16 +++++++++ .../kitx_shared_dart/update-version.py | 36 +++++++++++++++++++ 10 files changed, 136 insertions(+) create mode 100644 KitX.Shared.Dart/kitx_shared_dart/.gitignore create mode 100644 KitX.Shared.Dart/kitx_shared_dart/CHANGELOG.md create mode 100644 KitX.Shared.Dart/kitx_shared_dart/README.md create mode 100644 KitX.Shared.Dart/kitx_shared_dart/analysis_options.yaml create mode 100644 KitX.Shared.Dart/kitx_shared_dart/example/kitx_shared_dart_example.dart create mode 100644 KitX.Shared.Dart/kitx_shared_dart/lib/kitx_shared_dart.dart create mode 100644 KitX.Shared.Dart/kitx_shared_dart/lib/src/kitx_shared_dart_base.dart create mode 100644 KitX.Shared.Dart/kitx_shared_dart/pubspec.yaml create mode 100644 KitX.Shared.Dart/kitx_shared_dart/test/kitx_shared_dart_test.dart create mode 100644 KitX.Shared.Dart/kitx_shared_dart/update-version.py diff --git a/KitX.Shared.Dart/kitx_shared_dart/.gitignore b/KitX.Shared.Dart/kitx_shared_dart/.gitignore new file mode 100644 index 0000000..3cceda5 --- /dev/null +++ b/KitX.Shared.Dart/kitx_shared_dart/.gitignore @@ -0,0 +1,7 @@ +# https://dart.dev/guides/libraries/private-files +# Created by `dart pub` +.dart_tool/ + +# Avoid committing pubspec.lock for library packages; see +# https://dart.dev/guides/libraries/private-files#pubspeclock. +pubspec.lock diff --git a/KitX.Shared.Dart/kitx_shared_dart/CHANGELOG.md b/KitX.Shared.Dart/kitx_shared_dart/CHANGELOG.md new file mode 100644 index 0000000..7daa368 --- /dev/null +++ b/KitX.Shared.Dart/kitx_shared_dart/CHANGELOG.md @@ -0,0 +1,3 @@ +## 1.0.0 + +- Initial version (Began to port KitX.Shared). diff --git a/KitX.Shared.Dart/kitx_shared_dart/README.md b/KitX.Shared.Dart/kitx_shared_dart/README.md new file mode 100644 index 0000000..2563168 --- /dev/null +++ b/KitX.Shared.Dart/kitx_shared_dart/README.md @@ -0,0 +1,9 @@ +A port of [KitX.Shared](https://github.com/Crequency/KitX-Standard/KitX.Shared) in dart. + +## Features + +## Getting started + +## Usage + +## Additional information diff --git a/KitX.Shared.Dart/kitx_shared_dart/analysis_options.yaml b/KitX.Shared.Dart/kitx_shared_dart/analysis_options.yaml new file mode 100644 index 0000000..dee8927 --- /dev/null +++ b/KitX.Shared.Dart/kitx_shared_dart/analysis_options.yaml @@ -0,0 +1,30 @@ +# This file configures the static analysis results for your project (errors, +# warnings, and lints). +# +# This enables the 'recommended' set of lints from `package:lints`. +# This set helps identify many issues that may lead to problems when running +# or consuming Dart code, and enforces writing Dart using a single, idiomatic +# style and format. +# +# If you want a smaller set of lints you can change this to specify +# 'package:lints/core.yaml'. These are just the most critical lints +# (the recommended set includes the core lints). +# The core lints are also what is used by pub.dev for scoring packages. + +include: package:lints/recommended.yaml + +# Uncomment the following section to specify additional rules. + +# linter: +# rules: +# - camel_case_types + +# analyzer: +# exclude: +# - path/to/excluded/files/** + +# For more information about the core and recommended set of lints, see +# https://dart.dev/go/core-lints + +# For additional information about configuring this file, see +# https://dart.dev/guides/language/analysis-options diff --git a/KitX.Shared.Dart/kitx_shared_dart/example/kitx_shared_dart_example.dart b/KitX.Shared.Dart/kitx_shared_dart/example/kitx_shared_dart_example.dart new file mode 100644 index 0000000..807eff9 --- /dev/null +++ b/KitX.Shared.Dart/kitx_shared_dart/example/kitx_shared_dart_example.dart @@ -0,0 +1,6 @@ +import 'package:kitx_shared_dart/kitx_shared_dart.dart'; + +void main() { + var awesome = Awesome(); + print('awesome: ${awesome.isAwesome}'); +} diff --git a/KitX.Shared.Dart/kitx_shared_dart/lib/kitx_shared_dart.dart b/KitX.Shared.Dart/kitx_shared_dart/lib/kitx_shared_dart.dart new file mode 100644 index 0000000..6ce8722 --- /dev/null +++ b/KitX.Shared.Dart/kitx_shared_dart/lib/kitx_shared_dart.dart @@ -0,0 +1,8 @@ +/// Support for doing something awesome. +/// +/// More dartdocs go here. +library; + +export 'src/kitx_shared_dart_base.dart'; + +// TODO: Export any libraries intended for clients of this package. diff --git a/KitX.Shared.Dart/kitx_shared_dart/lib/src/kitx_shared_dart_base.dart b/KitX.Shared.Dart/kitx_shared_dart/lib/src/kitx_shared_dart_base.dart new file mode 100644 index 0000000..e8a6f15 --- /dev/null +++ b/KitX.Shared.Dart/kitx_shared_dart/lib/src/kitx_shared_dart_base.dart @@ -0,0 +1,6 @@ +// TODO: Put public facing types in this file. + +/// Checks if you are awesome. Spoiler: you are. +class Awesome { + bool get isAwesome => true; +} diff --git a/KitX.Shared.Dart/kitx_shared_dart/pubspec.yaml b/KitX.Shared.Dart/kitx_shared_dart/pubspec.yaml new file mode 100644 index 0000000..d5a97b4 --- /dev/null +++ b/KitX.Shared.Dart/kitx_shared_dart/pubspec.yaml @@ -0,0 +1,15 @@ +name: kitx_shared_dart +description: A port of KitX.Shared in dart +version: 1.0.0 +repository: https://github.com/Crequency/KitX-Standard/KitX.Shared.Dart/ + +environment: + sdk: ^3.3.0 + +# Add regular dependencies here. +dependencies: + # path: ^1.8.0 + +dev_dependencies: + lints: ^3.0.0 + test: ^1.24.0 diff --git a/KitX.Shared.Dart/kitx_shared_dart/test/kitx_shared_dart_test.dart b/KitX.Shared.Dart/kitx_shared_dart/test/kitx_shared_dart_test.dart new file mode 100644 index 0000000..665e293 --- /dev/null +++ b/KitX.Shared.Dart/kitx_shared_dart/test/kitx_shared_dart_test.dart @@ -0,0 +1,16 @@ +import 'package:kitx_shared_dart/kitx_shared_dart.dart'; +import 'package:test/test.dart'; + +void main() { + group('A group of tests', () { + final awesome = Awesome(); + + setUp(() { + // Additional setup goes here. + }); + + test('First Test', () { + expect(awesome.isAwesome, isTrue); + }); + }); +} diff --git a/KitX.Shared.Dart/kitx_shared_dart/update-version.py b/KitX.Shared.Dart/kitx_shared_dart/update-version.py new file mode 100644 index 0000000..62df64a --- /dev/null +++ b/KitX.Shared.Dart/kitx_shared_dart/update-version.py @@ -0,0 +1,36 @@ +import re + +from datetime import datetime, timezone + +file_pubspec = "./pubspec.yaml" +major_version = "3.24.10" + +def calculateLatestVersionBuildNumber(): + current_utc = datetime.now(timezone.utc) + + specified_time = datetime(2020, 10, 7, tzinfo=timezone.utc) + + delta_days = (current_utc - specified_time).days + + build_version_code = delta_days % 65535 + 5602 + + return str(build_version_code) + +def updateVersion(): + ver = calculateLatestVersionBuildNumber() + pattern = re.compile(r"^version: \d+.\d+.\d+\+\d+$") + temp_lines = [] + + with open(file_pubspec, "r") as file: + for line in file: + new_line = pattern.sub( + "version: " + major_version + "+" + ver, + line + ) + temp_lines.append(new_line) + + with open(file_pubspec, "w") as file: + file.writelines(temp_lines) + +if __name__ == "__main__": + updateVersion() From f09b9372d45f2f3e18ed44c64cbdf0a09201ef18 Mon Sep 17 00:00:00 2001 From: Dynesshely Date: Sat, 17 Feb 2024 02:11:37 +0800 Subject: [PATCH 14/24] =?UTF-8?q?=F0=9F=93=84=20Docs(LICENSE):=20Init.?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- KitX.Shared.Dart/kitx_shared_dart/LICENSE | 661 ++++++++++++++++++++++ 1 file changed, 661 insertions(+) create mode 100644 KitX.Shared.Dart/kitx_shared_dart/LICENSE diff --git a/KitX.Shared.Dart/kitx_shared_dart/LICENSE b/KitX.Shared.Dart/kitx_shared_dart/LICENSE new file mode 100644 index 0000000..0ad25db --- /dev/null +++ b/KitX.Shared.Dart/kitx_shared_dart/LICENSE @@ -0,0 +1,661 @@ + GNU AFFERO GENERAL PUBLIC LICENSE + Version 3, 19 November 2007 + + Copyright (C) 2007 Free Software Foundation, Inc. + Everyone is permitted to copy and distribute verbatim copies + of this license document, but changing it is not allowed. + + Preamble + + The GNU Affero General Public License is a free, copyleft license for +software and other kinds of works, specifically designed to ensure +cooperation with the community in the case of network server software. + + The licenses for most software and other practical works are designed +to take away your freedom to share and change the works. By contrast, +our General Public Licenses are intended to guarantee your freedom to +share and change all versions of a program--to make sure it remains free +software for all its users. + + When we speak of free software, we are referring to freedom, not +price. Our General Public Licenses are designed to make sure that you +have the freedom to distribute copies of free software (and charge for +them if you wish), that you receive source code or can get it if you +want it, that you can change the software or use pieces of it in new +free programs, and that you know you can do these things. + + Developers that use our General Public Licenses protect your rights +with two steps: (1) assert copyright on the software, and (2) offer +you this License which gives you legal permission to copy, distribute +and/or modify the software. + + A secondary benefit of defending all users' freedom is that +improvements made in alternate versions of the program, if they +receive widespread use, become available for other developers to +incorporate. Many developers of free software are heartened and +encouraged by the resulting cooperation. However, in the case of +software used on network servers, this result may fail to come about. +The GNU General Public License permits making a modified version and +letting the public access it on a server without ever releasing its +source code to the public. + + The GNU Affero General Public License is designed specifically to +ensure that, in such cases, the modified source code becomes available +to the community. It requires the operator of a network server to +provide the source code of the modified version running there to the +users of that server. Therefore, public use of a modified version, on +a publicly accessible server, gives the public access to the source +code of the modified version. + + An older license, called the Affero General Public License and +published by Affero, was designed to accomplish similar goals. This is +a different license, not a version of the Affero GPL, but Affero has +released a new version of the Affero GPL which permits relicensing under +this license. + + The precise terms and conditions for copying, distribution and +modification follow. + + TERMS AND CONDITIONS + + 0. Definitions. + + "This License" refers to version 3 of the GNU Affero General Public License. + + "Copyright" also means copyright-like laws that apply to other kinds of +works, such as semiconductor masks. + + "The Program" refers to any copyrightable work licensed under this +License. Each licensee is addressed as "you". "Licensees" and +"recipients" may be individuals or organizations. + + To "modify" a work means to copy from or adapt all or part of the work +in a fashion requiring copyright permission, other than the making of an +exact copy. The resulting work is called a "modified version" of the +earlier work or a work "based on" the earlier work. + + A "covered work" means either the unmodified Program or a work based +on the Program. + + To "propagate" a work means to do anything with it that, without +permission, would make you directly or secondarily liable for +infringement under applicable copyright law, except executing it on a +computer or modifying a private copy. Propagation includes copying, +distribution (with or without modification), making available to the +public, and in some countries other activities as well. + + To "convey" a work means any kind of propagation that enables other +parties to make or receive copies. Mere interaction with a user through +a computer network, with no transfer of a copy, is not conveying. + + An interactive user interface displays "Appropriate Legal Notices" +to the extent that it includes a convenient and prominently visible +feature that (1) displays an appropriate copyright notice, and (2) +tells the user that there is no warranty for the work (except to the +extent that warranties are provided), that licensees may convey the +work under this License, and how to view a copy of this License. If +the interface presents a list of user commands or options, such as a +menu, a prominent item in the list meets this criterion. + + 1. Source Code. + + The "source code" for a work means the preferred form of the work +for making modifications to it. "Object code" means any non-source +form of a work. + + A "Standard Interface" means an interface that either is an official +standard defined by a recognized standards body, or, in the case of +interfaces specified for a particular programming language, one that +is widely used among developers working in that language. + + The "System Libraries" of an executable work include anything, other +than the work as a whole, that (a) is included in the normal form of +packaging a Major Component, but which is not part of that Major +Component, and (b) serves only to enable use of the work with that +Major Component, or to implement a Standard Interface for which an +implementation is available to the public in source code form. A +"Major Component", in this context, means a major essential component +(kernel, window system, and so on) of the specific operating system +(if any) on which the executable work runs, or a compiler used to +produce the work, or an object code interpreter used to run it. + + The "Corresponding Source" for a work in object code form means all +the source code needed to generate, install, and (for an executable +work) run the object code and to modify the work, including scripts to +control those activities. However, it does not include the work's +System Libraries, or general-purpose tools or generally available free +programs which are used unmodified in performing those activities but +which are not part of the work. For example, Corresponding Source +includes interface definition files associated with source files for +the work, and the source code for shared libraries and dynamically +linked subprograms that the work is specifically designed to require, +such as by intimate data communication or control flow between those +subprograms and other parts of the work. + + The Corresponding Source need not include anything that users +can regenerate automatically from other parts of the Corresponding +Source. + + The Corresponding Source for a work in source code form is that +same work. + + 2. Basic Permissions. + + All rights granted under this License are granted for the term of +copyright on the Program, and are irrevocable provided the stated +conditions are met. This License explicitly affirms your unlimited +permission to run the unmodified Program. The output from running a +covered work is covered by this License only if the output, given its +content, constitutes a covered work. This License acknowledges your +rights of fair use or other equivalent, as provided by copyright law. + + You may make, run and propagate covered works that you do not +convey, without conditions so long as your license otherwise remains +in force. You may convey covered works to others for the sole purpose +of having them make modifications exclusively for you, or provide you +with facilities for running those works, provided that you comply with +the terms of this License in conveying all material for which you do +not control copyright. Those thus making or running the covered works +for you must do so exclusively on your behalf, under your direction +and control, on terms that prohibit them from making any copies of +your copyrighted material outside their relationship with you. + + Conveying under any other circumstances is permitted solely under +the conditions stated below. Sublicensing is not allowed; section 10 +makes it unnecessary. + + 3. Protecting Users' Legal Rights From Anti-Circumvention Law. + + No covered work shall be deemed part of an effective technological +measure under any applicable law fulfilling obligations under article +11 of the WIPO copyright treaty adopted on 20 December 1996, or +similar laws prohibiting or restricting circumvention of such +measures. + + When you convey a covered work, you waive any legal power to forbid +circumvention of technological measures to the extent such circumvention +is effected by exercising rights under this License with respect to +the covered work, and you disclaim any intention to limit operation or +modification of the work as a means of enforcing, against the work's +users, your or third parties' legal rights to forbid circumvention of +technological measures. + + 4. Conveying Verbatim Copies. + + You may convey verbatim copies of the Program's source code as you +receive it, in any medium, provided that you conspicuously and +appropriately publish on each copy an appropriate copyright notice; +keep intact all notices stating that this License and any +non-permissive terms added in accord with section 7 apply to the code; +keep intact all notices of the absence of any warranty; and give all +recipients a copy of this License along with the Program. + + You may charge any price or no price for each copy that you convey, +and you may offer support or warranty protection for a fee. + + 5. Conveying Modified Source Versions. + + You may convey a work based on the Program, or the modifications to +produce it from the Program, in the form of source code under the +terms of section 4, provided that you also meet all of these conditions: + + a) The work must carry prominent notices stating that you modified + it, and giving a relevant date. + + b) The work must carry prominent notices stating that it is + released under this License and any conditions added under section + 7. This requirement modifies the requirement in section 4 to + "keep intact all notices". + + c) You must license the entire work, as a whole, under this + License to anyone who comes into possession of a copy. This + License will therefore apply, along with any applicable section 7 + additional terms, to the whole of the work, and all its parts, + regardless of how they are packaged. This License gives no + permission to license the work in any other way, but it does not + invalidate such permission if you have separately received it. + + d) If the work has interactive user interfaces, each must display + Appropriate Legal Notices; however, if the Program has interactive + interfaces that do not display Appropriate Legal Notices, your + work need not make them do so. + + A compilation of a covered work with other separate and independent +works, which are not by their nature extensions of the covered work, +and which are not combined with it such as to form a larger program, +in or on a volume of a storage or distribution medium, is called an +"aggregate" if the compilation and its resulting copyright are not +used to limit the access or legal rights of the compilation's users +beyond what the individual works permit. Inclusion of a covered work +in an aggregate does not cause this License to apply to the other +parts of the aggregate. + + 6. Conveying Non-Source Forms. + + You may convey a covered work in object code form under the terms +of sections 4 and 5, provided that you also convey the +machine-readable Corresponding Source under the terms of this License, +in one of these ways: + + a) Convey the object code in, or embodied in, a physical product + (including a physical distribution medium), accompanied by the + Corresponding Source fixed on a durable physical medium + customarily used for software interchange. + + b) Convey the object code in, or embodied in, a physical product + (including a physical distribution medium), accompanied by a + written offer, valid for at least three years and valid for as + long as you offer spare parts or customer support for that product + model, to give anyone who possesses the object code either (1) a + copy of the Corresponding Source for all the software in the + product that is covered by this License, on a durable physical + medium customarily used for software interchange, for a price no + more than your reasonable cost of physically performing this + conveying of source, or (2) access to copy the + Corresponding Source from a network server at no charge. + + c) Convey individual copies of the object code with a copy of the + written offer to provide the Corresponding Source. This + alternative is allowed only occasionally and noncommercially, and + only if you received the object code with such an offer, in accord + with subsection 6b. + + d) Convey the object code by offering access from a designated + place (gratis or for a charge), and offer equivalent access to the + Corresponding Source in the same way through the same place at no + further charge. You need not require recipients to copy the + Corresponding Source along with the object code. If the place to + copy the object code is a network server, the Corresponding Source + may be on a different server (operated by you or a third party) + that supports equivalent copying facilities, provided you maintain + clear directions next to the object code saying where to find the + Corresponding Source. Regardless of what server hosts the + Corresponding Source, you remain obligated to ensure that it is + available for as long as needed to satisfy these requirements. + + e) Convey the object code using peer-to-peer transmission, provided + you inform other peers where the object code and Corresponding + Source of the work are being offered to the general public at no + charge under subsection 6d. + + A separable portion of the object code, whose source code is excluded +from the Corresponding Source as a System Library, need not be +included in conveying the object code work. + + A "User Product" is either (1) a "consumer product", which means any +tangible personal property which is normally used for personal, family, +or household purposes, or (2) anything designed or sold for incorporation +into a dwelling. In determining whether a product is a consumer product, +doubtful cases shall be resolved in favor of coverage. For a particular +product received by a particular user, "normally used" refers to a +typical or common use of that class of product, regardless of the status +of the particular user or of the way in which the particular user +actually uses, or expects or is expected to use, the product. A product +is a consumer product regardless of whether the product has substantial +commercial, industrial or non-consumer uses, unless such uses represent +the only significant mode of use of the product. + + "Installation Information" for a User Product means any methods, +procedures, authorization keys, or other information required to install +and execute modified versions of a covered work in that User Product from +a modified version of its Corresponding Source. The information must +suffice to ensure that the continued functioning of the modified object +code is in no case prevented or interfered with solely because +modification has been made. + + If you convey an object code work under this section in, or with, or +specifically for use in, a User Product, and the conveying occurs as +part of a transaction in which the right of possession and use of the +User Product is transferred to the recipient in perpetuity or for a +fixed term (regardless of how the transaction is characterized), the +Corresponding Source conveyed under this section must be accompanied +by the Installation Information. But this requirement does not apply +if neither you nor any third party retains the ability to install +modified object code on the User Product (for example, the work has +been installed in ROM). + + The requirement to provide Installation Information does not include a +requirement to continue to provide support service, warranty, or updates +for a work that has been modified or installed by the recipient, or for +the User Product in which it has been modified or installed. Access to a +network may be denied when the modification itself materially and +adversely affects the operation of the network or violates the rules and +protocols for communication across the network. + + Corresponding Source conveyed, and Installation Information provided, +in accord with this section must be in a format that is publicly +documented (and with an implementation available to the public in +source code form), and must require no special password or key for +unpacking, reading or copying. + + 7. Additional Terms. + + "Additional permissions" are terms that supplement the terms of this +License by making exceptions from one or more of its conditions. +Additional permissions that are applicable to the entire Program shall +be treated as though they were included in this License, to the extent +that they are valid under applicable law. If additional permissions +apply only to part of the Program, that part may be used separately +under those permissions, but the entire Program remains governed by +this License without regard to the additional permissions. + + When you convey a copy of a covered work, you may at your option +remove any additional permissions from that copy, or from any part of +it. (Additional permissions may be written to require their own +removal in certain cases when you modify the work.) You may place +additional permissions on material, added by you to a covered work, +for which you have or can give appropriate copyright permission. + + Notwithstanding any other provision of this License, for material you +add to a covered work, you may (if authorized by the copyright holders of +that material) supplement the terms of this License with terms: + + a) Disclaiming warranty or limiting liability differently from the + terms of sections 15 and 16 of this License; or + + b) Requiring preservation of specified reasonable legal notices or + author attributions in that material or in the Appropriate Legal + Notices displayed by works containing it; or + + c) Prohibiting misrepresentation of the origin of that material, or + requiring that modified versions of such material be marked in + reasonable ways as different from the original version; or + + d) Limiting the use for publicity purposes of names of licensors or + authors of the material; or + + e) Declining to grant rights under trademark law for use of some + trade names, trademarks, or service marks; or + + f) Requiring indemnification of licensors and authors of that + material by anyone who conveys the material (or modified versions of + it) with contractual assumptions of liability to the recipient, for + any liability that these contractual assumptions directly impose on + those licensors and authors. + + All other non-permissive additional terms are considered "further +restrictions" within the meaning of section 10. If the Program as you +received it, or any part of it, contains a notice stating that it is +governed by this License along with a term that is a further +restriction, you may remove that term. If a license document contains +a further restriction but permits relicensing or conveying under this +License, you may add to a covered work material governed by the terms +of that license document, provided that the further restriction does +not survive such relicensing or conveying. + + If you add terms to a covered work in accord with this section, you +must place, in the relevant source files, a statement of the +additional terms that apply to those files, or a notice indicating +where to find the applicable terms. + + Additional terms, permissive or non-permissive, may be stated in the +form of a separately written license, or stated as exceptions; +the above requirements apply either way. + + 8. Termination. + + You may not propagate or modify a covered work except as expressly +provided under this License. Any attempt otherwise to propagate or +modify it is void, and will automatically terminate your rights under +this License (including any patent licenses granted under the third +paragraph of section 11). + + However, if you cease all violation of this License, then your +license from a particular copyright holder is reinstated (a) +provisionally, unless and until the copyright holder explicitly and +finally terminates your license, and (b) permanently, if the copyright +holder fails to notify you of the violation by some reasonable means +prior to 60 days after the cessation. + + Moreover, your license from a particular copyright holder is +reinstated permanently if the copyright holder notifies you of the +violation by some reasonable means, this is the first time you have +received notice of violation of this License (for any work) from that +copyright holder, and you cure the violation prior to 30 days after +your receipt of the notice. + + Termination of your rights under this section does not terminate the +licenses of parties who have received copies or rights from you under +this License. If your rights have been terminated and not permanently +reinstated, you do not qualify to receive new licenses for the same +material under section 10. + + 9. Acceptance Not Required for Having Copies. + + You are not required to accept this License in order to receive or +run a copy of the Program. Ancillary propagation of a covered work +occurring solely as a consequence of using peer-to-peer transmission +to receive a copy likewise does not require acceptance. However, +nothing other than this License grants you permission to propagate or +modify any covered work. These actions infringe copyright if you do +not accept this License. Therefore, by modifying or propagating a +covered work, you indicate your acceptance of this License to do so. + + 10. Automatic Licensing of Downstream Recipients. + + Each time you convey a covered work, the recipient automatically +receives a license from the original licensors, to run, modify and +propagate that work, subject to this License. You are not responsible +for enforcing compliance by third parties with this License. + + An "entity transaction" is a transaction transferring control of an +organization, or substantially all assets of one, or subdividing an +organization, or merging organizations. If propagation of a covered +work results from an entity transaction, each party to that +transaction who receives a copy of the work also receives whatever +licenses to the work the party's predecessor in interest had or could +give under the previous paragraph, plus a right to possession of the +Corresponding Source of the work from the predecessor in interest, if +the predecessor has it or can get it with reasonable efforts. + + You may not impose any further restrictions on the exercise of the +rights granted or affirmed under this License. For example, you may +not impose a license fee, royalty, or other charge for exercise of +rights granted under this License, and you may not initiate litigation +(including a cross-claim or counterclaim in a lawsuit) alleging that +any patent claim is infringed by making, using, selling, offering for +sale, or importing the Program or any portion of it. + + 11. Patents. + + A "contributor" is a copyright holder who authorizes use under this +License of the Program or a work on which the Program is based. The +work thus licensed is called the contributor's "contributor version". + + A contributor's "essential patent claims" are all patent claims +owned or controlled by the contributor, whether already acquired or +hereafter acquired, that would be infringed by some manner, permitted +by this License, of making, using, or selling its contributor version, +but do not include claims that would be infringed only as a +consequence of further modification of the contributor version. For +purposes of this definition, "control" includes the right to grant +patent sublicenses in a manner consistent with the requirements of +this License. + + Each contributor grants you a non-exclusive, worldwide, royalty-free +patent license under the contributor's essential patent claims, to +make, use, sell, offer for sale, import and otherwise run, modify and +propagate the contents of its contributor version. + + In the following three paragraphs, a "patent license" is any express +agreement or commitment, however denominated, not to enforce a patent +(such as an express permission to practice a patent or covenant not to +sue for patent infringement). To "grant" such a patent license to a +party means to make such an agreement or commitment not to enforce a +patent against the party. + + If you convey a covered work, knowingly relying on a patent license, +and the Corresponding Source of the work is not available for anyone +to copy, free of charge and under the terms of this License, through a +publicly available network server or other readily accessible means, +then you must either (1) cause the Corresponding Source to be so +available, or (2) arrange to deprive yourself of the benefit of the +patent license for this particular work, or (3) arrange, in a manner +consistent with the requirements of this License, to extend the patent +license to downstream recipients. "Knowingly relying" means you have +actual knowledge that, but for the patent license, your conveying the +covered work in a country, or your recipient's use of the covered work +in a country, would infringe one or more identifiable patents in that +country that you have reason to believe are valid. + + If, pursuant to or in connection with a single transaction or +arrangement, you convey, or propagate by procuring conveyance of, a +covered work, and grant a patent license to some of the parties +receiving the covered work authorizing them to use, propagate, modify +or convey a specific copy of the covered work, then the patent license +you grant is automatically extended to all recipients of the covered +work and works based on it. + + A patent license is "discriminatory" if it does not include within +the scope of its coverage, prohibits the exercise of, or is +conditioned on the non-exercise of one or more of the rights that are +specifically granted under this License. You may not convey a covered +work if you are a party to an arrangement with a third party that is +in the business of distributing software, under which you make payment +to the third party based on the extent of your activity of conveying +the work, and under which the third party grants, to any of the +parties who would receive the covered work from you, a discriminatory +patent license (a) in connection with copies of the covered work +conveyed by you (or copies made from those copies), or (b) primarily +for and in connection with specific products or compilations that +contain the covered work, unless you entered into that arrangement, +or that patent license was granted, prior to 28 March 2007. + + Nothing in this License shall be construed as excluding or limiting +any implied license or other defenses to infringement that may +otherwise be available to you under applicable patent law. + + 12. No Surrender of Others' Freedom. + + If conditions are imposed on you (whether by court order, agreement or +otherwise) that contradict the conditions of this License, they do not +excuse you from the conditions of this License. If you cannot convey a +covered work so as to satisfy simultaneously your obligations under this +License and any other pertinent obligations, then as a consequence you may +not convey it at all. For example, if you agree to terms that obligate you +to collect a royalty for further conveying from those to whom you convey +the Program, the only way you could satisfy both those terms and this +License would be to refrain entirely from conveying the Program. + + 13. Remote Network Interaction; Use with the GNU General Public License. + + Notwithstanding any other provision of this License, if you modify the +Program, your modified version must prominently offer all users +interacting with it remotely through a computer network (if your version +supports such interaction) an opportunity to receive the Corresponding +Source of your version by providing access to the Corresponding Source +from a network server at no charge, through some standard or customary +means of facilitating copying of software. This Corresponding Source +shall include the Corresponding Source for any work covered by version 3 +of the GNU General Public License that is incorporated pursuant to the +following paragraph. + + Notwithstanding any other provision of this License, you have +permission to link or combine any covered work with a work licensed +under version 3 of the GNU General Public License into a single +combined work, and to convey the resulting work. The terms of this +License will continue to apply to the part which is the covered work, +but the work with which it is combined will remain governed by version +3 of the GNU General Public License. + + 14. Revised Versions of this License. + + The Free Software Foundation may publish revised and/or new versions of +the GNU Affero General Public License from time to time. Such new versions +will be similar in spirit to the present version, but may differ in detail to +address new problems or concerns. + + Each version is given a distinguishing version number. If the +Program specifies that a certain numbered version of the GNU Affero General +Public License "or any later version" applies to it, you have the +option of following the terms and conditions either of that numbered +version or of any later version published by the Free Software +Foundation. If the Program does not specify a version number of the +GNU Affero General Public License, you may choose any version ever published +by the Free Software Foundation. + + If the Program specifies that a proxy can decide which future +versions of the GNU Affero General Public License can be used, that proxy's +public statement of acceptance of a version permanently authorizes you +to choose that version for the Program. + + Later license versions may give you additional or different +permissions. However, no additional obligations are imposed on any +author or copyright holder as a result of your choosing to follow a +later version. + + 15. Disclaimer of Warranty. + + THERE IS NO WARRANTY FOR THE PROGRAM, TO THE EXTENT PERMITTED BY +APPLICABLE LAW. EXCEPT WHEN OTHERWISE STATED IN WRITING THE COPYRIGHT +HOLDERS AND/OR OTHER PARTIES PROVIDE THE PROGRAM "AS IS" WITHOUT WARRANTY +OF ANY KIND, EITHER EXPRESSED OR IMPLIED, INCLUDING, BUT NOT LIMITED TO, +THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR +PURPOSE. THE ENTIRE RISK AS TO THE QUALITY AND PERFORMANCE OF THE PROGRAM +IS WITH YOU. SHOULD THE PROGRAM PROVE DEFECTIVE, YOU ASSUME THE COST OF +ALL NECESSARY SERVICING, REPAIR OR CORRECTION. + + 16. Limitation of Liability. + + IN NO EVENT UNLESS REQUIRED BY APPLICABLE LAW OR AGREED TO IN WRITING +WILL ANY COPYRIGHT HOLDER, OR ANY OTHER PARTY WHO MODIFIES AND/OR CONVEYS +THE PROGRAM AS PERMITTED ABOVE, BE LIABLE TO YOU FOR DAMAGES, INCLUDING ANY +GENERAL, SPECIAL, INCIDENTAL OR CONSEQUENTIAL DAMAGES ARISING OUT OF THE +USE OR INABILITY TO USE THE PROGRAM (INCLUDING BUT NOT LIMITED TO LOSS OF +DATA OR DATA BEING RENDERED INACCURATE OR LOSSES SUSTAINED BY YOU OR THIRD +PARTIES OR A FAILURE OF THE PROGRAM TO OPERATE WITH ANY OTHER PROGRAMS), +EVEN IF SUCH HOLDER OR OTHER PARTY HAS BEEN ADVISED OF THE POSSIBILITY OF +SUCH DAMAGES. + + 17. Interpretation of Sections 15 and 16. + + If the disclaimer of warranty and limitation of liability provided +above cannot be given local legal effect according to their terms, +reviewing courts shall apply local law that most closely approximates +an absolute waiver of all civil liability in connection with the +Program, unless a warranty or assumption of liability accompanies a +copy of the Program in return for a fee. + + END OF TERMS AND CONDITIONS + + How to Apply These Terms to Your New Programs + + If you develop a new program, and you want it to be of the greatest +possible use to the public, the best way to achieve this is to make it +free software which everyone can redistribute and change under these terms. + + To do so, attach the following notices to the program. It is safest +to attach them to the start of each source file to most effectively +state the exclusion of warranty; and each file should have at least +the "copyright" line and a pointer to where the full notice is found. + + + Copyright (C) + + This program is free software: you can redistribute it and/or modify + it under the terms of the GNU Affero General Public License as published + by the Free Software Foundation, either version 3 of the License, or + (at your option) any later version. + + This program is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU Affero General Public License for more details. + + You should have received a copy of the GNU Affero General Public License + along with this program. If not, see . + +Also add information on how to contact you by electronic and paper mail. + + If your software can interact with users remotely through a computer +network, you should also make sure that it provides a way for users to +get its source. For example, if your program is a web application, its +interface could display a "Source" link that leads users to an archive +of the code. There are many ways you could offer source, and different +solutions will be better for different programs; see section 13 for the +specific requirements. + + You should also get your employer (if you work as a programmer) or school, +if any, to sign a "copyright disclaimer" for the program, if necessary. +For more information on this, and how to apply and follow the GNU AGPL, see +. From 6868c13b9e323f803c5521f5855711138564414e Mon Sep 17 00:00:00 2001 From: Dynesshely Date: Sat, 17 Feb 2024 03:21:07 +0800 Subject: [PATCH 15/24] =?UTF-8?q?=F0=9F=92=BE=20Feat:=20Implemented=20json?= =?UTF-8?q?=20models=20under=20`device`=20folder.?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../kitx_shared_dart/CHANGELOG.md | 4 + KitX.Shared.Dart/kitx_shared_dart/README.md | 33 ++ .../kitx_shared_dart/build_runner.ps1 | 1 + .../example/kitx_shared_dart_example.dart | 4 +- .../lib/device/device_info.dart | 64 ++++ .../lib/device/device_info.g.dart | 315 ++++++++++++++++++ .../lib/device/device_locator.dart | 44 +++ .../lib/device/device_locator.g.dart | 193 +++++++++++ .../lib/device/operating_systems.dart | 54 +++ .../lib/device/operating_systems.g.dart | 127 +++++++ .../lib/kitx_shared_dart.dart | 9 +- .../kitx_shared_dart/lib/serializers.dart | 30 ++ .../kitx_shared_dart/lib/serializers.g.dart | 15 + .../lib/src/kitx_shared_dart_base.dart | 6 - .../kitx_shared_dart/pubspec.yaml | 10 +- .../test/kitx_shared_dart_test.dart | 6 +- 16 files changed, 896 insertions(+), 19 deletions(-) create mode 100644 KitX.Shared.Dart/kitx_shared_dart/build_runner.ps1 create mode 100644 KitX.Shared.Dart/kitx_shared_dart/lib/device/device_info.dart create mode 100644 KitX.Shared.Dart/kitx_shared_dart/lib/device/device_info.g.dart create mode 100644 KitX.Shared.Dart/kitx_shared_dart/lib/device/device_locator.dart create mode 100644 KitX.Shared.Dart/kitx_shared_dart/lib/device/device_locator.g.dart create mode 100644 KitX.Shared.Dart/kitx_shared_dart/lib/device/operating_systems.dart create mode 100644 KitX.Shared.Dart/kitx_shared_dart/lib/device/operating_systems.g.dart create mode 100644 KitX.Shared.Dart/kitx_shared_dart/lib/serializers.dart create mode 100644 KitX.Shared.Dart/kitx_shared_dart/lib/serializers.g.dart delete mode 100644 KitX.Shared.Dart/kitx_shared_dart/lib/src/kitx_shared_dart_base.dart diff --git a/KitX.Shared.Dart/kitx_shared_dart/CHANGELOG.md b/KitX.Shared.Dart/kitx_shared_dart/CHANGELOG.md index 7daa368..f4684d6 100644 --- a/KitX.Shared.Dart/kitx_shared_dart/CHANGELOG.md +++ b/KitX.Shared.Dart/kitx_shared_dart/CHANGELOG.md @@ -1,3 +1,7 @@ +## 3.24.10+6829 + +- Implemented json models under `device` folder with `built_values`. + ## 1.0.0 - Initial version (Began to port KitX.Shared). diff --git a/KitX.Shared.Dart/kitx_shared_dart/README.md b/KitX.Shared.Dart/kitx_shared_dart/README.md index 2563168..8eaebfb 100644 --- a/KitX.Shared.Dart/kitx_shared_dart/README.md +++ b/KitX.Shared.Dart/kitx_shared_dart/README.md @@ -2,8 +2,41 @@ A port of [KitX.Shared](https://github.com/Crequency/KitX-Standard/KitX.Shared) ## Features +Using `build_value`: https://pub.dev/documentation/built_value/latest/ + ## Getting started +With Dart: + +```shell +dart pub add kitx_shared_dart +``` + +With Flutter: + +```shell +flutter pub add kitx_shared_dart +``` + +### Plugins + +VSCode: [Built Value Snippets](https://marketplace.visualstudio.com/items?itemName=GiancarloCode.built-value-snippets) +> Or use plugin code `vscode:extension/GiancarloCode.built-value-snippets` + +IntelliJ: [Built Value Snippets](https://plugins.jetbrains.com/plugin/13786-built-value-snippets) + ## Usage + ## Additional information + +### Notice + +1. `.g.dart` files are auto generated, you'd better do not edit them manually. +2. Without `.g.dart` files, editor will throw errors and you can not compile project which is normal. +3. Accroding to [documentation](https://pub.dev/packages/built_value#should-i-check-in-andor-publish-in-the-generated-gdart-files), you'd better push `.g.dart` files. + +### Tools to generate model + +- [Json to Dart built_value class converter](https://charafau.github.io/json2builtvalue/) +- [Json or js Object to Dart built_value class converter](https://januwa.github.io/p5_object_2_builtvalue/index.html) diff --git a/KitX.Shared.Dart/kitx_shared_dart/build_runner.ps1 b/KitX.Shared.Dart/kitx_shared_dart/build_runner.ps1 new file mode 100644 index 0000000..9937840 --- /dev/null +++ b/KitX.Shared.Dart/kitx_shared_dart/build_runner.ps1 @@ -0,0 +1 @@ +dart run build_runner build diff --git a/KitX.Shared.Dart/kitx_shared_dart/example/kitx_shared_dart_example.dart b/KitX.Shared.Dart/kitx_shared_dart/example/kitx_shared_dart_example.dart index 807eff9..ba59bd5 100644 --- a/KitX.Shared.Dart/kitx_shared_dart/example/kitx_shared_dart_example.dart +++ b/KitX.Shared.Dart/kitx_shared_dart/example/kitx_shared_dart_example.dart @@ -1,6 +1,6 @@ import 'package:kitx_shared_dart/kitx_shared_dart.dart'; void main() { - var awesome = Awesome(); - print('awesome: ${awesome.isAwesome}'); + var device = DeviceInfo(); + print('awesome: ${device.toJson()}'); } diff --git a/KitX.Shared.Dart/kitx_shared_dart/lib/device/device_info.dart b/KitX.Shared.Dart/kitx_shared_dart/lib/device/device_info.dart new file mode 100644 index 0000000..8315753 --- /dev/null +++ b/KitX.Shared.Dart/kitx_shared_dart/lib/device/device_info.dart @@ -0,0 +1,64 @@ +import 'dart:convert'; + +import 'package:built_value/built_value.dart'; +import 'package:built_value/serializer.dart'; + +import 'device_locator.dart'; +import 'operating_systems.dart'; + +import '../serializers.dart'; + +part 'device_info.g.dart'; + +abstract class DeviceInfo implements Built { + @BuiltValueField(wireName: 'Device') + DeviceLocator get device; + + @BuiltValueField(wireName: 'DeviceOSVersion') + String get deviceOSVersion; + + @BuiltValueField(wireName: 'PluginsServerPort') + int get pluginsServerPort; + + @BuiltValueField(wireName: 'PluginsCount') + int get pluginsCount; + + @BuiltValueField(wireName: 'SendTime') + DateTime get sendTime; + + @BuiltValueField(wireName: 'IsMainDevice') + bool get isMainDevice; + + @BuiltValueField(wireName: 'DevicesServerPort') + int get devicesServerPort; + + @BuiltValueField(wireName: 'DevicesServerBuildTime') + DateTime get devicesServerBuildTime; + + @BuiltValueField(wireName: 'DeviceOSType') + OperatingSystems get deviceOSType; + + DeviceInfo._(); + + factory DeviceInfo([void Function(DeviceInfoBuilder) updates]) = _$DeviceInfo; + + Object? toJson() { + return serializers.serializeWith(DeviceInfo.serializer, this); + } + + @override + String toString() { + return json.encode(serializers.serializeWith(DeviceInfo.serializer, this)); + } + + static DeviceInfo? fromString(String jsonString) { + DeviceInfo? result = serializers.deserializeWith(DeviceInfo.serializer, json.decode(jsonString)); + return result; + } + + static DeviceInfo? fromJson(Map json) { + return serializers.deserializeWith(DeviceInfo.serializer, json); + } + + static Serializer get serializer => _$deviceInfoSerializer; +} diff --git a/KitX.Shared.Dart/kitx_shared_dart/lib/device/device_info.g.dart b/KitX.Shared.Dart/kitx_shared_dart/lib/device/device_info.g.dart new file mode 100644 index 0000000..cda15f6 --- /dev/null +++ b/KitX.Shared.Dart/kitx_shared_dart/lib/device/device_info.g.dart @@ -0,0 +1,315 @@ +// GENERATED CODE - DO NOT MODIFY BY HAND + +part of 'device_info.dart'; + +// ************************************************************************** +// BuiltValueGenerator +// ************************************************************************** + +Serializer _$deviceInfoSerializer = new _$DeviceInfoSerializer(); + +class _$DeviceInfoSerializer implements StructuredSerializer { + @override + final Iterable types = const [DeviceInfo, _$DeviceInfo]; + @override + final String wireName = 'DeviceInfo'; + + @override + Iterable serialize(Serializers serializers, DeviceInfo object, + {FullType specifiedType = FullType.unspecified}) { + final result = [ + 'Device', + serializers.serialize(object.device, + specifiedType: const FullType(DeviceLocator)), + 'DeviceOSVersion', + serializers.serialize(object.deviceOSVersion, + specifiedType: const FullType(String)), + 'PluginsServerPort', + serializers.serialize(object.pluginsServerPort, + specifiedType: const FullType(int)), + 'PluginsCount', + serializers.serialize(object.pluginsCount, + specifiedType: const FullType(int)), + 'SendTime', + serializers.serialize(object.sendTime, + specifiedType: const FullType(DateTime)), + 'IsMainDevice', + serializers.serialize(object.isMainDevice, + specifiedType: const FullType(bool)), + 'DevicesServerPort', + serializers.serialize(object.devicesServerPort, + specifiedType: const FullType(int)), + 'DevicesServerBuildTime', + serializers.serialize(object.devicesServerBuildTime, + specifiedType: const FullType(DateTime)), + 'DeviceOSType', + serializers.serialize(object.deviceOSType, + specifiedType: const FullType(OperatingSystems)), + ]; + + return result; + } + + @override + DeviceInfo deserialize(Serializers serializers, Iterable serialized, + {FullType specifiedType = FullType.unspecified}) { + final result = new DeviceInfoBuilder(); + + final iterator = serialized.iterator; + while (iterator.moveNext()) { + final key = iterator.current! as String; + iterator.moveNext(); + final Object? value = iterator.current; + switch (key) { + case 'Device': + result.device.replace(serializers.deserialize(value, + specifiedType: const FullType(DeviceLocator))! as DeviceLocator); + break; + case 'DeviceOSVersion': + result.deviceOSVersion = serializers.deserialize(value, + specifiedType: const FullType(String))! as String; + break; + case 'PluginsServerPort': + result.pluginsServerPort = serializers.deserialize(value, + specifiedType: const FullType(int))! as int; + break; + case 'PluginsCount': + result.pluginsCount = serializers.deserialize(value, + specifiedType: const FullType(int))! as int; + break; + case 'SendTime': + result.sendTime = serializers.deserialize(value, + specifiedType: const FullType(DateTime))! as DateTime; + break; + case 'IsMainDevice': + result.isMainDevice = serializers.deserialize(value, + specifiedType: const FullType(bool))! as bool; + break; + case 'DevicesServerPort': + result.devicesServerPort = serializers.deserialize(value, + specifiedType: const FullType(int))! as int; + break; + case 'DevicesServerBuildTime': + result.devicesServerBuildTime = serializers.deserialize(value, + specifiedType: const FullType(DateTime))! as DateTime; + break; + case 'DeviceOSType': + result.deviceOSType = serializers.deserialize(value, + specifiedType: const FullType(OperatingSystems))! + as OperatingSystems; + break; + } + } + + return result.build(); + } +} + +class _$DeviceInfo extends DeviceInfo { + @override + final DeviceLocator device; + @override + final String deviceOSVersion; + @override + final int pluginsServerPort; + @override + final int pluginsCount; + @override + final DateTime sendTime; + @override + final bool isMainDevice; + @override + final int devicesServerPort; + @override + final DateTime devicesServerBuildTime; + @override + final OperatingSystems deviceOSType; + + factory _$DeviceInfo([void Function(DeviceInfoBuilder)? updates]) => + (new DeviceInfoBuilder()..update(updates))._build(); + + _$DeviceInfo._( + {required this.device, + required this.deviceOSVersion, + required this.pluginsServerPort, + required this.pluginsCount, + required this.sendTime, + required this.isMainDevice, + required this.devicesServerPort, + required this.devicesServerBuildTime, + required this.deviceOSType}) + : super._() { + BuiltValueNullFieldError.checkNotNull(device, r'DeviceInfo', 'device'); + BuiltValueNullFieldError.checkNotNull( + deviceOSVersion, r'DeviceInfo', 'deviceOSVersion'); + BuiltValueNullFieldError.checkNotNull( + pluginsServerPort, r'DeviceInfo', 'pluginsServerPort'); + BuiltValueNullFieldError.checkNotNull( + pluginsCount, r'DeviceInfo', 'pluginsCount'); + BuiltValueNullFieldError.checkNotNull(sendTime, r'DeviceInfo', 'sendTime'); + BuiltValueNullFieldError.checkNotNull( + isMainDevice, r'DeviceInfo', 'isMainDevice'); + BuiltValueNullFieldError.checkNotNull( + devicesServerPort, r'DeviceInfo', 'devicesServerPort'); + BuiltValueNullFieldError.checkNotNull( + devicesServerBuildTime, r'DeviceInfo', 'devicesServerBuildTime'); + BuiltValueNullFieldError.checkNotNull( + deviceOSType, r'DeviceInfo', 'deviceOSType'); + } + + @override + DeviceInfo rebuild(void Function(DeviceInfoBuilder) updates) => + (toBuilder()..update(updates)).build(); + + @override + DeviceInfoBuilder toBuilder() => new DeviceInfoBuilder()..replace(this); + + @override + bool operator ==(Object other) { + if (identical(other, this)) return true; + return other is DeviceInfo && + device == other.device && + deviceOSVersion == other.deviceOSVersion && + pluginsServerPort == other.pluginsServerPort && + pluginsCount == other.pluginsCount && + sendTime == other.sendTime && + isMainDevice == other.isMainDevice && + devicesServerPort == other.devicesServerPort && + devicesServerBuildTime == other.devicesServerBuildTime && + deviceOSType == other.deviceOSType; + } + + @override + int get hashCode { + var _$hash = 0; + _$hash = $jc(_$hash, device.hashCode); + _$hash = $jc(_$hash, deviceOSVersion.hashCode); + _$hash = $jc(_$hash, pluginsServerPort.hashCode); + _$hash = $jc(_$hash, pluginsCount.hashCode); + _$hash = $jc(_$hash, sendTime.hashCode); + _$hash = $jc(_$hash, isMainDevice.hashCode); + _$hash = $jc(_$hash, devicesServerPort.hashCode); + _$hash = $jc(_$hash, devicesServerBuildTime.hashCode); + _$hash = $jc(_$hash, deviceOSType.hashCode); + _$hash = $jf(_$hash); + return _$hash; + } +} + +class DeviceInfoBuilder implements Builder { + _$DeviceInfo? _$v; + + DeviceLocatorBuilder? _device; + DeviceLocatorBuilder get device => + _$this._device ??= new DeviceLocatorBuilder(); + set device(DeviceLocatorBuilder? device) => _$this._device = device; + + String? _deviceOSVersion; + String? get deviceOSVersion => _$this._deviceOSVersion; + set deviceOSVersion(String? deviceOSVersion) => + _$this._deviceOSVersion = deviceOSVersion; + + int? _pluginsServerPort; + int? get pluginsServerPort => _$this._pluginsServerPort; + set pluginsServerPort(int? pluginsServerPort) => + _$this._pluginsServerPort = pluginsServerPort; + + int? _pluginsCount; + int? get pluginsCount => _$this._pluginsCount; + set pluginsCount(int? pluginsCount) => _$this._pluginsCount = pluginsCount; + + DateTime? _sendTime; + DateTime? get sendTime => _$this._sendTime; + set sendTime(DateTime? sendTime) => _$this._sendTime = sendTime; + + bool? _isMainDevice; + bool? get isMainDevice => _$this._isMainDevice; + set isMainDevice(bool? isMainDevice) => _$this._isMainDevice = isMainDevice; + + int? _devicesServerPort; + int? get devicesServerPort => _$this._devicesServerPort; + set devicesServerPort(int? devicesServerPort) => + _$this._devicesServerPort = devicesServerPort; + + DateTime? _devicesServerBuildTime; + DateTime? get devicesServerBuildTime => _$this._devicesServerBuildTime; + set devicesServerBuildTime(DateTime? devicesServerBuildTime) => + _$this._devicesServerBuildTime = devicesServerBuildTime; + + OperatingSystems? _deviceOSType; + OperatingSystems? get deviceOSType => _$this._deviceOSType; + set deviceOSType(OperatingSystems? deviceOSType) => + _$this._deviceOSType = deviceOSType; + + DeviceInfoBuilder(); + + DeviceInfoBuilder get _$this { + final $v = _$v; + if ($v != null) { + _device = $v.device.toBuilder(); + _deviceOSVersion = $v.deviceOSVersion; + _pluginsServerPort = $v.pluginsServerPort; + _pluginsCount = $v.pluginsCount; + _sendTime = $v.sendTime; + _isMainDevice = $v.isMainDevice; + _devicesServerPort = $v.devicesServerPort; + _devicesServerBuildTime = $v.devicesServerBuildTime; + _deviceOSType = $v.deviceOSType; + _$v = null; + } + return this; + } + + @override + void replace(DeviceInfo other) { + ArgumentError.checkNotNull(other, 'other'); + _$v = other as _$DeviceInfo; + } + + @override + void update(void Function(DeviceInfoBuilder)? updates) { + if (updates != null) updates(this); + } + + @override + DeviceInfo build() => _build(); + + _$DeviceInfo _build() { + _$DeviceInfo _$result; + try { + _$result = _$v ?? + new _$DeviceInfo._( + device: device.build(), + deviceOSVersion: BuiltValueNullFieldError.checkNotNull( + deviceOSVersion, r'DeviceInfo', 'deviceOSVersion'), + pluginsServerPort: BuiltValueNullFieldError.checkNotNull( + pluginsServerPort, r'DeviceInfo', 'pluginsServerPort'), + pluginsCount: BuiltValueNullFieldError.checkNotNull( + pluginsCount, r'DeviceInfo', 'pluginsCount'), + sendTime: BuiltValueNullFieldError.checkNotNull( + sendTime, r'DeviceInfo', 'sendTime'), + isMainDevice: BuiltValueNullFieldError.checkNotNull( + isMainDevice, r'DeviceInfo', 'isMainDevice'), + devicesServerPort: BuiltValueNullFieldError.checkNotNull( + devicesServerPort, r'DeviceInfo', 'devicesServerPort'), + devicesServerBuildTime: BuiltValueNullFieldError.checkNotNull( + devicesServerBuildTime, r'DeviceInfo', 'devicesServerBuildTime'), + deviceOSType: BuiltValueNullFieldError.checkNotNull( + deviceOSType, r'DeviceInfo', 'deviceOSType')); + } catch (_) { + late String _$failedField; + try { + _$failedField = 'device'; + device.build(); + } catch (e) { + throw new BuiltValueNestedFieldError( + r'DeviceInfo', _$failedField, e.toString()); + } + rethrow; + } + replace(_$result); + return _$result; + } +} + +// ignore_for_file: deprecated_member_use_from_same_package,type=lint diff --git a/KitX.Shared.Dart/kitx_shared_dart/lib/device/device_locator.dart b/KitX.Shared.Dart/kitx_shared_dart/lib/device/device_locator.dart new file mode 100644 index 0000000..dcaf60b --- /dev/null +++ b/KitX.Shared.Dart/kitx_shared_dart/lib/device/device_locator.dart @@ -0,0 +1,44 @@ +import 'dart:convert'; + +import 'package:built_value/built_value.dart'; +import 'package:built_value/serializer.dart'; + +import '../serializers.dart'; + +part 'device_locator.g.dart'; + +abstract class DeviceLocator implements Built { + @BuiltValueField(wireName: 'DeviceName') + String get deviceName; + + @BuiltValueField(wireName: 'IPv4') + String get iPv4; + + @BuiltValueField(wireName: 'IPv6') + String get iPv6; + + @BuiltValueField(wireName: 'DeviceMacAddress') + String get deviceMacAddress; + + DeviceLocator._(); + factory DeviceLocator([void Function(DeviceLocatorBuilder) updates]) = _$DeviceLocator; + + Object? toJson() { + return serializers.serializeWith(DeviceLocator.serializer, this); + } + + @override + String toString() { + return json.encode(serializers.serializeWith(DeviceLocator.serializer, this)); + } + + static DeviceLocator? fromJson(Map json) { + return serializers.deserializeWith(DeviceLocator.serializer, json); + } + + static DeviceLocator? fromString(String jsonString) { + return serializers.deserializeWith(DeviceLocator.serializer, json.decode(jsonString)); + } + + static Serializer get serializer => _$deviceLocatorSerializer; +} diff --git a/KitX.Shared.Dart/kitx_shared_dart/lib/device/device_locator.g.dart b/KitX.Shared.Dart/kitx_shared_dart/lib/device/device_locator.g.dart new file mode 100644 index 0000000..8c272e2 --- /dev/null +++ b/KitX.Shared.Dart/kitx_shared_dart/lib/device/device_locator.g.dart @@ -0,0 +1,193 @@ +// GENERATED CODE - DO NOT MODIFY BY HAND + +part of 'device_locator.dart'; + +// ************************************************************************** +// BuiltValueGenerator +// ************************************************************************** + +Serializer _$deviceLocatorSerializer = + new _$DeviceLocatorSerializer(); + +class _$DeviceLocatorSerializer implements StructuredSerializer { + @override + final Iterable types = const [DeviceLocator, _$DeviceLocator]; + @override + final String wireName = 'DeviceLocator'; + + @override + Iterable serialize(Serializers serializers, DeviceLocator object, + {FullType specifiedType = FullType.unspecified}) { + final result = [ + 'DeviceName', + serializers.serialize(object.deviceName, + specifiedType: const FullType(String)), + 'IPv4', + serializers.serialize(object.iPv4, specifiedType: const FullType(String)), + 'IPv6', + serializers.serialize(object.iPv6, specifiedType: const FullType(String)), + 'DeviceMacAddress', + serializers.serialize(object.deviceMacAddress, + specifiedType: const FullType(String)), + ]; + + return result; + } + + @override + DeviceLocator deserialize( + Serializers serializers, Iterable serialized, + {FullType specifiedType = FullType.unspecified}) { + final result = new DeviceLocatorBuilder(); + + final iterator = serialized.iterator; + while (iterator.moveNext()) { + final key = iterator.current! as String; + iterator.moveNext(); + final Object? value = iterator.current; + switch (key) { + case 'DeviceName': + result.deviceName = serializers.deserialize(value, + specifiedType: const FullType(String))! as String; + break; + case 'IPv4': + result.iPv4 = serializers.deserialize(value, + specifiedType: const FullType(String))! as String; + break; + case 'IPv6': + result.iPv6 = serializers.deserialize(value, + specifiedType: const FullType(String))! as String; + break; + case 'DeviceMacAddress': + result.deviceMacAddress = serializers.deserialize(value, + specifiedType: const FullType(String))! as String; + break; + } + } + + return result.build(); + } +} + +class _$DeviceLocator extends DeviceLocator { + @override + final String deviceName; + @override + final String iPv4; + @override + final String iPv6; + @override + final String deviceMacAddress; + + factory _$DeviceLocator([void Function(DeviceLocatorBuilder)? updates]) => + (new DeviceLocatorBuilder()..update(updates))._build(); + + _$DeviceLocator._( + {required this.deviceName, + required this.iPv4, + required this.iPv6, + required this.deviceMacAddress}) + : super._() { + BuiltValueNullFieldError.checkNotNull( + deviceName, r'DeviceLocator', 'deviceName'); + BuiltValueNullFieldError.checkNotNull(iPv4, r'DeviceLocator', 'iPv4'); + BuiltValueNullFieldError.checkNotNull(iPv6, r'DeviceLocator', 'iPv6'); + BuiltValueNullFieldError.checkNotNull( + deviceMacAddress, r'DeviceLocator', 'deviceMacAddress'); + } + + @override + DeviceLocator rebuild(void Function(DeviceLocatorBuilder) updates) => + (toBuilder()..update(updates)).build(); + + @override + DeviceLocatorBuilder toBuilder() => new DeviceLocatorBuilder()..replace(this); + + @override + bool operator ==(Object other) { + if (identical(other, this)) return true; + return other is DeviceLocator && + deviceName == other.deviceName && + iPv4 == other.iPv4 && + iPv6 == other.iPv6 && + deviceMacAddress == other.deviceMacAddress; + } + + @override + int get hashCode { + var _$hash = 0; + _$hash = $jc(_$hash, deviceName.hashCode); + _$hash = $jc(_$hash, iPv4.hashCode); + _$hash = $jc(_$hash, iPv6.hashCode); + _$hash = $jc(_$hash, deviceMacAddress.hashCode); + _$hash = $jf(_$hash); + return _$hash; + } +} + +class DeviceLocatorBuilder + implements Builder { + _$DeviceLocator? _$v; + + String? _deviceName; + String? get deviceName => _$this._deviceName; + set deviceName(String? deviceName) => _$this._deviceName = deviceName; + + String? _iPv4; + String? get iPv4 => _$this._iPv4; + set iPv4(String? iPv4) => _$this._iPv4 = iPv4; + + String? _iPv6; + String? get iPv6 => _$this._iPv6; + set iPv6(String? iPv6) => _$this._iPv6 = iPv6; + + String? _deviceMacAddress; + String? get deviceMacAddress => _$this._deviceMacAddress; + set deviceMacAddress(String? deviceMacAddress) => + _$this._deviceMacAddress = deviceMacAddress; + + DeviceLocatorBuilder(); + + DeviceLocatorBuilder get _$this { + final $v = _$v; + if ($v != null) { + _deviceName = $v.deviceName; + _iPv4 = $v.iPv4; + _iPv6 = $v.iPv6; + _deviceMacAddress = $v.deviceMacAddress; + _$v = null; + } + return this; + } + + @override + void replace(DeviceLocator other) { + ArgumentError.checkNotNull(other, 'other'); + _$v = other as _$DeviceLocator; + } + + @override + void update(void Function(DeviceLocatorBuilder)? updates) { + if (updates != null) updates(this); + } + + @override + DeviceLocator build() => _build(); + + _$DeviceLocator _build() { + final _$result = _$v ?? + new _$DeviceLocator._( + deviceName: BuiltValueNullFieldError.checkNotNull( + deviceName, r'DeviceLocator', 'deviceName'), + iPv4: BuiltValueNullFieldError.checkNotNull( + iPv4, r'DeviceLocator', 'iPv4'), + iPv6: BuiltValueNullFieldError.checkNotNull( + iPv6, r'DeviceLocator', 'iPv6'), + deviceMacAddress: BuiltValueNullFieldError.checkNotNull( + deviceMacAddress, r'DeviceLocator', 'deviceMacAddress')); + replace(_$result); + return _$result; + } +} + +// ignore_for_file: deprecated_member_use_from_same_package,type=lint diff --git a/KitX.Shared.Dart/kitx_shared_dart/lib/device/operating_systems.dart b/KitX.Shared.Dart/kitx_shared_dart/lib/device/operating_systems.dart new file mode 100644 index 0000000..8ea39c7 --- /dev/null +++ b/KitX.Shared.Dart/kitx_shared_dart/lib/device/operating_systems.dart @@ -0,0 +1,54 @@ +import 'package:built_collection/built_collection.dart'; +import 'package:built_value/built_value.dart'; +import 'package:built_value/serializer.dart'; + +part 'operating_systems.g.dart'; + +class OperatingSystems extends EnumClass { + @BuiltValueEnumConst(wireNumber: 0) + static const OperatingSystems unknown = _$unknown; + + @BuiltValueEnumConst(wireNumber: 1) + static const OperatingSystems android = _$android; + + @BuiltValueEnumConst(wireNumber: 2) + static const OperatingSystems browser = _$browser; + + @BuiltValueEnumConst(wireNumber: 3) + static const OperatingSystems freeBSD = _$freeBSD; + + @BuiltValueEnumConst(wireNumber: 4) + static const OperatingSystems iOS = _$iOS; + + @BuiltValueEnumConst(wireNumber: 5) + static const OperatingSystems linux = _$linux; + + @BuiltValueEnumConst(wireNumber: 6) + static const OperatingSystems macCatalyst = _$macCatalyst; + + @BuiltValueEnumConst(wireNumber: 7) + static const OperatingSystems macOS = _$macOS; + + @BuiltValueEnumConst(wireNumber: 8) + static const OperatingSystems tvOS = _$tvOS; + + @BuiltValueEnumConst(wireNumber: 9) + static const OperatingSystems watchOS = _$watchOS; + + @BuiltValueEnumConst(wireNumber: 10) + static const OperatingSystems windows = _$windows; + + @BuiltValueEnumConst(wireNumber: 11) + static const OperatingSystems iot = _$iot; + + @BuiltValueEnumConst(wireNumber: 12) + static const OperatingSystems appleVisionOS = _$appleVisionOS; + + const OperatingSystems._(super.name); + + static BuiltSet get values => _$operatingSystemsValues; + + static OperatingSystems valueOf(String name) => _$operatingSystemsValueOf(name); + + static Serializer get serializer => _$operatingSystemsSerializer; +} diff --git a/KitX.Shared.Dart/kitx_shared_dart/lib/device/operating_systems.g.dart b/KitX.Shared.Dart/kitx_shared_dart/lib/device/operating_systems.g.dart new file mode 100644 index 0000000..cdafd5c --- /dev/null +++ b/KitX.Shared.Dart/kitx_shared_dart/lib/device/operating_systems.g.dart @@ -0,0 +1,127 @@ +// GENERATED CODE - DO NOT MODIFY BY HAND + +part of 'operating_systems.dart'; + +// ************************************************************************** +// BuiltValueGenerator +// ************************************************************************** + +const OperatingSystems _$unknown = const OperatingSystems._('unknown'); +const OperatingSystems _$android = const OperatingSystems._('android'); +const OperatingSystems _$browser = const OperatingSystems._('browser'); +const OperatingSystems _$freeBSD = const OperatingSystems._('freeBSD'); +const OperatingSystems _$iOS = const OperatingSystems._('iOS'); +const OperatingSystems _$linux = const OperatingSystems._('linux'); +const OperatingSystems _$macCatalyst = const OperatingSystems._('macCatalyst'); +const OperatingSystems _$macOS = const OperatingSystems._('macOS'); +const OperatingSystems _$tvOS = const OperatingSystems._('tvOS'); +const OperatingSystems _$watchOS = const OperatingSystems._('watchOS'); +const OperatingSystems _$windows = const OperatingSystems._('windows'); +const OperatingSystems _$iot = const OperatingSystems._('iot'); +const OperatingSystems _$appleVisionOS = + const OperatingSystems._('appleVisionOS'); + +OperatingSystems _$operatingSystemsValueOf(String name) { + switch (name) { + case 'unknown': + return _$unknown; + case 'android': + return _$android; + case 'browser': + return _$browser; + case 'freeBSD': + return _$freeBSD; + case 'iOS': + return _$iOS; + case 'linux': + return _$linux; + case 'macCatalyst': + return _$macCatalyst; + case 'macOS': + return _$macOS; + case 'tvOS': + return _$tvOS; + case 'watchOS': + return _$watchOS; + case 'windows': + return _$windows; + case 'iot': + return _$iot; + case 'appleVisionOS': + return _$appleVisionOS; + default: + throw new ArgumentError(name); + } +} + +final BuiltSet _$operatingSystemsValues = + new BuiltSet(const [ + _$unknown, + _$android, + _$browser, + _$freeBSD, + _$iOS, + _$linux, + _$macCatalyst, + _$macOS, + _$tvOS, + _$watchOS, + _$windows, + _$iot, + _$appleVisionOS, +]); + +Serializer _$operatingSystemsSerializer = + new _$OperatingSystemsSerializer(); + +class _$OperatingSystemsSerializer + implements PrimitiveSerializer { + static const Map _toWire = const { + 'unknown': 0, + 'android': 1, + 'browser': 2, + 'freeBSD': 3, + 'iOS': 4, + 'linux': 5, + 'macCatalyst': 6, + 'macOS': 7, + 'tvOS': 8, + 'watchOS': 9, + 'windows': 10, + 'iot': 11, + 'appleVisionOS': 12, + }; + static const Map _fromWire = const { + 0: 'unknown', + 1: 'android', + 2: 'browser', + 3: 'freeBSD', + 4: 'iOS', + 5: 'linux', + 6: 'macCatalyst', + 7: 'macOS', + 8: 'tvOS', + 9: 'watchOS', + 10: 'windows', + 11: 'iot', + 12: 'appleVisionOS', + }; + + @override + final Iterable types = const [OperatingSystems]; + @override + final String wireName = 'OperatingSystems'; + + @override + Object serialize(Serializers serializers, OperatingSystems object, + {FullType specifiedType = FullType.unspecified}) => + _toWire[object.name] ?? object.name; + + @override + OperatingSystems deserialize(Serializers serializers, Object serialized, + {FullType specifiedType = FullType.unspecified}) => + OperatingSystems.valueOf( + _fromWire[serialized] ?? (serialized is String ? serialized : '')); +} + +// ignore_for_file: deprecated_member_use_from_same_package,type=lint diff --git a/KitX.Shared.Dart/kitx_shared_dart/lib/kitx_shared_dart.dart b/KitX.Shared.Dart/kitx_shared_dart/lib/kitx_shared_dart.dart index 6ce8722..e9fd95a 100644 --- a/KitX.Shared.Dart/kitx_shared_dart/lib/kitx_shared_dart.dart +++ b/KitX.Shared.Dart/kitx_shared_dart/lib/kitx_shared_dart.dart @@ -1,8 +1,7 @@ -/// Support for doing something awesome. -/// -/// More dartdocs go here. library; -export 'src/kitx_shared_dart_base.dart'; +export 'device/device_info.dart'; +export 'device/device_locator.dart'; +export 'device/operating_systems.dart'; -// TODO: Export any libraries intended for clients of this package. +export 'serializers.dart'; diff --git a/KitX.Shared.Dart/kitx_shared_dart/lib/serializers.dart b/KitX.Shared.Dart/kitx_shared_dart/lib/serializers.dart new file mode 100644 index 0000000..b0b540d --- /dev/null +++ b/KitX.Shared.Dart/kitx_shared_dart/lib/serializers.dart @@ -0,0 +1,30 @@ +library serializers; + +import 'package:built_value/iso_8601_date_time_serializer.dart'; +import 'package:built_value/serializer.dart'; +import 'package:built_value/standard_json_plugin.dart'; + +import 'device/device_info.dart'; +import 'device/device_locator.dart'; + +import 'device/operating_systems.dart'; + +part 'serializers.g.dart'; + +@SerializersFor([ + // Add the built values that require serialization + DeviceInfo, + DeviceLocator, + OperatingSystems +]) + +/// Can add additional plugins that will serialize types like [DateTime] +/// - It is also possible to write your own Serializer plugins for type that +/// are not supported by default. +/// - For Example: https://github.com/google/built_value.dart/issues/543 +/// implements [SerializerPlugin] and writes a serializer for Firebase +/// Datetime that converts TimeStamp or DateTime to integers. +final Serializers serializers = (_$serializers.toBuilder() + ..addPlugin(StandardJsonPlugin()) + ..add(Iso8601DateTimeSerializer())) + .build(); diff --git a/KitX.Shared.Dart/kitx_shared_dart/lib/serializers.g.dart b/KitX.Shared.Dart/kitx_shared_dart/lib/serializers.g.dart new file mode 100644 index 0000000..09dce71 --- /dev/null +++ b/KitX.Shared.Dart/kitx_shared_dart/lib/serializers.g.dart @@ -0,0 +1,15 @@ +// GENERATED CODE - DO NOT MODIFY BY HAND + +part of 'serializers.dart'; + +// ************************************************************************** +// BuiltValueGenerator +// ************************************************************************** + +Serializers _$serializers = (new Serializers().toBuilder() + ..add(DeviceInfo.serializer) + ..add(DeviceLocator.serializer) + ..add(OperatingSystems.serializer)) + .build(); + +// ignore_for_file: deprecated_member_use_from_same_package,type=lint diff --git a/KitX.Shared.Dart/kitx_shared_dart/lib/src/kitx_shared_dart_base.dart b/KitX.Shared.Dart/kitx_shared_dart/lib/src/kitx_shared_dart_base.dart deleted file mode 100644 index e8a6f15..0000000 --- a/KitX.Shared.Dart/kitx_shared_dart/lib/src/kitx_shared_dart_base.dart +++ /dev/null @@ -1,6 +0,0 @@ -// TODO: Put public facing types in this file. - -/// Checks if you are awesome. Spoiler: you are. -class Awesome { - bool get isAwesome => true; -} diff --git a/KitX.Shared.Dart/kitx_shared_dart/pubspec.yaml b/KitX.Shared.Dart/kitx_shared_dart/pubspec.yaml index d5a97b4..18c2f83 100644 --- a/KitX.Shared.Dart/kitx_shared_dart/pubspec.yaml +++ b/KitX.Shared.Dart/kitx_shared_dart/pubspec.yaml @@ -1,15 +1,19 @@ name: kitx_shared_dart description: A port of KitX.Shared in dart -version: 1.0.0 +version: 3.24.10+6829 repository: https://github.com/Crequency/KitX-Standard/KitX.Shared.Dart/ environment: sdk: ^3.3.0 -# Add regular dependencies here. dependencies: - # path: ^1.8.0 + built_collection: ^5.1.1 + built_value: ^8.8.1 dev_dependencies: lints: ^3.0.0 test: ^1.24.0 + # Run `dart run build_runner build` to generate `.g.dart` files. + # You can also execute `build_runner.ps1` with pwsh to run the command. + build_runner: ^2.4.8 + built_value_generator: ^8.8.1 diff --git a/KitX.Shared.Dart/kitx_shared_dart/test/kitx_shared_dart_test.dart b/KitX.Shared.Dart/kitx_shared_dart/test/kitx_shared_dart_test.dart index 665e293..2198df7 100644 --- a/KitX.Shared.Dart/kitx_shared_dart/test/kitx_shared_dart_test.dart +++ b/KitX.Shared.Dart/kitx_shared_dart/test/kitx_shared_dart_test.dart @@ -1,16 +1,16 @@ -import 'package:kitx_shared_dart/kitx_shared_dart.dart'; +// import 'package:kitx_shared_dart/kitx_shared_dart.dart'; import 'package:test/test.dart'; void main() { group('A group of tests', () { - final awesome = Awesome(); + // final awesome = Awesome(); setUp(() { // Additional setup goes here. }); test('First Test', () { - expect(awesome.isAwesome, isTrue); + // expect(awesome.isAwesome, isTrue); }); }); } From da761a109fb245cbb672ea76455bd2f989273575 Mon Sep 17 00:00:00 2001 From: Dynesshely Date: Sat, 17 Feb 2024 03:53:35 +0800 Subject: [PATCH 16/24] =?UTF-8?q?=F0=9F=A7=A9=20Refactor:=20Rename=20somet?= =?UTF-8?q?hing.?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- KitX.Shared/Device/DeviceInfo.cs | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/KitX.Shared/Device/DeviceInfo.cs b/KitX.Shared/Device/DeviceInfo.cs index 3c294b3..3b0e77c 100644 --- a/KitX.Shared/Device/DeviceInfo.cs +++ b/KitX.Shared/Device/DeviceInfo.cs @@ -8,7 +8,7 @@ public struct DeviceInfo public string DeviceOSVersion { get; set; } - public int PluginServerPort { get; set; } + public int PluginsServerPort { get; set; } public int PluginsCount { get; set; } @@ -18,7 +18,7 @@ public struct DeviceInfo public int DevicesServerPort { get; set; } - public DateTime DeviceServerBuildTime { get; set; } + public DateTime DevicesServerBuildTime { get; set; } public OperatingSystems DeviceOSType { get; set; } } From a1b978e7523342cc1f212af25b0a1356249e8063 Mon Sep 17 00:00:00 2001 From: Dynesshely Date: Sat, 17 Feb 2024 04:00:55 +0800 Subject: [PATCH 17/24] =?UTF-8?q?=F0=9F=92=BE=20Feat(Device):=20Changed=20?= =?UTF-8?q?`deviceMacAddress`=20->=20`macAddress`=20in=20`DeviceLocator`.?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../kitx_shared_dart/CHANGELOG.md | 4 +++ .../lib/device/device_locator.dart | 4 +-- .../lib/device/device_locator.g.dart | 31 +++++++++---------- .../kitx_shared_dart/pubspec.yaml | 2 +- .../kitx_shared_dart/update-version.py | 22 +++++++++---- 5 files changed, 38 insertions(+), 25 deletions(-) diff --git a/KitX.Shared.Dart/kitx_shared_dart/CHANGELOG.md b/KitX.Shared.Dart/kitx_shared_dart/CHANGELOG.md index f4684d6..d7c7931 100644 --- a/KitX.Shared.Dart/kitx_shared_dart/CHANGELOG.md +++ b/KitX.Shared.Dart/kitx_shared_dart/CHANGELOG.md @@ -1,3 +1,7 @@ +## 3.24.10+6829-patch-1 + +- Changed `deviceMacAddress` -> `macAddress` in `DeviceLocator`. + ## 3.24.10+6829 - Implemented json models under `device` folder with `built_values`. diff --git a/KitX.Shared.Dart/kitx_shared_dart/lib/device/device_locator.dart b/KitX.Shared.Dart/kitx_shared_dart/lib/device/device_locator.dart index dcaf60b..9e8f353 100644 --- a/KitX.Shared.Dart/kitx_shared_dart/lib/device/device_locator.dart +++ b/KitX.Shared.Dart/kitx_shared_dart/lib/device/device_locator.dart @@ -17,8 +17,8 @@ abstract class DeviceLocator implements Built { serializers.serialize(object.iPv4, specifiedType: const FullType(String)), 'IPv6', serializers.serialize(object.iPv6, specifiedType: const FullType(String)), - 'DeviceMacAddress', - serializers.serialize(object.deviceMacAddress, + 'MacAddress', + serializers.serialize(object.macAddress, specifiedType: const FullType(String)), ]; @@ -58,8 +58,8 @@ class _$DeviceLocatorSerializer implements StructuredSerializer { result.iPv6 = serializers.deserialize(value, specifiedType: const FullType(String))! as String; break; - case 'DeviceMacAddress': - result.deviceMacAddress = serializers.deserialize(value, + case 'MacAddress': + result.macAddress = serializers.deserialize(value, specifiedType: const FullType(String))! as String; break; } @@ -77,7 +77,7 @@ class _$DeviceLocator extends DeviceLocator { @override final String iPv6; @override - final String deviceMacAddress; + final String macAddress; factory _$DeviceLocator([void Function(DeviceLocatorBuilder)? updates]) => (new DeviceLocatorBuilder()..update(updates))._build(); @@ -86,14 +86,14 @@ class _$DeviceLocator extends DeviceLocator { {required this.deviceName, required this.iPv4, required this.iPv6, - required this.deviceMacAddress}) + required this.macAddress}) : super._() { BuiltValueNullFieldError.checkNotNull( deviceName, r'DeviceLocator', 'deviceName'); BuiltValueNullFieldError.checkNotNull(iPv4, r'DeviceLocator', 'iPv4'); BuiltValueNullFieldError.checkNotNull(iPv6, r'DeviceLocator', 'iPv6'); BuiltValueNullFieldError.checkNotNull( - deviceMacAddress, r'DeviceLocator', 'deviceMacAddress'); + macAddress, r'DeviceLocator', 'macAddress'); } @override @@ -110,7 +110,7 @@ class _$DeviceLocator extends DeviceLocator { deviceName == other.deviceName && iPv4 == other.iPv4 && iPv6 == other.iPv6 && - deviceMacAddress == other.deviceMacAddress; + macAddress == other.macAddress; } @override @@ -119,7 +119,7 @@ class _$DeviceLocator extends DeviceLocator { _$hash = $jc(_$hash, deviceName.hashCode); _$hash = $jc(_$hash, iPv4.hashCode); _$hash = $jc(_$hash, iPv6.hashCode); - _$hash = $jc(_$hash, deviceMacAddress.hashCode); + _$hash = $jc(_$hash, macAddress.hashCode); _$hash = $jf(_$hash); return _$hash; } @@ -141,10 +141,9 @@ class DeviceLocatorBuilder String? get iPv6 => _$this._iPv6; set iPv6(String? iPv6) => _$this._iPv6 = iPv6; - String? _deviceMacAddress; - String? get deviceMacAddress => _$this._deviceMacAddress; - set deviceMacAddress(String? deviceMacAddress) => - _$this._deviceMacAddress = deviceMacAddress; + String? _macAddress; + String? get macAddress => _$this._macAddress; + set macAddress(String? macAddress) => _$this._macAddress = macAddress; DeviceLocatorBuilder(); @@ -154,7 +153,7 @@ class DeviceLocatorBuilder _deviceName = $v.deviceName; _iPv4 = $v.iPv4; _iPv6 = $v.iPv6; - _deviceMacAddress = $v.deviceMacAddress; + _macAddress = $v.macAddress; _$v = null; } return this; @@ -183,8 +182,8 @@ class DeviceLocatorBuilder iPv4, r'DeviceLocator', 'iPv4'), iPv6: BuiltValueNullFieldError.checkNotNull( iPv6, r'DeviceLocator', 'iPv6'), - deviceMacAddress: BuiltValueNullFieldError.checkNotNull( - deviceMacAddress, r'DeviceLocator', 'deviceMacAddress')); + macAddress: BuiltValueNullFieldError.checkNotNull( + macAddress, r'DeviceLocator', 'macAddress')); replace(_$result); return _$result; } diff --git a/KitX.Shared.Dart/kitx_shared_dart/pubspec.yaml b/KitX.Shared.Dart/kitx_shared_dart/pubspec.yaml index 18c2f83..bbcf213 100644 --- a/KitX.Shared.Dart/kitx_shared_dart/pubspec.yaml +++ b/KitX.Shared.Dart/kitx_shared_dart/pubspec.yaml @@ -1,6 +1,6 @@ name: kitx_shared_dart description: A port of KitX.Shared in dart -version: 3.24.10+6829 +version: 3.24.10+6829-patch-1 repository: https://github.com/Crequency/KitX-Standard/KitX.Shared.Dart/ environment: diff --git a/KitX.Shared.Dart/kitx_shared_dart/update-version.py b/KitX.Shared.Dart/kitx_shared_dart/update-version.py index 62df64a..a01ef0a 100644 --- a/KitX.Shared.Dart/kitx_shared_dart/update-version.py +++ b/KitX.Shared.Dart/kitx_shared_dart/update-version.py @@ -18,16 +18,26 @@ def calculateLatestVersionBuildNumber(): def updateVersion(): ver = calculateLatestVersionBuildNumber() - pattern = re.compile(r"^version: \d+.\d+.\d+\+\d+$") + pattern = re.compile(r"^version: \d+.\d+.\d+\+\d+(-[a-zA-Z0-9-]+)$") temp_lines = [] with open(file_pubspec, "r") as file: for line in file: - new_line = pattern.sub( - "version: " + major_version + "+" + ver, - line - ) - temp_lines.append(new_line) + match = re.match(pattern, line); + if match: + append = match.group(1) + + if match.group(1) == None: + append = "" + + new_line = pattern.sub( + "version: " + major_version + "+" + ver + append, + line + ) + + temp_lines.append(new_line) + else: + temp_lines.append(line) with open(file_pubspec, "w") as file: file.writelines(temp_lines) From 430328719dd4ad6d71c3c9861872555cdc6ea369 Mon Sep 17 00:00:00 2001 From: Dynesshely Date: Mon, 19 Feb 2024 12:43:44 +0800 Subject: [PATCH 18/24] =?UTF-8?q?=F0=9F=92=BE=20Feat(Shared):=20Added=20`V?= =?UTF-8?q?alue`=20property=20to=20`Function`=20and=20`Parameter`.?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- KitX.Shared/Plugin/Function.cs | 2 ++ KitX.Shared/Plugin/Parameter.cs | 2 ++ 2 files changed, 4 insertions(+) diff --git a/KitX.Shared/Plugin/Function.cs b/KitX.Shared/Plugin/Function.cs index 64f7fa4..be75c35 100644 --- a/KitX.Shared/Plugin/Function.cs +++ b/KitX.Shared/Plugin/Function.cs @@ -10,6 +10,8 @@ public struct Function public List Parameters { get; set; } + public string ReturnValue { get; set; } + public string ReturnValueType { get; set; } public readonly bool IsVoidable => ReturnValueType.Equals("void"); diff --git a/KitX.Shared/Plugin/Parameter.cs b/KitX.Shared/Plugin/Parameter.cs index 54440af..ad641db 100644 --- a/KitX.Shared/Plugin/Parameter.cs +++ b/KitX.Shared/Plugin/Parameter.cs @@ -10,5 +10,7 @@ public struct Parameter public string Type { get; set; } + public string Value { get; set; } + public bool IsAppendable { get; set; } } From ee8d67d9d896fee0b4135667b31acdab6fd534b5 Mon Sep 17 00:00:00 2001 From: Dynesshely Date: Wed, 21 Feb 2024 05:22:51 +0800 Subject: [PATCH 19/24] =?UTF-8?q?=F0=9F=92=BE=20Feat(SDK,=20Standard):=20A?= =?UTF-8?q?dapt=20`Loader.CSharp`=20and=20`TestPlugin.WPF.Core`=20to=20lat?= =?UTF-8?q?est=20Contract.?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- KitX.Shared/WebCommand/Command.cs | 9 +++------ .../WebCommand/Details/PluginWorkingDetail.cs | 8 ++++++++ .../WebCommand/Infos/CommandRequestInfo.cs | 16 ++++++++++++++++ 3 files changed, 27 insertions(+), 6 deletions(-) create mode 100644 KitX.Shared/WebCommand/Details/PluginWorkingDetail.cs create mode 100644 KitX.Shared/WebCommand/Infos/CommandRequestInfo.cs diff --git a/KitX.Shared/WebCommand/Command.cs b/KitX.Shared/WebCommand/Command.cs index bcd7eb2..4090139 100644 --- a/KitX.Shared/WebCommand/Command.cs +++ b/KitX.Shared/WebCommand/Command.cs @@ -1,4 +1,5 @@ -using System; +using KitX.Shared.Plugin; +using System; using System.Collections.Generic; namespace KitX.Shared.WebCommand; @@ -7,15 +8,11 @@ public struct Command { public CommandType Type { get; set; } - public int CallId { get; set; } - - public int CallIdTTL { get; set; } - public DateTime SendTime { get; set; } public string Request { get; set; } - public List RequestArgs { get; set; } + public List RequestArgs { get; set; } public byte[] Body { get; set; } diff --git a/KitX.Shared/WebCommand/Details/PluginWorkingDetail.cs b/KitX.Shared/WebCommand/Details/PluginWorkingDetail.cs new file mode 100644 index 0000000..5063670 --- /dev/null +++ b/KitX.Shared/WebCommand/Details/PluginWorkingDetail.cs @@ -0,0 +1,8 @@ +namespace KitX.Shared.WebCommand.Details; + +public class PluginWorkingDetail +{ + public string? PluginSaveDirectory { get; set; } + + public string? PluginDataDirectory { get; set; } +} diff --git a/KitX.Shared/WebCommand/Infos/CommandRequestInfo.cs b/KitX.Shared/WebCommand/Infos/CommandRequestInfo.cs new file mode 100644 index 0000000..5aee0f0 --- /dev/null +++ b/KitX.Shared/WebCommand/Infos/CommandRequestInfo.cs @@ -0,0 +1,16 @@ +namespace KitX.Shared.WebCommand.Infos; + +public static class CommandRequestInfo +{ + public const string RegisterPlugin = "RegisterPlugin"; + + public const string RequestWorkingDetail = "RequestWorkingDetail"; + + public const string ReceiveWorkingDetail = "ReceiveWorkingDetail"; + + public const string ReportStatus = "ReportStatus"; + + public const string RequestCommand = "RequestCommand"; + + public const string ReceiveCommand = "ReceiveCommand"; +} From f6fe9d2ccb3bb0fbbfc240e4392bb3cb17e6fb89 Mon Sep 17 00:00:00 2001 From: Dynesshely Date: Wed, 21 Feb 2024 05:23:36 +0800 Subject: [PATCH 20/24] =?UTF-8?q?=F0=9F=92=BE=20Feat(SDK,=20Standard):=20A?= =?UTF-8?q?dapt=20`Loader.CSharp`=20and=20`TestPlugin.WPF.Core`=20to=20lat?= =?UTF-8?q?est=20Contract.?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- KitX Contracts | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/KitX Contracts b/KitX Contracts index 31fa2e8..84c9d32 160000 --- a/KitX Contracts +++ b/KitX Contracts @@ -1 +1 @@ -Subproject commit 31fa2e8e67427fbffa70704c77cfe95e2d80299a +Subproject commit 84c9d3217c064eff0da5dd9a039a94a9aac79f20 From 600d70613bbf4cb42465b0f550991588ecf11d69 Mon Sep 17 00:00:00 2001 From: Dynesshely Date: Wed, 21 Feb 2024 05:35:42 +0800 Subject: [PATCH 21/24] =?UTF-8?q?=F0=9F=93=9D=20Chore:=20Updated.?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- KitX.Shared/KitX.Shared.csproj | 27 ++++++++++++++++++++++++++- 1 file changed, 26 insertions(+), 1 deletion(-) diff --git a/KitX.Shared/KitX.Shared.csproj b/KitX.Shared/KitX.Shared.csproj index f655cd0..eb5d0c0 100644 --- a/KitX.Shared/KitX.Shared.csproj +++ b/KitX.Shared/KitX.Shared.csproj @@ -4,12 +4,37 @@ netstandard2.1 enable preview + True $(Version) $(Version) - 3.24.10.$([System.DateTime]::UtcNow.Date.Subtract($([System.DateTime]::Parse("2020-10-01"))).TotalDays) + 24.10.$([System.DateTime]::UtcNow.Date.Subtract($([System.DateTime]::Parse("2024-02-07"))).TotalDays).$([System.Math]::Floor($([System.DateTime]::UtcNow.TimeOfDay.TotalMinutes))) + + KitX.Shared + Dynesshely + Crequency + KitX Shared Components + AGPL-3.0-only + True + KitX-Background-ani.png + README.md + https://github.com/Crequency/KitX/ + https://github.com/Crequency/KitX-Standard/ + + + + + True + \ + + + True + \ + + + From a9134a44d352f5b10337b384c59fb5230c7d05a5 Mon Sep 17 00:00:00 2001 From: Dynesshely Date: Wed, 21 Feb 2024 05:36:07 +0800 Subject: [PATCH 22/24] =?UTF-8?q?=F0=9F=93=9D=20Chore(Submodules):=20Sync.?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- KitX Contracts | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/KitX Contracts b/KitX Contracts index 84c9d32..a85a7a7 160000 --- a/KitX Contracts +++ b/KitX Contracts @@ -1 +1 @@ -Subproject commit 84c9d3217c064eff0da5dd9a039a94a9aac79f20 +Subproject commit a85a7a7ff9f6f415b55d5f1cefac17b2144f4928 From d190b009e11673245054b9285237106b8f63183d Mon Sep 17 00:00:00 2001 From: Dynesshely Date: Sun, 25 Feb 2024 19:10:40 +0800 Subject: [PATCH 23/24] =?UTF-8?q?=F0=9F=92=BE=20Feat:=20The=20first=20time?= =?UTF-8?q?=20that=20dashboard=20invoke=20plugin=20function=20throw=20netw?= =?UTF-8?q?ork=20connection.?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- KitX.Shared/WebCommand/Command.cs | 8 +- KitX.Shared/WebCommand/Connector.cs | 39 ++++++ KitX.Shared/WebCommand/RequestBuilder.cs | 158 +++++++++++++++++++++++ 3 files changed, 201 insertions(+), 4 deletions(-) create mode 100644 KitX.Shared/WebCommand/Connector.cs create mode 100644 KitX.Shared/WebCommand/RequestBuilder.cs diff --git a/KitX.Shared/WebCommand/Command.cs b/KitX.Shared/WebCommand/Command.cs index 4090139..c165093 100644 --- a/KitX.Shared/WebCommand/Command.cs +++ b/KitX.Shared/WebCommand/Command.cs @@ -6,17 +6,17 @@ namespace KitX.Shared.WebCommand; public struct Command { - public CommandType Type { get; set; } - public DateTime SendTime { get; set; } public string Request { get; set; } - public List RequestArgs { get; set; } - public byte[] Body { get; set; } public int BodyLength { get; set; } + public string FunctionName { get; set; } + + public List FunctionArgs { get; set; } + public Dictionary Tags { get; set; } } diff --git a/KitX.Shared/WebCommand/Connector.cs b/KitX.Shared/WebCommand/Connector.cs new file mode 100644 index 0000000..1a2b97f --- /dev/null +++ b/KitX.Shared/WebCommand/Connector.cs @@ -0,0 +1,39 @@ +using System; + +namespace KitX.Shared.WebCommand; + +public class Connector +{ + private static Connector? _instance; + + public static Connector Instance => _instance ??= new Connector(); + + public Func? Serializer { get; set; } + + public Action? Sender { get; set; } + + public Connector SetSerializer(Func? func) + { + Serializer = func; + + return this; + } + + public Connector SetSender(Action? sender) + { + Sender = sender; + + return this; + } + + public RequestBuilder Request(string? commandRequest = null) + { + var builder = new RequestBuilder() + .SetSerializer(Serializer) + .SetSender(Sender) + .SetCommandRequest(commandRequest) + ; + + return builder; + } +} diff --git a/KitX.Shared/WebCommand/RequestBuilder.cs b/KitX.Shared/WebCommand/RequestBuilder.cs new file mode 100644 index 0000000..b9c8b0c --- /dev/null +++ b/KitX.Shared/WebCommand/RequestBuilder.cs @@ -0,0 +1,158 @@ +using KitX.Shared.WebCommand.Infos; +using System; + +namespace KitX.Shared.WebCommand; + +public class RequestBuilder +{ + private Request _request = new(); + + private Command _command = new(); + + private Func? _serializer; + + public Func? Serializer { set => _serializer = value; } + + public Action? Sender { get; set; } + + public RequestBuilder() + { + + } + + public RequestBuilder SetSerializer(Func? func) + { + Serializer = func; + + return this; + } + + public RequestBuilder SetSender(Action? sender) + { + Sender = sender; + + return this; + } + + public RequestBuilder SetCommandRequest(string? command) + { + _command.Request = command ?? string.Empty; + + return this; + } + + public RequestBuilder UpdateRequest(Func updater) + { + _request = updater.Invoke(_request); + + return this; + } + + public RequestBuilder UpdateCommand(Func updater) + { + _command = updater.Invoke(_command); + + return this; + } + + private Request Build() + { + _request.Content = _serializer?.Invoke(_command) ?? throw new ArgumentNullException(nameof(Serializer)); + + return _request; + } + + public RequestBuilder Send() + { + if (Sender is null) throw new ArgumentNullException(nameof(Sender)); + + _command.SendTime = DateTime.UtcNow; + + Sender?.Invoke(Build()); + + return this; + } +} + +public static class RequestBuilderExtensions +{ + public static RequestBuilder RegisterPlugin(this RequestBuilder builder, byte[] body, int length) + { + builder = builder.UpdateCommand(cmd => + { + cmd.Request = CommandRequestInfo.RegisterPlugin; + + cmd.Body = body; + + cmd.BodyLength = length; + + return cmd; + }); + + return builder; + } + + public static RequestBuilder RequestWorkingDetail(this RequestBuilder builder) + { + builder = builder.UpdateCommand(cmd => + { + cmd.Request = CommandRequestInfo.RequestWorkingDetail; + + return cmd; + }); + + return builder; + } + + public static RequestBuilder ReceiveWorkingDetail(this RequestBuilder builder, byte[] body, int length) + { + builder = builder.UpdateCommand(cmd => + { + cmd.Request = CommandRequestInfo.ReceiveWorkingDetail; + + cmd.Body = body; + + cmd.BodyLength = length; + + return cmd; + }); + + return builder; + } + + public static RequestBuilder ReportStatus(this RequestBuilder builder) + { + builder = builder.UpdateCommand(cmd => + { + cmd.Request = CommandRequestInfo.ReportStatus; + + return cmd; + }); + + return builder; + } + + public static RequestBuilder RequestCommand(this RequestBuilder builder) + { + builder = builder.UpdateCommand(cmd => + { + cmd.Request = CommandRequestInfo.RequestCommand; + + return cmd; + }); + + return builder; + } + + public static RequestBuilder ReceiveCommand(this RequestBuilder builder) + { + builder = builder.UpdateCommand(cmd => + { + cmd.Request = CommandRequestInfo.ReceiveCommand; + + return cmd; + }); + + return builder; + } +} From 91f4e9e02b576537f1a2c45a9467616b222c5049 Mon Sep 17 00:00:00 2001 From: Dynesshely Date: Sun, 25 Feb 2024 19:10:56 +0800 Subject: [PATCH 24/24] =?UTF-8?q?=F0=9F=93=9D=20Chore(Submodules):=20Sync.?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- KitX Contracts | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/KitX Contracts b/KitX Contracts index a85a7a7..b058b2b 160000 --- a/KitX Contracts +++ b/KitX Contracts @@ -1 +1 @@ -Subproject commit a85a7a7ff9f6f415b55d5f1cefac17b2144f4928 +Subproject commit b058b2b579f4297e37a13e9452450f2847ecc821