Skip to content

14.0.0 - #152

Merged
esitarz merged 11 commits into
masterfrom
14.0.0
Oct 15, 2026
Merged

14.0.0#152
esitarz merged 11 commits into
masterfrom
14.0.0

Conversation

@esitarz

@esitarz esitarz commented Sep 28, 2026 •

Copy link
Copy Markdown
Contributor

Summary

This release is 14.0.0. Merging it to master publishes: the tag, GitHub release, and npm publish run because package.json changed. The changelog date is 2026-10-15. If this merges on a later day, update that date first.

It includes:

  • Move customRoles into requestOptions object #81 — customRoles is a property of the auth options object on Auth.Login, Auth.ElevatedLogin, Auth.ClientCredentials, and Auth.Anonymous. Custom roles with no standard roles are sent as the scope string.
  • Enhancement Idea - Reduce number of generic parameters in models #78 — A model's own xp stays the first type parameter. Each nested model is one parameter constrained to that model. Order<MyOrderXp> is unchanged. OrderWorksheet no longer takes 17 xp parameters.
  • Need to run build twice in order to generate docs links #93 — Docs "Defined in" links are written on a single build, and src/Configuration.ts matches the TypeScript filename casing.
  • Remove axios as a peer dependency #155 — Axios is no longer a dependency. Requests use fetch. requestOptions.cancelToken is now requestOptions.signal. axiosAdapter and axios interceptors are replaced by Configuration.Set({ fetch, onRequest, onResponse }).
  • npm trusted publishing in tag-and-publish.yml. Configure the trusted publisher on npm before merging, or the publish step fails after the tag is created.

#150, #151, #153, #154, and #156 are already in this branch. Close them when this merges. Do not merge them separately.

Test plan

  • Server tests pass
  • Browser tests pass
  • npx tsc -p tests/tsconfig.model-types.json passes
  • Confirm the npm trusted publisher matches tag-and-publish.yml before merge
  • Changelog date matches the merge day
  • package.json version is 14.0.0
  • After merge, tag 14.0.0 exists and npm shows 14.0.0

TypeDoc omits the GitHub "Defined in" link when the git path does
not match the TypeScript filename. src/configuration.ts was tracked
with different casing than Configuration.ts, so those links stayed
plain text. Match the casing, and fail the docs build if any source
line is still unlinked.

Closes #93
Callers that pass customRoles as its own argument must update, so
this stays unreleased until the next major. Custom roles alone are
sent as the scope string instead of the literal "undefined".

Refs #81
Hoisting every nested xp made OrderWorksheet take 17 parameters.
Own xp stays first. Each nested model is now one parameter
constrained to that model, so Order<MyOrderXp> still works.

Refs #78
# Conflicts:
#	CHANGELOG.md
#	MIGRATION_GUIDE.md
Write tokens expire in 90 days. OIDC removes NPM_TOKEN.
Node 24 ships the npm CLI that can exchange the OIDC token.
Exchange the GitHub OIDC token with npm on this branch only.
The publish job still runs on master alone.
Callers should not have to install axios to use the SDK. Requests now use fetch, cancellation uses AbortSignal, and hooks replace axios interceptors and adapters.
Ship the fetch transport in 14.0.0 with the auth options and model changes.
@esitarz
esitarz merged commit 67fc1c4 into master Oct 15, 2026
1 check passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

Move customRoles into requestOptions object Enhancement Idea - Reduce number of generic parameters in models

2 participants