// npm 패키지
@antv/g-pattern
A pattern libs for G
버전
113
메인테이너
51
라이선스
MIT
최초 publish
2022-11-18
publisher
alex_zjt
tarball
75,828 B
AUTO-PUBLISHED·1개 버전 인덱싱됨·최근 publish: 2025-12-15
// publisher 캠페인by alex_zjt
이 계정에서 catch된 패키지 9건고립된 catch가 아닙니다. 동일 publisher가 8개의 다른 패키지를 추가로 발행했고, 모두 파이프라인이 catch했습니다 — 일회성이 아닌 조직적 캠페인의 형태. 아래 링크는 각 형제 catch의 분석으로 이동합니다.
// offending code· @2.0.39-beta.0· 1 file flagged
llm: benign · 0.85→ 의심 전송지 없음, 원격 실행 형태 없음 — 2 known-vendor host(s).
- @2.0.39-beta.0··AUTO-PUBLISHED·publisher: alex_zjtheuristic 75/100static flags 1llm benign (0.85) via ollamamature-packageosv-flagged:MAL-2026-3929public-github-push
→ 의심 전송지 없음, 원격 실행 형태 없음 — 2 known-vendor host(s).
// offending code· 1 file flaggedpatterns: 1
--- package/package.json (excerpt) --- { "name": "@antv/g-pattern", "version": "2.0.39-beta.0", "description": "A pattern libs for G", "keywords": [ "antv", "g" ], "homepage": "https://github.com/antvis/g#readme", "bugs": { "url": "https://github.com/antvis/g/issues" }, "repository": { "type": "git", "url": "git+https://github.com/antvis/g.git" }, "license": "MIT", "author": "https://github.com/orgs/antvis/people", "exports": { "types": "./types/index.d.ts", "import": "./dist/index.esm.js", "default": "./dist/index.js" }, "main": "dist/index.js", "unpkg": "dist/index.umd.min.js", "module": "dist/index.esm.js", "types": "types/index.d.ts", "files": [ "package.json", "dist", "types", "LICENSE", "README.md" ], "dependencies": { "@antv/util": "^3.3.5", "@babel/runtime": "^7.25.6", "tslib": "^2.5.3", "@antv/g-lite": "2.3.3-beta.2" }, "publishConfig": { "access": "public" }, "scripts": { "build:types": "tsc --emitDeclarationOnly --noCheck", "build": "npm run clean && npm run build:types && rollup -c", "clean": "rimraf dist", "sync": "tnpm sync", "watch": "rollup -c -w" } } --- package.json (entry) --- { "name": "@antv/g-pattern", "version": "2.0.39-beta.0", "description": "A pattern libs for G", "keywords": [ "antv", "g" ], "homepage": "https://github.com/antvis/g#readme", "bugs": { "url": "https://github.com/antvis/g/issues" }, "repository": { "type": "git", "url": "git+https://github.com/antvis/g.git" }, "license": "MIT", "author": "https://github.com/orgs/antvis/people", "exports": { "types": "./types/index.d.ts", "import": "./dist/index.esm.js", "default": "./dist/index.js" }, "main": "dist/index.js", "unpkg": "dist/index.umd.min.js", "module": "dist/index.esm.js", "types": "types/index.d.ts", "files": [ "package.json", "dist", "types", "LICENSE", "README.md" ], "dependencies": { "@antv/util": "^3.3.5", "@babel/runtime": "^7.25.6", "tslib": "^2.5.3", "@antv/g-lite": "2.3.3-beta.2" }, "publishConfig": { "access": "public" }, "scripts": { "build:types": "tsc --emitDeclarationOnly --noCheck", "build": "npm run clean && npm run build:types && rollup -c", "clean": "rimraf dist", "sync": "tnpm sync", "watch": "rollup -c -w" } } --- index.js (entry) --- /*! * @antv/g-pattern * @description A pattern libs for G * @version 2.0.39-beta.0 * @date 12/12/2025, 2:49:21 PM * @author AntVis * @docs https://g.antv.antgroup.com/ */ 'use strict'; var _slicedToArray = require('@babel/runtime/helpers/slicedToArray'); var _createForOfIteratorHelper = require('@babel/runtime/helpers/createForOfIteratorHelper'); var _objectSpread = require('@babel/runtime/helpers/objectSpread2'); var gLite = require('@antv/g-lite'); /** * 计算贴图单元大小 * * @param size 元素大小 * @param padding 圆点间隔 * @param isStagger 是否交错 * @reutrn 返回贴图单元大小 */ function getUnitPatternSize(size, padding, isStagger) { // 如果交错, unitSize 放大两倍 var unitSize = size + padding; return isStagger ? unitSize * 2 : unitSize; } /** * 计算有交错情况的元素坐标 * * @param unitSize 贴图单元大小 * @param isStagger 是否交错 * @reutrn 元素中心坐标 x,y 数组集合 */ function getSymbolsPosition(unitSize, isStagger) { // 如果交错, 交错绘制 dot var symbolsPos = isStagger ? [[unitSize * (1 / 4), unitSize * (1 / 4)], [unitSize * (3 / 4), unitSize * (3 / 4)]] : [[unitSize * (1 / 2), unitSize * (1 / 2)]]; return symbolsPos; } var defaultDotPatternCfg = { size: 6, padding: 2, backgroundColor: 'transparent', opacity: 1 --- bundled output (OSV-MAL flagged — LLM scope expansion) --- --- dist/index.esm.js (bundled) --- /*! * @antv/g-pattern * @description A pattern libs for G * @version 2.0.39-beta.0 * @date 12/12/2025, 2:49:21 PM * @author AntVis * @docs https://g.antv.antgroup.com/ */ import _slicedToArray from '@babel/runtime/helpers/slicedToArray'; import _createForOfIteratorHelper from '@babel/runtime/helpers/createForOfIteratorHelper'; import _objectSpread from '@babel/runtime/helpers/objectSpread2'; import { Rect, Circle, Path } from '@antv/g-lite'; /** * 计算贴图单元大小 * * @param size 元素大小 * @param padding 圆点间隔 * @param isStagger 是否交错 * @reutrn 返回贴图单元大小 */ function getUnitPatternSize(size, padding, isStagger) { // 如果交错, unitSize 放大两倍 var unitSize = size + padding; return isStagger ? unitSize * 2 : unitSize; } /** * 计算有交错情况的元素坐标 * * @param unitSize 贴图单元大小 * @param isStagger 是否交错 * @reutrn 元素中心坐标 x,y 数组集合 */ function getSymbolsPosition(unitSize, isStagger) { // 如果交错, 交错绘制 dot var symbolsPos = isStagger ? [[unitSize * (1 / 4), unitSize * (1 / 4)], [unitSize * (3 / 4), unitSize * (3 / 4)]] : [[unitSize * (1 / 2), unitSize * (1 / 2)]]; return symbolsPos; } var defaultDotPatternCfg = { size: 6, padding: 2, backgroundColor: 'transparent', opacity: 1, fill: '#fff', fillOpacity: 1, stroke: 'transparent', strokeOpacity: 1, lineWidth: 0, isStagger: true }; function dots(cfg) { var dotCfg = _objectSpread(_objectSpread({}, defaultDotPatternCfg), cfg); var size = dotCfg.size, padding = dotCfg.padding, isStagger = dotCfg.isStagger, backgroundColor = dotCfg.backgroundColor, backgroundOpacity = dotCfg.backgroundOpacity, opacity = dotCfg.opacity, fill = dotCfg.fill, fillOpacity = dotCfg.fillOpacity, lineWidth = dotCfg.lineWidth, stroke = dotCfg.stroke, strokeOpacity = dotCfg.strokeOpacity; // 计算 画布大小,dots的位置 var unitSize = getUnitPatternSize(size, padding, isStagger); var dots = getSymbolsPosition(unitSize, isStagger); var background = new Rect({ style: { width: unitSize, he --- dist/index.js (bundled) --- /*! * @antv/g-pattern * @description A pattern libs for G * @version 2.0.39-beta.0 * @date 12/12/2025, 2:49:21 PM * @author AntVis * @docs https://g.antv.antgroup.com/ */ 'use strict'; var _slicedToArray = require('@babel/runtime/helpers/slicedToArray'); var _createForOfIteratorHelper = require('@babel/runtime/helpers/createForOfIteratorHelper'); var _objectSpread = require('@babel/runtime/helpers/objectSpread2'); var gLite = require('@antv/g-lite'); /** * 计算贴图单元大小 * * @param size 元素大小 * @param padding 圆点间隔 * @param isStagger 是否交错 * @reutrn 返回贴图单元大小 */ function getUnitPatternSize(size, padding, isStagger) { // 如果交错, unitSize 放大两倍 var unitSize = size + padding; return isStagger ? unitSize * 2 : unitSize; } /** * 计算有交错情况的元素坐标 * * @param unitSize 贴图单元大小 * @param isStagger 是否交错 * @reutrn 元素中心坐标 x,y 数组集合 */ function getSymbolsPosition(unitSize, isStagger) { // 如果交错, 交错绘制 dot var symbolsPos = isStagger ? [[unitSize * (1 / 4), unitSize * (1 / 4)], [unitSize * (3 / 4), unitSize * (3 / 4)]] : [[unitSize * (1 / 2), unitSize * (1 / 2)]]; return symbolsPos; } var defaultDotPatternCfg = { size: 6, padding: 2, backgroundColor: 'transparent', opacity: 1, fill: '#fff', fillOpacity: 1, stroke: 'transparent', strokeOpacity: 1, lineWidth: 0, isStagger: true }; function dots(cfg) { var dotCfg = _objectSpread(_objectSpread({}, defaultDotPatternCfg), cfg); var size = dotCfg.size, padding = dotCfg.padding, isStagger = dotCfg.isStagger, backgroundColor = dotCfg.backgroundColor, backgroundOpacity = dotCfg.backgroundOpacity, opacity = dotCfg.opacity, fill = dotCfg.fill, fillOpacity = dotCfg.fillOpacity, lineWidth = dotCfg.lineWidth, stroke = dotCfg.stroke, strokeOpacity = dotCfg.strokeOpacity; // 计算 画布大小,dots的位置 var unitSize = getUnitPatternSize(size, padding, isStagger); var dots = getSymbolsPosition(unitSize, isStagger); var background = new gLite.Rect({ style: { width: un --- dist/index.umd.min.js (bundled) --- /*! * @antv/g-pattern * @description A pattern libs for G * @version 2.0.39-beta.0 * @date 12/12/2025, 2:49:21 PM * @author AntVis * @docs https://g.antv.antgroup.com/ */ !function(t,e){"object"==typeof exports&&"undefined"!=typeof module?e(exports,require("@antv/g-lite")):"function"==typeof define&&define.amd?define(["exports","@antv/g-lite"],e):e(((t="undefined"!=typeof globalThis?globalThis:t||self).G=t.G||{},t.G.Pattern={}),t.window.G)}(this,function(t,e){"use strict";function r(t,e){(null==e||e>t.length)&&(e=t.length);for(var r=0,n=Array(e);e>r;r++)n[r]=t[r];return n}function n(t,e){if(t){if("string"==typeof t)return r(t,e);var n={}.toString.call(t).slice(8,-1);return"Object"===n&&t.constructor&&(n=t.constructor.name),"Map"===n||"Set"===n?Array.from(t):"Arguments"===n||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)?r(t,e):void 0}}function i(t,e){return function(t){if(Array.isArray(t))return t}(t)||function(t,e){var r=null==t?null:"undefined"!=typeof Symbol&&t[Symbol.iterator]||t["@@iterator"];if(null!=r){var n,i,o,a,l=[],c=!0,f=!1;try{if(o=(r=r.call(t)).next,0===e){if(Object(r)!==r)return;c=!1}else for(;!(c=(n=o.call(r)).done)&&(l.push(n.value),l.length!==e);c=!0);}catch(t){f=!0,i=t}finally{try{if(!c&&null!=r.return&&(a=r.return(),Object(a)!==a))return}finally{if(f)throw i}}return l}}(t,e)||n(t,e)||function(){throw new TypeError("Invalid attempt to destructure non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}()}function o(t,e){var r="undefined"!=typeof Symbol&&t[Symbol.iterator]||t["@@iterator"];if(!r){if(Array.isArray(t)||(r=n(t))||e&&t&&"number"==typeof t.length){r&&(t=r);var i=0,o=function(){};return{s:o,n:function(){return t.length>i?{done:!1,value:t[i++]}:{done:!0}},e:function(t){throw t},f:o}}throw new TypeError("Invalid attempt to iterate non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}var a,l=!0,c=!1;return{s:function(){r=r
