fantasy-basketball-sdk 0.0.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.
Files changed (163) hide show
  1. package/AGENTS.md +101 -0
  2. package/LICENSE +13 -0
  3. package/README.md +195 -0
  4. package/dist/core/index.d.ts +3 -0
  5. package/dist/core/index.d.ts.map +1 -0
  6. package/dist/core/index.js +2 -0
  7. package/dist/core/providers.d.ts +2 -0
  8. package/dist/core/providers.d.ts.map +1 -0
  9. package/dist/core/providers.js +10 -0
  10. package/dist/core/providers.js.map +1 -0
  11. package/dist/core/types.d.ts +2 -0
  12. package/dist/core/types.d.ts.map +1 -0
  13. package/dist/espn/client.d.ts +37 -0
  14. package/dist/espn/client.d.ts.map +1 -0
  15. package/dist/espn/client.js +145 -0
  16. package/dist/espn/client.js.map +1 -0
  17. package/dist/espn/constants.d.ts +34 -0
  18. package/dist/espn/constants.d.ts.map +1 -0
  19. package/dist/espn/constants.js +189 -0
  20. package/dist/espn/constants.js.map +1 -0
  21. package/dist/espn/errors.d.ts +19 -0
  22. package/dist/espn/errors.d.ts.map +1 -0
  23. package/dist/espn/errors.js +34 -0
  24. package/dist/espn/errors.js.map +1 -0
  25. package/dist/espn/index.d.ts +18 -0
  26. package/dist/espn/index.d.ts.map +1 -0
  27. package/dist/espn/index.js +19 -0
  28. package/dist/espn/index.js.map +1 -0
  29. package/dist/espn/league.d.ts +76 -0
  30. package/dist/espn/league.d.ts.map +1 -0
  31. package/dist/espn/league.js +285 -0
  32. package/dist/espn/league.js.map +1 -0
  33. package/dist/espn/models/activity.d.ts +14 -0
  34. package/dist/espn/models/activity.d.ts.map +1 -0
  35. package/dist/espn/models/activity.js +36 -0
  36. package/dist/espn/models/activity.js.map +1 -0
  37. package/dist/espn/models/box-player.d.ts +11 -0
  38. package/dist/espn/models/box-player.d.ts.map +1 -0
  39. package/dist/espn/models/box-player.js +37 -0
  40. package/dist/espn/models/box-player.js.map +1 -0
  41. package/dist/espn/models/box-score.d.ts +45 -0
  42. package/dist/espn/models/box-score.d.ts.map +1 -0
  43. package/dist/espn/models/box-score.js +111 -0
  44. package/dist/espn/models/box-score.js.map +1 -0
  45. package/dist/espn/models/matchup.d.ts +22 -0
  46. package/dist/espn/models/matchup.d.ts.map +1 -0
  47. package/dist/espn/models/matchup.js +51 -0
  48. package/dist/espn/models/matchup.js.map +1 -0
  49. package/dist/espn/models/pick.d.ts +13 -0
  50. package/dist/espn/models/pick.d.ts.map +1 -0
  51. package/dist/espn/models/pick.js +25 -0
  52. package/dist/espn/models/pick.js.map +1 -0
  53. package/dist/espn/models/player.d.ts +47 -0
  54. package/dist/espn/models/player.d.ts.map +1 -0
  55. package/dist/espn/models/player.js +120 -0
  56. package/dist/espn/models/player.js.map +1 -0
  57. package/dist/espn/models/settings.d.ts +29 -0
  58. package/dist/espn/models/settings.d.ts.map +1 -0
  59. package/dist/espn/models/settings.js +64 -0
  60. package/dist/espn/models/settings.js.map +1 -0
  61. package/dist/espn/models/team.d.ts +33 -0
  62. package/dist/espn/models/team.d.ts.map +1 -0
  63. package/dist/espn/models/team.js +81 -0
  64. package/dist/espn/models/team.js.map +1 -0
  65. package/dist/espn/models/transaction.d.ts +18 -0
  66. package/dist/espn/models/transaction.d.ts.map +1 -0
  67. package/dist/espn/models/transaction.js +32 -0
  68. package/dist/espn/models/transaction.js.map +1 -0
  69. package/dist/espn/types/raw.d.ts +26 -0
  70. package/dist/espn/types/raw.d.ts.map +1 -0
  71. package/dist/espn/utils.d.ts +5 -0
  72. package/dist/espn/utils.d.ts.map +1 -0
  73. package/dist/espn/utils.js +35 -0
  74. package/dist/espn/utils.js.map +1 -0
  75. package/dist/fantrax/index.d.ts +2 -0
  76. package/dist/fantrax/index.d.ts.map +1 -0
  77. package/dist/fantrax/index.js +6 -0
  78. package/dist/fantrax/index.js.map +1 -0
  79. package/dist/index.d.ts +3 -0
  80. package/dist/index.d.ts.map +1 -0
  81. package/dist/index.js +2 -0
  82. package/dist/runtime/fetch.d.ts +5 -0
  83. package/dist/runtime/fetch.d.ts.map +1 -0
  84. package/dist/runtime/fetch.js +8 -0
  85. package/dist/runtime/fetch.js.map +1 -0
  86. package/dist/runtime/index.d.ts +3 -0
  87. package/dist/runtime/index.d.ts.map +1 -0
  88. package/dist/runtime/index.js +2 -0
  89. package/dist/yahoo/client.d.ts +22 -0
  90. package/dist/yahoo/client.d.ts.map +1 -0
  91. package/dist/yahoo/client.js +89 -0
  92. package/dist/yahoo/client.js.map +1 -0
  93. package/dist/yahoo/constants.d.ts +41 -0
  94. package/dist/yahoo/constants.d.ts.map +1 -0
  95. package/dist/yahoo/constants.js +42 -0
  96. package/dist/yahoo/constants.js.map +1 -0
  97. package/dist/yahoo/errors.d.ts +24 -0
  98. package/dist/yahoo/errors.d.ts.map +1 -0
  99. package/dist/yahoo/errors.js +51 -0
  100. package/dist/yahoo/errors.js.map +1 -0
  101. package/dist/yahoo/index.d.ts +30 -0
  102. package/dist/yahoo/index.d.ts.map +1 -0
  103. package/dist/yahoo/index.js +23 -0
  104. package/dist/yahoo/index.js.map +1 -0
  105. package/dist/yahoo/keys.d.ts +29 -0
  106. package/dist/yahoo/keys.d.ts.map +1 -0
  107. package/dist/yahoo/keys.js +63 -0
  108. package/dist/yahoo/keys.js.map +1 -0
  109. package/dist/yahoo/models/game.d.ts +31 -0
  110. package/dist/yahoo/models/game.d.ts.map +1 -0
  111. package/dist/yahoo/models/game.js +68 -0
  112. package/dist/yahoo/models/game.js.map +1 -0
  113. package/dist/yahoo/models/league.d.ts +62 -0
  114. package/dist/yahoo/models/league.d.ts.map +1 -0
  115. package/dist/yahoo/models/league.js +129 -0
  116. package/dist/yahoo/models/league.js.map +1 -0
  117. package/dist/yahoo/models/matchup.d.ts +12 -0
  118. package/dist/yahoo/models/matchup.d.ts.map +1 -0
  119. package/dist/yahoo/models/matchup.js +46 -0
  120. package/dist/yahoo/models/matchup.js.map +1 -0
  121. package/dist/yahoo/models/player.d.ts +34 -0
  122. package/dist/yahoo/models/player.d.ts.map +1 -0
  123. package/dist/yahoo/models/player.js +44 -0
  124. package/dist/yahoo/models/player.js.map +1 -0
  125. package/dist/yahoo/models/roster.d.ts +16 -0
  126. package/dist/yahoo/models/roster.d.ts.map +1 -0
  127. package/dist/yahoo/models/roster.js +46 -0
  128. package/dist/yahoo/models/roster.js.map +1 -0
  129. package/dist/yahoo/models/settings.d.ts +21 -0
  130. package/dist/yahoo/models/settings.d.ts.map +1 -0
  131. package/dist/yahoo/models/settings.js +79 -0
  132. package/dist/yahoo/models/settings.js.map +1 -0
  133. package/dist/yahoo/models/team.d.ts +40 -0
  134. package/dist/yahoo/models/team.d.ts.map +1 -0
  135. package/dist/yahoo/models/team.js +46 -0
  136. package/dist/yahoo/models/team.js.map +1 -0
  137. package/dist/yahoo/models/transaction.d.ts +10 -0
  138. package/dist/yahoo/models/transaction.d.ts.map +1 -0
  139. package/dist/yahoo/models/transaction.js +20 -0
  140. package/dist/yahoo/models/transaction.js.map +1 -0
  141. package/dist/yahoo/models/user.d.ts +19 -0
  142. package/dist/yahoo/models/user.d.ts.map +1 -0
  143. package/dist/yahoo/models/user.js +36 -0
  144. package/dist/yahoo/models/user.js.map +1 -0
  145. package/dist/yahoo/parse.d.ts +26 -0
  146. package/dist/yahoo/parse.d.ts.map +1 -0
  147. package/dist/yahoo/parse.js +116 -0
  148. package/dist/yahoo/parse.js.map +1 -0
  149. package/dist/yahoo/types/raw.d.ts +10 -0
  150. package/dist/yahoo/types/raw.d.ts.map +1 -0
  151. package/dist/yahoo/write/roster.d.ts +7 -0
  152. package/dist/yahoo/write/roster.d.ts.map +1 -0
  153. package/dist/yahoo/write/roster.js +13 -0
  154. package/dist/yahoo/write/roster.js.map +1 -0
  155. package/dist/yahoo/write/transactions.d.ts +42 -0
  156. package/dist/yahoo/write/transactions.d.ts.map +1 -0
  157. package/dist/yahoo/write/transactions.js +51 -0
  158. package/dist/yahoo/write/transactions.js.map +1 -0
  159. package/dist/yahoo/xml.d.ts +42 -0
  160. package/dist/yahoo/xml.d.ts.map +1 -0
  161. package/dist/yahoo/xml.js +118 -0
  162. package/dist/yahoo/xml.js.map +1 -0
  163. package/package.json +79 -0
@@ -0,0 +1,46 @@
1
+ import { collectIndexedResources, flattenResource, getFantasyContent, isJsonObject } from "../parse.js";
2
+ //#region src/yahoo/models/roster.ts
3
+ var Roster = class {
4
+ raw;
5
+ players;
6
+ constructor(raw, players) {
7
+ this.raw = raw;
8
+ this.players = players;
9
+ }
10
+ get coverageType() {
11
+ const value = this.raw.coverage_type;
12
+ return typeof value === "string" ? value : void 0;
13
+ }
14
+ get date() {
15
+ const value = this.raw.date;
16
+ return typeof value === "string" ? value : void 0;
17
+ }
18
+ get week() {
19
+ const value = this.raw.week;
20
+ if (typeof value === "number") return value;
21
+ if (typeof value === "string") {
22
+ const parsed = Number.parseInt(value, 10);
23
+ return Number.isNaN(parsed) ? void 0 : parsed;
24
+ }
25
+ }
26
+ };
27
+ function parseRosterFromResponse(doc) {
28
+ const team = flattenResource(getFantasyContent(doc).team ?? {});
29
+ const playersNode = team.players;
30
+ return new Roster(team, collectIndexedResources(playersNode ?? null, "player").map((raw) => {
31
+ const playerKey = String(raw.player_key ?? "");
32
+ let selectedPosition;
33
+ const sp = raw.selected_position;
34
+ if (Array.isArray(sp) && isJsonObject(sp[0])) selectedPosition = String(sp[0].position ?? "");
35
+ else if (isJsonObject(sp)) selectedPosition = String(sp.position ?? "");
36
+ return {
37
+ playerKey,
38
+ selectedPosition,
39
+ raw
40
+ };
41
+ }));
42
+ }
43
+ //#endregion
44
+ export { Roster, parseRosterFromResponse };
45
+
46
+ //# sourceMappingURL=roster.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"roster.js","names":[],"sources":["../../../src/yahoo/models/roster.ts"],"sourcesContent":["import type { JsonObject } from '../types/raw.js';\nimport { collectIndexedResources, flattenResource, getFantasyContent, isJsonObject } from '../parse.js';\n\nexport interface RosterPlayer {\n playerKey: string;\n selectedPosition?: string;\n raw: JsonObject;\n}\n\nexport class Roster {\n readonly raw: JsonObject;\n readonly players: RosterPlayer[];\n\n constructor(raw: JsonObject, players: RosterPlayer[]) {\n this.raw = raw;\n this.players = players;\n }\n\n get coverageType(): string | undefined {\n const value = this.raw.coverage_type;\n return typeof value === 'string' ? value : undefined;\n }\n\n get date(): string | undefined {\n const value = this.raw.date;\n return typeof value === 'string' ? value : undefined;\n }\n\n get week(): number | undefined {\n const value = this.raw.week;\n if (typeof value === 'number') {\n return value;\n }\n if (typeof value === 'string') {\n const parsed = Number.parseInt(value, 10);\n return Number.isNaN(parsed) ? undefined : parsed;\n }\n return undefined;\n }\n}\n\nexport function parseRosterFromResponse(doc: JsonObject): Roster {\n const content = getFantasyContent(doc);\n const team = flattenResource(content.team ?? {});\n\n const playersNode = team.players;\n const playerResources = collectIndexedResources(playersNode ?? null, 'player');\n\n const players: RosterPlayer[] = playerResources.map((raw) => {\n const playerKey = String(raw.player_key ?? '');\n let selectedPosition: string | undefined;\n const sp = raw.selected_position;\n if (Array.isArray(sp) && isJsonObject(sp[0])) {\n selectedPosition = String(sp[0].position ?? '');\n } else if (isJsonObject(sp)) {\n selectedPosition = String(sp.position ?? '');\n }\n\n return { playerKey, selectedPosition, raw };\n });\n\n return new Roster(team, players);\n}\n"],"mappings":";;AASA,IAAa,SAAb,MAAoB;CAClB;CACA;CAEA,YAAY,KAAiB,SAAyB;EACpD,KAAK,MAAM;EACX,KAAK,UAAU;CACjB;CAEA,IAAI,eAAmC;EACrC,MAAM,QAAQ,KAAK,IAAI;EACvB,OAAO,OAAO,UAAU,WAAW,QAAQ,KAAA;CAC7C;CAEA,IAAI,OAA2B;EAC7B,MAAM,QAAQ,KAAK,IAAI;EACvB,OAAO,OAAO,UAAU,WAAW,QAAQ,KAAA;CAC7C;CAEA,IAAI,OAA2B;EAC7B,MAAM,QAAQ,KAAK,IAAI;EACvB,IAAI,OAAO,UAAU,UACnB,OAAO;EAET,IAAI,OAAO,UAAU,UAAU;GAC7B,MAAM,SAAS,OAAO,SAAS,OAAO,EAAE;GACxC,OAAO,OAAO,MAAM,MAAM,IAAI,KAAA,IAAY;EAC5C;CAEF;AACF;AAEA,SAAgB,wBAAwB,KAAyB;CAE/D,MAAM,OAAO,gBADG,kBAAkB,GACL,EAAQ,QAAQ,CAAC,CAAC;CAE/C,MAAM,cAAc,KAAK;CAgBzB,OAAO,IAAI,OAAO,MAfM,wBAAwB,eAAe,MAAM,QAErC,EAAgB,KAAK,QAAQ;EAC3D,MAAM,YAAY,OAAO,IAAI,cAAc,EAAE;EAC7C,IAAI;EACJ,MAAM,KAAK,IAAI;EACf,IAAI,MAAM,QAAQ,EAAE,KAAK,aAAa,GAAG,EAAE,GACzC,mBAAmB,OAAO,GAAG,GAAG,YAAY,EAAE;OACzC,IAAI,aAAa,EAAE,GACxB,mBAAmB,OAAO,GAAG,YAAY,EAAE;EAG7C,OAAO;GAAE;GAAW;GAAkB;EAAI;CAC5C,CAEwB,CAAO;AACjC"}
@@ -0,0 +1,21 @@
1
+ import type { JsonObject } from '../types/raw.js';
2
+ export declare class Settings {
3
+ readonly raw: JsonObject;
4
+ constructor(raw: JsonObject);
5
+ get leagueKey(): string | undefined;
6
+ get leagueId(): string | undefined;
7
+ get name(): string | undefined;
8
+ get season(): string | undefined;
9
+ get gameCode(): string | undefined;
10
+ get scoringType(): string | undefined;
11
+ get numTeams(): number | undefined;
12
+ get currentWeek(): number | undefined;
13
+ get draftStatus(): string | undefined;
14
+ get rosterPositions(): JsonObject[];
15
+ get statCategories(): JsonObject[];
16
+ }
17
+ export declare function parseSettingsFromResponse(doc: JsonObject): Settings;
18
+ export declare function parseLeagueMetadata(doc: JsonObject): JsonObject;
19
+ export declare function parseGameMetadata(doc: JsonObject): JsonObject;
20
+ export declare function parseGameId(doc: JsonObject): string | undefined;
21
+ //# sourceMappingURL=settings.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"settings.d.ts","sourceRoot":"","sources":["../../../src/yahoo/models/settings.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,iBAAiB,CAAC;AASlD,qBAAa,QAAQ;IACnB,QAAQ,CAAC,GAAG,EAAE,UAAU,CAAC;gBAEb,GAAG,EAAE,UAAU;IAI3B,IAAI,SAAS,IAAI,MAAM,GAAG,SAAS,CAGlC;IAED,IAAI,QAAQ,IAAI,MAAM,GAAG,SAAS,CAGjC;IAED,IAAI,IAAI,IAAI,MAAM,GAAG,SAAS,CAG7B;IAED,IAAI,MAAM,IAAI,MAAM,GAAG,SAAS,CAG/B;IAED,IAAI,QAAQ,IAAI,MAAM,GAAG,SAAS,CAGjC;IAED,IAAI,WAAW,IAAI,MAAM,GAAG,SAAS,CAGpC;IAED,IAAI,QAAQ,IAAI,MAAM,GAAG,SAAS,CAUjC;IAED,IAAI,WAAW,IAAI,MAAM,GAAG,SAAS,CAUpC;IAED,IAAI,WAAW,IAAI,MAAM,GAAG,SAAS,CAGpC;IAED,IAAI,eAAe,IAAI,UAAU,EAAE,CAMlC;IAED,IAAI,cAAc,IAAI,UAAU,EAAE,CAUjC;CACF;AAED,wBAAgB,yBAAyB,CAAC,GAAG,EAAE,UAAU,GAAG,QAAQ,CAKnE;AAED,wBAAgB,mBAAmB,CAAC,GAAG,EAAE,UAAU,GAAG,UAAU,CAG/D;AAED,wBAAgB,iBAAiB,CAAC,GAAG,EAAE,UAAU,GAAG,UAAU,CAG7D;AAED,wBAAgB,WAAW,CAAC,GAAG,EAAE,UAAU,GAAG,MAAM,GAAG,SAAS,CAO/D"}
@@ -0,0 +1,79 @@
1
+ import { collectIndexedResources, findFirstString, flattenLeagueNode, flattenResource, getFantasyContent } from "../parse.js";
2
+ //#region src/yahoo/models/settings.ts
3
+ var Settings = class {
4
+ raw;
5
+ constructor(raw) {
6
+ this.raw = raw;
7
+ }
8
+ get leagueKey() {
9
+ const value = this.raw.league_key;
10
+ return typeof value === "string" ? value : void 0;
11
+ }
12
+ get leagueId() {
13
+ const value = this.raw.league_id;
14
+ return value !== void 0 ? String(value) : void 0;
15
+ }
16
+ get name() {
17
+ const value = this.raw.name;
18
+ return typeof value === "string" ? value : void 0;
19
+ }
20
+ get season() {
21
+ const value = this.raw.season;
22
+ return value !== void 0 ? String(value) : void 0;
23
+ }
24
+ get gameCode() {
25
+ const value = this.raw.game_code;
26
+ return typeof value === "string" ? value : void 0;
27
+ }
28
+ get scoringType() {
29
+ const value = this.raw.scoring_type;
30
+ return typeof value === "string" ? value : void 0;
31
+ }
32
+ get numTeams() {
33
+ const value = this.raw.num_teams;
34
+ if (typeof value === "number") return value;
35
+ if (typeof value === "string") {
36
+ const parsed = Number.parseInt(value, 10);
37
+ return Number.isNaN(parsed) ? void 0 : parsed;
38
+ }
39
+ }
40
+ get currentWeek() {
41
+ const value = this.raw.current_week;
42
+ if (typeof value === "number") return value;
43
+ if (typeof value === "string") {
44
+ const parsed = Number.parseInt(value, 10);
45
+ return Number.isNaN(parsed) ? void 0 : parsed;
46
+ }
47
+ }
48
+ get draftStatus() {
49
+ const value = this.raw.draft_status;
50
+ return typeof value === "string" ? value : void 0;
51
+ }
52
+ get rosterPositions() {
53
+ const positions = this.raw.roster_positions;
54
+ if (!positions || typeof positions !== "object" || Array.isArray(positions)) return [];
55
+ return collectIndexedResources({ roster_positions: positions }, "roster_position");
56
+ }
57
+ get statCategories() {
58
+ const categories = this.raw.stat_categories;
59
+ if (!categories || typeof categories !== "object" || Array.isArray(categories)) return [];
60
+ const stats = categories.stats;
61
+ if (!stats || typeof stats !== "object" || Array.isArray(stats)) return [];
62
+ return collectIndexedResources({ stats }, "stat");
63
+ }
64
+ };
65
+ function parseSettingsFromResponse(doc) {
66
+ const leagueNode = getFantasyContent(doc).league;
67
+ return new Settings(flattenLeagueNode(leagueNode));
68
+ }
69
+ function parseGameMetadata(doc) {
70
+ return flattenResource(getFantasyContent(doc).game ?? {});
71
+ }
72
+ function parseGameId(doc) {
73
+ const content = getFantasyContent(doc);
74
+ return findFirstString(content.game ?? null, "game_id") ?? findFirstString(content, "game_id") ?? findFirstString(content, "game_key");
75
+ }
76
+ //#endregion
77
+ export { Settings, parseGameId, parseGameMetadata, parseSettingsFromResponse };
78
+
79
+ //# sourceMappingURL=settings.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"settings.js","names":[],"sources":["../../../src/yahoo/models/settings.ts"],"sourcesContent":["import type { JsonObject } from '../types/raw.js';\nimport {\n collectIndexedResources,\n findFirstString,\n flattenLeagueNode,\n flattenResource,\n getFantasyContent,\n} from '../parse.js';\n\nexport class Settings {\n readonly raw: JsonObject;\n\n constructor(raw: JsonObject) {\n this.raw = raw;\n }\n\n get leagueKey(): string | undefined {\n const value = this.raw.league_key;\n return typeof value === 'string' ? value : undefined;\n }\n\n get leagueId(): string | undefined {\n const value = this.raw.league_id;\n return value !== undefined ? String(value) : undefined;\n }\n\n get name(): string | undefined {\n const value = this.raw.name;\n return typeof value === 'string' ? value : undefined;\n }\n\n get season(): string | undefined {\n const value = this.raw.season;\n return value !== undefined ? String(value) : undefined;\n }\n\n get gameCode(): string | undefined {\n const value = this.raw.game_code;\n return typeof value === 'string' ? value : undefined;\n }\n\n get scoringType(): string | undefined {\n const value = this.raw.scoring_type;\n return typeof value === 'string' ? value : undefined;\n }\n\n get numTeams(): number | undefined {\n const value = this.raw.num_teams;\n if (typeof value === 'number') {\n return value;\n }\n if (typeof value === 'string') {\n const parsed = Number.parseInt(value, 10);\n return Number.isNaN(parsed) ? undefined : parsed;\n }\n return undefined;\n }\n\n get currentWeek(): number | undefined {\n const value = this.raw.current_week;\n if (typeof value === 'number') {\n return value;\n }\n if (typeof value === 'string') {\n const parsed = Number.parseInt(value, 10);\n return Number.isNaN(parsed) ? undefined : parsed;\n }\n return undefined;\n }\n\n get draftStatus(): string | undefined {\n const value = this.raw.draft_status;\n return typeof value === 'string' ? value : undefined;\n }\n\n get rosterPositions(): JsonObject[] {\n const positions = this.raw.roster_positions;\n if (!positions || typeof positions !== 'object' || Array.isArray(positions)) {\n return [];\n }\n return collectIndexedResources({ roster_positions: positions }, 'roster_position');\n }\n\n get statCategories(): JsonObject[] {\n const categories = this.raw.stat_categories;\n if (!categories || typeof categories !== 'object' || Array.isArray(categories)) {\n return [];\n }\n const stats = (categories as JsonObject).stats;\n if (!stats || typeof stats !== 'object' || Array.isArray(stats)) {\n return [];\n }\n return collectIndexedResources({ stats }, 'stat');\n }\n}\n\nexport function parseSettingsFromResponse(doc: JsonObject): Settings {\n const content = getFantasyContent(doc);\n const leagueNode = content.league;\n const merged = flattenLeagueNode(leagueNode);\n return new Settings(merged);\n}\n\nexport function parseLeagueMetadata(doc: JsonObject): JsonObject {\n const content = getFantasyContent(doc);\n return flattenLeagueNode(content.league);\n}\n\nexport function parseGameMetadata(doc: JsonObject): JsonObject {\n const content = getFantasyContent(doc);\n return flattenResource(content.game ?? {});\n}\n\nexport function parseGameId(doc: JsonObject): string | undefined {\n const content = getFantasyContent(doc);\n return (\n findFirstString(content.game ?? null, 'game_id') ??\n findFirstString(content, 'game_id') ??\n findFirstString(content, 'game_key')\n );\n}\n"],"mappings":";;AASA,IAAa,WAAb,MAAsB;CACpB;CAEA,YAAY,KAAiB;EAC3B,KAAK,MAAM;CACb;CAEA,IAAI,YAAgC;EAClC,MAAM,QAAQ,KAAK,IAAI;EACvB,OAAO,OAAO,UAAU,WAAW,QAAQ,KAAA;CAC7C;CAEA,IAAI,WAA+B;EACjC,MAAM,QAAQ,KAAK,IAAI;EACvB,OAAO,UAAU,KAAA,IAAY,OAAO,KAAK,IAAI,KAAA;CAC/C;CAEA,IAAI,OAA2B;EAC7B,MAAM,QAAQ,KAAK,IAAI;EACvB,OAAO,OAAO,UAAU,WAAW,QAAQ,KAAA;CAC7C;CAEA,IAAI,SAA6B;EAC/B,MAAM,QAAQ,KAAK,IAAI;EACvB,OAAO,UAAU,KAAA,IAAY,OAAO,KAAK,IAAI,KAAA;CAC/C;CAEA,IAAI,WAA+B;EACjC,MAAM,QAAQ,KAAK,IAAI;EACvB,OAAO,OAAO,UAAU,WAAW,QAAQ,KAAA;CAC7C;CAEA,IAAI,cAAkC;EACpC,MAAM,QAAQ,KAAK,IAAI;EACvB,OAAO,OAAO,UAAU,WAAW,QAAQ,KAAA;CAC7C;CAEA,IAAI,WAA+B;EACjC,MAAM,QAAQ,KAAK,IAAI;EACvB,IAAI,OAAO,UAAU,UACnB,OAAO;EAET,IAAI,OAAO,UAAU,UAAU;GAC7B,MAAM,SAAS,OAAO,SAAS,OAAO,EAAE;GACxC,OAAO,OAAO,MAAM,MAAM,IAAI,KAAA,IAAY;EAC5C;CAEF;CAEA,IAAI,cAAkC;EACpC,MAAM,QAAQ,KAAK,IAAI;EACvB,IAAI,OAAO,UAAU,UACnB,OAAO;EAET,IAAI,OAAO,UAAU,UAAU;GAC7B,MAAM,SAAS,OAAO,SAAS,OAAO,EAAE;GACxC,OAAO,OAAO,MAAM,MAAM,IAAI,KAAA,IAAY;EAC5C;CAEF;CAEA,IAAI,cAAkC;EACpC,MAAM,QAAQ,KAAK,IAAI;EACvB,OAAO,OAAO,UAAU,WAAW,QAAQ,KAAA;CAC7C;CAEA,IAAI,kBAAgC;EAClC,MAAM,YAAY,KAAK,IAAI;EAC3B,IAAI,CAAC,aAAa,OAAO,cAAc,YAAY,MAAM,QAAQ,SAAS,GACxE,OAAO,CAAC;EAEV,OAAO,wBAAwB,EAAE,kBAAkB,UAAU,GAAG,iBAAiB;CACnF;CAEA,IAAI,iBAA+B;EACjC,MAAM,aAAa,KAAK,IAAI;EAC5B,IAAI,CAAC,cAAc,OAAO,eAAe,YAAY,MAAM,QAAQ,UAAU,GAC3E,OAAO,CAAC;EAEV,MAAM,QAAS,WAA0B;EACzC,IAAI,CAAC,SAAS,OAAO,UAAU,YAAY,MAAM,QAAQ,KAAK,GAC5D,OAAO,CAAC;EAEV,OAAO,wBAAwB,EAAE,MAAM,GAAG,MAAM;CAClD;AACF;AAEA,SAAgB,0BAA0B,KAA2B;CAEnE,MAAM,aADU,kBAAkB,GACf,EAAQ;CAE3B,OAAO,IAAI,SADI,kBAAkB,UACb,CAAM;AAC5B;AAOA,SAAgB,kBAAkB,KAA6B;CAE7D,OAAO,gBADS,kBAAkB,GACX,EAAQ,QAAQ,CAAC,CAAC;AAC3C;AAEA,SAAgB,YAAY,KAAqC;CAC/D,MAAM,UAAU,kBAAkB,GAAG;CACrC,OACE,gBAAgB,QAAQ,QAAQ,MAAM,SAAS,KAC/C,gBAAgB,SAAS,SAAS,KAClC,gBAAgB,SAAS,UAAU;AAEvC"}
@@ -0,0 +1,40 @@
1
+ import type { YahooClient } from '../client.js';
2
+ import type { JsonObject } from '../types/raw.js';
3
+ import type { Matchup } from './matchup.js';
4
+ import type { Roster } from './roster.js';
5
+ export interface TeamOptions {
6
+ client: YahooClient;
7
+ teamKey: string;
8
+ }
9
+ export interface TeamStatsOptions {
10
+ type?: string;
11
+ date?: string;
12
+ week?: number;
13
+ season?: number;
14
+ }
15
+ export interface TeamRosterOptions {
16
+ date?: string;
17
+ week?: number;
18
+ }
19
+ export interface TeamMatchupsOptions {
20
+ weeks?: number[];
21
+ }
22
+ export declare class Team {
23
+ readonly client: YahooClient;
24
+ readonly teamKey: string;
25
+ constructor(options: TeamOptions);
26
+ metadata(): Promise<JsonObject>;
27
+ stats(options?: TeamStatsOptions): Promise<JsonObject>;
28
+ standings(): Promise<JsonObject>;
29
+ roster(options?: TeamRosterOptions): Promise<Roster>;
30
+ draftResults(): Promise<JsonObject>;
31
+ matchups(options?: TeamMatchupsOptions): Promise<Matchup[]>;
32
+ setLineup(options: {
33
+ date: string;
34
+ moves: Array<{
35
+ playerKey: string;
36
+ position: string;
37
+ }>;
38
+ }): Promise<Response>;
39
+ }
40
+ //# sourceMappingURL=team.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"team.d.ts","sourceRoot":"","sources":["../../../src/yahoo/models/team.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,cAAc,CAAC;AAIhD,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,iBAAiB,CAAC;AAElD,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,cAAc,CAAC;AAE5C,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,aAAa,CAAC;AAE1C,MAAM,WAAW,WAAW;IAC1B,MAAM,EAAE,WAAW,CAAC;IACpB,OAAO,EAAE,MAAM,CAAC;CACjB;AAED,MAAM,WAAW,gBAAgB;IAC/B,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,MAAM,CAAC,EAAE,MAAM,CAAC;CACjB;AAED,MAAM,WAAW,iBAAiB;IAChC,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,IAAI,CAAC,EAAE,MAAM,CAAC;CACf;AAED,MAAM,WAAW,mBAAmB;IAClC,KAAK,CAAC,EAAE,MAAM,EAAE,CAAC;CAClB;AAED,qBAAa,IAAI;IACf,QAAQ,CAAC,MAAM,EAAE,WAAW,CAAC;IAC7B,QAAQ,CAAC,OAAO,EAAE,MAAM,CAAC;gBAEb,OAAO,EAAE,WAAW;IAK1B,QAAQ,IAAI,OAAO,CAAC,UAAU,CAAC;IAK/B,KAAK,CAAC,OAAO,GAAE,gBAAqB,GAAG,OAAO,CAAC,UAAU,CAAC;IAO1D,SAAS,IAAI,OAAO,CAAC,UAAU,CAAC;IAKhC,MAAM,CAAC,OAAO,GAAE,iBAAsB,GAAG,OAAO,CAAC,MAAM,CAAC;IAWxD,YAAY,IAAI,OAAO,CAAC,UAAU,CAAC;IAKnC,QAAQ,CAAC,OAAO,GAAE,mBAAwB,GAAG,OAAO,CAAC,OAAO,EAAE,CAAC;IAS/D,SAAS,CAAC,OAAO,EAAE;QAAE,IAAI,EAAE,MAAM,CAAC;QAAC,KAAK,EAAE,KAAK,CAAC;YAAE,SAAS,EAAE,MAAM,CAAC;YAAC,QAAQ,EAAE,MAAM,CAAA;SAAE,CAAC,CAAA;KAAE,GAAG,OAAO,CAAC,QAAQ,CAAC;CAIrH"}
@@ -0,0 +1,46 @@
1
+ import { getFantasyContent } from "../parse.js";
2
+ import { buildStatsUriParams } from "../keys.js";
3
+ import { parseMatchupsFromTeam } from "./matchup.js";
4
+ import { buildRosterXml } from "../xml.js";
5
+ import { parseRosterFromResponse } from "./roster.js";
6
+ //#region src/yahoo/models/team.ts
7
+ var Team = class {
8
+ client;
9
+ teamKey;
10
+ constructor(options) {
11
+ this.client = options.client;
12
+ this.teamKey = options.teamKey;
13
+ }
14
+ async metadata() {
15
+ return getFantasyContent(await this.client.get(`team/${this.teamKey}`));
16
+ }
17
+ async stats(options = {}) {
18
+ const params = buildStatsUriParams(options.type ?? "date", options);
19
+ return getFantasyContent(await this.client.get(`team/${this.teamKey}/stats;${params}`));
20
+ }
21
+ async standings() {
22
+ return getFantasyContent(await this.client.get(`team/${this.teamKey}/standings`));
23
+ }
24
+ async roster(options = {}) {
25
+ let suffix = "";
26
+ if (options.date !== void 0) suffix = `;date=${options.date}`;
27
+ else if (options.week !== void 0) suffix = `;week=${options.week}`;
28
+ return parseRosterFromResponse(await this.client.get(`team/${this.teamKey}/roster${suffix}`));
29
+ }
30
+ async draftResults() {
31
+ return getFantasyContent(await this.client.get(`team/${this.teamKey}/draftresults`));
32
+ }
33
+ async matchups(options = {}) {
34
+ let suffix = "";
35
+ if (options.weeks?.length) suffix = `;weeks=${options.weeks.join(",")}`;
36
+ return parseMatchupsFromTeam(await this.client.get(`team/${this.teamKey}/matchups${suffix}`));
37
+ }
38
+ async setLineup(options) {
39
+ const xml = buildRosterXml(options);
40
+ return this.client.put(`team/${this.teamKey}/roster`, xml);
41
+ }
42
+ };
43
+ //#endregion
44
+ export { Team };
45
+
46
+ //# sourceMappingURL=team.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"team.js","names":[],"sources":["../../../src/yahoo/models/team.ts"],"sourcesContent":["import type { YahooClient } from '../client.js';\nimport { buildStatsUriParams } from '../keys.js';\nimport { getFantasyContent } from '../parse.js';\nimport { buildRosterXml } from '../xml.js';\nimport type { JsonObject } from '../types/raw.js';\nimport { parseMatchupsFromTeam } from './matchup.js';\nimport type { Matchup } from './matchup.js';\nimport { parseRosterFromResponse } from './roster.js';\nimport type { Roster } from './roster.js';\n\nexport interface TeamOptions {\n client: YahooClient;\n teamKey: string;\n}\n\nexport interface TeamStatsOptions {\n type?: string;\n date?: string;\n week?: number;\n season?: number;\n}\n\nexport interface TeamRosterOptions {\n date?: string;\n week?: number;\n}\n\nexport interface TeamMatchupsOptions {\n weeks?: number[];\n}\n\nexport class Team {\n readonly client: YahooClient;\n readonly teamKey: string;\n\n constructor(options: TeamOptions) {\n this.client = options.client;\n this.teamKey = options.teamKey;\n }\n\n async metadata(): Promise<JsonObject> {\n const doc = await this.client.get(`team/${this.teamKey}`);\n return getFantasyContent(doc);\n }\n\n async stats(options: TeamStatsOptions = {}): Promise<JsonObject> {\n const type = options.type ?? 'date';\n const params = buildStatsUriParams(type, options);\n const doc = await this.client.get(`team/${this.teamKey}/stats;${params}`);\n return getFantasyContent(doc);\n }\n\n async standings(): Promise<JsonObject> {\n const doc = await this.client.get(`team/${this.teamKey}/standings`);\n return getFantasyContent(doc);\n }\n\n async roster(options: TeamRosterOptions = {}): Promise<Roster> {\n let suffix = '';\n if (options.date !== undefined) {\n suffix = `;date=${options.date}`;\n } else if (options.week !== undefined) {\n suffix = `;week=${options.week}`;\n }\n const doc = await this.client.get(`team/${this.teamKey}/roster${suffix}`);\n return parseRosterFromResponse(doc);\n }\n\n async draftResults(): Promise<JsonObject> {\n const doc = await this.client.get(`team/${this.teamKey}/draftresults`);\n return getFantasyContent(doc);\n }\n\n async matchups(options: TeamMatchupsOptions = {}): Promise<Matchup[]> {\n let suffix = '';\n if (options.weeks?.length) {\n suffix = `;weeks=${options.weeks.join(',')}`;\n }\n const doc = await this.client.get(`team/${this.teamKey}/matchups${suffix}`);\n return parseMatchupsFromTeam(doc);\n }\n\n async setLineup(options: { date: string; moves: Array<{ playerKey: string; position: string }> }): Promise<Response> {\n const xml = buildRosterXml(options);\n return this.client.put(`team/${this.teamKey}/roster`, xml);\n }\n}\n"],"mappings":";;;;;;AA+BA,IAAa,OAAb,MAAkB;CAChB;CACA;CAEA,YAAY,SAAsB;EAChC,KAAK,SAAS,QAAQ;EACtB,KAAK,UAAU,QAAQ;CACzB;CAEA,MAAM,WAAgC;EAEpC,OAAO,kBAAkB,MADP,KAAK,OAAO,IAAI,QAAQ,KAAK,SAAS,CAC5B;CAC9B;CAEA,MAAM,MAAM,UAA4B,CAAC,GAAwB;EAE/D,MAAM,SAAS,oBADF,QAAQ,QAAQ,QACY,OAAO;EAEhD,OAAO,kBAAkB,MADP,KAAK,OAAO,IAAI,QAAQ,KAAK,QAAQ,SAAS,QAAQ,CAC5C;CAC9B;CAEA,MAAM,YAAiC;EAErC,OAAO,kBAAkB,MADP,KAAK,OAAO,IAAI,QAAQ,KAAK,QAAQ,WAAW,CACtC;CAC9B;CAEA,MAAM,OAAO,UAA6B,CAAC,GAAoB;EAC7D,IAAI,SAAS;EACb,IAAI,QAAQ,SAAS,KAAA,GACnB,SAAS,SAAS,QAAQ;OACrB,IAAI,QAAQ,SAAS,KAAA,GAC1B,SAAS,SAAS,QAAQ;EAG5B,OAAO,wBAAwB,MADb,KAAK,OAAO,IAAI,QAAQ,KAAK,QAAQ,SAAS,QAAQ,CACtC;CACpC;CAEA,MAAM,eAAoC;EAExC,OAAO,kBAAkB,MADP,KAAK,OAAO,IAAI,QAAQ,KAAK,QAAQ,cAAc,CACzC;CAC9B;CAEA,MAAM,SAAS,UAA+B,CAAC,GAAuB;EACpE,IAAI,SAAS;EACb,IAAI,QAAQ,OAAO,QACjB,SAAS,UAAU,QAAQ,MAAM,KAAK,GAAG;EAG3C,OAAO,sBAAsB,MADX,KAAK,OAAO,IAAI,QAAQ,KAAK,QAAQ,WAAW,QAAQ,CAC1C;CAClC;CAEA,MAAM,UAAU,SAAqG;EACnH,MAAM,MAAM,eAAe,OAAO;EAClC,OAAO,KAAK,OAAO,IAAI,QAAQ,KAAK,QAAQ,UAAU,GAAG;CAC3D;AACF"}
@@ -0,0 +1,10 @@
1
+ import type { YahooClient } from '../client.js';
2
+ import type { JsonObject } from '../types/raw.js';
3
+ export declare class Transaction {
4
+ readonly client: YahooClient;
5
+ readonly transactionKey: string;
6
+ constructor(client: YahooClient, transactionKey: string);
7
+ metadata(): Promise<JsonObject>;
8
+ players(): Promise<JsonObject>;
9
+ }
10
+ //# sourceMappingURL=transaction.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"transaction.d.ts","sourceRoot":"","sources":["../../../src/yahoo/models/transaction.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,cAAc,CAAC;AAChD,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,iBAAiB,CAAC;AAGlD,qBAAa,WAAW;IACtB,QAAQ,CAAC,MAAM,EAAE,WAAW,CAAC;IAC7B,QAAQ,CAAC,cAAc,EAAE,MAAM,CAAC;gBAEpB,MAAM,EAAE,WAAW,EAAE,cAAc,EAAE,MAAM;IAKjD,QAAQ,IAAI,OAAO,CAAC,UAAU,CAAC;IAK/B,OAAO,IAAI,OAAO,CAAC,UAAU,CAAC;CAIrC"}
@@ -0,0 +1,20 @@
1
+ import { getFantasyContent } from "../parse.js";
2
+ //#region src/yahoo/models/transaction.ts
3
+ var Transaction = class {
4
+ client;
5
+ transactionKey;
6
+ constructor(client, transactionKey) {
7
+ this.client = client;
8
+ this.transactionKey = transactionKey;
9
+ }
10
+ async metadata() {
11
+ return getFantasyContent(await this.client.get(`transaction/${this.transactionKey}`));
12
+ }
13
+ async players() {
14
+ return getFantasyContent(await this.client.get(`transaction/${this.transactionKey}/players`));
15
+ }
16
+ };
17
+ //#endregion
18
+ export { Transaction };
19
+
20
+ //# sourceMappingURL=transaction.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"transaction.js","names":[],"sources":["../../../src/yahoo/models/transaction.ts"],"sourcesContent":["import type { YahooClient } from '../client.js';\nimport type { JsonObject } from '../types/raw.js';\nimport { getFantasyContent } from '../parse.js';\n\nexport class Transaction {\n readonly client: YahooClient;\n readonly transactionKey: string;\n\n constructor(client: YahooClient, transactionKey: string) {\n this.client = client;\n this.transactionKey = transactionKey;\n }\n\n async metadata(): Promise<JsonObject> {\n const doc = await this.client.get(`transaction/${this.transactionKey}`);\n return getFantasyContent(doc);\n }\n\n async players(): Promise<JsonObject> {\n const doc = await this.client.get(`transaction/${this.transactionKey}/players`);\n return getFantasyContent(doc);\n }\n}\n"],"mappings":";;AAIA,IAAa,cAAb,MAAyB;CACvB;CACA;CAEA,YAAY,QAAqB,gBAAwB;EACvD,KAAK,SAAS;EACd,KAAK,iBAAiB;CACxB;CAEA,MAAM,WAAgC;EAEpC,OAAO,kBAAkB,MADP,KAAK,OAAO,IAAI,eAAe,KAAK,gBAAgB,CAC1C;CAC9B;CAEA,MAAM,UAA+B;EAEnC,OAAO,kBAAkB,MADP,KAAK,OAAO,IAAI,eAAe,KAAK,eAAe,SAAS,CAClD;CAC9B;AACF"}
@@ -0,0 +1,19 @@
1
+ import type { YahooClient } from '../client.js';
2
+ import type { JsonObject } from '../types/raw.js';
3
+ export interface UserOptions {
4
+ client: YahooClient;
5
+ }
6
+ export interface UserGamesFilters {
7
+ isAvailable?: boolean;
8
+ gameKeys?: string[];
9
+ }
10
+ export declare class User {
11
+ readonly client: YahooClient;
12
+ constructor(options: UserOptions);
13
+ static create(client: YahooClient): User;
14
+ profile(): Promise<JsonObject>;
15
+ games(filters?: UserGamesFilters): Promise<JsonObject>;
16
+ leagues(gameKeys?: string[]): Promise<JsonObject>;
17
+ teams(gameKeys?: string[]): Promise<JsonObject>;
18
+ }
19
+ //# sourceMappingURL=user.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"user.d.ts","sourceRoot":"","sources":["../../../src/yahoo/models/user.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,cAAc,CAAC;AAIhD,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,iBAAiB,CAAC;AAElD,MAAM,WAAW,WAAW;IAC1B,MAAM,EAAE,WAAW,CAAC;CACrB;AAED,MAAM,WAAW,gBAAgB;IAC/B,WAAW,CAAC,EAAE,OAAO,CAAC;IACtB,QAAQ,CAAC,EAAE,MAAM,EAAE,CAAC;CACrB;AAED,qBAAa,IAAI;IACf,QAAQ,CAAC,MAAM,EAAE,WAAW,CAAC;gBAEjB,OAAO,EAAE,WAAW;IAIhC,MAAM,CAAC,MAAM,CAAC,MAAM,EAAE,WAAW,GAAG,IAAI;IAIlC,OAAO,IAAI,OAAO,CAAC,UAAU,CAAC;IAK9B,KAAK,CAAC,OAAO,GAAE,gBAAqB,GAAG,OAAO,CAAC,UAAU,CAAC;IAgB1D,OAAO,CAAC,QAAQ,CAAC,EAAE,MAAM,EAAE,GAAG,OAAO,CAAC,UAAU,CAAC;IAMjD,KAAK,CAAC,QAAQ,CAAC,EAAE,MAAM,EAAE,GAAG,OAAO,CAAC,UAAU,CAAC;CAKtD"}
@@ -0,0 +1,36 @@
1
+ import "../constants.js";
2
+ import { getFantasyContent } from "../parse.js";
3
+ import { joinKeys } from "../keys.js";
4
+ //#region src/yahoo/models/user.ts
5
+ var User = class User {
6
+ client;
7
+ constructor(options) {
8
+ this.client = options.client;
9
+ }
10
+ static create(client) {
11
+ return new User({ client });
12
+ }
13
+ async profile() {
14
+ return getFantasyContent(await this.client.get("users;use_login=1"));
15
+ }
16
+ async games(filters = {}) {
17
+ let path = "users;use_login=1/games";
18
+ const parts = [];
19
+ if (filters.isAvailable) parts.push("is_available=1");
20
+ if (filters.gameKeys?.length) parts.push(`game_keys=${joinKeys(filters.gameKeys)}`);
21
+ if (parts.length > 0) path = `users;use_login=1/games;${parts.join(";")}`;
22
+ return getFantasyContent(await this.client.get(path));
23
+ }
24
+ async leagues(gameKeys) {
25
+ const keys = gameKeys?.length ? joinKeys(gameKeys) : "nba";
26
+ return getFantasyContent(await this.client.get(`users;use_login=1/games;game_keys=${keys}/leagues`));
27
+ }
28
+ async teams(gameKeys) {
29
+ const keys = gameKeys?.length ? joinKeys(gameKeys) : "nba";
30
+ return getFantasyContent(await this.client.get(`users;use_login=1/games;game_keys=${keys}/teams`));
31
+ }
32
+ };
33
+ //#endregion
34
+ export { User };
35
+
36
+ //# sourceMappingURL=user.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"user.js","names":[],"sources":["../../../src/yahoo/models/user.ts"],"sourcesContent":["import type { YahooClient } from '../client.js';\nimport { GAME_CODE } from '../constants.js';\nimport { joinKeys } from '../keys.js';\nimport { getFantasyContent } from '../parse.js';\nimport type { JsonObject } from '../types/raw.js';\n\nexport interface UserOptions {\n client: YahooClient;\n}\n\nexport interface UserGamesFilters {\n isAvailable?: boolean;\n gameKeys?: string[];\n}\n\nexport class User {\n readonly client: YahooClient;\n\n constructor(options: UserOptions) {\n this.client = options.client;\n }\n\n static create(client: YahooClient): User {\n return new User({ client });\n }\n\n async profile(): Promise<JsonObject> {\n const doc = await this.client.get('users;use_login=1');\n return getFantasyContent(doc);\n }\n\n async games(filters: UserGamesFilters = {}): Promise<JsonObject> {\n let path = 'users;use_login=1/games';\n const parts: string[] = [];\n if (filters.isAvailable) {\n parts.push('is_available=1');\n }\n if (filters.gameKeys?.length) {\n parts.push(`game_keys=${joinKeys(filters.gameKeys)}`);\n }\n if (parts.length > 0) {\n path = `users;use_login=1/games;${parts.join(';')}`;\n }\n const doc = await this.client.get(path);\n return getFantasyContent(doc);\n }\n\n async leagues(gameKeys?: string[]): Promise<JsonObject> {\n const keys = gameKeys?.length ? joinKeys(gameKeys) : GAME_CODE;\n const doc = await this.client.get(`users;use_login=1/games;game_keys=${keys}/leagues`);\n return getFantasyContent(doc);\n }\n\n async teams(gameKeys?: string[]): Promise<JsonObject> {\n const keys = gameKeys?.length ? joinKeys(gameKeys) : GAME_CODE;\n const doc = await this.client.get(`users;use_login=1/games;game_keys=${keys}/teams`);\n return getFantasyContent(doc);\n }\n}\n"],"mappings":";;;;AAeA,IAAa,OAAb,MAAa,KAAK;CAChB;CAEA,YAAY,SAAsB;EAChC,KAAK,SAAS,QAAQ;CACxB;CAEA,OAAO,OAAO,QAA2B;EACvC,OAAO,IAAI,KAAK,EAAE,OAAO,CAAC;CAC5B;CAEA,MAAM,UAA+B;EAEnC,OAAO,kBAAkB,MADP,KAAK,OAAO,IAAI,mBAAmB,CACzB;CAC9B;CAEA,MAAM,MAAM,UAA4B,CAAC,GAAwB;EAC/D,IAAI,OAAO;EACX,MAAM,QAAkB,CAAC;EACzB,IAAI,QAAQ,aACV,MAAM,KAAK,gBAAgB;EAE7B,IAAI,QAAQ,UAAU,QACpB,MAAM,KAAK,aAAa,SAAS,QAAQ,QAAQ,GAAG;EAEtD,IAAI,MAAM,SAAS,GACjB,OAAO,2BAA2B,MAAM,KAAK,GAAG;EAGlD,OAAO,kBAAkB,MADP,KAAK,OAAO,IAAI,IAAI,CACV;CAC9B;CAEA,MAAM,QAAQ,UAA0C;EACtD,MAAM,OAAO,UAAU,SAAS,SAAS,QAAQ,IAAA;EAEjD,OAAO,kBAAkB,MADP,KAAK,OAAO,IAAI,qCAAqC,KAAK,SAAS,CACzD;CAC9B;CAEA,MAAM,MAAM,UAA0C;EACpD,MAAM,OAAO,UAAU,SAAS,SAAS,QAAQ,IAAA;EAEjD,OAAO,kBAAkB,MADP,KAAK,OAAO,IAAI,qCAAqC,KAAK,OAAO,CACvD;CAC9B;AACF"}
@@ -0,0 +1,26 @@
1
+ import type { JsonObject, JsonValue } from './types/raw.js';
2
+ export declare function getFantasyContent(doc: JsonObject): JsonObject;
3
+ export declare function isJsonObject(value: JsonValue | undefined): value is JsonObject;
4
+ export declare function mergeDicts(target: JsonObject, source: JsonObject): JsonObject;
5
+ /** Merge Yahoo positional resource pairs ([0] metadata + [1] sub-resource). */
6
+ export declare function flattenResource(node: JsonValue): JsonObject;
7
+ export declare function parseCount(node: JsonValue): number | undefined;
8
+ /** Collect all values for a key anywhere in the tree. */
9
+ export declare function collectByKey(node: JsonValue, key: string): JsonValue[];
10
+ /** Extract indexed collection items (teams, players, etc.) from Yahoo JSON. */
11
+ export declare function collectIndexedResources(container: JsonValue, entryResourceKey: string): JsonObject[];
12
+ /** Find first string value for a key in the tree. */
13
+ export declare function findFirstString(node: JsonValue, key: string): string | undefined;
14
+ /** Collect all league_key values from a response. */
15
+ export declare function collectLeagueKeys(doc: JsonObject): string[];
16
+ /** Collect all team_key values from a response. */
17
+ export declare function collectTeamKeys(doc: JsonObject): string[];
18
+ /** Collect all player_key values from a response. */
19
+ export declare function collectPlayerKeys(doc: JsonObject): string[];
20
+ /** Collect all transaction_key values from a response. */
21
+ export declare function collectTransactionKeys(doc: JsonObject): string[];
22
+ /** Flatten a league node (array or object) into a single metadata + settings object. */
23
+ export declare function flattenLeagueNode(leagueNode: JsonValue | undefined): JsonObject;
24
+ /** Read an indexed collection from a flattened league response. */
25
+ export declare function collectLeagueResources(league: JsonObject, collectionKey: string, entryResourceKey: string): JsonObject[];
26
+ //# sourceMappingURL=parse.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"parse.d.ts","sourceRoot":"","sources":["../../src/yahoo/parse.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,UAAU,EAAE,SAAS,EAAE,MAAM,gBAAgB,CAAC;AAE5D,wBAAgB,iBAAiB,CAAC,GAAG,EAAE,UAAU,GAAG,UAAU,CAS7D;AAED,wBAAgB,YAAY,CAAC,KAAK,EAAE,SAAS,GAAG,SAAS,GAAG,KAAK,IAAI,UAAU,CAE9E;AAED,wBAAgB,UAAU,CAAC,MAAM,EAAE,UAAU,EAAE,MAAM,EAAE,UAAU,GAAG,UAAU,CAO7E;AAKD,+EAA+E;AAC/E,wBAAgB,eAAe,CAAC,IAAI,EAAE,SAAS,GAAG,UAAU,CA8B3D;AAED,wBAAgB,UAAU,CAAC,IAAI,EAAE,SAAS,GAAG,MAAM,GAAG,SAAS,CAY9D;AAED,yDAAyD;AACzD,wBAAgB,YAAY,CAAC,IAAI,EAAE,SAAS,EAAE,GAAG,EAAE,MAAM,GAAG,SAAS,EAAE,CAuBtE;AAED,+EAA+E;AAC/E,wBAAgB,uBAAuB,CACrC,SAAS,EAAE,SAAS,EACpB,gBAAgB,EAAE,MAAM,GACvB,UAAU,EAAE,CAwBd;AAED,qDAAqD;AACrD,wBAAgB,eAAe,CAAC,IAAI,EAAE,SAAS,EAAE,GAAG,EAAE,MAAM,GAAG,MAAM,GAAG,SAAS,CAUhF;AAED,qDAAqD;AACrD,wBAAgB,iBAAiB,CAAC,GAAG,EAAE,UAAU,GAAG,MAAM,EAAE,CAQ3D;AAED,mDAAmD;AACnD,wBAAgB,eAAe,CAAC,GAAG,EAAE,UAAU,GAAG,MAAM,EAAE,CAQzD;AAED,qDAAqD;AACrD,wBAAgB,iBAAiB,CAAC,GAAG,EAAE,UAAU,GAAG,MAAM,EAAE,CAQ3D;AAED,0DAA0D;AAC1D,wBAAgB,sBAAsB,CAAC,GAAG,EAAE,UAAU,GAAG,MAAM,EAAE,CAQhE;AAED,wFAAwF;AACxF,wBAAgB,iBAAiB,CAAC,UAAU,EAAE,SAAS,GAAG,SAAS,GAAG,UAAU,CAE/E;AAED,mEAAmE;AACnE,wBAAgB,sBAAsB,CACpC,MAAM,EAAE,UAAU,EAClB,aAAa,EAAE,MAAM,EACrB,gBAAgB,EAAE,MAAM,GACvB,UAAU,EAAE,CAMd"}
@@ -0,0 +1,116 @@
1
+ //#region src/yahoo/parse.ts
2
+ function getFantasyContent(doc) {
3
+ const content = doc.fantasy_content;
4
+ if (content !== null && typeof content === "object" && !Array.isArray(content)) return content;
5
+ if (Array.isArray(content)) return flattenResource(content);
6
+ return doc;
7
+ }
8
+ function isJsonObject(value) {
9
+ return value !== null && value !== void 0 && typeof value === "object" && !Array.isArray(value);
10
+ }
11
+ function mergeDicts(target, source) {
12
+ for (const [key, value] of Object.entries(source)) if (value !== void 0 && value !== null) target[key] = value;
13
+ return target;
14
+ }
15
+ /** Wrapper keys whose array values contain objects merged into the parent. */
16
+ var MERGE_ARRAY_KEYS = new Set([
17
+ "settings",
18
+ "scoreboard",
19
+ "standings",
20
+ "roster"
21
+ ]);
22
+ /** Merge Yahoo positional resource pairs ([0] metadata + [1] sub-resource). */
23
+ function flattenResource(node) {
24
+ if (Array.isArray(node)) {
25
+ const result = {};
26
+ for (const item of node) mergeDicts(result, flattenResource(item));
27
+ return result;
28
+ }
29
+ if (!isJsonObject(node)) return {};
30
+ const result = {};
31
+ for (const [key, value] of Object.entries(node)) {
32
+ if (value === null || value === void 0) continue;
33
+ if (MERGE_ARRAY_KEYS.has(key) && Array.isArray(value)) {
34
+ for (const item of value) mergeDicts(result, flattenResource(item));
35
+ result[key] = value;
36
+ } else result[key] = value;
37
+ }
38
+ return result;
39
+ }
40
+ function parseCount(node) {
41
+ if (isJsonObject(node) && "count" in node) {
42
+ const count = node.count;
43
+ if (typeof count === "number") return count;
44
+ if (typeof count === "string") {
45
+ const parsed = Number.parseInt(count, 10);
46
+ return Number.isNaN(parsed) ? void 0 : parsed;
47
+ }
48
+ }
49
+ }
50
+ /** Collect all values for a key anywhere in the tree. */
51
+ function collectByKey(node, key) {
52
+ const results = [];
53
+ function walk(value) {
54
+ if (Array.isArray(value)) {
55
+ for (const item of value) walk(item);
56
+ return;
57
+ }
58
+ if (!isJsonObject(value)) return;
59
+ if (key in value) results.push(value[key]);
60
+ for (const child of Object.values(value)) walk(child);
61
+ }
62
+ walk(node);
63
+ return results;
64
+ }
65
+ /** Extract indexed collection items (teams, players, etc.) from Yahoo JSON. */
66
+ function collectIndexedResources(container, entryResourceKey) {
67
+ const results = [];
68
+ if (!isJsonObject(container)) return results;
69
+ const count = parseCount(container) ?? Object.keys(container).filter((k) => /^\d+$/.test(k)).length;
70
+ for (let i = 0; i < count; i += 1) {
71
+ const entry = container[String(i)];
72
+ if (entry === void 0) continue;
73
+ if (isJsonObject(entry) && entryResourceKey in entry) results.push(flattenResource(entry[entryResourceKey]));
74
+ else results.push(flattenResource(entry));
75
+ }
76
+ return results;
77
+ }
78
+ /** Find first string value for a key in the tree. */
79
+ function findFirstString(node, key) {
80
+ for (const value of collectByKey(node, key)) {
81
+ if (typeof value === "string") return value;
82
+ if (typeof value === "number") return String(value);
83
+ }
84
+ }
85
+ /** Collect all league_key values from a response. */
86
+ function collectLeagueKeys(doc) {
87
+ const keys = /* @__PURE__ */ new Set();
88
+ for (const value of collectByKey(doc, "league_key")) if (typeof value === "string") keys.add(value);
89
+ return [...keys].sort();
90
+ }
91
+ /** Collect all team_key values from a response. */
92
+ function collectTeamKeys(doc) {
93
+ const keys = /* @__PURE__ */ new Set();
94
+ for (const value of collectByKey(doc, "team_key")) if (typeof value === "string") keys.add(value);
95
+ return [...keys].sort();
96
+ }
97
+ /** Collect all player_key values from a response. */
98
+ function collectPlayerKeys(doc) {
99
+ const keys = /* @__PURE__ */ new Set();
100
+ for (const value of collectByKey(doc, "player_key")) if (typeof value === "string") keys.add(value);
101
+ return [...keys].sort();
102
+ }
103
+ /** Collect all transaction_key values from a response. */
104
+ function collectTransactionKeys(doc) {
105
+ const keys = /* @__PURE__ */ new Set();
106
+ for (const value of collectByKey(doc, "transaction_key")) if (typeof value === "string") keys.add(value);
107
+ return [...keys].sort();
108
+ }
109
+ /** Flatten a league node (array or object) into a single metadata + settings object. */
110
+ function flattenLeagueNode(leagueNode) {
111
+ return flattenResource(leagueNode ?? {});
112
+ }
113
+ //#endregion
114
+ export { collectIndexedResources, collectLeagueKeys, collectPlayerKeys, collectTeamKeys, collectTransactionKeys, findFirstString, flattenLeagueNode, flattenResource, getFantasyContent, isJsonObject };
115
+
116
+ //# sourceMappingURL=parse.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"parse.js","names":[],"sources":["../../src/yahoo/parse.ts"],"sourcesContent":["import type { JsonObject, JsonValue } from './types/raw.js';\n\nexport function getFantasyContent(doc: JsonObject): JsonObject {\n const content = doc.fantasy_content;\n if (content !== null && typeof content === 'object' && !Array.isArray(content)) {\n return content as JsonObject;\n }\n if (Array.isArray(content)) {\n return flattenResource(content);\n }\n return doc;\n}\n\nexport function isJsonObject(value: JsonValue | undefined): value is JsonObject {\n return value !== null && value !== undefined && typeof value === 'object' && !Array.isArray(value);\n}\n\nexport function mergeDicts(target: JsonObject, source: JsonObject): JsonObject {\n for (const [key, value] of Object.entries(source)) {\n if (value !== undefined && value !== null) {\n target[key] = value;\n }\n }\n return target;\n}\n\n/** Wrapper keys whose array values contain objects merged into the parent. */\nconst MERGE_ARRAY_KEYS = new Set(['settings', 'scoreboard', 'standings', 'roster']);\n\n/** Merge Yahoo positional resource pairs ([0] metadata + [1] sub-resource). */\nexport function flattenResource(node: JsonValue): JsonObject {\n if (Array.isArray(node)) {\n const result: JsonObject = {};\n for (const item of node) {\n mergeDicts(result, flattenResource(item));\n }\n return result;\n }\n\n if (!isJsonObject(node)) {\n return {};\n }\n\n const result: JsonObject = {};\n for (const [key, value] of Object.entries(node)) {\n if (value === null || value === undefined) {\n continue;\n }\n\n if (MERGE_ARRAY_KEYS.has(key) && Array.isArray(value)) {\n for (const item of value) {\n mergeDicts(result, flattenResource(item));\n }\n result[key] = value;\n } else {\n result[key] = value;\n }\n }\n\n return result;\n}\n\nexport function parseCount(node: JsonValue): number | undefined {\n if (isJsonObject(node) && 'count' in node) {\n const count = node.count;\n if (typeof count === 'number') {\n return count;\n }\n if (typeof count === 'string') {\n const parsed = Number.parseInt(count, 10);\n return Number.isNaN(parsed) ? undefined : parsed;\n }\n }\n return undefined;\n}\n\n/** Collect all values for a key anywhere in the tree. */\nexport function collectByKey(node: JsonValue, key: string): JsonValue[] {\n const results: JsonValue[] = [];\n\n function walk(value: JsonValue): void {\n if (Array.isArray(value)) {\n for (const item of value) {\n walk(item);\n }\n return;\n }\n if (!isJsonObject(value)) {\n return;\n }\n if (key in value) {\n results.push(value[key]!);\n }\n for (const child of Object.values(value)) {\n walk(child);\n }\n }\n\n walk(node);\n return results;\n}\n\n/** Extract indexed collection items (teams, players, etc.) from Yahoo JSON. */\nexport function collectIndexedResources(\n container: JsonValue,\n entryResourceKey: string,\n): JsonObject[] {\n const results: JsonObject[] = [];\n\n if (!isJsonObject(container)) {\n return results;\n }\n\n const count =\n parseCount(container) ?? Object.keys(container).filter((k) => /^\\d+$/.test(k)).length;\n\n for (let i = 0; i < count; i += 1) {\n const entry = container[String(i)];\n if (entry === undefined) {\n continue;\n }\n\n if (isJsonObject(entry) && entryResourceKey in entry) {\n results.push(flattenResource(entry[entryResourceKey]!));\n } else {\n results.push(flattenResource(entry));\n }\n }\n\n return results;\n}\n\n/** Find first string value for a key in the tree. */\nexport function findFirstString(node: JsonValue, key: string): string | undefined {\n for (const value of collectByKey(node, key)) {\n if (typeof value === 'string') {\n return value;\n }\n if (typeof value === 'number') {\n return String(value);\n }\n }\n return undefined;\n}\n\n/** Collect all league_key values from a response. */\nexport function collectLeagueKeys(doc: JsonObject): string[] {\n const keys = new Set<string>();\n for (const value of collectByKey(doc, 'league_key')) {\n if (typeof value === 'string') {\n keys.add(value);\n }\n }\n return [...keys].sort();\n}\n\n/** Collect all team_key values from a response. */\nexport function collectTeamKeys(doc: JsonObject): string[] {\n const keys = new Set<string>();\n for (const value of collectByKey(doc, 'team_key')) {\n if (typeof value === 'string') {\n keys.add(value);\n }\n }\n return [...keys].sort();\n}\n\n/** Collect all player_key values from a response. */\nexport function collectPlayerKeys(doc: JsonObject): string[] {\n const keys = new Set<string>();\n for (const value of collectByKey(doc, 'player_key')) {\n if (typeof value === 'string') {\n keys.add(value);\n }\n }\n return [...keys].sort();\n}\n\n/** Collect all transaction_key values from a response. */\nexport function collectTransactionKeys(doc: JsonObject): string[] {\n const keys = new Set<string>();\n for (const value of collectByKey(doc, 'transaction_key')) {\n if (typeof value === 'string') {\n keys.add(value);\n }\n }\n return [...keys].sort();\n}\n\n/** Flatten a league node (array or object) into a single metadata + settings object. */\nexport function flattenLeagueNode(leagueNode: JsonValue | undefined): JsonObject {\n return flattenResource(leagueNode ?? {});\n}\n\n/** Read an indexed collection from a flattened league response. */\nexport function collectLeagueResources(\n league: JsonObject,\n collectionKey: string,\n entryResourceKey: string,\n): JsonObject[] {\n const node = league[collectionKey];\n if (!node || typeof node !== 'object' || Array.isArray(node)) {\n return [];\n }\n return collectIndexedResources(node, entryResourceKey);\n}\n"],"mappings":"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"}
@@ -0,0 +1,10 @@
1
+ /** Yahoo fantasy_content root document (JSON via format=json). */
2
+ export type JsonValue = string | number | boolean | null | JsonObject | JsonValue[];
3
+ export interface JsonObject {
4
+ [key: string]: JsonValue;
5
+ }
6
+ export interface FantasyContentDocument {
7
+ fantasy_content: JsonObject;
8
+ }
9
+ export type FantasyContent = FantasyContentDocument | JsonObject;
10
+ //# sourceMappingURL=raw.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"raw.d.ts","sourceRoot":"","sources":["../../../src/yahoo/types/raw.ts"],"names":[],"mappings":"AAAA,kEAAkE;AAClE,MAAM,MAAM,SAAS,GAAG,MAAM,GAAG,MAAM,GAAG,OAAO,GAAG,IAAI,GAAG,UAAU,GAAG,SAAS,EAAE,CAAC;AAEpF,MAAM,WAAW,UAAU;IACzB,CAAC,GAAG,EAAE,MAAM,GAAG,SAAS,CAAC;CAC1B;AAED,MAAM,WAAW,sBAAsB;IACrC,eAAe,EAAE,UAAU,CAAC;CAC7B;AAED,MAAM,MAAM,cAAc,GAAG,sBAAsB,GAAG,UAAU,CAAC"}
@@ -0,0 +1,7 @@
1
+ import type { Team } from '../models/team.js';
2
+ import { type RosterMove, type RosterXmlOptions } from '../xml.js';
3
+ export type SetLineupOptions = RosterXmlOptions;
4
+ export declare function setLineup(team: Team, options: SetLineupOptions): Promise<Response>;
5
+ export declare function setTeamLineup(team: Team, options: SetLineupOptions): Promise<Response>;
6
+ export type { RosterMove };
7
+ //# sourceMappingURL=roster.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"roster.d.ts","sourceRoot":"","sources":["../../../src/yahoo/write/roster.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,IAAI,EAAE,MAAM,mBAAmB,CAAC;AAC9C,OAAO,EAAkB,KAAK,UAAU,EAAE,KAAK,gBAAgB,EAAE,MAAM,WAAW,CAAC;AAEnF,MAAM,MAAM,gBAAgB,GAAG,gBAAgB,CAAC;AAEhD,wBAAsB,SAAS,CAAC,IAAI,EAAE,IAAI,EAAE,OAAO,EAAE,gBAAgB,GAAG,OAAO,CAAC,QAAQ,CAAC,CAGxF;AAGD,wBAAsB,aAAa,CAAC,IAAI,EAAE,IAAI,EAAE,OAAO,EAAE,gBAAgB,GAAG,OAAO,CAAC,QAAQ,CAAC,CAE5F;AAED,YAAY,EAAE,UAAU,EAAE,CAAC"}
@@ -0,0 +1,13 @@
1
+ import { buildRosterXml } from "../xml.js";
2
+ //#region src/yahoo/write/roster.ts
3
+ async function setLineup(team, options) {
4
+ const xml = buildRosterXml(options);
5
+ return team.client.put(`team/${team.teamKey}/roster`, xml);
6
+ }
7
+ async function setTeamLineup(team, options) {
8
+ return setLineup(team, options);
9
+ }
10
+ //#endregion
11
+ export { setLineup, setTeamLineup };
12
+
13
+ //# sourceMappingURL=roster.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"roster.js","names":[],"sources":["../../../src/yahoo/write/roster.ts"],"sourcesContent":["import type { Team } from '../models/team.js';\nimport { buildRosterXml, type RosterMove, type RosterXmlOptions } from '../xml.js';\n\nexport type SetLineupOptions = RosterXmlOptions;\n\nexport async function setLineup(team: Team, options: SetLineupOptions): Promise<Response> {\n const xml = buildRosterXml(options);\n return team.client.put(`team/${team.teamKey}/roster`, xml);\n}\n\n// Convenience method on Team via extension pattern\nexport async function setTeamLineup(team: Team, options: SetLineupOptions): Promise<Response> {\n return setLineup(team, options);\n}\n\nexport type { RosterMove };\n"],"mappings":";;AAKA,eAAsB,UAAU,MAAY,SAA8C;CACxF,MAAM,MAAM,eAAe,OAAO;CAClC,OAAO,KAAK,OAAO,IAAI,QAAQ,KAAK,QAAQ,UAAU,GAAG;AAC3D;AAGA,eAAsB,cAAc,MAAY,SAA8C;CAC5F,OAAO,UAAU,MAAM,OAAO;AAChC"}