@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.
Files changed (281) hide show
  1. package/README.md +48 -10
  2. package/dist/commands/dev/demo/index.d.ts +1 -1
  3. package/dist/commands/dev/demo/index.js +21 -0
  4. package/dist/commands/dev/demo/index.js.map +1 -1
  5. package/dist/commands/dev/test-bundler.d.ts +0 -1
  6. package/dist/commands/dev/test-bundler.js +2 -10
  7. package/dist/commands/dev/test-bundler.js.map +1 -1
  8. package/dist/commands/docs/generate.d.ts +16 -0
  9. package/dist/commands/docs/generate.js +150 -0
  10. package/dist/commands/docs/generate.js.map +1 -0
  11. package/dist/commands/docs/verify.d.ts +12 -0
  12. package/dist/commands/docs/verify.js +40 -0
  13. package/dist/commands/docs/verify.js.map +1 -0
  14. package/dist/commands/packages/create-controllers.d.ts +0 -1
  15. package/dist/commands/packages/create-controllers.js.map +1 -1
  16. package/dist/commands/packages/create-lib-react.d.ts +0 -1
  17. package/dist/commands/packages/create-lib-react.js +1 -3
  18. package/dist/commands/packages/create-lib-react.js.map +1 -1
  19. package/dist/commands/packages/create-react-elements.d.ts +0 -1
  20. package/dist/commands/packages/create-react-elements.js +2 -3
  21. package/dist/commands/packages/create-react-elements.js.map +1 -1
  22. package/dist/commands/packages/enable-publishing.d.ts +0 -1
  23. package/dist/commands/packages/enable-publishing.js +26 -23
  24. package/dist/commands/packages/enable-publishing.js.map +1 -1
  25. package/dist/commands/packages/init-synced-elements.d.ts +0 -1
  26. package/dist/commands/packages/init-synced-elements.js +1 -1
  27. package/dist/commands/packages/init-synced-elements.js.map +1 -1
  28. package/dist/commands/upstream/analyze-esm.d.ts +0 -1
  29. package/dist/commands/upstream/analyze-esm.js +5 -1
  30. package/dist/commands/upstream/analyze-esm.js.map +1 -1
  31. package/dist/commands/upstream/check.d.ts +0 -1
  32. package/dist/commands/upstream/check.js.map +1 -1
  33. package/dist/commands/upstream/deps.d.ts +0 -1
  34. package/dist/commands/upstream/deps.js.map +1 -1
  35. package/dist/commands/upstream/sync.d.ts +11 -2
  36. package/dist/commands/upstream/sync.js +364 -25
  37. package/dist/commands/upstream/sync.js.map +1 -1
  38. package/dist/commands/upstream/track.d.ts +0 -1
  39. package/dist/commands/upstream/track.js.map +1 -1
  40. package/dist/commands/upstream/update.d.ts +0 -1
  41. package/dist/commands/upstream/update.js +37 -7
  42. package/dist/commands/upstream/update.js.map +1 -1
  43. package/dist/commands/verify/controllers.d.ts +0 -1
  44. package/dist/commands/verify/controllers.js +213 -59
  45. package/dist/commands/verify/controllers.js.map +1 -1
  46. package/dist/commands/verify/dependency-integrity.d.ts +18 -0
  47. package/dist/commands/verify/dependency-integrity.js +147 -0
  48. package/dist/commands/verify/dependency-integrity.js.map +1 -0
  49. package/dist/commands/verify/react-build.d.ts +0 -1
  50. package/dist/commands/verify/react-build.js.map +1 -1
  51. package/dist/index.d.ts +0 -1
  52. package/dist/index.js.map +1 -1
  53. package/dist/lib/docs/contract-validator.d.ts +12 -0
  54. package/dist/lib/docs/contract-validator.js +38 -0
  55. package/dist/lib/docs/contract-validator.js.map +1 -0
  56. package/dist/lib/docs/contracts.d.ts +11 -0
  57. package/dist/lib/docs/contracts.js +241 -0
  58. package/dist/lib/docs/contracts.js.map +1 -0
  59. package/dist/lib/docs/discovery.d.ts +10 -0
  60. package/dist/lib/docs/discovery.js +91 -0
  61. package/dist/lib/docs/discovery.js.map +1 -0
  62. package/dist/lib/docs/generator.d.ts +14 -0
  63. package/dist/lib/docs/generator.js +450 -0
  64. package/dist/lib/docs/generator.js.map +1 -0
  65. package/dist/lib/docs/source-extractor.d.ts +2 -0
  66. package/dist/lib/docs/source-extractor.js +209 -0
  67. package/dist/lib/docs/source-extractor.js.map +1 -0
  68. package/dist/lib/docs/types.d.ts +77 -0
  69. package/dist/lib/docs/types.js +2 -0
  70. package/dist/lib/docs/types.js.map +1 -0
  71. package/dist/lib/upstream/repo-utils.d.ts +0 -1
  72. package/dist/lib/upstream/repo-utils.js.map +1 -1
  73. package/dist/lib/upstream/sync-compatibility.d.ts +0 -1
  74. package/dist/lib/upstream/sync-compatibility.js.map +1 -1
  75. package/dist/lib/upstream/sync-constants.d.ts +35 -7
  76. package/dist/lib/upstream/sync-constants.js +40 -11
  77. package/dist/lib/upstream/sync-constants.js.map +1 -1
  78. package/dist/lib/upstream/sync-controllers-strategy.d.ts +0 -1
  79. package/dist/lib/upstream/sync-controllers-strategy.js +14 -4
  80. package/dist/lib/upstream/sync-controllers-strategy.js.map +1 -1
  81. package/dist/lib/upstream/sync-demo-metadata.d.ts +0 -1
  82. package/dist/lib/upstream/sync-demo-metadata.js +1 -1
  83. package/dist/lib/upstream/sync-demo-metadata.js.map +1 -1
  84. package/dist/lib/upstream/sync-entry-discovery.d.ts +3 -0
  85. package/dist/lib/upstream/sync-entry-discovery.js +23 -0
  86. package/dist/lib/upstream/sync-entry-discovery.js.map +1 -0
  87. package/dist/lib/upstream/sync-externals.d.ts +7 -7
  88. package/dist/lib/upstream/sync-externals.js +51 -35
  89. package/dist/lib/upstream/sync-externals.js.map +1 -1
  90. package/dist/lib/upstream/sync-filesystem.d.ts +0 -1
  91. package/dist/lib/upstream/sync-filesystem.js.map +1 -1
  92. package/dist/lib/upstream/sync-imports.d.ts +82 -62
  93. package/dist/lib/upstream/sync-imports.js +658 -185
  94. package/dist/lib/upstream/sync-imports.js.map +1 -1
  95. package/dist/lib/upstream/sync-package-json.d.ts +0 -1
  96. package/dist/lib/upstream/sync-package-json.js +7 -0
  97. package/dist/lib/upstream/sync-package-json.js.map +1 -1
  98. package/dist/lib/upstream/sync-package-manager.d.ts +14 -4
  99. package/dist/lib/upstream/sync-package-manager.js +405 -72
  100. package/dist/lib/upstream/sync-package-manager.js.map +1 -1
  101. package/dist/lib/upstream/sync-pielib-strategy.d.ts +2 -1
  102. package/dist/lib/upstream/sync-pielib-strategy.js +228 -110
  103. package/dist/lib/upstream/sync-pielib-strategy.js.map +1 -1
  104. package/dist/lib/upstream/sync-presets.d.ts +52 -0
  105. package/dist/lib/upstream/sync-presets.js +175 -0
  106. package/dist/lib/upstream/sync-presets.js.map +1 -0
  107. package/dist/lib/upstream/sync-react-strategy.d.ts +6 -1
  108. package/dist/lib/upstream/sync-react-strategy.js +342 -134
  109. package/dist/lib/upstream/sync-react-strategy.js.map +1 -1
  110. package/dist/lib/upstream/sync-source-edit.d.ts +14 -0
  111. package/dist/lib/upstream/sync-source-edit.js +89 -0
  112. package/dist/lib/upstream/sync-source-edit.js.map +1 -0
  113. package/dist/lib/upstream/sync-source-tree.d.ts +22 -0
  114. package/dist/lib/upstream/sync-source-tree.js +99 -0
  115. package/dist/lib/upstream/sync-source-tree.js.map +1 -0
  116. package/dist/lib/upstream/sync-strategy.d.ts +1 -1
  117. package/dist/lib/upstream/sync-strategy.js.map +1 -1
  118. package/dist/lib/upstream/sync-summary.d.ts +0 -1
  119. package/dist/lib/upstream/sync-summary.js.map +1 -1
  120. package/dist/lib/upstream/sync-transforms.d.ts +13 -11
  121. package/dist/lib/upstream/sync-transforms.js +23 -17
  122. package/dist/lib/upstream/sync-transforms.js.map +1 -1
  123. package/dist/lib/upstream/sync-vite-config.d.ts +13 -1
  124. package/dist/lib/upstream/sync-vite-config.js +65 -46
  125. package/dist/lib/upstream/sync-vite-config.js.map +1 -1
  126. package/dist/utils/compatibility.d.ts +13 -1
  127. package/dist/utils/compatibility.js +143 -2
  128. package/dist/utils/compatibility.js.map +1 -1
  129. package/dist/utils/conversion.d.ts +0 -1
  130. package/dist/utils/conversion.js.map +1 -1
  131. package/dist/utils/dependency-integrity.d.ts +37 -0
  132. package/dist/utils/dependency-integrity.js +557 -0
  133. package/dist/utils/dependency-integrity.js.map +1 -0
  134. package/dist/utils/git.d.ts +0 -1
  135. package/dist/utils/git.js.map +1 -1
  136. package/dist/utils/logger.d.ts +0 -1
  137. package/dist/utils/logger.js.map +1 -1
  138. package/dist/utils/package-json.d.ts +0 -1
  139. package/dist/utils/package-json.js.map +1 -1
  140. package/package.json +25 -8
  141. package/.compatibility/report.json +0 -2491
  142. package/.turbo/turbo-build.log +0 -1
  143. package/CHANGELOG.md +0 -8
  144. package/REFACTORING.md +0 -131
  145. package/bin/dev.js +0 -5
  146. package/dist/commands/dev/demo/index.d.ts.map +0 -1
  147. package/dist/commands/dev/test-bundler.d.ts.map +0 -1
  148. package/dist/commands/mathquill/migrate.d.ts +0 -20
  149. package/dist/commands/mathquill/migrate.d.ts.map +0 -1
  150. package/dist/commands/mathquill/migrate.js +0 -240
  151. package/dist/commands/mathquill/migrate.js.map +0 -1
  152. package/dist/commands/mathquill/status.d.ts +0 -20
  153. package/dist/commands/mathquill/status.d.ts.map +0 -1
  154. package/dist/commands/mathquill/status.js +0 -231
  155. package/dist/commands/mathquill/status.js.map +0 -1
  156. package/dist/commands/packages/create-controllers.d.ts.map +0 -1
  157. package/dist/commands/packages/create-lib-react.d.ts.map +0 -1
  158. package/dist/commands/packages/create-react-elements.d.ts.map +0 -1
  159. package/dist/commands/packages/enable-publishing.d.ts.map +0 -1
  160. package/dist/commands/packages/init-synced-elements.d.ts.map +0 -1
  161. package/dist/commands/upstream/analyze-esm.d.ts.map +0 -1
  162. package/dist/commands/upstream/check.d.ts.map +0 -1
  163. package/dist/commands/upstream/deps.d.ts.map +0 -1
  164. package/dist/commands/upstream/sync-mathquill.d.ts +0 -12
  165. package/dist/commands/upstream/sync-mathquill.d.ts.map +0 -1
  166. package/dist/commands/upstream/sync-mathquill.js +0 -97
  167. package/dist/commands/upstream/sync-mathquill.js.map +0 -1
  168. package/dist/commands/upstream/sync.d.ts.map +0 -1
  169. package/dist/commands/upstream/track.d.ts.map +0 -1
  170. package/dist/commands/upstream/update.d.ts.map +0 -1
  171. package/dist/commands/verify/controllers.d.ts.map +0 -1
  172. package/dist/commands/verify/react-build.d.ts.map +0 -1
  173. package/dist/index.d.ts.map +0 -1
  174. package/dist/lib/mathquill/extension-generator.d.ts +0 -9
  175. package/dist/lib/mathquill/extension-generator.d.ts.map +0 -1
  176. package/dist/lib/mathquill/extension-generator.js +0 -107
  177. package/dist/lib/mathquill/extension-generator.js.map +0 -1
  178. package/dist/lib/mathquill/khan-extractor.d.ts +0 -16
  179. package/dist/lib/mathquill/khan-extractor.d.ts.map +0 -1
  180. package/dist/lib/mathquill/khan-extractor.js +0 -148
  181. package/dist/lib/mathquill/khan-extractor.js.map +0 -1
  182. package/dist/lib/mathquill/learnosity-extractor.d.ts +0 -15
  183. package/dist/lib/mathquill/learnosity-extractor.d.ts.map +0 -1
  184. package/dist/lib/mathquill/learnosity-extractor.js +0 -170
  185. package/dist/lib/mathquill/learnosity-extractor.js.map +0 -1
  186. package/dist/lib/mathquill/migration-orchestrator.d.ts +0 -77
  187. package/dist/lib/mathquill/migration-orchestrator.d.ts.map +0 -1
  188. package/dist/lib/mathquill/migration-orchestrator.js +0 -391
  189. package/dist/lib/mathquill/migration-orchestrator.js.map +0 -1
  190. package/dist/lib/mathquill/package-updater.d.ts +0 -9
  191. package/dist/lib/mathquill/package-updater.d.ts.map +0 -1
  192. package/dist/lib/mathquill/package-updater.js +0 -103
  193. package/dist/lib/mathquill/package-updater.js.map +0 -1
  194. package/dist/lib/mathquill/pie-extractor.d.ts +0 -14
  195. package/dist/lib/mathquill/pie-extractor.d.ts.map +0 -1
  196. package/dist/lib/mathquill/pie-extractor.js +0 -167
  197. package/dist/lib/mathquill/pie-extractor.js.map +0 -1
  198. package/dist/lib/upstream/repo-utils.d.ts.map +0 -1
  199. package/dist/lib/upstream/sync-compatibility.d.ts.map +0 -1
  200. package/dist/lib/upstream/sync-constants.d.ts.map +0 -1
  201. package/dist/lib/upstream/sync-controllers-strategy.d.ts.map +0 -1
  202. package/dist/lib/upstream/sync-demo-metadata.d.ts.map +0 -1
  203. package/dist/lib/upstream/sync-dev-exports.d.ts +0 -13
  204. package/dist/lib/upstream/sync-dev-exports.d.ts.map +0 -1
  205. package/dist/lib/upstream/sync-dev-exports.js +0 -115
  206. package/dist/lib/upstream/sync-dev-exports.js.map +0 -1
  207. package/dist/lib/upstream/sync-externals.d.ts.map +0 -1
  208. package/dist/lib/upstream/sync-filesystem.d.ts.map +0 -1
  209. package/dist/lib/upstream/sync-imports.d.ts.map +0 -1
  210. package/dist/lib/upstream/sync-mathquill.d.ts +0 -19
  211. package/dist/lib/upstream/sync-mathquill.d.ts.map +0 -1
  212. package/dist/lib/upstream/sync-mathquill.js +0 -160
  213. package/dist/lib/upstream/sync-mathquill.js.map +0 -1
  214. package/dist/lib/upstream/sync-package-json.d.ts.map +0 -1
  215. package/dist/lib/upstream/sync-package-manager.d.ts.map +0 -1
  216. package/dist/lib/upstream/sync-pielib-strategy.d.ts.map +0 -1
  217. package/dist/lib/upstream/sync-react-strategy.d.ts.map +0 -1
  218. package/dist/lib/upstream/sync-strategy.d.ts.map +0 -1
  219. package/dist/lib/upstream/sync-summary.d.ts.map +0 -1
  220. package/dist/lib/upstream/sync-transforms.d.ts.map +0 -1
  221. package/dist/lib/upstream/sync-vite-config.d.ts.map +0 -1
  222. package/dist/utils/compatibility.d.ts.map +0 -1
  223. package/dist/utils/conversion.d.ts.map +0 -1
  224. package/dist/utils/git.d.ts.map +0 -1
  225. package/dist/utils/logger.d.ts.map +0 -1
  226. package/dist/utils/package-json.d.ts.map +0 -1
  227. package/packages/cli/bin/dev.js +0 -5
  228. package/packages/cli/bin/run.js +0 -5
  229. package/src/commands/dev/demo/index.ts +0 -313
  230. package/src/commands/dev/test-bundler.ts +0 -345
  231. package/src/commands/mathquill/migrate.ts +0 -269
  232. package/src/commands/mathquill/status.ts +0 -267
  233. package/src/commands/packages/create-controllers.ts +0 -127
  234. package/src/commands/packages/create-lib-react.ts +0 -279
  235. package/src/commands/packages/create-react-elements.ts +0 -306
  236. package/src/commands/packages/enable-publishing.ts +0 -161
  237. package/src/commands/packages/init-synced-elements.ts +0 -259
  238. package/src/commands/upstream/README.md +0 -444
  239. package/src/commands/upstream/analyze-esm.ts +0 -1973
  240. package/src/commands/upstream/check.ts +0 -228
  241. package/src/commands/upstream/deps.ts +0 -222
  242. package/src/commands/upstream/sync-mathquill.ts +0 -108
  243. package/src/commands/upstream/sync.ts +0 -687
  244. package/src/commands/upstream/track.ts +0 -145
  245. package/src/commands/upstream/update.ts +0 -110
  246. package/src/commands/verify/controllers.ts +0 -166
  247. package/src/commands/verify/react-build.ts +0 -171
  248. package/src/index.ts +0 -1
  249. package/src/lib/mathquill/extension-generator.ts +0 -111
  250. package/src/lib/mathquill/khan-extractor.ts +0 -175
  251. package/src/lib/mathquill/learnosity-extractor.ts +0 -198
  252. package/src/lib/mathquill/migration-orchestrator.ts +0 -513
  253. package/src/lib/mathquill/package-updater.ts +0 -120
  254. package/src/lib/mathquill/pie-extractor.ts +0 -194
  255. package/src/lib/upstream/repo-utils.ts +0 -18
  256. package/src/lib/upstream/sync-compatibility.ts +0 -89
  257. package/src/lib/upstream/sync-constants.ts +0 -77
  258. package/src/lib/upstream/sync-controllers-strategy.ts +0 -291
  259. package/src/lib/upstream/sync-demo-metadata.ts +0 -199
  260. package/src/lib/upstream/sync-dev-exports.ts +0 -151
  261. package/src/lib/upstream/sync-externals.ts +0 -159
  262. package/src/lib/upstream/sync-filesystem.ts +0 -87
  263. package/src/lib/upstream/sync-imports.ts +0 -992
  264. package/src/lib/upstream/sync-mathquill.ts +0 -194
  265. package/src/lib/upstream/sync-package-json.ts +0 -86
  266. package/src/lib/upstream/sync-package-manager.ts +0 -694
  267. package/src/lib/upstream/sync-pielib-strategy.ts +0 -441
  268. package/src/lib/upstream/sync-react-strategy.ts +0 -945
  269. package/src/lib/upstream/sync-strategy.ts +0 -61
  270. package/src/lib/upstream/sync-summary.ts +0 -194
  271. package/src/lib/upstream/sync-transforms.ts +0 -154
  272. package/src/lib/upstream/sync-vite-config.ts +0 -243
  273. package/src/types/es-module-lexer.d.ts +0 -4
  274. package/src/utils/compatibility.ts +0 -182
  275. package/src/utils/conversion.ts +0 -153
  276. package/src/utils/git.ts +0 -63
  277. package/src/utils/logger.ts +0 -69
  278. package/src/utils/package-json.ts +0 -43
  279. package/tests/sync-package-manager.test.ts +0 -112
  280. package/tests/transform-assign-props.test.ts +0 -101
  281. 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 React package publishing (remove private flags).
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"]}
@@ -15,4 +15,3 @@ export default class TestBundler extends Command {
15
15
  private buildFromWorkspace;
16
16
  private verifyBundles;
17
17
  }
18
- //# sourceMappingURL=test-bundler.d.ts.map
@@ -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-shared';
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 = ['packages/shared/mathquill', `packages/elements-react/${element}`];
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":"AAAA,OAAO,EAAE,OAAO,EAAE,KAAK,EAAE,MAAM,aAAa,CAAC;AAC7C,OAAO,EAAE,MAAM,EAAE,MAAM,uBAAuB,CAAC;AAC/C,OAAO,EACL,gBAAgB,EAChB,eAAe,EACf,mBAAmB,GAEpB,MAAM,8BAA8B,CAAC;AACtC,OAAO,OAAO,MAAM,SAAS,CAAC;AAC9B,OAAO,EAAE,QAAQ,EAAE,MAAM,oBAAoB,CAAC;AAC9C,OAAO,EAAE,UAAU,EAAE,YAAY,EAAE,MAAM,EAAE,WAAW,EAAE,SAAS,EAAE,aAAa,EAAE,MAAM,SAAS,CAAC;AAClG,OAAO,EAAE,MAAM,EAAE,MAAM,SAAS,CAAC;AACjC,OAAO,EAAE,IAAI,EAAE,MAAM,WAAW,CAAC;AAEjC,MAAM,CAAC,OAAO,OAAO,WAAY,SAAQ,OAAO;IAC9C,MAAM,CAAU,WAAW,GAAG,4DAA4D,CAAC;IAE3F,MAAM,CAAU,QAAQ,GAAG;QACzB,+BAA+B;QAC/B,2BAA2B;QAC3B,qCAAqC;QACrC,qDAAqD;QACrD,mCAAmC;KACpC,CAAC;IAEF,MAAM,CAAU,KAAK,GAAG;QACtB,OAAO,EAAE,KAAK,CAAC,MAAM,CAAC;YACpB,IAAI,EAAE,GAAG;YACT,WAAW,EAAE,uDAAuD;YACpE,OAAO,EAAE,iBAAiB;SAC3B,CAAC;QACF,KAAK,EAAE,KAAK,CAAC,OAAO,CAAC;YACnB,WAAW,EAAE,qCAAqC;YAClD,OAAO,EAAE,KAAK;SACf,CAAC;QACF,OAAO,EAAE,KAAK,CAAC,OAAO,CAAC;YACrB,IAAI,EAAE,GAAG;YACT,WAAW,EAAE,6CAA6C;YAC1D,OAAO,EAAE,KAAK;SACf,CAAC;QACF,gBAAgB,EAAE,KAAK,CAAC,OAAO,CAAC;YAC9B,WAAW,EAAE,qDAAqD;YAClE,OAAO,EAAE,KAAK;SACf,CAAC;KACH,CAAC;IAEM,MAAM,CAAU;IAEjB,KAAK,CAAC,GAAG;QACd,MAAM,EAAE,KAAK,EAAE,GAAG,MAAM,IAAI,CAAC,KAAK,CAAC,WAAW,CAAC,CAAC;QAChD,IAAI,CAAC,MAAM,GAAG,IAAI,MAAM,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC;QAExC,IAAI,CAAC,MAAM,CAAC,OAAO,CAAC,gDAAgD,CAAC,CAAC;QAEtE,cAAc;QACd,MAAM,aAAa,GAAG,IAAI,CAAC,MAAM,EAAE,EAAE,4BAA4B,CAAC,CAAC;QACnE,MAAM,QAAQ,GAAG,IAAI,CAAC,aAAa,EAAE,OAAO,CAAC,CAAC;QAC9C,MAAM,SAAS,GAAG,IAAI,CAAC,aAAa,EAAE,QAAQ,CAAC,CAAC;QAEhD,IAAI,KAAK,CAAC,KAAK,IAAI,UAAU,CAAC,aAAa,CAAC,EAAE,CAAC;YAC7C,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,2BAA2B,CAAC,CAAC;YAC9C,MAAM,CAAC,aAAa,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,KAAK,EAAE,IAAI,EAAE,CAAC,CAAC;QAC1D,CAAC;QAED,SAAS,CAAC,SAAS,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC,CAAC;QAC1C,SAAS,CAAC,QAAQ,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC,CAAC;QAEzC,6BAA6B;QAC7B,IAAI,CAAC,GAAG,CAAC,8BAA8B,CAAC,CAAC;QACzC,MAAM,IAAI,CAAC,kBAAkB,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC;QAE7C,uCAAuC;QACvC,IAAI,CAAC,GAAG,CAAC,gCAAgC,CAAC,CAAC;QAC3C,MAAM,YAAY,GAAG,MAAM,IAAI,CAAC,cAAc,CAAC,aAAa,EAAE,KAAK,CAAC,OAAO,CAAC,CAAC;QAE7E,qEAAqE;QACrE,IAAI,CAAC,GAAG,CAAC,4BAA4B,CAAC,CAAC;QAEvC,IAAI,CAAC;YACH,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,oCAAoC,KAAK,CAAC,OAAO,KAAK,CAAC,CAAC;YAEzE,+EAA+E;YAC/E,MAAM,MAAM,GAAG,MAAM,IAAI,CAAC,kBAAkB,CAAC,YAAY,EAAE,SAAS,EAAE,KAAK,CAAC,OAAO,CAAC,CAAC;YAErF,IAAI,KAAK,CAAC,OAAO,EAAE,CAAC;gBAClB,IAAI,CAAC,GAAG,CAAC,iBAAiB,CAAC,CAAC;gBAC5B,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,SAAS,CAAC,MAAM,EAAE,IAAI,EAAE,CAAC,CAAC,CAAC,CAAC;YAC5C,CAAC;YAED,IAAI,CAAC,MAAM,CAAC,OAAO,EAAE,CAAC;gBACpB,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,cAAc,CAAC,CAAC;gBAClC,IAAI,MAAM,CAAC,MAAM,EAAE,CAAC;oBAClB,IAAI,CAAC,GAAG,CAAC,WAAW,CAAC,CAAC;oBACtB,KAAK,MAAM,GAAG,IAAI,MAAM,CAAC,MAAM,EAAE,CAAC;wBAChC,IAAI,CAAC,GAAG,CAAC,OAAO,GAAG,EAAE,CAAC,CAAC;oBACzB,CAAC;gBACH,CAAC;gBACD,IAAI,CAAC,KAAK,CAAC,qBAAqB,EAAE,EAAE,IAAI,EAAE,CAAC,EAAE,CAAC,CAAC;YACjD,CAAC;YAED,iBAAiB;YACjB,IAAI,CAAC,GAAG,CAAC,uBAAuB,CAAC,CAAC;YAClC,MAAM,IAAI,CAAC,aAAa,CAAC,SAAS,EAAE,MAAM,CAAC,IAAI,CAAC,CAAC;YAEjD,UAAU;YACV,IAAI,CAAC,GAAG,CAAC,KAAK,GAAG,CAAC,MAAM,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC;YAChC,IAAI,CAAC,GAAG,CAAC,uBAAuB,CAAC,CAAC;YAClC,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC,CAAC;YACzB,IAAI,CAAC,GAAG,CAAC,gCAAgC,KAAK,CAAC,OAAO,EAAE,CAAC,CAAC;YAC1D,IAAI,CAAC,GAAG,CAAC,mBAAmB,MAAM,CAAC,IAAI,EAAE,CAAC,CAAC;YAC3C,IAAI,CAAC,GAAG,CAAC,mBAAmB,MAAM,CAAC,QAAQ,IAAI,CAAC,CAAC;YACjD,IAAI,CAAC,GAAG,CAAC,mBAAmB,MAAM,CAAC,MAAM,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC,CAAC;YAC5D,IAAI,CAAC,GAAG,CAAC,mBAAmB,IAAI,CAAC,SAAS,EAAE,MAAM,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;YAE5D,IAAI,CAAC,KAAK,CAAC,gBAAgB,CAAC,EAAE,CAAC;gBAC7B,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,4BAA4B,CAAC,CAAC;gBAC/C,MAAM,CAAC,aAAa,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,KAAK,EAAE,IAAI,EAAE,CAAC,CAAC;YAC1D,CAAC;iBAAM,CAAC;gBACN,IAAI,CAAC,GAAG,CAAC,mBAAmB,aAAa,EAAE,CAAC,CAAC;YAC/C,CAAC;YAED,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC,CAAC;YACzB,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;QACf,CAAC;QAAC,OAAO,KAAU,EAAE,CAAC;YACpB,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,gBAAgB,KAAK,CAAC,OAAO,EAAE,CAAC,CAAC;YACnD,IAAI,KAAK,CAAC,OAAO,EAAE,CAAC;gBAClB,IAAI,CAAC,GAAG,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC;YACxB,CAAC;YACD,IAAI,CAAC,KAAK,CAAC,qBAAqB,EAAE,EAAE,IAAI,EAAE,CAAC,EAAE,CAAC,CAAC;QACjD,CAAC;IACH,CAAC;IAEO,KAAK,CAAC,kBAAkB,CAAC,OAAe;QAC9C,MAAM,QAAQ,GAAG,CAAC,2BAA2B,OAAO,EAAE,CAAC,CAAC;QAExD,KAAK,MAAM,GAAG,IAAI,QAAQ,EAAE,CAAC;YAC3B,IAAI,CAAC,UAAU,CAAC,GAAG,CAAC,EAAE,CAAC;gBACrB,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,sBAAsB,GAAG,EAAE,CAAC,CAAC;gBAC9C,SAAS;YACX,CAAC;YAED,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,YAAY,GAAG,KAAK,CAAC,CAAC;YACvC,IAAI,CAAC;gBACH,QAAQ,CAAC,eAAe,EAAE;oBACxB,GAAG,EAAE,GAAG;oBACR,KAAK,EAAE,IAAI,CAAC,MAAM,CAAC,SAAS,EAAE,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,MAAM;iBACpD,CAAC,CAAC;YACL,CAAC;YAAC,OAAO,KAAU,EAAE,CAAC;gBACpB,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,oBAAoB,GAAG,KAAK,KAAK,CAAC,OAAO,EAAE,CAAC,CAAC;YAChE,CAAC;QACH,CAAC;IACH,CAAC;IAEO,KAAK,CAAC,cAAc,CAAC,aAAqB,EAAE,OAAe;QACjE,MAAM,YAAY,GAAG,IAAI,CAAC,aAAa,EAAE,WAAW,CAAC,CAAC;QACtD,MAAM,WAAW,GAAG,IAAI,CAAC,YAAY,EAAE,UAAU,CAAC,CAAC;QAEnD,SAAS,CAAC,WAAW,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC,CAAC;QAE5C,0DAA0D;QAC1D,aAAa,CACX,IAAI,CAAC,YAAY,EAAE,cAAc,CAAC,EAClC,IAAI,CAAC,SAAS,CACZ;YACE,IAAI,EAAE,4BAA4B;YAClC,OAAO,EAAE,IAAI;YACb,UAAU,EAAE;gBACV,YAAY;gBACZ,uBAAuB;gBACvB,sBAAsB;gBACtB,mBAAmB;aACpB;YACD,YAAY,EAAE;gBACZ,gBAAgB,EAAE,QAAQ;gBAC1B,YAAY,EAAE,QAAQ;gBACtB,cAAc,EAAE,QAAQ;gBACxB,YAAY,EAAE,QAAQ;aACvB;SACF,EACD,IAAI,EACJ,CAAC,CACF,CACF,CAAC;QAEF,yBAAyB;QACzB,MAAM,aAAa,GAAG;YACpB,CAAC,OAAO,CAAC,EAAE,2BAA2B,OAAO,EAAE;SAChD,CAAC;QAEF,KAAK,MAAM,CAAC,IAAI,EAAE,IAAI,CAAC,IAAI,MAAM,CAAC,OAAO,CAAC,aAAa,CAAC,EAAE,CAAC;YACzD,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,EAAE,CAAC;gBACtB,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,sBAAsB,IAAI,EAAE,CAAC,CAAC;gBAC/C,SAAS;YACX,CAAC;YAED,MAAM,QAAQ,GAAG,IAAI,CAAC,WAAW,EAAE,IAAI,CAAC,CAAC;YACzC,IAAI,UAAU,CAAC,QAAQ,CAAC,EAAE,CAAC;gBACzB,MAAM,CAAC,QAAQ,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,KAAK,EAAE,IAAI,EAAE,CAAC,CAAC;YACrD,CAAC;YAED,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,WAAW,IAAI,MAAM,IAAI,EAAE,CAAC,CAAC;YAC9C,WAAW,CAAC,IAAI,CAAC,OAAO,CAAC,GAAG,EAAE,EAAE,IAAI,CAAC,EAAE,QAAQ,EAAE,KAAK,CAAC,CAAC;QAC1D,CAAC;QAED,uBAAuB;QACvB,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,sCAAsC,CAAC,CAAC;QACzD,IAAI,CAAC;YACH,QAAQ,CAAC,aAAa,EAAE;gBACtB,GAAG,EAAE,YAAY;gBACjB,KAAK,EAAE,IAAI,CAAC,MAAM,CAAC,SAAS,EAAE,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,MAAM;aACpD,CAAC,CAAC;QACL,CAAC;QAAC,OAAO,KAAU,EAAE,CAAC;YACpB,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,iCAAiC,KAAK,CAAC,OAAO,EAAE,CAAC,CAAC;QACrE,CAAC;QAED,4DAA4D;QAC5D,MAAM,cAAc,GAAG,IAAI,CAAC,YAAY,EAAE,cAAc,CAAC,CAAC;QAC1D,MAAM,aAAa,GAAG,IAAI,CAAC,cAAc,EAAE,cAAc,CAAC,CAAC;QAC3D,SAAS,CAAC,aAAa,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC,CAAC;QAE9C,uBAAuB;QACvB,MAAM,WAAW,GAAG,IAAI,CAAC,aAAa,EAAE,OAAO,CAAC,CAAC;QACjD,IAAI,UAAU,CAAC,WAAW,CAAC,EAAE,CAAC;YAC5B,MAAM,CAAC,WAAW,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,KAAK,EAAE,IAAI,EAAE,CAAC,CAAC;QACxD,CAAC;QACD,WAAW,CAAC,IAAI,CAAC,WAAW,EAAE,OAAO,CAAC,EAAE,WAAW,EAAE,KAAK,CAAC,CAAC;QAC5D,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,uBAAuB,OAAO,kBAAkB,CAAC,CAAC;QAEnE,OAAO,YAAY,CAAC;IACtB,CAAC;IAEO,KAAK,CAAC,kBAAkB,CAC9B,YAAoB,EACpB,SAAiB,EACjB,OAAe;QAEf,MAAM,YAAY,GAAsB,CAAC,EAAE,IAAI,EAAE,gBAAgB,OAAO,EAAE,EAAE,OAAO,EAAE,OAAO,EAAE,CAAC,CAAC;QAChG,MAAM,IAAI,GAAG,gBAAgB,CAAC,YAAY,CAAC,CAAC;QAC5C,MAAM,SAAS,GAAG,IAAI,CAAC,GAAG,EAAE,CAAC;QAE7B,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,gBAAgB,IAAI,EAAE,CAAC,CAAC;QAEzC,uBAAuB;QACvB,MAAM,QAAQ,GAAG,IAAI,CAAC,YAAY,EAAE,SAAS,CAAC,CAAC;QAC/C,SAAS,CAAC,QAAQ,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC,CAAC;QAEzC,MAAM,gBAAgB,GAAiD;YACrE,QAAQ;YACR,eAAe;YACf,QAAQ;SACT,CAAC;QACF,MAAM,OAAO,GAAG,eAAe,CAAC,YAAY,EAAE,YAAY,EAAE,gBAAgB,CAAC,CAAC;QAE9E,aAAa,CAAC,IAAI,CAAC,QAAQ,EAAE,WAAW,CAAC,EAAE,OAAO,CAAC,MAAM,IAAI,EAAE,CAAC,CAAC;QACjE,aAAa,CAAC,IAAI,CAAC,QAAQ,EAAE,kBAAkB,CAAC,EAAE,OAAO,CAAC,eAAe,CAAC,IAAI,EAAE,CAAC,CAAC;QAClF,aAAa,CAAC,IAAI,CAAC,QAAQ,EAAE,WAAW,CAAC,EAAE,OAAO,CAAC,MAAM,IAAI,EAAE,CAAC,CAAC;QAEjE,wBAAwB;QACxB,MAAM,gBAAgB,GAAG,IAAI,CAAC,SAAS,EAAE,IAAI,CAAC,CAAC;QAC/C,SAAS,CAAC,gBAAgB,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC,CAAC;QAEjD,MAAM,aAAa,GAAG,mBAAmB,CAAC;YACxC,OAAO,EAAE,QAAQ;YACjB,KAAK,EAAE;gBACL,MAAM,EAAE,IAAI,CAAC,QAAQ,EAAE,WAAW,CAAC;gBACnC,eAAe,EAAE,IAAI,CAAC,QAAQ,EAAE,kBAAkB,CAAC;gBACnD,MAAM,EAAE,IAAI,CAAC,QAAQ,EAAE,WAAW,CAAC;aACpC;YACD,UAAU,EAAE,gBAAgB;YAC5B,YAAY;YACZ,QAAQ,EAAE,YAAY,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC;SACxD,CAAC,CAAC;QAEH,yEAAyE;QACzE,IAAI,CAAC,aAAa,CAAC,OAAO;YAAE,aAAa,CAAC,OAAO,GAAG,EAAE,CAAC;QACvD,IAAI,CAAC,aAAa,CAAC,OAAO,CAAC,OAAO;YAAE,aAAa,CAAC,OAAO,CAAC,OAAO,GAAG,EAAE,CAAC;QACvE,aAAa,CAAC,OAAO,CAAC,OAAO,CAAC,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,GAAG,EAAE,EAAE,cAAc,CAAC,CAAC,CAAC;QAExE,cAAc;QACd,OAAO,IAAI,OAAO,CAAC,CAAC,OAAO,EAAE,MAAM,EAAE,EAAE;YACrC,OAAO,CAAC,aAAa,EAAE,CAAC,GAAQ,EAAE,KAAU,EAAE,EAAE;gBAC9C,IAAI,GAAG,EAAE,CAAC;oBACR,MAAM,CAAC,GAAG,CAAC,CAAC;oBACZ,OAAO;gBACT,CAAC;gBAED,IAAI,KAAK,EAAE,SAAS,EAAE,EAAE,CAAC;oBACvB,MAAM,MAAM,GAAG,KAAK,CAAC,QAAQ,CAAC,EAAE,MAAM,EAAE,KAAK,EAAE,YAAY,EAAE,IAAI,EAAE,CAAC,CAAC;oBACrE,MAAM,CAAC,IAAI,KAAK,CAAC,MAAM,CAAC,CAAC,CAAC;oBAC1B,OAAO;gBACT,CAAC;gBAED,OAAO,CAAC;oBACN,OAAO,EAAE,IAAI;oBACb,IAAI;oBACJ,OAAO,EAAE;wBACP,MAAM,EAAE,YAAY,IAAI,YAAY;wBACpC,YAAY,EAAE,YAAY,IAAI,mBAAmB;wBACjD,MAAM,EAAE,YAAY,IAAI,YAAY;qBACrC;oBACD,QAAQ,EAAE,IAAI,CAAC,GAAG,EAAE,GAAG,SAAS;oBAChC,MAAM,EAAE,KAAK;iBACd,CAAC,CAAC;YACL,CAAC,CAAC,CAAC;QACL,CAAC,CAAC,CAAC;IACL,CAAC;IAEO,KAAK,CAAC,aAAa,CAAC,SAAiB,EAAE,IAAY;QACzD,MAAM,SAAS,GAAG,IAAI,CAAC,SAAS,EAAE,IAAI,CAAC,CAAC;QACxC,MAAM,KAAK,GAAG,CAAC,WAAW,EAAE,kBAAkB,EAAE,WAAW,CAAC,CAAC;QAE7D,IAAI,KAAK,GAAG,IAAI,CAAC;QAEjB,KAAK,MAAM,IAAI,IAAI,KAAK,EAAE,CAAC;YACzB,MAAM,QAAQ,GAAG,IAAI,CAAC,SAAS,EAAE,IAAI,CAAC,CAAC;YACvC,IAAI,CAAC,UAAU,CAAC,QAAQ,CAAC,EAAE,CAAC;gBAC1B,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,KAAK,IAAI,YAAY,CAAC,CAAC;gBACzC,KAAK,GAAG,KAAK,CAAC;gBACd,SAAS;YACX,CAAC;YAED,MAAM,OAAO,GAAG,YAAY,CAAC,QAAQ,EAAE,OAAO,CAAC,CAAC;YAChD,MAAM,IAAI,GAAG,CAAC,OAAO,CAAC,MAAM,GAAG,IAAI,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC;YAChD,IAAI,CAAC,MAAM,CAAC,OAAO,CAAC,KAAK,IAAI,KAAK,IAAI,MAAM,CAAC,CAAC;YAE9C,uCAAuC;YACvC,IAAI,IAAI,KAAK,WAAW,IAAI,CAAC,OAAO,CAAC,QAAQ,CAAC,YAAY,CAAC,EAAE,CAAC;gBAC5D,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,OAAO,IAAI,6BAA6B,CAAC,CAAC;YAC7D,CAAC;QACH,CAAC;QAED,IAAI,CAAC,KAAK,EAAE,CAAC;YACX,IAAI,CAAC,KAAK,CAAC,4BAA4B,EAAE,EAAE,IAAI,EAAE,CAAC,EAAE,CAAC,CAAC;QACxD,CAAC;IACH,CAAC","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"]}
@@ -10,4 +10,3 @@ export default class CreateControllers extends Command {
10
10
  private scanController;
11
11
  private generatePackageJson;
12
12
  }
13
- //# sourceMappingURL=create-controllers.d.ts.map
@@ -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"]}