@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,570 @@
1
+ /**
2
+ * Centralized package.json management for upstream sync operations
3
+ *
4
+ * This module consolidates all package.json generation and management logic
5
+ * to eliminate the massive duplication between controllers-strategy and react-strategy.
6
+ */
7
+ import { existsSync } from 'node:fs';
8
+ import { readFile, writeFile } from 'node:fs/promises';
9
+ import { dirname, join } from 'node:path';
10
+ import { loadPackageJson } from '../../utils/package-json.js';
11
+ import { existsAny } from './sync-filesystem.js';
12
+ import { applyPackageJsonTransforms } from './sync-transforms.js';
13
+ import { BUILD_TOOLS, REACT, PACKAGE_DEFAULTS, SCRIPTS, WORKSPACE } from './sync-constants.js';
14
+ /**
15
+ * Detect available entry points in an element package
16
+ */
17
+ export function detectEntryPoints(elementDir) {
18
+ return {
19
+ hasIndex: existsAny([
20
+ join(elementDir, 'src/index.ts'),
21
+ join(elementDir, 'src/index.tsx'),
22
+ join(elementDir, 'src/index.js'),
23
+ join(elementDir, 'src/index.jsx'),
24
+ ]),
25
+ hasDelivery: existsAny([
26
+ join(elementDir, 'src/delivery/index.ts'),
27
+ join(elementDir, 'src/delivery/index.tsx'),
28
+ join(elementDir, 'src/delivery/index.js'),
29
+ join(elementDir, 'src/delivery/index.jsx'),
30
+ ]),
31
+ hasAuthor: existsAny([
32
+ join(elementDir, 'src/author/index.ts'),
33
+ join(elementDir, 'src/author/index.tsx'),
34
+ join(elementDir, 'src/author/index.js'),
35
+ join(elementDir, 'src/author/index.jsx'),
36
+ ]),
37
+ hasController: existsAny([
38
+ join(elementDir, 'src/controller/index.ts'),
39
+ join(elementDir, 'src/controller/index.tsx'),
40
+ join(elementDir, 'src/controller/index.js'),
41
+ join(elementDir, 'src/controller/index.jsx'),
42
+ ]),
43
+ hasConfigure: existsAny([
44
+ join(elementDir, 'src/configure/index.ts'),
45
+ join(elementDir, 'src/configure/index.tsx'),
46
+ join(elementDir, 'src/configure/index.js'),
47
+ join(elementDir, 'src/configure/index.jsx'),
48
+ ]),
49
+ hasPrint: existsAny([
50
+ join(elementDir, 'src/print/index.ts'),
51
+ join(elementDir, 'src/print/index.tsx'),
52
+ join(elementDir, 'src/print/index.js'),
53
+ join(elementDir, 'src/print/index.jsx'),
54
+ ]),
55
+ hasTypes: existsAny([
56
+ join(elementDir, 'src/types/index.ts'),
57
+ join(elementDir, 'src/types/index.tsx'),
58
+ join(elementDir, 'src/types/index.js'),
59
+ join(elementDir, 'src/types/index.jsx'),
60
+ ]),
61
+ };
62
+ }
63
+ /**
64
+ * Generate exports object based on available entry points
65
+ */
66
+ export function generateExportsObject(entryPoints) {
67
+ const exports = {
68
+ '.': {
69
+ types: './dist/index.d.ts',
70
+ default: './dist/index.js',
71
+ },
72
+ };
73
+ if (entryPoints.hasDelivery) {
74
+ exports['./delivery'] = {
75
+ types: './dist/delivery/index.d.ts',
76
+ default: './dist/delivery/index.js',
77
+ };
78
+ }
79
+ if (entryPoints.hasAuthor) {
80
+ exports['./author'] = {
81
+ types: './dist/author/index.d.ts',
82
+ default: './dist/author/index.js',
83
+ };
84
+ }
85
+ if (entryPoints.hasController) {
86
+ exports['./controller'] = {
87
+ types: './dist/controller/index.d.ts',
88
+ default: './dist/controller/index.js',
89
+ };
90
+ }
91
+ if (entryPoints.hasConfigure) {
92
+ exports['./configure'] = {
93
+ types: './dist/configure/index.d.ts',
94
+ default: './dist/configure/index.js',
95
+ };
96
+ }
97
+ if (entryPoints.hasPrint) {
98
+ exports['./print'] = {
99
+ types: './dist/print/index.d.ts',
100
+ default: './dist/print/index.js',
101
+ };
102
+ }
103
+ if (entryPoints.hasTypes) {
104
+ exports['./types'] = {
105
+ types: './dist/types/index.d.ts',
106
+ default: './dist/types/index.js',
107
+ };
108
+ }
109
+ return exports;
110
+ }
111
+ /**
112
+ * Extract imports from source files to determine runtime dependencies
113
+ */
114
+ export async function extractImportsFromSources(elementDir) {
115
+ const imports = new Set();
116
+ const srcDir = join(elementDir, 'src');
117
+ if (!existsSync(srcDir)) {
118
+ return imports;
119
+ }
120
+ // Recursively find all .ts, .tsx, .js, .jsx files
121
+ const { readdir: readdirRecursive } = await import('node:fs/promises');
122
+ async function scanDirectory(dir) {
123
+ try {
124
+ const entries = await readdirRecursive(dir, { withFileTypes: true });
125
+ for (const entry of entries) {
126
+ const fullPath = join(dir, entry.name);
127
+ if (entry.isDirectory()) {
128
+ await scanDirectory(fullPath);
129
+ }
130
+ else if (entry.isFile() && /\.(ts|tsx|js|jsx)$/.test(entry.name)) {
131
+ try {
132
+ const content = await readFile(fullPath, 'utf-8');
133
+ // Match import statements: import ... from 'package' or import('package')
134
+ const importRegex = /import\s+(?:[\w{},\s*]+\s+from\s+)?['"]([^'"]+)['"]/g;
135
+ const dynamicImportRegex = /import\s*\(\s*['"]([^'"]+)['"]\s*\)/g;
136
+ let match;
137
+ match = importRegex.exec(content);
138
+ while (match !== null) {
139
+ const importPath = match[1];
140
+ // Only track package imports (not relative imports)
141
+ if (!importPath.startsWith('.') && !importPath.startsWith('/')) {
142
+ imports.add(importPath);
143
+ }
144
+ match = importRegex.exec(content);
145
+ }
146
+ match = dynamicImportRegex.exec(content);
147
+ while (match !== null) {
148
+ const importPath = match[1];
149
+ if (!importPath.startsWith('.') && !importPath.startsWith('/')) {
150
+ imports.add(importPath);
151
+ }
152
+ match = dynamicImportRegex.exec(content);
153
+ }
154
+ }
155
+ catch (err) {
156
+ // Skip files that can't be read
157
+ }
158
+ }
159
+ }
160
+ }
161
+ catch (err) {
162
+ // Skip directories that can't be read
163
+ }
164
+ }
165
+ await scanDirectory(srcDir);
166
+ return imports;
167
+ }
168
+ async function findInstalledPackageJson(packageName, fromDir) {
169
+ try {
170
+ const { createRequire } = await import('node:module');
171
+ const req = createRequire(join(fromDir, 'package.json'));
172
+ const resolvedEntry = req.resolve(packageName);
173
+ let currentDir = dirname(resolvedEntry);
174
+ while (true) {
175
+ const candidate = join(currentDir, 'package.json');
176
+ if (existsSync(candidate)) {
177
+ const pkg = await loadPackageJson(candidate).catch(() => null);
178
+ if (pkg && pkg.name === packageName) {
179
+ return pkg;
180
+ }
181
+ }
182
+ const parent = dirname(currentDir);
183
+ if (parent === currentDir) {
184
+ break;
185
+ }
186
+ currentDir = parent;
187
+ }
188
+ }
189
+ catch {
190
+ // Package not resolvable from this location.
191
+ }
192
+ return null;
193
+ }
194
+ async function addTransitivePeerDependencies(deps, fromDir) {
195
+ const depNames = Object.keys(deps);
196
+ for (const depName of depNames) {
197
+ if (depName.startsWith(WORKSPACE.PIE_LIB_PREFIX) ||
198
+ depName.startsWith(WORKSPACE.PIE_ELEMENT_PREFIX) ||
199
+ depName.startsWith(WORKSPACE.PIE_FRAMEWORK_PREFIX)) {
200
+ continue;
201
+ }
202
+ const installedPkg = await findInstalledPackageJson(depName, fromDir);
203
+ const peerDeps = installedPkg?.peerDependencies ?? {};
204
+ for (const [peerName, peerVersion] of Object.entries(peerDeps)) {
205
+ if (deps[peerName]) {
206
+ continue;
207
+ }
208
+ if (peerName.startsWith(WORKSPACE.PIE_LIB_PREFIX) ||
209
+ peerName.startsWith(WORKSPACE.PIE_ELEMENT_PREFIX) ||
210
+ peerName.startsWith(WORKSPACE.PIE_FRAMEWORK_PREFIX)) {
211
+ deps[peerName] = WORKSPACE.VERSION;
212
+ }
213
+ else {
214
+ deps[peerName] = peerVersion;
215
+ }
216
+ }
217
+ }
218
+ }
219
+ async function inferPeerVersionFromDeclaredDeps(targetDep, deps, fromDir) {
220
+ for (const depName of Object.keys(deps)) {
221
+ if (depName.startsWith(WORKSPACE.PIE_LIB_PREFIX) ||
222
+ depName.startsWith(WORKSPACE.PIE_ELEMENT_PREFIX) ||
223
+ depName.startsWith(WORKSPACE.PIE_FRAMEWORK_PREFIX)) {
224
+ continue;
225
+ }
226
+ const installedPkg = await findInstalledPackageJson(depName, fromDir);
227
+ const peerDeps = installedPkg?.peerDependencies ?? {};
228
+ if (peerDeps[targetDep]) {
229
+ return peerDeps[targetDep];
230
+ }
231
+ }
232
+ return null;
233
+ }
234
+ /**
235
+ * Extract and normalize dependencies from upstream package.json
236
+ */
237
+ export function extractUpstreamDependencies(upstreamPkg) {
238
+ if (!upstreamPkg)
239
+ return {};
240
+ const upstreamDeps = upstreamPkg.dependencies ?? {};
241
+ const expectedDeps = {};
242
+ for (const [name, version] of Object.entries(upstreamDeps)) {
243
+ if (name.startsWith(WORKSPACE.PIE_LIB_PREFIX)) {
244
+ expectedDeps[name] = WORKSPACE.VERSION;
245
+ }
246
+ else if (name !== 'react' && name !== 'react-dom') {
247
+ expectedDeps[name] = version;
248
+ }
249
+ }
250
+ return expectedDeps;
251
+ }
252
+ /**
253
+ * Ensure devDependencies include all required build tools
254
+ */
255
+ export function ensureBuildToolDependencies(pkg) {
256
+ if (!pkg.devDependencies || typeof pkg.devDependencies !== 'object') {
257
+ pkg.devDependencies = {};
258
+ }
259
+ const devDeps = pkg.devDependencies;
260
+ if (!devDeps.vite)
261
+ devDeps.vite = BUILD_TOOLS.VITE;
262
+ if (!devDeps.typescript)
263
+ devDeps.typescript = BUILD_TOOLS.TYPESCRIPT;
264
+ if (!devDeps['@vitejs/plugin-react'])
265
+ devDeps['@vitejs/plugin-react'] = BUILD_TOOLS.VITE_REACT_PLUGIN;
266
+ if (!devDeps['@types/react'])
267
+ devDeps['@types/react'] = REACT.TYPES_VERSION;
268
+ if (!devDeps['@types/react-dom'])
269
+ devDeps['@types/react-dom'] = REACT.TYPES_VERSION;
270
+ }
271
+ /**
272
+ * Check if a @pie-framework or @pie-element/shared- package exists in the workspace
273
+ *
274
+ * Supports both legacy @pie-framework naming and new @pie-element/shared- naming:
275
+ * - @pie-framework/mathquill → packages/shared/mathquill (legacy, should migrate)
276
+ * - @pie-element/shared-mathquill → packages/shared/mathquill (new convention)
277
+ */
278
+ function isPieFrameworkWorkspacePackage(packageName, config) {
279
+ let pkgName;
280
+ if (packageName.startsWith(WORKSPACE.PIE_FRAMEWORK_PREFIX)) {
281
+ // Legacy @pie-framework/* packages
282
+ pkgName = packageName.replace(WORKSPACE.PIE_FRAMEWORK_PREFIX, '');
283
+ }
284
+ else if (packageName.startsWith(WORKSPACE.PIE_ELEMENT_PREFIX + 'shared-')) {
285
+ // New @pie-element/shared-* packages
286
+ pkgName = packageName.replace(WORKSPACE.PIE_ELEMENT_PREFIX + 'shared-', '');
287
+ }
288
+ else {
289
+ return false;
290
+ }
291
+ const sharedPackagePath = join(config.pieElementsNg, 'packages/shared', pkgName, 'package.json');
292
+ return existsSync(sharedPackagePath);
293
+ }
294
+ /**
295
+ * Generate or update element package.json
296
+ *
297
+ * This function consolidates the ~400 lines of duplicated package.json management
298
+ * logic from controllers-strategy and react-strategy into a single, maintainable function.
299
+ */
300
+ export async function ensureElementPackageJson(elementName, elementDir, config) {
301
+ if (!existsSync(elementDir)) {
302
+ return false;
303
+ }
304
+ const pkgPath = join(elementDir, 'package.json');
305
+ const upstreamPkgPath = join(config.pieElements, 'packages', elementName, 'package.json');
306
+ // Load existing package.json
307
+ let pkg = null;
308
+ if (existsSync(pkgPath)) {
309
+ pkg = await loadPackageJson(pkgPath).catch(() => null);
310
+ }
311
+ // Load upstream package.json for dependency info
312
+ const upstreamPkg = existsSync(upstreamPkgPath)
313
+ ? await loadPackageJson(upstreamPkgPath).catch(() => null)
314
+ : null;
315
+ // Extract and normalize upstream dependencies
316
+ const expectedDeps = extractUpstreamDependencies(upstreamPkg);
317
+ // Scan source files for actual imports to catch dependencies from skipped directories
318
+ const importedPackages = await extractImportsFromSources(elementDir);
319
+ // Add workspace dependencies found in imports
320
+ const currentPackageName = `${WORKSPACE.PIE_ELEMENT_PREFIX}${elementName}`;
321
+ for (const imported of importedPackages) {
322
+ // Skip self-dependencies (package importing from itself)
323
+ if (imported === currentPackageName) {
324
+ continue;
325
+ }
326
+ if (imported.startsWith(WORKSPACE.PIE_LIB_PREFIX)) {
327
+ expectedDeps[imported] = WORKSPACE.VERSION;
328
+ }
329
+ else if (imported.startsWith(WORKSPACE.PIE_ELEMENT_PREFIX)) {
330
+ expectedDeps[imported] = WORKSPACE.VERSION;
331
+ }
332
+ else if (imported.startsWith(WORKSPACE.PIE_FRAMEWORK_PREFIX)) {
333
+ // Only add as workspace dependency if it actually exists in packages/shared/
334
+ if (isPieFrameworkWorkspacePackage(imported, config)) {
335
+ expectedDeps[imported] = WORKSPACE.VERSION;
336
+ }
337
+ else {
338
+ // External @pie-framework package - add with latest version if not already in deps
339
+ if (!expectedDeps[imported]) {
340
+ expectedDeps[imported] = '^1.0.0'; // Use latest 1.x version as default
341
+ }
342
+ }
343
+ }
344
+ }
345
+ await addTransitivePeerDependencies(expectedDeps, elementDir);
346
+ // Create minimal package.json if missing
347
+ if (!pkg) {
348
+ pkg = {
349
+ name: `${WORKSPACE.PIE_ELEMENT_PREFIX}${elementName}`,
350
+ private: true,
351
+ version: '0.1.0',
352
+ description: upstreamPkg?.description ??
353
+ `React implementation of ${elementName} element synced from pie-elements`,
354
+ dependencies: expectedDeps,
355
+ peerDependencies: {
356
+ react: REACT.VERSION,
357
+ 'react-dom': REACT.VERSION,
358
+ },
359
+ };
360
+ }
361
+ // Update dependencies to match upstream
362
+ if (Object.keys(expectedDeps).length > 0) {
363
+ pkg.dependencies = expectedDeps;
364
+ }
365
+ // Preserve pie metadata (if present upstream or locally)
366
+ const pieMetadata = (upstreamPkg?.pie ??
367
+ pkg?.pie ??
368
+ undefined);
369
+ // Apply all standard transformations
370
+ pkg = applyPackageJsonTransforms(pkg);
371
+ if (pieMetadata) {
372
+ pkg.pie = pieMetadata;
373
+ }
374
+ // Detect available entry points
375
+ const entryPoints = detectEntryPoints(elementDir);
376
+ // Generate exports based on entry points
377
+ pkg.exports = generateExportsObject(entryPoints);
378
+ // Warn when metadata/structure disagree for core capabilities
379
+ const metadataCapabilities = Array.isArray(pieMetadata?.capabilities)
380
+ ? new Set(pieMetadata.capabilities)
381
+ : null;
382
+ if (!entryPoints.hasDelivery || !entryPoints.hasController) {
383
+ console.warn(`[upstream:update] ${elementName} missing required entry points:` +
384
+ `${entryPoints.hasDelivery ? '' : ' delivery'}` +
385
+ `${entryPoints.hasController ? '' : ' controller'}`);
386
+ }
387
+ if (metadataCapabilities) {
388
+ if (metadataCapabilities.has('author') && !entryPoints.hasAuthor) {
389
+ console.warn(`[upstream:update] ${elementName} metadata includes author but no src/author entry`);
390
+ }
391
+ if (metadataCapabilities.has('print') && !entryPoints.hasPrint) {
392
+ console.warn(`[upstream:update] ${elementName} metadata includes print but no src/print entry`);
393
+ }
394
+ }
395
+ else {
396
+ if (entryPoints.hasAuthor) {
397
+ console.warn(`[upstream:update] ${elementName} has src/author but no pie.capabilities metadata`);
398
+ }
399
+ if (entryPoints.hasPrint) {
400
+ console.warn(`[upstream:update] ${elementName} has src/print but no pie.capabilities metadata`);
401
+ }
402
+ }
403
+ // Set core package.json fields
404
+ pkg.name = `${WORKSPACE.PIE_ELEMENT_PREFIX}${elementName}`;
405
+ pkg.type = PACKAGE_DEFAULTS.TYPE;
406
+ pkg.main = './dist/index.js';
407
+ pkg.types = './dist/index.d.ts';
408
+ // Ensure files array
409
+ const files = Array.isArray(pkg.files) ? pkg.files : [];
410
+ const normalizedFiles = new Set(files.filter((v) => typeof v === 'string'));
411
+ normalizedFiles.add('dist');
412
+ normalizedFiles.add('src');
413
+ pkg.files = Array.from(normalizedFiles).sort();
414
+ // Set sideEffects
415
+ if (typeof pkg.sideEffects === 'undefined') {
416
+ pkg.sideEffects = PACKAGE_DEFAULTS.SIDE_EFFECTS;
417
+ }
418
+ // Ensure devDependencies
419
+ ensureBuildToolDependencies(pkg);
420
+ // Ensure build scripts
421
+ if (!pkg.scripts || typeof pkg.scripts !== 'object') {
422
+ pkg.scripts = {};
423
+ }
424
+ const scripts = pkg.scripts;
425
+ const hasIifeEntry = existsSync(join(elementDir, 'src/index.iife.ts')) ||
426
+ existsSync(join(elementDir, 'vite.config.iife.ts'));
427
+ scripts.build = hasIifeEntry ? SCRIPTS.BUILD_WITH_IIFE : SCRIPTS.BUILD;
428
+ scripts.dev = SCRIPTS.DEV;
429
+ scripts.demo = SCRIPTS.DEMO;
430
+ scripts.test = SCRIPTS.TEST;
431
+ // Check if content changed
432
+ const nextContent = `${JSON.stringify(pkg, null, 2)}\n`;
433
+ const currentContent = existsSync(pkgPath)
434
+ ? await readFile(pkgPath, 'utf-8').catch(() => null)
435
+ : null;
436
+ if (currentContent === nextContent) {
437
+ return false;
438
+ }
439
+ // Write updated package.json
440
+ await writeFile(pkgPath, nextContent, 'utf-8');
441
+ return true;
442
+ }
443
+ /**
444
+ * Generate or update pie-lib package.json
445
+ */
446
+ export async function ensurePieLibPackageJson(pkgName, pkgDir, config) {
447
+ if (!existsSync(pkgDir)) {
448
+ return false;
449
+ }
450
+ const pkgPath = join(pkgDir, 'package.json');
451
+ const upstreamPkgPath = join(config.pieLib, 'packages', pkgName, 'package.json');
452
+ let pkg = null;
453
+ if (existsSync(pkgPath)) {
454
+ pkg = await loadPackageJson(pkgPath).catch(() => null);
455
+ }
456
+ const upstreamPkg = existsSync(upstreamPkgPath)
457
+ ? await loadPackageJson(upstreamPkgPath).catch(() => null)
458
+ : null;
459
+ // Extract upstream dependencies
460
+ const upstreamDeps = upstreamPkg?.dependencies ?? {};
461
+ const expectedDeps = {};
462
+ for (const [name, version] of Object.entries(upstreamDeps)) {
463
+ // Transform @pie-framework/mathquill to @pie-element/shared-mathquill
464
+ if (name === '@pie-framework/mathquill') {
465
+ expectedDeps['@pie-element/shared-mathquill'] = WORKSPACE.VERSION;
466
+ }
467
+ else if (name.startsWith(WORKSPACE.PIE_LIB_PREFIX)) {
468
+ expectedDeps[name] = WORKSPACE.VERSION;
469
+ }
470
+ else {
471
+ expectedDeps[name] = version;
472
+ }
473
+ }
474
+ const importedPackages = await extractImportsFromSources(pkgDir);
475
+ for (const importedPkg of importedPackages) {
476
+ if (importedPkg === '@pie-framework/mathquill') {
477
+ expectedDeps['@pie-element/shared-mathquill'] = WORKSPACE.VERSION;
478
+ continue;
479
+ }
480
+ if (importedPkg.startsWith(WORKSPACE.PIE_LIB_PREFIX)) {
481
+ expectedDeps[importedPkg] = WORKSPACE.VERSION;
482
+ continue;
483
+ }
484
+ if (importedPkg.startsWith(WORKSPACE.PIE_ELEMENT_PREFIX)) {
485
+ expectedDeps[importedPkg] = WORKSPACE.VERSION;
486
+ continue;
487
+ }
488
+ // Keep pie-lib package.json aligned with actual runtime imports from src/.
489
+ // Upstream package.json can miss some third-party dependencies.
490
+ if (!expectedDeps[importedPkg]) {
491
+ const installedPkg = await findInstalledPackageJson(importedPkg, pkgDir);
492
+ if (installedPkg?.version) {
493
+ expectedDeps[importedPkg] = `^${installedPkg.version}`;
494
+ }
495
+ else {
496
+ const inferredPeerVersion = await inferPeerVersionFromDeclaredDeps(importedPkg, expectedDeps, pkgDir);
497
+ if (inferredPeerVersion) {
498
+ expectedDeps[importedPkg] = inferredPeerVersion;
499
+ }
500
+ }
501
+ }
502
+ }
503
+ // graphing imports @dnd-kit/core directly in source but upstream metadata can omit it.
504
+ if (pkgName === 'graphing' && !expectedDeps['@dnd-kit/core']) {
505
+ expectedDeps['@dnd-kit/core'] = '^6.3.0';
506
+ }
507
+ // Create minimal package.json if missing
508
+ if (!pkg) {
509
+ pkg = {
510
+ name: `${WORKSPACE.PIE_LIB_PREFIX}${pkgName}`,
511
+ private: true,
512
+ version: '0.1.0',
513
+ description: upstreamPkg?.description ??
514
+ `React implementation of @pie-lib/${pkgName} synced from pie-lib`,
515
+ dependencies: expectedDeps,
516
+ };
517
+ }
518
+ // Update dependencies
519
+ if (Object.keys(expectedDeps).length > 0) {
520
+ pkg.dependencies = expectedDeps;
521
+ }
522
+ // Special handling for math-rendering: reference MathJax adapter package
523
+ if (pkgName === 'math-rendering') {
524
+ pkg.dependencies = {
525
+ [`${WORKSPACE.PIE_ELEMENT_PREFIX}shared-math-rendering-mathjax`]: WORKSPACE.VERSION,
526
+ };
527
+ }
528
+ // Generate exports
529
+ const exportsObj = {
530
+ ...(typeof pkg.exports === 'object' && pkg.exports
531
+ ? pkg.exports
532
+ : {}),
533
+ };
534
+ exportsObj['.'] = {
535
+ types: './dist/index.d.ts',
536
+ default: './dist/index.js',
537
+ };
538
+ pkg.name = `${WORKSPACE.PIE_LIB_PREFIX}${pkgName}`;
539
+ pkg.type = PACKAGE_DEFAULTS.TYPE;
540
+ pkg.main = './dist/index.js';
541
+ pkg.types = './dist/index.d.ts';
542
+ pkg.exports = exportsObj;
543
+ // Ensure files array
544
+ const files = Array.isArray(pkg.files) ? pkg.files : [];
545
+ const normalizedFiles = new Set(files.filter((v) => typeof v === 'string'));
546
+ normalizedFiles.add('dist');
547
+ normalizedFiles.add('src');
548
+ pkg.files = Array.from(normalizedFiles).sort();
549
+ if (typeof pkg.sideEffects === 'undefined') {
550
+ pkg.sideEffects = PACKAGE_DEFAULTS.SIDE_EFFECTS;
551
+ }
552
+ // Ensure build scripts
553
+ if (!pkg.scripts || typeof pkg.scripts !== 'object') {
554
+ pkg.scripts = {};
555
+ }
556
+ const scripts = pkg.scripts;
557
+ scripts.build = SCRIPTS.BUILD;
558
+ scripts.dev = SCRIPTS.DEV;
559
+ scripts.test = SCRIPTS.TEST;
560
+ const nextContent = `${JSON.stringify(pkg, null, 2)}\n`;
561
+ const currentContent = existsSync(pkgPath)
562
+ ? await readFile(pkgPath, 'utf-8').catch(() => null)
563
+ : null;
564
+ if (currentContent === nextContent) {
565
+ return false;
566
+ }
567
+ await writeFile(pkgPath, nextContent, 'utf-8');
568
+ return true;
569
+ }
570
+ //# sourceMappingURL=sync-package-manager.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"sync-package-manager.js","sourceRoot":"","sources":["../../../src/lib/upstream/sync-package-manager.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,26 @@
1
+ /**
2
+ * Pie-lib sync strategy - syncs @pie-lib packages from upstream pie-lib
3
+ *
4
+ * Synced from: pie-lib/packages/{package}/src/
5
+ * Target: packages/lib-react/{package}/src/
6
+ */
7
+ import type { SyncStrategy, SyncContext, SyncConfig, SyncResult } from './sync-strategy.js';
8
+ export declare class PieLibStrategy implements SyncStrategy {
9
+ private touchedPieLibPackages;
10
+ private result;
11
+ getName(): string;
12
+ getDescription(): string;
13
+ shouldRun(config: SyncConfig): boolean;
14
+ execute(context: SyncContext): Promise<SyncResult>;
15
+ private cleanTargetDir;
16
+ private syncDirectory;
17
+ /**
18
+ * Generate a thin wrapper for math-rendering that re-exports from @pie-element/math-rendering
19
+ */
20
+ private generateMathRenderingWrapper;
21
+ private ensureViteConfig;
22
+ private ensurePlotTypesCompatibilityPatch;
23
+ private ensureTsConfig;
24
+ private generateTsConfig;
25
+ }
26
+ //# sourceMappingURL=sync-pielib-strategy.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"sync-pielib-strategy.d.ts","sourceRoot":"","sources":["../../../src/lib/upstream/sync-pielib-strategy.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAOH,OAAO,KAAK,EAAE,YAAY,EAAE,WAAW,EAAE,UAAU,EAAE,UAAU,EAAE,MAAM,oBAAoB,CAAC;AAc5F,qBAAa,cAAe,YAAW,YAAY;IACjD,OAAO,CAAC,qBAAqB,CAAqB;IAClD,OAAO,CAAC,MAAM,CAKZ;IAEF,OAAO,IAAI,MAAM;IAIjB,cAAc,IAAI,MAAM;IAIxB,SAAS,CAAC,MAAM,EAAE,UAAU,GAAG,OAAO;IAIhC,OAAO,CAAC,OAAO,EAAE,WAAW,GAAG,OAAO,CAAC,UAAU,CAAC;YA4I1C,cAAc;YAYd,aAAa;IAgH3B;;OAEG;YACW,4BAA4B;YA8B5B,gBAAgB;YAwBhB,iCAAiC;YAoCjC,cAAc;IAwB5B,OAAO,CAAC,gBAAgB;CAYzB"}