├── test ├── utils.js ├── fixtures │ ├── document.yml │ ├── document.json │ ├── cheese.png │ ├── ref.json │ ├── tag.yml │ ├── NullExample.yml │ ├── User.yml │ ├── issue-98.yml │ ├── basic-path.yaml │ ├── Example.yml │ └── issue-69.json ├── minimal.js ├── test-preprocessor.js └── test-reference-contexts.js ├── .sonarcloud.properties ├── .DS_Store ├── eevee.png ├── screenshot.png ├── app ├── vendor │ └── foundation │ │ ├── scss │ │ ├── components │ │ │ ├── _flex-video.scss │ │ │ ├── _menu-icon.scss │ │ │ ├── _float.scss │ │ │ ├── _sticky.scss │ │ │ ├── _progress-bar.scss │ │ │ ├── _badge.scss │ │ │ ├── _label.scss │ │ │ ├── _thumbnail.scss │ │ │ ├── _dropdown.scss │ │ │ ├── _title-bar.scss │ │ │ └── _responsive-embed.scss │ │ ├── util │ │ │ ├── _util.scss │ │ │ ├── _direction.scss │ │ │ ├── _selector.scss │ │ │ ├── _typography.scss │ │ │ └── _math.scss │ │ ├── prototype │ │ │ ├── _typescale.scss │ │ │ ├── _box.scss │ │ │ ├── _arrow.scss │ │ │ ├── _border-box.scss │ │ │ ├── _border-none.scss │ │ │ ├── _rotate.scss │ │ │ ├── _shadow.scss │ │ │ ├── _display.scss │ │ │ ├── _text-decoration.scss │ │ │ ├── _text-transformation.scss │ │ │ ├── _rounded.scss │ │ │ ├── _bordered.scss │ │ │ ├── _sizing.scss │ │ │ ├── _prototype.scss │ │ │ ├── _overflow.scss │ │ │ ├── _text-utilities.scss │ │ │ └── _font-styling.scss │ │ ├── typography │ │ │ ├── _alignment.scss │ │ │ ├── _typography.scss │ │ │ ├── _helpers.scss │ │ │ └── _print.scss │ │ ├── grid │ │ │ ├── _size.scss │ │ │ ├── _grid.scss │ │ │ ├── _layout.scss │ │ │ └── _position.scss │ │ ├── forms │ │ │ ├── _help-text.scss │ │ │ ├── _forms.scss │ │ │ ├── _checkbox.scss │ │ │ ├── _fieldset.scss │ │ │ ├── _label.scss │ │ │ ├── _progress.scss │ │ │ ├── _select.scss │ │ │ └── _error.scss │ │ └── xy-grid │ │ │ ├── _position.scss │ │ │ ├── _layout.scss │ │ │ ├── _collapse.scss │ │ │ ├── _xy-grid.scss │ │ │ ├── _gutters.scss │ │ │ ├── _frame.scss │ │ │ └── _grid.scss │ │ ├── _vendor │ │ ├── normalize-scss │ │ │ └── sass │ │ │ │ ├── _normalize.scss │ │ │ │ └── normalize │ │ │ │ ├── _import-now.scss │ │ │ │ ├── _variables.scss │ │ │ │ └── _vertical-rhythm.scss │ │ └── sassy-lists │ │ │ └── stylesheets │ │ │ ├── helpers │ │ │ ├── _true.scss │ │ │ └── _missing-dependencies.scss │ │ │ └── functions │ │ │ ├── _to-list.scss │ │ │ ├── _remove.scss │ │ │ ├── _purge.scss │ │ │ └── _replace.scss │ │ ├── js │ │ ├── entries │ │ │ ├── plugins │ │ │ │ ├── foundation.util.box.js │ │ │ │ ├── foundation.abide.js │ │ │ │ ├── foundation.tabs.js │ │ │ │ ├── foundation.orbit.js │ │ │ │ ├── foundation.reveal.js │ │ │ │ ├── foundation.util.nest.js │ │ │ │ ├── foundation.slider.js │ │ │ │ ├── foundation.sticky.js │ │ │ │ ├── foundation.tooltip.js │ │ │ │ ├── foundation.util.timer.js │ │ │ │ ├── foundation.magellan.js │ │ │ │ ├── foundation.toggler.js │ │ │ │ ├── foundation.util.touch.js │ │ │ │ ├── foundation.accordion.js │ │ │ │ ├── foundation.drilldown.js │ │ │ │ ├── foundation.dropdown.js │ │ │ │ ├── foundation.equalizer.js │ │ │ │ ├── foundation.offcanvas.js │ │ │ │ ├── foundation.util.keyboard.js │ │ │ │ ├── foundation.interchange.js │ │ │ │ ├── foundation.util.mediaQuery.js │ │ │ │ ├── foundation.dropdownMenu.js │ │ │ │ ├── foundation.smoothScroll.js │ │ │ │ ├── foundation.util.motion.js │ │ │ │ ├── foundation.accordionMenu.js │ │ │ │ ├── foundation.util.imageLoader.js │ │ │ │ ├── foundation.util.triggers.js │ │ │ │ ├── foundation.responsiveMenu.js │ │ │ │ ├── foundation.responsiveToggle.js │ │ │ │ ├── foundation.responsiveAccordionTabs.js │ │ │ │ └── foundation.core.js │ │ │ └── foundation-plugins.js │ │ ├── foundation.util.imageLoader.js │ │ ├── foundation.util.timer.js │ │ ├── foundation.util.core.js │ │ ├── foundation.plugin.js │ │ └── foundation.util.nest.js │ │ └── LICENSE ├── views │ ├── partials │ │ ├── swagger │ │ │ ├── print-example.hbs │ │ │ ├── list-of-labels.hbs │ │ │ ├── deprecated │ │ │ │ ├── responseDefinitions.hbs │ │ │ │ ├── parameterDefinitions.hbs │ │ │ │ ├── tags.hbs │ │ │ │ ├── summary.hbs │ │ │ │ ├── parameterRow.hbs │ │ │ │ ├── parameters.hbs │ │ │ │ ├── responses.hbs │ │ │ │ └── response.hbs │ │ │ ├── description.hbs │ │ │ ├── tags.hbs │ │ │ ├── definitions.hbs │ │ │ ├── paths.hbs │ │ │ ├── path.hbs │ │ │ ├── x-spectacle-topics.hbs │ │ │ ├── responseHeaderRow.hbs │ │ │ ├── security.hbs │ │ │ ├── definition.hbs │ │ │ ├── request-body.hbs │ │ │ ├── introduction.hbs │ │ │ ├── parameters.hbs │ │ │ └── securityDefinitions.hbs │ │ ├── json-schema │ │ │ ├── definitions.hbs │ │ │ ├── type-object.hbs │ │ │ ├── array-items.hbs │ │ │ ├── additionalProperties.hbs │ │ │ ├── anyOf.hbs │ │ │ ├── reference.hbs │ │ │ ├── allOf.hbs │ │ │ ├── body.hbs │ │ │ ├── properties.hbs │ │ │ └── datatype.hbs │ │ └── layout │ │ │ ├── head.hbs │ │ │ ├── topbar.hbs │ │ │ ├── page.hbs │ │ │ ├── content.hbs │ │ │ └── nav.hbs │ ├── embedded.hbs │ └── main.hbs ├── helpers │ ├── ifin.js │ ├── ifcontains.js │ ├── schemaSubschemaName.js │ ├── toUpperCase.js │ ├── htmlId.js │ ├── equal.js │ ├── printExample.js │ ├── schemaReferenceContext.js │ ├── schemaResolveReference.js │ ├── schemaReferenceHref.js │ ├── ifneq.js │ ├── ifeq.js │ ├── swaggerCollectionFormat.js │ ├── md.js │ ├── getTryItNow.js │ ├── swaggerEndpoint.js │ ├── schemaDatatype.js │ └── eachSorted.js ├── stylesheets │ ├── spectacle.scss │ ├── _index.scss │ ├── _utils.scss │ ├── _monokai.scss │ ├── foundation-includes.scss │ └── _drawer.scss ├── dociql │ ├── compose-definitions.js │ ├── convert-type.js │ ├── index.js │ ├── graphql-hl.js │ └── fetch-schema.js ├── lib │ ├── errors.js │ ├── urls.js │ ├── reference-contexts.js │ └── json-reference.js └── javascripts │ └── main.js ├── docs └── images │ └── eevee.png ├── .gitignore ├── .npmignore ├── TODO.md ├── Dockerfile ├── Makefile ├── .github └── workflows │ └── renovate_linting.yml ├── renovate.json ├── .vscode └── launch.json ├── .travis.yml ├── package.json ├── bin └── dociql.js └── config.yml /test/utils.js: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /.sonarcloud.properties: -------------------------------------------------------------------------------- 1 | 2 | -------------------------------------------------------------------------------- /test/fixtures/document.yml: -------------------------------------------------------------------------------- 1 | foo: 1 2 | -------------------------------------------------------------------------------- /test/fixtures/document.json: -------------------------------------------------------------------------------- 1 | { 2 | "foo": 1 3 | } 4 | -------------------------------------------------------------------------------- /.DS_Store: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wayfair/dociql/HEAD/.DS_Store -------------------------------------------------------------------------------- /eevee.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wayfair/dociql/HEAD/eevee.png -------------------------------------------------------------------------------- /screenshot.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wayfair/dociql/HEAD/screenshot.png -------------------------------------------------------------------------------- /app/vendor/foundation/scss/components/_flex-video.scss: -------------------------------------------------------------------------------- 1 | @import 'responsive-embed'; 2 | -------------------------------------------------------------------------------- /docs/images/eevee.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wayfair/dociql/HEAD/docs/images/eevee.png -------------------------------------------------------------------------------- /test/fixtures/cheese.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wayfair/dociql/HEAD/test/fixtures/cheese.png -------------------------------------------------------------------------------- /.gitignore: -------------------------------------------------------------------------------- 1 | ~* 2 | *~ 3 | *bak 4 | *cache 5 | *.log 6 | node_modules 7 | public 8 | .nyc_output 9 | coverage -------------------------------------------------------------------------------- /.npmignore: -------------------------------------------------------------------------------- 1 | /docs 2 | /test 3 | /.vscode 4 | /public 5 | /config.yml 6 | /eevee.png 7 | /TODO.md 8 | 9 | *.log -------------------------------------------------------------------------------- /app/views/partials/swagger/print-example.hbs: -------------------------------------------------------------------------------- 1 | 2 | {{printExample .}} 3 | 4 | -------------------------------------------------------------------------------- /TODO.md: -------------------------------------------------------------------------------- 1 | Improve range and enum output 2 | Render remote references 3 | - https://github.com/sourcey/spectacle/pull/41 4 | -------------------------------------------------------------------------------- /test/fixtures/ref.json: -------------------------------------------------------------------------------- 1 | { 2 | "$ref": "document.json#foo", 3 | "document": { 4 | "$ref": "document.json" 5 | } 6 | } 7 | -------------------------------------------------------------------------------- /app/views/embedded.hbs: -------------------------------------------------------------------------------- 1 | {{! Renders the HTML page content without the
8 | {{>layout/page}} 9 | 10 |tag }} 2 |
5 | -------------------------------------------------------------------------------- /app/vendor/foundation/_vendor/normalize-scss/sass/_normalize.scss: -------------------------------------------------------------------------------- 1 | @import 'normalize/variables'; 2 | @import 'normalize/vertical-rhythm'; 3 | @import 'normalize/normalize-mixin'; 4 | -------------------------------------------------------------------------------- /app/helpers/ifin.js: -------------------------------------------------------------------------------- 1 | module.exports = function(elem, list, options) { 2 | if(list.indexOf(elem) > -1) { 3 | return options.fn(this) 4 | } 5 | return options.inverse(this) 6 | }; 7 | -------------------------------------------------------------------------------- /app/vendor/foundation/js/entries/plugins/foundation.util.box.js: -------------------------------------------------------------------------------- 1 | import { Foundation } from './foundation.core'; 2 | import { Box } from '../../foundation.util.box'; 3 | 4 | Foundation.Box = Box; 5 | -------------------------------------------------------------------------------- /app/helpers/ifcontains.js: -------------------------------------------------------------------------------- 1 | module.exports = function(array, object, options) { 2 | if (array && array.indexOf(object) >= 0) { 3 | return options.fn(this) 4 | } 5 | return options.inverse(this) 6 | }; 7 | -------------------------------------------------------------------------------- /app/vendor/foundation/js/entries/plugins/foundation.abide.js: -------------------------------------------------------------------------------- 1 | import { Foundation } from './foundation.core'; 2 | 3 | import { Abide } from '../../foundation.abide'; 4 | Foundation.plugin(Abide, 'Abide'); 5 | -------------------------------------------------------------------------------- /app/vendor/foundation/js/entries/plugins/foundation.tabs.js: -------------------------------------------------------------------------------- 1 | import { Foundation } from './foundation.core'; 2 | 3 | import { Tabs } from '../../foundation.tabs'; 4 | Foundation.plugin(Tabs, 'Tabs'); 5 | 6 | -------------------------------------------------------------------------------- /app/vendor/foundation/js/entries/plugins/foundation.orbit.js: -------------------------------------------------------------------------------- 1 | import { Foundation } from './foundation.core'; 2 | 3 | import { Orbit } from '../../foundation.orbit'; 4 | Foundation.plugin(Orbit, 'Orbit'); 5 | 6 | -------------------------------------------------------------------------------- /app/vendor/foundation/js/entries/plugins/foundation.reveal.js: -------------------------------------------------------------------------------- 1 | import { Foundation } from './foundation.core'; 2 | 3 | import { Reveal } from '../../foundation.reveal'; 4 | Foundation.plugin(Reveal, 'Reveal'); 5 | -------------------------------------------------------------------------------- /app/vendor/foundation/js/entries/plugins/foundation.util.nest.js: -------------------------------------------------------------------------------- 1 | import { Foundation } from './foundation.core'; 2 | 3 | import { Nest } from '../../foundation.util.nest'; 4 | 5 | Foundation.Nest = Nest; 6 | -------------------------------------------------------------------------------- /app/vendor/foundation/js/entries/plugins/foundation.slider.js: -------------------------------------------------------------------------------- 1 | import { Foundation } from './foundation.core'; 2 | 3 | import { Slider } from '../../foundation.slider'; 4 | Foundation.plugin(Slider, 'Slider'); 5 | 6 | -------------------------------------------------------------------------------- /app/vendor/foundation/js/entries/plugins/foundation.sticky.js: -------------------------------------------------------------------------------- 1 | import { Foundation } from './foundation.core'; 2 | 3 | import { Sticky } from '../../foundation.sticky'; 4 | Foundation.plugin(Sticky, 'Sticky'); 5 | 6 | -------------------------------------------------------------------------------- /app/vendor/foundation/js/entries/plugins/foundation.tooltip.js: -------------------------------------------------------------------------------- 1 | import { Foundation } from './foundation.core'; 2 | 3 | import { Tooltip } from '../../foundation.tooltip'; 4 | Foundation.plugin(Tooltip, 'Tooltip'); 5 | -------------------------------------------------------------------------------- /app/vendor/foundation/js/entries/plugins/foundation.util.timer.js: -------------------------------------------------------------------------------- 1 | import { Foundation } from './foundation.core'; 2 | 3 | import { Timer } from '../../foundation.util.timer'; 4 | 5 | Foundation.Timer = Timer; 6 | -------------------------------------------------------------------------------- /app/vendor/foundation/js/entries/plugins/foundation.magellan.js: -------------------------------------------------------------------------------- 1 | import { Foundation } from './foundation.core'; 2 | 3 | import { Magellan } from '../../foundation.magellan'; 4 | Foundation.plugin(Magellan, 'Magellan'); 5 | -------------------------------------------------------------------------------- /app/vendor/foundation/js/entries/plugins/foundation.toggler.js: -------------------------------------------------------------------------------- 1 | import { Foundation } from './foundation.core'; 2 | 3 | import { Toggler } from '../../foundation.toggler'; 4 | Foundation.plugin(Toggler, 'Toggler'); 5 | 6 | -------------------------------------------------------------------------------- /app/vendor/foundation/js/entries/plugins/foundation.util.touch.js: -------------------------------------------------------------------------------- 1 | import $ from 'jquery'; 2 | 3 | import { Touch } from '../../foundation.util.touch'; 4 | 5 | Touch.init($); 6 | 7 | window.Foundation.Touch = Touch; 8 | -------------------------------------------------------------------------------- /app/vendor/foundation/js/entries/plugins/foundation.accordion.js: -------------------------------------------------------------------------------- 1 | import { Foundation } from './foundation.core'; 2 | 3 | import { Accordion } from '../../foundation.accordion'; 4 | Foundation.plugin(Accordion, 'Accordion'); 5 | -------------------------------------------------------------------------------- /app/vendor/foundation/js/entries/plugins/foundation.drilldown.js: -------------------------------------------------------------------------------- 1 | import { Foundation } from './foundation.core'; 2 | 3 | import { Drilldown } from '../../foundation.drilldown'; 4 | Foundation.plugin(Drilldown, 'Drilldown'); 5 | -------------------------------------------------------------------------------- /app/vendor/foundation/js/entries/plugins/foundation.dropdown.js: -------------------------------------------------------------------------------- 1 | import { Foundation } from './foundation.core'; 2 | 3 | import { Dropdown } from '../../foundation.dropdown'; 4 | Foundation.plugin(Dropdown, 'Dropdown'); 5 | 6 | -------------------------------------------------------------------------------- /app/vendor/foundation/js/entries/plugins/foundation.equalizer.js: -------------------------------------------------------------------------------- 1 | import { Foundation } from './foundation.core'; 2 | 3 | import { Equalizer } from '../../foundation.equalizer'; 4 | Foundation.plugin(Equalizer, 'Equalizer'); 5 | -------------------------------------------------------------------------------- /app/vendor/foundation/js/entries/plugins/foundation.offcanvas.js: -------------------------------------------------------------------------------- 1 | import { Foundation } from './foundation.core'; 2 | 3 | import { OffCanvas } from '../../foundation.offcanvas'; 4 | Foundation.plugin(OffCanvas, 'OffCanvas'); 5 | -------------------------------------------------------------------------------- /app/vendor/foundation/js/entries/plugins/foundation.util.keyboard.js: -------------------------------------------------------------------------------- 1 | import { Foundation } from './foundation.core'; 2 | import { Keyboard } from '../../foundation.util.keyboard'; 3 | 4 | Foundation.Keyboard = Keyboard; 5 | -------------------------------------------------------------------------------- /app/vendor/foundation/js/entries/plugins/foundation.interchange.js: -------------------------------------------------------------------------------- 1 | import { Foundation } from './foundation.core'; 2 | 3 | import { Interchange } from '../../foundation.interchange'; 4 | Foundation.plugin(Interchange, 'Interchange'); 5 | -------------------------------------------------------------------------------- /app/vendor/foundation/js/entries/plugins/foundation.util.mediaQuery.js: -------------------------------------------------------------------------------- 1 | import { Foundation } from './foundation.core'; 2 | import { MediaQuery } from '../../foundation.util.mediaQuery'; 3 | 4 | Foundation.MediaQuery = MediaQuery; 5 | -------------------------------------------------------------------------------- /app/helpers/schemaSubschemaName.js: -------------------------------------------------------------------------------- 1 | /** 2 | * Extract then name of a subschema from a $ref property 3 | * @param url 4 | * @returns {*} 5 | */ 6 | module.exports = function(url) { 7 | return url.replace('#/definitions/', '') 8 | }; 9 | -------------------------------------------------------------------------------- /app/vendor/foundation/js/entries/plugins/foundation.dropdownMenu.js: -------------------------------------------------------------------------------- 1 | import { Foundation } from './foundation.core'; 2 | 3 | import { DropdownMenu } from '../../foundation.dropdownMenu'; 4 | Foundation.plugin(DropdownMenu, 'DropdownMenu'); 5 | -------------------------------------------------------------------------------- /app/vendor/foundation/js/entries/plugins/foundation.smoothScroll.js: -------------------------------------------------------------------------------- 1 | import { Foundation } from './foundation.core'; 2 | 3 | import { SmoothScroll } from '../../foundation.smoothScroll'; 4 | Foundation.plugin(SmoothScroll, 'SmoothScroll'); 5 | 6 | -------------------------------------------------------------------------------- /app/vendor/foundation/js/entries/plugins/foundation.util.motion.js: -------------------------------------------------------------------------------- 1 | import { Foundation } from './foundation.core'; 2 | import { Motion, Move } from '../../foundation.util.motion'; 3 | 4 | Foundation.Motion = Motion; 5 | Foundation.Move = Move; 6 | -------------------------------------------------------------------------------- /test/minimal.js: -------------------------------------------------------------------------------- 1 | /** The minimal OpenAPI spec with all required fields. */ 2 | exports.minimal = minimal = { 3 | swagger: "2.0", 4 | info: { 5 | title: "Test File", 6 | version: "0.0.0", 7 | }, 8 | paths: {}, 9 | }; 10 | -------------------------------------------------------------------------------- /app/vendor/foundation/js/entries/plugins/foundation.accordionMenu.js: -------------------------------------------------------------------------------- 1 | import { Foundation } from './foundation.core'; 2 | 3 | import { AccordionMenu } from '../../foundation.accordionMenu'; 4 | Foundation.plugin(AccordionMenu, 'AccordionMenu'); 5 | 6 | -------------------------------------------------------------------------------- /app/vendor/foundation/js/entries/plugins/foundation.util.imageLoader.js: -------------------------------------------------------------------------------- 1 | import { Foundation } from './foundation.core'; 2 | 3 | import { onImagesLoaded } from '../../foundation.util.imageLoader'; 4 | 5 | Foundation.onImagesLoaded = onImagesLoaded; 6 | -------------------------------------------------------------------------------- /app/vendor/foundation/js/entries/plugins/foundation.util.triggers.js: -------------------------------------------------------------------------------- 1 | import { Foundation } from './foundation.core'; 2 | import $ from 'jquery'; 3 | 4 | import { Triggers } from '../../foundation.util.triggers'; 5 | Triggers.init($, Foundation); 6 | -------------------------------------------------------------------------------- /app/vendor/foundation/js/entries/plugins/foundation.responsiveMenu.js: -------------------------------------------------------------------------------- 1 | import { Foundation } from './foundation.core'; 2 | 3 | import { ResponsiveMenu } from '../../foundation.responsiveMenu'; 4 | Foundation.plugin(ResponsiveMenu, 'ResponsiveMenu'); 5 | 6 | -------------------------------------------------------------------------------- /app/views/main.hbs: -------------------------------------------------------------------------------- 1 | {{! Renders the entire HTML page}} 2 | 3 | 4 |
5 | {{>layout/head}} 6 | 7 |