// npm 패키지
@antv/xflow-extension
## Getting Started
버전
83
메인테이너
51
라이선스
MIT
최초 publish
2021-11-02
publisher
newbyvector
tarball
4,287,072 B
AUTO-PUBLISHED·1개 버전 인덱싱됨·최근 publish: 2023-04-06
// publisher 캠페인by newbyvector
이 계정에서 catch된 패키지 9건고립된 catch가 아닙니다. 동일 publisher가 8개의 다른 패키지를 추가로 발행했고, 모두 파이프라인이 catch했습니다 — 일회성이 아닌 조직적 캠페인의 형태. 아래 링크는 각 형제 catch의 분석으로 이동합니다.
// offending code· @1.0.55· no static-pattern hits
llm: benign · 0.85→ 의심 전송지 없음, 원격 실행 형태 없음 — 1 known-vendor host(s).
- @1.0.55··AUTO-PUBLISHED·publisher: newbyvectorheuristic 75/100static flags 0llm benign (0.85) via ollamamature-packageosv-flagged:MAL-2026-4121
→ 의심 전송지 없음, 원격 실행 형태 없음 — 1 known-vendor host(s).
// offending code· no static-pattern hits
--- package.json (entry) --- { "private": false, "name": "@antv/xflow-extension", "version": "1.0.55", "license": "MIT", "main": "lib/index.js", "module": "es/index.js", "typings": "es/index.d.ts", "unpkg": "dist/index.umd.js", "files": [ "dist", "lib", "es" ], "publishConfig": { "registry": "https://registry.npmjs.org" }, "dependencies": { "mana-syringe": "^0.2.2", "moment": "^2.29.1", "rc-field-form": "^1.22.0", "react-color": "2.17.1", "reflect-metadata": "^0.1.13", "@antv/xflow-core": "1.0.55", "@antv/xflow-hook": "1.0.55" }, "devDependencies": { "react": "^16.8.0 || ^17.0.0", "react-dom": "^16.8.0 || ^17.0.0", "antd": "^4.6.3", "@antv/x6": "^1.30.1", "@antv/x6-react-components": "^1.1.15", "@antv/x6-react-shape": "^1.5.2", "@rollup/plugin-commonjs": "^20.0.0", "@rollup/plugin-node-resolve": "^13.1.1", "@rollup/plugin-replace": "^3.0.0", "@rollup/plugin-typescript": "^8.3.0", "classnames": "^2.3.1", "fs-extra": "^10.0.0", "less": "^4.1.2", "less-plugin-npm-import": "^2.1.0", "lint-staged": "^11.2.6", "lodash": "^4.17.20", "npm-run-all": "^4.1.5", "postcss": "^8 --- index.js (entry) --- "use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports.EditorPanels = exports.FlowchartService = exports.FlowchartFormWrapper = exports.FlowchartFormPanel = exports.FlowchartNodePanel = exports.FlowchartExtension = exports.FlowchartCanvas = exports.FlowGraphExtension = exports.NsGraphStatusCommand = exports.XFlowDagCommands = exports.GRAPH_STATUS_INFO = exports.DagGraphExtension = exports.usePanelContext = exports.WorkspacePanel = exports.executeJsonSchemaFormCommand = exports.NsJsonSchemaFormModel = exports.NsJsonSchemaForm = exports.FormItemWrapper = exports.JsonSchemaForm = exports.NsNodeCollapsePanel = exports.NsCollapsePanelModel = exports.NodeCollapsePanel = exports.NsNodeTreePanel = exports.NsNodeTreePanelModel = exports.NodeTreePanel = exports.CanvasMiniMap = exports.randomInt = exports.FormBuilder = exports.createToolbarConfig = exports.CanvasToolbar = exports.CANVAS_SCALE_TOOLBAR_CONFIG = exports.CanvasScaleToolbar = exports.createCtxMenuConfig = exports.CanvasContextMenu = exports.CanvasNodePortTooltip = exports.CanvasSnapline = void 0; /** 对齐线 */ var canvas_snapline_1 = require("./canvas-snapline"); Object.defineProperty(exports, "CanvasSna --- bundled output (OSV-MAL flagged — LLM scope expansion) --- --- lib/flowchart-node-panel/panel-header.js (bundled) --- "use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports.NodePanelHeader = void 0; var tslib_1 = require("tslib"); var react_1 = tslib_1.__importDefault(require("react")); var antd_1 = require("antd"); var context_1 = require("../base-panel/context"); var NodePanelHeader = function (props) { var prefixClz = props.prefixClz, onKeywordChange = props.onKeywordChange; var propsProxy = (0, context_1.usePanelContext)().propsProxy; var panelProps = propsProxy.getValue(); return (react_1.default.createElement(react_1.default.Fragment, null, react_1.default.createElement("div", { className: "".concat(prefixClz, "-header"), style: tslib_1.__assign({ zIndex: 1 }, props.style) }, panelProps.header && react_1.default.isValidElement(panelProps.header) && panelProps.header, react_1.default.createElement("div", { className: "".concat(prefixClz, "-header-search") }, react_1.default.createElement(antd_1.Input, { placeholder: "\u641C\u7D22\u7EC4\u4EF6", allowClear: true, onChange: function (e) { return onKeywordChange(e.target.value); }, style: { width: '100%', border: 0 } }))))); }; exports.NodePanelHeader = NodePanelHeader; //# sourceMappingURL=panel-header.js.map --- lib/flowchart-editor-panel/form-wrapper.js (bundled) --- "use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports.FlowchartFormWrapper = void 0; var tslib_1 = require("tslib"); var react_1 = tslib_1.__importStar(require("react")); var xflow_core_1 = require("@antv/xflow-core"); var utils_1 = require("../flowchart-canvas/utils"); var canvas_json_schema_form_1 = require("../canvas-json-schema-form"); var context_1 = require("../base-panel/context"); var useAsync_1 = tslib_1.__importDefault(require("./useAsync")); var FlowchartFormWrapper = function (props) { var controlSchema = props.controlSchema, children = props.children, _a = props.type, formType = _a === void 0 ? 'node' : _a; var _b = (0, context_1.usePanelContext)(), commandService = _b.commandService, modelService = _b.modelService; var getSelectNode = (0, react_1.useCallback)(function () { return tslib_1.__awaiter(void 0, void 0, void 0, function () { var data; return tslib_1.__generator(this, function (_a) { switch (_a.label) { case 0: return [4 /*yield*/, xflow_core_1.MODELS.SELECTED_NODE.useValue(modelService)]; case 1: data = (_a.sent()).data; return [2 /*return*/, data]; } }); }); }, [modelService]); var getSelectEdge = (0, react_1.useCallback)(function () { return tslib_1.__awaiter(void 0, void 0, void 0, function () { var cell, data; return tslib_1.__generator(this, function (_a) { switch (_a.label) { case 0: return [4 /*yield*/, xflow_core_1.MODELS.SELECTED_CELL.useValue(modelService)]; case 1: cell = _a.sent(); data = cell.getData(); return [2 /*return*/, tslib_1.__assign({ id: cell.id }, data)]; } }); }); }, [modelService]); var _c = (0, useAsync_1.default)(formType === 'edge' ? getSelectEdge : getSelectNode), data = _c.data, loading = _c.loading --- lib/flowchart-editor-panel/control-map-service/components/fields/input-number.js (bundled) --- "use strict"; Object.defineProperty(exports, "__esModule", { value: true }); var tslib_1 = require("tslib"); var react_1 = tslib_1.__importDefault(require("react")); var antd_1 = require("antd"); var constants_1 = require("../constants"); var InputNumberFiled = function (props) { var label = props.label, value = props.value, onChange = props.onChange, min = props.min, width = props.width; return (react_1.default.createElement("div", { className: "group" }, label && react_1.default.createElement("label", null, label), react_1.default.createElement(antd_1.InputNumber, { value: value, min: min, style: { width: width, height: constants_1.FormItemHeight, }, onChange: function (v) { onChange === null || onChange === void 0 ? void 0 : onChange(v); } }))); }; exports.default = InputNumberFiled; //# sourceMappingURL=input-number.js.map --- lib/canvas-node-tree-panel/panel-footer.js (bundled) --- "use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports.NodePanelFooter = void 0; var tslib_1 = require("tslib"); var react_1 = tslib_1.__importDefault(require("react")); var context_1 = require("../base-panel/context"); var NodePanelFooter = function (props) { var prefixClz = props.prefixClz; var propsProxy = (0, context_1.usePanelContext)().propsProxy; var panelProps = propsProxy.getValue(); return (react_1.default.createElement(react_1.default.Fragment, null, react_1.default.createElement("div", { className: "".concat(prefixClz, "-footer"), style: props.style }, panelProps.footer && react_1.default.isValidElement(panelProps.footer) && panelProps.footer))); }; exports.NodePanelFooter = NodePanelFooter; //# sourceMappingURL=panel-footer.js.map --- lib/canvas-node-tree-panel/panel-header.js (bundled) --- "use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports.NodePanelHeader = void 0; var tslib_1 = require("tslib"); var react_1 = tslib_1.__importDefault(require("react")); var antd_1 = require("antd"); var context_1 = require("../base-panel/context"); var NodePanelHeader = function (props) { var prefixClz = props.prefixClz, onKeywordChange = props.onKeywordChange; var propsProxy = (0, context_1.usePanelContext)().propsProxy; var panelProps = propsProxy.getValue(); return (react_1.default.createElement(react_1.default.Fragment, null, react_1.default.createElement("div", { className: "".concat(prefixClz, "-header"), style: props.style }, panelProps.header && react_1.default.isValidElement(panelProps.header) && panelProps.header, panelProps.searchService && (react_1.default.createElement("div", { className: "".concat(prefixClz, "-header-search") }, react_1.default.createElement(antd_1.Input, { placeholder: "\u641C\u7D22\u7EC4\u4EF6", allowClear: true, onChange: function (e) { return onKeywordChange(e.target.value); }, style: { width: '100%', border: 0 } })))))); }; exports.NodePanelHeader = NodePanelHeader; //# sourceMappingURL=panel-header.js.map
