@segment/action-destinations 3.317.0 → 3.319.0

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 (92) hide show
  1. package/dist/destinations/google-campaign-manager-360/common-fields.d.ts +3 -0
  2. package/dist/destinations/google-campaign-manager-360/common-fields.js +306 -0
  3. package/dist/destinations/google-campaign-manager-360/common-fields.js.map +1 -0
  4. package/dist/destinations/google-campaign-manager-360/conversionAdjustmentUpload/generated-types.d.ts +45 -0
  5. package/dist/destinations/google-campaign-manager-360/conversionAdjustmentUpload/generated-types.js +3 -0
  6. package/dist/destinations/google-campaign-manager-360/conversionAdjustmentUpload/generated-types.js.map +1 -0
  7. package/dist/destinations/google-campaign-manager-360/conversionAdjustmentUpload/index.d.ts +5 -0
  8. package/dist/destinations/google-campaign-manager-360/conversionAdjustmentUpload/index.js +86 -0
  9. package/dist/destinations/google-campaign-manager-360/conversionAdjustmentUpload/index.js.map +1 -0
  10. package/dist/destinations/google-campaign-manager-360/conversionUpload/generated-types.d.ts +50 -0
  11. package/dist/destinations/google-campaign-manager-360/conversionUpload/generated-types.js +3 -0
  12. package/dist/destinations/google-campaign-manager-360/conversionUpload/generated-types.js.map +1 -0
  13. package/dist/destinations/google-campaign-manager-360/conversionUpload/index.d.ts +5 -0
  14. package/dist/destinations/google-campaign-manager-360/conversionUpload/index.js +131 -0
  15. package/dist/destinations/google-campaign-manager-360/conversionUpload/index.js.map +1 -0
  16. package/dist/destinations/google-campaign-manager-360/generated-types.d.ts +5 -0
  17. package/dist/destinations/google-campaign-manager-360/generated-types.js +3 -0
  18. package/dist/destinations/google-campaign-manager-360/generated-types.js.map +1 -0
  19. package/dist/destinations/google-campaign-manager-360/index.d.ts +4 -0
  20. package/dist/destinations/google-campaign-manager-360/index.js +63 -0
  21. package/dist/destinations/google-campaign-manager-360/index.js.map +1 -0
  22. package/dist/destinations/google-campaign-manager-360/types.d.ts +116 -0
  23. package/dist/destinations/google-campaign-manager-360/types.js +23 -0
  24. package/dist/destinations/google-campaign-manager-360/types.js.map +1 -0
  25. package/dist/destinations/google-campaign-manager-360/utils.d.ts +21 -0
  26. package/dist/destinations/google-campaign-manager-360/utils.js +175 -0
  27. package/dist/destinations/google-campaign-manager-360/utils.js.map +1 -0
  28. package/dist/destinations/hubspot/upsertObject/dynamic-fields.js +8 -0
  29. package/dist/destinations/hubspot/upsertObject/dynamic-fields.js.map +1 -1
  30. package/dist/destinations/index.js +2 -0
  31. package/dist/destinations/index.js.map +1 -1
  32. package/dist/destinations/reddit-conversions-api/customEvent/generated-types.d.ts +2 -2
  33. package/dist/destinations/reddit-conversions-api/fields.js +10 -2
  34. package/dist/destinations/reddit-conversions-api/fields.js.map +1 -1
  35. package/dist/destinations/reddit-conversions-api/standardEvent/generated-types.d.ts +2 -2
  36. package/dist/destinations/reddit-conversions-api/utils.js +10 -2
  37. package/dist/destinations/reddit-conversions-api/utils.js.map +1 -1
  38. package/dist/destinations/s3/client.d.ts +15 -0
  39. package/dist/destinations/s3/client.js +105 -0
  40. package/dist/destinations/s3/client.js.map +1 -0
  41. package/dist/destinations/s3/fields.d.ts +3 -0
  42. package/dist/destinations/s3/fields.js +222 -0
  43. package/dist/destinations/s3/fields.js.map +1 -0
  44. package/dist/destinations/s3/functions.d.ts +9 -0
  45. package/dist/destinations/s3/functions.js +66 -0
  46. package/dist/destinations/s3/functions.js.map +1 -0
  47. package/dist/destinations/s3/generated-types.d.ts +6 -0
  48. package/dist/destinations/s3/generated-types.js +3 -0
  49. package/dist/destinations/s3/generated-types.js.map +1 -0
  50. package/dist/destinations/s3/index.d.ts +4 -0
  51. package/dist/destinations/s3/index.js +46 -0
  52. package/dist/destinations/s3/index.js.map +1 -0
  53. package/dist/destinations/s3/syncToS3/generated-types.d.ts +38 -0
  54. package/dist/destinations/s3/syncToS3/generated-types.js +3 -0
  55. package/dist/destinations/s3/syncToS3/generated-types.js.map +1 -0
  56. package/dist/destinations/s3/syncToS3/index.d.ts +5 -0
  57. package/dist/destinations/s3/syncToS3/index.js +22 -0
  58. package/dist/destinations/s3/syncToS3/index.js.map +1 -0
  59. package/dist/destinations/s3/types.d.ts +16 -0
  60. package/dist/destinations/s3/types.js +3 -0
  61. package/dist/destinations/s3/types.js.map +1 -0
  62. package/dist/destinations/stackadapt-audiences/forwardAudienceEvent/functions.d.ts +3 -0
  63. package/dist/destinations/stackadapt-audiences/forwardAudienceEvent/functions.js +80 -0
  64. package/dist/destinations/stackadapt-audiences/forwardAudienceEvent/functions.js.map +1 -0
  65. package/dist/destinations/stackadapt-audiences/forwardAudienceEvent/generated-types.d.ts +12 -0
  66. package/dist/destinations/stackadapt-audiences/forwardAudienceEvent/generated-types.js +3 -0
  67. package/dist/destinations/stackadapt-audiences/forwardAudienceEvent/generated-types.js.map +1 -0
  68. package/dist/destinations/stackadapt-audiences/forwardAudienceEvent/index.d.ts +5 -0
  69. package/dist/destinations/stackadapt-audiences/forwardAudienceEvent/index.js +100 -0
  70. package/dist/destinations/stackadapt-audiences/forwardAudienceEvent/index.js.map +1 -0
  71. package/dist/destinations/stackadapt-audiences/forwardProfile/functions.d.ts +3 -0
  72. package/dist/destinations/stackadapt-audiences/forwardProfile/functions.js +121 -0
  73. package/dist/destinations/stackadapt-audiences/forwardProfile/functions.js.map +1 -0
  74. package/dist/destinations/stackadapt-audiences/forwardProfile/generated-types.d.ts +19 -0
  75. package/dist/destinations/stackadapt-audiences/forwardProfile/generated-types.js +3 -0
  76. package/dist/destinations/stackadapt-audiences/forwardProfile/generated-types.js.map +1 -0
  77. package/dist/destinations/stackadapt-audiences/forwardProfile/index.d.ts +5 -0
  78. package/dist/destinations/stackadapt-audiences/forwardProfile/index.js +186 -0
  79. package/dist/destinations/stackadapt-audiences/forwardProfile/index.js.map +1 -0
  80. package/dist/destinations/stackadapt-audiences/functions.d.ts +6 -0
  81. package/dist/destinations/stackadapt-audiences/functions.js +54 -0
  82. package/dist/destinations/stackadapt-audiences/functions.js.map +1 -0
  83. package/dist/destinations/stackadapt-audiences/generated-types.d.ts +3 -0
  84. package/dist/destinations/stackadapt-audiences/generated-types.js +3 -0
  85. package/dist/destinations/stackadapt-audiences/generated-types.js.map +1 -0
  86. package/dist/destinations/stackadapt-audiences/index.d.ts +4 -0
  87. package/dist/destinations/stackadapt-audiences/index.js +64 -0
  88. package/dist/destinations/stackadapt-audiences/index.js.map +1 -0
  89. package/dist/destinations/stackadapt-audiences/types.d.ts +15 -0
  90. package/dist/destinations/stackadapt-audiences/types.js +3 -0
  91. package/dist/destinations/stackadapt-audiences/types.js.map +1 -0
  92. package/package.json +2 -2
@@ -0,0 +1,66 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.generateFile = exports.getAudienceAction = exports.encodeString = exports.snakeCase = exports.send = void 0;
4
+ const client_1 = require("./client");
5
+ async function send(payloads, settings, rawMapping) {
6
+ const headers = Object.keys(rawMapping.columns).map((column) => {
7
+ return snakeCase(column);
8
+ });
9
+ const actionColName = payloads[0]?.audience_action_column_name;
10
+ const actionColNameSnakeCase = snakeCase(actionColName);
11
+ if (actionColNameSnakeCase) {
12
+ headers.push(actionColNameSnakeCase);
13
+ }
14
+ const delimiter = payloads[0]?.delimiter;
15
+ const fileContent = generateFile(payloads, headers, delimiter, actionColNameSnakeCase);
16
+ const s3Client = new client_1.Client(settings.s3_aws_region, settings.iam_role_arn, settings.iam_external_id);
17
+ await s3Client.uploadS3(settings, fileContent, payloads[0]?.filename_prefix ?? '', payloads[0]?.s3_aws_folder_name ?? '', payloads[0]?.file_extension);
18
+ }
19
+ exports.send = send;
20
+ function snakeCase(str) {
21
+ if (!str) {
22
+ return '';
23
+ }
24
+ return str
25
+ .replace(/([a-z])([A-Z])/g, '$1_$2')
26
+ .toLowerCase();
27
+ }
28
+ exports.snakeCase = snakeCase;
29
+ function processField(row, value) {
30
+ row.push(encodeString(value === undefined || value === null
31
+ ? ''
32
+ : typeof value === 'object'
33
+ ? String(JSON.stringify(value))
34
+ : String(value)));
35
+ }
36
+ function generateFile(payloads, headers, delimiter, actionColName) {
37
+ const rows = [];
38
+ rows.push(`${headers.join(delimiter === 'tab' ? '\t' : delimiter)}\n`);
39
+ payloads.forEach((payload, index) => {
40
+ const isLastRow = index === payloads.length - 1;
41
+ const row = [];
42
+ headers.forEach((header) => {
43
+ if (header === actionColName) {
44
+ processField(row, getAudienceAction(payload));
45
+ }
46
+ else {
47
+ processField(row, payload.columns[header]);
48
+ }
49
+ });
50
+ rows.push(`${row.join(delimiter === 'tab' ? '\t' : delimiter)}${isLastRow ? '' : '\n'}`);
51
+ });
52
+ return rows.join('');
53
+ }
54
+ exports.generateFile = generateFile;
55
+ function encodeString(str) {
56
+ return `"${String(str).replace(/"/g, '""')}"`;
57
+ }
58
+ exports.encodeString = encodeString;
59
+ function getAudienceAction(payload) {
60
+ if (!payload.traits_or_props || !payload.computation_key) {
61
+ return undefined;
62
+ }
63
+ return payload?.traits_or_props?.[payload.computation_key] ?? undefined;
64
+ }
65
+ exports.getAudienceAction = getAudienceAction;
66
+ //# sourceMappingURL=functions.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"functions.js","sourceRoot":"","sources":["../../../src/destinations/s3/functions.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,6 @@
1
+ export interface Settings {
2
+ iam_role_arn: string;
3
+ s3_aws_bucket_name: string;
4
+ s3_aws_region: string;
5
+ iam_external_id: string;
6
+ }
@@ -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/s3/generated-types.ts"],"names":[],"mappings":""}
@@ -0,0 +1,4 @@
1
+ import { DestinationDefinition } from '@segment/actions-core';
2
+ import type { Settings } from './generated-types';
3
+ declare const destination: DestinationDefinition<Settings>;
4
+ export default destination;
@@ -0,0 +1,46 @@
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 syncToS3_1 = __importDefault(require("./syncToS3"));
7
+ const destination = {
8
+ name: 'AWS S3',
9
+ slug: 'actions-s3',
10
+ mode: 'cloud',
11
+ description: 'Sync Segment event data to AWS S3.',
12
+ authentication: {
13
+ scheme: 'custom',
14
+ fields: {
15
+ iam_role_arn: {
16
+ label: 'IAM Role ARN',
17
+ description: 'IAM role ARN with write permissions to the S3 bucket. Format: arn:aws:iam::account-id:role/role-name',
18
+ type: 'string',
19
+ required: true
20
+ },
21
+ s3_aws_bucket_name: {
22
+ label: 'AWS Bucket Name',
23
+ description: 'Name of the S3 bucket where the files will be uploaded to.',
24
+ type: 'string',
25
+ required: true
26
+ },
27
+ s3_aws_region: {
28
+ label: 'AWS Region Code',
29
+ description: 'Region Code where the S3 bucket is hosted. See [AWS S3 Documentation](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/using-regions-availability-zones.html#concepts-regions)',
30
+ type: 'string',
31
+ required: true
32
+ },
33
+ iam_external_id: {
34
+ label: 'IAM External ID',
35
+ description: 'The External ID to your IAM role. Generate a secure string and treat it like a password.',
36
+ type: 'password',
37
+ required: true
38
+ }
39
+ }
40
+ },
41
+ actions: {
42
+ syncToS3: syncToS3_1.default
43
+ }
44
+ };
45
+ exports.default = destination;
46
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/destinations/s3/index.ts"],"names":[],"mappings":";;;;;AAEA,0DAAiC;AAEjC,MAAM,WAAW,GAAoC;IACnD,IAAI,EAAE,QAAQ;IACd,IAAI,EAAE,YAAY;IAClB,IAAI,EAAE,OAAO;IACb,WAAW,EAAE,oCAAoC;IAEjD,cAAc,EAAE;QACd,MAAM,EAAE,QAAQ;QAChB,MAAM,EAAE;YACN,YAAY,EAAE;gBACZ,KAAK,EAAE,cAAc;gBACrB,WAAW,EACT,sGAAsG;gBACxG,IAAI,EAAE,QAAQ;gBACd,QAAQ,EAAE,IAAI;aACf;YACD,kBAAkB,EAAE;gBAClB,KAAK,EAAE,iBAAiB;gBACxB,WAAW,EAAE,4DAA4D;gBACzE,IAAI,EAAE,QAAQ;gBACd,QAAQ,EAAE,IAAI;aACf;YACD,aAAa,EAAE;gBACb,KAAK,EAAE,iBAAiB;gBACxB,WAAW,EACT,mLAAmL;gBACrL,IAAI,EAAE,QAAQ;gBACd,QAAQ,EAAE,IAAI;aACf;YACD,eAAe,EAAE;gBACf,KAAK,EAAE,iBAAiB;gBACxB,WAAW,EAAE,0FAA0F;gBACvG,IAAI,EAAE,UAAU;gBAChB,QAAQ,EAAE,IAAI;aACf;SACF;KACF;IACD,OAAO,EAAE;QACP,QAAQ,EAAR,kBAAQ;KACT;CACF,CAAA;AAED,kBAAe,WAAW,CAAA"}
@@ -0,0 +1,38 @@
1
+ export interface Payload {
2
+ columns: {
3
+ event_name?: string;
4
+ event_type?: string;
5
+ user_id?: string;
6
+ anonymous_id?: string;
7
+ email?: string;
8
+ properties?: {
9
+ [k: string]: unknown;
10
+ };
11
+ traits?: {
12
+ [k: string]: unknown;
13
+ };
14
+ context?: {
15
+ [k: string]: unknown;
16
+ };
17
+ timestamp?: string;
18
+ message_id?: string;
19
+ integrations?: {
20
+ [k: string]: unknown;
21
+ };
22
+ audience_name?: string;
23
+ audience_id?: string;
24
+ audience_space_id?: string;
25
+ [k: string]: unknown;
26
+ };
27
+ audience_action_column_name?: string;
28
+ traits_or_props?: {
29
+ [k: string]: unknown;
30
+ };
31
+ computation_key?: string;
32
+ enable_batching: boolean;
33
+ batch_size?: number;
34
+ s3_aws_folder_name?: string;
35
+ filename_prefix?: string;
36
+ delimiter: string;
37
+ file_extension: string;
38
+ }
@@ -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/s3/syncToS3/generated-types.ts"],"names":[],"mappings":""}
@@ -0,0 +1,5 @@
1
+ import type { ActionDefinition } from '@segment/actions-core';
2
+ import type { Settings } from '../generated-types';
3
+ import type { Payload } from './generated-types';
4
+ declare const action: ActionDefinition<Settings, Payload>;
5
+ export default action;
@@ -0,0 +1,22 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ const fields_1 = require("../fields");
4
+ const functions_1 = require("../functions");
5
+ const action = {
6
+ title: 'Sync to S3',
7
+ description: 'Syncs Segment event data to S3.',
8
+ defaultSubscription: 'type = "identify" or type = "track"',
9
+ fields: fields_1.commonFields,
10
+ perform: async (_, data) => {
11
+ const { payload, settings } = data;
12
+ const rawMapping = data.rawMapping;
13
+ return functions_1.send([payload], settings, rawMapping);
14
+ },
15
+ performBatch: async (_, data) => {
16
+ const { payload, settings } = data;
17
+ const rawMapping = data.rawMapping;
18
+ return functions_1.send(payload, settings, rawMapping[0]);
19
+ }
20
+ };
21
+ exports.default = action;
22
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../src/destinations/s3/syncToS3/index.ts"],"names":[],"mappings":";;AAGA,sCAAwC;AACxC,4CAAmC;AAGnC,MAAM,MAAM,GAAwC;IAClD,KAAK,EAAE,YAAY;IACnB,WAAW,EAAE,iCAAiC;IAC9C,mBAAmB,EAAE,qCAAqC;IAC1D,MAAM,EAAE,qBAAY;IACpB,OAAO,EAAE,KAAK,EAAE,CAAC,EAAE,IAAI,EAAE,EAAE;QACzB,MAAM,EAAE,OAAO,EAAE,QAAQ,EAAE,GAAG,IAAI,CAAA;QAClC,MAAM,UAAU,GAAgB,IAA8B,CAAC,UAAU,CAAA;QACzE,OAAO,gBAAI,CAAC,CAAC,OAAO,CAAC,EAAE,QAAQ,EAAE,UAAU,CAAC,CAAA;IAC9C,CAAC;IACD,YAAY,EAAE,KAAK,EAAE,CAAC,EAAE,IAAI,EAAE,EAAE;QAC9B,MAAM,EAAE,OAAO,EAAE,QAAQ,EAAE,GAAG,IAAI,CAAA;QAClC,MAAM,UAAU,GAAkB,IAA6B,CAAC,UAAU,CAAA;QAC1E,OAAO,gBAAI,CAAC,OAAO,EAAE,QAAQ,EAAE,UAAU,CAAC,CAAC,CAAC,CAAC,CAAA;IAC/C,CAAC;CACF,CAAA;AAED,kBAAe,MAAM,CAAA"}
@@ -0,0 +1,16 @@
1
+ export interface Credentials {
2
+ accessKeyId: string;
3
+ secretAccessKey: string;
4
+ sessionToken: string;
5
+ }
6
+ export interface SingleData {
7
+ rawMapping: RawMapping;
8
+ }
9
+ export interface BatchData {
10
+ rawMapping: RawMapping[];
11
+ }
12
+ export interface RawMapping {
13
+ columns: {
14
+ [k: string]: unknown;
15
+ };
16
+ }
@@ -0,0 +1,3 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ //# sourceMappingURL=types.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"types.js","sourceRoot":"","sources":["../../../src/destinations/s3/types.ts"],"names":[],"mappings":""}
@@ -0,0 +1,3 @@
1
+ import { RequestClient } from '@segment/actions-core';
2
+ import { Payload } from './generated-types';
3
+ export declare function performForwardAudienceEvents(request: RequestClient, events: Payload[]): Promise<import("@segment/actions-core").ModifiedResponse<unknown>>;
@@ -0,0 +1,80 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.performForwardAudienceEvents = void 0;
4
+ const functions_1 = require("../functions");
5
+ const EXTERNAL_PROVIDER = 'segmentio';
6
+ const audienceMapping = functions_1.stringifyJsonWithEscapedQuotes([
7
+ {
8
+ incoming_key: 'audienceId',
9
+ destination_key: 'external_id',
10
+ data_type: 'string'
11
+ },
12
+ {
13
+ incoming_key: 'audienceName',
14
+ destination_key: 'name',
15
+ data_type: 'string'
16
+ }
17
+ ]);
18
+ const profileMapping = functions_1.stringifyJsonWithEscapedQuotes([
19
+ {
20
+ incoming_key: 'userId',
21
+ destination_key: 'external_id',
22
+ data_type: 'string',
23
+ is_pii: false
24
+ }
25
+ ]);
26
+ async function performForwardAudienceEvents(request, events) {
27
+ const advertiserId = events[0].advertiser_id;
28
+ const profileUpdates = events.map((event) => {
29
+ const { segment_computation_key: audienceKey, segment_computation_id: audienceId, user_id, traits_or_props } = event;
30
+ const { [audienceKey]: action } = traits_or_props;
31
+ return {
32
+ userId: user_id,
33
+ audienceId,
34
+ audienceName: audienceKey,
35
+ action: action ? 'enter' : 'exit'
36
+ };
37
+ });
38
+ const profiles = functions_1.stringifyJsonWithEscapedQuotes(profileUpdates);
39
+ const mutation = `mutation {
40
+ upsertProfiles(
41
+ input: {
42
+ advertiserId: ${advertiserId},
43
+ externalProvider: "${EXTERNAL_PROVIDER}",
44
+ syncId: "${functions_1.sha256hash(profiles)}",
45
+ profiles: "${profiles}"
46
+ }
47
+ ) {
48
+ userErrors {
49
+ message
50
+ }
51
+ }
52
+ upsertProfileMapping(
53
+ input: {
54
+ advertiserId: ${advertiserId},
55
+ mappingSchema: "${profileMapping}",
56
+ mappableType: "${EXTERNAL_PROVIDER}",
57
+ }
58
+ ) {
59
+ userErrors {
60
+ message
61
+ }
62
+ }
63
+ upsertExternalAudienceMapping(
64
+ input: {
65
+ advertiserId: ${advertiserId},
66
+ mappingSchema: "${audienceMapping}",
67
+ mappableType: "${EXTERNAL_PROVIDER}"
68
+ }
69
+ ) {
70
+ userErrors {
71
+ message
72
+ }
73
+ }
74
+ }`;
75
+ return await request(functions_1.GQL_ENDPOINT, {
76
+ body: JSON.stringify({ query: mutation })
77
+ });
78
+ }
79
+ exports.performForwardAudienceEvents = performForwardAudienceEvents;
80
+ //# sourceMappingURL=functions.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"functions.js","sourceRoot":"","sources":["../../../../src/destinations/stackadapt-audiences/forwardAudienceEvent/functions.ts"],"names":[],"mappings":";;;AAEA,4CAAuF;AAEvF,MAAM,iBAAiB,GAAG,WAAW,CAAA;AAErC,MAAM,eAAe,GAAG,0CAA8B,CAAC;IACrD;QACE,YAAY,EAAE,YAAY;QAC1B,eAAe,EAAE,aAAa;QAC9B,SAAS,EAAE,QAAQ;KACpB;IACD;QACE,YAAY,EAAE,cAAc;QAC5B,eAAe,EAAE,MAAM;QACvB,SAAS,EAAE,QAAQ;KACpB;CACF,CAAC,CAAA;AAEF,MAAM,cAAc,GAAG,0CAA8B,CAAC;IACpD;QACE,YAAY,EAAE,QAAQ;QACtB,eAAe,EAAE,aAAa;QAC9B,SAAS,EAAE,QAAQ;QACnB,MAAM,EAAE,KAAK;KACd;CACF,CAAC,CAAA;AAEK,KAAK,UAAU,4BAA4B,CAAC,OAAsB,EAAE,MAAiB;IAC1F,MAAM,YAAY,GAAG,MAAM,CAAC,CAAC,CAAC,CAAC,aAAa,CAAA;IAC5C,MAAM,cAAc,GAAG,MAAM,CAAC,GAAG,CAAC,CAAC,KAAK,EAAE,EAAE;QAC1C,MAAM,EAAE,uBAAuB,EAAE,WAAW,EAAE,sBAAsB,EAAE,UAAU,EAAE,OAAO,EAAE,eAAe,EAAE,GAAG,KAAK,CAAA;QAEpH,MAAM,EAAE,CAAC,WAAW,CAAC,EAAE,MAAM,EAAE,GAAG,eAAe,CAAA;QACjD,OAAO;YACL,MAAM,EAAE,OAAO;YACf,UAAU;YACV,YAAY,EAAE,WAAW;YACzB,MAAM,EAAE,MAAM,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM;SAClC,CAAA;IACH,CAAC,CAAC,CAAA;IAEF,MAAM,QAAQ,GAAG,0CAA8B,CAAC,cAAc,CAAC,CAAA;IAC/D,MAAM,QAAQ,GAAG;;;0BAGO,YAAY;+BACP,iBAAiB;qBAC3B,sBAAU,CAAC,QAAQ,CAAC;uBAClB,QAAQ;;;;;;;;;0BASL,YAAY;4BACV,cAAc;2BACf,iBAAiB;;;;;;;;;0BASlB,YAAY;4BACV,eAAe;2BAChB,iBAAiB;;;;;;;MAOtC,CAAA;IACJ,OAAO,MAAM,OAAO,CAAC,wBAAY,EAAE;QACjC,IAAI,EAAE,IAAI,CAAC,SAAS,CAAC,EAAE,KAAK,EAAE,QAAQ,EAAE,CAAC;KAC1C,CAAC,CAAA;AACJ,CAAC;AAtDD,oEAsDC"}
@@ -0,0 +1,12 @@
1
+ export interface Payload {
2
+ traits_or_props: {
3
+ [k: string]: unknown;
4
+ };
5
+ user_id?: string;
6
+ event_type?: string;
7
+ enable_batching: boolean;
8
+ segment_computation_class?: string;
9
+ segment_computation_id?: string;
10
+ segment_computation_key: string;
11
+ advertiser_id: string;
12
+ }
@@ -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/stackadapt-audiences/forwardAudienceEvent/generated-types.ts"],"names":[],"mappings":""}
@@ -0,0 +1,5 @@
1
+ import { ActionDefinition } from '@segment/actions-core';
2
+ import { Payload } from './generated-types';
3
+ import { Settings } from '../generated-types';
4
+ declare const action: ActionDefinition<Settings, Payload>;
5
+ export default action;
@@ -0,0 +1,100 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ const functions_1 = require("./functions");
4
+ const functions_2 = require("../functions");
5
+ const action = {
6
+ title: 'Forward Audience Event',
7
+ description: 'Forward audience enter or exit events to StackAdapt',
8
+ defaultSubscription: 'type = "identify" or type = "track"',
9
+ fields: {
10
+ traits_or_props: {
11
+ label: 'Event Properties',
12
+ type: 'object',
13
+ description: 'The properties of the user or event.',
14
+ unsafe_hidden: true,
15
+ required: true,
16
+ default: {
17
+ '@if': {
18
+ exists: { '@path': '$.properties.audience_key' },
19
+ then: { '@path': '$.properties' },
20
+ else: { '@path': '$.traits' }
21
+ }
22
+ }
23
+ },
24
+ user_id: {
25
+ label: 'Segment User ID',
26
+ description: 'The ID of the user in Segment',
27
+ type: 'string',
28
+ default: {
29
+ '@if': {
30
+ exists: { '@path': '$.userId' },
31
+ then: { '@path': '$.userId' },
32
+ else: { '@path': '$.anonymousId' }
33
+ }
34
+ }
35
+ },
36
+ event_type: {
37
+ label: 'Event Type',
38
+ description: 'The Segment event type (identify, alias, etc.)',
39
+ type: 'string',
40
+ default: {
41
+ '@path': '$.type'
42
+ }
43
+ },
44
+ enable_batching: {
45
+ type: 'boolean',
46
+ label: 'Batch Profiles',
47
+ unsafe_hidden: true,
48
+ description: 'When enabled, Segment will batch profiles together and send them to StackAdapt in a single request.',
49
+ required: true,
50
+ default: true
51
+ },
52
+ segment_computation_class: {
53
+ label: 'Segment Computation Class',
54
+ description: "Segment computation class used to determine if input event is from an Engage Audience'.",
55
+ type: 'string',
56
+ unsafe_hidden: true,
57
+ default: {
58
+ '@path': '$.context.personas.computation_class'
59
+ }
60
+ },
61
+ segment_computation_id: {
62
+ label: 'Segment Computation ID',
63
+ description: 'For audience enter/exit events, this will be the audience ID.',
64
+ type: 'string',
65
+ unsafe_hidden: true,
66
+ default: {
67
+ '@path': '$.context.personas.computation_id'
68
+ }
69
+ },
70
+ segment_computation_key: {
71
+ label: 'Segment Computation Key',
72
+ description: 'For audience enter/exit events, this will be the audience key.',
73
+ type: 'string',
74
+ unsafe_hidden: true,
75
+ required: true,
76
+ default: {
77
+ '@path': '$.context.personas.computation_key'
78
+ }
79
+ },
80
+ advertiser_id: {
81
+ label: 'Advertiser',
82
+ description: 'The StackAdapt advertiser to add the profile to.',
83
+ type: 'string',
84
+ disabledInputMethods: ['literal', 'variable', 'function', 'freeform', 'enrichment'],
85
+ required: true,
86
+ dynamic: true
87
+ }
88
+ },
89
+ dynamicFields: {
90
+ advertiser_id: functions_2.advertiserIdFieldImplementation
91
+ },
92
+ perform: async (request, { payload }) => {
93
+ return await functions_1.performForwardAudienceEvents(request, [payload]);
94
+ },
95
+ performBatch: async (request, { payload }) => {
96
+ return await functions_1.performForwardAudienceEvents(request, payload);
97
+ }
98
+ };
99
+ exports.default = action;
100
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../src/destinations/stackadapt-audiences/forwardAudienceEvent/index.ts"],"names":[],"mappings":";;AAGA,2CAA0D;AAC1D,4CAA8D;AAE9D,MAAM,MAAM,GAAwC;IAClD,KAAK,EAAE,wBAAwB;IAC/B,WAAW,EAAE,qDAAqD;IAClE,mBAAmB,EAAE,qCAAqC;IAC1D,MAAM,EAAE;QACN,eAAe,EAAE;YACf,KAAK,EAAE,kBAAkB;YACzB,IAAI,EAAE,QAAQ;YACd,WAAW,EAAE,sCAAsC;YACnD,aAAa,EAAE,IAAI;YACnB,QAAQ,EAAE,IAAI;YACd,OAAO,EAAE;gBACP,KAAK,EAAE;oBACL,MAAM,EAAE,EAAE,OAAO,EAAE,2BAA2B,EAAE;oBAChD,IAAI,EAAE,EAAE,OAAO,EAAE,cAAc,EAAE;oBACjC,IAAI,EAAE,EAAE,OAAO,EAAE,UAAU,EAAE;iBAC9B;aACF;SACF;QACD,OAAO,EAAE;YACP,KAAK,EAAE,iBAAiB;YACxB,WAAW,EAAE,+BAA+B;YAC5C,IAAI,EAAE,QAAQ;YACd,OAAO,EAAE;gBAGP,KAAK,EAAE;oBACL,MAAM,EAAE,EAAE,OAAO,EAAE,UAAU,EAAE;oBAC/B,IAAI,EAAE,EAAE,OAAO,EAAE,UAAU,EAAE;oBAC7B,IAAI,EAAE,EAAE,OAAO,EAAE,eAAe,EAAE;iBACnC;aACF;SACF;QACD,UAAU,EAAE;YACV,KAAK,EAAE,YAAY;YACnB,WAAW,EAAE,gDAAgD;YAC7D,IAAI,EAAE,QAAQ;YACd,OAAO,EAAE;gBACP,OAAO,EAAE,QAAQ;aAClB;SACF;QACD,eAAe,EAAE;YACf,IAAI,EAAE,SAAS;YACf,KAAK,EAAE,gBAAgB;YACvB,aAAa,EAAE,IAAI;YACnB,WAAW,EACT,qGAAqG;YACvG,QAAQ,EAAE,IAAI;YACd,OAAO,EAAE,IAAI;SACd;QACD,yBAAyB,EAAE;YACzB,KAAK,EAAE,2BAA2B;YAClC,WAAW,EAAE,yFAAyF;YACtG,IAAI,EAAE,QAAQ;YACd,aAAa,EAAE,IAAI;YACnB,OAAO,EAAE;gBACP,OAAO,EAAE,sCAAsC;aAChD;SACF;QACD,sBAAsB,EAAE;YACtB,KAAK,EAAE,wBAAwB;YAC/B,WAAW,EAAE,+DAA+D;YAC5E,IAAI,EAAE,QAAQ;YACd,aAAa,EAAE,IAAI;YACnB,OAAO,EAAE;gBACP,OAAO,EAAE,mCAAmC;aAC7C;SACF;QACD,uBAAuB,EAAE;YACvB,KAAK,EAAE,yBAAyB;YAChC,WAAW,EAAE,gEAAgE;YAC7E,IAAI,EAAE,QAAQ;YACd,aAAa,EAAE,IAAI;YACnB,QAAQ,EAAE,IAAI;YACd,OAAO,EAAE;gBACP,OAAO,EAAE,oCAAoC;aAC9C;SACF;QACD,aAAa,EAAE;YACb,KAAK,EAAE,YAAY;YACnB,WAAW,EAAE,kDAAkD;YAC/D,IAAI,EAAE,QAAQ;YACd,oBAAoB,EAAE,CAAC,SAAS,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,YAAY,CAAC;YACnF,QAAQ,EAAE,IAAI;YACd,OAAO,EAAE,IAAI;SACd;KACF;IACD,aAAa,EAAE;QACb,aAAa,EAAE,2CAA+B;KAC/C;IACD,OAAO,EAAE,KAAK,EAAE,OAAO,EAAE,EAAE,OAAO,EAAE,EAAE,EAAE;QACtC,OAAO,MAAM,wCAA4B,CAAC,OAAO,EAAE,CAAC,OAAO,CAAC,CAAC,CAAA;IAC/D,CAAC;IACD,YAAY,EAAE,KAAK,EAAE,OAAO,EAAE,EAAE,OAAO,EAAE,EAAE,EAAE;QAC3C,OAAO,MAAM,wCAA4B,CAAC,OAAO,EAAE,OAAO,CAAC,CAAA;IAC7D,CAAC;CACF,CAAA;AAED,kBAAe,MAAM,CAAA"}
@@ -0,0 +1,3 @@
1
+ import { RequestClient } from '@segment/actions-core';
2
+ import { Payload } from './generated-types';
3
+ export declare function performForwardProfiles(request: RequestClient, events: Payload[]): Promise<import("@segment/actions-core").ModifiedResponse<unknown>>;
@@ -0,0 +1,121 @@
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
+ exports.performForwardProfiles = void 0;
7
+ const camelCase_1 = __importDefault(require("lodash/camelCase"));
8
+ const isEmpty_1 = __importDefault(require("lodash/isEmpty"));
9
+ const functions_1 = require("../functions");
10
+ const standardFields = new Set([
11
+ 'email',
12
+ 'firstName',
13
+ 'lastName',
14
+ 'phone',
15
+ 'marketingStatus',
16
+ 'company',
17
+ 'gender',
18
+ 'city',
19
+ 'state',
20
+ 'country',
21
+ 'timezone',
22
+ 'postalCode',
23
+ 'birthDay',
24
+ 'birthMonth',
25
+ 'address',
26
+ 'previousId'
27
+ ]);
28
+ async function performForwardProfiles(request, events) {
29
+ const fieldsToMap = new Set(['userId']);
30
+ const fieldTypes = { userId: 'string' };
31
+ const advertiserId = events[0].advertiser_id;
32
+ const profileUpdates = events.flatMap((event) => {
33
+ const { event_type, previous_id, user_id, traits } = event;
34
+ const profile = {
35
+ userId: user_id
36
+ };
37
+ if (event_type === 'alias') {
38
+ profile.previousId = previous_id;
39
+ }
40
+ else if (isEmpty_1.default(traits)) {
41
+ return [];
42
+ }
43
+ const { birthday, ...rest } = traits ?? {};
44
+ if (birthday) {
45
+ const [birthDay, birthMonth] = birthday.split('T')[0].split('-').slice(1);
46
+ profile.birthDay = parseInt(birthDay);
47
+ profile.birthMonth = parseInt(birthMonth);
48
+ }
49
+ return { ...processTraits(rest), ...profile };
50
+ });
51
+ const profiles = functions_1.stringifyJsonWithEscapedQuotes(profileUpdates);
52
+ const mutation = `mutation {
53
+ upsertProfiles(
54
+ input: {
55
+ advertiserId: ${advertiserId},
56
+ externalProvider: "${functions_1.EXTERNAL_PROVIDER}",
57
+ syncId: "${functions_1.sha256hash(profiles)}",
58
+ profiles: "${profiles}"
59
+ }
60
+ ) {
61
+ userErrors {
62
+ message
63
+ }
64
+ }
65
+ upsertProfileMapping(
66
+ input: {
67
+ advertiserId: ${advertiserId},
68
+ mappingSchema: "${getProfileMappings(Array.from(fieldsToMap), fieldTypes)}",
69
+ mappableType: "${functions_1.EXTERNAL_PROVIDER}",
70
+ }
71
+ ) {
72
+ userErrors {
73
+ message
74
+ }
75
+ }
76
+ }`;
77
+ return await request(functions_1.GQL_ENDPOINT, {
78
+ body: JSON.stringify({ query: mutation })
79
+ });
80
+ function processTraits(traits) {
81
+ return Object.keys(traits).reduce((acc, key) => {
82
+ const camelCaseKey = camelCase_1.default(key);
83
+ acc[camelCaseKey] = traits[key];
84
+ if (!standardFields.has(camelCaseKey)) {
85
+ fieldsToMap.add(camelCaseKey);
86
+ if (traits[key] || traits[key] === 0) {
87
+ const type = getType(traits[key]);
88
+ if (fieldTypes[camelCaseKey] && fieldTypes[camelCaseKey] !== type) {
89
+ fieldTypes[camelCaseKey] = 'string';
90
+ }
91
+ else {
92
+ fieldTypes[camelCaseKey] = type;
93
+ }
94
+ }
95
+ }
96
+ return acc;
97
+ }, {});
98
+ }
99
+ }
100
+ exports.performForwardProfiles = performForwardProfiles;
101
+ function getProfileMappings(customFields, fieldTypes) {
102
+ const mappingSchema = [];
103
+ for (const field of customFields) {
104
+ mappingSchema.push({
105
+ incoming_key: field,
106
+ destination_key: field === 'userId' ? 'external_id' : field,
107
+ data_type: fieldTypes[field] ?? 'string',
108
+ is_pii: false
109
+ });
110
+ }
111
+ return functions_1.stringifyJsonWithEscapedQuotes(mappingSchema);
112
+ }
113
+ function getType(value) {
114
+ if (isDateStr(value))
115
+ return 'date';
116
+ return typeof value;
117
+ }
118
+ function isDateStr(value) {
119
+ return typeof value === 'string' && !isNaN(Date.parse(value));
120
+ }
121
+ //# sourceMappingURL=functions.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"functions.js","sourceRoot":"","sources":["../../../../src/destinations/stackadapt-audiences/forwardProfile/functions.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,19 @@
1
+ export interface Payload {
2
+ traits?: {
3
+ email?: string;
4
+ firstName?: string;
5
+ lastName?: string;
6
+ phone?: string;
7
+ city?: string;
8
+ country?: string;
9
+ state?: string;
10
+ postalCode?: string;
11
+ birthday?: string;
12
+ [k: string]: unknown;
13
+ };
14
+ user_id?: string;
15
+ previous_id?: string;
16
+ event_type?: string;
17
+ enable_batching: boolean;
18
+ advertiser_id: string;
19
+ }
@@ -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/stackadapt-audiences/forwardProfile/generated-types.ts"],"names":[],"mappings":""}
@@ -0,0 +1,5 @@
1
+ import { ActionDefinition } from '@segment/actions-core';
2
+ import { Payload } from './generated-types';
3
+ import { Settings } from '../generated-types';
4
+ declare const action: ActionDefinition<Settings, Payload>;
5
+ export default action;