mevebu 1.5.0 → 1.6.0

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.
@@ -133,7 +133,7 @@ function masthead() {
133
133
  "div",
134
134
  { class: "mx-[var(--margin)] flex h-[var(--bar)] items-center gap-[clamp(14px,3vw,32px)]" },
135
135
  el("a", { class: "inline-flex min-h-11 flex-none items-center gap-2.5 text-lg font-bold tracking-[-0.01em] text-ink no-underline", href: "#/" },
136
- el("img", { class: "block size-[30px] rounded-[9px] shadow-[0_0_0_1px_var(--orbit)]", src: "./icon.png", alt: "", width: "30", height: "30" }), "mevebu"),
136
+ el("img", { class: "block size-[30px]", src: "./assets/logo.png", alt: "", width: "30", height: "30" }), "mevebu"),
137
137
  nav,
138
138
  el("div", { class: "flex items-center gap-0.5 max-[45rem]:ms-auto" }, searchButton(), themeBtn, menuBtn)
139
139
  ),
@@ -188,6 +188,9 @@ function openUpdate(latest) {
188
188
  const actionBox = el("div", { class: "flex flex-wrap items-center justify-end gap-2" });
189
189
  const command = updateCommand();
190
190
  const updatable = () => Boolean(resolved) && compareVersions(resolved, VERSION) > 0;
191
+ // A local build can sit above the published one, and saying "up to date" next
192
+ // to a lower number reads as a bug, so that case names itself.
193
+ const ahead = () => Boolean(resolved) && compareVersions(resolved, VERSION) < 0;
191
194
 
192
195
  const versionRow = (label, value, isNew) =>
193
196
  el(
@@ -206,9 +209,11 @@ function openUpdate(latest) {
206
209
  ? "Checking for updates"
207
210
  : newer
208
211
  ? `mevebu ${resolved} is out`
209
- : resolved
210
- ? "mevebu is up to date"
211
- : "Could not check for updates"
212
+ : !resolved
213
+ ? "Could not check for updates"
214
+ : ahead()
215
+ ? "This build is ahead of the published version"
216
+ : "mevebu is up to date"
212
217
  ),
213
218
  newer
214
219
  ? el("p", {}, "A newer version is published. Update your global install, then run ", el("code", { class: CODE }, PACKAGE_NAME), " again.")
@@ -321,7 +326,7 @@ function footer() {
321
326
  "div",
322
327
  { class: "grid gap-1.5" },
323
328
  el("a", { class: "inline-flex min-h-11 items-center gap-[9px] text-md font-bold tracking-[-0.01em] text-ink no-underline", href: "#/" },
324
- el("img", { class: "block size-[34px] rounded-[11px] shadow-[0_0_0_1px_var(--orbit)]", src: "./icon.png", alt: "", width: "34", height: "34" }), "mevebu"),
329
+ el("img", { class: "block size-[34px]", src: "./assets/logo.png", alt: "", width: "34", height: "34" }), "mevebu"),
325
330
  el("p", { class: "m-0 max-w-[30ch] text-sm leading-[1.5] text-ink-3" }, "Small tools that run in your browser. No accounts, no uploads, no tracking.")
326
331
  ),
327
332
  el(
@@ -568,7 +573,7 @@ function homePage() {
568
573
  )
569
574
  ),
570
575
  el("div", { class: "grid place-items-center rounded-[28px] border border-orbit bg-deck p-7 max-[60rem]:hidden" },
571
- el("img", { class: "block size-[248px]", src: "./icon.png", alt: "", width: "248", height: "248" }))
576
+ el("img", { class: "block size-[248px]", src: "./assets/logo.png", alt: "", width: "248", height: "248" }))
572
577
  )
573
578
  );
574
579
 
@@ -765,12 +765,6 @@
765
765
  .rounded-\[5px\] {
766
766
  border-radius: 5px;
767
767
  }
768
- .rounded-\[9px\] {
769
- border-radius: 9px;
770
- }
771
- .rounded-\[11px\] {
772
- border-radius: 11px;
773
- }
774
768
  .rounded-\[12px\] {
775
769
  border-radius: 12px;
776
770
  }
@@ -1274,10 +1268,6 @@
1274
1268
  --tw-shadow: 0 1px 3px 0 var(--tw-shadow-color, rgb(0 0 0 / 0.1)), 0 1px 2px -1px var(--tw-shadow-color, rgb(0 0 0 / 0.1));
1275
1269
  box-shadow: var(--tw-inset-shadow), var(--tw-inset-ring-shadow), var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow);
1276
1270
  }
1277
- .shadow-\[0_0_0_1px_var\(--orbit\)\] {
1278
- --tw-shadow: 0 0 0 1px var(--tw-shadow-color, var(--orbit));
1279
- box-shadow: var(--tw-inset-shadow), var(--tw-inset-ring-shadow), var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow);
1280
- }
1281
1271
  .shadow-\[0_1px_2px_rgb\(0_0_0\/0\.18\)\] {
1282
1272
  --tw-shadow: 0 1px 2px var(--tw-shadow-color, rgb(0 0 0/0.18));
1283
1273
  box-shadow: var(--tw-inset-shadow), var(--tw-inset-ring-shadow), var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow);
Binary file
Binary file
Binary file
Binary file
Binary file
@@ -0,0 +1,14 @@
1
+ {
2
+ "name": "mevebu",
3
+ "short_name": "mevebu",
4
+ "description": "Small tools that run in your browser.",
5
+ "start_url": "../",
6
+ "scope": "../",
7
+ "display": "standalone",
8
+ "background_color": "#eef1ed",
9
+ "theme_color": "#eef1ed",
10
+ "icons": [
11
+ { "src": "android-chrome-192x192.png", "sizes": "192x192", "type": "image/png" },
12
+ { "src": "android-chrome-512x512.png", "sizes": "512x512", "type": "image/png" }
13
+ ]
14
+ }
package/mevebu/index.html CHANGED
@@ -5,7 +5,11 @@
5
5
  <meta name="viewport" content="width=device-width, initial-scale=1" />
6
6
  <title>mevebu, small tools that run in your browser</title>
7
7
  <meta name="description" content="Small tools that run in your browser. Passwords, QR codes, random draws, text, dates and encoding. No accounts, no uploads, no tracking." />
8
- <link rel="icon" type="image/png" href="./icon.png" />
8
+ <link rel="icon" href="./assets/favicon.ico" sizes="any" />
9
+ <link rel="icon" type="image/png" sizes="32x32" href="./assets/favicon-32x32.png" />
10
+ <link rel="icon" type="image/png" sizes="16x16" href="./assets/favicon-16x16.png" />
11
+ <link rel="apple-touch-icon" sizes="180x180" href="./assets/apple-touch-icon.png" />
12
+ <link rel="manifest" href="./assets/site.webmanifest" />
9
13
  <link rel="stylesheet" href="./app/tailwind.css" />
10
14
  <script type="module">
11
15
  import { getTheme } from "./libs/js/core.js";
@@ -743,7 +743,7 @@ export function blank(iconName, text) {
743
743
  // ---------- version ----------
744
744
 
745
745
  // Kept in one place. The CLI reads the same value from package.json.
746
- export const VERSION = "1.5.0";
746
+ export const VERSION = "1.6.0";
747
747
  export const PACKAGE_NAME = "mevebu";
748
748
  export const REPO_SLUG = "mevebu/mevebu";
749
749
 
@@ -763,7 +763,14 @@ async function getJson(url, timeout) {
763
763
  const controller = new AbortController();
764
764
  const timer = setTimeout(() => controller.abort(), timeout);
765
765
  try {
766
- const response = await fetch(url, { signal: controller.signal, headers: { accept: "application/json" } });
766
+ // The registry answers `/latest` with `max-age=300`, so a cached reply would
767
+ // keep reporting the version from before a publish for five minutes. A
768
+ // version check is worthless when it is stale, so it never reads the cache.
769
+ const response = await fetch(url, {
770
+ signal: controller.signal,
771
+ cache: "no-store",
772
+ headers: { accept: "application/json" },
773
+ });
767
774
  if (!response.ok) return null;
768
775
  return await response.json();
769
776
  } catch {
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "mevebu",
3
- "version": "1.5.0",
3
+ "version": "1.6.0",
4
4
  "description": "Small tools that run in your browser. No accounts, no uploads, no tracking.",
5
5
  "license": "MIT",
6
6
  "type": "module",
Binary file
package/mevebu/icon.png DELETED
Binary file