@farthershore/farthershore-js 0.8.7 → 0.10.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (241) hide show
  1. package/CHANGELOG.md +86 -1
  2. package/README.md +291 -232
  3. package/dist/bootstrap.d.ts.map +1 -1
  4. package/dist/bootstrap.js +5 -5
  5. package/dist/bootstrap.js.map +1 -1
  6. package/dist/client.d.ts +73 -68
  7. package/dist/client.d.ts.map +1 -1
  8. package/dist/client.js +30 -79
  9. package/dist/client.js.map +1 -1
  10. package/dist/components/app.d.ts +7 -6
  11. package/dist/components/app.d.ts.map +1 -1
  12. package/dist/components/app.js +22 -9
  13. package/dist/components/app.js.map +1 -1
  14. package/dist/components/auth.js +5 -5
  15. package/dist/components/auth.js.map +1 -1
  16. package/dist/components/bill-estimator.js +1 -1
  17. package/dist/components/bill-estimator.js.map +1 -1
  18. package/dist/components/billing.d.ts +9 -1
  19. package/dist/components/billing.d.ts.map +1 -1
  20. package/dist/components/billing.js +3 -3
  21. package/dist/components/billing.js.map +1 -1
  22. package/dist/components/cancel-subscription.js +2 -2
  23. package/dist/components/cancel-subscription.js.map +1 -1
  24. package/dist/components/capability-usage-card.js +2 -2
  25. package/dist/components/capability-usage-card.js.map +1 -1
  26. package/dist/components/chrome.d.ts +3 -2
  27. package/dist/components/chrome.d.ts.map +1 -1
  28. package/dist/components/chrome.js +8 -4
  29. package/dist/components/chrome.js.map +1 -1
  30. package/dist/components/credit.js +2 -2
  31. package/dist/components/credit.js.map +1 -1
  32. package/dist/components/docs-chrome/language-context.d.ts +4 -0
  33. package/dist/components/docs-chrome/language-context.d.ts.map +1 -1
  34. package/dist/components/docs-chrome/language-context.js +9 -1
  35. package/dist/components/docs-chrome/language-context.js.map +1 -1
  36. package/dist/components/docs-chrome/language.d.ts +18 -4
  37. package/dist/components/docs-chrome/language.d.ts.map +1 -1
  38. package/dist/components/docs-chrome/language.js +34 -11
  39. package/dist/components/docs-chrome/language.js.map +1 -1
  40. package/dist/components/docs.css +18 -7
  41. package/dist/components/index.d.ts +4 -4
  42. package/dist/components/index.d.ts.map +1 -1
  43. package/dist/components/index.js +8 -3
  44. package/dist/components/index.js.map +1 -1
  45. package/dist/components/keys.js +2 -2
  46. package/dist/components/keys.js.map +1 -1
  47. package/dist/components/limit-boundary.d.ts +1 -1
  48. package/dist/components/limit-boundary.d.ts.map +1 -1
  49. package/dist/components/limit-boundary.js +1 -1
  50. package/dist/components/limit-boundary.js.map +1 -1
  51. package/dist/components/limit-notice.js +1 -1
  52. package/dist/components/limit-notice.js.map +1 -1
  53. package/dist/components/monogram.d.ts +0 -1
  54. package/dist/components/monogram.d.ts.map +1 -1
  55. package/dist/components/monogram.js +1 -1
  56. package/dist/components/monogram.js.map +1 -1
  57. package/dist/components/onboarding-view.js +5 -5
  58. package/dist/components/onboarding-view.js.map +1 -1
  59. package/dist/components/org-switcher.js +1 -1
  60. package/dist/components/org-switcher.js.map +1 -1
  61. package/dist/components/plans-table.d.ts +11 -1
  62. package/dist/components/plans-table.d.ts.map +1 -1
  63. package/dist/components/plans-table.js +14 -5
  64. package/dist/components/plans-table.js.map +1 -1
  65. package/dist/components/product-docs/fetch-product-docs.js +1 -1
  66. package/dist/components/product-docs/fetch-product-docs.js.map +1 -1
  67. package/dist/components/product-docs/markdown.d.ts +14 -0
  68. package/dist/components/product-docs/markdown.d.ts.map +1 -1
  69. package/dist/components/product-docs/markdown.js +16 -0
  70. package/dist/components/product-docs/markdown.js.map +1 -1
  71. package/dist/components/product-docs/product-docs-customize.d.ts +4 -6
  72. package/dist/components/product-docs/product-docs-customize.d.ts.map +1 -1
  73. package/dist/components/product-docs/product-docs-customize.js +3 -5
  74. package/dist/components/product-docs/product-docs-customize.js.map +1 -1
  75. package/dist/components/product-docs/product-docs-mdx.d.ts +4 -3
  76. package/dist/components/product-docs/product-docs-mdx.d.ts.map +1 -1
  77. package/dist/components/product-docs/product-docs-mdx.js +97 -27
  78. package/dist/components/product-docs/product-docs-mdx.js.map +1 -1
  79. package/dist/components/product-docs/product-docs-shell.d.ts +1 -3
  80. package/dist/components/product-docs/product-docs-shell.d.ts.map +1 -1
  81. package/dist/components/product-docs/product-docs-shell.js +2 -9
  82. package/dist/components/product-docs/product-docs-shell.js.map +1 -1
  83. package/dist/components/product-docs/product-docs-view.d.ts +2 -3
  84. package/dist/components/product-docs/product-docs-view.d.ts.map +1 -1
  85. package/dist/components/product-docs/product-docs-view.js +5 -11
  86. package/dist/components/product-docs/product-docs-view.js.map +1 -1
  87. package/dist/components/product-docs/product-docs.d.ts +1 -2
  88. package/dist/components/product-docs/product-docs.d.ts.map +1 -1
  89. package/dist/components/product-docs/product-docs.js +2 -4
  90. package/dist/components/product-docs/product-docs.js.map +1 -1
  91. package/dist/components/resources-panel.js +3 -3
  92. package/dist/components/resources-panel.js.map +1 -1
  93. package/dist/components/root.d.ts +45 -8
  94. package/dist/components/root.d.ts.map +1 -1
  95. package/dist/components/root.js +54 -21
  96. package/dist/components/root.js.map +1 -1
  97. package/dist/components/spend-cap-control.js +2 -2
  98. package/dist/components/spend-cap-control.js.map +1 -1
  99. package/dist/components/styles.css +11 -5
  100. package/dist/components/team-panel.js +2 -2
  101. package/dist/components/team-panel.js.map +1 -1
  102. package/dist/components/theme.d.ts +6 -15
  103. package/dist/components/theme.d.ts.map +1 -1
  104. package/dist/components/theme.js +8 -88
  105. package/dist/components/theme.js.map +1 -1
  106. package/dist/components/top-up-prompt.d.ts +1 -1
  107. package/dist/components/top-up-prompt.d.ts.map +1 -1
  108. package/dist/components/upgrade-prompt.d.ts +1 -1
  109. package/dist/components/upgrade-prompt.d.ts.map +1 -1
  110. package/dist/components/upgrade-prompt.js +1 -1
  111. package/dist/components/upgrade-prompt.js.map +1 -1
  112. package/dist/components/usage.d.ts +5 -1
  113. package/dist/components/usage.d.ts.map +1 -1
  114. package/dist/components/usage.js +20 -4
  115. package/dist/components/usage.js.map +1 -1
  116. package/dist/config.d.ts +36 -7
  117. package/dist/config.d.ts.map +1 -1
  118. package/dist/config.js +45 -10
  119. package/dist/config.js.map +1 -1
  120. package/dist/deny-codes.js +2 -2
  121. package/dist/deny-codes.js.map +1 -1
  122. package/dist/{errors.d.ts → errors/index.d.ts} +36 -3
  123. package/dist/errors/index.d.ts.map +1 -0
  124. package/dist/{errors.js → errors/index.js} +51 -3
  125. package/dist/errors/index.js.map +1 -0
  126. package/dist/fetch.d.ts +62 -0
  127. package/dist/fetch.d.ts.map +1 -0
  128. package/dist/fetch.js +195 -0
  129. package/dist/fetch.js.map +1 -0
  130. package/dist/format/index.d.ts +2 -0
  131. package/dist/format/index.d.ts.map +1 -0
  132. package/dist/format/index.js +19 -0
  133. package/dist/format/index.js.map +1 -0
  134. package/dist/generated/version.d.ts +2 -2
  135. package/dist/generated/version.d.ts.map +1 -1
  136. package/dist/generated/version.js +2 -2
  137. package/dist/generated/version.js.map +1 -1
  138. package/dist/http.js +8 -8
  139. package/dist/http.js.map +1 -1
  140. package/dist/index.d.ts +19 -5
  141. package/dist/index.d.ts.map +1 -1
  142. package/dist/index.js +16 -14
  143. package/dist/index.js.map +1 -1
  144. package/dist/react/hooks.d.ts +1 -1
  145. package/dist/react/hooks.d.ts.map +1 -1
  146. package/dist/react/hooks.js +76 -69
  147. package/dist/react/hooks.js.map +1 -1
  148. package/dist/react/index.d.ts +7 -1
  149. package/dist/react/index.d.ts.map +1 -1
  150. package/dist/react/index.js +13 -1
  151. package/dist/react/index.js.map +1 -1
  152. package/dist/react/organization-context.js +1 -1
  153. package/dist/react/organization-context.js.map +1 -1
  154. package/dist/react/query-adapter.d.ts +63 -0
  155. package/dist/react/query-adapter.d.ts.map +1 -0
  156. package/dist/react/query-adapter.js +117 -0
  157. package/dist/react/query-adapter.js.map +1 -0
  158. package/dist/react/scope.d.ts +41 -0
  159. package/dist/react/scope.d.ts.map +1 -0
  160. package/dist/react/scope.js +35 -0
  161. package/dist/react/scope.js.map +1 -0
  162. package/dist/react/use-async.d.ts +30 -7
  163. package/dist/react/use-async.d.ts.map +1 -1
  164. package/dist/react/use-async.js +23 -10
  165. package/dist/react/use-async.js.map +1 -1
  166. package/dist/react/use-limit-status.d.ts +1 -1
  167. package/dist/react/use-limit-status.d.ts.map +1 -1
  168. package/dist/react/use-limits.d.ts +1 -1
  169. package/dist/react/use-limits.d.ts.map +1 -1
  170. package/dist/react/use-limits.js +2 -2
  171. package/dist/react/use-limits.js.map +1 -1
  172. package/dist/react/use-upgrade.d.ts +1 -1
  173. package/dist/react/use-upgrade.d.ts.map +1 -1
  174. package/dist/react/use-upgrade.js +1 -1
  175. package/dist/react/use-upgrade.js.map +1 -1
  176. package/dist/resources/_shared.d.ts +2 -2
  177. package/dist/resources/_shared.d.ts.map +1 -1
  178. package/dist/resources/_shared.js +7 -7
  179. package/dist/resources/_shared.js.map +1 -1
  180. package/dist/resources/account.js +17 -17
  181. package/dist/resources/account.js.map +1 -1
  182. package/dist/resources/api.js +1 -1
  183. package/dist/resources/api.js.map +1 -1
  184. package/dist/resources/auth.js +4 -4
  185. package/dist/resources/auth.js.map +1 -1
  186. package/dist/resources/billing.d.ts.map +1 -1
  187. package/dist/resources/billing.js +22 -21
  188. package/dist/resources/billing.js.map +1 -1
  189. package/dist/resources/entitlements.js +5 -5
  190. package/dist/resources/entitlements.js.map +1 -1
  191. package/dist/resources/keys.js +10 -10
  192. package/dist/resources/keys.js.map +1 -1
  193. package/dist/resources/plans.d.ts +1 -1
  194. package/dist/resources/plans.d.ts.map +1 -1
  195. package/dist/resources/plans.js +19 -7
  196. package/dist/resources/plans.js.map +1 -1
  197. package/dist/resources/resources.d.ts.map +1 -1
  198. package/dist/resources/resources.js +4 -4
  199. package/dist/resources/resources.js.map +1 -1
  200. package/dist/resources/usage.js +4 -4
  201. package/dist/resources/usage.js.map +1 -1
  202. package/dist/retry-throttle.d.ts +1 -1
  203. package/dist/retry-throttle.d.ts.map +1 -1
  204. package/dist/retry-throttle.js +1 -1
  205. package/dist/retry-throttle.js.map +1 -1
  206. package/dist/test-utils/error-builders.d.ts +29 -0
  207. package/dist/test-utils/error-builders.d.ts.map +1 -0
  208. package/dist/test-utils/error-builders.js +36 -0
  209. package/dist/test-utils/error-builders.js.map +1 -0
  210. package/dist/test-utils/index.d.ts +4 -0
  211. package/dist/test-utils/index.d.ts.map +1 -0
  212. package/dist/test-utils/index.js +15 -0
  213. package/dist/test-utils/index.js.map +1 -0
  214. package/dist/test-utils/mock-client.d.ts +37 -0
  215. package/dist/test-utils/mock-client.d.ts.map +1 -0
  216. package/dist/test-utils/mock-client.js +351 -0
  217. package/dist/test-utils/mock-client.js.map +1 -0
  218. package/dist/test-utils/test-provider.d.ts +25 -0
  219. package/dist/test-utils/test-provider.d.ts.map +1 -0
  220. package/dist/test-utils/test-provider.js +22 -0
  221. package/dist/test-utils/test-provider.js.map +1 -0
  222. package/dist/top-up.js +1 -1
  223. package/dist/top-up.js.map +1 -1
  224. package/dist/types.d.ts +9 -15
  225. package/dist/types.d.ts.map +1 -1
  226. package/dist/types.js.map +1 -1
  227. package/dist/use-fetch.d.ts +18 -0
  228. package/dist/use-fetch.d.ts.map +1 -0
  229. package/dist/use-fetch.js +51 -0
  230. package/dist/use-fetch.js.map +1 -0
  231. package/dist/variables-registry.d.ts +56 -0
  232. package/dist/variables-registry.d.ts.map +1 -0
  233. package/dist/variables-registry.js +172 -0
  234. package/dist/variables-registry.js.map +1 -0
  235. package/dist/vars.d.ts +9 -0
  236. package/dist/vars.d.ts.map +1 -0
  237. package/dist/vars.js +29 -0
  238. package/dist/vars.js.map +1 -0
  239. package/package.json +12 -2
  240. package/dist/errors.d.ts.map +0 -1
  241. package/dist/errors.js.map +0 -1
package/CHANGELOG.md CHANGED
@@ -3,7 +3,92 @@
3
3
  All notable changes to `@farthershore/farthershore-js` are documented here.
4
4
  This project adheres to Semantic Versioning (pre-1.0: minors may break).
5
5
 
6
- ## [Unreleased]
6
+ ## [0.10.0] - 2026-07-02
7
+
8
+ Frontend SDK ergonomics redesign — the headless client + hooks are now the
9
+ default surface and the styled portal is an opt-in layer.
10
+
11
+ ### Changed (BREAKING)
12
+
13
+ - **`productId` → `businessId`** across the public surface (config,
14
+ `ClientContext`, resources, hooks, params). No `productId` remains in the
15
+ public API.
16
+ - **Ecosystem hook shape:** every data hook returns
17
+ `{ data, error, isLoading, isError, isSuccess, refetch, queryKey }`. The bare
18
+ `loading` field and `refresh` alias are removed (use `isLoading` / `refetch`).
19
+ - **`/errors` subpath:** the full error taxonomy + parse/predicate helpers moved
20
+ to `@farthershore/farthershore-js/errors`. The root re-exports only
21
+ `FartherShoreError`, `FartherShoreApiError`, `LimitExceededError`,
22
+ `FartherShoreRateLimitedError`, and `FartherShoreConfigError`.
23
+ - **`format` namespace:** the catalog display/derivation helpers are grouped
24
+ under `format` (`import { format } from "@farthershore/farthershore-js"`);
25
+ they are no longer flat root exports.
26
+ - Removed the SSR/`createServerClient` surface (platform is browser-only).
27
+
28
+ ### Added
29
+
30
+ - **Zero-config client:** `createFartherShoreClient()` with no args on-platform
31
+ (lazy `window.__FS_CONFIG__`, `businessId` discovered from the portal host);
32
+ manual `{ coreUrl, portalHost, businessId, getToken }` is a documented
33
+ dev/test escape hatch.
34
+ - **`fs.fetch(url, opts)`** drop-in secure fetch with a client-side variable
35
+ registry + `PROVIDER_CATALOG` host inference.
36
+ - **`/react`:** prop-free `<FartherShoreProvider>`; `useReadScope()`;
37
+ `useFetch()`; a TanStack-Query / SWR adapter (`fsQueryOptions`,
38
+ `createFsFetcher`) with no runtime dependency on either library.
39
+ - **Composable components:** data components render under a bare
40
+ `<FartherShoreProvider>` (no forced `FartherShoreRoot`);
41
+ `PlansTable`/`UsageCard` gain `renderRow`, `BillingSummary` gains
42
+ `slots.actions`; themeable z-index via `--fs-*-z` CSS variables.
43
+ - **`FartherShoreRoot`** is now a composition of `FsBootGate` /
44
+ `FsAuthProvider` / `FsThemeProvider` with `skipAuth` / `skipTheme` /
45
+ `skipBootGate` flags.
46
+ - **`/test-utils` subpath:** `createMockFartherShoreClient`,
47
+ `<FartherShoreTestProvider>`, and typed error builders
48
+ (`mockLimitExceeded` / `mockRateLimited` / `mockApiError`).
49
+
50
+ ### Fixed
51
+
52
+ - `<OrgSwitcher>` read a non-existent `organizationName` field and showed raw
53
+ organization ids; it now reads the `name` field the platform actually sends.
54
+ - `fs.fetch` variable resolution no longer silently hands a lone host-less
55
+ variable to a call targeting a _different_ recognized provider host (e.g. a
56
+ sole `STRIPE_SECRET_KEY` against `api.openai.com`) — it throws
57
+ `FartherShoreConfigError` on that ambiguity, as documented.
58
+ - `sideEffects` now allowlists `*.css` (was `false`), so webpack-based
59
+ consumers no longer tree-shake away the `./components/styles.css` /
60
+ `./components/docs.css` side-effect imports in production builds.
61
+
62
+ ## [0.9.0] - 2026-06-29
63
+
64
+ ### Changed (BREAKING)
65
+
66
+ - Removed the no-code theming surface as part of the platform/repo branding
67
+ separation: `FsAppearance` is trimmed to `{ theme, brandColor, variables }`
68
+ (the `fontFamily`/`radius`/`density`/`colorScheme` dimensions and the
69
+ `FsFontFamily`/`FsRadius`/`FsDensity`/`FsColorScheme` types are gone), and
70
+ `BusinessAppearance` + `primaryColor` are dropped from the branding/bootstrap
71
+ types. Theme color is now the hardcoded base token `--fs-color-brand: #6366f1`;
72
+ fonts/radius/density are editable template CSS. Light/dark mode + the
73
+ `variables` escape hatch are unchanged.
74
+
75
+ ### Added
76
+
77
+ - `<CodeGroup>` component: a tabbed code block container for the docs surface.
78
+ - Open-languages docs boot: the SDK now accepts and forwards an
79
+ `openLanguages` hint to the docs primitives so the builder's configured
80
+ language tabs open on first load.
81
+ - `docsEnabled` boot bit: bootstrapped `Business` now carries a `docsEnabled`
82
+ flag; the docs surface renders only when this is `true`.
83
+
84
+ ## [0.8.7] - 2026-06-28
85
+
86
+ ### Fixed
87
+
88
+ - Best-effort authenticated reads (`/me/*` etc.) no longer trip the
89
+ `onUnauthorized` redirect on a transient 401: a `recoverAuth` transport flag
90
+ lets those reads fail soft instead of bouncing the portal through sign-in
91
+ (fixes the dev-portal `/docs` auth loop).
7
92
 
8
93
  ## [0.8.6] - 2026-06-28
9
94