@hasna/accounts 0.1.17 → 0.1.19

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/cli.js CHANGED
@@ -42008,7 +42008,7 @@ import { join as join3 } from "node:path";
42008
42008
  import { homedir as homedir2 } from "node:os";
42009
42009
  import { hostname } from "node:os";
42010
42010
  import { join as join2 } from "node:path";
42011
- import { existsSync as existsSync3, mkdirSync as mkdirSync2, readFileSync, writeFileSync } from "node:fs";
42011
+ import { chmodSync, existsSync as existsSync3, mkdirSync as mkdirSync2, readFileSync, writeFileSync } from "node:fs";
42012
42012
 
42013
42013
  // src/lib/safe-path.ts
42014
42014
  import { existsSync as existsSync2, lstatSync, mkdirSync, realpathSync } from "node:fs";
@@ -42149,8 +42149,11 @@ function saveStore(store) {
42149
42149
  const path = storePath();
42150
42150
  assertSafeWritePath(path, { mustStayUnder: accountsHome() });
42151
42151
  mkdirSync2(join2(path, ".."), { recursive: true });
42152
+ if (existsSync3(path))
42153
+ chmodSync(path, 384);
42152
42154
  writeFileSync(path, JSON.stringify(store, null, 2) + `
42153
42155
  `, { mode: 384 });
42156
+ chmodSync(path, 384);
42154
42157
  }
42155
42158
  function firstEnv(env2, primary, fallback) {
42156
42159
  return env2[primary] || env2[fallback] || undefined;
@@ -42541,7 +42544,7 @@ function removeCustomTool(id) {
42541
42544
 
42542
42545
  // src/lib/profiles.ts
42543
42546
  import { homedir as homedir4 } from "node:os";
42544
- import { isAbsolute, join as join5, resolve as resolve2 } from "node:path";
42547
+ import { isAbsolute, join as join5, relative, resolve as resolve2 } from "node:path";
42545
42548
  import { existsSync as existsSync5, mkdirSync as mkdirSync3, rmSync } from "node:fs";
42546
42549
 
42547
42550
  // src/lib/detect.ts
@@ -42599,6 +42602,10 @@ function listProfiles(toolId) {
42599
42602
  function profileMatches(name, toolId) {
42600
42603
  return loadStore().profiles.filter((p) => p.name === name && (!toolId || p.tool === toolId));
42601
42604
  }
42605
+ function isManagedProfileDir(dir) {
42606
+ const rel = relative(resolve2(profilesDir()), resolve2(dir));
42607
+ return rel !== "" && !rel.startsWith("..") && !isAbsolute(rel);
42608
+ }
42602
42609
  function getProfile(name, toolId) {
42603
42610
  const matches = profileMatches(name, toolId);
42604
42611
  if (matches.length === 0) {
@@ -42662,7 +42669,7 @@ function removeProfile(name, opts = {}) {
42662
42669
  let purged = false;
42663
42670
  let purgeNote;
42664
42671
  if (options.purge) {
42665
- const managed = profile.dir.startsWith(profilesDir());
42672
+ const managed = isManagedProfileDir(profile.dir);
42666
42673
  const isDefault = profile.dir === getTool(profile.tool).defaultDir;
42667
42674
  if (managed && !isDefault && existsSync5(profile.dir)) {
42668
42675
  rmSync(profile.dir, { recursive: true, force: true });
package/dist/index.js CHANGED
@@ -4030,7 +4030,7 @@ class AccountsError extends Error {
4030
4030
  // src/storage.ts
4031
4031
  import { homedir } from "node:os";
4032
4032
  import { join } from "node:path";
4033
- import { existsSync as existsSync2, mkdirSync as mkdirSync2, readFileSync, writeFileSync } from "node:fs";
4033
+ import { chmodSync, existsSync as existsSync2, mkdirSync as mkdirSync2, readFileSync, writeFileSync } from "node:fs";
4034
4034
 
4035
4035
  // src/lib/safe-path.ts
4036
4036
  import { existsSync, lstatSync, mkdirSync, realpathSync } from "node:fs";
@@ -4161,8 +4161,11 @@ function saveStore(store) {
4161
4161
  const path = storePath();
4162
4162
  assertSafeWritePath(path, { mustStayUnder: accountsHome() });
4163
4163
  mkdirSync2(join(path, ".."), { recursive: true });
4164
+ if (existsSync2(path))
4165
+ chmodSync(path, 384);
4164
4166
  writeFileSync(path, JSON.stringify(store, null, 2) + `
4165
4167
  `, { mode: 384 });
4168
+ chmodSync(path, 384);
4166
4169
  }
4167
4170
  // src/lib/tools.ts
4168
4171
  import { homedir as homedir2 } from "node:os";
@@ -4846,7 +4849,7 @@ function readEmail(file, path) {
4846
4849
  }
4847
4850
  // src/lib/profiles.ts
4848
4851
  import { homedir as homedir4 } from "node:os";
4849
- import { isAbsolute, join as join7, resolve as resolve2 } from "node:path";
4852
+ import { isAbsolute, join as join7, relative, resolve as resolve2 } from "node:path";
4850
4853
  import { existsSync as existsSync6, mkdirSync as mkdirSync5, rmSync } from "node:fs";
4851
4854
  function nowIso() {
4852
4855
  return new Date().toISOString();
@@ -4867,6 +4870,10 @@ function listProfiles(toolId) {
4867
4870
  function profileMatches(name, toolId) {
4868
4871
  return loadStore().profiles.filter((p) => p.name === name && (!toolId || p.tool === toolId));
4869
4872
  }
4873
+ function isManagedProfileDir(dir) {
4874
+ const rel = relative(resolve2(profilesDir()), resolve2(dir));
4875
+ return rel !== "" && !rel.startsWith("..") && !isAbsolute(rel);
4876
+ }
4870
4877
  function findProfile(name, toolId) {
4871
4878
  const matches = profileMatches(name, toolId);
4872
4879
  return matches.length === 1 ? matches[0] : undefined;
@@ -4934,7 +4941,7 @@ function removeProfile(name, opts = {}) {
4934
4941
  let purged = false;
4935
4942
  let purgeNote;
4936
4943
  if (options.purge) {
4937
- const managed = profile.dir.startsWith(profilesDir());
4944
+ const managed = isManagedProfileDir(profile.dir);
4938
4945
  const isDefault = profile.dir === getTool(profile.tool).defaultDir;
4939
4946
  if (managed && !isDefault && existsSync6(profile.dir)) {
4940
4947
  rmSync(profile.dir, { recursive: true, force: true });
@@ -1 +1 @@
1
- {"version":3,"file":"profiles.d.ts","sourceRoot":"","sources":["../../src/lib/profiles.ts"],"names":[],"mappings":"AAGA,OAAO,EAAE,KAAK,OAAO,EAAoC,MAAM,aAAa,CAAC;AAS7E,4DAA4D;AAC5D,wBAAgB,UAAU,CAAC,CAAC,EAAE,MAAM,GAAG,MAAM,CAK5C;AAED,wBAAgB,YAAY,CAAC,MAAM,CAAC,EAAE,MAAM,GAAG,OAAO,EAAE,CAIvD;AAMD,wBAAgB,WAAW,CAAC,IAAI,EAAE,MAAM,EAAE,MAAM,CAAC,EAAE,MAAM,GAAG,OAAO,GAAG,SAAS,CAG9E;AAED,wBAAgB,UAAU,CAAC,IAAI,EAAE,MAAM,EAAE,MAAM,CAAC,EAAE,MAAM,GAAG,OAAO,CAajE;AAED,MAAM,WAAW,UAAU;IACzB,IAAI,EAAE,MAAM,CAAC;IACb,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,GAAG,CAAC,EAAE,MAAM,CAAC;IACb,WAAW,CAAC,EAAE,MAAM,CAAC;CACtB;AAED,wBAAgB,UAAU,CAAC,IAAI,EAAE,UAAU,GAAG,OAAO,CAgCpD;AAED,MAAM,WAAW,aAAa;IAC5B,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,KAAK,CAAC,EAAE,OAAO,CAAC;CACjB;AAED,wBAAgB,aAAa,CAC3B,IAAI,EAAE,MAAM,EACZ,IAAI,GAAE,aAAa,GAAG,OAAY,GACjC;IAAE,OAAO,EAAE,OAAO,CAAC;IAAC,MAAM,EAAE,OAAO,CAAC;IAAC,SAAS,CAAC,EAAE,MAAM,CAAA;CAAE,CAoC3D;AAED,wBAAgB,aAAa,CAAC,OAAO,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,EAAE,MAAM,CAAC,EAAE,MAAM,GAAG,OAAO,CAyBxF;AAED,MAAM,WAAW,aAAa;IAC5B,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,GAAG,CAAC,EAAE,MAAM,CAAC;CACd;AAED,wBAAgB,aAAa,CAAC,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,aAAa,GAAG,OAAO,CAsBxE;AAED,iEAAiE;AACjE,wBAAgB,aAAa,CAAC,IAAI,EAAE,MAAM,EAAE,MAAM,CAAC,EAAE,MAAM,GAAG,OAAO,CAiBpE;AAED,qDAAqD;AACrD,wBAAgB,UAAU,CAAC,IAAI,EAAE,MAAM,EAAE,MAAM,CAAC,EAAE,MAAM,GAAG;IAAE,OAAO,EAAE,OAAO,CAAC;IAAC,MAAM,EAAE,MAAM,CAAA;CAAE,CAiB9F;AAED,wBAAgB,cAAc,CAAC,MAAM,EAAE,MAAM,GAAG,OAAO,GAAG,SAAS,CAKlE"}
1
+ {"version":3,"file":"profiles.d.ts","sourceRoot":"","sources":["../../src/lib/profiles.ts"],"names":[],"mappings":"AAGA,OAAO,EAAE,KAAK,OAAO,EAAoC,MAAM,aAAa,CAAC;AAS7E,4DAA4D;AAC5D,wBAAgB,UAAU,CAAC,CAAC,EAAE,MAAM,GAAG,MAAM,CAK5C;AAED,wBAAgB,YAAY,CAAC,MAAM,CAAC,EAAE,MAAM,GAAG,OAAO,EAAE,CAIvD;AAWD,wBAAgB,WAAW,CAAC,IAAI,EAAE,MAAM,EAAE,MAAM,CAAC,EAAE,MAAM,GAAG,OAAO,GAAG,SAAS,CAG9E;AAED,wBAAgB,UAAU,CAAC,IAAI,EAAE,MAAM,EAAE,MAAM,CAAC,EAAE,MAAM,GAAG,OAAO,CAajE;AAED,MAAM,WAAW,UAAU;IACzB,IAAI,EAAE,MAAM,CAAC;IACb,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,GAAG,CAAC,EAAE,MAAM,CAAC;IACb,WAAW,CAAC,EAAE,MAAM,CAAC;CACtB;AAED,wBAAgB,UAAU,CAAC,IAAI,EAAE,UAAU,GAAG,OAAO,CAgCpD;AAED,MAAM,WAAW,aAAa;IAC5B,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,KAAK,CAAC,EAAE,OAAO,CAAC;CACjB;AAED,wBAAgB,aAAa,CAC3B,IAAI,EAAE,MAAM,EACZ,IAAI,GAAE,aAAa,GAAG,OAAY,GACjC;IAAE,OAAO,EAAE,OAAO,CAAC;IAAC,MAAM,EAAE,OAAO,CAAC;IAAC,SAAS,CAAC,EAAE,MAAM,CAAA;CAAE,CAoC3D;AAED,wBAAgB,aAAa,CAAC,OAAO,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,EAAE,MAAM,CAAC,EAAE,MAAM,GAAG,OAAO,CAyBxF;AAED,MAAM,WAAW,aAAa;IAC5B,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,GAAG,CAAC,EAAE,MAAM,CAAC;CACd;AAED,wBAAgB,aAAa,CAAC,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,aAAa,GAAG,OAAO,CAsBxE;AAED,iEAAiE;AACjE,wBAAgB,aAAa,CAAC,IAAI,EAAE,MAAM,EAAE,MAAM,CAAC,EAAE,MAAM,GAAG,OAAO,CAiBpE;AAED,qDAAqD;AACrD,wBAAgB,UAAU,CAAC,IAAI,EAAE,MAAM,EAAE,MAAM,CAAC,EAAE,MAAM,GAAG;IAAE,OAAO,EAAE,OAAO,CAAC;IAAC,MAAM,EAAE,MAAM,CAAA;CAAE,CAiB9F;AAED,wBAAgB,cAAc,CAAC,MAAM,EAAE,MAAM,GAAG,OAAO,GAAG,SAAS,CAKlE"}
package/dist/mcp.js CHANGED
@@ -16666,7 +16666,7 @@ class AccountsError extends Error {
16666
16666
  // src/storage.ts
16667
16667
  import { homedir } from "node:os";
16668
16668
  import { join } from "node:path";
16669
- import { existsSync as existsSync2, mkdirSync as mkdirSync2, readFileSync, writeFileSync } from "node:fs";
16669
+ import { chmodSync, existsSync as existsSync2, mkdirSync as mkdirSync2, readFileSync, writeFileSync } from "node:fs";
16670
16670
 
16671
16671
  // src/lib/safe-path.ts
16672
16672
  import { existsSync, lstatSync, mkdirSync, realpathSync } from "node:fs";
@@ -16794,8 +16794,11 @@ function saveStore(store) {
16794
16794
  const path = storePath();
16795
16795
  assertSafeWritePath(path, { mustStayUnder: accountsHome() });
16796
16796
  mkdirSync2(join(path, ".."), { recursive: true });
16797
+ if (existsSync2(path))
16798
+ chmodSync(path, 384);
16797
16799
  writeFileSync(path, JSON.stringify(store, null, 2) + `
16798
16800
  `, { mode: 384 });
16801
+ chmodSync(path, 384);
16799
16802
  }
16800
16803
 
16801
16804
  // src/lib/tools.ts
@@ -1 +1 @@
1
- {"version":3,"file":"storage.d.ts","sourceRoot":"","sources":["../src/storage.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"storage.d.ts","sourceRoot":"","sources":["../src/storage.ts"],"names":[],"mappings":"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"}
package/dist/storage.js CHANGED
@@ -19,7 +19,7 @@ var __require = /* @__PURE__ */ createRequire(import.meta.url);
19
19
  import { homedir } from "node:os";
20
20
  import { hostname } from "node:os";
21
21
  import { join } from "node:path";
22
- import { existsSync as existsSync2, mkdirSync as mkdirSync2, readFileSync, writeFileSync } from "node:fs";
22
+ import { chmodSync, existsSync as existsSync2, mkdirSync as mkdirSync2, readFileSync, writeFileSync } from "node:fs";
23
23
 
24
24
  // node_modules/zod/v3/external.js
25
25
  var exports_external = {};
@@ -4175,8 +4175,11 @@ function saveStore(store) {
4175
4175
  const path = storePath();
4176
4176
  assertSafeWritePath(path, { mustStayUnder: accountsHome() });
4177
4177
  mkdirSync2(join(path, ".."), { recursive: true });
4178
+ if (existsSync2(path))
4179
+ chmodSync(path, 384);
4178
4180
  writeFileSync(path, JSON.stringify(store, null, 2) + `
4179
4181
  `, { mode: 384 });
4182
+ chmodSync(path, 384);
4180
4183
  }
4181
4184
  function firstEnv(env, primary, fallback) {
4182
4185
  return env[primary] || env[fallback] || undefined;
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@hasna/accounts",
3
- "version": "0.1.17",
3
+ "version": "0.1.19",
4
4
  "description": "Manage and switch between multiple Claude Code (and other AI coding tool) profiles/accounts locally — isolated config dirs, per-account email, one-command switching.",
5
5
  "type": "module",
6
6
  "main": "dist/index.js",