-
-
Notifications
You must be signed in to change notification settings - Fork 6.7k
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
style: forbid using console
in mermaid src code
#3405
style: forbid using console
in mermaid src code
#3405
Conversation
Adds an eslint rule forbidding using `console` in the mermaid source code. Instead, the `src/logger` should be used instead, so that websites can disable logging. This is allowed in the `cypress/` and `demos/` folder. I've also removed the two instances on `console.log`/`console.error` that currently exist in the mermaid source code.
These aren't caught by eslint, since they're in a .jison file.
Few workarounds for this
I think we should have a pipeline which converts .jison to .js and then runs eslint? It should be fairly straightforward as we're already converting jison to js here and here. Errors caught with manual checks usually slip through the cracks after a while and take up our time reviewing PRs. |
My gut feeling is to remove the If you like the idea, I'm happy to make another PR for that!
I had a quick try with running eslint on generated jison files, but it looks like the ESLint can't understand the alois@me: ~/Documents/mermaid (other/3339_forbid-console-in-src-code)$ yarn jison ./src/diagrams/c4/parser/c4Diagram.jison && yarn eslint ./c4Diagram.js
yarn run v1.22.15
$ /home/alois/Documents/mermaid/node_modules/.bin/eslint ./c4Diagram.js
/home/alois/Documents/mermaid/c4Diagram.js
909:15 error Parsing error: Missing semicolon. (909:15)
✖ 1 problem (1 error, 0 warnings) Instead, what I've done in b67657a is to use the library jest-fail-on-console, which fails It's still not great, since it relies on |
checks for console only and parses the file properly. Jest might not cover all the branches, so let's stick with eslint. (which is another problem we should fix - Coverage reports). |
Converts the *.jison files into .js, then lints them using just the `no-console` rule. To keep things simple, I've just made this run only on CI. If we want to do more complex linting on `*.jison` files, it might be worth making an `eslint-plugin-jison`, so that we can directly parse jison in ESLint.
Awesome! Good catch. I've added some ESLint tests for the .jison files using GitHub Actions in 22d20cc (and removed my old It's a bit hacky (it's some basic bash code), since it only runs in CI, but I feel like it's a bit too much effort to make a custom An example failing run: https://github.com/aloisklink/mermaid/runs/8198619955
That would be cool! Although again, I feel like coverage reports and |
Totally agree. The current approach is fine!
I don't think it will either, I was thinking of the JS & TS file coverage. |
👍 It would be great! Force pushed to 6e81ee9, since I accidentally created the wrong indentation when trying to fix merge conflicts with GitHub's UI. |
[![Mend Renovate](https://app.renovatebot.com/images/banner.svg)](https://renovatebot.com) This PR contains the following updates: | Package | Change | Age | Adoption | Passing | Confidence | |---|---|---|---|---|---| | [mermaid](https://github.com/mermaid-js/mermaid) | [`9.1.7` -> `9.2.2`](https://renovatebot.com/diffs/npm/mermaid/9.1.7/9.2.2) | [![age](https://badges.renovateapi.com/packages/npm/mermaid/9.2.2/age-slim)](https://docs.renovatebot.com/merge-confidence/) | [![adoption](https://badges.renovateapi.com/packages/npm/mermaid/9.2.2/adoption-slim)](https://docs.renovatebot.com/merge-confidence/) | [![passing](https://badges.renovateapi.com/packages/npm/mermaid/9.2.2/compatibility-slim/9.1.7)](https://docs.renovatebot.com/merge-confidence/) | [![confidence](https://badges.renovateapi.com/packages/npm/mermaid/9.2.2/confidence-slim/9.1.7)](https://docs.renovatebot.com/merge-confidence/) | --- ### Release Notes <details> <summary>mermaid-js/mermaid</summary> ### [`v9.2.2`](https://github.com/mermaid-js/mermaid/releases/tag/v9.2.2): 9.2.2 [Compare Source](https://github.com/mermaid-js/mermaid/compare/v9.2.1...v9.2.2) #### What's Changed - \[9.2] fix(mermaid): fix `mermaid.render` types by [@​aloisklink](https://github.com/aloisklink) in [https://github.com/mermaid-js/mermaid/pull/3768](https://github.com/mermaid-js/mermaid/pull/3768) - \[9.2] fix(mermaid): default mermaid back to CommonJS by [@​aloisklink](https://github.com/aloisklink) in [https://github.com/mermaid-js/mermaid/pull/3767](https://github.com/mermaid-js/mermaid/pull/3767) - Fix lazy loading in webpack by [@​sidharthv96](https://github.com/sidharthv96) in [https://github.com/mermaid-js/mermaid/pull/3774](https://github.com/mermaid-js/mermaid/pull/3774) **Full Changelog**: mermaid-js/mermaid@v9.2.1...v9.2.2 ### [`v9.2.1`](https://github.com/mermaid-js/mermaid/releases/tag/v9.2.1): 9.2.1 [Compare Source](https://github.com/mermaid-js/mermaid/compare/v9.2.0...v9.2.1) #### What's Changed - \~~fix [#​3757](https://github.com/mermaid-js/mermaid/issues/3757) : Remove dynamic imports for lazy load causing issues for webpack~~ - chore: Update bug report template by [@​gibson042](https://github.com/gibson042) in [https://github.com/mermaid-js/mermaid/pull/3727](https://github.com/mermaid-js/mermaid/pull/3727) - Use issue templates and add diagram, theme and syntax proposal issue forms by [@​Andre601](https://github.com/Andre601) in [https://github.com/mermaid-js/mermaid/pull/2739](https://github.com/mermaid-js/mermaid/pull/2739) #### New Contributors - [@​Andre601](https://github.com/Andre601) made their first contribution in [https://github.com/mermaid-js/mermaid/pull/2739](https://github.com/mermaid-js/mermaid/pull/2739) **Full Changelog**: mermaid-js/mermaid@v9.2.0...v9.2.1 ### [`v9.2.0`](https://github.com/mermaid-js/mermaid/releases/tag/v9.2.0): 9.2.0 [Compare Source](https://github.com/mermaid-js/mermaid/compare/v9.1.7...v9.2.0) #### What's Changed ##### Features - Mindmaps by [@​knsv](https://github.com/knsv) in [https://github.com/mermaid-js/mermaid/pull/3410](https://github.com/mermaid-js/mermaid/pull/3410) - Introducing TypeScript by [@​sidharthv96](https://github.com/sidharthv96) in [https://github.com/mermaid-js/mermaid/pull/3336](https://github.com/mermaid-js/mermaid/pull/3336) - Auto transform `mermaid-example` in docs. by [@​sidharthv96](https://github.com/sidharthv96) in [https://github.com/mermaid-js/mermaid/pull/3401](https://github.com/mermaid-js/mermaid/pull/3401) - Creating detectors and moving out diagram specific code from the diag… by [@​knsv](https://github.com/knsv) in [https://github.com/mermaid-js/mermaid/pull/3436](https://github.com/mermaid-js/mermaid/pull/3436) - feat(git): cherry-pick keyword supports tag attribute by [@​elliot-nelson](https://github.com/elliot-nelson) in [https://github.com/mermaid-js/mermaid/pull/3479](https://github.com/mermaid-js/mermaid/pull/3479) - Mindmaps replacing rendering algoritm with cose-bilkent by [@​knsv](https://github.com/knsv) in [https://github.com/mermaid-js/mermaid/pull/3559](https://github.com/mermaid-js/mermaid/pull/3559) - 3561 theme color scales by [@​knsv](https://github.com/knsv) in [https://github.com/mermaid-js/mermaid/pull/3562](https://github.com/mermaid-js/mermaid/pull/3562) - ESBuild by [@​sidharthv96](https://github.com/sidharthv96) in [https://github.com/mermaid-js/mermaid/pull/3386](https://github.com/mermaid-js/mermaid/pull/3386) - (Beta) Lazy load import by [@​knsv](https://github.com/knsv) in [https://github.com/mermaid-js/mermaid/pull/3592](https://github.com/mermaid-js/mermaid/pull/3592), [https://github.com/mermaid-js/mermaid/pull/3598](https://github.com/mermaid-js/mermaid/pull/3598) - 3061 making a monorepo by [@​knsv](https://github.com/knsv) in [https://github.com/mermaid-js/mermaid/pull/3531](https://github.com/mermaid-js/mermaid/pull/3531) ##### Fixes - Feature decimal duration in second for gantt diagram by [@​vallsv](https://github.com/vallsv) in [https://github.com/mermaid-js/mermaid/pull/3360](https://github.com/mermaid-js/mermaid/pull/3360) - fix: fix passing a single Node to mermaid.init() by [@​aloisklink](https://github.com/aloisklink) in [https://github.com/mermaid-js/mermaid/pull/3396](https://github.com/mermaid-js/mermaid/pull/3396) - fix [#​3407](https://github.com/mermaid-js/mermaid/issues/3407) Replace `div` with `pre` and format by [@​sidharthv96](https://github.com/sidharthv96) in [https://github.com/mermaid-js/mermaid/pull/3408](https://github.com/mermaid-js/mermaid/pull/3408) - fix(git): support numeric branch names by [@​aloisklink](https://github.com/aloisklink) in [https://github.com/mermaid-js/mermaid/pull/3392](https://github.com/mermaid-js/mermaid/pull/3392) - Add tests for C4 system context macros by [@​dbartholomae](https://github.com/dbartholomae) in [https://github.com/mermaid-js/mermaid/pull/3367](https://github.com/mermaid-js/mermaid/pull/3367) - Add nested test for parseGenericTypes by [@​sidharthv96](https://github.com/sidharthv96) in [https://github.com/mermaid-js/mermaid/pull/3354](https://github.com/mermaid-js/mermaid/pull/3354) - Fix memoize by [@​sidharthv96](https://github.com/sidharthv96) in [https://github.com/mermaid-js/mermaid/pull/3434](https://github.com/mermaid-js/mermaid/pull/3434) - fix(git): support single character branch names by [@​aloisklink](https://github.com/aloisklink) in [https://github.com/mermaid-js/mermaid/pull/3464](https://github.com/mermaid-js/mermaid/pull/3464) - Replace GoogleAnalytics with Plausible by [@​sidharthv96](https://github.com/sidharthv96) in [https://github.com/mermaid-js/mermaid/pull/3466](https://github.com/mermaid-js/mermaid/pull/3466) - Fix for issues in errorhandling and class diagrams after refactoring by [@​knsv](https://github.com/knsv) in [https://github.com/mermaid-js/mermaid/pull/3470](https://github.com/mermaid-js/mermaid/pull/3470) - 3409 Fix for truncated tags in GitGraph by [@​ashishjain0512](https://github.com/ashishjain0512) in [https://github.com/mermaid-js/mermaid/pull/3454](https://github.com/mermaid-js/mermaid/pull/3454) - Fix broken cherry-pick parsing in gitgraph by [@​aloisklink](https://github.com/aloisklink) in [https://github.com/mermaid-js/mermaid/pull/3480](https://github.com/mermaid-js/mermaid/pull/3480) - Fix CI `docs:lint` by [@​sidharthv96](https://github.com/sidharthv96) in [https://github.com/mermaid-js/mermaid/pull/3493](https://github.com/mermaid-js/mermaid/pull/3493) - Fix user-journey leaking css by [@​lishid](https://github.com/lishid) in [https://github.com/mermaid-js/mermaid/pull/3510](https://github.com/mermaid-js/mermaid/pull/3510) - \[sequenceDiagrams] Support dashes in participant names by [@​ashleybartlett](https://github.com/ashleybartlett) in [https://github.com/mermaid-js/mermaid/pull/3524](https://github.com/mermaid-js/mermaid/pull/3524) - fix: ER dark theme attribute colors by [@​weedySeaDragon](https://github.com/weedySeaDragon) in [https://github.com/mermaid-js/mermaid/pull/3512](https://github.com/mermaid-js/mermaid/pull/3512) - feat: ER diagram: allow other chars in a quoted entity name by [@​weedySeaDragon](https://github.com/weedySeaDragon) in [https://github.com/mermaid-js/mermaid/pull/3516](https://github.com/mermaid-js/mermaid/pull/3516) - Arrow tip aligned to edge of box by [@​pbrolin47](https://github.com/pbrolin47) in [https://github.com/mermaid-js/mermaid/pull/3533](https://github.com/mermaid-js/mermaid/pull/3533) - Fixed labelText undefined behavior by [@​AndrewL-64](https://github.com/AndrewL-64) in [https://github.com/mermaid-js/mermaid/pull/3544](https://github.com/mermaid-js/mermaid/pull/3544) - Fix failing vitest unit tests by [@​aloisklink](https://github.com/aloisklink) in [https://github.com/mermaid-js/mermaid/pull/3587](https://github.com/mermaid-js/mermaid/pull/3587) - fix: Import diagram by [@​sidharthv96](https://github.com/sidharthv96) in [https://github.com/mermaid-js/mermaid/pull/3589](https://github.com/mermaid-js/mermaid/pull/3589) - Fix file name during "pnpm run dev" script by [@​vallsv](https://github.com/vallsv) in [https://github.com/mermaid-js/mermaid/pull/3608](https://github.com/mermaid-js/mermaid/pull/3608) - fix Detect diagram fallback by [@​sidharthv96](https://github.com/sidharthv96) in [https://github.com/mermaid-js/mermaid/pull/3591](https://github.com/mermaid-js/mermaid/pull/3591) - fix: Dirty fix for sync render. by [@​sidharthv96](https://github.com/sidharthv96) in [https://github.com/mermaid-js/mermaid/pull/3633](https://github.com/mermaid-js/mermaid/pull/3633) - fix: Converts mindmapDB to TS by [@​sidharthv96](https://github.com/sidharthv96) in [https://github.com/mermaid-js/mermaid/pull/3683](https://github.com/mermaid-js/mermaid/pull/3683) - Support `lazyLoadedDiagrams` when calling `initThrowsErrors` by [@​aloisklink](https://github.com/aloisklink) in [https://github.com/mermaid-js/mermaid/pull/3702](https://github.com/mermaid-js/mermaid/pull/3702) - \[9.2.0] Support `lazyLoadedDiagrams` when calling `initThrowsErrorsAsync` by [@​aloisklink](https://github.com/aloisklink) in [https://github.com/mermaid-js/mermaid/pull/3731](https://github.com/mermaid-js/mermaid/pull/3731) ##### Chores - build: run `build:prod` on `yarn prepare` by [@​aloisklink](https://github.com/aloisklink) in [https://github.com/mermaid-js/mermaid/pull/3404](https://github.com/mermaid-js/mermaid/pull/3404) - chore(deps-dev): bump [@​types/dompurify](https://github.com/types/dompurify) from 2.3.3 to 2.3.4 by [@​dependabot](https://github.com/dependabot) in [https://github.com/mermaid-js/mermaid/pull/3414](https://github.com/mermaid-js/mermaid/pull/3414) - chore(deps-dev): bump jest-environment-jsdom from 29.0.1 to 29.0.2 by [@​dependabot](https://github.com/dependabot) in [https://github.com/mermaid-js/mermaid/pull/3413](https://github.com/mermaid-js/mermaid/pull/3413) - chore(deps-dev): bump typescript from 4.7.4 to 4.8.2 by [@​dependabot](https://github.com/dependabot) in [https://github.com/mermaid-js/mermaid/pull/3411](https://github.com/mermaid-js/mermaid/pull/3411) - chore(deps-dev): bump babel-jest from 29.0.1 to 29.0.2 by [@​dependabot](https://github.com/dependabot) in [https://github.com/mermaid-js/mermaid/pull/3412](https://github.com/mermaid-js/mermaid/pull/3412) - chore: fix JSDOC [@​param](https://github.com/param), [@​returns](https://github.com/returns) lint errors by [@​weedySeaDragon](https://github.com/weedySeaDragon) in [https://github.com/mermaid-js/mermaid/pull/3422](https://github.com/mermaid-js/mermaid/pull/3422) - style: forbid using `console` in mermaid src code by [@​aloisklink](https://github.com/aloisklink) in [https://github.com/mermaid-js/mermaid/pull/3405](https://github.com/mermaid-js/mermaid/pull/3405) - Introduce stricter typescript linting by [@​sidharthv96](https://github.com/sidharthv96) in [https://github.com/mermaid-js/mermaid/pull/3393](https://github.com/mermaid-js/mermaid/pull/3393) - Esbuild: backwards-compatible `mermaid.core.mjs` by [@​aloisklink](https://github.com/aloisklink) in [https://github.com/mermaid-js/mermaid/pull/3437](https://github.com/mermaid-js/mermaid/pull/3437) - fix(git): support unusual prefixes in branch name by [@​aloisklink](https://github.com/aloisklink) in [https://github.com/mermaid-js/mermaid/pull/3438](https://github.com/mermaid-js/mermaid/pull/3438) - Re-enable coverage upload to coveralls by [@​aloisklink](https://github.com/aloisklink) in [https://github.com/mermaid-js/mermaid/pull/3431](https://github.com/mermaid-js/mermaid/pull/3431) - chore(deps): bump actions/checkout from 2 to 3 by [@​dependabot](https://github.com/dependabot) in [https://github.com/mermaid-js/mermaid/pull/3449](https://github.com/mermaid-js/mermaid/pull/3449) - chore(deps-dev): bump typescript from 4.8.2 to 4.8.3 by [@​dependabot](https://github.com/dependabot) in [https://github.com/mermaid-js/mermaid/pull/3446](https://github.com/mermaid-js/mermaid/pull/3446) - chore(deps-dev): bump eslint from 8.23.0 to 8.23.1 by [@​dependabot](https://github.com/dependabot) in [https://github.com/mermaid-js/mermaid/pull/3440](https://github.com/mermaid-js/mermaid/pull/3440) - chore(deps-dev): bump babel-jest from 29.0.2 to 29.0.3 by [@​dependabot](https://github.com/dependabot) in [https://github.com/mermaid-js/mermaid/pull/3448](https://github.com/mermaid-js/mermaid/pull/3448) - chore(deps-dev): bump jest-environment-jsdom from 29.0.2 to 29.0.3 by [@​dependabot](https://github.com/dependabot) in [https://github.com/mermaid-js/mermaid/pull/3441](https://github.com/mermaid-js/mermaid/pull/3441) - chore(deps-dev): bump [@​babel/core](https://github.com/babel/core) from 7.18.13 to 7.19.0 by [@​dependabot](https://github.com/dependabot) in [https://github.com/mermaid-js/mermaid/pull/3447](https://github.com/mermaid-js/mermaid/pull/3447) - chore(deps-dev): bump [@​typescript-eslint/parser](https://github.com/typescript-eslint/parser) from 5.36.1 to 5.37.0 by [@​dependabot](https://github.com/dependabot) in [https://github.com/mermaid-js/mermaid/pull/3451](https://github.com/mermaid-js/mermaid/pull/3451) - chore(deps-dev): bump [@​babel/preset-env](https://github.com/babel/preset-env) from 7.18.10 to 7.19.0 by [@​dependabot](https://github.com/dependabot) in [https://github.com/mermaid-js/mermaid/pull/3442](https://github.com/mermaid-js/mermaid/pull/3442) - chore(deps-dev): bump concurrently from 7.3.0 to 7.4.0 by [@​dependabot](https://github.com/dependabot) in [https://github.com/mermaid-js/mermaid/pull/3445](https://github.com/mermaid-js/mermaid/pull/3445) - chore(deps-dev): bump [@​typescript-eslint/eslint-plugin](https://github.com/typescript-eslint/eslint-plugin) from 5.36.1 to 5.37.0 by [@​dependabot](https://github.com/dependabot) in [https://github.com/mermaid-js/mermaid/pull/3457](https://github.com/mermaid-js/mermaid/pull/3457) - chore(deps-dev): bump eslint-plugin-jest from 27.0.1 to 27.0.4 by [@​dependabot](https://github.com/dependabot) in [https://github.com/mermaid-js/mermaid/pull/3458](https://github.com/mermaid-js/mermaid/pull/3458) - Cleanup & fix eslint warnings by [@​sidharthv96](https://github.com/sidharthv96) in [https://github.com/mermaid-js/mermaid/pull/3453](https://github.com/mermaid-js/mermaid/pull/3453) - chore(deps-dev): bump webpack-dev-server from 4.10.1 to 4.11.0 by [@​dependabot](https://github.com/dependabot) in [https://github.com/mermaid-js/mermaid/pull/3450](https://github.com/mermaid-js/mermaid/pull/3450) - chore(deps): bump stylis from 4.1.1 to 4.1.2 by [@​dependabot](https://github.com/dependabot) in [https://github.com/mermaid-js/mermaid/pull/3439](https://github.com/mermaid-js/mermaid/pull/3439) - chore(deps): bump dompurify from 2.3.10 to 2.4.0 by [@​dependabot](https://github.com/dependabot) in [https://github.com/mermaid-js/mermaid/pull/3444](https://github.com/mermaid-js/mermaid/pull/3444) - chore(deps-dev): bump [@​types/lodash](https://github.com/types/lodash) from 4.14.184 to 4.14.185 by [@​dependabot](https://github.com/dependabot) in [https://github.com/mermaid-js/mermaid/pull/3489](https://github.com/mermaid-js/mermaid/pull/3489) - chore(deps-dev): bump esbuild from 0.15.6 to 0.15.8 by [@​dependabot](https://github.com/dependabot) in [https://github.com/mermaid-js/mermaid/pull/3490](https://github.com/mermaid-js/mermaid/pull/3490) - chore(deps-dev): bump eslint from 8.23.1 to 8.24.0 by [@​dependabot](https://github.com/dependabot) in [https://github.com/mermaid-js/mermaid/pull/3521](https://github.com/mermaid-js/mermaid/pull/3521) - chore(deps-dev): bump [@​types/prettier](https://github.com/types/prettier) from 2.7.0 to 2.7.1 by [@​dependabot](https://github.com/dependabot) in [https://github.com/mermaid-js/mermaid/pull/3520](https://github.com/mermaid-js/mermaid/pull/3520) - chore: fix demo chart pages by [@​weedySeaDragon](https://github.com/weedySeaDragon) in [https://github.com/mermaid-js/mermaid/pull/3523](https://github.com/mermaid-js/mermaid/pull/3523) - Vitest by [@​sidharthv96](https://github.com/sidharthv96) in [https://github.com/mermaid-js/mermaid/pull/3427](https://github.com/mermaid-js/mermaid/pull/3427) - Build mermaid using Vite by [@​sidharthv96](https://github.com/sidharthv96) in [https://github.com/mermaid-js/mermaid/pull/3503](https://github.com/mermaid-js/mermaid/pull/3503) - Add "Debug Current Test File" configuration for VSCode by [@​pje](https://github.com/pje) in [https://github.com/mermaid-js/mermaid/pull/3509](https://github.com/mermaid-js/mermaid/pull/3509) - \[DevOps] Parallel E2E by [@​sidharthv96](https://github.com/sidharthv96) in [https://github.com/mermaid-js/mermaid/pull/3498](https://github.com/mermaid-js/mermaid/pull/3498) - chore(deps-dev): update lint-staged requirement from ^13.0.0 to ^13.0.3 by [@​dependabot](https://github.com/dependabot) in [https://github.com/mermaid-js/mermaid/pull/3551](https://github.com/mermaid-js/mermaid/pull/3551) - chore(deps-dev): update start-server-and-test requirement from ^1.12.6 to ^1.14.0 by [@​dependabot](https://github.com/dependabot) in [https://github.com/mermaid-js/mermaid/pull/3553](https://github.com/mermaid-js/mermaid/pull/3553) - chore(deps-dev): update jsdom requirement from ^20.0.0 to ^20.0.1 by [@​dependabot](https://github.com/dependabot) in [https://github.com/mermaid-js/mermaid/pull/3552](https://github.com/mermaid-js/mermaid/pull/3552) - chore(deps-dev): update [@​types/express](https://github.com/types/express) requirement from ^4.17.13 to ^4.17.14 by [@​dependabot](https://github.com/dependabot) in [https://github.com/mermaid-js/mermaid/pull/3555](https://github.com/mermaid-js/mermaid/pull/3555) - chore(deps-dev): update [@​types/lodash](https://github.com/types/lodash) requirement from ^4.14.185 to ^4.14.186 by [@​dependabot](https://github.com/dependabot) in [https://github.com/mermaid-js/mermaid/pull/3556](https://github.com/mermaid-js/mermaid/pull/3556) - chore(deps-dev): update vitest requirement from ^0.23.1 to ^0.23.4 by [@​dependabot](https://github.com/dependabot) in [https://github.com/mermaid-js/mermaid/pull/3557](https://github.com/mermaid-js/mermaid/pull/3557) - chore(deps-dev): update husky requirement from ^8.0.0 to ^8.0.1 by [@​dependabot](https://github.com/dependabot) in [https://github.com/mermaid-js/mermaid/pull/3558](https://github.com/mermaid-js/mermaid/pull/3558) - chore(deps-dev): update [@​typescript-eslint/parser](https://github.com/typescript-eslint/parser) requirement from ^5.37.0 to ^5.39.0 by [@​dependabot](https://github.com/dependabot) in [https://github.com/mermaid-js/mermaid/pull/3564](https://github.com/mermaid-js/mermaid/pull/3564) - chore(deps-dev): update [@​typescript-eslint/eslint-plugin](https://github.com/typescript-eslint/eslint-plugin) requirement from ^5.37.0 to ^5.39.0 by [@​dependabot](https://github.com/dependabot) in [https://github.com/mermaid-js/mermaid/pull/3565](https://github.com/mermaid-js/mermaid/pull/3565) - chore(deps): update [@​types/node](https://github.com/types/node) requirement from ^18.7.21 to ^18.8.1 by [@​dependabot](https://github.com/dependabot) in [https://github.com/mermaid-js/mermaid/pull/3566](https://github.com/mermaid-js/mermaid/pull/3566) - chore(deps-dev): update [@​vitest/coverage-c8](https://github.com/vitest/coverage-c8) requirement from ^0.23.2 to ^0.23.4 by [@​dependabot](https://github.com/dependabot) in [https://github.com/mermaid-js/mermaid/pull/3567](https://github.com/mermaid-js/mermaid/pull/3567) - chore(deps-dev): update esbuild requirement from ^0.15.8 to ^0.15.10 by [@​dependabot](https://github.com/dependabot) in [https://github.com/mermaid-js/mermaid/pull/3569](https://github.com/mermaid-js/mermaid/pull/3569) - chore(deps-dev): update typescript requirement from ^4.8.3 to ^4.8.4 by [@​dependabot](https://github.com/dependabot) in [https://github.com/mermaid-js/mermaid/pull/3573](https://github.com/mermaid-js/mermaid/pull/3573) - chore(deps-dev): update [@​applitools/eyes-cypress](https://github.com/applitools/eyes-cypress) requirement from ^3.25.7 to ^3.27.1 by [@​dependabot](https://github.com/dependabot) in [https://github.com/mermaid-js/mermaid/pull/3568](https://github.com/mermaid-js/mermaid/pull/3568) - chore(deps-dev): update vite requirement from ^3.0.9 to ^3.1.4 by [@​dependabot](https://github.com/dependabot) in [https://github.com/mermaid-js/mermaid/pull/3570](https://github.com/mermaid-js/mermaid/pull/3570) - chore(deps-dev): update eslint-plugin-jest requirement from ^27.0.4 to ^27.1.0 by [@​dependabot](https://github.com/dependabot) in [https://github.com/mermaid-js/mermaid/pull/3571](https://github.com/mermaid-js/mermaid/pull/3571) - chore(deps-dev): update [@​commitlint/config-conventional](https://github.com/commitlint/config-conventional) requirement from ^17.0.0 to ^17.1.0 by [@​dependabot](https://github.com/dependabot) in [https://github.com/mermaid-js/mermaid/pull/3572](https://github.com/mermaid-js/mermaid/pull/3572) - Fix `docs:build` and `docs:verify` scripts by [@​aloisklink](https://github.com/aloisklink) in [https://github.com/mermaid-js/mermaid/pull/3534](https://github.com/mermaid-js/mermaid/pull/3534) - Fix husky `pre-commit` rules by [@​aloisklink](https://github.com/aloisklink) in [https://github.com/mermaid-js/mermaid/pull/3536](https://github.com/mermaid-js/mermaid/pull/3536) - Fix typos in README.md by [@​elv-nate](https://github.com/elv-nate) in [https://github.com/mermaid-js/mermaid/pull/3538](https://github.com/mermaid-js/mermaid/pull/3538) - fix(tests): E2E by [@​sidharthv96](https://github.com/sidharthv96) in [https://github.com/mermaid-js/mermaid/pull/3574](https://github.com/mermaid-js/mermaid/pull/3574) - fix: pnpm clean in windows by [@​arpansaha13](https://github.com/arpansaha13) in [https://github.com/mermaid-js/mermaid/pull/3595](https://github.com/mermaid-js/mermaid/pull/3595) - Update Cypress to v10 and fix E2E errors by [@​aloisklink](https://github.com/aloisklink) in [https://github.com/mermaid-js/mermaid/pull/3459](https://github.com/mermaid-js/mermaid/pull/3459) - ci(e2e-applitols): add applitools CI action by [@​aloisklink](https://github.com/aloisklink) in [https://github.com/mermaid-js/mermaid/pull/3483](https://github.com/mermaid-js/mermaid/pull/3483) - Remove webpack & babel by [@​sidharthv96](https://github.com/sidharthv96) in [https://github.com/mermaid-js/mermaid/pull/3452](https://github.com/mermaid-js/mermaid/pull/3452) - Add vitepress plugin by [@​emersonbottero](https://github.com/emersonbottero) in [https://github.com/mermaid-js/mermaid/pull/3476](https://github.com/mermaid-js/mermaid/pull/3476) - ci(e2e): fix e2e action when running from fork by [@​aloisklink](https://github.com/aloisklink) in [https://github.com/mermaid-js/mermaid/pull/3519](https://github.com/mermaid-js/mermaid/pull/3519) - chore(deps-dev): update [@​vitest/ui](https://github.com/vitest/ui) requirement from ^0.23.2 to ^0.23.4 by [@​dependabot](https://github.com/dependabot) in [https://github.com/mermaid-js/mermaid/pull/3549](https://github.com/mermaid-js/mermaid/pull/3549) - chore: Update demo diagrams for monorepo by [@​weedySeaDragon](https://github.com/weedySeaDragon) in [https://github.com/mermaid-js/mermaid/pull/3545](https://github.com/mermaid-js/mermaid/pull/3545) - Sync `docs/` with `packages/mermaid/src/docs` by [@​aloisklink](https://github.com/aloisklink) in [https://github.com/mermaid-js/mermaid/pull/3586](https://github.com/mermaid-js/mermaid/pull/3586) - chore: Add volta by [@​sidharthv96](https://github.com/sidharthv96) in [https://github.com/mermaid-js/mermaid/pull/3628](https://github.com/mermaid-js/mermaid/pull/3628) - chore: Node 18 by [@​sidharthv96](https://github.com/sidharthv96) in [https://github.com/mermaid-js/mermaid/pull/3630](https://github.com/mermaid-js/mermaid/pull/3630) - Configure Renovate by [@​renovate](https://github.com/renovate) in [https://github.com/mermaid-js/mermaid/pull/3627](https://github.com/mermaid-js/mermaid/pull/3627) ##### Docs - Added mermerd to integrations documentation by [@​KarnerTh](https://github.com/KarnerTh) in [https://github.com/mermaid-js/mermaid/pull/3399](https://github.com/mermaid-js/mermaid/pull/3399) - Fix typo in documentation by [@​dbartholomae](https://github.com/dbartholomae) in [https://github.com/mermaid-js/mermaid/pull/3403](https://github.com/mermaid-js/mermaid/pull/3403) - Update duplicate copy pasted directive description by [@​mrmanc](https://github.com/mrmanc) in [https://github.com/mermaid-js/mermaid/pull/3415](https://github.com/mermaid-js/mermaid/pull/3415) - Docs/bug 3417 by [@​weedySeaDragon](https://github.com/weedySeaDragon) in [https://github.com/mermaid-js/mermaid/pull/3419](https://github.com/mermaid-js/mermaid/pull/3419) - Docs: add '..auto generated..' to .html documentation files by [@​weedySeaDragon](https://github.com/weedySeaDragon) in [https://github.com/mermaid-js/mermaid/pull/3420](https://github.com/mermaid-js/mermaid/pull/3420) - Mention obsidian has native support for mermaid by [@​IanLee1521](https://github.com/IanLee1521) in [https://github.com/mermaid-js/mermaid/pull/3513](https://github.com/mermaid-js/mermaid/pull/3513) - docs: replace `yarn` with `pnpm` in dev guide by [@​aloisklink](https://github.com/aloisklink) in [https://github.com/mermaid-js/mermaid/pull/3535](https://github.com/mermaid-js/mermaid/pull/3535) - Corrected theme variables reference table layout by [@​marcastel](https://github.com/marcastel) in [https://github.com/mermaid-js/mermaid/pull/3541](https://github.com/mermaid-js/mermaid/pull/3541) - Working New Documentation Vitepress by [@​emersonbottero](https://github.com/emersonbottero) in [https://github.com/mermaid-js/mermaid/pull/3515](https://github.com/mermaid-js/mermaid/pull/3515) - CODE_OF_CONDUCT Uploaded by [@​swoyam2609](https://github.com/swoyam2609) in [https://github.com/mermaid-js/mermaid/pull/3578](https://github.com/mermaid-js/mermaid/pull/3578) - Automated docs spell-checking via GitHub Actions (and address all reported issues) by [@​SeanKilleen](https://github.com/SeanKilleen) in [https://github.com/mermaid-js/mermaid/pull/3600](https://github.com/mermaid-js/mermaid/pull/3600) - docs:Improved keywords in index.html by [@​aryandeelwal](https://github.com/aryandeelwal) in [https://github.com/mermaid-js/mermaid/pull/3579](https://github.com/mermaid-js/mermaid/pull/3579) - Contribution.md updates by [@​Aniket1026](https://github.com/Aniket1026) in [https://github.com/mermaid-js/mermaid/pull/3614](https://github.com/mermaid-js/mermaid/pull/3614) - docs: Add mermaid version to script URL by [@​sidharthv96](https://github.com/sidharthv96) in [https://github.com/mermaid-js/mermaid/pull/3596](https://github.com/mermaid-js/mermaid/pull/3596) #### New Contributors - [@​KarnerTh](https://github.com/KarnerTh) made their first contribution in [https://github.com/mermaid-js/mermaid/pull/3399](https://github.com/mermaid-js/mermaid/pull/3399) - [@​mrmanc](https://github.com/mrmanc) made their first contribution in [https://github.com/mermaid-js/mermaid/pull/3415](https://github.com/mermaid-js/mermaid/pull/3415) - [@​elliot-nelson](https://github.com/elliot-nelson) made their first contribution in [https://github.com/mermaid-js/mermaid/pull/3479](https://github.com/mermaid-js/mermaid/pull/3479) - [@​emersonbottero](https://github.com/emersonbottero) made their first contribution in [https://github.com/mermaid-js/mermaid/pull/3476](https://github.com/mermaid-js/mermaid/pull/3476) - [@​pje](https://github.com/pje) made their first contribution in [https://github.com/mermaid-js/mermaid/pull/3509](https://github.com/mermaid-js/mermaid/pull/3509) - [@​IanLee1521](https://github.com/IanLee1521) made their first contribution in [https://github.com/mermaid-js/mermaid/pull/3513](https://github.com/mermaid-js/mermaid/pull/3513) - [@​ashleybartlett](https://github.com/ashleybartlett) made their first contribution in [https://github.com/mermaid-js/mermaid/pull/3524](https://github.com/mermaid-js/mermaid/pull/3524) - [@​pbrolin47](https://github.com/pbrolin47) made their first contribution in [https://github.com/mermaid-js/mermaid/pull/3533](https://github.com/mermaid-js/mermaid/pull/3533) - [@​elv-nate](https://github.com/elv-nate) made their first contribution in [https://github.com/mermaid-js/mermaid/pull/3538](https://github.com/mermaid-js/mermaid/pull/3538) - [@​marcastel](https://github.com/marcastel) made their first contribution in [https://github.com/mermaid-js/mermaid/pull/3541](https://github.com/mermaid-js/mermaid/pull/3541) - [@​AndrewL-64](https://github.com/AndrewL-64) made their first contribution in [https://github.com/mermaid-js/mermaid/pull/3544](https://github.com/mermaid-js/mermaid/pull/3544) - [@​swoyam2609](https://github.com/swoyam2609) made their first contribution in [https://github.com/mermaid-js/mermaid/pull/3578](https://github.com/mermaid-js/mermaid/pull/3578) - [@​SeanKilleen](https://github.com/SeanKilleen) made their first contribution in [https://github.com/mermaid-js/mermaid/pull/3600](https://github.com/mermaid-js/mermaid/pull/3600) - [@​aryandeelwal](https://github.com/aryandeelwal) made their first contribution in [https://github.com/mermaid-js/mermaid/pull/3579](https://github.com/mermaid-js/mermaid/pull/3579) - [@​Aniket1026](https://github.com/Aniket1026) made their first contribution in [https://github.com/mermaid-js/mermaid/pull/3614](https://github.com/mermaid-js/mermaid/pull/3614) **Full Changelog**: mermaid-js/mermaid@v9.1.7...v9.2.0 </details> --- ### Configuration 📅 **Schedule**: Branch creation - At any time (no schedule defined), Automerge - At any time (no schedule defined). 🚦 **Automerge**: Disabled by config. Please merge this manually once you are satisfied. ♻ **Rebasing**: Whenever PR becomes conflicted, or you tick the rebase/retry checkbox. 🔕 **Ignore**: Close this PR and you won't be reminded about this update again. --- - [x] <!-- rebase-check -->If you want to rebase/retry this PR, check this box --- This PR has been generated by [Mend Renovate](https://www.mend.io/free-developer-tools/renovate/). View repository job log [here](https://app.renovatebot.com/dashboard#github/BirthdayResearch/contented). <!--renovate-debug:eyJjcmVhdGVkSW5WZXIiOiIzNC4xMi4wIiwidXBkYXRlZEluVmVyIjoiMzQuMTkuMCJ9--> Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
📑 Summary
Adds an eslint rule forbidding using
console
in the mermaid source code. Instead, thesrc/logger
should be used instead, so that websites can disable logging.I've also removed the two instances on
console.log
/console.error
that currently exist in the mermaid source code.Edit: It looks like eslint doesn't scan the
.jison
files. There were a bunch of activeconsole.log
s in c4Diagram.jison, so I've deleted those too. I could also comment them out too if that's preferred. The regexconsole.log\([^\)]*(JSON.stringify\([^\)]*\))?[^\)]*\);
seems to detect them all.Edit2: I've added a jest-fail-on-console to fail jest tests that use
console.log
, since ESLint doesn't scan.jison
filesResolves #3339
📏 Design Decisions
I've kept this as allowed in the
cypress/
anddemos/
folder, because a bunch of.html
files still useconsole.log
.Potential issues:
console.log
can be useful for debugging.yarn test
will now throw an error and prevent tests if use aconsole.log
. Instead, you'd have to useyarn jest src/
which is a bit more verbose..jison
files aren't scanned by ESLint, so we still need to manually check those files. Edit2: As long as these files are run in Jest, thejest-fail-on-console
check should scan for them.console.log
in thec4Diagram.jison
file, should I comment them out instead?📋 Tasks
Make sure you
develop
branch