UNPKG

quikdown

Version:

Small, safe, bidirectional Markdown parser and editor with streaming, undo/redo, rich fences, MCP tools, and a standalone airgapped build. Zero runtime deps. Browser and Node.js.

295 lines (294 loc) 9.8 kB
{ "name": "quikdown", "version": "1.2.21", "description": "Small, safe, bidirectional Markdown parser and editor with streaming, undo/redo, rich fences, MCP tools, and a standalone airgapped build. Zero runtime deps. Browser and Node.js.", "author": "deftio (https://github.com/deftio)", "license": "BSD-2-Clause", "repository": { "type": "git", "url": "git://github.com/deftio/quikdown.git" }, "bugs": { "url": "https://github.com/deftio/quikdown/issues" }, "homepage": "https://deftio.github.io/quikdown/pages/", "keywords": [ "markdown", "markdown-parser", "markdown-editor", "markdown-to-html", "markdown-bidirectional", "markdown-mermaid", "markdown-code", "md", "parser", "editor", "bidirectional", "html", "commonmark", "gfm", "task-lists", "xss-protection", "xss-safe", "lightweight", "zero-dependencies", "browser", "nodejs", "node", "plugin", "fence", "autolink", "sanitization", "streaming", "llm", "offline", "standalone", "airgapped", "undo-redo", "mcp", "model-context-protocol" ], "main": "dist/quikdown.cjs", "module": "dist/quikdown.esm.js", "unpkg": "dist/quikdown.umd.min.js", "browser": "dist/quikdown.umd.min.js", "types": "dist/quikdown.d.ts", "exports": { ".": { "import": "./dist/quikdown.esm.js", "require": "./dist/quikdown.cjs", "browser": "./dist/quikdown.umd.min.js", "types": "./dist/quikdown.d.ts" }, "./bd": { "import": "./dist/quikdown_bd.esm.js", "require": "./dist/quikdown_bd.cjs", "browser": "./dist/quikdown_bd.umd.min.js", "types": "./dist/quikdown_bd.d.ts" }, "./edit": { "import": "./dist/quikdown_edit.esm.js", "require": "./dist/quikdown_edit.cjs", "browser": "./dist/quikdown_edit.umd.min.js", "types": "./dist/quikdown_edit.d.ts" }, "./ast": { "import": "./dist/quikdown_ast.esm.js", "require": "./dist/quikdown_ast.cjs", "browser": "./dist/quikdown_ast.umd.min.js", "types": "./dist/quikdown_ast.d.ts" }, "./json": { "import": "./dist/quikdown_json.esm.js", "require": "./dist/quikdown_json.cjs", "browser": "./dist/quikdown_json.umd.min.js", "types": "./dist/quikdown_json.d.ts" }, "./yaml": { "import": "./dist/quikdown_yaml.esm.js", "require": "./dist/quikdown_yaml.cjs", "browser": "./dist/quikdown_yaml.umd.min.js", "types": "./dist/quikdown_yaml.d.ts" }, "./ast-html": { "import": "./dist/quikdown_ast_html.esm.js", "require": "./dist/quikdown_ast_html.cjs", "browser": "./dist/quikdown_ast_html.umd.min.js", "types": "./dist/quikdown_ast_html.d.ts" }, "./mcp": { "import": "./dist/quikdown_mcp.esm.js", "require": "./dist/quikdown_mcp.cjs", "types": "./dist/quikdown_mcp.d.ts" }, "./package.json": "./package.json" }, "bin": { "quikdown-mcp": "./bin/quikdown-mcp" }, "files": [ "dist", "bin" ], "type": "module", "directories": { "examples": "examples" }, "scripts": { "test": "NODE_NO_WARNINGS=1 jest --coverage && node tools/updateBadges.js", "test:quikdown": "NODE_NO_WARNINGS=1 jest tests/quikdown.test.js tests/quikdown_parser_gaps.test.js tests/quikdown_100pct.test.js --coverage", "test:bd": "NODE_NO_WARNINGS=1 jest tests/quikdown_bd.test.js --coverage", "test:editor": "NODE_NO_WARNINGS=1 jest tests/quikdown_edit_esm.test.js --coverage", "test:all": "NODE_NO_WARNINGS=1 jest tests/quikdown.test.js tests/quikdown_bd.test.js tests/quikdown_edit_esm.test.js --coverage", "test:ast": "NODE_NO_WARNINGS=1 jest --testPathPattern='quikdown_ast|quikdown_json|quikdown_yaml|quikdown_ast_html' --coverage", "test:coverage": "NODE_NO_WARNINGS=1 jest tests/quikdown.test.js tests/quikdown_bd.test.js tests/quikdown_edit_esm.test.js --coverage --coverageReporters=text-summary", "test:unit": "jest --coverage", "test:e2e": "npx playwright test --config=playwright.config.cjs --grep-invert @coverage", "test:standalone:e2e": "npx playwright test tests/quikdown-standalone.spec.js --config=playwright.config.cjs", "test:e2e:full": "npx playwright test --config=playwright.config.cjs --grep-invert @coverage", "test:editor:e2e": "npx playwright test tests/quikdown-editor.spec.js", "updateVersion": "node ./tools/updateVersion", "updateBadges": "node ./tools/updateBadges.js", "feature": "bash ./tools/feature.sh", "release": "bash ./tools/release.sh", "release:no-playwright": "SKIP_PLAYWRIGHT=1 bash ./tools/release.sh", "release:legacy": "node ./tools/createRelease.js", "tag": "./tools/createTag.sh", "docs:api": "npx jsdoc src/quikdown.js -d docs/api", "build": "npm run lint && npm run updateVersion && rollup -c && npm run css && npm run sizes && npm run updateBadges && npm run buildSite", "dev": "npx bwcli serve . -p 6811", "serve": "npx bwcli serve . -p 6811", "buildSite": "node ./tools/buildSite.js", "build:basemap": "node tools/buildBasemap.cjs", "build:standalone": "npm run build:basemap && NODE_OPTIONS='--max-old-space-size=8192' rollup -c rollup.config.standalone.js", "build:all": "npm run build && npm run build:standalone", "build:css": "node tools/generateThemeCSS.js", "minify:css": "node tools/minifyThemeCSS.js", "css": "npm run build:css && npm run minify:css", "test:perf": "node tests/performance-benchmark.js", "lint": "eslint src/", "verify:package": "node tools/verifyPackage.cjs", "verify:standalone": "node tools/checkStandalone.cjs", "verify:types": "tsc --noEmit -p tests/fixtures/ts-consumer/tsconfig.json", "verify:release": "node tools/verifyPackage.cjs --release && node tools/checkStandalone.cjs", "build:airgap": "node tools/buildAirgapZip.cjs", "sizes": "node tools/printSizes.cjs", "clean": "node tools/clean.cjs", "prepare": "husky", "build:coverage": "rollup -c rollup.config.coverage.js", "test:e2e:coverage": "npx playwright test --grep @coverage --config=playwright.config.cjs --project=chromium", "coverage:merge": "node tools/mergeCoverage.cjs", "coverage:full": "npm run build:coverage && npm run test:e2e:coverage && npm test && npm run coverage:merge" }, "jest": { "testEnvironment": "jsdom", "setupFilesAfterEnv": [ "<rootDir>/tests/setup.js" ], "testPathIgnorePatterns": [ "/node_modules/", "/tests/.*\\.spec\\.js$", "/dev/lex-old-dev/" ], "transform": { "^.+\\.js$": "babel-jest" }, "collectCoverage": true, "collectCoverageFrom": [ "dist/quikdown.esm.js", "dist/quikdown_bd.esm.js", "dist/quikdown_edit.esm.js", "dist/quikdown_ast.esm.js", "dist/quikdown_json.esm.js", "dist/quikdown_yaml.esm.js", "dist/quikdown_ast_html.esm.js", "dist/quikdown_mcp.esm.js" ], "coverageDirectory": "coverage", "coverageReporters": [ "html", "text", "lcov", "json-summary", "json" ], "coveragePathIgnorePatterns": [ "/node_modules/" ], "coverageThreshold": { "./dist/quikdown.esm.js": { "lines": 99, "functions": 100, "branches": 99, "statements": 99 }, "./dist/quikdown_bd.esm.js": { "lines": 94, "functions": 94, "branches": 90, "statements": 94 }, "./dist/quikdown_edit.esm.js": { "lines": 76, "functions": 82, "branches": 70, "statements": 76 }, "./dist/quikdown_ast.esm.js": { "lines": 98, "functions": 100, "branches": 89, "statements": 95 }, "./dist/quikdown_json.esm.js": { "lines": 98, "functions": 100, "branches": 81, "statements": 91 }, "./dist/quikdown_yaml.esm.js": { "lines": 98, "functions": 100, "branches": 86, "statements": 92 }, "./dist/quikdown_ast_html.esm.js": { "lines": 99, "functions": 100, "branches": 87, "statements": 94 }, "./dist/quikdown_mcp.esm.js": { "lines": 90, "functions": 80, "branches": 90, "statements": 90 } } }, "devDependencies": { "@babel/core": "^7.29.0", "@babel/preset-env": "^7.29.2", "@babel/preset-react": "^7.28.5", "@eslint/js": "^10.0.1", "@playwright/test": "^1.59.1", "@rollup/plugin-babel": "^7.0.0", "@rollup/plugin-commonjs": "^29.0.2", "@rollup/plugin-json": "^6.1.0", "@rollup/plugin-node-resolve": "^16.0.3", "@rollup/plugin-terser": "^1.0.0", "abcjs": "^6.4.0", "babel-jest": "^30.3.0", "bitwrench": "^2.0.31", "clean-css": "^5.3.3", "clean-css-cli": "^5.6.3", "cssnano": "^7.1.5", "dompurify": "^3.4.0", "eslint": "^10.2.1", "eslint-plugin-security": "^4.0.0", "globals": "^17.5.0", "highlight.js": "^11.11.1", "husky": "^9.1.7", "jest": "^30.3.0", "jest-environment-jsdom": "^30.3.0", "jsdom": "^26.1.0", "leaflet": "^1.9.4", "mathjax-full": "^3.2.2", "mermaid": "^11.14.0", "playwright": "^1.59.1", "rollup": "^4.60.2", "rollup-plugin-css-only": "^4.5.5", "rollup-plugin-polyfill-node": "^0.13.0", "rollup-plugin-postcss": "^4.0.2", "sane-topojson": "^4.0.0", "three": "^0.184.0", "topojson-client": "^3.1.0", "topojson-server": "^3.0.1", "typescript": "^6.0.3", "vega": "^5.30.0", "vega-embed": "^6.26.0", "vega-lite": "^5.21.0", "world-atlas": "^2.0.2", "ws": "^8.20.1" } }