// npm 패키지
@antv/g2-ssr
Support SSR for G2
버전
12
메인테이너
52
라이선스
MIT
최초 publish
2024-11-04
publisher
atool
tarball
5,896,743 B
AUTO-PUBLISHED·1개 버전 인덱싱됨·최근 publish: 2025-09-15
// publisher 캠페인by atool
이 계정에서 catch된 패키지 9건고립된 catch가 아닙니다. 동일 publisher가 8개의 다른 패키지를 추가로 발행했고, 모두 파이프라인이 catch했습니다 — 일회성이 아닌 조직적 캠페인의 형태. 아래 링크는 각 형제 catch의 분석으로 이동합니다.
// offending code· @0.2.0· no static-pattern hits
llm: benign · 0.85→ 의심 전송지 없음, 원격 실행 형태 없음 — 1 known-vendor host(s).
- @0.2.0··AUTO-PUBLISHED·publisher: atoolheuristic 75/100static flags 0llm benign (0.85) via ollamamature-packagepublisher-multi-name-burst:5osv-flagged:MAL-2026-3979
→ 의심 전송지 없음, 원격 실행 형태 없음 — 1 known-vendor host(s).
// offending code· no static-pattern hits
--- install scripts --- ### prepublishOnly npm run ci --- package.json (entry) --- { "name": "@antv/g2-ssr", "version": "0.2.0", "description": "Support SSR for G2", "main": "./dist/g2-ssr.cjs", "types": "./dist/lib/index.d.ts", "bin": "./bin/g2-ssr.js", "scripts": { "build": "rimraf dist && rollup -c", "ci": "run-s type-check build test", "prepublishOnly": "npm run ci", "test": "run-s test:*", "test:unit": "jest", "test:bin": "node ./bin/g2-ssr.js export -i ./__tests__/chart-spec.json -o ./__tests__/assets/chart-spec", "type-check": "tsc --noEmit" }, "keywords": [ "antv", "g2", "ssr" ], "author": "Aarebecca", "license": "MIT", "files": [ "dist", "bin" ], "devDependencies": { "@antv/g-plugin-rough-canvas-renderer": "^2.0.44", "@rollup/plugin-commonjs": "^25.0.8", "@rollup/plugin-node-resolve": "^15.3.0", "@rollup/plugin-terser": "^0.4.4", "@rollup/plugin-typescript": "^11.1.6", "@swc/core": "^1.10.0", "@swc/jest": "^0.2.37", "@types/jest": "^29.5.14", "@types/node": "^16.18.121", "jest": "^29.7.0", "npm-run-all": "^4.1.5", "rimraf": "^6.0.1", "rollup": "^4.28.1", "typescript": "^5.7.2" }, "dependencies": { "@antv/g": "^6.1. --- bundled output (OSV-MAL flagged — LLM scope expansion) --- --- dist/g2-ssr.cjs (bundled) --- "use strict";var t=require("canvas"),e=require("fs");function n(t){return n="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(t){return typeof t}:function(t){return t&&"function"==typeof Symbol&&t.constructor===Symbol&&t!==Symbol.prototype?"symbol":typeof t},n(t)}function r(t){var e=function(t,e){if("object"!=n(t)||!t)return t;var r=t[Symbol.toPrimitive];if(void 0!==r){var i=r.call(t,e);if("object"!=n(i))return i;throw new TypeError("@@toPrimitive must return a primitive value.")}return("string"===e?String:Number)(t)}(t,"string");return"symbol"==n(e)?e:e+""}function i(t,e){for(var n=0;n<e.length;n++){var i=e[n];i.enumerable=i.enumerable||!1,i.configurable=!0,"value"in i&&(i.writable=!0),Object.defineProperty(t,r(i.key),i)}}function o(t,e,n){return e&&i(t.prototype,e),n&&i(t,n),Object.defineProperty(t,"prototype",{writable:!1}),t}function a(t,e){if(!(t instanceof e))throw new TypeError("Cannot call a class as a function")}function s(t){return s=Object.setPrototypeOf?Object.getPrototypeOf.bind():function(t){return t.__proto__||Object.getPrototypeOf(t)},s(t)}function c(){try{var t=!Boolean.prototype.valueOf.call(Reflect.construct(Boolean,[],function(){}))}catch(t){}return(c=function(){return!!t})()}function l(t,e){if(e&&("object"==n(e)||"function"==typeof e))return e;if(void 0!==e)throw new TypeError("Derived constructors may only return object or undefined");return function(t){if(void 0===t)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return t}(t)}function u(t,e,n){return e=s(e),l(t,c()?Reflect.construct(e,n||[],s(t).constructor):e.apply(t,n))}function f(t,e){return f=Object.setPrototypeOf?Object.setPrototypeOf.bind():function(t,e){return t.__proto__=e,t},f(t,e)}function h(t,e){if("function"!=typeof e&&null!==e)throw new TypeError("Super expression must either be null or a function");t.prototype=Object.create(e&&e.prototype,{constructor:{value:t,writable:!0,configurable:!0}}),Object.defineProperty(t,"prototyp --- dist/lib/canvas.d.ts (bundled) --- import { Canvas as GCanvas } from '@antv/g'; import type { Canvas as NodeCanvas } from 'canvas'; import type { Options } from './types'; /** * <zh/> 创建画布 * * <en/> create canvas * @param options <zh/> options 画布配置 | <en/> options canvas configuration * @returns <zh/> [G 画布, NodeCanvas 画布] | <en/> [GCanvas, NodeCanvas] */ export declare function createCanvas(options: Options): [GCanvas, NodeCanvas]; --- dist/lib/chart.d.ts (bundled) --- import type { Chart, Options } from './types'; export declare function createChart(options: Options): Promise<Chart>; --- dist/lib/index.d.ts (bundled) --- export { createCanvas } from './canvas'; export { createChart } from './chart'; export type { Options, Chart, MetaData } from './types'; --- dist/lib/types.d.ts (bundled) --- import { RendererPlugin } from '@antv/g'; import type { G2Spec } from '@antv/g2'; import { PdfConfig, PngConfig, JpegConfig } from 'canvas'; export type Options = G2Spec & { width: number; height: number; devicePixelRatio?: number; /** * <zh/> 等待渲染的时间,默认为 32ms * * <en/> The time to wait for rendering, default is 16ms * @defaultValue 16 */ waitForRender?: number; /** * <zh/> 输出文件类型,默认导出为图片 * * <en/> output file type, default export as image * @defaultValue 'image' */ outputType?: 'image' | 'pdf' | 'svg'; /** * <zh/> 图片类型,默认为 png * * <en/> Image type, default is png */ imageType?: 'png' | 'jpeg'; /** * <zh/> 插件 * * <en/> Plugins */ renderPlugins?: RendererPlugin[]; }; export type MetaData = PdfConfig | PngConfig | JpegConfig; export interface Chart { exportToFile: (file: string, meta?: MetaData) => void; toBuffer: (meta?: MetaData) => Buffer; destroy: () => void; }
