@segment/action-destinations 3.296.0 → 3.296.1-staging-1601766ec.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.
@@ -4,4 +4,6 @@ export interface Payload {
4
4
  segment_computation_id: string;
5
5
  optimizelyUserId: string;
6
6
  timestamp: string;
7
+ enable_batching?: boolean;
8
+ batch_size?: number;
7
9
  }
@@ -1,6 +1,6 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
- const utils_1 = require("../utils");
3
+ const optimizely_client_1 = require("./optimizely-client");
4
4
  const action = {
5
5
  title: 'Sync Audience',
6
6
  description: 'Sync a Segment Engage Audience to Optimizely Data Platform',
@@ -59,26 +59,29 @@ const action = {
59
59
  default: {
60
60
  '@path': '$.timestamp'
61
61
  }
62
+ },
63
+ enable_batching: {
64
+ label: 'Enable Batching',
65
+ description: 'Enable batching of event data to Optimizely.',
66
+ type: 'boolean',
67
+ default: true,
68
+ unsafe_hidden: true
69
+ },
70
+ batch_size: {
71
+ label: 'Batch Size',
72
+ description: 'Number of events to batch before sending to Optimizely.',
73
+ type: 'integer',
74
+ default: 100,
75
+ unsafe_hidden: true
62
76
  }
63
77
  },
64
78
  perform: async (request, data) => {
65
- const payload = data.payload;
66
- const settings = data.settings;
67
- const host = utils_1.getHost(settings);
68
- const d = data;
69
- const audienceId = payload.segment_computation_id;
70
- const audienceName = payload.custom_audience_name;
71
- const audienceValue = d?.rawData?.properties?.[audienceName] ?? d?.rawData?.traits?.[audienceName];
72
- return request(`${host}/sync_audience`, {
73
- method: 'post',
74
- json: {
75
- audienceId: audienceId,
76
- audienceName: audienceName,
77
- timestamp: payload.timestamp,
78
- subscription: audienceValue,
79
- userId: payload.optimizelyUserId
80
- }
81
- });
79
+ const optimizelyClient = new optimizely_client_1.OptimizelyClient(request, data);
80
+ await optimizelyClient.send();
81
+ },
82
+ performBatch: async (request, data) => {
83
+ const optimizelyClient = new optimizely_client_1.OptimizelyClient(request, data);
84
+ await optimizelyClient.send();
82
85
  }
83
86
  };
84
87
  exports.default = action;
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../src/destinations/optimizely-advanced-audience-targeting/syncAudience/index.ts"],"names":[],"mappings":";;AAGA,oCAAkC;AAwBlC,MAAM,MAAM,GAAwC;IAClD,KAAK,EAAE,eAAe;IACtB,WAAW,EAAE,4DAA4D;IACzE,mBAAmB,EAAE,qCAAqC;IAC1D,MAAM,EAAE;QACN,oBAAoB,EAAE;YACpB,KAAK,EAAE,sBAAsB;YAC7B,WAAW,EAAE,wDAAwD;YACrE,IAAI,EAAE,QAAQ;YACd,aAAa,EAAE,IAAI;YACnB,QAAQ,EAAE,IAAI;YACd,OAAO,EAAE;gBACP,OAAO,EAAE,oCAAoC;aAC9C;SACF;QACD,0BAA0B,EAAE;YAC1B,KAAK,EAAE,4BAA4B;YACnC,WAAW,EAAE,wEAAwE;YACrF,IAAI,EAAE,QAAQ;YACd,aAAa,EAAE,IAAI;YACnB,QAAQ,EAAE,IAAI;YACd,OAAO,EAAE;gBACP,OAAO,EAAE,sCAAsC;aAChD;YACD,OAAO,EAAE,CAAC,EAAE,KAAK,EAAE,UAAU,EAAE,KAAK,EAAE,UAAU,EAAE,CAAC;SACpD;QACD,sBAAsB,EAAE;YACtB,KAAK,EAAE,wBAAwB;YAC/B,WAAW,EAAE,wBAAwB;YACrC,IAAI,EAAE,QAAQ;YACd,aAAa,EAAE,IAAI;YACnB,QAAQ,EAAE,IAAI;YACd,OAAO,EAAE;gBACP,OAAO,EAAE,mCAAmC;aAC7C;SACF;QACD,gBAAgB,EAAE;YAChB,KAAK,EAAE,oBAAoB;YAC3B,WAAW,EAAE,wDAAwD;YACrE,IAAI,EAAE,QAAQ;YACd,QAAQ,EAAE,IAAI;YACd,OAAO,EAAE;gBACP,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,SAAS,EAAE;YACT,KAAK,EAAE,WAAW;YAClB,IAAI,EAAE,QAAQ;YACd,aAAa,EAAE,IAAI;YACnB,QAAQ,EAAE,IAAI;YACd,WAAW,EAAE,0EAA0E;YACvF,OAAO,EAAE;gBACP,OAAO,EAAE,aAAa;aACvB;SACF;KACF;IAED,OAAO,EAAE,KAAK,EAAE,OAAO,EAAE,IAAI,EAAE,EAAE;QAC/B,MAAM,OAAO,GAAG,IAAI,CAAC,OAAO,CAAA;QAC5B,MAAM,QAAQ,GAAG,IAAI,CAAC,QAAQ,CAAA;QAE9B,MAAM,IAAI,GAAG,eAAO,CAAC,QAAQ,CAAC,CAAA;QAE9B,MAAM,CAAC,GAAS,IAAI,CAAA;QACpB,MAAM,UAAU,GAAG,OAAO,CAAC,sBAAsB,CAAA;QACjD,MAAM,YAAY,GAAG,OAAO,CAAC,oBAAoB,CAAA;QACjD,MAAM,aAAa,GAAG,CAAC,EAAE,OAAO,EAAE,UAAU,EAAE,CAAC,YAAY,CAAC,IAAI,CAAC,EAAE,OAAO,EAAE,MAAM,EAAE,CAAC,YAAY,CAAC,CAAA;QAElG,OAAO,OAAO,CAAC,GAAG,IAAI,gBAAgB,EAAE;YACtC,MAAM,EAAE,MAAM;YACd,IAAI,EAAE;gBACJ,UAAU,EAAE,UAAU;gBACtB,YAAY,EAAE,YAAY;gBAC1B,SAAS,EAAE,OAAO,CAAC,SAAS;gBAC5B,YAAY,EAAE,aAAa;gBAC3B,MAAM,EAAE,OAAO,CAAC,gBAAgB;aACjC;SACF,CAAC,CAAA;IACJ,CAAC;CACF,CAAA;AAED,kBAAe,MAAM,CAAA"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../src/destinations/optimizely-advanced-audience-targeting/syncAudience/index.ts"],"names":[],"mappings":";;AAGA,2DAA4D;AAE5D,MAAM,MAAM,GAAwC;IAClD,KAAK,EAAE,eAAe;IACtB,WAAW,EAAE,4DAA4D;IACzE,mBAAmB,EAAE,qCAAqC;IAC1D,MAAM,EAAE;QACN,oBAAoB,EAAE;YACpB,KAAK,EAAE,sBAAsB;YAC7B,WAAW,EAAE,wDAAwD;YACrE,IAAI,EAAE,QAAQ;YACd,aAAa,EAAE,IAAI;YACnB,QAAQ,EAAE,IAAI;YACd,OAAO,EAAE;gBACP,OAAO,EAAE,oCAAoC;aAC9C;SACF;QACD,0BAA0B,EAAE;YAC1B,KAAK,EAAE,4BAA4B;YACnC,WAAW,EAAE,wEAAwE;YACrF,IAAI,EAAE,QAAQ;YACd,aAAa,EAAE,IAAI;YACnB,QAAQ,EAAE,IAAI;YACd,OAAO,EAAE;gBACP,OAAO,EAAE,sCAAsC;aAChD;YACD,OAAO,EAAE,CAAC,EAAE,KAAK,EAAE,UAAU,EAAE,KAAK,EAAE,UAAU,EAAE,CAAC;SACpD;QACD,sBAAsB,EAAE;YACtB,KAAK,EAAE,wBAAwB;YAC/B,WAAW,EAAE,wBAAwB;YACrC,IAAI,EAAE,QAAQ;YACd,aAAa,EAAE,IAAI;YACnB,QAAQ,EAAE,IAAI;YACd,OAAO,EAAE;gBACP,OAAO,EAAE,mCAAmC;aAC7C;SACF;QACD,gBAAgB,EAAE;YAChB,KAAK,EAAE,oBAAoB;YAC3B,WAAW,EAAE,wDAAwD;YACrE,IAAI,EAAE,QAAQ;YACd,QAAQ,EAAE,IAAI;YACd,OAAO,EAAE;gBACP,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,SAAS,EAAE;YACT,KAAK,EAAE,WAAW;YAClB,IAAI,EAAE,QAAQ;YACd,aAAa,EAAE,IAAI;YACnB,QAAQ,EAAE,IAAI;YACd,WAAW,EAAE,0EAA0E;YACvF,OAAO,EAAE;gBACP,OAAO,EAAE,aAAa;aACvB;SACF;QACD,eAAe,EAAE;YACf,KAAK,EAAE,iBAAiB;YACxB,WAAW,EAAE,8CAA8C;YAC3D,IAAI,EAAE,SAAS;YACf,OAAO,EAAE,IAAI;YACb,aAAa,EAAE,IAAI;SACpB;QACD,UAAU,EAAE;YACV,KAAK,EAAE,YAAY;YACnB,WAAW,EAAE,yDAAyD;YACtE,IAAI,EAAE,SAAS;YACf,OAAO,EAAE,GAAG;YACZ,aAAa,EAAE,IAAI;SACpB;KACF;IAED,OAAO,EAAE,KAAK,EAAE,OAAO,EAAE,IAAI,EAAE,EAAE;QAC/B,MAAM,gBAAgB,GAAG,IAAI,oCAAgB,CAAC,OAAO,EAAE,IAAY,CAAC,CAAA;QACpE,MAAM,gBAAgB,CAAC,IAAI,EAAE,CAAA;IAC/B,CAAC;IACD,YAAY,EAAE,KAAK,EAAE,OAAO,EAAE,IAAI,EAAE,EAAE;QACpC,MAAM,gBAAgB,GAAG,IAAI,oCAAgB,CAAC,OAAO,EAAE,IAAY,CAAC,CAAA;QACpE,MAAM,gBAAgB,CAAC,IAAI,EAAE,CAAA;IAC/B,CAAC;CACF,CAAA;AAED,kBAAe,MAAM,CAAA"}
@@ -0,0 +1,21 @@
1
+ import type { Settings } from '../generated-types';
2
+ import type { Payload } from './generated-types';
3
+ import { RequestClient } from '@segment/actions-core';
4
+ interface PropsOrTraits {
5
+ properties?: Record<string, boolean>;
6
+ traits?: Record<string, boolean>;
7
+ }
8
+ export interface Data {
9
+ payload: Payload | Array<Payload>;
10
+ settings: Settings;
11
+ rawData: PropsOrTraits | Array<PropsOrTraits>;
12
+ }
13
+ export declare class OptimizelyClient {
14
+ request: RequestClient;
15
+ payloads: Payload[];
16
+ settings: Settings;
17
+ propsOrTraits: PropsOrTraits[];
18
+ constructor(request: RequestClient, data: Data);
19
+ send(): Promise<import("@segment/actions-core").ModifiedResponse<unknown>>;
20
+ }
21
+ export {};
@@ -0,0 +1,31 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.OptimizelyClient = void 0;
4
+ const utils_1 = require("../utils");
5
+ class OptimizelyClient {
6
+ constructor(request, data) {
7
+ this.request = request;
8
+ this.settings = data.settings;
9
+ this.payloads = Array.isArray(data.payload) ? data.payload : [data.payload];
10
+ this.propsOrTraits = Array.isArray(data.rawData) ? data.rawData : [data.rawData];
11
+ }
12
+ async send() {
13
+ const host = utils_1.getHost(this.settings);
14
+ const requestBody = this.payloads.map((payload, index) => {
15
+ return {
16
+ audienceId: payload.segment_computation_id,
17
+ audienceName: payload.custom_audience_name,
18
+ timestamp: payload.timestamp,
19
+ subscription: this.propsOrTraits[index].properties?.[payload.custom_audience_name] ??
20
+ this.propsOrTraits[index].traits?.[payload.custom_audience_name],
21
+ userId: payload.optimizelyUserId
22
+ };
23
+ });
24
+ return this.request(`${host}/batch_sync_audience`, {
25
+ method: 'post',
26
+ json: requestBody
27
+ });
28
+ }
29
+ }
30
+ exports.OptimizelyClient = OptimizelyClient;
31
+ //# sourceMappingURL=optimizely-client.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"optimizely-client.js","sourceRoot":"","sources":["../../../../src/destinations/optimizely-advanced-audience-targeting/syncAudience/optimizely-client.ts"],"names":[],"mappings":";;;AAEA,oCAAkC;AAclC,MAAa,gBAAgB;IAM3B,YAAY,OAAsB,EAAE,IAAU;QAC5C,IAAI,CAAC,OAAO,GAAG,OAAO,CAAA;QACtB,IAAI,CAAC,QAAQ,GAAG,IAAI,CAAC,QAAQ,CAAA;QAC7B,IAAI,CAAC,QAAQ,GAAG,KAAK,CAAC,OAAO,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,OAAO,CAAC,CAAA;QAC3E,IAAI,CAAC,aAAa,GAAG,KAAK,CAAC,OAAO,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,OAAO,CAAC,CAAA;IAClF,CAAC;IAED,KAAK,CAAC,IAAI;QACR,MAAM,IAAI,GAAG,eAAO,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAA;QAEnC,MAAM,WAAW,GAAG,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC,OAAO,EAAE,KAAK,EAAE,EAAE;YACvD,OAAO;gBACL,UAAU,EAAE,OAAO,CAAC,sBAAsB;gBAC1C,YAAY,EAAE,OAAO,CAAC,oBAAoB;gBAC1C,SAAS,EAAE,OAAO,CAAC,SAAS;gBAC5B,YAAY,EACV,IAAI,CAAC,aAAa,CAAC,KAAK,CAAC,CAAC,UAAU,EAAE,CAAC,OAAO,CAAC,oBAAoB,CAAC;oBACpE,IAAI,CAAC,aAAa,CAAC,KAAK,CAAC,CAAC,MAAM,EAAE,CAAC,OAAO,CAAC,oBAAoB,CAAC;gBAClE,MAAM,EAAE,OAAO,CAAC,gBAAgB;aACjC,CAAA;QACH,CAAC,CAAC,CAAA;QAEF,OAAO,IAAI,CAAC,OAAO,CAAC,GAAG,IAAI,sBAAsB,EAAE;YACjD,MAAM,EAAE,MAAM;YACd,IAAI,EAAE,WAAW;SAClB,CAAC,CAAA;IACJ,CAAC;CACF;AAjCD,4CAiCC"}
package/package.json CHANGED
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "name": "@segment/action-destinations",
3
3
  "description": "Destination Actions engine and definitions.",
4
- "version": "3.296.0",
4
+ "version": "3.296.1-staging-1601766ec.0",
5
5
  "repository": {
6
6
  "type": "git",
7
7
  "url": "https://github.com/segmentio/action-destinations",
@@ -87,5 +87,5 @@
87
87
  "__tests__/__helpers__/"
88
88
  ]
89
89
  },
90
- "gitHead": "bfc9b8642c448615a0227bda7c4cbcdfd8b49254"
90
+ "gitHead": "cad921f2127c00b85db61209b6e139d2e6e70a6d"
91
91
  }