@segment/action-destinations 2.337.2-staging.0 → 2.338.1-staging.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 (73) hide show
  1. package/dist/destinations/blackbaud-raisers-edge-nxt/utils/index.d.ts +1 -1
  2. package/dist/destinations/engage/sendgrid/Profile.d.ts +6 -0
  3. package/dist/destinations/{aggregations-io/send/generated-types.js → engage/sendgrid/Profile.js} +1 -1
  4. package/dist/destinations/engage/sendgrid/Profile.js.map +1 -0
  5. package/dist/destinations/engage/sendgrid/previewApiLookup/api-lookups.d.ts +21 -0
  6. package/dist/destinations/engage/sendgrid/previewApiLookup/api-lookups.js +174 -0
  7. package/dist/destinations/engage/sendgrid/previewApiLookup/api-lookups.js.map +1 -0
  8. package/dist/destinations/google-enhanced-conversions/functions.d.ts +2 -2
  9. package/dist/destinations/google-enhanced-conversions/functions.js +4 -4
  10. package/dist/destinations/google-enhanced-conversions/functions.js.map +1 -1
  11. package/dist/destinations/google-enhanced-conversions/uploadCallConversion/index.js +7 -3
  12. package/dist/destinations/google-enhanced-conversions/uploadCallConversion/index.js.map +1 -1
  13. package/dist/destinations/google-enhanced-conversions/uploadClickConversion/index.js +7 -3
  14. package/dist/destinations/google-enhanced-conversions/uploadClickConversion/index.js.map +1 -1
  15. package/dist/destinations/google-enhanced-conversions/uploadConversionAdjustment/index.js +2 -2
  16. package/dist/destinations/google-enhanced-conversions/uploadConversionAdjustment/index.js.map +1 -1
  17. package/dist/destinations/mixpanel/utils.d.ts +13 -0
  18. package/dist/destinations/mixpanel/utils.js +117 -0
  19. package/dist/destinations/mixpanel/utils.js.map +1 -0
  20. package/package.json +1 -1
  21. package/dist/destinations/aggregations-io/generated-types.d.ts +0 -4
  22. package/dist/destinations/aggregations-io/generated-types.js +0 -3
  23. package/dist/destinations/aggregations-io/generated-types.js.map +0 -1
  24. package/dist/destinations/aggregations-io/index.d.ts +0 -4
  25. package/dist/destinations/aggregations-io/index.js +0 -48
  26. package/dist/destinations/aggregations-io/index.js.map +0 -1
  27. package/dist/destinations/aggregations-io/send/generated-types.d.ts +0 -7
  28. package/dist/destinations/aggregations-io/send/generated-types.js.map +0 -1
  29. package/dist/destinations/aggregations-io/send/index.d.ts +0 -5
  30. package/dist/destinations/aggregations-io/send/index.js +0 -44
  31. package/dist/destinations/aggregations-io/send/index.js.map +0 -1
  32. package/dist/destinations/equals/generated-types.d.ts +0 -3
  33. package/dist/destinations/equals/generated-types.js +0 -3
  34. package/dist/destinations/equals/generated-types.js.map +0 -1
  35. package/dist/destinations/equals/index.d.ts +0 -4
  36. package/dist/destinations/equals/index.js +0 -38
  37. package/dist/destinations/equals/index.js.map +0 -1
  38. package/dist/destinations/equals/send/generated-types.d.ts +0 -5
  39. package/dist/destinations/equals/send/generated-types.js +0 -3
  40. package/dist/destinations/equals/send/generated-types.js.map +0 -1
  41. package/dist/destinations/equals/send/index.d.ts +0 -5
  42. package/dist/destinations/equals/send/index.js +0 -38
  43. package/dist/destinations/equals/send/index.js.map +0 -1
  44. package/dist/destinations/kevel/generated-types.d.ts +0 -4
  45. package/dist/destinations/kevel/generated-types.js +0 -3
  46. package/dist/destinations/kevel/generated-types.js.map +0 -1
  47. package/dist/destinations/kevel/index.d.ts +0 -4
  48. package/dist/destinations/kevel/index.js +0 -45
  49. package/dist/destinations/kevel/index.js.map +0 -1
  50. package/dist/destinations/kevel/syncAudience/generated-types.d.ts +0 -8
  51. package/dist/destinations/kevel/syncAudience/generated-types.js +0 -3
  52. package/dist/destinations/kevel/syncAudience/generated-types.js.map +0 -1
  53. package/dist/destinations/kevel/syncAudience/index.d.ts +0 -5
  54. package/dist/destinations/kevel/syncAudience/index.js +0 -64
  55. package/dist/destinations/kevel/syncAudience/index.js.map +0 -1
  56. package/dist/destinations/kevel/syncTraits/generated-types.d.ts +0 -6
  57. package/dist/destinations/kevel/syncTraits/generated-types.js +0 -3
  58. package/dist/destinations/kevel/syncTraits/generated-types.js.map +0 -1
  59. package/dist/destinations/kevel/syncTraits/index.d.ts +0 -5
  60. package/dist/destinations/kevel/syncTraits/index.js +0 -39
  61. package/dist/destinations/kevel/syncTraits/index.js.map +0 -1
  62. package/dist/destinations/mixpanel/incrementProperties/__test__/index.test.d.ts +0 -1
  63. package/dist/destinations/mixpanel/incrementProperties/__test__/index.test.js +0 -129
  64. package/dist/destinations/mixpanel/incrementProperties/__test__/index.test.js.map +0 -1
  65. package/dist/destinations/mixpanel/incrementProperties/__test__/snapshot.test.d.ts +0 -1
  66. package/dist/destinations/mixpanel/incrementProperties/__test__/snapshot.test.js +0 -69
  67. package/dist/destinations/mixpanel/incrementProperties/__test__/snapshot.test.js.map +0 -1
  68. package/dist/destinations/mixpanel/incrementProperties/generated-types.d.ts +0 -8
  69. package/dist/destinations/mixpanel/incrementProperties/generated-types.js +0 -3
  70. package/dist/destinations/mixpanel/incrementProperties/generated-types.js.map +0 -1
  71. package/dist/destinations/mixpanel/incrementProperties/index.d.ts +0 -5
  72. package/dist/destinations/mixpanel/incrementProperties/index.js +0 -84
  73. package/dist/destinations/mixpanel/incrementProperties/index.js.map +0 -1
@@ -1,48 +0,0 @@
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 send_1 = __importDefault(require("./send"));
7
- const destination = {
8
- name: 'Aggregations.io (Actions)',
9
- slug: 'actions-aggregations-io',
10
- mode: 'cloud',
11
- description: 'Send Segment events to Aggregations.io',
12
- authentication: {
13
- scheme: 'custom',
14
- fields: {
15
- api_key: {
16
- label: 'API Key',
17
- description: 'Your Aggregations.io API Key. This key requires Write permissions.',
18
- type: 'password',
19
- required: true
20
- },
21
- ingest_id: {
22
- label: 'Ingest Id',
23
- description: 'The ID of the ingest you want to send data to. This ingest should be set up as "Array of JSON Objects". Find your ID on the Aggregations.io Organization page.',
24
- type: 'string',
25
- required: true
26
- }
27
- },
28
- testAuthentication: (request, { settings }) => {
29
- return request(`https://app.aggregations.io/api/v1/organization/ping-w?ingest_id=${settings.ingest_id}&schema=ARRAY_OF_EVENTS`, {
30
- method: 'get',
31
- throwHttpErrors: false,
32
- headers: {
33
- 'x-api-token': settings.api_key
34
- }
35
- });
36
- }
37
- },
38
- extendRequest({ settings }) {
39
- return {
40
- headers: { 'x-api-token': settings.api_key }
41
- };
42
- },
43
- actions: {
44
- send: send_1.default
45
- }
46
- };
47
- exports.default = destination;
48
- //# sourceMappingURL=index.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/destinations/aggregations-io/index.ts"],"names":[],"mappings":";;;;;AAEA,kDAAyB;AAEzB,MAAM,WAAW,GAAoC;IACnD,IAAI,EAAE,2BAA2B;IACjC,IAAI,EAAE,yBAAyB;IAC/B,IAAI,EAAE,OAAO;IACb,WAAW,EAAE,wCAAwC;IACrD,cAAc,EAAE;QACd,MAAM,EAAE,QAAQ;QAChB,MAAM,EAAE;YACN,OAAO,EAAE;gBACP,KAAK,EAAE,SAAS;gBAChB,WAAW,EAAE,oEAAoE;gBACjF,IAAI,EAAE,UAAU;gBAChB,QAAQ,EAAE,IAAI;aACf;YACD,SAAS,EAAE;gBACT,KAAK,EAAE,WAAW;gBAClB,WAAW,EACT,gKAAgK;gBAClK,IAAI,EAAE,QAAQ;gBACd,QAAQ,EAAE,IAAI;aACf;SACF;QACD,kBAAkB,EAAE,CAAC,OAAO,EAAE,EAAE,QAAQ,EAAE,EAAE,EAAE;YAC5C,OAAO,OAAO,CACV,oEAAoE,QAAQ,CAAC,SAAS,yBAAyB,EAAE;gBAC/G,MAAM,EAAE,KAAK;gBACb,eAAe,EAAE,KAAK;gBACtB,OAAO,EAAE;oBACP,aAAa,EAAE,QAAQ,CAAC,OAAO;iBAChC;aACF,CACJ,CAAA;QACH,CAAC;KACF;IACD,aAAa,CAAC,EAAE,QAAQ,EAAE;QACxB,OAAO;YACL,OAAO,EAAE,EAAE,aAAa,EAAE,QAAQ,CAAC,OAAO,EAAE;SAC7C,CAAA;IACH,CAAC;IACD,OAAO,EAAE;QACP,IAAI,EAAJ,cAAI;KACL;CACF,CAAA;AACD,kBAAe,WAAW,CAAA"}
@@ -1,7 +0,0 @@
1
- export interface Payload {
2
- data?: {
3
- [k: string]: unknown;
4
- };
5
- enable_batching: boolean;
6
- batch_size?: number;
7
- }
@@ -1 +0,0 @@
1
- {"version":3,"file":"generated-types.js","sourceRoot":"","sources":["../../../../src/destinations/aggregations-io/send/generated-types.ts"],"names":[],"mappings":""}
@@ -1,5 +0,0 @@
1
- import { 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;
@@ -1,44 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- const action = {
4
- title: 'Send Events',
5
- description: 'Send events to Aggregations.io.',
6
- fields: {
7
- data: {
8
- label: 'Data',
9
- description: 'Payload to deliver (JSON-encoded).',
10
- type: 'object',
11
- default: { '@path': '$.' }
12
- },
13
- enable_batching: {
14
- label: 'Enable Batching',
15
- description: 'Enabling sending batches of events to Aggregations.io.',
16
- type: 'boolean',
17
- required: true,
18
- default: true
19
- },
20
- batch_size: {
21
- label: 'Batch Size',
22
- description: 'Maximum number of events to include in each batch. Actual batch sizes may be lower. If you know your events are large, you may want to tune your batch size down to meet API requirements.',
23
- type: 'number',
24
- required: false,
25
- default: 300,
26
- readOnly: true,
27
- unsafe_hidden: true
28
- }
29
- },
30
- perform: (request, { settings, payload }) => {
31
- return request('https://ingest.aggregations.io/' + settings.ingest_id, {
32
- method: 'POST',
33
- json: [payload.data]
34
- });
35
- },
36
- performBatch: (request, { settings, payload }) => {
37
- return request('https://ingest.aggregations.io/' + settings.ingest_id, {
38
- method: 'POST',
39
- json: payload.map((x) => x.data)
40
- });
41
- }
42
- };
43
- exports.default = action;
44
- //# sourceMappingURL=index.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../src/destinations/aggregations-io/send/index.ts"],"names":[],"mappings":";;AAIA,MAAM,MAAM,GAAwC;IAClD,KAAK,EAAE,aAAa;IACpB,WAAW,EAAE,iCAAiC;IAC9C,MAAM,EAAE;QACN,IAAI,EAAE;YACJ,KAAK,EAAE,MAAM;YACb,WAAW,EAAE,oCAAoC;YACjD,IAAI,EAAE,QAAQ;YACd,OAAO,EAAE,EAAE,OAAO,EAAE,IAAI,EAAE;SAC3B;QACD,eAAe,EAAE;YACf,KAAK,EAAE,iBAAiB;YACxB,WAAW,EAAE,wDAAwD;YACrE,IAAI,EAAE,SAAS;YACf,QAAQ,EAAE,IAAI;YACd,OAAO,EAAE,IAAI;SACd;QACD,UAAU,EAAE;YACV,KAAK,EAAE,YAAY;YACnB,WAAW,EACT,4LAA4L;YAC9L,IAAI,EAAE,QAAQ;YACd,QAAQ,EAAE,KAAK;YACf,OAAO,EAAE,GAAG;YACZ,QAAQ,EAAE,IAAI;YACd,aAAa,EAAE,IAAI;SACpB;KACF;IACD,OAAO,EAAE,CAAC,OAAO,EAAE,EAAE,QAAQ,EAAE,OAAO,EAAE,EAAE,EAAE;QAC1C,OAAO,OAAO,CAAC,iCAAiC,GAAG,QAAQ,CAAC,SAAS,EAAE;YACrE,MAAM,EAAE,MAAM;YACd,IAAI,EAAE,CAAC,OAAO,CAAC,IAAI,CAAC;SACrB,CAAC,CAAA;IACJ,CAAC;IACD,YAAY,EAAE,CAAC,OAAO,EAAE,EAAE,QAAQ,EAAE,OAAO,EAAE,EAAE,EAAE;QAC/C,OAAO,OAAO,CAAC,iCAAiC,GAAG,QAAQ,CAAC,SAAS,EAAE;YACrE,MAAM,EAAE,MAAM;YACd,IAAI,EAAE,OAAO,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC;SACjC,CAAC,CAAA;IACJ,CAAC;CACF,CAAA;AAED,kBAAe,MAAM,CAAA"}
@@ -1,3 +0,0 @@
1
- export interface Settings {
2
- url: string;
3
- }
@@ -1,3 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- //# sourceMappingURL=generated-types.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"generated-types.js","sourceRoot":"","sources":["../../../src/destinations/equals/generated-types.ts"],"names":[],"mappings":""}
@@ -1,4 +0,0 @@
1
- import { DestinationDefinition } from '@segment/actions-core';
2
- import type { Settings } from './generated-types';
3
- declare const destination: DestinationDefinition<Settings>;
4
- export default destination;
@@ -1,38 +0,0 @@
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 send_1 = __importDefault(require("./send"));
8
- const destination = {
9
- name: 'Equals',
10
- slug: 'actions-equals',
11
- mode: 'cloud',
12
- description: 'Send Segment analytics data to Equals.',
13
- authentication: {
14
- scheme: 'custom',
15
- fields: {
16
- url: {
17
- label: 'Equals URL',
18
- description: 'Equals URL to send data to.',
19
- type: 'string',
20
- required: true
21
- }
22
- }
23
- },
24
- presets: [
25
- {
26
- name: 'Send',
27
- subscribe: 'type = track or type = page or type = screen or type = identify or type = group',
28
- partnerAction: 'send',
29
- mapping: actions_core_1.defaultValues(send_1.default.fields),
30
- type: 'automatic'
31
- }
32
- ],
33
- actions: {
34
- send: send_1.default
35
- }
36
- };
37
- exports.default = destination;
38
- //# sourceMappingURL=index.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/destinations/equals/index.ts"],"names":[],"mappings":";;;;;AAAA,wDAA4E;AAG5E,kDAAyB;AAEzB,MAAM,WAAW,GAAoC;IACnD,IAAI,EAAE,QAAQ;IACd,IAAI,EAAE,gBAAgB;IACtB,IAAI,EAAE,OAAO;IACb,WAAW,EAAE,wCAAwC;IAErD,cAAc,EAAE;QACd,MAAM,EAAE,QAAQ;QAChB,MAAM,EAAE;YACN,GAAG,EAAE;gBACH,KAAK,EAAE,YAAY;gBACnB,WAAW,EAAE,6BAA6B;gBAC1C,IAAI,EAAE,QAAQ;gBACd,QAAQ,EAAE,IAAI;aACf;SACF;KACF;IACD,OAAO,EAAE;QACP;YACE,IAAI,EAAE,MAAM;YACZ,SAAS,EAAE,iFAAiF;YAC5F,aAAa,EAAE,MAAM;YACrB,OAAO,EAAE,4BAAa,CAAC,cAAI,CAAC,MAAM,CAAC;YACnC,IAAI,EAAE,WAAW;SAClB;KACF;IACD,OAAO,EAAE;QACP,IAAI,EAAJ,cAAI;KACL;CACF,CAAA;AAED,kBAAe,WAAW,CAAA"}
@@ -1,5 +0,0 @@
1
- export interface Payload {
2
- data: {
3
- [k: string]: unknown;
4
- };
5
- }
@@ -1,3 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- //# sourceMappingURL=generated-types.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"generated-types.js","sourceRoot":"","sources":["../../../../src/destinations/equals/send/generated-types.ts"],"names":[],"mappings":""}
@@ -1,5 +0,0 @@
1
- import { 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;
@@ -1,38 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- const actions_core_1 = require("@segment/actions-core");
4
- const action = {
5
- title: 'Send',
6
- defaultSubscription: 'type = track or type = page or type = screen or type = identify or type = group',
7
- description: 'Send Segment analytics data to Equals',
8
- fields: {
9
- data: {
10
- label: 'Data',
11
- description: 'Payload to deliver to Equals. Detaults to sending the entire Segment payload.',
12
- type: 'object',
13
- required: true,
14
- defaultObjectUI: 'object',
15
- default: { '@path': '$.' }
16
- }
17
- },
18
- perform: (request, { payload, settings }) => {
19
- try {
20
- return request(settings.url, {
21
- method: 'POST',
22
- headers: {
23
- 'Content-Type': 'application/x-www-form-urlencoded',
24
- 'User-Agent': 'Segment Equals Destination'
25
- },
26
- json: payload.data
27
- });
28
- }
29
- catch (error) {
30
- if (error instanceof TypeError) {
31
- throw new actions_core_1.PayloadValidationError(error.message);
32
- }
33
- throw error;
34
- }
35
- }
36
- };
37
- exports.default = action;
38
- //# sourceMappingURL=index.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../src/destinations/equals/send/index.ts"],"names":[],"mappings":";;AAAA,wDAAgF;AAIhF,MAAM,MAAM,GAAwC;IAClD,KAAK,EAAE,MAAM;IACb,mBAAmB,EAAE,iFAAiF;IACtG,WAAW,EAAE,uCAAuC;IACpD,MAAM,EAAE;QACN,IAAI,EAAE;YACJ,KAAK,EAAE,MAAM;YACb,WAAW,EAAE,+EAA+E;YAC5F,IAAI,EAAE,QAAQ;YACd,QAAQ,EAAE,IAAI;YACd,eAAe,EAAE,QAAQ;YACzB,OAAO,EAAE,EAAE,OAAO,EAAE,IAAI,EAAE;SAC3B;KACF;IACD,OAAO,EAAE,CAAC,OAAO,EAAE,EAAE,OAAO,EAAE,QAAQ,EAAE,EAAE,EAAE;QAC1C,IAAI;YACF,OAAO,OAAO,CAAC,QAAQ,CAAC,GAAG,EAAE;gBAC3B,MAAM,EAAE,MAAM;gBACd,OAAO,EAAE;oBACP,cAAc,EAAE,mCAAmC;oBACnD,YAAY,EAAE,4BAA4B;iBAC3C;gBACD,IAAI,EAAE,OAAO,CAAC,IAAI;aACnB,CAAC,CAAA;SACH;QAAC,OAAO,KAAK,EAAE;YACd,IAAI,KAAK,YAAY,SAAS,EAAE;gBAC9B,MAAM,IAAI,qCAAsB,CAAC,KAAK,CAAC,OAAO,CAAC,CAAA;aAChD;YACD,MAAM,KAAK,CAAA;SACZ;IACH,CAAC;CACF,CAAA;AAED,kBAAe,MAAM,CAAA"}
@@ -1,4 +0,0 @@
1
- export interface Settings {
2
- networkId: string;
3
- apiKey: string;
4
- }
@@ -1,3 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- //# sourceMappingURL=generated-types.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"generated-types.js","sourceRoot":"","sources":["../../../src/destinations/kevel/generated-types.ts"],"names":[],"mappings":""}
@@ -1,4 +0,0 @@
1
- import type { DestinationDefinition } from '@segment/actions-core';
2
- import type { Settings } from './generated-types';
3
- declare const destination: DestinationDefinition<Settings>;
4
- export default destination;
@@ -1,45 +0,0 @@
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 syncAudience_1 = __importDefault(require("./syncAudience"));
7
- const syncTraits_1 = __importDefault(require("./syncTraits"));
8
- const destination = {
9
- name: 'Kevel (Actions)',
10
- slug: 'actions-kevel',
11
- description: 'Send Segment user profiles and Segment Audiences to Kevel. Only users with a Segment userId will be synced.',
12
- mode: 'cloud',
13
- authentication: {
14
- scheme: 'custom',
15
- fields: {
16
- networkId: {
17
- label: 'Kevel Network ID',
18
- description: 'Your Kevel Network ID',
19
- type: 'string',
20
- required: true
21
- },
22
- apiKey: {
23
- label: 'Kevel API Key',
24
- description: 'Your Kevel API Key',
25
- type: 'string',
26
- required: true
27
- }
28
- }
29
- },
30
- extendRequest({ settings }) {
31
- return {
32
- headers: {
33
- 'X-Adzerk-ApiKey': settings.apiKey,
34
- 'Content-Type': 'application/json',
35
- 'X-Adzerk-Sdk-Version': 'adzerk-segment-integration:v1.0'
36
- }
37
- };
38
- },
39
- actions: {
40
- syncAudience: syncAudience_1.default,
41
- syncTraits: syncTraits_1.default
42
- }
43
- };
44
- exports.default = destination;
45
- //# sourceMappingURL=index.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/destinations/kevel/index.ts"],"names":[],"mappings":";;;;;AAGA,kEAAyC;AAEzC,8DAAqC;AAErC,MAAM,WAAW,GAAoC;IACnD,IAAI,EAAE,iBAAiB;IACvB,IAAI,EAAE,eAAe;IACrB,WAAW,EACT,6GAA6G;IAC/G,IAAI,EAAE,OAAO;IAEb,cAAc,EAAE;QACd,MAAM,EAAE,QAAQ;QAChB,MAAM,EAAE;YACN,SAAS,EAAE;gBACT,KAAK,EAAE,kBAAkB;gBACzB,WAAW,EAAE,uBAAuB;gBACpC,IAAI,EAAE,QAAQ;gBACd,QAAQ,EAAE,IAAI;aACf;YACD,MAAM,EAAE;gBACN,KAAK,EAAE,eAAe;gBACtB,WAAW,EAAE,oBAAoB;gBACjC,IAAI,EAAE,QAAQ;gBACd,QAAQ,EAAE,IAAI;aACf;SACF;KACF;IACD,aAAa,CAAC,EAAE,QAAQ,EAAE;QACxB,OAAO;YACL,OAAO,EAAE;gBACP,iBAAiB,EAAE,QAAQ,CAAC,MAAM;gBAClC,cAAc,EAAE,kBAAkB;gBAClC,sBAAsB,EAAE,iCAAiC;aAC1D;SACF,CAAA;IACH,CAAC;IACD,OAAO,EAAE;QACP,YAAY,EAAZ,sBAAY;QACZ,UAAU,EAAV,oBAAU;KACX;CACF,CAAA;AAED,kBAAe,WAAW,CAAA"}
@@ -1,8 +0,0 @@
1
- export interface Payload {
2
- segment_computation_key: string;
3
- segment_computation_action: string;
4
- segment_user_id: string;
5
- traits_or_props: {
6
- [k: string]: unknown;
7
- };
8
- }
@@ -1,3 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- //# sourceMappingURL=generated-types.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"generated-types.js","sourceRoot":"","sources":["../../../../src/destinations/kevel/syncAudience/generated-types.ts"],"names":[],"mappings":""}
@@ -1,5 +0,0 @@
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;
@@ -1,64 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- const action = {
4
- title: 'Sync Audience',
5
- description: 'Sync a Segment Engage Audience to a Kevel Segment. Only users with a Segment userId will be synced.',
6
- defaultSubscription: 'type = "track" or type = "identify"',
7
- fields: {
8
- segment_computation_key: {
9
- label: 'Audience Key',
10
- description: 'Segment Audience name to which user identifier should be added or removed',
11
- type: 'string',
12
- unsafe_hidden: true,
13
- required: true,
14
- default: {
15
- '@path': '$.context.personas.computation_key'
16
- }
17
- },
18
- segment_computation_action: {
19
- label: 'Segment Computation Action',
20
- description: "Segment computation class used to determine if input event is from an Engage Audience'. Value must be = 'audience'.",
21
- type: 'string',
22
- unsafe_hidden: true,
23
- required: true,
24
- default: {
25
- '@path': '$.context.personas.computation_class'
26
- },
27
- choices: [{ label: 'audience', value: 'audience' }]
28
- },
29
- segment_user_id: {
30
- label: 'User ID',
31
- description: "The user's unique ID",
32
- type: 'string',
33
- unsafe_hidden: true,
34
- required: true,
35
- default: { '@path': '$.userId' }
36
- },
37
- traits_or_props: {
38
- label: 'Traits or properties object',
39
- description: 'A computed object for track and identify events. This field should not need to be edited.',
40
- type: 'object',
41
- required: true,
42
- unsafe_hidden: true,
43
- default: {
44
- '@if': {
45
- exists: { '@path': '$.properties' },
46
- then: { '@path': '$.properties' },
47
- else: { '@path': '$.traits' }
48
- }
49
- }
50
- }
51
- },
52
- perform: async (request, data) => {
53
- const settings = data.settings;
54
- const baseUrl = `https://e-${settings.networkId}.adzerk.net/udb/${settings.networkId}`;
55
- const payload = data.payload;
56
- const audienceValue = payload.traits_or_props[payload.segment_computation_key];
57
- return request(`${baseUrl}/interests?userKey=${payload.segment_user_id}`, {
58
- json: [payload.segment_computation_key],
59
- method: audienceValue ? 'POST' : 'DELETE'
60
- });
61
- }
62
- };
63
- exports.default = action;
64
- //# sourceMappingURL=index.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../src/destinations/kevel/syncAudience/index.ts"],"names":[],"mappings":";;AAIA,MAAM,MAAM,GAAwC;IAClD,KAAK,EAAE,eAAe;IACtB,WAAW,EAAE,qGAAqG;IAClH,mBAAmB,EAAE,qCAAqC;IAC1D,MAAM,EAAE;QACN,uBAAuB,EAAE;YACvB,KAAK,EAAE,cAAc;YACrB,WAAW,EAAE,2EAA2E;YACxF,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,EACT,qHAAqH;YACvH,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,eAAe,EAAE;YACf,KAAK,EAAE,SAAS;YAChB,WAAW,EAAE,sBAAsB;YACnC,IAAI,EAAE,QAAQ;YACd,aAAa,EAAE,IAAI;YACnB,QAAQ,EAAE,IAAI;YACd,OAAO,EAAE,EAAE,OAAO,EAAE,UAAU,EAAE;SACjC;QACD,eAAe,EAAE;YACf,KAAK,EAAE,6BAA6B;YACpC,WAAW,EAAE,2FAA2F;YACxG,IAAI,EAAE,QAAQ;YACd,QAAQ,EAAE,IAAI;YACd,aAAa,EAAE,IAAI;YACnB,OAAO,EAAE;gBACP,KAAK,EAAE;oBACL,MAAM,EAAE,EAAE,OAAO,EAAE,cAAc,EAAE;oBACnC,IAAI,EAAE,EAAE,OAAO,EAAE,cAAc,EAAE;oBACjC,IAAI,EAAE,EAAE,OAAO,EAAE,UAAU,EAAE;iBAC9B;aACF;SACF;KACF;IACD,OAAO,EAAE,KAAK,EAAE,OAAO,EAAE,IAAI,EAAE,EAAE;QAC/B,MAAM,QAAQ,GAAG,IAAI,CAAC,QAAQ,CAAA;QAE9B,MAAM,OAAO,GAAG,aAAa,QAAQ,CAAC,SAAS,mBAAmB,QAAQ,CAAC,SAAS,EAAE,CAAA;QAEtF,MAAM,OAAO,GAAG,IAAI,CAAC,OAAO,CAAA;QAE5B,MAAM,aAAa,GAAG,OAAO,CAAC,eAAe,CAAC,OAAO,CAAC,uBAAuB,CAAC,CAAA;QAE9E,OAAO,OAAO,CAAC,GAAG,OAAO,sBAAsB,OAAO,CAAC,eAAe,EAAE,EAAE;YACxE,IAAI,EAAE,CAAC,OAAO,CAAC,uBAAuB,CAAC;YACvC,MAAM,EAAE,aAAa,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,QAAQ;SAC1C,CAAC,CAAA;IACJ,CAAC;CACF,CAAA;AAED,kBAAe,MAAM,CAAA"}
@@ -1,6 +0,0 @@
1
- export interface Payload {
2
- segment_user_id: string;
3
- traits: {
4
- [k: string]: unknown;
5
- };
6
- }
@@ -1,3 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- //# sourceMappingURL=generated-types.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"generated-types.js","sourceRoot":"","sources":["../../../../src/destinations/kevel/syncTraits/generated-types.ts"],"names":[],"mappings":""}
@@ -1,5 +0,0 @@
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;
@@ -1,39 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- const action = {
4
- title: 'Sync Traits',
5
- description: 'Sync user profile traits from Segment to Kevel',
6
- defaultSubscription: 'type = "identify"',
7
- fields: {
8
- segment_user_id: {
9
- label: 'User ID',
10
- description: "The user's unique ID",
11
- type: 'string',
12
- required: true,
13
- default: { '@path': '$.userId' }
14
- },
15
- traits: {
16
- label: 'Traits',
17
- description: "The user's profile traits / attributes",
18
- type: 'object',
19
- required: true,
20
- default: { '@path': '$.traits' }
21
- }
22
- },
23
- perform: async (request, data) => {
24
- const settings = data.settings;
25
- const baseUrl = `https://e-${settings.networkId}.adzerk.net/udb/${settings.networkId}`;
26
- const payload = data.payload;
27
- const existingResponse = await request(`${baseUrl}/read?userKey=${payload.segment_user_id}`, {
28
- method: 'GET'
29
- });
30
- const existingRecord = await existingResponse.json();
31
- const mergedTraits = { ...existingRecord?.custom, ...payload.traits };
32
- return request(`${baseUrl}/customProperties?userKey=${payload.segment_user_id}`, {
33
- json: mergedTraits,
34
- method: 'POST'
35
- });
36
- }
37
- };
38
- exports.default = action;
39
- //# sourceMappingURL=index.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../src/destinations/kevel/syncTraits/index.ts"],"names":[],"mappings":";;AAIA,MAAM,MAAM,GAAwC;IAClD,KAAK,EAAE,aAAa;IACpB,WAAW,EAAE,gDAAgD;IAC7D,mBAAmB,EAAE,mBAAmB;IACxC,MAAM,EAAE;QACN,eAAe,EAAE;YACf,KAAK,EAAE,SAAS;YAChB,WAAW,EAAE,sBAAsB;YACnC,IAAI,EAAE,QAAQ;YACd,QAAQ,EAAE,IAAI;YACd,OAAO,EAAE,EAAE,OAAO,EAAE,UAAU,EAAE;SACjC;QACD,MAAM,EAAE;YACN,KAAK,EAAE,QAAQ;YACf,WAAW,EAAE,wCAAwC;YACrD,IAAI,EAAE,QAAQ;YACd,QAAQ,EAAE,IAAI;YACd,OAAO,EAAE,EAAE,OAAO,EAAE,UAAU,EAAE;SACjC;KACF;IACD,OAAO,EAAE,KAAK,EAAE,OAAO,EAAE,IAAI,EAAE,EAAE;QAC/B,MAAM,QAAQ,GAAG,IAAI,CAAC,QAAQ,CAAA;QAE9B,MAAM,OAAO,GAAG,aAAa,QAAQ,CAAC,SAAS,mBAAmB,QAAQ,CAAC,SAAS,EAAE,CAAA;QAEtF,MAAM,OAAO,GAAG,IAAI,CAAC,OAAO,CAAA;QAE5B,MAAM,gBAAgB,GAAG,MAAM,OAAO,CAAC,GAAG,OAAO,iBAAiB,OAAO,CAAC,eAAe,EAAE,EAAE;YAC3F,MAAM,EAAE,KAAK;SACd,CAAC,CAAA;QAEF,MAAM,cAAc,GAAG,MAAM,gBAAgB,CAAC,IAAI,EAAE,CAAA;QAEpD,MAAM,YAAY,GAAG,EAAE,GAAG,cAAc,EAAE,MAAM,EAAE,GAAG,OAAO,CAAC,MAAM,EAAE,CAAA;QAErE,OAAO,OAAO,CAAC,GAAG,OAAO,6BAA6B,OAAO,CAAC,eAAe,EAAE,EAAE;YAC/E,IAAI,EAAE,YAAY;YAClB,MAAM,EAAE,MAAM;SACf,CAAC,CAAA;IACJ,CAAC;CACF,CAAA;AAED,kBAAe,MAAM,CAAA"}
@@ -1,129 +0,0 @@
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 nock_1 = __importDefault(require("nock"));
7
- const actions_core_1 = require("@segment/actions-core");
8
- const index_1 = __importDefault(require("../../index"));
9
- const utils_1 = require("../../common/utils");
10
- const testDestination = actions_core_1.createTestIntegration(index_1.default);
11
- const MIXPANEL_API_SECRET = 'test-api-key';
12
- const MIXPANEL_PROJECT_TOKEN = 'test-proj-token';
13
- const timestamp = '2021-08-17T15:21:15.449Z';
14
- describe('Mixpanel.incrementProperties', () => {
15
- const defaultProperties = { term: 'foo', increment: { searches: 1 } };
16
- it('should use EU server URL', async () => {
17
- const event = actions_core_1.createTestEvent({ timestamp, event: 'search', properties: defaultProperties });
18
- nock_1.default('https://api-eu.mixpanel.com').post('/engage').reply(200, {});
19
- nock_1.default('https://api-eu.mixpanel.com').post('/track').reply(200, {});
20
- const responses = await testDestination.testAction('incrementProperties', {
21
- event,
22
- useDefaultMappings: true,
23
- settings: {
24
- projectToken: MIXPANEL_PROJECT_TOKEN,
25
- apiSecret: MIXPANEL_API_SECRET,
26
- apiRegion: utils_1.ApiRegions.EU
27
- }
28
- });
29
- expect(responses[0].status).toBe(200);
30
- expect(responses[0].data).toMatchObject({});
31
- expect(responses[0].options.body).toMatchObject(new URLSearchParams({
32
- data: JSON.stringify({
33
- $token: MIXPANEL_PROJECT_TOKEN,
34
- $distinct_id: 'user1234',
35
- $ip: '8.8.8.8',
36
- $add: {
37
- searches: 1
38
- }
39
- })
40
- }));
41
- });
42
- it('should default to US endpoint if apiRegion setting is undefined', async () => {
43
- const event = actions_core_1.createTestEvent({ timestamp, event: 'search', properties: defaultProperties });
44
- nock_1.default('https://api.mixpanel.com').post('/engage').reply(200, {});
45
- nock_1.default('https://api.mixpanel.com').post('/track').reply(200, {});
46
- const responses = await testDestination.testAction('incrementProperties', {
47
- event,
48
- useDefaultMappings: true,
49
- settings: {
50
- projectToken: MIXPANEL_PROJECT_TOKEN,
51
- apiSecret: MIXPANEL_API_SECRET
52
- }
53
- });
54
- expect(responses[0].status).toBe(200);
55
- expect(responses[0].data).toMatchObject({});
56
- expect(responses[0].options.body).toMatchObject(new URLSearchParams({
57
- data: JSON.stringify({
58
- $token: MIXPANEL_PROJECT_TOKEN,
59
- $distinct_id: 'user1234',
60
- $ip: '8.8.8.8',
61
- $add: {
62
- searches: 1
63
- }
64
- })
65
- }));
66
- });
67
- it('should use anonymous_id as distinct_id if user_id is missing', async () => {
68
- const event = actions_core_1.createTestEvent({ userId: null, event: 'search', properties: defaultProperties });
69
- nock_1.default('https://api.mixpanel.com').post('/track').reply(200, {});
70
- nock_1.default('https://api.mixpanel.com').post('/engage').reply(200, {});
71
- const responses = await testDestination.testAction('incrementProperties', {
72
- event,
73
- useDefaultMappings: true,
74
- settings: {
75
- projectToken: MIXPANEL_PROJECT_TOKEN,
76
- apiSecret: MIXPANEL_API_SECRET
77
- }
78
- });
79
- expect(responses[0].status).toBe(200);
80
- expect(responses[0].data).toMatchObject({});
81
- expect(responses[0].options.body).toMatchObject(new URLSearchParams({
82
- data: JSON.stringify({
83
- $token: MIXPANEL_PROJECT_TOKEN,
84
- $distinct_id: event.anonymousId,
85
- $ip: '8.8.8.8',
86
- $add: {
87
- searches: 1
88
- }
89
- })
90
- }));
91
- });
92
- it('should $add values to increment numerical properties', async () => {
93
- const event = actions_core_1.createTestEvent({
94
- timestamp,
95
- event: 'search',
96
- properties: {
97
- abc: '123',
98
- increment: {
99
- positive: 2,
100
- negative: -2
101
- }
102
- }
103
- });
104
- nock_1.default('https://api.mixpanel.com').post('/track').reply(200, {});
105
- nock_1.default('https://api.mixpanel.com').post('/engage').reply(200, {});
106
- const responses = await testDestination.testAction('incrementProperties', {
107
- event,
108
- useDefaultMappings: true,
109
- settings: {
110
- projectToken: MIXPANEL_PROJECT_TOKEN,
111
- apiSecret: MIXPANEL_API_SECRET
112
- }
113
- });
114
- expect(responses[0].status).toBe(200);
115
- expect(responses[0].data).toMatchObject({});
116
- expect(responses[0].options.body).toMatchObject(new URLSearchParams({
117
- data: JSON.stringify({
118
- $token: MIXPANEL_PROJECT_TOKEN,
119
- $distinct_id: 'user1234',
120
- $ip: '8.8.8.8',
121
- $add: {
122
- positive: 2,
123
- negative: -2
124
- }
125
- })
126
- }));
127
- });
128
- });
129
- //# sourceMappingURL=index.test.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"index.test.js","sourceRoot":"","sources":["../../../../../src/destinations/mixpanel/incrementProperties/__test__/index.test.ts"],"names":[],"mappings":"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"}