@vibe-agent-toolkit/resources 0.1.3 → 0.1.4

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 (87) hide show
  1. package/README.md +0 -17
  2. package/dist/collection-matcher.d.ts +63 -0
  3. package/dist/collection-matcher.d.ts.map +1 -0
  4. package/dist/collection-matcher.js +127 -0
  5. package/dist/collection-matcher.js.map +1 -0
  6. package/dist/config-parser.d.ts +63 -0
  7. package/dist/config-parser.d.ts.map +1 -0
  8. package/dist/config-parser.js +113 -0
  9. package/dist/config-parser.js.map +1 -0
  10. package/dist/frontmatter-validator.d.ts +12 -2
  11. package/dist/frontmatter-validator.d.ts.map +1 -1
  12. package/dist/frontmatter-validator.js +174 -18
  13. package/dist/frontmatter-validator.js.map +1 -1
  14. package/dist/index.d.ts +3 -3
  15. package/dist/index.d.ts.map +1 -1
  16. package/dist/index.js +1 -1
  17. package/dist/index.js.map +1 -1
  18. package/dist/link-validator.d.ts +25 -3
  19. package/dist/link-validator.d.ts.map +1 -1
  20. package/dist/link-validator.js +52 -40
  21. package/dist/link-validator.js.map +1 -1
  22. package/dist/multi-schema-validator.d.ts +42 -0
  23. package/dist/multi-schema-validator.d.ts.map +1 -0
  24. package/dist/multi-schema-validator.js +107 -0
  25. package/dist/multi-schema-validator.js.map +1 -0
  26. package/dist/pattern-expander.d.ts +63 -0
  27. package/dist/pattern-expander.d.ts.map +1 -0
  28. package/dist/pattern-expander.js +93 -0
  29. package/dist/pattern-expander.js.map +1 -0
  30. package/dist/resource-registry.d.ts +87 -6
  31. package/dist/resource-registry.d.ts.map +1 -1
  32. package/dist/resource-registry.js +215 -46
  33. package/dist/resource-registry.js.map +1 -1
  34. package/dist/schema-assignment.d.ts +49 -0
  35. package/dist/schema-assignment.d.ts.map +1 -0
  36. package/dist/schema-assignment.js +95 -0
  37. package/dist/schema-assignment.js.map +1 -0
  38. package/dist/schemas/project-config.d.ts +254 -0
  39. package/dist/schemas/project-config.d.ts.map +1 -0
  40. package/dist/schemas/project-config.js +57 -0
  41. package/dist/schemas/project-config.js.map +1 -0
  42. package/dist/schemas/resource-metadata.d.ts +3 -0
  43. package/dist/schemas/resource-metadata.d.ts.map +1 -1
  44. package/dist/schemas/resource-metadata.js +2 -0
  45. package/dist/schemas/resource-metadata.js.map +1 -1
  46. package/dist/schemas/validation-result.d.ts +2 -26
  47. package/dist/schemas/validation-result.d.ts.map +1 -1
  48. package/dist/schemas/validation-result.js +4 -20
  49. package/dist/schemas/validation-result.js.map +1 -1
  50. package/dist/types/resource-parser.d.ts +53 -0
  51. package/dist/types/resource-parser.d.ts.map +1 -0
  52. package/dist/types/resource-parser.js +233 -0
  53. package/dist/types/resource-parser.js.map +1 -0
  54. package/dist/types/resource-path-utils.d.ts +43 -0
  55. package/dist/types/resource-path-utils.d.ts.map +1 -0
  56. package/dist/types/resource-path-utils.js +89 -0
  57. package/dist/types/resource-path-utils.js.map +1 -0
  58. package/dist/types/resources.d.ts +140 -0
  59. package/dist/types/resources.d.ts.map +1 -0
  60. package/dist/types/resources.js +58 -0
  61. package/dist/types/resources.js.map +1 -0
  62. package/dist/types.d.ts +14 -2
  63. package/dist/types.d.ts.map +1 -1
  64. package/dist/types.js +17 -0
  65. package/dist/types.js.map +1 -1
  66. package/dist/utils.d.ts +18 -0
  67. package/dist/utils.d.ts.map +1 -1
  68. package/dist/utils.js +39 -0
  69. package/dist/utils.js.map +1 -1
  70. package/package.json +2 -2
  71. package/src/collection-matcher.ts +148 -0
  72. package/src/config-parser.ts +125 -0
  73. package/src/frontmatter-validator.ts +202 -18
  74. package/src/index.ts +7 -2
  75. package/src/link-validator.ts +70 -43
  76. package/src/multi-schema-validator.ts +128 -0
  77. package/src/pattern-expander.ts +100 -0
  78. package/src/resource-registry.ts +322 -54
  79. package/src/schema-assignment.ts +119 -0
  80. package/src/schemas/project-config.ts +71 -0
  81. package/src/schemas/resource-metadata.ts +2 -0
  82. package/src/schemas/validation-result.ts +4 -23
  83. package/src/types/resource-parser.ts +302 -0
  84. package/src/types/resource-path-utils.ts +102 -0
  85. package/src/types/resources.ts +211 -0
  86. package/src/types.ts +81 -1
  87. package/src/utils.ts +43 -0
@@ -10,6 +10,7 @@
10
10
  import path from 'node:path';
11
11
  import { crawlDirectory } from '@vibe-agent-toolkit/utils';
12
12
  import { calculateChecksum } from './checksum.js';
13
+ import { getCollectionsForFile } from './collection-matcher.js';
13
14
  import { validateFrontmatter } from './frontmatter-validator.js';
14
15
  import { parseMarkdown } from './link-parser.js';
15
16
  import { validateLink } from './link-validator.js';
@@ -46,16 +47,24 @@ import { matchesGlobPattern, splitHrefAnchor } from './utils.js';
46
47
  export class ResourceRegistry {
47
48
  /** Optional root directory for resources */
48
49
  rootDir;
50
+ /** Optional project configuration (enables collection support) */
51
+ config;
52
+ /** Optional git tracker for efficient git-ignore checking */
53
+ gitTracker;
49
54
  resourcesByPath = new Map();
50
55
  resourcesById = new Map();
51
56
  resourcesByName = new Map();
52
57
  resourcesByChecksum = new Map();
53
- validateOnAdd;
54
58
  constructor(options) {
55
59
  if (options?.rootDir !== undefined) {
56
60
  this.rootDir = options.rootDir;
57
61
  }
58
- this.validateOnAdd = options?.validateOnAdd ?? false;
62
+ if (options?.config !== undefined) {
63
+ this.config = options.config;
64
+ }
65
+ if (options?.gitTracker !== undefined) {
66
+ this.gitTracker = options.gitTracker;
67
+ }
59
68
  }
60
69
  /**
61
70
  * Create an empty registry with a root directory.
@@ -137,7 +146,6 @@ export class ResourceRegistry {
137
146
  * Add a single resource to the registry.
138
147
  *
139
148
  * Parses the markdown file, generates a unique ID, and stores the resource.
140
- * If validateOnAdd is true, validates the resource immediately.
141
149
  *
142
150
  * @param filePath - Path to the markdown file (will be normalized to absolute)
143
151
  * @returns The parsed resource metadata
@@ -161,6 +169,10 @@ export class ResourceRegistry {
161
169
  const stats = await fs.stat(absolutePath);
162
170
  // Calculate checksum eagerly
163
171
  const checksum = await calculateChecksum(absolutePath);
172
+ // Determine collections if config is present
173
+ const collections = this.config?.resources?.collections
174
+ ? getCollectionsForFile(absolutePath, this.config.resources.collections)
175
+ : undefined;
164
176
  // Create resource metadata
165
177
  const resource = {
166
178
  id,
@@ -173,19 +185,10 @@ export class ResourceRegistry {
173
185
  estimatedTokenCount: parseResult.estimatedTokenCount,
174
186
  modifiedAt: stats.mtime,
175
187
  checksum,
188
+ ...(collections !== undefined && collections.length > 0 && { collections }),
176
189
  };
177
190
  // Index the resource
178
191
  this.indexResource(resource);
179
- // Validate if requested
180
- if (this.validateOnAdd) {
181
- const headingsByFile = this.buildHeadingsByFileMap();
182
- for (const link of resource.links) {
183
- const issue = await validateLink(link, absolutePath, headingsByFile);
184
- if (issue) {
185
- throw new Error(`Validation failed: ${issue.message}`);
186
- }
187
- }
188
- }
189
192
  return resource;
190
193
  }
191
194
  /**
@@ -237,6 +240,132 @@ export class ResourceRegistry {
237
240
  // Add all found files
238
241
  return await this.addResources(files);
239
242
  }
243
+ /**
244
+ * Check for YAML parsing errors in all resources.
245
+ * @private
246
+ */
247
+ collectYamlErrors() {
248
+ const issues = [];
249
+ for (const resource of this.resourcesByPath.values()) {
250
+ if (resource.frontmatterError) {
251
+ issues.push({
252
+ resourcePath: resource.filePath,
253
+ line: 1,
254
+ type: 'frontmatter_invalid_yaml',
255
+ link: '',
256
+ message: `Invalid YAML syntax in frontmatter: ${resource.frontmatterError}`,
257
+ });
258
+ }
259
+ }
260
+ return issues;
261
+ }
262
+ /**
263
+ * Validate all links in all resources.
264
+ * @private
265
+ */
266
+ async validateAllLinks(headingsByFile, skipGitIgnoreCheck) {
267
+ const issues = [];
268
+ for (const resource of this.resourcesByPath.values()) {
269
+ for (const link of resource.links) {
270
+ // Only pass options if projectRoot is defined (exactOptionalPropertyTypes requirement)
271
+ const validateOptions = this.rootDir === undefined
272
+ ? { skipGitIgnoreCheck }
273
+ : {
274
+ projectRoot: this.rootDir,
275
+ skipGitIgnoreCheck,
276
+ ...(this.gitTracker !== undefined && { gitTracker: this.gitTracker })
277
+ };
278
+ const issue = await validateLink(link, resource.filePath, headingsByFile, validateOptions);
279
+ if (issue) {
280
+ issues.push(issue);
281
+ }
282
+ }
283
+ }
284
+ return issues;
285
+ }
286
+ /**
287
+ * Validate frontmatter against a JSON Schema.
288
+ * @private
289
+ */
290
+ validateAllFrontmatter(schema, mode = 'strict') {
291
+ const issues = [];
292
+ for (const resource of this.resourcesByPath.values()) {
293
+ const frontmatterIssues = validateFrontmatter(resource.frontmatter, schema, resource.filePath, mode);
294
+ issues.push(...frontmatterIssues);
295
+ }
296
+ return issues;
297
+ }
298
+ /**
299
+ * Validate frontmatter against per-collection schemas.
300
+ * @private
301
+ */
302
+ async validateCollectionFrontmatter() {
303
+ const issues = [];
304
+ // Skip if no config
305
+ if (!this.config?.resources?.collections) {
306
+ return issues;
307
+ }
308
+ const fsPromises = await import('node:fs/promises');
309
+ for (const resource of this.resourcesByPath.values()) {
310
+ // Skip if resource has no collections
311
+ if (!resource.collections || resource.collections.length === 0) {
312
+ continue;
313
+ }
314
+ // Validate against each collection's schema
315
+ const collectionIssues = await this.validateResourceCollectionSchemas(resource, fsPromises);
316
+ issues.push(...collectionIssues);
317
+ }
318
+ return issues;
319
+ }
320
+ /**
321
+ * Validate a single resource against its collection schemas.
322
+ * @private
323
+ */
324
+ async validateResourceCollectionSchemas(resource, fsModule) {
325
+ const issues = [];
326
+ if (!resource.collections || !this.config?.resources?.collections) {
327
+ return issues;
328
+ }
329
+ for (const collectionId of resource.collections) {
330
+ const collection = this.config.resources.collections[collectionId];
331
+ // Skip if collection has no validation or no schema
332
+ if (!collection?.validation?.frontmatterSchema) {
333
+ continue;
334
+ }
335
+ const collectionIssues = await this.validateAgainstCollectionSchema(resource, collection.validation, fsModule);
336
+ issues.push(...collectionIssues);
337
+ }
338
+ return issues;
339
+ }
340
+ /**
341
+ * Validate resource frontmatter against a specific collection schema.
342
+ * @private
343
+ */
344
+ async validateAgainstCollectionSchema(resource, validation, fsModule) {
345
+ if (!validation?.frontmatterSchema) {
346
+ return [];
347
+ }
348
+ const schemaPath = path.resolve(this.rootDir ?? process.cwd(), validation.frontmatterSchema);
349
+ try {
350
+ const schemaContent = await fsModule.readFile(schemaPath, 'utf-8');
351
+ const schema = JSON.parse(schemaContent);
352
+ // Determine validation mode (default to permissive)
353
+ const mode = validation.mode ?? 'permissive';
354
+ // Validate frontmatter
355
+ return validateFrontmatter(resource.frontmatter, schema, resource.filePath, mode, schemaPath);
356
+ }
357
+ catch (error) {
358
+ // Handle missing or invalid schema files gracefully
359
+ const errorMessage = error instanceof Error ? error.message : String(error);
360
+ return [{
361
+ resourcePath: resource.filePath,
362
+ line: 1,
363
+ type: 'frontmatter_schema_error',
364
+ link: '',
365
+ message: `Failed to load or parse frontmatter schema '${validation.frontmatterSchema}': ${errorMessage}`,
366
+ }];
367
+ }
368
+ }
240
369
  /**
241
370
  * Validate all links and optionally frontmatter in all resources in the registry.
242
371
  *
@@ -262,10 +391,9 @@ export class ResourceRegistry {
262
391
  *
263
392
  * console.log(`Passed: ${result.passed}`);
264
393
  * console.log(`Errors: ${result.errorCount}`);
265
- * console.log(`Warnings: ${result.warningCount}`);
266
394
  * console.log(`Total resources: ${result.totalResources}`);
267
395
  * for (const issue of result.issues) {
268
- * console.log(`${issue.severity}: ${issue.message}`);
396
+ * console.log(`${issue.message}`);
269
397
  * }
270
398
  * ```
271
399
  */
@@ -276,38 +404,20 @@ export class ResourceRegistry {
276
404
  // Collect all validation issues
277
405
  const issues = [];
278
406
  // Check for YAML parsing errors first
279
- for (const resource of this.resourcesByPath.values()) {
280
- if (resource.frontmatterError) {
281
- issues.push({
282
- severity: 'error',
283
- resourcePath: resource.filePath,
284
- line: 1,
285
- type: 'frontmatter_invalid_yaml',
286
- link: '',
287
- message: `Invalid YAML syntax in frontmatter: ${resource.frontmatterError}`,
288
- });
289
- }
290
- }
407
+ issues.push(...this.collectYamlErrors());
291
408
  // Validate each link in each resource
292
- for (const resource of this.resourcesByPath.values()) {
293
- for (const link of resource.links) {
294
- const issue = await validateLink(link, resource.filePath, headingsByFile);
295
- if (issue) {
296
- issues.push(issue);
297
- }
298
- }
299
- }
300
- // Frontmatter validation (if schema provided)
409
+ const linkIssues = await this.validateAllLinks(headingsByFile, options?.skipGitIgnoreCheck ?? false);
410
+ issues.push(...linkIssues);
411
+ // Per-collection frontmatter validation
412
+ const collectionFrontmatterIssues = await this.validateCollectionFrontmatter();
413
+ issues.push(...collectionFrontmatterIssues);
414
+ // Global frontmatter validation (if schema provided)
301
415
  if (options?.frontmatterSchema) {
302
- for (const resource of this.resourcesByPath.values()) {
303
- const frontmatterIssues = validateFrontmatter(resource.frontmatter, options.frontmatterSchema, resource.filePath);
304
- issues.push(...frontmatterIssues);
305
- }
416
+ const mode = options.validationMode ?? 'strict';
417
+ issues.push(...this.validateAllFrontmatter(options.frontmatterSchema, mode));
306
418
  }
307
- // Count issues by severity
308
- const errorCount = issues.filter((i) => i.severity === 'error').length;
309
- const warningCount = issues.filter((i) => i.severity === 'warning').length;
310
- const infoCount = issues.filter((i) => i.severity === 'info').length;
419
+ // Count issues (all are errors now)
420
+ const errorCount = issues.length;
311
421
  // Count links by type
312
422
  const linksByType = {};
313
423
  for (const resource of this.resourcesByPath.values()) {
@@ -322,8 +432,6 @@ export class ResourceRegistry {
322
432
  linksByType,
323
433
  issues,
324
434
  errorCount,
325
- warningCount,
326
- infoCount,
327
435
  passed: errorCount === 0,
328
436
  durationMs,
329
437
  timestamp: new Date(),
@@ -595,6 +703,67 @@ export class ResourceRegistry {
595
703
  linksByType,
596
704
  };
597
705
  }
706
+ /**
707
+ * Get collection-level statistics.
708
+ *
709
+ * Returns undefined if collections are not configured in the project config.
710
+ *
711
+ * @returns Collection statistics or undefined if no collections configured
712
+ *
713
+ * @example
714
+ * ```typescript
715
+ * const collectionStats = registry.getCollectionStats();
716
+ * if (collectionStats) {
717
+ * console.log(`Total collections: ${collectionStats.totalCollections}`);
718
+ * console.log(`Resources in collections: ${collectionStats.resourcesInCollections}`);
719
+ * for (const [id, stat] of Object.entries(collectionStats.collections)) {
720
+ * console.log(`${id}: ${stat.resourceCount} resources`);
721
+ * }
722
+ * }
723
+ * ```
724
+ */
725
+ getCollectionStats() {
726
+ if (!this.config?.resources?.collections) {
727
+ return undefined;
728
+ }
729
+ // Group resources by collection
730
+ const collectionMap = new Map();
731
+ for (const resource of this.resourcesByPath.values()) {
732
+ if (resource.collections) {
733
+ for (const collectionId of resource.collections) {
734
+ const resources = collectionMap.get(collectionId) ?? [];
735
+ resources.push(resource);
736
+ collectionMap.set(collectionId, resources);
737
+ }
738
+ }
739
+ }
740
+ // Build stats per collection
741
+ const collections = {};
742
+ for (const [id, resources] of collectionMap.entries()) {
743
+ const collection = this.config.resources.collections[id];
744
+ const stat = {
745
+ resourceCount: resources.length,
746
+ hasSchema: !!collection?.validation?.frontmatterSchema,
747
+ };
748
+ // Only add validationMode if it's defined (exactOptionalPropertyTypes requirement)
749
+ if (collection?.validation?.mode !== undefined) {
750
+ stat.validationMode = collection.validation.mode;
751
+ }
752
+ collections[id] = stat;
753
+ }
754
+ // Calculate total unique resources in collections (a resource may be in multiple collections)
755
+ const uniqueResourcesInCollections = new Set();
756
+ for (const resource of this.resourcesByPath.values()) {
757
+ if (resource.collections && resource.collections.length > 0) {
758
+ uniqueResourcesInCollections.add(resource.filePath);
759
+ }
760
+ }
761
+ return {
762
+ totalCollections: Object.keys(this.config.resources.collections).length,
763
+ resourcesInCollections: uniqueResourcesInCollections.size,
764
+ collections,
765
+ };
766
+ }
598
767
  /**
599
768
  * Generate a unique ID from a file path.
600
769
  *
@@ -1 +1 @@
1
- {"version":3,"file":"resource-registry.js","sourceRoot":"","sources":["../src/resource-registry.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"resource-registry.js","sourceRoot":"","sources":["../src/resource-registry.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AAGH,OAAO,IAAI,MAAM,WAAW,CAAC;AAE7B,OAAO,EAAE,cAAc,EAA2D,MAAM,2BAA2B,CAAC;AAEpH,OAAO,EAAE,iBAAiB,EAAE,MAAM,eAAe,CAAC;AAClD,OAAO,EAAE,qBAAqB,EAAE,MAAM,yBAAyB,CAAC;AAChE,OAAO,EAAE,mBAAmB,EAAE,MAAM,4BAA4B,CAAC;AACjE,OAAO,EAAE,aAAa,EAAE,MAAM,kBAAkB,CAAC;AACjD,OAAO,EAAE,YAAY,EAAE,MAAM,qBAAqB,CAAC;AAMnD,OAAO,EAAE,kBAAkB,EAAE,eAAe,EAAE,MAAM,YAAY,CAAC;AAyEjE;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA4BG;AACH,MAAM,OAAO,gBAAgB;IAC3B,4CAA4C;IACnC,OAAO,CAAU;IAE1B,kEAAkE;IACzD,MAAM,CAAiB;IAEhC,6DAA6D;IACpD,UAAU,CAAc;IAEhB,eAAe,GAAkC,IAAI,GAAG,EAAE,CAAC;IAC3D,aAAa,GAAkC,IAAI,GAAG,EAAE,CAAC;IACzD,eAAe,GAAoC,IAAI,GAAG,EAAE,CAAC;IAC7D,mBAAmB,GAAoC,IAAI,GAAG,EAAE,CAAC;IAElF,YAAY,OAAiC;QAC3C,IAAI,OAAO,EAAE,OAAO,KAAK,SAAS,EAAE,CAAC;YACnC,IAAI,CAAC,OAAO,GAAG,OAAO,CAAC,OAAO,CAAC;QACjC,CAAC;QACD,IAAI,OAAO,EAAE,MAAM,KAAK,SAAS,EAAE,CAAC;YAClC,IAAI,CAAC,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC;QAC/B,CAAC;QACD,IAAI,OAAO,EAAE,UAAU,KAAK,SAAS,EAAE,CAAC;YACtC,IAAI,CAAC,UAAU,GAAG,OAAO,CAAC,UAAU,CAAC;QACvC,CAAC;IACH,CAAC;IAED;;;;;;;;;;;;;OAaG;IACH,MAAM,CAAC,KAAK,CAAC,OAAe,EAAE,OAAkD;QAC9E,OAAO,IAAI,gBAAgB,CAAC,EAAE,GAAG,OAAO,EAAE,OAAO,EAAE,CAAC,CAAC;IACvD,CAAC;IAED;;;;;;;;;;;;;;;;OAgBG;IACH,MAAM,CAAC,aAAa,CAClB,OAAe,EACf,SAA6B,EAC7B,OAAkD;QAElD,MAAM,QAAQ,GAAG,IAAI,gBAAgB,CAAC,EAAE,GAAG,OAAO,EAAE,OAAO,EAAE,CAAC,CAAC;QAE/D,+BAA+B;QAC/B,KAAK,MAAM,QAAQ,IAAI,SAAS,EAAE,CAAC;YACjC,oBAAoB;YACpB,QAAQ,CAAC,eAAe,CAAC,GAAG,CAAC,QAAQ,CAAC,QAAQ,EAAE,QAAQ,CAAC,CAAC;YAE1D,kBAAkB;YAClB,QAAQ,CAAC,aAAa,CAAC,GAAG,CAAC,QAAQ,CAAC,EAAE,EAAE,QAAQ,CAAC,CAAC;YAElD,oBAAoB;YACpB,MAAM,QAAQ,GAAG,IAAI,CAAC,QAAQ,CAAC,QAAQ,CAAC,QAAQ,CAAC,CAAC;YAClD,MAAM,cAAc,GAAG,QAAQ,CAAC,eAAe,CAAC,GAAG,CAAC,QAAQ,CAAC,IAAI,EAAE,CAAC;YACpE,QAAQ,CAAC,eAAe,CAAC,GAAG,CAAC,QAAQ,EAAE,CAAC,GAAG,cAAc,EAAE,QAAQ,CAAC,CAAC,CAAC;YAEtE,wBAAwB;YACxB,MAAM,kBAAkB,GAAG,QAAQ,CAAC,mBAAmB,CAAC,GAAG,CAAC,QAAQ,CAAC,QAAQ,CAAC,IAAI,EAAE,CAAC;YACrF,QAAQ,CAAC,mBAAmB,CAAC,GAAG,CAAC,QAAQ,CAAC,QAAQ,EAAE,CAAC,GAAG,kBAAkB,EAAE,QAAQ,CAAC,CAAC,CAAC;QACzF,CAAC;QAED,OAAO,QAAQ,CAAC;IAClB,CAAC;IAED;;;;;;;;;;;;;;;;;;OAkBG;IACH,MAAM,CAAC,KAAK,CAAC,SAAS,CACpB,YAA0B,EAC1B,eAA0D;QAE1D,MAAM,QAAQ,GAAG,IAAI,gBAAgB,CAAC,EAAE,GAAG,eAAe,EAAE,OAAO,EAAE,YAAY,CAAC,OAAO,EAAE,CAAC,CAAC;QAC7F,MAAM,QAAQ,CAAC,KAAK,CAAC,YAAY,CAAC,CAAC;QACnC,OAAO,QAAQ,CAAC;IAClB,CAAC;IAED;;;;;;;;;;;;;;OAcG;IACH,KAAK,CAAC,WAAW,CAAC,QAAgB;QAChC,6BAA6B;QAC7B,MAAM,YAAY,GAAG,IAAI,CAAC,OAAO,CAAC,QAAQ,CAAC,CAAC;QAE5C,0BAA0B;QAC1B,MAAM,WAAW,GAAG,MAAM,aAAa,CAAC,YAAY,CAAC,CAAC;QAEtD,oCAAoC;QACpC,MAAM,EAAE,GAAG,IAAI,CAAC,gBAAgB,CAAC,YAAY,CAAC,CAAC;QAE/C,yBAAyB;QACzB,MAAM,EAAE,GAAG,MAAM,MAAM,CAAC,kBAAkB,CAAC,CAAC;QAC5C,MAAM,KAAK,GAAG,MAAM,EAAE,CAAC,IAAI,CAAC,YAAY,CAAC,CAAC;QAE1C,6BAA6B;QAC7B,MAAM,QAAQ,GAAG,MAAM,iBAAiB,CAAC,YAAY,CAAC,CAAC;QAEvD,6CAA6C;QAC7C,MAAM,WAAW,GAAG,IAAI,CAAC,MAAM,EAAE,SAAS,EAAE,WAAW;YACrD,CAAC,CAAC,qBAAqB,CAAC,YAAY,EAAE,IAAI,CAAC,MAAM,CAAC,SAAS,CAAC,WAAW,CAAC;YACxE,CAAC,CAAC,SAAS,CAAC;QAEd,2BAA2B;QAC3B,MAAM,QAAQ,GAAqB;YACjC,EAAE;YACF,QAAQ,EAAE,YAAY;YACtB,KAAK,EAAE,WAAW,CAAC,KAAK;YACxB,QAAQ,EAAE,WAAW,CAAC,QAAQ;YAC9B,GAAG,CAAC,WAAW,CAAC,WAAW,KAAK,SAAS,IAAI,EAAE,WAAW,EAAE,WAAW,CAAC,WAAW,EAAE,CAAC;YACtF,GAAG,CAAC,WAAW,CAAC,gBAAgB,KAAK,SAAS,IAAI,EAAE,gBAAgB,EAAE,WAAW,CAAC,gBAAgB,EAAE,CAAC;YACrG,SAAS,EAAE,WAAW,CAAC,SAAS;YAChC,mBAAmB,EAAE,WAAW,CAAC,mBAAmB;YACpD,UAAU,EAAE,KAAK,CAAC,KAAK;YACvB,QAAQ;YACR,GAAG,CAAC,WAAW,KAAK,SAAS,IAAI,WAAW,CAAC,MAAM,GAAG,CAAC,IAAI,EAAE,WAAW,EAAE,CAAC;SAC5E,CAAC;QAEF,qBAAqB;QACrB,IAAI,CAAC,aAAa,CAAC,QAAQ,CAAC,CAAC;QAE7B,OAAO,QAAQ,CAAC;IAClB,CAAC;IAED;;;;;;;;;;;;;;OAcG;IACH,KAAK,CAAC,YAAY,CAAC,SAAmB;QACpC,OAAO,MAAM,OAAO,CAAC,GAAG,CAAC,SAAS,CAAC,GAAG,CAAC,CAAC,EAAE,EAAE,EAAE,CAAC,IAAI,CAAC,WAAW,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC;IACxE,CAAC;IAED;;;;;;;;;;;;;;;OAeG;IACH,KAAK,CAAC,KAAK,CAAC,OAAqB;QAC/B,MAAM,EACJ,OAAO,EACP,OAAO,GAAG,CAAC,SAAS,CAAC,EACrB,OAAO,GAAG,CAAC,oBAAoB,EAAE,YAAY,EAAE,YAAY,CAAC,EAC5D,cAAc,GAAG,KAAK,GACvB,GAAG,OAAO,CAAC;QAEZ,yBAAyB;QACzB,MAAM,YAAY,GAAsB;YACtC,OAAO;YACP,OAAO;YACP,OAAO;YACP,cAAc;YACd,QAAQ,EAAE,IAAI;YACd,SAAS,EAAE,IAAI;SAChB,CAAC;QAEF,MAAM,KAAK,GAAG,MAAM,cAAc,CAAC,YAAY,CAAC,CAAC;QAEjD,sBAAsB;QACtB,OAAO,MAAM,IAAI,CAAC,YAAY,CAAC,KAAK,CAAC,CAAC;IACxC,CAAC;IAED;;;OAGG;IACK,iBAAiB;QACvB,MAAM,MAAM,GAAsB,EAAE,CAAC;QACrC,KAAK,MAAM,QAAQ,IAAI,IAAI,CAAC,eAAe,CAAC,MAAM,EAAE,EAAE,CAAC;YACrD,IAAI,QAAQ,CAAC,gBAAgB,EAAE,CAAC;gBAC9B,MAAM,CAAC,IAAI,CAAC;oBACV,YAAY,EAAE,QAAQ,CAAC,QAAQ;oBAC/B,IAAI,EAAE,CAAC;oBACP,IAAI,EAAE,0BAA0B;oBAChC,IAAI,EAAE,EAAE;oBACR,OAAO,EAAE,uCAAuC,QAAQ,CAAC,gBAAgB,EAAE;iBAC5E,CAAC,CAAC;YACL,CAAC;QACH,CAAC;QACD,OAAO,MAAM,CAAC;IAChB,CAAC;IAED;;;OAGG;IACK,KAAK,CAAC,gBAAgB,CAC5B,cAA0C,EAC1C,kBAA2B;QAE3B,MAAM,MAAM,GAAsB,EAAE,CAAC;QAErC,KAAK,MAAM,QAAQ,IAAI,IAAI,CAAC,eAAe,CAAC,MAAM,EAAE,EAAE,CAAC;YACrD,KAAK,MAAM,IAAI,IAAI,QAAQ,CAAC,KAAK,EAAE,CAAC;gBAClC,uFAAuF;gBACvF,MAAM,eAAe,GAAG,IAAI,CAAC,OAAO,KAAK,SAAS;oBAChD,CAAC,CAAC,EAAE,kBAAkB,EAAE;oBACxB,CAAC,CAAC;wBACE,WAAW,EAAE,IAAI,CAAC,OAAO;wBACzB,kBAAkB;wBAClB,GAAG,CAAC,IAAI,CAAC,UAAU,KAAK,SAAS,IAAI,EAAE,UAAU,EAAE,IAAI,CAAC,UAAU,EAAE,CAAC;qBACtE,CAAC;gBAEN,MAAM,KAAK,GAAG,MAAM,YAAY,CAAC,IAAI,EAAE,QAAQ,CAAC,QAAQ,EAAE,cAAc,EAAE,eAAe,CAAC,CAAC;gBAC3F,IAAI,KAAK,EAAE,CAAC;oBACV,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;gBACrB,CAAC;YACH,CAAC;QACH,CAAC;QAED,OAAO,MAAM,CAAC;IAChB,CAAC;IAED;;;OAGG;IACK,sBAAsB,CAC5B,MAAc,EACd,OAAgC,QAAQ;QAExC,MAAM,MAAM,GAAsB,EAAE,CAAC;QACrC,KAAK,MAAM,QAAQ,IAAI,IAAI,CAAC,eAAe,CAAC,MAAM,EAAE,EAAE,CAAC;YACrD,MAAM,iBAAiB,GAAG,mBAAmB,CAC3C,QAAQ,CAAC,WAAW,EACpB,MAAM,EACN,QAAQ,CAAC,QAAQ,EACjB,IAAI,CACL,CAAC;YACF,MAAM,CAAC,IAAI,CAAC,GAAG,iBAAiB,CAAC,CAAC;QACpC,CAAC;QACD,OAAO,MAAM,CAAC;IAChB,CAAC;IAED;;;OAGG;IACK,KAAK,CAAC,6BAA6B;QACzC,MAAM,MAAM,GAAsB,EAAE,CAAC;QAErC,oBAAoB;QACpB,IAAI,CAAC,IAAI,CAAC,MAAM,EAAE,SAAS,EAAE,WAAW,EAAE,CAAC;YACzC,OAAO,MAAM,CAAC;QAChB,CAAC;QAED,MAAM,UAAU,GAAG,MAAM,MAAM,CAAC,kBAAkB,CAAC,CAAC;QAEpD,KAAK,MAAM,QAAQ,IAAI,IAAI,CAAC,eAAe,CAAC,MAAM,EAAE,EAAE,CAAC;YACrD,sCAAsC;YACtC,IAAI,CAAC,QAAQ,CAAC,WAAW,IAAI,QAAQ,CAAC,WAAW,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;gBAC/D,SAAS;YACX,CAAC;YAED,4CAA4C;YAC5C,MAAM,gBAAgB,GAAG,MAAM,IAAI,CAAC,iCAAiC,CACnE,QAAQ,EACR,UAAU,CACX,CAAC;YACF,MAAM,CAAC,IAAI,CAAC,GAAG,gBAAgB,CAAC,CAAC;QACnC,CAAC;QAED,OAAO,MAAM,CAAC;IAChB,CAAC;IAED;;;OAGG;IACK,KAAK,CAAC,iCAAiC,CAC7C,QAA0B,EAC1B,QAAmB;QAEnB,MAAM,MAAM,GAAsB,EAAE,CAAC;QAErC,IAAI,CAAC,QAAQ,CAAC,WAAW,IAAI,CAAC,IAAI,CAAC,MAAM,EAAE,SAAS,EAAE,WAAW,EAAE,CAAC;YAClE,OAAO,MAAM,CAAC;QAChB,CAAC;QAED,KAAK,MAAM,YAAY,IAAI,QAAQ,CAAC,WAAW,EAAE,CAAC;YAChD,MAAM,UAAU,GAAG,IAAI,CAAC,MAAM,CAAC,SAAS,CAAC,WAAW,CAAC,YAAY,CAAC,CAAC;YAEnE,oDAAoD;YACpD,IAAI,CAAC,UAAU,EAAE,UAAU,EAAE,iBAAiB,EAAE,CAAC;gBAC/C,SAAS;YACX,CAAC;YAED,MAAM,gBAAgB,GAAG,MAAM,IAAI,CAAC,+BAA+B,CACjE,QAAQ,EACR,UAAU,CAAC,UAAU,EACrB,QAAQ,CACT,CAAC;YACF,MAAM,CAAC,IAAI,CAAC,GAAG,gBAAgB,CAAC,CAAC;QACnC,CAAC;QAED,OAAO,MAAM,CAAC;IAChB,CAAC;IAED;;;OAGG;IACK,KAAK,CAAC,+BAA+B,CAC3C,QAA0B,EAC1B,UAAwF,EACxF,QAAmB;QAEnB,IAAI,CAAC,UAAU,EAAE,iBAAiB,EAAE,CAAC;YACnC,OAAO,EAAE,CAAC;QACZ,CAAC;QAED,MAAM,UAAU,GAAG,IAAI,CAAC,OAAO,CAC7B,IAAI,CAAC,OAAO,IAAI,OAAO,CAAC,GAAG,EAAE,EAC7B,UAAU,CAAC,iBAAiB,CAC7B,CAAC;QAEF,IAAI,CAAC;YACH,MAAM,aAAa,GAAG,MAAM,QAAQ,CAAC,QAAQ,CAAC,UAAU,EAAE,OAAO,CAAC,CAAC;YACnE,MAAM,MAAM,GAAG,IAAI,CAAC,KAAK,CAAC,aAAa,CAAW,CAAC;YAEnD,oDAAoD;YACpD,MAAM,IAAI,GAAG,UAAU,CAAC,IAAI,IAAI,YAAY,CAAC;YAE7C,uBAAuB;YACvB,OAAO,mBAAmB,CACxB,QAAQ,CAAC,WAAW,EACpB,MAAM,EACN,QAAQ,CAAC,QAAQ,EACjB,IAAI,EACJ,UAAU,CACX,CAAC;QACJ,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACf,oDAAoD;YACpD,MAAM,YAAY,GAAG,KAAK,YAAY,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;YAC5E,OAAO,CAAC;oBACN,YAAY,EAAE,QAAQ,CAAC,QAAQ;oBAC/B,IAAI,EAAE,CAAC;oBACP,IAAI,EAAE,0BAA0B;oBAChC,IAAI,EAAE,EAAE;oBACR,OAAO,EAAE,+CAA+C,UAAU,CAAC,iBAAiB,MAAM,YAAY,EAAE;iBACzG,CAAC,CAAC;QACL,CAAC;IACH,CAAC;IAED;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;OA8BG;IACH,KAAK,CAAC,QAAQ,CAAC,OAAyB;QACtC,MAAM,SAAS,GAAG,IAAI,CAAC,GAAG,EAAE,CAAC;QAE7B,oCAAoC;QACpC,MAAM,cAAc,GAAG,IAAI,CAAC,sBAAsB,EAAE,CAAC;QAErD,gCAAgC;QAChC,MAAM,MAAM,GAAsB,EAAE,CAAC;QAErC,sCAAsC;QACtC,MAAM,CAAC,IAAI,CAAC,GAAG,IAAI,CAAC,iBAAiB,EAAE,CAAC,CAAC;QAEzC,sCAAsC;QACtC,MAAM,UAAU,GAAG,MAAM,IAAI,CAAC,gBAAgB,CAC5C,cAAc,EACd,OAAO,EAAE,kBAAkB,IAAI,KAAK,CACrC,CAAC;QACF,MAAM,CAAC,IAAI,CAAC,GAAG,UAAU,CAAC,CAAC;QAE3B,wCAAwC;QACxC,MAAM,2BAA2B,GAAG,MAAM,IAAI,CAAC,6BAA6B,EAAE,CAAC;QAC/E,MAAM,CAAC,IAAI,CAAC,GAAG,2BAA2B,CAAC,CAAC;QAE5C,qDAAqD;QACrD,IAAI,OAAO,EAAE,iBAAiB,EAAE,CAAC;YAC/B,MAAM,IAAI,GAAG,OAAO,CAAC,cAAc,IAAI,QAAQ,CAAC;YAChD,MAAM,CAAC,IAAI,CAAC,GAAG,IAAI,CAAC,sBAAsB,CAAC,OAAO,CAAC,iBAAiB,EAAE,IAAI,CAAC,CAAC,CAAC;QAC/E,CAAC;QAED,oCAAoC;QACpC,MAAM,UAAU,GAAG,MAAM,CAAC,MAAM,CAAC;QAEjC,sBAAsB;QACtB,MAAM,WAAW,GAA2B,EAAE,CAAC;QAC/C,KAAK,MAAM,QAAQ,IAAI,IAAI,CAAC,eAAe,CAAC,MAAM,EAAE,EAAE,CAAC;YACrD,KAAK,MAAM,IAAI,IAAI,QAAQ,CAAC,KAAK,EAAE,CAAC;gBAClC,WAAW,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,WAAW,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,GAAG,CAAC,CAAC;YAC7D,CAAC;QACH,CAAC;QAED,MAAM,UAAU,GAAG,IAAI,CAAC,GAAG,EAAE,GAAG,SAAS,CAAC;QAE1C,OAAO;YACL,cAAc,EAAE,IAAI,CAAC,eAAe,CAAC,IAAI;YACzC,UAAU,EAAE,CAAC,GAAG,IAAI,CAAC,eAAe,CAAC,MAAM,EAAE,CAAC,CAAC,MAAM,CACnD,CAAC,GAAG,EAAE,CAAC,EAAE,EAAE,CAAC,GAAG,GAAG,CAAC,CAAC,KAAK,CAAC,MAAM,EAChC,CAAC,CACF;YACD,WAAW;YACX,MAAM;YACN,UAAU;YACV,MAAM,EAAE,UAAU,KAAK,CAAC;YACxB,UAAU;YACV,SAAS,EAAE,IAAI,IAAI,EAAE;SACtB,CAAC;IACJ,CAAC;IAED;;;;;;;;;;;;;;;;;;;;OAoBG;IACH,YAAY;QACV,KAAK,MAAM,QAAQ,IAAI,IAAI,CAAC,eAAe,CAAC,MAAM,EAAE,EAAE,CAAC;YACrD,KAAK,MAAM,IAAI,IAAI,QAAQ,CAAC,KAAK,EAAE,CAAC;gBAClC,IAAI,IAAI,CAAC,IAAI,KAAK,YAAY,EAAE,CAAC;oBAC/B,+BAA+B;oBAC/B,MAAM,UAAU,GAAG,IAAI,CAAC,uBAAuB,CAAC,IAAI,CAAC,IAAI,EAAE,QAAQ,CAAC,QAAQ,CAAC,CAAC;oBAE9E,2BAA2B;oBAC3B,MAAM,cAAc,GAAG,IAAI,CAAC,eAAe,CAAC,GAAG,CAAC,UAAU,CAAC,CAAC;oBAE5D,IAAI,cAAc,EAAE,CAAC;wBACnB,IAAI,CAAC,UAAU,GAAG,cAAc,CAAC,EAAE,CAAC;oBACtC,CAAC;gBACH,CAAC;YACH,CAAC;QACH,CAAC;IACH,CAAC;IAED;;;;;;;;;;;;;OAaG;IACH,WAAW,CAAC,QAAgB;QAC1B,MAAM,YAAY,GAAG,IAAI,CAAC,OAAO,CAAC,QAAQ,CAAC,CAAC;QAC5C,OAAO,IAAI,CAAC,eAAe,CAAC,GAAG,CAAC,YAAY,CAAC,CAAC;IAChD,CAAC;IAED;;;;;;;;;;OAUG;IACH,eAAe,CAAC,EAAU;QACxB,OAAO,IAAI,CAAC,aAAa,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;IACpC,CAAC;IAED;;;;;;;;;;OAUG;IACH,eAAe;QACb,OAAO,CAAC,GAAG,IAAI,CAAC,eAAe,CAAC,MAAM,EAAE,CAAC,CAAC;IAC5C,CAAC;IAED;;;;;;;;;;;;;;;OAeG;IACH,kBAAkB,CAAC,IAAY;QAC7B,OAAO,IAAI,CAAC,eAAe,CAAC,GAAG,CAAC,IAAI,CAAC,IAAI,EAAE,CAAC;IAC9C,CAAC;IAED;;;;;;;;;;;;;;;;;;OAkBG;IACH,sBAAsB,CAAC,QAAgB;QACrC,OAAO,IAAI,CAAC,mBAAmB,CAAC,GAAG,CAAC,QAAQ,CAAC,IAAI,EAAE,CAAC;IACtD,CAAC;IAED;;;;;;;;;;;;;;;OAeG;IACH,qBAAqB,CAAC,OAAe;QACnC,OAAO,CAAC,GAAG,IAAI,CAAC,eAAe,CAAC,MAAM,EAAE,CAAC,CAAC,MAAM,CAAC,CAAC,QAAQ,EAAE,EAAE,CAC5D,kBAAkB,CAAC,QAAQ,CAAC,QAAQ,EAAE,OAAO,CAAC,CAC/C,CAAC;IACJ,CAAC;IAED;;;;;;;;OAQG;IACH,KAAK;QACH,IAAI,CAAC,eAAe,CAAC,KAAK,EAAE,CAAC;QAC7B,IAAI,CAAC,aAAa,CAAC,KAAK,EAAE,CAAC;QAC3B,IAAI,CAAC,eAAe,CAAC,KAAK,EAAE,CAAC;QAC7B,IAAI,CAAC,mBAAmB,CAAC,KAAK,EAAE,CAAC;IACnC,CAAC;IAED;;;;;;;;;OASG;IACH,IAAI;QACF,OAAO,IAAI,CAAC,eAAe,CAAC,IAAI,CAAC;IACnC,CAAC;IAED;;;;;;;;;;;OAWG;IACH,OAAO;QACL,OAAO,IAAI,CAAC,eAAe,CAAC,IAAI,KAAK,CAAC,CAAC;IACzC,CAAC;IAED;;;;;;;;;;;;;;;;;;;OAmBG;IACH,aAAa;QACX,MAAM,eAAe,GAAyB,EAAE,CAAC;QACjD,KAAK,MAAM,KAAK,IAAI,IAAI,CAAC,mBAAmB,CAAC,MAAM,EAAE,EAAE,CAAC;YACtD,IAAI,KAAK,CAAC,MAAM,IAAI,CAAC,EAAE,CAAC;gBACtB,eAAe,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;YAC9B,CAAC;QACH,CAAC;QACD,OAAO,eAAe,CAAC;IACzB,CAAC;IAED;;;;;;;;;;;;;OAaG;IACH,mBAAmB;QACjB,MAAM,MAAM,GAAuB,EAAE,CAAC;QACtC,KAAK,MAAM,KAAK,IAAI,IAAI,CAAC,mBAAmB,CAAC,MAAM,EAAE,EAAE,CAAC;YACtD,IAAI,KAAK,CAAC,CAAC,CAAC,EAAE,CAAC;gBACb,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC;YACxB,CAAC;QACH,CAAC;QACD,OAAO,MAAM,CAAC;IAChB,CAAC;IAED;;;;;;;;;;;;OAYG;IACH,QAAQ;QACN,MAAM,cAAc,GAAG,IAAI,CAAC,eAAe,CAAC,IAAI,CAAC;QACjD,IAAI,UAAU,GAAG,CAAC,CAAC;QACnB,MAAM,WAAW,GAA2B,EAAE,CAAC;QAE/C,KAAK,MAAM,QAAQ,IAAI,IAAI,CAAC,eAAe,CAAC,MAAM,EAAE,EAAE,CAAC;YACrD,UAAU,IAAI,QAAQ,CAAC,KAAK,CAAC,MAAM,CAAC;YACpC,KAAK,MAAM,IAAI,IAAI,QAAQ,CAAC,KAAK,EAAE,CAAC;gBAClC,WAAW,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,WAAW,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,GAAG,CAAC,CAAC;YAC7D,CAAC;QACH,CAAC;QAED,OAAO;YACL,cAAc;YACd,UAAU;YACV,WAAW;SACZ,CAAC;IACJ,CAAC;IAED;;;;;;;;;;;;;;;;;;OAkBG;IACH,kBAAkB;QAChB,IAAI,CAAC,IAAI,CAAC,MAAM,EAAE,SAAS,EAAE,WAAW,EAAE,CAAC;YACzC,OAAO,SAAS,CAAC;QACnB,CAAC;QAED,gCAAgC;QAChC,MAAM,aAAa,GAAG,IAAI,GAAG,EAA8B,CAAC;QAE5D,KAAK,MAAM,QAAQ,IAAI,IAAI,CAAC,eAAe,CAAC,MAAM,EAAE,EAAE,CAAC;YACrD,IAAI,QAAQ,CAAC,WAAW,EAAE,CAAC;gBACzB,KAAK,MAAM,YAAY,IAAI,QAAQ,CAAC,WAAW,EAAE,CAAC;oBAChD,MAAM,SAAS,GAAG,aAAa,CAAC,GAAG,CAAC,YAAY,CAAC,IAAI,EAAE,CAAC;oBACxD,SAAS,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;oBACzB,aAAa,CAAC,GAAG,CAAC,YAAY,EAAE,SAAS,CAAC,CAAC;gBAC7C,CAAC;YACH,CAAC;QACH,CAAC;QAED,6BAA6B;QAC7B,MAAM,WAAW,GAAmC,EAAE,CAAC;QAEvD,KAAK,MAAM,CAAC,EAAE,EAAE,SAAS,CAAC,IAAI,aAAa,CAAC,OAAO,EAAE,EAAE,CAAC;YACtD,MAAM,UAAU,GAAG,IAAI,CAAC,MAAM,CAAC,SAAS,CAAC,WAAW,CAAC,EAAE,CAAC,CAAC;YACzD,MAAM,IAAI,GAAmB;gBAC3B,aAAa,EAAE,SAAS,CAAC,MAAM;gBAC/B,SAAS,EAAE,CAAC,CAAC,UAAU,EAAE,UAAU,EAAE,iBAAiB;aACvD,CAAC;YAEF,mFAAmF;YACnF,IAAI,UAAU,EAAE,UAAU,EAAE,IAAI,KAAK,SAAS,EAAE,CAAC;gBAC/C,IAAI,CAAC,cAAc,GAAG,UAAU,CAAC,UAAU,CAAC,IAAI,CAAC;YACnD,CAAC;YAED,WAAW,CAAC,EAAE,CAAC,GAAG,IAAI,CAAC;QACzB,CAAC;QAED,8FAA8F;QAC9F,MAAM,4BAA4B,GAAG,IAAI,GAAG,EAAU,CAAC;QACvD,KAAK,MAAM,QAAQ,IAAI,IAAI,CAAC,eAAe,CAAC,MAAM,EAAE,EAAE,CAAC;YACrD,IAAI,QAAQ,CAAC,WAAW,IAAI,QAAQ,CAAC,WAAW,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;gBAC5D,4BAA4B,CAAC,GAAG,CAAC,QAAQ,CAAC,QAAQ,CAAC,CAAC;YACtD,CAAC;QACH,CAAC;QAED,OAAO;YACL,gBAAgB,EAAE,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,SAAS,CAAC,WAAW,CAAC,CAAC,MAAM;YACvE,sBAAsB,EAAE,4BAA4B,CAAC,IAAI;YACzD,WAAW;SACZ,CAAC;IACJ,CAAC;IAED;;;;;;;;;;OAUG;IACK,gBAAgB,CAAC,QAAgB;QACvC,MAAM,MAAM,GAAG,kBAAkB,CAAC,QAAQ,CAAC,CAAC;QAE5C,sBAAsB;QACtB,IAAI,CAAC,IAAI,CAAC,aAAa,CAAC,GAAG,CAAC,MAAM,CAAC,EAAE,CAAC;YACpC,OAAO,MAAM,CAAC;QAChB,CAAC;QAED,uCAAuC;QACvC,IAAI,MAAM,GAAG,CAAC,CAAC;QACf,OAAO,IAAI,CAAC,aAAa,CAAC,GAAG,CAAC,GAAG,MAAM,IAAI,MAAM,EAAE,CAAC,EAAE,CAAC;YACrD,MAAM,EAAE,CAAC;QACX,CAAC;QAED,OAAO,GAAG,MAAM,IAAI,MAAM,EAAE,CAAC;IAC/B,CAAC;IAED;;;;OAIG;IACK,sBAAsB;QAC5B,MAAM,GAAG,GAAG,IAAI,GAAG,EAAyB,CAAC;QAC7C,KAAK,MAAM,QAAQ,IAAI,IAAI,CAAC,eAAe,CAAC,MAAM,EAAE,EAAE,CAAC;YACrD,GAAG,CAAC,GAAG,CAAC,QAAQ,CAAC,QAAQ,EAAE,QAAQ,CAAC,QAAQ,CAAC,CAAC;QAChD,CAAC;QACD,OAAO,GAAG,CAAC;IACb,CAAC;IAED;;;;;;;;;;OAUG;IACK,aAAa,CAAC,QAA0B;QAC9C,sBAAsB;QACtB,IAAI,CAAC,eAAe,CAAC,GAAG,CAAC,QAAQ,CAAC,QAAQ,EAAE,QAAQ,CAAC,CAAC;QAEtD,oBAAoB;QACpB,IAAI,CAAC,aAAa,CAAC,GAAG,CAAC,QAAQ,CAAC,EAAE,EAAE,QAAQ,CAAC,CAAC;QAE9C,yBAAyB;QACzB,MAAM,IAAI,GAAG,IAAI,CAAC,QAAQ,CAAC,QAAQ,CAAC,QAAQ,CAAC,CAAC;QAC9C,MAAM,SAAS,GAAG,IAAI,CAAC,eAAe,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC;QACjD,IAAI,SAAS,EAAE,CAAC;YACd,SAAS,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;QAC3B,CAAC;aAAM,CAAC;YACN,IAAI,CAAC,eAAe,CAAC,GAAG,CAAC,IAAI,EAAE,CAAC,QAAQ,CAAC,CAAC,CAAC;QAC7C,CAAC;QAED,6BAA6B;QAC7B,MAAM,aAAa,GAAG,IAAI,CAAC,mBAAmB,CAAC,GAAG,CAAC,QAAQ,CAAC,QAAQ,CAAC,CAAC;QACtE,IAAI,aAAa,EAAE,CAAC;YAClB,aAAa,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;QAC/B,CAAC;aAAM,CAAC;YACN,IAAI,CAAC,mBAAmB,CAAC,GAAG,CAAC,QAAQ,CAAC,QAAQ,EAAE,CAAC,QAAQ,CAAC,CAAC,CAAC;QAC9D,CAAC;IACH,CAAC;IAED;;;;;;OAMG;IACK,uBAAuB,CAAC,QAAgB,EAAE,cAAsB;QACtE,0BAA0B;QAC1B,MAAM,CAAC,QAAQ,CAAC,GAAG,eAAe,CAAC,QAAQ,CAAC,CAAC;QAE7C,8CAA8C;QAC9C,MAAM,SAAS,GAAG,IAAI,CAAC,OAAO,CAAC,cAAc,CAAC,CAAC;QAC/C,OAAO,IAAI,CAAC,OAAO,CAAC,SAAS,EAAE,QAAQ,CAAC,CAAC;IAC3C,CAAC;CACF;AAED;;;;;;;;;;;;;;;;;;GAkBG;AACH,SAAS,kBAAkB,CAAC,QAAgB;IAC1C,iCAAiC;IACjC,MAAM,QAAQ,GAAG,IAAI,CAAC,QAAQ,CAAC,QAAQ,EAAE,IAAI,CAAC,OAAO,CAAC,QAAQ,CAAC,CAAC,CAAC;IAEjE,yBAAyB;IACzB,iDAAiD;IACjD,0BAA0B;IAC1B,4CAA4C;IAC5C,+BAA+B;IAC/B,OAAO,QAAQ;SACZ,UAAU,CAAC,SAAS,EAAE,GAAG,CAAC;SAC1B,WAAW,EAAE;SACb,UAAU,CAAC,YAAY,EAAE,EAAE,CAAC;SAC5B,UAAU,CAAC,QAAQ,EAAE,GAAG,CAAC,CAAC,wCAAwC;SAClE,OAAO,CAAC,IAAI,EAAE,EAAE,CAAC,CAAC,sBAAsB;SACxC,OAAO,CAAC,IAAI,EAAE,EAAE,CAAC,CAAC,CAAC,uBAAuB;AAC/C,CAAC"}
@@ -0,0 +1,49 @@
1
+ /**
2
+ * Schema assignment pipeline for resources
3
+ *
4
+ * Handles the multi-source schema assignment:
5
+ * 1. Self-asserted schemas (from $schema field in frontmatter)
6
+ * 2. Collection-imposed schemas (from collection config)
7
+ * 3. CLI-imposed schemas (from --frontmatter-schema flag)
8
+ *
9
+ * Each resource can have multiple schemas from different sources,
10
+ * and each is validated independently.
11
+ */
12
+ import type { CollectionConfig } from './schemas/project-config.js';
13
+ import type { SchemaReference } from './types/resources.js';
14
+ /**
15
+ * Add collection-imposed schema to a resource's schema list
16
+ *
17
+ * @param existingSchemas - Current schemas (including self-asserted)
18
+ * @param collectionName - Name of the collection
19
+ * @param collectionConfig - Collection configuration
20
+ * @returns Updated schema list with collection schema added (if defined)
21
+ */
22
+ export declare function addCollectionSchema(existingSchemas: SchemaReference[], collectionName: string, collectionConfig: CollectionConfig): SchemaReference[];
23
+ /**
24
+ * Add CLI-imposed schema to a resource's schema list
25
+ *
26
+ * @param existingSchemas - Current schemas (including self-asserted and collection)
27
+ * @param schemaPath - Path to schema from CLI flag
28
+ * @returns Updated schema list with CLI schema added
29
+ */
30
+ export declare function addCLISchema(existingSchemas: SchemaReference[], schemaPath: string): SchemaReference[];
31
+ /**
32
+ * Apply schema assignments to a resource
33
+ *
34
+ * Pipeline order:
35
+ * 1. Self-asserted (already in resource.schemas from parser)
36
+ * 2. Collection-imposed (from each collection the resource belongs to)
37
+ * 3. CLI-imposed (from --frontmatter-schema flag)
38
+ *
39
+ * Deduplicates schemas by path - same schema from multiple sources
40
+ * only appears once (first source wins).
41
+ *
42
+ * @param resourceSchemas - Current schemas (from parser)
43
+ * @param collections - Collections this resource belongs to
44
+ * @param collectionsConfig - Collection configurations
45
+ * @param cliSchema - Optional CLI-imposed schema
46
+ * @returns Complete list of schemas to validate
47
+ */
48
+ export declare function assignSchemas(resourceSchemas: SchemaReference[], collections: string[], collectionsConfig: Record<string, CollectionConfig>, cliSchema?: string): SchemaReference[];
49
+ //# sourceMappingURL=schema-assignment.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"schema-assignment.d.ts","sourceRoot":"","sources":["../src/schema-assignment.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;GAUG;AAEH,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,6BAA6B,CAAC;AACpE,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,sBAAsB,CAAC;AAE5D;;;;;;;GAOG;AACH,wBAAgB,mBAAmB,CACjC,eAAe,EAAE,eAAe,EAAE,EAClC,cAAc,EAAE,MAAM,EACtB,gBAAgB,EAAE,gBAAgB,GACjC,eAAe,EAAE,CAsBnB;AAED;;;;;;GAMG;AACH,wBAAgB,YAAY,CAC1B,eAAe,EAAE,eAAe,EAAE,EAClC,UAAU,EAAE,MAAM,GACjB,eAAe,EAAE,CAgBnB;AAED;;;;;;;;;;;;;;;;GAgBG;AACH,wBAAgB,aAAa,CAC3B,eAAe,EAAE,eAAe,EAAE,EAClC,WAAW,EAAE,MAAM,EAAE,EACrB,iBAAiB,EAAE,MAAM,CAAC,MAAM,EAAE,gBAAgB,CAAC,EACnD,SAAS,CAAC,EAAE,MAAM,GACjB,eAAe,EAAE,CAiBnB"}
@@ -0,0 +1,95 @@
1
+ /**
2
+ * Schema assignment pipeline for resources
3
+ *
4
+ * Handles the multi-source schema assignment:
5
+ * 1. Self-asserted schemas (from $schema field in frontmatter)
6
+ * 2. Collection-imposed schemas (from collection config)
7
+ * 3. CLI-imposed schemas (from --frontmatter-schema flag)
8
+ *
9
+ * Each resource can have multiple schemas from different sources,
10
+ * and each is validated independently.
11
+ */
12
+ /**
13
+ * Add collection-imposed schema to a resource's schema list
14
+ *
15
+ * @param existingSchemas - Current schemas (including self-asserted)
16
+ * @param collectionName - Name of the collection
17
+ * @param collectionConfig - Collection configuration
18
+ * @returns Updated schema list with collection schema added (if defined)
19
+ */
20
+ export function addCollectionSchema(existingSchemas, collectionName, collectionConfig) {
21
+ const schemaPath = collectionConfig.validation?.frontmatterSchema;
22
+ if (!schemaPath) {
23
+ return existingSchemas;
24
+ }
25
+ // Check if this schema is already present from any source
26
+ const alreadyExists = existingSchemas.some((ref) => ref.schema === schemaPath);
27
+ if (alreadyExists) {
28
+ return existingSchemas;
29
+ }
30
+ // Add collection-imposed schema
31
+ return [
32
+ ...existingSchemas,
33
+ {
34
+ schema: schemaPath,
35
+ source: collectionName,
36
+ applied: false,
37
+ },
38
+ ];
39
+ }
40
+ /**
41
+ * Add CLI-imposed schema to a resource's schema list
42
+ *
43
+ * @param existingSchemas - Current schemas (including self-asserted and collection)
44
+ * @param schemaPath - Path to schema from CLI flag
45
+ * @returns Updated schema list with CLI schema added
46
+ */
47
+ export function addCLISchema(existingSchemas, schemaPath) {
48
+ // Check if this schema is already present from any source
49
+ const alreadyExists = existingSchemas.some((ref) => ref.schema === schemaPath);
50
+ if (alreadyExists) {
51
+ return existingSchemas;
52
+ }
53
+ // Add CLI-imposed schema
54
+ return [
55
+ ...existingSchemas,
56
+ {
57
+ schema: schemaPath,
58
+ source: 'cli',
59
+ applied: false,
60
+ },
61
+ ];
62
+ }
63
+ /**
64
+ * Apply schema assignments to a resource
65
+ *
66
+ * Pipeline order:
67
+ * 1. Self-asserted (already in resource.schemas from parser)
68
+ * 2. Collection-imposed (from each collection the resource belongs to)
69
+ * 3. CLI-imposed (from --frontmatter-schema flag)
70
+ *
71
+ * Deduplicates schemas by path - same schema from multiple sources
72
+ * only appears once (first source wins).
73
+ *
74
+ * @param resourceSchemas - Current schemas (from parser)
75
+ * @param collections - Collections this resource belongs to
76
+ * @param collectionsConfig - Collection configurations
77
+ * @param cliSchema - Optional CLI-imposed schema
78
+ * @returns Complete list of schemas to validate
79
+ */
80
+ export function assignSchemas(resourceSchemas, collections, collectionsConfig, cliSchema) {
81
+ let schemas = resourceSchemas;
82
+ // Add collection-imposed schemas
83
+ for (const collectionName of collections) {
84
+ const collectionConfig = collectionsConfig[collectionName];
85
+ if (collectionConfig) {
86
+ schemas = addCollectionSchema(schemas, collectionName, collectionConfig);
87
+ }
88
+ }
89
+ // Add CLI-imposed schema
90
+ if (cliSchema) {
91
+ schemas = addCLISchema(schemas, cliSchema);
92
+ }
93
+ return schemas;
94
+ }
95
+ //# sourceMappingURL=schema-assignment.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"schema-assignment.js","sourceRoot":"","sources":["../src/schema-assignment.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;GAUG;AAKH;;;;;;;GAOG;AACH,MAAM,UAAU,mBAAmB,CACjC,eAAkC,EAClC,cAAsB,EACtB,gBAAkC;IAElC,MAAM,UAAU,GAAG,gBAAgB,CAAC,UAAU,EAAE,iBAAiB,CAAC;IAElE,IAAI,CAAC,UAAU,EAAE,CAAC;QAChB,OAAO,eAAe,CAAC;IACzB,CAAC;IAED,0DAA0D;IAC1D,MAAM,aAAa,GAAG,eAAe,CAAC,IAAI,CAAC,CAAC,GAAG,EAAE,EAAE,CAAC,GAAG,CAAC,MAAM,KAAK,UAAU,CAAC,CAAC;IAC/E,IAAI,aAAa,EAAE,CAAC;QAClB,OAAO,eAAe,CAAC;IACzB,CAAC;IAED,gCAAgC;IAChC,OAAO;QACL,GAAG,eAAe;QAClB;YACE,MAAM,EAAE,UAAU;YAClB,MAAM,EAAE,cAAc;YACtB,OAAO,EAAE,KAAK;SACf;KACF,CAAC;AACJ,CAAC;AAED;;;;;;GAMG;AACH,MAAM,UAAU,YAAY,CAC1B,eAAkC,EAClC,UAAkB;IAElB,0DAA0D;IAC1D,MAAM,aAAa,GAAG,eAAe,CAAC,IAAI,CAAC,CAAC,GAAG,EAAE,EAAE,CAAC,GAAG,CAAC,MAAM,KAAK,UAAU,CAAC,CAAC;IAC/E,IAAI,aAAa,EAAE,CAAC;QAClB,OAAO,eAAe,CAAC;IACzB,CAAC;IAED,yBAAyB;IACzB,OAAO;QACL,GAAG,eAAe;QAClB;YACE,MAAM,EAAE,UAAU;YAClB,MAAM,EAAE,KAAK;YACb,OAAO,EAAE,KAAK;SACf;KACF,CAAC;AACJ,CAAC;AAED;;;;;;;;;;;;;;;;GAgBG;AACH,MAAM,UAAU,aAAa,CAC3B,eAAkC,EAClC,WAAqB,EACrB,iBAAmD,EACnD,SAAkB;IAElB,IAAI,OAAO,GAAG,eAAe,CAAC;IAE9B,iCAAiC;IACjC,KAAK,MAAM,cAAc,IAAI,WAAW,EAAE,CAAC;QACzC,MAAM,gBAAgB,GAAG,iBAAiB,CAAC,cAAc,CAAC,CAAC;QAC3D,IAAI,gBAAgB,EAAE,CAAC;YACrB,OAAO,GAAG,mBAAmB,CAAC,OAAO,EAAE,cAAc,EAAE,gBAAgB,CAAC,CAAC;QAC3E,CAAC;IACH,CAAC;IAED,yBAAyB;IACzB,IAAI,SAAS,EAAE,CAAC;QACd,OAAO,GAAG,YAAY,CAAC,OAAO,EAAE,SAAS,CAAC,CAAC;IAC7C,CAAC;IAED,OAAO,OAAO,CAAC;AACjB,CAAC"}