@dracoonghost/trndup-sdk 1.3.24 → 1.3.25

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/dist/index.d.mts CHANGED
@@ -1401,6 +1401,259 @@ declare namespace Insights {
1401
1401
  /** Days per comparison period (14-90, default: 30) */
1402
1402
  period?: number;
1403
1403
  }
1404
+ interface TopPostData {
1405
+ mediaId: string;
1406
+ caption: string | null;
1407
+ mediaType: 'IMAGE' | 'VIDEO' | 'CAROUSEL_ALBUM' | 'REELS';
1408
+ thumbnailUrl: string | null;
1409
+ permalink: string;
1410
+ postedAt: string;
1411
+ ageInDays: number;
1412
+ }
1413
+ interface TopPostMetrics {
1414
+ reach: number;
1415
+ views: number;
1416
+ likes: number;
1417
+ comments: number;
1418
+ shares: number;
1419
+ saves: number;
1420
+ engagementRate: number;
1421
+ }
1422
+ interface TopPostComparison {
1423
+ vsAccountAverage: {
1424
+ reach: number;
1425
+ engagement: number;
1426
+ description: string;
1427
+ };
1428
+ standoutReasons: string[];
1429
+ }
1430
+ interface BestPerformingPostData {
1431
+ period: {
1432
+ start: string;
1433
+ end: string;
1434
+ days: number;
1435
+ };
1436
+ topPost: TopPostData;
1437
+ metrics: TopPostMetrics;
1438
+ comparison: TopPostComparison;
1439
+ insight: string;
1440
+ runnersUp: Array<{
1441
+ mediaId: string;
1442
+ caption: string | null;
1443
+ reach: number;
1444
+ thumbnailUrl: string | null;
1445
+ }>;
1446
+ }
1447
+ type BestPerformingPostResponse = InsufficientDataResponse | {
1448
+ hasData: true;
1449
+ data: BestPerformingPostData;
1450
+ _meta: InsightMeta;
1451
+ };
1452
+ type PostingConsistencyStatus = 'excellent' | 'good' | 'needs_improvement' | 'poor' | 'inactive';
1453
+ interface MonthlyPostData {
1454
+ month: string;
1455
+ posts: number;
1456
+ avgGap: number | null;
1457
+ }
1458
+ interface PostingConsistencyData {
1459
+ period: {
1460
+ start: string;
1461
+ end: string;
1462
+ days: number;
1463
+ };
1464
+ consistencyScore: number;
1465
+ status: PostingConsistencyStatus;
1466
+ metrics: {
1467
+ totalPosts: number;
1468
+ avgDaysBetweenPosts: number;
1469
+ postVariance: number;
1470
+ daysSinceLastPost: number;
1471
+ lastPostDate: string | null;
1472
+ };
1473
+ pattern: {
1474
+ isRegular: boolean;
1475
+ typicalGap: string;
1476
+ longestStreak: number;
1477
+ currentStreak: number;
1478
+ trend: 'increasing' | 'stable' | 'decreasing';
1479
+ trendDescription: string;
1480
+ };
1481
+ monthlyBreakdown: MonthlyPostData[];
1482
+ recommendation: {
1483
+ suggested: string;
1484
+ current: string;
1485
+ reason: string;
1486
+ };
1487
+ insight: string;
1488
+ recommendations: string[];
1489
+ }
1490
+ type PostingConsistencyResponse = InsufficientDataResponse | {
1491
+ hasData: true;
1492
+ data: PostingConsistencyData;
1493
+ _meta: InsightMeta;
1494
+ };
1495
+ type FollowerQualityLabel = 'excellent' | 'good' | 'fair' | 'needs_attention' | 'concerning';
1496
+ interface FollowerQualityData {
1497
+ period: {
1498
+ start: string;
1499
+ end: string;
1500
+ days: number;
1501
+ };
1502
+ qualityScore: number;
1503
+ scoreLabel: FollowerQualityLabel;
1504
+ metrics: {
1505
+ followsGained: number;
1506
+ unfollows: number;
1507
+ netFollowers: number;
1508
+ retentionRate: number;
1509
+ engagementPerFollower: number;
1510
+ reachPerFollower: number;
1511
+ accountsEngaged: number;
1512
+ };
1513
+ trend: {
1514
+ scoreChange: number;
1515
+ direction: 'improving' | 'stable' | 'declining';
1516
+ description: string;
1517
+ };
1518
+ insight: string;
1519
+ recommendations: string[];
1520
+ }
1521
+ type FollowerQualityResponse = InsufficientDataResponse | {
1522
+ hasData: true;
1523
+ data: FollowerQualityData;
1524
+ _meta: InsightMeta;
1525
+ };
1526
+ type InstagramMomentumStatus = 'surging' | 'rising' | 'steady' | 'cooling' | 'dropping';
1527
+ type InstagramMomentumTrend = 'accelerating' | 'stable' | 'decelerating';
1528
+ interface InstagramMetricChange {
1529
+ current: number;
1530
+ previous: number;
1531
+ change: number;
1532
+ }
1533
+ interface InstagramMomentumData {
1534
+ score: number;
1535
+ rawChange: number;
1536
+ status: InstagramMomentumStatus;
1537
+ trend: InstagramMomentumTrend;
1538
+ previousScore: number | null;
1539
+ period: {
1540
+ current: {
1541
+ start: string;
1542
+ end: string;
1543
+ };
1544
+ previous: {
1545
+ start: string;
1546
+ end: string;
1547
+ };
1548
+ };
1549
+ breakdown: {
1550
+ reach: InstagramMetricChange;
1551
+ engagement: InstagramMetricChange;
1552
+ followers: InstagramMetricChange;
1553
+ profileViews: InstagramMetricChange;
1554
+ };
1555
+ insight: string;
1556
+ topDrivers: string[];
1557
+ }
1558
+ type InstagramMomentumResponse = InsufficientDataResponse | {
1559
+ hasData: true;
1560
+ data: InstagramMomentumData;
1561
+ _meta: InsightMeta;
1562
+ };
1563
+ type EngagementStyle = 'passive' | 'active' | 'viral' | 'valuable';
1564
+ interface EngagementMetricBreakdown {
1565
+ count: number;
1566
+ percent: number;
1567
+ trend: number;
1568
+ }
1569
+ interface EngagementBreakdownData {
1570
+ period: {
1571
+ start: string;
1572
+ end: string;
1573
+ days: number;
1574
+ };
1575
+ totalEngagement: number;
1576
+ breakdown: {
1577
+ likes: EngagementMetricBreakdown;
1578
+ comments: EngagementMetricBreakdown;
1579
+ shares: EngagementMetricBreakdown;
1580
+ saves: EngagementMetricBreakdown;
1581
+ };
1582
+ engagementStyle: EngagementStyle;
1583
+ analysis: {
1584
+ strongestType: string;
1585
+ weakestType: string;
1586
+ opportunity: string;
1587
+ };
1588
+ insight: string;
1589
+ recommendations: string[];
1590
+ }
1591
+ type EngagementBreakdownResponse = InsufficientDataResponse | {
1592
+ hasData: true;
1593
+ data: EngagementBreakdownData;
1594
+ _meta: InsightMeta;
1595
+ };
1596
+ type InstagramHealthLabel = 'excellent' | 'good' | 'fair' | 'needs_attention' | 'poor';
1597
+ interface HealthScoreComponent {
1598
+ score: number;
1599
+ label: string;
1600
+ trend: number;
1601
+ }
1602
+ interface InstagramHealthScoreData {
1603
+ period: {
1604
+ start: string;
1605
+ end: string;
1606
+ days: number;
1607
+ };
1608
+ overall: number;
1609
+ label: InstagramHealthLabel;
1610
+ components: {
1611
+ consistency: HealthScoreComponent;
1612
+ engagement: HealthScoreComponent;
1613
+ growth: HealthScoreComponent;
1614
+ reach: HealthScoreComponent;
1615
+ };
1616
+ metrics: {
1617
+ postsPerWeek: number;
1618
+ avgEngagementRate: number;
1619
+ followerGrowthRate: number;
1620
+ avgReachPerPost: number;
1621
+ };
1622
+ percentageChanges: {
1623
+ overall: number;
1624
+ components: {
1625
+ consistency: number;
1626
+ engagement: number;
1627
+ growth: number;
1628
+ reach: number;
1629
+ };
1630
+ };
1631
+ insight: string;
1632
+ recommendations: string[];
1633
+ }
1634
+ type InstagramHealthScoreResponse = InsufficientDataResponse | {
1635
+ hasData: true;
1636
+ data: InstagramHealthScoreData;
1637
+ _meta: InsightMeta;
1638
+ };
1639
+ interface InstagramAllInsightsData {
1640
+ bestPost: BestPerformingPostResponse;
1641
+ consistency: PostingConsistencyResponse;
1642
+ followerQuality: FollowerQualityResponse;
1643
+ momentum: InstagramMomentumResponse;
1644
+ engagement: EngagementBreakdownResponse;
1645
+ health: InstagramHealthScoreResponse;
1646
+ }
1647
+ interface InstagramAllInsightsResponse {
1648
+ data: InstagramAllInsightsData;
1649
+ meta: {
1650
+ available: string[];
1651
+ };
1652
+ }
1653
+ interface GetInstagramInsightParams {
1654
+ /** Time range (e.g., "30d") */
1655
+ range?: string;
1656
+ }
1404
1657
  }
1405
1658
  declare namespace Activity {
1406
1659
  /**
package/dist/index.d.ts CHANGED
@@ -1401,6 +1401,259 @@ declare namespace Insights {
1401
1401
  /** Days per comparison period (14-90, default: 30) */
1402
1402
  period?: number;
1403
1403
  }
1404
+ interface TopPostData {
1405
+ mediaId: string;
1406
+ caption: string | null;
1407
+ mediaType: 'IMAGE' | 'VIDEO' | 'CAROUSEL_ALBUM' | 'REELS';
1408
+ thumbnailUrl: string | null;
1409
+ permalink: string;
1410
+ postedAt: string;
1411
+ ageInDays: number;
1412
+ }
1413
+ interface TopPostMetrics {
1414
+ reach: number;
1415
+ views: number;
1416
+ likes: number;
1417
+ comments: number;
1418
+ shares: number;
1419
+ saves: number;
1420
+ engagementRate: number;
1421
+ }
1422
+ interface TopPostComparison {
1423
+ vsAccountAverage: {
1424
+ reach: number;
1425
+ engagement: number;
1426
+ description: string;
1427
+ };
1428
+ standoutReasons: string[];
1429
+ }
1430
+ interface BestPerformingPostData {
1431
+ period: {
1432
+ start: string;
1433
+ end: string;
1434
+ days: number;
1435
+ };
1436
+ topPost: TopPostData;
1437
+ metrics: TopPostMetrics;
1438
+ comparison: TopPostComparison;
1439
+ insight: string;
1440
+ runnersUp: Array<{
1441
+ mediaId: string;
1442
+ caption: string | null;
1443
+ reach: number;
1444
+ thumbnailUrl: string | null;
1445
+ }>;
1446
+ }
1447
+ type BestPerformingPostResponse = InsufficientDataResponse | {
1448
+ hasData: true;
1449
+ data: BestPerformingPostData;
1450
+ _meta: InsightMeta;
1451
+ };
1452
+ type PostingConsistencyStatus = 'excellent' | 'good' | 'needs_improvement' | 'poor' | 'inactive';
1453
+ interface MonthlyPostData {
1454
+ month: string;
1455
+ posts: number;
1456
+ avgGap: number | null;
1457
+ }
1458
+ interface PostingConsistencyData {
1459
+ period: {
1460
+ start: string;
1461
+ end: string;
1462
+ days: number;
1463
+ };
1464
+ consistencyScore: number;
1465
+ status: PostingConsistencyStatus;
1466
+ metrics: {
1467
+ totalPosts: number;
1468
+ avgDaysBetweenPosts: number;
1469
+ postVariance: number;
1470
+ daysSinceLastPost: number;
1471
+ lastPostDate: string | null;
1472
+ };
1473
+ pattern: {
1474
+ isRegular: boolean;
1475
+ typicalGap: string;
1476
+ longestStreak: number;
1477
+ currentStreak: number;
1478
+ trend: 'increasing' | 'stable' | 'decreasing';
1479
+ trendDescription: string;
1480
+ };
1481
+ monthlyBreakdown: MonthlyPostData[];
1482
+ recommendation: {
1483
+ suggested: string;
1484
+ current: string;
1485
+ reason: string;
1486
+ };
1487
+ insight: string;
1488
+ recommendations: string[];
1489
+ }
1490
+ type PostingConsistencyResponse = InsufficientDataResponse | {
1491
+ hasData: true;
1492
+ data: PostingConsistencyData;
1493
+ _meta: InsightMeta;
1494
+ };
1495
+ type FollowerQualityLabel = 'excellent' | 'good' | 'fair' | 'needs_attention' | 'concerning';
1496
+ interface FollowerQualityData {
1497
+ period: {
1498
+ start: string;
1499
+ end: string;
1500
+ days: number;
1501
+ };
1502
+ qualityScore: number;
1503
+ scoreLabel: FollowerQualityLabel;
1504
+ metrics: {
1505
+ followsGained: number;
1506
+ unfollows: number;
1507
+ netFollowers: number;
1508
+ retentionRate: number;
1509
+ engagementPerFollower: number;
1510
+ reachPerFollower: number;
1511
+ accountsEngaged: number;
1512
+ };
1513
+ trend: {
1514
+ scoreChange: number;
1515
+ direction: 'improving' | 'stable' | 'declining';
1516
+ description: string;
1517
+ };
1518
+ insight: string;
1519
+ recommendations: string[];
1520
+ }
1521
+ type FollowerQualityResponse = InsufficientDataResponse | {
1522
+ hasData: true;
1523
+ data: FollowerQualityData;
1524
+ _meta: InsightMeta;
1525
+ };
1526
+ type InstagramMomentumStatus = 'surging' | 'rising' | 'steady' | 'cooling' | 'dropping';
1527
+ type InstagramMomentumTrend = 'accelerating' | 'stable' | 'decelerating';
1528
+ interface InstagramMetricChange {
1529
+ current: number;
1530
+ previous: number;
1531
+ change: number;
1532
+ }
1533
+ interface InstagramMomentumData {
1534
+ score: number;
1535
+ rawChange: number;
1536
+ status: InstagramMomentumStatus;
1537
+ trend: InstagramMomentumTrend;
1538
+ previousScore: number | null;
1539
+ period: {
1540
+ current: {
1541
+ start: string;
1542
+ end: string;
1543
+ };
1544
+ previous: {
1545
+ start: string;
1546
+ end: string;
1547
+ };
1548
+ };
1549
+ breakdown: {
1550
+ reach: InstagramMetricChange;
1551
+ engagement: InstagramMetricChange;
1552
+ followers: InstagramMetricChange;
1553
+ profileViews: InstagramMetricChange;
1554
+ };
1555
+ insight: string;
1556
+ topDrivers: string[];
1557
+ }
1558
+ type InstagramMomentumResponse = InsufficientDataResponse | {
1559
+ hasData: true;
1560
+ data: InstagramMomentumData;
1561
+ _meta: InsightMeta;
1562
+ };
1563
+ type EngagementStyle = 'passive' | 'active' | 'viral' | 'valuable';
1564
+ interface EngagementMetricBreakdown {
1565
+ count: number;
1566
+ percent: number;
1567
+ trend: number;
1568
+ }
1569
+ interface EngagementBreakdownData {
1570
+ period: {
1571
+ start: string;
1572
+ end: string;
1573
+ days: number;
1574
+ };
1575
+ totalEngagement: number;
1576
+ breakdown: {
1577
+ likes: EngagementMetricBreakdown;
1578
+ comments: EngagementMetricBreakdown;
1579
+ shares: EngagementMetricBreakdown;
1580
+ saves: EngagementMetricBreakdown;
1581
+ };
1582
+ engagementStyle: EngagementStyle;
1583
+ analysis: {
1584
+ strongestType: string;
1585
+ weakestType: string;
1586
+ opportunity: string;
1587
+ };
1588
+ insight: string;
1589
+ recommendations: string[];
1590
+ }
1591
+ type EngagementBreakdownResponse = InsufficientDataResponse | {
1592
+ hasData: true;
1593
+ data: EngagementBreakdownData;
1594
+ _meta: InsightMeta;
1595
+ };
1596
+ type InstagramHealthLabel = 'excellent' | 'good' | 'fair' | 'needs_attention' | 'poor';
1597
+ interface HealthScoreComponent {
1598
+ score: number;
1599
+ label: string;
1600
+ trend: number;
1601
+ }
1602
+ interface InstagramHealthScoreData {
1603
+ period: {
1604
+ start: string;
1605
+ end: string;
1606
+ days: number;
1607
+ };
1608
+ overall: number;
1609
+ label: InstagramHealthLabel;
1610
+ components: {
1611
+ consistency: HealthScoreComponent;
1612
+ engagement: HealthScoreComponent;
1613
+ growth: HealthScoreComponent;
1614
+ reach: HealthScoreComponent;
1615
+ };
1616
+ metrics: {
1617
+ postsPerWeek: number;
1618
+ avgEngagementRate: number;
1619
+ followerGrowthRate: number;
1620
+ avgReachPerPost: number;
1621
+ };
1622
+ percentageChanges: {
1623
+ overall: number;
1624
+ components: {
1625
+ consistency: number;
1626
+ engagement: number;
1627
+ growth: number;
1628
+ reach: number;
1629
+ };
1630
+ };
1631
+ insight: string;
1632
+ recommendations: string[];
1633
+ }
1634
+ type InstagramHealthScoreResponse = InsufficientDataResponse | {
1635
+ hasData: true;
1636
+ data: InstagramHealthScoreData;
1637
+ _meta: InsightMeta;
1638
+ };
1639
+ interface InstagramAllInsightsData {
1640
+ bestPost: BestPerformingPostResponse;
1641
+ consistency: PostingConsistencyResponse;
1642
+ followerQuality: FollowerQualityResponse;
1643
+ momentum: InstagramMomentumResponse;
1644
+ engagement: EngagementBreakdownResponse;
1645
+ health: InstagramHealthScoreResponse;
1646
+ }
1647
+ interface InstagramAllInsightsResponse {
1648
+ data: InstagramAllInsightsData;
1649
+ meta: {
1650
+ available: string[];
1651
+ };
1652
+ }
1653
+ interface GetInstagramInsightParams {
1654
+ /** Time range (e.g., "30d") */
1655
+ range?: string;
1656
+ }
1404
1657
  }
1405
1658
  declare namespace Activity {
1406
1659
  /**