@activepieces/piece-elastic-email 0.2.1 → 0.2.3

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 (61) hide show
  1. package/package.json +7 -13
  2. package/src/index.js +20 -51
  3. package/src/index.d.ts +0 -2
  4. package/src/index.d.ts.map +0 -1
  5. package/src/index.js.map +0 -1
  6. package/src/lib/actions/add-contact.d.ts +0 -12
  7. package/src/lib/actions/add-contact.d.ts.map +0 -1
  8. package/src/lib/actions/add-contact.js +0 -95
  9. package/src/lib/actions/add-contact.js.map +0 -1
  10. package/src/lib/actions/create-campaign.d.ts +0 -11
  11. package/src/lib/actions/create-campaign.d.ts.map +0 -1
  12. package/src/lib/actions/create-campaign.js +0 -79
  13. package/src/lib/actions/create-campaign.js.map +0 -1
  14. package/src/lib/actions/create-contact.d.ts +0 -8
  15. package/src/lib/actions/create-contact.d.ts.map +0 -1
  16. package/src/lib/actions/create-contact.js +0 -63
  17. package/src/lib/actions/create-contact.js.map +0 -1
  18. package/src/lib/actions/create-segment.d.ts +0 -5
  19. package/src/lib/actions/create-segment.d.ts.map +0 -1
  20. package/src/lib/actions/create-segment.js +0 -39
  21. package/src/lib/actions/create-segment.js.map +0 -1
  22. package/src/lib/actions/list-campaigns.d.ts +0 -6
  23. package/src/lib/actions/list-campaigns.d.ts.map +0 -1
  24. package/src/lib/actions/list-campaigns.js +0 -55
  25. package/src/lib/actions/list-campaigns.js.map +0 -1
  26. package/src/lib/actions/list-contacts.d.ts +0 -5
  27. package/src/lib/actions/list-contacts.d.ts.map +0 -1
  28. package/src/lib/actions/list-contacts.js +0 -47
  29. package/src/lib/actions/list-contacts.js.map +0 -1
  30. package/src/lib/actions/send-email.d.ts +0 -17
  31. package/src/lib/actions/send-email.d.ts.map +0 -1
  32. package/src/lib/actions/send-email.js +0 -128
  33. package/src/lib/actions/send-email.js.map +0 -1
  34. package/src/lib/actions/unsubscribe-contact.d.ts +0 -4
  35. package/src/lib/actions/unsubscribe-contact.d.ts.map +0 -1
  36. package/src/lib/actions/unsubscribe-contact.js +0 -34
  37. package/src/lib/actions/unsubscribe-contact.js.map +0 -1
  38. package/src/lib/actions/update-campaign.d.ts +0 -12
  39. package/src/lib/actions/update-campaign.d.ts.map +0 -1
  40. package/src/lib/actions/update-campaign.js +0 -89
  41. package/src/lib/actions/update-campaign.js.map +0 -1
  42. package/src/lib/actions/update-contact.d.ts +0 -7
  43. package/src/lib/actions/update-contact.d.ts.map +0 -1
  44. package/src/lib/actions/update-contact.js +0 -47
  45. package/src/lib/actions/update-contact.js.map +0 -1
  46. package/src/lib/auth.d.ts +0 -2
  47. package/src/lib/auth.d.ts.map +0 -1
  48. package/src/lib/auth.js +0 -59
  49. package/src/lib/auth.js.map +0 -1
  50. package/src/lib/common/client.d.ts +0 -9
  51. package/src/lib/common/client.d.ts.map +0 -1
  52. package/src/lib/common/client.js +0 -19
  53. package/src/lib/common/client.js.map +0 -1
  54. package/src/lib/common/constants.d.ts +0 -8
  55. package/src/lib/common/constants.d.ts.map +0 -1
  56. package/src/lib/common/constants.js +0 -47
  57. package/src/lib/common/constants.js.map +0 -1
  58. package/src/lib/common/props.d.ts +0 -6
  59. package/src/lib/common/props.d.ts.map +0 -1
  60. package/src/lib/common/props.js +0 -165
  61. package/src/lib/common/props.js.map +0 -1
@@ -1,89 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.updateCampaignAction = void 0;
4
- const tslib_1 = require("tslib");
5
- const pieces_common_1 = require("@activepieces/pieces-common");
6
- const pieces_framework_1 = require("@activepieces/pieces-framework");
7
- const auth_1 = require("../auth");
8
- const client_1 = require("../common/client");
9
- const constants_1 = require("../common/constants");
10
- const props_1 = require("../common/props");
11
- exports.updateCampaignAction = (0, pieces_framework_1.createAction)({
12
- name: 'update_campaign',
13
- displayName: 'Update Campaign',
14
- description: 'Update an existing campaign in Elastic Email.',
15
- auth: auth_1.elasticEmailAuth,
16
- props: {
17
- campaign: props_1.campaignNameProp,
18
- name: pieces_framework_1.Property.ShortText({
19
- displayName: 'New Campaign Name',
20
- description: 'New name for the campaign. Leave empty to keep existing.',
21
- required: false,
22
- }),
23
- from: pieces_framework_1.Property.ShortText({
24
- displayName: 'From',
25
- description: 'Sender email with optional name. Leave empty to keep existing.',
26
- required: false,
27
- }),
28
- recipientListNames: props_1.listNamesProp,
29
- recipientSegmentNames: props_1.segmentNamesProp,
30
- replyTo: pieces_framework_1.Property.ShortText({
31
- displayName: 'Reply To',
32
- description: 'Reply-to email address. Leave empty to keep existing.',
33
- required: false,
34
- }),
35
- subject: pieces_framework_1.Property.ShortText({
36
- displayName: 'Subject',
37
- description: 'Email subject. Leave empty to keep existing.',
38
- required: false,
39
- }),
40
- templateName: props_1.templateNameProp,
41
- status: pieces_framework_1.Property.StaticDropdown({
42
- displayName: 'Status',
43
- description: 'Campaign status. Leave empty to keep existing.',
44
- required: false,
45
- options: {
46
- options: constants_1.CAMPAIGN_STATUS_OPTIONS.map((s) => ({ label: s, value: s })),
47
- },
48
- }),
49
- },
50
- run(_a) {
51
- return tslib_1.__awaiter(this, arguments, void 0, function* ({ auth, propsValue }) {
52
- var _b, _c, _d, _e, _f, _g;
53
- const campaignName = String(propsValue.campaign);
54
- // Fetch current campaign to merge unchanged fields
55
- const current = yield (0, client_1.elasticEmailRequest)({
56
- apiKey: auth.secret_text,
57
- method: pieces_common_1.HttpMethod.GET,
58
- path: `/campaigns/${encodeURIComponent(campaignName)}`,
59
- });
60
- const currentContent = (_c = (_b = current.Content) === null || _b === void 0 ? void 0 : _b[0]) !== null && _c !== void 0 ? _c : {};
61
- return (0, client_1.elasticEmailRequest)({
62
- apiKey: auth.secret_text,
63
- method: pieces_common_1.HttpMethod.PUT,
64
- path: `/campaigns/${encodeURIComponent(campaignName)}`,
65
- body: {
66
- Name: propsValue.name || current.Name,
67
- Recipients: {
68
- ListNames: propsValue.recipientListNames && propsValue.recipientListNames.length > 0
69
- ? propsValue.recipientListNames
70
- : ((_e = (_d = current.Recipients) === null || _d === void 0 ? void 0 : _d.ListNames) !== null && _e !== void 0 ? _e : undefined),
71
- SegmentNames: propsValue.recipientSegmentNames && propsValue.recipientSegmentNames.length > 0
72
- ? propsValue.recipientSegmentNames
73
- : ((_g = (_f = current.Recipients) === null || _f === void 0 ? void 0 : _f.SegmentNames) !== null && _g !== void 0 ? _g : undefined),
74
- },
75
- Content: [
76
- {
77
- From: propsValue.from || currentContent.From,
78
- ReplyTo: propsValue.replyTo || currentContent.ReplyTo,
79
- Subject: propsValue.subject || currentContent.Subject,
80
- TemplateName: propsValue.templateName || currentContent.TemplateName,
81
- },
82
- ],
83
- Status: propsValue.status || current.Status,
84
- },
85
- });
86
- });
87
- },
88
- });
89
- //# sourceMappingURL=update-campaign.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"update-campaign.js","sourceRoot":"","sources":["../../../../src/lib/actions/update-campaign.ts"],"names":[],"mappings":"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"}
@@ -1,7 +0,0 @@
1
- export declare const updateContactAction: import("@activepieces/pieces-framework").IAction<import("@activepieces/pieces-framework").SecretTextProperty<true>, {
2
- contact: import("@activepieces/pieces-framework").DropdownProperty<string, true, import("@activepieces/pieces-framework").SecretTextProperty<true>>;
3
- firstName: import("@activepieces/pieces-framework").ShortTextProperty<false>;
4
- lastName: import("@activepieces/pieces-framework").ShortTextProperty<false>;
5
- customFields: import("@activepieces/pieces-framework").ObjectProperty<false>;
6
- }>;
7
- //# sourceMappingURL=update-contact.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"update-contact.d.ts","sourceRoot":"","sources":["../../../../src/lib/actions/update-contact.ts"],"names":[],"mappings":"AAOA,eAAO,MAAM,mBAAmB;;;;;EAkC9B,CAAC"}
@@ -1,47 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.updateContactAction = void 0;
4
- const tslib_1 = require("tslib");
5
- const pieces_common_1 = require("@activepieces/pieces-common");
6
- const pieces_framework_1 = require("@activepieces/pieces-framework");
7
- const auth_1 = require("../auth");
8
- const client_1 = require("../common/client");
9
- const props_1 = require("../common/props");
10
- exports.updateContactAction = (0, pieces_framework_1.createAction)({
11
- name: 'update_contact',
12
- displayName: 'Update Contact',
13
- description: 'Update an existing contact in Elastic Email.',
14
- auth: auth_1.elasticEmailAuth,
15
- props: {
16
- contact: props_1.contactEmailProp,
17
- firstName: pieces_framework_1.Property.ShortText({
18
- displayName: 'First Name',
19
- required: false,
20
- }),
21
- lastName: pieces_framework_1.Property.ShortText({
22
- displayName: 'Last Name',
23
- required: false,
24
- }),
25
- customFields: pieces_framework_1.Property.Object({
26
- displayName: 'Custom Fields',
27
- description: 'Key-value pairs of custom contact fields. Only existing custom fields will be saved.',
28
- required: false,
29
- }),
30
- },
31
- run(_a) {
32
- return tslib_1.__awaiter(this, arguments, void 0, function* ({ auth, propsValue }) {
33
- var _b, _c, _d;
34
- return (0, client_1.elasticEmailRequest)({
35
- apiKey: auth.secret_text,
36
- method: pieces_common_1.HttpMethod.PUT,
37
- path: `/contacts/${encodeURIComponent(String(propsValue.contact))}`,
38
- body: {
39
- FirstName: (_b = propsValue.firstName) !== null && _b !== void 0 ? _b : undefined,
40
- LastName: (_c = propsValue.lastName) !== null && _c !== void 0 ? _c : undefined,
41
- CustomFields: (_d = propsValue.customFields) !== null && _d !== void 0 ? _d : undefined,
42
- },
43
- });
44
- });
45
- },
46
- });
47
- //# sourceMappingURL=update-contact.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"update-contact.js","sourceRoot":"","sources":["../../../../src/lib/actions/update-contact.ts"],"names":[],"mappings":";;;;AAAA,+DAAyD;AACzD,qEAAwE;AAExE,kCAA2C;AAC3C,6CAAuD;AACvD,2CAAmD;AAEtC,QAAA,mBAAmB,GAAG,IAAA,+BAAY,EAAC;IAC9C,IAAI,EAAE,gBAAgB;IACtB,WAAW,EAAE,gBAAgB;IAC7B,WAAW,EAAE,8CAA8C;IAC3D,IAAI,EAAE,uBAAgB;IACtB,KAAK,EAAE;QACL,OAAO,EAAE,wBAAgB;QACzB,SAAS,EAAE,2BAAQ,CAAC,SAAS,CAAC;YAC5B,WAAW,EAAE,YAAY;YACzB,QAAQ,EAAE,KAAK;SAChB,CAAC;QACF,QAAQ,EAAE,2BAAQ,CAAC,SAAS,CAAC;YAC3B,WAAW,EAAE,WAAW;YACxB,QAAQ,EAAE,KAAK;SAChB,CAAC;QACF,YAAY,EAAE,2BAAQ,CAAC,MAAM,CAAC;YAC5B,WAAW,EAAE,eAAe;YAC5B,WAAW,EACT,sFAAsF;YACxF,QAAQ,EAAE,KAAK;SAChB,CAAC;KACH;IACK,GAAG;qEAAC,EAAE,IAAI,EAAE,UAAU,EAAE;;YAC5B,OAAO,IAAA,4BAAmB,EAAC;gBACzB,MAAM,EAAE,IAAI,CAAC,WAAW;gBACxB,MAAM,EAAE,0BAAU,CAAC,GAAG;gBACtB,IAAI,EAAE,aAAa,kBAAkB,CAAC,MAAM,CAAC,UAAU,CAAC,OAAO,CAAC,CAAC,EAAE;gBACnE,IAAI,EAAE;oBACJ,SAAS,EAAE,MAAA,UAAU,CAAC,SAAS,mCAAI,SAAS;oBAC5C,QAAQ,EAAE,MAAA,UAAU,CAAC,QAAQ,mCAAI,SAAS;oBAC1C,YAAY,EAAE,MAAA,UAAU,CAAC,YAAY,mCAAI,SAAS;iBACnD;aACF,CAAC,CAAC;QACL,CAAC;KAAA;CACF,CAAC,CAAC"}
package/src/lib/auth.d.ts DELETED
@@ -1,2 +0,0 @@
1
- export declare const elasticEmailAuth: import("@activepieces/pieces-framework").SecretTextProperty<true>;
2
- //# sourceMappingURL=auth.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"auth.d.ts","sourceRoot":"","sources":["../../../src/lib/auth.ts"],"names":[],"mappings":"AAKA,eAAO,MAAM,gBAAgB,mEAqD3B,CAAC"}
package/src/lib/auth.js DELETED
@@ -1,59 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.elasticEmailAuth = void 0;
4
- const tslib_1 = require("tslib");
5
- const pieces_framework_1 = require("@activepieces/pieces-framework");
6
- const pieces_common_1 = require("@activepieces/pieces-common");
7
- const constants_1 = require("./common/constants");
8
- exports.elasticEmailAuth = pieces_framework_1.PieceAuth.SecretText({
9
- displayName: 'API Key',
10
- description: `
11
- To obtain your Elastic Email API key:
12
- 1. Log in to your Elastic Email account
13
- 2. Navigate to **Settings → Manage API Keys**
14
- 3. Click **Create API Key**
15
- 4. Ensure the key has the required permissions (Contacts, Campaigns, Emails, Segments)
16
- 5. Copy the key and paste it here
17
- `,
18
- required: true,
19
- validate: (_a) => tslib_1.__awaiter(void 0, [_a], void 0, function* ({ auth }) {
20
- try {
21
- const response = yield pieces_common_1.httpClient.sendRequest({
22
- method: pieces_common_1.HttpMethod.GET,
23
- url: `${constants_1.ELASTIC_EMAIL_API_BASE}/contacts`,
24
- headers: {
25
- 'X-ElasticEmail-ApiKey': auth,
26
- },
27
- queryParams: { limit: '1' },
28
- });
29
- if (response.status === 200) {
30
- return { valid: true };
31
- }
32
- return {
33
- valid: false,
34
- error: 'Invalid API key — could not authenticate with Elastic Email.',
35
- };
36
- }
37
- catch (error) {
38
- const statusCode = error != null &&
39
- typeof error === 'object' &&
40
- 'response' in error &&
41
- error.response != null &&
42
- typeof error.response === 'object' &&
43
- 'status' in error.response
44
- ? error.response.status
45
- : undefined;
46
- if (statusCode === 401 || statusCode === 403) {
47
- return {
48
- valid: false,
49
- error: 'Invalid API key — could not authenticate with Elastic Email.',
50
- };
51
- }
52
- return {
53
- valid: false,
54
- error: 'Could not reach the Elastic Email API. Check your network connection and try again.',
55
- };
56
- }
57
- }),
58
- });
59
- //# sourceMappingURL=auth.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"auth.js","sourceRoot":"","sources":["../../../src/lib/auth.ts"],"names":[],"mappings":";;;;AAAA,qEAA2D;AAC3D,+DAAqE;AAErE,kDAA4D;AAE/C,QAAA,gBAAgB,GAAG,4BAAS,CAAC,UAAU,CAAC;IACnD,WAAW,EAAE,SAAS;IACtB,WAAW,EAAE;;;;;;;GAOZ;IACD,QAAQ,EAAE,IAAI;IACd,QAAQ,EAAE,KAAiB,EAAE,oDAAZ,EAAE,IAAI,EAAE;QACvB,IAAI,CAAC;YACH,MAAM,QAAQ,GAAG,MAAM,0BAAU,CAAC,WAAW,CAAC;gBAC5C,MAAM,EAAE,0BAAU,CAAC,GAAG;gBACtB,GAAG,EAAE,GAAG,kCAAsB,WAAW;gBACzC,OAAO,EAAE;oBACP,uBAAuB,EAAE,IAAI;iBAC9B;gBACD,WAAW,EAAE,EAAE,KAAK,EAAE,GAAG,EAAE;aAC5B,CAAC,CAAC;YACH,IAAI,QAAQ,CAAC,MAAM,KAAK,GAAG,EAAE,CAAC;gBAC5B,OAAO,EAAE,KAAK,EAAE,IAAI,EAAE,CAAC;YACzB,CAAC;YACD,OAAO;gBACL,KAAK,EAAE,KAAK;gBACZ,KAAK,EAAE,8DAA8D;aACtE,CAAC;QACJ,CAAC;QAAC,OAAO,KAAc,EAAE,CAAC;YACxB,MAAM,UAAU,GACd,KAAK,IAAI,IAAI;gBACb,OAAO,KAAK,KAAK,QAAQ;gBACzB,UAAU,IAAI,KAAK;gBACnB,KAAK,CAAC,QAAQ,IAAI,IAAI;gBACtB,OAAO,KAAK,CAAC,QAAQ,KAAK,QAAQ;gBAClC,QAAQ,IAAI,KAAK,CAAC,QAAQ;gBACxB,CAAC,CAAE,KAAK,CAAC,QAA+B,CAAC,MAAM;gBAC/C,CAAC,CAAC,SAAS,CAAC;YAEhB,IAAI,UAAU,KAAK,GAAG,IAAI,UAAU,KAAK,GAAG,EAAE,CAAC;gBAC7C,OAAO;oBACL,KAAK,EAAE,KAAK;oBACZ,KAAK,EAAE,8DAA8D;iBACtE,CAAC;YACJ,CAAC;YAED,OAAO;gBACL,KAAK,EAAE,KAAK;gBACZ,KAAK,EACH,qFAAqF;aACxF,CAAC;QACJ,CAAC;IACH,CAAC,CAAA;CACF,CAAC,CAAC"}
@@ -1,9 +0,0 @@
1
- import { HttpMethod, QueryParams } from '@activepieces/pieces-common';
2
- export declare function elasticEmailRequest<T = unknown>({ apiKey, method, path, queryParams, body, }: {
3
- apiKey: string;
4
- method: HttpMethod;
5
- path: string;
6
- queryParams?: QueryParams;
7
- body?: unknown;
8
- }): Promise<T>;
9
- //# sourceMappingURL=client.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"client.d.ts","sourceRoot":"","sources":["../../../../src/lib/common/client.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,UAAU,EACV,WAAW,EAEZ,MAAM,6BAA6B,CAAC;AAIrC,wBAAsB,mBAAmB,CAAC,CAAC,GAAG,OAAO,EAAE,EACrD,MAAM,EACN,MAAM,EACN,IAAI,EACJ,WAAW,EACX,IAAI,GACL,EAAE;IACD,MAAM,EAAE,MAAM,CAAC;IACf,MAAM,EAAE,UAAU,CAAC;IACnB,IAAI,EAAE,MAAM,CAAC;IACb,WAAW,CAAC,EAAE,WAAW,CAAC;IAC1B,IAAI,CAAC,EAAE,OAAO,CAAC;CAChB,GAAG,OAAO,CAAC,CAAC,CAAC,CAYb"}
@@ -1,19 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.elasticEmailRequest = elasticEmailRequest;
4
- const tslib_1 = require("tslib");
5
- const pieces_common_1 = require("@activepieces/pieces-common");
6
- const constants_1 = require("./constants");
7
- function elasticEmailRequest(_a) {
8
- return tslib_1.__awaiter(this, arguments, void 0, function* ({ apiKey, method, path, queryParams, body, }) {
9
- const response = yield pieces_common_1.httpClient.sendRequest({
10
- method,
11
- url: `${constants_1.ELASTIC_EMAIL_API_BASE}${path}`,
12
- headers: Object.assign({ 'X-ElasticEmail-ApiKey': apiKey }, (body ? { 'Content-Type': 'application/json' } : {})),
13
- queryParams,
14
- body,
15
- });
16
- return response.body;
17
- });
18
- }
19
- //# sourceMappingURL=client.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"client.js","sourceRoot":"","sources":["../../../../src/lib/common/client.ts"],"names":[],"mappings":";;AAQA,kDAwBC;;AAhCD,+DAIqC;AAErC,2CAAqD;AAErD,SAAsB,mBAAmB;iEAAc,EACrD,MAAM,EACN,MAAM,EACN,IAAI,EACJ,WAAW,EACX,IAAI,GAOL;QACC,MAAM,QAAQ,GAAG,MAAM,0BAAU,CAAC,WAAW,CAAI;YAC/C,MAAM;YACN,GAAG,EAAE,GAAG,kCAAsB,GAAG,IAAI,EAAE;YACvC,OAAO,kBACL,uBAAuB,EAAE,MAAM,IAC5B,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,cAAc,EAAE,kBAAkB,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,CACxD;YACD,WAAW;YACX,IAAI;SACL,CAAC,CAAC;QACH,OAAO,QAAQ,CAAC,IAAI,CAAC;IACvB,CAAC;CAAA"}
@@ -1,8 +0,0 @@
1
- export declare const ELASTIC_EMAIL_API_BASE = "https://api.elasticemail.com/v4";
2
- export declare const CONTACT_STATUS_OPTIONS: readonly ["Transactional", "Engaged", "Active", "Bounced", "Unsubscribed", "Abuse", "Inactive", "Stale", "NotConfirmed"];
3
- export declare const CAMPAIGN_STATUS_OPTIONS: readonly ["Deleted", "Active", "Processing", "Sending", "Completed", "Paused", "Cancelled", "Draft"];
4
- export declare const BODY_CONTENT_TYPE_OPTIONS: readonly ["HTML", "PlainText", "AMP", "CSS"];
5
- export declare const ENCODING_OPTIONS: readonly ["UserProvided", "None", "Raw7bit", "Raw8bit", "QuotedPrintable", "Base64", "Uue"];
6
- export declare const CONSENT_TRACKING_OPTIONS: readonly ["Unknown", "Allow", "Deny"];
7
- export declare const DEFAULT_LIMIT = 100;
8
- //# sourceMappingURL=constants.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"constants.d.ts","sourceRoot":"","sources":["../../../../src/lib/common/constants.ts"],"names":[],"mappings":"AAAA,eAAO,MAAM,sBAAsB,oCAAoC,CAAC;AAExE,eAAO,MAAM,sBAAsB,0HAUzB,CAAC;AAEX,eAAO,MAAM,uBAAuB,sGAS1B,CAAC;AAEX,eAAO,MAAM,yBAAyB,8CAK5B,CAAC;AAEX,eAAO,MAAM,gBAAgB,6FAQnB,CAAC;AAEX,eAAO,MAAM,wBAAwB,uCAI3B,CAAC;AAEX,eAAO,MAAM,aAAa,MAAM,CAAC"}
@@ -1,47 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.DEFAULT_LIMIT = exports.CONSENT_TRACKING_OPTIONS = exports.ENCODING_OPTIONS = exports.BODY_CONTENT_TYPE_OPTIONS = exports.CAMPAIGN_STATUS_OPTIONS = exports.CONTACT_STATUS_OPTIONS = exports.ELASTIC_EMAIL_API_BASE = void 0;
4
- exports.ELASTIC_EMAIL_API_BASE = 'https://api.elasticemail.com/v4';
5
- exports.CONTACT_STATUS_OPTIONS = [
6
- 'Transactional',
7
- 'Engaged',
8
- 'Active',
9
- 'Bounced',
10
- 'Unsubscribed',
11
- 'Abuse',
12
- 'Inactive',
13
- 'Stale',
14
- 'NotConfirmed',
15
- ];
16
- exports.CAMPAIGN_STATUS_OPTIONS = [
17
- 'Deleted',
18
- 'Active',
19
- 'Processing',
20
- 'Sending',
21
- 'Completed',
22
- 'Paused',
23
- 'Cancelled',
24
- 'Draft',
25
- ];
26
- exports.BODY_CONTENT_TYPE_OPTIONS = [
27
- 'HTML',
28
- 'PlainText',
29
- 'AMP',
30
- 'CSS',
31
- ];
32
- exports.ENCODING_OPTIONS = [
33
- 'UserProvided',
34
- 'None',
35
- 'Raw7bit',
36
- 'Raw8bit',
37
- 'QuotedPrintable',
38
- 'Base64',
39
- 'Uue',
40
- ];
41
- exports.CONSENT_TRACKING_OPTIONS = [
42
- 'Unknown',
43
- 'Allow',
44
- 'Deny',
45
- ];
46
- exports.DEFAULT_LIMIT = 100;
47
- //# sourceMappingURL=constants.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"constants.js","sourceRoot":"","sources":["../../../../src/lib/common/constants.ts"],"names":[],"mappings":";;;AAAa,QAAA,sBAAsB,GAAG,iCAAiC,CAAC;AAE3D,QAAA,sBAAsB,GAAG;IACpC,eAAe;IACf,SAAS;IACT,QAAQ;IACR,SAAS;IACT,cAAc;IACd,OAAO;IACP,UAAU;IACV,OAAO;IACP,cAAc;CACN,CAAC;AAEE,QAAA,uBAAuB,GAAG;IACrC,SAAS;IACT,QAAQ;IACR,YAAY;IACZ,SAAS;IACT,WAAW;IACX,QAAQ;IACR,WAAW;IACX,OAAO;CACC,CAAC;AAEE,QAAA,yBAAyB,GAAG;IACvC,MAAM;IACN,WAAW;IACX,KAAK;IACL,KAAK;CACG,CAAC;AAEE,QAAA,gBAAgB,GAAG;IAC9B,cAAc;IACd,MAAM;IACN,SAAS;IACT,SAAS;IACT,iBAAiB;IACjB,QAAQ;IACR,KAAK;CACG,CAAC;AAEE,QAAA,wBAAwB,GAAG;IACtC,SAAS;IACT,OAAO;IACP,MAAM;CACE,CAAC;AAEE,QAAA,aAAa,GAAG,GAAG,CAAC"}
@@ -1,6 +0,0 @@
1
- export declare const contactEmailProp: import("@activepieces/pieces-framework").DropdownProperty<string, true, import("@activepieces/pieces-framework").SecretTextProperty<true>>;
2
- export declare const campaignNameProp: import("@activepieces/pieces-framework").DropdownProperty<string, true, import("@activepieces/pieces-framework").SecretTextProperty<true>>;
3
- export declare const listNamesProp: import("@activepieces/pieces-framework").MultiSelectDropdownProperty<string, false, import("@activepieces/pieces-framework").SecretTextProperty<true>>;
4
- export declare const segmentNamesProp: import("@activepieces/pieces-framework").MultiSelectDropdownProperty<string, false, import("@activepieces/pieces-framework").SecretTextProperty<true>>;
5
- export declare const templateNameProp: import("@activepieces/pieces-framework").DropdownProperty<string, false, import("@activepieces/pieces-framework").SecretTextProperty<true>>;
6
- //# sourceMappingURL=props.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"props.d.ts","sourceRoot":"","sources":["../../../../src/lib/common/props.ts"],"names":[],"mappings":"AA6BA,eAAO,MAAM,gBAAgB,4IA8B3B,CAAC;AAEH,eAAO,MAAM,gBAAgB,4IA8B3B,CAAC;AAEH,eAAO,MAAM,aAAa,wJA8BxB,CAAC;AAEH,eAAO,MAAM,gBAAgB,wJA8B3B,CAAC;AAEH,eAAO,MAAM,gBAAgB,6IA8B3B,CAAC"}
@@ -1,165 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.templateNameProp = exports.segmentNamesProp = exports.listNamesProp = exports.campaignNameProp = exports.contactEmailProp = void 0;
4
- const tslib_1 = require("tslib");
5
- const pieces_common_1 = require("@activepieces/pieces-common");
6
- const pieces_framework_1 = require("@activepieces/pieces-framework");
7
- const auth_1 = require("../auth");
8
- const client_1 = require("./client");
9
- const constants_1 = require("./constants");
10
- exports.contactEmailProp = pieces_framework_1.Property.Dropdown({
11
- displayName: 'Contact Email',
12
- description: 'Select an existing contact by email address.',
13
- required: true,
14
- refreshers: [],
15
- auth: auth_1.elasticEmailAuth,
16
- options: (_a) => tslib_1.__awaiter(void 0, [_a], void 0, function* ({ auth }) {
17
- if (!auth) {
18
- return {
19
- disabled: true,
20
- placeholder: 'Connect your Elastic Email account first.',
21
- options: [],
22
- };
23
- }
24
- const contacts = yield (0, client_1.elasticEmailRequest)({
25
- apiKey: auth.secret_text,
26
- method: pieces_common_1.HttpMethod.GET,
27
- path: '/contacts',
28
- queryParams: { limit: String(constants_1.DEFAULT_LIMIT) },
29
- });
30
- return {
31
- disabled: false,
32
- options: (contacts !== null && contacts !== void 0 ? contacts : [])
33
- .filter((c) => c.Email)
34
- .map((c) => ({
35
- label: c.Email,
36
- value: c.Email,
37
- })),
38
- };
39
- }),
40
- });
41
- exports.campaignNameProp = pieces_framework_1.Property.Dropdown({
42
- displayName: 'Campaign',
43
- description: 'Select an existing campaign by name.',
44
- required: true,
45
- refreshers: [],
46
- auth: auth_1.elasticEmailAuth,
47
- options: (_a) => tslib_1.__awaiter(void 0, [_a], void 0, function* ({ auth }) {
48
- if (!auth) {
49
- return {
50
- disabled: true,
51
- placeholder: 'Connect your Elastic Email account first.',
52
- options: [],
53
- };
54
- }
55
- const campaigns = yield (0, client_1.elasticEmailRequest)({
56
- apiKey: auth.secret_text,
57
- method: pieces_common_1.HttpMethod.GET,
58
- path: '/campaigns',
59
- queryParams: { limit: String(constants_1.DEFAULT_LIMIT) },
60
- });
61
- return {
62
- disabled: false,
63
- options: (campaigns !== null && campaigns !== void 0 ? campaigns : [])
64
- .filter((c) => c.Name)
65
- .map((c) => ({
66
- label: c.Name,
67
- value: c.Name,
68
- })),
69
- };
70
- }),
71
- });
72
- exports.listNamesProp = pieces_framework_1.Property.MultiSelectDropdown({
73
- displayName: 'Mailing Lists',
74
- description: 'Select mailing lists.',
75
- required: false,
76
- refreshers: [],
77
- auth: auth_1.elasticEmailAuth,
78
- options: (_a) => tslib_1.__awaiter(void 0, [_a], void 0, function* ({ auth }) {
79
- if (!auth) {
80
- return {
81
- disabled: true,
82
- placeholder: 'Connect your Elastic Email account first.',
83
- options: [],
84
- };
85
- }
86
- const lists = yield (0, client_1.elasticEmailRequest)({
87
- apiKey: auth.secret_text,
88
- method: pieces_common_1.HttpMethod.GET,
89
- path: '/lists',
90
- queryParams: { limit: String(constants_1.DEFAULT_LIMIT) },
91
- });
92
- return {
93
- disabled: false,
94
- options: (lists !== null && lists !== void 0 ? lists : [])
95
- .filter((l) => l.ListName)
96
- .map((l) => ({
97
- label: l.ListName,
98
- value: l.ListName,
99
- })),
100
- };
101
- }),
102
- });
103
- exports.segmentNamesProp = pieces_framework_1.Property.MultiSelectDropdown({
104
- displayName: 'Segments',
105
- description: 'Select segments.',
106
- required: false,
107
- refreshers: [],
108
- auth: auth_1.elasticEmailAuth,
109
- options: (_a) => tslib_1.__awaiter(void 0, [_a], void 0, function* ({ auth }) {
110
- if (!auth) {
111
- return {
112
- disabled: true,
113
- placeholder: 'Connect your Elastic Email account first.',
114
- options: [],
115
- };
116
- }
117
- const segments = yield (0, client_1.elasticEmailRequest)({
118
- apiKey: auth.secret_text,
119
- method: pieces_common_1.HttpMethod.GET,
120
- path: '/segments',
121
- queryParams: { limit: String(constants_1.DEFAULT_LIMIT) },
122
- });
123
- return {
124
- disabled: false,
125
- options: (segments !== null && segments !== void 0 ? segments : [])
126
- .filter((s) => s.Name)
127
- .map((s) => ({
128
- label: s.Name,
129
- value: s.Name,
130
- })),
131
- };
132
- }),
133
- });
134
- exports.templateNameProp = pieces_framework_1.Property.Dropdown({
135
- displayName: 'Template',
136
- description: 'Select an email template.',
137
- required: false,
138
- refreshers: [],
139
- auth: auth_1.elasticEmailAuth,
140
- options: (_a) => tslib_1.__awaiter(void 0, [_a], void 0, function* ({ auth }) {
141
- if (!auth) {
142
- return {
143
- disabled: true,
144
- placeholder: 'Connect your Elastic Email account first.',
145
- options: [],
146
- };
147
- }
148
- const templates = yield (0, client_1.elasticEmailRequest)({
149
- apiKey: auth.secret_text,
150
- method: pieces_common_1.HttpMethod.GET,
151
- path: '/templates',
152
- queryParams: { limit: String(constants_1.DEFAULT_LIMIT), scopeType: 'Personal' },
153
- });
154
- return {
155
- disabled: false,
156
- options: (templates !== null && templates !== void 0 ? templates : [])
157
- .filter((t) => t.Name)
158
- .map((t) => ({
159
- label: t.Name,
160
- value: t.Name,
161
- })),
162
- };
163
- }),
164
- });
165
- //# sourceMappingURL=props.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"props.js","sourceRoot":"","sources":["../../../../src/lib/common/props.ts"],"names":[],"mappings":"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"}