@extenshi/mcp 0.11.0 → 0.13.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 (49) hide show
  1. package/README.md +5 -3
  2. package/dist/bff.d.ts +15 -0
  3. package/dist/bff.d.ts.map +1 -1
  4. package/dist/bff.js +2 -0
  5. package/dist/bff.js.map +1 -1
  6. package/dist/development-guide.d.ts +17 -17
  7. package/dist/development-guide.d.ts.map +1 -1
  8. package/dist/development-guide.js +3 -1
  9. package/dist/development-guide.js.map +1 -1
  10. package/dist/index.js +2 -0
  11. package/dist/index.js.map +1 -1
  12. package/dist/json-ld.d.ts +43 -5
  13. package/dist/json-ld.d.ts.map +1 -1
  14. package/dist/json-ld.js +53 -1
  15. package/dist/json-ld.js.map +1 -1
  16. package/dist/landing-read.d.ts +72 -0
  17. package/dist/landing-read.d.ts.map +1 -0
  18. package/dist/landing-read.js +136 -0
  19. package/dist/landing-read.js.map +1 -0
  20. package/dist/landing-sections.d.ts +21 -3
  21. package/dist/landing-sections.d.ts.map +1 -1
  22. package/dist/landing-sections.js +63 -17
  23. package/dist/landing-sections.js.map +1 -1
  24. package/dist/landing-workflow.d.ts +10 -4
  25. package/dist/landing-workflow.d.ts.map +1 -1
  26. package/dist/landing-workflow.js +30 -10
  27. package/dist/landing-workflow.js.map +1 -1
  28. package/dist/license-terms-tools.d.ts +17 -0
  29. package/dist/license-terms-tools.d.ts.map +1 -0
  30. package/dist/license-terms-tools.js +56 -0
  31. package/dist/license-terms-tools.js.map +1 -0
  32. package/dist/mcp-analytics.d.ts +41 -0
  33. package/dist/mcp-analytics.d.ts.map +1 -0
  34. package/dist/mcp-analytics.js +91 -0
  35. package/dist/mcp-analytics.js.map +1 -0
  36. package/dist/pay.d.ts +3 -3
  37. package/dist/pay.d.ts.map +1 -1
  38. package/dist/pay.js +2 -1
  39. package/dist/pay.js.map +1 -1
  40. package/dist/scan.d.ts +1 -1
  41. package/dist/scan.d.ts.map +1 -1
  42. package/dist/telemetry.d.ts +7 -0
  43. package/dist/telemetry.d.ts.map +1 -1
  44. package/dist/telemetry.js +8 -0
  45. package/dist/telemetry.js.map +1 -1
  46. package/dist/tools.d.ts.map +1 -1
  47. package/dist/tools.js +37 -10
  48. package/dist/tools.js.map +1 -1
  49. package/package.json +6 -1
package/dist/json-ld.d.ts CHANGED
@@ -30,6 +30,11 @@ export interface JsonLdInput {
30
30
  privacyPolicyUrl?: string;
31
31
  /** Free (default) vs paid. Paid still omits a number — we are not the store. */
32
32
  offersPrice?: '0' | 'paid';
33
+ /**
34
+ * Real prices (an Extenshi Pay offer bound to the page). When non-empty they
35
+ * replace the free offer: one Offer, or an AggregateOffer for several plans.
36
+ */
37
+ paidOffers?: JsonLdPriceInput[];
33
38
  capabilities?: string[];
34
39
  /** ISO date; omitted when blank. */
35
40
  datePublished?: string;
@@ -48,17 +53,46 @@ export interface SoftwareApplicationJsonLd {
48
53
  '@type': 'Organization';
49
54
  name: string;
50
55
  };
51
- offers?: {
52
- '@type': 'Offer';
53
- price: string;
54
- priceCurrency: 'USD';
55
- };
56
+ offers?: JsonLdOffer | JsonLdAggregateOffer | JsonLdOffer[];
56
57
  installUrl?: string;
57
58
  sameAs?: string[];
58
59
  featureList?: string[];
59
60
  privacyPolicy?: string;
60
61
  screenshot?: string[];
61
62
  }
63
+ export interface JsonLdPriceInput {
64
+ name?: string;
65
+ /** Decimal amount in major units ("4.99"). */
66
+ price: string;
67
+ /** ISO 4217 code, any case. */
68
+ currency: string;
69
+ period?: 'month' | 'year' | 'one-time' | 'lifetime';
70
+ }
71
+ export interface JsonLdOffer {
72
+ '@type': 'Offer';
73
+ name?: string;
74
+ price: string;
75
+ priceCurrency: string;
76
+ priceSpecification?: {
77
+ '@type': 'UnitPriceSpecification';
78
+ price: string;
79
+ priceCurrency: string;
80
+ billingDuration: 'P1M' | 'P1Y';
81
+ };
82
+ }
83
+ export interface JsonLdAggregateOffer {
84
+ '@type': 'AggregateOffer';
85
+ lowPrice: string;
86
+ highPrice: string;
87
+ priceCurrency: string;
88
+ offerCount: number;
89
+ offers: JsonLdOffer[];
90
+ }
91
+ /**
92
+ * Offers for real prices: one Offer, an AggregateOffer when every plan is in
93
+ * one currency, else a list. Malformed entries are dropped; null when none is left.
94
+ */
95
+ export declare function jsonLdOffers(list: readonly JsonLdPriceInput[]): JsonLdOffer | JsonLdAggregateOffer | JsonLdOffer[] | null;
62
96
  /**
63
97
  * Schema.org SoftwareApplication. Only fields we have evidence for are emitted —
64
98
  * empty author / URL / install links are omitted rather than faked.
@@ -85,5 +119,9 @@ export declare function jsonLdFromLanding(input: {
85
119
  homepageUrl?: string;
86
120
  /** Absolute https screenshot URLs (JSON-LD `screenshot`). */
87
121
  screenshots?: string[];
122
+ /** `paid` drops the free offer when no real price is known. Default free. */
123
+ offersPrice?: '0' | 'paid';
124
+ /** Prices of the plans the page shows (bound Pay offers). */
125
+ paidOffers?: JsonLdPriceInput[];
88
126
  }): JsonLdInput;
89
127
  //# sourceMappingURL=json-ld.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"json-ld.d.ts","sourceRoot":"","sources":["../src/json-ld.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;GAoBG;AAEH,MAAM,WAAW,WAAW;IAC3B,aAAa,EAAE,MAAM,CAAA;IACrB,WAAW,EAAE,MAAM,CAAA;IACnB,UAAU,CAAC,EAAE,MAAM,CAAA;IACnB,UAAU,CAAC,EAAE,MAAM,CAAA;IACnB,SAAS,CAAC,EAAE,MAAM,CAAA;IAClB,UAAU,CAAC,EAAE,MAAM,CAAA;IACnB,OAAO,CAAC,EAAE,MAAM,CAAA;IAChB,gBAAgB,CAAC,EAAE,MAAM,CAAA;IACzB,gFAAgF;IAChF,WAAW,CAAC,EAAE,GAAG,GAAG,MAAM,CAAA;IAC1B,YAAY,CAAC,EAAE,MAAM,EAAE,CAAA;IACvB,oCAAoC;IACpC,aAAa,CAAC,EAAE,MAAM,CAAA;IACtB,gEAAgE;IAChE,WAAW,CAAC,EAAE,MAAM,EAAE,CAAA;CACtB;AAED,MAAM,WAAW,yBAAyB;IACzC,UAAU,EAAE,oBAAoB,CAAA;IAChC,OAAO,EAAE,qBAAqB,CAAA;IAC9B,IAAI,EAAE,MAAM,CAAA;IACZ,WAAW,CAAC,EAAE,MAAM,CAAA;IACpB,GAAG,CAAC,EAAE,MAAM,CAAA;IACZ,mBAAmB,EAAE,oBAAoB,CAAA;IACzC,eAAe,CAAC,EAAE,MAAM,CAAA;IACxB,MAAM,CAAC,EAAE;QAAE,OAAO,EAAE,cAAc,CAAC;QAAC,IAAI,EAAE,MAAM,CAAA;KAAE,CAAA;IAClD,MAAM,CAAC,EAAE;QAAE,OAAO,EAAE,OAAO,CAAC;QAAC,KAAK,EAAE,MAAM,CAAC;QAAC,aAAa,EAAE,KAAK,CAAA;KAAE,CAAA;IAClE,UAAU,CAAC,EAAE,MAAM,CAAA;IACnB,MAAM,CAAC,EAAE,MAAM,EAAE,CAAA;IACjB,WAAW,CAAC,EAAE,MAAM,EAAE,CAAA;IACtB,aAAa,CAAC,EAAE,MAAM,CAAA;IACtB,UAAU,CAAC,EAAE,MAAM,EAAE,CAAA;CACrB;AAaD;;;GAGG;AACH,wBAAgB,cAAc,CAAC,KAAK,EAAE,WAAW,GAAG,yBAAyB,CAqC5E;AAED,wBAAgB,qBAAqB,CAAC,KAAK,EAAE,WAAW,GAAG,MAAM,CAEhE;AAED;;;GAGG;AACH,wBAAgB,eAAe,CAAC,KAAK,EAAE,WAAW,GAAG,MAAM,CAG1D;AAED,6EAA6E;AAC7E,wBAAgB,iBAAiB,CAAC,KAAK,EAAE;IACxC,aAAa,EAAE,MAAM,CAAA;IACrB,OAAO,EAAE,MAAM,CAAA;IACf,WAAW,EAAE,MAAM,CAAA;IACnB,SAAS,EAAE,OAAO,CAAC,MAAM,CAAC,QAAQ,GAAG,SAAS,GAAG,MAAM,EAAE,MAAM,CAAC,CAAC,CAAA;IACjE,QAAQ,EAAE;QAAE,KAAK,EAAE,MAAM,CAAC;QAAC,WAAW,EAAE,MAAM,CAAA;KAAE,EAAE,CAAA;IAClD,gBAAgB,EAAE,MAAM,CAAA;IACxB,gEAAgE;IAChE,WAAW,CAAC,EAAE,MAAM,CAAA;IACpB,6DAA6D;IAC7D,WAAW,CAAC,EAAE,MAAM,EAAE,CAAA;CACtB,GAAG,WAAW,CAqBd"}
1
+ {"version":3,"file":"json-ld.d.ts","sourceRoot":"","sources":["../src/json-ld.ts"],"names":[],"mappings":"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"}
package/dist/json-ld.js CHANGED
@@ -19,6 +19,51 @@
19
19
  * `shared-types/ai-visibility.ts` re-exports everything here, so existing
20
20
  * `shared-types/ai-visibility.js` imports keep working.
21
21
  */
22
+ const PRICE_RE = /^\d{1,9}(\.\d{1,4})?$/;
23
+ const CURRENCY_RE = /^[A-Za-z]{3}$/;
24
+ /**
25
+ * Offers for real prices: one Offer, an AggregateOffer when every plan is in
26
+ * one currency, else a list. Malformed entries are dropped; null when none is left.
27
+ */
28
+ export function jsonLdOffers(list) {
29
+ const offers = [];
30
+ for (const p of list) {
31
+ const price = p.price.trim();
32
+ const currency = p.currency.trim().toUpperCase();
33
+ if (!PRICE_RE.test(price) || !CURRENCY_RE.test(currency))
34
+ continue;
35
+ const offer = { '@type': 'Offer', price, priceCurrency: currency };
36
+ const name = (p.name ?? '').trim();
37
+ if (name)
38
+ offer.name = name;
39
+ if (p.period === 'month' || p.period === 'year') {
40
+ offer.priceSpecification = {
41
+ '@type': 'UnitPriceSpecification',
42
+ price,
43
+ priceCurrency: currency,
44
+ billingDuration: p.period === 'month' ? 'P1M' : 'P1Y',
45
+ };
46
+ }
47
+ offers.push(offer);
48
+ }
49
+ const [first] = offers;
50
+ if (!first)
51
+ return null;
52
+ if (offers.length === 1)
53
+ return first;
54
+ if (offers.some((o) => o.priceCurrency !== first.priceCurrency))
55
+ return offers;
56
+ const prices = offers.map((o) => Number(o.price));
57
+ const at = (n) => offers[prices.indexOf(n)]?.price ?? first.price;
58
+ return {
59
+ '@type': 'AggregateOffer',
60
+ lowPrice: at(Math.min(...prices)),
61
+ highPrice: at(Math.max(...prices)),
62
+ priceCurrency: first.priceCurrency,
63
+ offerCount: offers.length,
64
+ offers,
65
+ };
66
+ }
22
67
  function httpUrl(raw) {
23
68
  const u = (raw ?? '').trim();
24
69
  return /^https?:\/\//i.test(u) ? u : null;
@@ -63,7 +108,10 @@ export function generateJsonLd(input) {
63
108
  json.operatingSystem = os.join(', ');
64
109
  if (author)
65
110
  json.author = { '@type': 'Organization', name: author };
66
- if (input.offersPrice !== 'paid') {
111
+ const paid = jsonLdOffers(input.paidOffers ?? []);
112
+ if (paid)
113
+ json.offers = paid;
114
+ else if (input.offersPrice !== 'paid') {
67
115
  json.offers = { '@type': 'Offer', price: '0', priceCurrency: 'USD' };
68
116
  }
69
117
  if (sameAs[0])
@@ -113,6 +161,10 @@ export function jsonLdFromLanding(input) {
113
161
  out.websiteUrl = input.homepageUrl;
114
162
  if (input.screenshots && input.screenshots.length > 0)
115
163
  out.screenshots = input.screenshots;
164
+ if (input.offersPrice)
165
+ out.offersPrice = input.offersPrice;
166
+ if (input.paidOffers && input.paidOffers.length > 0)
167
+ out.paidOffers = input.paidOffers;
116
168
  return out;
117
169
  }
118
170
  //# sourceMappingURL=json-ld.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"json-ld.js","sourceRoot":"","sources":["../src/json-ld.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"json-ld.js","sourceRoot":"","sources":["../src/json-ld.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;GAoBG;AAyEH,MAAM,QAAQ,GAAG,uBAAuB,CAAA;AACxC,MAAM,WAAW,GAAG,eAAe,CAAA;AAEnC;;;GAGG;AACH,MAAM,UAAU,YAAY,CAC3B,IAAiC;IAEjC,MAAM,MAAM,GAAkB,EAAE,CAAA;IAChC,KAAK,MAAM,CAAC,IAAI,IAAI,EAAE,CAAC;QACtB,MAAM,KAAK,GAAG,CAAC,CAAC,KAAK,CAAC,IAAI,EAAE,CAAA;QAC5B,MAAM,QAAQ,GAAG,CAAC,CAAC,QAAQ,CAAC,IAAI,EAAE,CAAC,WAAW,EAAE,CAAA;QAChD,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,QAAQ,CAAC;YAAE,SAAQ;QAClE,MAAM,KAAK,GAAgB,EAAE,OAAO,EAAE,OAAO,EAAE,KAAK,EAAE,aAAa,EAAE,QAAQ,EAAE,CAAA;QAC/E,MAAM,IAAI,GAAG,CAAC,CAAC,CAAC,IAAI,IAAI,EAAE,CAAC,CAAC,IAAI,EAAE,CAAA;QAClC,IAAI,IAAI;YAAE,KAAK,CAAC,IAAI,GAAG,IAAI,CAAA;QAC3B,IAAI,CAAC,CAAC,MAAM,KAAK,OAAO,IAAI,CAAC,CAAC,MAAM,KAAK,MAAM,EAAE,CAAC;YACjD,KAAK,CAAC,kBAAkB,GAAG;gBAC1B,OAAO,EAAE,wBAAwB;gBACjC,KAAK;gBACL,aAAa,EAAE,QAAQ;gBACvB,eAAe,EAAE,CAAC,CAAC,MAAM,KAAK,OAAO,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,KAAK;aACrD,CAAA;QACF,CAAC;QACD,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,CAAA;IACnB,CAAC;IACD,MAAM,CAAC,KAAK,CAAC,GAAG,MAAM,CAAA;IACtB,IAAI,CAAC,KAAK;QAAE,OAAO,IAAI,CAAA;IACvB,IAAI,MAAM,CAAC,MAAM,KAAK,CAAC;QAAE,OAAO,KAAK,CAAA;IACrC,IAAI,MAAM,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,aAAa,KAAK,KAAK,CAAC,aAAa,CAAC;QAAE,OAAO,MAAM,CAAA;IAC9E,MAAM,MAAM,GAAG,MAAM,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,MAAM,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAA;IACjD,MAAM,EAAE,GAAG,CAAC,CAAS,EAAE,EAAE,CAAC,MAAM,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,EAAE,KAAK,IAAI,KAAK,CAAC,KAAK,CAAA;IACzE,OAAO;QACN,OAAO,EAAE,gBAAgB;QACzB,QAAQ,EAAE,EAAE,CAAC,IAAI,CAAC,GAAG,CAAC,GAAG,MAAM,CAAC,CAAC;QACjC,SAAS,EAAE,EAAE,CAAC,IAAI,CAAC,GAAG,CAAC,GAAG,MAAM,CAAC,CAAC;QAClC,aAAa,EAAE,KAAK,CAAC,aAAa;QAClC,UAAU,EAAE,MAAM,CAAC,MAAM;QACzB,MAAM;KACN,CAAA;AACF,CAAC;AAED,SAAS,OAAO,CAAC,GAAuB;IACvC,MAAM,CAAC,GAAG,CAAC,GAAG,IAAI,EAAE,CAAC,CAAC,IAAI,EAAE,CAAA;IAC5B,OAAO,eAAe,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAA;AAC1C,CAAC;AAED,MAAM,MAAM,GAA2B;IACtC,MAAM,EAAE,QAAQ;IAChB,OAAO,EAAE,SAAS;IAClB,IAAI,EAAE,gBAAgB;CACtB,CAAA;AAED;;;GAGG;AACH,MAAM,UAAU,cAAc,CAAC,KAAkB;IAChD,MAAM,IAAI,GAAG,KAAK,CAAC,aAAa,CAAC,IAAI,EAAE,IAAI,WAAW,CAAA;IACtD,MAAM,WAAW,GAAG,KAAK,CAAC,WAAW,CAAC,IAAI,EAAE,CAAA;IAC5C,MAAM,IAAI,GAAG,OAAO,CAAC,KAAK,CAAC,UAAU,CAAC,CAAA;IACtC,MAAM,MAAM,GAAG,CAAC,KAAK,CAAC,UAAU,IAAI,EAAE,CAAC,CAAC,IAAI,EAAE,CAAA;IAC9C,MAAM,MAAM,GAAG,OAAO,CAAC,KAAK,CAAC,SAAS,CAAC,CAAA;IACvC,MAAM,OAAO,GAAG,OAAO,CAAC,KAAK,CAAC,UAAU,CAAC,CAAA;IACzC,MAAM,IAAI,GAAG,OAAO,CAAC,KAAK,CAAC,OAAO,CAAC,CAAA;IACnC,MAAM,OAAO,GAAG,OAAO,CAAC,KAAK,CAAC,gBAAgB,CAAC,CAAA;IAC/C,MAAM,QAAQ,GAAG,CAAC,KAAK,CAAC,YAAY,IAAI,EAAE,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC,CAAC,MAAM,CAAC,OAAO,CAAC,CAAA;IAChF,MAAM,WAAW,GAAG,CAAC,KAAK,CAAC,WAAW,IAAI,EAAE,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,kBAAkB,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAA;IAC5G,MAAM,MAAM,GAAG,CAAC,MAAM,EAAE,OAAO,EAAE,IAAI,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,EAAe,EAAE,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,CAAA;IAC7E,MAAM,EAAE,GAAG;QACV,MAAM,CAAC,CAAC,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC,CAAC,IAAI;QAC7B,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC,CAAC,IAAI;QAC/B,IAAI,CAAC,CAAC,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC,CAAC,IAAI;KACzB,CAAC,MAAM,CAAC,CAAC,CAAC,EAAe,EAAE,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,CAAA;IAExC,MAAM,IAAI,GAA8B;QACvC,UAAU,EAAE,oBAAoB;QAChC,OAAO,EAAE,qBAAqB;QAC9B,IAAI;QACJ,mBAAmB,EAAE,oBAAoB;KACzC,CAAA;IACD,IAAI,WAAW;QAAE,IAAI,CAAC,WAAW,GAAG,WAAW,CAAA;IAC/C,IAAI,IAAI;QAAE,IAAI,CAAC,GAAG,GAAG,IAAI,CAAA;IACzB,IAAI,EAAE,CAAC,MAAM,GAAG,CAAC;QAAE,IAAI,CAAC,eAAe,GAAG,EAAE,CAAC,IAAI,CAAC,IAAI,CAAC,CAAA;IACvD,IAAI,MAAM;QAAE,IAAI,CAAC,MAAM,GAAG,EAAE,OAAO,EAAE,cAAc,EAAE,IAAI,EAAE,MAAM,EAAE,CAAA;IACnE,MAAM,IAAI,GAAG,YAAY,CAAC,KAAK,CAAC,UAAU,IAAI,EAAE,CAAC,CAAA;IACjD,IAAI,IAAI;QAAE,IAAI,CAAC,MAAM,GAAG,IAAI,CAAA;SACvB,IAAI,KAAK,CAAC,WAAW,KAAK,MAAM,EAAE,CAAC;QACvC,IAAI,CAAC,MAAM,GAAG,EAAE,OAAO,EAAE,OAAO,EAAE,KAAK,EAAE,GAAG,EAAE,aAAa,EAAE,KAAK,EAAE,CAAA;IACrE,CAAC;IACD,IAAI,MAAM,CAAC,CAAC,CAAC;QAAE,IAAI,CAAC,UAAU,GAAG,MAAM,CAAC,CAAC,CAAC,CAAA;IAC1C,IAAI,MAAM,CAAC,MAAM,GAAG,CAAC;QAAE,IAAI,CAAC,MAAM,GAAG,MAAM,CAAA;IAC3C,IAAI,QAAQ,CAAC,MAAM,GAAG,CAAC;QAAE,IAAI,CAAC,WAAW,GAAG,QAAQ,CAAA;IACpD,IAAI,OAAO;QAAE,IAAI,CAAC,aAAa,GAAG,OAAO,CAAA;IACzC,IAAI,WAAW,CAAC,MAAM,GAAG,CAAC;QAAE,IAAI,CAAC,UAAU,GAAG,WAAW,CAAA;IACzD,OAAO,IAAI,CAAA;AACZ,CAAC;AAED,MAAM,UAAU,qBAAqB,CAAC,KAAkB;IACvD,OAAO,GAAG,IAAI,CAAC,SAAS,CAAC,cAAc,CAAC,KAAK,CAAC,EAAE,IAAI,EAAE,CAAC,CAAC,IAAI,CAAA;AAC7D,CAAC;AAED;;;GAGG;AACH,MAAM,UAAU,eAAe,CAAC,KAAkB;IACjD,MAAM,IAAI,GAAG,IAAI,CAAC,SAAS,CAAC,cAAc,CAAC,KAAK,CAAC,CAAC,CAAC,OAAO,CAAC,IAAI,EAAE,SAAS,CAAC,CAAA;IAC3E,OAAO,sCAAsC,IAAI,WAAW,CAAA;AAC7D,CAAC;AAED,6EAA6E;AAC7E,MAAM,UAAU,iBAAiB,CAAC,KAejC;IACA,MAAM,YAAY,GAAG,KAAK,CAAC,QAAQ;SACjC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE;QACV,MAAM,KAAK,GAAG,CAAC,CAAC,KAAK,CAAC,IAAI,EAAE,CAAA;QAC5B,MAAM,IAAI,GAAG,CAAC,CAAC,WAAW,CAAC,IAAI,EAAE,CAAA;QACjC,IAAI,CAAC,KAAK;YAAE,OAAO,EAAE,CAAA;QACrB,OAAO,IAAI,CAAC,CAAC,CAAC,GAAG,KAAK,KAAK,IAAI,EAAE,CAAC,CAAC,CAAC,KAAK,CAAA;IAC1C,CAAC,CAAC;SACD,MAAM,CAAC,OAAO,CAAC,CAAA;IACjB,MAAM,GAAG,GAAgB;QACxB,aAAa,EAAE,KAAK,CAAC,aAAa;QAClC,WAAW,EAAE,KAAK,CAAC,WAAW,CAAC,IAAI,EAAE,IAAI,KAAK,CAAC,OAAO,CAAC,IAAI,EAAE;QAC7D,SAAS,EAAE,KAAK,CAAC,SAAS,CAAC,MAAM;QACjC,UAAU,EAAE,KAAK,CAAC,SAAS,CAAC,OAAO;QACnC,OAAO,EAAE,KAAK,CAAC,SAAS,CAAC,IAAI;QAC7B,gBAAgB,EAAE,KAAK,CAAC,gBAAgB;QACxC,YAAY;KACZ,CAAA;IACD,IAAI,KAAK,CAAC,WAAW;QAAE,GAAG,CAAC,UAAU,GAAG,KAAK,CAAC,WAAW,CAAA;IACzD,IAAI,KAAK,CAAC,WAAW,IAAI,KAAK,CAAC,WAAW,CAAC,MAAM,GAAG,CAAC;QAAE,GAAG,CAAC,WAAW,GAAG,KAAK,CAAC,WAAW,CAAA;IAC1F,IAAI,KAAK,CAAC,WAAW;QAAE,GAAG,CAAC,WAAW,GAAG,KAAK,CAAC,WAAW,CAAA;IAC1D,IAAI,KAAK,CAAC,UAAU,IAAI,KAAK,CAAC,UAAU,CAAC,MAAM,GAAG,CAAC;QAAE,GAAG,CAAC,UAAU,GAAG,KAAK,CAAC,UAAU,CAAA;IACtF,OAAO,GAAG,CAAA;AACX,CAAC"}
@@ -0,0 +1,72 @@
1
+ /**
2
+ * Compact reads of the hosted landing page (DX report 2026-10-10 §2 row 15).
3
+ *
4
+ * `get_landing_page` returns the form the live version was rendered from. With
5
+ * eleven locales and an inline logo that form is ~80 KB — more than an MCP
6
+ * response carries. So the tool answers with a summary by default (what is
7
+ * live, which locales and sections exist, how big each part is) and returns
8
+ * the form only on request, optionally narrowed to some top-level fields and
9
+ * some translations.
10
+ *
11
+ * Shaped here, from the response the BFF already sends, rather than in the BFF:
12
+ * every BFF version returns the same full form, so this works against an old
13
+ * BFF and a new one alike, and the BFF contract does not change.
14
+ */
15
+ import { z } from 'zod';
16
+ export declare const LANDING_READ_VIEWS: readonly ["summary", "full"];
17
+ export type LandingReadView = (typeof LANDING_READ_VIEWS)[number];
18
+ /** get_landing_page parameters besides projectId. */
19
+ export declare const LANDING_READ_SHAPE: {
20
+ view: z.ZodOptional<z.ZodEnum<["summary", "full"]>>;
21
+ fields: z.ZodOptional<z.ZodArray<z.ZodString, "many">>;
22
+ locales: z.ZodOptional<z.ZodArray<z.ZodString, "many">>;
23
+ };
24
+ export interface LandingReadOptions {
25
+ view?: LandingReadView;
26
+ /** Top-level form keys to keep in a full read (e.g. `sections`, `seo`). */
27
+ fields?: readonly string[];
28
+ /** Translations to keep in `form.locales` in a full read (`de`, `pt-BR`). The base content is always kept. */
29
+ locales?: readonly string[];
30
+ }
31
+ type Json = Record<string, unknown>;
32
+ /** What an agent decides from before asking for the form itself. */
33
+ export declare function summarizeLandingForm(form: Json): {
34
+ bytes: number;
35
+ schemaVersion: {};
36
+ extensionName: unknown;
37
+ tagline: unknown;
38
+ theme: unknown;
39
+ accentColor: unknown;
40
+ defaultLocale: string;
41
+ translations: {
42
+ locale: string;
43
+ bytes: number;
44
+ }[];
45
+ sections: {
46
+ bytes: number;
47
+ hidden?: boolean | undefined;
48
+ index: number;
49
+ id: unknown;
50
+ type: unknown;
51
+ }[];
52
+ links: {
53
+ [k: string]: string;
54
+ };
55
+ logo: {
56
+ kind: "svg" | "data-url" | "url" | "none";
57
+ bytes: number;
58
+ };
59
+ features: number;
60
+ screenshots: number;
61
+ fields: {
62
+ field: string;
63
+ bytes: number;
64
+ }[];
65
+ };
66
+ /**
67
+ * Shape a `getLandingPage` response for the agent. Anything that is not the
68
+ * expected `{ page, url, form }` object passes through untouched.
69
+ */
70
+ export declare function shapeLandingRead(result: unknown, options?: LandingReadOptions): unknown;
71
+ export {};
72
+ //# sourceMappingURL=landing-read.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"landing-read.d.ts","sourceRoot":"","sources":["../src/landing-read.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;GAaG;AAEH,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAA;AAGvB,eAAO,MAAM,kBAAkB,8BAA+B,CAAA;AAC9D,MAAM,MAAM,eAAe,GAAG,CAAC,OAAO,kBAAkB,CAAC,CAAC,MAAM,CAAC,CAAA;AAEjE,qDAAqD;AACrD,eAAO,MAAM,kBAAkB;;;;CAqB9B,CAAA;AAED,MAAM,WAAW,kBAAkB;IAClC,IAAI,CAAC,EAAE,eAAe,CAAA;IACtB,2EAA2E;IAC3E,MAAM,CAAC,EAAE,SAAS,MAAM,EAAE,CAAA;IAC1B,8GAA8G;IAC9G,OAAO,CAAC,EAAE,SAAS,MAAM,EAAE,CAAA;CAC3B;AAED,KAAK,IAAI,GAAG,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAA;AA2BnC,oEAAoE;AACpE,wBAAgB,oBAAoB,CAAC,IAAI,EAAE,IAAI;;;;;;;;;;;;;;;;;;;;;;;cARV,KAAK,GAAG,UAAU,GAAG,KAAK,GAAG,MAAM;eAAS,MAAM;;;;;;;;EA0CtF;AA0BD;;;GAGG;AACH,wBAAgB,gBAAgB,CAAC,MAAM,EAAE,OAAO,EAAE,OAAO,GAAE,kBAAuB,GAAG,OAAO,CAwB3F"}
@@ -0,0 +1,136 @@
1
+ /**
2
+ * Compact reads of the hosted landing page (DX report 2026-10-10 §2 row 15).
3
+ *
4
+ * `get_landing_page` returns the form the live version was rendered from. With
5
+ * eleven locales and an inline logo that form is ~80 KB — more than an MCP
6
+ * response carries. So the tool answers with a summary by default (what is
7
+ * live, which locales and sections exist, how big each part is) and returns
8
+ * the form only on request, optionally narrowed to some top-level fields and
9
+ * some translations.
10
+ *
11
+ * Shaped here, from the response the BFF already sends, rather than in the BFF:
12
+ * every BFF version returns the same full form, so this works against an old
13
+ * BFF and a new one alike, and the BFF contract does not change.
14
+ */
15
+ import { z } from 'zod';
16
+ import { normalizeLandingLocale } from './landing-sections.js';
17
+ export const LANDING_READ_VIEWS = ['summary', 'full'];
18
+ /** get_landing_page parameters besides projectId. */
19
+ export const LANDING_READ_SHAPE = {
20
+ view: z
21
+ .enum(LANDING_READ_VIEWS)
22
+ .optional()
23
+ .describe('"summary" (default): what is live and how big each part of the form is. "full": the form itself.'),
24
+ fields: z
25
+ .array(z.string().max(40))
26
+ .max(40)
27
+ .optional()
28
+ .describe('With view "full": top-level form keys to return, e.g. ["sections", "seo"] (names and sizes are in formSummary.fields). Default: all.'),
29
+ locales: z
30
+ .array(z.string().max(35))
31
+ .max(100)
32
+ .optional()
33
+ .describe('With view "full": translations to keep in form.locales, e.g. ["de"]; [] drops them all. The base content is part of every full read.'),
34
+ };
35
+ const isObject = (value) => Boolean(value) && typeof value === 'object' && !Array.isArray(value);
36
+ const bytesOf = (value) => value === undefined ? 0 : new TextEncoder().encode(JSON.stringify(value)).length;
37
+ const LINK_FIELDS = [
38
+ 'homepageUrl',
39
+ 'chromeUrl',
40
+ 'firefoxUrl',
41
+ 'edgeUrl',
42
+ 'privacyPolicyUrl',
43
+ 'supportUrl',
44
+ 'uninstallUrl',
45
+ 'termsUrl',
46
+ ];
47
+ /** `bytes` is measured like every other size here: the field as JSON (quotes included). */
48
+ function logoOf(form) {
49
+ if (typeof form.logoSvg === 'string' && form.logoSvg)
50
+ return { kind: 'svg', bytes: bytesOf(form.logoSvg) };
51
+ if (typeof form.logoUrl === 'string' && form.logoUrl)
52
+ return { kind: form.logoUrl.startsWith('data:') ? 'data-url' : 'url', bytes: bytesOf(form.logoUrl) };
53
+ return { kind: 'none', bytes: 0 };
54
+ }
55
+ /** What an agent decides from before asking for the form itself. */
56
+ export function summarizeLandingForm(form) {
57
+ const sections = Array.isArray(form.sections) ? form.sections : [];
58
+ const locales = isObject(form.locales) ? form.locales : {};
59
+ const links = Object.fromEntries(LINK_FIELDS.flatMap((key) => (typeof form[key] === 'string' && form[key] ? [[key, form[key]]] : [])));
60
+ return {
61
+ bytes: bytesOf(form),
62
+ schemaVersion: form.schemaVersion ?? 1,
63
+ extensionName: form.extensionName,
64
+ tagline: form.tagline,
65
+ theme: form.theme,
66
+ accentColor: form.accentColor,
67
+ defaultLocale: normalizeLandingLocale(form.defaultLocale) ?? 'en',
68
+ translations: Object.entries(locales).map(([locale, content]) => ({ locale, bytes: bytesOf(content) })),
69
+ sections: sections.map((section, index) => {
70
+ const s = isObject(section) ? section : {};
71
+ return {
72
+ index,
73
+ id: s.id,
74
+ type: s.type,
75
+ ...(s.hidden ? { hidden: true } : {}),
76
+ bytes: bytesOf(section),
77
+ };
78
+ }),
79
+ links,
80
+ logo: logoOf(form),
81
+ features: Array.isArray(form.features) ? form.features.length : 0,
82
+ screenshots: Array.isArray(form.screenshots) ? form.screenshots.length : 0,
83
+ // Largest first: the parts worth leaving out of a full read.
84
+ fields: Object.keys(form)
85
+ .map((field) => ({ field, bytes: bytesOf(form[field]) }))
86
+ .sort((a, b) => b.bytes - a.bytes),
87
+ };
88
+ }
89
+ function narrowForm(form, fields, locales) {
90
+ let out = form;
91
+ if (fields?.length) {
92
+ // schemaVersion decides how the rest reads, so it always comes along; asking
93
+ // for translations by `locales` keeps `locales` even when `fields` omits it.
94
+ const keep = new Set([...fields, 'schemaVersion', ...(locales ? ['locales'] : [])]);
95
+ out = Object.fromEntries(Object.entries(out).filter(([key]) => keep.has(key)));
96
+ }
97
+ if (locales && isObject(out.locales)) {
98
+ const wanted = new Set(locales.map((l) => normalizeLandingLocale(l) ?? l));
99
+ out = {
100
+ ...out,
101
+ locales: Object.fromEntries(Object.entries(out.locales).filter(([key]) => wanted.has(normalizeLandingLocale(key) ?? key))),
102
+ };
103
+ }
104
+ return out;
105
+ }
106
+ /**
107
+ * Shape a `getLandingPage` response for the agent. Anything that is not the
108
+ * expected `{ page, url, form }` object passes through untouched.
109
+ */
110
+ export function shapeLandingRead(result, options = {}) {
111
+ if (!isObject(result) || !('form' in result))
112
+ return result;
113
+ const form = isObject(result.form) ? result.form : null;
114
+ if ((options.view ?? 'summary') === 'full') {
115
+ const narrowed = form ? narrowForm(form, options.fields, options.locales) : result.form;
116
+ return {
117
+ ...result,
118
+ form: narrowed,
119
+ ...(form && narrowed !== form
120
+ ? { formBytes: { full: bytesOf(form), returned: bytesOf(narrowed) } }
121
+ : {}),
122
+ };
123
+ }
124
+ const { form: _form, ...rest } = result;
125
+ return {
126
+ ...rest,
127
+ view: 'summary',
128
+ formSummary: form ? summarizeLandingForm(form) : null,
129
+ ...(form
130
+ ? {
131
+ next: 'Pass view "full" for the form; add fields (top-level keys from formSummary.fields) and locales to read only part of it.',
132
+ }
133
+ : {}),
134
+ };
135
+ }
136
+ //# sourceMappingURL=landing-read.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"landing-read.js","sourceRoot":"","sources":["../src/landing-read.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;GAaG;AAEH,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAA;AACvB,OAAO,EAAE,sBAAsB,EAAE,MAAM,uBAAuB,CAAA;AAE9D,MAAM,CAAC,MAAM,kBAAkB,GAAG,CAAC,SAAS,EAAE,MAAM,CAAU,CAAA;AAG9D,qDAAqD;AACrD,MAAM,CAAC,MAAM,kBAAkB,GAAG;IACjC,IAAI,EAAE,CAAC;SACL,IAAI,CAAC,kBAAkB,CAAC;SACxB,QAAQ,EAAE;SACV,QAAQ,CACR,kGAAkG,CAClG;IACF,MAAM,EAAE,CAAC;SACP,KAAK,CAAC,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;SACzB,GAAG,CAAC,EAAE,CAAC;SACP,QAAQ,EAAE;SACV,QAAQ,CACR,sIAAsI,CACtI;IACF,OAAO,EAAE,CAAC;SACR,KAAK,CAAC,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;SACzB,GAAG,CAAC,GAAG,CAAC;SACR,QAAQ,EAAE;SACV,QAAQ,CACR,sIAAsI,CACtI;CACF,CAAA;AAYD,MAAM,QAAQ,GAAG,CAAC,KAAc,EAAiB,EAAE,CAClD,OAAO,CAAC,KAAK,CAAC,IAAI,OAAO,KAAK,KAAK,QAAQ,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC,CAAA;AAErE,MAAM,OAAO,GAAG,CAAC,KAAc,EAAU,EAAE,CAC1C,KAAK,KAAK,SAAS,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,WAAW,EAAE,CAAC,MAAM,CAAC,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC,CAAC,CAAC,MAAM,CAAA;AAEjF,MAAM,WAAW,GAAG;IACnB,aAAa;IACb,WAAW;IACX,YAAY;IACZ,SAAS;IACT,kBAAkB;IAClB,YAAY;IACZ,cAAc;IACd,UAAU;CACD,CAAA;AAEV,2FAA2F;AAC3F,SAAS,MAAM,CAAC,IAAU;IACzB,IAAI,OAAO,IAAI,CAAC,OAAO,KAAK,QAAQ,IAAI,IAAI,CAAC,OAAO;QAAE,OAAO,EAAE,IAAI,EAAE,KAAK,EAAE,KAAK,EAAE,OAAO,CAAC,IAAI,CAAC,OAAO,CAAC,EAAE,CAAA;IAC1G,IAAI,OAAO,IAAI,CAAC,OAAO,KAAK,QAAQ,IAAI,IAAI,CAAC,OAAO;QACnD,OAAO,EAAE,IAAI,EAAE,IAAI,CAAC,OAAO,CAAC,UAAU,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,UAAU,CAAC,CAAC,CAAC,KAAK,EAAE,KAAK,EAAE,OAAO,CAAC,IAAI,CAAC,OAAO,CAAC,EAAE,CAAA;IACrG,OAAO,EAAE,IAAI,EAAE,MAAM,EAAE,KAAK,EAAE,CAAC,EAAE,CAAA;AAClC,CAAC;AAED,oEAAoE;AACpE,MAAM,UAAU,oBAAoB,CAAC,IAAU;IAC9C,MAAM,QAAQ,GAAG,KAAK,CAAC,OAAO,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC,CAAC,EAAE,CAAA;IAClE,MAAM,OAAO,GAAG,QAAQ,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE,CAAA;IAC1D,MAAM,KAAK,GAAG,MAAM,CAAC,WAAW,CAC/B,WAAW,CAAC,OAAO,CAAC,CAAC,GAAG,EAAE,EAAE,CAAC,CAAC,OAAO,IAAI,CAAC,GAAG,CAAC,KAAK,QAAQ,IAAI,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,EAAE,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CACpG,CAAA;IACD,OAAO;QACN,KAAK,EAAE,OAAO,CAAC,IAAI,CAAC;QACpB,aAAa,EAAE,IAAI,CAAC,aAAa,IAAI,CAAC;QACtC,aAAa,EAAE,IAAI,CAAC,aAAa;QACjC,OAAO,EAAE,IAAI,CAAC,OAAO;QACrB,KAAK,EAAE,IAAI,CAAC,KAAK;QACjB,WAAW,EAAE,IAAI,CAAC,WAAW;QAC7B,aAAa,EAAE,sBAAsB,CAAC,IAAI,CAAC,aAAa,CAAC,IAAI,IAAI;QACjE,YAAY,EAAE,MAAM,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,MAAM,EAAE,OAAO,CAAC,EAAE,EAAE,CAAC,CAAC,EAAE,MAAM,EAAE,KAAK,EAAE,OAAO,CAAC,OAAO,CAAC,EAAE,CAAC,CAAC;QACvG,QAAQ,EAAE,QAAQ,CAAC,GAAG,CAAC,CAAC,OAAO,EAAE,KAAK,EAAE,EAAE;YACzC,MAAM,CAAC,GAAG,QAAQ,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE,CAAA;YAC1C,OAAO;gBACN,KAAK;gBACL,EAAE,EAAE,CAAC,CAAC,EAAE;gBACR,IAAI,EAAE,CAAC,CAAC,IAAI;gBACZ,GAAG,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,MAAM,EAAE,IAAI,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;gBACrC,KAAK,EAAE,OAAO,CAAC,OAAO,CAAC;aACvB,CAAA;QACF,CAAC,CAAC;QACF,KAAK;QACL,IAAI,EAAE,MAAM,CAAC,IAAI,CAAC;QAClB,QAAQ,EAAE,KAAK,CAAC,OAAO,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC;QACjE,WAAW,EAAE,KAAK,CAAC,OAAO,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,WAAW,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC;QAC1E,6DAA6D;QAC7D,MAAM,EAAE,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC;aACvB,GAAG,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,CAAC,EAAE,KAAK,EAAE,KAAK,EAAE,OAAO,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC;aACxD,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,KAAK,GAAG,CAAC,CAAC,KAAK,CAAC;KACnC,CAAA;AACF,CAAC;AAED,SAAS,UAAU,CAClB,IAAU,EACV,MAAqC,EACrC,OAAsC;IAEtC,IAAI,GAAG,GAAS,IAAI,CAAA;IACpB,IAAI,MAAM,EAAE,MAAM,EAAE,CAAC;QACpB,6EAA6E;QAC7E,6EAA6E;QAC7E,MAAM,IAAI,GAAG,IAAI,GAAG,CAAC,CAAC,GAAG,MAAM,EAAE,eAAe,EAAE,GAAG,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAA;QACnF,GAAG,GAAG,MAAM,CAAC,WAAW,CAAC,MAAM,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,GAAG,CAAC,EAAE,EAAE,CAAC,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,CAAC,CAAA;IAC/E,CAAC;IACD,IAAI,OAAO,IAAI,QAAQ,CAAC,GAAG,CAAC,OAAO,CAAC,EAAE,CAAC;QACtC,MAAM,MAAM,GAAG,IAAI,GAAG,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,sBAAsB,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAA;QAC1E,GAAG,GAAG;YACL,GAAG,GAAG;YACN,OAAO,EAAE,MAAM,CAAC,WAAW,CAC1B,MAAM,CAAC,OAAO,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,GAAG,CAAC,EAAE,EAAE,CAAC,MAAM,CAAC,GAAG,CAAC,sBAAsB,CAAC,GAAG,CAAC,IAAI,GAAG,CAAC,CAAC,CAC7F;SACD,CAAA;IACF,CAAC;IACD,OAAO,GAAG,CAAA;AACX,CAAC;AAED;;;GAGG;AACH,MAAM,UAAU,gBAAgB,CAAC,MAAe,EAAE,UAA8B,EAAE;IACjF,IAAI,CAAC,QAAQ,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC,MAAM,IAAI,MAAM,CAAC;QAAE,OAAO,MAAM,CAAA;IAC3D,MAAM,IAAI,GAAG,QAAQ,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC,CAAC,IAAI,CAAA;IACvD,IAAI,CAAC,OAAO,CAAC,IAAI,IAAI,SAAS,CAAC,KAAK,MAAM,EAAE,CAAC;QAC5C,MAAM,QAAQ,GAAG,IAAI,CAAC,CAAC,CAAC,UAAU,CAAC,IAAI,EAAE,OAAO,CAAC,MAAM,EAAE,OAAO,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,IAAI,CAAA;QACvF,OAAO;YACN,GAAG,MAAM;YACT,IAAI,EAAE,QAAQ;YACd,GAAG,CAAC,IAAI,IAAI,QAAQ,KAAK,IAAI;gBAC5B,CAAC,CAAC,EAAE,SAAS,EAAE,EAAE,IAAI,EAAE,OAAO,CAAC,IAAI,CAAC,EAAE,QAAQ,EAAE,OAAO,CAAC,QAAQ,CAAC,EAAE,EAAE;gBACrE,CAAC,CAAC,EAAE,CAAC;SACN,CAAA;IACF,CAAC;IACD,MAAM,EAAE,IAAI,EAAE,KAAK,EAAE,GAAG,IAAI,EAAE,GAAG,MAAM,CAAA;IACvC,OAAO;QACN,GAAG,IAAI;QACP,IAAI,EAAE,SAAS;QACf,WAAW,EAAE,IAAI,CAAC,CAAC,CAAC,oBAAoB,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,IAAI;QACrD,GAAG,CAAC,IAAI;YACP,CAAC,CAAC;gBACA,IAAI,EAAE,yHAAyH;aAC/H;YACF,CAAC,CAAC,EAAE,CAAC;KACN,CAAA;AACF,CAAC"}
@@ -13,8 +13,9 @@
13
13
  * - theme tokens: palette per light/dark (or `auto` = both, by
14
14
  * prefers-color-scheme), fonts from LANDING_FONTS, radius, width;
15
15
  * - per-locale content (`locales`) rendered as one page per locale with
16
- * hreflang alternates;
17
- * - SEO / Open Graph fields and JSON-LD (SoftwareApplication + FAQPage).
16
+ * hreflang alternates and `dir="rtl"` for right-to-left languages;
17
+ * - SEO / Open Graph fields and JSON-LD (SoftwareApplication + FAQPage),
18
+ * whose `offers` carry the real prices of plans bound to Pay offers.
18
19
  *
19
20
  * Output rules are the v1 rules: no JavaScript, every string HTML-escaped,
20
21
  * links scheme-clamped (safeHref), images clamped (safeImageSrc), CSS built
@@ -245,6 +246,8 @@ export declare const LANDING_UI_DEFAULTS: {
245
246
  readonly lifetime: "lifetime";
246
247
  readonly source: "Source";
247
248
  readonly languages: "Languages";
249
+ /** Alt text of the hero logo; `{name}` is replaced by the extension name. */
250
+ readonly logoAlt: "{name} logo";
248
251
  };
249
252
  export type LandingUiKey = keyof typeof LANDING_UI_DEFAULTS;
250
253
  export interface LandingLocaleContent {
@@ -293,6 +296,8 @@ export interface LandingProblem {
293
296
  * workflow. Null when the value is not a language tag.
294
297
  */
295
298
  export declare function normalizeLandingLocale(raw: unknown): string | null;
299
+ /** `<html dir>` for a locale page: `rtl` for Arabic, Hebrew, Persian, Urdu and other RTL scripts. */
300
+ export declare function landingLocaleDir(locale: string): 'ltr' | 'rtl';
296
301
  /** URL path segment for a locale: lowercase BCP 47 (`pt-br`). */
297
302
  export declare function landingLocaleSlug(locale: string): string;
298
303
  export declare function landingDefaultLocale(form: LandingForm): string;
@@ -311,9 +316,22 @@ export declare function contrastRatio(a: string, b: string): number | null;
311
316
  * landingPageWarnings() as warnings — v1 validation is unchanged.
312
317
  */
313
318
  export declare function landingFormProblems(form: LandingForm): LandingProblem[];
319
+ /** A live Extenshi Pay offer as the renderer needs it (the BFF's LandingPayOffer fits). */
320
+ export interface LandingRenderOffer {
321
+ sku: string;
322
+ /** Minor units, as stored on the offer (formatLandingPrice divides by 100). */
323
+ amountMinor: number;
324
+ currency: string;
325
+ }
314
326
  export interface RenderLandingOptions {
315
327
  /** Locale to render; default the form's default locale. */
316
328
  locale?: string;
329
+ /**
330
+ * The project's active Pay offers (hosted rendering only). Plans bound to
331
+ * one by offerSku get a JSON-LD Offer with its real price; without them a
332
+ * page that sells something claims no price rather than a free one.
333
+ */
334
+ payOffers?: readonly LandingRenderOffer[];
317
335
  }
318
336
  /**
319
337
  * The one entry point every surface calls (dojo preview, BFF hosting, MCP and
@@ -321,7 +339,7 @@ export interface RenderLandingOptions {
321
339
  */
322
340
  export declare function renderLandingForm(form: LandingForm, opts?: RenderLandingOptions): string;
323
341
  /** Every locale's page: `[{ locale, path, html }]`, default locale first (path ''). */
324
- export declare function renderLandingLocales(form: LandingForm): {
342
+ export declare function renderLandingLocales(form: LandingForm, opts?: Omit<RenderLandingOptions, 'locale'>): {
325
343
  locale: string;
326
344
  slug: string;
327
345
  html: string;
@@ -1 +1 @@
1
- {"version":3,"file":"landing-sections.d.ts","sourceRoot":"","sources":["../src/landing-sections.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"landing-sections.d.ts","sourceRoot":"","sources":["../src/landing-sections.ts"],"names":[],"mappings":"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"}