@proca/cli 3.4.5 → 3.8.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 (132) hide show
  1. package/README.md +1991 -61
  2. package/package.json +88 -72
  3. package/proca-cli +8 -0
  4. package/src/commands/action/add.mjs +192 -0
  5. package/src/commands/action/confirm.mjs +93 -0
  6. package/src/commands/action/count.mjs +61 -0
  7. package/src/commands/action/list.mjs +204 -0
  8. package/src/commands/action/replay.mjs +56 -0
  9. package/src/commands/action/requeue.mjs +156 -0
  10. package/src/commands/campaign/add.mjs +113 -0
  11. package/src/commands/campaign/copy.mjs +91 -0
  12. package/src/commands/campaign/delete.mjs +41 -0
  13. package/src/commands/campaign/get.mjs +132 -0
  14. package/src/commands/campaign/list.mjs +161 -0
  15. package/src/commands/campaign/mtt.mjs +131 -0
  16. package/src/commands/campaign/queries.graphql +19 -0
  17. package/src/commands/campaign/status.mjs +63 -0
  18. package/src/commands/campaign/widget/archive.mjs +124 -0
  19. package/src/commands/campaign/widget/copy.mjs +175 -0
  20. package/src/commands/campaign/widget/get.mjs +19 -0
  21. package/src/commands/campaign/widget/index.mjs +17 -0
  22. package/src/commands/campaign/widget/rebuild.mjs +50 -0
  23. package/src/commands/config/add.mjs +97 -0
  24. package/src/commands/config/folder.mjs +42 -0
  25. package/src/commands/config/server.mjs +33 -0
  26. package/src/commands/config/set.mjs +103 -0
  27. package/src/commands/config/user.mjs +79 -0
  28. package/src/commands/contact/count.mjs +41 -0
  29. package/src/commands/contact/list.mjs +207 -0
  30. package/src/commands/org/add.mjs +75 -0
  31. package/src/commands/org/crm.mjs +88 -0
  32. package/src/commands/org/delete.mjs +48 -0
  33. package/src/commands/org/email.mjs +111 -0
  34. package/src/commands/org/get.mjs +152 -0
  35. package/src/commands/service/add.mjs +78 -0
  36. package/src/commands/service/list.mjs +24 -0
  37. package/src/commands/target/add.mjs +94 -0
  38. package/src/commands/template/add.mjs +97 -0
  39. package/src/commands/template/list.mjs +61 -0
  40. package/src/commands/user/get.mjs +91 -0
  41. package/src/commands/user/invite.mjs +56 -0
  42. package/src/commands/user/join.mjs +81 -0
  43. package/src/commands/user/leave.mjs +57 -0
  44. package/src/commands/user/list.mjs +80 -0
  45. package/src/commands/user/reset.mjs +83 -0
  46. package/src/commands/widget/add.mjs +116 -0
  47. package/src/commands/widget/delete.mjs +45 -0
  48. package/src/commands/widget/get.mjs +60 -0
  49. package/src/commands/widget/list.mjs +135 -0
  50. package/src/commands/widget/rebuild.mjs +64 -0
  51. package/src/commands/widget/update.mjs +174 -0
  52. package/src/config.mjs +49 -0
  53. package/src/generated/schema.json +10677 -0
  54. package/src/hooks/help.mjs +14 -0
  55. package/src/hooks/init.mjs +41 -0
  56. package/src/index.mjs +1 -0
  57. package/src/procaCommand.mjs +316 -0
  58. package/src/queries/campaign.mjs +35 -0
  59. package/src/queries/widget.mjs +25 -0
  60. package/src/urql.mjs +60 -0
  61. package/src/util/twitter.mjs +23 -0
  62. package/theme.json +29 -0
  63. package/bin/proca-cli +0 -4
  64. package/dist/browser.d.ts +0 -1
  65. package/dist/browser.js +0 -28
  66. package/dist/browser.js.map +0 -1
  67. package/dist/campaign.d.ts +0 -156
  68. package/dist/campaign.js +0 -192
  69. package/dist/campaign.js.map +0 -1
  70. package/dist/cli.d.ts +0 -40
  71. package/dist/cli.js +0 -416
  72. package/dist/cli.js.map +0 -1
  73. package/dist/client.d.ts +0 -2
  74. package/dist/client.js +0 -18
  75. package/dist/client.js.map +0 -1
  76. package/dist/config.d.ts +0 -35
  77. package/dist/config.js +0 -71
  78. package/dist/config.js.map +0 -1
  79. package/dist/crypto.d.ts +0 -40
  80. package/dist/crypto.js +0 -53
  81. package/dist/crypto.js.map +0 -1
  82. package/dist/export.d.ts +0 -15
  83. package/dist/export.js +0 -145
  84. package/dist/export.js.map +0 -1
  85. package/dist/format.d.ts +0 -37
  86. package/dist/format.js +0 -200
  87. package/dist/format.js.map +0 -1
  88. package/dist/index.d.ts +0 -8
  89. package/dist/index.js +0 -39
  90. package/dist/index.js.map +0 -1
  91. package/dist/keys.d.ts +0 -4
  92. package/dist/keys.js +0 -38
  93. package/dist/keys.js.map +0 -1
  94. package/dist/org.d.ts +0 -11
  95. package/dist/org.js +0 -97
  96. package/dist/org.js.map +0 -1
  97. package/dist/proca.d.ts +0 -2095
  98. package/dist/proca.js +0 -398
  99. package/dist/proca.js.map +0 -1
  100. package/dist/queue.d.ts +0 -8
  101. package/dist/queue.js +0 -126
  102. package/dist/queue.js.map +0 -1
  103. package/dist/queueMessage.d.ts +0 -102
  104. package/dist/queueMessage.js +0 -109
  105. package/dist/queueMessage.js.map +0 -1
  106. package/dist/service/actionnetwork.d.ts +0 -10
  107. package/dist/service/actionnetwork.js +0 -302
  108. package/dist/service/actionnetwork.js.map +0 -1
  109. package/dist/service/distance.d.ts +0 -3
  110. package/dist/service/distance.js +0 -96
  111. package/dist/service/distance.js.map +0 -1
  112. package/dist/service/echo.d.ts +0 -4
  113. package/dist/service/echo.js +0 -19
  114. package/dist/service/echo.js.map +0 -1
  115. package/dist/service/email.d.ts +0 -14
  116. package/dist/service/email.js +0 -67
  117. package/dist/service/email.js.map +0 -1
  118. package/dist/service/identity.d.ts +0 -58
  119. package/dist/service/identity.js +0 -190
  120. package/dist/service/identity.js.map +0 -1
  121. package/dist/service/index.d.ts +0 -14
  122. package/dist/service/index.js +0 -61
  123. package/dist/service/index.js.map +0 -1
  124. package/dist/setup.d.ts +0 -2
  125. package/dist/setup.js +0 -291
  126. package/dist/setup.js.map +0 -1
  127. package/dist/util.d.ts +0 -5
  128. package/dist/util.js +0 -30
  129. package/dist/util.js.map +0 -1
  130. package/dist/watch.d.ts +0 -9
  131. package/dist/watch.js +0 -80
  132. package/dist/watch.js.map +0 -1
@@ -1,302 +0,0 @@
1
- "use strict";
2
- var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
3
- function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
4
- return new (P || (P = Promise))(function (resolve, reject) {
5
- function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
6
- function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
7
- function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
8
- step((generator = generator.apply(thisArg, _arguments || [])).next());
9
- });
10
- };
11
- var __importDefault = (this && this.__importDefault) || function (mod) {
12
- return (mod && mod.__esModule) ? mod : { "default": mod };
13
- };
14
- Object.defineProperty(exports, "__esModule", { value: true });
15
- exports.client = exports.AUTH_HEADERS = exports.syncAction = exports.API_ENDPOINT = void 0;
16
- // Only import Types here
17
- // Import code below using require( ) because ketting is just a peer/plug-in dependency
18
- const ketting_1 = require("ketting");
19
- const util_1 = __importDefault(require("util"));
20
- exports.API_ENDPOINT = "https://actionnetwork.org/";
21
- const CACHE = { form: {} };
22
- function syncAction(action, serviceOpts, _config, msg) {
23
- var _a, _b;
24
- return __awaiter(this, void 0, void 0, function* () {
25
- try {
26
- let email = ((_a = action.contact.pii) === null || _a === void 0 ? void 0 : _a.email) || action.contact.email;
27
- if (action.privacy === null) {
28
- console.log("Action without contact", action.action.actionType);
29
- return;
30
- }
31
- const optIn = action.privacy.optIn;
32
- const campaignTitle = action.campaign.title;
33
- // check inputs
34
- if (!email)
35
- throw new Error("Action with no email");
36
- email = email.toLowerCase();
37
- if (!campaignTitle)
38
- throw new Error("Action with missing campaign title");
39
- if (!process.env.ACTIONNETWORK_APIKEY)
40
- throw new Error("ACTIONNETWORK_APIKEY is unset");
41
- const formTitle = campaignTitle + " " + action.actionPage.locale.split("_")[0].toUpperCase();
42
- console.log('Action for form ' + formTitle);
43
- const c = (0, exports.client)(process.env.ACTIONNETWORK_APIKEY);
44
- // fetch form for the campaign
45
- let form = CACHE.form[formTitle];
46
- if (!form) {
47
- form = yield getForm(c, { title: formTitle });
48
- if (!form)
49
- throw new Error("Cannot find form for campaign titled: " + formTitle);
50
- CACHE.form[formTitle] = form;
51
- }
52
- let newPersonData = actionToPerson(action);
53
- customizePersonAttrs(newPersonData);
54
- let person = yield getPerson(c, { email: email });
55
- let updatePerson = false;
56
- let personUri;
57
- if (person) { // person exists
58
- let personAttr = yield person.get();
59
- const personEmailIdx = personAttr.data.email_addresses.findIndex((ea) => ea.address.toLowerCase() === email);
60
- if (personEmailIdx >= 0) {
61
- const personEmail = personAttr.data.email_addresses[personEmailIdx];
62
- if (optIn && personEmail.status === "unsubscribed") {
63
- // set the email status to subscribed!
64
- personAttr.data.email_addresses[personEmailIdx].status = "subscribed";
65
- updatePerson = true;
66
- }
67
- }
68
- else {
69
- console.error("Weird, person record does not have email we've fetched it by", personAttr.data.email_addresses);
70
- }
71
- p(personAttr.data, "Existing person data");
72
- if (patchPerson(personAttr, newPersonData))
73
- updatePerson = true;
74
- if (updatePerson) { // Do the update now if it is necessary
75
- p(newPersonData, "Updating with these params");
76
- yield person.put(personAttr);
77
- }
78
- personUri = personAttr.uri;
79
- p(personUri, updatePerson ? "Updated person" : "Person exists");
80
- }
81
- else {
82
- const people = yield createPerson(c, newPersonData);
83
- personUri = (_b = people.links.get('self')) === null || _b === void 0 ? void 0 : _b.href;
84
- p(personUri, "Created person");
85
- }
86
- const submission = yield createSubmission(c, form, personUri, action, !msg.fields.redelivered);
87
- return submission.uri;
88
- }
89
- catch (err) {
90
- if (serviceOpts.sentry) {
91
- const Sentry = require("@sentry/node");
92
- Sentry.captureException(err);
93
- }
94
- if (err.response)
95
- console.error("Server responded:", yield err.response.text());
96
- throw err;
97
- }
98
- });
99
- }
100
- exports.syncAction = syncAction;
101
- const customizePersonAttrs = (attrs) => {
102
- switch (process.env.ACTIONNETWORK_CUSTOMIZE) {
103
- case 'greensefa': {
104
- const lang = attrs.languages_spoken[0];
105
- if (lang) {
106
- attrs.custom_fields || (attrs.custom_fields = {});
107
- attrs.custom_fields[`speaks_${lang}`] = "1";
108
- }
109
- break;
110
- }
111
- }
112
- };
113
- const p = (x, label = ">>>") => console.log(label, util_1.default.inspect(x, false, null, true));
114
- const AUTH_HEADERS = (token) => {
115
- return (request, next) => {
116
- request.headers.set('OSDI-API-token', token);
117
- request.headers.set('Content-Type', 'application/json');
118
- return next(request);
119
- };
120
- };
121
- exports.AUTH_HEADERS = AUTH_HEADERS;
122
- const client = (token) => {
123
- let ketting;
124
- try {
125
- ketting = require("ketting");
126
- }
127
- catch (e) {
128
- console.error("Install ketting package");
129
- throw e;
130
- }
131
- const client = new ketting.Client(exports.API_ENDPOINT);
132
- client.use((0, exports.AUTH_HEADERS)(token));
133
- return client;
134
- };
135
- exports.client = client;
136
- function uri(path, filter = {}) {
137
- let u = `/api/v2/${path}`;
138
- const fk = Object.keys(filter);
139
- if (fk.length > 0) {
140
- const fe = fk.map((field) => `${field} eq '${filter[field]}'`).join(' and ');
141
- u += '?filter=' + encodeURIComponent(fe);
142
- }
143
- return u;
144
- }
145
- /*
146
- Before adding a contact, we first lookup if a contact already exist with the same email.
147
-
148
- 1. If the contact doesn't exist (meaning, new contact), we set the status to subscribed/unsubscribed depending on the choice from the person. In our case, it's a checkbox in a form (opt in).
149
- 2. If the contact previously exist, and they have checked the opt in for this submit, we set it to "subscribed".
150
- 3. If the contact previously exist, and they haven't checked the opt in (thus, not consenting), we do not set status at all, and rely on any previous consent.
151
-
152
- create(subscribed == optIn)
153
-
154
- update(subscribed = subscribed || optIn)
155
-
156
- note:
157
- email statuses can be one of:
158
- ["subscribed", "unsubscribed", "bouncing", "previous bounce", "spam complaint", or "previous spam complaint"]
159
- phone statuses can be one of:
160
- ["subscribed", "unsubscribed", "bouncing", or "previous bounce"].
161
- For existing person, we want to change to "subscribed" only the "unsubsribed", not the "bouncing" and so on.
162
-
163
-
164
- */
165
- const actionToPerson = (action) => {
166
- if (Object.keys(action.contact.pii).length === 0)
167
- return undefined;
168
- const pii = action.contact.pii;
169
- const dEmail = (email) => ({
170
- primary: true,
171
- address: email,
172
- status: action.privacy.optIn ? "subscribed" : "unsubscribed"
173
- });
174
- const dPhone = (num) => ({
175
- primary: true,
176
- number: num,
177
- number_type: "mobile",
178
- status: action.privacy.optIn ? "subscribed" : "unsubscribed"
179
- });
180
- const dAddress = () => {
181
- const x = {
182
- primary: true,
183
- country: pii.country
184
- };
185
- if (pii.postode) {
186
- x['postal_code'] = pii.postcode;
187
- }
188
- return x;
189
- };
190
- const d = {
191
- given_name: pii.firstName,
192
- family_name: pii.lastName,
193
- identifiers: [
194
- "proca:" + action.contact.ref
195
- ],
196
- languages_spoken: [action.actionPage.locale.split("_")[0]],
197
- email_addresses: [dEmail(pii.email)]
198
- };
199
- if (pii.phone) {
200
- d['phone_numbers'] = [dPhone(pii.phone)];
201
- }
202
- if (pii.country) {
203
- d['postal_addresses'] = [dAddress()];
204
- }
205
- return d;
206
- };
207
- // patch an existing contact record
208
- const patchPerson = (personAttr, newPersonData) => {
209
- if (personAttr.data.given_name !== newPersonData.given_name ||
210
- personAttr.data.family_name !== newPersonData.family_name ||
211
- // personAttr.data.identifiers.indexOf(newPersonData.identifiers[0]) < 0 ||
212
- (newPersonData.postal_addresses && personAttr.data.postal_addresses.findIndex((pa) => pa.country === newPersonData.postal_addresses[0].country &&
213
- pa.postal_code === newPersonData.postal_addresses[0].postal_code) < 0) ||
214
- personAttr.data.languages_spoken[0] !== newPersonData.languages_spoken[0]) {
215
- personAttr.data.given_name = newPersonData.given_name;
216
- personAttr.data.family_name = newPersonData.family_name;
217
- // personAttr.data.identifiers = newPersonData.identifiers - i can't add a new identifier with PUT people/
218
- personAttr.data.postal_addresses = newPersonData.postal_addresses;
219
- personAttr.data.languages_spoken = newPersonData.languages_spoken;
220
- return true;
221
- }
222
- else {
223
- return false;
224
- }
225
- };
226
- const putAction = (client, action) => __awaiter(void 0, void 0, void 0, function* () {
227
- const campaignTitle = action.campaign.title;
228
- const forms = client.go(uri("forms", { "title": campaignTitle }));
229
- let form;
230
- try {
231
- form = yield forms.follow('osdi:forms'); //.follow("osdi:record_submissions_helper")
232
- }
233
- catch (e) {
234
- throw Error("Cannot find campaign with title " + campaignTitle + "; " + (e.response ? yield e.response.text() : "."));
235
- }
236
- let formState = yield form.get();
237
- const submissionUrl = formState.follow('osdi:submissions').uri;
238
- let submission = client.go(submissionUrl);
239
- try {
240
- const person = actionToPerson(action);
241
- person.tags = ['pizza'];
242
- const data = {
243
- identifiers: [`proca:${action.actionId}`],
244
- originating_system: "Proca.org",
245
- person: person
246
- };
247
- const r = yield submission.post({ data });
248
- }
249
- catch (e) {
250
- console.error(util_1.default.inspect(e));
251
- console.error(yield e.response.text());
252
- }
253
- });
254
- const createSubmission = (client, form, personUri, action, autoresponse = true) => __awaiter(void 0, void 0, void 0, function* () {
255
- var _a;
256
- const submissionUrl = form.uri + '/submissions';
257
- const submission = client.go(submissionUrl);
258
- const data = {
259
- "_links": {
260
- "osdi:person": { "href": personUri }
261
- },
262
- triggers: { autoresponse: { enabled: autoresponse } }
263
- };
264
- if ((_a = action.tracking) === null || _a === void 0 ? void 0 : _a.source) {
265
- const rd = {
266
- "source": action.tracking.source === "a/n" ? "unknown" : action.tracking.source
267
- };
268
- if (action.tracking.source === "referrer") {
269
- rd['website'] = action.tracking.campaign;
270
- }
271
- data["action_network:referrer_data"] = rd;
272
- }
273
- p(data, "submission.post to " + submission.uri + ", trigger email: " + autoresponse);
274
- return yield submission.post({ data });
275
- });
276
- const createPerson = (client, data) => __awaiter(void 0, void 0, void 0, function* () {
277
- const people = client.go(uri("people"));
278
- p(data, "create person");
279
- return yield people.post({ data });
280
- });
281
- const getPerson = (client, filter) => __awaiter(void 0, void 0, void 0, function* () {
282
- const people = client.go(uri("people", filter));
283
- const person = yield maybeNotFound(people.follow("osdi:people"));
284
- return person;
285
- });
286
- const getForm = (client, filter) => __awaiter(void 0, void 0, void 0, function* () {
287
- const forms = client.go(uri("forms", filter));
288
- const form = yield maybeNotFound(forms.follow('osdi:forms'));
289
- return form;
290
- });
291
- const maybeNotFound = (promise) => __awaiter(void 0, void 0, void 0, function* () {
292
- try {
293
- return yield promise;
294
- }
295
- catch (e) {
296
- if (e instanceof ketting_1.LinkNotFound) {
297
- return undefined;
298
- }
299
- throw e;
300
- }
301
- });
302
- //# sourceMappingURL=actionnetwork.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"actionnetwork.js","sourceRoot":"","sources":["../../src/service/actionnetwork.ts"],"names":[],"mappings":"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"}
@@ -1,3 +0,0 @@
1
- import { CliConfig } from '../config';
2
- import { ActionMessage } from '../queueMessage';
3
- export declare function syncAction(action: ActionMessage, _1: any, config: CliConfig): Promise<void>;
@@ -1,96 +0,0 @@
1
- "use strict";
2
- var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
3
- if (k2 === undefined) k2 = k;
4
- var desc = Object.getOwnPropertyDescriptor(m, k);
5
- if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
6
- desc = { enumerable: true, get: function() { return m[k]; } };
7
- }
8
- Object.defineProperty(o, k2, desc);
9
- }) : (function(o, m, k, k2) {
10
- if (k2 === undefined) k2 = k;
11
- o[k2] = m[k];
12
- }));
13
- var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
14
- Object.defineProperty(o, "default", { enumerable: true, value: v });
15
- }) : function(o, v) {
16
- o["default"] = v;
17
- });
18
- var __importStar = (this && this.__importStar) || function (mod) {
19
- if (mod && mod.__esModule) return mod;
20
- var result = {};
21
- if (mod != null) for (var k in mod) if (k !== "default" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);
22
- __setModuleDefault(result, mod);
23
- return result;
24
- };
25
- var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
26
- function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
27
- return new (P || (P = Promise))(function (resolve, reject) {
28
- function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
29
- function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
30
- function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
31
- step((generator = generator.apply(thisArg, _arguments || [])).next());
32
- });
33
- };
34
- var __importDefault = (this && this.__importDefault) || function (mod) {
35
- return (mod && mod.__esModule) ? mod : { "default": mod };
36
- };
37
- Object.defineProperty(exports, "__esModule", { value: true });
38
- exports.syncAction = void 0;
39
- const api_1 = require("@proca/api");
40
- const client_1 = __importDefault(require("../client"));
41
- const proca = __importStar(require("../proca"));
42
- const globals = {
43
- client: null,
44
- ap: {}
45
- };
46
- function syncAction(action, _1, config) {
47
- return __awaiter(this, void 0, void 0, function* () {
48
- if (!globals.client) {
49
- globals.client = (0, client_1.default)(config);
50
- }
51
- if (action.schema == 'proca:action:2') {
52
- let distance = action.action.customFields['distance'];
53
- if (typeof distance === "string")
54
- distance = Math.round(parseFloat(distance));
55
- if (typeof distance !== 'number') {
56
- console.error(`distance is not a number: ${distance}`);
57
- return;
58
- }
59
- let nd = 0;
60
- if (action.actionPageId in globals.ap) {
61
- nd = globals.ap[action.actionPageId] + distance;
62
- }
63
- else {
64
- // if there are multiple messages processed at the start, we are racing here
65
- const { data, error } = yield (0, api_1.request)(globals.client, proca.ActionPageExtraDocument, { id: action.actionPageId });
66
- if (error) {
67
- console.error(error);
68
- throw `Error ${error}`;
69
- }
70
- if ('extraSupporters' in data.actionPage) {
71
- // try to read again from AP cache, because we might loose a race
72
- const es = globals.ap[action.actionPageId] || data.actionPage.extraSupporters;
73
- nd = es + distance;
74
- }
75
- else {
76
- console.error("You must authenticate");
77
- }
78
- }
79
- globals.ap[action.actionPageId] = nd;
80
- const setOp = yield (0, api_1.request)(globals.client, proca.ActionPageSetExtraDocument, {
81
- id: action.actionPageId,
82
- extra: nd
83
- });
84
- if (setOp.error) {
85
- console.error(setOp.error);
86
- throw `Cannot update extraSupporters: ${setOp}`;
87
- }
88
- parseInt;
89
- }
90
- else {
91
- throw `I do not support action schema ${action.schema}`;
92
- }
93
- });
94
- }
95
- exports.syncAction = syncAction;
96
- //# sourceMappingURL=distance.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"distance.js","sourceRoot":"","sources":["../../src/service/distance.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA,oCAAwD;AAExD,uDAAiC;AAGjC,gDAAiC;AAGjC,MAAM,OAAO,GAAiD;IAC5D,MAAM,EAAE,IAAI;IACZ,EAAE,EAAE,EAAE;CACP,CAAA;AAGD,SAAsB,UAAU,CAAC,MAAsB,EAAE,EAAQ,EAAE,MAAkB;;QACnF,IAAI,CAAC,OAAO,CAAC,MAAM,EAAE;YACnB,OAAO,CAAC,MAAM,GAAG,IAAA,gBAAS,EAAC,MAAM,CAAC,CAAA;SACnC;QAGD,IAAI,MAAM,CAAC,MAAM,IAAI,gBAAgB,EAAE;YACrC,IAAI,QAAQ,GAAG,MAAM,CAAC,MAAM,CAAC,YAAY,CAAC,UAAU,CAAC,CAAA;YACrD,IAAI,OAAO,QAAQ,KAAK,QAAQ;gBAC9B,QAAQ,GAAG,IAAI,CAAC,KAAK,CAAC,UAAU,CAAC,QAAQ,CAAC,CAAC,CAAA;YAC7C,IAAI,OAAO,QAAQ,KAAK,QAAQ,EAAE;gBAChC,OAAO,CAAC,KAAK,CAAC,6BAA6B,QAAQ,EAAE,CAAC,CAAA;gBACtD,OAAO;aACR;YAED,IAAI,EAAE,GAAG,CAAC,CAAC;YACX,IAAI,MAAM,CAAC,YAAY,IAAI,OAAO,CAAC,EAAE,EAAE;gBACrC,EAAE,GAAG,OAAO,CAAC,EAAE,CAAC,MAAM,CAAC,YAAY,CAAC,GAAG,QAAQ,CAAA;aAChD;iBAAM;gBACL,4EAA4E;gBAC5E,MAAM,EAAC,IAAI,EAAE,KAAK,EAAC,GAAG,MAAM,IAAA,aAAO,EAAC,OAAO,CAAC,MAAM,EAAE,KAAK,CAAC,uBAAuB,EAAE,EAAC,EAAE,EAAE,MAAM,CAAC,YAAY,EAAC,CAAC,CAAA;gBAC7G,IAAI,KAAK,EAAE;oBACT,OAAO,CAAC,KAAK,CAAC,KAAK,CAAC,CAAA;oBACpB,MAAM,SAAS,KAAK,EAAE,CAAA;iBACvB;gBAED,IAAI,iBAAiB,IAAI,IAAI,CAAC,UAAU,EAAE;oBACxC,iEAAiE;oBACjE,MAAM,EAAE,GAAG,OAAO,CAAC,EAAE,CAAC,MAAM,CAAC,YAAY,CAAC,IAAI,IAAI,CAAC,UAAU,CAAC,eAAe,CAAA;oBAC7E,EAAE,GAAG,EAAE,GAAG,QAAQ,CAAA;iBACnB;qBAAM;oBACL,OAAO,CAAC,KAAK,CAAC,uBAAuB,CAAC,CAAA;iBACvC;aACF;YAED,OAAO,CAAC,EAAE,CAAC,MAAM,CAAC,YAAY,CAAC,GAAG,EAAE,CAAA;YAEpC,MAAM,KAAK,GAAG,MAAM,IAAA,aAAO,EAAC,OAAO,CAAC,MAAM,EAAE,KAAK,CAAC,0BAA0B,EAAE;gBAC5E,EAAE,EAAE,MAAM,CAAC,YAAY;gBACvB,KAAK,EAAE,EAAE;aACV,CAAC,CAAA;YAEF,IAAI,KAAK,CAAC,KAAK,EAAE;gBACf,OAAO,CAAC,KAAK,CAAC,KAAK,CAAC,KAAK,CAAC,CAAA;gBAC1B,MAAM,kCAAkC,KAAK,EAAE,CAAA;aAChD;YACL,QAAQ,CAAA;SACL;aAAM;YACL,MAAM,kCAAkC,MAAM,CAAC,MAAM,EAAE,CAAA;SACxD;IACH,CAAC;CAAA;AAlDD,gCAkDC"}
@@ -1,4 +0,0 @@
1
- import { ActionMessage } from '../queueMessage';
2
- import { CliConfig } from '../config';
3
- import { ServiceOpts } from '.';
4
- export declare function syncAction(action: ActionMessage, _1: ServiceOpts, _2: CliConfig): Promise<void>;
@@ -1,19 +0,0 @@
1
- "use strict";
2
- var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
3
- function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
4
- return new (P || (P = Promise))(function (resolve, reject) {
5
- function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
6
- function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
7
- function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
8
- step((generator = generator.apply(thisArg, _arguments || [])).next());
9
- });
10
- };
11
- Object.defineProperty(exports, "__esModule", { value: true });
12
- exports.syncAction = void 0;
13
- function syncAction(action, _1, _2) {
14
- return __awaiter(this, void 0, void 0, function* () {
15
- console.log(JSON.stringify(action, null, 2));
16
- });
17
- }
18
- exports.syncAction = syncAction;
19
- //# sourceMappingURL=echo.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"echo.js","sourceRoot":"","sources":["../../src/service/echo.ts"],"names":[],"mappings":";;;;;;;;;;;;AAIA,SAAsB,UAAU,CAAC,MAAsB,EAAE,EAAgB,EAAE,EAAc;;QACvF,OAAO,CAAC,GAAG,CAAC,IAAI,CAAC,SAAS,CAAC,MAAM,EAAE,IAAI,EAAE,CAAC,CAAC,CAAC,CAAA;IAC9C,CAAC;CAAA;AAFD,gCAEC"}
@@ -1,14 +0,0 @@
1
- import mailjet from "node-mailjet";
2
- import { ActionMessageV2 } from '../queueMessage';
3
- import { CliConfig } from '../config';
4
- import { ServiceOpts } from '.';
5
- export declare function syncAction(action: ActionMessageV2, _1: ServiceOpts, _2: CliConfig): Promise<mailjet.Email.Response>;
6
- export declare function connect(): mailjet.Email.Client;
7
- export declare function varsFromAction(action: ActionMessageV2): {
8
- first_name: string;
9
- email: string;
10
- ref: any;
11
- campaign_name: string;
12
- campaign_title: string;
13
- action_page_name: string;
14
- };
@@ -1,67 +0,0 @@
1
- "use strict";
2
- var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
3
- function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
4
- return new (P || (P = Promise))(function (resolve, reject) {
5
- function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
6
- function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
7
- function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
8
- step((generator = generator.apply(thisArg, _arguments || [])).next());
9
- });
10
- };
11
- var __importDefault = (this && this.__importDefault) || function (mod) {
12
- return (mod && mod.__esModule) ? mod : { "default": mod };
13
- };
14
- Object.defineProperty(exports, "__esModule", { value: true });
15
- exports.varsFromAction = exports.connect = exports.syncAction = void 0;
16
- const node_mailjet_1 = __importDefault(require("node-mailjet"));
17
- function syncAction(action, _1, _2) {
18
- return __awaiter(this, void 0, void 0, function* () {
19
- const conn = connect();
20
- const tmplId = process.env['MAILJET_TEMPLATE'] || action.actionPage.thankYouTemplateRef;
21
- if (!tmplId)
22
- throw new Error('No MAILJET_TEMPLATE set not thankYouTemplateRef on action page');
23
- const vars = varsFromAction(action);
24
- // console.log(vars)
25
- let res = yield conn.post("send").request({
26
- FromEmail: 'noreply@proca.app',
27
- FromName: 'Is this correct',
28
- 'Mj-TemplateID': tmplId,
29
- 'Mj-TemplateLanguage': true,
30
- Recipients: [{ 'Email': 'marcin@cahoots.pl', 'Vars': vars }]
31
- });
32
- return res;
33
- });
34
- }
35
- exports.syncAction = syncAction;
36
- function connect() {
37
- const mjKey = process.env['MAILJET_KEY'];
38
- const mjSec = process.env['MAILJET_SECRET'];
39
- if (!mjKey || !mjSec) {
40
- throw new Error('No MAILJET_KEY or MAILJET_SECRET set');
41
- }
42
- const conn = node_mailjet_1.default.connect(mjKey, mjSec);
43
- return conn;
44
- }
45
- exports.connect = connect;
46
- function varsFromAction(action) {
47
- let vars = {
48
- first_name: action.contact ? action.contact.firstName : null,
49
- email: action.contact ? action.contact.email : null,
50
- ref: action.contact ? action.contact.ref : null,
51
- campaign_name: action.campaign ? action.campaign.name : null,
52
- campaign_title: action.campaign ? action.campaign.title : null,
53
- action_page_name: action.actionPage ? action.actionPage.name : null,
54
- };
55
- if (action.tracking) {
56
- vars = Object.assign(vars, {
57
- utm_source: action.tracking.source,
58
- utm_medium: action.tracking.medium,
59
- utm_campaign: action.tracking.campaign,
60
- utm_content: action.tracking.content
61
- });
62
- }
63
- vars = Object.assign(vars, action.action.customFields);
64
- return vars;
65
- }
66
- exports.varsFromAction = varsFromAction;
67
- //# sourceMappingURL=email.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"email.js","sourceRoot":"","sources":["../../src/service/email.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;AACA,gEAAkC;AAKlC,SAAsB,UAAU,CAAC,MAAwB,EAAE,EAAe,EAAE,EAAc;;QACxF,MAAM,IAAI,GAAG,OAAO,EAAE,CAAA;QAEtB,MAAM,MAAM,GAAG,OAAO,CAAC,GAAG,CAAC,kBAAkB,CAAC,IAAI,MAAM,CAAC,UAAU,CAAC,mBAAmB,CAAA;QACvF,IAAI,CAAC,MAAM;YAAE,MAAM,IAAI,KAAK,CAAC,gEAAgE,CAAC,CAAA;QAE9F,MAAM,IAAI,GAAG,cAAc,CAAC,MAAM,CAAC,CAAA;QACnC,oBAAoB;QAEpB,IAAI,GAAG,GAAG,MAAM,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,OAAO,CAAC;YACxC,SAAS,EAAE,mBAAmB;YAC9B,QAAQ,EAAE,iBAAiB;YAC7B,eAAe,EAAE,MAAM;YACvB,qBAAqB,EAAE,IAAI;YACzB,UAAU,EAAE,CAAC,EAAC,OAAO,EAAE,mBAAmB,EAAE,MAAM,EAAE,IAAI,EAAC,CAAC;SAC3D,CAAC,CAAA;QAEF,OAAO,GAAG,CAAA;IACZ,CAAC;CAAA;AAlBD,gCAkBC;AAED,SAAgB,OAAO;IACrB,MAAM,KAAK,GAAG,OAAO,CAAC,GAAG,CAAC,aAAa,CAAC,CAAA;IACxC,MAAM,KAAK,GAAG,OAAO,CAAC,GAAG,CAAC,gBAAgB,CAAC,CAAA;IAC3C,IAAI,CAAC,KAAK,IAAI,CAAC,KAAK,EAAE;QACpB,MAAM,IAAI,KAAK,CAAC,sCAAsC,CAAC,CAAA;KACxD;IACD,MAAM,IAAI,GAAG,sBAAO,CAAC,OAAO,CAAC,KAAK,EAAE,KAAK,CAAC,CAAA;IAC1C,OAAO,IAAI,CAAA;AACb,CAAC;AARD,0BAQC;AAED,SAAgB,cAAc,CAAC,MAAwB;IACrD,IAAI,IAAI,GAAG;QACT,UAAU,EAAE,MAAM,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,OAAO,CAAC,SAAS,CAAC,CAAC,CAAC,IAAI;QAC5D,KAAK,EAAE,MAAM,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC,CAAC,IAAI;QACnD,GAAG,EAAE,MAAM,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC,CAAC,IAAI;QAC/C,aAAa,EAAE,MAAM,CAAC,QAAQ,CAAC,CAAC,CAAC,MAAM,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC,CAAC,IAAI;QAC5D,cAAc,EAAE,MAAM,CAAC,QAAQ,CAAC,CAAC,CAAC,MAAM,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC,CAAC,IAAI;QAC9D,gBAAgB,EAAE,MAAM,CAAC,UAAU,CAAC,CAAC,CAAC,MAAM,CAAC,UAAU,CAAC,IAAI,CAAC,CAAC,CAAC,IAAI;KACpE,CAAA;IAED,IAAI,MAAM,CAAC,QAAQ,EAAE;QACnB,IAAI,GAAG,MAAM,CAAC,MAAM,CAAC,IAAI,EAAE;YACzB,UAAU,EAAE,MAAM,CAAC,QAAQ,CAAC,MAAM;YAClC,UAAU,EAAE,MAAM,CAAC,QAAQ,CAAC,MAAM;YAClC,YAAY,EAAE,MAAM,CAAC,QAAQ,CAAC,QAAQ;YACtC,WAAW,EAAE,MAAM,CAAC,QAAQ,CAAC,OAAO;SACrC,CAAC,CAAA;KACH;IAED,IAAI,GAAG,MAAM,CAAC,MAAM,CAAC,IAAI,EAAE,MAAM,CAAC,MAAM,CAAC,YAAY,CAAC,CAAA;IAEtD,OAAO,IAAI,CAAA;AACb,CAAC;AAtBD,wCAsBC"}
@@ -1,58 +0,0 @@
1
- import { ActionMessageV2 } from '../queueMessage';
2
- import { CliConfig } from '../config';
3
- import { ServiceOpts } from '.';
4
- type ConsentConfig = {
5
- [key: string]: Consent;
6
- };
7
- type Consent = {
8
- level: "communication" | "double_opt_in" | "none_given" | "implicit" | "explicit_not_opt_out" | "explicit_opt_in";
9
- locale?: string;
10
- };
11
- export declare function syncAction(action: ActionMessageV2, argv: ServiceOpts, config: CliConfig): Promise<string | false | {
12
- [key: string]: any;
13
- [key: number]: any;
14
- }>;
15
- type DataApiCustomField = {
16
- name: string;
17
- value: string;
18
- };
19
- type DataApiSource = {
20
- source: string;
21
- medium: string;
22
- campaign: string;
23
- };
24
- export declare function toDataApi(action: ActionMessageV2, consent_map: ConsentConfig, action_fields: string[], contact_fields: string[]): {
25
- api_token: string;
26
- metadata: Record<string, string>;
27
- source: DataApiSource;
28
- action_type: string;
29
- action_technical_type: string;
30
- create_dt: string;
31
- action_name: string;
32
- action_public_name: string;
33
- language: string;
34
- external_id: number;
35
- consents: {
36
- public_id: string;
37
- consent_level: string;
38
- }[];
39
- cons_hash: {
40
- firstname: string;
41
- lastname: any;
42
- emails: {
43
- email: string;
44
- }[];
45
- custom_fields: DataApiCustomField[];
46
- addresses: {
47
- postcode: any;
48
- country: any;
49
- town: any;
50
- state: any;
51
- }[];
52
- };
53
- };
54
- export declare function toConsent(action: ActionMessageV2, consent_id: string, consent: Consent): {
55
- public_id: string;
56
- consent_level: string;
57
- };
58
- export {};