@mj-biz-apps/common-activity-sync 5.42.0 → 5.43.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 (49) hide show
  1. package/dist/ActivitySyncEngine.d.ts +59 -1
  2. package/dist/ActivitySyncEngine.d.ts.map +1 -1
  3. package/dist/ActivitySyncEngine.js +159 -6
  4. package/dist/ActivitySyncEngine.js.map +1 -1
  5. package/dist/attachments.d.ts +106 -0
  6. package/dist/attachments.d.ts.map +1 -0
  7. package/dist/attachments.js +147 -0
  8. package/dist/attachments.js.map +1 -0
  9. package/dist/index.d.ts +2 -0
  10. package/dist/index.d.ts.map +1 -1
  11. package/dist/index.js +2 -0
  12. package/dist/index.js.map +1 -1
  13. package/dist/participants.d.ts +30 -0
  14. package/dist/participants.d.ts.map +1 -1
  15. package/dist/participants.js +48 -0
  16. package/dist/participants.js.map +1 -1
  17. package/dist/providers/GraphCalendarTransport.d.ts +115 -0
  18. package/dist/providers/GraphCalendarTransport.d.ts.map +1 -0
  19. package/dist/providers/GraphCalendarTransport.js +139 -0
  20. package/dist/providers/GraphCalendarTransport.js.map +1 -0
  21. package/dist/providers/GraphCommunicationTransport.d.ts.map +1 -1
  22. package/dist/providers/GraphCommunicationTransport.js +18 -4
  23. package/dist/providers/GraphCommunicationTransport.js.map +1 -1
  24. package/dist/providers/GraphMessageMapper.d.ts +2 -0
  25. package/dist/providers/GraphMessageMapper.d.ts.map +1 -1
  26. package/dist/providers/GraphMessageMapper.js +3 -0
  27. package/dist/providers/GraphMessageMapper.js.map +1 -1
  28. package/dist/providers/MSGraphActivitySyncProvider.d.ts +39 -4
  29. package/dist/providers/MSGraphActivitySyncProvider.d.ts.map +1 -1
  30. package/dist/providers/MSGraphActivitySyncProvider.js +45 -10
  31. package/dist/providers/MSGraphActivitySyncProvider.js.map +1 -1
  32. package/dist/providers/MSGraphCalendarSyncProvider.d.ts +55 -14
  33. package/dist/providers/MSGraphCalendarSyncProvider.d.ts.map +1 -1
  34. package/dist/providers/MSGraphCalendarSyncProvider.js +112 -38
  35. package/dist/providers/MSGraphCalendarSyncProvider.js.map +1 -1
  36. package/dist/providers/MessageTransport.d.ts +90 -0
  37. package/dist/providers/MessageTransport.d.ts.map +1 -1
  38. package/dist/providers/MessageTransport.js +72 -0
  39. package/dist/providers/MessageTransport.js.map +1 -1
  40. package/dist/providers/RecordedMessageTransport.d.ts.map +1 -1
  41. package/dist/providers/RecordedMessageTransport.js +25 -11
  42. package/dist/providers/RecordedMessageTransport.js.map +1 -1
  43. package/dist/stages.d.ts +11 -0
  44. package/dist/stages.d.ts.map +1 -1
  45. package/dist/stages.js.map +1 -1
  46. package/dist/types.d.ts +14 -0
  47. package/dist/types.d.ts.map +1 -1
  48. package/dist/types.js.map +1 -1
  49. package/package.json +6 -6
@@ -9,8 +9,10 @@ import { type IMetadataProvider, type UserInfo } from '@memberjunction/core';
9
9
  import { BaseActivitySyncProvider } from './BaseActivitySyncProvider.js';
10
10
  import { type ExtensionStamp } from './extensions.js';
11
11
  import { IdentityResolver } from './identity.js';
12
+ import { type ActivityFileSink } from './attachments.js';
12
13
  import { type IQualificationStage, type QualificationPolicy } from './qualification.js';
13
14
  import { type SyncRunOptions } from './run.js';
15
+ import type { ActivitySourceKind } from './types.js';
14
16
  import { ActivityWriter } from './writer.js';
15
17
  export interface SyncEngineResult {
16
18
  Success: boolean;
@@ -90,11 +92,53 @@ export declare function healthErrorFromResults(results: readonly SyncEngineResul
90
92
  * is clean for that row writes null.
91
93
  */
92
94
  export declare function collapseExtensionStamps(stamps: readonly ExtensionStamp[]): ExtensionStamp[];
95
+ /**
96
+ * The driver class of the SURFACE being run, which is not always the connection's.
97
+ *
98
+ * `RunConnections` drives a second, calendar surface from the same connection and the same type row,
99
+ * passing the calendar plugin as `source`. Handing `typeRow.DriverClass` to both told a host factory
100
+ * "Microsoft365" on the calendar pass too, so a factory serving both surfaces could not tell them
101
+ * apart: it built a MAIL transport for the calendar, fed Graph message payloads to the event mapper,
102
+ * and every one was dropped for having no start time. That reads as an empty calendar, not as a
103
+ * wiring fault — which is why it survived until a calendar fixture ran end to end.
104
+ *
105
+ * Pure and exported so the mapping can be pinned without standing up a fleet run.
106
+ */
107
+ export declare function SurfaceDriverClass(kind: ActivitySourceKind, typeRow: {
108
+ DriverClass?: string | null;
109
+ CalendarDriverClass?: string | null;
110
+ } | null | undefined, fallback: string): string;
93
111
  export declare class ActivitySyncEngine {
94
112
  private readonly resolver;
95
113
  private readonly writer;
96
114
  private readonly stages;
97
- constructor(resolver?: IdentityResolver, writer?: ActivityWriter, stages?: IQualificationStage[]);
115
+ /**
116
+ * Where attachment BYTES go, when a rule asks for them.
117
+ *
118
+ * Optional and injected rather than imported: storing a file needs MJ's FileStorageEngine and
119
+ * a configured FileStorageAccount, and a host that syncs only metadata should not have to
120
+ * have either. Absent, an item whose rule wants attachments is reported rather than quietly
121
+ * filed without them — the distinction this package exists to keep.
122
+ *
123
+ * DEFAULTS TO THE HOST REGISTRY, because the only production construction of this class is
124
+ * `new ActivitySyncEngine()` inside an Action, where nothing can pass one. Without that
125
+ * default a host could implement the interface and still never be called.
126
+ */
127
+ private readonly fileSink;
128
+ constructor(resolver?: IdentityResolver, writer?: ActivityWriter, stages?: IQualificationStage[],
129
+ /**
130
+ * Where attachment BYTES go, when a rule asks for them.
131
+ *
132
+ * Optional and injected rather than imported: storing a file needs MJ's FileStorageEngine and
133
+ * a configured FileStorageAccount, and a host that syncs only metadata should not have to
134
+ * have either. Absent, an item whose rule wants attachments is reported rather than quietly
135
+ * filed without them — the distinction this package exists to keep.
136
+ *
137
+ * DEFAULTS TO THE HOST REGISTRY, because the only production construction of this class is
138
+ * `new ActivitySyncEngine()` inside an Action, where nothing can pass one. Without that
139
+ * default a host could implement the interface and still never be called.
140
+ */
141
+ fileSink?: ActivityFileSink | null);
98
142
  Run(connectionID: string, options: SyncRunOptions, provider: IMetadataProvider, contextUser: UserInfo, source?: BaseActivitySyncProvider, surface?: RunSurfaceOptions): Promise<SyncEngineResult>;
99
143
  /**
100
144
  * Every Active-or-Error connection, once per surface. This is what a scheduled
@@ -116,6 +160,20 @@ export declare class ActivitySyncEngine {
116
160
  private loadRunnableConnections;
117
161
  private loadProviderType;
118
162
  private loadBoundSetIds;
163
+ /**
164
+ * The domains this deployment calls INTERNAL, merged across every rule set bound to the
165
+ * connection.
166
+ *
167
+ * WHY THIS EXISTS. `ActivitySyncRuleSet.InternalDomains` describes itself as "Required for any
168
+ * rule using ParticipantScope", `participants.ts` names it as where the list lives, and the
169
+ * engine passed a hard-coded `[]` — so nothing ever read the column. Same shape as the
170
+ * `CredentialsRef` gap: a column that documents its own purpose, with no reader.
171
+ *
172
+ * MALFORMED IS NOT EMPTY. A list that fails to parse fails the run rather than degrading to
173
+ * `[]`, because `[]` silently inverts every participant rule (see the caller). Parsing itself
174
+ * lives in {@link ParseInternalDomains} so it is testable without standing up a RunView.
175
+ */
176
+ private loadInternalDomains;
119
177
  private loadExclusions;
120
178
  private loadRules;
121
179
  private stampSurfaceWatermark;
@@ -1 +1 @@
1
- {"version":3,"file":"ActivitySyncEngine.d.ts","sourceRoot":"","sources":["../src/ActivitySyncEngine.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AACH,OAAO,EAGH,KAAK,iBAAiB,EACtB,KAAK,QAAQ,EAChB,MAAM,sBAAsB,CAAC;AAU9B,OAAO,EAAE,wBAAwB,EAAE,MAAM,+BAA+B,CAAC;AAEzE,OAAO,EAIH,KAAK,cAAc,EACtB,MAAM,iBAAiB,CAAC;AACzB,OAAO,EAAE,gBAAgB,EAAE,MAAM,eAAe,CAAC;AAUjD,OAAO,EAGH,KAAK,mBAAmB,EACxB,KAAK,mBAAmB,EAC3B,MAAM,oBAAoB,CAAC;AAC5B,OAAO,EAIH,KAAK,cAAc,EACtB,MAAM,UAAU,CAAC;AAWlB,OAAO,EAAE,cAAc,EAAyB,MAAM,aAAa,CAAC;AAEpE,MAAM,WAAW,gBAAgB;IAC7B,OAAO,EAAE,OAAO,CAAC;IACjB,KAAK,EAAE,MAAM,GAAG,IAAI,CAAC;IACrB,OAAO,EAAE,MAAM,CAAC;IAChB,QAAQ,EAAE,MAAM,CAAC;IACjB,QAAQ,EAAE,MAAM,CAAC;IACjB,UAAU,EAAE,MAAM,CAAC;IACnB,MAAM,EAAE,MAAM,CAAC;IACf,eAAe,EAAE,MAAM,CAAC;IACxB,mBAAmB,EAAE,IAAI,GAAG,IAAI,CAAC;IACjC,MAAM,EAAE,MAAM,EAAE,CAAC;CACpB;AAED,MAAM,WAAW,cAAc;IAC3B,OAAO,EAAE,OAAO,CAAC;IACjB,oBAAoB,EAAE,MAAM,CAAC;IAC7B,OAAO,EAAE,KAAK,CAAC;QAAE,YAAY,EAAE,MAAM,CAAC;QAAC,OAAO,EAAE,MAAM,CAAC;QAAC,MAAM,EAAE,gBAAgB,CAAA;KAAE,CAAC,CAAC;IACpF,MAAM,EAAE,MAAM,EAAE,CAAC;CACpB;AAED,sHAAsH;AACtH,eAAO,MAAM,wBAAwB,MAAM,CAAC;AAE5C,UAAU,aAAa;IACnB,EAAE,EAAE,MAAM,CAAC;IACX,MAAM,EAAE,MAAM,CAAC;IACf,QAAQ,EAAE,MAAM,GAAG,IAAI,CAAC;IACxB,OAAO,EAAE,MAAM,GAAG,IAAI,CAAC;IACvB,+FAA+F;IAC/F,cAAc,EAAE,MAAM,GAAG,IAAI,CAAC;IAC9B,OAAO,EAAE,IAAI,GAAG,MAAM,GAAG,IAAI,CAAC;IAC9B,KAAK,EAAE,IAAI,GAAG,MAAM,GAAG,IAAI,CAAC;IAC5B,UAAU,EAAE,IAAI,GAAG,MAAM,GAAG,IAAI,CAAC;IACjC,0BAA0B,EAAE,MAAM,GAAG,IAAI,CAAC;IAC1C,oBAAoB,EAAE,MAAM,GAAG,IAAI,CAAC;IACpC,QAAQ,EAAE,MAAM,GAAG,IAAI,CAAC;CAC3B;AAED,UAAU,eAAe;IACrB,EAAE,EAAE,MAAM,CAAC;IACX,IAAI,EAAE,MAAM,CAAC;IACb,WAAW,EAAE,MAAM,CAAC;IACpB,0BAA0B,EAAE,mBAAmB,CAAC;IAChD,mFAAmF;IACnF,mBAAmB,EAAE,MAAM,GAAG,IAAI,CAAC;IACnC;;;;OAIG;IACH,QAAQ,EAAE,OAAO,CAAC;CACrB;AAED,UAAU,iBAAiB;IACvB,2EAA2E;IAC3E,MAAM,CAAC,EAAE,wBAAwB,CAAC;IAClC;;;OAGG;IACH,WAAW,EAAE,OAAO,CAAC;IACrB,6DAA6D;IAC7D,UAAU,CAAC,EAAE,aAAa,CAAC;IAC3B,6DAA6D;IAC7D,OAAO,CAAC,EAAE,eAAe,GAAG,IAAI,CAAC;CACpC;AAED;;;GAGG;AACH,wBAAgB,sBAAsB,CAAC,OAAO,EAAE,SAAS,gBAAgB,EAAE,GAAG,MAAM,GAAG,IAAI,CAK1F;AAED;;;;;;GAMG;AACH,wBAAgB,uBAAuB,CAAC,MAAM,EAAE,SAAS,cAAc,EAAE,GAAG,cAAc,EAAE,CAW3F;AAiBD,qBAAa,kBAAkB;IAEvB,OAAO,CAAC,QAAQ,CAAC,QAAQ;IACzB,OAAO,CAAC,QAAQ,CAAC,MAAM;IACvB,OAAO,CAAC,QAAQ,CAAC,MAAM;gBAFN,QAAQ,GAAE,gBAAyC,EACnD,MAAM,GAAE,cAAqC,EAC7C,MAAM,GAAE,mBAAmB,EAAiC;IAGpE,GAAG,CACZ,YAAY,EAAE,MAAM,EACpB,OAAO,EAAE,cAAc,EACvB,QAAQ,EAAE,iBAAiB,EAC3B,WAAW,EAAE,QAAQ,EACrB,MAAM,CAAC,EAAE,wBAAwB,EACjC,OAAO,CAAC,EAAE,iBAAiB,GAC5B,OAAO,CAAC,gBAAgB,CAAC;IA2U5B;;;;;;;;OAQG;IACU,cAAc,CACvB,OAAO,EAAE,cAAc,EACvB,QAAQ,EAAE,iBAAiB,EAC3B,WAAW,EAAE,QAAQ,GACtB,OAAO,CAAC,cAAc,CAAC;IA6F1B,OAAO,CAAC,aAAa;YAgBP,UAAU;IAoBxB,OAAO,CAAC,gBAAgB;YAaV,cAAc;YAkBd,eAAe;YAsBf,qBAAqB;YA0BrB,cAAc;YAcd,uBAAuB;YAcvB,gBAAgB;YAehB,eAAe;YAmBf,cAAc;YAad,SAAS;YAiBT,qBAAqB;YAoBrB,UAAU;CAuE3B;AAED,wBAAgB,sBAAsB,IAAI,IAAI,CAM7C"}
1
+ {"version":3,"file":"ActivitySyncEngine.d.ts","sourceRoot":"","sources":["../src/ActivitySyncEngine.ts"],"names":[],"mappings":"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"}
@@ -12,13 +12,15 @@ import { BaseActivitySyncProvider } from './BaseActivitySyncProvider.js';
12
12
  import { ACTIVITY_SYNC_ENTITIES } from './entity-names.js';
13
13
  import { ExtensionsExtraFilter, RunRegisteredExtensions, } from './extensions.js';
14
14
  import { IdentityResolver } from './identity.js';
15
+ import { ParseInternalDomains, ParticipantScopeWarning } from './participants.js';
16
+ import { AttachmentPolicyFor, HostActivityFileSink } from './attachments.js';
15
17
  import { DefaultDeterministicStages, } from './stages.js';
16
18
  import { FixtureActivitySyncProvider } from './providers/FixtureActivitySyncProvider.js';
17
19
  import { MSGraphActivitySyncProvider } from './providers/MSGraphActivitySyncProvider.js';
18
20
  import { MSGraphCalendarSyncProvider } from './providers/MSGraphCalendarSyncProvider.js';
19
21
  import { DefaultPolicyFromProviderType, RunQualificationCascade, } from './qualification.js';
20
22
  import { AsDryRunDecision, IsConnectionActive, } from './run.js';
21
- import { RequireUUID } from './sql.js';
23
+ import { RequireUUID, UuidInList } from './sql.js';
22
24
  import { CanAdvanceWatermark, MergeCalendarWatermark, NextWatermark, SurfaceWatermark, } from './watermark.js';
23
25
  import { ExclusionsExtraFilter, FromRunView, RulesExtraFilter } from './load.js';
24
26
  import { ActivityWriter, StoreBodyFromSettings } from './writer.js';
@@ -69,11 +71,43 @@ function failedSurfaceResult(issues) {
69
71
  Issues: [...issues],
70
72
  };
71
73
  }
74
+ /**
75
+ * The driver class of the SURFACE being run, which is not always the connection's.
76
+ *
77
+ * `RunConnections` drives a second, calendar surface from the same connection and the same type row,
78
+ * passing the calendar plugin as `source`. Handing `typeRow.DriverClass` to both told a host factory
79
+ * "Microsoft365" on the calendar pass too, so a factory serving both surfaces could not tell them
80
+ * apart: it built a MAIL transport for the calendar, fed Graph message payloads to the event mapper,
81
+ * and every one was dropped for having no start time. That reads as an empty calendar, not as a
82
+ * wiring fault — which is why it survived until a calendar fixture ran end to end.
83
+ *
84
+ * Pure and exported so the mapping can be pinned without standing up a fleet run.
85
+ */
86
+ export function SurfaceDriverClass(kind, typeRow, fallback) {
87
+ const declared = kind === 'Calendar' ? typeRow?.CalendarDriverClass : typeRow?.DriverClass;
88
+ // A blank column is not a driver. Falling through to the plugin's own code keeps a
89
+ // half-configured provider type working as it did rather than serving an empty string.
90
+ return declared?.trim() ? declared.trim() : fallback;
91
+ }
72
92
  export class ActivitySyncEngine {
73
- constructor(resolver = new IdentityResolver(), writer = new ActivityWriter(), stages = DefaultDeterministicStages()) {
93
+ constructor(resolver = new IdentityResolver(), writer = new ActivityWriter(), stages = DefaultDeterministicStages(),
94
+ /**
95
+ * Where attachment BYTES go, when a rule asks for them.
96
+ *
97
+ * Optional and injected rather than imported: storing a file needs MJ's FileStorageEngine and
98
+ * a configured FileStorageAccount, and a host that syncs only metadata should not have to
99
+ * have either. Absent, an item whose rule wants attachments is reported rather than quietly
100
+ * filed without them — the distinction this package exists to keep.
101
+ *
102
+ * DEFAULTS TO THE HOST REGISTRY, because the only production construction of this class is
103
+ * `new ActivitySyncEngine()` inside an Action, where nothing can pass one. Without that
104
+ * default a host could implement the interface and still never be called.
105
+ */
106
+ fileSink = HostActivityFileSink()) {
74
107
  this.resolver = resolver;
75
108
  this.writer = writer;
76
109
  this.stages = stages;
110
+ this.fileSink = fileSink;
77
111
  }
78
112
  async Run(connectionID, options, provider, contextUser, source, surface) {
79
113
  const stampHealth = surface?.stampHealth ?? true;
@@ -140,10 +174,21 @@ export class ActivitySyncEngine {
140
174
  // Tell the plugin which connection this run is for BEFORE it fetches. This is the only
141
175
  // moment it can learn which credential the connection named: ClassFactory builds plugins
142
176
  // with no arguments, so nothing is injectable at construction.
177
+ // THE DRIVER CLASS OF THE SURFACE BEING RUN, not of the connection.
178
+ //
179
+ // `RunConnections` drives a second, CALENDAR surface from the same connection and the same
180
+ // type row, passing the calendar plugin as `source`. Handing `typeRow.DriverClass` to both
181
+ // told a host factory "Microsoft365" for the calendar pass as well, so a factory serving both
182
+ // surfaces could not tell them apart and built a MAIL transport for the calendar — which then
183
+ // fed Graph message payloads to the event mapper, and every one was dropped for having no
184
+ // start time. It read as an empty calendar rather than as a wiring fault.
185
+ //
186
+ // The plugin already knows which surface it is; that is what `Kind` is for.
187
+ const surfaceDriver = SurfaceDriverClass(plugin.Kind, typeRow, plugin.ProviderTypeCode);
143
188
  plugin.Configure({
144
189
  CredentialsRef: connection.CredentialsRef ?? null,
145
190
  Mailbox: connection.Mailbox ?? null,
146
- DriverClass: typeRow?.DriverClass ?? plugin.ProviderTypeCode,
191
+ DriverClass: surfaceDriver,
147
192
  ContextUser: contextUser,
148
193
  });
149
194
  const sourceSystem = typeRow?.Code ?? plugin.ProviderTypeCode;
@@ -174,6 +219,20 @@ export class ActivitySyncEngine {
174
219
  if (rules.Failed) {
175
220
  return this.failClosed(connection, options, result, since, provider, contextUser, rules.Issue, stampHealth);
176
221
  }
222
+ const internalDomains = await this.loadInternalDomains(bound.Rows, contextUser);
223
+ if (internalDomains.Failed) {
224
+ return this.failClosed(connection, options, result, since, provider, contextUser, internalDomains.Issue, stampHealth);
225
+ }
226
+ // A rule that tests participants against NO domain list does not filter — it INVERTS.
227
+ // `ClassifyParticipants` counts an address as Internal only when its domain is in the list,
228
+ // so an empty list makes every participant External: `HasExternal` matches everything,
229
+ // including the purely internal chatter it exists to keep out, and `AllInternal` matches
230
+ // nothing. That reads as a working filter and is the opposite of one, so it is reported
231
+ // rather than left to look like a quiet pass.
232
+ const scopeWarning = ParticipantScopeWarning(rules.Rows, internalDomains.Rows);
233
+ if (scopeWarning) {
234
+ result.Issues.push(scopeWarning);
235
+ }
177
236
  const allParticipants = batch.Items.flatMap((i) => i.Participants);
178
237
  const extensionStamps = [];
179
238
  const identities = await this.resolver.Resolve(allParticipants, contextUser);
@@ -193,7 +252,7 @@ export class ActivitySyncEngine {
193
252
  ProviderTypeCode: sourceSystem,
194
253
  Exclusions: exclusions.Rows,
195
254
  Rules: rules.Rows,
196
- InternalDomains: [],
255
+ InternalDomains: internalDomains.Rows,
197
256
  KnownAddresses: identities.Known,
198
257
  };
199
258
  let verdict;
@@ -255,6 +314,35 @@ export class ActivitySyncEngine {
255
314
  });
256
315
  continue;
257
316
  }
317
+ // ATTACHMENTS, decided from the rule that actually decided this item.
318
+ //
319
+ // `ActivitySyncRule.IncludeAttachments` and `MaxAttachmentBytes` had no reader at all:
320
+ // a rule that asked for attachments got none and said nothing. The decision is made
321
+ // here, where both the winning rule and the item are in scope for the first time.
322
+ //
323
+ // The BYTES are not moved yet — that needs a file sink, and this host has no
324
+ // FileStorageAccount configured, so there is nowhere to put them. What changed is that
325
+ // the request is now honoured or REPORTED, instead of silently discarded.
326
+ const decidingRule = verdict.ActivitySyncRuleID
327
+ ? rules.Rows.find((r) => r.ID === verdict.ActivitySyncRuleID)
328
+ : null;
329
+ const attachmentPolicy = AttachmentPolicyFor(decidingRule, item);
330
+ if (attachmentPolicy.Fetch && !this.fileSink) {
331
+ result.Issues.push(`Item ${item.ExternalID}: its rule asks for attachments, but no ActivityFile sink is ` +
332
+ 'registered in this host, so none were stored. Register one at bootstrap, or turn ' +
333
+ 'IncludeAttachments off so the rule stops claiming something that is not happening.');
334
+ }
335
+ else if (attachmentPolicy.Fetch) {
336
+ // A sink IS registered, and `ActivityFileSink.Store` still has no caller: selection and
337
+ // transfer are written (`SelectAttachments`, `AttachmentSkipReport`) but not yet wired to
338
+ // it. Saying so is the entire point of the branch above — leaving this case silent would
339
+ // reward a host for filling the seam correctly with exactly the quiet nothing that the
340
+ // rest of this work exists to remove, and it is the more misleading of the two, because
341
+ // everything on the host's side is right.
342
+ result.Issues.push(`Item ${item.ExternalID}: its rule asks for attachments and a sink is registered, but ` +
343
+ 'attachment transfer is not implemented yet, so none were stored. This is a gap in ' +
344
+ 'Activity Sync, not in the host configuration.');
345
+ }
258
346
  const sourceValue = plugin.IsLive ? 'Integration' : 'System';
259
347
  const written = await this.writer.Write({
260
348
  Item: item,
@@ -382,9 +470,12 @@ export class ActivitySyncEngine {
382
470
  typeRow,
383
471
  });
384
472
  fleet.Results.push({ ConnectionID: connection.ID, Surface: 'primary', Result: primary });
473
+ // Issues travel whether or not the surface succeeded; only `Success` keys on failure. The
474
+ // previous shape meant a caller inspecting `fleet.Issues` saw nothing from a run that
475
+ // completed with warnings, which is most of what this engine has to say.
476
+ fleet.Issues.push(...primary.Issues);
385
477
  if (!primary.Success) {
386
478
  fleet.Success = false;
387
- fleet.Issues.push(...primary.Issues);
388
479
  }
389
480
  const surfaces = [primary];
390
481
  const calendarDriver = typeRow?.CalendarDriverClass?.trim();
@@ -407,9 +498,10 @@ export class ActivitySyncEngine {
407
498
  source: calendarPlugin,
408
499
  });
409
500
  fleet.Results.push({ ConnectionID: connection.ID, Surface: 'Calendar', Result: calendar });
501
+ // Same as the primary surface above: issues travel regardless of success.
502
+ fleet.Issues.push(...calendar.Issues);
410
503
  if (!calendar.Success) {
411
504
  fleet.Success = false;
412
- fleet.Issues.push(...calendar.Issues);
413
505
  }
414
506
  surfaces.push(calendar);
415
507
  }
@@ -549,6 +641,44 @@ export class ActivitySyncEngine {
549
641
  Rows: (bound.Results ?? []).map((r) => r.ActivitySyncRuleSetID),
550
642
  };
551
643
  }
644
+ /**
645
+ * The domains this deployment calls INTERNAL, merged across every rule set bound to the
646
+ * connection.
647
+ *
648
+ * WHY THIS EXISTS. `ActivitySyncRuleSet.InternalDomains` describes itself as "Required for any
649
+ * rule using ParticipantScope", `participants.ts` names it as where the list lives, and the
650
+ * engine passed a hard-coded `[]` — so nothing ever read the column. Same shape as the
651
+ * `CredentialsRef` gap: a column that documents its own purpose, with no reader.
652
+ *
653
+ * MALFORMED IS NOT EMPTY. A list that fails to parse fails the run rather than degrading to
654
+ * `[]`, because `[]` silently inverts every participant rule (see the caller). Parsing itself
655
+ * lives in {@link ParseInternalDomains} so it is testable without standing up a RunView.
656
+ */
657
+ async loadInternalDomains(setIds, user) {
658
+ if (setIds.length === 0) {
659
+ return { Failed: false, Rows: [] };
660
+ }
661
+ const rv = new RunView();
662
+ const res = await rv.RunView({
663
+ EntityName: ACTIVITY_SYNC_ENTITIES.RuleSets,
664
+ ExtraFilter: `ID IN (${UuidInList(setIds, 'ActivitySyncRuleSetID')})`,
665
+ Fields: ['ID', 'Name', 'InternalDomains'],
666
+ ResultType: 'simple',
667
+ }, user);
668
+ if (!res.Success) {
669
+ return { Failed: true, Issue: 'ActivitySyncRuleSet lookup failed.' };
670
+ }
671
+ const domains = new Set();
672
+ for (const row of res.Results ?? []) {
673
+ const parsed = ParseInternalDomains(row.InternalDomains, row.Name);
674
+ if (!parsed.Ok) {
675
+ return { Failed: true, Issue: parsed.Issue };
676
+ }
677
+ for (const d of parsed.Domains)
678
+ domains.add(d);
679
+ }
680
+ return { Failed: false, Rows: [...domains] };
681
+ }
552
682
  async loadExclusions(setIds, user) {
553
683
  const rv = new RunView();
554
684
  const res = await rv.RunView({
@@ -597,6 +727,29 @@ export class ActivitySyncEngine {
597
727
  run.StartedAt = new Date();
598
728
  run.EndedAt = new Date();
599
729
  run.Status = result.Failed > 0 ? 'Failed' : 'Completed';
730
+ /**
731
+ * EVERY ISSUE IS RECORDED, INCLUDING ON A RUN THAT SUCCEEDED.
732
+ *
733
+ * This row used to keep none of them. `healthErrorFromResults` filters to `!r.Success` and
734
+ * the fleet collected issues only from failed surfaces, so a warning raised by a run that
735
+ * completed existed in an in-memory array and nowhere else. That silently discarded the
736
+ * ENTIRE delivery mechanism for several deliberate reports: the attachment gap a rule asked
737
+ * for and no sink could fill, the participant-scope warning, the capped-read notice, and the
738
+ * calendar's first-run lookback bound. Each was written to be seen, and none could be.
739
+ *
740
+ * The column is named ErrorMessage and these are not all errors. Recording them here is
741
+ * still right: it is the run's only free-text column, it is NVARCHAR(MAX), and a warning
742
+ * nobody can read is worth less than one filed under an imperfect name. Connection HEALTH
743
+ * stays keyed on failure — a warned run must not make a working connection look broken.
744
+ *
745
+ * NOT TRUNCATED, and that is a change from the two older writes above. Both slice at 4000,
746
+ * an inherited habit rather than a constraint: every candidate column here is NVARCHAR(MAX)
747
+ * and none is 4000 wide. It cost nothing while those held a single failure message. This one
748
+ * is the first write that GROWS WITH THE ITEM COUNT — the attachment gap is reported once per
749
+ * item at roughly 250-320 characters, so a fifty-item run would lose most of its tail, in the
750
+ * field this commit added so those warnings could be read at all.
751
+ */
752
+ run.ErrorMessage = result.Issues.length > 0 ? result.Issues.join(' | ') : null;
600
753
  if (!(await run.Save())) {
601
754
  result.Issues.push(run.LatestResult?.CompleteMessage ?? 'ActivitySyncRun.Save failed.');
602
755
  return;
@@ -1 +1 @@
1
- {"version":3,"file":"ActivitySyncEngine.js","sourceRoot":"","sources":["../src/ActivitySyncEngine.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AACH,OAAO,EACH,QAAQ,EACR,OAAO,GAGV,MAAM,sBAAsB,CAAC;AAC9B,OAAO,EAAE,QAAQ,EAAE,MAAM,wBAAwB,CAAC;AAQlD,OAAO,EAAE,yBAAyB,EAAE,MAAM,gCAAgC,CAAC;AAC3E,OAAO,EAAE,wBAAwB,EAAE,MAAM,+BAA+B,CAAC;AACzE,OAAO,EAAE,sBAAsB,EAAE,MAAM,mBAAmB,CAAC;AAC3D,OAAO,EACH,qBAAqB,EACrB,uBAAuB,GAG1B,MAAM,iBAAiB,CAAC;AACzB,OAAO,EAAE,gBAAgB,EAAE,MAAM,eAAe,CAAC;AACjD,OAAO,EACH,0BAA0B,GAI7B,MAAM,aAAa,CAAC;AACrB,OAAO,EAAE,2BAA2B,EAAE,MAAM,4CAA4C,CAAC;AACzF,OAAO,EAAE,2BAA2B,EAAE,MAAM,4CAA4C,CAAC;AACzF,OAAO,EAAE,2BAA2B,EAAE,MAAM,4CAA4C,CAAC;AACzF,OAAO,EACH,6BAA6B,EAC7B,uBAAuB,GAG1B,MAAM,oBAAoB,CAAC;AAC5B,OAAO,EACH,gBAAgB,EAChB,kBAAkB,GAGrB,MAAM,UAAU,CAAC;AAClB,OAAO,EAAE,WAAW,EAAE,MAAM,UAAU,CAAC;AAEvC,OAAO,EACH,mBAAmB,EACnB,sBAAsB,EACtB,aAAa,EACb,gBAAgB,GAEnB,MAAM,gBAAgB,CAAC;AACxB,OAAO,EAAE,qBAAqB,EAAE,WAAW,EAAE,gBAAgB,EAAiB,MAAM,WAAW,CAAC;AAChG,OAAO,EAAE,cAAc,EAAE,qBAAqB,EAAE,MAAM,aAAa,CAAC;AAsBpE,sHAAsH;AACtH,MAAM,CAAC,MAAM,wBAAwB,GAAG,GAAG,CAAC;AA8C5C;;;GAGG;AACH,MAAM,UAAU,sBAAsB,CAAC,OAAoC;IACvE,MAAM,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC;IACjD,IAAI,MAAM,CAAC,MAAM,KAAK,CAAC;QAAE,OAAO,IAAI,CAAC;IACrC,MAAM,MAAM,GAAG,MAAM,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC;IAClF,OAAO,CAAC,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,IAAI,2BAA2B,CAAC,CAAC,KAAK,CAAC,CAAC,EAAE,IAAI,CAAC,CAAC;AAC9E,CAAC;AAED;;;;;;GAMG;AACH,MAAM,UAAU,uBAAuB,CAAC,MAAiC;IACrE,MAAM,IAAI,GAAG,IAAI,GAAG,EAAyB,CAAC;IAC9C,KAAK,MAAM,KAAK,IAAI,MAAM,EAAE,CAAC;QACzB,MAAM,IAAI,GAAG,IAAI,CAAC,GAAG,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC;QAChC,IAAI,KAAK,CAAC,SAAS,EAAE,CAAC;YAClB,IAAI,CAAC,GAAG,CAAC,KAAK,CAAC,EAAE,EAAE,KAAK,CAAC,SAAS,CAAC,CAAC;QACxC,CAAC;aAAM,IAAI,IAAI,KAAK,SAAS,EAAE,CAAC;YAC5B,IAAI,CAAC,GAAG,CAAC,KAAK,CAAC,EAAE,EAAE,IAAI,CAAC,CAAC;QAC7B,CAAC;IACL,CAAC;IACD,OAAO,CAAC,GAAG,IAAI,CAAC,OAAO,EAAE,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,SAAS,CAAC,EAAE,EAAE,CAAC,CAAC,EAAE,EAAE,EAAE,SAAS,EAAE,CAAC,CAAC,CAAC;AAC7E,CAAC;AAED,SAAS,mBAAmB,CAAC,MAAyB;IAClD,OAAO;QACH,OAAO,EAAE,KAAK;QACd,KAAK,EAAE,IAAI;QACX,OAAO,EAAE,CAAC;QACV,QAAQ,EAAE,CAAC;QACX,QAAQ,EAAE,CAAC;QACX,UAAU,EAAE,CAAC;QACb,MAAM,EAAE,CAAC;QACT,eAAe,EAAE,CAAC;QAClB,mBAAmB,EAAE,IAAI;QACzB,MAAM,EAAE,CAAC,GAAG,MAAM,CAAC;KACtB,CAAC;AACN,CAAC;AAED,MAAM,OAAO,kBAAkB;IAC3B,YACqB,WAA6B,IAAI,gBAAgB,EAAE,EACnD,SAAyB,IAAI,cAAc,EAAE,EAC7C,SAAgC,0BAA0B,EAAE;QAF5D,aAAQ,GAAR,QAAQ,CAA2C;QACnD,WAAM,GAAN,MAAM,CAAuC;QAC7C,WAAM,GAAN,MAAM,CAAsD;IAC9E,CAAC;IAEG,KAAK,CAAC,GAAG,CACZ,YAAoB,EACpB,OAAuB,EACvB,QAA2B,EAC3B,WAAqB,EACrB,MAAiC,EACjC,OAA2B;QAE3B,MAAM,WAAW,GAAG,OAAO,EAAE,WAAW,IAAI,IAAI,CAAC;QACjD,MAAM,MAAM,GAAqB;YAC7B,OAAO,EAAE,KAAK;YACd,KAAK,EAAE,IAAI;YACX,OAAO,EAAE,CAAC;YACV,QAAQ,EAAE,CAAC;YACX,QAAQ,EAAE,CAAC;YACX,UAAU,EAAE,CAAC;YACb,MAAM,EAAE,CAAC;YACT,eAAe,EAAE,CAAC;YAClB,mBAAmB,EAAE,IAAI;YACzB,MAAM,EAAE,EAAE;SACb,CAAC;QAEF,IAAI,UAAU,GAAG,OAAO,EAAE,UAAU,CAAC;QACrC,IAAI,CAAC,UAAU,IAAI,UAAU,CAAC,EAAE,KAAK,YAAY,EAAE,CAAC;YAChD,MAAM,gBAAgB,GAAG,MAAM,IAAI,CAAC,cAAc,CAAC,YAAY,EAAE,WAAW,CAAC,CAAC;YAC9E,IAAI,gBAAgB,CAAC,MAAM,EAAE,CAAC;gBAC1B,MAAM,CAAC,MAAM,CAAC,IAAI,CAAC,gBAAgB,CAAC,KAAK,CAAC,CAAC;gBAC3C,OAAO,MAAM,CAAC;YAClB,CAAC;YACD,UAAU,GAAG,gBAAgB,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;QAC1C,CAAC;QACD,IAAI,CAAC,UAAU,EAAE,CAAC;YACd,MAAM,CAAC,MAAM,CAAC,IAAI,CAAC,8BAA8B,YAAY,IAAI,CAAC,CAAC;YACnE,OAAO,MAAM,CAAC;QAClB,CAAC;QACD,MAAM,GAAG,GAAG,IAAI,IAAI,EAAE,CAAC;QACvB,IACI,CAAC,kBAAkB,CACf,UAAU,CAAC,MAAoD,EAC/D,UAAU,CAAC,OAAO,CAAC,CAAC,CAAC,IAAI,IAAI,CAAC,UAAU,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,IAAI,EACxD,UAAU,CAAC,KAAK,CAAC,CAAC,CAAC,IAAI,IAAI,CAAC,UAAU,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,IAAI,EACpD,GAAG,CACN,EACH,CAAC;YACC,MAAM,CAAC,MAAM,CAAC,IAAI,CAAC,cAAc,YAAY,+BAA+B,CAAC,CAAC;YAC9E,OAAO,MAAM,CAAC;QAClB,CAAC;QAED,IAAI,OAAO,GAA2B,IAAI,CAAC;QAC3C,IAAI,OAAO,IAAI,MAAM,CAAC,SAAS,CAAC,cAAc,CAAC,IAAI,CAAC,OAAO,EAAE,SAAS,CAAC,EAAE,CAAC;YACtE,OAAO,GAAG,OAAO,CAAC,OAAO,IAAI,IAAI,CAAC;QACtC,CAAC;aAAM,IAAI,UAAU,CAAC,0BAA0B,EAAE,CAAC;YAC/C,MAAM,UAAU,GAAG,MAAM,IAAI,CAAC,gBAAgB,CAAC,UAAU,CAAC,0BAA0B,EAAE,WAAW,CAAC,CAAC;YACnG,IAAI,UAAU,CAAC,MAAM,EAAE,CAAC;gBACpB,MAAM,CAAC,MAAM,CAAC,IAAI,CAAC,UAAU,CAAC,KAAK,CAAC,CAAC;gBACrC,OAAO,MAAM,CAAC;YAClB,CAAC;YACD,OAAO,GAAG,UAAU,CAAC,IAAI,CAAC,CAAC,CAAC,IAAI,IAAI,CAAC;QACzC,CAAC;QACD,+FAA+F;QAC/F,8FAA8F;QAC9F,iGAAiG;QACjG,gGAAgG;QAChG,IAAI,OAAO,EAAE,QAAQ,KAAK,KAAK,EAAE,CAAC;YAC9B,MAAM,CAAC,MAAM,CAAC,IAAI,CAAC,kBAAkB,OAAO,CAAC,IAAI,kBAAkB,CAAC,CAAC;YACrE,OAAO,MAAM,CAAC;QAClB,CAAC;QACD,2EAA2E;QAC3E,kCAAkC;QAClC,MAAM,aAAa,GAAG,6BAA6B,CAAC,OAAO,EAAE,0BAA0B,CAAC,CAAC;QAEzF,MAAM,MAAM,GAAG,CAAC,OAAO,EAAE,MAAM,IAAI,MAAM,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC,CAAC,IAAI,CAAC,aAAa,CAAC,OAAO,CAAC,WAAW,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC;QACzG,IAAI,CAAC,MAAM,EAAE,CAAC;YACV,MAAM,CAAC,MAAM,CAAC,IAAI,CACd,OAAO;gBACH,CAAC,CAAC,2DAA2D,OAAO,CAAC,WAAW,IAAI;gBACpF,CAAC,CAAC,wDAAwD,CACjE,CAAC;YACF,OAAO,MAAM,CAAC;QAClB,CAAC;QACD,uFAAuF;QACvF,yFAAyF;QACzF,+DAA+D;QAC/D,MAAM,CAAC,SAAS,CAAC;YACb,cAAc,EAAE,UAAU,CAAC,cAAc,IAAI,IAAI;YACjD,OAAO,EAAE,UAAU,CAAC,OAAO,IAAI,IAAI;YACnC,WAAW,EAAE,OAAO,EAAE,WAAW,IAAI,MAAM,CAAC,gBAAgB;YAC5D,WAAW,EAAE,WAAW;SAC3B,CAAC,CAAC;QAEH,MAAM,YAAY,GAAG,OAAO,EAAE,IAAI,IAAI,MAAM,CAAC,gBAAgB,CAAC;QAC9D,MAAM,KAAK,GAAG,gBAAgB,CAAC,MAAM,CAAC,IAAI,EAAE,UAAU,CAAC,UAAU,EAAE,UAAU,CAAC,QAAQ,CAAC,CAAC;QAExF,MAAM,UAAU,GAAG,MAAM,IAAI,CAAC,cAAc,CAAC,UAAU,CAAC,EAAE,EAAE,OAAO,EAAE,EAAE,IAAI,IAAI,EAAE,WAAW,CAAC,CAAC;QAC9F,IAAI,UAAU,CAAC,MAAM,EAAE,CAAC;YACpB,OAAO,IAAI,CAAC,UAAU,CAAC,UAAU,EAAE,OAAO,EAAE,MAAM,EAAE,KAAK,EAAE,QAAQ,EAAE,WAAW,EAAE,UAAU,CAAC,KAAK,EAAE,WAAW,CAAC,CAAC;QACrH,CAAC;QACD,MAAM,KAAK,GAAG,MAAM,MAAM,CAAC,KAAK,CAAC;YAC7B,OAAO,EAAE,UAAU,CAAC,OAAO,IAAI,EAAE;YACjC,KAAK,EAAE,KAAK;YACZ,KAAK,EAAE,OAAO,CAAC,KAAK;SACvB,CAAC,CAAC;QACH,MAAM,CAAC,OAAO,GAAG,KAAK,CAAC,KAAK,CAAC,MAAM,CAAC;QACpC,MAAM,CAAC,MAAM,CAAC,IAAI,CAAC,GAAG,KAAK,CAAC,MAAM,CAAC,CAAC;QACpC,IAAI,KAAK,CAAC,MAAM,EAAE,CAAC;YACf,OAAO,IAAI,CAAC,UAAU,CAClB,UAAU,EACV,OAAO,EACP,MAAM,EACN,KAAK,EACL,QAAQ,EACR,WAAW,EACX,KAAK,CAAC,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,IAAI,wBAAwB,EACpD,WAAW,CACd,CAAC;QACN,CAAC;QAED,MAAM,KAAK,GAAG,MAAM,IAAI,CAAC,eAAe,CAAC,YAAY,EAAE,WAAW,CAAC,CAAC;QACpE,IAAI,KAAK,CAAC,MAAM,EAAE,CAAC;YACf,OAAO,IAAI,CAAC,UAAU,CAAC,UAAU,EAAE,OAAO,EAAE,MAAM,EAAE,KAAK,EAAE,QAAQ,EAAE,WAAW,EAAE,KAAK,CAAC,KAAK,EAAE,WAAW,CAAC,CAAC;QAChH,CAAC;QACD,MAAM,UAAU,GAAG,MAAM,IAAI,CAAC,cAAc,CAAC,KAAK,CAAC,IAAI,EAAE,WAAW,CAAC,CAAC;QACtE,IAAI,UAAU,CAAC,MAAM,EAAE,CAAC;YACpB,OAAO,IAAI,CAAC,UAAU,CAAC,UAAU,EAAE,OAAO,EAAE,MAAM,EAAE,KAAK,EAAE,QAAQ,EAAE,WAAW,EAAE,UAAU,CAAC,KAAK,EAAE,WAAW,CAAC,CAAC;QACrH,CAAC;QACD,MAAM,KAAK,GAAG,MAAM,IAAI,CAAC,SAAS,CAAC,YAAY,EAAE,KAAK,CAAC,IAAI,EAAE,WAAW,CAAC,CAAC;QAC1E,IAAI,KAAK,CAAC,MAAM,EAAE,CAAC;YACf,OAAO,IAAI,CAAC,UAAU,CAAC,UAAU,EAAE,OAAO,EAAE,MAAM,EAAE,KAAK,EAAE,QAAQ,EAAE,WAAW,EAAE,KAAK,CAAC,KAAK,EAAE,WAAW,CAAC,CAAC;QAChH,CAAC;QAED,MAAM,eAAe,GAAG,KAAK,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,YAAY,CAAC,CAAC;QACnE,MAAM,eAAe,GAAqB,EAAE,CAAC;QAC7C,MAAM,UAAU,GAAG,MAAM,IAAI,CAAC,QAAQ,CAAC,OAAO,CAAC,eAAe,EAAE,WAAW,CAAC,CAAC;QAC7E,IAAI,UAAU,CAAC,YAAY,EAAE,CAAC;YAC1B,MAAM,CAAC,MAAM,IAAI,KAAK,CAAC,KAAK,CAAC,MAAM,CAAC;YACpC,MAAM,CAAC,MAAM,CAAC,IAAI,CAAC,2DAA2D,CAAC,CAAC;YAChF,MAAM,IAAI,CAAC,UAAU,CAAC,UAAU,EAAE,OAAO,EAAE,MAAM,EAAE,KAAK,EAAE,IAAI,EAAE,QAAQ,EAAE,WAAW,EAAE,EAAE,CAAC,CAAC;YAC3F,IAAI,CAAC,OAAO,CAAC,MAAM,IAAI,WAAW,EAAE,CAAC;gBACjC,MAAM,IAAI,CAAC,qBAAqB,CAC5B,UAAU,CAAC,EAAE,EACb,KAAK,EACL,2DAA2D,EAC3D,WAAW,EACX,QAAQ,CACX,CAAC;YACN,CAAC;YACD,OAAO,MAAM,CAAC;QAClB,CAAC;QAED,MAAM,OAAO,GAQR,EAAE,CAAC;QAER,KAAK,MAAM,IAAI,IAAI,KAAK,CAAC,KAAK,EAAE,CAAC;YAC7B,MAAM,GAAG,GAA+B;gBACpC,YAAY,EAAE,UAAU,CAAC,EAAE;gBAC3B,gBAAgB,EAAE,YAAY;gBAC9B,UAAU,EAAE,UAAU,CAAC,IAAI;gBAC3B,KAAK,EAAE,KAAK,CAAC,IAAI;gBACjB,eAAe,EAAE,EAAE;gBACnB,cAAc,EAAE,UAAU,CAAC,KAAK;aACnC,CAAC;YACF,IAAI,OAAO,CAAC;YACZ,IAAI,CAAC;gBACD,OAAO,GAAG,MAAM,uBAAuB,CACnC,IAAI,CAAC,MAAM,EACX,IAAI,EACJ,GAAG,EACH,aAAa,CAChB,CAAC;YACN,CAAC;YAAC,OAAO,GAAG,EAAE,CAAC;gBACX,MAAM,CAAC,MAAM,EAAE,CAAC;gBAChB,MAAM,CAAC,MAAM,CAAC,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,CAAC;gBAChC,OAAO,CAAC,IAAI,CAAC;oBACT,IAAI,EAAE,IAAI;oBACV,QAAQ,EAAE,QAAQ;oBAClB,KAAK,EAAE,eAAe;oBACtB,MAAM,EAAE,MAAM,CAAC,GAAG,CAAC;iBACtB,CAAC,CAAC;gBACH,SAAS;YACb,CAAC;YAED,IAAI,OAAO,CAAC,QAAQ,KAAK,SAAS,EAAE,CAAC;gBACjC,MAAM,CAAC,QAAQ,EAAE,CAAC;gBAClB,OAAO,CAAC,IAAI,CAAC;oBACT,IAAI,EAAE,IAAI;oBACV,QAAQ,EAAE,OAAO,CAAC,MAAM,CAAC,CAAC,CAAC,cAAc,CAAC,CAAC,CAAC,UAAU;oBACtD,KAAK,EAAE,OAAO,CAAC,SAAS;oBACxB,MAAM,EAAE,OAAO,CAAC,MAAM;oBACtB,MAAM,EAAE,OAAO,CAAC,kBAAkB;oBAClC,WAAW,EAAE,OAAO,CAAC,uBAAuB;iBAC/C,CAAC,CAAC;gBACH,SAAS;YACb,CAAC;YAED,IAAI,OAAO,CAAC,QAAQ,KAAK,SAAS,EAAE,CAAC;gBACjC,MAAM,CAAC,QAAQ,EAAE,CAAC;gBAClB,OAAO,CAAC,IAAI,CAAC;oBACT,IAAI,EAAE,IAAI;oBACV,QAAQ,EAAE,OAAO,CAAC,MAAM,CAAC,CAAC,CAAC,cAAc,CAAC,CAAC,CAAC,UAAU;oBACtD,KAAK,EAAE,OAAO,CAAC,SAAS;oBACxB,MAAM,EAAE,OAAO,CAAC,MAAM;iBACzB,CAAC,CAAC;gBACH,SAAS;YACb,CAAC;YAED,IAAI,OAAO,CAAC,MAAM,EAAE,CAAC;gBACjB,MAAM,CAAC,QAAQ,EAAE,CAAC;gBAClB,OAAO,CAAC,IAAI,CAAC;oBACT,IAAI,EAAE,IAAI;oBACV,QAAQ,EAAE,cAAc;oBACxB,KAAK,EAAE,OAAO,CAAC,SAAS;oBACxB,MAAM,EAAE,OAAO,CAAC,MAAM;oBACtB,MAAM,EAAE,OAAO,CAAC,kBAAkB;iBACrC,CAAC,CAAC;gBACH,SAAS;YACb,CAAC;YAED,MAAM,cAAc,GAAG,MAAM,IAAI,CAAC,QAAQ,CAAC,OAAO,CAAC,IAAI,CAAC,YAAY,EAAE,WAAW,CAAC,CAAC;YACnF,IAAI,cAAc,CAAC,YAAY,EAAE,CAAC;gBAC9B,MAAM,CAAC,MAAM,EAAE,CAAC;gBAChB,OAAO,CAAC,IAAI,CAAC;oBACT,IAAI,EAAE,IAAI;oBACV,QAAQ,EAAE,QAAQ;oBAClB,KAAK,EAAE,SAAS;oBAChB,MAAM,EAAE,6BAA6B;iBACxC,CAAC,CAAC;gBACH,SAAS;YACb,CAAC;YAED,MAAM,WAAW,GAAG,MAAM,CAAC,MAAM,CAAC,CAAC,CAAC,aAAa,CAAC,CAAC,CAAC,QAAQ,CAAC;YAC7D,MAAM,OAAO,GAAG,MAAM,IAAI,CAAC,MAAM,CAAC,KAAK,CACnC;gBACI,IAAI,EAAE,IAAI;gBACV,YAAY,EAAE,UAAU,CAAC,EAAE;gBAC3B,YAAY,EAAE,YAAY;gBAC1B,MAAM,EAAE,WAAW;gBACnB,QAAQ,EAAE,cAAc,CAAC,QAAQ;gBACjC,UAAU,EAAE,cAAc,CAAC,UAAU;gBACrC,SAAS,EAAE,qBAAqB,CAAC,UAAU,CAAC,QAAQ,CAAC;aACxD,EACD,QAAQ,EACR,WAAW,EACX;gBACI,gBAAgB,EAAE,YAAY;gBAC9B,SAAS,EAAE,KAAK,EAAE,QAAQ,EAAE,EAAE;oBAC1B,MAAM,GAAG,GAAG,MAAM,uBAAuB,CACrC,QAAQ,EACR,UAAU,CAAC,IAAI,EACf,CAAC,WAAW,EAAE,EAAE,CAAC,IAAI,CAAC,gBAAgB,CAAC,WAAW,CAAC,CACtD,CAAC;oBACF,MAAM,CAAC,eAAe,IAAI,GAAG,CAAC,MAAM,CAAC;oBACrC,eAAe,CAAC,IAAI,CAAC,GAAG,GAAG,CAAC,MAAM,CAAC,CAAC;oBACpC,IAAI,GAAG,CAAC,OAAO,EAAE,CAAC;wBACd,MAAM,IAAI,GAAG,GAAG,CAAC,MAAM,CAAC,GAAG,CAAC,MAAM,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC;wBAC/C,MAAM,IAAI,KAAK,CAAC,IAAI,EAAE,SAAS,IAAI,6CAA6C,CAAC,CAAC;oBACtF,CAAC;gBACL,CAAC;aACJ,CACJ,CAAC;YACF,IAAI,CAAC,OAAO,CAAC,OAAO,EAAE,CAAC;gBACnB,MAAM,CAAC,MAAM,EAAE,CAAC;gBAChB,OAAO,CAAC,IAAI,CAAC;oBACT,IAAI,EAAE,IAAI;oBACV,QAAQ,EAAE,QAAQ;oBAClB,KAAK,EAAE,OAAO;oBACd,MAAM,EAAE,OAAO,CAAC,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,cAAc;iBACtD,CAAC,CAAC;gBACH,SAAS;YACb,CAAC;YACD,IAAI,OAAO,CAAC,cAAc,EAAE,CAAC;gBACzB,MAAM,CAAC,UAAU,EAAE,CAAC;gBACpB,OAAO,CAAC,IAAI,CAAC;oBACT,IAAI,EAAE,IAAI;oBACV,QAAQ,EAAE,WAAW;oBACrB,KAAK,EAAE,OAAO;oBACd,MAAM,EAAE,yCAAyC;oBACjD,UAAU,EAAE,OAAO,CAAC,UAAU;iBACjC,CAAC,CAAC;gBACH,SAAS;YACb,CAAC;YACD,MAAM,CAAC,QAAQ,EAAE,CAAC;YAClB,OAAO,CAAC,IAAI,CAAC;gBACT,IAAI,EAAE,IAAI;gBACV,QAAQ,EAAE,UAAU;gBACpB,KAAK,EAAE,OAAO,CAAC,SAAS;gBACxB,MAAM,EAAE,OAAO,CAAC,MAAM;gBACtB,MAAM,EAAE,OAAO,CAAC,kBAAkB;gBAClC,UAAU,EAAE,OAAO,CAAC,UAAU;aACjC,CAAC,CAAC;QACP,CAAC;QAED,IAAI,CAAC,OAAO,CAAC,MAAM,EAAE,CAAC;YAClB,MAAM,IAAI,CAAC,eAAe,CAAC,uBAAuB,CAAC,eAAe,CAAC,EAAE,QAAQ,EAAE,WAAW,CAAC,CAAC;QAChG,CAAC;QAED,MAAM,OAAO,GAAe;YACxB,OAAO,EAAE,MAAM,CAAC,QAAQ,GAAG,MAAM,CAAC,UAAU;YAC5C,SAAS,EAAE,MAAM,CAAC,QAAQ;YAC1B,MAAM,EAAE,MAAM,CAAC,MAAM;SACxB,CAAC;QACF,MAAM,SAAS,GAAG,KAAK,CAAC,aAAa,CAAC;QACtC,MAAM,IAAI,GAAG,OAAO,CAAC,MAAM,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,aAAa,CAAC,KAAK,EAAE,SAAS,EAAE,OAAO,CAAC,CAAC;QAC/E,IAAI,CAAC,OAAO,CAAC,MAAM,IAAI,IAAI,IAAI,mBAAmB,CAAC,OAAO,CAAC,IAAI,SAAS,EAAE,CAAC;YACvE,MAAM,OAAO,GAAG,MAAM,IAAI,CAAC,qBAAqB,CAC5C,YAAY,EACZ,IAAI,EACJ,MAAM,CAAC,IAAI,EACX,WAAW,EACX,QAAQ,CACX,CAAC;YACF,IAAI,OAAO,EAAE,CAAC;gBACV,MAAM,CAAC,mBAAmB,GAAG,IAAI,CAAC;YACtC,CAAC;iBAAM,CAAC;gBACJ,MAAM,CAAC,MAAM,CAAC,IAAI,CAAC,gEAAgE,CAAC,CAAC;YACzF,CAAC;QACL,CAAC;QAED,MAAM,IAAI,CAAC,UAAU,CAAC,UAAU,EAAE,OAAO,EAAE,MAAM,EAAE,KAAK,EAAE,OAAO,CAAC,MAAM,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,MAAM,CAAC,mBAAmB,EAAE,QAAQ,EAAE,WAAW,EAAE,OAAO,CAAC,CAAC;QAC9I,MAAM,CAAC,OAAO,GAAG,MAAM,CAAC,MAAM,KAAK,CAAC,CAAC;QACrC,IAAI,CAAC,OAAO,CAAC,MAAM,IAAI,WAAW,EAAE,CAAC;YACjC,MAAM,IAAI,CAAC,qBAAqB,CAC5B,YAAY,EACZ,MAAM,CAAC,OAAO,EACd,sBAAsB,CAAC,CAAC,MAAM,CAAC,CAAC,EAChC,WAAW,EACX,QAAQ,CACX,CAAC;QACN,CAAC;QACD,OAAO,MAAM,CAAC;IAClB,CAAC;IAED;;;;;;;;OAQG;IACI,KAAK,CAAC,cAAc,CACvB,OAAuB,EACvB,QAA2B,EAC3B,WAAqB;QAErB,MAAM,KAAK,GAAmB,EAAE,OAAO,EAAE,IAAI,EAAE,oBAAoB,EAAE,CAAC,EAAE,OAAO,EAAE,EAAE,EAAE,MAAM,EAAE,EAAE,EAAE,CAAC;QAClG,MAAM,MAAM,GAAG,MAAM,IAAI,CAAC,uBAAuB,CAAC,WAAW,CAAC,CAAC;QAC/D,IAAI,MAAM,CAAC,MAAM,EAAE,CAAC;YAChB,KAAK,CAAC,OAAO,GAAG,KAAK,CAAC;YACtB,KAAK,CAAC,MAAM,CAAC,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;YAChC,OAAO,KAAK,CAAC;QACjB,CAAC;QACD,IAAI,MAAM,CAAC,IAAI,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;YAC3B,OAAO,KAAK,CAAC;QACjB,CAAC;QACD,IAAI,IAAI,GAAG,MAAM,CAAC,IAAI,CAAC;QACvB,IAAI,IAAI,CAAC,MAAM,GAAG,wBAAwB,EAAE,CAAC;YACzC,KAAK,CAAC,OAAO,GAAG,KAAK,CAAC;YACtB,KAAK,CAAC,MAAM,CAAC,IAAI,CACb,6CAA6C,wBAAwB,6CAA6C,CACrH,CAAC;YACF,IAAI,GAAG,IAAI,CAAC,KAAK,CAAC,CAAC,EAAE,wBAAwB,CAAC,CAAC;QACnD,CAAC;QACD,KAAK,MAAM,UAAU,IAAI,IAAI,EAAE,CAAC;YAC5B,KAAK,CAAC,oBAAoB,EAAE,CAAC;YAC7B,IAAI,OAAO,GAA2B,IAAI,CAAC;YAC3C,IAAI,UAAU,CAAC,0BAA0B,EAAE,CAAC;gBACxC,MAAM,UAAU,GAAG,MAAM,IAAI,CAAC,gBAAgB,CAAC,UAAU,CAAC,0BAA0B,EAAE,WAAW,CAAC,CAAC;gBACnG,IAAI,UAAU,CAAC,MAAM,EAAE,CAAC;oBACpB,MAAM,MAAM,GAAG,mBAAmB,CAAC,CAAC,UAAU,CAAC,KAAK,CAAC,CAAC,CAAC;oBACvD,KAAK,CAAC,OAAO,CAAC,IAAI,CAAC,EAAE,YAAY,EAAE,UAAU,CAAC,EAAE,EAAE,OAAO,EAAE,SAAS,EAAE,MAAM,EAAE,MAAM,EAAE,CAAC,CAAC;oBACxF,KAAK,CAAC,OAAO,GAAG,KAAK,CAAC;oBACtB,KAAK,CAAC,MAAM,CAAC,IAAI,CAAC,GAAG,MAAM,CAAC,MAAM,CAAC,CAAC;oBACpC,IAAI,CAAC,OAAO,CAAC,MAAM,EAAE,CAAC;wBAClB,MAAM,IAAI,CAAC,qBAAqB,CAC5B,UAAU,CAAC,EAAE,EACb,KAAK,EACL,sBAAsB,CAAC,CAAC,MAAM,CAAC,CAAC,EAChC,WAAW,EACX,QAAQ,CACX,CAAC;oBACN,CAAC;oBACD,SAAS;gBACb,CAAC;gBACD,OAAO,GAAG,UAAU,CAAC,IAAI,CAAC,CAAC,CAAC,IAAI,IAAI,CAAC;YACzC,CAAC;YACD,MAAM,OAAO,GAAG,MAAM,IAAI,CAAC,GAAG,CAAC,UAAU,CAAC,EAAE,EAAE,OAAO,EAAE,QAAQ,EAAE,WAAW,EAAE,SAAS,EAAE;gBACrF,WAAW,EAAE,KAAK;gBAClB,UAAU;gBACV,OAAO;aACV,CAAC,CAAC;YACH,KAAK,CAAC,OAAO,CAAC,IAAI,CAAC,EAAE,YAAY,EAAE,UAAU,CAAC,EAAE,EAAE,OAAO,EAAE,SAAS,EAAE,MAAM,EAAE,OAAO,EAAE,CAAC,CAAC;YACzF,IAAI,CAAC,OAAO,CAAC,OAAO,EAAE,CAAC;gBACnB,KAAK,CAAC,OAAO,GAAG,KAAK,CAAC;gBACtB,KAAK,CAAC,MAAM,CAAC,IAAI,CAAC,GAAG,OAAO,CAAC,MAAM,CAAC,CAAC;YACzC,CAAC;YACD,MAAM,QAAQ,GAAuB,CAAC,OAAO,CAAC,CAAC;YAC/C,MAAM,cAAc,GAAG,OAAO,EAAE,mBAAmB,EAAE,IAAI,EAAE,CAAC;YAC5D,IAAI,cAAc,EAAE,CAAC;gBACjB,MAAM,cAAc,GAAG,IAAI,CAAC,aAAa,CAAC,cAAc,CAAC,CAAC;gBAC1D,IAAI,CAAC,cAAc,EAAE,CAAC;oBAClB,MAAM,OAAO,GAAG,mBAAmB,CAAC;wBAChC,mEAAmE,cAAc,IAAI;qBACxF,CAAC,CAAC;oBACH,KAAK,CAAC,OAAO,CAAC,IAAI,CAAC,EAAE,YAAY,EAAE,UAAU,CAAC,EAAE,EAAE,OAAO,EAAE,UAAU,EAAE,MAAM,EAAE,OAAO,EAAE,CAAC,CAAC;oBAC1F,KAAK,CAAC,OAAO,GAAG,KAAK,CAAC;oBACtB,KAAK,CAAC,MAAM,CAAC,IAAI,CAAC,GAAG,OAAO,CAAC,MAAM,CAAC,CAAC;oBACrC,QAAQ,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;gBAC3B,CAAC;qBAAM,CAAC;oBACJ,MAAM,QAAQ,GAAG,MAAM,IAAI,CAAC,GAAG,CAAC,UAAU,CAAC,EAAE,EAAE,OAAO,EAAE,QAAQ,EAAE,WAAW,EAAE,SAAS,EAAE;wBACtF,WAAW,EAAE,KAAK;wBAClB,UAAU;wBACV,OAAO;wBACP,MAAM,EAAE,cAAc;qBACzB,CAAC,CAAC;oBACH,KAAK,CAAC,OAAO,CAAC,IAAI,CAAC,EAAE,YAAY,EAAE,UAAU,CAAC,EAAE,EAAE,OAAO,EAAE,UAAU,EAAE,MAAM,EAAE,QAAQ,EAAE,CAAC,CAAC;oBAC3F,IAAI,CAAC,QAAQ,CAAC,OAAO,EAAE,CAAC;wBACpB,KAAK,CAAC,OAAO,GAAG,KAAK,CAAC;wBACtB,KAAK,CAAC,MAAM,CAAC,IAAI,CAAC,GAAG,QAAQ,CAAC,MAAM,CAAC,CAAC;oBAC1C,CAAC;oBACD,QAAQ,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;gBAC5B,CAAC;YACL,CAAC;YACD,IAAI,CAAC,OAAO,CAAC,MAAM,EAAE,CAAC;gBAClB,MAAM,eAAe,GAAG,QAAQ,CAAC,KAAK,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC;gBACzD,MAAM,IAAI,CAAC,qBAAqB,CAC5B,UAAU,CAAC,EAAE,EACb,eAAe,EACf,sBAAsB,CAAC,QAAQ,CAAC,EAChC,WAAW,EACX,QAAQ,CACX,CAAC;YACN,CAAC;QACL,CAAC;QACD,OAAO,KAAK,CAAC;IACjB,CAAC;IAEO,aAAa,CAAC,WAAmB;QACrC,IAAI,CAAC;YACD,MAAM,OAAO,GAAG,QAAQ,CAAC,QAAQ,CAAC,YAAY,CAAC,iBAAiB,CAC5D,wBAAwB,EACxB,WAAW,CACd,CAAC;YACF,IAAI,OAAO,CAAC,QAAQ,IAAI,OAAO,CAAC,QAAQ;gBAAE,OAAO,OAAO,CAAC,QAAQ,CAAC;YAClE,OAAO,IAAI,CAAC;QAChB,CAAC;QAAC,MAAM,CAAC;YACL,IAAI,WAAW,KAAK,SAAS,EAAE,CAAC;gBAC5B,OAAO,IAAI,2BAA2B,EAAE,CAAC;YAC7C,CAAC;YACD,OAAO,IAAI,CAAC;QAChB,CAAC;IACL,CAAC;IAEO,KAAK,CAAC,UAAU,CACpB,UAAyB,EACzB,OAAuB,EACvB,MAAwB,EACxB,KAAkB,EAClB,QAA2B,EAC3B,WAAqB,EACrB,KAAa,EACb,WAAoB;QAEpB,MAAM,CAAC,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;QAC1B,MAAM,CAAC,MAAM,IAAI,MAAM,CAAC,OAAO,CAAC;QAChC,IAAI,MAAM,CAAC,MAAM,GAAG,CAAC;YAAE,MAAM,CAAC,MAAM,GAAG,CAAC,CAAC;QACzC,MAAM,IAAI,CAAC,UAAU,CAAC,UAAU,EAAE,OAAO,EAAE,MAAM,EAAE,KAAK,EAAE,IAAI,EAAE,QAAQ,EAAE,WAAW,EAAE,EAAE,CAAC,CAAC;QAC3F,IAAI,CAAC,OAAO,CAAC,MAAM,IAAI,WAAW,EAAE,CAAC;YACjC,MAAM,IAAI,CAAC,qBAAqB,CAAC,UAAU,CAAC,EAAE,EAAE,KAAK,EAAE,KAAK,EAAE,WAAW,EAAE,QAAQ,CAAC,CAAC;QACzF,CAAC;QACD,OAAO,MAAM,CAAC;IAClB,CAAC;IAEO,gBAAgB,CAAC,WAAmB;QACxC,IAAI,CAAC;YACD,MAAM,OAAO,GAAG,QAAQ,CAAC,QAAQ,CAAC,YAAY,CAAC,iBAAiB,CAC5D,yBAAyB,EACzB,WAAW,CACd,CAAC;YACF,IAAI,OAAO,CAAC,QAAQ,IAAI,OAAO,CAAC,QAAQ;gBAAE,OAAO,OAAO,CAAC,QAAQ,CAAC;YAClE,OAAO,IAAI,CAAC;QAChB,CAAC;QAAC,MAAM,CAAC;YACL,OAAO,IAAI,CAAC;QAChB,CAAC;IACL,CAAC;IAEO,KAAK,CAAC,cAAc,CACxB,YAAoB,EACpB,cAA6B,EAC7B,IAAc;QAEd,MAAM,EAAE,GAAG,IAAI,OAAO,EAAE,CAAC;QACzB,MAAM,GAAG,GAAG,MAAM,EAAE,CAAC,OAAO,CACxB;YACI,UAAU,EAAE,sBAAsB,CAAC,UAAU;YAC7C,WAAW,EAAE,qBAAqB,CAAC,YAAY,EAAE,cAAc,CAAC;YAChE,OAAO,EAAE,cAAc;YACvB,UAAU,EAAE,QAAQ;SACvB,EACD,IAAI,CACP,CAAC;QACF,OAAO,WAAW,CAAC,GAAG,CAAC,OAAO,EAAE,GAAG,CAAC,OAAO,EAAE,uBAAuB,CAAC,CAAC;IAC1E,CAAC;IAEO,KAAK,CAAC,eAAe,CACzB,MAAiC,EACjC,QAA2B,EAC3B,IAAc;QAEd,MAAM,GAAG,GAAG,IAAI,IAAI,EAAE,CAAC;QACvB,KAAK,MAAM,KAAK,IAAI,MAAM,EAAE,CAAC;YACzB,IAAI,CAAC;gBACD,MAAM,GAAG,GAAG,MAAM,QAAQ,CAAC,eAAe,CACtC,sBAAsB,CAAC,UAAU,EACjC,IAAI,CACP,CAAC;gBACF,IAAI,CAAC,CAAC,MAAM,GAAG,CAAC,IAAI,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC;oBAAE,SAAS;gBAC1C,GAAG,CAAC,SAAS,GAAG,GAAG,CAAC;gBACpB,GAAG,CAAC,SAAS,GAAG,KAAK,CAAC,SAAS,CAAC;gBAChC,MAAM,GAAG,CAAC,IAAI,EAAE,CAAC;YACrB,CAAC;YAAC,OAAO,GAAG,EAAE,CAAC;gBACX,QAAQ,CAAC,iDAAiD,KAAK,CAAC,EAAE,KAAK,GAAG,EAAE,CAAC,CAAC;YAClF,CAAC;QACL,CAAC;IACL,CAAC;IAEO,KAAK,CAAC,qBAAqB,CAC/B,YAAoB,EACpB,OAAgB,EAChB,KAAoB,EACpB,IAAc,EACd,QAA2B;QAE3B,IAAI,CAAC;YACD,MAAM,GAAG,GAAG,MAAM,QAAQ,CAAC,eAAe,CACtC,sBAAsB,CAAC,WAAW,EAClC,IAAI,CACP,CAAC;YACF,IAAI,CAAC,CAAC,MAAM,GAAG,CAAC,IAAI,CAAC,YAAY,CAAC,CAAC;gBAAE,OAAO;YAC5C,IAAI,OAAO,EAAE,CAAC;gBACV,GAAG,CAAC,SAAS,GAAG,IAAI,CAAC;gBACrB,IAAI,GAAG,CAAC,MAAM,KAAK,OAAO;oBAAE,GAAG,CAAC,MAAM,GAAG,QAAQ,CAAC;YACtD,CAAC;iBAAM,CAAC;gBACJ,GAAG,CAAC,MAAM,GAAG,OAAO,CAAC;gBACrB,GAAG,CAAC,SAAS,GAAG,CAAC,KAAK,IAAI,2BAA2B,CAAC,CAAC,KAAK,CAAC,CAAC,EAAE,IAAI,CAAC,CAAC;YAC1E,CAAC;YACD,MAAM,GAAG,CAAC,IAAI,EAAE,CAAC;QACrB,CAAC;QAAC,OAAO,GAAG,EAAE,CAAC;YACX,QAAQ,CAAC,oDAAoD,GAAG,EAAE,CAAC,CAAC;QACxE,CAAC;IACL,CAAC;IAEO,KAAK,CAAC,cAAc,CAAC,EAAU,EAAE,IAAc;QACnD,MAAM,EAAE,GAAG,IAAI,OAAO,EAAE,CAAC;QACzB,MAAM,GAAG,GAAG,MAAM,EAAE,CAAC,OAAO,CACxB;YACI,UAAU,EAAE,sBAAsB,CAAC,WAAW;YAC9C,WAAW,EAAE,SAAS,WAAW,CAAC,EAAE,EAAE,0BAA0B,CAAC,GAAG;YACpE,OAAO,EAAE,CAAC;YACV,UAAU,EAAE,QAAQ;SACvB,EACD,IAAI,CACP,CAAC;QACF,OAAO,WAAW,CAAC,GAAG,CAAC,OAAO,EAAE,GAAG,CAAC,OAAO,EAAE,wBAAwB,CAAC,CAAC;IAC3E,CAAC;IAEO,KAAK,CAAC,uBAAuB,CAAC,IAAc;QAChD,MAAM,EAAE,GAAG,IAAI,OAAO,EAAE,CAAC;QACzB,MAAM,GAAG,GAAG,MAAM,EAAE,CAAC,OAAO,CACxB;YACI,UAAU,EAAE,sBAAsB,CAAC,WAAW;YAC9C,WAAW,EAAE,uCAAuC;YACpD,OAAO,EAAE,wBAAwB,GAAG,CAAC;YACrC,UAAU,EAAE,QAAQ;SACvB,EACD,IAAI,CACP,CAAC;QACF,OAAO,WAAW,CAAC,GAAG,CAAC,OAAO,EAAE,GAAG,CAAC,OAAO,EAAE,wBAAwB,CAAC,CAAC;IAC3E,CAAC;IAEO,KAAK,CAAC,gBAAgB,CAAC,EAAU,EAAE,IAAc;QACrD,MAAM,EAAE,GAAG,IAAI,OAAO,EAAE,CAAC;QACzB,MAAM,GAAG,GAAG,MAAM,EAAE,CAAC,OAAO,CACxB;YACI,UAAU,EAAE,sBAAsB,CAAC,aAAa;YAChD,WAAW,EAAE,SAAS,WAAW,CAAC,EAAE,EAAE,4BAA4B,CAAC,GAAG;YACtE,MAAM,EAAE,CAAC,IAAI,EAAE,MAAM,EAAE,aAAa,EAAE,4BAA4B,EAAE,qBAAqB,EAAE,UAAU,CAAC;YACtG,OAAO,EAAE,CAAC;YACV,UAAU,EAAE,QAAQ;SACvB,EACD,IAAI,CACP,CAAC;QACF,OAAO,WAAW,CAAC,GAAG,CAAC,OAAO,EAAE,GAAG,CAAC,OAAO,EAAE,0BAA0B,CAAC,CAAC;IAC7E,CAAC;IAEO,KAAK,CAAC,eAAe,CAAC,YAAoB,EAAE,IAAc;QAC9D,MAAM,EAAE,GAAG,IAAI,OAAO,EAAE,CAAC;QACzB,MAAM,KAAK,GAAG,MAAM,EAAE,CAAC,OAAO,CAC1B;YACI,UAAU,EAAE,sBAAsB,CAAC,kBAAkB;YACrD,WAAW,EAAE,+BAA+B,WAAW,CAAC,YAAY,EAAE,0BAA0B,CAAC,GAAG;YACpG,UAAU,EAAE,QAAQ;SACvB,EACD,IAAI,CACP,CAAC;QACF,IAAI,CAAC,KAAK,CAAC,OAAO,EAAE,CAAC;YACjB,OAAO,EAAE,MAAM,EAAE,IAAI,EAAE,KAAK,EAAE,8CAA8C,EAAE,CAAC;QACnF,CAAC;QACD,OAAO;YACH,MAAM,EAAE,KAAK;YACb,IAAI,EAAE,CAAC,KAAK,CAAC,OAAO,IAAI,EAAE,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,qBAAqB,CAAC;SAClE,CAAC;IACN,CAAC;IAEO,KAAK,CAAC,cAAc,CAAC,MAAyB,EAAE,IAAc;QAClE,MAAM,EAAE,GAAG,IAAI,OAAO,EAAE,CAAC;QACzB,MAAM,GAAG,GAAG,MAAM,EAAE,CAAC,OAAO,CACxB;YACI,UAAU,EAAE,sBAAsB,CAAC,UAAU;YAC7C,WAAW,EAAE,qBAAqB,CAAC,MAAM,CAAC;YAC1C,UAAU,EAAE,QAAQ;SACvB,EACD,IAAI,CACP,CAAC;QACF,OAAO,WAAW,CAAC,GAAG,CAAC,OAAO,EAAE,GAAG,CAAC,OAAO,EAAE,uBAAuB,CAAC,CAAC;IAC1E,CAAC;IAEO,KAAK,CAAC,SAAS,CACnB,YAAoB,EACpB,MAAyB,EACzB,IAAc;QAEd,MAAM,EAAE,GAAG,IAAI,OAAO,EAAE,CAAC;QACzB,MAAM,GAAG,GAAG,MAAM,EAAE,CAAC,OAAO,CACxB;YACI,UAAU,EAAE,sBAAsB,CAAC,KAAK;YACxC,WAAW,EAAE,gBAAgB,CAAC,MAAM,EAAE,YAAY,CAAC;YACnD,UAAU,EAAE,QAAQ;SACvB,EACD,IAAI,CACP,CAAC;QACF,OAAO,WAAW,CAAC,GAAG,CAAC,OAAO,EAAE,GAAG,CAAC,OAAO,EAAE,kBAAkB,CAAC,CAAC;IACrE,CAAC;IAEO,KAAK,CAAC,qBAAqB,CAC/B,YAAoB,EACpB,EAAQ,EACR,IAAwB,EACxB,IAAc,EACd,QAA2B;QAE3B,MAAM,GAAG,GAAG,MAAM,QAAQ,CAAC,eAAe,CACtC,sBAAsB,CAAC,WAAW,EAClC,IAAI,CACP,CAAC;QACF,IAAI,CAAC,CAAC,MAAM,GAAG,CAAC,IAAI,CAAC,YAAY,CAAC,CAAC;YAAE,OAAO,KAAK,CAAC;QAClD,IAAI,IAAI,KAAK,UAAU,EAAE,CAAC;YACtB,GAAG,CAAC,QAAQ,GAAG,sBAAsB,CAAC,GAAG,CAAC,QAAQ,EAAE,EAAE,CAAC,CAAC;QAC5D,CAAC;aAAM,CAAC;YACJ,GAAG,CAAC,UAAU,GAAG,EAAE,CAAC;QACxB,CAAC;QACD,OAAO,GAAG,CAAC,IAAI,EAAE,CAAC;IACtB,CAAC;IAEO,KAAK,CAAC,UAAU,CACpB,UAAyB,EACzB,OAAuB,EACvB,MAAwB,EACxB,eAA4B,EAC5B,cAA2B,EAC3B,QAA2B,EAC3B,IAAc,EACd,OAQE;QAEF,IAAI,CAAC;YACD,MAAM,GAAG,GAAG,MAAM,QAAQ,CAAC,eAAe,CACtC,sBAAsB,CAAC,IAAI,EAC3B,IAAI,CACP,CAAC;YACF,GAAG,CAAC,SAAS,EAAE,CAAC;YAChB,GAAG,CAAC,wBAAwB,GAAG,UAAU,CAAC,EAAE,CAAC;YAC7C,GAAG,CAAC,WAAW,GAAG,OAAO,CAAC,WAAW,CAAC;YACtC,GAAG,CAAC,QAAQ,GAAG,OAAO,CAAC,MAAM,CAAC;YAC9B,GAAG,CAAC,OAAO,GAAG,MAAM,CAAC,OAAO,CAAC;YAC7B,GAAG,CAAC,QAAQ,GAAG,MAAM,CAAC,QAAQ,CAAC;YAC/B,GAAG,CAAC,QAAQ,GAAG,MAAM,CAAC,QAAQ,CAAC;YAC/B,GAAG,CAAC,UAAU,GAAG,MAAM,CAAC,UAAU,CAAC;YACnC,GAAG,CAAC,MAAM,GAAG,MAAM,CAAC,MAAM,CAAC;YAC3B,GAAG,CAAC,eAAe,GAAG,MAAM,CAAC,eAAe,CAAC;YAC7C,GAAG,CAAC,eAAe,GAAG,eAAe,CAAC;YACtC,GAAG,CAAC,cAAc,GAAG,OAAO,CAAC,MAAM,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,cAAc,CAAC;YAC5D,GAAG,CAAC,SAAS,GAAG,IAAI,IAAI,EAAE,CAAC;YAC3B,GAAG,CAAC,OAAO,GAAG,IAAI,IAAI,EAAE,CAAC;YACzB,GAAG,CAAC,MAAM,GAAG,MAAM,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,WAAW,CAAC;YACxD,IAAI,CAAC,CAAC,MAAM,GAAG,CAAC,IAAI,EAAE,CAAC,EAAE,CAAC;gBACtB,MAAM,CAAC,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,YAAY,EAAE,eAAe,IAAI,8BAA8B,CAAC,CAAC;gBACxF,OAAO;YACX,CAAC;YACD,MAAM,CAAC,KAAK,GAAG,GAAG,CAAC,EAAE,CAAC;YACtB,KAAK,MAAM,MAAM,IAAI,OAAO,EAAE,CAAC;gBAC3B,MAAM,GAAG,GAAG,MAAM,QAAQ,CAAC,eAAe,CACtC,sBAAsB,CAAC,UAAU,EACjC,IAAI,CACP,CAAC;gBACF,GAAG,CAAC,SAAS,EAAE,CAAC;gBAChB,GAAG,CAAC,iBAAiB,GAAG,GAAG,CAAC,EAAE,CAAC;gBAC/B,GAAG,CAAC,UAAU,GAAG,MAAM,CAAC,IAAI,CAAC,UAAU,CAAC;gBACxC,GAAG,CAAC,gBAAgB,GAAG,MAAM,CAAC,IAAI,CAAC,gBAAgB,CAAC;gBACpD,GAAG,CAAC,UAAU,GAAG,MAAM,CAAC,IAAI,CAAC,SAAS,CAAC;gBACvC,GAAG,CAAC,QAAQ,GAAG,OAAO,CAAC,MAAM,CAAC,CAAC,CAAC,gBAAgB,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,QAAQ,CAAC;gBACpF,GAAG,CAAC,cAAc,GAAG,MAAM,CAAC,KAAK,CAAC;gBAClC,GAAG,CAAC,MAAM,GAAG,MAAM,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,EAAE,GAAG,CAAC,CAAC;gBACzC,GAAG,CAAC,kBAAkB,GAAG,MAAM,CAAC,MAAM,IAAI,IAAI,CAAC;gBAC/C,GAAG,CAAC,uBAAuB,GAAG,MAAM,CAAC,WAAW,IAAI,IAAI,CAAC;gBACzD,GAAG,CAAC,UAAU,GAAG,MAAM,CAAC,QAAQ,KAAK,UAAU,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,UAAU,IAAI,IAAI,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC;gBACrF,IAAI,CAAC,CAAC,MAAM,GAAG,CAAC,IAAI,EAAE,CAAC,EAAE,CAAC;oBACtB,MAAM,CAAC,MAAM,CAAC,IAAI,CACd,GAAG,CAAC,YAAY,EAAE,eAAe;wBAC7B,yCAAyC,MAAM,CAAC,IAAI,CAAC,UAAU,GAAG,CACzE,CAAC;gBACN,CAAC;YACL,CAAC;QACL,CAAC;QAAC,OAAO,GAAG,EAAE,CAAC;YACX,QAAQ,CAAC,yCAAyC,GAAG,EAAE,CAAC,CAAC;YACzD,MAAM,CAAC,MAAM,CAAC,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,CAAC;QACpC,CAAC;IACL,CAAC;CACJ;AAED,MAAM,UAAU,sBAAsB;IAClC,KAAK,kBAAkB,CAAC;IACxB,KAAK,yBAAyB,CAAC;IAC/B,KAAK,2BAA2B,CAAC;IACjC,KAAK,2BAA2B,CAAC;IACjC,KAAK,2BAA2B,CAAC;AACrC,CAAC"}
1
+ {"version":3,"file":"ActivitySyncEngine.js","sourceRoot":"","sources":["../src/ActivitySyncEngine.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,106 @@
1
+ /**
2
+ * Which attachments an included activity should keep.
3
+ *
4
+ * WHY THIS EXISTS. `ActivitySyncRule.IncludeAttachments` describes itself as "1 = also pull
5
+ * attachments into ActivityFile rows", `MaxAttachmentBytes` sits beside it, and the `ActivityFile`
6
+ * table with its `Kind` value list (Body / Attachment / Ics) is migrated and in metadata — and
7
+ * nothing anywhere read any of it. A rule that asked for attachments got none, silently. That is the
8
+ * same shape as the `CredentialsRef` and `InternalDomains` gaps: schema and documentation written
9
+ * ahead of the wiring, with every test passing because nothing exercised the unwired path.
10
+ *
11
+ * DECIDED AT WRITE TIME, FROM THE RULE THAT DECIDED. Rules are evaluated after the fetch, so the
12
+ * question "does this item want its attachments?" cannot be answered while fetching. The item
13
+ * carries only the cheap `HasAttachments` flag; this turns that plus the winning rule into an
14
+ * instruction, and the expensive per-message attachment call is paid only for items that were
15
+ * actually included by a rule that asked.
16
+ *
17
+ * @module @mj-biz-apps/common-activity-sync
18
+ */
19
+ /** The rule fields this consults. Structural, so a caller need not carry a whole RuleRow. */
20
+ export interface AttachmentRuleFields {
21
+ IncludeAttachments?: boolean | null;
22
+ MaxAttachmentBytes?: number | null;
23
+ }
24
+ /** What an attachment looks like before it is stored. Mirrors MJ's `MessageAttachment`. */
25
+ export interface AttachmentCandidate {
26
+ ID: string;
27
+ Filename: string;
28
+ ContentType: string;
29
+ Size: number;
30
+ IsInline?: boolean;
31
+ ContentID?: string;
32
+ }
33
+ export interface AttachmentPolicy {
34
+ /** Whether to go and get the attachment list at all. */
35
+ Fetch: boolean;
36
+ /** Skip anything larger. Null means no cap. */
37
+ MaxBytes: number | null;
38
+ }
39
+ /** Why a candidate was not kept. Reported, never silent — see {@link SelectAttachments}. */
40
+ export type AttachmentSkipReason = 'inline' | 'too-large' | 'no-size';
41
+ export interface AttachmentSelection {
42
+ Keep: AttachmentCandidate[];
43
+ Skipped: {
44
+ Filename: string;
45
+ Size: number;
46
+ Reason: AttachmentSkipReason;
47
+ }[];
48
+ }
49
+ /**
50
+ * Turn the deciding rule plus the item's flag into an instruction.
51
+ *
52
+ * NO RULE MEANS NO ATTACHMENTS. An item can be included by the KnownParticipant stage or by a
53
+ * provider-type default policy rather than by a rule, and neither expresses an attachment choice.
54
+ * Defaulting to "fetch" there would pull every attachment in a mailbox on the strength of a decision
55
+ * nobody made about attachments — the expensive, surprising direction to be wrong in.
56
+ */
57
+ export declare function AttachmentPolicyFor(rule: AttachmentRuleFields | null | undefined, item: {
58
+ HasAttachments?: boolean;
59
+ }): AttachmentPolicy;
60
+ /**
61
+ * Choose which candidates to keep, and record why the rest were dropped.
62
+ *
63
+ * EVERY EXCLUSION IS REPORTED. Silently dropping a 30MB signed contract because it exceeded a cap is
64
+ * the failure this whole package keeps being written against: the sync reports success, the activity
65
+ * is filed, and the thing someone actually wanted is missing with nothing to show it ever existed.
66
+ *
67
+ * INLINE ATTACHMENTS ARE DROPPED BY DEFAULT. They are body furniture — signature logos, tracking
68
+ * pixels, embedded screenshots already visible in the body text — and `ActivityFile.Kind` has a
69
+ * separate `Body` for the body itself. Keeping them would fill file storage with corporate logos,
70
+ * one copy per email. They are still reported, so a deployment that wants them can see what it is
71
+ * missing rather than wonder.
72
+ */
73
+ export declare function SelectAttachments(candidates: readonly AttachmentCandidate[], policy: AttachmentPolicy): AttachmentSelection;
74
+ /**
75
+ * The human-readable account of what was dropped, or null when nothing was.
76
+ *
77
+ * One line per reason rather than per file: a message with forty inline logos should not produce
78
+ * forty issues and bury the one that says a contract was too large.
79
+ */
80
+ export declare function AttachmentSkipReport(externalID: string, selection: AttachmentSelection): string | null;
81
+ /**
82
+ * Register the sink this host stores attachment bytes through. Pass null to clear it.
83
+ *
84
+ * Idempotent and last-call-wins, matching the transport factory: a host that boots twice in one
85
+ * process must not end up with two, and there is no sensible way to merge them.
86
+ */
87
+ export declare function RegisterActivityFileSink(sink: ActivityFileSink | null): void;
88
+ /** The registered sink, or null when this host stores no attachment bytes. */
89
+ export declare function HostActivityFileSink(): ActivityFileSink | null;
90
+ export interface ActivityFileSink {
91
+ /**
92
+ * Store one attachment and return the `__mj.File` id to link, or null when it could not be
93
+ * stored. Null rather than a throw: one unstorable attachment should not lose the activity and
94
+ * every other attachment on it, and the caller reports what did not land.
95
+ */
96
+ Store(input: {
97
+ Attachment: AttachmentCandidate;
98
+ /** The activity being written, for naming and for the link that follows. */
99
+ ActivityID: string;
100
+ /** The source item, so a sink can fetch bytes it was not handed. */
101
+ ExternalID: string;
102
+ }): Promise<{
103
+ FileID: string;
104
+ } | null>;
105
+ }
106
+ //# sourceMappingURL=attachments.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"attachments.d.ts","sourceRoot":"","sources":["../src/attachments.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;GAiBG;AAEH,6FAA6F;AAC7F,MAAM,WAAW,oBAAoB;IACjC,kBAAkB,CAAC,EAAE,OAAO,GAAG,IAAI,CAAC;IACpC,kBAAkB,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;CACtC;AAED,2FAA2F;AAC3F,MAAM,WAAW,mBAAmB;IAChC,EAAE,EAAE,MAAM,CAAC;IACX,QAAQ,EAAE,MAAM,CAAC;IACjB,WAAW,EAAE,MAAM,CAAC;IACpB,IAAI,EAAE,MAAM,CAAC;IACb,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,SAAS,CAAC,EAAE,MAAM,CAAC;CACtB;AAED,MAAM,WAAW,gBAAgB;IAC7B,wDAAwD;IACxD,KAAK,EAAE,OAAO,CAAC;IACf,+CAA+C;IAC/C,QAAQ,EAAE,MAAM,GAAG,IAAI,CAAC;CAC3B;AAED,4FAA4F;AAC5F,MAAM,MAAM,oBAAoB,GAAG,QAAQ,GAAG,WAAW,GAAG,SAAS,CAAC;AAEtE,MAAM,WAAW,mBAAmB;IAChC,IAAI,EAAE,mBAAmB,EAAE,CAAC;IAC5B,OAAO,EAAE;QAAE,QAAQ,EAAE,MAAM,CAAC;QAAC,IAAI,EAAE,MAAM,CAAC;QAAC,MAAM,EAAE,oBAAoB,CAAA;KAAE,EAAE,CAAC;CAC/E;AAED;;;;;;;GAOG;AACH,wBAAgB,mBAAmB,CAC/B,IAAI,EAAE,oBAAoB,GAAG,IAAI,GAAG,SAAS,EAC7C,IAAI,EAAE;IAAE,cAAc,CAAC,EAAE,OAAO,CAAA;CAAE,GACnC,gBAAgB,CAWlB;AAED;;;;;;;;;;;;GAYG;AACH,wBAAgB,iBAAiB,CAC7B,UAAU,EAAE,SAAS,mBAAmB,EAAE,EAC1C,MAAM,EAAE,gBAAgB,GACzB,mBAAmB,CAsBrB;AAED;;;;;GAKG;AACH,wBAAgB,oBAAoB,CAChC,UAAU,EAAE,MAAM,EAClB,SAAS,EAAE,mBAAmB,GAC/B,MAAM,GAAG,IAAI,CAmBf;AAmCD;;;;;GAKG;AACH,wBAAgB,wBAAwB,CAAC,IAAI,EAAE,gBAAgB,GAAG,IAAI,GAAG,IAAI,CAE5E;AAED,8EAA8E;AAC9E,wBAAgB,oBAAoB,IAAI,gBAAgB,GAAG,IAAI,CAE9D;AAED,MAAM,WAAW,gBAAgB;IAC7B;;;;OAIG;IACH,KAAK,CAAC,KAAK,EAAE;QACT,UAAU,EAAE,mBAAmB,CAAC;QAChC,4EAA4E;QAC5E,UAAU,EAAE,MAAM,CAAC;QACnB,oEAAoE;QACpE,UAAU,EAAE,MAAM,CAAC;KACtB,GAAG,OAAO,CAAC;QAAE,MAAM,EAAE,MAAM,CAAA;KAAE,GAAG,IAAI,CAAC,CAAC;CAC1C"}