// npm package
@antv/wx-f2
F2 for weixin mini-program
versions
17
maintainers
51
license
MIT
first publish
2018-10-21
publisher
zengyue
tarball
464,386 B
AUTO-PUBLISHED·1 version indexed·latest published 2020-08-27
// publisher campaignby zengyue
9 caught packages from this accountThis is not an isolated catch. The same publisher has shipped 8 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· @2.1.1· 1 file flagged
llm: benign · 0.85→ No suspicious destination, no remote-exec shape — 3 known-vendor host(s).
- @2.1.1··AUTO-PUBLISHED·publisher: zengyueheuristic 75/100static flags 1llm benign (0.85) via ollamamature-packageosv-flagged:MAL-2026-4097child-process-spawn
→ No suspicious destination, no remote-exec shape — 3 known-vendor host(s).
// offending code· 1 file flaggedpatterns: 1
--- package/src/index.js (excerpt) --- import F2 from '@antv/f2'; function wrapEvent(e) { if (!e) return; if (!e.preventDefault) { e.preventDefault = function() {}; } return e; } Component({ /** * 组件的属性列表 */ properties: { onInit: { type: 'Function', value: () => {} } }, /** * 组件的初始数据 */ data: { }, ready() { const query = wx.createSelectorQuery().in(this); query.select('.f2-canvas') .fields({ node: true, size: true }) .exec(res => { const { node, width, height } = res[0]; const context = node.getContext('2d'); const pixelRatio = wx.getSystemInfoSync().pixelRatio; // 高清设置 node.width = width * pixelRatio; node.height = height * pixelRatio; const config = { context, width, height, pixelRatio }; const chart = this.data.onInit(F2, config); if (chart) { this.chart = chart; this.canvasEl = chart.get('el'); } }); }, /** * 组件的方法列表 */ methods: { touchStart(e) { const canvasEl = this.canvasEl; if (!canvasEl) { return; } canvasEl.dispatchEvent('touchstart', wrapEvent(e)); }, touchMove(e) { const canvasEl = this.canvasEl; if (!canvasEl) { return; } canvasEl.dispatchEvent('touchmove', wrapEvent(e)); }, touchEnd(e) { const canvasEl = this.canvasEl; if (!canvasEl) { return; } canvasEl.dispatchEv --- bundled output (OSV-MAL flagged — LLM scope expansion) --- --- dist/index.js (bundled) --- (function (factory) { typeof define === 'function' && define.amd ? define(factory) : factory(); }((function () { 'use strict'; var isArrayLike = function (value) { /** * isArrayLike([1, 2, 3]) => true * isArrayLike(document.body.children) => true * isArrayLike('abc') => true * isArrayLike(Function) => false */ return value !== null && typeof value !== 'function' && isFinite(value.length); }; var contains = function (arr, value) { if (!isArrayLike(arr)) { return false; } return arr.indexOf(value) > -1; }; var filter = function (arr, func) { if (!isArrayLike(arr)) { return arr; } var result = []; for (var index = 0; index < arr.length; index++) { var value = arr[index]; if (func(value, index)) { result.push(value); } } return result; }; var toString = {}.toString; var isType = function (value, type) { return toString.call(value) === '[object ' + type + ']'; }; /** * 是否为函数 * @param {*} fn 对象 * @return {Boolean} 是否函数 */ var isFunction = (function (value) { return isType(value, 'Function'); }); // isFinite, var isNil = function (value) { /** * isNil(null) => true * isNil() => true */ return value === null || value === undefined; }; var isArray = (function (value) { return Array.isArray ? Array.isArray(value) : isType(value, 'Array'); }); var isObject = (function (value) { /** * isObject({}) => true * isObject([1, 2, 3]) => true * isObject(Function) => true * isObject(null) => false */ var type = typeof value; return value !== null && type === 'object' || type === 'function'; }); function each(elements, f
