@nekutima/biome-sdk 0.19.3 → 0.30.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/admin/admin.model.d.ts +70 -0
- package/dist/admin/admin.model.d.ts.map +1 -1
- package/dist/admin/admin.schema.json +339 -0
- package/dist/admin/admin.service.d.ts +9 -1
- package/dist/admin/admin.service.d.ts.map +1 -1
- package/dist/admin/admin.service.js +79 -4
- package/dist/admin/admin.service.js.map +1 -1
- package/dist/agents/agent-identity.d.ts +19 -0
- package/dist/agents/agent-identity.d.ts.map +1 -0
- package/dist/agents/agent-identity.js +36 -0
- package/dist/agents/agent-identity.js.map +1 -0
- package/dist/agents/agent-resource.d.ts +0 -1
- package/dist/agents/agent-resource.d.ts.map +1 -1
- package/dist/agents/agent.model.d.ts +13 -40
- package/dist/agents/agent.model.d.ts.map +1 -1
- package/dist/agents/agent.service.d.ts +9 -3
- package/dist/agents/agent.service.d.ts.map +1 -1
- package/dist/agents/agent.service.js +37 -8
- package/dist/agents/agent.service.js.map +1 -1
- package/dist/ai/yuri.service.d.ts +39 -5
- package/dist/ai/yuri.service.d.ts.map +1 -1
- package/dist/ai/yuri.service.js +64 -34
- package/dist/ai/yuri.service.js.map +1 -1
- package/dist/alexandria/nugget.model.d.ts +77 -0
- package/dist/alexandria/nugget.model.d.ts.map +1 -0
- package/dist/alexandria/nugget.model.js +7 -0
- package/dist/alexandria/nugget.model.js.map +1 -0
- package/dist/alexandria/nugget.service.d.ts +21 -0
- package/dist/alexandria/nugget.service.d.ts.map +1 -0
- package/dist/alexandria/nugget.service.js +127 -0
- package/dist/alexandria/nugget.service.js.map +1 -0
- package/dist/alexandria/problem.model.d.ts +48 -0
- package/dist/alexandria/problem.model.d.ts.map +1 -0
- package/dist/alexandria/problem.model.js +7 -0
- package/dist/alexandria/problem.model.js.map +1 -0
- package/dist/alexandria/problem.service.d.ts +17 -0
- package/dist/alexandria/problem.service.d.ts.map +1 -0
- package/dist/alexandria/problem.service.js +98 -0
- package/dist/alexandria/problem.service.js.map +1 -0
- package/dist/alexandria/progress.model.d.ts +19 -0
- package/dist/alexandria/progress.model.d.ts.map +1 -0
- package/dist/alexandria/progress.model.js +3 -0
- package/dist/alexandria/progress.model.js.map +1 -0
- package/dist/alexandria/progress.service.d.ts +10 -0
- package/dist/alexandria/progress.service.d.ts.map +1 -0
- package/dist/alexandria/progress.service.js +38 -0
- package/dist/alexandria/progress.service.js.map +1 -0
- package/dist/api-keys/api-key.model.d.ts +30 -0
- package/dist/api-keys/api-key.model.d.ts.map +1 -0
- package/dist/api-keys/api-key.model.js +3 -0
- package/dist/api-keys/api-key.model.js.map +1 -0
- package/dist/api-keys/api-key.service.d.ts +16 -0
- package/dist/api-keys/api-key.service.d.ts.map +1 -0
- package/dist/api-keys/api-key.service.js +34 -0
- package/dist/api-keys/api-key.service.js.map +1 -0
- package/dist/auth/auth.schema.json +106 -0
- package/dist/auth/auth.service.d.ts +8 -1
- package/dist/auth/auth.service.d.ts.map +1 -1
- package/dist/auth/auth.service.js +23 -10
- package/dist/auth/auth.service.js.map +1 -1
- package/dist/chat/chat.service.d.ts.map +1 -1
- package/dist/chat/chat.service.js +60 -68
- package/dist/chat/chat.service.js.map +1 -1
- package/dist/circles/circle.model.d.ts +25 -0
- package/dist/circles/circle.model.d.ts.map +1 -0
- package/dist/circles/circle.model.js +3 -0
- package/dist/circles/circle.model.js.map +1 -0
- package/dist/circles/circle.schema.json +332 -0
- package/dist/circles/circle.service.d.ts +14 -0
- package/dist/circles/circle.service.d.ts.map +1 -0
- package/dist/circles/circle.service.js +50 -0
- package/dist/circles/circle.service.js.map +1 -0
- package/dist/communities/community.model.d.ts +72 -0
- package/dist/communities/community.model.d.ts.map +1 -0
- package/dist/communities/community.model.js +3 -0
- package/dist/communities/community.model.js.map +1 -0
- package/dist/communities/community.service.d.ts +26 -0
- package/dist/communities/community.service.d.ts.map +1 -0
- package/dist/communities/community.service.js +140 -0
- package/dist/communities/community.service.js.map +1 -0
- package/dist/contacts/contact.model.d.ts +97 -0
- package/dist/contacts/contact.model.d.ts.map +1 -0
- package/dist/contacts/contact.model.js +3 -0
- package/dist/contacts/contact.model.js.map +1 -0
- package/dist/contacts/contact.schema.json +312 -0
- package/dist/contacts/contact.service.d.ts +28 -0
- package/dist/contacts/contact.service.d.ts.map +1 -0
- package/dist/contacts/contact.service.js +109 -0
- package/dist/contacts/contact.service.js.map +1 -0
- package/dist/core/api-diagnostics.d.ts +91 -0
- package/dist/core/api-diagnostics.d.ts.map +1 -0
- package/dist/core/api-diagnostics.js +211 -0
- package/dist/core/api-diagnostics.js.map +1 -0
- package/dist/core/configuration.d.ts +12 -0
- package/dist/core/configuration.d.ts.map +1 -1
- package/dist/core/error-handler.d.ts +5 -1
- package/dist/core/error-handler.d.ts.map +1 -1
- package/dist/core/error-handler.js +45 -21
- package/dist/core/error-handler.js.map +1 -1
- package/dist/core/http-client.d.ts +33 -6
- package/dist/core/http-client.d.ts.map +1 -1
- package/dist/core/http-client.js +193 -31
- package/dist/core/http-client.js.map +1 -1
- package/dist/core/node-cookie-jar.d.ts +14 -0
- package/dist/core/node-cookie-jar.d.ts.map +1 -0
- package/dist/core/node-cookie-jar.js +58 -0
- package/dist/core/node-cookie-jar.js.map +1 -0
- package/dist/core/request-scheduler.d.ts +56 -0
- package/dist/core/request-scheduler.d.ts.map +1 -0
- package/dist/core/request-scheduler.js +176 -0
- package/dist/core/request-scheduler.js.map +1 -0
- package/dist/core/resilience.d.ts +10 -0
- package/dist/core/resilience.d.ts.map +1 -1
- package/dist/core/resilience.js +27 -0
- package/dist/core/resilience.js.map +1 -1
- package/dist/ecosystem/organization.model.d.ts +4 -4
- package/dist/ecosystem/organization.model.d.ts.map +1 -1
- package/dist/errors/error-codes.d.ts +3 -1
- package/dist/errors/error-codes.d.ts.map +1 -1
- package/dist/errors/error-codes.js +2 -0
- package/dist/errors/error-codes.js.map +1 -1
- package/dist/events/event-edition.model.d.ts +5 -0
- package/dist/events/event-edition.model.d.ts.map +1 -1
- package/dist/events/event.model.d.ts +5 -0
- package/dist/events/event.model.d.ts.map +1 -1
- package/dist/follows/follow.model.d.ts +1 -1
- package/dist/follows/follow.model.d.ts.map +1 -1
- package/dist/follows/follow.service.d.ts.map +1 -1
- package/dist/follows/follow.service.js +1 -0
- package/dist/follows/follow.service.js.map +1 -1
- package/dist/guilds/guild.model.d.ts +36 -0
- package/dist/guilds/guild.model.d.ts.map +1 -1
- package/dist/guilds/guild.service.d.ts +7 -1
- package/dist/guilds/guild.service.d.ts.map +1 -1
- package/dist/guilds/guild.service.js +52 -0
- package/dist/guilds/guild.service.js.map +1 -1
- package/dist/index.d.ts +54 -6
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +74 -4
- package/dist/index.js.map +1 -1
- package/dist/memberships/membership.model.d.ts +34 -0
- package/dist/memberships/membership.model.d.ts.map +1 -0
- package/dist/memberships/membership.model.js +3 -0
- package/dist/memberships/membership.model.js.map +1 -0
- package/dist/memberships/membership.service.d.ts +22 -0
- package/dist/memberships/membership.service.d.ts.map +1 -0
- package/dist/memberships/membership.service.js +111 -0
- package/dist/memberships/membership.service.js.map +1 -0
- package/dist/missions/mission.model.d.ts +4 -4
- package/dist/missions/mission.model.d.ts.map +1 -1
- package/dist/missions/mission.schema.json +204 -0
- package/dist/missions/mission.service.d.ts +2 -2
- package/dist/missions/mission.service.d.ts.map +1 -1
- package/dist/missions/mission.service.js.map +1 -1
- package/dist/models/chat.model.d.ts +11 -1
- package/dist/models/chat.model.d.ts.map +1 -1
- package/dist/models/chat.model.js +4 -0
- package/dist/models/chat.model.js.map +1 -1
- package/dist/notifications/notification.service.d.ts.map +1 -1
- package/dist/notifications/notification.service.js +10 -2
- package/dist/notifications/notification.service.js.map +1 -1
- package/dist/profiles/person.model.d.ts +26 -26
- package/dist/profiles/person.model.d.ts.map +1 -1
- package/dist/profiles/profile.schema.json +269 -0
- package/dist/project/schemas.js +2 -1
- package/dist/project/schemas.js.map +1 -1
- package/dist/projects/project.service.d.ts +1 -1
- package/dist/projects/project.service.d.ts.map +1 -1
- package/dist/projects/project.service.js +2 -2
- package/dist/projects/project.service.js.map +1 -1
- package/dist/rewards/reward.model.d.ts +2 -2
- package/dist/rewards/reward.model.d.ts.map +1 -1
- package/dist/rewards/reward.service.d.ts +9 -0
- package/dist/rewards/reward.service.d.ts.map +1 -1
- package/dist/rewards/reward.service.js +32 -0
- package/dist/rewards/reward.service.js.map +1 -1
- package/dist/river/river.model.d.ts +25 -0
- package/dist/river/river.model.d.ts.map +1 -0
- package/dist/river/river.model.js +4 -0
- package/dist/river/river.model.js.map +1 -0
- package/dist/river/river.service.d.ts +13 -0
- package/dist/river/river.service.d.ts.map +1 -0
- package/dist/river/river.service.js +25 -0
- package/dist/river/river.service.js.map +1 -0
- package/dist/support/support.model.d.ts +6 -0
- package/dist/support/support.model.d.ts.map +1 -0
- package/dist/support/support.model.js +3 -0
- package/dist/support/support.model.js.map +1 -0
- package/dist/support/support.schema.json +25 -0
- package/dist/support/support.service.d.ts +11 -0
- package/dist/support/support.service.d.ts.map +1 -0
- package/dist/support/support.service.js +22 -0
- package/dist/support/support.service.js.map +1 -0
- package/dist/tasks/schemas.js +4 -3
- package/dist/tasks/schemas.js.map +1 -1
- package/dist/tasks/task.model.d.ts +40 -15
- package/dist/tasks/task.model.d.ts.map +1 -1
- package/dist/tasks/task.model.js +1 -1
- package/dist/tasks/task.model.js.map +1 -1
- package/dist/tasks/task.schema.json +780 -0
- package/dist/tasks/task.service.d.ts +108 -9
- package/dist/tasks/task.service.d.ts.map +1 -1
- package/dist/tasks/task.service.js +184 -47
- package/dist/tasks/task.service.js.map +1 -1
- package/dist/timezone/time.helper.d.ts +9 -0
- package/dist/timezone/time.helper.d.ts.map +1 -1
- package/dist/timezone/time.helper.js +31 -2
- package/dist/timezone/time.helper.js.map +1 -1
- package/dist/users/user.model.d.ts +2 -1
- package/dist/users/user.model.d.ts.map +1 -1
- package/dist/users/user.model.js.map +1 -1
- package/dist/users/user.schema.json +429 -0
- package/dist/users/user.service.d.ts +2 -2
- package/dist/users/user.service.d.ts.map +1 -1
- package/dist/users/user.service.js +29 -35
- package/dist/users/user.service.js.map +1 -1
- package/dist/utils/validation.utils.d.ts +0 -4
- package/dist/utils/validation.utils.d.ts.map +1 -1
- package/dist/utils/validation.utils.js +1 -11
- package/dist/utils/validation.utils.js.map +1 -1
- package/dist/wallet/wallet.model.d.ts +5 -0
- package/dist/wallet/wallet.model.d.ts.map +1 -1
- package/dist/wallet/wallet.service.d.ts +2 -1
- package/dist/wallet/wallet.service.d.ts.map +1 -1
- package/dist/wallet/wallet.service.js +9 -0
- package/dist/wallet/wallet.service.js.map +1 -1
- package/package.json +19 -6
package/dist/core/http-client.js
CHANGED
|
@@ -1,10 +1,20 @@
|
|
|
1
1
|
"use strict";
|
|
2
|
+
var __classPrivateFieldGet = (this && this.__classPrivateFieldGet) || function (receiver, state, kind, f) {
|
|
3
|
+
if (kind === "a" && !f) throw new TypeError("Private accessor was defined without a getter");
|
|
4
|
+
if (typeof state === "function" ? receiver !== state || !f : !state.has(receiver)) throw new TypeError("Cannot read private member from an object whose class did not declare it");
|
|
5
|
+
return kind === "m" ? f : kind === "a" ? f.call(receiver) : f ? f.value : state.get(receiver);
|
|
6
|
+
};
|
|
2
7
|
var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
3
8
|
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
4
9
|
};
|
|
10
|
+
var _BiomeHttpClient_instances, _BiomeHttpClient_shouldUseNodeCookieJar, _BiomeHttpClient_requestUrl, _BiomeHttpClient_ingestCookies, _BiomeHttpClient_initTaskNotifRefreshChannel, _BiomeHttpClient_scheduleTaskNotifRefresh, _BiomeHttpClient_normalizeEmptyBody, _BiomeHttpClient_withHighDefault;
|
|
5
11
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
6
12
|
exports.BiomeHttpClient = void 0;
|
|
7
13
|
const axios_1 = __importDefault(require("axios"));
|
|
14
|
+
const api_diagnostics_1 = require("./api-diagnostics");
|
|
15
|
+
const error_codes_1 = require("../errors/error-codes");
|
|
16
|
+
const request_scheduler_1 = require("./request-scheduler");
|
|
17
|
+
const node_cookie_jar_1 = require("./node-cookie-jar");
|
|
8
18
|
const DEFAULT_CSRF_HEADER_NAME = "X-XSRF-TOKEN";
|
|
9
19
|
const DEFAULT_CSRF_COOKIE_NAME = "XSRF-TOKEN";
|
|
10
20
|
const CSRF_METHODS = ["post", "put", "patch", "delete"];
|
|
@@ -19,9 +29,15 @@ class BiomeHttpClient {
|
|
|
19
29
|
return this.config.apiBaseUrl;
|
|
20
30
|
}
|
|
21
31
|
constructor(config) {
|
|
32
|
+
_BiomeHttpClient_instances.add(this);
|
|
22
33
|
this.config = config;
|
|
23
34
|
this._csrfToken = null;
|
|
24
35
|
this._csrfInitialized = false;
|
|
36
|
+
/** Debounce handle for task → notification badge refresh (mutations only). */
|
|
37
|
+
this._taskNotifRefreshTimer = null;
|
|
38
|
+
this._taskNotifBroadcast = null;
|
|
39
|
+
this.scheduler = (0, request_scheduler_1.getSharedRequestScheduler)(config.maxConcurrentRequests ?? 4);
|
|
40
|
+
this.nodeCookieJar = __classPrivateFieldGet(this, _BiomeHttpClient_instances, "m", _BiomeHttpClient_shouldUseNodeCookieJar).call(this) ? new node_cookie_jar_1.NodeCookieJar() : null;
|
|
25
41
|
this.axiosInstance = axios_1.default.create({
|
|
26
42
|
baseURL: config.apiBaseUrl,
|
|
27
43
|
timeout: config.timeout || 30000,
|
|
@@ -30,6 +46,7 @@ class BiomeHttpClient {
|
|
|
30
46
|
},
|
|
31
47
|
withCredentials: config.http?.withCredentials || false,
|
|
32
48
|
});
|
|
49
|
+
__classPrivateFieldGet(this, _BiomeHttpClient_instances, "m", _BiomeHttpClient_initTaskNotifRefreshChannel).call(this);
|
|
33
50
|
this.setupInterceptors();
|
|
34
51
|
this.initCsrf();
|
|
35
52
|
}
|
|
@@ -52,9 +69,11 @@ class BiomeHttpClient {
|
|
|
52
69
|
async fetchCsrfToken(url) {
|
|
53
70
|
try {
|
|
54
71
|
const response = await this.axiosInstance.get(url);
|
|
55
|
-
|
|
56
|
-
|
|
57
|
-
|
|
72
|
+
if (typeof response.data?.token !== "string") {
|
|
73
|
+
this._csrfToken = null;
|
|
74
|
+
throw new Error("CSRF token response did not contain a string token");
|
|
75
|
+
}
|
|
76
|
+
this._csrfToken = response.data.token;
|
|
58
77
|
return this._csrfToken;
|
|
59
78
|
}
|
|
60
79
|
catch {
|
|
@@ -63,10 +82,21 @@ class BiomeHttpClient {
|
|
|
63
82
|
}
|
|
64
83
|
}
|
|
65
84
|
/**
|
|
66
|
-
* Get CSRF token
|
|
85
|
+
* Get the current CSRF token.
|
|
86
|
+
*
|
|
87
|
+
* Browser context (no node cookie jar): always reads document.cookie live rather than
|
|
88
|
+
* serving a cached value. A cached value would go stale across a same-tab
|
|
89
|
+
* logout->login cycle, since the server rotates the CSRF cookie on login but nothing
|
|
90
|
+
* else would invalidate this client's in-memory copy - the first mutating request
|
|
91
|
+
* after re-login would then send a stale header, get a 403 CSRF_TOKEN_INVALID, and be
|
|
92
|
+
* misread as "session expired" even though the new session is perfectly valid.
|
|
93
|
+
*
|
|
94
|
+
* Node cookie jar context: no live document.cookie to read (or the caller explicitly
|
|
95
|
+
* opted into the node cookie jar via config), so the value ingested by
|
|
96
|
+
* #ingestCookies() from the most recent Set-Cookie response header is served instead.
|
|
67
97
|
*/
|
|
68
98
|
getCsrfToken() {
|
|
69
|
-
if (this.
|
|
99
|
+
if (this.nodeCookieJar) {
|
|
70
100
|
return this._csrfToken;
|
|
71
101
|
}
|
|
72
102
|
const cookieName = this.config.csrf?.cookieName || DEFAULT_CSRF_COOKIE_NAME;
|
|
@@ -74,13 +104,11 @@ class BiomeHttpClient {
|
|
|
74
104
|
if (typeof document === "undefined") {
|
|
75
105
|
return null;
|
|
76
106
|
}
|
|
77
|
-
/* istanbul ignore next */
|
|
78
107
|
const cookies = document?.cookie?.split(";") || [];
|
|
79
108
|
for (const cookie of cookies) {
|
|
80
109
|
const [name, value] = cookie.trim().split("=");
|
|
81
110
|
if (name === cookieName) {
|
|
82
|
-
|
|
83
|
-
return this._csrfToken;
|
|
111
|
+
return decodeURIComponent(value);
|
|
84
112
|
}
|
|
85
113
|
}
|
|
86
114
|
return null;
|
|
@@ -114,29 +142,29 @@ class BiomeHttpClient {
|
|
|
114
142
|
* Perform POST request
|
|
115
143
|
*/
|
|
116
144
|
async post(url, data, config) {
|
|
117
|
-
const response = await this.axiosInstance.post(url, data, config);
|
|
145
|
+
const response = await this.axiosInstance.post(url, data, __classPrivateFieldGet(this, _BiomeHttpClient_instances, "m", _BiomeHttpClient_withHighDefault).call(this, config));
|
|
118
146
|
return response.data;
|
|
119
147
|
}
|
|
120
148
|
/**
|
|
121
149
|
* Perform PUT request
|
|
122
150
|
*/
|
|
123
151
|
async put(url, data, config) {
|
|
124
|
-
const response = await this.axiosInstance.put(url, data, config);
|
|
125
|
-
return response
|
|
152
|
+
const response = await this.axiosInstance.put(url, data, __classPrivateFieldGet(this, _BiomeHttpClient_instances, "m", _BiomeHttpClient_withHighDefault).call(this, config));
|
|
153
|
+
return __classPrivateFieldGet(this, _BiomeHttpClient_instances, "m", _BiomeHttpClient_normalizeEmptyBody).call(this, response);
|
|
126
154
|
}
|
|
127
155
|
/**
|
|
128
156
|
* Perform PATCH request
|
|
129
157
|
*/
|
|
130
158
|
async patch(url, data, config) {
|
|
131
|
-
const response = await this.axiosInstance.patch(url, data, config);
|
|
132
|
-
return response
|
|
159
|
+
const response = await this.axiosInstance.patch(url, data, __classPrivateFieldGet(this, _BiomeHttpClient_instances, "m", _BiomeHttpClient_withHighDefault).call(this, config));
|
|
160
|
+
return __classPrivateFieldGet(this, _BiomeHttpClient_instances, "m", _BiomeHttpClient_normalizeEmptyBody).call(this, response);
|
|
133
161
|
}
|
|
134
162
|
/**
|
|
135
163
|
* Perform DELETE request
|
|
136
164
|
*/
|
|
137
165
|
async delete(url, config) {
|
|
138
|
-
const response = await this.axiosInstance.delete(url, config);
|
|
139
|
-
return response
|
|
166
|
+
const response = await this.axiosInstance.delete(url, __classPrivateFieldGet(this, _BiomeHttpClient_instances, "m", _BiomeHttpClient_withHighDefault).call(this, config));
|
|
167
|
+
return __classPrivateFieldGet(this, _BiomeHttpClient_instances, "m", _BiomeHttpClient_normalizeEmptyBody).call(this, response);
|
|
140
168
|
}
|
|
141
169
|
/**
|
|
142
170
|
* Set authentication token for subsequent requests
|
|
@@ -158,17 +186,64 @@ class BiomeHttpClient {
|
|
|
158
186
|
*/
|
|
159
187
|
setupInterceptors() {
|
|
160
188
|
const csrfHeaderName = this.config.csrf?.headerName || DEFAULT_CSRF_HEADER_NAME;
|
|
161
|
-
|
|
162
|
-
|
|
189
|
+
const scheduler = this.scheduler;
|
|
190
|
+
// Request interceptor — schedule then annotate
|
|
191
|
+
this.axiosInstance.interceptors.request.use(async (config) => {
|
|
192
|
+
const priority = config.biomePriority ?? "normal";
|
|
193
|
+
const queueWait = config.biomeQueueWaitMs ??
|
|
194
|
+
(priority === "low" ? 8000 : priority === "high" ? 45000 : 30000);
|
|
195
|
+
try {
|
|
196
|
+
await scheduler.acquire(priority, queueWait);
|
|
197
|
+
config._biomeSlotHeld = true;
|
|
198
|
+
}
|
|
199
|
+
catch (err) {
|
|
200
|
+
// Surface queue wait as a distinct failure with scheduler pressure stats.
|
|
201
|
+
// Diagnostic rule: client timeout + no BE "Request started" ⇒ pool/queue,
|
|
202
|
+
// not handler latency. See sst/guidelines/http-concurrency.md.
|
|
203
|
+
const queueErr = err;
|
|
204
|
+
queueErr.config = {
|
|
205
|
+
method: config.method,
|
|
206
|
+
url: config.url,
|
|
207
|
+
timeout: config.timeout,
|
|
208
|
+
baseURL: config.baseURL,
|
|
209
|
+
_startTime: Date.now(),
|
|
210
|
+
biomePriority: priority,
|
|
211
|
+
};
|
|
212
|
+
if (!queueErr.scheduler) {
|
|
213
|
+
queueErr.scheduler = scheduler.snapshot();
|
|
214
|
+
}
|
|
215
|
+
if (queueErr.priority == null) {
|
|
216
|
+
queueErr.priority = priority;
|
|
217
|
+
}
|
|
218
|
+
if (queueErr.maxWaitMs == null) {
|
|
219
|
+
queueErr.maxWaitMs = queueWait;
|
|
220
|
+
}
|
|
221
|
+
(0, api_diagnostics_1.reportApiFailure)({
|
|
222
|
+
message: queueErr.message,
|
|
223
|
+
code: queueErr.code || "ERR_QUEUE_TIMEOUT",
|
|
224
|
+
isQueueTimeout: true,
|
|
225
|
+
priority: queueErr.priority,
|
|
226
|
+
maxWaitMs: queueErr.maxWaitMs,
|
|
227
|
+
scheduler: queueErr.scheduler,
|
|
228
|
+
config: queueErr.config,
|
|
229
|
+
}, queueErr.maxWaitMs ?? 0);
|
|
230
|
+
return Promise.reject(queueErr);
|
|
231
|
+
}
|
|
163
232
|
config._startTime = Date.now();
|
|
164
233
|
// Add auth token if available
|
|
165
234
|
if (this.config.authToken) {
|
|
166
235
|
config.headers.Authorization = `Bearer ${this.config.authToken}`;
|
|
167
236
|
}
|
|
237
|
+
if (this.nodeCookieJar) {
|
|
238
|
+
const cookie = this.nodeCookieJar.cookieHeader(__classPrivateFieldGet(this, _BiomeHttpClient_instances, "m", _BiomeHttpClient_requestUrl).call(this, config));
|
|
239
|
+
if (cookie) {
|
|
240
|
+
config.headers.Cookie = cookie;
|
|
241
|
+
}
|
|
242
|
+
}
|
|
168
243
|
// Set Content-Type to application/json only if data is not FormData
|
|
169
244
|
// Axios automatically handles multipart/form-data for FormData objects
|
|
170
245
|
if (config.data && !(config.data instanceof FormData)) {
|
|
171
|
-
config.headers[
|
|
246
|
+
config.headers["Content-Type"] = "application/json";
|
|
172
247
|
}
|
|
173
248
|
// Add CSRF token for mutating requests
|
|
174
249
|
if (this.isCsrfEnabled() && config.method) {
|
|
@@ -182,23 +257,38 @@ class BiomeHttpClient {
|
|
|
182
257
|
}
|
|
183
258
|
return config;
|
|
184
259
|
}, (error) => Promise.reject(error));
|
|
185
|
-
|
|
186
|
-
|
|
260
|
+
const releaseSlot = (config) => {
|
|
261
|
+
if (config?._biomeSlotHeld) {
|
|
262
|
+
config._biomeSlotHeld = false;
|
|
263
|
+
scheduler.release();
|
|
264
|
+
}
|
|
265
|
+
};
|
|
266
|
+
// Response interceptor for error handling + slot release
|
|
267
|
+
this.axiosInstance.interceptors.response.use((response) => {
|
|
268
|
+
releaseSlot(response.config);
|
|
269
|
+
__classPrivateFieldGet(this, _BiomeHttpClient_instances, "m", _BiomeHttpClient_ingestCookies).call(this, response);
|
|
270
|
+
__classPrivateFieldGet(this, _BiomeHttpClient_instances, "m", _BiomeHttpClient_scheduleTaskNotifRefresh).call(this, response.config);
|
|
271
|
+
return response;
|
|
272
|
+
}, (error) => {
|
|
273
|
+
releaseSlot(error.config);
|
|
274
|
+
if (error.response) {
|
|
275
|
+
__classPrivateFieldGet(this, _BiomeHttpClient_instances, "m", _BiomeHttpClient_ingestCookies).call(this, error.response);
|
|
276
|
+
}
|
|
187
277
|
const elapsed = Date.now() - (error.config?._startTime ?? Date.now());
|
|
188
|
-
|
|
189
|
-
|
|
190
|
-
|
|
191
|
-
|
|
192
|
-
status: error.response?.status,
|
|
193
|
-
elapsed: `${elapsed}ms`,
|
|
194
|
-
timeout: error.config?.timeout,
|
|
195
|
-
});
|
|
278
|
+
// Avoid double-reporting pure queue timeouts (already reported above)
|
|
279
|
+
if (!error.isQueueTimeout) {
|
|
280
|
+
(0, api_diagnostics_1.reportApiFailure)(error, elapsed);
|
|
281
|
+
}
|
|
196
282
|
// Handle common error scenarios
|
|
197
|
-
|
|
283
|
+
const isCsrfInvalidSession = error.response?.status === 403 &&
|
|
284
|
+
error.response?.data?.error?.details?.code ===
|
|
285
|
+
error_codes_1.ErrorCode.CSRF_TOKEN_INVALID;
|
|
286
|
+
if (error.response?.status === 401 || isCsrfInvalidSession) {
|
|
198
287
|
this.clearAuthToken();
|
|
288
|
+
this.clearCsrfToken();
|
|
199
289
|
// Notify consumers of session expiration
|
|
200
|
-
if (typeof window !==
|
|
201
|
-
window.dispatchEvent(new CustomEvent(
|
|
290
|
+
if (typeof window !== "undefined") {
|
|
291
|
+
window.dispatchEvent(new CustomEvent("biome:session-expired"));
|
|
202
292
|
}
|
|
203
293
|
}
|
|
204
294
|
return Promise.reject(error);
|
|
@@ -206,4 +296,76 @@ class BiomeHttpClient {
|
|
|
206
296
|
}
|
|
207
297
|
}
|
|
208
298
|
exports.BiomeHttpClient = BiomeHttpClient;
|
|
299
|
+
_BiomeHttpClient_instances = new WeakSet(), _BiomeHttpClient_shouldUseNodeCookieJar = function _BiomeHttpClient_shouldUseNodeCookieJar() {
|
|
300
|
+
if (this.config.http?.useNodeCookieJar === false)
|
|
301
|
+
return false;
|
|
302
|
+
if (this.config.http?.useNodeCookieJar === true)
|
|
303
|
+
return true;
|
|
304
|
+
return typeof document === "undefined";
|
|
305
|
+
}, _BiomeHttpClient_requestUrl = function _BiomeHttpClient_requestUrl(config) {
|
|
306
|
+
return (0, node_cookie_jar_1.resolveRequestUrl)(config.baseURL || this.config.apiBaseUrl, config.url);
|
|
307
|
+
}, _BiomeHttpClient_ingestCookies = function _BiomeHttpClient_ingestCookies(response) {
|
|
308
|
+
if (!this.nodeCookieJar)
|
|
309
|
+
return;
|
|
310
|
+
const url = __classPrivateFieldGet(this, _BiomeHttpClient_instances, "m", _BiomeHttpClient_requestUrl).call(this, response.config || {});
|
|
311
|
+
this.nodeCookieJar.ingest(url, (0, node_cookie_jar_1.readSetCookieHeader)(response.headers));
|
|
312
|
+
const cookieName = this.config.csrf?.cookieName || DEFAULT_CSRF_COOKIE_NAME;
|
|
313
|
+
const csrf = this.nodeCookieJar.getNamed(url, cookieName);
|
|
314
|
+
if (csrf)
|
|
315
|
+
this._csrfToken = csrf;
|
|
316
|
+
}, _BiomeHttpClient_initTaskNotifRefreshChannel = function _BiomeHttpClient_initTaskNotifRefreshChannel() {
|
|
317
|
+
const opts = this.config.http?.interceptors?.taskNotificationRefresh;
|
|
318
|
+
if (!opts?.broadcastChannel || typeof BroadcastChannel === "undefined") {
|
|
319
|
+
return;
|
|
320
|
+
}
|
|
321
|
+
try {
|
|
322
|
+
this._taskNotifBroadcast = new BroadcastChannel(opts.broadcastChannel);
|
|
323
|
+
}
|
|
324
|
+
catch {
|
|
325
|
+
this._taskNotifBroadcast = null;
|
|
326
|
+
}
|
|
327
|
+
}, _BiomeHttpClient_scheduleTaskNotifRefresh = function _BiomeHttpClient_scheduleTaskNotifRefresh(config) {
|
|
328
|
+
const opts = this.config.http?.interceptors?.taskNotificationRefresh;
|
|
329
|
+
if (!opts)
|
|
330
|
+
return;
|
|
331
|
+
const method = (config.method || "get").toLowerCase();
|
|
332
|
+
if (!CSRF_METHODS.includes(method))
|
|
333
|
+
return; // only mutating methods
|
|
334
|
+
const url = `${config.baseURL || ""}${config.url || ""}`;
|
|
335
|
+
if (!/\/tasks?(?:\/|$|\?)/.test(url))
|
|
336
|
+
return;
|
|
337
|
+
if (opts.ignoreUrls?.some((ignored) => url.includes(ignored)))
|
|
338
|
+
return;
|
|
339
|
+
if (this._taskNotifRefreshTimer) {
|
|
340
|
+
clearTimeout(this._taskNotifRefreshTimer);
|
|
341
|
+
}
|
|
342
|
+
this._taskNotifRefreshTimer = setTimeout(() => {
|
|
343
|
+
this._taskNotifRefreshTimer = null;
|
|
344
|
+
if (typeof window !== "undefined" && opts.customEvent) {
|
|
345
|
+
try {
|
|
346
|
+
window.dispatchEvent(new CustomEvent(opts.customEvent));
|
|
347
|
+
}
|
|
348
|
+
catch {
|
|
349
|
+
// ignore
|
|
350
|
+
}
|
|
351
|
+
}
|
|
352
|
+
try {
|
|
353
|
+
this._taskNotifBroadcast?.postMessage({ refreshNow: true });
|
|
354
|
+
}
|
|
355
|
+
catch {
|
|
356
|
+
// ignore
|
|
357
|
+
}
|
|
358
|
+
}, 1500);
|
|
359
|
+
}, _BiomeHttpClient_normalizeEmptyBody = function _BiomeHttpClient_normalizeEmptyBody(response) {
|
|
360
|
+
const body = response.data;
|
|
361
|
+
if (response.status === 204 || body === "" || body === null || body === undefined) {
|
|
362
|
+
return { result: "success", payload: undefined, message: "", isSuccess: true };
|
|
363
|
+
}
|
|
364
|
+
return response.data;
|
|
365
|
+
}, _BiomeHttpClient_withHighDefault = function _BiomeHttpClient_withHighDefault(config) {
|
|
366
|
+
return {
|
|
367
|
+
biomePriority: "high",
|
|
368
|
+
...config,
|
|
369
|
+
};
|
|
370
|
+
};
|
|
209
371
|
//# sourceMappingURL=http-client.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"http-client.js","sourceRoot":"","sources":["../../src/core/http-client.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"http-client.js","sourceRoot":"","sources":["../../src/core/http-client.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,14 @@
|
|
|
1
|
+
import { CookieJar } from "tough-cookie";
|
|
2
|
+
/**
|
|
3
|
+
* Node-only cookie store so axios can round-trip `Set-Cookie` (JWT session +
|
|
4
|
+
* `XSRF-TOKEN`). Browsers already persist cookies via `withCredentials`.
|
|
5
|
+
*/
|
|
6
|
+
export declare class NodeCookieJar {
|
|
7
|
+
readonly jar: CookieJar;
|
|
8
|
+
ingest(url: string, setCookie: string | string[] | undefined): void;
|
|
9
|
+
cookieHeader(url: string): string;
|
|
10
|
+
getNamed(url: string, name: string): string | null;
|
|
11
|
+
}
|
|
12
|
+
export declare function resolveRequestUrl(baseURL: string | undefined, url: string | undefined): string;
|
|
13
|
+
export declare function readSetCookieHeader(headers: unknown): string[];
|
|
14
|
+
//# sourceMappingURL=node-cookie-jar.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"node-cookie-jar.d.ts","sourceRoot":"","sources":["../../src/core/node-cookie-jar.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,MAAM,cAAc,CAAC;AAEzC;;;GAGG;AACH,qBAAa,aAAa;IACtB,QAAQ,CAAC,GAAG,YAAmB;IAE/B,MAAM,CAAC,GAAG,EAAE,MAAM,EAAE,SAAS,EAAE,MAAM,GAAG,MAAM,EAAE,GAAG,SAAS,GAAG,IAAI;IASnE,YAAY,CAAC,GAAG,EAAE,MAAM,GAAG,MAAM;IAIjC,QAAQ,CAAC,GAAG,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,GAAG,MAAM,GAAG,IAAI;CAIrD;AAED,wBAAgB,iBAAiB,CAC7B,OAAO,EAAE,MAAM,GAAG,SAAS,EAC3B,GAAG,EAAE,MAAM,GAAG,SAAS,GACxB,MAAM,CAOR;AAED,wBAAgB,mBAAmB,CAAC,OAAO,EAAE,OAAO,GAAG,MAAM,EAAE,CAa9D"}
|
|
@@ -0,0 +1,58 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.NodeCookieJar = void 0;
|
|
4
|
+
exports.resolveRequestUrl = resolveRequestUrl;
|
|
5
|
+
exports.readSetCookieHeader = readSetCookieHeader;
|
|
6
|
+
const tough_cookie_1 = require("tough-cookie");
|
|
7
|
+
/**
|
|
8
|
+
* Node-only cookie store so axios can round-trip `Set-Cookie` (JWT session +
|
|
9
|
+
* `XSRF-TOKEN`). Browsers already persist cookies via `withCredentials`.
|
|
10
|
+
*/
|
|
11
|
+
class NodeCookieJar {
|
|
12
|
+
constructor() {
|
|
13
|
+
this.jar = new tough_cookie_1.CookieJar();
|
|
14
|
+
}
|
|
15
|
+
ingest(url, setCookie) {
|
|
16
|
+
if (!setCookie)
|
|
17
|
+
return;
|
|
18
|
+
const list = Array.isArray(setCookie) ? setCookie : [setCookie];
|
|
19
|
+
for (const cookie of list) {
|
|
20
|
+
if (!cookie)
|
|
21
|
+
continue;
|
|
22
|
+
this.jar.setCookieSync(cookie, url);
|
|
23
|
+
}
|
|
24
|
+
}
|
|
25
|
+
cookieHeader(url) {
|
|
26
|
+
return this.jar.getCookieStringSync(url);
|
|
27
|
+
}
|
|
28
|
+
getNamed(url, name) {
|
|
29
|
+
const cookies = this.jar.getCookiesSync(url);
|
|
30
|
+
return cookies.find((c) => c.key === name)?.value ?? null;
|
|
31
|
+
}
|
|
32
|
+
}
|
|
33
|
+
exports.NodeCookieJar = NodeCookieJar;
|
|
34
|
+
function resolveRequestUrl(baseURL, url) {
|
|
35
|
+
const base = (baseURL || "http://localhost").replace(/\/?$/, "/");
|
|
36
|
+
try {
|
|
37
|
+
return new URL(url || "", base).toString();
|
|
38
|
+
}
|
|
39
|
+
catch {
|
|
40
|
+
return `${base.replace(/\/$/, "")}${url || ""}`;
|
|
41
|
+
}
|
|
42
|
+
}
|
|
43
|
+
function readSetCookieHeader(headers) {
|
|
44
|
+
if (!headers || typeof headers !== "object")
|
|
45
|
+
return [];
|
|
46
|
+
const record = headers;
|
|
47
|
+
const raw = typeof record.get === "function"
|
|
48
|
+
? record.get("set-cookie")
|
|
49
|
+
: record["set-cookie"];
|
|
50
|
+
if (!raw)
|
|
51
|
+
return [];
|
|
52
|
+
if (Array.isArray(raw))
|
|
53
|
+
return raw.filter((c) => typeof c === "string");
|
|
54
|
+
if (typeof raw === "string")
|
|
55
|
+
return [raw];
|
|
56
|
+
return [];
|
|
57
|
+
}
|
|
58
|
+
//# sourceMappingURL=node-cookie-jar.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"node-cookie-jar.js","sourceRoot":"","sources":["../../src/core/node-cookie-jar.ts"],"names":[],"mappings":";;;AA4BA,8CAUC;AAED,kDAaC;AArDD,+CAAyC;AAEzC;;;GAGG;AACH,MAAa,aAAa;IAA1B;QACa,QAAG,GAAG,IAAI,wBAAS,EAAE,CAAC;IAmBnC,CAAC;IAjBG,MAAM,CAAC,GAAW,EAAE,SAAwC;QACxD,IAAI,CAAC,SAAS;YAAE,OAAO;QACvB,MAAM,IAAI,GAAG,KAAK,CAAC,OAAO,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC;QAChE,KAAK,MAAM,MAAM,IAAI,IAAI,EAAE,CAAC;YACxB,IAAI,CAAC,MAAM;gBAAE,SAAS;YACtB,IAAI,CAAC,GAAG,CAAC,aAAa,CAAC,MAAM,EAAE,GAAG,CAAC,CAAC;QACxC,CAAC;IACL,CAAC;IAED,YAAY,CAAC,GAAW;QACpB,OAAO,IAAI,CAAC,GAAG,CAAC,mBAAmB,CAAC,GAAG,CAAC,CAAC;IAC7C,CAAC;IAED,QAAQ,CAAC,GAAW,EAAE,IAAY;QAC9B,MAAM,OAAO,GAAG,IAAI,CAAC,GAAG,CAAC,cAAc,CAAC,GAAG,CAAC,CAAC;QAC7C,OAAO,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,GAAG,KAAK,IAAI,CAAC,EAAE,KAAK,IAAI,IAAI,CAAC;IAC9D,CAAC;CACJ;AApBD,sCAoBC;AAED,SAAgB,iBAAiB,CAC7B,OAA2B,EAC3B,GAAuB;IAEvB,MAAM,IAAI,GAAG,CAAC,OAAO,IAAI,kBAAkB,CAAC,CAAC,OAAO,CAAC,MAAM,EAAE,GAAG,CAAC,CAAC;IAClE,IAAI,CAAC;QACD,OAAO,IAAI,GAAG,CAAC,GAAG,IAAI,EAAE,EAAE,IAAI,CAAC,CAAC,QAAQ,EAAE,CAAC;IAC/C,CAAC;IAAC,MAAM,CAAC;QACL,OAAO,GAAG,IAAI,CAAC,OAAO,CAAC,KAAK,EAAE,EAAE,CAAC,GAAG,GAAG,IAAI,EAAE,EAAE,CAAC;IACpD,CAAC;AACL,CAAC;AAED,SAAgB,mBAAmB,CAAC,OAAgB;IAChD,IAAI,CAAC,OAAO,IAAI,OAAO,OAAO,KAAK,QAAQ;QAAE,OAAO,EAAE,CAAC;IACvD,MAAM,MAAM,GAAG,OAEd,CAAC;IACF,MAAM,GAAG,GACL,OAAO,MAAM,CAAC,GAAG,KAAK,UAAU;QAC5B,CAAC,CAAC,MAAM,CAAC,GAAG,CAAC,YAAY,CAAC;QAC1B,CAAC,CAAC,MAAM,CAAC,YAAY,CAAC,CAAC;IAC/B,IAAI,CAAC,GAAG;QAAE,OAAO,EAAE,CAAC;IACpB,IAAI,KAAK,CAAC,OAAO,CAAC,GAAG,CAAC;QAAE,OAAO,GAAG,CAAC,MAAM,CAAC,CAAC,CAAC,EAAe,EAAE,CAAC,OAAO,CAAC,KAAK,QAAQ,CAAC,CAAC;IACrF,IAAI,OAAO,GAAG,KAAK,QAAQ;QAAE,OAAO,CAAC,GAAG,CAAC,CAAC;IAC1C,OAAO,EAAE,CAAC;AACd,CAAC"}
|
|
@@ -0,0 +1,56 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Priority-aware concurrency limiter for browser HTTP/1.1.
|
|
3
|
+
*
|
|
4
|
+
* Browsers allow ~6 connections per origin. Chat SSE holds one permanently.
|
|
5
|
+
* Without a client-side cap, task detail storms + polls + mutations all race
|
|
6
|
+
* and low-priority work (unread count) times out while never leaving the queue.
|
|
7
|
+
*
|
|
8
|
+
* Default maxConcurrent=4 leaves ~1–2 slots free for EventSource and bursts.
|
|
9
|
+
* Default reservedForHigh=1 keeps one slot that normal/low cannot fill so
|
|
10
|
+
* mutations and user-opened panels (high) can still start under GET storms.
|
|
11
|
+
*
|
|
12
|
+
* See `sst/guidelines/http-concurrency.md` for the system-wide policy.
|
|
13
|
+
*/
|
|
14
|
+
export type RequestPriority = "high" | "normal" | "low";
|
|
15
|
+
/** Point-in-time view of scheduler pressure (attached to queue-timeout errors). */
|
|
16
|
+
export interface RequestSchedulerSnapshot {
|
|
17
|
+
active: number;
|
|
18
|
+
queued: number;
|
|
19
|
+
maxConcurrent: number;
|
|
20
|
+
reservedForHigh: number;
|
|
21
|
+
/** How many waiters of each priority are currently in the queue. */
|
|
22
|
+
queuedByPriority: Record<RequestPriority, number>;
|
|
23
|
+
}
|
|
24
|
+
export declare class RequestScheduler {
|
|
25
|
+
#private;
|
|
26
|
+
private readonly maxConcurrent;
|
|
27
|
+
private active;
|
|
28
|
+
private readonly queue;
|
|
29
|
+
private readonly reservedForHigh;
|
|
30
|
+
/**
|
|
31
|
+
* @param maxConcurrent total in-flight slots (default 4)
|
|
32
|
+
* @param reservedForHigh slots only high priority may use (default 1).
|
|
33
|
+
* Clamped so at least one slot remains available to normal/low.
|
|
34
|
+
*/
|
|
35
|
+
constructor(maxConcurrent?: number, reservedForHigh?: number);
|
|
36
|
+
get activeCount(): number;
|
|
37
|
+
get queuedCount(): number;
|
|
38
|
+
get maxConcurrentSlots(): number;
|
|
39
|
+
get reservedHighSlots(): number;
|
|
40
|
+
/** Snapshot for diagnostics when a waiter times out or for FE overlays. */
|
|
41
|
+
snapshot(): RequestSchedulerSnapshot;
|
|
42
|
+
/**
|
|
43
|
+
* Reserve a connection slot. Resolves when the caller may start an HTTP request.
|
|
44
|
+
* @param priority high jumps the queue and may use reserved capacity; low yields to normal/high
|
|
45
|
+
* @param maxWaitMs reject if still waiting this long (background polls should fail fast)
|
|
46
|
+
*/
|
|
47
|
+
acquire(priority?: RequestPriority, maxWaitMs?: number): Promise<void>;
|
|
48
|
+
/** Release a slot after the HTTP call finishes (success or error). */
|
|
49
|
+
release(): void;
|
|
50
|
+
/** Test helper — drain queue without running requests. */
|
|
51
|
+
reset(): void;
|
|
52
|
+
}
|
|
53
|
+
export declare function getSharedRequestScheduler(maxConcurrent?: number): RequestScheduler;
|
|
54
|
+
/** Test-only: drop shared instance. */
|
|
55
|
+
export declare function resetSharedRequestScheduler(): void;
|
|
56
|
+
//# sourceMappingURL=request-scheduler.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"request-scheduler.d.ts","sourceRoot":"","sources":["../../src/core/request-scheduler.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;GAYG;AAEH,MAAM,MAAM,eAAe,GAAG,MAAM,GAAG,QAAQ,GAAG,KAAK,CAAC;AAExD,mFAAmF;AACnF,MAAM,WAAW,wBAAwB;IACvC,MAAM,EAAE,MAAM,CAAC;IACf,MAAM,EAAE,MAAM,CAAC;IACf,aAAa,EAAE,MAAM,CAAC;IACtB,eAAe,EAAE,MAAM,CAAC;IACxB,oEAAoE;IACpE,gBAAgB,EAAE,MAAM,CAAC,eAAe,EAAE,MAAM,CAAC,CAAC;CACnD;AAiBD,qBAAa,gBAAgB;;IAWzB,OAAO,CAAC,QAAQ,CAAC,aAAa;IAVhC,OAAO,CAAC,MAAM,CAAK;IACnB,OAAO,CAAC,QAAQ,CAAC,KAAK,CAAoB;IAC1C,OAAO,CAAC,QAAQ,CAAC,eAAe,CAAS;IAEzC;;;;OAIG;gBAEgB,aAAa,GAAE,MAAU,EAC1C,eAAe,SAAI;IAWrB,IAAI,WAAW,IAAI,MAAM,CAExB;IAED,IAAI,WAAW,IAAI,MAAM,CAExB;IAED,IAAI,kBAAkB,IAAI,MAAM,CAE/B;IAED,IAAI,iBAAiB,IAAI,MAAM,CAE9B;IAQD,2EAA2E;IAC3E,QAAQ,IAAI,wBAAwB;IAkBpC;;;;OAIG;IACH,OAAO,CAAC,QAAQ,GAAE,eAA0B,EAAE,SAAS,SAAS,GAAG,OAAO,CAAC,IAAI,CAAC;IAmDhF,sEAAsE;IACtE,OAAO,IAAI,IAAI;IAmBf,0DAA0D;IAC1D,KAAK,IAAI,IAAI;CAQd;AAKD,wBAAgB,yBAAyB,CAAC,aAAa,SAAI,GAAG,gBAAgB,CAK7E;AAED,uCAAuC;AACvC,wBAAgB,2BAA2B,IAAI,IAAI,CAGlD"}
|