byterover-cli 2.3.1 → 2.3.3
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/agent/infra/llm/generators/ai-sdk-content-generator.d.ts +8 -0
- package/dist/agent/infra/llm/generators/ai-sdk-content-generator.js +39 -1
- package/dist/server/core/domain/errors/task-error.js +21 -1
- package/dist/server/utils/error-helpers.js +9 -1
- package/node_modules/@campfirein/brv-transport-client/package.json +1 -1
- package/node_modules/{socket.io-parser/node_modules/debug → debug}/package.json +7 -3
- package/node_modules/{socket.io-parser/node_modules/debug → debug}/src/browser.js +2 -1
- package/node_modules/{socket.io-client/node_modules/debug → debug}/src/common.js +57 -39
- package/node_modules/socket.io-client/build/cjs/index.d.ts +2 -2
- package/node_modules/socket.io-client/build/cjs/socket.js +2 -3
- package/node_modules/socket.io-client/build/esm/index.d.ts +2 -2
- package/node_modules/socket.io-client/build/esm/package.json +1 -1
- package/node_modules/socket.io-client/build/esm/socket.js +1 -3
- package/node_modules/socket.io-client/build/esm-debug/index.d.ts +2 -2
- package/node_modules/socket.io-client/build/esm-debug/package.json +1 -1
- package/node_modules/socket.io-client/build/esm-debug/socket.js +2 -3
- package/node_modules/socket.io-client/dist/socket.io.esm.min.js +3 -3
- package/node_modules/socket.io-client/dist/socket.io.esm.min.js.map +1 -1
- package/node_modules/socket.io-client/dist/socket.io.js +89 -42
- package/node_modules/socket.io-client/dist/socket.io.js.map +1 -1
- package/node_modules/socket.io-client/dist/socket.io.min.js +3 -3
- package/node_modules/socket.io-client/dist/socket.io.min.js.map +1 -1
- package/node_modules/socket.io-client/dist/socket.io.msgpack.min.js +3 -3
- package/node_modules/socket.io-client/dist/socket.io.msgpack.min.js.map +1 -1
- package/node_modules/socket.io-client/package.json +3 -3
- package/node_modules/socket.io-parser/LICENSE +1 -1
- package/node_modules/socket.io-parser/build/cjs/binary.js +2 -3
- package/node_modules/socket.io-parser/build/cjs/index.d.ts +15 -4
- package/node_modules/socket.io-parser/build/cjs/index.js +62 -16
- package/node_modules/socket.io-parser/build/cjs/is-binary.d.ts +1 -1
- package/node_modules/socket.io-parser/build/cjs/is-binary.js +2 -3
- package/node_modules/socket.io-parser/build/esm/index.d.ts +15 -4
- package/node_modules/socket.io-parser/build/esm/index.js +60 -15
- package/node_modules/socket.io-parser/build/esm/is-binary.d.ts +1 -1
- package/node_modules/socket.io-parser/build/esm-debug/index.d.ts +15 -4
- package/node_modules/socket.io-parser/build/esm-debug/index.js +60 -15
- package/node_modules/socket.io-parser/build/esm-debug/is-binary.d.ts +1 -1
- package/node_modules/socket.io-parser/package.json +8 -22
- package/oclif.manifest.json +99 -99
- package/package.json +1 -3
- package/node_modules/socket.io-client/node_modules/debug/package.json +0 -60
- package/node_modules/socket.io-client/node_modules/debug/src/browser.js +0 -271
- package/node_modules/socket.io-parser/node_modules/debug/LICENSE +0 -20
- package/node_modules/socket.io-parser/node_modules/debug/README.md +0 -481
- package/node_modules/socket.io-parser/node_modules/debug/src/common.js +0 -274
- package/node_modules/socket.io-parser/node_modules/debug/src/index.js +0 -10
- package/node_modules/socket.io-parser/node_modules/debug/src/node.js +0 -263
- /package/node_modules/{socket.io-client/node_modules/debug → debug}/LICENSE +0 -0
- /package/node_modules/{socket.io-client/node_modules/debug → debug}/README.md +0 -0
- /package/node_modules/{socket.io-client/node_modules/debug → debug}/src/index.js +0 -0
- /package/node_modules/{socket.io-client/node_modules/debug → debug}/src/node.js +0 -0
|
@@ -31,3 +31,11 @@ export declare class AiSdkContentGenerator implements IContentGenerator {
|
|
|
31
31
|
generateContent(request: GenerateContentRequest): Promise<GenerateContentResponse>;
|
|
32
32
|
generateContentStream(request: GenerateContentRequest): AsyncGenerator<GenerateContentChunk>;
|
|
33
33
|
}
|
|
34
|
+
/**
|
|
35
|
+
* Extract a human-readable message from an AI SDK stream error.
|
|
36
|
+
*
|
|
37
|
+
* The @ai-sdk/openai Responses API provider passes the raw SSE chunk
|
|
38
|
+
* object as the error value (not an Error instance). The actual message
|
|
39
|
+
* is nested at `.error.message`.
|
|
40
|
+
*/
|
|
41
|
+
export declare function extractStreamErrorMessage(error: unknown): string;
|
|
@@ -89,7 +89,7 @@ export class AiSdkContentGenerator {
|
|
|
89
89
|
// Throw the error so RetryableContentGenerator can catch and retry it.
|
|
90
90
|
// Yielding it as content would swallow the error and prevent retry logic
|
|
91
91
|
// from working (e.g., for 429 rate limit errors).
|
|
92
|
-
throw event.error instanceof Error ? event.error : new Error(
|
|
92
|
+
throw event.error instanceof Error ? event.error : new Error(extractStreamErrorMessage(event.error));
|
|
93
93
|
}
|
|
94
94
|
case 'finish-step': {
|
|
95
95
|
yield {
|
|
@@ -139,6 +139,44 @@ export class AiSdkContentGenerator {
|
|
|
139
139
|
}
|
|
140
140
|
}
|
|
141
141
|
}
|
|
142
|
+
/**
|
|
143
|
+
* Extract a human-readable message from an AI SDK stream error.
|
|
144
|
+
*
|
|
145
|
+
* The @ai-sdk/openai Responses API provider passes the raw SSE chunk
|
|
146
|
+
* object as the error value (not an Error instance). The actual message
|
|
147
|
+
* is nested at `.error.message`.
|
|
148
|
+
*/
|
|
149
|
+
export function extractStreamErrorMessage(error) {
|
|
150
|
+
if (typeof error === 'string') {
|
|
151
|
+
return error;
|
|
152
|
+
}
|
|
153
|
+
if (error && typeof error === 'object') {
|
|
154
|
+
// OpenAI Responses API shape: { type: "error", error: { message: "..." } }
|
|
155
|
+
if ('error' in error) {
|
|
156
|
+
const nested = error.error;
|
|
157
|
+
if (nested && typeof nested === 'object' && 'message' in nested) {
|
|
158
|
+
const msg = nested.message;
|
|
159
|
+
if (typeof msg === 'string') {
|
|
160
|
+
return msg;
|
|
161
|
+
}
|
|
162
|
+
}
|
|
163
|
+
}
|
|
164
|
+
// Direct message property: { message: "..." }
|
|
165
|
+
if ('message' in error) {
|
|
166
|
+
const msg = error.message;
|
|
167
|
+
if (typeof msg === 'string') {
|
|
168
|
+
return msg;
|
|
169
|
+
}
|
|
170
|
+
}
|
|
171
|
+
try {
|
|
172
|
+
return JSON.stringify(error);
|
|
173
|
+
}
|
|
174
|
+
catch {
|
|
175
|
+
// circular reference or other stringify failure
|
|
176
|
+
}
|
|
177
|
+
}
|
|
178
|
+
return String(error);
|
|
179
|
+
}
|
|
142
180
|
/**
|
|
143
181
|
* Map AI SDK finish reason to our finish reason format.
|
|
144
182
|
*/
|
|
@@ -82,7 +82,27 @@ export function serializeTaskError(error) {
|
|
|
82
82
|
name: error.name,
|
|
83
83
|
};
|
|
84
84
|
}
|
|
85
|
-
// Unknown error type
|
|
85
|
+
// Unknown error type — extract message if possible, JSON.stringify to avoid "[object Object]"
|
|
86
|
+
if (error && typeof error === 'object') {
|
|
87
|
+
if ('message' in error) {
|
|
88
|
+
const msg = error.message;
|
|
89
|
+
if (typeof msg === 'string') {
|
|
90
|
+
return {
|
|
91
|
+
message: msg,
|
|
92
|
+
name: 'Error',
|
|
93
|
+
};
|
|
94
|
+
}
|
|
95
|
+
}
|
|
96
|
+
try {
|
|
97
|
+
return {
|
|
98
|
+
message: JSON.stringify(error),
|
|
99
|
+
name: 'Error',
|
|
100
|
+
};
|
|
101
|
+
}
|
|
102
|
+
catch {
|
|
103
|
+
// circular reference — fall through
|
|
104
|
+
}
|
|
105
|
+
}
|
|
86
106
|
return {
|
|
87
107
|
message: String(error),
|
|
88
108
|
name: 'Error',
|
|
@@ -32,7 +32,15 @@ export function getErrorMessage(error) {
|
|
|
32
32
|
return message;
|
|
33
33
|
}
|
|
34
34
|
}
|
|
35
|
-
// Fallback for
|
|
35
|
+
// Fallback: JSON for objects (avoids "[object Object]"), String for primitives
|
|
36
|
+
if (error && typeof error === 'object') {
|
|
37
|
+
try {
|
|
38
|
+
return JSON.stringify(error);
|
|
39
|
+
}
|
|
40
|
+
catch {
|
|
41
|
+
return String(error);
|
|
42
|
+
}
|
|
43
|
+
}
|
|
36
44
|
return String(error);
|
|
37
45
|
}
|
|
38
46
|
/**
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "debug",
|
|
3
|
-
"version": "4.3
|
|
3
|
+
"version": "4.4.3",
|
|
4
4
|
"repository": {
|
|
5
5
|
"type": "git",
|
|
6
6
|
"url": "git://github.com/debug-js/debug.git"
|
|
@@ -26,7 +26,7 @@
|
|
|
26
26
|
"scripts": {
|
|
27
27
|
"lint": "xo",
|
|
28
28
|
"test": "npm run test:node && npm run test:browser && npm run lint",
|
|
29
|
-
"test:node": "
|
|
29
|
+
"test:node": "mocha test.js test.node.js",
|
|
30
30
|
"test:browser": "karma start --single-run",
|
|
31
31
|
"test:coverage": "cat ./coverage/lcov.info | coveralls"
|
|
32
32
|
},
|
|
@@ -37,7 +37,6 @@
|
|
|
37
37
|
"brfs": "^2.0.1",
|
|
38
38
|
"browserify": "^16.2.3",
|
|
39
39
|
"coveralls": "^3.0.2",
|
|
40
|
-
"istanbul": "^0.4.5",
|
|
41
40
|
"karma": "^3.1.4",
|
|
42
41
|
"karma-browserify": "^6.0.0",
|
|
43
42
|
"karma-chrome-launcher": "^2.2.0",
|
|
@@ -56,5 +55,10 @@
|
|
|
56
55
|
"browser": "./src/browser.js",
|
|
57
56
|
"engines": {
|
|
58
57
|
"node": ">=6.0"
|
|
58
|
+
},
|
|
59
|
+
"xo": {
|
|
60
|
+
"rules": {
|
|
61
|
+
"import/extensions": "off"
|
|
62
|
+
}
|
|
59
63
|
}
|
|
60
64
|
}
|
|
@@ -129,6 +129,7 @@ function useColors() {
|
|
|
129
129
|
|
|
130
130
|
// Is webkit? http://stackoverflow.com/a/16459606/376773
|
|
131
131
|
// document is undefined in react-native: https://github.com/facebook/react-native/pull/1632
|
|
132
|
+
// eslint-disable-next-line no-return-assign
|
|
132
133
|
return (typeof document !== 'undefined' && document.documentElement && document.documentElement.style && document.documentElement.style.WebkitAppearance) ||
|
|
133
134
|
// Is firebug? http://stackoverflow.com/a/398120/376773
|
|
134
135
|
(typeof window !== 'undefined' && window.console && (window.console.firebug || (window.console.exception && window.console.table))) ||
|
|
@@ -218,7 +219,7 @@ function save(namespaces) {
|
|
|
218
219
|
function load() {
|
|
219
220
|
let r;
|
|
220
221
|
try {
|
|
221
|
-
r = exports.storage.getItem('debug');
|
|
222
|
+
r = exports.storage.getItem('debug') || exports.storage.getItem('DEBUG') ;
|
|
222
223
|
} catch (error) {
|
|
223
224
|
// Swallow
|
|
224
225
|
// XXX (@Qix-) should we be logging these?
|
|
@@ -166,24 +166,62 @@ function setup(env) {
|
|
|
166
166
|
createDebug.names = [];
|
|
167
167
|
createDebug.skips = [];
|
|
168
168
|
|
|
169
|
-
|
|
170
|
-
|
|
171
|
-
|
|
172
|
-
|
|
173
|
-
|
|
174
|
-
|
|
175
|
-
|
|
176
|
-
|
|
169
|
+
const split = (typeof namespaces === 'string' ? namespaces : '')
|
|
170
|
+
.trim()
|
|
171
|
+
.replace(/\s+/g, ',')
|
|
172
|
+
.split(',')
|
|
173
|
+
.filter(Boolean);
|
|
174
|
+
|
|
175
|
+
for (const ns of split) {
|
|
176
|
+
if (ns[0] === '-') {
|
|
177
|
+
createDebug.skips.push(ns.slice(1));
|
|
178
|
+
} else {
|
|
179
|
+
createDebug.names.push(ns);
|
|
177
180
|
}
|
|
181
|
+
}
|
|
182
|
+
}
|
|
178
183
|
|
|
179
|
-
|
|
180
|
-
|
|
181
|
-
|
|
182
|
-
|
|
184
|
+
/**
|
|
185
|
+
* Checks if the given string matches a namespace template, honoring
|
|
186
|
+
* asterisks as wildcards.
|
|
187
|
+
*
|
|
188
|
+
* @param {String} search
|
|
189
|
+
* @param {String} template
|
|
190
|
+
* @return {Boolean}
|
|
191
|
+
*/
|
|
192
|
+
function matchesTemplate(search, template) {
|
|
193
|
+
let searchIndex = 0;
|
|
194
|
+
let templateIndex = 0;
|
|
195
|
+
let starIndex = -1;
|
|
196
|
+
let matchIndex = 0;
|
|
197
|
+
|
|
198
|
+
while (searchIndex < search.length) {
|
|
199
|
+
if (templateIndex < template.length && (template[templateIndex] === search[searchIndex] || template[templateIndex] === '*')) {
|
|
200
|
+
// Match character or proceed with wildcard
|
|
201
|
+
if (template[templateIndex] === '*') {
|
|
202
|
+
starIndex = templateIndex;
|
|
203
|
+
matchIndex = searchIndex;
|
|
204
|
+
templateIndex++; // Skip the '*'
|
|
205
|
+
} else {
|
|
206
|
+
searchIndex++;
|
|
207
|
+
templateIndex++;
|
|
208
|
+
}
|
|
209
|
+
} else if (starIndex !== -1) { // eslint-disable-line no-negated-condition
|
|
210
|
+
// Backtrack to the last '*' and try to match more characters
|
|
211
|
+
templateIndex = starIndex + 1;
|
|
212
|
+
matchIndex++;
|
|
213
|
+
searchIndex = matchIndex;
|
|
183
214
|
} else {
|
|
184
|
-
|
|
215
|
+
return false; // No match
|
|
185
216
|
}
|
|
186
217
|
}
|
|
218
|
+
|
|
219
|
+
// Handle trailing '*' in template
|
|
220
|
+
while (templateIndex < template.length && template[templateIndex] === '*') {
|
|
221
|
+
templateIndex++;
|
|
222
|
+
}
|
|
223
|
+
|
|
224
|
+
return templateIndex === template.length;
|
|
187
225
|
}
|
|
188
226
|
|
|
189
227
|
/**
|
|
@@ -194,8 +232,8 @@ function setup(env) {
|
|
|
194
232
|
*/
|
|
195
233
|
function disable() {
|
|
196
234
|
const namespaces = [
|
|
197
|
-
...createDebug.names
|
|
198
|
-
...createDebug.skips.map(
|
|
235
|
+
...createDebug.names,
|
|
236
|
+
...createDebug.skips.map(namespace => '-' + namespace)
|
|
199
237
|
].join(',');
|
|
200
238
|
createDebug.enable('');
|
|
201
239
|
return namespaces;
|
|
@@ -209,21 +247,14 @@ function setup(env) {
|
|
|
209
247
|
* @api public
|
|
210
248
|
*/
|
|
211
249
|
function enabled(name) {
|
|
212
|
-
|
|
213
|
-
|
|
214
|
-
}
|
|
215
|
-
|
|
216
|
-
let i;
|
|
217
|
-
let len;
|
|
218
|
-
|
|
219
|
-
for (i = 0, len = createDebug.skips.length; i < len; i++) {
|
|
220
|
-
if (createDebug.skips[i].test(name)) {
|
|
250
|
+
for (const skip of createDebug.skips) {
|
|
251
|
+
if (matchesTemplate(name, skip)) {
|
|
221
252
|
return false;
|
|
222
253
|
}
|
|
223
254
|
}
|
|
224
255
|
|
|
225
|
-
for (
|
|
226
|
-
if (
|
|
256
|
+
for (const ns of createDebug.names) {
|
|
257
|
+
if (matchesTemplate(name, ns)) {
|
|
227
258
|
return true;
|
|
228
259
|
}
|
|
229
260
|
}
|
|
@@ -231,19 +262,6 @@ function setup(env) {
|
|
|
231
262
|
return false;
|
|
232
263
|
}
|
|
233
264
|
|
|
234
|
-
/**
|
|
235
|
-
* Convert regexp to namespace
|
|
236
|
-
*
|
|
237
|
-
* @param {RegExp} regxep
|
|
238
|
-
* @return {String} namespace
|
|
239
|
-
* @api private
|
|
240
|
-
*/
|
|
241
|
-
function toNamespace(regexp) {
|
|
242
|
-
return regexp.toString()
|
|
243
|
-
.substring(2, regexp.toString().length - 2)
|
|
244
|
-
.replace(/\.\*\?$/, '*');
|
|
245
|
-
}
|
|
246
|
-
|
|
247
265
|
/**
|
|
248
266
|
* Coerce `val`.
|
|
249
267
|
*
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import { Manager, ManagerOptions } from "./manager.js";
|
|
2
|
-
import { Socket, SocketOptions } from "./socket.js";
|
|
2
|
+
import { DisconnectDescription, Socket, SocketOptions } from "./socket.js";
|
|
3
3
|
/**
|
|
4
4
|
* Looks up an existing `Manager` for multiplexing.
|
|
5
5
|
* If the user summons:
|
|
@@ -25,5 +25,5 @@ export { protocol } from "socket.io-parser";
|
|
|
25
25
|
*
|
|
26
26
|
* @public
|
|
27
27
|
*/
|
|
28
|
-
export { Manager, ManagerOptions, Socket, SocketOptions, lookup as io, lookup as connect, lookup as default, };
|
|
28
|
+
export { DisconnectDescription, Manager, ManagerOptions, Socket, SocketOptions, lookup as io, lookup as connect, lookup as default, };
|
|
29
29
|
export { Fetch, NodeXHR, XHR, NodeWebSocket, WebSocket, WebTransport, } from "engine.io-client";
|
|
@@ -358,8 +358,7 @@ class Socket extends component_emitter_1.Emitter {
|
|
|
358
358
|
};
|
|
359
359
|
args.push((err, ...responseArgs) => {
|
|
360
360
|
if (packet !== this._queue[0]) {
|
|
361
|
-
|
|
362
|
-
return;
|
|
361
|
+
return debug("packet [%d] already acknowledged", packet.id);
|
|
363
362
|
}
|
|
364
363
|
const hasError = err !== null;
|
|
365
364
|
if (hasError) {
|
|
@@ -615,8 +614,8 @@ class Socket extends component_emitter_1.Emitter {
|
|
|
615
614
|
this._pid = pid; // defined only if connection state recovery is enabled
|
|
616
615
|
this.connected = true;
|
|
617
616
|
this.emitBuffered();
|
|
618
|
-
this.emitReserved("connect");
|
|
619
617
|
this._drainQueue(true);
|
|
618
|
+
this.emitReserved("connect");
|
|
620
619
|
}
|
|
621
620
|
/**
|
|
622
621
|
* Emit buffered events (received and emitted).
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import { Manager, ManagerOptions } from "./manager.js";
|
|
2
|
-
import { Socket, SocketOptions } from "./socket.js";
|
|
2
|
+
import { DisconnectDescription, Socket, SocketOptions } from "./socket.js";
|
|
3
3
|
/**
|
|
4
4
|
* Looks up an existing `Manager` for multiplexing.
|
|
5
5
|
* If the user summons:
|
|
@@ -25,5 +25,5 @@ export { protocol } from "socket.io-parser";
|
|
|
25
25
|
*
|
|
26
26
|
* @public
|
|
27
27
|
*/
|
|
28
|
-
export { Manager, ManagerOptions, Socket, SocketOptions, lookup as io, lookup as connect, lookup as default, };
|
|
28
|
+
export { DisconnectDescription, Manager, ManagerOptions, Socket, SocketOptions, lookup as io, lookup as connect, lookup as default, };
|
|
29
29
|
export { Fetch, NodeXHR, XHR, NodeWebSocket, WebSocket, WebTransport, } from "engine.io-client";
|
|
@@ -346,8 +346,6 @@ export class Socket extends Emitter {
|
|
|
346
346
|
};
|
|
347
347
|
args.push((err, ...responseArgs) => {
|
|
348
348
|
if (packet !== this._queue[0]) {
|
|
349
|
-
// the packet has already been acknowledged
|
|
350
|
-
return;
|
|
351
349
|
}
|
|
352
350
|
const hasError = err !== null;
|
|
353
351
|
if (hasError) {
|
|
@@ -590,8 +588,8 @@ export class Socket extends Emitter {
|
|
|
590
588
|
this._pid = pid; // defined only if connection state recovery is enabled
|
|
591
589
|
this.connected = true;
|
|
592
590
|
this.emitBuffered();
|
|
593
|
-
this.emitReserved("connect");
|
|
594
591
|
this._drainQueue(true);
|
|
592
|
+
this.emitReserved("connect");
|
|
595
593
|
}
|
|
596
594
|
/**
|
|
597
595
|
* Emit buffered events (received and emitted).
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import { Manager, ManagerOptions } from "./manager.js";
|
|
2
|
-
import { Socket, SocketOptions } from "./socket.js";
|
|
2
|
+
import { DisconnectDescription, Socket, SocketOptions } from "./socket.js";
|
|
3
3
|
/**
|
|
4
4
|
* Looks up an existing `Manager` for multiplexing.
|
|
5
5
|
* If the user summons:
|
|
@@ -25,5 +25,5 @@ export { protocol } from "socket.io-parser";
|
|
|
25
25
|
*
|
|
26
26
|
* @public
|
|
27
27
|
*/
|
|
28
|
-
export { Manager, ManagerOptions, Socket, SocketOptions, lookup as io, lookup as connect, lookup as default, };
|
|
28
|
+
export { DisconnectDescription, Manager, ManagerOptions, Socket, SocketOptions, lookup as io, lookup as connect, lookup as default, };
|
|
29
29
|
export { Fetch, NodeXHR, XHR, NodeWebSocket, WebSocket, WebTransport, } from "engine.io-client";
|
|
@@ -352,8 +352,7 @@ export class Socket extends Emitter {
|
|
|
352
352
|
};
|
|
353
353
|
args.push((err, ...responseArgs) => {
|
|
354
354
|
if (packet !== this._queue[0]) {
|
|
355
|
-
|
|
356
|
-
return;
|
|
355
|
+
return debug("packet [%d] already acknowledged", packet.id);
|
|
357
356
|
}
|
|
358
357
|
const hasError = err !== null;
|
|
359
358
|
if (hasError) {
|
|
@@ -609,8 +608,8 @@ export class Socket extends Emitter {
|
|
|
609
608
|
this._pid = pid; // defined only if connection state recovery is enabled
|
|
610
609
|
this.connected = true;
|
|
611
610
|
this.emitBuffered();
|
|
612
|
-
this.emitReserved("connect");
|
|
613
611
|
this._drainQueue(true);
|
|
612
|
+
this.emitReserved("connect");
|
|
614
613
|
}
|
|
615
614
|
/**
|
|
616
615
|
* Emit buffered events (received and emitted).
|