in infra/blueprint-test/pkg/utils/jsonpaths.go [66:95]
func getTerminalJSONPaths(item interface{}, crumbs []string) []string {
var paths []string
// Only add paths for JSON bool, number, string, and null
switch val := item.(type) {
case bool:
return []string{strings.Join(crumbs, ".")}
case float64:
return []string{strings.Join(crumbs, ".")}
case string:
return []string{strings.Join(crumbs, ".")}
case nil:
return []string{strings.Join(crumbs, ".")}
case []interface{}:
for i, v := range val {
paths = append(paths,
getTerminalJSONPaths(v, append(crumbs, strconv.Itoa(i)))...,
)
}
case map[string]interface{}:
for k, v := range val {
paths = append(paths,
getTerminalJSONPaths(v, append(crumbs, k))...,
)
}
}
slices.Sort(paths)
return paths
}