@stackfactor/client-api 1.3.4 → 1.3.5
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/cjs/lib/integrations/contentGenerator.d.ts.map +1 -1
- package/dist/cjs/lib/integrations/contentGenerator.js +6 -0
- package/dist/cjs/lib/integrations/contentGenerator.js.map +1 -1
- package/dist/cjs/lib/labSessions.d.ts.map +1 -1
- package/dist/cjs/lib/labSessions.js +6 -0
- package/dist/cjs/lib/labSessions.js.map +1 -1
- package/dist/cjs/lib/socketError.d.ts +19 -10
- package/dist/cjs/lib/socketError.d.ts.map +1 -1
- package/dist/cjs/lib/socketError.js +38 -1
- package/dist/cjs/lib/socketError.js.map +1 -1
- package/dist/esm/lib/integrations/contentGenerator.d.ts.map +1 -1
- package/dist/esm/lib/integrations/contentGenerator.js +6 -0
- package/dist/esm/lib/integrations/contentGenerator.js.map +1 -1
- package/dist/esm/lib/labSessions.d.ts.map +1 -1
- package/dist/esm/lib/labSessions.js +6 -0
- package/dist/esm/lib/labSessions.js.map +1 -1
- package/dist/esm/lib/socketError.d.ts +19 -10
- package/dist/esm/lib/socketError.d.ts.map +1 -1
- package/dist/esm/lib/socketError.js +36 -0
- package/dist/esm/lib/socketError.js.map +1 -1
- package/package.json +1 -1
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"contentGenerator.d.ts","sourceRoot":"","sources":["../../../../src/lib/integrations/contentGenerator.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"contentGenerator.d.ts","sourceRoot":"","sources":["../../../../src/lib/integrations/contentGenerator.ts"],"names":[],"mappings":"AAuBA,UAAU,YAAY;IACpB,QAAQ,EAAE,MAAM,CAAC;CAClB;AAED;;;;;;;;;;GAUG;AACH,eAAO,MAAM,eAAe,GAC1B,MAAM,MAAM,EACZ,aAAa,MAAM,EACnB,eAAe,MAAM,EACrB,OAAO,MAAM,EACb,mBAAkB,CAAC,CAAC,QAAQ,EAAE,YAAY,KAAK,IAAI,CAAC,GAAG,IAAW,EAClE,YAAW,MAAM,GAAG,IAAW,KAC9B,OAAO,CAAC,MAAM,CAiDhB,CAAC;AAEF;;;;;;;;;GASG;AACH,eAAO,MAAM,oBAAoB,GAC/B,IAAI,MAAM,EACV,aAAa,MAAM,EACnB,MAAM,MAAM,EACZ,aAAa,MAAM,EACnB,UAAU,MAAM,EAChB,OAAO,MAAM,KACZ,OAAO,CAAC,MAAM,CAwBhB,CAAC"}
|
|
@@ -4,6 +4,7 @@ exports.generateContentAsync = exports.generateContent = void 0;
|
|
|
4
4
|
const axiosClient_js_1 = require("../axiosClient.js");
|
|
5
5
|
const utils_js_1 = require("../utils.js");
|
|
6
6
|
const socket_io_client_1 = require("socket.io-client");
|
|
7
|
+
const socketError_js_1 = require("../socketError.js");
|
|
7
8
|
/**
|
|
8
9
|
* Generate content
|
|
9
10
|
* @param {Array<String>} data
|
|
@@ -51,6 +52,11 @@ const generateContent = (data, contentType, integrationId, token, onProgressStat
|
|
|
51
52
|
socket.disconnect();
|
|
52
53
|
resolve(data);
|
|
53
54
|
});
|
|
55
|
+
// A refused handshake settles nothing on its own — see handshakeRefusal.
|
|
56
|
+
socket.on("connect_error", (err) => {
|
|
57
|
+
socket.disconnect();
|
|
58
|
+
reject((0, socketError_js_1.handshakeRefusal)(err));
|
|
59
|
+
});
|
|
54
60
|
socket.on("error", (err) => {
|
|
55
61
|
socket.disconnect();
|
|
56
62
|
reject(err);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"contentGenerator.js","sourceRoot":"","sources":["../../../../src/lib/integrations/contentGenerator.ts"],"names":[],"mappings":";;;AACA,sDAA2C;AAC3C,0CAAyC;AACzC,uDAAsC;
|
|
1
|
+
{"version":3,"file":"contentGenerator.js","sourceRoot":"","sources":["../../../../src/lib/integrations/contentGenerator.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"labSessions.d.ts","sourceRoot":"","sources":["../../../src/lib/labSessions.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"labSessions.d.ts","sourceRoot":"","sources":["../../../src/lib/labSessions.ts"],"names":[],"mappings":"AAYA,UAAU,YAAY;IACpB,QAAQ,EAAE,MAAM,CAAC;CAClB;AAED;;;;;GAKG;AACH,eAAO,MAAM,gBAAgB,GAC3B,MAAM,MAAM,EACZ,OAAO,MAAM,KACZ,OAAO,CAAC,MAAM,CAehB,CAAC;AAEF;;;;GAIG;AACH,eAAO,MAAM,gBAAgB,GAC3B,IAAI,MAAM,EACV,OAAO,MAAM,KACZ,OAAO,CAAC,MAAM,CAgBhB,CAAC;AAEF;;;;;GAKG;AACH,eAAO,MAAM,+BAA+B,GAC1C,aAAa,MAAM,EACnB,OAAO,MAAM,KACZ,OAAO,CAAC,MAAM,CAchB,CAAC;AAEF;;;;;GAKG;AACH,eAAO,MAAM,sBAAsB,GACjC,IAAI,MAAM,EACV,OAAO,MAAM,KACZ,OAAO,CAAC,MAAM,CAahB,CAAC;AAEF;;;;GAIG;AACH,eAAO,MAAM,qBAAqB,GAAI,OAAO,MAAM,KAAG,OAAO,CAAC,MAAM,CAanE,CAAC;AAEF;;;;;;GAMG;AACH,eAAO,MAAM,gBAAgB,GAC3B,IAAI,MAAM,EACV,MAAM,SAAS,GAAG,SAAS,YAAY,EACvC,OAAO,MAAM,EACb,mBAAkB,CAAC,CAAC,QAAQ,EAAE,YAAY,KAAK,IAAI,CAAC,GAAG,IAAW,KACjE,OAAO,CAAC,MAAM,CA6ChB,CAAC;AAEF;;;;;;GAMG;AACH,eAAO,MAAM,gBAAgB,GAC3B,IAAI,MAAM,EACV,MAAM,MAAM,EACZ,OAAO,MAAM,KACZ,OAAO,CAAC,MAAM,CAehB,CAAC"}
|
|
@@ -4,6 +4,7 @@ exports.updateLabSession = exports.launchLabSession = exports.getLabSessionsForU
|
|
|
4
4
|
const axiosClient_js_1 = require("./axiosClient.js");
|
|
5
5
|
const utils_js_1 = require("./utils.js");
|
|
6
6
|
const socket_io_client_1 = require("socket.io-client");
|
|
7
|
+
const socketError_js_1 = require("./socketError.js");
|
|
7
8
|
/**
|
|
8
9
|
* Create a lab session
|
|
9
10
|
* @param {object} data The lab session data
|
|
@@ -143,6 +144,11 @@ const launchLabSession = (id, mode = "default", token, onProgressStatus = null)
|
|
|
143
144
|
socket.disconnect();
|
|
144
145
|
resolve(data);
|
|
145
146
|
});
|
|
147
|
+
// A refused handshake settles nothing on its own — see handshakeRefusal.
|
|
148
|
+
socket.on("connect_error", (err) => {
|
|
149
|
+
socket.disconnect();
|
|
150
|
+
reject((0, socketError_js_1.handshakeRefusal)(err));
|
|
151
|
+
});
|
|
146
152
|
socket.on("error", (err) => {
|
|
147
153
|
socket.disconnect();
|
|
148
154
|
reject(err);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"labSessions.js","sourceRoot":"","sources":["../../../src/lib/labSessions.ts"],"names":[],"mappings":";;;AACA,qDAA0C;AAC1C,yCAAwC;AACxC,uDAAsC;
|
|
1
|
+
{"version":3,"file":"labSessions.js","sourceRoot":"","sources":["../../../src/lib/labSessions.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,13 +1,3 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* Error payload emitted on the `error` socket event for any long-running
|
|
3
|
-
* realtime flow (role import/create-from-template, content generation,
|
|
4
|
-
* lab session launch, etc.). Mirrors the shape produced by the backend's
|
|
5
|
-
* `errorHandling.processForSocket` helper.
|
|
6
|
-
*
|
|
7
|
-
* `details` is populated for express-validator field errors (i.e. malformed
|
|
8
|
-
* input rejected by the socket validation chain) and for any other error
|
|
9
|
-
* created via `errorHandler.create(code, message, details)`.
|
|
10
|
-
*/
|
|
11
1
|
export interface SocketError {
|
|
12
2
|
code: number;
|
|
13
3
|
message: string;
|
|
@@ -19,4 +9,23 @@ export interface SocketError {
|
|
|
19
9
|
* `unknown`/`any`.
|
|
20
10
|
*/
|
|
21
11
|
export declare const isSocketError: (value: unknown) => value is SocketError;
|
|
12
|
+
/**
|
|
13
|
+
* The error a refused handshake becomes, in the same shape as a refusal the
|
|
14
|
+
* server sends over an established socket.
|
|
15
|
+
*
|
|
16
|
+
* socket.io answers a handshake the backend's `io.use` middleware rejects with
|
|
17
|
+
* a `connect_error` carrying the middleware's message — "UNAUTHORIZED" for a
|
|
18
|
+
* missing, expired or revoked token — and, with reconnection off, nothing
|
|
19
|
+
* else. The socket helpers listened for "error" and "disconnect" only, so a
|
|
20
|
+
* refused connection settled neither way and the caller hung until its own
|
|
21
|
+
* timeout (production, 2026-09-23: a mass quiz generation whose access token
|
|
22
|
+
* expired mid-run left every later task waiting five minutes to report
|
|
23
|
+
* "timed out"). The refusal is now a rejection the caller can act on: 401 when
|
|
24
|
+
* the backend said so, 503 for anything else on the way in.
|
|
25
|
+
* @param error - The `connect_error` payload
|
|
26
|
+
* @returns The refusal as a SocketError
|
|
27
|
+
*/
|
|
28
|
+
export declare const handshakeRefusal: (error: {
|
|
29
|
+
message?: string;
|
|
30
|
+
} | undefined) => SocketError;
|
|
22
31
|
//# sourceMappingURL=socketError.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"socketError.d.ts","sourceRoot":"","sources":["../../../src/lib/socketError.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"socketError.d.ts","sourceRoot":"","sources":["../../../src/lib/socketError.ts"],"names":[],"mappings":"AAYA,MAAM,WAAW,WAAW;IAC1B,IAAI,EAAE,MAAM,CAAC;IACb,OAAO,EAAE,MAAM,CAAC;IAChB,OAAO,CAAC,EAAE,OAAO,CAAC;CACnB;AAED;;;;GAIG;AACH,eAAO,MAAM,aAAa,GAAI,OAAO,OAAO,KAAG,KAAK,IAAI,WAOvD,CAAC;AAEF;;;;;;;;;;;;;;;GAeG;AACH,eAAO,MAAM,gBAAgB,GAC3B,OAAO;IAAE,OAAO,CAAC,EAAE,MAAM,CAAA;CAAE,GAAG,SAAS,KACtC,WASF,CAAC"}
|
|
@@ -1,6 +1,17 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.isSocketError = void 0;
|
|
3
|
+
exports.handshakeRefusal = exports.isSocketError = void 0;
|
|
4
|
+
/**
|
|
5
|
+
* Error payload emitted on the `error` socket event for any long-running
|
|
6
|
+
* realtime flow (role import/create-from-template, content generation,
|
|
7
|
+
* lab session launch, etc.). Mirrors the shape produced by the backend's
|
|
8
|
+
* `errorHandling.processForSocket` helper.
|
|
9
|
+
*
|
|
10
|
+
* `details` is populated for express-validator field errors (i.e. malformed
|
|
11
|
+
* input rejected by the socket validation chain) and for any other error
|
|
12
|
+
* created via `errorHandler.create(code, message, details)`.
|
|
13
|
+
*/
|
|
14
|
+
const constants_js_1 = require("./constants.js");
|
|
4
15
|
/**
|
|
5
16
|
* Type guard to narrow an unknown rejection value to a `SocketError`.
|
|
6
17
|
* Useful in consumer `.catch` blocks where the rejection arrives as
|
|
@@ -13,4 +24,30 @@ const isSocketError = (value) => {
|
|
|
13
24
|
typeof value.message === "string");
|
|
14
25
|
};
|
|
15
26
|
exports.isSocketError = isSocketError;
|
|
27
|
+
/**
|
|
28
|
+
* The error a refused handshake becomes, in the same shape as a refusal the
|
|
29
|
+
* server sends over an established socket.
|
|
30
|
+
*
|
|
31
|
+
* socket.io answers a handshake the backend's `io.use` middleware rejects with
|
|
32
|
+
* a `connect_error` carrying the middleware's message — "UNAUTHORIZED" for a
|
|
33
|
+
* missing, expired or revoked token — and, with reconnection off, nothing
|
|
34
|
+
* else. The socket helpers listened for "error" and "disconnect" only, so a
|
|
35
|
+
* refused connection settled neither way and the caller hung until its own
|
|
36
|
+
* timeout (production, 2026-09-23: a mass quiz generation whose access token
|
|
37
|
+
* expired mid-run left every later task waiting five minutes to report
|
|
38
|
+
* "timed out"). The refusal is now a rejection the caller can act on: 401 when
|
|
39
|
+
* the backend said so, 503 for anything else on the way in.
|
|
40
|
+
* @param error - The `connect_error` payload
|
|
41
|
+
* @returns The refusal as a SocketError
|
|
42
|
+
*/
|
|
43
|
+
const handshakeRefusal = (error) => {
|
|
44
|
+
const message = error?.message || "Connection refused";
|
|
45
|
+
return {
|
|
46
|
+
code: message === "UNAUTHORIZED"
|
|
47
|
+
? constants_js_1.RESPONSE_TYPE.UNAUTHORIZED
|
|
48
|
+
: constants_js_1.RESPONSE_TYPE.SERVICE_UNAVAILABLE,
|
|
49
|
+
message,
|
|
50
|
+
};
|
|
51
|
+
};
|
|
52
|
+
exports.handshakeRefusal = handshakeRefusal;
|
|
16
53
|
//# sourceMappingURL=socketError.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"socketError.js","sourceRoot":"","sources":["../../../src/lib/socketError.ts"],"names":[],"mappings":";;;
|
|
1
|
+
{"version":3,"file":"socketError.js","sourceRoot":"","sources":["../../../src/lib/socketError.ts"],"names":[],"mappings":";;;AAAA;;;;;;;;;GASG;AACH,iDAA+C;AAQ/C;;;;GAIG;AACI,MAAM,aAAa,GAAG,CAAC,KAAc,EAAwB,EAAE;IACpE,OAAO,CACL,OAAO,KAAK,KAAK,QAAQ;QACzB,KAAK,KAAK,IAAI;QACd,OAAQ,KAA4B,CAAC,IAAI,KAAK,QAAQ;QACtD,OAAQ,KAA+B,CAAC,OAAO,KAAK,QAAQ,CAC7D,CAAC;AACJ,CAAC,CAAC;AAPW,QAAA,aAAa,iBAOxB;AAEF;;;;;;;;;;;;;;;GAeG;AACI,MAAM,gBAAgB,GAAG,CAC9B,KAAuC,EAC1B,EAAE;IACf,MAAM,OAAO,GAAG,KAAK,EAAE,OAAO,IAAI,oBAAoB,CAAC;IACvD,OAAO;QACL,IAAI,EACF,OAAO,KAAK,cAAc;YACxB,CAAC,CAAC,4BAAa,CAAC,YAAY;YAC5B,CAAC,CAAC,4BAAa,CAAC,mBAAmB;QACvC,OAAO;KACR,CAAC;AACJ,CAAC,CAAC;AAXW,QAAA,gBAAgB,oBAW3B"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"contentGenerator.d.ts","sourceRoot":"","sources":["../../../../src/lib/integrations/contentGenerator.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"contentGenerator.d.ts","sourceRoot":"","sources":["../../../../src/lib/integrations/contentGenerator.ts"],"names":[],"mappings":"AAuBA,UAAU,YAAY;IACpB,QAAQ,EAAE,MAAM,CAAC;CAClB;AAED;;;;;;;;;;GAUG;AACH,eAAO,MAAM,eAAe,GAC1B,MAAM,MAAM,EACZ,aAAa,MAAM,EACnB,eAAe,MAAM,EACrB,OAAO,MAAM,EACb,mBAAkB,CAAC,CAAC,QAAQ,EAAE,YAAY,KAAK,IAAI,CAAC,GAAG,IAAW,EAClE,YAAW,MAAM,GAAG,IAAW,KAC9B,OAAO,CAAC,MAAM,CAiDhB,CAAC;AAEF;;;;;;;;;GASG;AACH,eAAO,MAAM,oBAAoB,GAC/B,IAAI,MAAM,EACV,aAAa,MAAM,EACnB,MAAM,MAAM,EACZ,aAAa,MAAM,EACnB,UAAU,MAAM,EAChB,OAAO,MAAM,KACZ,OAAO,CAAC,MAAM,CAwBhB,CAAC"}
|
|
@@ -1,6 +1,7 @@
|
|
|
1
1
|
import { client } from "../axiosClient.js";
|
|
2
2
|
import { getBaseUrl } from "../utils.js";
|
|
3
3
|
import { io } from "socket.io-client";
|
|
4
|
+
import { handshakeRefusal } from "../socketError.js";
|
|
4
5
|
/**
|
|
5
6
|
* Generate content
|
|
6
7
|
* @param {Array<String>} data
|
|
@@ -48,6 +49,11 @@ export const generateContent = (data, contentType, integrationId, token, onProgr
|
|
|
48
49
|
socket.disconnect();
|
|
49
50
|
resolve(data);
|
|
50
51
|
});
|
|
52
|
+
// A refused handshake settles nothing on its own — see handshakeRefusal.
|
|
53
|
+
socket.on("connect_error", (err) => {
|
|
54
|
+
socket.disconnect();
|
|
55
|
+
reject(handshakeRefusal(err));
|
|
56
|
+
});
|
|
51
57
|
socket.on("error", (err) => {
|
|
52
58
|
socket.disconnect();
|
|
53
59
|
reject(err);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"contentGenerator.js","sourceRoot":"","sources":["../../../../src/lib/integrations/contentGenerator.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,MAAM,EAAE,MAAM,mBAAmB,CAAC;AAC3C,OAAO,EAAE,UAAU,EAAE,MAAM,aAAa,CAAC;AACzC,OAAO,EAAE,EAAE,EAAE,MAAM,kBAAkB,CAAC;
|
|
1
|
+
{"version":3,"file":"contentGenerator.js","sourceRoot":"","sources":["../../../../src/lib/integrations/contentGenerator.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"labSessions.d.ts","sourceRoot":"","sources":["../../../src/lib/labSessions.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"labSessions.d.ts","sourceRoot":"","sources":["../../../src/lib/labSessions.ts"],"names":[],"mappings":"AAYA,UAAU,YAAY;IACpB,QAAQ,EAAE,MAAM,CAAC;CAClB;AAED;;;;;GAKG;AACH,eAAO,MAAM,gBAAgB,GAC3B,MAAM,MAAM,EACZ,OAAO,MAAM,KACZ,OAAO,CAAC,MAAM,CAehB,CAAC;AAEF;;;;GAIG;AACH,eAAO,MAAM,gBAAgB,GAC3B,IAAI,MAAM,EACV,OAAO,MAAM,KACZ,OAAO,CAAC,MAAM,CAgBhB,CAAC;AAEF;;;;;GAKG;AACH,eAAO,MAAM,+BAA+B,GAC1C,aAAa,MAAM,EACnB,OAAO,MAAM,KACZ,OAAO,CAAC,MAAM,CAchB,CAAC;AAEF;;;;;GAKG;AACH,eAAO,MAAM,sBAAsB,GACjC,IAAI,MAAM,EACV,OAAO,MAAM,KACZ,OAAO,CAAC,MAAM,CAahB,CAAC;AAEF;;;;GAIG;AACH,eAAO,MAAM,qBAAqB,GAAI,OAAO,MAAM,KAAG,OAAO,CAAC,MAAM,CAanE,CAAC;AAEF;;;;;;GAMG;AACH,eAAO,MAAM,gBAAgB,GAC3B,IAAI,MAAM,EACV,MAAM,SAAS,GAAG,SAAS,YAAY,EACvC,OAAO,MAAM,EACb,mBAAkB,CAAC,CAAC,QAAQ,EAAE,YAAY,KAAK,IAAI,CAAC,GAAG,IAAW,KACjE,OAAO,CAAC,MAAM,CA6ChB,CAAC;AAEF;;;;;;GAMG;AACH,eAAO,MAAM,gBAAgB,GAC3B,IAAI,MAAM,EACV,MAAM,MAAM,EACZ,OAAO,MAAM,KACZ,OAAO,CAAC,MAAM,CAehB,CAAC"}
|
|
@@ -1,6 +1,7 @@
|
|
|
1
1
|
import { client } from "./axiosClient.js";
|
|
2
2
|
import { getBaseUrl } from "./utils.js";
|
|
3
3
|
import { io } from "socket.io-client";
|
|
4
|
+
import { handshakeRefusal } from "./socketError.js";
|
|
4
5
|
/**
|
|
5
6
|
* Create a lab session
|
|
6
7
|
* @param {object} data The lab session data
|
|
@@ -135,6 +136,11 @@ export const launchLabSession = (id, mode = "default", token, onProgressStatus =
|
|
|
135
136
|
socket.disconnect();
|
|
136
137
|
resolve(data);
|
|
137
138
|
});
|
|
139
|
+
// A refused handshake settles nothing on its own — see handshakeRefusal.
|
|
140
|
+
socket.on("connect_error", (err) => {
|
|
141
|
+
socket.disconnect();
|
|
142
|
+
reject(handshakeRefusal(err));
|
|
143
|
+
});
|
|
138
144
|
socket.on("error", (err) => {
|
|
139
145
|
socket.disconnect();
|
|
140
146
|
reject(err);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"labSessions.js","sourceRoot":"","sources":["../../../src/lib/labSessions.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,MAAM,EAAE,MAAM,kBAAkB,CAAC;AAC1C,OAAO,EAAE,UAAU,EAAE,MAAM,YAAY,CAAC;AACxC,OAAO,EAAE,EAAE,EAAE,MAAM,kBAAkB,CAAC;
|
|
1
|
+
{"version":3,"file":"labSessions.js","sourceRoot":"","sources":["../../../src/lib/labSessions.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,13 +1,3 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* Error payload emitted on the `error` socket event for any long-running
|
|
3
|
-
* realtime flow (role import/create-from-template, content generation,
|
|
4
|
-
* lab session launch, etc.). Mirrors the shape produced by the backend's
|
|
5
|
-
* `errorHandling.processForSocket` helper.
|
|
6
|
-
*
|
|
7
|
-
* `details` is populated for express-validator field errors (i.e. malformed
|
|
8
|
-
* input rejected by the socket validation chain) and for any other error
|
|
9
|
-
* created via `errorHandler.create(code, message, details)`.
|
|
10
|
-
*/
|
|
11
1
|
export interface SocketError {
|
|
12
2
|
code: number;
|
|
13
3
|
message: string;
|
|
@@ -19,4 +9,23 @@ export interface SocketError {
|
|
|
19
9
|
* `unknown`/`any`.
|
|
20
10
|
*/
|
|
21
11
|
export declare const isSocketError: (value: unknown) => value is SocketError;
|
|
12
|
+
/**
|
|
13
|
+
* The error a refused handshake becomes, in the same shape as a refusal the
|
|
14
|
+
* server sends over an established socket.
|
|
15
|
+
*
|
|
16
|
+
* socket.io answers a handshake the backend's `io.use` middleware rejects with
|
|
17
|
+
* a `connect_error` carrying the middleware's message — "UNAUTHORIZED" for a
|
|
18
|
+
* missing, expired or revoked token — and, with reconnection off, nothing
|
|
19
|
+
* else. The socket helpers listened for "error" and "disconnect" only, so a
|
|
20
|
+
* refused connection settled neither way and the caller hung until its own
|
|
21
|
+
* timeout (production, 2026-09-23: a mass quiz generation whose access token
|
|
22
|
+
* expired mid-run left every later task waiting five minutes to report
|
|
23
|
+
* "timed out"). The refusal is now a rejection the caller can act on: 401 when
|
|
24
|
+
* the backend said so, 503 for anything else on the way in.
|
|
25
|
+
* @param error - The `connect_error` payload
|
|
26
|
+
* @returns The refusal as a SocketError
|
|
27
|
+
*/
|
|
28
|
+
export declare const handshakeRefusal: (error: {
|
|
29
|
+
message?: string;
|
|
30
|
+
} | undefined) => SocketError;
|
|
22
31
|
//# sourceMappingURL=socketError.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"socketError.d.ts","sourceRoot":"","sources":["../../../src/lib/socketError.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"socketError.d.ts","sourceRoot":"","sources":["../../../src/lib/socketError.ts"],"names":[],"mappings":"AAYA,MAAM,WAAW,WAAW;IAC1B,IAAI,EAAE,MAAM,CAAC;IACb,OAAO,EAAE,MAAM,CAAC;IAChB,OAAO,CAAC,EAAE,OAAO,CAAC;CACnB;AAED;;;;GAIG;AACH,eAAO,MAAM,aAAa,GAAI,OAAO,OAAO,KAAG,KAAK,IAAI,WAOvD,CAAC;AAEF;;;;;;;;;;;;;;;GAeG;AACH,eAAO,MAAM,gBAAgB,GAC3B,OAAO;IAAE,OAAO,CAAC,EAAE,MAAM,CAAA;CAAE,GAAG,SAAS,KACtC,WASF,CAAC"}
|
|
@@ -1,3 +1,14 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Error payload emitted on the `error` socket event for any long-running
|
|
3
|
+
* realtime flow (role import/create-from-template, content generation,
|
|
4
|
+
* lab session launch, etc.). Mirrors the shape produced by the backend's
|
|
5
|
+
* `errorHandling.processForSocket` helper.
|
|
6
|
+
*
|
|
7
|
+
* `details` is populated for express-validator field errors (i.e. malformed
|
|
8
|
+
* input rejected by the socket validation chain) and for any other error
|
|
9
|
+
* created via `errorHandler.create(code, message, details)`.
|
|
10
|
+
*/
|
|
11
|
+
import { RESPONSE_TYPE } from "./constants.js";
|
|
1
12
|
/**
|
|
2
13
|
* Type guard to narrow an unknown rejection value to a `SocketError`.
|
|
3
14
|
* Useful in consumer `.catch` blocks where the rejection arrives as
|
|
@@ -9,4 +20,29 @@ export const isSocketError = (value) => {
|
|
|
9
20
|
typeof value.code === "number" &&
|
|
10
21
|
typeof value.message === "string");
|
|
11
22
|
};
|
|
23
|
+
/**
|
|
24
|
+
* The error a refused handshake becomes, in the same shape as a refusal the
|
|
25
|
+
* server sends over an established socket.
|
|
26
|
+
*
|
|
27
|
+
* socket.io answers a handshake the backend's `io.use` middleware rejects with
|
|
28
|
+
* a `connect_error` carrying the middleware's message — "UNAUTHORIZED" for a
|
|
29
|
+
* missing, expired or revoked token — and, with reconnection off, nothing
|
|
30
|
+
* else. The socket helpers listened for "error" and "disconnect" only, so a
|
|
31
|
+
* refused connection settled neither way and the caller hung until its own
|
|
32
|
+
* timeout (production, 2026-09-23: a mass quiz generation whose access token
|
|
33
|
+
* expired mid-run left every later task waiting five minutes to report
|
|
34
|
+
* "timed out"). The refusal is now a rejection the caller can act on: 401 when
|
|
35
|
+
* the backend said so, 503 for anything else on the way in.
|
|
36
|
+
* @param error - The `connect_error` payload
|
|
37
|
+
* @returns The refusal as a SocketError
|
|
38
|
+
*/
|
|
39
|
+
export const handshakeRefusal = (error) => {
|
|
40
|
+
const message = error?.message || "Connection refused";
|
|
41
|
+
return {
|
|
42
|
+
code: message === "UNAUTHORIZED"
|
|
43
|
+
? RESPONSE_TYPE.UNAUTHORIZED
|
|
44
|
+
: RESPONSE_TYPE.SERVICE_UNAVAILABLE,
|
|
45
|
+
message,
|
|
46
|
+
};
|
|
47
|
+
};
|
|
12
48
|
//# sourceMappingURL=socketError.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"socketError.js","sourceRoot":"","sources":["../../../src/lib/socketError.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"socketError.js","sourceRoot":"","sources":["../../../src/lib/socketError.ts"],"names":[],"mappings":"AAAA;;;;;;;;;GASG;AACH,OAAO,EAAE,aAAa,EAAE,MAAM,gBAAgB,CAAC;AAQ/C;;;;GAIG;AACH,MAAM,CAAC,MAAM,aAAa,GAAG,CAAC,KAAc,EAAwB,EAAE;IACpE,OAAO,CACL,OAAO,KAAK,KAAK,QAAQ;QACzB,KAAK,KAAK,IAAI;QACd,OAAQ,KAA4B,CAAC,IAAI,KAAK,QAAQ;QACtD,OAAQ,KAA+B,CAAC,OAAO,KAAK,QAAQ,CAC7D,CAAC;AACJ,CAAC,CAAC;AAEF;;;;;;;;;;;;;;;GAeG;AACH,MAAM,CAAC,MAAM,gBAAgB,GAAG,CAC9B,KAAuC,EAC1B,EAAE;IACf,MAAM,OAAO,GAAG,KAAK,EAAE,OAAO,IAAI,oBAAoB,CAAC;IACvD,OAAO;QACL,IAAI,EACF,OAAO,KAAK,cAAc;YACxB,CAAC,CAAC,aAAa,CAAC,YAAY;YAC5B,CAAC,CAAC,aAAa,CAAC,mBAAmB;QACvC,OAAO;KACR,CAAC;AACJ,CAAC,CAAC"}
|