@bobfrankston/rmfmail 1.2.121 → 1.2.123

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.
@@ -6,12 +6,12 @@
6
6
  * which prevents conflicts with existing folders of the same name.
7
7
  * All machines using the same OAuth client ID share the same folder.
8
8
  *
9
- * ── Restoring removed providers ──
10
- * OneDrive (removed 2026-04-06): Required microsoft-credentials.json in ~/.mailx/,
11
- * MS_SCOPES = "https://graph.microsoft.com/Files.ReadWrite offline_access",
12
- * authenticateOAuth with tokenDir ~/.mailx/tokens/microsoft/.
13
- * Read/write via Graph API: GET/PUT https://graph.microsoft.com/v1.0/me/drive/root:/{path}:/content
14
- * Azure AD app registration needed: https://portal.azure.com → App registrations → Desktop app
9
+ * OneDrive (restored 2026-07-12): Microsoft Graph, PATH-addressed (no folder
10
+ * IDs `root:/{path}:/content`), so the whole GDrive folder-ID
11
+ * discovery/validation/ownership machinery has no OneDrive counterpart.
12
+ * Needs ~/.rmfmail/microsoft-credentials.json (Azure public-client app;
13
+ * same registration the Outlook Graph mail provider uses — different
14
+ * scopes on the same token infrastructure).
15
15
  *
16
16
  * Dropbox (removed 2026-04-06): Never implemented — placeholder only.
17
17
  * Would need Dropbox OAuth app, token management, and Dropbox API v2 calls.
@@ -568,14 +568,154 @@ async function gDriveWriteToFolder(folderId, fileName, content) {
568
568
  }
569
569
  }
570
570
  }
571
+ // ── OneDrive (Microsoft Graph, path-addressed) ──
572
+ const MS_TOKEN_DIR = path.join(SETTINGS_DIR, "tokens", "microsoft");
573
+ // offline_access is a SCOPE on the Microsoft identity platform (unlike
574
+ // Google's access_type=offline query param) — required for a refresh token.
575
+ const ONEDRIVE_SCOPES = "https://graph.microsoft.com/Files.ReadWrite offline_access";
576
+ const GRAPH_ROOT = "https://graph.microsoft.com/v1.0/me/drive";
577
+ function findMicrosoftCredentials() {
578
+ const local = path.join(SETTINGS_DIR, "microsoft-credentials.json");
579
+ return fs.existsSync(local) ? local : null;
580
+ }
581
+ async function getOneDriveToken() {
582
+ const creds = findMicrosoftCredentials();
583
+ if (!creds) {
584
+ console.error(` [cloud] No Microsoft credentials — expected ${path.join(SETTINGS_DIR, "microsoft-credentials.json")} (Azure portal → App registrations → public/native client)`);
585
+ return null;
586
+ }
587
+ try {
588
+ const token = await authenticateOAuth(creds, {
589
+ scope: ONEDRIVE_SCOPES,
590
+ tokenDirectory: MS_TOKEN_DIR,
591
+ tokenFileName: "onedrive-token.json",
592
+ credentialsKey: "installed",
593
+ // Google-ism; Microsoft grants refresh tokens via the
594
+ // offline_access scope above instead.
595
+ includeOfflineAccess: false,
596
+ logFn: (type, message) => {
597
+ const p = " [oauth onedrive]";
598
+ if (type === "error")
599
+ console.error(`${p} ${message}`);
600
+ else
601
+ console.log(`${p} ${message}`);
602
+ },
603
+ });
604
+ if (!token?.access_token)
605
+ console.error(" [cloud] OneDrive auth: returned null — OAuth likely timed out");
606
+ return token?.access_token || null;
607
+ }
608
+ catch (e) {
609
+ console.error(` [cloud] OneDrive auth FAILED: ${e.message}`);
610
+ return null;
611
+ }
612
+ }
613
+ /** Graph item URL for `<basePath>/<fileName>` under the drive root. */
614
+ function graphContentUrl(basePath, fileName) {
615
+ const rel = [basePath.replace(/^\/+|\/+$/g, ""), fileName]
616
+ .filter(Boolean).join("/")
617
+ .split("/").map(encodeURIComponent).join("/");
618
+ return `${GRAPH_ROOT}/root:/${rel}:/content`;
619
+ }
620
+ /** Create every segment of basePath that doesn't exist yet. Graph's
621
+ * PUT :/content does NOT auto-create parent folders — a fresh account's
622
+ * first write would 404. conflictBehavior:fail + tolerating the
623
+ * nameAlreadyExists error makes this an idempotent walk. Once per
624
+ * process per path — after that the folders exist. */
625
+ const _ensuredPaths = new Set();
626
+ async function oneDriveEnsurePath(token, basePath) {
627
+ const clean = basePath.replace(/^\/+|\/+$/g, "");
628
+ if (!clean || _ensuredPaths.has(clean))
629
+ return;
630
+ let parent = "";
631
+ for (const seg of clean.split("/")) {
632
+ const url = parent
633
+ ? `${GRAPH_ROOT}/root:/${parent.split("/").map(encodeURIComponent).join("/")}:/children`
634
+ : `${GRAPH_ROOT}/root/children`;
635
+ const r = await fetch(url, {
636
+ method: "POST",
637
+ headers: { "Authorization": `Bearer ${token}`, "Content-Type": "application/json" },
638
+ body: JSON.stringify({ name: seg, folder: {}, "@microsoft.graph.conflictBehavior": "fail" }),
639
+ });
640
+ // 201 created, 409 nameAlreadyExists — both mean the segment exists now.
641
+ if (!r.ok && r.status !== 409) {
642
+ throw new Error(`OneDrive folder create "${seg}" failed: ${r.status} ${await r.text().catch(() => "")}`);
643
+ }
644
+ parent = parent ? `${parent}/${seg}` : seg;
645
+ }
646
+ _ensuredPaths.add(clean);
647
+ }
648
+ async function oneDriveRead(basePath, fileName) {
649
+ const token = await getOneDriveToken();
650
+ if (!token)
651
+ return null;
652
+ const r = await fetch(graphContentUrl(basePath, fileName), { headers: { "Authorization": `Bearer ${token}` } });
653
+ if (r.status === 404)
654
+ return null;
655
+ if (!r.ok) {
656
+ console.error(` [cloud] OneDrive read ${fileName}: ${r.status}`);
657
+ return null;
658
+ }
659
+ return await r.text();
660
+ }
661
+ async function oneDriveReadBinary(basePath, fileName) {
662
+ const token = await getOneDriveToken();
663
+ if (!token)
664
+ return null;
665
+ const r = await fetch(graphContentUrl(basePath, fileName), { headers: { "Authorization": `Bearer ${token}` } });
666
+ if (r.status === 404)
667
+ return null;
668
+ if (!r.ok) {
669
+ console.error(` [cloud] OneDrive readBinary ${fileName}: ${r.status}`);
670
+ return null;
671
+ }
672
+ return Buffer.from(await r.arrayBuffer()).toString("base64");
673
+ }
674
+ async function oneDriveWrite(basePath, fileName, content) {
675
+ const token = await getOneDriveToken();
676
+ if (!token)
677
+ throw new Error("OneDrive auth failed — cannot write");
678
+ const put = () => fetch(graphContentUrl(basePath, fileName), {
679
+ method: "PUT",
680
+ headers: { "Authorization": `Bearer ${token}`, "Content-Type": "text/plain" },
681
+ body: content,
682
+ });
683
+ let r = await put();
684
+ if (r.status === 404 || r.status === 409) {
685
+ // Parent path missing (fresh account) — create it and retry once.
686
+ await oneDriveEnsurePath(token, basePath);
687
+ r = await put();
688
+ }
689
+ if (!r.ok)
690
+ throw new Error(`OneDrive write ${fileName} failed: ${r.status} ${await r.text().catch(() => "")}`);
691
+ }
692
+ /** Fetch the authenticated Microsoft user's profile (setup-flow display). */
693
+ export async function getMicrosoftProfile() {
694
+ const token = await getOneDriveToken();
695
+ if (!token)
696
+ return null;
697
+ try {
698
+ const r = await fetch("https://graph.microsoft.com/v1.0/me", { headers: { "Authorization": `Bearer ${token}` } });
699
+ if (!r.ok)
700
+ return null;
701
+ const me = await r.json();
702
+ return { name: me.displayName, email: me.mail || me.userPrincipalName };
703
+ }
704
+ catch {
705
+ return null;
706
+ }
707
+ }
571
708
  /**
572
- * Get a cloud file provider. For gdrive, pass the folder ID.
573
- * Files are stored flat in the folder (no subdirectory navigation).
709
+ * Get a cloud file provider. The locator is provider-specific: gdrive takes
710
+ * the folder ID; onedrive takes the base PATH under the drive root (e.g.
711
+ * "home/.rmfmail"). Files are stored flat in that folder either way — the
712
+ * CloudFile contract is identical, only the FS API underneath differs.
574
713
  */
575
- export function getCloudProvider(provider, folderId) {
714
+ export function getCloudProvider(provider, locator) {
576
715
  switch (provider) {
577
716
  case "google":
578
- case "gdrive":
717
+ case "gdrive": {
718
+ const folderId = locator;
579
719
  if (!folderId) {
580
720
  console.error(" [cloud] gdrive requires a folder ID — run initCloudConfig first");
581
721
  return null;
@@ -586,6 +726,16 @@ export function getCloudProvider(provider, folderId) {
586
726
  write: (fileName, content) => gDriveWriteToFolder(folderId, fileName, content),
587
727
  exists: async (fileName) => (await gDriveReadFromFolder(folderId, fileName)) !== null,
588
728
  };
729
+ }
730
+ case "onedrive": {
731
+ const basePath = locator || "home/.rmfmail";
732
+ return {
733
+ read: (fileName) => oneDriveRead(basePath, fileName),
734
+ readBinary: (fileName) => oneDriveReadBinary(basePath, fileName),
735
+ write: (fileName, content) => oneDriveWrite(basePath, fileName, content),
736
+ exists: async (fileName) => (await oneDriveRead(basePath, fileName)) !== null,
737
+ };
738
+ }
589
739
  case "local":
590
740
  return {
591
741
  read: async (p) => { try {
@@ -604,7 +754,7 @@ export function getCloudProvider(provider, folderId) {
604
754
  exists: async (p) => fs.existsSync(p),
605
755
  };
606
756
  default:
607
- console.error(` [cloud] Provider "${provider}" not supported — only gdrive is available`);
757
+ console.error(` [cloud] Provider "${provider}" not supported — gdrive and onedrive are available`);
608
758
  return null;
609
759
  }
610
760
  }
@@ -1 +1 @@
1
- {"version":3,"file":"cloud.js","sourceRoot":"","sources":["cloud.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"cloud.js","sourceRoot":"","sources":["cloud.ts"],"names":[],"mappings":"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"}
@@ -6,12 +6,12 @@
6
6
  * which prevents conflicts with existing folders of the same name.
7
7
  * All machines using the same OAuth client ID share the same folder.
8
8
  *
9
- * ── Restoring removed providers ──
10
- * OneDrive (removed 2026-04-06): Required microsoft-credentials.json in ~/.mailx/,
11
- * MS_SCOPES = "https://graph.microsoft.com/Files.ReadWrite offline_access",
12
- * authenticateOAuth with tokenDir ~/.mailx/tokens/microsoft/.
13
- * Read/write via Graph API: GET/PUT https://graph.microsoft.com/v1.0/me/drive/root:/{path}:/content
14
- * Azure AD app registration needed: https://portal.azure.com → App registrations → Desktop app
9
+ * OneDrive (restored 2026-07-12): Microsoft Graph, PATH-addressed (no folder
10
+ * IDs `root:/{path}:/content`), so the whole GDrive folder-ID
11
+ * discovery/validation/ownership machinery has no OneDrive counterpart.
12
+ * Needs ~/.rmfmail/microsoft-credentials.json (Azure public-client app;
13
+ * same registration the Outlook Graph mail provider uses — different
14
+ * scopes on the same token infrastructure).
15
15
  *
16
16
  * Dropbox (removed 2026-04-06): Never implemented — placeholder only.
17
17
  * Would need Dropbox OAuth app, token management, and Dropbox API v2 calls.
@@ -517,9 +517,140 @@ async function gDriveWriteToFolder(folderId: string, fileName: string, content:
517
517
  }
518
518
  }
519
519
 
520
+ // ── OneDrive (Microsoft Graph, path-addressed) ──
521
+
522
+ const MS_TOKEN_DIR = path.join(SETTINGS_DIR, "tokens", "microsoft");
523
+ // offline_access is a SCOPE on the Microsoft identity platform (unlike
524
+ // Google's access_type=offline query param) — required for a refresh token.
525
+ const ONEDRIVE_SCOPES = "https://graph.microsoft.com/Files.ReadWrite offline_access";
526
+ const GRAPH_ROOT = "https://graph.microsoft.com/v1.0/me/drive";
527
+
528
+ function findMicrosoftCredentials(): string | null {
529
+ const local = path.join(SETTINGS_DIR, "microsoft-credentials.json");
530
+ return fs.existsSync(local) ? local : null;
531
+ }
532
+
533
+ async function getOneDriveToken(): Promise<string | null> {
534
+ const creds = findMicrosoftCredentials();
535
+ if (!creds) {
536
+ console.error(` [cloud] No Microsoft credentials — expected ${path.join(SETTINGS_DIR, "microsoft-credentials.json")} (Azure portal → App registrations → public/native client)`);
537
+ return null;
538
+ }
539
+ try {
540
+ const token = await authenticateOAuth(creds, {
541
+ scope: ONEDRIVE_SCOPES,
542
+ tokenDirectory: MS_TOKEN_DIR,
543
+ tokenFileName: "onedrive-token.json",
544
+ credentialsKey: "installed",
545
+ // Google-ism; Microsoft grants refresh tokens via the
546
+ // offline_access scope above instead.
547
+ includeOfflineAccess: false,
548
+ logFn: (type: "info" | "error", message: string) => {
549
+ const p = " [oauth onedrive]";
550
+ if (type === "error") console.error(`${p} ${message}`);
551
+ else console.log(`${p} ${message}`);
552
+ },
553
+ });
554
+ if (!token?.access_token) console.error(" [cloud] OneDrive auth: returned null — OAuth likely timed out");
555
+ return token?.access_token || null;
556
+ } catch (e: any) {
557
+ console.error(` [cloud] OneDrive auth FAILED: ${e.message}`);
558
+ return null;
559
+ }
560
+ }
561
+
562
+ /** Graph item URL for `<basePath>/<fileName>` under the drive root. */
563
+ function graphContentUrl(basePath: string, fileName: string): string {
564
+ const rel = [basePath.replace(/^\/+|\/+$/g, ""), fileName]
565
+ .filter(Boolean).join("/")
566
+ .split("/").map(encodeURIComponent).join("/");
567
+ return `${GRAPH_ROOT}/root:/${rel}:/content`;
568
+ }
569
+
570
+ /** Create every segment of basePath that doesn't exist yet. Graph's
571
+ * PUT :/content does NOT auto-create parent folders — a fresh account's
572
+ * first write would 404. conflictBehavior:fail + tolerating the
573
+ * nameAlreadyExists error makes this an idempotent walk. Once per
574
+ * process per path — after that the folders exist. */
575
+ const _ensuredPaths = new Set<string>();
576
+ async function oneDriveEnsurePath(token: string, basePath: string): Promise<void> {
577
+ const clean = basePath.replace(/^\/+|\/+$/g, "");
578
+ if (!clean || _ensuredPaths.has(clean)) return;
579
+ let parent = "";
580
+ for (const seg of clean.split("/")) {
581
+ const url = parent
582
+ ? `${GRAPH_ROOT}/root:/${parent.split("/").map(encodeURIComponent).join("/")}:/children`
583
+ : `${GRAPH_ROOT}/root/children`;
584
+ const r = await fetch(url, {
585
+ method: "POST",
586
+ headers: { "Authorization": `Bearer ${token}`, "Content-Type": "application/json" },
587
+ body: JSON.stringify({ name: seg, folder: {}, "@microsoft.graph.conflictBehavior": "fail" }),
588
+ });
589
+ // 201 created, 409 nameAlreadyExists — both mean the segment exists now.
590
+ if (!r.ok && r.status !== 409) {
591
+ throw new Error(`OneDrive folder create "${seg}" failed: ${r.status} ${await r.text().catch(() => "")}`);
592
+ }
593
+ parent = parent ? `${parent}/${seg}` : seg;
594
+ }
595
+ _ensuredPaths.add(clean);
596
+ }
597
+
598
+ async function oneDriveRead(basePath: string, fileName: string): Promise<string | null> {
599
+ const token = await getOneDriveToken();
600
+ if (!token) return null;
601
+ const r = await fetch(graphContentUrl(basePath, fileName), { headers: { "Authorization": `Bearer ${token}` } });
602
+ if (r.status === 404) return null;
603
+ if (!r.ok) {
604
+ console.error(` [cloud] OneDrive read ${fileName}: ${r.status}`);
605
+ return null;
606
+ }
607
+ return await r.text();
608
+ }
609
+
610
+ async function oneDriveReadBinary(basePath: string, fileName: string): Promise<string | null> {
611
+ const token = await getOneDriveToken();
612
+ if (!token) return null;
613
+ const r = await fetch(graphContentUrl(basePath, fileName), { headers: { "Authorization": `Bearer ${token}` } });
614
+ if (r.status === 404) return null;
615
+ if (!r.ok) {
616
+ console.error(` [cloud] OneDrive readBinary ${fileName}: ${r.status}`);
617
+ return null;
618
+ }
619
+ return Buffer.from(await r.arrayBuffer()).toString("base64");
620
+ }
621
+
622
+ async function oneDriveWrite(basePath: string, fileName: string, content: string): Promise<void> {
623
+ const token = await getOneDriveToken();
624
+ if (!token) throw new Error("OneDrive auth failed — cannot write");
625
+ const put = () => fetch(graphContentUrl(basePath, fileName), {
626
+ method: "PUT",
627
+ headers: { "Authorization": `Bearer ${token}`, "Content-Type": "text/plain" },
628
+ body: content,
629
+ });
630
+ let r = await put();
631
+ if (r.status === 404 || r.status === 409) {
632
+ // Parent path missing (fresh account) — create it and retry once.
633
+ await oneDriveEnsurePath(token, basePath);
634
+ r = await put();
635
+ }
636
+ if (!r.ok) throw new Error(`OneDrive write ${fileName} failed: ${r.status} ${await r.text().catch(() => "")}`);
637
+ }
638
+
639
+ /** Fetch the authenticated Microsoft user's profile (setup-flow display). */
640
+ export async function getMicrosoftProfile(): Promise<{ name?: string; email?: string } | null> {
641
+ const token = await getOneDriveToken();
642
+ if (!token) return null;
643
+ try {
644
+ const r = await fetch("https://graph.microsoft.com/v1.0/me", { headers: { "Authorization": `Bearer ${token}` } });
645
+ if (!r.ok) return null;
646
+ const me: any = await r.json();
647
+ return { name: me.displayName, email: me.mail || me.userPrincipalName };
648
+ } catch { return null; }
649
+ }
650
+
520
651
  // ── Public API ──
521
652
 
522
- export type CloudProvider = "gdrive" | "google" | "local";
653
+ export type CloudProvider = "gdrive" | "google" | "onedrive" | "local";
523
654
 
524
655
  export interface CloudFile {
525
656
  /** Read a file. For gdrive, path is just the filename (folder ID is implicit). */
@@ -533,13 +664,16 @@ export interface CloudFile {
533
664
  }
534
665
 
535
666
  /**
536
- * Get a cloud file provider. For gdrive, pass the folder ID.
537
- * Files are stored flat in the folder (no subdirectory navigation).
667
+ * Get a cloud file provider. The locator is provider-specific: gdrive takes
668
+ * the folder ID; onedrive takes the base PATH under the drive root (e.g.
669
+ * "home/.rmfmail"). Files are stored flat in that folder either way — the
670
+ * CloudFile contract is identical, only the FS API underneath differs.
538
671
  */
539
- export function getCloudProvider(provider: string, folderId?: string): CloudFile | null {
672
+ export function getCloudProvider(provider: string, locator?: string): CloudFile | null {
540
673
  switch (provider) {
541
674
  case "google":
542
- case "gdrive":
675
+ case "gdrive": {
676
+ const folderId = locator;
543
677
  if (!folderId) {
544
678
  console.error(" [cloud] gdrive requires a folder ID — run initCloudConfig first");
545
679
  return null;
@@ -550,6 +684,16 @@ export function getCloudProvider(provider: string, folderId?: string): CloudFile
550
684
  write: (fileName, content) => gDriveWriteToFolder(folderId, fileName, content),
551
685
  exists: async (fileName) => (await gDriveReadFromFolder(folderId, fileName)) !== null,
552
686
  };
687
+ }
688
+ case "onedrive": {
689
+ const basePath = locator || "home/.rmfmail";
690
+ return {
691
+ read: (fileName) => oneDriveRead(basePath, fileName),
692
+ readBinary: (fileName) => oneDriveReadBinary(basePath, fileName),
693
+ write: (fileName, content) => oneDriveWrite(basePath, fileName, content),
694
+ exists: async (fileName) => (await oneDriveRead(basePath, fileName)) !== null,
695
+ };
696
+ }
553
697
  case "local":
554
698
  return {
555
699
  read: async (p) => { try { return fs.readFileSync(p, "utf-8"); } catch { return null; } },
@@ -558,7 +702,7 @@ export function getCloudProvider(provider: string, folderId?: string): CloudFile
558
702
  exists: async (p) => fs.existsSync(p),
559
703
  };
560
704
  default:
561
- console.error(` [cloud] Provider "${provider}" not supported — only gdrive is available`);
705
+ console.error(` [cloud] Provider "${provider}" not supported — gdrive and onedrive are available`);
562
706
  return null;
563
707
  }
564
708
  }
@@ -231,7 +231,7 @@ export declare function initLocalConfig(sharedDir?: string, storePath?: string):
231
231
  * Finds or creates the app-owned ".rmfmail" folder via Drive API and stores its ID.
232
232
  * No mount scanning — API only. Existing settings at other paths (e.g., home/.rmfmail
233
233
  * from Desktop sync) must be migrated manually or via config.jsonc importPath. */
234
- export declare function initCloudConfig(provider?: "gdrive"): Promise<void>;
234
+ export declare function initCloudConfig(provider?: "gdrive" | "onedrive"): Promise<void>;
235
235
  declare const DEFAULT_SETTINGS: MailxSettings;
236
236
  /** Get historyDays for an account: per-account override > system override > shared default */
237
237
  export declare function getHistoryDays(accountId?: string): number;
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["index.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["index.ts"],"names":[],"mappings":"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"}