Compare commits

...
Author SHA1 Message Date
Sidharth Vinod 1f8d18396d 8.14.0-rc 2022-01-22 18:20:48 +05:30
Sidharth Vinod f2113162f4 "mermaid": "8.13.10" 2022-01-22 16:31:42 +05:30
Sidharth Vinod 44ebcd3725 Merge pull request #609 from mermaid-js/dependabot/npm_and_yarn/develop/typescript-4.5.5
chore(deps-dev): bump typescript from 4.5.4 to 4.5.5
2022-01-21 13:49:57 +05:30
Sidharth Vinod 47902536ab Merge pull request #608 from mermaid-js/dependabot/npm_and_yarn/develop/lint-staged-12.2.2
chore(deps-dev): bump lint-staged from 12.2.1 to 12.2.2
2022-01-21 13:49:46 +05:30
Sidharth Vinod 4cdcb51dcb Merge pull request #611 from mermaid-js/dependabot/npm_and_yarn/develop/monaco-mermaid-1.0.2
chore(deps): bump monaco-mermaid from 1.0.1 to 1.0.2
2022-01-21 13:49:40 +05:30
Sidharth Vinod e2461f2c69 Merge pull request #613 from mermaid-js/dependabot/github_actions/develop/EndBug/add-and-commit-8
chore(deps): bump EndBug/add-and-commit from 7 to 8
2022-01-21 13:49:34 +05:30
Sidharth Vinod 8cbd5a2b36 Merge pull request #612 from mermaid-js/dependabot/docker/develop/node-17.4.0
chore(deps): bump node from 17.3.1 to 17.4.0
2022-01-21 13:49:27 +05:30
Sidharth Vinod 4c7cc04ec3 fix: hook 2022-01-21 13:48:48 +05:30
dependabot[bot] 571b345265 chore(deps-dev): bump typescript from 4.5.4 to 4.5.5
Bumps [typescript](https://github.com/Microsoft/TypeScript) from 4.5.4 to 4.5.5.
- [Release notes](https://github.com/Microsoft/TypeScript/releases)
- [Commits](https://github.com/Microsoft/TypeScript/compare/v4.5.4...v4.5.5)

---
updated-dependencies:
- dependency-name: typescript
  dependency-type: direct:development
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
2022-01-21 08:15:07 +00:00
Sidharth Vinod d603927242 Merge pull request #604 from mermaid-js/sidv/compress
Compressed URL
2022-01-21 13:42:11 +05:30
dependabot[bot] 6689df1cb9 chore(deps): bump node from 17.3.1 to 17.4.0
Bumps node from 17.3.1 to 17.4.0.

---
updated-dependencies:
- dependency-name: node
  dependency-type: direct:production
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
2022-01-21 07:09:15 +00:00
dependabot[bot] 84261b40bc chore(deps): bump EndBug/add-and-commit from 7 to 8
Bumps [EndBug/add-and-commit](https://github.com/EndBug/add-and-commit) from 7 to 8.
- [Release notes](https://github.com/EndBug/add-and-commit/releases)
- [Changelog](https://github.com/EndBug/add-and-commit/blob/main/CHANGELOG.md)
- [Commits](https://github.com/EndBug/add-and-commit/compare/v7...v8)

---
updated-dependencies:
- dependency-name: EndBug/add-and-commit
  dependency-type: direct:production
  update-type: version-update:semver-major
...

Signed-off-by: dependabot[bot] <support@github.com>
2022-01-21 07:09:14 +00:00
dependabot[bot] db1cba2a8d chore(deps): bump monaco-mermaid from 1.0.1 to 1.0.2
Bumps monaco-mermaid from 1.0.1 to 1.0.2.

---
updated-dependencies:
- dependency-name: monaco-mermaid
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
2022-01-21 07:03:37 +00:00
dependabot[bot] b5f90ba2b1 chore(deps-dev): bump lint-staged from 12.2.1 to 12.2.2
Bumps [lint-staged](https://github.com/okonet/lint-staged) from 12.2.1 to 12.2.2.
- [Release notes](https://github.com/okonet/lint-staged/releases)
- [Commits](https://github.com/okonet/lint-staged/compare/v12.2.1...v12.2.2)

---
updated-dependencies:
- dependency-name: lint-staged
  dependency-type: direct:development
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
2022-01-21 07:03:03 +00:00
Sidharth Vinod f107838241 Merge pull request #586 from mermaid-js/revert-585-revert-478-develop
Revert "Revert "Use `monaco-mermaid`""
2022-01-21 10:57:04 +05:30
Sidharth Vinod 9fb7c4a176 fix: Types 2022-01-21 00:41:24 +05:30
Sidharth Vinod aee4460458 Fix types 2022-01-20 18:46:00 +05:30
Sidharth Vinod b52f2c4220 Serdes 2022-01-20 18:08:53 +05:30
Sidharth Vinod ad108a3dab Merge branch 'master' into sidv/compress
* master:
2022-01-20 14:24:03 +05:30
Sidharth Vinod d9a0209fac Merge branch 'develop' into sidv/compress
* develop:
  chore(deps): bump daisyui from 1.21.0 to 1.24.3
  chore(deps-dev): bump lint-staged from 12.2.0 to 12.2.1
  chore(deps-dev): bump cssnano from 5.0.14 to 5.0.15 (#600)
  chore(deps-dev): bump autoprefixer from 10.4.0 to 10.4.2
  chore(deps): bump pako from 1.0.10 to 2.0.4
  chore(deps): bump mermaid from 8.13.8 to 8.13.9
  chore(deps-dev): bump cypress from 9.2.0 to 9.3.1
  chore(deps-dev): bump mocha from 9.1.3 to 9.1.4
  chore(deps-dev): bump eslint-plugin-tailwindcss from 1.17.2 to 3.3.0
2022-01-20 14:23:53 +05:30
Sidharth Vinod 4628a670c8 Compressed URL 2022-01-20 14:19:36 +05:30
Sidharth Vinod e16a57de0e Merge pull request #571 from mermaid-js/develop
Develop
2022-01-19 18:08:40 +05:30
Sidharth Vinod 18a83a807a Merge pull request #560 from mermaid-js/develop
Develop
2021-12-29 23:01:03 +05:30
15 changed files with 160 additions and 88 deletions
+1 -1
View File
@@ -9,7 +9,7 @@ jobs:
- uses: actions/checkout@v2
- run: npx browserslist@latest --update-db
- name: Commit changes
uses: EndBug/add-and-commit@v7
uses: EndBug/add-and-commit@v8
with:
author_name: ${{ github.actor }}
author_email: ${{ github.actor }}@users.noreply.github.com
+1 -1
View File
@@ -13,7 +13,7 @@ jobs:
- uses: actions/checkout@v2
- run: ./bin/update-monaco
- name: Commit changes
uses: EndBug/add-and-commit@v7
uses: EndBug/add-and-commit@v8
with:
author_name: ${{ github.actor }}
author_email: ${{ github.actor }}@users.noreply.github.com
+4
View File
@@ -0,0 +1,4 @@
{
"editor.formatOnSave": true,
"cSpell.words": ["pako", "Serde", "serdes"]
}
+1 -1
View File
@@ -6,7 +6,7 @@
# Stop : press ctrl + c
# or
# docker stop mermaid-live-editor
FROM node:17.3.1 as mermaid-live-editor-builder
FROM node:17.4.0 as mermaid-live-editor-builder
COPY --chown=node:node . /home
WORKDIR /home
RUN yarn install
+27
View File
@@ -93,4 +93,31 @@ describe('Site Loads', () => {
cy.visit('/#/edit/eyJjb2RlIjoiZ3JhcGggVERcbiAg');
cy.contains('Please Click here to Raise an issue in github.');
});
it('should load uncompressed URL', () => {
cy.visit(
'/edit/#eyJjb2RlIjoiZ3JhcGggVERcbiAgICBBW05ldyBZZWFyXSAtLT58R2V0IG1vbmV5fCBCKEdvIHNob3BwaW5nKVxuICAgIEIgLS0-IEN7TGV0IG1lIHRoaW5rfVxuICAgIEMgLS0-fE9uZXwgRFtMYXB0b3BdXG4gICAgQyAtLT58VHdvfCBFW2lQaG9uZV1cbiAgICBDIC0tPnxUaHJlZXwgRltmYTpmYS1jYXIgQ2FyXSIsIm1lcm1haWQiOiJ7XG4gIFwidGhlbWVcIjogXCJkZWZhdWx0XCJcbn0iLCJ1cGRhdGVFZGl0b3IiOmZhbHNlLCJhdXRvU3luYyI6dHJ1ZSwidXBkYXRlRGlhZ3JhbSI6ZmFsc2V9'
);
cy.contains('New Year');
cy.visit(
'/edit#eyJjb2RlIjoiY2xhc3NEaWFncmFtXG4gICAgQW5pbWFsIDx8LS0gRHVja1xuICAgIEFuaW1hbCA8fC0tIEZpc2hcbiAgICBBbmltYWwgPHwtLSBaZWJyYVxuICAgIEFuaW1hbCA6ICtpbnQgYWdlXG4gICAgQW5pbWFsIDogK1N0cmluZyBnZW5kZXJcbiAgICBBbmltYWw6ICtpc01hbW1hbCgpXG4gICAgQW5pbWFsOiArbWF0ZSgpXG4gICAgY2xhc3MgRHVja3tcbiAgICAgICtTdHJpbmcgYmVha0NvbG9yXG4gICAgICArc3dpbSgpXG4gICAgICArcXVhY2soKVxuICAgIH1cbiAgICBjbGFzcyBGaXNoe1xuICAgICAgLWludCBzaXplSW5GZWV0XG4gICAgICAtY2FuRWF0KClcbiAgICB9XG4gICAgY2xhc3MgWmVicmF7XG4gICAgICArYm9vbCBpc193aWxkXG4gICAgICArcnVuKClcbiAgICB9XG4gICAgICAgICAgICAiLCJtZXJtYWlkIjoie1xuICBcInRoZW1lXCI6IFwiZGFya1wiXG59IiwidXBkYXRlRWRpdG9yIjpmYWxzZSwiYXV0b1N5bmMiOnRydWUsInVwZGF0ZURpYWdyYW0iOmZhbHNlfQ'
);
cy.contains('Animal');
cy.visit(
'/edit/#base64:eyJjb2RlIjoiZ3JhcGggVERcbiAgICBBW05ldyBZZWFyXSAtLT58R2V0IG1vbmV5fCBCKEdvIHNob3BwaW5nKVxuICAgIEIgLS0-IEN7TGV0IG1lIHRoaW5rfVxuICAgIEMgLS0-fE9uZXwgRFtMYXB0b3BdXG4gICAgQyAtLT58VHdvfCBFW2lQaG9uZV1cbiAgICBDIC0tPnxUaHJlZXwgRltmYTpmYS1jYXIgQ2FyXSIsIm1lcm1haWQiOiJ7XG4gIFwidGhlbWVcIjogXCJkZWZhdWx0XCJcbn0iLCJ1cGRhdGVFZGl0b3IiOmZhbHNlLCJhdXRvU3luYyI6dHJ1ZSwidXBkYXRlRGlhZ3JhbSI6ZmFsc2V9'
);
cy.contains('New Year');
});
it('should load compressed URL', () => {
cy.visit(
'/edit#pako:eNpVkM2KwkAQhF-l6dMK5gVyEDRxvYi7sF6WjIcm0zqDzg_jBJEk725Hd2G3Tw31VVFUj23QjCWeEkUD-1p5kFs2O77BN1M6QFEshg1ncMHzfYDV2ybA1YQYrT_NXvhqgqDqtxPGkI315_ElVU__h-cB6mZLMYd4-Kvsb2GAdWM_jcT_V0xicb03RyqPVLSUoJI-OEfHyZHV0rqfDAqzYccKS3k1pbNC5Ufhuqgp81rbHBJKxuXKc6Quh6-7b7HMqeNfqLYkC7gfanwAlW1ZvQ'
);
cy.contains('New Year');
cy.visit(
'/edit#pako:eNptkU1PwzAMhv9K5BOI9Q9EXBDbJA477YYqITcxndV8QD40weh_Jy1rGR0-OY_tV2_sEyivCSQogzGuGduAtnaixINji0bcf1WVWGfVXdMtx8M1faYm4B8sxR27JLClJd6nwK4VLTlN4bI4jMQd2pLe3C4KFhNNcLQ92jv9ADGLNoTdozc-zIV4ZDsNlud7RtVN7_5Sb_jYrFcN3iN_0pPbEqUZK3QbTP_Ojyv4NdR4bwTHlyMbPcOQ3WJ2CliBpWCRdbnLqFJDOpClGmRJNYauhtr1pS-_6bKMjebkA8hXNJFWgDn5_YdTIFPINDWdb3vu6r8BaWOZRQ'
);
cy.reload();
cy.contains('Animal');
});
});
+1 -1
View File
@@ -16,7 +16,7 @@ module.exports = {
"1": "{\"code\":\"graph TD\\n A[Party] -->|Get money| B(Go shopping!!)\\n \",\"mermaid\":\"{\\n \\\"theme\\\": \\\"forest\\\",\\n \\\"test\\\": \\\"hello world\\\"\\n}\",\"updateEditor\":false,\"autoSync\":true,\"updateDiagram\":true,\"loader\":{\"type\":\"files\",\"config\":{\"codeURL\":\"https://gist.githubusercontent.com/sidharthv96/6268a23e673a533dcb198f241fd7012a/raw/4eb03887e6a41397e80bdcdbf94017c498f8f1e2/code.mmd\",\"configURL\":\"https://gist.githubusercontent.com/sidharthv96/6268a23e673a533dcb198f241fd7012a/raw/4eb03887e6a41397e80bdcdbf94017c498f8f1e2/config.json\"}}}"
}
},
"__version": "9.1.1",
"__version": "9.2.0",
"Auto sync tests": {
"should dim diagram when code is edited": {
"1": "{\"code\":\"graph TD\\n A[Christmas] -->|Get money| B(Go shopping)\\n B --> C{Let me think}\\n C -->|One| D[Laptop]\\n C -->|Two| E[iPhone]\\n C -->|Three| F[fa:fa-car Car]\\n C --> Test\",\"mermaid\":\"{\\n \\\"theme\\\": \\\"default\\\"\\n}\",\"updateEditor\":false,\"autoSync\":false,\"updateDiagram\":false}"
+5 -4
View File
@@ -16,8 +16,9 @@
"devDependencies": {
"@cypress/snapshot": "^2.1.7",
"@sveltejs/adapter-static": "1.0.0-next.26",
"@sveltejs/kit": "1.0.0-next.232",
"@sveltejs/kit": "1.0.0-next.236",
"@types/mermaid": "^8.2.7",
"@types/pako": "^1.0.3",
"@typescript-eslint/eslint-plugin": "^4.33.0",
"@typescript-eslint/parser": "^4.33.0",
"autoprefixer": "^10.4.2",
@@ -34,7 +35,7 @@
"eslint-plugin-svelte3": "^3.4.0",
"eslint-plugin-tailwindcss": "^3.3.0",
"husky": "^7.0.4",
"lint-staged": "^12.2.1",
"lint-staged": "^12.2.2",
"mocha": "^9.1.4",
"node-html-parser": "^5.2.0",
"postcss": "^8.4.5",
@@ -45,7 +46,7 @@
"svelte-preprocess": "^4.10.2",
"tailwindcss": "^3.0.13",
"tslib": "^2.3.1",
"typescript": "^4.5.4"
"typescript": "^4.5.5"
},
"type": "module",
"dependencies": {
@@ -54,7 +55,7 @@
"analytics": "^0.7.21",
"daisyui": "1.24.3",
"js-base64": "^3.7.2",
"mermaid": "8.13.9",
"mermaid": "8.14.0-rc1",
"moment": "^2.29.1",
"monaco-editor": "^0.31.1",
"monaco-mermaid": "^1.0.2",
+2 -2
View File
@@ -1,7 +1,7 @@
import type { Handle } from '@sveltejs/kit/types/hooks';
export const handle: Handle = async ({ request, resolve }) => {
const response = await resolve(request, {
export const handle: Handle = async ({ event, resolve }) => {
const response = await resolve(event, {
ssr: false
});
+14 -42
View File
@@ -2,11 +2,11 @@
import { browser } from '$app/env';
import Card from '$lib/components/card/card.svelte';
import { rendererUrl, krokiRendererUrl } from '$lib/util/env';
import { base64State, codeStore } from '$lib/util/state';
import { toBase64, btoa as jsbtoa } from 'js-base64';
import { krokiRendererUrl, rendererUrl } from '$lib/util/env';
import { pakoSerde } from '$lib/util/serde';
import { serializedState, codeStore } from '$lib/util/state';
import { toBase64 } from 'js-base64';
import moment from 'moment';
import pako from 'pako';
type Exporter = (context: CanvasRenderingContext2D, image: HTMLImageElement) => () => void;
@@ -18,7 +18,7 @@
}
const svgString = svg.outerHTML
.replaceAll('<br>', '<br/>')
.replaceAll(/<img([^>]*)>/g, (m, g) => `<img ${g} />`);
.replaceAll(/<img([^>]*)>/g, (m, g: string) => `<img ${g} />`);
return toBase64(svgString);
};
@@ -79,7 +79,7 @@
canvas.toBlob((blob) => {
try {
// @ts-ignore: https://github.com/microsoft/TypeScript-DOM-lib-generator/pull/1004/files
navigator.clipboard.write([
void navigator.clipboard.write([
/* eslint-disable no-undef */
// @ts-ignore: https://github.com/microsoft/TypeScript/issues/43821
new ClipboardItem({
@@ -109,7 +109,7 @@
};
const onCopyMarkdown = () => {
document.getElementById('markdown').select();
(document.getElementById('markdown') as HTMLInputElement).select();
document.execCommand('Copy');
};
@@ -128,33 +128,9 @@
window.location.href = `${window.location.pathname}?gist=${gistURL}`;
};
const textEncode = (str) => {
if (window.TextEncoder) {
return new TextEncoder('utf-8').encode(str);
}
let utf8 = unescape(encodeURIComponent(str));
let result = new Uint8Array(utf8.length);
for (let i = 0; i < utf8.length; i++) {
result[i] = utf8.charCodeAt(i);
}
return result;
};
const onKrokiClick = () => {
const krokiCode = getKrokiCode($codeStore.code);
const krokiUrl = `${krokiRendererUrl}/mermaid/svg/${krokiCode}`;
return window.open(krokiUrl, '_blank');
};
const getKrokiCode = (source) => {
const data = textEncode(source);
const compressed = pako.deflate(data, { level: 9, to: 'string' });
let result = jsbtoa(compressed).replace(/\+/g, '-').replace(/\//g, '_');
return result;
};
let iUrl: string;
let svgUrl: string;
let krokiUrl: string;
let mdCode: string;
let imagemodeselected = 'auto';
let userimagesize = 1080;
@@ -163,14 +139,10 @@
if (browser && ['mermaid.live', 'netlify'].some((path) => window.location.host.includes(path))) {
isNetlify = true;
}
base64State.subscribe((encodedState: string) => {
const stateCopy = JSON.parse(JSON.stringify($codeStore));
if (typeof stateCopy.mermaid === 'string') {
stateCopy.mermaid = JSON.parse(stateCopy.mermaid);
}
const b64Code = toBase64(JSON.stringify(stateCopy), true);
iUrl = `${rendererUrl}/img/${b64Code}`;
svgUrl = `${rendererUrl}/svg/${b64Code}`;
serializedState.subscribe((encodedState: string) => {
iUrl = `${rendererUrl}/img/${encodedState}`;
svgUrl = `${rendererUrl}/svg/${encodedState}`;
krokiUrl = `${krokiRendererUrl}/mermaid/svg/${pakoSerde.serialize($codeStore.code)}`;
mdCode = `[![](${iUrl})](${window.location.protocol}//${window.location.host}${window.location.pathname}#${encodedState})`;
});
</script>
@@ -194,8 +166,8 @@
<button class="action-btn flex-auto">
<a target="_blank" href={svgUrl}><i class="fas fa-external-link-alt mr-2" /> SVG</a>
</button>
<button class="action-btn flex-auto" on:click={onKrokiClick}>
<i class="fas fa-external-link-alt mr-2" /> Kroki
<button class="action-btn flex-auto">
<a target="_blank" href={krokiUrl}><i class="fas fa-external-link-alt mr-2" /> Kroki</a>
</button>
<div class="flex gap-2 items-center">
+4 -2
View File
@@ -1,2 +1,4 @@
export const rendererUrl = import.meta.env.MERMAID_RENDERER_URL ?? 'https://mermaid.ink';
export const krokiRendererUrl = import.meta.env.MERMAID_KROKI_RENDERER_URL ?? 'https://kroki.io';
export const rendererUrl: string =
(import.meta.env.MERMAID_RENDERER_URL as string) ?? 'https://mermaid.ink';
export const krokiRendererUrl: string =
(import.meta.env.MERMAID_KROKI_RENDERER_URL as string) ?? 'https://kroki.io';
+61
View File
@@ -0,0 +1,61 @@
import { deflate, inflate } from 'pako';
import { toUint8Array, fromUint8Array, toBase64, fromBase64 } from 'js-base64';
import type { State } from '$lib/types';
interface Serde {
serialize: (state: string) => string;
deserialize: (state: string) => string;
}
const base64Serde: Serde = {
serialize: (state: string): string => {
return toBase64(state, true);
},
deserialize: (state: string): string => {
return fromBase64(state);
}
};
export const pakoSerde: Serde = {
serialize: (state: string): string => {
const data = new TextEncoder().encode(state);
const compressed = deflate(data, { level: 9 });
return fromUint8Array(compressed, true);
},
deserialize: (state: string): string => {
const data = toUint8Array(state);
return inflate(data, { to: 'string' });
}
};
const serdes: { [key: string]: Serde } = {
base64: base64Serde,
pako: pakoSerde
};
type SerdeType = keyof typeof serdes;
export const serializeState = (state: State): string => {
const json = JSON.stringify(state);
const defaultSerde: SerdeType = 'pako';
const serialized = serdes[defaultSerde].serialize(json);
return `${defaultSerde}:${serialized}`;
};
export const deserializeState = (state: string): State => {
let type: SerdeType, serialized: string;
if (state.includes(':')) {
let tempType: string;
[tempType, serialized] = state.split(':');
if (tempType in serdes) {
type = tempType;
} else {
throw new Error(`Unknown serde type: ${tempType}`);
}
} else {
type = 'base64';
serialized = state;
}
const json = serdes[type].deserialize(serialized);
return JSON.parse(json) as State;
};
+7 -8
View File
@@ -1,9 +1,9 @@
import { writable, get, derived } from 'svelte/store';
import type { Readable } from 'svelte/store';
import { toBase64, fromBase64 } from 'js-base64';
import { persist, localStorage } from '@macfja/svelte-persistent-store';
import type { State } from '$lib/types';
import { saveStatistics } from './stats';
import { serializeState, deserializeState } from './serde';
export const defaultState: State = {
code: `graph TD
@@ -37,17 +37,16 @@ const urlParseFailedState = `graph TD
click D href "https://github.com/mermaid-js/mermaid-live-editor/issues/new?assignees=&labels=bug&template=bug_report.md&title=Broken%20link" "Raise issue"`;
export const codeStore = persist(writable(defaultState), localStorage(), 'codeStore');
export const base64State: Readable<string> = derived([codeStore], ([code], set) => {
set(toBase64(JSON.stringify(code), true));
export const serializedState: Readable<string> = derived([codeStore], ([code], set) => {
set(serializeState(code));
});
export const loadState = (data: string): void => {
let state: State;
console.log('Loading', data);
try {
const stateStr = fromBase64(data);
console.log(`Trying to load state: ${stateStr}`);
state = JSON.parse(stateStr);
const mermaidConfig =
state = deserializeState(data);
const mermaidConfig: { [key: string]: string } =
typeof state.mermaid === 'string' ? JSON.parse(state.mermaid) : state.mermaid;
if (
mermaidConfig.securityLevel &&
@@ -116,7 +115,7 @@ export const toggleDarkTheme = (dark: boolean): void => {
};
export const initURLSubscription = (): void => {
base64State.subscribe((state: string) => {
serializedState.subscribe((state: string) => {
history.replaceState(undefined, undefined, `#${state}`);
});
};
+4 -4
View File
@@ -6,7 +6,7 @@
import View from '$lib/components/view.svelte';
import Card from '$lib/components/card/card.svelte';
import History from '$lib/components/history/history.svelte';
import { updateCode, updateConfig, codeStore, base64State } from '$lib/util/state';
import { updateCode, updateConfig, codeStore, serializedState } from '$lib/util/state';
import { initHandler, syncDiagram } from '$lib/util/util';
import { errorStore } from '$lib/util/error';
import { onMount } from 'svelte';
@@ -15,7 +15,7 @@
import type { EditorUpdateEvent, State, Tab } from '$lib/types';
import { base } from '$app/paths';
base64State; // Weird fix for error > base64State is not defined. Treeshaking?
serializedState; // Weird fix for error > serializedState is not defined. Treeshaking?
let selectedMode = 'code';
const languageMap = {
code: 'mermaid',
@@ -82,7 +82,7 @@
startLineNumber: e.hash.loc.first_line,
startColumn: e.hash.loc.first_column,
endLineNumber: e.hash.loc.last_line,
endColumn: e.hash.loc.last_column + 1,
endColumn: (e.hash.loc.last_column as number) + 1,
message: e.str
};
errorMarkers.push(marker);
@@ -96,7 +96,7 @@
};
const viewDiagram = () => {
window.open(`${base}/view#${$base64State}`, '_blank').focus();
window.open(`${base}/view#${$serializedState}`, '_blank').focus();
};
onMount(async () => {
+3 -2
View File
@@ -2,7 +2,7 @@
"compilerOptions": {
"moduleResolution": "node",
"module": "es2020",
"lib": ["es2020", "ESNext", "DOM.Iterable"],
"lib": ["es2020", "ESNext", "DOM.Iterable", "DOM"],
"target": "es2019",
/**
svelte-preprocess cannot figure out whether you have a value or a type, so tell TypeScript
@@ -33,6 +33,7 @@
"src/**/*.svelte",
"cypress/**/*.ts",
"cypress/**/*.js",
"static/**/*.js"
"static/**/*.js",
"src/pako.mts"
]
}
+25 -20
View File
@@ -204,10 +204,10 @@
dependencies:
tiny-glob "^0.2.9"
"@sveltejs/kit@1.0.0-next.232":
version "1.0.0-next.232"
resolved "https://registry.yarnpkg.com/@sveltejs/kit/-/kit-1.0.0-next.232.tgz#a8879e331d37259d99f72cbcffa00d177106b896"
integrity sha512-STQ0hnJozIop8k9I313nwVasBIQ45Z2K1pUOkDVjCSOGijgsj+De5q0prQBtL1ZlqqisfkYlOf8W9gvDSyTLEA==
"@sveltejs/kit@1.0.0-next.236":
version "1.0.0-next.236"
resolved "https://registry.yarnpkg.com/@sveltejs/kit/-/kit-1.0.0-next.236.tgz#d0742b68cf2441a241732e461d64a4ae11e9dbb2"
integrity sha512-V/K6KZwZlfM2jDiL7luisRkPujf/pAT2SUpgOEONk44WwUwYwd928qN2u0Z6SAfQFCDAxUI8pMHP2OC1bm352Q==
dependencies:
"@sveltejs/vite-plugin-svelte" "^1.0.0-next.32"
sade "^1.7.4"
@@ -250,6 +250,11 @@
resolved "https://registry.npmjs.org/@types/node/-/node-14.17.0.tgz"
integrity sha512-w8VZUN/f7SSbvVReb9SWp6cJFevxb4/nkG65yLAya//98WgocKm5PLDAtSs5CtJJJM+kHmJjO/6mmYW4MHShZA==
"@types/pako@^1.0.3":
version "1.0.3"
resolved "https://registry.yarnpkg.com/@types/pako/-/pako-1.0.3.tgz#2e61c2b02020b5f44e2e5e946dfac74f4ec33c58"
integrity sha512-EDxOsHAD5dqjbjEUM1xwa7rpKPFb8ECBE5irONTQU7/OsO3thI5YrNEWSPNMvYmvFM0l/OLQJ6Mgw7PEdXSjhg==
"@types/parse-json@^4.0.0":
version "4.0.0"
resolved "https://registry.npmjs.org/@types/parse-json/-/parse-json-4.0.0.tgz"
@@ -2911,10 +2916,10 @@ lines-and-columns@^1.1.6:
resolved "https://registry.npmjs.org/lines-and-columns/-/lines-and-columns-1.1.6.tgz"
integrity sha1-HADHQ7QzzQpOgHWPe2SldEDZ/wA=
lint-staged@^12.2.1:
version "12.2.1"
resolved "https://registry.yarnpkg.com/lint-staged/-/lint-staged-12.2.1.tgz#e37b5a81deaabf5823f43b3aa903a70c15c9d0b3"
integrity sha512-VCVcA9C2Vt5HHxSR4EZVZFJcQRJH984CGBeY+cJ/xed4mBd+JidbM/xbKcCq5ASaygAV0iITtdsCTnID7h/1OQ==
lint-staged@^12.2.2:
version "12.2.2"
resolved "https://registry.yarnpkg.com/lint-staged/-/lint-staged-12.2.2.tgz#e03d93b41092316e0f38b37c9630da807aae3cca"
integrity sha512-bcHEoM1M/f+K1BYdHcEuIn8K+zMOSJR3mkny6PAuQiTgcSUcRbUWaUD6porAYypxF4k1vYZZ2HutZt1p94Z1jQ==
dependencies:
cli-truncate "^3.1.0"
colorette "^2.0.16"
@@ -3041,10 +3046,10 @@ merge2@^1.3.0:
resolved "https://registry.npmjs.org/merge2/-/merge2-1.4.1.tgz"
integrity sha512-8q7VEgMJW4J8tcfVPy8g09NcQwZdbwFEqhe/WZkoIzjn/3TGDwtOCYtXGxA3O8tPzpczCCDgv+P2P5y00ZJOOg==
mermaid@8.13.9:
version "8.13.9"
resolved "https://registry.yarnpkg.com/mermaid/-/mermaid-8.13.9.tgz#72f9a63b1b15239e260ca4728ad9196d1862889d"
integrity sha512-kMH676xEomSe/gzxMpDx91L+z9L+9iB3lvtPFA8aeOPRNNrfd3ZDvDCGFnuqQaJvPRCxs3Me2JDaVVNOZjojrg==
mermaid@8.14.0-rc1:
version "8.14.0-rc1"
resolved "https://registry.yarnpkg.com/mermaid/-/mermaid-8.14.0-rc1.tgz#a3b02b57aea7412fceeaa4a0c554fc826600b87d"
integrity sha512-9im2C69x5MoBBNEVO3eAOn01Se8hVPTDeO5JnNlqhFKeTY9wB4C43/JpM1GDUf8pRFMUtEreVgIC19OEYOqZ6Q==
dependencies:
"@braintree/sanitize-url" "^3.1.0"
d3 "^7.0.0"
@@ -3150,10 +3155,10 @@ monaco-editor@^0.31.1:
resolved "https://registry.yarnpkg.com/monaco-editor/-/monaco-editor-0.31.1.tgz#67f597b3e45679d1f551237e12a3a42c4438b97b"
integrity sha512-FYPwxGZAeP6mRRyrr5XTGHD9gRXVjy7GUzF4IPChnyt3fS5WrNxIkS8DNujWf6EQy0Zlzpxw8oTVE+mWI2/D1Q==
monaco-mermaid@^1.0.1:
version "1.0.1"
resolved "https://registry.yarnpkg.com/monaco-mermaid/-/monaco-mermaid-1.0.1.tgz#1dc8b2f4bb96f84358b42e2c04099378450594eb"
integrity sha512-S+6VM0LcfcZJfacunK1r/4bQS9QL0TSc+lMG2yyQpaJo7LCk77k12E3MO2iOs560KkGIoOru5nOjNIe5CYCrTQ==
monaco-mermaid@^1.0.2:
version "1.0.2"
resolved "https://registry.yarnpkg.com/monaco-mermaid/-/monaco-mermaid-1.0.2.tgz#a96d2c5dfbf9fc591cb7c61dff40a3d188021337"
integrity sha512-H0waK3QyTklsE3hKW4bvDFt+8Wcfghszi125wQVS89gzlHZMxZh5w1RqQe85d4FSmjwc3t1o71pCkyEYiZJiXg==
mri@^1.1.0:
version "1.1.6"
@@ -4399,10 +4404,10 @@ type-fest@^0.21.3:
resolved "https://registry.npmjs.org/type-fest/-/type-fest-0.21.3.tgz"
integrity sha512-t0rzBq87m3fVcduHDUFhKmyyX+9eo6WQjZvf51Ea/M0Q7+T374Jp1aUiyUl0GKxp8M/OETVHSDvmkyPgvX+X2w==
typescript@^4.5.4:
version "4.5.4"
resolved "https://registry.yarnpkg.com/typescript/-/typescript-4.5.4.tgz#a17d3a0263bf5c8723b9c52f43c5084edf13c2e8"
integrity sha512-VgYs2A2QIRuGphtzFV7aQJduJ2gyfTljngLzjpfW9FoYZF6xuw1W0vW9ghCKLfcWrCFxK81CSGRAvS1pn4fIUg==
typescript@^4.5.5:
version "4.5.5"
resolved "https://registry.yarnpkg.com/typescript/-/typescript-4.5.5.tgz#d8c953832d28924a9e3d37c73d729c846c5896f3"
integrity sha512-TCTIul70LyWe6IJWT8QSYeA54WQe8EjQFU4wY52Fasj5UKx88LNYKCgBEHcOMOrFF1rKGbD8v/xcNWVUq9SymA==
universal-analytics@^0.4.20:
version "0.4.23"