Commit Graph

2085 Commits

Author SHA1 Message Date
kyle
94c86d3d50 improvement: online.swagger.io -> validator.swagger.io (#5599) 2019-09-09 21:33:23 -07:00
kyle
4ebbc042ae fix: 2.0 object parameter validation (#5583) 2019-09-02 10:06:55 -07:00
kyle
c9c3b2338e feature: support for Parameter.content (#5571)
* add `getParameterSchema` OAS helper

* use `Parameter.content.[firstKey].schema` as schema value when present

* `newValue` -> `initialValue`

* make `paramWithMeta` a const

* add trailing comma to `swagger2SchemaKeys`

* refactor `helpers` to a folder

* deprecate `src/core/utils.js` in favor of `src/core/helpers/`

* support `Parameter.content.[mediaType].schema` in validateParam

* reject `null` as an OAS3 object value

* expose Fetch errors in the browser console

* generate ParameterRow default values based on `content` values

* add tests for `getParameterSchema`

* remove debugger statement

* remove debugger statement

* don't apply `generatedSampleValue`s to parameters with `examples`

* remove extra semi

* disable JSON check in parameter runtime validation

* stringify JsonSchema_object textarea values

* add Cypress tests

* swagger-client@3.9.4
2019-08-31 16:37:43 -07:00
silverwind
f5a3d8854d fix: React warning related to "true" used as boolean (via #5497)
This should fix this warning seen in the console when using `swagger-ui-react`:

```
Warning: Received the string `true` for the boolean attribute `readOnly`. Although this works, it will not work as expected if you pass the string "false". Did you mean readOnly={true}?
    in textarea (created by Curl)
    in div (created by Curl)
    in div (created by Curl)
    in Curl (created by LiveResponse)
    in div (created by LiveResponse)
    in LiveResponse (created by Responses)
```

I did not test this change because it's trivial and there is no behavioural change here, React treats non-empty string attributes as `true`.
2019-08-22 21:27:58 -07:00
thierrydallacroce
0b3489b52d fix: remove .col class that causes collision with Bootstrap (via #5541)
* improvement: address Bootstrap conflict by removing our .col class (#4574)

* use `.parameters-col_description` selector in Cypress tests
2019-08-20 19:51:45 -07:00
kyle
c27a613647 fix: remove problematic Markdown optimization (via #5520) 2019-08-06 21:17:16 -07:00
kyle
2af696dcc1 housekeeping: @kyleshockey/js-yaml -> js-yaml (via #5511)
* `@kyleshockey/js-yaml` -> `js-yaml`

* externalize `esprima`
2019-07-31 14:45:18 -07:00
kyle
39f8ceba55 fix: empty ModelExample rendering in a Response w/o content (via #5504)
* add failing test

* use falsy notSetValue for oas3SchemaForContentType
2019-07-29 22:15:19 -05:00
kyle
e895fb544f fix: use null as a notSetValue for examplesForMediaType (via #5503)
* fix: use null as a notSetValue for examplesForMediaType

fixes #5455

* tests!
2019-07-29 21:44:14 -05:00
kyle
a9493a27be fix: Swagger 2.0 Response.examples, again (via #5465)
* fix: Swagger 2.0 `Response.examples`

* stringify results
2019-07-13 01:01:57 -05:00
kyle
9749a47853 fix: Swagger 2.0 Response.examples (via #5464) 2019-07-13 00:25:43 -05:00
kyle
eaa1f4a8b4 bug: enum Select crashes when selecting the empty value (via #5463)
* add failing tests

* fix property access

* @babel/plugin-proposal-optional-chaining
2019-07-12 23:05:00 -05:00
kyle
88204daad8 housekeeping: upgrade to webpack@4 (via #5454)
* build new core webpack config

* fix exports in Webpack; use ESM syntax throughout

* add bundle config

* add standalone config

* add style config

* prettier...

* add dev config

* delete legacy webpack scripts

* rewire npm scripts to use new webpack configs

* cache babel-loader results

* fix e2e dev servers

* update core Webpack modules

* update loaders to latest

* remove unused loaders

* update Webpack plugins

* add mode flags to Webpack configs

* remove plugin invocations that are now production-standard in v4

* update webpack-cli

* add webpack perf size limit flags

* replace ExtractText with MiniCssExtract + IgnoreAssets

* UglifyJsPlugin -> TerserPlugin

* fix PostCSS processing

* enable Terser sourcemaps

* webpack/style -> webpack/stylesheets
2019-07-11 18:57:44 -05:00
kyle
9935ea3328 housekeeping: upgrade to babel@7 (via #5450)
* Babel 7

* preserve module output; straighten out ES/CJS syntax

* add webpack TODOs

* remove unused Babel modules

* Update index.js

* install @babel/register
2019-07-09 23:25:34 -05:00
Rody-Kirwan
17ba2c6170 housekeeping: refactor color variable names and values (via #5420)
* housekeeping: update color variable names and values (via #5337)

* Update operation colors, abstracted colors from element specific variables

* Removed colors.scss

* Typo 

* Undefined var fix

* revert operation color changes (for now)

* fix whitespace
2019-07-03 15:27:56 -05:00
kyle
23d7260f92 feat: Multiple Examples for OpenAPI 3 Parameters, Request Bodies, and Responses (via #5427)
* add opt-in Prettier config

* remove legacy `examples` implementation

* create ExamplesSelect

* support `Response.examples` in OpenAPI 3

* create response controls group

* prettier reformat

* prepare to break up Parameters

* reunify Parameters and OAS3 Parameters

* Parameter Examples

* Example component

* handle parameter value stringification correctly

* FOR REVIEW: add prop for controlling Select

* use regular header for param examples in Try-It-Out

* manage active examples member via Redux

* Request Body Try-It-Out examples

* remove special Response description styling

* omit Example value display in Try-It-Out

* support disabled text inputs in JsonSchemaForm

* Example.omitValue => Example.showValue

* ExamplesSelectValueRetainer

* styling for disabled inputs

* remove console.log

* support "Modified Values" in ExamplesSelect

* remove Examples component
(wasn't used anywhere)

* use ParameterRow.getParamKey for active examples member keying

* split-rendering of examples in ParameterRow

* send disabled prop to JsonSchemaForm

* use content type to key request body active examples members

* remove debugger

* rewire RequestBodyEditor to be a controlled component

REVIEW: does this have perf implications?

* trigger synthetic onSelect events in ExamplesSelect

* prettier updates

* remove outdated Examples usage in RequestBody

* don't handle examples changes in ESVR

* make RequestBodyEditor semi-controlled

* don't default to an empty Map for request bodies

* add namespaceKey to ESVR for state mgmt

* don't key RequestBody activeExampleKeys on media type

* tweak ESVR isModifiedValueSelected calculation

* add trace class to ExamplesSelect

* remove usage of ESVR.currentNamespace

* reset to first example if currentExampleKey is invalid

* add default values to RequestBody rendering

* stringify things in ESVR

* avoid null select value (silences React warning)

* detect user inputs that match any examples member's value

* add trace class for json-schema-array

* shallowly convert namespace state, to preserve Immutable stucts in state

* stringify RBE values; don't trim JSON in editor

* match user input to an example when non-primitives are expressed in state as strings

* update Cypress

* don't apply sample values in JsonSchema_Object

* support disabling all JsonSchemaForm subcomponents

* Core tests

* style changes to accomodate Examples

* fix version-checking error in Response

* disable SCU for Responses

* don't stringify Select values

* ModelExample: default to Model tab if no example is available; provide a default no example message

* don't trim JSON ParamBody inputs

* read directly from 2.0 Response.schema instead of inferring a value

* show current Example information in RequestBody

* show label for Examples dropdown by default

* rework Response content ordering

* style disabled textareas like other read-only blocks

* meta: fix sourcemaps

* refactor ESVR setNameForNamespace

* protect second half of ternary expession

* cypress: `select.examples-select` => `.examples-select > select`

* clarify ModelExample.componentWillReceiveProps

* add gates/defaults to prevent issues in very bare-boned documents

* fix test block organization problem

* simplify RequestBodyEditor interface

* linter fixes

* prettier updates

* use plugin system for new components

* move ME Cypress helpers to other file
2019-06-29 19:52:51 +01:00
geraldglynn
5d25a0b690 improvement: add isShown check to <ModelCollapse />'s prop expanded logic (via #5331) 2019-05-15 20:45:07 -07:00
M-Vainauskas
96c444e81e improvement: relax schema description styling so Markdown can be effective (via #5340) 2019-05-15 20:34:48 -07:00
geraldglynn
58d48f7e1a improvement: OAS3 $ref friendly-name regex in model.jsx (via #5334) 2019-05-01 18:46:11 -07:00
kyle
1dd87ce26e fix: refuse to render non-string Markdown field values (via #5295) 2019-04-10 16:04:33 -07:00
Alan Wessman
f50bbecc38 improve: error message when rendering XML example (via #5253)
The original message gave no clues as to the underlying cause, which is that the element name needs to be specified explicitly (using xml/name) if it can't be determined from a $ref.
2019-04-09 17:17:36 -07:00
Segev Finer
be72c292ca feature: add withCredentials configuration key (via #5149)
* Add the withCredentials configuration key

It enables passing credentials in CORS requests. e.g. Cookies and
Authorization headers.

* Improve withCredentials documentation

* Add unit tests for the withCredentials config

* Update configuration.md

* Update configuration.md

* only set `withCredentials` Fetch flag if the config value is truthy

there are some workarounds in the wild today that involve setting `withCredentials` on `system.fn.fetch` directly. 

this approach avoids mangling those existing workarounds!

* add more test cases

* Update configs-wrap-actions.js

* Update index.js
2019-03-20 12:36:08 -07:00
Brian Johnson
65e8abde55 improvement: support GFM table syntax in OpenAPI 3.0 (via #5224) 2019-03-14 17:58:02 -07:00
Peter Goldthorp
1497271155 housekeeping: remove react-addons-perf dependency (via #5229)
* Remove react-addons-perf dependency

* update lockfile

* include ReactPerf in non-production builds
2019-03-14 17:36:49 -07:00
Zhang Yi Jiang
c6d1cc9c72 fix: Markdown styling nits and inconsistencies (via #5235)
* bug: fix pre styles for block code

* bug: Fix badge padding

* create Markdown-specific stylesheet
2019-03-14 16:51:49 -07:00
kyle
7025773fbf feature: swagger-ui-react module (via #5207)
* swagger-ui-react alpha.0

* alpha.1

* alpha.2

* alpha.3

* begin updating README

* alpha.4

* WIP: `displayOperationId` support

* move loading error readouts to BaseLayout

* add `url` prop

* export React component as default

* add interceptor support

* modify docs markup

* add `onComplete` prop

* add `spec` prop

* Update README.md

* alpha.6

* remove independent manifest; build releasable exclusively from template

* ensure dist is present; drop config field in manifest

* drop alpha field

this script is now able to release to npm!

* remove unused selector references

* Update README.md
2019-03-01 20:41:30 -08:00
kyle
e95588bd1f improvement: gracefully render malformed and empty requestBodies (via #5208) 2019-02-28 19:54:21 -08:00
kyle
0990aa82f2 improve: subtree resolver batch handling (via #5193)
* fix: prevent subtree paths from being queued more than once in a batch

* fix: clear subtree resolver errors by current path

* drop `List` import
2019-02-25 14:33:10 -08:00
kyle
ff496fa5bd fix: type safety for operation summary handling (via #5191)
* fix: gracefully handle non-string operation summaries

* use lodash for more summary type safety
2019-02-23 17:00:29 -08:00
kyle
1e184e8e21 fix: sanitize URLs used for OAuth auth flow (via #5190)
* fix: sanitize URLs used for OAuth auth flow

* embetter test case

* fix linter issue
2019-02-23 14:14:30 -08:00
kyle
d9f460f4a8 fix: gracefully handle non-string operation summaries (via #5189) 2019-02-19 15:41:16 -08:00
kyle
291e2c7251 improvement: operation path + summary overflow styling (via #5184)
* improvement: operation path + summary overflow styling

* inject zero-width spaces for better path breaking

* migrate 4867 regression test to tolerate new ZWSPs

* rm `dev-helpers/doc.yaml`
2019-02-15 20:05:26 -06:00
dalbrx-forcam
937c8f6208 improvement: set X-Requested-With to prevent browser authentication dialog (via #4934) 2019-02-14 17:20:06 -06:00
kyle
373da3bee3 fix: provide JSON editor for x-www-form-urlencoded bodies lacking properties (via #5180) 2019-02-13 18:47:01 -06:00
kyle
3434312cf7 housekeeping: corresponding changes for swagger-api/swagger-editor#1935 (via #5170)
* `schema` -> `structural`

* drop strip-instance transformer
2019-02-08 17:16:18 -06:00
kyle
d3c2e2777f fix: coerce multipart initial property values to string (via #5166)
* coerce multipart initial property values to string

* add tests
2019-02-07 15:35:22 -06:00
Drew Freyling
48e4fb937d housekeeping: losslessly crush PNG images with pingo (via #5158) 2019-02-06 22:11:04 -06:00
kyle
15cdfe14dd improvement: generate non-smart Markdown quotes (via #5162) 2019-02-06 21:48:52 -06:00
kyle
0047ce96a8 fix: don't trigger url remote document load if urls is provided (via #5161)
* fix: don't trigger `url` remote document load if `urls` is provided

* better test block title
2019-02-06 19:32:35 -06:00
kyle
b716ed2515 fix: gracefully handle malformed global tags array in taggedOperations selector (via #5159)
* fix: handle malformed global tags array in taggedOperations

* handle non-array global tags as well

* update test imports

* remove stray brackets
2019-02-05 20:10:18 -06:00
kyle
abf34961e9 bug: parameter allowEmptyValue + required interactions (via #5142)
* add failing tests
* standardize parameter keying
* validateParam test migrations
* migrate test cases to new pattern
* disambiguate name/in ordering in `body.body` test cases
* `name+in`=> `{in}.{name}`
* consider allowEmptyValue parameter inclusion in runtime validation
* use config object for all validateParam options
* drop isXml flag from validateParams
2019-01-29 16:46:03 -06:00
kyle
315819b2c9 fix: non-typesafe spec selector (via #5121)
* add failing tests

* fix things
2019-01-12 00:58:20 -06:00
John Hart
babcfb6b39 improvement: support Markdown in header descriptions (via #5120)
* Added markdown for header descriptions as per specifications:

https://github.com/OAI/OpenAPI-Specification/blob/master/versions/3.0.0.md#header-object
which subclasses:
https://github.com/OAI/OpenAPI-Specification/blob/master/versions/3.0.0.md#parameterObject

https://swagger.io/specification/#headerObject
which subclasses
https://swagger.io/specification/#parameterObject

* update headers.jsx

* Update headers.jsx

Fixing test error due to the `description` variable having been removed

* Update headers.jsx
2019-01-11 18:24:21 -06:00
mirabilos
669ec1c081 improvement: add individual CSS classes to info items (via #5051)
This makes it easier to style them individually or retrieve the
elements in user scripts.
2019-01-11 10:12:18 -06:00
Nurbol Makashov
e90fe9cfd7 improvement: show description fields in form-data request bodies (via #5073) 2019-01-10 16:23:40 -06:00
Jun Kuriyama
45e7f44ee3 improvement: render request body description as Markdown (via #5078) 2019-01-10 16:06:40 -06:00
kyle
1e8e0dba30 fix: tag-level deep link escaping inconsistencies (via #5117)
* add test cases

* update tag deeplinking implementation

* MOAR test updates

* update operation-tag.jsx
2019-01-10 15:58:37 -06:00
kyle
2db63e2c08 fix: Immutable property access pattern (via #5112) 2019-01-07 13:40:17 -06:00
kyle
3691d2b5dd fix: only apply instance-strip transformer to schema errors (via #5110) 2019-01-07 01:15:11 -06:00
kyle
655ef9e662 fix: urls.primaryName functionality regression (via #5097)
* add tests

* compute index before triggering URL load

* bonus: improve urls topbar label
2018-12-21 23:51:58 -06:00