Просмотр исходного кода

SVI Переделка на новую архитектуру

SVI 1 год назад
Родитель
Сommit
dbf36cfd25
100 измененных файлов с 264 добавлено и 254 удалено
  1. 5 18
      Makefile
  2. BIN
      cmd/server/__debug_bin951975477
  3. 1 1
      cmd/server/main.go
  4. 0 4
      debug.sh
  5. 0 16
      dev.cmd
  6. 7 6
      go.mod
  7. 12 11
      go.sum
  8. 6 6
      pkg/arena/arena.go
  9. 13 11
      pkg/arena/arena_context/arena_context.go
  10. 2 2
      pkg/arena/arena_context/arena_state/arena_state.go
  11. 1 1
      pkg/arena/arena_string/arena_string.go
  12. 8 8
      pkg/arena/down_time/down_time.go
  13. 4 4
      pkg/arena/down_time/down_time_test.go
  14. 10 8
      pkg/components/arena_net/arena_net.go
  15. 8 6
      pkg/components/arena_net/http_worker/http_worker.go
  16. 10 9
      pkg/components/arena_net/http_worker/net_stat/net_stat.go
  17. 8 6
      pkg/components/arena_net/scene_web_worker/scene_web_worker.go
  18. 0 1
      pkg/components/kernel/store/CURRENT
  19. 0 1
      pkg/components/kernel/store/CURRENT.bak
  20. 0 19
      pkg/components/kernel/store/LOG
  21. BIN
      pkg/components/kernel/store/MANIFEST-000003
  22. 2 2
      pkg/components/product/parser_time/parse_hour/parse_hour.go
  23. 7 6
      pkg/components/product/parser_time/parse_min/parse_min.go
  24. 2 2
      pkg/components/product/parser_time/parse_sec/parse_sec.go
  25. 10 9
      pkg/components/product/parser_time/parser_time.go
  26. 6 6
      pkg/components/product/product.go
  27. 3 3
      pkg/components/web_log/web_log.go
  28. 10 9
      pkg/components/wrag/wrag.go
  29. 4 4
      pkg/kernel/keeper/keeper.go
  30. 4 3
      pkg/kernel/keeper/keeper_test.go
  31. 11 11
      pkg/kernel/kernel.go
  32. 2 2
      pkg/kernel/kernel_test.go
  33. 1 1
      pkg/kernel/kernel_types/ikernel.go
  34. 1 1
      pkg/kernel/kernel_types/ikernel_log.go
  35. 2 2
      pkg/kernel/kernel_types/ikernel_store.go
  36. 3 2
      pkg/kernel/logger/logger.go
  37. 0 0
      pkg/kernel/safe_bool/safe_bool.go
  38. 0 0
      pkg/kernel/safe_bool/safe_bool_test.go
  39. 2 2
      pkg/kernel/safe_int/safe_int.go
  40. 0 0
      pkg/kernel/safe_int/safe_int_test.go
  41. 0 0
      pkg/kernel/safe_string/safe_string.go
  42. 0 0
      pkg/kernel/safe_string/safe_string_test.go
  43. 8 7
      pkg/kernel/slog/slog.go
  44. 6 6
      pkg/kernel/slog/slog_file/slog_file.go
  45. 4 4
      pkg/kernel/slog/slog_file/slog_file_test.go
  46. 0 0
      pkg/kernel/slog/slog_term/slog_term.go
  47. 0 0
      pkg/kernel/slog/slog_term/slog_term_test.go
  48. 2 2
      pkg/kernel/slog/slog_test.go
  49. 0 0
      pkg/kernel/store/000006.log
  50. 1 0
      pkg/kernel/store/CURRENT
  51. 1 0
      pkg/kernel/store/CURRENT.bak
  52. 0 0
      pkg/kernel/store/LOCK
  53. 41 0
      pkg/kernel/store/LOG
  54. BIN
      pkg/kernel/store/MANIFEST-000007
  55. 8 7
      pkg/kernel/store/store.go
  56. 1 1
      pkg/kernel/wgname/wgname.go
  57. 0 0
      pkg/kernel/wgname/wgname_test.go
  58. 12 10
      pkg/mock/mockapp/mockapp.go
  59. 7 7
      pkg/mock/mockkernel/mockkernel.go
  60. 3 3
      pkg/mock/mockkernel/mockkernel_test.go
  61. 0 0
      server/lev0/types/iangar.go
  62. 0 0
      server/lev0/types/iarena.go
  63. 0 0
      server/lev0/types/iarena_bank.go
  64. 0 0
      server/lev0/types/iarena_bank_mode.go
  65. 1 1
      server/lev0/types/iarena_ctx.go
  66. 0 0
      server/lev0/types/iarena_net.go
  67. 0 0
      server/lev0/types/iarena_state.go
  68. 0 0
      server/lev0/types/iarsenal.go
  69. 0 0
      server/lev0/types/ibase.go
  70. 0 0
      server/lev0/types/ibase_basic.go
  71. 0 0
      server/lev0/types/ibase_fuel.go
  72. 0 0
      server/lev0/types/ibase_mine.go
  73. 0 0
      server/lev0/types/ibase_polygon.go
  74. 0 0
      server/lev0/types/ibattle_action.go
  75. 0 0
      server/lev0/types/ibattle_scene.go
  76. 1 1
      server/lev0/types/ibot.go
  77. 0 0
      server/lev0/types/ibot_cookie.go
  78. 1 1
      server/lev0/types/ibot_net.go
  79. 0 0
      server/lev0/types/iconvoy.go
  80. 0 0
      server/lev0/types/icounttime.go
  81. 0 0
      server/lev0/types/idesktop.go
  82. 0 0
      server/lev0/types/idict_bot.go
  83. 2 1
      server/lev0/types/idiv_war_action.go
  84. 0 0
      server/lev0/types/idiv_war_scene.go
  85. 0 0
      server/lev0/types/ihttp_worker.go
  86. 0 0
      server/lev0/types/iis_shot.go
  87. 0 0
      server/lev0/types/imarket.go
  88. 0 0
      server/lev0/types/imissions.go
  89. 0 0
      server/lev0/types/inet_client.go
  90. 0 0
      server/lev0/types/inetangar.go
  91. 0 0
      server/lev0/types/inetbase.go
  92. 0 0
      server/lev0/types/inetmarket.go
  93. 0 0
      server/lev0/types/iparser_hour.go
  94. 0 0
      server/lev0/types/iparser_min.go
  95. 0 0
      server/lev0/types/iparser_sec.go
  96. 0 0
      server/lev0/types/iparser_simple.go
  97. 0 0
      server/lev0/types/iparser_time.go
  98. 0 0
      server/lev0/types/ipassword.go
  99. 0 0
      server/lev0/types/ireset.go
  100. 0 0
      server/lev0/types/isafe_string.go

+ 5 - 18
Makefile

@@ -22,7 +22,7 @@ prod2:
 	go build -ldflags "-X main.GoVersion=${GO_VERS} -X main.Version=${TAG} -X main.Date=${BUILD_DATE}" -o ./bin2/server2 ./cmd/server/main.go
 	strip -s ./bin2/server2
 	upx -f ./bin2/server2
-dev.run:
+dev:
 	clear
 	rm -rdf ./bin_dev
 	mkdir -p ./bin_dev/web/static
@@ -32,26 +32,13 @@ dev.run:
 	# go build -race -o ./bin_dev/wartank_dev ./cmd/server/main.go
 	go build -ldflags "-w -s -X main.GoVersion=$(GO_VERS) -X main.Version=${TAG} -X main.Date=${BUILD_DATE}" -o ./bin_dev/wartank_dev ./cmd/server/main.go
 	./run_dev.sh
-debug.run:
-	clear
-	cp -r ./web ./bin_dev
-	go fmt ./...
-	# go build -race -o ./bin_dev/wartank_dev ./cmd/server/main.go
-	go build -ldflags "-w -s -X main.GoVersion=$(GO_VERS) -X main.Version=${TAG} -X main.Date=${BUILD_DATE}" -o ./bin_dev/wartank_dev ./cmd/server/main.go
-	./debug.sh
-cogent.run:
-	clear
-	cp -r ./web ./bin_dev
-	go fmt ./...
-	# go build -race -o ./bin_dev/wartank_dev ./cmd/desc_core/main.go
-	go build -ldflags "-w -s -X main.GoVersion=$(GO_VERS) -X main.Version=${TAG} -X main.Date=${BUILD_DATE}" -o ./bin_dev/wartank_dev ./cmd/desc_core/main.go
-	./debug.sh
-prod.run:
+prod:
 	clear
 	go fmt ./...
 	go build -o ./bin/wartank ./cmd/server/main.go
 	./run_prod.sh
-test.run:
+.PHONY: test
+test:
 	clear
 	go fmt ./...
 	go test -shuffle=on -vet=all -race -timeout 30s -coverprofile cover.out ./...
@@ -59,7 +46,7 @@ test.run:
 mod:
 	clear
 	go get -u ./...
-	go mod tidy -compat=1.23.4
+	go mod tidy -compat=1.23.6
 	go mod vendor
 	go fmt ./...
 lint:

BIN
cmd/server/__debug_bin951975477


+ 1 - 1
cmd/server/main.go

@@ -13,7 +13,7 @@ import (
 	_ "net/http/pprof"
 	"os"
 	"time"
-	"wartank/pkg/components/kernel/logger"
+	"wartank/pkg/kernel/logger"
 	"wartank/server"
 )
 

+ 0 - 4
debug.sh

@@ -1,4 +0,0 @@
-export STAGE="local"
-
-cd ./bin_dev
-./wartank_dev

+ 0 - 16
dev.cmd

@@ -1,16 +0,0 @@
-cls
-rm -rdf bin_dev
-mkdir -p bin_dev\web\static
-mkdir -p bin_dev\web\tmpl
-cp -r web bin_dev
-go fmt ./...
-go build -race -o bin_dev\wartank_dev.exe cmd\server\main.go
-
-
-
-set STAGE="local"
-
-
-cd bin_dev
-wartank_dev.exe
-cd ..

+ 7 - 6
go.mod

@@ -1,9 +1,9 @@
 module wartank
 
-go 1.23.4
+go 1.23.6
 
 require (
-	github.com/charmbracelet/bubbletea v1.2.4
+	github.com/charmbracelet/bubbletea v1.3.3
 	github.com/gofiber/fiber/v2 v2.52.6
 	github.com/gofiber/template/html/v2 v2.1.3
 	github.com/sirupsen/logrus v1.9.3
@@ -14,7 +14,7 @@ require (
 	github.com/andybalholm/brotli v1.1.1 // indirect
 	github.com/aymanbagabas/go-osc52/v2 v2.0.1 // indirect
 	github.com/charmbracelet/lipgloss v1.0.0 // indirect
-	github.com/charmbracelet/x/ansi v0.6.0 // indirect
+	github.com/charmbracelet/x/ansi v0.8.0 // indirect
 	github.com/charmbracelet/x/term v0.2.1 // indirect
 	github.com/davecgh/go-spew v1.1.2-0.20180830191138-d8f796af33cc // indirect
 	github.com/erikgeiser/coninput v0.0.0-20211004153227-1c3628e74d0f // indirect
@@ -37,7 +37,8 @@ require (
 	github.com/valyala/fasthttp v1.58.0 // indirect
 	github.com/valyala/tcplisten v1.0.0 // indirect
 	golang.org/x/net v0.34.0 // indirect
-	golang.org/x/sync v0.10.0 // indirect
-	golang.org/x/sys v0.29.0 // indirect
-	golang.org/x/text v0.21.0 // indirect
+	golang.org/x/sync v0.11.0 // indirect
+	golang.org/x/sys v0.30.0 // indirect
+	golang.org/x/text v0.22.0 // indirect
+	gopkg.in/yaml.v2 v2.2.2 // indirect
 )

+ 12 - 11
go.sum

@@ -2,12 +2,12 @@ github.com/andybalholm/brotli v1.1.1 h1:PR2pgnyFznKEugtsUo0xLdDop5SKXd5Qf5ysW+7X
 github.com/andybalholm/brotli v1.1.1/go.mod h1:05ib4cKhjx3OQYUY22hTVd34Bc8upXjOLL2rKwwZBoA=
 github.com/aymanbagabas/go-osc52/v2 v2.0.1 h1:HwpRHbFMcZLEVr42D4p7XBqjyuxQH5SMiErDT4WkJ2k=
 github.com/aymanbagabas/go-osc52/v2 v2.0.1/go.mod h1:uYgXzlJ7ZpABp8OJ+exZzJJhRNQ2ASbcXHWsFqH8hp8=
-github.com/charmbracelet/bubbletea v1.2.4 h1:KN8aCViA0eps9SCOThb2/XPIlea3ANJLUkv3KnQRNCE=
-github.com/charmbracelet/bubbletea v1.2.4/go.mod h1:Qr6fVQw+wX7JkWWkVyXYk/ZUQ92a6XNekLXa3rR18MM=
+github.com/charmbracelet/bubbletea v1.3.3 h1:WpU6fCY0J2vDWM3zfS3vIDi/ULq3SYphZhkAGGvmEUY=
+github.com/charmbracelet/bubbletea v1.3.3/go.mod h1:dtcUCyCGEX3g9tosuYiut3MXgY/Jsv9nKVdibKKRRXo=
 github.com/charmbracelet/lipgloss v1.0.0 h1:O7VkGDvqEdGi93X+DeqsQ7PKHDgtQfF8j8/O2qFMQNg=
 github.com/charmbracelet/lipgloss v1.0.0/go.mod h1:U5fy9Z+C38obMs+T+tJqst9VGzlOYGj4ri9reL3qUlo=
-github.com/charmbracelet/x/ansi v0.6.0 h1:qOznutrb93gx9oMiGf7caF7bqqubh6YIM0SWKyA08pA=
-github.com/charmbracelet/x/ansi v0.6.0/go.mod h1:KBUFw1la39nl0dLl10l5ORDAqGXaeurTQmwyyVKse/Q=
+github.com/charmbracelet/x/ansi v0.8.0 h1:9GTq3xq9caJW8ZrBTe0LIe2fvfLR/bYXKTx2llXn7xE=
+github.com/charmbracelet/x/ansi v0.8.0/go.mod h1:wdYl/ONOLHLIVmQaxbIYEC/cRKOQyjTkowiI4blgS9Q=
 github.com/charmbracelet/x/term v0.2.1 h1:AQeHeLZ1OqSXhrAWpYUtZyX1T3zVxfpZuEQMIQaGIAQ=
 github.com/charmbracelet/x/term v0.2.1/go.mod h1:oQ4enTYFV7QN4m0i9mzHrViD7TQKvNEEkHUMCmsxdUg=
 github.com/davecgh/go-spew v1.1.0/go.mod h1:J7Y8YcW2NihsgmVo/mv3lAwl/skON4iLHjSsI+c5H38=
@@ -82,24 +82,25 @@ golang.org/x/net v0.0.0-20180906233101-161cd47e91fd/go.mod h1:mL1N/T3taQHkDXs73r
 golang.org/x/net v0.34.0 h1:Mb7Mrk043xzHgnRM88suvJFwzVrRfHEHJEl5/71CKw0=
 golang.org/x/net v0.34.0/go.mod h1:di0qlW3YNM5oh6GqDGQr92MyTozJPmybPK4Ev/Gm31k=
 golang.org/x/sync v0.0.0-20180314180146-1d60e4601c6f/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM=
-golang.org/x/sync v0.10.0 h1:3NQrjDixjgGwUOCaF8w2+VYHv0Ve/vGYSbdkTa98gmQ=
-golang.org/x/sync v0.10.0/go.mod h1:Czt+wKu1gCyEFDUtn0jG5QVvpJ6rzVqr5aXyt9drQfk=
+golang.org/x/sync v0.11.0 h1:GGz8+XQP4FvTTrjZPzNKTMFtSXH80RAzG+5ghFPgK9w=
+golang.org/x/sync v0.11.0/go.mod h1:Czt+wKu1gCyEFDUtn0jG5QVvpJ6rzVqr5aXyt9drQfk=
 golang.org/x/sys v0.0.0-20180909124046-d0be0721c37e/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY=
 golang.org/x/sys v0.0.0-20210809222454-d867a43fc93e/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg=
 golang.org/x/sys v0.0.0-20220715151400-c0bba94af5f8/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg=
 golang.org/x/sys v0.6.0/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg=
-golang.org/x/sys v0.29.0 h1:TPYlXGxvx1MGTn2GiZDhnjPA9wZzZeGKHHmKhHYvgaU=
-golang.org/x/sys v0.29.0/go.mod h1:/VUhepiaJMQUp4+oa/7Zr1D23ma6VTLIYjOOTFZPUcA=
+golang.org/x/sys v0.30.0 h1:QjkSwP/36a20jFYWkSue1YwXzLmsV5Gfq7Eiy72C1uc=
+golang.org/x/sys v0.30.0/go.mod h1:/VUhepiaJMQUp4+oa/7Zr1D23ma6VTLIYjOOTFZPUcA=
 golang.org/x/text v0.3.0/go.mod h1:NqM8EUOU14njkJ3fqMW+pc6Ldnwhi/IjpwHt7yyuwOQ=
-golang.org/x/text v0.21.0 h1:zyQAAkrwaneQ066sspRyJaG9VNi/YJ1NfzcGB3hZ/qo=
-golang.org/x/text v0.21.0/go.mod h1:4IBbMaMmOPCJ8SecivzSH54+73PCFmPWxNTLm+vZkEQ=
+golang.org/x/text v0.22.0 h1:bofq7m3/HAFvbF51jz3Q9wLg3jkvSPuiZu/pD1XwgtM=
+golang.org/x/text v0.22.0/go.mod h1:YRoo4H8PVmsu+E3Ou7cqLVH8oXWIHVoX0jqUWALQhfY=
 gopkg.in/check.v1 v0.0.0-20161208181325-20d25e280405/go.mod h1:Co6ibVJAznAaIkqp8huTwlJQCZ016jof/cbN4VW5Yz0=
 gopkg.in/fsnotify.v1 v1.4.7 h1:xOHLXZwVvI9hhs+cLKq5+I5onOuwQLhQwiu63xxlHs4=
 gopkg.in/fsnotify.v1 v1.4.7/go.mod h1:Tz8NjZHkW78fSQdbUxIjBTcgA1z1m8ZHf0WmKUhAMys=
 gopkg.in/tomb.v1 v1.0.0-20141024135613-dd632973f1e7 h1:uRGJdciOHaEIrze2W8Q3AKkepLTh2hOroT7a+7czfdQ=
 gopkg.in/tomb.v1 v1.0.0-20141024135613-dd632973f1e7/go.mod h1:dt/ZhP58zS4L8KSrWDmTeBkI65Dw0HsyUHuEVlX15mw=
-gopkg.in/yaml.v2 v2.2.1 h1:mUhvW9EsL+naU5Q3cakzfE91YhliOondGd6ZrsDBHQE=
 gopkg.in/yaml.v2 v2.2.1/go.mod h1:hI93XBmqTisBFMUTm0b8Fm+jr3Dg1NNxqwp+5A1VGuI=
+gopkg.in/yaml.v2 v2.2.2 h1:ZCJp+EgiOT7lHqUV2J862kp8Qj64Jo6az82+3Td9dZw=
+gopkg.in/yaml.v2 v2.2.2/go.mod h1:hI93XBmqTisBFMUTm0b8Fm+jr3Dg1NNxqwp+5A1VGuI=
 gopkg.in/yaml.v3 v3.0.0-20200313102051-9f266ea9e77c/go.mod h1:K4uyk7z7BCEPqu6E+C64Yfv1cQ7kz7rIZviUmN+EgEM=
 gopkg.in/yaml.v3 v3.0.1 h1:fxVm/GzAzEWqLHuvctI91KS9hhNmmWOoWu0XTYJS7CA=
 gopkg.in/yaml.v3 v3.0.1/go.mod h1:K4uyk7z7BCEPqu6E+C64Yfv1cQ7kz7rIZviUmN+EgEM=

+ 6 - 6
pkg/arena/arena.go

@@ -9,12 +9,12 @@ import (
 	"wartank/pkg/arena/arena_context"
 	"wartank/pkg/arena/arena_string"
 	"wartank/pkg/arena/down_time"
-	"wartank/pkg/types"
+	. "wartank/server/lev0/types"
 )
 
 // АренаКонфиг -- конфигурация арены
 type АренаКонфиг struct {
-	Бот_         types.ИБот
+	Бот_         ИБот
 	АренаИмя_    alias.АренаИмя
 	СтрКонтроль_ string // Контрольная строка для арены
 	СтрУрл_      string // Адрес арены
@@ -42,8 +42,8 @@ func (конф *АренаКонфиг) контроль() {
 
 // Арена -- арена игры
 type Арена struct {
-	types.ИАренаКонтекст
-	времяОстат types.ИВремяОстат         // Обратный отсчёт до окончания работы режима
+	ИАренаКонтекст
+	времяОстат ИВремяОстат         // Обратный отсчёт до окончания работы режима
 	списСтр    *arena_string.АренаСтроки // Список строк из сети для анализа секции
 	конф       АренаКонфиг
 	блок       sync.RWMutex
@@ -60,7 +60,7 @@ func НовАрена(конф АренаКонфиг) *Арена {
 		списСтр:        arena_string.НовАренаСтроки(конф.СтрКонтроль_),
 		конф:           конф,
 	}
-	_ = types.ИАрена(сам)
+	_ = ИАрена(сам)
 	return сам
 }
 
@@ -106,7 +106,7 @@ func (сам *Арена) ОбратВремяУст(времяСек alias.Вр
 }
 
 // ВремяОстат -- объект оставшегося времени
-func (сам *Арена) ВремяОстат() types.ИВремяОстат {
+func (сам *Арена) ВремяОстат() ИВремяОстат {
 	сам.блок.RLock()
 	defer сам.блок.RUnlock()
 	return сам.времяОстат

+ 13 - 11
pkg/arena/arena_context/arena_context.go

@@ -3,26 +3,28 @@ package arena_context
 
 import (
 	"context"
+
 	"wartank/pkg/alias"
 	"wartank/pkg/arena/arena_context/arena_state"
-	"wartank/pkg/components/kernel/logger"
 	"wartank/pkg/components/web_log"
-	"wartank/pkg/types"
+	. "wartank/pkg/kernel/kernel_types"
+	"wartank/pkg/kernel/logger"
+	. "wartank/server/lev0/types"
 )
 
 // АренаКонтекст -- контекст арены
 type АренаКонтекст struct {
-	бот       types.ИБот
+	бот       ИБот
 	аренаИмя  alias.АренаИмя
 	кнт       context.Context
 	фнОтмена  func()
-	состояние types.ИАренаСостояние
-	вЛог      types.ИВебЛог
-	лог       types.ИЛоггер
+	состояние ИАренаСостояние
+	вЛог      ИВебЛог
+	лог       ИЛоггер
 }
 
 // НовАренаКонтекст -- возвращает новый контекст арены
-func НовАренаКонтекст(бот types.ИБот, сценаИмя alias.АренаИмя) *АренаКонтекст {
+func НовАренаКонтекст(бот ИБот, сценаИмя alias.АренаИмя) *АренаКонтекст {
 	лог := logger.НовЛоггер("АренаКонтекст " + string(сценаИмя))
 	лог.Инфо("НовАренаКонтекст() " + string(сценаИмя) + "\n")
 	лог.Паника(бот == nil, "НовАренаКонтекст(): ИБот==nil")
@@ -37,17 +39,17 @@ func НовАренаКонтекст(бот types.ИБот, сценаИмя al
 		вЛог:      web_log.НовВебЛог(true),
 		лог:       лог,
 	}
-	_ = types.ИАренаКонтекст(сам)
+	_ = ИАренаКонтекст(сам)
 	return сам
 }
 
 // Лог -- возвращает лог арены
-func (сам *АренаКонтекст) ВебЛог() types.ИВебЛог {
+func (сам *АренаКонтекст) ВебЛог() ИВебЛог {
 	return сам.вЛог
 }
 
 // АренаСостояние -- состояние арены
-func (сам *АренаКонтекст) АренаСостояние() types.ИАренаСостояние {
+func (сам *АренаКонтекст) АренаСостояние() ИАренаСостояние {
 	return сам.состояние
 }
 
@@ -67,6 +69,6 @@ func (сам *АренаКонтекст) Имя() alias.АренаИмя {
 }
 
 // Бот -- возвращает бота сцены
-func (сам *АренаКонтекст) Бот() types.ИБот {
+func (сам *АренаКонтекст) Бот() ИБот {
 	return сам.бот
 }

+ 2 - 2
pkg/arena/arena_context/arena_state/arena_state.go

@@ -4,7 +4,7 @@ package arena_state
 import (
 	"sync"
 	"wartank/pkg/alias"
-	"wartank/pkg/types"
+	. "wartank/server/lev0/types"
 )
 
 // СценаСостояние -- состояние сцены
@@ -20,7 +20,7 @@ func НовАренаСостояние() *АренаСостояние {
 	сам := &АренаСостояние{
 		состояниеИмя: "старт",
 	}
-	_ = types.ИАренаСостояние(сам)
+	_ = ИАренаСостояние(сам)
 	return сам
 }
 

+ 1 - 1
pkg/arena/arena_string/arena_string.go

@@ -5,7 +5,7 @@ import (
 	"fmt"
 	"strings"
 	"sync"
-	"wartank/pkg/components/kernel/logger"
+	"wartank/pkg/kernel/logger"
 )
 
 // АренаСтроки -- потокобезопасный список строк арены

+ 8 - 8
pkg/arena/down_time/down_time.go

@@ -10,9 +10,9 @@ import (
 	"time"
 	"wartank/pkg/alias"
 	"wartank/pkg/components/product/parser_time"
-	"wartank/pkg/components/safe_bool"
-	"wartank/pkg/components/safe_int"
-	"wartank/pkg/types"
+	"wartank/pkg/kernel/safe_bool"
+	"wartank/pkg/kernel/safe_int"
+	. "wartank/server/lev0/types"
 )
 
 const (
@@ -21,9 +21,9 @@ const (
 
 // ВремОбрат -- счётчик обратного времени для игровой зоны (анга, база, битва и т.п.)
 type ВремОбрат struct {
-	сцена types.ИАренаКонтекст // Сцена, которой принадлежит отсчёт времени
+	сцена ИАренаКонтекст // Сцена, которой принадлежит отсчёт времени
 
-	остатПарсер types.ИПарсерВремя // Парсер значения (мсек)
+	остатПарсер ИПарсерВремя // Парсер значения (мсек)
 
 	текущ        *safe_int.БезопЦелое // Фактическое значение счётчика в мсек
 	лимит        *safe_int.БезопЦелое // Целевое время срабатывания в мсек
@@ -38,7 +38,7 @@ type ВремОбрат struct {
 }
 
 // НовВремОбрат -- возвращает новый *CountTime
-func НовВремОбрат(сцена types.ИАренаКонтекст, время alias.МилСек) *ВремОбрат {
+func НовВремОбрат(сцена ИАренаКонтекст, время alias.МилСек) *ВремОбрат {
 	if сцена == nil {
 		panic("НовВремОбрат(): ИСцена == nil")
 	}
@@ -58,7 +58,7 @@ func НовВремОбрат(сцена types.ИАренаКонтекст, в
 	сам.еслиРаботает.Уст()
 	go сам.пуск()
 	go сам.закрыть()
-	_ = types.ИВремяОстат(сам)
+	_ = ИВремяОстат(сам)
 	return сам
 }
 
@@ -102,7 +102,7 @@ func (сам *ВремОбрат) Сброс() {
 	сам.лимит.Сброс()
 }
 
-// Стоп -- останавливает работу cчётчика
+// Стоп -- останавливает работу счётчика
 func (сам *ВремОбрат) Стоп() {
 	сам.фнОтмена()
 }

+ 4 - 4
pkg/arena/down_time/down_time_test.go

@@ -3,12 +3,12 @@ package down_time
 import (
 	"testing"
 	"time"
-	"wartank/pkg/alias"
-	"wartank/pkg/components/safe_bool"
 
+	"wartank/pkg/alias"
+	"wartank/pkg/kernel/safe_bool"
 	// "wartank/pkg/mock/mock_zone"
 	"wartank/pkg/mock/mockapp"
-	"wartank/pkg/types"
+	. "wartank/server/lev0/types"
 )
 
 /*
@@ -19,7 +19,7 @@ import (
 type tester struct {
 	t      *testing.T
 	app    *mockapp.MockApp
-	zone   types.ИАренаКонтекст
+	zone   ИАренаКонтекст
 	ct     *ВремОбрат
 	err    error
 	isCall *safe_bool.БезопБул // Признак обратного вызова

+ 10 - 8
pkg/components/arena_net/arena_net.go

@@ -5,22 +5,24 @@ import (
 	"fmt"
 	"strings"
 	"sync"
-	"wartank/pkg/components/kernel/logger"
-	"wartank/pkg/types"
+
+	. "wartank/pkg/kernel/kernel_types"
+	"wartank/pkg/kernel/logger"
+	. "wartank/server/lev0/types"
 )
 
 // АренаСеть -- базовый тип для сетевых арен
 type АренаСеть struct {
-	types.ИБотСеть
-	клиент types.ИХттпВоркер
-	сцена  types.ИСценаСтр
+	ИБотСеть
+	клиент ИХттпВоркер
+	сцена  ИСценаСтр
 	стрУрл string
 	блок   sync.Mutex
-	лог    types.ИЛоггер
+	лог    ИЛоггер
 }
 
 // НовАренаСеть -- возвращает новый *АренаСеть
-func НовАренаСеть(сцена types.ИСценаСтр, стрУрл string) *АренаСеть {
+func НовАренаСеть(сцена ИСценаСтр, стрУрл string) *АренаСеть {
 	лог := logger.НовЛоггер("АренаСеть")
 	лог.Инфо("НовАренаСеть(): strUrl=%q\n", стрУрл)
 	лог.Паника(сцена == nil, "НовАренаСеть(): ИСценаСтр == nil")
@@ -32,7 +34,7 @@ func НовАренаСеть(сцена types.ИСценаСтр, стрУрл
 		клиент:   сцена.Бот().Сеть().ВебВоркер(),
 		лог:      лог,
 	}
-	_ = types.ИАренаСеть(сам)
+	_ = ИАренаСеть(сам)
 	return сам
 }
 

+ 8 - 6
pkg/components/arena_net/http_worker/http_worker.go

@@ -8,9 +8,11 @@ import (
 	"strings"
 	"sync"
 	"time"
+
 	"wartank/pkg/components/arena_net/http_worker/net_stat"
-	"wartank/pkg/components/kernel/logger"
-	"wartank/pkg/types"
+	. "wartank/pkg/kernel/kernel_types"
+	"wartank/pkg/kernel/logger"
+	. "wartank/server/lev0/types"
 )
 
 var (
@@ -19,14 +21,14 @@ var (
 
 // ХттпВоркер -- объект сетевого исполнителя бота
 type ХттпВоркер struct {
-	botNet     types.ИБотСеть
+	botNet     ИБотСеть
 	conn       *http.Client
 	статистика *net_stat.СетьСтата
-	лог        types.ИЛоггер
+	лог        ИЛоггер
 }
 
 // НовХттпВоркер -- возвращает веб-воркера бота
-func НовХттпВоркер(botNet types.ИБотСеть, conn *http.Client) *ХттпВоркер {
+func НовХттпВоркер(botNet ИБотСеть, conn *http.Client) *ХттпВоркер {
 	лог := logger.НовЛоггер("ХттпВоркер")
 	лог.Инфо("НовХттпВоркер()\n")
 	сам := &ХттпВоркер{
@@ -35,7 +37,7 @@ func НовХттпВоркер(botNet types.ИБотСеть, conn *http.Client
 		статистика: net_stat.НовСетьСтата(botNet),
 		лог:        лог,
 	}
-	_ = types.ИХттпВоркер(сам)
+	_ = ИХттпВоркер(сам)
 	return сам
 }
 

+ 10 - 9
pkg/components/arena_net/http_worker/net_stat/net_stat.go

@@ -4,8 +4,9 @@ package net_stat
 import (
 	"sync"
 	"time"
-	"wartank/pkg/components/kernel/logger"
-	"wartank/pkg/types"
+
+	"wartank/pkg/kernel/logger"
+	. "wartank/server/lev0/types"
 )
 
 /*
@@ -14,10 +15,10 @@ import (
 
 // СетьСтата -- статистика сетевого соединения
 type СетьСтата struct {
-	botNet               types.ИБотСеть
+	botNet               ИБотСеть
 	countByteInterval    int      // Счётчик байтов в текущем интервале
 	totalByte            int      // Сколько всего байт передано
-	totalMinut           int      // Сколько всего минут работала передача
+	всегоМинут           int      // Сколько всего минут работала передача
 	countRequestInterval int      // Число запросов
 	countErr             int      // Число зафиксированных ошибок
 	chTick               chan int // Сигналы времени 1 раз в 5 минут
@@ -26,7 +27,7 @@ type СетьСтата struct {
 }
 
 // НовСетьСтата -- возвращает новый *NetStat
-func НовСетьСтата(botNet types.ИБотСеть) *СетьСтата {
+func НовСетьСтата(botNet ИБотСеть) *СетьСтата {
 	лог := logger.НовЛоггер("СетьСтата")
 	лог.Инфо("НовСетьСтата()\n")
 	сам := &СетьСтата{
@@ -58,12 +59,12 @@ func (сам *СетьСтата) run() {
 	fnCalc := func() {
 		сам.block.Lock()
 		defer сам.block.Unlock()
-		сам.totalMinut += 5
-		mbyte := float32(сам.totalByte) / float32(сам.totalMinut*60) * (3600 * 24 * 30.5) / (1024 * 1024)
-		сам.лог.Инфо("run().fnCalc(): запросы=%0.2f/сек\tтраф0=%0.2f бит/сек\tтраф1=%0.2f МБ/мес\tошибки=%v\n",
+		сам.всегоМинут += 5
+		_МБ := float32(сам.totalByte) / float32(сам.всегоМинут*60) * (3600 * 24 * 30.5) / (1024 * 1024)
+		сам.лог.Инфо("run().fnCalc(): запросы=%0.2f/сек\t траф0=%0.2f бит/сек\tтраф1=%0.2f МБ/мес\tошибки=%v\n",
 			float32(сам.countRequestInterval)/300,
 			float32(сам.countByteInterval*8)/300,
-			mbyte,
+			_МБ,
 			сам.countErr)
 		сам.countByteInterval = 0
 		сам.countRequestInterval = 0

+ 8 - 6
pkg/components/arena_net/scene_web_worker/scene_web_worker.go

@@ -3,8 +3,10 @@ package scene_web_worker
 
 import (
 	"sync"
-	"wartank/pkg/components/kernel/logger"
-	"wartank/pkg/types"
+
+	. "wartank/pkg/kernel/kernel_types"
+	"wartank/pkg/kernel/logger"
+	. "wartank/server/lev0/types"
 )
 
 /*
@@ -13,14 +15,14 @@ import (
 
 // СценаВебВоркер -- объект сетевого соединения
 type СценаВебВоркер struct {
-	ботСеть   types.ИБотСеть
-	вебВоркер types.ИХттпВоркер
-	лог       types.ИЛоггер
+	ботСеть   ИБотСеть
+	вебВоркер ИХттпВоркер
+	лог       ИЛоггер
 	block     sync.Mutex
 }
 
 // НовСценаВебВоркер -- возвращает сетевого клиента
-func НовСценаВебВоркер(ботСеть types.ИБотСеть) *СценаВебВоркер {
+func НовСценаВебВоркер(ботСеть ИБотСеть) *СценаВебВоркер {
 	лог := logger.НовЛоггер("СценаВебВоркер")
 	лог.Инфо("НовСценаВебВоркер()\n")
 	сам := &СценаВебВоркер{

+ 0 - 1
pkg/components/kernel/store/CURRENT

@@ -1 +0,0 @@
-MANIFEST-000003

+ 0 - 1
pkg/components/kernel/store/CURRENT.bak

@@ -1 +0,0 @@
-MANIFEST-000000

+ 0 - 19
pkg/components/kernel/store/LOG

@@ -1,19 +0,0 @@
-=============== Jan 19, 2024 (MSK) ===============
-15:59:38.249408 log@legend F·NumFile S·FileSize N·Entry C·BadEntry B·BadBlock Ke·KeyError D·DroppedEntry L·Level Q·SeqNum T·TimeElapsed
-15:59:38.274079 db@open opening
-15:59:38.278624 version@stat F·[] S·0B[] Sc·[]
-15:59:38.284272 db@janitor F·2 G·0
-15:59:38.284710 db@open done T·10.417468ms
-15:59:38.293954 db@close closing
-15:59:38.294341 db@close done T·164.877µs
-=============== Sep 2, 2024 (MSK) ===============
-19:14:25.534183 log@legend F·NumFile S·FileSize N·Entry C·BadEntry B·BadBlock Ke·KeyError D·DroppedEntry L·Level Q·SeqNum T·TimeElapsed
-19:14:25.534843 version@stat F·[] S·0B[] Sc·[]
-19:14:25.534922 db@open opening
-19:14:25.535157 journal@recovery F·1
-19:14:25.536118 journal@recovery recovering @1
-19:14:25.537207 version@stat F·[] S·0B[] Sc·[]
-19:14:25.541329 db@janitor F·2 G·0
-19:14:25.541485 db@open done T·6.522387ms
-19:14:25.544015 db@close closing
-19:14:25.544337 db@close done T·260.531µs

BIN
pkg/components/kernel/store/MANIFEST-000003


+ 2 - 2
pkg/components/product/parser_time/parse_hour/parse_hour.go

@@ -5,7 +5,7 @@ import (
 	"strconv"
 	"sync"
 	"wartank/pkg/alias"
-	"wartank/pkg/types"
+	. "wartank/server/lev0/types"
 )
 
 /*
@@ -21,7 +21,7 @@ type ПарсерЧас struct {
 // НовПарсерЧас -- возвращает новый *ПарсерЧас
 func НовПарсерЧас() *ПарсерЧас {
 	сам := &ПарсерЧас{}
-	_ = types.ИПарсерЧас(сам)
+	_ = ИПарсерЧас(сам)
 	return сам
 }
 

+ 7 - 6
pkg/components/product/parser_time/parse_min/parse_min.go

@@ -4,15 +4,16 @@ import (
 	"fmt"
 	"strconv"
 	"sync"
+
 	"wartank/pkg/alias"
-	"wartank/pkg/types"
+	. "wartank/server/lev0/types"
 )
 
 /*
-	Потокобезопасно парсит из строки значение vbyen
+	Потокобезопасно парсит из строки значение минут
 */
 
-// ПарсерМинут -- потокобезопасный парсер vbyen из строки
+// ПарсерМинут -- потокобезопасный парсер минут из строки
 type ПарсерМинут struct {
 	знач alias.Мин // Значение минут
 	блок sync.RWMutex
@@ -21,7 +22,7 @@ type ПарсерМинут struct {
 // НовПарсерМинут -- возвращает новый *ПарсерМинут
 func НовПарсерМинут() *ПарсерМинут {
 	сам := &ПарсерМинут{}
-	_ = types.ИПарсерМин(сам)
+	_ = ИПарсерМин(сам)
 	return сам
 }
 
@@ -77,10 +78,10 @@ func (сам *ПарсерМинут) УстМин(цМин alias.Мин) error
 	return nil
 }
 
-// Внтренняя установка минут
+// Внутренняя установка минут
 func (сам *ПарсерМинут) уст(цМин alias.Мин) error {
 	if цМин >= 60 {
-		return fmt.Errorf("ПарсерМинут.set(): минуты не в диапазоне(%v) 0..60", цМин)
+		return fmt.Errorf("ПарсерМинут.уст(): минуты не в диапазоне(%v) 0..60", цМин)
 	}
 	сам.знач = цМин
 	return nil

+ 2 - 2
pkg/components/product/parser_time/parse_sec/parse_sec.go

@@ -5,7 +5,7 @@ import (
 	"strconv"
 	"sync"
 	"wartank/pkg/alias"
-	"wartank/pkg/types"
+	. "wartank/server/lev0/types"
 )
 
 /*
@@ -21,7 +21,7 @@ type ПарсерСекунд struct {
 // НовПарсерСекунд -- возвращает новый *ParseSec
 func НовПарсерСекунд() *ПарсерСекунд {
 	сам := &ПарсерСекунд{}
-	_ = types.ИПарсерСек(сам)
+	_ = ИПарсерСек(сам)
 	return сам
 }
 

+ 10 - 9
pkg/components/product/parser_time/parser_time.go

@@ -4,11 +4,12 @@ import (
 	"fmt"
 	"strings"
 	"sync"
+
 	"wartank/pkg/alias"
 	"wartank/pkg/components/product/parser_time/parse_hour"
 	"wartank/pkg/components/product/parser_time/parse_min"
 	"wartank/pkg/components/product/parser_time/parse_sec"
-	"wartank/pkg/types"
+	. "wartank/server/lev0/types"
 )
 
 /*
@@ -17,10 +18,10 @@ import (
 
 // ПарсерВремя -- потокобезопасный ковырятор строки времени
 type ПарсерВремя struct {
-	всегоМилСек alias.МилСек     // Числовое значение хранимого времени
-	час         types.ИПарсерЧас // Часы метки времени
-	мин         types.ИПарсерМин // Минуты метки времени
-	сек         types.ИПарсерСек // Секунды метки времени
+	всегоМилСек alias.МилСек // Числовое значение хранимого времени
+	час         ИПарсерЧас   // Часы метки времени
+	мин         ИПарсерМин   // Минуты метки времени
+	сек         ИПарсерСек   // Секунды метки времени
 
 	блок sync.RWMutex
 }
@@ -32,7 +33,7 @@ func НовПарсерВремя() *ПарсерВремя {
 		мин: parse_min.НовПарсерМинут(),
 		сек: parse_sec.НовПарсерСекунд(),
 	}
-	_ = types.ИПарсерВремя(сам)
+	_ = ИПарсерВремя(сам)
 	return сам
 }
 
@@ -116,17 +117,17 @@ func (сам *ПарсерВремя) Уст(стрВремя alias.Время)
 }
 
 // Час -- возвращает хранимые часы
-func (сам *ПарсерВремя) Час() types.ИПарсерЧас {
+func (сам *ПарсерВремя) Час() ИПарсерЧас {
 	return сам.час
 }
 
 // Мин -- возвращает хранимые минуты
-func (сам *ПарсерВремя) Мин() types.ИПарсерМин {
+func (сам *ПарсерВремя) Мин() ИПарсерМин {
 	return сам.мин
 }
 
 // Сек -- возвращает хранимые секунды
-func (сам *ПарсерВремя) Сек() types.ИПарсерСек {
+func (сам *ПарсерВремя) Сек() ИПарсерСек {
 	return сам.сек
 }
 

+ 6 - 6
pkg/components/product/product.go

@@ -3,9 +3,9 @@ package product
 
 import (
 	"wartank/pkg/components/product/parser_time"
-	"wartank/pkg/components/safe_int"
-	"wartank/pkg/components/safe_string"
-	"wartank/pkg/types"
+	"wartank/pkg/kernel/safe_int"
+	"wartank/pkg/kernel/safe_string"
+	. "wartank/server/lev0/types"
 )
 
 // Продукт -- объект продукта для производства
@@ -26,16 +26,16 @@ func НовПродукт() *Продукт {
 }
 
 // Имя -- возвращает название продукта
-func (сам *Продукт) Имя() types.ИБезопСтрока {
+func (сам *Продукт) Имя() ИБезопСтрока {
 	return сам.имя
 }
 
 // Кол -- возвращает количество продукта
-func (сам *Продукт) Кол() types.ИБезопЦелое {
+func (сам *Продукт) Кол() *safe_int.БезопЦелое {
 	return сам.кол
 }
 
 // Время -- возвращает время производства
-func (сам *Продукт) Время() types.ИПарсерВремя {
+func (сам *Продукт) Время() ИПарсерВремя {
 	return сам.время
 }

+ 3 - 3
pkg/components/web_log/web_log.go

@@ -6,7 +6,7 @@ import (
 	"strings"
 	"sync"
 	"time"
-	"wartank/pkg/types"
+	. "wartank/server/lev0/types"
 )
 
 // ВебЛог -- веб-лог компонента
@@ -17,12 +17,12 @@ type ВебЛог struct {
 }
 
 // НовВебЛог -- возвращает новый *ВебЛог
-func НовВебЛог(еслиПеч bool) types.ИВебЛог {
+func НовВебЛог(еслиПеч bool) ИВебЛог {
 	сам := &ВебЛог{
 		лог:     []string{},
 		еслиПеч: еслиПеч,
 	}
-	_ = types.ИВебЛог(сам)
+	_ = ИВебЛог(сам)
 	return сам
 }
 

+ 10 - 9
pkg/components/wrag/wrag.go

@@ -3,8 +3,9 @@ package wrag
 import (
 	"strconv"
 	"strings"
-	"wartank/pkg/components/kernel/logger"
-	"wartank/pkg/types"
+	. "wartank/pkg/kernel/kernel_types"
+	"wartank/pkg/kernel/logger"
+	. "wartank/server/lev0/types"
 )
 
 /*
@@ -13,13 +14,13 @@ import (
 
 // Враг -- объект врага
 type Враг struct {
-	сервер types.ИСервер
-	лог    types.ИЛоггер
-	health int // здоровье вражины
+	сервер   ИСервер
+	лог      ИЛоггер
+	здоровье int //
 }
 
 // НовВраг -- возвращает новый объект врага
-func НовВраг(app types.ИСервер, lstBattle []string) *Враг {
+func НовВраг(app ИСервер, lstBattle []string) *Враг {
 	лог := logger.НовЛоггер("Враг")
 	лог.Отладка("НовВраг()\n")
 	сам := &Враг{
@@ -50,7 +51,7 @@ func (сам *Враг) update(lstBattleOn []string) {
 	}
 	if !еслиНайдено { // Не нашёл метку врага
 		сам.лог.Ошибка("update(): не нашёл метку врага\n")
-		сам.health = 800
+		сам.здоровье = 800
 		return
 	}
 	// Вражина найдена, ищем настоящее здоровье
@@ -63,8 +64,8 @@ func (сам *Враг) update(lstBattleOn []string) {
 	iHealth, err := strconv.Atoi(strHealth)
 	if err != nil {
 		сам.лог.Ошибка("update(): здоровье(%v) не число, err=\n\t%v\n", strHealth, err)
-		сам.health = 800
+		сам.здоровье = 800
 		return
 	}
-	сам.health = iHealth
+	сам.здоровье = iHealth
 }

+ 4 - 4
pkg/components/kernel/keeper/keeper.go → pkg/kernel/keeper/keeper.go

@@ -12,13 +12,13 @@ import (
 	"os/signal"
 	"syscall"
 
-	"wartank/pkg/types"
+	. "wartank/pkg/kernel/kernel_types"
 )
 
 // Сторож -- сторож системных и внутренних сигналов
 type Сторож struct {
-	kernel types.ИЯдро
-	слог   types.ИЛоггер
+	kernel ИЯдро
+	слог   ИЛоггер
 	chSys  chan os.Signal
 }
 
@@ -27,7 +27,7 @@ const (
 )
 
 // НовСторож -- возвращает глобальный объект сторожа *Keeper
-func НовСторож(kernel types.ИЯдро) *Сторож {
+func НовСторож(kernel ИЯдро) *Сторож {
 	if kernel == nil {
 		panic("GetKeeper(): IKernel is nil")
 	}

+ 4 - 3
pkg/components/kernel/keeper/keeper_test.go → pkg/kernel/keeper/keeper_test.go

@@ -5,10 +5,11 @@ import (
 	"syscall"
 	"testing"
 	"time"
-	"wartank/pkg/components/kernel/slog"
+
+	. "wartank/pkg/kernel/kernel_types"
+	"wartank/pkg/kernel/slog"
 	"wartank/pkg/mock/mock_env"
 	"wartank/pkg/mock/mockkernel"
-	"wartank/pkg/types"
 )
 
 /*
@@ -21,7 +22,7 @@ type tester struct {
 	err  error
 	me   *mock_env.МокОкружение
 	kp   *Сторож
-	kern types.ИЯдро
+	kern ИЯдро
 }
 
 func TestKeeper(t *testing.T) {

+ 11 - 11
pkg/components/kernel/kernel.go → pkg/kernel/kernel.go

@@ -6,11 +6,11 @@ package kernel
 import (
 	"context"
 	"sync"
-	"wartank/pkg/components/kernel/keeper"
-	"wartank/pkg/components/kernel/logger"
-	"wartank/pkg/components/kernel/store"
-	"wartank/pkg/components/kernel/wgname"
-	"wartank/pkg/types"
+	"wartank/pkg/kernel/keeper"
+	"wartank/pkg/kernel/logger"
+	"wartank/pkg/kernel/store"
+	"wartank/pkg/kernel/wgname"
+	. "wartank/pkg/kernel/kernel_types"
 )
 
 /*
@@ -23,14 +23,14 @@ type Ядро struct {
 	ctxApp   context.Context  // Отменяемый контекст приложения
 	fnCancel func()           // Функция отмены приложения
 	keeper   *keeper.Сторож   // Сторож системных сигналов
-	лог      types.ИЛоггер    // Логгер в два вывода
+	лог      ИЛоггер    // Логгер в два вывода
 	wg       *wgname.WgName   // Групповое ожидание частей приложения
-	хран     types.ИХранилище // Хранилище данных
+	хран     ИХранилище // Хранилище данных
 	блок     sync.Mutex
 }
 
 // НовЯдро -- возвращает новый *Ядро
-func НовЯдро() types.ИЯдро {
+func НовЯдро() ИЯдро {
 	лог := logger.НовЛоггер("Ядро")
 	лог.Инфо("НовЯдро()\n")
 	// timeStart := time.Now().UTC().Format("2006-10-02 15:04:05.000")
@@ -53,12 +53,12 @@ func НовЯдро() types.ИЯдро {
 }
 
 // Хранилище -- возвращает хранилище данных
-func (сам *Ядро) Хранилище() types.ИХранилище {
+func (сам *Ядро) Хранилище() ИХранилище {
 	return сам.хран
 }
 
 // Wg -- возвращает объект групповой синхронизации
-func (сам *Ядро) Wg() types.IWgName {
+func (сам *Ядро) Wg() IWgName {
 	return сам.wg
 }
 
@@ -81,6 +81,6 @@ func (сам *Ядро) Отменить() {
 }
 
 // Слог -- возвращает глобальный лог приложения
-func (сам *Ядро) Слог() types.ИЛоггер {
+func (сам *Ядро) Слог() ИЛоггер {
 	return сам.лог
 }

+ 2 - 2
pkg/components/kernel/kernel_test.go → pkg/kernel/kernel_test.go

@@ -3,13 +3,13 @@ package kernel
 import (
 	"os"
 	"testing"
-	"wartank/pkg/types"
+	. "wartank/pkg/kernel/kernel_types"
 )
 
 // Тестер для базового объекта приложения
 type tester struct {
 	t    *testing.T
-	kern types.ИЯдро
+	kern ИЯдро
 }
 
 func TestKernel(t *testing.T) {

+ 1 - 1
pkg/types/ikernel.go → pkg/kernel/kernel_types/ikernel.go

@@ -1,4 +1,4 @@
-package types
+package kernel_types
 
 import "context"
 

+ 1 - 1
pkg/types/islog.go → pkg/kernel/kernel_types/ikernel_log.go

@@ -1,4 +1,4 @@
-package types
+package kernel_types
 
 /*
 	Интерфейс логирования

+ 2 - 2
pkg/types/ikernel_store.go → pkg/kernel/kernel_types/ikernel_store.go

@@ -1,5 +1,5 @@
-// package types -- типы плагина
-package types
+// package kernel_types -- типы ядра
+package kernel_types
 
 // ИХранилище -- интерфейс хранилища
 type ИХранилище interface {

+ 3 - 2
pkg/components/kernel/logger/logger.go → pkg/kernel/logger/logger.go

@@ -4,7 +4,8 @@ package logger
 import (
 	"fmt"
 	"sync"
-	"wartank/pkg/types"
+
+	. "wartank/pkg/kernel/kernel_types"
 )
 
 var блок sync.Mutex
@@ -17,7 +18,7 @@ func НовЛоггер(префикс string) *Логгер {
 	сам := &Логгер{
 		префикс: префикс,
 	}
-	_ = types.ИЛоггер(сам)
+	_ = ИЛоггер(сам)
 	return сам
 }
 

+ 0 - 0
pkg/components/safe_bool/safe_bool.go → pkg/kernel/safe_bool/safe_bool.go


+ 0 - 0
pkg/components/safe_bool/safe_bool_test.go → pkg/kernel/safe_bool/safe_bool_test.go


+ 2 - 2
pkg/components/safe_int/safe_int.go → pkg/kernel/safe_int/safe_int.go

@@ -3,7 +3,7 @@ package safe_int
 import (
 	"sync"
 
-	"wartank/pkg/types"
+	. "wartank/server/lev0/types"
 )
 
 /*
@@ -19,7 +19,7 @@ type БезопЦелое struct {
 // НовБезопЦелое -- возвращает новый *БезопЦелое
 func НовБезопЦелое() *БезопЦелое {
 	сам := &БезопЦелое{}
-	_ = types.ИСбрасыватель(сам)
+	_ = ИСбрасыватель(сам)
 	return сам
 }
 

+ 0 - 0
pkg/components/safe_int/safe_int_test.go → pkg/kernel/safe_int/safe_int_test.go


+ 0 - 0
pkg/components/safe_string/safe_string.go → pkg/kernel/safe_string/safe_string.go


+ 0 - 0
pkg/components/safe_string/safe_string_test.go → pkg/kernel/safe_string/safe_string_test.go


+ 8 - 7
pkg/components/kernel/slog/slog.go → pkg/kernel/slog/slog.go

@@ -6,11 +6,12 @@ import (
 	"strings"
 	"sync"
 	"time"
-	"wartank/pkg/components/kernel/slog/slog_file"
-	"wartank/pkg/components/kernel/slog/slog_term"
-	"wartank/pkg/components/safe_bool"
+
 	"wartank/pkg/cons"
-	"wartank/pkg/types"
+	. "wartank/pkg/kernel/kernel_types"
+	"wartank/pkg/kernel/safe_bool"
+	"wartank/pkg/kernel/slog/slog_file"
+	"wartank/pkg/kernel/slog/slog_term"
 )
 
 /*
@@ -27,7 +28,7 @@ const (
 
 // Слог -- лог событий для записи
 type Слог struct {
-	kern   types.ИЯдро
+	kern   ИЯдро
 	buf    strings.Builder
 	block  sync.RWMutex
 	lf     *slog_file.СлогФайл
@@ -37,7 +38,7 @@ type Слог struct {
 }
 
 // НовСлог -- возвращает объект логирования
-func НовСлог(kern types.ИЯдро) (*Слог, error) {
+func НовСлог(kern ИЯдро) (*Слог, error) {
 	if kern == nil {
 		return nil, fmt.Errorf("NewSlog(): IKernel is nil")
 	}
@@ -61,7 +62,7 @@ func НовСлог(kern types.ИЯдро) (*Слог, error) {
 		return nil, fmt.Errorf("НовСлог(): при добавлении группы ожидания %q, ош=\n\t%w", strSlog, ош)
 	}
 	сам.Инфо("НовСлог()\n")
-	_ = types.ИЛоггер(сам)
+	_ = ИЛоггер(сам)
 	return сам, nil
 }
 

+ 6 - 6
pkg/components/kernel/slog/slog_file/slog_file.go → pkg/kernel/slog/slog_file/slog_file.go

@@ -1,4 +1,4 @@
-// package slog_file -- бекенд для вывода в файл
+// package slog_file -- бэкенд для вывода в файл
 package slog_file
 
 import (
@@ -8,9 +8,9 @@ import (
 	"sync"
 	"time"
 
-	"wartank/pkg/components/safe_bool"
+	"wartank/pkg/kernel/safe_bool"
 	"wartank/pkg/cons"
-	"wartank/pkg/types"
+	. "wartank/pkg/kernel/kernel_types"
 )
 
 const (
@@ -19,7 +19,7 @@ const (
 
 // СлогФайл -- бэкенд для вывода в файл
 type СлогФайл struct {
-	kern     types.ИЯдро
+	kern     ИЯдро
 	file     *os.File
 	fileName string
 	isWork   *safe_bool.БезопБул
@@ -28,7 +28,7 @@ type СлогФайл struct {
 }
 
 // НовСлогФайл -- возвращает новый бэкенд логгера для вывода в файл
-func НовСлогФайл(kern types.ИЯдро, build string) (*СлогФайл, error) {
+func НовСлогФайл(kern ИЯдро, build string) (*СлогФайл, error) {
 	{ // Предусловия
 		if kern == nil {
 			return nil, fmt.Errorf("НовСлогФайл(): ИЯдро is nil")
@@ -96,7 +96,7 @@ func (сам *СлогФайл) run() {
 	}
 }
 
-// Внцтренни вызов записи
+// Внутренний вызов записи
 func (сам *СлогФайл) write(msg []byte) error {
 	_, err := сам.file.Write(msg)
 	if err != nil {

+ 4 - 4
pkg/components/kernel/slog/slog_file/slog_file_test.go → pkg/kernel/slog/slog_file/slog_file_test.go

@@ -7,7 +7,7 @@ import (
 
 	"wartank/pkg/mock/mock_env"
 	"wartank/pkg/mock/mockkernel"
-	"wartank/pkg/types"
+	. "wartank/pkg/kernel/kernel_types"
 )
 
 /*
@@ -18,7 +18,7 @@ type tester struct {
 	t    *testing.T
 	err  error
 	me   *mock_env.МокОкружение
-	kern types.ИЯдро
+	kern ИЯдро
 	сам  *СлогФайл
 }
 
@@ -53,7 +53,7 @@ func (сам *tester) close() {
 
 // отмена работы
 func (сам *tester) cancel() {
-	сам.t.Logf("=cancal=")
+	сам.t.Logf("cancel")
 	сам.createGood1()
 	сам.kern.Отменить()
 	сам.kern.Wg().Wait()
@@ -85,7 +85,7 @@ func (сам *tester) createGood1() {
 	}
 }
 
-// Нет верси сборки
+// Нет версии сборки
 func (сам *tester) createBad2() {
 	сам.t.Logf("=createBad2=")
 	сам.kern = mockkernel.NewMockKernel()

+ 0 - 0
pkg/components/kernel/slog/slog_term/slog_term.go → pkg/kernel/slog/slog_term/slog_term.go


+ 0 - 0
pkg/components/kernel/slog/slog_term/slog_term_test.go → pkg/kernel/slog/slog_term/slog_term_test.go


+ 2 - 2
pkg/components/kernel/slog/slog_test.go → pkg/kernel/slog/slog_test.go

@@ -6,8 +6,8 @@ import (
 	"testing"
 	"time"
 
+	. "wartank/pkg/kernel/kernel_types"
 	"wartank/pkg/mock/mockkernel"
-	"wartank/pkg/types"
 )
 
 /*
@@ -18,7 +18,7 @@ import (
 type tester struct {
 	t    *testing.T
 	err  error
-	ядро types.ИЯдро
+	ядро ИЯдро
 	slog *Слог
 }
 

+ 0 - 0
pkg/components/kernel/store/000002.log → pkg/kernel/store/000006.log


+ 1 - 0
pkg/kernel/store/CURRENT

@@ -0,0 +1 @@
+MANIFEST-000007

+ 1 - 0
pkg/kernel/store/CURRENT.bak

@@ -0,0 +1 @@
+MANIFEST-000005

+ 0 - 0
pkg/components/kernel/store/LOCK → pkg/kernel/store/LOCK


+ 41 - 0
pkg/kernel/store/LOG

@@ -0,0 +1,41 @@
+=============== Jan 19, 2024 (MSK) ===============
+15:59:38.249408 log@legend F·NumFile S·FileSize N·Entry C·BadEntry B·BadBlock Ke·KeyError D·DroppedEntry L·Level Q·SeqNum T·TimeElapsed
+15:59:38.274079 db@open opening
+15:59:38.278624 version@stat F·[] S·0B[] Sc·[]
+15:59:38.284272 db@janitor F·2 G·0
+15:59:38.284710 db@open done T·10.417468ms
+15:59:38.293954 db@close closing
+15:59:38.294341 db@close done T·164.877µs
+=============== Sep 2, 2024 (MSK) ===============
+19:14:25.534183 log@legend F·NumFile S·FileSize N·Entry C·BadEntry B·BadBlock Ke·KeyError D·DroppedEntry L·Level Q·SeqNum T·TimeElapsed
+19:14:25.534843 version@stat F·[] S·0B[] Sc·[]
+19:14:25.534922 db@open opening
+19:14:25.535157 journal@recovery F·1
+19:14:25.536118 journal@recovery recovering @1
+19:14:25.537207 version@stat F·[] S·0B[] Sc·[]
+19:14:25.541329 db@janitor F·2 G·0
+19:14:25.541485 db@open done T·6.522387ms
+19:14:25.544015 db@close closing
+19:14:25.544337 db@close done T·260.531µs
+=============== Feb 15, 2025 (MSK) ===============
+18:03:24.867087 log@legend F·NumFile S·FileSize N·Entry C·BadEntry B·BadBlock Ke·KeyError D·DroppedEntry L·Level Q·SeqNum T·TimeElapsed
+18:03:24.867412 version@stat F·[] S·0B[] Sc·[]
+18:03:24.867436 db@open opening
+18:03:24.867556 journal@recovery F·1
+18:03:24.868128 journal@recovery recovering @2
+18:03:24.869701 version@stat F·[] S·0B[] Sc·[]
+18:03:24.885282 db@janitor F·2 G·0
+18:03:24.885348 db@open done T·17.898262ms
+18:03:24.885782 db@close closing
+18:03:24.886389 db@close done T·595.772µs
+=============== Feb 20, 2025 (MSK) ===============
+12:49:08.283118 log@legend F·NumFile S·FileSize N·Entry C·BadEntry B·BadBlock Ke·KeyError D·DroppedEntry L·Level Q·SeqNum T·TimeElapsed
+12:49:08.283407 version@stat F·[] S·0B[] Sc·[]
+12:49:08.283425 db@open opening
+12:49:08.283522 journal@recovery F·1
+12:49:08.284066 journal@recovery recovering @4
+12:49:08.285073 version@stat F·[] S·0B[] Sc·[]
+12:49:08.314981 db@janitor F·2 G·0
+12:49:08.315048 db@open done T·31.609479ms
+12:49:08.315382 db@close closing
+12:49:08.315519 db@close done T·113.575µs

BIN
pkg/kernel/store/MANIFEST-000007


+ 8 - 7
pkg/components/kernel/store/store.go → pkg/kernel/store/store.go

@@ -4,12 +4,13 @@ package store
 import (
 	"fmt"
 	"sync"
-	"wartank/pkg/components/kernel/logger"
-	"wartank/pkg/components/safe_bool"
-	"wartank/pkg/types"
 
 	"github.com/syndtr/goleveldb/leveldb"
 	"github.com/syndtr/goleveldb/leveldb/util"
+
+	. "wartank/pkg/kernel/kernel_types"
+	"wartank/pkg/kernel/logger"
+	"wartank/pkg/kernel/safe_bool"
 )
 
 const (
@@ -18,16 +19,16 @@ const (
 
 // Хранилище -- главный тип плагина хранилища
 type Хранилище struct {
-	ядро   types.ИЯдро
+	ядро   ИЯдро
 	путь   string              // Путь к хранилищу
 	isWork *safe_bool.БезопБул // Признак открытой базы
 	бд     *leveldb.DB         // Объект хранилища
 	блок   sync.Mutex          // Блокировка для безопасности потоков
-	лог    types.ИЛоггер
+	лог    ИЛоггер
 }
 
 // НовХранилище -- возвращает новое хранилище
-func НовХранилище(ядро types.ИЯдро, путь string) (*Хранилище, error) {
+func НовХранилище(ядро ИЯдро, путь string) (*Хранилище, error) {
 	лог := logger.НовЛоггер("Хранилище")
 	лог.Инфо("НовХранилище()\n")
 	лог.Паника(ядро == nil, "НовХранилище(): ИЯдро == nil\n")
@@ -42,7 +43,7 @@ func НовХранилище(ядро types.ИЯдро, путь string) (*Хр
 	if ош := ядро.Wg().Add(стрХранилище); ош != nil {
 		return nil, fmt.Errorf("НовХранилище: при добавлении группы ожидания, ош=\n\t%v", ош)
 	}
-	_ = types.ИХранилище(сам)
+	_ = ИХранилище(сам)
 	return сам, nil
 }
 

+ 1 - 1
pkg/components/kernel/wgname/wgname.go → pkg/kernel/wgname/wgname.go

@@ -5,7 +5,7 @@ import (
 	"fmt"
 	"sync"
 
-	"wartank/pkg/components/safe_bool"
+	"wartank/pkg/kernel/safe_bool"
 )
 
 // WgName -- ожидатель группы завершения

+ 0 - 0
pkg/components/kernel/wgname/wgname_test.go → pkg/kernel/wgname/wgname_test.go


+ 12 - 10
pkg/mock/mockapp/mockapp.go

@@ -3,16 +3,18 @@ package mockapp
 import (
 	"context"
 	"sync"
+
+	. "wartank/pkg/kernel/kernel_types"
 	"wartank/pkg/mock/mockkernel"
-	"wartank/pkg/types"
+	. "wartank/server/lev0/types"
 )
 
 type MockApp struct {
-	types.ИЯдро
+	ИЯдро
 	fnCancel func()
 	ctx      context.Context
-	bot      types.ИБот
-	store    types.ИХранилище
+	bot      ИБот
+	store    ИХранилище
 	block    *sync.RWMutex
 }
 
@@ -28,15 +30,15 @@ func NewMockApp() *MockApp {
 	return сам
 }
 
-func (сам *MockApp) Store() types.ИХранилище {
+func (сам *MockApp) Store() ИХранилище {
 	return сам.store
 }
 
-func (сам *MockApp) Bot() types.ИБот {
+func (сам *MockApp) Bot() ИБот {
 	return сам.bot
 }
 
-func (сам *MockApp) Angar() types.ИАнгар {
+func (сам *MockApp) Angar() ИАнгар {
 	return nil
 }
 
@@ -44,7 +46,7 @@ func (сам *MockApp) CtxApp() context.Context {
 	return сам.ctx
 }
 
-func (сам *MockApp) Tank() types.ИТанкСтат {
+func (сам *MockApp) Tank() ИТанкСтат {
 	return nil
 }
 
@@ -60,10 +62,10 @@ func (сам *MockApp) Block() *sync.RWMutex {
 	return сам.block
 }
 
-func (сам *MockApp) NetClient() types.ИБотСеть {
+func (сам *MockApp) NetClient() ИБотСеть {
 	return nil
 }
 
-func (сам *MockApp) ServBots() types.ИБотоФерма {
+func (сам *MockApp) ServBots() ИБотоФерма {
 	return nil
 }

+ 7 - 7
pkg/mock/mockkernel/mockkernel.go

@@ -3,8 +3,8 @@ package mockkernel
 import (
 	"context"
 
-	"wartank/pkg/components/kernel/wgname"
-	"wartank/pkg/types"
+	. "wartank/pkg/kernel/kernel_types"
+	"wartank/pkg/kernel/wgname"
 )
 
 /*
@@ -22,11 +22,11 @@ type MockKernel struct {
 	ctxApp   context.Context // глобальный отменяемый контекст приложения
 	fnCancel func()          // Функия глобальной отмены контекста приложения
 	wg       *wgname.WgName  // Объект группового ожидания
-	Slog_    types.ИЛоггер   // Двойной логер
+	Slog_    ИЛоггер         // Двойной логер
 }
 
 // NewMockKernel -- возвращает новый *MockKernel
-func NewMockKernel() types.ИЯдро {
+func NewMockKernel() ИЯдро {
 	сам := &MockKernel{
 		ctxBg: context.Background(),
 		wg:    wgname.NewWgName(),
@@ -36,12 +36,12 @@ func NewMockKernel() types.ИЯдро {
 }
 
 // Хранилище -- возвращает хранилище данных
-func (сам *MockKernel) Хранилище() types.ИХранилище {
+func (сам *MockKernel) Хранилище() ИХранилище {
 	return nil
 }
 
 // Wg -- возвращает объект групповой сихнронизации
-func (сам *MockKernel) Wg() types.IWgName {
+func (сам *MockKernel) Wg() IWgName {
 	return сам.wg
 }
 
@@ -62,6 +62,6 @@ func (сам *MockKernel) Отменить() {
 }
 
 // Слог -- возвращает хранимый логгер
-func (сам *MockKernel) Слог() types.ИЛоггер {
+func (сам *MockKernel) Слог() ИЛоггер {
 	return сам.Slog_
 }

+ 3 - 3
pkg/mock/mockkernel/mockkernel_test.go

@@ -4,8 +4,8 @@ import (
 	"os"
 	"testing"
 
-	"wartank/pkg/components/kernel/slog"
-	"wartank/pkg/types"
+	"wartank/pkg/kernel/slog"
+	. "wartank/pkg/kernel/kernel_types"
 )
 
 const (
@@ -16,7 +16,7 @@ const (
 type tester struct {
 	t    *testing.T
 	err  error
-	kern types.ИЯдро
+	kern ИЯдро
 }
 
 func TestMockKernel(t *testing.T) {

+ 0 - 0
pkg/types/iangar.go → server/lev0/types/iangar.go


+ 0 - 0
pkg/types/iarena.go → server/lev0/types/iarena.go


+ 0 - 0
pkg/types/ibank.go → server/lev0/types/iarena_bank.go


+ 0 - 0
pkg/types/ibank_mode.go → server/lev0/types/iarena_bank_mode.go


+ 1 - 1
pkg/types/iarena_ctx.go → server/lev0/types/iarena_ctx.go

@@ -5,7 +5,7 @@ import (
 	"wartank/pkg/alias"
 )
 
-// ИСцИАренаКонтекстена -- контекст игровой арены (ангар, база, битва и т.п.)
+// ИАренаКонтекст -- контекст игровой арены (ангар, база, битва и т.п.)
 type ИАренаКонтекст interface {
 	// Бот -- возвращает бота игровой арены
 	Бот() ИБот

+ 0 - 0
pkg/types/iarena_net.go → server/lev0/types/iarena_net.go


+ 0 - 0
pkg/types/iarena_state.go → server/lev0/types/iarena_state.go


+ 0 - 0
pkg/types/iarsenal.go → server/lev0/types/iarsenal.go


+ 0 - 0
pkg/types/ibase.go → server/lev0/types/ibase.go


+ 0 - 0
pkg/types/ibase_basic.go → server/lev0/types/ibase_basic.go


+ 0 - 0
pkg/types/ibase_fuel.go → server/lev0/types/ibase_fuel.go


+ 0 - 0
pkg/types/ibase_mine.go → server/lev0/types/ibase_mine.go


+ 0 - 0
pkg/types/ibase_polygon.go → server/lev0/types/ibase_polygon.go


+ 0 - 0
pkg/types/ibattle_action.go → server/lev0/types/ibattle_action.go


+ 0 - 0
pkg/types/ibattle_scene.go → server/lev0/types/ibattle_scene.go


+ 1 - 1
pkg/types/ibot.go → server/lev0/types/ibot.go

@@ -15,7 +15,7 @@ type ИБот interface {
 	Номер() alias.БотНомер
 	// Ангар -- возвращает ангар бота
 	Ангар() ИАнгар
-	// Стата -- возврщает статистику танка
+	// Стата -- возвращает статистику танка
 	Стата() ИТанкСтат
 	// Сеть -- возвращает объект сети
 	Сеть() ИБотСеть

+ 0 - 0
pkg/types/ibot_cookie.go → server/lev0/types/ibot_cookie.go


+ 1 - 1
pkg/types/ibot_net.go → server/lev0/types/ibot_net.go

@@ -2,7 +2,7 @@ package types
 
 import (
 	"context"
-	"wartank/pkg/components/safe_bool"
+	"wartank/pkg/kernel/safe_bool"
 )
 
 /*

+ 0 - 0
pkg/types/iconvoy.go → server/lev0/types/iconvoy.go


+ 0 - 0
pkg/types/icounttime.go → server/lev0/types/icounttime.go


+ 0 - 0
pkg/types/idesktop.go → server/lev0/types/idesktop.go


+ 0 - 0
pkg/types/idict_bot.go → server/lev0/types/idict_bot.go


+ 2 - 1
pkg/types/idiv_war_action.go → server/lev0/types/idiv_war_action.go

@@ -2,7 +2,8 @@ package types
 
 import (
 	"context"
-	"wartank/pkg/components/safe_bool"
+
+	"wartank/pkg/kernel/safe_bool"
 )
 
 /*

+ 0 - 0
pkg/types/idiv_war_scene.go → server/lev0/types/idiv_war_scene.go


+ 0 - 0
pkg/types/ihttp_worker.go → server/lev0/types/ihttp_worker.go


+ 0 - 0
pkg/types/iis_shot.go → server/lev0/types/iis_shot.go


+ 0 - 0
pkg/types/imarket.go → server/lev0/types/imarket.go


+ 0 - 0
pkg/types/imissions.go → server/lev0/types/imissions.go


+ 0 - 0
pkg/types/inet_client.go → server/lev0/types/inet_client.go


+ 0 - 0
pkg/types/inetangar.go → server/lev0/types/inetangar.go


+ 0 - 0
pkg/types/inetbase.go → server/lev0/types/inetbase.go


+ 0 - 0
pkg/types/inetmarket.go → server/lev0/types/inetmarket.go


+ 0 - 0
pkg/types/iparser_hour.go → server/lev0/types/iparser_hour.go


+ 0 - 0
pkg/types/iparser_min.go → server/lev0/types/iparser_min.go


+ 0 - 0
pkg/types/iparser_sec.go → server/lev0/types/iparser_sec.go


+ 0 - 0
pkg/types/iparser_simple.go → server/lev0/types/iparser_simple.go


+ 0 - 0
pkg/types/iparser_time.go → server/lev0/types/iparser_time.go


+ 0 - 0
pkg/types/ipassword.go → server/lev0/types/ipassword.go


+ 0 - 0
pkg/types/ireset.go → server/lev0/types/ireset.go


+ 0 - 0
pkg/types/isafe_string.go → server/lev0/types/isafe_string.go


Некоторые файлы не были показаны из-за большого количества измененных файлов