@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.
Files changed (119) hide show
  1. package/dist/1.maestro-web-sdk.esm.js +2 -0
  2. package/dist/1.maestro-web-sdk.esm.js.map +1 -0
  3. package/dist/1.maestro-web-sdk.umd.js +2 -0
  4. package/dist/1.maestro-web-sdk.umd.js.map +1 -0
  5. package/dist/10.maestro-web-sdk.esm.js +2 -0
  6. package/dist/10.maestro-web-sdk.esm.js.map +1 -0
  7. package/dist/10.maestro-web-sdk.umd.js +2 -0
  8. package/dist/10.maestro-web-sdk.umd.js.map +1 -0
  9. package/dist/11.maestro-web-sdk.esm.js +2 -0
  10. package/dist/11.maestro-web-sdk.esm.js.map +1 -0
  11. package/dist/11.maestro-web-sdk.umd.js +2 -0
  12. package/dist/11.maestro-web-sdk.umd.js.map +1 -0
  13. package/dist/12.maestro-web-sdk.esm.js +2 -0
  14. package/dist/12.maestro-web-sdk.esm.js.map +1 -0
  15. package/dist/12.maestro-web-sdk.umd.js +2 -0
  16. package/dist/12.maestro-web-sdk.umd.js.map +1 -0
  17. package/dist/13.maestro-web-sdk.esm.js +2 -0
  18. package/dist/13.maestro-web-sdk.esm.js.map +1 -0
  19. package/dist/13.maestro-web-sdk.umd.js +2 -0
  20. package/dist/13.maestro-web-sdk.umd.js.map +1 -0
  21. package/dist/14.maestro-web-sdk.esm.js +2 -0
  22. package/dist/14.maestro-web-sdk.esm.js.map +1 -0
  23. package/dist/14.maestro-web-sdk.umd.js +2 -0
  24. package/dist/14.maestro-web-sdk.umd.js.map +1 -0
  25. package/dist/15.maestro-web-sdk.esm.js +2 -0
  26. package/dist/15.maestro-web-sdk.esm.js.map +1 -0
  27. package/dist/15.maestro-web-sdk.umd.js +2 -0
  28. package/dist/15.maestro-web-sdk.umd.js.map +1 -0
  29. package/dist/16.maestro-web-sdk.esm.js +2 -0
  30. package/dist/16.maestro-web-sdk.esm.js.map +1 -0
  31. package/dist/16.maestro-web-sdk.umd.js +2 -0
  32. package/dist/16.maestro-web-sdk.umd.js.map +1 -0
  33. package/dist/17.maestro-web-sdk.esm.js +2 -0
  34. package/dist/17.maestro-web-sdk.esm.js.map +1 -0
  35. package/dist/17.maestro-web-sdk.umd.js +2 -0
  36. package/dist/17.maestro-web-sdk.umd.js.map +1 -0
  37. package/dist/18.maestro-web-sdk.esm.js +2 -0
  38. package/dist/18.maestro-web-sdk.esm.js.map +1 -0
  39. package/dist/18.maestro-web-sdk.umd.js +2 -0
  40. package/dist/18.maestro-web-sdk.umd.js.map +1 -0
  41. package/dist/19.maestro-web-sdk.esm.js +2 -0
  42. package/dist/19.maestro-web-sdk.esm.js.map +1 -0
  43. package/dist/19.maestro-web-sdk.umd.js +2 -0
  44. package/dist/19.maestro-web-sdk.umd.js.map +1 -0
  45. package/dist/2.maestro-web-sdk.esm.js +2 -0
  46. package/dist/2.maestro-web-sdk.esm.js.map +1 -0
  47. package/dist/2.maestro-web-sdk.umd.js +2 -0
  48. package/dist/2.maestro-web-sdk.umd.js.map +1 -0
  49. package/dist/20.maestro-web-sdk.esm.js +2 -0
  50. package/dist/20.maestro-web-sdk.esm.js.map +1 -0
  51. package/dist/20.maestro-web-sdk.umd.js +2 -0
  52. package/dist/20.maestro-web-sdk.umd.js.map +1 -0
  53. package/dist/21.maestro-web-sdk.esm.js +2 -0
  54. package/dist/21.maestro-web-sdk.esm.js.map +1 -0
  55. package/dist/21.maestro-web-sdk.umd.js +2 -0
  56. package/dist/21.maestro-web-sdk.umd.js.map +1 -0
  57. package/dist/22.maestro-web-sdk.esm.js +2 -0
  58. package/dist/22.maestro-web-sdk.esm.js.map +1 -0
  59. package/dist/22.maestro-web-sdk.umd.js +2 -0
  60. package/dist/22.maestro-web-sdk.umd.js.map +1 -0
  61. package/dist/23.maestro-web-sdk.esm.js +2 -0
  62. package/dist/23.maestro-web-sdk.esm.js.map +1 -0
  63. package/dist/23.maestro-web-sdk.umd.js +2 -0
  64. package/dist/23.maestro-web-sdk.umd.js.map +1 -0
  65. package/dist/24.maestro-web-sdk.esm.js +2 -0
  66. package/dist/24.maestro-web-sdk.esm.js.map +1 -0
  67. package/dist/24.maestro-web-sdk.umd.js +2 -0
  68. package/dist/24.maestro-web-sdk.umd.js.map +1 -0
  69. package/dist/3.maestro-web-sdk.esm.js +2 -0
  70. package/dist/3.maestro-web-sdk.esm.js.map +1 -0
  71. package/dist/3.maestro-web-sdk.umd.js +2 -0
  72. package/dist/3.maestro-web-sdk.umd.js.map +1 -0
  73. package/dist/4.maestro-web-sdk.esm.js +2 -0
  74. package/dist/4.maestro-web-sdk.esm.js.map +1 -0
  75. package/dist/4.maestro-web-sdk.umd.js +2 -0
  76. package/dist/4.maestro-web-sdk.umd.js.map +1 -0
  77. package/dist/5.maestro-web-sdk.esm.js +2 -0
  78. package/dist/5.maestro-web-sdk.esm.js.map +1 -0
  79. package/dist/5.maestro-web-sdk.umd.js +2 -0
  80. package/dist/5.maestro-web-sdk.umd.js.map +1 -0
  81. package/dist/6.maestro-web-sdk.esm.js +2 -0
  82. package/dist/6.maestro-web-sdk.esm.js.map +1 -0
  83. package/dist/6.maestro-web-sdk.umd.js +2 -0
  84. package/dist/6.maestro-web-sdk.umd.js.map +1 -0
  85. package/dist/7.maestro-web-sdk.esm.js +2 -0
  86. package/dist/7.maestro-web-sdk.esm.js.map +1 -0
  87. package/dist/7.maestro-web-sdk.umd.js +2 -0
  88. package/dist/7.maestro-web-sdk.umd.js.map +1 -0
  89. package/dist/8.maestro-web-sdk.esm.js +2 -0
  90. package/dist/8.maestro-web-sdk.esm.js.map +1 -0
  91. package/dist/8.maestro-web-sdk.umd.js +2 -0
  92. package/dist/8.maestro-web-sdk.umd.js.map +1 -0
  93. package/dist/9.maestro-web-sdk.esm.js +2 -0
  94. package/dist/9.maestro-web-sdk.esm.js.map +1 -0
  95. package/dist/9.maestro-web-sdk.umd.js +2 -0
  96. package/dist/9.maestro-web-sdk.umd.js.map +1 -0
  97. package/dist/bundle-report.html +53 -0
  98. package/dist/maestro-web-sdk.esm.js +1 -1
  99. package/dist/maestro-web-sdk.esm.js.map +1 -1
  100. package/dist/maestro-web-sdk.umd.js +1 -1
  101. package/dist/maestro-web-sdk.umd.js.map +1 -1
  102. package/dist/src/modules/fantasy/view/TournamentBracketCard/TournamentBracketCard.d.ts +99 -0
  103. package/dist/src/modules/fantasy/view/TournamentBracketCard/TournamentBracketCard.js +33 -0
  104. package/dist/src/modules/fantasy/view/TournamentBracketCard/index.d.ts +2 -0
  105. package/dist/src/modules/fantasy/view/TournamentBracketCard/index.js +2 -0
  106. package/dist/src/modules/hello-world/HelloWorldView.js +8 -2
  107. package/dist/src/modules/stats/utils/playerStatusUtils.d.ts +4 -0
  108. package/dist/src/modules/stats/utils/playerStatusUtils.js +16 -0
  109. package/dist/src/modules/stats/view/CareerMatchup/CareerMatchup.d.ts +100 -0
  110. package/dist/src/modules/stats/view/CareerMatchup/CareerMatchup.js +59 -0
  111. package/dist/src/modules/stats/view/CareerMatchup/index.d.ts +1 -0
  112. package/dist/src/modules/stats/view/CareerMatchup/index.js +1 -0
  113. package/dist/src/modules/stats/view/PlayerSeasonStats/ExpandedPlayerStats.js +20 -23
  114. package/dist/src/modules/stats/view/PlayerSeasonStats/PlayerSeasonStatsCard.js +4 -1
  115. package/dist/src/modules/stats/view/PlayerSeasonStats/PlayerSeasonStatsMinified.js +5 -1
  116. package/dist/src/modules/stats/view/PlayerSeasonStats/PlayerSeasonStatsView.js +21 -4
  117. package/dist/src/services/StatsService.d.ts +12 -4
  118. package/dist/src/services/StatsService.js +35 -28
  119. 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 with enhanced logging
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
- if (!metadata?.external_field_1 || !metadata?.external_field_5) {
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). Available fields: ${Object.keys(metadata || {}).join(', ')}`);
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
- const eventId = metadata.external_field_1;
82
- let leagueId;
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
- if (metadata.external_field_5) {
85
- const leagueData = JSON.parse(metadata.external_field_5);
86
- leagueId = leagueData.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: ${metadata.external_field_5}`);
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
package/package.json CHANGED
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "name": "@maestro_io/maestro-web-sdk",
3
3
  "private": false,
4
- "version": "4.0.1",
4
+ "version": "4.0.2",
5
5
  "type": "commonjs",
6
6
  "license": "MIT",
7
7
  "main": "dist/maestro-web-sdk.umd.js",