This normally would not be a major upgrade, but we make it a major upgrade because of the upgrade of joi
to 17.13.3
from 17.13.1
, and we know that that contains a breaking change.
- upgrade dependencies
- switch from standard (no longer evolves) to neostandard
- add more eslint checks, fix some issues
- add
validateAndStripUnknowns
to work around breaking changes in version17.13.2
- upgrade
joi
to17.13.3
- now tested on Node 20, 22, and 23, and no longer on Node 18 (Node 22 becomes LTS next week)
- Remove regex constraint from
AccountId
(used by theCreatedBy
property on theAudited
schema)
- Downgrade dependency
joi
to17.13.1
to avoid breaking changes in version17.13.2
.
- Fix high vulnerabilities
- Upgrade dependencies
- add
ConstrainedMonetaryValue
resource schema
- upgrade dependencies
- upgrade to
[email protected]
- add
@ppwcode/mocha-ssst
- moved repository from
https://bitbucket.org/peopleware/openapi
tohttps://bitbucket.org/peopleware/openapi
due to licensing change at Bitbucket - upgrade dependencies
- add
_util/assert
- removed dependency on
node:assert
, which gave difficulties in browsers since Angular 17
joi-to-json
is limited to version 3.1.2
for now, due to #49. A
fix exists in 4.2.0
(“Adds 'open-api-3.1' format support.”), but introduces other errors. This needs some diagnosis
and work.
@redocly/cli
is fixed to 1.0.0-beta.128
, and should be upgrade asap, but is not in this release. A new install
upgraded to @redocly/cli 1.8.1 automatically, which has some issues. It reports errors that take some work to
investigate and fix, and currently another release is more pressing.
- add
.d.ts
for all string Joi schemata - add d.ts for
shouldBeSeriousSchema
shouldBeSeriousSchema
now also rejects when schema has duplicate examples (BREAKING)- deprecate TS types
TrimmedString
,CleanedString
, andLanguage
; replace withT…
variant - add
Decimal
- add function to constrain
Decimal
- add YAML files for all
string
types - add
CreatedInError
resource schema - add
MonetaryValue2
as extendedDecimal
and deprecateMonetaryValue
- add function to constrain
MonetaryValue2
- add
time/Month
time/Quarter
time/Year
- add better TS typing for
extendDescription
- add npm
version
script, that automatically changes the version inindex.yaml
, so it stays in sync with the npm version
- add
.d.ts
for DayDateInterval - add TS types
TDateTime
andTDayDate
, and tweak the TS type of its schemata- deprecate TS types
DateTime
andDayDate
- deprecate TS types
Declaring TS types in .d.ts
files with the same name as the Joi schema for the type should work, but seems to confuse
the IDE when working in JS. For that reason, in the future, we will prepend a 'T'
to the name of the type. Ugly, I
know. Waiting for better solutions.
- add
money/NegativeMonetaryValue
money/NonPositiveMonetaryValue
money/NonNegativeMonetaryValue
money/PositiveMonetaryValue
- fix
monetaryValueExamples
type
- add
money/CurrencyCode
andmoney/MonetaryValue
- this includes a first experiment with consistent TS typing
money/MoneyAmount.yaml
is now deprecatedaddExamples
typing is tweaked- add filter
notInteger
- add
simulation
mode
MixedSearchResults
is now exported
- tweak text and spec of
SearchDocument2.embedded
- fix bug in
SearchDocument2
- removed top level
href
property fromSearchDocument2
, since it is implicit
- replace description of search, relationships in search (rename file to
search-and-to-many-associations.md
)
- add description of Canonical and fully qualified URI
- add first text about determining build number
SearchDocument
is deprecated; start switching toSearchDocument2
searchResults/Results
now also allowsSearchResultBase2
elements- add
extendDescription
utility function - add
filters
utility functions (for tests)
- minor changes in some examples and descriptions
- move
browser-safe.js
to_util
folder - rename
browser-safe.js
togetDescription.js
- really include
md
files in package files
Breaking. Do not use.
- also include
md
files in package files
Breaking. Do not use.
- also include
yaml
files in package files
Breaking. Do not use.
- include all required files in package files
Breaking. Do not use.
- include
browser-safe.js
script in package files
- add
extendDescription
utility function - add
getDescription
utility function - avoid use of
describe()
in browser since it is not supported here
This version is breaking, and should not be used. A later version will add this functionality with corrections in a backward compatible way.
- Updated search document to structureVersion 2, including properties href, toOneAssociations and embedded
This was never released, and contains only documentation changes.
- Searchdocument DTO should have version 2 because the structure is incompatible
- Embed in Searchdocument is renamed to embedded to be uniform with SearchIndexDocument
- minor tweaks
- renamed
id/sigedis/SigedisRegulationIdentification
toSigedisRegistrantRegulationIdentification
- fix regexp syntax for OpenAPI in
CleanedString
(and simplify the pattern, and make the description complete)
- add description of relationships in a search index
- add description of immutable data
- stricter regex on cleaned string
- add cleaned string concept
- tweak SigedisRegulationIdentification description
3.1.0
introduced a stronger validation for INSS
. This was a breaking change, which was labeled minor in error.
This release labels 3.1.0
as 4.0.0
.
This was a breaking change, which was labeled minor in error. Do not use this version. Use 3.0.4
or 4.0.0
instead.
- add custom validation to
INSS
that verifies the last 2 check digits in the INSS
- add
'.'
before'?at=…'
inHistoryVersion.href
examples
This makes sure it is a correct relative URI.
- switch base development version to Node 18 (LTS)
- fix CRN validation
- make it implicit in documentation that strings must be trimmed, and are not empty
- CRN validation is now more restrictive
- update dependencies
- fix JWKS definition
- change the property names of DayDateInterval from
from
anduntil
tostart
andend
, to be more compatible and avoid friction with existing libraries in different languages
- correct
SearchDocument
: fuzzy search only searches in values given infuzzy
- add to description of paging HateOAS and other preload or prefetch links
- add
SearchResults
schema and OpenAPI model, and/search
demonstration
-
SearchDocumentBase
is deprecated. It is replaced by:-
SearchDocument
, which- contains array properties for
fuzzy
andexact
match at the top level, and - data to be sent to the ui for visualization and navigation in the nested property
content
, of type
- contains array properties for
-
SearchResultBase
, which always contains ahref
anddiscriminator
, and is extended per type with all data that can be used for visualization.
SearchResultBase
is the oldSearchDocumentBase
, under a new name. It is now wrapped inSearchDocument
. -
-
Change the default value of
per_page
query parameter to 50
- fix:
flowId
,mode
,id
properties should not have been added toSearchDocumentBase
mode
and flowId
appear in the request and response headers. id
can be derived (with the algorithm described).
- add examples to SearchDocumentBase properties, to make Redoc happy
- specify that health
Status
values are strings - add security to examples and demonstration
- add
flowId
,mode
,id
properties to searchDocumentBase - rename searchDocumentBase
type
property todiscriminator
- add Sigedis identification schemata
- add
.meta({ readOnly: true })
to readOnly properties directly, not only in alterations
- add
.meta({readOnly: true})
toreadOnlyAlteration
This is aimed at use with joi-to-json. Properties annotated as such turn up
as readOnly
in the OpenAPI spec.
- fix broken patterns in YAMLs and Joi schema for
AccountId
andRAX
- fix: 1.16 did not export modeExamples by mistake
- now also several mode regexp patterns are exported
migration-YYYY-MM-DDTHH:MM:SS
is now also allowed as mode
Is the same as 1.14, and was published in error.
- add required
type
toSearchDocumentBase
s
This will result in a non-compatible change in the projects that use this. (For this package however, the change is compatible).
- fix
ToOneFromχ.yaml
- tweak
SearchDocumentBase
schema - add
SearchDocumentBase
model
- fix History item
href
example
- fix DateTime schema (it truncated precision, and it should not do that)
- add description and alteration to
HREFHistory
- add
persistenceId
path parameter spec - add
label
path parameter spec - add
CommonResponseHeaders
spec, with specializations forPUT
,POST 201
, andGET
with several cache variations - add reusable model for a
href
property with a reference to a/history
, and, optionally, a/searchDocument
- add reusable definition of a relative URI data type, and a version with a description of a χ (spec and schemata) to-one reference
- add schema for
DayDateInterval
- fix plain wrongness of OAuth2
401
and403
reponse decriptions- the body we decribed was a representation of an old accidental realization, not something important
- the
www-authenticate
header was replaced byx-www-authenticate
, because of support issue with AWS API Gateway; this is reverted - the description of the
www-authenticate
header now clearly describes our intentions, and reasons
- CRN
- add schema for
CRN
- add reusable definition of
CRN
as path parameter
- add schema for
time/DateTime
now allows a higher-then-ms precision- stuff now also contains untrimmed strings, and a string with only spaces
- resource history:
- validate in schema that history versions in a history must be sorted
- add common OpenAPI YAML for history schemata, and add demonstration of use
- update the regex pattern for INSS number: should be exactly 11 digits
- fine-tune
400
,401
, and403
response descriptions in the context of a missing or invalidx-mode
- tweak
CommonResponseHeaders
schema
The change to CommonResponseHeaders
is backward compatible but users should be aware that we are no longer checking
for cache-control
in the schema. cache-control
requirements might be too diverse to handle with alterations (this
might be added back later).
- Made clear in documentation that we will never return a faulty value. This is of particular importance for
x-mode
, which might be invalid in a400
,401
, or403
response. In those cases, nox-mode
header will be returned. - add missing required annotation to all response headers, except for
x-mode
for the reason described above - add missing response headers to list example
- add
CacheControlPrivateImmutable
response header schema - add constants for cache control
no-store
and private immutable - add OpenAPI and Joi schemata for
location
response header
- add accept header schema
- fix test coverage
- add constants and
consolidate
functionality tohealth/Status
- add validateSchema to
util
- fix typo in
health/Status.js
allowed statuses
- add missing
x-date
to 412 response
- add missing
vary
in mode-dependent responses - fix and tweak some descriptions
- add 2 missing cache-controls in demonstration
- removed cache control header requirement from 400 response (this does not make sense)
- fix an issue in
shouldBeSeriousSchema
- correct typo's and misleading examples
- add Joi schemata for
Prefix
,RAX
, andRAA2
The validation in the RAX
schema is limited at this time, but may become stricter in future versions.
- add schema for common response headers
- Add
400
response for reuse, and demonstrate in all resources explicitly. Previously this was considered implicit. - Specify behavior when required
x-flow-id
orx-mode
headers are missing or malformed, especially in the case if authNZ issues (authNZ takes precedence)
- add Joi schemata for Mode, UUID, CacheControlNoCache
- add Joi schemata for health
- we now use much more strict OpenAPI linting rules, after a redocly
update
- added examples
- fixed some regular expressions
- some rules are ignored, because we believe they are wrong (until now — these rules are young); see
.redocly.yaml
- some reported errors are ignored (see
.redocly.lint-ignore.yaml
)- because they occur in exceptional places where they do not apply
- because we believe the reporting is wrong (or, in other words, we can't find the error; please fix if you do)
- add Joi schemata for some data structures
- tweak raa/2 claim
- upgrade common scripts
- bulk additions
- first stable release