@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 +172 -82
- package/dist/v1/index.cjs.map +1 -1
- package/dist/v1/index.d.cts +113 -67
- package/dist/v1/index.d.ts +113 -67
- package/dist/v1/index.js +172 -82
- package/dist/v1/index.js.map +1 -1
- package/package.json +3 -3
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") =>
|
|
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") =>
|
|
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") =>
|
|
16896
|
-
|
|
16897
|
-
|
|
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") =>
|
|
16913
|
-
|
|
16914
|
-
|
|
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
|
|
17383
|
+
function serializeReferrerEditionMetrics(detail) {
|
|
17287
17384
|
switch (detail.awardModel) {
|
|
17288
17385
|
case ReferralProgramAwardModels.PieSplit:
|
|
17289
|
-
return
|
|
17386
|
+
return serializeReferrerEditionMetricsPieSplit(detail);
|
|
17290
17387
|
case ReferralProgramAwardModels.RevShareLimit:
|
|
17291
|
-
return
|
|
17292
|
-
|
|
17293
|
-
const
|
|
17388
|
+
return serializeReferrerEditionMetricsRevShareLimit(detail);
|
|
17389
|
+
case ReferralProgramAwardModels.Unrecognized: {
|
|
17390
|
+
const unrecognized = detail;
|
|
17294
17391
|
throw new Error(
|
|
17295
|
-
`
|
|
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
|
-
*
|
|
18240
|
-
*
|
|
18241
|
-
*
|
|
18242
|
-
*
|
|
18243
|
-
*
|
|
18244
|
-
*
|
|
18245
|
-
*
|
|
18246
|
-
*
|
|
18247
|
-
*
|
|
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
|
|
18298
|
-
* discriminated union
|
|
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
|
-
*
|
|
18308
|
-
*
|
|
18309
|
-
* -
|
|
18310
|
-
* - `
|
|
18311
|
-
*
|
|
18312
|
-
* - `
|
|
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
|
|
18358
|
-
* if (
|
|
18359
|
-
*
|
|
18360
|
-
*
|
|
18361
|
-
*
|
|
18362
|
-
*
|
|
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
|
|