@nordsym/apiclaw 1.7.21 → 1.7.23

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.
@@ -1 +1 @@
1
- {"version":3,"file":"session.d.ts","sourceRoot":"","sources":["../src/session.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAMH,MAAM,WAAW,WAAW;IAC1B,YAAY,EAAE,MAAM,CAAC;IACrB,WAAW,EAAE,MAAM,CAAC;IACpB,KAAK,EAAE,MAAM,CAAC;IACd,SAAS,EAAE,MAAM,CAAC;CACnB;AAcD;;;GAGG;AACH,wBAAgB,WAAW,IAAI,WAAW,GAAG,IAAI,CAqBhD;AAED;;GAEG;AACH,wBAAgB,YAAY,CAAC,YAAY,EAAE,MAAM,EAAE,WAAW,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,GAAG,IAAI,CAoB3F;AAED;;GAEG;AACH,wBAAgB,YAAY,IAAI,IAAI,CASnC;AAED;;;GAGG;AACH,wBAAgB,qBAAqB,IAAI,MAAM,CAI9C;AAED;;;GAGG;AACH,wBAAgB,eAAe,IAAI,MAAM,CASxC"}
1
+ {"version":3,"file":"session.d.ts","sourceRoot":"","sources":["../src/session.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAMH,MAAM,WAAW,WAAW;IAC1B,YAAY,EAAE,MAAM,CAAC;IACrB,WAAW,EAAE,MAAM,CAAC;IACpB,KAAK,EAAE,MAAM,CAAC;IACd,SAAS,EAAE,MAAM,CAAC;CACnB;AAeD;;;GAGG;AACH,wBAAgB,WAAW,IAAI,WAAW,GAAG,IAAI,CA+BhD;AAED;;GAEG;AACH,wBAAgB,YAAY,CAAC,YAAY,EAAE,MAAM,EAAE,WAAW,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,GAAG,IAAI,CAoB3F;AAED;;GAEG;AACH,wBAAgB,YAAY,IAAI,IAAI,CASnC;AAED;;;GAGG;AACH,wBAAgB,qBAAqB,IAAI,MAAM,CAI9C;AAED;;;GAGG;AACH,wBAAgB,eAAe,IAAI,MAAM,CASxC"}
package/dist/session.js CHANGED
@@ -7,6 +7,7 @@ import * as path from 'path';
7
7
  import * as os from 'os';
8
8
  const SESSION_DIR = path.join(os.homedir(), '.apiclaw');
9
9
  const SESSION_FILE = path.join(SESSION_DIR, 'session');
10
+ const SESSION_FILE_LEGACY = path.join(SESSION_DIR, 'session.json');
10
11
  /**
11
12
  * Ensure the ~/.apiclaw directory exists
12
13
  */
@@ -21,18 +22,29 @@ function ensureSessionDir() {
21
22
  */
22
23
  export function readSession() {
23
24
  try {
24
- if (!fs.existsSync(SESSION_FILE)) {
25
- return null;
25
+ // Try primary session file first
26
+ if (fs.existsSync(SESSION_FILE)) {
27
+ const content = fs.readFileSync(SESSION_FILE, 'utf8');
28
+ const data = JSON.parse(content);
29
+ if (data.sessionToken && data.workspaceId && data.email) {
30
+ return data;
31
+ }
32
+ // Invalid (e.g. empty email from anonymous write) — clear and fall through
33
+ console.error('[APIClaw] Invalid session file, checking legacy...');
34
+ fs.unlinkSync(SESSION_FILE);
26
35
  }
27
- const content = fs.readFileSync(SESSION_FILE, 'utf8');
28
- const data = JSON.parse(content);
29
- // Validate required fields
30
- if (!data.sessionToken || !data.workspaceId || !data.email) {
31
- console.error('[APIClaw] Invalid session file, clearing...');
32
- clearSession();
33
- return null;
36
+ // Fall back to session.json (written by CLI login in older versions)
37
+ if (fs.existsSync(SESSION_FILE_LEGACY)) {
38
+ const content = fs.readFileSync(SESSION_FILE_LEGACY, 'utf8');
39
+ const data = JSON.parse(content);
40
+ if (data.sessionToken && data.workspaceId && data.email) {
41
+ console.error(`[APIClaw] Migrating session.json → session for ${data.email}`);
42
+ // Migrate to canonical location
43
+ fs.writeFileSync(SESSION_FILE, JSON.stringify({ ...data, createdAt: data.createdAt || Date.now() }, null, 2), { mode: 0o600 });
44
+ return data;
45
+ }
34
46
  }
35
- return data;
47
+ return null;
36
48
  }
37
49
  catch (error) {
38
50
  console.error('[APIClaw] Error reading session:', error);
@@ -1 +1 @@
1
- {"version":3,"file":"session.js","sourceRoot":"","sources":["../src/session.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"session.js","sourceRoot":"","sources":["../src/session.ts"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@nordsym/apiclaw",
3
- "version": "1.7.21",
3
+ "version": "1.7.23",
4
4
  "description": "The API layer for AI agents. Dashboard + 22K APIs + 18 Direct Call providers. MCP native.",
5
5
  "type": "module",
6
6
  "main": "dist/index.js",
package/src/session.ts CHANGED
@@ -16,6 +16,7 @@ export interface SessionData {
16
16
 
17
17
  const SESSION_DIR = path.join(os.homedir(), '.apiclaw');
18
18
  const SESSION_FILE = path.join(SESSION_DIR, 'session');
19
+ const SESSION_FILE_LEGACY = path.join(SESSION_DIR, 'session.json');
19
20
 
20
21
  /**
21
22
  * Ensure the ~/.apiclaw directory exists
@@ -32,21 +33,31 @@ function ensureSessionDir(): void {
32
33
  */
33
34
  export function readSession(): SessionData | null {
34
35
  try {
35
- if (!fs.existsSync(SESSION_FILE)) {
36
- return null;
36
+ // Try primary session file first
37
+ if (fs.existsSync(SESSION_FILE)) {
38
+ const content = fs.readFileSync(SESSION_FILE, 'utf8');
39
+ const data = JSON.parse(content) as SessionData;
40
+ if (data.sessionToken && data.workspaceId && data.email) {
41
+ return data;
42
+ }
43
+ // Invalid (e.g. empty email from anonymous write) — clear and fall through
44
+ console.error('[APIClaw] Invalid session file, checking legacy...');
45
+ fs.unlinkSync(SESSION_FILE);
37
46
  }
38
-
39
- const content = fs.readFileSync(SESSION_FILE, 'utf8');
40
- const data = JSON.parse(content) as SessionData;
41
-
42
- // Validate required fields
43
- if (!data.sessionToken || !data.workspaceId || !data.email) {
44
- console.error('[APIClaw] Invalid session file, clearing...');
45
- clearSession();
46
- return null;
47
+
48
+ // Fall back to session.json (written by CLI login in older versions)
49
+ if (fs.existsSync(SESSION_FILE_LEGACY)) {
50
+ const content = fs.readFileSync(SESSION_FILE_LEGACY, 'utf8');
51
+ const data = JSON.parse(content) as SessionData;
52
+ if (data.sessionToken && data.workspaceId && data.email) {
53
+ console.error(`[APIClaw] Migrating session.json session for ${data.email}`);
54
+ // Migrate to canonical location
55
+ fs.writeFileSync(SESSION_FILE, JSON.stringify({ ...data, createdAt: data.createdAt || Date.now() }, null, 2), { mode: 0o600 });
56
+ return data;
57
+ }
47
58
  }
48
-
49
- return data;
59
+
60
+ return null;
50
61
  } catch (error) {
51
62
  console.error('[APIClaw] Error reading session:', error);
52
63
  return null;