// npm 패키지
@antv/narrative-text-vis
React component of interactive narrative text
버전
44
메인테이너
51
라이선스
MIT
최초 publish
2021-08-23
publisher
bbsqq
tarball
4,114,475 B
AUTO-PUBLISHED·1개 버전 인덱싱됨·최근 publish: 2022-11-14
// exfil path
what is read → where it shipssteals
- ○ clipboard
sends to
(no destination string extracted — payload may be dynamic / obfuscated)
evidence in excerpt
> var extendStatics = function(d, b) {
> var extendStatics = function(d, b) {
> !function(t,e){"object"==typeof exports&&"undefined"!=typeof module?e(exports,require("react"),require("antd")):"function"==typeof define&&define.amd?define(["exports","react","antd"],e):e((t="undefin…
> readonly colorNegative: "#13C2C2";// publisher 캠페인by bbsqq
이 계정에서 catch된 패키지 5건고립된 catch가 아닙니다. 동일 publisher가 4개의 다른 패키지를 추가로 발행했고, 모두 파이프라인이 catch했습니다 — 일회성이 아닌 조직적 캠페인의 형태. 아래 링크는 각 형제 catch의 분석으로 이동합니다.
// offending code· @0.3.16· 3 files flagged
llm: benign · 0.85→ 의심 전송지 없음, 원격 실행 형태 없음 — 1 known-vendor host(s).
- @0.3.16··AUTO-PUBLISHED·publisher: bbsqqheuristic 75/100static flags 3llm benign (0.85) via ollamamature-packageosv-flagged:MAL-2026-4074reads-env-varschild-process-spawnclipboard-access
→ 의심 전송지 없음, 원격 실행 형태 없음 — 1 known-vendor host(s).
// offending code· 3 files flaggedpatterns: 3
--- package/lib/index.js (excerpt) --- 'use strict'; Object.defineProperty(exports, '__esModule', { value: true }); var React = require('react'); var antd = require('antd'); function _interopDefaultLegacy (e) { return e && typeof e === 'object' && 'default' in e ? e : { 'default': e }; } var React__default = /*#__PURE__*/_interopDefaultLegacy(React); /****************************************************************************** Copyright (c) Microsoft Corporation. Permission to use, copy, modify, and/or distribute this software for any purpose with or without fee is hereby granted. THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. ***************************************************************************** */ /* global Reflect, Promise */ var extendStatics = function(d, b) { extendStatics = Object.setPrototypeOf || ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) || function (d, b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; }; return extendStatics(d, b); }; function --- package/lib/src/NarrativeTextVis.d.ts (excerpt) --- import { NarrativeTextSpec } from '@antv/narrative-text-schema'; import { ThemeProps, ExtensionProps, NarrativeEvents } from './interface'; export declare type NarrativeTextVisProps = ThemeProps & ExtensionProps & NarrativeEvents & { /** * @description specification of narrative text spec * @description.zh-CN Narrative 描述 json 信息 */ spec: NarrativeTextSpec; /** * @description the function to be called when copy event is listened. If it is undefined, the default behavior is to put the transformed html and plain text into user's clipboard * @description.监听到 copy 事件时执行的函数,可用于控制复制的内容和复制行为,如果不传,默认将会把转换后的富文本和纯文本内容放入剪切板 */ copyNarrative?: (content: { spec: NarrativeTextSpec; plainText: string; html: string; }) => void; }; export declare function NarrativeTextVis({ spec, size, pluginManager, copyNarrative, ...events }: NarrativeTextVisProps): JSX.Element; --- package/es/index.js (excerpt) --- import React, { useRef, useDebugValue, useContext, createElement, useState, useLayoutEffect, useEffect } from 'react'; import { Tooltip } from 'antd'; /****************************************************************************** Copyright (c) Microsoft Corporation. Permission to use, copy, modify, and/or distribute this software for any purpose with or without fee is hereby granted. THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. ***************************************************************************** */ /* global Reflect, Promise */ var extendStatics = function(d, b) { extendStatics = Object.setPrototypeOf || ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) || function (d, b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; }; return extendStatics(d, b); }; function __extends(d, b) { if (typeof b !== "function" && b !== null) throw new TypeError("Class extends value " + String(b) + " is not a constructor or null"); --- bundled output (OSV-MAL flagged — LLM scope expansion) --- --- dist/narrative-text-vis.min.js (bundled) --- !function(t,e){"object"==typeof exports&&"undefined"!=typeof module?e(exports,require("react"),require("antd")):"function"==typeof define&&define.amd?define(["exports","react","antd"],e):e((t="undefined"!=typeof globalThis?globalThis:t||self).NarrativeTextVis={},t.React,t.antd)}(this,(function(t,e,r){"use strict";function n(t){return t&&"object"==typeof t&&"default"in t?t:{default:t}}var i=n(e),o=function(t,e){return o=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(t,e){t.__proto__=e}||function(t,e){for(var r in e)Object.prototype.hasOwnProperty.call(e,r)&&(t[r]=e[r])},o(t,e)};var s,a=function(){return a=Object.assign||function(t){for(var e,r=1,n=arguments.length;r<n;r++)for(var i in e=arguments[r])Object.prototype.hasOwnProperty.call(e,i)&&(t[i]=e[i]);return t},a.apply(this,arguments)};function c(t,e){var r={};for(var n in t)Object.prototype.hasOwnProperty.call(t,n)&&e.indexOf(n)<0&&(r[n]=t[n]);if(null!=t&&"function"==typeof Object.getOwnPropertySymbols){var i=0;for(n=Object.getOwnPropertySymbols(t);i<n.length;i++)e.indexOf(n[i])<0&&Object.prototype.propertyIsEnumerable.call(t,n[i])&&(r[n[i]]=t[n[i]])}return r}function l(t,e,r,n){return new(r||(r=Promise))((function(i,o){function s(t){try{c(n.next(t))}catch(t){o(t)}}function a(t){try{c(n.throw(t))}catch(t){o(t)}}function c(t){var e;t.done?i(t.value):(e=t.value,e instanceof r?e:new r((function(t){t(e)}))).then(s,a)}c((n=n.apply(t,e||[])).next())}))}function u(t,e){var r,n,i,o,s={label:0,sent:function(){if(1&i[0])throw i[1];return i[1]},trys:[],ops:[]};return o={next:a(0),throw:a(1),return:a(2)},"function"==typeof Symbol&&(o[Symbol.iterator]=function(){return this}),o;function a(a){return function(c){return function(a){if(r)throw new TypeError("Generator is already executing.");for(;o&&(o=0,a[0]&&(s=0)),s;)try{if(r=1,n&&(i=2&a[0]?n.return:a[0]?n.throw||((i=n.return)&&i.call(n),0):n.next)&&!(i=i.call(n,a[1])).done)return i;switch(n=0,i&&(a=[2&a[0],i.value]),a[0]){case 0:case 1:i=a;break;case 4:return --- dist/setupTests.d.ts (bundled) --- export {}; --- dist/src/NarrativeTextVis.d.ts (bundled) --- import { NarrativeTextSpec } from '@antv/narrative-text-schema'; import { ThemeProps, ExtensionProps, NarrativeEvents } from './interface'; export declare type NarrativeTextVisProps = ThemeProps & ExtensionProps & NarrativeEvents & { /** * @description specification of narrative text spec * @description.zh-CN Narrative 描述 json 信息 */ spec: NarrativeTextSpec; /** * @description the function to be called when copy event is listened. If it is undefined, the default behavior is to put the transformed html and plain text into user's clipboard * @description.监听到 copy 事件时执行的函数,可用于控制复制的内容和复制行为,如果不传,默认将会把转换后的富文本和纯文本内容放入剪切板 */ copyNarrative?: (content: { spec: NarrativeTextSpec; plainText: string; html: string; }) => void; }; export declare function NarrativeTextVis({ spec, size, pluginManager, copyNarrative, ...events }: NarrativeTextVisProps): JSX.Element; --- dist/src/index.d.ts (bundled) --- export { NarrativeTextVis } from './NarrativeTextVis'; export type { NarrativeTextVisProps } from './NarrativeTextVis'; export { Section } from './section'; export { Paragraph, Headline } from './paragraph'; export { Phrase } from './phrases'; export { ArrowUp, ArrowDown } from './assets/icons'; export * from './line-charts'; export * as NStyledComponents from './styled'; export * from '@antv/narrative-text-schema'; export * from './chore/plugin'; export * from './chore/exporter'; export { seedToken } from './theme'; --- dist/src/interface.d.ts (bundled) --- import { EntityType, NarrativeTextSpec, SectionSpec, ParagraphSpec, PhraseSpec, HeadlineSpec, BulletItemSpec } from '@antv/narrative-text-schema'; import { PluginManager } from './chore/plugin'; export declare type PhraseType = 'text' | EntityType | null; export declare type ThemeProps = { /** * @description size of text * @description.zh-CN 文本大小 */ size?: 'normal' | 'small'; }; export declare type ExtensionProps = { /** * @description extension plugin * @description.zh-CN 扩展插件 */ pluginManager?: PluginManager; }; export declare type PhraseEvents = Partial<{ onClickPhrase: (spec: PhraseSpec) => void; onMouseEnterPhrase: (spec: PhraseSpec) => void; onMouseLeavePhrase: (spec: PhraseSpec) => void; }>; declare type NormalParagraphSpec = HeadlineSpec | ParagraphSpec | BulletItemSpec; export declare type ParagraphEvents = PhraseEvents & Partial<{ onClickParagraph: (spec: NormalParagraphSpec) => void; onMouseEnterParagraph: (spec: NormalParagraphSpec) => void; onMouseLeaveParagraph: (spec: NormalParagraphSpec) => void; }>; export declare type SectionEvents = ParagraphEvents & Partial<{ onClickSection: (spec: SectionSpec) => void; onMouseEnterSection: (spec: SectionSpec) => void; onMouseLeaveSection: (spec: SectionSpec) => void; }>; export declare type NarrativeEvents = SectionEvents & Partial<{ onClickNarrative: (spec: NarrativeTextSpec) => void; onMouseEnterNarrative: (spec: NarrativeTextSpec) => void; onMouseLeaveNarrative: (spec: NarrativeTextSpec) => void; onCopySuccess: (e?: ClipboardEvent) => void; onCopyFailure: (e?: ClipboardEvent) => void; }>; export {}; --- dist/src/utils/classnames.d.ts (bundled) --- /** connect cls, remove empty */ export declare const classnames: (...cls: string[]) => string; --- dist/src/utils/elementContainsSelection.d.ts (bundled) --- /** * 判断选区是否在指定元素内 */ export declare function elementContainsSelection(el: HTMLElement): boolean; --- dist/src/utils/functionalize.d.ts (bundled) --- import { TypeOrMetaReturnType } from '@antv/narrative-text-schema'; export declare function functionalize<T>(val: TypeOrMetaReturnType<T>, defaultVal: T | undefined): (value: string, metadata: import("@antv/narrative-text-schema").EntityMetaData) => T; --- dist/src/utils/getPrefixCls.d.ts (bundled) --- export declare const getPrefixCls: (suffixCls?: string) => string; --- dist/src/utils/index.d.ts (bundled) --- export { getPrefixCls } from './getPrefixCls'; export { classnames } from './classnames'; export { functionalize } from './functionalize'; export { elementContainsSelection } from './elementContainsSelection'; --- dist/src/theme/getFontSize.d.ts (bundled) --- import type { ThemeProps } from '../interface'; export default function getFontSize({ size }: ThemeProps): string; --- dist/src/theme/index.d.ts (bundled) --- export { seedToken } from './seed'; export { default as getFontSize } from './getFontSize'; --- dist/src/theme/seed.d.ts (bundled) --- export declare const seedToken: { readonly colorBase: "rgba(0, 0, 0, 0.65)"; readonly colorEntityBase: "#404040"; readonly colorPositive: "#FA541C"; readonly colorNegative: "#13C2C2"; readonly colorConclusion: "#030852"; readonly colorDimensionValue: "#391085"; readonly colorMetricName: "rgba(0, 0, 0, 0.88)"; readonly colorMetricValue: "#1677FF"; readonly colorOtherValue: "#1677FF"; readonly fontSizeBase: 14; readonly fontSizeSmall: 12; }; --- dist/src/styled/bullet.d.ts (bundled) --- import type { ThemeProps } from '../interface'; export declare const Bullet: import("styled-components").StyledComponent<"div", any, ThemeProps, never>; export declare const Ol: import("styled-components").StyledComponent<"div", any, ThemeProps, never>; export declare const Ul: import("styled-components").StyledComponent<"div", any, ThemeProps, never>; export declare const Li: import("styled-components").StyledComponent<"li", any, {}, never>; --- dist/src/styled/container.d.ts (bundled) --- import type { ThemeProps } from '../interface'; export declare const Container: import("styled-components").StyledComponent<"div", any, ThemeProps, never>; --- dist/src/styled/entity.d.ts (bundled) --- import { ThemeProps } from '../interface'; export declare const Entit
