@farthershore/farthershore-js 0.24.0 → 0.26.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 (263) hide show
  1. package/CHANGELOG.md +166 -0
  2. package/README.md +15 -9
  3. package/dist/bootstrap.d.ts +1 -2
  4. package/dist/bootstrap.d.ts.map +1 -1
  5. package/dist/bootstrap.js +20 -30
  6. package/dist/bootstrap.js.map +1 -1
  7. package/dist/cache.d.ts +1 -1
  8. package/dist/cache.js +1 -1
  9. package/dist/client.d.ts +4 -3
  10. package/dist/client.d.ts.map +1 -1
  11. package/dist/client.js +3 -1
  12. package/dist/client.js.map +1 -1
  13. package/dist/component-policy.d.ts +82 -0
  14. package/dist/component-policy.d.ts.map +1 -0
  15. package/dist/component-policy.js +210 -0
  16. package/dist/component-policy.js.map +1 -0
  17. package/dist/components/access-control.d.ts.map +1 -1
  18. package/dist/components/access-control.js +1 -1
  19. package/dist/components/access-control.js.map +1 -1
  20. package/dist/components/access-denied.js +1 -1
  21. package/dist/components/access-denied.js.map +1 -1
  22. package/dist/components/app.d.ts.map +1 -1
  23. package/dist/components/app.js +1 -2
  24. package/dist/components/app.js.map +1 -1
  25. package/dist/components/audit-log-table.d.ts.map +1 -1
  26. package/dist/components/audit-log-table.js +4 -1
  27. package/dist/components/audit-log-table.js.map +1 -1
  28. package/dist/components/auth.d.ts +3 -1
  29. package/dist/components/auth.d.ts.map +1 -1
  30. package/dist/components/auth.js +55 -12
  31. package/dist/components/auth.js.map +1 -1
  32. package/dist/components/bill-preview-card.d.ts +14 -0
  33. package/dist/components/bill-preview-card.d.ts.map +1 -0
  34. package/dist/components/bill-preview-card.js +45 -0
  35. package/dist/components/bill-preview-card.js.map +1 -0
  36. package/dist/components/billing.d.ts.map +1 -1
  37. package/dist/components/billing.js +5 -2
  38. package/dist/components/billing.js.map +1 -1
  39. package/dist/components/chrome.d.ts.map +1 -1
  40. package/dist/components/chrome.js +8 -2
  41. package/dist/components/chrome.js.map +1 -1
  42. package/dist/components/component-access-panel.d.ts +17 -0
  43. package/dist/components/component-access-panel.d.ts.map +1 -0
  44. package/dist/components/component-access-panel.js +155 -0
  45. package/dist/components/component-access-panel.js.map +1 -0
  46. package/dist/components/docs-chrome/collections-context.d.ts +52 -0
  47. package/dist/components/docs-chrome/collections-context.d.ts.map +1 -0
  48. package/dist/components/docs-chrome/collections-context.js +72 -0
  49. package/dist/components/docs-chrome/collections-context.js.map +1 -0
  50. package/dist/components/docs-chrome/collections.d.ts +33 -0
  51. package/dist/components/docs-chrome/collections.d.ts.map +1 -0
  52. package/dist/components/docs-chrome/collections.js +38 -0
  53. package/dist/components/docs-chrome/collections.js.map +1 -0
  54. package/dist/components/docs-chrome/index.d.ts +4 -0
  55. package/dist/components/docs-chrome/index.d.ts.map +1 -1
  56. package/dist/components/docs-chrome/index.js +4 -0
  57. package/dist/components/docs-chrome/index.js.map +1 -1
  58. package/dist/components/docs.d.ts +1 -3
  59. package/dist/components/docs.d.ts.map +1 -1
  60. package/dist/components/docs.js +10 -17
  61. package/dist/components/docs.js.map +1 -1
  62. package/dist/components/index.d.ts +18 -14
  63. package/dist/components/index.d.ts.map +1 -1
  64. package/dist/components/index.js +21 -8
  65. package/dist/components/index.js.map +1 -1
  66. package/dist/components/keys.d.ts.map +1 -1
  67. package/dist/components/keys.js +151 -88
  68. package/dist/components/keys.js.map +1 -1
  69. package/dist/components/legal-consent-gate.d.ts +37 -0
  70. package/dist/components/legal-consent-gate.d.ts.map +1 -1
  71. package/dist/components/legal-consent-gate.js +103 -15
  72. package/dist/components/legal-consent-gate.js.map +1 -1
  73. package/dist/components/legal-document.d.ts +12 -8
  74. package/dist/components/legal-document.d.ts.map +1 -1
  75. package/dist/components/legal-document.js +21 -13
  76. package/dist/components/legal-document.js.map +1 -1
  77. package/dist/components/legal-route.d.ts +17 -0
  78. package/dist/components/legal-route.d.ts.map +1 -0
  79. package/dist/components/legal-route.js +45 -0
  80. package/dist/components/legal-route.js.map +1 -0
  81. package/dist/components/limit-boundary.d.ts +2 -2
  82. package/dist/components/limit-boundary.d.ts.map +1 -1
  83. package/dist/components/limit-boundary.js +4 -8
  84. package/dist/components/limit-boundary.js.map +1 -1
  85. package/dist/components/limit-notice.d.ts.map +1 -1
  86. package/dist/components/limit-notice.js +6 -2
  87. package/dist/components/limit-notice.js.map +1 -1
  88. package/dist/components/payment-required-gate.js +1 -1
  89. package/dist/components/payment-required-gate.js.map +1 -1
  90. package/dist/components/permission-gate.d.ts +64 -17
  91. package/dist/components/permission-gate.d.ts.map +1 -1
  92. package/dist/components/permission-gate.js +173 -22
  93. package/dist/components/permission-gate.js.map +1 -1
  94. package/dist/components/plans-table.d.ts.map +1 -1
  95. package/dist/components/plans-table.js +14 -16
  96. package/dist/components/plans-table.js.map +1 -1
  97. package/dist/components/product-docs/docs-route.d.ts +4 -11
  98. package/dist/components/product-docs/docs-route.d.ts.map +1 -1
  99. package/dist/components/product-docs/docs-route.js +20 -60
  100. package/dist/components/product-docs/docs-route.js.map +1 -1
  101. package/dist/components/product-docs/fetch-product-docs.d.ts +2 -17
  102. package/dist/components/product-docs/fetch-product-docs.d.ts.map +1 -1
  103. package/dist/components/product-docs/fetch-product-docs.js +8 -43
  104. package/dist/components/product-docs/fetch-product-docs.js.map +1 -1
  105. package/dist/components/product-docs/fetch-product-legal.d.ts +0 -5
  106. package/dist/components/product-docs/fetch-product-legal.d.ts.map +1 -1
  107. package/dist/components/product-docs/fetch-product-legal.js +6 -13
  108. package/dist/components/product-docs/fetch-product-legal.js.map +1 -1
  109. package/dist/components/product-docs/product-docs-index.d.ts +28 -19
  110. package/dist/components/product-docs/product-docs-index.d.ts.map +1 -1
  111. package/dist/components/product-docs/product-docs-index.js +148 -65
  112. package/dist/components/product-docs/product-docs-index.js.map +1 -1
  113. package/dist/components/product-docs/product-docs-shell.d.ts +7 -33
  114. package/dist/components/product-docs/product-docs-shell.d.ts.map +1 -1
  115. package/dist/components/product-docs/product-docs-shell.js +17 -37
  116. package/dist/components/product-docs/product-docs-shell.js.map +1 -1
  117. package/dist/components/product-docs/product-docs-view.d.ts +4 -2
  118. package/dist/components/product-docs/product-docs-view.d.ts.map +1 -1
  119. package/dist/components/product-docs/product-docs-view.js +42 -5
  120. package/dist/components/product-docs/product-docs-view.js.map +1 -1
  121. package/dist/components/product-docs/product-docs.d.ts +12 -12
  122. package/dist/components/product-docs/product-docs.d.ts.map +1 -1
  123. package/dist/components/product-docs/product-docs.js +70 -73
  124. package/dist/components/product-docs/product-docs.js.map +1 -1
  125. package/dist/components/product-docs/yaml-lite.d.ts.map +1 -1
  126. package/dist/components/product-docs/yaml-lite.js +4 -1
  127. package/dist/components/product-docs/yaml-lite.js.map +1 -1
  128. package/dist/components/rate-limit-display.d.ts.map +1 -1
  129. package/dist/components/rate-limit-display.js +1 -1
  130. package/dist/components/rate-limit-display.js.map +1 -1
  131. package/dist/components/resource-limit-usage-card.d.ts.map +1 -1
  132. package/dist/components/resource-limit-usage-card.js +1 -1
  133. package/dist/components/resource-limit-usage-card.js.map +1 -1
  134. package/dist/components/root.d.ts +4 -2
  135. package/dist/components/root.d.ts.map +1 -1
  136. package/dist/components/root.js.map +1 -1
  137. package/dist/components/route-panel.d.ts +3 -1
  138. package/dist/components/route-panel.d.ts.map +1 -1
  139. package/dist/components/route-panel.js +6 -1
  140. package/dist/components/route-panel.js.map +1 -1
  141. package/dist/components/spend-cap-control.js +1 -1
  142. package/dist/components/spend-cap-control.js.map +1 -1
  143. package/dist/components/team-panel.d.ts.map +1 -1
  144. package/dist/components/team-panel.js +8 -2
  145. package/dist/components/team-panel.js.map +1 -1
  146. package/dist/components/trial-banner.js +1 -1
  147. package/dist/components/trial-banner.js.map +1 -1
  148. package/dist/components/upgrade-prompt.js +1 -1
  149. package/dist/components/upgrade-prompt.js.map +1 -1
  150. package/dist/components/usage-limits.d.ts +10 -0
  151. package/dist/components/usage-limits.d.ts.map +1 -0
  152. package/dist/components/usage-limits.js +209 -0
  153. package/dist/components/usage-limits.js.map +1 -0
  154. package/dist/components/usage.d.ts +1 -1
  155. package/dist/components/usage.d.ts.map +1 -1
  156. package/dist/components/usage.js +5 -2
  157. package/dist/components/usage.js.map +1 -1
  158. package/dist/deny-codes.d.ts +7 -1
  159. package/dist/deny-codes.d.ts.map +1 -1
  160. package/dist/deny-codes.js +17 -1
  161. package/dist/deny-codes.js.map +1 -1
  162. package/dist/errors/index.d.ts +8 -5
  163. package/dist/errors/index.d.ts.map +1 -1
  164. package/dist/errors/index.js +17 -10
  165. package/dist/errors/index.js.map +1 -1
  166. package/dist/{catalog.d.ts → format/catalog-display.d.ts} +56 -192
  167. package/dist/format/catalog-display.d.ts.map +1 -0
  168. package/dist/{catalog.js → format/catalog-display.js} +144 -479
  169. package/dist/format/catalog-display.js.map +1 -0
  170. package/dist/format/index.d.ts +1 -1
  171. package/dist/format/index.d.ts.map +1 -1
  172. package/dist/format/index.js +27 -23
  173. package/dist/format/index.js.map +1 -1
  174. package/dist/generated/catalog-types.d.ts +15 -64
  175. package/dist/generated/catalog-types.d.ts.map +1 -1
  176. package/dist/generated/catalog-types.js +2 -3
  177. package/dist/generated/catalog-types.js.map +1 -1
  178. package/dist/generated/version.d.ts +2 -2
  179. package/dist/generated/version.js +2 -2
  180. package/dist/http.d.ts +2 -0
  181. package/dist/http.d.ts.map +1 -1
  182. package/dist/http.js +2 -0
  183. package/dist/http.js.map +1 -1
  184. package/dist/index.d.ts +9 -7
  185. package/dist/index.d.ts.map +1 -1
  186. package/dist/index.js +15 -14
  187. package/dist/index.js.map +1 -1
  188. package/dist/mock/fixtures.d.ts +35 -8
  189. package/dist/mock/fixtures.d.ts.map +1 -1
  190. package/dist/mock/fixtures.js +95 -30
  191. package/dist/mock/fixtures.js.map +1 -1
  192. package/dist/mock/transport.d.ts.map +1 -1
  193. package/dist/mock/transport.js +103 -15
  194. package/dist/mock/transport.js.map +1 -1
  195. package/dist/notification-categories.js +1 -1
  196. package/dist/notification-categories.js.map +1 -1
  197. package/dist/permissions.d.ts +9 -12
  198. package/dist/permissions.d.ts.map +1 -1
  199. package/dist/permissions.js +31 -14
  200. package/dist/permissions.js.map +1 -1
  201. package/dist/react/hooks.d.ts +46 -18
  202. package/dist/react/hooks.d.ts.map +1 -1
  203. package/dist/react/hooks.js +73 -7
  204. package/dist/react/hooks.js.map +1 -1
  205. package/dist/react/index.d.ts +2 -2
  206. package/dist/react/index.d.ts.map +1 -1
  207. package/dist/react/index.js +2 -2
  208. package/dist/react/index.js.map +1 -1
  209. package/dist/react/mounted-context.js +1 -1
  210. package/dist/react/mounted-context.js.map +1 -1
  211. package/dist/react/mounted-types.d.ts +6 -1
  212. package/dist/react/mounted-types.d.ts.map +1 -1
  213. package/dist/react/query-adapter.d.ts +0 -1
  214. package/dist/react/query-adapter.d.ts.map +1 -1
  215. package/dist/react/query-adapter.js +0 -4
  216. package/dist/react/query-adapter.js.map +1 -1
  217. package/dist/react/use-upgrade.js +1 -1
  218. package/dist/resources/account.d.ts +17 -1
  219. package/dist/resources/account.d.ts.map +1 -1
  220. package/dist/resources/account.js +39 -0
  221. package/dist/resources/account.js.map +1 -1
  222. package/dist/resources/billing.d.ts +19 -31
  223. package/dist/resources/billing.d.ts.map +1 -1
  224. package/dist/resources/billing.js +152 -50
  225. package/dist/resources/billing.js.map +1 -1
  226. package/dist/resources/keys.d.ts +40 -13
  227. package/dist/resources/keys.d.ts.map +1 -1
  228. package/dist/resources/keys.js +136 -2
  229. package/dist/resources/keys.js.map +1 -1
  230. package/dist/resources/usage-limits.d.ts +20 -0
  231. package/dist/resources/usage-limits.d.ts.map +1 -0
  232. package/dist/resources/usage-limits.js +79 -0
  233. package/dist/resources/usage-limits.js.map +1 -0
  234. package/dist/test-utils/mock-client.d.ts.map +1 -1
  235. package/dist/test-utils/mock-client.js +42 -4
  236. package/dist/test-utils/mock-client.js.map +1 -1
  237. package/dist/types.d.ts +399 -40
  238. package/dist/types.d.ts.map +1 -1
  239. package/dist/types.js +12 -4
  240. package/dist/types.js.map +1 -1
  241. package/package.json +2 -1
  242. package/dist/catalog.d.ts.map +0 -1
  243. package/dist/catalog.js.map +0 -1
  244. package/dist/component-permissions.d.ts +0 -6
  245. package/dist/component-permissions.d.ts.map +0 -1
  246. package/dist/component-permissions.js +0 -36
  247. package/dist/component-permissions.js.map +0 -1
  248. package/dist/components/bill-estimator.d.ts +0 -18
  249. package/dist/components/bill-estimator.d.ts.map +0 -1
  250. package/dist/components/bill-estimator.js +0 -30
  251. package/dist/components/bill-estimator.js.map +0 -1
  252. package/dist/components/credit.d.ts +0 -20
  253. package/dist/components/credit.d.ts.map +0 -1
  254. package/dist/components/credit.js +0 -33
  255. package/dist/components/credit.js.map +0 -1
  256. package/dist/components/top-up-prompt.d.ts +0 -21
  257. package/dist/components/top-up-prompt.d.ts.map +0 -1
  258. package/dist/components/top-up-prompt.js +0 -59
  259. package/dist/components/top-up-prompt.js.map +0 -1
  260. package/dist/top-up.d.ts +0 -12
  261. package/dist/top-up.d.ts.map +0 -1
  262. package/dist/top-up.js +0 -33
  263. package/dist/top-up.js.map +0 -1
package/CHANGELOG.md CHANGED
@@ -3,6 +3,172 @@
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
+ ## [0.26.0] - 2026-08-30
7
+
8
+ Three efforts ship together: the billing redesign (already on `main` but never
9
+ published — it was staged as `1.0.0`, corrected here to stay on the pre-1.0
10
+ line), managed docs collections, and the uniform legal surface.
11
+
12
+ ### Changed — uniform legal documents (BREAKING)
13
+
14
+ Legal documents are now fully kind-generic and authored-only. `terms` and
15
+ `privacy` have no special status: they are ordinary kinds a builder declares in
16
+ `legal/_index.yaml`, exactly like `acceptable-use` or `dpa`.
17
+
18
+ - **REMOVED `TermsOfService` and `PrivacyPolicy`** (and their prop types). Use
19
+ `<LegalDocument kind="terms" />` — one component for every kind.
20
+ - **REMOVED the platform-terms fallback** from `LegalDocument` and `DocsLegal`,
21
+ along with `getPlatformLegalUrl`. A legal document exists only when the
22
+ builder authored it; the platform's terms govern the BUILDER's use of Farther
23
+ Shore, not a subscriber's use of the builder's product, so presenting them as
24
+ a stand-in was misleading. Unpublished documents now say so plainly.
25
+ - **Uniform routing**: every document lives at `/legal/<kind>` and `/legal`
26
+ indexes them. New `legalDocHref` / `legalIndexHref` / `parseLegalRoute`
27
+ helpers (plus `LEGAL_ROUTE_PREFIX`, `LegalRoute`) are the single source of the
28
+ path shape. Hosts that linked `/terms` or `/privacy` must move to
29
+ `/legal/terms` and `/legal/privacy`.
30
+ - **Derived link lists**: `FsFooter` and `DocsLegal` now list every published
31
+ document instead of a fixed Terms/Privacy pair. New `useLegalDocuments()`
32
+ exposes the same list (type `PublishedLegalDocument`).
33
+ - **Consent gate is a per-document wizard** — one step per OUTSTANDING document
34
+ (`none`-mode and already-accepted never appear), with a single atomic submit
35
+ at the end. New `useLegalConsentWizard()` (`UseLegalConsentWizardResult`)
36
+ holds all behavior; the component ships no CSS and no animation JS, exposing
37
+ `data-fs-legal-step` / `-steps` / `-action` / `-direction` and keying the step
38
+ card by kind so a host's enter animation replays per step.
39
+
40
+ ### Added — docs collections
41
+
42
+ Managed docs can now be logically separated into multiple self-contained
43
+ bundles ("collections") — e.g. narrative **Docs** alongside an **API
44
+ reference** — rendered by the default portal as a tab bar. Strictly opt-in: an
45
+ index without `collections:` parses and renders byte-identically to before.
46
+
47
+ - `_index.yaml` gains optional `collections:` (each entry: `id`, `label`,
48
+ optional `icon` image URL, `defaultPage`, its own `navigation`) and
49
+ `defaultCollection`. When present, top-level `navigation`/`defaultPage` move
50
+ into the collections.
51
+ - **Collection ids are route + storage prefixes.** Page slugs become
52
+ collection-qualified (`<id>/<slug>`, e.g. `guides/intro`): the URL is
53
+ `/docs/guides/intro`, the R2 object is `<prefix>/guides/intro.mdx`, and a
54
+ bare `/docs/<id>` lands on that collection's `defaultPage`. Slugs in a
55
+ collection's `navigation` are authored collection-relative; the parser
56
+ qualifies them.
57
+ - New headless `docs-chrome` collections layer (mirrors the language layer):
58
+ `resolveActiveCollection`, `DocsCollectionsProvider` /
59
+ `useDocsCollections` / `useDocsCollectionsState`, and
60
+ `DocsCollectionSelector` — an unstyled `role="group"` of
61
+ `aria-pressed` buttons that renders nothing at ≤ 1 collection. Ships no CSS;
62
+ hosts style `.fs-docs-collections`.
63
+ - New exports: the pieces above plus `DocsCollection`,
64
+ `DocsCollectionsContextValue`, `DocsCollectionSelectorProps`,
65
+ `UseDocsCollectionsStateOptions`, and the parsed-index element type
66
+ `BusinessDocsCollection` (alongside `BusinessDocsIndex`);
67
+ `BusinessDocsIndex` gains `collections?` / `defaultCollection?`, and
68
+ `BusinessDocsView` accepts `activeCollection` to scope the shell to one
69
+ bundle.
70
+ - Parser hardening shared with the reader: page-slug path segments are
71
+ validated (`.`/`..`/`\`/empty dropped) and a collection `icon` must be an
72
+ absolute/root-relative/`data:` URL (bare tokens are dropped rather than
73
+ rendered as a broken `<img>`).
74
+
75
+ ### Changed — billing redesign (FAR-912)
76
+
77
+ Plans carry no money; usage money comes ONLY from Core's bill preview, computed
78
+ by the same engine that invoices.
79
+
80
+ ### Added
81
+
82
+ - **`fs.billing.getBillPreview()`** → `BillPreview` (`GET /me/bill-preview`).
83
+ A discriminated union on `disclosure`: `TransparentBillPreview` (rating
84
+ `windows`, `totals.{ratedNanos,fundedNanos,receivableNanos}`, nanodollar
85
+ `allowances`) | `OpaqueBillPreview` (`allowances` with kind / state /
86
+ expiry / authored `display` only — no windows, totals, or amounts). Every
87
+ nanodollar field is a decimal STRING. The reader fails closed: anything not
88
+ verbatim `disclosure: "transparent"` is read as opaque.
89
+ - **`useBillPreview()`** React hook (query key `["billPreview", businessId,
90
+ organizationId]`; re-reads on every entitlement mutation and org switch).
91
+ - **`<BillPreviewCard>`** component — renders the preview and honors
92
+ disclosure (transparent: fee, rated / covered / due, windows, allowance
93
+ balances; opaque: allowances only, no rates or amounts).
94
+ - **`format.formatNanos(nanos, { currency, locale })`** — formats a
95
+ decimal-string / bigint nanodollar amount with bigint arithmetic (never
96
+ `Number()`); cent precision ≥ 1¢, up to 6 fraction digits below.
97
+ - `Plan.kind: PlanKind` — the builder's DECLARED kind (`free` | `flat` |
98
+ `usage` | `prepaid` | `hybrid` | `trial` | `custom`), read verbatim from the
99
+ wire. `PlanPricePresentation.kind` is now this declared kind.
100
+ - Mock mode: `GET /me/bill-preview` served from `mockBillPreviewTransparent` /
101
+ `mockBillPreviewOpaque` (`mockState.billPreviewDisclosure` toggles).
102
+ - Test-utils mock client: `billing.getBillPreview()` returns the empty
103
+ transparent preview.
104
+ - **`format.describePlanKind(kind)`** → `{ kind, label, billsUsage }` — the
105
+ ONE declared-kind label map (Free / Subscription / Usage-based / Prepaid /
106
+ Subscription + usage / Free trial / Custom) plus whether the kind bills
107
+ usage through a commerce binding (`usage` / `prepaid` / `hybrid` /
108
+ `custom`). `<PlansTable>`, the portal template and the dashboard all read
109
+ it, so a plan never shows two different kind labels across screens.
110
+ `PlanKindDescription` is exported at the root.
111
+ - **`BucketState`** — the allowance lifecycle state, mirroring Core verbatim
112
+ (`PENDING` | `AVAILABLE` | `EXPIRY_PENDING` | `FROZEN` | `EXPIRED` |
113
+ `CANCELLED`). `BillPreviewAllowance.state` / `OpaqueBillPreviewAllowance.state`
114
+ are typed to it; the reader drops an allowance whose state it cannot place.
115
+ - **`NanosAmount`** = `string | null`. Every nanodollar field on the preview
116
+ (`totals.*`, `windows[].ratedNanos`, allowance balances) is now
117
+ `NanosAmount`: a malformed wire value (`"1e9"`, `1.5`, `null`) maps to
118
+ `null` = unavailable, never to `"0"`, and `<BillPreviewCard>` renders it as
119
+ "unavailable" — never as a wrong `$0`.
120
+ - `bootstrap().availableModules` derives `billing` / `usage-metered` from
121
+ each plan's DECLARED `kind` (+ recurring fee for `billing`), never from the
122
+ structural meter list.
123
+
124
+ ### Removed
125
+
126
+ - **BREAKING: `Plan.free` is gone** — read `plan.kind === "free"`.
127
+ - **BREAKING: plan meters carry no money.** `PlanMeter` is structural
128
+ `{ dimension, kind? }`; `price_per_unit_micros`, `included_units`, and
129
+ `tiered` no longer exist on the wire or the domain type, and `mapPlan`
130
+ strips anything else.
131
+ - **BREAKING: the plan classifier and every meter-money helper are deleted**
132
+ from `format`: `classifyPlan`, `isFreePlan`, `isDeclaredFreePlan`,
133
+ `isPayAsYouGoPlan`, `formatPriceFromMicros`, `summarizeMeterPricing`,
134
+ `describeMeterTiers`; the `MeterTierDescription` / `MeterTierLine` types;
135
+ `PlanPricePresentation.usageSummary`. `quotaForDimension` reads month-window
136
+ limit rules only. `sortPlansForDisplay` / `synthesizePlanFeatures*` /
137
+ `describePlanSummary` / `selectAutoEnrollPlan` read `plan.kind`.
138
+ - **BREAKING: `<BillEstimator>` / `BillEstimatorProps` are removed** —
139
+ use `<BillPreviewCard>` (no re-export shim).
140
+ - The `credit_balance` managed component id is removed from
141
+ `MANAGED_COMPONENT_DEFAULTS` (never a shipped component).
142
+
143
+ ### Changed
144
+
145
+ - `<PlansTable>` badges and hides the free tier by `plan.kind`, and no longer
146
+ renders a per-meter price list under the card.
147
+ - `presentPlanPrice` / `formatPlanPrice` headline a fee-less plan by its
148
+ declared kind ("Free", "Usage-based", "Prepaid", "Free trial", "Custom").
149
+
150
+ ## [0.25.0] - 2026-08-10
151
+
152
+ Documentation versioning removed — product docs are now single, always-latest.
153
+
154
+ ### Removed
155
+
156
+ - **BREAKING: the product-docs version selector is gone.**
157
+ `BusinessDocsVersionSelector` and the `versionHref` route helper are removed;
158
+ docs render the latest set only. `fetchBusinessDocs` no longer reads
159
+ `versions.json` or accepts a `releaseTag` / `historyEnabled` option, and the
160
+ `BusinessDocs` result drops its `versions` / `currentVersion` / `currentTag`
161
+ fields. The `BusinessDocsVersions` / `BusinessDocsVersionEntry` types and
162
+ `parseBusinessDocsVersions` are removed.
163
+ - **BREAKING: `docsHistoryEnabled`** is removed from the boot payload types —
164
+ there is no docs history to gate. `docsEnabled` (docs on/off) is unchanged.
165
+
166
+ ### Changed
167
+
168
+ - Product docs are fetched from a single `docs/{businessId}/current/` path
169
+ (the SDK no longer resolves `releases/{tag}/`); `/docs/releases/{tag}` routes
170
+ are no longer produced or parsed.
171
+
6
172
  ## [0.24.0] - 2026-08-08
7
173
 
8
174
  In-app notifications removed — email is the only notification channel.
package/README.md CHANGED
@@ -3,10 +3,9 @@
3
3
  The **Farther Shore Frontend SDK** — the browser + React integration layer for
4
4
  your product's subscriber portal.
5
5
 
6
- > **Status: `0.24.0`.** Pre-1.0 (`0.x`): a minor bump (e.g. `0.9.x` → `0.10.0`)
7
- > may include breaking changes, so a caret range is unsafe — **pin this package
8
- > exactly** (`0.9.0`) or use a patch-only tilde (`~0.9.0`). Changes are recorded
9
- > in [`CHANGELOG.md`](./CHANGELOG.md).
6
+ > **Status: `0.26.0` (pre-1.0).** A MINOR bump may include breaking changes;
7
+ > patches are additive. Pin the version you build against and read
8
+ > [`CHANGELOG.md`](./CHANGELOG.md) before upgrading.
10
9
 
11
10
  ```bash
12
11
  pnpm add @farthershore/farthershore-js # React is an optional peer (for /react)
@@ -185,14 +184,12 @@ import {
185
184
  ApiKeysPanel,
186
185
  UsageCard,
187
186
  BillingSummary,
188
- CreditBalance,
189
187
  TeamPanel,
190
188
  AuditLogTable,
191
189
  RateLimitDisplay,
192
- BillEstimator,
190
+ BillPreviewCard,
193
191
  ResourceLimitUsageCard,
194
192
  UpgradePrompt,
195
- TopUpPrompt,
196
193
  DocsLegal,
197
194
  ResourcesPanel,
198
195
  RoutePanel,
@@ -345,15 +342,24 @@ codes, and more — lives at the `@farthershore/farthershore-js/errors` subpath.
345
342
 
346
343
  ## Display helpers
347
344
 
348
- Pure catalog/pricing/usage formatting helpers are grouped under the `format`
349
- namespace, so every frontend renders money, dates, and quotas identically:
345
+ Pure catalog display helpers (declared plan kind, recurring price, quotas,
346
+ dates, status chips) are grouped under the `format` namespace, so every
347
+ frontend renders them identically:
350
348
 
351
349
  ```ts
352
350
  import { format } from "@farthershore/farthershore-js";
353
351
 
354
352
  format.formatCents(1234); // "$12.34"
353
+ format.formatNanos("12450000000"); // "$12.45" — bill-preview nanos, bigint
355
354
  ```
356
355
 
356
+ Plans carry **no** per-unit money (`plan.meters` is structural
357
+ `{ dimension, kind? }`; `plan.kind` is the builder's declared kind). Usage
358
+ money comes only from Core's bill preview — `fs.billing.getBillPreview()`,
359
+ `useBillPreview()`, or the `<BillPreviewCard>` component — computed by the
360
+ same engine that invoices, and honoring the plan's disclosure (`transparent`
361
+ shows windows / totals / balances; `opaque` shows allowances only).
362
+
357
363
  ## Testing
358
364
 
359
365
  `@farthershore/farthershore-js/test-utils` gives you a fully-typed mock client,
@@ -3,8 +3,7 @@ import type { Bootstrap, Plan } from "./types.js";
3
3
  import type { PortalPlanWire, PlanMeterWire, PlanLimitWire } from "./generated/catalog-types.js";
4
4
  type RawPlanMeter = PlanMeterWire;
5
5
  type RawPlanLimit = PlanLimitWire;
6
- export type RawPortalPlan = Omit<PortalPlanWire, "grants" | "meters" | "limits" | "planDetails" | "resource_limits" | "max_monthly_spend_cents" | "min_monthly_spend_cents"> & {
7
- grants?: PortalPlanWire["grants"] | null;
6
+ export type RawPortalPlan = Omit<PortalPlanWire, "meters" | "limits" | "planDetails" | "resource_limits" | "max_monthly_spend_cents" | "min_monthly_spend_cents"> & {
8
7
  meters?: RawPlanMeter[] | null;
9
8
  limits?: RawPlanLimit[] | null;
10
9
  planDetails?: string[] | null;
@@ -1 +1 @@
1
- {"version":3,"file":"bootstrap.d.ts","sourceRoot":"","sources":["../src/bootstrap.ts"],"names":[],"mappings":"AAcA,OAAO,EAAE,KAAK,aAAa,EAAE,MAAM,aAAa,CAAC;AAEjD,OAAO,KAAK,EAEV,SAAS,EAKT,IAAI,EAIL,MAAM,YAAY,CAAC;AAMpB,OAAO,KAAK,EACV,cAAc,EACd,aAAa,EACb,aAAa,EACd,MAAM,8BAA8B,CAAC;AAmDtC,KAAK,YAAY,GAAG,aAAa,CAAC;AAClC,KAAK,YAAY,GAAG,aAAa,CAAC;AAQlC,MAAM,MAAM,aAAa,GAAG,IAAI,CAC9B,cAAc,EACZ,QAAQ,GACR,QAAQ,GACR,QAAQ,GACR,aAAa,GACb,iBAAiB,GACjB,yBAAyB,GACzB,yBAAyB,CAC5B,GAAG;IACF,MAAM,CAAC,EAAE,cAAc,CAAC,QAAQ,CAAC,GAAG,IAAI,CAAC;IACzC,MAAM,CAAC,EAAE,YAAY,EAAE,GAAG,IAAI,CAAC;IAC/B,MAAM,CAAC,EAAE,YAAY,EAAE,GAAG,IAAI,CAAC;IAC/B,WAAW,CAAC,EAAE,MAAM,EAAE,GAAG,IAAI,CAAC;IAC9B,eAAe,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,GAAG,IAAI,CAAC;IAChD,uBAAuB,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IACxC,uBAAuB,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;CACzC,CAAC;AA+FF;;uEAEuE;AACvE,wBAAgB,OAAO,CAAC,CAAC,EAAE,aAAa,GAAG,IAAI,CA4B9C;AAsED;kDACkD;AAClD,wBAAsB,gBAAgB,CAAC,GAAG,EAAE,aAAa,GAAG,OAAO,CAAC,SAAS,CAAC,CA6C7E"}
1
+ {"version":3,"file":"bootstrap.d.ts","sourceRoot":"","sources":["../src/bootstrap.ts"],"names":[],"mappings":"AAcA,OAAO,EAAE,KAAK,aAAa,EAAE,MAAM,aAAa,CAAC;AAGjD,OAAO,KAAK,EAEV,SAAS,EAKT,IAAI,EAIL,MAAM,YAAY,CAAC;AAMpB,OAAO,KAAK,EACV,cAAc,EACd,aAAa,EACb,aAAa,EACd,MAAM,8BAA8B,CAAC;AAkDtC,KAAK,YAAY,GAAG,aAAa,CAAC;AAClC,KAAK,YAAY,GAAG,aAAa,CAAC;AAQlC,MAAM,MAAM,aAAa,GAAG,IAAI,CAC9B,cAAc,EACZ,QAAQ,GACR,QAAQ,GACR,aAAa,GACb,iBAAiB,GACjB,yBAAyB,GACzB,yBAAyB,CAC5B,GAAG;IACF,MAAM,CAAC,EAAE,YAAY,EAAE,GAAG,IAAI,CAAC;IAC/B,MAAM,CAAC,EAAE,YAAY,EAAE,GAAG,IAAI,CAAC;IAC/B,WAAW,CAAC,EAAE,MAAM,EAAE,GAAG,IAAI,CAAC;IAC9B,eAAe,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,GAAG,IAAI,CAAC;IAChD,uBAAuB,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IACxC,uBAAuB,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;CACzC,CAAC;AAsFF;;uEAEuE;AACvE,wBAAgB,OAAO,CAAC,CAAC,EAAE,aAAa,GAAG,IAAI,CAuB9C;AAyED;kDACkD;AAClD,wBAAsB,gBAAgB,CAAC,GAAG,EAAE,aAAa,GAAG,OAAO,CAAC,SAAS,CAAC,CA6C7E"}
package/dist/bootstrap.js CHANGED
@@ -3,14 +3,15 @@
3
3
  // from — and caches businessId / environmentId / gateway origin on the client so
4
4
  // every later call knows where to go.
5
5
  //
6
- // The resolve DTO carries the business's full catalog: the plan list (the rich
7
- // 5-knob unified billing shape — recurring fee, metered $/unit, trial,
8
- // min/max spend, included quotas, credit grants), business-level meters, and the
9
- // docs/legal MDX origins. `bootstrap()` surfaces ALL of it so a generated or
10
- // managed frontend can render plans/pricing/quotas/credit/docs/legal and a
11
- // subscribe flow — not just an account dashboard.
6
+ // The resolve DTO carries the business's full catalog: the plan list (declared
7
+ // kind, recurring fee, trial, min/max spend, structural meters and limit
8
+ // rules — NO meter money), business-level meters, and the docs/legal MDX
9
+ // origins. `bootstrap()` surfaces ALL of it so a generated or managed
10
+ // frontend can render plans/pricing/quotas/docs/legal and a subscribe flow —
11
+ // not just an account dashboard.
12
12
  import { coreFetch } from "./http.js";
13
13
  import { consumePrimedResolve } from "./boot-primer.js";
14
+ import { describePlanKind } from "./format/catalog-display.js";
14
15
  import { FartherShoreNotReadyError } from "./errors/index.js";
15
16
  // ── Mappers ───────────────────────────────────────────────────────────────
16
17
  function mapMeter(m) {
@@ -48,8 +49,6 @@ function mapBusiness(p) {
48
49
  ...(p.legal ? { legal: p.legal } : {}),
49
50
  // Absent on older Core payloads — default true (backward-compatible).
50
51
  docsEnabled: p.docsEnabled ?? true,
51
- // Closed by default — an older Core omits it and history stays hidden.
52
- docsHistoryEnabled: p.docsHistoryEnabled === true,
53
52
  featuredCompiledPlanId: p.featuredCompiledPlanId ?? null,
54
53
  meters,
55
54
  };
@@ -65,18 +64,11 @@ function mapEnv(e) {
65
64
  };
66
65
  }
67
66
  function mapPlanMeter(m) {
67
+ // Structural only — dimension + aggregation kind. The plan carries NO meter
68
+ // money; rates/allowances come from `fs.billing.getBillPreview()`.
68
69
  return {
69
70
  dimension: m.dimension,
70
- price_per_unit_micros: m.price_per_unit_micros,
71
- // E1 — exact-offer fields. Previously STRIPPED here (the SDK-side meter
72
- // drop): kind / included_units / tiered now ride through so presenters
73
- // can render included allotments + tier schedules. All optional — absent
74
- // on pre-expansion cores means flat linear pricing.
75
71
  ...(m.kind ? { kind: m.kind } : {}),
76
- ...(typeof m.included_units === "number"
77
- ? { included_units: m.included_units }
78
- : {}),
79
- ...(m.tiered ? { tiered: m.tiered } : {}),
80
72
  };
81
73
  }
82
74
  function mapPlanLimit(l) {
@@ -98,11 +90,8 @@ export function mapPlan(p) {
98
90
  key: p.key,
99
91
  name: p.name,
100
92
  description: p.description ?? null,
101
- // The declaration. Defaulted defensively rather than trusted: a core that
102
- // predates the field would otherwise yield `undefined`, and an undefined
103
- // free tier reads as "no free plan" — which is the safe direction (show
104
- // the picker) rather than auto-enrolling someone onto a billable plan.
105
- free: p.free === true,
93
+ // The DECLARED kind, verbatim. Never inferred from shape.
94
+ kind: p.kind,
106
95
  recurringFeeCents: p.recurring_fee_cents,
107
96
  // The platform omits `billing_interval` for monthly plans (the default);
108
97
  // default a missing/absent value to "month" so the UI always has a cadence.
@@ -110,7 +99,6 @@ export function mapPlan(p) {
110
99
  // USD-only platform omits `currency` today; default it so the normalized
111
100
  // model always carries one (old-Core responses stay decodable).
112
101
  currency: p.currency ?? "USD",
113
- grants: p.grants ?? [],
114
102
  trialDays: p.trial_days,
115
103
  maxMonthlySpendCents: p.max_monthly_spend_cents ?? null,
116
104
  minMonthlySpendCents: p.min_monthly_spend_cents ?? null,
@@ -118,7 +106,6 @@ export function mapPlan(p) {
118
106
  limits: (p.limits ?? []).map(mapPlanLimit),
119
107
  planDetails: p.planDetails ?? [],
120
108
  resourceLimits: p.resource_limits ?? {},
121
- ...(p.creditPolicy ? { creditPolicy: p.creditPolicy } : {}),
122
109
  };
123
110
  }
124
111
  /** Map the resolve DTO's declared-resource catalog into the SDK domain type,
@@ -162,22 +149,25 @@ function mapDeclaredResources(raw, plans, featuredCompiledPlanId) {
162
149
  }
163
150
  /** Derive coarse resource keys from the resolved business + plans so a
164
151
  * managed frontend can branch on what the business actually offers (instead of
165
- * the previously hard-coded empty array). */
152
+ * the previously hard-coded empty array).
153
+ *
154
+ * Read from each plan's DECLARED `kind` (plus its recurring fee for
155
+ * "billing"), never from the structural meter list: `plan.meters` carries no
156
+ * money, so a usage plan priced only through commerce bindings still bills
157
+ * usage, and a free plan carrying a limits meter does not. */
166
158
  function deriveAvailableModules(business, plans) {
167
159
  const caps = new Set();
168
160
  if (plans.length > 0)
169
161
  caps.add("plans");
170
- if (plans.some((p) => p.recurringFeeCents > 0 || p.meters.length > 0)) {
162
+ const billsUsage = plans.some((p) => describePlanKind(p.kind).billsUsage);
163
+ if (billsUsage || plans.some((p) => p.recurringFeeCents > 0)) {
171
164
  caps.add("billing");
172
165
  }
173
- if (plans.some((p) => p.meters.length > 0))
166
+ if (billsUsage)
174
167
  caps.add("usage-metered");
175
168
  if (plans.some((p) => p.limits.some((l) => l.window.type === "named" && l.window.name === "month"))) {
176
169
  caps.add("usage-quota");
177
170
  }
178
- if (plans.some((p) => p.grants.length > 0 || p.trialDays > 0)) {
179
- caps.add("credit-grants");
180
- }
181
171
  if (business.docsBaseUrl)
182
172
  caps.add("docs");
183
173
  if (business.legalBaseUrl)
@@ -1 +1 @@
1
- {"version":3,"file":"bootstrap.js","sourceRoot":"","sources":["../src/bootstrap.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"bootstrap.js","sourceRoot":"","sources":["../src/bootstrap.ts"],"names":[],"mappings":"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"}
package/dist/cache.d.ts CHANGED
@@ -40,7 +40,7 @@ export declare function bustReadCacheAndWake(ctx: ClientContext): void;
40
40
  /**
41
41
  * Reset everything an ENTITLEMENT-MUTATING action invalidates (W6.3): the read
42
42
  * cache AND the cached short-lived gateway context token. A plan change /
43
- * cancel / restore / top-up / subscribe can change what the edge grants, so the
43
+ * cancel / restore / subscribe can change what the edge grants, so the
44
44
  * next feature call must re-mint a token reflecting the new entitlement instead
45
45
  * of riding the stale one. Use this (not bare {@link bustReadCache}) after any
46
46
  * mutation that can move the subscriber's entitlement.
package/dist/cache.js CHANGED
@@ -69,7 +69,7 @@ export function bustReadCacheAndWake(ctx) {
69
69
  /**
70
70
  * Reset everything an ENTITLEMENT-MUTATING action invalidates (W6.3): the read
71
71
  * cache AND the cached short-lived gateway context token. A plan change /
72
- * cancel / restore / top-up / subscribe can change what the edge grants, so the
72
+ * cancel / restore / subscribe can change what the edge grants, so the
73
73
  * next feature call must re-mint a token reflecting the new entitlement instead
74
74
  * of riding the stale one. Use this (not bare {@link bustReadCache}) after any
75
75
  * mutation that can move the subscriber's entitlement.
package/dist/client.d.ts CHANGED
@@ -5,6 +5,7 @@ import { type BusinessResource } from "./resources/business.js";
5
5
  import { type AuthResource } from "./resources/auth.js";
6
6
  import { type KeysResource } from "./resources/keys.js";
7
7
  import { type UsageResource } from "./resources/usage.js";
8
+ import { type UsageLimitsResource } from "./resources/usage-limits.js";
8
9
  import { type BillingResource } from "./resources/billing.js";
9
10
  import { type PlansResource } from "./resources/plans.js";
10
11
  import { type AuditLogsResource, type NotificationsResource, type OrganizationsResource, type RbacResource, type TeamResource } from "./resources/account.js";
@@ -31,8 +32,6 @@ export interface PrefetchSurface {
31
32
  apiKeys(): void;
32
33
  /** Warm the subscription read (billing surfaces). */
33
34
  subscription(): void;
34
- /** Warm the credit-balance read (billing surfaces). */
35
- creditBalance(): void;
36
35
  }
37
36
  export interface FartherShoreClient {
38
37
  /** The client's resolved runtime context (coreUrl, portalHost, businessId,
@@ -114,7 +113,9 @@ export interface FartherShoreClient {
114
113
  readonly keys: KeysResource;
115
114
  /** Per-dimension usage totals + recent events for this business. */
116
115
  readonly usage: UsageResource;
117
- /** The consumer's subscription, the Stripe billing portal, and credit balance. */
116
+ /** Subscriber-managed per-actor usage limits. */
117
+ readonly usageLimits: UsageLimitsResource;
118
+ /** The consumer's subscription and Stripe billing portal. */
118
119
  readonly billing: BillingResource;
119
120
  /** The business's plan catalog + the subscribe/checkout flow. */
120
121
  readonly plans: PlansResource;
@@ -1 +1 @@
1
- {"version":3,"file":"client.d.ts","sourceRoot":"","sources":["../src/client.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"client.d.ts","sourceRoot":"","sources":["../src/client.ts"],"names":[],"mappings":"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"}
package/dist/client.js CHANGED
@@ -19,6 +19,7 @@ import { createBusinessResource, } from "./resources/business.js";
19
19
  import { createAuthResource, primePersistedPersona, } from "./resources/auth.js";
20
20
  import { createKeysResource } from "./resources/keys.js";
21
21
  import { createUsageResource } from "./resources/usage.js";
22
+ import { createUsageLimitsResource, } from "./resources/usage-limits.js";
22
23
  import { createBillingResource, } from "./resources/billing.js";
23
24
  import { createPlansResource } from "./resources/plans.js";
24
25
  import { createAccountSurface, } from "./resources/account.js";
@@ -136,6 +137,7 @@ export function createFartherShoreClientWithPlatformConfig(config = {}) {
136
137
  const account = createAccountSurface(ctx);
137
138
  const keys = createKeysResource(ctx);
138
139
  const usage = createUsageResource(ctx);
140
+ const usageLimits = createUsageLimitsResource(ctx);
139
141
  const billing = createBillingResource(ctx, account.me);
140
142
  const entitlements = createEntitlementsResource({
141
143
  ctx,
@@ -157,7 +159,6 @@ export function createFartherShoreClientWithPlatformConfig(config = {}) {
157
159
  usage: () => warm(() => usage.snapshot()),
158
160
  apiKeys: () => warm(() => keys.list()),
159
161
  subscription: () => warm(() => billing.subscription()),
160
- creditBalance: () => warm(() => billing.creditBalance()),
161
162
  };
162
163
  return {
163
164
  context: ctx,
@@ -265,6 +266,7 @@ export function createFartherShoreClientWithPlatformConfig(config = {}) {
265
266
  auth: createAuthResource(ctx),
266
267
  keys,
267
268
  usage,
269
+ usageLimits,
268
270
  billing,
269
271
  plans: createPlansResource(ctx, ensureBootstrap),
270
272
  me: account.me,
@@ -1 +1 @@
1
- {"version":3,"file":"client.js","sourceRoot":"","sources":["../src/client.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"client.js","sourceRoot":"","sources":["../src/client.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,82 @@
1
+ import type { ComponentAccessPolicyRow } from "./types.js";
2
+ /** The single gate-mode vocabulary — a faithful copy of the contracts
3
+ * `COMPONENT_GATE_MODES` (vocabulary-equality-tested in test/). */
4
+ export declare const COMPONENT_GATE_MODES: readonly ["hide", "disable", "readOnly", "denied"];
5
+ export type ComponentGateMode = (typeof COMPONENT_GATE_MODES)[number];
6
+ /** True iff `mode` is a member of {@link COMPONENT_GATE_MODES}. */
7
+ export declare function isComponentGateMode(mode: string): mode is ComponentGateMode;
8
+ /** A managed default entry — faithful copy of the contracts
9
+ * `ComponentPermissionDefault` shape. */
10
+ export interface ComponentPermissionDefault {
11
+ permission: string | null;
12
+ writePermission?: string;
13
+ presentational?: true;
14
+ }
15
+ /** FAITHFUL COPY of `@farthershore/contracts` `componentPermissionDefaults`
16
+ * (parity-tested in test/component-policy-parity.test.ts — the shipped SDK
17
+ * bundle must stay contracts-free). */
18
+ export declare const MANAGED_COMPONENT_DEFAULTS: Readonly<Record<string, ComponentPermissionDefault>>;
19
+ /** FAITHFUL COPY of contracts/evolution `SENSITIVE_COMPONENT_KEYS`.
20
+ * The SDK cannot import contracts at runtime, so parity is pinned in test/. */
21
+ export declare const SENSITIVE_COMPONENT_KEYS: readonly ["audit_log", "api_keys_panel", "team_panel"];
22
+ /** True iff `id` names a confidentiality-sensitive managed component. */
23
+ export declare function isSensitiveComponentKey(id: string): boolean;
24
+ /** Faithful copy of the contracts `CUSTOM_COMPONENT_KEY_PATTERN`. */
25
+ export declare const CUSTOM_COMPONENT_KEY_PATTERN: RegExp;
26
+ /** True iff `id` is a well-formed builder-custom component key. */
27
+ export declare function isCustomComponentKey(id: string): boolean;
28
+ export interface ComponentRegistration {
29
+ /** A `custom:<slug>` key (builder components) or a managed id (to override
30
+ * a managed default host-side). */
31
+ id: string;
32
+ /** Render-gate permission. Omit to fall through to overlay/managed/derived
33
+ * resolution. */
34
+ permission?: string;
35
+ /** Mutating-affordance permission; derived `<subject>:write` otherwise. */
36
+ writePermission?: string;
37
+ /** Default deny render for this component. */
38
+ gateMode?: ComponentGateMode;
39
+ /** Renders ungated by design. Explicit only — never inferred. */
40
+ presentational?: boolean;
41
+ }
42
+ /**
43
+ * Register a builder component's gate policy. Ids are namespaced
44
+ * `custom:<slug>` (managed ids are also accepted, letting a host re-declare a
45
+ * managed component's default gate). Throws on a malformed id — a typo'd
46
+ * registration would otherwise silently resolve DENIED.
47
+ */
48
+ export declare function registerComponent(registration: ComponentRegistration): void;
49
+ /** Remove a registration (host teardown / tests). */
50
+ export declare function unregisterComponent(id: string): void;
51
+ /** TEST ONLY — clear every registration. */
52
+ export declare function __resetComponentRegistry(): void;
53
+ /** The resolved gate policy for one component id. */
54
+ export interface ResolvedComponentPolicy {
55
+ componentId: string;
56
+ /** Render-gate permission; null ONLY when `presentational`. */
57
+ permission: string | null;
58
+ /** Every render permission that must pass. Sensitive components include
59
+ * their managed default as an AND-floor plus any stricter override. */
60
+ requiredPermissions: readonly string[];
61
+ /** Permission for the component's mutating affordances. */
62
+ writePermission: string;
63
+ /** How the component renders when the viewer lacks `permission`. */
64
+ gateMode: ComponentGateMode;
65
+ /** Renders ungated (explicit flag only). */
66
+ presentational: boolean;
67
+ /** Whether the id is one of the contracts-owned sensitive components. */
68
+ sensitive: boolean;
69
+ /** True when the id or its resolved permission policy is invalid: render
70
+ * DENIED before evaluating any permission claim. */
71
+ unknown: boolean;
72
+ }
73
+ /**
74
+ * Resolve the gate policy for `componentId`.
75
+ *
76
+ * Per-field precedence: builder registration → subscriber overlay (`/me`) →
77
+ * managed default → derived fail-closed default. Unknown ids and invalid
78
+ * resolved permission sets resolve `{ unknown: true, gateMode: "denied" }` —
79
+ * the gate renders AccessDenied, never the component.
80
+ */
81
+ export declare function resolveComponentPolicy(componentId: string, overlays?: readonly ComponentAccessPolicyRow[] | null): ResolvedComponentPolicy;
82
+ //# sourceMappingURL=component-policy.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"component-policy.d.ts","sourceRoot":"","sources":["../src/component-policy.ts"],"names":[],"mappings":"AA6BA,OAAO,KAAK,EAAE,wBAAwB,EAAE,MAAM,YAAY,CAAC;AAE3D;oEACoE;AACpE,eAAO,MAAM,oBAAoB,oDAKvB,CAAC;AAEX,MAAM,MAAM,iBAAiB,GAAG,CAAC,OAAO,oBAAoB,CAAC,CAAC,MAAM,CAAC,CAAC;AAEtE,mEAAmE;AACnE,wBAAgB,mBAAmB,CAAC,IAAI,EAAE,MAAM,GAAG,IAAI,IAAI,iBAAiB,CAE3E;AAED;0CAC0C;AAC1C,MAAM,WAAW,0BAA0B;IACzC,UAAU,EAAE,MAAM,GAAG,IAAI,CAAC;IAC1B,eAAe,CAAC,EAAE,MAAM,CAAC;IACzB,cAAc,CAAC,EAAE,IAAI,CAAC;CACvB;AAED;;wCAEwC;AACxC,eAAO,MAAM,0BAA0B,EAAE,QAAQ,CAC/C,MAAM,CAAC,MAAM,EAAE,0BAA0B,CAAC,CAsB3C,CAAC;AAEF;gFACgF;AAChF,eAAO,MAAM,wBAAwB,wDAI3B,CAAC;AAEX,yEAAyE;AACzE,wBAAgB,uBAAuB,CAAC,EAAE,EAAE,MAAM,GAAG,OAAO,CAE3D;AAaD,qEAAqE;AACrE,eAAO,MAAM,4BAA4B,QAAmC,CAAC;AAE7E,mEAAmE;AACnE,wBAAgB,oBAAoB,CAAC,EAAE,EAAE,MAAM,GAAG,OAAO,CAExD;AAMD,MAAM,WAAW,qBAAqB;IACpC;wCACoC;IACpC,EAAE,EAAE,MAAM,CAAC;IACX;sBACkB;IAClB,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,2EAA2E;IAC3E,eAAe,CAAC,EAAE,MAAM,CAAC;IACzB,8CAA8C;IAC9C,QAAQ,CAAC,EAAE,iBAAiB,CAAC;IAC7B,iEAAiE;IACjE,cAAc,CAAC,EAAE,OAAO,CAAC;CAC1B;AAID;;;;;GAKG;AACH,wBAAgB,iBAAiB,CAAC,YAAY,EAAE,qBAAqB,GAAG,IAAI,CAgB3E;AAED,qDAAqD;AACrD,wBAAgB,mBAAmB,CAAC,EAAE,EAAE,MAAM,GAAG,IAAI,CAEpD;AAED,4CAA4C;AAC5C,wBAAgB,wBAAwB,IAAI,IAAI,CAE/C;AAMD,qDAAqD;AACrD,MAAM,WAAW,uBAAuB;IACtC,WAAW,EAAE,MAAM,CAAC;IACpB,+DAA+D;IAC/D,UAAU,EAAE,MAAM,GAAG,IAAI,CAAC;IAC1B;4EACwE;IACxE,mBAAmB,EAAE,SAAS,MAAM,EAAE,CAAC;IACvC,2DAA2D;IAC3D,eAAe,EAAE,MAAM,CAAC;IACxB,oEAAoE;IACpE,QAAQ,EAAE,iBAAiB,CAAC;IAC5B,4CAA4C;IAC5C,cAAc,EAAE,OAAO,CAAC;IACxB,yEAAyE;IACzE,SAAS,EAAE,OAAO,CAAC;IACnB;yDACqD;IACrD,OAAO,EAAE,OAAO,CAAC;CAClB;AAiBD;;;;;;;GAOG;AACH,wBAAgB,sBAAsB,CACpC,WAAW,EAAE,MAAM,EACnB,QAAQ,CAAC,EAAE,SAAS,wBAAwB,EAAE,GAAG,IAAI,GACpD,uBAAuB,CAqFzB"}