@centrifuge/sdk 1.16.0 → 1.17.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,19 +1,22 @@
1
1
  import { type PoolMetadata, type PoolMetadataV2 } from '../types/poolMetadata.js';
2
2
  /**
3
3
  * Pure, idempotent legacy -> v2 migration. Performs no IPFS/network access so it stays
4
- * unit-testable. Returns the input unchanged when it is already v2.
4
+ * unit-testable. A document already at the current v2 shape is returned unchanged; a v2 document
5
+ * written by an earlier SDK is normalized forward via {@link upgradeLegacyV2}.
5
6
  *
6
7
  * - Strips fields unused by every consumer (`newInvestmentsStatus`, `reports`, `loanTemplates`,
7
- * `issuer.repName/shortDescription`, onboarding extras) and reshapes `issuer`/`poolRatings`.
8
+ * `issuer.repName/shortDescription`, onboarding extras) and reshapes `issuer`. `poolRatings` is
9
+ * preserved verbatim as a typed field (surfaced via the `ratings` key-fact ref).
8
10
  * - Maps legacy APY modes across `shareClasses[*].apy`.
9
- * - Projects the legacy display fields into `pool.factsheet`.
11
+ * - Projects the legacy display fields into `pool.factsheet`, and folds the off-chain `holdings`
12
+ * blob into a `table` section (`id: 'holdings'`); `holdings` is not carried as a top-level field.
10
13
  */
11
14
  export declare function migratePoolMetadataToV2(legacy: PoolMetadata): PoolMetadataV2;
12
15
  /**
13
16
  * Hand-rolled structural validator for v2 pool metadata, in the style of
14
17
  * {@link parseMarketplaceCatalog}. Validates the discriminant (`version === 2`), `pool.name`, and
15
18
  * the full `pool.factsheet` content model (the layout the SDK is responsible for). Engine fields
16
- * (`shareClasses`, `workflowPolicies`, `holdings`, `addressLabels`, …) are passed through
19
+ * (`shareClasses`, `workflowPolicies`, `addressLabels`, …) are passed through
17
20
  * unchecked here — they are validated where they are consumed (e.g. workflows via
18
21
  * {@link parseMarketplaceCatalog}). Throws `pool metadata v2: …` on the first malformed field;
19
22
  * tolerates missing optionals (visibility defaults to `'public'` app-side). Returns the input
@@ -1 +1 @@
1
- {"version":3,"file":"poolMetadataMigration.d.ts","sourceRoot":"","sources":["../../src/utils/poolMetadataMigration.ts"],"names":[],"mappings":"AACA,OAAO,EAaL,KAAK,YAAY,EAEjB,KAAK,cAAc,EAGpB,MAAM,0BAA0B,CAAA;AAkGjC;;;;;;;;GAQG;AACH,wBAAgB,uBAAuB,CAAC,MAAM,EAAE,YAAY,GAAG,cAAc,CAqC5E;AAqOD;;;;;;;;;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,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"}
@@ -22,6 +22,54 @@ function migrateApyMode(apy) {
22
22
  function formatMinInvestment(value) {
23
23
  return value.toLocaleString('en-US');
24
24
  }
25
+ /** Tolerates legacy docs that omit (or malform) an array field by treating it as empty. */
26
+ function asArray(value) {
27
+ return Array.isArray(value) ? value : [];
28
+ }
29
+ /**
30
+ * Folds a legacy off-chain `{ headers, data }` holdings blob into a `table` section, preserving
31
+ * every column verbatim (numbers stay numbers, null/undefined -> '', other values stringified +
32
+ * trimmed). Returns null when there are no headers or no data.
33
+ */
34
+ function holdingsTableBlock(holdings) {
35
+ if (!holdings || !Array.isArray(holdings.headers) || holdings.headers.length === 0 || !Array.isArray(holdings.data)) {
36
+ return null;
37
+ }
38
+ const { headers, data } = holdings;
39
+ return {
40
+ type: 'table',
41
+ id: 'holdings',
42
+ title: 'Holdings',
43
+ headers,
44
+ rows: data.map((row) => headers.map((header) => {
45
+ const value = row[header];
46
+ return typeof value === 'number' ? value : value == null ? '' : String(value).trim();
47
+ })),
48
+ };
49
+ }
50
+ /** Normalizes an issuer category `type` for matching (case- and separator-insensitive). */
51
+ function normalizeCategoryType(type) {
52
+ return type.toLowerCase().replace(/[\s_-]/g, '');
53
+ }
54
+ /**
55
+ * Issuer-category `type` values (normalized) that migrate into the "Service providers" group, mapped
56
+ * to their v2 display label (the v1 vocabulary differs from v2, e.g. "Sub-Investment Manager" is the
57
+ * v2 "Portfolio Manager"). Anything not listed stays in "Key facts" with its raw label (the seed is
58
+ * ops-editable, so an unmatched type is low-cost). `administrator` is an alias of Fund Administrator.
59
+ */
60
+ const SERVICE_PROVIDER_CATEGORIES = new Map([
61
+ ['subinvestmentmanager', 'Portfolio Manager'],
62
+ ['custodian', 'Custodian'],
63
+ ['fundadministrator', 'Fund Administrator'],
64
+ ['administrator', 'Fund Administrator'],
65
+ ['auditor', 'Auditor'],
66
+ ]);
67
+ /**
68
+ * Issuer-category `type` values (normalized) dropped from the factsheet because they are already
69
+ * represented elsewhere: "Investment Manager" is absorbed by the `Issuer` key fact (from
70
+ * `issuer.name`), so it is not rendered as its own row.
71
+ */
72
+ const ABSORBED_CATEGORY_TYPES = new Set(['investmentmanager']);
25
73
  /** Document links only carry web/IPFS URIs; anything else (e.g. `javascript:`) is dropped. */
26
74
  function isSafeDocumentUri(uri) {
27
75
  const scheme = uri.trim().toLowerCase();
@@ -36,38 +84,72 @@ function escapeMarkdownText(text) {
36
84
  * a migrated pool must render the same content, so legacy fields are projected into ordered key
37
85
  * facts + body blocks. The output is a sensible, ops-editable seed, not a frozen contract.
38
86
  */
39
- function buildFactsheet(pool, shareClasses) {
87
+ function buildFactsheet(pool, shareClasses, holdings) {
40
88
  const { issuer, asset, poolStructure, expenseRatio, details, poolRatings } = pool;
41
89
  const firstShareClass = Object.values(shareClasses)[0];
42
- const keyFacts = [
43
- { label: 'Issuer', value: issuer.name },
44
- { label: 'Asset type', value: `${asset.class} - ${asset.subClass}` },
45
- { label: 'APY', valueRef: 'apy' },
46
- { label: 'Pool structure', value: poolStructure },
90
+ // Trim text key-fact values (issuer/category strings sometimes carry stray whitespace).
91
+ const text = (value) => ({ kind: 'text', text: value.trim() });
92
+ const keyFactItems = [
93
+ { label: 'Issuer', value: text(issuer.name) },
94
+ { label: 'Asset type', value: text(`${asset.class} - ${asset.subClass}`) },
95
+ { label: 'APY', value: { kind: 'ref', ref: 'apy' } },
96
+ { label: 'Pool structure', value: text(poolStructure) },
47
97
  ];
48
98
  const weightedAverageMaturity = firstShareClass?.weightedAverageMaturity;
49
99
  if (weightedAverageMaturity != null) {
50
- keyFacts.push({ label: 'Average asset maturity', value: `${weightedAverageMaturity} days` });
100
+ keyFactItems.push({ label: 'Average asset maturity', value: text(`${weightedAverageMaturity} days`) });
51
101
  }
52
102
  if (expenseRatio != null && expenseRatio !== '') {
53
- keyFacts.push({ label: 'Expense ratio', value: `${expenseRatio}%` });
103
+ keyFactItems.push({ label: 'Expense ratio', value: text(`${expenseRatio}%`) });
54
104
  }
55
105
  const minInitialInvestment = firstShareClass?.minInitialInvestment;
56
106
  if (minInitialInvestment != null) {
57
- keyFacts.push({ label: 'Min. investment', value: formatMinInvestment(minInitialInvestment) });
107
+ keyFactItems.push({ label: 'Min. investment', value: text(formatMinInvestment(minInitialInvestment)) });
108
+ }
109
+ const serviceProviderItems = [];
110
+ for (const category of asArray(issuer.categories)) {
111
+ const key = normalizeCategoryType(category.type);
112
+ if (ABSORBED_CATEGORY_TYPES.has(key))
113
+ continue;
114
+ const label = SERVICE_PROVIDER_CATEGORIES.get(key);
115
+ if (label) {
116
+ serviceProviderItems.push({ label, value: text(category.value) });
117
+ }
118
+ else {
119
+ keyFactItems.push({ label: category.type, value: text(category.value) });
120
+ }
121
+ }
122
+ // Seeded unconditionally because v1 has no source field for either: the app derives the deployed
123
+ // chains, and wallet infrastructure is currently Fordefi for all pools. Ops can edit/remove after.
124
+ keyFactItems.push({
125
+ label: 'Wallet infrastructure',
126
+ value: { kind: 'icons', icons: [{ source: 'app', key: 'fordefi' }] },
127
+ });
128
+ keyFactItems.push({ label: 'Available networks', value: { kind: 'ref', ref: 'availableNetworks' } });
129
+ if (asArray(poolRatings).length > 0) {
130
+ keyFactItems.push({ label: 'Ratings', value: { kind: 'ref', ref: 'ratings' } });
58
131
  }
59
- for (const category of issuer.categories) {
60
- keyFacts.push({ label: category.type, value: category.value });
132
+ // Right column is groups only (no bare key facts). The "Service providers" group is added only
133
+ // when at least one category mapped to it.
134
+ const keyFacts = [{ type: 'keyFactGroup', id: 'key-facts', title: 'Key facts', items: keyFactItems }];
135
+ if (serviceProviderItems.length > 0) {
136
+ keyFacts.push({
137
+ type: 'keyFactGroup',
138
+ id: 'service-providers',
139
+ title: 'Service providers',
140
+ items: serviceProviderItems,
141
+ });
61
142
  }
62
143
  const body = [];
63
144
  if (issuer.description) {
64
145
  body.push({ type: 'text', id: 'overview', title: 'Overview', body: issuer.description });
65
146
  }
66
- ;
67
- (details ?? []).forEach((detail, index) => {
147
+ asArray(details).forEach((detail, index) => {
68
148
  body.push({ type: 'text', id: `detail-${index}`, title: detail.title, body: detail.body });
69
149
  });
70
- const ratingsWithReports = (poolRatings ?? []).filter((rating) => rating.reportFile?.uri && isSafeDocumentUri(rating.reportFile.uri));
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));
71
153
  if (ratingsWithReports.length > 0) {
72
154
  body.push({
73
155
  type: 'text',
@@ -79,27 +161,34 @@ function buildFactsheet(pool, shareClasses) {
79
161
  });
80
162
  }
81
163
  body.push({ type: 'section', id: 'performance', ref: 'onchainMetrics' });
82
- // `sections` is omitted so the invest app renders its default sections.
83
- return { body, keyFacts };
164
+ 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 };
84
167
  }
85
168
  /**
86
169
  * Pure, idempotent legacy -> v2 migration. Performs no IPFS/network access so it stays
87
- * unit-testable. Returns the input unchanged when it is already v2.
170
+ * unit-testable. A document already at the current v2 shape is returned unchanged; a v2 document
171
+ * written by an earlier SDK is normalized forward via {@link upgradeLegacyV2}.
88
172
  *
89
173
  * - Strips fields unused by every consumer (`newInvestmentsStatus`, `reports`, `loanTemplates`,
90
- * `issuer.repName/shortDescription`, onboarding extras) and reshapes `issuer`/`poolRatings`.
174
+ * `issuer.repName/shortDescription`, onboarding extras) and reshapes `issuer`. `poolRatings` is
175
+ * preserved verbatim as a typed field (surfaced via the `ratings` key-fact ref).
91
176
  * - Maps legacy APY modes across `shareClasses[*].apy`.
92
- * - Projects the legacy display fields into `pool.factsheet`.
177
+ * - Projects the legacy display fields into `pool.factsheet`, and folds the off-chain `holdings`
178
+ * blob into a `table` section (`id: 'holdings'`); `holdings` is not carried as a top-level field.
93
179
  */
94
180
  export function migratePoolMetadataToV2(legacy) {
95
181
  if (isPoolMetadataV2(legacy))
96
- return legacy;
97
- const { pool, shareClasses, onboarding, merkleProofManager, holdings, addressLabels, workflowPolicies } = legacy;
182
+ return upgradeLegacyV2(legacy);
183
+ const { pool, shareClasses, onboarding, merkleProofManager, holdings, addressLabels, workflowPolicies, withdrawManagers, } = legacy;
98
184
  const { issuer, poolRatings, ...restPool } = pool;
99
- // Explicitly drop fields that v2 does not carry.
185
+ // Explicitly drop fields that v2 does not carry. `report` (singular) and `poolStatus` are stray
186
+ // non-schema fields seen in some legacy documents (the real fields are `reports` and `status`).
100
187
  delete restPool.newInvestmentsStatus;
101
188
  delete restPool.reports;
102
189
  delete restPool.details;
190
+ delete restPool.report;
191
+ delete restPool.poolStatus;
103
192
  const migratedShareClasses = {};
104
193
  for (const [scId, shareClass] of Object.entries(shareClasses)) {
105
194
  migratedShareClasses[scId] = { ...shareClass, apy: migrateApyMode(shareClass.apy) };
@@ -109,8 +198,10 @@ export function migratePoolMetadataToV2(legacy) {
109
198
  pool: {
110
199
  ...restPool,
111
200
  issuer: { name: issuer.name, email: issuer.email, logo: issuer.logo },
112
- poolRatings: poolRatings?.map(({ reportFile: _reportFile, ...rating }) => rating),
113
- factsheet: buildFactsheet(pool, shareClasses),
201
+ // `poolRatings` stays a typed field verbatim (incl. reportFile); surfaced via the `ratings`
202
+ // key-fact ref. `holdings` is folded into the factsheet and not carried as a top-level field.
203
+ poolRatings,
204
+ factsheet: buildFactsheet(pool, shareClasses, holdings),
114
205
  },
115
206
  shareClasses: migratedShareClasses,
116
207
  ...(merkleProofManager !== undefined ? { merkleProofManager } : {}),
@@ -122,11 +213,106 @@ export function migratePoolMetadataToV2(legacy) {
122
213
  },
123
214
  }
124
215
  : {}),
125
- ...(holdings !== undefined ? { holdings } : {}),
126
216
  ...(addressLabels !== undefined ? { addressLabels } : {}),
127
217
  ...(workflowPolicies !== undefined ? { workflowPolicies } : {}),
218
+ ...(withdrawManagers !== undefined ? { withdrawManagers } : {}),
128
219
  };
129
220
  }
221
+ /* ================================================================================================
222
+ * Intra-v2 upgrade: normalize a v2 document written by an earlier SDK to the current v2 shape
223
+ * ============================================================================================== */
224
+ function isKeyFactGroup(value) {
225
+ return typeof value === 'object' && value !== null && value.type === 'keyFactGroup';
226
+ }
227
+ /** Converts an earlier-SDK flat KeyFact (`{ value?: string; valueRef?: 'apy' }`) to the discriminated shape. */
228
+ function upgradeKeyFact(old) {
229
+ const { value, valueRef, ...rest } = old;
230
+ let next;
231
+ if (valueRef === 'apy')
232
+ next = { kind: 'ref', ref: 'apy' };
233
+ else if (value !== null && typeof value === 'object' && 'kind' in value)
234
+ next = value;
235
+ else
236
+ next = { kind: 'text', text: typeof value === 'string' ? value : '' };
237
+ return { ...rest, value: next };
238
+ }
239
+ /** True if `item` is (or, for a tabGroup, contains) a chart still using the `series`/`dataRef` shape. */
240
+ function hasLegacyChart(item) {
241
+ if (typeof item !== 'object' || item === null)
242
+ return false;
243
+ const block = item;
244
+ if (block.type === 'chart') {
245
+ return block.data === undefined && (block.series !== undefined || block.dataRef !== undefined);
246
+ }
247
+ if (block.type === 'tabGroup' && Array.isArray(block.tabs)) {
248
+ return block.tabs.some((tab) => hasLegacyChart(tab?.block));
249
+ }
250
+ return false;
251
+ }
252
+ /** Converts an earlier-SDK chart block (`series?`/`dataRef?`) to the discriminated `data` field, in place. */
253
+ function upgradeChartBlockInPlace(block) {
254
+ if (block.type === 'chart' && block.data === undefined) {
255
+ if (Array.isArray(block.series))
256
+ block.data = { kind: 'inline', series: block.series };
257
+ else if (typeof block.dataRef === 'string')
258
+ block.data = { kind: 'ref', dataRef: block.dataRef };
259
+ delete block.series;
260
+ delete block.dataRef;
261
+ }
262
+ if (block.type === 'tabGroup' && Array.isArray(block.tabs)) {
263
+ for (const tab of block.tabs) {
264
+ const inner = tab?.block;
265
+ if (inner && typeof inner === 'object')
266
+ upgradeChartBlockInPlace(inner);
267
+ }
268
+ }
269
+ }
270
+ /**
271
+ * Normalizes a document already at `version: 2` but written by an earlier SDK whose v2 shape differs:
272
+ * a flat `keyFacts: KeyFact[]` (now `KeyFactGroup[]`), chart blocks with `series`/`dataRef` (now a
273
+ * discriminated `data`), and a top-level `holdings` blob (now a factsheet `table` section). Without
274
+ * this, `update()` would re-validate such a document against the current validator and throw, with no
275
+ * upgrade path. Returns the input unchanged (same reference) when it is already the current shape.
276
+ */
277
+ function upgradeLegacyV2(doc) {
278
+ const raw = doc;
279
+ const pool = (raw.pool ?? {});
280
+ const factsheet = pool.factsheet;
281
+ const keyFacts = factsheet?.keyFacts;
282
+ const layoutItems = [...asArray(factsheet?.body), ...asArray(factsheet?.sections)];
283
+ const needsKeyFactUpgrade = Array.isArray(keyFacts) && keyFacts.some((item) => !isKeyFactGroup(item));
284
+ const needsHoldingsFold = raw.holdings != null;
285
+ const needsChartUpgrade = layoutItems.some(hasLegacyChart);
286
+ if (!needsKeyFactUpgrade && !needsHoldingsFold && !needsChartUpgrade)
287
+ return doc;
288
+ const next = JSON.parse(JSON.stringify(doc));
289
+ const nextPool = next.pool;
290
+ const nextFactsheet = nextPool.factsheet;
291
+ if (nextFactsheet) {
292
+ if (needsKeyFactUpgrade) {
293
+ // Wrap the flat list into one titled "Key facts" group, converting each item's value.
294
+ const items = nextFactsheet.keyFacts.map(upgradeKeyFact);
295
+ nextFactsheet.keyFacts = [{ type: 'keyFactGroup', id: 'key-facts', title: 'Key facts', items }];
296
+ }
297
+ if (needsChartUpgrade) {
298
+ for (const item of [
299
+ ...asArray(nextFactsheet.body),
300
+ ...asArray(nextFactsheet.sections),
301
+ ]) {
302
+ if (item && typeof item === 'object')
303
+ upgradeChartBlockInPlace(item);
304
+ }
305
+ }
306
+ }
307
+ if (needsHoldingsFold) {
308
+ const holdingsBlock = holdingsTableBlock(raw.holdings);
309
+ delete next.holdings;
310
+ if (holdingsBlock && nextFactsheet) {
311
+ nextFactsheet.sections = [...asArray(nextFactsheet.sections), holdingsBlock];
312
+ }
313
+ }
314
+ return next;
315
+ }
130
316
  /* ================================================================================================
131
317
  * Validation: hand-rolled structural checks (mirrors src/utils/catalog.ts; no zod dependency)
132
318
  * ============================================================================================== */
@@ -143,6 +329,7 @@ const DATA_REFS = new Set(['apyVsBenchmarks', 'maturityDistribution']);
143
329
  const SECTION_REFS = new Set(['onchainMetrics', 'smartContracts']);
144
330
  const LIVE_METRICS = new Set(['tokenPrice', 'nav', 'apy30d', 'navChange', 'monthlyReturn']);
145
331
  const LIVE_DATASETS = new Set(['monthlySummary']);
332
+ const KEY_FACT_REFS = new Set(['apy', 'availableNetworks', 'ratings']);
146
333
  const COLUMN_FORMATS = new Set(['text', 'number', 'percent', 'currency']);
147
334
  const CONTENT_BLOCK_TYPES = new Set(['text', 'table', 'chart', 'image', 'kpiGroup', 'tabGroup', 'liveTable']);
148
335
  const TAB_BLOCK_TYPES = new Set(['text', 'table', 'chart', 'kpiGroup']);
@@ -173,20 +360,71 @@ function validateFile(value, where) {
173
360
  assertString(value.uri, `${where}.uri`);
174
361
  assertString(value.mime, `${where}.mime`);
175
362
  }
363
+ function validateIconRef(value, where) {
364
+ if (!isObject(value))
365
+ fail(`${where} must be an object`);
366
+ if (value.label !== undefined)
367
+ assertString(value.label, `${where}.label`);
368
+ switch (value.source) {
369
+ case 'metadata':
370
+ validateFile(value.file, `${where}.file`);
371
+ if (value.alt !== undefined)
372
+ assertString(value.alt, `${where}.alt`);
373
+ break;
374
+ case 'app':
375
+ // The app-owned icon-key registry is not yet enumerated, so validate shape (string) only.
376
+ assertString(value.key, `${where}.key`);
377
+ break;
378
+ default:
379
+ fail(`${where} has an invalid source "${String(value.source)}"`);
380
+ }
381
+ }
382
+ function validateKeyFactValue(value, where) {
383
+ if (!isObject(value))
384
+ fail(`${where} must be an object`);
385
+ switch (value.kind) {
386
+ case 'text':
387
+ assertString(value.text, `${where}.text`);
388
+ break;
389
+ case 'icons':
390
+ if (!Array.isArray(value.icons))
391
+ fail(`${where}.icons must be an array`);
392
+ value.icons.forEach((icon, index) => validateIconRef(icon, `${where}.icons[${index}]`));
393
+ break;
394
+ case 'ref':
395
+ // Closed, SDK-enforced registry (extended via a coordinated SDK release).
396
+ if (typeof value.ref !== 'string' || !KEY_FACT_REFS.has(value.ref)) {
397
+ fail(`${where}.ref is invalid (unknown ref "${String(value.ref)}")`);
398
+ }
399
+ break;
400
+ default:
401
+ fail(`${where} has an invalid kind "${String(value.kind)}"`);
402
+ }
403
+ }
176
404
  function validateKeyFact(value, where) {
177
405
  if (!isObject(value))
178
406
  fail(`${where} must be an object`);
179
407
  assertString(value.label, `${where}.label`);
180
- if (value.value !== undefined)
181
- assertString(value.value, `${where}.value`);
182
- if (value.valueRef !== undefined && value.valueRef !== 'apy')
183
- fail(`${where}.valueRef must be 'apy'`);
408
+ validateKeyFactValue(value.value, `${where}.value`);
184
409
  if (value.tooltip !== undefined)
185
410
  assertString(value.tooltip, `${where}.tooltip`);
186
411
  if (value.href !== undefined)
187
412
  assertString(value.href, `${where}.href`);
188
413
  assertVisibility(value.visibility, where);
189
414
  }
415
+ function validateKeyFactGroup(value, where) {
416
+ if (!isObject(value))
417
+ fail(`${where} must be an object`);
418
+ if (value.type !== 'keyFactGroup')
419
+ fail(`${where}.type must be 'keyFactGroup'`);
420
+ assertString(value.id, `${where}.id`);
421
+ if (value.title !== undefined)
422
+ assertString(value.title, `${where}.title`);
423
+ assertVisibility(value.visibility, where);
424
+ if (!Array.isArray(value.items))
425
+ fail(`${where}.items must be an array`);
426
+ value.items.forEach((item, index) => validateKeyFact(item, `${where}.items[${index}]`));
427
+ }
190
428
  function validateChartSeries(value, where) {
191
429
  if (!isObject(value))
192
430
  fail(`${where} must be an object`);
@@ -257,17 +495,23 @@ function validateContentBlock(block, type, where) {
257
495
  if (typeof block.chartType !== 'string' || !CHART_TYPES.has(block.chartType)) {
258
496
  fail(`${where}.chartType is invalid`);
259
497
  }
260
- const hasSeries = block.series !== undefined;
261
- const hasDataRef = block.dataRef !== undefined;
262
- if (hasSeries === hasDataRef)
263
- fail(`${where} must set exactly one of \`series\` or \`dataRef\``);
264
- if (hasSeries) {
265
- if (!Array.isArray(block.series))
266
- fail(`${where}.series must be an array`);
267
- block.series.forEach((s, index) => validateChartSeries(s, `${where}.series[${index}]`));
268
- }
269
- if (hasDataRef && (typeof block.dataRef !== 'string' || !DATA_REFS.has(block.dataRef))) {
270
- fail(`${where}.dataRef is invalid (unknown key "${String(block.dataRef)}")`);
498
+ // Data source is a single discriminated `data` (inline series XOR app/indexer dataRef).
499
+ if (!isObject(block.data))
500
+ fail(`${where}.data must be an object`);
501
+ switch (block.data.kind) {
502
+ case 'inline':
503
+ if (!Array.isArray(block.data.series))
504
+ fail(`${where}.data.series must be an array`);
505
+ block.data.series.forEach((s, index) => validateChartSeries(s, `${where}.data.series[${index}]`));
506
+ break;
507
+ case 'ref':
508
+ // Closed, SDK-enforced registry (extended via a coordinated SDK release).
509
+ if (typeof block.data.dataRef !== 'string' || !DATA_REFS.has(block.data.dataRef)) {
510
+ fail(`${where}.data.dataRef is invalid (unknown key "${String(block.data.dataRef)}")`);
511
+ }
512
+ break;
513
+ default:
514
+ fail(`${where}.data has an invalid kind "${String(block.data.kind)}"`);
271
515
  }
272
516
  if (isObject(block.xAxis) && block.xAxis.type !== undefined && !XAXIS_TYPES.has(block.xAxis.type)) {
273
517
  fail(`${where}.xAxis.type is invalid`);
@@ -357,7 +601,7 @@ function validateFactsheet(factsheet) {
357
601
  factsheet.body.forEach((item, index) => validateLayoutItem(item, `pool.factsheet.body[${index}]`));
358
602
  if (!Array.isArray(factsheet.keyFacts))
359
603
  fail('`pool.factsheet.keyFacts` must be an array');
360
- factsheet.keyFacts.forEach((item, index) => validateKeyFact(item, `pool.factsheet.keyFacts[${index}]`));
604
+ factsheet.keyFacts.forEach((group, index) => validateKeyFactGroup(group, `pool.factsheet.keyFacts[${index}]`));
361
605
  if (factsheet.sections !== undefined) {
362
606
  if (!Array.isArray(factsheet.sections))
363
607
  fail('`pool.factsheet.sections` must be an array');
@@ -368,7 +612,7 @@ function validateFactsheet(factsheet) {
368
612
  * Hand-rolled structural validator for v2 pool metadata, in the style of
369
613
  * {@link parseMarketplaceCatalog}. Validates the discriminant (`version === 2`), `pool.name`, and
370
614
  * the full `pool.factsheet` content model (the layout the SDK is responsible for). Engine fields
371
- * (`shareClasses`, `workflowPolicies`, `holdings`, `addressLabels`, …) are passed through
615
+ * (`shareClasses`, `workflowPolicies`, `addressLabels`, …) are passed through
372
616
  * unchecked here — they are validated where they are consumed (e.g. workflows via
373
617
  * {@link parseMarketplaceCatalog}). Throws `pool metadata v2: …` on the first malformed field;
374
618
  * tolerates missing optionals (visibility defaults to `'public'` app-side). Returns the input
@@ -1 +1 @@
1
- {"version":3,"file":"poolMetadataMigration.js","sourceRoot":"","sources":["../../src/utils/poolMetadataMigration.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"poolMetadataMigration.js","sourceRoot":"","sources":["../../src/utils/poolMetadataMigration.ts"],"names":[],"mappings":"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"}