// npm 패키지
@antv/larkmap
A React toolkit for geospatial visualization based on L7
주간
8,293
월간
28,363
버전
70
메인테이너
51
라이선스
MIT
최초 publish
2022-05-26
publisher
lvisei
tarball
1,199,276 B
AUTO-PUBLISHED·1개 버전 인덱싱됨·최근 publish: 2024-09-14
// publisher 캠페인by lvisei
이 계정에서 catch된 패키지 9건고립된 catch가 아닙니다. 동일 publisher가 8개의 다른 패키지를 추가로 발행했고, 모두 파이프라인이 catch했습니다 — 일회성이 아닌 조직적 캠페인의 형태. 아래 링크는 각 형제 catch의 분석으로 이동합니다.
// offending code· @1.5.1· no static-pattern hits
llm: benign · 0.85→ 의심 전송지 없음, 원격 실행 형태 없음 — 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
→ 의심 전송지 없음, 원격 실행 형태 없음 — 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
