* `test/e2e` -> `test/e2e-selenium`
* add Cypress
* ESLint fixes
* MOAR cypress
* `integration` -> `tests`
* wire Cypress up to a hot e2e server
* linter fixes
* don't run in CI
* 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
* set new bundlesize goal
* preserve `GeneratorFunction` instead of all function names
* use js-yaml fork that doesn't require esprima
* set HTML content directly, instead of using React-Markdown
* use remarkable for all Markdown rendering
* add babel-plugin-transform-react-remove-prop-types
* remove SplitPaneMode plugin
* remove react-collapse
* remove AST plugin, and yaml-js
* trim Markdown HTML string output before rendering
* disable obsolete function name preservation
* add `getComponent` to propTypes
* add tests for example feature
* refactor ParameterRow value setter logic
* aside: fix property access in sampleFromSchema
* prioritize media type examples for OAS3 responses
* use `example` in schema level example
* refactor: move stringify to utils
* prioritize media type examples in OAS3 request bodies
* modify nightwatch config
* fix parameter/response regressions
* reorder and broaden default value sources
* update lockfile
* Add package-lock
* Remove karma* as no longer used. mocha is the test runner now
* Update patch and minor dev dependencies
* Update other dev dependencies, one at time
* Update webpack to v3 and fix package warnings
* Update production dependencies
* Update to react-inspector and Remove react-addons-shallow-compare as no longer used/required in 15.6
* Unused dependencies
* brace
* getbase
* matcher
* promise-worker
* react-addons-test-utils
* react-height
* redux-logger
* scroll-to-element
* shallowequal
* whatwg-fetch
* initial perf, which gets stripped out in production (#4131)
* Refactor deep-linking, in the process extracted out OperationsTag (#4349)
* add configsActions.loaded hook
* add OperationTag to hold Operations
* fix test for operations
* refactor deep-linking plugin
* [FIX] nested `url` option replacement when $API_URLS contains `url: .*,` pattern (#4601)
* fix(try-it-out): initially unset required booleans (#4613)
* fix(tio-params): disable empty values for required+enum booleans (#4615)
* feat(rendering): gate rendering based on valid version identifiers (#4614)
* create VersionPragmaFilter component
* use VersionPragmaFilter in BaseLayout
* tighten version idenitifier constraints
* handle case where user specifies a valid `swagger` and `openapi` field
* add traceable class names for each message
* add tests
* linter fixes!
* UNRELATED CHANGE: remove travis short-circuit
* add bypass switch to VersionPragmaFilter
* v3.17.0 (#4616)
* v3.17.0
* rebuild dist
* Update system.js (#4626)
Fix typo
* Revert "initial perf, which gets stripped out in production (#4131)" (#4636)
This reverts commit 5ea2150ae7.
* Update add-plugin.md (#4620)
Fixed some spacing
* fix: sample generation for nested oject schemas (#4648)
* Fix improper markdown (#4645)
escape `|`
* housekeeping: factor out components for easier BaseLayout reuse (#4604)
* improve: wrap schemes to encapsulate rendering logic
* improve: wrap filter to encapsulate rendering logic
* improve: wrap info section to encapsulate rendering logic
* improve: wrap servers plugin to encapsulate rendering logic
* improve: added tests for schemes-wrapper rendering logic
* improve: added tests for info-wrapper rendering logic, also do not render info if info is undefined
* improve: added tests for filter rendering logic
* improve: added tests for servers-wrapper rendering logic
* `InfoWrapper` -> `InfoContainer`
* add `containers` alias to Babel configuration
* `SchemesWrapper` -> `SchemesContainer`
* drop `container` from container file names
* `ServersWrapper` -> `ServersContainer`
* `Filter` -> `FilterContainer`
* follow `core/containers` pattern in BasePreset
* use HTTPS for Petstore by default (#4652)
* housekeeping: update e2e selectors (#4655)
* v3.17.1 (#4656)
* v3.17.1
* rebuild dist
* Doc updates
* Improvement: Hash-keyed Try-It-Out parameter value storage (#4670)
* allow param update by identity + hashed value storage
* add specActions.changeParamByIdentity
* add identity-based lookup support in spec selectors
* migrate `changeParam` usage to `changeParamByIdentity`
* migrate usage of `parameterWithMeta` to `parameterWithMetaByIdentity`
* update invocations of `changeParamByIdentity` to match fn signature
* use OrderedMap throughout hash-based selectors for consistency
* normalize usage of ParameterRow `onChange`
* migrate bug 4557 tests to reflect new ParameterRow interface
* remove exclusive test blocks
* linter fixes
* copy Parameters changes into OAS3 wrapper
* use rawParam for meta lookups in ParameterRow
* drop unused dependencies from `package.json`
* re-pin selenium dependency version
* swap `sanitize-html` for `dompurify`
* set up node enzyme tests with jsdom
dompurify, as the name suggests, needs a DOM or it won't work!
* reconcile tests and sanitizer settings
* remove obsolete sanitizeOptions
* add `jsdom` dependency
* test(e2e): modify e2e hot server to peacefully coexist with dev server
* tests: add failing e2e test case
* fix: use originalOperationId for layout targeting, if available
* WIP: trigger resolution of Path Item $ref on spec load
* fix(dev-server): don't open localhost in a browser
* preserve key order when merging specJson with specResolvedSubtrees
* remove stray `debugger`
* Use `parameterWithMeta` to get parameter data in <ParameterRow>
* Prefer specPath when fetching resolved subtrees in OperationContainer
* Add test for OAS3 callback rendering
* Remove debugger statement
* Pass base resolution URL directly to Swagger-Client subtree resolver
* Remove accidental comment
* Migrate additional options
* Don't default to empty Map when getting subtree
* fix(validateParam): check for ImList type before using count method
* Use `replaceState` to update `urls.primaryName`
This gives us the stateful URL we want, without:
(a) refreshing the page on update
(b) creating a long, useless history for the user
(c) implying that browser history is two-way bound
to Swagger-UI (it isn't, we don't have a router)
* Add `fn.opsFilter` docs and internal API versioning note
* restrict `x-example` functionality to Swagger 2.0
* polish Authorize + Close buttons
* add tachyons; use it for padding the new Reset button
* v3.12.0
* rebuild dist
* default to empty `ImmutableMap` when grabbing op metadata
* pass `errors` into JsonSchema components
* Account for Immutable data structure in JavaScriptonSchema...
...and create empty Lists instead of Maps by default.
* Pass ImmutableList through to JsonSchema child components
* Add lazy resolving spec state extensions
* TEMPORARY: disable conventional resolved spec
* WIP
* Use resolveSubtree in Operation display
* Freebie: short-circuit Markdown component if it is given plaintext
* NEW DEFAULT BEHAVIOR: `defaultModelsExpandDepth: 1` does not expand individual models
* Render faked Model expander to trigger resolution
* Baseline support for Editor lifecycles
* Display operation summaries before the operation is resolved
* Test migrations
* WIP
* Swagger2 TIO Body params
* a bit of cleanup
* Debounce string param inputs
* Reach into unresolved operation for deprecated flag, if available
* Fire subtree request outside of render
* Remove debugging flags
* Fix logical errors in spec statePlugins
* TODOs become TODONEs!
* Migrate deeplinking feature to non-resolved spec action
* ESLint fixes
* default to empty `ImmutableMap` when grabbing op metadata
* pass `errors` into JsonSchema components
* Account for Immutable data structure in JavaScriptonSchema...
...and create empty Lists instead of Maps by default.
* Pass ImmutableList through to JsonSchema child components
* v3.9.3