diff --git a/.github/workflows/update-browserlist.yml b/.github/workflows/update-browserlist.yml index 450692d7..3e278a67 100644 --- a/.github/workflows/update-browserlist.yml +++ b/.github/workflows/update-browserlist.yml @@ -1,10 +1,9 @@ name: Update Browserslist on: - workflow_dispatch: push: - branches: - - develop - + branches-ignore: + - 'develop' + - 'master' jobs: build: runs-on: ubuntu-latest diff --git a/.vscode/settings.json b/.vscode/settings.json index 451f836e..70dc2f2f 100644 --- a/.vscode/settings.json +++ b/.vscode/settings.json @@ -4,5 +4,6 @@ "vitest.commandLine": "yarn test:unit", "vitest.enable": true, "testing.autoRun.mode": "rerun", - "svelte.enable-ts-plugin": true + "svelte.enable-ts-plugin": true, + "githubPullRequests.ignoredPullRequestBranches": ["develop"] } diff --git a/cypress/e2e/diagramUpdate.spec.ts b/cypress/e2e/diagramUpdate.spec.ts index b6b415f3..533a1adc 100644 --- a/cypress/e2e/diagramUpdate.spec.ts +++ b/cypress/e2e/diagramUpdate.spec.ts @@ -9,8 +9,10 @@ describe('Auto sync tests', () => { it('should dim diagram when code is edited', () => { cy.contains('Auto sync').click(); cy.get('#view').should('not.have.class', 'outOfSync'); + cy.get('#view').should('not.contain.text', 'Diagram out of sync.'); getEditor().type(' C --> Test'); cy.get('#view').should('have.class', 'outOfSync'); + cy.get('#view').should('contain.text', 'Diagram out of sync.'); cy.getLocalStorage('codeStore').snapshot(); }); @@ -19,7 +21,9 @@ describe('Auto sync tests', () => { cy.get('#view').should('not.have.class', 'outOfSync'); getEditor().type(' C --> Test'); cy.get('#view').should('have.class', 'outOfSync'); + cy.get('#view').should('contain.text', 'Diagram out of sync.'); getEditor().type(`${cmd}{enter}`); + cy.get('#view').should('not.contain.text', 'Diagram out of sync.'); cy.get('#view').should('not.have.class', 'outOfSync'); }); diff --git a/package.json b/package.json index fe82f2e3..f76fbbae 100644 --- a/package.json +++ b/package.json @@ -23,21 +23,21 @@ "devDependencies": { "@cypress/snapshot": "2.1.7", "@sveltejs/adapter-static": "1.0.0-next.43", - "@sveltejs/kit": "1.0.0-next.481", + "@sveltejs/kit": "1.0.0-next.484", "@testing-library/jest-dom": "5.16.5", "@testing-library/svelte": "3.2.1", - "@types/mermaid": "8.2.9", + "@types/mermaid": "9.1.0", "@types/pako": "2.0.0", "@types/uuid": "8.3.4", "@typescript-eslint/eslint-plugin": "5.37.0", "@typescript-eslint/parser": "5.37.0", - "@vitest/ui": "0.23.2", - "autoprefixer": "10.4.9", + "@vitest/ui": "0.23.4", + "autoprefixer": "10.4.11", "c8": "7.12.0", "chai": "4.3.6", "cssnano": "5.1.13", - "cy-verify-downloads": "0.1.8", - "cypress": "10.7.0", + "cy-verify-downloads": "0.1.10", + "cypress": "10.8.0", "cypress-localstorage-commands": "2.2.1", "eslint": "8.23.1", "eslint-config-prettier": "8.5.0", @@ -45,7 +45,7 @@ "eslint-plugin-es": "4.1.0", "eslint-plugin-postcss-modules": "2.0.0", "eslint-plugin-svelte3": "4.0.0", - "eslint-plugin-tailwindcss": "3.6.1", + "eslint-plugin-tailwindcss": "3.6.2", "eslint-plugin-vitest": "0.0.8", "esserializer": "1.3.2", "husky": "8.0.1", @@ -61,13 +61,13 @@ "tailwindcss": "3.1.8", "tslib": "2.4.0", "typescript": "4.8.3", - "vite": "3.1.0", - "vitest": "0.23.2" + "vite": "3.1.2", + "vitest": "0.23.4" }, "dependencies": { "analytics": "0.8.1", "analytics-plugin-plausible": "0.0.6", - "daisyui": "2.27.0", + "daisyui": "2.28.0", "js-base64": "3.7.2", "mermaid": "9.1.7", "moment": "2.29.4", diff --git a/src/lib/components/view.svelte b/src/lib/components/view.svelte index bb6d9f2d..8cf21549 100644 --- a/src/lib/components/view.svelte +++ b/src/lib/components/view.svelte @@ -5,6 +5,7 @@ import panzoom from 'svg-pan-zoom'; import type { State, ValidatedState } from '$lib/types'; import { logEvent } from '$lib/util/stats'; + import { cmdKey } from '$lib/util/util'; let code = ''; let config = ''; @@ -109,6 +110,12 @@
{$stateStore.error}
{/if} +{#if outOfSync} +
+ Diagram out of sync.
+ Press (Sync button) or {cmdKey} + Enter to sync. +
+{/if}
diff --git a/yarn.lock b/yarn.lock index e3e9174f..5286fa4c 100644 --- a/yarn.lock +++ b/yarn.lock @@ -294,12 +294,13 @@ resolved "https://registry.yarnpkg.com/@sveltejs/adapter-static/-/adapter-static-1.0.0-next.43.tgz#1505075d9d6ee2e0bac3dde250a7264235e73015" integrity sha512-PAgSp1GA8HkYE4p30/sBvJme2nefhcTBJafqQdMNoUksWZF2WzuL8OEO8wa9ndE6cghcGk3j6Ve0Oskg/wtTOw== -"@sveltejs/kit@1.0.0-next.481": - version "1.0.0-next.481" - resolved "https://registry.yarnpkg.com/@sveltejs/kit/-/kit-1.0.0-next.481.tgz#661204a206bcdc5e11a12efb8bd8c0f0d1b366fe" - integrity sha512-rgt6KKjUmx/S/a/duntAp+yds9F3fSm6uq8nvfWHuT1aVGSC5sOdNDrKqck7PCUc9/GPJ6WJu3et5R69hqevRw== +"@sveltejs/kit@1.0.0-next.484": + version "1.0.0-next.484" + resolved "https://registry.yarnpkg.com/@sveltejs/kit/-/kit-1.0.0-next.484.tgz#159d65be7d596ab9e49a59d52799e0983d6d6923" + integrity sha512-Y3l8OmlgmfJX3m081rMUZmmEQWHtiSsj3+YWYK/CQ4V99jqoztXPz/4cAxUt5mC45jVF5Ee9ykmh6GzkYjvfAQ== dependencies: "@sveltejs/vite-plugin-svelte" "^1.0.5" + "@types/cookie" "^0.5.1" cookie "^0.5.0" devalue "^3.1.2" kleur "^4.1.4" @@ -387,6 +388,11 @@ resolved "https://registry.yarnpkg.com/@types/chai/-/chai-4.3.3.tgz#3c90752792660c4b562ad73b3fbd68bf3bc7ae07" integrity sha512-hC7OMnszpxhZPduX+m+nrx+uFoLkWOMiR4oa/AZF3MuSETYTZmFfJAHqZEM8MVlvfG7BEUcgvtwoCTxBp6hm3g== +"@types/cookie@^0.5.1": + version "0.5.1" + resolved "https://registry.yarnpkg.com/@types/cookie/-/cookie-0.5.1.tgz#b29aa1f91a59f35e29ff8f7cb24faf1a3a750554" + integrity sha512-COUnqfB2+ckwXXSFInsFdOAWQzCCx+a5hq2ruyj+Vjund94RJQd4LG2u9hnvJrTgunKAaax7ancBYlDrNYxA0g== + "@types/istanbul-lib-coverage@^2.0.1": version "2.0.4" resolved "https://registry.yarnpkg.com/@types/istanbul-lib-coverage/-/istanbul-lib-coverage-2.0.4.tgz#8467d4b3c087805d63580480890791277ce35c44" @@ -405,10 +411,10 @@ resolved "https://registry.yarnpkg.com/@types/json-schema/-/json-schema-7.0.11.tgz#d421b6c527a3037f7c84433fd2c4229e016863d3" integrity sha512-wOuvG1SN4Us4rez+tylwwwCV1psiNVOkJeM3AUWUNWg/jDQY2+HE/444y5gc+jBmRqASOm2Oeh5c1axHobwRKQ== -"@types/mermaid@8.2.9": - version "8.2.9" - resolved "https://registry.yarnpkg.com/@types/mermaid/-/mermaid-8.2.9.tgz#1844505dcffcd47703e94628a6200583d35c2c76" - integrity sha512-f1i8fNoVFVJXedk+R7GcEk4KoOWzWAU3CzFqlVw1qWKktfsataBERezCz1pOdKy8Ec02ZdPQXGM7NU2lPHABYQ== +"@types/mermaid@9.1.0": + version "9.1.0" + resolved "https://registry.yarnpkg.com/@types/mermaid/-/mermaid-9.1.0.tgz#e9ba511d8a6793749d6be84f86325f0f58553154" + integrity sha512-rc8QqhveKAY7PouzY/p8ljS+eBSNCv7o79L97RSub/Ic2SQ34ph1Ng3s8wFLWVjvaEt6RLOWtSCsgYWd95NY8A== "@types/node@*": version "15.0.2" @@ -593,10 +599,10 @@ "@typescript-eslint/types" "5.37.0" eslint-visitor-keys "^3.3.0" -"@vitest/ui@0.23.2": - version "0.23.2" - resolved "https://registry.yarnpkg.com/@vitest/ui/-/ui-0.23.2.tgz#0d4a3918edaca6d38f20c49467a03a51d4b26eff" - integrity sha512-dO1UxSwEm11OgumUVbEnF7wKwDPoBGjkrvATvvhkFaDw2iiQm8WewF0hmnUVHj6BSNoHUIJ3uXEzfF9T9W+2yg== +"@vitest/ui@0.23.4": + version "0.23.4" + resolved "https://registry.yarnpkg.com/@vitest/ui/-/ui-0.23.4.tgz#87b77ad9f92b18ebc50a7380b703753069dc17fa" + integrity sha512-lNZVTTrkHThGAwNQ1ah1qCNnm70r7OLB5LCUdSqboStve/1eKTrtt27QfDSSUTG8AVJQzU0eaN/j8UocH+CqfA== dependencies: sirv "^2.0.2" @@ -850,13 +856,13 @@ at-least-node@^1.0.0: resolved "https://registry.npmjs.org/at-least-node/-/at-least-node-1.0.0.tgz" integrity sha512-+q/t7Ekv1EDY2l6Gda6LLiX14rU9TV20Wa3ofeQmwPFZbOMo9DXrLbOjFaaclkXKWidIaopwAObQDqwWtGUjqg== -autoprefixer@10.4.9: - version "10.4.9" - resolved "https://registry.yarnpkg.com/autoprefixer/-/autoprefixer-10.4.9.tgz#40f932f7d0535264823882031f9254ea72c693e5" - integrity sha512-Uu67eduPEmOeA0vyJby5ghu1AAELCCNSsLAjK+lz6kYzNM5sqnBO36MqfsjhPjQF/BaJM5U/UuFYyl7PavY/wQ== +autoprefixer@10.4.11: + version "10.4.11" + resolved "https://registry.yarnpkg.com/autoprefixer/-/autoprefixer-10.4.11.tgz#835136aff1d9cd43640151e0d2dba00f8eac7c1c" + integrity sha512-5lHp6DgRodxlBLSkzHOTcufWFflH1ewfy2hvFQyjrblBFlP/0Yh4O/Wrg4ow8WRlN3AAUFFLAQwX8hTptzqVHg== dependencies: browserslist "^4.21.3" - caniuse-lite "^1.0.30001394" + caniuse-lite "^1.0.30001399" fraction.js "^4.2.0" normalize-range "^0.1.2" picocolors "^1.0.0" @@ -1007,15 +1013,10 @@ caniuse-api@^3.0.0: lodash.memoize "^4.1.2" lodash.uniq "^4.5.0" -caniuse-lite@^1.0.0, caniuse-lite@^1.0.30001370: - version "1.0.30001393" - resolved "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30001393.tgz" - integrity sha512-N/od11RX+Gsk+1qY/jbPa0R6zJupEa0lxeBG598EbrtblxVCTJsQwbRBm6+V+rxpc5lHKdsXb9RY83cZIPLseA== - -caniuse-lite@^1.0.30001394: - version "1.0.30001399" - resolved "https://registry.yarnpkg.com/caniuse-lite/-/caniuse-lite-1.0.30001399.tgz#1bf994ca375d7f33f8d01ce03b7d5139e8587873" - integrity sha512-4vQ90tMKS+FkvuVWS5/QY1+d805ODxZiKFzsU8o/RsVJz49ZSRR8EjykLJbqhzdPgadbX6wB538wOzle3JniRA== +caniuse-lite@^1.0.0, caniuse-lite@^1.0.30001370, caniuse-lite@^1.0.30001399: + version "1.0.30001407" + resolved "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30001407.tgz" + integrity sha512-4ydV+t4P7X3zH83fQWNDX/mQEzYomossfpViCOx9zHBSMV+rIe3LFqglHHtVyvNl1FhTNxPxs3jei82iqOW04w== caseless@~0.12.0: version "0.12.0" @@ -1393,20 +1394,20 @@ cssstyle@^2.3.0: dependencies: cssom "~0.3.6" -cy-verify-downloads@0.1.8: - version "0.1.8" - resolved "https://registry.yarnpkg.com/cy-verify-downloads/-/cy-verify-downloads-0.1.8.tgz#e16e86f1a6cc17376c39b4c5aa53e5ffa630c9c0" - integrity sha512-hfcgXd/YAtoN6TRmuy26DetcxBkApMJPBJI/T61KrV4PciOaWZtFhxPaiF7Kn2aE8XzXt1Os3HULM2Yp8A1mfw== +cy-verify-downloads@0.1.10: + version "0.1.10" + resolved "https://registry.yarnpkg.com/cy-verify-downloads/-/cy-verify-downloads-0.1.10.tgz#5f5f6bf36756553cde03b9cd2e94435cb272714f" + integrity sha512-8jNi6oQhUFAshzUAFwtM6zU56oKSVciLfoUT+NttGkbvZyixZe7a17BL2aORqORYM1uTjG9yfvpIGDzl2BeyOA== cypress-localstorage-commands@2.2.1: version "2.2.1" resolved "https://registry.yarnpkg.com/cypress-localstorage-commands/-/cypress-localstorage-commands-2.2.1.tgz#9895d75a3e8059e78d61231c5794dc46e0fc5fdd" integrity sha512-m7IwoM+BMOJj7FzzN4It268c/i/Ur72CQX8JwLICkQ6ZgF1XNJOIKlQ7Rszg45ATLTjVTL1QElKCZECoU8cthQ== -cypress@10.7.0: - version "10.7.0" - resolved "https://registry.yarnpkg.com/cypress/-/cypress-10.7.0.tgz#2d37f8b9751c6de33ee48639cb7e67a2ce593231" - integrity sha512-gTFvjrUoBnqPPOu9Vl5SBHuFlzx/Wxg/ZXIz2H4lzoOLFelKeF7mbwYUOzgzgF0oieU2WhJAestQdkgwJMMTvQ== +cypress@10.8.0: + version "10.8.0" + resolved "https://registry.yarnpkg.com/cypress/-/cypress-10.8.0.tgz#12a681f2642b6f13d636bab65d5b71abdb1497a5" + integrity sha512-QVse0dnLm018hgti2enKMVZR9qbIO488YGX06nH5j3Dg1isL38DwrBtyrax02CANU6y8F4EJUuyW6HJKw1jsFA== dependencies: "@cypress/request" "^2.88.10" "@cypress/xvfb" "^1.2.4" @@ -1427,7 +1428,7 @@ cypress@10.7.0: dayjs "^1.10.4" debug "^4.3.2" enquirer "^2.3.6" - eventemitter2 "^6.4.3" + eventemitter2 "6.4.7" execa "4.1.0" executable "^4.1.1" extract-zip "2.0.1" @@ -1961,10 +1962,10 @@ dagre@^0.8.5: graphlib "^2.1.8" lodash "^4.17.15" -daisyui@2.27.0: - version "2.27.0" - resolved "https://registry.yarnpkg.com/daisyui/-/daisyui-2.27.0.tgz#145e75e17529f81a113c84e86cc5312e01799f88" - integrity sha512-AhFGhTore1Kdnae+5RGc2PGESSXOjAQDHJfvryP+KY41gxMcNErtuaGZG+nOmvOzNKgxViSDSaOn/VZq6H8kxA== +daisyui@2.28.0: + version "2.28.0" + resolved "https://registry.yarnpkg.com/daisyui/-/daisyui-2.28.0.tgz#337c5a9b370f360a21746767d9be98957ece4101" + integrity sha512-UmqFNPu8U8IE9sKzLvbvk80oogZE9jTYj8SskiSbnrwm8YPK8B+cKYLHHR8Usdh1j9hhUGVc8Sjt15p328gV9g== dependencies: color "^4.2" css-selector-tokenizer "^0.8.0" @@ -2575,10 +2576,10 @@ eslint-plugin-svelte3@4.0.0: resolved "https://registry.yarnpkg.com/eslint-plugin-svelte3/-/eslint-plugin-svelte3-4.0.0.tgz#3d4f3dcaec5761dac8bc697f81de3613b485b4e3" integrity sha512-OIx9lgaNzD02+MDFNLw0GEUbuovNcglg+wnd/UY0fbZmlQSz7GlQiQ1f+yX0XvC07XPcDOnFcichqI3xCwp71g== -eslint-plugin-tailwindcss@3.6.1: - version "3.6.1" - resolved "https://registry.yarnpkg.com/eslint-plugin-tailwindcss/-/eslint-plugin-tailwindcss-3.6.1.tgz#c5a73a8dca13fcb69ad810f060f7f7ce672e3041" - integrity sha512-a44pb62X6wS3j5hLqedsroYrSyOuSZ7PaTl08gJVoChzHlgyZRVpDMCw17Kj6q2zQuDqqRbNZuo8VyNWlGlVLA== +eslint-plugin-tailwindcss@3.6.2: + version "3.6.2" + resolved "https://registry.yarnpkg.com/eslint-plugin-tailwindcss/-/eslint-plugin-tailwindcss-3.6.2.tgz#56ce5722b2972ed45cb4c0bc7062d37b0cfd4995" + integrity sha512-C9Ka3w6W9F5l/3ZDLnkdbqmeujc1vE+p5drjP1Z1UyxgoE1Nh4/f8oQ4XC45PrZsS0Nyv0YKXNH8/dn/FJZKsQ== dependencies: fast-glob "^3.2.5" postcss "^8.4.4" @@ -2734,10 +2735,10 @@ esutils@^2.0.2: resolved "https://registry.npmjs.org/esutils/-/esutils-2.0.3.tgz" integrity sha512-kVscqXk4OCp68SZ0dkgEKVi6/8ij300KBWTJq32P/dYeWTSwK41WyTxalN1eRmA5Z9UU/LX9D7FWSmV9SAYx6g== -eventemitter2@^6.4.3: - version "6.4.4" - resolved "https://registry.npmjs.org/eventemitter2/-/eventemitter2-6.4.4.tgz" - integrity sha512-HLU3NDY6wARrLCEwyGKRBvuWYyvW6mHYv72SJJAH3iJN3a6eVUvkjFkcxah1bcTgGVBBrFdIopBJPhCQFMLyXw== +eventemitter2@6.4.7: + version "6.4.7" + resolved "https://registry.yarnpkg.com/eventemitter2/-/eventemitter2-6.4.7.tgz#a7f6c4d7abf28a14c1ef3442f21cb306a054271d" + integrity sha512-tYUSVOGeQPKt/eC1ABfhHy5Xd96N3oIijJvN3O9+TsC28T5V9yX9oEfEK5faP0EFSNVOG97qtAS68GBrQB2hDg== execa@4.1.0: version "4.1.0" @@ -4978,12 +4979,12 @@ strip-json-comments@^3.1.0, strip-json-comments@^3.1.1: resolved "https://registry.npmjs.org/strip-json-comments/-/strip-json-comments-3.1.1.tgz" integrity sha512-6fPc+R4ihwqP6N/aIv2f1gMH8lOVtWQHoqC4yK6oSDVVocumAsfCqjkXnqiYMhmMwS/mEHLp7Vehlt3ql6lEig== -strip-literal@^0.4.0: - version "0.4.0" - resolved "https://registry.yarnpkg.com/strip-literal/-/strip-literal-0.4.0.tgz#0f90e86daecc1eb23c61c62d25238ffad4524634" - integrity sha512-ql/sBDoJOybTKSIOWrrh8kgUEMjXMwRAkZTD0EwiwxQH/6tTPkZvMIEjp0CRlpi6V5FMiJyvxeRkEi1KrGISoA== +strip-literal@^0.4.1: + version "0.4.2" + resolved "https://registry.yarnpkg.com/strip-literal/-/strip-literal-0.4.2.tgz#4f9fa6c38bb157b924e9ace7155ebf8a2342cbcf" + integrity sha512-pv48ybn4iE1O9RLgCAN0iU4Xv7RlBTiit6DKmMiErbs9x1wH6vXBs45tWc0H5wUIF6TLTrKweqkmYF/iraQKNw== dependencies: - acorn "^8.7.1" + acorn "^8.8.0" stylehacks@^5.1.0: version "5.1.0" @@ -5336,10 +5337,10 @@ verror@1.10.0: core-util-is "1.0.2" extsprintf "^1.2.0" -vite@3.1.0: - version "3.1.0" - resolved "https://registry.yarnpkg.com/vite/-/vite-3.1.0.tgz#3138b279072941d57e76bcf7f66f272fc6a17fe2" - integrity sha512-YBg3dUicDpDWFCGttmvMbVyS9ydjntwEjwXRj2KBFwSB8SxmGcudo1yb8FW5+M/G86aS8x828ujnzUVdsLjs9g== +vite@3.1.2: + version "3.1.2" + resolved "https://registry.yarnpkg.com/vite/-/vite-3.1.2.tgz#6b080f928490b1a46465ed3cbb4815f31f1a5376" + integrity sha512-wTDKPkiVbeT+drTPdkuvjVIC/2vKKUc1w3qNOuwgpyvPCZF6fvdxB5v5WEcCsqaYea0zrwA4+XialJKCHM3oVQ== dependencies: esbuild "^0.15.6" postcss "^8.4.16" @@ -5360,10 +5361,10 @@ vite@3.1.0: optionalDependencies: fsevents "~2.3.2" -vitest@0.23.2: - version "0.23.2" - resolved "https://registry.yarnpkg.com/vitest/-/vitest-0.23.2.tgz#f978de0f2ada1b7c5ff8dc479ce75b976957ff19" - integrity sha512-kTBKp3ROPDkYC+x2zWt4znkDtnT08W1FQ6ngRFuqxpBGNuNVS+eWZKfffr8y2JGvEzZ9EzMAOcNaiqMj/FZqMw== +vitest@0.23.4: + version "0.23.4" + resolved "https://registry.yarnpkg.com/vitest/-/vitest-0.23.4.tgz#7ebea620f203f4df09a27ca17819dc9da61f88ef" + integrity sha512-iukBNWqQAv8EKDBUNntspLp9SfpaVFbmzmM0sNcnTxASQZMzRw3PsM6DMlsHiI+I6GeO5/sYDg3ecpC+SNFLrQ== dependencies: "@types/chai" "^4.3.3" "@types/chai-subset" "^1.3.3" @@ -5371,7 +5372,7 @@ vitest@0.23.2: chai "^4.3.6" debug "^4.3.4" local-pkg "^0.4.2" - strip-literal "^0.4.0" + strip-literal "^0.4.1" tinybench "^2.1.5" tinypool "^0.3.0" tinyspy "^1.0.2"