@aglyn/plugins-outreach 1.0.0-beta.224 → 1.0.0-beta.225
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 +10 -4
- package/package.json +14 -14
- package/src/lib/components/enrollment-detail.d.ts +8 -0
- package/src/lib/components/enrollment-detail.js +17 -5
- package/src/lib/components/enrollment-detail.js.map +1 -1
- package/src/lib/components/mailbox-card.d.ts +3 -3
- package/src/lib/components/mailbox-card.js +11 -5
- package/src/lib/components/mailbox-card.js.map +1 -1
- package/src/lib/components/mailboxes-section.d.ts +6 -5
- package/src/lib/components/mailboxes-section.js +61 -26
- package/src/lib/components/mailboxes-section.js.map +1 -1
- package/src/lib/components/sequence-detail.js +1 -1
- package/src/lib/components/sequence-detail.js.map +1 -1
- package/src/lib/components/sequence-editor.js +29 -4
- package/src/lib/components/sequence-editor.js.map +1 -1
- package/src/lib/components/sequence-mailbox-picker.d.ts +21 -0
- package/src/lib/components/sequence-mailbox-picker.js +74 -13
- package/src/lib/components/sequence-mailbox-picker.js.map +1 -1
- package/src/lib/components/use-outreach-mailbox-api.d.ts +10 -2
- package/src/lib/components/use-outreach-mailbox-api.js +7 -2
- package/src/lib/components/use-outreach-mailbox-api.js.map +1 -1
- package/src/lib/engine/enrollment-state.d.ts +6 -0
- package/src/lib/engine/enrollment-state.js +1 -1
- package/src/lib/engine/enrollment-state.js.map +1 -1
- package/src/lib/engine/index.d.ts +1 -0
- package/src/lib/engine/index.js +1 -0
- package/src/lib/engine/index.js.map +1 -1
- package/src/lib/engine/mailbox-notice.d.ts +5 -2
- package/src/lib/engine/mailbox-notice.js +6 -2
- package/src/lib/engine/mailbox-notice.js.map +1 -1
- package/src/lib/engine/mailbox-rotation.d.ts +41 -0
- package/src/lib/engine/mailbox-rotation.js +71 -0
- package/src/lib/engine/mailbox-rotation.js.map +1 -0
- package/src/lib/mailboxes/mailbox-api.d.ts +30 -11
- package/src/lib/mailboxes/mailbox-api.js +7 -3
- package/src/lib/mailboxes/mailbox-api.js.map +1 -1
- package/src/lib/mailboxes/mailbox-credentials.d.ts +15 -12
- package/src/lib/mailboxes/mailbox-credentials.js +12 -8
- package/src/lib/mailboxes/mailbox-credentials.js.map +1 -1
- package/src/lib/mailboxes/mailbox-erasure.js +3 -0
- package/src/lib/mailboxes/mailbox-erasure.js.map +1 -1
- package/src/lib/mailboxes/mailbox-revoke.d.ts +10 -5
- package/src/lib/mailboxes/mailbox-revoke.js +1 -0
- package/src/lib/mailboxes/mailbox-revoke.js.map +1 -1
- package/src/lib/mailboxes/mailbox-routes.d.ts +11 -3
- package/src/lib/mailboxes/mailbox-routes.js +218 -35
- package/src/lib/mailboxes/mailbox-routes.js.map +1 -1
- package/src/lib/mailboxes/mailbox-settings.d.ts +6 -2
- package/src/lib/mailboxes/mailbox-settings.js +5 -1
- package/src/lib/mailboxes/mailbox-settings.js.map +1 -1
- package/src/lib/mailboxes/mailbox-transport.d.ts +15 -9
- package/src/lib/mailboxes/mailbox-transport.js +47 -17
- package/src/lib/mailboxes/mailbox-transport.js.map +1 -1
- package/src/lib/mailboxes/oauth-state.d.ts +11 -3
- package/src/lib/mailboxes/oauth-state.js +17 -8
- package/src/lib/mailboxes/oauth-state.js.map +1 -1
- package/src/lib/mailboxes/outreach-config.d.ts +30 -0
- package/src/lib/mailboxes/outreach-config.js +53 -10
- package/src/lib/mailboxes/outreach-config.js.map +1 -1
- package/src/lib/mailboxes/register-mailbox-routes.js +2 -1
- package/src/lib/mailboxes/register-mailbox-routes.js.map +1 -1
- package/src/lib/model/outreach.types.d.ts +13 -2
- package/src/lib/model/outreach.types.js +7 -2
- package/src/lib/model/outreach.types.js.map +1 -1
- package/src/lib/model/sequence-draft.d.ts +6 -1
- package/src/lib/model/sequence-draft.js +16 -4
- package/src/lib/model/sequence-draft.js.map +1 -1
- package/src/lib/routes/enroll-routes.js +52 -1
- package/src/lib/routes/enroll-routes.js.map +1 -1
- package/src/lib/routes/sequence-routes.js +11 -3
- package/src/lib/routes/sequence-routes.js.map +1 -1
- package/src/lib/runtime/fixtures/fake-gmail.d.ts +18 -3
- package/src/lib/runtime/fixtures/fake-gmail.js +21 -1
- package/src/lib/runtime/fixtures/fake-gmail.js.map +1 -1
- package/src/lib/runtime/mailbox-notices.js +2 -2
- package/src/lib/runtime/mailbox-notices.js.map +1 -1
- package/src/lib/runtime/send-job.js +2 -8
- package/src/lib/runtime/send-job.js.map +1 -1
- package/src/lib/runtime/sync-job.js +24 -11
- package/src/lib/runtime/sync-job.js.map +1 -1
- package/src/lib/subprocessors.d.ts +12 -1
- package/src/lib/subprocessors.js +25 -2
- package/src/lib/subprocessors.js.map +1 -1
- package/src/lib/transfer/sequences-package.js +7 -2
- package/src/lib/transfer/sequences-package.js.map +1 -1
- package/src/lib/transport/gmail-client.d.ts +4 -11
- package/src/lib/transport/gmail-client.js +42 -17
- package/src/lib/transport/gmail-client.js.map +1 -1
- package/src/lib/transport/graph-client.d.ts +87 -0
- package/src/lib/transport/graph-client.js +359 -0
- package/src/lib/transport/graph-client.js.map +1 -0
- package/src/lib/transport/mail-client.d.ts +138 -0
- package/src/lib/transport/mail-client.js +34 -0
- package/src/lib/transport/mail-client.js.map +1 -0
- package/src/lib/transport/microsoft-errors.d.ts +32 -0
- package/src/lib/transport/microsoft-errors.js +94 -0
- package/src/lib/transport/microsoft-errors.js.map +1 -0
- package/src/lib/transport/microsoft-oauth.d.ts +140 -0
- package/src/lib/transport/microsoft-oauth.js +225 -0
- package/src/lib/transport/microsoft-oauth.js.map +1 -0
- package/src/lib/transport/mime-message.d.ts +30 -0
- package/src/lib/transport/mime-message.js +235 -0
- package/src/lib/transport/mime-message.js.map +1 -0
- package/src/lib/transport/send-message.d.ts +15 -8
- package/src/lib/transport/send-message.js +4 -3
- package/src/lib/transport/send-message.js.map +1 -1
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../../../../../../../libs/plugins/outreach/src/lib/transport/send-message.ts"],"sourcesContent":["/**\n * @license\n * Copyright 2026 Aglyn LLC\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nimport type { ComposedOutreachEmail } from '../engine/compose'\nimport type {
|
|
1
|
+
{"version":3,"sources":["../../../../../../../libs/plugins/outreach/src/lib/transport/send-message.ts"],"sourcesContent":["/**\n * @license\n * Copyright 2026 Aglyn LLC\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nimport type { ComposedOutreachEmail } from '../engine/compose'\nimport type { OutreachMailClient } from './mail-client'\nimport { listUnsubscribeHeaders } from '@aglyn/shared-util-email/list-unsubscribe'\nimport {\n buildRfc5322Message,\n encodeGmailRawMessage,\n type OutreachComposedMessage,\n type OutreachMailAddress,\n} from './rfc5322'\n\n/** What one sent message is known by afterwards. */\nexport interface OutreachSentMessage {\n /** The provider's id for the message in the sender's mailbox. */\n gmailMessageId: string\n /**\n * The provider's thread — Gmail's thread id, Graph's conversation id —\n * which the next step of the sequence replies into.\n */\n threadId: string\n /**\n * The RFC 5322 `Message-ID` it went out under, for `In-Reply-To` and\n * `References`: the one it was written with, unless the provider says it\n * sent it under another.\n */\n messageId: string\n /**\n * The subject as sent — the thread's own subject when this message started\n * the thread, which a later step answers with `Re:`.\n */\n subject: string\n}\n\nexport interface SendOutreachMessageOptions {\n /** The provider thread to send into; a new thread when absent. */\n threadId?: string | null\n /** The `Date` header. Now when omitted. */\n date?: Date\n /** The Message-ID's domain. The From address's domain when omitted. */\n messageIdDomain?: string\n /**\n * The Message-ID's local part, minted by the caller so it knows the id\n * before the send answers (AGL-2981). A random one when omitted.\n */\n messageIdLocalPart?: string\n}\n\n/**\n * Builds a composed message and sends it through a mailbox's client\n * (AGL-2978). The one door a send goes through, so every Outreach message is\n * built by the same RFC 5322 writer and none can bypass its header checks.\n */\nexport async function sendOutreachMessage(\n client: Pick<OutreachMailClient, 'sendMessage'>,\n message: OutreachComposedMessage,\n options: SendOutreachMessageOptions = {},\n): Promise<OutreachSentMessage> {\n const built = buildRfc5322Message(message, {\n date: options.date,\n messageIdDomain: options.messageIdDomain,\n messageIdLocalPart: options.messageIdLocalPart,\n })\n const sent = await client.sendMessage({\n raw: encodeGmailRawMessage(built.raw),\n threadId: options.threadId ?? null,\n })\n const reported = String(sent.internetMessageId ?? '').trim()\n return {\n gmailMessageId: sent.id,\n threadId: sent.threadId,\n messageId: reported || built.messageId,\n subject: built.subject,\n }\n}\n\n/**\n * Sends the email the engine composed (`composeOutreachEmail`) from a\n * mailbox, as the sending runtime does for a sequence step.\n *\n * The engine decides what is said and how it threads; this adds what the\n * engine leaves to the transport — the From line, from the mailbox's send-as\n * address and display name, and the MIME — and maps the rest onto headers:\n *\n * - a reply step goes into the engine's `threadId`, with its `In-Reply-To`\n * and `References`;\n * - the unsubscribe URL and mailto become one `List-Unsubscribe`, and the\n * URL adds `List-Unsubscribe-Post: List-Unsubscribe=One-Click` (RFC 8058).\n *\n * Answers the provider's thread id, the `Message-ID` and the subject as sent,\n * which the runtime records on the enrollment for the next step to answer.\n */\nexport function sendComposedOutreachEmail(\n client: Pick<OutreachMailClient, 'sendMessage'>,\n email: ComposedOutreachEmail,\n sender: OutreachMailAddress,\n options: Omit<SendOutreachMessageOptions, 'threadId'> = {},\n): Promise<OutreachSentMessage> {\n // The pair campaigns write too (AGL-3307): both URIs in one\n // `List-Unsubscribe`, and the one-click `Post` only beside the URL.\n const unsubscribe = listUnsubscribeHeaders({\n url: email.listUnsubscribeUrl,\n mailto: email.listUnsubscribeMailto,\n })\n return sendOutreachMessage(\n client,\n {\n from: sender,\n to: email.to,\n subject: email.subject,\n text: email.text,\n html: email.html ?? null,\n headers: {\n 'In-Reply-To': email.inReplyTo,\n References: email.references,\n 'List-Unsubscribe': unsubscribe['List-Unsubscribe'] ?? null,\n 'List-Unsubscribe-Post': unsubscribe['List-Unsubscribe-Post'] ?? null,\n },\n },\n { ...options, threadId: email.threadId ?? null },\n )\n}\n"],"names":["listUnsubscribeHeaders","buildRfc5322Message","encodeGmailRawMessage","sendOutreachMessage","client","message","options","sent","built","date","messageIdDomain","messageIdLocalPart","sendMessage","raw","threadId","reported","String","internetMessageId","trim","gmailMessageId","id","messageId","subject","sendComposedOutreachEmail","email","sender","unsubscribe","url","listUnsubscribeUrl","mailto","listUnsubscribeMailto","from","to","text","html","headers","inReplyTo","References","references"],"mappings":"AAAA;;;;;;;;;;;;;;;CAeC;AAID,SAASA,sBAAsB,QAAQ,4CAA2C;AAClF,SACEC,mBAAmB,EACnBC,qBAAqB,QAGhB,eAAW;AAsClB;;;;CAIC,GACD,OAAO,eAAeC,oBACpBC,MAA+C,EAC/CC,OAAgC,EAChCC,UAAsC,CAAC,CAAC;QAS5BA,mBAEYC;IATxB,MAAMC,QAAQP,oBAAoBI,SAAS;QACzCI,MAAMH,QAAQG,IAAI;QAClBC,iBAAiBJ,QAAQI,eAAe;QACxCC,oBAAoBL,QAAQK,kBAAkB;IAChD;IACA,MAAMJ,OAAO,MAAMH,OAAOQ,WAAW,CAAC;QACpCC,KAAKX,sBAAsBM,MAAMK,GAAG;QACpCC,QAAQ,GAAER,oBAAAA,QAAQQ,QAAQ,YAAhBR,oBAAoB;IAChC;IACA,MAAMS,WAAWC,QAAOT,0BAAAA,KAAKU,iBAAiB,YAAtBV,0BAA0B,IAAIW,IAAI;IAC1D,OAAO;QACLC,gBAAgBZ,KAAKa,EAAE;QACvBN,UAAUP,KAAKO,QAAQ;QACvBO,WAAWN,YAAYP,MAAMa,SAAS;QACtCC,SAASd,MAAMc,OAAO;IACxB;AACF;AAEA;;;;;;;;;;;;;;;CAeC,GACD,OAAO,SAASC,0BACdnB,MAA+C,EAC/CoB,KAA4B,EAC5BC,MAA2B,EAC3BnB,UAAwD,CAAC,CAAC;QAehDkB,aAIgBE,8BACKA,kCAGLF;IArB1B,4DAA4D;IAC5D,oEAAoE;IACpE,MAAME,cAAc1B,uBAAuB;QACzC2B,KAAKH,MAAMI,kBAAkB;QAC7BC,QAAQL,MAAMM,qBAAqB;IACrC;IACA,OAAO3B,oBACLC,QACA;QACE2B,MAAMN;QACNO,IAAIR,MAAMQ,EAAE;QACZV,SAASE,MAAMF,OAAO;QACtBW,MAAMT,MAAMS,IAAI;QAChBC,IAAI,GAAEV,cAAAA,MAAMU,IAAI,YAAVV,cAAc;QACpBW,SAAS;YACP,eAAeX,MAAMY,SAAS;YAC9BC,YAAYb,MAAMc,UAAU;YAC5B,kBAAkB,GAAEZ,+BAAAA,WAAW,CAAC,mBAAmB,YAA/BA,+BAAmC;YACvD,uBAAuB,GAAEA,mCAAAA,WAAW,CAAC,wBAAwB,YAApCA,mCAAwC;QACnE;IACF,GACA,aAAKpB;QAASQ,QAAQ,GAAEU,kBAAAA,MAAMV,QAAQ,YAAdU,kBAAkB;;AAE9C"}
|