@teleporthq/teleport-plugin-next-workflows 0.45.2 → 0.45.5
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.
- package/__tests__/analytics-outcome-visit-ids.test.ts +583 -0
- package/__tests__/analytics-track-outcome.test.ts +71 -3
- package/__tests__/auth-password-security.test.ts +101 -0
- package/__tests__/automations-bus.test.ts +439 -2
- package/__tests__/security-lists-parity.test.ts +2 -2
- package/__tests__/security-runtime.test.ts +37 -20
- package/dist/cjs/api-route-generator.d.ts +2 -0
- package/dist/cjs/api-route-generator.d.ts.map +1 -1
- package/dist/cjs/api-route-generator.js +43 -1
- package/dist/cjs/api-route-generator.js.map +1 -1
- package/dist/cjs/auth-generator.d.ts.map +1 -1
- package/dist/cjs/auth-generator.js +48 -19
- package/dist/cjs/auth-generator.js.map +1 -1
- package/dist/cjs/automations/dispatcher-source.d.ts.map +1 -1
- package/dist/cjs/automations/dispatcher-source.js +13 -5
- package/dist/cjs/automations/dispatcher-source.js.map +1 -1
- package/dist/cjs/automations/event-bus-source.d.ts.map +1 -1
- package/dist/cjs/automations/event-bus-source.js +37 -23
- package/dist/cjs/automations/event-bus-source.js.map +1 -1
- package/dist/cjs/executor-generator.d.ts.map +1 -1
- package/dist/cjs/executor-generator.js +4 -0
- package/dist/cjs/executor-generator.js.map +1 -1
- package/dist/cjs/nodes/account/account-request-password-reset.d.ts.map +1 -1
- package/dist/cjs/nodes/account/account-request-password-reset.js +3 -2
- package/dist/cjs/nodes/account/account-request-password-reset.js.map +1 -1
- package/dist/cjs/nodes/analytics/analytics-track-outcome.d.ts.map +1 -1
- package/dist/cjs/nodes/analytics/analytics-track-outcome.js +17 -4
- package/dist/cjs/nodes/analytics/analytics-track-outcome.js.map +1 -1
- package/dist/cjs/password-reset-route-generator.d.ts +2 -0
- package/dist/cjs/password-reset-route-generator.d.ts.map +1 -1
- package/dist/cjs/password-reset-route-generator.js +17 -10
- package/dist/cjs/password-reset-route-generator.js.map +1 -1
- package/dist/cjs/security-runtime/security-runtime-code.d.ts +3 -2
- package/dist/cjs/security-runtime/security-runtime-code.d.ts.map +1 -1
- package/dist/cjs/security-runtime/security-runtime-code.js +17 -13
- package/dist/cjs/security-runtime/security-runtime-code.js.map +1 -1
- package/dist/cjs/tsconfig.tsbuildinfo +1 -1
- package/dist/esm/api-route-generator.d.ts +2 -0
- package/dist/esm/api-route-generator.d.ts.map +1 -1
- package/dist/esm/api-route-generator.js +44 -2
- package/dist/esm/api-route-generator.js.map +1 -1
- package/dist/esm/auth-generator.d.ts.map +1 -1
- package/dist/esm/auth-generator.js +48 -19
- package/dist/esm/auth-generator.js.map +1 -1
- package/dist/esm/automations/dispatcher-source.d.ts.map +1 -1
- package/dist/esm/automations/dispatcher-source.js +13 -5
- package/dist/esm/automations/dispatcher-source.js.map +1 -1
- package/dist/esm/automations/event-bus-source.d.ts.map +1 -1
- package/dist/esm/automations/event-bus-source.js +37 -23
- package/dist/esm/automations/event-bus-source.js.map +1 -1
- package/dist/esm/executor-generator.d.ts.map +1 -1
- package/dist/esm/executor-generator.js +4 -0
- package/dist/esm/executor-generator.js.map +1 -1
- package/dist/esm/nodes/account/account-request-password-reset.d.ts.map +1 -1
- package/dist/esm/nodes/account/account-request-password-reset.js +3 -2
- package/dist/esm/nodes/account/account-request-password-reset.js.map +1 -1
- package/dist/esm/nodes/analytics/analytics-track-outcome.d.ts.map +1 -1
- package/dist/esm/nodes/analytics/analytics-track-outcome.js +17 -4
- package/dist/esm/nodes/analytics/analytics-track-outcome.js.map +1 -1
- package/dist/esm/password-reset-route-generator.d.ts +2 -0
- package/dist/esm/password-reset-route-generator.d.ts.map +1 -1
- package/dist/esm/password-reset-route-generator.js +16 -9
- package/dist/esm/password-reset-route-generator.js.map +1 -1
- package/dist/esm/security-runtime/security-runtime-code.d.ts +3 -2
- package/dist/esm/security-runtime/security-runtime-code.d.ts.map +1 -1
- package/dist/esm/security-runtime/security-runtime-code.js +17 -13
- package/dist/esm/security-runtime/security-runtime-code.js.map +1 -1
- package/dist/esm/tsconfig.tsbuildinfo +1 -1
- package/package.json +2 -2
- package/src/api-route-generator.ts +52 -2
- package/src/auth-generator.ts +48 -19
- package/src/automations/dispatcher-source.ts +13 -5
- package/src/automations/event-bus-source.ts +37 -23
- package/src/executor-generator.ts +4 -0
- package/src/nodes/account/account-request-password-reset.ts +3 -2
- package/src/nodes/analytics/analytics-track-outcome.ts +17 -4
- package/src/password-reset-route-generator.ts +18 -9
- package/src/security-runtime/security-runtime-code.ts +17 -13
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"dispatcher-source.d.ts","sourceRoot":"","sources":["../../../src/automations/dispatcher-source.ts"],"names":[],"mappings":"AA0CA,eAAO,MAAM,aAAa,gBAAiB,MAAM,KAAG,MAMqD,CAAA;AASzG;;;;GAIG;AACH,eAAO,MAAM,kBAAkB,eAAgB,MAAM,eAAe,MAAM,KAAG,MAKoB,CAAA;AAEjG;;;;GAIG;AACH,eAAO,MAAM,WAAW,gBAAiB,MAAM,KAAG,MAIqD,CAAA;AAkKvG;;;;;;;;;;;;GAYG;AACH,eAAO,MAAM,6BAA6B,QAM4E,CAAA;AAEtH;;;;;GAKG;AACH,eAAO,MAAM,gCAAgC,YAAa;IACxD,YAAY,EAAE,OAAO,MAAM,EAAE,MAAM,GAAG,IAAI,CAAC,CAAA;IAC3C,kBAAkB,EAAE,OAAO,MAAM,EAAE,MAAM,EAAE,GAAG,IAAI,CAAC,CAAA;IACnD,gBAAgB,EAAE,MAAM,EAAE,CAAA;CAC3B,KAAG,
|
|
1
|
+
{"version":3,"file":"dispatcher-source.d.ts","sourceRoot":"","sources":["../../../src/automations/dispatcher-source.ts"],"names":[],"mappings":"AA0CA,eAAO,MAAM,aAAa,gBAAiB,MAAM,KAAG,MAMqD,CAAA;AASzG;;;;GAIG;AACH,eAAO,MAAM,kBAAkB,eAAgB,MAAM,eAAe,MAAM,KAAG,MAKoB,CAAA;AAEjG;;;;GAIG;AACH,eAAO,MAAM,WAAW,gBAAiB,MAAM,KAAG,MAIqD,CAAA;AAkKvG;;;;;;;;;;;;GAYG;AACH,eAAO,MAAM,6BAA6B,QAM4E,CAAA;AAEtH;;;;;GAKG;AACH,eAAO,MAAM,gCAAgC,YAAa;IACxD,YAAY,EAAE,OAAO,MAAM,EAAE,MAAM,GAAG,IAAI,CAAC,CAAA;IAC3C,kBAAkB,EAAE,OAAO,MAAM,EAAE,MAAM,EAAE,GAAG,IAAI,CAAC,CAAA;IACnD,gBAAgB,EAAE,MAAM,EAAE,CAAA;CAC3B,KAAG,MAwkBH,CAAA;AAED;;;;;;;;;;;;;;;;;;;;;;;;GAwBG;AACH,eAAO,MAAM,mCAAmC,QAAO,MAqLtD,CAAA;AAED;;;;;GAKG;AACH,eAAO,MAAM,uCAAuC,WAAY,MAAM,KAAG,MAQxE,CAAA"}
|
|
@@ -295,6 +295,14 @@ function runStatus(error, value) {
|
|
|
295
295
|
return value && value.waiting === true ? 'waiting' : 'delivered';
|
|
296
296
|
}
|
|
297
297
|
|
|
298
|
+
// What a run leaves in its delivery's error column: its error, or, for a run
|
|
299
|
+
// that finished, the send steps that did not send. Its status says nothing of
|
|
300
|
+
// them: such a run is delivered, and is neither retried nor counted as failed.
|
|
301
|
+
function runNote(error, value) {
|
|
302
|
+
if (error) return store.errorMessage(error);
|
|
303
|
+
return value && value.sentNothing ? JSON.stringify({ sentNothing: value.sentNothing }) : null;
|
|
304
|
+
}
|
|
305
|
+
|
|
298
306
|
// Whether a guarded write found its row (the claim it names still held it).
|
|
299
307
|
function wrote(result) {
|
|
300
308
|
return !!result && result.rowCount > 0;
|
|
@@ -302,7 +310,7 @@ function wrote(result) {
|
|
|
302
310
|
|
|
303
311
|
function lateDeliveryWriter(delivery, testRun, resumePoint) {
|
|
304
312
|
return function (error, value) {
|
|
305
|
-
var message = error
|
|
313
|
+
var message = runNote(error, value);
|
|
306
314
|
var status = testRun ? 'test' : runStatus(error, value);
|
|
307
315
|
store.withClient(async function (client) {
|
|
308
316
|
var finished = await client.query(FINISH_DELIVERY_SQL, [delivery.id, status, message, delivery.attempts]);
|
|
@@ -320,7 +328,7 @@ function lateWaitWriter(wait, resumedAt) {
|
|
|
320
328
|
// Nothing is written once another dispatcher took the stale resume over:
|
|
321
329
|
// that run records the outcome.
|
|
322
330
|
store.withClient(function (client) {
|
|
323
|
-
return finishResume(client, wait, runStatus(error, value), error
|
|
331
|
+
return finishResume(client, wait, runStatus(error, value), runNote(error, value), resumedAt);
|
|
324
332
|
}).catch(function (writeError) {
|
|
325
333
|
console.error('[automations] could not record a late resume: ' + store.errorMessage(writeError));
|
|
326
334
|
});
|
|
@@ -558,7 +566,7 @@ async function deliverEvent(client, row, context) {
|
|
|
558
566
|
var error = ran.error ? store.errorMessage(ran.error) : null;
|
|
559
567
|
if (error) console.error('[automations] ' + entry.name + ' failed for event ' + row.id + ': ' + error);
|
|
560
568
|
// A run that stopped at a Wait is not finished: its delivery waits too.
|
|
561
|
-
var finished = await client.query(FINISH_DELIVERY_SQL, [delivery.id, runStatus(ran.error, ran.value), error, delivery.attempts]);
|
|
569
|
+
var finished = await client.query(FINISH_DELIVERY_SQL, [delivery.id, runStatus(ran.error, ran.value), runNote(ran.error, ran.value), delivery.attempts]);
|
|
562
570
|
if (resumePoint && !error && wrote(finished)) await client.query(SETTLE_FAILED_WAIT_SQL, [resumePoint.id]);
|
|
563
571
|
if (error) outcome.failed += 1;
|
|
564
572
|
else outcome.delivered += 1;
|
|
@@ -624,7 +632,7 @@ async function resumeWaits(client, context) {
|
|
|
624
632
|
wait,
|
|
625
633
|
eventRow,
|
|
626
634
|
runStatus(ran.error, ran.value),
|
|
627
|
-
ran.error
|
|
635
|
+
runNote(ran.error, ran.value),
|
|
628
636
|
resumedAt
|
|
629
637
|
);
|
|
630
638
|
}
|
|
@@ -768,7 +776,7 @@ async function runTest(input, options) {
|
|
|
768
776
|
}, timeoutMs, lateDeliveryWriter(delivery, true));
|
|
769
777
|
if (ran.timedOut) return totals;
|
|
770
778
|
var wouldWait = ran.value && ran.value.wouldWait ? ran.value.wouldWait : null;
|
|
771
|
-
var note =
|
|
779
|
+
var note = wouldWait ? JSON.stringify({ wouldWait: wouldWait }) : runNote(ran.error, ran.value);
|
|
772
780
|
await client.query(FINISH_DELIVERY_SQL, [delivery.id, 'test', note, delivery.attempts]);
|
|
773
781
|
if (ran.error) totals.failed = 1;
|
|
774
782
|
else totals.delivered = 1;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"dispatcher-source.js","sourceRoot":"","sources":["../../../src/automations/dispatcher-source.ts"],"names":[],"mappings":"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
|
|
1
|
+
{"version":3,"file":"dispatcher-source.js","sourceRoot":"","sources":["../../../src/automations/dispatcher-source.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"event-bus-source.d.ts","sourceRoot":"","sources":["../../../src/automations/event-bus-source.ts"],"names":[],"mappings":"AAcA,gGAAgG;AAChG,eAAO,MAAM,qBAAqB,iCAAiC,CAAA;AAEnE,iFAAiF;AACjF,eAAO,MAAM,gBAAgB,QAA4I,CAAA;AAEzK;;;;;;;;;GASG;AACH,eAAO,MAAM,2BAA2B,QAAO,
|
|
1
|
+
{"version":3,"file":"event-bus-source.d.ts","sourceRoot":"","sources":["../../../src/automations/event-bus-source.ts"],"names":[],"mappings":"AAcA,gGAAgG;AAChG,eAAO,MAAM,qBAAqB,iCAAiC,CAAA;AAEnE,iFAAiF;AACjF,eAAO,MAAM,gBAAgB,QAA4I,CAAA;AAEzK;;;;;;;;;GASG;AACH,eAAO,MAAM,2BAA2B,QAAO,MA4Q9C,CAAA;AAED;;;;;;GAMG;AACH,eAAO,MAAM,+BAA+B,QAAO,MAoBlD,CAAA;AAED;;;;;;;;;;;;;;;;;;GAkBG;AACH,eAAO,MAAM,8BAA8B,QAAO,MA6FjD,CAAA"}
|
|
@@ -86,10 +86,15 @@ async function saveWait(wait) {
|
|
|
86
86
|
|
|
87
87
|
// The signed requests the dispatch route has taken, each kept until its
|
|
88
88
|
// signature can no longer verify: the same request again is refused. The
|
|
89
|
-
//
|
|
90
|
-
//
|
|
91
|
-
//
|
|
89
|
+
// editor makes the table with the other automation tables, and a site's
|
|
90
|
+
// database role may read and write it without being allowed to create one
|
|
91
|
+
// (CREATE ... IF NOT EXISTS asks for that permission even when the table is
|
|
92
|
+
// there), so a create is attempted only for a table that really is missing,
|
|
93
|
+
// two instances taking turns under the lock. The rows that are over are
|
|
94
|
+
// deleted at most once per instance every SIGNED_REQUESTS_CLEANUP_MS, a
|
|
95
|
+
// bounded batch at a time.
|
|
92
96
|
var SIGNED_REQUESTS_TABLE = '${exports.SIGNED_REQUESTS_TABLE}';
|
|
97
|
+
var UNDEFINED_TABLE_CODE = '42P01';
|
|
93
98
|
var LOCK_SIGNED_REQUESTS_SQL = 'SELECT pg_advisory_xact_lock(hashtext($1))';
|
|
94
99
|
var CREATE_SIGNED_REQUESTS_SQL = 'CREATE TABLE IF NOT EXISTS ' + SIGNED_REQUESTS_TABLE +
|
|
95
100
|
' (request_key TEXT PRIMARY KEY, expires_at BIGINT NOT NULL)';
|
|
@@ -100,34 +105,43 @@ var FORGET_SIGNED_REQUESTS_SQL = 'DELETE FROM ' + SIGNED_REQUESTS_TABLE + ' WHER
|
|
|
100
105
|
var TAKE_SIGNED_REQUEST_SQL = 'INSERT INTO ' + SIGNED_REQUESTS_TABLE + ' (request_key, expires_at) VALUES ($1, $2) ' +
|
|
101
106
|
'ON CONFLICT (request_key) DO NOTHING RETURNING request_key';
|
|
102
107
|
var SIGNED_REQUESTS_CLEANUP_MS = 600000;
|
|
103
|
-
var __signedRequestsReady = false;
|
|
104
108
|
var __signedRequestsCleanedAt = 0;
|
|
105
109
|
|
|
110
|
+
async function createSignedRequestsTable(client) {
|
|
111
|
+
await client.query('BEGIN');
|
|
112
|
+
try {
|
|
113
|
+
await client.query(LOCK_SIGNED_REQUESTS_SQL, [SIGNED_REQUESTS_TABLE]);
|
|
114
|
+
await client.query(CREATE_SIGNED_REQUESTS_SQL);
|
|
115
|
+
await client.query(INDEX_SIGNED_REQUESTS_SQL);
|
|
116
|
+
await client.query('COMMIT');
|
|
117
|
+
} catch (error) {
|
|
118
|
+
try { await client.query('ROLLBACK'); } catch (_e) {}
|
|
119
|
+
throw new Error('[automations] the table ' + SIGNED_REQUESTS_TABLE + ' is missing and could not be created: ' + errorMessage(error));
|
|
120
|
+
}
|
|
121
|
+
}
|
|
122
|
+
|
|
123
|
+
async function recordSignedRequest(client, key, expiresAt) {
|
|
124
|
+
var nowMs = Date.now();
|
|
125
|
+
if (nowMs - __signedRequestsCleanedAt >= SIGNED_REQUESTS_CLEANUP_MS) {
|
|
126
|
+
__signedRequestsCleanedAt = nowMs;
|
|
127
|
+
await client.query(FORGET_SIGNED_REQUESTS_SQL, [Math.floor(nowMs / 1000)]);
|
|
128
|
+
}
|
|
129
|
+
var taken = await client.query(TAKE_SIGNED_REQUEST_SQL, [key, expiresAt]);
|
|
130
|
+
return !!(taken && taken.rows && taken.rows[0]);
|
|
131
|
+
}
|
|
132
|
+
|
|
106
133
|
// true the first time a signed request (its key) is taken, false every time
|
|
107
134
|
// after while it is kept (until expiresAt, unix seconds). Throws when the
|
|
108
135
|
// database cannot say: the route then refuses.
|
|
109
136
|
async function takeSignedRequest(key, expiresAt) {
|
|
110
137
|
return withClient(async function (client) {
|
|
111
|
-
|
|
112
|
-
await client
|
|
113
|
-
|
|
114
|
-
|
|
115
|
-
|
|
116
|
-
|
|
117
|
-
await client.query('COMMIT');
|
|
118
|
-
} catch (error) {
|
|
119
|
-
try { await client.query('ROLLBACK'); } catch (_e) {}
|
|
120
|
-
throw error;
|
|
121
|
-
}
|
|
122
|
-
__signedRequestsReady = true;
|
|
123
|
-
}
|
|
124
|
-
var nowMs = Date.now();
|
|
125
|
-
if (nowMs - __signedRequestsCleanedAt >= SIGNED_REQUESTS_CLEANUP_MS) {
|
|
126
|
-
__signedRequestsCleanedAt = nowMs;
|
|
127
|
-
await client.query(FORGET_SIGNED_REQUESTS_SQL, [Math.floor(nowMs / 1000)]);
|
|
138
|
+
try {
|
|
139
|
+
return await recordSignedRequest(client, key, expiresAt);
|
|
140
|
+
} catch (error) {
|
|
141
|
+
if (!error || error.code !== UNDEFINED_TABLE_CODE) throw error;
|
|
142
|
+
await createSignedRequestsTable(client);
|
|
143
|
+
return recordSignedRequest(client, key, expiresAt);
|
|
128
144
|
}
|
|
129
|
-
var taken = await client.query(TAKE_SIGNED_REQUEST_SQL, [key, expiresAt]);
|
|
130
|
-
return !!(taken && taken.rows && taken.rows[0]);
|
|
131
145
|
});
|
|
132
146
|
}
|
|
133
147
|
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"event-bus-source.js","sourceRoot":"","sources":["../../../src/automations/event-bus-source.ts"],"names":[],"mappings":";;;AAAA,sDAA4D;AAC5D,2DAA8D;AAC9D,4DAAkE;AAElE;;;;;GAKG;AAEH,MAAM,aAAa,GACjB,sFAAsF,CAAA;AAExF,gGAAgG;AACnF,QAAA,qBAAqB,GAAG,8BAA8B,CAAA;AAEnE,iFAAiF;AACpE,QAAA,gBAAgB,GAAG,gCAAgC,aAAa,4FAA4F,CAAA;AAEzK;;;;;;;;;GASG;AACI,MAAM,2BAA2B,GAAG,GAAW,EAAE,CAAC;;;;EAIvD,IAAA,yCAAwB,GAAE
|
|
1
|
+
{"version":3,"file":"event-bus-source.js","sourceRoot":"","sources":["../../../src/automations/event-bus-source.ts"],"names":[],"mappings":";;;AAAA,sDAA4D;AAC5D,2DAA8D;AAC9D,4DAAkE;AAElE;;;;;GAKG;AAEH,MAAM,aAAa,GACjB,sFAAsF,CAAA;AAExF,gGAAgG;AACnF,QAAA,qBAAqB,GAAG,8BAA8B,CAAA;AAEnE,iFAAiF;AACpE,QAAA,gBAAgB,GAAG,gCAAgC,aAAa,4FAA4F,CAAA;AAEzK;;;;;;;;;GASG;AACI,MAAM,2BAA2B,GAAG,GAAW,EAAE,CAAC;;;;EAIvD,IAAA,yCAAwB,GAAE;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;+BAgEG,6BAAqB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EA+HlD,IAAA,+CAA2B,GAAE;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CAyE9B,CAAA;AA5QY,QAAA,2BAA2B,+BA4QvC;AAED;;;;;;GAMG;AACI,MAAM,+BAA+B,GAAG,GAAW,EAAE,CAAC;;;;;;;;;;;;;;;;;;;;CAoB5D,CAAA;AApBY,QAAA,+BAA+B,mCAoB3C;AAED;;;;;;;;;;;;;;;;;;GAkBG;AACI,MAAM,8BAA8B,GAAG,GAAW,EAAE,CAAC;;;;;;;;;;;uBAWrC,4CAAwB;0BACrB,wBAAgB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CAiFzC,CAAA;AA7FY,QAAA,8BAA8B,kCA6F1C"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"executor-generator.d.ts","sourceRoot":"","sources":["../../src/executor-generator.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,iBAAiB,EAGlB,MAAM,gBAAgB,CAAA;AAYvB,MAAM,WAAW,yBAAyB;IACxC;;;;;OAKG;IACH,YAAY,CAAC,EAAE,iBAAiB,CAAA;CACjC;AAID,eAAO,MAAM,8BAA8B,aAAa,yBAAyB,KAAQ,
|
|
1
|
+
{"version":3,"file":"executor-generator.d.ts","sourceRoot":"","sources":["../../src/executor-generator.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,iBAAiB,EAGlB,MAAM,gBAAgB,CAAA;AAYvB,MAAM,WAAW,yBAAyB;IACxC;;;;;OAKG;IACH,YAAY,CAAC,EAAE,iBAAiB,CAAA;CACjC;AAID,eAAO,MAAM,8BAA8B,aAAa,yBAAyB,KAAQ,MAiyDxF,CAAA;AAED,eAAO,MAAM,yBAAyB,QAAO,MA0pB5C,CAAA"}
|
|
@@ -991,6 +991,9 @@ async function executeWorkflow(workflowConfig, triggerContext, nodeHandlers, opt
|
|
|
991
991
|
if (triggerContext && triggerContext.__dynamicRouteParam) {
|
|
992
992
|
context.__dynamicRouteParam = triggerContext.__dynamicRouteParam;
|
|
993
993
|
}
|
|
994
|
+
if (triggerContext && triggerContext.__tpa) {
|
|
995
|
+
context.__tpa = triggerContext.__tpa;
|
|
996
|
+
}
|
|
994
997
|
if (triggerContext && triggerContext.triggerElement) {
|
|
995
998
|
context.triggerElement = triggerContext.triggerElement;
|
|
996
999
|
}
|
|
@@ -2134,6 +2137,7 @@ function buildContext(workflowConfig, triggerContext) {
|
|
|
2134
2137
|
if (triggerContext.__stateValues) context.__stateValues = triggerContext.__stateValues;
|
|
2135
2138
|
if (triggerContext.__routeParams) context.__routeParams = triggerContext.__routeParams;
|
|
2136
2139
|
if (triggerContext.__dynamicRouteParam) context.__dynamicRouteParam = triggerContext.__dynamicRouteParam;
|
|
2140
|
+
if (triggerContext.__tpa) context.__tpa = triggerContext.__tpa;
|
|
2137
2141
|
if (triggerContext.triggerElement) context.triggerElement = triggerContext.triggerElement;
|
|
2138
2142
|
}
|
|
2139
2143
|
// See executeWorkflow: the page's language travels with the run.
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"executor-generator.js","sourceRoot":"","sources":["../../src/executor-generator.ts"],"names":[],"mappings":";;;AAAA,iDAIuB;AACvB,yFAA0F;AAC1F,uEAIwC;AACxC,qEAAoF;AACpF,2DAA8E;AAC9E,uEAAyE;AACzE,6DAAoE;AAYpE,MAAM,gBAAgB,GAAsB,EAAE,OAAO,EAAE,EAAE,EAAE,aAAa,EAAE,EAAE,EAAE,CAAA;AAEvE,MAAM,8BAA8B,GAAG,CAAC,UAAqC,EAAE,EAAU,EAAE;IAChG,OAAO;;;;;;;;;EASP,IAAA,6CAA8B,EAAC,OAAO,CAAC,YAAY,IAAI,gBAAgB,CAAC;EACxE,IAAA,gDAAiC,GAAE;EACnC,IAAA,4DAA+B,GAAE;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;WA0RxB,IAAA,mCAAgB,EAAC,OAAO,CAAC;;;;;;WAMzB,IAAA,oCAAiB,EAAC,OAAO,CAAC;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EAkInC,6CAAyB;;;;;;;;;;;;;0BAaD,uCAAmB,mDAAmD,uCAAmB;UACzG,uCAAmB,iCAAiC,uCAAmB
|
|
1
|
+
{"version":3,"file":"executor-generator.js","sourceRoot":"","sources":["../../src/executor-generator.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"account-request-password-reset.d.ts","sourceRoot":"","sources":["../../../../src/nodes/account/account-request-password-reset.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,oBAAoB,EAAmB,MAAM,UAAU,CAAA;
|
|
1
|
+
{"version":3,"file":"account-request-password-reset.d.ts","sourceRoot":"","sources":["../../../../src/nodes/account/account-request-password-reset.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,oBAAoB,EAAmB,MAAM,UAAU,CAAA;AAyChE,eAAO,MAAM,2BAA2B,EAAE,oBAMzC,CAAA"}
|
|
@@ -7,8 +7,9 @@ const types_1 = require("../types");
|
|
|
7
7
|
// server: whether the address has an account, the link's token (minted there,
|
|
8
8
|
// stored hashed), the page it opens and the email itself (provider, sender and
|
|
9
9
|
// template baked from this node's config at generation). The route answers the
|
|
10
|
-
// same whether the address has an account or not, so this node
|
|
11
|
-
//
|
|
10
|
+
// same whether the address has an account or not, so this node reports success
|
|
11
|
+
// for a well-formed request unless the site could not keep a link, for any
|
|
12
|
+
// address.
|
|
12
13
|
async function account_request_password_reset(config, context) {
|
|
13
14
|
const email = config && typeof config.email === 'string' ? config.email.trim() : '';
|
|
14
15
|
if (!email) {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"account-request-password-reset.js","sourceRoot":"","sources":["../../../../src/nodes/account/account-request-password-reset.ts"],"names":[],"mappings":";;;AAAA,oCAAgE;AAEhE,4EAA4E;AAC5E,wEAAwE;AACxE,8EAA8E;AAC9E,+EAA+E;AAC/E,+EAA+E;AAC/E,
|
|
1
|
+
{"version":3,"file":"account-request-password-reset.js","sourceRoot":"","sources":["../../../../src/nodes/account/account-request-password-reset.ts"],"names":[],"mappings":";;;AAAA,oCAAgE;AAEhE,4EAA4E;AAC5E,wEAAwE;AACxE,8EAA8E;AAC9E,+EAA+E;AAC/E,+EAA+E;AAC/E,+EAA+E;AAC/E,2EAA2E;AAC3E,WAAW;AACX,KAAK,UAAU,8BAA8B,CAAC,MAAW,EAAE,OAAgC;IACzF,MAAM,KAAK,GAAG,MAAM,IAAI,OAAO,MAAM,CAAC,KAAK,KAAK,QAAQ,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,IAAI,EAAE,CAAC,CAAC,CAAC,EAAE,CAAA;IACnF,IAAI,CAAC,KAAK,EAAE;QACV,MAAM,IAAI,KAAK,CAAC,mBAAmB,CAAC,CAAA;KACrC;IAED,MAAM,OAAO,GAAG,CAAC,OAAO,IAAK,OAAe,CAAC,SAAS,CAAC,IAAI,EAAE,CAAA;IAC7D,8DAA8D;IAC9D,MAAM,cAAc,GAAQ,EAAE,cAAc,EAAE,kBAAkB,EAAE,CAAA;IAClE,MAAM,SAAS,GAAG,OAAO,IAAK,OAAe,CAAC,QAAQ,CAAA;IACtD,IAAI,OAAO,SAAS,KAAK,QAAQ,IAAI,SAAS,EAAE;QAC9C,cAAc,CAAC,mBAAmB,CAAC,GAAG,SAAS,CAAA;KAChD;IACD,MAAM,QAAQ,GAAG,MAAM,KAAK,CAAC,OAAO,GAAG,2BAA2B,EAAE;QAClE,MAAM,EAAE,MAAM;QACd,OAAO,EAAE,cAAc;QACvB,IAAI,EAAE,IAAI,CAAC,SAAS,CAAC,EAAE,KAAK,EAAE,CAAC;KAChC,CAAC,CAAA;IAEF,IAAI,IAAI,GAAQ,EAAE,CAAA;IAClB,IAAI;QACF,IAAI,GAAG,MAAM,QAAQ,CAAC,IAAI,EAAE,CAAA;KAC7B;IAAC,OAAO,EAAE,EAAE,GAAE;IAEf,IAAI,CAAC,QAAQ,CAAC,EAAE,EAAE;QAChB,MAAM,IAAI,KAAK,CAAC,CAAC,IAAI,IAAI,IAAI,CAAC,KAAK,CAAC,IAAI,qDAAqD,CAAC,CAAA;KAC/F;IAED,OAAO,EAAE,OAAO,EAAE,IAAI,EAAE,OAAO,EAAE,CAAC,IAAI,IAAI,IAAI,CAAC,OAAO,CAAC,IAAI,EAAE,EAAE,CAAA;AACjE,CAAC;AAEY,QAAA,2BAA2B,GAAyB;IAC/D,QAAQ,EAAE,gCAAgC;IAC1C,YAAY,EAAE,QAAQ;IACtB,eAAe;QACb,OAAO,IAAA,uBAAe,EAAC,8BAA8B,CAAC,CAAA;IACxD,CAAC;CACF,CAAA"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"analytics-track-outcome.d.ts","sourceRoot":"","sources":["../../../../src/nodes/analytics/analytics-track-outcome.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,oBAAoB,EAAE,MAAM,UAAU,CAAA;
|
|
1
|
+
{"version":3,"file":"analytics-track-outcome.d.ts","sourceRoot":"","sources":["../../../../src/nodes/analytics/analytics-track-outcome.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,oBAAoB,EAAE,MAAM,UAAU,CAAA;AAkH/C,eAAO,MAAM,qBAAqB,EAAE,oBASnC,CAAA"}
|
|
@@ -15,6 +15,11 @@ exports.analyticsTrackOutcome = void 0;
|
|
|
15
15
|
* carries the ids the trigger stamped on the context (`__tpa`, set by every
|
|
16
16
|
* generated trigger) plus whatever first-touch snapshot the caller binds in
|
|
17
17
|
* `attribution` (the checkout stamps `utm_*`, `referrer_host`, `landing_path`).
|
|
18
|
+
* A snapshot naming a `session_id` is the visit that placed an order, read back
|
|
19
|
+
* by a run outside that visit (a payment webhook, a cron, an admin page): its
|
|
20
|
+
* `session_id`, `visitor_id` and `exp` stand in for the trigger's ids. Otherwise
|
|
21
|
+
* the visitor id is the tracker's alone: a browser may still hold a persistent
|
|
22
|
+
* id from before its consent was withdrawn.
|
|
18
23
|
*
|
|
19
24
|
* Never throws: an outcome that cannot be reported answers `{ sent: false }`
|
|
20
25
|
* and the workflow continues — analytics must never cost a sale.
|
|
@@ -59,22 +64,30 @@ const SERVER_BODY = `async function analytics_track_outcome(config, context) {
|
|
|
59
64
|
if (baseUrl.indexOf('http') !== 0 || !publicKey || !serverKey) {
|
|
60
65
|
return { sent: false, reason: 'not-configured' };
|
|
61
66
|
}
|
|
67
|
+
// The service dedupes on this id and drops an outcome without one.
|
|
68
|
+
if (config.outcomeId == null || config.outcomeId === '') {
|
|
69
|
+
return { sent: false, reason: 'no-outcome-id' };
|
|
70
|
+
}
|
|
62
71
|
var ids = context && context.__tpa && typeof context.__tpa === 'object' ? context.__tpa : {};
|
|
63
72
|
var attribution = config.attribution && typeof config.attribution === 'object' ? config.attribution : {};
|
|
73
|
+
var visit = attribution.session_id
|
|
74
|
+
? { sessionId: attribution.session_id, visitorId: attribution.visitor_id, exp: attribution.exp }
|
|
75
|
+
: ids;
|
|
64
76
|
var outcome = {
|
|
65
77
|
name: name,
|
|
66
78
|
value: config.value == null || config.value === '' ? null : Number(config.value),
|
|
67
79
|
currency: config.currency == null ? null : String(config.currency),
|
|
68
80
|
outcomeId: config.outcomeId == null ? null : String(config.outcomeId),
|
|
69
81
|
recordId: config.recordId == null ? null : String(config.recordId),
|
|
70
|
-
sessionId:
|
|
71
|
-
visitorId:
|
|
72
|
-
path:
|
|
73
|
-
exp:
|
|
82
|
+
sessionId: visit.sessionId || null,
|
|
83
|
+
visitorId: visit.visitorId || null,
|
|
84
|
+
path: visit.path || null,
|
|
85
|
+
exp: visit.exp || null,
|
|
74
86
|
attribution: {
|
|
75
87
|
utmSource: attribution.utm_source || attribution.utmSource || null,
|
|
76
88
|
utmMedium: attribution.utm_medium || attribution.utmMedium || null,
|
|
77
89
|
utmCampaign: attribution.utm_campaign || attribution.utmCampaign || null,
|
|
90
|
+
utmContent: attribution.utm_content || attribution.utmContent || null,
|
|
78
91
|
referrerHost: attribution.referrer_host || attribution.referrerHost || null,
|
|
79
92
|
landingPath: attribution.landing_path || attribution.landingPath || null
|
|
80
93
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"analytics-track-outcome.js","sourceRoot":"","sources":["../../../../src/nodes/analytics/analytics-track-outcome.ts"],"names":[],"mappings":";;;AAEA
|
|
1
|
+
{"version":3,"file":"analytics-track-outcome.js","sourceRoot":"","sources":["../../../../src/nodes/analytics/analytics-track-outcome.ts"],"names":[],"mappings":";;;AAEA;;;;;;;;;;;;;;;;;;;;;;GAsBG;AACH,MAAM,oBAAoB,GAAG,CAAC,UAAU,EAAE,cAAc,CAAC,CAAA;AAEzD,MAAM,WAAW,GAAG;;;;;QAKZ,IAAI,CAAC,SAAS,CAAC,oBAAoB,CAAC;;;;;;;;;;;;;;;;;;;;EAoB1C,CAAA;AAEF,MAAM,WAAW,GAAG;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EA0DlB,CAAA;AAEW,QAAA,qBAAqB,GAAyB;IACzD,QAAQ,EAAE,yBAAyB;IACnC,YAAY,EAAE,WAAW;IACzB,eAAe;QACb,OAAO,WAAW,CAAA;IACpB,CAAC;IACD,qBAAqB;QACnB,OAAO,WAAW,CAAA;IACpB,CAAC;CACF,CAAA"}
|
|
@@ -30,6 +30,8 @@ export declare const RESET_PASSWORD_VISITOR_LIMIT = 20;
|
|
|
30
30
|
export declare const DEFAULT_RESET_PAGE_PATH = "/reset-password";
|
|
31
31
|
/** The same answer for every well-formed request, whatever the address. */
|
|
32
32
|
export declare const FORGOT_PASSWORD_ANSWER = "If an account exists for that email, we sent it a link to reset the password.";
|
|
33
|
+
/** What the route answers, to every address, when a link could not be kept. */
|
|
34
|
+
export declare const FORGOT_PASSWORD_NOT_SENT = "We could not send the reset link. Please try again in a moment.";
|
|
33
35
|
/**
|
|
34
36
|
* The sessionStorage key the reset page reads the link's token from (mirrored
|
|
35
37
|
* in teleport-gui `RESET_TOKEN_STORAGE_KEY`). The published site's first head
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"password-reset-route-generator.d.ts","sourceRoot":"","sources":["../../src/password-reset-route-generator.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;GAkBG;AACH,OAAO,EAEL,sBAAsB,EACtB,WAAW,EACX,kBAAkB,EAClB,2BAA2B,EAC5B,MAAM,4BAA4B,CAAA;AAenC,eAAO,MAAM,0BAA0B,oBAAoB,CAAA;AAC3D,eAAO,MAAM,yBAAyB,mBAAmB,CAAA;AAEzD,4CAA4C;AAC5C,eAAO,MAAM,gCAAgC,OAAO,CAAA;AACpD,8FAA8F;AAC9F,eAAO,MAAM,+BAA+B,IAAI,CAAA;AAChD,eAAO,MAAM,6BAA6B,KAAK,CAAA;AAC/C,mEAAmE;AACnE,eAAO,MAAM,4BAA4B,KAAK,CAAA;AAE9C,eAAO,MAAM,uBAAuB,oBAAoB,CAAA;AAExD,2EAA2E;AAC3E,eAAO,MAAM,sBAAsB,kFAC8C,CAAA;AAEjF;;;;;;;GAOG;AACH,eAAO,MAAM,uBAAuB,mBAAmB,CAAA;AAEvD;;;;;;GAMG;AACH,eAAO,MAAM,mBAAmB,SAAU,WAAW,KAAG,OAUvD,CAAA;AAED,kFAAkF;AAClF,eAAO,MAAM,yBAAyB,SAAU,WAAW,KAAG,MAAM,EAOnE,CAAA;AAED;;;;GAIG;AACH,eAAO,MAAM,WAAW,SAChB,WAAW,KAChB;IAAE,aAAa,EAAE,MAAM,CAAC;IAAC,eAAe,EAAE,OAAO,CAAA;CAOnD,CAAA;AAED;;;;GAIG;AACH,eAAO,MAAM,kBAAkB,SACvB,WAAW,KAChB;IAAE,aAAa,EAAE,MAAM,CAAC;IAAC,SAAS,EAAE,MAAM,CAAC;IAAC,kBAAkB,EAAE,MAAM,CAAA;CAWxE,CAAA;AAED,MAAM,WAAW,0BAA0B;IACzC;;;;OAIG;IACH,eAAe,CAAC,EAAE,OAAO,CAAA;IACzB,gEAAgE;IAChE,aAAa,CAAC,EAAE,MAAM,CAAA;IACtB,mEAAmE;IACnE,aAAa,CAAC,EAAE,MAAM,GAAG,IAAI,CAAA;IAC7B,SAAS,CAAC,EAAE,MAAM,CAAA;IAClB,uDAAuD;IACvD,kBAAkB,CAAC,EAAE,MAAM,GAAG,IAAI,CAAA;IAClC,YAAY,CAAC,EAAE,MAAM,CAAA;IACrB,aAAa,CAAC,EAAE,MAAM,CAAA;IACtB,kBAAkB,CAAC,EAAE,2BAA2B,CAAA;IAChD,QAAQ,CAAC,EAAE,MAAM,CAAA;CAClB;AAED;;;;;GAKG;AACH,eAAO,MAAM,oBAAoB,UAAW,OAAO,KAAG,MAWrD,CAAA;AAED,eAAO,MAAM,mBAAmB,QAsB9B,CAAA;AAcF,eAAO,MAAM,2BAA2B,aAAa,0BAA0B,KAAQ,
|
|
1
|
+
{"version":3,"file":"password-reset-route-generator.d.ts","sourceRoot":"","sources":["../../src/password-reset-route-generator.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;GAkBG;AACH,OAAO,EAEL,sBAAsB,EACtB,WAAW,EACX,kBAAkB,EAClB,2BAA2B,EAC5B,MAAM,4BAA4B,CAAA;AAenC,eAAO,MAAM,0BAA0B,oBAAoB,CAAA;AAC3D,eAAO,MAAM,yBAAyB,mBAAmB,CAAA;AAEzD,4CAA4C;AAC5C,eAAO,MAAM,gCAAgC,OAAO,CAAA;AACpD,8FAA8F;AAC9F,eAAO,MAAM,+BAA+B,IAAI,CAAA;AAChD,eAAO,MAAM,6BAA6B,KAAK,CAAA;AAC/C,mEAAmE;AACnE,eAAO,MAAM,4BAA4B,KAAK,CAAA;AAE9C,eAAO,MAAM,uBAAuB,oBAAoB,CAAA;AAExD,2EAA2E;AAC3E,eAAO,MAAM,sBAAsB,kFAC8C,CAAA;AAEjF,+EAA+E;AAC/E,eAAO,MAAM,wBAAwB,oEAC8B,CAAA;AAEnE;;;;;;;GAOG;AACH,eAAO,MAAM,uBAAuB,mBAAmB,CAAA;AAEvD;;;;;;GAMG;AACH,eAAO,MAAM,mBAAmB,SAAU,WAAW,KAAG,OAUvD,CAAA;AAED,kFAAkF;AAClF,eAAO,MAAM,yBAAyB,SAAU,WAAW,KAAG,MAAM,EAOnE,CAAA;AAED;;;;GAIG;AACH,eAAO,MAAM,WAAW,SAChB,WAAW,KAChB;IAAE,aAAa,EAAE,MAAM,CAAC;IAAC,eAAe,EAAE,OAAO,CAAA;CAOnD,CAAA;AAED;;;;GAIG;AACH,eAAO,MAAM,kBAAkB,SACvB,WAAW,KAChB;IAAE,aAAa,EAAE,MAAM,CAAC;IAAC,SAAS,EAAE,MAAM,CAAC;IAAC,kBAAkB,EAAE,MAAM,CAAA;CAWxE,CAAA;AAED,MAAM,WAAW,0BAA0B;IACzC;;;;OAIG;IACH,eAAe,CAAC,EAAE,OAAO,CAAA;IACzB,gEAAgE;IAChE,aAAa,CAAC,EAAE,MAAM,CAAA;IACtB,mEAAmE;IACnE,aAAa,CAAC,EAAE,MAAM,GAAG,IAAI,CAAA;IAC7B,SAAS,CAAC,EAAE,MAAM,CAAA;IAClB,uDAAuD;IACvD,kBAAkB,CAAC,EAAE,MAAM,GAAG,IAAI,CAAA;IAClC,YAAY,CAAC,EAAE,MAAM,CAAA;IACrB,aAAa,CAAC,EAAE,MAAM,CAAA;IACtB,kBAAkB,CAAC,EAAE,2BAA2B,CAAA;IAChD,QAAQ,CAAC,EAAE,MAAM,CAAA;CAClB;AAED;;;;;GAKG;AACH,eAAO,MAAM,oBAAoB,UAAW,OAAO,KAAG,MAWrD,CAAA;AAED,eAAO,MAAM,mBAAmB,QAsB9B,CAAA;AAcF,eAAO,MAAM,2BAA2B,aAAa,0BAA0B,KAAQ,MAkKtF,CAAA;AAED,eAAO,MAAM,0BAA0B,QAAO,MAsD7C,CAAA;AAED,qFAAqF;AACrF,eAAO,MAAM,sBAAsB,uBAAuB,CAAA;AAE1D,6FAA6F;AAC7F,eAAO,MAAM,gCAAgC,mCAAmC,CAAA;AAEhF,mFAAmF;AACnF,eAAO,MAAM,0BAA0B;gBACZ,OAAO;kBAAgB,OAAO;aAC7C,MAAM,KACf,MAAM,OAAO,MAAM,EAAE,OAAO,CAAC,CAgB/B,CAAA;AAcD;;;;;;;;GAQG;AACH,eAAO,MAAM,qBAAqB,cACrB,sBAAsB,QAC3B,kBAAkB,KACvB,IAwDF,CAAA"}
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.emitPasswordAuthFiles = exports.collectWorkflowNodeConfigs = exports.REQUEST_PASSWORD_RESET_NODE_TYPE = exports.AUTH_PEPPER_SECRET_ENV = exports.generateResetPasswordRoute = exports.generateForgotPasswordRoute = exports.TRUSTED_ORIGIN_CODE = exports.resolveResetPagePath = exports.resetEmailSenderOf = exports.resetLinkOf = exports.resetTokenKeeperPagePaths = exports.readsKeptResetToken = exports.RESET_TOKEN_STORAGE_KEY = exports.FORGOT_PASSWORD_ANSWER = exports.DEFAULT_RESET_PAGE_PATH = exports.RESET_PASSWORD_VISITOR_LIMIT = exports.FORGOT_PASSWORD_VISITOR_LIMIT = exports.FORGOT_PASSWORD_RECIPIENT_LIMIT = exports.PASSWORD_RESET_TOKEN_TTL_SECONDS = exports.RESET_PASSWORD_ROUTE_NAME = exports.FORGOT_PASSWORD_ROUTE_NAME = void 0;
|
|
3
|
+
exports.emitPasswordAuthFiles = exports.collectWorkflowNodeConfigs = exports.REQUEST_PASSWORD_RESET_NODE_TYPE = exports.AUTH_PEPPER_SECRET_ENV = exports.generateResetPasswordRoute = exports.generateForgotPasswordRoute = exports.TRUSTED_ORIGIN_CODE = exports.resolveResetPagePath = exports.resetEmailSenderOf = exports.resetLinkOf = exports.resetTokenKeeperPagePaths = exports.readsKeptResetToken = exports.RESET_TOKEN_STORAGE_KEY = exports.FORGOT_PASSWORD_NOT_SENT = exports.FORGOT_PASSWORD_ANSWER = exports.DEFAULT_RESET_PAGE_PATH = exports.RESET_PASSWORD_VISITOR_LIMIT = exports.FORGOT_PASSWORD_VISITOR_LIMIT = exports.FORGOT_PASSWORD_RECIPIENT_LIMIT = exports.PASSWORD_RESET_TOKEN_TTL_SECONDS = exports.RESET_PASSWORD_ROUTE_NAME = exports.FORGOT_PASSWORD_ROUTE_NAME = void 0;
|
|
4
4
|
/**
|
|
5
5
|
* The password-reset routes every project with password sign-in gets:
|
|
6
6
|
* `pages/api/auth/forgot-password.js` and `pages/api/auth/reset-password.js`.
|
|
@@ -38,6 +38,8 @@ exports.RESET_PASSWORD_VISITOR_LIMIT = 20;
|
|
|
38
38
|
exports.DEFAULT_RESET_PAGE_PATH = '/reset-password';
|
|
39
39
|
/** The same answer for every well-formed request, whatever the address. */
|
|
40
40
|
exports.FORGOT_PASSWORD_ANSWER = 'If an account exists for that email, we sent it a link to reset the password.';
|
|
41
|
+
/** What the route answers, to every address, when a link could not be kept. */
|
|
42
|
+
exports.FORGOT_PASSWORD_NOT_SENT = 'We could not send the reset link. Please try again in a moment.';
|
|
41
43
|
/**
|
|
42
44
|
* The sessionStorage key the reset page reads the link's token from (mirrored
|
|
43
45
|
* in teleport-gui `RESET_TOKEN_STORAGE_KEY`). The published site's first head
|
|
@@ -281,7 +283,9 @@ module.exports = async function handler(req, res) {
|
|
|
281
283
|
return __security.sendClientError(res, 503, 'We could not reach the account service. Please try again in a moment.', err);
|
|
282
284
|
}
|
|
283
285
|
|
|
286
|
+
var link = null;
|
|
284
287
|
try {
|
|
288
|
+
await authUtils.ensurePasswordResetsUsable();
|
|
285
289
|
// Counted for every address, with an account or without, so neither the
|
|
286
290
|
// answer nor its timing differs.
|
|
287
291
|
var recipient = await __security.rateLimit({
|
|
@@ -293,17 +297,20 @@ module.exports = async function handler(req, res) {
|
|
|
293
297
|
if (user && userId != null && user.email && !recipient.allowed) {
|
|
294
298
|
console.warn('[forgot-password] reset link not sent: this address was sent ${exports.FORGOT_PASSWORD_RECIPIENT_LIMIT} in the last hour');
|
|
295
299
|
} else if (user && userId != null && user.email) {
|
|
296
|
-
|
|
297
|
-
|
|
298
|
-
|
|
299
|
-
var token = crypto.randomBytes(32).toString('hex');
|
|
300
|
-
await authUtils.storePasswordReset(userId, sha256(token), TOKEN_TTL_SECONDS);
|
|
301
|
-
var resetUrl = trustedOrigin(req) + RESET_PAGE_PATH + TOKEN_LINK_PREFIX + token;
|
|
302
|
-
await sendResetEmail(user, resetUrl, token, __emailLocale.resolveRequestLocale(req));
|
|
303
|
-
}
|
|
300
|
+
var token = crypto.randomBytes(32).toString('hex');
|
|
301
|
+
await authUtils.storePasswordReset(userId, sha256(token), TOKEN_TTL_SECONDS);
|
|
302
|
+
link = { token: token, url: trustedOrigin(req) + RESET_PAGE_PATH + TOKEN_LINK_PREFIX + token };
|
|
304
303
|
}
|
|
305
304
|
} catch (err) {
|
|
306
|
-
|
|
305
|
+
await waitUntilElapsed(startedAt, MIN_RESPONSE_MS);
|
|
306
|
+
return __security.sendClientError(res, 503, ${JSON.stringify(exports.FORGOT_PASSWORD_NOT_SENT)}, err);
|
|
307
|
+
}
|
|
308
|
+
if (link) {
|
|
309
|
+
try {
|
|
310
|
+
await sendResetEmail(user, link.url, link.token, __emailLocale.resolveRequestLocale(req));
|
|
311
|
+
} catch (err) {
|
|
312
|
+
console.error('[forgot-password] could not send a reset link:', err && err.message ? err.message : err);
|
|
313
|
+
}
|
|
307
314
|
}
|
|
308
315
|
|
|
309
316
|
await waitUntilElapsed(startedAt, MIN_RESPONSE_MS);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"password-reset-route-generator.js","sourceRoot":"","sources":["../../src/password-reset-route-generator.ts"],"names":[],"mappings":"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
|
|
1
|
+
{"version":3,"file":"password-reset-route-generator.js","sourceRoot":"","sources":["../../src/password-reset-route-generator.ts"],"names":[],"mappings":"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"}
|
|
@@ -32,8 +32,9 @@ export declare const securityRuntimeSpecifier: (relativePrefix: string) => strin
|
|
|
32
32
|
* itself, an IPv6 one its /64 (an IPv4 tail counted as the two groups it
|
|
33
33
|
* fills). Every rate limit keyed by visitor uses it.
|
|
34
34
|
* - `rateLimit` counts fixed windows in the app's Postgres database (table
|
|
35
|
-
* `teleport_rate_limits`,
|
|
36
|
-
*
|
|
35
|
+
* `teleport_rate_limits`, which the editor makes, created here under an
|
|
36
|
+
* advisory lock only when it is really missing), so every instance of a
|
|
37
|
+
* serverless app counts together. Only an app with no
|
|
37
38
|
* database (or no `pg` driver) counts in a bounded per-instance map; a
|
|
38
39
|
* database error counts in that map for a short while and is logged once.
|
|
39
40
|
* A request waits on the database at most 1.5 s; after a failure one
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"security-runtime-code.d.ts","sourceRoot":"","sources":["../../../src/security-runtime/security-runtime-code.ts"],"names":[],"mappings":"AAEA;;;GAGG;AACH,eAAO,MAAM,yBAAyB,qBAAqB,CAAA;AAC3D,eAAO,MAAM,qBAAqB,UAAY,CAAA;AAC9C,eAAO,MAAM,0BAA0B,qBAAqB,CAAA;AAC5D,eAAO,MAAM,iBAAiB,yBAAyB,CAAA;AAEvD,qEAAqE;AACrE,eAAO,MAAM,yBAAyB,wCAAwC,CAAA;AAE9E;;;;;GAKG;AACH,eAAO,MAAM,wBAAwB,mBAAoB,MAAM,KAAG,MACoB,CAAA;AAEtF
|
|
1
|
+
{"version":3,"file":"security-runtime-code.d.ts","sourceRoot":"","sources":["../../../src/security-runtime/security-runtime-code.ts"],"names":[],"mappings":"AAEA;;;GAGG;AACH,eAAO,MAAM,yBAAyB,qBAAqB,CAAA;AAC3D,eAAO,MAAM,qBAAqB,UAAY,CAAA;AAC9C,eAAO,MAAM,0BAA0B,qBAAqB,CAAA;AAC5D,eAAO,MAAM,iBAAiB,yBAAyB,CAAA;AAEvD,qEAAqE;AACrE,eAAO,MAAM,yBAAyB,wCAAwC,CAAA;AAE9E;;;;;GAKG;AACH,eAAO,MAAM,wBAAwB,mBAAoB,MAAM,KAAG,MACoB,CAAA;AAEtF;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAkCG;AACH,eAAO,MAAM,2BAA2B,QAAO,MA4gB9C,CAAA"}
|
|
@@ -37,8 +37,9 @@ exports.securityRuntimeSpecifier = securityRuntimeSpecifier;
|
|
|
37
37
|
* itself, an IPv6 one its /64 (an IPv4 tail counted as the two groups it
|
|
38
38
|
* fills). Every rate limit keyed by visitor uses it.
|
|
39
39
|
* - `rateLimit` counts fixed windows in the app's Postgres database (table
|
|
40
|
-
* `teleport_rate_limits`,
|
|
41
|
-
*
|
|
40
|
+
* `teleport_rate_limits`, which the editor makes, created here under an
|
|
41
|
+
* advisory lock only when it is really missing), so every instance of a
|
|
42
|
+
* serverless app counts together. Only an app with no
|
|
42
43
|
* database (or no `pg` driver) counts in a bounded per-instance map; a
|
|
43
44
|
* database error counts in that map for a short while and is logged once.
|
|
44
45
|
* A request waits on the database at most 1.5 s; after a failure one
|
|
@@ -101,6 +102,9 @@ var CLEANUP_MAX_BATCHES = 3;
|
|
|
101
102
|
var CLEANUP_QUERY_TIMEOUT_MS = 5000;
|
|
102
103
|
var MEMORY_MAX_WINDOWS = 10000;
|
|
103
104
|
|
|
105
|
+
// A site's database role may read and write its tables without being allowed
|
|
106
|
+
// to create one, and CREATE ... IF NOT EXISTS asks for that permission even when
|
|
107
|
+
// the table is there: these run only for a table that really is missing.
|
|
104
108
|
var CREATE_SQL = 'CREATE TABLE IF NOT EXISTS "' + RATE_LIMITS_TABLE + '" (' +
|
|
105
109
|
'"key" TEXT NOT NULL, "window_start" BIGINT NOT NULL, "count" INTEGER NOT NULL DEFAULT 0, ' +
|
|
106
110
|
'"expires_at" BIGINT NOT NULL, PRIMARY KEY ("key", "window_start"))';
|
|
@@ -297,7 +301,6 @@ function __memoryHit(storageKey, windowStart, windowSeconds, nowSec) {
|
|
|
297
301
|
return entry.count;
|
|
298
302
|
}
|
|
299
303
|
|
|
300
|
-
var __tableReady = false;
|
|
301
304
|
// Healthy, every request asks the database. After a failure, requests count in
|
|
302
305
|
// memory until __databaseRetryAt; then ONE request probes (it pushes the retry
|
|
303
306
|
// time back before it asks), so the requests beside it never wait on a
|
|
@@ -376,12 +379,15 @@ async function __databaseHit(storageKey, windowStart, expiresAt, nowSec) {
|
|
|
376
379
|
return within(client.query(sql, values || []), QUERY_TIMEOUT_MS);
|
|
377
380
|
};
|
|
378
381
|
var createTable = async function () {
|
|
379
|
-
|
|
380
|
-
|
|
381
|
-
|
|
382
|
-
|
|
383
|
-
|
|
384
|
-
|
|
382
|
+
try {
|
|
383
|
+
await run('BEGIN');
|
|
384
|
+
await run(LOCK_SQL, [RATE_LIMITS_TABLE]);
|
|
385
|
+
await run(CREATE_SQL);
|
|
386
|
+
await run(INDEX_SQL);
|
|
387
|
+
await run('COMMIT');
|
|
388
|
+
} catch (err) {
|
|
389
|
+
throw new Error('the table ' + RATE_LIMITS_TABLE + ' is missing and could not be created: ' + __errorText(err));
|
|
390
|
+
}
|
|
385
391
|
};
|
|
386
392
|
var hit = function () {
|
|
387
393
|
return run(HIT_SQL, [storageKey, windowStart, expiresAt]);
|
|
@@ -389,15 +395,13 @@ async function __databaseHit(storageKey, windowStart, expiresAt, nowSec) {
|
|
|
389
395
|
var handedToCleanup = false;
|
|
390
396
|
try {
|
|
391
397
|
await within(client.connect(), CONNECT_TIMEOUT_MS);
|
|
392
|
-
if (!__tableReady) await createTable();
|
|
393
398
|
var result;
|
|
394
399
|
try {
|
|
395
400
|
result = await hit();
|
|
396
401
|
} catch (err) {
|
|
397
|
-
// The table
|
|
398
|
-
// older backup): create it
|
|
402
|
+
// The table is not there (dropped, or the database restored from an
|
|
403
|
+
// older backup): create it and count this request in it.
|
|
399
404
|
if (!err || err.code !== '42P01') throw err;
|
|
400
|
-
__tableReady = false;
|
|
401
405
|
await createTable();
|
|
402
406
|
result = await hit();
|
|
403
407
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"security-runtime-code.js","sourceRoot":"","sources":["../../../src/security-runtime/security-runtime-code.ts"],"names":[],"mappings":";;;AAAA,sDAA4D;AAE5D;;;GAGG;AACU,QAAA,yBAAyB,GAAG,kBAAkB,CAAA;AAC9C,QAAA,qBAAqB,GAAG,CAAC,OAAO,CAAC,CAAA;AACjC,QAAA,0BAA0B,GAAG,kBAAkB,CAAA;AAC/C,QAAA,iBAAiB,GAAG,sBAAsB,CAAA;AAEvD,qEAAqE;AACxD,QAAA,yBAAyB,GAAG,qCAAqC,CAAA;AAE9E;;;;;GAKG;AACI,MAAM,wBAAwB,GAAG,CAAC,cAAsB,EAAU,EAAE,CACzE,GAAG,cAAc,IAAI,6BAAqB,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,kCAA0B,EAAE,CAAA;AADzE,QAAA,wBAAwB,4BACiD;AAEtF
|
|
1
|
+
{"version":3,"file":"security-runtime-code.js","sourceRoot":"","sources":["../../../src/security-runtime/security-runtime-code.ts"],"names":[],"mappings":";;;AAAA,sDAA4D;AAE5D;;;GAGG;AACU,QAAA,yBAAyB,GAAG,kBAAkB,CAAA;AAC9C,QAAA,qBAAqB,GAAG,CAAC,OAAO,CAAC,CAAA;AACjC,QAAA,0BAA0B,GAAG,kBAAkB,CAAA;AAC/C,QAAA,iBAAiB,GAAG,sBAAsB,CAAA;AAEvD,qEAAqE;AACxD,QAAA,yBAAyB,GAAG,qCAAqC,CAAA;AAE9E;;;;;GAKG;AACI,MAAM,wBAAwB,GAAG,CAAC,cAAsB,EAAU,EAAE,CACzE,GAAG,cAAc,IAAI,6BAAqB,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,kCAA0B,EAAE,CAAA;AADzE,QAAA,wBAAwB,4BACiD;AAEtF;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAkCG;AACI,MAAM,2BAA2B,GAAG,GAAW,EAAE,CAAC;;;;;;;;;;;;;;;;;;;;;;;;;;EA0BvD,IAAA,yCAAwB,GAAE;;2BAED,yBAAiB;2BACjB,iCAAyB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CA+enD,CAAA;AA5gBY,QAAA,2BAA2B,+BA4gBvC"}
|