// npm 패키지
jest-electron
Easiest way to run jest unit test cases in electron.
버전
11
메인테이너
1
라이선스
MIT
최초 publish
2019-01-24
publisher
atool
tarball
61,312 B
AUTO-PUBLISHED·1개 버전 인덱싱됨·최근 publish: 2021-11-03
// publisher 캠페인by atool
이 계정에서 catch된 패키지 9건고립된 catch가 아닙니다. 동일 publisher가 8개의 다른 패키지를 추가로 발행했고, 모두 파이프라인이 catch했습니다 — 일회성이 아닌 조직적 캠페인의 형태. 아래 링크는 각 형제 catch의 분석으로 이동합니다.
// offending code· @0.1.12· 3 files flagged
llm: benign · 0.85→ 의심 전송지 없음, 원격 실행 형태 없음 — 1 known-vendor host(s).
- @0.1.12··AUTO-PUBLISHED·publisher: atoolheuristic 75/100static flags 3llm benign (0.85) via ollamamature-packagepublisher-multi-name-burst:5osv-flagged:MAL-2026-4138public-github-pushreads-env-varschild-process-spawn
→ 의심 전송지 없음, 원격 실행 형태 없음 — 1 known-vendor host(s).
// offending code· 3 files flaggedpatterns: 3
--- install scripts --- ### prepublishOnly npm run build --- package/package.json (excerpt) --- { "name": "jest-electron", "version": "0.1.12", "description": "Easiest way to run jest unit test cases in electron.", "main": "index.js", "files": [ "lib", "runner.js", "environment.js" ], "scripts": { "test-live": "DEBUG_MODE=1 jest", "test": "jest", "cp": "copyfiles -u 1 src/electron/**/*.{html,css} lib", "build": "rimraf lib && tsc && npm run cp", "prepublishOnly": "npm run build" }, "jest": { "runner": "./runner", "testEnvironment": "./environment", "preset": "ts-jest", "collectCoverage": true, "testRegex": "(/__tests__/.*\\.(test|spec))\\.tsx?$", "collectCoverageFrom": [ "src/**/*.ts" ] }, "dependencies": { "electron": "^11.4.6", "jest-haste-map": "~24.9.0", "jest-message-util": "~24.9.0", "jest-mock": "~24.9.0", "jest-resolve": "~24.9.0", "jest-runner": "~24.9.0", "jest-runtime": "~24.9.0", "jest-util": "~24.9.0", "throat": "^5.0.0", "tslib": "^1.10.0" }, "peerDependencies": { "jest": "^24.0.0" }, "devDependencies": { "@types/jest": "^24.0.18", "@types/react": "^16.9.15", "copyfiles": "^2.1.1", "jest": "^24.9.0", "react": "^16.12.0", "react-dom": "^16.12.0", "rimraf": "^3.0.0", "ts-jest": "^24.0.2", "typescript": "^3.6.2" }, "keywords": [ "jest-electron", "jest-runner", "jest", "electron" ], "author": "hustcc", "license": "MIT", "repository": { "type": "git", " --- package/lib/environment.js (excerpt) --- "use strict"; var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) { function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); } return new (P || (P = Promise))(function (resolve, reject) { function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } } function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } } function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); } step((generator = generator.apply(thisArg, _arguments || [])).next()); }); }; var __generator = (this && this.__generator) || function (thisArg, body) { var _ = { label: 0, sent: function() { if (t[0] & 1) throw t[1]; return t[1]; }, trys: [], ops: [] }, f, y, t, g; return g = { next: verb(0), "throw": verb(1), "return": verb(2) }, typeof Symbol === "function" && (g[Symbol.iterator] = function() { return this; }), g; function verb(n) { return function (v) { return step([n, v]); }; } function step(op) { if (f) throw new TypeError("Generator is already executing."); while (_) try { if (f = 1, y && (t = op[0] & 2 ? y["return"] : op[0] ? y["throw"] || ((t = y["return"]) && t.call(y), 0) : y.next) && !(t = t.call(y, op[1])).done) return t; if (y = 0, t) op = [op[0] & 2, t.value]; switch (op[0]) { --- package/lib/runner.js (excerpt) --- "use strict"; var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) { function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); } return new (P || (P = Promise))(function (resolve, reject) { function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } } function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } } function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); } step((generator = generator.apply(thisArg, _arguments || [])).next()); }); }; var __generator = (this && this.__generator) || function (thisArg, body) { var _ = { label: 0, sent: function() { if (t[0] & 1) throw t[1]; return t[1]; }, trys: [], ops: [] }, f, y, t, g; return g = { next: verb(0), "throw": verb(1), "return": verb(2) }, typeof Symbol === "function" && (g[Symbol.iterator] = function() { return this; }), g; function verb(n) { return function (v) { return step([n, v]); }; } function step(op) { if (f) throw new TypeError("Generator is already executing."); while (_) try { if (f = 1, y && (t = op[0] & 2 ? y["return"] : op[0] ? y["throw"] || ((t = y["return"]) && t.call(y), 0) : y.next) && !(t = t.call(y, op[1])).done) return t; if (y = 0, t) op = [op[0] & 2, t.value]; switch (op[0]) {
