Commit Graph

456 Commits

Author SHA1 Message Date
Tim Lai
10b08af5ec Fix: #5669 online validator badge (#5909)
* fix: enable online validator badge

since online validator badge now can handle OAS3 specs
2020-03-11 09:59:00 -07:00
geraldglynn
54f82df3c3 improvement: add isShownKey prop to Operation to allow overriding (#5196)
* Added optional isShownKey prop to Componenent to allow overriding

* Removed unneccasry  before is isShwonKey

* Added PropTypes to isShownKey

* Added isShownKey to <OperationWrapper/> and removed it from <Operation />

* Removed isShwonKey prop it from <Operation />

* revert package-lock.json

Co-authored-by: kyle shockey <kyleshockey@gmail.com>
2020-03-08 21:59:15 -04:00
poveilleux
139592e353 feat: add PKCE support for OAuth2 Authorization Code flows (#5361)
* Add PKCE support.

* Fix tests

* Update oauth2.md

* Rename usePkce

* Fix the BrokenComponent error

* Update oauth2.md

* Remove isCode variable. Remove uuid4 dependency.

* Remove utils functions

* Import crypto

* Fix tests

* Fix the tests

* Cleanup

* Fix code_challenge generation

* Move code challenge and verifier to utils for mocks. Update tests.

* Mock the PKCE methods in the utils file properly.

* Add missing expect

* use target-method spies

* Add comments to explain test values.

* Get rid of jsrsasign.
2019-10-07 17:24:43 -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
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
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
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
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
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
kyle
1dd87ce26e fix: refuse to render non-string Markdown field values (via #5295) 2019-04-10 16:04:33 -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
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
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
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
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
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
a5568f9e16 improve: OAuth2 UI and test suite (via #5066)
* create `features` folder

* add base oauth2 server

* continue implementing OAuth tests

* WIP

* add password flow tests

* modify Password flow credential types

* remove query string credential type

* add test case for Authorization flow

* add specific Authorization value for Password flow test

* WIP

* fix linter issues
2018-12-07 20:54:29 +01:00
kyle
b84a0fea04 fix: fall back to default configuration options in subtree resolver calls (via #5063) 2018-12-07 16:04:33 +01:00
dersvenhesse
8bdf2933d5 improve: showing showing server description in dropdown (via #5015)
* Showing server description in dropdown

* Slight syntax improvements

* use template strings and ` - `
2018-11-26 23:18:57 +01:00
kyle
971c6f7536 fix: path-item $ref produces/consumes inheritance (via #5049)
* implement a selector for consumes options

* fix incorrect comment, test names

* add `consumesOptionsFor` selector

* use `consumesOptionsFor` and drop `operationConsumes`
2018-11-23 23:24:11 +01:00
kyle
074eaa5d51 fix: prevent object inheritance mutations in recursive sampleXmlFromSchema calls (via #5034)
* fix: prevent object inheritance mutations in recursive sampleXmlFromSchema calls

* fix unrelated test
2018-11-16 21:02:23 +01:00
Helen Kosova
89868a85bb feat: sample value generation for uuid, hostname, ipv4, & ipv6 formats (via #5033) 2018-11-16 13:22:42 +01:00
Jeremy Hayes
078bca3566 feat: sample value generation for date formats (via #5024) 2018-11-16 00:49:23 +01:00
Steven Aerts
0fd35603e6 fix: resolve referenced securitySchemes (via #5028) 2018-11-16 00:21:01 +01:00
kyle
ad786b023f housekeeping: .js -> .jsx file extensions (via #5014)
* housekeeping: `.js` -> `.jsx` where necessary
2018-11-08 16:37:21 +00:00
kyle
b9300211bb housekeeping: xml -> @kyleshockey/xml (via #4985) 2018-11-01 14:33:05 -04:00
kyle
3df9fad68a improve: deeplinking behavior (#4960)
* add passing tests for fragment rewriting

* add failing fragment retention tests

* fire legacy `show` actions before standard ones

* skip failing tests

* remove extra line
2018-10-19 17:33:30 -05:00
James ZHANG
1791759de5 improve(deeplink): support utf16 tags and IDs (via #4921)
* ref #3958, support utf16 fragments on the deeplink plugin
* put -> head for UTF16 operation
this is a temporary fix, eventually we will run out
of methods and need to use a new targeting strategy
* drop obsolete %20 decoder
* add full test suite for UTF16 operation
* use encodeURIComponent when setting hash
* drop obsolete test cases
2018-10-18 16:55:30 -05:00
kyle
3c3b7e0bf1 bug(deeplinking): escaping breaks whitespaces & underscored tags/ids (via #4953)
* add tests for operation lacking an operationId
* add deep linking tests for tags/operationIds with underscores
* migrate from `_` to `%20` for deeplink hash whitespace escaping
* add backwards compatibility for `_` whitespace escaping
* update util unit tests
2018-10-16 18:51:29 -05:00
kyle
004f107ec4 fix: repair schemes servers rendering (via #4913)
* create AuthorizeBtnContainer

* remove Servers and AuthorizeBtn from Schemes' concern

* add AuthorizeBtnContainer to base

* strengthen OAS3 definitionsToAuthorize

* drop obsolete tests

* linter fixes
2018-10-01 20:27:52 -05:00
Scott O'Hara
054d450a45 fix: add client_id and client_secret to form when type is request-body (via #4213) 2018-09-28 20:40:38 -05:00
kyle
c5c4e08368 improve: nest Servers within Schemes container (via #4911)
* improve: nest Servers within Schemes container

* linter fixes
2018-09-28 20:33:06 -05:00
kyle
1690b319af improve: multipart + formencoded rendering (via #4910) 2018-09-28 19:26:47 -05:00
kyle
54276c95e2 fix: gracefully handle empty request bodies (via #4859) 2018-09-07 16:18:13 -07:00
kyle
e6b7167dd8 fix(deeplinking): expand containing tag when expanding an operation (#4837)
* fix(deeplinking): expand containing tag when expanding an operation
* linter fixes
* tighten up test cases
2018-08-27 22:58:00 -07:00
kyle
00432fc07c fix: deep link fragment escaping (via #4832)
* `test/e2e` -> `test/e2e-selenium`

* add Cypress

* ESLint fixes

* MOAR cypress

* `integration` -> `tests`

* wire Cypress up to a hot e2e server

* add failing tests for #4537

* add petstore for future use

* don't tack `operations/` onto href path

* escape generated URL fragments

* Update package.json
2018-08-23 15:24:32 -07:00
Tim Macfarlane
9a9cfdf101 improvement: omit deprecated fields in examples (via #4758) 2018-08-20 14:11:50 -07:00
kyle
708a96dcab improvement: urlencoded Request Body rendering (via #4823)
* use request body schema `required` for marking required urlencoded properties

* don't use sample schema value as a fallback

* modify property layout to mimic regular parameters

* clean up

* use default or example for iniital values
2018-08-17 18:00:06 -07:00
Martin Danielsson
85cf0dccac improve: include more error data from authorization call (via #4801)
* Additional fix of #4048, more error messages from authorization call
  Inspect the error and error_description properties of the response, if available
* Fixed linter errors
2018-08-08 14:03:36 -07:00
kyle
87296702c6 feature: allowEmptyValue controls (#4788)
* add baseline tests

* coerce empty strings to null when updating parameter values

* add ParameterIncludeEmpty

* add redux management for empty parameter value inclusion state

* use name+in keying for state management instead of hash keying

* update new redux method usages to name+in keying

* coerce empty Immutable iterables in onChangeWrapper

* OAS3 tests & support

* add included empty parameters to requests before dispatching to Swagger Client

* make empty inclusion interface prettier

* add tests for #4587

* linter fixes

* check for truthy value before reaching into property
2018-08-04 01:26:07 -07:00
kyle
dd3afdc456 fix: anchor tag safety (via #4789)
* v3.17.6

* release(3.17.6): rebuild dist

* add failing tests

* fix Link component

* fix OnlineValidatorBadge component

* switch from <a> to <Link> in operation components

* make Markdown inputs safe

* use Link component in Info block, for target safety

* add eslint rule for unsafe `target` usage
2018-08-04 00:54:03 -07:00