@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.
- package/.compatibility/report.json +2491 -0
- package/.turbo/turbo-build.log +1 -0
- package/CHANGELOG.md +8 -0
- package/README.md +240 -0
- package/REFACTORING.md +131 -0
- package/bin/dev.js +5 -0
- package/bin/run.js +5 -0
- package/dist/commands/dev/demo/index.d.ts +33 -0
- package/dist/commands/dev/demo/index.d.ts.map +1 -0
- package/dist/commands/dev/demo/index.js +274 -0
- package/dist/commands/dev/demo/index.js.map +1 -0
- package/dist/commands/dev/test-bundler.d.ts +18 -0
- package/dist/commands/dev/test-bundler.d.ts.map +1 -0
- package/dist/commands/dev/test-bundler.js +284 -0
- package/dist/commands/dev/test-bundler.js.map +1 -0
- package/dist/commands/mathquill/migrate.d.ts +20 -0
- package/dist/commands/mathquill/migrate.d.ts.map +1 -0
- package/dist/commands/mathquill/migrate.js +240 -0
- package/dist/commands/mathquill/migrate.js.map +1 -0
- package/dist/commands/mathquill/status.d.ts +20 -0
- package/dist/commands/mathquill/status.d.ts.map +1 -0
- package/dist/commands/mathquill/status.js +231 -0
- package/dist/commands/mathquill/status.js.map +1 -0
- package/dist/commands/packages/create-controllers.d.ts +13 -0
- package/dist/commands/packages/create-controllers.d.ts.map +1 -0
- package/dist/commands/packages/create-controllers.js +103 -0
- package/dist/commands/packages/create-controllers.js.map +1 -0
- package/dist/commands/packages/create-lib-react.d.ts +17 -0
- package/dist/commands/packages/create-lib-react.d.ts.map +1 -0
- package/dist/commands/packages/create-lib-react.js +228 -0
- package/dist/commands/packages/create-lib-react.js.map +1 -0
- package/dist/commands/packages/create-react-elements.d.ts +16 -0
- package/dist/commands/packages/create-react-elements.d.ts.map +1 -0
- package/dist/commands/packages/create-react-elements.js +259 -0
- package/dist/commands/packages/create-react-elements.js.map +1 -0
- package/dist/commands/packages/enable-publishing.d.ts +11 -0
- package/dist/commands/packages/enable-publishing.d.ts.map +1 -0
- package/dist/commands/packages/enable-publishing.js +117 -0
- package/dist/commands/packages/enable-publishing.js.map +1 -0
- package/dist/commands/packages/init-synced-elements.d.ts +16 -0
- package/dist/commands/packages/init-synced-elements.d.ts.map +1 -0
- package/dist/commands/packages/init-synced-elements.js +204 -0
- package/dist/commands/packages/init-synced-elements.js.map +1 -0
- package/dist/commands/upstream/analyze-esm.d.ts +59 -0
- package/dist/commands/upstream/analyze-esm.d.ts.map +1 -0
- package/dist/commands/upstream/analyze-esm.js +1481 -0
- package/dist/commands/upstream/analyze-esm.js.map +1 -0
- package/dist/commands/upstream/check.d.ts +15 -0
- package/dist/commands/upstream/check.d.ts.map +1 -0
- package/dist/commands/upstream/check.js +165 -0
- package/dist/commands/upstream/check.js.map +1 -0
- package/dist/commands/upstream/deps.d.ts +15 -0
- package/dist/commands/upstream/deps.d.ts.map +1 -0
- package/dist/commands/upstream/deps.js +174 -0
- package/dist/commands/upstream/deps.js.map +1 -0
- package/dist/commands/upstream/sync-mathquill.d.ts +12 -0
- package/dist/commands/upstream/sync-mathquill.d.ts.map +1 -0
- package/dist/commands/upstream/sync-mathquill.js +97 -0
- package/dist/commands/upstream/sync-mathquill.js.map +1 -0
- package/dist/commands/upstream/sync.d.ts +25 -0
- package/dist/commands/upstream/sync.d.ts.map +1 -0
- package/dist/commands/upstream/sync.js +552 -0
- package/dist/commands/upstream/sync.js.map +1 -0
- package/dist/commands/upstream/track.d.ts +15 -0
- package/dist/commands/upstream/track.d.ts.map +1 -0
- package/dist/commands/upstream/track.js +115 -0
- package/dist/commands/upstream/track.js.map +1 -0
- package/dist/commands/upstream/update.d.ts +15 -0
- package/dist/commands/upstream/update.d.ts.map +1 -0
- package/dist/commands/upstream/update.js +98 -0
- package/dist/commands/upstream/update.js.map +1 -0
- package/dist/commands/verify/controllers.d.ts +12 -0
- package/dist/commands/verify/controllers.d.ts.map +1 -0
- package/dist/commands/verify/controllers.js +138 -0
- package/dist/commands/verify/controllers.js.map +1 -0
- package/dist/commands/verify/react-build.d.ts +13 -0
- package/dist/commands/verify/react-build.d.ts.map +1 -0
- package/dist/commands/verify/react-build.js +135 -0
- package/dist/commands/verify/react-build.js.map +1 -0
- package/dist/index.d.ts +2 -0
- package/dist/index.d.ts.map +1 -0
- package/dist/index.js +2 -0
- package/dist/index.js.map +1 -0
- package/dist/lib/mathquill/extension-generator.d.ts +9 -0
- package/dist/lib/mathquill/extension-generator.d.ts.map +1 -0
- package/dist/lib/mathquill/extension-generator.js +107 -0
- package/dist/lib/mathquill/extension-generator.js.map +1 -0
- package/dist/lib/mathquill/khan-extractor.d.ts +16 -0
- package/dist/lib/mathquill/khan-extractor.d.ts.map +1 -0
- package/dist/lib/mathquill/khan-extractor.js +148 -0
- package/dist/lib/mathquill/khan-extractor.js.map +1 -0
- package/dist/lib/mathquill/learnosity-extractor.d.ts +15 -0
- package/dist/lib/mathquill/learnosity-extractor.d.ts.map +1 -0
- package/dist/lib/mathquill/learnosity-extractor.js +170 -0
- package/dist/lib/mathquill/learnosity-extractor.js.map +1 -0
- package/dist/lib/mathquill/migration-orchestrator.d.ts +77 -0
- package/dist/lib/mathquill/migration-orchestrator.d.ts.map +1 -0
- package/dist/lib/mathquill/migration-orchestrator.js +391 -0
- package/dist/lib/mathquill/migration-orchestrator.js.map +1 -0
- package/dist/lib/mathquill/package-updater.d.ts +9 -0
- package/dist/lib/mathquill/package-updater.d.ts.map +1 -0
- package/dist/lib/mathquill/package-updater.js +103 -0
- package/dist/lib/mathquill/package-updater.js.map +1 -0
- package/dist/lib/mathquill/pie-extractor.d.ts +14 -0
- package/dist/lib/mathquill/pie-extractor.d.ts.map +1 -0
- package/dist/lib/mathquill/pie-extractor.js +167 -0
- package/dist/lib/mathquill/pie-extractor.js.map +1 -0
- package/dist/lib/upstream/repo-utils.d.ts +9 -0
- package/dist/lib/upstream/repo-utils.d.ts.map +1 -0
- package/dist/lib/upstream/repo-utils.js +10 -0
- package/dist/lib/upstream/repo-utils.js.map +1 -0
- package/dist/lib/upstream/sync-compatibility.d.ts +29 -0
- package/dist/lib/upstream/sync-compatibility.d.ts.map +1 -0
- package/dist/lib/upstream/sync-compatibility.js +70 -0
- package/dist/lib/upstream/sync-compatibility.js.map +1 -0
- package/dist/lib/upstream/sync-constants.d.ts +50 -0
- package/dist/lib/upstream/sync-constants.d.ts.map +1 -0
- package/dist/lib/upstream/sync-constants.js +66 -0
- package/dist/lib/upstream/sync-constants.js.map +1 -0
- package/dist/lib/upstream/sync-controllers-strategy.d.ts +18 -0
- package/dist/lib/upstream/sync-controllers-strategy.d.ts.map +1 -0
- package/dist/lib/upstream/sync-controllers-strategy.js +243 -0
- package/dist/lib/upstream/sync-controllers-strategy.js.map +1 -0
- package/dist/lib/upstream/sync-demo-metadata.d.ts +15 -0
- package/dist/lib/upstream/sync-demo-metadata.d.ts.map +1 -0
- package/dist/lib/upstream/sync-demo-metadata.js +165 -0
- package/dist/lib/upstream/sync-demo-metadata.js.map +1 -0
- package/dist/lib/upstream/sync-dev-exports.d.ts +13 -0
- package/dist/lib/upstream/sync-dev-exports.d.ts.map +1 -0
- package/dist/lib/upstream/sync-dev-exports.js +115 -0
- package/dist/lib/upstream/sync-dev-exports.js.map +1 -0
- package/dist/lib/upstream/sync-externals.d.ts +29 -0
- package/dist/lib/upstream/sync-externals.d.ts.map +1 -0
- package/dist/lib/upstream/sync-externals.js +164 -0
- package/dist/lib/upstream/sync-externals.js.map +1 -0
- package/dist/lib/upstream/sync-filesystem.d.ts +21 -0
- package/dist/lib/upstream/sync-filesystem.d.ts.map +1 -0
- package/dist/lib/upstream/sync-filesystem.js +64 -0
- package/dist/lib/upstream/sync-filesystem.js.map +1 -0
- package/dist/lib/upstream/sync-imports.d.ts +284 -0
- package/dist/lib/upstream/sync-imports.d.ts.map +1 -0
- package/dist/lib/upstream/sync-imports.js +816 -0
- package/dist/lib/upstream/sync-imports.js.map +1 -0
- package/dist/lib/upstream/sync-mathquill.d.ts +19 -0
- package/dist/lib/upstream/sync-mathquill.d.ts.map +1 -0
- package/dist/lib/upstream/sync-mathquill.js +160 -0
- package/dist/lib/upstream/sync-mathquill.js.map +1 -0
- package/dist/lib/upstream/sync-package-json.d.ts +28 -0
- package/dist/lib/upstream/sync-package-json.d.ts.map +1 -0
- package/dist/lib/upstream/sync-package-json.js +66 -0
- package/dist/lib/upstream/sync-package-json.js.map +1 -0
- package/dist/lib/upstream/sync-package-manager.d.ts +50 -0
- package/dist/lib/upstream/sync-package-manager.d.ts.map +1 -0
- package/dist/lib/upstream/sync-package-manager.js +570 -0
- package/dist/lib/upstream/sync-package-manager.js.map +1 -0
- package/dist/lib/upstream/sync-pielib-strategy.d.ts +26 -0
- package/dist/lib/upstream/sync-pielib-strategy.d.ts.map +1 -0
- package/dist/lib/upstream/sync-pielib-strategy.js +345 -0
- package/dist/lib/upstream/sync-pielib-strategy.js.map +1 -0
- package/dist/lib/upstream/sync-react-strategy.d.ts +54 -0
- package/dist/lib/upstream/sync-react-strategy.d.ts.map +1 -0
- package/dist/lib/upstream/sync-react-strategy.js +733 -0
- package/dist/lib/upstream/sync-react-strategy.js.map +1 -0
- package/dist/lib/upstream/sync-strategy.d.ts +49 -0
- package/dist/lib/upstream/sync-strategy.d.ts.map +1 -0
- package/dist/lib/upstream/sync-strategy.js +2 -0
- package/dist/lib/upstream/sync-strategy.js.map +1 -0
- package/dist/lib/upstream/sync-summary.d.ts +20 -0
- package/dist/lib/upstream/sync-summary.d.ts.map +1 -0
- package/dist/lib/upstream/sync-summary.js +157 -0
- package/dist/lib/upstream/sync-summary.js.map +1 -0
- package/dist/lib/upstream/sync-transforms.d.ts +60 -0
- package/dist/lib/upstream/sync-transforms.d.ts.map +1 -0
- package/dist/lib/upstream/sync-transforms.js +97 -0
- package/dist/lib/upstream/sync-transforms.js.map +1 -0
- package/dist/lib/upstream/sync-vite-config.d.ts +13 -0
- package/dist/lib/upstream/sync-vite-config.d.ts.map +1 -0
- package/dist/lib/upstream/sync-vite-config.js +231 -0
- package/dist/lib/upstream/sync-vite-config.js.map +1 -0
- package/dist/utils/compatibility.d.ts +129 -0
- package/dist/utils/compatibility.d.ts.map +1 -0
- package/dist/utils/compatibility.js +44 -0
- package/dist/utils/compatibility.js.map +1 -0
- package/dist/utils/conversion.d.ts +25 -0
- package/dist/utils/conversion.d.ts.map +1 -0
- package/dist/utils/conversion.js +123 -0
- package/dist/utils/conversion.js.map +1 -0
- package/dist/utils/git.d.ts +7 -0
- package/dist/utils/git.d.ts.map +1 -0
- package/dist/utils/git.js +63 -0
- package/dist/utils/git.js.map +1 -0
- package/dist/utils/logger.d.ts +29 -0
- package/dist/utils/logger.d.ts.map +1 -0
- package/dist/utils/logger.js +63 -0
- package/dist/utils/logger.js.map +1 -0
- package/dist/utils/package-json.d.ts +12 -0
- package/dist/utils/package-json.d.ts.map +1 -0
- package/dist/utils/package-json.js +29 -0
- package/dist/utils/package-json.js.map +1 -0
- package/package.json +59 -0
- package/packages/cli/bin/dev.js +5 -0
- package/packages/cli/bin/run.js +5 -0
- package/src/commands/dev/demo/index.ts +313 -0
- package/src/commands/dev/test-bundler.ts +345 -0
- package/src/commands/mathquill/migrate.ts +269 -0
- package/src/commands/mathquill/status.ts +267 -0
- package/src/commands/packages/create-controllers.ts +127 -0
- package/src/commands/packages/create-lib-react.ts +279 -0
- package/src/commands/packages/create-react-elements.ts +306 -0
- package/src/commands/packages/enable-publishing.ts +161 -0
- package/src/commands/packages/init-synced-elements.ts +259 -0
- package/src/commands/upstream/README.md +444 -0
- package/src/commands/upstream/analyze-esm.ts +1973 -0
- package/src/commands/upstream/check.ts +228 -0
- package/src/commands/upstream/deps.ts +222 -0
- package/src/commands/upstream/sync-mathquill.ts +108 -0
- package/src/commands/upstream/sync.ts +687 -0
- package/src/commands/upstream/track.ts +145 -0
- package/src/commands/upstream/update.ts +110 -0
- package/src/commands/verify/controllers.ts +166 -0
- package/src/commands/verify/react-build.ts +171 -0
- package/src/index.ts +1 -0
- package/src/lib/mathquill/extension-generator.ts +111 -0
- package/src/lib/mathquill/khan-extractor.ts +175 -0
- package/src/lib/mathquill/learnosity-extractor.ts +198 -0
- package/src/lib/mathquill/migration-orchestrator.ts +513 -0
- package/src/lib/mathquill/package-updater.ts +120 -0
- package/src/lib/mathquill/pie-extractor.ts +194 -0
- package/src/lib/upstream/repo-utils.ts +18 -0
- package/src/lib/upstream/sync-compatibility.ts +89 -0
- package/src/lib/upstream/sync-constants.ts +77 -0
- package/src/lib/upstream/sync-controllers-strategy.ts +291 -0
- package/src/lib/upstream/sync-demo-metadata.ts +199 -0
- package/src/lib/upstream/sync-dev-exports.ts +151 -0
- package/src/lib/upstream/sync-externals.ts +159 -0
- package/src/lib/upstream/sync-filesystem.ts +87 -0
- package/src/lib/upstream/sync-imports.ts +992 -0
- package/src/lib/upstream/sync-mathquill.ts +194 -0
- package/src/lib/upstream/sync-package-json.ts +86 -0
- package/src/lib/upstream/sync-package-manager.ts +694 -0
- package/src/lib/upstream/sync-pielib-strategy.ts +441 -0
- package/src/lib/upstream/sync-react-strategy.ts +945 -0
- package/src/lib/upstream/sync-strategy.ts +61 -0
- package/src/lib/upstream/sync-summary.ts +194 -0
- package/src/lib/upstream/sync-transforms.ts +154 -0
- package/src/lib/upstream/sync-vite-config.ts +243 -0
- package/src/types/es-module-lexer.d.ts +4 -0
- package/src/utils/compatibility.ts +182 -0
- package/src/utils/conversion.ts +153 -0
- package/src/utils/git.ts +63 -0
- package/src/utils/logger.ts +69 -0
- package/src/utils/package-json.ts +43 -0
- package/tests/sync-package-manager.test.ts +112 -0
- package/tests/transform-assign-props.test.ts +101 -0
- package/tsconfig.json +15 -0
|
@@ -0,0 +1,345 @@
|
|
|
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 { existsSync } from 'node:fs';
|
|
8
|
+
import { mkdir, readFile, stat as fsStat, writeFile } from 'node:fs/promises';
|
|
9
|
+
import { dirname, join } from 'node:path';
|
|
10
|
+
import { convertJsToTs, convertJsxToTsx } from '../../utils/conversion.js';
|
|
11
|
+
import { getCurrentCommit } from '../../utils/git.js';
|
|
12
|
+
import { cleanDirectory, readdir } from './sync-filesystem.js';
|
|
13
|
+
import { fixImportsInFile, containsJsx } from './sync-imports.js';
|
|
14
|
+
import { generatePieLibViteConfig } from './sync-vite-config.js';
|
|
15
|
+
import { createPieLibTransformPipeline } from './sync-transforms.js';
|
|
16
|
+
import { ensurePieLibPackageJson } from './sync-package-manager.js';
|
|
17
|
+
export class PieLibStrategy {
|
|
18
|
+
touchedPieLibPackages = new Set();
|
|
19
|
+
result = {
|
|
20
|
+
filesChecked: 0,
|
|
21
|
+
filesCopied: 0,
|
|
22
|
+
filesSkipped: 0,
|
|
23
|
+
filesUpdated: 0,
|
|
24
|
+
};
|
|
25
|
+
getName() {
|
|
26
|
+
return 'pie-lib';
|
|
27
|
+
}
|
|
28
|
+
getDescription() {
|
|
29
|
+
return '@pie-lib packages';
|
|
30
|
+
}
|
|
31
|
+
shouldRun(config) {
|
|
32
|
+
return config.syncPieLib;
|
|
33
|
+
}
|
|
34
|
+
async execute(context) {
|
|
35
|
+
const { config, logger } = context;
|
|
36
|
+
this.touchedPieLibPackages.clear();
|
|
37
|
+
this.result = {
|
|
38
|
+
filesChecked: 0,
|
|
39
|
+
filesCopied: 0,
|
|
40
|
+
filesSkipped: 0,
|
|
41
|
+
filesUpdated: 0,
|
|
42
|
+
};
|
|
43
|
+
if (!logger.isVerbose()) {
|
|
44
|
+
logger.progressStart('Syncing @pie-lib packages...');
|
|
45
|
+
}
|
|
46
|
+
else {
|
|
47
|
+
logger.section('📚 Syncing @pie-lib packages');
|
|
48
|
+
}
|
|
49
|
+
const upstreamLibDir = join(config.pieLib, 'packages');
|
|
50
|
+
const targetBaseDir = join(config.pieElementsNg, 'packages/lib-react');
|
|
51
|
+
// Verify pie-lib exists
|
|
52
|
+
if (!existsSync(upstreamLibDir)) {
|
|
53
|
+
logger.error(`pie-lib packages not found at ${upstreamLibDir}`);
|
|
54
|
+
return { count: 0, packageNames: [] };
|
|
55
|
+
}
|
|
56
|
+
const upstreamCommit = getCurrentCommit(config.pieLib);
|
|
57
|
+
// Get list of packages to sync
|
|
58
|
+
const allPackages = await readdir(upstreamLibDir);
|
|
59
|
+
let packagesToSync;
|
|
60
|
+
if (logger.isVerbose()) {
|
|
61
|
+
logger.info(` Compat report present: ${!!context.compatibilityReport}`);
|
|
62
|
+
logger.info(` Compat pieLibPackages: ${context.compatibilityReport?.pieLibPackages?.length || 0}`);
|
|
63
|
+
}
|
|
64
|
+
// Use the filtered list from config if available (computed from element dependencies)
|
|
65
|
+
// This ensures we only sync the pie-lib packages actually needed by the elements being synced
|
|
66
|
+
if (config.pieLibPackages && config.pieLibPackages.length > 0) {
|
|
67
|
+
packagesToSync = config.pieLibPackages;
|
|
68
|
+
if (logger.isVerbose()) {
|
|
69
|
+
logger.info(` Using filtered pie-lib list: ${packagesToSync.length} packages`);
|
|
70
|
+
logger.info(` Packages: ${packagesToSync.join(', ')}`);
|
|
71
|
+
}
|
|
72
|
+
}
|
|
73
|
+
else if (context.compatibilityReport?.pieLibPackages?.length) {
|
|
74
|
+
// Fallback to compatibility report list (used when no filtering is needed)
|
|
75
|
+
packagesToSync = context.compatibilityReport.pieLibPackages;
|
|
76
|
+
if (logger.isVerbose()) {
|
|
77
|
+
logger.info(` Using ESM compatibility report list: ${packagesToSync.length} packages`);
|
|
78
|
+
logger.info(` Packages: ${packagesToSync.join(', ')}`);
|
|
79
|
+
}
|
|
80
|
+
}
|
|
81
|
+
else {
|
|
82
|
+
// Final fallback: sync all packages
|
|
83
|
+
packagesToSync = allPackages;
|
|
84
|
+
if (logger.isVerbose()) {
|
|
85
|
+
logger.info(` Using all packages fallback: ${allPackages.length} packages`);
|
|
86
|
+
}
|
|
87
|
+
}
|
|
88
|
+
for (const pkg of packagesToSync) {
|
|
89
|
+
// Skip if package doesn't exist
|
|
90
|
+
const pkgSrcDir = join(upstreamLibDir, pkg, 'src');
|
|
91
|
+
if (!existsSync(pkgSrcDir)) {
|
|
92
|
+
continue;
|
|
93
|
+
}
|
|
94
|
+
// Target: packages/lib-react/{package}/src/
|
|
95
|
+
const targetDir = join(targetBaseDir, pkg);
|
|
96
|
+
const targetSrcDir = join(targetDir, 'src');
|
|
97
|
+
// Clean target src subtree first so removed upstream files don't linger
|
|
98
|
+
await this.cleanTargetDir(targetSrcDir, `lib-react/${pkg}/src`, logger);
|
|
99
|
+
// Special handling for math-rendering - generate wrapper instead of full sync
|
|
100
|
+
let filesProcessed;
|
|
101
|
+
let libChanged;
|
|
102
|
+
if (pkg === 'math-rendering') {
|
|
103
|
+
filesProcessed = await this.generateMathRenderingWrapper(targetSrcDir, logger);
|
|
104
|
+
libChanged = filesProcessed > 0;
|
|
105
|
+
}
|
|
106
|
+
else {
|
|
107
|
+
// Recursively sync all files from src/ directory
|
|
108
|
+
const beforeChanges = this.result.filesCopied + this.result.filesUpdated;
|
|
109
|
+
filesProcessed = await this.syncDirectory(pkgSrcDir, targetSrcDir, 'src', pkg, upstreamCommit);
|
|
110
|
+
const afterChanges = this.result.filesCopied + this.result.filesUpdated;
|
|
111
|
+
libChanged = afterChanges > beforeChanges;
|
|
112
|
+
}
|
|
113
|
+
if (filesProcessed > 0 && logger.isVerbose()) {
|
|
114
|
+
logger.success(` ✨ ${pkg}: ${filesProcessed} file(s) synced`);
|
|
115
|
+
}
|
|
116
|
+
// Keep local compatibility exports that upstream plot package currently misses.
|
|
117
|
+
const wroteCompatibilityPatch = await this.ensurePlotTypesCompatibilityPatch(pkg, targetSrcDir);
|
|
118
|
+
// Ensure package.json has ESM module support and expected exports
|
|
119
|
+
let wrotePkgJson = false;
|
|
120
|
+
wrotePkgJson = await ensurePieLibPackageJson(pkg, targetDir, config);
|
|
121
|
+
// Ensure vite.config.ts exists
|
|
122
|
+
const wroteViteConfig = await this.ensureViteConfig(pkg, targetDir, logger);
|
|
123
|
+
// Ensure tsconfig.json exists
|
|
124
|
+
const wroteTsConfig = await this.ensureTsConfig(pkg, targetDir, logger);
|
|
125
|
+
if (libChanged ||
|
|
126
|
+
wroteCompatibilityPatch ||
|
|
127
|
+
wrotePkgJson ||
|
|
128
|
+
wroteViteConfig ||
|
|
129
|
+
wroteTsConfig) {
|
|
130
|
+
this.touchedPieLibPackages.add(pkg);
|
|
131
|
+
}
|
|
132
|
+
}
|
|
133
|
+
if (!logger.isVerbose()) {
|
|
134
|
+
logger.progressCompleteWithCount(this.touchedPieLibPackages.size, 'packages');
|
|
135
|
+
}
|
|
136
|
+
else {
|
|
137
|
+
logger.info(`\nSynced ${this.touchedPieLibPackages.size} @pie-lib package(s)`);
|
|
138
|
+
}
|
|
139
|
+
return {
|
|
140
|
+
count: this.touchedPieLibPackages.size,
|
|
141
|
+
packageNames: Array.from(this.touchedPieLibPackages)
|
|
142
|
+
.sort()
|
|
143
|
+
.map((pkg) => `@pie-lib/${pkg}`),
|
|
144
|
+
};
|
|
145
|
+
}
|
|
146
|
+
async cleanTargetDir(targetDir, label, logger) {
|
|
147
|
+
// Preserve non-synced pie-elements-ng files
|
|
148
|
+
const preserve = [];
|
|
149
|
+
// Preserve inline-menu.tsx in render-ui (not from upstream)
|
|
150
|
+
if (label.includes('render-ui')) {
|
|
151
|
+
preserve.push('inline-menu.tsx');
|
|
152
|
+
}
|
|
153
|
+
await cleanDirectory(targetDir, label, { dryRun: false, verbose: false, preserve }, logger);
|
|
154
|
+
}
|
|
155
|
+
async syncDirectory(sourceDir, targetDir, relativePath, pkg, upstreamCommit) {
|
|
156
|
+
let filesProcessed = 0;
|
|
157
|
+
const defaultExportFiles = new Set(); // Track files with default exports
|
|
158
|
+
const items = await readdir(sourceDir);
|
|
159
|
+
for (const item of items) {
|
|
160
|
+
const srcPath = join(sourceDir, item);
|
|
161
|
+
const stat = await fsStat(srcPath);
|
|
162
|
+
if (stat.isDirectory()) {
|
|
163
|
+
// Skip __tests__, __mocks__, etc.
|
|
164
|
+
if (item.startsWith('__')) {
|
|
165
|
+
continue;
|
|
166
|
+
}
|
|
167
|
+
// Recursively sync subdirectories
|
|
168
|
+
const subFilesProcessed = await this.syncDirectory(srcPath, join(targetDir, item), join(relativePath, item), pkg, upstreamCommit);
|
|
169
|
+
filesProcessed += subFilesProcessed;
|
|
170
|
+
continue;
|
|
171
|
+
}
|
|
172
|
+
// Only process .js and .jsx files
|
|
173
|
+
if (!item.endsWith('.js') && !item.endsWith('.jsx')) {
|
|
174
|
+
continue;
|
|
175
|
+
}
|
|
176
|
+
this.result.filesChecked++;
|
|
177
|
+
filesProcessed++;
|
|
178
|
+
// Read source
|
|
179
|
+
let sourceContent = await readFile(srcPath, 'utf-8');
|
|
180
|
+
// Apply all standard transformations
|
|
181
|
+
const transformPipeline = createPieLibTransformPipeline();
|
|
182
|
+
sourceContent = transformPipeline(sourceContent, srcPath);
|
|
183
|
+
const hasJsx = item.endsWith('.jsx') || (item.endsWith('.js') && containsJsx(sourceContent));
|
|
184
|
+
// Convert .js → .ts/.tsx and .jsx → .tsx
|
|
185
|
+
const targetFile = item.replace(/\.jsx?$/, hasJsx ? '.tsx' : '.ts');
|
|
186
|
+
const targetPath = join(targetDir, targetFile);
|
|
187
|
+
// Convert based on file extension
|
|
188
|
+
const conversionResult = hasJsx
|
|
189
|
+
? convertJsxToTsx(sourceContent, {
|
|
190
|
+
sourcePath: `pie-lib/packages/${pkg}/${relativePath}/${item}`,
|
|
191
|
+
commit: upstreamCommit,
|
|
192
|
+
})
|
|
193
|
+
: convertJsToTs(sourceContent, {
|
|
194
|
+
sourcePath: `pie-lib/packages/${pkg}/${relativePath}/${item}`,
|
|
195
|
+
commit: upstreamCommit,
|
|
196
|
+
});
|
|
197
|
+
let converted = conversionResult.code;
|
|
198
|
+
// Track files that export default objects (for import fixing later)
|
|
199
|
+
if (conversionResult.hasDefaultObjectExport) {
|
|
200
|
+
// Store the file name without extension for import matching
|
|
201
|
+
const fileNameWithoutExt = targetFile.replace(/\.(ts|tsx)$/, '');
|
|
202
|
+
defaultExportFiles.add(fileNameWithoutExt);
|
|
203
|
+
}
|
|
204
|
+
// Check if different
|
|
205
|
+
// NOTE: This comparison is exact (===) to ensure any changes in:
|
|
206
|
+
// - Upstream source code
|
|
207
|
+
// - Transformation logic (lodash-es, event packages, etc.)
|
|
208
|
+
// - Sync version (tracked in @sync-version header)
|
|
209
|
+
// will trigger a file update. This prioritizes correctness over speed.
|
|
210
|
+
const isNew = !existsSync(targetPath);
|
|
211
|
+
if (!isNew) {
|
|
212
|
+
const currentContent = await readFile(targetPath, 'utf-8');
|
|
213
|
+
if (currentContent === converted) {
|
|
214
|
+
this.result.filesSkipped++;
|
|
215
|
+
continue;
|
|
216
|
+
}
|
|
217
|
+
this.result.filesUpdated++;
|
|
218
|
+
}
|
|
219
|
+
else {
|
|
220
|
+
this.result.filesCopied++;
|
|
221
|
+
}
|
|
222
|
+
// Write
|
|
223
|
+
await mkdir(dirname(targetPath), { recursive: true });
|
|
224
|
+
await writeFile(targetPath, converted, 'utf-8');
|
|
225
|
+
}
|
|
226
|
+
// After all files are synced, fix import statements in consuming files
|
|
227
|
+
if (defaultExportFiles.size > 0) {
|
|
228
|
+
const targetDirItems = await readdir(targetDir);
|
|
229
|
+
for (const item of targetDirItems) {
|
|
230
|
+
const itemPath = join(targetDir, item);
|
|
231
|
+
const stat = await fsStat(itemPath);
|
|
232
|
+
if (stat.isFile() && (item.endsWith('.tsx') || item.endsWith('.ts'))) {
|
|
233
|
+
await fixImportsInFile(itemPath, defaultExportFiles);
|
|
234
|
+
}
|
|
235
|
+
}
|
|
236
|
+
}
|
|
237
|
+
return filesProcessed;
|
|
238
|
+
}
|
|
239
|
+
/**
|
|
240
|
+
* Generate a thin wrapper for math-rendering that re-exports from @pie-element/math-rendering
|
|
241
|
+
*/
|
|
242
|
+
async generateMathRenderingWrapper(targetSrcDir, logger) {
|
|
243
|
+
await mkdir(targetSrcDir, { recursive: true });
|
|
244
|
+
const wrapperContent = `// @ts-nocheck
|
|
245
|
+
/**
|
|
246
|
+
* @synced-from pie-lib/packages/math-rendering
|
|
247
|
+
* @auto-generated
|
|
248
|
+
*
|
|
249
|
+
* This is a thin wrapper that re-exports from @pie-element/shared-math-rendering-mathjax.
|
|
250
|
+
* The actual implementation is in packages/shared/math-rendering-mathjax.
|
|
251
|
+
*/
|
|
252
|
+
|
|
253
|
+
export { renderMath, wrapMath, unWrapMath, mmlToLatex } from '@pie-element/shared-math-rendering-mathjax';
|
|
254
|
+
`;
|
|
255
|
+
const indexPath = join(targetSrcDir, 'index.ts');
|
|
256
|
+
const needsWrite = !existsSync(indexPath) || (await readFile(indexPath, 'utf-8')) !== wrapperContent;
|
|
257
|
+
if (needsWrite) {
|
|
258
|
+
await writeFile(indexPath, wrapperContent, 'utf-8');
|
|
259
|
+
if (logger.isVerbose()) {
|
|
260
|
+
logger.success(` ✨ math-rendering: generated wrapper`);
|
|
261
|
+
}
|
|
262
|
+
return 1;
|
|
263
|
+
}
|
|
264
|
+
return 0;
|
|
265
|
+
}
|
|
266
|
+
async ensureViteConfig(pkgName, pkgDir, logger) {
|
|
267
|
+
if (!existsSync(pkgDir)) {
|
|
268
|
+
return false;
|
|
269
|
+
}
|
|
270
|
+
const viteConfigPath = join(pkgDir, 'vite.config.ts');
|
|
271
|
+
const viteConfig = generatePieLibViteConfig(pkgName, pkgDir);
|
|
272
|
+
// Check if vite config needs to be written
|
|
273
|
+
const currentContent = existsSync(viteConfigPath)
|
|
274
|
+
? await readFile(viteConfigPath, 'utf-8').catch(() => null)
|
|
275
|
+
: null;
|
|
276
|
+
if (currentContent === viteConfig) {
|
|
277
|
+
return false;
|
|
278
|
+
}
|
|
279
|
+
await writeFile(viteConfigPath, viteConfig, 'utf-8');
|
|
280
|
+
if (logger.isVerbose()) {
|
|
281
|
+
logger.success(` 📝 ${pkgName}: generated vite.config.ts`);
|
|
282
|
+
}
|
|
283
|
+
return true;
|
|
284
|
+
}
|
|
285
|
+
async ensurePlotTypesCompatibilityPatch(pkgName, targetSrcDir) {
|
|
286
|
+
if (pkgName !== 'plot') {
|
|
287
|
+
return false;
|
|
288
|
+
}
|
|
289
|
+
const typesPath = join(targetSrcDir, 'types.ts');
|
|
290
|
+
if (!existsSync(typesPath)) {
|
|
291
|
+
return false;
|
|
292
|
+
}
|
|
293
|
+
const current = await readFile(typesPath, 'utf-8');
|
|
294
|
+
if (current.includes('ToolPropTypeFields')) {
|
|
295
|
+
return false;
|
|
296
|
+
}
|
|
297
|
+
const patch = `
|
|
298
|
+
|
|
299
|
+
// Local compatibility export used by graphing tool components.
|
|
300
|
+
export const ToolPropTypeFields = {
|
|
301
|
+
graphProps: GraphPropsType.isRequired,
|
|
302
|
+
mark: PropTypes.object,
|
|
303
|
+
onChange: PropTypes.func,
|
|
304
|
+
onDelete: PropTypes.func,
|
|
305
|
+
onClick: PropTypes.func,
|
|
306
|
+
};
|
|
307
|
+
|
|
308
|
+
export const ToolPropType = PropTypes.shape(ToolPropTypeFields);
|
|
309
|
+
`;
|
|
310
|
+
await writeFile(typesPath, `${current}${patch}`, 'utf-8');
|
|
311
|
+
return true;
|
|
312
|
+
}
|
|
313
|
+
async ensureTsConfig(pkgName, pkgDir, logger) {
|
|
314
|
+
if (!existsSync(pkgDir)) {
|
|
315
|
+
return false;
|
|
316
|
+
}
|
|
317
|
+
const tsConfigPath = join(pkgDir, 'tsconfig.json');
|
|
318
|
+
const tsConfig = this.generateTsConfig();
|
|
319
|
+
// Check if tsconfig needs to be written
|
|
320
|
+
const currentContent = existsSync(tsConfigPath)
|
|
321
|
+
? await readFile(tsConfigPath, 'utf-8').catch(() => null)
|
|
322
|
+
: null;
|
|
323
|
+
if (currentContent === tsConfig) {
|
|
324
|
+
return false;
|
|
325
|
+
}
|
|
326
|
+
await writeFile(tsConfigPath, tsConfig, 'utf-8');
|
|
327
|
+
if (logger.isVerbose()) {
|
|
328
|
+
logger.success(` 📝 ${pkgName}: generated tsconfig.json`);
|
|
329
|
+
}
|
|
330
|
+
return true;
|
|
331
|
+
}
|
|
332
|
+
generateTsConfig() {
|
|
333
|
+
return `{
|
|
334
|
+
"extends": "../../../tsconfig.base.json",
|
|
335
|
+
"compilerOptions": {
|
|
336
|
+
"outDir": "dist",
|
|
337
|
+
"declarationDir": "dist",
|
|
338
|
+
"rootDir": "src"
|
|
339
|
+
},
|
|
340
|
+
"include": ["src/**/*"]
|
|
341
|
+
}
|
|
342
|
+
`;
|
|
343
|
+
}
|
|
344
|
+
}
|
|
345
|
+
//# sourceMappingURL=sync-pielib-strategy.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"sync-pielib-strategy.js","sourceRoot":"","sources":["../../../src/lib/upstream/sync-pielib-strategy.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,54 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* React components sync strategy - syncs React components from upstream pie-elements
|
|
3
|
+
*
|
|
4
|
+
* Synced from: pie-elements/packages/{element}/src/
|
|
5
|
+
* Target: packages/elements-react/{element}/src/
|
|
6
|
+
*/
|
|
7
|
+
import type { SyncStrategy, SyncContext, SyncConfig, SyncResult } from './sync-strategy.js';
|
|
8
|
+
export declare class ReactComponentsStrategy implements SyncStrategy {
|
|
9
|
+
private touchedElementPackages;
|
|
10
|
+
private result;
|
|
11
|
+
getName(): string;
|
|
12
|
+
getDescription(): string;
|
|
13
|
+
shouldRun(config: SyncConfig): boolean;
|
|
14
|
+
execute(context: SyncContext): Promise<SyncResult>;
|
|
15
|
+
private cleanTargetDirExcept;
|
|
16
|
+
private syncDirectory;
|
|
17
|
+
/**
|
|
18
|
+
* Sync root-level .js files from configure/ directory (not including subdirectories)
|
|
19
|
+
* These are typically utility files like utils.js that are imported by files in configure/src/
|
|
20
|
+
*/
|
|
21
|
+
private syncConfigureRootFiles;
|
|
22
|
+
/**
|
|
23
|
+
* Sync a single print file (src/print.js -> src/print/index.ts)
|
|
24
|
+
*/
|
|
25
|
+
private syncPrintFile;
|
|
26
|
+
/**
|
|
27
|
+
* Merge two utils files by combining their exports
|
|
28
|
+
*
|
|
29
|
+
* When syncing configure/ files, we may have:
|
|
30
|
+
* - configure/src/utils.js (already synced to src/configure/utils.ts)
|
|
31
|
+
* - configure/utils.js (being synced now to src/configure/utils.ts)
|
|
32
|
+
*
|
|
33
|
+
* Both files export different functions, so we need to merge them.
|
|
34
|
+
*/
|
|
35
|
+
private mergeUtilsFiles;
|
|
36
|
+
private ensureElementViteConfig;
|
|
37
|
+
private generateStandardViteConfig;
|
|
38
|
+
private generateViteConfigWithBundledKonva;
|
|
39
|
+
/**
|
|
40
|
+
* Ensure IIFE entry point exists for element
|
|
41
|
+
*/
|
|
42
|
+
private ensureIifeEntryPoint;
|
|
43
|
+
/**
|
|
44
|
+
* Ensure IIFE Vite config exists for element
|
|
45
|
+
*/
|
|
46
|
+
private ensureIifeViteConfig;
|
|
47
|
+
/**
|
|
48
|
+
* Ensure element demo structure exists with new dev/production split
|
|
49
|
+
*/
|
|
50
|
+
private ensureElementDemoStructure;
|
|
51
|
+
private ensureTsConfig;
|
|
52
|
+
private generateTsConfig;
|
|
53
|
+
}
|
|
54
|
+
//# sourceMappingURL=sync-react-strategy.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"sync-react-strategy.d.ts","sourceRoot":"","sources":["../../../src/lib/upstream/sync-react-strategy.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAOH,OAAO,KAAK,EAAE,YAAY,EAAE,WAAW,EAAE,UAAU,EAAE,UAAU,EAAE,MAAM,oBAAoB,CAAC;AAgB5F,qBAAa,uBAAwB,YAAW,YAAY;IAC1D,OAAO,CAAC,sBAAsB,CAAqB;IACnD,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;YA6K1C,oBAAoB;YAcpB,aAAa;IAsH3B;;;OAGG;YACW,sBAAsB;IAkFpC;;OAEG;YACW,aAAa;IA4D3B;;;;;;;;OAQG;IACH,OAAO,CAAC,eAAe;YAiBT,uBAAuB;IAmFrC,OAAO,CAAC,0BAA0B;IAwClC,OAAO,CAAC,kCAAkC;IAwC1C;;OAEG;YACW,oBAAoB;IAuClC;;OAEG;YACW,oBAAoB;IA0GlC;;OAEG;YACW,0BAA0B;YA0D1B,cAAc;IA4B5B,OAAO,CAAC,gBAAgB;CAYzB"}
|