@farthershore/farthershore-js 0.17.0 → 0.18.1
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 +22 -0
- package/README.md +1 -1
- package/dist/catalog.d.ts +90 -1
- package/dist/catalog.d.ts.map +1 -1
- package/dist/catalog.js +378 -21
- package/dist/catalog.js.map +1 -1
- package/dist/format/index.d.ts +1 -1
- package/dist/format/index.d.ts.map +1 -1
- package/dist/format/index.js +3 -3
- package/dist/format/index.js.map +1 -1
- package/dist/generated/version.d.ts +1 -1
- package/dist/generated/version.js +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/react/hooks.d.ts +3 -0
- package/dist/react/hooks.d.ts.map +1 -1
- package/dist/react/hooks.js +14 -0
- package/dist/react/hooks.js.map +1 -1
- package/dist/react/index.d.ts +1 -1
- package/dist/react/index.d.ts.map +1 -1
- package/dist/react/index.js +1 -1
- package/dist/react/index.js.map +1 -1
- package/dist/react/use-async.d.ts +15 -2
- package/dist/react/use-async.d.ts.map +1 -1
- package/dist/react/use-async.js +94 -5
- package/dist/react/use-async.js.map +1 -1
- package/package.json +1 -1
package/CHANGELOG.md
CHANGED
|
@@ -3,6 +3,28 @@
|
|
|
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.18.1] - 2026-07-17
|
|
7
|
+
|
|
8
|
+
Fixed the portal usage card rendering an empty box for fresh subscribers on
|
|
9
|
+
metered plans: `quotaForDimension` now falls back to a non-tiered meter's
|
|
10
|
+
`included_units` when the plan has no month-window limit rule (an explicit
|
|
11
|
+
month-window limit still wins), and `buildMeterUsageRows` renders every
|
|
12
|
+
catalog meter — "0 / N included" with a progress bar, or "N this period" —
|
|
13
|
+
instead of dropping zero-usage/no-quota rows. Bill estimation is unchanged.
|
|
14
|
+
|
|
15
|
+
## [0.18.0] - 2026-07-17
|
|
16
|
+
|
|
17
|
+
Added SDK-owned plan catalog derivations for portal plan/pricing/grant/usage
|
|
18
|
+
surfaces, including display sorting, upgrade filtering, lean feature synthesis,
|
|
19
|
+
rate-limit summaries, primary usage summaries, structured meter tier
|
|
20
|
+
descriptions, bill scenario rows, capability rows, and the `usePinnedPlan()`
|
|
21
|
+
React hook.
|
|
22
|
+
|
|
23
|
+
## [0.17.0] - 2026-07-16
|
|
24
|
+
|
|
25
|
+
Added legal SDK components: `TermsOfService`, `PrivacyPolicy`, and
|
|
26
|
+
`LegalConsentGate`.
|
|
27
|
+
|
|
6
28
|
## [0.16.0] - 2026-07-14
|
|
7
29
|
|
|
8
30
|
Added a `notifications` resource (`preferences()` / `updatePreferences(patch)`)
|
package/README.md
CHANGED
|
@@ -3,7 +3,7 @@
|
|
|
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.
|
|
6
|
+
> **Status: `0.18.1`.** Pre-1.0 (`0.x`): a minor bump (e.g. `0.9.x` → `0.10.0`)
|
|
7
7
|
> may include breaking changes, so a caret range is unsafe — **pin this package
|
|
8
8
|
> exactly** (`0.9.0`) or use a patch-only tilde (`~0.9.0`). Changes are recorded
|
|
9
9
|
> in [`CHANGELOG.md`](./CHANGELOG.md).
|
package/dist/catalog.d.ts
CHANGED
|
@@ -1,5 +1,14 @@
|
|
|
1
1
|
import type { Grant, Meter, Plan, PlanLimit, PlanMeter, SubscriberPinnedRule, UsageBillingBasis } from "./types.js";
|
|
2
2
|
export type PlanKind = "free" | "pay_as_you_go" | "subscription" | "hybrid" | "prepaid" | "trial" | "custom";
|
|
3
|
+
/** Canonical one-time credit amount (cents) in the plan's grants, or 0. A
|
|
4
|
+
* one-time credit is a `credit` grant that does NOT recur and carries no
|
|
5
|
+
* campaign label (a labelled credit is a promotional grant). Mirrors
|
|
6
|
+
* contracts' `getOneTimeGrantCents` / `isOneTimeCredit`. */
|
|
7
|
+
export declare function getOneTimeGrantCents(plan: Pick<Plan, "grants">): number;
|
|
8
|
+
/** Canonical recurring credit amount (cents) granted per period, or 0. A
|
|
9
|
+
* recurring credit is a `credit` grant with `recurs: true` and no campaign
|
|
10
|
+
* label. Mirrors contracts' `getRecurringGrantCents` / `isRecurringCredit`. */
|
|
11
|
+
export declare function getRecurringGrantCents(plan: Pick<Plan, "grants">): number;
|
|
3
12
|
/**
|
|
4
13
|
* Classify a plan into a single canonical kind — mirrors the shared
|
|
5
14
|
* `classifyPlan` decision tree so this surface labels a plan identically to the
|
|
@@ -11,6 +20,10 @@ export declare function classifyPlan(plan: Plan): PlanKind;
|
|
|
11
20
|
export declare function isFreePlan(plan: Plan): boolean;
|
|
12
21
|
/** True iff the plan is purely usage-based (no recurring fee, ≥1 meter). */
|
|
13
22
|
export declare function isPayAsYouGoPlan(plan: Plan): boolean;
|
|
23
|
+
/** "$X/month with $Y included" recurring-grant shape detector. */
|
|
24
|
+
export declare function hasRecurringCreditGrant(plan: Plan): boolean;
|
|
25
|
+
/** True iff the plan has a one-time prepaid credit grant. */
|
|
26
|
+
export declare function hasPrepaidCreditGrant(plan: Pick<Plan, "grants">): boolean;
|
|
14
27
|
/** Structured price presentation for a plan — the single source of truth for
|
|
15
28
|
* how every surface headlines a plan's price. See {@link presentPlanPrice}. */
|
|
16
29
|
export interface PlanPricePresentation {
|
|
@@ -52,6 +65,14 @@ export declare function formatPlanPrice(plan: Plan): {
|
|
|
52
65
|
price: string;
|
|
53
66
|
period: string;
|
|
54
67
|
};
|
|
68
|
+
/** Price detail next to the plan name; null when it would echo the name. */
|
|
69
|
+
export declare function formatPlanPriceDetail(plan: Plan): string | null;
|
|
70
|
+
/** 5-knob-derived summary line, e.g. "Plan: $29/month with $50 included". */
|
|
71
|
+
export declare function describePlanSummary(plan: Plan): string;
|
|
72
|
+
/** Sort plans for display: free first, fee ascending, pay-as-you-go last. */
|
|
73
|
+
export declare function sortPlansForDisplay(plans: Plan[]): Plan[];
|
|
74
|
+
/** Plans that are strictly more expensive than the current plan, sorted for display. */
|
|
75
|
+
export declare function filterUpgradePlans(plans: Plan[], currentPlan: Plan | null | undefined): Plan[];
|
|
55
76
|
/** Optional money-formatting locale options. Defaults: USD, en-US. */
|
|
56
77
|
export interface MoneyFormatOptions {
|
|
57
78
|
/** ISO 4217 currency code (e.g. "EUR", "GBP"). Default "USD". */
|
|
@@ -89,6 +110,17 @@ export declare function formatDate(value: string | number | Date | null | undefi
|
|
|
89
110
|
* summarizes from its cheapest non-zero tier ("From $0.001 / request");
|
|
90
111
|
* an included allotment prepends "First N free, then …". */
|
|
91
112
|
export declare function summarizeMeterPricing(meter: PlanMeter, opts?: MoneyFormatOptions): string;
|
|
113
|
+
export type MeterTierLine = {
|
|
114
|
+
range: string;
|
|
115
|
+
rate: string;
|
|
116
|
+
};
|
|
117
|
+
export type MeterTierDescription = {
|
|
118
|
+
dimension: string;
|
|
119
|
+
headline: string;
|
|
120
|
+
tierLines: MeterTierLine[];
|
|
121
|
+
isSeatMeter: boolean;
|
|
122
|
+
};
|
|
123
|
+
export declare function describeMeterTiers(meter: PlanMeter): MeterTierDescription;
|
|
92
124
|
/** One-line minimum-spend floor summary, or null when the plan has no floor. */
|
|
93
125
|
export declare function formatMinimumSpend(plan: Plan): string | null;
|
|
94
126
|
/** Public alias: humanize a builder-defined capability/feature key into a UI
|
|
@@ -110,6 +142,18 @@ export declare function entitlementBullets(featureGates: Record<string, boolean>
|
|
|
110
142
|
* entitlements (featureGates / capabilityLimits) append in both paths.
|
|
111
143
|
*/
|
|
112
144
|
export declare function synthesizePlanFeatures(plan: Plan): string[];
|
|
145
|
+
/**
|
|
146
|
+
* Synthesize a short feature list for white-label public surfaces. This differs
|
|
147
|
+
* from {@link synthesizePlanFeatures}: it uses only builder-authored or
|
|
148
|
+
* plan-derived facts and deliberately does not invent "Full API access" or
|
|
149
|
+
* support-tier promises a product may not actually offer.
|
|
150
|
+
*/
|
|
151
|
+
export declare function synthesizePlanFeaturesLean(plan: Plan): string[];
|
|
152
|
+
/** Month-window quota lines for public plan cards ("{capacity} {dimension}/mo"). */
|
|
153
|
+
export declare function quotaLines(plan: Plan): {
|
|
154
|
+
key: string;
|
|
155
|
+
text: string;
|
|
156
|
+
}[];
|
|
113
157
|
/** Display category for a grant row. The wire grant union collapsed to
|
|
114
158
|
* `credit` + `top_up`, but the UI still distinguishes the credit flavours
|
|
115
159
|
* (recurring / one-time / promotional) plus the `creditPolicy`-derived
|
|
@@ -136,7 +180,10 @@ export declare function effectiveGrants(plan: Plan): Grant[];
|
|
|
136
180
|
* row). The collapse of the wire union does not change what the card shows.
|
|
137
181
|
*/
|
|
138
182
|
export declare function buildGrantRows(plan: Plan): GrantRow[];
|
|
139
|
-
/** Monthly included quota for a dimension on a plan, or null when none.
|
|
183
|
+
/** Monthly included quota for a dimension on a plan, or null when none.
|
|
184
|
+
* A month-window limit rule wins; otherwise a metered price's
|
|
185
|
+
* `included_units` is the plan's real included allowance (e.g. a
|
|
186
|
+
* $20/mo plan whose meter includes the first 5,000 requests). */
|
|
140
187
|
export declare function quotaForDimension(plan: Plan | null, dimension: string): number | null;
|
|
141
188
|
/** Progress-bar percentage + a coarse status color name for `used / total`. */
|
|
142
189
|
export declare function computeProgressBar(used: number, total: number): {
|
|
@@ -150,6 +197,24 @@ export type MeterUsageRow = {
|
|
|
150
197
|
quota: number | null;
|
|
151
198
|
unit?: string;
|
|
152
199
|
};
|
|
200
|
+
export interface UsageDisplay {
|
|
201
|
+
label: string;
|
|
202
|
+
value: string;
|
|
203
|
+
progress: {
|
|
204
|
+
used: number;
|
|
205
|
+
total: number;
|
|
206
|
+
} | null;
|
|
207
|
+
breakdown: string | null;
|
|
208
|
+
detail: string;
|
|
209
|
+
}
|
|
210
|
+
export type RateLimitLine = {
|
|
211
|
+
text: string;
|
|
212
|
+
};
|
|
213
|
+
export declare function isTokenProduct(meters: Meter[]): boolean;
|
|
214
|
+
export declare function buildDimensionBreakdown(summary: Record<string, number>, meters: Meter[]): string | null;
|
|
215
|
+
export declare function buildPrimaryUsage(plan: Plan | null, summary: Record<string, number>, meters: Meter[], billingBasis?: UsageBillingBasis): UsageDisplay;
|
|
216
|
+
export declare function buildRateLimits(plan: Plan | null, meters: Meter[]): RateLimitLine[];
|
|
217
|
+
export declare function formatRateLimitText(plan: Plan | null, meters: Meter[]): string | null;
|
|
153
218
|
/**
|
|
154
219
|
* Combine a plan's monthly quotas with a usage summary into render-ready rows —
|
|
155
220
|
* one per meter that has a quota OR non-zero usage. Sorted: quota'd meters
|
|
@@ -272,6 +337,19 @@ export interface BillEstimate {
|
|
|
272
337
|
* pins this replica to `computeBillScenario` so the two cannot drift.
|
|
273
338
|
*/
|
|
274
339
|
export declare function estimateBill(plan: Pick<Plan, "recurringFeeCents" | "meters" | "limits" | "maxMonthlySpendCents" | "minMonthlySpendCents" | "grants">, usageSummary: Record<string, number>, meters?: Meter[]): BillEstimate;
|
|
340
|
+
export interface BillScenarioRow {
|
|
341
|
+
scenarioCents: number;
|
|
342
|
+
fee: number;
|
|
343
|
+
recurringCredit: number;
|
|
344
|
+
oneTimeCredit: number;
|
|
345
|
+
meteredAfterCredits: number;
|
|
346
|
+
capped: boolean;
|
|
347
|
+
floored: boolean;
|
|
348
|
+
total: number;
|
|
349
|
+
}
|
|
350
|
+
/** Default preview scenarios in cents: $0, $10, $20, $50, $100, $200. */
|
|
351
|
+
export declare const DEFAULT_BILL_SCENARIOS: readonly number[];
|
|
352
|
+
export declare function computeBillScenarios(plan: Pick<Plan, "recurringFeeCents" | "maxMonthlySpendCents" | "minMonthlySpendCents" | "grants">, scenariosCents?: readonly number[]): BillScenarioRow[];
|
|
275
353
|
/** Human label for a {@link PlanLimit}'s window — a named window verbatim
|
|
276
354
|
* ("month", "minute"), a custom window mapped to second/minute/hour when it's a
|
|
277
355
|
* round multiple, else `Ns`. Pure (the rate-limit display helper for W10). */
|
|
@@ -297,4 +375,15 @@ export declare function paymentHealth(sub: {
|
|
|
297
375
|
status?: string | null;
|
|
298
376
|
paymentHealth?: string | null;
|
|
299
377
|
}): PaymentHealth;
|
|
378
|
+
export type CapabilityUsage = Record<string, number>;
|
|
379
|
+
export type CapabilityRow = {
|
|
380
|
+
key: string;
|
|
381
|
+
label: string;
|
|
382
|
+
isToggle: boolean;
|
|
383
|
+
limit: number | null;
|
|
384
|
+
used: number | null;
|
|
385
|
+
enabled: boolean;
|
|
386
|
+
warning: "approaching" | "exhausted" | null;
|
|
387
|
+
};
|
|
388
|
+
export declare function buildCapabilityRows(plan: Pick<Plan, "capabilityLimits">, usage: CapabilityUsage): CapabilityRow[];
|
|
300
389
|
//# sourceMappingURL=catalog.d.ts.map
|
package/dist/catalog.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"catalog.d.ts","sourceRoot":"","sources":["../src/catalog.ts"],"names":[],"mappings":"AASA,OAAO,KAAK,EACV,KAAK,EACL,KAAK,EACL,IAAI,EACJ,SAAS,EACT,SAAS,EACT,oBAAoB,EACpB,iBAAiB,EAClB,MAAM,YAAY,CAAC;AAapB,MAAM,MAAM,QAAQ,GAChB,MAAM,GACN,eAAe,GACf,cAAc,GACd,QAAQ,GACR,SAAS,GACT,OAAO,GACP,QAAQ,CAAC;
|
|
1
|
+
{"version":3,"file":"catalog.d.ts","sourceRoot":"","sources":["../src/catalog.ts"],"names":[],"mappings":"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"}
|