@bobfrankston/rmfmail 1.2.314 → 1.2.316
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/.commitmsg +29 -24
- package/.llm/trusted-lists.md +10 -0
- package/client/android-bootstrap.bundle.js +21 -1
- package/client/android-bootstrap.bundle.js.map +2 -2
- package/client/app.bundle.js +51 -3
- package/client/app.bundle.js.map +2 -2
- package/client/app.js +12 -0
- package/client/app.js.map +1 -1
- package/client/app.ts +11 -0
- package/client/components/calendar-sidebar.js +59 -3
- package/client/components/calendar-sidebar.js.map +1 -1
- package/client/components/calendar-sidebar.ts +50 -3
- package/client/compose/compose.bundle.js +4 -0
- package/client/compose/compose.bundle.js.map +2 -2
- package/client/lib/api-client.js +6 -0
- package/client/lib/api-client.js.map +1 -1
- package/client/lib/api-client.ts +6 -0
- package/client/lib/mailxapi.js +4 -1
- package/npmchanges.md +50 -0
- package/package.json +5 -5
- package/packages/mailx-imap/package-lock.json +2 -2
- package/packages/mailx-imap/package.json +1 -1
- package/packages/mailx-service/index.d.ts +14 -0
- package/packages/mailx-service/index.d.ts.map +1 -1
- package/packages/mailx-service/index.js +31 -0
- package/packages/mailx-service/index.js.map +1 -1
- package/packages/mailx-service/index.ts +29 -0
- package/packages/mailx-service/jsonrpc.js +2 -0
- package/packages/mailx-service/jsonrpc.js.map +1 -1
- package/packages/mailx-service/jsonrpc.ts +2 -0
- package/packages/mailx-service/package.json +1 -1
- package/packages/mailx-settings/docs/spam-false-positives.md +1 -1
- package/packages/mailx-settings/package.json +1 -1
- package/packages/mailx-store/package.json +1 -1
- package/packages/mailx-store-web/package.json +1 -1
- package/packages/mailx-store-web/web-service.d.ts +4 -0
- package/packages/mailx-store-web/web-service.d.ts.map +1 -1
- package/packages/mailx-store-web/web-service.js +1 -0
- package/packages/mailx-store-web/web-service.js.map +1 -1
- package/packages/mailx-store-web/web-service.ts +1 -0
- package/packages/mailx-types/mailx-api.d.ts +5 -0
- package/packages/mailx-types/mailx-api.d.ts.map +1 -1
- package/packages/mailx-types/mailx-api.ts +2 -0
- package/packages/mailx-types/package.json +1 -1
- package/packages/mailx-types/trust.d.ts.map +1 -1
- package/packages/mailx-types/trust.js +33 -1
- package/packages/mailx-types/trust.js.map +1 -1
package/client/app.bundle.js
CHANGED
|
@@ -106,6 +106,7 @@ __export(api_client_exports, {
|
|
|
106
106
|
reauthGoogleScopes: () => reauthGoogleScopes,
|
|
107
107
|
reauthenticate: () => reauthenticate,
|
|
108
108
|
recordSpamReport: () => recordSpamReport,
|
|
109
|
+
refreshCalendarNow: () => refreshCalendarNow,
|
|
109
110
|
registerMailto: () => registerMailto,
|
|
110
111
|
removeUserDictWord: () => removeUserDictWord,
|
|
111
112
|
renameFolder: () => renameFolder,
|
|
@@ -259,6 +260,9 @@ function getPrimaryAccount(feature) {
|
|
|
259
260
|
function getCalendarEvents(fromMs, toMs) {
|
|
260
261
|
return ipc().getCalendarEvents?.(fromMs, toMs) ?? Promise.resolve([]);
|
|
261
262
|
}
|
|
263
|
+
function refreshCalendarNow() {
|
|
264
|
+
return ipc().refreshCalendarNow?.() ?? Promise.resolve({ ok: false, reason: "not available" });
|
|
265
|
+
}
|
|
262
266
|
function getCalendars() {
|
|
263
267
|
return ipc().getCalendars?.() ?? Promise.resolve([]);
|
|
264
268
|
}
|
|
@@ -7214,19 +7218,57 @@ function openNewEventDialog() {
|
|
|
7214
7218
|
}
|
|
7215
7219
|
const api = window.mailxapi;
|
|
7216
7220
|
const targets = events.length ? events : [null];
|
|
7221
|
+
let authuser = "";
|
|
7222
|
+
try {
|
|
7223
|
+
authuser = String((await getPrimaryAccount("calendar"))?.email || "");
|
|
7224
|
+
} catch (e) {
|
|
7225
|
+
console.warn("[calendar] primary account lookup failed, opening without authuser:", e?.message || e);
|
|
7226
|
+
}
|
|
7217
7227
|
for (const ev of targets) {
|
|
7218
|
-
const url = buildGoogleEventUrl(ev, text);
|
|
7228
|
+
const url = buildGoogleEventUrl(ev, text, authuser);
|
|
7219
7229
|
if (api?.openExternal)
|
|
7220
7230
|
api.openExternal(url);
|
|
7221
7231
|
else
|
|
7222
7232
|
window.open(url, "_blank");
|
|
7223
7233
|
}
|
|
7234
|
+
armPostCreateRefresh();
|
|
7224
7235
|
close();
|
|
7225
7236
|
});
|
|
7226
7237
|
}
|
|
7227
|
-
function
|
|
7238
|
+
function armPostCreateRefresh() {
|
|
7239
|
+
disarmPostCreateRefresh();
|
|
7240
|
+
const pull = async (why) => {
|
|
7241
|
+
try {
|
|
7242
|
+
const r = await refreshCalendarNow();
|
|
7243
|
+
if (!r?.ok)
|
|
7244
|
+
console.log(`[calendar] post-create refresh (${why}) not started: ${r?.reason || "unknown"}`);
|
|
7245
|
+
} catch (e) {
|
|
7246
|
+
console.warn(`[calendar] post-create refresh (${why}) failed:`, e?.message || e);
|
|
7247
|
+
}
|
|
7248
|
+
};
|
|
7249
|
+
postCreateFocusHandler = () => {
|
|
7250
|
+
void pull("window focus");
|
|
7251
|
+
};
|
|
7252
|
+
window.addEventListener("focus", postCreateFocusHandler);
|
|
7253
|
+
postCreateTimers = POST_CREATE_REFRESH_DELAYS_MS.map((ms, i) => window.setTimeout(() => {
|
|
7254
|
+
void pull(`${ms / 1e3} s after create`);
|
|
7255
|
+
if (i === POST_CREATE_REFRESH_DELAYS_MS.length - 1)
|
|
7256
|
+
disarmPostCreateRefresh();
|
|
7257
|
+
}, ms));
|
|
7258
|
+
}
|
|
7259
|
+
function disarmPostCreateRefresh() {
|
|
7260
|
+
for (const t of postCreateTimers)
|
|
7261
|
+
window.clearTimeout(t);
|
|
7262
|
+
postCreateTimers = [];
|
|
7263
|
+
if (postCreateFocusHandler)
|
|
7264
|
+
window.removeEventListener("focus", postCreateFocusHandler);
|
|
7265
|
+
postCreateFocusHandler = null;
|
|
7266
|
+
}
|
|
7267
|
+
function buildGoogleEventUrl(event, fallbackText, authuser = "") {
|
|
7228
7268
|
const base = "https://calendar.google.com/calendar/render?action=TEMPLATE";
|
|
7229
7269
|
const params = [];
|
|
7270
|
+
if (authuser)
|
|
7271
|
+
params.push(`authuser=${encodeURIComponent(authuser)}`);
|
|
7230
7272
|
const fmt = (iso) => {
|
|
7231
7273
|
const m = iso.match(/(\d{4})-(\d{2})-(\d{2})(?:T(\d{2}):(\d{2})(?::(\d{2}))?)?/);
|
|
7232
7274
|
if (!m)
|
|
@@ -7451,7 +7493,7 @@ function initCalendarSidebar() {
|
|
|
7451
7493
|
}
|
|
7452
7494
|
}
|
|
7453
7495
|
}
|
|
7454
|
-
var SIDEBAR_PREF, SHOW_RECURRING_PREF, SHOW_DONE_PREF, HORIZON_DAYS_PREF, HORIZON_DEFAULT_DAYS, HOLIDAY_HORIZON_MS, viewYear, viewMonth, viewDay, lastEvents, lastOverdueTasks, calById, calendarList, hiddenCalendars, selectedTaskUuids, TASK_DELETE_NOTE;
|
|
7496
|
+
var SIDEBAR_PREF, SHOW_RECURRING_PREF, SHOW_DONE_PREF, HORIZON_DAYS_PREF, HORIZON_DEFAULT_DAYS, HOLIDAY_HORIZON_MS, viewYear, viewMonth, viewDay, lastEvents, lastOverdueTasks, calById, calendarList, hiddenCalendars, selectedTaskUuids, TASK_DELETE_NOTE, POST_CREATE_REFRESH_DELAYS_MS, postCreateTimers, postCreateFocusHandler;
|
|
7455
7497
|
var init_calendar_sidebar = __esm({
|
|
7456
7498
|
"client/components/calendar-sidebar.js"() {
|
|
7457
7499
|
"use strict";
|
|
@@ -7473,6 +7515,9 @@ var init_calendar_sidebar = __esm({
|
|
|
7473
7515
|
hiddenCalendars = /* @__PURE__ */ new Set();
|
|
7474
7516
|
selectedTaskUuids = /* @__PURE__ */ new Set();
|
|
7475
7517
|
TASK_DELETE_NOTE = "Removes it from Google Tasks. To mark it done instead, use the checkbox.";
|
|
7518
|
+
POST_CREATE_REFRESH_DELAYS_MS = [45e3, 12e4, 3e5];
|
|
7519
|
+
postCreateTimers = [];
|
|
7520
|
+
postCreateFocusHandler = null;
|
|
7476
7521
|
}
|
|
7477
7522
|
});
|
|
7478
7523
|
|
|
@@ -9643,6 +9688,9 @@ window.__btick && window.__btick("app.ts module body executing");
|
|
|
9643
9688
|
}, true);
|
|
9644
9689
|
document.addEventListener("contextmenu", (e) => {
|
|
9645
9690
|
if (e.defaultPrevented) return;
|
|
9691
|
+
const t = e.target;
|
|
9692
|
+
const tag = t?.tagName;
|
|
9693
|
+
if (tag === "TEXTAREA" || tag === "INPUT" && !["checkbox", "radio", "button", "submit", "range", "color", "file"].includes(t.type)) return;
|
|
9646
9694
|
e.preventDefault();
|
|
9647
9695
|
const items = editMenuItems({ target: e.target });
|
|
9648
9696
|
if (items.length > 0) showContextMenu(e.clientX, e.clientY, items);
|