Download Latest Version schema-dts _ schema-dts-gen v2.0.0 source code.tar.gz (935.0 kB)
Email in envelope

Get an email when there's a new version of Schema.DTS

Home / v2.0.0
Name Modified Size InfoDownloads / Week
Parent folder
README.md 2026-03-23 5.3 kB
schema-dts _ schema-dts-gen v2.0.0 source code.tar.gz 2026-03-23 935.0 kB
schema-dts _ schema-dts-gen v2.0.0 source code.zip 2026-03-23 1.0 MB
Totals: 3 Items   2.0 MB 0

Changes in schema-dts

  • Supports the latest Schema.org release from Schema.org v30 -- See https://schema.org/docs/releases.html#v30.0
  • Input and Output constraints are now supported, for example:

    ```ts import type {SearchAction, WebSite, WithActionConstraints} from 'schema-dts';

    const potentialAction: WithActionConstraints<SearchAction> = { '@type': 'SearchAction', 'query-input': 'required name=search_term_string', // ... };

    const website: WebSite = { '@type': 'WebSite', potentialAction: { '@type': 'SearchAction', 'query-input': 'required name=search_term_string', } as WithActionConstraints<SearchAction>, }; ```

  • Breaking change: Update typings for Roles so that they are not recursive, see [#205] for more details

  • Breaking change: Quantity is now a core DataType, this is a change done in schema.org v30.0 and will technically make certain formerly-legal (but likely invalid) assignments no longer work
  • "Leaf" types are now exported. While objects like Thing or Organization require a type union that includes the object itself, it can also include any of its children. Now, if you want type something as a Thing exactly, you can import ThingLeaf which can only be a Thing and does not allow sub-types.
  • Support MergeLeafTypes, which fixes a long-running user request (#179 [#189] [#203]), allowing a multi-typed schema object to be declared. Shout out to @mjy9088 and @cochinescu for the work to get this working. This allows declarations like this to be made:

    ```ts import type { MergeLeafTypes,ProductLeaf, SoftwareApplicationLeaf, WithContext } from 'schema-dts';

    const app: WithContext<MergeLeafTypes<[ProductLeaf, SoftwareApplicationLeaf]>> = { '@context': 'https://schema.org', '@type': ['Product', 'SoftwareApplication'], name: 'My App', offers: { '@type': 'Offer', price: 89, priceCurrency: 'USD', }, operatingSystem: 'Any', }; ```

    while #189 and #179 are not completely addressed since a random Thing cannot be a merged type, this allows some multi-type objects to exist, though they need to be explicitly declared as such by the developer.

  • Technically a breaking change: Some non-schema.org types exported in schema-dts are now renamed. These are included mostly for equivalence because the Schema.org ontology defines them, but most users should not depend on them. The names for these classes are now escaped fully-qualified IRIs instead of just the "in-context" name. This is needed because new types with the same "in-context" name have been added as external references, e.g. www.omg.org/spec/Commons/DatesAndTimes/Date which conflicts with schema.org/Date. Now, this is exported as www_omg_org_spec_Commons_DatesAndTimes_Date.

Changes in schema-dts-gen

  • Compatibility with Schema.org v30
  • Breaking change: schema.org/Quantity is now emitted as a DataType
  • Breaking change: out-of-context classes are now exported with an escaped fully-qualified IRI instead of just the hypothetical 'in-context' name. For example: www.omg.org/spec/Commons/DatesAndTimes/Date renders as Date if "@context": "www.omg.org/spec/Commons/DatesAndTimes/" only. Otherwise, it renders as namespace_Date if "@context" { "namespace": "www.omg.org/spec/Commons/DatesAndTimes/" }, and www_omg_org_spec_Commons_DatesAndTimes_Date if no context entry exists
  • Breaking change: the emitted output now depends on https://www.npmjs.com/package/schema-dts-lib -- the first two lines from the emitted output will include import type {...} from 'schema-dts-lib'; followed by export type { ... };.

What's Changed

New Contributors

Full Changelog: https://github.com/google/schema-dts/compare/v1.1.5...v2.0.0

Source: README.md, updated 2026-03-23