@aeolus-fleet/core 0.20.3 → 0.20.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.
Files changed (126) hide show
  1. package/README.md +1 -1
  2. package/dist/adapters/http/server.d.ts +0 -2
  3. package/dist/adapters/http/server.js +4 -12
  4. package/dist/adapters/http/server.js.map +1 -1
  5. package/dist/adapters/prisma/client.d.ts +0 -2
  6. package/dist/adapters/prisma/client.js +0 -9
  7. package/dist/adapters/prisma/client.js.map +1 -1
  8. package/dist/adapters/prisma/generated/browser.d.ts +18 -0
  9. package/dist/adapters/prisma/generated/client.d.ts +18 -0
  10. package/dist/adapters/prisma/generated/internal/class.d.ts +22 -0
  11. package/dist/adapters/prisma/generated/internal/class.js +4 -4
  12. package/dist/adapters/prisma/generated/internal/class.js.map +1 -1
  13. package/dist/adapters/prisma/generated/internal/prismaNamespace.d.ts +174 -1
  14. package/dist/adapters/prisma/generated/internal/prismaNamespace.js +22 -1
  15. package/dist/adapters/prisma/generated/internal/prismaNamespace.js.map +1 -1
  16. package/dist/adapters/prisma/generated/internal/prismaNamespaceBrowser.d.ts +23 -0
  17. package/dist/adapters/prisma/generated/internal/prismaNamespaceBrowser.js +22 -1
  18. package/dist/adapters/prisma/generated/internal/prismaNamespaceBrowser.js.map +1 -1
  19. package/dist/adapters/prisma/generated/models/CrewRequest.d.ts +53 -1
  20. package/dist/adapters/prisma/generated/models/Delivery.d.ts +68 -1
  21. package/dist/adapters/prisma/generated/models/Fleet.d.ts +481 -0
  22. package/dist/adapters/prisma/generated/models/NetworkSettings.d.ts +1207 -0
  23. package/dist/adapters/prisma/generated/models/NetworkSettings.js +2 -0
  24. package/dist/adapters/prisma/generated/models/NetworkSettings.js.map +1 -0
  25. package/dist/adapters/prisma/generated/models/ReachRefusal.d.ts +1278 -0
  26. package/dist/adapters/prisma/generated/models/ReachRefusal.js +2 -0
  27. package/dist/adapters/prisma/generated/models/ReachRefusal.js.map +1 -0
  28. package/dist/adapters/prisma/generated/models.d.ts +2 -0
  29. package/dist/adapters/prisma/messaging.js +16 -2
  30. package/dist/adapters/prisma/messaging.js.map +1 -1
  31. package/dist/adapters/prisma/network.d.ts +4 -0
  32. package/dist/adapters/prisma/network.js +89 -0
  33. package/dist/adapters/prisma/network.js.map +1 -0
  34. package/dist/adapters/prisma/registry.js +16 -6
  35. package/dist/adapters/prisma/registry.js.map +1 -1
  36. package/dist/adapters/prisma/rows.d.ts +2 -0
  37. package/dist/adapters/prisma/rows.js +8 -1
  38. package/dist/adapters/prisma/rows.js.map +1 -1
  39. package/dist/adapters/prisma/unit-of-work.d.ts +3 -1
  40. package/dist/adapters/prisma/unit-of-work.js +3 -0
  41. package/dist/adapters/prisma/unit-of-work.js.map +1 -1
  42. package/dist/adapters/trpc/console.d.ts +1 -1
  43. package/dist/adapters/trpc/context.d.ts +8 -0
  44. package/dist/adapters/trpc/fleet.d.ts +88 -6
  45. package/dist/adapters/trpc/fleet.js +49 -1
  46. package/dist/adapters/trpc/fleet.js.map +1 -1
  47. package/dist/adapters/trpc/router.d.ts +85 -7
  48. package/dist/adapters/trpc/ship-contract.js +3 -0
  49. package/dist/adapters/trpc/ship-contract.js.map +1 -1
  50. package/dist/adapters/trpc/ship-protocol.js +9 -8
  51. package/dist/adapters/trpc/ship-protocol.js.map +1 -1
  52. package/dist/adapters/trpc/trpc.js +4 -0
  53. package/dist/adapters/trpc/trpc.js.map +1 -1
  54. package/dist/app.js +1 -2
  55. package/dist/app.js.map +1 -1
  56. package/dist/domain/messaging/answer.d.ts +17 -0
  57. package/dist/domain/messaging/answer.js +16 -0
  58. package/dist/domain/messaging/answer.js.map +1 -0
  59. package/dist/domain/messaging/message.d.ts +10 -1
  60. package/dist/domain/messaging/message.js +4 -2
  61. package/dist/domain/messaging/message.js.map +1 -1
  62. package/dist/domain/messaging/ports.d.ts +2 -0
  63. package/dist/domain/messaging/resend-delivery.d.ts +11 -4
  64. package/dist/domain/messaging/resend-delivery.js +87 -62
  65. package/dist/domain/messaging/resend-delivery.js.map +1 -1
  66. package/dist/domain/messaging/send-message.d.ts +11 -4
  67. package/dist/domain/messaging/send-message.js +32 -6
  68. package/dist/domain/messaging/send-message.js.map +1 -1
  69. package/dist/domain/registry/check-reach.d.ts +48 -0
  70. package/dist/domain/registry/check-reach.js +89 -0
  71. package/dist/domain/registry/check-reach.js.map +1 -0
  72. package/dist/domain/registry/crew-request.d.ts +9 -3
  73. package/dist/domain/registry/crew-request.js +18 -6
  74. package/dist/domain/registry/crew-request.js.map +1 -1
  75. package/dist/domain/registry/get-ship.d.ts +3 -3
  76. package/dist/domain/registry/get-ship.js +2 -1
  77. package/dist/domain/registry/get-ship.js.map +1 -1
  78. package/dist/domain/registry/network-settings.d.ts +122 -0
  79. package/dist/domain/registry/network-settings.js +174 -0
  80. package/dist/domain/registry/network-settings.js.map +1 -0
  81. package/dist/domain/registry/ports.d.ts +28 -0
  82. package/dist/domain/registry/public.d.ts +1 -0
  83. package/dist/domain/registry/public.js +1 -0
  84. package/dist/domain/registry/public.js.map +1 -1
  85. package/dist/domain/registry/reach-refusal.d.ts +32 -0
  86. package/dist/domain/registry/reach-refusal.js +2 -0
  87. package/dist/domain/registry/reach-refusal.js.map +1 -0
  88. package/dist/domain/registry/read-reach-refusals.d.ts +14 -0
  89. package/dist/domain/registry/read-reach-refusals.js +17 -0
  90. package/dist/domain/registry/read-reach-refusals.js.map +1 -0
  91. package/dist/domain/registry/register-network-plugin.d.ts +28 -0
  92. package/dist/domain/registry/register-network-plugin.js +26 -0
  93. package/dist/domain/registry/register-network-plugin.js.map +1 -0
  94. package/dist/domain/registry/retire-ship.d.ts +7 -4
  95. package/dist/domain/registry/retire-ship.js +14 -3
  96. package/dist/domain/registry/retire-ship.js.map +1 -1
  97. package/dist/domain/registry/set-network-rules.d.ts +29 -0
  98. package/dist/domain/registry/set-network-rules.js +25 -0
  99. package/dist/domain/registry/set-network-rules.js.map +1 -0
  100. package/dist/domain/registry/ship-report.d.ts +5 -0
  101. package/dist/domain/registry/ship-report.js +3 -0
  102. package/dist/domain/registry/ship-report.js.map +1 -1
  103. package/dist/domain/registry/unregister-network-plugin.d.ts +27 -0
  104. package/dist/domain/registry/unregister-network-plugin.js +25 -0
  105. package/dist/domain/registry/unregister-network-plugin.js.map +1 -0
  106. package/dist/domain/shared/errors.d.ts +1 -1
  107. package/dist/domain/shared/errors.js.map +1 -1
  108. package/dist/domain/shared/history.d.ts +17 -0
  109. package/dist/domain/shared/history.js +4 -1
  110. package/dist/domain/shared/history.js.map +1 -1
  111. package/dist/domain/shared/read-needs-attention.d.ts +4 -4
  112. package/dist/domain/shared/read-needs-attention.js +4 -3
  113. package/dist/domain/shared/read-needs-attention.js.map +1 -1
  114. package/dist/domain/shared/read-ship-timeline.d.ts +5 -4
  115. package/dist/domain/shared/read-ship-timeline.js +7 -3
  116. package/dist/domain/shared/read-ship-timeline.js.map +1 -1
  117. package/dist/wiring.d.ts +8 -0
  118. package/dist/wiring.js +9 -0
  119. package/dist/wiring.js.map +1 -1
  120. package/package.json +2 -2
  121. package/src/adapters/prisma/migrations/20261009200000_network_scope/migration.sql +8 -0
  122. package/src/adapters/prisma/migrations/20261009210000_network_rules/migration.sql +31 -0
  123. package/src/adapters/prisma/migrations/20261009220000_type_delivery_reachable_ships/migration.sql +5 -0
  124. package/src/adapters/prisma/migrations/20261010070000_crew_request_is_final/migration.sql +7 -0
  125. package/src/adapters/prisma/migrations/20261010080000_network_plugin/migration.sql +21 -0
  126. package/src/adapters/prisma/schema.prisma +48 -0
@@ -1 +1 @@
1
- {"version":3,"file":"trpc.js","sourceRoot":"","sources":["../../../src/adapters/trpc/trpc.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"trpc.js","sourceRoot":"","sources":["../../../src/adapters/trpc/trpc.ts"],"names":[],"mappings":"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"}
package/dist/app.js CHANGED
@@ -1,5 +1,5 @@
1
1
  import { buildHttpServer } from './adapters/http/server.js';
2
- import { checkDatabase, createPrismaClient, latestMigration } from './adapters/prisma/client.js';
2
+ import { checkDatabase, createPrismaClient } from './adapters/prisma/client.js';
3
3
  import { listenForPendingDeliveries } from './adapters/prisma/delivery-notices.js';
4
4
  import { failureForLog } from './adapters/prisma/failure-log.js';
5
5
  import { createFleetEventWakeups, fleetEventWakeupsOf } from './adapters/prisma/fleet-event-wakeups.js';
@@ -28,7 +28,6 @@ export function createApp(options) {
28
28
  installationToken: options.installationToken,
29
29
  fleetEvents,
30
30
  checkDatabase: () => checkDatabase(prisma),
31
- latestMigration: () => latestMigration(prisma),
32
31
  clock,
33
32
  logger: options.logger,
34
33
  shouldTrustProxy: options.shouldTrustProxy,
package/dist/app.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"app.js","sourceRoot":"","sources":["../src/app.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"app.js","sourceRoot":"","sources":["../src/app.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,17 @@
1
+ import type { ShipId } from '@aeolus-fleet/common';
2
+ import type { Recipient } from '../shared/selector.js';
3
+ import type { Delivery, Message } from './message.js';
4
+ /**
5
+ * Whether a send answers the sender of a message its ship received, the
6
+ * return traffic the network rules always allow (decision 0034): it names the
7
+ * message (inReplyTo), it goes to that message's sender, and the message
8
+ * reached the answering ship, by a delivery to it or one of its type it
9
+ * claimed.
10
+ */
11
+ export declare function isAnswerToSender(answer: {
12
+ senderShipId: ShipId;
13
+ recipient: Recipient;
14
+ }, asked: {
15
+ message: Message;
16
+ delivery: Delivery;
17
+ } | undefined): boolean;
@@ -0,0 +1,16 @@
1
+ /**
2
+ * Whether a send answers the sender of a message its ship received, the
3
+ * return traffic the network rules always allow (decision 0034): it names the
4
+ * message (inReplyTo), it goes to that message's sender, and the message
5
+ * reached the answering ship, by a delivery to it or one of its type it
6
+ * claimed.
7
+ */
8
+ export function isAnswerToSender(answer, asked) {
9
+ if (!asked || answer.recipient.kind !== 'ship' || answer.recipient.shipId !== asked.message.senderShipId) {
10
+ return false;
11
+ }
12
+ const { delivery } = asked;
13
+ const isToTheShip = delivery.recipient.kind === 'ship' && delivery.recipient.shipId === answer.senderShipId;
14
+ return isToTheShip || delivery.claimedByShipId === answer.senderShipId;
15
+ }
16
+ //# sourceMappingURL=answer.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"answer.js","sourceRoot":"","sources":["../../../src/domain/messaging/answer.ts"],"names":[],"mappings":"AAKA;;;;;;GAMG;AACH,MAAM,UAAU,gBAAgB,CAAC,MAAsD,EAAE,KAA2D;IAClJ,IAAI,CAAC,KAAK,IAAI,MAAM,CAAC,SAAS,CAAC,IAAI,KAAK,MAAM,IAAI,MAAM,CAAC,SAAS,CAAC,MAAM,KAAK,KAAK,CAAC,OAAO,CAAC,YAAY,EAAE,CAAC;QACzG,OAAO,KAAK,CAAC;IACf,CAAC;IACD,MAAM,EAAE,QAAQ,EAAE,GAAG,KAAK,CAAC;IAC3B,MAAM,WAAW,GAAG,QAAQ,CAAC,SAAS,CAAC,IAAI,KAAK,MAAM,IAAI,QAAQ,CAAC,SAAS,CAAC,MAAM,KAAK,MAAM,CAAC,YAAY,CAAC;IAC5G,OAAO,WAAW,IAAI,QAAQ,CAAC,eAAe,KAAK,MAAM,CAAC,YAAY,CAAC;AACzE,CAAC"}
@@ -49,6 +49,13 @@ export interface Delivery {
49
49
  claimedByLeaseId: LeaseId | null;
50
50
  /** How many times a receive claimed it. */
51
51
  attempts: number;
52
+ /**
53
+ * For a type, under network rules: the ships of the type its sender may
54
+ * reach, fixed at send time; only they may claim it (decision 0034).
55
+ * Absent, any ship of the type may. Written at send; a claim's query reads
56
+ * it, so a delivery read back for a change may leave it out.
57
+ */
58
+ reachableShipIds?: readonly ShipId[];
52
59
  createdAt: Date;
53
60
  }
54
61
  /** What the sender asked for, its payload and key already checked. */
@@ -92,11 +99,13 @@ export type AcceptRefusal = DomainError<'IN_REPLY_TO_NOT_FOUND' | 'MODEL_REQUIRE
92
99
  * holds it, if it does. Every ship but argo states the model its session
93
100
  * runs (docs/blueprint.md, "Model"); argo states none. A resend carries the
94
101
  * original message's model as it was, so it is not asked again; a ping is the
95
- * fleet's question, not a session's message, so it carries none.
102
+ * fleet's question, not a session's message, so it carries none. A type
103
+ * delivery the network rules limit to some ships of the type keeps them.
96
104
  */
97
105
  export declare function acceptMessage(fleet: {
98
106
  recipient: Recipient;
99
107
  repliedTo: Message | undefined;
108
+ reachableShipIds?: readonly ShipId[];
100
109
  }, send: MessageToAccept): Result<{
101
110
  message: Message;
102
111
  delivery: Delivery;
@@ -19,10 +19,11 @@ export function repeatOf(original, requestHash) {
19
19
  * holds it, if it does. Every ship but argo states the model its session
20
20
  * runs (docs/blueprint.md, "Model"); argo states none. A resend carries the
21
21
  * original message's model as it was, so it is not asked again; a ping is the
22
- * fleet's question, not a session's message, so it carries none.
22
+ * fleet's question, not a session's message, so it carries none. A type
23
+ * delivery the network rules limit to some ships of the type keeps them.
23
24
  */
24
25
  export function acceptMessage(fleet, send) {
25
- const { recipient, repliedTo } = fleet;
26
+ const { recipient, repliedTo, reachableShipIds } = fleet;
26
27
  const { messageId, deliveryId, fleetId, senderShipId, inReplyTo, resendOf, at } = send;
27
28
  if (inReplyTo !== undefined && repliedTo?.id !== inReplyTo) {
28
29
  return refuse('IN_REPLY_TO_NOT_FOUND', `Message ${inReplyTo} does not exist: a reply names a message of the fleet`);
@@ -57,6 +58,7 @@ export function acceptMessage(fleet, send) {
57
58
  claimedByShipId: null,
58
59
  claimedByLeaseId: null,
59
60
  attempts: 0,
61
+ ...(reachableShipIds && { reachableShipIds: [...reachableShipIds] }),
60
62
  createdAt: at,
61
63
  };
62
64
  return ok({
@@ -1 +1 @@
1
- {"version":3,"file":"message.js","sourceRoot":"","sources":["../../../src/domain/messaging/message.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"message.js","sourceRoot":"","sources":["../../../src/domain/messaging/message.ts"],"names":[],"mappings":"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"}
@@ -71,6 +71,8 @@ export interface DeliveryRepository {
71
71
  countReceivable(query: Omit<ClaimableDeliveries, 'limit' | 'excluding'>): Promise<number>;
72
72
  /** The delivery, locked until the unit of work ends. */
73
73
  findForUpdate(fleetId: FleetId, deliveryId: DeliveryId): Promise<Delivery | undefined>;
74
+ /** The one delivery a message has, read without a lock. */
75
+ findOfMessage(fleetId: FleetId, messageId: MessageId): Promise<Delivery | undefined>;
74
76
  /**
75
77
  * The ping to the ship whose delivery is still open, pending or in flight:
76
78
  * at most one, since pings never stack. Locks nothing: a ping holds the ship.
@@ -1,5 +1,5 @@
1
1
  import { type DeliveryId, type IdGenerator, type MessageId } from '@aeolus-fleet/common';
2
- import { type ResolveSelectorTx, type UnresolvableSelector } from '../registry/public.js';
2
+ import { type CheckReachTx, type NotReachable, type ResolveSelectorTx, type UnresolvableSelector } from '../registry/public.js';
3
3
  import type { Caller } from '../shared/caller.js';
4
4
  import type { Clock } from '../shared/clock.js';
5
5
  import { type DomainError } from '../shared/errors.js';
@@ -11,13 +11,14 @@ import { type DailyMessageLimitTx } from './daily-message-limit.js';
11
11
  import { type DismissRefusal } from './delivery.js';
12
12
  import { type AcceptRefusal, type RepeatRefusal } from './message.js';
13
13
  import type { DeliveryRepository, MessageRepository, RequestHasher } from './ports.js';
14
- export interface ResendDeliveryTx extends ResolveSelectorTx, DailyMessageLimitTx {
14
+ export interface ResendDeliveryTx extends Omit<ResolveSelectorTx, 'ships'>, Omit<CheckReachTx, 'ships'>, DailyMessageLimitTx {
15
+ ships: ResolveSelectorTx['ships'] & CheckReachTx['ships'];
15
16
  messages: MessageRepository;
16
17
  deliveries: DeliveryRepository;
17
18
  events: EventLog;
18
19
  notifier: Notifier;
19
20
  }
20
- export type ResendDeliveryRefusal = DomainError<'DELIVERY_NOT_FOUND' | 'PING_NOT_RESENT'> | DismissRefusal | DomainError<'MESSAGE_LIMIT_REACHED'> | RepeatRefusal | UnresolvableSelector | AcceptRefusal;
21
+ export type ResendDeliveryRefusal = DomainError<'DELIVERY_NOT_FOUND' | 'PING_NOT_RESENT'> | DismissRefusal | DomainError<'MESSAGE_LIMIT_REACHED'> | RepeatRefusal | UnresolvableSelector | NotReachable | AcceptRefusal;
21
22
  export type ResendDelivery = (caller: Caller, input: {
22
23
  deliveryId: DeliveryId;
23
24
  }) => Promise<Result<{
@@ -38,7 +39,13 @@ export type ResendDelivery = (caller: Caller, input: {
38
39
  * the type left, the resend is refused and the original stays undeliverable,
39
40
  * for the operator to dismiss. A ping is never resent: it is dismissed, and
40
41
  * the ship pinged again through ping, so pings never stack. Locks, in this order: the original delivery,
41
- * then the resend's key, then the ship the message is addressed to.
42
+ * then the resend's key, then the ship the message is addressed to, then the
43
+ * fleet's network settings.
44
+ *
45
+ * A resend is a new message, checked by the network rules at its own send time
46
+ * as the original sender sending (decision 0034): one no rule allows commits
47
+ * only its refusal's record and is refused, and the original stays
48
+ * undeliverable, for the operator to dismiss.
42
49
  */
43
50
  export declare function createResendDelivery(deps: {
44
51
  uow: UnitOfWork<ResendDeliveryTx>;
@@ -1,8 +1,9 @@
1
1
  import { isPingContentType } from '@aeolus-fleet/common';
2
- import { resolveSelector } from '../registry/public.js';
2
+ import { checkReach, resolveSelector } from '../registry/public.js';
3
3
  import { refuse } from '../shared/errors.js';
4
4
  import { recordEvent } from '../shared/events.js';
5
- import { ok } from '../shared/result.js';
5
+ import { err, ok } from '../shared/result.js';
6
+ import { isAnswerToSender } from './answer.js';
6
7
  import { withinDailyMessageLimit } from './daily-message-limit.js';
7
8
  import { dismissForResend } from './delivery.js';
8
9
  import { acceptMessage, repeatOf } from './message.js';
@@ -29,69 +30,93 @@ function resendKey(deliveryId) {
29
30
  * the type left, the resend is refused and the original stays undeliverable,
30
31
  * for the operator to dismiss. A ping is never resent: it is dismissed, and
31
32
  * the ship pinged again through ping, so pings never stack. Locks, in this order: the original delivery,
32
- * then the resend's key, then the ship the message is addressed to.
33
+ * then the resend's key, then the ship the message is addressed to, then the
34
+ * fleet's network settings.
35
+ *
36
+ * A resend is a new message, checked by the network rules at its own send time
37
+ * as the original sender sending (decision 0034): one no rule allows commits
38
+ * only its refusal's record and is refused, and the original stays
39
+ * undeliverable, for the operator to dismiss.
33
40
  */
34
41
  export function createResendDelivery(deps) {
35
- return (caller, input) => deps.uow.run(async (tx) => {
36
- const { fleetId } = caller;
37
- const delivery = await tx.deliveries.findForUpdate(fleetId, input.deliveryId);
38
- const original = delivery && (await tx.messages.find(fleetId, delivery.messageId));
39
- if (!delivery || !original) {
40
- return refuse('DELIVERY_NOT_FOUND', `Delivery ${input.deliveryId} does not exist`);
41
- }
42
- if (isPingContentType(original.contentType)) {
43
- return refuse('PING_NOT_RESENT', 'A ping is not resent: dismiss it, and ping the ship again');
44
- }
45
- const selector = original.selector;
46
- const inReplyTo = original.inReplyToMessageId ?? undefined;
47
- const requestHash = deps.hasher.hash(sendRequestText({ selector, payload: original.payload, contentType: original.contentType, inReplyTo }));
48
- const senderKey = { fleetId, senderShipId: original.senderShipId, idempotencyKey: resendKey(delivery.id) };
49
- await tx.messages.lockIdempotencyKey(senderKey);
50
- const earlier = await tx.messages.findByIdempotencyKey(senderKey);
51
- if (earlier) {
52
- const repeat = repeatOf(earlier, requestHash);
53
- return repeat.isOk ? ok({ messageId: repeat.value }) : repeat;
54
- }
55
- const at = deps.clock.now();
56
- const dismissed = dismissForResend(delivery, { by: caller.shipId, at });
57
- if (!dismissed.isOk) {
58
- return dismissed;
59
- }
60
- const recipient = await resolveSelector(tx, { fleetId, selector });
61
- if (!recipient.isOk) {
62
- return recipient;
63
- }
64
- const withinLimit = await withinDailyMessageLimit(tx, { fleetId, time: at });
65
- if (!withinLimit.isOk) {
66
- return withinLimit;
67
- }
68
- const repliedTo = inReplyTo === undefined ? undefined : await tx.messages.find(fleetId, inReplyTo);
69
- const accepted = acceptMessage({ recipient: recipient.value, repliedTo }, {
70
- messageId: deps.ids('message'),
71
- deliveryId: deps.ids('delivery'),
72
- fleetId,
73
- senderShipId: original.senderShipId,
74
- payload: original.payload,
75
- contentType: original.contentType,
76
- model: original.model ?? undefined,
77
- idempotencyKey: senderKey.idempotencyKey,
78
- requestHash,
79
- inReplyTo,
80
- resendOf: { messageId: original.id, by: caller.shipId },
81
- at,
42
+ return async (caller, input) => {
43
+ const outcome = await deps.uow.run(async (tx) => {
44
+ const { fleetId } = caller;
45
+ const delivery = await tx.deliveries.findForUpdate(fleetId, input.deliveryId);
46
+ const original = delivery && (await tx.messages.find(fleetId, delivery.messageId));
47
+ if (!delivery || !original) {
48
+ return refuse('DELIVERY_NOT_FOUND', `Delivery ${input.deliveryId} does not exist`);
49
+ }
50
+ if (isPingContentType(original.contentType)) {
51
+ return refuse('PING_NOT_RESENT', 'A ping is not resent: dismiss it, and ping the ship again');
52
+ }
53
+ const selector = original.selector;
54
+ const inReplyTo = original.inReplyToMessageId ?? undefined;
55
+ const requestHash = deps.hasher.hash(sendRequestText({ selector, payload: original.payload, contentType: original.contentType, inReplyTo }));
56
+ const senderKey = { fleetId, senderShipId: original.senderShipId, idempotencyKey: resendKey(delivery.id) };
57
+ await tx.messages.lockIdempotencyKey(senderKey);
58
+ const earlier = await tx.messages.findByIdempotencyKey(senderKey);
59
+ if (earlier) {
60
+ const repeat = repeatOf(earlier, requestHash);
61
+ return repeat.isOk ? ok({ messageId: repeat.value }) : repeat;
62
+ }
63
+ const at = deps.clock.now();
64
+ const dismissed = dismissForResend(delivery, { by: caller.shipId, at });
65
+ if (!dismissed.isOk) {
66
+ return dismissed;
67
+ }
68
+ const recipient = await resolveSelector(tx, { fleetId, selector });
69
+ if (!recipient.isOk) {
70
+ return recipient;
71
+ }
72
+ const repliedTo = inReplyTo === undefined ? undefined : await tx.messages.find(fleetId, inReplyTo);
73
+ const repliedDelivery = repliedTo && (await tx.deliveries.findOfMessage(fleetId, repliedTo.id));
74
+ const reach = await checkReach({ tx, ids: deps.ids }, {
75
+ fleetId,
76
+ senderShipId: original.senderShipId,
77
+ recipient: recipient.value,
78
+ isAnswerToSender: isAnswerToSender({ senderShipId: original.senderShipId, recipient: recipient.value }, repliedTo && repliedDelivery && { message: repliedTo, delivery: repliedDelivery }),
79
+ at,
80
+ });
81
+ if (!reach.isOk) {
82
+ // Nothing of the resend is stored yet: commit only the refusal's record.
83
+ return ok({ prevented: reach.error });
84
+ }
85
+ const withinLimit = await withinDailyMessageLimit(tx, { fleetId, time: at });
86
+ if (!withinLimit.isOk) {
87
+ return withinLimit;
88
+ }
89
+ const accepted = acceptMessage({ recipient: recipient.value, repliedTo, ...reach.value }, {
90
+ messageId: deps.ids('message'),
91
+ deliveryId: deps.ids('delivery'),
92
+ fleetId,
93
+ senderShipId: original.senderShipId,
94
+ payload: original.payload,
95
+ contentType: original.contentType,
96
+ model: original.model ?? undefined,
97
+ idempotencyKey: senderKey.idempotencyKey,
98
+ requestHash,
99
+ inReplyTo,
100
+ resendOf: { messageId: original.id, by: caller.shipId },
101
+ at,
102
+ });
103
+ if (!accepted.isOk) {
104
+ return accepted;
105
+ }
106
+ const { message, delivery: resent, events } = accepted.value;
107
+ await tx.messages.create(message);
108
+ await tx.deliveries.create(resent);
109
+ await tx.deliveries.update(dismissed.value.delivery);
110
+ for (const event of [...events, ...dismissed.value.events]) {
111
+ await recordEvent({ events: tx.events, ids: deps.ids }, event);
112
+ }
113
+ await tx.notifier.deliveryPending({ fleetId, deliveryId: resent.id, recipient: resent.recipient });
114
+ return ok({ messageId: message.id });
82
115
  });
83
- if (!accepted.isOk) {
84
- return accepted;
85
- }
86
- const { message, delivery: resent, events } = accepted.value;
87
- await tx.messages.create(message);
88
- await tx.deliveries.create(resent);
89
- await tx.deliveries.update(dismissed.value.delivery);
90
- for (const event of [...events, ...dismissed.value.events]) {
91
- await recordEvent({ events: tx.events, ids: deps.ids }, event);
116
+ if (!outcome.isOk) {
117
+ return outcome;
92
118
  }
93
- await tx.notifier.deliveryPending({ fleetId, deliveryId: resent.id, recipient: resent.recipient });
94
- return ok({ messageId: message.id });
95
- });
119
+ return 'prevented' in outcome.value ? err(outcome.value.prevented) : ok(outcome.value);
120
+ };
96
121
  }
97
122
  //# sourceMappingURL=resend-delivery.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"resend-delivery.js","sourceRoot":"","sources":["../../../src/domain/messaging/resend-delivery.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"resend-delivery.js","sourceRoot":"","sources":["../../../src/domain/messaging/resend-delivery.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,iBAAiB,EAAqD,MAAM,sBAAsB,CAAC;AAE5G,OAAO,EAAE,UAAU,EAAE,eAAe,EAA2F,MAAM,uBAAuB,CAAC;AAG7J,OAAO,EAAE,MAAM,EAAoB,MAAM,qBAAqB,CAAC;AAC/D,OAAO,EAAE,WAAW,EAAiB,MAAM,qBAAqB,CAAC;AAEjE,OAAO,EAAE,GAAG,EAAE,EAAE,EAAe,MAAM,qBAAqB,CAAC;AAC3D,OAAO,EAAE,gBAAgB,EAAE,MAAM,aAAa,CAAC;AAE/C,OAAO,EAAE,uBAAuB,EAA4B,MAAM,0BAA0B,CAAC;AAC7F,OAAO,EAAE,gBAAgB,EAAuB,MAAM,eAAe,CAAC;AACtE,OAAO,EAAE,aAAa,EAAE,QAAQ,EAA0C,MAAM,cAAc,CAAC;AAE/F,OAAO,EAAE,eAAe,EAAE,MAAM,mBAAmB,CAAC;AAwBpD;;;GAGG;AACH,SAAS,SAAS,CAAC,UAAsB;IACvC,OAAO,UAAU,UAAU,EAAE,CAAC;AAChC,CAAC;AAED;;;;;;;;;;;;;;;;;;;;;;GAsBG;AACH,MAAM,UAAU,oBAAoB,CAAC,IAKpC;IACC,OAAO,KAAK,EAAE,MAAM,EAAE,KAAK,EAAE,EAAE;QAC7B,MAAM,OAAO,GAAG,MAAM,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,KAAK,EAAE,EAAE,EAAkG,EAAE;YAC9I,MAAM,EAAE,OAAO,EAAE,GAAG,MAAM,CAAC;YAC3B,MAAM,QAAQ,GAAG,MAAM,EAAE,CAAC,UAAU,CAAC,aAAa,CAAC,OAAO,EAAE,KAAK,CAAC,UAAU,CAAC,CAAC;YAC9E,MAAM,QAAQ,GAAG,QAAQ,IAAI,CAAC,MAAM,EAAE,CAAC,QAAQ,CAAC,IAAI,CAAC,OAAO,EAAE,QAAQ,CAAC,SAAS,CAAC,CAAC,CAAC;YACnF,IAAI,CAAC,QAAQ,IAAI,CAAC,QAAQ,EAAE,CAAC;gBAC3B,OAAO,MAAM,CAAC,oBAAoB,EAAE,YAAY,KAAK,CAAC,UAAU,iBAAiB,CAAC,CAAC;YACrF,CAAC;YACD,IAAI,iBAAiB,CAAC,QAAQ,CAAC,WAAW,CAAC,EAAE,CAAC;gBAC5C,OAAO,MAAM,CAAC,iBAAiB,EAAE,2DAA2D,CAAC,CAAC;YAChG,CAAC;YAED,MAAM,QAAQ,GAAG,QAAQ,CAAC,QAAQ,CAAC;YACnC,MAAM,SAAS,GAAG,QAAQ,CAAC,kBAAkB,IAAI,SAAS,CAAC;YAC3D,MAAM,WAAW,GAAG,IAAI,CAAC,MAAM,CAAC,IAAI,CAClC,eAAe,CAAC,EAAE,QAAQ,EAAE,OAAO,EAAE,QAAQ,CAAC,OAAO,EAAE,WAAW,EAAE,QAAQ,CAAC,WAAW,EAAE,SAAS,EAAE,CAAC,CACvG,CAAC;YACF,MAAM,SAAS,GAAG,EAAE,OAAO,EAAE,YAAY,EAAE,QAAQ,CAAC,YAAY,EAAE,cAAc,EAAE,SAAS,CAAC,QAAQ,CAAC,EAAE,CAAC,EAAE,CAAC;YAC3G,MAAM,EAAE,CAAC,QAAQ,CAAC,kBAAkB,CAAC,SAAS,CAAC,CAAC;YAChD,MAAM,OAAO,GAAG,MAAM,EAAE,CAAC,QAAQ,CAAC,oBAAoB,CAAC,SAAS,CAAC,CAAC;YAClE,IAAI,OAAO,EAAE,CAAC;gBACZ,MAAM,MAAM,GAAG,QAAQ,CAAC,OAAO,EAAE,WAAW,CAAC,CAAC;gBAC9C,OAAO,MAAM,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,SAAS,EAAE,MAAM,CAAC,KAAK,EAAE,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC;YAChE,CAAC;YAED,MAAM,EAAE,GAAG,IAAI,CAAC,KAAK,CAAC,GAAG,EAAE,CAAC;YAC5B,MAAM,SAAS,GAAG,gBAAgB,CAAC,QAAQ,EAAE,EAAE,EAAE,EAAE,MAAM,CAAC,MAAM,EAAE,EAAE,EAAE,CAAC,CAAC;YACxE,IAAI,CAAC,SAAS,CAAC,IAAI,EAAE,CAAC;gBACpB,OAAO,SAAS,CAAC;YACnB,CAAC;YACD,MAAM,SAAS,GAAG,MAAM,eAAe,CAAC,EAAE,EAAE,EAAE,OAAO,EAAE,QAAQ,EAAE,CAAC,CAAC;YACnE,IAAI,CAAC,SAAS,CAAC,IAAI,EAAE,CAAC;gBACpB,OAAO,SAAS,CAAC;YACnB,CAAC;YACD,MAAM,SAAS,GAAG,SAAS,KAAK,SAAS,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,CAAC,IAAI,CAAC,OAAO,EAAE,SAAS,CAAC,CAAC;YACnG,MAAM,eAAe,GAAG,SAAS,IAAI,CAAC,MAAM,EAAE,CAAC,UAAU,CAAC,aAAa,CAAC,OAAO,EAAE,SAAS,CAAC,EAAE,CAAC,CAAC,CAAC;YAChG,MAAM,KAAK,GAAG,MAAM,UAAU,CAC5B,EAAE,EAAE,EAAE,GAAG,EAAE,IAAI,CAAC,GAAG,EAAE,EACrB;gBACE,OAAO;gBACP,YAAY,EAAE,QAAQ,CAAC,YAAY;gBACnC,SAAS,EAAE,SAAS,CAAC,KAAK;gBAC1B,gBAAgB,EAAE,gBAAgB,CAChC,EAAE,YAAY,EAAE,QAAQ,CAAC,YAAY,EAAE,SAAS,EAAE,SAAS,CAAC,KAAK,EAAE,EACnE,SAAS,IAAI,eAAe,IAAI,EAAE,OAAO,EAAE,SAAS,EAAE,QAAQ,EAAE,eAAe,EAAE,CAClF;gBACD,EAAE;aACH,CACF,CAAC;YACF,IAAI,CAAC,KAAK,CAAC,IAAI,EAAE,CAAC;gBAChB,yEAAyE;gBACzE,OAAO,EAAE,CAAC,EAAE,SAAS,EAAE,KAAK,CAAC,KAAK,EAAE,CAAC,CAAC;YACxC,CAAC;YACD,MAAM,WAAW,GAAG,MAAM,uBAAuB,CAAC,EAAE,EAAE,EAAE,OAAO,EAAE,IAAI,EAAE,EAAE,EAAE,CAAC,CAAC;YAC7E,IAAI,CAAC,WAAW,CAAC,IAAI,EAAE,CAAC;gBACtB,OAAO,WAAW,CAAC;YACrB,CAAC;YACD,MAAM,QAAQ,GAAG,aAAa,CAC5B,EAAE,SAAS,EAAE,SAAS,CAAC,KAAK,EAAE,SAAS,EAAE,GAAG,KAAK,CAAC,KAAK,EAAE,EACzD;gBACE,SAAS,EAAE,IAAI,CAAC,GAAG,CAAC,SAAS,CAAC;gBAC9B,UAAU,EAAE,IAAI,CAAC,GAAG,CAAC,UAAU,CAAC;gBAChC,OAAO;gBACP,YAAY,EAAE,QAAQ,CAAC,YAAY;gBACnC,OAAO,EAAE,QAAQ,CAAC,OAAO;gBACzB,WAAW,EAAE,QAAQ,CAAC,WAAW;gBACjC,KAAK,EAAE,QAAQ,CAAC,KAAK,IAAI,SAAS;gBAClC,cAAc,EAAE,SAAS,CAAC,cAAc;gBACxC,WAAW;gBACX,SAAS;gBACT,QAAQ,EAAE,EAAE,SAAS,EAAE,QAAQ,CAAC,EAAE,EAAE,EAAE,EAAE,MAAM,CAAC,MAAM,EAAE;gBACvD,EAAE;aACH,CACF,CAAC;YACF,IAAI,CAAC,QAAQ,CAAC,IAAI,EAAE,CAAC;gBACnB,OAAO,QAAQ,CAAC;YAClB,CAAC;YAED,MAAM,EAAE,OAAO,EAAE,QAAQ,EAAE,MAAM,EAAE,MAAM,EAAE,GAAG,QAAQ,CAAC,KAAK,CAAC;YAC7D,MAAM,EAAE,CAAC,QAAQ,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC;YAClC,MAAM,EAAE,CAAC,UAAU,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC;YACnC,MAAM,EAAE,CAAC,UAAU,CAAC,MAAM,CAAC,SAAS,CAAC,KAAK,CAAC,QAAQ,CAAC,CAAC;YACrD,KAAK,MAAM,KAAK,IAAI,CAAC,GAAG,MAAM,EAAE,GAAG,SAAS,CAAC,KAAK,CAAC,MAAM,CAAC,EAAE,CAAC;gBAC3D,MAAM,WAAW,CAAC,EAAE,MAAM,EAAE,EAAE,CAAC,MAAM,EAAE,GAAG,EAAE,IAAI,CAAC,GAAG,EAAE,EAAE,KAAK,CAAC,CAAC;YACjE,CAAC;YACD,MAAM,EAAE,CAAC,QAAQ,CAAC,eAAe,CAAC,EAAE,OAAO,EAAE,UAAU,EAAE,MAAM,CAAC,EAAE,EAAE,SAAS,EAAE,MAAM,CAAC,SAAS,EAAE,CAAC,CAAC;YACnG,OAAO,EAAE,CAAC,EAAE,SAAS,EAAE,OAAO,CAAC,EAAE,EAAE,CAAC,CAAC;QACvC,CAAC,CAAC,CAAC;QACH,IAAI,CAAC,OAAO,CAAC,IAAI,EAAE,CAAC;YAClB,OAAO,OAAO,CAAC;QACjB,CAAC;QACD,OAAO,WAAW,IAAI,OAAO,CAAC,KAAK,CAAC,CAAC,CAAC,GAAG,CAAC,OAAO,CAAC,KAAK,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC;IACzF,CAAC,CAAC;AACJ,CAAC"}
@@ -1,5 +1,5 @@
1
1
  import { type IdGenerator, type MessageId } from '@aeolus-fleet/common';
2
- import { type ResolveSelectorTx, type UnresolvableSelector } from '../registry/public.js';
2
+ import { type CheckReachTx, type NotReachable, type ResolveSelectorTx, type UnresolvableSelector } from '../registry/public.js';
3
3
  import type { Caller } from '../shared/caller.js';
4
4
  import type { Clock } from '../shared/clock.js';
5
5
  import { type DomainError } from '../shared/errors.js';
@@ -11,7 +11,8 @@ import type { UnitOfWork } from '../shared/unit-of-work.js';
11
11
  import { type DailyMessageLimitTx } from './daily-message-limit.js';
12
12
  import { type AcceptRefusal, type RepeatRefusal } from './message.js';
13
13
  import type { DeliveryRepository, MessageRepository, RequestHasher } from './ports.js';
14
- export interface SendMessageTx extends ResolveSelectorTx, DailyMessageLimitTx {
14
+ export interface SendMessageTx extends Omit<ResolveSelectorTx, 'ships'>, Omit<CheckReachTx, 'ships'>, DailyMessageLimitTx {
15
+ ships: ResolveSelectorTx['ships'] & CheckReachTx['ships'];
15
16
  messages: MessageRepository;
16
17
  deliveries: DeliveryRepository;
17
18
  events: EventLog;
@@ -32,7 +33,7 @@ export interface MessageSent {
32
33
  /** The message's id: the original one when the sender used the idempotency key before. */
33
34
  messageId: MessageId;
34
35
  }
35
- export type SendMessageRefusal = DomainError<'PAYLOAD_TOO_LARGE' | 'INVALID_CONTENT_TYPE' | 'INVALID_IDEMPOTENCY_KEY' | 'RESERVED_CONTENT_TYPE'> | RepeatRefusal | UnresolvableSelector | AcceptRefusal | DomainError<'MESSAGE_LIMIT_REACHED'>;
36
+ export type SendMessageRefusal = DomainError<'PAYLOAD_TOO_LARGE' | 'INVALID_CONTENT_TYPE' | 'INVALID_IDEMPOTENCY_KEY' | 'RESERVED_CONTENT_TYPE'> | RepeatRefusal | UnresolvableSelector | AcceptRefusal | NotReachable | DomainError<'MESSAGE_LIMIT_REACHED'>;
36
37
  export type SendMessage = (caller: Caller, input: MessageToSend) => Promise<Result<MessageSent, SendMessageRefusal>>;
37
38
  /**
38
39
  * Use case: the calling ship sends a message (`send`). The sender is always
@@ -53,7 +54,13 @@ export type SendMessage = (caller: Caller, input: MessageToSend) => Promise<Resu
53
54
  * a retry still gets its OK after the recipient was retired. Locks, in this
54
55
  * order: the sender's key, so two sends with one key take turns and the second
55
56
  * finds the first one's message; then the ship the message is addressed to,
56
- * held against a retire.
57
+ * held against a retire; then the fleet's network settings, held shared
58
+ * against a change of rules.
59
+ *
60
+ * With network rules set, a send no rule allows is refused (decision 0034):
61
+ * its unit of work commits only the refusal's record, and the sender gets a
62
+ * refusal without reasons. argo, and an answer to the sender of a message the
63
+ * ship received, always go through.
57
64
  */
58
65
  export declare function createSendMessage(deps: {
59
66
  uow: UnitOfWork<SendMessageTx>;
@@ -1,8 +1,9 @@
1
1
  import { isPingContentType, PING_CONTENT_TYPE } from '@aeolus-fleet/common';
2
- import { resolveSelector } from '../registry/public.js';
2
+ import { checkReach, resolveSelector } from '../registry/public.js';
3
3
  import { refuse } from '../shared/errors.js';
4
4
  import { recordEvent } from '../shared/events.js';
5
- import { ok } from '../shared/result.js';
5
+ import { err, ok } from '../shared/result.js';
6
+ import { isAnswerToSender } from './answer.js';
6
7
  import { contentType } from './content-type.js';
7
8
  import { withinDailyMessageLimit } from './daily-message-limit.js';
8
9
  import { idempotencyKey } from '../shared/idempotency-key.js';
@@ -28,7 +29,13 @@ import { sendRequestText } from './send-request.js';
28
29
  * a retry still gets its OK after the recipient was retired. Locks, in this
29
30
  * order: the sender's key, so two sends with one key take turns and the second
30
31
  * finds the first one's message; then the ship the message is addressed to,
31
- * held against a retire.
32
+ * held against a retire; then the fleet's network settings, held shared
33
+ * against a change of rules.
34
+ *
35
+ * With network rules set, a send no rule allows is refused (decision 0034):
36
+ * its unit of work commits only the refusal's record, and the sender gets a
37
+ * refusal without reasons. argo, and an answer to the sender of a message the
38
+ * ship received, always go through.
32
39
  */
33
40
  export function createSendMessage(deps) {
34
41
  return async (caller, input) => {
@@ -39,7 +46,15 @@ export function createSendMessage(deps) {
39
46
  if (!request.isOk) {
40
47
  return request;
41
48
  }
42
- return deps.uow.run((tx) => sendWithin({ tx, clock: deps.clock, ids: deps.ids }, { caller, request: request.value }));
49
+ const outcome = await deps.uow.run(async (tx) => {
50
+ const sent = await sendWithin({ tx, clock: deps.clock, ids: deps.ids }, { caller, request: request.value });
51
+ // A send the network rules refused stored only its refusal's record: committed, then refused.
52
+ return !sent.isOk && sent.error.kind === 'NOT_REACHABLE' ? ok({ prevented: sent.error }) : sent;
53
+ });
54
+ if (!outcome.isOk) {
55
+ return outcome;
56
+ }
57
+ return 'prevented' in outcome.value ? err(outcome.value.prevented) : ok(outcome.value);
43
58
  };
44
59
  }
45
60
  /**
@@ -81,12 +96,23 @@ export async function sendWithin(deps, send) {
81
96
  return recipient;
82
97
  }
83
98
  const at = clock.now();
99
+ const repliedTo = inReplyTo === undefined ? undefined : await tx.messages.find(fleetId, inReplyTo);
100
+ const repliedDelivery = repliedTo && (await tx.deliveries.findOfMessage(fleetId, repliedTo.id));
101
+ const reach = await checkReach({ tx, ids }, {
102
+ fleetId,
103
+ senderShipId,
104
+ recipient: recipient.value,
105
+ isAnswerToSender: isAnswerToSender({ senderShipId, recipient: recipient.value }, repliedTo && repliedDelivery && { message: repliedTo, delivery: repliedDelivery }),
106
+ at,
107
+ });
108
+ if (!reach.isOk) {
109
+ return reach;
110
+ }
84
111
  const withinLimit = await withinDailyMessageLimit(tx, { fleetId, time: at });
85
112
  if (!withinLimit.isOk) {
86
113
  return withinLimit;
87
114
  }
88
- const repliedTo = inReplyTo === undefined ? undefined : await tx.messages.find(fleetId, inReplyTo);
89
- const accepted = acceptMessage({ recipient: recipient.value, repliedTo }, {
115
+ const accepted = acceptMessage({ recipient: recipient.value, repliedTo, ...reach.value }, {
90
116
  messageId: ids('message'),
91
117
  deliveryId: ids('delivery'),
92
118
  fleetId,
@@ -1 +1 @@
1
- {"version":3,"file":"send-message.js","sourceRoot":"","sources":["../../../src/domain/messaging/send-message.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,iBAAiB,EAAE,iBAAiB,EAAoC,MAAM,sBAAsB,CAAC;AAE9G,OAAO,EAAE,eAAe,EAAqD,MAAM,uBAAuB,CAAC;AAG3G,OAAO,EAAE,MAAM,EAAoB,MAAM,qBAAqB,CAAC;AAC/D,OAAO,EAAE,WAAW,EAAiB,MAAM,qBAAqB,CAAC;AAEjE,OAAO,EAAE,EAAE,EAAe,MAAM,qBAAqB,CAAC;AAGtD,OAAO,EAAE,WAAW,EAAE,MAAM,mBAAmB,CAAC;AAChD,OAAO,EAAE,uBAAuB,EAA4B,MAAM,0BAA0B,CAAC;AAC7F,OAAO,EAAE,cAAc,EAAE,MAAM,8BAA8B,CAAC;AAC9D,OAAO,EAAE,aAAa,EAAE,QAAQ,EAA0C,MAAM,cAAc,CAAC;AAC/F,OAAO,EAAE,OAAO,EAAE,MAAM,cAAc,CAAC;AAEvC,OAAO,EAAE,eAAe,EAAE,MAAM,mBAAmB,CAAC;AAmCpD;;;;;;;;;;;;;;;;;;;;GAoBG;AACH,MAAM,UAAU,iBAAiB,CAAC,IAKjC;IACC,OAAO,KAAK,EAAE,MAAM,EAAE,KAAK,EAAE,EAAE;QAC7B,IAAI,KAAK,CAAC,WAAW,KAAK,SAAS,IAAI,iBAAiB,CAAC,KAAK,CAAC,WAAW,CAAC,EAAE,CAAC;YAC5E,OAAO,MAAM,CAAC,uBAAuB,EAAE,GAAG,iBAAiB,sDAAsD,CAAC,CAAC;QACrH,CAAC;QACD,MAAM,OAAO,GAAG,WAAW,CAAC,KAAK,EAAE,IAAI,CAAC,MAAM,CAAC,CAAC;QAChD,IAAI,CAAC,OAAO,CAAC,IAAI,EAAE,CAAC;YAClB,OAAO,OAAO,CAAC;QACjB,CAAC;QACD,OAAO,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,EAAE,EAAE,EAAE,CAAC,UAAU,CAAC,EAAE,EAAE,EAAE,KAAK,EAAE,IAAI,CAAC,KAAK,EAAE,GAAG,EAAE,IAAI,CAAC,GAAG,EAAE,EAAE,EAAE,MAAM,EAAE,OAAO,EAAE,OAAO,CAAC,KAAK,EAAE,CAAC,CAAC,CAAC;IACxH,CAAC,CAAC;AACJ,CAAC;AAaD;;;;GAIG;AACH,MAAM,UAAU,WAAW,CAAC,KAAoB,EAAE,MAAqB;IACrE,MAAM,IAAI,GAAG,OAAO,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC;IACpC,IAAI,CAAC,IAAI,CAAC,IAAI,EAAE,CAAC;QACf,OAAO,IAAI,CAAC;IACd,CAAC;IACD,MAAM,SAAS,GAAG,WAAW,CAAC,KAAK,CAAC,WAAW,CAAC,CAAC;IACjD,IAAI,CAAC,SAAS,CAAC,IAAI,EAAE,CAAC;QACpB,OAAO,SAAS,CAAC;IACnB,CAAC;IACD,MAAM,GAAG,GAAG,cAAc,CAAC,KAAK,CAAC,cAAc,CAAC,CAAC;IACjD,IAAI,CAAC,GAAG,CAAC,IAAI,EAAE,CAAC;QACd,OAAO,GAAG,CAAC;IACb,CAAC;IACD,MAAM,EAAE,QAAQ,EAAE,SAAS,EAAE,GAAG,KAAK,CAAC;IACtC,MAAM,WAAW,GAAG,MAAM,CAAC,IAAI,CAC7B,eAAe,CAAC,EAAE,QAAQ,EAAE,OAAO,EAAE,IAAI,CAAC,KAAK,EAAE,WAAW,EAAE,SAAS,CAAC,KAAK,EAAE,SAAS,EAAE,CAAC,CAC5F,CAAC;IACF,OAAO,EAAE,CAAC,EAAE,QAAQ,EAAE,OAAO,EAAE,IAAI,CAAC,KAAK,EAAE,WAAW,EAAE,SAAS,CAAC,KAAK,EAAE,KAAK,EAAE,KAAK,CAAC,KAAK,EAAE,cAAc,EAAE,GAAG,CAAC,KAAK,EAAE,SAAS,EAAE,WAAW,EAAE,CAAC,CAAC;AACpJ,CAAC;AAED,wGAAwG;AACxG,MAAM,CAAC,KAAK,UAAU,UAAU,CAC9B,IAA2D,EAC3D,IAA8C;IAE9C,MAAM,EAAE,EAAE,EAAE,KAAK,EAAE,GAAG,EAAE,GAAG,IAAI,CAAC;IAChC,MAAM,EAAE,OAAO,EAAE,MAAM,EAAE,YAAY,EAAE,GAAG,IAAI,CAAC,MAAM,CAAC;IACtD,MAAM,EAAE,QAAQ,EAAE,SAAS,EAAE,WAAW,EAAE,GAAG,IAAI,CAAC,OAAO,CAAC;IAC1D,MAAM,SAAS,GAAG,EAAE,OAAO,EAAE,YAAY,EAAE,cAAc,EAAE,IAAI,CAAC,OAAO,CAAC,cAAc,EAAE,CAAC;IACzF,MAAM,EAAE,CAAC,QAAQ,CAAC,kBAAkB,CAAC,SAAS,CAAC,CAAC;IAChD,MAAM,QAAQ,GAAG,MAAM,EAAE,CAAC,QAAQ,CAAC,oBAAoB,CAAC,SAAS,CAAC,CAAC;IACnE,IAAI,QAAQ,EAAE,CAAC;QACb,MAAM,MAAM,GAAG,QAAQ,CAAC,QAAQ,EAAE,WAAW,CAAC,CAAC;QAC/C,OAAO,MAAM,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,SAAS,EAAE,MAAM,CAAC,KAAK,EAAE,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC;IAChE,CAAC;IAED,MAAM,SAAS,GAAG,MAAM,eAAe,CAAC,EAAE,EAAE,EAAE,OAAO,EAAE,QAAQ,EAAE,CAAC,CAAC;IACnE,IAAI,CAAC,SAAS,CAAC,IAAI,EAAE,CAAC;QACpB,OAAO,SAAS,CAAC;IACnB,CAAC;IACD,MAAM,EAAE,GAAG,KAAK,CAAC,GAAG,EAAE,CAAC;IACvB,MAAM,WAAW,GAAG,MAAM,uBAAuB,CAAC,EAAE,EAAE,EAAE,OAAO,EAAE,IAAI,EAAE,EAAE,EAAE,CAAC,CAAC;IAC7E,IAAI,CAAC,WAAW,CAAC,IAAI,EAAE,CAAC;QACtB,OAAO,WAAW,CAAC;IACrB,CAAC;IACD,MAAM,SAAS,GAAG,SAAS,KAAK,SAAS,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,CAAC,IAAI,CAAC,OAAO,EAAE,SAAS,CAAC,CAAC;IACnG,MAAM,QAAQ,GAAG,aAAa,CAC5B,EAAE,SAAS,EAAE,SAAS,CAAC,KAAK,EAAE,SAAS,EAAE,EACzC;QACE,SAAS,EAAE,GAAG,CAAC,SAAS,CAAC;QACzB,UAAU,EAAE,GAAG,CAAC,UAAU,CAAC;QAC3B,OAAO;QACP,YAAY;QACZ,OAAO,EAAE,IAAI,CAAC,OAAO,CAAC,OAAO;QAC7B,WAAW,EAAE,IAAI,CAAC,OAAO,CAAC,WAAW;QACrC,KAAK,EAAE,IAAI,CAAC,OAAO,CAAC,KAAK;QACzB,UAAU,EAAE,IAAI,CAAC,MAAM,CAAC,IAAI;QAC5B,cAAc,EAAE,IAAI,CAAC,OAAO,CAAC,cAAc;QAC3C,WAAW;QACX,SAAS;QACT,EAAE;KACH,CACF,CAAC;IACF,IAAI,CAAC,QAAQ,CAAC,IAAI,EAAE,CAAC;QACnB,OAAO,QAAQ,CAAC;IAClB,CAAC;IAED,MAAM,EAAE,OAAO,EAAE,QAAQ,EAAE,MAAM,EAAE,GAAG,QAAQ,CAAC,KAAK,CAAC;IACrD,MAAM,EAAE,CAAC,QAAQ,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC;IAClC,MAAM,EAAE,CAAC,UAAU,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC;IACrC,KAAK,MAAM,KAAK,IAAI,MAAM,EAAE,CAAC;QAC3B,MAAM,WAAW,CAAC,EAAE,MAAM,EAAE,EAAE,CAAC,MAAM,EAAE,GAAG,EAAE,EAAE,KAAK,CAAC,CAAC;IACvD,CAAC;IACD,MAAM,EAAE,CAAC,QAAQ,CAAC,eAAe,CAAC,EAAE,OAAO,EAAE,UAAU,EAAE,QAAQ,CAAC,EAAE,EAAE,SAAS,EAAE,QAAQ,CAAC,SAAS,EAAE,CAAC,CAAC;IACvG,OAAO,EAAE,CAAC,EAAE,SAAS,EAAE,OAAO,CAAC,EAAE,EAAE,CAAC,CAAC;AACvC,CAAC"}
1
+ {"version":3,"file":"send-message.js","sourceRoot":"","sources":["../../../src/domain/messaging/send-message.ts"],"names":[],"mappings":"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"}