Repository navigation
Releases: FastPix/fastpix-node
Release list
v2.1.0
Version - [2.1.0]
Breaking
- Media
durationis now a float (seconds) instead of an"HH:MM:SS"string,
matching the updated API. Affects the media response models returned by
media.list,manageVideos.get,media.getClips,liveStreams.listClips,
manageVideos.update,media.updateSourceAccess,manageVideos.updateMp4Support,
and themediaListitems in every playlist response.
Added
enableRecordingon live stream creation (inputMediaSettings); when omitted
the API default (recording on) applies.accessRestrictions(domain and user-agent allow/deny policies) on live playback
ID create/get and live streamplaybackSettings.livePlayback.updateDomainRestrictionsfor
PATCH /live/streams/{streamId}/playback-ids/{playbackId}/domains.livePlayback.updateUserAgentRestrictionsfor
PATCH /live/streams/{streamId}/playback-ids/{playbackId}/user-agents.
Fixed
- Live validation harness now captures raw responses from the dev API host,
not only the.com/.iohosts.
Tests & tooling
- Added an offline model-contract test suite (vitest, no credentials): media
duration,enableRecording, andaccessRestrictionsserialization, and
mocked-transport tests for the two new restriction endpoints. - Added a full API-surface smoke test asserting every resource method exists.
- Added a return-type contract test asserting each resource method's declared
return type matches the envelope class it deserializes. - Added an async error-path test asserting 4XX/5XX reject with the typed error.
v2.0.11
Version - [2.0.11]
Fixed
-
License metadata now matches the LICENSE file.
2.0.10shipped the
Apache 2.0LICENSEfile but still declared"license": "MIT"in
package.json, so the npm registry listed the package as MIT while the
published tarball carried Apache. The manifest now declares the SPDX
identifierApache-2.0.No code, API surface or runtime behaviour changed in this release.
Changed
- The SDK is licensed under Apache License 2.0 as of
2.0.10.
Releases up to and including2.0.9were published under the MIT License and
remain MIT. That grant is unaffected and is not being withdrawn. If you
determine the license from registry metadata rather than the file, use
2.0.11or later.
v2.0.10
v2.0.9
Version - [2.0.9]
Changed
-
BREAKING:
mp4Supporton media responses is now an array of renditions.
The API previously returned a single string ("capped_4k") and now returns one
object per generated rendition, each with its own status and dimensions.// before if (media.mp4Support === "capped_4k") { /* ... */ } // after const mp4 = media.mp4Support?.find((r) => r.type === "capped_4k"); if (mp4?.status === "ready") { /* ... */ }
Affected types:
Media,GetMediaResponse,GetAllMediaResponse,
UpdateMedia,SourceAccessMedia,LiveMediaClips.The
*Mp4Supportnames are reused, but they now describe one rendition
object (type,status,height,width,ext) rather than the old
string enum, and the field holds an array of them.heightandwidthare
absent onaudioOnlyrenditions. Code that imported e.g.MediaMp4Support
as an enum will still resolve the name but no longer type-check.type,statusandextare typed as open enums —
*Mp4SupportType(capped_4k/audioOnly),*Mp4SupportStatus
(preparing/ready/failed) and*Mp4SupportExt(mp4/m4a).
Being open, they narrow for autocomplete while still accepting values the
API may add later, which surface asUnrecognized<string>.The request side is unchanged — enabling MP4 support still takes a single
string (none/capped_4k/audioOnly/audioOnly,capped_4k) via
updateMp4Supportand the upload settings. -
BREAKING: removed the response-side
mp4Supportenums.MediaMp4Support,
GetMediaResponseMp4SupportandGetAllMediaResponseMp4Supportdescribed the
old string response and no longer matched anything the API returns. The
request-side enums (CreateMediaRequestMp4Support,
DirectUploadVideoMediaMp4Support,UpdatedMp4SupportMp4Support) are
unaffected.
Added
mp4SupportonUpdateMedia,SourceAccessMediaandLiveMediaClips,
which previously omitted the field entirely.
v2.0.8
Version - [2.0.8]
Fixed
- Response validation no longer fails under zod ≥ 4.4.0.
zod4.4.0changed object parsing so that a missing optional key whose value
schema is aunioncontainingundefinedwas treated as required
(expected: "nonoptional"). Because the SDK declared zod loosely
(^4.0.0), fresh installs pulled4.4.xand threw
ResponseValidationErroron valid HTTP 200 responses that omitted optional
fields (e.g.summary,chapters,namedEntities,moderationon media
responses when those AI features are not enabled).- Root-cause fix: the internal
optional()helper now wraps fields in
z.optional(...), so optional keys are treated as optional on every zod
version (verified on 4.3.6 and 4.4.3). - Defense in depth: the
zoddependency range is capped to
^3.25.65 || >=4.0.0 <4.4.0so installs resolve to a known-good version
automatically.
- Root-cause fix: the internal
- Webhook signing secret no longer logged. Removed two debug
console.log
statements insrc/sdk/webhooks.tsthat printed the signing secret and raw
payload. - Webhook module type resolution. Added a
node:types reference so
node:crypto/node:bufferimports resolve in editors/type-checks.
Changed
- Dependency cleanup. Removed the bogus
cryptonpm package (the deprecated
registry stub —node:cryptois built in), removed the accidental
self-dependency on@fastpix/fastpix-node, and moveddotenvto
devDependencies. The published package now declares onlyzodas a runtime
dependency. - SDK version bump:
2.0.7→2.0.8(sdkVersionconstant and
User-Agentheader updated accordingly).
Compatibility
- No changes to public types, method signatures, request/response models,
default server URLs, hooks, or retry logic. No action required beyond updating
the dependency.
v2.0.7
Version - [2.0.7]
Changed
-
SDK version bump:
2.0.6→2.0.7.
A maintenance release that updates the SDK's internal version identifiers.
It contains no functional, API, or behavioral changes and is fully
backward compatible with2.0.6.Updated identifiers:
sdkVersionconstant — now reports2.0.7(the internal identifiers were
previously lagging at2.0.5; they are now aligned with the package version).User-Agentheader — outbound requests now identify as
fastpix-sdk/typescript 2.0.7.
Compatibility
- No changes to public types, method signatures, request/response models,
default server URLs, hooks, or retry logic. - No action required for existing integrations — update the dependency and
rebuild.
V2.0.6
Version - [2.0.6]
⚠️ Important — FastPix is migrating from .io to .com
All FastPix hosts and documentation links are moving to the .com TLD:
Old (.io) |
New (.com) |
|---|---|
api.fastpix.io |
api.fastpix.com |
stream.fastpix.io |
stream.fastpix.com |
images.fastpix.io |
images.fastpix.com |
dashboard.fastpix.io |
dashboard.fastpix.com |
www.fastpix.io |
www.fastpix.com |
docs.fastpix.io/... |
fastpix.com/docs/... |
The .io hosts continue to serve traffic during the transition, but they are slated for deprecation soon — please update any hard-coded references in your application as part of your next deploy. We strongly recommend upgrading to this SDK release (or later) across every language you use — every official FastPix SDK is being rolled out with the same migration.
What this means for users of @fastpix/fastpix-node:
- If you rely on SDK defaults, no code change is required. The default
serverURLishttps://api.fastpix.com/v1/, so bumping to2.0.6and runningnpm installis enough. - If you have an explicit
serverURLoverride (e.g.new Fastpix({ serverURL: "https://api.fastpix.io/v1/" })), change it tohttps://api.fastpix.com/v1/. - If you reference FastPix asset URLs directly in your app (HLS playback URLs, image CDN, dashboard deep links), update those to the
.comequivalents before.iois decommissioned.
All README and per-SDK doc links in this package have been updated to point at the new https://fastpix.com/docs/... URLs.
Fixed (SDK ↔ API parity)
views.list(/data/viewlist): added the previously-missingerrorIdfield on each view entry, and stopped renamingQoeScoretoqoeScoreso the SDK output matches the API response byte-for-byte.views.getDetails:data.fpSdk/data.fpSdkVersionare no longer renamed tofpSDK/fpSDKVersion— the SDK now preserves the wire-format casing returned by the API.media.list(/on-demand): tracks now includeframeRate, which was being silently dropped by the previous SDK build.playback.create(/on-demand/{mediaId}/playback-ids): responsedata.resolutionis now correctly modelled as nullable — it isnullwhen no resolution constraint was set at create time.signingKeys.delete: response shape now includes the optionaldata.messageconfirmation string the API has been returning.- OpenAPI
tracks[].typefield forVideoTrack/VideoTrackForGetAll/AudioTrack/SubtitleTrackis now a properenum(video/audio/subtitle) so language generators can discriminate the union correctly. - OpenAPI
maxDuration.minimumon live-stream schemas relaxed from60to0to reflect the API's "unbounded" sentinel value.
Docs
- All README and per-service documentation pages updated from
docs.fastpix.io/...anddocs.fastpix.com/...to the newhttps://fastpix.com/docs/...URL structure.
v2.0.5
Version - [2.0.5]
Fixed
- Fixed
views.getDetailsdata.events[]returning empty objects and emitting phantomnulltimestamps.
v2.0.4
##Version - [2.0.4]
Fixed
- Fixed missing parameters in multiple API methods.
- Improved overall developer experience through more accurate typings.
v2.0.3
Version - [2.0.3]
Changed
- Updated npm authentication from Classic token to Granular token for improved security and fine-grained permissions.