@dxtmisha/scripts 0.11.8 → 1.0.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 (335) hide show
  1. package/CHANGELOG.md +57 -0
  2. package/ai-resources/componentMaterials.md +19 -0
  3. package/ai-resources/componentPrompt.md +381 -0
  4. package/ai-resources/componentWiki.md +13 -0
  5. package/bin/arguments.ts +168 -0
  6. package/bin/build-packages.ts +12 -2
  7. package/bin/build-publish-packages.ts +12 -2
  8. package/bin/design-component.ts +7 -1
  9. package/bin/design-constructor.ts +22 -3
  10. package/bin/design-figma.ts +26 -4
  11. package/bin/design-flags.ts +14 -2
  12. package/bin/design-library.ts +7 -1
  13. package/bin/design-package.ts +29 -5
  14. package/bin/design-prompt.ts +22 -3
  15. package/bin/design-screenshot.ts +12 -2
  16. package/bin/design-types-save.ts +32 -5
  17. package/bin/design-types.ts +32 -6
  18. package/bin/design-ui.ts +21 -3
  19. package/bin/design-wiki-storm.ts +11 -3
  20. package/dist/AiZAi-x3CInynJ.js +232 -0
  21. package/dist/PropertiesConfig-ChizwW5y.js +250 -0
  22. package/{src/config.ts → dist/config.d.ts} +179 -158
  23. package/dist/config.js +20 -0
  24. package/dist/figmaApiTypes-CArSsNW8.js +6 -0
  25. package/dist/library-ai.d.ts +482 -0
  26. package/dist/library-ai.js +2 -0
  27. package/dist/library-figma.d.ts +462 -0
  28. package/dist/library-figma.js +75 -0
  29. package/dist/library-ui.d.ts +586 -0
  30. package/dist/library-ui.js +3760 -0
  31. package/dist/library.d.ts +4677 -0
  32. package/dist/library.js +1436 -0
  33. package/dist/propertyTypes-DflziKuR.js +236 -0
  34. package/package.json +69 -20
  35. package/bin/ai-doc.ts +0 -7
  36. package/bin/build-functional.ts +0 -5
  37. package/bin/design-component-wiki.ts +0 -11
  38. package/src/classes/Ai/AiAbstract.ts +0 -242
  39. package/src/classes/Ai/AiClaude.ts +0 -26
  40. package/src/classes/Ai/AiClaudeAgent.ts +0 -16
  41. package/src/classes/Ai/AiClaudeAgentLite.ts +0 -86
  42. package/src/classes/Ai/AiClaudeCli.ts +0 -24
  43. package/src/classes/Ai/AiClaudeCliLite.ts +0 -108
  44. package/src/classes/Ai/AiClaudeLite.ts +0 -112
  45. package/src/classes/Ai/AiDoc.ts +0 -81
  46. package/src/classes/Ai/AiDocItem.ts +0 -27
  47. package/src/classes/Ai/AiDocItemAbstract.ts +0 -209
  48. package/src/classes/Ai/AiDocItemClasses.ts +0 -27
  49. package/src/classes/Ai/AiDocItemComposables.ts +0 -20
  50. package/src/classes/Ai/AiDocType.ts +0 -45
  51. package/src/classes/Ai/AiGoogle.ts +0 -26
  52. package/src/classes/Ai/AiGoogleCli.ts +0 -24
  53. package/src/classes/Ai/AiGoogleCliLite.ts +0 -108
  54. package/src/classes/Ai/AiGoogleLite.ts +0 -78
  55. package/src/classes/Ai/AiOpenAi.ts +0 -26
  56. package/src/classes/Ai/AiOpenAiLite.ts +0 -107
  57. package/src/classes/Ai/AiZAi.ts +0 -17
  58. package/src/classes/Ai/AiZAiLite.ts +0 -77
  59. package/src/classes/Ai/ApiTmp.ts +0 -43
  60. package/src/classes/BrowserItem.ts +0 -408
  61. package/src/classes/Build/BuildFunctional.ts +0 -54
  62. package/src/classes/Build/BuildPackages.ts +0 -137
  63. package/src/classes/Build/BuildPublishPackages.ts +0 -105
  64. package/src/classes/BuildItem.ts +0 -187
  65. package/src/classes/Component/ComponentCreator.ts +0 -45
  66. package/src/classes/Component/ComponentItem.ts +0 -161
  67. package/src/classes/Component/ComponentWiki.ts +0 -258
  68. package/src/classes/Component/ComponentWikiFile.ts +0 -138
  69. package/src/classes/Design/DesignCommand.ts +0 -243
  70. package/src/classes/Design/DesignComponent.ts +0 -824
  71. package/src/classes/Design/DesignConstructor.ts +0 -222
  72. package/src/classes/Design/DesignConstructors.ts +0 -101
  73. package/src/classes/Design/DesignFigma.ts +0 -61
  74. package/src/classes/Design/DesignFlags.ts +0 -215
  75. package/src/classes/Design/DesignReplace.ts +0 -672
  76. package/src/classes/Design/DesignScreenshot.ts +0 -140
  77. package/src/classes/Design/DesignStructure.ts +0 -201
  78. package/src/classes/Design/DesignStructureClasses.ts +0 -105
  79. package/src/classes/Design/DesignStructureItemAbstract.ts +0 -52
  80. package/src/classes/Design/DesignStructureRead.ts +0 -349
  81. package/src/classes/Design/DesignStructureStyles.ts +0 -45
  82. package/src/classes/Design/DesignTypes.ts +0 -94
  83. package/src/classes/Design/DesignTypesAi.ts +0 -135
  84. package/src/classes/Design/DesignTypesDescription.ts +0 -121
  85. package/src/classes/Design/DesignTypesMake.ts +0 -460
  86. package/src/classes/Design/DesignTypesMcp.ts +0 -90
  87. package/src/classes/Design/DesignTypesPrompts.ts +0 -332
  88. package/src/classes/Design/DesignTypescript.ts +0 -244
  89. package/src/classes/Design/DesignUi.ts +0 -143
  90. package/src/classes/Design/DesignWiki.ts +0 -52
  91. package/src/classes/Design/DesignWikiStorm.ts +0 -95
  92. package/src/classes/Design/DesignWikiStormItem.ts +0 -316
  93. package/src/classes/FigmaApi.ts +0 -190
  94. package/src/classes/Git/GitRead.ts +0 -261
  95. package/src/classes/Library/LibraryAiMcpItem.ts +0 -67
  96. package/src/classes/Library/LibraryAiPrompt.ts +0 -268
  97. package/src/classes/Library/LibraryAiPromptItem.ts +0 -331
  98. package/src/classes/Library/LibraryAiWiki.ts +0 -127
  99. package/src/classes/Library/LibraryAiWikiItem.ts +0 -79
  100. package/src/classes/Library/LibraryExport.ts +0 -167
  101. package/src/classes/Library/LibraryFlags.ts +0 -62
  102. package/src/classes/Library/LibraryItems.ts +0 -138
  103. package/src/classes/Library/LibraryList.ts +0 -189
  104. package/src/classes/Library/LibraryMedia.ts +0 -139
  105. package/src/classes/Library/LibraryPlugin.ts +0 -73
  106. package/src/classes/Library/LibraryTypes.ts +0 -130
  107. package/src/classes/Package/PackageFile.ts +0 -154
  108. package/src/classes/Package/PackageInit.ts +0 -54
  109. package/src/classes/Package/PackageItem.ts +0 -329
  110. package/src/classes/Properties/Properties.ts +0 -175
  111. package/src/classes/Properties/PropertiesCache.ts +0 -248
  112. package/src/classes/Properties/PropertiesConfig.ts +0 -213
  113. package/src/classes/Properties/PropertiesConvector.ts +0 -52
  114. package/src/classes/Properties/PropertiesFile.ts +0 -522
  115. package/src/classes/Properties/PropertiesImport.ts +0 -182
  116. package/src/classes/Properties/PropertiesItems.ts +0 -605
  117. package/src/classes/Properties/PropertiesKeys.ts +0 -121
  118. package/src/classes/Properties/PropertiesMain.ts +0 -138
  119. package/src/classes/Properties/PropertiesPalette.ts +0 -149
  120. package/src/classes/Properties/PropertiesPath.ts +0 -193
  121. package/src/classes/Properties/PropertiesScss.ts +0 -261
  122. package/src/classes/Properties/PropertiesSeparator.ts +0 -118
  123. package/src/classes/Properties/PropertiesSettings.ts +0 -104
  124. package/src/classes/Properties/PropertiesStandard.ts +0 -180
  125. package/src/classes/Properties/PropertiesTool.ts +0 -80
  126. package/src/classes/Properties/PropertiesTypes.ts +0 -147
  127. package/src/classes/Properties/PropertiesValues.ts +0 -75
  128. package/src/classes/Properties/PropertiesWrap.ts +0 -187
  129. package/src/classes/Properties/convector/convectorColor.ts +0 -27
  130. package/src/classes/Properties/convector/convectorFontFamilies.ts +0 -18
  131. package/src/classes/Properties/convector/convectorShadow.ts +0 -61
  132. package/src/classes/Properties/convector/convectorTypography.ts +0 -19
  133. package/src/classes/Properties/to/PropertiesToAbstract.ts +0 -51
  134. package/src/classes/Properties/to/PropertiesToAnimate.ts +0 -59
  135. package/src/classes/Properties/to/PropertiesToClass.ts +0 -49
  136. package/src/classes/Properties/to/PropertiesToClone.ts +0 -114
  137. package/src/classes/Properties/to/PropertiesToComponent.ts +0 -52
  138. package/src/classes/Properties/to/PropertiesToDrag.ts +0 -231
  139. package/src/classes/Properties/to/PropertiesToDuplicate.ts +0 -165
  140. package/src/classes/Properties/to/PropertiesToFull.ts +0 -36
  141. package/src/classes/Properties/to/PropertiesToLink.ts +0 -259
  142. package/src/classes/Properties/to/PropertiesToMedia.ts +0 -187
  143. package/src/classes/Properties/to/PropertiesToMulti.ts +0 -101
  144. package/src/classes/Properties/to/PropertiesToNone.ts +0 -46
  145. package/src/classes/Properties/to/PropertiesToPalette.ts +0 -241
  146. package/src/classes/Properties/to/PropertiesToProperty.ts +0 -31
  147. package/src/classes/Properties/to/PropertiesToRemove.ts +0 -33
  148. package/src/classes/Properties/to/PropertiesToReplace.ts +0 -77
  149. package/src/classes/Properties/to/PropertiesToRoot.ts +0 -40
  150. package/src/classes/Properties/to/PropertiesToSimilar.ts +0 -128
  151. package/src/classes/Properties/to/PropertiesToSort.ts +0 -146
  152. package/src/classes/Properties/to/PropertiesToState.ts +0 -65
  153. package/src/classes/Properties/to/PropertiesToStyle.ts +0 -52
  154. package/src/classes/Properties/to/PropertiesToSub.ts +0 -95
  155. package/src/classes/Properties/to/PropertiesToSubclass.ts +0 -76
  156. package/src/classes/Properties/to/PropertiesToVar.ts +0 -194
  157. package/src/classes/Properties/to/PropertiesToVariable.ts +0 -176
  158. package/src/classes/Styles/Styles.ts +0 -247
  159. package/src/classes/Styles/StylesClasses.ts +0 -86
  160. package/src/classes/Styles/StylesProperties.ts +0 -197
  161. package/src/classes/Styles/StylesRoot.ts +0 -103
  162. package/src/classes/Styles/StylesTool.ts +0 -112
  163. package/src/classes/Styles/to/StylesToAbstract.ts +0 -93
  164. package/src/classes/Styles/to/StylesToAnimate.ts +0 -19
  165. package/src/classes/Styles/to/StylesToClass.ts +0 -25
  166. package/src/classes/Styles/to/StylesToClassFull.ts +0 -19
  167. package/src/classes/Styles/to/StylesToContainer.ts +0 -24
  168. package/src/classes/Styles/to/StylesToMedia.ts +0 -19
  169. package/src/classes/Styles/to/StylesToProperty.ts +0 -123
  170. package/src/classes/Styles/to/StylesToRoot.ts +0 -14
  171. package/src/classes/Styles/to/StylesToSelector.ts +0 -71
  172. package/src/classes/Styles/to/StylesToVar.ts +0 -105
  173. package/src/classes/Styles/to/StylesToVirtual.ts +0 -33
  174. package/src/composables/useAi.ts +0 -38
  175. package/src/demo/ai.ts +0 -10
  176. package/src/functions/getComponentPaths.ts +0 -13
  177. package/src/functions/getConfigAi.ts +0 -14
  178. package/src/functions/getConstructorProperties.ts +0 -54
  179. package/src/functions/getDirname.ts +0 -17
  180. package/src/functions/getNameDirByPaths.ts +0 -16
  181. package/src/functions/getPackageJson.ts +0 -19
  182. package/src/functions/hasNativeDirname.ts +0 -8
  183. package/src/functions/run.ts +0 -47
  184. package/src/functions/toPathStandardSep.ts +0 -14
  185. package/src/library-ai.ts +0 -10
  186. package/src/library.ts +0 -73
  187. package/src/media/ai/ai-doc-types.ts +0 -21
  188. package/src/media/properties/css.ts +0 -634
  189. package/src/media/properties/cssSelector.ts +0 -74
  190. package/src/media/properties/cssVirtual.ts +0 -12
  191. package/src/media/properties/listSort.ts +0 -113
  192. package/src/media/properties/style.ts +0 -81
  193. package/src/media/templates/component/DesignComponent.mdx +0 -30
  194. package/src/media/templates/component/DesignComponent.stories.ts +0 -34
  195. package/src/media/templates/component/DesignComponent.vue +0 -54
  196. package/src/media/templates/component/DesignComponentAiWiki.vue +0 -25
  197. package/src/media/templates/component/index.ts +0 -13
  198. package/src/media/templates/component/props.ts +0 -27
  199. package/src/media/templates/component/styleToken.scss +0 -17
  200. package/src/media/templates/component/wiki.ts +0 -13
  201. package/src/media/templates/component/wikiData.ts +0 -28
  202. package/src/media/templates/componentDoc/ComponentDoc.vue +0 -26
  203. package/src/media/templates/componentDoc/index.ts +0 -12
  204. package/src/media/templates/componentDoc/materials/README.md +0 -8
  205. package/src/media/templates/componentDoc/materials/prompt.md +0 -38
  206. package/src/media/templates/componentDoc/subcomponents/_.gitignore.txt +0 -0
  207. package/src/media/templates/componentDoc/types.ts +0 -15
  208. package/src/media/templates/componentDoc/wiki/ComponentDoc.mdx +0 -13
  209. package/src/media/templates/componentDoc/wiki/ComponentDoc.stories.ts +0 -24
  210. package/src/media/templates/componentDoc/wiki/prompt.md +0 -41
  211. package/src/media/templates/constructors/Constructors.ts +0 -33
  212. package/src/media/templates/constructors/ConstructorsDesign.tsx +0 -129
  213. package/src/media/templates/constructors/basicTypes.ts +0 -0
  214. package/src/media/templates/constructors/index.ts +0 -5
  215. package/src/media/templates/constructors/props.ts +0 -28
  216. package/src/media/templates/constructors/style.scss +0 -5
  217. package/src/media/templates/constructors/types.ts +0 -47
  218. package/src/media/templates/packages/figma/README.md +0 -1
  219. package/src/media/templates/packages/figma/_.gitignore.txt +0 -29
  220. package/src/media/templates/packages/figma/ai.sample.config.ts +0 -2
  221. package/src/media/templates/packages/figma/design.config.json +0 -3
  222. package/src/media/templates/packages/figma/index.html +0 -12
  223. package/src/media/templates/packages/figma/manifest.json +0 -25
  224. package/src/media/templates/packages/figma/package.json +0 -37
  225. package/src/media/templates/packages/figma/src/App.vue +0 -9
  226. package/src/media/templates/packages/figma/src/classes/_.gitignore.txt +0 -1
  227. package/src/media/templates/packages/figma/src/code.ts +0 -16
  228. package/src/media/templates/packages/figma/src/components/_.gitignore.txt +0 -1
  229. package/src/media/templates/packages/figma/src/composables/_.gitignore.txt +0 -1
  230. package/src/media/templates/packages/figma/src/config.ts +0 -0
  231. package/src/media/templates/packages/figma/src/functions/_.gitignore.txt +0 -1
  232. package/src/media/templates/packages/figma/src/library.ts +0 -0
  233. package/src/media/templates/packages/figma/src/main.ts +0 -4
  234. package/src/media/templates/packages/figma/src/media/_.gitignore.txt +0 -1
  235. package/src/media/templates/packages/figma/src/storybook/_.gitignore.txt +0 -1
  236. package/src/media/templates/packages/figma/src/types/_.gitignore.txt +0 -1
  237. package/src/media/templates/packages/figma/src/vite-env.d.ts +0 -1
  238. package/src/media/templates/packages/figma/tsconfig.app.json +0 -12
  239. package/src/media/templates/packages/figma/tsconfig.json +0 -7
  240. package/src/media/templates/packages/figma/tsconfig.node.json +0 -8
  241. package/src/media/templates/packages/figma/vite.config.ts +0 -7
  242. package/src/media/templates/packages/library/README.md +0 -1
  243. package/src/media/templates/packages/library/_.gitignore.txt +0 -27
  244. package/src/media/templates/packages/library/ai-description.md +0 -15
  245. package/src/media/templates/packages/library/design.config.json +0 -3
  246. package/src/media/templates/packages/library/index.html +0 -12
  247. package/src/media/templates/packages/library/materials/README.md +0 -8
  248. package/src/media/templates/packages/library/materials/prompt.md +0 -45
  249. package/src/media/templates/packages/library/package.json +0 -46
  250. package/src/media/templates/packages/library/src/App.vue +0 -8
  251. package/src/media/templates/packages/library/src/classes/_.gitignore.txt +0 -1
  252. package/src/media/templates/packages/library/src/components/_.gitignore.txt +0 -1
  253. package/src/media/templates/packages/library/src/composables/_.gitignore.txt +0 -1
  254. package/src/media/templates/packages/library/src/functions/_.gitignore.txt +0 -1
  255. package/src/media/templates/packages/library/src/library.ts +0 -0
  256. package/src/media/templates/packages/library/src/main.ts +0 -6
  257. package/src/media/templates/packages/library/src/style.scss +0 -0
  258. package/src/media/templates/packages/library/src/types/_.gitignore.txt +0 -1
  259. package/src/media/templates/packages/library/src/vite-env.d.ts +0 -1
  260. package/src/media/templates/packages/library/tsconfig.app.json +0 -11
  261. package/src/media/templates/packages/library/tsconfig.json +0 -7
  262. package/src/media/templates/packages/library/tsconfig.node.json +0 -7
  263. package/src/media/templates/packages/library/vite.config.ts +0 -14
  264. package/src/media/templates/packages/nitro/README.md +0 -1
  265. package/src/media/templates/packages/nitro/_.gitignore.txt +0 -28
  266. package/src/media/templates/packages/nitro/index.html +0 -2
  267. package/src/media/templates/packages/nitro/package.json +0 -25
  268. package/src/media/templates/packages/nitro/server/plugins/ui-plugin.ts +0 -7
  269. package/src/media/templates/packages/nitro/server/routes/api/hello.ts +0 -13
  270. package/src/media/templates/packages/nitro/src/App.vue +0 -10
  271. package/src/media/templates/packages/nitro/src/assets/_.gitignore.txt +0 -0
  272. package/src/media/templates/packages/nitro/src/components/_.gitignore.txt +0 -0
  273. package/src/media/templates/packages/nitro/src/composables/_.gitignore.txt +0 -0
  274. package/src/media/templates/packages/nitro/src/entry-client.ts +0 -13
  275. package/src/media/templates/packages/nitro/src/entry-server.ts +0 -29
  276. package/src/media/templates/packages/nitro/src/main.ts +0 -14
  277. package/src/media/templates/packages/nitro/src/pages/HomePage.vue +0 -8
  278. package/src/media/templates/packages/nitro/src/router.ts +0 -11
  279. package/src/media/templates/packages/nitro/src/style.scss +0 -0
  280. package/src/media/templates/packages/nitro/src/templates/main.html +0 -21
  281. package/src/media/templates/packages/nitro/src/vite-env.d.ts +0 -11
  282. package/src/media/templates/packages/nitro/tsconfig.app.json +0 -14
  283. package/src/media/templates/packages/nitro/tsconfig.json +0 -7
  284. package/src/media/templates/packages/nitro/tsconfig.node.json +0 -12
  285. package/src/media/templates/packages/nitro/vite.config.ts +0 -17
  286. package/src/media/templates/packages/project/README.md +0 -1
  287. package/src/media/templates/packages/project/_.gitignore.txt +0 -28
  288. package/src/media/templates/packages/project/design.config.json +0 -3
  289. package/src/media/templates/packages/project/index.html +0 -12
  290. package/src/media/templates/packages/project/materials/README.md +0 -8
  291. package/src/media/templates/packages/project/materials/prompt.md +0 -41
  292. package/src/media/templates/packages/project/package.json +0 -13
  293. package/src/media/templates/packages/project/public/_.gitignore.txt +0 -0
  294. package/src/media/templates/packages/project/src/App.vue +0 -12
  295. package/src/media/templates/packages/project/src/assets/_.gitignore.txt +0 -0
  296. package/src/media/templates/packages/project/src/components/_.gitignore.txt +0 -0
  297. package/src/media/templates/packages/project/src/composables/_.gitignore.txt +0 -0
  298. package/src/media/templates/packages/project/src/main.ts +0 -6
  299. package/src/media/templates/packages/project/src/style.scss +0 -0
  300. package/src/media/templates/packages/project/src/vite-env.d.ts +0 -1
  301. package/src/media/templates/packages/project/tsconfig.app.json +0 -11
  302. package/src/media/templates/packages/project/tsconfig.json +0 -7
  303. package/src/media/templates/packages/project/tsconfig.node.json +0 -7
  304. package/src/media/templates/packages/project/vite.config.ts +0 -7
  305. package/src/media/templates/prompts/aiCodeGlobalPrompt.en.md +0 -22
  306. package/src/media/templates/prompts/aiCodeGlobalPrompt.ru.md +0 -21
  307. package/src/media/templates/prompts/aiCodeVuePrompt.en.md +0 -17
  308. package/src/media/templates/prompts/aiCodeVuePrompt.ru.md +0 -17
  309. package/src/media/templates/prompts/aiDocClassPrompt.en.txt +0 -63
  310. package/src/media/templates/prompts/aiDocClassPrompt.ru.txt +0 -63
  311. package/src/media/templates/prompts/aiDocComposablePrompt.en.txt +0 -67
  312. package/src/media/templates/prompts/aiDocComposablePrompt.ru.txt +0 -67
  313. package/src/media/templates/prompts/aiDocFunctionPrompt.en.txt +0 -57
  314. package/src/media/templates/prompts/aiDocFunctionPrompt.ru.txt +0 -57
  315. package/src/media/templates/prompts/componentPrompt.en.txt +0 -182
  316. package/src/media/templates/prompts/componentPrompt.ru.txt +0 -182
  317. package/src/media/templates/prompts/demoClassEn.mdx +0 -111
  318. package/src/media/templates/prompts/demoClassRu.mdx +0 -111
  319. package/src/media/templates/prompts/demoComponentEn.mdx +0 -282
  320. package/src/media/templates/prompts/demoComponentRu.mdx +0 -282
  321. package/src/media/templates/prompts/demoComposableEn.mdx +0 -103
  322. package/src/media/templates/prompts/demoComposableRu.mdx +0 -103
  323. package/src/media/templates/prompts/demoDocEn.mdx +0 -30
  324. package/src/media/templates/prompts/demoDocRu.mdx +0 -30
  325. package/src/media/templates/viteComponentTemplateConfig.ts +0 -14
  326. package/src/types/aiTypes.ts +0 -19
  327. package/src/types/configTypes.ts +0 -69
  328. package/src/types/designTypes.ts +0 -167
  329. package/src/types/figmaApiTypes.ts +0 -337
  330. package/src/types/gitTypes.ts +0 -59
  331. package/src/types/libraryTypes.ts +0 -49
  332. package/src/types/propertyTypes.ts +0 -586
  333. package/src/types/screenshotTypes.ts +0 -55
  334. package/src/types/webTypes.ts +0 -134
  335. package/src/vite-env.d.ts +0 -1
@@ -1,258 +0,0 @@
1
- // export:none
2
-
3
- import { getNameDirByPaths } from '../../functions/getNameDirByPaths'
4
- import { useAi } from '../../composables/useAi'
5
-
6
- import { dirname } from 'node:path'
7
- import { fileURLToPath } from 'node:url'
8
- import { hasNativeDirname } from '../../functions/hasNativeDirname'
9
-
10
- import { PropertiesConfig } from '../Properties/PropertiesConfig'
11
- import { BuildItem } from '../BuildItem'
12
- import { ComponentWikiFile } from './ComponentWikiFile'
13
-
14
- import type { AiAbstract } from '../Ai/AiAbstract'
15
-
16
- import {
17
- UI_DIR_TEMPORARY,
18
- UI_DIR_WIKI,
19
- UI_DIRS_COMPONENTS
20
- } from '../../config'
21
-
22
- const dirnamePath = hasNativeDirname()
23
- ? __dirname
24
- : dirname(fileURLToPath(import.meta.url))
25
-
26
- /** Sample templates directory / Директория с шаблонами */
27
- const DIR_SAMPLE = [dirnamePath, '..', '..', 'media', 'templates', 'prompts']
28
- /** Sample AI prompt template path / Путь к шаблону AI-промпта */
29
- const FILE_PROMPT_SAMPLE = [...DIR_SAMPLE, 'componentPrompt.en.txt']
30
- /** Sample demo component MDX path / Путь к MDX демо-компоненту */
31
- const FILE_DEMO_SAMPLE = [...DIR_SAMPLE, 'demoComponentEn.mdx']
32
- /** Marker indicating no changes needed / Метка, указывающая на отсутствие изменений */
33
- const MARK_FULL = '--FULL--'
34
-
35
- /**
36
- * Generates wiki artifacts (code snapshot, stories, mdx) for a component.
37
- * Uses a temporary build + AI prompt to (re)create documentation.
38
- *
39
- * Генерирует wiki-артефакты (снимок кода, stories, mdx) для компонента.
40
- * Использует временный билд + AI промпт для (пере)создания документации.
41
- */
42
- export class ComponentWiki {
43
- protected readonly build: BuildItem
44
-
45
- /** Code file (original or AI regenerated) / Файл кода (оригинал или пересозданный ИИ) */
46
- protected readonly codeFile: ComponentWikiFile
47
- /** Types file (original or AI regenerated) / Файл типов (оригинал или пересозданный ИИ) */
48
- protected readonly typesFile: ComponentWikiFile
49
- /** Stories file (Storybook) / Файл сторис (Storybook) */
50
- protected readonly storiesFile: ComponentWikiFile
51
- /** MDX documentation file / Файл MDX документации */
52
- protected readonly mdFile: ComponentWikiFile
53
-
54
- /** AI instance / Экземпляр ИИ */
55
- protected readonly ai?: AiAbstract
56
-
57
- /** Description from AI / Описание от ИИ */
58
- protected description?: string
59
-
60
- /**
61
- * Constructor
62
- * @param path component relative path inside components dirs/ относительный путь компонента внутри директорий компонентов
63
- * @param prompt additional custom prompt text to append/ дополнительный кастомный текст промпта для добавления
64
- */
65
- constructor(
66
- protected readonly path: string,
67
- protected readonly prompt: string = ''
68
- ) {
69
- this.build = new BuildItem(
70
- `${this.getRootComponent().join('/')}/index.ts`
71
- )
72
-
73
- this.codeFile = new ComponentWikiFile([
74
- ...this.getRootComponent(),
75
- `${this.getName()}.vue`
76
- ], false, false)
77
-
78
- this.typesFile = new ComponentWikiFile([
79
- ...this.getRootComponent(),
80
- 'types.ts'
81
- ], false, false)
82
-
83
- this.storiesFile = new ComponentWikiFile([
84
- ...this.getPathWiki(),
85
- `${this.getName()}.stories.ts`
86
- ], false, false)
87
-
88
- this.mdFile = new ComponentWikiFile([
89
- ...this.getPathWiki(),
90
- `${this.getName()}.mdx`
91
- ], true, false)
92
-
93
- this.ai = useAi()
94
- }
95
-
96
- /**
97
- * Orchestrates build + file extraction + AI generation.
98
- *
99
- * Оркестрирует билд + извлечение файлов + генерацию через ИИ.
100
- */
101
- make(): void {
102
- console.log('Component wiki:', this.path, '...')
103
-
104
- if (this.ai) {
105
- this.build
106
- .make()
107
- .then((status) => {
108
- if (status) {
109
- this.makeAi()
110
- this.aiGenerate()
111
- .then(() => {
112
- console.log('...', 'End')
113
- this.build.removeDir()
114
- })
115
- } else {
116
- console.log('Error!', this.path)
117
- }
118
- })
119
- } else {
120
- console.error('AI is not configured.')
121
- }
122
- }
123
-
124
- /**
125
- * Returns root path segments for the component.
126
- *
127
- * Возвращает сегменты корневого пути компонента.
128
- * @protected
129
- */
130
- protected getRootComponent(): string[] {
131
- return [
132
- ...UI_DIRS_COMPONENTS,
133
- ...this.path.split('/')
134
- ]
135
- }
136
-
137
- /**
138
- * Returns wiki directory path segments.
139
- *
140
- * Возвращает сегменты пути wiki директории.
141
- * @protected
142
- */
143
- protected getPathWiki(): string[] {
144
- return [
145
- ...this.getRootComponent(),
146
- UI_DIR_WIKI
147
- ]
148
- }
149
-
150
- /**
151
- * Returns temporary directory path segments.
152
- *
153
- * Возвращает сегменты пути временной директории.
154
- * @protected
155
- */
156
- protected getPathTemporary(): string[] {
157
- return [
158
- ...this.getPathWiki(),
159
- UI_DIR_TEMPORARY
160
- ]
161
- }
162
-
163
- /**
164
- * Derives component folder name.
165
- *
166
- * Получает имя директории компонента.
167
- * @protected
168
- */
169
- protected getName(): string {
170
- return String(getNameDirByPaths(this.getRootComponent()))
171
- }
172
-
173
- /**
174
- * Reads the demo file content.
175
- *
176
- * Читает содержимое демо-файла.
177
- * @protected
178
- */
179
- protected readDemo(): string {
180
- return new ComponentWikiFile(FILE_DEMO_SAMPLE).read()
181
- }
182
-
183
- /**
184
- * Reads the prompt template.
185
- *
186
- * Читает шаблон промпта.
187
- * @protected
188
- */
189
- protected readPrompt(): string {
190
- return new ComponentWikiFile(FILE_PROMPT_SAMPLE)
191
- .read()
192
- .replace(/\[wikiLanguage]/g, PropertiesConfig.getWikiLanguage())
193
- }
194
-
195
- /**
196
- * Prepares context for AI.
197
- *
198
- * Подготавливает контекст для ИИ.
199
- * @protected
200
- */
201
- protected makeAi(): void {
202
- if (this.ai) {
203
- this.ai.addContent(`Code: ${this.build.getCode()}`)
204
- this.ai.addContent(`Original code: ${this.codeFile.read()}`)
205
- this.ai.addContent(`Original types.ts: ${this.typesFile.read()}`)
206
- this.ai.addContent(`Demo (only for template analysis, all data is fake): ${this.readDemo()}`)
207
- this.ai.addContent(`Original *.stories.ts: ${this.storiesFile.read()}`)
208
- this.ai.addContent(`Original MDX: ${this.mdFile.read()}`)
209
- }
210
- }
211
-
212
- /**
213
- * Invokes AI generation and splits result into types / stories / mdx.
214
- *
215
- * Вызывает генерацию через ИИ и делит результат на types / stories / mdx.
216
- * @protected
217
- */
218
- protected async aiGenerate(): Promise<void> {
219
- if (this.ai) {
220
- const generate = await this.ai.generate(
221
- this.readPrompt()
222
- )
223
-
224
- if (generate) {
225
- const read = generate.split('#########')
226
-
227
- if (read?.[0]) {
228
- this.description = read[0].trim()
229
- }
230
-
231
- if (
232
- read?.[1]
233
- && !read[1].match(MARK_FULL)
234
- ) {
235
- this.codeFile.write(read[1])
236
- }
237
-
238
- if (
239
- read?.[2]
240
- && !read[2].match(MARK_FULL)
241
- ) {
242
- this.typesFile.write(read[2])
243
- }
244
-
245
- if (
246
- read?.[3]
247
- && !read[3].match(MARK_FULL)
248
- ) {
249
- this.storiesFile.write(read[3])
250
- }
251
-
252
- if (read?.[4]) {
253
- this.mdFile.write(read[4])
254
- }
255
- }
256
- }
257
- }
258
- }
@@ -1,138 +0,0 @@
1
- // export:none
2
-
3
- import { Datetime, isFilled } from '@dxtmisha/functional-basic'
4
-
5
- import { PropertiesFile } from '../Properties/PropertiesFile'
6
-
7
- /** Regex to match date in content / Регекс для поиска даты в содержимом */
8
- const DATE_UPDATED_MATCH = /\*\*Date: (.*?)\.\*\*/i
9
-
10
- /**
11
- * Utility class for reading and writing a single wiki component file.
12
- *
13
- * Утилитный класс для чтения и записи одного файла wiki компонента.
14
- */
15
- export class ComponentWikiFile {
16
- /**
17
- * Constructor.
18
- *
19
- * Конструктор.
20
- * @param paths target file path segments / сегменты пути целевого файла
21
- * @param isDate whether to extract date from content / извлекать ли дату из содержимого
22
- * @param isOld whether to keep old version of file / сохранять ли старую версию файла
23
- */
24
- constructor(
25
- protected readonly paths: string[],
26
- protected readonly isDate: boolean = false,
27
- protected readonly isOld: boolean = true
28
- ) {
29
- }
30
-
31
- /**
32
- * Returns absolute path to file.
33
- *
34
- * Возвращает абсолютный путь к файлу.
35
- */
36
- getPath(): string {
37
- return PropertiesFile.joinPath(this.paths)
38
- }
39
-
40
- /**
41
- * Returns date from file content.
42
- *
43
- * Возвращает дату из содержимого файла.
44
- */
45
- getDate(): Datetime {
46
- const content = this.read()
47
- return this.extractDateFromContent(content)
48
- }
49
-
50
- /**
51
- * Reads file content as string.
52
- *
53
- * Читает содержимое файла как строку.
54
- */
55
- read(): string {
56
- return PropertiesFile.readFile<string>(this.paths) ?? ''
57
- }
58
-
59
- /**
60
- * Writes content to file.
61
- *
62
- * Записывает содержимое в файл.
63
- * @param content content to write / содержимое для записи
64
- */
65
- write(content: string): void {
66
- if (isFilled(content)) {
67
- const contentOld = this.read()
68
- let contentEdit = content.trim()
69
-
70
- if (contentEdit.startsWith('```')) {
71
- contentEdit = contentEdit
72
- .replace(/^```(ts|md)/, '')
73
- .replace(/```$/, '')
74
- .trim()
75
- }
76
-
77
- if (contentEdit !== contentOld.trim()) {
78
- if (
79
- this.isOld
80
- && isFilled(contentOld.trim())
81
- ) {
82
- PropertiesFile.writeByPath(
83
- `${PropertiesFile.joinPath(this.paths)}__old.txt`,
84
- contentOld
85
- )
86
- }
87
-
88
- PropertiesFile.writeByPath(
89
- this.paths,
90
- this.addDate(contentEdit + '\r\n')
91
- )
92
- }
93
- }
94
- }
95
-
96
- /**
97
- * Extracts date from content string.
98
- *
99
- * Извлекает дату из строки содержимого.
100
- * @param content content string / строка содержимого
101
- * @protected
102
- */
103
- protected extractDateFromContent(content: string): Datetime {
104
- const match = content.match(DATE_UPDATED_MATCH)
105
- let date = '1970-01-01'
106
-
107
- if (
108
- match
109
- && match?.[1]
110
- ) {
111
- date = match[1]
112
- }
113
-
114
- return new Datetime(date, 'full')
115
- }
116
-
117
- /**
118
- * Adds current date to content if isDate is true.
119
- *
120
- * Добавляет текущую дату в содержимое, если isDate равно true.
121
- * @param content content string / строка содержимого
122
- * @protected
123
- */
124
- protected addDate(content: string): string {
125
- if (this.isDate) {
126
- const date = new Datetime(new Date(), 'full').standard()
127
- const dateString = `\n\r**Date: ${date}.**\r\n`
128
-
129
- if (DATE_UPDATED_MATCH.test(content)) {
130
- return `${content.replace(DATE_UPDATED_MATCH, '').trim()}\r\n${dateString}`
131
- }
132
-
133
- return `${content}${dateString}`
134
- }
135
-
136
- return content
137
- }
138
- }
@@ -1,243 +0,0 @@
1
- // export:none
2
-
3
- import { dirname } from 'node:path'
4
- import { fileURLToPath } from 'node:url'
5
- import { toArray, toCamelCase, toCamelCaseFirst, toKebabCase } from '@dxtmisha/functional-basic'
6
- import { hasNativeDirname } from '../../functions/hasNativeDirname'
7
- import { getPackageJson } from '../../functions/getPackageJson'
8
-
9
- import { PropertiesConfig } from '../Properties/PropertiesConfig'
10
- import { PropertiesFile } from '../Properties/PropertiesFile'
11
- import { DesignStructure } from './DesignStructure'
12
- import { DesignReplace } from './DesignReplace'
13
-
14
- import { UI_FILE_PACKAGE } from '../../config'
15
-
16
- const dirnamePath = hasNativeDirname()
17
- ? __dirname
18
- : dirname(fileURLToPath(import.meta.url))
19
-
20
- const DIR_SAMPLE = [dirnamePath, '..', '..', 'media', 'templates']
21
-
22
- /**
23
- * Base abstract class for generating script files and design system components.
24
- * Provides unified logic for template reading, data transformation, and file writing.
25
- *
26
- * Базовый абстрактный класс для генерации файлов скриптов и компонентов дизайн-системы.
27
- * Обеспечивает единую логику чтения шаблонов, трансформации данных и записи файлов.
28
- */
29
- export abstract class DesignCommand {
30
- protected abstract DIR_SAMPLE: string
31
- protected abstract dir: string[]
32
-
33
- protected structure?: DesignStructure
34
-
35
- /**
36
- * Constructor for DesignCommand.
37
- *
38
- * Конструктор для DesignCommand.
39
- * @param command component name or command identifier / название компонента или идентификатор команды
40
- * @param options additional key-value parameters / дополнительные параметры ключ-значение
41
- */
42
- protected constructor(
43
- protected readonly command: string,
44
- protected readonly options: Record<string, string> = {}
45
- ) {
46
- }
47
-
48
- /**
49
- * Main entry point for executing the command.
50
- * Validates input and triggers the primary initialization logic.
51
- *
52
- * Основная точка входа для выполнения команды.
53
- * Проверяет входные данные и запускает основную логику инициализации.
54
- */
55
- make(): void {
56
- if (this.command) {
57
- console.info(`-- ${PropertiesConfig.getDesignName()}.${this.command}:`)
58
-
59
- this.initMain()
60
-
61
- console.info('-- end')
62
- } else {
63
- console.info('-- not name')
64
- }
65
- }
66
-
67
- /**
68
- * Initializes the creation of all files for the current team.
69
- *
70
- * Инициализирует создание всех файлов для текущей команды.
71
- */
72
- protected abstract initMain(): void
73
-
74
- /**
75
- * Checks the presence of a file.
76
- *
77
- * Проверяет наличие файла.
78
- * @param name file name/ название файла
79
- */
80
- protected isFile(name: string | string[]): boolean {
81
- return PropertiesFile.is([...this.dir, ...toArray(name)])
82
- }
83
-
84
- /**
85
- * Returns the names for the team.
86
- *
87
- * Возвращает названия для команды.
88
- */
89
- protected getCommand(): string {
90
- return this.command
91
- }
92
-
93
- protected getName(): string {
94
- return toCamelCaseFirst(this.getCommand())
95
- }
96
-
97
- protected getNameMin(): string {
98
- return toCamelCase(this.getCommand())
99
- }
100
-
101
- protected getCode(): string {
102
- return toKebabCase(this.getCommand())
103
- }
104
-
105
- protected getFullName(): string {
106
- return toCamelCaseFirst(`${PropertiesConfig.getDesignName()}-${this.getCommand()}`)
107
- }
108
-
109
- protected getProjectName(): string {
110
- return toCamelCaseFirst(PropertiesConfig.getProjectName())
111
- }
112
-
113
- /**
114
- * Returns a structure object.
115
- *
116
- * Возвращает объект структуры.
117
- */
118
- protected getStructure(): DesignStructure {
119
- if (!this.structure) {
120
- this.structure = new DesignStructure(this.getCommand())
121
- }
122
-
123
- return this.structure
124
- }
125
-
126
- /**
127
- * Returns an object for template transformation.
128
- *
129
- * Возвращает объект для преобразования шаблона.
130
- * @param sample property template/ шаблон свойства
131
- */
132
- protected getReplace(sample?: string): DesignReplace {
133
- return new DesignReplace(
134
- this.getStructure(),
135
- this.DIR_SAMPLE,
136
- sample ?? ''
137
- )
138
- }
139
-
140
- /**
141
- * Reading.
142
- *
143
- * Читает файл.
144
- * @param name file name/ название файла
145
- */
146
- protected read(name: string | string[]): string | undefined {
147
- return PropertiesFile.readFile<string>([...this.dir, ...toArray(name)])
148
- }
149
-
150
- /**
151
- * This code reads a template.
152
- *
153
- * Читает шаблона.
154
- * @param name file name/ название файла
155
- */
156
- protected readSample(name: string): string | undefined {
157
- return PropertiesFile.readFile<string>([...DIR_SAMPLE, this.DIR_SAMPLE, name])
158
- }
159
-
160
- /**
161
- * Reads the file itself or its template if it is not found.
162
- *
163
- * Читает сам файл или его шаблон, если его нет.
164
- * @param name file name/ название файла
165
- * @param callback the function is executed if there is no such file/ функция выполняется, если такого файла нет
166
- */
167
- protected readDefinable(name: string, callback?: (sample: DesignReplace) => void): DesignReplace {
168
- const fileName = this.getReplace().getNameFile(name)
169
-
170
- if (this.isFile(fileName)) {
171
- return this.getReplace(this.read(fileName))
172
- }
173
-
174
- const replace = this.getReplace(this.readSample(name))
175
-
176
- if (callback) {
177
- callback(replace)
178
- }
179
-
180
- replace
181
- .replaceOnce()
182
- .replaceName()
183
-
184
- return replace
185
- }
186
-
187
- /**
188
- * Creating or rewriting a file.
189
- *
190
- * Создание или перезапись файла.
191
- * @param name file name/ название файла
192
- * @param value values for storage/ значения для хранения
193
- */
194
- protected write(name: string, value: string): void {
195
- this.console(name)
196
-
197
- PropertiesFile.write(
198
- this.dir,
199
- name,
200
- value,
201
- ''
202
- )
203
- }
204
-
205
- protected updatePackage(
206
- namePath: string,
207
- value: any
208
- ): this {
209
- const packageFile = getPackageJson()
210
- let focus: Record<string, any> | any | undefined = packageFile
211
-
212
- if (packageFile && focus) {
213
- const names = namePath.split('|')
214
- const key = names.pop()
215
-
216
- for (const name of names) {
217
- if (!(name in focus)) {
218
- focus[name] = {}
219
- }
220
-
221
- focus = focus[name]
222
- }
223
-
224
- if (key) {
225
- focus[key] = value
226
- }
227
-
228
- PropertiesFile.writeByPath(UI_FILE_PACKAGE, packageFile)
229
- }
230
-
231
- return this
232
- }
233
-
234
- /**
235
- * Outputting data to the console.
236
- *
237
- * Вывод данных в консоль.
238
- * @param name file name/ название файла
239
- */
240
- protected console(name: string): void {
241
- console.info(`-- ${this.isFile(name) ? 'update' : 'create'} ${name}`)
242
- }
243
- }