// npm 패키지
@antv/g-base
A common util collection for antv projects
버전
71
메인테이너
51
라이선스
ISC
최초 publish
2019-09-27
publisher
panyuqi
tarball
835,970 B
AUTO-PUBLISHED·1개 버전 인덱싱됨·최근 publish: 2024-03-08
// publisher 캠페인by panyuqi
이 계정에서 catch된 패키지 9건고립된 catch가 아닙니다. 동일 publisher가 8개의 다른 패키지를 추가로 발행했고, 모두 파이프라인이 catch했습니다 — 일회성이 아닌 조직적 캠페인의 형태. 아래 링크는 각 형제 catch의 분석으로 이동합니다.
// offending code· @0.5.16· 1 file flagged
llm: benign · 0.85→ 의심 전송지 없음, 원격 실행 형태 없음 — 1 known-vendor host(s).
- @0.5.16··AUTO-PUBLISHED·publisher: panyuqiheuristic 75/100static flags 1llm benign (0.85) via ollamamature-packageosv-flagged:MAL-2026-3909public-github-push
→ 의심 전송지 없음, 원격 실행 형태 없음 — 1 known-vendor host(s).
// offending code· 1 file flaggedpatterns: 1
--- package/package.json (excerpt) --- { "name": "@antv/g-base", "version": "0.5.16", "description": "A common util collection for antv projects", "main": "lib/index.js", "module": "esm/index.js", "types": "lib/index.d.ts", "files": [ "src", "package.json", "esm", "lib", "LICENSE", "README.md" ], "scripts": { "build": "npm run clean && run-p build:*", "build:esm": "tsc -p tsconfig.json --target ES5 --module ESNext --outDir esm", "build:cjs": "tsc -p tsconfig.json --target ES5 --module commonjs --outDir lib", "clean": "rm -rf esm lib", "watch:cjs": "tsc-watch -p tsconfig.json --target ES5 --module commonjs --outDir lib --compiler typescript/bin/tsc", "coverage": "npm run coverage-generator && npm run coverage-viewer", "coverage-generator": "torch --coverage --compile --source-pattern src/*.js,src/**/*.js --opts tests/mocha.opts", "coverage-viewer": "torch-coverage", "test": "torch --renderer --compile --opts tests/mocha.opts", "test-live": "torch --compile --interactive tests/unit", "tsc": "tsc --noEmit", "typecheck": "tsc --noEmit" }, "repository": { "type": "git", "url": "git+https://github.com/antvis/util.git" }, "keywords": [ "util", "antv", "g" ], "publishConfig": { "access": "public" }, "author": "https://github.com/orgs/antvis/people", "license": "ISC", "bugs": { "url": "https://github.com/antvis/util/issues" }, "devDependencies": { "@antv/torch": "^1.0.0", "gl --- bundled output (OSV-MAL flagged — LLM scope expansion) --- --- lib/event/event-contoller.js (bundled) --- "use strict"; Object.defineProperty(exports, "__esModule", { value: true }); /** * @fileoverview 事件处理器 * @author dxq613@gmail.com */ var graph_event_1 = require("./graph-event"); var util_1 = require("../util/util"); var CLICK_OFFSET = 40; var LEFT_BTN_CODE = 0; var DELEGATION_SPLIT = ':'; var EVENTS = [ 'mousedown', 'mouseup', 'dblclick', 'mouseout', 'mouseover', 'mousemove', 'mouseleave', 'mouseenter', 'touchstart', 'touchmove', 'touchend', 'dragenter', 'dragover', 'dragleave', 'drop', 'contextmenu', 'mousewheel', ]; // 是否有委托事件监听 function hasDelegation(events, type) { for (var key in events) { if (events.hasOwnProperty(key) && key.indexOf(DELEGATION_SPLIT + type) >= 0) { return true; } } return false; } // 触发目标事件,目标只能是 shape 或 canvas function emitTargetEvent(target, type, eventObj) { eventObj.name = type; eventObj.target = target; eventObj.currentTarget = target; eventObj.delegateTarget = target; target.emit(type, eventObj); } // 事件冒泡, enter 和 leave 需要对 fromShape 和 toShape 进行判同 function bubbleEvent(container, type, eventObj) { if (eventObj.bubbles) { var relativeShape = void 0; var isOverEvent = false; if (type === 'mouseenter') { relativeShape = eventObj.fromShape; isOverEvent = true; } else if (type === 'mouseleave') { isOverEvent = true; relativeShape = eventObj.toShape; } // canvas 上的 mouseenter, mouseleave 事件,仅当进入或者移出 canvas 时触发 if (container.isCanvas() && isOverEvent) { return; } // 如果相关图形同当前图形在同一个容器内,不触发事件 if (relativeShape && util_1.isParent(container, relativeShape)) { // 阻止继续向上冒泡 eventObj.bubbles = false; return; } // 事件名称可能在委托过程中被修改,因此事件冒泡时需要重新设置事件名称 eventObj.name = type; eventObj.currentTarget = container; --- esm/event/event-contoller.js (bundled) --- /** * @fileoverview 事件处理器 * @author dxq613@gmail.com */ import GraphEvent from './graph-event'; import { each, isParent } from '../util/util'; var CLICK_OFFSET = 40; var LEFT_BTN_CODE = 0; var DELEGATION_SPLIT = ':'; var EVENTS = [ 'mousedown', 'mouseup', 'dblclick', 'mouseout', 'mouseover', 'mousemove', 'mouseleave', 'mouseenter', 'touchstart', 'touchmove', 'touchend', 'dragenter', 'dragover', 'dragleave', 'drop', 'contextmenu', 'mousewheel', ]; // 是否有委托事件监听 function hasDelegation(events, type) { for (var key in events) { if (events.hasOwnProperty(key) && key.indexOf(DELEGATION_SPLIT + type) >= 0) { return true; } } return false; } // 触发目标事件,目标只能是 shape 或 canvas function emitTargetEvent(target, type, eventObj) { eventObj.name = type; eventObj.target = target; eventObj.currentTarget = target; eventObj.delegateTarget = target; target.emit(type, eventObj); } // 事件冒泡, enter 和 leave 需要对 fromShape 和 toShape 进行判同 function bubbleEvent(container, type, eventObj) { if (eventObj.bubbles) { var relativeShape = void 0; var isOverEvent = false; if (type === 'mouseenter') { relativeShape = eventObj.fromShape; isOverEvent = true; } else if (type === 'mouseleave') { isOverEvent = true; relativeShape = eventObj.toShape; } // canvas 上的 mouseenter, mouseleave 事件,仅当进入或者移出 canvas 时触发 if (container.isCanvas() && isOverEvent) { return; } // 如果相关图形同当前图形在同一个容器内,不触发事件 if (relativeShape && isParent(container, relativeShape)) { // 阻止继续向上冒泡 eventObj.bubbles = false; return; } // 事件名称可能在委托过程中被修改,因此事件冒泡时需要重新设置事件名称 eventObj.name = type; eventObj.currentTarget = container; eventObj.delegateTarget = container; container.emit(type, eventObj
