- HAL/Siren forms that have method=GET no longer add a CSRF token or an enctype attribute.
- Add color for HTTP QUERY methods.
- Remove node-fetch dependency.
- Added a DOCTYPE so we're not in quircks mode.
- Added a bug related to loading image assets.
- Another JSON fail. Files are now explictly included and in the root directory.
- Fix weird Typescript / Node disagreement on whether JSON import assertions are required or forbidden
- Finally! Curveball v1. Only took 6 years.
- CommonJS support has been dropped. The previous version of this library supported both CommonJS and ESM. The effort of this no longer feels worth it. ESM is the future, so we're dropping CommonJS.
- Now requires Node 18.
- Upgraded to Typescript 5.3.
- Support for Typescript 5.
- Updated IANA links database.
- Fix: button imports were broken for ESM.
- form enhancer script was missing from build
- Update to latest IANA link relation file.
- Fix import errors in ESM distribution.
- Assets were not distributed in the npm package.
- This package now supports ESM and CommonJS modules.
- No longer supports Node 14. Please use Node 16 or higher.
- 12% more holiday spriit
- Forms/Actions now recognize a few more verbs in titles to give the submit button a better label.
- Show a default icon for
acl
links.
- #159: Added level3.rest link relationship descriptions (@mattbishop).
- #160: Update rels from the iana link relation registry.
- We're now guessing the label on submit button for HAL forms based on the verb used in the form title.
- Fix a bug in
html-form-enhancer.js
html-form-enhancer.js
was missing from the latest release, which caused some HAL forms to not work.
- If a response has a 'description' property, the browser now renders this paragraph near the top of the screen.
- #145: Form elements now have
id
attributes and<label>
s that point to them. (@ikbensiep) - #141: JSON-Schema comments were not rendered in nested objects in the JSON viewer. (@syedfkabi)
- #151:
datetime-local
fields weren't rendered correctly if they have a value. (@mhum) - Fixed a table layout issue.
- Update Ketting to support Typescript 4.8
- Re-release!
- Upgraded from
@curveball/core
to@curveball/kernel
. - Updated to the latest Ketting, which fixes a problem with rendering HAL checkboxes. (@syedfkabir).
- Now integrates with
@curveball/validator
. Ifdescribedby
links is specified, and it contains a reference to a JSON schema known by the validator plugin, it will parse the json schema and extract property descriptions. - Dropped Node 12 support
- Known IANA link relationships now have a tooltip with a definition. When the rels are clicked, you are now taken to a related (IETF or other) standard page.
- Cosmetic improvements in the CSV table output.
- Add a missing key= atribute, which should reduce noisy warnings.
- Another CSS defect.
- Fixed a small css bug.
Brand new JSON viewer!
- Supports collapsing/expanding part of the tree
- Automatically generate hyperlinks for strings that are likely links.
- Shows the original JSON, including
_links
and_embedded
, but these are collapsed by default. This should aid in debugging. - No longer showing double-quotes around JSON property names, but they magically re-appear when copy pasting.
- Don't show halloween theme on Feb 1st.
- Add a curveball logo with outline
- Add a curveball logo including the wordmark
- Add a flag allowing users to see 'all links'. Normally links such as
self
are hidden in links tables, using the newallLinks
flag every link will always appear in responses.
- Upgrade html-form-enhancer package, which fixes a bug related to the
action
attribute being sometimes ignored.
- If a server returns a
201 Created
status and no body, the browser will now generate a default body so users don't see a white page. - Holiday themes now auto-activate, and don't require a server restart. This also means they wont keep lingering after the holiday.
- Fixed a CSS bug in the Halloween theme around the 'pagers'.
- #110: Added a halloween theme, which automatically activates the week preceding halloween.
- #109: Hightlight.js fixed their types, so the workaround is removed.
- #108: Browser now supports a few more formats for templated URIs and automaticalling turning them into forms. It also fails more gracefully with invalid forms.
- Compatible with
esModuleInterop: false
.
- Workaround for broken Highlight.js
- Fix formatting of
datetime-local
value attribute.
- Fix warning when stylesheets aren't specified.
- Run the 'normalizeOptions' script only once: when initializing the middleware.
- Load custom stylesheets after theme sheets.
- Small BC break: setting custom stylesheets no longer removes the 'theme'
stylesheets. To remove the default theme, set
null
for theme.
- Upgrade to Ketting 7 for parsing hypermedia bodies.
- Support the HTTP
Title
header as a last resort to determine a page title.
- Fix content-negotiation/alternate links on the root of the API.
- Fix another React warning.
- Allow HTML tags in markdown.
- Fix highlight.js depreciation warning.
- Tweaks to design of form submission buttons.
- 'Forms' renamed to 'Actions'.
- If a form has no fields (or only hidden fields), the form will get rendered as a single button.
- Fix the icon for the
edit-form
link.
- Last release did not include updated html-form-enhancer files.
- Update 'html-form-enhancer' package, which has a few bug fixes.
- Include form enhancher .map files in build, for easier debugging.
- Build process tweaks to ensure that vendored .js files get included in
assets
directory.
- Fix
<select>
rendering bug.
- Render select boxes, groups of radios, groups of checkboxes.
- Forgot to include .js files in npm package.
- If no title can be detected, but there is exactly 1 action/form in a resource, use the title from the form.
- Don't render 'Contents' section if there are no properties.
- Prevent HAL forms from sometimes being rendered twice.
- Now published on Github packages.
application/json
is now supported in forms, using a small helper library.- Methods other than
POST
andGET
are supported in forms, using the very same library. - Happy Birthday Mom!
- CSRF tokens will now be added to forms if the
@curveball/session
middleware is loaded.
- Include
src/
in NPN package, for better debugging.
- Fix bug in rendering schema+json.
- This middleware will now intercept and render
application/schema+json
.
- Correctly render Siren 'title' fields.
- Better rendering of checkboxes and radio in forms
- Actually hiding 'hidden' fields.
- Removed 3 react warnings.
- Update to latest Ketting 7, which fixes a bug related to rendering forms.
- Upgrade to Ketting 7 beta, which has a lot of HAL Forms improvements and adds
a
<textarea>
feature.
- Add christmas theme. If not theme is specified, it will automatically enable the last 2 weeks of the year.
- Cache assets for 1 hour.
- The browser will now show colored labels for common HTTP methods if they appear as 'link hints'.
- If no title is given, browser uses the path as the title. The browser no removes the query parameters, as it gets unwieldy.
- Use
@curveball/static
for serving static assets, which should give better performance. - Fixing a few more React key warnings.
- Now parsing and formatting Siren resources!
- Fixed some layout issues related to forms.
- Remove debug statements.
- The browser plugin will now render Siren and HAL-FORMS forms for you. This will only work great if you use methods and content-types browsers natively support, but support for JSON and other methods are planned.
- Fix a React warning.
- This package is renamed from
hal-browser
to@curveball/browser
. - Lots of visual design tweaks
- Fixed link header area.
- Alpha release.
- New default theme: 'curveball'.
- All HTML rendering is now handled with React server-side rendering.
- Added a favicon.
- Alpha release.
- Using Ketting for all format parsing, which means it will be easier in the future to add support for Siren, Collection+JSON, JSON:API and other formats.
- Switch to ESlint.
- Allow installation on Curveball 0.10.
- Fix spelling of
ellipsis
.
- Small design fix in Search field.
- A few subtle design adjustments.
@curveball/core
is now a peerDependency for smoother upgrades.
- Support URI templates in the format
{?q1,q2}
.
- Pager buttons had incorrect text color in new theme.
- New theme! Thank you @sieplfo
- Small design tweak: Some navigation elements now appear on the right.
- Update to Curveball 0.9 API.
- Default icons for the following rels:
authenticate
,authenticated-as
,register-user
,logout
from draft-pot-authentication-link.
- Now showing links as 'Deprecated' or 'Gone' if they are marked as such using draft-nottingham-link-hint.
- Fixed bug:
Content-Disposition
was checked in the Request headers, not the response headers.
- #41: Don't touch responses with
Content-Disposition: attachment
. The intent of that header is to allow people to create downloads for users, so it's unlikely they want the response re-skinned as HTML. - Updated dependencies.
- Stricted typescript settings.
- Automatically render HTML forms for templated links, where possible.
- Rendering arrays in
_embedded
was broken.
- Fully rendered
_embedded
objects. - Correctly inject
?_browser-accept
if query string was already set. - Showing
up
link label by default.
- Some clients default to sending
Accept: */*
. For those clients we want to not automatically convert totext/html
. This fixes the default output for Curl and Fetch.
- It's now possible to get alternative representations in a browser with the
?_browser-accept
query parameter. - Links with the
alternate
rel that are local, automatically get the?_browser-accept
parameter added, so a single resource can now have multiple representations on the same url. - Now using a new package for parsing HTTP Link urls. The old one didn't
support multiple links with the same
rel
.
- Default button for
describedby
link. It now assumes it's a JSON-Schema, although time will tell if this is correct. - Updated dependencies
- Hidden feature: show full JSON bodies if
?_browser-fullbody
is in the url.
- Don't throw errors on empty bodies.
- Catching a wider net of versions for dependencies.
- Pull
type
parameter from HTTP Link header as well.
- Made a few style tweaks.
- Made markdown code snippets look better.
- Fixed icon for
collection
link.
- #21: Understand and render
_embedded
. - #7: Parsing HTTP Link header.
- #27: Up and Collection links have a default button.
- #14: Render some buttons for "alternate" links.
- Don't turn templated HAL links into real HTML links.
- CSV layout improvements.
- Don't break when the response body is
null
. - Support
string
orBuffer
for json responses.
- Support for
text/markdown
- Support for
text/csv
- Added default
code-repository
link to navigation.
- Going with a Material design, and new color scheme.
- New syntax highlighting css sheet (
idea.css
). - Previous/next links are now in the bottom.
- It's possible to turn on button labels.
- It's possible to determine the button label order.
- Added a search field, if a
search
link exists that's templated and has a single templated query parameter. - Filtering out templated links from navigations.
- Another mime-type tweak. Apprarently this problem only appears in some environments. Sorry for the noise.
- Fixed again: css files still didn't have the right Content-Type.
- Fixed: assets were not getting the right Content-Type
- Automatically generate navigation icons.
- Hide uninteresting links.
- Automatically detect title of resource.
- Colorscheme refresh. Still not great. #notadesigner
- Lots of tiny tweaks and bugfixes.
- Serve
.svg
and.css
files out of the box.
- Added styles to package.
- Bit more docs.
- First version