@centrifuge/sdk 1.17.0 → 1.18.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.
@@ -1,5 +1,5 @@
1
1
  import { HexString } from './index.js';
2
- import type { ApyMode, Factsheet, LegacyApyMode, PoolMetadata } from './poolMetadata.js';
2
+ import type { ApyMode, Factsheet, LegacyApyMode, LinkDocument, PoolMetadata } from './poolMetadata.js';
3
3
  export type FileType = {
4
4
  uri: string;
5
5
  mime: string;
@@ -45,6 +45,8 @@ export type PoolMetadataInput = {
45
45
  forum: string;
46
46
  email: string;
47
47
  executiveSummary: FileType | null;
48
+ /** Reusable named documents written to `pool.links.documents` (referenceable via `linkRef`). */
49
+ linkDocuments?: LinkDocument[];
48
50
  /**
49
51
  * @deprecated v2 has no flat `details`; author them via `factsheet` `text` blocks. Ignored by
50
52
  * `createPool`/`update`.
@@ -1 +1 @@
1
- {"version":3,"file":"poolInput.d.ts","sourceRoot":"","sources":["../../src/types/poolInput.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,MAAM,YAAY,CAAA;AACtC,OAAO,KAAK,EAAE,OAAO,EAAE,SAAS,EAAE,aAAa,EAAE,YAAY,EAAE,MAAM,mBAAmB,CAAA;AAExF,MAAM,MAAM,QAAQ,GAAG;IAAE,GAAG,EAAE,MAAM,CAAC;IAAC,IAAI,EAAE,MAAM,CAAA;CAAE,CAAA;AAEpD,MAAM,MAAM,UAAU,GAAG;IACvB,MAAM,EAAE;QACN,IAAI,EAAE,MAAM,CAAA;QACZ,KAAK,EAAE,MAAM,CAAA;QACb,MAAM,EAAE,QAAQ,GAAG,IAAI,CAAA;KACxB,CAAA;IACD,GAAG,EAAE,MAAM,CAAA;CACZ,CAAA;AACD,MAAM,MAAM,eAAe,GAAG;IAC5B,SAAS,EAAE,MAAM,CAAA;IACjB,UAAU,EAAE,MAAM,CAAA;IAClB,aAAa,CAAC,EAAE,MAAM,GAAG,IAAI,CAAA;IAC7B,aAAa,CAAC,EAAE,MAAM,GAAG,IAAI,CAAA;IAC7B,GAAG,CAAC,EAAE,OAAO,GAAG,aAAa,GAAG,IAAI,CAAA;IACpC,IAAI,CAAC,EAAE,MAAM,CAAA;IACb,eAAe,CAAC,EAAE,YAAY,CAAC,cAAc,CAAC,CAAC,SAAS,CAAC,CAAC,iBAAiB,CAAC,CAAA;CAC7E,CAAA;AAED,MAAM,MAAM,YAAY,GAAG;IACzB,KAAK,EAAE,MAAM,CAAA;IACb,IAAI,EAAE,MAAM,CAAA;CACb,CAAA;AAED,MAAM,MAAM,iBAAiB,GAAG;IAC9B,aAAa,EAAE,WAAW,CAAA;IAC1B,UAAU,EAAE,eAAe,GAAG,gBAAgB,CAAA;IAC9C,aAAa,EAAE,MAAM,CAAA;IACrB,YAAY,EAAE,eAAe,EAAE,CAAA;IAC/B,QAAQ,EAAE,MAAM,CAAA;IAChB,YAAY,EAAE,MAAM,CAAA;IACpB,QAAQ,EAAE,QAAQ,CAAA;IAClB,QAAQ,EAAE,MAAM,GAAG,QAAQ,CAAA;IAC3B,UAAU,EAAE,MAAM,CAAA;IAClB,UAAU,EAAE,QAAQ,CAAA;IACpB;;;OAGG;IACH,iBAAiB,CAAC,EAAE,MAAM,CAAA;IAC1B,OAAO,EAAE,MAAM,CAAA;IACf,KAAK,EAAE,MAAM,CAAA;IACb,KAAK,EAAE,MAAM,CAAA;IACb,gBAAgB,EAAE,QAAQ,GAAG,IAAI,CAAA;IACjC;;;OAGG;IACH,OAAO,CAAC,EAAE,YAAY,EAAE,CAAA;IACxB;;;OAGG;IACH,gBAAgB,CAAC,EAAE;QAAE,IAAI,EAAE,MAAM,CAAC;QAAC,KAAK,EAAE,MAAM,CAAC;QAAC,WAAW,CAAC,EAAE,MAAM,CAAA;KAAE,EAAE,CAAA;IAC1E,WAAW,EAAE;QACX,MAAM,CAAC,EAAE,MAAM,CAAA;QACf,KAAK,CAAC,EAAE,MAAM,CAAA;QACd,SAAS,CAAC,EAAE,MAAM,CAAA;KACnB,EAAE,CAAA;IACH,+DAA+D;IAC/D,SAAS,CAAC,EAAE,SAAS,CAAA;IACrB,oBAAoB,EAAE,MAAM,CAAA;IAC5B,UAAU,CAAC,EAAE;QACX,MAAM,CAAC,EAAE,MAAM,CAAA;KAChB,CAAA;IACD,MAAM,CAAC,EAAE,OAAO,CAAA;CACjB,CAAA"}
1
+ {"version":3,"file":"poolInput.d.ts","sourceRoot":"","sources":["../../src/types/poolInput.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,MAAM,YAAY,CAAA;AACtC,OAAO,KAAK,EAAE,OAAO,EAAE,SAAS,EAAE,aAAa,EAAE,YAAY,EAAE,YAAY,EAAE,MAAM,mBAAmB,CAAA;AAEtG,MAAM,MAAM,QAAQ,GAAG;IAAE,GAAG,EAAE,MAAM,CAAC;IAAC,IAAI,EAAE,MAAM,CAAA;CAAE,CAAA;AAEpD,MAAM,MAAM,UAAU,GAAG;IACvB,MAAM,EAAE;QACN,IAAI,EAAE,MAAM,CAAA;QACZ,KAAK,EAAE,MAAM,CAAA;QACb,MAAM,EAAE,QAAQ,GAAG,IAAI,CAAA;KACxB,CAAA;IACD,GAAG,EAAE,MAAM,CAAA;CACZ,CAAA;AACD,MAAM,MAAM,eAAe,GAAG;IAC5B,SAAS,EAAE,MAAM,CAAA;IACjB,UAAU,EAAE,MAAM,CAAA;IAClB,aAAa,CAAC,EAAE,MAAM,GAAG,IAAI,CAAA;IAC7B,aAAa,CAAC,EAAE,MAAM,GAAG,IAAI,CAAA;IAC7B,GAAG,CAAC,EAAE,OAAO,GAAG,aAAa,GAAG,IAAI,CAAA;IACpC,IAAI,CAAC,EAAE,MAAM,CAAA;IACb,eAAe,CAAC,EAAE,YAAY,CAAC,cAAc,CAAC,CAAC,SAAS,CAAC,CAAC,iBAAiB,CAAC,CAAA;CAC7E,CAAA;AAED,MAAM,MAAM,YAAY,GAAG;IACzB,KAAK,EAAE,MAAM,CAAA;IACb,IAAI,EAAE,MAAM,CAAA;CACb,CAAA;AAED,MAAM,MAAM,iBAAiB,GAAG;IAC9B,aAAa,EAAE,WAAW,CAAA;IAC1B,UAAU,EAAE,eAAe,GAAG,gBAAgB,CAAA;IAC9C,aAAa,EAAE,MAAM,CAAA;IACrB,YAAY,EAAE,eAAe,EAAE,CAAA;IAC/B,QAAQ,EAAE,MAAM,CAAA;IAChB,YAAY,EAAE,MAAM,CAAA;IACpB,QAAQ,EAAE,QAAQ,CAAA;IAClB,QAAQ,EAAE,MAAM,GAAG,QAAQ,CAAA;IAC3B,UAAU,EAAE,MAAM,CAAA;IAClB,UAAU,EAAE,QAAQ,CAAA;IACpB;;;OAGG;IACH,iBAAiB,CAAC,EAAE,MAAM,CAAA;IAC1B,OAAO,EAAE,MAAM,CAAA;IACf,KAAK,EAAE,MAAM,CAAA;IACb,KAAK,EAAE,MAAM,CAAA;IACb,gBAAgB,EAAE,QAAQ,GAAG,IAAI,CAAA;IACjC,gGAAgG;IAChG,aAAa,CAAC,EAAE,YAAY,EAAE,CAAA;IAC9B;;;OAGG;IACH,OAAO,CAAC,EAAE,YAAY,EAAE,CAAA;IACxB;;;OAGG;IACH,gBAAgB,CAAC,EAAE;QAAE,IAAI,EAAE,MAAM,CAAC;QAAC,KAAK,EAAE,MAAM,CAAC;QAAC,WAAW,CAAC,EAAE,MAAM,CAAA;KAAE,EAAE,CAAA;IAC1E,WAAW,EAAE;QACX,MAAM,CAAC,EAAE,MAAM,CAAA;QACf,KAAK,CAAC,EAAE,MAAM,CAAA;QACd,SAAS,CAAC,EAAE,MAAM,CAAA;KACnB,EAAE,CAAA;IACH,+DAA+D;IAC/D,SAAS,CAAC,EAAE,SAAS,CAAA;IACrB,oBAAoB,EAAE,MAAM,CAAA;IAC5B,UAAU,CAAC,EAAE;QACX,MAAM,CAAC,EAAE,MAAM,CAAA;KAChB,CAAA;IACD,MAAM,CAAC,EAAE,OAAO,CAAA;CACjB,CAAA"}
@@ -144,6 +144,11 @@ export type PoolMetadataV1 = {
144
144
  executiveSummary: FileType | null;
145
145
  forum?: string;
146
146
  website?: string;
147
+ /**
148
+ * Reusable named documents authored once and referenced anywhere in the factsheet via a
149
+ * {@link LinkTarget} `{ kind: 'linkRef', linkRef: key }`. See {@link LinkDocument}.
150
+ */
151
+ documents?: LinkDocument[];
147
152
  };
148
153
  details?: {
149
154
  title: string;
@@ -231,15 +236,24 @@ export type WithdrawManager = {
231
236
  label?: string;
232
237
  };
233
238
  /**
234
- * Access gating for any block, key fact, column, or kpi item. Default `'public'`. Resolved app-side
235
- * against the connected wallet's share-class (transfer-hook) membership. Presentational only — never
236
- * a substitute for on-chain access control.
237
- * - `public` — rendered for everyone.
238
- * - `whitelisted` — full content only for a whitelisted wallet; otherwise blurred behind an
239
- * app-owned overlay that keeps its layout footprint (no reflow on connect).
240
- * - `hidden` — never rendered, for anyone (not laid out).
239
+ * A single audience gate applied to an element. Presentational only, resolved app-side; never a
240
+ * substitute for on-chain / compliance access control.
241
+ * - `whitelisted` — passes only for a wallet in the share class's transfer-hook allowlist;
242
+ * otherwise blurred behind an app-owned overlay that keeps its layout footprint.
243
+ * - `geo-restricted` — passes only when the user's region is NOT in `pool.geoRestrictions.regions`
244
+ * (with no such list, nothing is restricted).
241
245
  */
242
- export type Visibility = 'public' | 'whitelisted' | 'hidden';
246
+ export type VisibilityGate = 'whitelisted' | 'geo-restricted';
247
+ /**
248
+ * Access gating for any block, key fact, column, or kpi item. Default `'public'`.
249
+ * - `'public'` (or absent) — rendered for everyone.
250
+ * - `'hidden'` — never rendered, for anyone (not laid out).
251
+ * - a single {@link VisibilityGate} or an **array of gates** — rendered only when ALL listed gates
252
+ * pass (AND). e.g. `['whitelisted', 'geo-restricted']` = a whitelisted wallet in an allowed
253
+ * region. `'public'`/`'hidden'` may not appear inside the array. When several gates fail, the app
254
+ * shows the most restrictive overlay (geo before whitelist).
255
+ */
256
+ export type Visibility = 'public' | 'hidden' | VisibilityGate | VisibilityGate[];
243
257
  /**
244
258
  * Constrained Markdown subset (paragraphs, hard newlines, `-`/`*` and `1.` lists, `**bold**`,
245
259
  * `_italic_`, `[text](url)`). Raw HTML is stripped; sanitized by the reader on render.
@@ -354,9 +368,46 @@ type BlockBase = {
354
368
  title?: string;
355
369
  visibility?: Visibility;
356
370
  };
371
+ /**
372
+ * A single link destination, discriminated by `kind` (no competing-optional ambiguity):
373
+ * - `file` — an inline IPFS asset.
374
+ * - `href` — an inline URL.
375
+ * - `linkRef` — a key in the typed `pool.links` (e.g. `'executiveSummary'`, `'website'`), so the
376
+ * URL/file has a single source of truth. The app resolves it; an unknown key hides
377
+ * the tile/button (graceful read).
378
+ */
379
+ export type LinkTarget = {
380
+ kind: 'file';
381
+ file: FileType;
382
+ } | {
383
+ kind: 'href';
384
+ href: string;
385
+ } | {
386
+ kind: 'linkRef';
387
+ linkRef: string;
388
+ };
389
+ /**
390
+ * A reusable named document on `pool.links.documents`, referenced from a {@link LinkTarget} via
391
+ * `{ kind: 'linkRef', linkRef: key }`. Carries exactly one of `file` or `href`.
392
+ */
393
+ export type LinkDocument = {
394
+ /** Unique slug a `linkRef` points at; must not collide with `executiveSummary`/`website`/`forum`. */
395
+ key: string;
396
+ label: string;
397
+ file?: FileType | null;
398
+ href?: string;
399
+ };
357
400
  export type TextBlock = BlockBase & {
358
401
  type: 'text';
359
402
  body: RichText;
403
+ /** Overview-card extras (all optional): a brand logo, a card background, and link buttons. */
404
+ logo?: FileType;
405
+ /** Theme token or hex color for the card background. */
406
+ background?: string;
407
+ links?: Array<{
408
+ label: string;
409
+ target: LinkTarget;
410
+ }>;
360
411
  };
361
412
  export type TableBlock = BlockBase & {
362
413
  type: 'table';
@@ -447,7 +498,24 @@ export type TabGroupBlock = BlockBase & {
447
498
  block: TabBlock;
448
499
  }>;
449
500
  };
450
- export type ContentBlock = TextBlock | TableBlock | ChartBlock | ImageBlock | KpiGroupBlock | TabGroupBlock | LiveTableBlock;
501
+ /** A tile list (doc icon + title) opening each item's {@link LinkTarget}, e.g. a "Fact Sheet" tile. */
502
+ export type DocumentsBlock = BlockBase & {
503
+ type: 'documents';
504
+ items: Array<{
505
+ title: string;
506
+ target: LinkTarget;
507
+ }>;
508
+ };
509
+ /** A collapsible stack (accordion UX). Each item holds a {@link TabBlock} leaf, like `tabGroup` tabs. */
510
+ export type AccordionBlock = BlockBase & {
511
+ type: 'accordion';
512
+ items: Array<{
513
+ title: string;
514
+ block: TabBlock;
515
+ defaultOpen?: boolean;
516
+ }>;
517
+ };
518
+ export type ContentBlock = TextBlock | TableBlock | ChartBlock | ImageBlock | KpiGroupBlock | TabGroupBlock | LiveTableBlock | DocumentsBlock | AccordionBlock;
451
519
  /** A pointer to one of the closed, app-owned section units. */
452
520
  export type SectionRefBlock = {
453
521
  type: 'section';
@@ -492,6 +560,13 @@ export type PoolMetadataV2 = {
492
560
  issuer: Pick<PoolMetadataV1['pool']['issuer'], 'name' | 'email' | 'logo'>;
493
561
  poolRatings?: PoolRatingV2[];
494
562
  factsheet?: Factsheet;
563
+ /**
564
+ * Single pool-level restricted-regions list (ISO 3166-1 alpha-2 codes, e.g. `'US'`). Every
565
+ * `geo-restricted` element is gated against it. Presentational only; not compliance/access control.
566
+ */
567
+ geoRestrictions?: {
568
+ regions: string[];
569
+ };
495
570
  };
496
571
  shareClasses: PoolMetadataV1['shareClasses'];
497
572
  merkleProofManager?: PoolMetadataV1['merkleProofManager'];
@@ -1 +1 @@
1
- {"version":3,"file":"poolMetadata.d.ts","sourceRoot":"","sources":["../../src/types/poolMetadata.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"poolMetadata.d.ts","sourceRoot":"","sources":["../../src/types/poolMetadata.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"poolMetadata.js","sourceRoot":"","sources":["../../src/types/poolMetadata.ts"],"names":[],"mappings":"AAohBA,MAAM,UAAU,gBAAgB,CAAC,QAAsB;IACrD,OAAO,QAAQ,CAAC,OAAO,KAAK,CAAC,CAAA;AAC/B,CAAC;AAED,mGAAmG;AACnG,MAAM,UAAU,oBAAoB,CAAC,QAA8B;IACjE,OAAO,QAAQ,CAAC,OAAO,IAAI,IAAI,IAAI,QAAQ,CAAC,OAAO,GAAG,CAAC,CAAA;AACzD,CAAC"}
1
+ {"version":3,"file":"poolMetadata.js","sourceRoot":"","sources":["../../src/types/poolMetadata.ts"],"names":[],"mappings":"AAulBA,MAAM,UAAU,gBAAgB,CAAC,QAAsB;IACrD,OAAO,QAAQ,CAAC,OAAO,KAAK,CAAC,CAAA;AAC/B,CAAC;AAED,mGAAmG;AACnG,MAAM,UAAU,oBAAoB,CAAC,QAA8B;IACjE,OAAO,QAAQ,CAAC,OAAO,IAAI,IAAI,IAAI,QAAQ,CAAC,OAAO,GAAG,CAAC,CAAA;AACzD,CAAC"}
@@ -1,4 +1,4 @@
1
- import { type PoolMetadata, type PoolMetadataV2 } from '../types/poolMetadata.js';
1
+ import { type FileType, type LinkTarget, type PoolMetadata, type PoolMetadataV1, type PoolMetadataV2 } from '../types/poolMetadata.js';
2
2
  /**
3
3
  * Pure, idempotent legacy -> v2 migration. Performs no IPFS/network access so it stays
4
4
  * unit-testable. A document already at the current v2 shape is returned unchanged; a v2 document
@@ -23,4 +23,14 @@ export declare function migratePoolMetadataToV2(legacy: PoolMetadata): PoolMetad
23
23
  * narrowed to {@link PoolMetadataV2} on success.
24
24
  */
25
25
  export declare function parsePoolMetadataV2(raw: unknown): PoolMetadataV2;
26
+ /**
27
+ * Resolves a {@link LinkTarget} to a `{ href }` or `{ file }` against a pool's `links`. `linkRef`
28
+ * checks the built-in keys first (`executiveSummary` -> file, `website`/`forum` -> url), then
29
+ * `links.documents` by `key`. Returns `null` on no match (callers self-blank; never throw). Shared
30
+ * so the SDK and the invest app resolve references identically.
31
+ */
32
+ export declare function resolveLinkTarget(links: PoolMetadataV1['pool']['links'] | undefined, target: LinkTarget): {
33
+ href?: string;
34
+ file?: FileType;
35
+ } | null;
26
36
  //# sourceMappingURL=poolMetadataMigration.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"poolMetadataMigration.d.ts","sourceRoot":"","sources":["../../src/utils/poolMetadataMigration.ts"],"names":[],"mappings":"AACA,OAAO,EAeL,KAAK,YAAY,EAEjB,KAAK,cAAc,EAIpB,MAAM,0BAA0B,CAAA;AAoMjC;;;;;;;;;;;GAWG;AACH,wBAAgB,uBAAuB,CAAC,MAAM,EAAE,YAAY,GAAG,cAAc,CAmD5E;AA4XD;;;;;;;;;GASG;AACH,wBAAgB,mBAAmB,CAAC,GAAG,EAAE,OAAO,GAAG,cAAc,CAOhE"}
1
+ {"version":3,"file":"poolMetadataMigration.d.ts","sourceRoot":"","sources":["../../src/utils/poolMetadataMigration.ts"],"names":[],"mappings":"AACA,OAAO,EAQL,KAAK,QAAQ,EAOb,KAAK,UAAU,EAGf,KAAK,YAAY,EACjB,KAAK,cAAc,EACnB,KAAK,cAAc,EAIpB,MAAM,0BAA0B,CAAA;AA+MjC;;;;;;;;;;;GAWG;AACH,wBAAgB,uBAAuB,CAAC,MAAM,EAAE,YAAY,GAAG,cAAc,CAmD5E;AAmeD;;;;;;;;;GASG;AACH,wBAAgB,mBAAmB,CAAC,GAAG,EAAE,OAAO,GAAG,cAAc,CAWhE;AAED;;;;;GAKG;AACH,wBAAgB,iBAAiB,CAC/B,KAAK,EAAE,cAAc,CAAC,MAAM,CAAC,CAAC,OAAO,CAAC,GAAG,SAAS,EAClD,MAAM,EAAE,UAAU,GACjB;IAAE,IAAI,CAAC,EAAE,MAAM,CAAC;IAAC,IAAI,CAAC,EAAE,QAAQ,CAAA;CAAE,GAAG,IAAI,CAoB3C"}
@@ -75,9 +75,18 @@ function isSafeDocumentUri(uri) {
75
75
  const scheme = uri.trim().toLowerCase();
76
76
  return scheme.startsWith('https://') || scheme.startsWith('ipfs://');
77
77
  }
78
- /** Escapes markdown link-breaking characters so an issuer-supplied label can't alter the link. */
79
- function escapeMarkdownText(text) {
80
- return text.replace(/[\\[\]()]/g, '\\$&').replace(/\s+/g, ' ');
78
+ /**
79
+ * Builds a `documents` section from the rating report files (a tile per safe-URI report), or null
80
+ * when none have a usable report. Each tile targets the report file directly (`kind: 'file'`).
81
+ */
82
+ function ratingDocumentsBlock(poolRatings) {
83
+ const items = asArray(poolRatings)
84
+ .filter((rating) => rating.reportFile?.uri && isSafeDocumentUri(rating.reportFile.uri))
85
+ .map((rating) => ({
86
+ title: `${rating.agency ?? 'Rating'} rating report`,
87
+ target: { kind: 'file', file: rating.reportFile },
88
+ }));
89
+ return items.length > 0 ? { type: 'documents', id: 'documents', title: 'Documents', items } : null;
81
90
  }
82
91
  /**
83
92
  * Builds the seed `factsheet` from the legacy display fields. The migration is content-translating:
@@ -142,28 +151,36 @@ function buildFactsheet(pool, shareClasses, holdings) {
142
151
  }
143
152
  const body = [];
144
153
  if (issuer.description) {
145
- body.push({ type: 'text', id: 'overview', title: 'Overview', body: issuer.description });
146
- }
147
- asArray(details).forEach((detail, index) => {
148
- body.push({ type: 'text', id: `detail-${index}`, title: detail.title, body: detail.body });
149
- });
150
- // Ratings reports are surfaced two ways: a Documents body block (markdown links to the report
151
- // PDFs) and the `ratings` key-fact ref pill above. Both read the same typed `poolRatings` field.
152
- const ratingsWithReports = asArray(poolRatings).filter((rating) => rating.reportFile?.uri && isSafeDocumentUri(rating.reportFile.uri));
153
- if (ratingsWithReports.length > 0) {
154
+ // Overview card: logo and the "Factsheet" link button are added only when their source field
155
+ // exists, so a missing logo / executiveSummary degrades to a plain card (never a broken one).
156
+ // The Factsheet link references the typed `links.executiveSummary` rather than copying its URI.
154
157
  body.push({
155
158
  type: 'text',
156
- id: 'documents',
157
- title: 'Documents',
158
- body: ratingsWithReports
159
- .map((rating) => `- [${escapeMarkdownText(rating.agency ?? 'Rating')} rating report](${rating.reportFile.uri})`)
160
- .join('\n'),
159
+ id: 'overview',
160
+ title: 'Overview',
161
+ body: issuer.description,
162
+ ...(issuer.logo?.uri ? { logo: issuer.logo } : {}),
163
+ ...(pool.links?.executiveSummary?.uri
164
+ ? { links: [{ label: 'Factsheet', target: { kind: 'linkRef', linkRef: 'executiveSummary' } }] }
165
+ : {}),
161
166
  });
162
167
  }
168
+ asArray(details).forEach((detail, index) => {
169
+ body.push({ type: 'text', id: `detail-${index}`, title: detail.title, body: detail.body });
170
+ });
163
171
  body.push({ type: 'section', id: 'performance', ref: 'onchainMetrics' });
172
+ // Full-width region. Rating reports become a `documents` tile block (ratings are also surfaced
173
+ // as the `ratings` key-fact ref pill above; both read the same typed `poolRatings`). `sections` is
174
+ // omitted (so the invest app renders its defaults) only when there is neither a documents block
175
+ // nor a holdings table.
176
+ const sections = [];
177
+ const documentsBlock = ratingDocumentsBlock(poolRatings);
178
+ if (documentsBlock)
179
+ sections.push(documentsBlock);
164
180
  const holdingsBlock = holdingsTableBlock(holdings);
165
- // `sections` is omitted (so the invest app renders its defaults) unless we have a holdings table.
166
- return holdingsBlock ? { body, keyFacts, sections: [holdingsBlock] } : { body, keyFacts };
181
+ if (holdingsBlock)
182
+ sections.push(holdingsBlock);
183
+ return sections.length > 0 ? { body, keyFacts, sections } : { body, keyFacts };
167
184
  }
168
185
  /**
169
186
  * Pure, idempotent legacy -> v2 migration. Performs no IPFS/network access so it stays
@@ -321,7 +338,9 @@ function upgradeLegacyV2(doc) {
321
338
  // (see centrifuge/apps-invest#200), but the SDK is the alignment point: an unknown key is rejected
322
339
  // on WRITE so the management app, SDK, and invest app stay in sync (adding a key ships in an SDK
323
340
  // release). The read path does not validate, so a newer document never breaks an older reader.
324
- const VISIBILITIES = new Set(['public', 'whitelisted', 'hidden']);
341
+ const VISIBILITY_SCALARS = new Set(['public', 'hidden', 'whitelisted', 'geo-restricted']);
342
+ const VISIBILITY_GATES = new Set(['whitelisted', 'geo-restricted']);
343
+ const REGION_CODE_RE = /^[A-Za-z]{2}$/;
325
344
  const CHART_TYPES = new Set(['line', 'area', 'bar', 'donut']);
326
345
  const AXIS_FORMATS = new Set(['number', 'percent', 'currency']);
327
346
  const XAXIS_TYPES = new Set(['category', 'time', 'number']);
@@ -331,7 +350,17 @@ const LIVE_METRICS = new Set(['tokenPrice', 'nav', 'apy30d', 'navChange', 'month
331
350
  const LIVE_DATASETS = new Set(['monthlySummary']);
332
351
  const KEY_FACT_REFS = new Set(['apy', 'availableNetworks', 'ratings']);
333
352
  const COLUMN_FORMATS = new Set(['text', 'number', 'percent', 'currency']);
334
- const CONTENT_BLOCK_TYPES = new Set(['text', 'table', 'chart', 'image', 'kpiGroup', 'tabGroup', 'liveTable']);
353
+ const CONTENT_BLOCK_TYPES = new Set([
354
+ 'text',
355
+ 'table',
356
+ 'chart',
357
+ 'image',
358
+ 'kpiGroup',
359
+ 'tabGroup',
360
+ 'liveTable',
361
+ 'documents',
362
+ 'accordion',
363
+ ]);
335
364
  const TAB_BLOCK_TYPES = new Set(['text', 'table', 'chart', 'kpiGroup']);
336
365
  const KPI_TRENDS = new Set(['up', 'down', 'neutral']);
337
366
  function fail(message) {
@@ -347,9 +376,27 @@ function assertString(value, where) {
347
376
  function assertVisibility(value, where) {
348
377
  if (value === undefined)
349
378
  return;
350
- if (typeof value !== 'string' || !VISIBILITIES.has(value)) {
351
- fail(`${where} has invalid visibility "${String(value)}"`);
379
+ if (typeof value === 'string') {
380
+ if (!VISIBILITY_SCALARS.has(value))
381
+ fail(`${where} has invalid visibility "${value}"`);
382
+ return;
383
+ }
384
+ // An array combines gates with AND. `public`/`hidden` are scalars, never array members.
385
+ if (Array.isArray(value)) {
386
+ if (value.length === 0)
387
+ fail(`${where} visibility array must not be empty`);
388
+ const seen = new Set();
389
+ value.forEach((gate) => {
390
+ if (typeof gate !== 'string' || !VISIBILITY_GATES.has(gate)) {
391
+ fail(`${where} has an invalid visibility gate "${String(gate)}"`);
392
+ }
393
+ if (seen.has(gate))
394
+ fail(`${where} has a duplicate visibility gate "${gate}"`);
395
+ seen.add(gate);
396
+ });
397
+ return;
352
398
  }
399
+ fail(`${where} has invalid visibility "${String(value)}"`);
353
400
  }
354
401
  function isPrimitiveCell(value) {
355
402
  return typeof value === 'string' || typeof value === 'number';
@@ -360,6 +407,52 @@ function validateFile(value, where) {
360
407
  assertString(value.uri, `${where}.uri`);
361
408
  assertString(value.mime, `${where}.mime`);
362
409
  }
410
+ const BUILTIN_LINK_KEYS = new Set(['executiveSummary', 'website', 'forum']);
411
+ function validateLinkDocuments(documents) {
412
+ if (!Array.isArray(documents))
413
+ fail('`pool.links.documents` must be an array');
414
+ const seen = new Set();
415
+ documents.forEach((doc, index) => {
416
+ const where = `pool.links.documents[${index}]`;
417
+ if (!isObject(doc))
418
+ fail(`${where} must be an object`);
419
+ if (typeof doc.key !== 'string' || doc.key.length === 0)
420
+ fail(`${where}.key must be a non-empty string`);
421
+ if (typeof doc.label !== 'string' || doc.label.length === 0)
422
+ fail(`${where}.label must be a non-empty string`);
423
+ // Exactly one of file (object) or non-empty href. A null file counts as absent.
424
+ const hasFile = isObject(doc.file);
425
+ const hasHref = typeof doc.href === 'string' && doc.href.length > 0;
426
+ if (hasFile === hasHref)
427
+ fail(`${where} must set exactly one of \`file\` or \`href\``);
428
+ if (hasFile)
429
+ validateFile(doc.file, `${where}.file`);
430
+ // Built-ins resolve first, so a colliding key would be ambiguous (unreachable).
431
+ if (BUILTIN_LINK_KEYS.has(doc.key))
432
+ fail(`${where}.key "${doc.key}" collides with a built-in link key`);
433
+ if (seen.has(doc.key))
434
+ fail(`${where}.key "${doc.key}" is duplicated`);
435
+ seen.add(doc.key);
436
+ });
437
+ }
438
+ function validateLinkTarget(value, where) {
439
+ if (!isObject(value))
440
+ fail(`${where} must be an object`);
441
+ switch (value.kind) {
442
+ case 'file':
443
+ validateFile(value.file, `${where}.file`);
444
+ break;
445
+ case 'href':
446
+ assertString(value.href, `${where}.href`);
447
+ break;
448
+ case 'linkRef':
449
+ // Resolved app-side against the typed `pool.links`; an unknown key hides the link (lenient).
450
+ assertString(value.linkRef, `${where}.linkRef`);
451
+ break;
452
+ default:
453
+ fail(`${where} has an invalid kind "${String(value.kind)}"`);
454
+ }
455
+ }
363
456
  function validateIconRef(value, where) {
364
457
  if (!isObject(value))
365
458
  fail(`${where} must be an object`);
@@ -473,6 +566,21 @@ function validateContentBlock(block, type, where) {
473
566
  switch (type) {
474
567
  case 'text':
475
568
  assertString(block.body, `${where}.body`);
569
+ // Optional Overview-card extras.
570
+ if (block.logo !== undefined)
571
+ validateFile(block.logo, `${where}.logo`);
572
+ if (block.background !== undefined)
573
+ assertString(block.background, `${where}.background`);
574
+ if (block.links !== undefined) {
575
+ if (!Array.isArray(block.links))
576
+ fail(`${where}.links must be an array`);
577
+ block.links.forEach((link, index) => {
578
+ if (!isObject(link))
579
+ fail(`${where}.links[${index}] must be an object`);
580
+ assertString(link.label, `${where}.links[${index}].label`);
581
+ validateLinkTarget(link.target, `${where}.links[${index}].target`);
582
+ });
583
+ }
476
584
  break;
477
585
  case 'table': {
478
586
  if (!Array.isArray(block.headers) || !block.headers.every((h) => typeof h === 'string')) {
@@ -551,14 +659,7 @@ function validateContentBlock(block, type, where) {
551
659
  if (!isObject(tab))
552
660
  fail(`${where}.tabs[${index}] must be an object`);
553
661
  assertString(tab.label, `${where}.tabs[${index}].label`);
554
- if (!isObject(tab.block))
555
- fail(`${where}.tabs[${index}].block must be an object`);
556
- const tabBlock = tab.block;
557
- if (typeof tabBlock.type !== 'string' || !TAB_BLOCK_TYPES.has(tabBlock.type)) {
558
- fail(`${where}.tabs[${index}].block has an invalid type "${String(tabBlock.type)}"`);
559
- }
560
- assertString(tabBlock.id, `${where}.tabs[${index}].block.id`);
561
- validateContentBlock(tabBlock, tabBlock.type, `${where}.tabs[${index}].block`);
662
+ validateTabBlock(tab.block, `${where}.tabs[${index}].block`);
562
663
  });
563
664
  break;
564
665
  }
@@ -571,10 +672,45 @@ function validateContentBlock(block, type, where) {
571
672
  block.columns.forEach((column, index) => validateLiveColumn(column, `${where}.columns[${index}]`));
572
673
  break;
573
674
  }
675
+ case 'documents': {
676
+ if (!Array.isArray(block.items))
677
+ fail(`${where}.items must be an array`);
678
+ block.items.forEach((item, index) => {
679
+ if (!isObject(item))
680
+ fail(`${where}.items[${index}] must be an object`);
681
+ assertString(item.title, `${where}.items[${index}].title`);
682
+ validateLinkTarget(item.target, `${where}.items[${index}].target`);
683
+ });
684
+ break;
685
+ }
686
+ case 'accordion': {
687
+ if (!Array.isArray(block.items))
688
+ fail(`${where}.items must be an array`);
689
+ block.items.forEach((item, index) => {
690
+ if (!isObject(item))
691
+ fail(`${where}.items[${index}] must be an object`);
692
+ assertString(item.title, `${where}.items[${index}].title`);
693
+ if (item.defaultOpen !== undefined && typeof item.defaultOpen !== 'boolean') {
694
+ fail(`${where}.items[${index}].defaultOpen must be a boolean`);
695
+ }
696
+ validateTabBlock(item.block, `${where}.items[${index}].block`);
697
+ });
698
+ break;
699
+ }
574
700
  default:
575
701
  fail(`${where} has an unknown block type "${type}"`);
576
702
  }
577
703
  }
704
+ /** Validates a leaf block nested in a `tabGroup` tab or `accordion` item (the {@link TabBlock} set). */
705
+ function validateTabBlock(value, where) {
706
+ if (!isObject(value))
707
+ fail(`${where} must be an object`);
708
+ if (typeof value.type !== 'string' || !TAB_BLOCK_TYPES.has(value.type)) {
709
+ fail(`${where} has an invalid type "${String(value.type)}"`);
710
+ }
711
+ assertString(value.id, `${where}.id`);
712
+ validateContentBlock(value, value.type, where);
713
+ }
578
714
  function validateLayoutItem(item, where) {
579
715
  if (!isObject(item))
580
716
  fail(`${where} must be an object`);
@@ -626,8 +762,58 @@ export function parsePoolMetadataV2(raw) {
626
762
  if (!isObject(raw.pool))
627
763
  fail('`pool` must be an object');
628
764
  assertString(raw.pool.name, '`pool.name`');
765
+ if (raw.pool.geoRestrictions !== undefined)
766
+ validateGeoRestrictions(raw.pool.geoRestrictions);
767
+ if (isObject(raw.pool.links) && raw.pool.links.documents !== undefined) {
768
+ validateLinkDocuments(raw.pool.links.documents);
769
+ }
629
770
  if (raw.pool.factsheet !== undefined)
630
771
  validateFactsheet(raw.pool.factsheet);
631
772
  return raw;
632
773
  }
774
+ /**
775
+ * Resolves a {@link LinkTarget} to a `{ href }` or `{ file }` against a pool's `links`. `linkRef`
776
+ * checks the built-in keys first (`executiveSummary` -> file, `website`/`forum` -> url), then
777
+ * `links.documents` by `key`. Returns `null` on no match (callers self-blank; never throw). Shared
778
+ * so the SDK and the invest app resolve references identically.
779
+ */
780
+ export function resolveLinkTarget(links, target) {
781
+ switch (target.kind) {
782
+ case 'file':
783
+ return { file: target.file };
784
+ case 'href':
785
+ return { href: target.href };
786
+ case 'linkRef': {
787
+ const key = target.linkRef;
788
+ if (key === 'executiveSummary')
789
+ return links?.executiveSummary ? { file: links.executiveSummary } : null;
790
+ if (key === 'website')
791
+ return links?.website ? { href: links.website } : null;
792
+ if (key === 'forum')
793
+ return links?.forum ? { href: links.forum } : null;
794
+ const doc = links?.documents?.find((d) => d.key === key);
795
+ if (!doc)
796
+ return null;
797
+ if (doc.file)
798
+ return { file: doc.file };
799
+ if (doc.href)
800
+ return { href: doc.href };
801
+ return null;
802
+ }
803
+ default:
804
+ return null;
805
+ }
806
+ }
807
+ /** Validates `pool.geoRestrictions.regions` as ISO 3166-1 alpha-2 codes (format only, strict on write). */
808
+ function validateGeoRestrictions(geoRestrictions) {
809
+ if (!isObject(geoRestrictions))
810
+ fail('`pool.geoRestrictions` must be an object');
811
+ if (!Array.isArray(geoRestrictions.regions))
812
+ fail('`pool.geoRestrictions.regions` must be an array');
813
+ geoRestrictions.regions.forEach((region, index) => {
814
+ if (typeof region !== 'string' || !REGION_CODE_RE.test(region)) {
815
+ fail(`pool.geoRestrictions.regions[${index}] must be an ISO 3166-1 alpha-2 code, got "${String(region)}"`);
816
+ }
817
+ });
818
+ }
633
819
  //# sourceMappingURL=poolMetadataMigration.js.map