Skip to content

v1.38.0

Choose a tag to compare

@moekatib moekatib released this 19 Apr 23:12
· 56 commits to main since this release

What's new

  • Root-array response support for sync. Profiles can now set resultsPath to "" / "$" / "." when the API returns a bare array at the root (e.g. Hacker News /v0/topstories.json → [9129911, 9129199, ...]).
  • Primitive-array auto-wrapping. Arrays of numbers/strings/bools are wrapped as { [idField]: String(value) } so they flow through the existing schema-inference and upsert pipeline with no downstream special-casing.
  • Built-in profile: hacker-news/topStories — one sync init hacker-news topStories now works out of the box.
  • Clearer extraction errors. When resultsPath doesn't resolve to an array, the error now names the profile (platform/model), the path, and the actual top-level type of the response.

Profile validation no longer rejects an empty resultsPath (only undefined). Existing object-rooted profiles (Attio, Gmail, Fathom, Calendar, Notion, Stripe) are unchanged.

PR: #117