@vkontakte/api-schema-typescript-generator 0.15.0 → 0.17.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 (627) hide show
  1. package/.github/CODEOWNERS +1 -1
  2. package/.github/workflows/publish.yml +6 -5
  3. package/.github/workflows/pull_request.yml +2 -2
  4. package/.nvmrc +1 -0
  5. package/LICENSE +1 -1
  6. package/dist/cli.js +5 -6
  7. package/dist/common/common.js +7 -0
  8. package/dist/common/errors.js +1023 -0
  9. package/dist/constants.js +1 -1
  10. package/dist/generator.js +6 -7
  11. package/dist/generators/APITypingsGenerator.js +180 -63
  12. package/dist/generators/SchemaObject.js +7 -7
  13. package/dist/generators/TypeCodeBlock.js +12 -12
  14. package/dist/generators/enums.js +11 -12
  15. package/dist/generators/methods.js +2 -3
  16. package/dist/generators/typeString.js +24 -20
  17. package/dist/generators/utils/mergeImports.js +15 -0
  18. package/dist/helpers.js +44 -31
  19. package/dist/helpers.test.js +7 -7
  20. package/dist/index.js +359 -85
  21. package/dist/log.js +5 -6
  22. package/dist/methods/account.js +5 -0
  23. package/dist/methods/ads.js +10 -0
  24. package/dist/methods/appWidgets.js +5 -0
  25. package/dist/methods/apps.js +5 -0
  26. package/dist/methods/auth.js +10 -0
  27. package/dist/methods/board.js +5 -0
  28. package/dist/methods/bugtracker.js +5 -0
  29. package/dist/methods/calls.js +5 -0
  30. package/dist/methods/database.js +5 -0
  31. package/dist/methods/docs.js +5 -0
  32. package/dist/methods/donut.js +5 -0
  33. package/dist/methods/downloadedGames.js +5 -0
  34. package/dist/methods/execute.js +5 -0
  35. package/dist/methods/fave.js +5 -0
  36. package/dist/methods/friends.js +28 -0
  37. package/dist/methods/gifts.js +5 -0
  38. package/dist/methods/groups.js +5 -0
  39. package/dist/methods/leadForms.js +5 -0
  40. package/dist/methods/likes.js +5 -0
  41. package/dist/methods/market.js +5 -0
  42. package/dist/methods/messages.js +5 -0
  43. package/dist/methods/newsfeed.js +5 -0
  44. package/dist/methods/notes.js +5 -0
  45. package/dist/methods/notifications.js +5 -0
  46. package/dist/methods/orders.js +5 -0
  47. package/dist/methods/pages.js +5 -0
  48. package/dist/methods/photos.js +5 -0
  49. package/dist/methods/podcasts.js +5 -0
  50. package/dist/methods/polls.js +5 -0
  51. package/dist/methods/prettyCards.js +5 -0
  52. package/dist/methods/search.js +5 -0
  53. package/dist/methods/secure.js +5 -0
  54. package/dist/methods/stats.js +5 -0
  55. package/dist/methods/status.js +5 -0
  56. package/dist/methods/storage.js +5 -0
  57. package/dist/methods/store.js +5 -0
  58. package/dist/methods/stories.js +5 -0
  59. package/dist/methods/streaming.js +5 -0
  60. package/dist/methods/translations.js +5 -0
  61. package/dist/methods/users.js +5 -0
  62. package/dist/methods/utils.js +5 -0
  63. package/dist/methods/video.js +5 -0
  64. package/dist/methods/wall.js +5 -0
  65. package/dist/methods/widgets.js +5 -0
  66. package/dist/objects/account/AccountAccountCounters.js +5 -0
  67. package/dist/objects/account/AccountCountersFilter.js +5 -0
  68. package/dist/objects/account/AccountInfo.js +5 -0
  69. package/dist/objects/account/AccountNameRequest.js +5 -0
  70. package/dist/objects/account/AccountNameRequestStatus.js +5 -0
  71. package/dist/objects/account/AccountOffer.js +5 -0
  72. package/dist/objects/account/AccountPushConversations.js +5 -0
  73. package/dist/objects/account/AccountPushConversationsItem.js +5 -0
  74. package/dist/objects/account/AccountPushParams.js +5 -0
  75. package/dist/objects/account/AccountPushParamsMode.js +5 -0
  76. package/dist/objects/account/AccountPushParamsOnoff.js +5 -0
  77. package/dist/objects/account/AccountPushParamsSettings.js +5 -0
  78. package/dist/objects/account/AccountPushSettings.js +5 -0
  79. package/dist/objects/account/AccountUserSettings.js +5 -0
  80. package/dist/objects/account/AccountUserSettingsInterest.js +5 -0
  81. package/dist/objects/account/AccountUserSettingsInterests.js +5 -0
  82. package/dist/objects/address/AddressFields.js +5 -0
  83. package/dist/objects/ads/AdsAccessRole.js +5 -0
  84. package/dist/objects/ads/AdsAccessRolePublic.js +5 -0
  85. package/dist/objects/ads/AdsAccesses.js +5 -0
  86. package/dist/objects/ads/AdsAccount.js +5 -0
  87. package/dist/objects/ads/AdsAccountType.js +5 -0
  88. package/dist/objects/ads/AdsAd.js +5 -0
  89. package/dist/objects/ads/AdsAdApproved.js +13 -0
  90. package/dist/objects/ads/AdsAdCostType.js +13 -0
  91. package/dist/objects/ads/AdsAdLayout.js +5 -0
  92. package/dist/objects/ads/AdsAdStatus.js +12 -0
  93. package/dist/objects/ads/AdsCampaign.js +5 -0
  94. package/dist/objects/ads/AdsCampaignStatus.js +12 -0
  95. package/dist/objects/ads/AdsCampaignType.js +5 -0
  96. package/dist/objects/ads/AdsCategory.js +5 -0
  97. package/dist/objects/ads/AdsClient.js +5 -0
  98. package/dist/objects/ads/AdsClipItem.js +5 -0
  99. package/dist/objects/ads/AdsClipItemLink.js +5 -0
  100. package/dist/objects/ads/AdsCreateAdStatus.js +5 -0
  101. package/dist/objects/ads/AdsCreateCampaignStatus.js +5 -0
  102. package/dist/objects/ads/AdsCreateClientsStatus.js +5 -0
  103. package/dist/objects/ads/AdsCriteriaSex.js +12 -0
  104. package/dist/objects/ads/AdsDemoStats.js +5 -0
  105. package/dist/objects/ads/AdsDemostatsFormat.js +5 -0
  106. package/dist/objects/ads/AdsEventsRetargetingGroup.js +5 -0
  107. package/dist/objects/ads/AdsFloodStats.js +5 -0
  108. package/dist/objects/ads/AdsFloodStatsByUserItem.js +5 -0
  109. package/dist/objects/ads/AdsLinkStatus.js +5 -0
  110. package/dist/objects/ads/AdsLookalikeRequest.js +5 -0
  111. package/dist/objects/ads/AdsLookalikeRequestSaveAudienceLevel.js +5 -0
  112. package/dist/objects/ads/AdsMobileStatItem.js +5 -0
  113. package/dist/objects/ads/AdsMusician.js +5 -0
  114. package/dist/objects/ads/AdsObjectType.js +5 -0
  115. package/dist/objects/ads/AdsOrdClientType.js +5 -0
  116. package/dist/objects/ads/AdsOrdData.js +5 -0
  117. package/dist/objects/ads/AdsOrdSubagent.js +5 -0
  118. package/dist/objects/ads/AdsPost.js +5 -0
  119. package/dist/objects/ads/AdsPostComments.js +5 -0
  120. package/dist/objects/ads/AdsPostDonut.js +5 -0
  121. package/dist/objects/ads/AdsPostEasyPromote.js +5 -0
  122. package/dist/objects/ads/AdsPostLikes.js +5 -0
  123. package/dist/objects/ads/AdsPostOwner.js +5 -0
  124. package/dist/objects/ads/AdsPostReposts.js +5 -0
  125. package/dist/objects/ads/AdsPostViews.js +5 -0
  126. package/dist/objects/ads/AdsPromotedPostReach.js +5 -0
  127. package/dist/objects/ads/AdsRejectReason.js +5 -0
  128. package/dist/objects/ads/AdsRules.js +5 -0
  129. package/dist/objects/ads/AdsStats.js +5 -0
  130. package/dist/objects/ads/AdsStatsAge.js +5 -0
  131. package/dist/objects/ads/AdsStatsCities.js +5 -0
  132. package/dist/objects/ads/AdsStatsFormat.js +5 -0
  133. package/dist/objects/ads/AdsStatsSex.js +5 -0
  134. package/dist/objects/ads/AdsStatsSexAge.js +5 -0
  135. package/dist/objects/ads/AdsStatsSexValue.js +5 -0
  136. package/dist/objects/ads/AdsStatsViewsTimes.js +5 -0
  137. package/dist/objects/ads/AdsStories.js +5 -0
  138. package/dist/objects/ads/AdsStoriesOwner.js +5 -0
  139. package/dist/objects/ads/AdsStoryItem.js +5 -0
  140. package/dist/objects/ads/AdsStoryItemLink.js +5 -0
  141. package/dist/objects/ads/AdsStoryItemStats.js +5 -0
  142. package/dist/objects/ads/AdsStoryItemStatsFollow.js +5 -0
  143. package/dist/objects/ads/AdsStoryItemStatsUrlView.js +5 -0
  144. package/dist/objects/ads/AdsTargSettings.js +5 -0
  145. package/dist/objects/ads/AdsTargStats.js +5 -0
  146. package/dist/objects/ads/AdsTargSuggestions.js +5 -0
  147. package/dist/objects/ads/AdsTargSuggestionsCities.js +5 -0
  148. package/dist/objects/ads/AdsTargSuggestionsRegions.js +5 -0
  149. package/dist/objects/ads/AdsTargSuggestionsSchools.js +5 -0
  150. package/dist/objects/ads/AdsTargSuggestionsSchoolsType.js +5 -0
  151. package/dist/objects/ads/AdsTargetGroup.js +5 -0
  152. package/dist/objects/ads/AdsTargetGroupTargetPixelRule.js +5 -0
  153. package/dist/objects/ads/AdsTargetPixelInfo.js +5 -0
  154. package/dist/objects/ads/AdsUpdateAdsStatus.js +5 -0
  155. package/dist/objects/ads/AdsUpdateClientsStatus.js +5 -0
  156. package/dist/objects/ads/AdsUpdateOfficeUsersResult.js +5 -0
  157. package/dist/objects/ads/AdsUserSpecification.js +5 -0
  158. package/dist/objects/ads/AdsUserSpecificationCutted.js +5 -0
  159. package/dist/objects/ads/AdsUsers.js +5 -0
  160. package/dist/objects/appWidgets/AppWidgetsPhoto.js +5 -0
  161. package/dist/objects/appWidgets/AppWidgetsPhotos.js +5 -0
  162. package/dist/objects/apps/AppsApp.js +5 -0
  163. package/dist/objects/apps/AppsAppFields.js +5 -0
  164. package/dist/objects/apps/AppsAppLeaderboardType.js +12 -0
  165. package/dist/objects/apps/AppsAppMin.js +5 -0
  166. package/dist/objects/apps/AppsAppType.js +5 -0
  167. package/dist/objects/apps/AppsCatalogList.js +5 -0
  168. package/dist/objects/apps/AppsCustomSnippet.js +5 -0
  169. package/dist/objects/apps/AppsLeaderboard.js +5 -0
  170. package/dist/objects/apps/AppsScope.js +5 -0
  171. package/dist/objects/apps/AppsTestingGroup.js +5 -0
  172. package/dist/objects/audio/AudioAudio.js +5 -0
  173. package/dist/objects/base/BaseCity.js +5 -0
  174. package/dist/objects/base/BaseCommentsInfo.js +5 -0
  175. package/dist/objects/base/BaseCountry.js +5 -0
  176. package/dist/objects/base/BaseCropPhoto.js +5 -0
  177. package/dist/objects/base/BaseCropPhotoCrop.js +5 -0
  178. package/dist/objects/base/BaseCropPhotoRect.js +5 -0
  179. package/dist/objects/base/BaseError.js +5 -0
  180. package/dist/objects/base/BaseGeo.js +5 -0
  181. package/dist/objects/base/BaseGeoCoordinates.js +5 -0
  182. package/dist/objects/base/BaseGradientPoint.js +5 -0
  183. package/dist/objects/base/BaseImage.js +5 -0
  184. package/dist/objects/base/BaseLang.js +5 -0
  185. package/dist/objects/base/BaseLikes.js +5 -0
  186. package/dist/objects/base/BaseLikesInfo.js +5 -0
  187. package/dist/objects/base/BaseLink.js +5 -0
  188. package/dist/objects/base/BaseLinkApplication.js +5 -0
  189. package/dist/objects/base/BaseLinkApplicationStore.js +5 -0
  190. package/dist/objects/base/BaseLinkButton.js +5 -0
  191. package/dist/objects/base/BaseLinkButtonAction.js +5 -0
  192. package/dist/objects/base/BaseLinkButtonActionType.js +5 -0
  193. package/dist/objects/base/BaseLinkButtonStyle.js +5 -0
  194. package/dist/objects/base/BaseLinkProduct.js +5 -0
  195. package/dist/objects/base/BaseLinkProductStatus.js +5 -0
  196. package/dist/objects/base/BaseLinkRating.js +5 -0
  197. package/dist/objects/base/BaseMessageError.js +5 -0
  198. package/dist/objects/base/BaseNameCase.js +5 -0
  199. package/dist/objects/base/BaseObject.js +5 -0
  200. package/dist/objects/base/BaseObjectCount.js +5 -0
  201. package/dist/objects/base/BaseObjectWithName.js +5 -0
  202. package/dist/objects/base/BaseOwnerCover.js +5 -0
  203. package/dist/objects/base/BaseOwnerCoverCropParams.js +5 -0
  204. package/dist/objects/base/BasePlace.js +5 -0
  205. package/dist/objects/base/BaseRepostsInfo.js +5 -0
  206. package/dist/objects/base/BaseRequestParam.js +5 -0
  207. package/dist/objects/base/BaseSex.js +12 -0
  208. package/dist/objects/base/BaseSticker.js +5 -0
  209. package/dist/objects/base/BaseStickerAnimation.js +5 -0
  210. package/dist/objects/base/BaseStickerNew.js +5 -0
  211. package/dist/objects/base/BaseUploadServer.js +5 -0
  212. package/dist/objects/base/BaseUserGroupFields.js +5 -0
  213. package/dist/objects/base/BaseUserId.js +5 -0
  214. package/dist/objects/board/BoardDefaultOrder.js +13 -0
  215. package/dist/objects/board/BoardTopic.js +5 -0
  216. package/dist/objects/board/BoardTopicComment.js +5 -0
  217. package/dist/objects/bugtracker/BugtrackerAddCompanyGroupsMembersError.js +5 -0
  218. package/dist/objects/bugtracker/BugtrackerAttachment.js +5 -0
  219. package/dist/objects/bugtracker/BugtrackerBugreport.js +11 -0
  220. package/dist/objects/bugtracker/BugtrackerBugreportSubscribeState.js +5 -0
  221. package/dist/objects/bugtracker/BugtrackerComment.js +5 -0
  222. package/dist/objects/bugtracker/BugtrackerCommentAuthor.js +5 -0
  223. package/dist/objects/bugtracker/BugtrackerCompanyMember.js +5 -0
  224. package/dist/objects/bugtracker/BugtrackerCompanyMemberProduct.js +5 -0
  225. package/dist/objects/calls/CallsCall.js +5 -0
  226. package/dist/objects/calls/CallsEndState.js +5 -0
  227. package/dist/objects/calls/CallsParticipants.js +5 -0
  228. package/dist/objects/calls/CallsShortCredentials.js +5 -0
  229. package/dist/objects/comment/CommentThread.js +5 -0
  230. package/dist/objects/database/DatabaseCitiesFields.js +5 -0
  231. package/dist/objects/database/DatabaseCity.js +5 -0
  232. package/dist/objects/database/DatabaseCityById.js +5 -0
  233. package/dist/objects/database/DatabaseFaculty.js +5 -0
  234. package/dist/objects/database/DatabaseLanguageFull.js +5 -0
  235. package/dist/objects/database/DatabaseRegion.js +5 -0
  236. package/dist/objects/database/DatabaseSchool.js +5 -0
  237. package/dist/objects/database/DatabaseSchoolClass.js +5 -0
  238. package/dist/objects/database/DatabaseStation.js +5 -0
  239. package/dist/objects/database/DatabaseUniversity.js +5 -0
  240. package/dist/objects/docs/DocsDoc.js +5 -0
  241. package/dist/objects/docs/DocsDocAttachmentType.js +5 -0
  242. package/dist/objects/docs/DocsDocPreview.js +5 -0
  243. package/dist/objects/docs/DocsDocPreviewAudioMsg.js +5 -0
  244. package/dist/objects/docs/DocsDocPreviewGraffiti.js +5 -0
  245. package/dist/objects/docs/DocsDocPreviewPhoto.js +5 -0
  246. package/dist/objects/docs/DocsDocPreviewPhotoSizes.js +5 -0
  247. package/dist/objects/docs/DocsDocPreviewVideo.js +5 -0
  248. package/dist/objects/docs/DocsDocTypes.js +5 -0
  249. package/dist/objects/donut/DonutDonatorSubscriptionInfo.js +5 -0
  250. package/dist/objects/events/EventsEventAttach.js +5 -0
  251. package/dist/objects/fave/FaveBookmark.js +5 -0
  252. package/dist/objects/fave/FaveBookmarkType.js +5 -0
  253. package/dist/objects/fave/FavePage.js +5 -0
  254. package/dist/objects/fave/FavePageType.js +5 -0
  255. package/dist/objects/fave/FaveTag.js +5 -0
  256. package/dist/objects/friends/FriendsFriendExtendedStatus.js +5 -0
  257. package/dist/objects/friends/FriendsFriendStatus.js +5 -0
  258. package/dist/objects/friends/FriendsFriendStatusStatus.js +13 -0
  259. package/dist/objects/friends/FriendsFriendsList.js +5 -0
  260. package/dist/objects/friends/FriendsMutualFriend.js +5 -0
  261. package/dist/objects/friends/FriendsOnlineUsers.js +5 -0
  262. package/dist/objects/friends/FriendsOnlineUsersWithMobile.js +5 -0
  263. package/dist/objects/friends/FriendsRequestsMutual.js +5 -0
  264. package/dist/objects/friends/FriendsRequestsXtrMessage.js +5 -0
  265. package/dist/objects/friends/FriendsRequestsXtrMutual.js +5 -0
  266. package/dist/objects/gifts/GiftsGift.js +5 -0
  267. package/dist/objects/gifts/GiftsGiftPrivacy.js +12 -0
  268. package/dist/objects/gifts/GiftsLayout.js +5 -0
  269. package/dist/objects/groups/GroupsAddress.js +5 -0
  270. package/dist/objects/groups/GroupsAddressTimetable.js +5 -0
  271. package/dist/objects/groups/GroupsAddressTimetableDay.js +5 -0
  272. package/dist/objects/groups/GroupsAddressWorkInfoStatus.js +5 -0
  273. package/dist/objects/groups/GroupsAddressesInfo.js +5 -0
  274. package/dist/objects/groups/GroupsBanInfo.js +5 -0
  275. package/dist/objects/groups/GroupsBanInfoReason.js +14 -0
  276. package/dist/objects/groups/GroupsCallbackServer.js +5 -0
  277. package/dist/objects/groups/GroupsCallbackSettings.js +5 -0
  278. package/dist/objects/groups/GroupsContactsItem.js +5 -0
  279. package/dist/objects/groups/GroupsCountersGroup.js +5 -0
  280. package/dist/objects/groups/GroupsFields.js +5 -0
  281. package/dist/objects/groups/GroupsFilter.js +5 -0
  282. package/dist/objects/groups/GroupsGroup.js +5 -0
  283. package/dist/objects/groups/GroupsGroupAccess.js +12 -0
  284. package/dist/objects/groups/GroupsGroupAdminLevel.js +12 -0
  285. package/dist/objects/groups/GroupsGroupAgeLimits.js +12 -0
  286. package/dist/objects/groups/GroupsGroupAttach.js +5 -0
  287. package/dist/objects/groups/GroupsGroupAudio.js +12 -0
  288. package/dist/objects/groups/GroupsGroupBanInfo.js +5 -0
  289. package/dist/objects/groups/GroupsGroupCategory.js +5 -0
  290. package/dist/objects/groups/GroupsGroupCategoryFull.js +5 -0
  291. package/dist/objects/groups/GroupsGroupCategoryType.js +5 -0
  292. package/dist/objects/groups/GroupsGroupDocs.js +12 -0
  293. package/dist/objects/groups/GroupsGroupFull.js +13 -0
  294. package/dist/objects/groups/GroupsGroupFullAgeLimits.js +12 -0
  295. package/dist/objects/groups/GroupsGroupFullMemberStatus.js +15 -0
  296. package/dist/objects/groups/GroupsGroupFullSection.js +58 -0
  297. package/dist/objects/groups/GroupsGroupIsClosed.js +12 -0
  298. package/dist/objects/groups/GroupsGroupMarketCurrency.js +14 -0
  299. package/dist/objects/groups/GroupsGroupPhotos.js +12 -0
  300. package/dist/objects/groups/GroupsGroupPublicCategoryList.js +5 -0
  301. package/dist/objects/groups/GroupsGroupRole.js +5 -0
  302. package/dist/objects/groups/GroupsGroupSubcategory.js +5 -0
  303. package/dist/objects/groups/GroupsGroupSubject.js +51 -0
  304. package/dist/objects/groups/GroupsGroupSuggestedPrivacy.js +12 -0
  305. package/dist/objects/groups/GroupsGroupTag.js +5 -0
  306. package/dist/objects/groups/GroupsGroupTopics.js +12 -0
  307. package/dist/objects/groups/GroupsGroupType.js +5 -0
  308. package/dist/objects/groups/GroupsGroupVideo.js +12 -0
  309. package/dist/objects/groups/GroupsGroupWall.js +13 -0
  310. package/dist/objects/groups/GroupsGroupWiki.js +12 -0
  311. package/dist/objects/groups/GroupsGroupsArray.js +5 -0
  312. package/dist/objects/groups/GroupsLinksItem.js +5 -0
  313. package/dist/objects/groups/GroupsLiveCovers.js +5 -0
  314. package/dist/objects/groups/GroupsLongPollEvents.js +5 -0
  315. package/dist/objects/groups/GroupsLongPollServer.js +5 -0
  316. package/dist/objects/groups/GroupsLongPollSettings.js +5 -0
  317. package/dist/objects/groups/GroupsMarketInfo.js +5 -0
  318. package/dist/objects/groups/GroupsMarketState.js +5 -0
  319. package/dist/objects/groups/GroupsMemberRole.js +5 -0
  320. package/dist/objects/groups/GroupsMemberRolePermission.js +5 -0
  321. package/dist/objects/groups/GroupsMemberRoleStatus.js +5 -0
  322. package/dist/objects/groups/GroupsMemberStatus.js +5 -0
  323. package/dist/objects/groups/GroupsMemberStatusFull.js +5 -0
  324. package/dist/objects/groups/GroupsOnlineStatus.js +5 -0
  325. package/dist/objects/groups/GroupsOnlineStatusType.js +5 -0
  326. package/dist/objects/groups/GroupsOwnerXtrBanInfo.js +5 -0
  327. package/dist/objects/groups/GroupsPhotoSize.js +5 -0
  328. package/dist/objects/groups/GroupsProfileItem.js +5 -0
  329. package/dist/objects/groups/GroupsRoleOptions.js +5 -0
  330. package/dist/objects/groups/GroupsSectionsListItem.js +5 -0
  331. package/dist/objects/groups/GroupsSettingsTwitter.js +5 -0
  332. package/dist/objects/groups/GroupsSubjectItem.js +5 -0
  333. package/dist/objects/groups/GroupsTokenPermissionSetting.js +5 -0
  334. package/dist/objects/groups/GroupsUserXtrRole.js +5 -0
  335. package/dist/objects/leadForms/LeadFormsAnswer.js +5 -0
  336. package/dist/objects/leadForms/LeadFormsAnswerItem.js +5 -0
  337. package/dist/objects/leadForms/LeadFormsForm.js +5 -0
  338. package/dist/objects/leadForms/LeadFormsLead.js +5 -0
  339. package/dist/objects/leadForms/LeadFormsQuestionItem.js +5 -0
  340. package/dist/objects/leadForms/LeadFormsQuestionItemOption.js +5 -0
  341. package/dist/objects/likes/LikesType.js +5 -0
  342. package/dist/objects/link/LinkTargetObject.js +5 -0
  343. package/dist/objects/market/MarketCurrency.js +5 -0
  344. package/dist/objects/market/MarketGlobalSearchFilters.js +5 -0
  345. package/dist/objects/market/MarketItemOwnerInfo.js +5 -0
  346. package/dist/objects/market/MarketItemPromotionInfo.js +5 -0
  347. package/dist/objects/market/MarketMarketAlbum.js +11 -0
  348. package/dist/objects/market/MarketMarketCategory.js +5 -0
  349. package/dist/objects/market/MarketMarketCategoryNested.js +5 -0
  350. package/dist/objects/market/MarketMarketCategoryTree.js +5 -0
  351. package/dist/objects/market/MarketMarketCategoryTreeView.js +5 -0
  352. package/dist/objects/market/MarketMarketItem.js +5 -0
  353. package/dist/objects/market/MarketMarketItemAvailability.js +12 -0
  354. package/dist/objects/market/MarketMarketItemBasicWithGroup.js +5 -0
  355. package/dist/objects/market/MarketMarketItemFull.js +5 -0
  356. package/dist/objects/market/MarketOrder.js +5 -0
  357. package/dist/objects/market/MarketOrderItem.js +5 -0
  358. package/dist/objects/market/MarketOwnerType.js +5 -0
  359. package/dist/objects/market/MarketPrice.js +19 -0
  360. package/dist/objects/market/MarketProperty.js +5 -0
  361. package/dist/objects/market/MarketPropertyVariant.js +5 -0
  362. package/dist/objects/market/MarketServicesViewType.js +11 -0
  363. package/dist/objects/market/MarketUploadPhotoData.js +5 -0
  364. package/dist/objects/messages/MessagesActionOneOf.js +5 -0
  365. package/dist/objects/messages/MessagesAudioMessage.js +5 -0
  366. package/dist/objects/messages/MessagesChat.js +5 -0
  367. package/dist/objects/messages/MessagesChatFull.js +5 -0
  368. package/dist/objects/messages/MessagesChatPreview.js +5 -0
  369. package/dist/objects/messages/MessagesChatPushSettings.js +5 -0
  370. package/dist/objects/messages/MessagesChatRestrictions.js +5 -0
  371. package/dist/objects/messages/MessagesChatSettings.js +5 -0
  372. package/dist/objects/messages/MessagesChatSettingsAcl.js +5 -0
  373. package/dist/objects/messages/MessagesChatSettingsPermissions.js +5 -0
  374. package/dist/objects/messages/MessagesChatSettingsPhoto.js +5 -0
  375. package/dist/objects/messages/MessagesChatSettingsState.js +5 -0
  376. package/dist/objects/messages/MessagesConversation.js +5 -0
  377. package/dist/objects/messages/MessagesConversationCanWrite.js +5 -0
  378. package/dist/objects/messages/MessagesConversationMember.js +5 -0
  379. package/dist/objects/messages/MessagesConversationPeer.js +5 -0
  380. package/dist/objects/messages/MessagesConversationPeerType.js +5 -0
  381. package/dist/objects/messages/MessagesConversationSortId.js +5 -0
  382. package/dist/objects/messages/MessagesConversationWithMessage.js +5 -0
  383. package/dist/objects/messages/MessagesDeleteFullResponseItem.js +5 -0
  384. package/dist/objects/messages/MessagesForeignMessage.js +5 -0
  385. package/dist/objects/messages/MessagesForward.js +5 -0
  386. package/dist/objects/messages/MessagesFwdMessages.js +5 -0
  387. package/dist/objects/messages/MessagesGetConversationById.js +5 -0
  388. package/dist/objects/messages/MessagesGetConversationByIdExtended.js +5 -0
  389. package/dist/objects/messages/MessagesGetConversationMembers.js +5 -0
  390. package/dist/objects/messages/MessagesGetInviteLinkByOwnerResponseItem.js +5 -0
  391. package/dist/objects/messages/MessagesGraffiti.js +5 -0
  392. package/dist/objects/messages/MessagesHistoryAttachment.js +5 -0
  393. package/dist/objects/messages/MessagesHistoryMessageAttachment.js +5 -0
  394. package/dist/objects/messages/MessagesHistoryMessageAttachmentType.js +5 -0
  395. package/dist/objects/messages/MessagesKeyboard.js +5 -0
  396. package/dist/objects/messages/MessagesKeyboardButton.js +5 -0
  397. package/dist/objects/messages/MessagesKeyboardButtonActionCallback.js +5 -0
  398. package/dist/objects/messages/MessagesKeyboardButtonActionLocation.js +5 -0
  399. package/dist/objects/messages/MessagesKeyboardButtonActionOpenApp.js +5 -0
  400. package/dist/objects/messages/MessagesKeyboardButtonActionOpenLink.js +5 -0
  401. package/dist/objects/messages/MessagesKeyboardButtonActionOpenPhoto.js +5 -0
  402. package/dist/objects/messages/MessagesKeyboardButtonActionText.js +5 -0
  403. package/dist/objects/messages/MessagesKeyboardButtonActionVkpay.js +5 -0
  404. package/dist/objects/messages/MessagesLastActivity.js +5 -0
  405. package/dist/objects/messages/MessagesLongpollMessages.js +5 -0
  406. package/dist/objects/messages/MessagesLongpollParams.js +5 -0
  407. package/dist/objects/messages/MessagesMessage.js +5 -0
  408. package/dist/objects/messages/MessagesMessageAction.js +5 -0
  409. package/dist/objects/messages/MessagesMessageActionPhoto.js +5 -0
  410. package/dist/objects/messages/MessagesMessageActionStatus.js +5 -0
  411. package/dist/objects/messages/MessagesMessageAttachment.js +5 -0
  412. package/dist/objects/messages/MessagesMessageAttachmentType.js +5 -0
  413. package/dist/objects/messages/MessagesMessageRequestData.js +5 -0
  414. package/dist/objects/messages/MessagesMessagesArray.js +5 -0
  415. package/dist/objects/messages/MessagesOutReadBy.js +5 -0
  416. package/dist/objects/messages/MessagesPinnedMessage.js +5 -0
  417. package/dist/objects/messages/MessagesPushSettings.js +5 -0
  418. package/dist/objects/messages/MessagesReactionAssetItem.js +5 -0
  419. package/dist/objects/messages/MessagesReactionAssetItemLinks.js +5 -0
  420. package/dist/objects/messages/MessagesReactionCounterResponseItem.js +5 -0
  421. package/dist/objects/messages/MessagesReactionCountersResponseItem.js +5 -0
  422. package/dist/objects/messages/MessagesReactionResponseItem.js +5 -0
  423. package/dist/objects/messages/MessagesSendUserIdsResponseItem.js +5 -0
  424. package/dist/objects/messages/MessagesUserXtrInvitedBy.js +5 -0
  425. package/dist/objects/newsfeed/NewsfeedCommentsBase.js +5 -0
  426. package/dist/objects/newsfeed/NewsfeedCommentsFilters.js +5 -0
  427. package/dist/objects/newsfeed/NewsfeedCommentsItem.js +5 -0
  428. package/dist/objects/newsfeed/NewsfeedCommentsItemTypeMarket.js +5 -0
  429. package/dist/objects/newsfeed/NewsfeedCommentsItemTypeNotes.js +5 -0
  430. package/dist/objects/newsfeed/NewsfeedCommentsItemTypePhoto.js +5 -0
  431. package/dist/objects/newsfeed/NewsfeedCommentsItemTypePost.js +21 -0
  432. package/dist/objects/newsfeed/NewsfeedCommentsItemTypeTopic.js +5 -0
  433. package/dist/objects/newsfeed/NewsfeedCommentsItemTypeVideo.js +5 -0
  434. package/dist/objects/newsfeed/NewsfeedIgnoreItemType.js +5 -0
  435. package/dist/objects/newsfeed/NewsfeedItemAudio.js +5 -0
  436. package/dist/objects/newsfeed/NewsfeedItemAudioAudio.js +5 -0
  437. package/dist/objects/newsfeed/NewsfeedItemDigest.js +5 -0
  438. package/dist/objects/newsfeed/NewsfeedItemDigestButton.js +5 -0
  439. package/dist/objects/newsfeed/NewsfeedItemDigestFooter.js +5 -0
  440. package/dist/objects/newsfeed/NewsfeedItemDigestFullItem.js +5 -0
  441. package/dist/objects/newsfeed/NewsfeedItemDigestHeader.js +5 -0
  442. package/dist/objects/newsfeed/NewsfeedItemDigestItem.js +5 -0
  443. package/dist/objects/newsfeed/NewsfeedItemFriend.js +5 -0
  444. package/dist/objects/newsfeed/NewsfeedItemFriendFriends.js +5 -0
  445. package/dist/objects/newsfeed/NewsfeedItemPhoto.js +5 -0
  446. package/dist/objects/newsfeed/NewsfeedItemPhotoPhotos.js +5 -0
  447. package/dist/objects/newsfeed/NewsfeedItemPhotoTag.js +5 -0
  448. package/dist/objects/newsfeed/NewsfeedItemPhotoTagPhotoTags.js +5 -0
  449. package/dist/objects/newsfeed/NewsfeedItemPromoButton.js +5 -0
  450. package/dist/objects/newsfeed/NewsfeedItemPromoButtonAction.js +5 -0
  451. package/dist/objects/newsfeed/NewsfeedItemPromoButtonImage.js +5 -0
  452. package/dist/objects/newsfeed/NewsfeedItemTopic.js +5 -0
  453. package/dist/objects/newsfeed/NewsfeedItemVideo.js +5 -0
  454. package/dist/objects/newsfeed/NewsfeedItemVideoVideo.js +5 -0
  455. package/dist/objects/newsfeed/NewsfeedItemWallpost.js +21 -0
  456. package/dist/objects/newsfeed/NewsfeedItemWallpostFeedback.js +5 -0
  457. package/dist/objects/newsfeed/NewsfeedItemWallpostFeedbackAnswer.js +5 -0
  458. package/dist/objects/newsfeed/NewsfeedItemWallpostFeedbackType.js +5 -0
  459. package/dist/objects/newsfeed/NewsfeedList.js +5 -0
  460. package/dist/objects/newsfeed/NewsfeedListFull.js +5 -0
  461. package/dist/objects/newsfeed/NewsfeedNewsfeedItem.js +5 -0
  462. package/dist/objects/newsfeed/NewsfeedNewsfeedItemType.js +5 -0
  463. package/dist/objects/notes/NotesNote.js +5 -0
  464. package/dist/objects/notes/NotesNoteComment.js +5 -0
  465. package/dist/objects/notifications/NotificationsFeedback.js +5 -0
  466. package/dist/objects/notifications/NotificationsNotification.js +5 -0
  467. package/dist/objects/notifications/NotificationsNotificationItem.js +5 -0
  468. package/dist/objects/notifications/NotificationsReply.js +5 -0
  469. package/dist/objects/notifications/NotificationsSendMessageError.js +13 -0
  470. package/dist/objects/notifications/NotificationsSendMessageItem.js +5 -0
  471. package/dist/objects/orders/OrdersAmount.js +5 -0
  472. package/dist/objects/orders/OrdersAmountItem.js +5 -0
  473. package/dist/objects/orders/OrdersOrder.js +5 -0
  474. package/dist/objects/orders/OrdersSubscription.js +5 -0
  475. package/dist/objects/owner/OwnerState.js +14 -0
  476. package/dist/objects/pages/PagesPrivacySettings.js +12 -0
  477. package/dist/objects/pages/PagesWikipage.js +5 -0
  478. package/dist/objects/pages/PagesWikipageFull.js +5 -0
  479. package/dist/objects/pages/PagesWikipageHistory.js +5 -0
  480. package/dist/objects/photos/PhotosImage.js +5 -0
  481. package/dist/objects/photos/PhotosImageType.js +5 -0
  482. package/dist/objects/photos/PhotosPhoto.js +5 -0
  483. package/dist/objects/photos/PhotosPhotoAlbum.js +5 -0
  484. package/dist/objects/photos/PhotosPhotoAlbumFull.js +5 -0
  485. package/dist/objects/photos/PhotosPhotoSizes.js +5 -0
  486. package/dist/objects/photos/PhotosPhotoSizesType.js +5 -0
  487. package/dist/objects/photos/PhotosPhotoTag.js +5 -0
  488. package/dist/objects/photos/PhotosPhotoUpload.js +5 -0
  489. package/dist/objects/photos/PhotosPhotoXtrTagInfo.js +5 -0
  490. package/dist/objects/podcast/PodcastCover.js +5 -0
  491. package/dist/objects/podcast/PodcastExternalData.js +5 -0
  492. package/dist/objects/polls/PollsAnswer.js +5 -0
  493. package/dist/objects/polls/PollsBackground.js +5 -0
  494. package/dist/objects/polls/PollsFieldsVoters.js +5 -0
  495. package/dist/objects/polls/PollsFriend.js +5 -0
  496. package/dist/objects/polls/PollsPoll.js +5 -0
  497. package/dist/objects/polls/PollsPollExtended.js +5 -0
  498. package/dist/objects/polls/PollsVoters.js +5 -0
  499. package/dist/objects/polls/PollsVotersFieldsUsers.js +5 -0
  500. package/dist/objects/polls/PollsVotersUsers.js +5 -0
  501. package/dist/objects/prettyCards/PrettyCardsPrettyCard.js +5 -0
  502. package/dist/objects/prettyCards/PrettyCardsPrettyCardOrError.js +5 -0
  503. package/dist/objects/search/SearchHint.js +5 -0
  504. package/dist/objects/search/SearchHintSection.js +5 -0
  505. package/dist/objects/search/SearchHintType.js +5 -0
  506. package/dist/objects/secure/SecureGiveEventStickerItem.js +5 -0
  507. package/dist/objects/secure/SecureLevel.js +5 -0
  508. package/dist/objects/secure/SecureSetCounterItem.js +5 -0
  509. package/dist/objects/secure/SecureSmsNotification.js +5 -0
  510. package/dist/objects/secure/SecureTokenChecked.js +5 -0
  511. package/dist/objects/secure/SecureTransaction.js +5 -0
  512. package/dist/objects/stats/StatsActivity.js +5 -0
  513. package/dist/objects/stats/StatsCity.js +5 -0
  514. package/dist/objects/stats/StatsCountry.js +5 -0
  515. package/dist/objects/stats/StatsPeriod.js +5 -0
  516. package/dist/objects/stats/StatsReach.js +5 -0
  517. package/dist/objects/stats/StatsSexAge.js +5 -0
  518. package/dist/objects/stats/StatsViews.js +5 -0
  519. package/dist/objects/stats/StatsWallpostStat.js +5 -0
  520. package/dist/objects/status/StatusStatus.js +5 -0
  521. package/dist/objects/stickers/StickersImageSet.js +5 -0
  522. package/dist/objects/storage/StorageValue.js +5 -0
  523. package/dist/objects/store/StoreProduct.js +5 -0
  524. package/dist/objects/store/StoreProductIcon.js +5 -0
  525. package/dist/objects/store/StoreStickersKeyword.js +5 -0
  526. package/dist/objects/store/StoreStickersKeywordSticker.js +5 -0
  527. package/dist/objects/stories/StoriesClickableArea.js +5 -0
  528. package/dist/objects/stories/StoriesClickableSticker.js +5 -0
  529. package/dist/objects/stories/StoriesClickableStickers.js +5 -0
  530. package/dist/objects/stories/StoriesFeedItem.js +5 -0
  531. package/dist/objects/stories/StoriesPromoBlock.js +5 -0
  532. package/dist/objects/stories/StoriesReplies.js +5 -0
  533. package/dist/objects/stories/StoriesStory.js +5 -0
  534. package/dist/objects/stories/StoriesStoryLink.js +5 -0
  535. package/dist/objects/stories/StoriesStoryStats.js +5 -0
  536. package/dist/objects/stories/StoriesStoryStatsStat.js +5 -0
  537. package/dist/objects/stories/StoriesStoryStatsState.js +5 -0
  538. package/dist/objects/stories/StoriesStoryType.js +5 -0
  539. package/dist/objects/stories/StoriesUploadLinkText.js +5 -0
  540. package/dist/objects/stories/StoriesUploadResult.js +5 -0
  541. package/dist/objects/stories/StoriesViewersItem.js +5 -0
  542. package/dist/objects/streaming/StreamingStats.js +5 -0
  543. package/dist/objects/streaming/StreamingStatsPoint.js +5 -0
  544. package/dist/objects/users/UsersCareer.js +5 -0
  545. package/dist/objects/users/UsersExports.js +5 -0
  546. package/dist/objects/users/UsersFields.js +5 -0
  547. package/dist/objects/users/UsersLastSeen.js +5 -0
  548. package/dist/objects/users/UsersMilitary.js +5 -0
  549. package/dist/objects/users/UsersOccupation.js +5 -0
  550. package/dist/objects/users/UsersOnlineInfo.js +5 -0
  551. package/dist/objects/users/UsersPersonal.js +5 -0
  552. package/dist/objects/users/UsersRelative.js +5 -0
  553. package/dist/objects/users/UsersSchool.js +5 -0
  554. package/dist/objects/users/UsersSubscriptionsItem.js +5 -0
  555. package/dist/objects/users/UsersUniversity.js +5 -0
  556. package/dist/objects/users/UsersUser.js +5 -0
  557. package/dist/objects/users/UsersUserConnections.js +5 -0
  558. package/dist/objects/users/UsersUserCounters.js +5 -0
  559. package/dist/objects/users/UsersUserFull.js +5 -0
  560. package/dist/objects/users/UsersUserMin.js +5 -0
  561. package/dist/objects/users/UsersUserRelation.js +18 -0
  562. package/dist/objects/users/UsersUserType.js +5 -0
  563. package/dist/objects/users/UsersUsersArray.js +5 -0
  564. package/dist/objects/utils/UtilsDomainResolved.js +5 -0
  565. package/dist/objects/utils/UtilsDomainResolvedType.js +5 -0
  566. package/dist/objects/utils/UtilsLastShortenedLink.js +5 -0
  567. package/dist/objects/utils/UtilsLinkChecked.js +5 -0
  568. package/dist/objects/utils/UtilsLinkCheckedStatus.js +5 -0
  569. package/dist/objects/utils/UtilsLinkStats.js +5 -0
  570. package/dist/objects/utils/UtilsLinkStatsExtended.js +5 -0
  571. package/dist/objects/utils/UtilsShortLink.js +5 -0
  572. package/dist/objects/utils/UtilsStats.js +5 -0
  573. package/dist/objects/utils/UtilsStatsCity.js +5 -0
  574. package/dist/objects/utils/UtilsStatsCountry.js +5 -0
  575. package/dist/objects/utils/UtilsStatsExtended.js +5 -0
  576. package/dist/objects/utils/UtilsStatsSexAge.js +5 -0
  577. package/dist/objects/video/VideoEpisode.js +5 -0
  578. package/dist/objects/video/VideoLiveCategory.js +5 -0
  579. package/dist/objects/video/VideoLiveInfo.js +5 -0
  580. package/dist/objects/video/VideoLiveSettings.js +5 -0
  581. package/dist/objects/video/VideoPlaylistPrivacyCategory.js +5 -0
  582. package/dist/objects/video/VideoSaveResult.js +5 -0
  583. package/dist/objects/video/VideoStreamInputParams.js +5 -0
  584. package/dist/objects/video/VideoVideo.js +5 -0
  585. package/dist/objects/video/VideoVideoAlbum.js +5 -0
  586. package/dist/objects/video/VideoVideoAlbumFull.js +5 -0
  587. package/dist/objects/video/VideoVideoFiles.js +5 -0
  588. package/dist/objects/video/VideoVideoFull.js +5 -0
  589. package/dist/objects/video/VideoVideoImage.js +5 -0
  590. package/dist/objects/wall/WallAppPost.js +5 -0
  591. package/dist/objects/wall/WallAttachedNote.js +5 -0
  592. package/dist/objects/wall/WallCommentAttachment.js +5 -0
  593. package/dist/objects/wall/WallCommentAttachmentType.js +5 -0
  594. package/dist/objects/wall/WallGeo.js +5 -0
  595. package/dist/objects/wall/WallGetFilter.js +5 -0
  596. package/dist/objects/wall/WallGraffiti.js +5 -0
  597. package/dist/objects/wall/WallPostCopyright.js +5 -0
  598. package/dist/objects/wall/WallPostSource.js +5 -0
  599. package/dist/objects/wall/WallPostSourceType.js +5 -0
  600. package/dist/objects/wall/WallPostType.js +5 -0
  601. package/dist/objects/wall/WallPostedPhoto.js +5 -0
  602. package/dist/objects/wall/WallViews.js +5 -0
  603. package/dist/objects/wall/WallWallComment.js +5 -0
  604. package/dist/objects/wall/WallWallCommentDonut.js +5 -0
  605. package/dist/objects/wall/WallWallCommentDonutPlaceholder.js +5 -0
  606. package/dist/objects/wall/WallWallItem.js +5 -0
  607. package/dist/objects/wall/WallWallpostAttachment.js +5 -0
  608. package/dist/objects/wall/WallWallpostAttachmentType.js +5 -0
  609. package/dist/objects/wall/WallWallpostCommentsDonut.js +5 -0
  610. package/dist/objects/wall/WallWallpostCommentsDonutPlaceholder.js +5 -0
  611. package/dist/objects/wall/WallWallpostDonut.js +5 -0
  612. package/dist/objects/wall/WallWallpostDonutPlaceholder.js +5 -0
  613. package/dist/objects/wall/WallWallpostFull.js +21 -0
  614. package/dist/objects/widgets/WidgetsCommentMedia.js +5 -0
  615. package/dist/objects/widgets/WidgetsCommentMediaType.js +5 -0
  616. package/dist/objects/widgets/WidgetsCommentReplies.js +5 -0
  617. package/dist/objects/widgets/WidgetsCommentRepliesItem.js +5 -0
  618. package/dist/objects/widgets/WidgetsWidgetComment.js +5 -0
  619. package/dist/objects/widgets/WidgetsWidgetLikes.js +5 -0
  620. package/dist/objects/widgets/WidgetsWidgetPage.js +5 -0
  621. package/dist/types.js +2 -2
  622. package/dist/utils.js +10 -11
  623. package/package.json +10 -7
  624. package/src/constants.ts +1 -1
  625. package/src/generators/APITypingsGenerator.ts +164 -17
  626. package/src/generators/typeString.ts +7 -3
  627. package/src/generators/utils/mergeImports.ts +17 -0
package/dist/constants.js CHANGED
@@ -2,7 +2,7 @@
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.baseAPIParamsInterfaceName = exports.basePropertyExistsRef = exports.baseOkResponseRef = exports.baseBoolIntRef = exports.newLineChar = exports.tabChar = exports.spaceChar = exports.primitiveTypes = exports.scalarTypes = exports.PropertyType = exports.DEFAULT_API_VERSION = void 0;
4
4
  const os_1 = require("os");
5
- exports.DEFAULT_API_VERSION = '5.130';
5
+ exports.DEFAULT_API_VERSION = '5.131';
6
6
  exports.PropertyType = {
7
7
  INTEGER: 'integer',
8
8
  BOOLEAN: 'boolean',
package/dist/generator.js CHANGED
@@ -1,6 +1,6 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.generateImportsBlock = void 0;
3
+ exports.generateImportsBlock = generateImportsBlock;
4
4
  const constants_1 = require("./constants");
5
5
  const helpers_1 = require("./helpers");
6
6
  const types_1 = require("./types");
@@ -9,11 +9,11 @@ function generateImportsBlock(refs, section, type) {
9
9
  let importRefs = Object.entries(refs)
10
10
  .filter(([, type]) => type === types_1.RefsDictionaryType.GenerateAndImport)
11
11
  .map(([key]) => key);
12
- importRefs = utils_1.uniqueArray(importRefs);
12
+ importRefs = (0, utils_1.uniqueArray)(importRefs);
13
13
  const paths = {};
14
14
  importRefs.forEach((objectName) => {
15
- const importSection = helpers_1.getSectionFromObjectName(objectName);
16
- const interfaceName = helpers_1.getInterfaceName(objectName);
15
+ const importSection = (0, helpers_1.getSectionFromObjectName)(objectName);
16
+ const interfaceName = (0, helpers_1.getInterfaceName)(objectName);
17
17
  let path;
18
18
  if (type === types_1.ObjectType.Object) {
19
19
  if (section === importSection) {
@@ -32,10 +32,9 @@ function generateImportsBlock(refs, section, type) {
32
32
  paths[path].push(interfaceName);
33
33
  });
34
34
  const importLines = [];
35
- utils_1.sortArrayAlphabetically(Object.keys(paths)).forEach((path) => {
36
- const interfaces = utils_1.sortArrayAlphabetically(paths[path]).join(', ');
35
+ (0, utils_1.sortArrayAlphabetically)(Object.keys(paths)).forEach((path) => {
36
+ const interfaces = (0, utils_1.sortArrayAlphabetically)(paths[path]).join(', ');
37
37
  importLines.push(`import { ${interfaces} } from '${path}';`);
38
38
  });
39
39
  return importLines.join(constants_1.newLineChar);
40
40
  }
41
- exports.generateImportsBlock = generateImportsBlock;
@@ -17,11 +17,12 @@ const CommentCodeBlock_1 = require("./CommentCodeBlock");
17
17
  const log_1 = require("../log");
18
18
  const generator_1 = require("../generator");
19
19
  const typeString_1 = require("./typeString");
20
+ const mergeImports_1 = require("./utils/mergeImports");
20
21
  class APITypingsGenerator {
21
22
  constructor(options) {
22
23
  this.needEmit = options.needEmit;
23
24
  this.outDirPath = options.outDirPath;
24
- this.methodsPattern = helpers_1.prepareMethodsPattern(options.methodsPattern);
25
+ this.methodsPattern = (0, helpers_1.prepareMethodsPattern)(options.methodsPattern);
25
26
  this.methodsDefinitions = options.methodsDefinitions;
26
27
  this.methodsList = options.methodsDefinitions.methods || [];
27
28
  this.objects = this.convertJSONSchemaDictionary(options.objects);
@@ -78,10 +79,7 @@ class APITypingsGenerator {
78
79
  codeBlocks: [],
79
80
  };
80
81
  this.methodFilesMap[section] = {
81
- imports: {
82
- ...methodFile.imports,
83
- ...imports,
84
- },
82
+ imports: (0, mergeImports_1.mergeImports)(methodFile.imports, imports),
85
83
  codeBlocks: [...methodFile.codeBlocks, ...codeBlocks],
86
84
  };
87
85
  }
@@ -102,7 +100,7 @@ class APITypingsGenerator {
102
100
  allOfItem = tempAllOfItem;
103
101
  }
104
102
  else {
105
- log_1.consoleLogErrorAndExit(`${refName} ref not found`);
103
+ (0, log_1.consoleLogErrorAndExit)(`${refName} ref not found`);
106
104
  }
107
105
  }
108
106
  if (allOfItem.allOf) {
@@ -118,7 +116,7 @@ class APITypingsGenerator {
118
116
  let properties = object.properties || [];
119
117
  if (object.allOf) {
120
118
  this.collectAllOf(object).forEach((allOfItem) => {
121
- object.required = utils_1.uniqueArray([...object.required, ...allOfItem.required]);
119
+ object.required = (0, utils_1.uniqueArray)([...object.required, ...allOfItem.required]);
122
120
  let additionalProperties = [];
123
121
  if (allOfItem.properties) {
124
122
  additionalProperties = allOfItem.properties;
@@ -126,7 +124,7 @@ class APITypingsGenerator {
126
124
  else if (allOfItem.ref) {
127
125
  const refObject = this.getObjectByRef(allOfItem.ref);
128
126
  if (!refObject) {
129
- log_1.consoleLogErrorAndExit(`${object.name} ref object in allOf is not found`);
127
+ (0, log_1.consoleLogErrorAndExit)(`${object.name} ref object in allOf is not found`);
130
128
  return;
131
129
  }
132
130
  additionalProperties = this.getObjectProperties(refObject, deep + 1);
@@ -166,7 +164,7 @@ class APITypingsGenerator {
166
164
  const codeBlock = new TypeCodeBlock_1.TypeCodeBlock({
167
165
  type: TypeCodeBlock_1.TypeScriptCodeTypes.Interface,
168
166
  refName: object.name,
169
- interfaceName: helpers_1.getInterfaceName(object.name),
167
+ interfaceName: (0, helpers_1.getInterfaceName)(object.name),
170
168
  needExport: true,
171
169
  description: object.oneOf ? 'Object has oneOf' : '',
172
170
  properties: [],
@@ -175,16 +173,16 @@ class APITypingsGenerator {
175
173
  return this.getPrimitiveInterfaceCode(object);
176
174
  }
177
175
  properties.forEach((property) => {
178
- const { imports: newImports, value, codeBlocks: newCodeBlocks, description, } = typeString_1.generateTypeString(property, this.objects, {
176
+ const { imports: newImports, value, codeBlocks: newCodeBlocks, description, } = (0, typeString_1.generateTypeString)(property, this.objects, {
179
177
  objectParentName: object.name,
180
178
  });
181
- imports = { ...imports, ...newImports };
179
+ imports = (0, mergeImports_1.mergeImports)(imports, newImports);
182
180
  codeBlocks = [...codeBlocks, ...newCodeBlocks];
183
181
  codeBlock.addProperty({
184
182
  name: property.name,
185
183
  description: [property.description, description].join(constants_1.newLineChar),
186
184
  value,
187
- isRequired: helpers_1.isPatternProperty(property.name) || property.isRequired,
185
+ isRequired: (0, helpers_1.isPatternProperty)(property.name) || property.isRequired,
188
186
  });
189
187
  });
190
188
  return {
@@ -198,7 +196,7 @@ class APITypingsGenerator {
198
196
  return this.getObjectCodeBlockAsType(object);
199
197
  }
200
198
  if (object.enum) {
201
- const { codeBlocks } = enums_1.generateEnumAsUnionType(object);
199
+ const { codeBlocks } = (0, enums_1.generateEnumAsUnionType)(object);
202
200
  return {
203
201
  codeBlocks: codeBlocks,
204
202
  imports: {},
@@ -215,7 +213,7 @@ class APITypingsGenerator {
215
213
  }
216
214
  this.generatedObjects[object.name] = true;
217
215
  let result = false;
218
- if (object.ref) {
216
+ if (object.ref && object.type === 'object') {
219
217
  result = this.getPrimitiveInterfaceCode(object);
220
218
  }
221
219
  else {
@@ -232,39 +230,39 @@ class APITypingsGenerator {
232
230
  break;
233
231
  default:
234
232
  if (!result) {
235
- log_1.consoleLogErrorAndExit(helpers_1.getInterfaceName(object.name), 'Unknown type of object', object);
233
+ (0, log_1.consoleLogErrorAndExit)((0, helpers_1.getInterfaceName)(object.name), 'Unknown type of object', object);
236
234
  }
237
235
  }
238
236
  }
239
237
  if (!result) {
240
- log_1.consoleLogErrorAndExit('empty object result', object);
238
+ (0, log_1.consoleLogErrorAndExit)('empty object result', object);
241
239
  return;
242
240
  }
243
241
  const { codeBlocks, imports } = result;
244
242
  const stringCodeBlocks = codeBlocks.map((codeBlock) => codeBlock.toString());
245
- const section = helpers_1.getSectionFromObjectName(object.name);
243
+ const section = (0, helpers_1.getSectionFromObjectName)(object.name);
246
244
  delete imports[object.name];
247
- stringCodeBlocks.unshift(generator_1.generateImportsBlock(imports, section, types_1.ObjectType.Object));
245
+ stringCodeBlocks.unshift((0, generator_1.generateImportsBlock)(imports, section, types_1.ObjectType.Object));
248
246
  if (stringCodeBlocks.length > 0) {
249
247
  const code = stringCodeBlocks.join(constants_1.newLineChar.repeat(2));
250
- this.registerResultFile(path_1.default.join('objects', section, `${helpers_1.getInterfaceName(object.name)}.ts`), code);
248
+ this.registerResultFile(path_1.default.join('objects', section, `${(0, helpers_1.getInterfaceName)(object.name)}.ts`), code);
251
249
  }
252
250
  codeBlocks.forEach((codeBlock) => {
253
251
  if (codeBlock instanceof TypeCodeBlock_1.TypeCodeBlock && codeBlock.needExport && codeBlock.interfaceName) {
254
- this.registerExport(`./objects/${section}/${helpers_1.getInterfaceName(object.name)}.ts`, codeBlock.interfaceName);
252
+ this.registerExport(`./objects/${section}/${(0, helpers_1.getInterfaceName)(object.name)}.ts`, codeBlock.interfaceName);
255
253
  }
256
254
  });
257
255
  this.generateObjectsFromImports(imports);
258
256
  }
259
257
  getObjectByRef(ref) {
260
- const refName = helpers_1.getObjectNameByRef(ref);
258
+ const refName = (0, helpers_1.getObjectNameByRef)(ref);
261
259
  return this.objects[refName];
262
260
  }
263
261
  generateObjectsFromRefs(refs) {
264
262
  Object.keys(refs).forEach((ref) => {
265
263
  const refObject = this.getObjectByRef(ref);
266
264
  if (!refObject) {
267
- log_1.consoleLogInfo(`"${ref}" ref is not found`);
265
+ (0, log_1.consoleLogInfo)(`"${ref}" ref is not found`);
268
266
  return;
269
267
  }
270
268
  this.generateObject(refObject);
@@ -274,29 +272,29 @@ class APITypingsGenerator {
274
272
  Object.keys(imports).forEach((ref) => {
275
273
  const refObject = this.getObjectByRef(ref);
276
274
  if (!refObject) {
277
- log_1.consoleLogInfo(`"${ref}" ref is not found`);
275
+ (0, log_1.consoleLogInfo)(`"${ref}" ref is not found`);
278
276
  return;
279
277
  }
280
278
  this.generateObject(refObject);
281
279
  });
282
280
  }
283
281
  generateMethodParams(methodInfo) {
284
- const section = helpers_1.getMethodSection(methodInfo.name);
285
- const interfaceName = `${methodInfo.name} params`;
282
+ const section = (0, helpers_1.getMethodSection)(methodInfo.name);
283
+ const interfaceName = (0, helpers_1.getInterfaceName)(`${methodInfo.name} params`);
286
284
  let imports = {};
287
285
  let codeBlocks = [];
288
286
  const codeBlock = new TypeCodeBlock_1.TypeCodeBlock({
289
287
  type: TypeCodeBlock_1.TypeScriptCodeTypes.Interface,
290
- interfaceName: helpers_1.getInterfaceName(interfaceName),
288
+ interfaceName: interfaceName,
291
289
  needExport: true,
292
290
  allowEmptyInterface: true,
293
291
  properties: [],
294
292
  });
295
293
  methodInfo.parameters.forEach((property) => {
296
- const { imports: newImports, value, codeBlocks: newCodeBlocks, } = typeString_1.generateTypeString(property, this.objects, {
294
+ const { imports: newImports, value, codeBlocks: newCodeBlocks, } = (0, typeString_1.generateTypeString)(property, this.objects, {
297
295
  needEnumNamesConstant: false,
298
296
  });
299
- imports = { ...imports, ...newImports };
297
+ imports = (0, mergeImports_1.mergeImports)(imports, newImports);
300
298
  codeBlocks = [...codeBlocks, ...newCodeBlocks];
301
299
  codeBlock.addProperty({
302
300
  name: property.name,
@@ -307,9 +305,10 @@ class APITypingsGenerator {
307
305
  });
308
306
  this.appendToFileMap(section, imports, [...codeBlocks, codeBlock]);
309
307
  this.generateObjectsFromImports(imports);
308
+ return interfaceName;
310
309
  }
311
310
  getResponseObjectRef(ref) {
312
- const objectName = helpers_1.getObjectNameByRef(ref);
311
+ const objectName = (0, helpers_1.getObjectNameByRef)(ref);
313
312
  if (this.responses[objectName]) {
314
313
  return this.responses[objectName];
315
314
  }
@@ -319,15 +318,15 @@ class APITypingsGenerator {
319
318
  let codeBlocks = [];
320
319
  let imports = {};
321
320
  if (object.enum) {
322
- const { codeBlocks: newCodeBlocks } = enums_1.generateEnumAsUnionType(object);
321
+ const { codeBlocks: newCodeBlocks } = (0, enums_1.generateEnumAsUnionType)(object);
323
322
  codeBlocks = [...newCodeBlocks];
324
323
  }
325
324
  else {
326
- const { imports: newImports, value, codeBlocks: newCodeBlocks, } = typeString_1.generateTypeString(object, this.objects);
325
+ const { imports: newImports, value, codeBlocks: newCodeBlocks, } = (0, typeString_1.generateTypeString)(object, this.objects);
327
326
  const codeBlock = new TypeCodeBlock_1.TypeCodeBlock({
328
327
  type: TypeCodeBlock_1.TypeScriptCodeTypes.Type,
329
328
  refName: object.name,
330
- interfaceName: helpers_1.getInterfaceName(object.name),
329
+ interfaceName: (0, helpers_1.getInterfaceName)(object.name),
331
330
  description: object.description,
332
331
  needExport: true,
333
332
  properties: [],
@@ -343,13 +342,13 @@ class APITypingsGenerator {
343
342
  };
344
343
  }
345
344
  getResponseCodeBlockAsType(object, response) {
346
- const { imports, value, codeBlocks, description } = typeString_1.generateTypeString(response, this.objects, {
345
+ const { imports, value, codeBlocks, description } = (0, typeString_1.generateTypeString)(response, this.objects, {
347
346
  objectParentName: ' ', // TODO: Refactor
348
347
  });
349
348
  const codeBlock = new TypeCodeBlock_1.TypeCodeBlock({
350
349
  type: TypeCodeBlock_1.TypeScriptCodeTypes.Type,
351
350
  refName: object.name,
352
- interfaceName: helpers_1.getInterfaceName(object.name),
351
+ interfaceName: (0, helpers_1.getInterfaceName)(object.name),
353
352
  description: [object.description, description || ''].join(constants_1.newLineChar),
354
353
  needExport: true,
355
354
  properties: [],
@@ -364,7 +363,7 @@ class APITypingsGenerator {
364
363
  }
365
364
  getResponseCodeBlock(object) {
366
365
  if (!object.ref) {
367
- log_1.consoleLogError(`response schema object "${object.name}" has no ref`, object);
366
+ (0, log_1.consoleLogError)(`response schema object "${object.name}" has no ref`, object);
368
367
  return false;
369
368
  }
370
369
  const nonBuildableRefs = {
@@ -372,13 +371,13 @@ class APITypingsGenerator {
372
371
  [constants_1.baseOkResponseRef]: true,
373
372
  [constants_1.basePropertyExistsRef]: true,
374
373
  };
375
- const objectName = helpers_1.getObjectNameByRef(object.ref);
374
+ const objectName = (0, helpers_1.getObjectNameByRef)(object.ref);
376
375
  if (nonBuildableRefs[objectName]) {
377
376
  return this.getObjectCodeBlockAsType(object);
378
377
  }
379
378
  let response = this.getResponseObjectRef(object.ref);
380
379
  if (!response) {
381
- log_1.consoleLogError(`response schema object "${object.name}" has no response`, object);
380
+ (0, log_1.consoleLogError)(`response schema object "${object.name}" has no response`, object);
382
381
  return false;
383
382
  }
384
383
  // VK API JSON Schema specific heuristic
@@ -399,14 +398,14 @@ class APITypingsGenerator {
399
398
  case 'array':
400
399
  return this.getResponseCodeBlockAsType(object, response);
401
400
  default:
402
- log_1.consoleLogErrorAndExit(response.name, 'unknown type', response.type);
401
+ (0, log_1.consoleLogErrorAndExit)(response.name, 'unknown type', response.type);
403
402
  return false;
404
403
  }
405
404
  }
406
405
  generateResponse(section, response) {
407
406
  const result = this.getResponseCodeBlock(response);
408
407
  if (!result) {
409
- return;
408
+ throw new Error('Unable to generate response');
410
409
  }
411
410
  const { codeBlocks, imports } = result;
412
411
  this.appendToFileMap(section, imports, codeBlocks);
@@ -414,13 +413,13 @@ class APITypingsGenerator {
414
413
  }
415
414
  generateMethodParamsAndResponses(method) {
416
415
  const { name: methodName } = method;
417
- const section = helpers_1.getMethodSection(methodName);
418
- if (!utils_1.isObject(method.responses)) {
419
- log_1.consoleLogErrorAndExit(`"${methodName}" "responses" field is not an object.`);
416
+ const section = (0, helpers_1.getMethodSection)(methodName);
417
+ if (!(0, utils_1.isObject)(method.responses)) {
418
+ (0, log_1.consoleLogErrorAndExit)(`"${methodName}" "responses" field is not an object.`);
420
419
  return;
421
420
  }
422
421
  if (Object.keys(method.responses).length === 0) {
423
- log_1.consoleLogErrorAndExit(`"${methodName}" "responses" field is empty.`);
422
+ (0, log_1.consoleLogErrorAndExit)(`"${methodName}" "responses" field is empty.`);
424
423
  return;
425
424
  }
426
425
  // Comment with method name for visual sections in file
@@ -429,38 +428,99 @@ class APITypingsGenerator {
429
428
  methodNameComment.appendLines(['', method.description]);
430
429
  }
431
430
  this.appendToFileMap(section, {}, [methodNameComment]);
432
- const { method: normalizedMethod, parameterRefs } = methods_1.normalizeMethodInfo(method);
431
+ const { method: normalizedMethod, parameterRefs } = (0, methods_1.normalizeMethodInfo)(method);
433
432
  method = normalizedMethod;
434
433
  this.generateObjectsFromRefs(parameterRefs);
435
- this.generateMethodParams(new SchemaObject_1.SchemaObject(method.name, method));
436
- Object.entries(method.responses).forEach(([responseName, responseObject]) => {
434
+ const methodParamsInterfaceName = this.generateMethodParams(new SchemaObject_1.SchemaObject(method.name, method));
435
+ const methodResponsesInterfaceName = Object.entries(method.responses)
436
+ .map(([responseName, responseObject]) => {
437
437
  if (this.ignoredResponses[methodName] && this.ignoredResponses[methodName][responseName]) {
438
438
  return;
439
439
  }
440
440
  const name = `${methodName}_${responseName}`;
441
- this.generateResponse(section, new SchemaObject_1.SchemaObject(name, responseObject));
441
+ const interfaceName = (0, helpers_1.getInterfaceName)(name);
442
+ try {
443
+ this.generateResponse(section, new SchemaObject_1.SchemaObject(name, responseObject));
444
+ return interfaceName;
445
+ }
446
+ catch (e) {
447
+ return;
448
+ }
449
+ })
450
+ .filter(Boolean);
451
+ this.generateMethodType(methodName, methodParamsInterfaceName, methodResponsesInterfaceName);
452
+ }
453
+ generateMethodType(methodName, methodParamsInterfaceName, methodResponsesInterfaceName) {
454
+ const codeBlock = new TypeCodeBlock_1.TypeCodeBlock({
455
+ type: TypeCodeBlock_1.TypeScriptCodeTypes.Interface,
456
+ interfaceName: (0, helpers_1.getInterfaceName)(`${methodName} method`),
457
+ needExport: true,
458
+ allowEmptyInterface: true,
459
+ properties: [],
460
+ });
461
+ codeBlock.addProperty({
462
+ name: 'method',
463
+ value: methodName,
464
+ isRequired: true,
465
+ wrapValue: true,
466
+ });
467
+ codeBlock.addProperty({
468
+ name: 'request',
469
+ value: methodParamsInterfaceName,
470
+ isRequired: true,
471
+ });
472
+ codeBlock.addProperty({
473
+ name: 'response',
474
+ value: methodResponsesInterfaceName.length > 0
475
+ ? methodResponsesInterfaceName.join(' | ')
476
+ : 'unknown',
477
+ isRequired: true,
442
478
  });
479
+ const section = (0, helpers_1.getMethodSection)(methodName);
480
+ this.appendToFileMap(section, {}, [codeBlock]);
443
481
  }
444
482
  generateMethods() {
445
- log_1.consoleLogInfo('creating method params and responses...');
483
+ (0, log_1.consoleLogInfo)('creating method params and responses...');
446
484
  this.methodsList.forEach((methodInfo) => {
447
- if (helpers_1.isMethodNeeded(this.methodsPattern, methodInfo.name)) {
485
+ if ((0, helpers_1.isMethodNeeded)(this.methodsPattern, methodInfo.name)) {
448
486
  this.generateMethodParamsAndResponses(methodInfo);
449
487
  }
450
488
  });
451
489
  Object.keys(this.methodFilesMap).forEach((section) => {
452
490
  const { imports, codeBlocks } = this.methodFilesMap[section];
491
+ const methodNames = [];
453
492
  codeBlocks.forEach((codeBlock) => {
454
493
  if (codeBlock instanceof TypeCodeBlock_1.TypeCodeBlock && codeBlock.needExport && codeBlock.interfaceName) {
494
+ /**
495
+ * for interfaceName structure
496
+ * @see this.generateMethodType
497
+ */
498
+ if (codeBlock.interfaceName.endsWith('Method')) {
499
+ methodNames.push(codeBlock.interfaceName);
500
+ // Skip export as it will be exported in union type
501
+ return;
502
+ }
455
503
  this.registerExport(`./methods/${section}`, codeBlock.interfaceName);
456
504
  }
457
505
  });
458
- const code = [generator_1.generateImportsBlock(imports, null), ...codeBlocks];
506
+ if (methodNames.length > 0) {
507
+ const sectionMethodsCodeBlock = new TypeCodeBlock_1.TypeCodeBlock({
508
+ type: TypeCodeBlock_1.TypeScriptCodeTypes.Type,
509
+ interfaceName: (0, helpers_1.getInterfaceName)(`${section} methods union`),
510
+ needExport: true,
511
+ allowEmptyInterface: true,
512
+ value: methodNames.join(' | '),
513
+ properties: [],
514
+ });
515
+ codeBlocks.push(sectionMethodsCodeBlock);
516
+ this.registerExport(`./methods/${section}`, sectionMethodsCodeBlock.interfaceName);
517
+ }
518
+ const code = [(0, generator_1.generateImportsBlock)(imports, null), ...codeBlocks];
459
519
  this.registerResultFile(path_1.default.join('methods', `${section}.ts`), code.join(constants_1.newLineChar.repeat(2)));
460
520
  });
461
521
  }
462
522
  generateErrors() {
463
- log_1.consoleLogInfo('creating errors...');
523
+ (0, log_1.consoleLogInfo)('creating errors...');
464
524
  const code = [];
465
525
  Object.entries(this.errors)
466
526
  .reduce((acc, [name, error]) => {
@@ -485,14 +545,14 @@ class APITypingsGenerator {
485
545
  this.registerResultFile(path_1.default.join('common', 'errors.ts'), code.join(constants_1.newLineChar.repeat(2)));
486
546
  }
487
547
  createCommonTypes() {
488
- log_1.consoleLogInfo('creating common types...');
548
+ (0, log_1.consoleLogInfo)('creating common types...');
489
549
  const code = [];
490
550
  const apiVersion = this.methodsDefinitions.version || constants_1.DEFAULT_API_VERSION;
491
551
  code.push(`export const API_VERSION = '${apiVersion}'`);
492
552
  code.push('export type ValueOf<T> = T[keyof T];');
493
553
  code.push(new TypeCodeBlock_1.TypeCodeBlock({
494
554
  type: TypeCodeBlock_1.TypeScriptCodeTypes.Interface,
495
- interfaceName: helpers_1.getInterfaceName(constants_1.baseAPIParamsInterfaceName),
555
+ interfaceName: (0, helpers_1.getInterfaceName)(constants_1.baseAPIParamsInterfaceName),
496
556
  needExport: true,
497
557
  properties: [
498
558
  {
@@ -515,25 +575,82 @@ class APITypingsGenerator {
515
575
  },
516
576
  ],
517
577
  }).toString());
578
+ code.push(`
579
+ type MethodOf<M> = M extends { method: string } ? M['method'] : never;
580
+ type RequestOf<M> = M extends { request: unknown } ? M['request'] : never;
581
+ type ResponseOf<M> = M extends { response: unknown } ? M['response'] : never;
582
+
583
+ export type CreateMethodMap<Type extends { method: string }> = {
584
+ [Property in Type as Property['method']]: {
585
+ method: MethodOf<Property>;
586
+ request: RequestOf<Property>;
587
+ response: ResponseOf<Property>;
588
+ };
589
+ };
590
+ `);
518
591
  this.registerExport('./common/common', 'API_VERSION');
519
- this.registerExport('./common/common', helpers_1.getInterfaceName(constants_1.baseAPIParamsInterfaceName));
592
+ this.registerExport('./common/common', (0, helpers_1.getInterfaceName)(constants_1.baseAPIParamsInterfaceName));
593
+ this.registerExport('./common/common', 'CreateMethodMap');
520
594
  this.registerResultFile(path_1.default.join('common', 'common.ts'), code.join(constants_1.newLineChar.repeat(2)));
521
595
  }
522
596
  /**
523
597
  * This method creates index.ts file with exports of all generated params, responses and objects
524
598
  */
525
599
  createIndexExports() {
526
- log_1.consoleLogInfo('creating index.ts exports...');
600
+ (0, log_1.consoleLogInfo)('creating index.ts exports...');
527
601
  const blocks = [];
528
602
  let exportedObjects = {};
529
- utils_1.sortArrayAlphabetically(Object.keys(this.exports)).forEach((path) => {
603
+ let methodNames = new Set();
604
+ (0, utils_1.sortArrayAlphabetically)(Object.keys(this.exports)).forEach((path) => {
605
+ if (!path.startsWith('./methods/')) {
606
+ return;
607
+ }
608
+ const objects = Object.keys(this.exports[path]);
609
+ if (!objects.length) {
610
+ return;
611
+ }
612
+ const blockLines = [];
613
+ (0, utils_1.sortArrayAlphabetically)(objects).forEach((object) => {
614
+ /**
615
+ * for interfaceName structure
616
+ * @see this.generateMethods
617
+ */
618
+ if (!methodNames.has(object) && /^[A-Z][a-zA-Z0-9]*MethodsUnion$/.test(object)) {
619
+ methodNames.add(object);
620
+ exportedObjects[object] = true; // To skip in export block
621
+ blockLines.push(` ${object},`);
622
+ }
623
+ });
624
+ if (blockLines.length > 0) {
625
+ blockLines.unshift('import type {');
626
+ blockLines.push(`} from '${path.replace('.ts', '')}';`);
627
+ blocks.push(blockLines.join(constants_1.newLineChar));
628
+ }
629
+ });
630
+ blocks.push("import type { CreateMethodMap } from './common/common';");
631
+ const methodsCodeBlock = new TypeCodeBlock_1.TypeCodeBlock({
632
+ type: TypeCodeBlock_1.TypeScriptCodeTypes.Type,
633
+ interfaceName: 'ApiMethodsUnion',
634
+ needExport: false,
635
+ properties: [],
636
+ value: Array.from(methodNames).join(' | '),
637
+ });
638
+ blocks.push(methodsCodeBlock.toString());
639
+ blocks.push(new TypeCodeBlock_1.TypeCodeBlock({
640
+ type: TypeCodeBlock_1.TypeScriptCodeTypes.Type,
641
+ interfaceName: 'ApiMethodsMap',
642
+ needExport: true,
643
+ properties: [],
644
+ value: `CreateMethodMap<${methodsCodeBlock.interfaceName}>`,
645
+ }).toString());
646
+ (0, utils_1.sortArrayAlphabetically)(Object.keys(this.exports)).forEach((path) => {
530
647
  const objects = Object.keys(this.exports[path]);
531
648
  if (!objects.length) {
532
649
  return;
533
650
  }
534
651
  const blockLines = [];
535
652
  blockLines.push('export {');
536
- utils_1.sortArrayAlphabetically(objects).forEach((object) => {
653
+ (0, utils_1.sortArrayAlphabetically)(objects).forEach((object) => {
537
654
  if (exportedObjects[object]) {
538
655
  return;
539
656
  }
@@ -544,21 +661,21 @@ class APITypingsGenerator {
544
661
  blocks.push(blockLines.join(constants_1.newLineChar));
545
662
  });
546
663
  this.registerResultFile('index.ts', blocks.join(constants_1.newLineChar.repeat(2)));
547
- log_1.consoleLogInfo(`${Object.keys(exportedObjects).length} objects successfully generated`);
664
+ (0, log_1.consoleLogInfo)(`${Object.keys(exportedObjects).length} objects successfully generated`);
548
665
  }
549
666
  generate() {
550
- log_1.consoleLogInfo('generate');
667
+ (0, log_1.consoleLogInfo)('generate');
551
668
  this.generateMethods();
552
669
  this.generateErrors();
553
670
  if (this.needEmit) {
554
671
  this.createCommonTypes();
555
672
  this.createIndexExports();
556
- log_1.consoleLogInfo('prepare out directory');
557
- helpers_1.prepareBuildDirectory(this.outDirPath);
558
- log_1.consoleLogInfo('write files');
673
+ (0, log_1.consoleLogInfo)('prepare out directory');
674
+ (0, helpers_1.prepareBuildDirectory)(this.outDirPath);
675
+ (0, log_1.consoleLogInfo)('write files');
559
676
  Object.keys(this.resultFiles).forEach((filePath) => {
560
677
  const fileContent = this.resultFiles[filePath];
561
- helpers_1.writeFile(path_1.default.join(this.outDirPath, filePath), fileContent);
678
+ (0, helpers_1.writeFile)(path_1.default.join(this.outDirPath, filePath), fileContent);
562
679
  });
563
680
  }
564
681
  }
@@ -6,8 +6,8 @@ const helpers_1 = require("../helpers");
6
6
  const log_1 = require("../log");
7
7
  class SchemaObject {
8
8
  constructor(name, object, parentName) {
9
- if (!utils_1.isObject(object)) {
10
- log_1.consoleLogErrorAndExit(`[SchemaObject] "${name}" is not an object.`, {
9
+ if (!(0, utils_1.isObject)(object)) {
10
+ (0, log_1.consoleLogErrorAndExit)(`[SchemaObject] "${name}" is not an object.`, {
11
11
  name,
12
12
  object,
13
13
  parentName,
@@ -18,16 +18,16 @@ class SchemaObject {
18
18
  if (parentName) {
19
19
  this.parentObjectName = parentName;
20
20
  }
21
- if (utils_1.isString(object.type)) {
21
+ if ((0, utils_1.isString)(object.type)) {
22
22
  this.type = object.type;
23
23
  }
24
24
  else if (Array.isArray(object.type)) {
25
25
  this.type = object.type;
26
26
  }
27
- if (utils_1.isString(object.description)) {
27
+ if ((0, utils_1.isString)(object.description)) {
28
28
  this.description = object.description;
29
29
  }
30
- if (utils_1.isString(object.$ref)) {
30
+ if ((0, utils_1.isString)(object.$ref)) {
31
31
  this.ref = object.$ref;
32
32
  }
33
33
  if (Array.isArray(object.enum)) {
@@ -59,10 +59,10 @@ class SchemaObject {
59
59
  }
60
60
  if (object.patternProperties) {
61
61
  Object.entries(object.patternProperties).forEach(([propertyName, property]) => {
62
- this.properties.push(new SchemaObject(helpers_1.transformPatternPropertyName(propertyName), property, name));
62
+ this.properties.push(new SchemaObject((0, helpers_1.transformPatternPropertyName)(propertyName), property, name));
63
63
  });
64
64
  }
65
- if (utils_1.isObject(object.items)) {
65
+ if ((0, utils_1.isObject)(object.items)) {
66
66
  this.items = new SchemaObject(name + '_items', object.items, this.name);
67
67
  }
68
68
  if (Array.isArray(object.oneOf) && object.oneOf.length > 0) {