@millstone/synapse-cli 0.1.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 (103) hide show
  1. package/README.md +135 -0
  2. package/bin/synapse.js +3 -0
  3. package/dist/commands/eject.d.ts +19 -0
  4. package/dist/commands/eject.d.ts.map +1 -0
  5. package/dist/commands/eject.js +146 -0
  6. package/dist/commands/eject.js.map +1 -0
  7. package/dist/commands/fetch-reference.d.ts +19 -0
  8. package/dist/commands/fetch-reference.d.ts.map +1 -0
  9. package/dist/commands/fetch-reference.js +93 -0
  10. package/dist/commands/fetch-reference.js.map +1 -0
  11. package/dist/commands/format.d.ts +26 -0
  12. package/dist/commands/format.d.ts.map +1 -0
  13. package/dist/commands/format.js +126 -0
  14. package/dist/commands/format.js.map +1 -0
  15. package/dist/commands/generate-pdf.d.ts +19 -0
  16. package/dist/commands/generate-pdf.d.ts.map +1 -0
  17. package/dist/commands/generate-pdf.js +140 -0
  18. package/dist/commands/generate-pdf.js.map +1 -0
  19. package/dist/commands/index.d.ts +17 -0
  20. package/dist/commands/index.d.ts.map +1 -0
  21. package/dist/commands/index.js +26 -0
  22. package/dist/commands/index.js.map +1 -0
  23. package/dist/commands/init.d.ts +58 -0
  24. package/dist/commands/init.d.ts.map +1 -0
  25. package/dist/commands/init.js +234 -0
  26. package/dist/commands/init.js.map +1 -0
  27. package/dist/commands/migrate.d.ts +29 -0
  28. package/dist/commands/migrate.d.ts.map +1 -0
  29. package/dist/commands/migrate.js +297 -0
  30. package/dist/commands/migrate.js.map +1 -0
  31. package/dist/commands/scaffold.d.ts +24 -0
  32. package/dist/commands/scaffold.d.ts.map +1 -0
  33. package/dist/commands/scaffold.js +244 -0
  34. package/dist/commands/scaffold.js.map +1 -0
  35. package/dist/commands/update.d.ts +25 -0
  36. package/dist/commands/update.d.ts.map +1 -0
  37. package/dist/commands/update.js +253 -0
  38. package/dist/commands/update.js.map +1 -0
  39. package/dist/commands/validate.d.ts +37 -0
  40. package/dist/commands/validate.d.ts.map +1 -0
  41. package/dist/commands/validate.js +526 -0
  42. package/dist/commands/validate.js.map +1 -0
  43. package/dist/index.d.ts +3 -0
  44. package/dist/index.d.ts.map +1 -0
  45. package/dist/index.js +277 -0
  46. package/dist/index.js.map +1 -0
  47. package/dist/lib/bodyRules.d.ts +70 -0
  48. package/dist/lib/bodyRules.d.ts.map +1 -0
  49. package/dist/lib/bodyRules.js +711 -0
  50. package/dist/lib/bodyRules.js.map +1 -0
  51. package/dist/lib/config.d.ts +49 -0
  52. package/dist/lib/config.d.ts.map +1 -0
  53. package/dist/lib/config.js +91 -0
  54. package/dist/lib/config.js.map +1 -0
  55. package/dist/lib/git.d.ts +99 -0
  56. package/dist/lib/git.d.ts.map +1 -0
  57. package/dist/lib/git.js +266 -0
  58. package/dist/lib/git.js.map +1 -0
  59. package/dist/lib/graph.d.ts +6 -0
  60. package/dist/lib/graph.d.ts.map +1 -0
  61. package/dist/lib/graph.js +6 -0
  62. package/dist/lib/graph.js.map +1 -0
  63. package/dist/lib/homepage.d.ts +10 -0
  64. package/dist/lib/homepage.d.ts.map +1 -0
  65. package/dist/lib/homepage.js +172 -0
  66. package/dist/lib/homepage.js.map +1 -0
  67. package/dist/lib/markdown.d.ts +107 -0
  68. package/dist/lib/markdown.d.ts.map +1 -0
  69. package/dist/lib/markdown.js +318 -0
  70. package/dist/lib/markdown.js.map +1 -0
  71. package/dist/lib/mode-detection.d.ts +10 -0
  72. package/dist/lib/mode-detection.d.ts.map +1 -0
  73. package/dist/lib/mode-detection.js +29 -0
  74. package/dist/lib/mode-detection.js.map +1 -0
  75. package/dist/lib/naming.d.ts +47 -0
  76. package/dist/lib/naming.d.ts.map +1 -0
  77. package/dist/lib/naming.js +403 -0
  78. package/dist/lib/naming.js.map +1 -0
  79. package/dist/lib/schemas.d.ts +38 -0
  80. package/dist/lib/schemas.d.ts.map +1 -0
  81. package/dist/lib/schemas.js +248 -0
  82. package/dist/lib/schemas.js.map +1 -0
  83. package/dist/lib/templateLint.d.ts +21 -0
  84. package/dist/lib/templateLint.d.ts.map +1 -0
  85. package/dist/lib/templateLint.js +243 -0
  86. package/dist/lib/templateLint.js.map +1 -0
  87. package/dist/lib/templates.d.ts +53 -0
  88. package/dist/lib/templates.d.ts.map +1 -0
  89. package/dist/lib/templates.js +128 -0
  90. package/dist/lib/templates.js.map +1 -0
  91. package/dist/lib/tracking.d.ts +52 -0
  92. package/dist/lib/tracking.d.ts.map +1 -0
  93. package/dist/lib/tracking.js +135 -0
  94. package/dist/lib/tracking.js.map +1 -0
  95. package/dist/lib/types.generated.d.ts +54 -0
  96. package/dist/lib/types.generated.d.ts.map +1 -0
  97. package/dist/lib/types.generated.js +144 -0
  98. package/dist/lib/types.generated.js.map +1 -0
  99. package/dist/lib/validate-plugins.d.ts +22 -0
  100. package/dist/lib/validate-plugins.d.ts.map +1 -0
  101. package/dist/lib/validate-plugins.js +851 -0
  102. package/dist/lib/validate-plugins.js.map +1 -0
  103. package/package.json +85 -0
@@ -0,0 +1,253 @@
1
+ import { checkGitRepo, hasRemote, fetchRemote, getCurrentBranch, getCommitsBetween, isMergeInProgress, getMergeConflicts, createBackupBranch, merge, abortMerge, acceptMergeStrategy, getCurrentVersion, isWorkingDirectoryClean, } from '../lib/git.js';
2
+ import { loadTracking, isEjected, updateSyncInfo, recordConflict, } from '../lib/tracking.js';
3
+ import { detectInstallMode } from '../lib/mode-detection.js';
4
+ let chalk;
5
+ async function getChalk() {
6
+ if (!chalk) {
7
+ try {
8
+ chalk = (await import('chalk')).default;
9
+ }
10
+ catch {
11
+ chalk = {
12
+ green: (str) => str,
13
+ red: (str) => str,
14
+ yellow: (str) => str,
15
+ blue: (str) => str,
16
+ gray: (str) => str,
17
+ bold: (str) => str,
18
+ cyan: (str) => str,
19
+ magenta: (str) => str,
20
+ };
21
+ }
22
+ }
23
+ return chalk;
24
+ }
25
+ /**
26
+ * Continue a merge after manual conflict resolution
27
+ */
28
+ async function continueUpdate(cwd) {
29
+ const c = await getChalk();
30
+ const dir = cwd ?? process.cwd();
31
+ console.log(c.bold('\nšŸ”„ Continuing merge...\n'));
32
+ // Check if there's a merge in progress
33
+ if (!isMergeInProgress(dir)) {
34
+ throw new Error('No merge in progress. Nothing to continue.');
35
+ }
36
+ // Check if there are still conflicts
37
+ const conflicts = getMergeConflicts(dir);
38
+ if (conflicts.length > 0) {
39
+ console.log(c.red('āŒ Conflicts still exist:\n'));
40
+ conflicts.forEach(conflict => {
41
+ console.log(c.yellow(` ${conflict.status} ${conflict.path}`));
42
+ });
43
+ console.log(c.gray('\nResolve conflicts and stage files with "git add", then run "synapse update --continue"'));
44
+ process.exit(1);
45
+ }
46
+ // Commit the merge
47
+ const { execSync } = await import('child_process');
48
+ try {
49
+ execSync('git commit --no-edit', { cwd: dir, stdio: 'inherit' });
50
+ console.log(c.green('\nāœ… Merge completed successfully!'));
51
+ // Update tracking
52
+ const version = getCurrentVersion(dir);
53
+ await updateSyncInfo(version, dir);
54
+ await recordConflict([], 'manual', dir);
55
+ console.log(c.gray(`\nUpdated to version: ${version}`));
56
+ }
57
+ catch (error) {
58
+ throw new Error('Failed to commit merge. Please commit manually.');
59
+ }
60
+ }
61
+ /**
62
+ * Abort an in-progress merge
63
+ */
64
+ async function abortUpdate(cwd) {
65
+ const c = await getChalk();
66
+ const dir = cwd ?? process.cwd();
67
+ console.log(c.bold('\nšŸ›‘ Aborting merge...\n'));
68
+ if (!isMergeInProgress(dir)) {
69
+ throw new Error('No merge in progress. Nothing to abort.');
70
+ }
71
+ abortMerge(dir);
72
+ await recordConflict(getMergeConflicts(dir).map(c => c.path), 'aborted', dir);
73
+ console.log(c.yellow('āš ļø Merge aborted. Working directory restored to pre-merge state.'));
74
+ }
75
+ /**
76
+ * Accept all changes from one side during merge conflict
77
+ */
78
+ async function acceptStrategy(strategy, cwd) {
79
+ const c = await getChalk();
80
+ const dir = cwd ?? process.cwd();
81
+ const label = strategy === 'theirs' ? 'upstream' : 'local';
82
+ console.log(c.bold(`\nšŸ”€ Accepting all ${label} changes...\n`));
83
+ if (!isMergeInProgress(dir)) {
84
+ throw new Error('No merge in progress.');
85
+ }
86
+ const conflicts = getMergeConflicts(dir);
87
+ if (conflicts.length === 0) {
88
+ throw new Error('No conflicts to resolve.');
89
+ }
90
+ console.log(c.gray(`Resolving ${conflicts.length} conflict(s):\n`));
91
+ conflicts.forEach(conflict => {
92
+ console.log(c.gray(` ${conflict.path}`));
93
+ });
94
+ acceptMergeStrategy(strategy, undefined, dir);
95
+ console.log(c.green(`\nāœ… Accepted all ${label} changes`));
96
+ console.log(c.gray('Run "synapse update --continue" to complete the merge'));
97
+ }
98
+ /**
99
+ * Fetch and merge upstream changes
100
+ */
101
+ export async function update(options = {}) {
102
+ const c = await getChalk();
103
+ const rootDir = options.cwd ?? process.cwd();
104
+ // Handle special modes
105
+ if (options.abort) {
106
+ await abortUpdate(rootDir);
107
+ return;
108
+ }
109
+ if (options.acceptUpstream) {
110
+ await acceptStrategy('theirs', rootDir);
111
+ return;
112
+ }
113
+ if (options.acceptOurs) {
114
+ await acceptStrategy('ours', rootDir);
115
+ return;
116
+ }
117
+ if (options.continue) {
118
+ await continueUpdate(rootDir);
119
+ return;
120
+ }
121
+ // Normal update flow
122
+ console.log(c.bold('\nšŸ”„ Synapse Update\n'));
123
+ // Show deprecation warning in npm mode
124
+ const mode = detectInstallMode(rootDir);
125
+ if (mode === 'npm') {
126
+ console.log(c.yellow('DEPRECATED: "synapse update" is for fork-based installations.'));
127
+ console.log(c.yellow('Use `npm update @synapse/cli @synapse/schemas` instead for npm-based projects.\n'));
128
+ }
129
+ // Check git repository
130
+ if (!checkGitRepo(rootDir)) {
131
+ throw new Error('Not a git repository');
132
+ }
133
+ // Load tracking
134
+ const tracking = await loadTracking(rootDir);
135
+ // Check if ejected
136
+ if (await isEjected(rootDir)) {
137
+ throw new Error('Repository is ejected from upstream updates.\n' +
138
+ `Ejected on: ${tracking.ejectedAt}\n` +
139
+ `Ejected version: ${tracking.ejectedVersion}\n\n` +
140
+ 'Cannot update an ejected repository.');
141
+ }
142
+ // Check for clean working directory
143
+ if (!isWorkingDirectoryClean(rootDir)) {
144
+ throw new Error('Working directory has uncommitted changes.\n' +
145
+ 'Commit or stash your changes before updating.');
146
+ }
147
+ // Determine remote name and branch
148
+ const remoteName = options.remoteName || 'upstream';
149
+ const remoteBranch = options.remoteBranch || 'main';
150
+ const remoteRef = `${remoteName}/${remoteBranch}`;
151
+ // Check remote exists
152
+ if (!hasRemote(remoteName, rootDir)) {
153
+ throw new Error(`Remote "${remoteName}" not found.\n` +
154
+ `Add it with: git remote add ${remoteName} ${tracking.remote}`);
155
+ }
156
+ // Fetch from upstream
157
+ console.log(c.blue(`šŸ“” Fetching from ${remoteName}...`));
158
+ try {
159
+ fetchRemote(remoteName, rootDir);
160
+ console.log(c.green(` āœ“ Fetched from ${remoteName}`));
161
+ }
162
+ catch (error) {
163
+ throw new Error(`Failed to fetch from ${remoteName}: ${error}`);
164
+ }
165
+ // Get current branch
166
+ const currentBranch = getCurrentBranch(rootDir);
167
+ console.log(c.gray(`\nCurrent branch: ${currentBranch}`));
168
+ // Get commits between current and upstream
169
+ console.log(c.blue('\nšŸ“Š Checking for updates...'));
170
+ const commits = getCommitsBetween(currentBranch, remoteRef, rootDir);
171
+ if (commits.length === 0) {
172
+ console.log(c.green('\nāœ… Already up to date!'));
173
+ console.log(c.gray(`Version: ${tracking.version}`));
174
+ console.log(c.gray(`Last sync: ${new Date(tracking.lastSync).toLocaleString()}`));
175
+ return;
176
+ }
177
+ // Show commits summary
178
+ console.log(c.cyan(`\nšŸ“ ${commits.length} new commit(s) from upstream:\n`));
179
+ commits.slice(0, 10).forEach(commit => {
180
+ const shortHash = commit.hash.substring(0, 7);
181
+ const date = new Date(commit.date).toLocaleDateString();
182
+ console.log(c.gray(` ${shortHash} ${date} - ${commit.message}`));
183
+ });
184
+ if (commits.length > 10) {
185
+ console.log(c.gray(` ... and ${commits.length - 10} more`));
186
+ }
187
+ // Create backup branch
188
+ const backupBranch = `backup-${currentBranch}-${Date.now()}`;
189
+ console.log(c.blue(`\nšŸ’¾ Creating backup branch: ${backupBranch}`));
190
+ createBackupBranch(backupBranch, rootDir);
191
+ console.log(c.green(` āœ“ Created backup branch`));
192
+ // Attempt merge
193
+ console.log(c.blue(`\nšŸ”€ Merging ${remoteRef} into ${currentBranch}...`));
194
+ const mergeResult = merge(remoteRef, { noFf: true, cwd: rootDir });
195
+ if (mergeResult.success) {
196
+ // Clean merge
197
+ console.log(c.green('\nāœ… Merge completed successfully!'));
198
+ // Update tracking
199
+ const version = getCurrentVersion(rootDir);
200
+ await updateSyncInfo(version, rootDir);
201
+ console.log(c.gray(`\nUpdated to version: ${version}`));
202
+ console.log(c.gray(`Backup branch: ${backupBranch}`));
203
+ console.log(c.gray(`\nYou can delete the backup with: git branch -D ${backupBranch}`));
204
+ }
205
+ else {
206
+ // Conflicts detected
207
+ console.log(c.yellow('\nāš ļø Merge conflicts detected!\n'));
208
+ console.log(c.red(`Conflicts in ${mergeResult.conflicts.length} file(s):\n`));
209
+ mergeResult.conflicts.forEach(conflict => {
210
+ console.log(c.yellow(` ${conflict.status} ${conflict.path}`));
211
+ });
212
+ // Record conflict
213
+ await recordConflict(mergeResult.conflicts.map(c => c.path), 'manual', rootDir);
214
+ console.log(c.bold('\nšŸ“– Resolution options:\n'));
215
+ console.log(c.gray('1. Manual resolution:'));
216
+ console.log(c.gray(' - Edit conflicted files'));
217
+ console.log(c.gray(' - Stage resolved files: git add <file>'));
218
+ console.log(c.gray(' - Continue: synapse update --continue'));
219
+ console.log();
220
+ console.log(c.gray('2. Accept all upstream changes:'));
221
+ console.log(c.gray(' synapse update --accept-upstream'));
222
+ console.log();
223
+ console.log(c.gray('3. Keep all local changes:'));
224
+ console.log(c.gray(' synapse update --accept-ours'));
225
+ console.log();
226
+ console.log(c.gray('4. Abort merge:'));
227
+ console.log(c.gray(' synapse update --abort'));
228
+ console.log();
229
+ console.log(c.gray(`Backup branch: ${backupBranch}`));
230
+ process.exit(1);
231
+ }
232
+ }
233
+ /**
234
+ * CLI command handler for update
235
+ */
236
+ export async function updateCommand(args) {
237
+ const c = await getChalk();
238
+ try {
239
+ await update({
240
+ continue: args.continue,
241
+ acceptUpstream: args.acceptUpstream,
242
+ acceptOurs: args.acceptOurs,
243
+ abort: args.abort,
244
+ remoteName: args.remote,
245
+ remoteBranch: args.branch,
246
+ });
247
+ }
248
+ catch (error) {
249
+ console.error(c.red('\nError:'), error instanceof Error ? error.message : error);
250
+ process.exit(1);
251
+ }
252
+ }
253
+ //# sourceMappingURL=update.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"update.js","sourceRoot":"","sources":["../../src/commands/update.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,YAAY,EACZ,SAAS,EACT,WAAW,EACX,gBAAgB,EAChB,iBAAiB,EACjB,iBAAiB,EACjB,iBAAiB,EACjB,kBAAkB,EAClB,KAAK,EACL,UAAU,EACV,mBAAmB,EACnB,iBAAiB,EACjB,uBAAuB,GACxB,MAAM,eAAe,CAAC;AACvB,OAAO,EACL,YAAY,EACZ,SAAS,EACT,cAAc,EACd,cAAc,GACf,MAAM,oBAAoB,CAAC;AAC5B,OAAO,EAAE,iBAAiB,EAAE,MAAM,0BAA0B,CAAC;AAE7D,IAAI,KAAU,CAAC;AAEf,KAAK,UAAU,QAAQ;IACrB,IAAI,CAAC,KAAK,EAAE,CAAC;QACX,IAAI,CAAC;YACH,KAAK,GAAG,CAAC,MAAM,MAAM,CAAC,OAAO,CAAC,CAAC,CAAC,OAAO,CAAC;QAC1C,CAAC;QAAC,MAAM,CAAC;YACP,KAAK,GAAG;gBACN,KAAK,EAAE,CAAC,GAAW,EAAE,EAAE,CAAC,GAAG;gBAC3B,GAAG,EAAE,CAAC,GAAW,EAAE,EAAE,CAAC,GAAG;gBACzB,MAAM,EAAE,CAAC,GAAW,EAAE,EAAE,CAAC,GAAG;gBAC5B,IAAI,EAAE,CAAC,GAAW,EAAE,EAAE,CAAC,GAAG;gBAC1B,IAAI,EAAE,CAAC,GAAW,EAAE,EAAE,CAAC,GAAG;gBAC1B,IAAI,EAAE,CAAC,GAAW,EAAE,EAAE,CAAC,GAAG;gBAC1B,IAAI,EAAE,CAAC,GAAW,EAAE,EAAE,CAAC,GAAG;gBAC1B,OAAO,EAAE,CAAC,GAAW,EAAE,EAAE,CAAC,GAAG;aAC9B,CAAC;QACJ,CAAC;IACH,CAAC;IACD,OAAO,KAAK,CAAC;AACf,CAAC;AAYD;;GAEG;AACH,KAAK,UAAU,cAAc,CAAC,GAAY;IACxC,MAAM,CAAC,GAAG,MAAM,QAAQ,EAAE,CAAC;IAC3B,MAAM,GAAG,GAAG,GAAG,IAAI,OAAO,CAAC,GAAG,EAAE,CAAC;IAEjC,OAAO,CAAC,GAAG,CAAC,CAAC,CAAC,IAAI,CAAC,4BAA4B,CAAC,CAAC,CAAC;IAElD,uCAAuC;IACvC,IAAI,CAAC,iBAAiB,CAAC,GAAG,CAAC,EAAE,CAAC;QAC5B,MAAM,IAAI,KAAK,CAAC,4CAA4C,CAAC,CAAC;IAChE,CAAC;IAED,qCAAqC;IACrC,MAAM,SAAS,GAAG,iBAAiB,CAAC,GAAG,CAAC,CAAC;IACzC,IAAI,SAAS,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;QACzB,OAAO,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC,4BAA4B,CAAC,CAAC,CAAC;QACjD,SAAS,CAAC,OAAO,CAAC,QAAQ,CAAC,EAAE;YAC3B,OAAO,CAAC,GAAG,CAAC,CAAC,CAAC,MAAM,CAAC,MAAM,QAAQ,CAAC,MAAM,IAAI,QAAQ,CAAC,IAAI,EAAE,CAAC,CAAC,CAAC;QAClE,CAAC,CAAC,CAAC;QACH,OAAO,CAAC,GAAG,CAAC,CAAC,CAAC,IAAI,CAAC,0FAA0F,CAAC,CAAC,CAAC;QAChH,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;IAClB,CAAC;IAED,mBAAmB;IACnB,MAAM,EAAE,QAAQ,EAAE,GAAG,MAAM,MAAM,CAAC,eAAe,CAAC,CAAC;IACnD,IAAI,CAAC;QACH,QAAQ,CAAC,sBAAsB,EAAE,EAAE,GAAG,EAAE,GAAG,EAAE,KAAK,EAAE,SAAS,EAAE,CAAC,CAAC;QACjE,OAAO,CAAC,GAAG,CAAC,CAAC,CAAC,KAAK,CAAC,mCAAmC,CAAC,CAAC,CAAC;QAE1D,kBAAkB;QAClB,MAAM,OAAO,GAAG,iBAAiB,CAAC,GAAG,CAAC,CAAC;QACvC,MAAM,cAAc,CAAC,OAAO,EAAE,GAAG,CAAC,CAAC;QACnC,MAAM,cAAc,CAAC,EAAE,EAAE,QAAQ,EAAE,GAAG,CAAC,CAAC;QAExC,OAAO,CAAC,GAAG,CAAC,CAAC,CAAC,IAAI,CAAC,yBAAyB,OAAO,EAAE,CAAC,CAAC,CAAC;IAC1D,CAAC;IAAC,OAAO,KAAK,EAAE,CAAC;QACf,MAAM,IAAI,KAAK,CAAC,iDAAiD,CAAC,CAAC;IACrE,CAAC;AACH,CAAC;AAED;;GAEG;AACH,KAAK,UAAU,WAAW,CAAC,GAAY;IACrC,MAAM,CAAC,GAAG,MAAM,QAAQ,EAAE,CAAC;IAC3B,MAAM,GAAG,GAAG,GAAG,IAAI,OAAO,CAAC,GAAG,EAAE,CAAC;IAEjC,OAAO,CAAC,GAAG,CAAC,CAAC,CAAC,IAAI,CAAC,0BAA0B,CAAC,CAAC,CAAC;IAEhD,IAAI,CAAC,iBAAiB,CAAC,GAAG,CAAC,EAAE,CAAC;QAC5B,MAAM,IAAI,KAAK,CAAC,yCAAyC,CAAC,CAAC;IAC7D,CAAC;IAED,UAAU,CAAC,GAAG,CAAC,CAAC;IAChB,MAAM,cAAc,CAAC,iBAAiB,CAAC,GAAG,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,EAAE,SAAS,EAAE,GAAG,CAAC,CAAC;IAE9E,OAAO,CAAC,GAAG,CAAC,CAAC,CAAC,MAAM,CAAC,mEAAmE,CAAC,CAAC,CAAC;AAC7F,CAAC;AAED;;GAEG;AACH,KAAK,UAAU,cAAc,CAAC,QAA2B,EAAE,GAAY;IACrE,MAAM,CAAC,GAAG,MAAM,QAAQ,EAAE,CAAC;IAC3B,MAAM,GAAG,GAAG,GAAG,IAAI,OAAO,CAAC,GAAG,EAAE,CAAC;IACjC,MAAM,KAAK,GAAG,QAAQ,KAAK,QAAQ,CAAC,CAAC,CAAC,UAAU,CAAC,CAAC,CAAC,OAAO,CAAC;IAE3D,OAAO,CAAC,GAAG,CAAC,CAAC,CAAC,IAAI,CAAC,sBAAsB,KAAK,eAAe,CAAC,CAAC,CAAC;IAEhE,IAAI,CAAC,iBAAiB,CAAC,GAAG,CAAC,EAAE,CAAC;QAC5B,MAAM,IAAI,KAAK,CAAC,uBAAuB,CAAC,CAAC;IAC3C,CAAC;IAED,MAAM,SAAS,GAAG,iBAAiB,CAAC,GAAG,CAAC,CAAC;IACzC,IAAI,SAAS,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;QAC3B,MAAM,IAAI,KAAK,CAAC,0BAA0B,CAAC,CAAC;IAC9C,CAAC;IAED,OAAO,CAAC,GAAG,CAAC,CAAC,CAAC,IAAI,CAAC,aAAa,SAAS,CAAC,MAAM,iBAAiB,CAAC,CAAC,CAAC;IACpE,SAAS,CAAC,OAAO,CAAC,QAAQ,CAAC,EAAE;QAC3B,OAAO,CAAC,GAAG,CAAC,CAAC,CAAC,IAAI,CAAC,MAAM,QAAQ,CAAC,IAAI,EAAE,CAAC,CAAC,CAAC;IAC7C,CAAC,CAAC,CAAC;IAEH,mBAAmB,CAAC,QAAQ,EAAE,SAAS,EAAE,GAAG,CAAC,CAAC;IAE9C,OAAO,CAAC,GAAG,CAAC,CAAC,CAAC,KAAK,CAAC,oBAAoB,KAAK,UAAU,CAAC,CAAC,CAAC;IAC1D,OAAO,CAAC,GAAG,CAAC,CAAC,CAAC,IAAI,CAAC,uDAAuD,CAAC,CAAC,CAAC;AAC/E,CAAC;AAED;;GAEG;AACH,MAAM,CAAC,KAAK,UAAU,MAAM,CAAC,UAAyB,EAAE;IACtD,MAAM,CAAC,GAAG,MAAM,QAAQ,EAAE,CAAC;IAC3B,MAAM,OAAO,GAAG,OAAO,CAAC,GAAG,IAAI,OAAO,CAAC,GAAG,EAAE,CAAC;IAE7C,uBAAuB;IACvB,IAAI,OAAO,CAAC,KAAK,EAAE,CAAC;QAClB,MAAM,WAAW,CAAC,OAAO,CAAC,CAAC;QAC3B,OAAO;IACT,CAAC;IAED,IAAI,OAAO,CAAC,cAAc,EAAE,CAAC;QAC3B,MAAM,cAAc,CAAC,QAAQ,EAAE,OAAO,CAAC,CAAC;QACxC,OAAO;IACT,CAAC;IAED,IAAI,OAAO,CAAC,UAAU,EAAE,CAAC;QACvB,MAAM,cAAc,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;QACtC,OAAO;IACT,CAAC;IAED,IAAI,OAAO,CAAC,QAAQ,EAAE,CAAC;QACrB,MAAM,cAAc,CAAC,OAAO,CAAC,CAAC;QAC9B,OAAO;IACT,CAAC;IAED,qBAAqB;IACrB,OAAO,CAAC,GAAG,CAAC,CAAC,CAAC,IAAI,CAAC,uBAAuB,CAAC,CAAC,CAAC;IAE7C,uCAAuC;IACvC,MAAM,IAAI,GAAG,iBAAiB,CAAC,OAAO,CAAC,CAAC;IACxC,IAAI,IAAI,KAAK,KAAK,EAAE,CAAC;QACnB,OAAO,CAAC,GAAG,CAAC,CAAC,CAAC,MAAM,CAAC,+DAA+D,CAAC,CAAC,CAAC;QACvF,OAAO,CAAC,GAAG,CAAC,CAAC,CAAC,MAAM,CAAC,kFAAkF,CAAC,CAAC,CAAC;IAC5G,CAAC;IAED,uBAAuB;IACvB,IAAI,CAAC,YAAY,CAAC,OAAO,CAAC,EAAE,CAAC;QAC3B,MAAM,IAAI,KAAK,CAAC,sBAAsB,CAAC,CAAC;IAC1C,CAAC;IAED,gBAAgB;IAChB,MAAM,QAAQ,GAAG,MAAM,YAAY,CAAC,OAAO,CAAC,CAAC;IAE7C,mBAAmB;IACnB,IAAI,MAAM,SAAS,CAAC,OAAO,CAAC,EAAE,CAAC;QAC7B,MAAM,IAAI,KAAK,CACb,gDAAgD;YAChD,eAAe,QAAQ,CAAC,SAAS,IAAI;YACrC,oBAAoB,QAAQ,CAAC,cAAc,MAAM;YACjD,sCAAsC,CACvC,CAAC;IACJ,CAAC;IAED,oCAAoC;IACpC,IAAI,CAAC,uBAAuB,CAAC,OAAO,CAAC,EAAE,CAAC;QACtC,MAAM,IAAI,KAAK,CACb,8CAA8C;YAC9C,+CAA+C,CAChD,CAAC;IACJ,CAAC;IAED,mCAAmC;IACnC,MAAM,UAAU,GAAG,OAAO,CAAC,UAAU,IAAI,UAAU,CAAC;IACpD,MAAM,YAAY,GAAG,OAAO,CAAC,YAAY,IAAI,MAAM,CAAC;IACpD,MAAM,SAAS,GAAG,GAAG,UAAU,IAAI,YAAY,EAAE,CAAC;IAElD,sBAAsB;IACtB,IAAI,CAAC,SAAS,CAAC,UAAU,EAAE,OAAO,CAAC,EAAE,CAAC;QACpC,MAAM,IAAI,KAAK,CACb,WAAW,UAAU,gBAAgB;YACrC,+BAA+B,UAAU,IAAI,QAAQ,CAAC,MAAM,EAAE,CAC/D,CAAC;IACJ,CAAC;IAED,sBAAsB;IACtB,OAAO,CAAC,GAAG,CAAC,CAAC,CAAC,IAAI,CAAC,oBAAoB,UAAU,KAAK,CAAC,CAAC,CAAC;IACzD,IAAI,CAAC;QACH,WAAW,CAAC,UAAU,EAAE,OAAO,CAAC,CAAC;QACjC,OAAO,CAAC,GAAG,CAAC,CAAC,CAAC,KAAK,CAAC,qBAAqB,UAAU,EAAE,CAAC,CAAC,CAAC;IAC1D,CAAC;IAAC,OAAO,KAAK,EAAE,CAAC;QACf,MAAM,IAAI,KAAK,CAAC,wBAAwB,UAAU,KAAK,KAAK,EAAE,CAAC,CAAC;IAClE,CAAC;IAED,qBAAqB;IACrB,MAAM,aAAa,GAAG,gBAAgB,CAAC,OAAO,CAAC,CAAC;IAChD,OAAO,CAAC,GAAG,CAAC,CAAC,CAAC,IAAI,CAAC,qBAAqB,aAAa,EAAE,CAAC,CAAC,CAAC;IAE1D,2CAA2C;IAC3C,OAAO,CAAC,GAAG,CAAC,CAAC,CAAC,IAAI,CAAC,8BAA8B,CAAC,CAAC,CAAC;IACpD,MAAM,OAAO,GAAG,iBAAiB,CAAC,aAAa,EAAE,SAAS,EAAE,OAAO,CAAC,CAAC;IAErE,IAAI,OAAO,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;QACzB,OAAO,CAAC,GAAG,CAAC,CAAC,CAAC,KAAK,CAAC,yBAAyB,CAAC,CAAC,CAAC;QAChD,OAAO,CAAC,GAAG,CAAC,CAAC,CAAC,IAAI,CAAC,YAAY,QAAQ,CAAC,OAAO,EAAE,CAAC,CAAC,CAAC;QACpD,OAAO,CAAC,GAAG,CAAC,CAAC,CAAC,IAAI,CAAC,cAAc,IAAI,IAAI,CAAC,QAAQ,CAAC,QAAQ,CAAC,CAAC,cAAc,EAAE,EAAE,CAAC,CAAC,CAAC;QAClF,OAAO;IACT,CAAC;IAED,uBAAuB;IACvB,OAAO,CAAC,GAAG,CAAC,CAAC,CAAC,IAAI,CAAC,QAAQ,OAAO,CAAC,MAAM,iCAAiC,CAAC,CAAC,CAAC;IAC7E,OAAO,CAAC,KAAK,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,OAAO,CAAC,MAAM,CAAC,EAAE;QACpC,MAAM,SAAS,GAAG,MAAM,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC;QAC9C,MAAM,IAAI,GAAG,IAAI,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC,kBAAkB,EAAE,CAAC;QACxD,OAAO,CAAC,GAAG,CAAC,CAAC,CAAC,IAAI,CAAC,MAAM,SAAS,IAAI,IAAI,MAAM,MAAM,CAAC,OAAO,EAAE,CAAC,CAAC,CAAC;IACrE,CAAC,CAAC,CAAC;IAEH,IAAI,OAAO,CAAC,MAAM,GAAG,EAAE,EAAE,CAAC;QACxB,OAAO,CAAC,GAAG,CAAC,CAAC,CAAC,IAAI,CAAC,cAAc,OAAO,CAAC,MAAM,GAAG,EAAE,OAAO,CAAC,CAAC,CAAC;IAChE,CAAC;IAED,uBAAuB;IACvB,MAAM,YAAY,GAAG,UAAU,aAAa,IAAI,IAAI,CAAC,GAAG,EAAE,EAAE,CAAC;IAC7D,OAAO,CAAC,GAAG,CAAC,CAAC,CAAC,IAAI,CAAC,gCAAgC,YAAY,EAAE,CAAC,CAAC,CAAC;IACpE,kBAAkB,CAAC,YAAY,EAAE,OAAO,CAAC,CAAC;IAC1C,OAAO,CAAC,GAAG,CAAC,CAAC,CAAC,KAAK,CAAC,4BAA4B,CAAC,CAAC,CAAC;IAEnD,gBAAgB;IAChB,OAAO,CAAC,GAAG,CAAC,CAAC,CAAC,IAAI,CAAC,gBAAgB,SAAS,SAAS,aAAa,KAAK,CAAC,CAAC,CAAC;IAC1E,MAAM,WAAW,GAAG,KAAK,CAAC,SAAS,EAAE,EAAE,IAAI,EAAE,IAAI,EAAE,GAAG,EAAE,OAAO,EAAE,CAAC,CAAC;IAEnE,IAAI,WAAW,CAAC,OAAO,EAAE,CAAC;QACxB,cAAc;QACd,OAAO,CAAC,GAAG,CAAC,CAAC,CAAC,KAAK,CAAC,mCAAmC,CAAC,CAAC,CAAC;QAE1D,kBAAkB;QAClB,MAAM,OAAO,GAAG,iBAAiB,CAAC,OAAO,CAAC,CAAC;QAC3C,MAAM,cAAc,CAAC,OAAO,EAAE,OAAO,CAAC,CAAC;QAEvC,OAAO,CAAC,GAAG,CAAC,CAAC,CAAC,IAAI,CAAC,yBAAyB,OAAO,EAAE,CAAC,CAAC,CAAC;QACxD,OAAO,CAAC,GAAG,CAAC,CAAC,CAAC,IAAI,CAAC,kBAAkB,YAAY,EAAE,CAAC,CAAC,CAAC;QACtD,OAAO,CAAC,GAAG,CAAC,CAAC,CAAC,IAAI,CAAC,mDAAmD,YAAY,EAAE,CAAC,CAAC,CAAC;IACzF,CAAC;SAAM,CAAC;QACN,qBAAqB;QACrB,OAAO,CAAC,GAAG,CAAC,CAAC,CAAC,MAAM,CAAC,mCAAmC,CAAC,CAAC,CAAC;QAC3D,OAAO,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC,gBAAgB,WAAW,CAAC,SAAS,CAAC,MAAM,aAAa,CAAC,CAAC,CAAC;QAE9E,WAAW,CAAC,SAAS,CAAC,OAAO,CAAC,QAAQ,CAAC,EAAE;YACvC,OAAO,CAAC,GAAG,CAAC,CAAC,CAAC,MAAM,CAAC,MAAM,QAAQ,CAAC,MAAM,IAAI,QAAQ,CAAC,IAAI,EAAE,CAAC,CAAC,CAAC;QAClE,CAAC,CAAC,CAAC;QAEH,kBAAkB;QAClB,MAAM,cAAc,CAAC,WAAW,CAAC,SAAS,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,EAAE,QAAQ,EAAE,OAAO,CAAC,CAAC;QAEhF,OAAO,CAAC,GAAG,CAAC,CAAC,CAAC,IAAI,CAAC,4BAA4B,CAAC,CAAC,CAAC;QAClD,OAAO,CAAC,GAAG,CAAC,CAAC,CAAC,IAAI,CAAC,uBAAuB,CAAC,CAAC,CAAC;QAC7C,OAAO,CAAC,GAAG,CAAC,CAAC,CAAC,IAAI,CAAC,4BAA4B,CAAC,CAAC,CAAC;QAClD,OAAO,CAAC,GAAG,CAAC,CAAC,CAAC,IAAI,CAAC,2CAA2C,CAAC,CAAC,CAAC;QACjE,OAAO,CAAC,GAAG,CAAC,CAAC,CAAC,IAAI,CAAC,0CAA0C,CAAC,CAAC,CAAC;QAChE,OAAO,CAAC,GAAG,EAAE,CAAC;QACd,OAAO,CAAC,GAAG,CAAC,CAAC,CAAC,IAAI,CAAC,iCAAiC,CAAC,CAAC,CAAC;QACvD,OAAO,CAAC,GAAG,CAAC,CAAC,CAAC,IAAI,CAAC,qCAAqC,CAAC,CAAC,CAAC;QAC3D,OAAO,CAAC,GAAG,EAAE,CAAC;QACd,OAAO,CAAC,GAAG,CAAC,CAAC,CAAC,IAAI,CAAC,4BAA4B,CAAC,CAAC,CAAC;QAClD,OAAO,CAAC,GAAG,CAAC,CAAC,CAAC,IAAI,CAAC,iCAAiC,CAAC,CAAC,CAAC;QACvD,OAAO,CAAC,GAAG,EAAE,CAAC;QACd,OAAO,CAAC,GAAG,CAAC,CAAC,CAAC,IAAI,CAAC,iBAAiB,CAAC,CAAC,CAAC;QACvC,OAAO,CAAC,GAAG,CAAC,CAAC,CAAC,IAAI,CAAC,2BAA2B,CAAC,CAAC,CAAC;QACjD,OAAO,CAAC,GAAG,EAAE,CAAC;QACd,OAAO,CAAC,GAAG,CAAC,CAAC,CAAC,IAAI,CAAC,kBAAkB,YAAY,EAAE,CAAC,CAAC,CAAC;QAEtD,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;IAClB,CAAC;AACH,CAAC;AAED;;GAEG;AACH,MAAM,CAAC,KAAK,UAAU,aAAa,CAAC,IAOnC;IACC,MAAM,CAAC,GAAG,MAAM,QAAQ,EAAE,CAAC;IAE3B,IAAI,CAAC;QACH,MAAM,MAAM,CAAC;YACX,QAAQ,EAAE,IAAI,CAAC,QAAQ;YACvB,cAAc,EAAE,IAAI,CAAC,cAAc;YACnC,UAAU,EAAE,IAAI,CAAC,UAAU;YAC3B,KAAK,EAAE,IAAI,CAAC,KAAK;YACjB,UAAU,EAAE,IAAI,CAAC,MAAM;YACvB,YAAY,EAAE,IAAI,CAAC,MAAM;SAC1B,CAAC,CAAC;IACL,CAAC;IAAC,OAAO,KAAK,EAAE,CAAC;QACf,OAAO,CAAC,KAAK,CAAC,CAAC,CAAC,GAAG,CAAC,UAAU,CAAC,EAAE,KAAK,YAAY,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC;QACjF,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;IAClB,CAAC;AACH,CAAC"}
@@ -0,0 +1,37 @@
1
+ export interface ValidationIssue {
2
+ type: "error" | "warning";
3
+ code: string;
4
+ message: string;
5
+ file?: string;
6
+ line?: number;
7
+ column?: number;
8
+ field?: string;
9
+ sectionId?: string;
10
+ }
11
+ export interface ValidationResult {
12
+ success: boolean;
13
+ issues: ValidationIssue[];
14
+ filesValidated: number;
15
+ }
16
+ /**
17
+ * Main validation function
18
+ */
19
+ export declare function validate(options: {
20
+ contentDir?: string;
21
+ schemaDir?: string;
22
+ pattern?: string;
23
+ strict?: boolean;
24
+ }): Promise<ValidationResult>;
25
+ /**
26
+ * CLI handler for validate command
27
+ */
28
+ export declare function validateCommand(args: {
29
+ dir?: string;
30
+ schema?: string;
31
+ pattern?: string;
32
+ strict?: boolean;
33
+ quiet?: boolean;
34
+ format?: string;
35
+ examples?: boolean;
36
+ }): Promise<void>;
37
+ //# sourceMappingURL=validate.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"validate.d.ts","sourceRoot":"","sources":["../../src/commands/validate.ts"],"names":[],"mappings":"AAeA,MAAM,WAAW,eAAe;IAC9B,IAAI,EAAE,OAAO,GAAG,SAAS,CAAC;IAC1B,IAAI,EAAE,MAAM,CAAC;IACb,OAAO,EAAE,MAAM,CAAC;IAChB,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,SAAS,CAAC,EAAE,MAAM,CAAC;CACpB;AAED,MAAM,WAAW,gBAAgB;IAC/B,OAAO,EAAE,OAAO,CAAC;IACjB,MAAM,EAAE,eAAe,EAAE,CAAC;IAC1B,cAAc,EAAE,MAAM,CAAC;CACxB;AA2RD;;GAEG;AACH,wBAAsB,QAAQ,CAAC,OAAO,EAAE;IACtC,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,MAAM,CAAC,EAAE,OAAO,CAAC;CAClB,GAAG,OAAO,CAAC,gBAAgB,CAAC,CA4L5B;AAED;;GAEG;AACH,wBAAsB,eAAe,CAAC,IAAI,EAAE;IAC1C,GAAG,CAAC,EAAE,MAAM,CAAC;IACb,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,MAAM,CAAC,EAAE,OAAO,CAAC;IACjB,KAAK,CAAC,EAAE,OAAO,CAAC;IAChB,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,QAAQ,CAAC,EAAE,OAAO,CAAC;CACpB,GAAG,OAAO,CAAC,IAAI,CAAC,CAwHhB"}