@pie-element/cli 0.1.1

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 (255) hide show
  1. package/.compatibility/report.json +2491 -0
  2. package/.turbo/turbo-build.log +1 -0
  3. package/CHANGELOG.md +8 -0
  4. package/README.md +240 -0
  5. package/REFACTORING.md +131 -0
  6. package/bin/dev.js +5 -0
  7. package/bin/run.js +5 -0
  8. package/dist/commands/dev/demo/index.d.ts +33 -0
  9. package/dist/commands/dev/demo/index.d.ts.map +1 -0
  10. package/dist/commands/dev/demo/index.js +274 -0
  11. package/dist/commands/dev/demo/index.js.map +1 -0
  12. package/dist/commands/dev/test-bundler.d.ts +18 -0
  13. package/dist/commands/dev/test-bundler.d.ts.map +1 -0
  14. package/dist/commands/dev/test-bundler.js +284 -0
  15. package/dist/commands/dev/test-bundler.js.map +1 -0
  16. package/dist/commands/mathquill/migrate.d.ts +20 -0
  17. package/dist/commands/mathquill/migrate.d.ts.map +1 -0
  18. package/dist/commands/mathquill/migrate.js +240 -0
  19. package/dist/commands/mathquill/migrate.js.map +1 -0
  20. package/dist/commands/mathquill/status.d.ts +20 -0
  21. package/dist/commands/mathquill/status.d.ts.map +1 -0
  22. package/dist/commands/mathquill/status.js +231 -0
  23. package/dist/commands/mathquill/status.js.map +1 -0
  24. package/dist/commands/packages/create-controllers.d.ts +13 -0
  25. package/dist/commands/packages/create-controllers.d.ts.map +1 -0
  26. package/dist/commands/packages/create-controllers.js +103 -0
  27. package/dist/commands/packages/create-controllers.js.map +1 -0
  28. package/dist/commands/packages/create-lib-react.d.ts +17 -0
  29. package/dist/commands/packages/create-lib-react.d.ts.map +1 -0
  30. package/dist/commands/packages/create-lib-react.js +228 -0
  31. package/dist/commands/packages/create-lib-react.js.map +1 -0
  32. package/dist/commands/packages/create-react-elements.d.ts +16 -0
  33. package/dist/commands/packages/create-react-elements.d.ts.map +1 -0
  34. package/dist/commands/packages/create-react-elements.js +259 -0
  35. package/dist/commands/packages/create-react-elements.js.map +1 -0
  36. package/dist/commands/packages/enable-publishing.d.ts +11 -0
  37. package/dist/commands/packages/enable-publishing.d.ts.map +1 -0
  38. package/dist/commands/packages/enable-publishing.js +117 -0
  39. package/dist/commands/packages/enable-publishing.js.map +1 -0
  40. package/dist/commands/packages/init-synced-elements.d.ts +16 -0
  41. package/dist/commands/packages/init-synced-elements.d.ts.map +1 -0
  42. package/dist/commands/packages/init-synced-elements.js +204 -0
  43. package/dist/commands/packages/init-synced-elements.js.map +1 -0
  44. package/dist/commands/upstream/analyze-esm.d.ts +59 -0
  45. package/dist/commands/upstream/analyze-esm.d.ts.map +1 -0
  46. package/dist/commands/upstream/analyze-esm.js +1481 -0
  47. package/dist/commands/upstream/analyze-esm.js.map +1 -0
  48. package/dist/commands/upstream/check.d.ts +15 -0
  49. package/dist/commands/upstream/check.d.ts.map +1 -0
  50. package/dist/commands/upstream/check.js +165 -0
  51. package/dist/commands/upstream/check.js.map +1 -0
  52. package/dist/commands/upstream/deps.d.ts +15 -0
  53. package/dist/commands/upstream/deps.d.ts.map +1 -0
  54. package/dist/commands/upstream/deps.js +174 -0
  55. package/dist/commands/upstream/deps.js.map +1 -0
  56. package/dist/commands/upstream/sync-mathquill.d.ts +12 -0
  57. package/dist/commands/upstream/sync-mathquill.d.ts.map +1 -0
  58. package/dist/commands/upstream/sync-mathquill.js +97 -0
  59. package/dist/commands/upstream/sync-mathquill.js.map +1 -0
  60. package/dist/commands/upstream/sync.d.ts +25 -0
  61. package/dist/commands/upstream/sync.d.ts.map +1 -0
  62. package/dist/commands/upstream/sync.js +552 -0
  63. package/dist/commands/upstream/sync.js.map +1 -0
  64. package/dist/commands/upstream/track.d.ts +15 -0
  65. package/dist/commands/upstream/track.d.ts.map +1 -0
  66. package/dist/commands/upstream/track.js +115 -0
  67. package/dist/commands/upstream/track.js.map +1 -0
  68. package/dist/commands/upstream/update.d.ts +15 -0
  69. package/dist/commands/upstream/update.d.ts.map +1 -0
  70. package/dist/commands/upstream/update.js +98 -0
  71. package/dist/commands/upstream/update.js.map +1 -0
  72. package/dist/commands/verify/controllers.d.ts +12 -0
  73. package/dist/commands/verify/controllers.d.ts.map +1 -0
  74. package/dist/commands/verify/controllers.js +138 -0
  75. package/dist/commands/verify/controllers.js.map +1 -0
  76. package/dist/commands/verify/react-build.d.ts +13 -0
  77. package/dist/commands/verify/react-build.d.ts.map +1 -0
  78. package/dist/commands/verify/react-build.js +135 -0
  79. package/dist/commands/verify/react-build.js.map +1 -0
  80. package/dist/index.d.ts +2 -0
  81. package/dist/index.d.ts.map +1 -0
  82. package/dist/index.js +2 -0
  83. package/dist/index.js.map +1 -0
  84. package/dist/lib/mathquill/extension-generator.d.ts +9 -0
  85. package/dist/lib/mathquill/extension-generator.d.ts.map +1 -0
  86. package/dist/lib/mathquill/extension-generator.js +107 -0
  87. package/dist/lib/mathquill/extension-generator.js.map +1 -0
  88. package/dist/lib/mathquill/khan-extractor.d.ts +16 -0
  89. package/dist/lib/mathquill/khan-extractor.d.ts.map +1 -0
  90. package/dist/lib/mathquill/khan-extractor.js +148 -0
  91. package/dist/lib/mathquill/khan-extractor.js.map +1 -0
  92. package/dist/lib/mathquill/learnosity-extractor.d.ts +15 -0
  93. package/dist/lib/mathquill/learnosity-extractor.d.ts.map +1 -0
  94. package/dist/lib/mathquill/learnosity-extractor.js +170 -0
  95. package/dist/lib/mathquill/learnosity-extractor.js.map +1 -0
  96. package/dist/lib/mathquill/migration-orchestrator.d.ts +77 -0
  97. package/dist/lib/mathquill/migration-orchestrator.d.ts.map +1 -0
  98. package/dist/lib/mathquill/migration-orchestrator.js +391 -0
  99. package/dist/lib/mathquill/migration-orchestrator.js.map +1 -0
  100. package/dist/lib/mathquill/package-updater.d.ts +9 -0
  101. package/dist/lib/mathquill/package-updater.d.ts.map +1 -0
  102. package/dist/lib/mathquill/package-updater.js +103 -0
  103. package/dist/lib/mathquill/package-updater.js.map +1 -0
  104. package/dist/lib/mathquill/pie-extractor.d.ts +14 -0
  105. package/dist/lib/mathquill/pie-extractor.d.ts.map +1 -0
  106. package/dist/lib/mathquill/pie-extractor.js +167 -0
  107. package/dist/lib/mathquill/pie-extractor.js.map +1 -0
  108. package/dist/lib/upstream/repo-utils.d.ts +9 -0
  109. package/dist/lib/upstream/repo-utils.d.ts.map +1 -0
  110. package/dist/lib/upstream/repo-utils.js +10 -0
  111. package/dist/lib/upstream/repo-utils.js.map +1 -0
  112. package/dist/lib/upstream/sync-compatibility.d.ts +29 -0
  113. package/dist/lib/upstream/sync-compatibility.d.ts.map +1 -0
  114. package/dist/lib/upstream/sync-compatibility.js +70 -0
  115. package/dist/lib/upstream/sync-compatibility.js.map +1 -0
  116. package/dist/lib/upstream/sync-constants.d.ts +50 -0
  117. package/dist/lib/upstream/sync-constants.d.ts.map +1 -0
  118. package/dist/lib/upstream/sync-constants.js +66 -0
  119. package/dist/lib/upstream/sync-constants.js.map +1 -0
  120. package/dist/lib/upstream/sync-controllers-strategy.d.ts +18 -0
  121. package/dist/lib/upstream/sync-controllers-strategy.d.ts.map +1 -0
  122. package/dist/lib/upstream/sync-controllers-strategy.js +243 -0
  123. package/dist/lib/upstream/sync-controllers-strategy.js.map +1 -0
  124. package/dist/lib/upstream/sync-demo-metadata.d.ts +15 -0
  125. package/dist/lib/upstream/sync-demo-metadata.d.ts.map +1 -0
  126. package/dist/lib/upstream/sync-demo-metadata.js +165 -0
  127. package/dist/lib/upstream/sync-demo-metadata.js.map +1 -0
  128. package/dist/lib/upstream/sync-dev-exports.d.ts +13 -0
  129. package/dist/lib/upstream/sync-dev-exports.d.ts.map +1 -0
  130. package/dist/lib/upstream/sync-dev-exports.js +115 -0
  131. package/dist/lib/upstream/sync-dev-exports.js.map +1 -0
  132. package/dist/lib/upstream/sync-externals.d.ts +29 -0
  133. package/dist/lib/upstream/sync-externals.d.ts.map +1 -0
  134. package/dist/lib/upstream/sync-externals.js +164 -0
  135. package/dist/lib/upstream/sync-externals.js.map +1 -0
  136. package/dist/lib/upstream/sync-filesystem.d.ts +21 -0
  137. package/dist/lib/upstream/sync-filesystem.d.ts.map +1 -0
  138. package/dist/lib/upstream/sync-filesystem.js +64 -0
  139. package/dist/lib/upstream/sync-filesystem.js.map +1 -0
  140. package/dist/lib/upstream/sync-imports.d.ts +284 -0
  141. package/dist/lib/upstream/sync-imports.d.ts.map +1 -0
  142. package/dist/lib/upstream/sync-imports.js +816 -0
  143. package/dist/lib/upstream/sync-imports.js.map +1 -0
  144. package/dist/lib/upstream/sync-mathquill.d.ts +19 -0
  145. package/dist/lib/upstream/sync-mathquill.d.ts.map +1 -0
  146. package/dist/lib/upstream/sync-mathquill.js +160 -0
  147. package/dist/lib/upstream/sync-mathquill.js.map +1 -0
  148. package/dist/lib/upstream/sync-package-json.d.ts +28 -0
  149. package/dist/lib/upstream/sync-package-json.d.ts.map +1 -0
  150. package/dist/lib/upstream/sync-package-json.js +66 -0
  151. package/dist/lib/upstream/sync-package-json.js.map +1 -0
  152. package/dist/lib/upstream/sync-package-manager.d.ts +50 -0
  153. package/dist/lib/upstream/sync-package-manager.d.ts.map +1 -0
  154. package/dist/lib/upstream/sync-package-manager.js +570 -0
  155. package/dist/lib/upstream/sync-package-manager.js.map +1 -0
  156. package/dist/lib/upstream/sync-pielib-strategy.d.ts +26 -0
  157. package/dist/lib/upstream/sync-pielib-strategy.d.ts.map +1 -0
  158. package/dist/lib/upstream/sync-pielib-strategy.js +345 -0
  159. package/dist/lib/upstream/sync-pielib-strategy.js.map +1 -0
  160. package/dist/lib/upstream/sync-react-strategy.d.ts +54 -0
  161. package/dist/lib/upstream/sync-react-strategy.d.ts.map +1 -0
  162. package/dist/lib/upstream/sync-react-strategy.js +733 -0
  163. package/dist/lib/upstream/sync-react-strategy.js.map +1 -0
  164. package/dist/lib/upstream/sync-strategy.d.ts +49 -0
  165. package/dist/lib/upstream/sync-strategy.d.ts.map +1 -0
  166. package/dist/lib/upstream/sync-strategy.js +2 -0
  167. package/dist/lib/upstream/sync-strategy.js.map +1 -0
  168. package/dist/lib/upstream/sync-summary.d.ts +20 -0
  169. package/dist/lib/upstream/sync-summary.d.ts.map +1 -0
  170. package/dist/lib/upstream/sync-summary.js +157 -0
  171. package/dist/lib/upstream/sync-summary.js.map +1 -0
  172. package/dist/lib/upstream/sync-transforms.d.ts +60 -0
  173. package/dist/lib/upstream/sync-transforms.d.ts.map +1 -0
  174. package/dist/lib/upstream/sync-transforms.js +97 -0
  175. package/dist/lib/upstream/sync-transforms.js.map +1 -0
  176. package/dist/lib/upstream/sync-vite-config.d.ts +13 -0
  177. package/dist/lib/upstream/sync-vite-config.d.ts.map +1 -0
  178. package/dist/lib/upstream/sync-vite-config.js +231 -0
  179. package/dist/lib/upstream/sync-vite-config.js.map +1 -0
  180. package/dist/utils/compatibility.d.ts +129 -0
  181. package/dist/utils/compatibility.d.ts.map +1 -0
  182. package/dist/utils/compatibility.js +44 -0
  183. package/dist/utils/compatibility.js.map +1 -0
  184. package/dist/utils/conversion.d.ts +25 -0
  185. package/dist/utils/conversion.d.ts.map +1 -0
  186. package/dist/utils/conversion.js +123 -0
  187. package/dist/utils/conversion.js.map +1 -0
  188. package/dist/utils/git.d.ts +7 -0
  189. package/dist/utils/git.d.ts.map +1 -0
  190. package/dist/utils/git.js +63 -0
  191. package/dist/utils/git.js.map +1 -0
  192. package/dist/utils/logger.d.ts +29 -0
  193. package/dist/utils/logger.d.ts.map +1 -0
  194. package/dist/utils/logger.js +63 -0
  195. package/dist/utils/logger.js.map +1 -0
  196. package/dist/utils/package-json.d.ts +12 -0
  197. package/dist/utils/package-json.d.ts.map +1 -0
  198. package/dist/utils/package-json.js +29 -0
  199. package/dist/utils/package-json.js.map +1 -0
  200. package/package.json +59 -0
  201. package/packages/cli/bin/dev.js +5 -0
  202. package/packages/cli/bin/run.js +5 -0
  203. package/src/commands/dev/demo/index.ts +313 -0
  204. package/src/commands/dev/test-bundler.ts +345 -0
  205. package/src/commands/mathquill/migrate.ts +269 -0
  206. package/src/commands/mathquill/status.ts +267 -0
  207. package/src/commands/packages/create-controllers.ts +127 -0
  208. package/src/commands/packages/create-lib-react.ts +279 -0
  209. package/src/commands/packages/create-react-elements.ts +306 -0
  210. package/src/commands/packages/enable-publishing.ts +161 -0
  211. package/src/commands/packages/init-synced-elements.ts +259 -0
  212. package/src/commands/upstream/README.md +444 -0
  213. package/src/commands/upstream/analyze-esm.ts +1973 -0
  214. package/src/commands/upstream/check.ts +228 -0
  215. package/src/commands/upstream/deps.ts +222 -0
  216. package/src/commands/upstream/sync-mathquill.ts +108 -0
  217. package/src/commands/upstream/sync.ts +687 -0
  218. package/src/commands/upstream/track.ts +145 -0
  219. package/src/commands/upstream/update.ts +110 -0
  220. package/src/commands/verify/controllers.ts +166 -0
  221. package/src/commands/verify/react-build.ts +171 -0
  222. package/src/index.ts +1 -0
  223. package/src/lib/mathquill/extension-generator.ts +111 -0
  224. package/src/lib/mathquill/khan-extractor.ts +175 -0
  225. package/src/lib/mathquill/learnosity-extractor.ts +198 -0
  226. package/src/lib/mathquill/migration-orchestrator.ts +513 -0
  227. package/src/lib/mathquill/package-updater.ts +120 -0
  228. package/src/lib/mathquill/pie-extractor.ts +194 -0
  229. package/src/lib/upstream/repo-utils.ts +18 -0
  230. package/src/lib/upstream/sync-compatibility.ts +89 -0
  231. package/src/lib/upstream/sync-constants.ts +77 -0
  232. package/src/lib/upstream/sync-controllers-strategy.ts +291 -0
  233. package/src/lib/upstream/sync-demo-metadata.ts +199 -0
  234. package/src/lib/upstream/sync-dev-exports.ts +151 -0
  235. package/src/lib/upstream/sync-externals.ts +159 -0
  236. package/src/lib/upstream/sync-filesystem.ts +87 -0
  237. package/src/lib/upstream/sync-imports.ts +992 -0
  238. package/src/lib/upstream/sync-mathquill.ts +194 -0
  239. package/src/lib/upstream/sync-package-json.ts +86 -0
  240. package/src/lib/upstream/sync-package-manager.ts +694 -0
  241. package/src/lib/upstream/sync-pielib-strategy.ts +441 -0
  242. package/src/lib/upstream/sync-react-strategy.ts +945 -0
  243. package/src/lib/upstream/sync-strategy.ts +61 -0
  244. package/src/lib/upstream/sync-summary.ts +194 -0
  245. package/src/lib/upstream/sync-transforms.ts +154 -0
  246. package/src/lib/upstream/sync-vite-config.ts +243 -0
  247. package/src/types/es-module-lexer.d.ts +4 -0
  248. package/src/utils/compatibility.ts +182 -0
  249. package/src/utils/conversion.ts +153 -0
  250. package/src/utils/git.ts +63 -0
  251. package/src/utils/logger.ts +69 -0
  252. package/src/utils/package-json.ts +43 -0
  253. package/tests/sync-package-manager.test.ts +112 -0
  254. package/tests/transform-assign-props.test.ts +101 -0
  255. package/tsconfig.json +15 -0
@@ -0,0 +1,552 @@
1
+ import { Command, Flags } from '@oclif/core';
2
+ import { Logger } from '../../utils/logger.js';
3
+ import { loadCompatibilityReport } from '../../utils/compatibility.js';
4
+ import { getCurrentCommit } from '../../utils/git.js';
5
+ import { printSyncSummary, createEmptySummary } from '../../lib/upstream/sync-summary.js';
6
+ import { loadPackageJson } from '../../utils/package-json.js';
7
+ import { spawn } from 'node:child_process';
8
+ import { existsSync } from 'node:fs';
9
+ import { join } from 'node:path';
10
+ import { readdir } from '../../lib/upstream/sync-filesystem.js';
11
+ import { getAllDeps } from '../../lib/upstream/sync-package-json.js';
12
+ import { ControllersStrategy } from '../../lib/upstream/sync-controllers-strategy.js';
13
+ import { ReactComponentsStrategy } from '../../lib/upstream/sync-react-strategy.js';
14
+ import { PieLibStrategy } from '../../lib/upstream/sync-pielib-strategy.js';
15
+ import { DEFAULT_PATHS, COMPATIBILITY_FILE, WORKSPACE } from '../../lib/upstream/sync-constants.js';
16
+ import { assertReposExist } from '../../lib/upstream/repo-utils.js';
17
+ import { addDevelopmentExports } from '../../lib/upstream/sync-dev-exports.js';
18
+ export default class Sync extends Command {
19
+ static description = 'Synchronize code from upstream pie-elements repository';
20
+ static examples = [
21
+ '<%= config.bin %> <%= command.id %> --dry-run',
22
+ '<%= config.bin %> <%= command.id %> --element=multiple-choice',
23
+ '<%= config.bin %> <%= command.id %>',
24
+ ];
25
+ static flags = {
26
+ 'dry-run': Flags.boolean({
27
+ description: 'Show what would be synced without making changes',
28
+ default: false,
29
+ }),
30
+ verbose: Flags.boolean({
31
+ char: 'v',
32
+ description: 'Show detailed output',
33
+ default: false,
34
+ }),
35
+ element: Flags.string({
36
+ description: 'Sync only specified element (if ESM-compatible)',
37
+ }),
38
+ };
39
+ logger = new Logger();
40
+ touchedElementPackages = new Set();
41
+ touchedPieLibPackages = new Set();
42
+ async run() {
43
+ const { flags } = await this.parse(Sync);
44
+ this.logger = new Logger(flags.verbose);
45
+ const config = {
46
+ pieElements: DEFAULT_PATHS.PIE_ELEMENTS,
47
+ pieLib: DEFAULT_PATHS.PIE_LIB,
48
+ pieElementsNg: DEFAULT_PATHS.PIE_ELEMENTS_NG,
49
+ syncControllers: true,
50
+ syncReactComponents: true,
51
+ syncPieLibPackages: false,
52
+ useEsmFilter: true,
53
+ compatibilityFile: COMPATIBILITY_FILE,
54
+ dryRun: flags['dry-run'],
55
+ verbose: flags.verbose,
56
+ rewritePackageJson: true,
57
+ skipBuild: false,
58
+ autoSyncPieLibDeps: true,
59
+ elementsSpecifiedByUser: !!flags.element,
60
+ pieLibPackagesSpecifiedByUser: false,
61
+ };
62
+ // Configure filters
63
+ if (flags.element) {
64
+ config.elements = [flags.element];
65
+ }
66
+ await this.syncUpstream(config);
67
+ }
68
+ async syncUpstream(config) {
69
+ const syncSummary = createEmptySummary();
70
+ const result = {
71
+ filesChecked: 0,
72
+ filesCopied: 0,
73
+ filesSkipped: 0,
74
+ filesUpdated: 0,
75
+ errors: [],
76
+ warnings: [],
77
+ };
78
+ // Reset touched packages for this run
79
+ this.touchedElementPackages = new Set();
80
+ this.touchedPieLibPackages = new Set();
81
+ this.logger.section('🔄 Syncing from upstream');
82
+ this.logger.info(` Source: ${config.pieElements}`);
83
+ this.logger.info(` Destination: ${config.pieElementsNg}/packages/`);
84
+ this.logger.info(` Mode: ${config.dryRun ? 'DRY RUN' : 'LIVE'}\n`);
85
+ // Apply ESM compatibility filter (also returns report for summary)
86
+ const compatibilityReport = await this.applyEsmFilter(config);
87
+ // Auto-sync pie-lib dependencies for selected elements (unless explicit pie-lib mode)
88
+ if (config.autoSyncPieLibDeps) {
89
+ const elementsToSync = await this.listElementPackages(config);
90
+ const requiredPieLib = await this.collectPieLibDepsFromElements(config, elementsToSync);
91
+ if (requiredPieLib.length > 0) {
92
+ config.syncPieLibPackages = true;
93
+ config.pieLibPackages = requiredPieLib;
94
+ if (config.verbose) {
95
+ this.logger.info(` Auto pie-lib deps: ${requiredPieLib.length} package(s) required by selected elements`);
96
+ }
97
+ }
98
+ }
99
+ // Merge with ESM-compatible pie-lib packages from compatibility report
100
+ // (This ensures packages like controller-utils that are imported in controllers but not declared in package.json get synced)
101
+ // BUT: Only merge ALL packages when doing a full sync (no specific elements specified)
102
+ // When syncing specific elements, only sync the required deps (don't merge all 23 compat packages)
103
+ if (compatibilityReport?.pieLibPackages && compatibilityReport.pieLibPackages.length > 0) {
104
+ config.syncPieLibPackages = true;
105
+ const autoDeps = new Set(config.pieLibPackages || []);
106
+ // Only merge all compatible packages when doing a full sync
107
+ if (!config.elementsSpecifiedByUser) {
108
+ const compatiblePkgs = compatibilityReport.pieLibPackages;
109
+ const merged = new Set([...autoDeps, ...compatiblePkgs]);
110
+ config.pieLibPackages = Array.from(merged);
111
+ const additionalCount = config.pieLibPackages.length - autoDeps.size;
112
+ if (config.verbose && additionalCount > 0) {
113
+ this.logger.info(` Additional ESM-compatible pie-lib: ${additionalCount} package(s) from compatibility report`);
114
+ }
115
+ }
116
+ else {
117
+ // For targeted element sync, only sync required deps (don't bloat with all 23 packages)
118
+ if (config.verbose && autoDeps.size > 0) {
119
+ this.logger.info(` Targeted sync: ${autoDeps.size} pie-lib package(s) required by ${config.elements?.[0]}`);
120
+ }
121
+ }
122
+ }
123
+ // Verify repos exist
124
+ try {
125
+ assertReposExist([{ label: 'pie-elements', path: config.pieElements }]);
126
+ }
127
+ catch (error) {
128
+ this.logger.error(error instanceof Error ? error.message : String(error));
129
+ this.error('Sync failed', { exit: 1 });
130
+ }
131
+ // Clean target directories first (ensures a clean slate for full syncs)
132
+ await this.cleanTargetDirectories(config);
133
+ // Execute sync strategies
134
+ const strategies = [
135
+ new ControllersStrategy(),
136
+ new ReactComponentsStrategy(),
137
+ new PieLibStrategy(),
138
+ ];
139
+ const context = {
140
+ config: {
141
+ pieElements: config.pieElements,
142
+ pieLib: config.pieLib,
143
+ pieElementsNg: config.pieElementsNg,
144
+ syncControllers: config.syncControllers,
145
+ syncReactComponents: config.syncReactComponents,
146
+ syncPieLib: config.syncPieLibPackages,
147
+ pieLibPackages: config.pieLibPackages,
148
+ skipDemos: true,
149
+ upstreamCommit: getCurrentCommit(config.pieElements),
150
+ },
151
+ logger: this.logger,
152
+ // Only set packageFilter if user explicitly specified a single element
153
+ packageFilter: config.elementsSpecifiedByUser ? config.elements?.[0] : undefined,
154
+ compatibilityReport: compatibilityReport || undefined,
155
+ };
156
+ for (const strategy of strategies) {
157
+ if (strategy.shouldRun(context.config)) {
158
+ const result = await strategy.execute(context);
159
+ // Track by strategy type
160
+ const desc = strategy.getDescription();
161
+ if (desc === 'controllers') {
162
+ syncSummary.controllersSync = result.count;
163
+ }
164
+ else if (desc === 'React components') {
165
+ syncSummary.reactComponentsSynced = result.count;
166
+ // Track touched React element packages for build
167
+ for (const pkgName of result.packageNames) {
168
+ // Only add element packages (not @pie-lib packages)
169
+ if (!pkgName.startsWith('@pie-lib/')) {
170
+ this.touchedElementPackages.add(pkgName);
171
+ }
172
+ }
173
+ }
174
+ else if (desc === '@pie-lib packages') {
175
+ syncSummary.pieLibPackagesSynced = result.count;
176
+ // Track touched pie-lib packages for build
177
+ for (const pkgName of result.packageNames) {
178
+ if (pkgName.startsWith('@pie-lib/')) {
179
+ const libName = pkgName.replace('@pie-lib/', '');
180
+ this.touchedPieLibPackages.add(libName);
181
+ }
182
+ }
183
+ }
184
+ syncSummary.totalPackagesSynced += result.count;
185
+ // Add unique package names (avoid duplicates from multiple strategies syncing same package)
186
+ for (const pkgName of result.packageNames) {
187
+ if (!syncSummary.syncedPackageNames.includes(pkgName)) {
188
+ syncSummary.syncedPackageNames.push(pkgName);
189
+ }
190
+ }
191
+ }
192
+ }
193
+ // Ensure external dependencies from synced packages are available at repo root.
194
+ if (!config.dryRun) {
195
+ await this.rewriteWorkspaceDependencies(config);
196
+ }
197
+ // Add development export conditions for HMR support
198
+ if (!config.dryRun && this.touchedElementPackages.size > 0) {
199
+ await this.addDevelopmentExportsToPackages(config);
200
+ }
201
+ // Build by default (unless dry-run or explicitly skipped)
202
+ if (!config.dryRun && !config.skipBuild) {
203
+ await this.buildTouchedPackages(config, result);
204
+ }
205
+ // Add blocked package counts from compatibility report
206
+ if (compatibilityReport) {
207
+ syncSummary.blockedElements = Object.keys(compatibilityReport.blockedElements).length;
208
+ syncSummary.blockedPieLib = Object.values(compatibilityReport.pieLibDetails).filter((d) => !d.compatible).length;
209
+ }
210
+ // Demo metadata generation removed - demos are now tracked in git
211
+ // and managed directly in this repository (not synced from upstream)
212
+ // Print summary and handle errors
213
+ printSyncSummary(syncSummary, compatibilityReport, config.pieElementsNg, this.logger);
214
+ if (result.errors.length > 0) {
215
+ this.error('Sync completed with errors', { exit: 1 });
216
+ }
217
+ }
218
+ async applyEsmFilter(config) {
219
+ if (!config.useEsmFilter) {
220
+ return null;
221
+ }
222
+ let report = null;
223
+ try {
224
+ report = await loadCompatibilityReport(config.compatibilityFile);
225
+ }
226
+ catch (error) {
227
+ this.logger.warn(`⚠️ ESM compatibility file not found at ${config.compatibilityFile}`);
228
+ this.logger.warn(' Run: bun cli upstream:analyze-esm to generate it');
229
+ this.logger.warn(' Proceeding without ESM filter...\n');
230
+ return null;
231
+ }
232
+ if (!report) {
233
+ return null;
234
+ }
235
+ this.logger.info(`📋 Using ESM compatibility filter from ${config.compatibilityFile}`);
236
+ this.logger.info(` Last analyzed: ${new Date(report.lastAnalyzed).toLocaleString()}`);
237
+ this.logger.info(` Compatible elements: ${report.elements.length}`);
238
+ this.logger.info(` Compatible pie-lib packages: ${report.pieLibPackages.length}`);
239
+ if (Object.keys(report.blockedElements).length > 0) {
240
+ this.logger.info(` Blocked elements: ${Object.keys(report.blockedElements).length}`);
241
+ }
242
+ this.log('');
243
+ // If user hasn't specified elements, use the compatible list
244
+ if (!config.elements) {
245
+ config.elements = report.elements;
246
+ }
247
+ else {
248
+ // User specified elements - filter to only compatible ones
249
+ const incompatible = config.elements.filter((el) => !report.elements.includes(el));
250
+ if (incompatible.length > 0) {
251
+ this.logger.warn('⚠️ Warning: These elements are not ESM-compatible and will be skipped:');
252
+ for (const el of incompatible) {
253
+ const blockers = report.blockedElements[el] || [];
254
+ this.logger.warn(` - ${el}${blockers.length > 0 ? `: ${blockers[0]}` : ''}`);
255
+ }
256
+ this.log('');
257
+ config.elements = config.elements.filter((el) => report.elements.includes(el));
258
+ }
259
+ }
260
+ // If syncing pie-lib packages, use the compatible list
261
+ if (config.syncPieLibPackages && !config.pieLibPackages) {
262
+ config.pieLibPackages = report.pieLibPackages;
263
+ }
264
+ return report;
265
+ }
266
+ async listElementPackages(config) {
267
+ if (config.elements && config.elements.length > 0) {
268
+ return config.elements;
269
+ }
270
+ const upstreamElementsDir = join(config.pieElements, 'packages');
271
+ return await readdir(upstreamElementsDir);
272
+ }
273
+ async collectPieLibDepsFromElements(config, elements) {
274
+ const deps = new Set();
275
+ for (const element of elements) {
276
+ const pkgPath = join(config.pieElements, 'packages', element, 'package.json');
277
+ if (!existsSync(pkgPath)) {
278
+ continue;
279
+ }
280
+ const pkg = (await loadPackageJson(pkgPath));
281
+ const pkgDeps = getAllDeps(pkg);
282
+ for (const name of Object.keys(pkgDeps)) {
283
+ if (name.startsWith(WORKSPACE.PIE_LIB_PREFIX)) {
284
+ deps.add(name.replace(WORKSPACE.PIE_LIB_PREFIX, ''));
285
+ }
286
+ }
287
+ }
288
+ return await this.expandPieLibDeps(config, Array.from(deps));
289
+ }
290
+ async expandPieLibDeps(config, initial) {
291
+ const seen = new Set();
292
+ const queue = [...initial];
293
+ while (queue.length > 0) {
294
+ const pkg = queue.shift();
295
+ if (!pkg || seen.has(pkg))
296
+ continue;
297
+ seen.add(pkg);
298
+ const pkgPath = join(config.pieLib, 'packages', pkg, 'package.json');
299
+ if (!existsSync(pkgPath))
300
+ continue;
301
+ const pkgJson = (await loadPackageJson(pkgPath));
302
+ const deps = getAllDeps(pkgJson);
303
+ for (const name of Object.keys(deps)) {
304
+ if (name.startsWith(WORKSPACE.PIE_LIB_PREFIX)) {
305
+ const depName = name.replace(WORKSPACE.PIE_LIB_PREFIX, '');
306
+ if (!seen.has(depName))
307
+ queue.push(depName);
308
+ }
309
+ }
310
+ }
311
+ return Array.from(seen).sort();
312
+ }
313
+ async cleanTargetDirectories(config) {
314
+ if (!config.useEsmFilter || config.dryRun)
315
+ return;
316
+ // NOTE: We intentionally do NOT delete the entire packages/elements-react/ directory
317
+ // because that would delete locally-maintained content like docs/demo/config.mjs files.
318
+ // Instead, each sync strategy (ReactComponentsStrategy, PieLibStrategy, etc.) handles
319
+ // cleaning individual package directories while preserving specific subdirectories
320
+ // (like docs/ and controller/).
321
+ //
322
+ // This approach ensures:
323
+ // 1. Demo configs (docs/demo/*.mjs) are preserved across syncs
324
+ // 2. Controllers (src/controller/) are preserved during React component sync
325
+ // 3. Only the files that need updating are touched
326
+ }
327
+ async checkViteAvailable(config) {
328
+ return new Promise((resolve) => {
329
+ const child = spawn('bun', ['x', 'vite', '--version'], {
330
+ cwd: config.pieElementsNg,
331
+ stdio: 'pipe',
332
+ env: process.env,
333
+ });
334
+ let output = '';
335
+ child.stdout?.on('data', (data) => {
336
+ output += data.toString();
337
+ });
338
+ child.stderr?.on('data', (data) => {
339
+ output += data.toString();
340
+ });
341
+ child.on('close', (code) => {
342
+ resolve(code === 0);
343
+ });
344
+ child.on('error', () => {
345
+ resolve(false);
346
+ });
347
+ });
348
+ }
349
+ async rewriteWorkspaceDependencies(config) {
350
+ this.logger.section('🔧 Rewriting workspace dependencies');
351
+ // Discover available packages in the workspace
352
+ const libReactDir = join(config.pieElementsNg, 'packages/lib-react');
353
+ const elementsReactDir = join(config.pieElementsNg, 'packages/elements-react');
354
+ const sharedDir = join(config.pieElementsNg, 'packages/shared');
355
+ const availableLibPackages = new Set();
356
+ const availableElementPackages = new Set();
357
+ if (existsSync(libReactDir)) {
358
+ const libPackages = await readdir(libReactDir);
359
+ for (const pkg of libPackages) {
360
+ if (existsSync(join(libReactDir, pkg, 'package.json'))) {
361
+ availableLibPackages.add(pkg);
362
+ }
363
+ }
364
+ }
365
+ if (existsSync(elementsReactDir)) {
366
+ const elementPackages = await readdir(elementsReactDir);
367
+ for (const pkg of elementPackages) {
368
+ if (existsSync(join(elementsReactDir, pkg, 'package.json'))) {
369
+ availableElementPackages.add(pkg);
370
+ }
371
+ }
372
+ }
373
+ // Also scan shared packages - these are @pie-element/shared-* packages
374
+ if (existsSync(sharedDir)) {
375
+ const sharedPackages = await readdir(sharedDir);
376
+ for (const pkg of sharedPackages) {
377
+ if (existsSync(join(sharedDir, pkg, 'package.json'))) {
378
+ // Shared packages use the pattern @pie-element/shared-{name}
379
+ // But the directory is just {name}, so we need to add the "shared-" prefix
380
+ availableElementPackages.add(`shared-${pkg}`);
381
+ }
382
+ }
383
+ }
384
+ this.logger.info(` Found ${availableLibPackages.size} lib-react packages`);
385
+ this.logger.info(` Found ${availableElementPackages.size} elements-react packages (including shared)\n`);
386
+ // Scan and rewrite package.json files
387
+ const packagesToCheck = [];
388
+ // Add lib-react packages
389
+ for (const pkg of availableLibPackages) {
390
+ packagesToCheck.push(join(libReactDir, pkg));
391
+ }
392
+ // Add elements-react packages (non-shared)
393
+ if (existsSync(elementsReactDir)) {
394
+ const elementPackages = await readdir(elementsReactDir);
395
+ for (const pkg of elementPackages) {
396
+ if (existsSync(join(elementsReactDir, pkg, 'package.json'))) {
397
+ packagesToCheck.push(join(elementsReactDir, pkg));
398
+ }
399
+ }
400
+ }
401
+ // Note: We don't check shared packages because they are managed separately
402
+ // and don't have dependencies on synced packages
403
+ let totalRemoved = 0;
404
+ const removedDeps = [];
405
+ for (const pkgPath of packagesToCheck) {
406
+ const pkgJsonPath = join(pkgPath, 'package.json');
407
+ const pkgJson = (await loadPackageJson(pkgJsonPath));
408
+ if (!pkgJson || !pkgJson.dependencies) {
409
+ continue;
410
+ }
411
+ const pkgName = pkgJson.name || pkgPath;
412
+ let modified = false;
413
+ const depsToRemove = [];
414
+ for (const [dep, version] of Object.entries(pkgJson.dependencies)) {
415
+ // Only check workspace dependencies
416
+ if (!version.startsWith('workspace:')) {
417
+ continue;
418
+ }
419
+ // Check @pie-lib/* dependencies
420
+ if (dep.startsWith(WORKSPACE.PIE_LIB_PREFIX)) {
421
+ const libName = dep.replace(WORKSPACE.PIE_LIB_PREFIX, '');
422
+ if (!availableLibPackages.has(libName)) {
423
+ depsToRemove.push(dep);
424
+ removedDeps.push({ pkg: pkgName, dep });
425
+ modified = true;
426
+ }
427
+ }
428
+ // Check @pie-element/* dependencies
429
+ if (dep.startsWith(WORKSPACE.PIE_ELEMENT_PREFIX)) {
430
+ const elementName = dep.replace(WORKSPACE.PIE_ELEMENT_PREFIX, '');
431
+ if (!availableElementPackages.has(elementName)) {
432
+ depsToRemove.push(dep);
433
+ removedDeps.push({ pkg: pkgName, dep });
434
+ modified = true;
435
+ }
436
+ }
437
+ }
438
+ if (modified) {
439
+ // Remove the invalid dependencies
440
+ for (const dep of depsToRemove) {
441
+ delete pkgJson.dependencies[dep];
442
+ totalRemoved++;
443
+ }
444
+ // Write back the modified package.json
445
+ const fs = await import('node:fs/promises');
446
+ await fs.writeFile(pkgJsonPath, JSON.stringify(pkgJson, null, 2) + '\n', 'utf-8');
447
+ }
448
+ }
449
+ if (totalRemoved > 0) {
450
+ this.logger.info(` Removed ${totalRemoved} invalid workspace dependencies:\n`);
451
+ for (const { pkg, dep } of removedDeps) {
452
+ this.logger.info(` - ${dep} from ${pkg}`);
453
+ }
454
+ this.log('');
455
+ }
456
+ else {
457
+ this.logger.info(' ✓ All workspace dependencies are valid\n');
458
+ }
459
+ // Run bun install to update the lockfile
460
+ this.logger.info(' Running bun install to update lockfile...');
461
+ const exitCode = await new Promise((resolve) => {
462
+ const child = spawn('bun', ['install'], {
463
+ cwd: config.pieElementsNg,
464
+ stdio: 'inherit',
465
+ env: process.env,
466
+ });
467
+ child.on('close', (code) => resolve(code ?? 1));
468
+ child.on('error', () => resolve(1));
469
+ });
470
+ if (exitCode !== 0) {
471
+ this.logger.warn(' ⚠️ bun install failed');
472
+ }
473
+ else {
474
+ this.logger.info(' ✓ bun install completed successfully\n');
475
+ }
476
+ }
477
+ async addDevelopmentExportsToPackages(config) {
478
+ this.logger.section('🔧 Adding development export conditions');
479
+ const elementsDir = join(config.pieElementsNg, 'packages/elements-react');
480
+ const packageNames = Array.from(this.touchedElementPackages);
481
+ if (packageNames.length === 0) {
482
+ this.logger.debug(' No element packages to process');
483
+ return;
484
+ }
485
+ const updated = await addDevelopmentExports(elementsDir, packageNames, this.logger);
486
+ if (updated > 0) {
487
+ this.logger.info(` ✓ Added development exports to ${updated} package(s)\n`);
488
+ }
489
+ else {
490
+ this.logger.debug(' → No changes needed\n');
491
+ }
492
+ }
493
+ async buildTouchedPackages(config, result) {
494
+ const rootPkgPath = join(config.pieElementsNg, 'package.json');
495
+ const rootPkg = (await loadPackageJson(rootPkgPath));
496
+ const workspaces = Array.isArray(rootPkg?.workspaces) ? rootPkg?.workspaces : [];
497
+ const hasElementsReactWorkspace = workspaces.some((ws) => ws.startsWith('packages/elements-react'));
498
+ const hasLibReactWorkspace = workspaces.some((ws) => ws.startsWith('packages/lib-react'));
499
+ const elementFilters = Array.from(this.touchedElementPackages)
500
+ .sort()
501
+ .map((el) => `--filter=@pie-element/${el}`);
502
+ const pieLibFilters = Array.from(this.touchedPieLibPackages)
503
+ .sort()
504
+ .map((pkg) => `--filter=@pie-lib/${pkg}`);
505
+ const filters = [...elementFilters, ...pieLibFilters];
506
+ if ((elementFilters.length > 0 && !hasElementsReactWorkspace) ||
507
+ (pieLibFilters.length > 0 && !hasLibReactWorkspace)) {
508
+ this.logger.info('🏗️ Build: Skipped (synced packages are not part of the current workspaces)');
509
+ this.logger.info(' Hint: add packages/elements-react/* and/or packages/lib-react/* to');
510
+ this.logger.info(' root workspaces if you want turbo to build them.');
511
+ return;
512
+ }
513
+ if (filters.length === 0) {
514
+ if (config.verbose) {
515
+ this.logger.info('🏗️ Build: Skipped (no touched packages detected)');
516
+ }
517
+ return;
518
+ }
519
+ // Check if vite is available before attempting to build
520
+ const viteAvailable = await this.checkViteAvailable(config);
521
+ if (!viteAvailable) {
522
+ this.logger.warn('🏗️ Build: Skipped (vite not found). Run "bun install" to install dependencies, then "bun run build" manually.');
523
+ return;
524
+ }
525
+ this.logger.section('🏗️ Building touched packages');
526
+ this.logger.info(` Filters: ${filters.join(' ')}\n`);
527
+ // turbo filters are passed through the root build script:
528
+ // package.json: "build": "turbo run build"
529
+ // bun run requires `--` to forward args to the script.
530
+ // Always use --force to disable Turbo cache for consistency
531
+ const args = ['run', 'build', '--', '--force', ...filters];
532
+ const exitCode = await new Promise((resolve) => {
533
+ const child = spawn('bun', args, {
534
+ cwd: config.pieElementsNg,
535
+ stdio: 'inherit',
536
+ env: process.env,
537
+ });
538
+ child.on('close', (code) => resolve(code ?? 1));
539
+ child.on('error', () => resolve(1));
540
+ });
541
+ if (exitCode !== 0) {
542
+ const errorMsg = `Build failed (exit code ${exitCode}). This may be due to missing dependencies. Run 'bun install' to install new devDependencies, then 'bun run build' manually.`;
543
+ if (config.skipBuild) {
544
+ this.logger.warn(` ⚠️ ${errorMsg}`);
545
+ }
546
+ else {
547
+ result.errors.push(errorMsg);
548
+ }
549
+ }
550
+ }
551
+ }
552
+ //# sourceMappingURL=sync.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"sync.js","sourceRoot":"","sources":["../../../src/commands/upstream/sync.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,15 @@
1
+ import { Command } from '@oclif/core';
2
+ export default class Track extends Command {
3
+ static description: string;
4
+ static examples: string[];
5
+ static args: {
6
+ action: import("@oclif/core/interfaces").Arg<string, Record<string, unknown>>;
7
+ commit: import("@oclif/core/interfaces").Arg<string | undefined, Record<string, unknown>>;
8
+ };
9
+ private logger;
10
+ run(): Promise<void>;
11
+ private showCommits;
12
+ private recordState;
13
+ private compareCommit;
14
+ }
15
+ //# sourceMappingURL=track.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"track.d.ts","sourceRoot":"","sources":["../../../src/commands/upstream/track.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAQ,MAAM,aAAa,CAAC;AAqB5C,MAAM,CAAC,OAAO,OAAO,KAAM,SAAQ,OAAO;IACxC,OAAgB,WAAW,SAAuC;IAElE,OAAgB,QAAQ,WAItB;IAEF,OAAgB,IAAI;;;MAUlB;IAEF,OAAO,CAAC,MAAM,CAAgB;IAEjB,GAAG,IAAI,OAAO,CAAC,IAAI,CAAC;YAqBnB,WAAW;YA+CX,WAAW;YAoBX,aAAa;CAY5B"}