@namehash/ens-referrals 1.6.0 → 1.7.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/dist/v1/index.cjs CHANGED
@@ -16561,6 +16561,12 @@ var makeReferrerLeaderboardPageContextSchema = (valueLabel = "ReferrerLeaderboar
16561
16561
  endIndex: import_v43.default.optional(makeNonNegativeIntegerSchema(`${valueLabel}.endIndex`))
16562
16562
  });
16563
16563
  var makeReferralProgramStatusSchema = (_valueLabel = "status") => import_v43.default.enum(ReferralProgramStatuses);
16564
+ var makeBaseReferrerLeaderboardPageSchema = (valueLabel) => import_v43.default.object({
16565
+ awardModel: import_v43.default.string(),
16566
+ pageContext: makeReferrerLeaderboardPageContextSchema(`${valueLabel}.pageContext`),
16567
+ status: makeReferralProgramStatusSchema(`${valueLabel}.status`),
16568
+ accurateAsOf: makeUnixTimestampSchema(`${valueLabel}.accurateAsOf`)
16569
+ });
16564
16570
 
16565
16571
  // src/v1/award-models/shared/edition-metrics.ts
16566
16572
  var ReferrerEditionMetricsTypeIds = {
@@ -16703,7 +16709,7 @@ var makeReferrerEditionMetricsPieSplitSchema = (valueLabel = "ReferrerEditionMet
16703
16709
  makeReferrerEditionMetricsRankedPieSplitSchema(valueLabel),
16704
16710
  makeReferrerEditionMetricsUnrankedPieSplitSchema(valueLabel)
16705
16711
  ]);
16706
- var makeReferrerLeaderboardPagePieSplitSchema = (valueLabel = "ReferrerLeaderboardPagePieSplit") => import_v44.default.object({
16712
+ var makeReferrerLeaderboardPagePieSplitSchema = (valueLabel = "ReferrerLeaderboardPagePieSplit") => makeBaseReferrerLeaderboardPageSchema(valueLabel).safeExtend({
16707
16713
  awardModel: import_v44.default.literal(ReferralProgramAwardModels.PieSplit),
16708
16714
  rules: makeReferralProgramRulesPieSplitSchema(`${valueLabel}.rules`),
16709
16715
  referrers: import_v44.default.array(
@@ -16711,10 +16717,7 @@ var makeReferrerLeaderboardPagePieSplitSchema = (valueLabel = "ReferrerLeaderboa
16711
16717
  ),
16712
16718
  aggregatedMetrics: makeAggregatedReferrerMetricsPieSplitSchema(
16713
16719
  `${valueLabel}.aggregatedMetrics`
16714
- ),
16715
- pageContext: makeReferrerLeaderboardPageContextSchema(`${valueLabel}.pageContext`),
16716
- status: makeReferralProgramStatusSchema(`${valueLabel}.status`),
16717
- accurateAsOf: makeUnixTimestampSchema(`${valueLabel}.accurateAsOf`)
16720
+ )
16718
16721
  }).refine((data) => data.awardModel === data.rules.awardModel, {
16719
16722
  message: `${valueLabel}.awardModel must equal ${valueLabel}.rules.awardModel`,
16720
16723
  path: ["awardModel"]
@@ -16837,7 +16840,7 @@ var makeReferrerEditionMetricsRevShareLimitSchema = (valueLabel = "ReferrerEditi
16837
16840
  makeReferrerEditionMetricsRankedRevShareLimitSchema(valueLabel),
16838
16841
  makeReferrerEditionMetricsUnrankedRevShareLimitSchema(valueLabel)
16839
16842
  ]);
16840
- var makeReferrerLeaderboardPageRevShareLimitSchema = (valueLabel = "ReferrerLeaderboardPageRevShareLimit") => import_v45.default.object({
16843
+ var makeReferrerLeaderboardPageRevShareLimitSchema = (valueLabel = "ReferrerLeaderboardPageRevShareLimit") => makeBaseReferrerLeaderboardPageSchema(valueLabel).safeExtend({
16841
16844
  awardModel: import_v45.default.literal(ReferralProgramAwardModels.RevShareLimit),
16842
16845
  rules: makeReferralProgramRulesRevShareLimitSchema(`${valueLabel}.rules`),
16843
16846
  referrers: import_v45.default.array(
@@ -16845,10 +16848,7 @@ var makeReferrerLeaderboardPageRevShareLimitSchema = (valueLabel = "ReferrerLead
16845
16848
  ),
16846
16849
  aggregatedMetrics: makeAggregatedReferrerMetricsRevShareLimitSchema(
16847
16850
  `${valueLabel}.aggregatedMetrics`
16848
- ),
16849
- pageContext: makeReferrerLeaderboardPageContextSchema(`${valueLabel}.pageContext`),
16850
- status: makeReferralProgramStatusSchema(`${valueLabel}.status`),
16851
- accurateAsOf: makeUnixTimestampSchema(`${valueLabel}.accurateAsOf`)
16851
+ )
16852
16852
  }).refine((data) => data.awardModel === data.rules.awardModel, {
16853
16853
  message: `${valueLabel}.awardModel must equal ${valueLabel}.rules.awardModel`,
16854
16854
  path: ["awardModel"]
@@ -16892,10 +16892,49 @@ var makeReferralProgramRulesSchema = (valueLabel = "ReferralProgramRules") => im
16892
16892
  makeReferralProgramRulesPieSplitSchema(valueLabel),
16893
16893
  makeReferralProgramRulesRevShareLimitSchema(valueLabel)
16894
16894
  ]);
16895
- var makeReferrerLeaderboardPageSchema = (valueLabel = "ReferrerLeaderboardPage") => import_v46.default.discriminatedUnion("awardModel", [
16896
- makeReferrerLeaderboardPagePieSplitSchema(valueLabel),
16897
- makeReferrerLeaderboardPageRevShareLimitSchema(valueLabel)
16898
- ]);
16895
+ var makeReferrerLeaderboardPageSchema = (valueLabel = "ReferrerLeaderboardPage") => {
16896
+ const knownAwardModels = Object.values(ReferralProgramAwardModels).filter(
16897
+ (m) => m !== ReferralProgramAwardModels.Unrecognized
16898
+ );
16899
+ const looseSchema = import_v46.default.object({ awardModel: import_v46.default.string() }).passthrough();
16900
+ const knownSchema = import_v46.default.discriminatedUnion("awardModel", [
16901
+ makeReferrerLeaderboardPagePieSplitSchema(valueLabel),
16902
+ makeReferrerLeaderboardPageRevShareLimitSchema(valueLabel)
16903
+ ]);
16904
+ const baseSchema = makeBaseReferrerLeaderboardPageSchema(valueLabel);
16905
+ return looseSchema.transform((data, ctx) => {
16906
+ if (knownAwardModels.includes(data.awardModel)) {
16907
+ const parsed2 = knownSchema.safeParse(data);
16908
+ if (!parsed2.success) {
16909
+ for (const issue of parsed2.error.issues) {
16910
+ ctx.addIssue({
16911
+ code: "custom",
16912
+ path: issue.path,
16913
+ message: issue.message
16914
+ });
16915
+ }
16916
+ return import_v46.default.NEVER;
16917
+ }
16918
+ return parsed2.data;
16919
+ }
16920
+ const parsed = baseSchema.safeParse(data);
16921
+ if (!parsed.success) {
16922
+ for (const issue of parsed.error.issues) {
16923
+ ctx.addIssue({
16924
+ code: "custom",
16925
+ path: issue.path,
16926
+ message: issue.message
16927
+ });
16928
+ }
16929
+ return import_v46.default.NEVER;
16930
+ }
16931
+ return {
16932
+ ...parsed.data,
16933
+ awardModel: ReferralProgramAwardModels.Unrecognized,
16934
+ originalAwardModel: data.awardModel
16935
+ };
16936
+ });
16937
+ };
16899
16938
  var makeReferrerLeaderboardPageResponseOkSchema = (valueLabel = "ReferrerLeaderboardPageResponseOk") => import_v46.default.object({
16900
16939
  responseCode: import_v46.default.literal(ReferrerLeaderboardPageResponseCodes.Ok),
16901
16940
  data: makeReferrerLeaderboardPageSchema(`${valueLabel}.data`)
@@ -16909,10 +16948,36 @@ var makeReferrerLeaderboardPageResponseSchema = (valueLabel = "ReferrerLeaderboa
16909
16948
  makeReferrerLeaderboardPageResponseOkSchema(valueLabel),
16910
16949
  makeReferrerLeaderboardPageResponseErrorSchema(valueLabel)
16911
16950
  ]);
16912
- var makeReferrerEditionMetricsSchema = (valueLabel = "ReferrerEditionMetrics") => import_v46.default.discriminatedUnion("awardModel", [
16913
- makeReferrerEditionMetricsPieSplitSchema(valueLabel),
16914
- makeReferrerEditionMetricsRevShareLimitSchema(valueLabel)
16915
- ]);
16951
+ var makeReferrerEditionMetricsSchema = (valueLabel = "ReferrerEditionMetrics") => {
16952
+ const knownAwardModels = Object.values(ReferralProgramAwardModels).filter(
16953
+ (m) => m !== ReferralProgramAwardModels.Unrecognized
16954
+ );
16955
+ const looseSchema = import_v46.default.object({ awardModel: import_v46.default.string() }).passthrough();
16956
+ const knownSchema = import_v46.default.discriminatedUnion("awardModel", [
16957
+ makeReferrerEditionMetricsPieSplitSchema(valueLabel),
16958
+ makeReferrerEditionMetricsRevShareLimitSchema(valueLabel)
16959
+ ]);
16960
+ return looseSchema.transform((data, ctx) => {
16961
+ if (knownAwardModels.includes(data.awardModel)) {
16962
+ const parsed = knownSchema.safeParse(data);
16963
+ if (!parsed.success) {
16964
+ for (const issue of parsed.error.issues) {
16965
+ ctx.addIssue({
16966
+ code: "custom",
16967
+ path: issue.path,
16968
+ message: issue.message
16969
+ });
16970
+ }
16971
+ return import_v46.default.NEVER;
16972
+ }
16973
+ return parsed.data;
16974
+ }
16975
+ return {
16976
+ awardModel: ReferralProgramAwardModels.Unrecognized,
16977
+ originalAwardModel: data.awardModel
16978
+ };
16979
+ });
16980
+ };
16916
16981
  var makeReferralProgramEditionSlugSchema = (valueLabel = "ReferralProgramEditionSlug") => import_v46.default.string().min(1, `${valueLabel} must not be empty`).regex(
16917
16982
  /^[a-z0-9]+(-[a-z0-9]+)*$/,
16918
16983
  `${valueLabel} must contain only lowercase letters, digits, and hyphens. Must not start or end with a hyphen.`
@@ -17150,6 +17215,18 @@ function serializeReferrerEditionMetricsUnrankedPieSplit(detail) {
17150
17215
  accurateAsOf: detail.accurateAsOf
17151
17216
  };
17152
17217
  }
17218
+ function serializeReferrerEditionMetricsPieSplit(detail) {
17219
+ switch (detail.type) {
17220
+ case ReferrerEditionMetricsTypeIds.Ranked:
17221
+ return serializeReferrerEditionMetricsRankedPieSplit(detail);
17222
+ case ReferrerEditionMetricsTypeIds.Unranked:
17223
+ return serializeReferrerEditionMetricsUnrankedPieSplit(detail);
17224
+ default: {
17225
+ const _exhaustiveCheck = detail;
17226
+ throw new Error(`Unknown type: ${_exhaustiveCheck.type}`);
17227
+ }
17228
+ }
17229
+ }
17153
17230
  function serializeReferrerLeaderboardPagePieSplit(page) {
17154
17231
  return {
17155
17232
  awardModel: page.awardModel,
@@ -17236,6 +17313,20 @@ function serializeReferrerEditionMetricsUnrankedRevShareLimit(detail) {
17236
17313
  accurateAsOf: detail.accurateAsOf
17237
17314
  };
17238
17315
  }
17316
+ function serializeReferrerEditionMetricsRevShareLimit(detail) {
17317
+ switch (detail.type) {
17318
+ case ReferrerEditionMetricsTypeIds.Ranked:
17319
+ return serializeReferrerEditionMetricsRankedRevShareLimit(detail);
17320
+ case ReferrerEditionMetricsTypeIds.Unranked:
17321
+ return serializeReferrerEditionMetricsUnrankedRevShareLimit(detail);
17322
+ default: {
17323
+ const _exhaustiveCheck = detail;
17324
+ throw new Error(
17325
+ `Unknown type: ${_exhaustiveCheck.type}`
17326
+ );
17327
+ }
17328
+ }
17329
+ }
17239
17330
  function serializeReferrerLeaderboardPageRevShareLimit(page) {
17240
17331
  return {
17241
17332
  awardModel: page.awardModel,
@@ -17275,6 +17366,12 @@ function serializeReferrerLeaderboardPage(page) {
17275
17366
  return serializeReferrerLeaderboardPagePieSplit(page);
17276
17367
  case ReferralProgramAwardModels.RevShareLimit:
17277
17368
  return serializeReferrerLeaderboardPageRevShareLimit(page);
17369
+ case ReferralProgramAwardModels.Unrecognized: {
17370
+ const unrecognized = page;
17371
+ throw new Error(
17372
+ `ReferrerLeaderboardPageUnrecognized (originalAwardModel: '${unrecognized.originalAwardModel}') must not be serialized \u2014 it is a client-side forward-compatibility placeholder only.`
17373
+ );
17374
+ }
17278
17375
  default: {
17279
17376
  const _exhaustiveCheck = page;
17280
17377
  throw new Error(
@@ -17283,26 +17380,18 @@ function serializeReferrerLeaderboardPage(page) {
17283
17380
  }
17284
17381
  }
17285
17382
  }
17286
- function serializeReferrerEditionMetricsRanked(detail) {
17383
+ function serializeReferrerEditionMetrics(detail) {
17287
17384
  switch (detail.awardModel) {
17288
17385
  case ReferralProgramAwardModels.PieSplit:
17289
- return serializeReferrerEditionMetricsRankedPieSplit(detail);
17386
+ return serializeReferrerEditionMetricsPieSplit(detail);
17290
17387
  case ReferralProgramAwardModels.RevShareLimit:
17291
- return serializeReferrerEditionMetricsRankedRevShareLimit(detail);
17292
- default: {
17293
- const _exhaustiveCheck = detail;
17388
+ return serializeReferrerEditionMetricsRevShareLimit(detail);
17389
+ case ReferralProgramAwardModels.Unrecognized: {
17390
+ const unrecognized = detail;
17294
17391
  throw new Error(
17295
- `Unknown award model: ${_exhaustiveCheck.awardModel}`
17392
+ `ReferrerEditionMetricsUnrecognized (originalAwardModel: '${unrecognized.originalAwardModel}') must not be serialized \u2014 it is a client-side forward-compatibility placeholder only.`
17296
17393
  );
17297
17394
  }
17298
- }
17299
- }
17300
- function serializeReferrerEditionMetricsUnranked(detail) {
17301
- switch (detail.awardModel) {
17302
- case ReferralProgramAwardModels.PieSplit:
17303
- return serializeReferrerEditionMetricsUnrankedPieSplit(detail);
17304
- case ReferralProgramAwardModels.RevShareLimit:
17305
- return serializeReferrerEditionMetricsUnrankedRevShareLimit(detail);
17306
17395
  default: {
17307
17396
  const _exhaustiveCheck = detail;
17308
17397
  throw new Error(
@@ -17311,18 +17400,6 @@ function serializeReferrerEditionMetricsUnranked(detail) {
17311
17400
  }
17312
17401
  }
17313
17402
  }
17314
- function serializeReferrerEditionMetrics(detail) {
17315
- switch (detail.type) {
17316
- case "ranked":
17317
- return serializeReferrerEditionMetricsRanked(detail);
17318
- case "unranked":
17319
- return serializeReferrerEditionMetricsUnranked(detail);
17320
- default: {
17321
- const _exhaustiveCheck = detail;
17322
- throw new Error(`Unknown detail type: ${_exhaustiveCheck.type}`);
17323
- }
17324
- }
17325
- }
17326
17403
  function serializeReferralProgramEditionConfig(editionConfig) {
17327
17404
  return {
17328
17405
  slug: editionConfig.slug,
@@ -18222,12 +18299,13 @@ var ENSReferralsClient = class _ENSReferralsClient {
18222
18299
  * @param request.recordsPerPage - Number of records per page (default: 25, max: 100)
18223
18300
  * @returns {ReferrerLeaderboardPageResponse}
18224
18301
  *
18302
+ * @remarks If the server returns a leaderboard page whose `awardModel` is not recognized by
18303
+ * this client version, it is preserved as {@link ReferrerLeaderboardPageUnrecognized}. Callers
18304
+ * should check `response.data.awardModel` and handle the `"unrecognized"` case accordingly.
18305
+ *
18225
18306
  * @throws if the ENSNode request fails
18226
18307
  * @throws if the ENSNode API returns an error response
18227
18308
  * @throws if the ENSNode response breaks required invariants
18228
- * @throws if the requested edition uses an award model not recognized by this version of
18229
- * the client. Call {@link getEditionConfigSet} first to verify the edition's `awardModel`
18230
- * is supported before requesting its leaderboard.
18231
18309
  *
18232
18310
  * @example
18233
18311
  * ```typescript
@@ -18235,17 +18313,16 @@ var ENSReferralsClient = class _ENSReferralsClient {
18235
18313
  * const editionSlug = "2025-12";
18236
18314
  * const response = await client.getReferrerLeaderboardPage({ edition: editionSlug });
18237
18315
  * if (response.responseCode === ReferrerLeaderboardPageResponseCodes.Ok) {
18238
- * const {
18239
- * aggregatedMetrics,
18240
- * referrers,
18241
- * rules,
18242
- * pageContext,
18243
- * accurateAsOf
18244
- * } = response.data;
18245
- * console.log(`Edition: ${editionSlug}`);
18246
- * console.log(`Subregistry: ${rules.subregistryId}`);
18247
- * console.log(`Total Referrers: ${pageContext.totalRecords}`);
18248
- * console.log(`Page ${pageContext.page} of ${pageContext.totalPages}`);
18316
+ * const { awardModel, pageContext, accurateAsOf } = response.data;
18317
+ * if (awardModel === ReferralProgramAwardModels.Unrecognized) {
18318
+ * console.log(`Unrecognized award model: ${response.data.originalAwardModel} — skipping`);
18319
+ * } else {
18320
+ * const { aggregatedMetrics, referrers, rules } = response.data;
18321
+ * console.log(`Edition: ${editionSlug}`);
18322
+ * console.log(`Subregistry: ${rules.subregistryId}`);
18323
+ * console.log(`Total Referrers: ${pageContext.totalRecords}`);
18324
+ * console.log(`Page ${pageContext.page} of ${pageContext.totalPages}`);
18325
+ * }
18249
18326
  * }
18250
18327
  * ```
18251
18328
  *
@@ -18294,22 +18371,17 @@ var ENSReferralsClient = class _ENSReferralsClient {
18294
18371
  * referral program editions. Returns a record mapping each requested edition slug
18295
18372
  * to the referrer's metrics for that edition.
18296
18373
  *
18297
- * The response data maps edition slugs to referrer metrics. Each edition's data is a
18298
- * discriminated union type with a `type` field:
18299
- *
18300
- * **For referrers on the leaderboard** (`ReferrerEditionMetricsRanked`):
18301
- * - `type`: {@link ReferrerEditionMetricsTypeIds.Ranked}
18302
- * - `referrer`: The `AwardedReferrerMetrics` with rank, qualification status, and award share
18303
- * - `rules`: The referral program rules for this edition
18304
- * - `aggregatedMetrics`: Aggregated metrics for all referrers on the leaderboard
18305
- * - `accurateAsOf`: Unix timestamp indicating when the data was last updated
18374
+ * The response data maps edition slugs to referrer metrics. Each edition's entry is a
18375
+ * {@link ReferrerEditionMetrics} discriminated union. Narrow on `awardModel` first to
18376
+ * exclude unrecognized models, then on `type` to distinguish ranked from unranked:
18306
18377
  *
18307
- * **For referrers NOT on the leaderboard** (`ReferrerEditionMetricsUnranked`):
18308
- * - `type`: {@link ReferrerEditionMetricsTypeIds.Unranked}
18309
- * - `referrer`: The `UnrankedReferrerMetrics` from @namehash/ens-referrals
18310
- * - `rules`: The referral program rules for this edition
18311
- * - `aggregatedMetrics`: Aggregated metrics for all referrers on the leaderboard
18312
- * - `accurateAsOf`: Unix timestamp indicating when the data was last updated
18378
+ * - `awardModel: "unrecognized"` ({@link ReferrerEditionMetricsUnrecognized}): the server
18379
+ * returned an award model this client does not recognize. Only `originalAwardModel` is
18380
+ * available; no model-specific fields are present.
18381
+ * - `type: "ranked"` ({@link ReferrerEditionMetricsTypeIds.Ranked}): the referrer appears on
18382
+ * the leaderboard. `referrer` contains rank, qualification status, and award share.
18383
+ * - `type: "unranked"` ({@link ReferrerEditionMetricsTypeIds.Unranked}): the referrer has no
18384
+ * activity in this edition. `referrer` contains zero-value placeholders.
18313
18385
  *
18314
18386
  * **Note:** This endpoint does not allow partial success. When `responseCode === Ok`,
18315
18387
  * all requested editions are guaranteed to be present in the response data. If any
@@ -18320,11 +18392,13 @@ var ENSReferralsClient = class _ENSReferralsClient {
18320
18392
  * @param request The referrer address and edition slugs to query
18321
18393
  * @returns {ReferrerMetricsEditionsResponse} Returns the referrer metrics for requested editions
18322
18394
  *
18395
+ * @remarks If the server returns metrics for an edition whose `awardModel` is not recognized by
18396
+ * this client version, that edition's entry in `response.data` is preserved as
18397
+ * {@link ReferrerEditionMetricsUnrecognized}. Callers should check each edition's `awardModel`
18398
+ * and handle the `"unrecognized"` case accordingly.
18399
+ *
18323
18400
  * @throws if the ENSNode request fails
18324
18401
  * @throws if the response data is malformed
18325
- * @throws if any of the requested editions use an award model not recognized by this
18326
- * version of the client. Call {@link getEditionConfigSet} first to verify each
18327
- * edition's `awardModel` is supported before requesting metrics.
18328
18402
  *
18329
18403
  * @example
18330
18404
  * ```typescript
@@ -18337,6 +18411,10 @@ var ENSReferralsClient = class _ENSReferralsClient {
18337
18411
  * // All requested editions are present in response.data
18338
18412
  * for (const [editionSlug, detail] of Object.entries(response.data)) {
18339
18413
  * console.log(`Edition: ${editionSlug}`);
18414
+ * if (detail.awardModel === ReferralProgramAwardModels.Unrecognized) {
18415
+ * console.log(`Unrecognized award model: ${detail.originalAwardModel} — skipping`);
18416
+ * continue;
18417
+ * }
18340
18418
  * console.log(`Type: ${detail.type}`);
18341
18419
  * if (detail.type === ReferrerEditionMetricsTypeIds.Ranked) {
18342
18420
  * console.log(`Rank: ${detail.referrer.rank}`);
@@ -18354,12 +18432,12 @@ var ENSReferralsClient = class _ENSReferralsClient {
18354
18432
  * editions: ["2025-12"]
18355
18433
  * });
18356
18434
  * if (response.responseCode === ReferrerMetricsEditionsResponseCodes.Ok) {
18357
- * const edition202512Detail = response.data["2025-12"];
18358
- * if (edition202512Detail && edition202512Detail.type === ReferrerEditionMetricsTypeIds.Ranked) {
18359
- * // TypeScript knows this is ReferrerEditionMetricsRanked
18360
- * console.log(`Edition 2025-12 Rank: ${edition202512Detail.referrer.rank}`);
18361
- * } else if (edition202512Detail) {
18362
- * // TypeScript knows this is ReferrerEditionMetricsUnranked
18435
+ * const detail = response.data["2025-12"];
18436
+ * if (detail && detail.awardModel === ReferralProgramAwardModels.Unrecognized) {
18437
+ * console.log(`Unrecognized award model: ${detail.originalAwardModel} skipping`);
18438
+ * } else if (detail && detail.type === ReferrerEditionMetricsTypeIds.Ranked) {
18439
+ * console.log(`Edition 2025-12 Rank: ${detail.referrer.rank}`);
18440
+ * } else if (detail) {
18363
18441
  * console.log("Referrer is not on the leaderboard for 2025-12");
18364
18442
  * }
18365
18443
  * }
@@ -18529,6 +18607,12 @@ var getReferrerEditionMetrics = (referrer, leaderboard) => {
18529
18607
  accurateAsOf: leaderboard.accurateAsOf
18530
18608
  };
18531
18609
  }
18610
+ default: {
18611
+ const _exhaustiveCheck = leaderboard;
18612
+ throw new Error(
18613
+ `Unknown award model: ${_exhaustiveCheck.awardModel}`
18614
+ );
18615
+ }
18532
18616
  }
18533
18617
  };
18534
18618
 
@@ -18540,6 +18624,12 @@ var getReferrerLeaderboardPage = (pageParams, leaderboard) => {
18540
18624
  return buildLeaderboardPagePieSplit(pageContext, leaderboard);
18541
18625
  case ReferralProgramAwardModels.RevShareLimit:
18542
18626
  return buildLeaderboardPageRevShareLimit(pageContext, leaderboard);
18627
+ default: {
18628
+ const _exhaustiveCheck = leaderboard;
18629
+ throw new Error(
18630
+ `Unknown award model: ${_exhaustiveCheck.awardModel}`
18631
+ );
18632
+ }
18543
18633
  }
18544
18634
  };
18545
18635