@pie-element/cli 0.1.1 ā 0.1.2-next.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +48 -10
- package/dist/commands/dev/demo/index.d.ts +1 -1
- package/dist/commands/dev/demo/index.js +21 -0
- package/dist/commands/dev/demo/index.js.map +1 -1
- package/dist/commands/dev/test-bundler.d.ts +0 -1
- package/dist/commands/dev/test-bundler.js +2 -10
- package/dist/commands/dev/test-bundler.js.map +1 -1
- package/dist/commands/docs/generate.d.ts +16 -0
- package/dist/commands/docs/generate.js +150 -0
- package/dist/commands/docs/generate.js.map +1 -0
- package/dist/commands/docs/verify.d.ts +12 -0
- package/dist/commands/docs/verify.js +40 -0
- package/dist/commands/docs/verify.js.map +1 -0
- package/dist/commands/packages/create-controllers.d.ts +0 -1
- package/dist/commands/packages/create-controllers.js.map +1 -1
- package/dist/commands/packages/create-lib-react.d.ts +0 -1
- package/dist/commands/packages/create-lib-react.js +1 -3
- package/dist/commands/packages/create-lib-react.js.map +1 -1
- package/dist/commands/packages/create-react-elements.d.ts +0 -1
- package/dist/commands/packages/create-react-elements.js +2 -3
- package/dist/commands/packages/create-react-elements.js.map +1 -1
- package/dist/commands/packages/enable-publishing.d.ts +0 -1
- package/dist/commands/packages/enable-publishing.js +26 -23
- package/dist/commands/packages/enable-publishing.js.map +1 -1
- package/dist/commands/packages/init-synced-elements.d.ts +0 -1
- package/dist/commands/packages/init-synced-elements.js +1 -1
- package/dist/commands/packages/init-synced-elements.js.map +1 -1
- package/dist/commands/upstream/analyze-esm.d.ts +0 -1
- package/dist/commands/upstream/analyze-esm.js +5 -1
- package/dist/commands/upstream/analyze-esm.js.map +1 -1
- package/dist/commands/upstream/check.d.ts +0 -1
- package/dist/commands/upstream/check.js.map +1 -1
- package/dist/commands/upstream/deps.d.ts +0 -1
- package/dist/commands/upstream/deps.js.map +1 -1
- package/dist/commands/upstream/sync.d.ts +11 -2
- package/dist/commands/upstream/sync.js +364 -25
- package/dist/commands/upstream/sync.js.map +1 -1
- package/dist/commands/upstream/track.d.ts +0 -1
- package/dist/commands/upstream/track.js.map +1 -1
- package/dist/commands/upstream/update.d.ts +0 -1
- package/dist/commands/upstream/update.js +37 -7
- package/dist/commands/upstream/update.js.map +1 -1
- package/dist/commands/verify/controllers.d.ts +0 -1
- package/dist/commands/verify/controllers.js +213 -59
- package/dist/commands/verify/controllers.js.map +1 -1
- package/dist/commands/verify/dependency-integrity.d.ts +18 -0
- package/dist/commands/verify/dependency-integrity.js +147 -0
- package/dist/commands/verify/dependency-integrity.js.map +1 -0
- package/dist/commands/verify/react-build.d.ts +0 -1
- package/dist/commands/verify/react-build.js.map +1 -1
- package/dist/index.d.ts +0 -1
- package/dist/index.js.map +1 -1
- package/dist/lib/docs/contract-validator.d.ts +12 -0
- package/dist/lib/docs/contract-validator.js +38 -0
- package/dist/lib/docs/contract-validator.js.map +1 -0
- package/dist/lib/docs/contracts.d.ts +11 -0
- package/dist/lib/docs/contracts.js +241 -0
- package/dist/lib/docs/contracts.js.map +1 -0
- package/dist/lib/docs/discovery.d.ts +10 -0
- package/dist/lib/docs/discovery.js +91 -0
- package/dist/lib/docs/discovery.js.map +1 -0
- package/dist/lib/docs/generator.d.ts +14 -0
- package/dist/lib/docs/generator.js +450 -0
- package/dist/lib/docs/generator.js.map +1 -0
- package/dist/lib/docs/source-extractor.d.ts +2 -0
- package/dist/lib/docs/source-extractor.js +209 -0
- package/dist/lib/docs/source-extractor.js.map +1 -0
- package/dist/lib/docs/types.d.ts +77 -0
- package/dist/lib/docs/types.js +2 -0
- package/dist/lib/docs/types.js.map +1 -0
- package/dist/lib/upstream/repo-utils.d.ts +0 -1
- package/dist/lib/upstream/repo-utils.js.map +1 -1
- package/dist/lib/upstream/sync-compatibility.d.ts +0 -1
- package/dist/lib/upstream/sync-compatibility.js.map +1 -1
- package/dist/lib/upstream/sync-constants.d.ts +35 -7
- package/dist/lib/upstream/sync-constants.js +40 -11
- package/dist/lib/upstream/sync-constants.js.map +1 -1
- package/dist/lib/upstream/sync-controllers-strategy.d.ts +0 -1
- package/dist/lib/upstream/sync-controllers-strategy.js +14 -4
- package/dist/lib/upstream/sync-controllers-strategy.js.map +1 -1
- package/dist/lib/upstream/sync-demo-metadata.d.ts +0 -1
- package/dist/lib/upstream/sync-demo-metadata.js +1 -1
- package/dist/lib/upstream/sync-demo-metadata.js.map +1 -1
- package/dist/lib/upstream/sync-entry-discovery.d.ts +3 -0
- package/dist/lib/upstream/sync-entry-discovery.js +23 -0
- package/dist/lib/upstream/sync-entry-discovery.js.map +1 -0
- package/dist/lib/upstream/sync-externals.d.ts +7 -7
- package/dist/lib/upstream/sync-externals.js +51 -35
- package/dist/lib/upstream/sync-externals.js.map +1 -1
- package/dist/lib/upstream/sync-filesystem.d.ts +0 -1
- package/dist/lib/upstream/sync-filesystem.js.map +1 -1
- package/dist/lib/upstream/sync-imports.d.ts +82 -62
- package/dist/lib/upstream/sync-imports.js +658 -185
- package/dist/lib/upstream/sync-imports.js.map +1 -1
- package/dist/lib/upstream/sync-package-json.d.ts +0 -1
- package/dist/lib/upstream/sync-package-json.js +7 -0
- package/dist/lib/upstream/sync-package-json.js.map +1 -1
- package/dist/lib/upstream/sync-package-manager.d.ts +14 -4
- package/dist/lib/upstream/sync-package-manager.js +405 -72
- package/dist/lib/upstream/sync-package-manager.js.map +1 -1
- package/dist/lib/upstream/sync-pielib-strategy.d.ts +2 -1
- package/dist/lib/upstream/sync-pielib-strategy.js +228 -110
- package/dist/lib/upstream/sync-pielib-strategy.js.map +1 -1
- package/dist/lib/upstream/sync-presets.d.ts +52 -0
- package/dist/lib/upstream/sync-presets.js +175 -0
- package/dist/lib/upstream/sync-presets.js.map +1 -0
- package/dist/lib/upstream/sync-react-strategy.d.ts +6 -1
- package/dist/lib/upstream/sync-react-strategy.js +342 -134
- package/dist/lib/upstream/sync-react-strategy.js.map +1 -1
- package/dist/lib/upstream/sync-source-edit.d.ts +14 -0
- package/dist/lib/upstream/sync-source-edit.js +89 -0
- package/dist/lib/upstream/sync-source-edit.js.map +1 -0
- package/dist/lib/upstream/sync-source-tree.d.ts +22 -0
- package/dist/lib/upstream/sync-source-tree.js +99 -0
- package/dist/lib/upstream/sync-source-tree.js.map +1 -0
- package/dist/lib/upstream/sync-strategy.d.ts +1 -1
- package/dist/lib/upstream/sync-strategy.js.map +1 -1
- package/dist/lib/upstream/sync-summary.d.ts +0 -1
- package/dist/lib/upstream/sync-summary.js.map +1 -1
- package/dist/lib/upstream/sync-transforms.d.ts +13 -11
- package/dist/lib/upstream/sync-transforms.js +23 -17
- package/dist/lib/upstream/sync-transforms.js.map +1 -1
- package/dist/lib/upstream/sync-vite-config.d.ts +13 -1
- package/dist/lib/upstream/sync-vite-config.js +65 -46
- package/dist/lib/upstream/sync-vite-config.js.map +1 -1
- package/dist/utils/compatibility.d.ts +13 -1
- package/dist/utils/compatibility.js +143 -2
- package/dist/utils/compatibility.js.map +1 -1
- package/dist/utils/conversion.d.ts +0 -1
- package/dist/utils/conversion.js.map +1 -1
- package/dist/utils/dependency-integrity.d.ts +37 -0
- package/dist/utils/dependency-integrity.js +557 -0
- package/dist/utils/dependency-integrity.js.map +1 -0
- package/dist/utils/git.d.ts +0 -1
- package/dist/utils/git.js.map +1 -1
- package/dist/utils/logger.d.ts +0 -1
- package/dist/utils/logger.js.map +1 -1
- package/dist/utils/package-json.d.ts +0 -1
- package/dist/utils/package-json.js.map +1 -1
- package/package.json +25 -8
- package/.compatibility/report.json +0 -2491
- package/.turbo/turbo-build.log +0 -1
- package/CHANGELOG.md +0 -8
- package/REFACTORING.md +0 -131
- package/bin/dev.js +0 -5
- package/dist/commands/dev/demo/index.d.ts.map +0 -1
- package/dist/commands/dev/test-bundler.d.ts.map +0 -1
- package/dist/commands/mathquill/migrate.d.ts +0 -20
- package/dist/commands/mathquill/migrate.d.ts.map +0 -1
- package/dist/commands/mathquill/migrate.js +0 -240
- package/dist/commands/mathquill/migrate.js.map +0 -1
- package/dist/commands/mathquill/status.d.ts +0 -20
- package/dist/commands/mathquill/status.d.ts.map +0 -1
- package/dist/commands/mathquill/status.js +0 -231
- package/dist/commands/mathquill/status.js.map +0 -1
- package/dist/commands/packages/create-controllers.d.ts.map +0 -1
- package/dist/commands/packages/create-lib-react.d.ts.map +0 -1
- package/dist/commands/packages/create-react-elements.d.ts.map +0 -1
- package/dist/commands/packages/enable-publishing.d.ts.map +0 -1
- package/dist/commands/packages/init-synced-elements.d.ts.map +0 -1
- package/dist/commands/upstream/analyze-esm.d.ts.map +0 -1
- package/dist/commands/upstream/check.d.ts.map +0 -1
- package/dist/commands/upstream/deps.d.ts.map +0 -1
- package/dist/commands/upstream/sync-mathquill.d.ts +0 -12
- package/dist/commands/upstream/sync-mathquill.d.ts.map +0 -1
- package/dist/commands/upstream/sync-mathquill.js +0 -97
- package/dist/commands/upstream/sync-mathquill.js.map +0 -1
- package/dist/commands/upstream/sync.d.ts.map +0 -1
- package/dist/commands/upstream/track.d.ts.map +0 -1
- package/dist/commands/upstream/update.d.ts.map +0 -1
- package/dist/commands/verify/controllers.d.ts.map +0 -1
- package/dist/commands/verify/react-build.d.ts.map +0 -1
- package/dist/index.d.ts.map +0 -1
- package/dist/lib/mathquill/extension-generator.d.ts +0 -9
- package/dist/lib/mathquill/extension-generator.d.ts.map +0 -1
- package/dist/lib/mathquill/extension-generator.js +0 -107
- package/dist/lib/mathquill/extension-generator.js.map +0 -1
- package/dist/lib/mathquill/khan-extractor.d.ts +0 -16
- package/dist/lib/mathquill/khan-extractor.d.ts.map +0 -1
- package/dist/lib/mathquill/khan-extractor.js +0 -148
- package/dist/lib/mathquill/khan-extractor.js.map +0 -1
- package/dist/lib/mathquill/learnosity-extractor.d.ts +0 -15
- package/dist/lib/mathquill/learnosity-extractor.d.ts.map +0 -1
- package/dist/lib/mathquill/learnosity-extractor.js +0 -170
- package/dist/lib/mathquill/learnosity-extractor.js.map +0 -1
- package/dist/lib/mathquill/migration-orchestrator.d.ts +0 -77
- package/dist/lib/mathquill/migration-orchestrator.d.ts.map +0 -1
- package/dist/lib/mathquill/migration-orchestrator.js +0 -391
- package/dist/lib/mathquill/migration-orchestrator.js.map +0 -1
- package/dist/lib/mathquill/package-updater.d.ts +0 -9
- package/dist/lib/mathquill/package-updater.d.ts.map +0 -1
- package/dist/lib/mathquill/package-updater.js +0 -103
- package/dist/lib/mathquill/package-updater.js.map +0 -1
- package/dist/lib/mathquill/pie-extractor.d.ts +0 -14
- package/dist/lib/mathquill/pie-extractor.d.ts.map +0 -1
- package/dist/lib/mathquill/pie-extractor.js +0 -167
- package/dist/lib/mathquill/pie-extractor.js.map +0 -1
- package/dist/lib/upstream/repo-utils.d.ts.map +0 -1
- package/dist/lib/upstream/sync-compatibility.d.ts.map +0 -1
- package/dist/lib/upstream/sync-constants.d.ts.map +0 -1
- package/dist/lib/upstream/sync-controllers-strategy.d.ts.map +0 -1
- package/dist/lib/upstream/sync-demo-metadata.d.ts.map +0 -1
- package/dist/lib/upstream/sync-dev-exports.d.ts +0 -13
- package/dist/lib/upstream/sync-dev-exports.d.ts.map +0 -1
- package/dist/lib/upstream/sync-dev-exports.js +0 -115
- package/dist/lib/upstream/sync-dev-exports.js.map +0 -1
- package/dist/lib/upstream/sync-externals.d.ts.map +0 -1
- package/dist/lib/upstream/sync-filesystem.d.ts.map +0 -1
- package/dist/lib/upstream/sync-imports.d.ts.map +0 -1
- package/dist/lib/upstream/sync-mathquill.d.ts +0 -19
- package/dist/lib/upstream/sync-mathquill.d.ts.map +0 -1
- package/dist/lib/upstream/sync-mathquill.js +0 -160
- package/dist/lib/upstream/sync-mathquill.js.map +0 -1
- package/dist/lib/upstream/sync-package-json.d.ts.map +0 -1
- package/dist/lib/upstream/sync-package-manager.d.ts.map +0 -1
- package/dist/lib/upstream/sync-pielib-strategy.d.ts.map +0 -1
- package/dist/lib/upstream/sync-react-strategy.d.ts.map +0 -1
- package/dist/lib/upstream/sync-strategy.d.ts.map +0 -1
- package/dist/lib/upstream/sync-summary.d.ts.map +0 -1
- package/dist/lib/upstream/sync-transforms.d.ts.map +0 -1
- package/dist/lib/upstream/sync-vite-config.d.ts.map +0 -1
- package/dist/utils/compatibility.d.ts.map +0 -1
- package/dist/utils/conversion.d.ts.map +0 -1
- package/dist/utils/git.d.ts.map +0 -1
- package/dist/utils/logger.d.ts.map +0 -1
- package/dist/utils/package-json.d.ts.map +0 -1
- package/packages/cli/bin/dev.js +0 -5
- package/packages/cli/bin/run.js +0 -5
- package/src/commands/dev/demo/index.ts +0 -313
- package/src/commands/dev/test-bundler.ts +0 -345
- package/src/commands/mathquill/migrate.ts +0 -269
- package/src/commands/mathquill/status.ts +0 -267
- package/src/commands/packages/create-controllers.ts +0 -127
- package/src/commands/packages/create-lib-react.ts +0 -279
- package/src/commands/packages/create-react-elements.ts +0 -306
- package/src/commands/packages/enable-publishing.ts +0 -161
- package/src/commands/packages/init-synced-elements.ts +0 -259
- package/src/commands/upstream/README.md +0 -444
- package/src/commands/upstream/analyze-esm.ts +0 -1973
- package/src/commands/upstream/check.ts +0 -228
- package/src/commands/upstream/deps.ts +0 -222
- package/src/commands/upstream/sync-mathquill.ts +0 -108
- package/src/commands/upstream/sync.ts +0 -687
- package/src/commands/upstream/track.ts +0 -145
- package/src/commands/upstream/update.ts +0 -110
- package/src/commands/verify/controllers.ts +0 -166
- package/src/commands/verify/react-build.ts +0 -171
- package/src/index.ts +0 -1
- package/src/lib/mathquill/extension-generator.ts +0 -111
- package/src/lib/mathquill/khan-extractor.ts +0 -175
- package/src/lib/mathquill/learnosity-extractor.ts +0 -198
- package/src/lib/mathquill/migration-orchestrator.ts +0 -513
- package/src/lib/mathquill/package-updater.ts +0 -120
- package/src/lib/mathquill/pie-extractor.ts +0 -194
- package/src/lib/upstream/repo-utils.ts +0 -18
- package/src/lib/upstream/sync-compatibility.ts +0 -89
- package/src/lib/upstream/sync-constants.ts +0 -77
- package/src/lib/upstream/sync-controllers-strategy.ts +0 -291
- package/src/lib/upstream/sync-demo-metadata.ts +0 -199
- package/src/lib/upstream/sync-dev-exports.ts +0 -151
- package/src/lib/upstream/sync-externals.ts +0 -159
- package/src/lib/upstream/sync-filesystem.ts +0 -87
- package/src/lib/upstream/sync-imports.ts +0 -992
- package/src/lib/upstream/sync-mathquill.ts +0 -194
- package/src/lib/upstream/sync-package-json.ts +0 -86
- package/src/lib/upstream/sync-package-manager.ts +0 -694
- package/src/lib/upstream/sync-pielib-strategy.ts +0 -441
- package/src/lib/upstream/sync-react-strategy.ts +0 -945
- package/src/lib/upstream/sync-strategy.ts +0 -61
- package/src/lib/upstream/sync-summary.ts +0 -194
- package/src/lib/upstream/sync-transforms.ts +0 -154
- package/src/lib/upstream/sync-vite-config.ts +0 -243
- package/src/types/es-module-lexer.d.ts +0 -4
- package/src/utils/compatibility.ts +0 -182
- package/src/utils/conversion.ts +0 -153
- package/src/utils/git.ts +0 -63
- package/src/utils/logger.ts +0 -69
- package/src/utils/package-json.ts +0 -43
- package/tests/sync-package-manager.test.ts +0 -112
- package/tests/transform-assign-props.test.ts +0 -101
- package/tsconfig.json +0 -15
package/README.md
CHANGED
|
@@ -121,19 +121,11 @@ Recommended wrapper that runs analyze + sync.
|
|
|
121
121
|
bun run cli upstream:update
|
|
122
122
|
```
|
|
123
123
|
|
|
124
|
-
#### `upstream:sync-mathquill`
|
|
125
|
-
|
|
126
|
-
Sync the MathQuill fork used by the project.
|
|
127
|
-
|
|
128
|
-
```bash
|
|
129
|
-
bun run cli upstream:sync-mathquill
|
|
130
|
-
```
|
|
131
|
-
|
|
132
124
|
### Package Management
|
|
133
125
|
|
|
134
126
|
#### `packages:enable-publishing`
|
|
135
127
|
|
|
136
|
-
Enable
|
|
128
|
+
Enable publishing for all `@pie-element/*` and `@pie-lib/*` packages (remove private flags and clear matching Changesets ignore entries).
|
|
137
129
|
|
|
138
130
|
```bash
|
|
139
131
|
# Dry run
|
|
@@ -179,8 +171,39 @@ Initialize package scaffolding for synced elements.
|
|
|
179
171
|
bun run cli packages:init-synced-elements
|
|
180
172
|
```
|
|
181
173
|
|
|
174
|
+
### Documentation
|
|
175
|
+
|
|
176
|
+
#### `docs:generate`
|
|
177
|
+
|
|
178
|
+
Generate framework-agnostic HTML docs artifacts for elements from per-element `docs.contract.json` descriptors.
|
|
179
|
+
The element demo runs this during `prebuild`/`predev`; the generated `static/element-docs`
|
|
180
|
+
directory is a local build artifact and is not committed.
|
|
181
|
+
|
|
182
|
+
```bash
|
|
183
|
+
# Generate docs for all elements
|
|
184
|
+
bun run cli docs:generate
|
|
185
|
+
|
|
186
|
+
# Generate for one framework/element
|
|
187
|
+
bun run cli docs:generate --framework svelte --element simple-cloze
|
|
188
|
+
|
|
189
|
+
# Seed missing contracts before generation
|
|
190
|
+
bun run cli docs:generate --seed-contracts
|
|
191
|
+
```
|
|
192
|
+
|
|
182
193
|
### Verification
|
|
183
194
|
|
|
195
|
+
#### `docs:verify`
|
|
196
|
+
|
|
197
|
+
Verify that all targeted elements have valid `docs.contract.json` descriptors and that local generated docs match the current generator output.
|
|
198
|
+
|
|
199
|
+
```bash
|
|
200
|
+
# Verify all frameworks
|
|
201
|
+
bun run cli docs:verify
|
|
202
|
+
|
|
203
|
+
# Verify one framework/element
|
|
204
|
+
bun run cli docs:verify --framework svelte --element simple-cloze
|
|
205
|
+
```
|
|
206
|
+
|
|
184
207
|
#### `verify:controllers`
|
|
185
208
|
|
|
186
209
|
Verify controller package exports before publishing.
|
|
@@ -197,6 +220,21 @@ Verify that all React elements build successfully.
|
|
|
197
220
|
bun run cli verify:react-build
|
|
198
221
|
```
|
|
199
222
|
|
|
223
|
+
#### `verify:dependency-integrity`
|
|
224
|
+
|
|
225
|
+
Inspect package imports and classify dependency usage as direct, transitive, hoist-reliant, or broken.
|
|
226
|
+
|
|
227
|
+
```bash
|
|
228
|
+
# Scan all element/lib-react packages
|
|
229
|
+
bun run cli verify:dependency-integrity
|
|
230
|
+
|
|
231
|
+
# Scan one package
|
|
232
|
+
bun run cli verify:dependency-integrity --package @pie-element/ebsr
|
|
233
|
+
|
|
234
|
+
# Fail on hoist-reliant imports too (not only broken)
|
|
235
|
+
bun run cli verify:dependency-integrity --fail-on-hoist
|
|
236
|
+
```
|
|
237
|
+
|
|
200
238
|
## CLI Development
|
|
201
239
|
|
|
202
240
|
```bash
|
|
@@ -216,7 +254,7 @@ The CLI is built with [oclif](https://oclif.io/), following the same architectur
|
|
|
216
254
|
|
|
217
255
|
- **Commands**: Located in `src/commands/` organized by topic
|
|
218
256
|
- **Utilities**: Shared utilities in `src/utils/`
|
|
219
|
-
- **Topics**: Commands are grouped into topics (upstream, packages, verify)
|
|
257
|
+
- **Topics**: Commands are grouped into topics (upstream, packages, docs, verify)
|
|
220
258
|
|
|
221
259
|
## Migration from Scripts
|
|
222
260
|
|
|
@@ -20,6 +20,7 @@ export default class DevDemo extends Command {
|
|
|
20
20
|
run(): Promise<void>;
|
|
21
21
|
private buildAllElements;
|
|
22
22
|
private startVite;
|
|
23
|
+
private generateDemoImports;
|
|
23
24
|
private openBrowser;
|
|
24
25
|
private installDependencies;
|
|
25
26
|
private cleanup;
|
|
@@ -30,4 +31,3 @@ export default class DevDemo extends Command {
|
|
|
30
31
|
private releaseLock;
|
|
31
32
|
private isProcessRunning;
|
|
32
33
|
}
|
|
33
|
-
//# sourceMappingURL=index.d.ts.map
|
|
@@ -59,6 +59,8 @@ export default class DevDemo extends Command {
|
|
|
59
59
|
this.log(`Bundler workspace: ${this.bundlerInstanceDir}`);
|
|
60
60
|
this.log('');
|
|
61
61
|
try {
|
|
62
|
+
// 0. Regenerate demo import map every run (CLI path bypasses package predev hook).
|
|
63
|
+
await this.generateDemoImports(demoAppPath);
|
|
62
64
|
// 1. Build all elements if requested
|
|
63
65
|
if (flags.build) {
|
|
64
66
|
this.log('Building all React elements...');
|
|
@@ -157,6 +159,25 @@ export default class DevDemo extends Command {
|
|
|
157
159
|
});
|
|
158
160
|
return proc;
|
|
159
161
|
}
|
|
162
|
+
async generateDemoImports(demoPath) {
|
|
163
|
+
this.log('Generating demo import map...');
|
|
164
|
+
await new Promise((resolve, reject) => {
|
|
165
|
+
const generate = spawn('bun', ['run', 'generate-imports'], {
|
|
166
|
+
cwd: demoPath,
|
|
167
|
+
stdio: 'inherit',
|
|
168
|
+
});
|
|
169
|
+
generate.on('close', (code) => {
|
|
170
|
+
if (code === 0) {
|
|
171
|
+
this.log('ā Demo import map generated\n');
|
|
172
|
+
resolve();
|
|
173
|
+
}
|
|
174
|
+
else {
|
|
175
|
+
reject(new Error(`generate-imports failed with code ${code}`));
|
|
176
|
+
}
|
|
177
|
+
});
|
|
178
|
+
generate.on('error', reject);
|
|
179
|
+
});
|
|
180
|
+
}
|
|
160
181
|
async openBrowser(url) {
|
|
161
182
|
try {
|
|
162
183
|
const open = await import('open');
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../src/commands/dev/demo/index.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../src/commands/dev/demo/index.ts"],"names":[],"mappings":"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","sourcesContent":["import { Command, Flags } from '@oclif/core';\nimport { spawn, type ChildProcess } from 'node:child_process';\nimport path from 'node:path';\nimport { existsSync, readFileSync, rmSync, unlinkSync, writeFileSync } from 'node:fs';\nimport { tmpdir } from 'node:os';\n\n/**\n * Start unified demo application for all PIE elements.\n *\n * This command starts the apps/element-demo SvelteKit application which provides\n * a unified demo experience for all 27 PIE elements with multiple demo configurations.\n */\nexport default class DevDemo extends Command {\n static override description = 'Start unified demo app for all PIE elements (apps/element-demo)';\n\n static override examples = [\n '<%= config.bin %> <%= command.id %>',\n '<%= config.bin %> <%= command.id %> --port 5180',\n '<%= config.bin %> <%= command.id %> --open',\n '<%= config.bin %> <%= command.id %> --build',\n ];\n\n static override flags = {\n port: Flags.integer({\n char: 'p',\n description: 'Vite dev server port',\n default: 5222,\n }),\n build: Flags.boolean({\n char: 'b',\n description: 'Build all elements before starting',\n default: false,\n }),\n open: Flags.boolean({\n char: 'o',\n description: 'Open browser automatically',\n default: false,\n allowNo: true,\n }),\n };\n\n static override args = {};\n\n private viteProcess: ChildProcess | null = null;\n private lockFilePath = '';\n private bundlerInstanceDir = '';\n\n public async run(): Promise<void> {\n const { flags } = await this.parse(DevDemo);\n\n // Find monorepo root - check if we're already at root or need to traverse up\n let monorepoRoot = process.cwd();\n const rootPackageJson = path.join(monorepoRoot, 'package.json');\n\n // If package.json doesn't exist at current level, we're in a subdirectory (like tools/cli)\n // Traverse up to find the root\n if (!existsSync(rootPackageJson) || !existsSync(path.join(monorepoRoot, 'apps'))) {\n monorepoRoot = path.resolve(monorepoRoot, '../..');\n }\n\n const demoAppPath = path.join(monorepoRoot, 'apps', 'element-demo');\n\n this.lockFilePath = this.getLockFilePath(flags.port);\n this.acquireLock(flags.port);\n this.bundlerInstanceDir = this.createBundlerInstanceDir(flags.port);\n\n this.log('Starting unified demo app for all PIE elements...');\n this.log('');\n this.log('Bundler mode: local (default)');\n this.log(`Bundler workspace: ${this.bundlerInstanceDir}`);\n this.log('');\n\n try {\n // 0. Regenerate demo import map every run (CLI path bypasses package predev hook).\n await this.generateDemoImports(demoAppPath);\n\n // 1. Build all elements if requested\n if (flags.build) {\n this.log('Building all React elements...');\n await this.buildAllElements(monorepoRoot);\n }\n\n // 2. Install workspace dependencies (only if building)\n if (flags.build) {\n this.log('Installing workspace dependencies...');\n await this.installDependencies(monorepoRoot);\n this.log('ā Dependencies installed\\n');\n }\n\n // 3. Start Vite dev server\n this.log(`Starting Vite dev server on port ${flags.port}...`);\n if (!existsSync(demoAppPath)) {\n this.error(`Demo app not found at ${demoAppPath}`);\n }\n this.viteProcess = await this.startVite(demoAppPath, flags.port, {\n DEMO_BUNDLER_INSTANCE_DIR: this.bundlerInstanceDir,\n });\n\n // 4. Open browser\n if (flags.open) {\n await this.sleep(3000); // Wait for Vite to start\n const url = `http://localhost:${flags.port}`;\n this.log(`Opening ${url}...`);\n await this.openBrowser(url);\n }\n\n this.log('');\n this.log('ā Demo app running');\n this.log(` URL: http://localhost:${flags.port}`);\n this.log('');\n if (!flags.build) {\n this.log('ā¹ļø Running without rebuild. Use --build to rebuild all elements first.');\n this.log('');\n }\n this.log('š The demo app showcases all 27 PIE elements with multiple demos');\n this.log(' Navigate to any element to see available demo configurations');\n this.log('');\n this.log('Press Ctrl+C to stop');\n\n // 7. Handle graceful shutdown\n process.on('SIGINT', () => {\n this.log('\\nShutting down...');\n this.cleanup();\n process.exit(0);\n });\n\n process.on('SIGTERM', () => {\n this.cleanup();\n process.exit(0);\n });\n\n // Keep process alive\n await new Promise(() => {});\n } catch (error) {\n this.cleanup();\n throw error;\n }\n }\n\n private async buildAllElements(cwd: string): Promise<void> {\n return new Promise((resolve, reject) => {\n const build = spawn(\n 'bun',\n [\n 'run',\n 'turbo',\n 'build',\n '--force',\n '--filter',\n './packages/elements-react/*',\n '--filter',\n './packages/elements-svelte/*',\n ],\n {\n stdio: 'inherit',\n cwd,\n }\n );\n\n build.on('close', (code) => {\n if (code === 0) {\n this.log('ā All elements built\\n');\n resolve();\n } else {\n reject(new Error(`Build failed with code ${code}`));\n }\n });\n\n build.on('error', reject);\n });\n }\n\n private async startVite(\n demoPath: string,\n port: number,\n env: Record<string, string>\n ): Promise<ChildProcess> {\n const proc = spawn('bunx', ['vite', '--port', port.toString(), '--host'], {\n cwd: demoPath,\n stdio: 'inherit',\n env: {\n ...process.env,\n PORT: port.toString(),\n ...env,\n },\n });\n\n proc.on('error', (error) => {\n this.error(`Failed to start Vite: ${error.message}`);\n });\n\n return proc;\n }\n\n private async generateDemoImports(demoPath: string): Promise<void> {\n this.log('Generating demo import map...');\n await new Promise<void>((resolve, reject) => {\n const generate = spawn('bun', ['run', 'generate-imports'], {\n cwd: demoPath,\n stdio: 'inherit',\n });\n\n generate.on('close', (code) => {\n if (code === 0) {\n this.log('ā Demo import map generated\\n');\n resolve();\n } else {\n reject(new Error(`generate-imports failed with code ${code}`));\n }\n });\n\n generate.on('error', reject);\n });\n }\n\n private async openBrowser(url: string): Promise<void> {\n try {\n const open = await import('open');\n await open.default(url);\n } catch (error) {\n this.warn(`Could not open browser: ${error}`);\n this.log(`Please open ${url} manually`);\n }\n }\n\n private async installDependencies(cwd: string): Promise<void> {\n return new Promise((resolve, reject) => {\n const install = spawn('bun', ['install'], {\n cwd, // Run from monorepo root to resolve all workspaces\n stdio: 'inherit',\n });\n\n install.on('close', (code) => {\n if (code === 0) {\n resolve();\n } else {\n reject(new Error(`Dependency installation failed with code ${code}`));\n }\n });\n\n install.on('error', reject);\n });\n }\n\n private cleanup(): void {\n if (this.viteProcess) {\n try {\n this.viteProcess.kill('SIGTERM');\n } catch (error) {\n // Ignore errors during cleanup\n }\n this.viteProcess = null;\n }\n\n if (this.bundlerInstanceDir) {\n try {\n rmSync(this.bundlerInstanceDir, { recursive: true, force: true });\n } catch {\n // Ignore cleanup errors.\n }\n this.bundlerInstanceDir = '';\n }\n\n this.releaseLock();\n }\n\n private sleep(ms: number): Promise<void> {\n return new Promise((resolve) => setTimeout(resolve, ms));\n }\n\n private acquireLock(port: number): void {\n if (existsSync(this.lockFilePath)) {\n try {\n const raw = readFileSync(this.lockFilePath, 'utf-8');\n const lock = JSON.parse(raw);\n if (lock?.pid && this.isProcessRunning(lock.pid)) {\n this.error(\n `A demo server is already running (port: ${lock.port ?? 'unknown'}, pid: ${\n lock.pid\n }). Stop it or use --port to run on a different port.`\n );\n }\n } catch (error) {\n // If the lock is unreadable, remove it and continue.\n }\n\n try {\n unlinkSync(this.lockFilePath);\n } catch {\n // Ignore cleanup errors.\n }\n }\n\n const lockInfo = {\n pid: process.pid,\n port,\n startedAt: new Date().toISOString(),\n };\n writeFileSync(this.lockFilePath, `${JSON.stringify(lockInfo, null, 2)}\\n`);\n }\n\n private getLockFilePath(port: number): string {\n return path.join(process.cwd(), `.demo-server.${port}.lock`);\n }\n\n private createBundlerInstanceDir(port: number): string {\n // New run => new temp dir, so local cache is fresh after every restart.\n const instanceId = `demo-${port}-${process.pid}-${Date.now()}`;\n return path.join(tmpdir(), 'pie-element-demo-bundler', instanceId);\n }\n\n private releaseLock(): void {\n if (!existsSync(this.lockFilePath)) return;\n try {\n const raw = readFileSync(this.lockFilePath, 'utf-8');\n const lock = JSON.parse(raw);\n if (lock?.pid !== process.pid) return;\n } catch {\n // If parsing fails, still attempt to remove stale lock.\n }\n\n try {\n unlinkSync(this.lockFilePath);\n } catch {\n // Ignore cleanup errors.\n }\n }\n\n private isProcessRunning(pid: number): boolean {\n try {\n process.kill(pid, 0);\n return true;\n } catch {\n return false;\n }\n }\n}\n"]}
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import { Command, Flags } from '@oclif/core';
|
|
2
2
|
import { Logger } from '../../utils/logger.js';
|
|
3
|
-
import { mkDependencyHash, generateEntries, createWebpackConfig, } from '@pie-element/bundler
|
|
3
|
+
import { mkDependencyHash, generateEntries, createWebpackConfig, } from '@pie-element/element-bundler';
|
|
4
4
|
import webpack from 'webpack';
|
|
5
5
|
import { execSync } from 'node:child_process';
|
|
6
6
|
import { existsSync, readFileSync, rmSync, symlinkSync, mkdirSync, writeFileSync } from 'node:fs';
|
|
@@ -107,7 +107,7 @@ export default class TestBundler extends Command {
|
|
|
107
107
|
}
|
|
108
108
|
}
|
|
109
109
|
async buildLocalPackages(element) {
|
|
110
|
-
const packages = [
|
|
110
|
+
const packages = [`packages/elements-react/${element}`];
|
|
111
111
|
for (const pkg of packages) {
|
|
112
112
|
if (!existsSync(pkg)) {
|
|
113
113
|
this.logger.warn(`Package not found: ${pkg}`);
|
|
@@ -148,7 +148,6 @@ export default class TestBundler extends Command {
|
|
|
148
148
|
}, null, 2));
|
|
149
149
|
// Symlink local packages
|
|
150
150
|
const localPackages = {
|
|
151
|
-
'shared-mathquill': 'packages/shared/mathquill',
|
|
152
151
|
[element]: `packages/elements-react/${element}`,
|
|
153
152
|
};
|
|
154
153
|
for (const [name, path] of Object.entries(localPackages)) {
|
|
@@ -178,13 +177,6 @@ export default class TestBundler extends Command {
|
|
|
178
177
|
const nodeModulesDir = join(workspaceDir, 'node_modules');
|
|
179
178
|
const pieElementDir = join(nodeModulesDir, '@pie-element');
|
|
180
179
|
mkdirSync(pieElementDir, { recursive: true });
|
|
181
|
-
// Link shared-mathquill
|
|
182
|
-
const mathquillLink = join(pieElementDir, 'shared-mathquill');
|
|
183
|
-
if (existsSync(mathquillLink)) {
|
|
184
|
-
rmSync(mathquillLink, { recursive: true, force: true });
|
|
185
|
-
}
|
|
186
|
-
symlinkSync(join(packagesDir, 'shared-mathquill'), mathquillLink, 'dir');
|
|
187
|
-
this.logger.info('Linked @pie-element/shared-mathquill in node_modules');
|
|
188
180
|
// Link element package
|
|
189
181
|
const elementLink = join(pieElementDir, element);
|
|
190
182
|
if (existsSync(elementLink)) {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"test-bundler.js","sourceRoot":"","sources":["../../../src/commands/dev/test-bundler.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"test-bundler.js","sourceRoot":"","sources":["../../../src/commands/dev/test-bundler.ts"],"names":[],"mappings":"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","sourcesContent":["import { Command, Flags } from '@oclif/core';\nimport { Logger } from '../../utils/logger.js';\nimport {\n mkDependencyHash,\n generateEntries,\n createWebpackConfig,\n type BuildDependency,\n} from '@pie-element/element-bundler';\nimport webpack from 'webpack';\nimport { execSync } from 'node:child_process';\nimport { existsSync, readFileSync, rmSync, symlinkSync, mkdirSync, writeFileSync } from 'node:fs';\nimport { tmpdir } from 'node:os';\nimport { join } from 'node:path';\n\nexport default class TestBundler extends Command {\n static override description = 'Test the PIE bundler service with local workspace packages';\n\n static override examples = [\n 'bun run cli <%= command.id %>',\n 'bun cli <%= command.id %>',\n '<%= config.bin %> <%= command.id %>',\n 'bun cli <%= command.id %> --element multiple-choice',\n 'bun cli <%= command.id %> --clean',\n ];\n\n static override flags = {\n element: Flags.string({\n char: 'e',\n description: 'Test with specific element (default: multiple-choice)',\n default: 'multiple-choice',\n }),\n clean: Flags.boolean({\n description: 'Clean test workspace before running',\n default: false,\n }),\n verbose: Flags.boolean({\n char: 'v',\n description: 'Show detailed output including webpack logs',\n default: false,\n }),\n 'keep-workspace': Flags.boolean({\n description: 'Keep workspace directory after test (for debugging)',\n default: false,\n }),\n };\n\n private logger!: Logger;\n\n public async run(): Promise<void> {\n const { flags } = await this.parse(TestBundler);\n this.logger = new Logger(flags.verbose);\n\n this.logger.section('š Testing PIE Bundler with Workspace Packages');\n\n // Setup paths\n const workspaceRoot = join(tmpdir(), 'pie-bundler-workspace-test');\n const cacheDir = join(workspaceRoot, 'cache');\n const outputDir = join(workspaceRoot, 'output');\n\n if (flags.clean && existsSync(workspaceRoot)) {\n this.logger.info('Cleaning old workspace...');\n rmSync(workspaceRoot, { recursive: true, force: true });\n }\n\n mkdirSync(outputDir, { recursive: true });\n mkdirSync(cacheDir, { recursive: true });\n\n // Build local packages first\n this.log('\\nš¦ Building local packages');\n await this.buildLocalPackages(flags.element);\n\n // Create workspace with local packages\n this.log('\\nš Setting up test workspace');\n const workspaceDir = await this.setupWorkspace(workspaceRoot, flags.element);\n\n // Test the bundler - use workspaceDir instead of installing from NPM\n this.log('\\nāļø Running bundler test');\n\n try {\n this.logger.info(`Building bundle for @pie-element/${flags.element}...`);\n\n // Call bundler directly without download step - workspace already has packages\n const result = await this.buildFromWorkspace(workspaceDir, outputDir, flags.element);\n\n if (flags.verbose) {\n this.log('\\nBuild Result:');\n this.log(JSON.stringify(result, null, 2));\n }\n\n if (!result.success) {\n this.logger.error('Build failed');\n if (result.errors) {\n this.log('\\nErrors:');\n for (const err of result.errors) {\n this.log(` - ${err}`);\n }\n }\n this.error('Bundler test failed', { exit: 1 });\n }\n\n // Verify results\n this.log('\\nā Verifying bundles');\n await this.verifyBundles(outputDir, result.hash);\n\n // Summary\n this.log(`\\n${'='.repeat(60)}`);\n this.log('ā
BUNDLER TEST PASSED');\n this.log('='.repeat(60));\n this.log(`Element: @pie-element/${flags.element}`);\n this.log(`Hash: ${result.hash}`);\n this.log(`Duration: ${result.duration}ms`);\n this.log(`Cached: ${result.cached ? 'Yes' : 'No'}`);\n this.log(`Bundle dir: ${join(outputDir, result.hash)}`);\n\n if (!flags['keep-workspace']) {\n this.logger.info('\\nCleaning up workspace...');\n rmSync(workspaceRoot, { recursive: true, force: true });\n } else {\n this.log(`Workspace: ${workspaceRoot}`);\n }\n\n this.log('='.repeat(60));\n this.log('');\n } catch (error: any) {\n this.logger.error(`Test failed: ${error.message}`);\n if (flags.verbose) {\n this.log(error.stack);\n }\n this.error('Bundler test failed', { exit: 1 });\n }\n }\n\n private async buildLocalPackages(element: string): Promise<void> {\n const packages = [`packages/elements-react/${element}`];\n\n for (const pkg of packages) {\n if (!existsSync(pkg)) {\n this.logger.warn(`Package not found: ${pkg}`);\n continue;\n }\n\n this.logger.info(`Building ${pkg}...`);\n try {\n execSync('bun run build', {\n cwd: pkg,\n stdio: this.logger.isVerbose() ? 'inherit' : 'pipe',\n });\n } catch (error: any) {\n this.logger.warn(`Build failed for ${pkg}: ${error.message}`);\n }\n }\n }\n\n private async setupWorkspace(workspaceRoot: string, element: string): Promise<string> {\n const workspaceDir = join(workspaceRoot, 'workspace');\n const packagesDir = join(workspaceDir, 'packages');\n\n mkdirSync(packagesDir, { recursive: true });\n\n // Create workspace package.json with bundler dependencies\n writeFileSync(\n join(workspaceDir, 'package.json'),\n JSON.stringify(\n {\n name: 'pie-bundler-test-workspace',\n private: true,\n workspaces: [\n 'packages/*',\n 'packages/*/controller',\n 'packages/*/configure',\n 'packages/*/author',\n ],\n dependencies: {\n 'esbuild-loader': '^4.4.2',\n 'css-loader': '^7.1.2',\n 'style-loader': '^4.0.0',\n 'url-loader': '^4.1.1',\n },\n },\n null,\n 2\n )\n );\n\n // Symlink local packages\n const localPackages = {\n [element]: `packages/elements-react/${element}`,\n };\n\n for (const [name, path] of Object.entries(localPackages)) {\n if (!existsSync(path)) {\n this.logger.warn(`Package not found: ${path}`);\n continue;\n }\n\n const linkPath = join(packagesDir, name);\n if (existsSync(linkPath)) {\n rmSync(linkPath, { recursive: true, force: true });\n }\n\n this.logger.info(`Linking ${name} ā ${path}`);\n symlinkSync(join(process.cwd(), path), linkPath, 'dir');\n }\n\n // Install dependencies\n this.logger.info('Installing workspace dependencies...');\n try {\n execSync('bun install', {\n cwd: workspaceDir,\n stdio: this.logger.isVerbose() ? 'inherit' : 'pipe',\n });\n } catch (error: any) {\n this.logger.warn(`Workspace install had issues: ${error.message}`);\n }\n\n // Create symlinks in node_modules for @pie-element packages\n const nodeModulesDir = join(workspaceDir, 'node_modules');\n const pieElementDir = join(nodeModulesDir, '@pie-element');\n mkdirSync(pieElementDir, { recursive: true });\n\n // Link element package\n const elementLink = join(pieElementDir, element);\n if (existsSync(elementLink)) {\n rmSync(elementLink, { recursive: true, force: true });\n }\n symlinkSync(join(packagesDir, element), elementLink, 'dir');\n this.logger.info(`Linked @pie-element/${element} in node_modules`);\n\n return workspaceDir;\n }\n\n private async buildFromWorkspace(\n workspaceDir: string,\n outputDir: string,\n element: string\n ): Promise<any> {\n const dependencies: BuildDependency[] = [{ name: `@pie-element/${element}`, version: '0.1.0' }];\n const hash = mkDependencyHash(dependencies);\n const startTime = Date.now();\n\n this.logger.info(`Bundle hash: ${hash}`);\n\n // Generate entry files\n const entryDir = join(workspaceDir, 'entries');\n mkdirSync(entryDir, { recursive: true });\n\n const requestedBundles: Array<'player' | 'client-player' | 'editor'> = [\n 'player',\n 'client-player',\n 'editor',\n ];\n const entries = generateEntries(dependencies, workspaceDir, requestedBundles);\n\n writeFileSync(join(entryDir, 'player.js'), entries.player || '');\n writeFileSync(join(entryDir, 'client-player.js'), entries['client-player'] || '');\n writeFileSync(join(entryDir, 'editor.js'), entries.editor || '');\n\n // Create webpack config\n const bundleOutputPath = join(outputDir, hash);\n mkdirSync(bundleOutputPath, { recursive: true });\n\n const webpackConfig = createWebpackConfig({\n context: entryDir,\n entry: {\n player: join(entryDir, 'player.js'),\n 'client-player': join(entryDir, 'client-player.js'),\n editor: join(entryDir, 'editor.js'),\n },\n outputPath: bundleOutputPath,\n workspaceDir,\n elements: dependencies.map((d) => d.name.split('/')[1]),\n });\n\n // Add repo's node_modules to webpack resolve paths for workspace testing\n if (!webpackConfig.resolve) webpackConfig.resolve = {};\n if (!webpackConfig.resolve.modules) webpackConfig.resolve.modules = [];\n webpackConfig.resolve.modules.push(join(process.cwd(), 'node_modules'));\n\n // Run webpack\n return new Promise((resolve, reject) => {\n webpack(webpackConfig, (err: any, stats: any) => {\n if (err) {\n reject(err);\n return;\n }\n\n if (stats?.hasErrors()) {\n const errors = stats.toString({ colors: false, errorDetails: true });\n reject(new Error(errors));\n return;\n }\n\n resolve({\n success: true,\n hash,\n bundles: {\n player: `/bundles/${hash}/player.js`,\n clientPlayer: `/bundles/${hash}/client-player.js`,\n editor: `/bundles/${hash}/editor.js`,\n },\n duration: Date.now() - startTime,\n cached: false,\n });\n });\n });\n }\n\n private async verifyBundles(outputDir: string, hash: string): Promise<void> {\n const bundleDir = join(outputDir, hash);\n const files = ['player.js', 'client-player.js', 'editor.js'];\n\n let allOk = true;\n\n for (const file of files) {\n const filePath = join(bundleDir, file);\n if (!existsSync(filePath)) {\n this.logger.error(`ā ${file} not found`);\n allOk = false;\n continue;\n }\n\n const content = readFileSync(filePath, 'utf-8');\n const size = (content.length / 1024).toFixed(1);\n this.logger.success(`ā
${file} (${size} KB)`);\n\n // Verify IIFE format for player bundle\n if (file === 'player.js' && !content.includes('window.pie')) {\n this.logger.warn(`ā ļø ${file} doesn't contain window.pie`);\n }\n }\n\n if (!allOk) {\n this.error('Bundle verification failed', { exit: 1 });\n }\n }\n}\n"]}
|
|
@@ -0,0 +1,16 @@
|
|
|
1
|
+
import { Command } from '@oclif/core';
|
|
2
|
+
export default class DocsGenerate extends Command {
|
|
3
|
+
static description: string;
|
|
4
|
+
static examples: string[];
|
|
5
|
+
static flags: {
|
|
6
|
+
framework: import("@oclif/core/interfaces").OptionFlag<string, import("@oclif/core/interfaces").CustomOptions>;
|
|
7
|
+
element: import("@oclif/core/interfaces").OptionFlag<string | undefined, import("@oclif/core/interfaces").CustomOptions>;
|
|
8
|
+
output: import("@oclif/core/interfaces").OptionFlag<string, import("@oclif/core/interfaces").CustomOptions>;
|
|
9
|
+
'dry-run': import("@oclif/core/interfaces").BooleanFlag<boolean>;
|
|
10
|
+
verbose: import("@oclif/core/interfaces").BooleanFlag<boolean>;
|
|
11
|
+
check: import("@oclif/core/interfaces").BooleanFlag<boolean>;
|
|
12
|
+
'seed-contracts': import("@oclif/core/interfaces").BooleanFlag<boolean>;
|
|
13
|
+
'refresh-contracts': import("@oclif/core/interfaces").BooleanFlag<boolean>;
|
|
14
|
+
};
|
|
15
|
+
run(): Promise<void>;
|
|
16
|
+
}
|
|
@@ -0,0 +1,150 @@
|
|
|
1
|
+
import { Command, Flags } from '@oclif/core';
|
|
2
|
+
import { resolve } from 'node:path';
|
|
3
|
+
import { Logger } from '../../utils/logger.js';
|
|
4
|
+
import { discoverElementPackages } from '../../lib/docs/discovery.js';
|
|
5
|
+
import { loadContract, seedContractForElement } from '../../lib/docs/contracts.js';
|
|
6
|
+
import { validateContracts } from '../../lib/docs/contract-validator.js';
|
|
7
|
+
import { generateDocsForContract, toRelativePaths } from '../../lib/docs/generator.js';
|
|
8
|
+
export default class DocsGenerate extends Command {
|
|
9
|
+
static description = 'Generate framework-agnostic PIE HTML docs artifacts from per-element docs contracts';
|
|
10
|
+
static examples = [
|
|
11
|
+
'<%= config.bin %> <%= command.id %>',
|
|
12
|
+
'<%= config.bin %> <%= command.id %> --framework=svelte --element=simple-cloze',
|
|
13
|
+
'<%= config.bin %> <%= command.id %> --check',
|
|
14
|
+
'<%= config.bin %> <%= command.id %> --seed-contracts',
|
|
15
|
+
];
|
|
16
|
+
static flags = {
|
|
17
|
+
framework: Flags.string({
|
|
18
|
+
description: 'Framework filter',
|
|
19
|
+
options: ['react', 'svelte', 'all'],
|
|
20
|
+
default: 'all',
|
|
21
|
+
}),
|
|
22
|
+
element: Flags.string({
|
|
23
|
+
description: 'Generate docs for one element name',
|
|
24
|
+
}),
|
|
25
|
+
output: Flags.string({
|
|
26
|
+
description: 'Output base directory',
|
|
27
|
+
default: 'apps/element-demo/static/element-docs',
|
|
28
|
+
}),
|
|
29
|
+
'dry-run': Flags.boolean({
|
|
30
|
+
description: 'Preview generation without writing files',
|
|
31
|
+
default: false,
|
|
32
|
+
}),
|
|
33
|
+
verbose: Flags.boolean({
|
|
34
|
+
char: 'v',
|
|
35
|
+
description: 'Verbose logging',
|
|
36
|
+
default: false,
|
|
37
|
+
}),
|
|
38
|
+
check: Flags.boolean({
|
|
39
|
+
description: 'Verify generated output matches committed docs',
|
|
40
|
+
default: false,
|
|
41
|
+
}),
|
|
42
|
+
'seed-contracts': Flags.boolean({
|
|
43
|
+
description: 'Create missing docs.contract.json descriptors before generation',
|
|
44
|
+
default: false,
|
|
45
|
+
}),
|
|
46
|
+
'refresh-contracts': Flags.boolean({
|
|
47
|
+
description: 'Refresh existing docs.contract.json descriptors using inferred defaults',
|
|
48
|
+
default: false,
|
|
49
|
+
}),
|
|
50
|
+
};
|
|
51
|
+
async run() {
|
|
52
|
+
const { flags } = await this.parse(DocsGenerate);
|
|
53
|
+
const logger = new Logger(flags.verbose);
|
|
54
|
+
const rootDir = process.cwd();
|
|
55
|
+
const framework = (flags.framework || 'all');
|
|
56
|
+
const outputDir = resolve(rootDir, flags.output);
|
|
57
|
+
logger.section('š PIE docs generation');
|
|
58
|
+
logger.info(` root: ${rootDir}`);
|
|
59
|
+
logger.info(` framework: ${framework}`);
|
|
60
|
+
logger.info(` output: ${outputDir}`);
|
|
61
|
+
logger.info(` mode: ${flags.check ? 'check' : flags['dry-run'] ? 'dry-run' : 'write'}\n`);
|
|
62
|
+
const discovered = await discoverElementPackages({
|
|
63
|
+
rootDir,
|
|
64
|
+
frameworkFilter: framework,
|
|
65
|
+
elementFilter: flags.element,
|
|
66
|
+
});
|
|
67
|
+
if (!discovered.length) {
|
|
68
|
+
this.error('No element packages found for the selected filters.');
|
|
69
|
+
}
|
|
70
|
+
if (flags['seed-contracts'] || flags['refresh-contracts']) {
|
|
71
|
+
let seeded = 0;
|
|
72
|
+
for (const element of discovered) {
|
|
73
|
+
if (flags['dry-run'] || flags.check) {
|
|
74
|
+
const existing = await loadContract(element.packageDir);
|
|
75
|
+
if (!existing || flags['refresh-contracts']) {
|
|
76
|
+
seeded++;
|
|
77
|
+
logger.info(` would ${flags['refresh-contracts'] ? 'refresh' : 'seed'}: ${element.elementName}`);
|
|
78
|
+
}
|
|
79
|
+
continue;
|
|
80
|
+
}
|
|
81
|
+
const result = await seedContractForElement(element, rootDir, {
|
|
82
|
+
refresh: flags['refresh-contracts'],
|
|
83
|
+
});
|
|
84
|
+
if (result.wrote) {
|
|
85
|
+
seeded++;
|
|
86
|
+
logger.info(` ${flags['refresh-contracts'] ? 'refreshed' : 'seeded'}: ${result.contractPath}`);
|
|
87
|
+
}
|
|
88
|
+
}
|
|
89
|
+
logger.info(`\n ${flags['dry-run'] || flags.check ? 'Would update' : 'Updated'} ${seeded} contract file(s).\n`);
|
|
90
|
+
}
|
|
91
|
+
const contracts = [];
|
|
92
|
+
const missingContracts = [];
|
|
93
|
+
for (const element of discovered) {
|
|
94
|
+
const contract = await loadContract(element.packageDir);
|
|
95
|
+
if (!contract) {
|
|
96
|
+
missingContracts.push(element.elementName);
|
|
97
|
+
continue;
|
|
98
|
+
}
|
|
99
|
+
contracts.push({ packageDir: element.packageDir, contract });
|
|
100
|
+
}
|
|
101
|
+
if (missingContracts.length > 0) {
|
|
102
|
+
this.error(`Missing docs contracts for ${missingContracts.length} element(s): ${missingContracts.join(', ')}`);
|
|
103
|
+
}
|
|
104
|
+
const validation = validateContracts(contracts);
|
|
105
|
+
if (validation.issues.length > 0) {
|
|
106
|
+
for (const issue of validation.issues) {
|
|
107
|
+
logger.error(`${issue.elementName}: ${issue.message}`);
|
|
108
|
+
}
|
|
109
|
+
this.error(`Contract validation failed with ${validation.issues.length} issue(s).`);
|
|
110
|
+
}
|
|
111
|
+
const allWritten = [];
|
|
112
|
+
const allChecked = [];
|
|
113
|
+
const allDrift = [];
|
|
114
|
+
for (const { packageDir, contract } of contracts) {
|
|
115
|
+
const result = await generateDocsForContract(packageDir, contract, {
|
|
116
|
+
outputDir,
|
|
117
|
+
dryRun: flags['dry-run'],
|
|
118
|
+
check: flags.check,
|
|
119
|
+
});
|
|
120
|
+
allWritten.push(...result.filesWritten);
|
|
121
|
+
allChecked.push(...result.filesChecked);
|
|
122
|
+
allDrift.push(...result.driftFiles);
|
|
123
|
+
if (logger.isVerbose()) {
|
|
124
|
+
logger.info(` generated: ${contract.elementName} (${contract.views.length} view(s))`);
|
|
125
|
+
}
|
|
126
|
+
}
|
|
127
|
+
if (flags.check) {
|
|
128
|
+
if (allDrift.length > 0) {
|
|
129
|
+
logger.error(`Detected docs drift in ${allDrift.length} file(s):`);
|
|
130
|
+
for (const file of toRelativePaths(rootDir, allDrift)) {
|
|
131
|
+
logger.error(` - ${file}`);
|
|
132
|
+
}
|
|
133
|
+
this.error('Docs verification failed due to drift.');
|
|
134
|
+
}
|
|
135
|
+
logger.success(`Checked ${allChecked.length} file(s); no drift detected.`);
|
|
136
|
+
return;
|
|
137
|
+
}
|
|
138
|
+
if (flags['dry-run']) {
|
|
139
|
+
logger.success(`Dry run complete. Would write ${allWritten.length} file(s).`);
|
|
140
|
+
return;
|
|
141
|
+
}
|
|
142
|
+
logger.success(`Wrote ${allWritten.length} file(s).`);
|
|
143
|
+
if (logger.isVerbose()) {
|
|
144
|
+
for (const file of toRelativePaths(rootDir, allWritten)) {
|
|
145
|
+
logger.info(` - ${file}`);
|
|
146
|
+
}
|
|
147
|
+
}
|
|
148
|
+
}
|
|
149
|
+
}
|
|
150
|
+
//# sourceMappingURL=generate.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"generate.js","sourceRoot":"","sources":["../../../src/commands/docs/generate.ts"],"names":[],"mappings":"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","sourcesContent":["import { Command, Flags } from '@oclif/core';\nimport { resolve } from 'node:path';\nimport { Logger } from '../../utils/logger.js';\nimport { discoverElementPackages } from '../../lib/docs/discovery.js';\nimport { loadContract, seedContractForElement } from '../../lib/docs/contracts.js';\nimport { validateContracts } from '../../lib/docs/contract-validator.js';\nimport { generateDocsForContract, toRelativePaths } from '../../lib/docs/generator.js';\nimport type { PieElementFramework } from '../../lib/docs/types.js';\n\nexport default class DocsGenerate extends Command {\n static override description =\n 'Generate framework-agnostic PIE HTML docs artifacts from per-element docs contracts';\n\n static override examples = [\n '<%= config.bin %> <%= command.id %>',\n '<%= config.bin %> <%= command.id %> --framework=svelte --element=simple-cloze',\n '<%= config.bin %> <%= command.id %> --check',\n '<%= config.bin %> <%= command.id %> --seed-contracts',\n ];\n\n static override flags = {\n framework: Flags.string({\n description: 'Framework filter',\n options: ['react', 'svelte', 'all'],\n default: 'all',\n }),\n element: Flags.string({\n description: 'Generate docs for one element name',\n }),\n output: Flags.string({\n description: 'Output base directory',\n default: 'apps/element-demo/static/element-docs',\n }),\n 'dry-run': Flags.boolean({\n description: 'Preview generation without writing files',\n default: false,\n }),\n verbose: Flags.boolean({\n char: 'v',\n description: 'Verbose logging',\n default: false,\n }),\n check: Flags.boolean({\n description: 'Verify generated output matches committed docs',\n default: false,\n }),\n 'seed-contracts': Flags.boolean({\n description: 'Create missing docs.contract.json descriptors before generation',\n default: false,\n }),\n 'refresh-contracts': Flags.boolean({\n description: 'Refresh existing docs.contract.json descriptors using inferred defaults',\n default: false,\n }),\n };\n\n public async run(): Promise<void> {\n const { flags } = await this.parse(DocsGenerate);\n const logger = new Logger(flags.verbose);\n const rootDir = process.cwd();\n const framework = (flags.framework || 'all') as PieElementFramework | 'all';\n const outputDir = resolve(rootDir, flags.output);\n\n logger.section('š PIE docs generation');\n logger.info(` root: ${rootDir}`);\n logger.info(` framework: ${framework}`);\n logger.info(` output: ${outputDir}`);\n logger.info(\n ` mode: ${flags.check ? 'check' : flags['dry-run'] ? 'dry-run' : 'write'}\\n`\n );\n\n const discovered = await discoverElementPackages({\n rootDir,\n frameworkFilter: framework,\n elementFilter: flags.element,\n });\n\n if (!discovered.length) {\n this.error('No element packages found for the selected filters.');\n }\n\n if (flags['seed-contracts'] || flags['refresh-contracts']) {\n let seeded = 0;\n for (const element of discovered) {\n if (flags['dry-run'] || flags.check) {\n const existing = await loadContract(element.packageDir);\n if (!existing || flags['refresh-contracts']) {\n seeded++;\n logger.info(\n ` would ${flags['refresh-contracts'] ? 'refresh' : 'seed'}: ${element.elementName}`\n );\n }\n continue;\n }\n const result = await seedContractForElement(element, rootDir, {\n refresh: flags['refresh-contracts'],\n });\n if (result.wrote) {\n seeded++;\n logger.info(\n ` ${flags['refresh-contracts'] ? 'refreshed' : 'seeded'}: ${result.contractPath}`\n );\n }\n }\n logger.info(\n `\\n ${flags['dry-run'] || flags.check ? 'Would update' : 'Updated'} ${seeded} contract file(s).\\n`\n );\n }\n\n const contracts: Array<{ packageDir: string; contract: any }> = [];\n const missingContracts: string[] = [];\n\n for (const element of discovered) {\n const contract = await loadContract(element.packageDir);\n if (!contract) {\n missingContracts.push(element.elementName);\n continue;\n }\n contracts.push({ packageDir: element.packageDir, contract });\n }\n\n if (missingContracts.length > 0) {\n this.error(\n `Missing docs contracts for ${missingContracts.length} element(s): ${missingContracts.join(', ')}`\n );\n }\n\n const validation = validateContracts(contracts);\n if (validation.issues.length > 0) {\n for (const issue of validation.issues) {\n logger.error(`${issue.elementName}: ${issue.message}`);\n }\n this.error(`Contract validation failed with ${validation.issues.length} issue(s).`);\n }\n\n const allWritten: string[] = [];\n const allChecked: string[] = [];\n const allDrift: string[] = [];\n\n for (const { packageDir, contract } of contracts) {\n const result = await generateDocsForContract(packageDir, contract, {\n outputDir,\n dryRun: flags['dry-run'],\n check: flags.check,\n });\n allWritten.push(...result.filesWritten);\n allChecked.push(...result.filesChecked);\n allDrift.push(...result.driftFiles);\n if (logger.isVerbose()) {\n logger.info(` generated: ${contract.elementName} (${contract.views.length} view(s))`);\n }\n }\n\n if (flags.check) {\n if (allDrift.length > 0) {\n logger.error(`Detected docs drift in ${allDrift.length} file(s):`);\n for (const file of toRelativePaths(rootDir, allDrift)) {\n logger.error(` - ${file}`);\n }\n this.error('Docs verification failed due to drift.');\n }\n logger.success(`Checked ${allChecked.length} file(s); no drift detected.`);\n return;\n }\n\n if (flags['dry-run']) {\n logger.success(`Dry run complete. Would write ${allWritten.length} file(s).`);\n return;\n }\n\n logger.success(`Wrote ${allWritten.length} file(s).`);\n if (logger.isVerbose()) {\n for (const file of toRelativePaths(rootDir, allWritten)) {\n logger.info(` - ${file}`);\n }\n }\n }\n}\n"]}
|
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
import { Command } from '@oclif/core';
|
|
2
|
+
export default class DocsVerify extends Command {
|
|
3
|
+
static description: string;
|
|
4
|
+
static examples: string[];
|
|
5
|
+
static flags: {
|
|
6
|
+
framework: import("@oclif/core/interfaces").OptionFlag<string, import("@oclif/core/interfaces").CustomOptions>;
|
|
7
|
+
element: import("@oclif/core/interfaces").OptionFlag<string | undefined, import("@oclif/core/interfaces").CustomOptions>;
|
|
8
|
+
output: import("@oclif/core/interfaces").OptionFlag<string, import("@oclif/core/interfaces").CustomOptions>;
|
|
9
|
+
verbose: import("@oclif/core/interfaces").BooleanFlag<boolean>;
|
|
10
|
+
};
|
|
11
|
+
run(): Promise<void>;
|
|
12
|
+
}
|
|
@@ -0,0 +1,40 @@
|
|
|
1
|
+
import { Command, Flags } from '@oclif/core';
|
|
2
|
+
import DocsGenerate from './generate.js';
|
|
3
|
+
export default class DocsVerify extends Command {
|
|
4
|
+
static description = 'Verify PIE docs contracts and generated HTML docs artifacts are up to date';
|
|
5
|
+
static examples = [
|
|
6
|
+
'<%= config.bin %> <%= command.id %>',
|
|
7
|
+
'<%= config.bin %> <%= command.id %> --framework=svelte',
|
|
8
|
+
];
|
|
9
|
+
static flags = {
|
|
10
|
+
framework: Flags.string({
|
|
11
|
+
description: 'Framework filter',
|
|
12
|
+
options: ['react', 'svelte', 'all'],
|
|
13
|
+
default: 'all',
|
|
14
|
+
}),
|
|
15
|
+
element: Flags.string({
|
|
16
|
+
description: 'Verify one element name',
|
|
17
|
+
}),
|
|
18
|
+
output: Flags.string({
|
|
19
|
+
description: 'Output base directory',
|
|
20
|
+
default: 'apps/element-demo/static/element-docs',
|
|
21
|
+
}),
|
|
22
|
+
verbose: Flags.boolean({
|
|
23
|
+
char: 'v',
|
|
24
|
+
description: 'Verbose logging',
|
|
25
|
+
default: false,
|
|
26
|
+
}),
|
|
27
|
+
};
|
|
28
|
+
async run() {
|
|
29
|
+
const { flags } = await this.parse(DocsVerify);
|
|
30
|
+
const forward = ['--check', `--framework=${flags.framework}`, `--output=${flags.output}`];
|
|
31
|
+
if (flags.element) {
|
|
32
|
+
forward.push(`--element=${flags.element}`);
|
|
33
|
+
}
|
|
34
|
+
if (flags.verbose) {
|
|
35
|
+
forward.push('--verbose');
|
|
36
|
+
}
|
|
37
|
+
await DocsGenerate.run(forward);
|
|
38
|
+
}
|
|
39
|
+
}
|
|
40
|
+
//# sourceMappingURL=verify.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"verify.js","sourceRoot":"","sources":["../../../src/commands/docs/verify.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,KAAK,EAAE,MAAM,aAAa,CAAC;AAC7C,OAAO,YAAY,MAAM,eAAe,CAAC;AAEzC,MAAM,CAAC,OAAO,OAAO,UAAW,SAAQ,OAAO;IAC7C,MAAM,CAAU,WAAW,GACzB,4EAA4E,CAAC;IAE/E,MAAM,CAAU,QAAQ,GAAG;QACzB,qCAAqC;QACrC,wDAAwD;KACzD,CAAC;IAEF,MAAM,CAAU,KAAK,GAAG;QACtB,SAAS,EAAE,KAAK,CAAC,MAAM,CAAC;YACtB,WAAW,EAAE,kBAAkB;YAC/B,OAAO,EAAE,CAAC,OAAO,EAAE,QAAQ,EAAE,KAAK,CAAC;YACnC,OAAO,EAAE,KAAK;SACf,CAAC;QACF,OAAO,EAAE,KAAK,CAAC,MAAM,CAAC;YACpB,WAAW,EAAE,yBAAyB;SACvC,CAAC;QACF,MAAM,EAAE,KAAK,CAAC,MAAM,CAAC;YACnB,WAAW,EAAE,uBAAuB;YACpC,OAAO,EAAE,uCAAuC;SACjD,CAAC;QACF,OAAO,EAAE,KAAK,CAAC,OAAO,CAAC;YACrB,IAAI,EAAE,GAAG;YACT,WAAW,EAAE,iBAAiB;YAC9B,OAAO,EAAE,KAAK;SACf,CAAC;KACH,CAAC;IAEK,KAAK,CAAC,GAAG;QACd,MAAM,EAAE,KAAK,EAAE,GAAG,MAAM,IAAI,CAAC,KAAK,CAAC,UAAU,CAAC,CAAC;QAC/C,MAAM,OAAO,GAAG,CAAC,SAAS,EAAE,eAAe,KAAK,CAAC,SAAS,EAAE,EAAE,YAAY,KAAK,CAAC,MAAM,EAAE,CAAC,CAAC;QAC1F,IAAI,KAAK,CAAC,OAAO,EAAE,CAAC;YAClB,OAAO,CAAC,IAAI,CAAC,aAAa,KAAK,CAAC,OAAO,EAAE,CAAC,CAAC;QAC7C,CAAC;QACD,IAAI,KAAK,CAAC,OAAO,EAAE,CAAC;YAClB,OAAO,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC;QAC5B,CAAC;QAED,MAAM,YAAY,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC;IAClC,CAAC","sourcesContent":["import { Command, Flags } from '@oclif/core';\nimport DocsGenerate from './generate.js';\n\nexport default class DocsVerify extends Command {\n static override description =\n 'Verify PIE docs contracts and generated HTML docs artifacts are up to date';\n\n static override examples = [\n '<%= config.bin %> <%= command.id %>',\n '<%= config.bin %> <%= command.id %> --framework=svelte',\n ];\n\n static override flags = {\n framework: Flags.string({\n description: 'Framework filter',\n options: ['react', 'svelte', 'all'],\n default: 'all',\n }),\n element: Flags.string({\n description: 'Verify one element name',\n }),\n output: Flags.string({\n description: 'Output base directory',\n default: 'apps/element-demo/static/element-docs',\n }),\n verbose: Flags.boolean({\n char: 'v',\n description: 'Verbose logging',\n default: false,\n }),\n };\n\n public async run(): Promise<void> {\n const { flags } = await this.parse(DocsVerify);\n const forward = ['--check', `--framework=${flags.framework}`, `--output=${flags.output}`];\n if (flags.element) {\n forward.push(`--element=${flags.element}`);\n }\n if (flags.verbose) {\n forward.push('--verbose');\n }\n\n await DocsGenerate.run(forward);\n }\n}\n"]}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"create-controllers.js","sourceRoot":"","sources":["../../../src/commands/packages/create-controllers.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"create-controllers.js","sourceRoot":"","sources":["../../../src/commands/packages/create-controllers.ts"],"names":[],"mappings":"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","sourcesContent":["import { Command, Flags } from '@oclif/core';\nimport { Logger } from '../../utils/logger.js';\nimport { extractDependencies } from '../../utils/package-json.js';\nimport { existsSync } from 'node:fs';\nimport { readdir, readFile, writeFile } from 'node:fs/promises';\nimport { join } from 'node:path';\n\nconst SHARED_DIR = 'packages/shared';\n\nexport default class CreateControllers extends Command {\n static override description = 'Create package.json files for synced controllers';\n\n static override examples = ['<%= config.bin %> <%= command.id %>'];\n\n static override flags = {\n verbose: Flags.boolean({\n char: 'v',\n description: 'Show detailed output',\n default: false,\n }),\n };\n\n private logger = new Logger();\n\n public async run(): Promise<void> {\n const { flags } = await this.parse(CreateControllers);\n\n this.logger = new Logger(flags.verbose);\n\n this.logger.section('š¦ Creating package.json files for controllers');\n\n const controllers = await readdir(SHARED_DIR);\n let created = 0;\n let skipped = 0;\n\n for (const controller of controllers) {\n const controllerDir = join(SHARED_DIR, controller);\n const packageJsonPath = join(controllerDir, 'package.json');\n\n // Skip if package.json already exists\n if (existsSync(packageJsonPath)) {\n this.logger.info(` āļø ${controller}: package.json already exists`);\n skipped++;\n continue;\n }\n\n // Scan for dependencies\n const deps = await this.scanController(controllerDir);\n\n // Generate package.json\n const content = this.generatePackageJson(controller, deps);\n\n // Write file\n await writeFile(packageJsonPath, content, 'utf-8');\n this.logger.success(` ā
${controller}: Created package.json (${deps.length} dependencies)`);\n created++;\n }\n\n this.logger.section(`\\nš Summary: ${created} created, ${skipped} skipped`);\n }\n\n private async scanController(controllerDir: string): Promise<string[]> {\n const srcDir = join(controllerDir, 'src');\n const deps = new Set<string>();\n\n if (!existsSync(srcDir)) {\n return [];\n }\n\n const files = await readdir(srcDir);\n\n for (const file of files) {\n if (!file.endsWith('.ts')) continue;\n\n const filePath = join(srcDir, file);\n const content = await readFile(filePath, 'utf-8');\n const fileDeps = extractDependencies(content);\n\n for (const dep of fileDeps) deps.add(dep);\n }\n\n return Array.from(deps).sort();\n }\n\n private generatePackageJson(name: string, deps: string[]): string {\n const dependencies: Record<string, string> = {};\n\n for (const dep of deps) {\n // Use * for external dependencies (they're in root package.json)\n dependencies[dep] = '*';\n }\n\n const pkg = {\n name: `@pie-element/${name}`,\n version: '0.1.0',\n description: `Framework-agnostic ${name.replace('-controller', '')} controller synced from pie-elements`,\n type: 'module',\n main: './src/index.ts',\n types: './src/index.ts',\n exports: {\n '.': {\n types: './src/index.ts',\n default: './src/index.ts',\n },\n },\n files: ['src'],\n scripts: {\n build: \"echo 'Controllers are consumed as TypeScript source'\",\n lint: 'biome check .',\n 'lint:fix': 'biome check --write .',\n },\n dependencies: Object.keys(dependencies).length > 0 ? dependencies : undefined,\n keywords: ['pie', 'pie-element', 'controller', name.replace('-controller', ''), 'assessment'],\n license: 'ISC',\n repository: {\n type: 'git',\n url: 'https://github.com/pie-framework/pie-elements-ng.git',\n directory: `packages/shared/${name}`,\n },\n };\n\n // Remove undefined fields\n const cleaned = JSON.parse(JSON.stringify(pkg));\n\n return `${JSON.stringify(cleaned, null, 2)}\\n`;\n }\n}\n"]}
|