git.iko.soy/typeable/servant-swagger-ui
on master help sign in
131 files changed+62493−30900
since splitsnapshots
unifiedsplit
.gitignore+3−1 .travis.meta.yml−30 .travis.yml+194−231 CHANGELOG.md−10 README.md+7−4 cabal.haskell-ci+17 cabal.project+6 example/Main.hs−121 hackage-docs.sh−78 index.html.tmpl−124 package.yaml−68 screenshot.png servant-0.4-cabal.config−1 servant-0.5-cabal.config−1 servant-0.6-cabal.config−1 servant-0.7-cabal.config−1 servant-0.8-cabal.config−1 servant-0.9-cabal.config−1 servant-swagger-ui-core/Changelog.md+7 LICENSE → servant-swagger-ui-core/LICENSE servant-swagger-ui-core/servant-swagger-ui-core.cabal+54 src/Servant/Swagger/UI.hs → servant-swagger-ui-core/src/Servant/Swagger/UI/Core.hs+28−43 servant-swagger-ui-example/LICENSE+30 Setup.hs → servant-swagger-ui-example/Setup.hs−1 servant-swagger-ui-example/servant-swagger-ui-example.cabal+49 servant-swagger-ui-example/src/Main.hs+213 servant-swagger-ui-jensoleg/LICENSE+45 servant-swagger-ui-jensoleg/jensoleg-dist/css/api-explorer.css+2426 servant-swagger-ui-jensoleg/jensoleg-dist/css/index.css+17432 swagger-dist-2.1.5/css/print.css → servant-swagger-ui-jensoleg/jensoleg-dist/css/print.css+20−215 swagger-dist-2.1.5/css/reset.css → servant-swagger-ui-jensoleg/jensoleg-dist/css/reset.css servant-swagger-ui-jensoleg/jensoleg-dist/css/screen.css+9 servant-swagger-ui-jensoleg/jensoleg-dist/css/standalone.css+294 servant-swagger-ui-jensoleg/jensoleg-dist/css/typography.css+26 servant-swagger-ui-jensoleg/jensoleg-dist/fonts/droid-sans-v6-latin-700.eot servant-swagger-ui-jensoleg/jensoleg-dist/fonts/droid-sans-v6-latin-700.svg+411 swagger-dist-2.1.5/fonts/DroidSans-Bold.ttf → servant-swagger-ui-jensoleg/jensoleg-dist/fonts/droid-sans-v6-latin-700.ttf servant-swagger-ui-jensoleg/jensoleg-dist/fonts/droid-sans-v6-latin-700.woff servant-swagger-ui-jensoleg/jensoleg-dist/fonts/droid-sans-v6-latin-700.woff2 servant-swagger-ui-jensoleg/jensoleg-dist/fonts/droid-sans-v6-latin-regular.eot servant-swagger-ui-jensoleg/jensoleg-dist/fonts/droid-sans-v6-latin-regular.svg+403 swagger-dist-2.1.5/fonts/DroidSans.ttf → servant-swagger-ui-jensoleg/jensoleg-dist/fonts/droid-sans-v6-latin-regular.ttf servant-swagger-ui-jensoleg/jensoleg-dist/fonts/droid-sans-v6-latin-regular.woff servant-swagger-ui-jensoleg/jensoleg-dist/fonts/droid-sans-v6-latin-regular.woff2 servant-swagger-ui-jensoleg/jensoleg-dist/images/Swagger_explorer.png servant-swagger-ui-jensoleg/jensoleg-dist/images/Swagger_explorer_min.png swagger-dist-2.1.5/images/explorer_icons.png → servant-swagger-ui-jensoleg/jensoleg-dist/images/explorer_icons.png swagger-dist-2.1.5/images/favicon-16x16.png → servant-swagger-ui-jensoleg/jensoleg-dist/images/favicon-16x16.png swagger-dist-2.1.5/images/favicon-32x32.png → servant-swagger-ui-jensoleg/jensoleg-dist/images/favicon-32x32.png swagger-dist-2.1.5/images/favicon.ico → servant-swagger-ui-jensoleg/jensoleg-dist/images/favicon.ico servant-swagger-ui-jensoleg/jensoleg-dist/images/json_editor_integration.png swagger-dist-2.1.5/images/logo_small.png → servant-swagger-ui-jensoleg/jensoleg-dist/images/logo_small.png swagger-dist-2.1.5/images/pet_store_api.png → servant-swagger-ui-jensoleg/jensoleg-dist/images/pet_store_api.png servant-swagger-ui-jensoleg/jensoleg-dist/images/senodio.png swagger-dist-2.1.5/images/throbber.gif → servant-swagger-ui-jensoleg/jensoleg-dist/images/throbber.gif swagger-dist-2.1.5/images/wordnik_api.png → servant-swagger-ui-jensoleg/jensoleg-dist/images/wordnik_api.png servant-swagger-ui-jensoleg/jensoleg-dist/index.html+237 swagger-dist-2.1.5/lib/backbone-min.js → servant-swagger-ui-jensoleg/jensoleg-dist/lib/backbone-min.js servant-swagger-ui-jensoleg/jensoleg-dist/lib/bootstrap.min.js+6 swagger-dist-2.1.5/lib/handlebars-2.0.0.js → servant-swagger-ui-jensoleg/jensoleg-dist/lib/handlebars-2.0.0.js servant-swagger-ui-jensoleg/jensoleg-dist/lib/highlight.7.3.pack.js+1 swagger-dist-2.1.5/lib/jquery-1.8.0.min.js → servant-swagger-ui-jensoleg/jensoleg-dist/lib/jquery-1.8.0.min.js swagger-dist-2.1.5/lib/jquery.ba-bbq.min.js → servant-swagger-ui-jensoleg/jensoleg-dist/lib/jquery.ba-bbq.min.js swagger-dist-2.1.5/lib/jquery.slideto.min.js → servant-swagger-ui-jensoleg/jensoleg-dist/lib/jquery.slideto.min.js swagger-dist-2.1.5/lib/jquery.wiggle.min.js → servant-swagger-ui-jensoleg/jensoleg-dist/lib/jquery.wiggle.min.js servant-swagger-ui-jensoleg/jensoleg-dist/lib/jsoneditor.js+7287 swagger-dist-2.1.5/lib/marked.js → servant-swagger-ui-jensoleg/jensoleg-dist/lib/marked.js servant-swagger-ui-jensoleg/jensoleg-dist/lib/swagger-oauth.js+286 servant-swagger-ui-jensoleg/jensoleg-dist/lib/underscore-min.js+6 servant-swagger-ui-jensoleg/jensoleg-dist/moncierge.json+7191 swagger-dist-2.1.5/o2c.html → servant-swagger-ui-jensoleg/jensoleg-dist/o2c.html servant-swagger-ui-jensoleg/jensoleg-dist/petstore.json+1029 servant-swagger-ui-jensoleg/jensoleg-dist/swagger-ui.js+22643 servant-swagger-ui-jensoleg/jensoleg-dist/swagger-ui.min.js+9 servant-swagger-ui-jensoleg/jensoleg-dist/swagger.json+1055 servant-swagger-ui-jensoleg/jensoleg.index.html.tmpl+255 servant-swagger-ui-jensoleg/servant-swagger-ui-jensoleg.cabal+98 servant-swagger-ui-jensoleg/src/Servant/Swagger/UI/JensOleG.hs+85 servant-swagger-ui-redoc/CHANGELOG.md+10 servant-swagger-ui-redoc/LICENSE+45 servant-swagger-ui-redoc/redoc-dist-1.22.3/redoc.min.js+8 servant-swagger-ui-redoc/redoc.index.html.tmpl+23 servant-swagger-ui-redoc/servant-swagger-ui-redoc.cabal+47 servant-swagger-ui-redoc/src/Servant/Swagger/UI/ReDoc.hs+84 servant-swagger-ui.cabal−154 servant-swagger-ui/CHANGELOG.md+55 servant-swagger-ui/LICENSE+45 servant-swagger-ui/index.html.tmpl+80 servant-swagger-ui/servant-swagger-ui.cabal+57 servant-swagger-ui/src/Servant/Swagger/UI.hs+90 servant-swagger-ui/swagger-ui-dist-3.36.1/favicon-16x16.png servant-swagger-ui/swagger-ui-dist-3.36.1/favicon-32x32.png servant-swagger-ui/swagger-ui-dist-3.36.1/oauth2-redirect.html+74 servant-swagger-ui/swagger-ui-dist-3.36.1/swagger-ui-bundle.js+3 servant-swagger-ui/swagger-ui-dist-3.36.1/swagger-ui-standalone-preset.js+3 servant-swagger-ui/swagger-ui-dist-3.36.1/swagger-ui.css+4 servant-swagger-ui/swagger-ui-dist-3.36.1/swagger-ui.js+3 src/Servant/Swagger/UI/Internal.hs−57 stack-lts-2.yaml−14 stack-lts-5.yaml−7 stack.yaml−9 swagger-dist-2.1.5/css/screen.css−1489 swagger-dist-2.1.5/css/style.css−250 swagger-dist-2.1.5/css/typography.css−14 swagger-dist-2.1.5/images/collapse.gif swagger-dist-2.1.5/images/expand.gif swagger-dist-2.1.5/lang/en.js−56 swagger-dist-2.1.5/lang/es.js−53 swagger-dist-2.1.5/lang/fr.js−54 swagger-dist-2.1.5/lang/geo.js−56 swagger-dist-2.1.5/lang/it.js−52 swagger-dist-2.1.5/lang/ja.js−53 swagger-dist-2.1.5/lang/ko-kr.js−53 swagger-dist-2.1.5/lang/pl.js−53 swagger-dist-2.1.5/lang/pt.js−53 swagger-dist-2.1.5/lang/ru.js−56 swagger-dist-2.1.5/lang/tr.js−53 swagger-dist-2.1.5/lang/translator.js−39 swagger-dist-2.1.5/lang/zh-cn.js−53 swagger-dist-2.1.5/lib/es5-shim.js−2065 swagger-dist-2.1.5/lib/highlight.9.1.0.pack.js−2 swagger-dist-2.1.5/lib/highlight.9.1.0.pack_extended.js−34 swagger-dist-2.1.5/lib/js-yaml.min.js−3 swagger-dist-2.1.5/lib/jsoneditor.min.js−11 swagger-dist-2.1.5/lib/lodash.min.js−102 swagger-dist-2.1.5/lib/object-assign-pollyfill.js−23 swagger-dist-2.1.5/lib/swagger-oauth.js−347 swagger-dist-2.1.5/swagger-ui.js−24691 swagger-dist-2.1.5/swagger-ui.min.js−10 swagger2-2.0-cabal.config−1 swagger2-2.1-cabal.config−1
.gitignore+3−1
@@ -1,6 +1,8 @@
11dist/
2+dist-newstyle/
3+.ghc.environment.*
24.stack-work/
35.cabal-sandbox
46cabal.sandbox.config
57src/highlight.js
6−src/style.css
8+src/style.css
.travis.meta.ymldeleted−30
@@ -1,30 +0,0 @@
1−language: haskell-multi-ghc
2−
3−env:
4− - GHCVER=8.0.1 CABALVER=1.24 CABALCONFIG=swagger2-2.1-cabal.config
5− - GHCVER=8.0.1 CABALVER=1.24 CABALCONFIG=servant-0.9-cabal.config
6− - GHCVER=8.0.1 CABALVER=1.24 CABALCONFIG=servant-0.8-cabal.config
7− - GHCVER=8.0.1 CABALVER=1.24 CABALCONFIG=servant-0.7-cabal.config
8−
9− - GHCVER=7.10.3 CABALVER=1.22 CABALCONFIG=swagger2-2.1-cabal.config
10− - GHCVER=7.10.3 CABALVER=1.22 CABALCONFIG=swagger2-2.0-cabal.config
11− - GHCVER=7.10.3 CABALVER=1.22 CABALCONFIG=servant-0.9-cabal.config
12− - GHCVER=7.10.3 CABALVER=1.22 CABALCONFIG=servant-0.8-cabal.config
13− - GHCVER=7.10.3 CABALVER=1.22 CABALCONFIG=servant-0.7-cabal.config
14− - GHCVER=7.10.3 CABALVER=1.22 CABALCONFIG=servant-0.6-cabal.config
15− - GHCVER=7.10.3 CABALVER=1.22 CABALCONFIG=servant-0.5-cabal.config
16− - GHCVER=7.10.3 CABALVER=1.22 CABALCONFIG=servant-0.4-cabal.config
17−
18− - GHCVER=7.8.4 CABALVER=1.18 CABALCONFIG=servant-0.9-cabal.config
19− - GHCVER=7.8.4 CABALVER=1.18 CABALCONFIG=servant-0.8-cabal.config
20− - GHCVER=7.8.4 CABALVER=1.18 CABALCONFIG=servant-0.7-cabal.config
21− - GHCVER=7.8.4 CABALVER=1.18 CABALCONFIG=servant-0.6-cabal.config
22− - GHCVER=7.8.4 CABALVER=1.18 CABALCONFIG=servant-0.5-cabal.config
23− - GHCVER=7.8.4 CABALVER=1.18 CABALCONFIG=servant-0.4-cabal.config
24−
25−matrix:
26− fast_finish: true
27−
28−branches:
29− only:
30− - master
.travis.yml+194−231
@@ -1,236 +1,199 @@
1−# This file has been generated by travis-meta-yaml 0.2.0.0
2−# see https://github.com/phadej/travis-meta-yaml
3−sudo: false
1+# This Travis job script has been generated by a script via
2+#
3+# haskell-ci '--output' '.travis.yml' '--config=cabal.haskell-ci' 'cabal.project'
4+#
5+# To regenerate the script (for example after adjusting tested-with) run
6+#
7+# haskell-ci regenerate
8+#
9+# For more information, see https://github.com/haskell-CI/haskell-ci
10+#
11+# version: 0.10.3
12+#
13+version: ~> 1.0
414language: c
5−before_install:
6−- unset CC
7−- export PATH=/opt/ghc/$GHCVER/bin:/opt/cabal/$CABALVER/bin:$PATH
8−- echo "$(ghc --version) [$(ghc --print-project-git-commit-id 2> /dev/null || echo
9− '?')]"
10−- cabal --version
11−- ghc --version
12−- if [ "$NOTESTS" = "YES" ]; then export CABALCONFOPTS="$CABALFLAGS"; export CABALTEST="true";
13− else export CABALCONFOPTS="$CABALFLAGS --enable-tests --enable-benchmarks"; export
14− CABALTEST="cabal test"; fi
15−- if [ "$PEDANTIC" = "YES" ]; then export CABALBUILDOPTS="--ghc-options=-Werror --ghc-options=-Wall";
16− fi
17−install:
18−- if [ -f $HOME/.cabal/packages/hackage.haskell.org/00-index.tar.gz ]; then zcat $HOME/.cabal/packages/hackage.haskell.org/00-index.tar.gz
19− > $HOME/.cabal/packages/hackage.haskell.org/00-index.tar; ls -l $HOME/.cabal/packages/hackage.haskell.org/;
20− fi; cabal update; sed -i 's/^jobs:/-- jobs:/' ${HOME}/.cabal/config; if [ -n "$CABALCONFIG"
21− ]; then cp $CABALCONFIG cabal.config; fi; if [ -n "$STACKAGESNAPSHOT" ]; then curl
22− --silent https://www.stackage.org/$STACKAGESNAPSHOT/cabal.config | grep -v "$(cabal
23− info . -v0 | head -n 1 | awk '{ print $2 }' | sed -E 's/-[0-9]+(\.[0-9]+)+//') =="
24− > cabal.config; fi; cabal install --constraint='integer-simple installed' --only-dependencies
25− $CABALCONFOPTS --dry -v > installplan.txt; sed -i -e '1,/^Resolving /d' installplan.txt;
26− cat installplan.txt; if diff -u $HOME/.cabsnap/installplan.txt installplan.txt;
27− then echo "cabal build-cache HIT"; rm -rfv .ghc; cp -av $HOME/.cabsnap/ghc $HOME/.ghc;
28− cp -av $HOME/.cabsnap/lib $HOME/.cabsnap/share $HOME/.cabsnap/bin $HOME/.cabal/;
29− else echo "cabal build-cache MISS"; rm -rf $HOME/.cabsnap; mkdir -p $HOME/.ghc $HOME/.cabal/lib
30− $HOME/.cabal/share $HOME/.cabal/bin; cabal install --constraint='integer-simple
31− installed' --only-dependencies $CABALCONFOPTS; fi; if [ ! -d $HOME/.cabsnap ]; then
32− echo "snapshotting package-db to build-cache"; mkdir $HOME/.cabsnap; cp -av $HOME/.ghc
33− $HOME/.cabsnap/ghc; cp -av $HOME/.cabal/lib $HOME/.cabal/share $HOME/.cabal/bin
34− installplan.txt $HOME/.cabsnap/; fi;
35−script:
36−- if [ -f configure.ac ]; then autoreconf -i; fi
37−- cabal configure $CABALCONFOPTS -v2
38−- cabal build $CABALBUILDOPTS
39−- $CABALTEST
40−- if [ "$CABALVER" = "1.22" ]; then cabal check; fi
41−- cabal sdist
42−- SRC_TGZ=$(cabal info . | awk '{print $2;exit}').tar.gz && (cd dist && cabal install
43− --constraint='integer-simple installed' --force-reinstalls $CABALFLAGS "$SRC_TGZ")
44−matrix:
45− fast_finish: true
46− include:
47− - env: GHCVER=8.0.1 CABALVER=1.24 CABALCONFIG=swagger2-2.1-cabal.config
48− addons:
49− apt:
50− sources:
51− - hvr-ghc
52− packages:
53− - cabal-install-1.24
54− - ghc-8.0.1
55− - libgmp-dev
56− compiler: ! ': # ghc-8.0.1 cabal-1.24 swagger2-2.1-cabal.config'
57− - env: GHCVER=8.0.1 CABALVER=1.24 CABALCONFIG=servant-0.9-cabal.config
58− addons:
59− apt:
60− sources:
61− - hvr-ghc
62− packages:
63− - cabal-install-1.24
64− - ghc-8.0.1
65− - libgmp-dev
66− compiler: ! ': # ghc-8.0.1 cabal-1.24 servant-0.9-cabal.config'
67− - env: GHCVER=8.0.1 CABALVER=1.24 CABALCONFIG=servant-0.8-cabal.config
68− addons:
69− apt:
70− sources:
71− - hvr-ghc
72− packages:
73− - cabal-install-1.24
74− - ghc-8.0.1
75− - libgmp-dev
76− compiler: ! ': # ghc-8.0.1 cabal-1.24 servant-0.8-cabal.config'
77− - env: GHCVER=8.0.1 CABALVER=1.24 CABALCONFIG=servant-0.7-cabal.config
78− addons:
79− apt:
80− sources:
81− - hvr-ghc
82− packages:
83− - cabal-install-1.24
84− - ghc-8.0.1
85− - libgmp-dev
86− compiler: ! ': # ghc-8.0.1 cabal-1.24 servant-0.7-cabal.config'
87− - env: GHCVER=7.10.3 CABALVER=1.22 CABALCONFIG=swagger2-2.1-cabal.config
88− addons:
89− apt:
90− sources:
91− - hvr-ghc
92− packages:
93− - cabal-install-1.22
94− - ghc-7.10.3
95− - libgmp-dev
96− compiler: ! ': # ghc-7.10.3 cabal-1.22 swagger2-2.1-cabal.config'
97− - env: GHCVER=7.10.3 CABALVER=1.22 CABALCONFIG=swagger2-2.0-cabal.config
98− addons:
99− apt:
100− sources:
101− - hvr-ghc
102− packages:
103− - cabal-install-1.22
104− - ghc-7.10.3
105− - libgmp-dev
106− compiler: ! ': # ghc-7.10.3 cabal-1.22 swagger2-2.0-cabal.config'
107− - env: GHCVER=7.10.3 CABALVER=1.22 CABALCONFIG=servant-0.9-cabal.config
108− addons:
109− apt:
110− sources:
111− - hvr-ghc
112− packages:
113− - cabal-install-1.22
114− - ghc-7.10.3
115− - libgmp-dev
116− compiler: ! ': # ghc-7.10.3 cabal-1.22 servant-0.9-cabal.config'
117− - env: GHCVER=7.10.3 CABALVER=1.22 CABALCONFIG=servant-0.8-cabal.config
118− addons:
119− apt:
120− sources:
121− - hvr-ghc
122− packages:
123− - cabal-install-1.22
124− - ghc-7.10.3
125− - libgmp-dev
126− compiler: ! ': # ghc-7.10.3 cabal-1.22 servant-0.8-cabal.config'
127− - env: GHCVER=7.10.3 CABALVER=1.22 CABALCONFIG=servant-0.7-cabal.config
128− addons:
129− apt:
130− sources:
131− - hvr-ghc
132− packages:
133− - cabal-install-1.22
134− - ghc-7.10.3
135− - libgmp-dev
136− compiler: ! ': # ghc-7.10.3 cabal-1.22 servant-0.7-cabal.config'
137− - env: GHCVER=7.10.3 CABALVER=1.22 CABALCONFIG=servant-0.6-cabal.config
138− addons:
139− apt:
140− sources:
141− - hvr-ghc
142− packages:
143− - cabal-install-1.22
144− - ghc-7.10.3
145− - libgmp-dev
146− compiler: ! ': # ghc-7.10.3 cabal-1.22 servant-0.6-cabal.config'
147− - env: GHCVER=7.10.3 CABALVER=1.22 CABALCONFIG=servant-0.5-cabal.config
148− addons:
149− apt:
150− sources:
151− - hvr-ghc
152− packages:
153− - cabal-install-1.22
154− - ghc-7.10.3
155− - libgmp-dev
156− compiler: ! ': # ghc-7.10.3 cabal-1.22 servant-0.5-cabal.config'
157− - env: GHCVER=7.10.3 CABALVER=1.22 CABALCONFIG=servant-0.4-cabal.config
158− addons:
159− apt:
160− sources:
161− - hvr-ghc
162− packages:
163− - cabal-install-1.22
164− - ghc-7.10.3
165− - libgmp-dev
166− compiler: ! ': # ghc-7.10.3 cabal-1.22 servant-0.4-cabal.config'
167− - env: GHCVER=7.8.4 CABALVER=1.18 CABALCONFIG=servant-0.9-cabal.config
168− addons:
169− apt:
170− sources:
171− - hvr-ghc
172− packages:
173− - cabal-install-1.18
174− - ghc-7.8.4
175− - libgmp-dev
176− compiler: ! ': # ghc-7.8.4 cabal-1.18 servant-0.9-cabal.config'
177− - env: GHCVER=7.8.4 CABALVER=1.18 CABALCONFIG=servant-0.8-cabal.config
178− addons:
179− apt:
180− sources:
181− - hvr-ghc
182− packages:
183− - cabal-install-1.18
184− - ghc-7.8.4
185− - libgmp-dev
186− compiler: ! ': # ghc-7.8.4 cabal-1.18 servant-0.8-cabal.config'
187− - env: GHCVER=7.8.4 CABALVER=1.18 CABALCONFIG=servant-0.7-cabal.config
188− addons:
189− apt:
190− sources:
191− - hvr-ghc
192− packages:
193− - cabal-install-1.18
194− - ghc-7.8.4
195− - libgmp-dev
196− compiler: ! ': # ghc-7.8.4 cabal-1.18 servant-0.7-cabal.config'
197− - env: GHCVER=7.8.4 CABALVER=1.18 CABALCONFIG=servant-0.6-cabal.config
198− addons:
199− apt:
200− sources:
201− - hvr-ghc
202− packages:
203− - cabal-install-1.18
204− - ghc-7.8.4
205− - libgmp-dev
206− compiler: ! ': # ghc-7.8.4 cabal-1.18 servant-0.6-cabal.config'
207− - env: GHCVER=7.8.4 CABALVER=1.18 CABALCONFIG=servant-0.5-cabal.config
208− addons:
209− apt:
210− sources:
211− - hvr-ghc
212− packages:
213− - cabal-install-1.18
214− - ghc-7.8.4
215− - libgmp-dev
216− compiler: ! ': # ghc-7.8.4 cabal-1.18 servant-0.5-cabal.config'
217− - env: GHCVER=7.8.4 CABALVER=1.18 CABALCONFIG=servant-0.4-cabal.config
218− addons:
219− apt:
220− sources:
221− - hvr-ghc
222− packages:
223− - cabal-install-1.18
224− - ghc-7.8.4
225− - libgmp-dev
226− compiler: ! ': # ghc-7.8.4 cabal-1.18 servant-0.4-cabal.config'
15+os: linux
16+dist: xenial
17+git:
18+ # whether to recursively clone submodules
19+ submodules: false
22720branches:
22821 only:
229− - master
230−before_cache:
231−- rm -fv $HOME/.cabal/packages/hackage.haskell.org/build-reports.log
232−- rm -fv $HOME/.cabal/packages/hackage.haskell.org/00-index.tar
22+ - master
23323cache:
23424 directories:
235− - $HOME/.cabsnap
236− - $HOME/.cabal/packages
25+ - $HOME/.cabal/packages
26+ - $HOME/.cabal/store
27+ - $HOME/.hlint
28+before_cache:
29+ - rm -fv $CABALHOME/packages/hackage.haskell.org/build-reports.log
30+ # remove files that are regenerated by 'cabal update'
31+ - rm -fv $CABALHOME/packages/hackage.haskell.org/00-index.*
32+ - rm -fv $CABALHOME/packages/hackage.haskell.org/*.json
33+ - rm -fv $CABALHOME/packages/hackage.haskell.org/01-index.cache
34+ - rm -fv $CABALHOME/packages/hackage.haskell.org/01-index.tar
35+ - rm -fv $CABALHOME/packages/hackage.haskell.org/01-index.tar.idx
36+ - rm -rfv $CABALHOME/packages/head.hackage
37+jobs:
38+ include:
39+ - compiler: ghc-8.10.2
40+ addons: {"apt":{"sources":[{"sourceline":"deb http://ppa.launchpad.net/hvr/ghc/ubuntu xenial main","key_url":"https://keyserver.ubuntu.com/pks/lookup?op=get&search=0x063dab2bdc0b3f9fcebc378bff3aeacef6f88286"}],"packages":["ghc-8.10.2","cabal-install-3.2"]}}
41+ os: linux
42+ - compiler: ghc-8.8.4
43+ addons: {"apt":{"sources":[{"sourceline":"deb http://ppa.launchpad.net/hvr/ghc/ubuntu xenial main","key_url":"https://keyserver.ubuntu.com/pks/lookup?op=get&search=0x063dab2bdc0b3f9fcebc378bff3aeacef6f88286"}],"packages":["ghc-8.8.4","cabal-install-3.2"]}}
44+ os: linux
45+ - compiler: ghc-8.6.5
46+ addons: {"apt":{"sources":[{"sourceline":"deb http://ppa.launchpad.net/hvr/ghc/ubuntu xenial main","key_url":"https://keyserver.ubuntu.com/pks/lookup?op=get&search=0x063dab2bdc0b3f9fcebc378bff3aeacef6f88286"}],"packages":["ghc-8.6.5","cabal-install-3.2"]}}
47+ os: linux
48+ - compiler: ghc-8.4.4
49+ addons: {"apt":{"sources":[{"sourceline":"deb http://ppa.launchpad.net/hvr/ghc/ubuntu xenial main","key_url":"https://keyserver.ubuntu.com/pks/lookup?op=get&search=0x063dab2bdc0b3f9fcebc378bff3aeacef6f88286"}],"packages":["ghc-8.4.4","cabal-install-3.2"]}}
50+ os: linux
51+ - compiler: ghc-8.2.2
52+ addons: {"apt":{"sources":[{"sourceline":"deb http://ppa.launchpad.net/hvr/ghc/ubuntu xenial main","key_url":"https://keyserver.ubuntu.com/pks/lookup?op=get&search=0x063dab2bdc0b3f9fcebc378bff3aeacef6f88286"}],"packages":["ghc-8.2.2","cabal-install-3.2"]}}
53+ os: linux
54+ - compiler: ghc-8.0.2
55+ addons: {"apt":{"sources":[{"sourceline":"deb http://ppa.launchpad.net/hvr/ghc/ubuntu xenial main","key_url":"https://keyserver.ubuntu.com/pks/lookup?op=get&search=0x063dab2bdc0b3f9fcebc378bff3aeacef6f88286"}],"packages":["ghc-8.0.2","cabal-install-3.2"]}}
56+ os: linux
57+before_install:
58+ - HC=$(echo "/opt/$CC/bin/ghc" | sed 's/-/\//')
59+ - WITHCOMPILER="-w $HC"
60+ - HADDOCK=$(echo "/opt/$CC/bin/haddock" | sed 's/-/\//')
61+ - HCPKG="$HC-pkg"
62+ - unset CC
63+ - CABAL=/opt/ghc/bin/cabal
64+ - CABALHOME=$HOME/.cabal
65+ - export PATH="$CABALHOME/bin:$PATH"
66+ - TOP=$(pwd)
67+ - "HCNUMVER=$(${HC} --numeric-version|perl -ne '/^(\\d+)\\.(\\d+)\\.(\\d+)(\\.(\\d+))?$/; print(10000 * $1 + 100 * $2 + ($3 == 0 ? $5 != 1 : $3))')"
68+ - echo $HCNUMVER
69+ - CABAL="$CABAL -vnormal+nowrap"
70+ - set -o pipefail
71+ - TEST=--enable-tests
72+ - BENCH=--enable-benchmarks
73+ - HEADHACKAGE=false
74+ - rm -f $CABALHOME/config
75+ - |
76+ echo "verbose: normal +nowrap +markoutput" >> $CABALHOME/config
77+ echo "remote-build-reporting: anonymous" >> $CABALHOME/config
78+ echo "write-ghc-environment-files: always" >> $CABALHOME/config
79+ echo "remote-repo-cache: $CABALHOME/packages" >> $CABALHOME/config
80+ echo "logs-dir: $CABALHOME/logs" >> $CABALHOME/config
81+ echo "world-file: $CABALHOME/world" >> $CABALHOME/config
82+ echo "extra-prog-path: $CABALHOME/bin" >> $CABALHOME/config
83+ echo "symlink-bindir: $CABALHOME/bin" >> $CABALHOME/config
84+ echo "installdir: $CABALHOME/bin" >> $CABALHOME/config
85+ echo "build-summary: $CABALHOME/logs/build.log" >> $CABALHOME/config
86+ echo "store-dir: $CABALHOME/store" >> $CABALHOME/config
87+ echo "install-dirs user" >> $CABALHOME/config
88+ echo " prefix: $CABALHOME" >> $CABALHOME/config
89+ echo "repository hackage.haskell.org" >> $CABALHOME/config
90+ echo " url: http://hackage.haskell.org/" >> $CABALHOME/config
91+install:
92+ - ${CABAL} --version
93+ - echo "$(${HC} --version) [$(${HC} --print-project-git-commit-id 2> /dev/null || echo '?')]"
94+ - |
95+ echo "program-default-options" >> $CABALHOME/config
96+ echo " ghc-options: $GHCJOBS +RTS -M6G -RTS" >> $CABALHOME/config
97+ - cat $CABALHOME/config
98+ - rm -fv cabal.project cabal.project.local cabal.project.freeze
99+ - travis_retry ${CABAL} v2-update -v
100+ # Generate cabal.project
101+ - rm -rf cabal.project cabal.project.local cabal.project.freeze
102+ - touch cabal.project
103+ - |
104+ echo "packages: servant-swagger-ui" >> cabal.project
105+ echo "packages: servant-swagger-ui-core" >> cabal.project
106+ echo "packages: servant-swagger-ui-example" >> cabal.project
107+ echo "packages: servant-swagger-ui-jensoleg" >> cabal.project
108+ echo "packages: servant-swagger-ui-redoc" >> cabal.project
109+ - if [ $HCNUMVER -ge 80200 ] ; then echo 'package servant-swagger-ui' >> cabal.project ; fi
110+ - "if [ $HCNUMVER -ge 80200 ] ; then echo ' ghc-options: -Werror=missing-methods' >> cabal.project ; fi"
111+ - if [ $HCNUMVER -ge 80200 ] ; then echo 'package servant-swagger-ui-core' >> cabal.project ; fi
112+ - "if [ $HCNUMVER -ge 80200 ] ; then echo ' ghc-options: -Werror=missing-methods' >> cabal.project ; fi"
113+ - if [ $HCNUMVER -ge 80200 ] ; then echo 'package servant-swagger-ui-example' >> cabal.project ; fi
114+ - "if [ $HCNUMVER -ge 80200 ] ; then echo ' ghc-options: -Werror=missing-methods' >> cabal.project ; fi"
115+ - if [ $HCNUMVER -ge 80200 ] ; then echo 'package servant-swagger-ui-jensoleg' >> cabal.project ; fi
116+ - "if [ $HCNUMVER -ge 80200 ] ; then echo ' ghc-options: -Werror=missing-methods' >> cabal.project ; fi"
117+ - if [ $HCNUMVER -ge 80200 ] ; then echo 'package servant-swagger-ui-redoc' >> cabal.project ; fi
118+ - "if [ $HCNUMVER -ge 80200 ] ; then echo ' ghc-options: -Werror=missing-methods' >> cabal.project ; fi"
119+ - |
120+ - "for pkg in $($HCPKG list --simple-output); do echo $pkg | sed 's/-[^-]*$//' | (grep -vE -- '^(servant-swagger-ui|servant-swagger-ui-core|servant-swagger-ui-example|servant-swagger-ui-jensoleg|servant-swagger-ui-redoc)$' || true) | sed 's/^/constraints: /' | sed 's/$/ installed/' >> cabal.project.local; done"
121+ - cat cabal.project || true
122+ - cat cabal.project.local || true
123+ - if [ -f "servant-swagger-ui/configure.ac" ]; then (cd "servant-swagger-ui" && autoreconf -i); fi
124+ - if [ -f "servant-swagger-ui-core/configure.ac" ]; then (cd "servant-swagger-ui-core" && autoreconf -i); fi
125+ - if [ -f "servant-swagger-ui-example/configure.ac" ]; then (cd "servant-swagger-ui-example" && autoreconf -i); fi
126+ - if [ -f "servant-swagger-ui-jensoleg/configure.ac" ]; then (cd "servant-swagger-ui-jensoleg" && autoreconf -i); fi
127+ - if [ -f "servant-swagger-ui-redoc/configure.ac" ]; then (cd "servant-swagger-ui-redoc" && autoreconf -i); fi
128+ - ${CABAL} v2-freeze $WITHCOMPILER ${TEST} ${BENCH}
129+ - "cat cabal.project.freeze | sed -E 's/^(constraints: *| *)//' | sed 's/any.//'"
130+ - rm cabal.project.freeze
131+ - travis_wait 40 ${CABAL} v2-build $WITHCOMPILER ${TEST} ${BENCH} --dep -j2 all
132+ - travis_wait 40 ${CABAL} v2-build $WITHCOMPILER --disable-tests --disable-benchmarks --dep -j2 all
133+script:
134+ - DISTDIR=$(mktemp -d /tmp/dist-test.XXXX)
135+ # Packaging...
136+ - ${CABAL} v2-sdist all
137+ # Unpacking...
138+ - mv dist-newstyle/sdist/*.tar.gz ${DISTDIR}/
139+ - cd ${DISTDIR} || false
140+ - find . -maxdepth 1 -type f -name '*.tar.gz' -exec tar -xvf '{}' \;
141+ - find . -maxdepth 1 -type f -name '*.tar.gz' -exec rm '{}' \;
142+ - PKGDIR_servant_swagger_ui="$(find . -maxdepth 1 -type d -regex '.*/servant-swagger-ui-[0-9.]*')"
143+ - PKGDIR_servant_swagger_ui_core="$(find . -maxdepth 1 -type d -regex '.*/servant-swagger-ui-core-[0-9.]*')"
144+ - PKGDIR_servant_swagger_ui_example="$(find . -maxdepth 1 -type d -regex '.*/servant-swagger-ui-example-[0-9.]*')"
145+ - PKGDIR_servant_swagger_ui_jensoleg="$(find . -maxdepth 1 -type d -regex '.*/servant-swagger-ui-jensoleg-[0-9.]*')"
146+ - PKGDIR_servant_swagger_ui_redoc="$(find . -maxdepth 1 -type d -regex '.*/servant-swagger-ui-redoc-[0-9.]*')"
147+ # Generate cabal.project
148+ - rm -rf cabal.project cabal.project.local cabal.project.freeze
149+ - touch cabal.project
150+ - |
151+ echo "packages: ${PKGDIR_servant_swagger_ui}" >> cabal.project
152+ echo "packages: ${PKGDIR_servant_swagger_ui_core}" >> cabal.project
153+ echo "packages: ${PKGDIR_servant_swagger_ui_example}" >> cabal.project
154+ echo "packages: ${PKGDIR_servant_swagger_ui_jensoleg}" >> cabal.project
155+ echo "packages: ${PKGDIR_servant_swagger_ui_redoc}" >> cabal.project
156+ - if [ $HCNUMVER -ge 80200 ] ; then echo 'package servant-swagger-ui' >> cabal.project ; fi
157+ - "if [ $HCNUMVER -ge 80200 ] ; then echo ' ghc-options: -Werror=missing-methods' >> cabal.project ; fi"
158+ - if [ $HCNUMVER -ge 80200 ] ; then echo 'package servant-swagger-ui-core' >> cabal.project ; fi
159+ - "if [ $HCNUMVER -ge 80200 ] ; then echo ' ghc-options: -Werror=missing-methods' >> cabal.project ; fi"
160+ - if [ $HCNUMVER -ge 80200 ] ; then echo 'package servant-swagger-ui-example' >> cabal.project ; fi
161+ - "if [ $HCNUMVER -ge 80200 ] ; then echo ' ghc-options: -Werror=missing-methods' >> cabal.project ; fi"
162+ - if [ $HCNUMVER -ge 80200 ] ; then echo 'package servant-swagger-ui-jensoleg' >> cabal.project ; fi
163+ - "if [ $HCNUMVER -ge 80200 ] ; then echo ' ghc-options: -Werror=missing-methods' >> cabal.project ; fi"
164+ - if [ $HCNUMVER -ge 80200 ] ; then echo 'package servant-swagger-ui-redoc' >> cabal.project ; fi
165+ - "if [ $HCNUMVER -ge 80200 ] ; then echo ' ghc-options: -Werror=missing-methods' >> cabal.project ; fi"
166+ - |
167+ - "for pkg in $($HCPKG list --simple-output); do echo $pkg | sed 's/-[^-]*$//' | (grep -vE -- '^(servant-swagger-ui|servant-swagger-ui-core|servant-swagger-ui-example|servant-swagger-ui-jensoleg|servant-swagger-ui-redoc)$' || true) | sed 's/^/constraints: /' | sed 's/$/ installed/' >> cabal.project.local; done"
168+ - cat cabal.project || true
169+ - cat cabal.project.local || true
170+ # Building...
171+ # this builds all libraries and executables (without tests/benchmarks)
172+ - ${CABAL} v2-build $WITHCOMPILER --disable-tests --disable-benchmarks all
173+ # Building with tests and benchmarks...
174+ # build & run tests, build benchmarks
175+ - ${CABAL} v2-build $WITHCOMPILER ${TEST} ${BENCH} all
176+ # cabal check...
177+ - (cd ${PKGDIR_servant_swagger_ui} && ${CABAL} -vnormal check)
178+ - (cd ${PKGDIR_servant_swagger_ui_core} && ${CABAL} -vnormal check)
179+ - (cd ${PKGDIR_servant_swagger_ui_example} && ${CABAL} -vnormal check)
180+ - (cd ${PKGDIR_servant_swagger_ui_jensoleg} && ${CABAL} -vnormal check)
181+ - (cd ${PKGDIR_servant_swagger_ui_redoc} && ${CABAL} -vnormal check)
182+ # haddock...
183+ - ${CABAL} v2-haddock $WITHCOMPILER --with-haddock $HADDOCK ${TEST} ${BENCH} all
184+ # Building without installed constraints for packages in global-db...
185+ - rm -f cabal.project.local
186+ - ${CABAL} v2-build $WITHCOMPILER --disable-tests --disable-benchmarks all
187+ # Constraint sets
188+ - rm -rf cabal.project.local
189+ # Constraint set servant-0.14
190+ - if [ $HCNUMVER -lt 80800 ] ; then ${CABAL} v2-build $WITHCOMPILER --disable-tests --disable-benchmarks --constraint='servant ==0.14.*' all ; fi
191+ # Constraint set servant-0.15
192+ - if [ $HCNUMVER -lt 80800 ] ; then ${CABAL} v2-build $WITHCOMPILER --disable-tests --disable-benchmarks --constraint='servant ==0.15.*' all ; fi
193+ # Constraint set servant-0.16
194+ - if [ $HCNUMVER -lt 81000 ] ; then ${CABAL} v2-build $WITHCOMPILER --disable-tests --disable-benchmarks --constraint='servant ==0.16.*' all ; fi
195+ # Constraint set servant-0.17
196+ - if [ $HCNUMVER -lt 81000 ] ; then ${CABAL} v2-build $WITHCOMPILER --disable-tests --disable-benchmarks --constraint='servant ==0.17.*' all ; fi
197+
198+# REGENDATA ("0.10.3",["--output",".travis.yml","--config=cabal.haskell-ci","cabal.project"])
199+# EOF
CHANGELOG.mddeleted−10
@@ -1,10 +0,0 @@
1−- 0.2.0.2.1.5
2−
3− - Introduce `SwaggerSchemaUI`, this fixes
4− [Swagger UI does not work when nested](https://github.com/phadej/servant-swagger-ui/issues/8) issue
5− by sacrificing some subjective flexibility.
6− - update bundled swagger-ui to version 2.1.5
7−
8−- 0.1.1.2.1.4
9−
10− - Documentation and example improvements
README.md+7−4
@@ -1,6 +1,8 @@
11# servant-swagger-ui
22
3−> Servant support for yaml
3+*Provide a Swagger UI for your Servant API*
4+
5+"[Swagger UI](http://swagger.io/swagger-ui/) allows anyone — be it your development team or your end consumers — to visualize and interact with the API’s resources without having any of the implementation logic in place."
46
57[![Build Status](https://travis-ci.org/phadej/servant-swagger-ui.svg?branch=master)](https://travis-ci.org/phadej/servant-swagger-ui)
68[![Hackage](https://img.shields.io/hackage/v/servant-swagger-ui.svg)](http://hackage.haskell.org/package/servant-swagger-ui)
@@ -9,15 +11,16 @@
911
1012## Example
1113
12−![example screenshot](https://raw.githubusercontent.com/phadej/servant-swagger-ui/master/screenshot.png)
14+![example screenshot](https://raw.githubusercontent.com/haskell-servant/servant-swagger-ui/master/screenshot.png)
1315
14−Check [`example/Main.hs`](https://github.com/phadej/servant-swagger-ui/blob/master/example/Main.hs) for an example.
16+Check [`servant-swagger-ui-example/src/Main.hs`](https://github.com/haskell-servant/servant-swagger-ui/blob/master/servant-swagger-ui-example/src/Main.hs) for an example.
1517
1618## Development
1719
1820### Updating of bundled swagger-ui version:
1921
20−- Extract `dist` directory of `swagger-ui` into `swagger-dist-<version>`
22+- Extract `dist` directory of `swagger-ui` into `swagger-dist-<version>`. Remove the `*.map` files.
23+- update `extra-source-files` in the `.cabal`
2124- move `index.html` into `index.html.tmpl`, do the diff, port the changes
2225- search replace the embbeded directory (in `Servant/Swagger/UI.hs`)
2326- test it works
cabal.haskell-cinew file+17
@@ -0,0 +1,17 @@
1+branches: master
2+
3+constraint-set servant-0.14
4+ ghc: >= 7.8 && <8.8
5+ constraints: servant ==0.14.*
6+
7+constraint-set servant-0.15
8+ ghc: >= 8.0 && <8.8
9+ constraints: servant ==0.15.*
10+
11+constraint-set servant-0.16
12+ ghc: >= 8.0 && <8.10
13+ constraints: servant ==0.16.*
14+
15+constraint-set servant-0.17
16+ ghc: >= 8.0 && <8.10
17+ constraints: servant ==0.17.*
cabal.projectnew file+6
@@ -0,0 +1,6 @@
1+packages:
2+ servant-swagger-ui/
3+ servant-swagger-ui-core/
4+ servant-swagger-ui-example/
5+ servant-swagger-ui-jensoleg/
6+ servant-swagger-ui-redoc/
example/Main.hsdeleted−121
@@ -1,121 +0,0 @@
1−{-# LANGUAGE CPP #-}
2−{-# LANGUAGE DataKinds #-}
3−{-# LANGUAGE DeriveGeneric #-}
4−{-# LANGUAGE FlexibleInstances #-}
5−{-# LANGUAGE GeneralizedNewtypeDeriving #-}
6−{-# LANGUAGE MultiParamTypeClasses #-}
7−{-# LANGUAGE OverloadedStrings #-}
8−{-# LANGUAGE ScopedTypeVariables #-}
9−{-# LANGUAGE TypeFamilies #-}
10−{-# LANGUAGE TypeOperators #-}
11−{-# LANGUAGE UndecidableInstances #-}
12−{-# OPTIONS_GHC -fno-warn-orphans #-}
13−module Main (main, catIsMale, catName) where
14−
15−import Control.Lens hiding ((.=))
16−import Data.Aeson (ToJSON)
17−import Data.Maybe (fromMaybe)
18−import Data.String (IsString (..))
19−import Data.Text (Text)
20−import GHC.Generics (Generic)
21−import Network.Wai (Application)
22−import System.Environment (getArgs, lookupEnv)
23−import Text.Read (readMaybe)
24−
25−import Data.Swagger
26−import Servant
27−import Servant.Swagger
28−import Servant.Swagger.UI
29−
30−import qualified Network.Wai.Handler.Warp as Warp
31−
32−-- data types
33−data Cat = Cat { catName :: CatName, catIsMale :: Bool }
34− deriving (Generic, Show)
35−
36−newtype CatName = CatName Text
37− deriving ( Eq, Show, Generic
38−#if MIN_VERSION_servant(0,5,0)
39− , FromHttpApiData
40−#else
41− , FromText
42−#endif
43− )
44−
45−instance IsString CatName where
46− fromString = CatName . fromString
47−
48−-- swagger instances
49−instance ToJSON Cat
50−instance ToJSON CatName
51−instance ToParamSchema CatName
52−instance ToSchema Cat
53−instance ToSchema CatName
54−
55−-- api
56−type BasicAPI = Get '[PlainText, JSON] Text
57− :<|> "cat" :> Capture ":name" CatName :> Get '[JSON] Cat
58− :<|> "cat2" :> Capture ":name" CatName :> Get '[JSON] Cat
59− :<|> "cat3" :> Capture ":name" CatName :> Get '[JSON] Cat
60−
61−type API =
62− -- this serves both: swagger.json and swagger-ui
63− SwaggerSchemaUI "swagger-ui" "swagger.json"
64− :<|> BasicAPI
65−
66−-- To test nested case
67−type API' = API
68− :<|> "nested" :> API
69− :<|> SwaggerSchemaUI' "foo-ui" ("foo" :> "swagger.json" :> Get '[JSON] Swagger)
70−
71−-- Implementation
72−
73−-- | We test different ways to nest API, so we have an enumeration
74−data Variant
75− = Normal
76− | Nested
77− | SpecDown
78− deriving (Eq)
79−
80−server' :: Server API'
81−server' = server Normal
82− :<|> server Nested
83− :<|> swaggerSchemaUIServer (swaggerDoc' SpecDown)
84− where
85− server :: Variant -> Server API
86− server variant =
87− swaggerSchemaUIServer (swaggerDoc' variant)
88− :<|> (return "Hello World" :<|> catEndpoint :<|> catEndpoint :<|> catEndpoint)
89− where
90− catEndpoint n = return $ Cat n (variant == Normal)
91− -- Unfortunately we have to specify the basePath manually atm.
92−
93− swaggerDoc' Normal = swaggerDoc
94− swaggerDoc' Nested = swaggerDoc
95− & basePath ?~ "/nested"
96− & info.description ?~ "Nested API"
97− swaggerDoc' SpecDown = swaggerDoc
98− & info.description ?~ "Spec nested"
99−
100−-- Boilerplate
101−
102−swaggerDoc :: Swagger
103−swaggerDoc = toSwagger (Proxy :: Proxy BasicAPI)
104− & info.title .~ "Cats API"
105− & info.version .~ "2016.8.7"
106− & info.description ?~ "This is an API that tests servant-swagger support"
107−
108−api :: Proxy API'
109−api = Proxy
110−
111−app :: Application
112−app = serve api server'
113−
114−main :: IO ()
115−main = do
116− args <- getArgs
117− case args of
118− ("run":_) -> do
119− p <- fmap (fromMaybe 8000 . (>>= readMaybe)) $ lookupEnv "PORT"
120− Warp.run p app
121− _ -> putStrLn "To run the example server, pass 'run' argument"
hackage-docs.shdeleted−78
@@ -1,78 +0,0 @@
1−#!/bin/bash
2−set -e
3−
4−# This if stack-enabled fork of https://github.com/ekmett/lens/blob/master/scripts/hackage-docs.sh
5−
6−if [ "$#" -ne 1 ]; then
7− echo "Usage: scripts/hackage-docs.sh HACKAGE_USER"
8− exit 1
9−fi
10−
11−user=$1
12−
13−cabal_file=$(find . -maxdepth 1 -name "*.cabal" -print -quit)
14−if [ ! -f "$cabal_file" ]; then
15− echo "Run this script in the top-level package directory"
16− exit 1
17−fi
18−
19−pkg=$(awk -F ":[[:space:]]*" 'tolower($1)=="name" { print $2 }' < "$cabal_file")
20−ver=$(awk -F ":[[:space:]]*" 'tolower($1)=="version" { print $2 }' < "$cabal_file")
21−
22−if [ -z "$pkg" ]; then
23− echo "Unable to determine package name"
24− exit 1
25−fi
26−
27−if [ -z "$ver" ]; then
28− echo "Unable to determine package version"
29− exit 1
30−fi
31−
32−echo "Detected package: $pkg-$ver"
33−
34−dir=$(mktemp -d build-docs.XXXXXX)
35−trap 'rm -r "$dir"' EXIT
36−
37−export PATH=$(stack path --bin-path)
38−
39−ghc --version
40−cabal --version
41−stack --version
42−
43−if haddock --hyperlinked-source >/dev/null
44−then
45− echo "Using fancy hyperlinked source"
46− HYPERLINK_FLAG="--haddock-option=--hyperlinked-source"
47−else
48− echo "Using boring hyperlinked source"
49− HYPERLINK_FLAG="--hyperlink-source"
50−fi
51−
52−# Cabal dist in temporary location
53−builddir=$dir/dist
54−
55−# Build dependencies haddocks with stack, so we get links
56−stack haddock --only-dependencies
57−
58−# Configure using stack databases
59−snapshotpkgdb=$(stack path --snapshot-pkg-db)
60−localpkgdb=$(stack path --local-pkg-db)
61−cabal configure -v2 --builddir=$builddir --package-db=clear --package-db=global --package-db=$snapshotpkgdb --package-db=$localpkgdb
62−
63−# Build Hadckage compatible docs
64−cabal haddock -v2 --builddir=$builddir $HYPERLINK_FLAG --html-location='/package/$pkg-$version/docs' --contents-location='/package/$pkg-$version'
65−
66−# Copy into right directory
67−cp -R $builddir/doc/html/$pkg/ $dir/$pkg-$ver-docs
68−
69−# Tar and gzip
70−tar cvz -C $dir --format=ustar -f $dir/$pkg-$ver-docs.tar.gz $pkg-$ver-docs
71−
72−# Upload
73−curl -X PUT \
74− -H 'Content-Type: application/x-tar' \
75− -H 'Content-Encoding: gzip' \
76− -u "$user" \
77− --data-binary "@$dir/$pkg-$ver-docs.tar.gz" \
78− "https://hackage.haskell.org/package/$pkg-$ver/docs"
index.html.tmpldeleted−124
@@ -1,124 +0,0 @@
1−<!DOCTYPE html>
2−<html>
3−<head>
4− <meta charset="UTF-8">
5− <title>Swagger UI</title>
6− <link rel="icon" type="image/png" href="images/favicon-32x32.png" sizes="32x32" />
7− <link rel="icon" type="image/png" href="images/favicon-16x16.png" sizes="16x16" />
8− <link href='css/typography.css' media='screen' rel='stylesheet' type='text/css'/>
9− <link href='css/reset.css' media='screen' rel='stylesheet' type='text/css'/>
10− <link href='css/screen.css' media='screen' rel='stylesheet' type='text/css'/>
11− <link href='css/reset.css' media='print' rel='stylesheet' type='text/css'/>
12− <link href='css/print.css' media='print' rel='stylesheet' type='text/css'/>
13−
14− <script src='lib/object-assign-pollyfill.js' type='text/javascript'></script>
15− <script src='lib/jquery-1.8.0.min.js' type='text/javascript'></script>
16− <script src='lib/jquery.slideto.min.js' type='text/javascript'></script>
17− <script src='lib/jquery.wiggle.min.js' type='text/javascript'></script>
18− <script src='lib/jquery.ba-bbq.min.js' type='text/javascript'></script>
19− <script src='lib/handlebars-2.0.0.js' type='text/javascript'></script>
20− <script src='lib/lodash.min.js' type='text/javascript'></script>
21− <script src='lib/backbone-min.js' type='text/javascript'></script>
22− <script src='swagger-ui.js' type='text/javascript'></script>
23− <script src='lib/highlight.9.1.0.pack.js' type='text/javascript'></script>
24− <script src='lib/highlight.9.1.0.pack_extended.js' type='text/javascript'></script>
25− <script src='lib/jsoneditor.min.js' type='text/javascript'></script>
26− <script src='lib/marked.js' type='text/javascript'></script>
27− <script src='lib/swagger-oauth.js' type='text/javascript'></script>
28−
29− <!-- Some basic translations -->
30− <!-- <script src='lang/translator.js' type='text/javascript'></script> -->
31− <!-- <script src='lang/ru.js' type='text/javascript'></script> -->
32− <!-- <script src='lang/en.js' type='text/javascript'></script> -->
33−
34− <script type="text/javascript">
35− if (window.location.href.match(/\/index.html\/$/)) {
36− // drop trailing slash in "index.html/"
37− window.location.href = window.location.href.replace(/.$/, "");
38− } else if (!window.location.href.match(/\/(?:index.html)?$/)) {
39− // servant-swagger-ui: redirect to location with a trailing slash
40− // we need this because assets are served from relative paths
41− window.location.href = window.location.href + '/';
42− }
43− </script>
44−
45− <script type="text/javascript">
46− $(function () {
47− var url = window.location.search.match(/url=([^&]+)/);
48− if (url && url.length > 1) {
49− url = decodeURIComponent(url[1]);
50− } else {
51− // servant-swagger-ui addition
52− var ssuDir = "SERVANT_SWAGGER_UI_DIR";
53− var ssuSchema = "SERVANT_SWAGGER_UI_SCHEMA";
54− // more concretely:
55− // replace /swagger-ui/ or /swagger-ui/index.html with /swagger.json
56− // we always have trailing slash!
57− var re = new RegExp("\/" + ssuDir + "/(?:index\\.html)?$","g");
58− url = window.location.pathname.replace(re, "/" + ssuSchema);
59− }
60−
61− hljs.configure({
62− highlightSizeThreshold: 5000
63− });
64−
65− // Pre load translate...
66− if(window.SwaggerTranslator) {
67− window.SwaggerTranslator.translate();
68− }
69− window.swaggerUi = new SwaggerUi({
70− url: url,
71− dom_id: "swagger-ui-container",
72− supportedSubmitMethods: ['get', 'post', 'put', 'delete', 'patch'],
73− onComplete: function(swaggerApi, swaggerUi){
74− if(typeof initOAuth == "function") {
75− initOAuth({
76− clientId: "your-client-id",
77− clientSecret: "your-client-secret-if-required",
78− realm: "your-realms",
79− appName: "your-app-name",
80− scopeSeparator: ",",
81− additionalQueryStringParams: {}
82− });
83− }
84−
85− if(window.SwaggerTranslator) {
86− window.SwaggerTranslator.translate();
87− }
88− },
89− onFailure: function(data) {
90− log("Unable to Load SwaggerUI");
91− },
92− docExpansion: "none",
93− jsonEditor: false,
94− defaultModelRendering: 'schema',
95− showRequestHeaders: false
96− });
97−
98− window.swaggerUi.load();
99−
100− function log() {
101− if ('console' in window) {
102− console.log.apply(console, arguments);
103− }
104− }
105− });
106− </script>
107−</head>
108−
109−<body class="swagger-section">
110−<div id='header'>
111− <div class="swagger-ui-wrap">
112− <a id="logo" href="http://swagger.io"><img class="logo__img" alt="swagger" height="30" width="30" src="images/logo_small.png" /><span class="logo__title">swagger</span></a>
113− <form id='api_selector'>
114− <div class='input'><input placeholder="http://example.com/api" id="input_baseUrl" name="baseUrl" type="text"/></div>
115− <div id='auth_container'></div>
116− <div class='input'><a id="explore" class="header__btn" href="#" data-sw-translate>Explore</a></div>
117− </form>
118− </div>
119−</div>
120−
121−<div id="message-bar" class="swagger-ui-wrap" data-sw-translate>&nbsp;</div>
122−<div id="swagger-ui-container" class="swagger-ui-wrap"></div>
123−</body>
124−</html>
package.yamldeleted−68
@@ -1,68 +0,0 @@
1−name: servant-swagger-ui
2−version: 0.2.0.2.1.5
3−synopsis: Servant swagger ui
4−description: Provide embedded swagger UI for servant and swagger (i.e. servant-swagger)
5−author: Oleg Grenrus <oleg.grenrus@iki.fi>
6−maintainer: Oleg Grenrus <oleg.grenrus@iki.fi>
7−license: BSD3
8−github: phadej/servant-swagger-ui
9−category: Web
10−tested-with: GHC==7.8.4, GHC==7.10.3, GHC==8.0.1
11−extra-source-files:
12−- README.md
13−- CHANGELOG.md
14−- index.html.tmpl
15−- swagger-dist-2.1.5/**/*
16−
17−ghc-options: -Wall
18−
19−dependencies:
20− - base >=4.7 && <4.10
21− - blaze-markup >=0.7.0.2 && <0.8
22− - bytestring >=0.10.4.0 && <0.11
23− - directory >=1.2.1.0 && <1.3
24− - file-embed >=0.0.9 && <0.1
25− - filepath >=1.3.0.2 && <1.5
26− - http-media >=0.6.2 && <0.8
27− - servant >=0.4.4.5 && <0.10
28− - servant-blaze >=0.4.4.5 && <0.9
29− - servant-server >=0.4.4.5 && <0.10
30− - servant-swagger >=1.0.3 && <1.2
31− - swagger2 >=2.0.1 && <2.2
32− - template-haskell >=2.9 && <2.12
33− - text >=1.2.0.6 && <1.3
34− - wai-app-static >=3.0.1.1 && <3.2
35−
36−flags:
37− servant-0-5:
38− description: "Whether use servant >= 0.5"
39− manual: false
40− default: true
41−
42−when:
43− - condition: flag(servant-0-5)
44− then:
45− dependencies:
46− - servant >=0.5
47− - transformers >=0.3 && <0.6
48− - transformers-compat >=0.3 && <0.6
49− else:
50− dependencies:
51− - servant <0.5
52− - either
53−
54−library:
55− source-dirs: src
56−
57−tests:
58− example:
59− main: Main.hs
60− source-dirs: example
61− dependencies:
62− - servant-swagger-ui
63− - servant-server >=0.4.4.5 && <0.10
64− - aeson >=0.8.0.2 && <1.1
65− - base-compat >=0.6.0 && <0.10
66− - lens >=4.7.0.1 && <4.15
67− - wai >=3.0.3.0 && <3.3
68− - warp >=3.0.13.1 && <3.3
screenshot.png

Binary file not shown.

servant-0.4-cabal.configdeleted−1
@@ -1 +0,0 @@
1−constraints: servant ==0.4.4.*
servant-0.5-cabal.configdeleted−1
@@ -1 +0,0 @@
1−constraints: servant ==0.5.*
servant-0.6-cabal.configdeleted−1
@@ -1 +0,0 @@
1−constraints: servant ==0.6.*
servant-0.7-cabal.configdeleted−1
@@ -1 +0,0 @@
1−constraints: servant ==0.7.*
servant-0.8-cabal.configdeleted−1
@@ -1 +0,0 @@
1−constraints: servant ==0.8.*
servant-0.9-cabal.configdeleted−1
@@ -1 +0,0 @@
1−constraints: servant ==0.9.*
servant-swagger-ui-core/Changelog.mdnew file+7
@@ -0,0 +1,7 @@
1+# 0.3.3
2+
3+- Add `swaggerSchemaUIServerImpl'`
4+
5+# 0.3.1
6+
7+- Support `servant-0.14`
LICENSE → servant-swagger-ui-core/LICENSErenamed

The content is the same.

servant-swagger-ui-core/servant-swagger-ui-core.cabalnew file+54
@@ -0,0 +1,54 @@
1+cabal-version: 1.12
2+name: servant-swagger-ui-core
3+version: 0.3.3
4+x-revision: 4
5+synopsis: Servant swagger ui core components
6+category: Web, Servant, Swagger
7+description:
8+ Provide embedded swagger UI for servant and swagger (i.e. servant-swagger)
9+ .
10+ See servant-swagger-ui, servant-swagger-ui-jensoleg or
11+ servant-swagger-ui-redoc for "concrete" implementations.
12+
13+homepage: https://github.com/haskell-servant/servant-swagger-ui
14+bug-reports:
15+ https://github.com/haskell-servant/servant-swagger-ui/issues
16+
17+author: Oleg Grenrus <oleg.grenrus@iki.fi>
18+maintainer: haskell-servant-maintainers@googlegroups.com
19+license: BSD3
20+license-file: LICENSE
21+build-type: Simple
22+tested-with:
23+ GHC ==8.0.2
24+ || ==8.2.2
25+ || ==8.4.4
26+ || ==8.6.5
27+ || ==8.8.4
28+ || ==8.10.2
29+
30+extra-source-files: Changelog.md
31+
32+source-repository head
33+ type: git
34+ location: https://github.com/haskell-servant/servant-swagger-ui
35+
36+library
37+ hs-source-dirs: src
38+ ghc-options: -Wall
39+ build-depends:
40+ base >=4.7 && <4.15
41+ , blaze-markup >=0.7.0.2 && <0.9
42+ , bytestring >=0.10.4.0 && <0.11
43+ , http-media >=0.7.1.3 && <0.9
44+ , servant >=0.14 && <0.19
45+ , servant-blaze >=0.8 && <0.10
46+ , servant-server >=0.14 && <0.19
47+ , swagger2 >=2.3.0.1 && <2.7
48+ , text >=1.2.3.0 && <1.3
49+ , transformers >=0.3 && <0.6
50+ , transformers-compat >=0.3 && <0.7
51+ , wai-app-static >=3.0.1.1 && <3.2
52+
53+ exposed-modules: Servant.Swagger.UI.Core
54+ default-language: Haskell2010
src/Servant/Swagger/UI.hs → servant-swagger-ui-core/src/Servant/Swagger/UI/Core.hsrenamed+28−43
@@ -1,4 +1,3 @@
1−{-# LANGUAGE CPP #-}
21{-# LANGUAGE ConstraintKinds #-}
32{-# LANGUAGE DataKinds #-}
43{-# LANGUAGE DeriveGeneric #-}
@@ -6,16 +5,10 @@
65{-# LANGUAGE MultiParamTypeClasses #-}
76{-# LANGUAGE OverloadedStrings #-}
87{-# LANGUAGE ScopedTypeVariables #-}
9−{-# LANGUAGE TemplateHaskell #-}
108{-# LANGUAGE TypeFamilies #-}
119{-# LANGUAGE TypeOperators #-}
1210{-# LANGUAGE UndecidableInstances #-}
1311-----------------------------------------------------------------------------
14−-- |
15−-- Module : Servant.Swagger.UI
16−-- Copyright : (C) 2016 Oleg Grenrus
17−-- License : BSD3
18−-- Maintainer : Oleg Grenrus <oleg.grenrus@iki.fi>
1912--
2013-- Provides 'SwaggerUI' and corresponding 'swaggerUIServer' to embed
2114-- <http://swagger.io/swagger-ui/ swagger ui> into the application.
@@ -30,7 +23,7 @@
3023-- :\<|> "cat" :> Capture ":name" CatName :> Get '[JSON] Cat
3124--
3225-- -- | API type with bells and whistles, i.e. schema file and swagger-ui.
33−-- type API = 'SwaggerSchemaUI' "swagger.json" "swagger-ui"
26+-- type API = 'SwaggerSchemaUI' "swagger-ui" "swagger.json"
3427-- :\<|> BasicAPI
3528--
3629-- -- | Servant server for an API
@@ -41,34 +34,28 @@
4134-- catEndpoint name = pure $ Cat name False
4235-- @
4336
44−module Servant.Swagger.UI (
37+module Servant.Swagger.UI.Core (
4538 -- * Swagger UI API
4639 SwaggerSchemaUI,
4740 SwaggerSchemaUI',
48− swaggerSchemaUIServer,
49− -- * Internals
41+
42+ -- * Implementation details
5043 SwaggerUiHtml(..),
44+ swaggerSchemaUIServerImpl,
45+ swaggerSchemaUIServerImpl',
46+ Handler,
5147 ) where
5248
5349import Data.ByteString (ByteString)
54−import Data.FileEmbed (embedStringFile)
5550import Data.Swagger (Swagger)
5651import GHC.TypeLits (KnownSymbol, Symbol, symbolVal)
5752import Network.Wai.Application.Static (embeddedSettings, staticApp)
5853import Servant
5954import Servant.HTML.Blaze (HTML)
60−import Servant.Swagger.UI.Internal
6155import Text.Blaze (ToMarkup (..))
6256
6357import qualified Data.Text as T
6458
65−#if MIN_VERSION_servant(0,5,0)
66−import Control.Monad.Trans.Except (ExceptT)
67−#else
68−import Control.Monad.Trans.Either (EitherT)
69−#define ExceptT EitherT
70−#endif
71−
7259-- | Swagger schema + ui api.
7360--
7461-- @SwaggerSchemaUI "swagger-ui" "swagger.json"@ will result into following hierarchy:
@@ -99,37 +86,35 @@ type SwaggerSchemaUI' (dir :: Symbol) (api :: *) =
9986--
10087-- Implementation detail: the @index.html@ is prepopulated with parameters
10188-- to find schema file automatically.
102−data SwaggerUiHtml (dir :: Symbol) (api :: *) = SwaggerUiHtml
89+data SwaggerUiHtml (dir :: Symbol) (api :: *) = SwaggerUiHtml T.Text
10390
104−instance (KnownSymbol dir, HasLink api, URI ~ MkLink api, IsElem api api)
91+instance (KnownSymbol dir, HasLink api, Link ~ MkLink api Link, IsElem api api)
10592 => ToMarkup (SwaggerUiHtml dir api)
10693 where
107− toMarkup _ = preEscapedToMarkup
94+ toMarkup (SwaggerUiHtml template) = preEscapedToMarkup
10895 $ T.replace "SERVANT_SWAGGER_UI_SCHEMA" schema
10996 $ T.replace "SERVANT_SWAGGER_UI_DIR" dir
110− $ swaggerUiIndexTemplate
97+ $ template
11198 where
112− schema = T.pack $ uriPath $ safeLink proxyApi proxyApi
99+ schema = T.pack $ uriPath . linkURI $ safeLink proxyApi proxyApi
113100 dir = T.pack $ symbolVal (Proxy :: Proxy dir)
114101 proxyApi = Proxy :: Proxy api
115102
116−-- | Serve Swagger UI on @/dir@ using @api@ as a Swagger spec source.
117−--
118−-- @
119−-- swaggerSchemaUIServer :: Swagger -> Server (SwaggerSchemaUI schema dir)
120−-- @
121−swaggerSchemaUIServer
122− :: (Server api ~ ExceptT ServantErr IO Swagger)
123− => Swagger -> Server (SwaggerSchemaUI' dir api)
124−swaggerSchemaUIServer swagger = return swagger
125− :<|> return SwaggerUiHtml
126− :<|> return SwaggerUiHtml
103+swaggerSchemaUIServerImpl
104+ :: (Server api ~ Handler Swagger)
105+ => T.Text -> [(FilePath, ByteString)]
106+ -> Swagger -> Server (SwaggerSchemaUI' dir api)
107+swaggerSchemaUIServerImpl indexTemplate files swagger
108+ = swaggerSchemaUIServerImpl' indexTemplate files $ return swagger
109+
110+-- | Use a custom server to serve the Swagger spec source.
111+swaggerSchemaUIServerImpl'
112+ :: T.Text -> [(FilePath, ByteString)]
113+ -> Server api -> Server (SwaggerSchemaUI' dir api)
114+swaggerSchemaUIServerImpl' indexTemplate files server
115+ = server
116+ :<|> return (SwaggerUiHtml indexTemplate)
117+ :<|> return (SwaggerUiHtml indexTemplate)
127118 :<|> rest
128119 where
129− rest = staticApp $ embeddedSettings swaggerUiFiles
130−
131−swaggerUiIndexTemplate :: T.Text
132−swaggerUiIndexTemplate = $(embedStringFile "index.html.tmpl")
133−
134−swaggerUiFiles :: [(FilePath, ByteString)]
135−swaggerUiFiles = $(mkRecursiveEmbedded "swagger-dist-2.1.5")
120+ rest = Tagged $ staticApp $ embeddedSettings files
servant-swagger-ui-example/LICENSEnew file+30
@@ -0,0 +1,30 @@
1+Copyright (c) 2018, Oleg Grenrus
2+
3+All rights reserved.
4+
5+Redistribution and use in source and binary forms, with or without
6+modification, are permitted provided that the following conditions are met:
7+
8+ * Redistributions of source code must retain the above copyright
9+ notice, this list of conditions and the following disclaimer.
10+
11+ * Redistributions in binary form must reproduce the above
12+ copyright notice, this list of conditions and the following
13+ disclaimer in the documentation and/or other materials provided
14+ with the distribution.
15+
16+ * Neither the name of Oleg Grenrus nor the names of other
17+ contributors may be used to endorse or promote products derived
18+ from this software without specific prior written permission.
19+
20+THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
21+"AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
22+LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
23+A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
24+OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
25+SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
26+LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
27+DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
28+THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
29+(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
30+OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
Setup.hs → servant-swagger-ui-example/Setup.hsrenamed−1
@@ -1,3 +1,2 @@
11import Distribution.Simple
2−main :: IO ()
32main = defaultMain
servant-swagger-ui-example/servant-swagger-ui-example.cabalnew file+49
@@ -0,0 +1,49 @@
1+cabal-version: 2.0
2+name: servant-swagger-ui-example
3+version: 0
4+synopsis: servant-swagger-ui example
5+category: Web, Servant, Swagger
6+description: A kind of test-suite of servant-swagger-ui
7+homepage: https://github.com/haskell-servant/servant-swagger-ui
8+bug-reports:
9+ https://github.com/haskell-servant/servant-swagger-ui/issues
10+
11+author: Oleg Grenrus <oleg.grenrus@iki.fi>
12+maintainer: haskell-servant-maintainers@googlegroups.com
13+license: BSD3
14+license-file: LICENSE
15+build-type: Simple
16+tested-with:
17+ GHC ==8.0.2
18+ || ==8.2.2
19+ || ==8.4.4
20+ || ==8.6.5
21+ || ==8.8.4
22+ || ==8.10.2
23+
24+source-repository head
25+ type: git
26+ location: https://github.com/haskell-servant/servant-swagger-ui
27+
28+executable servant-swagger-ui-example
29+ main-is: Main.hs
30+ ghc-options: -threaded
31+ build-depends:
32+ aeson >=0.8.0.2 && <1.6
33+ , base >=4.7 && <4.15
34+ , base-compat >=0.9.3 && <0.12
35+ , lens >=4.7.0.1 && <4.20
36+ , servant
37+ , servant-server
38+ , servant-swagger
39+ , servant-swagger-ui
40+ , servant-swagger-ui-core
41+ , servant-swagger-ui-jensoleg
42+ , servant-swagger-ui-redoc
43+ , swagger2
44+ , text
45+ , wai >=3.0.3.0 && <3.3
46+ , warp >=3.0.13.1 && <3.4
47+
48+ hs-source-dirs: src
49+ default-language: Haskell2010
servant-swagger-ui-example/src/Main.hsnew file+213
@@ -0,0 +1,213 @@
1+{-# LANGUAGE CPP #-}
2+{-# LANGUAGE DataKinds #-}
3+{-# LANGUAGE DeriveGeneric #-}
4+{-# LANGUAGE FlexibleInstances #-}
5+{-# LANGUAGE GeneralizedNewtypeDeriving #-}
6+{-# LANGUAGE MultiParamTypeClasses #-}
7+{-# LANGUAGE OverloadedStrings #-}
8+{-# LANGUAGE ScopedTypeVariables #-}
9+{-# LANGUAGE TypeFamilies #-}
10+{-# LANGUAGE TypeOperators #-}
11+{-# LANGUAGE UndecidableInstances #-}
12+{-# OPTIONS_GHC -fno-warn-orphans #-}
13+module Main (main, catIsMale, catName) where
14+
15+import Prelude ()
16+import Prelude.Compat
17+
18+import Control.Lens hiding ((.=))
19+import Data.Aeson (FromJSON, ToJSON)
20+import Data.Maybe (fromMaybe)
21+import Data.String (IsString (..))
22+import Data.Text (Text)
23+import GHC.Generics (Generic)
24+import Network.Wai (Application)
25+import System.Environment (getArgs, lookupEnv)
26+import Text.Read (readMaybe)
27+
28+import Data.Swagger
29+import Servant
30+import Servant.Swagger
31+import Servant.Swagger.UI
32+import Servant.Swagger.UI.Core
33+import Servant.Swagger.UI.JensOleG
34+import Servant.Swagger.UI.ReDoc
35+
36+import qualified Network.Wai.Handler.Warp as Warp
37+
38+#if MIN_VERSION_servant(0,12,0)
39+#define SUMMARY(d) Summary d :>
40+#else
41+#define SUMMARY(d)
42+#endif
43+
44+#if MIN_VERSION_servant(0,13,0)
45+#if __GLASGOW_HASKELL__ >= 802 && MIN_VERSION_base(4,10,0)
46+import GHC.Generics (D1, Meta (..), Rep)
47+import GHC.TypeLits (AppendSymbol, Symbol)
48+#endif
49+#endif
50+
51+-- data types
52+data Cat = Cat { catName :: CatName, catIsMale :: Bool }
53+ deriving (Generic, Show)
54+
55+newtype CatName = CatName Text
56+ deriving ( Eq, Show, Generic
57+#if MIN_VERSION_servant(0,5,0)
58+ , FromHttpApiData
59+#else
60+ , FromText
61+#endif
62+ )
63+
64+instance IsString CatName where
65+ fromString = CatName . fromString
66+
67+-- swagger instances
68+instance ToJSON Cat
69+instance ToJSON CatName
70+instance FromJSON Cat
71+instance FromJSON CatName
72+instance ToParamSchema CatName
73+instance ToSchema Cat
74+instance ToSchema CatName
75+
76+-- api
77+
78+#if MIN_VERSION_servant(0,13,0)
79+#if __GLASGOW_HASKELL__ >= 802 && MIN_VERSION_base(4,10,0)
80+-- | Get a typename as type-level 'Symbol'.
81+--
82+-- Few non-Generic things are hard-coded, for else we fallback to 'Generic'
83+--
84+-- >>> :kind! TypeName Int
85+-- TypeName Int :: Symbol
86+-- = "Int"
87+--
88+-- >>> :kind! TypeName CatName
89+-- TypeName CatName :: Symbol
90+-- = "CatName"
91+--
92+-- Unfortunately we cannot use 'TypeError' for other cases,
93+-- as 'Rep' isn't reduced so 'GenericTypeName' cannot fall past first
94+-- equation. So you will get somewhat obscure errors saying
95+-- "no instance for (KnownSymbol ... (GenericTypeName YourNonGenericType ..."
96+--
97+-- >>> :kind! TypeName Float
98+-- TypeName Float :: Symbol
99+-- = GenericTypeName Float (Rep Float ())
100+--
101+-- It would be nice if there were such type family for 'Typeable', i.e. all
102+-- types :)
103+--
104+type family TypeName (x :: *) :: Symbol where
105+ TypeName Int = "Int"
106+ TypeName Text = "Text"
107+ TypeName x = GenericTypeName x (Rep x ())
108+
109+type family GenericTypeName t (r :: *) :: Symbol where
110+ GenericTypeName t (D1 ('MetaData name mod pkg nt) f x) = name
111+
112+type Desc t n = Description (AppendSymbol (TypeName t) (AppendSymbol " | " n))
113+#else
114+type Desc t n = Description n
115+#endif
116+#endif
117+
118+type FirstCatEndpoint =
119+#if MIN_VERSION_servant(0,13,0)
120+ "cat"
121+ :> Summary "First cat endpoint"
122+ :> Capture' '[Desc CatName "Cat's name"] ":name" CatName
123+ :> QueryParam' '[Required, Desc Int "Random number"] "num" Int
124+ :> QueryParam' '[Optional, Desc Text "Random text"] "text" Text
125+ :> Get '[JSON] Cat
126+#else
127+ "cat" :> Capture ":name" CatName
128+ :> QueryParam "num" Int :> QueryParam "text" Text :> Get '[JSON] Cat
129+#endif
130+
131+type BasicAPI = Get '[PlainText, JSON] Text
132+ :<|> FirstCatEndpoint
133+ :<|> SUMMARY("Second cat") "cat2" :> Capture ":name" CatName :> Get '[JSON] Cat
134+ :<|> SUMMARY("Third cat") "cat3" :> Capture ":name" CatName :> Get '[JSON] Cat
135+ :<|> SUMMARY("Post endpoint") "post-cat" :> ReqBody '[JSON] Cat :> Post '[JSON] Cat
136+
137+type API =
138+ -- this serves both: swagger.json and swagger-ui
139+ SwaggerSchemaUI "swagger-ui" "swagger.json"
140+ :<|> BasicAPI
141+
142+-- To test nested case
143+type API' = API
144+ :<|> "nested" :> API
145+ :<|> SwaggerSchemaUI' "foo-ui" ("foo" :> "swagger.json" :> Get '[JSON] Swagger)
146+
147+-- Implementation
148+
149+-- | We test different ways to nest API, so we have an enumeration
150+data Variant
151+ = Normal
152+ | Nested
153+ | SpecDown
154+ deriving (Eq)
155+
156+data UIFlavour
157+ = Original
158+ | JensOleG
159+ | ReDoc
160+ deriving (Eq)
161+
162+server' :: UIFlavour -> Server API'
163+server' uiFlavour = server Normal
164+ :<|> server Nested
165+ :<|> schemaUiServer (swaggerDoc' SpecDown)
166+ where
167+ server :: Variant -> Server API
168+ server variant =
169+ schemaUiServer (swaggerDoc' variant)
170+ :<|> (return "Hello World" :<|> catEndpoint' :<|> catEndpoint :<|> catEndpoint :<|> return)
171+ where
172+ catEndpoint' n _ _ = return $ Cat n (variant == Normal)
173+ catEndpoint n = return $ Cat n (variant == Normal)
174+ -- Unfortunately we have to specify the basePath manually atm.
175+
176+ schemaUiServer
177+ :: (Server api ~ Handler Swagger)
178+ => Swagger -> Server (SwaggerSchemaUI' dir api)
179+ schemaUiServer = case uiFlavour of
180+ Original -> swaggerSchemaUIServer
181+ JensOleG -> jensolegSwaggerSchemaUIServer
182+ ReDoc -> redocSchemaUIServer
183+
184+ swaggerDoc' Normal = swaggerDoc
185+ swaggerDoc' Nested = swaggerDoc
186+ & basePath ?~ "/nested"
187+ & info.description ?~ "Nested API"
188+ swaggerDoc' SpecDown = swaggerDoc
189+ & info.description ?~ "Spec nested"
190+
191+-- Boilerplate
192+
193+swaggerDoc :: Swagger
194+swaggerDoc = toSwagger (Proxy :: Proxy BasicAPI)
195+ & info.title .~ "Cats API"
196+ & info.version .~ "2016.8.7"
197+ & info.description ?~ "This is an API that tests servant-swagger support"
198+
199+api :: Proxy API'
200+api = Proxy
201+
202+app :: UIFlavour -> Application
203+app = serve api . server'
204+
205+main :: IO ()
206+main = do
207+ args <- getArgs
208+ let uiFlavour | "jensoleg" `elem` args = JensOleG
209+ | "redoc" `elem` args = ReDoc
210+ | otherwise = Original
211+ p <- fromMaybe 8000 . (>>= readMaybe) <$> lookupEnv "PORT"
212+ putStrLn $ "http://localhost:" ++ show p ++ "/"
213+ Warp.run p (app uiFlavour)
servant-swagger-ui-jensoleg/LICENSEnew file+45
@@ -0,0 +1,45 @@
1+Copyright (c) 2016, Oleg Grenrus
2+
3+All rights reserved.
4+
5+Redistribution and use in source and binary forms, with or without
6+modification, are permitted provided that the following conditions are met:
7+
8+ * Redistributions of source code must retain the above copyright
9+ notice, this list of conditions and the following disclaimer.
10+
11+ * Redistributions in binary form must reproduce the above
12+ copyright notice, this list of conditions and the following
13+ disclaimer in the documentation and/or other materials provided
14+ with the distribution.
15+
16+ * Neither the name of Oleg Grenrus nor the names of other
17+ contributors may be used to endorse or promote products derived
18+ from this software without specific prior written permission.
19+
20+THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
21+"AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
22+LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
23+A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
24+OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
25+SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
26+LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
27+DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
28+THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
29+(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
30+OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
31+
32+---
33+
34+Bundled swagger-ui (index.html.tmpl original and swagger-dist-2.1.4 directory):
35+
36+Copyright 2016 SmartBear Software
37+
38+Licensed under the Apache License, Version 2.0 (the "License"); you may not use
39+this file except in compliance with the License. You may obtain a copy of the
40+License at apache.org/licenses/LICENSE-2.0
41+
42+Unless required by applicable law or agreed to in writing, software distributed
43+under the License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR
44+CONDITIONS OF ANY KIND, either express or implied. See the License for the
45+specific language governing permissions and limitations under the License.
servant-swagger-ui-jensoleg/jensoleg-dist/css/api-explorer.cssnew file+2426
@@ -0,0 +1,2426 @@
1+.swagger-section pre code {
2+ display: block;
3+ padding: .5em
4+}
5+
6+.swagger-section pre .markdown .emphasis {
7+ font-style: italic
8+}
9+
10+.swagger-section pre .nginx .built_in {
11+ font-weight: 400
12+}
13+
14+.swagger-section pre .clojure .built_in, .swagger-section pre .lisp .title, .swagger-section pre .nginx .title, .swagger-section pre .subst, .swagger-section pre .tag .title, .swagger-section pre code {
15+ color: #fff
16+}
17+
18+.swagger-section pre .addition, .swagger-section pre .aggregate, .swagger-section pre .apache .cbracket, .swagger-section pre .apache .tag, .swagger-section pre .bash .variable, .swagger-section pre .constant, .swagger-section pre .django .variable, .swagger-section pre .erlang_repl .function_or_atom, .swagger-section pre .flow, .swagger-section pre .markdown .header, .swagger-section pre .parent, .swagger-section pre .preprocessor, .swagger-section pre .ruby .symbol, .swagger-section pre .ruby .symbol .string, .swagger-section pre .rules .value, .swagger-section pre .rules .value .number, .swagger-section pre .smalltalk .class, .swagger-section pre .stream, .swagger-section pre .string, .swagger-section pre .tag .value, .swagger-section pre .template_tag, .swagger-section pre .tex .command, .swagger-section pre .tex .special, .swagger-section pre .title {
19+ color: #00fcd4
20+}
21+
22+.swagger-section pre .annotation, .swagger-section pre .chunk, .swagger-section pre .comment, .swagger-section pre .diff .header, .swagger-section pre .markdown .blockquote, .swagger-section pre .template_comment {
23+ color: #e8eaeb
24+}
25+
26+.swagger-section pre .change, .swagger-section pre .date, .swagger-section pre .go .constant, .swagger-section pre .literal, .swagger-section pre .markdown .bullet, .swagger-section pre .markdown .link_url, .swagger-section pre .number, .swagger-section pre .regexp, .swagger-section pre .smalltalk .char, .swagger-section pre .smalltalk .symbol, .swagger-section pre .tag {
27+ color: #44c7f4
28+}
29+
30+.swagger-section pre .apache .sqbracket, .swagger-section pre .array, .swagger-section pre .attr_selector, .swagger-section pre .clojure .attribute, .swagger-section pre .coffeescript .property, .swagger-section pre .decorator, .swagger-section pre .deletion, .swagger-section pre .doctype, .swagger-section pre .envvar, .swagger-section pre .erlang_repl .reserved, .swagger-section pre .filter .argument, .swagger-section pre .important, .swagger-section pre .javadoc, .swagger-section pre .label, .swagger-section pre .localvars, .swagger-section pre .markdown .link_label, .swagger-section pre .nginx .built_in, .swagger-section pre .pi, .swagger-section pre .prompt, .swagger-section pre .pseudo, .swagger-section pre .ruby .string, .swagger-section pre .shebang, .swagger-section pre .tex .formula, .swagger-section pre .vhdl .attribute {
31+ color: #ff9ce3
32+}
33+
34+.swagger-section pre .aggregate, .swagger-section pre .apache .tag, .swagger-section pre .bash .variable, .swagger-section pre .built_in, .swagger-section pre .css .tag, .swagger-section pre .go .typename, .swagger-section pre .id, .swagger-section pre .javadoctag, .swagger-section pre .keyword, .swagger-section pre .markdown .strong, .swagger-section pre .phpdoc, .swagger-section pre .request, .swagger-section pre .smalltalk .class, .swagger-section pre .status, .swagger-section pre .tex .command, .swagger-section pre .title, .swagger-section pre .winutils, .swagger-section pre .yardoctag {
35+ font-weight: 700
36+}
37+
38+.swagger-section pre .coffeescript .javascript, .swagger-section pre .javascript .xml, .swagger-section pre .tex .formula, .swagger-section pre .xml .cdata, .swagger-section pre .xml .css, .swagger-section pre .xml .javascript, .swagger-section pre .xml .vbscript {
39+ opacity: .5
40+}
41+
42+.swagger-section #resources {
43+ position: relative;
44+ height: 100%;
45+ margin-bottom: 0
46+}
47+
48+@media (min-width: 992px) {
49+ .swagger-section #resources:before {
50+ content: "";
51+ background: #5c666f;
52+ height: 100%;
53+ width: 50%;
54+ top: 0;
55+ right: 0;
56+ position: absolute;
57+ z-index: -1
58+ }
59+}
60+
61+.swagger-section .resource {
62+ margin: 0
63+}
64+
65+.swagger-section .operations {
66+ padding: 20px 0 0
67+}
68+
69+.swagger-section .operation {
70+ margin: 0
71+}
72+
73+@media (min-width: 992px) {
74+ .swagger-section .operation {
75+ min-height: 100vh
76+ }
77+
78+ .swagger-section .operation:after {
79+ clear: both
80+ }
81+
82+ .swagger-section .operation:after, .swagger-section .operation:before {
83+ content: "";
84+ display: table
85+ }
86+}
87+
88+@media (min-width: 992px) {
89+ .swagger-section .operation > .content {
90+ float: left;
91+ width: 50%;
92+ padding: 0 10px
93+ }
94+}
95+
96+@media (min-width: 1400px) {
97+ .swagger-section .operation > .content {
98+ padding: 0 20px
99+ }
100+}
101+
102+@media (min-width: 992px) {
103+ .swagger-section .operation > .samples {
104+ float: left;
105+ width: 50%
106+ }
107+}
108+
109+.swagger-section h2.operation-title {
110+ display: block;
111+ float: none;
112+ color: #333;
113+ padding: 0;
114+ font-size: 25px;
115+ line-height: 1.3;
116+ font-weight: 400;
117+ margin: 20px 0
118+}
119+
120+@media (min-width: 992px) {
121+ .swagger-section h2.operation-title {
122+ font-size: 32px;
123+ font-weight: 200;
124+ line-height: 1;
125+ padding-right: 160px
126+ }
127+}
128+
129+@media (min-width: 1400px) {
130+ .swagger-section h2.operation-title {
131+ padding-right: 0;
132+ }
133+}
134+
135+.swagger-section h3 {
136+ font-weight: 400
137+}
138+
139+.swagger-section .heading {
140+ padding: 0 20px
141+}
142+
143+.swagger-section .heading .path {
144+ display: table-cell
145+}
146+
147+.swagger-section .heading .path a {
148+ font-weight: 400;
149+ color: #838991;
150+ font-size: 12px;
151+ max-width: 230px;
152+ overflow: hidden;
153+ display: inline-block;
154+ vertical-align: top;
155+ text-overflow: ellipsis;
156+ white-space: nowrap
157+}
158+
159+@media (min-width: 992px) {
160+ .swagger-section .heading .path a {
161+ font-size: 16px;
162+ max-width: 545px;
163+ }
164+}
165+
166+@media (min-width: 1400px) {
167+ .swagger-section .heading .path a {
168+ max-width: 405px;
169+ }
170+}
171+
172+.swagger-section .heading .http_method {
173+ display: table-cell
174+}
175+
176+.swagger-section .heading .http_method a {
177+ color: #fff;
178+ text-transform: uppercase;
179+ font-size: 11px;
180+ border-radius: 20px;
181+ padding: 2px 10px;
182+ font-weight: 700;
183+ display: inline-block
184+}
185+
186+.swagger-section .action-summary {
187+ margin: 0;
188+ padding: 20px;
189+ color: #838991
190+}
191+
192+.swagger-section .operation.get .http_method a, .swagger-section .operation.get .http_method span {
193+ background: #44c7f4
194+}
195+
196+.swagger-section .operation.post .http_method a, .swagger-section .operation.post .http_method span {
197+ background: #01b48f
198+}
199+
200+.swagger-section .operation.delete .http_method a, .swagger-section .operation.delete .http_method span {
201+ background: red
202+}
203+
204+.swagger-section .operation.patch .http_method a, .swagger-section .operation.patch .http_method span {
205+ background: #ff9a57
206+}
207+
208+.swagger-section .ui-form-control.error {
209+ border-color: #fd8888;
210+ border-width: 2px
211+}
212+
213+.swagger-section .parameter-item {
214+ min-width: 320px;
215+ background: #f8f8f9;
216+ color: #5c666f;
217+ font-size: 14px;
218+ margin-bottom: 20px
219+}
220+
221+.swagger-section .parameter-item .small-description {
222+ font-size: 12px;
223+ padding-top: 8px
224+}
225+
226+.swagger-section .parameter-item .small-description code {
227+ padding: 2px 4px;
228+ border-radius: 4px;
229+ font-size: 10px;
230+ border: 1px solid rgba(0, 0, 0, .07)
231+}
232+
233+.swagger-section .parameter-item .small-description code.code-signature {
234+ background: 0 0;
235+ color: gray;
236+ margin-right: 5px
237+}
238+
239+.swagger-section .parameter-item .small-description .markdown {
240+ display: inline-table;
241+}
242+
243+.swagger-section .parameter-item .small-description .markdown h1,
244+.swagger-section .parameter-item .small-description .markdown h2,
245+.swagger-section .parameter-item .small-description .markdown h3,
246+.swagger-section .parameter-item .small-description .markdown h4,
247+.swagger-section .parameter-item .small-description .markdown h5,
248+.swagger-section .parameter-item .small-description .markdown p,
249+.swagger-section .parameter-item .small-description .markdown li,
250+.swagger-section .parameter-item .small-description .markdown pre
251+{
252+ margin: 5px 0;
253+}
254+
255+@media (min-width: 992px) {
256+ .swagger-section .parameter-item {
257+ margin: 0 20px 20px;
258+ border-radius: 3px;
259+ border: 1px solid #e8eaeb;
260+ min-width: 0
261+ }
262+}
263+
264+.swagger-section .parameter-item:last-child {
265+ margin-bottom: 0
266+}
267+
268+@media (min-width: 992px) {
269+ .swagger-section .parameter-item:last-child {
270+ margin-bottom: 20px
271+ }
272+}
273+
274+/*
275+.swagger-section .parameter-item .parameter-content-type {
276+ display: none
277+}
278+*/
279+.swagger-section .parameter-item .param-property {
280+ padding: 20px;
281+ line-height: 1.4;
282+ border-bottom: 1px solid #e8eaeb;
283+ min-height: 59px
284+}
285+
286+@media (min-width: 992px) {
287+ .swagger-section .parameter-item .param-property {
288+ position: relative;
289+ padding-left: 150px
290+ }
291+
292+ .swagger-section .parameter-item .param-property:hover {
293+ background: #f0f0f2
294+ }
295+}
296+
297+.swagger-section .parameter-item .param-property:before {
298+ content: attr(data-label);
299+ display: block;
300+ font-weight: 700;
301+ margin-bottom: 15px;
302+ white-space: nowrap;
303+ overflow: hidden;
304+ text-overflow: ellipsis;
305+}
306+
307+@media (min-width: 992px) {
308+ .swagger-section .parameter-item .param-property:before {
309+ position: absolute;
310+ top: 28px;
311+ left: 0;
312+ display: inline-block;
313+ width: 150px;
314+ vertical-align: top;
315+ text-align: right;
316+ padding: 0 20px
317+ }
318+}
319+
320+.swagger-section .parameter-item .param-property:first-child, .swagger-section .parameter-item .param-property:last-child {
321+ border: 0
322+}
323+
324+.swagger-section .parameter-item .param-property:first-child {
325+ background: #949aa0;
326+ font-weight: 700;
327+ color: #fff
328+}
329+
330+@media (min-width: 992px) {
331+ .swagger-section .parameter-item .param-property:first-child {
332+ border-bottom: 1px solid #e8eaeb;
333+ background: #f8f8f9;
334+ color: #5c666f;
335+ font-weight: 400
336+ }
337+}
338+
339+.swagger-section .parameter-item .param-property:first-child:before {
340+ display: none
341+}
342+
343+@media (min-width: 992px) {
344+ .swagger-section .parameter-item .param-property:first-child:before {
345+ display: inline-block
346+ }
347+}
348+
349+.swagger-section .parameter-item .ui-form-control {
350+ width: auto;
351+ max-width: 100%
352+}
353+
354+.swagger-section .parameter-item .ui-form-control.body-textarea {
355+ min-height: 100px;
356+ width: 100%
357+}
358+
359+.swagger-section .parameter-item select.ui-form-control {
360+ width: auto
361+}
362+
363+@media (min-width: 992px) {
364+ .swagger-section .operations .model-signature h4 {
365+ color: #fff;
366+ text-transform: uppercase;
367+ letter-spacing: .08em;
368+ font-size: 14px
369+ }
370+}
371+
372+@media (min-width: 1400px) {
373+ .swagger-section .operations .model-signature h4 {
374+ padding: 20px 30px
375+ }
376+}
377+
378+.swagger-section .operations .model-signature .description {
379+ background: #5c666f;
380+ padding-bottom: 15px;
381+ color: #fff
382+}
383+
384+@media (min-width: 992px) {
385+ .swagger-section .operations .model-signature .description {
386+ background: #4e575e
387+ }
388+}
389+
390+.swagger-section .operations .model-signature .description > div {
391+ margin: 0;
392+ padding: 15px 20px
393+}
394+
395+.swagger-section .operations .model-signature .description > div:after {
396+ clear: both
397+}
398+
399+.swagger-section .operations .model-signature .description > div:after, .swagger-section .operations .model-signature .description > div:before {
400+ content: "";
401+ display: table
402+}
403+
404+@media (min-width: 1400px) {
405+ .swagger-section .operations .model-signature .description > div {
406+ padding: 15px 30px
407+ }
408+}
409+
410+.swagger-section .operations .model-signature .description > div + div {
411+ border-top: 1px solid #717d88
412+}
413+
414+@media (min-width: 992px) {
415+ .swagger-section .operations .model-signature .description > div + div {
416+ border-top: 1px solid #5c666f
417+ }
418+}
419+
420+.swagger-section .operations .model-signature .description .objectName {
421+ background: #535c64;
422+ display: block;
423+ font-weight: 700;
424+ padding: 20px
425+}
426+
427+@media (min-width: 992px) {
428+ .swagger-section .operations .model-signature .description .objectName {
429+ background: #576169;
430+ font-size: 13px;
431+ padding: 10px 30px;
432+ margin-top: 15px
433+ }
434+
435+ .swagger-section .operations .model-signature .description .objectName:first-child {
436+ margin-top: 0
437+ }
438+}
439+
440+.swagger-section .operations .model-signature .description .objectName .bracketsIcon, .swagger-section .operations .model-signature .description .objectName .objectNameText {
441+ display: table-cell
442+}
443+
444+.swagger-section .operations .model-signature .description .objectName .objectNameText {
445+ padding-left: 10px
446+}
447+
448+.swagger-section .operations .model-signature .description .objectName .bracketsIcon {
449+ opacity: .7;
450+ font-family: Menlo, monospace;
451+ font-size: 11px
452+}
453+
454+.swagger-section .operations .model-signature .description .propType {
455+ border-radius: 3px;
456+ padding: 0 5px;
457+ display: table-cell;
458+ border: 1px solid;
459+ font-weight: 400;
460+ font-size: 10px;
461+ font-family: Menlo, monospace;
462+ position: relative;
463+ top: -1px;
464+ left: 5px;
465+ max-width: 120px;
466+ text-overflow: ellipsis;
467+ overflow: hidden
468+}
469+
470+.swagger-section .operations .model-signature .description .propType[title=object], .swagger-section .operations .model-signature .description .propType[title] {
471+ color: #ff9ce3
472+}
473+
474+.swagger-section .operations .model-signature .description .propType[title=string] {
475+ color: #00fcd4
476+}
477+
478+.swagger-section .operations .model-signature .description .propType[title=boolean], .swagger-section .operations .model-signature .description .propType[title=integer] {
479+ color: #44c7f4
480+}
481+
482+.swagger-section .operations .model-signature .description .propType[title="array[string]"], .swagger-section .operations .model-signature .description .propType[title="array[object]"], .swagger-section .operations .model-signature .description .propType[title=array] {
483+ color: #eaca2c
484+}
485+
486+@media (min-width: 992px) {
487+ .swagger-section .operations .model-signature .description .propType {
488+ display: inline-block;
489+ vertical-align: top;
490+ top: 0;
491+ left: 0;
492+ line-height: 1;
493+ font-size: 9px;
494+ padding: 4px 5px
495+ }
496+}
497+
498+.swagger-section .operations .model-signature .description .propName {
499+ display: table-cell;
500+ font-weight: 700
501+}
502+
503+@media (min-width: 992px) {
504+ .swagger-section .operations .model-signature .description .propName {
505+ display: block
506+ }
507+}
508+
509+.swagger-section .operations .model-signature .description .propOptKey {
510+ opacity: .7;
511+ display: block
512+}
513+
514+@media (min-width: 992px) {
515+ .swagger-section .operations .model-signature .description .propOptKey {
516+ display: inline-block;
517+ vertical-align: top;
518+ margin-left: 5px;
519+ position: relative;
520+ top: -2px
521+ }
522+}
523+
524+@media (min-width: 992px) {
525+ .swagger-section .operations .model-signature .description .propDesc {
526+ float: right;
527+ width: 60%;
528+ width: calc(100% - 200px);
529+ padding-left: 20px;
530+ font-size: 12px;
531+ line-height: 1.5
532+ }
533+}
534+
535+@media (min-width: 992px) {
536+ .swagger-section .operations .model-signature .description .propLabels {
537+ text-align: right;
538+ text-align: right;
539+ display: block;
540+ width: 40%;
541+ width: calc(200px);
542+ float: left;
543+ font-size: 12px
544+ }
545+}
546+
547+.swagger-section pre {
548+ background: #4e575e;
549+ margin: 0;
550+ word-wrap: break-word !important;
551+ max-height: none;
552+ border-radius: 0;
553+ color: #fff
554+}
555+
556+.swagger-section pre code {
557+ color: #fff;
558+ background: none !important
559+}
560+
561+@media (min-width: 992px) {
562+ .swagger-section .responses-wrapper {
563+ padding: 0 20px
564+ }
565+}
566+
567+.swagger-section .operation-status {
568+ background: #f8f8f9;
569+ color: #5c666f;
570+ min-width: 320px
571+}
572+
573+@media (min-width: 992px) {
574+ .swagger-section .operation-status {
575+ background: 0 0
576+ }
577+}
578+
579+.swagger-section .operation-status td {
580+ width: auto;
581+ vertical-align: middle;
582+ border-bottom: 1px solid #e8eaeb;
583+ line-height: 1.4;
584+ padding: 15px
585+}
586+
587+.swagger-section .operation-status td:nth-child(1) {
588+ padding: 20px
589+}
590+
591+.swagger-section .operation-status td:nth-child(2) {
592+ color: #8c9299
593+}
594+
595+.swagger-section .token-generator {
596+ min-width: 320px;
597+ background: #5c666f;
598+ padding: 15px 20px;
599+ box-shadow: 0 1px 10px 0 rgba(0, 0, 0, .25);
600+ position: relative;
601+ max-height: 270px;
602+ overflow-y: auto
603+}
604+
605+@media (min-width: 992px) {
606+ .swagger-section .token-generator {
607+ padding-top: 40px;
608+ padding-right: 20px;
609+ box-shadow: none;
610+ background: #f3f3f4;
611+ color: #5c666f;
612+ max-height: none;
613+ min-width: 100%;
614+ width: 100%;
615+ margin-bottom: 30px;
616+ border-bottom: 1px solid #e8eaeb
617+ }
618+}
619+
620+@media (min-width: 992px) {
621+ .swagger-section .token-generator.hide {
622+ display: block !important
623+ }
624+}
625+
626+.swagger-section .token-generator .tg-link {
627+ color: #fff;
628+ font-size: 13px;
629+ text-decoration: underline;
630+ padding-top: 10px;
631+ display: inline-block;
632+ cursor: pointer
633+}
634+
635+.swagger-section .token-generator .tg-link + .tg-link {
636+ margin-left: 15px
637+}
638+
639+@media (min-width: 992px) {
640+ .swagger-section .token-generator .tg-link {
641+ color: #5c666f;
642+ margin-bottom: 20px
643+ }
644+
645+ .swagger-section .token-generator .tg-link:active, .swagger-section .token-generator .tg-link:hover {
646+ color: #9da2a8
647+ }
648+}
649+
650+.swagger-section .token-generator [data-scope-list] {
651+ margin-bottom: 10px
652+}
653+
654+@media (min-width: 992px) {
655+ .swagger-section .token-generator [data-scope-list] {
656+ margin-bottom: 20px
657+ }
658+}
659+
660+.swagger-section .token-generator [data-scope] {
661+ color: #fff;
662+ padding-bottom: 10px
663+}
664+
665+@media (min-width: 992px) {
666+ .swagger-section .token-generator [data-scope] {
667+ color: #5c666f;
668+ border: 1px solid #dfe2e4;
669+ border-radius: 20px;
670+ padding: 8px 20px 8px 12px;
671+ display: table;
672+ margin-bottom: 7px
673+ }
674+}
675+
676+.swagger-section .token-generator [data-scope] .name {
677+ font-size: 12px
678+}
679+
680+.swagger-section .token-generator [data-scope] [data-remove] {
681+ cursor: pointer
682+}
683+
684+@media (min-width: 992px) {
685+ .swagger-section .token-generator [data-scope] [data-remove] {
686+ color: #333
687+ }
688+
689+ .swagger-section .token-generator [data-scope] [data-remove]:active, .swagger-section .token-generator [data-scope] [data-remove]:hover {
690+ color: red
691+ }
692+}
693+
694+.swagger-section .token-generator [data-scope] [data-remove]:after {
695+ content: "\E179";
696+ font-family: budicon-font !important;
697+ font-style: normal !important;
698+ font-weight: 400 !important;
699+ font-variant: normal !important;
700+ text-transform: none !important;
701+ speak: none;
702+ line-height: 1;
703+ -webkit-font-smoothing: antialiased;
704+ -moz-osx-font-smoothing: grayscale;
705+ font-size: 10px;
706+ position: relative;
707+ left: 7px;
708+ top: 2px;
709+ opacity: .5
710+}
711+
712+.swagger-section .token-generator [data-close] {
713+ color: #fff;
714+ position: absolute;
715+ top: 0;
716+ right: 0;
717+ font-size: 12px;
718+ padding: 14px 20px;
719+ cursor: pointer
720+}
721+
722+@media (min-width: 992px) {
723+ .swagger-section .token-generator [data-close] {
724+ display: none
725+ }
726+}
727+
728+.swagger-section .token-generator .btn {
729+ background: #fff;
730+ border: 0;
731+ float: right
732+}
733+
734+@media (min-width: 992px) {
735+ .swagger-section .token-generator .btn {
736+ border: 1px solid #cfd3d5;
737+ height: 32px
738+ }
739+}
740+
741+.swagger-section .token-generator .btn:active, .swagger-section .token-generator .btn:hover {
742+ background: #e8eaeb
743+}
744+
745+@media (min-width: 992px) {
746+ .swagger-section .token-generator .btn.disabled {
747+ opacity: .3
748+ }
749+}
750+
751+.swagger-section .token-generator .btn > span {
752+ position: relative;
753+ top: 2px
754+}
755+
756+.swagger-section .token-generator .custom-select {
757+ background: #fff;
758+ padding: 0 18px 0 12px;
759+ border-radius: 3px;
760+ display: inline-block;
761+ width: 44.5%;
762+ width: calc(50% - 5px);
763+ height: 32px;
764+ line-height: 32px;
765+ white-space: nowrap;
766+ text-overflow: ellipsis;
767+ overflow: hidden;
768+ font-size: 13px;
769+ vertical-align: top
770+}
771+
772+@media (min-width: 992px) {
773+ .swagger-section .token-generator .custom-select {
774+ border: 1px solid #cfd3d5
775+ }
776+}
777+
778+@media (min-width: 992px) {
779+ .swagger-section .token-generator .custom-select.disabled {
780+ opacity: .3
781+ }
782+}
783+
784+.swagger-section .token-generator .custom-select:after {
785+ content: "\E16E";
786+ font-family: budicon-font !important;
787+ font-style: normal !important;
788+ font-weight: 400 !important;
789+ font-variant: normal !important;
790+ text-transform: none !important;
791+ speak: none;
792+ line-height: 1;
793+ -webkit-font-smoothing: antialiased;
794+ -moz-osx-font-smoothing: grayscale;
795+ font-size: 12px;
796+ position: absolute;
797+ top: 12px;
798+ right: 10px;
799+ opacity: .7;
800+ pointer-events: none;
801+ color: #5c666f
802+}
803+
804+.swagger-section .token-generator .custom-select + .custom-select {
805+ margin-left: 5px
806+}
807+
808+.swagger-section .token-generator .scope-selector {
809+ padding: 15px 0
810+}
811+
812+.swagger-section .token-generator .scope-selector:after {
813+ clear: both
814+}
815+
816+.swagger-section .token-generator .scope-selector:after, .swagger-section .token-generator .scope-selector:before {
817+ content: "";
818+ display: table
819+}
820+
821+.swagger-section .token-generator .scope-selector > .area {
822+ float: left
823+}
824+
825+.swagger-section .token-generator .scope-selector label {
826+ display: none
827+}
828+
829+@media (min-width: 992px) {
830+ .swagger-section .token-generator .scope-selector label {
831+ display: block
832+ }
833+}
834+
835+.swagger-section .token-generator .scope-selector .controls {
836+ width: calc(100% - 55px)
837+}
838+
839+.swagger-section .token-generator .scope-selector .cta {
840+ width: 55px
841+}
842+
843+.swagger-section .token-generator .scope-selector .cta:after {
844+ clear: both
845+}
846+
847+.swagger-section .token-generator .scope-selector .cta:after, .swagger-section .token-generator .scope-selector .cta:before {
848+ content: "";
849+ display: table
850+}
851+
852+.swagger-section .token-generator label {
853+ text-transform: uppercase;
854+ letter-spacing: .08em;
855+ font-size: 12px;
856+ font-weight: 700;
857+ color: #fff;
858+ display: inline-block;
859+ margin-bottom: 10px
860+}
861+
862+@media (min-width: 992px) {
863+ .swagger-section .token-generator label {
864+ color: #5c666f;
865+ font-size: 13px;
866+ margin-bottom: 15px
867+ }
868+}
869+
870+.swagger-section .operations h4 {
871+ font-size: 16px;
872+ padding: 20px;
873+ margin: 0;
874+ color: #5c666f;
875+ cursor: pointer;
876+ box-shadow: inset 0 -1px 0 0 #e8eaeb;
877+ transition: box-shadow 0 300ms ease;
878+ min-width: 320px;
879+ position: relative
880+}
881+
882+@media (min-width: 992px) {
883+ .swagger-section .operations h4 {
884+ box-shadow: none;
885+ cursor: default
886+ }
887+}
888+
889+.swagger-section .operations h4:after {
890+ content: "\E17B";
891+ font-family: budicon-font !important;
892+ font-style: normal !important;
893+ font-weight: 400 !important;
894+ font-variant: normal !important;
895+ text-transform: none !important;
896+ speak: none;
897+ line-height: 1;
898+ -webkit-font-smoothing: antialiased;
899+ -moz-osx-font-smoothing: grayscale;
900+ font-size: 12px;
901+ position: absolute;
902+ top: 25px;
903+ right: 20px;
904+ opacity: .7
905+}
906+
907+@media (min-width: 992px) {
908+ .swagger-section .operations h4:after {
909+ display: none
910+ }
911+}
912+
913+/* change
914+.swagger-section .operations [data-accordion].open h4 {
915+ box-shadow: inset 0 -1px 0 0 transparent;
916+ transition: box-shadow 0 0 ease
917+}
918+*/
919+
920+.swagger-section .operations h4:not(.collapsed) {
921+ box-shadow: inset 0 -1px 0 0 transparent;
922+ transition: box-shadow 0 0 ease
923+}
924+
925+/* change
926+.swagger-section .operations [data-accordion].open h4:after {
927+ content: "\E17A";
928+ font-family: budicon-font !important;
929+ font-style: normal !important;
930+ font-weight: 400 !important;
931+ font-variant: normal !important;
932+ text-transform: none !important;
933+ speak: none;
934+ line-height: 1;
935+ -webkit-font-smoothing: antialiased;
936+ -moz-osx-font-smoothing: grayscale
937+}
938+*/
939+
940+.swagger-section .operations h4:not(.collapsed):after {
941+ content: "\E17A";
942+ font-family: budicon-font !important;
943+ font-style: normal !important;
944+ font-weight: 400 !important;
945+ font-variant: normal !important;
946+ text-transform: none !important;
947+ speak: none;
948+ line-height: 1;
949+ -webkit-font-smoothing: antialiased;
950+ -moz-osx-font-smoothing: grayscale
951+}
952+
953+/*
954+@media (min-width: 992px) {
955+ .swagger-section .scopes {
956+ padding: 0 15px
957+ }
958+}
959+
960+.swagger-section .scopes .scope {
961+ background: #f8f8f9;
962+ color: #5c666f;
963+ display: block;
964+ padding: 15px 20px;
965+ font-size: 12px;
966+ cursor: pointer
967+}
968+
969+.swagger-section .scopes .scope:before {
970+ content: "";
971+ font-family: budicon-font !important;
972+ font-style: normal !important;
973+ font-weight: 400 !important;
974+ font-variant: normal !important;
975+ text-transform: none !important;
976+ speak: none;
977+ line-height: 1;
978+ -webkit-font-smoothing: antialiased;
979+ -moz-osx-font-smoothing: grayscale;
980+ position: relative;
981+ top: 2px;
982+ margin-right: 5px
983+}
984+
985+.swagger-section .scopes .scope.active {
986+ background: #ebebee
987+}
988+
989+.swagger-section .scopes .scope.active:before {
990+ content: "\E178";
991+ font-family: budicon-font !important;
992+ font-style: normal !important;
993+ font-weight: 400 !important;
994+ font-variant: normal !important;
995+ text-transform: none !important;
996+ speak: none;
997+ line-height: 1;
998+ -webkit-font-smoothing: antialiased;
999+ -moz-osx-font-smoothing: grayscale
1000+}
1001+
1002+@media (min-width: 992px) {
1003+ .swagger-section .scopes .scope.active {
1004+ background: #f8f8f9
1005+ }
1006+}
1007+
1008+@media (min-width: 992px) {
1009+ .swagger-section .scopes .scope {
1010+ display: inline-block;
1011+ border: 1px solid #e8eaeb;
1012+ border-radius: 20px;
1013+ background: 0 0;
1014+ padding: 8px 12px
1015+ }
1016+}
1017+
1018+.swagger-section .scopes .scope + .scope {
1019+ border-top: 1px solid #e8eaeb
1020+}
1021+
1022+@media (min-width: 992px) {
1023+ .swagger-section .scopes .scope + .scope {
1024+ margin: 5px
1025+ }
1026+}
1027+*/
1028+
1029+.api-popup-scopes .scopes {
1030+ padding: 0 15px
1031+}
1032+
1033+.api-popup-scopes .scopes .scope:before {
1034+ content: "";
1035+ font-family: budicon-font !important;
1036+ font-style: normal !important;
1037+ font-weight: 400 !important;
1038+ font-variant: normal !important;
1039+ text-transform: none !important;
1040+ speak: none;
1041+ line-height: 1;
1042+ -webkit-font-smoothing: antialiased;
1043+ -moz-osx-font-smoothing: grayscale;
1044+ position: relative;
1045+ top: 2px;
1046+ margin-right: 5px
1047+}
1048+
1049+.api-popup-scopes .scopes .scope.active:before {
1050+ content: "\E178";
1051+ font-family: budicon-font !important;
1052+ font-style: normal !important;
1053+ font-weight: 400 !important;
1054+ font-variant: normal !important;
1055+ text-transform: none !important;
1056+ speak: none;
1057+ line-height: 1;
1058+ -webkit-font-smoothing: antialiased;
1059+ -moz-osx-font-smoothing: grayscale
1060+}
1061+
1062+.api-popup-scopes .scopes .scope.active {
1063+ background: #f8f8f9
1064+}
1065+
1066+.api-popup-scopes .scopes .scope {
1067+ cursor: pointer;
1068+ display: inline-block;
1069+ border: 1px solid #e8eaeb;
1070+ border-radius: 20px;
1071+ background: 0 0;
1072+ padding: 8px 12px
1073+}
1074+
1075+.api-popup-scopes .scopes .scope + .scope {
1076+ margin: 5px
1077+}
1078+
1079+.swagger-section .sticky-nav.fixed {
1080+ position: fixed;
1081+ top: 0;
1082+ left: 0;
1083+ width: 100%;
1084+ z-index: 600
1085+}
1086+
1087+@media (min-width: 992px) {
1088+ .swagger-section .sticky-nav.fixed {
1089+ width: 290px;
1090+ height: 100%;
1091+ overflow-y: auto
1092+ }
1093+}
1094+
1095+@media (min-width: 1400px) {
1096+ .swagger-section .sticky-nav.fixed {
1097+ width: 320px
1098+ }
1099+}
1100+
1101+.swagger-section .sticky-nav [data-navigator] {
1102+ transition: height 300ms ease;
1103+ height: 0;
1104+ overflow-y: scroll;
1105+ overflow-x: hidden;
1106+ background: #4e575e;
1107+ box-shadow: inset 0 2px 10px 0 rgba(0, 0, 0, .4);
1108+ position: absolute;
1109+ top: 43px;
1110+ width: 100%;
1111+ z-index: 500
1112+}
1113+
1114+@media (min-width: 992px) {
1115+ .swagger-section .sticky-nav [data-navigator] {
1116+ position: static;
1117+ height: auto;
1118+ overflow: visible;
1119+ background: #f8f8f9;
1120+ box-shadow: none
1121+ }
1122+
1123+ .swagger-section .sticky-nav [data-navigator]:before {
1124+ display: inline-block;
1125+ content: "API Reference";
1126+ text-transform: uppercase;
1127+ letter-spacing: .08em;
1128+ color: #5c666f;
1129+ font-size: 13px;
1130+ font-weight: 700;
1131+ margin-bottom: 15px;
1132+ padding: 0 20px
1133+ }
1134+}
1135+
1136+@media (min-width: 992px) {
1137+ .swagger-section .sticky-nav [data-navigator] [data-resource] {
1138+ cursor: pointer
1139+ }
1140+}
1141+
1142+@media (min-width: 992px) {
1143+ .swagger-section .sticky-nav [data-navigator] [data-resource] .item {
1144+ display: none
1145+ }
1146+}
1147+
1148+@media (min-width: 992px) {
1149+ .swagger-section .sticky-nav [data-navigator] [data-resource].active .item {
1150+ display: block
1151+ }
1152+}
1153+
1154+.swagger-section .sticky-nav [data-navigator] [data-resource]:before {
1155+ content: attr(label);
1156+ display: block;
1157+ color: #fff;
1158+ padding: 10px 20px;
1159+ text-transform: uppercase;
1160+ letter-spacing: .08em;
1161+ font-size: 11px;
1162+ font-weight: 700;
1163+ background: #454d53
1164+}
1165+
1166+@media (min-width: 992px) {
1167+ .swagger-section .sticky-nav [data-navigator] [data-resource]:before {
1168+ background: 0 0;
1169+ text-transform: none;
1170+ font-size: 16px;
1171+ font-weight: 400;
1172+ letter-spacing: 0;
1173+ color: #5c666f
1174+ }
1175+}
1176+
1177+@media (min-width: 992px) {
1178+ .swagger-section .sticky-nav [data-navigator] [label=Tools] {
1179+ display: none
1180+ }
1181+}
1182+
1183+.swagger-section .sticky-nav [data-navigator] .item {
1184+ padding: 12px 20px;
1185+ color: #fff;
1186+ cursor: pointer;
1187+ overflow: hidden;
1188+ text-overflow: ellipsis;
1189+ white-space: nowrap;
1190+ position: relative
1191+}
1192+
1193+@media (min-width: 992px) {
1194+ .swagger-section .sticky-nav [data-navigator] .item {
1195+ color: #5c666f;
1196+ padding: 9px 9px 9px 40px;
1197+ font-size: 14px;
1198+ background: #f3f3f4
1199+ }
1200+
1201+ .swagger-section .sticky-nav [data-navigator] .item:active, .swagger-section .sticky-nav [data-navigator] .item:hover {
1202+ color: #8c9299
1203+ }
1204+}
1205+
1206+.swagger-section .sticky-nav [data-navigator] .item[data-tg-switch]:after {
1207+ content: 'OFF';
1208+ position: absolute;
1209+ right: 20px;
1210+ top: 8px;
1211+ display: block;
1212+ background: #000;
1213+ width: 40px;
1214+ font-size: 11px;
1215+ font-weight: 700;
1216+ text-transform: uppercase;
1217+ text-align: center;
1218+ padding: 5px 0;
1219+ border-radius: 13px;
1220+ opacity: .2
1221+}
1222+
1223+.swagger-section .sticky-nav [data-navigator] .item[data-tg-switch].active:after {
1224+ content: 'ON';
1225+ background: rgba(68, 199, 244, .5);
1226+ opacity: 1
1227+}
1228+
1229+.swagger-section .sticky-nav [data-navigator] .item[data-selected] {
1230+ background: rgba(68, 199, 244, .5);
1231+ padding-right: 42px
1232+}
1233+
1234+@media (min-width: 992px) {
1235+ .swagger-section .sticky-nav [data-navigator] .item[data-selected] {
1236+ background: #f3f3f4;
1237+ font-weight: 700;
1238+ color: #333
1239+ }
1240+
1241+ .swagger-section .sticky-nav [data-navigator] .item[data-selected]:active, .swagger-section .sticky-nav [data-navigator] .item[data-selected]:hover {
1242+ color: #333
1243+ }
1244+}
1245+
1246+.swagger-section .sticky-nav [data-navigator] .item[data-selected]:after {
1247+ content: "\E178";
1248+ font-family: budicon-font !important;
1249+ font-style: normal !important;
1250+ font-weight: 400 !important;
1251+ font-variant: normal !important;
1252+ text-transform: none !important;
1253+ speak: none;
1254+ line-height: 1;
1255+ -webkit-font-smoothing: antialiased;
1256+ -moz-osx-font-smoothing: grayscale;
1257+ font-size: 12px;
1258+ position: absolute;
1259+ top: 15px;
1260+ right: 20px;
1261+ opacity: .7;
1262+ pointer-events: none
1263+}
1264+
1265+@media (min-width: 992px) {
1266+ .swagger-section .sticky-nav [data-navigator] .item[data-selected]:after {
1267+ display: none
1268+ }
1269+}
1270+
1271+.swagger-section .sticky-nav [data-navigator] .item + .item {
1272+ border-top: 1px solid #576169
1273+}
1274+
1275+@media (min-width: 992px) {
1276+ .swagger-section .sticky-nav [data-navigator] .item + .item {
1277+ border-top: 1px solid #e8eaeb
1278+ }
1279+}
1280+
1281+.swagger-section .sticky-nav.nav-open [data-navigator] {
1282+ height: 180px;
1283+ height: 100vh
1284+}
1285+
1286+@media (min-width: 992px) {
1287+ .swagger-section .sticky-nav.nav-open [data-navigator] {
1288+ height: auto
1289+ }
1290+}
1291+
1292+.swagger-section .custom-select {
1293+ position: relative
1294+}
1295+
1296+.swagger-section .custom-select.disabled {
1297+ opacity: .65
1298+}
1299+
1300+.swagger-section .custom-select select {
1301+ position: absolute;
1302+ top: 0;
1303+ left: 0;
1304+ width: 100%;
1305+ height: 100%;
1306+ opacity: 0;
1307+ -webkit-appearance: none
1308+}
1309+
1310+.swagger-section .mobile-nav {
1311+ position: relative;
1312+ background: #fff;
1313+ padding: 15px 20px;
1314+ cursor: default;
1315+ text-transform: uppercase;
1316+ letter-spacing: .08em;
1317+ font-size: 12px;
1318+ border-bottom: 1px solid #ebebee;
1319+ z-index: 800
1320+}
1321+
1322+@media (min-width: 992px) {
1323+ .swagger-section .mobile-nav {
1324+ display: none
1325+ }
1326+}
1327+
1328+.swagger-section .mobile-nav:after {
1329+ content: "\E16E";
1330+ font-family: budicon-font !important;
1331+ font-style: normal !important;
1332+ font-weight: 400 !important;
1333+ font-variant: normal !important;
1334+ text-transform: none !important;
1335+ speak: none;
1336+ line-height: 1;
1337+ -webkit-font-smoothing: antialiased;
1338+ -moz-osx-font-smoothing: grayscale;
1339+ font-size: 12px;
1340+ position: absolute;
1341+ top: 15px;
1342+ right: 20px;
1343+ opacity: .7;
1344+ pointer-events: none
1345+}
1346+
1347+.swagger-section .mobile-nav > span {
1348+ display: table-cell
1349+}
1350+
1351+.swagger-section .mobile-nav .select-label {
1352+ color: #9da2a8;
1353+ min-width: 110px
1354+}
1355+
1356+.swagger-section .mobile-nav [data-selected-value] {
1357+ max-width: 140px;
1358+ overflow: hidden;
1359+ text-overflow: ellipsis;
1360+ white-space: nowrap
1361+}
1362+
1363+.modal-backdrop {
1364+ background: none !important
1365+}
1366+
1367+.changes-disclaimer {
1368+ display: none;
1369+ border: 1px solid #dddde2;
1370+ border-radius: 3px;
1371+ padding: 15px;
1372+ margin: 20px 20px 40px;
1373+ line-height: 1.4;
1374+ background: #ebebee;
1375+ font-size: 13px
1376+}
1377+
1378+@media (min-width: 992px) {
1379+ .changes-disclaimer {
1380+ display: block
1381+ }
1382+}
1383+
1384+.site-header .container {
1385+ max-width: none !important;
1386+ width: 100%
1387+}
1388+
1389+body {
1390+ overflow-x: hidden
1391+}
1392+
1393+#api2-explorer .btn {
1394+ outline: 0
1395+}
1396+
1397+#api2-explorer code.json {
1398+ font-size: 12px
1399+}
1400+
1401+#api2-explorer a.toggle-samples {
1402+ display: none
1403+}
1404+
1405+#api2-explorer .modal {
1406+ background: rgba(244, 241, 241, .95)
1407+}
1408+
1409+#api2-explorer .modal h5 {
1410+ color: #5c666f;
1411+ text-transform: uppercase;
1412+ font-size: 12px;
1413+ margin: 10px 0;
1414+ letter-spacing: .065em
1415+}
1416+
1417+#api2-explorer .modal pre {
1418+ border-radius: 3px
1419+}
1420+
1421+#api2-explorer .modal .modal-content {
1422+ box-shadow: 0 0 10px 0 rgba(0, 0, 0, .1);
1423+ border: 0
1424+}
1425+
1426+#api2-explorer .modal .modal-title {
1427+ padding: 0;
1428+ margin: 0;
1429+ font-size: 16px
1430+}
1431+
1432+#api2-explorer .modal .modal-title .http_method {
1433+ text-transform: uppercase;
1434+ font-size: 12px;
1435+ letter-spacing: .065em
1436+}
1437+
1438+#api2-explorer .modal .modal-title .http_method .text {
1439+ color: #fff;
1440+ font-size: 11px;
1441+ padding: 4px 10px;
1442+ border-radius: 20px;
1443+ margin-left: 10px
1444+}
1445+
1446+#api2-explorer .modal .modal-dialog {
1447+ overflow: visible
1448+}
1449+
1450+#api2-explorer .modal .modal-dialog .modal-body {
1451+ padding: 20px;
1452+ max-height: none
1453+}
1454+
1455+@media (min-width: 992px) {
1456+ #api2-explorer .modal .modal-dialog .modal-body {
1457+ padding: 20px 30px
1458+ }
1459+}
1460+
1461+#swagger-ui-container {
1462+ position: relative
1463+}
1464+
1465+@media (min-width: 992px) {
1466+ .swagger-section #swagger_sidebar {
1467+ width: 290px;
1468+ position: absolute;
1469+ left: 0;
1470+ top: 0;
1471+ height: 100%;
1472+ background: #f8f8f9;
1473+ min-height: 100vh
1474+ }
1475+}
1476+
1477+@media (min-width: 1400px) {
1478+ .swagger-section #swagger_sidebar {
1479+ width: 320px
1480+ }
1481+}
1482+
1483+@media (min-width: 992px) {
1484+ .swagger-section #resources_container {
1485+ width: 100%;
1486+ padding-left: 290px
1487+ }
1488+}
1489+
1490+@media (min-width: 1400px) {
1491+ .swagger-section #resources_container {
1492+ padding-left: 320px
1493+ }
1494+}
1495+
1496+.swagger-section .implementation-notes {
1497+ padding: 0 20px
1498+}
1499+
1500+.swagger-section .endpoint {
1501+ margin: 0 0 100px
1502+}
1503+
1504+@media (min-width: 992px) {
1505+ .swagger-section .endpoint + .endpoint, .swagger-section .endpoint:first-child {
1506+ border-top: 1px solid rgba(0, 0, 0, .08)
1507+ }
1508+}
1509+
1510+.swagger-section .sandbox_header {
1511+ padding: 0 20px 20px
1512+}
1513+
1514+.swagger-section .sandbox_header a {
1515+ text-decoration: underline
1516+}
1517+
1518+.swagger-section .sandbox_header .btn-primary {
1519+ margin-right: 5px
1520+}
1521+
1522+.swagger-section #resources a.toggle-samples {
1523+ display: none
1524+}
1525+
1526+.swagger-section #resources .endpoint {
1527+ transition: opacity 300ms ease-in-out
1528+}
1529+
1530+@media (min-width: 992px) {
1531+ .swagger-section #resources {
1532+ width: 100%;
1533+ transition: width 300ms
1534+ }
1535+
1536+ .swagger-section #resources .operation .content {
1537+ position: relative
1538+ }
1539+
1540+ .swagger-section #resources a.toggle-samples {
1541+ display: inline-block;
1542+ position: absolute;
1543+ top: 30px;
1544+ right: 20px;
1545+ color: #5c666f;
1546+ text-decoration: none;
1547+ cursor: pointer
1548+ }
1549+
1550+ .swagger-section #resources a.toggle-samples:hover .text {
1551+ text-decoration: underline
1552+ }
1553+
1554+ .swagger-section #resources a.toggle-samples .circle-icon {
1555+ display: inline-block;
1556+ background: rgba(128, 128, 128, .09);
1557+ border-radius: 50%;
1558+ border: 1px solid rgba(92, 102, 111, .09);
1559+ font-size: 11px;
1560+ height: 30px;
1561+ width: 30px;
1562+ line-height: 30px;
1563+ padding: 0;
1564+ text-align: center;
1565+ position: relative;
1566+ margin-left: 8px
1567+ }
1568+
1569+ .swagger-section #resources a.toggle-samples .circle-icon:before {
1570+ content: '\E16F';
1571+ font-family: budicon-font !important;
1572+ font-style: normal !important;
1573+ font-weight: 400 !important;
1574+ font-variant: normal !important;
1575+ text-transform: none !important;
1576+ speak: none;
1577+ line-height: 1;
1578+ -webkit-font-smoothing: antialiased;
1579+ -moz-osx-font-smoothing: grayscale;
1580+ font-size: 12px;
1581+ position: relative;
1582+ top: 2px
1583+ }
1584+
1585+ .swagger-section #resources a.toggle-samples:active, .swagger-section #resources a.toggle-samples:hover {
1586+ color: #9da2a8
1587+ }
1588+}
1589+
1590+@media (min-width: 1400px) {
1591+ .swagger-section #resources a.toggle-samples {
1592+ display: none
1593+ }
1594+}
1595+
1596+.swagger-section #resources.is-collapsing .endpoint {
1597+ opacity: 0;
1598+ transition: none
1599+}
1600+
1601+@media (min-width: 992px) {
1602+ .swagger-section #resources.samples-collapsed {
1603+ width: 130%;
1604+ }
1605+
1606+ .swagger-section #resources.samples-collapsed a.toggle-samples .circle-icon:before {
1607+ content: '\E0F8';
1608+ font-family: budicon-font !important;
1609+ font-style: normal !important;
1610+ font-weight: 400 !important;
1611+ font-variant: normal !important;
1612+ text-transform: none !important;
1613+ speak: none;
1614+ line-height: 1;
1615+ -webkit-font-smoothing: antialiased;
1616+ -moz-osx-font-smoothing: grayscale
1617+ }
1618+
1619+ .swagger-section #resources.samples-collapsed .samples > * {
1620+ display: none
1621+ }
1622+}
1623+
1624+@media (min-width: 1400px) {
1625+ .swagger-section #resources.samples-collapsed {
1626+ width: 100%
1627+ }
1628+
1629+ .swagger-section #resources.samples-collapsed .samples > * {
1630+ display: inherit
1631+ }
1632+}
1633+
1634+.swagger-section ul#resources, .swagger-section ul.endpoints {
1635+ padding: 0
1636+}
1637+
1638+.swagger-section [data-accordion] [data-content] {
1639+ overflow: hidden;
1640+ max-height: 0
1641+}
1642+
1643+@media (min-width: 992px) {
1644+ .swagger-section [data-accordion] [data-content] {
1645+ max-height: none !important
1646+ }
1647+}
1648+
1649+.swagger-section .swagger-ui-wrap {
1650+ line-height: 1;
1651+ font-family: proxima-nova, sans-serif;
1652+ margin-left: auto;
1653+ margin-right: auto
1654+}
1655+
1656+.swagger-section .swagger-ui-wrap b, .swagger-section .swagger-ui-wrap strong {
1657+ font-family: proxima-nova, sans-serif;
1658+ font-weight: 700
1659+}
1660+
1661+.swagger-section .swagger-ui-wrap blockquote, .swagger-section .swagger-ui-wrap q {
1662+ quotes: none
1663+}
1664+
1665+.swagger-section .swagger-ui-wrap blockquote:after, .swagger-section .swagger-ui-wrap blockquote:before, .swagger-section .swagger-ui-wrap q:after, .swagger-section .swagger-ui-wrap q:before {
1666+ content: none
1667+}
1668+
1669+.swagger-section .swagger-ui-wrap .heading_with_menu h1, .swagger-section .swagger-ui-wrap .heading_with_menu h2, .swagger-section .swagger-ui-wrap .heading_with_menu h3, .swagger-section .swagger-ui-wrap .heading_with_menu h4, .swagger-section .swagger-ui-wrap .heading_with_menu h5, .swagger-section .swagger-ui-wrap .heading_with_menu h6 {
1670+ display: block;
1671+ clear: none;
1672+ float: left;
1673+ -moz-box-sizing: border-box;
1674+ -webkit-box-sizing: border-box;
1675+ -ms-box-sizing: border-box;
1676+ box-sizing: border-box;
1677+ width: 60%
1678+}
1679+
1680+.swagger-section .swagger-ui-wrap table {
1681+ border-collapse: collapse;
1682+ border-spacing: 0
1683+}
1684+
1685+.swagger-section .swagger-ui-wrap table thead tr th {
1686+ padding: 5px;
1687+ font-size: .9em;
1688+ color: #666;
1689+ border-bottom: 1px solid #999
1690+}
1691+
1692+.swagger-section .swagger-ui-wrap table tbody tr:last-child td {
1693+ border-bottom: none
1694+}
1695+
1696+.swagger-section .swagger-ui-wrap table tbody tr.offset {
1697+ background-color: #f0f0f0
1698+}
1699+
1700+.swagger-section .swagger-ui-wrap ol {
1701+ margin: 0 0 10px;
1702+ padding: 0 0 0 18px
1703+}
1704+
1705+.swagger-section .swagger-ui-wrap ol li {
1706+ padding: 5px 0;
1707+ font-size: .9em;
1708+ color: #333
1709+}
1710+
1711+.swagger-section .swagger-ui-wrap ol, .swagger-section .swagger-ui-wrap ul {
1712+ list-style: none
1713+}
1714+
1715+.swagger-section .swagger-ui-wrap h1 a, .swagger-section .swagger-ui-wrap h2 a, .swagger-section .swagger-ui-wrap h3 a, .swagger-section .swagger-ui-wrap h4 a, .swagger-section .swagger-ui-wrap h5 a, .swagger-section .swagger-ui-wrap h6 a {
1716+ text-decoration: none
1717+}
1718+
1719+.swagger-section .swagger-ui-wrap h1 a:hover, .swagger-section .swagger-ui-wrap h2 a:hover, .swagger-section .swagger-ui-wrap h3 a:hover, .swagger-section .swagger-ui-wrap h4 a:hover, .swagger-section .swagger-ui-wrap h5 a:hover, .swagger-section .swagger-ui-wrap h6 a:hover {
1720+ text-decoration: underline
1721+}
1722+
1723+.swagger-section .swagger-ui-wrap h1 span.divider, .swagger-section .swagger-ui-wrap h2 span.divider, .swagger-section .swagger-ui-wrap h3 span.divider, .swagger-section .swagger-ui-wrap h4 span.divider, .swagger-section .swagger-ui-wrap h5 span.divider, .swagger-section .swagger-ui-wrap h6 span.divider {
1724+ color: #aaa
1725+}
1726+
1727+.swagger-section .swagger-ui-wrap article, .swagger-section .swagger-ui-wrap aside, .swagger-section .swagger-ui-wrap details, .swagger-section .swagger-ui-wrap figcaption, .swagger-section .swagger-ui-wrap figure, .swagger-section .swagger-ui-wrap footer, .swagger-section .swagger-ui-wrap header, .swagger-section .swagger-ui-wrap hgroup, .swagger-section .swagger-ui-wrap menu, .swagger-section .swagger-ui-wrap nav, .swagger-section .swagger-ui-wrap section, .swagger-section .swagger-ui-wrap summary {
1728+ display: block
1729+}
1730+
1731+.swagger-section .swagger-ui-wrap .content > .content-type > div > label {
1732+ clear: both;
1733+ display: block;
1734+ color: #0F6AB4;
1735+ font-size: 1.1em;
1736+ margin: 0;
1737+ padding: 15px 0 5px
1738+}
1739+
1740+.swagger-section .swagger-ui-wrap .icon-btn {
1741+ cursor: pointer
1742+}
1743+
1744+.swagger-section .swagger-ui-wrap .info_title {
1745+ padding-bottom: 10px;
1746+ font-weight: 700;
1747+ font-size: 25px
1748+}
1749+
1750+.swagger-section .swagger-ui-wrap div.big p, .swagger-section .swagger-ui-wrap p.big {
1751+ font-size: 1em;
1752+ margin-bottom: 10px
1753+}
1754+
1755+.swagger-section .swagger-ui-wrap form.fullwidth ol li.numeric input, .swagger-section .swagger-ui-wrap form.fullwidth ol li.string input, .swagger-section .swagger-ui-wrap form.fullwidth ol li.text textarea, .swagger-section .swagger-ui-wrap form.fullwidth ol li.url input {
1756+ width: 500px !important
1757+}
1758+
1759+.swagger-section .swagger-ui-wrap .info_license, .swagger-section .swagger-ui-wrap .info_tos {
1760+ padding-bottom: 5px
1761+}
1762+
1763+.swagger-section .swagger-ui-wrap .message-fail {
1764+ color: #c00
1765+}
1766+
1767+.swagger-section .swagger-ui-wrap .info_contact {
1768+ padding-bottom: 5px
1769+}
1770+
1771+.swagger-section .swagger-ui-wrap .info_description {
1772+ padding-bottom: 10px;
1773+ font-size: 15px
1774+}
1775+
1776+.swagger-section .swagger-ui-wrap .markdown ol li, .swagger-section .swagger-ui-wrap .markdown ul li {
1777+ padding: 3px 0;
1778+ line-height: 1.4em;
1779+ color: #333
1780+}
1781+
1782+.swagger-section .swagger-ui-wrap form.formtastic fieldset.inputs ol li.numeric input, .swagger-section .swagger-ui-wrap form.formtastic fieldset.inputs ol li.string input, .swagger-section .swagger-ui-wrap form.formtastic fieldset.inputs ol li.url input {
1783+ display: block;
1784+ padding: 4px;
1785+ width: auto;
1786+ clear: both
1787+}
1788+
1789+.swagger-section .swagger-ui-wrap form.formtastic fieldset.inputs ol li.numeric input.title, .swagger-section .swagger-ui-wrap form.formtastic fieldset.inputs ol li.string input.title, .swagger-section .swagger-ui-wrap form.formtastic fieldset.inputs ol li.url input.title {
1790+ font-size: 1.3em
1791+}
1792+
1793+.swagger-section .swagger-ui-wrap table.fullwidth {
1794+ width: 100%
1795+}
1796+
1797+.swagger-section .swagger-ui-wrap .model-signature {
1798+ font-family: proxima-nova, sans-serif;
1799+ font-size: 1em;
1800+ line-height: 1.5em
1801+}
1802+
1803+.swagger-section .swagger-ui-wrap .model-signature .signature-nav a {
1804+ text-decoration: none;
1805+ color: #AAA
1806+}
1807+
1808+.swagger-section .swagger-ui-wrap .model-signature .signature-nav a:hover {
1809+ text-decoration: underline;
1810+ color: #000
1811+}
1812+
1813+.swagger-section .swagger-ui-wrap .model-signature .signature-nav .selected {
1814+ color: #000;
1815+ text-decoration: none
1816+}
1817+
1818+.swagger-section .swagger-ui-wrap .model-signature ul.signature-nav {
1819+ display: block;
1820+ margin: 0;
1821+ padding: 0
1822+}
1823+
1824+.swagger-section .swagger-ui-wrap .model-signature ul.signature-nav li:last-child {
1825+ padding-right: 0;
1826+ border-right: none
1827+}
1828+
1829+.swagger-section .swagger-ui-wrap .model-signature ul.signature-nav li {
1830+ float: left;
1831+ margin: 0 5px 5px 0;
1832+ padding: 2px 5px 2px 0;
1833+ border-right: 1px solid #ddd
1834+}
1835+
1836+.swagger-section .swagger-ui-wrap .model-signature .snippet small {
1837+ font-size: .75em
1838+}
1839+
1840+.swagger-section .swagger-ui-wrap .model-signature .signature-container {
1841+ clear: both
1842+}
1843+
1844+.swagger-section .swagger-ui-wrap .required {
1845+ font-weight: 700
1846+}
1847+
1848+.swagger-section .swagger-ui-wrap h1 {
1849+ color: #000;
1850+ font-size: 1.5em;
1851+ line-height: 1.3em;
1852+ padding: 10px 0;
1853+ font-family: proxima-nova, sans-serif;
1854+ font-weight: 700
1855+}
1856+
1857+.swagger-section .swagger-ui-wrap .heading_with_menu {
1858+ float: none;
1859+ clear: both;
1860+ overflow: hidden;
1861+ display: block
1862+}
1863+
1864+.swagger-section .swagger-ui-wrap .heading_with_menu ul {
1865+ display: block;
1866+ clear: none;
1867+ float: right;
1868+ -moz-box-sizing: border-box;
1869+ -webkit-box-sizing: border-box;
1870+ -ms-box-sizing: border-box;
1871+ box-sizing: border-box;
1872+ margin-top: 10px
1873+}
1874+
1875+.swagger-section .swagger-ui-wrap span.weak {
1876+ color: #666
1877+}
1878+
1879+.swagger-section .swagger-ui-wrap .message-success {
1880+ color: #89BF04
1881+}
1882+
1883+.swagger-section .swagger-ui-wrap caption, .swagger-section .swagger-ui-wrap td, .swagger-section .swagger-ui-wrap th {
1884+ text-align: left;
1885+ font-weight: 400;
1886+ vertical-align: middle
1887+}
1888+
1889+.swagger-section .swagger-ui-wrap form.formtastic fieldset.inputs ol li.text textarea {
1890+ font-family: proxima-nova, sans-serif;
1891+ height: 250px;
1892+ padding: 4px;
1893+ display: block;
1894+ clear: both
1895+}
1896+
1897+.swagger-section .swagger-ui-wrap form.formtastic fieldset.inputs ol li.select select {
1898+ display: block;
1899+ clear: both
1900+}
1901+
1902+.swagger-section .swagger-ui-wrap form.formtastic fieldset.inputs ol li.boolean {
1903+ float: none;
1904+ clear: both;
1905+ overflow: hidden;
1906+ display: block
1907+}
1908+
1909+.swagger-section .swagger-ui-wrap form.formtastic fieldset.inputs ol li.boolean label {
1910+ display: block;
1911+ float: left;
1912+ clear: none;
1913+ margin: 0;
1914+ padding: 0
1915+}
1916+
1917+.swagger-section .swagger-ui-wrap form.formtastic fieldset.inputs ol li.boolean input {
1918+ display: block;
1919+ float: left;
1920+ clear: none;
1921+ margin: 0 5px 0 0
1922+}
1923+
1924+.swagger-section .swagger-ui-wrap form.formtastic fieldset.inputs ol li.required label {
1925+ color: #000
1926+}
1927+
1928+.swagger-section .swagger-ui-wrap form.formtastic fieldset.inputs ol li label {
1929+ display: block;
1930+ clear: both;
1931+ width: auto;
1932+ padding: 0 0 3px;
1933+ color: #666
1934+}
1935+
1936+.swagger-section .swagger-ui-wrap form.formtastic fieldset.inputs ol li label abbr {
1937+ padding-left: 3px;
1938+ color: #888
1939+}
1940+
1941+.swagger-section .swagger-ui-wrap form.formtastic fieldset.inputs ol li p.inline-hints {
1942+ font-style: italic;
1943+ font-size: .9em;
1944+ margin: 0
1945+}
1946+
1947+.swagger-section .swagger-ui-wrap form.formtastic fieldset.buttons {
1948+ margin: 0;
1949+ padding: 0
1950+}
1951+
1952+.swagger-section .swagger-ui-wrap span.blank, .swagger-section .swagger-ui-wrap span.empty {
1953+ color: #888;
1954+ font-style: italic
1955+}
1956+
1957+.swagger-section .swagger-ui-wrap .markdown h3 {
1958+ color: #547f00
1959+}
1960+
1961+.swagger-section .swagger-ui-wrap .markdown h4 {
1962+ color: #666
1963+}
1964+
1965+.swagger-section .swagger-ui-wrap div.gist {
1966+ margin: 20px 0 25px !important
1967+}
1968+
1969+.swagger-section .swagger-ui-wrap ul#resources {
1970+ font-family: proxima-nova, sans-serif;
1971+ font-size: .9em
1972+}
1973+
1974+.swagger-section .swagger-ui-wrap ul#resources li.resource.active div.heading h2 a, .swagger-section .swagger-ui-wrap ul#resources li.resource:hover div.heading h2 a {
1975+ color: #000
1976+}
1977+
1978+.swagger-section .swagger-ui-wrap ul#resources li.resource.active div.heading ul.options li a, .swagger-section .swagger-ui-wrap ul#resources li.resource:hover div.heading ul.options li a {
1979+ color: #555
1980+}
1981+
1982+.swagger-section .swagger-ui-wrap ul#resources li.resource:last-child {
1983+ border-bottom: none
1984+}
1985+
1986+.swagger-section .swagger-ui-wrap ul#resources li.resource div.heading {
1987+ border: 1px solid transparent;
1988+ float: none;
1989+ clear: both;
1990+ overflow: hidden;
1991+ display: block
1992+}
1993+
1994+.swagger-section .swagger-ui-wrap ul#resources li.resource div.heading ul.options {
1995+ overflow: hidden;
1996+ padding: 0;
1997+ display: block;
1998+ clear: none;
1999+ float: right;
2000+ margin: 14px 10px 0 0
2001+}
2002+
2003+.swagger-section .swagger-ui-wrap ul#resources li.resource div.heading ul.options li {
2004+ float: left;
2005+ clear: none;
2006+ margin: 0;
2007+ padding: 2px 10px;
2008+ border-right: 1px solid #ddd;
2009+ color: #666;
2010+ font-size: .9em
2011+}
2012+
2013+.swagger-section .swagger-ui-wrap ul#resources li.resource div.heading ul.options li a {
2014+ color: #aaa;
2015+ text-decoration: none
2016+}
2017+
2018+.swagger-section .swagger-ui-wrap ul#resources li.resource div.heading ul.options li a:hover {
2019+ color: #000
2020+}
2021+
2022+.swagger-section .swagger-ui-wrap ul#resources li.resource div.heading ul.options li a.active, .swagger-section .swagger-ui-wrap ul#resources li.resource div.heading ul.options li a:active, .swagger-section .swagger-ui-wrap ul#resources li.resource div.heading ul.options li a:hover {
2023+ text-decoration: underline
2024+}
2025+
2026+.swagger-section .swagger-ui-wrap ul#resources li.resource div.heading ul.options li.first, .swagger-section .swagger-ui-wrap ul#resources li.resource div.heading ul.options li:first-child {
2027+ padding-left: 0
2028+}
2029+
2030+.swagger-section .swagger-ui-wrap ul#resources li.resource div.heading ul.options li.last, .swagger-section .swagger-ui-wrap ul#resources li.resource div.heading ul.options li:last-child {
2031+ padding-right: 0;
2032+ border-right: none
2033+}
2034+
2035+.swagger-section .swagger-ui-wrap ul#resources li.resource div.heading ul.options.first, .swagger-section .swagger-ui-wrap ul#resources li.resource div.heading ul.options:first-child {
2036+ padding-left: 0
2037+}
2038+
2039+.swagger-section .swagger-ui-wrap ul#resources li.resource ul.endpoints li.endpoint ul.operations li.operation div.heading h3 {
2040+ display: block;
2041+ clear: none;
2042+ float: left;
2043+ width: auto;
2044+ margin: 0;
2045+ padding: 0;
2046+ line-height: 1.1em;
2047+ color: #000
2048+}
2049+
2050+.swagger-section .swagger-ui-wrap ul#resources li.resource ul.endpoints li.endpoint ul.operations li.operation div.heading h3 span.path {
2051+ padding-left: 10px
2052+}
2053+
2054+.swagger-section .swagger-ui-wrap ul#resources li.resource ul.endpoints li.endpoint ul.operations li.operation div.heading h3 span.path a:hover {
2055+ text-decoration: underline
2056+}
2057+
2058+.swagger-section .swagger-ui-wrap ul#resources li.resource ul.endpoints li.endpoint ul.operations li.operation div.heading h3 span {
2059+ margin: 0;
2060+ padding: 0
2061+}
2062+
2063+.swagger-section .swagger-ui-wrap ul#resources li.resource ul.endpoints li.endpoint ul.operations li.operation div.heading ul.options {
2064+ overflow: hidden;
2065+ padding: 0;
2066+ display: block;
2067+ clear: none;
2068+ float: right;
2069+ margin: 6px 10px 0 0
2070+}
2071+
2072+.swagger-section .swagger-ui-wrap ul#resources li.resource ul.endpoints li.endpoint ul.operations li.operation div.heading ul.options li {
2073+ float: left;
2074+ clear: none;
2075+ margin: 0;
2076+ padding: 2px 10px;
2077+ font-size: .9em
2078+}
2079+
2080+.swagger-section .swagger-ui-wrap ul#resources li.resource ul.endpoints li.endpoint ul.operations li.operation div.heading ul.options li a {
2081+ text-decoration: none
2082+}
2083+
2084+.swagger-section .swagger-ui-wrap ul#resources li.resource ul.endpoints li.endpoint ul.operations li.operation div.heading ul.options li.access {
2085+ color: #000
2086+}
2087+
2088+.swagger-section .swagger-ui-wrap ul#resources li.resource ul.endpoints li.endpoint ul.operations li.operation div.content {
2089+ border-top: none
2090+}
2091+
2092+.swagger-section .swagger-ui-wrap ul#resources li.resource ul.endpoints li.endpoint ul.operations li.operation.put div.heading h3 span.http_method a {
2093+ background-color: #c5862b
2094+}
2095+
2096+.swagger-section .swagger-ui-wrap ul#resources li.resource ul.endpoints li.endpoint ul.operations li.operation.put div.heading ul.options li {
2097+ border-right: 1px solid #ddd;
2098+ border-right-color: #f0e0ca;
2099+ color: #c5862b
2100+}
2101+
2102+.swagger-section .swagger-ui-wrap ul#resources li.resource ul.endpoints li.endpoint ul.operations li.operation.put div.heading ul.options li a {
2103+ color: #c5862b
2104+}
2105+
2106+.swagger-section .swagger-ui-wrap ul#resources li.resource ul.endpoints li.endpoint ul.operations li.operation.head div.heading h3 span.http_method a {
2107+ text-transform: uppercase;
2108+ background-color: #ffd20f
2109+}
2110+
2111+.swagger-section .swagger-ui-wrap ul#resources li.resource ul.endpoints li.endpoint ul.operations li.operation.head div.heading ul.options li {
2112+ border-right: 1px solid #ddd;
2113+ border-right-color: #ffd20f;
2114+ color: #ffd20f
2115+}
2116+
2117+.swagger-section .swagger-ui-wrap ul#resources li.resource ul.endpoints li.endpoint ul.operations li.operation.head div.heading ul.options li a {
2118+ color: #ffd20f
2119+}
2120+
2121+.swagger-section .swagger-ui-wrap ul#resources li.resource ul.endpoints li.endpoint ul.operations li.operation.options div.heading h3 span.http_method a {
2122+ background-color: #0f6ab4
2123+}
2124+
2125+.swagger-section .swagger-ui-wrap ul#resources li.resource ul.endpoints li.endpoint ul.operations li.operation.options div.heading ul.options li {
2126+ border-right: 1px solid #ddd;
2127+ border-right-color: #c3d9ec;
2128+ color: #0f6ab4
2129+}
2130+
2131+.swagger-section .swagger-ui-wrap ul#resources li.resource ul.endpoints li.endpoint ul.operations li.operation.options div.heading ul.options li a {
2132+ color: #0f6ab4
2133+}
2134+
2135+.swagger-section .swagger-ui-wrap ul#resources li.resource ul.endpoints li.endpoint ul.operations li.operation.delete div.content, .swagger-section .swagger-ui-wrap ul#resources li.resource ul.endpoints li.endpoint ul.operations li.operation.get div.content, .swagger-section .swagger-ui-wrap ul#resources li.resource ul.endpoints li.endpoint ul.operations li.operation.head div.content, .swagger-section .swagger-ui-wrap ul#resources li.resource ul.endpoints li.endpoint ul.operations li.operation.patch div.content, .swagger-section .swagger-ui-wrap ul#resources li.resource ul.endpoints li.endpoint ul.operations li.operation.post div.content, .swagger-section .swagger-ui-wrap ul#resources li.resource ul.endpoints li.endpoint ul.operations li.operation.put div.content {
2136+ border-top: none
2137+}
2138+
2139+.swagger-section .swagger-ui-wrap ul#resources li.resource ul.endpoints li.endpoint ul.operations li.operation.delete div.heading ul.options li.last, .swagger-section .swagger-ui-wrap ul#resources li.resource ul.endpoints li.endpoint ul.operations li.operation.delete div.heading ul.options li:last-child, .swagger-section .swagger-ui-wrap ul#resources li.resource ul.endpoints li.endpoint ul.operations li.operation.get div.heading ul.options li.last, .swagger-section .swagger-ui-wrap ul#resources li.resource ul.endpoints li.endpoint ul.operations li.operation.get div.heading ul.options li:last-child, .swagger-section .swagger-ui-wrap ul#resources li.resource ul.endpoints li.endpoint ul.operations li.operation.head div.heading ul.options li.last, .swagger-section .swagger-ui-wrap ul#resources li.resource ul.endpoints li.endpoint ul.operations li.operation.head div.heading ul.options li:last-child, .swagger-section .swagger-ui-wrap ul#resources li.resource ul.endpoints li.endpoint ul.operations li.operation.patch div.heading ul.options li.last, .swagger-section .swagger-ui-wrap ul#resources li.resource ul.endpoints li.endpoint ul.operations li.operation.patch div.heading ul.options li:last-child, .swagger-section .swagger-ui-wrap ul#resources li.resource ul.endpoints li.endpoint ul.operations li.operation.post div.heading ul.options li.last, .swagger-section .swagger-ui-wrap ul#resources li.resource ul.endpoints li.endpoint ul.operations li.operation.post div.heading ul.options li:last-child, .swagger-section .swagger-ui-wrap ul#resources li.resource ul.endpoints li.endpoint ul.operations li.operation.put div.heading ul.options li.last, .swagger-section .swagger-ui-wrap ul#resources li.resource ul.endpoints li.endpoint ul.operations li.operation.put div.heading ul.options li:last-child {
2140+ padding-right: 0;
2141+ border-right: none
2142+}
2143+
2144+.swagger-section .swagger-ui-wrap ul#resources li.resource ul.endpoints li.endpoint ul.operations ul.options li a.active, .swagger-section .swagger-ui-wrap ul#resources li.resource ul.endpoints li.endpoint ul.operations ul.options li a:active, .swagger-section .swagger-ui-wrap ul#resources li.resource ul.endpoints li.endpoint ul.operations ul.options li a:hover {
2145+ text-decoration: underline
2146+}
2147+
2148+.swagger-section .swagger-ui-wrap ul#resources li.resource ul.endpoints li.endpoint ul.operations ul.options li.first, .swagger-section .swagger-ui-wrap ul#resources li.resource ul.endpoints li.endpoint ul.operations ul.options li:first-child, .swagger-section .swagger-ui-wrap ul#resources li.resource ul.endpoints li.endpoint ul.operations.first, .swagger-section .swagger-ui-wrap ul#resources li.resource ul.endpoints li.endpoint ul.operations:first-child {
2149+ padding-left: 0
2150+}
2151+
2152+.swagger-section .swagger-ui-wrap p#colophon {
2153+ margin: 0 15px 40px;
2154+ padding: 10px 0;
2155+ font-size: .8em;
2156+ border-top: 1px solid #ddd;
2157+ font-family: proxima-nova, sans-serif;
2158+ color: #999;
2159+ font-style: italic
2160+}
2161+
2162+.swagger-section .swagger-ui-wrap p#colophon a {
2163+ text-decoration: none;
2164+ color: #547f00
2165+}
2166+
2167+.swagger-section .swagger-ui-wrap h3 {
2168+ color: #000;
2169+ font-size: 1.1em;
2170+ padding: 10px 0
2171+}
2172+
2173+.swagger-section .swagger-ui-wrap .markdown ol, .swagger-section .swagger-ui-wrap .markdown ul {
2174+ font-family: proxima-nova, sans-serif;
2175+ margin: 5px 0 10px;
2176+ padding: 0 0 0 18px;
2177+ list-style-type: disc
2178+}
2179+
2180+.swagger-section .swagger-ui-wrap form.form_box {
2181+ background-color: #ebf3f9;
2182+ border: 1px solid #c3d9ec;
2183+ padding: 10px
2184+}
2185+
2186+.swagger-section .swagger-ui-wrap form.form_box label {
2187+ color: #0f6ab4 !important
2188+}
2189+
2190+.swagger-section .swagger-ui-wrap form.form_box input[type=submit] {
2191+ display: block;
2192+ padding: 10px
2193+}
2194+
2195+.swagger-section .swagger-ui-wrap form.form_box p.weak {
2196+ font-size: .8em
2197+}
2198+
2199+.swagger-section .swagger-ui-wrap form.form_box p {
2200+ font-size: .9em;
2201+ padding: 0 0 15px;
2202+ color: #7e7b6d
2203+}
2204+
2205+.swagger-section .swagger-ui-wrap form.form_box p a {
2206+ color: #646257
2207+}
2208+
2209+.swagger-section .swagger-ui-wrap form.form_box p strong {
2210+ color: #000
2211+}
2212+
2213+.swagger-section .title {
2214+ font-style: bold
2215+}
2216+
2217+.swagger-section .secondary_form {
2218+ display: none
2219+}
2220+
2221+.swagger-section .main_image {
2222+ display: block;
2223+ margin-left: auto;
2224+ margin-right: auto
2225+}
2226+
2227+.swagger-section .oauth_body {
2228+ margin-left: 100px;
2229+ margin-right: 100px
2230+}
2231+
2232+.swagger-section .oauth_submit {
2233+ text-align: center
2234+}
2235+
2236+.swagger-section .api-popup-dialog {
2237+ z-index: 10000;
2238+ position: absolute;
2239+ width: 500px;
2240+ background: #FFF;
2241+ padding: 20px;
2242+ border: 1px solid #ccc;
2243+ border-radius: 5px;
2244+ display: none;
2245+ font-size: 13px;
2246+ color: #777
2247+}
2248+
2249+.swagger-section .api-popup-dialog .api-popup-title {
2250+ font-size: 24px;
2251+ padding: 10px 0
2252+}
2253+
2254+.swagger-section .api-popup-dialog p.error-msg {
2255+ padding-left: 5px;
2256+ padding-bottom: 5px
2257+}
2258+
2259+.swagger-section .api-popup-dialog button.api-popup-authbtn, .swagger-section .api-popup-dialog button.api-popup-cancel {
2260+ height: 30px
2261+}
2262+
2263+.swagger-section .api-popup-scopes {
2264+ padding: 10px 20px
2265+}
2266+
2267+.swagger-section .api-popup-scopes li {
2268+ padding: 5px 0;
2269+ line-height: 20px
2270+}
2271+
2272+.swagger-section .api-popup-scopes .api-scope-desc {
2273+ padding-left: 20px;
2274+ font-style: italic
2275+}
2276+
2277+.swagger-section .api-popup-scopes li input {
2278+ position: relative;
2279+ top: 2px
2280+}
2281+
2282+.swagger-section .api-popup-actions {
2283+ padding-top: 10px
2284+}
2285+
2286+.swagger-section .access, .swagger-section .auth {
2287+ float: right
2288+}
2289+
2290+.swagger-section #api_information_panel {
2291+ position: absolute;
2292+ background: #FFF;
2293+ border: 1px solid #ccc;
2294+ border-radius: 5px;
2295+ display: none;
2296+ font-size: 13px;
2297+ max-width: 300px;
2298+ line-height: 30px;
2299+ color: #000;
2300+ padding: 5px
2301+}
2302+
2303+.swagger-section #api_information_panel p .api-msg-enabled {
2304+ color: green
2305+}
2306+
2307+.swagger-section #api_information_panel p .api-msg-disabled {
2308+ color: red
2309+}
2310+
2311+.swagger-section .api-ic {
2312+ /* height: 18px;
2313+ vertical-align: middle;
2314+ display: inline-block;
2315+ background: url(../images/explorer_icons.png) no-repeat*/
2316+}
2317+
2318+.swagger-section .ic-info {
2319+ background-position: 0 0;
2320+ width: 18px;
2321+ margin-top: -7px;
2322+ margin-left: 4px
2323+}
2324+
2325+.swagger-section .ic-warning {
2326+ background-position: -60px 0;
2327+ width: 18px;
2328+ margin-top: -7px;
2329+ margin-left: 4px
2330+}
2331+
2332+.swagger-section .ic-error {
2333+ background-position: -30px 0;
2334+ width: 18px;
2335+ margin-top: -7px;
2336+ margin-left: 4px
2337+}
2338+
2339+.swagger-section .ic-off {
2340+ /* background-position: -90px 0;
2341+ width: 58px;
2342+ margin-top: -4px;
2343+ */
2344+ cursor: pointer
2345+}
2346+
2347+.swagger-section .ic-on {
2348+ /* background-position: -160px 0;
2349+ width: 58px;
2350+ margin-top: -4px;
2351+ */
2352+ cursor: pointer
2353+}
2354+
2355+.swagger-section #header {
2356+ background-color: #89bf04;
2357+ padding: 14px
2358+}
2359+
2360+.swagger-section #header a#logo {
2361+ font-size: 1.5em;
2362+ font-weight: 700;
2363+ text-decoration: none;
2364+ background: url(../images/logo_small.png) left center no-repeat;
2365+ padding: 20px 0 20px 40px;
2366+ color: #fff
2367+}
2368+
2369+.swagger-section #header form#api_selector {
2370+ display: block;
2371+ clear: none;
2372+ float: right
2373+}
2374+
2375+.swagger-section #header form#api_selector .input {
2376+ display: block;
2377+ clear: none;
2378+ float: left;
2379+ margin: 0 10px 0 0
2380+}
2381+
2382+.swagger-section #header form#api_selector .input input#input_apiKey {
2383+ width: 200px
2384+}
2385+
2386+.swagger-section #header form#api_selector .input input#input_baseUrl {
2387+ width: 400px
2388+}
2389+
2390+.swagger-section #header form#api_selector .input a#explore {
2391+ display: block;
2392+ text-decoration: none;
2393+ font-weight: 700;
2394+ padding: 6px 8px;
2395+ font-size: .9em;
2396+ color: #fff;
2397+ background-color: #547f00;
2398+ -moz-border-radius: 4px;
2399+ -webkit-border-radius: 4px;
2400+ -o-border-radius: 4px;
2401+ -ms-border-radius: 4px;
2402+ -khtml-border-radius: 4px;
2403+ border-radius: 4px
2404+}
2405+
2406+.swagger-section #header form#api_selector .input a#explore:hover {
2407+ background-color: #547f00
2408+}
2409+
2410+.swagger-section #header form#api_selector .input input {
2411+ font-size: .9em;
2412+ padding: 3px;
2413+ margin: 0
2414+}
2415+
2416+.swagger-section #content_message {
2417+ margin: 10px 15px;
2418+ font-style: italic;
2419+ color: #999
2420+}
2421+
2422+.swagger-section #message-bar {
2423+ min-height: 30px;
2424+ text-align: center;
2425+ padding-top: 10px
2426+}
servant-swagger-ui-jensoleg/jensoleg-dist/css/index.cssnew file+17432

This diff is too big to show here.

swagger-dist-2.1.5/css/print.css → servant-swagger-ui-jensoleg/jensoleg-dist/css/print.cssrenamed+20−215

This diff is too big to show here.

swagger-dist-2.1.5/css/reset.css → servant-swagger-ui-jensoleg/jensoleg-dist/css/reset.cssrenamed

The content is the same.

servant-swagger-ui-jensoleg/jensoleg-dist/css/screen.cssnew file+9

This diff is too big to show here.

servant-swagger-ui-jensoleg/jensoleg-dist/css/standalone.cssnew file+294

This diff is too big to show here.

servant-swagger-ui-jensoleg/jensoleg-dist/css/typography.cssnew file+26

This diff is too big to show here.

servant-swagger-ui-jensoleg/jensoleg-dist/fonts/droid-sans-v6-latin-700.eotnew file

Binary file not shown.

servant-swagger-ui-jensoleg/jensoleg-dist/fonts/droid-sans-v6-latin-700.svgnew file+411

This diff is too big to show here.

swagger-dist-2.1.5/fonts/DroidSans-Bold.ttf → servant-swagger-ui-jensoleg/jensoleg-dist/fonts/droid-sans-v6-latin-700.ttfrenamed

Binary file not shown.

servant-swagger-ui-jensoleg/jensoleg-dist/fonts/droid-sans-v6-latin-700.woffnew file

Binary file not shown.

servant-swagger-ui-jensoleg/jensoleg-dist/fonts/droid-sans-v6-latin-700.woff2new file

Binary file not shown.

servant-swagger-ui-jensoleg/jensoleg-dist/fonts/droid-sans-v6-latin-regular.eotnew file

Binary file not shown.

servant-swagger-ui-jensoleg/jensoleg-dist/fonts/droid-sans-v6-latin-regular.svgnew file+403

This diff is too big to show here.

swagger-dist-2.1.5/fonts/DroidSans.ttf → servant-swagger-ui-jensoleg/jensoleg-dist/fonts/droid-sans-v6-latin-regular.ttfrenamed

Binary file not shown.

servant-swagger-ui-jensoleg/jensoleg-dist/fonts/droid-sans-v6-latin-regular.woffnew file

Binary file not shown.

servant-swagger-ui-jensoleg/jensoleg-dist/fonts/droid-sans-v6-latin-regular.woff2new file

Binary file not shown.

servant-swagger-ui-jensoleg/jensoleg-dist/images/Swagger_explorer.pngnew file

Binary file not shown.

servant-swagger-ui-jensoleg/jensoleg-dist/images/Swagger_explorer_min.pngnew file

Binary file not shown.

swagger-dist-2.1.5/images/explorer_icons.png → servant-swagger-ui-jensoleg/jensoleg-dist/images/explorer_icons.pngrenamed

Binary file not shown.

swagger-dist-2.1.5/images/favicon-16x16.png → servant-swagger-ui-jensoleg/jensoleg-dist/images/favicon-16x16.pngrenamed

Binary file not shown.

swagger-dist-2.1.5/images/favicon-32x32.png → servant-swagger-ui-jensoleg/jensoleg-dist/images/favicon-32x32.pngrenamed

Binary file not shown.

swagger-dist-2.1.5/images/favicon.ico → servant-swagger-ui-jensoleg/jensoleg-dist/images/favicon.icorenamed

Binary file not shown.

servant-swagger-ui-jensoleg/jensoleg-dist/images/json_editor_integration.pngnew file

Binary file not shown.

swagger-dist-2.1.5/images/logo_small.png → servant-swagger-ui-jensoleg/jensoleg-dist/images/logo_small.pngrenamed

Binary file not shown.

swagger-dist-2.1.5/images/pet_store_api.png → servant-swagger-ui-jensoleg/jensoleg-dist/images/pet_store_api.pngrenamed

Binary file not shown.

servant-swagger-ui-jensoleg/jensoleg-dist/images/senodio.pngnew file

Binary file not shown.

swagger-dist-2.1.5/images/throbber.gif → servant-swagger-ui-jensoleg/jensoleg-dist/images/throbber.gifrenamed

Binary file not shown.

swagger-dist-2.1.5/images/wordnik_api.png → servant-swagger-ui-jensoleg/jensoleg-dist/images/wordnik_api.pngrenamed

Binary file not shown.

servant-swagger-ui-jensoleg/jensoleg-dist/index.htmlnew file+237

This diff is too big to show here.

swagger-dist-2.1.5/lib/backbone-min.js → servant-swagger-ui-jensoleg/jensoleg-dist/lib/backbone-min.jsrenamed

The content is the same.

servant-swagger-ui-jensoleg/jensoleg-dist/lib/bootstrap.min.jsnew file+6

This diff is too big to show here.

swagger-dist-2.1.5/lib/handlebars-2.0.0.js → servant-swagger-ui-jensoleg/jensoleg-dist/lib/handlebars-2.0.0.jsrenamed

The content is the same.

servant-swagger-ui-jensoleg/jensoleg-dist/lib/highlight.7.3.pack.jsnew file+1

This diff is too big to show here.

swagger-dist-2.1.5/lib/jquery-1.8.0.min.js → servant-swagger-ui-jensoleg/jensoleg-dist/lib/jquery-1.8.0.min.jsrenamed

The content is the same.

swagger-dist-2.1.5/lib/jquery.ba-bbq.min.js → servant-swagger-ui-jensoleg/jensoleg-dist/lib/jquery.ba-bbq.min.jsrenamed

The content is the same.

swagger-dist-2.1.5/lib/jquery.slideto.min.js → servant-swagger-ui-jensoleg/jensoleg-dist/lib/jquery.slideto.min.jsrenamed

The content is the same.

swagger-dist-2.1.5/lib/jquery.wiggle.min.js → servant-swagger-ui-jensoleg/jensoleg-dist/lib/jquery.wiggle.min.jsrenamed

The content is the same.

servant-swagger-ui-jensoleg/jensoleg-dist/lib/jsoneditor.jsnew file+7287

This diff is too big to show here.

swagger-dist-2.1.5/lib/marked.js → servant-swagger-ui-jensoleg/jensoleg-dist/lib/marked.jsrenamed

The content is the same.

servant-swagger-ui-jensoleg/jensoleg-dist/lib/swagger-oauth.jsnew file+286

This diff is too big to show here.

servant-swagger-ui-jensoleg/jensoleg-dist/lib/underscore-min.jsnew file+6

This diff is too big to show here.

servant-swagger-ui-jensoleg/jensoleg-dist/moncierge.jsonnew file+7191

This diff is too big to show here.

swagger-dist-2.1.5/o2c.html → servant-swagger-ui-jensoleg/jensoleg-dist/o2c.htmlrenamed

The content is the same.

servant-swagger-ui-jensoleg/jensoleg-dist/petstore.jsonnew file+1029

This diff is too big to show here.

servant-swagger-ui-jensoleg/jensoleg-dist/swagger-ui.jsnew file+22643

This diff is too big to show here.

servant-swagger-ui-jensoleg/jensoleg-dist/swagger-ui.min.jsnew file+9

This diff is too big to show here.

servant-swagger-ui-jensoleg/jensoleg-dist/swagger.jsonnew file+1055

This diff is too big to show here.

servant-swagger-ui-jensoleg/jensoleg.index.html.tmplnew file+255

This diff is too big to show here.

servant-swagger-ui-jensoleg/servant-swagger-ui-jensoleg.cabalnew file+98

This diff is too big to show here.

servant-swagger-ui-jensoleg/src/Servant/Swagger/UI/JensOleG.hsnew file+85

This diff is too big to show here.

servant-swagger-ui-redoc/CHANGELOG.mdnew file+10

This diff is too big to show here.

servant-swagger-ui-redoc/LICENSEnew file+45

This diff is too big to show here.

servant-swagger-ui-redoc/redoc-dist-1.22.3/redoc.min.jsnew file+8

This diff is too big to show here.

servant-swagger-ui-redoc/redoc.index.html.tmplnew file+23

This diff is too big to show here.

servant-swagger-ui-redoc/servant-swagger-ui-redoc.cabalnew file+47

This diff is too big to show here.

servant-swagger-ui-redoc/src/Servant/Swagger/UI/ReDoc.hsnew file+84

This diff is too big to show here.

servant-swagger-ui.cabaldeleted−154

This diff is too big to show here.

servant-swagger-ui/CHANGELOG.mdnew file+55

This diff is too big to show here.

servant-swagger-ui/LICENSEnew file+45

This diff is too big to show here.

servant-swagger-ui/index.html.tmplnew file+80

This diff is too big to show here.

servant-swagger-ui/servant-swagger-ui.cabalnew file+57

This diff is too big to show here.

servant-swagger-ui/src/Servant/Swagger/UI.hsnew file+90

This diff is too big to show here.

servant-swagger-ui/swagger-ui-dist-3.36.1/favicon-16x16.pngnew file

Binary file not shown.

servant-swagger-ui/swagger-ui-dist-3.36.1/favicon-32x32.pngnew file

Binary file not shown.

servant-swagger-ui/swagger-ui-dist-3.36.1/oauth2-redirect.htmlnew file+74

This diff is too big to show here.

servant-swagger-ui/swagger-ui-dist-3.36.1/swagger-ui-bundle.jsnew file+3

This diff is too big to show here.

servant-swagger-ui/swagger-ui-dist-3.36.1/swagger-ui-standalone-preset.jsnew file+3

This diff is too big to show here.

servant-swagger-ui/swagger-ui-dist-3.36.1/swagger-ui.cssnew file+4

This diff is too big to show here.

servant-swagger-ui/swagger-ui-dist-3.36.1/swagger-ui.jsnew file+3

This diff is too big to show here.

src/Servant/Swagger/UI/Internal.hsdeleted−57

This diff is too big to show here.

stack-lts-2.yamldeleted−14

This diff is too big to show here.

stack-lts-5.yamldeleted−7

This diff is too big to show here.

stack.yamldeleted−9

This diff is too big to show here.

swagger-dist-2.1.5/css/screen.cssdeleted−1489

This diff is too big to show here.

swagger-dist-2.1.5/css/style.cssdeleted−250

This diff is too big to show here.

swagger-dist-2.1.5/css/typography.cssdeleted−14

This diff is too big to show here.

swagger-dist-2.1.5/images/collapse.gifdeleted

Binary file not shown.

swagger-dist-2.1.5/images/expand.gifdeleted

Binary file not shown.

swagger-dist-2.1.5/lang/en.jsdeleted−56

This diff is too big to show here.

swagger-dist-2.1.5/lang/es.jsdeleted−53

This diff is too big to show here.

swagger-dist-2.1.5/lang/fr.jsdeleted−54

This diff is too big to show here.

swagger-dist-2.1.5/lang/geo.jsdeleted−56

This diff is too big to show here.

swagger-dist-2.1.5/lang/it.jsdeleted−52

This diff is too big to show here.

swagger-dist-2.1.5/lang/ja.jsdeleted−53

This diff is too big to show here.

swagger-dist-2.1.5/lang/ko-kr.jsdeleted−53

This diff is too big to show here.

swagger-dist-2.1.5/lang/pl.jsdeleted−53

This diff is too big to show here.

swagger-dist-2.1.5/lang/pt.jsdeleted−53

This diff is too big to show here.

swagger-dist-2.1.5/lang/ru.jsdeleted−56

This diff is too big to show here.

swagger-dist-2.1.5/lang/tr.jsdeleted−53

This diff is too big to show here.

swagger-dist-2.1.5/lang/translator.jsdeleted−39

This diff is too big to show here.

swagger-dist-2.1.5/lang/zh-cn.jsdeleted−53

This diff is too big to show here.

swagger-dist-2.1.5/lib/es5-shim.jsdeleted−2065

This diff is too big to show here.

swagger-dist-2.1.5/lib/highlight.9.1.0.pack.jsdeleted−2

This diff is too big to show here.

swagger-dist-2.1.5/lib/highlight.9.1.0.pack_extended.jsdeleted−34

This diff is too big to show here.

swagger-dist-2.1.5/lib/js-yaml.min.jsdeleted−3

This diff is too big to show here.

swagger-dist-2.1.5/lib/jsoneditor.min.jsdeleted−11

This diff is too big to show here.

swagger-dist-2.1.5/lib/lodash.min.jsdeleted−102

This diff is too big to show here.

swagger-dist-2.1.5/lib/object-assign-pollyfill.jsdeleted−23

This diff is too big to show here.

swagger-dist-2.1.5/lib/swagger-oauth.jsdeleted−347

This diff is too big to show here.

swagger-dist-2.1.5/swagger-ui.js−24691

This diff is too big to show here.

swagger-dist-2.1.5/swagger-ui.min.js−10

This diff is too big to show here.

swagger2-2.0-cabal.config−1

This diff is too big to show here.

swagger2-2.1-cabal.config−1

This diff is too big to show here.