diff --git a/CHANGELOG.md b/CHANGELOG.md index bd21eb42..4119b42b 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,5 +1,21 @@ # Changelog +## [4.2.9](https://github.com/cloudquery/filetypes/compare/v4.2.8...v4.2.9) (2024-02-01) + + +### Bug Fixes + +* **deps:** Update golang.org/x/exp digest to 1b97071 ([#425](https://github.com/cloudquery/filetypes/issues/425)) ([e4b0584](https://github.com/cloudquery/filetypes/commit/e4b05844066de9e3421d8e3ed4b250e75102dbb1)) +* **deps:** Update google.golang.org/genproto/googleapis/rpc digest to 1f4bbc5 ([#426](https://github.com/cloudquery/filetypes/issues/426)) ([f98c99f](https://github.com/cloudquery/filetypes/commit/f98c99f9cbae05cab9273a862833e28ec1a147cd)) +* **deps:** Update module github.com/cloudquery/cloudquery-api-go to v1.7.1 ([#420](https://github.com/cloudquery/filetypes/issues/420)) ([64974a0](https://github.com/cloudquery/filetypes/commit/64974a0bce7afad2adbed32e8d6b276456d1041b)) +* **deps:** Update module github.com/cloudquery/cloudquery-api-go to v1.7.2 ([#422](https://github.com/cloudquery/filetypes/issues/422)) ([d1a53cd](https://github.com/cloudquery/filetypes/commit/d1a53cda25b30a4239196221bf23d081468fb490)) +* **deps:** Update module github.com/cloudquery/plugin-sdk/v4 to v4.29.0 ([#423](https://github.com/cloudquery/filetypes/issues/423)) ([96ffdd3](https://github.com/cloudquery/filetypes/commit/96ffdd3ff90a6b6dcaefe735051f4d4fa346aa9a)) +* **deps:** Update module github.com/kataras/iris/v12 to v12.2.10 ([#427](https://github.com/cloudquery/filetypes/issues/427)) ([376f86d](https://github.com/cloudquery/filetypes/commit/376f86d01c94d05b3b21437adeabe53cfdcd6741)) +* **deps:** Update module github.com/klauspost/compress to v1.17.5 ([#428](https://github.com/cloudquery/filetypes/issues/428)) ([d71c817](https://github.com/cloudquery/filetypes/commit/d71c817f318d8aaff715a30e11f129bd6f8710fa)) +* **deps:** Update module github.com/pierrec/lz4/v4 to v4.1.21 ([#429](https://github.com/cloudquery/filetypes/issues/429)) ([3898470](https://github.com/cloudquery/filetypes/commit/389847070471fcf3ccd6c90ba1a266d370501f74)) +* **deps:** Update module github.com/tdewolff/minify/v2 to v2.20.16 ([#430](https://github.com/cloudquery/filetypes/issues/430)) ([a42418e](https://github.com/cloudquery/filetypes/commit/a42418e528bfa0d7fdd69aec42752917c60d48b2)) +* Rename spec structs for better representation in JSON schema ([#424](https://github.com/cloudquery/filetypes/issues/424)) ([efeef19](https://github.com/cloudquery/filetypes/commit/efeef19692c93966d4fc3f9e8906b78b1339d715)) + ## [4.2.8](https://github.com/cloudquery/filetypes/compare/v4.2.7...v4.2.8) (2024-01-31) diff --git a/Makefile b/Makefile index 939b73ad..cd8d5016 100644 --- a/Makefile +++ b/Makefile @@ -8,6 +8,8 @@ lint: .PHONY: gen-spec-schema gen-spec-schema: + # vendor for gen + go mod vendor go run schemagen/main.go # All gen targets diff --git a/csv/spec.go b/csv/spec.go index e1f0b7dc..ad24a266 100644 --- a/csv/spec.go +++ b/csv/spec.go @@ -6,12 +6,13 @@ import ( "github.com/invopop/jsonschema" ) -type Spec struct { +// nolint:revive +type CSVSpec struct { SkipHeader bool `json:"skip_header,omitempty"` Delimiter string `json:"delimiter,omitempty"` } -func (Spec) JSONSchema() *jsonschema.Schema { +func (CSVSpec) JSONSchema() *jsonschema.Schema { properties := jsonschema.NewProperties() properties.Set("skip_header", &jsonschema.Schema{ Type: "boolean", @@ -32,13 +33,13 @@ func (Spec) JSONSchema() *jsonschema.Schema { } } -func (s *Spec) SetDefaults() { +func (s *CSVSpec) SetDefaults() { if s.Delimiter == "" { s.Delimiter = "," } } -func (s *Spec) Validate() error { +func (s *CSVSpec) Validate() error { if len(s.Delimiter) != 1 { return fmt.Errorf("delimiter must be a single character") } diff --git a/csv/spec_test.go b/csv/spec_test.go index a274d56a..7206e800 100644 --- a/csv/spec_test.go +++ b/csv/spec_test.go @@ -8,7 +8,7 @@ import ( ) func TestSpec_JSONSchema(t *testing.T) { - schema, err := jsonschema.Generate(Spec{}) + schema, err := jsonschema.Generate(CSVSpec{}) require.NoError(t, err) jsonschema.TestJSONSchema(t, string(schema), []jsonschema.TestCase{ diff --git a/go.mod b/go.mod index bb3316cb..63e959a8 100644 --- a/go.mod +++ b/go.mod @@ -6,7 +6,7 @@ require ( github.com/apache/arrow/go/v15 v15.0.0-20240115115805-d7bc55542e61 github.com/bradleyjkemp/cupaloy/v2 v2.8.0 github.com/cloudquery/codegen v0.3.12 - github.com/cloudquery/plugin-sdk/v4 v4.28.0 + github.com/cloudquery/plugin-sdk/v4 v4.29.0 github.com/goccy/go-json v0.10.2 github.com/invopop/jsonschema v0.12.0 github.com/stretchr/testify v1.8.4 @@ -20,7 +20,7 @@ require ( github.com/JohnCGriffin/overflow v0.0.0-20211019200055-46fa312c352c // indirect github.com/Joker/jade v1.1.3 // indirect github.com/Shopify/goreferrer v0.0.0-20220729165902-8cddb4f5de06 // indirect - github.com/andybalholm/brotli v1.0.6 // indirect + github.com/andybalholm/brotli v1.1.0 // indirect github.com/apache/thrift v0.19.0 // indirect github.com/apapsch/go-jsonmerge/v2 v2.0.0 // indirect github.com/aymerick/douceur v0.2.0 // indirect @@ -29,7 +29,7 @@ require ( github.com/bytedance/sonic v1.10.2 // indirect github.com/chenzhuoyu/base64x v0.0.0-20230717121745-296ad89f973d // indirect github.com/chenzhuoyu/iasm v0.9.1 // indirect - github.com/cloudquery/cloudquery-api-go v1.7.0 // indirect + github.com/cloudquery/cloudquery-api-go v1.7.2 // indirect github.com/davecgh/go-spew v1.1.1 // indirect github.com/deepmap/oapi-codegen v1.15.0 // indirect github.com/fatih/structs v1.1.0 // indirect @@ -44,19 +44,19 @@ require ( github.com/golang/snappy v0.0.4 // indirect github.com/gomarkdown/markdown v0.0.0-20231222211730-1d6d20845b47 // indirect github.com/google/flatbuffers v23.5.26+incompatible // indirect - github.com/google/uuid v1.4.0 // indirect + github.com/google/uuid v1.5.0 // indirect github.com/gorilla/css v1.0.1 // indirect github.com/iris-contrib/schema v0.0.6 // indirect github.com/josharian/intern v1.0.0 // indirect github.com/json-iterator/go v1.1.12 // indirect github.com/kataras/blocks v0.0.8 // indirect github.com/kataras/golog v0.1.11 // indirect - github.com/kataras/iris/v12 v12.2.8 // indirect + github.com/kataras/iris/v12 v12.2.10 // indirect github.com/kataras/pio v0.0.13 // indirect github.com/kataras/sitemap v0.0.6 // indirect github.com/kataras/tunnel v0.0.4 // indirect github.com/klauspost/asmfmt v1.3.2 // indirect - github.com/klauspost/compress v1.17.4 // indirect + github.com/klauspost/compress v1.17.5 // indirect github.com/klauspost/cpuid/v2 v2.2.6 // indirect github.com/labstack/echo/v4 v4.11.4 // indirect github.com/labstack/gommon v0.4.2 // indirect @@ -71,15 +71,15 @@ require ( github.com/modern-go/concurrent v0.0.0-20180306012644-bacd9c7ef1dd // indirect github.com/modern-go/reflect2 v1.0.2 // indirect github.com/pelletier/go-toml/v2 v2.0.8 // indirect - github.com/pierrec/lz4/v4 v4.1.18 // indirect + github.com/pierrec/lz4/v4 v4.1.21 // indirect github.com/pmezard/go-difflib v1.0.0 // indirect github.com/rs/zerolog v1.31.0 // indirect github.com/russross/blackfriday/v2 v2.1.0 // indirect github.com/santhosh-tekuri/jsonschema/v5 v5.3.1 // indirect github.com/schollz/closestmatch v2.1.0+incompatible // indirect github.com/sirupsen/logrus v1.9.3 // indirect - github.com/tdewolff/minify/v2 v2.20.6 // indirect - github.com/tdewolff/parse/v2 v2.7.4 // indirect + github.com/tdewolff/minify/v2 v2.20.16 // indirect + github.com/tdewolff/parse/v2 v2.7.11 // indirect github.com/thoas/go-funk v0.9.3 // indirect github.com/twitchyliquid64/golang-asm v0.15.1 // indirect github.com/ugorji/go/codec v1.2.11 // indirect @@ -90,19 +90,19 @@ require ( github.com/yosssi/ace v0.0.5 // indirect github.com/zeebo/xxh3 v1.0.2 // indirect golang.org/x/arch v0.3.0 // indirect - golang.org/x/crypto v0.17.0 // indirect - golang.org/x/exp v0.0.0-20231226003508-02704c960a9b // indirect + golang.org/x/crypto v0.18.0 // indirect + golang.org/x/exp v0.0.0-20240119083558-1b970713d09a // indirect golang.org/x/mod v0.14.0 // indirect - golang.org/x/net v0.19.0 // indirect - golang.org/x/sync v0.5.0 // indirect - golang.org/x/sys v0.15.0 // indirect + golang.org/x/net v0.20.0 // indirect + golang.org/x/sync v0.6.0 // indirect + golang.org/x/sys v0.16.0 // indirect golang.org/x/text v0.14.0 // indirect golang.org/x/time v0.5.0 // indirect - golang.org/x/tools v0.16.0 // indirect + golang.org/x/tools v0.17.0 // indirect golang.org/x/xerrors v0.0.0-20231012003039-104605ab7028 // indirect - google.golang.org/genproto/googleapis/rpc v0.0.0-20231212172506-995d672761c0 // indirect + google.golang.org/genproto/googleapis/rpc v0.0.0-20240125205218-1f4bbc51befe // indirect google.golang.org/grpc v1.60.0 // indirect - google.golang.org/protobuf v1.31.0 // indirect + google.golang.org/protobuf v1.32.0 // indirect gopkg.in/ini.v1 v1.67.0 // indirect gopkg.in/yaml.v3 v3.0.1 // indirect ) diff --git a/go.sum b/go.sum index 47e65a33..4868569c 100644 --- a/go.sum +++ b/go.sum @@ -15,8 +15,8 @@ github.com/Shopify/goreferrer v0.0.0-20220729165902-8cddb4f5de06 h1:KkH3I3sJuOLP github.com/Shopify/goreferrer v0.0.0-20220729165902-8cddb4f5de06/go.mod h1:7erjKLwalezA0k99cWs5L11HWOAPNjdUZ6RxH1BXbbM= github.com/ajg/form v1.5.1 h1:t9c7v8JUKu/XxOGBU0yjNpaMloxGEJhUkqFRq0ibGeU= github.com/ajg/form v1.5.1/go.mod h1:uL1WgH+h2mgNtvBq0339dVnzXdBETtL2LeUXaIv25UY= -github.com/andybalholm/brotli v1.0.6 h1:Yf9fFpf49Zrxb9NlQaluyE92/+X7UVHlhMNJN2sxfOI= -github.com/andybalholm/brotli v1.0.6/go.mod h1:fO7iG3H7G2nSZ7m0zPUDn85XEX2GTukHGRSepvi9Eig= +github.com/andybalholm/brotli v1.1.0 h1:eLKJA0d02Lf0mVpIDgYnqXcUn0GqVmEFny3VuID1U3M= +github.com/andybalholm/brotli v1.1.0/go.mod h1:sms7XGricyQI9K10gOSf56VKKWS4oLer58Q+mhRPtnY= github.com/apache/arrow/go/v15 v15.0.0-20240115115805-d7bc55542e61 h1:iRgSd0hkAl8itNDxS4fbs681vr35taMkifcolb+AhCw= github.com/apache/arrow/go/v15 v15.0.0-20240115115805-d7bc55542e61/go.mod h1:DGXsR3ajT524njufqf95822i+KTh+yea1jass9YXgjA= github.com/apache/thrift v0.19.0 h1:sOqkWPzMj7w6XaYbJQG7m4sGqVolaW/0D28Ln7yPzMk= @@ -43,14 +43,14 @@ github.com/chenzhuoyu/base64x v0.0.0-20230717121745-296ad89f973d/go.mod h1:8EPpV github.com/chenzhuoyu/iasm v0.9.0/go.mod h1:Xjy2NpN3h7aUqeqM+woSuuvxmIe6+DDsiNLIrkAmYog= github.com/chenzhuoyu/iasm v0.9.1 h1:tUHQJXo3NhBqw6s33wkGn9SP3bvrWLdlVIJ3hQBL7P0= github.com/chenzhuoyu/iasm v0.9.1/go.mod h1:Xjy2NpN3h7aUqeqM+woSuuvxmIe6+DDsiNLIrkAmYog= -github.com/cloudquery/cloudquery-api-go v1.7.0 h1:9da/fBNcKnJGTKF3LFoKIMUwfnzhMCsp5RjIOSxCU7s= -github.com/cloudquery/cloudquery-api-go v1.7.0/go.mod h1:03fojQg0UpdgqXZ9tzZ5gF5CPad/F0sok66bsX6u4RA= +github.com/cloudquery/cloudquery-api-go v1.7.2 h1:jpQfeZUxekbV7ASN5ONpGIkrtKIZvC/Y8fOj+tQxLm4= +github.com/cloudquery/cloudquery-api-go v1.7.2/go.mod h1:03fojQg0UpdgqXZ9tzZ5gF5CPad/F0sok66bsX6u4RA= github.com/cloudquery/codegen v0.3.12 h1:9BaYdwbMJU1HVT/BHI+ykhOhBGeXt8AjpvBiXN1KhKE= github.com/cloudquery/codegen v0.3.12/go.mod h1:utqjurr58U8uqcPJe0rZjh06i0Eq9uAPGOmyIjq/1w8= github.com/cloudquery/jsonschema v0.0.0-20231018073309-6c617a23d42f h1:vmYGxIGDVpmhk0QVeDwXXbAt+SwQcOn4xH1G25pmKP8= github.com/cloudquery/jsonschema v0.0.0-20231018073309-6c617a23d42f/go.mod h1:0SoZ/U7yJlNOR+fWsBSeTvTbGXB6DK01tzJ7m2Xfg34= -github.com/cloudquery/plugin-sdk/v4 v4.28.0 h1:rX0VdS/qQCWBhaYC+b1LlaCQYZ1IKi/WsgDZt+SVBdM= -github.com/cloudquery/plugin-sdk/v4 v4.28.0/go.mod h1:LKyp3rdmidWzgf8dB9LWbz0e+03R3hXuaMzGY71vU9U= +github.com/cloudquery/plugin-sdk/v4 v4.29.0 h1:PBK363ZaDIC7QMSjLkFB8dQFSmHO1fBYHFRHWUuuecU= +github.com/cloudquery/plugin-sdk/v4 v4.29.0/go.mod h1:uXDeMTqip32aypf2gbYufYDoCeZNSJjoLPvoiBioy14= github.com/coreos/go-systemd/v22 v22.5.0/go.mod h1:Y58oyj3AT4RCenI/lSvhwexgC+NSVTIJ3seZv2GcEnc= github.com/davecgh/go-spew v1.1.0/go.mod h1:J7Y8YcW2NihsgmVo/mv3lAwl/skON4iLHjSsI+c5H38= github.com/davecgh/go-spew v1.1.1 h1:vj9j/u1bqnvCEfJOwUhtlOARqs3+rkHYY13jYWTU97c= @@ -97,12 +97,12 @@ github.com/google/go-cmp v0.6.0/go.mod h1:17dUlkBOakJ0+DkrSSNjCkIjxS6bF9zb3elmeN github.com/google/go-querystring v1.1.0 h1:AnCroh3fv4ZBgVIf1Iwtovgjaw/GiKJo8M8yD/fhyJ8= github.com/google/go-querystring v1.1.0/go.mod h1:Kcdr2DB4koayq7X8pmAG4sNG59So17icRSOU623lUBU= github.com/google/gofuzz v1.0.0/go.mod h1:dBl0BpW6vV/+mYPU4Po3pmUjxk6FQPldtuIdl/M65Eg= -github.com/google/uuid v1.4.0 h1:MtMxsa51/r9yyhkyLsVeVt0B+BGQZzpQiTQ4eHZ8bc4= -github.com/google/uuid v1.4.0/go.mod h1:TIyPZe4MgqvfeYDBFedMoGGpEw/LqOeaOT+nhxU+yHo= +github.com/google/uuid v1.5.0 h1:1p67kYwdtXjb0gL0BPiP1Av9wiZPo5A8z2cWkTZ+eyU= +github.com/google/uuid v1.5.0/go.mod h1:TIyPZe4MgqvfeYDBFedMoGGpEw/LqOeaOT+nhxU+yHo= github.com/gorilla/css v1.0.1 h1:ntNaBIghp6JmvWnxbZKANoLyuXTPZ4cAMlo6RyhlbO8= github.com/gorilla/css v1.0.1/go.mod h1:BvnYkspnSzMmwRK+b8/xgNPLiIuNZr6vbZBTPQ2A3b0= -github.com/gorilla/websocket v1.5.0 h1:PPwGk2jz7EePpoHN/+ClbZu8SPxiqlu12wZP/3sWmnc= -github.com/gorilla/websocket v1.5.0/go.mod h1:YR8l580nyteQvAITg2hZ9XVh4b55+EU/adAjf1fMHhE= +github.com/gorilla/websocket v1.5.1 h1:gmztn0JnHVt9JZquRuzLw3g4wouNVzKL15iLr/zn/QY= +github.com/gorilla/websocket v1.5.1/go.mod h1:x3kM2JMyaluk02fnUJpQuwD2dCS5NDG2ZHL0uE0tcaY= github.com/imkira/go-interpol v1.1.0 h1:KIiKr0VSG2CUW1hl1jpiyuzuJeKUUpC8iM1AIE7N1Vk= github.com/imkira/go-interpol v1.1.0/go.mod h1:z0h2/2T3XF8kyEPpRgJ3kmNv+C43p+I/CoI+jC3w2iA= github.com/iris-contrib/httpexpect/v2 v2.15.2 h1:T9THsdP1woyAqKHwjkEsbCnMefsAFvk8iJJKokcJ3Go= @@ -118,8 +118,8 @@ github.com/kataras/blocks v0.0.8 h1:MrpVhoFTCR2v1iOOfGng5VJSILKeZZI+7NGfxEh3SUM= github.com/kataras/blocks v0.0.8/go.mod h1:9Jm5zx6BB+06NwA+OhTbHW1xkMOYxahnqTN5DveZ2Yg= github.com/kataras/golog v0.1.11 h1:dGkcCVsIpqiAMWTlebn/ZULHxFvfG4K43LF1cNWSh20= github.com/kataras/golog v0.1.11/go.mod h1:mAkt1vbPowFUuUGvexyQ5NFW6djEgGyxQBIARJ0AH4A= -github.com/kataras/iris/v12 v12.2.8 h1:p+PcqyO45dSib8B4I8Wc0fz+6B/CVkOsikCpbeNOkuo= -github.com/kataras/iris/v12 v12.2.8/go.mod h1:on94BX0C5jhuxgWKDZVpcTqymksZDIxWFN+nL7axjRA= +github.com/kataras/iris/v12 v12.2.10 h1:rEJVM7qMoyhv8wpgkA1yGxibFcONE0jkJ70LFLibTAA= +github.com/kataras/iris/v12 v12.2.10/go.mod h1:z4+E+kLMqZ7U4WtDsYfFnG7BjMTXLkdzMAXLVMLnMNs= github.com/kataras/pio v0.0.13 h1:x0rXVX0fviDTXOOLOmr4MUxOabu1InVSTu5itF8CXCM= github.com/kataras/pio v0.0.13/go.mod h1:k3HNuSw+eJ8Pm2lA4lRhg3DiCjVgHlP8hmXApSej3oM= github.com/kataras/sitemap v0.0.6 h1:w71CRMMKYMJh6LR2wTgnk5hSgjVNB9KL60n5e2KHvLY= @@ -128,8 +128,8 @@ github.com/kataras/tunnel v0.0.4 h1:sCAqWuJV7nPzGrlb0os3j49lk2JhILT0rID38NHNLpA= github.com/kataras/tunnel v0.0.4/go.mod h1:9FkU4LaeifdMWqZu7o20ojmW4B7hdhv2CMLwfnHGpYw= github.com/klauspost/asmfmt v1.3.2 h1:4Ri7ox3EwapiOjCki+hw14RyKk201CN4rzyCJRFLpK4= github.com/klauspost/asmfmt v1.3.2/go.mod h1:AG8TuvYojzulgDAMCnYn50l/5QV3Bs/tp6j0HLHbNSE= -github.com/klauspost/compress v1.17.4 h1:Ej5ixsIri7BrIjBkRZLTo6ghwrEtHFk7ijlczPW4fZ4= -github.com/klauspost/compress v1.17.4/go.mod h1:/dCuZOvVtNoHsyb+cuJD3itjs3NbnF6KH9zAO4BDxPM= +github.com/klauspost/compress v1.17.5 h1:d4vBd+7CHydUqpFBgUEKkSdtSugf9YFmSkvUYPquI5E= +github.com/klauspost/compress v1.17.5/go.mod h1:/dCuZOvVtNoHsyb+cuJD3itjs3NbnF6KH9zAO4BDxPM= github.com/klauspost/cpuid/v2 v2.0.9/go.mod h1:FInQzS24/EEf25PyTYn52gqo7WaD8xa0213Md/qVLRg= github.com/klauspost/cpuid/v2 v2.2.6 h1:ndNyv040zDGIDh8thGkXYjnFtiN02M1PVVF+JE/48xc= github.com/klauspost/cpuid/v2 v2.2.6/go.mod h1:Lcz8mBdAVJIBVzewtcLocK12l3Y+JytZYpaMropDUws= @@ -171,8 +171,8 @@ github.com/niemeyer/pretty v0.0.0-20200227124842-a10e7caefd8e h1:fD57ERR4JtEqsWb github.com/niemeyer/pretty v0.0.0-20200227124842-a10e7caefd8e/go.mod h1:zD1mROLANZcx1PVRCS0qkT7pwLkGfwJo4zjcN/Tysno= github.com/pelletier/go-toml/v2 v2.0.8 h1:0ctb6s9mE31h0/lhu+J6OPmVeDxJn+kYnJc2jZR9tGQ= github.com/pelletier/go-toml/v2 v2.0.8/go.mod h1:vuYfssBdrU2XDZ9bYydBu6t+6a6PYNcZljzZR9VXg+4= -github.com/pierrec/lz4/v4 v4.1.18 h1:xaKrnTkyoqfh1YItXl56+6KJNVYWlEEPuAQW9xsplYQ= -github.com/pierrec/lz4/v4 v4.1.18/go.mod h1:gZWDp/Ze/IJXGXf23ltt2EXimqmTUXEy0GFuRQyBid4= +github.com/pierrec/lz4/v4 v4.1.21 h1:yOVMLb6qSIDP67pl/5F7RepeKYu/VmTyEXvuMI5d9mQ= +github.com/pierrec/lz4/v4 v4.1.21/go.mod h1:gZWDp/Ze/IJXGXf23ltt2EXimqmTUXEy0GFuRQyBid4= github.com/pkg/errors v0.9.1/go.mod h1:bwawxfHBFNV+L2hUp1rHADufV3IMtnDRdf1r5NINEl0= github.com/pmezard/go-difflib v1.0.0 h1:4DBwDE0NGyQoBHbLQYPwSUPoCMWR5BEzIk/f1lZbAQM= github.com/pmezard/go-difflib v1.0.0/go.mod h1:iKH77koFhYxTK1pcRnkKkqfTogsbg7gZNVY4sRDYZ/4= @@ -210,12 +210,13 @@ github.com/stretchr/testify v1.8.2/go.mod h1:w2LPCIKwWwSfY2zedu0+kehJoqGctiVI29o github.com/stretchr/testify v1.8.3/go.mod h1:sz/lmYIOXD/1dqDmKjjqLyZ2RngseejIcXlSw2iwfAo= github.com/stretchr/testify v1.8.4 h1:CcVxjf3Q8PM0mHUKJCdn+eZZtm5yQwehR5yeSVQQcUk= github.com/stretchr/testify v1.8.4/go.mod h1:sz/lmYIOXD/1dqDmKjjqLyZ2RngseejIcXlSw2iwfAo= -github.com/tdewolff/minify/v2 v2.20.6 h1:R4+Iw1ZqJxrqH52WWHtCpukMuhmO/EasY8YlDiSxphw= -github.com/tdewolff/minify/v2 v2.20.6/go.mod h1:9t0EY9xySGt1vrP8iscmJfywQwDCQyQBYN6ge+9GwP0= -github.com/tdewolff/parse/v2 v2.7.4 h1:zrUn2CFg9+5llbUZcsycctFlNRyV1D5gFBZRxuGzdzk= -github.com/tdewolff/parse/v2 v2.7.4/go.mod h1:3FbJWZp3XT9OWVN3Hmfp0p/a08v4h8J9W1aghka0soA= -github.com/tdewolff/test v1.0.11-0.20231101010635-f1265d231d52 h1:gAQliwn+zJrkjAHVcBEYW/RFvd2St4yYimisvozAYlA= +github.com/tdewolff/minify/v2 v2.20.16 h1:/C8dtRkxLTIyUlKlBz46gDiktCrE8a6+c1gTrnPFz+U= +github.com/tdewolff/minify/v2 v2.20.16/go.mod h1:/FvxV9KaTrFu35J9I2FhRvWSBxcHj8sDSdwBFh5voxM= +github.com/tdewolff/parse/v2 v2.7.11 h1:v+W45LnzmjndVlfqPCT5gGjAAZKd1GJGOPJveTIkBY8= +github.com/tdewolff/parse/v2 v2.7.11/go.mod h1:3FbJWZp3XT9OWVN3Hmfp0p/a08v4h8J9W1aghka0soA= github.com/tdewolff/test v1.0.11-0.20231101010635-f1265d231d52/go.mod h1:6DAvZliBAAnD7rhVgwaM7DE5/d9NMOAJ09SqYqeK4QE= +github.com/tdewolff/test v1.0.11-0.20240106005702-7de5f7df4739 h1:IkjBCtQOOjIn03u/dMQK9g+Iw9ewps4mCl1nB8Sscbo= +github.com/tdewolff/test v1.0.11-0.20240106005702-7de5f7df4739/go.mod h1:XPuWBzvdUzhCuxWO1ojpXsyzsA5bFoS3tO/Q3kFuTG8= github.com/thoas/go-funk v0.9.3 h1:7+nAEx3kn5ZJcnDm2Bh23N2yOtweO14bi//dvRtgLpw= github.com/thoas/go-funk v0.9.3/go.mod h1:+IWnUfUmFO1+WVYQWQtIJHeRRdaIyyYglZN7xzUPe4Q= github.com/twitchyliquid64/golang-asm v0.15.1 h1:SU5vSMR7hnwNxj24w34ZyCi/FmDZTkS4MhqMhdFk5YI= @@ -256,10 +257,10 @@ golang.org/x/arch v0.3.0 h1:02VY4/ZcO/gBOH6PUaoiptASxtXU10jazRCP865E97k= golang.org/x/arch v0.3.0/go.mod h1:5om86z9Hs0C8fWVUuoMHwpExlXzs5Tkyp9hOrfG7pp8= golang.org/x/crypto v0.0.0-20190308221718-c2843e01d9a2/go.mod h1:djNgcEr1/C05ACkg1iLfiJU5Ep61QUkGW8qpdssI0+w= golang.org/x/crypto v0.0.0-20191011191535-87dc89f01550/go.mod h1:yigFU9vqHzYiE8UmvKecakEJjdnWj3jj499lnFckfCI= -golang.org/x/crypto v0.17.0 h1:r8bRNjWL3GshPW3gkd+RpvzWrZAwPS49OmTGZ/uhM4k= -golang.org/x/crypto v0.17.0/go.mod h1:gCAAfMLgwOJRpTjQ2zCCt2OcSfYMTeZVSRtQlPC7Nq4= -golang.org/x/exp v0.0.0-20231226003508-02704c960a9b h1:kLiC65FbiHWFAOu+lxwNPujcsl8VYyTYYEZnsOO1WK4= -golang.org/x/exp v0.0.0-20231226003508-02704c960a9b/go.mod h1:iRJReGqOEeBhDZGkGbynYwcHlctCvnjTYIamk7uXpHI= +golang.org/x/crypto v0.18.0 h1:PGVlW0xEltQnzFZ55hkuX5+KLyrMYhHld1YHO4AKcdc= +golang.org/x/crypto v0.18.0/go.mod h1:R0j02AL6hcrfOiy9T4ZYp/rcWeMxM3L6QYxlOuEG1mg= +golang.org/x/exp v0.0.0-20240119083558-1b970713d09a h1:Q8/wZp0KX97QFTc2ywcOE0YRjZPVIx+MXInMzdvQqcA= +golang.org/x/exp v0.0.0-20240119083558-1b970713d09a/go.mod h1:idGWGoKP1toJGkd5/ig9ZLuPcZBC3ewk7SzmH0uou08= golang.org/x/mod v0.5.1/go.mod h1:5OXOZSfqPIIbmVBIIKWRFfZjPR0E5r58TLhUjH0a2Ro= golang.org/x/mod v0.14.0 h1:dGoOF9QVLYng8IHTm7BAyWqCqSheQ5pYWGhzW00YJr0= golang.org/x/mod v0.14.0/go.mod h1:hTbmBsO62+eylJbnUtE2MGJUyE7QWk4xUqPFrRgJ+7c= @@ -267,12 +268,12 @@ golang.org/x/net v0.0.0-20190327091125-710a502c58a2/go.mod h1:t9HGtf8HONx5eT2rtn golang.org/x/net v0.0.0-20190404232315-eb5bcb51f2a3/go.mod h1:t9HGtf8HONx5eT2rtn7q6eTqICYqUVnKs3thJo3Qplg= golang.org/x/net v0.0.0-20190620200207-3b0461eec859/go.mod h1:z5CRVTTTmAJ677TzLLGU+0bjPO0LkuOLi4/5GtJWs/s= golang.org/x/net v0.0.0-20211015210444-4f30a5c0130f/go.mod h1:9nx3DQGgdP8bBQD5qxJ1jj9UTztislL4KSBs9R2vV5Y= -golang.org/x/net v0.19.0 h1:zTwKpTd2XuCqf8huc7Fo2iSy+4RHPd10s4KzeTnVr1c= -golang.org/x/net v0.19.0/go.mod h1:CfAk/cbD4CthTvqiEl8NpboMuiuOYsAr/7NOjZJtv1U= +golang.org/x/net v0.20.0 h1:aCL9BSgETF1k+blQaYUBx9hJ9LOGP3gAVemcZlf1Kpo= +golang.org/x/net v0.20.0/go.mod h1:z8BVo6PvndSri0LbOE3hAn0apkU+1YvI6E70E9jsnvY= golang.org/x/sync v0.0.0-20190423024810-112230192c58/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= golang.org/x/sync v0.0.0-20210220032951-036812b2e83c/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= -golang.org/x/sync v0.5.0 h1:60k92dhOjHxJkrqnwsfl8KuaHbn/5dl0lUPUklKo3qE= -golang.org/x/sync v0.5.0/go.mod h1:Czt+wKu1gCyEFDUtn0jG5QVvpJ6rzVqr5aXyt9drQfk= +golang.org/x/sync v0.6.0 h1:5BMeUDZ7vkXGfEr1x9B4bRcTH4lpkTkpdh0T/J+qjbQ= +golang.org/x/sync v0.6.0/go.mod h1:Czt+wKu1gCyEFDUtn0jG5QVvpJ6rzVqr5aXyt9drQfk= golang.org/x/sys v0.0.0-20190215142949-d0b11bdaac8a/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY= golang.org/x/sys v0.0.0-20190412213103-97732733099d/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= golang.org/x/sys v0.0.0-20191026070338-33540a1f6037/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= @@ -284,8 +285,8 @@ golang.org/x/sys v0.0.0-20220811171246-fbc7d0a398ab/go.mod h1:oPkhp1MJrh7nUepCBc golang.org/x/sys v0.5.0/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= golang.org/x/sys v0.6.0/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= golang.org/x/sys v0.12.0/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= -golang.org/x/sys v0.15.0 h1:h48lPFYpsTvQJZF4EKyI4aLHaev3CxivZmv7yZig9pc= -golang.org/x/sys v0.15.0/go.mod h1:/VUhepiaJMQUp4+oa/7Zr1D23ma6VTLIYjOOTFZPUcA= +golang.org/x/sys v0.16.0 h1:xWw16ngr6ZMtmxDyKyIgsE93KNKz5HKmMa3b8ALHidU= +golang.org/x/sys v0.16.0/go.mod h1:/VUhepiaJMQUp4+oa/7Zr1D23ma6VTLIYjOOTFZPUcA= golang.org/x/term v0.0.0-20201126162022-7de9c90e9dd1/go.mod h1:bj7SfCRtBDWHUb9snDiAeCFNEtKQo2Wmx5Cou7ajbmo= golang.org/x/text v0.3.0/go.mod h1:NqM8EUOU14njkJ3fqMW+pc6Ldnwhi/IjpwHt7yyuwOQ= golang.org/x/text v0.3.6/go.mod h1:5Zoc/QRtKVWzQhOtBMvqHzDpF6irO9z98xDceosuGiQ= @@ -297,8 +298,8 @@ golang.org/x/time v0.5.0/go.mod h1:3BpzKBy/shNhVucY/MWOyx10tF3SFh9QdLuxbVysPQM= golang.org/x/tools v0.0.0-20180917221912-90fa682c2a6e/go.mod h1:n7NCudcB/nEzxVGmLbDWY5pfWTLqBcC2KZ6jyYvM4mQ= golang.org/x/tools v0.0.0-20191119224855-298f0cb1881e/go.mod h1:b+2E5dAYhXwXZwtnZ6UAqBI28+e2cm9otk0dWdXHAEo= golang.org/x/tools v0.1.9/go.mod h1:nABZi5QlRsZVlzPpHl034qft6wpY4eDcsTt5AaioBiU= -golang.org/x/tools v0.16.0 h1:GO788SKMRunPIBCXiQyo2AaexLstOrVhuAL5YwsckQM= -golang.org/x/tools v0.16.0/go.mod h1:kYVVN6I1mBNoB1OX+noeBjbRk4IUEPa7JJ+TJMEooJ0= +golang.org/x/tools v0.17.0 h1:FvmRgNOcs3kOa+T20R1uhfP9F6HgG2mfxDv1vrx1Htc= +golang.org/x/tools v0.17.0/go.mod h1:xsh6VxdV005rRVaS6SSAf9oiAqljS7UZUacMZ8Bnsps= golang.org/x/xerrors v0.0.0-20190717185122-a985d3407aa7/go.mod h1:I/5z698sn9Ka8TeJc9MKroUUfqBBauWjQqLJ2OPfmY0= golang.org/x/xerrors v0.0.0-20191011141410-1b5146add898/go.mod h1:I/5z698sn9Ka8TeJc9MKroUUfqBBauWjQqLJ2OPfmY0= golang.org/x/xerrors v0.0.0-20191204190536-9bdfabe68543/go.mod h1:I/5z698sn9Ka8TeJc9MKroUUfqBBauWjQqLJ2OPfmY0= @@ -307,14 +308,14 @@ golang.org/x/xerrors v0.0.0-20231012003039-104605ab7028 h1:+cNy6SZtPcJQH3LJVLOSm golang.org/x/xerrors v0.0.0-20231012003039-104605ab7028/go.mod h1:NDW/Ps6MPRej6fsCIbMTohpP40sJ/P/vI1MoTEGwX90= gonum.org/v1/gonum v0.12.0 h1:xKuo6hzt+gMav00meVPUlXwSdoEJP46BR+wdxQEFK2o= gonum.org/v1/gonum v0.12.0/go.mod h1:73TDxJfAAHeA8Mk9mf8NlIppyhQNo5GLTcYeqgo2lvY= -google.golang.org/genproto/googleapis/rpc v0.0.0-20231212172506-995d672761c0 h1:/jFB8jK5R3Sq3i/lmeZO0cATSzFfZaJq1J2Euan3XKU= -google.golang.org/genproto/googleapis/rpc v0.0.0-20231212172506-995d672761c0/go.mod h1:FUoWkonphQm3RhTS+kOEhF8h0iDpm4tdXolVCeZ9KKA= +google.golang.org/genproto/googleapis/rpc v0.0.0-20240125205218-1f4bbc51befe h1:bQnxqljG/wqi4NTXu2+DJ3n7APcEA882QZ1JvhQAq9o= +google.golang.org/genproto/googleapis/rpc v0.0.0-20240125205218-1f4bbc51befe/go.mod h1:PAREbraiVEVGVdTZsVWjSbbTtSyGbAgIIvni8a8CD5s= google.golang.org/grpc v1.60.0 h1:6FQAR0kM31P6MRdeluor2w2gPaS4SVNrD/DNTxrQ15k= google.golang.org/grpc v1.60.0/go.mod h1:OlCHIeLYqSSsLi6i49B5QGdzaMZK9+M7LXN2FKz4eGM= google.golang.org/protobuf v1.26.0-rc.1/go.mod h1:jlhhOSvTdKEhbULTjvd4ARK9grFBp09yW+WbY/TyQbw= google.golang.org/protobuf v1.26.0/go.mod h1:9q0QmTI4eRPtz6boOQmLYwt+qCgq0jsYwAQnmE0givc= -google.golang.org/protobuf v1.31.0 h1:g0LDEJHgrBl9N9r17Ru3sqWhkIx2NB67okBHPwC7hs8= -google.golang.org/protobuf v1.31.0/go.mod h1:HV8QOd/L58Z+nl8r43ehVNZIU/HEI6OcFqwMG9pJV4I= +google.golang.org/protobuf v1.32.0 h1:pPC6BG5ex8PDFnkbrGU3EixyhKcQ2aDuBS36lqK/C7I= +google.golang.org/protobuf v1.32.0/go.mod h1:c6P6GXX6sHbq/GpV6MGZEdwhWPcYBgnhAHhKbcUYpos= gopkg.in/check.v1 v0.0.0-20161208181325-20d25e280405/go.mod h1:Co6ibVJAznAaIkqp8huTwlJQCZ016jof/cbN4VW5Yz0= gopkg.in/check.v1 v1.0.0-20200902074654-038fdea0a05b h1:QRR6H1YWRnHb4Y/HeNFCTJLFVxaq6wH4YuVdsUOr75U= gopkg.in/check.v1 v1.0.0-20200902074654-038fdea0a05b/go.mod h1:Co6ibVJAznAaIkqp8huTwlJQCZ016jof/cbN4VW5Yz0= diff --git a/json/spec.go b/json/spec.go index 6024245c..1fe6cc86 100644 --- a/json/spec.go +++ b/json/spec.go @@ -2,9 +2,10 @@ package json import "github.com/invopop/jsonschema" -type Spec struct{} +// nolint:revive +type JSONSpec struct{} -func (Spec) JSONSchema() *jsonschema.Schema { +func (JSONSpec) JSONSchema() *jsonschema.Schema { return &jsonschema.Schema{ Description: "CloudQuery JSON file output spec.", Type: "object", @@ -12,8 +13,8 @@ func (Spec) JSONSchema() *jsonschema.Schema { } } -func (*Spec) SetDefaults() {} +func (*JSONSpec) SetDefaults() {} -func (*Spec) Validate() error { +func (*JSONSpec) Validate() error { return nil } diff --git a/json/spec_test.go b/json/spec_test.go index 7dbe6dc6..47778326 100644 --- a/json/spec_test.go +++ b/json/spec_test.go @@ -8,7 +8,7 @@ import ( ) func TestSpec_JSONSchema(t *testing.T) { - schema, err := jsonschema.Generate(Spec{}) + schema, err := jsonschema.Generate(JSONSpec{}) require.NoError(t, err) jsonschema.TestJSONSchema(t, string(schema), []jsonschema.TestCase{ diff --git a/parquet/client.go b/parquet/client.go index 73a462f9..418df2bd 100644 --- a/parquet/client.go +++ b/parquet/client.go @@ -4,7 +4,7 @@ type Options func(*Client) // Client is a parquet client. type Client struct { - spec Spec + spec ParquetSpec } func NewClient(options ...Options) (*Client, error) { @@ -16,7 +16,7 @@ func NewClient(options ...Options) (*Client, error) { return c, nil } -func WithSpec(spec Spec) Options { +func WithSpec(spec ParquetSpec) Options { return func(c *Client) { c.spec = spec } diff --git a/parquet/spec.go b/parquet/spec.go index 272b014f..4cdc4c63 100644 --- a/parquet/spec.go +++ b/parquet/spec.go @@ -2,9 +2,10 @@ package parquet import "github.com/invopop/jsonschema" -type Spec struct{} +// nolint:revive +type ParquetSpec struct{} -func (Spec) JSONSchema() *jsonschema.Schema { +func (ParquetSpec) JSONSchema() *jsonschema.Schema { return &jsonschema.Schema{ Description: "CloudQuery Parquet file output spec.", Type: "object", @@ -12,9 +13,9 @@ func (Spec) JSONSchema() *jsonschema.Schema { } } -func (*Spec) SetDefaults() { +func (*ParquetSpec) SetDefaults() { } -func (*Spec) Validate() error { +func (*ParquetSpec) Validate() error { return nil } diff --git a/parquet/spec_test.go b/parquet/spec_test.go index a1436978..9b619a5f 100644 --- a/parquet/spec_test.go +++ b/parquet/spec_test.go @@ -8,7 +8,7 @@ import ( ) func TestSpec_JSONSchema(t *testing.T) { - schema, err := jsonschema.Generate(Spec{}) + schema, err := jsonschema.Generate(ParquetSpec{}) require.NoError(t, err) jsonschema.TestJSONSchema(t, string(schema), []jsonschema.TestCase{ diff --git a/schema.go b/schema.go index 84b3dd58..1c0e9254 100644 --- a/schema.go +++ b/schema.go @@ -20,9 +20,9 @@ func (FileSpec) JSONSchemaOptions() []cqjsonschema.Option { return nil } return reflect.VisibleFields(reflect.TypeOf(struct { - CSVSpec csv.Spec - JSONSpec jsonfile.Spec - ParquetSpec parquet.Spec + CSVSpec csv.CSVSpec + JSONSpec jsonfile.JSONSpec + ParquetSpec parquet.ParquetSpec }{})) } if r.AdditionalFields == nil { diff --git a/schema.json b/schema.json index cc2193cd..1554e8e3 100644 --- a/schema.json +++ b/schema.json @@ -3,6 +3,24 @@ "$id": "https://github.com/cloudquery/filetypes/v4/file-spec", "$ref": "#/$defs/FileSpec", "$defs": { + "CSVSpec": { + "properties": { + "skip_header": { + "type": "boolean", + "description": "Specifies if the first line of a file should be the header.", + "default": false + }, + "delimiter": { + "type": "string", + "pattern": "^.$", + "description": "Character that will be used as the delimiter.", + "default": "," + } + }, + "additionalProperties": false, + "type": "object", + "description": "CloudQuery CSV file output spec." + }, "FileSpec": { "oneOf": [ { @@ -14,7 +32,7 @@ "format_spec": { "oneOf": [ { - "$ref": "#/$defs/Spec" + "$ref": "#/$defs/CSVSpec" }, { "type": "null" @@ -32,7 +50,7 @@ "format_spec": { "oneOf": [ { - "$ref": "#/$defs/Spec-1" + "$ref": "#/$defs/JSONSpec" }, { "type": "null" @@ -50,7 +68,7 @@ "format_spec": { "oneOf": [ { - "$ref": "#/$defs/Spec-2" + "$ref": "#/$defs/ParquetSpec" }, { "type": "null" @@ -75,13 +93,13 @@ { "anyOf": [ { - "$ref": "#/$defs/Spec" + "$ref": "#/$defs/CSVSpec" }, { - "$ref": "#/$defs/Spec-1" + "$ref": "#/$defs/JSONSpec" }, { - "$ref": "#/$defs/Spec-2" + "$ref": "#/$defs/ParquetSpec" } ] }, @@ -105,30 +123,12 @@ "format" ] }, - "Spec": { - "properties": { - "skip_header": { - "type": "boolean", - "description": "Specifies if the first line of a file should be the header.", - "default": false - }, - "delimiter": { - "type": "string", - "pattern": "^.$", - "description": "Character that will be used as the delimiter.", - "default": "," - } - }, - "additionalProperties": false, - "type": "object", - "description": "CloudQuery CSV file output spec." - }, - "Spec-1": { + "JSONSpec": { "additionalProperties": false, "type": "object", "description": "CloudQuery JSON file output spec." }, - "Spec-2": { + "ParquetSpec": { "additionalProperties": false, "type": "object", "description": "CloudQuery Parquet file output spec." diff --git a/spec.go b/spec.go index a76d8f9d..7c72f54e 100644 --- a/spec.go +++ b/spec.go @@ -37,9 +37,9 @@ type FileSpec struct { // Empty or missing stands for no compression. Compression CompressionType `json:"compression,omitempty" jsonschema:"enum=,enum=gzip"` - csvSpec *csv.Spec - jsonSpec *jsonfile.Spec - parquetSpec *parquet.Spec + csvSpec *csv.CSVSpec + jsonSpec *jsonfile.JSONSpec + parquetSpec *parquet.ParquetSpec } func (s *FileSpec) SetDefaults() { @@ -87,13 +87,13 @@ func (s *FileSpec) UnmarshalSpec() error { switch s.Format { case FormatTypeCSV: - s.csvSpec = &csv.Spec{} + s.csvSpec = &csv.CSVSpec{} return dec.Decode(s.csvSpec) case FormatTypeJSON: - s.jsonSpec = &jsonfile.Spec{} + s.jsonSpec = &jsonfile.JSONSpec{} return dec.Decode(s.jsonSpec) case FormatTypeParquet: - s.parquetSpec = &parquet.Spec{} + s.parquetSpec = &parquet.ParquetSpec{} return dec.Decode(s.parquetSpec) default: return fmt.Errorf("unknown format %s", s.Format) diff --git a/spec_test.go b/spec_test.go index 54e593ca..e310724d 100644 --- a/spec_test.go +++ b/spec_test.go @@ -11,10 +11,10 @@ import ( func TestSpecMethods(t *testing.T) { testCases := []struct { FileSpec *FileSpec - preDefaultsCSV *csv.Spec - preDefaultsJSON *json.Spec - postDefaultsCSV *csv.Spec - postDefaultsJSON *json.Spec + preDefaultsCSV *csv.CSVSpec + preDefaultsJSON *json.JSONSpec + postDefaultsCSV *csv.CSVSpec + postDefaultsJSON *json.JSONSpec expectError bool }{ { @@ -22,8 +22,8 @@ func TestSpecMethods(t *testing.T) { Format: FormatTypeCSV, FormatSpec: map[string]any{}, }, - preDefaultsCSV: &csv.Spec{}, - postDefaultsCSV: &csv.Spec{ + preDefaultsCSV: &csv.CSVSpec{}, + postDefaultsCSV: &csv.CSVSpec{ SkipHeader: false, Delimiter: ",", }, @@ -36,11 +36,11 @@ func TestSpecMethods(t *testing.T) { "skip_header": true, }, }, - preDefaultsCSV: &csv.Spec{ + preDefaultsCSV: &csv.CSVSpec{ SkipHeader: true, Delimiter: ",", }, - postDefaultsCSV: &csv.Spec{ + postDefaultsCSV: &csv.CSVSpec{ SkipHeader: true, Delimiter: ",", }, @@ -50,11 +50,11 @@ func TestSpecMethods(t *testing.T) { Format: FormatTypeCSV, FormatSpec: map[string]any{}, }, - preDefaultsCSV: &csv.Spec{ + preDefaultsCSV: &csv.CSVSpec{ SkipHeader: false, Delimiter: "", }, - postDefaultsCSV: &csv.Spec{ + postDefaultsCSV: &csv.CSVSpec{ SkipHeader: false, Delimiter: ",", }, @@ -63,8 +63,8 @@ func TestSpecMethods(t *testing.T) { FileSpec: &FileSpec{ Format: FormatTypeJSON, }, - preDefaultsJSON: &json.Spec{}, - postDefaultsJSON: &json.Spec{}, + preDefaultsJSON: &json.JSONSpec{}, + postDefaultsJSON: &json.JSONSpec{}, }, {