// npm package
@lint-md/parser
lint-md 的解析器,基于 remark 生态,将 Markdown 字符串转换成 AST
versions
15
maintainers
2
license
MIT
first publish
2022-04-13
publisher
yzl520
tarball
2,005,330 B
AUTO-PUBLISHED·1 version indexed·latest published 2022-11-05
// publisher campaignby yzl520
3 caught packages from this accountThis is not an isolated catch. The same publisher has shipped 2 other packages that our pipeline flagged — the shape of a coordinated campaign, not a one-off. Each link below opens that sibling's analysis.
// offending code· @0.0.14· no static-pattern hits
llm: benign · 0.85→ No suspicious destination, no remote-exec shape — 3 known-vendor host(s).
- @0.0.14··AUTO-PUBLISHED·publisher: yzl520heuristic 75/100static flags 0llm benign (0.85) via ollamamature-packageosv-flagged:MAL-2026-4125
→ No suspicious destination, no remote-exec shape — 3 known-vendor host(s).
// offending code· no static-pattern hits
--- package.json (entry) --- { "name": "@lint-md/parser", "version": "0.0.14", "description": "lint-md 的解析器,基于 remark 生态,将 Markdown 字符串转换成 AST", "author": "yuzhanglong <loveyzl1123@gmail.com>", "contributors": [ "hustcc <i@hust.cc>", "yuzhanglong <loveyzl1123@gmail.com>" ], "homepage": "https://github.com/lint-md", "license": "MIT", "main": "./dist/lint-md-parser.js", "typings": "./dist/lint-md-parser.d.ts", "files": [ "src", "dist" ], "scripts": { "watch": "tsc -w", "build": "rm -rf dist && pnpm run build:dist && pnpm run build:ts-declaration", "build:dist": "webpack --config webpack.config.ts", "build:ts-declaration": "tsc && api-extractor run --local --verbose", "lint": "eslint --ext js,jsx,ts,tsx ./src", "test": "jest" }, "devDependencies": { "@attachments/eslint-config": "^0.3.3", "@microsoft/api-extractor": "^7.23.2", "@types/jest": "^26.0.24", "@types/node": "^16.4.6", "concurrently": "^7.1.0", "eslint": "^8.26.0", "jest": "^27.0.6", "npm-run-all": "^4.1.5", "rimraf": "^3.0.2", "terser-webpack-plugin": "^5.3.1", "ts-jest": "^27.0.4", "ts-loader": "^9.3.0", "ts-node": "^10.1.0", " --- index.js (entry) --- "use strict"; var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) { if (k2 === undefined) k2 = k; var desc = Object.getOwnPropertyDescriptor(m, k); if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) { desc = { enumerable: true, get: function() { return m[k]; } }; } Object.defineProperty(o, k2, desc); }) : (function(o, m, k, k2) { if (k2 === undefined) k2 = k; o[k2] = m[k]; })); var __exportStar = (this && this.__exportStar) || function(m, exports) { for (var p in m) if (p !== "default" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p); }; Object.defineProperty(exports, "__esModule", { value: true }); exports.revertMdAstNode = exports.parseMd = void 0; var parse_md_1 = require("./parse-md"); Object.defineProperty(exports, "parseMd", { enumerable: true, get: function () { return parse_md_1.parseMd; } }); Object.defineProperty(exports, "revertMdAstNode", { enumerable: true, get: function () { return parse_md_1.revertMdAstNode; } }); __exportStar(require("./types"), exports); //# sourceMappingURL=index.js.map --- bundled output (OSV-MAL flagged — LLM scope expansion) --- --- dist/lint-md-parser.d.ts (bundled) --- import type { Parent } from 'unist'; export declare type MarkdownCodeNode = MarkdownNode & { value: string; lang: string; }; export declare type MarkdownLinkNode = MarkdownNode & { url: string; }; export declare type MarkdownListItemNode = MarkdownNode & { children: MarkdownNode[]; }; export declare type MarkdownNode = Parent & any; /** Markdown 节点位置 */ export declare interface MarkdownNodePosition { /** * 所在行(索引从 1 开始) */ line: number; /** * 所在列(索引从 1 开始) */ column: number; } export declare type MarkdownTextNode = MarkdownNode & { value: string; }; /** * 将 Markdown 解析成 ast * * @param {string} md Markdown 文本 * @returns {MarkdownNode} md ast 结构 * @author YuZhanglong <loveyzl1123@gmail.com> */ export declare const parseMd: (md: string) => MarkdownNode; /** * 将 ast 解析成 markdown * * @param {MarkdownNode} node ast 结构 * @returns {string} md Markdown 文本 * @author YuZhanglong <loveyzl1123@gmail.com> */ export declare const revertMdAstNode: (node: MarkdownNode) => string; export { } --- dist/lint-md-parser.js (bundled) --- /******/ (() => { // webpackBootstrap /******/ var __webpack_modules__ = ({ /***/ "./node_modules/.pnpm/debug@4.3.4/node_modules/debug/src/browser.js": /*!**************************************************************************!*\ !*** ./node_modules/.pnpm/debug@4.3.4/node_modules/debug/src/browser.js ***! \**************************************************************************/ /***/ ((module, exports, __webpack_require__) => { /* eslint-env browser */ /** * This is the web browser implementation of `debug()`. */ exports.formatArgs = formatArgs; exports.save = save; exports.load = load; exports.useColors = useColors; exports.storage = localstorage(); exports.destroy = (() => { let warned = false; return () => { if (!warned) { warned = true; console.warn('Instance method `debug.destroy()` is deprecated and no longer does anything. It will be removed in the next major version of `debug`.'); } }; })(); /** * Colors. */ exports.colors = [ '#0000CC', '#0000FF', '#0033CC', '#0033FF', '#0066CC', '#0066FF', '#0099CC', '#0099FF', '#00CC00', '#00CC33', '#00CC66', '#00CC99', '#00CCCC', '#00CCFF', '#3300CC', '#3300FF', '#3333CC', '#3333FF', '#3366CC', '#3366FF', '#3399CC', '#3399FF', '#33CC00', '#33CC33', '#33CC66', '#33CC99', '#33CCCC', '#33CCFF', '#6600CC', '#6600FF', '#6633CC', '#6633FF', '#66CC00', '#66CC33', '#9900CC', '#9900FF', '#9933CC', '#9933FF', '#99CC00', '#99CC33', '#CC0000', '#CC0033', '#CC0066', '#CC0099', '#CC00CC', '#CC00FF', '#CC3300', '#CC3333', '#CC3366', '#CC3399', '#CC33CC', '#CC33FF', '#CC6600', '#CC6633', '#CC9900', '#CC9933', '#CCCC00', '#CCCC33', '#FF0000', '#FF0033', '#FF0066', '#FF0099', '#FF00CC', '#FF00FF', '#FF3300', '#FF3333', '#FF3366', '#FF3399', '#FF33CC', '#FF33FF', '#FF6600', '#FF6633', '#FF9900', '#FF9933', '#FFCC00', '#FFCC33' ]; /** * Currently only WebKit-based Web Inspectors, Firefox >= v31, * and the Firebug extension (any --- dist/tmp/index.d.ts (bundled) --- export { parseMd, revertMdAstNode } from './parse-md'; export * from './types'; --- dist/tmp/index.js (bundled) --- "use strict"; var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) { if (k2 === undefined) k2 = k; var desc = Object.getOwnPropertyDescriptor(m, k); if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) { desc = { enumerable: true, get: function() { return m[k]; } }; } Object.defineProperty(o, k2, desc); }) : (function(o, m, k, k2) { if (k2 === undefined) k2 = k; o[k2] = m[k]; })); var __exportStar = (this && this.__exportStar) || function(m, exports) { for (var p in m) if (p !== "default" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p); }; Object.defineProperty(exports, "__esModule", { value: true }); exports.revertMdAstNode = exports.parseMd = void 0; var parse_md_1 = require("./parse-md"); Object.defineProperty(exports, "parseMd", { enumerable: true, get: function () { return parse_md_1.parseMd; } }); Object.defineProperty(exports, "revertMdAstNode", { enumerable: true, get: function () { return parse_md_1.revertMdAstNode; } }); __exportStar(require("./types"), exports); //# sourceMappingURL=index.js.map --- dist/tmp/parse-md.d.ts (bundled) --- import type { MarkdownNode } from './types'; /** * 将 Markdown 解析成 ast * * @param {string} md Markdown 文本 * @returns {MarkdownNode} md ast 结构 * @author YuZhanglong <loveyzl1123@gmail.com> */ export declare const parseMd: (md: string) => MarkdownNode; /** * 将 ast 解析成 markdown * * @param {MarkdownNode} node ast 结构 * @returns {string} md Markdown 文本 * @author YuZhanglong <loveyzl1123@gmail.com> */ export declare const revertMdAstNode: (node: MarkdownNode) => string; --- dist/tmp/parse-md.js (bundled) --- "use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports.revertMdAstNode = exports.parseMd = void 0; const remark_frontmatter_1 = require("remark-frontmatter"); const remark_gfm_1 = require("remark-gfm"); const remark_directive_1 = require("remark-directive"); const remark_math_1 = require("remark-math"); const remark_1 = require("remark"); const mdast_util_gfm_autolink_literal_1 = require("mdast-util-gfm-autolink-literal"); // https://github.com/remarkjs/remark-gfm/issues/16,解决某些 text 节点没有 position 的问题 mdast_util_gfm_autolink_literal_1.gfmAutolinkLiteralFromMarkdown.transforms = []; const depsLink = (0, remark_1.remark)() .use(remark_frontmatter_1.default) .use(remark_gfm_1.default) .use(remark_directive_1.default) .use(remark_math_1.default); /** * 将 Markdown 解析成 ast * * @param {string} md Markdown 文本 * @returns {MarkdownNode} md ast 结构 * @author YuZhanglong <loveyzl1123@gmail.com> */ const parseMd = (md) => { return depsLink.parse(md); }; exports.parseMd = parseMd; /** * 将 ast 解析成 markdown * * @param {MarkdownNode} node ast 结构 * @returns {string} md Markdown 文本 * @author YuZhanglong <loveyzl1123@gmail.com> */ const revertMdAstNode = (node) => { return depsLink.stringify(node); }; exports.revertMdAstNode = revertMdAstNode; //# sourceMappingURL=parse-md.js.map --- dist/tmp/types.d.ts (bundled) --- import type { Parent } from 'unist'; export declare type MarkdownNode = Parent & any; /** Markdown 节点位置 */ export interface MarkdownNodePosition { /** * 所在行(索引从 1 开始) */ line: number; /** * 所在列(索引从 1 开始) */ column: number; } export declare type MarkdownCodeNode = MarkdownNode & { value: string; lang: string; }; export declare type MarkdownListItemNode = MarkdownNode & { children: MarkdownNode[]; }; export declare type MarkdownLinkNode = MarkdownNode & { url: string; }; export declare type MarkdownTextNode = MarkdownNode & { value: string; }; --- dist/tmp/types.js (bundled) --- "use strict"; Object.defineProperty(exports, "__esModule", { value: true }); //# sourceMappingURL=types.js.map
