git.iko.soy/typeable/compaREST
on master help sign in
Naming changes (#117)
f4fd16dmniip
.github/workflows/linux-binary.yaml+3−3
@@ -35,14 +35,14 @@ jobs:
35
35
36 - name: Build
36 - name: Build
37 run: |
37 run: |
38− stack build --ghc-options=-O3 --local-bin-path openapi-diff-linux --copy-bins --flag openapi-diff:Static
38+ stack build --ghc-options=-O3 --local-bin-path comparest-linux --copy-bins --flag comparest:Static
39 - name: Test
39 - name: Test
40− run: stack test --ghc-options=-O3 --flag openapi-diff:Static --test-arguments='--hide-successes --no-create'
40+ run: stack test --ghc-options=-O3 --flag comparest:Static --test-arguments='--hide-successes --no-create'
41
41
42 - name: Zip
42 - name: Zip
43 if: github.ref == 'refs/heads/master'
43 if: github.ref == 'refs/heads/master'
44 run: |
44 run: |
45− zip openapi-diff-linux openapi-diff-linux/openapi-diff
45+ zip comparest-linux comparest-linux/comparest
46 - uses: "marvinpinto/action-automatic-releases@latest"
46 - uses: "marvinpinto/action-automatic-releases@latest"
47 if: github.ref == 'refs/heads/master'
47 if: github.ref == 'refs/heads/master'
48 with:
48 with:
CHANGELOG.md+1−1
@@ -1,6 +1,6 @@
1# Changelog
1# Changelog
2
2
3−`openapi-diff` uses [PVP Versioning][1].
3+`comparest` uses [PVP Versioning][1].
4
4
5## 0.0.0.0
5## 0.0.0.0
6
6
README.md+13−13
@@ -1,8 +1,8 @@
1−# openapi-diff
1+# CompaREST
2
2
3−[![Hackage](https://img.shields.io/hackage/v/openapi-diff.svg?logo=haskell)](https://hackage.haskell.org/package/openapi-diff)
3+[![Hackage](https://img.shields.io/hackage/v/comparest.svg?logo=haskell)](https://hackage.haskell.org/package/comparest)
4−[![Stackage Lts](http://stackage.org/package/openapi-diff/badge/lts)](http://stackage.org/lts/package/openapi-diff)
4+[![Stackage Lts](http://stackage.org/package/comparest/badge/lts)](http://stackage.org/lts/package/comparest)
5−[![Stackage Nightly](http://stackage.org/package/openapi-diff/badge/nightly)](http://stackage.org/nightly/package/openapi-diff)
5+[![Stackage Nightly](http://stackage.org/package/comparest/badge/nightly)](http://stackage.org/nightly/package/comparest)
6[![MIT license](https://img.shields.io/badge/license-MIT-blue.svg)](LICENSE)
6[![MIT license](https://img.shields.io/badge/license-MIT-blue.svg)](LICENSE)
7
7
8Compatibility checker for OpenAPI
8Compatibility checker for OpenAPI
@@ -241,32 +241,32 @@ docker run --rm -v $(pwd):/data:rw typeable/comparest --client /data/api-1.0.0.y
241# CLI docs
241# CLI docs
242
242
243```
243```
244−Usage: openapi-diff (-c|--client ARG) (-s|--server ARG)
244+Usage: comparest (-c|--client ARG) (-s|--server ARG)
245− [--silent | --only-breaking | --all] [-o|--output ARG]
245+ [--silent | --only-breaking | --all] [-o|--output ARG]
246− [--folding-block-quotes-style | --header-style]
246+ [--folding-block-quotes-style | --header-style]
247− [--signal-exit-code]
247+ [--signal-exit-code]
248− A tool to check compatibility between two OpenApi specifications.
248+ A tool to check compatibility between two OpenAPI specifications.
249
249
250 Usage examples
250 Usage examples
251
251
252 Compare files old.yaml with new.yaml and output the resulting report to
252 Compare files old.yaml with new.yaml and output the resulting report to
253 stdout:
253 stdout:
254
254
255− openapi-diff -c old.yaml -s new.yaml
255+ comparest -c old.yaml -s new.yaml
256
256
257 Only output breaking changes and write a styled HTML report to file
257 Only output breaking changes and write a styled HTML report to file
258 report.html:
258 report.html:
259
259
260− openapi-diff -c old.yaml -s new.yaml --only-breaking -o report
260+ comparest -c old.yaml -s new.yaml --only-breaking -o report
261
261
262 Don't output anything, only fail if there are breaking changes:
262 Don't output anything, only fail if there are breaking changes:
263
263
264− openapi-diff -c old.json -s new.json --silent
264+ comparest -c old.json -s new.json --silent
265
265
266 Write full report suitable for embedding into a GitHub comment to
266 Write full report suitable for embedding into a GitHub comment to
267 report.html:
267 report.html:
268
268
269− openapi-diff -c old.json -s new.json --folding-block-quotes-style -o report.html
269+ comparest -c old.json -s new.json --folding-block-quotes-style -o report.html
270
270
271Available options:
271Available options:
272 -h,--help Show this help text
272 -h,--help Show this help text
app/OpenAPI/Checker/Options.hs → app/Data/OpenApi/Compare/Options.hsrenamed+8−8
@@ -1,12 +1,12 @@
1−module OpenAPI.Checker.Options
1+module Data.OpenApi.Compare.Options
2 ( Options (..)
2 ( Options (..)
3 , OutputMode (..)
3 , OutputMode (..)
4 , parseOptions
4 , parseOptions
5 )
5 )
6where
6where
7
7
8+import Data.OpenApi.Compare.Report
8import GHC.Generics (Generic)
9import GHC.Generics (Generic)
9−import OpenAPI.Checker.Report
10import Options.Applicative
10import Options.Applicative
11import Options.Applicative.Help hiding (fullDesc)
11import Options.Applicative.Help hiding (fullDesc)
12
12
@@ -31,21 +31,21 @@ optionsParserInfo =
31 info
31 info
32 (helper <*> optionsParser)
32 (helper <*> optionsParser)
33 (fullDesc
33 (fullDesc
34− <> header "openapi-diff"
34+ <> header "CompaREST"
35 <> progDescDoc
35 <> progDescDoc
36 (Just $
36 (Just $
37− par "A tool to check compatibility between two OpenApi specifications."
37+ par "A tool to check compatibility between two OpenAPI specifications."
38 <$$> hardline <> par "Usage examples" <> hardline
38 <$$> hardline <> par "Usage examples" <> hardline
39 <$$> indent
39 <$$> indent
40 4
40 4
41 (par "Compare files old.yaml with new.yaml and output the resulting report to stdout:"
41 (par "Compare files old.yaml with new.yaml and output the resulting report to stdout:"
42− <$$> hardline <> indent 4 "openapi-diff -c old.yaml -s new.yaml"
42+ <$$> hardline <> indent 4 "comparest -c old.yaml -s new.yaml"
43 <$$> hardline <> par "Only output breaking changes and write a styled HTML report to file report.html:"
43 <$$> hardline <> par "Only output breaking changes and write a styled HTML report to file report.html:"
44− <$$> hardline <> indent 4 "openapi-diff -c old.yaml -s new.yaml --only-breaking -o report"
44+ <$$> hardline <> indent 4 "comparest -c old.yaml -s new.yaml --only-breaking -o report"
45 <$$> hardline <> par "Don't output anything, only fail if there are breaking changes:"
45 <$$> hardline <> par "Don't output anything, only fail if there are breaking changes:"
46− <$$> hardline <> indent 4 "openapi-diff -c old.json -s new.json --silent"
46+ <$$> hardline <> indent 4 "comparest -c old.json -s new.json --silent"
47 <$$> hardline <> par "Write full report suitable for embedding into a GitHub comment to report.html:"
47 <$$> hardline <> par "Write full report suitable for embedding into a GitHub comment to report.html:"
48− <$$> hardline <> indent 4 "openapi-diff -c old.json -s new.json --folding-block-quotes-style -o report.html")))
48+ <$$> hardline <> indent 4 "comparest -c old.json -s new.json --folding-block-quotes-style -o report.html")))
49
49
50optionsParser :: Parser Options
50optionsParser :: Parser Options
51optionsParser =
51optionsParser =
app/FormatHeuristic.hs+2−2
@@ -10,10 +10,10 @@ import Data.ByteString.Lazy (ByteString)
10import Data.Char (toLower)
10import Data.Char (toLower)
11import Data.Functor
11import Data.Functor
12import qualified Data.Map as M
12import qualified Data.Map as M
13+import qualified Data.OpenApi.Compare.Report.Html.Template as Html
13import Data.Text (Text)
14import Data.Text (Text)
14import qualified Data.Text.Lazy as TL
15import qualified Data.Text.Lazy as TL
15import qualified Data.Text.Lazy.Encoding as TL
16import qualified Data.Text.Lazy.Encoding as TL
16−import qualified OpenAPI.Checker.Report.Html.Template as Html
17import System.FilePath (takeExtension)
17import System.FilePath (takeExtension)
18import Text.DocTemplates.Internal
18import Text.DocTemplates.Internal
19import Text.Pandoc
19import Text.Pandoc
@@ -80,7 +80,7 @@ formatFromFilePath x =
80 def
80 def
81 { writerTemplate = Just Html.template
81 { writerTemplate = Just Html.template
82 , -- Not actually used. Needed to silence warning.
82 , -- Not actually used. Needed to silence warning.
83− writerVariables = Context $ M.fromList [("pagetitle", toVal ("OpenApi Diff" :: Text))]
83+ writerVariables = Context $ M.fromList [("pagetitle", toVal ("CompaREST" :: Text))]
84 }
84 }
85 _ -> Nothing
85 _ -> Nothing
86 where
86 where
app/Main.hs+2−2
@@ -6,11 +6,11 @@ import Data.Aeson
6import qualified Data.ByteString.Lazy as BSL
6import qualified Data.ByteString.Lazy as BSL
7import Data.Default
7import Data.Default
8import Data.Maybe
8import Data.Maybe
9+import Data.OpenApi.Compare.Options
10+import Data.OpenApi.Compare.Run
9import qualified Data.Text.IO as T
11import qualified Data.Text.IO as T
10import qualified Data.Yaml as Yaml
12import qualified Data.Yaml as Yaml
11import FormatHeuristic
13import FormatHeuristic
12−import OpenAPI.Checker.Options
13−import OpenAPI.Checker.Run
14import System.Exit
14import System.Exit
15import System.IO
15import System.IO
16import Text.Pandoc hiding (report)
16import Text.Pandoc hiding (report)
benchmarks/README.md+2−2
@@ -1,6 +1,6 @@
1# OpenApi comparison benchmarks
1# OpenApi comparison benchmarks
2
2
3−This is a nix expression that automatically downloads, builds and runs multiple OpenApi comparison tools on the same set of inputs to compare how well they behave.
3+This is a nix expression that automatically downloads, builds and runs multiple OpenAPI comparison tools on the same set of inputs to compare how well they behave.
4
4
5To run the benchmarks run the following command in this directory:
5To run the benchmarks run the following command in this directory:
6
6
@@ -12,7 +12,7 @@ nix-build
12
12
13| Tool | Output file name |
13| Tool | Output file name |
14| -------------------------------------------------------------------------- | ------------------------------------------- |
14| -------------------------------------------------------------------------- | ------------------------------------------- |
15−| [Typeable OpenApi Diff](https://github.com/typeable/openapi-diff) | `typeable.md` |
15+| [Typeable CompaREST](https://github.com/typeable/compaREST) | `typeable.md` |
16| [Atlassian OpenApi Diff](https://bitbucket.org/atlassian/openapi-diff) | `atlassian.json`, `atlassian.error.txt` |
16| [Atlassian OpenApi Diff](https://bitbucket.org/atlassian/openapi-diff) | `atlassian.json`, `atlassian.error.txt` |
17| [OpenApi Tools OpenApi Diff](https://github.com/OpenAPITools/openapi-diff) | `openapitools.md`, `openapitools.error.txt` |
17| [OpenApi Tools OpenApi Diff](https://github.com/OpenAPITools/openapi-diff) | `openapitools.md`, `openapitools.error.txt` |
18| [Tufin OpenApi Diff](https://github.com/tufin/oasdiff) | `oasdiff.txt`, `oasdiff.error.txt` |
18| [Tufin OpenApi Diff](https://github.com/tufin/oasdiff) | `oasdiff.txt`, `oasdiff.error.txt` |
benchmarks/default.nix+8−12
@@ -1,6 +1,6 @@
1{ sources ? import ./nix/sources.nix
1{ sources ? import ./nix/sources.nix
2−, haskellNix ? import sources.haskellNix { }
3, gomod2nix ? sources.gomod2nix
2, gomod2nix ? sources.gomod2nix
3+, haskellNix ? (import ../. {}).haskellNix
4, pkgs ? import haskellNix.sources.nixpkgs-2105 (haskellNix.nixpkgsArgs // {
4, pkgs ? import haskellNix.sources.nixpkgs-2105 (haskellNix.nixpkgsArgs // {
5 overlays = haskellNix.nixpkgsArgs.overlays ++ [
5 overlays = haskellNix.nixpkgsArgs.overlays ++ [
6 (self: super: {
6 (self: super: {
@@ -8,23 +8,19 @@
8 })
8 })
9 ];
9 ];
10 })
10 })
11+, compaRESThsPkgs ? (import ../. {}).hsPkgs
11, npmNix ? import (sources.npmNix + "/npmPackages") { inherit pkgs; }
12, npmNix ? import (sources.npmNix + "/npmPackages") { inherit pkgs; }
12, mavenix ? import (sources.mavenix) { inherit pkgs; }
13, mavenix ? import (sources.mavenix) { inherit pkgs; }
13, bumpToken ? null
14, bumpToken ? null
14, bumpDocumentation ? null
15, bumpDocumentation ? null
15}:
16}:
16let
17let
17− typeable-openapi-diff = (pkgs.haskell-nix.stackProject {
18+ typeable-comparest = compaRESThsPkgs.comparest.components.exes.comparest;
18− src = pkgs.haskell-nix.haskellLib.cleanGit {
19− name = "openapi-diff";
20− src = ./..;
21− };
22− }).openapi-diff.components.exes.openapi-diff;
23− typeable-openapi-diff-exe = typeable-openapi-diff + "/bin/openapi-diff";
19+ typeable-comparest-exe = typeable-comparest + "/bin/comparest";
24− typeable-openapi-diff-differ = pkgs.writeScript "typeable-openapi-diff-differ" ''
20+ typeable-comparest-differ = pkgs.writeScript "typeable-comparest-differ" ''
25 #!${pkgs.stdenv.shell}
21 #!${pkgs.stdenv.shell}
26 set +e
22 set +e
27− ${typeable-openapi-diff-exe} -c $1 -s $2 -o $3/typeable.md
23+ ${typeable-comparest-exe} -c $1 -s $2 -o $3/typeable.md
28 exit 0
24 exit 0
29 '';
25 '';
30
26
@@ -130,7 +126,7 @@ let
130 })
126 })
131 (getInputs root);
127 (getInputs root);
132 differs = [
128 differs = [
133− typeable-openapi-diff-differ
129+ typeable-comparest-differ
134 atlassian-openapi-diff-differ
130 atlassian-openapi-diff-differ
135 openapitools-openapi-diff-differ
131 openapitools-openapi-diff-differ
136 oasdiff-differ
132 oasdiff-differ
@@ -164,7 +160,7 @@ let
164 tools = [
160 tools = [
165 "Typeable"
161 "Typeable"
166 "Atlassian"
162 "Atlassian"
167− "OpenApi Tools"
163+ "OpenAPI Tools"
168 "oasdiff"
164 "oasdiff"
169 "Bump.sh"
165 "Bump.sh"
170 ];
166 ];
openapi-diff.cabal → comparest.cabalrenamed+48−48
@@ -1,13 +1,13 @@
1cabal-version: 2.4
1cabal-version: 2.4
2−name: openapi-diff
2+name: comparest
3version: 0.0.0.0
3version: 0.0.0.0
4synopsis: Compatibility checker for OpenAPI
4synopsis: Compatibility checker for OpenAPI
5−description: Compatibility checker for OpenAPI
5+description: Compatibility checker for OpenAPI.
6license: MIT
6license: MIT
7license-file: LICENSE
7license-file: LICENSE
8−author: Aleksey Uymanov
8+author: Typeable
9−maintainer: Aleksey Uymanov <s9gf4ult@gmail.com>
9+maintainer: comparest@typeable.io
10−copyright: 2021 Aleksey Uymanov
10+copyright: 2021 Typeable
11category: Web
11category: Web
12build-type: Simple
12build-type: Simple
13extra-doc-files: README.md
13extra-doc-files: README.md
@@ -112,51 +112,51 @@ library
112 , ordered-containers
112 , ordered-containers
113 , bytestring
113 , bytestring
114 hs-source-dirs: src
114 hs-source-dirs: src
115− exposed-modules: Data.HList
115+ exposed-modules: Data.OpenApi.Compare.Behavior
116− , OpenAPI.Checker.Behavior
116+ , Data.OpenApi.Compare.Common
117− , OpenAPI.Checker.Formula
117+ , Data.OpenApi.Compare.Formula
118− , OpenAPI.Checker.Memo
118+ , Data.OpenApi.Compare.Memo
119− , OpenAPI.Checker.Orphans
119+ , Data.OpenApi.Compare.Orphans
120− , OpenAPI.Checker.Paths
120+ , Data.OpenApi.Compare.Paths
121− , OpenAPI.Checker.PathsPrefixTree
121+ , Data.OpenApi.Compare.PathsPrefixTree
122− , OpenAPI.Checker.References
122+ , Data.OpenApi.Compare.References
123− , OpenAPI.Checker.Subtree
123+ , Data.OpenApi.Compare.Report
124+ , Data.OpenApi.Compare.Report.Html.Template
125+ , Data.OpenApi.Compare.Report.Jet
126+ , Data.OpenApi.Compare.Run
127+ , Data.OpenApi.Compare.Subtree
128+ , Data.OpenApi.Compare.Validate.Header
129+ , Data.OpenApi.Compare.Validate.Link
124− , OpenAPI.Checker.Validate.MediaTypeObject
130+ , Data.OpenApi.Compare.Validate.MediaTypeObject
131+ , Data.OpenApi.Compare.Validate.OAuth2Flows
125− , OpenAPI.Checker.Validate.OpenApi
132+ , Data.OpenApi.Compare.Validate.OpenApi
126− , OpenAPI.Checker.Validate.Operation
133+ , Data.OpenApi.Compare.Validate.Operation
127− , OpenAPI.Checker.Validate.Param
134+ , Data.OpenApi.Compare.Validate.Param
128− , OpenAPI.Checker.Validate.PathFragment
135+ , Data.OpenApi.Compare.Validate.PathFragment
129− , OpenAPI.Checker.Validate.Products
136+ , Data.OpenApi.Compare.Validate.Products
130− , OpenAPI.Checker.Validate.RequestBody
137+ , Data.OpenApi.Compare.Validate.RequestBody
131− , OpenAPI.Checker.Validate.Responses
138+ , Data.OpenApi.Compare.Validate.Responses
132− , OpenAPI.Checker.Validate.Schema
133− , OpenAPI.Checker.Validate.Schema.TypedJson
139+ , Data.OpenApi.Compare.Validate.Schema
134− , OpenAPI.Checker.Validate.Schema.DNF
140+ , Data.OpenApi.Compare.Validate.Schema.DNF
135− , OpenAPI.Checker.Validate.Schema.Issues
141+ , Data.OpenApi.Compare.Validate.Schema.Issues
136− , OpenAPI.Checker.Validate.Schema.JsonFormula
142+ , Data.OpenApi.Compare.Validate.Schema.JsonFormula
137− , OpenAPI.Checker.Validate.Schema.Partition
143+ , Data.OpenApi.Compare.Validate.Schema.Partition
138− , OpenAPI.Checker.Validate.Schema.Process
144+ , Data.OpenApi.Compare.Validate.Schema.Process
139− , OpenAPI.Checker.Validate.Schema.Traced
145+ , Data.OpenApi.Compare.Validate.Schema.Traced
146+ , Data.OpenApi.Compare.Validate.Schema.TypedJson
140− , OpenAPI.Checker.Validate.SecurityRequirement
147+ , Data.OpenApi.Compare.Validate.SecurityRequirement
148+ , Data.OpenApi.Compare.Validate.SecurityScheme
141− , OpenAPI.Checker.Validate.Server
149+ , Data.OpenApi.Compare.Validate.Server
142− , OpenAPI.Checker.Validate.Sums
150+ , Data.OpenApi.Compare.Validate.Sums
143− , OpenAPI.Checker.Validate.Header
151+ other-modules: Data.HList
144− , OpenAPI.Checker.Validate.Link
145− , OpenAPI.Checker.Common
146− , OpenAPI.Checker.Validate.SecurityScheme
147− , OpenAPI.Checker.Validate.OAuth2Flows
148− , OpenAPI.Checker.Report
149 , Data.OpenUnion.Extra
152 , Data.OpenUnion.Extra
150− , OpenAPI.Checker.Report.Jet
151− , OpenAPI.Checker.Run
152− , OpenAPI.Checker.Report.Html.Template
153
153
154−executable openapi-diff
154+executable comparest
155 import: common-options
155 import: common-options
156 hs-source-dirs: app
156 hs-source-dirs: app
157 main-is: Main.hs
157 main-is: Main.hs
158 build-depends:
158 build-depends:
159− openapi-diff
159+ comparest
160 , pandoc
160 , pandoc
161 , data-default
161 , data-default
162 , bytestring
162 , bytestring
@@ -173,14 +173,14 @@ executable openapi-diff
173 -with-rtsopts=-N
173 -with-rtsopts=-N
174 other-modules:
174 other-modules:
175 FormatHeuristic
175 FormatHeuristic
176− OpenAPI.Checker.Options
176+ Data.OpenApi.Compare.Options
177
177
178executable comparest-github-action
178executable comparest-github-action
179 import: common-options
179 import: common-options
180 hs-source-dirs: github-action
180 hs-source-dirs: github-action
181 main-is: Main.hs
181 main-is: Main.hs
182 build-depends:
182 build-depends:
183− openapi-diff
183+ comparest
184 , pandoc
184 , pandoc
185 , yaml
185 , yaml
186 , aeson
186 , aeson
@@ -198,7 +198,7 @@ executable comparest-github-action
198 CompaREST.GitHub.API
198 CompaREST.GitHub.API
199 CompaREST.GitHub.Action.Config
199 CompaREST.GitHub.Action.Config
200
200
201−test-suite openapi-diff-test
201+test-suite comparest-tests
202 import: common-options
202 import: common-options
203 type: exitcode-stdio-1.0
203 type: exitcode-stdio-1.0
204 hs-source-dirs: test
204 hs-source-dirs: test
@@ -207,7 +207,7 @@ test-suite openapi-diff-test
207 Spec.Golden.Extra
207 Spec.Golden.Extra
208 Spec.Golden.TraceTree
208 Spec.Golden.TraceTree
209 build-depends:
209 build-depends:
210− , openapi-diff
210+ , comparest
211 , tasty-golden
211 , tasty-golden
212 , tasty
212 , tasty
213 , bytestring
213 , bytestring
default.nix+7−7
@@ -12,7 +12,7 @@ let
12 include = [
12 include = [
13 ./stack.yaml
13 ./stack.yaml
14 ./stack.yaml.lock
14 ./stack.yaml.lock
15− ./openapi-diff.cabal
15+ ./comparest.cabal
16 ];
16 ];
17 };
17 };
18
18
@@ -21,11 +21,11 @@ let
21 dontStrip = false;
21 dontStrip = false;
22 dontPatchELF = false;
22 dontPatchELF = false;
23 enableDeadCodeElimination = true;
23 enableDeadCodeElimination = true;
24− packages.openapi-diff.src = nix-filter {
24+ packages.comparest.src = nix-filter {
25 root = ./.;
25 root = ./.;
26 name = "compaREST-src";
26 name = "compaREST-src";
27 include = with nix-filter; [
27 include = with nix-filter; [
28− (./openapi-diff.cabal)
28+ (./comparest.cabal)
29 (inDirectory ./test)
29 (inDirectory ./test)
30 (inDirectory ./src)
30 (inDirectory ./src)
31 (inDirectory ./app)
31 (inDirectory ./app)
@@ -47,15 +47,15 @@ let
47
47
48 compaREST = pkgs.dockerTools.buildImage {
48 compaREST = pkgs.dockerTools.buildImage {
49 name = "compaREST";
49 name = "compaREST";
50− contents = [ (staticify "compaREST-static" hsPkgs.projectCross.musl64.hsPkgs.openapi-diff.components.exes.openapi-diff) ];
50+ contents = [ (staticify "compaREST-static" hsPkgs.projectCross.musl64.hsPkgs.comparest.components.exes.comparest) ];
51 config = {
51 config = {
52− Entrypoint = [ "/bin/openapi-diff" ];
52+ Entrypoint = [ "/bin/comparest" ];
53 };
53 };
54 };
54 };
55
55
56 compaRESTGithubAction =
56 compaRESTGithubAction =
57 let
57 let
58− action = staticify "compaREST-github-action-static" hsPkgs.projectCross.musl64.hsPkgs.openapi-diff.components.exes.comparest-github-action;
58+ action = staticify "compaREST-github-action-static" hsPkgs.projectCross.musl64.hsPkgs.comparest.components.exes.comparest-github-action;
59 wrapped = pkgs.runCommand "wrapped-compaREST-github-action" { buildInputs = [ pkgs.makeWrapper ]; } ''
59 wrapped = pkgs.runCommand "wrapped-compaREST-github-action" { buildInputs = [ pkgs.makeWrapper ]; } ''
60 makeWrapper ${action}/bin/comparest-github-action $out/bin/pre --add-flags "pre"
60 makeWrapper ${action}/bin/comparest-github-action $out/bin/pre --add-flags "pre"
61 makeWrapper ${action}/bin/comparest-github-action $out/bin/run --add-flags "run"
61 makeWrapper ${action}/bin/comparest-github-action $out/bin/run --add-flags "run"
@@ -68,4 +68,4 @@ let
68 };
68 };
69
69
70in
70in
71−{ inherit compaREST compaRESTGithubAction; }
71+{ inherit compaREST compaRESTGithubAction hsPkgs haskellNix; }
github-action/Main.hs+1−1
@@ -7,10 +7,10 @@ import Control.Monad.Freer
7import Control.Monad.Freer.Error
7import Control.Monad.Freer.Error
8import Control.Monad.Freer.GitHub
8import Control.Monad.Freer.GitHub
9import Control.Monad.Freer.Reader
9import Control.Monad.Freer.Reader
10+import Data.OpenApi.Compare.Run
10import Data.Text (Text)
11import Data.Text (Text)
11import qualified Data.Yaml.Aeson as Yaml
12import qualified Data.Yaml.Aeson as Yaml
12import qualified GitHub as GH
13import qualified GitHub as GH
13−import OpenAPI.Checker.Run
14import System.Environment
14import System.Environment
15import System.Envy (decodeEnv)
15import System.Envy (decodeEnv)
16import System.FilePath ((</>))
16import System.FilePath ((</>))
src/OpenAPI/Checker/Behavior.hs → src/Data/OpenApi/Compare/Behavior.hsrenamed+2−2
@@ -1,4 +1,4 @@
1−module OpenAPI.Checker.Behavior
1+module Data.OpenApi.Compare.Behavior
2 ( BehaviorLevel (..)
2 ( BehaviorLevel (..)
3 , Behavable (..)
3 , Behavable (..)
4 , IssueKind (..)
4 , IssueKind (..)
@@ -15,8 +15,8 @@ where
15
15
16import Data.Aeson
16import Data.Aeson
17import Data.Kind
17import Data.Kind
18+import Data.OpenApi.Compare.Paths
18import Data.Typeable
19import Data.Typeable
19−import OpenAPI.Checker.Paths
20import Text.Pandoc.Builder
20import Text.Pandoc.Builder
21
21
22-- | Kind
22-- | Kind
src/OpenAPI/Checker/Common.hs → src/Data/OpenApi/Compare/Common.hsrenamed+1−1
@@ -1,4 +1,4 @@
1−module OpenAPI.Checker.Common
1+module Data.OpenApi.Compare.Common
2 ( zipAll
2 ( zipAll
3 )
3 )
4where
4where
src/OpenAPI/Checker/Formula.hs → src/Data/OpenApi/Compare/Formula.hsrenamed+4−4
@@ -1,4 +1,4 @@
1−module OpenAPI.Checker.Formula
1+module Data.OpenApi.Compare.Formula
2 ( FormulaF
2 ( FormulaF
3 , VarRef
3 , VarRef
4 , variable
4 , variable
@@ -11,10 +11,10 @@ module OpenAPI.Checker.Formula
11 ) where
11 ) where
12
12
13import Data.Kind
13import Data.Kind
14−import Data.Monoid
15import qualified Data.List.NonEmpty as NE
14import qualified Data.List.NonEmpty as NE
16−import OpenAPI.Checker.Paths
15+import Data.Monoid
16+import Data.OpenApi.Compare.Paths
17−import qualified OpenAPI.Checker.PathsPrefixTree as P
17+import qualified Data.OpenApi.Compare.PathsPrefixTree as P
18
18
19type VarRef = Int
19type VarRef = Int
20
20
src/OpenAPI/Checker/Memo.hs → src/Data/OpenApi/Compare/Memo.hsrenamed+1−1
@@ -1,6 +1,6 @@
1{-# LANGUAGE AllowAmbiguousTypes #-}
1{-# LANGUAGE AllowAmbiguousTypes #-}
2-- | Utilities for effectfully memoizing other, more effectful functions.
2-- | Utilities for effectfully memoizing other, more effectful functions.
3−module OpenAPI.Checker.Memo
3+module Data.OpenApi.Compare.Memo
4 ( MonadMemo
4 ( MonadMemo
5 , MemoState
5 , MemoState
6 , runMemo
6 , runMemo
src/OpenAPI/Checker/Orphans.hs → src/Data/OpenApi/Compare/Orphans.hsrenamed+1−1
@@ -1,6 +1,6 @@
1{-# OPTIONS_GHC -Wno-orphans #-}
1{-# OPTIONS_GHC -Wno-orphans #-}
2
2
3−module OpenAPI.Checker.Orphans () where
3+module Data.OpenApi.Compare.Orphans () where
4
4
5import Control.Comonad.Env
5import Control.Comonad.Env
6import qualified Data.HashMap.Strict.InsOrd as IOHM
6import qualified Data.HashMap.Strict.InsOrd as IOHM
src/OpenAPI/Checker/Paths.hs → src/Data/OpenApi/Compare/Paths.hsrenamed+1−1
@@ -1,7 +1,7 @@
1-- | Utilities for traversing heterogeneous trees. A heterogeneous tree is a
1-- | Utilities for traversing heterogeneous trees. A heterogeneous tree is a
2-- collection of datatypes that "contain" eachother in some form of tree
2-- collection of datatypes that "contain" eachother in some form of tree
3-- structure.
3-- structure.
4−module OpenAPI.Checker.Paths
4+module Data.OpenApi.Compare.Paths
5 ( NiceQuiver
5 ( NiceQuiver
6 , AdditionalQuiverConstraints
6 , AdditionalQuiverConstraints
7 , Paths (..)
7 , Paths (..)
src/OpenAPI/Checker/PathsPrefixTree.hs → src/Data/OpenApi/Compare/PathsPrefixTree.hsrenamed+2−2
@@ -1,6 +1,6 @@
1{-# LANGUAGE QuantifiedConstraints #-}
1{-# LANGUAGE QuantifiedConstraints #-}
2
2
3−module OpenAPI.Checker.PathsPrefixTree
3+module Data.OpenApi.Compare.PathsPrefixTree
4 ( PathsPrefixTree (PathsPrefixNode)
4 ( PathsPrefixTree (PathsPrefixNode)
5 , AStep (..)
5 , AStep (..)
6 , empty
6 , empty
@@ -27,13 +27,13 @@ import qualified Data.HashMap.Strict as HM
27import Data.Kind
27import Data.Kind
28import qualified Data.Map as M
28import qualified Data.Map as M
29import Data.Monoid
29import Data.Monoid
30+import Data.OpenApi.Compare.Paths
30import qualified Data.Set as S
31import qualified Data.Set as S
31import qualified Data.Text as T
32import qualified Data.Text as T
32import Data.Type.Equality
33import Data.Type.Equality
33import qualified Data.TypeRepMap as TRM
34import qualified Data.TypeRepMap as TRM
34import qualified Data.Vector as V
35import qualified Data.Vector as V
35import qualified GHC.Exts as Exts
36import qualified GHC.Exts as Exts
36−import OpenAPI.Checker.Paths
37import Type.Reflection
37import Type.Reflection
38import Prelude hiding (filter, map, null, lookup)
38import Prelude hiding (filter, map, null, lookup)
39
39
src/OpenAPI/Checker/References.hs → src/Data/OpenApi/Compare/References.hsrenamed+3−3
@@ -1,6 +1,6 @@
1{-# OPTIONS_GHC -Wno-orphans #-}
1{-# OPTIONS_GHC -Wno-orphans #-}
2
2
3−module OpenAPI.Checker.References
3+module Data.OpenApi.Compare.References
4 ( Step (..)
4 ( Step (..)
5 , dereference
5 , dereference
6 , Typeable
6 , Typeable
@@ -11,9 +11,9 @@ import Data.HList
11import qualified Data.HashMap.Strict.InsOrd as IOHM
11import qualified Data.HashMap.Strict.InsOrd as IOHM
12import Data.Maybe
12import Data.Maybe
13import Data.OpenApi
13import Data.OpenApi
14+import Data.OpenApi.Compare.Orphans ()
15+import Data.OpenApi.Compare.Subtree
14import Data.Typeable
16import Data.Typeable
15−import OpenAPI.Checker.Orphans ()
16−import OpenAPI.Checker.Subtree
17
17
18instance Typeable a => Steppable (Referenced a) a where
18instance Typeable a => Steppable (Referenced a) a where
19 data Step (Referenced a) a = InlineStep
19 data Step (Referenced a) a = InlineStep
src/OpenAPI/Checker/Report.hs → src/Data/OpenApi/Compare/Report.hsrenamed+25−23
@@ -1,4 +1,4 @@
1−module OpenAPI.Checker.Report
1+module Data.OpenApi.Compare.Report
2 ( generateReport
2 ( generateReport
3 , CheckerOutput(..)
3 , CheckerOutput(..)
4 , ReportInput (..)
4 , ReportInput (..)
@@ -23,6 +23,15 @@ import qualified Data.Map as M
23import Data.Map.Ordered (OMap)
23import Data.Map.Ordered (OMap)
24import qualified Data.Map.Ordered as OM
24import qualified Data.Map.Ordered as OM
25import Data.Maybe
25import Data.Maybe
26+import Data.OpenApi.Compare.Behavior
27+import Data.OpenApi.Compare.Paths
28+import Data.OpenApi.Compare.PathsPrefixTree hiding (empty)
29+import qualified Data.OpenApi.Compare.PathsPrefixTree as P hiding (empty)
30+import Data.OpenApi.Compare.Report.Jet
31+import Data.OpenApi.Compare.Subtree (invertIssueOrientationP)
32+import Data.OpenApi.Compare.Validate.OpenApi
33+import Data.OpenApi.Compare.Validate.Schema.TypedJson
34+import Data.OpenApi.Compare.Validate.Schema.Issues
26import Data.OpenUnion
35import Data.OpenUnion
27import Data.OpenUnion.Extra
36import Data.OpenUnion.Extra
28import Data.Set
37import Data.Set
@@ -32,15 +41,6 @@ import qualified Data.Text as T
32import Data.TypeRepMap hiding (empty)
41import Data.TypeRepMap hiding (empty)
33import Data.Typeable
42import Data.Typeable
34import Generic.Data
43import Generic.Data
35−import OpenAPI.Checker.Behavior
36−import OpenAPI.Checker.Paths
37−import OpenAPI.Checker.PathsPrefixTree hiding (empty)
38−import qualified OpenAPI.Checker.PathsPrefixTree as P hiding (empty)
39−import OpenAPI.Checker.Report.Jet
40−import OpenAPI.Checker.Subtree (invertIssueOrientationP)
41−import OpenAPI.Checker.Validate.OpenApi
42−import OpenAPI.Checker.Validate.Schema.TypedJson
43−import OpenAPI.Checker.Validate.Schema.Issues
44import Text.Pandoc.Builder
44import Text.Pandoc.Builder
45
45
46type Changes = P.PathsPrefixTree Behave AnIssue 'APILevel
46type Changes = P.PathsPrefixTree Behave AnIssue 'APILevel
@@ -120,40 +120,42 @@ generateReport cfg inp =
120 <> twoRowTable
120 <> twoRowTable
121 (when'
121 (when'
122 schemaIssuesPresent
122 schemaIssuesPresent
123− [ ( refOpt schemaIssuesPresent schemaIssuesId "❌ Schema issues"
123+ [ ( refOpt schemaIssuesPresent schemaIssuesId "‼️ Schema issues"
124 , show' $ P.size $ schemaIssues inp
124 , show' $ P.size $ schemaIssues inp
125 )
125 )
126 ]
126 ]
127 ++
127 ++
128− [ ( refOpt breakingChangesPresent breakingChangesId "⚠️ Breaking changes"
128+ [ ( refOpt breakingChangesPresent breakingChangesId "❌ Breaking changes"
129 , show' $ P.size $ breakingChanges inp
129 , show' $ P.size $ breakingChanges inp
130 )
130 )
131 ]
131 ]
132 ++ when'
132 ++ when'
133 nonBreakingChangesShown
133 nonBreakingChangesShown
134− [ ( refOpt nonBreakingChangesPresent nonBreakingChangesId "🙆 Non-breaking changes"
134+ [ ( refOpt nonBreakingChangesPresent nonBreakingChangesId "⚠️ Non-breaking changes"
135 , show' $ P.size $ nonBreakingChanges inp
135 , show' $ P.size $ nonBreakingChanges inp
136 )
136 )
137 ]
137 ]
138+ ++ when'
139+ unsupportedChangesPresent
138− ++ [ ( refOpt unsupportedChangesPresent unsupportedChangesId "🤷 Unsupported feature changes"
140+ [ ( refOpt unsupportedChangesPresent unsupportedChangesId "❓ Unsupported feature changes"
139− , show' $ P.size $ unsupportedChanges inp
141+ , show' $ P.size $ unsupportedChanges inp
140− )
142+ )
141− ])
143+ ])
142 <> when'
144 <> when'
143 schemaIssuesPresent
145 schemaIssuesPresent
144− (header 1 (anchor schemaIssuesId <> "❌ Schema issues")
146+ (header 1 (anchor schemaIssuesId <> "‼️ Schema issues")
145 <> builder (showErrs $ schemaIssues inp))
147 <> builder (showErrs $ schemaIssues inp))
146 <> when'
148 <> when'
147 breakingChangesPresent
149 breakingChangesPresent
148− (header 1 (anchor breakingChangesId <> "⚠️ Breaking changes")
150+ (header 1 (anchor breakingChangesId <> "❌ Breaking changes")
149 <> builder (showErrs $ breakingChanges inp))
151 <> builder (showErrs $ breakingChanges inp))
150 <> when'
152 <> when'
151 (nonBreakingChangesPresent && nonBreakingChangesShown)
153 (nonBreakingChangesPresent && nonBreakingChangesShown)
152− (header 1 (anchor nonBreakingChangesId <> "🙆 Non-breaking changes")
154+ (header 1 (anchor nonBreakingChangesId <> "⚠️ Non-breaking changes")
153 <> builder (showErrs $ nonBreakingChanges inp))
155 <> builder (showErrs $ nonBreakingChanges inp))
154 <> when'
156 <> when'
155 unsupportedChangesPresent
157 unsupportedChangesPresent
156− (header 1 (anchor unsupportedChangesId <> "🤷 Unsupported feature changes")
158+ (header 1 (anchor unsupportedChangesId <> "❓ Unsupported feature changes")
157 <> builder (showErrs $ unsupportedChanges inp))
159 <> builder (showErrs $ unsupportedChanges inp))
158 status =
160 status =
159 if
161 if
@@ -239,8 +241,8 @@ jets =
239 , constructReportJet $ \p@(AtPath _) op@(InOperation _) ->
241 , constructReportJet $ \p@(AtPath _) op@(InOperation _) ->
240 strong (describeBehavior op) <> " " <> describeBehavior p :: Inlines
242 strong (describeBehavior op) <> " " <> describeBehavior p :: Inlines
241 , constructReportJet $ \(WithStatusCode c) ResponsePayload PayloadSchema ->
243 , constructReportJet $ \(WithStatusCode c) ResponsePayload PayloadSchema ->
242− "📱⬅️ JSON Response – " <> str (T.pack . show $ c) :: Inlines
244+ "⬅️☁️ JSON Response – " <> str (T.pack . show $ c) :: Inlines
243− , constructReportJet $ \InRequest InPayload PayloadSchema -> "📱➡️ JSON Request" :: Inlines
245+ , constructReportJet $ \InRequest InPayload PayloadSchema -> "➡️☁️ JSON Request" :: Inlines
244 ]
246 ]
245 where
247 where
246 unwrapReportJetResult :: ReportJetResult Behave x -> ReportJet' Behave x
248 unwrapReportJetResult :: ReportJetResult Behave x -> ReportJet' Behave x
src/OpenAPI/Checker/Report/Html/Template.hs → src/Data/OpenApi/Compare/Report/Html/Template.hsrenamed+3−3
@@ -1,6 +1,6 @@
1{-# LANGUAGE TemplateHaskell #-}
1{-# LANGUAGE TemplateHaskell #-}
2
2
3−module OpenAPI.Checker.Report.Html.Template
3+module Data.OpenApi.Compare.Report.Html.Template
4 ( template
4 ( template
5 )
5 )
6where
6where
@@ -24,11 +24,11 @@ template =
24 \<meta charset=\"utf-8\">\
24 \<meta charset=\"utf-8\">\
25 \<title></title>\
25 \<title></title>\
26 \<meta name=\"description\" content=\"\">\
26 \<meta name=\"description\" content=\"\">\
27− \<meta name=\"generator\" content=\"OpenApi Diff\" />\
27+ \<meta name=\"generator\" content=\"CompaREST\" />\
28 \<meta name=\"viewport\" content=\"width=device-width, initial-scale=1.0, user-scalable=yes\" />\
28 \<meta name=\"viewport\" content=\"width=device-width, initial-scale=1.0, user-scalable=yes\" />\
29 \</head>\
29 \</head>\
30 \<body>\
30 \<body>\
31− \<header><h1>⛄ OpenApi Diff</h1></header>\
31+ \<header><h1>CompaREST</h1></header>\
32 \<main>\
32 \<main>\
33 \$body$\
33 \$body$\
34 \</main>\
34 \</main>\
src/OpenAPI/Checker/Report/Jet.hs → src/Data/OpenApi/Compare/Report/Jet.hsrenamed+1−1
@@ -1,4 +1,4 @@
1−module OpenAPI.Checker.Report.Jet
1+module Data.OpenApi.Compare.Report.Jet
2 ( ReportJet (..)
2 ( ReportJet (..)
3 , ReportJet'
3 , ReportJet'
4 , ConstructReportJet (..)
4 , ConstructReportJet (..)
src/OpenAPI/Checker/Run.hs → src/Data/OpenApi/Compare/Run.hsrenamed+6−6
@@ -1,17 +1,17 @@
1−module OpenAPI.Checker.Run
1+module Data.OpenApi.Compare.Run
2 ( runChecker
2 ( runChecker
3 , runReport
3 , runReport
4− , module OpenAPI.Checker.Report
4+ , module Data.OpenApi.Compare.Report
5 )
5 )
6where
6where
7
7
8import Data.HList
8import Data.HList
9import Data.OpenApi (OpenApi)
9import Data.OpenApi (OpenApi)
10−import OpenAPI.Checker.Paths
11−import OpenAPI.Checker.Report
12−import OpenAPI.Checker.Subtree
13−import OpenAPI.Checker.Validate.OpenApi ()
14import Text.Pandoc.Builder
10import Text.Pandoc.Builder
11+import Data.OpenApi.Compare.Paths
12+import Data.OpenApi.Compare.Report
13+import Data.OpenApi.Compare.Subtree
14+import Data.OpenApi.Compare.Validate.OpenApi ()
15
15
16runChecker :: (OpenApi, OpenApi) -> CheckerOutput
16runChecker :: (OpenApi, OpenApi) -> CheckerOutput
17runChecker (client, server) =
17runChecker (client, server) =
src/OpenAPI/Checker/Subtree.hs → src/Data/OpenApi/Compare/Subtree.hsrenamed+6−6
@@ -1,6 +1,6 @@
1{-# OPTIONS_GHC -Wno-orphans #-}
1{-# OPTIONS_GHC -Wno-orphans #-}
2
2
3−module OpenAPI.Checker.Subtree
3+module Data.OpenApi.Compare.Subtree
4 ( Steppable (..)
4 ( Steppable (..)
5 , Step (..)
5 , Step (..)
6 , TraceRoot
6 , TraceRoot
@@ -60,13 +60,13 @@ import qualified Data.HashMap.Strict.InsOrd as IOHM
60import Data.Hashable
60import Data.Hashable
61import Data.Kind
61import Data.Kind
62import Data.OpenApi
62import Data.OpenApi
63+import Data.OpenApi.Compare.Behavior
64+import Data.OpenApi.Compare.Formula
65+import Data.OpenApi.Compare.Memo
66+import Data.OpenApi.Compare.Paths
67+import qualified Data.OpenApi.Compare.PathsPrefixTree as P
63import qualified Data.Set as S
68import qualified Data.Set as S
64import Data.Typeable
69import Data.Typeable
65−import OpenAPI.Checker.Behavior
66−import OpenAPI.Checker.Formula
67−import OpenAPI.Checker.Memo
68−import OpenAPI.Checker.Paths
69−import qualified OpenAPI.Checker.PathsPrefixTree as P
70
70
71class
71class
72 (Typeable Step, Typeable a, Typeable b, Ord (Step a b), Show (Step a b)) =>
72 (Typeable Step, Typeable a, Typeable b, Ord (Step a b), Show (Step a b)) =>
src/OpenAPI/Checker/Validate/Header.hs → src/Data/OpenApi/Compare/Validate/Header.hsrenamed+5−5
@@ -1,6 +1,6 @@
1{-# OPTIONS_GHC -Wno-orphans #-}
1{-# OPTIONS_GHC -Wno-orphans #-}
2
2
3−module OpenAPI.Checker.Validate.Header
3+module Data.OpenApi.Compare.Validate.Header
4 (
4 (
5 )
5 )
6where
6where
@@ -9,10 +9,10 @@ import Data.Foldable
9import Data.Functor
9import Data.Functor
10import Data.Maybe
10import Data.Maybe
11import Data.OpenApi
11import Data.OpenApi
12−import OpenAPI.Checker.Behavior
12+import Data.OpenApi.Compare.Behavior
13−import OpenAPI.Checker.References ()
13+import Data.OpenApi.Compare.References ()
14−import OpenAPI.Checker.Subtree
14+import Data.OpenApi.Compare.Subtree
15−import OpenAPI.Checker.Validate.Schema ()
15+import Data.OpenApi.Compare.Validate.Schema ()
16import Text.Pandoc.Builder
16import Text.Pandoc.Builder
17
17
18instance Subtree Header where
18instance Subtree Header where
src/OpenAPI/Checker/Validate/Link.hs → src/Data/OpenApi/Compare/Validate/Link.hsrenamed+4−4
@@ -1,10 +1,10 @@
1{-# OPTIONS_GHC -Wno-orphans #-}
1{-# OPTIONS_GHC -Wno-orphans #-}
2
2
3−module OpenAPI.Checker.Validate.Link () where
3+module Data.OpenApi.Compare.Validate.Link () where
4
4
5import Data.OpenApi
5import Data.OpenApi
6−import OpenAPI.Checker.Behavior
6+import Data.OpenApi.Compare.Behavior
7−import OpenAPI.Checker.Subtree
7+import Data.OpenApi.Compare.Subtree
8import Text.Pandoc.Builder
8import Text.Pandoc.Builder
9
9
10instance Subtree Link where
10instance Subtree Link where
@@ -19,4 +19,4 @@ instance Issuable 'LinkLevel where
19 deriving stock (Eq, Ord, Show)
19 deriving stock (Eq, Ord, Show)
20 issueKind = \case
20 issueKind = \case
21 LinksUnsupported -> Unsupported
21 LinksUnsupported -> Unsupported
22− describeIssue _ LinksUnsupported = para "OpenApi Diff does not currently support Link Objects."
22+ describeIssue _ LinksUnsupported = para "CompaREST does not currently support Link Objects."
src/OpenAPI/Checker/Validate/MediaTypeObject.hs → src/Data/OpenApi/Compare/Validate/MediaTypeObject.hsrenamed+8−8
@@ -1,6 +1,6 @@
1{-# OPTIONS_GHC -Wno-orphans #-}
1{-# OPTIONS_GHC -Wno-orphans #-}
2
2
3−module OpenAPI.Checker.Validate.MediaTypeObject
3+module Data.OpenApi.Compare.Validate.MediaTypeObject
4 ( Issue (..)
4 ( Issue (..)
5 , Behave (..)
5 , Behave (..)
6 )
6 )
@@ -12,15 +12,15 @@ import Data.HList
12import Data.HashMap.Strict.InsOrd as IOHM
12import Data.HashMap.Strict.InsOrd as IOHM
13import Data.Map.Strict as M
13import Data.Map.Strict as M
14import Data.OpenApi
14import Data.OpenApi
15+import Data.OpenApi.Compare.Behavior
16+import Data.OpenApi.Compare.Subtree
17+import Data.OpenApi.Compare.Validate.Header ()
18+import Data.OpenApi.Compare.Validate.Products
19+import Data.OpenApi.Compare.Validate.Schema ()
15import Data.String
20import Data.String
16import Data.Text (Text)
21import Data.Text (Text)
17import qualified Data.Text as T
22import qualified Data.Text as T
18import Network.HTTP.Media (MediaType, mainType, subType)
23import Network.HTTP.Media (MediaType, mainType, subType)
19−import OpenAPI.Checker.Behavior
20−import OpenAPI.Checker.Subtree
21−import OpenAPI.Checker.Validate.Header ()
22−import OpenAPI.Checker.Validate.Products
23−import OpenAPI.Checker.Validate.Schema ()
24import Text.Pandoc.Builder
24import Text.Pandoc.Builder
25
25
26tracedSchema :: Traced MediaTypeObject -> Maybe (Traced (Referenced Schema))
26tracedSchema :: Traced MediaTypeObject -> Maybe (Traced (Referenced Schema))
@@ -45,7 +45,7 @@ instance Issuable 'PayloadLevel where
45 describeIssue _ MediaTypeSchemaRequired = para "Media type expected, but was not specified."
45 describeIssue _ MediaTypeSchemaRequired = para "Media type expected, but was not specified."
46 describeIssue Forward (MediaEncodingMissing enc) = para $ "Media encoding " <> str enc <> " has been removed."
46 describeIssue Forward (MediaEncodingMissing enc) = para $ "Media encoding " <> str enc <> " has been removed."
47 describeIssue Backward (MediaEncodingMissing enc) = para $ "Media encoding " <> str enc <> " added."
47 describeIssue Backward (MediaEncodingMissing enc) = para $ "Media encoding " <> str enc <> " added."
48− describeIssue _ EncodingNotSupported = para "OpenApi Diff does not currently support media encodings other than JSON."
48+ describeIssue _ EncodingNotSupported = para "CompaREST does not currently support media encodings other than JSON."
49
49
50instance Behavable 'PayloadLevel 'SchemaLevel where
50instance Behavable 'PayloadLevel 'SchemaLevel where
51 data Behave 'PayloadLevel 'SchemaLevel
51 data Behave 'PayloadLevel 'SchemaLevel
@@ -119,7 +119,7 @@ instance Subtree Encoding where
119
119
120 -- FIXME: Support only JSON body for now. Then Encoding is checked only for
120 -- FIXME: Support only JSON body for now. Then Encoding is checked only for
121 -- multipart/form-url-encoded
121 -- multipart/form-url-encoded
122− -- https://github.com/typeable/openapi-diff/issues/54
122+ -- #54
123 checkSemanticCompatibility _env beh _pc =
123 checkSemanticCompatibility _env beh _pc =
124 issueAt beh EncodingNotSupported
124 issueAt beh EncodingNotSupported
125
125
src/OpenAPI/Checker/Validate/OAuth2Flows.hs → src/Data/OpenApi/Compare/Validate/OAuth2Flows.hsrenamed+4−4
@@ -1,6 +1,6 @@
1{-# OPTIONS_GHC -Wno-orphans #-}
1{-# OPTIONS_GHC -Wno-orphans #-}
2
2
3−module OpenAPI.Checker.Validate.OAuth2Flows
3+module Data.OpenApi.Compare.Validate.OAuth2Flows
4 ( Step (..)
4 ( Step (..)
5 , Issue (..)
5 , Issue (..)
6 , Behave (..)
6 , Behave (..)
@@ -12,13 +12,13 @@ import Data.Function
12import Data.Functor
12import Data.Functor
13import qualified Data.HashMap.Strict.InsOrd as IOHM
13import qualified Data.HashMap.Strict.InsOrd as IOHM
14import Data.OpenApi
14import Data.OpenApi
15+import Data.OpenApi.Compare.Behavior
16+import Data.OpenApi.Compare.Orphans ()
17+import Data.OpenApi.Compare.Subtree
15import Data.Proxy
18import Data.Proxy
16import Data.Set (Set)
19import Data.Set (Set)
17import qualified Data.Set as S
20import qualified Data.Set as S
18import Data.Text (Text)
21import Data.Text (Text)
19−import OpenAPI.Checker.Behavior
20−import OpenAPI.Checker.Orphans ()
21−import OpenAPI.Checker.Subtree
22import Text.Pandoc.Builder
22import Text.Pandoc.Builder
23
23
24instance Subtree OAuth2Flows where
24instance Subtree OAuth2Flows where
src/OpenAPI/Checker/Validate/OpenApi.hs → src/Data/OpenApi/Compare/Validate/OpenApi.hsrenamed+5−5
@@ -2,7 +2,7 @@
2-- Does not compiles otherwise
2-- Does not compiles otherwise
3{-# OPTIONS_GHC -fconstraint-solver-iterations=0 #-}
3{-# OPTIONS_GHC -fconstraint-solver-iterations=0 #-}
4
4
5−module OpenAPI.Checker.Validate.OpenApi
5+module Data.OpenApi.Compare.Validate.OpenApi
6 ( Behave (..)
6 ( Behave (..)
7 , Issue (..)
7 , Issue (..)
8 )
8 )
@@ -11,10 +11,10 @@ where
11import Data.HList
11import Data.HList
12import qualified Data.HashMap.Strict.InsOrd as IOHM
12import qualified Data.HashMap.Strict.InsOrd as IOHM
13import Data.OpenApi
13import Data.OpenApi
14−import OpenAPI.Checker.Behavior
14+import Data.OpenApi.Compare.Behavior
15−import OpenAPI.Checker.Paths
15+import Data.OpenApi.Compare.Paths
16−import OpenAPI.Checker.Subtree
16+import Data.OpenApi.Compare.Subtree
17−import OpenAPI.Checker.Validate.Operation
17+import Data.OpenApi.Compare.Validate.Operation
18
18
19tracedPaths :: Traced OpenApi -> Traced ProcessedPathItems
19tracedPaths :: Traced OpenApi -> Traced ProcessedPathItems
20tracedPaths oa =
20tracedPaths oa =
src/OpenAPI/Checker/Validate/Operation.hs → src/Data/OpenApi/Compare/Validate/Operation.hsrenamed+17−17
@@ -2,7 +2,7 @@
2{-# OPTIONS_GHC -Wno-orphans #-}
2{-# OPTIONS_GHC -Wno-orphans #-}
3{-# OPTIONS_GHC -fconstraint-solver-iterations=0 #-}
3{-# OPTIONS_GHC -fconstraint-solver-iterations=0 #-}
4
4
5−module OpenAPI.Checker.Validate.Operation
5+module Data.OpenApi.Compare.Validate.Operation
6 ( -- * Operation
6 ( -- * Operation
7 MatchedOperation (..)
7 MatchedOperation (..)
8 , OperationMethod (..)
8 , OperationMethod (..)
@@ -29,21 +29,21 @@ import qualified Data.List as L
29import Data.Map.Strict as M
29import Data.Map.Strict as M
30import Data.Maybe
30import Data.Maybe
31import Data.OpenApi
31import Data.OpenApi
32+import Data.OpenApi.Compare.Behavior
33+import Data.OpenApi.Compare.References
34+import Data.OpenApi.Compare.Subtree
35+import Data.OpenApi.Compare.Validate.MediaTypeObject
36+import Data.OpenApi.Compare.Validate.OAuth2Flows
37+import Data.OpenApi.Compare.Validate.PathFragment
38+import Data.OpenApi.Compare.Validate.Products
39+import Data.OpenApi.Compare.Validate.RequestBody
40+import Data.OpenApi.Compare.Validate.Responses
41+import Data.OpenApi.Compare.Validate.SecurityRequirement ()
42+import Data.OpenApi.Compare.Validate.Server ()
43+import Data.OpenApi.Compare.Validate.Sums
32import Data.String
44import Data.String
33import Data.Text (Text)
45import Data.Text (Text)
34import qualified Data.Text as T
46import qualified Data.Text as T
35−import OpenAPI.Checker.Behavior
36−import OpenAPI.Checker.References
37−import OpenAPI.Checker.Subtree
38−import OpenAPI.Checker.Validate.MediaTypeObject
39−import OpenAPI.Checker.Validate.OAuth2Flows
40−import OpenAPI.Checker.Validate.PathFragment
41−import OpenAPI.Checker.Validate.Products
42−import OpenAPI.Checker.Validate.RequestBody
43−import OpenAPI.Checker.Validate.Responses
44−import OpenAPI.Checker.Validate.SecurityRequirement ()
45−import OpenAPI.Checker.Validate.Server ()
46−import OpenAPI.Checker.Validate.Sums
47import Text.Pandoc.Builder
47import Text.Pandoc.Builder
48
48
49data MatchedOperation = MatchedOperation
49data MatchedOperation = MatchedOperation
@@ -86,7 +86,7 @@ tracedCallbacks (Traced t oper) =
86 | (k, v) <- IOHM.toList . _operationCallbacks . operation $ oper
86 | (k, v) <- IOHM.toList . _operationCallbacks . operation $ oper
87 ]
87 ]
88
88
89−-- FIXME: https://github.com/typeable/openapi-diff/issues/28
89+-- FIXME: #28
90getServers
90getServers
91 :: [Server] -- ^ Servers from env
91 :: [Server] -- ^ Servers from env
92 -> MatchedOperation
92 -> MatchedOperation
@@ -241,7 +241,7 @@ instance Subtree MatchedOperation where
241 checkProducts beh (const NoRequestBody) (const check) elements
241 checkProducts beh (const NoRequestBody) (const check) elements
242 checkResponses =
242 checkResponses =
243 swapProdCons (checkCompatibility beh) env $ tracedResponses <$> prodCons
243 swapProdCons (checkCompatibility beh) env $ tracedResponses <$> prodCons
244− -- FIXME: https://github.com/typeable/openapi-diff/issues/27
244+ -- FIXME: #27
245 checkCallbacks = do
245 checkCallbacks = do
246 let ProdCons pCallbacks cCallbacks = tracedCallbacks <$> prodCons
246 let ProdCons pCallbacks cCallbacks = tracedCallbacks <$> prodCons
247 for_ pCallbacks $ \(k, pCallback) -> do
247 for_ pCallbacks $ \(k, pCallback) -> do
@@ -250,7 +250,7 @@ instance Subtree MatchedOperation where
250 cCallbacks <&> \(_, cCallback) -> do
250 cCallbacks <&> \(_, cCallback) -> do
251 swapProdCons (checkCompatibility beh') env $ ProdCons pCallback cCallback
251 swapProdCons (checkCompatibility beh') env $ ProdCons pCallback cCallback
252 pure ()
252 pure ()
253− -- FIXME: https://github.com/typeable/openapi-diff/issues/28
253+ -- FIXME: #28
254 checkOperationSecurity = do
254 checkOperationSecurity = do
255 let ProdCons pSecs cSecs = tracedSecurity <$> prodCons
255 let ProdCons pSecs cSecs = tracedSecurity <$> prodCons
256 for_ pSecs $ \(i, pSec) -> do
256 for_ pSecs $ \(i, pSec) -> do
@@ -564,7 +564,7 @@ instance Issuable 'CallbackLevel where
564 deriving stock (Eq, Ord, Show)
564 deriving stock (Eq, Ord, Show)
565 issueKind = \case
565 issueKind = \case
566 CallbacksUnsupported -> Unsupported
566 CallbacksUnsupported -> Unsupported
567− describeIssue _ CallbacksUnsupported = para "OpenApi Diff does not currently support callbacks."
567+ describeIssue _ CallbacksUnsupported = para "CompaREST does not currently support callbacks."
568
568
569tracedCallbackPathItems :: Traced Callback -> Traced ProcessedPathItems
569tracedCallbackPathItems :: Traced Callback -> Traced ProcessedPathItems
570tracedCallbackPathItems (Traced t (Callback x)) =
570tracedCallbackPathItems (Traced t (Callback x)) =
src/OpenAPI/Checker/Validate/Param.hs → src/Data/OpenApi/Compare/Validate/Param.hsrenamed+5−5
@@ -1,7 +1,7 @@
1{-# OPTIONS_GHC -Wno-orphans #-}
1{-# OPTIONS_GHC -Wno-orphans #-}
2{-# OPTIONS_GHC -fno-warn-name-shadowing #-}
2{-# OPTIONS_GHC -fno-warn-name-shadowing #-}
3
3
4−module OpenAPI.Checker.Validate.Param
4+module Data.OpenApi.Compare.Validate.Param
5 ( Behave (..)
5 ( Behave (..)
6 , Issue (..)
6 , Issue (..)
7 )
7 )
@@ -11,11 +11,11 @@ import Control.Monad
11import Data.Functor
11import Data.Functor
12import Data.Maybe
12import Data.Maybe
13import Data.OpenApi
13import Data.OpenApi
14+import Data.OpenApi.Compare.Behavior
15+import Data.OpenApi.Compare.Orphans ()
16+import Data.OpenApi.Compare.Subtree
17+import Data.OpenApi.Compare.Validate.Schema ()
14import Data.Text as T
18import Data.Text as T
15−import OpenAPI.Checker.Behavior
16−import OpenAPI.Checker.Orphans ()
17−import OpenAPI.Checker.Subtree
18−import OpenAPI.Checker.Validate.Schema ()
19import Text.Pandoc.Builder
19import Text.Pandoc.Builder
20
20
21-- | The type is normalized encoding style of the parameter. If two encoding
21-- | The type is normalized encoding style of the parameter. If two encoding
src/OpenAPI/Checker/Validate/PathFragment.hs → src/Data/OpenApi/Compare/Validate/PathFragment.hsrenamed+5−5
@@ -1,4 +1,4 @@
1−module OpenAPI.Checker.Validate.PathFragment
1+module Data.OpenApi.Compare.Validate.PathFragment
2 ( parsePath
2 ( parsePath
3 , PathFragment (..)
3 , PathFragment (..)
4 , PathFragmentParam
4 , PathFragmentParam
@@ -7,15 +7,15 @@ where
7
7
8import qualified Data.Aeson as A
8import qualified Data.Aeson as A
9import Data.OpenApi
9import Data.OpenApi
10+import Data.OpenApi.Compare.Behavior
11+import Data.OpenApi.Compare.Subtree
12+import Data.OpenApi.Compare.Validate.Param
10import Data.Text (Text)
13import Data.Text (Text)
11import qualified Data.Text as T
14import qualified Data.Text as T
12import Data.Typeable
15import Data.Typeable
13−import OpenAPI.Checker.Behavior
14−import OpenAPI.Checker.Subtree
15−import OpenAPI.Checker.Validate.Param
16
16
17-- TODO: templates can be only part of the PathFragment. Currently only supports templates as full PathFragment.
17-- TODO: templates can be only part of the PathFragment. Currently only supports templates as full PathFragment.
18−-- https://github.com/typeable/openapi-diff/issues/23
18+-- #23
19parsePath :: FilePath -> [PathFragment Text]
19parsePath :: FilePath -> [PathFragment Text]
20parsePath = fmap partition . T.splitOn "/" . T.pack
20parsePath = fmap partition . T.splitOn "/" . T.pack
21 where
21 where
src/OpenAPI/Checker/Validate/Products.hs → src/Data/OpenApi/Compare/Validate/Products.hsrenamed+4−4
@@ -12,7 +12,7 @@ and their schemas match.
12
12
13This module abstracts this logic for arbitrary elements -}
13This module abstracts this logic for arbitrary elements -}
14
14
15−module OpenAPI.Checker.Validate.Products
15+module Data.OpenApi.Compare.Validate.Products
16 ( checkProducts
16 ( checkProducts
17 , ProductLike(..)
17 , ProductLike(..)
18 ) where
18 ) where
@@ -20,9 +20,9 @@ module OpenAPI.Checker.Validate.Products
20import Data.Foldable
20import Data.Foldable
21import Data.Map.Strict (Map)
21import Data.Map.Strict (Map)
22import qualified Data.Map.Strict as M
22import qualified Data.Map.Strict as M
23−import OpenAPI.Checker.Behavior
23+import Data.OpenApi.Compare.Behavior
24−import OpenAPI.Checker.Paths
24+import Data.OpenApi.Compare.Paths
25−import OpenAPI.Checker.Subtree
25+import Data.OpenApi.Compare.Subtree
26
26
27-- | Some entity which is product-like
27-- | Some entity which is product-like
28data ProductLike a = ProductLike
28data ProductLike a = ProductLike
src/OpenAPI/Checker/Validate/RequestBody.hs → src/Data/OpenApi/Compare/Validate/RequestBody.hsrenamed+5−5
@@ -1,6 +1,6 @@
1{-# OPTIONS_GHC -Wno-orphans #-}
1{-# OPTIONS_GHC -Wno-orphans #-}
2
2
3−module OpenAPI.Checker.Validate.RequestBody
3+module Data.OpenApi.Compare.Validate.RequestBody
4 ( Issue (..)
4 ( Issue (..)
5 , Behave (..)
5 , Behave (..)
6 )
6 )
@@ -11,12 +11,12 @@ import Data.HashMap.Strict.InsOrd as IOHM
11import Data.Map.Strict as M
11import Data.Map.Strict as M
12import Data.Maybe
12import Data.Maybe
13import Data.OpenApi
13import Data.OpenApi
14+import Data.OpenApi.Compare.Behavior
15+import Data.OpenApi.Compare.Subtree
16+import Data.OpenApi.Compare.Validate.MediaTypeObject
17+import Data.OpenApi.Compare.Validate.Sums
14import qualified Data.Text as T
18import qualified Data.Text as T
15import Network.HTTP.Media (MediaType)
19import Network.HTTP.Media (MediaType)
16−import OpenAPI.Checker.Behavior
17−import OpenAPI.Checker.Subtree
18−import OpenAPI.Checker.Validate.MediaTypeObject
19−import OpenAPI.Checker.Validate.Sums
20import Text.Pandoc.Builder
20import Text.Pandoc.Builder
21
21
22-- TODO: Use RequestMediaTypeObjectMapping
22-- TODO: Use RequestMediaTypeObjectMapping
src/OpenAPI/Checker/Validate/Responses.hs → src/Data/OpenApi/Compare/Validate/Responses.hsrenamed+10−10
@@ -1,7 +1,7 @@
1{-# OPTIONS_GHC -Wno-orphans #-}
1{-# OPTIONS_GHC -Wno-orphans #-}
2{-# OPTIONS_GHC -fno-warn-name-shadowing #-}
2{-# OPTIONS_GHC -fno-warn-name-shadowing #-}
3
3
4−module OpenAPI.Checker.Validate.Responses
4+module Data.OpenApi.Compare.Validate.Responses
5 ( Behave (..)
5 ( Behave (..)
6 )
6 )
7where
7where
@@ -11,17 +11,17 @@ import Data.HashMap.Strict.InsOrd as IOHM
11import Data.Map.Strict as M
11import Data.Map.Strict as M
12import Data.Maybe
12import Data.Maybe
13import Data.OpenApi
13import Data.OpenApi
14+import Data.OpenApi.Compare.Behavior
15+import Data.OpenApi.Compare.References
16+import Data.OpenApi.Compare.Subtree
17+import Data.OpenApi.Compare.Validate.Header ()
18+import Data.OpenApi.Compare.Validate.Link ()
19+import Data.OpenApi.Compare.Validate.MediaTypeObject
20+import Data.OpenApi.Compare.Validate.Products
21+import Data.OpenApi.Compare.Validate.Schema ()
22+import Data.OpenApi.Compare.Validate.Sums
14import qualified Data.Text as T
23import qualified Data.Text as T
15import Network.HTTP.Media (MediaType)
24import Network.HTTP.Media (MediaType)
16−import OpenAPI.Checker.Behavior
17−import OpenAPI.Checker.References
18−import OpenAPI.Checker.Subtree
19−import OpenAPI.Checker.Validate.Header ()
20−import OpenAPI.Checker.Validate.Link ()
21−import OpenAPI.Checker.Validate.MediaTypeObject
22−import OpenAPI.Checker.Validate.Products
23−import OpenAPI.Checker.Validate.Schema ()
24−import OpenAPI.Checker.Validate.Sums
25import Text.Pandoc.Builder
25import Text.Pandoc.Builder
26
26
27tracedResponses :: Traced Responses -> IOHM.InsOrdHashMap HttpStatusCode (Traced (Referenced Response))
27tracedResponses :: Traced Responses -> IOHM.InsOrdHashMap HttpStatusCode (Traced (Referenced Response))
src/OpenAPI/Checker/Validate/Schema.hs → src/Data/OpenApi/Compare/Validate/Schema.hsrenamed+12−12
@@ -1,5 +1,5 @@
1{-# OPTIONS_GHC -Wno-orphans #-}
1{-# OPTIONS_GHC -Wno-orphans #-}
2−module OpenAPI.Checker.Validate.Schema
2+module Data.OpenApi.Compare.Validate.Schema
3 (
3 (
4 )
4 )
5where
5where
@@ -15,22 +15,22 @@ import qualified Data.Map as M
15import Data.List (group, genericLength, genericIndex)
15import Data.List (group, genericLength, genericIndex)
16import Data.Maybe
16import Data.Maybe
17import Data.OpenApi
17import Data.OpenApi
18+import Data.OpenApi.Compare.Behavior
19+import Data.OpenApi.Compare.Paths
20+import qualified Data.OpenApi.Compare.PathsPrefixTree as P
21+import Data.OpenApi.Compare.Subtree
22+import Data.OpenApi.Compare.Validate.Schema.DNF
23+import Data.OpenApi.Compare.Validate.Schema.Issues
24+import Data.OpenApi.Compare.Validate.Schema.JsonFormula
25+import Data.OpenApi.Compare.Validate.Schema.Traced
26+import Data.OpenApi.Compare.Validate.Schema.TypedJson
27+import Data.OpenApi.Compare.Validate.Schema.Partition
28+import Data.OpenApi.Compare.Validate.Schema.Process
18import Data.Ord
29import Data.Ord
19import Data.Ratio
30import Data.Ratio
20import Data.Semigroup
31import Data.Semigroup
21import qualified Data.Set as S
32import qualified Data.Set as S
22import Data.Text (Text)
33import Data.Text (Text)
23−import OpenAPI.Checker.Behavior
24−import OpenAPI.Checker.Paths
25−import qualified OpenAPI.Checker.PathsPrefixTree as P
26−import OpenAPI.Checker.Subtree
27−import OpenAPI.Checker.Validate.Schema.DNF
28−import OpenAPI.Checker.Validate.Schema.Issues
29−import OpenAPI.Checker.Validate.Schema.JsonFormula
30−import OpenAPI.Checker.Validate.Schema.Traced
31−import OpenAPI.Checker.Validate.Schema.TypedJson
32−import OpenAPI.Checker.Validate.Schema.Partition
33−import OpenAPI.Checker.Validate.Schema.Process
34
34
35checkFormulas
35checkFormulas
36 :: (ReassembleHList xs (CheckEnv (Referenced Schema)))
36 :: (ReassembleHList xs (CheckEnv (Referenced Schema)))
src/OpenAPI/Checker/Validate/Schema/DNF.hs → src/Data/OpenApi/Compare/Validate/Schema/DNF.hsrenamed+1−1
@@ -1,4 +1,4 @@
1−module OpenAPI.Checker.Validate.Schema.DNF
1+module Data.OpenApi.Compare.Validate.Schema.DNF
2 ( DNF (..)
2 ( DNF (..)
3 , Disjunct (..)
3 , Disjunct (..)
4 , pattern SingleDisjunct
4 , pattern SingleDisjunct
src/OpenAPI/Checker/Validate/Schema/Issues.hs → src/Data/OpenApi/Compare/Validate/Schema/Issues.hsrenamed+8−8
@@ -1,6 +1,6 @@
1{-# OPTIONS_GHC -Wno-orphans #-}
1{-# OPTIONS_GHC -Wno-orphans #-}
2
2
3−module OpenAPI.Checker.Validate.Schema.Issues
3+module Data.OpenApi.Compare.Validate.Schema.Issues
4 ( Issue (..)
4 ( Issue (..)
5 , Behave (..)
5 , Behave (..)
6 )
6 )
@@ -8,14 +8,14 @@ where
8
8
9import qualified Data.Aeson as A
9import qualified Data.Aeson as A
10import Data.OpenApi
10import Data.OpenApi
11+import Data.OpenApi.Compare.Behavior
12+import Data.OpenApi.Compare.Subtree
13+import Data.OpenApi.Compare.Validate.Schema.JsonFormula
14+import Data.OpenApi.Compare.Validate.Schema.Partition
15+import Data.OpenApi.Compare.Validate.Schema.TypedJson
11import Data.Scientific
16import Data.Scientific
12import Data.Text (Text)
17import Data.Text (Text)
13import qualified Data.Text as T
18import qualified Data.Text as T
14−import OpenAPI.Checker.Behavior
15−import OpenAPI.Checker.Subtree
16−import OpenAPI.Checker.Validate.Schema.JsonFormula
17−import OpenAPI.Checker.Validate.Schema.Partition
18−import OpenAPI.Checker.Validate.Schema.TypedJson
19import Text.Pandoc.Builder hiding (Format, Null)
19import Text.Pandoc.Builder hiding (Format, Null)
20
20
21instance Issuable 'TypedSchemaLevel where
21instance Issuable 'TypedSchemaLevel where
@@ -263,7 +263,7 @@ instance Issuable 'SchemaLevel where
263 UnexpectedProperty -> Just ()
263 UnexpectedProperty -> Just ()
264 _ -> Nothing
264 _ -> Nothing
265 describeIssue _ (NotSupported i) =
265 describeIssue _ (NotSupported i) =
266− para (emph "Encountered a feature that OpenApi Diff does not support: " <> text i <> ".")
266+ para (emph "Encountered a feature that CompaREST does not support: " <> text i <> ".")
267 describeIssue _ OneOfNotDisjoint =
267 describeIssue _ OneOfNotDisjoint =
268 para $
268 para $
269 "Could not deduce that " <> code "oneOf"
269 "Could not deduce that " <> code "oneOf"
@@ -275,7 +275,7 @@ instance Issuable 'SchemaLevel where
275 describeIssue _ (InvalidSchema i) =
275 describeIssue _ (InvalidSchema i) =
276 para (emph "The schema is invalid: " <> text i <> ".")
276 para (emph "The schema is invalid: " <> text i <> ".")
277 describeIssue _ UnguardedRecursion =
277 describeIssue _ UnguardedRecursion =
278− para "Encountered recursion that is too complex for OpenApi Diff to untangle."
278+ para "Encountered recursion that is too complex for CompaREST to untangle."
279 describeIssue Forward (TypesRestricted tys) = case tys of
279 describeIssue Forward (TypesRestricted tys) = case tys of
280 [] -> para "No longer has any valid values." -- weird
280 [] -> para "No longer has any valid values." -- weird
281 _ -> para "Values are now limited to the following types: " <> bulletList (para . describeJSONType <$> tys)
281 _ -> para "Values are now limited to the following types: " <> bulletList (para . describeJSONType <$> tys)
src/OpenAPI/Checker/Validate/Schema/JsonFormula.hs → src/Data/OpenApi/Compare/Validate/Schema/JsonFormula.hsrenamed+5−5
@@ -1,4 +1,4 @@
1−module OpenAPI.Checker.Validate.Schema.JsonFormula
1+module Data.OpenApi.Compare.Validate.Schema.JsonFormula
2 ( Bound (..)
2 ( Bound (..)
3 , showBound
3 , showBound
4 , Property (..)
4 , Property (..)
@@ -27,6 +27,10 @@ import Data.Kind
27import qualified Data.Map as M
27import qualified Data.Map as M
28import Data.Maybe
28import Data.Maybe
29import Data.OpenApi
29import Data.OpenApi
30+import Data.OpenApi.Compare.Orphans ()
31+import Data.OpenApi.Compare.Subtree
32+import Data.OpenApi.Compare.Validate.Schema.DNF
33+import Data.OpenApi.Compare.Validate.Schema.TypedJson
30import Data.Ord
34import Data.Ord
31import Data.Ratio
35import Data.Ratio
32import Data.Scientific
36import Data.Scientific
@@ -35,10 +39,6 @@ import Data.Text (Text)
35import qualified Data.Text as T
39import qualified Data.Text as T
36import qualified Data.Text.Encoding as T
40import qualified Data.Text.Encoding as T
37import Data.Typeable
41import Data.Typeable
38−import OpenAPI.Checker.Orphans ()
39−import OpenAPI.Checker.Subtree
40−import OpenAPI.Checker.Validate.Schema.DNF
41−import OpenAPI.Checker.Validate.Schema.TypedJson
42import Text.Pandoc.Builder hiding (Format, Null)
42import Text.Pandoc.Builder hiding (Format, Null)
43import Text.Regex.Pcre2
43import Text.Regex.Pcre2
44
44
src/OpenAPI/Checker/Validate/Schema/Partition.hs → src/Data/OpenApi/Compare/Validate/Schema/Partition.hsrenamed+8−8
@@ -1,4 +1,4 @@
1−module OpenAPI.Checker.Validate.Schema.Partition
1+module Data.OpenApi.Compare.Validate.Schema.Partition
2 ( partitionSchema
2 ( partitionSchema
3 , partitionRefSchema
3 , partitionRefSchema
4 , selectPartition
4 , selectPartition
@@ -32,17 +32,17 @@ import qualified Data.List.NonEmpty as NE
32import qualified Data.Map as M
32import qualified Data.Map as M
33import Data.Maybe
33import Data.Maybe
34import Data.OpenApi
34import Data.OpenApi
35+import Data.OpenApi.Compare.Memo
36+import Data.OpenApi.Compare.References
37+import Data.OpenApi.Compare.Subtree
38+import Data.OpenApi.Compare.Validate.Schema.DNF
39+import Data.OpenApi.Compare.Validate.Schema.JsonFormula
40+import Data.OpenApi.Compare.Validate.Schema.Traced
41+import Data.OpenApi.Compare.Validate.Schema.TypedJson
35import Data.Ord
42import Data.Ord
36import qualified Data.Set as S
43import qualified Data.Set as S
37import Data.Text (Text)
44import Data.Text (Text)
38import qualified Data.Text as T
45import qualified Data.Text as T
39−import OpenAPI.Checker.Memo
40−import OpenAPI.Checker.References
41−import OpenAPI.Checker.Subtree
42−import OpenAPI.Checker.Validate.Schema.DNF
43−import OpenAPI.Checker.Validate.Schema.JsonFormula
44−import OpenAPI.Checker.Validate.Schema.Traced
45−import OpenAPI.Checker.Validate.Schema.TypedJson
46import Text.Pandoc.Builder hiding (Format, Null)
46import Text.Pandoc.Builder hiding (Format, Null)
47
47
48data PartitionData
48data PartitionData
src/OpenAPI/Checker/Validate/Schema/Process.hs → src/Data/OpenApi/Compare/Validate/Schema/Process.hsrenamed+13−13
@@ -1,4 +1,4 @@
1−module OpenAPI.Checker.Validate.Schema.Process
1+module Data.OpenApi.Compare.Validate.Schema.Process
2 ( schemaToFormula
2 ( schemaToFormula
3 )
3 )
4where
4where
@@ -14,20 +14,20 @@ import qualified Data.HashMap.Strict.InsOrd as IOHM
14import qualified Data.Map as M
14import qualified Data.Map as M
15import Data.Maybe
15import Data.Maybe
16import Data.OpenApi hiding (get)
16import Data.OpenApi hiding (get)
17+import Data.OpenApi.Compare.Behavior
18+import Data.OpenApi.Compare.Memo
19+import Data.OpenApi.Compare.Paths
20+import qualified Data.OpenApi.Compare.PathsPrefixTree as P
21+import Data.OpenApi.Compare.References
22+import Data.OpenApi.Compare.Subtree
23+import Data.OpenApi.Compare.Validate.Schema.DNF
24+import Data.OpenApi.Compare.Validate.Schema.Issues
25+import Data.OpenApi.Compare.Validate.Schema.JsonFormula
26+import Data.OpenApi.Compare.Validate.Schema.Partition
27+import Data.OpenApi.Compare.Validate.Schema.Traced
28+import Data.OpenApi.Compare.Validate.Schema.TypedJson
17import Data.Ord
29import Data.Ord
18import qualified Data.Set as S
30import qualified Data.Set as S
19−import OpenAPI.Checker.Behavior
20−import OpenAPI.Checker.Memo
21−import OpenAPI.Checker.Paths
22−import qualified OpenAPI.Checker.PathsPrefixTree as P
23−import OpenAPI.Checker.References
24−import OpenAPI.Checker.Subtree
25−import OpenAPI.Checker.Validate.Schema.DNF
26−import OpenAPI.Checker.Validate.Schema.Issues
27−import OpenAPI.Checker.Validate.Schema.JsonFormula
28−import OpenAPI.Checker.Validate.Schema.Partition
29−import OpenAPI.Checker.Validate.Schema.Traced
30−import OpenAPI.Checker.Validate.Schema.TypedJson
31
31
32-- | A fake writer monad that doesn't actually record anything and allows lazy recursion.
32-- | A fake writer monad that doesn't actually record anything and allows lazy recursion.
33newtype Silent w a = Silent {runSilent :: a}
33newtype Silent w a = Silent {runSilent :: a}
src/OpenAPI/Checker/Validate/Schema/Traced.hs → src/Data/OpenApi/Compare/Validate/Schema/Traced.hsrenamed+2−2
@@ -1,6 +1,6 @@
1{-# OPTIONS_GHC -Wno-orphans #-}
1{-# OPTIONS_GHC -Wno-orphans #-}
2
2
3−module OpenAPI.Checker.Validate.Schema.Traced
3+module Data.OpenApi.Compare.Validate.Schema.Traced
4 ( Step (..)
4 ( Step (..)
5 , tracedAllOf
5 , tracedAllOf
6 , tracedAnyOf
6 , tracedAnyOf
@@ -21,9 +21,9 @@ import Data.Functor
21import qualified Data.HashMap.Strict.InsOrd as IOHM
21import qualified Data.HashMap.Strict.InsOrd as IOHM
22import qualified Data.List.NonEmpty as NE
22import qualified Data.List.NonEmpty as NE
23import Data.OpenApi
23import Data.OpenApi
24+import Data.OpenApi.Compare.Subtree
24import qualified Data.Set as S
25import qualified Data.Set as S
25import Data.Text (Text)
26import Data.Text (Text)
26−import OpenAPI.Checker.Subtree
27
27
28data PartitionChoice
28data PartitionChoice
29 = CByEnumValue (S.Set A.Value)
29 = CByEnumValue (S.Set A.Value)
src/OpenAPI/Checker/Validate/Schema/TypedJson.hs → src/Data/OpenApi/Compare/Validate/Schema/TypedJson.hsrenamed+1−1
@@ -1,4 +1,4 @@
1−module OpenAPI.Checker.Validate.Schema.TypedJson
1+module Data.OpenApi.Compare.Validate.Schema.TypedJson
2 ( JsonType (..)
2 ( JsonType (..)
3 , describeJSONType
3 , describeJSONType
4 , TypedValue (..)
4 , TypedValue (..)
src/OpenAPI/Checker/Validate/SecurityRequirement.hs → src/Data/OpenApi/Compare/Validate/SecurityRequirement.hsrenamed+5−5
@@ -1,7 +1,7 @@
1{-# LANGUAGE PartialTypeSignatures #-}
1{-# LANGUAGE PartialTypeSignatures #-}
2{-# OPTIONS_GHC -Wno-orphans #-}
2{-# OPTIONS_GHC -Wno-orphans #-}
3
3
4−module OpenAPI.Checker.Validate.SecurityRequirement
4+module Data.OpenApi.Compare.Validate.SecurityRequirement
5 ( Issue (..)
5 ( Issue (..)
6 )
6 )
7where
7where
@@ -17,14 +17,14 @@ import Data.HList
17import qualified Data.HashMap.Strict.InsOrd as IOHM
17import qualified Data.HashMap.Strict.InsOrd as IOHM
18import qualified Data.List.NonEmpty as NE
18import qualified Data.List.NonEmpty as NE
19import Data.OpenApi
19import Data.OpenApi
20+import Data.OpenApi.Compare.Behavior
21+import Data.OpenApi.Compare.Subtree
22+import Data.OpenApi.Compare.Validate.OAuth2Flows
23+import Data.OpenApi.Compare.Validate.SecurityScheme ()
20import Data.Set (Set)
24import Data.Set (Set)
21import qualified Data.Set as S
25import qualified Data.Set as S
22import Data.Text (Text)
26import Data.Text (Text)
23import Data.Traversable
27import Data.Traversable
24−import OpenAPI.Checker.Behavior
25−import OpenAPI.Checker.Subtree
26−import OpenAPI.Checker.Validate.OAuth2Flows
27−import OpenAPI.Checker.Validate.SecurityScheme ()
28
28
29instance Subtree SecurityRequirement where
29instance Subtree SecurityRequirement where
30 type SubtreeLevel SecurityRequirement = 'SecurityRequirementLevel
30 type SubtreeLevel SecurityRequirement = 'SecurityRequirementLevel
src/OpenAPI/Checker/Validate/SecurityScheme.hs → src/Data/OpenApi/Compare/Validate/SecurityScheme.hsrenamed+5−5
@@ -1,16 +1,16 @@
1{-# OPTIONS_GHC -Wno-orphans #-}
1{-# OPTIONS_GHC -Wno-orphans #-}
2
2
3−module OpenAPI.Checker.Validate.SecurityScheme
3+module Data.OpenApi.Compare.Validate.SecurityScheme
4 (
4 (
5 )
5 )
6where
6where
7
7
8import Control.Monad
8import Control.Monad
9import Data.OpenApi
9import Data.OpenApi
10−import OpenAPI.Checker.Behavior
10+import Data.OpenApi.Compare.Behavior
11−import OpenAPI.Checker.Orphans ()
11+import Data.OpenApi.Compare.Orphans ()
12−import OpenAPI.Checker.Subtree
12+import Data.OpenApi.Compare.Subtree
13−import OpenAPI.Checker.Validate.OAuth2Flows
13+import Data.OpenApi.Compare.Validate.OAuth2Flows
14
14
15instance Subtree SecurityScheme where
15instance Subtree SecurityScheme where
16 type CheckEnv SecurityScheme = '[]
16 type CheckEnv SecurityScheme = '[]
src/OpenAPI/Checker/Validate/Server.hs → src/Data/OpenApi/Compare/Validate/Server.hsrenamed+7−7
@@ -1,6 +1,6 @@
1{-# OPTIONS_GHC -Wno-orphans #-}
1{-# OPTIONS_GHC -Wno-orphans #-}
2
2
3−module OpenAPI.Checker.Validate.Server
3+module Data.OpenApi.Compare.Validate.Server
4 ( Issue (..)
4 ( Issue (..)
5 )
5 )
6where
6where
@@ -19,15 +19,15 @@ import qualified Data.HashSet.InsOrd as IOHM
19import qualified Data.HashSet.InsOrd as IOHS
19import qualified Data.HashSet.InsOrd as IOHS
20import Data.Maybe
20import Data.Maybe
21import Data.OpenApi
21import Data.OpenApi
22+import Data.OpenApi.Compare.Behavior
23+import Data.OpenApi.Compare.Common
24+import Data.OpenApi.Compare.Paths
25+import Data.OpenApi.Compare.Subtree
26+import Data.OpenApi.Compare.Validate.MediaTypeObject
22import qualified Data.Set as S
27import qualified Data.Set as S
23import Data.Text (Text)
28import Data.Text (Text)
24import qualified Data.Text as T
29import qualified Data.Text as T
25import Data.Traversable
30import Data.Traversable
26−import OpenAPI.Checker.Behavior
27−import OpenAPI.Checker.Common
28−import OpenAPI.Checker.Paths
29−import OpenAPI.Checker.Subtree
30−import OpenAPI.Checker.Validate.MediaTypeObject
31import Text.Pandoc.Builder
31import Text.Pandoc.Builder
32import Prelude as P
32import Prelude as P
33
33
@@ -101,7 +101,7 @@ data ServerUrlPart var
101 deriving stock (Eq, Show, Functor, Foldable, Traversable)
101 deriving stock (Eq, Show, Functor, Foldable, Traversable)
102
102
103-- | This is super rough. Things like @{a|b}c@ will not match @ac@.
103-- | This is super rough. Things like @{a|b}c@ will not match @ac@.
104−-- FIXME: https://github.com/typeable/openapi-diff/issues/46
104+-- FIXME: #46
105--
105--
106-- NOTE: syntax is defined vaguely in the spec.
106-- NOTE: syntax is defined vaguely in the spec.
107parseServerUrl :: Text -> [ServerUrlPart Text]
107parseServerUrl :: Text -> [ServerUrlPart Text]
src/OpenAPI/Checker/Validate/Sums.hs → src/Data/OpenApi/Compare/Validate/Sums.hsrenamed+4−4
@@ -1,13 +1,13 @@
1−module OpenAPI.Checker.Validate.Sums
1+module Data.OpenApi.Compare.Validate.Sums
2 ( checkSums
2 ( checkSums
3 ) where
3 ) where
4
4
5import Data.Foldable
5import Data.Foldable
6import Data.Map.Strict (Map)
6import Data.Map.Strict (Map)
7import qualified Data.Map.Strict as M
7import qualified Data.Map.Strict as M
8−import OpenAPI.Checker.Behavior
8+import Data.OpenApi.Compare.Behavior
9−import OpenAPI.Checker.Subtree
9+import Data.OpenApi.Compare.Subtree
10−import OpenAPI.Checker.Paths
10+import Data.OpenApi.Compare.Paths
11
11
12checkSums
12checkSums
13 :: (Ord k, Issuable l)
13 :: (Ord k, Issuable l)
test/README.md+1−1
@@ -30,7 +30,7 @@ This test would read the files `a.yaml` and `b.yaml` using the `Yaml.decodeFileT
30
30
31## Supported feature tests
31## Supported feature tests
32
32
33−If a test starts with either `x ` or `v `, the test is assumed to test the support of some OpenApi functionality. If the test begins `x ` it means that the feature is expected to be not supported, and the result will only be checked to have an "unsupported" flag set. If it starts with `v ` the test is expected to be supported and the result is compared to some file on disk.
33+If a test starts with either `x ` or `v `, the test is assumed to test the support of some OpenAPI functionality. If the test begins `x ` it means that the feature is expected to be not supported, and the result will only be checked to have an "unsupported" flag set. If it starts with `v ` the test is expected to be supported and the result is compared to some file on disk.
34
34
35The result will be reflected in the generated compatibility matrix.
35The result will be reflected in the generated compatibility matrix.
36
36
test/Spec/Golden/TraceTree.hs+2−2
@@ -7,11 +7,11 @@ import Control.Category
7import Control.Exception
7import Control.Exception
8import qualified Data.ByteString.Lazy as BSL
8import qualified Data.ByteString.Lazy as BSL
9import Data.Default
9import Data.Default
10+import Data.OpenApi.Compare.Run
11+import Data.OpenApi.Compare.Validate.OpenApi ()
10import Data.Text (Text)
12import Data.Text (Text)
11import qualified Data.Text.Encoding as T
13import qualified Data.Text.Encoding as T
12import qualified Data.Yaml as Yaml
14import qualified Data.Yaml as Yaml
13−import OpenAPI.Checker.Run
14−import OpenAPI.Checker.Validate.OpenApi ()
15import Spec.Golden.Extra
15import Spec.Golden.Extra
16import Test.Tasty (TestTree, testGroup)
16import Test.Tasty (TestTree, testGroup)
17import Text.Pandoc.Builder
17import Text.Pandoc.Builder
test/golden/common/bad-oneof-unchanged/report.md+6−6
@@ -1,19 +1,19 @@
1# Summary
1# Summary
2
2
3−| ⚠️ Breaking changes | 🙆 Non-breaking changes | [🤷 Unsupported feature changes](#unsupported-changes) |
3+| ❌ Breaking changes | ⚠️ Non-breaking changes | [❓ Unsupported feature changes](#unsupported-changes) |
4−|---------------------|------------------------|-------------------------------------------------------|
4+|--------------------|-------------------------|-------------------------------------------------------|
5−| 0 | 0 | 2 |
5+| 0 | 0 | 2 |
6
6
7−# <span id="unsupported-changes"></span>🤷 Unsupported feature changes
7+# <span id="unsupported-changes"></span>❓ Unsupported feature changes
8
8
9## **POST** /test
9## **POST** /test
10
10
11−### 📱➡️ JSON Request
11+### ➡️☁️ JSON Request
12
12
13Could not deduce that `oneOf` cases don't overlap. Treating the `oneOf`
13Could not deduce that `oneOf` cases don't overlap. Treating the `oneOf`
14as an `anyOf`. Reported errors might not be accurate.
14as an `anyOf`. Reported errors might not be accurate.
15
15
16−### 📱⬅️ JSON Response – 200
16+### ⬅️☁️ JSON Response – 200
17
17
18Could not deduce that `oneOf` cases don't overlap. Treating the `oneOf`
18Could not deduce that `oneOf` cases don't overlap. Treating the `oneOf`
19as an `anyOf`. Reported errors might not be accurate.
19as an `anyOf`. Reported errors might not be accurate.
test/golden/common/enum-added/report.md+7−7
@@ -1,14 +1,14 @@
1# Summary
1# Summary
2
2
3−| [⚠️ Breaking changes](#breaking-changes) | [🙆 Non-breaking changes](#non-breaking-changes) | 🤷 Unsupported feature changes |
3+| [❌ Breaking changes](#breaking-changes) | [⚠️ Non-breaking changes](#non-breaking-changes) |
4−|------------------------------------------|-------------------------------------------------|-------------------------------|
4+|-----------------------------------------|--------------------------------------------------|
5−| 1 | 1 | 0 |
5+| 1 | 1 |
6
6
7−# <span id="breaking-changes"></span>⚠️ Breaking changes
7+# <span id="breaking-changes"></span>❌ Breaking changes
8
8
9## **POST** /test
9## **POST** /test
10
10
11−### 📱⬅️ JSON Response – 200
11+### ⬅️☁️ JSON Response – 200
12
12
13#### `$(String)`
13#### `$(String)`
14
14
@@ -18,11 +18,11 @@ The following enum value was added:
18"C"
18"C"
19```
19```
20
20
21−# <span id="non-breaking-changes"></span>🙆 Non-breaking changes
21+# <span id="non-breaking-changes"></span>⚠️ Non-breaking changes
22
22
23## **POST** /test
23## **POST** /test
24
24
25−### 📱➡️ JSON Request
25+### ➡️☁️ JSON Request
26
26
27#### `$(String)`
27#### `$(String)`
28
28
test/golden/common/enum-anyof/report.md+3−3
@@ -1,5 +1,5 @@
1# Summary
1# Summary
2
2
3−| ⚠️ Breaking changes | 🙆 Non-breaking changes | 🤷 Unsupported feature changes |
3+| ❌ Breaking changes | ⚠️ Non-breaking changes |
4−|---------------------|------------------------|-------------------------------|
4+|--------------------|-------------------------|
5−| 0 | 0 | 0 |
5+| 0 | 0 |
test/golden/common/id/report.md+3−3
@@ -1,5 +1,5 @@
1# Summary
1# Summary
2
2
3−| ⚠️ Breaking changes | 🙆 Non-breaking changes | 🤷 Unsupported feature changes |
3+| ❌ Breaking changes | ⚠️ Non-breaking changes |
4−|---------------------|------------------------|-------------------------------|
4+|--------------------|-------------------------|
5−| 0 | 0 | 0 |
5+| 0 | 0 |
test/golden/common/json/recursive/report.md+3−3
@@ -1,5 +1,5 @@
1# Summary
1# Summary
2
2
3−| ⚠️ Breaking changes | 🙆 Non-breaking changes | 🤷 Unsupported feature changes |
3+| ❌ Breaking changes | ⚠️ Non-breaking changes |
4−|---------------------|------------------------|-------------------------------|
4+|--------------------|-------------------------|
5−| 0 | 0 | 0 |
5+| 0 | 0 |
test/golden/common/maximum-lowered/report.md+7−7
@@ -1,24 +1,24 @@
1# Summary
1# Summary
2
2
3−| [⚠️ Breaking changes](#breaking-changes) | [🙆 Non-breaking changes](#non-breaking-changes) | 🤷 Unsupported feature changes |
3+| [❌ Breaking changes](#breaking-changes) | [⚠️ Non-breaking changes](#non-breaking-changes) |
4−|------------------------------------------|-------------------------------------------------|-------------------------------|
4+|-----------------------------------------|--------------------------------------------------|
5−| 1 | 1 | 0 |
5+| 1 | 1 |
6
6
7−# <span id="breaking-changes"></span>⚠️ Breaking changes
7+# <span id="breaking-changes"></span>❌ Breaking changes
8
8
9## **POST** /test
9## **POST** /test
10
10
11−### 📱➡️ JSON Request
11+### ➡️☁️ JSON Request
12
12
13#### `$(Number)`
13#### `$(Number)`
14
14
15Upper bound changed from 3.0 inclusive to 2.0 inclusive.
15Upper bound changed from 3.0 inclusive to 2.0 inclusive.
16
16
17−# <span id="non-breaking-changes"></span>🙆 Non-breaking changes
17+# <span id="non-breaking-changes"></span>⚠️ Non-breaking changes
18
18
19## **POST** /test
19## **POST** /test
20
20
21−### 📱⬅️ JSON Response – 200
21+### ⬅️☁️ JSON Response – 200
22
22
23#### `$(Number)`
23#### `$(Number)`
24
24
test/golden/common/pathItem/operation/parameters/allowEmptyValue/reset/report.md+4−4
@@ -1,10 +1,10 @@
1# Summary
1# Summary
2
2
3−| [⚠️ Breaking changes](#breaking-changes) | 🙆 Non-breaking changes | 🤷 Unsupported feature changes |
3+| [❌ Breaking changes](#breaking-changes) | ⚠️ Non-breaking changes |
4−|------------------------------------------|------------------------|-------------------------------|
4+|-----------------------------------------|-------------------------|
5−| 1 | 0 | 0 |
5+| 1 | 0 |
6
6
7−# <span id="breaking-changes"></span>⚠️ Breaking changes
7+# <span id="breaking-changes"></span>❌ Breaking changes
8
8
9## **POST** /test
9## **POST** /test
10
10
test/golden/common/pathItem/operation/parameters/allowEmptyValue/set/report.md+4−4
@@ -1,10 +1,10 @@
1# Summary
1# Summary
2
2
3−| ⚠️ Breaking changes | [🙆 Non-breaking changes](#non-breaking-changes) | 🤷 Unsupported feature changes |
3+| ❌ Breaking changes | [⚠️ Non-breaking changes](#non-breaking-changes) |
4−|---------------------|-------------------------------------------------|-------------------------------|
4+|--------------------|--------------------------------------------------|
5−| 0 | 1 | 0 |
5+| 0 | 1 |
6
6
7−# <span id="non-breaking-changes"></span>🙆 Non-breaking changes
7+# <span id="non-breaking-changes"></span>⚠️ Non-breaking changes
8
8
9## **POST** /test
9## **POST** /test
10
10
test/golden/common/pathItem/operation/parameters/change/report.md+5−5
@@ -1,10 +1,10 @@
1# Summary
1# Summary
2
2
3−| [⚠️ Breaking changes](#breaking-changes) | [🙆 Non-breaking changes](#non-breaking-changes) | 🤷 Unsupported feature changes |
3+| [❌ Breaking changes](#breaking-changes) | [⚠️ Non-breaking changes](#non-breaking-changes) |
4−|------------------------------------------|-------------------------------------------------|-------------------------------|
4+|-----------------------------------------|--------------------------------------------------|
5−| 1 | 1 | 0 |
5+| 1 | 1 |
6
6
7−# <span id="breaking-changes"></span>⚠️ Breaking changes
7+# <span id="breaking-changes"></span>❌ Breaking changes
8
8
9## **POST** /test
9## **POST** /test
10
10
@@ -16,7 +16,7 @@
16
16
17The type has been removed.
17The type has been removed.
18
18
19−# <span id="non-breaking-changes"></span>🙆 Non-breaking changes
19+# <span id="non-breaking-changes"></span>⚠️ Non-breaking changes
20
20
21## **POST** /test
21## **POST** /test
22
22
test/golden/common/pathItem/operation/parameters/required/false/add/report.md+3−3
@@ -1,5 +1,5 @@
1# Summary
1# Summary
2
2
3−| ⚠️ Breaking changes | 🙆 Non-breaking changes | 🤷 Unsupported feature changes |
3+| ❌ Breaking changes | ⚠️ Non-breaking changes |
4−|---------------------|------------------------|-------------------------------|
4+|--------------------|-------------------------|
5−| 0 | 0 | 0 |
5+| 0 | 0 |
test/golden/common/pathItem/operation/parameters/required/false/del/report.md+3−3
@@ -1,5 +1,5 @@
1# Summary
1# Summary
2
2
3−| ⚠️ Breaking changes | 🙆 Non-breaking changes | 🤷 Unsupported feature changes |
3+| ❌ Breaking changes | ⚠️ Non-breaking changes |
4−|---------------------|------------------------|-------------------------------|
4+|--------------------|-------------------------|
5−| 0 | 0 | 0 |
5+| 0 | 0 |
test/golden/common/pathItem/operation/parameters/required/reset/report.md+4−4
@@ -1,10 +1,10 @@
1# Summary
1# Summary
2
2
3−| ⚠️ Breaking changes | [🙆 Non-breaking changes](#non-breaking-changes) | 🤷 Unsupported feature changes |
3+| ❌ Breaking changes | [⚠️ Non-breaking changes](#non-breaking-changes) |
4−|---------------------|-------------------------------------------------|-------------------------------|
4+|--------------------|--------------------------------------------------|
5−| 0 | 1 | 0 |
5+| 0 | 1 |
6
6
7−# <span id="non-breaking-changes"></span>🙆 Non-breaking changes
7+# <span id="non-breaking-changes"></span>⚠️ Non-breaking changes
8
8
9## **POST** /test
9## **POST** /test
10
10
test/golden/common/pathItem/operation/parameters/required/set/report.md+4−4
@@ -1,10 +1,10 @@
1# Summary
1# Summary
2
2
3−| [⚠️ Breaking changes](#breaking-changes) | 🙆 Non-breaking changes | 🤷 Unsupported feature changes |
3+| [❌ Breaking changes](#breaking-changes) | ⚠️ Non-breaking changes |
4−|------------------------------------------|------------------------|-------------------------------|
4+|-----------------------------------------|-------------------------|
5−| 1 | 0 | 0 |
5+| 1 | 0 |
6
6
7−# <span id="breaking-changes"></span>⚠️ Breaking changes
7+# <span id="breaking-changes"></span>❌ Breaking changes
8
8
9## **POST** /test
9## **POST** /test
10
10
test/golden/common/pathItem/operation/parameters/required/true/add/report.md+4−4
@@ -1,10 +1,10 @@
1# Summary
1# Summary
2
2
3−| [⚠️ Breaking changes](#breaking-changes) | 🙆 Non-breaking changes | 🤷 Unsupported feature changes |
3+| [❌ Breaking changes](#breaking-changes) | ⚠️ Non-breaking changes |
4−|------------------------------------------|------------------------|-------------------------------|
4+|-----------------------------------------|-------------------------|
5−| 1 | 0 | 0 |
5+| 1 | 0 |
6
6
7−# <span id="breaking-changes"></span>⚠️ Breaking changes
7+# <span id="breaking-changes"></span>❌ Breaking changes
8
8
9## **POST** /test
9## **POST** /test
10
10
test/golden/common/pathItem/operation/parameters/required/true/del/report.md+4−4
@@ -1,10 +1,10 @@
1# Summary
1# Summary
2
2
3−| ⚠️ Breaking changes | [🙆 Non-breaking changes](#non-breaking-changes) | 🤷 Unsupported feature changes |
3+| ❌ Breaking changes | [⚠️ Non-breaking changes](#non-breaking-changes) |
4−|---------------------|-------------------------------------------------|-------------------------------|
4+|--------------------|--------------------------------------------------|
5−| 0 | 1 | 0 |
5+| 0 | 1 |
6
6
7−# <span id="non-breaking-changes"></span>🙆 Non-breaking changes
7+# <span id="non-breaking-changes"></span>⚠️ Non-breaking changes
8
8
9## **POST** /test
9## **POST** /test
10
10
test/golden/common/pathItem/operation/requestBody/mediaTypeObject/add/report.md+4−4
@@ -1,10 +1,10 @@
1# Summary
1# Summary
2
2
3−| ⚠️ Breaking changes | [🙆 Non-breaking changes](#non-breaking-changes) | 🤷 Unsupported feature changes |
3+| ❌ Breaking changes | [⚠️ Non-breaking changes](#non-breaking-changes) |
4−|---------------------|-------------------------------------------------|-------------------------------|
4+|--------------------|--------------------------------------------------|
5−| 0 | 1 | 0 |
5+| 0 | 1 |
6
6
7−# <span id="non-breaking-changes"></span>🙆 Non-breaking changes
7+# <span id="non-breaking-changes"></span>⚠️ Non-breaking changes
8
8
9## **POST** /test
9## **POST** /test
10
10
test/golden/common/pathItem/operation/requestBody/mediaTypeObject/change/report.md+7−7
@@ -1,24 +1,24 @@
1# Summary
1# Summary
2
2
3−| [⚠️ Breaking changes](#breaking-changes) | [🙆 Non-breaking changes](#non-breaking-changes) | 🤷 Unsupported feature changes |
3+| [❌ Breaking changes](#breaking-changes) | [⚠️ Non-breaking changes](#non-breaking-changes) |
4−|------------------------------------------|-------------------------------------------------|-------------------------------|
4+|-----------------------------------------|--------------------------------------------------|
5−| 1 | 1 | 0 |
5+| 1 | 1 |
6
6
7−# <span id="breaking-changes"></span>⚠️ Breaking changes
7+# <span id="breaking-changes"></span>❌ Breaking changes
8
8
9## **POST** /test
9## **POST** /test
10
10
11−### 📱➡️ JSON Request
11+### ➡️☁️ JSON Request
12
12
13#### `$(String)`
13#### `$(String)`
14
14
15The type has been removed.
15The type has been removed.
16
16
17−# <span id="non-breaking-changes"></span>🙆 Non-breaking changes
17+# <span id="non-breaking-changes"></span>⚠️ Non-breaking changes
18
18
19## **POST** /test
19## **POST** /test
20
20
21−### 📱➡️ JSON Request
21+### ➡️☁️ JSON Request
22
22
23#### `$(Number)`
23#### `$(Number)`
24
24
test/golden/common/pathItem/operation/requestBody/mediaTypeObject/del/report.md+4−4
@@ -1,10 +1,10 @@
1# Summary
1# Summary
2
2
3−| [⚠️ Breaking changes](#breaking-changes) | 🙆 Non-breaking changes | 🤷 Unsupported feature changes |
3+| [❌ Breaking changes](#breaking-changes) | ⚠️ Non-breaking changes |
4−|------------------------------------------|------------------------|-------------------------------|
4+|-----------------------------------------|-------------------------|
5−| 1 | 0 | 0 |
5+| 1 | 0 |
6
6
7−# <span id="breaking-changes"></span>⚠️ Breaking changes
7+# <span id="breaking-changes"></span>❌ Breaking changes
8
8
9## **POST** /test
9## **POST** /test
10
10
test/golden/common/pathItem/operation/requestBody/required/reset/report.md+4−4
@@ -1,10 +1,10 @@
1# Summary
1# Summary
2
2
3−| ⚠️ Breaking changes | [🙆 Non-breaking changes](#non-breaking-changes) | 🤷 Unsupported feature changes |
3+| ❌ Breaking changes | [⚠️ Non-breaking changes](#non-breaking-changes) |
4−|---------------------|-------------------------------------------------|-------------------------------|
4+|--------------------|--------------------------------------------------|
5−| 0 | 1 | 0 |
5+| 0 | 1 |
6
6
7−# <span id="non-breaking-changes"></span>🙆 Non-breaking changes
7+# <span id="non-breaking-changes"></span>⚠️ Non-breaking changes
8
8
9## **POST** /test
9## **POST** /test
10
10
test/golden/common/pathItem/operation/requestBody/required/set/report.md+4−4
@@ -1,10 +1,10 @@
1# Summary
1# Summary
2
2
3−| [⚠️ Breaking changes](#breaking-changes) | 🙆 Non-breaking changes | 🤷 Unsupported feature changes |
3+| [❌ Breaking changes](#breaking-changes) | ⚠️ Non-breaking changes |
4−|------------------------------------------|------------------------|-------------------------------|
4+|-----------------------------------------|-------------------------|
5−| 1 | 0 | 0 |
5+| 1 | 0 |
6
6
7−# <span id="breaking-changes"></span>⚠️ Breaking changes
7+# <span id="breaking-changes"></span>❌ Breaking changes
8
8
9## **POST** /test
9## **POST** /test
10
10
test/golden/common/pathItem/operation/responses/add/report.md+4−4
@@ -1,10 +1,10 @@
1# Summary
1# Summary
2
2
3−| [⚠️ Breaking changes](#breaking-changes) | 🙆 Non-breaking changes | 🤷 Unsupported feature changes |
3+| [❌ Breaking changes](#breaking-changes) | ⚠️ Non-breaking changes |
4−|------------------------------------------|------------------------|-------------------------------|
4+|-----------------------------------------|-------------------------|
5−| 1 | 0 | 0 |
5+| 1 | 0 |
6
6
7−# <span id="breaking-changes"></span>⚠️ Breaking changes
7+# <span id="breaking-changes"></span>❌ Breaking changes
8
8
9## **POST** /test
9## **POST** /test
10
10
test/golden/common/pathItem/operation/responses/change/headers/mandatory/add/report.md+4−4
@@ -1,10 +1,10 @@
1# Summary
1# Summary
2
2
3−| ⚠️ Breaking changes | [🙆 Non-breaking changes](#non-breaking-changes) | 🤷 Unsupported feature changes |
3+| ❌ Breaking changes | [⚠️ Non-breaking changes](#non-breaking-changes) |
4−|---------------------|-------------------------------------------------|-------------------------------|
4+|--------------------|--------------------------------------------------|
5−| 0 | 1 | 0 |
5+| 0 | 1 |
6
6
7−# <span id="non-breaking-changes"></span>🙆 Non-breaking changes
7+# <span id="non-breaking-changes"></span>⚠️ Non-breaking changes
8
8
9## **POST** /test
9## **POST** /test
10
10
test/golden/common/pathItem/operation/responses/change/headers/mandatory/del/report.md+4−4
@@ -1,10 +1,10 @@
1# Summary
1# Summary
2
2
3−| [⚠️ Breaking changes](#breaking-changes) | 🙆 Non-breaking changes | 🤷 Unsupported feature changes |
3+| [❌ Breaking changes](#breaking-changes) | ⚠️ Non-breaking changes |
4−|------------------------------------------|------------------------|-------------------------------|
4+|-----------------------------------------|-------------------------|
5−| 1 | 0 | 0 |
5+| 1 | 0 |
6
6
7−# <span id="breaking-changes"></span>⚠️ Breaking changes
7+# <span id="breaking-changes"></span>❌ Breaking changes
8
8
9## **POST** /test
9## **POST** /test
10
10
test/golden/common/pathItem/operation/responses/change/headers/optional/add/report.md+3−3
@@ -1,5 +1,5 @@
1# Summary
1# Summary
2
2
3−| ⚠️ Breaking changes | 🙆 Non-breaking changes | 🤷 Unsupported feature changes |
3+| ❌ Breaking changes | ⚠️ Non-breaking changes |
4−|---------------------|------------------------|-------------------------------|
4+|--------------------|-------------------------|
5−| 0 | 0 | 0 |
5+| 0 | 0 |
test/golden/common/pathItem/operation/responses/change/headers/optional/del/report.md+3−3
@@ -1,5 +1,5 @@
1# Summary
1# Summary
2
2
3−| ⚠️ Breaking changes | 🙆 Non-breaking changes | 🤷 Unsupported feature changes |
3+| ❌ Breaking changes | ⚠️ Non-breaking changes |
4−|---------------------|------------------------|-------------------------------|
4+|--------------------|-------------------------|
5−| 0 | 0 | 0 |
5+| 0 | 0 |
test/golden/common/pathItem/operation/responses/change/mediaTypeObject/add/report.md+4−4
@@ -1,10 +1,10 @@
1# Summary
1# Summary
2
2
3−| [⚠️ Breaking changes](#breaking-changes) | 🙆 Non-breaking changes | 🤷 Unsupported feature changes |
3+| [❌ Breaking changes](#breaking-changes) | ⚠️ Non-breaking changes |
4−|------------------------------------------|------------------------|-------------------------------|
4+|-----------------------------------------|-------------------------|
5−| 1 | 0 | 0 |
5+| 1 | 0 |
6
6
7−# <span id="breaking-changes"></span>⚠️ Breaking changes
7+# <span id="breaking-changes"></span>❌ Breaking changes
8
8
9## **POST** /test
9## **POST** /test
10
10
test/golden/common/pathItem/operation/responses/change/mediaTypeObject/change/report.md+7−7
@@ -1,24 +1,24 @@
1# Summary
1# Summary
2
2
3−| [⚠️ Breaking changes](#breaking-changes) | [🙆 Non-breaking changes](#non-breaking-changes) | 🤷 Unsupported feature changes |
3+| [❌ Breaking changes](#breaking-changes) | [⚠️ Non-breaking changes](#non-breaking-changes) |
4−|------------------------------------------|-------------------------------------------------|-------------------------------|
4+|-----------------------------------------|--------------------------------------------------|
5−| 1 | 1 | 0 |
5+| 1 | 1 |
6
6
7−# <span id="breaking-changes"></span>⚠️ Breaking changes
7+# <span id="breaking-changes"></span>❌ Breaking changes
8
8
9## **POST** /test
9## **POST** /test
10
10
11−### 📱⬅️ JSON Response – 200
11+### ⬅️☁️ JSON Response – 200
12
12
13#### `$(Number)`
13#### `$(Number)`
14
14
15The type has been added.
15The type has been added.
16
16
17−# <span id="non-breaking-changes"></span>🙆 Non-breaking changes
17+# <span id="non-breaking-changes"></span>⚠️ Non-breaking changes
18
18
19## **POST** /test
19## **POST** /test
20
20
21−### 📱⬅️ JSON Response – 200
21+### ⬅️☁️ JSON Response – 200
22
22
23#### `$(String)`
23#### `$(String)`
24
24
test/golden/common/pathItem/operation/responses/change/mediaTypeObject/del/report.md+4−4
@@ -1,10 +1,10 @@
1# Summary
1# Summary
2
2
3−| ⚠️ Breaking changes | [🙆 Non-breaking changes](#non-breaking-changes) | 🤷 Unsupported feature changes |
3+| ❌ Breaking changes | [⚠️ Non-breaking changes](#non-breaking-changes) |
4−|---------------------|-------------------------------------------------|-------------------------------|
4+|--------------------|--------------------------------------------------|
5−| 0 | 1 | 0 |
5+| 0 | 1 |
6
6
7−# <span id="non-breaking-changes"></span>🙆 Non-breaking changes
7+# <span id="non-breaking-changes"></span>⚠️ Non-breaking changes
8
8
9## **POST** /test
9## **POST** /test
10
10
test/golden/common/pathItem/operation/responses/del/report.md+4−4
@@ -1,10 +1,10 @@
1# Summary
1# Summary
2
2
3−| ⚠️ Breaking changes | [🙆 Non-breaking changes](#non-breaking-changes) | 🤷 Unsupported feature changes |
3+| ❌ Breaking changes | [⚠️ Non-breaking changes](#non-breaking-changes) |
4−|---------------------|-------------------------------------------------|-------------------------------|
4+|--------------------|--------------------------------------------------|
5−| 0 | 1 | 0 |
5+| 0 | 1 |
6
6
7−# <span id="non-breaking-changes"></span>🙆 Non-breaking changes
7+# <span id="non-breaking-changes"></span>⚠️ Non-breaking changes
8
8
9## **POST** /test
9## **POST** /test
10
10
test/golden/common/property-removed-additional/report.md+7−7
@@ -1,14 +1,14 @@
1# Summary
1# Summary
2
2
3−| [⚠️ Breaking changes](#breaking-changes) | [🙆 Non-breaking changes](#non-breaking-changes) | 🤷 Unsupported feature changes |
3+| [❌ Breaking changes](#breaking-changes) | [⚠️ Non-breaking changes](#non-breaking-changes) |
4−|------------------------------------------|-------------------------------------------------|-------------------------------|
4+|-----------------------------------------|--------------------------------------------------|
5−| 3 | 3 | 0 |
5+| 3 | 3 |
6
6
7−# <span id="breaking-changes"></span>⚠️ Breaking changes
7+# <span id="breaking-changes"></span>❌ Breaking changes
8
8
9## **POST** /test
9## **POST** /test
10
10
11−### 📱⬅️ JSON Response – 200
11+### ⬅️☁️ JSON Response – 200
12
12
13#### `$.property2`
13#### `$.property2`
14
14
@@ -21,11 +21,11 @@
21
21
223. The property may not be present.
223. The property may not be present.
23
23
24−# <span id="non-breaking-changes"></span>🙆 Non-breaking changes
24+# <span id="non-breaking-changes"></span>⚠️ Non-breaking changes
25
25
26## **POST** /test
26## **POST** /test
27
27
28−### 📱➡️ JSON Request
28+### ➡️☁️ JSON Request
29
29
30#### `$.property2`
30#### `$.property2`
31
31
test/golden/common/property-removed/report.md+6−6
@@ -1,20 +1,20 @@
1# Summary
1# Summary
2
2
3−| [⚠️ Breaking changes](#breaking-changes) | 🙆 Non-breaking changes | 🤷 Unsupported feature changes |
3+| [❌ Breaking changes](#breaking-changes) | ⚠️ Non-breaking changes |
4−|------------------------------------------|------------------------|-------------------------------|
4+|-----------------------------------------|-------------------------|
5−| 2 | 0 | 0 |
5+| 2 | 0 |
6
6
7−# <span id="breaking-changes"></span>⚠️ Breaking changes
7+# <span id="breaking-changes"></span>❌ Breaking changes
8
8
9## **POST** /test
9## **POST** /test
10
10
11−### 📱➡️ JSON Request
11+### ➡️☁️ JSON Request
12
12
13#### `$.property2`
13#### `$.property2`
14
14
15The property has been removed.
15The property has been removed.
16
16
17−### 📱⬅️ JSON Response – 200
17+### ⬅️☁️ JSON Response – 200
18
18
19#### `$.property2`
19#### `$.property2`
20
20
test/golden/common/property-required/report.md+7−7
@@ -1,24 +1,24 @@
1# Summary
1# Summary
2
2
3−| [⚠️ Breaking changes](#breaking-changes) | [🙆 Non-breaking changes](#non-breaking-changes) | 🤷 Unsupported feature changes |
3+| [❌ Breaking changes](#breaking-changes) | [⚠️ Non-breaking changes](#non-breaking-changes) |
4−|------------------------------------------|-------------------------------------------------|-------------------------------|
4+|-----------------------------------------|--------------------------------------------------|
5−| 1 | 1 | 0 |
5+| 1 | 1 |
6
6
7−# <span id="breaking-changes"></span>⚠️ Breaking changes
7+# <span id="breaking-changes"></span>❌ Breaking changes
8
8
9## **POST** /test
9## **POST** /test
10
10
11−### 📱➡️ JSON Request
11+### ➡️☁️ JSON Request
12
12
13#### `$.property2`
13#### `$.property2`
14
14
15The property has become required.
15The property has become required.
16
16
17−# <span id="non-breaking-changes"></span>🙆 Non-breaking changes
17+# <span id="non-breaking-changes"></span>⚠️ Non-breaking changes
18
18
19## **POST** /test
19## **POST** /test
20
20
21−### 📱⬅️ JSON Response – 200
21+### ⬅️☁️ JSON Response – 200
22
22
23#### `$.property2`
23#### `$.property2`
24
24
test/golden/common/random-example/report.md+9−9
@@ -1,14 +1,14 @@
1# Summary
1# Summary
2
2
3−| [⚠️ Breaking changes](#breaking-changes) | [🙆 Non-breaking changes](#non-breaking-changes) | 🤷 Unsupported feature changes |
3+| [❌ Breaking changes](#breaking-changes) | [⚠️ Non-breaking changes](#non-breaking-changes) |
4−|------------------------------------------|-------------------------------------------------|-------------------------------|
4+|-----------------------------------------|--------------------------------------------------|
5−| 5 | 6 | 0 |
5+| 5 | 6 |
6
6
7−# <span id="breaking-changes"></span>⚠️ Breaking changes
7+# <span id="breaking-changes"></span>❌ Breaking changes
8
8
9## **GET** /pets
9## **GET** /pets
10
10
11−### 📱⬅️ JSON Response – 200
11+### ⬅️☁️ JSON Response – 200
12
12
13#### `$[*].name(String)`
13#### `$[*].name(String)`
14
14
@@ -18,7 +18,7 @@
18
18
19## **POST** /pets
19## **POST** /pets
20
20
21−### 📱➡️ JSON Request
21+### ➡️☁️ JSON Request
22
22
23#### `$.weight`
23#### `$.weight`
24
24
@@ -33,7 +33,7 @@
33
33
34Value is now a multiple of 1.0.
34Value is now a multiple of 1.0.
35
35
36−# <span id="non-breaking-changes"></span>🙆 Non-breaking changes
36+# <span id="non-breaking-changes"></span>⚠️ Non-breaking changes
37
37
38## **GET** /pets
38## **GET** /pets
39
39
@@ -45,7 +45,7 @@ Value is now a multiple of 1.0.
45
45
46Upper bound changed from 20.0 inclusive to 30.0 inclusive.
46Upper bound changed from 20.0 inclusive to 30.0 inclusive.
47
47
48−### 📱⬅️ JSON Response – 200
48+### ⬅️☁️ JSON Response – 200
49
49
50#### `$[*].weight`
50#### `$[*].weight`
51
51
@@ -62,7 +62,7 @@ Value is now a multiple of 1.0.
62
62
63## **POST** /pets
63## **POST** /pets
64
64
65−### 📱➡️ JSON Request
65+### ➡️☁️ JSON Request
66
66
67#### `$.name(String)`
67#### `$.name(String)`
68
68
test/golden/common/recursive/report.md+7−7
@@ -1,14 +1,14 @@
1# Summary
1# Summary
2
2
3−| [⚠️ Breaking changes](#breaking-changes) | [🙆 Non-breaking changes](#non-breaking-changes) | 🤷 Unsupported feature changes |
3+| [❌ Breaking changes](#breaking-changes) | [⚠️ Non-breaking changes](#non-breaking-changes) |
4−|------------------------------------------|-------------------------------------------------|-------------------------------|
4+|-----------------------------------------|--------------------------------------------------|
5−| 1 | 1 | 0 |
5+| 1 | 1 |
6
6
7−# <span id="breaking-changes"></span>⚠️ Breaking changes
7+# <span id="breaking-changes"></span>❌ Breaking changes
8
8
9## **GET** /api/foo
9## **GET** /api/foo
10
10
11−### 📱➡️ JSON Request
11+### ➡️☁️ JSON Request
12
12
13#### `$.leaf.value.foo(String)`
13#### `$.leaf.value.foo(String)`
14
14
@@ -18,11 +18,11 @@ The following enum value has been added:
18"a"
18"a"
19```
19```
20
20
21−# <span id="non-breaking-changes"></span>🙆 Non-breaking changes
21+# <span id="non-breaking-changes"></span>⚠️ Non-breaking changes
22
22
23## **GET** /api/foo
23## **GET** /api/foo
24
24
25−### 📱⬅️ JSON Response – 200
25+### ⬅️☁️ JSON Response – 200
26
26
27#### `$.leaf.value.foo(String)`
27#### `$.leaf.value.foo(String)`
28
28
test/golden/common/security-scheme/report.md+5−5
@@ -1,10 +1,10 @@
1# Summary
1# Summary
2
2
3−| [⚠️ Breaking changes](#breaking-changes) | [🙆 Non-breaking changes](#non-breaking-changes) | 🤷 Unsupported feature changes |
3+| [❌ Breaking changes](#breaking-changes) | [⚠️ Non-breaking changes](#non-breaking-changes) |
4−|------------------------------------------|-------------------------------------------------|-------------------------------|
4+|-----------------------------------------|--------------------------------------------------|
5−| 2 | 1 | 0 |
5+| 2 | 1 |
6
6
7−# <span id="breaking-changes"></span>⚠️ Breaking changes
7+# <span id="breaking-changes"></span>❌ Breaking changes
8
8
9## **POST** /oauth/check
9## **POST** /oauth/check
10
10
@@ -22,7 +22,7 @@ Security scheme has been removed.
22
22
23Security scheme has been removed.
23Security scheme has been removed.
24
24
25−# <span id="non-breaking-changes"></span>🙆 Non-breaking changes
25+# <span id="non-breaking-changes"></span>⚠️ Non-breaking changes
26
26
27## **POST** /oauth/check
27## **POST** /oauth/check
28
28
test/golden/common/servers/report.md+5−5
@@ -1,10 +1,10 @@
1# Summary
1# Summary
2
2
3−| [⚠️ Breaking changes](#breaking-changes) | [🙆 Non-breaking changes](#non-breaking-changes) | 🤷 Unsupported feature changes |
3+| [❌ Breaking changes](#breaking-changes) | [⚠️ Non-breaking changes](#non-breaking-changes) |
4−|------------------------------------------|-------------------------------------------------|-------------------------------|
4+|-----------------------------------------|--------------------------------------------------|
5−| 3 | 1 | 0 |
5+| 3 | 1 |
6
6
7−# <span id="breaking-changes"></span>⚠️ Breaking changes
7+# <span id="breaking-changes"></span>❌ Breaking changes
8
8
9## **GET** /pets
9## **GET** /pets
10
10
@@ -18,7 +18,7 @@ The server was removed.
18
18
192. A variable has been changed from being open to being closed.
192. A variable has been changed from being open to being closed.
20
20
21−# <span id="non-breaking-changes"></span>🙆 Non-breaking changes
21+# <span id="non-breaking-changes"></span>⚠️ Non-breaking changes
22
22
23## **GET** /pets
23## **GET** /pets
24
24
test/golden/common/tuple-items/heterogeneous-component-mismatch/report.md+9−9
@@ -1,36 +1,36 @@
1# Summary
1# Summary
2
2
3−| [⚠️ Breaking changes](#breaking-changes) | [🙆 Non-breaking changes](#non-breaking-changes) | 🤷 Unsupported feature changes |
3+| [❌ Breaking changes](#breaking-changes) | [⚠️ Non-breaking changes](#non-breaking-changes) |
4−|------------------------------------------|-------------------------------------------------|-------------------------------|
4+|-----------------------------------------|--------------------------------------------------|
5−| 2 | 2 | 0 |
5+| 2 | 2 |
6
6
7−# <span id="breaking-changes"></span>⚠️ Breaking changes
7+# <span id="breaking-changes"></span>❌ Breaking changes
8
8
9## **POST** /test
9## **POST** /test
10
10
11−### 📱➡️ JSON Request
11+### ➡️☁️ JSON Request
12
12
13#### `$[1](String)`
13#### `$[1](String)`
14
14
15The type has been removed.
15The type has been removed.
16
16
17−### 📱⬅️ JSON Response – 200
17+### ⬅️☁️ JSON Response – 200
18
18
19#### `$[1](Object)`
19#### `$[1](Object)`
20
20
21The type has been added.
21The type has been added.
22
22
23−# <span id="non-breaking-changes"></span>🙆 Non-breaking changes
23+# <span id="non-breaking-changes"></span>⚠️ Non-breaking changes
24
24
25## **POST** /test
25## **POST** /test
26
26
27−### 📱➡️ JSON Request
27+### ➡️☁️ JSON Request
28
28
29#### `$[1](Object)`
29#### `$[1](Object)`
30
30
31The type has been added.
31The type has been added.
32
32
33−### 📱⬅️ JSON Response – 200
33+### ⬅️☁️ JSON Response – 200
34
34
35#### `$[1](String)`
35#### `$[1](String)`
36
36
test/golden/common/tuple-items/heterogeneous-length-mismatch/report.md+6−6
@@ -1,20 +1,20 @@
1# Summary
1# Summary
2
2
3−| [⚠️ Breaking changes](#breaking-changes) | 🙆 Non-breaking changes | 🤷 Unsupported feature changes |
3+| [❌ Breaking changes](#breaking-changes) | ⚠️ Non-breaking changes |
4−|------------------------------------------|------------------------|-------------------------------|
4+|-----------------------------------------|-------------------------|
5−| 2 | 0 | 0 |
5+| 2 | 0 |
6
6
7−# <span id="breaking-changes"></span>⚠️ Breaking changes
7+# <span id="breaking-changes"></span>❌ Breaking changes
8
8
9## **POST** /test
9## **POST** /test
10
10
11−### 📱➡️ JSON Request
11+### ➡️☁️ JSON Request
12
12
13#### `$(Array)`
13#### `$(Array)`
14
14
15Tuple length changed from 3 to 2.
15Tuple length changed from 3 to 2.
16
16
17−### 📱⬅️ JSON Response – 200
17+### ⬅️☁️ JSON Response – 200
18
18
19#### `$(Array)`
19#### `$(Array)`
20
20
test/golden/common/tuple-items/homogeneous-component-mismatch/report.md+9−9
@@ -1,14 +1,14 @@
1# Summary
1# Summary
2
2
3−| [⚠️ Breaking changes](#breaking-changes) | [🙆 Non-breaking changes](#non-breaking-changes) | 🤷 Unsupported feature changes |
3+| [❌ Breaking changes](#breaking-changes) | [⚠️ Non-breaking changes](#non-breaking-changes) |
4−|------------------------------------------|-------------------------------------------------|-------------------------------|
4+|-----------------------------------------|--------------------------------------------------|
5−| 4 | 2 | 0 |
5+| 4 | 2 |
6
6
7−# <span id="breaking-changes"></span>⚠️ Breaking changes
7+# <span id="breaking-changes"></span>❌ Breaking changes
8
8
9## **POST** /test
9## **POST** /test
10
10
11−### 📱➡️ JSON Request
11+### ➡️☁️ JSON Request
12
12
13#### `$(Array)`
13#### `$(Array)`
14
14
@@ -18,7 +18,7 @@ The array is no longer explicitly defined as a tuple.
18
18
19The type has been removed.
19The type has been removed.
20
20
21−### 📱⬅️ JSON Response – 200
21+### ⬅️☁️ JSON Response – 200
22
22
23#### `$(Array)`
23#### `$(Array)`
24
24
@@ -28,17 +28,17 @@ The array is no longer explicitly defined as a tuple.
28
28
29The type has been added.
29The type has been added.
30
30
31−# <span id="non-breaking-changes"></span>🙆 Non-breaking changes
31+# <span id="non-breaking-changes"></span>⚠️ Non-breaking changes
32
32
33## **POST** /test
33## **POST** /test
34
34
35−### 📱➡️ JSON Request
35+### ➡️☁️ JSON Request
36
36
37#### `$[0](Number)`
37#### `$[0](Number)`
38
38
39The type has been added.
39The type has been added.
40
40
41−### 📱⬅️ JSON Response – 200
41+### ⬅️☁️ JSON Response – 200
42
42
43#### `$[0](String)`
43#### `$[0](String)`
44
44
test/golden/common/tuple-items/homogeneous-length-mismatch/report.md+13−13
@@ -1,14 +1,14 @@
1# Summary
1# Summary
2
2
3−| [⚠️ Breaking changes](#breaking-changes) | [🙆 Non-breaking changes](#non-breaking-changes) | 🤷 Unsupported feature changes |
3+| [❌ Breaking changes](#breaking-changes) | [⚠️ Non-breaking changes](#non-breaking-changes) |
4−|------------------------------------------|-------------------------------------------------|-------------------------------|
4+|-----------------------------------------|--------------------------------------------------|
5−| 5 | 5 | 0 |
5+| 5 | 5 |
6
6
7−# <span id="breaking-changes"></span>⚠️ Breaking changes
7+# <span id="breaking-changes"></span>❌ Breaking changes
8
8
9## **POST** /test1
9## **POST** /test1
10
10
11−### 📱⬅️ JSON Response – 200
11+### ⬅️☁️ JSON Response – 200
12
12
13#### `$(Array)`
13#### `$(Array)`
14
14
@@ -16,7 +16,7 @@ The array is no longer explicitly defined as a tuple.
16
16
17## **POST** /test2
17## **POST** /test2
18
18
19−### 📱⬅️ JSON Response – 200
19+### ⬅️☁️ JSON Response – 200
20
20
21#### `$(Array)`
21#### `$(Array)`
22
22
@@ -24,13 +24,13 @@ The array is no longer explicitly defined as a tuple.
24
24
25## **POST** /test3
25## **POST** /test3
26
26
27−### 📱➡️ JSON Request
27+### ➡️☁️ JSON Request
28
28
29#### `$(Array)`
29#### `$(Array)`
30
30
31Minimum length of the array changed from 2 to 3.
31Minimum length of the array changed from 2 to 3.
32
32
33−### 📱⬅️ JSON Response – 200
33+### ⬅️☁️ JSON Response – 200
34
34
35#### `$(Array)`
35#### `$(Array)`
36
36
@@ -38,11 +38,11 @@ Minimum length of the array changed from 2 to 3.
38
38
392. The array is no longer explicitly defined as a tuple.
392. The array is no longer explicitly defined as a tuple.
40
40
41−# <span id="non-breaking-changes"></span>🙆 Non-breaking changes
41+# <span id="non-breaking-changes"></span>⚠️ Non-breaking changes
42
42
43## **POST** /test1
43## **POST** /test1
44
44
45−### 📱➡️ JSON Request
45+### ➡️☁️ JSON Request
46
46
47#### `$(Array)`
47#### `$(Array)`
48
48
@@ -50,7 +50,7 @@ The array is no longer explicitly defined as a tuple.
50
50
51## **POST** /test2
51## **POST** /test2
52
52
53−### 📱➡️ JSON Request
53+### ➡️☁️ JSON Request
54
54
55#### `$(Array)`
55#### `$(Array)`
56
56
@@ -58,7 +58,7 @@ The array is no longer explicitly defined as a tuple.
58
58
59## **POST** /test3
59## **POST** /test3
60
60
61−### 📱➡️ JSON Request
61+### ➡️☁️ JSON Request
62
62
63#### `$(Array)`
63#### `$(Array)`
64
64
@@ -66,7 +66,7 @@ The array is no longer explicitly defined as a tuple.
66
66
672. The array is no longer explicitly defined as a tuple.
672. The array is no longer explicitly defined as a tuple.
68
68
69−### 📱⬅️ JSON Response – 200
69+### ⬅️☁️ JSON Response – 200
70
70
71#### `$(Array)`
71#### `$(Array)`
72
72
test/golden/common/tuple-items/homogeneous-vector/report.md+3−3
@@ -1,5 +1,5 @@
1# Summary
1# Summary
2
2
3−| ⚠️ Breaking changes | 🙆 Non-breaking changes | 🤷 Unsupported feature changes |
3+| ❌ Breaking changes | ⚠️ Non-breaking changes |
4−|---------------------|------------------------|-------------------------------|
4+|--------------------|-------------------------|
5−| 0 | 0 | 0 |
5+| 0 | 0 |
test/golden/common/type-changing/report.md+15−15
@@ -1,14 +1,14 @@
1# Summary
1# Summary
2
2
3−| [⚠️ Breaking changes](#breaking-changes) | [🙆 Non-breaking changes](#non-breaking-changes) | 🤷 Unsupported feature changes |
3+| [❌ Breaking changes](#breaking-changes) | [⚠️ Non-breaking changes](#non-breaking-changes) |
4−|------------------------------------------|-------------------------------------------------|-------------------------------|
4+|-----------------------------------------|--------------------------------------------------|
5−| 6 | 6 | 0 |
5+| 6 | 6 |
6
6
7−# <span id="breaking-changes"></span>⚠️ Breaking changes
7+# <span id="breaking-changes"></span>❌ Breaking changes
8
8
9## **POST** /test1
9## **POST** /test1
10
10
11−### 📱➡️ JSON Request
11+### ➡️☁️ JSON Request
12
12
13Values are now limited to the following types:
13Values are now limited to the following types:
14
14
@@ -16,7 +16,7 @@ Values are now limited to the following types:
16
16
17## **POST** /test2
17## **POST** /test2
18
18
19−### 📱➡️ JSON Request
19+### ➡️☁️ JSON Request
20
20
21Values are now limited to the following types:
21Values are now limited to the following types:
22
22
@@ -28,7 +28,7 @@ Values are now limited to the following types:
28
28
29## **POST** /test3
29## **POST** /test3
30
30
31−### 📱➡️ JSON Request
31+### ➡️☁️ JSON Request
32
32
33#### `$(Array)`
33#### `$(Array)`
34
34
@@ -36,7 +36,7 @@ The type has been removed.
36
36
37## **POST** /test4
37## **POST** /test4
38
38
39−### 📱➡️ JSON Request
39+### ➡️☁️ JSON Request
40
40
41#### `$(Object)`
41#### `$(Object)`
42
42
@@ -44,7 +44,7 @@ The type has been removed.
44
44
45## **POST** /test5
45## **POST** /test5
46
46
47−### 📱➡️ JSON Request
47+### ➡️☁️ JSON Request
48
48
49Values are now limited to the following types:
49Values are now limited to the following types:
50
50
@@ -54,11 +54,11 @@ Values are now limited to the following types:
54
54
55Value is now a multiple of 1.0.
55Value is now a multiple of 1.0.
56
56
57−# <span id="non-breaking-changes"></span>🙆 Non-breaking changes
57+# <span id="non-breaking-changes"></span>⚠️ Non-breaking changes
58
58
59## **POST** /test1
59## **POST** /test1
60
60
61−### 📱⬅️ JSON Response – 200
61+### ⬅️☁️ JSON Response – 200
62
62
63Values are now limited to the following types:
63Values are now limited to the following types:
64
64
@@ -66,7 +66,7 @@ Values are now limited to the following types:
66
66
67## **POST** /test2
67## **POST** /test2
68
68
69−### 📱⬅️ JSON Response – 200
69+### ⬅️☁️ JSON Response – 200
70
70
71Values are now limited to the following types:
71Values are now limited to the following types:
72
72
@@ -78,7 +78,7 @@ Values are now limited to the following types:
78
78
79## **POST** /test3
79## **POST** /test3
80
80
81−### 📱⬅️ JSON Response – 200
81+### ⬅️☁️ JSON Response – 200
82
82
83#### `$(Array)`
83#### `$(Array)`
84
84
@@ -86,7 +86,7 @@ The type has been removed.
86
86
87## **POST** /test4
87## **POST** /test4
88
88
89−### 📱⬅️ JSON Response – 200
89+### ⬅️☁️ JSON Response – 200
90
90
91#### `$(Object)`
91#### `$(Object)`
92
92
@@ -94,7 +94,7 @@ The type has been removed.
94
94
95## **POST** /test5
95## **POST** /test5
96
96
97−### 📱⬅️ JSON Response – 200
97+### ⬅️☁️ JSON Response – 200
98
98
99Values are now limited to the following types:
99Values are now limited to the following types:
100
100
test/golden/common/unguarded-recursive/report.md+6−6
@@ -1,13 +1,13 @@
1# Summary
1# Summary
2
2
3−| ⚠️ Breaking changes | 🙆 Non-breaking changes | [🤷 Unsupported feature changes](#unsupported-changes) |
3+| ❌ Breaking changes | ⚠️ Non-breaking changes | [❓ Unsupported feature changes](#unsupported-changes) |
4−|---------------------|------------------------|-------------------------------------------------------|
4+|--------------------|-------------------------|-------------------------------------------------------|
5−| 0 | 0 | 1 |
5+| 0 | 0 | 1 |
6
6
7−# <span id="unsupported-changes"></span>🤷 Unsupported feature changes
7+# <span id="unsupported-changes"></span>❓ Unsupported feature changes
8
8
9## **GET** /api/foo
9## **GET** /api/foo
10
10
11−### 📱⬅️ JSON Response – 200
11+### ⬅️☁️ JSON Response – 200
12
12
13−Encountered recursion that is too complex for OpenApi Diff to untangle.
13+Encountered recursion that is too complex for CompaREST to untangle.
test/golden/common/variant-added/report.md+7−7
@@ -1,24 +1,24 @@
1# Summary
1# Summary
2
2
3−| [⚠️ Breaking changes](#breaking-changes) | [🙆 Non-breaking changes](#non-breaking-changes) | 🤷 Unsupported feature changes |
3+| [❌ Breaking changes](#breaking-changes) | [⚠️ Non-breaking changes](#non-breaking-changes) |
4−|------------------------------------------|-------------------------------------------------|-------------------------------|
4+|-----------------------------------------|--------------------------------------------------|
5−| 1 | 1 | 0 |
5+| 1 | 1 |
6
6
7−# <span id="breaking-changes"></span>⚠️ Breaking changes
7+# <span id="breaking-changes"></span>❌ Breaking changes
8
8
9## **POST** /test
9## **POST** /test
10
10
11−### 📱⬅️ JSON Response – 200
11+### ⬅️☁️ JSON Response – 200
12
12
13#### `$(Object)`
13#### `$(Object)`
14
14
15The case where `$.tag` is `"C"` – has been added.
15The case where `$.tag` is `"C"` – has been added.
16
16
17−# <span id="non-breaking-changes"></span>🙆 Non-breaking changes
17+# <span id="non-breaking-changes"></span>⚠️ Non-breaking changes
18
18
19## **POST** /test
19## **POST** /test
20
20
21−### 📱➡️ JSON Request
21+### ➡️☁️ JSON Request
22
22
23#### `$(Object)`
23#### `$(Object)`
24
24
test/golden/common/variant-changed/report.md+9−9
@@ -1,14 +1,14 @@
1# Summary
1# Summary
2
2
3−| [⚠️ Breaking changes](#breaking-changes) | [🙆 Non-breaking changes](#non-breaking-changes) | 🤷 Unsupported feature changes |
3+| [❌ Breaking changes](#breaking-changes) | [⚠️ Non-breaking changes](#non-breaking-changes) |
4−|------------------------------------------|-------------------------------------------------|-------------------------------|
4+|-----------------------------------------|--------------------------------------------------|
5−| 2 | 2 | 0 |
5+| 2 | 2 |
6
6
7−# <span id="breaking-changes"></span>⚠️ Breaking changes
7+# <span id="breaking-changes"></span>❌ Breaking changes
8
8
9## **POST** /test
9## **POST** /test
10
10
11−### 📱➡️ JSON Request
11+### ➡️☁️ JSON Request
12
12
13#### In cases where `$.tag` is `"B"`
13#### In cases where `$.tag` is `"B"`
14
14
@@ -16,7 +16,7 @@
16
16
17The type has been removed.
17The type has been removed.
18
18
19−### 📱⬅️ JSON Response – 200
19+### ⬅️☁️ JSON Response – 200
20
20
21#### In cases where `$.tag` is `"B"`
21#### In cases where `$.tag` is `"B"`
22
22
@@ -24,11 +24,11 @@ The type has been removed.
24
24
25The type has been added.
25The type has been added.
26
26
27−# <span id="non-breaking-changes"></span>🙆 Non-breaking changes
27+# <span id="non-breaking-changes"></span>⚠️ Non-breaking changes
28
28
29## **POST** /test
29## **POST** /test
30
30
31−### 📱➡️ JSON Request
31+### ➡️☁️ JSON Request
32
32
33#### In cases where `$.tag` is `"B"`
33#### In cases where `$.tag` is `"B"`
34
34
@@ -36,7 +36,7 @@ The type has been added.
36
36
37The type has been added.
37The type has been added.
38
38
39−### 📱⬅️ JSON Response – 200
39+### ⬅️☁️ JSON Response – 200
40
40
41#### In cases where `$.tag` is `"B"`
41#### In cases where `$.tag` is `"B"`
42
42
test/golden/common/variant-deep-changed/report.md+9−9
@@ -1,14 +1,14 @@
1# Summary
1# Summary
2
2
3−| [⚠️ Breaking changes](#breaking-changes) | [🙆 Non-breaking changes](#non-breaking-changes) | 🤷 Unsupported feature changes |
3+| [❌ Breaking changes](#breaking-changes) | [⚠️ Non-breaking changes](#non-breaking-changes) |
4−|------------------------------------------|-------------------------------------------------|-------------------------------|
4+|-----------------------------------------|--------------------------------------------------|
5−| 2 | 2 | 0 |
5+| 2 | 2 |
6
6
7−# <span id="breaking-changes"></span>⚠️ Breaking changes
7+# <span id="breaking-changes"></span>❌ Breaking changes
8
8
9## **POST** /test
9## **POST** /test
10
10
11−### 📱➡️ JSON Request
11+### ➡️☁️ JSON Request
12
12
13#### In cases where `$.desc.name` is `"B"`
13#### In cases where `$.desc.name` is `"B"`
14
14
@@ -16,7 +16,7 @@
16
16
17The type has been removed.
17The type has been removed.
18
18
19−### 📱⬅️ JSON Response – 200
19+### ⬅️☁️ JSON Response – 200
20
20
21#### In cases where `$.desc.name` is `"B"`
21#### In cases where `$.desc.name` is `"B"`
22
22
@@ -24,11 +24,11 @@ The type has been removed.
24
24
25The type has been added.
25The type has been added.
26
26
27−# <span id="non-breaking-changes"></span>🙆 Non-breaking changes
27+# <span id="non-breaking-changes"></span>⚠️ Non-breaking changes
28
28
29## **POST** /test
29## **POST** /test
30
30
31−### 📱➡️ JSON Request
31+### ➡️☁️ JSON Request
32
32
33#### In cases where `$.desc.name` is `"B"`
33#### In cases where `$.desc.name` is `"B"`
34
34
@@ -36,7 +36,7 @@ The type has been added.
36
36
37The type has been added.
37The type has been added.
38
38
39−### 📱⬅️ JSON Response – 200
39+### ⬅️☁️ JSON Response – 200
40
40
41#### In cases where `$.desc.name` is `"B"`
41#### In cases where `$.desc.name` is `"B"`
42
42