// npm 패키지
@antv/g2-extension-plot
The mark plot in antv/g2
주간
120,302
월간
561,535
버전
6
메인테이너
52
최초 publish
2023-11-28
publisher
atool
tarball
163,885 B
AUTO-PUBLISHED·1개 버전 인덱싱됨·최근 publish: 2025-03-26
// publisher 캠페인by atool
이 계정에서 catch된 패키지 9건고립된 catch가 아닙니다. 동일 publisher가 8개의 다른 패키지를 추가로 발행했고, 모두 파이프라인이 catch했습니다 — 일회성이 아닌 조직적 캠페인의 형태. 아래 링크는 각 형제 catch의 분석으로 이동합니다.
// offending code· @0.2.2· 1 file flagged
llm: benign · 0.85→ 의심 전송지 없음, 원격 실행 형태 없음 — 1 known-vendor host(s).
- @0.2.2··AUTO-PUBLISHED·publisher: atoolheuristic 75/100static flags 1llm benign (0.85) via ollamarecent-owner-changepopularity:very-highpublisher-multi-name-burst:5osv-flagged:MAL-2026-3977public-github-push
→ 의심 전송지 없음, 원격 실행 형태 없음 — 1 known-vendor host(s).
// offending code· 1 file flaggedpatterns: 1
--- package/package.json (excerpt) --- { "name": "@antv/g2-extension-plot", "version": "0.2.2", "description": "The mark plot in antv/g2", "main": "lib/index.js", "module": "esm/index.js", "unpkg": "dist/index.umd.min.js", "types": "lib/index.d.ts", "files": [ "lib", "esm", "dist" ], "sizeEffects": false, "scripts": { "start": "npm run dev", "dev": "vite", "fix": "prettier --write src __tests__", "test": "jest", "build:cjs": "rimraf ./lib && tsc --module commonjs --outDir lib", "build:esm": "rimraf ./esm && tsc --module ESNext --outDir esm", "build:umd": "rimraf ./dist && rollup -c", "build": "run-p build:*", "ci": "npm run test && npm run build" }, "dependencies": { "@antv/g2": "^5.1.8", "@antv/util": "^3.3.5", "@antv/vendor": "^1.0.10" }, "devDependencies": { "@antv/g": "^6.0.0", "@antv/g-pattern": "^2.0.0", "@types/node": "^16.11.7", "@types/jest": "^29.0.0", "@rollup/plugin-commonjs": "^25.0.7", "@rollup/plugin-node-resolve": "^15.2.1", "@rollup/plugin-terser": "^0.4.3", "@rollup/plugin-typescript": "^11.1.3", "vite": "^4.3.9", "jest": "^29.0.0", "rimraf": "^5.0.5", "rollup": "^3.29.2", "vitest": "^0.34.2", "ts-jest": "^29.1.0", "prettier": "^3.0.3", "pixelmatch": "5.3.0", "npm-run-all": "^4.1.5", "typescript": "^5.2.2", "jest-environment-node": "^29.7.0" }, "repository": "https://github.com/antvis/g2-extensions.git" } --- bundled output (OSV-MAL flagged — LLM scope expansion) --- --- dist/index.d.ts (bundled) --- export { plotlib } from './lib'; export * from './mark'; export * from './interaction'; --- dist/index.umd.min.js (bundled) --- !function(t,e){"object"==typeof exports&&"undefined"!=typeof module?e(exports,require("@antv/g2")):"function"==typeof define&&define.amd?define(["exports","@antv/g2"],e):e(((t="undefined"!=typeof globalThis?globalThis:t||self).G2=t.G2||{},t.G2.ExtensionPlot={}),t.window.G2)}(this,(function(t,e){"use strict";function n(t,e,n,r){return new(n||(n=Promise))((function(o,i){function a(t){try{s(r.next(t))}catch(t){i(t)}}function c(t){try{s(r.throw(t))}catch(t){i(t)}}function s(t){var e;t.done?o(t.value):(e=t.value,e instanceof n?e:new n((function(t){t(e)}))).then(a,c)}s((r=r.apply(t,e||[])).next())}))}"function"==typeof SuppressedError&&SuppressedError;var r=function(t){return null!==t&&"function"!=typeof t&&isFinite(t.length)},o=function(t,e){if(!r(t))return t;for(var n=[],o=0;t.length>o;o++){var i=t[o];e(i,o)&&n.push(i)}return n};function i(t){return Array.isArray(t)}function a(t,e){var n,r;if(t)if(i(t))for(var o=0,a=t.length;a>o&&!1!==e(t[o],o);o++);else if(r=typeof(n=t),null!==n&&"object"===r||"function"===r)for(var c in t)if(t.hasOwnProperty(c)&&!1===e(t[c],c))break}var c=Object.keys?function(t){return Object.keys(t)}:function(t){var e=[];return a(t,(function(n,r){(function(t){return"function"==typeof t})(t)&&"prototype"===r||e.push(r)})),e},s=function(t){return"object"==typeof t&&null!==t},u={}.toString,l=function(t,e){return u.call(t)==="[object "+e+"]"},f=function(t){if(!s(t)||!l(t,"Object"))return!1;if(null===Object.getPrototypeOf(t))return!0;for(var e=t;null!==Object.getPrototypeOf(e);)e=Object.getPrototypeOf(e);return Object.getPrototypeOf(t)===e},d=function(t,e,n){if(!i(t)&&!f(t))return t;var r=n;return a(t,(function(t,n){r=e(r,t,n)})),r};function h(t){return"string"==typeof t}function p(t,e){for(var n in e)e.hasOwnProperty(n)&&"constructor"!==n&&void 0!==e[n]&&(t[n]=e[n])}function v(t,e){if(Object.hasOwn)return Object.hasOwn(t,e);if(null==t)throw new TypeError("Cannot convert undefined or null to object");return Object.prototype.hasOwnProperty.call(Object(t),e --- dist/lib.d.ts (bundled) --- import { DrillDown } from "./interaction/drillDown"; export declare function plotlib(): { readonly "interaction.drillDown": typeof DrillDown; readonly "mark.sunburst": import("./mark/types").CompositeMarkComponent<import("./mark/sunburst").SunburstOptions>; }; --- dist/utils/hierarchy/partition.d.ts (bundled) --- export declare const NODE_INDEX_FIELD = "nodeIndex"; export declare const CHILD_NODE_COUNT = "childNodeCount"; export declare const NODE_ANCESTORS_FIELD = "nodeAncestor"; export declare function getField(options: { field?: string | string[]; fields?: string | string[]; }, defaultField?: string): string; export declare function getAllNodes(root: any): any[]; export interface Options { field: string; size?: [number, number]; round?: boolean; ratio?: number; padding?: number; sort?: (a: any, b: any) => any; as?: [string, string]; ignoreParentValue?: boolean; } export declare function partition(data: any, options: Options): any[]; --- dist/utils/hierarchy/types.d.ts (bundled) --- export interface HierarchyOption { /** * 字段名 默认为 value */ field?: string; tile?: 'treemapBinary' | 'treemapDice' | 'treemapSlice' | 'treemapSliceDice' | 'treemapSquarify' | 'treemapResquarify'; size?: [number, number]; round?: boolean; ignoreParentValue?: boolean; ratio?: number; padding?: number; paddingInner?: number; paddingOuter?: number; paddingTop?: number; paddingRight?: number; paddingBottom?: number; paddingLeft?: number; as: [string, string]; sort?(a: any, b: any): number; } --- dist/spec/interaction.d.ts (bundled) --- import type { Interaction as G2Interaction, InteractionTypes as G2InteractionTypes } from '@antv/g2'; import type { DrillDownOptions } from '../interaction/drillDown'; export type Interaction = G2Interaction | DrillDownInteraction; export type InteractionTypes = G2InteractionTypes | 'drillDown'; export type DrillDownInteraction = DrillDownOptions & { type?: 'drillDown'; }; --- dist/spec/mark.d.ts (bundled) --- import type { BaseMark as G2BaseMark, MarkTypes, ChannelTypes } from '@antv/g2'; import type { Interaction } from './interaction'; import type { Literal2Object } from './utils'; export type AtheisticChanelTypes = 'size' | 'color' | 'shape' | 'opacity'; export type BaseMark<T extends MarkTypes, C extends string = ChannelTypes> = G2BaseMark<T, C> & { interaction: Literal2Object<Interaction>; }; export type SunburstMark = BaseMark<'rect', 'value' | ChannelTypes>; --- dist/spec/utils.d.ts (bundled) --- export type Literal2Object<Literal extends { type?: any; }> = Partial<{ [Type in Literal['type']]: Literal extends { type?: Type; } ? Omit<Literal, 'type'> | boolean : never; }>; --- dist/mark/index.d.ts (bundled) --- export type { SunburstOptions } from './sunburst'; export { Sunburst } from './sunburst'; --- dist/mark/sunburst.d.ts (bundled) --- import type { CompositeMarkComponent as CC } from "./types"; import type { SunburstMark } from "../spec/mark"; export type SunburstData = { name: string; children: SunburstData[]; [key: string]: any; }[]; export type SunburstOptions = Omit<SunburstMark, "type">; export declare const SUNBURST_TYPE = "sunburst"; export declare const SUNBURST_TYPE_FIELD = "markType"; export declare const SUNBURST_Y_FIELD = "value"; export declare const SUNBURST_PATH_FIELD = "path"; export declare const SUNBURST_ANCESTOR_FIELD = "ancestor-node"; /** * Sunburst TransformData * @param options */ export declare function transformData(options: Pick<SunburstOptions, "data" | "encode">): any[]; export declare const Sunburst: CC<SunburstOptions>; --- dist/mark/types.d.ts (bundled) --- import type { MarkComponent } from '@antv/g2'; export type MarkOptions = Record<string, any>; export type CompositeMarkOptions = Record<string, any>; export type CompositeMarkComponent<O extends CompositeMarkOptions = CompositeMarkOptions> = { (options?: O, context?: any): CompositeMark; props?: MarkComponent<any>['props']; }; export type CompositeMark = Promise<MarkOptions[] | MarkOptions> | MarkOptions[] | MarkOptions; --- dist/interaction/drillDown.d.ts (bundled) --- import type { TextStyleProps } from "@antv/g"; export type DrillDownOptions = { breadCrumb?: { rootText: string; style: TextStyleProps; active: TextStyleProps; }; isFixedColor?: boolean; }; /** * @todo DrillDown interaction */ export declare function DrillDown(drillDownOptions?: DrillDownOptions): (context: any) => () => void; --- dist/interaction/index.d.ts (bundled) --- export type { DrillDownOptions } from './drillDown'; export { DrillDown } from './drillDown';
