diff --git a/ClientApp/ClientApp.esproj b/ClientApp/ClientApp.esproj
index a83ea47b3df31d522561b8d9c6f107ab713dfdca..20856af10143b9786871340cba4b51cc12ac8dc6 100644
--- a/ClientApp/ClientApp.esproj
+++ b/ClientApp/ClientApp.esproj
@@ -4,10 +4,14 @@
.\
Jest
-
+
+
npm run build
$(MSBuildProjectDirectory)\dist
+
+
+
\ No newline at end of file
diff --git a/ClientApp/src/auto-imports.d.ts b/ClientApp/src/auto-imports.d.ts
new file mode 100644
index 0000000000000000000000000000000000000000..6258f03dadc2329fa38009e6a164becb7679c700
--- /dev/null
+++ b/ClientApp/src/auto-imports.d.ts
@@ -0,0 +1,74 @@
+// Generated by 'unplugin-auto-import'
+export {}
+declare global {
+ const EffectScope: typeof import('vue')['EffectScope']
+ const ElMessage: typeof import('element-plus/es')['ElMessage']
+ const acceptHMRUpdate: typeof import('pinia')['acceptHMRUpdate']
+ const computed: typeof import('vue')['computed']
+ const createApp: typeof import('vue')['createApp']
+ const createPinia: typeof import('pinia')['createPinia']
+ const customRef: typeof import('vue')['customRef']
+ const defineAsyncComponent: typeof import('vue')['defineAsyncComponent']
+ const defineComponent: typeof import('vue')['defineComponent']
+ const defineStore: typeof import('pinia')['defineStore']
+ const effectScope: typeof import('vue')['effectScope']
+ const getActivePinia: typeof import('pinia')['getActivePinia']
+ const getCurrentInstance: typeof import('vue')['getCurrentInstance']
+ const getCurrentScope: typeof import('vue')['getCurrentScope']
+ const h: typeof import('vue')['h']
+ const inject: typeof import('vue')['inject']
+ const isProxy: typeof import('vue')['isProxy']
+ const isReactive: typeof import('vue')['isReactive']
+ const isReadonly: typeof import('vue')['isReadonly']
+ const isRef: typeof import('vue')['isRef']
+ const mapActions: typeof import('pinia')['mapActions']
+ const mapGetters: typeof import('pinia')['mapGetters']
+ const mapState: typeof import('pinia')['mapState']
+ const mapStores: typeof import('pinia')['mapStores']
+ const mapWritableState: typeof import('pinia')['mapWritableState']
+ const markRaw: typeof import('vue')['markRaw']
+ const nextTick: typeof import('vue')['nextTick']
+ const onActivated: typeof import('vue')['onActivated']
+ const onBeforeMount: typeof import('vue')['onBeforeMount']
+ const onBeforeRouteLeave: typeof import('vue-router')['onBeforeRouteLeave']
+ const onBeforeRouteUpdate: typeof import('vue-router')['onBeforeRouteUpdate']
+ const onBeforeUnmount: typeof import('vue')['onBeforeUnmount']
+ const onBeforeUpdate: typeof import('vue')['onBeforeUpdate']
+ const onDeactivated: typeof import('vue')['onDeactivated']
+ const onErrorCaptured: typeof import('vue')['onErrorCaptured']
+ const onMounted: typeof import('vue')['onMounted']
+ const onRenderTracked: typeof import('vue')['onRenderTracked']
+ const onRenderTriggered: typeof import('vue')['onRenderTriggered']
+ const onScopeDispose: typeof import('vue')['onScopeDispose']
+ const onServerPrefetch: typeof import('vue')['onServerPrefetch']
+ const onUnmounted: typeof import('vue')['onUnmounted']
+ const onUpdated: typeof import('vue')['onUpdated']
+ const provide: typeof import('vue')['provide']
+ const reactive: typeof import('vue')['reactive']
+ const readonly: typeof import('vue')['readonly']
+ const ref: typeof import('vue')['ref']
+ const resolveComponent: typeof import('vue')['resolveComponent']
+ const resolveDirective: typeof import('vue')['resolveDirective']
+ const setActivePinia: typeof import('pinia')['setActivePinia']
+ const setMapStoreSuffix: typeof import('pinia')['setMapStoreSuffix']
+ const shallowReactive: typeof import('vue')['shallowReactive']
+ const shallowReadonly: typeof import('vue')['shallowReadonly']
+ const shallowRef: typeof import('vue')['shallowRef']
+ const storeToRefs: typeof import('pinia')['storeToRefs']
+ const toRaw: typeof import('vue')['toRaw']
+ const toRef: typeof import('vue')['toRef']
+ const toRefs: typeof import('vue')['toRefs']
+ const triggerRef: typeof import('vue')['triggerRef']
+ const unref: typeof import('vue')['unref']
+ const useAttrs: typeof import('vue')['useAttrs']
+ const useCssModule: typeof import('vue')['useCssModule']
+ const useCssVars: typeof import('vue')['useCssVars']
+ const useLink: typeof import('vue-router')['useLink']
+ const useRoute: typeof import('vue-router')['useRoute']
+ const useRouter: typeof import('vue-router')['useRouter']
+ const useSlots: typeof import('vue')['useSlots']
+ const watch: typeof import('vue')['watch']
+ const watchEffect: typeof import('vue')['watchEffect']
+ const watchPostEffect: typeof import('vue')['watchPostEffect']
+ const watchSyncEffect: typeof import('vue')['watchSyncEffect']
+}
diff --git a/ClientApp/src/components.d.ts b/ClientApp/src/components.d.ts
new file mode 100644
index 0000000000000000000000000000000000000000..1a4283a2ab1f039ed6f0d41179f9cbfbf06b3027
--- /dev/null
+++ b/ClientApp/src/components.d.ts
@@ -0,0 +1,81 @@
+// generated by unplugin-vue-components
+// We suggest you to commit this file into source control
+// Read more: https://github.com/vuejs/core/pull/3399
+import '@vue/runtime-core'
+
+export {}
+
+declare module '@vue/runtime-core' {
+ export interface GlobalComponents {
+ AdvancedKeyValue: typeof import('./components/AdvancedKeyValue/AdvancedKeyValue.vue')['default']
+ AppLogo: typeof import('./components/AppLogo.vue')['default']
+ Auth: typeof import('./components/auth/auth.vue')['default']
+ AuthAll: typeof import('./components/auth/authAll.vue')['default']
+ Auths: typeof import('./components/auth/auths.vue')['default']
+ Card: typeof import('./components/card/index.vue')['default']
+ Cropper: typeof import('./components/cropper/index.vue')['default']
+ Editor: typeof import('./components/editor/index.vue')['default']
+ ElAlert: typeof import('element-plus/es')['ElAlert']
+ ElAside: typeof import('element-plus/es')['ElAside']
+ ElAutocomplete: typeof import('element-plus/es')['ElAutocomplete']
+ ElBacktop: typeof import('element-plus/es')['ElBacktop']
+ ElBadge: typeof import('element-plus/es')['ElBadge']
+ ElBreadcrumb: typeof import('element-plus/es')['ElBreadcrumb']
+ ElBreadcrumbItem: typeof import('element-plus/es')['ElBreadcrumbItem']
+ ElButton: typeof import('element-plus/es')['ElButton']
+ ElCard: typeof import('element-plus/es')['ElCard']
+ ElCheckbox: typeof import('element-plus/es')['ElCheckbox']
+ ElCheckboxGroup: typeof import('element-plus/es')['ElCheckboxGroup']
+ ElCol: typeof import('element-plus/es')['ElCol']
+ ElColorPicker: typeof import('element-plus/es')['ElColorPicker']
+ ElConfigProvider: typeof import('element-plus/es')['ElConfigProvider']
+ ElContainer: typeof import('element-plus/es')['ElContainer']
+ ElDatePicker: typeof import('element-plus/es')['ElDatePicker']
+ ElDescriptions: typeof import('element-plus/es')['ElDescriptions']
+ ElDescriptionsItem: typeof import('element-plus/es')['ElDescriptionsItem']
+ ElDialog: typeof import('element-plus/es')['ElDialog']
+ ElDivider: typeof import('element-plus/es')['ElDivider']
+ ElDrawer: typeof import('element-plus/es')['ElDrawer']
+ ElDropdown: typeof import('element-plus/es')['ElDropdown']
+ ElDropdownItem: typeof import('element-plus/es')['ElDropdownItem']
+ ElDropdownMenu: typeof import('element-plus/es')['ElDropdownMenu']
+ ElEmpty: typeof import('element-plus/es')['ElEmpty']
+ ElForm: typeof import('element-plus/es')['ElForm']
+ ElFormItem: typeof import('element-plus/es')['ElFormItem']
+ ElHeader: typeof import('element-plus/es')['ElHeader']
+ ElIcon: typeof import('element-plus/es')['ElIcon']
+ ElInput: typeof import('element-plus/es')['ElInput']
+ ElInputNumber: typeof import('element-plus/es')['ElInputNumber']
+ ElLink: typeof import('element-plus/es')['ElLink']
+ ElMain: typeof import('element-plus/es')['ElMain']
+ ElMenu: typeof import('element-plus/es')['ElMenu']
+ ElMenuItem: typeof import('element-plus/es')['ElMenuItem']
+ ElOption: typeof import('element-plus/es')['ElOption']
+ ElPagination: typeof import('element-plus/es')['ElPagination']
+ ElPopover: typeof import('element-plus/es')['ElPopover']
+ ElRadioButton: typeof import('element-plus/es')['ElRadioButton']
+ ElRadioGroup: typeof import('element-plus/es')['ElRadioGroup']
+ ElRow: typeof import('element-plus/es')['ElRow']
+ ElScrollbar: typeof import('element-plus/es')['ElScrollbar']
+ ElSelect: typeof import('element-plus/es')['ElSelect']
+ ElSubMenu: typeof import('element-plus/es')['ElSubMenu']
+ ElSwitch: typeof import('element-plus/es')['ElSwitch']
+ ElTable: typeof import('element-plus/es')['ElTable']
+ ElTableColumn: typeof import('element-plus/es')['ElTableColumn']
+ ElTabPane: typeof import('element-plus/es')['ElTabPane']
+ ElTabs: typeof import('element-plus/es')['ElTabs']
+ ElTag: typeof import('element-plus/es')['ElTag']
+ ElTimePicker: typeof import('element-plus/es')['ElTimePicker']
+ IconSelector: typeof import('./components/iconSelector/index.vue')['default']
+ Monaco: typeof import('./components/monaco/monaco.vue')['default']
+ NoticeBar: typeof import('./components/noticeBar/index.vue')['default']
+ RouterLink: typeof import('vue-router')['RouterLink']
+ RouterView: typeof import('vue-router')['RouterView']
+ SvgIcon: typeof import('./components/svgIcon/index.vue')['default']
+ ZSelect: typeof import('./components/AdvancedKeyValue/z-select.vue')['default']
+ ZSwitch: typeof import('./components/AdvancedKeyValue/z-switch.vue')['default']
+ }
+ export interface ComponentCustomProperties {
+ vLoading: typeof import('element-plus/es')['ElLoadingDirective']
+ }
+}
diff --git a/IoTSharp.Data.Storage/IoTSharp.Data.MySQL/IoTSharp.Data.MySQL.csproj b/IoTSharp.Data.Storage/IoTSharp.Data.MySQL/IoTSharp.Data.MySQL.csproj
index e16bd26fe09993eff2a045432fa4f17fd7b97ee2..f9e48cc21388b10301efe746fca67f31685cac10 100644
--- a/IoTSharp.Data.Storage/IoTSharp.Data.MySQL/IoTSharp.Data.MySQL.csproj
+++ b/IoTSharp.Data.Storage/IoTSharp.Data.MySQL/IoTSharp.Data.MySQL.csproj
@@ -8,7 +8,7 @@
-
+
diff --git a/IoTSharp.Data.Storage/IoTSharp.Data.SqlServer/IoTSharp.Data.SqlServer.csproj b/IoTSharp.Data.Storage/IoTSharp.Data.SqlServer/IoTSharp.Data.SqlServer.csproj
index c7b43c209df4dfc6bc110a0ffe576232fea93251..a750c41fad7afc3369997e77684cfcb9fe26fa1b 100644
--- a/IoTSharp.Data.Storage/IoTSharp.Data.SqlServer/IoTSharp.Data.SqlServer.csproj
+++ b/IoTSharp.Data.Storage/IoTSharp.Data.SqlServer/IoTSharp.Data.SqlServer.csproj
@@ -7,7 +7,7 @@
-
+
diff --git a/IoTSharp.Data.Storage/IoTSharp.Data.Sqlite/IoTSharp.Data.Sqlite.csproj b/IoTSharp.Data.Storage/IoTSharp.Data.Sqlite/IoTSharp.Data.Sqlite.csproj
index 19bd557c2af6a808d0bbb8ef9c332546c32ad549..5dc4dd4362317ab442be3b50b294e01a4f9a3304 100644
--- a/IoTSharp.Data.Storage/IoTSharp.Data.Sqlite/IoTSharp.Data.Sqlite.csproj
+++ b/IoTSharp.Data.Storage/IoTSharp.Data.Sqlite/IoTSharp.Data.Sqlite.csproj
@@ -7,7 +7,7 @@
-
+
diff --git a/IoTSharp.Data/IoTSharp.Data.csproj b/IoTSharp.Data/IoTSharp.Data.csproj
index 2da87815b47b255014ef29200a30a96e797f2d2a..080bc5054be53278d7ccf0434ea7271617cb2aa7 100644
--- a/IoTSharp.Data/IoTSharp.Data.csproj
+++ b/IoTSharp.Data/IoTSharp.Data.csproj
@@ -6,19 +6,19 @@
-
-
-
-
-
-
+
+
+
+
+
+
all
runtime; build; native; contentfiles; analyzers; buildtransitive
-
-
+
+
-
+
diff --git a/IoTSharp.EventBus.CAP/IoTSharp.EventBus.CAP.csproj b/IoTSharp.EventBus.CAP/IoTSharp.EventBus.CAP.csproj
index 488f25f89c9fab102f9c4b774c200a8d0234f64e..234c47f69ce08db9d6c045ac8928a84ac901cdde 100644
--- a/IoTSharp.EventBus.CAP/IoTSharp.EventBus.CAP.csproj
+++ b/IoTSharp.EventBus.CAP/IoTSharp.EventBus.CAP.csproj
@@ -8,19 +8,19 @@
-
-
-
-
-
-
-
-
-
-
-
-
-
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/IoTSharp.Extensions.AspNetCore/IoTSharp.Extensions.AspNetCore.csproj b/IoTSharp.Extensions.AspNetCore/IoTSharp.Extensions.AspNetCore.csproj
index 7d37daf2da16d8d57e2873ab563cd0ae5e24e2c2..d6264a76340b0514e215ab395e61fa34e4fbdb11 100644
--- a/IoTSharp.Extensions.AspNetCore/IoTSharp.Extensions.AspNetCore.csproj
+++ b/IoTSharp.Extensions.AspNetCore/IoTSharp.Extensions.AspNetCore.csproj
@@ -12,7 +12,7 @@
-
+
diff --git a/IoTSharp.Extensions.DependencyInjection/IoTSharp.Extensions.DependencyInjection.csproj b/IoTSharp.Extensions.DependencyInjection/IoTSharp.Extensions.DependencyInjection.csproj
index 4757b2e7c30613b52859790b0e48cdc3631e36e8..8cf08c556d1c4e8ca033a50852e9aac39d0d114b 100644
--- a/IoTSharp.Extensions.DependencyInjection/IoTSharp.Extensions.DependencyInjection.csproj
+++ b/IoTSharp.Extensions.DependencyInjection/IoTSharp.Extensions.DependencyInjection.csproj
@@ -12,7 +12,7 @@
-
+
diff --git a/IoTSharp.Extensions.EFCore/IoTSharp.Extensions.EFCore.csproj b/IoTSharp.Extensions.EFCore/IoTSharp.Extensions.EFCore.csproj
index c435ecdf8bdb7e00ecd96ac41db83d4f61889333..42d9a3e4bbf4e6c9590930efe3a45169b3a944eb 100644
--- a/IoTSharp.Extensions.EFCore/IoTSharp.Extensions.EFCore.csproj
+++ b/IoTSharp.Extensions.EFCore/IoTSharp.Extensions.EFCore.csproj
@@ -10,8 +10,8 @@
-
-
+
+
diff --git a/IoTSharp.Extensions.QuartzJobScheduler/IoTSharp.Extensions.QuartzJobScheduler.csproj b/IoTSharp.Extensions.QuartzJobScheduler/IoTSharp.Extensions.QuartzJobScheduler.csproj
index 37caf8475e7e7fecf22728a4720a545b762897ae..317f80c5974d3b346b797ce7c4324339316fddba 100644
--- a/IoTSharp.Extensions.QuartzJobScheduler/IoTSharp.Extensions.QuartzJobScheduler.csproj
+++ b/IoTSharp.Extensions.QuartzJobScheduler/IoTSharp.Extensions.QuartzJobScheduler.csproj
@@ -15,7 +15,7 @@
-
+
diff --git a/IoTSharp.Interpreter/IoTSharp.Interpreter.csproj b/IoTSharp.Interpreter/IoTSharp.Interpreter.csproj
index f61e7e49857aad80e5d5cb904764213da5532193..e151d11ebfe3a549274d2f378839d99eeb4db75b 100644
--- a/IoTSharp.Interpreter/IoTSharp.Interpreter.csproj
+++ b/IoTSharp.Interpreter/IoTSharp.Interpreter.csproj
@@ -4,13 +4,13 @@
net7.0
-
-
+
+
-
+
diff --git a/IoTSharp.SDKs/IoTSharp.Sdk.MQTT/IoTSharp.Sdk.MQTT.csproj b/IoTSharp.SDKs/IoTSharp.Sdk.MQTT/IoTSharp.Sdk.MQTT.csproj
index bc0fd1dae6a16be6b583f426cf3118222eaac73f..a557436c2bf9ad96cb3cdc799a5430fb5067cb3f 100644
--- a/IoTSharp.SDKs/IoTSharp.Sdk.MQTT/IoTSharp.Sdk.MQTT.csproj
+++ b/IoTSharp.SDKs/IoTSharp.Sdk.MQTT/IoTSharp.Sdk.MQTT.csproj
@@ -19,7 +19,7 @@
-
+
diff --git a/IoTSharp.Test/IoTSharp.Test.csproj b/IoTSharp.Test/IoTSharp.Test.csproj
index 962afc88572b3dad749ab1b4ea77c8c6d5b6371d..25c0fc9c8846e18c7f998329c49e9037adb496c9 100644
--- a/IoTSharp.Test/IoTSharp.Test.csproj
+++ b/IoTSharp.Test/IoTSharp.Test.csproj
@@ -7,9 +7,9 @@
-
-
-
+
+
+
diff --git a/IoTSharp.sln b/IoTSharp.sln
index 97586dec3c45824482770f0b8d422503eb977b80..493347b7c32f586dbc421b347140c9e717fd9a95 100644
--- a/IoTSharp.sln
+++ b/IoTSharp.sln
@@ -7,6 +7,7 @@ Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "1.Solution Items", "1.Solut
ProjectSection(SolutionItems) = preProject
.editorconfig = .editorconfig
appveyor.yml = appveyor.yml
+ BACKERS.md = BACKERS.md
buildimage.cmd = buildimage.cmd
buildimageqhse.cmd = buildimageqhse.cmd
buildimageuixe.cmd = buildimageuixe.cmd
diff --git a/IoTSharp/Extensions/MqttExtension.cs b/IoTSharp/Extensions/MqttExtension.cs
index 917979511e54bec1867fef54d660989e86bd5297..e1227afcf20ba595975cfc3af60d37dc502bd9cf 100644
--- a/IoTSharp/Extensions/MqttExtension.cs
+++ b/IoTSharp/Extensions/MqttExtension.cs
@@ -96,9 +96,9 @@ namespace IoTSharp
public static void UseIotSharpMqttServer(this IApplicationBuilder app)
{
var mqttEvents = app.ApplicationServices.CreateScope().ServiceProvider.GetService();
+ app.UseAttributeRouting(true);
app.UseMqttServer(server =>
{
- server.WithAttributeRouting(app.ApplicationServices, true);
server.ClientConnectedAsync += mqttEvents.Server_ClientConnectedAsync;
server.StartedAsync += mqttEvents.Server_Started;
server.StoppedAsync += mqttEvents.Server_Stopped;
diff --git a/IoTSharp/IoTSharp.csproj b/IoTSharp/IoTSharp.csproj
index 91c7dbcd381006cc18cef36b2019d9bc49e29312..347893370993bc0677383ef94daf218ee17ad744 100644
--- a/IoTSharp/IoTSharp.csproj
+++ b/IoTSharp/IoTSharp.csproj
@@ -1,4 +1,4 @@
-
+
net7.0
true
@@ -61,32 +61,32 @@
-
-
-
+
+
+
all
runtime; build; native; contentfiles; analyzers; buildtransitive
-
+
-
+
-
+
-
+
true
-
-
-
-
+
+
+
+
diff --git a/IoTSharp/Startup.cs b/IoTSharp/Startup.cs
index 12639e0832d38b71d549107a4f2e53032dcaf37e..a60593676a9f83ac0e23482dbc19a432ff20b3e2 100644
--- a/IoTSharp/Startup.cs
+++ b/IoTSharp/Startup.cs
@@ -29,12 +29,12 @@ using IoTSharp.Contracts;
using IoTSharp.EventBus.CAP;
using IoTSharp.EventBus.Shashlik;
using Microsoft.EntityFrameworkCore;
-using ShardingCore;
using Storage.Net;
using IoTSharp.Data.TimeSeries;
using IoTSharp.Data.Extensions;
using Quartz;
using IoTSharp.Services;
+using Quartz.AspNetCore;
namespace IoTSharp
{