@mj-biz-apps/orders-core-entities-server 0.0.1 → 5.2.0

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 (267) hide show
  1. package/LICENSE +183 -0
  2. package/README.md +141 -2
  3. package/dist/AccountingBridge.d.ts +65 -0
  4. package/dist/AccountingBridge.d.ts.map +1 -0
  5. package/dist/AccountingBridge.js +102 -0
  6. package/dist/AccountingBridge.js.map +1 -0
  7. package/dist/AdvanceOrderStateOperation.d.ts +80 -0
  8. package/dist/AdvanceOrderStateOperation.d.ts.map +1 -0
  9. package/dist/AdvanceOrderStateOperation.js +267 -0
  10. package/dist/AdvanceOrderStateOperation.js.map +1 -0
  11. package/dist/ApplyAccountCreditOperation.d.ts +97 -0
  12. package/dist/ApplyAccountCreditOperation.d.ts.map +1 -0
  13. package/dist/ApplyAccountCreditOperation.js +275 -0
  14. package/dist/ApplyAccountCreditOperation.js.map +1 -0
  15. package/dist/BaseDeliveryChannel.d.ts +106 -0
  16. package/dist/BaseDeliveryChannel.d.ts.map +1 -0
  17. package/dist/BaseDeliveryChannel.js +36 -0
  18. package/dist/BaseDeliveryChannel.js.map +1 -0
  19. package/dist/BasePaymentProvider.d.ts +239 -0
  20. package/dist/BasePaymentProvider.d.ts.map +1 -0
  21. package/dist/BasePaymentProvider.js +91 -0
  22. package/dist/BasePaymentProvider.js.map +1 -0
  23. package/dist/BundleBehavior.d.ts +139 -0
  24. package/dist/BundleBehavior.d.ts.map +1 -0
  25. package/dist/BundleBehavior.js +173 -0
  26. package/dist/BundleBehavior.js.map +1 -0
  27. package/dist/BundleEngine.d.ts +60 -0
  28. package/dist/BundleEngine.d.ts.map +1 -0
  29. package/dist/BundleEngine.js +197 -0
  30. package/dist/BundleEngine.js.map +1 -0
  31. package/dist/CancelSubscriptionOperation.d.ts +98 -0
  32. package/dist/CancelSubscriptionOperation.d.ts.map +1 -0
  33. package/dist/CancelSubscriptionOperation.js +317 -0
  34. package/dist/CancelSubscriptionOperation.js.map +1 -0
  35. package/dist/CapturePaymentOperation.d.ts +62 -0
  36. package/dist/CapturePaymentOperation.d.ts.map +1 -0
  37. package/dist/CapturePaymentOperation.js +463 -0
  38. package/dist/CapturePaymentOperation.js.map +1 -0
  39. package/dist/CheckEntitlementOperation.d.ts +27 -0
  40. package/dist/CheckEntitlementOperation.d.ts.map +1 -0
  41. package/dist/CheckEntitlementOperation.js +45 -0
  42. package/dist/CheckEntitlementOperation.js.map +1 -0
  43. package/dist/CheckoutSessionService.d.ts +258 -0
  44. package/dist/CheckoutSessionService.d.ts.map +1 -0
  45. package/dist/CheckoutSessionService.js +1557 -0
  46. package/dist/CheckoutSessionService.js.map +1 -0
  47. package/dist/DeliveryBehavior.d.ts +121 -0
  48. package/dist/DeliveryBehavior.d.ts.map +1 -0
  49. package/dist/DeliveryBehavior.js +145 -0
  50. package/dist/DeliveryBehavior.js.map +1 -0
  51. package/dist/DeliveryRecipientResolver.d.ts +38 -0
  52. package/dist/DeliveryRecipientResolver.d.ts.map +1 -0
  53. package/dist/DeliveryRecipientResolver.js +93 -0
  54. package/dist/DeliveryRecipientResolver.js.map +1 -0
  55. package/dist/DeliveryResolver.d.ts +14 -0
  56. package/dist/DeliveryResolver.d.ts.map +1 -0
  57. package/dist/DeliveryResolver.js +45 -0
  58. package/dist/DeliveryResolver.js.map +1 -0
  59. package/dist/EmailDeliveryChannel.d.ts +31 -0
  60. package/dist/EmailDeliveryChannel.d.ts.map +1 -0
  61. package/dist/EmailDeliveryChannel.js +158 -0
  62. package/dist/EmailDeliveryChannel.js.map +1 -0
  63. package/dist/EntitlementBehavior.d.ts +235 -0
  64. package/dist/EntitlementBehavior.d.ts.map +1 -0
  65. package/dist/EntitlementBehavior.js +330 -0
  66. package/dist/EntitlementBehavior.js.map +1 -0
  67. package/dist/EntitlementEngine.d.ts +97 -0
  68. package/dist/EntitlementEngine.d.ts.map +1 -0
  69. package/dist/EntitlementEngine.js +338 -0
  70. package/dist/EntitlementEngine.js.map +1 -0
  71. package/dist/EntitlementGrantClaimDriver.d.ts +42 -0
  72. package/dist/EntitlementGrantClaimDriver.d.ts.map +1 -0
  73. package/dist/EntitlementGrantClaimDriver.js +158 -0
  74. package/dist/EntitlementGrantClaimDriver.js.map +1 -0
  75. package/dist/EntitlementRead.d.ts +82 -0
  76. package/dist/EntitlementRead.d.ts.map +1 -0
  77. package/dist/EntitlementRead.js +368 -0
  78. package/dist/EntitlementRead.js.map +1 -0
  79. package/dist/FulfillOrderLinesOperation.d.ts +34 -0
  80. package/dist/FulfillOrderLinesOperation.d.ts.map +1 -0
  81. package/dist/FulfillOrderLinesOperation.js +208 -0
  82. package/dist/FulfillOrderLinesOperation.js.map +1 -0
  83. package/dist/FulfillmentBehavior.d.ts +101 -0
  84. package/dist/FulfillmentBehavior.d.ts.map +1 -0
  85. package/dist/FulfillmentBehavior.js +145 -0
  86. package/dist/FulfillmentBehavior.js.map +1 -0
  87. package/dist/GLAccountResolver.d.ts +123 -0
  88. package/dist/GLAccountResolver.d.ts.map +1 -0
  89. package/dist/GLAccountResolver.js +175 -0
  90. package/dist/GLAccountResolver.js.map +1 -0
  91. package/dist/GetFulfillmentQueueOperation.d.ts +35 -0
  92. package/dist/GetFulfillmentQueueOperation.d.ts.map +1 -0
  93. package/dist/GetFulfillmentQueueOperation.js +221 -0
  94. package/dist/GetFulfillmentQueueOperation.js.map +1 -0
  95. package/dist/GetOverdueWorklistOperation.d.ts +41 -0
  96. package/dist/GetOverdueWorklistOperation.d.ts.map +1 -0
  97. package/dist/GetOverdueWorklistOperation.js +210 -0
  98. package/dist/GetOverdueWorklistOperation.js.map +1 -0
  99. package/dist/GiftCardBehavior.d.ts +97 -0
  100. package/dist/GiftCardBehavior.d.ts.map +1 -0
  101. package/dist/GiftCardBehavior.js +121 -0
  102. package/dist/GiftCardBehavior.js.map +1 -0
  103. package/dist/GiftCardEngine.d.ts +59 -0
  104. package/dist/GiftCardEngine.d.ts.map +1 -0
  105. package/dist/GiftCardEngine.js +197 -0
  106. package/dist/GiftCardEngine.js.map +1 -0
  107. package/dist/GuestOrderClaimDriver.d.ts +36 -0
  108. package/dist/GuestOrderClaimDriver.d.ts.map +1 -0
  109. package/dist/GuestOrderClaimDriver.js +161 -0
  110. package/dist/GuestOrderClaimDriver.js.map +1 -0
  111. package/dist/InvoiceBehavior.d.ts +394 -0
  112. package/dist/InvoiceBehavior.d.ts.map +1 -0
  113. package/dist/InvoiceBehavior.js +496 -0
  114. package/dist/InvoiceBehavior.js.map +1 -0
  115. package/dist/InvoiceBuilder.d.ts +48 -0
  116. package/dist/InvoiceBuilder.d.ts.map +1 -0
  117. package/dist/InvoiceBuilder.js +352 -0
  118. package/dist/InvoiceBuilder.js.map +1 -0
  119. package/dist/InvoiceDisplay.d.ts +96 -0
  120. package/dist/InvoiceDisplay.d.ts.map +1 -0
  121. package/dist/InvoiceDisplay.js +121 -0
  122. package/dist/InvoiceDisplay.js.map +1 -0
  123. package/dist/ListEntitlementsOperation.d.ts +21 -0
  124. package/dist/ListEntitlementsOperation.d.ts.map +1 -0
  125. package/dist/ListEntitlementsOperation.js +39 -0
  126. package/dist/ListEntitlementsOperation.js.map +1 -0
  127. package/dist/ManualPaymentProvider.d.ts +19 -0
  128. package/dist/ManualPaymentProvider.d.ts.map +1 -0
  129. package/dist/ManualPaymentProvider.js +92 -0
  130. package/dist/ManualPaymentProvider.js.map +1 -0
  131. package/dist/OrderEntityServer.d.ts +542 -0
  132. package/dist/OrderEntityServer.d.ts.map +1 -0
  133. package/dist/OrderEntityServer.js +2100 -0
  134. package/dist/OrderEntityServer.js.map +1 -0
  135. package/dist/OrderJournalEntryFactory.d.ts +140 -0
  136. package/dist/OrderJournalEntryFactory.d.ts.map +1 -0
  137. package/dist/OrderJournalEntryFactory.js +466 -0
  138. package/dist/OrderJournalEntryFactory.js.map +1 -0
  139. package/dist/OrderLineEntityServer.d.ts +90 -0
  140. package/dist/OrderLineEntityServer.d.ts.map +1 -0
  141. package/dist/OrderLineEntityServer.js +260 -0
  142. package/dist/OrderLineEntityServer.js.map +1 -0
  143. package/dist/OrdersSettings.d.ts +36 -0
  144. package/dist/OrdersSettings.d.ts.map +1 -0
  145. package/dist/OrdersSettings.js +147 -0
  146. package/dist/OrdersSettings.js.map +1 -0
  147. package/dist/PaymentAllocationFactory.d.ts +128 -0
  148. package/dist/PaymentAllocationFactory.d.ts.map +1 -0
  149. package/dist/PaymentAllocationFactory.js +235 -0
  150. package/dist/PaymentAllocationFactory.js.map +1 -0
  151. package/dist/PaymentHeaderEntityServer.d.ts +180 -0
  152. package/dist/PaymentHeaderEntityServer.d.ts.map +1 -0
  153. package/dist/PaymentHeaderEntityServer.js +656 -0
  154. package/dist/PaymentHeaderEntityServer.js.map +1 -0
  155. package/dist/PaymentIntentService.d.ts +101 -0
  156. package/dist/PaymentIntentService.d.ts.map +1 -0
  157. package/dist/PaymentIntentService.js +150 -0
  158. package/dist/PaymentIntentService.js.map +1 -0
  159. package/dist/PaymentJournalEntryFactory.d.ts +99 -0
  160. package/dist/PaymentJournalEntryFactory.d.ts.map +1 -0
  161. package/dist/PaymentJournalEntryFactory.js +127 -0
  162. package/dist/PaymentJournalEntryFactory.js.map +1 -0
  163. package/dist/PaymentLineEntityServer.d.ts +73 -0
  164. package/dist/PaymentLineEntityServer.d.ts.map +1 -0
  165. package/dist/PaymentLineEntityServer.js +303 -0
  166. package/dist/PaymentLineEntityServer.js.map +1 -0
  167. package/dist/PaymentProviderBehavior.d.ts +222 -0
  168. package/dist/PaymentProviderBehavior.d.ts.map +1 -0
  169. package/dist/PaymentProviderBehavior.js +368 -0
  170. package/dist/PaymentProviderBehavior.js.map +1 -0
  171. package/dist/PaymentProviderResolver.d.ts +84 -0
  172. package/dist/PaymentProviderResolver.d.ts.map +1 -0
  173. package/dist/PaymentProviderResolver.js +220 -0
  174. package/dist/PaymentProviderResolver.js.map +1 -0
  175. package/dist/PaymentReversalFactory.d.ts +107 -0
  176. package/dist/PaymentReversalFactory.d.ts.map +1 -0
  177. package/dist/PaymentReversalFactory.js +174 -0
  178. package/dist/PaymentReversalFactory.js.map +1 -0
  179. package/dist/PaymentSettlement.d.ts +56 -0
  180. package/dist/PaymentSettlement.d.ts.map +1 -0
  181. package/dist/PaymentSettlement.js +243 -0
  182. package/dist/PaymentSettlement.js.map +1 -0
  183. package/dist/PaymentTermsBehavior.d.ts +109 -0
  184. package/dist/PaymentTermsBehavior.d.ts.map +1 -0
  185. package/dist/PaymentTermsBehavior.js +172 -0
  186. package/dist/PaymentTermsBehavior.js.map +1 -0
  187. package/dist/PaymentWebhookHandler.d.ts +103 -0
  188. package/dist/PaymentWebhookHandler.d.ts.map +1 -0
  189. package/dist/PaymentWebhookHandler.js +246 -0
  190. package/dist/PaymentWebhookHandler.js.map +1 -0
  191. package/dist/PreviewPriceOperation.d.ts +62 -0
  192. package/dist/PreviewPriceOperation.d.ts.map +1 -0
  193. package/dist/PreviewPriceOperation.js +161 -0
  194. package/dist/PreviewPriceOperation.js.map +1 -0
  195. package/dist/PriceOrderOperation.d.ts +93 -0
  196. package/dist/PriceOrderOperation.d.ts.map +1 -0
  197. package/dist/PriceOrderOperation.js +146 -0
  198. package/dist/PriceOrderOperation.js.map +1 -0
  199. package/dist/ProductPriceEntityServer.d.ts +34 -0
  200. package/dist/ProductPriceEntityServer.d.ts.map +1 -0
  201. package/dist/ProductPriceEntityServer.js +97 -0
  202. package/dist/ProductPriceEntityServer.js.map +1 -0
  203. package/dist/RefundPaymentOperation.d.ts +61 -0
  204. package/dist/RefundPaymentOperation.d.ts.map +1 -0
  205. package/dist/RefundPaymentOperation.js +177 -0
  206. package/dist/RefundPaymentOperation.js.map +1 -0
  207. package/dist/RevenueRecognition.d.ts +76 -0
  208. package/dist/RevenueRecognition.d.ts.map +1 -0
  209. package/dist/RevenueRecognition.js +133 -0
  210. package/dist/RevenueRecognition.js.map +1 -0
  211. package/dist/ReversalBehavior.d.ts +82 -0
  212. package/dist/ReversalBehavior.d.ts.map +1 -0
  213. package/dist/ReversalBehavior.js +100 -0
  214. package/dist/ReversalBehavior.js.map +1 -0
  215. package/dist/ReversalResolver.d.ts +37 -0
  216. package/dist/ReversalResolver.d.ts.map +1 -0
  217. package/dist/ReversalResolver.js +96 -0
  218. package/dist/ReversalResolver.js.map +1 -0
  219. package/dist/SpawnRenewalsOperation.d.ts +109 -0
  220. package/dist/SpawnRenewalsOperation.d.ts.map +1 -0
  221. package/dist/SpawnRenewalsOperation.js +295 -0
  222. package/dist/SpawnRenewalsOperation.js.map +1 -0
  223. package/dist/StoredValuePaymentProvider.d.ts +52 -0
  224. package/dist/StoredValuePaymentProvider.d.ts.map +1 -0
  225. package/dist/StoredValuePaymentProvider.js +205 -0
  226. package/dist/StoredValuePaymentProvider.js.map +1 -0
  227. package/dist/StripeACHPaymentProvider.d.ts +50 -0
  228. package/dist/StripeACHPaymentProvider.d.ts.map +1 -0
  229. package/dist/StripeACHPaymentProvider.js +211 -0
  230. package/dist/StripeACHPaymentProvider.js.map +1 -0
  231. package/dist/StripePaymentProvider.d.ts +83 -0
  232. package/dist/StripePaymentProvider.d.ts.map +1 -0
  233. package/dist/StripePaymentProvider.js +442 -0
  234. package/dist/StripePaymentProvider.js.map +1 -0
  235. package/dist/SubscriptionBehavior.d.ts +197 -0
  236. package/dist/SubscriptionBehavior.d.ts.map +1 -0
  237. package/dist/SubscriptionBehavior.js +415 -0
  238. package/dist/SubscriptionBehavior.js.map +1 -0
  239. package/dist/checkoutCaptureAlert.d.ts +16 -0
  240. package/dist/checkoutCaptureAlert.d.ts.map +1 -0
  241. package/dist/checkoutCaptureAlert.js +55 -0
  242. package/dist/checkoutCaptureAlert.js.map +1 -0
  243. package/dist/checkoutCaptureRetry.d.ts +27 -0
  244. package/dist/checkoutCaptureRetry.d.ts.map +1 -0
  245. package/dist/checkoutCaptureRetry.js +50 -0
  246. package/dist/checkoutCaptureRetry.js.map +1 -0
  247. package/dist/claimDriverHelpers.d.ts +15 -0
  248. package/dist/claimDriverHelpers.d.ts.map +1 -0
  249. package/dist/claimDriverHelpers.js +34 -0
  250. package/dist/claimDriverHelpers.js.map +1 -0
  251. package/dist/entity-names.d.ts +15 -0
  252. package/dist/entity-names.d.ts.map +1 -0
  253. package/dist/entity-names.js +15 -0
  254. package/dist/entity-names.js.map +1 -0
  255. package/dist/identityClaimContracts.d.ts +118 -0
  256. package/dist/identityClaimContracts.d.ts.map +1 -0
  257. package/dist/identityClaimContracts.js +58 -0
  258. package/dist/identityClaimContracts.js.map +1 -0
  259. package/dist/index.d.ts +126 -0
  260. package/dist/index.d.ts.map +1 -0
  261. package/dist/index.js +115 -0
  262. package/dist/index.js.map +1 -0
  263. package/dist/sql-guards.d.ts +78 -0
  264. package/dist/sql-guards.d.ts.map +1 -0
  265. package/dist/sql-guards.js +115 -0
  266. package/dist/sql-guards.js.map +1 -0
  267. package/package.json +50 -5
@@ -0,0 +1 @@
1
+ {"version":3,"file":"CheckoutSessionService.js","sourceRoot":"","sources":["../src/CheckoutSessionService.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,121 @@
1
+ /**
2
+ * Deciding who a document goes to, and whether it should go at all — with no channel and no network.
3
+ *
4
+ * WHY THIS IS A SEPARATE MODULE FROM THE SENDING. Sending is the easy half: MJ's communication
5
+ * framework already owns providers, templates, retries and logging, and nothing here should
6
+ * reimplement any of it. The half that goes wrong is everything BEFORE the send — working out which
7
+ * address is the right one, noticing that there isn't one, and refusing to send a document that should
8
+ * not exist yet. Those are decisions over plain data, so they are proven here with literals rather
9
+ * than against a mail server.
10
+ *
11
+ * ═══ THE FAILURE THIS MODULE EXISTS TO PREVENT ═══
12
+ *
13
+ * A bill sent to the wrong person is worse than a bill not sent. The second is visible — somebody
14
+ * chases it — while the first is silent, arrives at a real inbox, and discloses one customer's
15
+ * commercial terms to another. So recipient resolution REFUSES rather than falls back: there is no
16
+ * "if we can't find the billing contact, try the first person we have". Every candidate address must
17
+ * be one somebody deliberately recorded against this customer for this purpose.
18
+ *
19
+ * SENDING A DRAFT IS THE OTHER ONE. A document rendered from an unconfirmed order carries real
20
+ * numbers, a real customer name and no legal standing, and once it is a PDF in an accounts-payable
21
+ * inbox nothing distinguishes it from a real invoice. {@link DecideDelivery} refuses those by status
22
+ * rather than trusting every caller to check first.
23
+ *
24
+ * IDEMPOTENCY IS ADVISORY HERE, DELIBERATELY. {@link DeliveryIdempotencyKey} produces a stable key for
25
+ * a (document, channel, address) triple so a caller CAN detect a repeat, but this module cannot know
26
+ * whether a repeat is a mistake. Re-sending an invoice because the customer asked again is ordinary;
27
+ * re-sending it because a workflow retried is not. The key makes the distinction available to whoever
28
+ * has the context to make it.
29
+ *
30
+ * CONNECTS TO:
31
+ * SEAM: ./BaseDeliveryChannel.ts — what actually sends
32
+ * CHANNEL: ./EmailDeliveryChannel.ts — the one shipped implementation
33
+ * DOC: plans/archive/bizapps-orders-master.md §4.4
34
+ */
35
+ /** How a document leaves the building. A union rather than an enum, per the house style. */
36
+ export type DeliveryChannelCode = 'Email';
37
+ /** One party a document could be sent to, as recorded against the customer. */
38
+ export interface DeliveryContact {
39
+ /** The address itself — an email today, whatever the channel speaks tomorrow. */
40
+ Address: string | null;
41
+ /** For the display name on the message. */
42
+ FullName?: string | null;
43
+ /**
44
+ * What this contact is FOR. Only contacts recorded for billing are eligible; see the header for
45
+ * why there is no fallback to "any address we happen to hold".
46
+ */
47
+ Purpose: 'Billing' | 'Primary' | 'Other';
48
+ }
49
+ /** Everything the decision needs about the document being sent. */
50
+ export interface DeliverableFacts {
51
+ /** `Invoice`, `Quote`, `CreditMemo`, `Statement`, … — free text, since new kinds are expected. */
52
+ Kind: string;
53
+ /** The document's own number, which becomes part of the subject and the idempotency key. */
54
+ DocumentNumber: string;
55
+ /** The originating order's status. A draft must not be delivered as though it were a bill. */
56
+ SourceStatus: string;
57
+ /** The company that is owed the money — the sender, from the customer's point of view. */
58
+ IssuerName: string;
59
+ /** What is owed. Zero is legitimate (a fully paid invoice, a credit memo). */
60
+ AmountDue: number;
61
+ /** Formatted for display by the caller's locale rules — this module never formats money. */
62
+ AmountDueDisplay?: string;
63
+ /** When it is due, already formatted. Null when the document carries no due date. */
64
+ DueDateDisplay?: string | null;
65
+ }
66
+ export type DeliveryVerdict = 'Send' | 'Refuse';
67
+ export interface DeliveryDecision {
68
+ Verdict: DeliveryVerdict;
69
+ /** Why not, when not — written for the person who has to fix it. */
70
+ Reason: string;
71
+ /** A stable code so a caller can branch without parsing prose. */
72
+ Code: 'OK' | 'NOT_DELIVERABLE' | 'NO_RECIPIENT' | 'NO_DOCUMENT';
73
+ }
74
+ /**
75
+ * Whether this document may be sent to these recipients.
76
+ *
77
+ * Both halves have to hold, and the ORDER of the checks is chosen so the message names the more
78
+ * fundamental problem first: an unconfirmed order with no billing contact should be reported as an
79
+ * order that is not ready, not as a missing address, because fixing the address would not help.
80
+ */
81
+ export declare function DecideDelivery(input: {
82
+ Document: DeliverableFacts | null | undefined;
83
+ Recipients: readonly DeliveryContact[];
84
+ }): DeliveryDecision;
85
+ /**
86
+ * Narrow a customer's contacts to the ones this document may actually go to.
87
+ *
88
+ * BILLING CONTACTS ONLY, AND NO FALLBACK. The tempting rule — "billing contacts, or the primary
89
+ * contact if there are none" — is how an invoice reaches a company's general enquiries inbox, or a
90
+ * former employee. If nobody has said where bills go, the honest answer is that we do not know.
91
+ *
92
+ * De-duplicated case-insensitively, because the same address recorded twice sends the same invoice
93
+ * twice, and a customer who receives two bills for one order will reasonably ask whether they owe
94
+ * twice.
95
+ */
96
+ export declare function ResolveRecipients(contacts: readonly DeliveryContact[]): DeliveryContact[];
97
+ /**
98
+ * The subject line.
99
+ *
100
+ * THE DOCUMENT NUMBER COMES FIRST, before the issuer's name, because that is what a person searching
101
+ * their inbox six weeks later actually types. It is also what an accounts-payable system keys on when
102
+ * it scrapes subjects, and burying it behind a company name that may be truncated in a list view puts
103
+ * it out of reach of both.
104
+ *
105
+ * A CREDIT MEMO IS NAMED AS ONE. A credit and an invoice differ by a sign that does not survive a
106
+ * subject line, and "Invoice CN-1042 from Contoso" for a document that owes the customer money is the
107
+ * kind of wrong that generates a support call rather than a payment.
108
+ */
109
+ export declare function BuildSubject(document: DeliverableFacts): string;
110
+ /**
111
+ * A stable key for "this document, on this channel, to this address".
112
+ *
113
+ * DELIBERATELY EXCLUDES THE TIMESTAMP AND THE BODY. A re-render of the same document produces
114
+ * byte-different HTML (a generated-on date, a rounding of the same figure) while being the same
115
+ * delivery, so keying on content would make every retry look like a new send — which is exactly
116
+ * backwards from what a caller wants to detect.
117
+ *
118
+ * Lower-cased throughout, so an address that differs only in case does not read as a second delivery.
119
+ */
120
+ export declare function DeliveryIdempotencyKey(documentNumber: string, channel: DeliveryChannelCode, address: string): string;
121
+ //# sourceMappingURL=DeliveryBehavior.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"DeliveryBehavior.d.ts","sourceRoot":"","sources":["../src/DeliveryBehavior.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAiCG;AAEH,4FAA4F;AAC5F,MAAM,MAAM,mBAAmB,GAAG,OAAO,CAAC;AAE1C,+EAA+E;AAC/E,MAAM,WAAW,eAAe;IAC5B,iFAAiF;IACjF,OAAO,EAAE,MAAM,GAAG,IAAI,CAAC;IACvB,2CAA2C;IAC3C,QAAQ,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IACzB;;;OAGG;IACH,OAAO,EAAE,SAAS,GAAG,SAAS,GAAG,OAAO,CAAC;CAC5C;AAED,mEAAmE;AACnE,MAAM,WAAW,gBAAgB;IAC7B,kGAAkG;IAClG,IAAI,EAAE,MAAM,CAAC;IACb,4FAA4F;IAC5F,cAAc,EAAE,MAAM,CAAC;IACvB,8FAA8F;IAC9F,YAAY,EAAE,MAAM,CAAC;IACrB,0FAA0F;IAC1F,UAAU,EAAE,MAAM,CAAC;IACnB,8EAA8E;IAC9E,SAAS,EAAE,MAAM,CAAC;IAClB,4FAA4F;IAC5F,gBAAgB,CAAC,EAAE,MAAM,CAAC;IAC1B,qFAAqF;IACrF,cAAc,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;CAClC;AAmBD,MAAM,MAAM,eAAe,GAAG,MAAM,GAAG,QAAQ,CAAC;AAEhD,MAAM,WAAW,gBAAgB;IAC7B,OAAO,EAAE,eAAe,CAAC;IACzB,oEAAoE;IACpE,MAAM,EAAE,MAAM,CAAC;IACf,kEAAkE;IAClE,IAAI,EAAE,IAAI,GAAG,iBAAiB,GAAG,cAAc,GAAG,aAAa,CAAC;CACnE;AAED;;;;;;GAMG;AACH,wBAAgB,cAAc,CAAC,KAAK,EAAE;IAClC,QAAQ,EAAE,gBAAgB,GAAG,IAAI,GAAG,SAAS,CAAC;IAC9C,UAAU,EAAE,SAAS,eAAe,EAAE,CAAC;CAC1C,GAAG,gBAAgB,CA2BnB;AAED;;;;;;;;;;GAUG;AACH,wBAAgB,iBAAiB,CAAC,QAAQ,EAAE,SAAS,eAAe,EAAE,GAAG,eAAe,EAAE,CAgBzF;AAED;;;;;;;;;;;GAWG;AACH,wBAAgB,YAAY,CAAC,QAAQ,EAAE,gBAAgB,GAAG,MAAM,CAe/D;AAED;;;;;;;;;GASG;AACH,wBAAgB,sBAAsB,CAClC,cAAc,EAAE,MAAM,EACtB,OAAO,EAAE,mBAAmB,EAC5B,OAAO,EAAE,MAAM,GAChB,MAAM,CAER"}
@@ -0,0 +1,145 @@
1
+ /**
2
+ * Deciding who a document goes to, and whether it should go at all — with no channel and no network.
3
+ *
4
+ * WHY THIS IS A SEPARATE MODULE FROM THE SENDING. Sending is the easy half: MJ's communication
5
+ * framework already owns providers, templates, retries and logging, and nothing here should
6
+ * reimplement any of it. The half that goes wrong is everything BEFORE the send — working out which
7
+ * address is the right one, noticing that there isn't one, and refusing to send a document that should
8
+ * not exist yet. Those are decisions over plain data, so they are proven here with literals rather
9
+ * than against a mail server.
10
+ *
11
+ * ═══ THE FAILURE THIS MODULE EXISTS TO PREVENT ═══
12
+ *
13
+ * A bill sent to the wrong person is worse than a bill not sent. The second is visible — somebody
14
+ * chases it — while the first is silent, arrives at a real inbox, and discloses one customer's
15
+ * commercial terms to another. So recipient resolution REFUSES rather than falls back: there is no
16
+ * "if we can't find the billing contact, try the first person we have". Every candidate address must
17
+ * be one somebody deliberately recorded against this customer for this purpose.
18
+ *
19
+ * SENDING A DRAFT IS THE OTHER ONE. A document rendered from an unconfirmed order carries real
20
+ * numbers, a real customer name and no legal standing, and once it is a PDF in an accounts-payable
21
+ * inbox nothing distinguishes it from a real invoice. {@link DecideDelivery} refuses those by status
22
+ * rather than trusting every caller to check first.
23
+ *
24
+ * IDEMPOTENCY IS ADVISORY HERE, DELIBERATELY. {@link DeliveryIdempotencyKey} produces a stable key for
25
+ * a (document, channel, address) triple so a caller CAN detect a repeat, but this module cannot know
26
+ * whether a repeat is a mistake. Re-sending an invoice because the customer asked again is ordinary;
27
+ * re-sending it because a workflow retried is not. The key makes the distinction available to whoever
28
+ * has the context to make it.
29
+ *
30
+ * CONNECTS TO:
31
+ * SEAM: ./BaseDeliveryChannel.ts — what actually sends
32
+ * CHANNEL: ./EmailDeliveryChannel.ts — the one shipped implementation
33
+ * DOC: plans/archive/bizapps-orders-master.md §4.4
34
+ */
35
+ /**
36
+ * Order statuses whose document is NOT a bill and must not be delivered as one.
37
+ *
38
+ * `Voided` is the dangerous member. A voided order still renders — the reader deliberately produces a
39
+ * document so somebody can look at what was voided — and a bill for money nobody owes is
40
+ * indistinguishable from a real one once it has been emailed.
41
+ */
42
+ const UNDELIVERABLE_STATUSES = new Set(['Draft', 'Voided', 'Cancelled', 'Canceled']);
43
+ /**
44
+ * Statuses that produce a document which is real but is NOT an invoice.
45
+ *
46
+ * A quote is delivered happily; it just must not be described as a bill in the subject line, which is
47
+ * why the kind rather than the status drives the wording.
48
+ */
49
+ const QUOTE_STATUSES = new Set(['Quoted']);
50
+ /**
51
+ * Whether this document may be sent to these recipients.
52
+ *
53
+ * Both halves have to hold, and the ORDER of the checks is chosen so the message names the more
54
+ * fundamental problem first: an unconfirmed order with no billing contact should be reported as an
55
+ * order that is not ready, not as a missing address, because fixing the address would not help.
56
+ */
57
+ export function DecideDelivery(input) {
58
+ if (!input.Document) {
59
+ return { Verdict: 'Refuse', Code: 'NO_DOCUMENT', Reason: 'there is no document to deliver' };
60
+ }
61
+ const status = (input.Document.SourceStatus ?? '').trim();
62
+ if (UNDELIVERABLE_STATUSES.has(status)) {
63
+ return {
64
+ Verdict: 'Refuse',
65
+ Code: 'NOT_DELIVERABLE',
66
+ Reason: `${input.Document.DocumentNumber} comes from a ${status.toLowerCase()} order, so it is not a bill. ` +
67
+ `Sending it would put a document that looks exactly like a real invoice in a customer's inbox.`,
68
+ };
69
+ }
70
+ if (!ResolveRecipients(input.Recipients).length) {
71
+ return {
72
+ Verdict: 'Refuse',
73
+ Code: 'NO_RECIPIENT',
74
+ Reason: `${input.Document.DocumentNumber} has nobody to go to — no billing contact is recorded for this ` +
75
+ `customer. Record one rather than sending to whichever address happens to be on file.`,
76
+ };
77
+ }
78
+ return { Verdict: 'Send', Code: 'OK', Reason: 'the document is deliverable and has a recipient' };
79
+ }
80
+ /**
81
+ * Narrow a customer's contacts to the ones this document may actually go to.
82
+ *
83
+ * BILLING CONTACTS ONLY, AND NO FALLBACK. The tempting rule — "billing contacts, or the primary
84
+ * contact if there are none" — is how an invoice reaches a company's general enquiries inbox, or a
85
+ * former employee. If nobody has said where bills go, the honest answer is that we do not know.
86
+ *
87
+ * De-duplicated case-insensitively, because the same address recorded twice sends the same invoice
88
+ * twice, and a customer who receives two bills for one order will reasonably ask whether they owe
89
+ * twice.
90
+ */
91
+ export function ResolveRecipients(contacts) {
92
+ const seen = new Set();
93
+ const out = [];
94
+ for (const contact of contacts ?? []) {
95
+ if (contact?.Purpose !== 'Billing')
96
+ continue;
97
+ const address = (contact.Address ?? '').trim();
98
+ if (!address)
99
+ continue;
100
+ const key = address.toLowerCase();
101
+ if (seen.has(key))
102
+ continue;
103
+ seen.add(key);
104
+ out.push({ ...contact, Address: address });
105
+ }
106
+ return out;
107
+ }
108
+ /**
109
+ * The subject line.
110
+ *
111
+ * THE DOCUMENT NUMBER COMES FIRST, before the issuer's name, because that is what a person searching
112
+ * their inbox six weeks later actually types. It is also what an accounts-payable system keys on when
113
+ * it scrapes subjects, and burying it behind a company name that may be truncated in a list view puts
114
+ * it out of reach of both.
115
+ *
116
+ * A CREDIT MEMO IS NAMED AS ONE. A credit and an invoice differ by a sign that does not survive a
117
+ * subject line, and "Invoice CN-1042 from Contoso" for a document that owes the customer money is the
118
+ * kind of wrong that generates a support call rather than a payment.
119
+ */
120
+ export function BuildSubject(document) {
121
+ const kind = (document.Kind ?? '').toLowerCase();
122
+ const noun = kind.includes('credit') ? 'Credit memo'
123
+ : kind.includes('quote') || QUOTE_STATUSES.has(document.SourceStatus) ? 'Quote'
124
+ : 'Invoice';
125
+ const amount = document.AmountDueDisplay?.trim();
126
+ const due = document.DueDateDisplay?.trim();
127
+ // Amount and due date are appended only when BOTH are meaningful. A subject reading
128
+ // "Invoice INV-1042 from Contoso — due" is worse than one that stops after the company name.
129
+ const tail = amount && due ? ` — ${amount} due ${due}` : amount ? ` — ${amount}` : '';
130
+ return `${noun} ${document.DocumentNumber} from ${document.IssuerName}${tail}`;
131
+ }
132
+ /**
133
+ * A stable key for "this document, on this channel, to this address".
134
+ *
135
+ * DELIBERATELY EXCLUDES THE TIMESTAMP AND THE BODY. A re-render of the same document produces
136
+ * byte-different HTML (a generated-on date, a rounding of the same figure) while being the same
137
+ * delivery, so keying on content would make every retry look like a new send — which is exactly
138
+ * backwards from what a caller wants to detect.
139
+ *
140
+ * Lower-cased throughout, so an address that differs only in case does not read as a second delivery.
141
+ */
142
+ export function DeliveryIdempotencyKey(documentNumber, channel, address) {
143
+ return [documentNumber.trim(), channel, address.trim()].join('|').toLowerCase();
144
+ }
145
+ //# sourceMappingURL=DeliveryBehavior.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"DeliveryBehavior.js","sourceRoot":"","sources":["../src/DeliveryBehavior.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,38 @@
1
+ /**
2
+ * Reading who an order's document should go to.
3
+ *
4
+ * THE ORDER ALREADY ANSWERS THIS, and that is the whole design. `BillToOrganizationID` and
5
+ * `BillToPersonID` are not incidental references — they are somebody's recorded decision about who is
6
+ * being billed for this order, made when the order was taken. So the billing contacts are the email
7
+ * addresses of exactly those parties, and nothing else on the customer record is eligible. There is no
8
+ * search for "an address we hold for this company", because that search is how an invoice reaches a
9
+ * general enquiries inbox or a former employee, and neither failure is visible from the sending side.
10
+ *
11
+ * BOTH ARE RETURNED WHEN BOTH EXIST. An order billed to a person AT an organisation names both, and
12
+ * both are legitimately expecting the bill — the person because it is addressed to them, the
13
+ * organisation because its accounts-payable address is where invoices are processed. Choosing one
14
+ * would be this module inventing a policy the order did not express; `DeliveryBehavior` de-duplicates
15
+ * them if they turn out to be the same address.
16
+ *
17
+ * WHY NOT ON `InvoicePartyFacts.Email`. That field exists on the rendered document and is deliberately
18
+ * left null by the builder: it is there so a TEMPLATE can print a contact address, which is a
19
+ * presentation concern and may legitimately be a different address from the one the bill is sent to.
20
+ * Wiring delivery to it would couple where a document goes to what it prints.
21
+ *
22
+ * CONNECTS TO:
23
+ * PURE: ./DeliveryBehavior.ts — which of these are eligible, and de-duplication
24
+ * DOC: plans/archive/bizapps-orders-master.md §4.4, D65
25
+ */
26
+ import { type IMetadataProvider, type UserInfo } from '@memberjunction/core';
27
+ import type { DeliveryContact } from './DeliveryBehavior.js';
28
+ /**
29
+ * The contacts an order's document may be delivered to.
30
+ *
31
+ * Returns an EMPTY LIST rather than throwing when nothing is recorded. "Nobody to send to" is a
32
+ * decision `DecideDelivery` makes and reports with a reason a person can act on; a throw here would
33
+ * turn it into a stack trace in a workflow log.
34
+ */
35
+ export declare function LoadOrderDeliveryContacts(orderID: string, provider: IMetadataProvider, user: UserInfo): Promise<DeliveryContact[]>;
36
+ /** The order's status, for the deliverability decision. Null when the order does not exist. */
37
+ export declare function LoadOrderStatus(orderID: string, provider: IMetadataProvider, user: UserInfo): Promise<string | null>;
38
+ //# sourceMappingURL=DeliveryRecipientResolver.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"DeliveryRecipientResolver.d.ts","sourceRoot":"","sources":["../src/DeliveryRecipientResolver.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;GAwBG;AACH,OAAO,EAAW,KAAK,iBAAiB,EAAyB,KAAK,QAAQ,EAAE,MAAM,sBAAsB,CAAC;AAC7G,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,uBAAuB,CAAC;AAa7D;;;;;;GAMG;AACH,wBAAsB,yBAAyB,CAC3C,OAAO,EAAE,MAAM,EACf,QAAQ,EAAE,iBAAiB,EAC3B,IAAI,EAAE,QAAQ,GACf,OAAO,CAAC,eAAe,EAAE,CAAC,CAwD5B;AAED,+FAA+F;AAC/F,wBAAsB,eAAe,CACjC,OAAO,EAAE,MAAM,EACf,QAAQ,EAAE,iBAAiB,EAC3B,IAAI,EAAE,QAAQ,GACf,OAAO,CAAC,MAAM,GAAG,IAAI,CAAC,CAYxB"}
@@ -0,0 +1,93 @@
1
+ /**
2
+ * Reading who an order's document should go to.
3
+ *
4
+ * THE ORDER ALREADY ANSWERS THIS, and that is the whole design. `BillToOrganizationID` and
5
+ * `BillToPersonID` are not incidental references — they are somebody's recorded decision about who is
6
+ * being billed for this order, made when the order was taken. So the billing contacts are the email
7
+ * addresses of exactly those parties, and nothing else on the customer record is eligible. There is no
8
+ * search for "an address we hold for this company", because that search is how an invoice reaches a
9
+ * general enquiries inbox or a former employee, and neither failure is visible from the sending side.
10
+ *
11
+ * BOTH ARE RETURNED WHEN BOTH EXIST. An order billed to a person AT an organisation names both, and
12
+ * both are legitimately expecting the bill — the person because it is addressed to them, the
13
+ * organisation because its accounts-payable address is where invoices are processed. Choosing one
14
+ * would be this module inventing a policy the order did not express; `DeliveryBehavior` de-duplicates
15
+ * them if they turn out to be the same address.
16
+ *
17
+ * WHY NOT ON `InvoicePartyFacts.Email`. That field exists on the rendered document and is deliberately
18
+ * left null by the builder: it is there so a TEMPLATE can print a contact address, which is a
19
+ * presentation concern and may legitimately be a different address from the one the bill is sent to.
20
+ * Wiring delivery to it would couple where a document goes to what it prints.
21
+ *
22
+ * CONNECTS TO:
23
+ * PURE: ./DeliveryBehavior.ts — which of these are eligible, and de-duplication
24
+ * DOC: plans/archive/bizapps-orders-master.md §4.4, D65
25
+ */
26
+ import { RunView } from '@memberjunction/core';
27
+ const ORDER_HEADER_ENTITY = 'MJ_BizApps_Orders: Order Headers';
28
+ const PERSON_ENTITY = 'MJ_BizApps_Common: People';
29
+ const ORGANIZATION_ENTITY = 'MJ_BizApps_Common: Organizations';
30
+ /**
31
+ * The contacts an order's document may be delivered to.
32
+ *
33
+ * Returns an EMPTY LIST rather than throwing when nothing is recorded. "Nobody to send to" is a
34
+ * decision `DecideDelivery` makes and reports with a reason a person can act on; a throw here would
35
+ * turn it into a stack trace in a workflow log.
36
+ */
37
+ export async function LoadOrderDeliveryContacts(orderID, provider, user) {
38
+ const rv = new RunView(provider);
39
+ const orderResult = await rv.RunView({
40
+ EntityName: ORDER_HEADER_ENTITY,
41
+ ExtraFilter: `ID='${orderID}'`,
42
+ Fields: ['BillToPersonID', 'BillToOrganizationID', 'Status'],
43
+ ResultType: 'simple',
44
+ }, user);
45
+ const order = orderResult?.Results?.[0];
46
+ if (!order)
47
+ return [];
48
+ // ONE BATCHED PAIR, not two sequential reads — and both are issued even when only one id is set,
49
+ // because a RunViews with an impossible filter costs less than the branching needed to avoid it
50
+ // and keeps the result positions fixed.
51
+ const [people, organizations] = await rv.RunViews([
52
+ {
53
+ EntityName: PERSON_ENTITY,
54
+ ExtraFilter: order.BillToPersonID ? `ID='${order.BillToPersonID}'` : '1=0',
55
+ Fields: ['ID', 'Email', 'FirstName', 'LastName'],
56
+ ResultType: 'simple',
57
+ },
58
+ {
59
+ EntityName: ORGANIZATION_ENTITY,
60
+ ExtraFilter: order.BillToOrganizationID ? `ID='${order.BillToOrganizationID}'` : '1=0',
61
+ Fields: ['ID', 'Email', 'Name'],
62
+ ResultType: 'simple',
63
+ },
64
+ ], user);
65
+ const contacts = [];
66
+ const person = (people?.Results ?? [])[0];
67
+ if (person?.Email) {
68
+ contacts.push({
69
+ Address: person.Email,
70
+ FullName: [person.FirstName, person.LastName].filter(Boolean).join(' ') || null,
71
+ // 'Billing' because the ORDER named them as the bill-to party. This is not a guess about a
72
+ // general-purpose contact; it is the decision the order already records.
73
+ Purpose: 'Billing',
74
+ });
75
+ }
76
+ const organization = (organizations?.Results ?? [])[0];
77
+ if (organization?.Email) {
78
+ contacts.push({ Address: organization.Email, FullName: organization.Name ?? null, Purpose: 'Billing' });
79
+ }
80
+ return contacts;
81
+ }
82
+ /** The order's status, for the deliverability decision. Null when the order does not exist. */
83
+ export async function LoadOrderStatus(orderID, provider, user) {
84
+ const rv = new RunView(provider);
85
+ const result = await rv.RunView({
86
+ EntityName: ORDER_HEADER_ENTITY,
87
+ ExtraFilter: `ID='${orderID}'`,
88
+ Fields: ['Status'],
89
+ ResultType: 'simple',
90
+ }, user);
91
+ return result?.Results?.[0]?.Status ?? null;
92
+ }
93
+ //# sourceMappingURL=DeliveryRecipientResolver.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"DeliveryRecipientResolver.js","sourceRoot":"","sources":["../src/DeliveryRecipientResolver.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,14 @@
1
+ import { BaseDeliveryChannel } from './BaseDeliveryChannel.js';
2
+ import type { DeliveryChannelCode } from './DeliveryBehavior.js';
3
+ /** Raised when a channel code has no working implementation behind it. */
4
+ export declare class DeliveryChannelNotConfiguredError extends Error {
5
+ constructor(message: string);
6
+ }
7
+ /**
8
+ * The channel registered for this code.
9
+ *
10
+ * @throws {DeliveryChannelNotConfiguredError} when nothing is registered, or when the only thing
11
+ * registered is the base class that implements nothing.
12
+ */
13
+ export declare function ResolveDeliveryChannel(code: DeliveryChannelCode): BaseDeliveryChannel;
14
+ //# sourceMappingURL=DeliveryResolver.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"DeliveryResolver.d.ts","sourceRoot":"","sources":["../src/DeliveryResolver.ts"],"names":[],"mappings":"AAgBA,OAAO,EAAE,mBAAmB,EAAE,MAAM,0BAA0B,CAAC;AAC/D,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,uBAAuB,CAAC;AAEjE,0EAA0E;AAC1E,qBAAa,iCAAkC,SAAQ,KAAK;gBAC5C,OAAO,EAAE,MAAM;CAI9B;AAED;;;;;GAKG;AACH,wBAAgB,sBAAsB,CAAC,IAAI,EAAE,mBAAmB,GAAG,mBAAmB,CAoBrF"}
@@ -0,0 +1,45 @@
1
+ /**
2
+ * Finding the channel a document should leave through.
3
+ *
4
+ * SHORT BY DESIGN, and it exists for exactly one reason: to refuse the base class. MJ's ClassFactory
5
+ * falls back to the base when no registration matches a key, and `BaseDeliveryChannel` declines every
6
+ * send. Accepting that fallback would turn "nobody registered an email channel" into "the email
7
+ * channel refused to send", which points the reader at a mail provider instead of at the missing
8
+ * `Load*` anchor in the server bootstrap. That is the same trap `PaymentProviderResolver` guards, and
9
+ * it is worth guarding twice because the symptom — documents that never arrive — is identical to a
10
+ * genuine provider outage.
11
+ *
12
+ * CONNECTS TO:
13
+ * SEAM: ./BaseDeliveryChannel.ts
14
+ * DOC: plans/archive/bizapps-orders-master.md §4.4
15
+ */
16
+ import { MJGlobal } from '@memberjunction/global';
17
+ import { BaseDeliveryChannel } from './BaseDeliveryChannel.js';
18
+ /** Raised when a channel code has no working implementation behind it. */
19
+ export class DeliveryChannelNotConfiguredError extends Error {
20
+ constructor(message) {
21
+ super(message);
22
+ this.name = 'DeliveryChannelNotConfiguredError';
23
+ }
24
+ }
25
+ /**
26
+ * The channel registered for this code.
27
+ *
28
+ * @throws {DeliveryChannelNotConfiguredError} when nothing is registered, or when the only thing
29
+ * registered is the base class that implements nothing.
30
+ */
31
+ export function ResolveDeliveryChannel(code) {
32
+ const channel = MJGlobal.Instance.ClassFactory.CreateInstance(BaseDeliveryChannel, code);
33
+ if (!channel) {
34
+ throw new DeliveryChannelNotConfiguredError(`No delivery channel is registered for '${code}'. Register one with ` +
35
+ `@RegisterClass(BaseDeliveryChannel, '${code}') and call its Load* anchor from the server ` +
36
+ `bootstrap — without the anchor the decorator is tree-shaken away and the class is silently absent.`);
37
+ }
38
+ if (channel.constructor === BaseDeliveryChannel) {
39
+ throw new DeliveryChannelNotConfiguredError(`Delivery channel '${code}' resolved to the BASE channel, which sends nothing. Its Load* anchor ` +
40
+ `is almost certainly missing from the server bootstrap.`);
41
+ }
42
+ channel.Code = code;
43
+ return channel;
44
+ }
45
+ //# sourceMappingURL=DeliveryResolver.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"DeliveryResolver.js","sourceRoot":"","sources":["../src/DeliveryResolver.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;GAcG;AACH,OAAO,EAAE,QAAQ,EAAE,MAAM,wBAAwB,CAAC;AAClD,OAAO,EAAE,mBAAmB,EAAE,MAAM,0BAA0B,CAAC;AAG/D,0EAA0E;AAC1E,MAAM,OAAO,iCAAkC,SAAQ,KAAK;IACxD,YAAY,OAAe;QACvB,KAAK,CAAC,OAAO,CAAC,CAAC;QACf,IAAI,CAAC,IAAI,GAAG,mCAAmC,CAAC;IACpD,CAAC;CACJ;AAED;;;;;GAKG;AACH,MAAM,UAAU,sBAAsB,CAAC,IAAyB;IAC5D,MAAM,OAAO,GAAG,QAAQ,CAAC,QAAQ,CAAC,YAAY,CAAC,cAAc,CAAsB,mBAAmB,EAAE,IAAI,CAAC,CAAC;IAE9G,IAAI,CAAC,OAAO,EAAE,CAAC;QACX,MAAM,IAAI,iCAAiC,CACvC,0CAA0C,IAAI,uBAAuB;YACjE,wCAAwC,IAAI,+CAA+C;YAC3F,oGAAoG,CAC3G,CAAC;IACN,CAAC;IAED,IAAI,OAAO,CAAC,WAAW,KAAK,mBAAmB,EAAE,CAAC;QAC9C,MAAM,IAAI,iCAAiC,CACvC,qBAAqB,IAAI,wEAAwE;YAC7F,wDAAwD,CAC/D,CAAC;IACN,CAAC;IAED,OAAO,CAAC,IAAI,GAAG,IAAI,CAAC;IACpB,OAAO,OAAO,CAAC;AACnB,CAAC"}