@pmate/cli 0.20.0 → 0.20.1
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.js +20 -5
- package/package.json +1 -1
package/dist/index.js
CHANGED
|
@@ -96,7 +96,7 @@ function assertValidAppRef(appRef) {
|
|
|
96
96
|
function saveLoginSession(session, requestedApp = DEFAULT_APP_ID) {
|
|
97
97
|
const store = loadExistingSessionStoreOrEmpty();
|
|
98
98
|
const app = assertValidAppRef(requestedApp);
|
|
99
|
-
const sessionApp = session.session?.app?.trim();
|
|
99
|
+
const sessionApp = session.session?.identity?.app?.trim();
|
|
100
100
|
if (!sessionApp) {
|
|
101
101
|
throw new Error("Missing app in login session payload.");
|
|
102
102
|
}
|
|
@@ -13202,7 +13202,8 @@ var LoginCommandHandler = class {
|
|
|
13202
13202
|
);
|
|
13203
13203
|
}
|
|
13204
13204
|
const resp = await response.json();
|
|
13205
|
-
|
|
13205
|
+
const returnedApp = resp?.data?.session?.identity?.app?.trim();
|
|
13206
|
+
if (!returnedApp || returnedApp !== appId) {
|
|
13206
13207
|
throw new Error("Invalid exchange response: app-scoped session mismatch.");
|
|
13207
13208
|
}
|
|
13208
13209
|
return resp.data;
|
|
@@ -13214,9 +13215,16 @@ var LoginCommandHandler = class {
|
|
|
13214
13215
|
resolveToken = resolve;
|
|
13215
13216
|
rejectToken = reject;
|
|
13216
13217
|
});
|
|
13218
|
+
const openSockets = /* @__PURE__ */ new Set();
|
|
13217
13219
|
const server = (0, import_node_http.createServer)((request, response) => {
|
|
13218
13220
|
this.handleCallbackRequest(request, response, resolveToken, rejectToken);
|
|
13219
13221
|
});
|
|
13222
|
+
server.on("connection", (socket) => {
|
|
13223
|
+
openSockets.add(socket);
|
|
13224
|
+
socket.on("close", () => {
|
|
13225
|
+
openSockets.delete(socket);
|
|
13226
|
+
});
|
|
13227
|
+
});
|
|
13220
13228
|
await new Promise((resolve, reject) => {
|
|
13221
13229
|
server.once("error", reject);
|
|
13222
13230
|
server.listen(0, "127.0.0.1", () => resolve());
|
|
@@ -13236,9 +13244,15 @@ var LoginCommandHandler = class {
|
|
|
13236
13244
|
}, LOGIN_TIMEOUT_MS);
|
|
13237
13245
|
const close = async () => {
|
|
13238
13246
|
clearTimeout(timeout);
|
|
13239
|
-
|
|
13247
|
+
const closePromise = new Promise((resolve) => {
|
|
13240
13248
|
server.close(() => resolve());
|
|
13241
13249
|
});
|
|
13250
|
+
server.closeIdleConnections?.();
|
|
13251
|
+
server.closeAllConnections?.();
|
|
13252
|
+
for (const socket of openSockets) {
|
|
13253
|
+
socket.destroy();
|
|
13254
|
+
}
|
|
13255
|
+
await closePromise;
|
|
13242
13256
|
};
|
|
13243
13257
|
return {
|
|
13244
13258
|
redirectUrl,
|
|
@@ -13263,13 +13277,14 @@ var LoginCommandHandler = class {
|
|
|
13263
13277
|
}
|
|
13264
13278
|
response.statusCode = 200;
|
|
13265
13279
|
response.setHeader("Content-Type", "text/html; charset=utf-8");
|
|
13280
|
+
response.setHeader("Connection", "close");
|
|
13266
13281
|
response.end(
|
|
13267
13282
|
this.renderHtml(
|
|
13268
13283
|
"Login complete",
|
|
13269
13284
|
"You can close this tab and return to the terminal."
|
|
13270
|
-
)
|
|
13285
|
+
),
|
|
13286
|
+
() => resolveToken(token)
|
|
13271
13287
|
);
|
|
13272
|
-
resolveToken(token);
|
|
13273
13288
|
}
|
|
13274
13289
|
renderHtml(title, message) {
|
|
13275
13290
|
return `<!doctype html>
|