@farthershore/farthershore-js 0.8.6 → 0.9.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.
- package/CHANGELOG.md +30 -1
- package/README.md +125 -159
- package/dist/bootstrap.d.ts.map +1 -1
- package/dist/bootstrap.js +2 -2
- package/dist/bootstrap.js.map +1 -1
- package/dist/client.d.ts +1 -1
- package/dist/components/chrome.d.ts.map +1 -1
- package/dist/components/chrome.js +1 -1
- package/dist/components/chrome.js.map +1 -1
- package/dist/components/docs-chrome/language-context.d.ts +4 -0
- package/dist/components/docs-chrome/language-context.d.ts.map +1 -1
- package/dist/components/docs-chrome/language-context.js +9 -1
- package/dist/components/docs-chrome/language-context.js.map +1 -1
- package/dist/components/docs-chrome/language.d.ts +18 -4
- package/dist/components/docs-chrome/language.d.ts.map +1 -1
- package/dist/components/docs-chrome/language.js +34 -11
- package/dist/components/docs-chrome/language.js.map +1 -1
- package/dist/components/docs.css +11 -4
- package/dist/components/index.d.ts +2 -2
- package/dist/components/index.d.ts.map +1 -1
- package/dist/components/index.js +2 -1
- package/dist/components/index.js.map +1 -1
- package/dist/components/monogram.d.ts +0 -1
- package/dist/components/monogram.d.ts.map +1 -1
- package/dist/components/monogram.js +1 -1
- package/dist/components/monogram.js.map +1 -1
- package/dist/components/product-docs/markdown.d.ts +14 -0
- package/dist/components/product-docs/markdown.d.ts.map +1 -1
- package/dist/components/product-docs/markdown.js +16 -0
- package/dist/components/product-docs/markdown.js.map +1 -1
- package/dist/components/product-docs/product-docs-customize.d.ts +4 -6
- package/dist/components/product-docs/product-docs-customize.d.ts.map +1 -1
- package/dist/components/product-docs/product-docs-customize.js +3 -5
- package/dist/components/product-docs/product-docs-customize.js.map +1 -1
- package/dist/components/product-docs/product-docs-mdx.d.ts +4 -3
- package/dist/components/product-docs/product-docs-mdx.d.ts.map +1 -1
- package/dist/components/product-docs/product-docs-mdx.js +97 -27
- package/dist/components/product-docs/product-docs-mdx.js.map +1 -1
- package/dist/components/product-docs/product-docs-shell.d.ts +1 -3
- package/dist/components/product-docs/product-docs-shell.d.ts.map +1 -1
- package/dist/components/product-docs/product-docs-shell.js +2 -9
- package/dist/components/product-docs/product-docs-shell.js.map +1 -1
- package/dist/components/product-docs/product-docs-view.d.ts +2 -3
- package/dist/components/product-docs/product-docs-view.d.ts.map +1 -1
- package/dist/components/product-docs/product-docs-view.js +5 -11
- package/dist/components/product-docs/product-docs-view.js.map +1 -1
- package/dist/components/product-docs/product-docs.d.ts +1 -2
- package/dist/components/product-docs/product-docs.d.ts.map +1 -1
- package/dist/components/product-docs/product-docs.js +1 -3
- package/dist/components/product-docs/product-docs.js.map +1 -1
- package/dist/components/root.d.ts +2 -2
- package/dist/components/root.d.ts.map +1 -1
- package/dist/components/root.js +1 -7
- package/dist/components/root.js.map +1 -1
- package/dist/components/theme.d.ts +1 -13
- package/dist/components/theme.d.ts.map +1 -1
- package/dist/components/theme.js +1 -87
- package/dist/components/theme.js.map +1 -1
- package/dist/errors.d.ts +11 -0
- package/dist/errors.d.ts.map +1 -1
- package/dist/errors.js +11 -0
- package/dist/errors.js.map +1 -1
- package/dist/generated/version.d.ts +2 -2
- package/dist/generated/version.js +2 -2
- package/dist/http.d.ts +8 -0
- package/dist/http.d.ts.map +1 -1
- package/dist/http.js +10 -2
- package/dist/http.js.map +1 -1
- package/dist/index.d.ts +1 -1
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js.map +1 -1
- package/dist/resources/account.d.ts.map +1 -1
- package/dist/resources/account.js +6 -0
- package/dist/resources/account.js.map +1 -1
- package/dist/resources/auth.d.ts.map +1 -1
- package/dist/resources/auth.js +3 -0
- package/dist/resources/auth.js.map +1 -1
- package/dist/resources/billing.d.ts.map +1 -1
- package/dist/resources/billing.js +3 -0
- package/dist/resources/billing.js.map +1 -1
- package/dist/resources/entitlements.d.ts.map +1 -1
- package/dist/resources/entitlements.js +1 -0
- package/dist/resources/entitlements.js.map +1 -1
- package/dist/resources/resources.d.ts.map +1 -1
- package/dist/resources/resources.js +1 -0
- package/dist/resources/resources.js.map +1 -1
- package/dist/types.d.ts +5 -13
- package/dist/types.d.ts.map +1 -1
- package/dist/types.js.map +1 -1
- package/package.json +1 -1
package/CHANGELOG.md
CHANGED
|
@@ -3,7 +3,36 @@
|
|
|
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
|
-
## [
|
|
6
|
+
## [0.9.0] - 2026-06-29
|
|
7
|
+
|
|
8
|
+
### Changed (BREAKING)
|
|
9
|
+
|
|
10
|
+
- Removed the no-code theming surface as part of the platform/repo branding
|
|
11
|
+
separation: `FsAppearance` is trimmed to `{ theme, brandColor, variables }`
|
|
12
|
+
(the `fontFamily`/`radius`/`density`/`colorScheme` dimensions and the
|
|
13
|
+
`FsFontFamily`/`FsRadius`/`FsDensity`/`FsColorScheme` types are gone), and
|
|
14
|
+
`BusinessAppearance` + `primaryColor` are dropped from the branding/bootstrap
|
|
15
|
+
types. Theme color is now the hardcoded base token `--fs-color-brand: #6366f1`;
|
|
16
|
+
fonts/radius/density are editable template CSS. Light/dark mode + the
|
|
17
|
+
`variables` escape hatch are unchanged.
|
|
18
|
+
|
|
19
|
+
### Added
|
|
20
|
+
|
|
21
|
+
- `<CodeGroup>` component: a tabbed code block container for the docs surface.
|
|
22
|
+
- Open-languages docs boot: the SDK now accepts and forwards an
|
|
23
|
+
`openLanguages` hint to the docs primitives so the builder's configured
|
|
24
|
+
language tabs open on first load.
|
|
25
|
+
- `docsEnabled` boot bit: bootstrapped `Business` now carries a `docsEnabled`
|
|
26
|
+
flag; the docs surface renders only when this is `true`.
|
|
27
|
+
|
|
28
|
+
## [0.8.7] - 2026-06-28
|
|
29
|
+
|
|
30
|
+
### Fixed
|
|
31
|
+
|
|
32
|
+
- Best-effort authenticated reads (`/me/*` etc.) no longer trip the
|
|
33
|
+
`onUnauthorized` redirect on a transient 401: a `recoverAuth` transport flag
|
|
34
|
+
lets those reads fail soft instead of bouncing the portal through sign-in
|
|
35
|
+
(fixes the dev-portal `/docs` auth loop).
|
|
7
36
|
|
|
8
37
|
## [0.8.6] - 2026-06-28
|
|
9
38
|
|
package/README.md
CHANGED
|
@@ -1,49 +1,36 @@
|
|
|
1
1
|
# @farthershore/farthershore-js
|
|
2
2
|
|
|
3
|
-
The **Farther Shore Frontend SDK** — the
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
>
|
|
8
|
-
>
|
|
9
|
-
>
|
|
10
|
-
> portal, managed template, and real builder features; pin this package exactly
|
|
11
|
-
> or use a patch-only range. See [`PUBLISHING.md`](./PUBLISHING.md) for the gates
|
|
12
|
-
> to `1.0.0` (wire-contract lock, browser token exchange, gateway CORS, stage
|
|
13
|
-
> e2e).
|
|
14
|
-
> The `@stripe/stripe-js` analog to the upstream runtime package
|
|
15
|
-
> `@farthershore/backend`.
|
|
3
|
+
The **Farther Shore Frontend SDK** — the browser + React integration layer for
|
|
4
|
+
your product's subscriber portal.
|
|
5
|
+
|
|
6
|
+
> **Status: `0.9.0`.** Pre-1.0 (`0.x`): a minor bump (e.g. `0.8.x` → `0.9.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).
|
|
16
10
|
|
|
17
11
|
```bash
|
|
18
12
|
pnpm add @farthershore/farthershore-js # React is an optional peer (for /react)
|
|
19
13
|
```
|
|
20
14
|
|
|
21
|
-
##
|
|
15
|
+
## What this is
|
|
22
16
|
|
|
23
|
-
|
|
24
|
-
|
|
17
|
+
When you build a software business on Farther Shore, your subscribers get a
|
|
18
|
+
portal where they sign in, pick a plan, manage API keys, watch their usage, and
|
|
19
|
+
handle billing — and where you can surface your own product features. This SDK is
|
|
20
|
+
how a frontend talks to that portal.
|
|
25
21
|
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
const { product } = await fs.bootstrap(); // discover the product for this host
|
|
34
|
-
const keys = await fs.keys.list(); // → Core (platform)
|
|
35
|
-
const forecast = await fs.feature("weather").json("/forecast?city=NYC"); // → Gateway
|
|
36
|
-
```
|
|
22
|
+
Your frontend code never deals with Core URLs, Gateway URLs, auth endpoints, or
|
|
23
|
+
routing rules. It **expresses intent** — "list my API keys", "subscribe to this
|
|
24
|
+
plan", "call my `weather` feature" — and the SDK decides **where** each request
|
|
25
|
+
goes (Core for platform concerns like auth, plans, usage, and billing; the
|
|
26
|
+
Gateway for your product's own features), **how** it's authenticated, and which
|
|
27
|
+
host/environment scoping headers to attach.
|
|
37
28
|
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
|
|
29
|
+
You can use it two ways: a framework-agnostic client (`createFartherShoreClient`)
|
|
30
|
+
for any frontend, or the `react` subpath + the managed component kit
|
|
31
|
+
(zero-config UI for plans, usage, billing, keys, docs, and more).
|
|
41
32
|
|
|
42
|
-
##
|
|
43
|
-
|
|
44
|
-
```bash
|
|
45
|
-
pnpm add @farthershore/farthershore-js
|
|
46
|
-
```
|
|
33
|
+
## Quickstart
|
|
47
34
|
|
|
48
35
|
```ts
|
|
49
36
|
import { createFartherShoreClient } from "@farthershore/farthershore-js";
|
|
@@ -54,56 +41,60 @@ const fs = createFartherShoreClient({
|
|
|
54
41
|
coreUrl: "https://core.farthershore.com",
|
|
55
42
|
});
|
|
56
43
|
|
|
57
|
-
// 2. Discover the
|
|
58
|
-
|
|
44
|
+
// 2. Discover the business / environment / plans for this host
|
|
45
|
+
// (memoized; safe to re-call).
|
|
46
|
+
const { business, plans } = await fs.bootstrap();
|
|
59
47
|
|
|
60
|
-
// 3. Authenticate. In a preview/test
|
|
61
|
-
// session (Clerk
|
|
48
|
+
// 3. Authenticate. In a preview/test environment, exchange a persona access key
|
|
49
|
+
// for a session. (Clerk environments instead pass `getToken` in the config,
|
|
50
|
+
// or call `fs.auth.setToken(token)`.)
|
|
62
51
|
await fs.auth.signIn({ apiKey: "fsk_test_…" });
|
|
63
52
|
|
|
64
53
|
// 4. Read platform state through the typed resources (→ Core).
|
|
65
54
|
const keys = await fs.keys.list(); // ApiKey[]
|
|
66
55
|
const usage = await fs.usage.snapshot(); // { summary, events, billingBasis }
|
|
67
|
-
usage.summary.tokens_used; // product-defined meters are exposed by key
|
|
68
|
-
usage.events[0]?.dimensions; // per-event meter values
|
|
69
56
|
|
|
70
|
-
// 5. Call
|
|
71
|
-
// then express intent by feature name + path — no Gateway URL in app
|
|
57
|
+
// 5. Call one of YOUR product features (→ Gateway). Set the consumer API key
|
|
58
|
+
// once, then express intent by feature name + path — no Gateway URL in app
|
|
59
|
+
// code.
|
|
72
60
|
fs.setApiKey("fsk_live_…");
|
|
73
61
|
const forecast = await fs.feature("weather").json("/forecast?city=NYC");
|
|
74
62
|
```
|
|
75
63
|
|
|
76
|
-
In React, the same calls are hooks that return `{ data, loading, error, refresh }`
|
|
77
|
-
(plus mutations) — see [React](#react-farthershorefarthershore-jsreact) below:
|
|
78
|
-
|
|
79
|
-
```tsx
|
|
80
|
-
const { data, loading, error, refresh } = useApiKeys();
|
|
81
|
-
```
|
|
82
|
-
|
|
83
64
|
## Surface
|
|
84
65
|
|
|
85
|
-
| Namespace
|
|
86
|
-
|
|
|
87
|
-
| `fs.bootstrap()`
|
|
88
|
-
| `fs.business`
|
|
89
|
-
| `fs.auth`
|
|
90
|
-
| `fs.keys`
|
|
91
|
-
| `fs.usage`
|
|
92
|
-
| `fs.billing`
|
|
93
|
-
| `fs.plans`
|
|
94
|
-
| `fs.
|
|
66
|
+
| Namespace | Routes to | Methods |
|
|
67
|
+
| --------------------------------------------------------- | --------------------- | ----------------------------------------------------------------------- |
|
|
68
|
+
| `fs.bootstrap()` | Core (public resolve) | discover business / environment / plans / branding |
|
|
69
|
+
| `fs.business` | (bootstrap) | `get()` |
|
|
70
|
+
| `fs.auth` | Core | `getSession()`, `signIn({apiKey})` (persona), `signOut()`, `setToken()` |
|
|
71
|
+
| `fs.keys` | Core | `list()`, `create()`, `revoke()`, `rotate()` |
|
|
72
|
+
| `fs.usage` | Core | `summary()`, `events()`, `snapshot()` |
|
|
73
|
+
| `fs.billing` | Core | `subscription()`, `openBillingPortal()`, `creditBalance()` |
|
|
74
|
+
| `fs.plans` | Core / (bootstrap) | `list()`, `subscribe()` |
|
|
75
|
+
| `fs.entitlements` / `fs.features` | Core | plan entitlements + capability/feature gating |
|
|
76
|
+
| `fs.me` / `fs.organizations` / `fs.team` / `fs.auditLogs` | Core | subscriber, org, team, and audit-log reads |
|
|
77
|
+
| `fs.feature(name)` / `fs.invoke(path)` | **Gateway** | `fetch(path)`, `json(path)` |
|
|
78
|
+
|
|
79
|
+
The package also ships typed domain models (`Business`, `Plan`, `Subscription`,
|
|
80
|
+
`UsageSnapshot`, `ApiKey`, …), the gateway error/deny taxonomy
|
|
81
|
+
(`FartherShoreApiError`, `LimitExceededError`, `FS_DENY_CODES`,
|
|
82
|
+
`retryWhileThrottled`, …), and pure display helpers (`formatPlanPrice`,
|
|
83
|
+
`estimateBill`, `usageToCsv`, …) so every frontend renders the catalog and usage
|
|
84
|
+
identically.
|
|
95
85
|
|
|
96
86
|
## Auth
|
|
97
87
|
|
|
98
|
-
- **Core** calls use the
|
|
99
|
-
The host app owns the session:
|
|
100
|
-
- _Clerk
|
|
101
|
-
call `fs.auth.setToken(token)`.
|
|
102
|
-
- _Persona/preview
|
|
103
|
-
|
|
88
|
+
- **Core** calls use the subscriber's **session token** as
|
|
89
|
+
`Authorization: Bearer`. The host app owns the session:
|
|
90
|
+
- _Clerk environments:_ pass `getToken` (from the Clerk browser SDK) in the
|
|
91
|
+
config, or call `fs.auth.setToken(token)`.
|
|
92
|
+
- _Persona / preview environments:_
|
|
93
|
+
`fs.auth.signIn({ apiKey: "fsk_test_…" })` — the SDK exchanges the key for a
|
|
94
|
+
session and manages the token itself.
|
|
104
95
|
- **Gateway** (feature) calls use the consumer **API key** (`fsk_…`):
|
|
105
|
-
`fs.setApiKey(key)` (or `fs.feature(name).fetch(path, { apiKey })`). The
|
|
106
|
-
host is discovered at bootstrap (the
|
|
96
|
+
`fs.setApiKey(key)` (or `fs.feature(name).fetch(path, { apiKey })`). The
|
|
97
|
+
gateway host is discovered at bootstrap (the business's `gatewayHost`).
|
|
107
98
|
|
|
108
99
|
## Configuration
|
|
109
100
|
|
|
@@ -114,7 +105,7 @@ createFartherShoreClient({
|
|
|
114
105
|
productId, // optional — bootstrap() discovers it
|
|
115
106
|
environmentId, // ephemeral/preview env scoping
|
|
116
107
|
organizationId, // org-owned subscriptions
|
|
117
|
-
gatewayUrl, // override (else derived from the
|
|
108
|
+
gatewayUrl, // override (else derived from the business gatewayHost)
|
|
118
109
|
apiKey, // consumer key for Gateway calls
|
|
119
110
|
getToken, // () => session bearer (Clerk) | null
|
|
120
111
|
fetch, // injectable (tests / SSR)
|
|
@@ -122,30 +113,23 @@ createFartherShoreClient({
|
|
|
122
113
|
```
|
|
123
114
|
|
|
124
115
|
Portals served through the Farther Shore edge need **no config at all** —
|
|
125
|
-
`createFartherShoreClient()` works: the edge injects
|
|
126
|
-
(the environment's `coreUrl` plus the Clerk connection
|
|
116
|
+
`createFartherShoreClient()` works on its own: the edge injects
|
|
117
|
+
`window.__FS_CONFIG__` (the environment's `coreUrl` plus the Clerk connection)
|
|
127
118
|
into the served HTML, and the SDK falls back to it. Explicit config always wins,
|
|
128
119
|
and everywhere else (local dev, SSR, self-hosting) `coreUrl` is required.
|
|
129
120
|
|
|
130
|
-
On Clerk **satellite** portals (the portal
|
|
121
|
+
On Clerk **satellite** portals (the portal is on a different domain than the
|
|
131
122
|
platform's sign-in domain), the managed auth layer also owns the cross-domain
|
|
132
|
-
session handshake: public visits never redirect
|
|
133
|
-
|
|
134
|
-
|
|
135
|
-
portal" links — triggers an immediate pre-paint redirect through the primary
|
|
136
|
-
domain that lands back signed in. `useFsAuth().pendingSsoRedirect` is true
|
|
137
|
-
while that navigation is in flight (keep a splash up). See
|
|
138
|
-
`src/components/satellite-boot.ts` for the exact decision table.
|
|
123
|
+
session handshake: public visits never redirect, and a `#fs-sso` URL fragment
|
|
124
|
+
(appended by trusted surfaces like the dashboard's "Open portal" links) triggers
|
|
125
|
+
an immediate redirect through the primary domain that lands back signed in.
|
|
139
126
|
|
|
140
|
-
|
|
127
|
+
### SSR / server usage
|
|
141
128
|
|
|
142
129
|
On a server there is no `window`/`location` to infer the portal host from and no
|
|
143
|
-
ambient browser session — so use `createServerClient`,
|
|
144
|
-
`createFartherShoreClient`
|
|
145
|
-
|
|
146
|
-
via `getToken` (each request authenticates as a different user). Behaviour is
|
|
147
|
-
identical to the browser client — the config already guards `globalThis.location`
|
|
148
|
-
and requires an injectable `fetch` — so this is purely a discoverable entry point.
|
|
130
|
+
ambient browser session — so use `createServerClient`, an explicit alias for
|
|
131
|
+
`createFartherShoreClient`. Pass `portalHost` and `fetch` instead of relying on
|
|
132
|
+
globals, and resolve the per-request session via `getToken`.
|
|
149
133
|
|
|
150
134
|
```ts
|
|
151
135
|
import { createServerClient } from "@farthershore/farthershore-js";
|
|
@@ -154,7 +138,7 @@ const fs = createServerClient({
|
|
|
154
138
|
coreUrl: process.env.FS_CORE_URL!,
|
|
155
139
|
portalHost: "weather.farthershore.com", // no window.location on the server
|
|
156
140
|
getToken: () => sessionTokenForThisRequest, // per-request bearer
|
|
157
|
-
fetch, // Node
|
|
141
|
+
fetch, // Node global, or an injected impl
|
|
158
142
|
});
|
|
159
143
|
|
|
160
144
|
const sub = await fs.billing.subscription();
|
|
@@ -164,7 +148,7 @@ const sub = await fs.billing.subscription();
|
|
|
164
148
|
|
|
165
149
|
The hooks live in a **subpath** of the same package — `react` is an _optional_
|
|
166
150
|
peer dependency, so the core stays framework-agnostic and only React apps pull it
|
|
167
|
-
in
|
|
151
|
+
in (no second package to version).
|
|
168
152
|
|
|
169
153
|
```tsx
|
|
170
154
|
import { createFartherShoreClient } from "@farthershore/farthershore-js";
|
|
@@ -189,54 +173,63 @@ function App() {
|
|
|
189
173
|
}
|
|
190
174
|
|
|
191
175
|
function ApiKeys() {
|
|
192
|
-
const { data, loading, create, revoke } = useApiKeys();
|
|
193
|
-
// …each hook is { data, loading, error, refresh } plus its mutations.
|
|
176
|
+
const { data, loading, error, create, revoke } = useApiKeys();
|
|
177
|
+
// …each read hook is { data, loading, error, refresh } plus its mutations.
|
|
194
178
|
}
|
|
195
179
|
```
|
|
196
180
|
|
|
197
|
-
|
|
181
|
+
Read hooks return `{ data, loading, error, refresh }` and include their
|
|
182
|
+
mutations: `useBootstrap`, `useBusiness`, `useSession` (+ `signIn`/`signOut`),
|
|
198
183
|
`useApiKeys` (+ `create`/`revoke`/`rotate`), `useUsage`, `useBilling` (+
|
|
199
|
-
`openBillingPortal`), `useFeature(name)`, plus
|
|
200
|
-
|
|
201
|
-
|
|
202
|
-
## Customizing the portal (the fork model)
|
|
184
|
+
`openBillingPortal`), `usePlans`, `useEntitlements`, `useFeature(name)`, plus
|
|
185
|
+
team/org/audit/limit hooks and `useFartherShore()` for the raw client.
|
|
203
186
|
|
|
204
|
-
|
|
205
|
-
**edit the product repo's `frontend/` tree** (what `farthershore init` / platform
|
|
206
|
-
provisioning scaffolds): change the components, layout, and styles, then push —
|
|
207
|
-
the platform rebuilds `frontend/` into a custom release and serves it instead of
|
|
208
|
-
the default. Your product's _contract_ (plans, pricing, routes, meters) lives in
|
|
209
|
-
`business/` and is managed as code; the UI lives in `frontend/`.
|
|
187
|
+
## Managed components
|
|
210
188
|
|
|
211
|
-
|
|
212
|
-
|
|
213
|
-
|
|
214
|
-
|
|
215
|
-
`<ApiKeysPanel/>`, …).
|
|
216
|
-
|
|
217
|
-
### Rendering a product-authored nav after a fork — `<FsManifestNav>`
|
|
218
|
-
|
|
219
|
-
A product can author a `frontendManifest` (nav + pages) in `business.config.ts`.
|
|
220
|
-
The managed default template renders it, but a **fork that replaces the template
|
|
221
|
-
silently drops it**. `<FsManifestNav>` is the opt-in fix: it maps the manifest's
|
|
222
|
-
`nav` entries to links so the authored nav survives a fork with one import. It's
|
|
223
|
-
zero-prop, accessible (a `<nav aria-label>` of links with `aria-current` on the
|
|
224
|
-
active path), and renders nothing when no manifest was authored.
|
|
189
|
+
Every product ships with a generic managed portal by default. The component kit
|
|
190
|
+
is the same set of building blocks that portal is made of, available à la carte —
|
|
191
|
+
every component works with **zero props** under `<FartherShoreRoot>` (it reads
|
|
192
|
+
its data through the SDK; props are optional overrides).
|
|
225
193
|
|
|
226
194
|
```tsx
|
|
227
|
-
import {
|
|
228
|
-
|
|
229
|
-
|
|
230
|
-
|
|
195
|
+
import {
|
|
196
|
+
FartherShoreRoot,
|
|
197
|
+
PlansTable,
|
|
198
|
+
UsageCard,
|
|
199
|
+
BillingSummary,
|
|
200
|
+
ApiKeysPanel,
|
|
201
|
+
} from "@farthershore/farthershore-js/components";
|
|
202
|
+
import "@farthershore/farthershore-js/components/styles.css";
|
|
203
|
+
|
|
204
|
+
<FartherShoreRoot client={fs}>
|
|
205
|
+
<PlansTable />
|
|
206
|
+
<UsageCard />
|
|
207
|
+
<BillingSummary />
|
|
208
|
+
<ApiKeysPanel />
|
|
209
|
+
</FartherShoreRoot>;
|
|
231
210
|
```
|
|
232
211
|
|
|
212
|
+
`<FartherShoreRoot>` is one wrapper: provider + bootstrap gate + theme + managed
|
|
213
|
+
auth (Clerk satellite or persona, picked from the environment), with no host
|
|
214
|
+
glue. Theming is a single `appearance` prop —
|
|
215
|
+
`{ theme, brandColor, variables }` — that resolves to `--fs-*` CSS variables, so
|
|
216
|
+
retheming (including dark ↔ light) is a state update with no rebuild.
|
|
217
|
+
|
|
218
|
+
To **customize** the portal, edit the product repo's `frontend/` tree (what the
|
|
219
|
+
platform scaffolds) and push — the platform rebuilds it into a custom release and
|
|
220
|
+
serves it instead of the default. Your product's _contract_ (plans, pricing,
|
|
221
|
+
routes, meters) lives in `business/` and is managed as code; the UI lives in
|
|
222
|
+
`frontend/`.
|
|
223
|
+
|
|
233
224
|
### Docs and API reference
|
|
234
225
|
|
|
235
|
-
The docs kit
|
|
236
|
-
|
|
237
|
-
|
|
238
|
-
|
|
239
|
-
|
|
226
|
+
The docs kit renders a developer portal for your product. `<BusinessDocs/>` is
|
|
227
|
+
the whole experience in one tag; it's composed from public primitives
|
|
228
|
+
(sidebar/nav, search, version selector, markdown renderers, code cards) you can
|
|
229
|
+
re-compose for a custom docs site, with a headless `useBusinessDocs()` underneath.
|
|
230
|
+
`<BusinessApiReference/>` renders an OpenAPI 3.x document as a docs-styled API
|
|
231
|
+
reference. `<CodeGroup>` is the multi-language fenced-code block used inside docs
|
|
232
|
+
pages.
|
|
240
233
|
|
|
241
234
|
```tsx
|
|
242
235
|
import {
|
|
@@ -265,40 +258,13 @@ const spec = {
|
|
|
265
258
|
<BusinessApiReference document={spec} />;
|
|
266
259
|
```
|
|
267
260
|
|
|
268
|
-
|
|
269
|
-
|
|
270
|
-
-
|
|
271
|
-
|
|
272
|
-
- A browser-safe **short-lived gateway token** (vs. a long-lived `fsk_` key in the
|
|
273
|
-
page) — the platform's `fsc_` context token is server-minted today.
|
|
261
|
+
The docs components are SSR-safe and host-agnostic (they run on apps not served
|
|
262
|
+
by the platform too); `react-markdown` / `remark-gfm` are optional peers
|
|
263
|
+
(lazy-loaded, with a plain-text fallback when absent), and the docs stylesheet
|
|
264
|
+
ships separately as `@farthershore/farthershore-js/components/docs.css`.
|
|
274
265
|
|
|
275
|
-
##
|
|
266
|
+
## Learn more
|
|
276
267
|
|
|
277
|
-
|
|
278
|
-
|
|
279
|
-
|
|
280
|
-
caret range is unsafe here:
|
|
281
|
-
|
|
282
|
-
- ❌ `^0.8` / `^0.8.6` — caret does **not** lock the minor across `0.x`; it would
|
|
283
|
-
silently accept a breaking `0.9.0`.
|
|
284
|
-
- ✅ Pin **exact** (`0.8.6`) or use a patch-only tilde (`~0.8.6`) until `1.0.0`.
|
|
285
|
-
|
|
286
|
-
Breaking changes within `0.x` are recorded in [`CHANGELOG.md`](./CHANGELOG.md)
|
|
287
|
-
(Keep a Changelog format) — read it before bumping.
|
|
288
|
-
|
|
289
|
-
**Path to `1.0.0`:** the API graduates to a stable major once the
|
|
290
|
-
[`PUBLISHING.md`](./PUBLISHING.md) gates clear — wire-contract lock (generated
|
|
291
|
-
from / pinned to `@farthershore/contracts`), the browser-safe gateway token
|
|
292
|
-
exchange, gateway CORS for product origins, and a live-stage e2e. At `1.0.0`,
|
|
293
|
-
caret ranges become safe again.
|
|
294
|
-
|
|
295
|
-
The `/react` subpath ships in the same package and version; **`react` is an
|
|
296
|
-
_optional_ peer dependency**, so non-React consumers never pull it in.
|
|
297
|
-
|
|
298
|
-
## Scripts
|
|
299
|
-
|
|
300
|
-
```bash
|
|
301
|
-
pnpm --filter @farthershore/farthershore-js build # tsc → dist/
|
|
302
|
-
pnpm --filter @farthershore/farthershore-js test # vitest
|
|
303
|
-
pnpm --filter @farthershore/farthershore-js typecheck
|
|
304
|
-
```
|
|
268
|
+
See the platform docs for the full guide to building, publishing, and operating a
|
|
269
|
+
product on Farther Shore. Breaking changes within `0.x` are recorded in
|
|
270
|
+
[`CHANGELOG.md`](./CHANGELOG.md) — read it before bumping.
|
package/dist/bootstrap.d.ts.map
CHANGED
|
@@ -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,EAMT,IAAI,
|
|
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,EAMT,IAAI,EAIL,MAAM,YAAY,CAAC;AAMpB,OAAO,KAAK,EACV,cAAc,EACd,aAAa,EACb,aAAa,EACd,MAAM,8BAA8B,CAAC;AAiDtC,KAAK,YAAY,GAAG,aAAa,CAAC;AAClC,KAAK,YAAY,GAAG,aAAa,CAAC;AAQlC,KAAK,aAAa,GAAG,IAAI,CACvB,cAAc,EACZ,QAAQ,GACR,QAAQ,GACR,QAAQ,GACR,aAAa,GACb,cAAc,GACd,mBAAmB,GACnB,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,YAAY,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,IAAI,CAAC;IAC9C,iBAAiB,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,GAAG,OAAO,CAAC,GAAG,IAAI,CAAC;IAC5D,uBAAuB,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IACxC,uBAAuB,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;CACzC,CAAC;AAoFF;;uEAEuE;AACvE,wBAAgB,OAAO,CAAC,CAAC,EAAE,aAAa,GAAG,IAAI,CAqB9C;AAsED;kDACkD;AAClD,wBAAsB,gBAAgB,CAAC,GAAG,EAAE,aAAa,GAAG,OAAO,CAAC,SAAS,CAAC,CA+C7E"}
|
package/dist/bootstrap.js
CHANGED
|
@@ -28,7 +28,6 @@ function mapBranding(p) {
|
|
|
28
28
|
displayName: p.displayName ?? p.name,
|
|
29
29
|
iconUrl: p.iconUrl ?? null,
|
|
30
30
|
logoUrl: p.logoUrl ?? null,
|
|
31
|
-
primaryColor: p.primaryColor ?? null,
|
|
32
31
|
description: p.description ?? null,
|
|
33
32
|
};
|
|
34
33
|
}
|
|
@@ -46,9 +45,10 @@ function mapBusiness(p) {
|
|
|
46
45
|
portalHost: p.portalHostname,
|
|
47
46
|
docsBaseUrl: p.docsBaseUrl ?? null,
|
|
48
47
|
legalBaseUrl: p.legalBaseUrl ?? null,
|
|
48
|
+
// Absent on older Core payloads — default true (backward-compatible).
|
|
49
|
+
docsEnabled: p.docsEnabled ?? true,
|
|
49
50
|
featuredCompiledPlanId: p.featuredCompiledPlanId ?? null,
|
|
50
51
|
meters,
|
|
51
|
-
appearance: p.appearance ?? null,
|
|
52
52
|
};
|
|
53
53
|
}
|
|
54
54
|
function mapEnv(e) {
|
package/dist/bootstrap.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"bootstrap.js","sourceRoot":"","sources":["../src/bootstrap.ts"],"names":[],"mappings":"AAAA,4EAA4E;AAC5E,iFAAiF;AACjF,gFAAgF;AAChF,sCAAsC;AACtC,EAAE;AACF,+EAA+E;AAC/E,uEAAuE;AACvE,iFAAiF;AACjF,6EAA6E;AAC7E,2EAA2E;AAC3E,kDAAkD;AAElD,OAAO,EAAE,SAAS,EAAE,MAAM,WAAW,CAAC;AACtC,OAAO,EAAE,oBAAoB,EAAE,MAAM,kBAAkB,CAAC;AAExD,OAAO,EAAE,yBAAyB,EAAE,MAAM,aAAa,CAAC;
|
|
1
|
+
{"version":3,"file":"bootstrap.js","sourceRoot":"","sources":["../src/bootstrap.ts"],"names":[],"mappings":"AAAA,4EAA4E;AAC5E,iFAAiF;AACjF,gFAAgF;AAChF,sCAAsC;AACtC,EAAE;AACF,+EAA+E;AAC/E,uEAAuE;AACvE,iFAAiF;AACjF,6EAA6E;AAC7E,2EAA2E;AAC3E,kDAAkD;AAElD,OAAO,EAAE,SAAS,EAAE,MAAM,WAAW,CAAC;AACtC,OAAO,EAAE,oBAAoB,EAAE,MAAM,kBAAkB,CAAC;AAExD,OAAO,EAAE,yBAAyB,EAAE,MAAM,aAAa,CAAC;AAgHxD,6EAA6E;AAE7E,SAAS,QAAQ,CAAC,CAAqB;IACrC,MAAM,GAAG,GAAG,CAAC,CAAC,GAAG,IAAI,CAAC,CAAC,SAAS,CAAC;IACjC,IAAI,CAAC,GAAG;QAAE,OAAO,IAAI,CAAC;IACtB,OAAO;QACL,GAAG;QACH,OAAO,EAAE,CAAC,CAAC,OAAO,IAAI,CAAC,CAAC,KAAK,IAAI,GAAG;QACpC,GAAG,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,IAAI,EAAE,CAAC,CAAC,IAAI,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;KACpC,CAAC;AACJ,CAAC;AAED,SAAS,WAAW,CAAC,CAAqB;IACxC,OAAO;QACL,WAAW,EAAE,CAAC,CAAC,WAAW,IAAI,CAAC,CAAC,IAAI;QACpC,OAAO,EAAE,CAAC,CAAC,OAAO,IAAI,IAAI;QAC1B,OAAO,EAAE,CAAC,CAAC,OAAO,IAAI,IAAI;QAC1B,WAAW,EAAE,CAAC,CAAC,WAAW,IAAI,IAAI;KACnC,CAAC;AACJ,CAAC;AAED,SAAS,WAAW,CAAC,CAAqB;IACxC,MAAM,MAAM,GAAG,CAAC,CAAC,CAAC,MAAM,IAAI,EAAE,CAAC;SAC5B,GAAG,CAAC,QAAQ,CAAC;SACb,MAAM,CAAC,CAAC,CAAC,EAAc,EAAE,CAAC,CAAC,KAAK,IAAI,CAAC,CAAC;IACzC,OAAO;QACL,EAAE,EAAE,CAAC,CAAC,EAAE;QACR,IAAI,EAAE,CAAC,CAAC,eAAe,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,EAAE;QAC7C,IAAI,EAAE,CAAC,CAAC,IAAI;QACZ,WAAW,EAAE,CAAC,CAAC,WAAW,IAAI,IAAI;QAClC,QAAQ,EAAE,WAAW,CAAC,CAAC,CAAC;QACxB,WAAW,EAAE,CAAC,CAAC,eAAe;QAC9B,UAAU,EAAE,CAAC,CAAC,cAAc;QAC5B,WAAW,EAAE,CAAC,CAAC,WAAW,IAAI,IAAI;QAClC,YAAY,EAAE,CAAC,CAAC,YAAY,IAAI,IAAI;QACpC,sEAAsE;QACtE,WAAW,EAAE,CAAC,CAAC,WAAW,IAAI,IAAI;QAClC,sBAAsB,EAAE,CAAC,CAAC,sBAAsB,IAAI,IAAI;QACxD,MAAM;KACP,CAAC;AACJ,CAAC;AAED,SAAS,MAAM,CAAC,CAAgB;IAC9B,OAAO;QACL,EAAE,EAAE,CAAC,CAAC,EAAE;QACR,IAAI,EAAE,CAAC,CAAC,IAAI;QACZ,IAAI,EAAE,CAAC,CAAC,IAAI;QACZ,YAAY,EAAE,CAAC,CAAC,oBAAoB,IAAI,OAAO;QAC/C,MAAM,EAAE,CAAC,CAAC,MAAM,IAAI,IAAI;QACxB,UAAU,EAAE,CAAC,CAAC,UAAU,IAAI,IAAI;KACjC,CAAC;AACJ,CAAC;AAED,SAAS,YAAY,CAAC,CAAe;IACnC,OAAO;QACL,SAAS,EAAE,CAAC,CAAC,SAAS;QACtB,qBAAqB,EAAE,CAAC,CAAC,qBAAqB;KAC/C,CAAC;AACJ,CAAC;AAED,SAAS,YAAY,CAAC,CAAe;IACnC,OAAO;QACL,SAAS,EAAE,CAAC,CAAC,SAAS;QACtB,MAAM,EACJ,CAAC,CAAC,MAAM,CAAC,IAAI,KAAK,OAAO;YACvB,CAAC,CAAC,EAAE,IAAI,EAAE,OAAO,EAAE,IAAI,EAAE,CAAC,CAAC,MAAM,CAAC,IAAI,EAAE;YACxC,CAAC,CAAC,EAAE,IAAI,EAAE,QAAQ,EAAE,OAAO,EAAE,CAAC,CAAC,MAAM,CAAC,OAAO,EAAE;QACnD,QAAQ,EAAE,CAAC,CAAC,QAAQ;QACpB,GAAG,CAAC,CAAC,CAAC,WAAW,CAAC,CAAC,CAAC,EAAE,WAAW,EAAE,CAAC,CAAC,WAAW,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;KACzD,CAAC;AACJ,CAAC;AAED;;uEAEuE;AACvE,MAAM,UAAU,OAAO,CAAC,CAAgB;IACtC,OAAO;QACL,EAAE,EAAE,CAAC,CAAC,EAAE;QACR,GAAG,EAAE,CAAC,CAAC,GAAG;QACV,IAAI,EAAE,CAAC,CAAC,IAAI;QACZ,WAAW,EAAE,CAAC,CAAC,WAAW,IAAI,IAAI;QAClC,iBAAiB,EAAE,CAAC,CAAC,mBAAmB;QACxC,yEAAyE;QACzE,4EAA4E;QAC5E,eAAe,EAAE,CAAC,CAAC,gBAAgB,KAAK,MAAM,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,OAAO;QACjE,MAAM,EAAE,CAAC,CAAC,MAAM,IAAI,EAAE;QACtB,SAAS,EAAE,CAAC,CAAC,UAAU;QACvB,oBAAoB,EAAE,CAAC,CAAC,uBAAuB,IAAI,IAAI;QACvD,oBAAoB,EAAE,CAAC,CAAC,uBAAuB,IAAI,IAAI;QACvD,MAAM,EAAE,CAAC,CAAC,CAAC,MAAM,IAAI,EAAE,CAAC,CAAC,GAAG,CAAC,YAAY,CAAC;QAC1C,MAAM,EAAE,CAAC,CAAC,CAAC,MAAM,IAAI,EAAE,CAAC,CAAC,GAAG,CAAC,YAAY,CAAC;QAC1C,WAAW,EAAE,CAAC,CAAC,WAAW,IAAI,EAAE;QAChC,YAAY,EAAE,CAAC,CAAC,YAAY,IAAI,EAAE;QAClC,gBAAgB,EAAE,CAAC,CAAC,iBAAiB,IAAI,EAAE;QAC3C,GAAG,CAAC,CAAC,CAAC,YAAY,CAAC,CAAC,CAAC,EAAE,YAAY,EAAE,CAAC,CAAC,YAAY,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;KAC5D,CAAC;AACJ,CAAC;AAED;;;;;;;;iEAQiE;AACjE,SAAS,oBAAoB,CAC3B,GAA6C,EAC7C,KAAa,EACb,sBAAqC;IAErC,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,GAAG,CAAC;QAAE,OAAO,EAAE,CAAC;IACnC,MAAM,QAAQ,GAAG,sBAAsB;QACrC,CAAC,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,EAAE,KAAK,sBAAsB,CAAC;QACpD,CAAC,CAAC,SAAS,CAAC;IACd,SAAS,MAAM,CAAC,IAAY;QAC1B,MAAM,YAAY,GAAG,QAAQ,EAAE,gBAAgB,CAAC,IAAI,CAAC,CAAC;QACtD,IAAI,OAAO,YAAY,KAAK,QAAQ;YAAE,OAAO,YAAY,CAAC;QAC1D,KAAK,MAAM,IAAI,IAAI,KAAK,EAAE,CAAC;YACzB,MAAM,KAAK,GAAG,IAAI,CAAC,gBAAgB,CAAC,IAAI,CAAC,CAAC;YAC1C,IAAI,OAAO,KAAK,KAAK,QAAQ;gBAAE,OAAO,KAAK,CAAC;QAC9C,CAAC;QACD,OAAO,SAAS,CAAC;IACnB,CAAC;IACD,OAAO,GAAG;SACP,MAAM,CAAC,CAAC,CAAC,EAA4B,EAAE,CAAC,CAAC,CAAC,CAAC,IAAI,OAAO,CAAC,CAAC,IAAI,KAAK,QAAQ,CAAC;SAC1E,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE;QACT,MAAM,GAAG,GAAG,MAAM,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC;QAC3B,OAAO;YACL,IAAI,EAAE,CAAC,CAAC,IAAI;YACZ,GAAG,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE,OAAO,EAAE,CAAC,CAAC,OAAO,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;YAC5C,KAAK,EAAE,CAAC,CAAC,KAAK,KAAK,SAAS,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,cAAc;YACzD,GAAG,CAAC,CAAC,CAAC,WAAW,CAAC,CAAC,CAAC,EAAE,WAAW,EAAE,CAAC,CAAC,WAAW,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;YACxD,GAAG,CAAC,GAAG,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,GAAG,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;SACtC,CAAC;IACJ,CAAC,CAAC,CAAC;AACP,CAAC;AAED;;8CAE8C;AAC9C,SAAS,kBAAkB,CAAC,QAAkB,EAAE,KAAa;IAC3D,MAAM,IAAI,GAAG,IAAI,GAAG,EAAU,CAAC;IAC/B,IAAI,KAAK,CAAC,MAAM,GAAG,CAAC;QAAE,IAAI,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC;IACxC,IAAI,KAAK,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,iBAAiB,GAAG,CAAC,IAAI,CAAC,CAAC,MAAM,CAAC,MAAM,GAAG,CAAC,CAAC,EAAE,CAAC;QACtE,IAAI,CAAC,GAAG,CAAC,SAAS,CAAC,CAAC;IACtB,CAAC;IACD,IAAI,KAAK,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,MAAM,CAAC,MAAM,GAAG,CAAC,CAAC;QAAE,IAAI,CAAC,GAAG,CAAC,eAAe,CAAC,CAAC;IACtE,IACE,KAAK,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CACf,CAAC,CAAC,MAAM,CAAC,IAAI,CACX,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,MAAM,CAAC,IAAI,KAAK,OAAO,IAAI,CAAC,CAAC,MAAM,CAAC,IAAI,KAAK,OAAO,CAC9D,CACF,EACD,CAAC;QACD,IAAI,CAAC,GAAG,CAAC,aAAa,CAAC,CAAC;IAC1B,CAAC;IACD,IAAI,KAAK,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,MAAM,CAAC,MAAM,GAAG,CAAC,IAAI,CAAC,CAAC,SAAS,GAAG,CAAC,CAAC,EAAE,CAAC;QAC9D,IAAI,CAAC,GAAG,CAAC,eAAe,CAAC,CAAC;IAC5B,CAAC;IACD,IAAI,QAAQ,CAAC,WAAW;QAAE,IAAI,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC;IAC3C,IAAI,QAAQ,CAAC,YAAY;QAAE,IAAI,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC;IAC7C,OAAO,CAAC,GAAG,IAAI,CAAC,CAAC;AACnB,CAAC;AAED;kDACkD;AAClD,MAAM,CAAC,KAAK,UAAU,gBAAgB,CAAC,GAAkB;IACvD,IAAI,CAAC,GAAG,CAAC,UAAU,EAAE,CAAC;QACpB,MAAM,IAAI,yBAAyB,CACjC,gFAAgF,CACjF,CAAC;IACJ,CAAC;IACD,wEAAwE;IACxE,sEAAsE;IACtE,MAAM,MAAM,GAAG,CAAC,MAAM,oBAAoB,CACxC,GAAG,CAAC,UAAU,CACf,CAAsB,CAAC;IACxB,MAAM,GAAG,GACP,MAAM;QACN,CAAC,MAAM,SAAS,CAAa,GAAG,EAAE;YAChC,MAAM,EAAE,KAAK;YACb,IAAI,EAAE,wBAAwB;YAC9B,KAAK,EAAE,EAAE,IAAI,EAAE,GAAG,CAAC,UAAU,EAAE;YAC/B,IAAI,EAAE,MAAM;SACb,CAAC,CAAC,CAAC;IAEN,MAAM,WAAW,GAAG,GAAG,CAAC,QAAQ,CAAC;IACjC,MAAM,QAAQ,GAAG,WAAW,CAAC,WAAW,CAAC,CAAC;IAC1C,MAAM,WAAW,GAAG,GAAG,CAAC,WAAW,CAAC,CAAC,CAAC,MAAM,CAAC,GAAG,CAAC,WAAW,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC;IACrE,MAAM,KAAK,GAAG,CAAC,GAAG,CAAC,KAAK,IAAI,EAAE,CAAC,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC;IAE7C,sEAAsE;IACtE,GAAG,CAAC,SAAS,GAAG,GAAG,CAAC,SAAS,IAAI,QAAQ,CAAC,EAAE,CAAC;IAC7C,IAAI,WAAW;QAAE,GAAG,CAAC,aAAa,GAAG,GAAG,CAAC,aAAa,IAAI,WAAW,CAAC,EAAE,CAAC;IACzE,GAAG,CAAC,UAAU,GAAG,GAAG,CAAC,UAAU,IAAI,WAAW,QAAQ,CAAC,WAAW,EAAE,CAAC;IAErE,OAAO;QACL,0EAA0E;QAC1E,aAAa,EAAE,GAAG,CAAC,aAAa,IAAI,CAAC;QACrC,QAAQ;QACR,WAAW;QACX,QAAQ,EAAE,QAAQ,CAAC,QAAQ;QAC3B,KAAK;QACL,mBAAmB,EAAE,GAAG,CAAC,mBAAmB,IAAI,IAAI;QACpD,gBAAgB,EAAE,GAAG,CAAC,gBAAgB,IAAI,IAAI;QAC9C,YAAY,EAAE,kBAAkB,CAAC,QAAQ,EAAE,KAAK,CAAC;QACjD,iBAAiB,EAAE,oBAAoB,CACrC,WAAW,CAAC,iBAAiB,EAC7B,KAAK,EACL,QAAQ,CAAC,sBAAsB,CAChC;QACD,QAAQ,EAAE,EAAE;KACb,CAAC;AACJ,CAAC"}
|
package/dist/client.d.ts
CHANGED
|
@@ -133,7 +133,7 @@ export interface FartherShoreClient {
|
|
|
133
133
|
/**
|
|
134
134
|
* Generic authenticated Core call — the escape hatch for platform endpoints
|
|
135
135
|
* the typed resources don't model yet (e.g. a product's `/me/team`,
|
|
136
|
-
* `/me/audit-logs
|
|
136
|
+
* `/me/audit-logs`). The Core counterpart to {@link invoke}:
|
|
137
137
|
* it attaches the session bearer + the host/env/org scoping headers and maps
|
|
138
138
|
* non-2xx to {@link FartherShoreApiError}, exactly like the typed resources —
|
|
139
139
|
* the caller only supplies the path and the response type. Prefer a typed
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"chrome.d.ts","sourceRoot":"","sources":["../../src/components/chrome.tsx"],"names":[],"mappings":"AAKA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,aAAa,CAAC;AAK7C,MAAM,WAAW,eAAe;IAC9B;;;;OAIG;IACH,OAAO,CAAC,EAAE,MAAM,GAAG,MAAM,CAAC;IAC1B,SAAS,CAAC,EAAE,MAAM,CAAC;CACpB;AAED;;;;;;GAMG;AACH,wBAAgB,UAAU,CAAC,EACzB,OAAgB,EAChB,SAAS,GACV,GAAE,eAAoB,
|
|
1
|
+
{"version":3,"file":"chrome.d.ts","sourceRoot":"","sources":["../../src/components/chrome.tsx"],"names":[],"mappings":"AAKA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,aAAa,CAAC;AAK7C,MAAM,WAAW,eAAe;IAC9B;;;;OAIG;IACH,OAAO,CAAC,EAAE,MAAM,GAAG,MAAM,CAAC;IAC1B,SAAS,CAAC,EAAE,MAAM,CAAC;CACpB;AAED;;;;;;GAMG;AACH,wBAAgB,UAAU,CAAC,EACzB,OAAgB,EAChB,SAAS,GACV,GAAE,eAAoB,kDAgCtB;AAED,MAAM,WAAW,kBAAkB;IACjC,SAAS,CAAC,EAAE,MAAM,CAAC;CACpB;AAED,qDAAqD;AACrD,wBAAgB,aAAa,CAAC,EAAE,SAAS,EAAE,GAAE,kBAAuB,2CAuCnE;AAED,MAAM,WAAW,aAAa;IAC5B,wEAAwE;IACxE,IAAI,CAAC,EAAE,SAAS,CAAC;IACjB,SAAS,CAAC,EAAE,MAAM,CAAC;CACpB;AAED,4EAA4E;AAC5E,wBAAgB,QAAQ,CAAC,EACvB,IAAI,EAAE,YAAY,EAClB,SAAS,GACV,GAAE,aAAkB,kDAkBpB"}
|
|
@@ -15,7 +15,7 @@ export function FsBranding({ variant = "full", className, } = {}) {
|
|
|
15
15
|
const brand = boot.data?.branding;
|
|
16
16
|
if (!brand)
|
|
17
17
|
return null;
|
|
18
|
-
const mark = brand.iconUrl ? (_jsx("img", { className: "fs-brand__logo", src: brand.iconUrl, alt: variant === "mark" ? brand.displayName : "" })) : (_jsx("span", { className: "fs-brand__dot"
|
|
18
|
+
const mark = brand.iconUrl ? (_jsx("img", { className: "fs-brand__logo", src: brand.iconUrl, alt: variant === "mark" ? brand.displayName : "" })) : (_jsx("span", { className: "fs-brand__dot" }));
|
|
19
19
|
if (variant === "mark") {
|
|
20
20
|
return (_jsx("span", { className: cx("fs-brand fs-brand--mark", className), children: mark }));
|
|
21
21
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"chrome.js","sourceRoot":"","sources":["../../src/components/chrome.tsx"],"names":[],"mappings":"AAAA,YAAY,CAAC;;AAMb,OAAO,EAAE,YAAY,EAAE,MAAM,mBAAmB,CAAC;AACjD,OAAO,EAAE,UAAU,EAAE,MAAM,YAAY,CAAC;AACxC,OAAO,EAAE,EAAE,EAAE,MAAM,gBAAgB,CAAC;AAYpC;;;;;;GAMG;AACH,MAAM,UAAU,UAAU,CAAC,EACzB,OAAO,GAAG,MAAM,EAChB,SAAS,MACU,EAAE;IACrB,MAAM,IAAI,GAAG,YAAY,EAAE,CAAC;IAC5B,MAAM,KAAK,GAAG,IAAI,CAAC,IAAI,EAAE,QAAQ,CAAC;IAClC,IAAI,CAAC,KAAK;QAAE,OAAO,IAAI,CAAC;IACxB,MAAM,IAAI,GAAG,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,CAC3B,cACE,SAAS,EAAC,gBAAgB,EAC1B,GAAG,EAAE,KAAK,CAAC,OAAO,EAClB,GAAG,EAAE,OAAO,KAAK,MAAM,CAAC,CAAC,CAAC,KAAK,CAAC,WAAW,CAAC,CAAC,CAAC,EAAE,GAChD,CACH,CAAC,CAAC,CAAC,CACF,
|
|
1
|
+
{"version":3,"file":"chrome.js","sourceRoot":"","sources":["../../src/components/chrome.tsx"],"names":[],"mappings":"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"}
|
|
@@ -39,6 +39,10 @@ export type DocsLanguageSelectorProps = {
|
|
|
39
39
|
* version selector. Hidden entirely when there are ≤1 languages (a
|
|
40
40
|
* single-language doc shows no control). Reads/writes through the docs language
|
|
41
41
|
* context, so it is a drop-in once a `<DocsLanguageProvider>` is in scope.
|
|
42
|
+
*
|
|
43
|
+
* When any language declares an `icon`, the selector renders a custom
|
|
44
|
+
* button-list so the icon can appear alongside the label. When no icons are
|
|
45
|
+
* declared the native `<select>` is used (lighter, more accessible on mobile).
|
|
42
46
|
*/
|
|
43
47
|
export declare function DocsLanguageSelector({ className, }?: DocsLanguageSelectorProps): import("react/jsx-runtime").JSX.Element | null;
|
|
44
48
|
export type LangBlockProps = {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"language-context.d.ts","sourceRoot":"","sources":["../../../src/components/docs-chrome/language-context.tsx"],"names":[],"mappings":"AASA,OAAO,EAML,KAAK,SAAS,EACf,MAAM,OAAO,CAAC;AACf,OAAO,EAAyB,KAAK,YAAY,EAAE,MAAM,eAAe,CAAC;AAIzE,MAAM,MAAM,wBAAwB,GAAG;IACrC,kFAAkF;IAClF,cAAc,EAAE,MAAM,GAAG,IAAI,CAAC;IAC9B,wEAAwE;IACxE,SAAS,EAAE,aAAa,CAAC,YAAY,CAAC,CAAC;IACvC,sEAAsE;IACtE,WAAW,EAAE,CAAC,EAAE,EAAE,MAAM,KAAK,IAAI,CAAC;CACnC,CAAC;AAaF,eAAO,MAAM,oBAAoB,oDAA2B,CAAC;AAE7D,iFAAiF;AACjF,wBAAgB,eAAe,IAAI,wBAAwB,CAE1D;AAgDD,MAAM,MAAM,2BAA2B,GAAG;IACxC,oCAAoC;IACpC,SAAS,EAAE,aAAa,CAAC,YAAY,CAAC,CAAC;IACvC,2CAA2C;IAC3C,eAAe,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IAChC,8EAA8E;IAC9E,QAAQ,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;CAC1B,CAAC;AAEF;;;;;;;;;;GAUG;AACH,wBAAgB,oBAAoB,CAClC,OAAO,EAAE,2BAA2B,GACnC,wBAAwB,CAiC1B;AAID,MAAM,MAAM,yBAAyB,GAAG;IACtC,SAAS,CAAC,EAAE,MAAM,CAAC;CACpB,CAAC;AAEF
|
|
1
|
+
{"version":3,"file":"language-context.d.ts","sourceRoot":"","sources":["../../../src/components/docs-chrome/language-context.tsx"],"names":[],"mappings":"AASA,OAAO,EAML,KAAK,SAAS,EACf,MAAM,OAAO,CAAC;AACf,OAAO,EAAyB,KAAK,YAAY,EAAE,MAAM,eAAe,CAAC;AAIzE,MAAM,MAAM,wBAAwB,GAAG;IACrC,kFAAkF;IAClF,cAAc,EAAE,MAAM,GAAG,IAAI,CAAC;IAC9B,wEAAwE;IACxE,SAAS,EAAE,aAAa,CAAC,YAAY,CAAC,CAAC;IACvC,sEAAsE;IACtE,WAAW,EAAE,CAAC,EAAE,EAAE,MAAM,KAAK,IAAI,CAAC;CACnC,CAAC;AAaF,eAAO,MAAM,oBAAoB,oDAA2B,CAAC;AAE7D,iFAAiF;AACjF,wBAAgB,eAAe,IAAI,wBAAwB,CAE1D;AAgDD,MAAM,MAAM,2BAA2B,GAAG;IACxC,oCAAoC;IACpC,SAAS,EAAE,aAAa,CAAC,YAAY,CAAC,CAAC;IACvC,2CAA2C;IAC3C,eAAe,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IAChC,8EAA8E;IAC9E,QAAQ,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;CAC1B,CAAC;AAEF;;;;;;;;;;GAUG;AACH,wBAAgB,oBAAoB,CAClC,OAAO,EAAE,2BAA2B,GACnC,wBAAwB,CAiC1B;AAID,MAAM,MAAM,yBAAyB,GAAG;IACtC,SAAS,CAAC,EAAE,MAAM,CAAC;CACpB,CAAC;AAEF;;;;;;;;;GASG;AACH,wBAAgB,oBAAoB,CAAC,EACnC,SAAS,GACV,GAAE,yBAA8B,kDA4ChC;AAID,MAAM,MAAM,cAAc,GAAG;IAC3B,kEAAkE;IAClE,IAAI,EAAE,MAAM,CAAC;IACb,QAAQ,CAAC,EAAE,SAAS,CAAC;CACtB,CAAC;AAEF;;;;;GAKG;AACH,wBAAgB,SAAS,CAAC,EAAE,IAAI,EAAE,QAAQ,EAAE,EAAE,cAAc,kDAS3D"}
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
"use client";
|
|
2
|
-
import { jsx as _jsx, Fragment as _Fragment } from "react/jsx-runtime";
|
|
2
|
+
import { jsx as _jsx, jsxs as _jsxs, Fragment as _Fragment } from "react/jsx-runtime";
|
|
3
3
|
// Docs language context + the selector/state pieces that drive multi-language
|
|
4
4
|
// docs. Mirrors the `DocsNavProvider`/`useDocsNav` seam in
|
|
5
5
|
// product-docs/navigation.tsx: a consumer rendered WITHOUT a provider gets a
|
|
@@ -108,11 +108,19 @@ export function useDocsLanguageState(options) {
|
|
|
108
108
|
* version selector. Hidden entirely when there are ≤1 languages (a
|
|
109
109
|
* single-language doc shows no control). Reads/writes through the docs language
|
|
110
110
|
* context, so it is a drop-in once a `<DocsLanguageProvider>` is in scope.
|
|
111
|
+
*
|
|
112
|
+
* When any language declares an `icon`, the selector renders a custom
|
|
113
|
+
* button-list so the icon can appear alongside the label. When no icons are
|
|
114
|
+
* declared the native `<select>` is used (lighter, more accessible on mobile).
|
|
111
115
|
*/
|
|
112
116
|
export function DocsLanguageSelector({ className, } = {}) {
|
|
113
117
|
const { activeLanguage, languages, setLanguage } = useDocsLanguage();
|
|
114
118
|
if (languages.length <= 1)
|
|
115
119
|
return null;
|
|
120
|
+
const hasIcons = languages.some((language) => language.icon);
|
|
121
|
+
if (hasIcons) {
|
|
122
|
+
return (_jsx("div", { className: className, role: "group", "aria-label": "Documentation language", children: languages.map((language) => (_jsxs("button", { type: "button", "aria-pressed": language.id === (activeLanguage ?? languages[0]?.id), onClick: () => setLanguage(language.id), children: [language.icon && (_jsx("img", { src: language.icon, alt: "", "aria-hidden": "true" })), language.label] }, language.id))) }));
|
|
123
|
+
}
|
|
116
124
|
return (_jsx("select", { className: className, value: activeLanguage ?? languages[0]?.id ?? "", "aria-label": "Documentation language", onChange: (event) => setLanguage(event.target.value), children: languages.map((language) => (_jsx("option", { value: language.id, children: language.label }, language.id))) }));
|
|
117
125
|
}
|
|
118
126
|
/**
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"language-context.js","sourceRoot":"","sources":["../../../src/components/docs-chrome/language-context.tsx"],"names":[],"mappings":"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
|
|
1
|
+
{"version":3,"file":"language-context.js","sourceRoot":"","sources":["../../../src/components/docs-chrome/language-context.tsx"],"names":[],"mappings":"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"}
|