diff --git a/package.json b/package.json index d22f62c1..1f71bcb4 100644 --- a/package.json +++ b/package.json @@ -71,9 +71,9 @@ "analytics": "0.8.1", "analytics-plugin-plausible": "0.0.6", "daisyui": "2.50.0", + "dayjs": "^1.11.7", "js-base64": "3.7.4", - "mermaid": "9.4.0", - "moment": "2.29.4", + "mermaid": "9.4.2-rc.1", "monaco-editor": "0.34.1", "monaco-mermaid": "1.0.8", "pako": "2.1.0", diff --git a/src/lib/components/Actions.svelte b/src/lib/components/Actions.svelte index 166a58cd..04fdb0cf 100644 --- a/src/lib/components/Actions.svelte +++ b/src/lib/components/Actions.svelte @@ -6,13 +6,13 @@ import { stateStore } from '$lib/util/state'; import { logEvent } from '$lib/util/stats'; import { toBase64 } from 'js-base64'; - import moment from 'moment'; + import dayjs from 'dayjs'; const { krokiRendererUrl, rendererUrl } = env; type Exporter = (context: CanvasRenderingContext2D, image: HTMLImageElement) => () => void; const getFileName = (ext: string) => - `mermaid-diagram-${moment().format('YYYY-MM-DD-HHmmss')}.${ext}`; + `mermaid-diagram-${dayjs().format('YYYY-MM-DD-HHmmss')}.${ext}`; const getBase64SVG = (svg?: HTMLElement, width?: number, height?: number): string => { height && svg?.setAttribute('height', `${height}px`); diff --git a/src/lib/components/History/History.svelte b/src/lib/components/History/History.svelte index 3663b71d..a943cc8a 100644 --- a/src/lib/components/History/History.svelte +++ b/src/lib/components/History/History.svelte @@ -13,10 +13,13 @@ import { notify, prompt } from '$lib/util/notify'; import { onMount } from 'svelte'; import { get } from 'svelte/store'; - import moment from 'moment'; + import dayjs from 'dayjs'; + import dayjsRelativeTime from 'dayjs/plugin/relativeTime'; import type { HistoryEntry, HistoryType, State, Tab } from '$lib/types'; import { logEvent } from '$lib/util/stats'; + dayjs.extend(dayjsRelativeTime); + const HISTORY_SAVE_INTERVAL = 60000; const tabSelectHandler = (message: CustomEvent) => { @@ -41,7 +44,7 @@ const url = URL.createObjectURL(blob); const a = document.createElement('a'); a.href = url; - a.download = `mermaid-history-${moment().format('YYYY-MM-DD-HHmmss')}.json`; + a.download = `mermaid-history-${dayjs().format('YYYY-MM-DD-HHmmss')}.json`; a.click(); URL.revokeObjectURL(url); logEvent('history', { @@ -95,7 +98,7 @@ const relativeTime = (time: number) => { const t = new Date(time); - return `${new Date(t).toLocaleString()} (${moment(t).fromNow()})`; + return `${new Date(t).toLocaleString()} (${dayjs(t).fromNow()})`; }; onMount(() => { diff --git a/yarn.lock b/yarn.lock index ec228274..86659598 100644 --- a/yarn.lock +++ b/yarn.lock @@ -1754,13 +1754,6 @@ d3-chord@3: resolved "https://registry.yarnpkg.com/d3-color/-/d3-color-3.0.1.tgz#03316e595955d1fcd39d9f3610ad41bb90194d0a" integrity sha512-6/SlHkDOBLyQSJ1j1Ghs82OIUXpKWlR0hCsw0XrLSQhuUPuCSmLQ1QPH98vpnQxMUQM2/gfAkUEWsupVpd9JGw== -d3-contour@3: - version "3.0.1" - resolved "https://registry.yarnpkg.com/d3-contour/-/d3-contour-3.0.1.tgz#2c64255d43059599cd0dba8fe4cc3d51ccdd9bbd" - integrity sha512-0Oc4D0KyhwhM7ZL0RMnfGycLN7hxHB8CMmwZ3+H26PWAG0ozNuYG5hXSDNgmP1SgJkQMrlG6cP20HoaSbvcJTQ== - dependencies: - d3-array "2 - 3" - d3-contour@4: version "4.0.0" resolved "https://registry.yarnpkg.com/d3-contour/-/d3-contour-4.0.0.tgz#5a1337c6da0d528479acdb5db54bc81a0ff2ec6b" @@ -1934,43 +1927,7 @@ d3-zoom@3: d3-selection "2 - 3" d3-transition "2 - 3" -d3@^7.0.0: - version "7.1.1" - resolved "https://registry.yarnpkg.com/d3/-/d3-7.1.1.tgz#77b9a0c9893b13643b8e52316ec65dca3a6a115e" - integrity sha512-8zkLMwSvUAnfN9pcJDfkuxU0Nvg4RLUD0A4BZN1KxJPtlnCGzMx3xM5cRl4m8fym/Vy8rlq52tl90UF3m91OnA== - dependencies: - d3-array "3" - d3-axis "3" - d3-brush "3" - d3-chord "3" - d3-color "3" - d3-contour "3" - d3-delaunay "6" - d3-dispatch "3" - d3-drag "3" - d3-dsv "3" - d3-ease "3" - d3-fetch "3" - d3-force "3" - d3-format "3" - d3-geo "3" - d3-hierarchy "3" - d3-interpolate "3" - d3-path "3" - d3-polygon "3" - d3-quadtree "3" - d3-random "3" - d3-scale "4" - d3-scale-chromatic "3" - d3-selection "3" - d3-shape "3" - d3-time "3" - d3-time-format "4" - d3-timer "3" - d3-transition "3" - d3-zoom "3" - -d3@^7.8.2: +d3@^7.4.0, d3@^7.8.2: version "7.8.2" resolved "https://registry.yarnpkg.com/d3/-/d3-7.8.2.tgz#2bdb3c178d095ae03b107a18837ae049838e372d" integrity sha512-WXty7qOGSHb7HR7CfOzwN1Gw04MUOzN8qh9ZUsvwycIMb4DYMpY9xczZ6jUorGtO6bR9BPMPaueIKwiDxu9uiQ== @@ -2045,6 +2002,11 @@ dayjs@^1.10.4: resolved "https://registry.npmjs.org/dayjs/-/dayjs-1.10.4.tgz" integrity sha512-RI/Hh4kqRc1UKLOAf/T5zdMMX5DQIlDxwUe3wSyMMnEbGunnpENCdbUgM+dW7kXidZqCttBrmw7BhN4TMddkCw== +dayjs@^1.11.7: + version "1.11.7" + resolved "https://registry.yarnpkg.com/dayjs/-/dayjs-1.11.7.tgz#4b296922642f70999544d1144a2c25730fce63e2" + integrity sha512-+Yw9U6YO5TQohxLcIkrXBeY73WP3ejHWVvx8XCk3gxvQDCTEmS48ZrSZCKciI7Bhl/uCMyxYtE9UqRILmFphkQ== + deasync@^0.1.0: version "0.1.21" resolved "https://registry.npmjs.org/deasync/-/deasync-0.1.21.tgz" @@ -3714,26 +3676,27 @@ merge2@^1.3.0, merge2@^1.4.1: resolved "https://registry.npmjs.org/merge2/-/merge2-1.4.1.tgz" integrity sha512-8q7VEgMJW4J8tcfVPy8g09NcQwZdbwFEqhe/WZkoIzjn/3TGDwtOCYtXGxA3O8tPzpczCCDgv+P2P5y00ZJOOg== -mermaid@9.4.0: - version "9.4.0" - resolved "https://registry.yarnpkg.com/mermaid/-/mermaid-9.4.0.tgz#ff9afcac9f565a358fa8fc39135dec2c842c3b8f" - integrity sha512-4PWbOND7CNRbjHrdG3WUUGBreKAFVnMhdlPjttuUkeHbCQmAHkwzSh5dGwbrKmXGRaR4uTvfFVYzUcg++h0DkA== +mermaid@9.4.2-rc.1: + version "9.4.2-rc.1" + resolved "https://registry.yarnpkg.com/mermaid/-/mermaid-9.4.2-rc.1.tgz#60b8da41d09d7b2029e75d5054d297ebaee092a1" + integrity sha512-TWgp8Hl+sm/rmNjuwMBm8s1fES81bK7PyXmr5lSFS7YiHaIm6Xx+qG3pGFj47YqyJ4XEwcA3tZo6xLV9OYYwVg== dependencies: "@braintree/sanitize-url" "^6.0.0" cytoscape "^3.23.0" cytoscape-cose-bilkent "^4.1.0" cytoscape-fcose "^2.1.0" - d3 "^7.0.0" + d3 "^7.4.0" dagre-d3-es "7.0.8" dompurify "2.4.3" elkjs "^0.8.2" khroma "^2.0.0" lodash-es "^4.17.21" - moment "^2.29.4" + moment-mini "^2.29.4" non-layered-tidy-tree-layout "^2.0.2" stylis "^4.1.2" ts-dedent "^2.2.0" uuid "^9.0.0" + web-worker "^1.2.0" micromatch@^4.0.4, micromatch@^4.0.5: version "4.0.5" @@ -3814,10 +3777,10 @@ mlly@^1.1.0: pkg-types "^1.0.1" ufo "^1.0.1" -moment@2.29.4, moment@^2.29.4: +moment-mini@^2.29.4: version "2.29.4" - resolved "https://registry.yarnpkg.com/moment/-/moment-2.29.4.tgz#3dbe052889fe7c1b2ed966fcb3a77328964ef108" - integrity sha512-5LC9SOxjSc2HF6vO2CyuTDNivEdoz2IvyJJGj6X8DJ0eFyfszE0QiEd+iXmBvUP3WHxSjFH/vIsA0EN00cgr8w== + resolved "https://registry.yarnpkg.com/moment-mini/-/moment-mini-2.29.4.tgz#cbbcdc58ce1b267506f28ea6668dbe060a32758f" + integrity sha512-uhXpYwHFeiTbY9KSgPPRoo1nt8OxNVdMVoTBYHfSEKeRkIkwGpO+gERmhuhBtzfaeOyTkykSrm2+noJBgqt3Hg== monaco-editor@0.34.1: version "0.34.1" @@ -5667,6 +5630,11 @@ w3c-xmlserializer@^4.0.0: dependencies: xml-name-validator "^4.0.0" +web-worker@^1.2.0: + version "1.2.0" + resolved "https://registry.yarnpkg.com/web-worker/-/web-worker-1.2.0.tgz#5d85a04a7fbc1e7db58f66595d7a3ac7c9c180da" + integrity sha512-PgF341avzqyx60neE9DD+XS26MMNMoUQRz9NOZwW32nPQrF6p77f1htcnjBSEV8BGMKZ16choqUG4hyI0Hx7mA== + webidl-conversions@^7.0.0: version "7.0.0" resolved "https://registry.yarnpkg.com/webidl-conversions/-/webidl-conversions-7.0.0.tgz#256b4e1882be7debbf01d05f0aa2039778ea080a"