@zernio/node 0.2.724 → 0.2.725

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
@@ -20917,7 +20917,7 @@ type SendInboxMessageData = {
20917
20917
  */
20918
20918
  messageTag?: 'CONFIRMED_EVENT_UPDATE' | 'POST_PURCHASE_UPDATE' | 'ACCOUNT_UPDATE' | 'HUMAN_AGENT';
20919
20919
  /**
20920
- * Platform message ID to quote-reply to. For WhatsApp, pass the wamid; for Telegram, the Telegram message ID (delivered as message.platformMessageId on webhooks, and as `id` on each entry of the list-messages endpoint). On Slack it threads the reply (thread_ts) instead of quoting. Silently ignored on platforms without send-side reply support, including Instagram and Facebook Messenger (Meta's Send API rejects reply_to on Instagram and does not expose it on Messenger).
20920
+ * Platform message ID to quote-reply to. For WhatsApp, pass the wamid; for Telegram, the Telegram message ID (delivered as message.platformMessageId on webhooks, and as `id` on each entry of the list-messages endpoint). On Slack it threads the reply (thread_ts) instead of quoting. Instagram and Facebook Messenger do not support send-side quote replies: the message is sent without a quote and the successful response includes a warnings entry with code ignored_field and param replyTo. Other platforms without send-side reply support ignore this field.
20921
20921
  */
20922
20922
  replyTo?: string;
20923
20923
  /**
@@ -20981,6 +20981,17 @@ type SendInboxMessageData = {
20981
20981
  };
20982
20982
  type SendInboxMessageResponse = ({
20983
20983
  success?: boolean;
20984
+ /**
20985
+ * Present when a successful send ignored replyTo on Instagram or Facebook Messenger. The message was sent without a quote; do not retry it to apply the reply.
20986
+ */
20987
+ warnings?: Array<{
20988
+ code: 'ignored_field';
20989
+ param: 'replyTo';
20990
+ /**
20991
+ * Human-readable explanation of the ignored field.
20992
+ */
20993
+ message: string;
20994
+ }>;
20984
20995
  data?: {
20985
20996
  /**
20986
20997
  * Platform id of the sent message (not returned for Reddit). For WhatsApp this is the raw Meta wamid, the same id delivered as message.platformMessageId on webhooks and delivery-status updates, and the value to pass as replyTo to quote-reply.
@@ -31681,14 +31692,28 @@ type UpdateAdData = {
31681
31692
  */
31682
31693
  targeting?: {
31683
31694
  /**
31684
- * Google only. The FULL new set of positive keywords for the ad group; live keywords not listed are removed. Entries are strings (BROAD) or { text, matchType } with matchType exact | phrase | broad. Mirrored to GET /v1/ads/keywords immediately.
31695
+ * Google only. The FULL desired set of positive keywords for the entire ad group.
31696
+ * Omit to leave positives unchanged; [] removes all positives. Negatives are independent.
31697
+ * Entries are strings (BROAD) or { text, matchType } with matchType exact | phrase | broad;
31698
+ * an omitted matchType also defaults to BROAD. Matching case-insensitive text AND match type
31699
+ * retains the existing criterion ID, status, bid overrides, labels and history without a mutation.
31700
+ * A changed text or match type uses remove/create, without transferring the old criterion's
31701
+ * attributes or history. See Google keyword replacement above for an EXACT-to-BROAD example.
31702
+ * Mirrored to GET /v1/ads/keywords immediately.
31703
+ *
31685
31704
  */
31686
31705
  keywords?: Array<(string | {
31687
31706
  text: string;
31688
31707
  matchType?: 'exact' | 'phrase' | 'broad';
31689
31708
  })>;
31690
31709
  /**
31691
- * Google only. Same declarative contract as keywords, for the ad group's negative keywords.
31710
+ * Google only. The FULL desired set of negative keywords for the entire ad group,
31711
+ * independent of positives. Omit to leave negatives unchanged; [] removes all negatives.
31712
+ * Uses the same text/match-type identity and preservation contract as keywords above.
31713
+ * Strings and objects without matchType default to BROAD, so resending an EXACT or PHRASE
31714
+ * negative as a bare string requests a different criterion. Campaign negatives are separate:
31715
+ * use /v1/ads/campaigns/{campaignId}/negative-keywords to manage those.
31716
+ *
31692
31717
  */
31693
31718
  negativeKeywords?: Array<(string | {
31694
31719
  text: string;
@@ -33943,14 +33968,16 @@ type CreateStandaloneAdData = {
33943
33968
  * multiple ads per ad set are allowed (unlike `dynamicCreative` which is limited to one).
33944
33969
  * Requires `imageUrl` or `video`, `linkUrl`, and `callToAction`. When set, the top-level
33945
33970
  * `body` field is used as the `object_story_spec.link_data.message` (the preview text) and
33946
- * `headlines` must also be present. Mutually exclusive with `dynamicCreative`,
33947
- * `placementAssets`, `carouselCards`, and `creatives[]`.
33971
+ * `headlines` must also be present. On a video creative the copy lands in
33972
+ * `video_data.message` / `video_data.title` instead of `link_data`. Mutually exclusive
33973
+ * with `dynamicCreative`, `placementAssets`, `carouselCards`, and `creatives[]`.
33948
33974
  *
33949
33975
  */
33950
33976
  bodies?: Array<(string)>;
33951
33977
  /**
33952
33978
  * Meta only. Headline variations for Multiple Text Options. Must be sent alongside `bodies`.
33953
- * The top-level `headline` field is used as the `object_story_spec.link_data.name`.
33979
+ * The top-level `headline` field is used as the `object_story_spec.link_data.name`
33980
+ * (`video_data.title` on a video creative).
33954
33981
  *
33955
33982
  */
33956
33983
  headlines?: Array<(string)>;
@@ -35187,6 +35214,9 @@ type CreateLeadFormData = {
35187
35214
  content?: Array<(string)>;
35188
35215
  style?: 'LIST_STYLE' | 'PARAGRAPH_STYLE';
35189
35216
  buttonText?: string;
35217
+ /**
35218
+ * Direct public JPEG or PNG image URL, up to 5 MB. Redirects, Ad Image hashes and IDs are not supported.
35219
+ */
35190
35220
  coverPhoto?: string;
35191
35221
  };
35192
35222
  } | {
package/dist/index.d.ts CHANGED
@@ -20917,7 +20917,7 @@ type SendInboxMessageData = {
20917
20917
  */
20918
20918
  messageTag?: 'CONFIRMED_EVENT_UPDATE' | 'POST_PURCHASE_UPDATE' | 'ACCOUNT_UPDATE' | 'HUMAN_AGENT';
20919
20919
  /**
20920
- * Platform message ID to quote-reply to. For WhatsApp, pass the wamid; for Telegram, the Telegram message ID (delivered as message.platformMessageId on webhooks, and as `id` on each entry of the list-messages endpoint). On Slack it threads the reply (thread_ts) instead of quoting. Silently ignored on platforms without send-side reply support, including Instagram and Facebook Messenger (Meta's Send API rejects reply_to on Instagram and does not expose it on Messenger).
20920
+ * Platform message ID to quote-reply to. For WhatsApp, pass the wamid; for Telegram, the Telegram message ID (delivered as message.platformMessageId on webhooks, and as `id` on each entry of the list-messages endpoint). On Slack it threads the reply (thread_ts) instead of quoting. Instagram and Facebook Messenger do not support send-side quote replies: the message is sent without a quote and the successful response includes a warnings entry with code ignored_field and param replyTo. Other platforms without send-side reply support ignore this field.
20921
20921
  */
20922
20922
  replyTo?: string;
20923
20923
  /**
@@ -20981,6 +20981,17 @@ type SendInboxMessageData = {
20981
20981
  };
20982
20982
  type SendInboxMessageResponse = ({
20983
20983
  success?: boolean;
20984
+ /**
20985
+ * Present when a successful send ignored replyTo on Instagram or Facebook Messenger. The message was sent without a quote; do not retry it to apply the reply.
20986
+ */
20987
+ warnings?: Array<{
20988
+ code: 'ignored_field';
20989
+ param: 'replyTo';
20990
+ /**
20991
+ * Human-readable explanation of the ignored field.
20992
+ */
20993
+ message: string;
20994
+ }>;
20984
20995
  data?: {
20985
20996
  /**
20986
20997
  * Platform id of the sent message (not returned for Reddit). For WhatsApp this is the raw Meta wamid, the same id delivered as message.platformMessageId on webhooks and delivery-status updates, and the value to pass as replyTo to quote-reply.
@@ -31681,14 +31692,28 @@ type UpdateAdData = {
31681
31692
  */
31682
31693
  targeting?: {
31683
31694
  /**
31684
- * Google only. The FULL new set of positive keywords for the ad group; live keywords not listed are removed. Entries are strings (BROAD) or { text, matchType } with matchType exact | phrase | broad. Mirrored to GET /v1/ads/keywords immediately.
31695
+ * Google only. The FULL desired set of positive keywords for the entire ad group.
31696
+ * Omit to leave positives unchanged; [] removes all positives. Negatives are independent.
31697
+ * Entries are strings (BROAD) or { text, matchType } with matchType exact | phrase | broad;
31698
+ * an omitted matchType also defaults to BROAD. Matching case-insensitive text AND match type
31699
+ * retains the existing criterion ID, status, bid overrides, labels and history without a mutation.
31700
+ * A changed text or match type uses remove/create, without transferring the old criterion's
31701
+ * attributes or history. See Google keyword replacement above for an EXACT-to-BROAD example.
31702
+ * Mirrored to GET /v1/ads/keywords immediately.
31703
+ *
31685
31704
  */
31686
31705
  keywords?: Array<(string | {
31687
31706
  text: string;
31688
31707
  matchType?: 'exact' | 'phrase' | 'broad';
31689
31708
  })>;
31690
31709
  /**
31691
- * Google only. Same declarative contract as keywords, for the ad group's negative keywords.
31710
+ * Google only. The FULL desired set of negative keywords for the entire ad group,
31711
+ * independent of positives. Omit to leave negatives unchanged; [] removes all negatives.
31712
+ * Uses the same text/match-type identity and preservation contract as keywords above.
31713
+ * Strings and objects without matchType default to BROAD, so resending an EXACT or PHRASE
31714
+ * negative as a bare string requests a different criterion. Campaign negatives are separate:
31715
+ * use /v1/ads/campaigns/{campaignId}/negative-keywords to manage those.
31716
+ *
31692
31717
  */
31693
31718
  negativeKeywords?: Array<(string | {
31694
31719
  text: string;
@@ -33943,14 +33968,16 @@ type CreateStandaloneAdData = {
33943
33968
  * multiple ads per ad set are allowed (unlike `dynamicCreative` which is limited to one).
33944
33969
  * Requires `imageUrl` or `video`, `linkUrl`, and `callToAction`. When set, the top-level
33945
33970
  * `body` field is used as the `object_story_spec.link_data.message` (the preview text) and
33946
- * `headlines` must also be present. Mutually exclusive with `dynamicCreative`,
33947
- * `placementAssets`, `carouselCards`, and `creatives[]`.
33971
+ * `headlines` must also be present. On a video creative the copy lands in
33972
+ * `video_data.message` / `video_data.title` instead of `link_data`. Mutually exclusive
33973
+ * with `dynamicCreative`, `placementAssets`, `carouselCards`, and `creatives[]`.
33948
33974
  *
33949
33975
  */
33950
33976
  bodies?: Array<(string)>;
33951
33977
  /**
33952
33978
  * Meta only. Headline variations for Multiple Text Options. Must be sent alongside `bodies`.
33953
- * The top-level `headline` field is used as the `object_story_spec.link_data.name`.
33979
+ * The top-level `headline` field is used as the `object_story_spec.link_data.name`
33980
+ * (`video_data.title` on a video creative).
33954
33981
  *
33955
33982
  */
33956
33983
  headlines?: Array<(string)>;
@@ -35187,6 +35214,9 @@ type CreateLeadFormData = {
35187
35214
  content?: Array<(string)>;
35188
35215
  style?: 'LIST_STYLE' | 'PARAGRAPH_STYLE';
35189
35216
  buttonText?: string;
35217
+ /**
35218
+ * Direct public JPEG or PNG image URL, up to 5 MB. Redirects, Ad Image hashes and IDs are not supported.
35219
+ */
35190
35220
  coverPhoto?: string;
35191
35221
  };
35192
35222
  } | {
package/dist/index.js CHANGED
@@ -36,7 +36,7 @@ module.exports = __toCommonJS(index_exports);
36
36
  // package.json
37
37
  var package_default = {
38
38
  name: "@zernio/node",
39
- version: "0.2.724",
39
+ version: "0.2.725",
40
40
  description: "The official Node.js library for the Zernio API",
41
41
  main: "dist/index.js",
42
42
  module: "dist/index.mjs",
package/dist/index.mjs CHANGED
@@ -5,7 +5,7 @@ var __publicField = (obj, key, value) => __defNormalProp(obj, typeof key !== "sy
5
5
  // package.json
6
6
  var package_default = {
7
7
  name: "@zernio/node",
8
- version: "0.2.724",
8
+ version: "0.2.725",
9
9
  description: "The official Node.js library for the Zernio API",
10
10
  main: "dist/index.js",
11
11
  module: "dist/index.mjs",
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@zernio/node",
3
- "version": "0.2.724",
3
+ "version": "0.2.725",
4
4
  "description": "The official Node.js library for the Zernio API",
5
5
  "main": "dist/index.js",
6
6
  "module": "dist/index.mjs",
@@ -8467,6 +8467,32 @@ export const getAd = <ThrowOnError extends boolean = false>(options: OptionsLega
8467
8467
  * `targeting` or `creative` returns 501 with code `unsupported_platform_operation`.
8468
8468
  * OpenAI Ads budget is lifetime-only (see `budget.type` below).
8469
8469
  *
8470
+ * **Google keyword replacement:** These edits affect the ad's entire ad group,
8471
+ * including sibling ads. Positive (`targeting.keywords`) and negative
8472
+ * (`targeting.negativeKeywords`) sets are independent: omit a field to leave
8473
+ * that set unchanged, or send `[]` to remove every keyword of that kind.
8474
+ *
8475
+ * Zernio compares each supplied set with Google's live criteria by
8476
+ * case-insensitive keyword text and match type. A matching criterion is left
8477
+ * untouched, retaining its criterion ID, enabled/paused status, keyword-level
8478
+ * bid overrides, labels, and criterion-associated history/statistics. Zernio
8479
+ * does not reset its quality score; Google continues to calculate scores and
8480
+ * statistics normally. Text comparison does not trim whitespace.
8481
+ *
8482
+ * A bare string or an object without `matchType` means `broad`, not the
8483
+ * existing criterion's match type. For example, resending an existing
8484
+ * `{ "text": "plumber", "matchType": "exact" }` preserves it; sending
8485
+ * `"plumber"` instead removes that EXACT criterion and requests a BROAD one.
8486
+ * Changing text or match type removes criteria no longer requested and
8487
+ * creates any missing criteria. New criteria get new IDs and do not inherit
8488
+ * removed criteria's bid overrides, labels, or history. Historical reporting
8489
+ * for a removed criterion is not transferred to its replacement.
8490
+ *
8491
+ * To add keywords without replacing a set, use
8492
+ * [POST /v1/ads/keywords](https://docs.zernio.com/ad-campaigns/add-ad-keywords).
8493
+ * Use `PATCH /v1/ads/keywords/{keywordId}` to pause/enable one keyword, or
8494
+ * `DELETE /v1/ads/keywords/{keywordId}` to remove it.
8495
+ *
8470
8496
  */
8471
8497
  export const updateAd = <ThrowOnError extends boolean = false>(options: OptionsLegacyParser<UpdateAdData, ThrowOnError>) => {
8472
8498
  return (options?.client ?? client).put<UpdateAdResponse, UpdateAdError, ThrowOnError>({
@@ -20530,7 +20530,7 @@ export type SendInboxMessageData = {
20530
20530
  */
20531
20531
  messageTag?: 'CONFIRMED_EVENT_UPDATE' | 'POST_PURCHASE_UPDATE' | 'ACCOUNT_UPDATE' | 'HUMAN_AGENT';
20532
20532
  /**
20533
- * Platform message ID to quote-reply to. For WhatsApp, pass the wamid; for Telegram, the Telegram message ID (delivered as message.platformMessageId on webhooks, and as `id` on each entry of the list-messages endpoint). On Slack it threads the reply (thread_ts) instead of quoting. Silently ignored on platforms without send-side reply support, including Instagram and Facebook Messenger (Meta's Send API rejects reply_to on Instagram and does not expose it on Messenger).
20533
+ * Platform message ID to quote-reply to. For WhatsApp, pass the wamid; for Telegram, the Telegram message ID (delivered as message.platformMessageId on webhooks, and as `id` on each entry of the list-messages endpoint). On Slack it threads the reply (thread_ts) instead of quoting. Instagram and Facebook Messenger do not support send-side quote replies: the message is sent without a quote and the successful response includes a warnings entry with code ignored_field and param replyTo. Other platforms without send-side reply support ignore this field.
20534
20534
  */
20535
20535
  replyTo?: string;
20536
20536
  /**
@@ -20595,6 +20595,17 @@ export type SendInboxMessageData = {
20595
20595
 
20596
20596
  export type SendInboxMessageResponse = ({
20597
20597
  success?: boolean;
20598
+ /**
20599
+ * Present when a successful send ignored replyTo on Instagram or Facebook Messenger. The message was sent without a quote; do not retry it to apply the reply.
20600
+ */
20601
+ warnings?: Array<{
20602
+ code: 'ignored_field';
20603
+ param: 'replyTo';
20604
+ /**
20605
+ * Human-readable explanation of the ignored field.
20606
+ */
20607
+ message: string;
20608
+ }>;
20598
20609
  data?: {
20599
20610
  /**
20600
20611
  * Platform id of the sent message (not returned for Reddit). For WhatsApp this is the raw Meta wamid, the same id delivered as message.platformMessageId on webhooks and delivery-status updates, and the value to pass as replyTo to quote-reply.
@@ -32153,14 +32164,28 @@ export type UpdateAdData = {
32153
32164
  */
32154
32165
  targeting?: {
32155
32166
  /**
32156
- * Google only. The FULL new set of positive keywords for the ad group; live keywords not listed are removed. Entries are strings (BROAD) or { text, matchType } with matchType exact | phrase | broad. Mirrored to GET /v1/ads/keywords immediately.
32167
+ * Google only. The FULL desired set of positive keywords for the entire ad group.
32168
+ * Omit to leave positives unchanged; [] removes all positives. Negatives are independent.
32169
+ * Entries are strings (BROAD) or { text, matchType } with matchType exact | phrase | broad;
32170
+ * an omitted matchType also defaults to BROAD. Matching case-insensitive text AND match type
32171
+ * retains the existing criterion ID, status, bid overrides, labels and history without a mutation.
32172
+ * A changed text or match type uses remove/create, without transferring the old criterion's
32173
+ * attributes or history. See Google keyword replacement above for an EXACT-to-BROAD example.
32174
+ * Mirrored to GET /v1/ads/keywords immediately.
32175
+ *
32157
32176
  */
32158
32177
  keywords?: Array<(string | {
32159
32178
  text: string;
32160
32179
  matchType?: 'exact' | 'phrase' | 'broad';
32161
32180
  })>;
32162
32181
  /**
32163
- * Google only. Same declarative contract as keywords, for the ad group's negative keywords.
32182
+ * Google only. The FULL desired set of negative keywords for the entire ad group,
32183
+ * independent of positives. Omit to leave negatives unchanged; [] removes all negatives.
32184
+ * Uses the same text/match-type identity and preservation contract as keywords above.
32185
+ * Strings and objects without matchType default to BROAD, so resending an EXACT or PHRASE
32186
+ * negative as a bare string requests a different criterion. Campaign negatives are separate:
32187
+ * use /v1/ads/campaigns/{campaignId}/negative-keywords to manage those.
32188
+ *
32164
32189
  */
32165
32190
  negativeKeywords?: Array<(string | {
32166
32191
  text: string;
@@ -34556,14 +34581,16 @@ export type CreateStandaloneAdData = {
34556
34581
  * multiple ads per ad set are allowed (unlike `dynamicCreative` which is limited to one).
34557
34582
  * Requires `imageUrl` or `video`, `linkUrl`, and `callToAction`. When set, the top-level
34558
34583
  * `body` field is used as the `object_story_spec.link_data.message` (the preview text) and
34559
- * `headlines` must also be present. Mutually exclusive with `dynamicCreative`,
34560
- * `placementAssets`, `carouselCards`, and `creatives[]`.
34584
+ * `headlines` must also be present. On a video creative the copy lands in
34585
+ * `video_data.message` / `video_data.title` instead of `link_data`. Mutually exclusive
34586
+ * with `dynamicCreative`, `placementAssets`, `carouselCards`, and `creatives[]`.
34561
34587
  *
34562
34588
  */
34563
34589
  bodies?: Array<(string)>;
34564
34590
  /**
34565
34591
  * Meta only. Headline variations for Multiple Text Options. Must be sent alongside `bodies`.
34566
- * The top-level `headline` field is used as the `object_story_spec.link_data.name`.
34592
+ * The top-level `headline` field is used as the `object_story_spec.link_data.name`
34593
+ * (`video_data.title` on a video creative).
34567
34594
  *
34568
34595
  */
34569
34596
  headlines?: Array<(string)>;
@@ -35809,6 +35836,9 @@ export type CreateLeadFormData = {
35809
35836
  content?: Array<(string)>;
35810
35837
  style?: 'LIST_STYLE' | 'PARAGRAPH_STYLE';
35811
35838
  buttonText?: string;
35839
+ /**
35840
+ * Direct public JPEG or PNG image URL, up to 5 MB. Redirects, Ad Image hashes and IDs are not supported.
35841
+ */
35812
35842
  coverPhoto?: string;
35813
35843
  };
35814
35844
  } | {