refactor(nsdxml): заменить собственный кодек CP1251 на golang.org/x/text/encoding/charmap

После добавления NO_PROXY в bash-окружение (proxy.golang.org,
goproxy.cn, *.golang.org, github.com и пр.) штатные модули Go стали
доступны напрямую — zetit-прокси теперь обходится только для
внутренних/публичных хостов, которым нужен внутренний прокси, и
пропускает только нужное.

Заменено:
- internal/nsdxml/codec.go: 90+ строк собственной CP1251-таблицы →
  тонкая обёртка над golang.org/x/text/encoding/charmap.Windows1251
- go.mod: добавлен require golang.org/x/text v0.22.0
- internal/nsdxml/README.md: пометка о причине истории и текущей реализации

Покрытие nsdxml сохранилось, make ci зелёный.

Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
This commit is contained in:
fontvielle
2026-05-14 10:49:39 +03:00
parent 1cf069b55b
commit e2720c09f7
4 changed files with 25 additions and 85 deletions
+5 -7
View File
@@ -20,14 +20,12 @@
`UnmarshalText`, `String`, `Now`. Сохраняет различие между «(МСК)»
без сдвига и «(МСК+0)» через `OffsetSpecified`.
## Зачем свой кодек windows-1251
## Кодек windows-1251
Сетевая политика dev-стенда блокирует
`proxy.golang.org`, `goproxy.cn` и redirect-хосты Go-модулей
(`golang.org/x/*`, `google.golang.org/*` и др.), поэтому штатный
`golang.org/x/text/encoding/charmap` пакетным менеджером не
устанавливается. Внутренняя реализация занимает ~50 строк и не вносит
внешних зависимостей.
Реализован через штатный `golang.org/x/text/encoding/charmap.Windows1251`.
Изначально (PR-1) была собственная таблица CP1251 — обход блокировки
zetit-прокси на `proxy.golang.org`; после открытия доступа (через
`NO_PROXY=*.golang.org` и пр.) заменено на штатную реализацию.
## Тесты