@segment/action-destinations 3.232.0 → 3.233.0-streams.1

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.
Files changed (91) hide show
  1. package/dist/destinations/braze/updateUserProfile/__snapshots__/snapshot.test.d.ts +1 -0
  2. package/dist/destinations/braze/updateUserProfile/__snapshots__/snapshot.test.js +184 -0
  3. package/dist/destinations/braze/updateUserProfile/__snapshots__/snapshot.test.js.map +1 -0
  4. package/dist/destinations/engage/utils/track.d.ts +9 -9
  5. package/dist/destinations/klaviyo/addProfileToList/generated-types.d.ts +1 -0
  6. package/dist/destinations/klaviyo/addProfileToList/index.js +8 -1
  7. package/dist/destinations/klaviyo/addProfileToList/index.js.map +1 -1
  8. package/dist/destinations/klaviyo/functions.d.ts +2 -2
  9. package/dist/destinations/klaviyo/functions.js +26 -24
  10. package/dist/destinations/klaviyo/functions.js.map +1 -1
  11. package/dist/destinations/klaviyo/properties.d.ts +1 -0
  12. package/dist/destinations/klaviyo/properties.js +7 -1
  13. package/dist/destinations/klaviyo/properties.js.map +1 -1
  14. package/dist/destinations/klaviyo/removeProfileFromList/generated-types.d.ts +1 -0
  15. package/dist/destinations/klaviyo/removeProfileFromList/index.js +14 -6
  16. package/dist/destinations/klaviyo/removeProfileFromList/index.js.map +1 -1
  17. package/dist/destinations/klaviyo/removeProfileToList/generated-types.d.ts +4 -0
  18. package/dist/destinations/klaviyo/removeProfileToList/generated-types.js +3 -0
  19. package/dist/destinations/klaviyo/removeProfileToList/generated-types.js.map +1 -0
  20. package/dist/destinations/klaviyo/removeProfileToList/index.d.ts +5 -0
  21. package/dist/destinations/klaviyo/removeProfileToList/index.js +43 -0
  22. package/dist/destinations/klaviyo/removeProfileToList/index.js.map +1 -0
  23. package/dist/destinations/klaviyo/types.d.ts +7 -0
  24. package/dist/destinations/liveramp-audiences/audienceEnteredS3/index.js +24 -4
  25. package/dist/destinations/liveramp-audiences/audienceEnteredS3/index.js.map +1 -1
  26. package/dist/destinations/liveramp-audiences/audienceEnteredS3/s3.d.ts +9 -0
  27. package/dist/destinations/liveramp-audiences/audienceEnteredS3/s3.js +22 -1
  28. package/dist/destinations/liveramp-audiences/audienceEnteredS3/s3.js.map +1 -1
  29. package/dist/destinations/liveramp-audiences/audienceEnteredSftp/index.js +20 -1
  30. package/dist/destinations/liveramp-audiences/audienceEnteredSftp/index.js.map +1 -1
  31. package/dist/destinations/liveramp-audiences/operations.d.ts +20 -1
  32. package/dist/destinations/liveramp-audiences/operations.js +67 -1
  33. package/dist/destinations/liveramp-audiences/operations.js.map +1 -1
  34. package/dist/destinations/mixpanel/utils.d.ts +13 -0
  35. package/dist/destinations/mixpanel/utils.js +117 -0
  36. package/dist/destinations/mixpanel/utils.js.map +1 -0
  37. package/dist/destinations/movable-ink/categoryView/generated-types.d.ts +22 -0
  38. package/dist/destinations/movable-ink/categoryView/generated-types.js +3 -0
  39. package/dist/destinations/movable-ink/categoryView/generated-types.js.map +1 -0
  40. package/dist/destinations/movable-ink/categoryView/index.d.ts +5 -0
  41. package/dist/destinations/movable-ink/categoryView/index.js +43 -0
  42. package/dist/destinations/movable-ink/categoryView/index.js.map +1 -0
  43. package/dist/destinations/movable-ink/conversion/generated-types.d.ts +20 -0
  44. package/dist/destinations/movable-ink/conversion/generated-types.js +3 -0
  45. package/dist/destinations/movable-ink/conversion/generated-types.js.map +1 -0
  46. package/dist/destinations/movable-ink/conversion/index.d.ts +5 -0
  47. package/dist/destinations/movable-ink/conversion/index.js +45 -0
  48. package/dist/destinations/movable-ink/conversion/index.js.map +1 -0
  49. package/dist/destinations/movable-ink/fields.d.ts +21 -0
  50. package/dist/destinations/movable-ink/fields.js +236 -0
  51. package/dist/destinations/movable-ink/fields.js.map +1 -0
  52. package/dist/destinations/movable-ink/identify/generated-types.d.ts +7 -0
  53. package/dist/destinations/movable-ink/identify/generated-types.js +3 -0
  54. package/dist/destinations/movable-ink/identify/generated-types.js.map +1 -0
  55. package/dist/destinations/movable-ink/identify/index.d.ts +5 -0
  56. package/dist/destinations/movable-ink/identify/index.js +32 -0
  57. package/dist/destinations/movable-ink/identify/index.js.map +1 -0
  58. package/dist/destinations/movable-ink/productAdded/generated-types.d.ts +22 -0
  59. package/dist/destinations/movable-ink/productAdded/generated-types.js +3 -0
  60. package/dist/destinations/movable-ink/productAdded/generated-types.js.map +1 -0
  61. package/dist/destinations/movable-ink/productAdded/index.d.ts +5 -0
  62. package/dist/destinations/movable-ink/productAdded/index.js +43 -0
  63. package/dist/destinations/movable-ink/productAdded/index.js.map +1 -0
  64. package/dist/destinations/movable-ink/productViewed/generated-types.d.ts +21 -0
  65. package/dist/destinations/movable-ink/productViewed/generated-types.js +3 -0
  66. package/dist/destinations/movable-ink/productViewed/generated-types.js.map +1 -0
  67. package/dist/destinations/movable-ink/productViewed/index.d.ts +5 -0
  68. package/dist/destinations/movable-ink/productViewed/index.js +43 -0
  69. package/dist/destinations/movable-ink/productViewed/index.js.map +1 -0
  70. package/dist/destinations/movable-ink/search/generated-types.d.ts +12 -0
  71. package/dist/destinations/movable-ink/search/generated-types.js +3 -0
  72. package/dist/destinations/movable-ink/search/generated-types.js.map +1 -0
  73. package/dist/destinations/movable-ink/search/index.d.ts +5 -0
  74. package/dist/destinations/movable-ink/search/index.js +43 -0
  75. package/dist/destinations/movable-ink/search/index.js.map +1 -0
  76. package/dist/destinations/movable-ink/sendCustomEvent/generated-types.d.ts +25 -0
  77. package/dist/destinations/movable-ink/sendCustomEvent/generated-types.js +3 -0
  78. package/dist/destinations/movable-ink/sendCustomEvent/generated-types.js.map +1 -0
  79. package/dist/destinations/movable-ink/sendCustomEvent/index.d.ts +5 -0
  80. package/dist/destinations/movable-ink/sendCustomEvent/index.js +48 -0
  81. package/dist/destinations/movable-ink/sendCustomEvent/index.js.map +1 -0
  82. package/dist/destinations/trackey/group.types.d.ts +11 -0
  83. package/dist/destinations/trackey/group.types.js +3 -0
  84. package/dist/destinations/trackey/group.types.js.map +1 -0
  85. package/dist/destinations/trackey/identify.types.d.ts +11 -0
  86. package/dist/destinations/trackey/identify.types.js +3 -0
  87. package/dist/destinations/trackey/identify.types.js.map +1 -0
  88. package/dist/destinations/trackey/track.types.d.ts +12 -0
  89. package/dist/destinations/trackey/track.types.js +3 -0
  90. package/dist/destinations/trackey/track.types.js.map +1 -0
  91. package/package.json +3 -3
@@ -0,0 +1,184 @@
1
+ "use strict";
2
+ var __importDefault = (this && this.__importDefault) || function (mod) {
3
+ return (mod && mod.__esModule) ? mod : { "default": mod };
4
+ };
5
+ Object.defineProperty(exports, "__esModule", { value: true });
6
+ const actions_core_1 = require("@segment/actions-core");
7
+ const test_data_1 = require("../../../../lib/test-data");
8
+ const index_1 = __importDefault(require("../../index"));
9
+ const nock_1 = __importDefault(require("nock"));
10
+ const testDestination = actions_core_1.createTestIntegration(index_1.default);
11
+ const actionSlug = 'updateUserProfile';
12
+ const destinationSlug = 'Braze';
13
+ const seedName = `${destinationSlug}#${actionSlug}`;
14
+ const receivedAt = '2021-08-03T17:40:04.055Z';
15
+ const settings = {
16
+ app_id: 'my-app-id',
17
+ api_key: 'my-api-key',
18
+ endpoint: 'https://rest.iad-01.braze.com'
19
+ };
20
+ describe(`Testing snapshot for ${destinationSlug}'s ${actionSlug} destination action:`, () => {
21
+ it('required fields', async () => {
22
+ const action = index_1.default.actions[actionSlug];
23
+ const [eventData, settingsData] = test_data_1.generateTestData(seedName, index_1.default, action, true);
24
+ nock_1.default(/.*/).persist().get(/.*/).reply(200);
25
+ nock_1.default(/.*/).persist().post(/.*/).reply(200);
26
+ nock_1.default(/.*/).persist().put(/.*/).reply(200);
27
+ const event = actions_core_1.createTestEvent({
28
+ properties: eventData
29
+ });
30
+ const responses = await testDestination.testAction(actionSlug, {
31
+ event: event,
32
+ mapping: event.properties,
33
+ settings: settingsData,
34
+ auth: undefined
35
+ });
36
+ const request = responses[0].request;
37
+ const rawBody = await request.text();
38
+ try {
39
+ const json = JSON.parse(rawBody);
40
+ expect(json).toMatchSnapshot();
41
+ return;
42
+ }
43
+ catch (err) {
44
+ expect(rawBody).toMatchSnapshot();
45
+ }
46
+ expect(request.headers).toMatchSnapshot();
47
+ });
48
+ it('all fields', async () => {
49
+ const action = index_1.default.actions[actionSlug];
50
+ const [eventData, settingsData] = test_data_1.generateTestData(seedName, index_1.default, action, false);
51
+ nock_1.default(/.*/).persist().get(/.*/).reply(200);
52
+ nock_1.default(/.*/).persist().post(/.*/).reply(200);
53
+ nock_1.default(/.*/).persist().put(/.*/).reply(200);
54
+ const event = actions_core_1.createTestEvent({
55
+ properties: eventData
56
+ });
57
+ const responses = await testDestination.testAction(actionSlug, {
58
+ event: event,
59
+ mapping: event.properties,
60
+ settings: settingsData,
61
+ auth: undefined
62
+ });
63
+ const request = responses[0].request;
64
+ const rawBody = await request.text();
65
+ try {
66
+ const json = JSON.parse(rawBody);
67
+ expect(json).toMatchSnapshot();
68
+ return;
69
+ }
70
+ catch (err) {
71
+ expect(rawBody).toMatchSnapshot();
72
+ }
73
+ });
74
+ it('it should work with batched events', async () => {
75
+ nock_1.default('https://rest.iad-01.braze.com').post('/users/track').reply(200, {});
76
+ const events = [
77
+ actions_core_1.createTestEvent({
78
+ event: 'Test Event 1',
79
+ type: 'track',
80
+ receivedAt,
81
+ properties: {}
82
+ }),
83
+ actions_core_1.createTestEvent({
84
+ event: 'Test Event 2',
85
+ type: 'track',
86
+ receivedAt,
87
+ properties: {}
88
+ })
89
+ ];
90
+ const responses = await testDestination.testBatchAction(actionSlug, {
91
+ events,
92
+ useDefaultMappings: true,
93
+ mapping: {
94
+ external_id: {
95
+ '@path': '$.userId'
96
+ },
97
+ user_alias: {},
98
+ braze_id: {
99
+ '@path': '$.properties.braze_id'
100
+ },
101
+ name: {
102
+ '@path': '$.event'
103
+ },
104
+ time: {
105
+ '@path': '$.receivedAt'
106
+ },
107
+ properties: {
108
+ '@path': '$.properties'
109
+ },
110
+ products: {
111
+ '@path': '$.properties.products'
112
+ },
113
+ enable_batching: true,
114
+ _update_existing_only: true
115
+ },
116
+ settings: {
117
+ ...settings
118
+ }
119
+ });
120
+ expect(responses.length).toBe(1);
121
+ expect(responses[0].status).toBe(200);
122
+ expect(responses[0].options.headers).toMatchSnapshot();
123
+ expect(responses[0].options.json).toMatchSnapshot();
124
+ });
125
+ it('it should work with a single batched events', async () => {
126
+ nock_1.default('https://rest.iad-01.braze.com').post('/users/track').reply(200, {});
127
+ const events = [
128
+ actions_core_1.createTestEvent({
129
+ event: 'Test Event 1',
130
+ type: 'track',
131
+ receivedAt,
132
+ properties: {
133
+ products: [
134
+ {
135
+ quantity: 1,
136
+ product_id: 'Bowflex Treadmill 10',
137
+ price: 100
138
+ },
139
+ {
140
+ quantity: 2,
141
+ product_id: 'Bowflex Treadmill 20',
142
+ price: 200
143
+ }
144
+ ]
145
+ }
146
+ })
147
+ ];
148
+ const responses = await testDestination.testBatchAction(actionSlug, {
149
+ events,
150
+ useDefaultMappings: true,
151
+ mapping: {
152
+ external_id: {
153
+ '@path': '$.userId'
154
+ },
155
+ user_alias: {},
156
+ braze_id: {
157
+ '@path': '$.properties.braze_id'
158
+ },
159
+ name: {
160
+ '@path': '$.event'
161
+ },
162
+ time: {
163
+ '@path': '$.receivedAt'
164
+ },
165
+ properties: {
166
+ '@path': '$.properties'
167
+ },
168
+ products: {
169
+ '@path': '$.properties.products'
170
+ },
171
+ enable_batching: true,
172
+ _update_existing_only: true
173
+ },
174
+ settings: {
175
+ ...settings
176
+ }
177
+ });
178
+ expect(responses.length).toBe(1);
179
+ expect(responses[0].status).toBe(200);
180
+ expect(responses[0].options.headers).toMatchSnapshot();
181
+ expect(responses[0].options.json).toMatchSnapshot();
182
+ });
183
+ });
184
+ //# sourceMappingURL=snapshot.test.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"snapshot.test.js","sourceRoot":"","sources":["../../../../../src/destinations/braze/updateUserProfile/__snapshots__/snapshot.test.ts"],"names":[],"mappings":"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"}
@@ -1,10 +1,10 @@
1
1
  import { ContextFromDecorator } from './operationTracking';
2
2
  export declare const track: ((decoratorArgs?: ({
3
3
  onError?: ((ctx: import("./operationTracking").OperationErrorHandlerContext<import("./operationTracking").TryCatchFinallyContext<(this: any, ...args: any[]) => any>>) => void) | undefined;
4
- } & import("./operationTracking").OperationLoggerDecoratorArgs & {
4
+ } & {
5
5
  onTry?: ((ctx: import("./operationTracking").TryCatchFinallyContext<(this: any, ...args: any[]) => any>) => void) | undefined;
6
6
  onFinally?: ((ctx: import("./operationTracking").TryCatchFinallyContext<(this: any, ...args: any[]) => any>) => void) | undefined;
7
- } & {
7
+ } & import("./operationTracking").OperationLoggerDecoratorArgs & {
8
8
  shouldStats?: ((args: import("./operationTracking").OperationStatsEventArgs) => boolean | void) | undefined;
9
9
  } & {
10
10
  wrapIntegrationError?: ((ctx: import("./operationTracking").TryCatchFinallyContext<(this: any, ...args: any[]) => any>) => import("@segment/actions-core/*").IntegrationError | [message: string, code: string, status: number]) | undefined;
@@ -15,9 +15,6 @@ export declare const track: ((decoratorArgs?: ({
15
15
  }) | undefined;
16
16
  } & {
17
17
  _contextType: import("./operationTracking").TryCatchFinallyContext<(this: any, ...args: any[]) => any> & {
18
- start?: number | undefined;
19
- duration?: number | undefined;
20
- } & {
21
18
  decoratorArgs?: {
22
19
  onError?: ((ctx: import("./operationTracking").OperationErrorHandlerContext<import("./operationTracking").TryCatchFinallyContext<(this: any, ...args: any[]) => any>>) => void) | undefined;
23
20
  } | undefined;
@@ -25,16 +22,19 @@ export declare const track: ((decoratorArgs?: ({
25
22
  parent?: (import("./operationTracking").TryCatchFinallyContext<(this: any, ...args: any[]) => any> & any) | undefined;
26
23
  sharedContext: {};
27
24
  } & {
28
- logs: string[];
29
- logMetadata?: Record<string, unknown> | undefined;
30
- decoratorArgs?: import("./operationTracking").OperationLoggerDecoratorArgs | undefined;
31
- sharedContext: import("./operationTracking").OperationLoggerSharedContext;
25
+ start?: number | undefined;
26
+ duration?: number | undefined;
32
27
  } & {
33
28
  onFinally: (() => void)[];
34
29
  decoratorArgs?: {
35
30
  onTry?: ((ctx: import("./operationTracking").TryCatchFinallyContext<(this: any, ...args: any[]) => any>) => void) | undefined;
36
31
  onFinally?: ((ctx: import("./operationTracking").TryCatchFinallyContext<(this: any, ...args: any[]) => any>) => void) | undefined;
37
32
  } | undefined;
33
+ } & {
34
+ logs: string[];
35
+ logMetadata?: Record<string, unknown> | undefined;
36
+ decoratorArgs?: import("./operationTracking").OperationLoggerDecoratorArgs | undefined;
37
+ sharedContext: import("./operationTracking").OperationLoggerSharedContext;
38
38
  } & {
39
39
  tags: string[];
40
40
  sharedContext: {
@@ -2,4 +2,5 @@ export interface Payload {
2
2
  email?: string;
3
3
  list_id: string;
4
4
  external_id?: string;
5
+ enable_batching?: boolean;
5
6
  }
@@ -10,7 +10,8 @@ const action = {
10
10
  fields: {
11
11
  email: { ...properties_1.email },
12
12
  list_id: { ...properties_1.list_id },
13
- external_id: { ...properties_1.external_id }
13
+ external_id: { ...properties_1.external_id },
14
+ enable_batching: { ...properties_1.enable_batching }
14
15
  },
15
16
  perform: async (request, { payload }) => {
16
17
  const { email, list_id, external_id } = payload;
@@ -19,6 +20,12 @@ const action = {
19
20
  }
20
21
  const profileId = await functions_1.createProfile(request, email, external_id);
21
22
  return await functions_1.addProfileToList(request, profileId, list_id);
23
+ },
24
+ performBatch: async (request, { payload }) => {
25
+ payload = payload.filter((profile) => profile.email || profile.external_id);
26
+ const listId = payload[0]?.list_id;
27
+ const importJobPayload = functions_1.createImportJobPayload(payload, listId);
28
+ return functions_1.sendImportJobRequest(request, importJobPayload);
22
29
  }
23
30
  };
24
31
  exports.default = action;
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../src/destinations/klaviyo/addProfileToList/index.ts"],"names":[],"mappings":";;AAAA,wDAAgF;AAGhF,4CAA8D;AAC9D,8CAA2D;AAE3D,MAAM,MAAM,GAAwC;IAClD,KAAK,EAAE,qBAAqB;IAC5B,WAAW,EAAE,qBAAqB;IAClC,mBAAmB,EAAE,4BAA4B;IACjD,MAAM,EAAE;QACN,KAAK,EAAE,EAAE,GAAG,kBAAK,EAAE;QACnB,OAAO,EAAE,EAAE,GAAG,oBAAO,EAAE;QACvB,WAAW,EAAE,EAAE,GAAG,wBAAW,EAAE;KAChC;IACD,OAAO,EAAE,KAAK,EAAE,OAAO,EAAE,EAAE,OAAO,EAAE,EAAE,EAAE;QACtC,MAAM,EAAE,KAAK,EAAE,OAAO,EAAE,WAAW,EAAE,GAAG,OAAO,CAAA;QAC/C,IAAI,CAAC,KAAK,IAAI,CAAC,WAAW,EAAE;YAC1B,MAAM,IAAI,qCAAsB,CAAC,yCAAyC,CAAC,CAAA;SAC5E;QACD,MAAM,SAAS,GAAG,MAAM,yBAAa,CAAC,OAAO,EAAE,KAAK,EAAE,WAAW,CAAC,CAAA;QAClE,OAAO,MAAM,4BAAgB,CAAC,OAAO,EAAE,SAAS,EAAE,OAAO,CAAC,CAAA;IAC5D,CAAC;CACF,CAAA;AAED,kBAAe,MAAM,CAAA"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../src/destinations/klaviyo/addProfileToList/index.ts"],"names":[],"mappings":";;AAAA,wDAAgF;AAGhF,4CAA4G;AAC5G,8CAA4E;AAE5E,MAAM,MAAM,GAAwC;IAClD,KAAK,EAAE,qBAAqB;IAC5B,WAAW,EAAE,qBAAqB;IAClC,mBAAmB,EAAE,4BAA4B;IACjD,MAAM,EAAE;QACN,KAAK,EAAE,EAAE,GAAG,kBAAK,EAAE;QACnB,OAAO,EAAE,EAAE,GAAG,oBAAO,EAAE;QACvB,WAAW,EAAE,EAAE,GAAG,wBAAW,EAAE;QAC/B,eAAe,EAAE,EAAE,GAAG,4BAAe,EAAE;KACxC;IACD,OAAO,EAAE,KAAK,EAAE,OAAO,EAAE,EAAE,OAAO,EAAE,EAAE,EAAE;QACtC,MAAM,EAAE,KAAK,EAAE,OAAO,EAAE,WAAW,EAAE,GAAG,OAAO,CAAA;QAC/C,IAAI,CAAC,KAAK,IAAI,CAAC,WAAW,EAAE;YAC1B,MAAM,IAAI,qCAAsB,CAAC,yCAAyC,CAAC,CAAA;SAC5E;QACD,MAAM,SAAS,GAAG,MAAM,yBAAa,CAAC,OAAO,EAAE,KAAK,EAAE,WAAW,CAAC,CAAA;QAClE,OAAO,MAAM,4BAAgB,CAAC,OAAO,EAAE,SAAS,EAAE,OAAO,CAAC,CAAA;IAC5D,CAAC;IACD,YAAY,EAAE,KAAK,EAAE,OAAO,EAAE,EAAE,OAAO,EAAE,EAAE,EAAE;QAE3C,OAAO,GAAG,OAAO,CAAC,MAAM,CAAC,CAAC,OAAO,EAAE,EAAE,CAAC,OAAO,CAAC,KAAK,IAAI,OAAO,CAAC,WAAW,CAAC,CAAA;QAC3E,MAAM,MAAM,GAAG,OAAO,CAAC,CAAC,CAAC,EAAE,OAAO,CAAA;QAClC,MAAM,gBAAgB,GAAG,kCAAsB,CAAC,OAAO,EAAE,MAAM,CAAC,CAAA;QAChE,OAAO,gCAAoB,CAAC,OAAO,EAAE,gBAAgB,CAAC,CAAA;IACxD,CAAC;CACF,CAAA;AAED,kBAAe,MAAM,CAAA"}
@@ -3,8 +3,7 @@ import { ImportJobPayload } from './types';
3
3
  import { Payload } from './upsertProfile/generated-types';
4
4
  export declare function getListIdDynamicData(request: RequestClient): Promise<DynamicFieldResponse>;
5
5
  export declare function addProfileToList(request: RequestClient, id: string, list_id: string | undefined): Promise<import("@segment/actions-core").ModifiedResponse<unknown>>;
6
- export declare function removeProfileFromList(request: RequestClient, id: string, list_id: string | undefined): Promise<import("@segment/actions-core").ModifiedResponse<unknown>>;
7
- export declare function getProfile(request: RequestClient, email: string | undefined, external_id: string | undefined): Promise<any>;
6
+ export declare function removeProfileFromList(request: RequestClient, ids: string[], list_id: string): Promise<import("@segment/actions-core").ModifiedResponse<unknown>>;
8
7
  export declare function createProfile(request: RequestClient, email: string | undefined, external_id: string | undefined): Promise<any>;
9
8
  export declare function buildHeaders(authKey: string): {
10
9
  Authorization: string;
@@ -18,3 +17,4 @@ export declare const createImportJobPayload: (profiles: Payload[], listId?: stri
18
17
  export declare const sendImportJobRequest: (request: RequestClient, importJobPayload: {
19
18
  data: ImportJobPayload;
20
19
  }) => Promise<import("@segment/actions-core").ModifiedResponse<unknown>>;
20
+ export declare function getProfiles(request: RequestClient, emails: string[] | undefined, external_ids: string[] | undefined): Promise<string[]>;
@@ -1,6 +1,6 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.sendImportJobRequest = exports.createImportJobPayload = exports.buildHeaders = exports.createProfile = exports.getProfile = exports.removeProfileFromList = exports.addProfileToList = exports.getListIdDynamicData = void 0;
3
+ exports.getProfiles = exports.sendImportJobRequest = exports.createImportJobPayload = exports.buildHeaders = exports.createProfile = exports.removeProfileFromList = exports.addProfileToList = exports.getListIdDynamicData = void 0;
4
4
  const config_1 = require("./config");
5
5
  async function getListIdDynamicData(request) {
6
6
  try {
@@ -42,36 +42,17 @@ async function addProfileToList(request, id, list_id) {
42
42
  return list;
43
43
  }
44
44
  exports.addProfileToList = addProfileToList;
45
- async function removeProfileFromList(request, id, list_id) {
45
+ async function removeProfileFromList(request, ids, list_id) {
46
46
  const listData = {
47
- data: [
48
- {
49
- type: 'profile',
50
- id: id
51
- }
52
- ]
47
+ data: ids.map((id) => ({ type: 'profile', id }))
53
48
  };
54
- const list = await request(`${config_1.API_URL}/lists/${list_id}/relationships/profiles/`, {
49
+ const response = await request(`${config_1.API_URL}/lists/${list_id}/relationships/profiles/`, {
55
50
  method: 'DELETE',
56
51
  json: listData
57
52
  });
58
- return list;
53
+ return response;
59
54
  }
60
55
  exports.removeProfileFromList = removeProfileFromList;
61
- async function getProfile(request, email, external_id) {
62
- let filter;
63
- if (external_id) {
64
- filter = `external_id,"${external_id}"`;
65
- }
66
- if (email) {
67
- filter = `email,"${email}"`;
68
- }
69
- const profile = await request(`${config_1.API_URL}/profiles/?filter=equals(${filter})`, {
70
- method: 'GET'
71
- });
72
- return profile.json();
73
- }
74
- exports.getProfile = getProfile;
75
56
  async function createProfile(request, email, external_id) {
76
57
  try {
77
58
  const profileData = {
@@ -141,4 +122,25 @@ const sendImportJobRequest = async (request, importJobPayload) => {
141
122
  });
142
123
  };
143
124
  exports.sendImportJobRequest = sendImportJobRequest;
125
+ async function getProfiles(request, emails, external_ids) {
126
+ const profileIds = [];
127
+ if (external_ids?.length) {
128
+ const filterId = `external_id,["${external_ids.join('","')}"]`;
129
+ const response = await request(`${config_1.API_URL}/profiles/?filter=any(${filterId})`, {
130
+ method: 'GET'
131
+ });
132
+ const data = await response.json();
133
+ profileIds.push(...data.data.map((profile) => profile.id));
134
+ }
135
+ if (emails?.length) {
136
+ const filterEmail = `email,["${emails.join('","')}"]`;
137
+ const response = await request(`${config_1.API_URL}/profiles/?filter=any(${filterEmail})`, {
138
+ method: 'GET'
139
+ });
140
+ const data = await response.json();
141
+ profileIds.push(...data.data.map((profile) => profile.id));
142
+ }
143
+ return Array.from(new Set(profileIds));
144
+ }
145
+ exports.getProfiles = getProfiles;
144
146
  //# sourceMappingURL=functions.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"functions.js","sourceRoot":"","sources":["../../../src/destinations/klaviyo/functions.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"functions.js","sourceRoot":"","sources":["../../../src/destinations/klaviyo/functions.ts"],"names":[],"mappings":"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"}
@@ -2,3 +2,4 @@ import { InputField } from '@segment/actions-core/destination-kit/types';
2
2
  export declare const list_id: InputField;
3
3
  export declare const email: InputField;
4
4
  export declare const external_id: InputField;
5
+ export declare const enable_batching: InputField;
@@ -1,6 +1,6 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.external_id = exports.email = exports.list_id = void 0;
3
+ exports.enable_batching = exports.external_id = exports.email = exports.list_id = void 0;
4
4
  exports.list_id = {
5
5
  label: 'List Id',
6
6
  description: `'Insert the ID of the default list that you'd like to subscribe users to when you call .identify().'`,
@@ -25,4 +25,10 @@ exports.external_id = {
25
25
  description: `A unique identifier used by customers to associate Klaviyo profiles with profiles in an external system. One of External ID and Email required.`,
26
26
  type: 'string'
27
27
  };
28
+ exports.enable_batching = {
29
+ type: 'boolean',
30
+ label: 'Batch Data to Klaviyo',
31
+ description: 'When enabled, the action will use the klaviyo batch API.',
32
+ default: true
33
+ };
28
34
  //# sourceMappingURL=properties.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"properties.js","sourceRoot":"","sources":["../../../src/destinations/klaviyo/properties.ts"],"names":[],"mappings":";;;AAEa,QAAA,OAAO,GAAe;IACjC,KAAK,EAAE,SAAS;IAChB,WAAW,EAAE,sGAAsG;IACnH,IAAI,EAAE,QAAQ;IACd,OAAO,EAAE;QACP,OAAO,EAAE,yCAAyC;KACnD;IACD,aAAa,EAAE,IAAI;IACnB,QAAQ,EAAE,IAAI;CACf,CAAA;AAEY,QAAA,KAAK,GAAe;IAC/B,KAAK,EAAE,OAAO;IACd,WAAW,EAAE,qCAAqC;IAClD,IAAI,EAAE,QAAQ;IACd,OAAO,EAAE;QACP,OAAO,EAAE,wBAAwB;KAClC;IACD,QAAQ,EAAE,IAAI;CACf,CAAA;AAEY,QAAA,WAAW,GAAe;IACrC,KAAK,EAAE,aAAa;IACpB,WAAW,EAAE,iJAAiJ;IAC9J,IAAI,EAAE,QAAQ;CACf,CAAA"}
1
+ {"version":3,"file":"properties.js","sourceRoot":"","sources":["../../../src/destinations/klaviyo/properties.ts"],"names":[],"mappings":";;;AAEa,QAAA,OAAO,GAAe;IACjC,KAAK,EAAE,SAAS;IAChB,WAAW,EAAE,sGAAsG;IACnH,IAAI,EAAE,QAAQ;IACd,OAAO,EAAE;QACP,OAAO,EAAE,yCAAyC;KACnD;IACD,aAAa,EAAE,IAAI;IACnB,QAAQ,EAAE,IAAI;CACf,CAAA;AAEY,QAAA,KAAK,GAAe;IAC/B,KAAK,EAAE,OAAO;IACd,WAAW,EAAE,qCAAqC;IAClD,IAAI,EAAE,QAAQ;IACd,OAAO,EAAE;QACP,OAAO,EAAE,wBAAwB;KAClC;IACD,QAAQ,EAAE,IAAI;CACf,CAAA;AAEY,QAAA,WAAW,GAAe;IACrC,KAAK,EAAE,aAAa;IACpB,WAAW,EAAE,iJAAiJ;IAC9J,IAAI,EAAE,QAAQ;CACf,CAAA;AAEY,QAAA,eAAe,GAAe;IACzC,IAAI,EAAE,SAAS;IACf,KAAK,EAAE,uBAAuB;IAC9B,WAAW,EAAE,0DAA0D;IACvE,OAAO,EAAE,IAAI;CACd,CAAA"}
@@ -2,4 +2,5 @@ export interface Payload {
2
2
  email?: string;
3
3
  external_id?: string;
4
4
  list_id: string;
5
+ enable_batching?: boolean;
5
6
  }
@@ -10,18 +10,26 @@ const action = {
10
10
  fields: {
11
11
  email: { ...properties_1.email },
12
12
  external_id: { ...properties_1.external_id },
13
- list_id: { ...properties_1.list_id }
13
+ list_id: { ...properties_1.list_id },
14
+ enable_batching: { ...properties_1.enable_batching }
14
15
  },
15
16
  perform: async (request, { payload }) => {
16
17
  const { email, list_id, external_id } = payload;
17
18
  if (!email && !external_id) {
18
19
  throw new actions_core_1.PayloadValidationError('Missing Email or External Id');
19
20
  }
20
- const profileData = await functions_1.getProfile(request, email, external_id);
21
- const v = profileData.data;
22
- if (v && v.length !== 0) {
23
- return await functions_1.removeProfileFromList(request, v[0].id, list_id);
24
- }
21
+ const profileIds = await functions_1.getProfiles(request, email ? [email] : undefined, external_id ? [external_id] : undefined);
22
+ return await functions_1.removeProfileFromList(request, profileIds, list_id);
23
+ },
24
+ performBatch: async (request, { payload }) => {
25
+ const filteredPayload = payload.filter((profile) => profile.email || profile.external_id);
26
+ const listId = filteredPayload[0]?.list_id;
27
+ const emails = filteredPayload.map((profile) => profile.email).filter((email) => email);
28
+ const externalIds = filteredPayload
29
+ .map((profile) => profile.external_id)
30
+ .filter((external_id) => external_id);
31
+ const profileIds = await functions_1.getProfiles(request, emails, externalIds);
32
+ return await functions_1.removeProfileFromList(request, profileIds, listId);
25
33
  }
26
34
  };
27
35
  exports.default = action;
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../src/destinations/klaviyo/removeProfileFromList/index.ts"],"names":[],"mappings":";;AAAA,wDAAgF;AAIhF,4CAAgE;AAChE,8CAA2D;AAE3D,MAAM,MAAM,GAAwC;IAClD,KAAK,EAAE,0BAA0B;IACjC,WAAW,EAAE,0BAA0B;IACvC,mBAAmB,EAAE,2BAA2B;IAChD,MAAM,EAAE;QACN,KAAK,EAAE,EAAE,GAAG,kBAAK,EAAE;QACnB,WAAW,EAAE,EAAE,GAAG,wBAAW,EAAE;QAC/B,OAAO,EAAE,EAAE,GAAG,oBAAO,EAAE;KACxB;IACD,OAAO,EAAE,KAAK,EAAE,OAAO,EAAE,EAAE,OAAO,EAAE,EAAE,EAAE;QACtC,MAAM,EAAE,KAAK,EAAE,OAAO,EAAE,WAAW,EAAE,GAAG,OAAO,CAAA;QAC/C,IAAI,CAAC,KAAK,IAAI,CAAC,WAAW,EAAE;YAC1B,MAAM,IAAI,qCAAsB,CAAC,8BAA8B,CAAC,CAAA;SACjE;QACD,MAAM,WAAW,GAAG,MAAM,sBAAU,CAAC,OAAO,EAAE,KAAK,EAAE,WAAW,CAAC,CAAA;QACjE,MAAM,CAAC,GAAG,WAAW,CAAC,IAAI,CAAA;QAC1B,IAAI,CAAC,IAAI,CAAC,CAAC,MAAM,KAAK,CAAC,EAAE;YACvB,OAAO,MAAM,iCAAqB,CAAC,OAAO,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,EAAE,OAAO,CAAC,CAAA;SAC9D;IACH,CAAC;CACF,CAAA;AAED,kBAAe,MAAM,CAAA"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../src/destinations/klaviyo/removeProfileFromList/index.ts"],"names":[],"mappings":";;AAAA,wDAAgF;AAIhF,4CAAiE;AACjE,8CAA4E;AAE5E,MAAM,MAAM,GAAwC;IAClD,KAAK,EAAE,0BAA0B;IACjC,WAAW,EAAE,0BAA0B;IACvC,mBAAmB,EAAE,2BAA2B;IAChD,MAAM,EAAE;QACN,KAAK,EAAE,EAAE,GAAG,kBAAK,EAAE;QACnB,WAAW,EAAE,EAAE,GAAG,wBAAW,EAAE;QAC/B,OAAO,EAAE,EAAE,GAAG,oBAAO,EAAE;QACvB,eAAe,EAAE,EAAE,GAAG,4BAAe,EAAE;KACxC;IACD,OAAO,EAAE,KAAK,EAAE,OAAO,EAAE,EAAE,OAAO,EAAE,EAAE,EAAE;QACtC,MAAM,EAAE,KAAK,EAAE,OAAO,EAAE,WAAW,EAAE,GAAG,OAAO,CAAA;QAC/C,IAAI,CAAC,KAAK,IAAI,CAAC,WAAW,EAAE;YAC1B,MAAM,IAAI,qCAAsB,CAAC,8BAA8B,CAAC,CAAA;SACjE;QACD,MAAM,UAAU,GAAG,MAAM,uBAAW,CAAC,OAAO,EAAE,KAAK,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,SAAS,EAAE,WAAW,CAAC,CAAC,CAAC,CAAC,WAAW,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,CAAA;QACnH,OAAO,MAAM,iCAAqB,CAAC,OAAO,EAAE,UAAU,EAAE,OAAO,CAAC,CAAA;IAClE,CAAC;IACD,YAAY,EAAE,KAAK,EAAE,OAAO,EAAE,EAAE,OAAO,EAAE,EAAE,EAAE;QAE3C,MAAM,eAAe,GAAG,OAAO,CAAC,MAAM,CAAC,CAAC,OAAO,EAAE,EAAE,CAAC,OAAO,CAAC,KAAK,IAAI,OAAO,CAAC,WAAW,CAAC,CAAA;QACzF,MAAM,MAAM,GAAG,eAAe,CAAC,CAAC,CAAC,EAAE,OAAO,CAAA;QAC1C,MAAM,MAAM,GAAG,eAAe,CAAC,GAAG,CAAC,CAAC,OAAO,EAAE,EAAE,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC,MAAM,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,KAAK,CAAa,CAAA;QACnG,MAAM,WAAW,GAAG,eAAe;aAChC,GAAG,CAAC,CAAC,OAAO,EAAE,EAAE,CAAC,OAAO,CAAC,WAAW,CAAC;aACrC,MAAM,CAAC,CAAC,WAAW,EAAE,EAAE,CAAC,WAAW,CAAa,CAAA;QAEnD,MAAM,UAAU,GAAG,MAAM,uBAAW,CAAC,OAAO,EAAE,MAAM,EAAE,WAAW,CAAC,CAAA;QAClE,OAAO,MAAM,iCAAqB,CAAC,OAAO,EAAE,UAAU,EAAE,MAAM,CAAC,CAAA;IACjE,CAAC;CACF,CAAA;AAED,kBAAe,MAAM,CAAA"}
@@ -0,0 +1,4 @@
1
+ export interface Payload {
2
+ email?: string;
3
+ list_id?: string;
4
+ }
@@ -0,0 +1,3 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ //# sourceMappingURL=generated-types.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"generated-types.js","sourceRoot":"","sources":["../../../../src/destinations/klaviyo/removeProfileToList/generated-types.ts"],"names":[],"mappings":""}
@@ -0,0 +1,5 @@
1
+ import { ActionDefinition } from '@segment/actions-core';
2
+ import type { Settings } from '../generated-types';
3
+ import { Payload } from './generated-types';
4
+ declare const action: ActionDefinition<Settings, Payload>;
5
+ export default action;
@@ -0,0 +1,43 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ const actions_core_1 = require("@segment/actions-core");
4
+ const functions_1 = require("../functions");
5
+ const properties_1 = require("../properties");
6
+ const action = {
7
+ title: 'Remove profile from list',
8
+ description: 'Remove profile from list',
9
+ fields: {
10
+ email: { ...properties_1.email },
11
+ list_id: { ...properties_1.external_id }
12
+ },
13
+ perform: async (request, { payload }) => {
14
+ const { email, list_id } = payload;
15
+ if (!email || !list_id) {
16
+ throw new actions_core_1.IntegrationError("Insert the ID of the default list that you'd like to subscribe users", 'Missing required fields', 400);
17
+ }
18
+ try {
19
+ const profileData = await functions_1.getProfile(request, email);
20
+ const v = JSON.parse(profileData.content);
21
+ if (Object.keys(v).length !== 0) {
22
+ console.log(v);
23
+ const listData = {
24
+ data: [
25
+ {
26
+ type: 'profile',
27
+ id: v.data[0].id
28
+ }
29
+ ]
30
+ };
31
+ const list = await functions_1.executeProfileList(request, 'DELETE', listData, list_id);
32
+ return list;
33
+ }
34
+ return;
35
+ }
36
+ catch (error) {
37
+ console.log(error);
38
+ throw new Error('An error occurred while processing the request');
39
+ }
40
+ }
41
+ };
42
+ exports.default = action;
43
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../src/destinations/klaviyo/removeProfileToList/index.ts"],"names":[],"mappings":";;AAAA,wDAA0E;AAK1E,4CAA6D;AAC7D,8CAAkD;AAElD,MAAM,MAAM,GAAwC;IAClD,KAAK,EAAE,0BAA0B;IACjC,WAAW,EAAE,0BAA0B;IACvC,MAAM,EAAE;QACN,KAAK,EAAE,EAAE,GAAG,kBAAK,EAAE;QACnB,OAAO,EAAE,EAAE,GAAG,wBAAW,EAAE;KAC5B;IACD,OAAO,EAAE,KAAK,EAAE,OAAO,EAAE,EAAE,OAAO,EAAE,EAAE,EAAE;QACtC,MAAM,EAAE,KAAK,EAAE,OAAO,EAAE,GAAG,OAAO,CAAA;QAClC,IAAI,CAAC,KAAK,IAAI,CAAC,OAAO,EAAE;YACtB,MAAM,IAAI,+BAAgB,CACxB,sEAAsE,EACtE,yBAAyB,EACzB,GAAG,CACJ,CAAA;SACF;QACD,IAAI;YACF,MAAM,WAAW,GAA2B,MAAM,sBAAU,CAAC,OAAO,EAAE,KAAK,CAAC,CAAA;YAC5E,MAAM,CAAC,GAAG,IAAI,CAAC,KAAK,CAAC,WAAW,CAAC,OAAO,CAAC,CAAA;YACzC,IAAI,MAAM,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,MAAM,KAAK,CAAC,EAAE;gBAC/B,OAAO,CAAC,GAAG,CAAC,CAAC,CAAC,CAAA;gBACd,MAAM,QAAQ,GAAa;oBACzB,IAAI,EAAE;wBACJ;4BACE,IAAI,EAAE,SAAS;4BACf,EAAE,EAAE,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,EAAE;yBACjB;qBACF;iBACF,CAAA;gBAED,MAAM,IAAI,GAAG,MAAM,8BAAkB,CAAC,OAAO,EAAE,QAAQ,EAAE,QAAQ,EAAE,OAAO,CAAC,CAAA;gBAC3E,OAAO,IAAI,CAAA;aACZ;YACD,OAAM;SACP;QAAC,OAAO,KAAK,EAAE;YACd,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,CAAA;YAClB,MAAM,IAAI,KAAK,CAAC,gDAAgD,CAAC,CAAA;SAClE;IACH,CAAC;CACF,CAAA;AAED,kBAAe,MAAM,CAAA"}
@@ -119,3 +119,10 @@ export interface ImportJobPayload {
119
119
  };
120
120
  };
121
121
  }
122
+ export interface Profile {
123
+ type: string;
124
+ id: string;
125
+ }
126
+ export interface GetProfileResponse {
127
+ data: Profile[];
128
+ }
@@ -1,10 +1,15 @@
1
1
  "use strict";
2
+ var __importDefault = (this && this.__importDefault) || function (mod) {
3
+ return (mod && mod.__esModule) ? mod : { "default": mod };
4
+ };
2
5
  Object.defineProperty(exports, "__esModule", { value: true });
3
6
  const actions_core_1 = require("@segment/actions-core");
4
7
  const s3_1 = require("./s3");
5
8
  const operations_1 = require("../operations");
6
- const awsClient_1 = require("../awsClient");
7
9
  const properties_1 = require("../properties");
10
+ const promises_1 = require("stream/promises");
11
+ const awsClient_1 = require("../awsClient");
12
+ const s3_2 = __importDefault(require("../../../lib/AWS/s3"));
8
13
  const action = {
9
14
  title: 'Audience Entered (S3)',
10
15
  description: 'Uploads audience membership data to a file in S3 for LiveRamp ingestion.',
@@ -97,12 +102,27 @@ const action = {
97
102
  features,
98
103
  rawData
99
104
  });
105
+ },
106
+ performBatchStream: async (request, { payload }) => {
107
+ const transformStream = new operations_1.ObjectToCSVTransformer({});
108
+ const writeToS3 = new s3_1.S3WriteStream();
109
+ await promises_1.pipeline(payload, transformStream, writeToS3);
110
+ const opts = await s3_2.default(transformStream.s3.s3_aws_bucket_name, transformStream.s3.s3_aws_region, transformStream.s3.file_name, 'PUT', writeToS3.buffer, transformStream.s3.s3_aws_access_key, transformStream.s3.s3_aws_secret_key);
111
+ if (!opts.headers || !opts.method || !opts.host || !opts.path) {
112
+ throw new actions_core_1.InvalidAuthenticationError('Unable to generate signature header for AWS S3 request.');
113
+ }
114
+ console.time('s3');
115
+ const res = await request(`https://${opts.host}/${opts.path}`, {
116
+ headers: opts.headers,
117
+ method: 'PUT',
118
+ timeout: 120000,
119
+ body: opts.body
120
+ });
121
+ console.timeEnd('s3');
122
+ return res;
100
123
  }
101
124
  };
102
125
  async function processData(input) {
103
- if (input.payloads.length < properties_1.LIVERAMP_MIN_RECORD_COUNT) {
104
- throw new actions_core_1.PayloadValidationError(`received payload count below LiveRamp's ingestion limits. expected: >=${properties_1.LIVERAMP_MIN_RECORD_COUNT} actual: ${input.payloads.length}`);
105
- }
106
126
  s3_1.validateS3(input.payloads[0]);
107
127
  const { filename, fileContents } = operations_1.generateFile(input.payloads);
108
128
  if (input.features && input.features[properties_1.LIVERAMP_LEGACY_FLOW_FLAG_NAME] === true) {
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../src/destinations/liveramp-audiences/audienceEnteredS3/index.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../src/destinations/liveramp-audiences/audienceEnteredS3/index.ts"],"names":[],"mappings":"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"}