@stoneforge/quarry 1.12.0 → 1.14.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 (199) hide show
  1. package/README.md +2 -0
  2. package/dist/api/quarry-api.d.ts +9 -1
  3. package/dist/api/quarry-api.d.ts.map +1 -1
  4. package/dist/api/quarry-api.js +21 -2
  5. package/dist/api/quarry-api.js.map +1 -1
  6. package/dist/api/types.d.ts +8 -1
  7. package/dist/api/types.d.ts.map +1 -1
  8. package/dist/api/types.js.map +1 -1
  9. package/dist/cli/commands/auto-link-helper.d.ts +33 -0
  10. package/dist/cli/commands/auto-link-helper.d.ts.map +1 -0
  11. package/dist/cli/commands/auto-link-helper.js +74 -0
  12. package/dist/cli/commands/auto-link-helper.js.map +1 -0
  13. package/dist/cli/commands/crud.d.ts +3 -0
  14. package/dist/cli/commands/crud.d.ts.map +1 -1
  15. package/dist/cli/commands/crud.js +144 -15
  16. package/dist/cli/commands/crud.js.map +1 -1
  17. package/dist/cli/commands/docs.js +2 -2
  18. package/dist/cli/commands/docs.js.map +1 -1
  19. package/dist/cli/commands/document.js +1 -1
  20. package/dist/cli/commands/document.js.map +1 -1
  21. package/dist/cli/commands/entity.js +1 -1
  22. package/dist/cli/commands/entity.js.map +1 -1
  23. package/dist/cli/commands/external-sync.d.ts +18 -0
  24. package/dist/cli/commands/external-sync.d.ts.map +1 -0
  25. package/dist/cli/commands/external-sync.js +2499 -0
  26. package/dist/cli/commands/external-sync.js.map +1 -0
  27. package/dist/cli/commands/library.js +1 -1
  28. package/dist/cli/commands/library.js.map +1 -1
  29. package/dist/cli/commands/message.js +2 -2
  30. package/dist/cli/commands/message.js.map +1 -1
  31. package/dist/cli/commands/serve.d.ts.map +1 -1
  32. package/dist/cli/commands/serve.js +2 -0
  33. package/dist/cli/commands/serve.js.map +1 -1
  34. package/dist/cli/commands/task.d.ts.map +1 -1
  35. package/dist/cli/commands/task.js +7 -4
  36. package/dist/cli/commands/task.js.map +1 -1
  37. package/dist/cli/commands/team.js +1 -1
  38. package/dist/cli/commands/team.js.map +1 -1
  39. package/dist/cli/commands/workflow.js +1 -1
  40. package/dist/cli/commands/workflow.js.map +1 -1
  41. package/dist/cli/runner.d.ts.map +1 -1
  42. package/dist/cli/runner.js +3 -0
  43. package/dist/cli/runner.js.map +1 -1
  44. package/dist/cli/utils/progress.d.ts +30 -0
  45. package/dist/cli/utils/progress.d.ts.map +1 -0
  46. package/dist/cli/utils/progress.js +47 -0
  47. package/dist/cli/utils/progress.js.map +1 -0
  48. package/dist/config/config.d.ts.map +1 -1
  49. package/dist/config/config.js +34 -0
  50. package/dist/config/config.js.map +1 -1
  51. package/dist/config/defaults.d.ts +13 -1
  52. package/dist/config/defaults.d.ts.map +1 -1
  53. package/dist/config/defaults.js +22 -0
  54. package/dist/config/defaults.js.map +1 -1
  55. package/dist/config/file.d.ts.map +1 -1
  56. package/dist/config/file.js +71 -0
  57. package/dist/config/file.js.map +1 -1
  58. package/dist/config/index.d.ts +3 -3
  59. package/dist/config/index.d.ts.map +1 -1
  60. package/dist/config/index.js +2 -2
  61. package/dist/config/index.js.map +1 -1
  62. package/dist/config/merge.d.ts.map +1 -1
  63. package/dist/config/merge.js +52 -1
  64. package/dist/config/merge.js.map +1 -1
  65. package/dist/config/types.d.ts +68 -1
  66. package/dist/config/types.d.ts.map +1 -1
  67. package/dist/config/types.js +33 -0
  68. package/dist/config/types.js.map +1 -1
  69. package/dist/config/validation.d.ts.map +1 -1
  70. package/dist/config/validation.js +64 -1
  71. package/dist/config/validation.js.map +1 -1
  72. package/dist/external-sync/adapters/document-sync-adapter.d.ts +150 -0
  73. package/dist/external-sync/adapters/document-sync-adapter.d.ts.map +1 -0
  74. package/dist/external-sync/adapters/document-sync-adapter.js +325 -0
  75. package/dist/external-sync/adapters/document-sync-adapter.js.map +1 -0
  76. package/dist/external-sync/adapters/task-sync-adapter.d.ts +177 -0
  77. package/dist/external-sync/adapters/task-sync-adapter.d.ts.map +1 -0
  78. package/dist/external-sync/adapters/task-sync-adapter.js +353 -0
  79. package/dist/external-sync/adapters/task-sync-adapter.js.map +1 -0
  80. package/dist/external-sync/auto-link.d.ts +66 -0
  81. package/dist/external-sync/auto-link.d.ts.map +1 -0
  82. package/dist/external-sync/auto-link.js +98 -0
  83. package/dist/external-sync/auto-link.js.map +1 -0
  84. package/dist/external-sync/conflict-resolver.d.ts +170 -0
  85. package/dist/external-sync/conflict-resolver.d.ts.map +1 -0
  86. package/dist/external-sync/conflict-resolver.js +580 -0
  87. package/dist/external-sync/conflict-resolver.js.map +1 -0
  88. package/dist/external-sync/index.d.ts +23 -0
  89. package/dist/external-sync/index.d.ts.map +1 -0
  90. package/dist/external-sync/index.js +24 -0
  91. package/dist/external-sync/index.js.map +1 -0
  92. package/dist/external-sync/provider-registry.d.ts +113 -0
  93. package/dist/external-sync/provider-registry.d.ts.map +1 -0
  94. package/dist/external-sync/provider-registry.js +205 -0
  95. package/dist/external-sync/provider-registry.js.map +1 -0
  96. package/dist/external-sync/providers/folder/folder-document-adapter.d.ts +97 -0
  97. package/dist/external-sync/providers/folder/folder-document-adapter.d.ts.map +1 -0
  98. package/dist/external-sync/providers/folder/folder-document-adapter.js +261 -0
  99. package/dist/external-sync/providers/folder/folder-document-adapter.js.map +1 -0
  100. package/dist/external-sync/providers/folder/folder-fs.d.ts +146 -0
  101. package/dist/external-sync/providers/folder/folder-fs.d.ts.map +1 -0
  102. package/dist/external-sync/providers/folder/folder-fs.js +300 -0
  103. package/dist/external-sync/providers/folder/folder-fs.js.map +1 -0
  104. package/dist/external-sync/providers/folder/folder-provider.d.ts +28 -0
  105. package/dist/external-sync/providers/folder/folder-provider.d.ts.map +1 -0
  106. package/dist/external-sync/providers/folder/folder-provider.js +87 -0
  107. package/dist/external-sync/providers/folder/folder-provider.js.map +1 -0
  108. package/dist/external-sync/providers/folder/index.d.ts +11 -0
  109. package/dist/external-sync/providers/folder/index.d.ts.map +1 -0
  110. package/dist/external-sync/providers/folder/index.js +13 -0
  111. package/dist/external-sync/providers/folder/index.js.map +1 -0
  112. package/dist/external-sync/providers/github/github-api.d.ts +271 -0
  113. package/dist/external-sync/providers/github/github-api.d.ts.map +1 -0
  114. package/dist/external-sync/providers/github/github-api.js +366 -0
  115. package/dist/external-sync/providers/github/github-api.js.map +1 -0
  116. package/dist/external-sync/providers/github/github-field-map.d.ts +76 -0
  117. package/dist/external-sync/providers/github/github-field-map.d.ts.map +1 -0
  118. package/dist/external-sync/providers/github/github-field-map.js +157 -0
  119. package/dist/external-sync/providers/github/github-field-map.js.map +1 -0
  120. package/dist/external-sync/providers/github/github-provider.d.ts +36 -0
  121. package/dist/external-sync/providers/github/github-provider.d.ts.map +1 -0
  122. package/dist/external-sync/providers/github/github-provider.js +212 -0
  123. package/dist/external-sync/providers/github/github-provider.js.map +1 -0
  124. package/dist/external-sync/providers/github/github-task-adapter.d.ts +135 -0
  125. package/dist/external-sync/providers/github/github-task-adapter.d.ts.map +1 -0
  126. package/dist/external-sync/providers/github/github-task-adapter.js +374 -0
  127. package/dist/external-sync/providers/github/github-task-adapter.js.map +1 -0
  128. package/dist/external-sync/providers/github/index.d.ts +12 -0
  129. package/dist/external-sync/providers/github/index.d.ts.map +1 -0
  130. package/dist/external-sync/providers/github/index.js +15 -0
  131. package/dist/external-sync/providers/github/index.js.map +1 -0
  132. package/dist/external-sync/providers/index.d.ts +13 -0
  133. package/dist/external-sync/providers/index.d.ts.map +1 -0
  134. package/dist/external-sync/providers/index.js +15 -0
  135. package/dist/external-sync/providers/index.js.map +1 -0
  136. package/dist/external-sync/providers/linear/index.d.ts +19 -0
  137. package/dist/external-sync/providers/linear/index.d.ts.map +1 -0
  138. package/dist/external-sync/providers/linear/index.js +19 -0
  139. package/dist/external-sync/providers/linear/index.js.map +1 -0
  140. package/dist/external-sync/providers/linear/linear-api.d.ts +252 -0
  141. package/dist/external-sync/providers/linear/linear-api.d.ts.map +1 -0
  142. package/dist/external-sync/providers/linear/linear-api.js +522 -0
  143. package/dist/external-sync/providers/linear/linear-api.js.map +1 -0
  144. package/dist/external-sync/providers/linear/linear-field-map.d.ts +135 -0
  145. package/dist/external-sync/providers/linear/linear-field-map.d.ts.map +1 -0
  146. package/dist/external-sync/providers/linear/linear-field-map.js +338 -0
  147. package/dist/external-sync/providers/linear/linear-field-map.js.map +1 -0
  148. package/dist/external-sync/providers/linear/linear-provider.d.ts +52 -0
  149. package/dist/external-sync/providers/linear/linear-provider.d.ts.map +1 -0
  150. package/dist/external-sync/providers/linear/linear-provider.js +169 -0
  151. package/dist/external-sync/providers/linear/linear-provider.js.map +1 -0
  152. package/dist/external-sync/providers/linear/linear-task-adapter.d.ts +190 -0
  153. package/dist/external-sync/providers/linear/linear-task-adapter.d.ts.map +1 -0
  154. package/dist/external-sync/providers/linear/linear-task-adapter.js +521 -0
  155. package/dist/external-sync/providers/linear/linear-task-adapter.js.map +1 -0
  156. package/dist/external-sync/providers/linear/linear-types.d.ts +114 -0
  157. package/dist/external-sync/providers/linear/linear-types.d.ts.map +1 -0
  158. package/dist/external-sync/providers/linear/linear-types.js +10 -0
  159. package/dist/external-sync/providers/linear/linear-types.js.map +1 -0
  160. package/dist/external-sync/providers/notion/index.d.ts +19 -0
  161. package/dist/external-sync/providers/notion/index.d.ts.map +1 -0
  162. package/dist/external-sync/providers/notion/index.js +20 -0
  163. package/dist/external-sync/providers/notion/index.js.map +1 -0
  164. package/dist/external-sync/providers/notion/notion-api.d.ts +253 -0
  165. package/dist/external-sync/providers/notion/notion-api.d.ts.map +1 -0
  166. package/dist/external-sync/providers/notion/notion-api.js +492 -0
  167. package/dist/external-sync/providers/notion/notion-api.js.map +1 -0
  168. package/dist/external-sync/providers/notion/notion-blocks.d.ts +93 -0
  169. package/dist/external-sync/providers/notion/notion-blocks.d.ts.map +1 -0
  170. package/dist/external-sync/providers/notion/notion-blocks.js +773 -0
  171. package/dist/external-sync/providers/notion/notion-blocks.js.map +1 -0
  172. package/dist/external-sync/providers/notion/notion-document-adapter.d.ts +176 -0
  173. package/dist/external-sync/providers/notion/notion-document-adapter.d.ts.map +1 -0
  174. package/dist/external-sync/providers/notion/notion-document-adapter.js +413 -0
  175. package/dist/external-sync/providers/notion/notion-document-adapter.js.map +1 -0
  176. package/dist/external-sync/providers/notion/notion-provider.d.ts +57 -0
  177. package/dist/external-sync/providers/notion/notion-provider.d.ts.map +1 -0
  178. package/dist/external-sync/providers/notion/notion-provider.js +159 -0
  179. package/dist/external-sync/providers/notion/notion-provider.js.map +1 -0
  180. package/dist/external-sync/providers/notion/notion-types.d.ts +388 -0
  181. package/dist/external-sync/providers/notion/notion-types.d.ts.map +1 -0
  182. package/dist/external-sync/providers/notion/notion-types.js +47 -0
  183. package/dist/external-sync/providers/notion/notion-types.js.map +1 -0
  184. package/dist/external-sync/sync-engine.d.ts +364 -0
  185. package/dist/external-sync/sync-engine.d.ts.map +1 -0
  186. package/dist/external-sync/sync-engine.js +1154 -0
  187. package/dist/external-sync/sync-engine.js.map +1 -0
  188. package/dist/index.d.ts +1 -0
  189. package/dist/index.d.ts.map +1 -1
  190. package/dist/index.js +2 -0
  191. package/dist/index.js.map +1 -1
  192. package/dist/server/index.js +8 -8
  193. package/dist/server/index.js.map +1 -1
  194. package/dist/services/inbox.js +1 -1
  195. package/dist/sync/hash.d.ts +5 -0
  196. package/dist/sync/hash.d.ts.map +1 -1
  197. package/dist/sync/hash.js +21 -2
  198. package/dist/sync/hash.js.map +1 -1
  199. package/package.json +10 -12
@@ -61,6 +61,45 @@ export interface IdentityConfigSection {
61
61
  /** Time tolerance for signature expiry (default: 5 minutes) */
62
62
  timeTolerance: Duration;
63
63
  }
64
+ /**
65
+ * Conflict resolution strategy for external sync
66
+ */
67
+ export type ExternalSyncConflictStrategy = 'last_write_wins' | 'local_wins' | 'remote_wins' | 'manual';
68
+ /**
69
+ * Sync direction for external sync
70
+ */
71
+ export type SyncDirection = 'push' | 'pull' | 'bidirectional';
72
+ /**
73
+ * External sync configuration
74
+ */
75
+ export interface ExternalSyncConfig {
76
+ /** Whether external sync is enabled (default: false) */
77
+ enabled: boolean;
78
+ /** Polling interval in ms (default: 60000) */
79
+ pollInterval: Duration;
80
+ /** Conflict resolution strategy (default: 'last_write_wins') */
81
+ conflictStrategy: ExternalSyncConflictStrategy;
82
+ /** Default sync direction (default: 'bidirectional') */
83
+ defaultDirection: SyncDirection;
84
+ /** Whether to auto-create external issues for new tasks (default: false) */
85
+ autoLink: boolean;
86
+ /** Which provider to auto-link tasks to (e.g., 'github', 'linear') */
87
+ autoLinkProvider?: string;
88
+ /** Which provider to auto-link documents to (e.g., 'folder', 'notion') */
89
+ autoLinkDocumentProvider?: string;
90
+ }
91
+ /**
92
+ * Valid conflict strategy values
93
+ */
94
+ export declare const VALID_CONFLICT_STRATEGIES: readonly ExternalSyncConflictStrategy[];
95
+ /**
96
+ * Valid sync direction values
97
+ */
98
+ export declare const VALID_SYNC_DIRECTIONS: readonly SyncDirection[];
99
+ /**
100
+ * Valid auto-link provider names
101
+ */
102
+ export declare const VALID_AUTO_LINK_PROVIDERS: readonly string[];
64
103
  /**
65
104
  * Complete Stoneforge configuration
66
105
  */
@@ -81,6 +120,8 @@ export interface Configuration {
81
120
  identity: IdentityConfigSection;
82
121
  /** CLI plugins settings */
83
122
  plugins: PluginsConfig;
123
+ /** External sync settings */
124
+ externalSync: ExternalSyncConfig;
84
125
  }
85
126
  /**
86
127
  * Partial configuration for merging
@@ -94,6 +135,7 @@ export type PartialConfiguration = {
94
135
  tombstone?: Partial<TombstoneConfig>;
95
136
  identity?: Partial<IdentityConfigSection>;
96
137
  plugins?: Partial<PluginsConfig>;
138
+ externalSync?: Partial<ExternalSyncConfig>;
97
139
  };
98
140
  /**
99
141
  * Source of a configuration value
@@ -145,6 +187,15 @@ export interface TrackedConfiguration {
145
187
  plugins: {
146
188
  packages: TrackedValue<string[]>;
147
189
  };
190
+ externalSync: {
191
+ enabled: TrackedValue<boolean>;
192
+ pollInterval: TrackedValue<Duration>;
193
+ conflictStrategy: TrackedValue<ExternalSyncConflictStrategy>;
194
+ defaultDirection: TrackedValue<SyncDirection>;
195
+ autoLink: TrackedValue<boolean>;
196
+ autoLinkProvider?: TrackedValue<string>;
197
+ autoLinkDocumentProvider?: TrackedValue<string>;
198
+ };
148
199
  }
149
200
  /**
150
201
  * YAML configuration file structure
@@ -174,6 +225,15 @@ export interface YamlConfigFile {
174
225
  plugins?: {
175
226
  packages?: string[];
176
227
  };
228
+ external_sync?: {
229
+ enabled?: boolean;
230
+ poll_interval?: string | number;
231
+ conflict_strategy?: string;
232
+ default_direction?: string;
233
+ auto_link?: boolean;
234
+ auto_link_provider?: string;
235
+ auto_link_document_provider?: string;
236
+ };
177
237
  }
178
238
  /**
179
239
  * Environment variable names for configuration
@@ -235,7 +295,7 @@ export interface ConfigValidationResult {
235
295
  /**
236
296
  * Valid configuration paths (as const array for runtime validation)
237
297
  */
238
- export declare const VALID_CONFIG_PATHS: readonly ["actor", "baseBranch", "database", "sync.autoExport", "sync.exportDebounce", "sync.elementsFile", "sync.dependenciesFile", "playbooks.paths", "tombstone.ttl", "tombstone.minTtl", "identity.mode", "identity.timeTolerance", "plugins.packages"];
298
+ export declare const VALID_CONFIG_PATHS: readonly ["actor", "baseBranch", "database", "sync.autoExport", "sync.exportDebounce", "sync.elementsFile", "sync.dependenciesFile", "playbooks.paths", "tombstone.ttl", "tombstone.minTtl", "identity.mode", "identity.timeTolerance", "plugins.packages", "externalSync.enabled", "externalSync.pollInterval", "externalSync.conflictStrategy", "externalSync.defaultDirection", "externalSync.autoLink", "externalSync.autoLinkProvider", "externalSync.autoLinkDocumentProvider"];
239
299
  /**
240
300
  * Dot-notation paths for configuration values
241
301
  */
@@ -261,5 +321,12 @@ export interface ConfigPathTypes {
261
321
  'identity.mode': IdentityMode;
262
322
  'identity.timeTolerance': Duration;
263
323
  'plugins.packages': string[];
324
+ 'externalSync.enabled': boolean;
325
+ 'externalSync.pollInterval': Duration;
326
+ 'externalSync.conflictStrategy': ExternalSyncConflictStrategy;
327
+ 'externalSync.defaultDirection': SyncDirection;
328
+ 'externalSync.autoLink': boolean;
329
+ 'externalSync.autoLinkProvider': string | undefined;
330
+ 'externalSync.autoLinkDocumentProvider': string | undefined;
264
331
  }
265
332
  //# sourceMappingURL=types.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../src/config/types.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../src/config/types.ts"],"names":[],"mappings":"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"}
@@ -5,6 +5,32 @@
5
5
  * Supports file-based configuration, environment variables, and CLI overrides
6
6
  * with a clear precedence hierarchy.
7
7
  */
8
+ /**
9
+ * Valid conflict strategy values
10
+ */
11
+ export const VALID_CONFLICT_STRATEGIES = [
12
+ 'last_write_wins',
13
+ 'local_wins',
14
+ 'remote_wins',
15
+ 'manual',
16
+ ];
17
+ /**
18
+ * Valid sync direction values
19
+ */
20
+ export const VALID_SYNC_DIRECTIONS = [
21
+ 'push',
22
+ 'pull',
23
+ 'bidirectional',
24
+ ];
25
+ /**
26
+ * Valid auto-link provider names
27
+ */
28
+ export const VALID_AUTO_LINK_PROVIDERS = [
29
+ 'github',
30
+ 'linear',
31
+ 'notion',
32
+ 'folder',
33
+ ];
8
34
  // ============================================================================
9
35
  // Configuration Source Tracking
10
36
  // ============================================================================
@@ -65,6 +91,13 @@ export const VALID_CONFIG_PATHS = [
65
91
  'identity.mode',
66
92
  'identity.timeTolerance',
67
93
  'plugins.packages',
94
+ 'externalSync.enabled',
95
+ 'externalSync.pollInterval',
96
+ 'externalSync.conflictStrategy',
97
+ 'externalSync.defaultDirection',
98
+ 'externalSync.autoLink',
99
+ 'externalSync.autoLinkProvider',
100
+ 'externalSync.autoLinkDocumentProvider',
68
101
  ];
69
102
  /**
70
103
  * Type guard to check if a string is a valid ConfigPath
@@ -1 +1 @@
1
- {"version":3,"file":"types.js","sourceRoot":"","sources":["../../src/config/types.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AA8GH,+EAA+E;AAC/E,gCAAgC;AAChC,+EAA+E;AAE/E;;GAEG;AACH,MAAM,CAAC,MAAM,YAAY,GAAG;IAC1B,6BAA6B;IAC7B,OAAO,EAAE,SAAS;IAClB,uBAAuB;IACvB,IAAI,EAAE,MAAM;IACZ,gCAAgC;IAChC,WAAW,EAAE,aAAa;IAC1B,oBAAoB;IACpB,GAAG,EAAE,KAAK;CACF,CAAC;AA6EX,+EAA+E;AAC/E,+BAA+B;AAC/B,+EAA+E;AAE/E;;GAEG;AACH,MAAM,CAAC,MAAM,OAAO,GAAG;IACrB,yBAAyB;IACzB,KAAK,EAAE,kBAAkB;IACzB,oCAAoC;IACpC,WAAW,EAAE,wBAAwB;IACrC,yBAAyB;IACzB,QAAQ,EAAE,eAAe;IACzB,gCAAgC;IAChC,MAAM,EAAE,mBAAmB;IAC3B,uBAAuB;IACvB,IAAI,EAAE,iBAAiB;IACvB,yBAAyB;IACzB,OAAO,EAAE,oBAAoB;IAC7B,+BAA+B;IAC/B,gBAAgB,EAAE,6BAA6B;IAC/C,oBAAoB;IACpB,aAAa,EAAE,0BAA0B;CACjC,CAAC;AA8CX,+EAA+E;AAC/E,2BAA2B;AAC3B,+EAA+E;AAE/E;;GAEG;AACH,MAAM,CAAC,MAAM,kBAAkB,GAAG;IAChC,OAAO;IACP,YAAY;IACZ,UAAU;IACV,iBAAiB;IACjB,qBAAqB;IACrB,mBAAmB;IACnB,uBAAuB;IACvB,iBAAiB;IACjB,eAAe;IACf,kBAAkB;IAClB,eAAe;IACf,wBAAwB;IACxB,kBAAkB;CACV,CAAC;AAOX;;GAEG;AACH,MAAM,UAAU,iBAAiB,CAAC,KAAa;IAC7C,OAAQ,kBAAwC,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC;AACnE,CAAC"}
1
+ {"version":3,"file":"types.js","sourceRoot":"","sources":["../../src/config/types.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAwGH;;GAEG;AACH,MAAM,CAAC,MAAM,yBAAyB,GAA4C;IAChF,iBAAiB;IACjB,YAAY;IACZ,aAAa;IACb,QAAQ;CACA,CAAC;AAEX;;GAEG;AACH,MAAM,CAAC,MAAM,qBAAqB,GAA6B;IAC7D,MAAM;IACN,MAAM;IACN,eAAe;CACP,CAAC;AAEX;;GAEG;AACH,MAAM,CAAC,MAAM,yBAAyB,GAAsB;IAC1D,QAAQ;IACR,QAAQ;IACR,QAAQ;IACR,QAAQ;CACA,CAAC;AAyCX,+EAA+E;AAC/E,gCAAgC;AAChC,+EAA+E;AAE/E;;GAEG;AACH,MAAM,CAAC,MAAM,YAAY,GAAG;IAC1B,6BAA6B;IAC7B,OAAO,EAAE,SAAS;IAClB,uBAAuB;IACvB,IAAI,EAAE,MAAM;IACZ,gCAAgC;IAChC,WAAW,EAAE,aAAa;IAC1B,oBAAoB;IACpB,GAAG,EAAE,KAAK;CACF,CAAC;AA+FX,+EAA+E;AAC/E,+BAA+B;AAC/B,+EAA+E;AAE/E;;GAEG;AACH,MAAM,CAAC,MAAM,OAAO,GAAG;IACrB,yBAAyB;IACzB,KAAK,EAAE,kBAAkB;IACzB,oCAAoC;IACpC,WAAW,EAAE,wBAAwB;IACrC,yBAAyB;IACzB,QAAQ,EAAE,eAAe;IACzB,gCAAgC;IAChC,MAAM,EAAE,mBAAmB;IAC3B,uBAAuB;IACvB,IAAI,EAAE,iBAAiB;IACvB,yBAAyB;IACzB,OAAO,EAAE,oBAAoB;IAC7B,+BAA+B;IAC/B,gBAAgB,EAAE,6BAA6B;IAC/C,oBAAoB;IACpB,aAAa,EAAE,0BAA0B;CACjC,CAAC;AA8CX,+EAA+E;AAC/E,2BAA2B;AAC3B,+EAA+E;AAE/E;;GAEG;AACH,MAAM,CAAC,MAAM,kBAAkB,GAAG;IAChC,OAAO;IACP,YAAY;IACZ,UAAU;IACV,iBAAiB;IACjB,qBAAqB;IACrB,mBAAmB;IACnB,uBAAuB;IACvB,iBAAiB;IACjB,eAAe;IACf,kBAAkB;IAClB,eAAe;IACf,wBAAwB;IACxB,kBAAkB;IAClB,sBAAsB;IACtB,2BAA2B;IAC3B,+BAA+B;IAC/B,+BAA+B;IAC/B,uBAAuB;IACvB,+BAA+B;IAC/B,uCAAuC;CAC/B,CAAC;AAOX;;GAEG;AACH,MAAM,UAAU,iBAAiB,CAAC,KAAa;IAC7C,OAAQ,kBAAwC,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC;AACnE,CAAC"}
@@ -1 +1 @@
1
- {"version":3,"file":"validation.d.ts","sourceRoot":"","sources":["../../src/config/validation.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAIH,OAAO,KAAK,EACV,aAAa,EACb,oBAAoB,EACpB,sBAAsB,EACvB,MAAM,YAAY,CAAC;AAcpB;;GAEG;AACH,wBAAgB,YAAY,CAAC,KAAK,EAAE,OAAO,GAAG,KAAK,IAAI,MAAM,CAM5D;AAED;;GAEG;AACH,wBAAgB,aAAa,CAAC,KAAK,EAAE,OAAO,GAAG,MAAM,CAuBpD;AAED;;GAEG;AACH,wBAAgB,iBAAiB,CAAC,KAAK,EAAE,OAAO,GAAG,KAAK,IAAI,MAAM,CAejE;AAED;;GAEG;AACH,wBAAgB,kBAAkB,CAAC,KAAK,EAAE,OAAO,GAAG,MAAM,CA8BzD;AAED;;GAEG;AACH,wBAAgB,eAAe,CAAC,KAAK,EAAE,OAAO,GAAG,KAAK,IAAI,MAAM,CAW/D;AAED;;GAEG;AACH,wBAAgB,gBAAgB,CAAC,KAAK,EAAE,OAAO,GAAG,MAAM,CA8BvD;AAED;;GAEG;AACH,wBAAgB,oBAAoB,CAAC,KAAK,EAAE,OAAO,GAAG,KAAK,IAAI,MAAM,CAUpE;AAED;;GAEG;AACH,wBAAgB,qBAAqB,CAAC,KAAK,EAAE,OAAO,EAAE,KAAK,EAAE,MAAM,GAAG,MAAM,CA8B3E;AAED;;GAEG;AACH,wBAAgB,oBAAoB,CAAC,KAAK,EAAE,OAAO,GAAG,KAAK,IAAI,MAAM,EAAE,CAKtE;AAED;;GAEG;AACH,wBAAgB,qBAAqB,CAAC,KAAK,EAAE,OAAO,GAAG,MAAM,EAAE,CAyB9D;AAMD;;;;;;GAMG;AACH,wBAAgB,qBAAqB,CAAC,MAAM,EAAE,OAAO,GAAG,aAAa,CAyHpE;AAED;;GAEG;AACH,wBAAgB,yBAAyB,CAAC,MAAM,EAAE,OAAO,GAAG,sBAAsB,CAejF;AAED;;GAEG;AACH,wBAAgB,4BAA4B,CAAC,MAAM,EAAE,oBAAoB,GAAG,IAAI,CAoD/E"}
1
+ {"version":3,"file":"validation.d.ts","sourceRoot":"","sources":["../../src/config/validation.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAIH,OAAO,KAAK,EACV,aAAa,EACb,oBAAoB,EACpB,sBAAsB,EACvB,MAAM,YAAY,CAAC;AAsBpB;;GAEG;AACH,wBAAgB,YAAY,CAAC,KAAK,EAAE,OAAO,GAAG,KAAK,IAAI,MAAM,CAM5D;AAED;;GAEG;AACH,wBAAgB,aAAa,CAAC,KAAK,EAAE,OAAO,GAAG,MAAM,CAuBpD;AAED;;GAEG;AACH,wBAAgB,iBAAiB,CAAC,KAAK,EAAE,OAAO,GAAG,KAAK,IAAI,MAAM,CAejE;AAED;;GAEG;AACH,wBAAgB,kBAAkB,CAAC,KAAK,EAAE,OAAO,GAAG,MAAM,CA8BzD;AAED;;GAEG;AACH,wBAAgB,eAAe,CAAC,KAAK,EAAE,OAAO,GAAG,KAAK,IAAI,MAAM,CAW/D;AAED;;GAEG;AACH,wBAAgB,gBAAgB,CAAC,KAAK,EAAE,OAAO,GAAG,MAAM,CA8BvD;AAED;;GAEG;AACH,wBAAgB,oBAAoB,CAAC,KAAK,EAAE,OAAO,GAAG,KAAK,IAAI,MAAM,CAUpE;AAED;;GAEG;AACH,wBAAgB,qBAAqB,CAAC,KAAK,EAAE,OAAO,EAAE,KAAK,EAAE,MAAM,GAAG,MAAM,CA8B3E;AAED;;GAEG;AACH,wBAAgB,oBAAoB,CAAC,KAAK,EAAE,OAAO,GAAG,KAAK,IAAI,MAAM,EAAE,CAKtE;AAED;;GAEG;AACH,wBAAgB,qBAAqB,CAAC,KAAK,EAAE,OAAO,GAAG,MAAM,EAAE,CAyB9D;AAMD;;;;;;GAMG;AACH,wBAAgB,qBAAqB,CAAC,MAAM,EAAE,OAAO,GAAG,aAAa,CAuMpE;AAED;;GAEG;AACH,wBAAgB,yBAAyB,CAAC,MAAM,EAAE,OAAO,GAAG,sBAAsB,CAejF;AAED;;GAEG;AACH,wBAAgB,4BAA4B,CAAC,MAAM,EAAE,oBAAoB,GAAG,IAAI,CAiG/E"}
@@ -5,7 +5,9 @@
5
5
  */
6
6
  import { ValidationError, ErrorCode } from '@stoneforge/core';
7
7
  import { isValidIdentityMode } from '../systems/identity.js';
8
- import { MIN_EXPORT_DEBOUNCE, MAX_EXPORT_DEBOUNCE, MIN_TIME_TOLERANCE, MAX_TIME_TOLERANCE, MAX_TTL, } from './defaults.js';
8
+ import { MIN_EXPORT_DEBOUNCE, MAX_EXPORT_DEBOUNCE, MIN_TIME_TOLERANCE, MAX_TIME_TOLERANCE, MAX_TTL, MIN_POLL_INTERVAL, MAX_POLL_INTERVAL, } from './defaults.js';
9
+ import { VALID_CONFLICT_STRATEGIES, VALID_SYNC_DIRECTIONS, VALID_AUTO_LINK_PROVIDERS, } from './types.js';
10
+ // Note: ExternalSyncConflictStrategy and SyncDirection types are validated via the VALID_* arrays
9
11
  import { validateDurationRange, formatDuration } from './duration.js';
10
12
  // ============================================================================
11
13
  // Field Validators
@@ -230,6 +232,43 @@ export function validateConfiguration(config) {
230
232
  throw new ValidationError('identity.timeTolerance must be a number', ErrorCode.INVALID_INPUT, { field: 'identity.timeTolerance', value: identity.timeTolerance, expected: 'number' });
231
233
  }
232
234
  validateDurationRange(identity.timeTolerance, MIN_TIME_TOLERANCE, MAX_TIME_TOLERANCE, 'identity.timeTolerance');
235
+ // Validate externalSync
236
+ if (typeof obj.externalSync !== 'object' || obj.externalSync === null) {
237
+ throw new ValidationError('Configuration must include externalSync object', ErrorCode.MISSING_REQUIRED_FIELD, { field: 'externalSync' });
238
+ }
239
+ const externalSync = obj.externalSync;
240
+ if (typeof externalSync.enabled !== 'boolean') {
241
+ throw new ValidationError('externalSync.enabled must be a boolean', ErrorCode.INVALID_INPUT, { field: 'externalSync.enabled', value: externalSync.enabled, expected: 'boolean' });
242
+ }
243
+ if (typeof externalSync.pollInterval !== 'number') {
244
+ throw new ValidationError('externalSync.pollInterval must be a number', ErrorCode.INVALID_INPUT, { field: 'externalSync.pollInterval', value: externalSync.pollInterval, expected: 'number' });
245
+ }
246
+ validateDurationRange(externalSync.pollInterval, MIN_POLL_INTERVAL, MAX_POLL_INTERVAL, 'externalSync.pollInterval');
247
+ if (!VALID_CONFLICT_STRATEGIES.includes(externalSync.conflictStrategy)) {
248
+ throw new ValidationError(`externalSync.conflictStrategy must be one of: ${VALID_CONFLICT_STRATEGIES.join(', ')}`, ErrorCode.INVALID_INPUT, { field: 'externalSync.conflictStrategy', value: externalSync.conflictStrategy, expected: VALID_CONFLICT_STRATEGIES });
249
+ }
250
+ if (!VALID_SYNC_DIRECTIONS.includes(externalSync.defaultDirection)) {
251
+ throw new ValidationError(`externalSync.defaultDirection must be one of: ${VALID_SYNC_DIRECTIONS.join(', ')}`, ErrorCode.INVALID_INPUT, { field: 'externalSync.defaultDirection', value: externalSync.defaultDirection, expected: VALID_SYNC_DIRECTIONS });
252
+ }
253
+ if (typeof externalSync.autoLink !== 'boolean') {
254
+ throw new ValidationError('externalSync.autoLink must be a boolean', ErrorCode.INVALID_INPUT, { field: 'externalSync.autoLink', value: externalSync.autoLink, expected: 'boolean' });
255
+ }
256
+ if (externalSync.autoLinkProvider !== undefined) {
257
+ if (typeof externalSync.autoLinkProvider !== 'string') {
258
+ throw new ValidationError('externalSync.autoLinkProvider must be a string', ErrorCode.INVALID_INPUT, { field: 'externalSync.autoLinkProvider', value: externalSync.autoLinkProvider, expected: 'string' });
259
+ }
260
+ if (!VALID_AUTO_LINK_PROVIDERS.includes(externalSync.autoLinkProvider)) {
261
+ throw new ValidationError(`externalSync.autoLinkProvider must be one of: ${VALID_AUTO_LINK_PROVIDERS.join(', ')}`, ErrorCode.INVALID_INPUT, { field: 'externalSync.autoLinkProvider', value: externalSync.autoLinkProvider, expected: VALID_AUTO_LINK_PROVIDERS });
262
+ }
263
+ }
264
+ if (externalSync.autoLinkDocumentProvider !== undefined) {
265
+ if (typeof externalSync.autoLinkDocumentProvider !== 'string') {
266
+ throw new ValidationError('externalSync.autoLinkDocumentProvider must be a string', ErrorCode.INVALID_INPUT, { field: 'externalSync.autoLinkDocumentProvider', value: externalSync.autoLinkDocumentProvider, expected: 'string' });
267
+ }
268
+ if (!VALID_AUTO_LINK_PROVIDERS.includes(externalSync.autoLinkDocumentProvider)) {
269
+ throw new ValidationError(`externalSync.autoLinkDocumentProvider must be one of: ${VALID_AUTO_LINK_PROVIDERS.join(', ')}`, ErrorCode.INVALID_INPUT, { field: 'externalSync.autoLinkDocumentProvider', value: externalSync.autoLinkDocumentProvider, expected: VALID_AUTO_LINK_PROVIDERS });
270
+ }
271
+ }
233
272
  return config;
234
273
  }
235
274
  /**
@@ -289,5 +328,29 @@ export function validatePartialConfiguration(config) {
289
328
  throw new ValidationError(`tombstone.ttl (${formatDuration(config.tombstone.ttl)}) must be >= tombstone.minTtl (${formatDuration(config.tombstone.minTtl)})`, ErrorCode.INVALID_INPUT, { field: 'tombstone.ttl', value: config.tombstone.ttl, expected: `>= ${config.tombstone.minTtl}` });
290
329
  }
291
330
  }
331
+ // Validate externalSync fields
332
+ if (config.externalSync?.pollInterval !== undefined) {
333
+ validateDurationRange(config.externalSync.pollInterval, MIN_POLL_INTERVAL, MAX_POLL_INTERVAL, 'externalSync.pollInterval');
334
+ }
335
+ if (config.externalSync?.conflictStrategy !== undefined) {
336
+ if (!VALID_CONFLICT_STRATEGIES.includes(config.externalSync.conflictStrategy)) {
337
+ throw new ValidationError(`externalSync.conflictStrategy must be one of: ${VALID_CONFLICT_STRATEGIES.join(', ')}`, ErrorCode.INVALID_INPUT, { field: 'externalSync.conflictStrategy', value: config.externalSync.conflictStrategy, expected: VALID_CONFLICT_STRATEGIES });
338
+ }
339
+ }
340
+ if (config.externalSync?.defaultDirection !== undefined) {
341
+ if (!VALID_SYNC_DIRECTIONS.includes(config.externalSync.defaultDirection)) {
342
+ throw new ValidationError(`externalSync.defaultDirection must be one of: ${VALID_SYNC_DIRECTIONS.join(', ')}`, ErrorCode.INVALID_INPUT, { field: 'externalSync.defaultDirection', value: config.externalSync.defaultDirection, expected: VALID_SYNC_DIRECTIONS });
343
+ }
344
+ }
345
+ if (config.externalSync?.autoLinkProvider !== undefined) {
346
+ if (!VALID_AUTO_LINK_PROVIDERS.includes(config.externalSync.autoLinkProvider)) {
347
+ throw new ValidationError(`externalSync.autoLinkProvider must be one of: ${VALID_AUTO_LINK_PROVIDERS.join(', ')}`, ErrorCode.INVALID_INPUT, { field: 'externalSync.autoLinkProvider', value: config.externalSync.autoLinkProvider, expected: VALID_AUTO_LINK_PROVIDERS });
348
+ }
349
+ }
350
+ if (config.externalSync?.autoLinkDocumentProvider !== undefined) {
351
+ if (!VALID_AUTO_LINK_PROVIDERS.includes(config.externalSync.autoLinkDocumentProvider)) {
352
+ throw new ValidationError(`externalSync.autoLinkDocumentProvider must be one of: ${VALID_AUTO_LINK_PROVIDERS.join(', ')}`, ErrorCode.INVALID_INPUT, { field: 'externalSync.autoLinkDocumentProvider', value: config.externalSync.autoLinkDocumentProvider, expected: VALID_AUTO_LINK_PROVIDERS });
353
+ }
354
+ }
292
355
  }
293
356
  //# sourceMappingURL=validation.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"validation.js","sourceRoot":"","sources":["../../src/config/validation.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"validation.js","sourceRoot":"","sources":["../../src/config/validation.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,EAAE,eAAe,EAAE,SAAS,EAAE,MAAM,kBAAkB,CAAC;AAC9D,OAAO,EAAE,mBAAmB,EAAE,MAAM,wBAAwB,CAAC;AAM7D,OAAO,EACL,mBAAmB,EACnB,mBAAmB,EACnB,kBAAkB,EAClB,kBAAkB,EAClB,OAAO,EACP,iBAAiB,EACjB,iBAAiB,GAClB,MAAM,eAAe,CAAC;AACvB,OAAO,EACL,yBAAyB,EACzB,qBAAqB,EACrB,yBAAyB,GAC1B,MAAM,YAAY,CAAC;AACpB,kGAAkG;AAClG,OAAO,EAAE,qBAAqB,EAAE,cAAc,EAAE,MAAM,eAAe,CAAC;AAEtE,+EAA+E;AAC/E,mBAAmB;AACnB,+EAA+E;AAE/E;;GAEG;AACH,MAAM,UAAU,YAAY,CAAC,KAAc;IACzC,IAAI,OAAO,KAAK,KAAK,QAAQ,EAAE,CAAC;QAC9B,OAAO,KAAK,CAAC;IACf,CAAC;IACD,uEAAuE;IACvE,OAAO,KAAK,CAAC,MAAM,GAAG,CAAC,IAAI,kBAAkB,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;AAC5D,CAAC;AAED;;GAEG;AACH,MAAM,UAAU,aAAa,CAAC,KAAc;IAC1C,IAAI,OAAO,KAAK,KAAK,QAAQ,EAAE,CAAC;QAC9B,MAAM,IAAI,eAAe,CACvB,wBAAwB,EACxB,SAAS,CAAC,aAAa,EACvB,EAAE,KAAK,EAAE,OAAO,EAAE,KAAK,EAAE,QAAQ,EAAE,QAAQ,EAAE,CAC9C,CAAC;IACJ,CAAC;IACD,IAAI,KAAK,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;QACvB,MAAM,IAAI,eAAe,CACvB,uBAAuB,EACvB,SAAS,CAAC,aAAa,EACvB,EAAE,KAAK,EAAE,OAAO,EAAE,KAAK,EAAE,CAC1B,CAAC;IACJ,CAAC;IACD,IAAI,CAAC,kBAAkB,CAAC,IAAI,CAAC,KAAK,CAAC,EAAE,CAAC;QACpC,MAAM,IAAI,eAAe,CACvB,2EAA2E,EAC3E,SAAS,CAAC,aAAa,EACvB,EAAE,KAAK,EAAE,OAAO,EAAE,KAAK,EAAE,QAAQ,EAAE,kCAAkC,EAAE,CACxE,CAAC;IACJ,CAAC;IACD,OAAO,KAAK,CAAC;AACf,CAAC;AAED;;GAEG;AACH,MAAM,UAAU,iBAAiB,CAAC,KAAc;IAC9C,IAAI,OAAO,KAAK,KAAK,QAAQ,EAAE,CAAC;QAC9B,OAAO,KAAK,CAAC;IACf,CAAC;IACD,6EAA6E;IAC7E,mCAAmC;IACnC,OAAO,CACL,KAAK,CAAC,MAAM,GAAG,CAAC;QAChB,KAAK,CAAC,IAAI,EAAE,CAAC,MAAM,GAAG,CAAC;QACvB,CAAC,KAAK,CAAC,QAAQ,CAAC,GAAG,CAAC;QACpB,CAAC,KAAK,CAAC,QAAQ,CAAC,IAAI,CAAC;QACrB,CAAC,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC;QACjB,4CAA4C;QAC5C,CAAC,iBAAiB,CAAC,IAAI,CAAC,KAAK,CAAC,CAC/B,CAAC;AACJ,CAAC;AAED;;GAEG;AACH,MAAM,UAAU,kBAAkB,CAAC,KAAc;IAC/C,IAAI,OAAO,KAAK,KAAK,QAAQ,EAAE,CAAC;QAC9B,MAAM,IAAI,eAAe,CACvB,6BAA6B,EAC7B,SAAS,CAAC,aAAa,EACvB,EAAE,KAAK,EAAE,YAAY,EAAE,KAAK,EAAE,QAAQ,EAAE,QAAQ,EAAE,CACnD,CAAC;IACJ,CAAC;IACD,IAAI,KAAK,CAAC,MAAM,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,EAAE,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;QACpD,MAAM,IAAI,eAAe,CACvB,+CAA+C,EAC/C,SAAS,CAAC,aAAa,EACvB,EAAE,KAAK,EAAE,YAAY,EAAE,KAAK,EAAE,CAC/B,CAAC;IACJ,CAAC;IACD,IAAI,KAAK,CAAC,QAAQ,CAAC,GAAG,CAAC,IAAI,KAAK,CAAC,QAAQ,CAAC,IAAI,CAAC,EAAE,CAAC;QAChD,MAAM,IAAI,eAAe,CACvB,qCAAqC,EACrC,SAAS,CAAC,aAAa,EACvB,EAAE,KAAK,EAAE,YAAY,EAAE,KAAK,EAAE,CAC/B,CAAC;IACJ,CAAC;IACD,IAAI,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,EAAE,CAAC;QACrB,MAAM,IAAI,eAAe,CACvB,wCAAwC,EACxC,SAAS,CAAC,aAAa,EACvB,EAAE,KAAK,EAAE,YAAY,EAAE,KAAK,EAAE,CAC/B,CAAC;IACJ,CAAC;IACD,OAAO,KAAK,CAAC;AACf,CAAC;AAED;;GAEG;AACH,MAAM,UAAU,eAAe,CAAC,KAAc;IAC5C,IAAI,OAAO,KAAK,KAAK,QAAQ,EAAE,CAAC;QAC9B,OAAO,KAAK,CAAC;IACf,CAAC;IACD,mEAAmE;IACnE,OAAO,CACL,KAAK,CAAC,MAAM,GAAG,CAAC;QAChB,KAAK,CAAC,QAAQ,CAAC,KAAK,CAAC;QACrB,CAAC,KAAK,CAAC,QAAQ,CAAC,GAAG,CAAC;QACpB,CAAC,KAAK,CAAC,QAAQ,CAAC,IAAI,CAAC,CACtB,CAAC;AACJ,CAAC;AAED;;GAEG;AACH,MAAM,UAAU,gBAAgB,CAAC,KAAc;IAC7C,IAAI,OAAO,KAAK,KAAK,QAAQ,EAAE,CAAC;QAC9B,MAAM,IAAI,eAAe,CACvB,2BAA2B,EAC3B,SAAS,CAAC,aAAa,EACvB,EAAE,KAAK,EAAE,UAAU,EAAE,KAAK,EAAE,QAAQ,EAAE,QAAQ,EAAE,CACjD,CAAC;IACJ,CAAC;IACD,IAAI,KAAK,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;QACvB,MAAM,IAAI,eAAe,CACvB,0BAA0B,EAC1B,SAAS,CAAC,aAAa,EACvB,EAAE,KAAK,EAAE,UAAU,EAAE,KAAK,EAAE,CAC7B,CAAC;IACJ,CAAC;IACD,IAAI,CAAC,KAAK,CAAC,QAAQ,CAAC,KAAK,CAAC,EAAE,CAAC;QAC3B,MAAM,IAAI,eAAe,CACvB,sCAAsC,EACtC,SAAS,CAAC,aAAa,EACvB,EAAE,KAAK,EAAE,UAAU,EAAE,KAAK,EAAE,QAAQ,EAAE,MAAM,EAAE,CAC/C,CAAC;IACJ,CAAC;IACD,IAAI,KAAK,CAAC,QAAQ,CAAC,GAAG,CAAC,IAAI,KAAK,CAAC,QAAQ,CAAC,IAAI,CAAC,EAAE,CAAC;QAChD,MAAM,IAAI,eAAe,CACvB,yCAAyC,EACzC,SAAS,CAAC,aAAa,EACvB,EAAE,KAAK,EAAE,UAAU,EAAE,KAAK,EAAE,CAC7B,CAAC;IACJ,CAAC;IACD,OAAO,KAAK,CAAC;AACf,CAAC;AAED;;GAEG;AACH,MAAM,UAAU,oBAAoB,CAAC,KAAc;IACjD,IAAI,OAAO,KAAK,KAAK,QAAQ,EAAE,CAAC;QAC9B,OAAO,KAAK,CAAC;IACf,CAAC;IACD,OAAO,CACL,KAAK,CAAC,MAAM,GAAG,CAAC;QAChB,KAAK,CAAC,QAAQ,CAAC,QAAQ,CAAC;QACxB,CAAC,KAAK,CAAC,QAAQ,CAAC,GAAG,CAAC;QACpB,CAAC,KAAK,CAAC,QAAQ,CAAC,IAAI,CAAC,CACtB,CAAC;AACJ,CAAC;AAED;;GAEG;AACH,MAAM,UAAU,qBAAqB,CAAC,KAAc,EAAE,KAAa;IACjE,IAAI,OAAO,KAAK,KAAK,QAAQ,EAAE,CAAC;QAC9B,MAAM,IAAI,eAAe,CACvB,GAAG,KAAK,mBAAmB,EAC3B,SAAS,CAAC,aAAa,EACvB,EAAE,KAAK,EAAE,KAAK,EAAE,QAAQ,EAAE,QAAQ,EAAE,CACrC,CAAC;IACJ,CAAC;IACD,IAAI,KAAK,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;QACvB,MAAM,IAAI,eAAe,CACvB,GAAG,KAAK,kBAAkB,EAC1B,SAAS,CAAC,aAAa,EACvB,EAAE,KAAK,EAAE,KAAK,EAAE,CACjB,CAAC;IACJ,CAAC;IACD,IAAI,CAAC,KAAK,CAAC,QAAQ,CAAC,QAAQ,CAAC,EAAE,CAAC;QAC9B,MAAM,IAAI,eAAe,CACvB,GAAG,KAAK,iCAAiC,EACzC,SAAS,CAAC,aAAa,EACvB,EAAE,KAAK,EAAE,KAAK,EAAE,QAAQ,EAAE,SAAS,EAAE,CACtC,CAAC;IACJ,CAAC;IACD,IAAI,KAAK,CAAC,QAAQ,CAAC,GAAG,CAAC,IAAI,KAAK,CAAC,QAAQ,CAAC,IAAI,CAAC,EAAE,CAAC;QAChD,MAAM,IAAI,eAAe,CACvB,GAAG,KAAK,iCAAiC,EACzC,SAAS,CAAC,aAAa,EACvB,EAAE,KAAK,EAAE,KAAK,EAAE,CACjB,CAAC;IACJ,CAAC;IACD,OAAO,KAAK,CAAC;AACf,CAAC;AAED;;GAEG;AACH,MAAM,UAAU,oBAAoB,CAAC,KAAc;IACjD,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC,EAAE,CAAC;QAC1B,OAAO,KAAK,CAAC;IACf,CAAC;IACD,OAAO,KAAK,CAAC,KAAK,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,OAAO,CAAC,KAAK,QAAQ,IAAI,CAAC,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC;AACnE,CAAC;AAED;;GAEG;AACH,MAAM,UAAU,qBAAqB,CAAC,KAAc;IAClD,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC,EAAE,CAAC;QAC1B,MAAM,IAAI,eAAe,CACvB,iCAAiC,EACjC,SAAS,CAAC,aAAa,EACvB,EAAE,KAAK,EAAE,iBAAiB,EAAE,KAAK,EAAE,QAAQ,EAAE,kBAAkB,EAAE,CAClE,CAAC;IACJ,CAAC;IACD,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,KAAK,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE,CAAC;QACtC,IAAI,OAAO,KAAK,CAAC,CAAC,CAAC,KAAK,QAAQ,EAAE,CAAC;YACjC,MAAM,IAAI,eAAe,CACvB,0BAA0B,CAAC,mBAAmB,EAC9C,SAAS,CAAC,aAAa,EACvB,EAAE,KAAK,EAAE,mBAAmB,CAAC,GAAG,EAAE,KAAK,EAAE,KAAK,CAAC,CAAC,CAAC,EAAE,QAAQ,EAAE,QAAQ,EAAE,CACxE,CAAC;QACJ,CAAC;QACD,IAAI,KAAK,CAAC,CAAC,CAAC,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;YAC1B,MAAM,IAAI,eAAe,CACvB,0BAA0B,CAAC,kBAAkB,EAC7C,SAAS,CAAC,aAAa,EACvB,EAAE,KAAK,EAAE,mBAAmB,CAAC,GAAG,EAAE,KAAK,EAAE,KAAK,CAAC,CAAC,CAAC,EAAE,CACpD,CAAC;QACJ,CAAC;IACH,CAAC;IACD,OAAO,KAAiB,CAAC;AAC3B,CAAC;AAED,+EAA+E;AAC/E,gCAAgC;AAChC,+EAA+E;AAE/E;;;;;;GAMG;AACH,MAAM,UAAU,qBAAqB,CAAC,MAAe;IACnD,IAAI,OAAO,MAAM,KAAK,QAAQ,IAAI,MAAM,KAAK,IAAI,EAAE,CAAC;QAClD,MAAM,IAAI,eAAe,CACvB,iCAAiC,EACjC,SAAS,CAAC,aAAa,EACvB,EAAE,KAAK,EAAE,MAAM,EAAE,CAClB,CAAC;IACJ,CAAC;IAED,MAAM,GAAG,GAAG,MAAiC,CAAC;IAE9C,4BAA4B;IAC5B,IAAI,GAAG,CAAC,KAAK,KAAK,SAAS,EAAE,CAAC;QAC5B,aAAa,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC;IAC3B,CAAC;IAED,iCAAiC;IACjC,IAAI,GAAG,CAAC,UAAU,KAAK,SAAS,EAAE,CAAC;QACjC,kBAAkB,CAAC,GAAG,CAAC,UAAU,CAAC,CAAC;IACrC,CAAC;IAED,oBAAoB;IACpB,IAAI,OAAO,GAAG,CAAC,QAAQ,KAAK,QAAQ,EAAE,CAAC;QACrC,MAAM,IAAI,eAAe,CACvB,qCAAqC,EACrC,SAAS,CAAC,sBAAsB,EAChC,EAAE,KAAK,EAAE,UAAU,EAAE,CACtB,CAAC;IACJ,CAAC;IACD,gBAAgB,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAC;IAE/B,gBAAgB;IAChB,IAAI,OAAO,GAAG,CAAC,IAAI,KAAK,QAAQ,IAAI,GAAG,CAAC,IAAI,KAAK,IAAI,EAAE,CAAC;QACtD,MAAM,IAAI,eAAe,CACvB,wCAAwC,EACxC,SAAS,CAAC,sBAAsB,EAChC,EAAE,KAAK,EAAE,MAAM,EAAE,CAClB,CAAC;IACJ,CAAC;IACD,MAAM,IAAI,GAAG,GAAG,CAAC,IAA+B,CAAC;IACjD,IAAI,OAAO,IAAI,CAAC,UAAU,KAAK,SAAS,EAAE,CAAC;QACzC,MAAM,IAAI,eAAe,CACvB,mCAAmC,EACnC,SAAS,CAAC,aAAa,EACvB,EAAE,KAAK,EAAE,iBAAiB,EAAE,KAAK,EAAE,IAAI,CAAC,UAAU,EAAE,QAAQ,EAAE,SAAS,EAAE,CAC1E,CAAC;IACJ,CAAC;IACD,IAAI,OAAO,IAAI,CAAC,cAAc,KAAK,QAAQ,EAAE,CAAC;QAC5C,MAAM,IAAI,eAAe,CACvB,sCAAsC,EACtC,SAAS,CAAC,aAAa,EACvB,EAAE,KAAK,EAAE,qBAAqB,EAAE,KAAK,EAAE,IAAI,CAAC,cAAc,EAAE,QAAQ,EAAE,QAAQ,EAAE,CACjF,CAAC;IACJ,CAAC;IACD,qBAAqB,CAAC,IAAI,CAAC,cAAc,EAAE,mBAAmB,EAAE,mBAAmB,EAAE,qBAAqB,CAAC,CAAC;IAC5G,qBAAqB,CAAC,IAAI,CAAC,YAAY,EAAE,mBAAmB,CAAC,CAAC;IAC9D,qBAAqB,CAAC,IAAI,CAAC,gBAAgB,EAAE,uBAAuB,CAAC,CAAC;IAEtE,qBAAqB;IACrB,IAAI,OAAO,GAAG,CAAC,SAAS,KAAK,QAAQ,IAAI,GAAG,CAAC,SAAS,KAAK,IAAI,EAAE,CAAC;QAChE,MAAM,IAAI,eAAe,CACvB,6CAA6C,EAC7C,SAAS,CAAC,sBAAsB,EAChC,EAAE,KAAK,EAAE,WAAW,EAAE,CACvB,CAAC;IACJ,CAAC;IACD,MAAM,SAAS,GAAG,GAAG,CAAC,SAAoC,CAAC;IAC3D,qBAAqB,CAAC,SAAS,CAAC,KAAK,CAAC,CAAC;IAEvC,qBAAqB;IACrB,IAAI,OAAO,GAAG,CAAC,SAAS,KAAK,QAAQ,IAAI,GAAG,CAAC,SAAS,KAAK,IAAI,EAAE,CAAC;QAChE,MAAM,IAAI,eAAe,CACvB,6CAA6C,EAC7C,SAAS,CAAC,sBAAsB,EAChC,EAAE,KAAK,EAAE,WAAW,EAAE,CACvB,CAAC;IACJ,CAAC;IACD,MAAM,SAAS,GAAG,GAAG,CAAC,SAAoC,CAAC;IAC3D,IAAI,OAAO,SAAS,CAAC,GAAG,KAAK,QAAQ,EAAE,CAAC;QACtC,MAAM,IAAI,eAAe,CACvB,gCAAgC,EAChC,SAAS,CAAC,aAAa,EACvB,EAAE,KAAK,EAAE,eAAe,EAAE,KAAK,EAAE,SAAS,CAAC,GAAG,EAAE,QAAQ,EAAE,QAAQ,EAAE,CACrE,CAAC;IACJ,CAAC;IACD,IAAI,OAAO,SAAS,CAAC,MAAM,KAAK,QAAQ,EAAE,CAAC;QACzC,MAAM,IAAI,eAAe,CACvB,mCAAmC,EACnC,SAAS,CAAC,aAAa,EACvB,EAAE,KAAK,EAAE,kBAAkB,EAAE,KAAK,EAAE,SAAS,CAAC,MAAM,EAAE,QAAQ,EAAE,QAAQ,EAAE,CAC3E,CAAC;IACJ,CAAC;IACD,qBAAqB,CAAC,SAAS,CAAC,GAAG,EAAE,SAAS,CAAC,MAAM,EAAE,OAAO,EAAE,eAAe,CAAC,CAAC;IACjF,qBAAqB,CAAC,SAAS,CAAC,MAAM,EAAE,CAAC,EAAE,SAAS,CAAC,GAAG,EAAE,kBAAkB,CAAC,CAAC;IAE9E,oBAAoB;IACpB,IAAI,OAAO,GAAG,CAAC,QAAQ,KAAK,QAAQ,IAAI,GAAG,CAAC,QAAQ,KAAK,IAAI,EAAE,CAAC;QAC9D,MAAM,IAAI,eAAe,CACvB,4CAA4C,EAC5C,SAAS,CAAC,sBAAsB,EAChC,EAAE,KAAK,EAAE,UAAU,EAAE,CACtB,CAAC;IACJ,CAAC;IACD,MAAM,QAAQ,GAAG,GAAG,CAAC,QAAmC,CAAC;IACzD,IAAI,CAAC,mBAAmB,CAAC,QAAQ,CAAC,IAAI,CAAC,EAAE,CAAC;QACxC,MAAM,IAAI,eAAe,CACvB,6CAA6C,EAC7C,SAAS,CAAC,aAAa,EACvB,EAAE,KAAK,EAAE,eAAe,EAAE,KAAK,EAAE,QAAQ,CAAC,IAAI,EAAE,QAAQ,EAAE,CAAC,MAAM,EAAE,eAAe,EAAE,QAAQ,CAAC,EAAE,CAChG,CAAC;IACJ,CAAC;IACD,IAAI,OAAO,QAAQ,CAAC,aAAa,KAAK,QAAQ,EAAE,CAAC;QAC/C,MAAM,IAAI,eAAe,CACvB,yCAAyC,EACzC,SAAS,CAAC,aAAa,EACvB,EAAE,KAAK,EAAE,wBAAwB,EAAE,KAAK,EAAE,QAAQ,CAAC,aAAa,EAAE,QAAQ,EAAE,QAAQ,EAAE,CACvF,CAAC;IACJ,CAAC;IACD,qBAAqB,CAAC,QAAQ,CAAC,aAAa,EAAE,kBAAkB,EAAE,kBAAkB,EAAE,wBAAwB,CAAC,CAAC;IAEhH,wBAAwB;IACxB,IAAI,OAAO,GAAG,CAAC,YAAY,KAAK,QAAQ,IAAI,GAAG,CAAC,YAAY,KAAK,IAAI,EAAE,CAAC;QACtE,MAAM,IAAI,eAAe,CACvB,gDAAgD,EAChD,SAAS,CAAC,sBAAsB,EAChC,EAAE,KAAK,EAAE,cAAc,EAAE,CAC1B,CAAC;IACJ,CAAC;IACD,MAAM,YAAY,GAAG,GAAG,CAAC,YAAuC,CAAC;IACjE,IAAI,OAAO,YAAY,CAAC,OAAO,KAAK,SAAS,EAAE,CAAC;QAC9C,MAAM,IAAI,eAAe,CACvB,wCAAwC,EACxC,SAAS,CAAC,aAAa,EACvB,EAAE,KAAK,EAAE,sBAAsB,EAAE,KAAK,EAAE,YAAY,CAAC,OAAO,EAAE,QAAQ,EAAE,SAAS,EAAE,CACpF,CAAC;IACJ,CAAC;IACD,IAAI,OAAO,YAAY,CAAC,YAAY,KAAK,QAAQ,EAAE,CAAC;QAClD,MAAM,IAAI,eAAe,CACvB,4CAA4C,EAC5C,SAAS,CAAC,aAAa,EACvB,EAAE,KAAK,EAAE,2BAA2B,EAAE,KAAK,EAAE,YAAY,CAAC,YAAY,EAAE,QAAQ,EAAE,QAAQ,EAAE,CAC7F,CAAC;IACJ,CAAC;IACD,qBAAqB,CAAC,YAAY,CAAC,YAAY,EAAE,iBAAiB,EAAE,iBAAiB,EAAE,2BAA2B,CAAC,CAAC;IACpH,IAAI,CAAC,yBAAyB,CAAC,QAAQ,CAAC,YAAY,CAAC,gBAAmC,CAAC,EAAE,CAAC;QAC1F,MAAM,IAAI,eAAe,CACvB,iDAAiD,yBAAyB,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,EACvF,SAAS,CAAC,aAAa,EACvB,EAAE,KAAK,EAAE,+BAA+B,EAAE,KAAK,EAAE,YAAY,CAAC,gBAAgB,EAAE,QAAQ,EAAE,yBAAyB,EAAE,CACtH,CAAC;IACJ,CAAC;IACD,IAAI,CAAC,qBAAqB,CAAC,QAAQ,CAAC,YAAY,CAAC,gBAAmC,CAAC,EAAE,CAAC;QACtF,MAAM,IAAI,eAAe,CACvB,iDAAiD,qBAAqB,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,EACnF,SAAS,CAAC,aAAa,EACvB,EAAE,KAAK,EAAE,+BAA+B,EAAE,KAAK,EAAE,YAAY,CAAC,gBAAgB,EAAE,QAAQ,EAAE,qBAAqB,EAAE,CAClH,CAAC;IACJ,CAAC;IACD,IAAI,OAAO,YAAY,CAAC,QAAQ,KAAK,SAAS,EAAE,CAAC;QAC/C,MAAM,IAAI,eAAe,CACvB,yCAAyC,EACzC,SAAS,CAAC,aAAa,EACvB,EAAE,KAAK,EAAE,uBAAuB,EAAE,KAAK,EAAE,YAAY,CAAC,QAAQ,EAAE,QAAQ,EAAE,SAAS,EAAE,CACtF,CAAC;IACJ,CAAC;IACD,IAAI,YAAY,CAAC,gBAAgB,KAAK,SAAS,EAAE,CAAC;QAChD,IAAI,OAAO,YAAY,CAAC,gBAAgB,KAAK,QAAQ,EAAE,CAAC;YACtD,MAAM,IAAI,eAAe,CACvB,gDAAgD,EAChD,SAAS,CAAC,aAAa,EACvB,EAAE,KAAK,EAAE,+BAA+B,EAAE,KAAK,EAAE,YAAY,CAAC,gBAAgB,EAAE,QAAQ,EAAE,QAAQ,EAAE,CACrG,CAAC;QACJ,CAAC;QACD,IAAI,CAAC,yBAAyB,CAAC,QAAQ,CAAC,YAAY,CAAC,gBAAgB,CAAC,EAAE,CAAC;YACvE,MAAM,IAAI,eAAe,CACvB,iDAAiD,yBAAyB,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,EACvF,SAAS,CAAC,aAAa,EACvB,EAAE,KAAK,EAAE,+BAA+B,EAAE,KAAK,EAAE,YAAY,CAAC,gBAAgB,EAAE,QAAQ,EAAE,yBAAyB,EAAE,CACtH,CAAC;QACJ,CAAC;IACH,CAAC;IACD,IAAI,YAAY,CAAC,wBAAwB,KAAK,SAAS,EAAE,CAAC;QACxD,IAAI,OAAO,YAAY,CAAC,wBAAwB,KAAK,QAAQ,EAAE,CAAC;YAC9D,MAAM,IAAI,eAAe,CACvB,wDAAwD,EACxD,SAAS,CAAC,aAAa,EACvB,EAAE,KAAK,EAAE,uCAAuC,EAAE,KAAK,EAAE,YAAY,CAAC,wBAAwB,EAAE,QAAQ,EAAE,QAAQ,EAAE,CACrH,CAAC;QACJ,CAAC;QACD,IAAI,CAAC,yBAAyB,CAAC,QAAQ,CAAC,YAAY,CAAC,wBAAwB,CAAC,EAAE,CAAC;YAC/E,MAAM,IAAI,eAAe,CACvB,yDAAyD,yBAAyB,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,EAC/F,SAAS,CAAC,aAAa,EACvB,EAAE,KAAK,EAAE,uCAAuC,EAAE,KAAK,EAAE,YAAY,CAAC,wBAAwB,EAAE,QAAQ,EAAE,yBAAyB,EAAE,CACtI,CAAC;QACJ,CAAC;IACH,CAAC;IAED,OAAO,MAAuB,CAAC;AACjC,CAAC;AAED;;GAEG;AACH,MAAM,UAAU,yBAAyB,CAAC,MAAe;IACvD,MAAM,MAAM,GAAa,EAAE,CAAC;IAC5B,MAAM,QAAQ,GAAa,EAAE,CAAC;IAE9B,IAAI,CAAC;QACH,qBAAqB,CAAC,MAAM,CAAC,CAAC;QAC9B,OAAO,EAAE,KAAK,EAAE,IAAI,EAAE,MAAM,EAAE,QAAQ,EAAE,CAAC;IAC3C,CAAC;IAAC,OAAO,GAAG,EAAE,CAAC;QACb,IAAI,GAAG,YAAY,eAAe,EAAE,CAAC;YACnC,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC;QAC3B,CAAC;aAAM,CAAC;YACN,MAAM,CAAC,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,CAAC;QAC3B,CAAC;QACD,OAAO,EAAE,KAAK,EAAE,KAAK,EAAE,MAAM,EAAE,QAAQ,EAAE,CAAC;IAC5C,CAAC;AACH,CAAC;AAED;;GAEG;AACH,MAAM,UAAU,4BAA4B,CAAC,MAA4B;IACvE,IAAI,MAAM,CAAC,KAAK,KAAK,SAAS,EAAE,CAAC;QAC/B,aAAa,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;IAC9B,CAAC;IACD,IAAI,MAAM,CAAC,UAAU,KAAK,SAAS,EAAE,CAAC;QACpC,kBAAkB,CAAC,MAAM,CAAC,UAAU,CAAC,CAAC;IACxC,CAAC;IACD,IAAI,MAAM,CAAC,QAAQ,KAAK,SAAS,EAAE,CAAC;QAClC,gBAAgB,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC;IACpC,CAAC;IACD,IAAI,MAAM,CAAC,IAAI,EAAE,cAAc,KAAK,SAAS,EAAE,CAAC;QAC9C,qBAAqB,CACnB,MAAM,CAAC,IAAI,CAAC,cAAc,EAC1B,mBAAmB,EACnB,mBAAmB,EACnB,qBAAqB,CACtB,CAAC;IACJ,CAAC;IACD,IAAI,MAAM,CAAC,IAAI,EAAE,YAAY,KAAK,SAAS,EAAE,CAAC;QAC5C,qBAAqB,CAAC,MAAM,CAAC,IAAI,CAAC,YAAY,EAAE,mBAAmB,CAAC,CAAC;IACvE,CAAC;IACD,IAAI,MAAM,CAAC,IAAI,EAAE,gBAAgB,KAAK,SAAS,EAAE,CAAC;QAChD,qBAAqB,CAAC,MAAM,CAAC,IAAI,CAAC,gBAAgB,EAAE,uBAAuB,CAAC,CAAC;IAC/E,CAAC;IACD,IAAI,MAAM,CAAC,SAAS,EAAE,KAAK,KAAK,SAAS,EAAE,CAAC;QAC1C,qBAAqB,CAAC,MAAM,CAAC,SAAS,CAAC,KAAK,CAAC,CAAC;IAChD,CAAC;IACD,IAAI,MAAM,CAAC,QAAQ,EAAE,IAAI,KAAK,SAAS,IAAI,CAAC,mBAAmB,CAAC,MAAM,CAAC,QAAQ,CAAC,IAAI,CAAC,EAAE,CAAC;QACtF,MAAM,IAAI,eAAe,CACvB,6CAA6C,EAC7C,SAAS,CAAC,aAAa,EACvB,EAAE,KAAK,EAAE,eAAe,EAAE,KAAK,EAAE,MAAM,CAAC,QAAQ,CAAC,IAAI,EAAE,QAAQ,EAAE,CAAC,MAAM,EAAE,eAAe,EAAE,QAAQ,CAAC,EAAE,CACvG,CAAC;IACJ,CAAC;IACD,IAAI,MAAM,CAAC,QAAQ,EAAE,aAAa,KAAK,SAAS,EAAE,CAAC;QACjD,qBAAqB,CACnB,MAAM,CAAC,QAAQ,CAAC,aAAa,EAC7B,kBAAkB,EAClB,kBAAkB,EAClB,wBAAwB,CACzB,CAAC;IACJ,CAAC;IACD,uCAAuC;IACvC,IAAI,MAAM,CAAC,SAAS,EAAE,GAAG,KAAK,SAAS,IAAI,MAAM,CAAC,SAAS,EAAE,MAAM,KAAK,SAAS,EAAE,CAAC;QAClF,IAAI,MAAM,CAAC,SAAS,CAAC,GAAG,GAAG,MAAM,CAAC,SAAS,CAAC,MAAM,EAAE,CAAC;YACnD,MAAM,IAAI,eAAe,CACvB,kBAAkB,cAAc,CAAC,MAAM,CAAC,SAAS,CAAC,GAAG,CAAC,kCAAkC,cAAc,CAAC,MAAM,CAAC,SAAS,CAAC,MAAM,CAAC,GAAG,EAClI,SAAS,CAAC,aAAa,EACvB,EAAE,KAAK,EAAE,eAAe,EAAE,KAAK,EAAE,MAAM,CAAC,SAAS,CAAC,GAAG,EAAE,QAAQ,EAAE,MAAM,MAAM,CAAC,SAAS,CAAC,MAAM,EAAE,EAAE,CACnG,CAAC;QACJ,CAAC;IACH,CAAC;IACD,+BAA+B;IAC/B,IAAI,MAAM,CAAC,YAAY,EAAE,YAAY,KAAK,SAAS,EAAE,CAAC;QACpD,qBAAqB,CACnB,MAAM,CAAC,YAAY,CAAC,YAAY,EAChC,iBAAiB,EACjB,iBAAiB,EACjB,2BAA2B,CAC5B,CAAC;IACJ,CAAC;IACD,IAAI,MAAM,CAAC,YAAY,EAAE,gBAAgB,KAAK,SAAS,EAAE,CAAC;QACxD,IAAI,CAAC,yBAAyB,CAAC,QAAQ,CAAC,MAAM,CAAC,YAAY,CAAC,gBAAyB,CAAC,EAAE,CAAC;YACvF,MAAM,IAAI,eAAe,CACvB,iDAAiD,yBAAyB,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,EACvF,SAAS,CAAC,aAAa,EACvB,EAAE,KAAK,EAAE,+BAA+B,EAAE,KAAK,EAAE,MAAM,CAAC,YAAY,CAAC,gBAAgB,EAAE,QAAQ,EAAE,yBAAyB,EAAE,CAC7H,CAAC;QACJ,CAAC;IACH,CAAC;IACD,IAAI,MAAM,CAAC,YAAY,EAAE,gBAAgB,KAAK,SAAS,EAAE,CAAC;QACxD,IAAI,CAAC,qBAAqB,CAAC,QAAQ,CAAC,MAAM,CAAC,YAAY,CAAC,gBAAyB,CAAC,EAAE,CAAC;YACnF,MAAM,IAAI,eAAe,CACvB,iDAAiD,qBAAqB,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,EACnF,SAAS,CAAC,aAAa,EACvB,EAAE,KAAK,EAAE,+BAA+B,EAAE,KAAK,EAAE,MAAM,CAAC,YAAY,CAAC,gBAAgB,EAAE,QAAQ,EAAE,qBAAqB,EAAE,CACzH,CAAC;QACJ,CAAC;IACH,CAAC;IACD,IAAI,MAAM,CAAC,YAAY,EAAE,gBAAgB,KAAK,SAAS,EAAE,CAAC;QACxD,IAAI,CAAC,yBAAyB,CAAC,QAAQ,CAAC,MAAM,CAAC,YAAY,CAAC,gBAAgB,CAAC,EAAE,CAAC;YAC9E,MAAM,IAAI,eAAe,CACvB,iDAAiD,yBAAyB,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,EACvF,SAAS,CAAC,aAAa,EACvB,EAAE,KAAK,EAAE,+BAA+B,EAAE,KAAK,EAAE,MAAM,CAAC,YAAY,CAAC,gBAAgB,EAAE,QAAQ,EAAE,yBAAyB,EAAE,CAC7H,CAAC;QACJ,CAAC;IACH,CAAC;IACD,IAAI,MAAM,CAAC,YAAY,EAAE,wBAAwB,KAAK,SAAS,EAAE,CAAC;QAChE,IAAI,CAAC,yBAAyB,CAAC,QAAQ,CAAC,MAAM,CAAC,YAAY,CAAC,wBAAwB,CAAC,EAAE,CAAC;YACtF,MAAM,IAAI,eAAe,CACvB,yDAAyD,yBAAyB,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,EAC/F,SAAS,CAAC,aAAa,EACvB,EAAE,KAAK,EAAE,uCAAuC,EAAE,KAAK,EAAE,MAAM,CAAC,YAAY,CAAC,wBAAwB,EAAE,QAAQ,EAAE,yBAAyB,EAAE,CAC7I,CAAC;QACJ,CAAC;IACH,CAAC;AACH,CAAC"}
@@ -0,0 +1,150 @@
1
+ /**
2
+ * Document Sync Adapter Utilities
3
+ *
4
+ * Shared field mapping logic for converting between Stoneforge documents and
5
+ * external document representations (e.g., Notion pages, Obsidian notes).
6
+ *
7
+ * These utilities are provider-agnostic — they handle the common conversion
8
+ * logic that all document sync providers need.
9
+ *
10
+ * Key functions:
11
+ * - documentToExternalDocumentInput: Convert a Stoneforge Document → ExternalDocumentInput for push
12
+ * - externalDocumentToDocumentUpdates: Convert an ExternalDocument → Partial<Document> for pull
13
+ * - diffDocumentUpdates: Return only changed fields between existing and updated document
14
+ * - computeExternalDocumentHash: Deterministic hash for change detection
15
+ */
16
+ import type { Document, ContentType, DocumentCategory, Element, ElementId, Dependency, DependencyType } from '@stoneforge/core';
17
+ import type { ExternalDocument, ExternalDocumentInput } from '@stoneforge/core';
18
+ /**
19
+ * Document categories that are system-managed and should be excluded from
20
+ * external sync. These documents are structural (task descriptions, message
21
+ * content) and are synced through their parent element's sync adapter.
22
+ */
23
+ export declare const SYSTEM_CATEGORIES: ReadonlySet<DocumentCategory>;
24
+ /**
25
+ * Checks whether a document category is a system category that should
26
+ * be excluded from document sync.
27
+ */
28
+ export declare function isSystemCategory(category: DocumentCategory): boolean;
29
+ /**
30
+ * Checks whether a document should be included in external sync operations
31
+ * (link-all, push, pull). A document is syncable if:
32
+ * - It does not have a system category (task-description, message-content)
33
+ * - It has a non-empty title (null, undefined, or whitespace-only titles are excluded)
34
+ *
35
+ * Documents without titles are typically system-generated (messages, task descriptions)
36
+ * that happen to not have the system category set, or scratch documents. They all
37
+ * slugify to "untitled.md" and overwrite each other, so they must be excluded.
38
+ */
39
+ export declare function isSyncableDocument(doc: Document): boolean;
40
+ /**
41
+ * Maps Stoneforge ContentType to external document content type.
42
+ *
43
+ * Stoneforge uses 'markdown', 'text', and 'json'.
44
+ * External systems use 'markdown', 'text', and 'html'.
45
+ * JSON content is mapped to 'text' for external systems since most
46
+ * document providers don't have a native JSON content type.
47
+ */
48
+ export declare function mapContentTypeToExternal(contentType: ContentType): 'markdown' | 'html' | 'text';
49
+ /**
50
+ * Maps external document content type to Stoneforge ContentType.
51
+ *
52
+ * External systems use 'markdown', 'text', and 'html'.
53
+ * HTML content is mapped to 'text' since Stoneforge doesn't have an HTML
54
+ * content type — the content is stored as-is, just categorized as text.
55
+ */
56
+ export declare function mapContentTypeFromExternal(contentType: 'markdown' | 'html' | 'text'): ContentType;
57
+ /**
58
+ * Minimal API interface for resolving library paths.
59
+ * This avoids coupling to the full QuarryAPI type while providing
60
+ * the dependency and element lookup methods needed for path resolution.
61
+ */
62
+ export interface LibraryPathAPI {
63
+ /** Get all dependencies for an element, optionally filtered by type */
64
+ getDependencies(id: ElementId, types?: DependencyType[]): Promise<Dependency[]>;
65
+ /** Get a single element by ID */
66
+ get<T extends Element>(id: ElementId): Promise<T | null>;
67
+ }
68
+ /**
69
+ * Resolves the library path for a document by querying its parent-child
70
+ * dependencies. Builds a hierarchical path from the root library down
71
+ * to the document's immediate parent library.
72
+ *
73
+ * For example, if a document belongs to library "API Reference" which
74
+ * is a child of library "Documentation", the returned path would be
75
+ * "documentation/api-reference".
76
+ *
77
+ * Design decisions:
78
+ * - If a document belongs to multiple libraries, the first one found is used
79
+ * - Library names are slugified for directory names
80
+ * - If the document has no library parent, returns undefined
81
+ *
82
+ * @param api - API for querying dependencies and elements
83
+ * @param documentId - The document's element ID
84
+ * @returns The slugified library path (e.g., 'documentation/api-reference'), or undefined if not in a library
85
+ */
86
+ export declare function resolveDocumentLibraryPath(api: LibraryPathAPI, documentId: ElementId): Promise<string | undefined>;
87
+ /**
88
+ * Batch-resolves library paths for multiple documents.
89
+ * More efficient than calling resolveDocumentLibraryPath individually
90
+ * since it can reuse cached library lookups.
91
+ *
92
+ * @param api - API for querying dependencies and elements
93
+ * @param documentIds - Array of document element IDs
94
+ * @returns Map from document ID to library path (undefined entries omitted)
95
+ */
96
+ export declare function resolveDocumentLibraryPaths(api: LibraryPathAPI, documentIds: ElementId[]): Promise<Map<string, string>>;
97
+ /**
98
+ * Converts a Stoneforge Document into an ExternalDocumentInput for
99
+ * creating/updating a page in an external system.
100
+ *
101
+ * Handles:
102
+ * - Title mapping (1:1, falls back to empty string if undefined)
103
+ * - Content mapping (1:1)
104
+ * - ContentType mapping (markdown/text → markdown/text, json → text)
105
+ * - Optional library path for directory-based organization
106
+ *
107
+ * @param doc - The Stoneforge document to convert
108
+ * @param libraryPath - Optional pre-computed library path for the document
109
+ * @returns ExternalDocumentInput ready for the provider adapter
110
+ */
111
+ export declare function documentToExternalDocumentInput(doc: Document, libraryPath?: string): ExternalDocumentInput;
112
+ /**
113
+ * Converts an ExternalDocument into a partial Document update object for
114
+ * applying external changes to a local Stoneforge document.
115
+ *
116
+ * Handles:
117
+ * - Title mapping (1:1)
118
+ * - Content mapping (1:1)
119
+ * - ContentType mapping (markdown/text/html → markdown/text/text)
120
+ *
121
+ * If existingDoc is provided, only changed fields are returned (diff mode).
122
+ * If existingDoc is undefined, all mappable fields are returned (create mode).
123
+ *
124
+ * @param externalDoc - The external document to convert
125
+ * @param existingDoc - The existing local document (undefined for new documents)
126
+ * @returns Partial<Document> with only the changed fields (or all fields if no existingDoc)
127
+ */
128
+ export declare function externalDocumentToDocumentUpdates(externalDoc: ExternalDocument, existingDoc?: Document): Partial<Document>;
129
+ /**
130
+ * Compares a full update against an existing document and returns only
131
+ * the fields that actually changed.
132
+ *
133
+ * This prevents unnecessary updates when pulling changes from external
134
+ * systems where the data hasn't actually changed.
135
+ *
136
+ * Compared fields: title, content, contentType, category, tags
137
+ */
138
+ export declare function diffDocumentUpdates(existing: Document, updates: Partial<Document>): Partial<Document>;
139
+ /**
140
+ * Computes a deterministic hash of an ExternalDocument for change detection.
141
+ *
142
+ * The hash is based on the document's title, content, and contentType.
143
+ * Used by the sync engine to detect whether an external document has
144
+ * changed since the last sync, avoiding unnecessary pull operations.
145
+ *
146
+ * @param doc - The external document to hash
147
+ * @returns A hex-encoded SHA-256 hash string
148
+ */
149
+ export declare function computeExternalDocumentHash(doc: ExternalDocument): string;
150
+ //# sourceMappingURL=document-sync-adapter.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"document-sync-adapter.d.ts","sourceRoot":"","sources":["../../../src/external-sync/adapters/document-sync-adapter.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;GAcG;AAGH,OAAO,KAAK,EACV,QAAQ,EACR,WAAW,EACX,gBAAgB,EAChB,OAAO,EACP,SAAS,EACT,UAAU,EACV,cAAc,EACf,MAAM,kBAAkB,CAAC;AAC1B,OAAO,KAAK,EAAE,gBAAgB,EAAE,qBAAqB,EAAE,MAAM,kBAAkB,CAAC;AAMhF;;;;GAIG;AACH,eAAO,MAAM,iBAAiB,EAAE,WAAW,CAAC,gBAAgB,CAG1D,CAAC;AAEH;;;GAGG;AACH,wBAAgB,gBAAgB,CAAC,QAAQ,EAAE,gBAAgB,GAAG,OAAO,CAEpE;AAED;;;;;;;;;GASG;AACH,wBAAgB,kBAAkB,CAAC,GAAG,EAAE,QAAQ,GAAG,OAAO,CAIzD;AAMD;;;;;;;GAOG;AACH,wBAAgB,wBAAwB,CACtC,WAAW,EAAE,WAAW,GACvB,UAAU,GAAG,MAAM,GAAG,MAAM,CAY9B;AAED;;;;;;GAMG;AACH,wBAAgB,0BAA0B,CACxC,WAAW,EAAE,UAAU,GAAG,MAAM,GAAG,MAAM,GACxC,WAAW,CAYb;AAkBD;;;;GAIG;AACH,MAAM,WAAW,cAAc;IAC7B,uEAAuE;IACvE,eAAe,CAAC,EAAE,EAAE,SAAS,EAAE,KAAK,CAAC,EAAE,cAAc,EAAE,GAAG,OAAO,CAAC,UAAU,EAAE,CAAC,CAAC;IAChF,iCAAiC;IACjC,GAAG,CAAC,CAAC,SAAS,OAAO,EAAE,EAAE,EAAE,SAAS,GAAG,OAAO,CAAC,CAAC,GAAG,IAAI,CAAC,CAAC;CAC1D;AAqBD;;;;;;;;;;;;;;;;;GAiBG;AACH,wBAAsB,0BAA0B,CAC9C,GAAG,EAAE,cAAc,EACnB,UAAU,EAAE,SAAS,GACpB,OAAO,CAAC,MAAM,GAAG,SAAS,CAAC,CAuD7B;AAED;;;;;;;;GAQG;AACH,wBAAsB,2BAA2B,CAC/C,GAAG,EAAE,cAAc,EACnB,WAAW,EAAE,SAAS,EAAE,GACvB,OAAO,CAAC,GAAG,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC,CAW9B;AAMD;;;;;;;;;;;;;GAaG;AACH,wBAAgB,+BAA+B,CAC7C,GAAG,EAAE,QAAQ,EACb,WAAW,CAAC,EAAE,MAAM,GACnB,qBAAqB,CASvB;AAMD;;;;;;;;;;;;;;;GAeG;AACH,wBAAgB,iCAAiC,CAC/C,WAAW,EAAE,gBAAgB,EAC7B,WAAW,CAAC,EAAE,QAAQ,GACrB,OAAO,CAAC,QAAQ,CAAC,CAgBnB;AAMD;;;;;;;;GAQG;AACH,wBAAgB,mBAAmB,CACjC,QAAQ,EAAE,QAAQ,EAClB,OAAO,EAAE,OAAO,CAAC,QAAQ,CAAC,GACzB,OAAO,CAAC,QAAQ,CAAC,CA8BnB;AAMD;;;;;;;;;GASG;AACH,wBAAgB,2BAA2B,CAAC,GAAG,EAAE,gBAAgB,GAAG,MAAM,CAQzE"}