@segment/action-destinations 3.281.0 → 3.282.1-channels-1094.26

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 (145) hide show
  1. package/dist/destinations/amplitude/logPurchase/index.js +16 -1
  2. package/dist/destinations/amplitude/logPurchase/index.js.map +1 -1
  3. package/dist/destinations/blackbaud-raisers-edge-nxt/utils/index.d.ts +1 -1
  4. package/dist/destinations/courier/audienceToList/generated-types.d.ts +11 -0
  5. package/dist/destinations/courier/audienceToList/generated-types.js +3 -0
  6. package/dist/destinations/courier/audienceToList/generated-types.js.map +1 -0
  7. package/dist/destinations/courier/audienceToList/index.d.ts +9 -0
  8. package/dist/destinations/courier/audienceToList/index.js +107 -0
  9. package/dist/destinations/courier/audienceToList/index.js.map +1 -0
  10. package/dist/destinations/courier/index.d.ts +1 -0
  11. package/dist/destinations/courier/index.js +19 -1
  12. package/dist/destinations/courier/index.js.map +1 -1
  13. package/dist/destinations/courier/postToCourier/generated-types.d.ts +1 -0
  14. package/dist/destinations/courier/postToCourier/index.js +14 -6
  15. package/dist/destinations/courier/postToCourier/index.js.map +1 -1
  16. package/dist/destinations/customerio/test-helper.d.ts +1 -1
  17. package/dist/destinations/customerio/utils.d.ts +1 -1
  18. package/dist/destinations/dynamic-yield-audiences/generated-types.d.ts +1 -1
  19. package/dist/destinations/dynamic-yield-audiences/helpers.d.ts +1 -0
  20. package/dist/destinations/dynamic-yield-audiences/helpers.js +11 -1
  21. package/dist/destinations/dynamic-yield-audiences/helpers.js.map +1 -1
  22. package/dist/destinations/dynamic-yield-audiences/index.js +23 -21
  23. package/dist/destinations/dynamic-yield-audiences/index.js.map +1 -1
  24. package/dist/destinations/dynamic-yield-audiences/syncAudience/generated-types.d.ts +1 -1
  25. package/dist/destinations/dynamic-yield-audiences/syncAudience/index.js +26 -16
  26. package/dist/destinations/dynamic-yield-audiences/syncAudience/index.js.map +1 -1
  27. package/dist/destinations/engage/sendgrid/sendEmail/SendEmailPerformer.js +1 -1
  28. package/dist/destinations/engage/sendgrid/sendEmail/SendEmailPerformer.js.map +1 -1
  29. package/dist/destinations/engage/utils/EngageActionPerformer.d.ts +2 -2
  30. package/dist/destinations/engage/utils/EngageActionPerformer.js +1 -1
  31. package/dist/destinations/engage/utils/EngageActionPerformer.js.map +1 -1
  32. package/dist/destinations/engage/utils/MessageSendPerformer.d.ts +4 -1
  33. package/dist/destinations/engage/utils/MessageSendPerformer.js +79 -16
  34. package/dist/destinations/engage/utils/MessageSendPerformer.js.map +1 -1
  35. package/dist/destinations/engage/utils/apiLookups.d.ts +3 -3
  36. package/dist/destinations/engage/utils/apiLookups.js +9 -9
  37. package/dist/destinations/engage/utils/apiLookups.js.map +1 -1
  38. package/dist/destinations/engage/utils/track.d.ts +10 -10
  39. package/dist/destinations/engage-messaging-sendgrid/index.d.ts +4 -3
  40. package/dist/destinations/engage-messaging-sendgrid/index.js +68 -16
  41. package/dist/destinations/engage-messaging-sendgrid/index.js.map +1 -1
  42. package/dist/destinations/engage-messaging-sendgrid/previewApiLookup/apiLookups.d.ts +22 -0
  43. package/dist/destinations/engage-messaging-sendgrid/previewApiLookup/apiLookups.js +189 -0
  44. package/dist/destinations/engage-messaging-sendgrid/previewApiLookup/apiLookups.js.map +1 -0
  45. package/dist/destinations/engage-messaging-sendgrid/previewApiLookup/generated-types.d.ts +16 -0
  46. package/dist/destinations/engage-messaging-sendgrid/previewApiLookup/generated-types.js +3 -0
  47. package/dist/destinations/engage-messaging-sendgrid/previewApiLookup/generated-types.js.map +1 -0
  48. package/dist/destinations/engage-messaging-sendgrid/previewApiLookup/index.d.ts +5 -0
  49. package/dist/destinations/engage-messaging-sendgrid/previewApiLookup/index.js +29 -0
  50. package/dist/destinations/engage-messaging-sendgrid/previewApiLookup/index.js.map +1 -0
  51. package/dist/destinations/engage-messaging-sendgrid/sendEmail/SendEmailPerformer.d.ts +43 -0
  52. package/dist/destinations/engage-messaging-sendgrid/sendEmail/SendEmailPerformer.js +419 -0
  53. package/dist/destinations/engage-messaging-sendgrid/sendEmail/SendEmailPerformer.js.map +1 -0
  54. package/dist/destinations/engage-messaging-sendgrid/sendEmail/UnlayerResponse.d.ts +12 -0
  55. package/dist/destinations/engage-messaging-sendgrid/sendEmail/UnlayerResponse.js +3 -0
  56. package/dist/destinations/engage-messaging-sendgrid/sendEmail/UnlayerResponse.js.map +1 -0
  57. package/dist/destinations/engage-messaging-sendgrid/sendEmail/generated-types.d.ts +56 -0
  58. package/dist/destinations/engage-messaging-sendgrid/sendEmail/generated-types.js +3 -0
  59. package/dist/destinations/engage-messaging-sendgrid/sendEmail/generated-types.js.map +1 -0
  60. package/dist/destinations/engage-messaging-sendgrid/sendEmail/index.d.ts +5 -0
  61. package/dist/destinations/engage-messaging-sendgrid/sendEmail/index.js +258 -0
  62. package/dist/destinations/engage-messaging-sendgrid/sendEmail/index.js.map +1 -0
  63. package/dist/destinations/engage-messaging-sendgrid/sendEmail/insertEmailPreviewText.d.ts +1 -0
  64. package/dist/destinations/engage-messaging-sendgrid/sendEmail/insertEmailPreviewText.js +23 -0
  65. package/dist/destinations/engage-messaging-sendgrid/sendEmail/insertEmailPreviewText.js.map +1 -0
  66. package/dist/destinations/engage-messaging-sendgrid/sendEmail/isRestrictedDomain.d.ts +1 -0
  67. package/dist/destinations/engage-messaging-sendgrid/sendEmail/isRestrictedDomain.js +14 -0
  68. package/dist/destinations/engage-messaging-sendgrid/sendEmail/isRestrictedDomain.js.map +1 -0
  69. package/dist/destinations/engage-messaging-twilio/index.d.ts +4 -3
  70. package/dist/destinations/engage-messaging-twilio/index.js +169 -15
  71. package/dist/destinations/engage-messaging-twilio/index.js.map +1 -1
  72. package/dist/destinations/engage-messaging-twilio/sendMobilePush/PushSender.d.ts +28 -0
  73. package/dist/destinations/engage-messaging-twilio/sendMobilePush/PushSender.js +151 -0
  74. package/dist/destinations/engage-messaging-twilio/sendMobilePush/PushSender.js.map +1 -0
  75. package/dist/destinations/engage-messaging-twilio/sendMobilePush/generated-types.d.ts +39 -0
  76. package/dist/destinations/engage-messaging-twilio/sendMobilePush/generated-types.js +3 -0
  77. package/dist/destinations/engage-messaging-twilio/sendMobilePush/generated-types.js.map +1 -0
  78. package/dist/destinations/engage-messaging-twilio/sendMobilePush/index.d.ts +5 -0
  79. package/dist/destinations/engage-messaging-twilio/sendMobilePush/index.js +251 -0
  80. package/dist/destinations/engage-messaging-twilio/sendMobilePush/index.js.map +1 -0
  81. package/dist/destinations/engage-messaging-twilio/sendSms/SmsMessageSender.d.ts +9 -0
  82. package/dist/destinations/engage-messaging-twilio/sendSms/SmsMessageSender.js +72 -0
  83. package/dist/destinations/engage-messaging-twilio/sendSms/SmsMessageSender.js.map +1 -0
  84. package/dist/destinations/engage-messaging-twilio/sendSms/generated-types.d.ts +27 -0
  85. package/dist/destinations/engage-messaging-twilio/sendSms/generated-types.js +3 -0
  86. package/dist/destinations/engage-messaging-twilio/sendSms/generated-types.js.map +1 -0
  87. package/dist/destinations/engage-messaging-twilio/sendSms/index.d.ts +5 -0
  88. package/dist/destinations/engage-messaging-twilio/sendSms/index.js +163 -0
  89. package/dist/destinations/engage-messaging-twilio/sendSms/index.js.map +1 -0
  90. package/dist/destinations/engage-messaging-twilio/sendWhatsApp/WhatsAppMessageSender.d.ts +9 -0
  91. package/dist/destinations/engage-messaging-twilio/sendWhatsApp/WhatsAppMessageSender.js +89 -0
  92. package/dist/destinations/engage-messaging-twilio/sendWhatsApp/WhatsAppMessageSender.js.map +1 -0
  93. package/dist/destinations/engage-messaging-twilio/sendWhatsApp/generated-types.d.ts +25 -0
  94. package/dist/destinations/engage-messaging-twilio/sendWhatsApp/generated-types.js +3 -0
  95. package/dist/destinations/engage-messaging-twilio/sendWhatsApp/generated-types.js.map +1 -0
  96. package/dist/destinations/engage-messaging-twilio/sendWhatsApp/index.d.ts +5 -0
  97. package/dist/destinations/engage-messaging-twilio/sendWhatsApp/index.js +137 -0
  98. package/dist/destinations/engage-messaging-twilio/sendWhatsApp/index.js.map +1 -0
  99. package/dist/destinations/engage-messaging-twilio/utils/PhoneMessageSender.d.ts +16 -0
  100. package/dist/destinations/engage-messaging-twilio/utils/PhoneMessageSender.js +71 -0
  101. package/dist/destinations/engage-messaging-twilio/utils/PhoneMessageSender.js.map +1 -0
  102. package/dist/destinations/engage-messaging-twilio/utils/TwilioMessageSender.d.ts +16 -0
  103. package/dist/destinations/engage-messaging-twilio/utils/TwilioMessageSender.js +115 -0
  104. package/dist/destinations/engage-messaging-twilio/utils/TwilioMessageSender.js.map +1 -0
  105. package/dist/destinations/engage-messaging-twilio/utils/index.d.ts +2 -0
  106. package/dist/destinations/engage-messaging-twilio/utils/index.js +15 -0
  107. package/dist/destinations/engage-messaging-twilio/utils/index.js.map +1 -0
  108. package/dist/destinations/engage-messaging-twilio/utils/types.d.ts +23 -0
  109. package/dist/destinations/engage-messaging-twilio/utils/types.js +3 -0
  110. package/dist/destinations/engage-messaging-twilio/utils/types.js.map +1 -0
  111. package/dist/destinations/google-sheets/postSheet/generated-types.d.ts +0 -1
  112. package/dist/destinations/google-sheets/postSheet/index.js +5 -13
  113. package/dist/destinations/google-sheets/postSheet/index.js.map +1 -1
  114. package/dist/destinations/google-sheets-dev/postSheet.types.d.ts +0 -1
  115. package/dist/destinations/klaviyo/functions.d.ts +1 -1
  116. package/dist/destinations/klaviyo/properties.js +1 -1
  117. package/dist/destinations/klaviyo/upsertProfile/index.js +4 -5
  118. package/dist/destinations/klaviyo/upsertProfile/index.js.map +1 -1
  119. package/dist/destinations/loops/sendEvent/generated-types.d.ts +3 -0
  120. package/dist/destinations/loops/sendEvent/index.js +9 -1
  121. package/dist/destinations/loops/sendEvent/index.js.map +1 -1
  122. package/dist/destinations/pinterest-conversions/pinterset-capi-user-data.js +15 -1
  123. package/dist/destinations/pinterest-conversions/pinterset-capi-user-data.js.map +1 -1
  124. package/dist/destinations/pinterest-conversions/reportConversionEvent/generated-types.d.ts +2 -0
  125. package/dist/destinations/segment/index.js +1 -5
  126. package/dist/destinations/segment/index.js.map +1 -1
  127. package/dist/destinations/segment/properties.d.ts +0 -4
  128. package/dist/destinations/segment/properties.js +1 -14
  129. package/dist/destinations/segment/properties.js.map +1 -1
  130. package/dist/destinations/taboola-actions/index.js +14 -12
  131. package/dist/destinations/taboola-actions/index.js.map +1 -1
  132. package/dist/destinations/taboola-actions/syncAudience/client.d.ts +6 -3
  133. package/dist/destinations/taboola-actions/syncAudience/client.js +22 -2
  134. package/dist/destinations/taboola-actions/syncAudience/client.js.map +1 -1
  135. package/dist/destinations/taboola-actions/syncAudience/index.js +1 -13
  136. package/dist/destinations/taboola-actions/syncAudience/index.js.map +1 -1
  137. package/dist/destinations/tiktok-conversions/common_fields.js +86 -1
  138. package/dist/destinations/tiktok-conversions/common_fields.js.map +1 -1
  139. package/dist/destinations/tiktok-conversions/formatter.d.ts +2 -0
  140. package/dist/destinations/tiktok-conversions/formatter.js +16 -1
  141. package/dist/destinations/tiktok-conversions/formatter.js.map +1 -1
  142. package/dist/destinations/tiktok-conversions/reportWebEvent/generated-types.d.ts +8 -0
  143. package/dist/destinations/tiktok-conversions/utils.js +7 -1
  144. package/dist/destinations/tiktok-conversions/utils.js.map +1 -1
  145. package/package.json +4 -4
@@ -0,0 +1,189 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.FLAGON_NAME_DATA_FEEDS = exports.apiLookupLiquidKey = exports.apiLookupActionFields = exports.performApiLookup = exports.getCachedResponse = exports.getRequestId = void 0;
4
+ const crypto_1 = require("crypto");
5
+ const actions_core_1 = require("@segment/actions-core");
6
+ const liquidjs_1 = require("liquidjs");
7
+ const Liquid = new liquidjs_1.Liquid();
8
+ const renderLiquidFields = async ({ url, body }, profile, datafeedTags, logDataFeedError) => {
9
+ let renderedUrl;
10
+ let renderedBody;
11
+ try {
12
+ renderedUrl = await Liquid.parseAndRender(url, { profile });
13
+ }
14
+ catch (error) {
15
+ logDataFeedError('URL liquid render failuere', error);
16
+ datafeedTags.push('error:true', 'reason:rendering_failure', 'rendering:url');
17
+ throw new actions_core_1.IntegrationError('Unable to parse data feed url', 'DATA_FEED_RENDERING_ERROR', 400);
18
+ }
19
+ try {
20
+ renderedBody = body ? await Liquid.parseAndRender(body, { profile }) : undefined;
21
+ }
22
+ catch (error) {
23
+ logDataFeedError('Body liquid render failure', error);
24
+ datafeedTags.push('error:true', 'reason:rendering_failure', 'rendering:body');
25
+ throw new actions_core_1.IntegrationError('Unable to parse email api lookup body', 'DATA_FEED_RENDERING_ERROR', 400);
26
+ }
27
+ return {
28
+ renderedUrl,
29
+ renderedBody
30
+ };
31
+ };
32
+ const getRequestId = ({ method, url, body, headers }) => {
33
+ const requestHash = crypto_1.createHash('sha256');
34
+ requestHash.update(`${method}${url}${body}${JSON.stringify(headers)}`);
35
+ const requestId = requestHash.digest('hex');
36
+ return requestId;
37
+ };
38
+ exports.getRequestId = getRequestId;
39
+ const getCachedResponse = async ({ responseType }, requestId, engageDestinationCache, datafeedTags) => {
40
+ const cachedResponse = await engageDestinationCache.getByKey(requestId);
41
+ if (!cachedResponse) {
42
+ datafeedTags.push('cache_hit:false');
43
+ return;
44
+ }
45
+ datafeedTags.push('cache_hit:true');
46
+ if (responseType === 'json') {
47
+ return JSON.parse(cachedResponse);
48
+ }
49
+ return cachedResponse;
50
+ };
51
+ exports.getCachedResponse = getCachedResponse;
52
+ const performApiLookup = async (request, apiLookupConfig, profile, statsClient, tags, settings, logger, engageDestinationCache) => {
53
+ const { id, method, headers, cacheTtl, name, shouldRetryOnRetryableError = true } = apiLookupConfig;
54
+ const datafeedTags = [
55
+ ...tags,
56
+ `datafeed_id:${id}`,
57
+ `datafeed_name:${name}`,
58
+ `space_id:${settings.spaceId}`,
59
+ `cache_ttl_greater_than_0:${cacheTtl > 0}`,
60
+ `retry_enabled:${shouldRetryOnRetryableError}`
61
+ ];
62
+ const logDataFeedError = (message, error) => {
63
+ logger?.error(`TE Messaging: Data feed error - message: ${message} - data feed name: ${name} - data feed id: ${id} - space id: ${settings.spaceId} - raw error: ${error}`);
64
+ };
65
+ try {
66
+ const { renderedUrl, renderedBody } = await renderLiquidFields(apiLookupConfig, profile, datafeedTags, logDataFeedError);
67
+ const requestId = exports.getRequestId({ ...apiLookupConfig, url: renderedUrl, body: renderedBody });
68
+ if (cacheTtl > 0 && !engageDestinationCache) {
69
+ logDataFeedError('Data feed cache not available and cache needed');
70
+ datafeedTags.push('cache_set:false');
71
+ throw new actions_core_1.IntegrationError('Data feed cache not available and cache needed', 'DATA_FEED_CACHE_NOT_AVAILABLE', 400);
72
+ }
73
+ if (cacheTtl > 0 && engageDestinationCache) {
74
+ const cachedResponse = await exports.getCachedResponse(apiLookupConfig, requestId, engageDestinationCache, datafeedTags);
75
+ if (cachedResponse) {
76
+ datafeedTags.push('error:false');
77
+ return cachedResponse;
78
+ }
79
+ }
80
+ let data;
81
+ try {
82
+ const res = await request(renderedUrl, {
83
+ headers: headers ?? undefined,
84
+ timeout: 3000,
85
+ method: method,
86
+ body: renderedBody,
87
+ skipResponseCloning: true
88
+ });
89
+ data = await res.data;
90
+ }
91
+ catch (error) {
92
+ const respError = error.response;
93
+ logDataFeedError('Data feed call failure', error);
94
+ datafeedTags.push(`error:true`, `error_status:${respError?.status}`, 'reason:api_call_failure');
95
+ if (shouldRetryOnRetryableError) {
96
+ throw error;
97
+ }
98
+ return {};
99
+ }
100
+ if (cacheTtl > 0 && engageDestinationCache) {
101
+ const dataString = JSON.stringify(data);
102
+ const size = Buffer.byteLength(dataString, 'utf-8');
103
+ if (size > engageDestinationCache.maxValueSizeBytes) {
104
+ datafeedTags.push('error:true', 'reason:response_size_too_big');
105
+ logDataFeedError('Data feed response size too big too cache and caching needed, failing send');
106
+ throw new actions_core_1.IntegrationError('Data feed response size too big too cache and caching needed, failing send', 'DATA_FEED_RESPONSE_TOO_BIG', 400);
107
+ }
108
+ try {
109
+ await engageDestinationCache.setByKey(requestId, dataString, cacheTtl / 1000);
110
+ datafeedTags.push('cache_set:true');
111
+ }
112
+ catch (error) {
113
+ logDataFeedError('Data feed cache set failure', error);
114
+ datafeedTags.push('error:true', 'reason:cache_set_failure', 'cache_set:false');
115
+ throw error;
116
+ }
117
+ }
118
+ datafeedTags.push('error:false');
119
+ return data;
120
+ }
121
+ catch (error) {
122
+ const isErrorCapturedInTags = datafeedTags.find((str) => str.includes('error:true'));
123
+ if (!isErrorCapturedInTags) {
124
+ datafeedTags.push('error:true', 'reason:unknown');
125
+ }
126
+ tags.push('reason:datafeed_failure');
127
+ logDataFeedError('Unexpected data feed error', error);
128
+ throw error;
129
+ }
130
+ finally {
131
+ statsClient?.incr('datafeed_execution', 1, datafeedTags);
132
+ }
133
+ };
134
+ exports.performApiLookup = performApiLookup;
135
+ exports.apiLookupActionFields = {
136
+ id: {
137
+ label: 'ID',
138
+ description: 'The id of the API lookup for use in logging & observability',
139
+ type: 'string'
140
+ },
141
+ name: {
142
+ label: 'Name',
143
+ description: 'The name of the API lookup referenced in liquid syntax',
144
+ type: 'string',
145
+ required: true
146
+ },
147
+ url: {
148
+ label: 'URL',
149
+ description: 'The URL endpoint to call',
150
+ type: 'string',
151
+ required: true
152
+ },
153
+ method: {
154
+ label: 'Request Method',
155
+ description: 'The request method, e.g. GET/POST/etc.',
156
+ type: 'string',
157
+ required: true
158
+ },
159
+ cacheTtl: {
160
+ label: 'Cache TTL',
161
+ description: 'The cache TTL in ms',
162
+ type: 'integer',
163
+ required: true
164
+ },
165
+ body: {
166
+ label: 'Request Body',
167
+ description: 'The request body for use with POST/PUT/PATCH requests',
168
+ type: 'string'
169
+ },
170
+ headers: {
171
+ label: 'Request Headers',
172
+ description: 'Headers in JSON to be sent with the request',
173
+ type: 'object'
174
+ },
175
+ responseType: {
176
+ label: 'Response Type',
177
+ description: 'The response type of the request. Currently only supporting JSON.',
178
+ type: 'string',
179
+ required: true
180
+ },
181
+ shouldRetryOnRetryableError: {
182
+ label: 'Should Retry',
183
+ description: 'Whether the message should be retried (if the error code is retryable) when the data feed fails or if it should be sent with empty data instead',
184
+ type: 'boolean'
185
+ }
186
+ };
187
+ exports.apiLookupLiquidKey = 'datafeeds';
188
+ exports.FLAGON_NAME_DATA_FEEDS = 'is-datafeeds-enabled';
189
+ //# sourceMappingURL=apiLookups.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"apiLookups.js","sourceRoot":"","sources":["../../../../src/destinations/engage-messaging-sendgrid/previewApiLookup/apiLookups.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,16 @@
1
+ export interface Payload {
2
+ id?: string;
3
+ name: string;
4
+ url: string;
5
+ method: string;
6
+ cacheTtl: number;
7
+ body?: string;
8
+ headers?: {
9
+ [k: string]: unknown;
10
+ };
11
+ responseType: string;
12
+ shouldRetryOnRetryableError?: boolean;
13
+ traits?: {
14
+ [k: string]: unknown;
15
+ };
16
+ }
@@ -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/engage-messaging-sendgrid/previewApiLookup/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 type { Payload } from './generated-types';
4
+ export declare const actionDefinition: ActionDefinition<Settings, Payload>;
5
+ export default actionDefinition;
@@ -0,0 +1,29 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.actionDefinition = void 0;
4
+ const apiLookups_1 = require("./apiLookups");
5
+ exports.actionDefinition = {
6
+ title: 'Perform a single API lookup',
7
+ description: 'Perform a single API lookup and return the response',
8
+ fields: {
9
+ ...apiLookups_1.apiLookupActionFields,
10
+ traits: {
11
+ label: 'Traits',
12
+ description: "A user profile's traits",
13
+ type: 'object',
14
+ required: false
15
+ }
16
+ },
17
+ perform: async (request, { settings, payload, statsContext, logger }) => {
18
+ const statsClient = statsContext?.statsClient;
19
+ const tags = statsContext?.tags ?? [];
20
+ const { traits = {}, ...apiLookupConfig } = payload;
21
+ const profile = { traits: traits };
22
+ const data = await apiLookups_1.performApiLookup(request, apiLookupConfig, profile, statsClient, tags, settings, logger);
23
+ return {
24
+ data
25
+ };
26
+ }
27
+ };
28
+ exports.default = exports.actionDefinition;
29
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../src/destinations/engage-messaging-sendgrid/previewApiLookup/index.ts"],"names":[],"mappings":";;;AAGA,6CAAsE;AAGzD,QAAA,gBAAgB,GAAwC;IACnE,KAAK,EAAE,6BAA6B;IACpC,WAAW,EAAE,qDAAqD;IAClE,MAAM,EAAE;QACN,GAAG,kCAAqB;QACxB,MAAM,EAAE;YACN,KAAK,EAAE,QAAQ;YACf,WAAW,EAAE,yBAAyB;YACtC,IAAI,EAAE,QAAQ;YACd,QAAQ,EAAE,KAAK;SAChB;KACF;IACD,OAAO,EAAE,KAAK,EAAE,OAAO,EAAE,EAAE,QAAQ,EAAE,OAAO,EAAE,YAAY,EAAE,MAAM,EAAE,EAAE,EAAE;QACtE,MAAM,WAAW,GAAG,YAAY,EAAE,WAAW,CAAA;QAC7C,MAAM,IAAI,GAAG,YAAY,EAAE,IAAI,IAAI,EAAE,CAAA;QACrC,MAAM,EAAE,MAAM,GAAG,EAAE,EAAE,GAAG,eAAe,EAAE,GAAG,OAAO,CAAA;QACnD,MAAM,OAAO,GAAY,EAAE,MAAM,EAAE,MAAgC,EAAE,CAAA;QACrE,MAAM,IAAI,GAAG,MAAM,6BAAgB,CAAC,OAAO,EAAE,eAAe,EAAE,OAAO,EAAE,WAAW,EAAE,IAAI,EAAE,QAAQ,EAAE,MAAM,CAAC,CAAA;QAC3G,OAAO;YACL,IAAI;SACL,CAAA;IACH,CAAC;CACF,CAAA;AAED,kBAAe,wBAAgB,CAAA"}
@@ -0,0 +1,43 @@
1
+ import { ExtId, MessageSendPerformer, OperationContext, ResponseError, Profile } from '@segment/actions-shared';
2
+ import type { Settings } from '../generated-types';
3
+ import type { Payload } from './generated-types';
4
+ import { Liquid as LiquidJs } from 'liquidjs';
5
+ import { ApiLookupConfig, apiLookupLiquidKey } from '../previewApiLookup/apiLookups';
6
+ export declare const EXTERNAL_ID_KEY = "email";
7
+ export declare const Liquid: LiquidJs;
8
+ export declare class SendEmailPerformer extends MessageSendPerformer<Settings, Payload> {
9
+ getIntegrationStatsName(): string;
10
+ getChannelType(): string;
11
+ getDefaultSettingsRegion(): string;
12
+ isSupportedExternalId(externalId: ExtId<Payload>): boolean;
13
+ isExternalIdSubscribed(extId: ExtId<Payload>): boolean | undefined;
14
+ getRecepients(): ExtId<Payload>[];
15
+ parseTemplating(content: string, liquidData: {
16
+ profile: Profile;
17
+ [apiLookupLiquidKey]?: Record<string, unknown>;
18
+ }, contentType: string): Promise<any>;
19
+ sendToRecepient(emailProfile: ExtId<Payload>): Promise<import("@segment/actions-core/*").ModifiedResponse<unknown> | undefined>;
20
+ getBodyTemplateFromS3(bodyUrl: string): Promise<string>;
21
+ getBodyHtml(profile: Profile, apiLookupData: Record<string, unknown>, emailProfile: {
22
+ id?: string | undefined;
23
+ type?: string | undefined;
24
+ subscriptionStatus?: string | undefined;
25
+ unsubscribeLink?: string | undefined;
26
+ preferencesLink?: string | undefined;
27
+ groups?: {
28
+ id?: string | undefined;
29
+ isSubscribed?: boolean | undefined;
30
+ groupUnsubscribeLink?: string | undefined;
31
+ }[] | undefined;
32
+ }): Promise<string>;
33
+ generateEmailHtml(design: string): Promise<string>;
34
+ performApiLookups(this: SendEmailPerformer, apiLookups: ApiLookupConfig[] | undefined, profile: Profile): Promise<Record<string, unknown>>;
35
+ validateLinkAndLog(link: string): void;
36
+ insertUnsubscribeLinks(html: string, emailProfile: EmailProfile): string;
37
+ onResponse(args: {
38
+ response?: Response;
39
+ error?: ResponseError;
40
+ operation: OperationContext;
41
+ }): void;
42
+ }
43
+ export declare type EmailProfile = ExtId<Payload>;