diff --git a/.examples/hello.json b/.examples/hello.json new file mode 100644 index 0000000..d4280f5 --- /dev/null +++ b/.examples/hello.json @@ -0,0 +1,220 @@ +{ + "core": { + "title": "Software Engineer", + "workArea": "Munich Citycenter + 20kms", + "livingArea": "Germany", + "optionalKey": "foo" + }, + "optionalData": { + "one": "two", + "foo": "bar" + }, + "optionalData1": { + "one": "two", + "foo": "bar" + }, + "optionalData2": { + "one": "two", + "foo": "bar" + }, + "personal": { + "name": "John Doe", + "gender": "male", + "image": "example.com/Abcxyz", + "email": "lucas@example.com", + "phone": "912-217-7923", + "url": "http://www.example.com/", + "summary": "The man who sold the world!", + "currentLocation": { + "lat": 35.712758, + "long": 51.392114 + }, + "permanentLocation": { + "lat": 35.712758, + "long": 51.392114 + }, + "birthday": "1995-02-14", + "birthPlace": "Munich", + "profiles": [ + { + "network": "github", + "username": "john_doe", + "url": "https://github.com/john_doe" + } + ], + "relationshipStatus": "married", + "postalAddress": "John Doe, Wittekindshof, Schulstrasse 4, 32547 Bad Oyenhausen, Germany" + }, + "work": [ + { + "name": "XYZ Inc", + "description": "A social media company", + "position": "Software Engineer", + "location": { + "lat": 35.712758, + "long": 51.392114 + }, + "url": "http://xyz.example.com", + "startDate": "2017-12-29", + "endDate": "2018-12-29", + "summary": "Developing and maintaining the company website using syna", + "highlights": [ + "Worked with mobile team at Twitter to develop remote debugging tools for mobile browsers" + ] + } + ], + "education": [ + { + "institution": "XYZ Institute of Technology", + "location": { + "lat": 35.712758, + "long": 51.392114 + }, + "area": "Engineering", + "studyType": "Bachelor", + "startDate": "2017-06-28", + "endDate": "2013-06-28", + "score": { + "type": "GPA", + "value": "3.4", + "best": "4", + "worst": "0" + }, + "courses": ["CS302 - Introduction to Algorithms"], + "honors": ["Magna Cum Laude"], + "highlights": ["Live abroad within a new culture"] + } + ], + "volunteer": [ + { + "organization": "Xyz", + "position": "Open Source Contributor", + "location": { + "lat": 35.712758, + "long": 51.392114 + }, + "url": "http://xyz.example.com", + "startDate": "2014-06-29", + "endDate": "2017-06-29", + "summary": "Frontend developer", + "highlights": ["Invited as a speaker in Xyzcon'17"] + } + ], + "publications": [ + { + "name": "Deep learning and Artificial Intelligence", + "publisher": "XYZ, Computer Magazine", + "releaseDate": "2015-08-01", + "resources": [ + { + "url": "http://www.example.com/my-example-slides/", + "label": "Slides" + } + ], + "url": "http://www.computer.org.example.com/csdl/mags/co/2015/10/rx069-abs.html", + "summary": "Discussion of the advent of deep learning and artificial intelligence" + } + ], + "legal": [ + { + "name": "XYZ's patent on LZW compression, a fundamental part of the widely used GIF graphics format", + "legalType": "Patent, Trademark, Copyright", + "description": "Some legal document!", + "applicationDate": "2015-08-01", + "grantDate": "2016-09-01", + "endDate": "2020-09-03", + "resources": [ + { + "url": "http://www.example.com/my-example-slides/", + "label": "Slides" + } + ], + "idNumber": "JP2004369746A", + "currentAssignee": "John Doe", + "previousAssignee": "John Doe", + "author": "John Doe", + "coAuthors": "John Doe" + } + ], + "skills": [ + { + "name": "Web Development", + "proficiency": "advanced", + "keywords": ["HTML"] + } + ], + "awards": [ + { + "title": "Awarded Software Process Achievement Award", + "date": "2016-06-12", + "awarder": "IEEE", + "summary": "Received for my work in Deep learning and AI" + } + ], + "projects": [ + { + "name": "File Transfer application", + "location": { + "lat": 35.712758, + "long": 51.392114 + }, + "description": "Developed a client and server based application", + "highlights": ["used Java AWT and Swing for client side userinterface"], + "keywords": ["Java"], + "startDate": "2016-06-29", + "endDate": "2017-03-02", + "resources": [ + { + "url": "http://www.example.com/my-example-slides/", + "label": "Slides" + } + ], + "url": "http://www.example.org/csdl/mags/co/1996/10/rx069-abs.html", + "roles": ["Team Lead"], + "entity": "greenpeace", + "type": "volunteering" + } + ], + "certificate": [ + { + "code": "1Z0-062", + "name": "XYZ Certified Application Specialist (MCAS)", + "website": "http://www.example.org", + "verification": "http://www.example.org", + "grantDate": "2017-06-29", + "score": { + "type": "GPA", + "value": "3.4", + "best": "4", + "worst": "0" + }, + "endDate": "2017-06-29", + "doesNotExpire": true + } + ], + "references": [ + { + "name": "Stephan Mark", + "company": "Xyz", + "position": "Senior Software Engineer", + "reference": "Joe blogs was a great employee, who turned up to work at least once a week. He exceeded my expectations when it came to doing nothing." + } + ], + "languages": [ + { + "language": "English", + "level": "fluent" + } + ], + "interests": [ + { + "name": "Machine Learning", + "keywords": ["Neural Networks"] + } + ], + "meta": { + "version": "v1.0.0", + "lastModified": "2017-06-29T15:53:01+01:00", + "uuid": "078c39ce-23ee-4970-9637-c07379132dce" + } +} diff --git a/README.md b/README.md index 989bcca..1a42ca6 100644 --- a/README.md +++ b/README.md @@ -9,9 +9,6 @@ Standardized and generic data schema for your resume/CV # Resumic Easily share your machine readable data or export your resume/CV to a great looking website or PDF. -## Using Resumic -Take a look at our full [documentation](/docs). - ## Support For detailed information on support options see our [support guide](/SUPPORT.md). diff --git a/cmd/generate_example.go b/cmd/generate_example.go index 0e55e99..40cfaca 100644 --- a/cmd/generate_example.go +++ b/cmd/generate_example.go @@ -9,8 +9,10 @@ import ( "github.com/spf13/cobra" ) +// Flag to specify output. Default value is "resume_example.json" +var outputFileName string + func generateExampleRun(cmd *cobra.Command, args []string) error { - examplePath := args[0] example, err := schema.GenerateExample() if err != nil { return fmt.Errorf("Couldn't generate the example: %s", err) @@ -19,21 +21,23 @@ func generateExampleRun(cmd *cobra.Command, args []string) error { if err != nil { return fmt.Errorf("Couldn't marshal the example to json: %s", err) } - err = ioutil.WriteFile(examplePath, exampleJSON, 0600) + err = ioutil.WriteFile(outputFileName, exampleJSON, 0600) + if err != nil { - return fmt.Errorf("Couldn't write the example to %s: %s", examplePath, err) + return fmt.Errorf("Couldn't write the example to %s: %s", outputFileName, err) } - fmt.Printf("Example file created successfully at %s\n", examplePath) + fmt.Printf("Example file created successfully at %s\n", outputFileName) return nil } var generateExampleCmd = &cobra.Command{ - Use: "example PATH", + Use: "example", Short: "Generate an example json resume", - Args: cobra.ExactArgs(1), + Args: cobra.MaximumNArgs(1), RunE: generateExampleRun, } func init() { + generateExampleCmd.Flags().StringVarP(&outputFileName, "output", "o", "resume_example.json", "Specify a custom output file for example resume data.") generateCmd.AddCommand(generateExampleCmd) } diff --git a/cmd/generate_example_test.go b/cmd/generate_example_test.go index 0e8f38a..0bbc294 100644 --- a/cmd/generate_example_test.go +++ b/cmd/generate_example_test.go @@ -12,7 +12,7 @@ func TestGenerateExampleRunValid(t *testing.T) { if err != nil { t.Fatalf("Could not generate temp file: %s", err) } - err = Execute([]string{"generate", "example", tempFile.Name()}) + err = Execute([]string{"generate", "example", "-o", tempFile.Name()}) if err != nil { t.Fatalf("Could not generate example, %s", err) } diff --git a/cmd/generate_jsonschema.go b/cmd/generate_jsonschema.go index c71dd42..4c0604c 100644 --- a/cmd/generate_jsonschema.go +++ b/cmd/generate_jsonschema.go @@ -8,8 +8,9 @@ import ( "go.resumic.org/schema/schema" ) +var schemaPath string + func generateJSONSchemaRun(cmd *cobra.Command, args []string) error { - schemaPath := args[0] schema, err := schema.GenerateJSONSchema() if err != nil { return fmt.Errorf("Couldn't generate JSON schema: %s", err) @@ -23,12 +24,13 @@ func generateJSONSchemaRun(cmd *cobra.Command, args []string) error { } var generateJSONSchemaCmd = &cobra.Command{ - Use: "jsonschema PATH", + Use: "jsonschema", Short: "Generate the jsonschema for the resumic schema", - Args: cobra.ExactArgs(1), + Args: cobra.MaximumNArgs(1), RunE: generateJSONSchemaRun, } func init() { + generateJSONSchemaCmd.Flags().StringVarP(&schemaPath, "output", "o", "resume.json", "Specify an output file for the resume data") generateCmd.AddCommand(generateJSONSchemaCmd) } diff --git a/cmd/generate_jsonschema_test.go b/cmd/generate_jsonschema_test.go index fa17754..0aaa37e 100644 --- a/cmd/generate_jsonschema_test.go +++ b/cmd/generate_jsonschema_test.go @@ -12,7 +12,7 @@ func TestGenerateJSONSchemaRunValid(t *testing.T) { if err != nil { t.Fatalf("Could not generate temp file: %s", err) } - err = Execute([]string{"generate", "jsonschema", tempFile.Name()}) + err = Execute([]string{"generate", "jsonschema", "-o", tempFile.Name()}) if err != nil { t.Fatalf("Could not generate schema, %s", err) } diff --git a/cmd/generate_uischema.go b/cmd/generate_uischema.go index 72205f5..ce42f2e 100644 --- a/cmd/generate_uischema.go +++ b/cmd/generate_uischema.go @@ -8,27 +8,29 @@ import ( "go.resumic.org/schema/schema" ) +var uiSchemaPath string + func generateUISchemaRun(cmd *cobra.Command, args []string) error { - schemaPath := args[0] schema, err := schema.GenerateUISchema() if err != nil { return fmt.Errorf("Couldn't generate UI schema: %s", err) } - err = ioutil.WriteFile(schemaPath, schema, 0600) + err = ioutil.WriteFile(uiSchemaPath, schema, 0600) if err != nil { - return fmt.Errorf("Couldn't write the schema to %s: %s", schemaPath, err) + return fmt.Errorf("Couldn't write the schema to %s: %s", uiSchemaPath, err) } - fmt.Printf("UI schema file created successfully at %s\n", schemaPath) + fmt.Printf("UI schema file created successfully at %s\n", uiSchemaPath) return nil } var generateUISchemaCmd = &cobra.Command{ - Use: "uischema PATH", + Use: "uischema", Short: "Generate the uischema for the resumic schema", - Args: cobra.ExactArgs(1), + Args: cobra.MaximumNArgs(1), RunE: generateUISchemaRun, } func init() { + generateUISchemaCmd.Flags().StringVarP(&uiSchemaPath, "output", "o", "resume.json", "Specify an output file for the resume data") generateCmd.AddCommand(generateUISchemaCmd) } diff --git a/cmd/generate_uischema_test.go b/cmd/generate_uischema_test.go index 686c9e9..abb40a7 100644 --- a/cmd/generate_uischema_test.go +++ b/cmd/generate_uischema_test.go @@ -12,7 +12,7 @@ func TestGenerateUISchemaRunValid(t *testing.T) { if err != nil { t.Fatalf("Could not generate temp file: %s", err) } - err = Execute([]string{"generate", "uischema", tempFile.Name()}) + err = Execute([]string{"generate", "uischema", "-o", tempFile.Name()}) if err != nil { t.Fatalf("Could not generate schema, %s", err) } diff --git a/cmd/render.go b/cmd/render.go index 00749d0..502003d 100644 --- a/cmd/render.go +++ b/cmd/render.go @@ -3,15 +3,19 @@ package cmd import ( "fmt" "io/ioutil" + "path/filepath" "github.com/spf13/cobra" "go.resumic.org/schema/render" "go.resumic.org/schema/theme" ) +var ( + resumePath string + htmlPath string +) + func renderRun(cmd *cobra.Command, args []string) error { - resumePath := args[0] - htmlPath := args[1] cacheDir, err := cmd.Flags().GetString("cacheDir") if err != nil { panic(err) @@ -30,6 +34,11 @@ func renderRun(cmd *cobra.Command, args []string) error { if err != nil { return err } + } else { + themesDir, err = filepath.Abs(themesDir) + if err != nil { + return fmt.Errorf("Couldn't convert themesDir to absolute: %s", err) + } } resume, err := ioutil.ReadFile(resumePath) @@ -49,13 +58,15 @@ func renderRun(cmd *cobra.Command, args []string) error { } var renderCmd = &cobra.Command{ - Use: "render JSON_PATH HTML_PATH", + Use: "render", Short: "Render json resume to html", - Args: cobra.ExactArgs(2), + Args: cobra.MaximumNArgs(2), RunE: renderRun, } func init() { + renderCmd.Flags().StringVarP(&resumePath, "resume", "r", "resume.json", "Path to resume data file") + renderCmd.Flags().StringVarP(&htmlPath, "output", "o", "resume.html", "Path to output file") renderCmd.Flags().StringP("theme", "t", "test-theme", "Theme to use") renderCmd.Flags().StringP("themesDir", "d", "", "Filesystem path to themes directory") rootCmd.AddCommand(renderCmd) diff --git a/cmd/render_test.go b/cmd/render_test.go index b6ef648..f7e2d0f 100644 --- a/cmd/render_test.go +++ b/cmd/render_test.go @@ -18,7 +18,7 @@ func TestRenderRun(t *testing.T) { if err != nil { t.Fatalf("Could not make temp file: %s", err) } - err = Execute([]string{"--cacheDir", cacheDir, "render", resumePath, tempFile.Name()}) + err = Execute([]string{"--cacheDir", cacheDir, "render", "-r", resumePath, "-o", tempFile.Name()}) if err != nil { t.Fatalf("Could not render the resume html: %s", err) } diff --git a/cmd/validate.go b/cmd/validate.go index 524f8aa..d3e7d81 100644 --- a/cmd/validate.go +++ b/cmd/validate.go @@ -9,12 +9,13 @@ import ( "github.com/spf13/cobra" ) +var resumePathValidate string + func validateRun(cmd *cobra.Command, args []string) error { - resumePath := args[0] - resume, err := ioutil.ReadFile(resumePath) + resume, err := ioutil.ReadFile(resumePathValidate) if err != nil { - return fmt.Errorf("Couldn't read the resume json file from %s: %s", resumePath, err) + return fmt.Errorf("Couldn't read the resume json file from %s: %s", resumePathValidate, err) } if err := schema.ValidateResume(resume); err != nil { @@ -23,17 +24,18 @@ func validateRun(cmd *cobra.Command, args []string) error { } return fmt.Errorf("Couldn't validate the resume: %s", err) } - fmt.Printf("%s is valid and conforming with the resumic schema", resumePath) + fmt.Printf("%s is valid and conforming with the resumic schema\n", resumePathValidate) return nil } var validateCmd = &cobra.Command{ Use: "validate PATH", Short: "Validate a json resume", - Args: cobra.ExactArgs(1), + Args: cobra.MaximumNArgs(1), RunE: validateRun, } func init() { + validateCmd.Flags().StringVarP(&resumePathValidate, "resume", "r", "resume.json", "Path to resume data file") rootCmd.AddCommand(validateCmd) } diff --git a/cmd/validate_test.go b/cmd/validate_test.go index 3506f9e..4d6ed83 100644 --- a/cmd/validate_test.go +++ b/cmd/validate_test.go @@ -4,7 +4,7 @@ import "testing" func TestValidateRunValid(t *testing.T) { resumeFile := "../example.json" - err := validateRun(validateCmd, []string{resumeFile}) + err := Execute([]string{"validate", "-r", resumeFile}) //validateRun(validateCmd, []string{"-r", resumeFile}) if err != nil { t.Fatalf("Expected valid state, got error, %s", err) } diff --git a/docs/LICENSE b/docs/LICENSE deleted file mode 100644 index fd662a7..0000000 --- a/docs/LICENSE +++ /dev/null @@ -1,428 +0,0 @@ -Attribution-ShareAlike 4.0 International - -======================================================================= - -Creative Commons Corporation ("Creative Commons") is not a law firm and -does not provide legal services or legal advice. Distribution of -Creative Commons public licenses does not create a lawyer-client or -other relationship. Creative Commons makes its licenses and related -information available on an "as-is" basis. Creative Commons gives no -warranties regarding its licenses, any material licensed under their -terms and conditions, or any related information. Creative Commons -disclaims all liability for damages resulting from their use to the -fullest extent possible. - -Using Creative Commons Public Licenses - -Creative Commons public licenses provide a standard set of terms and -conditions that creators and other rights holders may use to share -original works of authorship and other material subject to copyright -and certain other rights specified in the public license below. The -following considerations are for informational purposes only, are not -exhaustive, and do not form part of our licenses. - - Considerations for licensors: Our public licenses are - intended for use by those authorized to give the public - permission to use material in ways otherwise restricted by - copyright and certain other rights. Our licenses are - irrevocable. Licensors should read and understand the terms - and conditions of the license they choose before applying it. - Licensors should also secure all rights necessary before - applying our licenses so that the public can reuse the - material as expected. Licensors should clearly mark any - material not subject to the license. This includes other CC- - licensed material, or material used under an exception or - limitation to copyright. More considerations for licensors: - wiki.creativecommons.org/Considerations_for_licensors - - Considerations for the public: By using one of our public - licenses, a licensor grants the public permission to use the - licensed material under specified terms and conditions. If - the licensor's permission is not necessary for any reason--for - example, because of any applicable exception or limitation to - copyright--then that use is not regulated by the license. Our - licenses grant only permissions under copyright and certain - other rights that a licensor has authority to grant. Use of - the licensed material may still be restricted for other - reasons, including because others have copyright or other - rights in the material. A licensor may make special requests, - such as asking that all changes be marked or described. - Although not required by our licenses, you are encouraged to - respect those requests where reasonable. More_considerations - for the public: - wiki.creativecommons.org/Considerations_for_licensees - -======================================================================= - -Creative Commons Attribution-ShareAlike 4.0 International Public -License - -By exercising the Licensed Rights (defined below), You accept and agree -to be bound by the terms and conditions of this Creative Commons -Attribution-ShareAlike 4.0 International Public License ("Public -License"). To the extent this Public License may be interpreted as a -contract, You are granted the Licensed Rights in consideration of Your -acceptance of these terms and conditions, and the Licensor grants You -such rights in consideration of benefits the Licensor receives from -making the Licensed Material available under these terms and -conditions. - - -Section 1 -- Definitions. - - a. Adapted Material means material subject to Copyright and Similar - Rights that is derived from or based upon the Licensed Material - and in which the Licensed Material is translated, altered, - arranged, transformed, or otherwise modified in a manner requiring - permission under the Copyright and Similar Rights held by the - Licensor. For purposes of this Public License, where the Licensed - Material is a musical work, performance, or sound recording, - Adapted Material is always produced where the Licensed Material is - synched in timed relation with a moving image. - - b. Adapter's License means the license You apply to Your Copyright - and Similar Rights in Your contributions to Adapted Material in - accordance with the terms and conditions of this Public License. - - c. BY-SA Compatible License means a license listed at - creativecommons.org/compatiblelicenses, approved by Creative - Commons as essentially the equivalent of this Public License. - - d. Copyright and Similar Rights means copyright and/or similar rights - closely related to copyright including, without limitation, - performance, broadcast, sound recording, and Sui Generis Database - Rights, without regard to how the rights are labeled or - categorized. For purposes of this Public License, the rights - specified in Section 2(b)(1)-(2) are not Copyright and Similar - Rights. - - e. Effective Technological Measures means those measures that, in the - absence of proper authority, may not be circumvented under laws - fulfilling obligations under Article 11 of the WIPO Copyright - Treaty adopted on December 20, 1996, and/or similar international - agreements. - - f. Exceptions and Limitations means fair use, fair dealing, and/or - any other exception or limitation to Copyright and Similar Rights - that applies to Your use of the Licensed Material. - - g. License Elements means the license attributes listed in the name - of a Creative Commons Public License. The License Elements of this - Public License are Attribution and ShareAlike. - - h. Licensed Material means the artistic or literary work, database, - or other material to which the Licensor applied this Public - License. - - i. Licensed Rights means the rights granted to You subject to the - terms and conditions of this Public License, which are limited to - all Copyright and Similar Rights that apply to Your use of the - Licensed Material and that the Licensor has authority to license. - - j. Licensor means the individual(s) or entity(ies) granting rights - under this Public License. - - k. Share means to provide material to the public by any means or - process that requires permission under the Licensed Rights, such - as reproduction, public display, public performance, distribution, - dissemination, communication, or importation, and to make material - available to the public including in ways that members of the - public may access the material from a place and at a time - individually chosen by them. - - l. Sui Generis Database Rights means rights other than copyright - resulting from Directive 96/9/EC of the European Parliament and of - the Council of 11 March 1996 on the legal protection of databases, - as amended and/or succeeded, as well as other essentially - equivalent rights anywhere in the world. - - m. You means the individual or entity exercising the Licensed Rights - under this Public License. Your has a corresponding meaning. - - -Section 2 -- Scope. - - a. License grant. - - 1. Subject to the terms and conditions of this Public License, - the Licensor hereby grants You a worldwide, royalty-free, - non-sublicensable, non-exclusive, irrevocable license to - exercise the Licensed Rights in the Licensed Material to: - - a. reproduce and Share the Licensed Material, in whole or - in part; and - - b. produce, reproduce, and Share Adapted Material. - - 2. Exceptions and Limitations. For the avoidance of doubt, where - Exceptions and Limitations apply to Your use, this Public - License does not apply, and You do not need to comply with - its terms and conditions. - - 3. Term. The term of this Public License is specified in Section - 6(a). - - 4. Media and formats; technical modifications allowed. The - Licensor authorizes You to exercise the Licensed Rights in - all media and formats whether now known or hereafter created, - and to make technical modifications necessary to do so. The - Licensor waives and/or agrees not to assert any right or - authority to forbid You from making technical modifications - necessary to exercise the Licensed Rights, including - technical modifications necessary to circumvent Effective - Technological Measures. For purposes of this Public License, - simply making modifications authorized by this Section 2(a) - (4) never produces Adapted Material. - - 5. Downstream recipients. - - a. Offer from the Licensor -- Licensed Material. Every - recipient of the Licensed Material automatically - receives an offer from the Licensor to exercise the - Licensed Rights under the terms and conditions of this - Public License. - - b. Additional offer from the Licensor -- Adapted Material. - Every recipient of Adapted Material from You - automatically receives an offer from the Licensor to - exercise the Licensed Rights in the Adapted Material - under the conditions of the Adapter's License You apply. - - c. No downstream restrictions. You may not offer or impose - any additional or different terms or conditions on, or - apply any Effective Technological Measures to, the - Licensed Material if doing so restricts exercise of the - Licensed Rights by any recipient of the Licensed - Material. - - 6. No endorsement. Nothing in this Public License constitutes or - may be construed as permission to assert or imply that You - are, or that Your use of the Licensed Material is, connected - with, or sponsored, endorsed, or granted official status by, - the Licensor or others designated to receive attribution as - provided in Section 3(a)(1)(A)(i). - - b. Other rights. - - 1. Moral rights, such as the right of integrity, are not - licensed under this Public License, nor are publicity, - privacy, and/or other similar personality rights; however, to - the extent possible, the Licensor waives and/or agrees not to - assert any such rights held by the Licensor to the limited - extent necessary to allow You to exercise the Licensed - Rights, but not otherwise. - - 2. Patent and trademark rights are not licensed under this - Public License. - - 3. To the extent possible, the Licensor waives any right to - collect royalties from You for the exercise of the Licensed - Rights, whether directly or through a collecting society - under any voluntary or waivable statutory or compulsory - licensing scheme. In all other cases the Licensor expressly - reserves any right to collect such royalties. - - -Section 3 -- License Conditions. - -Your exercise of the Licensed Rights is expressly made subject to the -following conditions. - - a. Attribution. - - 1. If You Share the Licensed Material (including in modified - form), You must: - - a. retain the following if it is supplied by the Licensor - with the Licensed Material: - - i. identification of the creator(s) of the Licensed - Material and any others designated to receive - attribution, in any reasonable manner requested by - the Licensor (including by pseudonym if - designated); - - ii. a copyright notice; - - iii. a notice that refers to this Public License; - - iv. a notice that refers to the disclaimer of - warranties; - - v. a URI or hyperlink to the Licensed Material to the - extent reasonably practicable; - - b. indicate if You modified the Licensed Material and - retain an indication of any previous modifications; and - - c. indicate the Licensed Material is licensed under this - Public License, and include the text of, or the URI or - hyperlink to, this Public License. - - 2. You may satisfy the conditions in Section 3(a)(1) in any - reasonable manner based on the medium, means, and context in - which You Share the Licensed Material. For example, it may be - reasonable to satisfy the conditions by providing a URI or - hyperlink to a resource that includes the required - information. - - 3. If requested by the Licensor, You must remove any of the - information required by Section 3(a)(1)(A) to the extent - reasonably practicable. - - b. ShareAlike. - - In addition to the conditions in Section 3(a), if You Share - Adapted Material You produce, the following conditions also apply. - - 1. The Adapter's License You apply must be a Creative Commons - license with the same License Elements, this version or - later, or a BY-SA Compatible License. - - 2. You must include the text of, or the URI or hyperlink to, the - Adapter's License You apply. You may satisfy this condition - in any reasonable manner based on the medium, means, and - context in which You Share Adapted Material. - - 3. You may not offer or impose any additional or different terms - or conditions on, or apply any Effective Technological - Measures to, Adapted Material that restrict exercise of the - rights granted under the Adapter's License You apply. - - -Section 4 -- Sui Generis Database Rights. - -Where the Licensed Rights include Sui Generis Database Rights that -apply to Your use of the Licensed Material: - - a. for the avoidance of doubt, Section 2(a)(1) grants You the right - to extract, reuse, reproduce, and Share all or a substantial - portion of the contents of the database; - - b. if You include all or a substantial portion of the database - contents in a database in which You have Sui Generis Database - Rights, then the database in which You have Sui Generis Database - Rights (but not its individual contents) is Adapted Material, - - including for purposes of Section 3(b); and - c. You must comply with the conditions in Section 3(a) if You Share - all or a substantial portion of the contents of the database. - -For the avoidance of doubt, this Section 4 supplements and does not -replace Your obligations under this Public License where the Licensed -Rights include other Copyright and Similar Rights. - - -Section 5 -- Disclaimer of Warranties and Limitation of Liability. - - a. UNLESS OTHERWISE SEPARATELY UNDERTAKEN BY THE LICENSOR, TO THE - EXTENT POSSIBLE, THE LICENSOR OFFERS THE LICENSED MATERIAL AS-IS - AND AS-AVAILABLE, AND MAKES NO REPRESENTATIONS OR WARRANTIES OF - ANY KIND CONCERNING THE LICENSED MATERIAL, WHETHER EXPRESS, - IMPLIED, STATUTORY, OR OTHER. THIS INCLUDES, WITHOUT LIMITATION, - WARRANTIES OF TITLE, MERCHANTABILITY, FITNESS FOR A PARTICULAR - PURPOSE, NON-INFRINGEMENT, ABSENCE OF LATENT OR OTHER DEFECTS, - ACCURACY, OR THE PRESENCE OR ABSENCE OF ERRORS, WHETHER OR NOT - KNOWN OR DISCOVERABLE. WHERE DISCLAIMERS OF WARRANTIES ARE NOT - ALLOWED IN FULL OR IN PART, THIS DISCLAIMER MAY NOT APPLY TO YOU. - - b. TO THE EXTENT POSSIBLE, IN NO EVENT WILL THE LICENSOR BE LIABLE - TO YOU ON ANY LEGAL THEORY (INCLUDING, WITHOUT LIMITATION, - NEGLIGENCE) OR OTHERWISE FOR ANY DIRECT, SPECIAL, INDIRECT, - INCIDENTAL, CONSEQUENTIAL, PUNITIVE, EXEMPLARY, OR OTHER LOSSES, - COSTS, EXPENSES, OR DAMAGES ARISING OUT OF THIS PUBLIC LICENSE OR - USE OF THE LICENSED MATERIAL, EVEN IF THE LICENSOR HAS BEEN - ADVISED OF THE POSSIBILITY OF SUCH LOSSES, COSTS, EXPENSES, OR - DAMAGES. WHERE A LIMITATION OF LIABILITY IS NOT ALLOWED IN FULL OR - IN PART, THIS LIMITATION MAY NOT APPLY TO YOU. - - c. The disclaimer of warranties and limitation of liability provided - above shall be interpreted in a manner that, to the extent - possible, most closely approximates an absolute disclaimer and - waiver of all liability. - - -Section 6 -- Term and Termination. - - a. This Public License applies for the term of the Copyright and - Similar Rights licensed here. However, if You fail to comply with - this Public License, then Your rights under this Public License - terminate automatically. - - b. Where Your right to use the Licensed Material has terminated under - Section 6(a), it reinstates: - - 1. automatically as of the date the violation is cured, provided - it is cured within 30 days of Your discovery of the - violation; or - - 2. upon express reinstatement by the Licensor. - - For the avoidance of doubt, this Section 6(b) does not affect any - right the Licensor may have to seek remedies for Your violations - of this Public License. - - c. For the avoidance of doubt, the Licensor may also offer the - Licensed Material under separate terms or conditions or stop - distributing the Licensed Material at any time; however, doing so - will not terminate this Public License. - - d. Sections 1, 5, 6, 7, and 8 survive termination of this Public - License. - - -Section 7 -- Other Terms and Conditions. - - a. The Licensor shall not be bound by any additional or different - terms or conditions communicated by You unless expressly agreed. - - b. Any arrangements, understandings, or agreements regarding the - Licensed Material not stated herein are separate from and - independent of the terms and conditions of this Public License. - - -Section 8 -- Interpretation. - - a. For the avoidance of doubt, this Public License does not, and - shall not be interpreted to, reduce, limit, restrict, or impose - conditions on any use of the Licensed Material that could lawfully - be made without permission under this Public License. - - b. To the extent possible, if any provision of this Public License is - deemed unenforceable, it shall be automatically reformed to the - minimum extent necessary to make it enforceable. If the provision - cannot be reformed, it shall be severed from this Public License - without affecting the enforceability of the remaining terms and - conditions. - - c. No term or condition of this Public License will be waived and no - failure to comply consented to unless expressly agreed to by the - Licensor. - - d. Nothing in this Public License constitutes or may be interpreted - as a limitation upon, or waiver of, any privileges and immunities - that apply to the Licensor or You, including from the legal - processes of any jurisdiction or authority. - - -======================================================================= - -Creative Commons is not a party to its public -licenses. Notwithstanding, Creative Commons may elect to apply one of -its public licenses to material it publishes and in those instances -will be considered the “Licensor.” The text of the Creative Commons -public licenses is dedicated to the public domain under the CC0 Public -Domain Dedication. Except for the limited purpose of indicating that -material is shared under a Creative Commons public license or as -otherwise permitted by the Creative Commons policies published at -creativecommons.org/policies, Creative Commons does not authorize the -use of the trademark "Creative Commons" or any other trademark or logo -of Creative Commons without its prior written consent including, -without limitation, in connection with any unauthorized modifications -to any of its public licenses or any other arrangements, -understandings, or agreements concerning use of licensed material. For -the avoidance of doubt, this paragraph does not form part of the -public licenses. - -Creative Commons may be contacted at creativecommons.org. - diff --git a/docs/README.md b/docs/README.md deleted file mode 100644 index dc551b4..0000000 --- a/docs/README.md +++ /dev/null @@ -1,21 +0,0 @@ - - - -## Development -# Documentation - -No documentation available yet. Start your first contribution with some documentation. - -See how you can contribute with our [contribution guide](/CONTRIBUTING.md). diff --git a/docs/dev/doc.md b/docs/dev/doc.md deleted file mode 100644 index 00a2fa5..0000000 --- a/docs/dev/doc.md +++ /dev/null @@ -1,1088 +0,0 @@ - -# Core -This section is of object type that tells about the basic information of the user and consists of the following sub-sections: -## type -## additionalProperties -## properties -### name -Sub-section of type string, used to specify the name of the person -The schema snippet can be shown below: - - name: - { - "type": "string" - } - -### title -Sub-section of type string, used to specify the title of the person -The schema snippet can be shown below: - - title: - { - "type": "string", - "description": "e.g. Software Engineer" - } - -### image -Sub-section of type string, used to specify the image of the person -The schema snippet can be shown below: - - image: - { - "type": "string", - "description": "URL (as per RFC 3986) to a image in JPEG or PNG format" - } - -### email -Sub-section of type string, used to specify the email of the person -The schema snippet can be shown below: - - email: - { - "type": "string", - "description": "e.g. lucas@xyz.com", - "format": "email" - } - -### phone -Sub-section of type string, used to specify the phone of the person -The schema snippet can be shown below: - - phone: - { - "type": "string", - "description": "e.g. 912-217-7923 [Phone numbers are stored as strings so use any format you like]" - } - -### url -Sub-section of type string, used to specify the url of the person -The schema snippet can be shown below: - - url: - { - "type": "string", - "format": "uri", - "description": "e.g. http://www.exampleslide.com/my-slides/" - } - -### summary -Sub-section of type string, used to specify the summary of the person -The schema snippet can be shown below: - - summary: - { - "type": "string", - "description": "Write a short 2-3 sentence biography about yourself" - } - -### currentLocation -Sub-section of type object, used to specify the currentLocation of the person -The schema snippet can be shown below: - - currentLocation: - { - "type": "object", - "format": "location", - "description": "Select the location where you currently live.", - "properties": { - "lat": { - "type": "number" - }, - "long": { - "type": "number" - } - } - } - -### permanentLocation -Sub-section of type object, used to specify the permanentLocation of the person -The schema snippet can be shown below: - - permanentLocation: - { - "type": "object", - "format": "location", - "description": "Select the location where you permanently live.", - "properties": { - "lat": { - "type": "number" - }, - "long": { - "type": "number" - } - } - } - - -# Work -This section is of array type that tells about the basic information of the user and consists of the following sub-sections: -## type -## additionalItems -## items -### name -Sub-section of type string, used to specify the name of the person -The schema snippet can be shown below: - - name: - { - "type": "string", - "description": "e.g. XYZ Inc. - [Company name]" - } - -### description -Sub-section of type string, used to specify the description of the person -The schema snippet can be shown below: - - description: - { - "type": "string", - "description": "e.g. A social media company - [Description of the companies primary activity]" - } - -### position -Sub-section of type string, used to specify the position of the person -The schema snippet can be shown below: - - position: - { - "type": "string", - "description": "e.g. Software Engineer - [Position at the company]" - } - -### location -Sub-section of type object, used to specify the location of the person -The schema snippet can be shown below: - - location: - { - "type": "object", - "format": "location", - "description": "e.g. Germany - [Location for this activity]", - "properties": { - "lat": { - "type": "number" - }, - "long": { - "type": "number" - } - } - } - -### url -Sub-section of type string, used to specify the url of the person -The schema snippet can be shown below: - - url: - { - "type": "string", - "description": "e.g. http://xyz.example.com - [Related link to the company website]", - "format": "uri" - } - -### startDate -Sub-section of type string, used to specify the startDate of the person -The schema snippet can be shown below: - - startDate: - { - "type": "string", - "description": "e.g. 2017-06-28 - [resume.json uses the ISO 8601 date standard]", - "format": "date" - } - -### endDate -Sub-section of type string, used to specify the endDate of the person -The schema snippet can be shown below: - - endDate: - { - "type": "string", - "description": "e.g. 2018-12-29 - [resume.json uses the ISO 8601 date standard]", - "format": "date" - } - -### summary -Sub-section of type string, used to specify the summary of the person -The schema snippet can be shown below: - - summary: - { - "type": "string", - "description": "Give an overview of your responsibilities at the company" - } - -### highlights -Sub-section of type array, used to specify the highlights of the person -The schema snippet can be shown below: - - highlights: - { - "type": "array", - "description": "Specify multiple accomplishments", - "additionalItems": false, - "items": { - "type": "string", - "description": "e.g. Worked with mobile team at Twitter to develop remote debugging tools for mobile browsers " - } - } - - -# Education -This section is of array type that tells about the basic information of the user and consists of the following sub-sections: -## type -## additionalItems -## items -### institution -Sub-section of type string, used to specify the institution of the person -The schema snippet can be shown below: - - institution: - { - "type": "string", - "description": "e.g. XYZ Institute of Technology - [Add institute name]" - } - -### area -Sub-section of type string, used to specify the area of the person -The schema snippet can be shown below: - - area: - { - "type": "string", - "description": "e.g. Engineering" - } - -### studyType -Sub-section of type string, used to specify the studyType of the person -The schema snippet can be shown below: - - studyType: - { - "type": "string", - "description": "e.g. Bachelor" - } - -### startDate -Sub-section of type string, used to specify the startDate of the person -The schema snippet can be shown below: - - startDate: - { - "type": "string", - "description": "e.g. 2017-06-29 - [resume.json uses the ISO 8601 date standard]", - "format": "date" - } - -### endDate -Sub-section of type string, used to specify the endDate of the person -The schema snippet can be shown below: - - endDate: - { - "type": "string", - "description": "e.g. 2013-06-29 - [resume.json uses the ISO 8601 date standard]", - "format": "date" - } - -### score -Sub-section of type object, used to specify the score of the person -The schema snippet can be shown below: - - score: - { - "type": "object", - "additionalProperties": true, - "properties": { - "scoretype": { - "type": "string", - "description": "eg. GPA or PERCENTAGE - [Add score type]" - }, - "scorevalue": { - "type": "string", - "description": "eg. 3.4/4.0 - [Add obtained score/total score]" - } - } - } - -### courses -Sub-section of type array, used to specify the courses of the person -The schema snippet can be shown below: - - courses: - { - "type": "array", - "description": "List notable courses/subjects", - "additionalItems": false, - "items": { - "type": "string", - "description": "e.g. CS302 - Introduction to Algorithms - [Add course name]" - } - } - -### honors -Sub-section of type array, used to specify the honors of the person -The schema snippet can be shown below: - - honors: - { - "type": "array", - "description": "List education honours", - "additionalItems": false, - "items": { - "type": "string", - "description": "e.g. Magna Cum Laude" - } - } - - -# Volunteer -This section is of array type that tells about the basic information of the user and consists of the following sub-sections: -## type -## additionalItems -## items -### organization -Sub-section of type string, used to specify the organization of the person -The schema snippet can be shown below: - - organization: - { - "type": "string", - "description": "e.g. Xyz " - } - -### position -Sub-section of type string, used to specify the position of the person -The schema snippet can be shown below: - - position: - { - "type": "string", - "description": "e.g. Open Source Contributor [Contribution type]" - } - -### location -Sub-section of type object, used to specify the location of the person -The schema snippet can be shown below: - - location: - { - "type": "object", - "format": "location", - "description": "e.g. Germany - [Location for this activity]", - "properties": { - "lat": { - "type": "number" - }, - "long": { - "type": "number" - } - } - } - -### url -Sub-section of type string, used to specify the url of the person -The schema snippet can be shown below: - - url: - { - "type": "string", - "description": "e.g. http://xyz.example.com - [Related link to support volunteer experience]", - "format": "uri" - } - -### startDate -Sub-section of type string, used to specify the startDate of the person -The schema snippet can be shown below: - - startDate: - { - "type": "string", - "description": "e.g. 2014-06-29 - [resume.json uses the ISO 8601 date standard]", - "format": "date" - } - -### endDate -Sub-section of type string, used to specify the endDate of the person -The schema snippet can be shown below: - - endDate: - { - "type": "string", - "description": "e.g. 2017-06-29 - [resume.json uses the ISO 8601 date standard] ", - "format": "date" - } - -### summary -Sub-section of type string, used to specify the summary of the person -The schema snippet can be shown below: - - summary: - { - "type": "string", - "description": "Give an overview of your responsibilities at the company" - } - -### highlights -Sub-section of type array, used to specify the highlights of the person -The schema snippet can be shown below: - - highlights: - { - "type": "array", - "description": "Specify accomplishments and achievements", - "additionalItems": false, - "items": { - "type": "string", - "description": "e.g Invited as a speaker in Xyzcon'17" - } - } - - -# Publications -This section is of array type that tells about the basic information of the user and consists of the following sub-sections: -## type -## description -## additionalItems -## items -### name -Sub-section of type string, used to specify the name of the person -The schema snippet can be shown below: - - name: - { - "type": "string", - "description": "e.g. Deep learning and Artificial Intelligence" - } - -### publisher -Sub-section of type string, used to specify the publisher of the person -The schema snippet can be shown below: - - publisher: - { - "type": "string", - "description": "e.g. XYZ, Computer Magazine" - } - -### releaseDate -Sub-section of type string, used to specify the releaseDate of the person -The schema snippet can be shown below: - - releaseDate: - { - "type": "string", - "description": "e.g. 2015-08-01 - [resume.json uses the ISO 8601 date standard]" - } - -### resources -Sub-section of type array, used to specify the resources of the person -The schema snippet can be shown below: - - resources: - { - "type": "array", - "description": "Specify multiple resources with label", - "additionalItems": false, - "url": { - "type": "string", - "format": "uri", - "description": "e.g. http://www.example.com/my-example-slides/" - }, - "label": { - "type": "string", - "description": "e.g Slides" - } - } - -### url -Sub-section of type string, used to specify the url of the person -The schema snippet can be shown below: - - url: - { - "type": "string", - "description": "e.g. http://www.computer.org.example.com/csdl/mags/co/2015/10/rx069-abs.html" - } - -### summary -Sub-section of type string, used to specify the summary of the person -The schema snippet can be shown below: - - summary: - { - "type": "string", - "description": "e.g. Discussion of the advent of deep learning and artificial intelligence - Short summary of publication" - } - - -# Legal -This section is of array type that tells about the basic information of the user and consists of the following sub-sections: -## type -## description -## additionalItems -## items -### name -Sub-section of type string, used to specify the name of the person -The schema snippet can be shown below: - - name: - { - "type": "string", - "description": "e.g. XYZ's patent on LZW compression, a fundamental part of the widely used GIF graphics format - [Add document name]" - } - -### legalType -Sub-section of type string, used to specify the legalType of the person -The schema snippet can be shown below: - - legalType: - { - "type": "string", - "description": "e.g. Patent, Trademark, Copyright - Give the type of this document" - } - -### description -Sub-section of type string, used to specify the description of the person -The schema snippet can be shown below: - - description: - { - "type": "string", - "description": "Give a brief description about this document" - } - -### applicationDate -Sub-section of type string, used to specify the applicationDate of the person -The schema snippet can be shown below: - - applicationDate: - { - "type": "string", - "description": "e.g. 2015-08-01 - [resume.json uses the ISO 8601 date standard]", - "format": "date" - } - -### grantDate -Sub-section of type string, used to specify the grantDate of the person -The schema snippet can be shown below: - - grantDate: - { - "type": "string", - "description": "e.g. 2016-09-01 - [resume.json uses the ISO 8601 date standard]", - "format": "date" - } - -### endDate -Sub-section of type string, used to specify the endDate of the person -The schema snippet can be shown below: - - endDate: - { - "type": "string", - "description": "e.g. 2020-09-03 - [resume.json uses the ISO 8601 date standard]", - "format": "date" - } - -### resources -Sub-section of type array, used to specify the resources of the person -The schema snippet can be shown below: - - resources: - { - "type": "array", - "description": "Specify multiple resources with label", - "additionalItems": false, - "url": { - "type": "string", - "format": "uri", - "description": "e.g. http://www.example.com/my-patent-slides/" - }, - "label": { - "type": "string", - "description": "e.g Slides" - } - } - -### idNumber -Sub-section of type string, used to specify the idNumber of the person -The schema snippet can be shown below: - - idNumber: - { - "type": "string", - "description": "e.g. JP2004369746A - [Add the application number or Id Number] " - } - - -# Skills -This section is of array type that tells about the basic information of the user and consists of the following sub-sections: -## type -## description -## additionalItems -## items -### name -Sub-section of type string, used to specify the name of the person -The schema snippet can be shown below: - - name: - { - "type": "string", - "description": "e.g. Web Development" - } - -### keyword -Sub-section of type array, used to specify the keyword of the person -The schema snippet can be shown below: - - keyword: - { - "type": "array", - "description": "List some keywords pertaining to the skill", - "additionalItems": false, - "items": { - "type": "object", - "additionalProperties": true, - "properties": { - "name": { - "type": "string", - "description": "e.g. HTML - [Add the skill name]" - }, - "score": { - "type": "number", - "description": "e.g. 20 - [Score for the skill name]" - } - } - } - } - - -# Awards -This section is of array type that tells about the basic information of the user and consists of the following sub-sections: -## type -## description -## additionalItems -## items -### title -Sub-section of type string, used to specify the title of the person -The schema snippet can be shown below: - - title: - { - "type": "string", - "description": "e.g. Awarded Software Process Achievement Award " - } - -### date -Sub-section of type string, used to specify the date of the person -The schema snippet can be shown below: - - date: - { - "type": "string", - "description": "e.g. 2016-06-12 - [resume.json uses the ISO 8601 date standard]", - "format": "date" - } - -### awarder -Sub-section of type string, used to specify the awarder of the person -The schema snippet can be shown below: - - awarder: - { - "type": "string", - "description": "e.g. IEEE" - } - -### summary -Sub-section of type string, used to specify the summary of the person -The schema snippet can be shown below: - - summary: - { - "type": "string", - "description": "e.g. Received for my work in Deep learning and AI" - } - - -# Projects -This section is of array type that tells about the basic information of the user and consists of the following sub-sections: -## type -## description -## additionalItems -## items -### name -Sub-section of type string, used to specify the name of the person -The schema snippet can be shown below: - - name: - { - "type": "string", - "description": "e.g. File Transfer application - [Name of the project]" - } - -### location -Sub-section of type object, used to specify the location of the person -The schema snippet can be shown below: - - location: - { - "type": "object", - "format": "location", - "description": "e.g France - [Location for this activity]", - "properties": { - "lat": { - "type": "number" - }, - "long": { - "type": "number" - } - } - } - -### description -Sub-section of type string, used to specify the description of the person -The schema snippet can be shown below: - - description: - { - "type": "string", - "description": "e.g. Developed a client and server based application - [Short summary of project]" - } - -### highlights -Sub-section of type array, used to specify the highlights of the person -The schema snippet can be shown below: - - highlights: - { - "type": "array", - "description": "Specify multiple features", - "additionalItems": false, - "items": { - "type": "string", - "description": "e.g. used Java AWT and Swing for client side userinterface" - } - } - -### keywords -Sub-section of type array, used to specify the keywords of the person -The schema snippet can be shown below: - - keywords: - { - "type": "array", - "description": "Specify special elements involved", - "additionalItems": false, - "items": { - "type": "string", - "description": "e.g. Java" - } - } - -### startDate -Sub-section of type string, used to specify the startDate of the person -The schema snippet can be shown below: - - startDate: - { - "type": "string", - "description": "e.g. 2017-06-29 - [resume.json uses the ISO 8601 date standard]", - "format": "date" - } - -### endDate -Sub-section of type string, used to specify the endDate of the person -The schema snippet can be shown below: - - endDate: - { - "type": "string", - "description": "e.g. 2017-06-29 - [resume.json uses the ISO 8601 date standard] ", - "format": "date" - } - -### resources -Sub-section of type array, used to specify the resources of the person -The schema snippet can be shown below: - - resources: - { - "type": "array", - "description": "Specify multiple resources with label", - "additionalItems": false, - "url": { - "type": "string", - "format": "uri", - "description": "e.g. http://www.example.com/my-awesome-slides/" - }, - "label": { - "type": "string", - "description": "e.g slides" - } - } - -### url -Sub-section of type string, used to specify the url of the person -The schema snippet can be shown below: - - url: - { - "type": "string", - "format": "uri", - "description": "e.g. http://www.example.org/csdl/mags/co/1996/10/rx069-abs.html" - } - -### roles -Sub-section of type array, used to specify the roles of the person -The schema snippet can be shown below: - - roles: - { - "type": "array", - "description": "Specify your role on this project or in company", - "additionalItems": false, - "items": { - "type": "string", - "description": "e.g. Team Lead, Speaker, Writer" - } - } - -### entity -Sub-section of type string, used to specify the entity of the person -The schema snippet can be shown below: - - entity: - { - "type": "string", - "description": "e.g. 'greenpeace', 'corporationXYZ' - [Relevant company/entity affiliations]" - } - -### type -Sub-section of type string, used to specify the type of the person -The schema snippet can be shown below: - - type: - { - "type": "string", - "description": " e.g. 'volunteering', 'presentation', 'talk', 'application', 'conference'" - } - - -# Certificates -This section is of array type that tells about the basic information of the user and consists of the following sub-sections: -## type -## additionalItems -## items -### code -Sub-section of type string, used to specify the code of the person -The schema snippet can be shown below: - - code: - { - "type": "string", - "description": "e.g. 1Z0-062" - } - -### name -Sub-section of type string, used to specify the name of the person -The schema snippet can be shown below: - - name: - { - "type": "string", - "description": "e.g. XYZ Certified Application Specialist (MCAS) - [Add the certificate name]" - } - -### website -Sub-section of type string, used to specify the website of the person -The schema snippet can be shown below: - - website: - { - "type": "string", - "description": "Link to issuing authority's description of the certificate", - "format": "uri" - } - -### verification -Sub-section of type string, used to specify the verification of the person -The schema snippet can be shown below: - - verification: - { - "type": "string", - "description": "External candidate verification URL", - "format": "uri" - } - -### grantDate -Sub-section of type string, used to specify the grantDate of the person -The schema snippet can be shown below: - - grantDate: - { - "type": "string", - "description": "e.g. 2017-06-29 - [resume.json uses the ISO 8601 date standard]", - "format": "date" - } - -### score -Sub-section of type string, used to specify the score of the person -The schema snippet can be shown below: - - score: - { - "type": "string", - "description": "Exam result (PASS/FAIL, 100%, 100)", - "format": "date" - } - -### endDate -Sub-section of type string, used to specify the endDate of the person -The schema snippet can be shown below: - - endDate: - { - "type": "string", - "description": "e.g. 2020-01-20", - "format": "date" - } - -### doesNotExpire -Sub-section of type boolean, used to specify the doesNotExpire of the person -The schema snippet can be shown below: - - doesNotExpire: - { - "type": "boolean", - "format": "checkbox" - } - - -# References -This section is of array type that tells about the basic information of the user and consists of the following sub-sections: -## type -## description -## additionalItems -## items -### name -Sub-section of type string, used to specify the name of the person -The schema snippet can be shown below: - - name: - { - "type": "string", - "description": "e.g. Stephan Mark" - } - -### company -Sub-section of type string, used to specify the company of the person -The schema snippet can be shown below: - - company: - { - "type": "string", - "description": "e.g. Xyz" - } - -### position -Sub-section of type string, used to specify the position of the person -The schema snippet can be shown below: - - position: - { - "type": "string", - "description": "e.g. Senior Software Engineer" - } - -### reference -Sub-section of type string, used to specify the reference of the person -The schema snippet can be shown below: - - reference: - { - "type": "string", - "description": "e.g. Joe blogs was a great employee, who turned up to work at least once a week. He exceeded my expectations when it came to doing nothing." - } - - -# Languages -This section is of array type that tells about the basic information of the user and consists of the following sub-sections: -## type -## description -## additionalItems -## items -### language -Sub-section of type string, used to specify the language of the person -The schema snippet can be shown below: - - language: - { - "type": "string", - "description": "e.g. English, Spanish - [Name of language]" - } - -### score -Sub-section of type number, used to specify the score of the person -The schema snippet can be shown below: - - score: - { - "type": "number", - "description": "e.g. 20 - [Score for the language]" - } - - -# Interests -This section is of array type that tells about the basic information of the user and consists of the following sub-sections: -## type -## additionalItems -## items -### name -Sub-section of type string, used to specify the name of the person -The schema snippet can be shown below: - - name: - { - "type": "string", - "description": "e.g. Philosophy" - } - - -# Meta -This section is of object type that tells about the basic information of the user and consists of the following sub-sections: -## type -## description -## additionalProperties -## properties -### canonical -Sub-section of type string, used to specify the canonical of the person -The schema snippet can be shown below: - - canonical: - { - "type": "string", - "description": "URL (as per RFC 3986) to latest version of this document" - } - -### version -Sub-section of type string, used to specify the version of the person -The schema snippet can be shown below: - - version: - { - "type": "string", - "description": "e.g. v1.0.0 - A version field which follows semver" - } - -### lastModified -Sub-section of type string, used to specify the lastModified of the person -The schema snippet can be shown below: - - lastModified: - { - "type": "string", - "description": "Using ISO 8601 with YYYY-MM-DDThh:mm:ss" - } - diff --git a/docs/dev/overview.md b/docs/dev/overview.md deleted file mode 100644 index 7c84c86..0000000 --- a/docs/dev/overview.md +++ /dev/null @@ -1,19 +0,0 @@ -#Overview -The schema.json file consists of a set of sections,sub-sections with related properties. -The current version of schema.json consists of the following sub-sections: - - * core - * work - * education - * courses - * volunteer - * publications - * legal - * skills - * awards - * projects - * certificates - * references - * languages - * interests - * meta \ No newline at end of file diff --git a/docs/schema/doc.go b/docs/schema/doc.go deleted file mode 100644 index b9e149c..0000000 --- a/docs/schema/doc.go +++ /dev/null @@ -1 +0,0 @@ -package schema diff --git a/docs/schema/schema.go b/docs/schema/schema.go deleted file mode 100644 index 05d4150..0000000 --- a/docs/schema/schema.go +++ /dev/null @@ -1,666 +0,0 @@ -package schema - -type Data struct { - Schema string `json:"$schema"` - Title string `json:"title"` - Type string `json:"type"` - AdditionalProperties bool `json:"additionalProperties"` - Properties struct { - Core struct { - Type string `json:"type"` - AdditionalProperties bool `json:"additionalProperties"` - Properties struct { - Name struct { - Type string `json:"type"` - } `json:"name"` - Title struct { - Type string `json:"type"` - Description string `json:"description"` - } `json:"title"` - Image struct { - Type string `json:"type"` - Description string `json:"description"` - } `json:"image"` - Email struct { - Type string `json:"type"` - Description string `json:"description"` - Format string `json:"format"` - } `json:"email"` - Phone struct { - Type string `json:"type"` - Description string `json:"description"` - } `json:"phone"` - Url struct { - Type string `json:"type"` - Format string `json:"format"` - Description string `json:"description"` - } `json:"url"` - Summary struct { - Type string `json:"type"` - Description string `json:"description"` - } `json:"summary"` - CurrentLocation struct { - Type string `json:"type"` - Format string `json:"format"` - Description string `json:"description"` - Properties struct { - Lat struct { - Type string `json:"type"` - } `json:"lat"` - Long struct { - Type string `json:"type"` - } `json:"long"` - } `json:"properties"` - } `json:"currentLocation"` - PermanentLocation struct { - Type string `json:"type"` - Format string `json:"format"` - Description string `json:"description"` - Properties struct { - Lat struct { - Type string `json:"type"` - } `json:"lat"` - Long struct { - Type string `json:"type"` - } `json:"long"` - } `json:"properties"` - } `json:"permanentLocation"` - } `json:"properties"` - } `json:"core"` - Work struct { - Type string `json:"type"` - AdditionalItems bool `json:"additionalItems"` - Items struct { - Type string `json:"type"` - AdditionalProperties bool `json:"additionalProperties"` - Properties struct { - Name struct { - Type string `json:"type"` - Description string `json:"description"` - } `json:"name"` - Description struct { - Type string `json:"type"` - Description string `json:"description"` - } `json:"description"` - Position struct { - Type string `json:"type"` - Description string `json:"description"` - } `json:"position"` - Location struct { - Type string `json:"type"` - Format string `json:"format"` - Description string `json:"description"` - Properties struct { - Lat struct { - Type string `json:"type"` - } `json:"lat"` - Long struct { - Type string `json:"type"` - } `json:"long"` - } `json:"properties"` - } `json:"location"` - Url struct { - Type string `json:"type"` - Description string `json:"description"` - Format string `json:"format"` - } `json:"url"` - StartDate struct { - Type string `json:"type"` - Description string `json:"description"` - Format string `json:"format"` - } `json:"startDate"` - EndDate struct { - Type string `json:"type"` - Description string `json:"description"` - Format string `json:"format"` - } `json:"endDate"` - Summary struct { - Type string `json:"type"` - Description string `json:"description"` - } `json:"summary"` - Highlights struct { - Type string `json:"type"` - Description string `json:"description"` - AdditionalItems bool `json:"additionalItems"` - Items struct { - Type string `json:"type"` - Description string `json:"description"` - } `json:"items"` - } `json:"highlights"` - } `json:"properties"` - } `json:"items"` - } `json:"work"` - Education struct { - Type string `json:"type"` - AdditionalItems bool `json:"additionalItems"` - Items struct { - Type string `json:"type"` - AdditionalProperties bool `json:"additionalProperties"` - Properties struct { - Institution struct { - Type string `json:"type"` - Description string `json:"description"` - } `json:"institution"` - Location struct { - Type string `json:"type"` - Format string `json:"format"` - Description string `json:"description"` - Properties struct { - Lat struct { - Type string `json:"type"` - } `json:"lat"` - Long struct { - Type string `json:"type"` - } `json:"long"` - } `json:"properties"` - } `json:"location"` - Area struct { - Type string `json:"type"` - Description string `json:"description"` - } `json:"area"` - StudyType struct { - Type string `json:"type"` - Description string `json:"description"` - } `json:"studyType"` - StartDate struct { - Type string `json:"type"` - Description string `json:"description"` - Format string `json:"format"` - } `json:"startDate"` - EndDate struct { - Type string `json:"type"` - Description string `json:"description"` - Format string `json:"format"` - } `json:"endDate"` - Score struct { - Type string `json:"type"` - AdditionalProperties bool `json:"additionalProperties"` - Properties struct { - Scoretype struct { - Type string `json:"type"` - Description string `json:"description"` - } `json:"scoretype"` - Scorevalue struct { - Type string `json:"type"` - Description string `json:"description"` - } `json:"scorevalue"` - } `json:"properties"` - } `json:"score"` - Courses struct { - Type string `json:"type"` - Description string `json:"description"` - AdditionalItems bool `json:"additionalItems"` - Items struct { - Type string `json:"type"` - Description string `json:"description"` - } `json:"items"` - } `json:"courses"` - Honors struct { - Type string `json:"type"` - Description string `json:"description"` - AdditionalItems bool `json:"additionalItems"` - Items struct { - Type string `json:"type"` - Description string `json:"description"` - } `json:"items"` - } `json:"honors"` - } `json:"properties"` - } `json:"items"` - } `json:"education"` - Volunteer struct { - Type string `json:"type"` - AdditionalItems bool `json:"additionalItems"` - Items struct { - Type string `json:"type"` - AdditionalProperties bool `json:"additionalProperties"` - Properties struct { - Organization struct { - Type string `json:"type"` - Description string `json:"description"` - } `json:"organization"` - Position struct { - Type string `json:"type"` - Description string `json:"description"` - } `json:"position"` - Location struct { - Type string `json:"type"` - Format string `json:"format"` - Description string `json:"description"` - Properties struct { - Lat struct { - Type string `json:"type"` - } `json:"lat"` - Long struct { - Type string `json:"type"` - } `json:"long"` - } `json:"properties"` - } `json:"location"` - Url struct { - Type string `json:"type"` - Description string `json:"description"` - Format string `json:"format"` - } `json:"url"` - StartDate struct { - Type string `json:"type"` - Description string `json:"description"` - Format string `json:"format"` - } `json:"startDate"` - EndDate struct { - Type string `json:"type"` - Description string `json:"description"` - Format string `json:"format"` - } `json:"endDate"` - Summary struct { - Type string `json:"type"` - Description string `json:"description"` - } `json:"summary"` - Highlights struct { - Type string `json:"type"` - Description string `json:"description"` - AdditionalItems bool `json:"additionalItems"` - Items struct { - Type string `json:"type"` - Description string `json:"description"` - } `json:"items"` - } `json:"highlights"` - } `json:"properties"` - } `json:"items"` - } `json:"volunteer"` - Publications struct { - Type string `json:"type"` - Description string `json:"description"` - AdditionalItems bool `json:"additionalItems"` - Items struct { - Type string `json:"type"` - AdditionalProperties bool `json:"additionalProperties"` - Properties struct { - Name struct { - Type string `json:"type"` - Description string `json:"description"` - } `json:"name"` - Publisher struct { - Type string `json:"type"` - Description string `json:"description"` - } `json:"publisher"` - ReleaseDate struct { - Type string `json:"type"` - Description string `json:"description"` - } `json:"releaseDate"` - Resources struct { - Type string `json:"type"` - Description string `json:"description"` - AdditionalItems bool `json:"additionalItems"` - Url struct { - Type string `json:"type"` - Format string `json:"format"` - Description string `json:"description"` - } `json:"url"` - Label struct { - Type string `json:"type"` - Description string `json:"description"` - } `json:"label"` - } `json:"resources"` - Url struct { - Type string `json:"type"` - Format string `json:"format"` - Description string `json:"description"` - } `json:"url"` - Summary struct { - Type string `json:"type"` - Description string `json:"description"` - } `json:"summary"` - } `json:"properties"` - } `json:"items"` - } `json:"publications"` - Legal struct { - Type string `json:"type"` - Description string `json:"description"` - AdditionalItems bool `json:"additionalItems"` - Items struct { - Type string `json:"type"` - AdditionalProperties bool `json:"additionalProperties"` - Properties struct { - Name struct { - Type string `json:"type"` - Description string `json:"description"` - } `json:"name"` - LegalType struct { - Type string `json:"type"` - Description string `json:"description"` - } `json:"legalType"` - Description struct { - Type string `json:"type"` - Description string `json:"description"` - } `json:"description"` - ApplicationDate struct { - Type string `json:"type"` - Description string `json:"description"` - Format string `json:"format"` - } `json:"applicationDate"` - GrantDate struct { - Type string `json:"type"` - Description string `json:"description"` - Format string `json:"format"` - } `json:"grantDate"` - EndDate struct { - Type string `json:"type"` - Description string `json:"description"` - Format string `json:"format"` - } `json:"endDate"` - Resources struct { - Type string `json:"type"` - Description string `json:"description"` - AdditionalItems bool `json:"additionalItems"` - Url struct { - Type string `json:"type"` - Format string `json:"format"` - Description string `json:"description"` - } `json:"url"` - Label struct { - Type string `json:"type"` - Description string `json:"description"` - } `json:"label"` - } `json:"resources"` - IdNumber struct { - Type string `json:"type"` - Description string `json:"description"` - } `json:"idNumber"` - } `json:"properties"` - } `json:"items"` - } `json:"legal"` - Skills struct { - Type string `json:"type"` - Description string `json:"description"` - AdditionalItems bool `json:"additionalItems"` - Items struct { - Type string `json:"type"` - AdditionalProperties bool `json:"additionalProperties"` - Properties struct { - Name struct { - Type string `json:"type"` - Description string `json:"description"` - } `json:"name"` - Keyword struct { - Type string `json:"type"` - Description string `json:"description"` - AdditionalItems bool `json:"additionalItems"` - Items struct { - Type string `json:"type"` - AdditionalProperties bool `json:"additionalProperties"` - Properties struct { - Name struct { - Type string `json:"type"` - Description string `json:"description"` - } `json:"name"` - Score struct { - Type string `json:"type"` - Description string `json:"description"` - } `json:"score"` - } `json:"properties"` - } `json:"items"` - } `json:"keyword"` - } `json:"properties"` - } `json:"items"` - } `json:"skills"` - Awards struct { - Type string `json:"type"` - Description string `json:"description"` - AdditionalItems bool `json:"additionalItems"` - Items struct { - Type string `json:"type"` - AdditionalProperties bool `json:"additionalProperties"` - Properties struct { - Title struct { - Type string `json:"type"` - Description string `json:"description"` - } `json:"title"` - Date struct { - Type string `json:"type"` - Description string `json:"description"` - Format string `json:"format"` - } `json:"date"` - Awarder struct { - Type string `json:"type"` - Description string `json:"description"` - } `json:"awarder"` - Summary struct { - Type string `json:"type"` - Description string `json:"description"` - } `json:"summary"` - } `json:"properties"` - } `json:"items"` - } `json:"awards"` - Projects struct { - Type string `json:"type"` - Description string `json:"description"` - AdditionalItems bool `json:"additionalItems"` - Items struct { - Type string `json:"type"` - AdditionalProperties bool `json:"additionalProperties"` - Properties struct { - Name struct { - Type string `json:"type"` - Description string `json:"description"` - } `json:"name"` - Location struct { - Type string `json:"type"` - Format string `json:"format"` - Description string `json:"description"` - Properties struct { - Lat struct { - Type string `json:"type"` - } `json:"lat"` - Long struct { - Type string `json:"type"` - } `json:"long"` - } `json:"properties"` - } `json:"location"` - Description struct { - Type string `json:"type"` - Description string `json:"description"` - } `json:"description"` - Highlights struct { - Type string `json:"type"` - Description string `json:"description"` - AdditionalItems bool `json:"additionalItems"` - Items struct { - Type string `json:"type"` - Description string `json:"description"` - } `json:"items"` - } `json:"highlights"` - Keywords struct { - Type string `json:"type"` - Description string `json:"description"` - AdditionalItems bool `json:"additionalItems"` - Items struct { - Type string `json:"type"` - Description string `json:"description"` - } `json:"items"` - } `json:"keywords"` - StartDate struct { - Type string `json:"type"` - Description string `json:"description"` - Format string `json:"format"` - } `json:"startDate"` - EndDate struct { - Type string `json:"type"` - Description string `json:"description"` - Format string `json:"format"` - } `json:"endDate"` - Resources struct { - Type string `json:"type"` - Description string `json:"description"` - AdditionalItems bool `json:"additionalItems"` - Url struct { - Type string `json:"type"` - Format string `json:"format"` - Description string `json:"description"` - } `json:"url"` - Label struct { - Type string `json:"type"` - Description string `json:"description"` - } `json:"label"` - } `json:"resources"` - Url struct { - Type string `json:"type"` - Format string `json:"format"` - Description string `json:"description"` - } `json:"url"` - Roles struct { - Type string `json:"type"` - Description string `json:"description"` - AdditionalItems bool `json:"additionalItems"` - Items struct { - Type string `json:"type"` - Description string `json:"description"` - } `json:"items"` - } `json:"roles"` - Entity struct { - Type string `json:"type"` - Description string `json:"description"` - } `json:"entity"` - Type struct { - Type string `json:"type"` - Description string `json:"description"` - } `json:"type"` - } `json:"properties"` - } `json:"items"` - } `json:"projects"` - Certificates struct { - Type string `json:"type"` - AdditionalItems bool `json:"additionalItems"` - Items struct { - Type string `json:"type"` - AdditionalProperties bool `json:"additionalProperties"` - Properties struct { - Code struct { - Type string `json:"type"` - Description string `json:"description"` - } `json:"code"` - Name struct { - Type string `json:"type"` - Description string `json:"description"` - } `json:"name"` - Website struct { - Type string `json:"type"` - Description string `json:"description"` - Format string `json:"format"` - } `json:"website"` - Verification struct { - Type string `json:"type"` - Description string `json:"description"` - Format string `json:"format"` - } `json:"verification"` - GrantDate struct { - Type string `json:"type"` - Description string `json:"description"` - Format string `json:"format"` - } `json:"grantDate"` - Score struct { - Type string `json:"type"` - Description string `json:"description"` - Format string `json:"format"` - } `json:"score"` - EndDate struct { - Type string `json:"type"` - Description string `json:"description"` - Format string `json:"format"` - } `json:"endDate"` - DoesNotExpire struct { - Type string `json:"type"` - Format string `json:"format"` - } `json:"doesNotExpire"` - } `json:"properties"` - } `json:"items"` - } `json:"certificates"` - References struct { - Type string `json:"type"` - Description string `json:"description"` - AdditionalItems bool `json:"additionalItems"` - Items struct { - Type string `json:"type"` - AdditionalProperties bool `json:"additionalProperties"` - Properties struct { - Name struct { - Type string `json:"type"` - Description string `json:"description"` - } `json:"name"` - Company struct { - Type string `json:"type"` - Description string `json:"description"` - } `json:"company"` - Position struct { - Type string `json:"type"` - Description string `json:"description"` - } `json:"position"` - Reference struct { - Type string `json:"type"` - Description string `json:"description"` - } `json:"reference"` - } `json:"properties"` - } `json:"items"` - } `json:"references"` - Languages struct { - Type string `json:"type"` - Description string `json:"description"` - AdditionalItems bool `json:"additionalItems"` - Items struct { - Type string `json:"type"` - AdditionalProperties bool `json:"additionalProperties"` - Properties struct { - Language struct { - Type string `json:"type"` - Description string `json:"description"` - } `json:"language"` - Score struct { - Type string `json:"type"` - Description string `json:"description"` - } `json:"score"` - } `json:"properties"` - } `json:"items"` - } `json:"languages"` - Interests struct { - Type string `json:"type"` - AdditionalItems bool `json:"additionalItems"` - Items struct { - Type string `json:"type"` - AdditionalProperties bool `json:"additionalProperties"` - Properties struct { - Name struct { - Type string `json:"type"` - Description string `json:"description"` - } `json:"name"` - Keywords struct { - Type string `json:"type"` - Description string `json:"description"` - AdditionalItems bool `json:"additionalItems"` - Items struct { - Type string `json:"type"` - Description string `json:"description"` - } `json:"items"` - } `json:"keywords"` - } `json:"properties"` - } `json:"items"` - } `json:"interests"` - Meta struct { - Type string `json:"type"` - Description string `json:"description"` - AdditionalProperties bool `json:"additionalProperties"` - Properties struct { - Canonical struct { - Type string `json:"type"` - Description string `json:"description"` - } `json:"canonical"` - Version struct { - Type string `json:"type"` - Description string `json:"description"` - } `json:"version"` - LastModified struct { - Type string `json:"type"` - Description string `json:"description"` - Format string `json:"format"` - } `json:"lastModified"` - } `json:"properties"` - } `json:"meta"` - } `json:"properties"` -} diff --git a/example.json b/example.json index 3976826..865a88b 100644 --- a/example.json +++ b/example.json @@ -99,7 +99,7 @@ { "name": "Deep learning and Artificial Intelligence", "publisher": "XYZ, Computer Magazine", - "releaseDate": "2015-08-01", + "publicationDate": "2015-08-01", "resources": [ { "url": "http://www.example.com/my-example-slides/", @@ -218,9 +218,8 @@ } ], "meta": { - "canonical": "", "version": "v1.0.0", "lastModified": "2017-06-29T15:53:01+01:00", "uuid": "078c39ce-23ee-4970-9637-c07379132dce" } -} \ No newline at end of file +} diff --git a/go.mod b/go.mod index fb8e491..26d4725 100644 --- a/go.mod +++ b/go.mod @@ -1,34 +1,14 @@ module go.resumic.org/schema +go 1.13 + require ( - github.com/PuerkitoBio/purell v1.1.1 // indirect - github.com/dlclark/regexp2 v1.1.8 // indirect - github.com/emirpasic/gods v1.12.0 // indirect - github.com/gobuffalo/logger v1.0.1 // indirect github.com/gobuffalo/packd v0.3.0 github.com/gobuffalo/packr/v2 v2.6.0 - github.com/gohugoio/hugo v0.49.2 - github.com/gorilla/websocket v1.4.1 // indirect - github.com/hashicorp/golang-lru v0.5.3 // indirect - github.com/jdkato/prose v1.1.1 // indirect - github.com/magiconair/properties v1.8.1 // indirect - github.com/markbates/inflect v1.0.4 // indirect - github.com/mattn/go-runewidth v0.0.4 // indirect - github.com/nicksnyder/go-i18n v1.10.1 // indirect - github.com/olekukonko/tablewriter v0.0.1 // indirect - github.com/pkg/errors v0.8.1 // indirect - github.com/rogpeppe/go-internal v1.3.1 // indirect + github.com/gohugoio/hugo v0.58.1 github.com/spf13/cobra v0.0.5 - github.com/tdewolff/minify v2.3.6+incompatible // indirect - github.com/tdewolff/parse v2.3.4+incompatible // indirect - github.com/xanzy/ssh-agent v0.2.1 // indirect - github.com/xeipuuv/gojsonpointer v0.0.0-20180127040702-4e3ac2762d5f // indirect + github.com/xeipuuv/gojsonpointer v0.0.0-20190905194746-02993c407bfb // indirect github.com/xeipuuv/gojsonreference v0.0.0-20180127040603-bd5ef7bd5415 // indirect github.com/xeipuuv/gojsonschema v1.1.0 - golang.org/x/text v0.3.2 // indirect - gopkg.in/src-d/go-billy.v4 v4.3.2 // indirect - gopkg.in/src-d/go-git-fixtures.v3 v3.3.0 // indirect - gopkg.in/src-d/go-git.v4 v4.9.1 + gopkg.in/src-d/go-git.v4 v4.13.1 ) - -go 1.13 diff --git a/go.sum b/go.sum index 8b65ea3..d3fa133 100644 --- a/go.sum +++ b/go.sum @@ -1,40 +1,87 @@ +cloud.google.com/go v0.26.0/go.mod h1:aQUYkXzVsufM+DwF1aE+0xfcU+56JwCaLick0ClmMTw= +cloud.google.com/go v0.34.0/go.mod h1:aQUYkXzVsufM+DwF1aE+0xfcU+56JwCaLick0ClmMTw= +cloud.google.com/go v0.37.4/go.mod h1:NHPJ89PdicEuT9hdPXMROBD91xc5uRDxsMtSB16k7hw= +cloud.google.com/go v0.39.0 h1:UgQP9na6OTfp4dsAiz/eFpFA1C6tPdH5wiRdi19tuMw= +cloud.google.com/go v0.39.0/go.mod h1:rVLT6fkc8chs9sfPtFc1SBH6em7n+ZoXaG+87tDISts= +contrib.go.opencensus.io/exporter/aws v0.0.0-20181029163544-2befc13012d0/go.mod h1:uu1P0UCM/6RbsMrgPa98ll8ZcHM858i/AD06a9aLRCA= +contrib.go.opencensus.io/exporter/ocagent v0.4.12/go.mod h1:450APlNTSR6FrvC3CTRqYosuDstRB9un7SOx2k/9ckA= +contrib.go.opencensus.io/exporter/stackdriver v0.11.0/go.mod h1:hA7rlmtavV03FGxzWXAPBUnZeZBhWN/QYQAuMtxc9Bk= +contrib.go.opencensus.io/integrations/ocsql v0.1.4/go.mod h1:8DsSdjz3F+APR+0z0WkU1aRorQCFfRxvqjUUPMbF3fE= +contrib.go.opencensus.io/resource v0.0.0-20190131005048-21591786a5e0/go.mod h1:F361eGI91LCmW1I/Saf+rX0+OFcigGlFvXwEGEnkRLA= +github.com/Azure/azure-amqp-common-go v1.1.3/go.mod h1:FhZtXirFANw40UXI2ntweO+VOkfaw8s6vZxUiRhLYW8= +github.com/Azure/azure-amqp-common-go v1.1.4/go.mod h1:FhZtXirFANw40UXI2ntweO+VOkfaw8s6vZxUiRhLYW8= +github.com/Azure/azure-pipeline-go v0.1.8/go.mod h1:XA1kFWRVhSK+KNFiOhfv83Fv8L9achrP7OxIzeTn1Yg= +github.com/Azure/azure-pipeline-go v0.1.9 h1:u7JFb9fFTE6Y/j8ae2VK33ePrRqJqoCM/IWkQdAZ+rg= +github.com/Azure/azure-pipeline-go v0.1.9/go.mod h1:XA1kFWRVhSK+KNFiOhfv83Fv8L9achrP7OxIzeTn1Yg= +github.com/Azure/azure-sdk-for-go v21.3.0+incompatible/go.mod h1:9XXNKU+eRnpl9moKnB4QOLf1HestfXbmab5FXxiDBjc= +github.com/Azure/azure-sdk-for-go v27.3.0+incompatible/go.mod h1:9XXNKU+eRnpl9moKnB4QOLf1HestfXbmab5FXxiDBjc= +github.com/Azure/azure-service-bus-go v0.4.1/go.mod h1:d9ho9e/06euiTwGpKxmlbpPhFUsfCsq6a4tZ68r51qI= +github.com/Azure/azure-storage-blob-go v0.6.0 h1:SEATKb3LIHcaSIX+E6/K4kJpwfuozFEsmt5rS56N6CE= +github.com/Azure/azure-storage-blob-go v0.6.0/go.mod h1:oGfmITT1V6x//CswqY2gtAHND+xIP64/qL7a5QJix0Y= +github.com/Azure/go-autorest v11.0.0+incompatible/go.mod h1:r+4oMnoxhatjLLJ6zxSWATqVooLgysK6ZNox3g/xq24= +github.com/Azure/go-autorest v11.1.1+incompatible/go.mod h1:r+4oMnoxhatjLLJ6zxSWATqVooLgysK6ZNox3g/xq24= +github.com/Azure/go-autorest v11.1.2+incompatible/go.mod h1:r+4oMnoxhatjLLJ6zxSWATqVooLgysK6ZNox3g/xq24= +github.com/Azure/go-autorest/tracing v0.1.0/go.mod h1:ROEEAFwXycQw7Sn3DXNtEedEvdeRAgDr0izn4z5Ij88= github.com/BurntSushi/locker v0.0.0-20171006230638-a6e239ea1c69 h1:+tu3HOoMXB7RXEINRVIpxJCT+KdYiI7LAEAUrOw3dIU= github.com/BurntSushi/locker v0.0.0-20171006230638-a6e239ea1c69/go.mod h1:L1AbZdiDllfyYH5l5OkAaZtk7VkWe89bPJFmnDBNHxg= -github.com/BurntSushi/toml v0.0.0-20170626110600-a368813c5e64/go.mod h1:xHWCNGjB5oqiDr8zfno3MHue2Ht5sIBksp03qcyfWMU= github.com/BurntSushi/toml v0.3.1 h1:WXkYYl6Yr3qBf1K79EBnL4mak0OimBfB0XUf9Vl28OQ= github.com/BurntSushi/toml v0.3.1/go.mod h1:xHWCNGjB5oqiDr8zfno3MHue2Ht5sIBksp03qcyfWMU= +github.com/GoogleCloudPlatform/cloudsql-proxy v0.0.0-20190418212003-6ac0b49e7197/go.mod h1:aJ4qN3TfrelA6NZ6AXsXRfmEVaYin3EDbSPJrKS8OXo= +github.com/OneOfOne/xxhash v1.2.2/go.mod h1:HSdplMjZKSmBqAxg5vPj2TmRDmfkzw+cTzAElWljhcU= github.com/PuerkitoBio/purell v1.1.0 h1:rmGxhojJlM0tuKtfdvliR84CFHljx9ag64t2xmVkjK4= github.com/PuerkitoBio/purell v1.1.0/go.mod h1:c11w/QuzBsJSee3cPx9rAFu61PvFxuPbtSwDGJws/X0= -github.com/PuerkitoBio/purell v1.1.1 h1:WEQqlqaGbrPkxLJWfBwQmfEAE1Z7ONdDLqrN38tNFfI= -github.com/PuerkitoBio/purell v1.1.1/go.mod h1:c11w/QuzBsJSee3cPx9rAFu61PvFxuPbtSwDGJws/X0= github.com/PuerkitoBio/urlesc v0.0.0-20170810143723-de5bf2ad4578 h1:d+Bc7a5rLufV/sSk/8dngufqelfh6jnri85riMAaF/M= github.com/PuerkitoBio/urlesc v0.0.0-20170810143723-de5bf2ad4578/go.mod h1:uGdkoq3SwY9Y+13GIhn11/XLaGBb4BfwItxLd5jeuXE= +github.com/Shopify/sarama v1.19.0/go.mod h1:FVkBWblsNy7DGZRfXLU0O9RCGt5g3g3yEuWXgklEdEo= +github.com/Shopify/toxiproxy v2.1.4+incompatible/go.mod h1:OXgGpZ6Cli1/URJOF1DMxUHB2q5Ap20/P/eIdh4G0pI= github.com/alcortesm/tgz v0.0.0-20161220082320-9c5fe88206d7 h1:uSoVVbwJiQipAclBbw+8quDsfcvFjOpI5iCf4p/cqCs= github.com/alcortesm/tgz v0.0.0-20161220082320-9c5fe88206d7/go.mod h1:6zEj6s6u/ghQa61ZWa/C2Aw3RkjiTBOix7dkqa1VLIs= github.com/alecthomas/assert v0.0.0-20170929043011-405dbfeb8e38 h1:smF2tmSOzy2Mm+0dGI2AIUHY+w0BUc+4tn40djz7+6U= github.com/alecthomas/assert v0.0.0-20170929043011-405dbfeb8e38/go.mod h1:r7bzyVFMNntcxPZXK3/+KdruV1H5KSlyVY0gc+NgInI= -github.com/alecthomas/chroma v0.5.0 h1:PI0RlRSWL+8GSMuIMMA5KIND4CeJ5KXUQA60LLp/SjA= -github.com/alecthomas/chroma v0.5.0/go.mod h1:MmozekIi2rfQSzDcdEZ2BoJ9Pxs/7uc2Y4Boh+hIeZo= +github.com/alecthomas/chroma v0.6.4 h1:Gn37/7W4a1qkmKLzfUpDy2rt3jt4X8CWycb4Gm7L360= +github.com/alecthomas/chroma v0.6.4/go.mod h1:SJ/Wi5RVz5y89yCXlK2fHyONHoVO49N8qGDj/ESVQlQ= github.com/alecthomas/colour v0.0.0-20160524082231-60882d9e2721 h1:JHZL0hZKJ1VENNfmXvHbgYlbUOvpzYzvy2aZU5gXVeo= github.com/alecthomas/colour v0.0.0-20160524082231-60882d9e2721/go.mod h1:QO9JBoKquHd+jz9nshCh40fOfO+JzsoXy8qTHF68zU0= -github.com/alecthomas/repr v0.0.0-20180818092828-117648cd9897 h1:p9Sln00KOTlrYkxI1zYWl1QLnEqAqEARBEYa8FQnQcY= +github.com/alecthomas/kong v0.1.15/go.mod h1:0m2VYms8rH0qbCqVB2gvGHk74bqLIq0HXjCs5bNbNQU= github.com/alecthomas/repr v0.0.0-20180818092828-117648cd9897/go.mod h1:xTS7Pm1pD1mvyM075QCDSRqH6qRLXylzS24ZTpRiSzQ= +github.com/alecthomas/repr v0.0.0-20181024024818-d37bc2a10ba1 h1:GDQdwm/gAcJcLAKQQZGOJ4knlw+7rfEQQcmwTbt4p5E= +github.com/alecthomas/repr v0.0.0-20181024024818-d37bc2a10ba1/go.mod h1:xTS7Pm1pD1mvyM075QCDSRqH6qRLXylzS24ZTpRiSzQ= +github.com/alecthomas/template v0.0.0-20160405071501-a0175ee3bccc/go.mod h1:LOuyumcjzFXgccqObfd/Ljyb9UuFJ6TxHnclSeseNhc= +github.com/alecthomas/units v0.0.0-20151022065526-2efee857e7cf/go.mod h1:ybxpYRFXyAe+OPACYpWeL0wqObRcbAqCMya13uyzqw0= github.com/anmitsu/go-shlex v0.0.0-20161002113705-648efa622239 h1:kFOfPq6dUM1hTo4JG6LR5AXSUEsOjtdm0kw0FtQtMJA= github.com/anmitsu/go-shlex v0.0.0-20161002113705-648efa622239/go.mod h1:2FmKhYUyUczH0OGQWaF5ceTx0UBShxjsH6f8oGKYe2c= +github.com/apache/thrift v0.12.0/go.mod h1:cp2SuWMxlEZw2r+iP2GNCdIi4C1qmUzdZFSVb+bacwQ= github.com/armon/consul-api v0.0.0-20180202201655-eb2c6b5be1b6/go.mod h1:grANhF5doyWs3UAsr3K4I6qtAmlQcZDesFNEHPZAzj8= -github.com/bep/debounce v1.1.0 h1:6ocXeW2iZ/7vAzgXz82J00tYxncMiEEBExPftTtOQzk= -github.com/bep/debounce v1.1.0/go.mod h1:H8yggRPQKLUhUoqrJC1bO2xNya7vanpDl7xR3ISbCJ0= -github.com/bep/gitmap v1.0.0 h1:cTTZwq7vpGuhwefKCBDV9UrHnZAPVJTvoWobimrqkUc= -github.com/bep/gitmap v1.0.0/go.mod h1:g9VRETxFUXNWzMiuxOwcudo6DfZkW9jOsOW0Ft4kYaY= -github.com/bep/go-tocss v0.5.0 h1:yDIYy1G9hWi7KVTJjvPPDVZB7gxXRRRiv3ds5mqAaCY= -github.com/bep/go-tocss v0.5.0/go.mod h1:c/+hEVoVvkufrV9Is/CPRHWGGdpcTwNuB48hfxzyYBI= -github.com/chaseadamsio/goorgeous v1.1.0 h1:J9UrYDhzucUMHXsCKG+kICvpR5dT1cqZdVFTYvSlUBk= -github.com/chaseadamsio/goorgeous v1.1.0/go.mod h1:6QaC0vFoKWYDth94dHFNgRT2YkT5FHdQp/Yx15aAAi0= +github.com/armon/go-radix v1.0.0 h1:F4z6KzEeeQIMeLFa97iZU6vupzoecKdU5TX24SNppXI= +github.com/armon/go-radix v1.0.0/go.mod h1:ufUuZ+zHj4x4TnLV4JWEpy2hxWSpsRywHrMgIH9cCH8= +github.com/armon/go-socks5 v0.0.0-20160902184237-e75332964ef5 h1:0CwZNZbxp69SHPdPJAN/hZIm0C4OItdklCFmMRWYpio= +github.com/armon/go-socks5 v0.0.0-20160902184237-e75332964ef5/go.mod h1:wHh0iHkYZB8zMSxRWpUBQtwG5a7fFgvEO+odwuTv2gs= +github.com/aws/aws-sdk-go v1.15.27/go.mod h1:mFuSZ37Z9YOHbQEwBWztmVzqXrEkub65tZoCYDt7FT0= +github.com/aws/aws-sdk-go v1.18.6/go.mod h1:KmX6BPdI08NWTb3/sm4ZGu5ShLoqVDhKgpiN924inxo= +github.com/aws/aws-sdk-go v1.19.16/go.mod h1:KmX6BPdI08NWTb3/sm4ZGu5ShLoqVDhKgpiN924inxo= +github.com/aws/aws-sdk-go v1.19.40 h1:omRrS4bCM/IbzU6UEb8Ojg1PvlElZzYZkOh8vWWgFMc= +github.com/aws/aws-sdk-go v1.19.40/go.mod h1:KmX6BPdI08NWTb3/sm4ZGu5ShLoqVDhKgpiN924inxo= +github.com/beorn7/perks v0.0.0-20180321164747-3a771d992973/go.mod h1:Dwedo/Wpr24TaqPxmxbtue+5NUziq4I4S80YR8gNf3Q= +github.com/beorn7/perks v1.0.0/go.mod h1:KWe93zE9D1o94FZ5RNwFwVgaQK1VOXiVxmqh+CedLV8= +github.com/bep/debounce v1.2.0 h1:wXds8Kq8qRfwAOpAxHrJDbCXgC5aHSzgQb/0gKsHQqo= +github.com/bep/debounce v1.2.0/go.mod h1:H8yggRPQKLUhUoqrJC1bO2xNya7vanpDl7xR3ISbCJ0= +github.com/bep/gitmap v1.1.1 h1:Nf8ySnC3I7/xPjuWeCwzukUFv185iTUQ6nOvLy9gCJA= +github.com/bep/gitmap v1.1.1/go.mod h1:g9VRETxFUXNWzMiuxOwcudo6DfZkW9jOsOW0Ft4kYaY= +github.com/bep/go-tocss v0.6.0 h1:lJf+nIjsQDpifUr+NgHi9QMBnrr9cFvMvEBT+uV9Q9E= +github.com/bep/go-tocss v0.6.0/go.mod h1:d9d3crzlTl+PUZLFzBUjfFCpp68K+ku10mzTlnqU/+A= +github.com/bep/tmc v0.5.0 h1:AP43LlBcCeJuXqwuQkVbTUOG6gQCo04Et4dHqOOx4hA= +github.com/bep/tmc v0.5.0/go.mod h1:tGYHN8fS85aJPhDLgXETVKp+PR382OvFi2+q2GkGsq0= +github.com/census-instrumentation/opencensus-proto v0.2.0/go.mod h1:f6KPmirojxKA12rnyqOA5BBL4O983OfeGPqjHWSTneU= +github.com/cespare/xxhash v1.1.0/go.mod h1:XrSqR1VqqWfGrhpAt58auRo0WTKS1nRRg3ghfAqPWnc= +github.com/cheekybits/is v0.0.0-20150225183255-68e9c0620927/go.mod h1:h/aW8ynjgkuj+NQRlZcDbAbM1ORAbXjXX77sX7T289U= +github.com/client9/misspell v0.3.4/go.mod h1:qj6jICC3Q7zFZvVWo7KLAzC3yx5G7kyvSDkc90ppPyw= +github.com/codahale/hdrhistogram v0.0.0-20161010025455-3a0bb77429bd/go.mod h1:sE/e/2PUdi/liOCUjSTXgM1o87ZssimdTWN964YiIeI= +github.com/coreos/bbolt v1.3.2/go.mod h1:iRUV2dpdMOn7Bo10OQBFzIJO9kkE559Wcmn+qkEiiKk= github.com/coreos/etcd v3.3.10+incompatible/go.mod h1:uF7uidLiAD3TWHmW31ZFd/JWoc32PjwdhPthX9715RE= github.com/coreos/go-etcd v2.0.0+incompatible/go.mod h1:Jez6KQU2B/sWsbdaef3ED8NzMklzPG4d5KIOhIy30Tk= github.com/coreos/go-semver v0.2.0/go.mod h1:nnelYz7RCh+5ahJtPPxZlU+153eP4D4r3EedlOD2RNk= -github.com/cpuguy83/go-md2man v1.0.8 h1:DwoNytLphI8hzS2Af4D0dfaEaiSq2bN05mEm4R6vf8M= -github.com/cpuguy83/go-md2man v1.0.8/go.mod h1:N6JayAiVKtlHSnuTCeuLSQVs75hb8q+dYQLjr7cDsKY= +github.com/coreos/go-systemd v0.0.0-20190321100706-95778dfbb74e/go.mod h1:F5haX7vjVVG0kc13fIWeqUViNPyEJxv/OmvnBo0Yme4= +github.com/coreos/pkg v0.0.0-20180928190104-399ea9e2e55f/go.mod h1:E3G3o1h8I7cfcXa63jLwjI0eiQQMgzzUDFVpN/nH/eA= github.com/cpuguy83/go-md2man v1.0.10 h1:BSKMNlYxDvnunlTymqtgONjNnaRV1sTpcovwwjF22jk= github.com/cpuguy83/go-md2man v1.0.10/go.mod h1:SmD6nW6nTyfqj6ABTjUi3V3JVMnlJmwcJI5acqYI6dE= github.com/creack/pty v1.1.7/go.mod h1:lj5s0c3V2DBrqTV7llrYr5NG6My20zk30Fl46Y7DoTY= @@ -43,76 +90,124 @@ github.com/danwakefield/fnmatch v0.0.0-20160403171240-cbb64ac3d964/go.mod h1:Xd9 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= github.com/davecgh/go-spew v1.1.1/go.mod h1:J7Y8YcW2NihsgmVo/mv3lAwl/skON4iLHjSsI+c5H38= -github.com/disintegration/imaging v1.5.0 h1:uYqUhwNmLU4K1FN44vhqS4TZJRAA4RhBINgbQlKyGi0= -github.com/disintegration/imaging v1.5.0/go.mod h1:9B/deIUIrliYkyMTuXJd6OUFLcrZ2tf+3Qlwnaf/CjU= +github.com/dgrijalva/jwt-go v3.2.0+incompatible/go.mod h1:E3ru+11k8xSBh+hMPgOLZmtrrCbhqsmaPHjLKYnJCaQ= +github.com/dgryski/go-sip13 v0.0.0-20181026042036-e10d5fee7954/go.mod h1:vAd38F8PWV+bWy6jNmig1y/TA+kYO4g3RSRF0IAv0no= +github.com/dimchansky/utfbom v1.1.0/go.mod h1:rO41eb7gLfo8SF1jd9F8HplJm1Fewwi4mQvIirEdv+8= +github.com/disintegration/gift v1.2.1 h1:Y005a1X4Z7Uc+0gLpSAsKhWi4qLtsdEcMIbbdvdZ6pc= +github.com/disintegration/gift v1.2.1/go.mod h1:Jh2i7f7Q2BM7Ezno3PhfezbR1xpUg9dUg3/RlKGr4HI= github.com/dlclark/regexp2 v1.1.6 h1:CqB4MjHw0MFCDj+PHHjiESmHX+N7t0tJzKvC6M97BRg= github.com/dlclark/regexp2 v1.1.6/go.mod h1:2pZnwuY/m+8K6iRw6wQdMtk+rH5tNGR1i55kozfMjCc= -github.com/dlclark/regexp2 v1.1.8 h1:PaGxkppZw/DfM3uf94XCjAdwgUCx4yVAI203rNk8xDs= -github.com/dlclark/regexp2 v1.1.8/go.mod h1:2pZnwuY/m+8K6iRw6wQdMtk+rH5tNGR1i55kozfMjCc= +github.com/dustin/go-humanize v1.0.0 h1:VSnTsYCnlFHaM2/igO1h6X3HA71jcobQuxemgkq4zYo= +github.com/dustin/go-humanize v1.0.0/go.mod h1:HtrtbFcZ19U5GC7JDqmcUSB87Iq5E25KnS6fMYU6eOk= +github.com/eapache/go-resiliency v1.1.0/go.mod h1:kFI+JgMyC7bLPUVY133qvEBtVayf5mFgVsvEsIPBvNs= +github.com/eapache/go-xerial-snappy v0.0.0-20180814174437-776d5712da21/go.mod h1:+020luEh2TKB4/GOp8oxxtq0Daoen/Cii55CzbTV6DU= +github.com/eapache/queue v1.1.0/go.mod h1:6eCeP0CKFpHLu8blIFXhExK/dRa7WDZfr6jVFPTqq+I= github.com/eknkc/amber v0.0.0-20171010120322-cdade1c07385 h1:clC1lXBpe2kTj2VHdaIu9ajZQe4kcEY9j0NsnDDBZ3o= github.com/eknkc/amber v0.0.0-20171010120322-cdade1c07385/go.mod h1:0vRUJqYpeSZifjYj7uP3BG/gKcuzL9xWVV/Y+cK33KM= -github.com/emirpasic/gods v1.9.0/go.mod h1:YfzfFFoVP/catgzJb4IKIqXjX78Ha8FMSDh3ymbK86o= github.com/emirpasic/gods v1.12.0 h1:QAUIPSaCu4G+POclxeqb3F+WPpdKqFGlw36+yOzGlrg= github.com/emirpasic/gods v1.12.0/go.mod h1:YfzfFFoVP/catgzJb4IKIqXjX78Ha8FMSDh3ymbK86o= github.com/flynn/go-shlex v0.0.0-20150515145356-3f9db97f8568 h1:BHsljHzVlRcyQhjrss6TZTdY2VfCqZPbv5k3iBFa2ZQ= github.com/flynn/go-shlex v0.0.0-20150515145356-3f9db97f8568/go.mod h1:xEzjJPgXI435gkrCt3MPfRiAkVrwSbHsst4LCFVfpJc= -github.com/fortytw2/leaktest v1.2.0 h1:cj6GCiwJDH7l3tMHLjZDo0QqPtrXJiWSI9JgpeQKw+Q= github.com/fortytw2/leaktest v1.2.0/go.mod h1:jDsjWgpAGjm2CA7WthBh/CdZYEPF31XHquHwclZch5g= +github.com/fortytw2/leaktest v1.3.0 h1:u8491cBMTQ8ft8aeV+adlcytMZylmA5nnwwkRZjI8vw= +github.com/fortytw2/leaktest v1.3.0/go.mod h1:jDsjWgpAGjm2CA7WthBh/CdZYEPF31XHquHwclZch5g= +github.com/frankban/quicktest v1.4.1 h1:Wv2VwvNn73pAdFIVUQRXYDFp31lXKbqblIXo/Q5GPSg= +github.com/frankban/quicktest v1.4.1/go.mod h1:36zfPVQyHxymz4cH7wlDmVwDrJuljRB60qkgn7rorfQ= github.com/fsnotify/fsnotify v1.4.7 h1:IXs+QLmnXW2CcXuY+8Mzv/fWEsPGWxqefPtCP5CnV9I= github.com/fsnotify/fsnotify v1.4.7/go.mod h1:jwhsz4b93w/PPRr/qN1Yymfu8t87LnFCMoQvtojpjFo= -github.com/gliderlabs/ssh v0.1.1 h1:j3L6gSLQalDETeEg/Jg0mGY0/y/N6zI2xX1978P0Uqw= -github.com/gliderlabs/ssh v0.1.1/go.mod h1:U7qILu1NlMHj9FlMhZLlkCdDnU1DBEAqr0aevW3Awn0= -github.com/gobuffalo/envy v1.6.5/go.mod h1:N+GkhhZ/93bGZc6ZKhJLP6+m+tCNPKwgSpH9kaifseQ= +github.com/ghodss/yaml v1.0.0/go.mod h1:4dBDuWmgqj2HViK6kFavaiC9ZROes6MMH2rRYeMEF04= +github.com/gliderlabs/ssh v0.2.2 h1:6zsha5zo/TWhRhwqCD3+EarCAgZ2yN28ipRnGPnwkI0= +github.com/gliderlabs/ssh v0.2.2/go.mod h1:U7qILu1NlMHj9FlMhZLlkCdDnU1DBEAqr0aevW3Awn0= +github.com/go-ini/ini v1.25.4/go.mod h1:ByCAeIL28uOIIG0E3PJtZPDL8WnHpFKFOtgjp+3Ies8= +github.com/go-kit/kit v0.8.0/go.mod h1:xBxKIO96dXMWWy0MnWVtmwkA9/13aqxPnvrjFYMA2as= +github.com/go-logfmt/logfmt v0.3.0/go.mod h1:Qt1PoO58o5twSAckw1HlFXLmHsOX5/0LbT9GBnD5lWE= +github.com/go-logfmt/logfmt v0.4.0/go.mod h1:3RMwSq7FuexP4Kalkev3ejPJsZTpXXBr9+V4qmtdjCk= +github.com/go-sql-driver/mysql v1.4.1/go.mod h1:zAC/RDZ24gD3HViQzih4MyKcchzm+sOG5ZlKdlhCg5w= +github.com/go-stack/stack v1.8.0/go.mod h1:v0f6uXyyMGvRgIKkXu+yp6POWl0qKG85gN/melR3HDY= github.com/gobuffalo/envy v1.7.0 h1:GlXgaiBkmrYMHco6t4j7SacKO4XUjvh5pwXh0f4uxXU= github.com/gobuffalo/envy v1.7.0/go.mod h1:n7DRkBerg/aorDM8kbduw5dN3oXGswK5liaSCx4T5NI= github.com/gobuffalo/logger v1.0.0 h1:xw9Ko9EcC5iAFprrjJ6oZco9UpzS5MQ4jAwghsLHdy4= github.com/gobuffalo/logger v1.0.0/go.mod h1:2zbswyIUa45I+c+FLXuWl9zSWEiVuthsk8ze5s8JvPs= -github.com/gobuffalo/logger v1.0.1 h1:ZEgyRGgAm4ZAhAO45YXMs5Fp+bzGLESFewzAVBMKuTg= -github.com/gobuffalo/logger v1.0.1/go.mod h1:2zbswyIUa45I+c+FLXuWl9zSWEiVuthsk8ze5s8JvPs= github.com/gobuffalo/packd v0.3.0 h1:eMwymTkA1uXsqxS0Tpoop3Lc0u3kTfiMBE6nKtQU4g4= github.com/gobuffalo/packd v0.3.0/go.mod h1:zC7QkmNkYVGKPw4tHpBQ+ml7W/3tIebgeo1b36chA3Q= -github.com/gobuffalo/packr v1.30.1 h1:hu1fuVR3fXEZR7rXNW3h8rqSML8EVAf6KNm0NKO/wKg= github.com/gobuffalo/packr/v2 v2.6.0 h1:EMUzJIb5rof6r087PtGmgdzdLKpRBESJ/8jyL9MexfY= github.com/gobuffalo/packr/v2 v2.6.0/go.mod h1:sgEE1xNZ6G0FNN5xn9pevVu4nywaxHvgup67xisti08= github.com/gobwas/glob v0.2.3 h1:A4xDbljILXROh+kObIiy5kIaPYD8e96x1tgBhUI5J+Y= github.com/gobwas/glob v0.2.3/go.mod h1:d3Ez4x06l9bZtSvzIay5+Yzi0fmZzPgnTbPcKjJAkT8= -github.com/gohugoio/hugo v0.49.2 h1:cj62OqvM3tV12G06J9QQkN2GrO0hOq5m0xtREC7Z9NQ= -github.com/gohugoio/hugo v0.49.2/go.mod h1:Mh0VDogJpLC4OWpv/wIE4+tJZ1wFPUfMJDNaoJ1yuFA= -github.com/google/go-cmp v0.2.0 h1:+dTQ8DZQJz0Mb/HjFlkptS1FeQ4cWSnN941F8aEG4SQ= +github.com/gogo/protobuf v1.1.1/go.mod h1:r8qH/GZQm5c6nD/R0oafs1akxWv10x8SbQlK7atdtwQ= +github.com/gogo/protobuf v1.2.0/go.mod h1:r8qH/GZQm5c6nD/R0oafs1akxWv10x8SbQlK7atdtwQ= +github.com/gogo/protobuf v1.2.1/go.mod h1:hp+jE20tsWTFYpLwKvXlhS1hjn+gTNwPg2I6zVXpSg4= +github.com/gohugoio/hugo v0.58.1 h1:1Es0AT2Vho7dWGbdm8evWq/vuEAD21IolRUKYiAZwBg= +github.com/gohugoio/hugo v0.58.1/go.mod h1:MPobZZ2ot47TTdcFVlCEADkNeZjCLmKNjrfWPhRpNwk= +github.com/gohugoio/testmodBuilder/mods v0.0.0-20190520184928-c56af20f2e95 h1:sgew0XCnZwnzpWxTt3V8LLiCO7OQi3C6dycaE67wfkU= +github.com/gohugoio/testmodBuilder/mods v0.0.0-20190520184928-c56af20f2e95/go.mod h1:bOlVlCa1/RajcHpXkrUXPSHB/Re1UnlXxD1Qp8SKOd8= +github.com/golang/glog v0.0.0-20160126235308-23def4e6c14b h1:VKtxabqXZkF25pY9ekfRL6a582T4P37/31XEstQ5p58= +github.com/golang/glog v0.0.0-20160126235308-23def4e6c14b/go.mod h1:SBH7ygxi8pfUlaOkMMuAQtPIUF8ecWP5IEl/CR7VP2Q= +github.com/golang/groupcache v0.0.0-20190129154638-5b532d6fd5ef/go.mod h1:cIg4eruTrX1D+g88fzRXU5OdNfaM+9IcxsU14FzY7Hc= +github.com/golang/mock v1.1.1/go.mod h1:oTYuIxOrZwtPieC+H1uAHpcLFnEyAGVDL/k47Jfbm0A= +github.com/golang/mock v1.2.0/go.mod h1:oTYuIxOrZwtPieC+H1uAHpcLFnEyAGVDL/k47Jfbm0A= +github.com/golang/protobuf v1.2.0/go.mod h1:6lQm79b+lXiMfvg/cZm0SGofjICqVBUtrP5yJMmIC1U= +github.com/golang/protobuf v1.3.1 h1:YF8+flBXS5eO826T4nzqPrxfhQThhXl0YzfuUPu4SBg= +github.com/golang/protobuf v1.3.1/go.mod h1:6lQm79b+lXiMfvg/cZm0SGofjICqVBUtrP5yJMmIC1U= +github.com/golang/snappy v0.0.0-20180518054509-2e65f85255db/go.mod h1:/XxbfmMg8lxefKM7IXC3fBNl/7bRcc72aCRzEWrmP2Q= +github.com/golang/snappy v0.0.1/go.mod h1:/XxbfmMg8lxefKM7IXC3fBNl/7bRcc72aCRzEWrmP2Q= +github.com/google/btree v0.0.0-20180813153112-4030bb1f1f0c/go.mod h1:lNA+9X1NB3Zf8V7Ke586lFgjr2dZNuvo3lPJSGZ5JPQ= +github.com/google/btree v1.0.0/go.mod h1:lNA+9X1NB3Zf8V7Ke586lFgjr2dZNuvo3lPJSGZ5JPQ= github.com/google/go-cmp v0.2.0/go.mod h1:oXzfMopK8JAjlY9xF4vHSVASa0yLyX7SntLO5aqRK0M= +github.com/google/go-cmp v0.3.0/go.mod h1:8QqcDgzrUqlUb/G2PQTWiueGozuR1884gddMywk6iLU= +github.com/google/go-cmp v0.3.1 h1:Xye71clBPdm5HgqGwUkwhbynsUJZhDbS20FvLhQ2izg= +github.com/google/go-cmp v0.3.1/go.mod h1:8QqcDgzrUqlUb/G2PQTWiueGozuR1884gddMywk6iLU= +github.com/google/martian v2.1.0+incompatible/go.mod h1:9I4somxYTbIHy5NJKHRl3wXiIaQGbYVAs8BPL6v8lEs= +github.com/google/martian v2.1.1-0.20190517191504-25dcb96d9e51+incompatible h1:xmapqc1AyLoB+ddYT6r04bD9lIjlOqGaREovi0SzFaE= +github.com/google/martian v2.1.1-0.20190517191504-25dcb96d9e51+incompatible/go.mod h1:9I4somxYTbIHy5NJKHRl3wXiIaQGbYVAs8BPL6v8lEs= +github.com/google/pprof v0.0.0-20181206194817-3ea8567a2e57/go.mod h1:zfwlbNMJ+OItoe0UupaVj+oy1omPYYDuagoSzA8v9mc= +github.com/google/uuid v1.1.1 h1:Gkbcsh/GbpXz7lPftLA3P6TYMwjCLYm83jiFQZF/3gY= +github.com/google/uuid v1.1.1/go.mod h1:TIyPZe4MgqvfeYDBFedMoGGpEw/LqOeaOT+nhxU+yHo= +github.com/google/wire v0.2.2 h1:fSIRzE/K12IaNgV6X0173X/oLrTwHKRiMcFZhiDrN3s= +github.com/google/wire v0.2.2/go.mod h1:7FHVg6mFpFQrjeUZrm+BaD50N5jnDKm50uVPTpyYOmU= +github.com/googleapis/gax-go v2.0.2+incompatible h1:silFMLAnr330+NRuag/VjIGF7TLp/LBrV2CJKFLWEww= +github.com/googleapis/gax-go v2.0.2+incompatible/go.mod h1:SFVmujtThgffbyetf+mdk2eWhX2bMyUtNHzFKcPA9HY= +github.com/googleapis/gax-go/v2 v2.0.4 h1:hU4mGcQI4DaAYW+IbTun+2qEZVFxK0ySjQLTbS0VQKc= +github.com/googleapis/gax-go/v2 v2.0.4/go.mod h1:0Wqv26UfaUD9n4G6kQubkQ+KchISgw+vpHVxEJEs9eg= +github.com/gorilla/context v1.1.1/go.mod h1:kBGZzfjB9CEq2AlWe17Uuf7NDRt0dE0s8S51q0aT7Yg= +github.com/gorilla/mux v1.6.2/go.mod h1:1lud6UwP+6orDFRuTfBEV8e9/aOM/c4fVVCaMa2zaAs= github.com/gorilla/websocket v1.4.0 h1:WDFjx/TMzVgy9VdMMQi2K2Emtwi2QcUQsztZ/zLaH/Q= github.com/gorilla/websocket v1.4.0/go.mod h1:E7qHFY5m1UJ88s3WnNqhKjPHQ0heANvMoAMk2YaljkQ= -github.com/gorilla/websocket v1.4.1 h1:q7AeDBpnBk8AogcD4DSag/Ukw/KV+YhzLj2bP5HvKCM= -github.com/gorilla/websocket v1.4.1/go.mod h1:YR8l580nyteQvAITg2hZ9XVh4b55+EU/adAjf1fMHhE= -github.com/hashicorp/go-immutable-radix v1.0.0 h1:AKDB1HM5PWEA7i4nhcpwOrO2byshxBjXVn/J/3+z5/0= -github.com/hashicorp/go-immutable-radix v1.0.0/go.mod h1:0y9vanUI8NX6FsYoO3zeMjhV/C5i9g4Q3DwcSNZ4P60= -github.com/hashicorp/go-uuid v1.0.0 h1:RS8zrF7PhGwyNPOtxSClXXj9HA8feRnJzgnI1RJCSnM= -github.com/hashicorp/go-uuid v1.0.0/go.mod h1:6SBZvOh/SIDV7/2o3Jml5SYk/TvGqwFJ/bN7x4byOro= -github.com/hashicorp/golang-lru v0.5.0 h1:CL2msUPvZTLb5O648aiLNJw3hnBxN2+1Jq8rCOH9wdo= +github.com/grpc-ecosystem/go-grpc-middleware v1.0.0/go.mod h1:FiyG127CGDf3tlThmgyCl78X/SZQqEOJBCDaAfeWzPs= +github.com/grpc-ecosystem/go-grpc-prometheus v1.2.0/go.mod h1:8NvIoxWQoOIhqOTXgfV/d3M/q6VIi02HzZEHgUlZvzk= +github.com/grpc-ecosystem/grpc-gateway v1.8.5/go.mod h1:vNeuVxBJEsws4ogUvrchl83t/GYV9WGTSLVdBhOQFDY= +github.com/grpc-ecosystem/grpc-gateway v1.9.0/go.mod h1:vNeuVxBJEsws4ogUvrchl83t/GYV9WGTSLVdBhOQFDY= github.com/hashicorp/golang-lru v0.5.0/go.mod h1:/m3WP610KZHVQ1SGc6re/UDhFvYD7pJ4Ao+sR/qLZy8= -github.com/hashicorp/golang-lru v0.5.3 h1:YPkqC67at8FYaadspW/6uE0COsBxS2656RLEr8Bppgk= -github.com/hashicorp/golang-lru v0.5.3/go.mod h1:iADmTwqILo4mZ8BN3D2Q6+9jd8WM5uGBxy+E8yxSoD4= +github.com/hashicorp/golang-lru v0.5.1 h1:0hERBMJE1eitiLkihrMvRVBYAkpHzc/J3QdDN+dAcgU= +github.com/hashicorp/golang-lru v0.5.1/go.mod h1:/m3WP610KZHVQ1SGc6re/UDhFvYD7pJ4Ao+sR/qLZy8= github.com/hashicorp/hcl v1.0.0 h1:0Anlzjpi4vEasTeNFn2mLJgTSwt0+6sfsiTG8qcWGx4= github.com/hashicorp/hcl v1.0.0/go.mod h1:E5yfLk+7swimpb2L/Alb/PJmXilQ/rhwaUYs4T20WEQ= +github.com/hpcloud/tail v1.0.0/go.mod h1:ab1qPbhIpdTxEkNHXyeSf5vhxWSCs/tWer42PpOxQnU= github.com/inconshreveable/mousetrap v1.0.0 h1:Z8tu5sraLXCXIcARxBp/8cbvlwVa7Z1NHg9XEKhtSvM= github.com/inconshreveable/mousetrap v1.0.0/go.mod h1:PxqpIevigyE2G7u3NXJIT2ANytuPF1OarO4DADm73n8= github.com/jbenet/go-context v0.0.0-20150711004518-d14ea06fba99 h1:BQSFePA1RWJOlocH6Fxy8MmwDt+yVQYULKfN0RoTN8A= github.com/jbenet/go-context v0.0.0-20150711004518-d14ea06fba99/go.mod h1:1lJo3i6rXxKeerYnT8Nvf0QmHCRC1n8sfWVwXF2Frvo= github.com/jdkato/prose v1.1.0 h1:LpvmDGwbKGTgdCH3a8VJL56sr7p/wOFPw/R4lM4PfFg= github.com/jdkato/prose v1.1.0/go.mod h1:jkF0lkxaX5PFSlk9l4Gh9Y+T57TqUZziWT7uZbW5ADg= -github.com/jdkato/prose v1.1.1 h1:r6CwY09U97IZNgNQEHoeCh2nvg2e8WCOGjPH/b7lowI= -github.com/jdkato/prose v1.1.1/go.mod h1:jkF0lkxaX5PFSlk9l4Gh9Y+T57TqUZziWT7uZbW5ADg= github.com/jessevdk/go-flags v1.4.0/go.mod h1:4FA24M0QyGHXBuZZK/XkWh8h0e1EYbRYJSGM75WSRxI= +github.com/jmespath/go-jmespath v0.0.0-20160202185014-0b12d6b521d8/go.mod h1:Nht3zPeWKUH0NzdCt2Blrr5ys8VGpn0CEB0cQHVjt7k= +github.com/jmespath/go-jmespath v0.0.0-20180206201540-c2b33e8439af h1:pmfjZENx5imkbgOkpRUYLnmbU7UEFbjtDA2hxJ1ichM= +github.com/jmespath/go-jmespath v0.0.0-20180206201540-c2b33e8439af/go.mod h1:Nht3zPeWKUH0NzdCt2Blrr5ys8VGpn0CEB0cQHVjt7k= github.com/joho/godotenv v1.3.0 h1:Zjp+RcGpHhGlrMbJzXTrZZPrWj+1vfm90La1wgB6Bhc= github.com/joho/godotenv v1.3.0/go.mod h1:7hK45KPybAkOC6peb+G5yklZfMxEjkZhHbwpqxOKXbg= +github.com/jonboulle/clockwork v0.1.0/go.mod h1:Ii8DK3G1RaLaWxj9trq07+26W01tbo22gdxWY5EU2bo= +github.com/jstemmer/go-junit-report v0.0.0-20190106144839-af01ea7f8024/go.mod h1:6v2b51hI/fHJwM22ozAgKL4VKDeJcHhJFhtBdhmNjmU= +github.com/julienschmidt/httprouter v1.2.0/go.mod h1:SYymIcj16QtmaHHD7aYtjjsJG7VTCxuUUipMqKk8s4w= github.com/karrick/godirwalk v1.10.12 h1:BqUm+LuJcXjGv1d2mj3gBiQyrQ57a0rYoAmhvJQ7RDU= github.com/karrick/godirwalk v1.10.12/go.mod h1:RoGL9dQei4vP9ilrpETWE8CLOZ1kiN0LhBygSwrAsHA= -github.com/kevinburke/ssh_config v0.0.0-20180830205328-81db2a75821e h1:RgQk53JHp/Cjunrr1WlsXSZpqXn+uREuHvUVcK82CV8= -github.com/kevinburke/ssh_config v0.0.0-20180830205328-81db2a75821e/go.mod h1:CT57kijsi8u/K/BOFA39wgDQJ9CxiF4nAY/ojJ6r6mM= -github.com/konsorten/go-windows-terminal-sequences v1.0.1 h1:mweAR1A6xJ3oS2pRaGiHgQ4OO8tzTaLawm8vnODuwDk= +github.com/kevinburke/ssh_config v0.0.0-20190725054713-01f96b0aa0cd h1:Coekwdh0v2wtGp9Gmz1Ze3eVRAWJMLokvN3QjdzCHLY= +github.com/kevinburke/ssh_config v0.0.0-20190725054713-01f96b0aa0cd/go.mod h1:CT57kijsi8u/K/BOFA39wgDQJ9CxiF4nAY/ojJ6r6mM= +github.com/kisielk/errcheck v1.1.0/go.mod h1:EZBBE59ingxPouuu3KfxchcWSUPOHkagtvWXihfKN4Q= +github.com/kisielk/gotool v1.0.0/go.mod h1:XhKaO+MFFWcvkIS/tQcRk01m1F5IRFswLeQ+oQHNcck= github.com/konsorten/go-windows-terminal-sequences v1.0.1/go.mod h1:T0+1ngSBFLxvqU3pZ+m/2kptfBszLMUkC4ZK/EgS/cQ= github.com/konsorten/go-windows-terminal-sequences v1.0.2 h1:DB17ag19krx9CFsz4o3enTrPXyIXCl+2iCXH/aMAp9s= github.com/konsorten/go-windows-terminal-sequences v1.0.2/go.mod h1:T0+1ngSBFLxvqU3pZ+m/2kptfBszLMUkC4ZK/EgS/cQ= +github.com/kr/logfmt v0.0.0-20140226030751-b84e30acd515/go.mod h1:+0opPa2QZZtGFBFZlji/RkVcI2GknAs/DXo4wKdlNEc= github.com/kr/pretty v0.1.0 h1:L/CwN0zerZDmRFUapSPitk6f+Q3+0za1rQkzVuMiMFI= github.com/kr/pretty v0.1.0/go.mod h1:dAy3ld7l9f0ibDNOQOHHMYYIIbhfbHSm3C4ZsoJORNo= github.com/kr/pty v1.1.1/go.mod h1:pFQYn66WHrOpPYNljwOMqo10TkYh1fy3cYio2l3bCsQ= @@ -121,172 +216,291 @@ github.com/kr/text v0.1.0 h1:45sCR5RtlFHMR4UwH9sdQ5TC8v0qDQCHnXt+kaKSTVE= github.com/kr/text v0.1.0/go.mod h1:4Jbv+DJW3UT/LiOwJeYQe1efqtUx/iVham/4vfdArNI= github.com/kyokomi/emoji v1.5.1 h1:qp9dub1mW7C4MlvoRENH6EAENb9skEFOvIEbp1Waj38= github.com/kyokomi/emoji v1.5.1/go.mod h1:mZ6aGCD7yk8j6QY6KICwnZ2pxoszVseX1DNoGtU2tBA= +github.com/lib/pq v1.1.0/go.mod h1:5WUZQaWbwv1U+lTReE5YruASi9Al49XbQIvNi/34Woo= github.com/magefile/mage v1.4.0/go.mod h1:IUDi13rsHje59lecXokTfGX0QIzO45uVPlXnJYsXepA= -github.com/magiconair/properties v1.8.0 h1:LLgXmsheXeRoUOBOjtwPQCWIYqM/LU1ayDtDePerRcY= github.com/magiconair/properties v1.8.0/go.mod h1:PppfXfuXeibc/6YijjN8zIbojt8czPbwD3XqdrwzmxQ= github.com/magiconair/properties v1.8.1 h1:ZC2Vc7/ZFkGmsVC9KvOjumD+G5lXy2RtTKyzRKO2BQ4= github.com/magiconair/properties v1.8.1/go.mod h1:PppfXfuXeibc/6YijjN8zIbojt8czPbwD3XqdrwzmxQ= +github.com/markbates/inflect v1.0.0 h1:gTffXSQCc+WaIvBcI/IItJQMOemietXr5EIKLXDYqI4= github.com/markbates/inflect v1.0.0/go.mod h1:oTeZL2KHA7CUX6X+fovmK9OvIOFuqu0TwdQrZjLTh88= -github.com/markbates/inflect v1.0.4 h1:5fh1gzTFhfae06u3hzHYO9xe3l3v3nW5Pwt3naLTP5g= -github.com/markbates/inflect v1.0.4/go.mod h1:1fR9+pO2KHEO9ZRtto13gDwwZaAKstQzferVeWqbgNs= -github.com/mattn/go-isatty v0.0.4 h1:bnP0vzxcAdeI1zdubAl5PjU6zsERjGZb7raWodagDYs= +github.com/matryer/try v0.0.0-20161228173917-9ac251b645a2/go.mod h1:0KeJpeMD6o+O4hW7qJOT7vyQPKrWmj26uf5wMc/IiIs= +github.com/mattn/go-colorable v0.0.9/go.mod h1:9vuHe8Xs5qXnSaW/c/ABM9alt+Vo+STaOChaDxuIBZU= github.com/mattn/go-isatty v0.0.4/go.mod h1:M+lRXTBqGeGNdLjl/ufCoiOlB5xdOkqRJdNxMWT7Zi4= -github.com/mattn/go-runewidth v0.0.3 h1:a+kO+98RDGEfo6asOGMmpodZq4FNtnGP54yps8BzLR4= -github.com/mattn/go-runewidth v0.0.3/go.mod h1:LwmH8dsx7+W8Uxz3IHJYH5QSwggIsqBzpuz5H//U1FU= +github.com/mattn/go-isatty v0.0.8 h1:HLtExJ+uU2HOZ+wI0Tt5DtUDrx8yhUqDcp7fYERX4CE= +github.com/mattn/go-isatty v0.0.8/go.mod h1:Iq45c/XA43vh69/j3iqttzPXn0bhXyGjM0Hdxcsrc5s= github.com/mattn/go-runewidth v0.0.4 h1:2BvfKmzob6Bmd4YsL0zygOqfdFnK7GR4QL06Do4/p7Y= github.com/mattn/go-runewidth v0.0.4/go.mod h1:LwmH8dsx7+W8Uxz3IHJYH5QSwggIsqBzpuz5H//U1FU= +github.com/matttproud/golang_protobuf_extensions v1.0.1/go.mod h1:D8He9yQNgCq6Z5Ld7szi9bcBfOoFv/3dc6xSMkL2PC0= github.com/miekg/mmark v1.3.6 h1:t47x5vThdwgLJzofNsbsAl7gmIiJ7kbDQN5BxwBmwvY= github.com/miekg/mmark v1.3.6/go.mod h1:w7r9mkTvpS55jlfyn22qJ618itLryxXBhA7Jp3FIlkw= -github.com/mitchellh/go-homedir v1.0.0/go.mod h1:SfyaCUpYCn1Vlf4IUYiD9fPX4A5wJrkLzIz1N1q0pr0= github.com/mitchellh/go-homedir v1.1.0 h1:lukF9ziXFxDFPkA1vsr5zpc1XuPDn/wFntq5mG+4E0Y= github.com/mitchellh/go-homedir v1.1.0/go.mod h1:SfyaCUpYCn1Vlf4IUYiD9fPX4A5wJrkLzIz1N1q0pr0= github.com/mitchellh/hashstructure v1.0.0 h1:ZkRJX1CyOoTkar7p/mLS5TZU4nJ1Rn/F8u9dGS02Q3Y= github.com/mitchellh/hashstructure v1.0.0/go.mod h1:QjSHrPWS+BGUVBYkbTZWEnOh3G1DutKwClXU/ABz6AQ= -github.com/mitchellh/mapstructure v1.0.0/go.mod h1:FVVH3fgwuzCH5S8UJGiWEs2h04kUh9fWfEaFds41c1Y= github.com/mitchellh/mapstructure v1.1.2 h1:fmNYVwqnSfB9mZU6OS2O6GsXM+wcskZDuKQzvN1EDeE= github.com/mitchellh/mapstructure v1.1.2/go.mod h1:FVVH3fgwuzCH5S8UJGiWEs2h04kUh9fWfEaFds41c1Y= github.com/muesli/smartcrop v0.0.0-20180228075044-f6ebaa786a12 h1:l0X/8IDy2UoK+oXcQFMRSIOcyuYb5iEPytPGplnM41Y= github.com/muesli/smartcrop v0.0.0-20180228075044-f6ebaa786a12/go.mod h1:i2fCI/UorTfgEpPPLWiFBv4pye+YAG78RwcQLUkocpI= +github.com/mwitkow/go-conntrack v0.0.0-20161129095857-cc309e4a2223/go.mod h1:qRWi+5nqEBWmkhHvq77mSJWrCKwh8bxhgT7d/eI7P4U= github.com/nfnt/resize v0.0.0-20180221191011-83c6a9932646 h1:zYyBkD/k9seD2A7fsi6Oo2LfFZAehjjQMERAvZLEDnQ= github.com/nfnt/resize v0.0.0-20180221191011-83c6a9932646/go.mod h1:jpp1/29i3P1S/RLdc7JQKbRpFeM1dOBd8T9ki5s+AY8= github.com/nicksnyder/go-i18n v1.10.0 h1:5AzlPKvXBH4qBzmZ09Ua9Gipyruv6uApMcrNZdo96+Q= github.com/nicksnyder/go-i18n v1.10.0/go.mod h1:HrK7VCrbOvQoUAQ7Vpy7i87N7JZZZ7R2xBGjv0j365Q= -github.com/nicksnyder/go-i18n v1.10.1 h1:isfg77E/aCD7+0lD/D00ebR2MV5vgeQ276WYyDaCRQc= -github.com/nicksnyder/go-i18n v1.10.1/go.mod h1:e4Di5xjP9oTVrC6y3C7C0HoSYXjSbhh/dU0eUV32nB4= +github.com/niklasfasching/go-org v0.1.4 h1:nEuzptQcLsKZYPjxs/+0m+9RqMvcK+34lGDCtcQOwGQ= +github.com/niklasfasching/go-org v0.1.4/go.mod h1:AsLD6X7djzRIz4/RFZu8vwRL0VGjUvGZCCH1Nz0VdrU= +github.com/oklog/ulid v1.3.1/go.mod h1:CirwcVhetQ6Lv90oh/F+FBtV6XMibvdAFo93nm5qn4U= github.com/olekukonko/tablewriter v0.0.0-20180506121414-d4647c9c7a84 h1:fiKJgB4JDUd43CApkmCeTSQlWjtTtABrU2qsgbuP0BI= github.com/olekukonko/tablewriter v0.0.0-20180506121414-d4647c9c7a84/go.mod h1:vsDQFd/mU46D+Z4whnwzcISnGGzXWMclvtLoiIKAKIo= -github.com/olekukonko/tablewriter v0.0.1 h1:b3iUnf1v+ppJiOfNX4yxxqfWKMQPZR5yoh8urCTFX88= -github.com/olekukonko/tablewriter v0.0.1/go.mod h1:vsDQFd/mU46D+Z4whnwzcISnGGzXWMclvtLoiIKAKIo= -github.com/pelletier/go-buffruneio v0.2.0 h1:U4t4R6YkofJ5xHm3dJzuRpPZ0mr5MMCoAWooScCR7aA= +github.com/onsi/ginkgo v1.6.0/go.mod h1:lLunBs/Ym6LB5Z9jYTR76FiuTmxDTDusOGeTQH+WWjE= +github.com/onsi/ginkgo v1.7.0/go.mod h1:lLunBs/Ym6LB5Z9jYTR76FiuTmxDTDusOGeTQH+WWjE= +github.com/onsi/gomega v1.4.3/go.mod h1:ex+gbHU/CVuBBDIJjb2X0qEXbFg53c61hWP/1CpauHY= +github.com/opentracing/opentracing-go v1.0.2/go.mod h1:UkNAQd3GIcIGf0SeVgPpRdFStlNbqXla1AfSYxPUl2o= +github.com/openzipkin/zipkin-go v0.1.6/go.mod h1:QgAqvLzwWbR/WpD4A3cGpPtJrZXNIiJc5AZX7/PBEpw= github.com/pelletier/go-buffruneio v0.2.0/go.mod h1:JkE26KsDizTr40EUHkXVtNPvgGtbSNq5BcowyYOWdKo= -github.com/pelletier/go-toml v1.2.0 h1:T5zMGML61Wp+FlcbWjRDT7yAxhJNAiPPLOFECq181zc= github.com/pelletier/go-toml v1.2.0/go.mod h1:5z9KED0ma1S8pY6P1sdut58dfprrGBbd/94hg7ilaic= -github.com/pkg/errors v0.8.0 h1:WdK/asTD0HN+q6hsWO3/vpuAkAr+tw6aNJNDFFf0+qw= +github.com/pelletier/go-toml v1.4.0 h1:u3Z1r+oOXJIkxqw34zVhyPgjBsm6X2wn21NWs/HfSeg= +github.com/pelletier/go-toml v1.4.0/go.mod h1:PN7xzY2wHTK0K9p34ErDQMlFxa51Fk0OUruD3k1mMwo= +github.com/pierrec/lz4 v2.0.5+incompatible/go.mod h1:pdkljMzZIN41W+lC3N2tnIh5sFi+IEE17M5jbnwPHcY= github.com/pkg/errors v0.8.0/go.mod h1:bwawxfHBFNV+L2hUp1rHADufV3IMtnDRdf1r5NINEl0= github.com/pkg/errors v0.8.1 h1:iURUrRGxPUNPdy5/HRSm+Yj6okJ6UtLINN0Q9M4+h3I= github.com/pkg/errors v0.8.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= +github.com/prometheus/client_golang v0.9.1/go.mod h1:7SWBe2y4D6OKWSNQJUaRYU/AaXPKyh/dDVn+NZz0KFw= +github.com/prometheus/client_golang v0.9.3-0.20190127221311-3c4408c8b829/go.mod h1:p2iRAGwDERtqlqzRXnrOVns+ignqQo//hLXqYxZYVNs= +github.com/prometheus/client_golang v0.9.3/go.mod h1:/TN21ttK/J9q6uSwhBd54HahCDft0ttaMvbicHlPoso= +github.com/prometheus/client_model v0.0.0-20180712105110-5c3871d89910/go.mod h1:MbSGuTsp3dbXC40dX6PRTWyKYBIrTGTE9sqQNg2J8bo= +github.com/prometheus/client_model v0.0.0-20190115171406-56726106282f/go.mod h1:MbSGuTsp3dbXC40dX6PRTWyKYBIrTGTE9sqQNg2J8bo= +github.com/prometheus/client_model v0.0.0-20190129233127-fd36f4220a90/go.mod h1:xMI15A0UPsDsEKsMN9yxemIoYk6Tm2C1GtYGdfGttqA= +github.com/prometheus/common v0.0.0-20181113130724-41aa239b4cce/go.mod h1:daVV7qP5qjZbuso7PdcryaAu0sAZbrN9i7WWcTMWvro= +github.com/prometheus/common v0.2.0/go.mod h1:TNfzLD0ON7rHzMJeJkieUDPYmFC7Snx/y86RQel1bk4= +github.com/prometheus/common v0.4.0/go.mod h1:TNfzLD0ON7rHzMJeJkieUDPYmFC7Snx/y86RQel1bk4= +github.com/prometheus/procfs v0.0.0-20181005140218-185b4288413d/go.mod h1:c3At6R/oaqEKCNdg8wHV1ftS6bRYblBhIjjI8uT2IGk= +github.com/prometheus/procfs v0.0.0-20190117184657-bf6a532e95b1/go.mod h1:c3At6R/oaqEKCNdg8wHV1ftS6bRYblBhIjjI8uT2IGk= +github.com/prometheus/procfs v0.0.0-20190507164030-5867b95ac084/go.mod h1:TjEm7ze935MbeOT/UhFTIMYKhuLP4wbCsTZCD3I8kEA= +github.com/prometheus/tsdb v0.7.1/go.mod h1:qhTCs0VvXwvX/y3TZrWD7rabWM+ijKTux40TwIPHuXU= +github.com/rcrowley/go-metrics v0.0.0-20181016184325-3113b8401b8a/go.mod h1:bCqnVzQkZxMG4s8nGwiZ5l3QUCyqpo9Y+/ZMZ9VjZe4= +github.com/rogpeppe/fastuuid v0.0.0-20150106093220-6724a57986af/go.mod h1:XWv6SoW27p1b0cqNHllgS5HIMJraePCO15w5zCzIWYg= github.com/rogpeppe/go-internal v1.1.0/go.mod h1:M8bDsm7K2OlrFYOpmOWEs/qY81heoFRclV5y23lUDJ4= github.com/rogpeppe/go-internal v1.3.0 h1:RR9dF3JtopPvtkroDZuVD7qquD0bnHlKSqaQhgwt8yk= github.com/rogpeppe/go-internal v1.3.0/go.mod h1:M8bDsm7K2OlrFYOpmOWEs/qY81heoFRclV5y23lUDJ4= -github.com/rogpeppe/go-internal v1.3.1 h1:pgz0lCb+F99TrCwoy7d83j5kI//45fBQ34KzZ7t5as0= -github.com/rogpeppe/go-internal v1.3.1/go.mod h1:xXDCJY+GAPziupqXw64V24skbSoqbTEfhy4qGm1nDQc= -github.com/russross/blackfriday v0.0.0-20180804101149-46c73eb196ba h1:8Vzt8HxRjy7hp1eqPKVoAEPK9npQFW2510qlobGzvi0= -github.com/russross/blackfriday v0.0.0-20180804101149-46c73eb196ba/go.mod h1:JO/DiYxRf+HjHt06OyowR9PTA263kcR/rfWxYHBV53g= -github.com/russross/blackfriday v1.5.2 h1:HyvC0ARfnZBqnXwABFeSZHpKvJHJJfPz81GNueLj0oo= github.com/russross/blackfriday v1.5.2/go.mod h1:JO/DiYxRf+HjHt06OyowR9PTA263kcR/rfWxYHBV53g= +github.com/russross/blackfriday v1.5.3-0.20190124082335-a477dd164691 h1:auJkuUc4uOuZNoH9jGLvqVaDLiuCOh/LY+Qw5NBFo4I= +github.com/russross/blackfriday v1.5.3-0.20190124082335-a477dd164691/go.mod h1:JO/DiYxRf+HjHt06OyowR9PTA263kcR/rfWxYHBV53g= +github.com/rwcarlsen/goexif v0.0.0-20190401172101-9e8deecbddbd h1:CmH9+J6ZSsIjUK3dcGsnCnO41eRBOnY12zwkn5qVwgc= +github.com/rwcarlsen/goexif v0.0.0-20190401172101-9e8deecbddbd/go.mod h1:hPqNNc0+uJM6H+SuU8sEs5K5IQeKccPqeSjfgcKGgPk= github.com/sanity-io/litter v1.1.0 h1:BllcKWa3VbZmOZbDCoszYLk7zCsKHz5Beossi8SUcTc= github.com/sanity-io/litter v1.1.0/go.mod h1:CJ0VCw2q4qKU7LaQr3n7UOSHzgEMgcGco7N/SkZQPjw= github.com/sergi/go-diff v1.0.0 h1:Kpca3qRNrduNnOQeazBd0ysaKrUJiIuISHxogkT9RPQ= github.com/sergi/go-diff v1.0.0/go.mod h1:0CfEIISq7TuYL3j771MWULgwwjU+GofnZX9QAmXWZgo= -github.com/shurcooL/sanitized_anchor_name v0.0.0-20170918181015-86672fcb3f95 h1:/vdW8Cb7EXrkqWGufVMES1OH2sU9gKVb2n9/1y5NMBY= -github.com/shurcooL/sanitized_anchor_name v0.0.0-20170918181015-86672fcb3f95/go.mod h1:1NzhyTcUVG4SuEtjjoZeVRXNmyL/1OwPU0+IJeTBvfc= +github.com/sirupsen/logrus v1.2.0/go.mod h1:LxeOpSwHxABJmUn/MG1IvRgCAasNZTLOkJPxbbu5VWo= github.com/sirupsen/logrus v1.4.2 h1:SPIRibHv4MatM3XXNO2BJeFLZwZ2LvZgfQ5+UNI2im4= github.com/sirupsen/logrus v1.4.2/go.mod h1:tLMulIdttU9McNUspp0xgXVQah82FyeX6MwdIuYE2rE= -github.com/spf13/afero v1.1.2 h1:m8/z1t7/fwjysjQRYbP0RD+bUIF/8tJwPdEZsI83ACI= +github.com/soheilhy/cmux v0.1.4/go.mod h1:IM3LyeVVIOuxMH7sFAkER9+bJ4dT7Ms6E4xg4kGIyLM= +github.com/spaolacci/murmur3 v0.0.0-20180118202830-f09979ecbc72/go.mod h1:JwIasOWyU6f++ZhiEuf87xNszmSA2myDM2Kzu9HwQUA= github.com/spf13/afero v1.1.2/go.mod h1:j4pytiNVoe2o6bmDsKpLACNPDBIoEAkihy7loJ1B0CQ= -github.com/spf13/cast v1.2.0/go.mod h1:r2rcYCSwa1IExKTDiTfzaxqT2FNHs8hODu4LnUfgKEg= +github.com/spf13/afero v1.2.2 h1:5jhuqJyZCZf2JRofRvN/nIFgIWNzPa3/Vz8mYylgbWc= +github.com/spf13/afero v1.2.2/go.mod h1:9ZxEEn6pIJ8Rxe320qSDBk6AsU0r9pR7Q4OcevTdifk= github.com/spf13/cast v1.3.0 h1:oget//CVOEoFewqQxwr0Ej5yjygnqGkvggSE/gB35Q8= github.com/spf13/cast v1.3.0/go.mod h1:Qx5cxh0v+4UWYiBimWS+eyWzqEqokIECu5etghLkUJE= -github.com/spf13/cobra v0.0.3 h1:ZlrZ4XsMRm04Fr5pSFxBgfND2EBVa1nLpiy1stUsX/8= -github.com/spf13/cobra v0.0.3/go.mod h1:1l0Ry5zgKvJasoi3XT1TypsSe7PqH0Sj9dhYf7v3XqQ= +github.com/spf13/cobra v0.0.4-0.20190321000552-67fc4837d267/go.mod h1:3K3wKZymM7VvHMDS9+Akkh4K60UwM26emMESw8tLCHU= github.com/spf13/cobra v0.0.5 h1:f0B+LkLX6DtmRH1isoNA9VTtNUK9K8xYd28JNNfOv/s= github.com/spf13/cobra v0.0.5/go.mod h1:3K3wKZymM7VvHMDS9+Akkh4K60UwM26emMESw8tLCHU= -github.com/spf13/fsync v0.0.0-20170320142552-12a01e648f05 h1:pQHm7pxjSgC54M1rtLSLmju25phy6RgYf3p4O6XanYE= -github.com/spf13/fsync v0.0.0-20170320142552-12a01e648f05/go.mod h1:jdsEoy1w+v0NpuwXZEaRAH6ADTDmzfRnE2eVwshwFrM= -github.com/spf13/jwalterweatherman v1.0.0 h1:XHEdyB+EcvlqZamSM4ZOMGlc93t6AcsBEu9Gc1vn7yk= +github.com/spf13/fsync v0.9.0 h1:f9CEt3DOB2mnHxZaftmEOFWjABEvKM/xpf3cUwJrGOY= +github.com/spf13/fsync v0.9.0/go.mod h1:fNtJEfG3HiltN3y4cPOz6MLjos9+2pIEqLIgszqhp/0= github.com/spf13/jwalterweatherman v1.0.0/go.mod h1:cQK4TGJAtQXfYWX+Ddv3mKDzgVb68N+wFjFa4jdeBTo= -github.com/spf13/nitro v0.0.0-20131003134307-24d7ef30a12d h1:ihvj2nmx8eqWjlgNgdW6h0DyGJuq5GiwHadJkG0wXtQ= -github.com/spf13/nitro v0.0.0-20131003134307-24d7ef30a12d/go.mod h1:jU8A+8xL+6n1OX4XaZtCj4B3mIa64tULUsD6YegdpFo= -github.com/spf13/pflag v1.0.2/go.mod h1:DYY7MBk1bdzusC3SYhjObp+wFpr4gzcvqqNjLnInEg4= +github.com/spf13/jwalterweatherman v1.1.0 h1:ue6voC5bR5F8YxI5S67j9i582FU4Qvo2bmqnqMYADFk= +github.com/spf13/jwalterweatherman v1.1.0/go.mod h1:aNWZUN0dPAAO/Ljvb5BEdw96iTZ0EXowPYD95IqWIGo= github.com/spf13/pflag v1.0.3 h1:zPAT6CGy6wXeQ7NtTnaTerfKOsV6V6F8agHXFiazDkg= github.com/spf13/pflag v1.0.3/go.mod h1:DYY7MBk1bdzusC3SYhjObp+wFpr4gzcvqqNjLnInEg4= -github.com/spf13/viper v1.2.0/go.mod h1:P4AexN0a+C9tGAnUFNwDMYYZv3pjFuvmeiMyKRaNVlI= -github.com/spf13/viper v1.3.2 h1:VUFqw5KcqRf7i70GOzW7N+Q7+gxVBkSSqiXB12+JQ4M= github.com/spf13/viper v1.3.2/go.mod h1:ZiWeW+zYFKm7srdB9IoDzzZXaJaI5eL9QjNiN/DMA2s= +github.com/spf13/viper v1.4.0 h1:yXHLWeravcrgGyFSyCgdYpXQ9dR9c/WED3pg1RhxqEU= +github.com/spf13/viper v1.4.0/go.mod h1:PTJ7Z/lr49W6bUbkmS1V3by4uWynFiR9p7+dSq/yZzE= github.com/src-d/gcfg v1.4.0 h1:xXbNR5AlLSA315x2UO+fTSSAXCDf+Ar38/6oyGbDKQ4= github.com/src-d/gcfg v1.4.0/go.mod h1:p/UMsR43ujA89BJY9duynAwIpvqEujIH/jFlfL7jWoI= github.com/stretchr/objx v0.1.0/go.mod h1:HFkY916IF+rwdDfMAkV7OtwuqBVzrE8GR6GFx+wExME= github.com/stretchr/objx v0.1.1/go.mod h1:HFkY916IF+rwdDfMAkV7OtwuqBVzrE8GR6GFx+wExME= -github.com/stretchr/testify v1.2.2 h1:bSDNvY7ZPG5RlJ8otE/7V6gMiyenm9RtJ7IUVIAoJ1w= +github.com/stretchr/objx v0.2.0/go.mod h1:qt09Ya8vawLte6SNmTgCsAVtYtaKzEcn8ATUoHMkEqE= github.com/stretchr/testify v1.2.2/go.mod h1:a8OnRcib4nhh0OaRAV+Yts87kKdq0PP7pXfy6kDkUVs= github.com/stretchr/testify v1.3.0 h1:TivCn/peBQ7UY8ooIcPgZFpTNSz0Q2U6UrFlUfqbe0Q= github.com/stretchr/testify v1.3.0/go.mod h1:M5WIy9Dh21IEIfnGCwXGc5bZfKNJtfHm1UVUgZn+9EI= -github.com/tdewolff/minify v2.3.5+incompatible h1:oFxBKxTIY1F/1DEJhLeh/T507W56JqZtWVrawFcdadI= -github.com/tdewolff/minify v2.3.5+incompatible/go.mod h1:9Ov578KJUmAWpS6NeZwRZyT56Uf6o3Mcz9CEsg8USYs= -github.com/tdewolff/minify v2.3.6+incompatible h1:2hw5/9ZvxhWLvBUnHE06gElGYz+Jv9R4Eys0XUzItYo= -github.com/tdewolff/minify v2.3.6+incompatible/go.mod h1:9Ov578KJUmAWpS6NeZwRZyT56Uf6o3Mcz9CEsg8USYs= -github.com/tdewolff/parse v2.3.3+incompatible h1:q6OSjvHtvBucLb34z24OH1xl5wGdw1mI9Vd38Qj9evs= -github.com/tdewolff/parse v2.3.3+incompatible/go.mod h1:8oBwCsVmUkgHO8M5iCzSIDtpzXOT0WXX9cWhz+bIzJQ= -github.com/tdewolff/parse v2.3.4+incompatible h1:x05/cnGwIMf4ceLuDMBOdQ1qGniMoxpP46ghf0Qzh38= -github.com/tdewolff/parse v2.3.4+incompatible/go.mod h1:8oBwCsVmUkgHO8M5iCzSIDtpzXOT0WXX9cWhz+bIzJQ= -github.com/tdewolff/test v0.0.0-20171106182207-265427085153 h1:B1Z2txQ2QI9nsWELeEvGBAdNhMylGMSCCypjsLJh/Mw= -github.com/tdewolff/test v0.0.0-20171106182207-265427085153/go.mod h1:DiQUlutnqlEvdvhSn2LPGy4TFwRauAaYDsL+683RNX4= +github.com/tdewolff/minify/v2 v2.3.7 h1:nhk7MKYRdTDwTxqEQZKLDkLe04tDHht8mBI+VJrsYvk= +github.com/tdewolff/minify/v2 v2.3.7/go.mod h1:DD1stRlSx6JsHfl1+E/HVMQeXiec9rD1UQ0epklIZLc= +github.com/tdewolff/parse/v2 v2.3.5 h1:/uS8JfhwVJsNkEh769GM5ENv6L9LOh2Z9uW3tCdlhs0= +github.com/tdewolff/parse/v2 v2.3.5/go.mod h1:HansaqmN4I/U7L6/tUp0NcwT2tFO0F4EAWYGSDzkYNk= +github.com/tdewolff/test v1.0.0 h1:jOwzqCXr5ePXEPGJaq2ivoR6HOCi+D5TPfpoyg8yvmU= +github.com/tdewolff/test v1.0.0/go.mod h1:DiQUlutnqlEvdvhSn2LPGy4TFwRauAaYDsL+683RNX4= +github.com/tidwall/pretty v0.0.0-20190325153808-1166b9ac2b65/go.mod h1:XNkn88O1ChpSDQmQeStsy+sBenx6DDtFZJxhVysOjyk= +github.com/tmc/grpc-websocket-proxy v0.0.0-20190109142713-0ad062ec5ee5/go.mod h1:ncp9v5uamzpCO7NfCPTXjqaC+bZgJeR0sMTm6dMHP7U= +github.com/uber-go/atomic v1.3.2/go.mod h1:/Ct5t2lcmbJ4OSe/waGBoaVvVqtO0bmtfVNex1PFV8g= +github.com/uber/jaeger-client-go v2.15.0+incompatible/go.mod h1:WVhlPFC8FDjOFMMWRy2pZqQJSXxYSwNYOkTr/Z6d3Kk= +github.com/uber/jaeger-lib v1.5.0/go.mod h1:ComeNDZlWwrWnDv8aPp0Ba6+uUTzImX/AauajbLI56U= +github.com/ugorji/go v1.1.4/go.mod h1:uQMGLiO92mf5W77hV/PUCpI3pbzQx3CRekS0kk+RGrc= github.com/ugorji/go/codec v0.0.0-20181204163529-d75b2dcb6bc8/go.mod h1:VFNgLljTbGfSG7qAOspJ7OScBnGdDN/yBr0sguwnwf0= -github.com/wellington/go-libsass v0.0.0-20180624165032-615eaa47ef79 h1:ivqgxj/zO3UZuzX7ZnlcyX8cAbNqLl1oes4zPddAO5Q= -github.com/wellington/go-libsass v0.0.0-20180624165032-615eaa47ef79/go.mod h1:mxgxgam0N0E+NAUMHLcu20Ccfc3mVpDkyrLDayqfiTs= -github.com/xanzy/ssh-agent v0.2.0 h1:Adglfbi5p9Z0BmK2oKU9nTG+zKfniSfnaMYB+ULd+Ro= -github.com/xanzy/ssh-agent v0.2.0/go.mod h1:0NyE30eGUDliuLEHJgYte/zncp2zdTStcOnWhgSqHD8= +github.com/wellington/go-libsass v0.9.3-0.20181113175235-c63644206701 h1:9vG9vvVNVupO4Y7uwFkRgIMNe9rdaJMCINDe8vhAhLo= +github.com/wellington/go-libsass v0.9.3-0.20181113175235-c63644206701/go.mod h1:mxgxgam0N0E+NAUMHLcu20Ccfc3mVpDkyrLDayqfiTs= github.com/xanzy/ssh-agent v0.2.1 h1:TCbipTQL2JiiCprBWx9frJ2eJlCYT00NmctrHxVAr70= github.com/xanzy/ssh-agent v0.2.1/go.mod h1:mLlQY/MoOhWBj+gOGMQkOeiEvkx+8pJSI+0Bx9h2kr4= -github.com/xeipuuv/gojsonpointer v0.0.0-20180127040702-4e3ac2762d5f h1:J9EGpcZtP0E/raorCMxlFGSTBrsSlaDGf3jU/qvAE2c= -github.com/xeipuuv/gojsonpointer v0.0.0-20180127040702-4e3ac2762d5f/go.mod h1:N2zxlSyiKSe5eX1tZViRH5QA0qijqEDrYZiPEAiq3wU= +github.com/xdg/scram v0.0.0-20180814205039-7eeb5667e42c/go.mod h1:lB8K/P019DLNhemzwFU4jHLhdvlE6uDZjXFejJXr49I= +github.com/xdg/stringprep v1.0.0/go.mod h1:Jhud4/sHMO4oL310DaZAKk9ZaJ08SJfe+sJh0HrGL1Y= +github.com/xeipuuv/gojsonpointer v0.0.0-20190905194746-02993c407bfb h1:zGWFAtiMcyryUHoUjUJX0/lt1H2+i2Ka2n+D3DImSNo= +github.com/xeipuuv/gojsonpointer v0.0.0-20190905194746-02993c407bfb/go.mod h1:N2zxlSyiKSe5eX1tZViRH5QA0qijqEDrYZiPEAiq3wU= github.com/xeipuuv/gojsonreference v0.0.0-20180127040603-bd5ef7bd5415 h1:EzJWgHovont7NscjpAxXsDA8S8BMYve8Y5+7cuRE7R0= github.com/xeipuuv/gojsonreference v0.0.0-20180127040603-bd5ef7bd5415/go.mod h1:GwrjFmJcFw6At/Gs6z4yjiIwzuJ1/+UwLxMQDVQXShQ= github.com/xeipuuv/gojsonschema v1.1.0 h1:ngVtJC9TY/lg0AA/1k48FYhBrhRoFlEmWzsehpNAaZg= github.com/xeipuuv/gojsonschema v1.1.0/go.mod h1:5yf86TLmAcydyeJq5YvxkGPE2fm/u4myDekKRoLuqhs= +github.com/xiang90/probing v0.0.0-20190116061207-43a291ad63a2/go.mod h1:UETIi67q53MR2AWcXfiuqkDkRtnGDLqkBTpCHuJHxtU= github.com/xordataexchange/crypt v0.0.3-0.20170626215501-b2862e3d0a77/go.mod h1:aYKd//L2LvnjZzWKhF00oedf4jCCReLcmhLdhm1A27Q= github.com/yosssi/ace v0.0.5 h1:tUkIP/BLdKqrlrPwcmH0shwEEhTRHoGnc1wFIWmaBUA= github.com/yosssi/ace v0.0.5/go.mod h1:ALfIzm2vT7t5ZE7uoIZqF3TQ7SAOyupFZnkrF5id+K0= +go.etcd.io/bbolt v1.3.2/go.mod h1:IbVyRI1SCnLcuJnV2u8VeU0CEYM7e686BmAb1XKL+uU= +go.mongodb.org/mongo-driver v1.0.1/go.mod h1:u7ryQJ+DOzQmeO7zB6MHyr8jkEQvC8vH7qLUO4lqsUM= +go.opencensus.io v0.15.0/go.mod h1:UffZAU+4sDEINUGP/B7UfBBkq4fqLu9zXAX7ke6CHW0= +go.opencensus.io v0.20.1/go.mod h1:6WKK9ahsWS3RSO+PY9ZHZUfv2irvY6gN279GOPZjmmk= +go.opencensus.io v0.20.2/go.mod h1:6WKK9ahsWS3RSO+PY9ZHZUfv2irvY6gN279GOPZjmmk= +go.opencensus.io v0.21.0/go.mod h1:mSImk1erAIZhrmZN+AvHh14ztQfjbGwt4TtuofqLduU= +go.opencensus.io v0.22.0 h1:C9hSCOW830chIVkdja34wa6Ky+IzWllkUinR+BtRZd4= +go.opencensus.io v0.22.0/go.mod h1:+kGneAE2xo2IficOXnaByMWTGM9T73dGwxeWcUqIpI8= +go.uber.org/atomic v1.3.2/go.mod h1:gD2HeocX3+yG+ygLZcrzQJaqmWj9AIm7n08wl/qW/PE= +go.uber.org/atomic v1.4.0/go.mod h1:gD2HeocX3+yG+ygLZcrzQJaqmWj9AIm7n08wl/qW/PE= +go.uber.org/multierr v1.1.0/go.mod h1:wR5kodmAFQ0UK8QlbwjlSNy0Z68gJhDJUG5sjR94q/0= +go.uber.org/zap v1.10.0/go.mod h1:vwi/ZaCAaUcBkycHslxD9B2zi4UTXhF60s6SWpuDF0Q= +gocloud.dev v0.15.0 h1:Tl8dkOHWVZiYBYPxG2ouhpfmluoQGt3mY323DaAHaC8= +gocloud.dev v0.15.0/go.mod h1:ShXCyJaGrJu9y/7a6+DSCyBb9MFGZ1P5wwPa0Wu6w34= golang.org/x/crypto v0.0.0-20180904163835-0709b304e793/go.mod h1:6SG95UA2DQfeDnfUPMdvaQW0Q7yPrPDi9nlGo2tz2b4= +golang.org/x/crypto v0.0.0-20181001203147-e3636079e1a4/go.mod h1:6SG95UA2DQfeDnfUPMdvaQW0Q7yPrPDi9nlGo2tz2b4= golang.org/x/crypto v0.0.0-20181203042331-505ab145d0a9/go.mod h1:6SG95UA2DQfeDnfUPMdvaQW0Q7yPrPDi9nlGo2tz2b4= golang.org/x/crypto v0.0.0-20190219172222-a4c6cb3142f2/go.mod h1:6SG95UA2DQfeDnfUPMdvaQW0Q7yPrPDi9nlGo2tz2b4= golang.org/x/crypto v0.0.0-20190308221718-c2843e01d9a2/go.mod h1:djNgcEr1/C05ACkg1iLfiJU5Ep61QUkGW8qpdssI0+w= -golang.org/x/crypto v0.0.0-20190621222207-cc06ce4a13d4 h1:ydJNl0ENAG67pFbB+9tfhiL2pYqLhfoaZFw/cjLhY4A= +golang.org/x/crypto v0.0.0-20190422183909-d864b10871cd/go.mod h1:yigFU9vqHzYiE8UmvKecakEJjdnWj3jj499lnFckfCI= golang.org/x/crypto v0.0.0-20190621222207-cc06ce4a13d4/go.mod h1:yigFU9vqHzYiE8UmvKecakEJjdnWj3jj499lnFckfCI= -golang.org/x/image v0.0.0-20180708004352-c73c2afc3b81 h1:00VmoueYNlNz/aHIilyyQz/MHSqGoWJzpFv/HW8xpzI= -golang.org/x/image v0.0.0-20180708004352-c73c2afc3b81/go.mod h1:ux5Hcp/YLpHSI86hEcLt0YII63i6oz57MZXIpbrjZUs= +golang.org/x/crypto v0.0.0-20190701094942-4def268fd1a4 h1:HuIa8hRrWRSrqYzx1qI49NNxhdi2PrY7gxVSq1JjLDc= +golang.org/x/crypto v0.0.0-20190701094942-4def268fd1a4/go.mod h1:yigFU9vqHzYiE8UmvKecakEJjdnWj3jj499lnFckfCI= +golang.org/x/exp v0.0.0-20190121172915-509febef88a4/go.mod h1:CJ0aWSM057203Lf6IL+f9T1iT9GByDxfZKAQTCR3kQA= +golang.org/x/image v0.0.0-20190523035834-f03afa92d3ff h1:+2zgJKVDVAz/BWSsuniCmU1kLCjL88Z8/kv39xCI9NQ= +golang.org/x/image v0.0.0-20190523035834-f03afa92d3ff/go.mod h1:kZ7UVZpmo3dzQBMxlp+ypCbDeSB+sBbTgSJuh5dn5js= +golang.org/x/lint v0.0.0-20181026193005-c67002cb31c3/go.mod h1:UVdnD1Gm6xHRNCYTkRU2/jEulfH38KcIWyp/GAMgvoE= +golang.org/x/lint v0.0.0-20190227174305-5b3e6a55c961/go.mod h1:wehouNa3lNwaWXcvxsM5YxQ5yQlVC4a0KAMCusXpPoU= +golang.org/x/lint v0.0.0-20190301231843-5614ed5bae6f/go.mod h1:UVdnD1Gm6xHRNCYTkRU2/jEulfH38KcIWyp/GAMgvoE= +golang.org/x/lint v0.0.0-20190313153728-d0100b6bd8b3/go.mod h1:6SW0HCj/g11FgYtHlgUYUwCkIfeOF89ocIRzGO/8vkc= +golang.org/x/net v0.0.0-20180724234803-3673e40ba225/go.mod h1:mL1N/T3taQHkDXs73rZJwtUhF3w3ftmwwsq0BUmARs4= +golang.org/x/net v0.0.0-20180826012351-8a410e7b638d/go.mod h1:mL1N/T3taQHkDXs73rZJwtUhF3w3ftmwwsq0BUmARs4= golang.org/x/net v0.0.0-20180906233101-161cd47e91fd/go.mod h1:mL1N/T3taQHkDXs73rZJwtUhF3w3ftmwwsq0BUmARs4= +golang.org/x/net v0.0.0-20181023162649-9b4f9f5ad519/go.mod h1:mL1N/T3taQHkDXs73rZJwtUhF3w3ftmwwsq0BUmARs4= +golang.org/x/net v0.0.0-20181114220301-adae6a3d119a/go.mod h1:mL1N/T3taQHkDXs73rZJwtUhF3w3ftmwwsq0BUmARs4= +golang.org/x/net v0.0.0-20181220203305-927f97764cc3/go.mod h1:mL1N/T3taQHkDXs73rZJwtUhF3w3ftmwwsq0BUmARs4= +golang.org/x/net v0.0.0-20190108225652-1e06a53dbb7e/go.mod h1:mL1N/T3taQHkDXs73rZJwtUhF3w3ftmwwsq0BUmARs4= +golang.org/x/net v0.0.0-20190125091013-d26f9f9a57f3/go.mod h1:mL1N/T3taQHkDXs73rZJwtUhF3w3ftmwwsq0BUmARs4= +golang.org/x/net v0.0.0-20190213061140-3a22650c66bd/go.mod h1:mL1N/T3taQHkDXs73rZJwtUhF3w3ftmwwsq0BUmARs4= golang.org/x/net v0.0.0-20190311183353-d8887717615a/go.mod h1:t9HGtf8HONx5eT2rtn7q6eTqICYqUVnKs3thJo3Qplg= -golang.org/x/net v0.0.0-20190404232315-eb5bcb51f2a3 h1:0GoQqolDA55aaLxZyTzK/Y2ePZzZTUrRacwib7cNsYQ= +golang.org/x/net v0.0.0-20190320064053-1272bf9dcd53/go.mod h1:t9HGtf8HONx5eT2rtn7q6eTqICYqUVnKs3thJo3Qplg= +golang.org/x/net v0.0.0-20190322120337-addf6b3196f6/go.mod h1:t9HGtf8HONx5eT2rtn7q6eTqICYqUVnKs3thJo3Qplg= golang.org/x/net v0.0.0-20190404232315-eb5bcb51f2a3/go.mod h1:t9HGtf8HONx5eT2rtn7q6eTqICYqUVnKs3thJo3Qplg= +golang.org/x/net v0.0.0-20190420063019-afa5a82059c6/go.mod h1:t9HGtf8HONx5eT2rtn7q6eTqICYqUVnKs3thJo3Qplg= +golang.org/x/net v0.0.0-20190424112056-4829fb13d2c6/go.mod h1:t9HGtf8HONx5eT2rtn7q6eTqICYqUVnKs3thJo3Qplg= +golang.org/x/net v0.0.0-20190501004415-9ce7a6920f09/go.mod h1:t9HGtf8HONx5eT2rtn7q6eTqICYqUVnKs3thJo3Qplg= +golang.org/x/net v0.0.0-20190522155817-f3200d17e092/go.mod h1:HSz+uSET+XFnRR8LxR5pz3Of3rY3CfYBVs4xY44aLks= +golang.org/x/net v0.0.0-20190606173856-1492cefac77f/go.mod h1:HSz+uSET+XFnRR8LxR5pz3Of3rY3CfYBVs4xY44aLks= +golang.org/x/net v0.0.0-20190620200207-3b0461eec859/go.mod h1:z5CRVTTTmAJ677TzLLGU+0bjPO0LkuOLi4/5GtJWs/s= +golang.org/x/net v0.0.0-20190724013045-ca1201d0de80 h1:Ao/3l156eZf2AW5wK8a7/smtodRU+gha3+BeqJ69lRk= +golang.org/x/net v0.0.0-20190724013045-ca1201d0de80/go.mod h1:z5CRVTTTmAJ677TzLLGU+0bjPO0LkuOLi4/5GtJWs/s= +golang.org/x/oauth2 v0.0.0-20180821212333-d2e6202438be/go.mod h1:N/0e6XlmueqKjAGxoOufVs8QHGRruUQn6yWY3a++T0U= +golang.org/x/oauth2 v0.0.0-20190226205417-e64efc72b421/go.mod h1:gOpvHmFTYa4IltrdGE7lF6nIHvwfUNPOp7c8zoXwtLw= +golang.org/x/oauth2 v0.0.0-20190319182350-c85d3e98c914/go.mod h1:gOpvHmFTYa4IltrdGE7lF6nIHvwfUNPOp7c8zoXwtLw= +golang.org/x/oauth2 v0.0.0-20190402181905-9f3314589c9a/go.mod h1:gOpvHmFTYa4IltrdGE7lF6nIHvwfUNPOp7c8zoXwtLw= +golang.org/x/oauth2 v0.0.0-20190523182746-aaccbc9213b0 h1:xFEXbcD0oa/xhqQmMXztdZ0bWvexAWds+8c1gRN8nu0= +golang.org/x/oauth2 v0.0.0-20190523182746-aaccbc9213b0/go.mod h1:gOpvHmFTYa4IltrdGE7lF6nIHvwfUNPOp7c8zoXwtLw= golang.org/x/sync v0.0.0-20180314180146-1d60e4601c6f/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= +golang.org/x/sync v0.0.0-20181108010431-42b317875d0f/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= +golang.org/x/sync v0.0.0-20181221193216-37e7f081c4d4/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= +golang.org/x/sync v0.0.0-20190227155943-e225da77a7e6/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= golang.org/x/sync v0.0.0-20190423024810-112230192c58 h1:8gQV6CLnAEikrhgkHFbMAEhagSSnXWGV915qUMm9mrU= golang.org/x/sync v0.0.0-20190423024810-112230192c58/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= -golang.org/x/sys v0.0.0-20180903190138-2b024373dcd9/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY= -golang.org/x/sys v0.0.0-20180906133057-8cf3aee42992/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY= +golang.org/x/sys v0.0.0-20180830151530-49385e6e1522/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY= +golang.org/x/sys v0.0.0-20180905080454-ebe1bf3edb33/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY= +golang.org/x/sys v0.0.0-20180909124046-d0be0721c37e/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY= +golang.org/x/sys v0.0.0-20181031143558-9b800f95dbbc/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY= +golang.org/x/sys v0.0.0-20181107165924-66b7b1311ac8/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY= +golang.org/x/sys v0.0.0-20181116152217-5ac8a444bdc5/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY= +golang.org/x/sys v0.0.0-20181122145206-62eef0e2fa9b/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY= +golang.org/x/sys v0.0.0-20181128092732-4ed8d59d0b35/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY= golang.org/x/sys v0.0.0-20181205085412-a5c9d58dba9a/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY= golang.org/x/sys v0.0.0-20190215142949-d0b11bdaac8a/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY= golang.org/x/sys v0.0.0-20190221075227-b4e8571b14e0/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY= +golang.org/x/sys v0.0.0-20190222072716-a9d3bda3a223/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-20190422165155-953cdadca894/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= -golang.org/x/sys v0.0.0-20190515120540-06a5c4944438 h1:khxRGsvPk4n2y8I/mLLjp7e5dMTJmH75wvqS6nMwUtY= +golang.org/x/sys v0.0.0-20190502145724-3ef323f4f1fd/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= golang.org/x/sys v0.0.0-20190515120540-06a5c4944438/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= +golang.org/x/sys v0.0.0-20190712062909-fae7ac547cb7/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= golang.org/x/sys v0.0.0-20190726091711-fc99dfbffb4e h1:D5TXcfTk7xF7hvieo4QErS3qqCB4teTffacDWr7CI+0= golang.org/x/sys v0.0.0-20190726091711-fc99dfbffb4e/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= -golang.org/x/text v0.3.0 h1:g61tztE5qeGQ89tm6NTjjM9VPIm088od1l6aSorWRWg= golang.org/x/text v0.3.0/go.mod h1:NqM8EUOU14njkJ3fqMW+pc6Ldnwhi/IjpwHt7yyuwOQ= +golang.org/x/text v0.3.1-0.20180807135948-17ff2d5776d2/go.mod h1:NqM8EUOU14njkJ3fqMW+pc6Ldnwhi/IjpwHt7yyuwOQ= +golang.org/x/text v0.3.1-0.20181227161524-e6919f6577db/go.mod h1:bEr9sfX3Q8Zfm5fL9x+3itogRgK3+ptLWKqgva+5dAk= golang.org/x/text v0.3.2 h1:tW2bmiBqwgJj/UpqtC8EpXEZVYOwU0yG4iWbprSVAcs= golang.org/x/text v0.3.2/go.mod h1:bEr9sfX3Q8Zfm5fL9x+3itogRgK3+ptLWKqgva+5dAk= +golang.org/x/time v0.0.0-20181108054448-85acf8d2951c/go.mod h1:tRJNPiyCQ0inRvYxbN9jk5I+vvW/OXSQhTDSoE431IQ= +golang.org/x/time v0.0.0-20190308202827-9d24e82272b4/go.mod h1:tRJNPiyCQ0inRvYxbN9jk5I+vvW/OXSQhTDSoE431IQ= +golang.org/x/tools v0.0.0-20180221164845-07fd8470d635/go.mod h1:n7NCudcB/nEzxVGmLbDWY5pfWTLqBcC2KZ6jyYvM4mQ= +golang.org/x/tools v0.0.0-20180828015842-6cd1fcedba52/go.mod h1:n7NCudcB/nEzxVGmLbDWY5pfWTLqBcC2KZ6jyYvM4mQ= golang.org/x/tools v0.0.0-20180917221912-90fa682c2a6e/go.mod h1:n7NCudcB/nEzxVGmLbDWY5pfWTLqBcC2KZ6jyYvM4mQ= -golang.org/x/tools v0.0.0-20190628153133-6cdbf07be9d0 h1:Dh6fw+p6FyRl5x/FvNswO1ji0lIGzm3KP8Y9VkS9PTE= +golang.org/x/tools v0.0.0-20190114222345-bf090417da8b/go.mod h1:n7NCudcB/nEzxVGmLbDWY5pfWTLqBcC2KZ6jyYvM4mQ= +golang.org/x/tools v0.0.0-20190226205152-f727befe758c/go.mod h1:9Yl7xja0Znq3iFh3HoIrodX9oNMXvdceNzlUR8zjMvY= +golang.org/x/tools v0.0.0-20190311212946-11955173bddd/go.mod h1:LCzVGOaR6xXOjkQ3onu1FJEFr0SW1gC7cKk1uF8kGRs= +golang.org/x/tools v0.0.0-20190312170243-e65039ee4138/go.mod h1:LCzVGOaR6xXOjkQ3onu1FJEFr0SW1gC7cKk1uF8kGRs= +golang.org/x/tools v0.0.0-20190422233926-fe54fb35175b/go.mod h1:LCzVGOaR6xXOjkQ3onu1FJEFr0SW1gC7cKk1uF8kGRs= golang.org/x/tools v0.0.0-20190628153133-6cdbf07be9d0/go.mod h1:/rFqwRUd4F7ZHNgwSSTFct+R/Kf4OFW1sUzUTQQTgfc= +golang.org/x/tools v0.0.0-20190729092621-ff9f1409240a h1:mEQZbbaBjWyLNy0tmZmgEuQAR8XOQ3hL8GYi3J/NG64= +golang.org/x/tools v0.0.0-20190729092621-ff9f1409240a/go.mod h1:jcCCGcm9btYwXyDqrUWc6MKQKKGJCWEQ3AfLSRIbEuI= +golang.org/x/xerrors v0.0.0-20190410155217-1f06c39b4373/go.mod h1:I/5z698sn9Ka8TeJc9MKroUUfqBBauWjQqLJ2OPfmY0= +golang.org/x/xerrors v0.0.0-20190717185122-a985d3407aa7 h1:9zdDQZ7Thm29KFXgAX/+yaf3eVbP7djjWp/dXAppNCc= +golang.org/x/xerrors v0.0.0-20190717185122-a985d3407aa7/go.mod h1:I/5z698sn9Ka8TeJc9MKroUUfqBBauWjQqLJ2OPfmY0= +google.golang.org/api v0.3.1/go.mod h1:6wY9I6uQWHQ8EM57III9mq/AjF+i8G65rmVagqKMtkk= +google.golang.org/api v0.3.2/go.mod h1:6wY9I6uQWHQ8EM57III9mq/AjF+i8G65rmVagqKMtkk= +google.golang.org/api v0.5.0 h1:lj9SyhMzyoa38fgFF0oO2T6pjs5IzkLPKfVtxpyCRMM= +google.golang.org/api v0.5.0/go.mod h1:8k5glujaEP+g9n7WNsDg8QP6cUVNI86fCNMcbazEtwE= +google.golang.org/appengine v1.1.0/go.mod h1:EbEs0AVv82hx2wNQdGPgUI5lhzA/G0D9YwlJXL52JkM= +google.golang.org/appengine v1.4.0/go.mod h1:xpcJRLb0r/rnEns0DIKYYv+WjYCduHsrkT7/EB5XEv4= +google.golang.org/appengine v1.6.0 h1:Tfd7cKwKbFRsI8RMAD3oqqw7JPFRrvFlOsfbgVkjOOw= +google.golang.org/appengine v1.6.0/go.mod h1:xpcJRLb0r/rnEns0DIKYYv+WjYCduHsrkT7/EB5XEv4= +google.golang.org/genproto v0.0.0-20180817151627-c66870c02cf8/go.mod h1:JiN7NxoALGmiZfu7CAH4rXhgtRTLTxftemlI0sWmxmc= +google.golang.org/genproto v0.0.0-20190307195333-5fe7a883aa19/go.mod h1:VzzqZJRnGkLBvHegQrXjBqPurQTc5/KpmUdxsrq26oE= +google.golang.org/genproto v0.0.0-20190404172233-64821d5d2107/go.mod h1:VzzqZJRnGkLBvHegQrXjBqPurQTc5/KpmUdxsrq26oE= +google.golang.org/genproto v0.0.0-20190425155659-357c62f0e4bb/go.mod h1:VzzqZJRnGkLBvHegQrXjBqPurQTc5/KpmUdxsrq26oE= +google.golang.org/genproto v0.0.0-20190508193815-b515fa19cec8/go.mod h1:VzzqZJRnGkLBvHegQrXjBqPurQTc5/KpmUdxsrq26oE= +google.golang.org/genproto v0.0.0-20190522204451-c2c4e71fbf69 h1:4rNOqY4ULrKzS6twXa619uQgI7h9PaVd4ZhjFQ7C5zs= +google.golang.org/genproto v0.0.0-20190522204451-c2c4e71fbf69/go.mod h1:z3L6/3dTEVtUr6QSP8miRzeRqwQOioJ9I66odjN4I7s= +google.golang.org/grpc v1.17.0/go.mod h1:6QZJwpn2B+Zp71q/5VxRsJ6NXXVCE5NRUHRo+f3cWCs= +google.golang.org/grpc v1.19.0/go.mod h1:mqu4LbDTu4XGKhr4mRzUsmM4RtVoemTSY81AxZiDr8c= +google.golang.org/grpc v1.19.1/go.mod h1:mqu4LbDTu4XGKhr4mRzUsmM4RtVoemTSY81AxZiDr8c= +google.golang.org/grpc v1.20.1/go.mod h1:10oTOabMzJvdu6/UiuZezV6QK5dSlG84ov/aaiqXj38= +google.golang.org/grpc v1.21.0 h1:G+97AoqBnmZIT91cLG/EkCoK9NSelj64P8bOHHNmGn0= +google.golang.org/grpc v1.21.0/go.mod h1:oYelfM1adQP15Ek0mdvEgi9Df8B9CZIaU1084ijfRaM= +gopkg.in/alecthomas/kingpin.v2 v2.2.6/go.mod h1:FMv+mEhP44yOT+4EoQTLFTRgOQ1FBLkstjWtayDeSgw= gopkg.in/check.v1 v0.0.0-20161208181325-20d25e280405/go.mod h1:Co6ibVJAznAaIkqp8huTwlJQCZ016jof/cbN4VW5Yz0= -gopkg.in/check.v1 v1.0.0-20180628173108-788fd7840127 h1:qIbj1fsPNlZgppZ+VLlY7N33q108Sa+fhmuc+sWQYwY= +gopkg.in/check.v1 v1.0.0-20161208181325-20d25e280405/go.mod h1:Co6ibVJAznAaIkqp8huTwlJQCZ016jof/cbN4VW5Yz0= gopkg.in/check.v1 v1.0.0-20180628173108-788fd7840127/go.mod h1:Co6ibVJAznAaIkqp8huTwlJQCZ016jof/cbN4VW5Yz0= +gopkg.in/check.v1 v1.0.0-20190902080502-41f04d3bba15 h1:YR8cESwS4TdDjEe65xsg0ogRM/Nc3DYOhEAlW+xobZo= +gopkg.in/check.v1 v1.0.0-20190902080502-41f04d3bba15/go.mod h1:Co6ibVJAznAaIkqp8huTwlJQCZ016jof/cbN4VW5Yz0= gopkg.in/errgo.v2 v2.1.0/go.mod h1:hNsd1EY+bozCKY1Ytp96fpM3vjJbqLJn88ws8XvfDNI= -gopkg.in/src-d/go-billy.v4 v4.2.1/go.mod h1:tm33zBoOwxjYHZIE+OV8bxTWFMJLrconzFMd38aARFk= +gopkg.in/fsnotify.v1 v1.4.7/go.mod h1:Tz8NjZHkW78fSQdbUxIjBTcgA1z1m8ZHf0WmKUhAMys= +gopkg.in/resty.v1 v1.12.0/go.mod h1:mDo4pnntr5jdWRML875a/NmxYqAlA73dVijT2AXvQQo= gopkg.in/src-d/go-billy.v4 v4.3.2 h1:0SQA1pRztfTFx2miS8sA97XvooFeNOmvUenF4o0EcVg= gopkg.in/src-d/go-billy.v4 v4.3.2/go.mod h1:nDjArDMp+XMs1aFAESLRjfGSgfvoYN0hDfzEk0GjC98= -gopkg.in/src-d/go-git-fixtures.v3 v3.1.1/go.mod h1:dLBcvytrw/TYZsNTWCnkNF2DSIlzWYqTe3rJR56Ac7g= -gopkg.in/src-d/go-git-fixtures.v3 v3.3.0 h1:AxUOwLW3at53ysFqs0Lg+H+8KSQXl7AEHBvWj8wEsT8= -gopkg.in/src-d/go-git-fixtures.v3 v3.3.0/go.mod h1:dLBcvytrw/TYZsNTWCnkNF2DSIlzWYqTe3rJR56Ac7g= -gopkg.in/src-d/go-git.v4 v4.9.1 h1:0oKHJZY8tM7B71378cfTg2c5jmWyNlXvestTT6WfY+4= -gopkg.in/src-d/go-git.v4 v4.9.1/go.mod h1:Vtut8izDyrM8BUVQnzJ+YvmNcem2J89EmfZYCkLokZk= +gopkg.in/src-d/go-git-fixtures.v3 v3.5.0 h1:ivZFOIltbce2Mo8IjzUHAFoq/IylO9WHhNOAJK+LsJg= +gopkg.in/src-d/go-git-fixtures.v3 v3.5.0/go.mod h1:dLBcvytrw/TYZsNTWCnkNF2DSIlzWYqTe3rJR56Ac7g= +gopkg.in/src-d/go-git.v4 v4.13.1 h1:SRtFyV8Kxc0UP7aCHcijOMQGPxHSmMOPrzulQWolkYE= +gopkg.in/src-d/go-git.v4 v4.13.1/go.mod h1:nx5NYcxdKxq5fpltdHnPa2Exj4Sx0EclMWZQbYDu2z8= +gopkg.in/tomb.v1 v1.0.0-20141024135613-dd632973f1e7/go.mod h1:dt/ZhP58zS4L8KSrWDmTeBkI65Dw0HsyUHuEVlX15mw= gopkg.in/warnings.v0 v0.1.2 h1:wFXVbFY8DY5/xOe1ECiWdKCzZlxgshcYVNkBHstARME= gopkg.in/warnings.v0 v0.1.2/go.mod h1:jksf8JmL6Qr/oQM2OXTHunEvvTAsrWBLb6OOjuVWRNI= -gopkg.in/yaml.v2 v2.2.1 h1:mUhvW9EsL+naU5Q3cakzfE91YhliOondGd6ZrsDBHQE= +gopkg.in/yaml.v2 v2.0.0-20170812160011-eb3733d160e7/go.mod h1:JAlM8MvJe8wmxCU4Bli9HhUf9+ttbYbLASfIpnQbh74= gopkg.in/yaml.v2 v2.2.1/go.mod h1:hI93XBmqTisBFMUTm0b8Fm+jr3Dg1NNxqwp+5A1VGuI= gopkg.in/yaml.v2 v2.2.2 h1:ZCJp+EgiOT7lHqUV2J862kp8Qj64Jo6az82+3Td9dZw= gopkg.in/yaml.v2 v2.2.2/go.mod h1:hI93XBmqTisBFMUTm0b8Fm+jr3Dg1NNxqwp+5A1VGuI= +honnef.co/go/tools v0.0.0-20180728063816-88497007e858/go.mod h1:rf3lG4BRIbNafJWhAfAdb/ePZxsR/4RtNHQocxwk9r4= +honnef.co/go/tools v0.0.0-20190102054323-c2f93a96b099/go.mod h1:rf3lG4BRIbNafJWhAfAdb/ePZxsR/4RtNHQocxwk9r4= +honnef.co/go/tools v0.0.0-20190106161140-3f1c8253044a/go.mod h1:rf3lG4BRIbNafJWhAfAdb/ePZxsR/4RtNHQocxwk9r4= +pack.ag/amqp v0.8.0/go.mod h1:4/cbmt4EJXSKlG6LCfWHoqmN0uFdy5i/+YFz+fTfhV4= +pack.ag/amqp v0.11.0/go.mod h1:4/cbmt4EJXSKlG6LCfWHoqmN0uFdy5i/+YFz+fTfhV4= diff --git a/schema.json b/schema.json index 7f4dcd0..706cd1a 100644 --- a/schema.json +++ b/schema.json @@ -1,9 +1,11 @@ { "$schema": "http://json-schema.org/draft-07/schema#", + "additionalProperties": false, "properties": { "awards": { "description": "list of awards have been received", "items": { + "additionalProperties": false, "properties": { "awarder": { "description": "name of the awarder", @@ -23,12 +25,18 @@ "type": "string" } }, + "required": [ + "title", + "date", + "awarder" + ], "type": "object" }, "type": "array" }, "certificate": { "items": { + "additionalProperties": false, "properties": { "code": { "description": "code of the certificate", @@ -52,6 +60,7 @@ "type": "string" }, "score": { + "additionalProperties": false, "description": "exam score", "properties": { "best": { @@ -71,6 +80,12 @@ "type": "string" } }, + "required": [ + "type", + "value", + "best", + "worst" + ], "type": "object" }, "verification": { @@ -84,11 +99,15 @@ "type": "string" } }, + "required": [ + "name" + ], "type": "object" }, "type": "array" }, "core": { + "additionalProperties": false, "properties": { "livingArea": { "description": "living area which could be city or country or even continent", @@ -107,6 +126,7 @@ }, "education": { "items": { + "additionalProperties": false, "properties": { "area": { "description": "area of study", @@ -142,6 +162,7 @@ "type": "string" }, "location": { + "additionalProperties": false, "description": "location of institution", "properties": { "lat": { @@ -151,9 +172,14 @@ "type": "number" } }, + "required": [ + "lat", + "long" + ], "type": "object" }, "score": { + "additionalProperties": false, "properties": { "best": { "description": "best possible score", @@ -172,6 +198,12 @@ "type": "string" } }, + "required": [ + "type", + "value", + "best", + "worst" + ], "type": "object" }, "startDate": { @@ -184,12 +216,20 @@ "type": "string" } }, + "required": [ + "institution", + "area", + "studyType", + "startDate", + "endDate" + ], "type": "object" }, "type": "array" }, "interests": { "items": { + "additionalProperties": false, "properties": { "keywords": { "description": "keywords of the interest", @@ -203,6 +243,9 @@ "type": "string" } }, + "required": [ + "name" + ], "type": "object" }, "type": "array" @@ -210,6 +253,7 @@ "languages": { "description": "list of languages", "items": { + "additionalProperties": false, "properties": { "language": { "description": "name of language", @@ -226,6 +270,9 @@ "type": "string" } }, + "required": [ + "language" + ], "type": "object" }, "type": "array" @@ -233,6 +280,7 @@ "legal": { "description": "list of legals", "items": { + "additionalProperties": false, "properties": { "applicationDate": { "description": "date of the application", @@ -280,6 +328,7 @@ "resources": { "description": "multiple resources with label", "items": { + "additionalProperties": false, "properties": { "label": { "description": "label of the resource", @@ -291,16 +340,24 @@ "type": "string" } }, + "required": [ + "url", + "label" + ], "type": "object" }, "type": "array" } }, + "required": [ + "name" + ], "type": "object" }, "type": "array" }, "meta": { + "additionalProperties": false, "description": "the schema version and any other tooling configuration", "properties": { "canonical": { @@ -324,6 +381,7 @@ "type": "object" }, "personal": { + "additionalProperties": false, "description": "sensitive informations", "properties": { "birthPlace": { @@ -336,6 +394,7 @@ "type": "string" }, "currentLocation": { + "additionalProperties": false, "description": "living location", "properties": { "lat": { @@ -345,6 +404,10 @@ "type": "number" } }, + "required": [ + "lat", + "long" + ], "type": "object" }, "email": { @@ -364,6 +427,7 @@ "type": "string" }, "permanentLocation": { + "additionalProperties": false, "description": "permanently living location", "properties": { "lat": { @@ -373,6 +437,10 @@ "type": "number" } }, + "required": [ + "lat", + "long" + ], "type": "object" }, "phone": { @@ -385,6 +453,7 @@ "profiles": { "description": "list of social networks", "items": { + "additionalProperties": false, "properties": { "network": { "description": "name of the network", @@ -400,6 +469,11 @@ "type": "string" } }, + "required": [ + "network", + "username", + "url" + ], "type": "object" }, "type": "array" @@ -423,6 +497,7 @@ "projects": { "description": "list of career projects", "items": { + "additionalProperties": false, "properties": { "description": { "description": "short summary of project", @@ -452,6 +527,7 @@ "type": "array" }, "location": { + "additionalProperties": false, "description": "location of the project", "properties": { "lat": { @@ -461,6 +537,10 @@ "type": "number" } }, + "required": [ + "lat", + "long" + ], "type": "object" }, "name": { @@ -470,6 +550,7 @@ "resources": { "description": "specify multiple resources with label", "items": { + "additionalProperties": false, "properties": { "label": { "description": "label of the resource", @@ -481,6 +562,10 @@ "type": "string" } }, + "required": [ + "url", + "label" + ], "type": "object" }, "type": "array" @@ -506,6 +591,10 @@ "type": "string" } }, + "required": [ + "name", + "startDate" + ], "type": "object" }, "type": "array" @@ -513,6 +602,7 @@ "publications": { "description": "list of publications", "items": { + "additionalProperties": false, "properties": { "name": { "description": "name of the publication", @@ -522,13 +612,15 @@ "description": "name of the publisher", "type": "string" }, - "releaseDate": { - "description": "release date of publication", + "publicationDate": { + "description": "date of publication", + "format": "date", "type": "string" }, "resources": { "description": "multiple resources with label", "items": { + "additionalProperties": false, "properties": { "label": { "description": "label of the resource", @@ -540,6 +632,10 @@ "type": "string" } }, + "required": [ + "url", + "label" + ], "type": "object" }, "type": "array" @@ -554,6 +650,10 @@ "type": "string" } }, + "required": [ + "name", + "publisher" + ], "type": "object" }, "type": "array" @@ -561,6 +661,7 @@ "references": { "description": "list of references", "items": { + "additionalProperties": false, "properties": { "company": { "description": "company name", @@ -579,6 +680,9 @@ "type": "string" } }, + "required": [ + "reference" + ], "type": "object" }, "type": "array" @@ -586,6 +690,7 @@ "skills": { "description": "list of professional skill-sets", "items": { + "additionalProperties": false, "properties": { "keywords": { "description": "some keywords pertaining to the skill", @@ -610,12 +715,17 @@ "type": "string" } }, + "required": [ + "name", + "proficiency" + ], "type": "object" }, "type": "array" }, "volunteer": { "items": { + "additionalProperties": false, "properties": { "endDate": { "description": "end date", @@ -630,6 +740,7 @@ "type": "array" }, "location": { + "additionalProperties": false, "description": "location of activity", "properties": { "lat": { @@ -639,6 +750,10 @@ "type": "number" } }, + "required": [ + "lat", + "long" + ], "type": "object" }, "organization": { @@ -664,12 +779,18 @@ "type": "string" } }, + "required": [ + "organization", + "position", + "startDate" + ], "type": "object" }, "type": "array" }, "work": { "items": { + "additionalProperties": false, "properties": { "description": { "description": "companies primary activity", @@ -688,6 +809,7 @@ "type": "array" }, "location": { + "additionalProperties": false, "description": "location of the company", "properties": { "lat": { @@ -697,6 +819,10 @@ "type": "number" } }, + "required": [ + "lat", + "long" + ], "type": "object" }, "name": { @@ -722,11 +848,33 @@ "type": "string" } }, + "required": [ + "name", + "position", + "startDate" + ], "type": "object" }, "type": "array" } }, + "required": [ + "core", + "personal", + "work", + "education", + "volunteer", + "publications", + "legal", + "skills", + "awards", + "projects", + "certificate", + "references", + "languages", + "interests", + "meta" + ], "title": "Resumic resume Schema", "type": "object" -} \ No newline at end of file +} diff --git a/schema/base.go b/schema/base.go index 878c1a7..0d2c936 100644 --- a/schema/base.go +++ b/schema/base.go @@ -15,19 +15,29 @@ func (e *UnsupportedKindError) Error() string { func getJSONName(field reflect.StructField) string { tag := field.Tag.Get("json") - if tag == "" { - return field.Name - } - if tag == "-" { - return "" - } name := strings.Split(tag, ",")[0] if name == "" { return field.Name + } else if name == "-" { + return "" } return name } +func isOmitEmpty(field reflect.StructField) bool { + jsonTag := field.Tag.Get("json") + if jsonTag == "" { + return false + } + tags := strings.Split(jsonTag, ",")[1:] + for _, tag := range tags { + if tag == "omitempty" { + return true + } + } + return false +} + type schemaTags map[string]string func newSchemaTags(tag reflect.StructTag) schemaTags { diff --git a/schema/jsonschema.go b/schema/jsonschema.go index 10e205d..b312e1f 100644 --- a/schema/jsonschema.go +++ b/schema/jsonschema.go @@ -77,12 +77,16 @@ func generateObjectJSONSchema(typ reflect.Type, tags schemaTags) (map[string]int } properties := map[string]interface{}{} + required := []string{} for i := 0; i < typ.NumField(); i++ { field := typ.Field(i) fieldName := getJSONName(field) if fieldName == "" { continue } + if !isOmitEmpty(field) { + required = append(required, fieldName) + } fieldTags := newSchemaTags(field.Tag) property, err := generateJSONSchema(field.Type, fieldTags) if err != nil { @@ -91,6 +95,10 @@ func generateObjectJSONSchema(typ reflect.Type, tags schemaTags) (map[string]int properties[fieldName] = property } schema["properties"] = properties + if len(required) > 0 { + schema["required"] = required + } + schema["additionalProperties"] = false return schema, nil } diff --git a/schema/schema.go b/schema/schema.go index ed41eb2..8437308 100644 --- a/schema/schema.go +++ b/schema/schema.go @@ -24,149 +24,149 @@ type profileSchema struct { } type coreSchema struct { - Title string `json:"title" schema:"description:job title;example:Software Engineer"` - WorkArea string `json:"workArea" schema:"description:work area which could be city or country or even remote;example:Munich Citycenter + 20kms"` - LivingArea string `json:"livingArea" schema:"description:living area which could be city or country or even continent;example:Germany"` + Title string `json:"title,omitempty" schema:"description:job title;example:Software Engineer"` + WorkArea string `json:"workArea,omitempty" schema:"description:work area which could be city or country or even remote;example:Munich Citycenter + 20kms"` + LivingArea string `json:"livingArea,omitempty" schema:"description:living area which could be city or country or even continent;example:Germany"` } type personalSchema struct { - Name string `json:"name" schema:"description:full name;example:John Doe"` - Gender string `json:"gender" schema:"example:male"` - Image string `json:"image" schema:"description:url of the personal photo;example:example.com/Abcxyz"` - Email string `json:"email" schema:"description:email address;format:idn-email;example:lucas@example.com"` - Phone string `json:"phone" schema:"description:phone number;example:912-217-7923"` - URL string `json:"url" schema:"description:homepage url;format:uri;example:http://www.example.com/"` - Summary string `json:"summary" schema:"description:a short sentence about yourself;example:The man who sold the world!"` - CurrentLocation locationSchema `json:"currentLocation" schema:"description:living location"` - PermanentLocation locationSchema `json:"permanentLocation" schema:"description:permanently living location"` - Birthday string `json:"birthday" schema:"description:birthday date;format:date;example:1995-02-14"` - BirthPlace string `json:"birthPlace" schema:"description:place of birth;example:Munich"` - Profiles []profileSchema `json:"profiles" schema:"description:list of social networks"` - RelationshipStatus string `json:"relationshipStatus" schema:"description:civil status;example:married"` - PostalAddress string `json:"postalAddress" schema:"example:John Doe, Wittekindshof, Schulstrasse 4, 32547 Bad Oyenhausen, Germany"` + Name string `json:"name,omitempty" schema:"description:full name;example:John Doe"` + Gender string `json:"gender,omitempty" schema:"example:male"` + Image string `json:"image,omitempty" schema:"description:url of the personal photo;example:example.com/Abcxyz"` + Email string `json:"email,omitempty" schema:"description:email address;format:idn-email;example:lucas@example.com"` + Phone string `json:"phone,omitempty" schema:"description:phone number;example:912-217-7923"` + URL string `json:"url,omitempty" schema:"description:homepage url;format:uri;example:http://www.example.com/"` + Summary string `json:"summary,omitempty" schema:"description:a short sentence about yourself;example:The man who sold the world!"` + CurrentLocation locationSchema `json:"currentLocation,omitempty" schema:"description:living location"` + PermanentLocation locationSchema `json:"permanentLocation,omitempty" schema:"description:permanently living location"` + Birthday string `json:"birthday,omitempty" schema:"description:birthday date;format:date;example:1995-02-14"` + BirthPlace string `json:"birthPlace,omitempty" schema:"description:place of birth;example:Munich"` + Profiles []profileSchema `json:"profiles,omitempty" schema:"description:list of social networks"` + RelationshipStatus string `json:"relationshipStatus,omitempty" schema:"description:civil status;example:married"` + PostalAddress string `json:"postalAddress,omitempty" schema:"example:John Doe, Wittekindshof, Schulstrasse 4, 32547 Bad Oyenhausen, Germany"` } type workSchema struct { Name string `json:"name" schema:"description:name of company;example:XYZ Inc"` - Description string `json:"description" schema:"description:companies primary activity;example:A social media company"` + Description string `json:"description,omitempty" schema:"description:companies primary activity;example:A social media company"` Position string `json:"position" schema:"description:position at the company;example:Software Engineer"` - Location locationSchema `json:"location" schema:"description:location of the company"` - URL string `json:"url" schema:"description:url of the company website;format:uri;example:http://xyz.example.com"` + Location locationSchema `json:"location,omitempty" schema:"description:location of the company"` + URL string `json:"url,omitempty" schema:"description:url of the company website;format:uri;example:http://xyz.example.com"` StartDate string `json:"startDate" schema:"description:start date;format:date;example:2017-12-29"` - EndDate string `json:"endDate" schema:"description:end date;format:date;example:2018-12-29"` - Summary string `json:"summary" schema:"description:an overview of responsibilities;example:Developing and maintaining the company website using syna"` - Highlights []string `json:"highlights" schema:"description:some of accomplishments;items_example:Worked with mobile team at Twitter to develop remote debugging tools for mobile browsers"` + EndDate string `json:"endDate,omitempty" schema:"description:end date;format:date;example:2018-12-29"` + Summary string `json:"summary,omitempty" schema:"description:an overview of responsibilities;example:Developing and maintaining the company website using syna"` + Highlights []string `json:"highlights,omitempty" schema:"description:some of accomplishments;items_example:Worked with mobile team at Twitter to develop remote debugging tools for mobile browsers"` } type educationSchema struct { Institution string `json:"institution" schema:"name of institute;example:XYZ Institute of Technology"` - Location locationSchema `json:"location" schema:"description:location of institution"` + Location locationSchema `json:"location,omitempty" schema:"description:location of institution"` Area string `json:"area" schema:"description:area of study;example:Engineering"` StudyType string `json:"studyType" schema:"description:type of study;example:Bachelor"` StartDate string `json:"startDate" schema:"description:start date;format:date;example:2017-06-28"` - EndDate string `json:"endDate" schema:"description:end date;format:date;example:2013-06-28"` - Score scoreSchema `json:"score"` - Courses []string `json:"courses" schema:"description:notable courses/subjects;items_example:CS302 - Introduction to Algorithms"` - Honors []string `json:"honors" schema:"description:some education honours;items_example:Magna Cum Laude"` - Highlights []string `json:"highlights" schema:"description:some of accomplishments;items_example:Live abroad within a new culture"` + EndDate string `json:"endDate,omitepmty" schema:"description:end date;format:date;example:2013-06-28"` + Score scoreSchema `json:"score,omitempty"` + Courses []string `json:"courses,omitempty" schema:"description:notable courses/subjects;items_example:CS302 - Introduction to Algorithms"` + Honors []string `json:"honors,omitempty" schema:"description:some education honours;items_example:Magna Cum Laude"` + Highlights []string `json:"highlights,omitempty" schema:"description:some of accomplishments;items_example:Live abroad within a new culture"` } type volunteerSchema struct { Organization string `json:"organization" schema:"description:name of the organization;example:Xyz"` Position string `json:"position" schema:"description:type of the contribution;example:Open Source Contributor"` - Location locationSchema `json:"location" schema:"description:location of activity"` - URL string `json:"url" schema:"description:related link to support volunteer experience;format:uri;example:http://xyz.example.com"` + Location locationSchema `json:"location,omitempty" schema:"description:location of activity"` + URL string `json:"url,omitempty" schema:"description:related link to support volunteer experience;format:uri;example:http://xyz.example.com"` StartDate string `json:"startDate" schema:"description:start date;format:date;example:2014-06-29"` - EndDate string `json:"endDate" schema:"description:end date;format:date;example:2017-06-29"` - Summary string `json:"summary" schema:"description:an overview of responsibilities;example:Frontend developer"` - Highlights []string `json:"highlights" schema:"description:some of accomplishments;items_example:Invited as a speaker in Xyzcon'17"` + EndDate string `json:"endDate,omitempty" schema:"description:end date;format:date;example:2017-06-29"` + Summary string `json:"summary,omitempty" schema:"description:an overview of responsibilities;example:Frontend developer"` + Highlights []string `json:"highlights,omitempty" schema:"description:some of accomplishments;items_example:Invited as a speaker in Xyzcon'17"` } type publicationSchema struct { - Name string `json:"name" schema:"description:name of the publication;example:Deep learning and Artificial Intelligence"` - Publisher string `json:"publisher" schema:"description:name of the publisher;example:XYZ, Computer Magazine"` - ReleaseDate string `json:"releaseDate" schema:"description:release date of publication;example:2015-08-01"` - Resources []resourceSchema `json:"resources" schema:"description:multiple resources with label"` - URL string `json:"url" schema:"description:url of the publication;format:uri;example:http://www.computer.org.example.com/csdl/mags/co/2015/10/rx069-abs.html"` - Summary string `json:"summary" schema:"description:short summary of the publication;example:Discussion of the advent of deep learning and artificial intelligence"` + Name string `json:"name" schema:"description:name of the publication;example:Deep learning and Artificial Intelligence"` + Publisher string `json:"publisher" schema:"description:name of the publisher;example:XYZ, Computer Magazine"` + PublicationDate string `json:"publicationDate,omitempty" schema:"description:date of publication;format:date;example:2015-08-01"` + Resources []resourceSchema `json:"resources,omitempty" schema:"description:multiple resources with label"` + URL string `json:"url,omitempty" schema:"description:url of the publication;format:uri;example:http://www.computer.org.example.com/csdl/mags/co/2015/10/rx069-abs.html"` + Summary string `json:"summary,omitempty" schema:"description:short summary of the publication;example:Discussion of the advent of deep learning and artificial intelligence"` } type legalSchema struct { Name string `json:"name" schema:"description:name of the document;example:XYZ's patent on LZW compression, a fundamental part of the widely used GIF graphics format"` - LegalType string `json:"legalType" schema:"description:type of the document;example:Patent, Trademark, Copyright"` - Description string `json:"description" schema:"description:a brief description about the document;example:Some legal document!"` - ApplicationDate string `json:"applicationDate" schema:"description:date of the application;format:date;example:2015-08-01"` - GrantDate string `json:"grantDate" schema:"description:date of the grant;format:date;example:2016-09-01"` - EndDate string `json:"endDate" schema:"description:end date;format:date;example:2020-09-03"` - Resources []resourceSchema `json:"resources" schema:"description:multiple resources with label"` - IDNumber string `json:"idNumber" schema:"description:application number or Id Number;example:JP2004369746A"` - CurrentAssignee string `json:"currentAssignee" schema:"example:John Doe"` - PreviousAssignee string `json:"previousAssignee" schema:"example:John Doe"` - Author string `json:"author" schema:"example:John Doe"` - CoAuthors string `json:"coAuthors" schema:"example:John Doe"` + LegalType string `json:"legalType,omitempty" schema:"description:type of the document;example:Patent, Trademark, Copyright"` + Description string `json:"description,omitempty" schema:"description:a brief description about the document;example:Some legal document!"` + ApplicationDate string `json:"applicationDate,omitempty" schema:"description:date of the application;format:date;example:2015-08-01"` + GrantDate string `json:"grantDate,omitempty" schema:"description:date of the grant;format:date;example:2016-09-01"` + EndDate string `json:"endDate,omitempty" schema:"description:end date;format:date;example:2020-09-03"` + Resources []resourceSchema `json:"resources,omitempty" schema:"description:multiple resources with label"` + IDNumber string `json:"idNumber,omitempty" schema:"description:application number or Id Number;example:JP2004369746A"` + CurrentAssignee string `json:"currentAssignee,omitempty" schema:"example:John Doe"` + PreviousAssignee string `json:"previousAssignee,omitempty" schema:"example:John Doe"` + Author string `json:"author,omitempty" schema:"example:John Doe"` + CoAuthors string `json:"coAuthors,omitempty" schema:"example:John Doe"` } type skillSchema struct { Name string `json:"name" schema:"description:name of the skill;example:Web Development"` Proficiency string `json:"proficiency" schema:"description:proficiency level of the skill;enum:beginner,early,competent,advanced,expert;example:advanced"` - Keywords []string `json:"keywords" schema:"description:some keywords pertaining to the skill;items_example:HTML"` + Keywords []string `json:"keywords,omitempty" schema:"description:some keywords pertaining to the skill;items_example:HTML"` } type awardSchema struct { Title string `json:"title" schema:"description:title of the award;example:Awarded Software Process Achievement Award"` Date string `json:"date" schema:"description:date of the award;format:date;example:2016-06-12"` Awarder string `json:"awarder" schema:"description:name of the awarder;example:IEEE"` - Summary string `json:"summary" schema:"description:reason of the award;example:Received for my work in Deep learning and AI"` + Summary string `json:"summary,omitempty" schema:"description:reason of the award;example:Received for my work in Deep learning and AI"` } type projectSchema struct { Name string `json:"name" schema:"description:name of the project;example:File Transfer application"` - Location locationSchema `json:"location" schema:"description:location of the project"` - Description string `json:"description" schema:"description:short summary of project;example:Developed a client and server based application"` - Highlights []string `json:"highlights" schema:"description:specify multiple features;items_example:used Java AWT and Swing for client side userinterface"` - Keywords []string `json:"keywords" schema:"description:specify special elements involved;items_example:Java"` + Location locationSchema `json:"location,omitempty" schema:"description:location of the project"` + Description string `json:"description,omitempty" schema:"description:short summary of project;example:Developed a client and server based application"` + Highlights []string `json:"highlights,omitempty" schema:"description:specify multiple features;items_example:used Java AWT and Swing for client side userinterface"` + Keywords []string `json:"keywords,omitempty" schema:"description:specify special elements involved;items_example:Java"` StartDate string `json:"startDate" schema:"start date;format:date;example:2016-06-29"` - EndDate string `json:"endDate" schema:"description:end date;format:date;example:2017-03-02"` - Resources []resourceSchema `json:"resources" schema:"description:specify multiple resources with label"` - URL string `json:"url" schema:"description:url of the project;format:uri;example:http://www.example.org/csdl/mags/co/1996/10/rx069-abs.html"` - Roles []string `json:"roles" schema:"description:specify your role on this project;items_example:Team Lead"` - Entity string `json:"entity" schema:"description:relevant company/entity affiliations;example:greenpeace"` - Type string `json:"type" schema:"description:type of the project;example:volunteering"` + EndDate string `json:"endDate,omitempty" schema:"description:end date;format:date;example:2017-03-02"` + Resources []resourceSchema `json:"resources,omitempty" schema:"description:specify multiple resources with label"` + URL string `json:"url,omitempty" schema:"description:url of the project;format:uri;example:http://www.example.org/csdl/mags/co/1996/10/rx069-abs.html"` + Roles []string `json:"roles,omitempty" schema:"description:specify your role on this project;items_example:Team Lead"` + Entity string `json:"entity,omitempty" schema:"description:relevant company/entity affiliations;example:greenpeace"` + Type string `json:"type,omitempty" schema:"description:type of the project;example:volunteering"` } type certificateSchema struct { - Code string `json:"code" schema:"description:code of the certificate;example:1Z0-062"` + Code string `json:"code,omitempty" schema:"description:code of the certificate;example:1Z0-062"` Name string `json:"name" schema:"description:name of the certificate;example:XYZ Certified Application Specialist (MCAS)"` - Website string `json:"website" schema:"description:link to issuing authority's description of the certificate;format:uri;example:http://www.example.org"` - Verification string `json:"verification" schema:"description:external candidate verification URL;format:uri;example:http://www.example.org"` - GrantDate string `json:"grantDate" schema:"description:date of the grant;format:date;example:2017-06-29"` - Score scoreSchema `json:"score" schema:"description:exam score"` - EndDate string `json:"endDate" schema:"description:end date of certificate;format:date;example:2017-06-29"` - DoesNotExpire bool `json:"doesNotExpire" schema:"example:true"` + Website string `json:"website,omitempty" schema:"description:link to issuing authority's description of the certificate;format:uri;example:http://www.example.org"` + Verification string `json:"verification,omitempty" schema:"description:external candidate verification URL;format:uri;example:http://www.example.org"` + GrantDate string `json:"grantDate,omitempty" schema:"description:date of the grant;format:date;example:2017-06-29"` + Score scoreSchema `json:"score,omitempty" schema:"description:exam score"` + EndDate string `json:"endDate,omitempty" schema:"description:end date of certificate;format:date;example:2017-06-29"` + DoesNotExpire bool `json:"doesNotExpire,omitempty" schema:"example:true"` } type referenceSchema struct { - Name string `json:"name" schema:"description:name of the reference;example:Stephan Mark"` - Company string `json:"company" schema:"description:company name;example:Xyz"` - Position string `json:"position" schema:"description:position of reference;example:Senior Software Engineer"` + Name string `json:"name,omitempty" schema:"description:name of the reference;example:Stephan Mark"` + Company string `json:"company,omitempty" schema:"description:company name;example:Xyz"` + Position string `json:"position,omitempty" schema:"description:position of reference;example:Senior Software Engineer"` Reference string `json:"reference" schema:"description:reference text;example:Joe blogs was a great employee, who turned up to work at least once a week. He exceeded my expectations when it came to doing nothing."` } type languageSchema struct { - Language string `json:"language" schema:"description:name of language;example:English"` - Level string `json:"level" schema:"description:proficiency level for the language;enum:basic,conversational,fluent,native;example:fluent"` + Language string `json:"language,omitepty" schema:"description:name of language;example:English"` + Level string `json:"level,omitempty" schema:"description:proficiency level for the language;enum:basic,conversational,fluent,native;example:fluent"` } type interestSchema struct { Name string `json:"name" schema:"description:name of the interest;example:Machine Learning"` - Keywords []string `json:"keywords" schema:"description:keywords of the interest;items_example:Neural Networks"` + Keywords []string `json:"keywords,omitempty" schema:"description:keywords of the interest;items_example:Neural Networks"` } type metaSchema struct { - Canonical string `json:"canonical" schema:"description:URL (as per RFC 3986) to latest version of this document"` - Version string `json:"version" schema:"description:version field which follows semver;example:v1.0.0"` - LastModified string `json:"lastModified" schema:"description:date-time of last modified;format:date-time;example:2017-06-29T15:53:01+01:00"` - UUID string `json:"uuid" schema:"description:uuid v4 of the resume;example:078c39ce-23ee-4970-9637-c07379132dce"` + Canonical string `json:"canonical,omitempty" schema:"description:URL (as per RFC 3986) to latest version of this document"` + Version string `json:"version,omitempty" schema:"description:version field which follows semver;example:v1.0.0"` + LastModified string `json:"lastModified,omitempty" schema:"description:date-time of last modified;format:date-time;example:2017-06-29T15:53:01+01:00"` + UUID string `json:"uuid,omitempty" schema:"description:uuid v4 of the resume;example:078c39ce-23ee-4970-9637-c07379132dce"` } // Schema is the struct which jsonschema, uischema, and example are generated from. diff --git a/ui.json b/ui.json index 6165f32..dc88fdd 100644 --- a/ui.json +++ b/ui.json @@ -464,7 +464,7 @@ "publisher": { "ui:placeholder": "XYZ, Computer Magazine" }, - "releaseDate": { + "publicationDate": { "ui:placeholder": "2015-08-01" }, "resources": { @@ -487,7 +487,7 @@ "ui:order": [ "name", "publisher", - "releaseDate", + "publicationDate", "resources", "url", "summary" @@ -658,4 +658,4 @@ } } } -} \ No newline at end of file +}