multi-gws 0.0.4 → 0.0.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/README.md CHANGED
@@ -27,6 +27,9 @@ forwarded to the complete authorization process tree. Set
27
27
  `MGWS_OAUTH_TIMEOUT_MS` to a positive integer to override the timeout.
28
28
 
29
29
  `mgws` treats the current working directory as the workspace. Shared OAuth configuration belongs at `credentials/google-oauth-client.json`; account state is stored under `accounts/<account-slug>/gws/`.
30
+ Account slugs use the normalized email when it is available, then add incrementing
31
+ suffixes such as `-1` and `-2` only when another email already occupies that
32
+ slug. Reconnecting the same email reuses its existing slug.
30
33
 
31
34
  ## Development
32
35
 
@@ -4,6 +4,5 @@ export interface AddAccountOptions extends AccountAccess {
4
4
  login: boolean;
5
5
  workspaceRoot?: string;
6
6
  }
7
- export declare function accountSlug(email: string): string;
8
7
  export declare function addAccount({ email, gmail, drive, calendar, login, workspaceRoot, }: AddAccountOptions): Promise<number>;
9
8
  //# sourceMappingURL=account-add.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"account-add.d.ts","sourceRoot":"","sources":["../src/account-add.ts"],"names":[],"mappings":"AAUA,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,0BAA0B,CAAC;AAI9D,MAAM,WAAW,iBAAkB,SAAQ,aAAa;IACtD,KAAK,EAAE,MAAM,CAAC;IACd,KAAK,EAAE,OAAO,CAAC;IACf,aAAa,CAAC,EAAE,MAAM,CAAC;CACxB;AA6ND,wBAAgB,WAAW,CAAC,KAAK,EAAE,MAAM,GAAG,MAAM,CAgBjD;AAED,wBAAsB,UAAU,CAAC,EAC/B,KAAK,EACL,KAAK,EACL,KAAK,EACL,QAAQ,EACR,KAAK,EACL,aAAa,GACd,EAAE,iBAAiB,GAAG,OAAO,CAAC,MAAM,CAAC,CA8ErC"}
1
+ {"version":3,"file":"account-add.d.ts","sourceRoot":"","sources":["../src/account-add.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,0BAA0B,CAAC;AAK9D,MAAM,WAAW,iBAAkB,SAAQ,aAAa;IACtD,KAAK,EAAE,MAAM,CAAC;IACd,KAAK,EAAE,OAAO,CAAC;IACf,aAAa,CAAC,EAAE,MAAM,CAAC;CACxB;AAoND,wBAAsB,UAAU,CAAC,EAC/B,KAAK,EACL,KAAK,EACL,KAAK,EACL,QAAQ,EACR,KAAK,EACL,aAAa,GACd,EAAE,iBAAiB,GAAG,OAAO,CAAC,MAAM,CAAC,CAqErC"}
@@ -1,8 +1,8 @@
1
1
  import { spawn, spawnSync } from "node:child_process";
2
- import { createHash } from "node:crypto";
3
- import { chmodSync, copyFileSync, lstatSync, mkdirSync, writeFileSync, } from "node:fs";
2
+ import { chmodSync, copyFileSync, lstatSync, mkdirSync } from "node:fs";
4
3
  import { join, resolve } from "node:path";
5
4
  import { resolveAccountScopes } from "./account-permissions.js";
5
+ import { allocateAccountSlug, writeAccountProfile } from "./account-state.js";
6
6
  import { CliError, EXIT, errorCode } from "./errors.js";
7
7
  const DEFAULT_OAUTH_TIMEOUT_MS = 5 * 60 * 1000;
8
8
  const OAUTH_KILL_GRACE_MS = 1000;
@@ -163,42 +163,15 @@ function ensurePrivateDirectory(path) {
163
163
  }
164
164
  chmodSync(path, 0o700);
165
165
  }
166
- function ensureSafeFileIfPresent(path) {
167
- if (!pathExists(path))
168
- return;
169
- const file = lstatSync(path);
170
- if (!file.isFile() || file.isSymbolicLink()) {
171
- throw new CliError(EXIT.noPermission, `unsafe account path: ${path}`);
172
- }
173
- }
174
- export function accountSlug(email) {
175
- const normalizedEmail = email.toLowerCase();
176
- const readableSlug = normalizedEmail
177
- .replace(/[^a-z0-9]+/g, "-")
178
- .replace(/^-+|-+$/g, "");
179
- if (readableSlug.length === 0) {
180
- throw new CliError(EXIT.usage, `could not derive an account slug from: ${email}`);
181
- }
182
- const fingerprint = createHash("sha256")
183
- .update(normalizedEmail)
184
- .digest("base64url")
185
- .slice(0, 16);
186
- return `${readableSlug}-${fingerprint}`;
187
- }
188
166
  export async function addAccount({ email, gmail, drive, calendar, login, workspaceRoot, }) {
189
167
  if (!/^[^@\s]+@[^@\s]+\.[^@\s]+$/.test(email)) {
190
168
  throw new CliError(EXIT.usage, `invalid email address: ${email}`);
191
169
  }
192
170
  const scopes = resolveAccountScopes({ gmail, drive, calendar });
193
- const slug = accountSlug(email);
194
171
  const root = resolve(workspaceRoot ?? process.cwd());
195
172
  const credentialsDir = join(root, "credentials");
196
173
  const oauthClient = join(credentialsDir, "google-oauth-client.json");
197
174
  const accountsDir = join(root, "accounts");
198
- const accountDir = join(accountsDir, slug);
199
- const configDir = join(accountDir, "gws");
200
- const accountOauthClient = join(configDir, "client_secret.json");
201
- const accessProfile = join(configDir, "access.json");
202
175
  if (!isFile(oauthClient)) {
203
176
  throw new CliError(EXIT.noInput, `OAuth client must be a regular file, not a symlink: ${oauthClient}`);
204
177
  }
@@ -210,6 +183,10 @@ export async function addAccount({ email, gmail, drive, calendar, login, workspa
210
183
  chmodSync(credentialsDir, 0o700);
211
184
  chmodSync(oauthClient, 0o600);
212
185
  ensurePrivateDirectory(accountsDir);
186
+ const slug = allocateAccountSlug(accountsDir, email);
187
+ const accountDir = join(accountsDir, slug);
188
+ const configDir = join(accountDir, "gws");
189
+ const accountOauthClient = join(configDir, "client_secret.json");
213
190
  ensurePrivateDirectory(accountDir);
214
191
  ensurePrivateDirectory(configDir);
215
192
  if (pathExists(accountOauthClient)) {
@@ -221,25 +198,21 @@ export async function addAccount({ email, gmail, drive, calendar, login, workspa
221
198
  }
222
199
  copyFileSync(oauthClient, accountOauthClient);
223
200
  chmodSync(accountOauthClient, 0o600);
224
- ensureSafeFileIfPresent(accessProfile);
225
- const saveAccessProfile = () => {
226
- writeFileSync(accessProfile, `${JSON.stringify({ email, gmail, drive, calendar }, null, 2)}\n`, {
227
- mode: 0o600,
228
- });
229
- chmodSync(accessProfile, 0o600);
230
- };
201
+ writeAccountProfile(configDir, {
202
+ slug,
203
+ email,
204
+ gmail,
205
+ drive,
206
+ calendar,
207
+ });
231
208
  console.log(`Account slug: ${slug}`);
232
209
  console.log(`Gmail access: ${gmail}`);
233
210
  console.log(`Drive access: ${drive}`);
234
211
  console.log(`Calendar access: ${calendar}`);
235
212
  if (!login) {
236
- saveAccessProfile();
237
213
  console.log("Skipped OAuth login (--no-login).");
238
214
  return 0;
239
215
  }
240
- const status = await runOauthLogin(root, slug, scopes);
241
- if (status === 0)
242
- saveAccessProfile();
243
- return status;
216
+ return runOauthLogin(root, slug, scopes);
244
217
  }
245
218
  //# sourceMappingURL=account-add.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"account-add.js","sourceRoot":"","sources":["../src/account-add.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"account-add.js","sourceRoot":"","sources":["../src/account-add.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,10 @@
1
+ import { type AccountAccess } from "./account-permissions.js";
2
+ export interface AccountProfile extends AccountAccess {
3
+ slug: string;
4
+ email: string;
5
+ }
6
+ export declare function accountSlug(email: string): string;
7
+ export declare function readAccountProfile(configDir: string, expectedSlug: string): AccountProfile | undefined;
8
+ export declare function writeAccountProfile(configDir: string, profile: AccountProfile): void;
9
+ export declare function allocateAccountSlug(accountsDir: string, email: string): string;
10
+ //# sourceMappingURL=account-state.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"account-state.d.ts","sourceRoot":"","sources":["../src/account-state.ts"],"names":[],"mappings":"AAQA,OAAO,EAAE,KAAK,aAAa,EAAiB,MAAM,0BAA0B,CAAC;AAG7E,MAAM,WAAW,cAAe,SAAQ,aAAa;IACnD,IAAI,EAAE,MAAM,CAAC;IACb,KAAK,EAAE,MAAM,CAAC;CACf;AAID,wBAAgB,WAAW,CAAC,KAAK,EAAE,MAAM,GAAG,MAAM,CAYjD;AAsBD,wBAAgB,kBAAkB,CAChC,SAAS,EAAE,MAAM,EACjB,YAAY,EAAE,MAAM,GACnB,cAAc,GAAG,SAAS,CAwB5B;AAED,wBAAgB,mBAAmB,CACjC,SAAS,EAAE,MAAM,EACjB,OAAO,EAAE,cAAc,GACtB,IAAI,CAaN;AAaD,wBAAgB,mBAAmB,CACjC,WAAW,EAAE,MAAM,EACnB,KAAK,EAAE,MAAM,GACZ,MAAM,CA0BR"}
@@ -0,0 +1,103 @@
1
+ import { chmodSync, lstatSync, mkdirSync, readFileSync, writeFileSync, } from "node:fs";
2
+ import { join } from "node:path";
3
+ import { isAccessLevel } from "./account-permissions.js";
4
+ import { CliError, EXIT, errorCode } from "./errors.js";
5
+ const ACCESS_PROFILE = "access.json";
6
+ export function accountSlug(email) {
7
+ const slug = email
8
+ .toLowerCase()
9
+ .replace(/[^a-z0-9]+/g, "-")
10
+ .replace(/^-+|-+$/g, "");
11
+ if (slug.length === 0) {
12
+ throw new CliError(EXIT.usage, `could not derive an account slug from: ${email}`);
13
+ }
14
+ return slug;
15
+ }
16
+ function isAccountProfile(value) {
17
+ return (typeof value === "object" &&
18
+ value !== null &&
19
+ "slug" in value &&
20
+ typeof value.slug === "string" &&
21
+ "email" in value &&
22
+ typeof value.email === "string" &&
23
+ "gmail" in value &&
24
+ typeof value.gmail === "string" &&
25
+ isAccessLevel(value.gmail) &&
26
+ "drive" in value &&
27
+ typeof value.drive === "string" &&
28
+ isAccessLevel(value.drive) &&
29
+ "calendar" in value &&
30
+ typeof value.calendar === "string" &&
31
+ isAccessLevel(value.calendar));
32
+ }
33
+ export function readAccountProfile(configDir, expectedSlug) {
34
+ const path = join(configDir, ACCESS_PROFILE);
35
+ let file;
36
+ try {
37
+ file = lstatSync(path);
38
+ }
39
+ catch (error) {
40
+ if (errorCode(error) === "ENOENT")
41
+ return undefined;
42
+ throw error;
43
+ }
44
+ if (!file.isFile() || file.isSymbolicLink()) {
45
+ throw new CliError(EXIT.noPermission, `unsafe account path: ${path}`);
46
+ }
47
+ let profile;
48
+ try {
49
+ profile = JSON.parse(readFileSync(path, "utf8"));
50
+ }
51
+ catch (error) {
52
+ if (error instanceof SyntaxError)
53
+ return undefined;
54
+ throw error;
55
+ }
56
+ if (!isAccountProfile(profile) || profile.slug !== expectedSlug) {
57
+ return undefined;
58
+ }
59
+ return profile;
60
+ }
61
+ export function writeAccountProfile(configDir, profile) {
62
+ const path = join(configDir, ACCESS_PROFILE);
63
+ try {
64
+ const file = lstatSync(path);
65
+ if (!file.isFile() || file.isSymbolicLink()) {
66
+ throw new CliError(EXIT.noPermission, `unsafe account path: ${path}`);
67
+ }
68
+ }
69
+ catch (error) {
70
+ if (errorCode(error) !== "ENOENT")
71
+ throw error;
72
+ }
73
+ writeFileSync(path, `${JSON.stringify(profile, null, 2)}\n`, { mode: 0o600 });
74
+ chmodSync(path, 0o600);
75
+ }
76
+ function existingAccountEmail(accountDir, slug) {
77
+ const directory = lstatSync(accountDir);
78
+ if (!directory.isDirectory() || directory.isSymbolicLink()) {
79
+ throw new CliError(EXIT.noPermission, `unsafe account path: ${accountDir}`);
80
+ }
81
+ return readAccountProfile(join(accountDir, "gws"), slug)?.email;
82
+ }
83
+ export function allocateAccountSlug(accountsDir, email) {
84
+ const baseSlug = accountSlug(email);
85
+ const normalizedEmail = email.toLowerCase();
86
+ for (let suffix = 0; Number.isSafeInteger(suffix); suffix += 1) {
87
+ const slug = suffix === 0 ? baseSlug : `${baseSlug}-${suffix}`;
88
+ const accountDir = join(accountsDir, slug);
89
+ try {
90
+ mkdirSync(accountDir, { mode: 0o700 });
91
+ return slug;
92
+ }
93
+ catch (error) {
94
+ if (errorCode(error) !== "EEXIST")
95
+ throw error;
96
+ }
97
+ if (existingAccountEmail(accountDir, slug)?.toLowerCase() === normalizedEmail) {
98
+ return slug;
99
+ }
100
+ }
101
+ throw new CliError(EXIT.unavailable, `could not allocate an account slug for: ${email}`);
102
+ }
103
+ //# sourceMappingURL=account-state.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"account-state.js","sourceRoot":"","sources":["../src/account-state.ts"],"names":[],"mappings":"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"}
package/dist/run.d.ts.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"run.d.ts","sourceRoot":"","sources":["../src/run.ts"],"names":[],"mappings":"AAoBA,MAAM,WAAW,UAAU;IACzB,OAAO,EAAE,MAAM,CAAC;IAChB,SAAS,EAAE,OAAO,CAAC;IACnB,YAAY,EAAE,MAAM,EAAE,CAAC;IACvB,aAAa,CAAC,EAAE,MAAM,CAAC;CACxB;AAmGD,wBAAgB,oBAAoB,CAClC,IAAI,EAAE,SAAS,MAAM,EAAE,EACvB,IAAI,EAAE,MAAM,GACX,MAAM,EAAE,CAiCV;AAED,wBAAgB,MAAM,CAAC,EACrB,OAAO,EACP,SAAS,EACT,YAAY,EACZ,aAAa,GACd,EAAE,UAAU,GAAG,MAAM,CAyFrB"}
1
+ {"version":3,"file":"run.d.ts","sourceRoot":"","sources":["../src/run.ts"],"names":[],"mappings":"AAmBA,MAAM,WAAW,UAAU;IACzB,OAAO,EAAE,MAAM,CAAC;IAChB,SAAS,EAAE,OAAO,CAAC;IACnB,YAAY,EAAE,MAAM,EAAE,CAAC;IACvB,aAAa,CAAC,EAAE,MAAM,CAAC;CACxB;AA8DD,wBAAgB,oBAAoB,CAClC,IAAI,EAAE,SAAS,MAAM,EAAE,EACvB,IAAI,EAAE,MAAM,GACX,MAAM,EAAE,CAiCV;AAED,wBAAgB,MAAM,CAAC,EACrB,OAAO,EACP,SAAS,EACT,YAAY,EACZ,aAAa,GACd,EAAE,UAAU,GAAG,MAAM,CAyFrB"}
package/dist/run.js CHANGED
@@ -1,8 +1,8 @@
1
1
  import { spawnSync } from "node:child_process";
2
- import { accessSync, chmodSync, constants, lstatSync, mkdirSync, readFileSync, statSync, writeFileSync, } from "node:fs";
2
+ import { accessSync, chmodSync, constants, lstatSync, mkdirSync, statSync, writeFileSync, } from "node:fs";
3
3
  import { createRequire } from "node:module";
4
4
  import { isAbsolute, join, resolve } from "node:path";
5
- import { accountSlug } from "./account-add.js";
5
+ import { readAccountProfile } from "./account-state.js";
6
6
  import { CliError, EXIT, errorCode } from "./errors.js";
7
7
  import { classifyGwsCommand } from "./gws-command-policy.js";
8
8
  const require = createRequire(import.meta.url);
@@ -40,36 +40,6 @@ function isFile(path) {
40
40
  throw error;
41
41
  }
42
42
  }
43
- function readAccountEmail(configDir, account) {
44
- const accessProfile = join(configDir, "access.json");
45
- let profileFile;
46
- try {
47
- profileFile = lstatSync(accessProfile);
48
- }
49
- catch (error) {
50
- if (errorCode(error) === "ENOENT")
51
- return undefined;
52
- throw error;
53
- }
54
- if (!profileFile.isFile() || profileFile.isSymbolicLink()) {
55
- throw new CliError(EXIT.noPermission, `unsafe account path: ${accessProfile}`);
56
- }
57
- let profile;
58
- try {
59
- profile = JSON.parse(readFileSync(accessProfile, "utf8"));
60
- }
61
- catch {
62
- return undefined;
63
- }
64
- if (typeof profile !== "object" ||
65
- profile === null ||
66
- !("email" in profile) ||
67
- typeof profile.email !== "string" ||
68
- accountSlug(profile.email) !== account) {
69
- return undefined;
70
- }
71
- return profile.email;
72
- }
73
43
  function ensureRuntimeDirectory(path) {
74
44
  mkdirSync(path, { recursive: true, mode: 0o700 });
75
45
  const directory = lstatSync(path);
@@ -145,7 +115,7 @@ export function runGws({ account, confirmed, gwsArguments, workspaceRoot, }) {
145
115
  : !isFile(gwsEntrypoint)) {
146
116
  throw new CliError(EXIT.unavailable, "gws is not installed; run: npm install");
147
117
  }
148
- const policy = classifyGwsCommand(gwsArguments, readAccountEmail(configDir, account));
118
+ const policy = classifyGwsCommand(gwsArguments, readAccountProfile(configDir, account)?.email);
149
119
  if (policy.action === "prohibit")
150
120
  throw new CliError(EXIT.noPermission, policy.reason);
151
121
  if (policy.action === "confirm" && !confirmed) {
package/dist/run.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"run.js","sourceRoot":"","sources":["../src/run.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"run.js","sourceRoot":"","sources":["../src/run.ts"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "multi-gws",
3
- "version": "0.0.4",
3
+ "version": "0.0.5",
4
4
  "description": "Multi-account safety wrapper for the Google Workspace CLI",
5
5
  "type": "module",
6
6
  "bin": {