opencode-qwen-oauth 2.1.0 → 2.2.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/index.d.ts +1 -0
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +149 -37
- package/dist/index.js.map +1 -1
- package/dist/logger.d.ts.map +1 -1
- package/dist/logger.js +7 -0
- package/dist/logger.js.map +1 -1
- package/package.json +1 -1
package/dist/index.d.ts
CHANGED
package/dist/index.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAMH,OAAO,KAAK,EAAE,MAAM,EAAe,MAAM,qBAAqB,CAAC;AAsB/D,eAAO,MAAM,eAAe,EAAE,MA2U7B,CAAC;AAEF,eAAe,eAAe,CAAC"}
|
package/dist/index.js
CHANGED
|
@@ -1,32 +1,167 @@
|
|
|
1
1
|
/**
|
|
2
2
|
* Qwen OAuth Plugin for OpenCode
|
|
3
3
|
* Provides OAuth device flow authentication for Qwen.ai
|
|
4
|
+
* With proactive token refresh via custom fetch loader
|
|
4
5
|
*
|
|
5
6
|
* @packageDocumentation
|
|
6
7
|
*/
|
|
8
|
+
const PLUGIN_VERSION = "2.2.0";
|
|
7
9
|
import { QWEN_API_BASE_URL } from "./constants.js";
|
|
8
10
|
import { debugLog, warnLog } from "./logger.js";
|
|
9
11
|
import { openBrowser } from "./browser.js";
|
|
10
12
|
import { authorizeDevice, pollForToken, refreshAccessToken } from "./oauth.js";
|
|
11
13
|
import { Mutex } from "./mutex.js";
|
|
12
|
-
import {
|
|
13
|
-
// Mutex to prevent multiple concurrent authorization flows
|
|
14
|
+
import { getConfig } from "./config.js";
|
|
14
15
|
const authorizationMutex = new Mutex();
|
|
15
|
-
|
|
16
|
+
const tokenRefreshMutex = new Mutex();
|
|
17
|
+
let cachedAuth = null;
|
|
18
|
+
export const QwenOAuthPlugin = async ({ project, client, directory, worktree, }) => {
|
|
16
19
|
debugLog("Plugin initialized", {
|
|
17
20
|
directory,
|
|
18
21
|
worktree,
|
|
19
22
|
project: project?.name || "N/A",
|
|
20
23
|
});
|
|
24
|
+
const config = getConfig();
|
|
21
25
|
return {
|
|
22
26
|
auth: {
|
|
23
27
|
provider: "qwen",
|
|
28
|
+
async loader(getAuth, provider) {
|
|
29
|
+
const auth = await getAuth();
|
|
30
|
+
if (!auth || auth.type !== "oauth") {
|
|
31
|
+
return {};
|
|
32
|
+
}
|
|
33
|
+
cachedAuth = auth;
|
|
34
|
+
const refreshTokenIfNeeded = async () => {
|
|
35
|
+
if (!cachedAuth) {
|
|
36
|
+
throw new Error("No authentication available");
|
|
37
|
+
}
|
|
38
|
+
const now = Date.now();
|
|
39
|
+
const expiresAt = cachedAuth.expires || 0;
|
|
40
|
+
const timeUntilExpiry = expiresAt - now;
|
|
41
|
+
const shouldRefresh = !cachedAuth.access ||
|
|
42
|
+
timeUntilExpiry < config.refreshThreshold;
|
|
43
|
+
if (!shouldRefresh) {
|
|
44
|
+
return cachedAuth;
|
|
45
|
+
}
|
|
46
|
+
debugLog("Token refresh needed", {
|
|
47
|
+
hasAccess: !!cachedAuth.access,
|
|
48
|
+
expiresAt: new Date(expiresAt).toISOString(),
|
|
49
|
+
timeUntilExpiry,
|
|
50
|
+
refreshThreshold: config.refreshThreshold,
|
|
51
|
+
});
|
|
52
|
+
return tokenRefreshMutex.runExclusive(async () => {
|
|
53
|
+
const currentAuth = cachedAuth;
|
|
54
|
+
if (!currentAuth || !currentAuth.refresh) {
|
|
55
|
+
throw new Error("No refresh token available");
|
|
56
|
+
}
|
|
57
|
+
const result = await refreshAccessToken(currentAuth.refresh);
|
|
58
|
+
if (result.success && result.access_token) {
|
|
59
|
+
const newAuth = {
|
|
60
|
+
type: "oauth",
|
|
61
|
+
refresh: result.refresh_token || currentAuth.refresh,
|
|
62
|
+
access: result.access_token,
|
|
63
|
+
expires: Date.now() + (result.expires_in || 0) * 1000,
|
|
64
|
+
};
|
|
65
|
+
cachedAuth = newAuth;
|
|
66
|
+
try {
|
|
67
|
+
await client.auth.set({
|
|
68
|
+
path: { id: "qwen" },
|
|
69
|
+
body: newAuth,
|
|
70
|
+
});
|
|
71
|
+
debugLog("Token refreshed and stored", {
|
|
72
|
+
expires: newAuth.expires,
|
|
73
|
+
});
|
|
74
|
+
}
|
|
75
|
+
catch (storeError) {
|
|
76
|
+
debugLog("Failed to store refreshed token", {
|
|
77
|
+
error: String(storeError),
|
|
78
|
+
});
|
|
79
|
+
}
|
|
80
|
+
return newAuth;
|
|
81
|
+
}
|
|
82
|
+
debugLog("Token refresh failed", { error: result.error });
|
|
83
|
+
throw new Error(result.error || "Token refresh failed");
|
|
84
|
+
});
|
|
85
|
+
};
|
|
86
|
+
return {
|
|
87
|
+
apiKey: "",
|
|
88
|
+
async fetch(input, init) {
|
|
89
|
+
let auth = await refreshTokenIfNeeded();
|
|
90
|
+
const maxRetries = 2;
|
|
91
|
+
let lastResponse = null;
|
|
92
|
+
for (let attempt = 0; attempt <= maxRetries; attempt++) {
|
|
93
|
+
let url;
|
|
94
|
+
if (typeof input === "string") {
|
|
95
|
+
url = input;
|
|
96
|
+
}
|
|
97
|
+
else if (input instanceof URL) {
|
|
98
|
+
url = input.toString();
|
|
99
|
+
}
|
|
100
|
+
else {
|
|
101
|
+
url = input.url;
|
|
102
|
+
}
|
|
103
|
+
const headers = new Headers(init?.headers);
|
|
104
|
+
if (auth.access) {
|
|
105
|
+
headers.set("Authorization", `Bearer ${auth.access}`);
|
|
106
|
+
}
|
|
107
|
+
const response = await fetch(url, {
|
|
108
|
+
...init,
|
|
109
|
+
headers,
|
|
110
|
+
});
|
|
111
|
+
lastResponse = response;
|
|
112
|
+
if (response.status === 401 && attempt < maxRetries) {
|
|
113
|
+
debugLog("Received 401, attempting token refresh", { attempt });
|
|
114
|
+
const refreshedAuth = await tokenRefreshMutex.runExclusive(async () => {
|
|
115
|
+
const currentAuth = cachedAuth;
|
|
116
|
+
if (!currentAuth || !currentAuth.refresh) {
|
|
117
|
+
throw new Error("No refresh token available");
|
|
118
|
+
}
|
|
119
|
+
const result = await refreshAccessToken(currentAuth.refresh);
|
|
120
|
+
if (result.success && result.access_token) {
|
|
121
|
+
const newAuth = {
|
|
122
|
+
type: "oauth",
|
|
123
|
+
refresh: result.refresh_token || currentAuth.refresh,
|
|
124
|
+
access: result.access_token,
|
|
125
|
+
expires: Date.now() + (result.expires_in || 0) * 1000,
|
|
126
|
+
};
|
|
127
|
+
cachedAuth = newAuth;
|
|
128
|
+
try {
|
|
129
|
+
await client.auth.set({
|
|
130
|
+
path: { id: "qwen" },
|
|
131
|
+
body: newAuth,
|
|
132
|
+
});
|
|
133
|
+
}
|
|
134
|
+
catch (storeError) {
|
|
135
|
+
debugLog("Failed to store refreshed token after 401", {
|
|
136
|
+
error: String(storeError),
|
|
137
|
+
});
|
|
138
|
+
}
|
|
139
|
+
return newAuth;
|
|
140
|
+
}
|
|
141
|
+
debugLog("Token refresh failed after 401", { error: result.error });
|
|
142
|
+
return null;
|
|
143
|
+
});
|
|
144
|
+
if (refreshedAuth) {
|
|
145
|
+
auth = refreshedAuth;
|
|
146
|
+
debugLog("Retrying request with refreshed token", { attempt: attempt + 1 });
|
|
147
|
+
continue;
|
|
148
|
+
}
|
|
149
|
+
else {
|
|
150
|
+
debugLog("Token refresh failed, returning 401");
|
|
151
|
+
break;
|
|
152
|
+
}
|
|
153
|
+
}
|
|
154
|
+
return response;
|
|
155
|
+
}
|
|
156
|
+
return lastResponse;
|
|
157
|
+
},
|
|
158
|
+
};
|
|
159
|
+
},
|
|
24
160
|
methods: [
|
|
25
161
|
{
|
|
26
162
|
type: "oauth",
|
|
27
163
|
label: "Qwen Code (qwen.ai OAuth)",
|
|
28
164
|
authorize: async () => {
|
|
29
|
-
// Check if authorization is already in progress
|
|
30
165
|
if (authorizationMutex.isLocked()) {
|
|
31
166
|
warnLog("Authorization already in progress");
|
|
32
167
|
throw new Error("Authorization already in progress. Please wait for the current flow to complete.");
|
|
@@ -35,7 +170,6 @@ export const QwenOAuthPlugin = async ({ project, client, $, directory, worktree,
|
|
|
35
170
|
debugLog("Starting Qwen OAuth device flow...");
|
|
36
171
|
const device = await authorizeDevice();
|
|
37
172
|
const url = device.verification_uri_complete || device.verification_uri;
|
|
38
|
-
// Try to open browser automatically
|
|
39
173
|
openBrowser(url);
|
|
40
174
|
debugLog("Device authorization received", {
|
|
41
175
|
user_code: device.user_code,
|
|
@@ -51,14 +185,21 @@ export const QwenOAuthPlugin = async ({ project, client, $, directory, worktree,
|
|
|
51
185
|
debugLog("Polling for OAuth token...");
|
|
52
186
|
const result = await pollForToken(device.device_code, device.verifier, device.interval, device.expires_in);
|
|
53
187
|
if (result.success) {
|
|
188
|
+
const authResult = {
|
|
189
|
+
type: "oauth",
|
|
190
|
+
refresh: result.refresh_token,
|
|
191
|
+
access: result.access_token || "",
|
|
192
|
+
expires: Date.now() + (result.expires_in || 0) * 1000,
|
|
193
|
+
};
|
|
194
|
+
cachedAuth = authResult;
|
|
54
195
|
debugLog("Qwen authentication successful!", {
|
|
55
196
|
expires_in: result.expires_in,
|
|
56
197
|
has_refresh: !!result.refresh_token,
|
|
57
198
|
});
|
|
58
199
|
return {
|
|
59
200
|
type: "success",
|
|
60
|
-
access: result.access_token,
|
|
61
201
|
refresh: result.refresh_token,
|
|
202
|
+
access: result.access_token,
|
|
62
203
|
expires: Date.now() + result.expires_in * 1000,
|
|
63
204
|
};
|
|
64
205
|
}
|
|
@@ -66,25 +207,7 @@ export const QwenOAuthPlugin = async ({ project, client, $, directory, worktree,
|
|
|
66
207
|
return { type: "failed", error: result.error };
|
|
67
208
|
},
|
|
68
209
|
};
|
|
69
|
-
});
|
|
70
|
-
},
|
|
71
|
-
refresh: async (refreshToken) => {
|
|
72
|
-
debugLog("Refreshing Qwen access token...");
|
|
73
|
-
const result = await refreshAccessToken(refreshToken);
|
|
74
|
-
if (result.success) {
|
|
75
|
-
debugLog("Token refresh successful", {
|
|
76
|
-
expires_in: result.expires_in,
|
|
77
|
-
has_refresh: !!result.refresh_token,
|
|
78
|
-
});
|
|
79
|
-
return {
|
|
80
|
-
type: "success",
|
|
81
|
-
access: result.access_token,
|
|
82
|
-
refresh: result.refresh_token,
|
|
83
|
-
expires: Date.now() + result.expires_in * 1000,
|
|
84
|
-
};
|
|
85
|
-
}
|
|
86
|
-
debugLog(`Token refresh failed: ${result.error}`);
|
|
87
|
-
throw new QwenTokenRefreshError(result.error || "Invalid refresh token or client_id");
|
|
210
|
+
});
|
|
88
211
|
},
|
|
89
212
|
},
|
|
90
213
|
],
|
|
@@ -111,9 +234,7 @@ export const QwenOAuthPlugin = async ({ project, client, $, directory, worktree,
|
|
|
111
234
|
},
|
|
112
235
|
};
|
|
113
236
|
},
|
|
114
|
-
// Event monitoring hook
|
|
115
237
|
event: async ({ event }) => {
|
|
116
|
-
// Log important events for debugging
|
|
117
238
|
if (event.type === "session.error") {
|
|
118
239
|
debugLog("Session error occurred", {
|
|
119
240
|
type: event.type,
|
|
@@ -127,29 +248,22 @@ export const QwenOAuthPlugin = async ({ project, client, $, directory, worktree,
|
|
|
127
248
|
});
|
|
128
249
|
}
|
|
129
250
|
},
|
|
130
|
-
// Inject custom headers for Qwen API requests
|
|
131
251
|
"chat.headers": async (input, output) => {
|
|
132
|
-
// Only add headers for Qwen provider
|
|
133
252
|
if (input.provider.info.id === "qwen") {
|
|
134
253
|
debugLog("Adding custom headers for Qwen request", {
|
|
135
254
|
model: input.model.id,
|
|
136
255
|
session: input.sessionID,
|
|
137
256
|
});
|
|
138
|
-
// Add any custom headers needed for Qwen
|
|
139
|
-
// OpenCode will automatically handle the Authorization header
|
|
140
257
|
output.headers["X-Qwen-Client"] = "OpenCode";
|
|
141
|
-
output.headers["X-Qwen-Plugin-Version"] =
|
|
258
|
+
output.headers["X-Qwen-Plugin-Version"] = PLUGIN_VERSION;
|
|
142
259
|
}
|
|
143
260
|
},
|
|
144
|
-
// Customize model parameters for Qwen
|
|
145
261
|
"chat.params": async (input, output) => {
|
|
146
262
|
if (input.provider.info.id === "qwen") {
|
|
147
263
|
debugLog("Customizing parameters for Qwen model", {
|
|
148
264
|
model: input.model.id,
|
|
149
265
|
current_temp: output.temperature,
|
|
150
266
|
});
|
|
151
|
-
// Qwen models work well with these defaults
|
|
152
|
-
// Users can override these in their config
|
|
153
267
|
if (output.temperature === undefined) {
|
|
154
268
|
output.temperature = 0.7;
|
|
155
269
|
}
|
|
@@ -158,13 +272,11 @@ export const QwenOAuthPlugin = async ({ project, client, $, directory, worktree,
|
|
|
158
272
|
}
|
|
159
273
|
}
|
|
160
274
|
},
|
|
161
|
-
// Expose Qwen credentials as environment variables if needed
|
|
162
275
|
"shell.env": async (input, output) => {
|
|
163
276
|
debugLog("Setting up shell environment", {
|
|
164
277
|
cwd: input.cwd,
|
|
165
278
|
hasSession: !!input.sessionID,
|
|
166
279
|
});
|
|
167
|
-
// Add Qwen-specific environment variables
|
|
168
280
|
output.env.QWEN_API_BASE_URL = QWEN_API_BASE_URL;
|
|
169
281
|
output.env.QWEN_PROVIDER = "qwen";
|
|
170
282
|
},
|
package/dist/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
|
package/dist/logger.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"logger.d.ts","sourceRoot":"","sources":["../src/logger.ts"],"names":[],"mappings":"AAAA;;GAEG;AAOH,oBAAY,QAAQ;IAClB,KAAK,IAAI;IACT,IAAI,IAAI;IACR,IAAI,IAAI;IACR,KAAK,IAAI;CACV;
|
|
1
|
+
{"version":3,"file":"logger.d.ts","sourceRoot":"","sources":["../src/logger.ts"],"names":[],"mappings":"AAAA;;GAEG;AAOH,oBAAY,QAAQ;IAClB,KAAK,IAAI;IACT,IAAI,IAAI;IACR,IAAI,IAAI;IACR,KAAK,IAAI;CACV;AAoED,eAAO,MAAM,KAAK,SAEoB,CAAC;AAEvC,wBAAgB,QAAQ,CAAC,OAAO,EAAE,MAAM,EAAE,IAAI,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,IAAI,CAE9E;AAED,wBAAgB,OAAO,CAAC,OAAO,EAAE,MAAM,EAAE,IAAI,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,IAAI,CAE7E;AAED,wBAAgB,OAAO,CAAC,OAAO,EAAE,MAAM,EAAE,IAAI,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,IAAI,CAE7E;AAED,wBAAgB,QAAQ,CAAC,OAAO,EAAE,MAAM,EAAE,IAAI,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,IAAI,CAE9E"}
|
package/dist/logger.js
CHANGED
|
@@ -45,6 +45,13 @@ function getCurrentLogLevel() {
|
|
|
45
45
|
}
|
|
46
46
|
function writeLog(level, message, data) {
|
|
47
47
|
try {
|
|
48
|
+
// Only proceed if debug logging is explicitly enabled
|
|
49
|
+
const isDebugEnabled = process.env.QWEN_OAUTH_DEBUG === "true" ||
|
|
50
|
+
process.env.QWEN_OAUTH_DEBUG === "1";
|
|
51
|
+
// Only write to file when debug is explicitly enabled
|
|
52
|
+
if (!isDebugEnabled) {
|
|
53
|
+
return; // Don't write logs to file unless explicitly enabled
|
|
54
|
+
}
|
|
48
55
|
const currentLevel = getCurrentLogLevel();
|
|
49
56
|
if (level < currentLevel) {
|
|
50
57
|
return; // Skip logs below current level
|
package/dist/logger.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"logger.js","sourceRoot":"","sources":["../src/logger.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,OAAO,EAAE,cAAc,EAAE,SAAS,EAAE,UAAU,EAAE,MAAM,SAAS,CAAC;AAChE,OAAO,EAAE,IAAI,EAAE,MAAM,WAAW,CAAC;AACjC,OAAO,EAAE,OAAO,EAAE,MAAM,SAAS,CAAC;AAClC,OAAO,EAAE,eAAe,EAAE,MAAM,iBAAiB,CAAC;AAElD,MAAM,CAAN,IAAY,QAKX;AALD,WAAY,QAAQ;IAClB,yCAAS,CAAA;IACT,uCAAQ,CAAA;IACR,uCAAQ,CAAA;IACR,yCAAS,CAAA;AACX,CAAC,EALW,QAAQ,KAAR,QAAQ,QAKnB;AAED,SAAS,SAAS;IAChB,MAAM,SAAS,GAAG,OAAO,CAAC,GAAG,CAAC,eAAe,IAAI,IAAI,CAAC,OAAO,EAAE,EAAE,SAAS,CAAC,CAAC;IAC5E,OAAO,IAAI,CAAC,SAAS,EAAE,UAAU,EAAE,MAAM,CAAC,CAAC;AAC7C,CAAC;AAED,SAAS,cAAc;IACrB,OAAO,IAAI,CAAC,SAAS,EAAE,EAAE,gBAAgB,CAAC,CAAC;AAC7C,CAAC;AAED,SAAS,YAAY;IACnB,MAAM,MAAM,GAAG,SAAS,EAAE,CAAC;IAC3B,IAAI,CAAC,UAAU,CAAC,MAAM,CAAC,EAAE,CAAC;QACxB,SAAS,CAAC,MAAM,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,IAAI,EAAE,KAAK,EAAE,CAAC,CAAC;IACtD,CAAC;AACH,CAAC;AAED,SAAS,kBAAkB;IACzB,MAAM,KAAK,GAAG,OAAO,CAAC,GAAG,CAAC,oBAAoB,EAAE,WAAW,EAAE,CAAC;IAC9D,QAAQ,KAAK,EAAE,CAAC;QACd,KAAK,OAAO;YACV,OAAO,QAAQ,CAAC,KAAK,CAAC;QACxB,KAAK,MAAM;YACT,OAAO,QAAQ,CAAC,IAAI,CAAC;QACvB,KAAK,MAAM;YACT,OAAO,QAAQ,CAAC,IAAI,CAAC;QACvB,KAAK,OAAO;YACV,OAAO,QAAQ,CAAC,KAAK,CAAC;QACxB;YACE,+CAA+C;YAC/C,OAAO,OAAO,CAAC,GAAG,CAAC,gBAAgB,KAAK,MAAM;gBAC5C,CAAC,CAAC,QAAQ,CAAC,KAAK;gBAChB,CAAC,CAAC,QAAQ,CAAC,IAAI,CAAC;IACtB,CAAC;AACH,CAAC;AAED,SAAS,QAAQ,CAAC,KAAe,EAAE,OAAe,EAAE,IAAU;IAC5D,IAAI,CAAC;QACH,MAAM,YAAY,GAAG,kBAAkB,EAAE,CAAC;QAC1C,IAAI,KAAK,GAAG,YAAY,EAAE,CAAC;YACzB,OAAO,CAAC,gCAAgC;QAC1C,CAAC;QAED,YAAY,EAAE,CAAC;QACf,MAAM,SAAS,GAAG,IAAI,IAAI,EAAE,CAAC,WAAW,EAAE,CAAC;QAC3C,MAAM,SAAS,GAAG,QAAQ,CAAC,KAAK,CAAC,CAAC;QAElC,0BAA0B;QAC1B,MAAM,aAAa,GAAG,IAAI,CAAC,CAAC,CAAC,eAAe,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC;QAC/D,MAAM,OAAO,GAAG,aAAa,CAAC,CAAC,CAAC,IAAI,IAAI,CAAC,SAAS,CAAC,aAAa,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;QAEzE,MAAM,OAAO,GAAG,IAAI,SAAS,MAAM,SAAS,KAAK,OAAO,GAAG,OAAO,IAAI,CAAC;QACvE,cAAc,CAAC,cAAc,EAAE,EAAE,OAAO,EAAE,EAAE,QAAQ,EAAE,OAAO,EAAE,CAAC,CAAC;IACnE,CAAC;IAAC,MAAM,CAAC;QACP,mCAAmC;IACrC,CAAC;AACH,CAAC;AAED,MAAM,CAAC,MAAM,KAAK,GAChB,OAAO,CAAC,GAAG,CAAC,gBAAgB,KAAK,MAAM;IACvC,OAAO,CAAC,GAAG,CAAC,gBAAgB,KAAK,GAAG,CAAC;AAEvC,MAAM,UAAU,QAAQ,CAAC,OAAe,EAAE,IAA8B;IACtE,QAAQ,CAAC,QAAQ,CAAC,KAAK,EAAE,OAAO,EAAE,IAAI,CAAC,CAAC;AAC1C,CAAC;AAED,MAAM,UAAU,OAAO,CAAC,OAAe,EAAE,IAA8B;IACrE,QAAQ,CAAC,QAAQ,CAAC,IAAI,EAAE,OAAO,EAAE,IAAI,CAAC,CAAC;AACzC,CAAC;AAED,MAAM,UAAU,OAAO,CAAC,OAAe,EAAE,IAA8B;IACrE,QAAQ,CAAC,QAAQ,CAAC,IAAI,EAAE,OAAO,EAAE,IAAI,CAAC,CAAC;AACzC,CAAC;AAED,MAAM,UAAU,QAAQ,CAAC,OAAe,EAAE,IAA8B;IACtE,QAAQ,CAAC,QAAQ,CAAC,KAAK,EAAE,OAAO,EAAE,IAAI,CAAC,CAAC;AAC1C,CAAC"}
|
|
1
|
+
{"version":3,"file":"logger.js","sourceRoot":"","sources":["../src/logger.ts"],"names":[],"mappings":"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"}
|
package/package.json
CHANGED