@getlatedev/node 0.2.560 → 0.2.561

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.
@@ -1286,6 +1286,74 @@ export type BillingSnapshot = {
1286
1286
 
1287
1287
  export type billingSystem = 'metronome' | 'stripe';
1288
1288
 
1289
+ /**
1290
+ * A blog container on the connected platform. All content lives on the platform; Zernio proxies it and stores nothing.
1291
+ */
1292
+ export type Blog = {
1293
+ /**
1294
+ * Platform-native blog id (numeric string for Shopify).
1295
+ */
1296
+ id?: string;
1297
+ platform?: 'shopify';
1298
+ title?: string;
1299
+ /**
1300
+ * URL slug of the blog.
1301
+ */
1302
+ handle?: string;
1303
+ };
1304
+
1305
+ export type platform2 = 'shopify';
1306
+
1307
+ /**
1308
+ * An article inside a blog on the connected platform.
1309
+ */
1310
+ export type BlogArticle = {
1311
+ /**
1312
+ * Platform-native article id (numeric string for Shopify).
1313
+ */
1314
+ id?: string;
1315
+ /**
1316
+ * Platform-native id of the blog the article belongs to.
1317
+ */
1318
+ blogId?: string;
1319
+ platform?: 'shopify';
1320
+ title?: string;
1321
+ /**
1322
+ * Article body as HTML.
1323
+ */
1324
+ bodyHtml?: (string) | null;
1325
+ /**
1326
+ * URL slug of the article.
1327
+ */
1328
+ handle?: string;
1329
+ tags?: Array<(string)>;
1330
+ /**
1331
+ * Display name of the article author.
1332
+ */
1333
+ author?: (string) | null;
1334
+ /**
1335
+ * Short summary shown in blog listings.
1336
+ */
1337
+ excerpt?: (string) | null;
1338
+ /**
1339
+ * Featured image.
1340
+ */
1341
+ image?: {
1342
+ url?: string;
1343
+ altText?: (string) | null;
1344
+ } | null;
1345
+ /**
1346
+ * False while the article is a draft or its publish date is still in the future.
1347
+ */
1348
+ isPublished?: boolean;
1349
+ /**
1350
+ * When the article was (or is scheduled to be) published; null for drafts.
1351
+ */
1352
+ publishedAt?: (string) | null;
1353
+ createdAt?: (string) | null;
1354
+ updatedAt?: (string) | null;
1355
+ };
1356
+
1289
1357
  /**
1290
1358
  * Bluesky post settings. Supports text posts with up to 4 images or a single video. threadItems creates a reply chain (Bluesky thread). Images exceeding 1MB are automatically compressed. Alt text supported via mediaItem properties.
1291
1359
  *
@@ -3346,7 +3414,7 @@ export type InboxWebhookMessage = {
3346
3414
  isRead: boolean;
3347
3415
  };
3348
3416
 
3349
- export type platform2 = 'instagram' | 'facebook' | 'telegram' | 'whatsapp';
3417
+ export type platform3 = 'instagram' | 'facebook' | 'telegram' | 'whatsapp';
3350
3418
 
3351
3419
  export type direction2 = 'incoming' | 'outgoing';
3352
3420
 
@@ -3474,7 +3542,7 @@ export type InstagramAccountInsightsResponse = {
3474
3542
  /**
3475
3543
  * Platform that served this response.
3476
3544
  */
3477
- export type platform3 = 'facebook' | 'instagram' | 'youtube' | 'linkedin' | 'tiktok';
3545
+ export type platform4 = 'facebook' | 'instagram' | 'youtube' | 'linkedin' | 'tiktok';
3478
3546
 
3479
3547
  export type metricType = 'time_series' | 'total_value';
3480
3548
 
@@ -4848,7 +4916,7 @@ export type ReviewWebhookReview = {
4848
4916
  /**
4849
4917
  * Platform the review originated on. Currently Google Business Profile only.
4850
4918
  */
4851
- export type platform4 = 'googlebusiness';
4919
+ export type platform5 = 'googlebusiness';
4852
4920
 
4853
4921
  /**
4854
4922
  * A Meta Reach & Frequency prediction. Money values in whole units of the ad account currency.
@@ -5010,7 +5078,7 @@ export type SocialAccount = {
5010
5078
  };
5011
5079
  };
5012
5080
 
5013
- export type platform5 = 'tiktok' | 'instagram' | 'facebook' | 'youtube' | 'linkedin' | 'twitter' | 'threads' | 'pinterest' | 'reddit' | 'bluesky' | 'googlebusiness' | 'telegram' | 'snapchat' | 'discord' | 'slack' | 'whatsapp' | 'linkedinads' | 'metaads' | 'pinterestads' | 'tiktokads' | 'xads' | 'googleads' | 'openaiads';
5081
+ export type platform6 = 'tiktok' | 'instagram' | 'facebook' | 'youtube' | 'linkedin' | 'twitter' | 'threads' | 'pinterest' | 'reddit' | 'bluesky' | 'googlebusiness' | 'telegram' | 'snapchat' | 'discord' | 'slack' | 'whatsapp' | 'linkedinads' | 'metaads' | 'pinterestads' | 'tiktokads' | 'xads' | 'googleads' | 'openaiads';
5014
5082
 
5015
5083
  /**
5016
5084
  * Normalized, platform-agnostic ad-targeting spec. Every field is optional, an
@@ -5445,7 +5513,7 @@ export type TrackingTag = {
5445
5513
  ownerAdAccountId?: string;
5446
5514
  };
5447
5515
 
5448
- export type platform6 = 'metaads';
5516
+ export type platform7 = 'metaads';
5449
5517
 
5450
5518
  /**
5451
5519
  * Platform-native flavor of the tag (Meta: `pixel`).
@@ -6722,7 +6790,7 @@ export type WebhookPayloadComment = {
6722
6790
 
6723
6791
  export type event9 = 'comment.received';
6724
6792
 
6725
- export type platform7 = 'instagram' | 'facebook' | 'twitter' | 'youtube' | 'linkedin' | 'bluesky' | 'reddit';
6793
+ export type platform8 = 'instagram' | 'facebook' | 'twitter' | 'youtube' | 'linkedin' | 'bluesky' | 'reddit';
6726
6794
 
6727
6795
  /**
6728
6796
  * Fired once when a new conversation begins, in either direction. A conversation
@@ -6779,7 +6847,7 @@ export type WebhookPayloadConversationStarted = {
6779
6847
 
6780
6848
  export type event10 = 'conversation.started';
6781
6849
 
6782
- export type platform8 = 'instagram' | 'facebook' | 'telegram' | 'whatsapp' | 'twitter' | 'reddit' | 'bluesky' | 'sms' | 'slack';
6850
+ export type platform9 = 'instagram' | 'facebook' | 'telegram' | 'whatsapp' | 'twitter' | 'reddit' | 'bluesky' | 'sms' | 'slack';
6783
6851
 
6784
6852
  /**
6785
6853
  * Webhook payload for post.external.created / post.external.updated /
@@ -6880,7 +6948,7 @@ export type WebhookPayloadLead = {
6880
6948
 
6881
6949
  export type event12 = 'lead.received';
6882
6950
 
6883
- export type platform9 = 'facebook';
6951
+ export type platform10 = 'facebook';
6884
6952
 
6885
6953
  /**
6886
6954
  * Webhook payload for message received events
@@ -7815,7 +7883,7 @@ export type WebhookPayloadWhatsAppTemplateStatusUpdated = {
7815
7883
 
7816
7884
  export type event24 = 'whatsapp.template.status_updated';
7817
7885
 
7818
- export type platform10 = 'whatsapp';
7886
+ export type platform11 = 'whatsapp';
7819
7887
 
7820
7888
  /**
7821
7889
  * New status. Forwarded verbatim from Meta's `event` field.
@@ -11566,6 +11634,17 @@ export type GetConnectUrlData = {
11566
11634
  *
11567
11635
  */
11568
11636
  loginMethod?: 'instagram_login' | 'facebook_login';
11637
+ /**
11638
+ * WhatsApp only. Ignored for every other platform. Controls which screen Meta's Embedded Signup popup shows.
11639
+ *
11640
+ * If omitted, the connection defaults to coexistence (same as `business_app` below), preserving existing behavior for numbers already on the WhatsApp Business app.
11641
+ *
11642
+ * `api`: standard Embedded Signup, showing Meta's WABA/number picker. Use this to connect a phone number already on Cloud API elsewhere.
11643
+ *
11644
+ * `business_app`: coexistence, i.e. 'Connect existing WhatsApp Business app' (a number shared between Cloud API and the consumer WhatsApp Business app).
11645
+ *
11646
+ */
11647
+ onboarding?: 'api' | 'business_app';
11569
11648
  /**
11570
11649
  * Your Zernio profile ID (get from /v1/profiles). For WhatsApp, a Zernio-provisioned number can only be connected on the profile it was provisioned to; connecting from any other profile is rejected with a 409.
11571
11650
  */
@@ -11746,6 +11825,88 @@ export type ConnectAdsError = (unknown | {
11746
11825
  error?: string;
11747
11826
  });
11748
11827
 
11828
+ export type GetShopifyConnectUrlData = {
11829
+ query: {
11830
+ /**
11831
+ * Your Zernio profile ID (get from /v1/profiles).
11832
+ */
11833
+ profileId: string;
11834
+ /**
11835
+ * Your custom redirect URL after connection completes. Accepts an http(s) URL, a custom app scheme for mobile deeplinks (e.g. myapp://callback), or a relative path. On failure an `error` query param is appended.
11836
+ */
11837
+ redirect_url?: string;
11838
+ /**
11839
+ * The myshopify.com store domain to connect, e.g. `your-store.myshopify.com` (the bare `your-store` prefix is accepted too).
11840
+ */
11841
+ shop: string;
11842
+ };
11843
+ };
11844
+
11845
+ export type GetShopifyConnectUrlResponse = ({
11846
+ /**
11847
+ * URL to redirect your user to for OAuth authorization
11848
+ */
11849
+ authUrl?: string;
11850
+ /**
11851
+ * State parameter for security (handled automatically)
11852
+ */
11853
+ state?: string;
11854
+ });
11855
+
11856
+ export type GetShopifyConnectUrlError = (unknown | {
11857
+ error?: string;
11858
+ } | {
11859
+ /**
11860
+ * Human-readable error message suitable for end-user display.
11861
+ */
11862
+ error: string;
11863
+ /**
11864
+ * Machine-readable error code. Stable across versions.
11865
+ */
11866
+ code: 'PAYMENT_REQUIRED';
11867
+ /**
11868
+ * Discriminator for which gate fired.
11869
+ */
11870
+ reason: 'free_tier_exceeded' | 'twitter_passthrough' | 'enterprise_required';
11871
+ /**
11872
+ * Link to the relevant documentation page.
11873
+ */
11874
+ documentation_url?: string;
11875
+ /**
11876
+ * Deep-link to send the end-user to. For
11877
+ * `free_tier_exceeded` and `twitter_passthrough` this is
11878
+ * the Zernio billing tab. For `enterprise_required` this
11879
+ * is the Zernio enterprise contact page.
11880
+ *
11881
+ */
11882
+ dashboard_url?: string;
11883
+ /**
11884
+ * Structured context for SDK clients that want to render their own UX. Keys vary by `reason`.
11885
+ */
11886
+ details?: {
11887
+ /**
11888
+ * How many accounts the free tier allows. Only set when reason=free_tier_exceeded.
11889
+ */
11890
+ free_tier_account_limit?: number;
11891
+ /**
11892
+ * How many accounts the team currently has connected. Set when reason=free_tier_exceeded or reason=enterprise_required.
11893
+ */
11894
+ current_account_count?: number;
11895
+ /**
11896
+ * Whether the team currently has a card on file in Stripe. Set when reason=free_tier_exceeded or reason=twitter_passthrough.
11897
+ */
11898
+ has_payment_method?: boolean;
11899
+ /**
11900
+ * The negotiated connected-account cap from the
11901
+ * team's enterprise contract. Self-service teams
11902
+ * have no cap and never receive this reason. Only
11903
+ * set when reason=enterprise_required.
11904
+ *
11905
+ */
11906
+ effective_account_limit?: number;
11907
+ };
11908
+ });
11909
+
11749
11910
  export type ConfigureTikTokAdsBrandIdentityData = {
11750
11911
  body: {
11751
11912
  /**
@@ -33166,6 +33327,353 @@ export type GetTrackingTagStatsError = (unknown | {
33166
33327
  error?: string;
33167
33328
  });
33168
33329
 
33330
+ export type ListBlogsData = {
33331
+ path: {
33332
+ /**
33333
+ * Connected Shopify SocialAccount id.
33334
+ */
33335
+ accountId: string;
33336
+ };
33337
+ query?: {
33338
+ /**
33339
+ * Opaque cursor from a previous response. Omit for the first page.
33340
+ */
33341
+ cursor?: string;
33342
+ /**
33343
+ * Page size (1-50).
33344
+ */
33345
+ limit?: number;
33346
+ };
33347
+ };
33348
+
33349
+ export type ListBlogsResponse = ({
33350
+ platform?: 'shopify';
33351
+ blogs?: Array<Blog>;
33352
+ /**
33353
+ * Cursor for the next page; null when there are no more pages.
33354
+ */
33355
+ nextCursor?: (string) | null;
33356
+ });
33357
+
33358
+ export type ListBlogsError = (ErrorResponse | {
33359
+ error?: string;
33360
+ } | unknown);
33361
+
33362
+ export type CreateBlogData = {
33363
+ body: {
33364
+ title: string;
33365
+ /**
33366
+ * URL slug. Generated from the title when omitted.
33367
+ */
33368
+ handle?: string;
33369
+ };
33370
+ path: {
33371
+ /**
33372
+ * Connected Shopify SocialAccount id.
33373
+ */
33374
+ accountId: string;
33375
+ };
33376
+ };
33377
+
33378
+ export type CreateBlogResponse = ({
33379
+ platform?: 'shopify';
33380
+ blog?: Blog;
33381
+ });
33382
+
33383
+ export type CreateBlogError = (ErrorResponse | {
33384
+ error?: string;
33385
+ } | unknown);
33386
+
33387
+ export type GetBlogData = {
33388
+ path: {
33389
+ /**
33390
+ * Connected Shopify SocialAccount id.
33391
+ */
33392
+ accountId: string;
33393
+ /**
33394
+ * Platform-native numeric blog id. Non-numeric values return 400.
33395
+ */
33396
+ blogId: string;
33397
+ };
33398
+ };
33399
+
33400
+ export type GetBlogResponse = ({
33401
+ platform?: 'shopify';
33402
+ blog?: Blog;
33403
+ });
33404
+
33405
+ export type GetBlogError = (ErrorResponse | {
33406
+ error?: string;
33407
+ } | unknown);
33408
+
33409
+ export type UpdateBlogData = {
33410
+ body: {
33411
+ title?: string;
33412
+ /**
33413
+ * URL slug. Changing it changes the blog URL on the store.
33414
+ */
33415
+ handle?: string;
33416
+ };
33417
+ path: {
33418
+ /**
33419
+ * Connected Shopify SocialAccount id.
33420
+ */
33421
+ accountId: string;
33422
+ /**
33423
+ * Platform-native numeric blog id. Non-numeric values return 400.
33424
+ */
33425
+ blogId: string;
33426
+ };
33427
+ };
33428
+
33429
+ export type UpdateBlogResponse = ({
33430
+ platform?: 'shopify';
33431
+ blog?: Blog;
33432
+ });
33433
+
33434
+ export type UpdateBlogError = (ErrorResponse | {
33435
+ error?: string;
33436
+ } | unknown);
33437
+
33438
+ export type DeleteBlogData = {
33439
+ path: {
33440
+ /**
33441
+ * Connected Shopify SocialAccount id.
33442
+ */
33443
+ accountId: string;
33444
+ /**
33445
+ * Platform-native numeric blog id. Non-numeric values return 400.
33446
+ */
33447
+ blogId: string;
33448
+ };
33449
+ };
33450
+
33451
+ export type DeleteBlogResponse = (void);
33452
+
33453
+ export type DeleteBlogError = (ErrorResponse | {
33454
+ error?: string;
33455
+ } | unknown);
33456
+
33457
+ export type ListBlogArticlesData = {
33458
+ path: {
33459
+ /**
33460
+ * Connected Shopify SocialAccount id.
33461
+ */
33462
+ accountId: string;
33463
+ /**
33464
+ * Platform-native numeric blog id. Non-numeric values return 400.
33465
+ */
33466
+ blogId: string;
33467
+ };
33468
+ query?: {
33469
+ /**
33470
+ * Opaque cursor from a previous response. Omit for the first page.
33471
+ */
33472
+ cursor?: string;
33473
+ /**
33474
+ * Page size (1-50).
33475
+ */
33476
+ limit?: number;
33477
+ };
33478
+ };
33479
+
33480
+ export type ListBlogArticlesResponse = ({
33481
+ platform?: 'shopify';
33482
+ articles?: Array<BlogArticle>;
33483
+ /**
33484
+ * Cursor for the next page; null when there are no more pages.
33485
+ */
33486
+ nextCursor?: (string) | null;
33487
+ });
33488
+
33489
+ export type ListBlogArticlesError = (ErrorResponse | {
33490
+ error?: string;
33491
+ } | unknown);
33492
+
33493
+ export type CreateBlogArticleData = {
33494
+ body: {
33495
+ title: string;
33496
+ /**
33497
+ * Article body as HTML.
33498
+ */
33499
+ bodyHtml?: string;
33500
+ /**
33501
+ * URL slug. Generated from the title when omitted.
33502
+ */
33503
+ handle?: string;
33504
+ tags?: Array<(string)>;
33505
+ /**
33506
+ * Display name of the article author.
33507
+ */
33508
+ author?: string;
33509
+ /**
33510
+ * Short summary shown in blog listings.
33511
+ */
33512
+ excerpt?: string;
33513
+ /**
33514
+ * Featured image. The platform downloads it, so the URL must be publicly reachable.
33515
+ */
33516
+ image?: {
33517
+ url: string;
33518
+ altText?: string;
33519
+ };
33520
+ /**
33521
+ * Search-engine overrides. Maps to Shopify global metafields (title_tag and description_tag).
33522
+ */
33523
+ seo?: {
33524
+ title?: string;
33525
+ description?: string;
33526
+ };
33527
+ /**
33528
+ * Set false to create the article as a draft.
33529
+ */
33530
+ isPublished?: boolean;
33531
+ /**
33532
+ * ISO 8601 datetime with offset (or Z). A future date schedules publication natively on the platform.
33533
+ */
33534
+ publishDate?: string;
33535
+ };
33536
+ path: {
33537
+ /**
33538
+ * Connected Shopify SocialAccount id.
33539
+ */
33540
+ accountId: string;
33541
+ /**
33542
+ * Platform-native numeric blog id. Non-numeric values return 400.
33543
+ */
33544
+ blogId: string;
33545
+ };
33546
+ };
33547
+
33548
+ export type CreateBlogArticleResponse = ({
33549
+ platform?: 'shopify';
33550
+ article?: BlogArticle;
33551
+ });
33552
+
33553
+ export type CreateBlogArticleError = (ErrorResponse | {
33554
+ error?: string;
33555
+ } | unknown);
33556
+
33557
+ export type GetBlogArticleData = {
33558
+ path: {
33559
+ /**
33560
+ * Connected Shopify SocialAccount id.
33561
+ */
33562
+ accountId: string;
33563
+ /**
33564
+ * Platform-native numeric article id. Non-numeric values return 400.
33565
+ */
33566
+ articleId: string;
33567
+ /**
33568
+ * Platform-native numeric blog id. Non-numeric values return 400.
33569
+ */
33570
+ blogId: string;
33571
+ };
33572
+ };
33573
+
33574
+ export type GetBlogArticleResponse = ({
33575
+ platform?: 'shopify';
33576
+ article?: BlogArticle;
33577
+ });
33578
+
33579
+ export type GetBlogArticleError = (ErrorResponse | {
33580
+ error?: string;
33581
+ } | unknown);
33582
+
33583
+ export type UpdateBlogArticleData = {
33584
+ body: {
33585
+ title?: string;
33586
+ /**
33587
+ * Article body as HTML.
33588
+ */
33589
+ bodyHtml?: string;
33590
+ /**
33591
+ * URL slug of the article.
33592
+ */
33593
+ handle?: string;
33594
+ /**
33595
+ * Replaces the full tag list.
33596
+ */
33597
+ tags?: Array<(string)>;
33598
+ /**
33599
+ * Display name of the article author.
33600
+ */
33601
+ author?: string;
33602
+ /**
33603
+ * Short summary shown in blog listings.
33604
+ */
33605
+ excerpt?: string;
33606
+ /**
33607
+ * Featured image. The platform downloads it, so the URL must be publicly reachable.
33608
+ */
33609
+ image?: {
33610
+ url: string;
33611
+ altText?: string;
33612
+ };
33613
+ /**
33614
+ * Search-engine overrides. Maps to Shopify global metafields (title_tag and description_tag).
33615
+ */
33616
+ seo?: {
33617
+ title?: string;
33618
+ description?: string;
33619
+ };
33620
+ /**
33621
+ * Set false to unpublish the article back to a draft.
33622
+ */
33623
+ isPublished?: boolean;
33624
+ /**
33625
+ * ISO 8601 datetime with offset (or Z). A future date schedules publication natively on the platform.
33626
+ */
33627
+ publishDate?: string;
33628
+ };
33629
+ path: {
33630
+ /**
33631
+ * Connected Shopify SocialAccount id.
33632
+ */
33633
+ accountId: string;
33634
+ /**
33635
+ * Platform-native numeric article id. Non-numeric values return 400.
33636
+ */
33637
+ articleId: string;
33638
+ /**
33639
+ * Platform-native numeric blog id. Non-numeric values return 400.
33640
+ */
33641
+ blogId: string;
33642
+ };
33643
+ };
33644
+
33645
+ export type UpdateBlogArticleResponse = ({
33646
+ platform?: 'shopify';
33647
+ article?: BlogArticle;
33648
+ });
33649
+
33650
+ export type UpdateBlogArticleError = (ErrorResponse | {
33651
+ error?: string;
33652
+ } | unknown);
33653
+
33654
+ export type DeleteBlogArticleData = {
33655
+ path: {
33656
+ /**
33657
+ * Connected Shopify SocialAccount id.
33658
+ */
33659
+ accountId: string;
33660
+ /**
33661
+ * Platform-native numeric article id. Non-numeric values return 400.
33662
+ */
33663
+ articleId: string;
33664
+ /**
33665
+ * Platform-native numeric blog id. Non-numeric values return 400.
33666
+ */
33667
+ blogId: string;
33668
+ };
33669
+ };
33670
+
33671
+ export type DeleteBlogArticleResponse = (void);
33672
+
33673
+ export type DeleteBlogArticleError = (ErrorResponse | {
33674
+ error?: string;
33675
+ } | unknown);
33676
+
33169
33677
  export type CreateVerificationData = {
33170
33678
  body: {
33171
33679
  /**