@mj-biz-apps/common-activity-sync 0.0.0 → 5.37.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 (90) hide show
  1. package/dist/ActivitySyncEngine.d.ts +118 -0
  2. package/dist/ActivitySyncEngine.d.ts.map +1 -0
  3. package/dist/ActivitySyncEngine.js +620 -0
  4. package/dist/ActivitySyncEngine.js.map +1 -0
  5. package/dist/BaseActivitySyncExtension.d.ts +99 -0
  6. package/dist/BaseActivitySyncExtension.d.ts.map +1 -0
  7. package/dist/BaseActivitySyncExtension.js +3 -0
  8. package/dist/BaseActivitySyncExtension.js.map +1 -0
  9. package/dist/BaseActivitySyncProvider.d.ts +40 -0
  10. package/dist/BaseActivitySyncProvider.d.ts.map +1 -0
  11. package/dist/BaseActivitySyncProvider.js +76 -0
  12. package/dist/BaseActivitySyncProvider.js.map +1 -0
  13. package/dist/action-result.d.ts +38 -0
  14. package/dist/action-result.d.ts.map +1 -0
  15. package/dist/action-result.js +43 -0
  16. package/dist/action-result.js.map +1 -0
  17. package/dist/entity-names.d.ts +19 -0
  18. package/dist/entity-names.d.ts.map +1 -0
  19. package/dist/entity-names.js +19 -0
  20. package/dist/entity-names.js.map +1 -0
  21. package/dist/extensions.d.ts +37 -0
  22. package/dist/extensions.d.ts.map +1 -0
  23. package/dist/extensions.js +80 -0
  24. package/dist/extensions.js.map +1 -0
  25. package/dist/identity.d.ts +30 -0
  26. package/dist/identity.d.ts.map +1 -0
  27. package/dist/identity.js +90 -0
  28. package/dist/identity.js.map +1 -0
  29. package/dist/index.d.ts +29 -0
  30. package/dist/index.d.ts.map +1 -0
  31. package/dist/index.js +29 -0
  32. package/dist/index.js.map +1 -0
  33. package/dist/load.d.ts +17 -0
  34. package/dist/load.d.ts.map +1 -0
  35. package/dist/load.js +29 -0
  36. package/dist/load.js.map +1 -0
  37. package/dist/manual-log.d.ts +33 -0
  38. package/dist/manual-log.d.ts.map +1 -0
  39. package/dist/manual-log.js +230 -0
  40. package/dist/manual-log.js.map +1 -0
  41. package/dist/participants.d.ts +47 -0
  42. package/dist/participants.d.ts.map +1 -0
  43. package/dist/participants.js +59 -0
  44. package/dist/participants.js.map +1 -0
  45. package/dist/providers/FixtureActivitySyncProvider.d.ts +21 -0
  46. package/dist/providers/FixtureActivitySyncProvider.d.ts.map +1 -0
  47. package/dist/providers/FixtureActivitySyncProvider.js +58 -0
  48. package/dist/providers/FixtureActivitySyncProvider.js.map +1 -0
  49. package/dist/providers/GraphMessageMapper.d.ts +37 -0
  50. package/dist/providers/GraphMessageMapper.d.ts.map +1 -0
  51. package/dist/providers/GraphMessageMapper.js +91 -0
  52. package/dist/providers/GraphMessageMapper.js.map +1 -0
  53. package/dist/providers/MSGraphActivitySyncProvider.d.ts +22 -0
  54. package/dist/providers/MSGraphActivitySyncProvider.d.ts.map +1 -0
  55. package/dist/providers/MSGraphActivitySyncProvider.js +62 -0
  56. package/dist/providers/MSGraphActivitySyncProvider.js.map +1 -0
  57. package/dist/providers/MSGraphCalendarSyncProvider.d.ts +60 -0
  58. package/dist/providers/MSGraphCalendarSyncProvider.d.ts.map +1 -0
  59. package/dist/providers/MSGraphCalendarSyncProvider.js +145 -0
  60. package/dist/providers/MSGraphCalendarSyncProvider.js.map +1 -0
  61. package/dist/qualification.d.ts +91 -0
  62. package/dist/qualification.d.ts.map +1 -0
  63. package/dist/qualification.js +62 -0
  64. package/dist/qualification.js.map +1 -0
  65. package/dist/run.d.ts +67 -0
  66. package/dist/run.d.ts.map +1 -0
  67. package/dist/run.js +84 -0
  68. package/dist/run.js.map +1 -0
  69. package/dist/sql.d.ts +17 -0
  70. package/dist/sql.d.ts.map +1 -0
  71. package/dist/sql.js +50 -0
  72. package/dist/sql.js.map +1 -0
  73. package/dist/stages.d.ts +55 -0
  74. package/dist/stages.d.ts.map +1 -0
  75. package/dist/stages.js +109 -0
  76. package/dist/stages.js.map +1 -0
  77. package/dist/types.d.ts +130 -0
  78. package/dist/types.d.ts.map +1 -0
  79. package/dist/types.js +38 -0
  80. package/dist/types.js.map +1 -0
  81. package/dist/watermark.d.ts +63 -0
  82. package/dist/watermark.d.ts.map +1 -0
  83. package/dist/watermark.js +103 -0
  84. package/dist/watermark.js.map +1 -0
  85. package/dist/writer.d.ts +132 -0
  86. package/dist/writer.d.ts.map +1 -0
  87. package/dist/writer.js +326 -0
  88. package/dist/writer.js.map +1 -0
  89. package/package.json +32 -5
  90. package/README.md +0 -12
@@ -0,0 +1,118 @@
1
+ /**
2
+ * ActivitySyncEngine — fetch, qualify, resolve, write.
3
+ *
4
+ * No model call inside a transaction. No model call before the deterministic filter.
5
+ * Dry run never advances the watermark (CK_ActivitySyncRun_DryRunNoWatermark).
6
+ * Synced activities are Visibility=Private. Unmatched addresses stay unresolved links.
7
+ */
8
+ import { type IMetadataProvider, type UserInfo } from '@memberjunction/core';
9
+ import { BaseActivitySyncProvider } from './BaseActivitySyncProvider.js';
10
+ import { type ExtensionStamp } from './extensions.js';
11
+ import { IdentityResolver } from './identity.js';
12
+ import { type IQualificationStage, type QualificationPolicy } from './qualification.js';
13
+ import { type SyncRunOptions } from './run.js';
14
+ import { ActivityWriter } from './writer.js';
15
+ export interface SyncEngineResult {
16
+ Success: boolean;
17
+ RunID: string | null;
18
+ Fetched: number;
19
+ Included: number;
20
+ Excluded: number;
21
+ Duplicates: number;
22
+ Failed: number;
23
+ ExtensionErrors: number;
24
+ WatermarkAdvancedTo: Date | null;
25
+ Issues: string[];
26
+ }
27
+ export interface FleetRunResult {
28
+ Success: boolean;
29
+ ConnectionsAttempted: number;
30
+ Results: Array<{
31
+ ConnectionID: string;
32
+ Surface: string;
33
+ Result: SyncEngineResult;
34
+ }>;
35
+ Issues: string[];
36
+ }
37
+ /** Hard cap on the fleet query. Unbounded RunView is how a tenant with a burst of mailboxes stalls the hourly job. */
38
+ export declare const MAX_RUNNABLE_CONNECTIONS = 500;
39
+ interface ConnectionRow {
40
+ ID: string;
41
+ Status: string;
42
+ Provider: string | null;
43
+ Mailbox: string | null;
44
+ StartAt: Date | string | null;
45
+ EndAt: Date | string | null;
46
+ LastSyncAt: Date | string | null;
47
+ ActivitySyncProviderTypeID: string | null;
48
+ SkippedContentPolicy: string | null;
49
+ Settings: string | null;
50
+ }
51
+ interface ProviderTypeRow {
52
+ ID: string;
53
+ Code: string;
54
+ DriverClass: string;
55
+ DefaultQualificationPolicy: QualificationPolicy;
56
+ /** Companion calendar ClassFactory key. Null = this type has no second surface. */
57
+ CalendarDriverClass: string | null;
58
+ }
59
+ interface RunSurfaceOptions {
60
+ /** Injected provider (tests). When omitted, resolved from the type row. */
61
+ source?: BaseActivitySyncProvider;
62
+ /**
63
+ * Connection health is per-connection, not per-surface. RunConnections stamps once
64
+ * from the combined outcome so a refused calendar pass cannot clear a message failure.
65
+ */
66
+ stampHealth: boolean;
67
+ /** Skip the ID reload when the fleet already has the row. */
68
+ connection?: ConnectionRow;
69
+ /** Skip the type reload when the fleet already loaded it. */
70
+ typeRow?: ProviderTypeRow | null;
71
+ }
72
+ /**
73
+ * LastError must name the failure, not whatever happened to be Issues[0].
74
+ * Mapping warnings ("Event X had no usable start time") sort ahead of the actual miss.
75
+ */
76
+ export declare function healthErrorFromResults(results: readonly SyncEngineResult[]): string | null;
77
+ /**
78
+ * One Load+Save per extension row after the batch — not N items × M extensions.
79
+ *
80
+ * An error is sticky within the batch on purpose: a later success on a different item must
81
+ * not clear LastError for a Skip that already happened in this run. Only a later run that
82
+ * is clean for that row writes null.
83
+ */
84
+ export declare function collapseExtensionStamps(stamps: readonly ExtensionStamp[]): ExtensionStamp[];
85
+ export declare class ActivitySyncEngine {
86
+ private readonly resolver;
87
+ private readonly writer;
88
+ private readonly stages;
89
+ constructor(resolver?: IdentityResolver, writer?: ActivityWriter, stages?: IQualificationStage[]);
90
+ Run(connectionID: string, options: SyncRunOptions, provider: IMetadataProvider, contextUser: UserInfo, source?: BaseActivitySyncProvider, surface?: RunSurfaceOptions): Promise<SyncEngineResult>;
91
+ /**
92
+ * Every Active-or-Error connection, once per surface. This is what a scheduled
93
+ * Action calls. Downstream apps do not wrap this — they register an extension.
94
+ *
95
+ * A companion calendar pass is data: ActivitySyncProviderType.CalendarDriverClass.
96
+ * The engine never keys on the deprecated Connection.Provider column. Calendar Graph
97
+ * still refuses live fetch. Health is stamped once from the combined outcome so a
98
+ * refused calendar pass cannot clear a message failure.
99
+ */
100
+ RunConnections(options: SyncRunOptions, provider: IMetadataProvider, contextUser: UserInfo): Promise<FleetRunResult>;
101
+ private resolvePlugin;
102
+ private failClosed;
103
+ private resolveExtension;
104
+ private loadExtensions;
105
+ private stampExtensions;
106
+ private stampConnectionHealth;
107
+ private loadConnection;
108
+ private loadRunnableConnections;
109
+ private loadProviderType;
110
+ private loadBoundSetIds;
111
+ private loadExclusions;
112
+ private loadRules;
113
+ private stampSurfaceWatermark;
114
+ private persistRun;
115
+ }
116
+ export declare function LoadActivitySyncEngine(): void;
117
+ export {};
118
+ //# sourceMappingURL=ActivitySyncEngine.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ActivitySyncEngine.d.ts","sourceRoot":"","sources":["../src/ActivitySyncEngine.ts"],"names":[],"mappings":"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"}