// npm package
@antv/larkmap
A React toolkit for geospatial visualization based on L7
weekly
8,293
monthly
28,363
versions
70
maintainers
51
license
MIT
first publish
2022-05-26
publisher
lvisei
tarball
1,199,276 B
AUTO-PUBLISHED·1 version indexed·latest published 2024-09-14
// publisher campaignby lvisei
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· @1.5.1· no static-pattern hits
llm: benign · 0.85→ No suspicious destination, no remote-exec shape — 1 known-vendor host(s).
- @1.5.1··AUTO-PUBLISHED·publisher: lviseiheuristic 75/100static flags 0llm benign (0.85) via ollamapopularity:highmature-packageosv-flagged:MAL-2026-4056
→ No suspicious destination, no remote-exec shape — 1 known-vendor host(s).
// offending code· no static-pattern hits
--- install scripts --- ### prepare husky install ### prepublishOnly npm run ci --- package.json (entry) --- { "name": "@antv/larkmap", "version": "1.5.1", "description": "A React toolkit for geospatial visualization based on L7", "license": "MIT", "main": "lib/index.js", "module": "es/index.js", "types": "es/index.d.ts", "unpkg": "dist/larkmap.min.js", "sideEffects": [ "**/*.css" ], "files": [ "lib", "es", "dist" ], "scripts": { "prepare": "husky install", "start": "export NODE_OPTIONS=--openssl-legacy-provider && dumi dev", "lint": "run-p lint:*", "lint:ts": "eslint src __tests__ --ext .ts,.tsx --ignore-pattern 'src/**/demos/'", "lint:style": "stylelint --fix src/**/*.less", "prettier": "prettier --write 'src/*.{tsx,ts,md,json}'", "lint-fix": "eslint src __tests__ --fix --ext .ts,.tsx --format=pretty && npm run lint:style", "test": "jest", "test-cover": "jest --coverage", "clean": "rimraf es lib dist", "size": "limit-size", "build": "father build", "doctor": "father doctor", "docs:build": "export NODE_OPTIONS=--openssl-legacy-provider && dumi build", "docs:build-analyze": "export NODE_OPTIONS=--openssl-legacy-provider && ANALYZE=1 dumi build", "docs:deploy": "gh-pages -d docs-dist", --- index.js (entry) --- "use strict"; Object.defineProperty(exports, "__esModule", { value: true }); var _exportNames = { LarkMap: true, Template: true, Marker: true, Popup: true, LayerPopup: true, ContextMenu: true, LocationSearch: true, RegionLocation: true, LegendIcon: true, LegendProportion: true, LegendCategories: true, LegendRamp: true, useDraw: true, useDrawGroup: true, version: true, syncScene: true, SyncScene: true }; Object.defineProperty(exports, "ContextMenu", { enumerable: true, get: function () { return _ContextMenu.ContextMenu; } }); Object.defineProperty(exports, "LarkMap", { enumerable: true, get: function () { return _LarkMap.LarkMap; } }); Object.defineProperty(exports, "LayerPopup", { enumerable: true, get: function () { return _LayerPopup.LayerPopup; } }); Object.defineProperty(exports, "LegendCategories", { enumerable: true, get: function () { return _LegendCategories.LegendCategories; } }); Object.defineProperty(exports, "LegendIcon", { enumerable: true, get: function () { return _LegendIcon.LegendIcon; } }); Object.defineProperty(exports, "LegendProportion", { enumerable: true, get: function --- bundled output (OSV-MAL flagged — LLM scope expansion) --- --- lib/utils/layer-manager.js (bundled) --- "use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports.LayerManager = void 0; var _eventEmitter = _interopRequireDefault(require("@antv/event-emitter")); function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; } let layerCounter = 0; /** * 图层管理器 */ class LayerManager extends _eventEmitter.default { /** * 地图容器 */ scene; /** * 配置项 */ options; /** * 图层 */ layerMap = new Map(); constructor(options) { super(); this.scene = options.scene; this.options = options; } /** * 是否有该图层 */ hasLayer(id) { return this.layerMap.has(id); } /** * 添加图层 */ addLayer(layer) { const layerId = this.getLayerId(layer); this.layerMap.set(layerId, layer); layer.addTo(this.scene); this.emit('add', layer); } /** * 添加多个图层 */ addLayers(layers) { layers.forEach(layer => { this.addLayer(layer); }); } /** * 根据图层 id 或图层实例移除 layer 图层 */ removeLayer(id) { const layerId = typeof id === 'string' ? id : this.getLayerId(id); const findLayer = this.layerMap.get(layerId); if (!findLayer) return false; this.layerMap.delete(layerId); findLayer.remove(); this.emit('remove', layerId); return true; } /** * 获取图层组所有的图层 */ getLayers() { return Array.from(this.layerMap.values()); } /** * 根据图层 ID 获取图层 */ getLayerById(id) { return this.layerMap.get(id); } getLayer(id) { return this.getLayerById(id); } /** * 移除所有的图层对象 */ removeAllLayer() { for (const layer of this.layerMap.values()) { layer.remove(); } this.layerMap.clear(); } /** * 是否图层为空 */ isEmpty() { return this.layerMap.size === 0; } /** * 根据图层获取图层 ID */ getLayerId(layer) { if ('id' in layer) { return layer.id; } return `${layerCounter++}`; } destroy() { this.removeAllLayer(); } } exports.LayerManager = LayerMana
