Skip to content

Commit b3f65f8

Browse files
authored
Merge pull request #116 from klaviyo/22.0.1
v22.0.1
2 parents 2cb9f44 + 7f52602 commit b3f65f8

553 files changed

Lines changed: 4375 additions & 6564 deletions

File tree

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

CHANGELOG.md

Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,13 @@
11
# Changelog
22
All notable changes to this project will be documented in this file.
33

4+
## [22.0.1] - revision 2026-04-15
5+
### Fixed
6+
- Fixed several issues with the automatic retry behavior
7+
- Fixed incorrect intersection types on some fields
8+
- Fixed response types for Templates API
9+
- Fixed deserialization of fields nested under `relationships` which were previously omitted
10+
411
## [22.0.0] - revision 2026-04-15
512
### Added
613
- Conversations API

README.md

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
# Klaviyo Typescript SDK
22

3-
- SDK version: 22.0.0
3+
- SDK version: 22.0.1
44

55
- Revision: 2026-04-15
66

@@ -55,7 +55,7 @@ This SDK is organized into the following resources:
5555

5656
You can install this library using `npm`.
5757

58-
`npm install klaviyo-api@22.0.0`
58+
`npm install klaviyo-api@22.0.1`
5959

6060

6161
## source code

api/apis.ts

Lines changed: 10 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -49,7 +49,7 @@ import {AxiosRequestConfig, AxiosResponse, AxiosHeaders, AxiosError, isAxiosErro
4949
export { RequestFile } from '../model/models';
5050

5151
const revision = "2026-04-15";
52-
const userAgent = "klaviyo-api-node/22.0.0";
52+
const userAgent = "klaviyo-api-node/22.0.1";
5353

5454
export class RetryWithExponentialBackoff {
5555

@@ -74,16 +74,16 @@ export class RetryWithExponentialBackoff {
7474
}
7575

7676
async requestWithRetry(config: AxiosRequestConfig): Promise<AxiosResponse> {
77-
let lastRequestRetryAfter
78-
let lastRequestTimestamp
77+
let lastRequestRetryAfterSec
78+
let lastRequestTimestampMs
7979
let attempt = 0
8080
let iteration = 0
8181

8282
while (true) {
8383
try {
84-
const currentTime = Date.now()
85-
const retryAfterValueLapsed = (!lastRequestRetryAfter ||
86-
currentTime - lastRequestTimestamp > lastRequestRetryAfter)
84+
const currentTimeMs = Date.now()
85+
const retryAfterValueLapsed = (!lastRequestRetryAfterSec ||
86+
currentTimeMs - lastRequestTimestampMs > lastRequestRetryAfterSec * 1000)
8787
if (retryAfterValueLapsed) {
8888
attempt += 1
8989

@@ -101,11 +101,11 @@ export class RetryWithExponentialBackoff {
101101
}
102102

103103
const responseHeaders = headers || {}
104-
lastRequestRetryAfter = responseHeaders['Retry-After']
105-
if (lastRequestRetryAfter) {
106-
lastRequestRetryAfter = parseInt(lastRequestRetryAfter, 10)
104+
lastRequestRetryAfterSec = responseHeaders['retry-after']
105+
if (lastRequestRetryAfterSec) {
106+
lastRequestRetryAfterSec = parseInt(lastRequestRetryAfterSec, 10)
107107
}
108-
lastRequestTimestamp = Date.now()
108+
lastRequestTimestampMs = Date.now()
109109
}
110110
const sleepSeconds = this.exponentialBackoff(iteration)
111111
await this.sleep(sleepSeconds)

model/actionOutputConditionFilter2.ts

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -13,6 +13,7 @@ import { RequestFile } from './models';
1313
import { BooleanFilter } from './booleanFilter';
1414
import { ExistenceOperatorExistenceFilter } from './existenceOperatorExistenceFilter';
1515
import { NumericOperatorNumericFilter } from './numericOperatorNumericFilter';
16+
import { NumericOperatorNumericFilterValue } from './numericOperatorNumericFilterValue';
1617
import { NumericRangeFilter } from './numericRangeFilter';
1718
import { StringArrayOperatorStringArrayFilter } from './stringArrayOperatorStringArrayFilter';
1819
import { StringOperatorStringFilter } from './stringOperatorStringFilter';

model/ageGateProperties.ts

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -13,6 +13,7 @@ import { RequestFile } from './models';
1313
import { ErrorMessages } from './errorMessages';
1414
export class AgeGateProperties {
1515
'displayDevice'?: Array<AgeGateProperties.DisplayDeviceEnum> | Array<'both' | 'desktop' | 'mobile'>;
16+
'classname'?: string | null;
1617
'label'?: string | null;
1718
'showLabel'?: boolean = false;
1819
'placeholder'?: string | null;
@@ -32,6 +33,11 @@ export class AgeGateProperties {
3233
"baseName": "display_device",
3334
"type": "Array<AgeGateProperties.DisplayDeviceEnum>"
3435
},
36+
{
37+
"name": "classname",
38+
"baseName": "classname",
39+
"type": "string"
40+
},
3541
{
3642
"name": "label",
3743
"baseName": "label",

model/attributionResponseObjectResourceRelationshipsAttributedEvent.ts

Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -11,15 +11,22 @@
1111

1212
import { RequestFile } from './models';
1313
import { AttributionResponseObjectResourceRelationshipsAttributedEventData } from './attributionResponseObjectResourceRelationshipsAttributedEventData';
14+
import { RelationshipLinks } from './relationshipLinks';
1415
export class AttributionResponseObjectResourceRelationshipsAttributedEvent {
1516
'data'?: AttributionResponseObjectResourceRelationshipsAttributedEventData;
17+
'links'?: RelationshipLinks;
1618

1719

1820
static attributeTypeMap: Array<{name: string, baseName: string, type: string}> = [
1921
{
2022
"name": "data",
2123
"baseName": "data",
2224
"type": "AttributionResponseObjectResourceRelationshipsAttributedEventData"
25+
},
26+
{
27+
"name": "links",
28+
"baseName": "links",
29+
"type": "RelationshipLinks"
2330
} ];
2431

2532
static getAttributeTypeMap() {

model/attributionResponseObjectResourceRelationshipsCampaign.ts

Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -11,15 +11,22 @@
1111

1212
import { RequestFile } from './models';
1313
import { AttributionResponseObjectResourceRelationshipsCampaignData } from './attributionResponseObjectResourceRelationshipsCampaignData';
14+
import { RelationshipLinks } from './relationshipLinks';
1415
export class AttributionResponseObjectResourceRelationshipsCampaign {
1516
'data'?: AttributionResponseObjectResourceRelationshipsCampaignData;
17+
'links'?: RelationshipLinks;
1618

1719

1820
static attributeTypeMap: Array<{name: string, baseName: string, type: string}> = [
1921
{
2022
"name": "data",
2123
"baseName": "data",
2224
"type": "AttributionResponseObjectResourceRelationshipsCampaignData"
25+
},
26+
{
27+
"name": "links",
28+
"baseName": "links",
29+
"type": "RelationshipLinks"
2330
} ];
2431

2532
static getAttributeTypeMap() {

model/attributionResponseObjectResourceRelationshipsCampaignMessage.ts

Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -11,15 +11,22 @@
1111

1212
import { RequestFile } from './models';
1313
import { AttributionResponseObjectResourceRelationshipsCampaignMessageData } from './attributionResponseObjectResourceRelationshipsCampaignMessageData';
14+
import { RelationshipLinks } from './relationshipLinks';
1415
export class AttributionResponseObjectResourceRelationshipsCampaignMessage {
1516
'data'?: AttributionResponseObjectResourceRelationshipsCampaignMessageData;
17+
'links'?: RelationshipLinks;
1618

1719

1820
static attributeTypeMap: Array<{name: string, baseName: string, type: string}> = [
1921
{
2022
"name": "data",
2123
"baseName": "data",
2224
"type": "AttributionResponseObjectResourceRelationshipsCampaignMessageData"
25+
},
26+
{
27+
"name": "links",
28+
"baseName": "links",
29+
"type": "RelationshipLinks"
2330
} ];
2431

2532
static getAttributeTypeMap() {

model/attributionResponseObjectResourceRelationshipsEvent.ts

Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -11,15 +11,22 @@
1111

1212
import { RequestFile } from './models';
1313
import { AttributionResponseObjectResourceRelationshipsEventData } from './attributionResponseObjectResourceRelationshipsEventData';
14+
import { RelationshipLinks } from './relationshipLinks';
1415
export class AttributionResponseObjectResourceRelationshipsEvent {
1516
'data'?: AttributionResponseObjectResourceRelationshipsEventData;
17+
'links'?: RelationshipLinks;
1618

1719

1820
static attributeTypeMap: Array<{name: string, baseName: string, type: string}> = [
1921
{
2022
"name": "data",
2123
"baseName": "data",
2224
"type": "AttributionResponseObjectResourceRelationshipsEventData"
25+
},
26+
{
27+
"name": "links",
28+
"baseName": "links",
29+
"type": "RelationshipLinks"
2330
} ];
2431

2532
static getAttributeTypeMap() {

model/attributionResponseObjectResourceRelationshipsFlow.ts

Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -11,15 +11,22 @@
1111

1212
import { RequestFile } from './models';
1313
import { AttributionResponseObjectResourceRelationshipsFlowData } from './attributionResponseObjectResourceRelationshipsFlowData';
14+
import { RelationshipLinks } from './relationshipLinks';
1415
export class AttributionResponseObjectResourceRelationshipsFlow {
1516
'data'?: AttributionResponseObjectResourceRelationshipsFlowData;
17+
'links'?: RelationshipLinks;
1618

1719

1820
static attributeTypeMap: Array<{name: string, baseName: string, type: string}> = [
1921
{
2022
"name": "data",
2123
"baseName": "data",
2224
"type": "AttributionResponseObjectResourceRelationshipsFlowData"
25+
},
26+
{
27+
"name": "links",
28+
"baseName": "links",
29+
"type": "RelationshipLinks"
2330
} ];
2431

2532
static getAttributeTypeMap() {

0 commit comments

Comments
 (0)