@nekutima/biome-sdk 0.19.3 → 0.29.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 (219) hide show
  1. package/dist/admin/admin.model.d.ts +70 -0
  2. package/dist/admin/admin.model.d.ts.map +1 -1
  3. package/dist/admin/admin.schema.json +339 -0
  4. package/dist/admin/admin.service.d.ts +9 -1
  5. package/dist/admin/admin.service.d.ts.map +1 -1
  6. package/dist/admin/admin.service.js +79 -4
  7. package/dist/admin/admin.service.js.map +1 -1
  8. package/dist/agents/agent-identity.d.ts +19 -0
  9. package/dist/agents/agent-identity.d.ts.map +1 -0
  10. package/dist/agents/agent-identity.js +36 -0
  11. package/dist/agents/agent-identity.js.map +1 -0
  12. package/dist/agents/agent-resource.d.ts +0 -1
  13. package/dist/agents/agent-resource.d.ts.map +1 -1
  14. package/dist/agents/agent.model.d.ts +13 -40
  15. package/dist/agents/agent.model.d.ts.map +1 -1
  16. package/dist/agents/agent.service.d.ts +9 -3
  17. package/dist/agents/agent.service.d.ts.map +1 -1
  18. package/dist/agents/agent.service.js +37 -8
  19. package/dist/agents/agent.service.js.map +1 -1
  20. package/dist/ai/yuri.service.d.ts +39 -5
  21. package/dist/ai/yuri.service.d.ts.map +1 -1
  22. package/dist/ai/yuri.service.js +64 -34
  23. package/dist/ai/yuri.service.js.map +1 -1
  24. package/dist/alexandria/nugget.model.d.ts +77 -0
  25. package/dist/alexandria/nugget.model.d.ts.map +1 -0
  26. package/dist/alexandria/nugget.model.js +7 -0
  27. package/dist/alexandria/nugget.model.js.map +1 -0
  28. package/dist/alexandria/nugget.service.d.ts +21 -0
  29. package/dist/alexandria/nugget.service.d.ts.map +1 -0
  30. package/dist/alexandria/nugget.service.js +127 -0
  31. package/dist/alexandria/nugget.service.js.map +1 -0
  32. package/dist/alexandria/problem.model.d.ts +48 -0
  33. package/dist/alexandria/problem.model.d.ts.map +1 -0
  34. package/dist/alexandria/problem.model.js +7 -0
  35. package/dist/alexandria/problem.model.js.map +1 -0
  36. package/dist/alexandria/problem.service.d.ts +17 -0
  37. package/dist/alexandria/problem.service.d.ts.map +1 -0
  38. package/dist/alexandria/problem.service.js +98 -0
  39. package/dist/alexandria/problem.service.js.map +1 -0
  40. package/dist/alexandria/progress.model.d.ts +19 -0
  41. package/dist/alexandria/progress.model.d.ts.map +1 -0
  42. package/dist/alexandria/progress.model.js +3 -0
  43. package/dist/alexandria/progress.model.js.map +1 -0
  44. package/dist/alexandria/progress.service.d.ts +10 -0
  45. package/dist/alexandria/progress.service.d.ts.map +1 -0
  46. package/dist/alexandria/progress.service.js +38 -0
  47. package/dist/alexandria/progress.service.js.map +1 -0
  48. package/dist/api-keys/api-key.model.d.ts +30 -0
  49. package/dist/api-keys/api-key.model.d.ts.map +1 -0
  50. package/dist/api-keys/api-key.model.js +3 -0
  51. package/dist/api-keys/api-key.model.js.map +1 -0
  52. package/dist/api-keys/api-key.service.d.ts +16 -0
  53. package/dist/api-keys/api-key.service.d.ts.map +1 -0
  54. package/dist/api-keys/api-key.service.js +34 -0
  55. package/dist/api-keys/api-key.service.js.map +1 -0
  56. package/dist/auth/auth.schema.json +106 -0
  57. package/dist/auth/auth.service.d.ts +8 -1
  58. package/dist/auth/auth.service.d.ts.map +1 -1
  59. package/dist/auth/auth.service.js +23 -10
  60. package/dist/auth/auth.service.js.map +1 -1
  61. package/dist/chat/chat.service.d.ts.map +1 -1
  62. package/dist/chat/chat.service.js +60 -68
  63. package/dist/chat/chat.service.js.map +1 -1
  64. package/dist/circles/circle.model.d.ts +25 -0
  65. package/dist/circles/circle.model.d.ts.map +1 -0
  66. package/dist/circles/circle.model.js +3 -0
  67. package/dist/circles/circle.model.js.map +1 -0
  68. package/dist/circles/circle.schema.json +332 -0
  69. package/dist/circles/circle.service.d.ts +14 -0
  70. package/dist/circles/circle.service.d.ts.map +1 -0
  71. package/dist/circles/circle.service.js +50 -0
  72. package/dist/circles/circle.service.js.map +1 -0
  73. package/dist/communities/community.model.d.ts +72 -0
  74. package/dist/communities/community.model.d.ts.map +1 -0
  75. package/dist/communities/community.model.js +3 -0
  76. package/dist/communities/community.model.js.map +1 -0
  77. package/dist/communities/community.service.d.ts +26 -0
  78. package/dist/communities/community.service.d.ts.map +1 -0
  79. package/dist/communities/community.service.js +140 -0
  80. package/dist/communities/community.service.js.map +1 -0
  81. package/dist/contacts/contact.model.d.ts +97 -0
  82. package/dist/contacts/contact.model.d.ts.map +1 -0
  83. package/dist/contacts/contact.model.js +3 -0
  84. package/dist/contacts/contact.model.js.map +1 -0
  85. package/dist/contacts/contact.schema.json +312 -0
  86. package/dist/contacts/contact.service.d.ts +28 -0
  87. package/dist/contacts/contact.service.d.ts.map +1 -0
  88. package/dist/contacts/contact.service.js +109 -0
  89. package/dist/contacts/contact.service.js.map +1 -0
  90. package/dist/core/api-diagnostics.d.ts +91 -0
  91. package/dist/core/api-diagnostics.d.ts.map +1 -0
  92. package/dist/core/api-diagnostics.js +211 -0
  93. package/dist/core/api-diagnostics.js.map +1 -0
  94. package/dist/core/configuration.d.ts +12 -0
  95. package/dist/core/configuration.d.ts.map +1 -1
  96. package/dist/core/error-handler.d.ts +5 -1
  97. package/dist/core/error-handler.d.ts.map +1 -1
  98. package/dist/core/error-handler.js +45 -21
  99. package/dist/core/error-handler.js.map +1 -1
  100. package/dist/core/http-client.d.ts +33 -6
  101. package/dist/core/http-client.d.ts.map +1 -1
  102. package/dist/core/http-client.js +193 -31
  103. package/dist/core/http-client.js.map +1 -1
  104. package/dist/core/node-cookie-jar.d.ts +14 -0
  105. package/dist/core/node-cookie-jar.d.ts.map +1 -0
  106. package/dist/core/node-cookie-jar.js +58 -0
  107. package/dist/core/node-cookie-jar.js.map +1 -0
  108. package/dist/core/request-scheduler.d.ts +56 -0
  109. package/dist/core/request-scheduler.d.ts.map +1 -0
  110. package/dist/core/request-scheduler.js +176 -0
  111. package/dist/core/request-scheduler.js.map +1 -0
  112. package/dist/core/resilience.d.ts +10 -0
  113. package/dist/core/resilience.d.ts.map +1 -1
  114. package/dist/core/resilience.js +27 -0
  115. package/dist/core/resilience.js.map +1 -1
  116. package/dist/ecosystem/organization.model.d.ts +4 -4
  117. package/dist/ecosystem/organization.model.d.ts.map +1 -1
  118. package/dist/errors/error-codes.d.ts +3 -1
  119. package/dist/errors/error-codes.d.ts.map +1 -1
  120. package/dist/errors/error-codes.js +2 -0
  121. package/dist/errors/error-codes.js.map +1 -1
  122. package/dist/events/event-edition.model.d.ts +5 -0
  123. package/dist/events/event-edition.model.d.ts.map +1 -1
  124. package/dist/events/event.model.d.ts +5 -0
  125. package/dist/events/event.model.d.ts.map +1 -1
  126. package/dist/follows/follow.model.d.ts +1 -1
  127. package/dist/follows/follow.model.d.ts.map +1 -1
  128. package/dist/follows/follow.service.d.ts.map +1 -1
  129. package/dist/follows/follow.service.js +1 -0
  130. package/dist/follows/follow.service.js.map +1 -1
  131. package/dist/guilds/guild.model.d.ts +36 -0
  132. package/dist/guilds/guild.model.d.ts.map +1 -1
  133. package/dist/guilds/guild.service.d.ts +7 -1
  134. package/dist/guilds/guild.service.d.ts.map +1 -1
  135. package/dist/guilds/guild.service.js +52 -0
  136. package/dist/guilds/guild.service.js.map +1 -1
  137. package/dist/index.d.ts +50 -6
  138. package/dist/index.d.ts.map +1 -1
  139. package/dist/index.js +70 -4
  140. package/dist/index.js.map +1 -1
  141. package/dist/memberships/membership.model.d.ts +34 -0
  142. package/dist/memberships/membership.model.d.ts.map +1 -0
  143. package/dist/memberships/membership.model.js +3 -0
  144. package/dist/memberships/membership.model.js.map +1 -0
  145. package/dist/memberships/membership.service.d.ts +22 -0
  146. package/dist/memberships/membership.service.d.ts.map +1 -0
  147. package/dist/memberships/membership.service.js +111 -0
  148. package/dist/memberships/membership.service.js.map +1 -0
  149. package/dist/missions/mission.model.d.ts +4 -4
  150. package/dist/missions/mission.model.d.ts.map +1 -1
  151. package/dist/missions/mission.schema.json +204 -0
  152. package/dist/missions/mission.service.d.ts +2 -2
  153. package/dist/missions/mission.service.d.ts.map +1 -1
  154. package/dist/missions/mission.service.js.map +1 -1
  155. package/dist/models/chat.model.d.ts +11 -1
  156. package/dist/models/chat.model.d.ts.map +1 -1
  157. package/dist/models/chat.model.js +4 -0
  158. package/dist/models/chat.model.js.map +1 -1
  159. package/dist/notifications/notification.service.d.ts.map +1 -1
  160. package/dist/notifications/notification.service.js +10 -2
  161. package/dist/notifications/notification.service.js.map +1 -1
  162. package/dist/profiles/person.model.d.ts +26 -26
  163. package/dist/profiles/person.model.d.ts.map +1 -1
  164. package/dist/profiles/profile.schema.json +269 -0
  165. package/dist/project/schemas.js +2 -1
  166. package/dist/project/schemas.js.map +1 -1
  167. package/dist/projects/project.service.d.ts +1 -1
  168. package/dist/projects/project.service.d.ts.map +1 -1
  169. package/dist/projects/project.service.js +2 -2
  170. package/dist/projects/project.service.js.map +1 -1
  171. package/dist/rewards/reward.model.d.ts +2 -2
  172. package/dist/rewards/reward.model.d.ts.map +1 -1
  173. package/dist/rewards/reward.service.d.ts +9 -0
  174. package/dist/rewards/reward.service.d.ts.map +1 -1
  175. package/dist/rewards/reward.service.js +32 -0
  176. package/dist/rewards/reward.service.js.map +1 -1
  177. package/dist/support/support.model.d.ts +6 -0
  178. package/dist/support/support.model.d.ts.map +1 -0
  179. package/dist/support/support.model.js +3 -0
  180. package/dist/support/support.model.js.map +1 -0
  181. package/dist/support/support.schema.json +25 -0
  182. package/dist/support/support.service.d.ts +11 -0
  183. package/dist/support/support.service.d.ts.map +1 -0
  184. package/dist/support/support.service.js +22 -0
  185. package/dist/support/support.service.js.map +1 -0
  186. package/dist/tasks/schemas.js +4 -3
  187. package/dist/tasks/schemas.js.map +1 -1
  188. package/dist/tasks/task.model.d.ts +40 -15
  189. package/dist/tasks/task.model.d.ts.map +1 -1
  190. package/dist/tasks/task.model.js +1 -1
  191. package/dist/tasks/task.model.js.map +1 -1
  192. package/dist/tasks/task.schema.json +780 -0
  193. package/dist/tasks/task.service.d.ts +108 -9
  194. package/dist/tasks/task.service.d.ts.map +1 -1
  195. package/dist/tasks/task.service.js +184 -47
  196. package/dist/tasks/task.service.js.map +1 -1
  197. package/dist/timezone/time.helper.d.ts +9 -0
  198. package/dist/timezone/time.helper.d.ts.map +1 -1
  199. package/dist/timezone/time.helper.js +31 -2
  200. package/dist/timezone/time.helper.js.map +1 -1
  201. package/dist/users/user.model.d.ts +2 -1
  202. package/dist/users/user.model.d.ts.map +1 -1
  203. package/dist/users/user.model.js.map +1 -1
  204. package/dist/users/user.schema.json +429 -0
  205. package/dist/users/user.service.d.ts +2 -2
  206. package/dist/users/user.service.d.ts.map +1 -1
  207. package/dist/users/user.service.js +29 -35
  208. package/dist/users/user.service.js.map +1 -1
  209. package/dist/utils/validation.utils.d.ts +0 -4
  210. package/dist/utils/validation.utils.d.ts.map +1 -1
  211. package/dist/utils/validation.utils.js +1 -11
  212. package/dist/utils/validation.utils.js.map +1 -1
  213. package/dist/wallet/wallet.model.d.ts +5 -0
  214. package/dist/wallet/wallet.model.d.ts.map +1 -1
  215. package/dist/wallet/wallet.service.d.ts +2 -1
  216. package/dist/wallet/wallet.service.d.ts.map +1 -1
  217. package/dist/wallet/wallet.service.js +9 -0
  218. package/dist/wallet/wallet.service.js.map +1 -1
  219. package/package.json +19 -6
@@ -0,0 +1,211 @@
1
+ "use strict";
2
+ /**
3
+ * Structured API failure diagnostics for BiomeSDK HTTP calls.
4
+ * Used by BiomeHttpClient to classify failures and surface them to consumers
5
+ * (e.g. Angular FE) via a CustomEvent + console logging.
6
+ */
7
+ Object.defineProperty(exports, "__esModule", { value: true });
8
+ exports.BIOME_API_ERROR_EVENT = void 0;
9
+ exports.extractRateLimitInfo = extractRateLimitInfo;
10
+ exports.classifyApiFailure = classifyApiFailure;
11
+ exports.buildApiFailureDiagnostic = buildApiFailureDiagnostic;
12
+ exports.reportApiFailure = reportApiFailure;
13
+ exports.failureKindToErrorCode = failureKindToErrorCode;
14
+ exports.userMessageForTransportFailure = userMessageForTransportFailure;
15
+ exports.BIOME_API_ERROR_EVENT = "biome:api-error";
16
+ function headerValue(headers, name) {
17
+ if (!headers)
18
+ return undefined;
19
+ const lower = name.toLowerCase();
20
+ for (const [key, value] of Object.entries(headers)) {
21
+ if (key.toLowerCase() === lower) {
22
+ if (Array.isArray(value))
23
+ return value[0] != null ? String(value[0]) : undefined;
24
+ if (value == null)
25
+ return undefined;
26
+ return String(value);
27
+ }
28
+ }
29
+ return undefined;
30
+ }
31
+ function parsePositiveInt(value) {
32
+ if (value == null || value === "")
33
+ return undefined;
34
+ const n = parseInt(value, 10);
35
+ return Number.isFinite(n) && n >= 0 ? n : undefined;
36
+ }
37
+ /**
38
+ * Extract rate-limit metadata from standard RateLimit-* / Retry-After headers
39
+ * and optional JSON body fields.
40
+ */
41
+ function extractRateLimitInfo(error) {
42
+ const headers = error.response?.headers;
43
+ const body = error.response?.data;
44
+ const limit = parsePositiveInt(headerValue(headers, "ratelimit-limit")) ??
45
+ parsePositiveInt(headerValue(headers, "x-ratelimit-limit"));
46
+ const remaining = parsePositiveInt(headerValue(headers, "ratelimit-remaining")) ??
47
+ parsePositiveInt(headerValue(headers, "x-ratelimit-remaining"));
48
+ const resetRaw = headerValue(headers, "ratelimit-reset") ??
49
+ headerValue(headers, "x-ratelimit-reset");
50
+ const retryAfterHeader = parsePositiveInt(headerValue(headers, "retry-after"));
51
+ const bodyRetryAfter = body?.payload?.retryAfter ??
52
+ body?.payload?.data?.retryAfter ??
53
+ body?.data?.retryAfter;
54
+ const retryAfterSeconds = retryAfterHeader ??
55
+ (typeof bodyRetryAfter === "number" && bodyRetryAfter >= 0
56
+ ? bodyRetryAfter
57
+ : undefined);
58
+ let reset;
59
+ if (resetRaw) {
60
+ // IETF draft RateLimit-Reset can be unix seconds or seconds-until-reset depending on server
61
+ const asNum = parsePositiveInt(resetRaw);
62
+ if (asNum != null) {
63
+ // Prefer absolute epoch if it looks like one (> year 2001 in seconds)
64
+ reset =
65
+ asNum > 1000000000
66
+ ? new Date(asNum * 1000).toISOString()
67
+ : new Date(Date.now() + asNum * 1000).toISOString();
68
+ }
69
+ else {
70
+ reset = resetRaw;
71
+ }
72
+ }
73
+ if (limit == null &&
74
+ remaining == null &&
75
+ reset == null &&
76
+ retryAfterSeconds == null) {
77
+ return undefined;
78
+ }
79
+ return { limit, remaining, reset, retryAfterSeconds };
80
+ }
81
+ /**
82
+ * Classify an HTTP client failure for diagnostics and UX.
83
+ */
84
+ function classifyApiFailure(error) {
85
+ const status = error.response?.status;
86
+ const code = (error.code || "").toUpperCase();
87
+ const message = (error.message || "").toLowerCase();
88
+ if (status === 429) {
89
+ return "rate_limited";
90
+ }
91
+ // Client-side RequestScheduler wait exceeded — request never left the browser.
92
+ // Distinct from transport timeout (axios timeout after the socket was opened).
93
+ if (error.isQueueTimeout === true ||
94
+ code === "ERR_QUEUE_TIMEOUT" ||
95
+ message.includes("request queue wait timed out")) {
96
+ return "queue_timeout";
97
+ }
98
+ if (!error.response) {
99
+ if (code === "ECONNABORTED" ||
100
+ code === "ETIMEDOUT" ||
101
+ message.includes("timeout")) {
102
+ return "timeout";
103
+ }
104
+ if (code === "ERR_NETWORK" ||
105
+ code === "ECONNREFUSED" ||
106
+ code === "ENOTFOUND" ||
107
+ message.includes("network error")) {
108
+ return "network";
109
+ }
110
+ return "unknown";
111
+ }
112
+ if (status != null && status > 0) {
113
+ return "http_error";
114
+ }
115
+ return "unknown";
116
+ }
117
+ function truncateMessage(msg, max = 200) {
118
+ if (!msg)
119
+ return undefined;
120
+ const cleaned = msg.replace(/\s+/g, " ").trim();
121
+ if (cleaned.length <= max)
122
+ return cleaned;
123
+ return `${cleaned.slice(0, max)}…`;
124
+ }
125
+ /**
126
+ * Build a structured diagnostic payload from an axios-like error.
127
+ */
128
+ function buildApiFailureDiagnostic(error, elapsedMs) {
129
+ const kind = classifyApiFailure(error);
130
+ const start = error.config?._startTime;
131
+ const computedElapsed = elapsedMs ?? (typeof start === "number" ? Date.now() - start : 0);
132
+ const data = error.response?.data;
133
+ const message = truncateMessage(data?.payload?.message || data?.message || error.message);
134
+ const rateLimit = extractRateLimitInfo(error);
135
+ return {
136
+ tag: "[BiomeSDK]",
137
+ kind,
138
+ method: error.config?.method?.toUpperCase(),
139
+ url: error.config?.url,
140
+ status: error.response?.status,
141
+ code: error.code,
142
+ elapsedMs: computedElapsed,
143
+ timeoutMs: error.config?.timeout ?? error.maxWaitMs,
144
+ message,
145
+ rateLimit,
146
+ scheduler: error.scheduler,
147
+ requestPriority: error.priority ?? error.config?.biomePriority,
148
+ timestamp: new Date().toISOString(),
149
+ };
150
+ }
151
+ /**
152
+ * Log a failure diagnostic and dispatch `biome:api-error` for FE consumers.
153
+ */
154
+ function reportApiFailure(error, elapsedMs) {
155
+ const diagnostic = buildApiFailureDiagnostic(error, elapsedMs);
156
+ // Structured console log — easy to filter in browser DevTools
157
+ // eslint-disable-next-line no-console
158
+ console.error("[BiomeSDK] request failed", diagnostic);
159
+ if (typeof window !== "undefined" && typeof CustomEvent !== "undefined") {
160
+ try {
161
+ window.dispatchEvent(new CustomEvent(exports.BIOME_API_ERROR_EVENT, { detail: diagnostic }));
162
+ }
163
+ catch {
164
+ // Ignore environments where CustomEvent dispatch fails
165
+ }
166
+ }
167
+ return diagnostic;
168
+ }
169
+ /**
170
+ * Map failure kind to stable SDK error codes used in BiomeSdkError.code.
171
+ */
172
+ function failureKindToErrorCode(kind) {
173
+ switch (kind) {
174
+ case "timeout":
175
+ return "TIMEOUT";
176
+ case "queue_timeout":
177
+ return "QUEUE_TIMEOUT";
178
+ case "network":
179
+ return "NETWORK_ERROR";
180
+ case "rate_limited":
181
+ return "RATE_LIMITED";
182
+ default:
183
+ return undefined;
184
+ }
185
+ }
186
+ /**
187
+ * User-facing message for timeout / network when the server did not respond.
188
+ */
189
+ function userMessageForTransportFailure(kind, retryAfterSeconds) {
190
+ if (kind === "timeout") {
191
+ return "The request timed out before the server responded. Please try again.";
192
+ }
193
+ if (kind === "queue_timeout") {
194
+ return "Too many requests are in flight. Please wait a moment and try again.";
195
+ }
196
+ if (kind === "network") {
197
+ return "Network error. Check your connection and try again.";
198
+ }
199
+ if (kind === "rate_limited") {
200
+ if (retryAfterSeconds != null && retryAfterSeconds > 0) {
201
+ const minutes = Math.ceil(retryAfterSeconds / 60);
202
+ if (retryAfterSeconds >= 60) {
203
+ return `Too many requests. Please wait about ${minutes} minute${minutes === 1 ? "" : "s"} and try again.`;
204
+ }
205
+ return `Too many requests. Please wait ${retryAfterSeconds} second${retryAfterSeconds === 1 ? "" : "s"} and try again.`;
206
+ }
207
+ return "Too many requests. Please wait a moment and try again.";
208
+ }
209
+ return undefined;
210
+ }
211
+ //# sourceMappingURL=api-diagnostics.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"api-diagnostics.js","sourceRoot":"","sources":["../../src/core/api-diagnostics.ts"],"names":[],"mappings":"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"}
@@ -6,6 +6,12 @@ export interface BiomeConfig {
6
6
  apiBaseUrl: string;
7
7
  /** Request timeout in milliseconds (default: 30000) */
8
8
  timeout?: number;
9
+ /**
10
+ * Max concurrent in-flight XHRs via BiomeHttpClient (default: 4).
11
+ * Leave headroom under the browser's ~6 connections/origin for chat SSE
12
+ * and Angular HttpClient traffic that shares the same origin.
13
+ */
14
+ maxConcurrentRequests?: number;
9
15
  /** Authentication token for API requests */
10
16
  authToken?: string;
11
17
  /** Additional HTTP headers */
@@ -13,6 +19,12 @@ export interface BiomeConfig {
13
19
  /** HTTP configuration */
14
20
  http?: {
15
21
  withCredentials?: boolean;
22
+ /**
23
+ * Persist `Set-Cookie` on the axios instance (JWT + CSRF).
24
+ * Defaults to true when `document` is undefined (Node). Browsers keep
25
+ * using `document.cookie` / `withCredentials`.
26
+ */
27
+ useNodeCookieJar?: boolean;
16
28
  interceptors?: {
17
29
  credentials?: boolean;
18
30
  taskNotificationRefresh?: {
@@ -1 +1 @@
1
- {"version":3,"file":"configuration.d.ts","sourceRoot":"","sources":["../../src/core/configuration.ts"],"names":[],"mappings":"AAAA;;GAEG;AACH,MAAM,WAAW,WAAW;IACxB,gCAAgC;IAChC,UAAU,EAAE,MAAM,CAAC;IACnB,uDAAuD;IACvD,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,4CAA4C;IAC5C,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,8BAA8B;IAC9B,OAAO,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IACjC,yBAAyB;IACzB,IAAI,CAAC,EAAE;QACH,eAAe,CAAC,EAAE,OAAO,CAAC;QAC1B,YAAY,CAAC,EAAE;YACX,WAAW,CAAC,EAAE,OAAO,CAAC;YACtB,uBAAuB,CAAC,EAAE;gBACtB,gBAAgB,CAAC,EAAE,MAAM,CAAC;gBAC1B,WAAW,CAAC,EAAE,MAAM,CAAC;gBACrB,UAAU,CAAC,EAAE,MAAM,EAAE,CAAC;aACzB,CAAC;SACL,CAAC;KACL,CAAC;IACF,oCAAoC;IACpC,IAAI,CAAC,EAAE;QACH,6CAA6C;QAC7C,OAAO,CAAC,EAAE,OAAO,CAAC;QAClB,+CAA+C;QAC/C,QAAQ,CAAC,EAAE,MAAM,CAAC;QAClB,kEAAkE;QAClE,UAAU,CAAC,EAAE,MAAM,CAAC;QACpB,kEAAkE;QAClE,UAAU,CAAC,EAAE,MAAM,CAAC;KACvB,CAAC;CACL"}
1
+ {"version":3,"file":"configuration.d.ts","sourceRoot":"","sources":["../../src/core/configuration.ts"],"names":[],"mappings":"AAAA;;GAEG;AACH,MAAM,WAAW,WAAW;IACxB,gCAAgC;IAChC,UAAU,EAAE,MAAM,CAAC;IACnB,uDAAuD;IACvD,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB;;;;OAIG;IACH,qBAAqB,CAAC,EAAE,MAAM,CAAC;IAC/B,4CAA4C;IAC5C,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,8BAA8B;IAC9B,OAAO,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IACjC,yBAAyB;IACzB,IAAI,CAAC,EAAE;QACH,eAAe,CAAC,EAAE,OAAO,CAAC;QAC1B;;;;WAIG;QACH,gBAAgB,CAAC,EAAE,OAAO,CAAC;QAC3B,YAAY,CAAC,EAAE;YACX,WAAW,CAAC,EAAE,OAAO,CAAC;YACtB,uBAAuB,CAAC,EAAE;gBACtB,gBAAgB,CAAC,EAAE,MAAM,CAAC;gBAC1B,WAAW,CAAC,EAAE,MAAM,CAAC;gBACrB,UAAU,CAAC,EAAE,MAAM,EAAE,CAAC;aACzB,CAAC;SACL,CAAC;KACL,CAAC;IACF,oCAAoC;IACpC,IAAI,CAAC,EAAE;QACH,6CAA6C;QAC7C,OAAO,CAAC,EAAE,OAAO,CAAC;QAClB,+CAA+C;QAC/C,QAAQ,CAAC,EAAE,MAAM,CAAC;QAClB,kEAAkE;QAClE,UAAU,CAAC,EAAE,MAAM,CAAC;QACpB,kEAAkE;QAClE,UAAU,CAAC,EAAE,MAAM,CAAC;KACvB,CAAC;CACL"}
@@ -11,8 +11,12 @@ export interface BiomeSdkError extends Error {
11
11
  userMessage?: string;
12
12
  /** Technical error details */
13
13
  technicalDetails?: string;
14
- /** Error code from API (e.g., 'EMAIL_NOT_CONFIRMED', 'ACCOUNT_LOCKED') */
14
+ /** Error code from API (e.g., 'EMAIL_NOT_CONFIRMED', 'ACCOUNT_LOCKED', 'TIMEOUT', 'RATE_LIMITED') */
15
15
  code?: string;
16
+ /** Seconds until retry is allowed (rate limits / circuit breakers) */
17
+ retryAfter?: number;
18
+ /** Failure kind when classifiable (timeout, rate_limited, network, http_error, unknown) */
19
+ kind?: string;
16
20
  /** Timestamp when error occurred */
17
21
  timestamp: string;
18
22
  /** Original error */
@@ -1 +1 @@
1
- {"version":3,"file":"error-handler.d.ts","sourceRoot":"","sources":["../../src/core/error-handler.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,2BAA2B,EAAE,iBAAiB,EAAE,MAAM,8BAA8B,CAAC;AAE9F;;GAEG;AACH,MAAM,WAAW,aAAc,SAAQ,KAAK;IAC1C,uBAAuB;IACvB,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,0BAA0B;IAC1B,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,kCAAkC;IAClC,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,8BAA8B;IAC9B,gBAAgB,CAAC,EAAE,MAAM,CAAC;IAC1B,0EAA0E;IAC1E,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,oCAAoC;IACpC,SAAS,EAAE,MAAM,CAAC;IAClB,qBAAqB;IACrB,aAAa,CAAC,EAAE,OAAO,CAAC;IACxB,gDAAgD;IAChD,kBAAkB,CAAC,EAAE,iBAAiB,EAAE,CAAC;CAC1C;AAED;;;GAGG;AACH,wBAAgB,cAAc,CAC5B,KAAK,EAAE,OAAO,EACd,OAAO,CAAC,EAAE,MAAM,GACf,aAAa,GAAG,2BAA2B,CA6E7C"}
1
+ {"version":3,"file":"error-handler.d.ts","sourceRoot":"","sources":["../../src/core/error-handler.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,2BAA2B,EAAE,iBAAiB,EAAE,MAAM,8BAA8B,CAAC;AAQ9F;;GAEG;AACH,MAAM,WAAW,aAAc,SAAQ,KAAK;IAC1C,uBAAuB;IACvB,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,0BAA0B;IAC1B,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,kCAAkC;IAClC,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,8BAA8B;IAC9B,gBAAgB,CAAC,EAAE,MAAM,CAAC;IAC1B,qGAAqG;IACrG,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,sEAAsE;IACtE,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,2FAA2F;IAC3F,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,oCAAoC;IACpC,SAAS,EAAE,MAAM,CAAC;IAClB,qBAAqB;IACrB,aAAa,CAAC,EAAE,OAAO,CAAC;IACxB,gDAAgD;IAChD,kBAAkB,CAAC,EAAE,iBAAiB,EAAE,CAAC;CAC1C;AAWD;;;GAGG;AACH,wBAAgB,cAAc,CAC5B,KAAK,EAAE,OAAO,EACd,OAAO,CAAC,EAAE,MAAM,GACf,aAAa,GAAG,2BAA2B,CAgG7C"}
@@ -3,6 +3,15 @@ Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.createSdkError = createSdkError;
4
4
  const axios_1 = require("axios");
5
5
  const prerequisite_error_1 = require("../errors/prerequisite-error");
6
+ const api_diagnostics_1 = require("./api-diagnostics");
7
+ /**
8
+ * Builds a genuine `Error` instance carrying the `BiomeSdkError` fields, so
9
+ * `error instanceof Error` checks at call sites succeed instead of always
10
+ * falling through to a generic fallback message.
11
+ */
12
+ function buildSdkError(message, fields) {
13
+ return Object.assign(new Error(message), { name: "BiomeSdkError", ...fields });
14
+ }
6
15
  /**
7
16
  * Create standardized error object
8
17
  * May return BiomeSdkError or PrerequisiteValidationError for specific conflict cases
@@ -23,62 +32,75 @@ function createSdkError(error, context) {
23
32
  const message = payload.message || getUserFriendlyErrorMessage(status, errorData);
24
33
  return new prerequisite_error_1.PrerequisiteValidationError(message, payload.unmetPrerequisites);
25
34
  }
26
- return {
27
- name: "BiomeSdkError",
28
- message: error.message,
35
+ const kind = (0, api_diagnostics_1.classifyApiFailure)(error);
36
+ const rateLimit = (0, api_diagnostics_1.extractRateLimitInfo)(error);
37
+ const retryAfter = rateLimit?.retryAfterSeconds ??
38
+ (typeof payload?.retryAfter === "number" ? payload.retryAfter : undefined) ??
39
+ (typeof errorData?.data?.retryAfter === "number"
40
+ ? errorData.data.retryAfter
41
+ : undefined);
42
+ const transportMessage = (0, api_diagnostics_1.userMessageForTransportFailure)(kind, retryAfter);
43
+ const statusMessage = getUserFriendlyErrorMessage(status, errorData, retryAfter);
44
+ const userMessage = kind === "timeout" || kind === "network"
45
+ ? transportMessage || statusMessage
46
+ : kind === "rate_limited"
47
+ ? transportMessage || statusMessage
48
+ : statusMessage;
49
+ const kindCode = (0, api_diagnostics_1.failureKindToErrorCode)(kind);
50
+ const code = kindCode ||
51
+ errorData?.code ||
52
+ payload?.type ||
53
+ error.code;
54
+ return buildSdkError(error.message, {
29
55
  status,
30
- userMessage: getUserFriendlyErrorMessage(status, errorData),
56
+ userMessage,
31
57
  technicalDetails: errorData?.message || error.message,
32
- code: errorData?.code || payload?.type || error.code,
58
+ code,
59
+ kind,
60
+ retryAfter,
33
61
  type: payload?.type || errorData?.type,
34
62
  timestamp,
35
63
  originalError: error,
36
64
  unmetPrerequisites: payload?.unmetPrerequisites,
37
- };
65
+ });
38
66
  }
39
67
  // Pass through PrerequisiteValidationError if already created
40
68
  if (error instanceof prerequisite_error_1.PrerequisiteValidationError) {
41
69
  return error;
42
70
  }
43
71
  if (error instanceof Error) {
44
- return {
45
- name: "BiomeSdkError",
46
- message: error.message,
72
+ return buildSdkError(error.message, {
47
73
  userMessage: context ? `${context}: ${error.message}` : error.message,
48
74
  technicalDetails: error.message,
49
75
  timestamp,
50
76
  originalError: error,
51
- };
77
+ });
52
78
  }
53
79
  // Handle cases where error might be null, undefined, or not an object
54
80
  if (!error || typeof error !== "object") {
55
- return {
56
- name: "BiomeSdkError",
57
- message: "Unknown error occurred",
81
+ return buildSdkError("Unknown error occurred", {
58
82
  userMessage: context
59
83
  ? `${context}: An unexpected error occurred`
60
84
  : "An unexpected error occurred",
61
85
  technicalDetails: "Invalid error object received",
62
86
  timestamp,
63
87
  originalError: error,
64
- };
88
+ });
65
89
  }
66
- return {
67
- name: "BiomeSdkError",
68
- message: "Unknown error occurred",
90
+ return buildSdkError("Unknown error occurred", {
69
91
  userMessage: context
70
92
  ? `${context}: An unexpected error occurred`
71
93
  : "An unexpected error occurred",
72
94
  technicalDetails: "Unknown error",
73
95
  timestamp,
74
96
  originalError: error,
75
- };
97
+ });
76
98
  }
77
99
  /**
78
100
  * Get user-friendly error message based on HTTP status
79
101
  */
80
102
  // eslint-disable-next-line @typescript-eslint/no-explicit-any
81
- function getUserFriendlyErrorMessage(status, errorData) {
103
+ function getUserFriendlyErrorMessage(status, errorData, retryAfterSeconds) {
82
104
  // Handle nested error structure (common in some APIs)
83
105
  const nestedError = errorData?.error;
84
106
  const directMessage = errorData?.message;
@@ -144,8 +166,10 @@ function getUserFriendlyErrorMessage(status, errorData) {
144
166
  directMessage ||
145
167
  nestedMessage ||
146
168
  "The submitted data is invalid. Please check your input.");
147
- case 429:
148
- return payloadMessage || "Too many requests. Please wait a moment and try again.";
169
+ case 429: {
170
+ const rateLimited = (0, api_diagnostics_1.userMessageForTransportFailure)("rate_limited", retryAfterSeconds);
171
+ return payloadMessage || rateLimited || "Too many requests. Please wait a moment and try again.";
172
+ }
149
173
  case 500:
150
174
  case 502:
151
175
  case 503:
@@ -1 +1 @@
1
- {"version":3,"file":"error-handler.js","sourceRoot":"","sources":["../../src/core/error-handler.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"error-handler.js","sourceRoot":"","sources":["../../src/core/error-handler.ts"],"names":[],"mappings":"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"}
@@ -1,13 +1,29 @@
1
1
  import { AxiosRequestConfig } from "axios";
2
2
  import { BiomeConfig } from "./configuration";
3
+ import { RequestPriority } from "./request-scheduler";
4
+ /** Extended axios config for Biome request scheduling. */
5
+ export interface BiomeRequestConfig extends AxiosRequestConfig {
6
+ /** Scheduling priority (default normal). Mutations should use high; background polls low. */
7
+ biomePriority?: RequestPriority;
8
+ /** Max ms to wait in the client queue before failing (default 30s; low priority often shorter). */
9
+ biomeQueueWaitMs?: number;
10
+ /** Internal: slot was acquired from RequestScheduler */
11
+ _biomeSlotHeld?: boolean;
12
+ }
3
13
  /**
4
14
  * Framework-agnostic HTTP client using Axios
5
15
  */
6
16
  export declare class BiomeHttpClient {
17
+ #private;
7
18
  private config;
8
19
  private readonly axiosInstance;
20
+ private readonly scheduler;
21
+ private readonly nodeCookieJar;
9
22
  private _csrfToken;
10
23
  private _csrfInitialized;
24
+ /** Debounce handle for task → notification badge refresh (mutations only). */
25
+ private _taskNotifRefreshTimer;
26
+ private _taskNotifBroadcast;
11
27
  /**
12
28
  * Get the base URL configured for this client
13
29
  */
@@ -22,7 +38,18 @@ export declare class BiomeHttpClient {
22
38
  */
23
39
  fetchCsrfToken(url: string): Promise<string>;
24
40
  /**
25
- * Get CSRF token from stored value or cookie
41
+ * Get the current CSRF token.
42
+ *
43
+ * Browser context (no node cookie jar): always reads document.cookie live rather than
44
+ * serving a cached value. A cached value would go stale across a same-tab
45
+ * logout->login cycle, since the server rotates the CSRF cookie on login but nothing
46
+ * else would invalidate this client's in-memory copy - the first mutating request
47
+ * after re-login would then send a stale header, get a 403 CSRF_TOKEN_INVALID, and be
48
+ * misread as "session expired" even though the new session is perfectly valid.
49
+ *
50
+ * Node cookie jar context: no live document.cookie to read (or the caller explicitly
51
+ * opted into the node cookie jar via config), so the value ingested by
52
+ * #ingestCookies() from the most recent Set-Cookie response header is served instead.
26
53
  */
27
54
  getCsrfToken(): string | null;
28
55
  /**
@@ -40,23 +67,23 @@ export declare class BiomeHttpClient {
40
67
  /**
41
68
  * Perform GET request
42
69
  */
43
- get<T>(url: string, config?: AxiosRequestConfig): Promise<T>;
70
+ get<T>(url: string, config?: BiomeRequestConfig): Promise<T>;
44
71
  /**
45
72
  * Perform POST request
46
73
  */
47
- post<T>(url: string, data?: unknown, config?: AxiosRequestConfig): Promise<T>;
74
+ post<T>(url: string, data?: unknown, config?: BiomeRequestConfig): Promise<T>;
48
75
  /**
49
76
  * Perform PUT request
50
77
  */
51
- put<T>(url: string, data?: unknown, config?: AxiosRequestConfig): Promise<T>;
78
+ put<T>(url: string, data?: unknown, config?: BiomeRequestConfig): Promise<T>;
52
79
  /**
53
80
  * Perform PATCH request
54
81
  */
55
- patch<T>(url: string, data?: unknown, config?: AxiosRequestConfig): Promise<T>;
82
+ patch<T>(url: string, data?: unknown, config?: BiomeRequestConfig): Promise<T>;
56
83
  /**
57
84
  * Perform DELETE request
58
85
  */
59
- delete<T = void>(url: string, config?: AxiosRequestConfig): Promise<T>;
86
+ delete<T = void>(url: string, config?: BiomeRequestConfig): Promise<T>;
60
87
  /**
61
88
  * Set authentication token for subsequent requests
62
89
  */
@@ -1 +1 @@
1
- {"version":3,"file":"http-client.d.ts","sourceRoot":"","sources":["../../src/core/http-client.ts"],"names":[],"mappings":"AAAA,OAAc,EAAiB,kBAAkB,EAAE,MAAM,OAAO,CAAC;AACjE,OAAO,EAAE,WAAW,EAAE,MAAM,iBAAiB,CAAC;AAM9C;;GAEG;AACH,qBAAa,eAAe;IAYd,OAAO,CAAC,MAAM;IAX1B,OAAO,CAAC,QAAQ,CAAC,aAAa,CAAgB;IAC9C,OAAO,CAAC,UAAU,CAAuB;IACzC,OAAO,CAAC,gBAAgB,CAAS;IAEjC;;OAEG;IACH,IAAI,OAAO,IAAI,MAAM,CAEpB;gBAEmB,MAAM,EAAE,WAAW;IAcvC;;OAEG;YACW,QAAQ;IAYtB;;OAEG;IACG,cAAc,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC;IAalD;;OAEG;IACH,YAAY,IAAI,MAAM,GAAG,IAAI;IA0B7B;;OAEG;IACH,YAAY,CAAC,KAAK,EAAE,MAAM,GAAG,IAAI;IAIjC;;OAEG;IACH,cAAc,IAAI,IAAI;IAItB;;OAEG;IACH,aAAa,IAAI,OAAO;IAIxB;;OAEG;IACG,GAAG,CAAC,CAAC,EAAE,GAAG,EAAE,MAAM,EAAE,MAAM,CAAC,EAAE,kBAAkB,GAAG,OAAO,CAAC,CAAC,CAAC;IAKlE;;OAEG;IACG,IAAI,CAAC,CAAC,EACV,GAAG,EAAE,MAAM,EACX,IAAI,CAAC,EAAE,OAAO,EACd,MAAM,CAAC,EAAE,kBAAkB,GAC1B,OAAO,CAAC,CAAC,CAAC;IAKb;;OAEG;IACG,GAAG,CAAC,CAAC,EACT,GAAG,EAAE,MAAM,EACX,IAAI,CAAC,EAAE,OAAO,EACd,MAAM,CAAC,EAAE,kBAAkB,GAC1B,OAAO,CAAC,CAAC,CAAC;IAKb;;OAEG;IACG,KAAK,CAAC,CAAC,EACX,GAAG,EAAE,MAAM,EACX,IAAI,CAAC,EAAE,OAAO,EACd,MAAM,CAAC,EAAE,kBAAkB,GAC1B,OAAO,CAAC,CAAC,CAAC;IAKb;;OAEG;IACG,MAAM,CAAC,CAAC,GAAG,IAAI,EAAE,GAAG,EAAE,MAAM,EAAE,MAAM,CAAC,EAAE,kBAAkB,GAAG,OAAO,CAAC,CAAC,CAAC;IAK5E;;OAEG;IACH,YAAY,CAAC,KAAK,EAAE,MAAM,GAAG,IAAI;IAMjC;;OAEG;IACH,cAAc,IAAI,IAAI;IAKtB;;OAEG;IACH,OAAO,CAAC,iBAAiB;CA6D1B"}
1
+ {"version":3,"file":"http-client.d.ts","sourceRoot":"","sources":["../../src/core/http-client.ts"],"names":[],"mappings":"AAAA,OAAc,EAAiB,kBAAkB,EAA6C,MAAM,OAAO,CAAC;AAC5G,OAAO,EAAE,WAAW,EAAE,MAAM,iBAAiB,CAAC;AAG9C,OAAO,EAEL,eAAe,EAEhB,MAAM,qBAAqB,CAAC;AAW7B,0DAA0D;AAC1D,MAAM,WAAW,kBAAmB,SAAQ,kBAAkB;IAC5D,6FAA6F;IAC7F,aAAa,CAAC,EAAE,eAAe,CAAC;IAChC,mGAAmG;IACnG,gBAAgB,CAAC,EAAE,MAAM,CAAC;IAC1B,wDAAwD;IACxD,cAAc,CAAC,EAAE,OAAO,CAAC;CAC1B;AAED;;GAEG;AACH,qBAAa,eAAe;;IAiBd,OAAO,CAAC,MAAM;IAhB1B,OAAO,CAAC,QAAQ,CAAC,aAAa,CAAgB;IAC9C,OAAO,CAAC,QAAQ,CAAC,SAAS,CAAmB;IAC7C,OAAO,CAAC,QAAQ,CAAC,aAAa,CAAuB;IACrD,OAAO,CAAC,UAAU,CAAuB;IACzC,OAAO,CAAC,gBAAgB,CAAS;IACjC,8EAA8E;IAC9E,OAAO,CAAC,sBAAsB,CAA8C;IAC5E,OAAO,CAAC,mBAAmB,CAAiC;IAE5D;;OAEG;IACH,IAAI,OAAO,IAAI,MAAM,CAEpB;gBAEmB,MAAM,EAAE,WAAW;IAoFvC;;OAEG;YACW,QAAQ;IAYtB;;OAEG;IACG,cAAc,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC;IAelD;;;;;;;;;;;;;OAaG;IACH,YAAY,IAAI,MAAM,GAAG,IAAI;IAwB7B;;OAEG;IACH,YAAY,CAAC,KAAK,EAAE,MAAM,GAAG,IAAI;IAIjC;;OAEG;IACH,cAAc,IAAI,IAAI;IAItB;;OAEG;IACH,aAAa,IAAI,OAAO;IAIxB;;OAEG;IACG,GAAG,CAAC,CAAC,EAAE,GAAG,EAAE,MAAM,EAAE,MAAM,CAAC,EAAE,kBAAkB,GAAG,OAAO,CAAC,CAAC,CAAC;IAKlE;;OAEG;IACG,IAAI,CAAC,CAAC,EACV,GAAG,EAAE,MAAM,EACX,IAAI,CAAC,EAAE,OAAO,EACd,MAAM,CAAC,EAAE,kBAAkB,GAC1B,OAAO,CAAC,CAAC,CAAC;IAKb;;OAEG;IACG,GAAG,CAAC,CAAC,EACT,GAAG,EAAE,MAAM,EACX,IAAI,CAAC,EAAE,OAAO,EACd,MAAM,CAAC,EAAE,kBAAkB,GAC1B,OAAO,CAAC,CAAC,CAAC;IAKb;;OAEG;IACG,KAAK,CAAC,CAAC,EACX,GAAG,EAAE,MAAM,EACX,IAAI,CAAC,EAAE,OAAO,EACd,MAAM,CAAC,EAAE,kBAAkB,GAC1B,OAAO,CAAC,CAAC,CAAC;IAKb;;OAEG;IACG,MAAM,CAAC,CAAC,GAAG,IAAI,EAAE,GAAG,EAAE,MAAM,EAAE,MAAM,CAAC,EAAE,kBAAkB,GAAG,OAAO,CAAC,CAAC,CAAC;IAyB5E;;OAEG;IACH,YAAY,CAAC,KAAK,EAAE,MAAM,GAAG,IAAI;IAMjC;;OAEG;IACH,cAAc,IAAI,IAAI;IAKtB;;OAEG;IACH,OAAO,CAAC,iBAAiB;CA4I1B"}