@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
@@ -0,0 +1 @@
1
+ {"version":3,"file":"dependency-integrity.js","sourceRoot":"","sources":["../../src/utils/dependency-integrity.ts"],"names":[],"mappings":"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","sourcesContent":["import { createRequire, builtinModules } from 'node:module';\nimport { existsSync } from 'node:fs';\nimport { readFile, readdir, writeFile } from 'node:fs/promises';\nimport { dirname, join, resolve } from 'node:path';\nimport { init, parse } from 'es-module-lexer';\nimport { loadPackageJson, type PackageJson } from './package-json.js';\n\nexport type ImportIntegrityStatus = 'direct' | 'transitive' | 'hoist' | 'broken' | 'peer';\n\nexport interface ImportIntegrityIssue {\n dependency: string;\n status: ImportIntegrityStatus;\n declaredDirect: boolean;\n resolvedPath?: string;\n requiredBy?: string;\n}\n\nexport interface PackageIntegrityResult {\n packageName: string;\n packagePath: string;\n issues: ImportIntegrityIssue[];\n}\n\nconst BUILTIN_SET = new Set([...builtinModules, ...builtinModules.map((m) => `node:${m}`)]);\nconst VALID_BARE_SPECIFIER = /^(@[a-z0-9._-]+\\/[a-z0-9._-]+|[a-z0-9._-]+)(\\/[a-z0-9._-]+)*$/i;\nconst WORKSPACE_SCAN_PREFIXES = ['packages/', 'apps/', 'tools/'];\nconst PLACEHOLDER_IMPORT_SPECIFIERS = new Set(['package', 'x']);\nconst IGNORED_PEER_DEPENDENCIES = new Set([\n 'react',\n 'react-dom',\n '@emotion/react',\n '@emotion/styled',\n '@emotion/core',\n]);\nconst FALLBACK_DEPENDENCY_VERSIONS: Record<string, string> = {\n 'js-combinatorics': '^2.1.2',\n 'nested-property': '^4.0.0',\n 'prosemirror-state': '^1.4.4',\n '@testing-library/react': '^16.3.2',\n '@testing-library/dom': '^10.4.1',\n '@tiptap/extensions': '^3.20.0',\n '@tiptap/extension-list': '^3.20.0',\n '@tiptap/extension-code-block': '^3.20.0',\n 'react-is': '^19.2.0',\n pluralize: '^8.0.0',\n};\n\ninterface CollectWorkspaceOptions {\n includeNonPackageWorkspaces?: boolean;\n}\n\ninterface AnalyzeIntegrityOptions {\n includePeerGaps?: boolean;\n}\n\nexport interface AutoFixDependencyOptions extends CollectWorkspaceOptions {\n packageName?: string;\n includeTransitive?: boolean;\n includePeerGaps?: boolean;\n}\n\nexport interface AutoFixDependencyResult {\n packagesScanned: number;\n packagesUpdated: number;\n dependenciesAdded: number;\n unresolved: Array<{ packageName: string; dependency: string }>;\n}\n\nexport async function analyzePackageDependencyIntegrity(\n packagePath: string,\n options: AnalyzeIntegrityOptions = {}\n): Promise<PackageIntegrityResult | null> {\n const absPackagePath = resolve(packagePath);\n const pkgJsonPath = join(absPackagePath, 'package.json');\n if (!existsSync(pkgJsonPath)) {\n return null;\n }\n\n const pkgJson = (await loadPackageJson(pkgJsonPath)) as PackageJson | null;\n if (!pkgJson?.name) {\n return null;\n }\n\n const sourceDir = join(absPackagePath, 'src');\n if (!existsSync(sourceDir)) {\n return {\n packageName: pkgJson.name,\n packagePath: absPackagePath,\n issues: [],\n };\n }\n\n const importedPackages = await collectImportedPackages(sourceDir);\n const declaredDirect = new Set<string>([\n ...Object.keys(pkgJson.dependencies || {}),\n ...Object.keys(pkgJson.devDependencies || {}),\n ...Object.keys((pkgJson.peerDependencies as Record<string, string> | undefined) || {}),\n ...Object.keys((pkgJson.optionalDependencies as Record<string, string> | undefined) || {}),\n ]);\n\n const resolveFromPackage = createRequire(pkgJsonPath);\n const transitiveNames = await collectTransitiveDependencyNames(\n resolveFromPackage,\n declaredDirect\n );\n\n const issues: ImportIntegrityIssue[] = [];\n\n for (const dep of Array.from(importedPackages.keys()).sort()) {\n if (dep === pkgJson.name) {\n continue;\n }\n\n const direct = declaredDirect.has(dep);\n const specifiers = importedPackages.get(dep) || new Set<string>([dep]);\n const resolvedPath = resolveDependencyFromPackage(resolveFromPackage, dep, specifiers);\n\n if (!resolvedPath) {\n if (direct) {\n const declaredManifest = resolveDeclaredPackageManifest(resolveFromPackage, dep);\n if (declaredManifest) {\n continue;\n }\n }\n issues.push({\n dependency: dep,\n status: 'broken',\n declaredDirect: direct,\n });\n continue;\n }\n\n if (direct) {\n continue;\n }\n\n if (transitiveNames.has(dep)) {\n issues.push({\n dependency: dep,\n status: 'transitive',\n declaredDirect: false,\n resolvedPath,\n });\n } else {\n issues.push({\n dependency: dep,\n status: 'hoist',\n declaredDirect: false,\n resolvedPath,\n });\n }\n }\n\n if (options.includePeerGaps) {\n const peerIssues = await collectMissingPeerDependencyIssues(\n pkgJson,\n declaredDirect,\n resolveFromPackage\n );\n for (const peerIssue of peerIssues) {\n const alreadyReported = issues.some((issue) => issue.dependency === peerIssue.dependency);\n if (!alreadyReported) {\n issues.push(peerIssue);\n }\n }\n }\n\n return {\n packageName: pkgJson.name,\n packagePath: absPackagePath,\n issues,\n };\n}\n\nexport async function collectWorkspacePackageDirs(\n root: string,\n options: CollectWorkspaceOptions = {}\n): Promise<string[]> {\n const absRoot = resolve(root);\n const out = new Set<string>();\n const rootPkgPath = join(absRoot, 'package.json');\n const rootPkg = (await loadPackageJson(rootPkgPath)) as\n | (PackageJson & { workspaces?: string[] })\n | null;\n const workspaces = rootPkg?.workspaces || [];\n\n for (const pattern of workspaces) {\n if (!WORKSPACE_SCAN_PREFIXES.some((prefix) => pattern.startsWith(prefix))) {\n continue;\n }\n const isPackagesWorkspace = pattern.startsWith('packages/');\n if (!isPackagesWorkspace && !options.includeNonPackageWorkspaces) {\n continue;\n }\n const matches = await expandWorkspacePattern(absRoot, pattern);\n for (const match of matches) {\n if (existsSync(join(match, 'package.json'))) {\n out.add(match);\n }\n }\n }\n\n return Array.from(out).sort();\n}\n\nasync function expandWorkspacePattern(root: string, pattern: string): Promise<string[]> {\n const normalized = pattern.replace(/\\\\/g, '/').replace(/\\/$/, '');\n if (!normalized.includes('*')) {\n return [join(root, normalized)];\n }\n\n const [prefix, suffix = ''] = normalized.split('*');\n const prefixPath = join(root, prefix);\n if (!existsSync(prefixPath)) {\n return [];\n }\n\n const dirEntries = await readdir(prefixPath, { withFileTypes: true });\n const matches: string[] = [];\n\n for (const entry of dirEntries) {\n if (!entry.isDirectory()) {\n continue;\n }\n const candidate = join(prefixPath, entry.name, suffix);\n if (existsSync(candidate)) {\n matches.push(candidate);\n }\n }\n\n return matches;\n}\n\nfunction resolveDependencyFromPackage(\n resolveFromPackage: NodeRequire,\n dep: string,\n specifiers: Set<string>\n): string | null {\n const candidates = new Set<string>([...specifiers, dep]);\n for (const candidate of candidates) {\n try {\n return resolveFromPackage.resolve(candidate);\n } catch {\n // try next candidate\n }\n }\n return null;\n}\n\nfunction resolveDeclaredPackageManifest(\n resolveFromPackage: NodeRequire,\n dep: string\n): string | null {\n const searchPaths = resolveFromPackage.resolve.paths(dep) || [];\n for (const basePath of searchPaths) {\n const manifestPath = join(basePath, dep, 'package.json');\n if (existsSync(manifestPath)) {\n return manifestPath;\n }\n }\n return null;\n}\n\nasync function collectMissingPeerDependencyIssues(\n pkgJson: PackageJson,\n declaredDirect: Set<string>,\n resolveFromPackage: NodeRequire\n): Promise<ImportIntegrityIssue[]> {\n const issues: ImportIntegrityIssue[] = [];\n const checkedPeers = new Set<string>();\n\n for (const directDep of Array.from(declaredDirect)) {\n if (!directDep || directDep === pkgJson.name) continue;\n\n const depRoot = await resolvePackageRoot(resolveFromPackage, directDep);\n const depPkgPath =\n depRoot && existsSync(join(depRoot, 'package.json'))\n ? join(depRoot, 'package.json')\n : resolveDeclaredPackageManifest(resolveFromPackage, directDep);\n if (!depPkgPath || !existsSync(depPkgPath)) {\n continue;\n }\n\n const depPkg = (await loadPackageJson(depPkgPath).catch(() => null)) as PackageJson | null;\n if (!depPkg?.peerDependencies || typeof depPkg.peerDependencies !== 'object') {\n continue;\n }\n\n const optionalPeers = new Set<string>(\n Object.entries((depPkg.peerDependenciesMeta as Record<string, { optional?: boolean }>) || {})\n .filter(([, meta]) => meta?.optional)\n .map(([name]) => name)\n );\n\n for (const peerDep of Object.keys(depPkg.peerDependencies)) {\n if (!peerDep || peerDep === pkgJson.name || optionalPeers.has(peerDep)) continue;\n if (IGNORED_PEER_DEPENDENCIES.has(peerDep)) continue;\n if (declaredDirect.has(peerDep) || checkedPeers.has(peerDep)) continue;\n checkedPeers.add(peerDep);\n\n const resolvedPath = resolveDependencyFromPackage(\n resolveFromPackage,\n peerDep,\n new Set([peerDep])\n );\n issues.push({\n dependency: peerDep,\n status: 'peer',\n declaredDirect: false,\n resolvedPath: resolvedPath || undefined,\n requiredBy: directDep,\n });\n }\n }\n\n return issues;\n}\n\nasync function collectImportedPackages(sourceDir: string): Promise<Map<string, Set<string>>> {\n const files = await listSourceFiles(sourceDir);\n const imported = new Map<string, Set<string>>();\n\n for (const file of files) {\n const content = await readFile(file, 'utf-8');\n if (\n file.includes('/src/lib/element-imports.') ||\n content.includes('AUTO-GENERATED') ||\n content.includes('DO NOT EDIT MANUALLY')\n ) {\n continue;\n }\n for (const importedSpec of await extractBareImports(content)) {\n if (!imported.has(importedSpec.packageName)) {\n imported.set(importedSpec.packageName, new Set<string>());\n }\n imported.get(importedSpec.packageName)?.add(importedSpec.rawSpecifier);\n }\n }\n\n return imported;\n}\n\nasync function listSourceFiles(dir: string): Promise<string[]> {\n const entries = await readdir(dir, { withFileTypes: true });\n const files: string[] = [];\n\n for (const entry of entries) {\n const fullPath = join(dir, entry.name);\n if (entry.isDirectory()) {\n files.push(...(await listSourceFiles(fullPath)));\n continue;\n }\n\n if (/\\.(ts|tsx|js|jsx|mjs|cjs)$/.test(entry.name)) {\n files.push(fullPath);\n }\n }\n\n return files;\n}\n\nasync function extractBareImports(\n content: string\n): Promise<Array<{ packageName: string; rawSpecifier: string }>> {\n const imports = new Map<string, Set<string>>();\n try {\n await init;\n const [parsedImports] = parse(content);\n for (const parsed of parsedImports) {\n const rawSpecifier = (parsed as { n?: string }).n;\n if (!rawSpecifier) continue;\n const dep = normalizeBarePackageSpecifier(rawSpecifier);\n if (!dep) continue;\n if (!imports.has(dep)) {\n imports.set(dep, new Set<string>());\n }\n imports.get(dep)?.add(rawSpecifier);\n }\n } catch {\n const staticPatterns = [\n /^\\s*import\\s+[^'\"]*?\\s+from\\s+['\"]([^'\"]+)['\"]/gm,\n /^\\s*import\\s*['\"]([^'\"]+)['\"]/gm,\n /^\\s*export\\s+[^'\"]*?\\s+from\\s+['\"]([^'\"]+)['\"]/gm,\n /(?:^|[^\\w$\"'`])import\\(\\s*['\"]([^'\"]+)['\"]\\s*\\)/gm,\n ];\n for (const pattern of staticPatterns) {\n let match: RegExpExecArray | null = pattern.exec(content);\n while (match !== null) {\n const rawSpecifier = match[1];\n const dep = normalizeBarePackageSpecifier(rawSpecifier);\n if (dep) {\n if (!imports.has(dep)) {\n imports.set(dep, new Set<string>());\n }\n imports.get(dep)?.add(rawSpecifier);\n }\n match = pattern.exec(content);\n }\n }\n }\n\n const requireContent = stripComments(content);\n const requirePattern =\n /^\\s*(?:const|let|var)?[\\w${}\\s,*=:.[\\]-]*\\brequire\\(\\s*['\"]([^'\"]+)['\"]\\s*\\)/gm;\n let requireMatch: RegExpExecArray | null = requirePattern.exec(requireContent);\n while (requireMatch !== null) {\n const rawSpecifier = requireMatch[1];\n const dep = normalizeBarePackageSpecifier(rawSpecifier);\n if (dep) {\n if (!imports.has(dep)) {\n imports.set(dep, new Set<string>());\n }\n imports.get(dep)?.add(rawSpecifier);\n }\n requireMatch = requirePattern.exec(requireContent);\n }\n\n const out: Array<{ packageName: string; rawSpecifier: string }> = [];\n for (const [packageName, specifiers] of imports) {\n for (const rawSpecifier of specifiers) {\n out.push({ packageName, rawSpecifier });\n }\n }\n return out;\n}\n\nfunction stripComments(content: string): string {\n return content.replace(/\\/\\*[\\s\\S]*?\\*\\//g, '').replace(/(^|[^\\\\:])\\/\\/.*$/gm, '$1');\n}\n\nfunction normalizeBarePackageSpecifier(specifier: string): string | null {\n if (\n !specifier ||\n specifier.startsWith('.') ||\n specifier.startsWith('/') ||\n specifier.startsWith('node:') ||\n specifier.startsWith('$')\n ) {\n return null;\n }\n\n if (BUILTIN_SET.has(specifier)) {\n return null;\n }\n\n // Ignore virtual modules and URL/protocol specifiers.\n if (specifier.includes(':')) {\n return null;\n }\n\n if (!VALID_BARE_SPECIFIER.test(specifier)) {\n return null;\n }\n if (PLACEHOLDER_IMPORT_SPECIFIERS.has(specifier)) {\n return null;\n }\n\n if (specifier.startsWith('@')) {\n const parts = specifier.split('/');\n return parts.length >= 2 ? `${parts[0]}/${parts[1]}` : null;\n }\n\n return specifier.split('/')[0] || null;\n}\n\nasync function collectTransitiveDependencyNames(\n resolveFromPackage: NodeRequire,\n roots: Set<string>\n): Promise<Set<string>> {\n const seen = new Set<string>();\n const queue = Array.from(roots);\n const transitive = new Set<string>();\n\n while (queue.length > 0) {\n const dep = queue.shift();\n if (!dep || seen.has(dep)) continue;\n seen.add(dep);\n transitive.add(dep);\n\n const root = await resolvePackageRoot(resolveFromPackage, dep);\n if (!root) continue;\n\n const pkgJsonPath = join(root, 'package.json');\n if (!existsSync(pkgJsonPath)) continue;\n\n let pkg: PackageJson | null = null;\n try {\n pkg = (await loadPackageJson(pkgJsonPath)) as PackageJson;\n } catch {\n pkg = null;\n }\n\n if (!pkg) continue;\n\n const childDeps = Object.keys(pkg.dependencies || {});\n for (const child of childDeps) {\n if (!seen.has(child)) queue.push(child);\n }\n }\n\n return transitive;\n}\n\nexport async function autoFixWorkspaceDependencyDeclarations(\n root: string,\n options: AutoFixDependencyOptions = {}\n): Promise<AutoFixDependencyResult> {\n const absRoot = resolve(root);\n const packageDirs = await collectWorkspacePackageDirs(absRoot, {\n includeNonPackageWorkspaces: options.includeNonPackageWorkspaces,\n });\n const catalog = await buildDependencyVersionCatalog(absRoot, packageDirs);\n const workspacePackages = await buildWorkspacePackageNameMap(packageDirs);\n\n let packagesScanned = 0;\n let packagesUpdated = 0;\n let dependenciesAdded = 0;\n const unresolved: Array<{ packageName: string; dependency: string }> = [];\n\n for (const packageDir of packageDirs) {\n const analysis = await analyzePackageDependencyIntegrity(packageDir, {\n includePeerGaps: options.includePeerGaps,\n });\n if (!analysis) continue;\n if (options.packageName && analysis.packageName !== options.packageName) {\n continue;\n }\n packagesScanned++;\n\n const pkgJsonPath = join(packageDir, 'package.json');\n const pkgJson = (await loadPackageJson(pkgJsonPath)) as PackageJson | null;\n if (!pkgJson) continue;\n\n const needs = analysis.issues.filter((issue) => {\n if (issue.declaredDirect) {\n return false;\n }\n if (issue.status === 'hoist' || issue.status === 'broken' || issue.status === 'peer') {\n return true;\n }\n return options.includeTransitive === true && issue.status === 'transitive';\n });\n\n if (needs.length === 0) {\n continue;\n }\n\n if (!pkgJson.dependencies || typeof pkgJson.dependencies !== 'object') {\n pkgJson.dependencies = {};\n }\n const deps = pkgJson.dependencies as Record<string, string>;\n\n let modified = false;\n for (const issue of needs) {\n if (deps[issue.dependency]) {\n continue;\n }\n\n const version = await resolveDependencyVersionForPackage(\n issue.dependency,\n pkgJsonPath,\n absRoot,\n catalog,\n workspacePackages\n );\n if (!version) {\n unresolved.push({ packageName: analysis.packageName, dependency: issue.dependency });\n continue;\n }\n\n deps[issue.dependency] = version;\n modified = true;\n dependenciesAdded++;\n }\n\n if (modified) {\n await writeFile(pkgJsonPath, `${JSON.stringify(pkgJson, null, 2)}\\n`, 'utf-8');\n packagesUpdated++;\n }\n }\n\n return {\n packagesScanned,\n packagesUpdated,\n dependenciesAdded,\n unresolved,\n };\n}\n\nasync function buildWorkspacePackageNameMap(packageDirs: string[]): Promise<Map<string, string>> {\n const map = new Map<string, string>();\n for (const packageDir of packageDirs) {\n const pkgPath = join(packageDir, 'package.json');\n if (!existsSync(pkgPath)) continue;\n const pkg = (await loadPackageJson(pkgPath)) as PackageJson | null;\n if (pkg?.name) {\n map.set(pkg.name, packageDir);\n }\n }\n return map;\n}\n\nasync function buildDependencyVersionCatalog(\n rootDir: string,\n packageDirs: string[]\n): Promise<Map<string, string>> {\n const catalog = new Map<string, string>();\n\n const addVersions = (record?: Record<string, string>) => {\n if (!record) return;\n for (const [name, version] of Object.entries(record)) {\n if (!catalog.has(name)) {\n catalog.set(name, version);\n }\n }\n };\n\n const rootPkgPath = join(rootDir, 'package.json');\n if (existsSync(rootPkgPath)) {\n const rootPkg = (await loadPackageJson(rootPkgPath)) as PackageJson | null;\n if (rootPkg) {\n addVersions(rootPkg.dependencies as Record<string, string> | undefined);\n addVersions(rootPkg.devDependencies as Record<string, string> | undefined);\n addVersions(rootPkg.peerDependencies as Record<string, string> | undefined);\n addVersions(rootPkg.optionalDependencies as Record<string, string> | undefined);\n }\n }\n\n for (const packageDir of packageDirs) {\n const pkgPath = join(packageDir, 'package.json');\n if (!existsSync(pkgPath)) continue;\n const pkg = (await loadPackageJson(pkgPath)) as PackageJson | null;\n if (!pkg) continue;\n addVersions(pkg.dependencies as Record<string, string> | undefined);\n addVersions(pkg.devDependencies as Record<string, string> | undefined);\n addVersions(pkg.peerDependencies as Record<string, string> | undefined);\n addVersions(pkg.optionalDependencies as Record<string, string> | undefined);\n }\n\n return catalog;\n}\n\nasync function resolveDependencyVersionForPackage(\n dep: string,\n pkgJsonPath: string,\n rootDir: string,\n catalog: Map<string, string>,\n workspacePackages: Map<string, string>\n): Promise<string | null> {\n if (workspacePackages.has(dep)) {\n return 'workspace:*';\n }\n\n const catalogVersion = catalog.get(dep);\n if (catalogVersion) {\n return catalogVersion;\n }\n\n if (FALLBACK_DEPENDENCY_VERSIONS[dep]) {\n return FALLBACK_DEPENDENCY_VERSIONS[dep];\n }\n\n const requireFromPackage = createRequire(pkgJsonPath);\n const packageRoot = await resolvePackageRoot(requireFromPackage, dep);\n if (!packageRoot) {\n return null;\n }\n\n const depPkgPath = join(packageRoot, 'package.json');\n if (!existsSync(depPkgPath)) {\n return null;\n }\n\n const depPkg = (await loadPackageJson(depPkgPath)) as PackageJson | null;\n if (!depPkg?.version) {\n return null;\n }\n\n // Keep workspace references if dependency resolves to local workspace package path.\n if (\n packageRoot.startsWith(join(rootDir, 'packages')) ||\n packageRoot.startsWith(join(rootDir, 'apps'))\n ) {\n return 'workspace:*';\n }\n\n return `^${depPkg.version}`;\n}\n\nasync function resolvePackageRoot(\n resolveFromPackage: NodeRequire,\n dep: string\n): Promise<string | null> {\n let resolvedFile: string;\n try {\n resolvedFile = resolveFromPackage.resolve(dep);\n } catch {\n return null;\n }\n\n let current = dirname(resolvedFile);\n const floor = dirname(current);\n while (current !== floor) {\n const pkgJsonPath = join(current, 'package.json');\n if (existsSync(pkgJsonPath)) {\n try {\n const pkg = (await loadPackageJson(pkgJsonPath)) as PackageJson;\n if (pkg.name === dep) {\n return current;\n }\n } catch {\n // ignore parse/load errors and keep walking\n }\n }\n const parent = dirname(current);\n if (parent === current) break;\n current = parent;\n }\n\n return null;\n}\n"]}
@@ -4,4 +4,3 @@ export declare function getCommitsSince(since: string, cwd: string): string[];
4
4
  export declare function getFileModifiedDate(filePath: string, cwd: string): Date;
5
5
  export declare function getCommitDetails(commit: string, cwd: string): string;
6
6
  export declare function getAuthorName(cwd: string): string;
7
- //# sourceMappingURL=git.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"git.js","sourceRoot":"","sources":["../../src/utils/git.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAE,MAAM,oBAAoB,CAAC;AAE9C,MAAM,UAAU,gBAAgB,CAAC,GAAW;IAC1C,IAAI,CAAC;QACH,OAAO,QAAQ,CAAC,oBAAoB,EAAE,EAAE,GAAG,EAAE,QAAQ,EAAE,MAAM,EAAE,CAAC,CAAC,IAAI,EAAE,CAAC;IAC1E,CAAC;IAAC,OAAO,KAAK,EAAE,CAAC;QACf,MAAM,IAAI,KAAK,CAAC,iCAAiC,KAAK,EAAE,CAAC,CAAC;IAC5D,CAAC;AACH,CAAC;AAED,MAAM,UAAU,qBAAqB,CAAC,GAAW;IAC/C,IAAI,CAAC;QACH,OAAO,QAAQ,CAAC,4BAA4B,EAAE,EAAE,GAAG,EAAE,QAAQ,EAAE,MAAM,EAAE,CAAC,CAAC,IAAI,EAAE,CAAC;IAClF,CAAC;IAAC,OAAO,KAAK,EAAE,CAAC;QACf,MAAM,IAAI,KAAK,CAAC,+BAA+B,KAAK,EAAE,CAAC,CAAC;IAC1D,CAAC;AACH,CAAC;AAED,MAAM,UAAU,eAAe,CAAC,KAAa,EAAE,GAAW;IACxD,IAAI,CAAC;QACH,MAAM,MAAM,GAAG,QAAQ,CAAC,WAAW,KAAK,kBAAkB,EAAE;YAC1D,GAAG;YACH,QAAQ,EAAE,MAAM;SACjB,CAAC,CAAC,IAAI,EAAE,CAAC;QAEV,IAAI,CAAC,MAAM;YAAE,OAAO,EAAE,CAAC;QACvB,OAAO,MAAM,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;IAC5B,CAAC;IAAC,OAAO,KAAK,EAAE,CAAC;QACf,MAAM,IAAI,KAAK,CAAC,+BAA+B,KAAK,KAAK,KAAK,EAAE,CAAC,CAAC;IACpE,CAAC;AACH,CAAC;AAED,MAAM,UAAU,mBAAmB,CAAC,QAAgB,EAAE,GAAW;IAC/D,IAAI,CAAC;QACH,MAAM,SAAS,GAAG,QAAQ,CAAC,+BAA+B,QAAQ,GAAG,EAAE;YACrE,GAAG;YACH,QAAQ,EAAE,MAAM;SACjB,CAAC,CAAC,IAAI,EAAE,CAAC;QAEV,OAAO,IAAI,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,SAAS,EAAE,EAAE,CAAC,GAAG,IAAI,CAAC,CAAC;IACzD,CAAC;IAAC,OAAO,KAAK,EAAE,CAAC;QACf,MAAM,IAAI,KAAK,CAAC,yCAAyC,KAAK,EAAE,CAAC,CAAC;IACpE,CAAC;AACH,CAAC;AAED,MAAM,UAAU,gBAAgB,CAAC,MAAc,EAAE,GAAW;IAC1D,IAAI,CAAC;QACH,OAAO,QAAQ,CAAC,mBAAmB,MAAM,EAAE,EAAE;YAC3C,GAAG;YACH,QAAQ,EAAE,MAAM;SACjB,CAAC,CAAC;IACL,CAAC;IAAC,OAAO,KAAK,EAAE,CAAC;QACf,MAAM,IAAI,KAAK,CAAC,iCAAiC,KAAK,EAAE,CAAC,CAAC;IAC5D,CAAC;AACH,CAAC;AAED,MAAM,UAAU,aAAa,CAAC,GAAW;IACvC,IAAI,CAAC;QACH,OAAO,QAAQ,CAAC,sBAAsB,EAAE,EAAE,GAAG,EAAE,QAAQ,EAAE,MAAM,EAAE,CAAC,CAAC,IAAI,EAAE,CAAC;IAC5E,CAAC;IAAC,OAAO,MAAM,EAAE,CAAC;QAChB,OAAO,SAAS,CAAC;IACnB,CAAC;AACH,CAAC"}
1
+ {"version":3,"file":"git.js","sourceRoot":"","sources":["../../src/utils/git.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAE,MAAM,oBAAoB,CAAC;AAE9C,MAAM,UAAU,gBAAgB,CAAC,GAAW;IAC1C,IAAI,CAAC;QACH,OAAO,QAAQ,CAAC,oBAAoB,EAAE,EAAE,GAAG,EAAE,QAAQ,EAAE,MAAM,EAAE,CAAC,CAAC,IAAI,EAAE,CAAC;IAC1E,CAAC;IAAC,OAAO,KAAK,EAAE,CAAC;QACf,MAAM,IAAI,KAAK,CAAC,iCAAiC,KAAK,EAAE,CAAC,CAAC;IAC5D,CAAC;AACH,CAAC;AAED,MAAM,UAAU,qBAAqB,CAAC,GAAW;IAC/C,IAAI,CAAC;QACH,OAAO,QAAQ,CAAC,4BAA4B,EAAE,EAAE,GAAG,EAAE,QAAQ,EAAE,MAAM,EAAE,CAAC,CAAC,IAAI,EAAE,CAAC;IAClF,CAAC;IAAC,OAAO,KAAK,EAAE,CAAC;QACf,MAAM,IAAI,KAAK,CAAC,+BAA+B,KAAK,EAAE,CAAC,CAAC;IAC1D,CAAC;AACH,CAAC;AAED,MAAM,UAAU,eAAe,CAAC,KAAa,EAAE,GAAW;IACxD,IAAI,CAAC;QACH,MAAM,MAAM,GAAG,QAAQ,CAAC,WAAW,KAAK,kBAAkB,EAAE;YAC1D,GAAG;YACH,QAAQ,EAAE,MAAM;SACjB,CAAC,CAAC,IAAI,EAAE,CAAC;QAEV,IAAI,CAAC,MAAM;YAAE,OAAO,EAAE,CAAC;QACvB,OAAO,MAAM,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;IAC5B,CAAC;IAAC,OAAO,KAAK,EAAE,CAAC;QACf,MAAM,IAAI,KAAK,CAAC,+BAA+B,KAAK,KAAK,KAAK,EAAE,CAAC,CAAC;IACpE,CAAC;AACH,CAAC;AAED,MAAM,UAAU,mBAAmB,CAAC,QAAgB,EAAE,GAAW;IAC/D,IAAI,CAAC;QACH,MAAM,SAAS,GAAG,QAAQ,CAAC,+BAA+B,QAAQ,GAAG,EAAE;YACrE,GAAG;YACH,QAAQ,EAAE,MAAM;SACjB,CAAC,CAAC,IAAI,EAAE,CAAC;QAEV,OAAO,IAAI,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,SAAS,EAAE,EAAE,CAAC,GAAG,IAAI,CAAC,CAAC;IACzD,CAAC;IAAC,OAAO,KAAK,EAAE,CAAC;QACf,MAAM,IAAI,KAAK,CAAC,yCAAyC,KAAK,EAAE,CAAC,CAAC;IACpE,CAAC;AACH,CAAC;AAED,MAAM,UAAU,gBAAgB,CAAC,MAAc,EAAE,GAAW;IAC1D,IAAI,CAAC;QACH,OAAO,QAAQ,CAAC,mBAAmB,MAAM,EAAE,EAAE;YAC3C,GAAG;YACH,QAAQ,EAAE,MAAM;SACjB,CAAC,CAAC;IACL,CAAC;IAAC,OAAO,KAAK,EAAE,CAAC;QACf,MAAM,IAAI,KAAK,CAAC,iCAAiC,KAAK,EAAE,CAAC,CAAC;IAC5D,CAAC;AACH,CAAC;AAED,MAAM,UAAU,aAAa,CAAC,GAAW;IACvC,IAAI,CAAC;QACH,OAAO,QAAQ,CAAC,sBAAsB,EAAE,EAAE,GAAG,EAAE,QAAQ,EAAE,MAAM,EAAE,CAAC,CAAC,IAAI,EAAE,CAAC;IAC5E,CAAC;IAAC,OAAO,MAAM,EAAE,CAAC;QAChB,OAAO,SAAS,CAAC;IACnB,CAAC;AACH,CAAC","sourcesContent":["import { execSync } from 'node:child_process';\n\nexport function getCurrentCommit(cwd: string): string {\n try {\n return execSync('git rev-parse HEAD', { cwd, encoding: 'utf8' }).trim();\n } catch (error) {\n throw new Error(`Failed to get current commit: ${error}`);\n }\n}\n\nexport function getCurrentCommitShort(cwd: string): string {\n try {\n return execSync('git rev-parse --short HEAD', { cwd, encoding: 'utf8' }).trim();\n } catch (error) {\n throw new Error(`Failed to get short commit: ${error}`);\n }\n}\n\nexport function getCommitsSince(since: string, cwd: string): string[] {\n try {\n const output = execSync(`git log ${since}..HEAD --oneline`, {\n cwd,\n encoding: 'utf8',\n }).trim();\n\n if (!output) return [];\n return output.split('\\n');\n } catch (error) {\n throw new Error(`Failed to get commits since ${since}: ${error}`);\n }\n}\n\nexport function getFileModifiedDate(filePath: string, cwd: string): Date {\n try {\n const timestamp = execSync(`git log -1 --format=%ct -- \"${filePath}\"`, {\n cwd,\n encoding: 'utf8',\n }).trim();\n\n return new Date(Number.parseInt(timestamp, 10) * 1000);\n } catch (error) {\n throw new Error(`Failed to get file modification date: ${error}`);\n }\n}\n\nexport function getCommitDetails(commit: string, cwd: string): string {\n try {\n return execSync(`git show --stat ${commit}`, {\n cwd,\n encoding: 'utf8',\n });\n } catch (error) {\n throw new Error(`Failed to get commit details: ${error}`);\n }\n}\n\nexport function getAuthorName(cwd: string): string {\n try {\n return execSync('git config user.name', { cwd, encoding: 'utf8' }).trim();\n } catch (_error) {\n return 'Unknown';\n }\n}\n"]}
@@ -26,4 +26,3 @@ export declare class Logger {
26
26
  */
27
27
  progressCompleteWithCount(count: number, label: string): void;
28
28
  }
29
- //# sourceMappingURL=logger.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"logger.js","sourceRoot":"","sources":["../../src/utils/logger.ts"],"names":[],"mappings":"AAAA,MAAM,OAAO,MAAM;IACG;IAApB,YAAoB,UAAmB,KAAK;QAAxB,YAAO,GAAP,OAAO,CAAiB;IAAG,CAAC;IAEhD,SAAS;QACP,OAAO,IAAI,CAAC,OAAO,CAAC;IACtB,CAAC;IAED,IAAI,CAAC,OAAe;QAClB,OAAO,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC;IACvB,CAAC;IAED,KAAK,CAAC,OAAe;QACnB,IAAI,IAAI,CAAC,OAAO,EAAE,CAAC;YACjB,OAAO,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC;QACvB,CAAC;IACH,CAAC;IAED,IAAI,CAAC,OAAe;QAClB,OAAO,CAAC,IAAI,CAAC,OAAO,OAAO,EAAE,CAAC,CAAC;IACjC,CAAC;IAED,KAAK,CAAC,OAAe;QACnB,OAAO,CAAC,KAAK,CAAC,KAAK,OAAO,EAAE,CAAC,CAAC;IAChC,CAAC;IAED,OAAO,CAAC,OAAe;QACrB,OAAO,CAAC,GAAG,CAAC,KAAK,OAAO,EAAE,CAAC,CAAC;IAC9B,CAAC;IAED,OAAO,CAAC,KAAa;QACnB,OAAO,CAAC,GAAG,CAAC,KAAK,KAAK,EAAE,CAAC,CAAC;QAC1B,OAAO,CAAC,GAAG,CAAC,GAAG,CAAC,MAAM,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC,CAAC;IACxC,CAAC;IAED;;;OAGG;IACH,QAAQ,CAAC,OAAe;QACtB,IAAI,IAAI,CAAC,OAAO,EAAE,CAAC;YACjB,OAAO,CAAC,GAAG,CAAC,KAAK,OAAO,EAAE,CAAC,CAAC;QAC9B,CAAC;IACH,CAAC;IAED;;OAEG;IACH,aAAa,CAAC,OAAe;QAC3B,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC;IAChC,CAAC;IAED;;OAEG;IACH,gBAAgB,CAAC,OAAgB;QAC/B,IAAI,OAAO,EAAE,CAAC;YACZ,OAAO,CAAC,GAAG,CAAC,MAAM,OAAO,EAAE,CAAC,CAAC;QAC/B,CAAC;aAAM,CAAC;YACN,OAAO,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC;QACpB,CAAC;IACH,CAAC;IAED;;OAEG;IACH,yBAAyB,CAAC,KAAa,EAAE,KAAa;QACpD,OAAO,CAAC,GAAG,CAAC,OAAO,KAAK,IAAI,KAAK,GAAG,CAAC,CAAC;IACxC,CAAC;CACF"}
1
+ {"version":3,"file":"logger.js","sourceRoot":"","sources":["../../src/utils/logger.ts"],"names":[],"mappings":"AAAA,MAAM,OAAO,MAAM;IACG;IAApB,YAAoB,UAAmB,KAAK;QAAxB,YAAO,GAAP,OAAO,CAAiB;IAAG,CAAC;IAEhD,SAAS;QACP,OAAO,IAAI,CAAC,OAAO,CAAC;IACtB,CAAC;IAED,IAAI,CAAC,OAAe;QAClB,OAAO,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC;IACvB,CAAC;IAED,KAAK,CAAC,OAAe;QACnB,IAAI,IAAI,CAAC,OAAO,EAAE,CAAC;YACjB,OAAO,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC;QACvB,CAAC;IACH,CAAC;IAED,IAAI,CAAC,OAAe;QAClB,OAAO,CAAC,IAAI,CAAC,OAAO,OAAO,EAAE,CAAC,CAAC;IACjC,CAAC;IAED,KAAK,CAAC,OAAe;QACnB,OAAO,CAAC,KAAK,CAAC,KAAK,OAAO,EAAE,CAAC,CAAC;IAChC,CAAC;IAED,OAAO,CAAC,OAAe;QACrB,OAAO,CAAC,GAAG,CAAC,KAAK,OAAO,EAAE,CAAC,CAAC;IAC9B,CAAC;IAED,OAAO,CAAC,KAAa;QACnB,OAAO,CAAC,GAAG,CAAC,KAAK,KAAK,EAAE,CAAC,CAAC;QAC1B,OAAO,CAAC,GAAG,CAAC,GAAG,CAAC,MAAM,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC,CAAC;IACxC,CAAC;IAED;;;OAGG;IACH,QAAQ,CAAC,OAAe;QACtB,IAAI,IAAI,CAAC,OAAO,EAAE,CAAC;YACjB,OAAO,CAAC,GAAG,CAAC,KAAK,OAAO,EAAE,CAAC,CAAC;QAC9B,CAAC;IACH,CAAC;IAED;;OAEG;IACH,aAAa,CAAC,OAAe;QAC3B,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC;IAChC,CAAC;IAED;;OAEG;IACH,gBAAgB,CAAC,OAAgB;QAC/B,IAAI,OAAO,EAAE,CAAC;YACZ,OAAO,CAAC,GAAG,CAAC,MAAM,OAAO,EAAE,CAAC,CAAC;QAC/B,CAAC;aAAM,CAAC;YACN,OAAO,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC;QACpB,CAAC;IACH,CAAC;IAED;;OAEG;IACH,yBAAyB,CAAC,KAAa,EAAE,KAAa;QACpD,OAAO,CAAC,GAAG,CAAC,OAAO,KAAK,IAAI,KAAK,GAAG,CAAC,CAAC;IACxC,CAAC;CACF","sourcesContent":["export class Logger {\n constructor(private verbose: boolean = false) {}\n\n isVerbose(): boolean {\n return this.verbose;\n }\n\n info(message: string): void {\n console.log(message);\n }\n\n debug(message: string): void {\n if (this.verbose) {\n console.log(message);\n }\n }\n\n warn(message: string): void {\n console.warn(`⚠️ ${message}`);\n }\n\n error(message: string): void {\n console.error(`❌ ${message}`);\n }\n\n success(message: string): void {\n console.log(`✅ ${message}`);\n }\n\n section(title: string): void {\n console.log(`\\n${title}`);\n console.log('='.repeat(title.length));\n }\n\n /**\n * Show a progress message (only in verbose mode)\n * In non-verbose mode, use progressStart/progressComplete instead\n */\n progress(message: string): void {\n if (this.verbose) {\n console.log(` ${message}`);\n }\n }\n\n /**\n * Show start of an operation (always shown)\n */\n progressStart(message: string): void {\n process.stdout.write(message);\n }\n\n /**\n * Complete a progress operation with success\n */\n progressComplete(details?: string): void {\n if (details) {\n console.log(` ✓ ${details}`);\n } else {\n console.log(' ✓');\n }\n }\n\n /**\n * Complete a progress operation with a count\n */\n progressCompleteWithCount(count: number, label: string): void {\n console.log(` ✓ (${count} ${label})`);\n }\n}\n"]}
@@ -9,4 +9,3 @@ export interface PackageJson {
9
9
  export declare function loadPackageJson(path: string): Promise<PackageJson>;
10
10
  export declare function writePackageJson(path: string, pkg: PackageJson): Promise<void>;
11
11
  export declare function extractDependencies(content: string): string[];
12
- //# sourceMappingURL=package-json.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"package-json.js","sourceRoot":"","sources":["../../src/utils/package-json.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAE,SAAS,EAAE,MAAM,kBAAkB,CAAC;AAWvD,MAAM,CAAC,KAAK,UAAU,eAAe,CAAC,IAAY;IAChD,MAAM,OAAO,GAAG,MAAM,QAAQ,CAAC,IAAI,EAAE,OAAO,CAAC,CAAC;IAC9C,OAAO,IAAI,CAAC,KAAK,CAAC,OAAO,CAAgB,CAAC;AAC5C,CAAC;AAED,MAAM,CAAC,KAAK,UAAU,gBAAgB,CAAC,IAAY,EAAE,GAAgB;IACnE,MAAM,OAAO,GAAG,GAAG,IAAI,CAAC,SAAS,CAAC,GAAG,EAAE,IAAI,EAAE,CAAC,CAAC,IAAI,CAAC;IACpD,MAAM,SAAS,CAAC,IAAI,EAAE,OAAO,EAAE,OAAO,CAAC,CAAC;AAC1C,CAAC;AAED,MAAM,UAAU,mBAAmB,CAAC,OAAe;IACjD,MAAM,IAAI,GAAG,IAAI,GAAG,EAAU,CAAC;IAE/B,0BAA0B;IAC1B,MAAM,WAAW,GAAG,wCAAwC,CAAC;IAC7D,IAAI,KAAK,GAA2B,WAAW,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;IAE9D,OAAO,KAAK,KAAK,IAAI,EAAE,CAAC;QACtB,MAAM,GAAG,GAAG,KAAK,CAAC,CAAC,CAAC,CAAC;QACrB,wBAAwB;QACxB,IAAI,CAAC,GAAG,CAAC,UAAU,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,UAAU,CAAC,GAAG,CAAC,EAAE,CAAC;YACjD,gDAAgD;YAChD,MAAM,OAAO,GAAG,GAAG,CAAC,UAAU,CAAC,GAAG,CAAC;gBACjC,CAAC,CAAC,GAAG,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC;gBACtC,CAAC,CAAC,GAAG,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC;YACtB,IAAI,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC;QACpB,CAAC;QACD,KAAK,GAAG,WAAW,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;IACpC,CAAC;IAED,OAAO,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,IAAI,EAAE,CAAC;AACjC,CAAC"}
1
+ {"version":3,"file":"package-json.js","sourceRoot":"","sources":["../../src/utils/package-json.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAE,SAAS,EAAE,MAAM,kBAAkB,CAAC;AAWvD,MAAM,CAAC,KAAK,UAAU,eAAe,CAAC,IAAY;IAChD,MAAM,OAAO,GAAG,MAAM,QAAQ,CAAC,IAAI,EAAE,OAAO,CAAC,CAAC;IAC9C,OAAO,IAAI,CAAC,KAAK,CAAC,OAAO,CAAgB,CAAC;AAC5C,CAAC;AAED,MAAM,CAAC,KAAK,UAAU,gBAAgB,CAAC,IAAY,EAAE,GAAgB;IACnE,MAAM,OAAO,GAAG,GAAG,IAAI,CAAC,SAAS,CAAC,GAAG,EAAE,IAAI,EAAE,CAAC,CAAC,IAAI,CAAC;IACpD,MAAM,SAAS,CAAC,IAAI,EAAE,OAAO,EAAE,OAAO,CAAC,CAAC;AAC1C,CAAC;AAED,MAAM,UAAU,mBAAmB,CAAC,OAAe;IACjD,MAAM,IAAI,GAAG,IAAI,GAAG,EAAU,CAAC;IAE/B,0BAA0B;IAC1B,MAAM,WAAW,GAAG,wCAAwC,CAAC;IAC7D,IAAI,KAAK,GAA2B,WAAW,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;IAE9D,OAAO,KAAK,KAAK,IAAI,EAAE,CAAC;QACtB,MAAM,GAAG,GAAG,KAAK,CAAC,CAAC,CAAC,CAAC;QACrB,wBAAwB;QACxB,IAAI,CAAC,GAAG,CAAC,UAAU,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,UAAU,CAAC,GAAG,CAAC,EAAE,CAAC;YACjD,gDAAgD;YAChD,MAAM,OAAO,GAAG,GAAG,CAAC,UAAU,CAAC,GAAG,CAAC;gBACjC,CAAC,CAAC,GAAG,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC;gBACtC,CAAC,CAAC,GAAG,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC;YACtB,IAAI,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC;QACpB,CAAC;QACD,KAAK,GAAG,WAAW,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;IACpC,CAAC;IAED,OAAO,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,IAAI,EAAE,CAAC;AACjC,CAAC","sourcesContent":["import { readFile, writeFile } from 'node:fs/promises';\n\nexport interface PackageJson {\n name: string;\n version: string;\n private?: boolean;\n dependencies?: Record<string, string>;\n devDependencies?: Record<string, string>;\n [key: string]: unknown;\n}\n\nexport async function loadPackageJson(path: string): Promise<PackageJson> {\n const content = await readFile(path, 'utf-8');\n return JSON.parse(content) as PackageJson;\n}\n\nexport async function writePackageJson(path: string, pkg: PackageJson): Promise<void> {\n const content = `${JSON.stringify(pkg, null, 2)}\\n`;\n await writeFile(path, content, 'utf-8');\n}\n\nexport function extractDependencies(content: string): string[] {\n const deps = new Set<string>();\n\n // Match import statements\n const importRegex = /import\\s+.+\\s+from\\s+['\"]([^'\"]+)['\"]/g;\n let match: RegExpExecArray | null = importRegex.exec(content);\n\n while (match !== null) {\n const dep = match[1];\n // Skip relative imports\n if (!dep.startsWith('.') && !dep.startsWith('/')) {\n // Extract package name (handle scoped packages)\n const pkgName = dep.startsWith('@')\n ? dep.split('/').slice(0, 2).join('/')\n : dep.split('/')[0];\n deps.add(pkgName);\n }\n match = importRegex.exec(content);\n }\n\n return Array.from(deps).sort();\n}\n"]}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@pie-element/cli",
3
- "version": "0.1.1",
3
+ "version": "0.1.2-next.0",
4
4
  "description": "CLI tools for managing PIE Elements NG",
5
5
  "type": "module",
6
6
  "bin": {
@@ -10,15 +10,20 @@
10
10
  "exports": {
11
11
  ".": "./dist/index.js"
12
12
  },
13
+ "files": [
14
+ "bin/run.js",
15
+ "dist",
16
+ "README.md"
17
+ ],
13
18
  "scripts": {
14
- "build": "tsc",
19
+ "build": "rm -rf dist && tsc",
15
20
  "dev": "node ./bin/dev.js",
16
21
  "lint": "biome check ."
17
22
  },
18
23
  "dependencies": {
19
24
  "@oclif/core": "^4.0.0",
20
25
  "@oclif/plugin-help": "^6.2.0",
21
- "@pie-element/bundler-shared": "workspace:*",
26
+ "@pie-element/element-bundler": "0.1.2-next.0",
22
27
  "es-module-lexer": "^1.7.0",
23
28
  "glob": "^13.0.0",
24
29
  "open": "^10.0.3",
@@ -26,7 +31,7 @@
26
31
  },
27
32
  "devDependencies": {
28
33
  "@types/node": "^25.0.3",
29
- "bun-types": "^1.3.5",
34
+ "bun-types": "^1.3.11",
30
35
  "typescript": "^5.9.3"
31
36
  },
32
37
  "oclif": {
@@ -44,16 +49,28 @@
44
49
  "packages": {
45
50
  "description": "Generate and manage package configurations"
46
51
  },
52
+ "docs": {
53
+ "description": "Generate and verify framework-agnostic element documentation"
54
+ },
47
55
  "verify": {
48
56
  "description": "Verify builds and configurations"
49
- },
50
- "mathquill": {
51
- "description": "MathQuill migration and management"
52
57
  }
53
58
  }
54
59
  },
55
60
  "engines": {
56
61
  "node": ">=20.0.0"
57
62
  },
58
- "license": "MIT"
63
+ "license": "MIT",
64
+ "publishConfig": {
65
+ "access": "public"
66
+ },
67
+ "repository": {
68
+ "type": "git",
69
+ "url": "git+https://github.com/pie-framework/pie-elements-ng.git",
70
+ "directory": "tools/cli"
71
+ },
72
+ "homepage": "https://github.com/pie-framework/pie-elements-ng#readme",
73
+ "bugs": {
74
+ "url": "https://github.com/pie-framework/pie-elements-ng/issues"
75
+ }
59
76
  }