@chainpatrol/sdk 1.2.0 → 1.4.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/CHANGELOG.md +113 -0
- package/dist/api/index.d.mts +228 -1
- package/dist/api/index.d.ts +228 -1
- package/dist/api/index.js +20 -9
- package/dist/api/index.js.map +1 -1
- package/dist/api/index.mjs +20 -10
- package/dist/api/index.mjs.map +1 -1
- package/dist/{chunk-S5BCAUOT.mjs → chunk-CXASSCWN.mjs} +34 -3
- package/dist/chunk-CXASSCWN.mjs.map +1 -0
- package/dist/index.js +83 -6
- package/dist/index.js.map +1 -1
- package/dist/index.mjs +83 -6
- package/dist/index.mjs.map +1 -1
- package/dist/skill/cli.js +32 -1
- package/dist/skill/cli.js.map +1 -1
- package/dist/skill/cli.mjs +1 -1
- package/dist/skill/index.js +32 -1
- package/dist/skill/index.js.map +1 -1
- package/dist/skill/index.mjs +1 -1
- package/package.json +1 -1
- package/dist/chunk-S5BCAUOT.mjs.map +0 -1
package/dist/index.mjs
CHANGED
|
@@ -7133,7 +7133,8 @@ var TakedownStatus = {
|
|
|
7133
7133
|
PENDING_RETRACTION: "PENDING_RETRACTION",
|
|
7134
7134
|
RETRACTION_SENT: "RETRACTION_SENT",
|
|
7135
7135
|
RETRACTED: "RETRACTED",
|
|
7136
|
-
PENDING_INPUT: "PENDING_INPUT"
|
|
7136
|
+
PENDING_INPUT: "PENDING_INPUT",
|
|
7137
|
+
PENDING_EVIDENCE: "PENDING_EVIDENCE"
|
|
7137
7138
|
};
|
|
7138
7139
|
var AssetStatus = {
|
|
7139
7140
|
UNKNOWN: "UNKNOWN",
|
|
@@ -7326,10 +7327,17 @@ z.object({
|
|
|
7326
7327
|
/** An array of assets with their content, type, status, and update timestamp. */
|
|
7327
7328
|
assets: z.array(
|
|
7328
7329
|
z.object({
|
|
7330
|
+
id: z.number().describe("Asset ID \u2014 use to reference the asset in follow-up calls"),
|
|
7329
7331
|
content: z.string().describe("Asset content"),
|
|
7330
7332
|
type: z.nativeEnum(AssetType).describe("Asset type"),
|
|
7331
7333
|
status: z.nativeEnum(AssetStatus).describe("The result of the asset status check"),
|
|
7332
7334
|
watchStatus: z.nativeEnum(WatchStatus).describe("The watch status of the asset"),
|
|
7335
|
+
livenessStatus: z.nativeEnum(LivenessStatus).nullable().describe(
|
|
7336
|
+
"Whether the asset is currently reachable (`ALIVE`), gone (`DEAD`), or hasn't been checked (`UNKNOWN`). `null` when liveness has never been evaluated."
|
|
7337
|
+
),
|
|
7338
|
+
blockedAt: z.date().nullable().describe(
|
|
7339
|
+
"When the asset transitioned to BLOCKED status. `null` for non-blocked assets or blocks predating the field. Distinct from `updatedAt`, which changes on any mutation."
|
|
7340
|
+
),
|
|
7333
7341
|
updatedAt: z.date()
|
|
7334
7342
|
})
|
|
7335
7343
|
),
|
|
@@ -7597,8 +7605,8 @@ z.object({
|
|
|
7597
7605
|
}),
|
|
7598
7606
|
ok: z.boolean(),
|
|
7599
7607
|
severity: HealthcheckSeveritySchema,
|
|
7600
|
-
observed: z.record(z.union([z.number(), z.string(), z.boolean()
|
|
7601
|
-
threshold: z.record(z.union([z.number(), z.string(), z.boolean()
|
|
7608
|
+
observed: z.record(z.union([z.number(), z.string(), z.boolean()]).nullable()),
|
|
7609
|
+
threshold: z.record(z.union([z.number(), z.string(), z.boolean()]).nullable()),
|
|
7602
7610
|
findings: z.array(HealthcheckFindingSchema),
|
|
7603
7611
|
suggestedAction: z.string().nullable(),
|
|
7604
7612
|
appUrl: z.string().nullable()
|
|
@@ -7759,6 +7767,12 @@ var organizationAssetItemSchema = z.object({
|
|
|
7759
7767
|
id: z.number().describe("Group ID"),
|
|
7760
7768
|
name: z.string().describe("Group name")
|
|
7761
7769
|
}).nullable().describe("Asset group information"),
|
|
7770
|
+
livenessStatus: z.nativeEnum(LivenessStatus).nullable().describe(
|
|
7771
|
+
"Whether the asset is currently reachable (`ALIVE`), gone (`DEAD`), or hasn't been checked (`UNKNOWN`). `null` when liveness has never been evaluated."
|
|
7772
|
+
),
|
|
7773
|
+
blockedAt: z.date().nullable().describe(
|
|
7774
|
+
"When the asset transitioned to BLOCKED status. `null` for non-blocked assets. Distinct from `updatedAt`."
|
|
7775
|
+
),
|
|
7762
7776
|
createdAt: z.date().describe("When the asset was created"),
|
|
7763
7777
|
updatedAt: z.date().describe("When the asset was last updated")
|
|
7764
7778
|
});
|
|
@@ -8267,6 +8281,7 @@ var AssetScanEnrichmentType = /* @__PURE__ */ ((AssetScanEnrichmentType2) => {
|
|
|
8267
8281
|
AssetScanEnrichmentType2["FARCASTER_MINIAPP"] = "miniapp";
|
|
8268
8282
|
AssetScanEnrichmentType2["TELEGRAM_PROFILE"] = "telegram_profile";
|
|
8269
8283
|
AssetScanEnrichmentType2["INSTAGRAM_PROFILE"] = "instagram_profile";
|
|
8284
|
+
AssetScanEnrichmentType2["FACEBOOK_PROFILE"] = "facebook_profile";
|
|
8270
8285
|
AssetScanEnrichmentType2["YOUTUBE_VIDEO"] = "youtube_video";
|
|
8271
8286
|
AssetScanEnrichmentType2["YOUTUBE_CHANNEL"] = "youtube_channel";
|
|
8272
8287
|
AssetScanEnrichmentType2["APPLE_APP_STORE_LISTING"] = "apple_app_store_listing";
|
|
@@ -8281,11 +8296,13 @@ var AssetScanEnrichmentType = /* @__PURE__ */ ((AssetScanEnrichmentType2) => {
|
|
|
8281
8296
|
AssetScanEnrichmentType2["VIMEO_VIDEO"] = "vimeo_video";
|
|
8282
8297
|
AssetScanEnrichmentType2["VIMEO_PROFILE"] = "vimeo_profile";
|
|
8283
8298
|
AssetScanEnrichmentType2["STACKBLITZ_PAGE"] = "stackblitz_page";
|
|
8299
|
+
AssetScanEnrichmentType2["LEETCODE_PAGE"] = "leetcode_page";
|
|
8284
8300
|
AssetScanEnrichmentType2["NPM_PACKAGE"] = "npm_package";
|
|
8285
8301
|
AssetScanEnrichmentType2["PYPI_PACKAGE"] = "pypi_package";
|
|
8286
8302
|
AssetScanEnrichmentType2["RUST_PACKAGE"] = "rust_package";
|
|
8287
8303
|
AssetScanEnrichmentType2["LINKEDIN_PROFILE"] = "linkedin_profile";
|
|
8288
8304
|
AssetScanEnrichmentType2["META_AD"] = "meta_ad";
|
|
8305
|
+
AssetScanEnrichmentType2["GOOGLE_AD"] = "google_ad";
|
|
8289
8306
|
AssetScanEnrichmentType2["CONTRACT_DEPLOYER"] = "contract_deployer";
|
|
8290
8307
|
return AssetScanEnrichmentType2;
|
|
8291
8308
|
})(AssetScanEnrichmentType || {});
|
|
@@ -8302,6 +8319,7 @@ var AssetScanEnrichmentSource = /* @__PURE__ */ ((AssetScanEnrichmentSource2) =>
|
|
|
8302
8319
|
AssetScanEnrichmentSource2["NEYNAR_API"] = "neynar_api";
|
|
8303
8320
|
AssetScanEnrichmentSource2["TELEGRAM_API"] = "telegram_api";
|
|
8304
8321
|
AssetScanEnrichmentSource2["INSTAGRAM_API"] = "instagram_api";
|
|
8322
|
+
AssetScanEnrichmentSource2["FACEBOOK_API"] = "facebook_api";
|
|
8305
8323
|
AssetScanEnrichmentSource2["YOUTUBE_API"] = "youtube_api";
|
|
8306
8324
|
AssetScanEnrichmentSource2["APPLE_APP_STORE_API"] = "apple_app_store_api";
|
|
8307
8325
|
AssetScanEnrichmentSource2["GOOGLE_PLAY_STORE_API"] = "google_play_store_api";
|
|
@@ -8313,11 +8331,13 @@ var AssetScanEnrichmentSource = /* @__PURE__ */ ((AssetScanEnrichmentSource2) =>
|
|
|
8313
8331
|
AssetScanEnrichmentSource2["DAILYMOTION_API"] = "dailymotion_api";
|
|
8314
8332
|
AssetScanEnrichmentSource2["VIMEO_API"] = "vimeo_api";
|
|
8315
8333
|
AssetScanEnrichmentSource2["STACKBLITZ_API"] = "stackblitz_api";
|
|
8334
|
+
AssetScanEnrichmentSource2["LEETCODE_API"] = "leetcode_api";
|
|
8316
8335
|
AssetScanEnrichmentSource2["NPM_REGISTRY_API"] = "npm_registry_api";
|
|
8317
8336
|
AssetScanEnrichmentSource2["PYPI_REGISTRY_API"] = "pypi_registry_api";
|
|
8318
8337
|
AssetScanEnrichmentSource2["CRATES_IO_API"] = "crates_io_api";
|
|
8319
8338
|
AssetScanEnrichmentSource2["APIFY_LINKEDIN_API"] = "apify_linkedin_api";
|
|
8320
8339
|
AssetScanEnrichmentSource2["META_ADS_LIBRARY"] = "meta_ads_library";
|
|
8340
|
+
AssetScanEnrichmentSource2["GOOGLE_ADS_TRANSPARENCY_CENTER"] = "google_ads_transparency_center";
|
|
8321
8341
|
AssetScanEnrichmentSource2["ETHERSCAN_API"] = "etherscan_api";
|
|
8322
8342
|
return AssetScanEnrichmentSource2;
|
|
8323
8343
|
})(AssetScanEnrichmentSource || {});
|
|
@@ -8341,6 +8361,8 @@ var ASSET_SCAN_ENRICHMENT_TYPE_LABELS = {
|
|
|
8341
8361
|
["telegram_profile" /* TELEGRAM_PROFILE */]: "Telegram Profile",
|
|
8342
8362
|
// Instagram
|
|
8343
8363
|
["instagram_profile" /* INSTAGRAM_PROFILE */]: "Instagram Profile",
|
|
8364
|
+
// Facebook
|
|
8365
|
+
["facebook_profile" /* FACEBOOK_PROFILE */]: "Facebook Profile",
|
|
8344
8366
|
// YouTube
|
|
8345
8367
|
["youtube_video" /* YOUTUBE_VIDEO */]: "YouTube Video",
|
|
8346
8368
|
["youtube_channel" /* YOUTUBE_CHANNEL */]: "YouTube Channel",
|
|
@@ -8366,6 +8388,8 @@ var ASSET_SCAN_ENRICHMENT_TYPE_LABELS = {
|
|
|
8366
8388
|
["vimeo_profile" /* VIMEO_PROFILE */]: "Vimeo Profile",
|
|
8367
8389
|
// Stackblitz
|
|
8368
8390
|
["stackblitz_page" /* STACKBLITZ_PAGE */]: "Stackblitz Page",
|
|
8391
|
+
// Leetcode
|
|
8392
|
+
["leetcode_page" /* LEETCODE_PAGE */]: "Leetcode Page",
|
|
8369
8393
|
// NPM
|
|
8370
8394
|
["npm_package" /* NPM_PACKAGE */]: "NPM Package",
|
|
8371
8395
|
// PyPI
|
|
@@ -8376,6 +8400,8 @@ var ASSET_SCAN_ENRICHMENT_TYPE_LABELS = {
|
|
|
8376
8400
|
["linkedin_profile" /* LINKEDIN_PROFILE */]: "LinkedIn Profile",
|
|
8377
8401
|
// Meta Ads
|
|
8378
8402
|
["meta_ad" /* META_AD */]: "Meta Ad",
|
|
8403
|
+
// Google Ads
|
|
8404
|
+
["google_ad" /* GOOGLE_AD */]: "Google Ad",
|
|
8379
8405
|
// Crypto / Onchain
|
|
8380
8406
|
["contract_deployer" /* CONTRACT_DEPLOYER */]: "Contract Deployer"
|
|
8381
8407
|
};
|
|
@@ -8397,6 +8423,8 @@ var ASSET_SCAN_ENRICHMENT_SOURCE_LABELS = {
|
|
|
8397
8423
|
["telegram_api" /* TELEGRAM_API */]: "Telegram API",
|
|
8398
8424
|
// Instagram
|
|
8399
8425
|
["instagram_api" /* INSTAGRAM_API */]: "Instagram API",
|
|
8426
|
+
// Facebook
|
|
8427
|
+
["facebook_api" /* FACEBOOK_API */]: "Facebook API",
|
|
8400
8428
|
// YouTube
|
|
8401
8429
|
["youtube_api" /* YOUTUBE_API */]: "YouTube API",
|
|
8402
8430
|
// Apple App Store
|
|
@@ -8418,6 +8446,8 @@ var ASSET_SCAN_ENRICHMENT_SOURCE_LABELS = {
|
|
|
8418
8446
|
["vimeo_api" /* VIMEO_API */]: "Vimeo API",
|
|
8419
8447
|
// Stackblitz
|
|
8420
8448
|
["stackblitz_api" /* STACKBLITZ_API */]: "Stackblitz API",
|
|
8449
|
+
// Leetcode
|
|
8450
|
+
["leetcode_api" /* LEETCODE_API */]: "Leetcode API",
|
|
8421
8451
|
// NPM
|
|
8422
8452
|
["npm_registry_api" /* NPM_REGISTRY_API */]: "NPM Registry API",
|
|
8423
8453
|
// PyPI
|
|
@@ -8428,6 +8458,8 @@ var ASSET_SCAN_ENRICHMENT_SOURCE_LABELS = {
|
|
|
8428
8458
|
["apify_linkedin_api" /* APIFY_LINKEDIN_API */]: "Apify LinkedIn API",
|
|
8429
8459
|
// Meta Ads
|
|
8430
8460
|
["meta_ads_library" /* META_ADS_LIBRARY */]: "Meta Ads Library",
|
|
8461
|
+
// Google Ads
|
|
8462
|
+
["google_ads_transparency_center" /* GOOGLE_ADS_TRANSPARENCY_CENTER */]: "Google Ads Transparency Center",
|
|
8431
8463
|
// Crypto / Onchain
|
|
8432
8464
|
["etherscan_api" /* ETHERSCAN_API */]: "Etherscan"
|
|
8433
8465
|
};
|
|
@@ -8482,6 +8514,8 @@ var ASSET_SCAN_ENRICHMENT_SOURCE_TO_TYPES = {
|
|
|
8482
8514
|
["telegram_api" /* TELEGRAM_API */]: ["telegram_profile" /* TELEGRAM_PROFILE */],
|
|
8483
8515
|
// Instagram-related sources
|
|
8484
8516
|
["instagram_api" /* INSTAGRAM_API */]: ["instagram_profile" /* INSTAGRAM_PROFILE */],
|
|
8517
|
+
// Facebook-related sources
|
|
8518
|
+
["facebook_api" /* FACEBOOK_API */]: ["facebook_profile" /* FACEBOOK_PROFILE */],
|
|
8485
8519
|
// YouTube-related sources
|
|
8486
8520
|
["youtube_api" /* YOUTUBE_API */]: [
|
|
8487
8521
|
"youtube_video" /* YOUTUBE_VIDEO */,
|
|
@@ -8515,6 +8549,8 @@ var ASSET_SCAN_ENRICHMENT_SOURCE_TO_TYPES = {
|
|
|
8515
8549
|
],
|
|
8516
8550
|
// Stackblitz-related sources
|
|
8517
8551
|
["stackblitz_api" /* STACKBLITZ_API */]: ["stackblitz_page" /* STACKBLITZ_PAGE */],
|
|
8552
|
+
// Leetcode-related sources
|
|
8553
|
+
["leetcode_api" /* LEETCODE_API */]: ["leetcode_page" /* LEETCODE_PAGE */],
|
|
8518
8554
|
// NPM-related sources
|
|
8519
8555
|
["npm_registry_api" /* NPM_REGISTRY_API */]: ["npm_package" /* NPM_PACKAGE */],
|
|
8520
8556
|
// PyPI-related sources
|
|
@@ -8527,6 +8563,10 @@ var ASSET_SCAN_ENRICHMENT_SOURCE_TO_TYPES = {
|
|
|
8527
8563
|
],
|
|
8528
8564
|
// Meta Ads-related sources
|
|
8529
8565
|
["meta_ads_library" /* META_ADS_LIBRARY */]: ["meta_ad" /* META_AD */],
|
|
8566
|
+
// Google Ads-related sources
|
|
8567
|
+
["google_ads_transparency_center" /* GOOGLE_ADS_TRANSPARENCY_CENTER */]: [
|
|
8568
|
+
"google_ad" /* GOOGLE_AD */
|
|
8569
|
+
],
|
|
8530
8570
|
// Crypto / Onchain sources
|
|
8531
8571
|
["etherscan_api" /* ETHERSCAN_API */]: ["contract_deployer" /* CONTRACT_DEPLOYER */]
|
|
8532
8572
|
};
|
|
@@ -11393,7 +11433,8 @@ var delay = (ms) => {
|
|
|
11393
11433
|
var whois_exports = {};
|
|
11394
11434
|
__export(whois_exports, {
|
|
11395
11435
|
extractWhoisCountry: () => extractWhoisCountry,
|
|
11396
|
-
extractWhoisPayload: () => extractWhoisPayload
|
|
11436
|
+
extractWhoisPayload: () => extractWhoisPayload,
|
|
11437
|
+
normalizeRegistrar: () => normalizeRegistrar
|
|
11397
11438
|
});
|
|
11398
11439
|
function extractWhoisPayload(raw) {
|
|
11399
11440
|
var _a;
|
|
@@ -11418,6 +11459,9 @@ var WHOIS_COUNTRY_KEY_ALIASES = /* @__PURE__ */ new Set([
|
|
|
11418
11459
|
function normalizeWhoisKey(key) {
|
|
11419
11460
|
return key.toLowerCase().replace(/[^a-z0-9]/g, "");
|
|
11420
11461
|
}
|
|
11462
|
+
function normalizeRegistrar(value) {
|
|
11463
|
+
return value.toLowerCase().replace(/[^a-z0-9]/g, "");
|
|
11464
|
+
}
|
|
11421
11465
|
function parseWhoisString(value) {
|
|
11422
11466
|
if (typeof value !== "string") {
|
|
11423
11467
|
return void 0;
|
|
@@ -11971,13 +12015,25 @@ for parsing the dates.`
|
|
|
11971
12015
|
var takedownItemSchema = z.object({
|
|
11972
12016
|
id: z.number().describe("Takedown ID"),
|
|
11973
12017
|
status: z.nativeEnum(TakedownStatus).describe("Takedown status"),
|
|
12018
|
+
externalId: z.string().nullable().describe(
|
|
12019
|
+
"Provider's own reference for this takedown (e.g. CleanDNS report ID, registrar ticket number). Use this to reconcile a takedown against the vendor's dashboard. `null` when no vendor has picked it up yet."
|
|
12020
|
+
),
|
|
12021
|
+
hasFilingDelay: z.boolean().describe(
|
|
12022
|
+
"Manually set by staff to exclude the takedown from median-time metrics when its filing was delayed for reasons unrelated to platform performance. Useful for explaining a stuck-looking takedown."
|
|
12023
|
+
),
|
|
12024
|
+
hasLivenessCheckDelay: z.boolean().describe(
|
|
12025
|
+
"Manually set by staff to exclude the takedown from median-time metrics when the liveness-check step was delayed for reasons unrelated to platform performance."
|
|
12026
|
+
),
|
|
11974
12027
|
createdAt: z.date().describe("When the takedown was created"),
|
|
11975
12028
|
updatedAt: z.date().describe("When the takedown was last updated"),
|
|
11976
12029
|
asset: z.object({
|
|
11977
12030
|
id: z.number().describe("Asset ID"),
|
|
11978
12031
|
content: z.string().describe("Asset content (URL, handle, etc.)"),
|
|
11979
12032
|
type: z.nativeEnum(AssetType).describe("Asset type"),
|
|
11980
|
-
livenessStatus: z.nativeEnum(LivenessStatus).nullable().describe("Asset liveness status")
|
|
12033
|
+
livenessStatus: z.nativeEnum(LivenessStatus).nullable().describe("Asset liveness status"),
|
|
12034
|
+
blockedAt: z.date().nullable().describe(
|
|
12035
|
+
"When the asset was blocked (transitioned to BLOCKED status). `null` if the asset was never blocked (rare for takedown rows). Distinct from `updatedAt`, which changes on any mutation."
|
|
12036
|
+
)
|
|
11981
12037
|
}).describe("Associated asset information"),
|
|
11982
12038
|
assignee: z.object({
|
|
11983
12039
|
id: z.number().describe("Assignee user ID"),
|
|
@@ -11987,7 +12043,25 @@ var takedownItemSchema = z.object({
|
|
|
11987
12043
|
id: z.number().describe("Brand ID"),
|
|
11988
12044
|
name: z.string().describe("Brand name"),
|
|
11989
12045
|
slug: z.string().nullable().describe("Brand slug")
|
|
11990
|
-
}).nullable().describe("Associated brand information")
|
|
12046
|
+
}).nullable().describe("Associated brand information"),
|
|
12047
|
+
domainRegistrar: z.object({
|
|
12048
|
+
id: z.number().describe("Provider ID"),
|
|
12049
|
+
name: z.string().describe("Provider name (e.g. `Namecheap`, `GoDaddy`)")
|
|
12050
|
+
}).nullable().describe(
|
|
12051
|
+
"Domain registrar assigned to this takedown. `null` when unresolved. Distinct from the per-task `takedownProvider` \u2014 this is the takedown-level assignment for the domain itself."
|
|
12052
|
+
),
|
|
12053
|
+
hostingProvider: z.object({
|
|
12054
|
+
id: z.number().describe("Provider ID"),
|
|
12055
|
+
name: z.string().describe("Provider name (e.g. `Cloudflare`, `AWS`)")
|
|
12056
|
+
}).nullable().describe(
|
|
12057
|
+
"Hosting provider assigned to this takedown. `null` when unresolved. Answers 'who hosts this?' without a follow-up call."
|
|
12058
|
+
),
|
|
12059
|
+
tldRegistrar: z.object({
|
|
12060
|
+
id: z.number().describe("Provider ID"),
|
|
12061
|
+
name: z.string().describe("TLD registrar name (e.g. `Verisign`, `Public Interest Registry`)")
|
|
12062
|
+
}).nullable().describe(
|
|
12063
|
+
"Top-level-domain registrar assigned to this takedown. `null` when unresolved."
|
|
12064
|
+
)
|
|
11991
12065
|
});
|
|
11992
12066
|
z.object({
|
|
11993
12067
|
takedowns: z.array(takedownItemSchema).describe("List of takedowns"),
|
|
@@ -12079,6 +12153,9 @@ z.object({
|
|
|
12079
12153
|
id: z.number().describe("Threat ID"),
|
|
12080
12154
|
content: z.string().describe("Threat content"),
|
|
12081
12155
|
type: z.nativeEnum(AssetType).describe("Asset type"),
|
|
12156
|
+
livenessStatus: z.nativeEnum(LivenessStatus).nullable().describe(
|
|
12157
|
+
"Whether the blocked threat is currently reachable (`ALIVE`), gone (`DEAD`), or unchecked (`UNKNOWN`). Use to filter out dead threats without a second call."
|
|
12158
|
+
),
|
|
12082
12159
|
blockedAt: z.date().describe("When the asset was blocked")
|
|
12083
12160
|
})
|
|
12084
12161
|
),
|