// npm 패키지
@antv/g-mobile-webgl
A renderer implemented by WebGL1/2 in mobile environment
주간
1,136
월간
3,049
버전
251
메인테이너
51
라이선스
MIT
최초 publish
2022-04-15
publisher
wang1212
tarball
1,713,416 B
AUTO-PUBLISHED·1개 버전 인덱싱됨·최근 publish: 2025-12-24
// publisher 캠페인by wang1212
이 계정에서 catch된 패키지 9건고립된 catch가 아닙니다. 동일 publisher가 8개의 다른 패키지를 추가로 발행했고, 모두 파이프라인이 catch했습니다 — 일회성이 아닌 조직적 캠페인의 형태. 아래 링크는 각 형제 catch의 분석으로 이동합니다.
// offending code· @1.1.1· 1 file flagged
llm: benign · 0.85→ 의심 전송지 없음, 원격 실행 형태 없음 — 1 known-vendor host(s), 1 other host(s).
- @1.1.1··AUTO-PUBLISHED·publisher: wang1212heuristic 75/100static flags 1llm benign (0.85) via ollamapopularity:highmature-packageosv-flagged:MAL-2026-3928public-github-push
→ 의심 전송지 없음, 원격 실행 형태 없음 — 1 known-vendor host(s), 1 other host(s).
// offending code· 1 file flaggedpatterns: 1
--- package/package.json (excerpt) --- { "name": "@antv/g-mobile-webgl", "version": "1.1.1", "description": "A renderer implemented by WebGL1/2 in mobile environment", "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/g-device-api": "^1.6.10", "@antv/util": "^3.3.5", "@babel/runtime": "^7.25.6", "tslib": "^2.5.3", "@antv/g-lite": "2.7.0", "@antv/g-plugin-device-renderer": "2.6.1", "@antv/g-plugin-dragndrop": "2.1.1", "@antv/g-plugin-gesture": "2.1.1" }, "devDependencies": { "@types/gl-matrix": "^2.4.5", "@types/offscreencanvas": "^2019.6.4" }, "publishConfig": { "access": "public" }, "scripts": { "build:js": "rimraf dist && rollup -c", "build:types": "rimraf types && tsc --emitDeclarationOnly --noCheck", "build": "npm run build:js && npm run build:types", "sync": "tnpm sync", "watch": "rollup -c -w" --- bundled output (OSV-MAL flagged — LLM scope expansion) --- --- dist/index.esm.js (bundled) --- /*! * @antv/g-mobile-webgl * @description A renderer implemented by WebGL1/2 in mobile environment * @version 1.1.1 * @date 12/24/2025, 11:57:39 AM * @author AntVis * @docs https://g.antv.antgroup.com/ */ import _createClass from '@babel/runtime/helpers/createClass'; import _classCallCheck from '@babel/runtime/helpers/classCallCheck'; import _callSuper from '@babel/runtime/helpers/callSuper'; import _inherits from '@babel/runtime/helpers/inherits'; import { AbstractRendererPlugin, AbstractRenderer, ImageLoader, MobileInteraction, HTMLRenderer } from '@antv/g-lite'; export { MobileInteraction as DomInteraction, HTMLRenderer } from '@antv/g-lite'; import * as DeviceRenderer from '@antv/g-plugin-device-renderer'; export { DeviceRenderer }; import * as DragDropEvent from '@antv/g-plugin-dragndrop'; import * as GesturePlugin from '@antv/g-plugin-gesture'; import { isNil } from '@antv/util'; import _objectSpread from '@babel/runtime/helpers/objectSpread2'; import { WebGLDeviceContribution } from '@antv/g-device-api'; import _regeneratorRuntime from '@babel/runtime/helpers/regeneratorRuntime'; import _asyncToGenerator from '@babel/runtime/helpers/asyncToGenerator'; function isCanvasElement(el) { if (!el || typeof el !== 'object') return false; if (el.nodeType === 1 && el.nodeName) { // HTMLCanvasElement return true; } // CanvasElement return !!el.isCanvasElement; } var WebGLContextService = /*#__PURE__*/function () { function WebGLContextService(context) { _classCallCheck(this, WebGLContextService); this.canvasConfig = context.config; // @ts-ignore this.deviceRendererPlugin = context.deviceRendererPlugin; } return _createClass(WebGLContextService, [{ key: "init", value: function () { var _init = _asyncToGenerator(/*#__PURE__*/_regeneratorRuntime().mark(function _callee() { var _this$canvasConfig, canvas, devicePixelRatio, dpr; return _regeneratorRuntime().wrap(function (_context) { whi --- dist/index.js (bundled) --- /*! * @antv/g-mobile-webgl * @description A renderer implemented by WebGL1/2 in mobile environment * @version 1.1.1 * @date 12/24/2025, 11:57:39 AM * @author AntVis * @docs https://g.antv.antgroup.com/ */ 'use strict'; var _createClass = require('@babel/runtime/helpers/createClass'); var _classCallCheck = require('@babel/runtime/helpers/classCallCheck'); var _callSuper = require('@babel/runtime/helpers/callSuper'); var _inherits = require('@babel/runtime/helpers/inherits'); var gLite = require('@antv/g-lite'); var DeviceRenderer = require('@antv/g-plugin-device-renderer'); var DragDropEvent = require('@antv/g-plugin-dragndrop'); var GesturePlugin = require('@antv/g-plugin-gesture'); var util = require('@antv/util'); var _objectSpread = require('@babel/runtime/helpers/objectSpread2'); var gDeviceApi = require('@antv/g-device-api'); var _regeneratorRuntime = require('@babel/runtime/helpers/regeneratorRuntime'); var _asyncToGenerator = require('@babel/runtime/helpers/asyncToGenerator'); function _interopNamespaceDefault(e) { var n = Object.create(null); if (e) { Object.keys(e).forEach(function (k) { if (k !== 'default') { var d = Object.getOwnPropertyDescriptor(e, k); Object.defineProperty(n, k, d.get ? d : { enumerable: true, get: function () { return e[k]; } }); } }); } n.default = e; return Object.freeze(n); } var DeviceRenderer__namespace = /*#__PURE__*/_interopNamespaceDefault(DeviceRenderer); var DragDropEvent__namespace = /*#__PURE__*/_interopNamespaceDefault(DragDropEvent); var GesturePlugin__namespace = /*#__PURE__*/_interopNamespaceDefault(GesturePlugin); function isCanvasElement(el) { if (!el || typeof el !== 'object') return false; if (el.nodeType === 1 && el.nodeName) { // HTMLCanvasElement return true; } // CanvasElement return !!el.isCanvasElement; } var WebGLContextService = /*#__PURE__*/function () { function WebGLContextService(context) { _cla --- dist/index.umd.min.js (bundled) --- /*! * @antv/g-mobile-webgl * @description A renderer implemented by WebGL1/2 in mobile environment * @version 1.1.1 * @date 12/24/2025, 11:57:39 AM * @author AntVis * @docs https://g.antv.antgroup.com/ */ !function(e,t){"object"==typeof exports&&"undefined"!=typeof module?t(exports,require("@antv/g-lite")):"function"==typeof define&&define.amd?define(["exports","@antv/g-lite"],t):t(((e="undefined"!=typeof globalThis?globalThis:e||self).G=e.G||{},e.G.MobileWebGL={}),e.window.G)}(this,function(e,t){"use strict";function r(e){return r="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&"function"==typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e},r(e)}function n(e){var t=function(e,t){if("object"!=r(e)||!e)return e;var n=e[Symbol.toPrimitive];if(void 0!==n){var i=n.call(e,t||"default");if("object"!=r(i))return i;throw new TypeError("@@toPrimitive must return a primitive value.")}return("string"===t?String:Number)(e)}(e,"string");return"symbol"==r(t)?t:t+""}function i(e,t){for(var r=0;t.length>r;r++){var i=t[r];i.enumerable=i.enumerable||!1,i.configurable=!0,"value"in i&&(i.writable=!0),Object.defineProperty(e,n(i.key),i)}}function a(e,t,r){return t&&i(e.prototype,t),r&&i(e,r),Object.defineProperty(e,"prototype",{writable:!1}),e}function o(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}function s(e){return s=Object.setPrototypeOf?Object.getPrototypeOf.bind():function(e){return e.__proto__||Object.getPrototypeOf(e)},s(e)}function l(){try{var e=!Boolean.prototype.valueOf.call(Reflect.construct(Boolean,[],function(){}))}catch(e){}return(l=function(){return!!e})()}function u(e,t){if(t&&("object"==r(t)||"function"==typeof t))return t;if(void 0!==t)throw new TypeError("Derived constructors may only return object or undefined");return function(e){if(void 0===e)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");ret
