@maestro_io/maestro-web-sdk 4.0.1 → 4.0.2
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/1.maestro-web-sdk.esm.js +2 -0
- package/dist/1.maestro-web-sdk.esm.js.map +1 -0
- package/dist/1.maestro-web-sdk.umd.js +2 -0
- package/dist/1.maestro-web-sdk.umd.js.map +1 -0
- package/dist/10.maestro-web-sdk.esm.js +2 -0
- package/dist/10.maestro-web-sdk.esm.js.map +1 -0
- package/dist/10.maestro-web-sdk.umd.js +2 -0
- package/dist/10.maestro-web-sdk.umd.js.map +1 -0
- package/dist/11.maestro-web-sdk.esm.js +2 -0
- package/dist/11.maestro-web-sdk.esm.js.map +1 -0
- package/dist/11.maestro-web-sdk.umd.js +2 -0
- package/dist/11.maestro-web-sdk.umd.js.map +1 -0
- package/dist/12.maestro-web-sdk.esm.js +2 -0
- package/dist/12.maestro-web-sdk.esm.js.map +1 -0
- package/dist/12.maestro-web-sdk.umd.js +2 -0
- package/dist/12.maestro-web-sdk.umd.js.map +1 -0
- package/dist/13.maestro-web-sdk.esm.js +2 -0
- package/dist/13.maestro-web-sdk.esm.js.map +1 -0
- package/dist/13.maestro-web-sdk.umd.js +2 -0
- package/dist/13.maestro-web-sdk.umd.js.map +1 -0
- package/dist/14.maestro-web-sdk.esm.js +2 -0
- package/dist/14.maestro-web-sdk.esm.js.map +1 -0
- package/dist/14.maestro-web-sdk.umd.js +2 -0
- package/dist/14.maestro-web-sdk.umd.js.map +1 -0
- package/dist/15.maestro-web-sdk.esm.js +2 -0
- package/dist/15.maestro-web-sdk.esm.js.map +1 -0
- package/dist/15.maestro-web-sdk.umd.js +2 -0
- package/dist/15.maestro-web-sdk.umd.js.map +1 -0
- package/dist/16.maestro-web-sdk.esm.js +2 -0
- package/dist/16.maestro-web-sdk.esm.js.map +1 -0
- package/dist/16.maestro-web-sdk.umd.js +2 -0
- package/dist/16.maestro-web-sdk.umd.js.map +1 -0
- package/dist/17.maestro-web-sdk.esm.js +2 -0
- package/dist/17.maestro-web-sdk.esm.js.map +1 -0
- package/dist/17.maestro-web-sdk.umd.js +2 -0
- package/dist/17.maestro-web-sdk.umd.js.map +1 -0
- package/dist/18.maestro-web-sdk.esm.js +2 -0
- package/dist/18.maestro-web-sdk.esm.js.map +1 -0
- package/dist/18.maestro-web-sdk.umd.js +2 -0
- package/dist/18.maestro-web-sdk.umd.js.map +1 -0
- package/dist/19.maestro-web-sdk.esm.js +2 -0
- package/dist/19.maestro-web-sdk.esm.js.map +1 -0
- package/dist/19.maestro-web-sdk.umd.js +2 -0
- package/dist/19.maestro-web-sdk.umd.js.map +1 -0
- package/dist/2.maestro-web-sdk.esm.js +2 -0
- package/dist/2.maestro-web-sdk.esm.js.map +1 -0
- package/dist/2.maestro-web-sdk.umd.js +2 -0
- package/dist/2.maestro-web-sdk.umd.js.map +1 -0
- package/dist/20.maestro-web-sdk.esm.js +2 -0
- package/dist/20.maestro-web-sdk.esm.js.map +1 -0
- package/dist/20.maestro-web-sdk.umd.js +2 -0
- package/dist/20.maestro-web-sdk.umd.js.map +1 -0
- package/dist/21.maestro-web-sdk.esm.js +2 -0
- package/dist/21.maestro-web-sdk.esm.js.map +1 -0
- package/dist/21.maestro-web-sdk.umd.js +2 -0
- package/dist/21.maestro-web-sdk.umd.js.map +1 -0
- package/dist/22.maestro-web-sdk.esm.js +2 -0
- package/dist/22.maestro-web-sdk.esm.js.map +1 -0
- package/dist/22.maestro-web-sdk.umd.js +2 -0
- package/dist/22.maestro-web-sdk.umd.js.map +1 -0
- package/dist/23.maestro-web-sdk.esm.js +2 -0
- package/dist/23.maestro-web-sdk.esm.js.map +1 -0
- package/dist/23.maestro-web-sdk.umd.js +2 -0
- package/dist/23.maestro-web-sdk.umd.js.map +1 -0
- package/dist/24.maestro-web-sdk.esm.js +2 -0
- package/dist/24.maestro-web-sdk.esm.js.map +1 -0
- package/dist/24.maestro-web-sdk.umd.js +2 -0
- package/dist/24.maestro-web-sdk.umd.js.map +1 -0
- package/dist/3.maestro-web-sdk.esm.js +2 -0
- package/dist/3.maestro-web-sdk.esm.js.map +1 -0
- package/dist/3.maestro-web-sdk.umd.js +2 -0
- package/dist/3.maestro-web-sdk.umd.js.map +1 -0
- package/dist/4.maestro-web-sdk.esm.js +2 -0
- package/dist/4.maestro-web-sdk.esm.js.map +1 -0
- package/dist/4.maestro-web-sdk.umd.js +2 -0
- package/dist/4.maestro-web-sdk.umd.js.map +1 -0
- package/dist/5.maestro-web-sdk.esm.js +2 -0
- package/dist/5.maestro-web-sdk.esm.js.map +1 -0
- package/dist/5.maestro-web-sdk.umd.js +2 -0
- package/dist/5.maestro-web-sdk.umd.js.map +1 -0
- package/dist/6.maestro-web-sdk.esm.js +2 -0
- package/dist/6.maestro-web-sdk.esm.js.map +1 -0
- package/dist/6.maestro-web-sdk.umd.js +2 -0
- package/dist/6.maestro-web-sdk.umd.js.map +1 -0
- package/dist/7.maestro-web-sdk.esm.js +2 -0
- package/dist/7.maestro-web-sdk.esm.js.map +1 -0
- package/dist/7.maestro-web-sdk.umd.js +2 -0
- package/dist/7.maestro-web-sdk.umd.js.map +1 -0
- package/dist/8.maestro-web-sdk.esm.js +2 -0
- package/dist/8.maestro-web-sdk.esm.js.map +1 -0
- package/dist/8.maestro-web-sdk.umd.js +2 -0
- package/dist/8.maestro-web-sdk.umd.js.map +1 -0
- package/dist/9.maestro-web-sdk.esm.js +2 -0
- package/dist/9.maestro-web-sdk.esm.js.map +1 -0
- package/dist/9.maestro-web-sdk.umd.js +2 -0
- package/dist/9.maestro-web-sdk.umd.js.map +1 -0
- package/dist/bundle-report.html +53 -0
- package/dist/maestro-web-sdk.esm.js +1 -1
- package/dist/maestro-web-sdk.esm.js.map +1 -1
- package/dist/maestro-web-sdk.umd.js +1 -1
- package/dist/maestro-web-sdk.umd.js.map +1 -1
- package/dist/src/modules/fantasy/view/TournamentBracketCard/TournamentBracketCard.d.ts +99 -0
- package/dist/src/modules/fantasy/view/TournamentBracketCard/TournamentBracketCard.js +33 -0
- package/dist/src/modules/fantasy/view/TournamentBracketCard/index.d.ts +2 -0
- package/dist/src/modules/fantasy/view/TournamentBracketCard/index.js +2 -0
- package/dist/src/modules/hello-world/HelloWorldView.js +8 -2
- package/dist/src/modules/stats/utils/playerStatusUtils.d.ts +4 -0
- package/dist/src/modules/stats/utils/playerStatusUtils.js +16 -0
- package/dist/src/modules/stats/view/CareerMatchup/CareerMatchup.d.ts +100 -0
- package/dist/src/modules/stats/view/CareerMatchup/CareerMatchup.js +59 -0
- package/dist/src/modules/stats/view/CareerMatchup/index.d.ts +1 -0
- package/dist/src/modules/stats/view/CareerMatchup/index.js +1 -0
- package/dist/src/modules/stats/view/PlayerSeasonStats/ExpandedPlayerStats.js +20 -23
- package/dist/src/modules/stats/view/PlayerSeasonStats/PlayerSeasonStatsCard.js +4 -1
- package/dist/src/modules/stats/view/PlayerSeasonStats/PlayerSeasonStatsMinified.js +5 -1
- package/dist/src/modules/stats/view/PlayerSeasonStats/PlayerSeasonStatsView.js +21 -4
- package/dist/src/services/StatsService.d.ts +12 -4
- package/dist/src/services/StatsService.js +35 -28
- package/package.json +1 -1
|
@@ -56,55 +56,62 @@ class StatsService {
|
|
|
56
56
|
});
|
|
57
57
|
}
|
|
58
58
|
/**
|
|
59
|
-
* Build sync URL for timecode-based stats fetching
|
|
60
|
-
* Enhanced with comprehensive validation and fallback strategies
|
|
61
|
-
*
|
|
59
|
+
* Build sync URL for timecode-based stats fetching
|
|
62
60
|
* @param timeCode - The timecode in milliseconds, or null for 'latest'
|
|
63
61
|
* @returns Complete sync URL for the fauxcast stats endpoint
|
|
64
|
-
* @throws Error if page config is not available or required fields are missing
|
|
65
62
|
*/
|
|
66
63
|
getSyncEndpoint(timeCode) {
|
|
67
|
-
// Apply overrideUrl if set
|
|
68
64
|
if (this.overrideUrl) {
|
|
69
65
|
console.log('[StatsService] Using overrideUrl:', this.overrideUrl);
|
|
70
66
|
return this.overrideUrl;
|
|
71
67
|
}
|
|
68
|
+
const { leagueId, mainId } = this.getIdsFromPageConfig();
|
|
69
|
+
const formattedTimeCode = this.formatTimeCodeForAPI(timeCode);
|
|
70
|
+
return `/${leagueId}/${mainId}/en/us/${formattedTimeCode}`;
|
|
71
|
+
}
|
|
72
|
+
/**
|
|
73
|
+
* Extract event, league, and main IDs from page config metadata
|
|
74
|
+
* @returns Object containing eventId, leagueId, and mainId
|
|
75
|
+
*/
|
|
76
|
+
getIdsFromPageConfig() {
|
|
72
77
|
const pageConfig = SDK.getPageConfig();
|
|
73
78
|
if (!pageConfig) {
|
|
74
79
|
throw new Error('Page config is null or undefined');
|
|
75
80
|
}
|
|
76
81
|
const metadata = pageConfig.page.metadata;
|
|
77
|
-
|
|
82
|
+
const eventId = metadata?.external_field_1;
|
|
83
|
+
const leagueField = metadata?.external_field_5;
|
|
84
|
+
if (!eventId || !leagueField) {
|
|
85
|
+
const availableFields = Object.keys(metadata || {}).join(', ');
|
|
78
86
|
throw new Error('Missing eventId or leagueId in page config metadata. Cannot build sync URL. ' +
|
|
79
|
-
`Required fields: external_field_1 (eventId), external_field_5 (leagueId).
|
|
87
|
+
`Required fields: external_field_1 (eventId), external_field_5 (leagueId). ` +
|
|
88
|
+
`Available fields: ${availableFields}`);
|
|
89
|
+
}
|
|
90
|
+
const { leagueId, fauxcastId } = this.parseLeagueData(leagueField);
|
|
91
|
+
const mainId = fauxcastId || eventId;
|
|
92
|
+
if (!mainId.trim() || !leagueId.trim()) {
|
|
93
|
+
throw new Error('MainId or leagueId is empty string in page config metadata');
|
|
80
94
|
}
|
|
81
|
-
|
|
82
|
-
|
|
95
|
+
return { eventId, leagueId, mainId };
|
|
96
|
+
}
|
|
97
|
+
/**
|
|
98
|
+
* Parse league data from external_field_5 JSON string
|
|
99
|
+
* @param leagueField - JSON string containing leagueId and optional fauxcastId
|
|
100
|
+
* @returns Parsed league data
|
|
101
|
+
*/
|
|
102
|
+
parseLeagueData(leagueField) {
|
|
83
103
|
try {
|
|
84
|
-
|
|
85
|
-
|
|
86
|
-
leagueId
|
|
87
|
-
if (!leagueId) {
|
|
88
|
-
throw new Error('leagueId not found in parsed JSON');
|
|
89
|
-
}
|
|
90
|
-
}
|
|
91
|
-
else {
|
|
92
|
-
throw new Error('external_field_5 is empty or undefined');
|
|
104
|
+
const parsed = JSON.parse(leagueField);
|
|
105
|
+
if (!parsed.leagueId) {
|
|
106
|
+
throw new Error('leagueId not found in parsed JSON');
|
|
93
107
|
}
|
|
108
|
+
return { leagueId: parsed.leagueId, fauxcastId: parsed.fauxcastId };
|
|
94
109
|
}
|
|
95
110
|
catch (parseError) {
|
|
96
|
-
const error = new Error(`Failed to parse leagueId from external_field_5. Raw value: ${
|
|
97
|
-
captureException(error, {
|
|
98
|
-
rawValue: metadata.external_field_5,
|
|
99
|
-
parseError,
|
|
100
|
-
});
|
|
111
|
+
const error = new Error(`Failed to parse leagueId from external_field_5. Raw value: ${leagueField}`);
|
|
112
|
+
captureException(error, { rawValue: leagueField, parseError });
|
|
101
113
|
throw error;
|
|
102
114
|
}
|
|
103
|
-
if (!eventId.trim() || !leagueId.trim()) {
|
|
104
|
-
throw new Error('EventId or leagueId is empty string in page config metadata');
|
|
105
|
-
}
|
|
106
|
-
const formattedTimeCode = this.formatTimeCodeForAPI(timeCode);
|
|
107
|
-
return `/${leagueId}/${eventId}/en/us/${formattedTimeCode}`;
|
|
108
115
|
}
|
|
109
116
|
/**
|
|
110
117
|
* Format timecode for API consumption
|