diff --git a/.compat/core/core.go b/.compat/core/core.go deleted file mode 100644 index 6c467ee..0000000 --- a/.compat/core/core.go +++ /dev/null @@ -1,87 +0,0 @@ -// SPDX-Licence-Identifier: EUPL-1.2 - -// Package core is a local compatibility bridge for sibling modules that have -// not yet moved their imports from dappco.re/go/core to dappco.re/go. -package core - -import root "dappco.re/go" - -type ( - Action = root.Action - ActionHandler = root.ActionHandler - AtomicPointer[T any] = root.AtomicPointer[T] - Context = root.Context - Core = root.Core - CoreOption = root.CoreOption - Embed = root.Embed - Fs = root.Fs - Message = root.Message - Mutex = root.Mutex - Once = root.Once - Option = root.Option - Options = root.Options - Process = root.Process - Registry[T any] = root.Registry[T] - Result = root.Result - RWMutex = root.RWMutex - ServiceRuntime[T any] = root.ServiceRuntime[T] - Startable = root.Startable - Stoppable = root.Stoppable - Translator = root.Translator -) - -var ( - As = root.As - CleanPath = root.CleanPath - Concat = root.Concat - Contains = root.Contains - E = root.E - Env = root.Env - HasPrefix = root.HasPrefix - HasSuffix = root.HasSuffix - ID = root.ID - Is = root.Is - IsDigit = root.IsDigit - IsLetter = root.IsLetter - IsSpace = root.IsSpace - JSONMarshal = root.JSONMarshal - JSONMarshalString = root.JSONMarshalString - JSONUnmarshal = root.JSONUnmarshal - JSONUnmarshalString = root.JSONUnmarshalString - Join = root.Join - Lower = root.Lower - New = root.New - NewBuffer = root.NewBuffer - NewBuilder = root.NewBuilder - NewError = root.NewError - NewOptions = root.NewOptions - NewReader = root.NewReader - Path = root.Path - PathBase = root.PathBase - PathDir = root.PathDir - PathIsAbs = root.PathIsAbs - PathJoin = root.PathJoin - Print = root.Print - Println = root.Println - ReadAll = root.ReadAll - Replace = root.Replace - SHA256 = root.SHA256 - Security = root.Security - Split = root.Split - SplitN = root.SplitN - Sprintf = root.Sprintf - Trim = root.Trim - TrimPrefix = root.TrimPrefix - TrimSuffix = root.TrimSuffix - Upper = root.Upper - Warn = root.Warn - WithName = root.WithName -) - -func NewRegistry[T any]() *Registry[T] { - return root.NewRegistry[T]() -} - -func NewServiceRuntime[T any](c *Core, opts T) *ServiceRuntime[T] { - return root.NewServiceRuntime(c, opts) -} diff --git a/.compat/core/go.mod b/.compat/core/go.mod deleted file mode 100644 index 1ca7d81..0000000 --- a/.compat/core/go.mod +++ /dev/null @@ -1,5 +0,0 @@ -module dappco.re/go/core - -go 1.26.2 - -require dappco.re/go v0.9.0 diff --git a/docs/architecture.md b/docs/architecture.md index 7018240..7239c82 100644 --- a/docs/architecture.md +++ b/docs/architecture.md @@ -67,7 +67,7 @@ Two constructors are provided: `Data` and `Metadata` point at the same backing map when the context is created through `NewContext()`. Use whichever name is clearer in the calling code. `SetLocale()` and `SetService()` keep the active translator in sync when either value changes. -The `service` field is intentionally unexported. When nil, server builds fall back to the global `i18n.T()` default while JS builds render the key unchanged. This prevents callers from setting the service inconsistently after construction while keeping the WASM import graph lean. +The `service` field is intentionally unexported. When nil, server builds fall back to Core's i18n translator while JS builds render the key unchanged. This prevents callers from setting the service inconsistently after construction while keeping the WASM import graph lean. ## HLCRF Layout diff --git a/go.work b/go.work index 957f5b9..d10111b 100644 --- a/go.work +++ b/go.work @@ -1,3 +1,16 @@ -go 1.26.0 +go 1.26.2 -use . +// Workspace mode for development: pulls fresh code from external/ submodules. +// +// Devs: git clone --recursive -> go.work picks up local sources. +// CI: GOWORK=off -> go.mod tags drive resolution. + +use ( + ./go + ./external/go + ./external/go-i18n/go + ./external/go-inference + ./external/go-io + ./external/go-log + ./external/go-process +) diff --git a/go.work.sum b/go.work.sum deleted file mode 100644 index da30244..0000000 --- a/go.work.sum +++ /dev/null @@ -1,240 +0,0 @@ -dappco.re/go v0.9.0 h1:4ruZRNqKDDva8o6g65tYggjGVe42E6/lMZfVKXtr3p0= -dappco.re/go v0.9.0/go.mod h1:xapr7fLK4/9Pu2iSCr4qZuIuatmtx1j56zS/oPDbGyQ= -dappco.re/go/core/ws v0.2.4 h1:aQjFzI7VsZVUYeuArnKsAnrl2Oq7L1VtTcVk9RF6W1o= -dappco.re/go/core/ws v0.2.4/go.mod h1:C3riJyLLcV6QhLvYlq3P/XkGTsN598qQeGBoLdoHBU4= -forge.lthn.ai/Snider/Borg v0.3.1 h1:gfC1ZTpLoZai07oOWJiVeQ8+qJYK8A795tgVGJHbVL8= -forge.lthn.ai/Snider/Borg v0.3.1/go.mod h1:Z7DJD0yHXsxSyM7Mjl6/g4gH1NBsIz44Bf5AFlV76Wg= -forge.lthn.ai/core/api v0.1.5 h1:NwZrcOyBjaiz5/cn0n0tnlMUodi8Or6FHMx59C7Kv2o= -forge.lthn.ai/core/api v0.1.5/go.mod h1:PBnaWyOVXSOGy+0x2XAPUFMYJxQ2CNhppia/D06ZPII= -forge.lthn.ai/core/go v0.3.0 h1:mOG97ApMprwx9Ked62FdWVwXTGSF6JO6m0DrVpoH2Q4= -forge.lthn.ai/core/go v0.3.0/go.mod h1:gE6c8h+PJ2287qNhVUJ5SOe1kopEwHEquvinstpuyJc= -forge.lthn.ai/core/go-crypt v0.1.6 h1:jB7L/28S1NR+91u3GcOYuKfBLzPhhBUY1fRe6WkGVns= -forge.lthn.ai/core/go-crypt v0.1.6/go.mod h1:4VZAGqxlbadhSB66sJkdj54/HSJ+bSxVgwWK5kMMYDo= -forge.lthn.ai/core/go-io v0.1.5 h1:+XJ1YhaGGFLGtcNbPtVlndTjk+pO0Ydi2hRDj5/cHOM= -forge.lthn.ai/core/go-io v0.1.5/go.mod h1:FRtXSsi8W+U9vewCU+LBAqqbIj3wjXA4dBdSv3SAtWI= -github.com/99designs/gqlgen v0.17.88 h1:neMQDgehMwT1vYIOx/w5ZYPUU/iMNAJzRO44I5Intoc= -github.com/99designs/gqlgen v0.17.88/go.mod h1:qeqYFEgOeSKqWedOjogPizimp2iu4E23bdPvl4jTYic= -github.com/KyleBanks/depth v1.2.1 h1:5h8fQADFrWtarTdtDudMmGsC7GPbOAu6RVB3ffsVFHc= -github.com/KyleBanks/depth v1.2.1/go.mod h1:jzSb9d0L43HxTQfT+oSA1EEp2q+ne2uh6XgeJcm8brE= -github.com/ProtonMail/go-crypto v1.4.0 h1:Zq/pbM3F5DFgJiMouxEdSVY44MVoQNEKp5d5QxIQceQ= -github.com/ProtonMail/go-crypto v1.4.0/go.mod h1:e1OaTyu5SYVrO9gKOEhTc+5UcXtTUa+P3uLudwcgPqo= -github.com/agnivade/levenshtein v1.2.1 h1:EHBY3UOn1gwdy/VbFwgo4cxecRznFk7fKWN1KOX7eoM= -github.com/agnivade/levenshtein v1.2.1/go.mod h1:QVVI16kDrtSuwcpd0p1+xMC6Z/VfhtCyDIjcwga4/DU= -github.com/andybalholm/brotli v1.2.0 h1:ukwgCxwYrmACq68yiUqwIWnGY0cTPox/M94sVwToPjQ= -github.com/andybalholm/brotli v1.2.0/go.mod h1:rzTDkvFWvIrjDXZHkuS16NPggd91W3kUSvPlQ1pLaKY= -github.com/aws/aws-sdk-go-v2 v1.41.4 h1:10f50G7WyU02T56ox1wWXq+zTX9I1zxG46HYuG1hH/k= -github.com/aws/aws-sdk-go-v2 v1.41.4/go.mod h1:mwsPRE8ceUUpiTgF7QmQIJ7lgsKUPQOUl3o72QBrE1o= -github.com/aws/aws-sdk-go-v2/aws/protocol/eventstream v1.7.7 h1:3kGOqnh1pPeddVa/E37XNTaWJ8W6vrbYV9lJEkCnhuY= -github.com/aws/aws-sdk-go-v2/aws/protocol/eventstream v1.7.7/go.mod h1:lyw7GFp3qENLh7kwzf7iMzAxDn+NzjXEAGjKS2UOKqI= -github.com/aws/aws-sdk-go-v2/internal/configsources v1.4.20 h1:CNXO7mvgThFGqOFgbNAP2nol2qAWBOGfqR/7tQlvLmc= -github.com/aws/aws-sdk-go-v2/internal/configsources v1.4.20/go.mod h1:oydPDJKcfMhgfcgBUZaG+toBbwy8yPWubJXBVERtI4o= -github.com/aws/aws-sdk-go-v2/internal/endpoints/v2 v2.7.20 h1:tN6W/hg+pkM+tf9XDkWUbDEjGLb+raoBMFsTodcoYKw= -github.com/aws/aws-sdk-go-v2/internal/endpoints/v2 v2.7.20/go.mod h1:YJ898MhD067hSHA6xYCx5ts/jEd8BSOLtQDL3iZsvbc= -github.com/aws/aws-sdk-go-v2/internal/v4a v1.4.21 h1:SwGMTMLIlvDNyhMteQ6r8IJSBPlRdXX5d4idhIGbkXA= -github.com/aws/aws-sdk-go-v2/internal/v4a v1.4.21/go.mod h1:UUxgWxofmOdAMuqEsSppbDtGKLfR04HGsD0HXzvhI1k= -github.com/aws/aws-sdk-go-v2/service/internal/accept-encoding v1.13.7 h1:5EniKhLZe4xzL7a+fU3C2tfUN4nWIqlLesfrjkuPFTY= -github.com/aws/aws-sdk-go-v2/service/internal/accept-encoding v1.13.7/go.mod h1:x0nZssQ3qZSnIcePWLvcoFisRXJzcTVvYpAAdYX8+GI= -github.com/aws/aws-sdk-go-v2/service/internal/checksum v1.9.12 h1:qtJZ70afD3ISKWnoX3xB0J2otEqu3LqicRcDBqsj0hQ= -github.com/aws/aws-sdk-go-v2/service/internal/checksum v1.9.12/go.mod h1:v2pNpJbRNl4vEUWEh5ytQok0zACAKfdmKS51Hotc3pQ= -github.com/aws/aws-sdk-go-v2/service/internal/presigned-url v1.13.20 h1:2HvVAIq+YqgGotK6EkMf+KIEqTISmTYh5zLpYyeTo1Y= -github.com/aws/aws-sdk-go-v2/service/internal/presigned-url v1.13.20/go.mod h1:V4X406Y666khGa8ghKmphma/7C0DAtEQYhkq9z4vpbk= -github.com/aws/aws-sdk-go-v2/service/internal/s3shared v1.19.20 h1:siU1A6xjUZ2N8zjTHSXFhB9L/2OY8Dqs0xXiLjF30jA= -github.com/aws/aws-sdk-go-v2/service/internal/s3shared v1.19.20/go.mod h1:4TLZCmVJDM3FOu5P5TJP0zOlu9zWgDWU7aUxWbr+rcw= -github.com/aws/aws-sdk-go-v2/service/s3 v1.97.1 h1:csi9NLpFZXb9fxY7rS1xVzgPRGMt7MSNWeQ6eo247kE= -github.com/aws/aws-sdk-go-v2/service/s3 v1.97.1/go.mod h1:qXVal5H0ChqXP63t6jze5LmFalc7+ZE7wOdLtZ0LCP0= -github.com/aws/smithy-go v1.24.2 h1:FzA3bu/nt/vDvmnkg+R8Xl46gmzEDam6mZ1hzmwXFng= -github.com/aws/smithy-go v1.24.2/go.mod h1:YE2RhdIuDbA5E5bTdciG9KrW3+TiEONeUWCqxX9i1Fc= -github.com/bmatcuk/doublestar/v4 v4.10.0 h1:zU9WiOla1YA122oLM6i4EXvGW62DvKZVxIe6TYWexEs= -github.com/bmatcuk/doublestar/v4 v4.10.0/go.mod h1:xBQ8jztBU6kakFMg+8WGxn0c6z1fTSPVIjEY1Wr7jzc= -github.com/bytedance/gopkg v0.1.4 h1:oZnQwnX82KAIWb7033bEwtxvTqXcYMxDBaQxo5JJHWM= -github.com/bytedance/gopkg v0.1.4/go.mod h1:v1zWfPm21Fb+OsyXN2VAHdL6TBb2L88anLQgdyje6R4= -github.com/bytedance/sonic v1.15.0 h1:/PXeWFaR5ElNcVE84U0dOHjiMHQOwNIx3K4ymzh/uSE= -github.com/bytedance/sonic v1.15.0/go.mod h1:tFkWrPz0/CUCLEF4ri4UkHekCIcdnkqXw9VduqpJh0k= -github.com/bytedance/sonic/loader v0.5.0 h1:gXH3KVnatgY7loH5/TkeVyXPfESoqSBSBEiDd5VjlgE= -github.com/bytedance/sonic/loader v0.5.0/go.mod h1:AR4NYCk5DdzZizZ5djGqQ92eEhCCcdf5x77udYiSJRo= -github.com/casbin/casbin/v2 v2.135.0 h1:6BLkMQiGotYyS5yYeWgW19vxqugUlvHFkFiLnLR/bxk= -github.com/casbin/casbin/v2 v2.135.0/go.mod h1:FmcfntdXLTcYXv/hxgNntcRPqAbwOG9xsism0yXT+18= -github.com/casbin/govaluate v1.10.0 h1:ffGw51/hYH3w3rZcxO/KcaUIDOLP84w7nsidMVgaDG0= -github.com/casbin/govaluate v1.10.0/go.mod h1:G/UnbIjZk/0uMNaLwZZmFQrR72tYRZWQkO70si/iR7A= -github.com/cespare/xxhash/v2 v2.3.0 h1:UL815xU9SqsFlibzuggzjXhog7bL6oX9BbNZnL2UFvs= -github.com/cespare/xxhash/v2 v2.3.0/go.mod h1:VGX0DQ3Q6kWi7AoAeZDth3/j3BFtOZR5XLFGgcrjCOs= -github.com/cloudflare/circl v1.6.3 h1:9GPOhQGF9MCYUeXyMYlqTR6a5gTrgR/fBLXvUgtVcg8= -github.com/cloudflare/circl v1.6.3/go.mod h1:2eXP6Qfat4O/Yhh8BznvKnJ+uzEoTQ6jVKJRn81BiS4= -github.com/cloudwego/base64x v0.1.6 h1:t11wG9AECkCDk5fMSoxmufanudBtJ+/HemLstXDLI2M= -github.com/cloudwego/base64x v0.1.6/go.mod h1:OFcloc187FXDaYHvrNIjxSe8ncn0OOM8gEHfghB2IPU= -github.com/coreos/go-oidc/v3 v3.17.0 h1:hWBGaQfbi0iVviX4ibC7bk8OKT5qNr4klBaCHVNvehc= -github.com/coreos/go-oidc/v3 v3.17.0/go.mod h1:wqPbKFrVnE90vty060SB40FCJ8fTHTxSwyXJqZH+sI8= -github.com/dgryski/go-rendezvous v0.0.0-20200823014737-9f7001d12a5f h1:lO4WD4F/rVNCu3HqELle0jiPLLBs70cWOduZpkS1E78= -github.com/dgryski/go-rendezvous v0.0.0-20200823014737-9f7001d12a5f/go.mod h1:cuUVRXasLTGF7a8hSLbxyZXjz+1KgoB3wDUb6vlszIc= -github.com/dustin/go-humanize v1.0.1 h1:GzkhY7T5VNhEkwH0PVJgjz+fX1rhBrR7pRT3mDkpeCY= -github.com/dustin/go-humanize v1.0.1/go.mod h1:Mu1zIs6XwVuF/gI1OepvI0qD18qycQx+mFykh5fBlto= -github.com/gabriel-vasile/mimetype v1.4.13 h1:46nXokslUBsAJE/wMsp5gtO500a4F3Nkz9Ufpk2AcUM= -github.com/gabriel-vasile/mimetype v1.4.13/go.mod h1:d+9Oxyo1wTzWdyVUPMmXFvp4F9tea18J8ufA774AB3s= -github.com/gin-contrib/authz v1.0.6 h1:qAO4sSSzOPCwYRZI6YtubC+h2tZVwhwSJeyEZn2W+5k= -github.com/gin-contrib/authz v1.0.6/go.mod h1:A2B5Im1M/HIoHPjLc31j3RlENSE6j8euJY9NFdzZeYo= -github.com/gin-contrib/cors v1.7.6 h1:3gQ8GMzs1Ylpf70y8bMw4fVpycXIeX1ZemuSQIsnQQY= -github.com/gin-contrib/cors v1.7.6/go.mod h1:Ulcl+xN4jel9t1Ry8vqph23a60FwH9xVLd+3ykmTjOk= -github.com/gin-contrib/expvar v1.0.3 h1:nIbUaokxZfUEC/35h+RyWCP1SMF/suV/ARbXL3H3jrw= -github.com/gin-contrib/expvar v1.0.3/go.mod h1:bwqqmhty1Zl2JYVLzBIL6CSHDWDbQoQoicalAnBvUnY= -github.com/gin-contrib/gzip v1.2.5 h1:fIZs0S+l17pIu1P5XRJOo/YNqfIuPCrZZ3TWB7pjckI= -github.com/gin-contrib/gzip v1.2.5/go.mod h1:aomRgR7ftdZV3uWY0gW/m8rChfxau0n8YVvwlOHONzw= -github.com/gin-contrib/httpsign v1.0.3 h1:NpeDQjmUV0qFjGCm/rkXSp3HH0hU7r84q1v+VtTiI5I= -github.com/gin-contrib/httpsign v1.0.3/go.mod h1:n4GC7StmHNBhIzWzuW2njKbZMeEWh4tDbmn3bD1ab+k= -github.com/gin-contrib/location/v2 v2.0.0 h1:iLx5RatHQHSxgC0tm2AG0sIuQKecI7FhREessVd6RWY= -github.com/gin-contrib/location/v2 v2.0.0/go.mod h1:276TDNr25NENBA/NQZUuEIlwxy/I5CYVFIr/d2TgOdU= -github.com/gin-contrib/pprof v1.5.3 h1:Bj5SxJ3kQDVez/s/+f9+meedJIqLS+xlkIVDe/lcvgM= -github.com/gin-contrib/pprof v1.5.3/go.mod h1:0+LQSZ4SLO0B6+2n6JBzaEygpTBxe/nI+YEYpfQQ6xY= -github.com/gin-contrib/secure v1.1.2 h1:6G8/NCOTSywWY7TeaH/0Yfaa6bfkE5ukkqtIm7lK11U= -github.com/gin-contrib/secure v1.1.2/go.mod h1:xI3jI5/BpOYMCBtjgmIVrMA3kI7y9LwCFxs+eLf5S3w= -github.com/gin-contrib/sessions v1.0.4 h1:ha6CNdpYiTOK/hTp05miJLbpTSNfOnFg5Jm2kbcqy8U= -github.com/gin-contrib/sessions v1.0.4/go.mod h1:ccmkrb2z6iU2osiAHZG3x3J4suJK+OU27oqzlWOqQgs= -github.com/gin-contrib/slog v1.2.0 h1:vAxZfr7knD1ZYK5+pMJLP52sZXIkJXkcRPa/0dx9hSk= -github.com/gin-contrib/slog v1.2.0/go.mod h1:vYK6YltmpsEFkO0zfRMLTKHrWS3DwUSn0TMpT+kMagI= -github.com/gin-contrib/sse v1.1.0 h1:n0w2GMuUpWDVp7qSpvze6fAu9iRxJY4Hmj6AmBOU05w= -github.com/gin-contrib/sse v1.1.0/go.mod h1:hxRZ5gVpWMT7Z0B0gSNYqqsSCNIJMjzvm6fqCz9vjwM= -github.com/gin-contrib/static v1.1.5 h1:bAPqT4KTZN+4uDY1b90eSrD1t8iNzod7Jj8njwmnzz4= -github.com/gin-contrib/static v1.1.5/go.mod h1:8JSEXwZHcQ0uCrLPcsvnAJ4g+ODxeupP8Zetl9fd8wM= -github.com/gin-contrib/timeout v1.1.0 h1:WAmWseo5gfBUbMrMJu5hJxDclehfSJUmK2wGwCC/EFw= -github.com/gin-contrib/timeout v1.1.0/go.mod h1:NpRo4gd1Ad8ZQ4T6bQLVFDqiplCmPRs2nvfckxS2Fw4= -github.com/gin-gonic/gin v1.12.0 h1:b3YAbrZtnf8N//yjKeU2+MQsh2mY5htkZidOM7O0wG8= -github.com/gin-gonic/gin v1.12.0/go.mod h1:VxccKfsSllpKshkBWgVgRniFFAzFb9csfngsqANjnLc= -github.com/go-jose/go-jose/v4 v4.1.3 h1:CVLmWDhDVRa6Mi/IgCgaopNosCaHz7zrMeF9MlZRkrs= -github.com/go-jose/go-jose/v4 v4.1.3/go.mod h1:x4oUasVrzR7071A4TnHLGSPpNOm2a21K9Kf04k1rs08= -github.com/go-logr/logr v1.4.3 h1:CjnDlHq8ikf6E492q6eKboGOC0T8CDaOvkHCIg8idEI= -github.com/go-logr/logr v1.4.3/go.mod h1:9T104GzyrTigFIr8wt5mBrctHMim0Nb2HLGrmQ40KvY= -github.com/go-logr/stdr v1.2.2 h1:hSWxHoqTgW2S2qGc0LTAI563KZ5YKYRhT3MFKZMbjag= -github.com/go-logr/stdr v1.2.2/go.mod h1:mMo/vtBO5dYbehREoey6XUKy/eSumjCCveDpRre4VKE= -github.com/go-openapi/jsonpointer v0.22.5 h1:8on/0Yp4uTb9f4XvTrM2+1CPrV05QPZXu+rvu2o9jcA= -github.com/go-openapi/jsonpointer v0.22.5/go.mod h1:gyUR3sCvGSWchA2sUBJGluYMbe1zazrYWIkWPjjMUY0= -github.com/go-openapi/jsonreference v0.21.5 h1:6uCGVXU/aNF13AQNggxfysJ+5ZcU4nEAe+pJyVWRdiE= -github.com/go-openapi/jsonreference v0.21.5/go.mod h1:u25Bw85sX4E2jzFodh1FOKMTZLcfifd1Q+iKKOUxExw= -github.com/go-openapi/spec v0.22.4 h1:4pxGjipMKu0FzFiu/DPwN3CTBRlVM2yLf/YTWorYfDQ= -github.com/go-openapi/spec v0.22.4/go.mod h1:WQ6Ai0VPWMZgMT4XySjlRIE6GP1bGQOtEThn3gcWLtQ= -github.com/go-openapi/swag/conv v0.25.5 h1:wAXBYEXJjoKwE5+vc9YHhpQOFj2JYBMF2DUi+tGu97g= -github.com/go-openapi/swag/conv v0.25.5/go.mod h1:CuJ1eWvh1c4ORKx7unQnFGyvBbNlRKbnRyAvDvzWA4k= -github.com/go-openapi/swag/jsonname v0.25.5 h1:8p150i44rv/Drip4vWI3kGi9+4W9TdI3US3uUYSFhSo= -github.com/go-openapi/swag/jsonname v0.25.5/go.mod h1:jNqqikyiAK56uS7n8sLkdaNY/uq6+D2m2LANat09pKU= -github.com/go-openapi/swag/jsonutils v0.25.5 h1:XUZF8awQr75MXeC+/iaw5usY/iM7nXPDwdG3Jbl9vYo= -github.com/go-openapi/swag/jsonutils v0.25.5/go.mod h1:48FXUaz8YsDAA9s5AnaUvAmry1UcLcNVWUjY42XkrN4= -github.com/go-openapi/swag/loading v0.25.5 h1:odQ/umlIZ1ZVRteI6ckSrvP6e2w9UTF5qgNdemJHjuU= -github.com/go-openapi/swag/loading v0.25.5/go.mod h1:I8A8RaaQ4DApxhPSWLNYWh9NvmX2YKMoB9nwvv6oW6g= -github.com/go-openapi/swag/stringutils v0.25.5 h1:NVkoDOA8YBgtAR/zvCx5rhJKtZF3IzXcDdwOsYzrB6M= -github.com/go-openapi/swag/stringutils v0.25.5/go.mod h1:PKK8EZdu4QJq8iezt17HM8RXnLAzY7gW0O1KKarrZII= -github.com/go-openapi/swag/typeutils v0.25.5 h1:EFJ+PCga2HfHGdo8s8VJXEVbeXRCYwzzr9u4rJk7L7E= -github.com/go-openapi/swag/typeutils v0.25.5/go.mod h1:itmFmScAYE1bSD8C4rS0W+0InZUBrB2xSPbWt6DLGuc= -github.com/go-openapi/swag/yamlutils v0.25.5 h1:kASCIS+oIeoc55j28T4o8KwlV2S4ZLPT6G0iq2SSbVQ= -github.com/go-openapi/swag/yamlutils v0.25.5/go.mod h1:Gek1/SjjfbYvM+Iq4QGwa/2lEXde9n2j4a3wI3pNuOQ= -github.com/go-playground/locales v0.14.1 h1:EWaQ/wswjilfKLTECiXz7Rh+3BjFhfDFKv/oXslEjJA= -github.com/go-playground/locales v0.14.1/go.mod h1:hxrqLVvrK65+Rwrd5Fc6F2O76J/NuW9t0sjnWqG1slY= -github.com/go-playground/universal-translator v0.18.1 h1:Bcnm0ZwsGyWbCzImXv+pAJnYK9S473LQFuzCbDbfSFY= -github.com/go-playground/universal-translator v0.18.1/go.mod h1:xekY+UJKNuX9WP91TpwSH2VMlDf28Uj24BCp08ZFTUY= -github.com/go-playground/validator/v10 v10.30.1 h1:f3zDSN/zOma+w6+1Wswgd9fLkdwy06ntQJp0BBvFG0w= -github.com/go-playground/validator/v10 v10.30.1/go.mod h1:oSuBIQzuJxL//3MelwSLD5hc2Tu889bF0Idm9Dg26cM= -github.com/go-viper/mapstructure/v2 v2.5.0 h1:vM5IJoUAy3d7zRSVtIwQgBj7BiWtMPfmPEgAXnvj1Ro= -github.com/go-viper/mapstructure/v2 v2.5.0/go.mod h1:oJDH3BJKyqBA2TXFhDsKDGDTlndYOZ6rGS0BRZIxGhM= -github.com/goccy/go-json v0.10.6 h1:p8HrPJzOakx/mn/bQtjgNjdTcN+/S6FcG2CTtQOrHVU= -github.com/goccy/go-json v0.10.6/go.mod h1:oq7eo15ShAhp70Anwd5lgX2pLfOS3QCiwU/PULtXL6M= -github.com/goccy/go-yaml v1.19.2 h1:PmFC1S6h8ljIz6gMRBopkjP1TVT7xuwrButHID66PoM= -github.com/goccy/go-yaml v1.19.2/go.mod h1:XBurs7gK8ATbW4ZPGKgcbrY1Br56PdM69F7LkFRi1kA= -github.com/google/uuid v1.6.0 h1:NIvaJDMOsjHA8n1jAhLSgzrAzy1Hgr+hNrb57e+94F0= -github.com/google/uuid v1.6.0/go.mod h1:TIyPZe4MgqvfeYDBFedMoGGpEw/LqOeaOT+nhxU+yHo= -github.com/gorilla/context v1.1.2 h1:WRkNAv2uoa03QNIc1A6u4O7DAGMUVoopZhkiXWA2V1o= -github.com/gorilla/context v1.1.2/go.mod h1:KDPwT9i/MeWHiLl90fuTgrt4/wPcv75vFAZLaOOcbxM= -github.com/gorilla/securecookie v1.1.2 h1:YCIWL56dvtr73r6715mJs5ZvhtnY73hBvEF8kXD8ePA= -github.com/gorilla/securecookie v1.1.2/go.mod h1:NfCASbcHqRSY+3a8tlWJwsQap2VX5pwzwo4h3eOamfo= -github.com/gorilla/sessions v1.4.0 h1:kpIYOp/oi6MG/p5PgxApU8srsSw9tuFbt46Lt7auzqQ= -github.com/gorilla/sessions v1.4.0/go.mod h1:FLWm50oby91+hl7p/wRxDth9bWSuk0qVL2emc7lT5ik= -github.com/gorilla/websocket v1.5.3 h1:saDtZ6Pbx/0u+bgYQ3q96pZgCzfhKXGPqt7kZ72aNNg= -github.com/gorilla/websocket v1.5.3/go.mod h1:YR8l580nyteQvAITg2hZ9XVh4b55+EU/adAjf1fMHhE= -github.com/hashicorp/golang-lru/v2 v2.0.7 h1:a+bsQ5rvGLjzHuww6tVxozPZFVghXaHOwFs4luLUK2k= -github.com/hashicorp/golang-lru/v2 v2.0.7/go.mod h1:QeFd9opnmA6QUJc5vARoKUSoFhyfM2/ZepoAG6RGpeM= -github.com/json-iterator/go v1.1.12 h1:PV8peI4a0ysnczrg+LtxykD8LfKY9ML6u2jnxaEnrnM= -github.com/json-iterator/go v1.1.12/go.mod h1:e30LSqwooZae/UwlEbR2852Gd8hjQvJoHmT4TnhNGBo= -github.com/klauspost/cpuid/v2 v2.3.0 h1:S4CRMLnYUhGeDFDqkGriYKdfoFlDnMtqTiI/sFzhA9Y= -github.com/klauspost/cpuid/v2 v2.3.0/go.mod h1:hqwkgyIinND0mEev00jJYCxPNVRVXFQeu1XKlok6oO0= -github.com/leodido/go-urn v1.4.0 h1:WT9HwE9SGECu3lg4d/dIA+jxlljEa1/ffXKmRjqdmIQ= -github.com/leodido/go-urn v1.4.0/go.mod h1:bvxc+MVxLKB4z00jd1z+Dvzr47oO32F/QSNjSBOlFxI= -github.com/mattn/go-isatty v0.0.20 h1:xfD0iDuEKnDkl03q4limB+vH+GxLEtL/jb4xVJSWWEY= -github.com/mattn/go-isatty v0.0.20/go.mod h1:W+V8PltTTMOvKvAeJH7IuucS94S2C6jfK/D7dTCTo3Y= -github.com/modern-go/concurrent v0.0.0-20180306012644-bacd9c7ef1dd h1:TRLaZ9cD/w8PVh93nsPXa1VrQ6jlwL5oN8l14QlcNfg= -github.com/modern-go/concurrent v0.0.0-20180306012644-bacd9c7ef1dd/go.mod h1:6dJC0mAP4ikYIbvyc7fijjWJddQyLn8Ig3JB5CqoB9Q= -github.com/modern-go/reflect2 v1.0.2 h1:xBagoLtFs94CBntxluKeaWgTMpvLxC4ur3nMaC9Gz0M= -github.com/modern-go/reflect2 v1.0.2/go.mod h1:yWuevngMOJpCy52FWWMvUC8ws7m/LJsjYzDa0/r8luk= -github.com/ncruces/go-strftime v1.0.0 h1:HMFp8mLCTPp341M/ZnA4qaf7ZlsbTc+miZjCLOFAw7w= -github.com/ncruces/go-strftime v1.0.0/go.mod h1:Fwc5htZGVVkseilnfgOVb9mKy6w1naJmn9CehxcKcls= -github.com/pelletier/go-toml/v2 v2.2.4 h1:mye9XuhQ6gvn5h28+VilKrrPoQVanw5PMw/TB0t5Ec4= -github.com/pelletier/go-toml/v2 v2.2.4/go.mod h1:2gIqNv+qfxSVS7cM2xJQKtLSTLUE9V8t9Stt+h56mCY= -github.com/quic-go/qpack v0.6.0 h1:g7W+BMYynC1LbYLSqRt8PBg5Tgwxn214ZZR34VIOjz8= -github.com/quic-go/qpack v0.6.0/go.mod h1:lUpLKChi8njB4ty2bFLX2x4gzDqXwUpaO1DP9qMDZII= -github.com/quic-go/quic-go v0.59.0 h1:OLJkp1Mlm/aS7dpKgTc6cnpynnD2Xg7C1pwL6vy/SAw= -github.com/quic-go/quic-go v0.59.0/go.mod h1:upnsH4Ju1YkqpLXC305eW3yDZ4NfnNbmQRCMWS58IKU= -github.com/redis/go-redis/v9 v9.18.0 h1:pMkxYPkEbMPwRdenAzUNyFNrDgHx9U+DrBabWNfSRQs= -github.com/redis/go-redis/v9 v9.18.0/go.mod h1:k3ufPphLU5YXwNTUcCRXGxUoF1fqxnhFQmscfkCoDA0= -github.com/remyoudompheng/bigfft v0.0.0-20230129092748-24d4a6f8daec h1:W09IVJc94icq4NjY3clb7Lk8O1qJ8BdBEF8z0ibU0rE= -github.com/remyoudompheng/bigfft v0.0.0-20230129092748-24d4a6f8daec/go.mod h1:qqbHyh8v60DhA7CoWK5oRCqLrMHRGoxYCSS9EjAz6Eo= -github.com/sosodev/duration v1.4.0 h1:35ed0KiVFriGHHzZZJaZLgmTEEICIyt8Sx0RQfj9IjE= -github.com/sosodev/duration v1.4.0/go.mod h1:RQIBBX0+fMLc/D9+Jb/fwvVmo0eZvDDEERAikUR6SDg= -github.com/stretchr/objx v0.5.2 h1:xuMeJ0Sdp5ZMRXx/aWO6RZxdr3beISkG5/G/aIRr3pY= -github.com/stretchr/objx v0.5.2/go.mod h1:FRsXN1f5AsAjCGJKqEizvkpNtU+EGNCLh3NxZ/8L+MA= -github.com/swaggo/files v1.0.1 h1:J1bVJ4XHZNq0I46UU90611i9/YzdrF7x92oX1ig5IdE= -github.com/swaggo/files v1.0.1/go.mod h1:0qXmMNH6sXNf+73t65aKeB+ApmgxdnkQzVTAj2uaMUg= -github.com/swaggo/gin-swagger v1.6.1 h1:Ri06G4gc9N4t4k8hekMigJ9zKTFSlqj/9paAQCQs7cY= -github.com/swaggo/gin-swagger v1.6.1/go.mod h1:LQ+hJStHakCWRiK/YNYtJOu4mR2FP+pxLnILT/qNiTw= -github.com/swaggo/swag v1.16.6 h1:qBNcx53ZaX+M5dxVyTrgQ0PJ/ACK+NzhwcbieTt+9yI= -github.com/swaggo/swag v1.16.6/go.mod h1:ngP2etMK5a0P3QBizic5MEwpRmluJZPHjXcMoj4Xesg= -github.com/twitchyliquid64/golang-asm v0.15.1 h1:SU5vSMR7hnwNxj24w34ZyCi/FmDZTkS4MhqMhdFk5YI= -github.com/twitchyliquid64/golang-asm v0.15.1/go.mod h1:a1lVb/DtPvCB8fslRZhAngC2+aY1QWCk3Cedj/Gdt08= -github.com/ugorji/go/codec v1.3.1 h1:waO7eEiFDwidsBN6agj1vJQ4AG7lh2yqXyOXqhgQuyY= -github.com/ugorji/go/codec v1.3.1/go.mod h1:pRBVtBSKl77K30Bv8R2P+cLSGaTtex6fsA2Wjqmfxj4= -github.com/vektah/gqlparser/v2 v2.5.32 h1:k9QPJd4sEDTL+qB4ncPLflqTJ3MmjB9SrVzJrawpFSc= -github.com/vektah/gqlparser/v2 v2.5.32/go.mod h1:c1I28gSOVNzlfc4WuDlqU7voQnsqI6OG2amkBAFmgts= -go.mongodb.org/mongo-driver/v2 v2.5.0 h1:yXUhImUjjAInNcpTcAlPHiT7bIXhshCTL3jVBkF3xaE= -go.mongodb.org/mongo-driver/v2 v2.5.0/go.mod h1:yOI9kBsufol30iFsl1slpdq1I0eHPzybRWdyYUs8K/0= -go.opentelemetry.io/auto/sdk v1.2.1 h1:jXsnJ4Lmnqd11kwkBV2LgLoFMZKizbCi5fNZ/ipaZ64= -go.opentelemetry.io/auto/sdk v1.2.1/go.mod h1:KRTj+aOaElaLi+wW1kO/DZRXwkF4C5xPbEe3ZiIhN7Y= -go.opentelemetry.io/contrib/instrumentation/github.com/gin-gonic/gin/otelgin v0.67.0 h1:E7DmskpIO7ZR6QI6zKSEKIDNUYoKw9oHXP23gzbCdU0= -go.opentelemetry.io/contrib/instrumentation/github.com/gin-gonic/gin/otelgin v0.67.0/go.mod h1:WB2cS9y+AwqqKhoo9gw6/ZxlSjFBUQGZ8BQOaD3FVXM= -go.opentelemetry.io/otel v1.42.0 h1:lSQGzTgVR3+sgJDAU/7/ZMjN9Z+vUip7leaqBKy4sho= -go.opentelemetry.io/otel v1.42.0/go.mod h1:lJNsdRMxCUIWuMlVJWzecSMuNjE7dOYyWlqOXWkdqCc= -go.opentelemetry.io/otel/metric v1.42.0 h1:2jXG+3oZLNXEPfNmnpxKDeZsFI5o4J+nz6xUlaFdF/4= -go.opentelemetry.io/otel/metric v1.42.0/go.mod h1:RlUN/7vTU7Ao/diDkEpQpnz3/92J9ko05BIwxYa2SSI= -go.opentelemetry.io/otel/sdk v1.42.0 h1:LyC8+jqk6UJwdrI/8VydAq/hvkFKNHZVIWuslJXYsDo= -go.opentelemetry.io/otel/sdk v1.42.0/go.mod h1:rGHCAxd9DAph0joO4W6OPwxjNTYWghRWmkHuGbayMts= -go.opentelemetry.io/otel/trace v1.42.0 h1:OUCgIPt+mzOnaUTpOQcBiM/PLQ/Op7oq6g4LenLmOYY= -go.opentelemetry.io/otel/trace v1.42.0/go.mod h1:f3K9S+IFqnumBkKhRJMeaZeNk9epyhnCmQh/EysQCdc= -go.uber.org/atomic v1.11.0 h1:ZvwS0R+56ePWxUNi+Atn9dWONBPp/AUETXlHW0DxSjE= -go.uber.org/atomic v1.11.0/go.mod h1:LUxbIzbOniOlMKjJjyPfpl4v+PKK2cNJn91OQbhoJI0= -go.yaml.in/yaml/v3 v3.0.4 h1:tfq32ie2Jv2UxXFdLJdh3jXuOzWiL1fo0bu/FbuKpbc= -go.yaml.in/yaml/v3 v3.0.4/go.mod h1:DhzuOOF2ATzADvBadXxruRBLzYTpT36CKvDb3+aBEFg= -golang.org/x/arch v0.25.0 h1:qnk6Ksugpi5Bz32947rkUgDt9/s5qvqDPl/gBKdMJLE= -golang.org/x/arch v0.25.0/go.mod h1:0X+GdSIP+kL5wPmpK7sdkEVTt2XoYP0cSjQSbZBwOi8= -golang.org/x/crypto v0.49.0 h1:+Ng2ULVvLHnJ/ZFEq4KdcDd/cfjrrjjNSXNzxg0Y4U4= -golang.org/x/crypto v0.49.0/go.mod h1:ErX4dUh2UM+CFYiXZRTcMpEcN8b/1gxEuv3nODoYtCA= -golang.org/x/crypto v0.50.0 h1:zO47/JPrL6vsNkINmLoo/PH1gcxpls50DNogFvB5ZGI= -golang.org/x/crypto v0.50.0/go.mod h1:3muZ7vA7PBCE6xgPX7nkzzjiUq87kRItoJQM1Yo8S+Q= -golang.org/x/mod v0.34.0 h1:xIHgNUUnW6sYkcM5Jleh05DvLOtwc6RitGHbDk4akRI= -golang.org/x/mod v0.34.0/go.mod h1:ykgH52iCZe79kzLLMhyCUzhMci+nQj+0XkbXpNYtVjY= -golang.org/x/net v0.52.0 h1:He/TN1l0e4mmR3QqHMT2Xab3Aj3L9qjbhRm78/6jrW0= -golang.org/x/net v0.52.0/go.mod h1:R1MAz7uMZxVMualyPXb+VaqGSa3LIaUqk0eEt3w36Sw= -golang.org/x/net v0.53.0 h1:d+qAbo5L0orcWAr0a9JweQpjXF19LMXJE8Ey7hwOdUA= -golang.org/x/net v0.53.0/go.mod h1:JvMuJH7rrdiCfbeHoo3fCQU24Lf5JJwT9W3sJFulfgs= -golang.org/x/oauth2 v0.36.0 h1:peZ/1z27fi9hUOFCAZaHyrpWG5lwe0RJEEEeH0ThlIs= -golang.org/x/oauth2 v0.36.0/go.mod h1:YDBUJMTkDnJS+A4BP4eZBjCqtokkg1hODuPjwiGPO7Q= -golang.org/x/sync v0.20.0 h1:e0PTpb7pjO8GAtTs2dQ6jYa5BWYlMuX047Dco/pItO4= -golang.org/x/sync v0.20.0/go.mod h1:9xrNwdLfx4jkKbNva9FpL6vEN7evnE43NNNJQ2LF3+0= -golang.org/x/sys v0.42.0 h1:omrd2nAlyT5ESRdCLYdm3+fMfNFE/+Rf4bDIQImRJeo= -golang.org/x/sys v0.42.0/go.mod h1:4GL1E5IUh+htKOUEOaiffhrAeqysfVGipDYzABqnCmw= -golang.org/x/sys v0.43.0 h1:Rlag2XtaFTxp19wS8MXlJwTvoh8ArU6ezoyFsMyCTNI= -golang.org/x/sys v0.43.0/go.mod h1:4GL1E5IUh+htKOUEOaiffhrAeqysfVGipDYzABqnCmw= -golang.org/x/tools v0.43.0 h1:12BdW9CeB3Z+J/I/wj34VMl8X+fEXBxVR90JeMX5E7s= -golang.org/x/tools v0.43.0/go.mod h1:uHkMso649BX2cZK6+RpuIPXS3ho2hZo4FVwfoy1vIk0= -google.golang.org/protobuf v1.36.11 h1:fV6ZwhNocDyBLK0dj+fg8ektcVegBBuEolpbTQyBNVE= -google.golang.org/protobuf v1.36.11/go.mod h1:HTf+CrKn2C3g5S8VImy6tdcUvCska2kB7j23XfzDpco= -modernc.org/libc v1.70.0 h1:U58NawXqXbgpZ/dcdS9kMshu08aiA6b7gusEusqzNkw= -modernc.org/libc v1.70.0/go.mod h1:OVmxFGP1CI/Z4L3E0Q3Mf1PDE0BucwMkcXjjLntvHJo= -modernc.org/mathutil v1.7.1 h1:GCZVGXdaN8gTqB1Mf/usp1Y/hSqgI2vAGGP4jZMCxOU= -modernc.org/mathutil v1.7.1/go.mod h1:4p5IwJITfppl0G4sUEDtCr4DthTaT47/N3aT6MhfgJg= -modernc.org/memory v1.11.0 h1:o4QC8aMQzmcwCK3t3Ux/ZHmwFPzE6hf2Y5LbkRs+hbI= -modernc.org/memory v1.11.0/go.mod h1:/JP4VbVC+K5sU2wZi9bHoq2MAkCnrt2r98UGeSK7Mjw= -modernc.org/sqlite v1.47.0 h1:R1XyaNpoW4Et9yly+I2EeX7pBza/w+pmYee/0HJDyKk= -modernc.org/sqlite v1.47.0/go.mod h1:hWjRO6Tj/5Ik8ieqxQybiEOUXy0NJFNp2tpvVpKlvig= diff --git a/bench_test.go b/go/bench_test.go similarity index 100% rename from bench_test.go rename to go/bench_test.go diff --git a/cmd/codegen/main.go b/go/cmd/codegen/main.go similarity index 93% rename from cmd/codegen/main.go rename to go/cmd/codegen/main.go index 73107f2..f894ab9 100644 --- a/cmd/codegen/main.go +++ b/go/cmd/codegen/main.go @@ -17,7 +17,6 @@ import ( core "dappco.re/go" "dappco.re/go/html/codegen" coreio "dappco.re/go/io" - log "dappco.re/go/log" ) const defaultPollInterval = 250 * time.Millisecond @@ -28,7 +27,7 @@ func generate(data []byte, emitTypes bool) core.Result { var slots map[string]string if result := core.JSONUnmarshal(data, &slots); !result.OK { err, _ := result.Value.(error) - return core.Fail(log.E("codegen", "invalid JSON", err)) + return core.Fail(core.E("codegen", "invalid JSON", err)) } if emitTypes { @@ -89,10 +88,10 @@ func writeOutput(output any, content string) core.Result { func runDaemon(ctx context.Context, inputPath, outputPath string, emitTypes bool, pollInterval time.Duration) core.Result { if inputPath == "" { - return core.Fail(log.E("codegen", "watch mode requires -input", nil)) + return core.Fail(core.E("codegen", "watch mode requires -input", nil)) } if outputPath == "" { - return core.Fail(log.E("codegen", "watch mode requires -output", nil)) + return core.Fail(core.E("codegen", "watch mode requires -output", nil)) } if pollInterval <= 0 { pollInterval = defaultPollInterval @@ -308,19 +307,19 @@ func pollIntervalFromOptions(opts core.Options) core.Result { pollInterval, err := time.ParseDuration(raw) if err != nil { - return core.Fail(log.E("codegen", "invalid poll interval", err)) + return core.Fail(core.E("codegen", "invalid poll interval", err)) } return core.Ok(pollInterval) } func runCodegenApp(c *core.Core) core.Result { if c == nil { - return core.Fail(log.E("codegen.main", "core app is required", nil)) + return core.Fail(core.E("codegen.main", "core app is required", nil)) } defer func() { if result := c.ServiceShutdown(context.Background()); !result.OK { - log.Warn("codegen shutdown failed", "scope", "codegen.main", "err", result.Error()) + core.Warn("codegen shutdown failed", "scope", "codegen.main", "err", result.Error()) } }() @@ -356,14 +355,14 @@ func resultError(op, msg string, result core.Result) core.Result { return core.Ok(nil) } if err, ok := result.Value.(error); ok && err != nil { - return core.Fail(log.E(op, msg, err)) + return core.Fail(core.E(op, msg, err)) } - return core.Fail(log.E(op, msg, nil)) + return core.Fail(core.E(op, msg, nil)) } func main() { c := newCodegenApp() if result := runCodegenApp(c); !result.OK { - log.Error("codegen failed", "scope", "codegen.main", "err", result.Error()) + core.Error("codegen failed", "scope", "codegen.main", "err", result.Error()) } } diff --git a/cmd/codegen/main_test.go b/go/cmd/codegen/main_test.go similarity index 100% rename from cmd/codegen/main_test.go rename to go/cmd/codegen/main_test.go diff --git a/cmd/wasm/main.go b/go/cmd/wasm/main.go similarity index 100% rename from cmd/wasm/main.go rename to go/cmd/wasm/main.go diff --git a/cmd/wasm/main_test.go b/go/cmd/wasm/main_test.go similarity index 100% rename from cmd/wasm/main_test.go rename to go/cmd/wasm/main_test.go diff --git a/cmd/wasm/register.go b/go/cmd/wasm/register.go similarity index 79% rename from cmd/wasm/register.go rename to go/cmd/wasm/register.go index 95d1af9..fd1f0d0 100644 --- a/cmd/wasm/register.go +++ b/go/cmd/wasm/register.go @@ -6,7 +6,6 @@ import ( core "dappco.re/go" "dappco.re/go/html/codegen" - log "dappco.re/go/log" ) // buildComponentJS takes a JSON slot map and returns the WC bundle JS result. @@ -17,11 +16,11 @@ func buildComponentJS(slotsJSON string) core.Result { var slots map[string]string if result := core.JSONUnmarshalString(slotsJSON, &slots); !result.OK { err, _ := result.Value.(error) - return core.Fail(log.E("buildComponentJS", "unmarshal JSON", err)) + return core.Fail(core.E("buildComponentJS", "unmarshal JSON", err)) } return codegen.GenerateBundle(slots) } func main() { - log.Info("go-html WASM module — build with GOOS=js GOARCH=wasm") + core.Info("go-html WASM module — build with GOOS=js GOARCH=wasm") } diff --git a/cmd/wasm/register_test.go b/go/cmd/wasm/register_test.go similarity index 100% rename from cmd/wasm/register_test.go rename to go/cmd/wasm/register_test.go diff --git a/cmd/wasm/render_layout.go b/go/cmd/wasm/render_layout.go similarity index 100% rename from cmd/wasm/render_layout.go rename to go/cmd/wasm/render_layout.go diff --git a/cmd/wasm/render_layout_test.go b/go/cmd/wasm/render_layout_test.go similarity index 100% rename from cmd/wasm/render_layout_test.go rename to go/cmd/wasm/render_layout_test.go diff --git a/cmd/wasm/size_test.go b/go/cmd/wasm/size_test.go similarity index 80% rename from cmd/wasm/size_test.go rename to go/cmd/wasm/size_test.go index 388b61f..3d50dde 100644 --- a/cmd/wasm/size_test.go +++ b/go/cmd/wasm/size_test.go @@ -26,18 +26,7 @@ func TestCmdWasm_WASMBinarySizeGood(t *testing.T) { dir := t.TempDir() out := core.Path(dir, "gohtml.wasm") - factory := process.NewService(process.Options{}) - serviceValue, err := factory(core.New()) - if err != nil { - t.Fatalf("unexpected error: %v", err) - } - - svc, ok := serviceValue.(*process.Service) - if !ok { - t.Fatalf("process service factory returned %T", serviceValue) - } - - output, err := svc.RunWithOptions(context.Background(), process.RunOptions{ + output, err := process.RunWithOptions(context.Background(), process.RunOptions{ Command: "go", Args: []string{"build", "-ldflags=-s -w", "-o", out, "."}, Dir: ".", diff --git a/cmd/wasm/test.html b/go/cmd/wasm/test.html similarity index 100% rename from cmd/wasm/test.html rename to go/cmd/wasm/test.html diff --git a/codegen/bench_test.go b/go/codegen/bench_test.go similarity index 100% rename from codegen/bench_test.go rename to go/codegen/bench_test.go diff --git a/codegen/codegen.go b/go/codegen/codegen.go similarity index 94% rename from codegen/codegen.go rename to go/codegen/codegen.go index ccdcf54..040cf2e 100644 --- a/codegen/codegen.go +++ b/go/codegen/codegen.go @@ -9,7 +9,6 @@ import ( "unicode/utf8" core "dappco.re/go" - log "dappco.re/go/log" ) var reservedCustomElementNames = map[string]struct{}{ @@ -141,7 +140,7 @@ var wcTemplate = template.Must(template.New("wc").Parse(`class {{.ClassName}} ex // Usage example: result := GenerateClass("nav-bar", "H") func GenerateClass(tag, slot string) core.Result { if !isValidCustomElementTag(tag) { - return core.Fail(log.E("codegen.GenerateClass", "custom element tag must be a lowercase hyphenated name: "+tag, nil)) + return core.Fail(core.E("codegen.GenerateClass", "custom element tag must be a lowercase hyphenated name: "+tag, nil)) } b := core.NewBuilder() tagLiteral := escapeJSStringLiteral(tag) @@ -154,7 +153,7 @@ func GenerateClass(tag, slot string) core.Result { SlotLiteral: slotLiteral, }) if err != nil { - return core.Fail(log.E("codegen.GenerateClass", "template exec", err)) + return core.Fail(core.E("codegen.GenerateClass", "template exec", err)) } return core.Ok(b.String()) } @@ -214,7 +213,7 @@ func GenerateBundle(slots map[string]string) core.Result { if value, ok := clsResult.Value.(error); ok { err = value } - return core.Fail(log.E("codegen.GenerateBundle", "generate class for tag "+tag, err)) + return core.Fail(core.E("codegen.GenerateBundle", "generate class for tag "+tag, err)) } cls, _ := clsResult.Value.(string) b.WriteString(cls) diff --git a/codegen/codegen_example_test.go b/go/codegen/codegen_example_test.go similarity index 100% rename from codegen/codegen_example_test.go rename to go/codegen/codegen_example_test.go diff --git a/codegen/codegen_test.go b/go/codegen/codegen_test.go similarity index 100% rename from codegen/codegen_test.go rename to go/codegen/codegen_test.go diff --git a/codegen/doc.go b/go/codegen/doc.go similarity index 100% rename from codegen/doc.go rename to go/codegen/doc.go diff --git a/codegen/typescript.go b/go/codegen/typescript.go similarity index 100% rename from codegen/typescript.go rename to go/codegen/typescript.go diff --git a/codegen/typescript_example_test.go b/go/codegen/typescript_example_test.go similarity index 100% rename from codegen/typescript_example_test.go rename to go/codegen/typescript_example_test.go diff --git a/codegen/typescript_test.go b/go/codegen/typescript_test.go similarity index 100% rename from codegen/typescript_test.go rename to go/codegen/typescript_test.go diff --git a/context.go b/go/context.go similarity index 100% rename from context.go rename to go/context.go diff --git a/context_example_test.go b/go/context_example_test.go similarity index 100% rename from context_example_test.go rename to go/context_example_test.go diff --git a/context_test.go b/go/context_test.go similarity index 100% rename from context_test.go rename to go/context_test.go diff --git a/doc.go b/go/doc.go similarity index 100% rename from doc.go rename to go/doc.go diff --git a/edge_test.go b/go/edge_test.go similarity index 100% rename from edge_test.go rename to go/edge_test.go diff --git a/entitled.go b/go/entitled.go similarity index 100% rename from entitled.go rename to go/entitled.go diff --git a/entitled_example_test.go b/go/entitled_example_test.go similarity index 100% rename from entitled_example_test.go rename to go/entitled_example_test.go diff --git a/entitled_test.go b/go/entitled_test.go similarity index 100% rename from entitled_test.go rename to go/entitled_test.go diff --git a/go.mod b/go/go.mod similarity index 97% rename from go.mod rename to go/go.mod index 13a26f6..2273de6 100644 --- a/go.mod +++ b/go/go.mod @@ -5,13 +5,13 @@ go 1.26.2 require ( dappco.re/go/i18n v0.8.0-alpha.1 dappco.re/go/io v0.8.0-alpha.1 - dappco.re/go/log v0.8.0-alpha.1 dappco.re/go/process v0.8.0-alpha.1 github.com/gin-gonic/gin v1.12.0 ) require ( dappco.re/go/core v0.8.0-alpha.1 // indirect + dappco.re/go/log v0.8.0-alpha.1 // indirect github.com/bytedance/gopkg v0.1.4 // indirect github.com/bytedance/sonic v1.15.0 // indirect github.com/bytedance/sonic/loader v0.5.0 // indirect diff --git a/go.sum b/go/go.sum similarity index 100% rename from go.sum rename to go/go.sum diff --git a/grammar.go b/go/grammar.go similarity index 100% rename from grammar.go rename to go/grammar.go diff --git a/grammar_example_test.go b/go/grammar_example_test.go similarity index 100% rename from grammar_example_test.go rename to go/grammar_example_test.go diff --git a/grammar_test.go b/go/grammar_test.go similarity index 100% rename from grammar_test.go rename to go/grammar_test.go diff --git a/integration_test.go b/go/integration_test.go similarity index 100% rename from integration_test.go rename to go/integration_test.go diff --git a/layout.go b/go/layout.go similarity index 100% rename from layout.go rename to go/layout.go diff --git a/layout_example_test.go b/go/layout_example_test.go similarity index 100% rename from layout_example_test.go rename to go/layout_example_test.go diff --git a/layout_test.go b/go/layout_test.go similarity index 100% rename from layout_test.go rename to go/layout_test.go diff --git a/node.go b/go/node.go similarity index 100% rename from node.go rename to go/node.go diff --git a/node_example_test.go b/go/node_example_test.go similarity index 100% rename from node_example_test.go rename to go/node_example_test.go diff --git a/node_test.go b/go/node_test.go similarity index 100% rename from node_test.go rename to go/node_test.go diff --git a/path.go b/go/path.go similarity index 100% rename from path.go rename to go/path.go diff --git a/path_example_test.go b/go/path_example_test.go similarity index 100% rename from path_example_test.go rename to go/path_example_test.go diff --git a/path_test.go b/go/path_test.go similarity index 100% rename from path_test.go rename to go/path_test.go diff --git a/pipeline.go b/go/pipeline.go similarity index 100% rename from pipeline.go rename to go/pipeline.go diff --git a/pipeline_example_test.go b/go/pipeline_example_test.go similarity index 100% rename from pipeline_example_test.go rename to go/pipeline_example_test.go diff --git a/pipeline_test.go b/go/pipeline_test.go similarity index 100% rename from pipeline_test.go rename to go/pipeline_test.go diff --git a/pkg/api/handlers.go b/go/pkg/api/handlers.go similarity index 100% rename from pkg/api/handlers.go rename to go/pkg/api/handlers.go diff --git a/pkg/api/handlers_test.go b/go/pkg/api/handlers_test.go similarity index 100% rename from pkg/api/handlers_test.go rename to go/pkg/api/handlers_test.go diff --git a/pkg/api/provider.go b/go/pkg/api/provider.go similarity index 100% rename from pkg/api/provider.go rename to go/pkg/api/provider.go diff --git a/pkg/api/provider_example_test.go b/go/pkg/api/provider_example_test.go similarity index 100% rename from pkg/api/provider_example_test.go rename to go/pkg/api/provider_example_test.go diff --git a/pkg/api/provider_test.go b/go/pkg/api/provider_test.go similarity index 100% rename from pkg/api/provider_test.go rename to go/pkg/api/provider_test.go diff --git a/render.go b/go/render.go similarity index 100% rename from render.go rename to go/render.go diff --git a/render_example_test.go b/go/render_example_test.go similarity index 100% rename from render_example_test.go rename to go/render_example_test.go diff --git a/render_test.go b/go/render_test.go similarity index 100% rename from render_test.go rename to go/render_test.go diff --git a/responsive.go b/go/responsive.go similarity index 100% rename from responsive.go rename to go/responsive.go diff --git a/responsive_example_test.go b/go/responsive_example_test.go similarity index 100% rename from responsive_example_test.go rename to go/responsive_example_test.go diff --git a/responsive_test.go b/go/responsive_test.go similarity index 100% rename from responsive_test.go rename to go/responsive_test.go diff --git a/result_default.go b/go/result_default.go similarity index 100% rename from result_default.go rename to go/result_default.go diff --git a/result_js.go b/go/result_js.go similarity index 100% rename from result_js.go rename to go/result_js.go diff --git a/shadow.go b/go/shadow.go similarity index 100% rename from shadow.go rename to go/shadow.go diff --git a/shadow_example_test.go b/go/shadow_example_test.go similarity index 100% rename from shadow_example_test.go rename to go/shadow_example_test.go diff --git a/shadow_test.go b/go/shadow_test.go similarity index 100% rename from shadow_test.go rename to go/shadow_test.go diff --git a/test_helpers_test.go b/go/test_helpers_test.go similarity index 100% rename from test_helpers_test.go rename to go/test_helpers_test.go diff --git a/text_builder_default.go b/go/text_builder_default.go similarity index 100% rename from text_builder_default.go rename to go/text_builder_default.go diff --git a/text_builder_default_example_test.go b/go/text_builder_default_example_test.go similarity index 100% rename from text_builder_default_example_test.go rename to go/text_builder_default_example_test.go diff --git a/text_builder_default_test.go b/go/text_builder_default_test.go similarity index 100% rename from text_builder_default_test.go rename to go/text_builder_default_test.go diff --git a/text_builder_js.go b/go/text_builder_js.go similarity index 100% rename from text_builder_js.go rename to go/text_builder_js.go diff --git a/text_builder_js_example_test.go b/go/text_builder_js_example_test.go similarity index 100% rename from text_builder_js_example_test.go rename to go/text_builder_js_example_test.go diff --git a/text_builder_js_test.go b/go/text_builder_js_test.go similarity index 100% rename from text_builder_js_test.go rename to go/text_builder_js_test.go diff --git a/text_translate.go b/go/text_translate.go similarity index 100% rename from text_translate.go rename to go/text_translate.go diff --git a/text_translate_args.go b/go/text_translate_args.go similarity index 100% rename from text_translate_args.go rename to go/text_translate_args.go diff --git a/text_translate_default.go b/go/text_translate_default.go similarity index 57% rename from text_translate_default.go rename to go/text_translate_default.go index d2e3447..d7919d4 100644 --- a/text_translate_default.go +++ b/go/text_translate_default.go @@ -9,5 +9,10 @@ import ( ) func translateDefault(key string, args ...any) string { - return i18n.T(key, args...) + result := i18n.Translate(key, args...) + if result.OK { + value, _ := result.Value.(string) + return value + } + return key } diff --git a/text_translate_js.go b/go/text_translate_js.go similarity index 100% rename from text_translate_js.go rename to go/text_translate_js.go diff --git a/wasm.go b/go/wasm.go similarity index 100% rename from wasm.go rename to go/wasm.go diff --git a/wasm_example_test.go b/go/wasm_example_test.go similarity index 100% rename from wasm_example_test.go rename to go/wasm_example_test.go diff --git a/wasm_test.go b/go/wasm_test.go similarity index 100% rename from wasm_test.go rename to go/wasm_test.go