diff --git a/internal/validator/contexts/contexts.go b/internal/validator/contexts/contexts.go index 7c329880..dd8dd86d 100644 --- a/internal/validator/contexts/contexts.go +++ b/internal/validator/contexts/contexts.go @@ -3,7 +3,7 @@ package contexts import ( "fmt" "github.com/aml-org/amf-custom-validator/internal/types" - "github.com/aml-org/amf-custom-validator/internal/validator/config" + "github.com/aml-org/amf-custom-validator/pkg/config" ) var ApiExtensionUri = "http://a.ml/vocabularies/api-extension#" diff --git a/internal/validator/process_result.go b/internal/validator/process_result.go index 9837bedd..bb030609 100644 --- a/internal/validator/process_result.go +++ b/internal/validator/process_result.go @@ -1,12 +1,12 @@ package validator import ( - "github.com/aml-org/amf-custom-validator/internal/validator/config" + config2 "github.com/aml-org/amf-custom-validator/pkg/config" e "github.com/aml-org/amf-custom-validator/pkg/events" "github.com/open-policy-agent/opa/rego" ) -func processResult(result *rego.ResultSet, eventChan *chan e.Event, validationConfig config.ValidationConfiguration, reportConfig config.ReportConfiguration) (string, error) { +func processResult(result *rego.ResultSet, eventChan *chan e.Event, validationConfig config2.ValidationConfiguration, reportConfig config2.ReportConfiguration) (string, error) { dispatchEvent(e.NewEvent(e.BuildReportStart), eventChan) report, err := BuildReport(result, validationConfig, reportConfig) dispatchEvent(e.NewEvent(e.BuildReportDone), eventChan) diff --git a/internal/validator/report.go b/internal/validator/report.go index 48c4d73d..89906a30 100644 --- a/internal/validator/report.go +++ b/internal/validator/report.go @@ -6,14 +6,14 @@ import ( "errors" "fmt" "github.com/aml-org/amf-custom-validator/internal/types" - "github.com/aml-org/amf-custom-validator/internal/validator/config" "github.com/aml-org/amf-custom-validator/internal/validator/contexts" + config2 "github.com/aml-org/amf-custom-validator/pkg/config" "github.com/open-policy-agent/opa/rego" "strconv" "strings" ) -func BuildReport(resultPtr *rego.ResultSet, validationConfig config.ValidationConfiguration, reportConfig config.ReportConfiguration) (string, error) { +func BuildReport(resultPtr *rego.ResultSet, validationConfig config2.ValidationConfiguration, reportConfig config2.ReportConfiguration) (string, error) { result := *resultPtr if len(result) == 0 { return "", errors.New("empty result from evaluation") @@ -74,7 +74,7 @@ func defineIdRecursively(node *types.ObjectMap, id string) { } } -func buildContext(emptyReport bool, reportConfig config.ReportConfiguration) types.ObjectMap { +func buildContext(emptyReport bool, reportConfig config2.ReportConfiguration) types.ObjectMap { if emptyReport { return contexts.ConformsContext(reportConfig) } else { diff --git a/internal/validator/report_nodes.go b/internal/validator/report_nodes.go index d238945b..0dbe9fd5 100644 --- a/internal/validator/report_nodes.go +++ b/internal/validator/report_nodes.go @@ -2,7 +2,7 @@ package validator import ( "github.com/aml-org/amf-custom-validator/internal/types" - "github.com/aml-org/amf-custom-validator/internal/validator/config" + config2 "github.com/aml-org/amf-custom-validator/pkg/config" "time" ) @@ -17,7 +17,7 @@ func DialectInstance(report *types.ObjectMap, context *types.ObjectMap) []types. return []types.ObjectMap{dialectInstance} } -func ValidationReportNode(profileName string, results []any, conforms bool, validationConfig config.ValidationConfiguration, reportConfig config.ReportConfiguration) types.ObjectMap { +func ValidationReportNode(profileName string, results []any, conforms bool, validationConfig config2.ValidationConfiguration, reportConfig config2.ReportConfiguration) types.ObjectMap { reportTypes := []string{"reportSchema:ReportNode", "shacl:ValidationReport"} report := types.ObjectMap{ "@id": "validation-report", diff --git a/internal/validator/test_utils.go b/internal/validator/test_utils.go index cff5df17..7431f7ce 100644 --- a/internal/validator/test_utils.go +++ b/internal/validator/test_utils.go @@ -4,7 +4,7 @@ import ( "fmt" "github.com/aml-org/amf-custom-validator/internal/config" p "github.com/aml-org/amf-custom-validator/internal/parser/profile" - config2 "github.com/aml-org/amf-custom-validator/internal/validator/config" + config3 "github.com/aml-org/amf-custom-validator/pkg/config" "github.com/aml-org/amf-custom-validator/pkg/milestones" "io/ioutil" "strings" @@ -29,7 +29,7 @@ func validate(profile relativePath, data relativePath) string { p.GenReset() profileText := read(profile) dataText := read(data) - report, err := ValidateWithConfiguration(profileText, dataText, config.Debug, nil, config2.TestValidationConfiguration{}, config2.DefaultReportConfiguration()) + report, err := ValidateWithConfiguration(profileText, dataText, config.Debug, nil, config3.TestValidationConfiguration{}, config3.DefaultReportConfiguration()) if err != nil { panic(err) } diff --git a/internal/validator/validate.go b/internal/validator/validate.go index 75c88949..7d1337f3 100644 --- a/internal/validator/validate.go +++ b/internal/validator/validate.go @@ -2,7 +2,7 @@ package validator import ( "context" - "github.com/aml-org/amf-custom-validator/internal/validator/config" + config2 "github.com/aml-org/amf-custom-validator/pkg/config" e "github.com/aml-org/amf-custom-validator/pkg/events" "github.com/open-policy-agent/opa/rego" ) @@ -12,14 +12,14 @@ import ( // directly to `internal.Validate` rather than `pkg.Validate` func Validate(profileText string, jsonldText string, debug bool, eventChan *chan e.Event) (string, error) { - return ValidateWithConfiguration(profileText, jsonldText, debug, eventChan, config.DefaultValidationConfiguration{}, config.DefaultReportConfiguration()) + return ValidateWithConfiguration(profileText, jsonldText, debug, eventChan, config2.DefaultValidationConfiguration{}, config2.DefaultReportConfiguration()) } func ValidateCompiled(compiledRegoPtr *rego.PreparedEvalQuery, jsonldText string, debug bool, eventChan *chan e.Event) (string, error) { - return ValidateCompiledWithConfiguration(compiledRegoPtr, jsonldText, debug, eventChan, config.DefaultValidationConfiguration{}, config.DefaultReportConfiguration()) + return ValidateCompiledWithConfiguration(compiledRegoPtr, jsonldText, debug, eventChan, config2.DefaultValidationConfiguration{}, config2.DefaultReportConfiguration()) } -func ValidateWithConfiguration(profileText string, jsonldText string, debug bool, eventChan *chan e.Event, validationConfig config.ValidationConfiguration, reportConfig config.ReportConfiguration) (string, error) { +func ValidateWithConfiguration(profileText string, jsonldText string, debug bool, eventChan *chan e.Event, validationConfig config2.ValidationConfiguration, reportConfig config2.ReportConfiguration) (string, error) { // Generate and compile Rego code compiledRego, err := ProcessProfile(profileText, debug, eventChan) @@ -31,7 +31,7 @@ func ValidateWithConfiguration(profileText string, jsonldText string, debug bool return ValidateCompiledWithConfiguration(compiledRego, jsonldText, debug, eventChan, validationConfig, reportConfig) } -func ValidateCompiledWithConfiguration(compiledRegoPtr *rego.PreparedEvalQuery, jsonldText string, debug bool, eventChan *chan e.Event, validationConfig config.ValidationConfiguration, reportConfig config.ReportConfiguration) (string, error) { +func ValidateCompiledWithConfiguration(compiledRegoPtr *rego.PreparedEvalQuery, jsonldText string, debug bool, eventChan *chan e.Event, validationConfig config2.ValidationConfiguration, reportConfig config2.ReportConfiguration) (string, error) { compiledRego := *compiledRegoPtr // Normalize input diff --git a/internal/validator/validate_configuration_test.go b/internal/validator/validate_configuration_test.go index 422a2be2..15530c7f 100644 --- a/internal/validator/validate_configuration_test.go +++ b/internal/validator/validate_configuration_test.go @@ -3,20 +3,20 @@ package validator import ( "encoding/json" "github.com/aml-org/amf-custom-validator/internal/config" - config2 "github.com/aml-org/amf-custom-validator/internal/validator/config" "github.com/aml-org/amf-custom-validator/internal/validator/contexts" + config3 "github.com/aml-org/amf-custom-validator/pkg/config" "testing" ) func TestNoDateCreated(t *testing.T) { - reportConfig := config2.ReportConfiguration{ + reportConfig := config3.ReportConfiguration{ IncludeReportCreationTime: false, } profile := read("../../test/data/integration/profile1/profile.yaml") data := read("../../test/data/integration/profile1/negative.data.jsonld") - report, err := ValidateWithConfiguration(profile, data, config.Debug, nil, config2.TestValidationConfiguration{}, reportConfig) + report, err := ValidateWithConfiguration(profile, data, config.Debug, nil, config3.TestValidationConfiguration{}, reportConfig) if err != nil { t.Errorf("Error during validation\n") @@ -42,7 +42,7 @@ func TestAlternativeSchemas(t *testing.T) { reportSchemaIri := "http://a.ml/report" lexicalSchemaIri := "http://a.ml/lexical" - reportConfig := config2.ReportConfiguration{ + reportConfig := config3.ReportConfiguration{ ReportSchemaIri: reportSchemaIri, LexicalSchemaIri: lexicalSchemaIri, } @@ -50,7 +50,7 @@ func TestAlternativeSchemas(t *testing.T) { profile := read("../../test/data/integration/profile1/profile.yaml") data := read("../../test/data/integration/profile1/negative.data.jsonld") - report, err := ValidateWithConfiguration(profile, data, config.Debug, nil, config2.TestValidationConfiguration{}, reportConfig) + report, err := ValidateWithConfiguration(profile, data, config.Debug, nil, config3.TestValidationConfiguration{}, reportConfig) if err != nil { t.Errorf("Error during validation\n") diff --git a/internal/validator/validate_integration_test.go b/internal/validator/validate_integration_test.go index c160fdda..f4dca26f 100644 --- a/internal/validator/validate_integration_test.go +++ b/internal/validator/validate_integration_test.go @@ -3,7 +3,7 @@ package validator import ( "github.com/aml-org/amf-custom-validator/internal/config" "github.com/aml-org/amf-custom-validator/internal/parser/profile" - config2 "github.com/aml-org/amf-custom-validator/internal/validator/config" + config3 "github.com/aml-org/amf-custom-validator/pkg/config" "github.com/aml-org/amf-custom-validator/test" "strings" "testing" @@ -14,7 +14,7 @@ func TestIntegrationPositiveData(t *testing.T) { for _, fixture := range test.IntegrationFixtures("../../test/data/integration", &filter) { prof := fixture.ReadProfile() profile.GenReset() - report, err := ValidateWithConfiguration(prof, fixture.ReadFixturePositiveData(), config.Debug, nil, config2.TestValidationConfiguration{}, config2.DefaultReportConfiguration()) + report, err := ValidateWithConfiguration(prof, fixture.ReadFixturePositiveData(), config.Debug, nil, config3.TestValidationConfiguration{}, config3.DefaultReportConfiguration()) if err != nil { t.Errorf("%s > Positive case > Failed with error %v", fixture, err) @@ -36,7 +36,7 @@ func TestIntegrationNegativeData(t *testing.T) { for _, fixture := range test.IntegrationFixtures("../../test/data/integration", &filter) { prof := fixture.ReadProfile() profile.GenReset() - report, err := ValidateWithConfiguration(prof, fixture.ReadFixtureNegativeData(), config.Debug, nil, config2.TestValidationConfiguration{}, config2.DefaultReportConfiguration()) + report, err := ValidateWithConfiguration(prof, fixture.ReadFixtureNegativeData(), config.Debug, nil, config3.TestValidationConfiguration{}, config3.DefaultReportConfiguration()) if err != nil { t.Errorf("%s > Negative case > Failed with error %v", fixture, err) } @@ -60,7 +60,7 @@ func TestIntegrationNegativeDataWithLexical(t *testing.T) { lexicalFixture, fixtureError := fixture.ReadFixtureNegativeDataWithLexical() if fixtureError == nil { - report, err := ValidateWithConfiguration(prof, lexicalFixture, config.Debug, nil, config2.TestValidationConfiguration{}, config2.DefaultReportConfiguration()) + report, err := ValidateWithConfiguration(prof, lexicalFixture, config.Debug, nil, config3.TestValidationConfiguration{}, config3.DefaultReportConfiguration()) if err != nil { t.Errorf("%s > Negative case with lexical > Failed with error %v", fixture, err) } diff --git a/internal/validator/validate_production_test.go b/internal/validator/validate_production_test.go index 2fa336ab..d233dc8e 100644 --- a/internal/validator/validate_production_test.go +++ b/internal/validator/validate_production_test.go @@ -6,7 +6,7 @@ import ( "fmt" "github.com/aml-org/amf-custom-validator/internal/config" "github.com/aml-org/amf-custom-validator/internal/parser" - config2 "github.com/aml-org/amf-custom-validator/internal/validator/config" + config3 "github.com/aml-org/amf-custom-validator/pkg/config" "github.com/aml-org/amf-custom-validator/test" "strings" "testing" @@ -19,7 +19,7 @@ func TestProduction(t *testing.T) { for _, example := range fixture.Examples() { filter := "" // put the number of the text to filter here if strings.Index(example.File, filter) > -1 { - report, err := ValidateWithConfiguration(profile, example.Text, config.Debug, nil, config2.TestValidationConfiguration{}, config2.DefaultReportConfiguration()) + report, err := ValidateWithConfiguration(profile, example.Text, config.Debug, nil, config3.TestValidationConfiguration{}, config3.DefaultReportConfiguration()) if config.Debug { generateDebugOutput(profile, example) } diff --git a/js/validator.go b/js/validator.go index 2f7c8f8f..0707a767 100644 --- a/js/validator.go +++ b/js/validator.go @@ -6,7 +6,7 @@ import ( "bytes" "encoding/json" "github.com/aml-org/amf-custom-validator/internal/validator" - "github.com/aml-org/amf-custom-validator/internal/validator/config" + config2 "github.com/aml-org/amf-custom-validator/pkg/config" "syscall/js" ) @@ -39,7 +39,7 @@ func validateWithConfigurationWrapper() js.Func { return "ValidationConfiguration not yet supported, please set this parameter as 'undefined'. ValidationConfiguration needs to import functions from JS which is not supported by Go 1.19" } reportConfig := buildReportConfiguration(args[4]) - res, err := validator.ValidateWithConfiguration(profileString, dataString, debug, nil, config.DefaultValidationConfiguration{}, reportConfig) + res, err := validator.ValidateWithConfiguration(profileString, dataString, debug, nil, config2.DefaultValidationConfiguration{}, reportConfig) if err != nil { return err.Error() } @@ -48,11 +48,11 @@ func validateWithConfigurationWrapper() js.Func { return jsonFunc } -func buildReportConfiguration(value js.Value) config.ReportConfiguration { +func buildReportConfiguration(value js.Value) config2.ReportConfiguration { includeReportCreationTime := value.Get("IncludeReportCreationTime").Bool() reportSchemaIri := value.Get("ReportSchemaIri").String() lexicalSchemaIri := value.Get("LexicalSchemaIri").String() - return config.ReportConfiguration{ + return config2.ReportConfiguration{ IncludeReportCreationTime: includeReportCreationTime, ReportSchemaIri: reportSchemaIri, LexicalSchemaIri: lexicalSchemaIri, diff --git a/internal/validator/config/report_configuration.go b/pkg/config/report_configuration.go similarity index 100% rename from internal/validator/config/report_configuration.go rename to pkg/config/report_configuration.go diff --git a/internal/validator/config/validation_configuration.go b/pkg/config/validation_configuration.go similarity index 100% rename from internal/validator/config/validation_configuration.go rename to pkg/config/validation_configuration.go diff --git a/pkg/validate.go b/pkg/validate.go index 89df9138..dee29991 100644 --- a/pkg/validate.go +++ b/pkg/validate.go @@ -2,6 +2,7 @@ package pkg import ( internal "github.com/aml-org/amf-custom-validator/internal/validator" + config2 "github.com/aml-org/amf-custom-validator/pkg/config" e "github.com/aml-org/amf-custom-validator/pkg/events" "github.com/open-policy-agent/opa/rego" ) @@ -12,4 +13,12 @@ func Validate(profileText string, jsonldText string, debug bool, eventChan *chan func ValidateCompiled(compiledRegoPtr *rego.PreparedEvalQuery, jsonldText string, debug bool, eventChan *chan e.Event) (string, error) { return internal.ValidateCompiled(compiledRegoPtr, jsonldText, debug, eventChan) -} \ No newline at end of file +} + +func ValidateWithConfiguration(profileText string, jsonldText string, debug bool, eventChan *chan e.Event, validationConfig config2.ValidationConfiguration, reportConfig config2.ReportConfiguration) (string, error) { + return internal.ValidateWithConfiguration(profileText, jsonldText, debug, eventChan, validationConfig, reportConfig) +} + +func ValidateCompiledWithConfiguration(compiledRegoPtr *rego.PreparedEvalQuery, jsonldText string, debug bool, eventChan *chan e.Event, validationConfig config2.ValidationConfiguration, reportConfig config2.ReportConfiguration) (string, error) { + return internal.ValidateCompiledWithConfiguration(compiledRegoPtr, jsonldText, debug, eventChan, validationConfig, reportConfig) +}