@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.
Files changed (2) hide show
  1. package/dist/index.js +20 -5
  2. 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
- if (!resp?.data?.session?.app || resp.data.session.app !== appId) {
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
- await new Promise((resolve) => {
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>
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@pmate/cli",
3
- "version": "0.20.0",
3
+ "version": "0.20.1",
4
4
  "description": "CLI utilities for the pMate project",
5
5
  "license": "MIT",
6
6
  "bin": {