@dbx-tools/tunnel 0.6.63 → 0.6.64

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/README.md CHANGED
@@ -42,8 +42,9 @@ gating middleware on the app's OWN Express server (no separate proxy process).
42
42
  snippet - nothing else - so a code that lives only in the body is unreachable
43
43
  however cleanly the body is shaped. See
44
44
  [Why the code is in the subject](#why-the-code-is-in-the-subject).
45
- - The two MIME parts are built separately, on purpose. The HTML part is the full
46
- branded template with the code as a large styled heading; the `text/plain` part
45
+ - The two MIME parts are built separately, on purpose. The HTML card uses the
46
+ configured subject template as its neutral title and shows the code once as a
47
+ large styled body heading; the `text/plain` part
47
48
  is authored directly, keeping the prompt and the code on ONE line
48
49
  (`Your verification code is: 123456`) because that is the shape client code
49
50
  detection reads most reliably. A generated text part cannot hold it - the text
@@ -231,10 +232,10 @@ So the code goes in both strings a notification actually shows:
231
232
  in the notification body, repeating the prompt with the code
232
233
  (`Your verification code is: 123456`).
233
234
 
234
- The body keeps the code as a large styled heading regardless, for a recipient
235
- reading the mail rather than a notification. This is deliberately NOT Apple's
236
- domain-bound `@domain #code` trailer, which binds a code to a single origin;
237
- subject + preheader works across clients and needs no origin.
235
+ The opened card keeps the configured subject template as a code-free title and
236
+ shows the code once as a large styled body heading. This is deliberately NOT
237
+ Apple's domain-bound `@domain #code` trailer, which binds a code to a single
238
+ origin; subject + preheader works across clients and needs no origin.
238
239
 
239
240
  ### Signing everyone out
240
241
 
@@ -63,6 +63,10 @@ function sendEmailWith(transport, to, code, opts, from) {
63
63
  to: [to],
64
64
  subject: codeEmailSubject(code, opts.subject),
65
65
  body: codeEmailHtmlBody(code, opts),
66
- }, from, undefined, { text: codeEmailTextBody(code, opts), preview: codeEmailPreview(code, opts) });
66
+ }, from, undefined, {
67
+ heading: opts.subject,
68
+ text: codeEmailTextBody(code, opts),
69
+ preview: codeEmailPreview(code, opts),
70
+ });
67
71
  }
68
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2VuZC1jb2RlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vc3JjL3NlbmQtY29kZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQTs7Ozs7Ozs7Ozs7O0dBWUc7QUFFSCxPQUFPLEVBQUUsR0FBRyxFQUFFLE1BQU0sd0JBQXdCLENBQUM7QUFDN0MsT0FBTyxFQUNMLGlCQUFpQixFQUNqQixnQkFBZ0IsRUFDaEIsZ0JBQWdCLEVBQ2hCLGlCQUFpQixHQUNsQixNQUFNLGlCQUFpQixDQUFDO0FBR3pCLE1BQU0sTUFBTSxHQUFHLEdBQUcsQ0FBQyxNQUFNLENBQUMsa0JBQWtCLENBQUMsQ0FBQztBQWdCOUMsSUFBSSxNQUErQixDQUFDO0FBRXBDOzs7O0dBSUc7QUFDSCxLQUFLLFVBQVUsU0FBUztJQUN0QixJQUFJLE1BQU07UUFBRSxPQUFPLE1BQU0sQ0FBQztJQUMxQixJQUFJLENBQUM7UUFDSCxNQUFNLEdBQUcsR0FBRyxDQUFDLE1BQU0sTUFBTSxDQUFDLGtCQUFrQixDQUFDLENBQTJCLENBQUM7UUFDekUsTUFBTSxHQUFHLEdBQUcsQ0FBQztRQUNiLE9BQU8sR0FBRyxDQUFDO0lBQ2IsQ0FBQztJQUFDLE9BQU8sS0FBSyxFQUFFLENBQUM7UUFDZixNQUFNLElBQUksS0FBSyxDQUNiLDhFQUE4RTtZQUM1RSw0RkFBNEYsRUFDOUYsRUFBRSxLQUFLLEVBQUUsQ0FDVixDQUFDO0lBQ0osQ0FBQztBQUNILENBQUM7QUFFRDs7Ozs7O0dBTUc7QUFDSCxNQUFNLENBQUMsS0FBSyxVQUFVLG9CQUFvQjtJQUN4QyxNQUFNLEVBQUUsU0FBUyxFQUFFLEdBQUcsTUFBTSxTQUFTLEVBQUUsQ0FBQztJQUN4QyxJQUFJLFNBQVMsQ0FBQyxlQUFlLEVBQUUsQ0FBQyxNQUFNLENBQUMsSUFBSSxLQUFLLE1BQU0sRUFBRSxDQUFDO1FBQ3ZELE1BQU0sSUFBSSxLQUFLLENBQ2IsOEVBQThFO1lBQzVFLG1GQUFtRixDQUN0RixDQUFDO0lBQ0osQ0FBQztBQUNILENBQUM7QUFFRDs7OztHQUlHO0FBQ0gsTUFBTSxDQUFDLE1BQU0sUUFBUSxHQUE0QyxLQUFLLEVBQ3BFLEVBQVUsRUFDVixJQUFZLEVBQ1osSUFBcUIsRUFDTixFQUFFO0lBQ2pCLE1BQU0sRUFBRSxNQUFNLEVBQUUsU0FBUyxFQUFFLEdBQUcsTUFBTSxTQUFTLEVBQUUsQ0FBQztJQUNoRCxNQUFNLElBQUksR0FBRyxNQUFNLENBQUMsMEJBQTBCLENBQUMsU0FBUyxDQUFDLGVBQWUsRUFBRSxDQUFDLE1BQU0sQ0FBQyxDQUFDO0lBQ25GLE1BQU0sYUFBYSxDQUFDLFNBQVMsRUFBRSxFQUFFLEVBQUUsSUFBSSxFQUFFLElBQUksRUFBRSxJQUFJLENBQUMsQ0FBQztBQUN2RCxDQUFDLENBQUM7QUFFRixTQUFTLGFBQWEsQ0FDcEIsU0FBbUMsRUFDbkMsRUFBVSxFQUNWLElBQVksRUFDWixJQUFxQixFQUNyQixJQUFZO0lBRVosTUFBTSxDQUFDLEtBQUssQ0FBQyxvQkFBb0IsRUFBRSxFQUFFLEVBQUUsRUFBRSxDQUFDLENBQUM7SUFDM0MsT0FBTyxTQUFTLENBQUMsU0FBUyxDQUN4QjtRQUNFLEVBQUUsRUFBRSxDQUFDLEVBQUUsQ0FBQztRQUNSLE9BQU8sRUFBRSxnQkFBZ0IsQ0FBQyxJQUFJLEVBQUUsSUFBSSxDQUFDLE9BQU8sQ0FBQztRQUM3QyxJQUFJLEVBQUUsaUJBQWlCLENBQUMsSUFBSSxFQUFFLElBQUksQ0FBQztLQUNwQyxFQUNELElBQUksRUFDSixTQUFTLEVBQ1QsRUFBRSxJQUFJLEVBQUUsaUJBQWlCLENBQUMsSUFBSSxFQUFFLElBQUksQ0FBQyxFQUFFLE9BQU8sRUFBRSxnQkFBZ0IsQ0FBQyxJQUFJLEVBQUUsSUFBSSxDQUFDLEVBQUUsQ0FDL0UsQ0FBQztBQUNKLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyIvKipcbiAqIFRoZSBkZWZhdWx0IGBzZW5kQ29kZWAgZm9yIHRoZSB7QGxpbmsgQXV0aEdhdGVQbHVnaW59OiBkZWxpdmVyIHRoZSBPVFAgdGhyb3VnaFxuICogdGhlIGhvc3QgYXBwJ3MgQUxSRUFEWS1QUklNRUQgYEBkYngtdG9vbHMvZW1haWxgIHRyYW5zcG9ydCwgYXMgdGhlIHN5c3RlbVxuICogc2VuZGVyIChhIHZlcmlmaWNhdGlvbiBjb2RlIGlzIG1hY2hpbmUtZ2VuZXJhdGVkIGFuZCB1bmFuc3dlcmFibGUsIHNvIGl0IG11c3RcbiAqIG5vdCBhcnJpdmUgZnJvbSBhIHBlcnNvbidzIGFkZHJlc3MgaW52aXRpbmcgYSByZXBseSkuXG4gKlxuICogYEBkYngtdG9vbHMvZW1haWxgIGlzIGFuIE9QVElPTkFMIGRlcGVuZGVuY3kgb2YgdGhlIHR1bm5lbCAtIGEgdHVubmVsIHVzZWRcbiAqIHdpdGhvdXQgdGhlIGdhdGUgbmVlZHMgbm8gbWFpbC4gU28gaXQgaXMgaW1wb3J0ZWQgTEFaSUxZIGhlcmU7IGEgbWlzc2luZyBtb2R1bGVcbiAqIHN1cmZhY2VzIG9ubHkgd2hlbiBhIGdhdGUgYWN0dWFsbHkgdHJpZXMgdG8gc2VuZCBhIGNvZGUsIGFuZFxuICoge0BsaW5rIGVuc3VyZUVtYWlsQXZhaWxhYmxlfSB0dXJucyB0aGF0IGludG8gYSBjbGVhciBmYWlsLWZhc3QgYXQgYm9vdC5cbiAqXG4gKiBAbW9kdWxlXG4gKi9cblxuaW1wb3J0IHsgbG9nIH0gZnJvbSBcIkBkYngtdG9vbHMvc2hhcmVkLWNvcmVcIjtcbmltcG9ydCB7XG4gIGNvZGVFbWFpbEh0bWxCb2R5LFxuICBjb2RlRW1haWxQcmV2aWV3LFxuICBjb2RlRW1haWxTdWJqZWN0LFxuICBjb2RlRW1haWxUZXh0Qm9keSxcbn0gZnJvbSBcIi4vY29kZS1lbWFpbC50c1wiO1xuaW1wb3J0IHR5cGUgeyBBdXRoR2F0ZUNvbmZpZywgU2VuZENvZGVPcHRpb25zIH0gZnJvbSBcIi4vcGx1Z2luLnRzXCI7XG5cbmNvbnN0IGxvZ2dlciA9IGxvZy5sb2dnZXIoXCJ0dW5uZWw6c2VuZC1jb2RlXCIpO1xuXG4vKiogVGhlIHNsaWNlIG9mIGBAZGJ4LXRvb2xzL2VtYWlsYCB0aGUgZ2F0ZSB1c2VzLCByZXNvbHZlZCBsYXppbHkuICovXG5pbnRlcmZhY2UgRW1haWxNb2R1bGUge1xuICBzZW5kZXI6IHsgcmVzb2x2ZVN5c3RlbVNlbmRlckFkZHJlc3M6IChjb25maWc6IHVua25vd24pID0+IHN0cmluZyB9O1xuICB0cmFuc3BvcnQ6IHtcbiAgICBnZXRFbWFpbFJ1bnRpbWU6ICgpID0+IHsgY29uZmlnOiB7IG1vZGU6IHN0cmluZyB9IH07XG4gICAgc2VuZEVtYWlsOiAoXG4gICAgICBtZXNzYWdlOiB7IHRvOiBzdHJpbmdbXTsgc3ViamVjdDogc3RyaW5nOyBib2R5OiBzdHJpbmcgfSxcbiAgICAgIGZyb206IHN0cmluZyxcbiAgICAgIG9uQmVoYWxmT2Y6IHVuZGVmaW5lZCxcbiAgICAgIGV4dHJhOiB7IHRleHQ6IHN0cmluZzsgcHJldmlldzogc3RyaW5nIH0sXG4gICAgKSA9PiBQcm9taXNlPHZvaWQ+O1xuICB9O1xufVxuXG5sZXQgY2FjaGVkOiBFbWFpbE1vZHVsZSB8IHVuZGVmaW5lZDtcblxuLyoqXG4gKiBJbXBvcnQgYEBkYngtdG9vbHMvZW1haWxgIGxhemlseS4gVGhyb3dzIGEgY2xlYXIsIGFjdGlvbmFibGUgZXJyb3Igd2hlbiB0aGVcbiAqIG9wdGlvbmFsIGRlcGVuZGVuY3kgaXMgYWJzZW50IC0gdGhlIGNhbGxlciAoYSBnYXRlIHRoYXQgaXMgTk9UIGluc2VjdXJlKSB0cmVhdHNcbiAqIHRoYXQgYXMgZmF0YWwsIHNpbmNlIGEgZ2F0ZSB0aGF0IGNhbm5vdCBlbWFpbCBhIGNvZGUgbGV0cyBub2JvZHkgaW4uXG4gKi9cbmFzeW5jIGZ1bmN0aW9uIGxvYWRFbWFpbCgpOiBQcm9taXNlPEVtYWlsTW9kdWxlPiB7XG4gIGlmIChjYWNoZWQpIHJldHVybiBjYWNoZWQ7XG4gIHRyeSB7XG4gICAgY29uc3QgbW9kID0gKGF3YWl0IGltcG9ydChcIkBkYngtdG9vbHMvZW1haWxcIikpIGFzIHVua25vd24gYXMgRW1haWxNb2R1bGU7XG4gICAgY2FjaGVkID0gbW9kO1xuICAgIHJldHVybiBtb2Q7XG4gIH0gY2F0Y2ggKGNhdXNlKSB7XG4gICAgdGhyb3cgbmV3IEVycm9yKFxuICAgICAgXCJ0aGUgT1RQIGdhdGUgbmVlZHMgQGRieC10b29scy9lbWFpbCB0byBzZW5kIGNvZGVzLCBidXQgaXQgaXMgbm90IGluc3RhbGxlZC4gXCIgK1xuICAgICAgICBcIkFkZCBAZGJ4LXRvb2xzL2VtYWlsIHRvIHRoZSBhcHAsIG9yIHJ1biB0aGUgdHVubmVsIHdpdGggLS1pbnNlY3VyZSAvIFRVTk5FTF9JTlNFQ1VSRT10cnVlLlwiLFxuICAgICAgeyBjYXVzZSB9LFxuICAgICk7XG4gIH1cbn1cblxuLyoqXG4gKiBGYWlsIGZhc3Qgd2hlbiB0aGUgZ2F0ZSBjYW5ub3QgZGVsaXZlciBjb2RlczogdGhlIG9wdGlvbmFsIGVtYWlsIG1vZHVsZSBtdXN0IGJlXG4gKiBpbXBvcnRhYmxlIEFORCBjb25maWd1cmVkIGZvciBTTVRQIChyZWFsIGRlbGl2ZXJ5KS4gYG1vZGU6IFwiZmlsZVwiYCAob3V0Ym94KSBvciBhXG4gKiB0aHJvd2luZyBydW50aW1lIG1lYW5zIG5vIGNvZGUgcmVhY2hlcyBhIHJlYWwgaW5ib3gsIHNvIGEgZ2F0ZSBvbiB0aGF0IGNvbmZpZ1xuICogd291bGQgc2lsZW50bHkgYWRtaXQgbm9ib2R5LiBDYWxsZWQgZnJvbSB0aGUgcGx1Z2luJ3MgYHNldHVwOmNvbXBsZXRlYCB1bmxlc3NcbiAqIGluc2VjdXJlLlxuICovXG5leHBvcnQgYXN5bmMgZnVuY3Rpb24gZW5zdXJlRW1haWxBdmFpbGFibGUoKTogUHJvbWlzZTx2b2lkPiB7XG4gIGNvbnN0IHsgdHJhbnNwb3J0IH0gPSBhd2FpdCBsb2FkRW1haWwoKTtcbiAgaWYgKHRyYW5zcG9ydC5nZXRFbWFpbFJ1bnRpbWUoKS5jb25maWcubW9kZSAhPT0gXCJzbXRwXCIpIHtcbiAgICB0aHJvdyBuZXcgRXJyb3IoXG4gICAgICBcImVtYWlsIGlzIG5vdCBjb25maWd1cmVkIGZvciBTTVRQIGRlbGl2ZXJ5IC0gdGhlIE9UUCBnYXRlIGNhbm5vdCBzZW5kIGNvZGVzLiBcIiArXG4gICAgICAgIFwiU2V0IFNNVFBfSE9TVC9TTVRQX1VTRVIvU01UUF9QQVNTV09SRCwgb3IgcGFzcyAtLWluc2VjdXJlIC8gVFVOTkVMX0lOU0VDVVJFPXRydWUuXCIsXG4gICAgKTtcbiAgfVxufVxuXG4vKipcbiAqIFRoZSBkZWZhdWx0IGNvZGUgc2VuZGVyOiByZW5kZXIgdGhlIE9UUCBlbWFpbCAoY29kZSBpbiB0aGUgc3ViamVjdCArIHByZWhlYWRlclxuICogZm9yIG1vYmlsZSBhdXRvZmlsbDsgc2VlIGBjb2RlRW1haWxTdWJqZWN0YCkgYW5kIHNlbmQgaXQgdGhyb3VnaCB0aGUgc2hhcmVkXG4gKiB0cmFuc3BvcnQgYXMgdGhlIHN5c3RlbSBzZW5kZXIuXG4gKi9cbmV4cG9ydCBjb25zdCBzZW5kQ29kZTogTm9uTnVsbGFibGU8QXV0aEdhdGVDb25maWdbXCJzZW5kQ29kZVwiXT4gPSBhc3luYyAoXG4gIHRvOiBzdHJpbmcsXG4gIGNvZGU6IHN0cmluZyxcbiAgb3B0czogU2VuZENvZGVPcHRpb25zLFxuKTogUHJvbWlzZTx2b2lkPiA9PiB7XG4gIGNvbnN0IHsgc2VuZGVyLCB0cmFuc3BvcnQgfSA9IGF3YWl0IGxvYWRFbWFpbCgpO1xuICBjb25zdCBmcm9tID0gc2VuZGVyLnJlc29sdmVTeXN0ZW1TZW5kZXJBZGRyZXNzKHRyYW5zcG9ydC5nZXRFbWFpbFJ1bnRpbWUoKS5jb25maWcpO1xuICBhd2FpdCBzZW5kRW1haWxXaXRoKHRyYW5zcG9ydCwgdG8sIGNvZGUsIG9wdHMsIGZyb20pO1xufTtcblxuZnVuY3Rpb24gc2VuZEVtYWlsV2l0aChcbiAgdHJhbnNwb3J0OiBFbWFpbE1vZHVsZVtcInRyYW5zcG9ydFwiXSxcbiAgdG86IHN0cmluZyxcbiAgY29kZTogc3RyaW5nLFxuICBvcHRzOiBTZW5kQ29kZU9wdGlvbnMsXG4gIGZyb206IHN0cmluZyxcbik6IFByb21pc2U8dm9pZD4ge1xuICBsb2dnZXIuZGVidWcoXCJzZW5kaW5nIGNvZGUgZW1haWxcIiwgeyB0byB9KTtcbiAgcmV0dXJuIHRyYW5zcG9ydC5zZW5kRW1haWwoXG4gICAge1xuICAgICAgdG86IFt0b10sXG4gICAgICBzdWJqZWN0OiBjb2RlRW1haWxTdWJqZWN0KGNvZGUsIG9wdHMuc3ViamVjdCksXG4gICAgICBib2R5OiBjb2RlRW1haWxIdG1sQm9keShjb2RlLCBvcHRzKSxcbiAgICB9LFxuICAgIGZyb20sXG4gICAgdW5kZWZpbmVkLFxuICAgIHsgdGV4dDogY29kZUVtYWlsVGV4dEJvZHkoY29kZSwgb3B0cyksIHByZXZpZXc6IGNvZGVFbWFpbFByZXZpZXcoY29kZSwgb3B0cykgfSxcbiAgKTtcbn1cbiJdfQ==
72
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2VuZC1jb2RlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vc3JjL3NlbmQtY29kZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQTs7Ozs7Ozs7Ozs7O0dBWUc7QUFFSCxPQUFPLEVBQUUsR0FBRyxFQUFFLE1BQU0sd0JBQXdCLENBQUM7QUFDN0MsT0FBTyxFQUNMLGlCQUFpQixFQUNqQixnQkFBZ0IsRUFDaEIsZ0JBQWdCLEVBQ2hCLGlCQUFpQixHQUNsQixNQUFNLGlCQUFpQixDQUFDO0FBR3pCLE1BQU0sTUFBTSxHQUFHLEdBQUcsQ0FBQyxNQUFNLENBQUMsa0JBQWtCLENBQUMsQ0FBQztBQWdCOUMsSUFBSSxNQUErQixDQUFDO0FBRXBDOzs7O0dBSUc7QUFDSCxLQUFLLFVBQVUsU0FBUztJQUN0QixJQUFJLE1BQU07UUFBRSxPQUFPLE1BQU0sQ0FBQztJQUMxQixJQUFJLENBQUM7UUFDSCxNQUFNLEdBQUcsR0FBRyxDQUFDLE1BQU0sTUFBTSxDQUFDLGtCQUFrQixDQUFDLENBQTJCLENBQUM7UUFDekUsTUFBTSxHQUFHLEdBQUcsQ0FBQztRQUNiLE9BQU8sR0FBRyxDQUFDO0lBQ2IsQ0FBQztJQUFDLE9BQU8sS0FBSyxFQUFFLENBQUM7UUFDZixNQUFNLElBQUksS0FBSyxDQUNiLDhFQUE4RTtZQUM1RSw0RkFBNEYsRUFDOUYsRUFBRSxLQUFLLEVBQUUsQ0FDVixDQUFDO0lBQ0osQ0FBQztBQUNILENBQUM7QUFFRDs7Ozs7O0dBTUc7QUFDSCxNQUFNLENBQUMsS0FBSyxVQUFVLG9CQUFvQjtJQUN4QyxNQUFNLEVBQUUsU0FBUyxFQUFFLEdBQUcsTUFBTSxTQUFTLEVBQUUsQ0FBQztJQUN4QyxJQUFJLFNBQVMsQ0FBQyxlQUFlLEVBQUUsQ0FBQyxNQUFNLENBQUMsSUFBSSxLQUFLLE1BQU0sRUFBRSxDQUFDO1FBQ3ZELE1BQU0sSUFBSSxLQUFLLENBQ2IsOEVBQThFO1lBQzVFLG1GQUFtRixDQUN0RixDQUFDO0lBQ0osQ0FBQztBQUNILENBQUM7QUFFRDs7OztHQUlHO0FBQ0gsTUFBTSxDQUFDLE1BQU0sUUFBUSxHQUE0QyxLQUFLLEVBQ3BFLEVBQVUsRUFDVixJQUFZLEVBQ1osSUFBcUIsRUFDTixFQUFFO0lBQ2pCLE1BQU0sRUFBRSxNQUFNLEVBQUUsU0FBUyxFQUFFLEdBQUcsTUFBTSxTQUFTLEVBQUUsQ0FBQztJQUNoRCxNQUFNLElBQUksR0FBRyxNQUFNLENBQUMsMEJBQTBCLENBQUMsU0FBUyxDQUFDLGVBQWUsRUFBRSxDQUFDLE1BQU0sQ0FBQyxDQUFDO0lBQ25GLE1BQU0sYUFBYSxDQUFDLFNBQVMsRUFBRSxFQUFFLEVBQUUsSUFBSSxFQUFFLElBQUksRUFBRSxJQUFJLENBQUMsQ0FBQztBQUN2RCxDQUFDLENBQUM7QUFFRixTQUFTLGFBQWEsQ0FDcEIsU0FBbUMsRUFDbkMsRUFBVSxFQUNWLElBQVksRUFDWixJQUFxQixFQUNyQixJQUFZO0lBRVosTUFBTSxDQUFDLEtBQUssQ0FBQyxvQkFBb0IsRUFBRSxFQUFFLEVBQUUsRUFBRSxDQUFDLENBQUM7SUFDM0MsT0FBTyxTQUFTLENBQUMsU0FBUyxDQUN4QjtRQUNFLEVBQUUsRUFBRSxDQUFDLEVBQUUsQ0FBQztRQUNSLE9BQU8sRUFBRSxnQkFBZ0IsQ0FBQyxJQUFJLEVBQUUsSUFBSSxDQUFDLE9BQU8sQ0FBQztRQUM3QyxJQUFJLEVBQUUsaUJBQWlCLENBQUMsSUFBSSxFQUFFLElBQUksQ0FBQztLQUNwQyxFQUNELElBQUksRUFDSixTQUFTLEVBQ1Q7UUFDRSxPQUFPLEVBQUUsSUFBSSxDQUFDLE9BQU87UUFDckIsSUFBSSxFQUFFLGlCQUFpQixDQUFDLElBQUksRUFBRSxJQUFJLENBQUM7UUFDbkMsT0FBTyxFQUFFLGdCQUFnQixDQUFDLElBQUksRUFBRSxJQUFJLENBQUM7S0FDdEMsQ0FDRixDQUFDO0FBQ0osQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbIi8qKlxuICogVGhlIGRlZmF1bHQgYHNlbmRDb2RlYCBmb3IgdGhlIHtAbGluayBBdXRoR2F0ZVBsdWdpbn06IGRlbGl2ZXIgdGhlIE9UUCB0aHJvdWdoXG4gKiB0aGUgaG9zdCBhcHAncyBBTFJFQURZLVBSSU1FRCBgQGRieC10b29scy9lbWFpbGAgdHJhbnNwb3J0LCBhcyB0aGUgc3lzdGVtXG4gKiBzZW5kZXIgKGEgdmVyaWZpY2F0aW9uIGNvZGUgaXMgbWFjaGluZS1nZW5lcmF0ZWQgYW5kIHVuYW5zd2VyYWJsZSwgc28gaXQgbXVzdFxuICogbm90IGFycml2ZSBmcm9tIGEgcGVyc29uJ3MgYWRkcmVzcyBpbnZpdGluZyBhIHJlcGx5KS5cbiAqXG4gKiBgQGRieC10b29scy9lbWFpbGAgaXMgYW4gT1BUSU9OQUwgZGVwZW5kZW5jeSBvZiB0aGUgdHVubmVsIC0gYSB0dW5uZWwgdXNlZFxuICogd2l0aG91dCB0aGUgZ2F0ZSBuZWVkcyBubyBtYWlsLiBTbyBpdCBpcyBpbXBvcnRlZCBMQVpJTFkgaGVyZTsgYSBtaXNzaW5nIG1vZHVsZVxuICogc3VyZmFjZXMgb25seSB3aGVuIGEgZ2F0ZSBhY3R1YWxseSB0cmllcyB0byBzZW5kIGEgY29kZSwgYW5kXG4gKiB7QGxpbmsgZW5zdXJlRW1haWxBdmFpbGFibGV9IHR1cm5zIHRoYXQgaW50byBhIGNsZWFyIGZhaWwtZmFzdCBhdCBib290LlxuICpcbiAqIEBtb2R1bGVcbiAqL1xuXG5pbXBvcnQgeyBsb2cgfSBmcm9tIFwiQGRieC10b29scy9zaGFyZWQtY29yZVwiO1xuaW1wb3J0IHtcbiAgY29kZUVtYWlsSHRtbEJvZHksXG4gIGNvZGVFbWFpbFByZXZpZXcsXG4gIGNvZGVFbWFpbFN1YmplY3QsXG4gIGNvZGVFbWFpbFRleHRCb2R5LFxufSBmcm9tIFwiLi9jb2RlLWVtYWlsLnRzXCI7XG5pbXBvcnQgdHlwZSB7IEF1dGhHYXRlQ29uZmlnLCBTZW5kQ29kZU9wdGlvbnMgfSBmcm9tIFwiLi9wbHVnaW4udHNcIjtcblxuY29uc3QgbG9nZ2VyID0gbG9nLmxvZ2dlcihcInR1bm5lbDpzZW5kLWNvZGVcIik7XG5cbi8qKiBUaGUgc2xpY2Ugb2YgYEBkYngtdG9vbHMvZW1haWxgIHRoZSBnYXRlIHVzZXMsIHJlc29sdmVkIGxhemlseS4gKi9cbmludGVyZmFjZSBFbWFpbE1vZHVsZSB7XG4gIHNlbmRlcjogeyByZXNvbHZlU3lzdGVtU2VuZGVyQWRkcmVzczogKGNvbmZpZzogdW5rbm93bikgPT4gc3RyaW5nIH07XG4gIHRyYW5zcG9ydDoge1xuICAgIGdldEVtYWlsUnVudGltZTogKCkgPT4geyBjb25maWc6IHsgbW9kZTogc3RyaW5nIH0gfTtcbiAgICBzZW5kRW1haWw6IChcbiAgICAgIG1lc3NhZ2U6IHsgdG86IHN0cmluZ1tdOyBzdWJqZWN0OiBzdHJpbmc7IGJvZHk6IHN0cmluZyB9LFxuICAgICAgZnJvbTogc3RyaW5nLFxuICAgICAgb25CZWhhbGZPZjogdW5kZWZpbmVkLFxuICAgICAgZXh0cmE6IHsgaGVhZGluZzogc3RyaW5nOyB0ZXh0OiBzdHJpbmc7IHByZXZpZXc6IHN0cmluZyB9LFxuICAgICkgPT4gUHJvbWlzZTx2b2lkPjtcbiAgfTtcbn1cblxubGV0IGNhY2hlZDogRW1haWxNb2R1bGUgfCB1bmRlZmluZWQ7XG5cbi8qKlxuICogSW1wb3J0IGBAZGJ4LXRvb2xzL2VtYWlsYCBsYXppbHkuIFRocm93cyBhIGNsZWFyLCBhY3Rpb25hYmxlIGVycm9yIHdoZW4gdGhlXG4gKiBvcHRpb25hbCBkZXBlbmRlbmN5IGlzIGFic2VudCAtIHRoZSBjYWxsZXIgKGEgZ2F0ZSB0aGF0IGlzIE5PVCBpbnNlY3VyZSkgdHJlYXRzXG4gKiB0aGF0IGFzIGZhdGFsLCBzaW5jZSBhIGdhdGUgdGhhdCBjYW5ub3QgZW1haWwgYSBjb2RlIGxldHMgbm9ib2R5IGluLlxuICovXG5hc3luYyBmdW5jdGlvbiBsb2FkRW1haWwoKTogUHJvbWlzZTxFbWFpbE1vZHVsZT4ge1xuICBpZiAoY2FjaGVkKSByZXR1cm4gY2FjaGVkO1xuICB0cnkge1xuICAgIGNvbnN0IG1vZCA9IChhd2FpdCBpbXBvcnQoXCJAZGJ4LXRvb2xzL2VtYWlsXCIpKSBhcyB1bmtub3duIGFzIEVtYWlsTW9kdWxlO1xuICAgIGNhY2hlZCA9IG1vZDtcbiAgICByZXR1cm4gbW9kO1xuICB9IGNhdGNoIChjYXVzZSkge1xuICAgIHRocm93IG5ldyBFcnJvcihcbiAgICAgIFwidGhlIE9UUCBnYXRlIG5lZWRzIEBkYngtdG9vbHMvZW1haWwgdG8gc2VuZCBjb2RlcywgYnV0IGl0IGlzIG5vdCBpbnN0YWxsZWQuIFwiICtcbiAgICAgICAgXCJBZGQgQGRieC10b29scy9lbWFpbCB0byB0aGUgYXBwLCBvciBydW4gdGhlIHR1bm5lbCB3aXRoIC0taW5zZWN1cmUgLyBUVU5ORUxfSU5TRUNVUkU9dHJ1ZS5cIixcbiAgICAgIHsgY2F1c2UgfSxcbiAgICApO1xuICB9XG59XG5cbi8qKlxuICogRmFpbCBmYXN0IHdoZW4gdGhlIGdhdGUgY2Fubm90IGRlbGl2ZXIgY29kZXM6IHRoZSBvcHRpb25hbCBlbWFpbCBtb2R1bGUgbXVzdCBiZVxuICogaW1wb3J0YWJsZSBBTkQgY29uZmlndXJlZCBmb3IgU01UUCAocmVhbCBkZWxpdmVyeSkuIGBtb2RlOiBcImZpbGVcImAgKG91dGJveCkgb3IgYVxuICogdGhyb3dpbmcgcnVudGltZSBtZWFucyBubyBjb2RlIHJlYWNoZXMgYSByZWFsIGluYm94LCBzbyBhIGdhdGUgb24gdGhhdCBjb25maWdcbiAqIHdvdWxkIHNpbGVudGx5IGFkbWl0IG5vYm9keS4gQ2FsbGVkIGZyb20gdGhlIHBsdWdpbidzIGBzZXR1cDpjb21wbGV0ZWAgdW5sZXNzXG4gKiBpbnNlY3VyZS5cbiAqL1xuZXhwb3J0IGFzeW5jIGZ1bmN0aW9uIGVuc3VyZUVtYWlsQXZhaWxhYmxlKCk6IFByb21pc2U8dm9pZD4ge1xuICBjb25zdCB7IHRyYW5zcG9ydCB9ID0gYXdhaXQgbG9hZEVtYWlsKCk7XG4gIGlmICh0cmFuc3BvcnQuZ2V0RW1haWxSdW50aW1lKCkuY29uZmlnLm1vZGUgIT09IFwic210cFwiKSB7XG4gICAgdGhyb3cgbmV3IEVycm9yKFxuICAgICAgXCJlbWFpbCBpcyBub3QgY29uZmlndXJlZCBmb3IgU01UUCBkZWxpdmVyeSAtIHRoZSBPVFAgZ2F0ZSBjYW5ub3Qgc2VuZCBjb2Rlcy4gXCIgK1xuICAgICAgICBcIlNldCBTTVRQX0hPU1QvU01UUF9VU0VSL1NNVFBfUEFTU1dPUkQsIG9yIHBhc3MgLS1pbnNlY3VyZSAvIFRVTk5FTF9JTlNFQ1VSRT10cnVlLlwiLFxuICAgICk7XG4gIH1cbn1cblxuLyoqXG4gKiBUaGUgZGVmYXVsdCBjb2RlIHNlbmRlcjogcmVuZGVyIHRoZSBPVFAgZW1haWwgKGNvZGUgaW4gdGhlIHN1YmplY3QgKyBwcmVoZWFkZXJcbiAqIGZvciBtb2JpbGUgYXV0b2ZpbGw7IHNlZSBgY29kZUVtYWlsU3ViamVjdGApIGFuZCBzZW5kIGl0IHRocm91Z2ggdGhlIHNoYXJlZFxuICogdHJhbnNwb3J0IGFzIHRoZSBzeXN0ZW0gc2VuZGVyLlxuICovXG5leHBvcnQgY29uc3Qgc2VuZENvZGU6IE5vbk51bGxhYmxlPEF1dGhHYXRlQ29uZmlnW1wic2VuZENvZGVcIl0+ID0gYXN5bmMgKFxuICB0bzogc3RyaW5nLFxuICBjb2RlOiBzdHJpbmcsXG4gIG9wdHM6IFNlbmRDb2RlT3B0aW9ucyxcbik6IFByb21pc2U8dm9pZD4gPT4ge1xuICBjb25zdCB7IHNlbmRlciwgdHJhbnNwb3J0IH0gPSBhd2FpdCBsb2FkRW1haWwoKTtcbiAgY29uc3QgZnJvbSA9IHNlbmRlci5yZXNvbHZlU3lzdGVtU2VuZGVyQWRkcmVzcyh0cmFuc3BvcnQuZ2V0RW1haWxSdW50aW1lKCkuY29uZmlnKTtcbiAgYXdhaXQgc2VuZEVtYWlsV2l0aCh0cmFuc3BvcnQsIHRvLCBjb2RlLCBvcHRzLCBmcm9tKTtcbn07XG5cbmZ1bmN0aW9uIHNlbmRFbWFpbFdpdGgoXG4gIHRyYW5zcG9ydDogRW1haWxNb2R1bGVbXCJ0cmFuc3BvcnRcIl0sXG4gIHRvOiBzdHJpbmcsXG4gIGNvZGU6IHN0cmluZyxcbiAgb3B0czogU2VuZENvZGVPcHRpb25zLFxuICBmcm9tOiBzdHJpbmcsXG4pOiBQcm9taXNlPHZvaWQ+IHtcbiAgbG9nZ2VyLmRlYnVnKFwic2VuZGluZyBjb2RlIGVtYWlsXCIsIHsgdG8gfSk7XG4gIHJldHVybiB0cmFuc3BvcnQuc2VuZEVtYWlsKFxuICAgIHtcbiAgICAgIHRvOiBbdG9dLFxuICAgICAgc3ViamVjdDogY29kZUVtYWlsU3ViamVjdChjb2RlLCBvcHRzLnN1YmplY3QpLFxuICAgICAgYm9keTogY29kZUVtYWlsSHRtbEJvZHkoY29kZSwgb3B0cyksXG4gICAgfSxcbiAgICBmcm9tLFxuICAgIHVuZGVmaW5lZCxcbiAgICB7XG4gICAgICBoZWFkaW5nOiBvcHRzLnN1YmplY3QsXG4gICAgICB0ZXh0OiBjb2RlRW1haWxUZXh0Qm9keShjb2RlLCBvcHRzKSxcbiAgICAgIHByZXZpZXc6IGNvZGVFbWFpbFByZXZpZXcoY29kZSwgb3B0cyksXG4gICAgfSxcbiAgKTtcbn1cbiJdfQ==
package/package.json CHANGED
@@ -18,19 +18,19 @@
18
18
  "projen": "projen"
19
19
  },
20
20
  "devDependencies": {
21
- "@dbx-tools/email": "0.6.63",
21
+ "@dbx-tools/email": "0.6.64",
22
22
  "@types/bun": "^1.3.14",
23
23
  "@types/node": "^24.6.0",
24
24
  "typescript": "^5.9.3"
25
25
  },
26
26
  "peerDependencies": {
27
- "@dbx-tools/email": "0.6.63"
27
+ "@dbx-tools/email": "0.6.64"
28
28
  },
29
29
  "dependencies": {
30
30
  "@databricks/appkit": "^0.43.0",
31
- "@dbx-tools/appkit": "0.6.63",
32
- "@dbx-tools/shared-core": "0.6.63",
33
- "@dbx-tools/shared-email": "0.6.63",
31
+ "@dbx-tools/appkit": "0.6.64",
32
+ "@dbx-tools/shared-core": "0.6.64",
33
+ "@dbx-tools/shared-email": "0.6.64",
34
34
  "jose": "^6.2.3"
35
35
  },
36
36
  "main": "./lib/index.js",
@@ -47,7 +47,7 @@
47
47
  "./package.json": "./package.json"
48
48
  }
49
49
  },
50
- "version": "0.6.63",
50
+ "version": "0.6.64",
51
51
  "types": "./lib/index.d.ts",
52
52
  "type": "module",
53
53
  "exports": {
package/src/send-code.ts CHANGED
@@ -32,7 +32,7 @@ interface EmailModule {
32
32
  message: { to: string[]; subject: string; body: string },
33
33
  from: string,
34
34
  onBehalfOf: undefined,
35
- extra: { text: string; preview: string },
35
+ extra: { heading: string; text: string; preview: string },
36
36
  ) => Promise<void>;
37
37
  };
38
38
  }
@@ -107,6 +107,10 @@ function sendEmailWith(
107
107
  },
108
108
  from,
109
109
  undefined,
110
- { text: codeEmailTextBody(code, opts), preview: codeEmailPreview(code, opts) },
110
+ {
111
+ heading: opts.subject,
112
+ text: codeEmailTextBody(code, opts),
113
+ preview: codeEmailPreview(code, opts),
114
+ },
111
115
  );
112
116
  }