@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,190 +0,0 @@
1
- import {
2
- FIGMA_API_URL,
3
- FigmaApiEndpoint,
4
- type FigmaFileImagesParams,
5
- type FigmaFileImagesResult,
6
- type FigmaFileNodesParams,
7
- type FigmaFileNodesResult,
8
- type FigmaFilesParams,
9
- type FigmaFilesResult,
10
- type FigmaFileStylesResult,
11
- type FigmaStylesResult
12
- } from '../types/figmaApiTypes'
13
-
14
- /**
15
- * Class for interacting with the Figma REST API.
16
- *
17
- * Класс для взаимодействия с Figma REST API.
18
- */
19
- export class FigmaApi {
20
- constructor(
21
- protected token: string,
22
- protected fileKey: string,
23
- protected nodeId?: string
24
- ) {
25
- }
26
-
27
- /**
28
- * Retrieves file content via the files endpoint.
29
- *
30
- * Получает содержимое файла через эндпоинт files.
31
- * @param parameters query parameters / параметры запроса
32
- * @returns file content or undefined / содержимое файла или undefined
33
- */
34
- async files(parameters: FigmaFilesParams = {}): Promise<FigmaFilesResult | undefined> {
35
- return await this.fetch(FigmaApiEndpoint.files, parameters)
36
- }
37
-
38
- /**
39
- * Retrieves specific nodes from the file via the fileNodes endpoint.
40
- *
41
- * Получает конкретные узлы из файла через эндпоинт fileNodes.
42
- * @param parameters query parameters / параметры запроса
43
- * @returns node data or undefined / данные узлов или undefined
44
- */
45
- async fileNodes(parameters: FigmaFileNodesParams): Promise<FigmaFileNodesResult | undefined> {
46
- return await this.fetch(FigmaApiEndpoint.fileNodes, parameters)
47
- }
48
-
49
- /**
50
- * Retrieves images for the file.
51
- *
52
- * Получает изображения для файла.
53
- * @param parameters query parameters / параметры запроса
54
- * @returns image data or undefined / данные изображения или undefined
55
- */
56
- async fileImages(parameters: FigmaFileImagesParams): Promise<FigmaFileImagesResult | undefined> {
57
- return await this.fetch(FigmaApiEndpoint.fileImages, parameters)
58
- }
59
-
60
- /**
61
- * Retrieves specific nodes from the file via the fileStyles endpoint.
62
- *
63
- * Получает конкретные узлы из файла через эндпоинт fileStyles.
64
- * @returns file styles data or undefined / данные стилей файла или undefined
65
- */
66
- async fileStyles(): Promise<FigmaFileStylesResult | undefined> {
67
- return await this.fetch(FigmaApiEndpoint.fileStyles)
68
- }
69
-
70
- /**
71
- * Retrieves specific style by key via the styles endpoint.
72
- *
73
- * Получает конкретный стиль по ключу через эндпоинт styles.
74
- * @param key the style key / ключ стиля
75
- * @returns style data or undefined / данные стиля или undefined
76
- */
77
- async styles(key: string): Promise<FigmaStylesResult | undefined> {
78
- return await this.fetch(FigmaApiEndpoint.styles, undefined, key)
79
- }
80
-
81
- /**
82
- * Sets the API token.
83
- *
84
- * Устанавливает токен API.
85
- * @param token the API token / токен API
86
- * @returns this instance for chaining / этот экземпляр для цепочки вызовов
87
- */
88
- setToken(token: string): this {
89
- this.token = token
90
- return this
91
- }
92
-
93
- /**
94
- * Sets the file key.
95
- *
96
- * Устанавливает ключ файла.
97
- * @param fileKey the file key / ключ файла
98
- * @returns this instance for chaining / этот экземпляр для цепочки вызовов
99
- */
100
- setFileKey(fileKey: string): this {
101
- this.fileKey = fileKey
102
- return this
103
- }
104
-
105
- /**
106
- * Sets the node ID.
107
- *
108
- * Устанавливает ID узла.
109
- * @param nodeId the node ID (optional) / ID узла (необязательно)
110
- * @returns this instance for chaining / этот экземпляр для цепочки вызовов
111
- */
112
- setNodeId(nodeId?: string): this {
113
- this.nodeId = nodeId
114
- return this
115
- }
116
-
117
- /**
118
- * Constructs the request URL for the Figma API.
119
- *
120
- * Конструирует URL-адрес запроса для Figma API.
121
- * @param method the API endpoint method / метод конечной точки API
122
- * @param parameters additional parameters for the request / дополнительные параметры для запроса
123
- * @param key the key for specific endpoints (e.g., styles) / ключ для конкретных эндпоинтов (например, styles)
124
- * @returns the constructed URL / сконструированный URL
125
- */
126
- getUrl(
127
- method: FigmaApiEndpoint,
128
- parameters?: Record<string, any>,
129
- key?: string
130
- ) {
131
- const request = {}
132
- const endpoint = method
133
- .replace(':file_key', this.fileKey)
134
- .replace(':key', key ?? '')
135
-
136
- if (this.nodeId) {
137
- Object.assign(request, { 'node-id': this.nodeId })
138
- }
139
-
140
- if (parameters) {
141
- Object.assign(request, parameters)
142
- }
143
-
144
- console.log('request', request, Object.keys(request).length)
145
-
146
- const queryParams = Object.keys(request).length > 0
147
- ? `?${new URLSearchParams(request).toString()}`
148
- : ''
149
-
150
- return `${FIGMA_API_URL}${endpoint}${queryParams}`
151
- }
152
-
153
- /**
154
- * Generic fetch method for making API requests.
155
- *
156
- * Общий метод fetch для выполнения запросов к API.
157
- * @param method the API endpoint method / метод конечной точки API
158
- * @param parameters parameters for the request / параметры запроса
159
- * @param key the key for specific endpoints (e.g., styles) / ключ для конкретных эндпоинтов (например, styles)
160
- * @returns the response data or undefined / данные ответа или undefined
161
- */
162
- protected async fetch(
163
- method: FigmaApiEndpoint,
164
- parameters: Record<string, any> = {},
165
- key?: string
166
- ): Promise<any> {
167
- const url = this.getUrl(method, parameters, key)
168
- const headers = {
169
- 'X-Figma-Token': this.token,
170
- 'Content-Type': 'application/json'
171
- }
172
-
173
- console.log('url', url)
174
-
175
- const response = await fetch(url, {
176
- method: 'GET',
177
- headers
178
- })
179
-
180
- console.log('response', response.ok)
181
-
182
- if (response.ok) {
183
- return response.json()
184
- }
185
-
186
- console.error(`Error fetching Figma API: ${response.status} ${response.statusText}`)
187
-
188
- return undefined
189
- }
190
- }
@@ -1,261 +0,0 @@
1
- import { execSync } from 'node:child_process'
2
- import { Datetime, forEach, removeCommonPrefix } from '@dxtmisha/functional-basic'
3
-
4
- import { PropertiesFile } from '../Properties/PropertiesFile'
5
-
6
- import { type GitFileList, GitStatus } from '../../types/gitTypes'
7
-
8
- /**
9
- * Class for reading information from Git repository.
10
- *
11
- * Класс для чтения информации из Git репозитория.
12
- */
13
- export class GitRead {
14
- /**
15
- * Gets list of files with their metadata.
16
- *
17
- * Получает список файлов с их метаданными.
18
- * @param filter - file filter function / функция фильтрации файлов
19
- */
20
- static getList(
21
- filter?: (file: string) => boolean
22
- ): GitFileList {
23
- const dir = this.getDirPrefix()
24
-
25
- return forEach(
26
- this.getFilesPath(),
27
- (file) => {
28
- if (
29
- filter
30
- && !filter(file)
31
- ) {
32
- return
33
- }
34
-
35
- const date = this.getDate(this.getFileDate(file))
36
-
37
- return {
38
- path: file,
39
- pathByOS: this.splitPath(file),
40
- pathFull: `${dir}${file}`,
41
- date,
42
- status: undefined
43
- }
44
- }
45
- ) as GitFileList
46
- }
47
-
48
- /**
49
- * Gets list of files in porcelain format with their metadata.
50
- *
51
- * Получает список файлов в формате porcelain с их метаданными.
52
- * @param filter - file filter function / функция фильтрации файлов
53
- */
54
- static getListPorcelain(
55
- filter?: (file: string) => boolean
56
- ): GitFileList {
57
- const date = this.getDate()
58
- const prefix = this.getDirPrefix()
59
-
60
- return forEach(
61
- this.getFilesPorcelain(),
62
- (file) => {
63
- const data = file
64
- .replace(/ {2,}/, ' ')
65
- .split(' ', 2)
66
-
67
- const status = data[0] as GitStatus
68
- const path: string = data[1] ?? ''
69
-
70
- if (
71
- filter
72
- && !filter(path)
73
- ) {
74
- return
75
- }
76
-
77
- const pathCommonPrefix = removeCommonPrefix(path, prefix)
78
- const pathByOS = this.splitPath(pathCommonPrefix)
79
- const fileDate = PropertiesFile.getTime(pathByOS)
80
-
81
- return {
82
- path: pathCommonPrefix,
83
- pathByOS,
84
- pathFull: path,
85
- date: fileDate ?? date,
86
- status
87
- }
88
- }
89
- ) as GitFileList
90
- }
91
-
92
- /**
93
- * Gets unique list of files from both standard and porcelain lists.
94
- *
95
- * Получает уникальный список файлов из обоих стандартных и porcelain списков.
96
- * @param filter - file filter function / функция фильтрации файлов
97
- */
98
- static getListUnique(
99
- filter: (file: string) => boolean
100
- ): GitFileList {
101
- return this.mergeUnique(
102
- this.getListPorcelain(filter),
103
- this.getList(filter)
104
- )
105
- }
106
-
107
- /**
108
- * Gets list of files by directory with .ts extension, excluding test files.
109
- *
110
- * Получает список файлов по директории с расширением .ts, исключая тестовые файлы.
111
- * @param directory - directory path or regex / путь к директории или регулярное выражение
112
- */
113
- static getListByDirectory(
114
- directory: string | RegExp
115
- ) {
116
- return this.getListUnique(
117
- (file: string) => Boolean(
118
- file.match(directory)
119
- && file.endsWith('.ts')
120
- && !file.endsWith('.test.ts')
121
- )
122
- )
123
- }
124
-
125
- /**
126
- * Gets list of class files (*.ts in /classes/ directory).
127
- *
128
- * Получает список файлов классов (*.ts в директории /classes/).
129
- */
130
- static getClassesList(): GitFileList {
131
- return this.getListByDirectory('/classes/')
132
- }
133
-
134
- /**
135
- * Gets list of class files (*.ts in /classes/ directory).
136
- *
137
- * Получает список файлов классов (*.ts в директории /classes/).
138
- */
139
- static getFunctionsList(): GitFileList {
140
- return this.getListByDirectory('/functions/')
141
- }
142
-
143
- /**
144
- * Gets list of all file paths in repository.
145
- *
146
- * Получает список всех путей файлов в репозитории.
147
- */
148
- static getFilesPath(): string[] {
149
- return forEach(
150
- this.exec('git ls-tree -r --name-only HEAD').split('\n'),
151
- file => file.trim()
152
- )
153
- }
154
-
155
- /**
156
- * Gets list of files in porcelain format.
157
- *
158
- * Получает список файлов в формате porcelain.
159
- */
160
- static getFilesPorcelain(): string[] {
161
- return forEach(
162
- this.exec('git status --porcelain').split('\n'),
163
- file => file.trim()
164
- )
165
- }
166
-
167
- /**
168
- * Gets the date of the last commit for a file.
169
- *
170
- * Получает дату последнего коммита для файла.
171
- * @param filePath - path to file / путь к файлу
172
- */
173
- static getFileDate(filePath: string): string {
174
- return this.exec(`git log -1 --format="%ci" -- "${filePath}"`)
175
- }
176
-
177
- /**
178
- * Gets the directory prefix of the current Git repository.
179
- *
180
- * Получает префикс директории текущего Git репозитория.
181
- */
182
- static getDirPrefix(): string {
183
- return this.exec('git rev-parse --show-prefix')
184
- }
185
-
186
- /**
187
- * Formats a date string to standard full format.
188
- *
189
- * Форматирует строку даты в стандартный полный формат.
190
- * @param date - date string / строка даты
191
- */
192
- static getDate(date?: string): string {
193
- return new Datetime(date)
194
- .setType('full')
195
- .standard()
196
- }
197
-
198
- /**
199
- * Filters a list of Git files by the current directory prefix.
200
- *
201
- * Фильтрует список файлов Git по префиксу текущей директории.
202
- * @param list - list of Git files / список файлов Git
203
- */
204
- static filterByDirectory(
205
- list: GitFileList
206
- ): GitFileList {
207
- const dir = this.getDirPrefix()
208
-
209
- return list.filter(item => item.pathFull.startsWith(dir))
210
- }
211
-
212
- /**
213
- * Merges two lists of Git files, ensuring uniqueness by file path.
214
- *
215
- * Объединяет два списка файлов Git, обеспечивая уникальность по пути файла.
216
- * @param listA - first list to merge / первый список для объединения
217
- * @param listB - lists to merge / списки для объединения
218
- */
219
- static mergeUnique(
220
- listA: GitFileList,
221
- listB: GitFileList
222
- ): GitFileList {
223
- const list: GitFileList = [...listA]
224
-
225
- forEach(
226
- listB,
227
- (itemB) => {
228
- const exists = list.find(
229
- itemA => itemA.pathFull === itemB.pathFull
230
- )
231
-
232
- if (!exists) {
233
- list.push(itemB)
234
- }
235
- }
236
- )
237
-
238
- return list
239
- }
240
-
241
- /**
242
- * Splits a file path into its components.
243
- *
244
- * Разбивает путь файла на его компоненты.
245
- * @param path - file path / путь к файлу
246
- */
247
- static splitPath(path: string): string[] {
248
- return path.split('/').filter(part => part.length > 0)
249
- }
250
-
251
- /**
252
- * Executes Git command and returns result.
253
- *
254
- * Выполняет Git команду и возвращает результат.
255
- * @param command - command to execute / команда для выполнения
256
- * @protected
257
- */
258
- protected static exec(command: string): string {
259
- return execSync(command, { encoding: 'utf8' }).trim()
260
- }
261
- }
@@ -1,67 +0,0 @@
1
- import { PropertiesFile } from '../Properties/PropertiesFile'
2
-
3
- import {
4
- UI_FILE_AI_MCP
5
- } from '../../config'
6
-
7
- /**
8
- * Class representing an MCP item in the AI prompt generation process.
9
- * Handles reading `ai-mcp-resources.json` configuration files for a package directory.
10
- *
11
- * Класс, представляющий элемент MCP в процессе создания промпта для ИИ.
12
- * Управляет чтением конфигурационных файлов `ai-mcp-resources.json` для директории пакета.
13
- */
14
- export class LibraryAiMcpItem {
15
- /**
16
- * Constructor for LibraryAiMcpItem.
17
- *
18
- * Конструктор для LibraryAiMcpItem.
19
- * @param dir Path segments to the directory / Сегменты пути к директории
20
- */
21
- constructor(
22
- protected readonly dir: string[] = []
23
- ) { }
24
-
25
- /**
26
- * Checks if the ai-mcp-resources.json file exists in the directory.
27
- *
28
- * Проверяет, существует ли файл ai-mcp-resources.json в директории.
29
- * @returns true if ai-mcp-resources.json file exists / true, если файл ai-mcp-resources.json существует
30
- */
31
- isMcp(): boolean {
32
- return PropertiesFile.is(this.getPath(UI_FILE_AI_MCP))
33
- }
34
-
35
- /**
36
- * Reads and returns the list of MCP resource definitions from ai-mcp-resources.json.
37
- *
38
- * Читает и возвращает список определений ресурсов MCP из ai-mcp-resources.json.
39
- * @returns list of MCP resource items or undefined / список элементов ресурсов MCP или undefined
40
- */
41
- make(): Record<string, any>[] | undefined {
42
- if (this.isMcp()) {
43
- const data = PropertiesFile.readFile<Record<string, any>[]>(this.getPath(UI_FILE_AI_MCP))
44
-
45
- if (
46
- Array.isArray(data)
47
- && data.length > 0
48
- ) {
49
- return data
50
- }
51
- }
52
-
53
- return undefined
54
- }
55
-
56
- /**
57
- * Constructs a full path for a file within the item's directory.
58
- *
59
- * Создает полный путь к файлу внутри директории элемента.
60
- * @param dirFile File name / Имя файла
61
- * @returns path segments / сегменты пути
62
- * @protected
63
- */
64
- protected getPath(dirFile: string): string[] {
65
- return [...this.dir, dirFile]
66
- }
67
- }