// npm 패키지
@antv/l7-layers
L7's collection of built-in layers
버전
564
메인테이너
51
라이선스
MIT
최초 publish
2019-11-20
publisher
lzxue
tarball
1,932,620 B
AUTO-PUBLISHED·1개 버전 인덱싱됨·최근 publish: 2026-05-11
// publisher 캠페인by lzxue
이 계정에서 catch된 패키지 9건고립된 catch가 아닙니다. 동일 publisher가 8개의 다른 패키지를 추가로 발행했고, 모두 파이프라인이 catch했습니다 — 일회성이 아닌 조직적 캠페인의 형태. 아래 링크는 각 형제 catch의 분석으로 이동합니다.
// offending code· @2.25.10· no static-pattern hits
llm: benign · 0.85→ 의심 전송지 없음, 원격 실행 형태 없음 — 1 known-vendor host(s).
- @2.25.10··AUTO-PUBLISHED·publisher: lzxueheuristic 75/100static flags 0llm benign (0.85) via ollamamature-packageosv-flagged:MAL-2026-4041
→ 의심 전송지 없음, 원격 실행 형태 없음 — 1 known-vendor host(s).
// offending code· no static-pattern hits
--- package.json (entry) --- { "name": "@antv/l7-layers", "version": "2.25.10", "description": "L7's collection of built-in layers", "license": "MIT", "author": "https://github.com/orgs/antvis/people", "sideEffects": [ "./es/index.js" ], "main": "lib/index.js", "module": "es/index.js", "types": "es/index.d.ts", "files": [ "lib", "es" ], "dependencies": { "@antv/async-hook": "^2.2.9", "@babel/runtime": "^7.7.7", "@mapbox/martini": "^0.2.0", "@turf/clone": "^6.5.0", "@turf/helpers": "^6.1.4", "@turf/meta": "^6.0.2", "@turf/polygon-to-line": "^6.5.0", "@turf/union": "^6.5.0", "earcut": "^2.2.1", "eventemitter3": "^4.0.0", "gl-matrix": "^3.1.0", "@antv/l7-core": "2.25.10", "@antv/l7-maps": "2.25.10", "@antv/l7-utils": "2.25.10", "@antv/l7-source": "2.25.10" }, "devDependencies": { "@types/earcut": "^2.1.0", "@types/gl-matrix": "^2.4.5", "@antv/l7-test-utils": "^2.25.10" }, "publishConfig": { "access": "public", "registry": "https://registry.npmjs.org" }, "repository": "git@github.com:antvis/L7.git", "scripts": { "dev": "father dev", "build": "npm run clean && father build", --- index.js (entry) --- "use strict"; var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault"); Object.defineProperty(exports, "__esModule", { value: true }); var _exportNames = { CanvasLayer: true, CityBuildingLayer: true, BaseLayer: true, BaseModel: true, GeometryLayer: true, HeatmapLayer: true, ImageLayer: true, LineLayer: true, PointLayer: true, PolygonLayer: true, RasterLayer: true, TileLayer: true, TileDebugLayer: true, EarthLayer: true, MaskLayer: true, WindLayer: true }; Object.defineProperty(exports, "BaseLayer", { enumerable: true, get: function () { return _BaseLayer.default; } }); Object.defineProperty(exports, "BaseModel", { enumerable: true, get: function () { return _BaseModel.default; } }); Object.defineProperty(exports, "CanvasLayer", { enumerable: true, get: function () { return _canvas.default; } }); Object.defineProperty(exports, "CityBuildingLayer", { enumerable: true, get: function () { return _building.default; } }); Object.defineProperty(exports, "EarthLayer", { enumerable: true, get: function () { return _earth.default; } }); Object.defineProperty(exports, "GeometryLaye --- bundled output (OSV-MAL flagged — LLM scope expansion) --- --- lib/utils/symbol-layout.js (bundled) --- "use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports.getGlyphQuads = getGlyphQuads; exports.shapeText = shapeText; /** * 返回文本相对锚点位置 * @param {string} anchor 锚点位置 * @return {alignment} alignment */ function getAnchorAlignment(anchor) { let horizontalAlign = 0.5; let verticalAlign = 0.5; switch (anchor) { case 'right': case 'top-right': case 'bottom-right': horizontalAlign = 1; break; case 'left': case 'top-left': case 'bottom-left': horizontalAlign = 0; break; default: horizontalAlign = 0.5; } switch (anchor) { case 'bottom': case 'bottom-right': case 'bottom-left': verticalAlign = 1; break; case 'top': case 'top-right': case 'top-left': verticalAlign = 0; break; default: verticalAlign = 0.5; } return { horizontalAlign, verticalAlign }; } // justify right = 1, left = 0, center = 0.5 function justifyLine(positionedGlyphs, glyphMap, start, end, justify) { if (!justify) { return; } const lastPositionedGlyph = positionedGlyphs[end]; const glyph = lastPositionedGlyph.glyph; if (glyph) { const lastAdvance = glyphMap[glyph].advance * lastPositionedGlyph.scale; const lineIndent = (positionedGlyphs[end].x + lastAdvance) * justify; for (let j = start; j <= end; j++) { positionedGlyphs[j].x -= lineIndent; } } } // justify right=1 left=0 center=0.5 // horizontalAlign right=1 left=0 center=0.5 // verticalAlign right=1 left=0 center=0.5 function align(positionedGlyphs, justify, horizontalAlign, verticalAlign, maxLineLength, lineHeight, lineCount) { const shiftX = (justify - horizontalAlign) * maxLineLength; const shiftY = (-verticalAlign * lineCount + 0.5) * lineHeight; for (const glyphs of positionedGlyphs) { glyphs.x += shiftX; glyphs.y += shiftY; } } function shapeLines(shaping, glyphMap, lines, lineHeight, textAnchor, textJustify, spacing) { //
