From 107c968bb622eea60872368201c3d75f8d6985c5 Mon Sep 17 00:00:00 2001 From: Jeff Bendixsen Date: Tue, 1 Aug 2023 12:23:19 -0700 Subject: [PATCH] Fixing package json --- package-lock.json | 29 ++++++++++++++++++++++------- spectral.yaml | 23 +++++++++++------------ 2 files changed, 33 insertions(+), 19 deletions(-) diff --git a/package-lock.json b/package-lock.json index 753576c..1fda64d 100644 --- a/package-lock.json +++ b/package-lock.json @@ -1,7 +1,7 @@ { "name": "@trimble-oss/openapi-spectral-rules", "version": "0.0.1", - "lockfileVersion": 1, + "lockfileVersion": 2, "requires": true, "packages": { "": { @@ -17,7 +17,8 @@ "@stoplight/spectral-functions": "^1.7.2", "@stoplight/spectral-ruleset-migrator": "^1.9.1", "@stoplight/spectral-rulesets": "^1.14.1", - "jest": "^29.4.0" + "jest": "^29.4.0", + "pos": "^0.4.2" } }, "node_modules/@ampproject/remapping": { @@ -4458,6 +4459,15 @@ "node": ">=12.0.0" } }, + "node_modules/pos": { + "version": "0.4.2", + "resolved": "https://registry.npmjs.org/pos/-/pos-0.4.2.tgz", + "integrity": "sha512-5HtivCe1HaOqjQZZNhtKrIR1zBvm2FLVVGl4b1poHPZDbXq1BEqYOlmWmetbzqrkRFITxPbEpVgpB03qNS4cSw==", + "dev": true, + "engines": { + "node": ">=0" + } + }, "node_modules/pretty-format": { "version": "29.4.0", "resolved": "https://registry.npmjs.org/pretty-format/-/pretty-format-29.4.0.tgz", @@ -6090,13 +6100,15 @@ "version": "1.0.3", "resolved": "https://registry.npmjs.org/@jsep-plugin/regex/-/regex-1.0.3.tgz", "integrity": "sha512-XfZgry4DwEZvSFtS/6Y+R48D7qJYJK6R9/yJFyUFHCIUMEEHuJ4X95TDgJp5QkmzfLYvapMPzskV5HpIDrREug==", - "dev": true + "dev": true, + "requires": {} }, "@jsep-plugin/ternary": { "version": "1.1.3", "resolved": "https://registry.npmjs.org/@jsep-plugin/ternary/-/ternary-1.1.3.tgz", "integrity": "sha512-qtLGzCNzPVJ3kdH6/zoLWDPjauHIKiLSBAR71Wa0+PWvGA8wODUQvRgxtpUA5YqAYL3CQ8S4qXhd/9WuWTZirg==", - "dev": true + "dev": true, + "requires": {} }, "@sinclair/typebox": { "version": "0.25.21", @@ -6543,13 +6555,15 @@ "version": "1.0.0", "resolved": "https://registry.npmjs.org/ajv-draft-04/-/ajv-draft-04-1.0.0.tgz", "integrity": "sha512-mv00Te6nmYbRp5DCwclxtt7yV/joXJPGS7nM+97GdxvuttCOfgI3K4U25zboyeX0O+myI8ERluxQe5wljMmVIw==", - "dev": true + "dev": true, + "requires": {} }, "ajv-errors": { "version": "3.0.0", "resolved": "https://registry.npmjs.org/ajv-errors/-/ajv-errors-3.0.0.tgz", "integrity": "sha512-V3wD15YHfHz6y0KdhYFjyy9vWtEVALT9UrxfN3zqlI6dMioHnJrqOYfyPKol3oqrnCM9uwkcdCwkJ0WUcbLMTQ==", - "dev": true + "dev": true, + "requires": {} }, "ajv-formats": { "version": "2.1.1", @@ -7970,7 +7984,8 @@ "version": "1.2.3", "resolved": "https://registry.npmjs.org/jest-pnp-resolver/-/jest-pnp-resolver-1.2.3.tgz", "integrity": "sha512-+3NpwQEnRoIBtx4fyhblQDPgJI0H1IEIkX7ShLUjPGA7TtUTvI1oiKi3SR4oBR0hQhQR80l4WAe5RrXBwWMA8w==", - "dev": true + "dev": true, + "requires": {} }, "jest-regex-util": { "version": "29.2.0", diff --git a/spectral.yaml b/spectral.yaml index 88478bd..adbc5bc 100644 --- a/spectral.yaml +++ b/spectral.yaml @@ -1,8 +1,7 @@ ---- extends: - [spectral:oas, all] functionsDir: "./functions" -functions: +functions: - valid-url-checker - valid-version-checker - is-a-plural-noun @@ -39,8 +38,8 @@ rules: then: function: valid-version-checker - # Resource names in the URL must be a noun - # https://api-standards.trimble-pnp.com/api-standard/http#resource-naming + # Resource names in the URL must be a noun + # https://api-standards.trimble-pnp.com/api-standard/http#resource-naming tas-api-paths-should-start-with-a-noun: description: The root resource name in the URL MUST be a noun and MUST be in the plural form. Further nouns MAY be in the singular. message: "{{error}}" @@ -51,7 +50,7 @@ rules: function: is-a-plural-noun # All schema property names should be camel case. - # https://api-standards.trimble-pnp.com/api-standard/http#field-names + # https://api-standards.trimble-pnp.com/api-standard/http#field-names tas-openapi-v3-schema-properties-names-camel-case: description: Ensuring that schema property names are camel case. message: All schema property names should be camel case. @@ -61,9 +60,9 @@ rules: field: "@key" function: pattern functionOptions: - match: "^[a-z][a-zA-Z0-9]*$" + match: "^[a-z][a-zA-Z0-9]*$" errorMessage: All field names MUST be formatted as camel case. - + # Resource path should not contain HTTP verbs # https://api-standards.trimble-pnp.com/api-standard/http#avoiding-actions-in-resource-names tas-no-http-verbs-in-path: @@ -77,7 +76,7 @@ rules: function: no-http-verbs-in-path # All APIs returning structured data should support JSON as the default format - # https://api-standards.trimble-pnp.com/api-standard/http#data-from-apis-bodies-returned-from-gets-posts-puts + # https://api-standards.trimble-pnp.com/api-standard/http#data-from-apis-bodies-returned-from-gets-posts-puts tas-structured-data-format: description: All APIs returning structured data should support JSON as the default format. severity: error @@ -87,7 +86,7 @@ rules: function: check-if-application-or-json-in-put-and-post-response # All APIs returning structured data should support JSON as the default format. - # https://api-standards.trimble-pnp.com/api-standard/http#data-from-apis-bodies-returned-from-gets-posts-puts + # https://api-standards.trimble-pnp.com/api-standard/http#data-from-apis-bodies-returned-from-gets-posts-puts tas-structured-data-format-support-json-response-body: description: All APIs returning structured data should support JSON as the default format. severity: error @@ -95,7 +94,7 @@ rules: given: "$.paths.*." then: function: check-if-response-body-json-in-get-response - + # All APIs should return a valid http response code (Additional ruleset) tdp-http-response-code: description: All APIs should return a valid http response code. @@ -117,7 +116,7 @@ rules: field: "@key" function: check-for-query-parameter-in-every-path - # Spec should contain only valid http verbs (Additional ruleset) + # Spec should contain only valid http verbs (Additional ruleset) tdp-does-spec-contains-valid-http-verbs: description: All APIs should have a valid http verb. severity: warn @@ -132,7 +131,7 @@ rules: description: Spec should not be empty. severity: error message: "{{error}}" - given: '$' + given: "$" then: function: is-valid-spec