@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.
- package/client/app.bundle.js +14 -2
- package/client/app.bundle.js.map +2 -2
- package/client/app.js +24 -6
- package/client/app.js.map +1 -1
- package/client/app.ts +23 -6
- package/client/compose/compose.bundle.js +11 -8
- package/client/compose/compose.bundle.js.map +2 -2
- package/client/compose/compose.html +0 -1
- package/client/compose/compose.js +15 -13
- package/client/compose/compose.js.map +1 -1
- package/client/compose/compose.ts +13 -11
- package/package.json +1 -1
- package/packages/mailx-settings/cloud.d.ts +17 -10
- package/packages/mailx-settings/cloud.d.ts.map +1 -1
- package/packages/mailx-settings/cloud.js +161 -11
- package/packages/mailx-settings/cloud.js.map +1 -1
- package/packages/mailx-settings/cloud.ts +156 -12
- package/packages/mailx-settings/index.d.ts +1 -1
- package/packages/mailx-settings/index.d.ts.map +1 -1
- package/packages/mailx-settings/index.js +34 -20
- package/packages/mailx-settings/index.js.map +1 -1
- package/packages/mailx-settings/index.ts +38 -22
|
@@ -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
|
-
*
|
|
10
|
-
*
|
|
11
|
-
*
|
|
12
|
-
*
|
|
13
|
-
*
|
|
14
|
-
*
|
|
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.
|
|
573
|
-
*
|
|
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,
|
|
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 —
|
|
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":"AAAA;;;;;;;;;;;;;;;;;GAiBG;AAEH,OAAO,EAAE,MAAM,SAAS,CAAC;AACzB,OAAO,IAAI,MAAM,WAAW,CAAC;AAC7B,OAAO,EAAE,iBAAiB,EAAE,MAAM,4BAA4B,CAAC;AAC/D,OAAO,EAAE,YAAY,EAAE,YAAY,EAAE,MAAM,YAAY,CAAC;AAExD,MAAM,YAAY,GAAG,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,WAAW,IAAI,OAAO,CAAC,GAAG,CAAC,IAAI,IAAI,GAAG,EAAE,UAAU,CAAC,CAAC;AAE/F,oBAAoB;AAEpB,4EAA4E;AAC5E,SAAS,qBAAqB;IAC1B,kDAAkD;IAClD,MAAM,KAAK,GAAG,IAAI,CAAC,IAAI,CAAC,YAAY,EAAE,yBAAyB,CAAC,CAAC;IACjE,IAAI,EAAE,CAAC,UAAU,CAAC,KAAK,CAAC;QAAE,OAAO,KAAK,CAAC;IACvC,IAAI,CAAC;QACD,IAAI,GAAG,GAAG,MAAM,CAAC,IAAI,CAAC,OAAO,CAAC;QAC9B,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC;YACzB,KAAK,MAAM,GAAG,IAAI,CAAC,cAAc,EAAE,OAAO,CAAC,EAAE,CAAC;gBAC1C,KAAK,MAAM,IAAI,IAAI,CAAC,wBAAwB,CAAC,EAAE,CAAC;oBAC5C,MAAM,CAAC,GAAG,IAAI,CAAC,IAAI,CAAC,GAAG,EAAE,cAAc,EAAE,eAAe,EAAE,GAAG,EAAE,IAAI,CAAC,CAAC;oBACrE,IAAI,EAAE,CAAC,UAAU,CAAC,CAAC,CAAC;wBAAE,OAAO,CAAC,CAAC;gBACnC,CAAC;YACL,CAAC;YACD,MAAM,MAAM,GAAG,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC;YACjC,IAAI,MAAM,KAAK,GAAG;gBAAE,MAAM;YAC1B,GAAG,GAAG,MAAM,CAAC;QACjB,CAAC;IACL,CAAC;IAAC,MAAM,CAAC,CAAC,yBAAyB,CAAC,CAAC;IACrC,OAAO,IAAI,CAAC;AAChB,CAAC;AAED,MAAM,gBAAgB,GAAG,IAAI,CAAC,IAAI,CAAC,YAAY,EAAE,QAAQ,EAAE,QAAQ,CAAC,CAAC;AACrE,4EAA4E;AAC5E,+EAA+E;AAC/E,8EAA8E;AAC9E,qDAAqD;AACrD,2EAA2E;AAC3E,kFAAkF;AAClF,MAAM,aAAa,GAAG,uCAAuC,CAAC;AAE9D,sBAAsB;AAEtB;;;;;;;;yDAQyD;AACzD,IAAI,gBAAgB,GAAG,KAAK,CAAC;AAC7B,SAAS,qBAAqB,CAAC,UAAuB;IAClD,IAAI,gBAAgB;QAAE,OAAO;IAC7B,gBAAgB,GAAG,IAAI,CAAC;IACxB,MAAM,SAAS,GAAG,IAAI,CAAC,IAAI,CAAC,YAAY,EAAE,QAAQ,CAAC,CAAC;IACpD,IAAI,CAAC,EAAE,CAAC,UAAU,CAAC,SAAS,CAAC;QAAE,OAAO;IACtC,MAAM,WAAW,GAAG,IAAI,CAAC,IAAI,CAAC,SAAS,EAAE,UAAU,CAAC,CAAC;IACrD,IAAI,QAAQ,GAAG,CAAC,CAAC;IACjB,IAAI,QAAQ,GAAG,CAAC,CAAC;IACjB,IAAI,CAAC;QACD,KAAK,MAAM,KAAK,IAAI,EAAE,CAAC,WAAW,CAAC,SAAS,CAAC,EAAE,CAAC;YAC5C,sEAAsE;YACtE,IAAI,KAAK,KAAK,QAAQ,IAAI,KAAK,KAAK,UAAU;gBAAE,SAAS;YACzD,IAAI,KAAK,CAAC,UAAU,CAAC,GAAG,CAAC;gBAAE,SAAS;YACpC,IAAI,UAAU,CAAC,GAAG,CAAC,KAAK,CAAC;gBAAE,SAAS;YACpC,MAAM,GAAG,GAAG,IAAI,CAAC,IAAI,CAAC,SAAS,EAAE,KAAK,CAAC,CAAC;YACxC,IAAI,CAAC;gBACD,IAAI,CAAC,EAAE,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC,WAAW,EAAE;oBAAE,SAAS;YAClD,CAAC;YAAC,MAAM,CAAC;gBAAC,SAAS;YAAC,CAAC;YACrB,gEAAgE;YAChE,qEAAqE;YACrE,gEAAgE;YAChE,8DAA8D;YAC9D,gEAAgE;YAChE,8DAA8D;YAC9D,gEAAgE;YAChE,kEAAkE;YAClE,uDAAuD;YACvD,MAAM,OAAO,GAAG,KAAK,CAAC,WAAW,EAAE,CAAC;YACpC,IAAI,UAAU,CAAC,GAAG,CAAC,OAAO,CAAC,IAAI,OAAO,KAAK,KAAK,EAAE,CAAC;gBAC/C,MAAM,SAAS,GAAG,IAAI,CAAC,IAAI,CAAC,GAAG,EAAE,kBAAkB,CAAC,CAAC;gBACrD,IAAI,EAAE,CAAC,UAAU,CAAC,SAAS,CAAC,EAAE,CAAC;oBAC3B,MAAM,MAAM,GAAG,IAAI,CAAC,IAAI,CAAC,SAAS,EAAE,OAAO,CAAC,CAAC;oBAC7C,MAAM,YAAY,GAAG,IAAI,CAAC,IAAI,CAAC,MAAM,EAAE,kBAAkB,CAAC,CAAC;oBAC3D,IAAI,CAAC;wBACD,IAAI,EAAE,CAAC,UAAU,CAAC,YAAY,CAAC,EAAE,CAAC;4BAC9B,uDAAuD;4BACvD,MAAM,QAAQ,GAAG,EAAE,CAAC,QAAQ,CAAC,SAAS,CAAC,CAAC,OAAO,CAAC;4BAChD,MAAM,QAAQ,GAAG,EAAE,CAAC,QAAQ,CAAC,YAAY,CAAC,CAAC,OAAO,CAAC;4BACnD,IAAI,QAAQ,GAAG,QAAQ,EAAE,CAAC;gCACtB,EAAE,CAAC,YAAY,CAAC,SAAS,EAAE,YAAY,CAAC,CAAC;gCACzC,OAAO,CAAC,GAAG,CAAC,uCAAuC,KAAK,MAAM,OAAO,oBAAoB,CAAC,CAAC;gCAC3F,QAAQ,EAAE,CAAC;4BACf,CAAC;iCAAM,CAAC;gCACJ,OAAO,CAAC,GAAG,CAAC,+BAA+B,KAAK,MAAM,OAAO,0BAA0B,CAAC,CAAC;4BAC7F,CAAC;wBACL,CAAC;6BAAM,CAAC;4BACJ,EAAE,CAAC,SAAS,CAAC,MAAM,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC,CAAC;4BAC1C,EAAE,CAAC,YAAY,CAAC,SAAS,EAAE,YAAY,CAAC,CAAC;4BACzC,OAAO,CAAC,GAAG,CAAC,iCAAiC,KAAK,MAAM,OAAO,EAAE,CAAC,CAAC;4BACnE,QAAQ,EAAE,CAAC;wBACf,CAAC;oBACL,CAAC;oBAAC,OAAO,CAAM,EAAE,CAAC;wBACd,OAAO,CAAC,KAAK,CAAC,6BAA6B,KAAK,MAAM,OAAO,YAAY,CAAC,EAAE,OAAO,IAAI,CAAC,EAAE,CAAC,CAAC;oBAChG,CAAC;gBACL,CAAC;gBACD,+DAA+D;YACnE,CAAC;YACD,MAAM,KAAK,GAAG,IAAI,IAAI,EAAE,CAAC,WAAW,EAAE,CAAC,OAAO,CAAC,OAAO,EAAE,GAAG,CAAC,CAAC,KAAK,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC;YAC1E,MAAM,GAAG,GAAG,IAAI,CAAC,IAAI,CAAC,WAAW,EAAE,GAAG,KAAK,IAAI,KAAK,EAAE,CAAC,CAAC;YACxD,IAAI,CAAC;gBACD,EAAE,CAAC,SAAS,CAAC,WAAW,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC,CAAC;gBAC/C,EAAE,CAAC,UAAU,CAAC,GAAG,EAAE,GAAG,CAAC,CAAC;gBACxB,OAAO,CAAC,GAAG,CAAC,uCAAuC,KAAK,eAAe,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;gBAC7F,QAAQ,EAAE,CAAC;YACf,CAAC;YAAC,OAAO,CAAM,EAAE,CAAC;gBACd,OAAO,CAAC,KAAK,CAAC,+BAA+B,KAAK,KAAK,CAAC,EAAE,OAAO,IAAI,CAAC,EAAE,CAAC,CAAC;YAC9E,CAAC;QACL,CAAC;IACL,CAAC;IAAC,OAAO,CAAM,EAAE,CAAC;QACd,OAAO,CAAC,KAAK,CAAC,qCAAqC,CAAC,EAAE,OAAO,IAAI,CAAC,EAAE,CAAC,CAAC;IAC1E,CAAC;IACD,IAAI,QAAQ,GAAG,CAAC,EAAE,CAAC;QACf,OAAO,CAAC,GAAG,CAAC,kCAAkC,QAAQ,sCAAsC,CAAC,CAAC;IAClG,CAAC;IACD,IAAI,QAAQ,GAAG,CAAC,EAAE,CAAC;QACf,OAAO,CAAC,GAAG,CAAC,kCAAkC,QAAQ,sCAAsC,CAAC,CAAC;IAClG,CAAC;AACL,CAAC;AAED;yEACyE;AACzE,SAAS,eAAe;IACpB,MAAM,MAAM,GAAG,IAAI,GAAG,EAAU,CAAC;IACjC,IAAI,CAAC;QACD,MAAM,KAAK,GAAG,YAAY,EAAE,CAAC;QAC7B,KAAK,MAAM,CAAC,IAAI,KAAK,EAAE,CAAC;YACpB,MAAM,CAAC,GAAI,CAAS,CAAC,IAAI,EAAE,IAAI,IAAK,CAAS,CAAC,KAAK,CAAC;YACpD,IAAI,CAAC;gBAAE,MAAM,CAAC,GAAG,CAAC,YAAY,CAAC,CAAC,CAAC,CAAC,CAAC;YACnC,kEAAkE;YAClE,+DAA+D;YAC/D,sDAAsD;YACtD,IAAK,CAAS,CAAC,KAAK;gBAAE,MAAM,CAAC,GAAG,CAAC,YAAY,CAAE,CAAS,CAAC,KAAK,CAAC,CAAC,CAAC;QACrE,CAAC;IACL,CAAC;IAAC,MAAM,CAAC,CAAC,oEAAoE,CAAC,CAAC;IAChF,OAAO,MAAM,CAAC;AAClB,CAAC;AAED;;;oCAGoC;AACpC,KAAK,UAAU,mBAAmB;IAC9B,wEAAwE;IACxE,oEAAoE;IACpE,MAAM,MAAM,GAAG,eAAe,EAAE,CAAC;IACjC,IAAI,MAAM,CAAC,IAAI,GAAG,CAAC;QAAE,qBAAqB,CAAC,MAAM,CAAC,CAAC;IAEnD,gEAAgE;IAChE,sEAAsE;IACtE,MAAM,SAAS,GAAG,IAAI,CAAC,IAAI,CAAC,YAAY,EAAE,QAAQ,CAAC,CAAC;IACpD,IAAI,EAAE,CAAC,UAAU,CAAC,SAAS,CAAC,EAAE,CAAC;QAC3B,IAAI,CAAC;YACD,KAAK,MAAM,KAAK,IAAI,EAAE,CAAC,WAAW,CAAC,SAAS,CAAC,EAAE,CAAC;gBAC5C,IAAI,KAAK,KAAK,QAAQ,IAAI,KAAK,KAAK,UAAU;oBAAE,SAAS;gBACzD,IAAI,KAAK,CAAC,UAAU,CAAC,GAAG,CAAC;oBAAE,SAAS;gBACpC,gEAAgE;gBAChE,+DAA+D;gBAC/D,8DAA8D;gBAC9D,0DAA0D;gBAC1D,6DAA6D;gBAC7D,IAAI,MAAM,CAAC,IAAI,GAAG,CAAC,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,KAAK,CAAC,EAAE,CAAC;oBACxC,OAAO,CAAC,GAAG,CAAC,gDAAgD,KAAK,EAAE,CAAC,CAAC;oBACrE,SAAS;gBACb,CAAC;gBACD,MAAM,SAAS,GAAG,IAAI,CAAC,IAAI,CAAC,SAAS,EAAE,KAAK,EAAE,kBAAkB,CAAC,CAAC;gBAClE,IAAI,CAAC,EAAE,CAAC,UAAU,CAAC,SAAS,CAAC;oBAAE,SAAS;gBACxC,IAAI,CAAC;oBACD,MAAM,GAAG,GAAG,IAAI,CAAC,KAAK,CAAC,EAAE,CAAC,YAAY,CAAC,SAAS,EAAE,OAAO,CAAC,CAAC,CAAC;oBAC5D,IAAI,GAAG,CAAC,KAAK,EAAE,QAAQ,CAAC,OAAO,CAAC,IAAI,GAAG,CAAC,aAAa,EAAE,CAAC;wBACpD,OAAO,CAAC,GAAG,CAAC,sCAAsC,KAAK,oBAAoB,CAAC,CAAC;wBAC7E,MAAM,KAAK,GAAG,qBAAqB,EAAE,CAAC;wBACtC,IAAI,CAAC,KAAK;4BAAE,SAAS;wBACrB,MAAM,SAAS,GAAG,MAAM,iBAAiB,CAAC,KAAK,EAAE;4BAC7C,KAAK,EAAE,GAAG,CAAC,KAAK;4BAChB,cAAc,EAAE,IAAI,CAAC,IAAI,CAAC,SAAS,EAAE,KAAK,CAAC;4BAC3C,aAAa,EAAE,kBAAkB;4BACjC,cAAc,EAAE,WAAW;4BAC3B,oBAAoB,EAAE,IAAI;4BAC1B,KAAK,EAAE,CAAC,IAAsB,EAAE,OAAe,EAAE,EAAE;gCAC/C,MAAM,CAAC,GAAG,uBAAuB,KAAK,GAAG,CAAC;gCAC1C,IAAI,IAAI,KAAK,OAAO;oCAAE,OAAO,CAAC,KAAK,CAAC,GAAG,CAAC,IAAI,OAAO,EAAE,CAAC,CAAC;;oCAClD,OAAO,CAAC,GAAG,CAAC,GAAG,CAAC,IAAI,OAAO,EAAE,CAAC,CAAC;4BACxC,CAAC;yBACJ,CAAC,CAAC;wBACH,IAAI,SAAS,EAAE,YAAY,EAAE,CAAC;4BAC1B,OAAO,CAAC,GAAG,CAAC,kDAAkD,CAAC,CAAC;4BAChE,OAAO,SAAS,CAAC,YAAY,CAAC;wBAClC,CAAC;oBACL,CAAC;gBACL,CAAC;gBAAC,MAAM,CAAC,CAAC,qBAAqB,CAAC,CAAC;YACrC,CAAC;QACL,CAAC;QAAC,MAAM,CAAC,CAAC,2BAA2B,CAAC,CAAC;IAC3C,CAAC;IAED,uEAAuE;IACvE,MAAM,KAAK,GAAG,qBAAqB,EAAE,CAAC;IACtC,IAAI,CAAC,KAAK,EAAE,CAAC;QACT,OAAO,CAAC,KAAK,CAAC,sGAAsG,CAAC,CAAC;QACtH,OAAO,IAAI,CAAC;IAChB,CAAC;IACD,MAAM,SAAS,GAAG,IAAI,CAAC,IAAI,CAAC,gBAAgB,EAAE,YAAY,CAAC,CAAC;IAC5D,IAAI,EAAE,CAAC,UAAU,CAAC,SAAS,CAAC,EAAE,CAAC;QAC3B,IAAI,CAAC;YACD,MAAM,QAAQ,GAAG,IAAI,CAAC,KAAK,CAAC,EAAE,CAAC,YAAY,CAAC,SAAS,EAAE,OAAO,CAAC,CAAC,CAAC;YACjE,MAAM,OAAO,GAAG,QAAQ,CAAC,UAAU,CAAC,CAAC,CAAC,IAAI,CAAC,GAAG,EAAE,IAAI,QAAQ,CAAC,UAAU,CAAC,CAAC,CAAC,IAAI,CAAC;YAC/E,MAAM,UAAU,GAAG,CAAC,CAAC,QAAQ,CAAC,aAAa,CAAC;YAC5C,OAAO,CAAC,GAAG,CAAC,uCAAuC,OAAO,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,OAAO,oBAAoB,UAAU,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,IAAI,YAAY,QAAQ,CAAC,KAAK,IAAI,GAAG,EAAE,CAAC,CAAC;YAClK,IAAI,QAAQ,CAAC,KAAK,IAAI,QAAQ,CAAC,KAAK,KAAK,aAAa,EAAE,CAAC;gBACrD,OAAO,CAAC,GAAG,CAAC,4BAA4B,QAAQ,CAAC,KAAK,MAAM,aAAa,0BAA0B,CAAC,CAAC;gBACrG,EAAE,CAAC,UAAU,CAAC,SAAS,CAAC,CAAC;YAC7B,CAAC;QACL,CAAC;QAAC,MAAM,CAAC,CAAC,YAAY,CAAC,CAAC;IAC5B,CAAC;SAAM,CAAC;QACJ,OAAO,CAAC,GAAG,CAAC,wCAAwC,SAAS,cAAc,CAAC,CAAC;IACjF,CAAC;IACD,IAAI,CAAC;QACD,MAAM,KAAK,GAAG,MAAM,iBAAiB,CAAC,KAAK,EAAE;YACzC,KAAK,EAAE,aAAa;YACpB,cAAc,EAAE,gBAAgB;YAChC,aAAa,EAAE,YAAY;YAC3B,cAAc,EAAE,WAAW;YAC3B,oBAAoB,EAAE,IAAI;YAC1B,KAAK,EAAE,CAAC,IAAsB,EAAE,OAAe,EAAE,EAAE;gBAC/C,MAAM,CAAC,GAAG,kBAAkB,CAAC;gBAC7B,IAAI,IAAI,KAAK,OAAO;oBAAE,OAAO,CAAC,KAAK,CAAC,GAAG,CAAC,IAAI,OAAO,EAAE,CAAC,CAAC;;oBAClD,OAAO,CAAC,GAAG,CAAC,GAAG,CAAC,IAAI,OAAO,EAAE,CAAC,CAAC;YACxC,CAAC;SACJ,CAAC,CAAC;QACH,IAAI,KAAK,EAAE,YAAY,EAAE,CAAC;YACtB,OAAO,CAAC,GAAG,CAAC,kDAAkD,CAAC,CAAC;QACpE,CAAC;aAAM,CAAC;YACJ,OAAO,CAAC,KAAK,CAAC,+DAA+D,CAAC,CAAC;QACnF,CAAC;QACD,OAAO,KAAK,EAAE,YAAY,IAAI,IAAI,CAAC;IACvC,CAAC;IAAC,OAAO,CAAM,EAAE,CAAC;QACd,OAAO,CAAC,KAAK,CAAC,iCAAiC,CAAC,CAAC,OAAO,EAAE,CAAC,CAAC;QAC5D,OAAO,IAAI,CAAC;IAChB,CAAC;AACL,CAAC;AAED,2CAA2C;AAE3C;;;2DAG2D;AAC3D,KAAK,UAAU,cAAc,CAAC,KAAa,EAAE,QAAkB,EAAE,MAAe;IAC5E,MAAM,QAAQ,GAAG,QAAQ,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;IACpC,IAAI,QAA4B,CAAC;IACjC,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,QAAQ,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE,CAAC;QACvC,MAAM,GAAG,GAAG,QAAQ,CAAC,CAAC,CAAC,CAAC;QACxB,MAAM,KAAK,GAAG,MAAM,gBAAgB,CAAC,KAAK,EAAE,GAAG,EAAE,QAAQ,CAAC,CAAC;QAC3D,IAAI,KAAK,EAAE,CAAC;YACR,OAAO,CAAC,GAAG,CAAC,mBAAmB,QAAQ,OAAO,GAAG,OAAO,KAAK,GAAG,QAAQ,CAAC,CAAC,CAAC,QAAQ,QAAQ,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC;YACvG,QAAQ,GAAG,KAAK,CAAC;QACrB,CAAC;aAAM,IAAI,MAAM,IAAI,CAAC,KAAK,QAAQ,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;YAC7C,MAAM,IAAI,GAAQ,EAAE,IAAI,EAAE,GAAG,EAAE,QAAQ,EAAE,oCAAoC,EAAE,CAAC;YAChF,IAAI,QAAQ;gBAAE,IAAI,CAAC,OAAO,GAAG,CAAC,QAAQ,CAAC,CAAC;YACxC,MAAM,GAAG,GAAG,MAAM,KAAK,CAAC,2CAA2C,EAAE;gBACjE,MAAM,EAAE,MAAM;gBACd,OAAO,EAAE,EAAE,aAAa,EAAE,UAAU,KAAK,EAAE,EAAE,cAAc,EAAE,kBAAkB,EAAE;gBACjF,IAAI,EAAE,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC;aAC7B,CAAC,CAAC;YACH,IAAI,CAAC,GAAG,CAAC,EAAE;gBAAE,OAAO,IAAI,CAAC;YACzB,MAAM,OAAO,GAAG,MAAM,GAAG,CAAC,IAAI,EAAS,CAAC;YACxC,QAAQ,GAAG,OAAO,CAAC,EAAE,CAAC;QAC1B,CAAC;aAAM,CAAC;YACJ,OAAO,IAAI,CAAC;QAChB,CAAC;IACL,CAAC;IACD,OAAO,QAAQ,IAAI,IAAI,CAAC;AAC5B,CAAC;AAED;;;;;;;;;oDASoD;AACpD,MAAM,CAAC,KAAK,UAAU,0BAA0B,CAAC,QAAgB;IAC7D,MAAM,KAAK,GAAG,MAAM,mBAAmB,EAAE,CAAC;IAC1C,IAAI,CAAC,KAAK;QAAE,OAAO,IAAI,CAAC,CAAC,iEAAiE;IAC1F,IAAI,CAAC;QACD,MAAM,GAAG,GAAG,MAAM,KAAK,CACnB,6CAA6C,QAAQ,kCAAkC,EACvF,EAAE,OAAO,EAAE,EAAE,aAAa,EAAE,UAAU,KAAK,EAAE,EAAE,EAAE,CAAC,CAAC;QACvD,IAAI,GAAG,CAAC,MAAM,KAAK,GAAG,EAAE,CAAC;YACrB,OAAO,CAAC,GAAG,CAAC,6BAA6B,QAAQ,yCAAyC,CAAC,CAAC;YAC5F,OAAO,KAAK,CAAC;QACjB,CAAC;QACD,IAAI,CAAC,GAAG,CAAC,EAAE;YAAE,OAAO,IAAI,CAAC;QACzB,MAAM,IAAI,GAAG,MAAM,GAAG,CAAC,IAAI,EAAS,CAAC;QACrC,IAAI,IAAI,CAAC,OAAO,EAAE,CAAC;YACf,OAAO,CAAC,GAAG,CAAC,6BAA6B,QAAQ,6BAA6B,CAAC,CAAC;YAChF,OAAO,KAAK,CAAC;QACjB,CAAC;QACD,IAAI,IAAI,CAAC,QAAQ,KAAK,oCAAoC,EAAE,CAAC;YACzD,OAAO,CAAC,GAAG,CAAC,6BAA6B,QAAQ,qBAAqB,IAAI,CAAC,QAAQ,mBAAmB,CAAC,CAAC;YACxG,OAAO,KAAK,CAAC;QACjB,CAAC;QACD,IAAI,IAAI,CAAC,IAAI,KAAK,UAAU,EAAE,CAAC;YAC3B,OAAO,CAAC,GAAG,CAAC,6BAA6B,QAAQ,cAAc,IAAI,CAAC,IAAI,oCAAoC,CAAC,CAAC;YAC9G,OAAO,KAAK,CAAC;QACjB,CAAC;QACD,OAAO,IAAI,CAAC;IAChB,CAAC;IAAC,OAAO,CAAM,EAAE,CAAC;QACd,OAAO,CAAC,KAAK,CAAC,yCAAyC,CAAC,CAAC,OAAO,EAAE,CAAC,CAAC;QACpE,OAAO,IAAI,CAAC,CAAC,oCAAoC;IACrD,CAAC;AACL,CAAC;AAED,gEAAgE;AAChE,KAAK,UAAU,gBAAgB,CAAC,KAAa,EAAE,IAAY,EAAE,QAAiB;IAC1E,IAAI,KAAK,GAAG,SAAS,IAAI,uEAAuE,CAAC;IACjG,IAAI,QAAQ;QAAE,KAAK,IAAI,SAAS,QAAQ,cAAc,CAAC;IACvD,MAAM,GAAG,GAAG,MAAM,KAAK,CAAC,+CAA+C,kBAAkB,CAAC,KAAK,CAAC,wBAAwB,EAAE;QACtH,OAAO,EAAE,EAAE,aAAa,EAAE,UAAU,KAAK,EAAE,EAAE;KAChD,CAAC,CAAC;IACH,IAAI,CAAC,GAAG,CAAC,EAAE,EAAE,CAAC;QAAC,OAAO,CAAC,KAAK,CAAC,mCAAmC,IAAI,MAAM,GAAG,CAAC,MAAM,IAAI,GAAG,CAAC,UAAU,EAAE,CAAC,CAAC;QAAC,OAAO,IAAI,CAAC;IAAC,CAAC;IACzH,MAAM,IAAI,GAAG,MAAM,GAAG,CAAC,IAAI,EAAS,CAAC;IACrC,OAAO,IAAI,CAAC,KAAK,EAAE,CAAC,CAAC,CAAC,EAAE,EAAE,IAAI,IAAI,CAAC;AACvC,CAAC;AAED;;;;;;;;;;;;;;;;;6CAiB6C;AAC7C,MAAM,CAAC,KAAK,UAAU,wBAAwB;IAC1C,MAAM,KAAK,GAAG,MAAM,mBAAmB,EAAE,CAAC;IAC1C,IAAI,CAAC,KAAK;QAAE,OAAO,IAAI,CAAC;IACxB,IAAI,CAAC;QACD,gDAAgD;QAChD,MAAM,MAAM,GAAG,MAAM,cAAc,CAAC,KAAK,EAAE,CAAC,MAAM,EAAE,UAAU,CAAC,EAAE,KAAK,CAAC,CAAC;QACxE,IAAI,MAAM,EAAE,CAAC;YACT,OAAO,CAAC,GAAG,CAAC,2CAA2C,MAAM,GAAG,CAAC,CAAC;YAClE,OAAO,MAAM,CAAC;QAClB,CAAC;QACD,0BAA0B;QAC1B,MAAM,MAAM,GAAG,MAAM,cAAc,CAAC,KAAK,EAAE,CAAC,UAAU,CAAC,EAAE,KAAK,CAAC,CAAC;QAChE,IAAI,MAAM,EAAE,CAAC;YACT,OAAO,CAAC,GAAG,CAAC,uDAAuD,MAAM,GAAG,CAAC,CAAC;YAC9E,OAAO,MAAM,CAAC;QAClB,CAAC;QACD,2DAA2D;QAC3D,MAAM,OAAO,GAAG,MAAM,cAAc,CAAC,KAAK,EAAE,CAAC,UAAU,CAAC,EAAE,IAAI,CAAC,CAAC;QAChE,IAAI,OAAO;YAAE,OAAO,CAAC,GAAG,CAAC,yDAAyD,OAAO,GAAG,CAAC,CAAC;QAC9F,OAAO,OAAO,CAAC;IACnB,CAAC;IAAC,OAAO,CAAM,EAAE,CAAC;QACd,OAAO,CAAC,KAAK,CAAC,kCAAkC,CAAC,CAAC,OAAO,EAAE,CAAC,CAAC;QAC7D,OAAO,IAAI,CAAC;IAChB,CAAC;AACL,CAAC;AAED;;;;;;kBAMkB;AAClB,SAAS,aAAa,CAAC,KAAwB,EAAE,QAAgB;IAC7D,IAAI,CAAC,KAAK,IAAI,KAAK,CAAC,MAAM,KAAK,CAAC;QAAE,OAAO,SAAS,CAAC;IACnD,IAAI,KAAK,CAAC,MAAM,KAAK,CAAC;QAAE,OAAO,KAAK,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC;IAC3C,MAAM,MAAM,GAAG,CAAC,GAAG,KAAK,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,QAAQ,CAAC,CAAC,CAAC,IAAI,IAAI,GAAG,EAAE,EAAE,CAAC,GAAG,QAAQ,CAAC,CAAC,CAAC,IAAI,IAAI,GAAG,EAAE,EAAE,CAAC,CAAC,CAAC;IACpG,OAAO,CAAC,IAAI,CAAC,aAAa,KAAK,CAAC,MAAM,iBAAiB,QAAQ,wCAAwC,MAAM,CAAC,CAAC,CAAC,CAAC,IAAI,IAAI,GAAG,2DAA2D,MAAM,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;IACpO,OAAO,MAAM,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC;AACxB,CAAC;AAED,gDAAgD;AAChD,KAAK,UAAU,oBAAoB,CAAC,QAAgB,EAAE,QAAgB;IAClE,MAAM,KAAK,GAAG,MAAM,mBAAmB,EAAE,CAAC;IAC1C,IAAI,CAAC,KAAK,EAAE,CAAC;QAAC,OAAO,CAAC,KAAK,CAAC,yBAAyB,QAAQ,YAAY,CAAC,CAAC;QAAC,OAAO,IAAI,CAAC;IAAC,CAAC;IAC1F,IAAI,CAAC;QACD,sBAAsB;QACtB,MAAM,KAAK,GAAG,SAAS,QAAQ,UAAU,QAAQ,gCAAgC,CAAC;QAClF,MAAM,GAAG,GAAG,MAAM,KAAK,CAAC,+CAA+C,kBAAkB,CAAC,KAAK,CAAC,6BAA6B,EAAE;YAC3H,OAAO,EAAE,EAAE,aAAa,EAAE,UAAU,KAAK,EAAE,EAAE;SAChD,CAAC,CAAC;QACH,IAAI,CAAC,GAAG,CAAC,EAAE,EAAE,CAAC;YAAC,OAAO,CAAC,KAAK,CAAC,4BAA4B,QAAQ,MAAM,GAAG,CAAC,MAAM,EAAE,CAAC,CAAC;YAAC,OAAO,IAAI,CAAC;QAAC,CAAC;QACpG,MAAM,IAAI,GAAG,MAAM,GAAG,CAAC,IAAI,EAAS,CAAC;QACrC,MAAM,MAAM,GAAG,aAAa,CAAC,IAAI,CAAC,KAAK,EAAE,QAAQ,CAAC,CAAC;QACnD,IAAI,CAAC,MAAM;YAAE,OAAO,IAAI,CAAC;QAEzB,mBAAmB;QACnB,MAAM,UAAU,GAAG,MAAM,KAAK,CAAC,6CAA6C,MAAM,YAAY,EAAE;YAC5F,OAAO,EAAE,EAAE,aAAa,EAAE,UAAU,KAAK,EAAE,EAAE;SAChD,CAAC,CAAC;QACH,IAAI,CAAC,UAAU,CAAC,EAAE,EAAE,CAAC;YAAC,OAAO,CAAC,KAAK,CAAC,6BAA6B,QAAQ,KAAK,UAAU,CAAC,MAAM,EAAE,CAAC,CAAC;YAAC,OAAO,IAAI,CAAC;QAAC,CAAC;QAClH,OAAO,MAAM,UAAU,CAAC,IAAI,EAAE,CAAC;IACnC,CAAC;IAAC,OAAO,CAAM,EAAE,CAAC;QACd,OAAO,CAAC,KAAK,CAAC,yBAAyB,QAAQ,KAAK,CAAC,CAAC,OAAO,EAAE,CAAC,CAAC;QACjE,OAAO,IAAI,CAAC;IAChB,CAAC;AACL,CAAC;AAED;;;kDAGkD;AAClD,KAAK,UAAU,0BAA0B,CAAC,QAAgB,EAAE,QAAgB;IACxE,MAAM,KAAK,GAAG,MAAM,mBAAmB,EAAE,CAAC;IAC1C,IAAI,CAAC,KAAK,EAAE,CAAC;QAAC,OAAO,CAAC,KAAK,CAAC,+BAA+B,QAAQ,YAAY,CAAC,CAAC;QAAC,OAAO,IAAI,CAAC;IAAC,CAAC;IAChG,IAAI,CAAC;QACD,MAAM,KAAK,GAAG,SAAS,QAAQ,UAAU,QAAQ,gCAAgC,CAAC;QAClF,MAAM,GAAG,GAAG,MAAM,KAAK,CAAC,+CAA+C,kBAAkB,CAAC,KAAK,CAAC,6BAA6B,EAAE;YAC3H,OAAO,EAAE,EAAE,aAAa,EAAE,UAAU,KAAK,EAAE,EAAE;SAChD,CAAC,CAAC;QACH,IAAI,CAAC,GAAG,CAAC,EAAE,EAAE,CAAC;YAAC,OAAO,CAAC,KAAK,CAAC,4BAA4B,QAAQ,MAAM,GAAG,CAAC,MAAM,EAAE,CAAC,CAAC;YAAC,OAAO,IAAI,CAAC;QAAC,CAAC;QACpG,MAAM,IAAI,GAAG,MAAM,GAAG,CAAC,IAAI,EAAS,CAAC;QACrC,MAAM,MAAM,GAAG,aAAa,CAAC,IAAI,CAAC,KAAK,EAAE,QAAQ,CAAC,CAAC;QACnD,IAAI,CAAC,MAAM;YAAE,OAAO,IAAI,CAAC;QACzB,MAAM,UAAU,GAAG,MAAM,KAAK,CAAC,6CAA6C,MAAM,YAAY,EAAE;YAC5F,OAAO,EAAE,EAAE,aAAa,EAAE,UAAU,KAAK,EAAE,EAAE;SAChD,CAAC,CAAC;QACH,IAAI,CAAC,UAAU,CAAC,EAAE,EAAE,CAAC;YAAC,OAAO,CAAC,KAAK,CAAC,6BAA6B,QAAQ,KAAK,UAAU,CAAC,MAAM,EAAE,CAAC,CAAC;YAAC,OAAO,IAAI,CAAC;QAAC,CAAC;QAClH,MAAM,GAAG,GAAG,MAAM,CAAC,IAAI,CAAC,MAAM,UAAU,CAAC,WAAW,EAAE,CAAC,CAAC;QACxD,OAAO,GAAG,CAAC,QAAQ,CAAC,QAAQ,CAAC,CAAC;IAClC,CAAC;IAAC,OAAO,CAAM,EAAE,CAAC;QACd,OAAO,CAAC,KAAK,CAAC,+BAA+B,QAAQ,KAAK,CAAC,CAAC,OAAO,EAAE,CAAC,CAAC;QACvE,OAAO,IAAI,CAAC;IAChB,CAAC;AACL,CAAC;AAED;sFACsF;AACtF,KAAK,UAAU,mBAAmB,CAAC,QAAgB,EAAE,QAAgB,EAAE,OAAe;IAClF,MAAM,KAAK,GAAG,MAAM,mBAAmB,EAAE,CAAC;IAC1C,IAAI,CAAC,KAAK;QAAE,MAAM,IAAI,KAAK,CAAC,4DAA4D,CAAC,CAAC;IAC1F,iCAAiC;IACjC,MAAM,KAAK,GAAG,SAAS,QAAQ,UAAU,QAAQ,gCAAgC,CAAC;IAClF,MAAM,OAAO,GAAG,MAAM,KAAK,CAAC,+CAA+C,kBAAkB,CAAC,KAAK,CAAC,6BAA6B,EAAE;QAC/H,OAAO,EAAE,EAAE,aAAa,EAAE,UAAU,KAAK,EAAE,EAAE;KAChD,CAAC,CAAC;IACH,IAAI,CAAC,OAAO,CAAC,EAAE,EAAE,CAAC;QACd,MAAM,IAAI,GAAG,MAAM,OAAO,CAAC,IAAI,EAAE,CAAC,KAAK,CAAC,GAAG,EAAE,CAAC,EAAE,CAAC,CAAC;QAClD,MAAM,IAAI,KAAK,CAAC,yBAAyB,QAAQ,aAAa,OAAO,CAAC,MAAM,IAAI,OAAO,CAAC,UAAU,KAAK,IAAI,CAAC,KAAK,CAAC,CAAC,EAAE,GAAG,CAAC,EAAE,CAAC,CAAC;IACjI,CAAC;IACD,MAAM,QAAQ,GAAG,MAAM,OAAO,CAAC,IAAI,EAAS,CAAC;IAC7C,yEAAyE;IACzE,sCAAsC;IACtC,MAAM,UAAU,GAAG,aAAa,CAAC,QAAQ,CAAC,KAAK,EAAE,QAAQ,CAAC,CAAC;IAE3D,IAAI,UAAU,EAAE,CAAC;QACb,uBAAuB;QACvB,MAAM,GAAG,GAAG,MAAM,KAAK,CAAC,oDAAoD,UAAU,mBAAmB,EAAE;YACvG,MAAM,EAAE,OAAO;YACf,OAAO,EAAE,EAAE,aAAa,EAAE,UAAU,KAAK,EAAE,EAAE,cAAc,EAAE,kBAAkB,EAAE;YACjF,IAAI,EAAE,OAAO;SAChB,CAAC,CAAC;QACH,IAAI,CAAC,GAAG,CAAC,EAAE,EAAE,CAAC;YACV,MAAM,IAAI,GAAG,MAAM,GAAG,CAAC,IAAI,EAAE,CAAC,KAAK,CAAC,GAAG,EAAE,CAAC,EAAE,CAAC,CAAC;YAC9C,MAAM,IAAI,KAAK,CAAC,yBAAyB,QAAQ,aAAa,GAAG,CAAC,MAAM,IAAI,GAAG,CAAC,UAAU,KAAK,IAAI,CAAC,KAAK,CAAC,CAAC,EAAE,GAAG,CAAC,EAAE,CAAC,CAAC;QACzH,CAAC;IACL,CAAC;SAAM,CAAC;QACJ,4BAA4B;QAC5B,MAAM,QAAQ,GAAG,iBAAiB,GAAG,IAAI,CAAC,GAAG,EAAE,CAAC;QAChD,MAAM,QAAQ,GAAG,IAAI,CAAC,SAAS,CAAC,EAAE,IAAI,EAAE,QAAQ,EAAE,OAAO,EAAE,CAAC,QAAQ,CAAC,EAAE,CAAC,CAAC;QACzE,MAAM,IAAI,GAAG,KAAK,QAAQ,6CAA6C,QAAQ,SAAS,QAAQ,6CAA6C,OAAO,SAAS,QAAQ,IAAI,CAAC;QAC1K,MAAM,GAAG,GAAG,MAAM,KAAK,CAAC,uEAAuE,EAAE;YAC7F,MAAM,EAAE,MAAM;YACd,OAAO,EAAE,EAAE,aAAa,EAAE,UAAU,KAAK,EAAE,EAAE,cAAc,EAAE,+BAA+B,QAAQ,EAAE,EAAE;YACxG,IAAI;SACP,CAAC,CAAC;QACH,IAAI,CAAC,GAAG,CAAC,EAAE,EAAE,CAAC;YACV,MAAM,OAAO,GAAG,MAAM,GAAG,CAAC,IAAI,EAAE,CAAC,KAAK,CAAC,GAAG,EAAE,CAAC,EAAE,CAAC,CAAC;YACjD,MAAM,IAAI,KAAK,CAAC,yBAAyB,QAAQ,aAAa,GAAG,CAAC,MAAM,IAAI,GAAG,CAAC,UAAU,KAAK,OAAO,CAAC,KAAK,CAAC,CAAC,EAAE,GAAG,CAAC,EAAE,CAAC,CAAC;QAC5H,CAAC;IACL,CAAC;AACL,CAAC;AAiBD;;;GAGG;AACH,MAAM,UAAU,gBAAgB,CAAC,QAAgB,EAAE,QAAiB;IAChE,QAAQ,QAAQ,EAAE,CAAC;QACf,KAAK,QAAQ,CAAC;QACd,KAAK,QAAQ;YACT,IAAI,CAAC,QAAQ,EAAE,CAAC;gBACZ,OAAO,CAAC,KAAK,CAAC,mEAAmE,CAAC,CAAC;gBACnF,OAAO,IAAI,CAAC;YAChB,CAAC;YACD,OAAO;gBACH,IAAI,EAAE,CAAC,QAAQ,EAAE,EAAE,CAAC,oBAAoB,CAAC,QAAQ,EAAE,QAAQ,CAAC;gBAC5D,UAAU,EAAE,CAAC,QAAQ,EAAE,EAAE,CAAC,0BAA0B,CAAC,QAAQ,EAAE,QAAQ,CAAC;gBACxE,KAAK,EAAE,CAAC,QAAQ,EAAE,OAAO,EAAE,EAAE,CAAC,mBAAmB,CAAC,QAAQ,EAAE,QAAQ,EAAE,OAAO,CAAC;gBAC9E,MAAM,EAAE,KAAK,EAAE,QAAQ,EAAE,EAAE,CAAC,CAAC,MAAM,oBAAoB,CAAC,QAAQ,EAAE,QAAQ,CAAC,CAAC,KAAK,IAAI;aACxF,CAAC;QACN,KAAK,OAAO;YACR,OAAO;gBACH,IAAI,EAAE,KAAK,EAAE,CAAC,EAAE,EAAE,GAAG,IAAI,CAAC;oBAAC,OAAO,EAAE,CAAC,YAAY,CAAC,CAAC,EAAE,OAAO,CAAC,CAAC;gBAAC,CAAC;gBAAC,MAAM,CAAC;oBAAC,OAAO,IAAI,CAAC;gBAAC,CAAC,CAAC,CAAC;gBACzF,UAAU,EAAE,KAAK,EAAE,CAAC,EAAE,EAAE,GAAG,IAAI,CAAC;oBAAC,OAAO,EAAE,CAAC,YAAY,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC,QAAQ,CAAC,CAAC;gBAAC,CAAC;gBAAC,MAAM,CAAC;oBAAC,OAAO,IAAI,CAAC;gBAAC,CAAC,CAAC,CAAC;gBACzG,KAAK,EAAE,KAAK,EAAE,CAAC,EAAE,CAAC,EAAE,EAAE,GAAG,EAAE,CAAC,aAAa,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC;gBAClD,MAAM,EAAE,KAAK,EAAE,CAAC,EAAE,EAAE,CAAC,EAAE,CAAC,UAAU,CAAC,CAAC,CAAC;aACxC,CAAC;QACN;YACI,OAAO,CAAC,KAAK,CAAC,uBAAuB,QAAQ,4CAA4C,CAAC,CAAC;YAC3F,OAAO,IAAI,CAAC;IACpB,CAAC;AACL,CAAC;AAED;;;;2DAI2D;AAC3D,MAAM,CAAC,KAAK,UAAU,gBAAgB,CAAC,KAAa;IAChD,IAAI,CAAC,KAAK;QAAE,OAAO,IAAI,CAAC;IACxB,IAAI,CAAC;QACD,MAAM,GAAG,GAAG,MAAM,KAAK,CAAC,8EAA8E,EAAE;YACpG,OAAO,EAAE,EAAE,aAAa,EAAE,UAAU,KAAK,EAAE,EAAE;SAChD,CAAC,CAAC;QACH,IAAI,CAAC,GAAG,CAAC,EAAE,EAAE,CAAC;YACV,OAAO,CAAC,KAAK,CAAC,yBAAyB,GAAG,CAAC,MAAM,IAAI,GAAG,CAAC,UAAU,EAAE,CAAC,CAAC;YACvE,OAAO,IAAI,CAAC;QAChB,CAAC;QACD,MAAM,IAAI,GAAG,MAAM,GAAG,CAAC,IAAI,EAAS,CAAC;QACrC,MAAM,IAAI,GAAG,IAAI,CAAC,KAAK,EAAE,IAAI,CAAC,CAAC,CAAM,EAAE,EAAE,CAAC,CAAC,CAAC,WAAW,CAAC,EAAE,WAAW;eACxD,IAAI,CAAC,KAAK,EAAE,CAAC,CAAC,CAAC,EAAE,WAAW,CAAC;QAC1C,MAAM,KAAK,GAAG,IAAI,CAAC,cAAc,EAAE,IAAI,CAAC,CAAC,CAAM,EAAE,EAAE,CAAC,CAAC,CAAC,QAAQ,EAAE,OAAO,CAAC,EAAE,KAAK;eACjE,IAAI,CAAC,cAAc,EAAE,CAAC,CAAC,CAAC,EAAE,KAAK,CAAC;QAC9C,OAAO,EAAE,IAAI,EAAE,KAAK,EAAE,CAAC;IAC3B,CAAC;IAAC,OAAO,CAAM,EAAE,CAAC;QACd,OAAO,CAAC,KAAK,CAAC,+BAA+B,CAAC,CAAC,OAAO,EAAE,CAAC,CAAC;QAC1D,OAAO,IAAI,CAAC;IAChB,CAAC;AACL,CAAC"}
|
|
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
|
-
*
|
|
10
|
-
*
|
|
11
|
-
*
|
|
12
|
-
*
|
|
13
|
-
*
|
|
14
|
-
*
|
|
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.
|
|
537
|
-
*
|
|
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,
|
|
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 —
|
|
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":"AAAA;;;;;;;;;;;;;;;;GAgBG;AAKH,OAAO,KAAK,EAAE,aAAa,EAAE,aAAa,EAAE,oBAAoB,EAAE,MAAM,EAAE,MAAM,2BAA2B,CAAC;AAyG5G,QAAA,MAAM,SAAS,QAA4E,CAAC;
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["index.ts"],"names":[],"mappings":"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"}
|