// npm 패키지
ionic-insta-api-wrapper
Search stories, reels, posts, highlights... on Insta in ionic apps
버전
13
메인테이너
1
라이선스
ISC
최초 publish
2025-08-16
publisher
dave7117
tarball
144,869 B
AUTO-PUBLISHED·1개 버전 인덱싱됨·최근 publish: 2026-05-21
// exfil path
what is read → where it shipssteals
- ● Chromium logins
sends to
(no destination string extracted — payload may be dynamic / obfuscated)
evidence in excerpt
> "url": "git+https://github.com/appit-online/ionic-insta-api-wrapper.git" > "url": "https://paypal.me/dave7117", > "url": "https://github.com/appit-online/ionic-insta-api-wrapper/issues" > "homepage": "https://github.com/appit-online/ionic-insta-api-wrapper#readme", > // https://stackoverflow.com/questions/16758316/where-do-i-find-the-instagram-media-id-of-a-image
// offending code· @1.1.2· 4 files flagged
llm: benign · 0.85→ 의심 전송지 없음, 원격 실행 형태 없음 — 1 known-vendor host(s).
- @1.1.2··AUTO-PUBLISHED·publisher: dave7117heuristic 75/100static flags 3llm benign (0.85) via ollamanew-publisher:5dmature-packagehas-source-repoosv-flagged:MAL-2026-4588public-github-pushreads-chromium-credschild-process-spawn
→ 의심 전송지 없음, 원격 실행 형태 없음 — 1 known-vendor host(s).
// offending code· 4 files flaggedpatterns: 3
--- install scripts --- ### prepare npm run build ### prepublishOnly npm run lint --- package/package.json (excerpt) --- { "name": "ionic-insta-api-wrapper", "version": "1.1.2", "description": "Search stories, reels, posts, highlights... on Insta in ionic apps", "main": "lib/index.js", "types": "lib/index.d.ts", "scripts": { "test": "jest --config jestconfig.json", "build": "tsc", "format": "prettier --write \"src/**/*.ts\" \"src/**/*.js\"", "lint": "tslint -p tsconfig.json", "prepare": "npm run build", "prepublishOnly": "npm run lint", "preversion": "npm run lint", "version": "npm run format && git add -A src", "postversion": "git push && git push --tags" }, "repository": { "type": "git", "url": "git+https://github.com/appit-online/ionic-insta-api-wrapper.git" }, "keywords": [ "instagram", "insta", "ionic", "insta search", "ionic insta search", "insta video search", "insta story search", "ionic insta video search", "ionic insta story search", "insta video urls", "angular insta search", "insta api", "insta crawler", "insta info", "insta story", "insta stories", "insta story urls", "insta information" ], "funding": { "url": "https://paypal.me/dave7117", "type": "paypal" }, "author": "AppIT", "license": "ISC", "files": [ "lib/**/*" ], "bugs": { "url": "https://github.com/appit-online/ionic-insta-api-wrapper/issues" }, "homepage": "https://github.com/appit-online/ionic-insta-api-wrapper#readme", "devDependencies": { "@type --- package/lib/index.js (excerpt) --- "use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports.LoginService = exports.InstaService = void 0; exports.getCookie = getCookie; const handler_1 = require("./lib/handler"); function getCookie(username, password, withLoginData = false) { return (0, handler_1.getCookies)(username, password, withLoginData); } var client_service_1 = require("./lib/client.service"); Object.defineProperty(exports, "InstaService", { enumerable: true, get: function () { return client_service_1.InstaService; } }); var login_service_1 = require("./lib/login.service"); Object.defineProperty(exports, "LoginService", { enumerable: true, get: function () { return login_service_1.LoginService; } }); --- package/lib/utils/index.js (excerpt) --- "use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports.getPostType = exports.isIgPostUrl = exports.shortcodeFormatter = exports.IGPostRegex = exports.shortcodeFromMediaID = exports.shortcodeToMediaID = void 0; const types_1 = require("../types"); const bigInt = require("big-integer"); // https://stackoverflow.com/questions/16758316/where-do-i-find-the-instagram-media-id-of-a-image // https://gist.github.com/sclark39/9daf13eea9c0b381667b61e3d2e7bc11 const lower = 'abcdefghijklmnopqrstuvwxyz'; const upper = lower.toUpperCase(); const numbers = '0123456789'; const igAlphabet = upper + lower + numbers + '-_'; const bigintAlphabet = numbers + lower; /** * convert instagram shortcode into media_id * @param shortcode * @returns */ const shortcodeToMediaID = (shortcode) => { const o = shortcode.replace(/\S/g, m => { const c = igAlphabet.indexOf(m); const b = bigintAlphabet.charAt(c); return (b !== "") ? b : `<${c}>`; }); return bigInt(o, 64).toString(10); }; exports.shortcodeToMediaID = shortcodeToMediaID; const shortcodeFromMediaID = (mediaId) => { const o = bigInt(mediaId).toString(64); return o.replace(/<(\d+)>|(\w)/g, (_m, m1, m2) => { return igAlphabet.charAt((m1) // tslint:disable-next-line:radix ? parseInt(m1) : bigintAlphabet.indexOf(m2)); }); }; exports.shortcodeFromMediaID = shortcodeFromMediaID; /** Instagram post regex */ exports.IGPostRegex = /(?: --- package/lib/lib/handler.d.ts (excerpt) --- import { LoginData } from '../types'; /** * * @param {string} username * @param {string} password * @param {boolean} withLoginData if true, it will return user profile data * @returns */ export declare const getCookies: (username: string, pass: string, withLoginData: boolean) => Promise<LoginData | { cookie: string; expires: string | null; }>;
