@bobfrankston/mailx 1.0.8 → 1.0.12

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/bin/mailx.js CHANGED
@@ -37,15 +37,15 @@ async function main() {
37
37
 
38
38
  const inUse = await isPortInUse(PORT);
39
39
  if (inUse) {
40
- console.log(`mailx server already running on port ${PORT}`);
40
+ console.log("mailx is already running");
41
41
  if (!noBrowser) {
42
42
  openBrowser(`http://localhost:${PORT}`);
43
- console.log(`Opened http://localhost:${PORT}`);
43
+ console.log("mailx opened");
44
44
  }
45
45
  return;
46
46
  }
47
47
 
48
- console.log(`Starting mailx on port ${PORT}...`);
48
+ console.log("Starting mailx...");
49
49
 
50
50
  if (args.includes("--external")) process.argv.push("--external");
51
51
 
@@ -58,7 +58,7 @@ async function main() {
58
58
  if (await isPortInUse(PORT)) break;
59
59
  }
60
60
  openBrowser(`http://localhost:${PORT}`);
61
- console.log(`Opened http://localhost:${PORT}`);
61
+ console.log("mailx opened");
62
62
  }
63
63
  }
64
64
 
@@ -0,0 +1,41 @@
1
+ #!/usr/bin/env node
2
+ /**
3
+ * Post-install script: creates symlinks for workspace packages
4
+ * so they resolve as @bobfrankston/mailx-* in node_modules.
5
+ */
6
+
7
+ import fs from "node:fs";
8
+ import path from "node:path";
9
+
10
+ const root = path.resolve(import.meta.dirname, "..");
11
+ const packagesDir = path.join(root, "packages");
12
+ const nmDir = path.join(root, "node_modules", "@bobfrankston");
13
+
14
+ if (!fs.existsSync(packagesDir)) process.exit(0); // not in workspace layout
15
+
16
+ fs.mkdirSync(nmDir, { recursive: true });
17
+
18
+ for (const dir of fs.readdirSync(packagesDir)) {
19
+ const pkgPath = path.join(packagesDir, dir, "package.json");
20
+ if (!fs.existsSync(pkgPath)) continue;
21
+
22
+ const pkg = JSON.parse(fs.readFileSync(pkgPath, "utf-8"));
23
+ const name = pkg.name?.split("/")[1]; // e.g., "mailx-store" from "@bobfrankston/mailx-store"
24
+ if (!name) continue;
25
+
26
+ const linkPath = path.join(nmDir, name);
27
+ const targetPath = path.join(packagesDir, dir);
28
+
29
+ if (fs.existsSync(linkPath)) continue; // already linked
30
+
31
+ try {
32
+ // Use junction on Windows (no admin needed), symlink on Unix
33
+ if (process.platform === "win32") {
34
+ fs.symlinkSync(targetPath, linkPath, "junction");
35
+ } else {
36
+ fs.symlinkSync(targetPath, linkPath, "dir");
37
+ }
38
+ } catch (e) {
39
+ console.error(`Failed to link ${name}: ${e.message}`);
40
+ }
41
+ }
@@ -5,5 +5,9 @@
5
5
  "type": "module",
6
6
  "dependencies": {
7
7
  "quill": "^2.0.0"
8
+ },
9
+ "repository": {
10
+ "type": "git",
11
+ "url": "https://github.com/BobFrankston/mailx-client.git"
8
12
  }
9
13
  }
package/launch.ps1 CHANGED
@@ -10,10 +10,13 @@
10
10
  # Log: mailx.log
11
11
  # Data: ~/.mailx/ (DB, store, settings pointer)
12
12
 
13
- $exe = "$PSScriptRoot\launcher\target\debug\mailx-app.exe"
14
-
13
+ # Try pre-built binary first, then dev build
14
+ $exe = "$PSScriptRoot\launcher\bin\mailx-app.exe"
15
+ if (-not (Test-Path $exe)) {
16
+ $exe = "$PSScriptRoot\launcher\target\debug\mailx-app.exe"
17
+ }
15
18
  if (-not (Test-Path $exe)) {
16
- Write-Host "Launcher not built. Run: launcher\build.cmd"
19
+ Write-Host "Launcher not found. Run: launcher\build.cmd"
17
20
  exit 1
18
21
  }
19
22
 
Binary file
Binary file
@@ -0,0 +1,4 @@
1
+ @echo off
2
+ call "C:\Program Files\Microsoft Visual Studio\2022\Community\VC\Auxiliary\Build\vcvars64.bat" >nul 2>&1
3
+ cd /d "%~dp0"
4
+ cargo build --release %*
package/npmg.bat ADDED
@@ -0,0 +1,6 @@
1
+ cls
2
+ killport 9333
3
+ taskKill /im mailx-app.exe /f /t
4
+ npmglobalize.ps1 -cleanup
5
+ npmglobalize.ps1
6
+
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@bobfrankston/mailx",
3
- "version": "1.0.8",
3
+ "version": "1.0.12",
4
4
  "description": "Local-first email client with IMAP sync and standalone native app",
5
5
  "type": "module",
6
6
  "main": "bin/mailx.js",
@@ -16,7 +16,8 @@
16
16
  "watch": "tsc -w",
17
17
  "start": "node --watch packages/mailx-server/index.js",
18
18
  "start:prod": "node packages/mailx-server/index.js",
19
- "release": "npmglobalize"
19
+ "release": "npmglobalize",
20
+ "postinstall": "node bin/postinstall.js"
20
21
  },
21
22
  "dependencies": {
22
23
  "@bobfrankston/iflow": "^1.0.2",
@@ -24,7 +25,12 @@
24
25
  "@bobfrankston/oauthsupport": "^1.0.10",
25
26
  "@bobfrankston/certsupport": "^1.0.35",
26
27
  "mailparser": "^3.7.2",
27
- "quill": "^2.0.3"
28
+ "quill": "^2.0.3",
29
+ "express": "^4.21.0",
30
+ "nodemailer": "^7.0.0",
31
+ "ws": "^8.18.0",
32
+ "jsonc-parser": "^3.3.1",
33
+ "better-sqlite3": "^11.7.0"
28
34
  },
29
35
  "devDependencies": {
30
36
  "@types/mailparser": "^3.4.6"
@@ -48,6 +54,11 @@
48
54
  "@bobfrankston/oauthsupport": "file:../../projects/oauth/oauthsupport",
49
55
  "@bobfrankston/certsupport": "file:../../projects/nodejs/certsupport",
50
56
  "mailparser": "^3.7.2",
51
- "quill": "^2.0.3"
57
+ "quill": "^2.0.3",
58
+ "express": "^4.21.0",
59
+ "nodemailer": "^7.0.0",
60
+ "ws": "^8.18.0",
61
+ "jsonc-parser": "^3.3.1",
62
+ "better-sqlite3": "^11.7.0"
52
63
  }
53
64
  }
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@bobfrankston/mailx-api",
3
- "version": "0.1.0",
3
+ "version": "0.1.2",
4
4
  "type": "module",
5
5
  "main": "index.js",
6
6
  "types": "index.d.ts",
@@ -20,5 +20,9 @@
20
20
  "devDependencies": {
21
21
  "@types/express": "^5.0.0",
22
22
  "@types/nodemailer": "^6.4.0"
23
+ },
24
+ "repository": {
25
+ "type": "git",
26
+ "url": "https://github.com/BobFrankston/mailx-api.git"
23
27
  }
24
28
  }
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@bobfrankston/mailx-compose",
3
- "version": "0.1.0",
3
+ "version": "0.1.1",
4
4
  "type": "module",
5
5
  "main": "index.js",
6
6
  "types": "index.d.ts",
@@ -10,5 +10,9 @@
10
10
  "license": "ISC",
11
11
  "dependencies": {
12
12
  "@bobfrankston/mailx-types": "file:../mailx-types"
13
+ },
14
+ "repository": {
15
+ "type": "git",
16
+ "url": "https://github.com/BobFrankston/mailx-compose.git"
13
17
  }
14
18
  }
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@bobfrankston/mailx-imap",
3
- "version": "0.1.0",
3
+ "version": "0.1.3",
4
4
  "type": "module",
5
5
  "main": "index.js",
6
6
  "types": "index.d.ts",
@@ -15,5 +15,9 @@
15
15
  "@bobfrankston/iflow": "file:../../../MailApps/iflow",
16
16
  "@bobfrankston/oauthsupport": "file:../../../../projects/oauth/oauthsupport",
17
17
  "nodemailer": "^7.0.0"
18
+ },
19
+ "repository": {
20
+ "type": "git",
21
+ "url": "https://github.com/BobFrankston/mailx-imap.git"
18
22
  }
19
23
  }
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@bobfrankston/mailx-send",
3
- "version": "0.1.0",
3
+ "version": "0.1.1",
4
4
  "description": "Queue-based mail sender with SMTP and OAuth2 support",
5
5
  "type": "module",
6
6
  "main": "index.js",
@@ -13,7 +13,13 @@
13
13
  "build": "tsc",
14
14
  "release": "npmglobalize"
15
15
  },
16
- "keywords": ["email", "smtp", "queue", "oauth2", "gmail"],
16
+ "keywords": [
17
+ "email",
18
+ "smtp",
19
+ "queue",
20
+ "oauth2",
21
+ "gmail"
22
+ ],
17
23
  "author": "Bob Frankston",
18
24
  "license": "MIT",
19
25
  "dependencies": {
@@ -23,5 +29,9 @@
23
29
  "devDependencies": {
24
30
  "@types/nodemailer": "^6.4.0",
25
31
  "@types/node": "^22.0.0"
32
+ },
33
+ "repository": {
34
+ "type": "git",
35
+ "url": "https://github.com/BobFrankston/mailx-send.git"
26
36
  }
27
37
  }
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@bobfrankston/mailx-server",
3
- "version": "1.0.3",
3
+ "version": "1.0.4",
4
4
  "type": "module",
5
5
  "main": "index.js",
6
6
  "types": "index.d.ts",
@@ -21,5 +21,9 @@
21
21
  "devDependencies": {
22
22
  "@types/express": "^5.0.0",
23
23
  "@types/ws": "^8.5.13"
24
+ },
25
+ "repository": {
26
+ "type": "git",
27
+ "url": "https://github.com/BobFrankston/mailx-server.git"
24
28
  }
25
29
  }
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@bobfrankston/mailx-settings",
3
- "version": "0.1.0",
3
+ "version": "0.1.4",
4
4
  "type": "module",
5
5
  "main": "index.js",
6
6
  "types": "index.d.ts",
@@ -12,5 +12,9 @@
12
12
  "dependencies": {
13
13
  "@bobfrankston/mailx-types": "file:../mailx-types",
14
14
  "jsonc-parser": "^3.3.1"
15
+ },
16
+ "repository": {
17
+ "type": "git",
18
+ "url": "https://github.com/BobFrankston/mailx-settings.git"
15
19
  }
16
20
  }
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@bobfrankston/mailx-store",
3
- "version": "0.1.0",
3
+ "version": "0.1.3",
4
4
  "type": "module",
5
5
  "main": "index.js",
6
6
  "types": "index.d.ts",
@@ -15,5 +15,9 @@
15
15
  },
16
16
  "devDependencies": {
17
17
  "@types/better-sqlite3": "^7.6.12"
18
+ },
19
+ "repository": {
20
+ "type": "git",
21
+ "url": "https://github.com/BobFrankston/mailx-store.git"
18
22
  }
19
23
  }
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@bobfrankston/mailx-types",
3
- "version": "0.1.0",
3
+ "version": "0.1.3",
4
4
  "type": "module",
5
5
  "main": "index.js",
6
6
  "types": "index.d.ts",
@@ -8,5 +8,9 @@
8
8
  "build": "tsc",
9
9
  "release": "npmglobalize"
10
10
  },
11
- "license": "ISC"
11
+ "license": "ISC",
12
+ "repository": {
13
+ "type": "git",
14
+ "url": "https://github.com/BobFrankston/mailx-types.git"
15
+ }
12
16
  }