@book000/twitterts 0.57.55 → 0.58.1
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.
- package/dist/converter.d.ts +48 -0
- package/dist/converter.d.ts.map +1 -1
- package/dist/converter.js +94 -17
- package/dist/converter.js.map +1 -1
- package/dist/generate-types/custom-types-generator.d.ts +60 -1
- package/dist/generate-types/custom-types-generator.d.ts.map +1 -1
- package/dist/generate-types/custom-types-generator.js +213 -24
- package/dist/generate-types/custom-types-generator.js.map +1 -1
- package/dist/generate-types/endpoint-type-generator.d.ts +59 -5
- package/dist/generate-types/endpoint-type-generator.d.ts.map +1 -1
- package/dist/generate-types/endpoint-type-generator.js +63 -9
- package/dist/generate-types/endpoint-type-generator.js.map +1 -1
- package/dist/generate-types/types-generator.d.ts +42 -1
- package/dist/generate-types/types-generator.d.ts.map +1 -1
- package/dist/generate-types/types-generator.js +28 -6
- package/dist/generate-types/types-generator.js.map +1 -1
- package/dist/generate-types/utils.d.ts +39 -0
- package/dist/generate-types/utils.d.ts.map +1 -1
- package/dist/generate-types/utils.js +39 -0
- package/dist/generate-types/utils.js.map +1 -1
- package/dist/generate-types.js +65 -23
- package/dist/generate-types.js.map +1 -1
- package/dist/migrate-saved-response.js +24 -4
- package/dist/migrate-saved-response.js.map +1 -1
- package/dist/models/exceptions.d.ts +33 -0
- package/dist/models/exceptions.d.ts.map +1 -1
- package/dist/models/exceptions.js +33 -0
- package/dist/models/exceptions.js.map +1 -1
- package/dist/models/responses/custom/custom-entity-video-info-object.d.ts +11 -0
- package/dist/models/responses/custom/custom-entity-video-info-object.d.ts.map +1 -0
- package/dist/models/responses/custom/custom-entity-video-info-object.js +4 -0
- package/dist/models/responses/custom/custom-entity-video-info-object.js.map +1 -0
- package/dist/models/responses/custom/custom-graph-qltimeline-success-response.d.ts +11372 -3028
- package/dist/models/responses/custom/custom-graph-qltimeline-success-response.d.ts.map +1 -1
- package/dist/models/responses/custom/custom-graph-qltimeline-success-response.js +1 -0
- package/dist/models/responses/custom/custom-graph-qltimeline-success-response.js.map +1 -1
- package/dist/models/responses/custom/custom-search-timeline-entry.d.ts +2225 -316
- package/dist/models/responses/custom/custom-search-timeline-entry.d.ts.map +1 -1
- package/dist/models/responses/custom/custom-search-timeline-entry.js +1 -0
- package/dist/models/responses/custom/custom-search-timeline-entry.js.map +1 -1
- package/dist/models/responses/custom/custom-timeline-tweet-entry.d.ts +9410 -3511
- package/dist/models/responses/custom/custom-timeline-tweet-entry.d.ts.map +1 -1
- package/dist/models/responses/custom/custom-timeline-tweet-entry.js +1 -0
- package/dist/models/responses/custom/custom-timeline-tweet-entry.js.map +1 -1
- package/dist/models/responses/custom/custom-tweet-legacy-object.d.ts +4409 -1115
- package/dist/models/responses/custom/custom-tweet-legacy-object.d.ts.map +1 -1
- package/dist/models/responses/custom/custom-tweet-legacy-object.js +1 -0
- package/dist/models/responses/custom/custom-tweet-legacy-object.js.map +1 -1
- package/dist/models/responses/custom/custom-tweet-object.d.ts +10845 -2154
- package/dist/models/responses/custom/custom-tweet-object.d.ts.map +1 -1
- package/dist/models/responses/custom/custom-tweet-object.js +1 -0
- package/dist/models/responses/custom/custom-tweet-object.js.map +1 -1
- package/dist/models/responses/custom/custom-user-legacy-object.d.ts +9 -8
- package/dist/models/responses/custom/custom-user-legacy-object.d.ts.map +1 -1
- package/dist/models/responses/custom/custom-user-legacy-object.js +1 -0
- package/dist/models/responses/custom/custom-user-legacy-object.js.map +1 -1
- package/dist/models/responses/custom/custom-user-like-tweet-entry.d.ts +1483 -1224
- package/dist/models/responses/custom/custom-user-like-tweet-entry.d.ts.map +1 -1
- package/dist/models/responses/custom/custom-user-like-tweet-entry.js +1 -0
- package/dist/models/responses/custom/custom-user-like-tweet-entry.js.map +1 -1
- package/dist/models/responses/custom/custom-user-tweet-entry.d.ts +10995 -2446
- package/dist/models/responses/custom/custom-user-tweet-entry.d.ts.map +1 -1
- package/dist/models/responses/custom/custom-user-tweet-entry.js +1 -0
- package/dist/models/responses/custom/custom-user-tweet-entry.js.map +1 -1
- package/dist/models/responses/endpoints.d.ts +61 -36
- package/dist/models/responses/endpoints.d.ts.map +1 -1
- package/dist/models/responses/graphql/get/article-nudge-domains-error.d.ts +1 -0
- package/dist/models/responses/graphql/get/article-nudge-domains-error.d.ts.map +1 -1
- package/dist/models/responses/graphql/get/article-nudge-domains-error.js +1 -0
- package/dist/models/responses/graphql/get/article-nudge-domains-error.js.map +1 -1
- package/dist/models/responses/graphql/get/article-nudge-domains-success.d.ts +1 -0
- package/dist/models/responses/graphql/get/article-nudge-domains-success.d.ts.map +1 -1
- package/dist/models/responses/graphql/get/article-nudge-domains-success.js +1 -0
- package/dist/models/responses/graphql/get/article-nudge-domains-success.js.map +1 -1
- package/dist/models/responses/graphql/get/audio-space-by-id-success.d.ts +1446 -32
- package/dist/models/responses/graphql/get/audio-space-by-id-success.d.ts.map +1 -1
- package/dist/models/responses/graphql/get/audio-space-by-id-success.js +1 -0
- package/dist/models/responses/graphql/get/audio-space-by-id-success.js.map +1 -1
- package/dist/models/responses/graphql/get/authenticated-user-tflists-success.d.ts +1 -0
- package/dist/models/responses/graphql/get/authenticated-user-tflists-success.d.ts.map +1 -1
- package/dist/models/responses/graphql/get/authenticated-user-tflists-success.js +1 -0
- package/dist/models/responses/graphql/get/authenticated-user-tflists-success.js.map +1 -1
- package/dist/models/responses/graphql/get/bookmarks-success.d.ts +1 -0
- package/dist/models/responses/graphql/get/bookmarks-success.d.ts.map +1 -1
- package/dist/models/responses/graphql/get/bookmarks-success.js +1 -0
- package/dist/models/responses/graphql/get/bookmarks-success.js.map +1 -1
- package/dist/models/responses/graphql/get/communities-tab-bar-item-query-error.d.ts +8 -0
- package/dist/models/responses/graphql/get/communities-tab-bar-item-query-error.d.ts.map +1 -0
- package/dist/models/responses/graphql/get/communities-tab-bar-item-query-error.js +4 -0
- package/dist/models/responses/graphql/get/communities-tab-bar-item-query-error.js.map +1 -0
- package/dist/models/responses/graphql/get/communities-tab-bar-item-query-success.d.ts +7 -1
- package/dist/models/responses/graphql/get/communities-tab-bar-item-query-success.d.ts.map +1 -1
- package/dist/models/responses/graphql/get/communities-tab-bar-item-query-success.js +1 -0
- package/dist/models/responses/graphql/get/communities-tab-bar-item-query-success.js.map +1 -1
- package/dist/models/responses/graphql/get/connect-tab-timeline-success.d.ts +1 -0
- package/dist/models/responses/graphql/get/connect-tab-timeline-success.d.ts.map +1 -1
- package/dist/models/responses/graphql/get/connect-tab-timeline-success.js +1 -0
- package/dist/models/responses/graphql/get/connect-tab-timeline-success.js.map +1 -1
- package/dist/models/responses/graphql/get/data-saver-mode-error.d.ts +1 -0
- package/dist/models/responses/graphql/get/data-saver-mode-error.d.ts.map +1 -1
- package/dist/models/responses/graphql/get/data-saver-mode-error.js +1 -0
- package/dist/models/responses/graphql/get/data-saver-mode-error.js.map +1 -1
- package/dist/models/responses/graphql/get/data-saver-mode-success.d.ts +1 -0
- package/dist/models/responses/graphql/get/data-saver-mode-success.d.ts.map +1 -1
- package/dist/models/responses/graphql/get/data-saver-mode-success.js +1 -0
- package/dist/models/responses/graphql/get/data-saver-mode-success.js.map +1 -1
- package/dist/models/responses/graphql/get/dmpinned-inbox-query-success.d.ts +1 -0
- package/dist/models/responses/graphql/get/dmpinned-inbox-query-success.d.ts.map +1 -1
- package/dist/models/responses/graphql/get/dmpinned-inbox-query-success.js +1 -0
- package/dist/models/responses/graphql/get/dmpinned-inbox-query-success.js.map +1 -1
- package/dist/models/responses/graphql/get/follow-host-button-query-success.d.ts +1 -0
- package/dist/models/responses/graphql/get/follow-host-button-query-success.d.ts.map +1 -1
- package/dist/models/responses/graphql/get/follow-host-button-query-success.js +1 -0
- package/dist/models/responses/graphql/get/follow-host-button-query-success.js.map +1 -1
- package/dist/models/responses/graphql/get/get-alt-text-prompt-preference-error.d.ts +1 -0
- package/dist/models/responses/graphql/get/get-alt-text-prompt-preference-error.d.ts.map +1 -1
- package/dist/models/responses/graphql/get/get-alt-text-prompt-preference-error.js +1 -0
- package/dist/models/responses/graphql/get/get-alt-text-prompt-preference-error.js.map +1 -1
- package/dist/models/responses/graphql/get/get-alt-text-prompt-preference-success.d.ts +1 -0
- package/dist/models/responses/graphql/get/get-alt-text-prompt-preference-success.d.ts.map +1 -1
- package/dist/models/responses/graphql/get/get-alt-text-prompt-preference-success.js +1 -0
- package/dist/models/responses/graphql/get/get-alt-text-prompt-preference-success.js.map +1 -1
- package/dist/models/responses/graphql/get/get-user-claims-error.d.ts +1 -0
- package/dist/models/responses/graphql/get/get-user-claims-error.d.ts.map +1 -1
- package/dist/models/responses/graphql/get/get-user-claims-error.js +1 -0
- package/dist/models/responses/graphql/get/get-user-claims-error.js.map +1 -1
- package/dist/models/responses/graphql/get/get-user-claims-success.d.ts +1 -0
- package/dist/models/responses/graphql/get/get-user-claims-success.d.ts.map +1 -1
- package/dist/models/responses/graphql/get/get-user-claims-success.js +1 -0
- package/dist/models/responses/graphql/get/get-user-claims-success.js.map +1 -1
- package/dist/models/responses/graphql/get/home-latest-timeline-error.d.ts +8 -0
- package/dist/models/responses/graphql/get/home-latest-timeline-error.d.ts.map +1 -0
- package/dist/models/responses/graphql/get/home-latest-timeline-error.js +4 -0
- package/dist/models/responses/graphql/get/home-latest-timeline-error.js.map +1 -0
- package/dist/models/responses/graphql/get/home-latest-timeline-success.d.ts +7278 -2237
- package/dist/models/responses/graphql/get/home-latest-timeline-success.d.ts.map +1 -1
- package/dist/models/responses/graphql/get/home-latest-timeline-success.js +1 -0
- package/dist/models/responses/graphql/get/home-latest-timeline-success.js.map +1 -1
- package/dist/models/responses/graphql/get/home-timeline-success.d.ts +11757 -2587
- package/dist/models/responses/graphql/get/home-timeline-success.d.ts.map +1 -1
- package/dist/models/responses/graphql/get/home-timeline-success.js +1 -0
- package/dist/models/responses/graphql/get/home-timeline-success.js.map +1 -1
- package/dist/models/responses/graphql/get/likes-error.d.ts +1 -0
- package/dist/models/responses/graphql/get/likes-error.d.ts.map +1 -1
- package/dist/models/responses/graphql/get/likes-error.js +1 -0
- package/dist/models/responses/graphql/get/likes-error.js.map +1 -1
- package/dist/models/responses/graphql/get/likes-success.d.ts +1496 -1220
- package/dist/models/responses/graphql/get/likes-success.d.ts.map +1 -1
- package/dist/models/responses/graphql/get/likes-success.js +1 -0
- package/dist/models/responses/graphql/get/likes-success.js.map +1 -1
- package/dist/models/responses/graphql/get/list-latest-tweets-timeline-success.d.ts +3375 -1587
- package/dist/models/responses/graphql/get/list-latest-tweets-timeline-success.d.ts.map +1 -1
- package/dist/models/responses/graphql/get/list-latest-tweets-timeline-success.js +1 -0
- package/dist/models/responses/graphql/get/list-latest-tweets-timeline-success.js.map +1 -1
- package/dist/models/responses/graphql/get/list-pins-error.d.ts +1 -0
- package/dist/models/responses/graphql/get/list-pins-error.d.ts.map +1 -1
- package/dist/models/responses/graphql/get/list-pins-error.js +1 -0
- package/dist/models/responses/graphql/get/list-pins-error.js.map +1 -1
- package/dist/models/responses/graphql/get/list-pins-success.d.ts +4 -3
- package/dist/models/responses/graphql/get/list-pins-success.d.ts.map +1 -1
- package/dist/models/responses/graphql/get/list-pins-success.js +1 -0
- package/dist/models/responses/graphql/get/list-pins-success.js.map +1 -1
- package/dist/models/responses/graphql/get/lists-management-page-timeline-success.d.ts +1 -0
- package/dist/models/responses/graphql/get/lists-management-page-timeline-success.d.ts.map +1 -1
- package/dist/models/responses/graphql/get/lists-management-page-timeline-success.js +1 -0
- package/dist/models/responses/graphql/get/lists-management-page-timeline-success.js.map +1 -1
- package/dist/models/responses/graphql/get/pinned-timelines-error.d.ts +8 -0
- package/dist/models/responses/graphql/get/pinned-timelines-error.d.ts.map +1 -0
- package/dist/models/responses/graphql/get/pinned-timelines-error.js +4 -0
- package/dist/models/responses/graphql/get/pinned-timelines-error.js.map +1 -0
- package/dist/models/responses/graphql/get/pinned-timelines-success.d.ts +168 -0
- package/dist/models/responses/graphql/get/pinned-timelines-success.d.ts.map +1 -0
- package/dist/models/responses/graphql/get/pinned-timelines-success.js +4 -0
- package/dist/models/responses/graphql/get/pinned-timelines-success.js.map +1 -0
- package/dist/models/responses/graphql/get/profile-spotlights-query-error.d.ts +2 -1
- package/dist/models/responses/graphql/get/profile-spotlights-query-error.d.ts.map +1 -1
- package/dist/models/responses/graphql/get/profile-spotlights-query-error.js +1 -0
- package/dist/models/responses/graphql/get/profile-spotlights-query-error.js.map +1 -1
- package/dist/models/responses/graphql/get/profile-spotlights-query-success.d.ts +171 -1
- package/dist/models/responses/graphql/get/profile-spotlights-query-success.d.ts.map +1 -1
- package/dist/models/responses/graphql/get/profile-spotlights-query-success.js +1 -0
- package/dist/models/responses/graphql/get/profile-spotlights-query-success.js.map +1 -1
- package/dist/models/responses/graphql/get/quick-promote-eligibility-success.d.ts +1 -0
- package/dist/models/responses/graphql/get/quick-promote-eligibility-success.d.ts.map +1 -1
- package/dist/models/responses/graphql/get/quick-promote-eligibility-success.js +1 -0
- package/dist/models/responses/graphql/get/quick-promote-eligibility-success.js.map +1 -1
- package/dist/models/responses/graphql/get/search-timeline-error.d.ts +8 -0
- package/dist/models/responses/graphql/get/search-timeline-error.d.ts.map +1 -0
- package/dist/models/responses/graphql/get/search-timeline-error.js +4 -0
- package/dist/models/responses/graphql/get/search-timeline-error.js.map +1 -0
- package/dist/models/responses/graphql/get/search-timeline-success.d.ts +2244 -242
- package/dist/models/responses/graphql/get/search-timeline-success.d.ts.map +1 -1
- package/dist/models/responses/graphql/get/search-timeline-success.js +1 -0
- package/dist/models/responses/graphql/get/search-timeline-success.js.map +1 -1
- package/dist/models/responses/graphql/get/tweet-detail-error.d.ts +1 -0
- package/dist/models/responses/graphql/get/tweet-detail-error.d.ts.map +1 -1
- package/dist/models/responses/graphql/get/tweet-detail-error.js +1 -0
- package/dist/models/responses/graphql/get/tweet-detail-error.js.map +1 -1
- package/dist/models/responses/graphql/get/tweet-detail-success.d.ts +7359 -435
- package/dist/models/responses/graphql/get/tweet-detail-success.d.ts.map +1 -1
- package/dist/models/responses/graphql/get/tweet-detail-success.js +1 -0
- package/dist/models/responses/graphql/get/tweet-detail-success.js.map +1 -1
- package/dist/models/responses/graphql/get/tweet-result-by-rest-id-success.d.ts +1964 -0
- package/dist/models/responses/graphql/get/tweet-result-by-rest-id-success.d.ts.map +1 -0
- package/dist/models/responses/graphql/get/tweet-result-by-rest-id-success.js +4 -0
- package/dist/models/responses/graphql/get/tweet-result-by-rest-id-success.js.map +1 -0
- package/dist/models/responses/graphql/get/use-fetch-profile-blocks-profile-exists-query-error.d.ts +8 -0
- package/dist/models/responses/graphql/get/use-fetch-profile-blocks-profile-exists-query-error.d.ts.map +1 -0
- package/dist/models/responses/graphql/get/use-fetch-profile-blocks-profile-exists-query-error.js +4 -0
- package/dist/models/responses/graphql/get/use-fetch-profile-blocks-profile-exists-query-error.js.map +1 -0
- package/dist/models/responses/graphql/get/use-fetch-profile-blocks-profile-exists-query-success.d.ts +14 -0
- package/dist/models/responses/graphql/get/use-fetch-profile-blocks-profile-exists-query-success.d.ts.map +1 -0
- package/dist/models/responses/graphql/get/use-fetch-profile-blocks-profile-exists-query-success.js +4 -0
- package/dist/models/responses/graphql/get/use-fetch-profile-blocks-profile-exists-query-success.js.map +1 -0
- package/dist/models/responses/graphql/get/user-by-rest-id-error.d.ts +8 -0
- package/dist/models/responses/graphql/get/user-by-rest-id-error.d.ts.map +1 -0
- package/dist/models/responses/graphql/get/user-by-rest-id-error.js +4 -0
- package/dist/models/responses/graphql/get/user-by-rest-id-error.js.map +1 -0
- package/dist/models/responses/graphql/get/user-by-rest-id-success.d.ts +49 -6
- package/dist/models/responses/graphql/get/user-by-rest-id-success.d.ts.map +1 -1
- package/dist/models/responses/graphql/get/user-by-rest-id-success.js +1 -0
- package/dist/models/responses/graphql/get/user-by-rest-id-success.js.map +1 -1
- package/dist/models/responses/graphql/get/user-by-screen-name-error.d.ts +1 -0
- package/dist/models/responses/graphql/get/user-by-screen-name-error.d.ts.map +1 -1
- package/dist/models/responses/graphql/get/user-by-screen-name-error.js +1 -0
- package/dist/models/responses/graphql/get/user-by-screen-name-error.js.map +1 -1
- package/dist/models/responses/graphql/get/user-by-screen-name-success.d.ts +44 -19
- package/dist/models/responses/graphql/get/user-by-screen-name-success.d.ts.map +1 -1
- package/dist/models/responses/graphql/get/user-by-screen-name-success.js +1 -0
- package/dist/models/responses/graphql/get/user-by-screen-name-success.js.map +1 -1
- package/dist/models/responses/graphql/get/user-media-success.d.ts +1 -0
- package/dist/models/responses/graphql/get/user-media-success.d.ts.map +1 -1
- package/dist/models/responses/graphql/get/user-media-success.js +1 -0
- package/dist/models/responses/graphql/get/user-media-success.js.map +1 -1
- package/dist/models/responses/graphql/get/user-tweets-and-replies-success.d.ts +1 -0
- package/dist/models/responses/graphql/get/user-tweets-and-replies-success.d.ts.map +1 -1
- package/dist/models/responses/graphql/get/user-tweets-and-replies-success.js +1 -0
- package/dist/models/responses/graphql/get/user-tweets-and-replies-success.js.map +1 -1
- package/dist/models/responses/graphql/get/user-tweets-error.d.ts +1 -0
- package/dist/models/responses/graphql/get/user-tweets-error.d.ts.map +1 -1
- package/dist/models/responses/graphql/get/user-tweets-error.js +1 -0
- package/dist/models/responses/graphql/get/user-tweets-error.js.map +1 -1
- package/dist/models/responses/graphql/get/user-tweets-success.d.ts +18299 -3027
- package/dist/models/responses/graphql/get/user-tweets-success.d.ts.map +1 -1
- package/dist/models/responses/graphql/get/user-tweets-success.js +1 -0
- package/dist/models/responses/graphql/get/user-tweets-success.js.map +1 -1
- package/dist/models/responses/graphql/get/users-by-rest-ids-success.d.ts +1 -0
- package/dist/models/responses/graphql/get/users-by-rest-ids-success.d.ts.map +1 -1
- package/dist/models/responses/graphql/get/users-by-rest-ids-success.js +1 -0
- package/dist/models/responses/graphql/get/users-by-rest-ids-success.js.map +1 -1
- package/dist/models/responses/graphql/get/users-verified-avatars-success.d.ts +1 -0
- package/dist/models/responses/graphql/get/users-verified-avatars-success.d.ts.map +1 -1
- package/dist/models/responses/graphql/get/users-verified-avatars-success.js +1 -0
- package/dist/models/responses/graphql/get/users-verified-avatars-success.js.map +1 -1
- package/dist/models/responses/graphql/get/viewer-error.d.ts +8 -0
- package/dist/models/responses/graphql/get/viewer-error.d.ts.map +1 -0
- package/dist/models/responses/graphql/get/viewer-error.js +4 -0
- package/dist/models/responses/graphql/get/viewer-error.js.map +1 -0
- package/dist/models/responses/graphql/get/viewer-success.d.ts +76 -26
- package/dist/models/responses/graphql/get/viewer-success.d.ts.map +1 -1
- package/dist/models/responses/graphql/get/viewer-success.js +1 -0
- package/dist/models/responses/graphql/get/viewer-success.js.map +1 -1
- package/dist/models/responses/graphql/post/create-retweet-success.d.ts +1 -0
- package/dist/models/responses/graphql/post/create-retweet-success.d.ts.map +1 -1
- package/dist/models/responses/graphql/post/create-retweet-success.js +1 -0
- package/dist/models/responses/graphql/post/create-retweet-success.js.map +1 -1
- package/dist/models/responses/graphql/post/delete-retweet-success.d.ts +1 -0
- package/dist/models/responses/graphql/post/delete-retweet-success.d.ts.map +1 -1
- package/dist/models/responses/graphql/post/delete-retweet-success.js +1 -0
- package/dist/models/responses/graphql/post/delete-retweet-success.js.map +1 -1
- package/dist/models/responses/graphql/post/favorite-tweet-success.d.ts +1 -0
- package/dist/models/responses/graphql/post/favorite-tweet-success.d.ts.map +1 -1
- package/dist/models/responses/graphql/post/favorite-tweet-success.js +1 -0
- package/dist/models/responses/graphql/post/favorite-tweet-success.js.map +1 -1
- package/dist/models/responses/graphql/post/home-latest-timeline-error.d.ts +1 -0
- package/dist/models/responses/graphql/post/home-latest-timeline-error.d.ts.map +1 -1
- package/dist/models/responses/graphql/post/home-latest-timeline-error.js +1 -0
- package/dist/models/responses/graphql/post/home-latest-timeline-error.js.map +1 -1
- package/dist/models/responses/graphql/post/home-latest-timeline-success.d.ts +8155 -2720
- package/dist/models/responses/graphql/post/home-latest-timeline-success.d.ts.map +1 -1
- package/dist/models/responses/graphql/post/home-latest-timeline-success.js +1 -0
- package/dist/models/responses/graphql/post/home-latest-timeline-success.js.map +1 -1
- package/dist/models/responses/graphql/post/home-timeline-success.d.ts +10471 -2451
- package/dist/models/responses/graphql/post/home-timeline-success.d.ts.map +1 -1
- package/dist/models/responses/graphql/post/home-timeline-success.js +1 -0
- package/dist/models/responses/graphql/post/home-timeline-success.js.map +1 -1
- package/dist/models/responses/graphql/post/put-client-education-flag-success.d.ts +1 -0
- package/dist/models/responses/graphql/post/put-client-education-flag-success.d.ts.map +1 -1
- package/dist/models/responses/graphql/post/put-client-education-flag-success.js +1 -0
- package/dist/models/responses/graphql/post/put-client-education-flag-success.js.map +1 -1
- package/dist/models/responses/graphql/post/unfavorite-tweet-success.d.ts +1 -0
- package/dist/models/responses/graphql/post/unfavorite-tweet-success.d.ts.map +1 -1
- package/dist/models/responses/graphql/post/unfavorite-tweet-success.js +1 -0
- package/dist/models/responses/graphql/post/unfavorite-tweet-success.js.map +1 -1
- package/dist/options.d.ts +72 -0
- package/dist/options.d.ts.map +1 -1
- package/dist/options.js +14 -0
- package/dist/options.js.map +1 -1
- package/dist/parser/base.d.ts +6 -0
- package/dist/parser/base.d.ts.map +1 -1
- package/dist/parser/base.js +6 -0
- package/dist/parser/base.js.map +1 -1
- package/dist/parser/home-timeline-parser.d.ts +11 -0
- package/dist/parser/home-timeline-parser.d.ts.map +1 -1
- package/dist/parser/home-timeline-parser.js +14 -0
- package/dist/parser/home-timeline-parser.js.map +1 -1
- package/dist/parser/search-timeline.d.ts +11 -0
- package/dist/parser/search-timeline.d.ts.map +1 -1
- package/dist/parser/search-timeline.js +14 -0
- package/dist/parser/search-timeline.js.map +1 -1
- package/dist/parser/user-like-tweets.d.ts +11 -0
- package/dist/parser/user-like-tweets.d.ts.map +1 -1
- package/dist/parser/user-like-tweets.js +11 -0
- package/dist/parser/user-like-tweets.js.map +1 -1
- package/dist/parser/user-tweets.d.ts +11 -0
- package/dist/parser/user-tweets.d.ts.map +1 -1
- package/dist/parser/user-tweets.js +11 -0
- package/dist/parser/user-tweets.js.map +1 -1
- package/dist/save-responses.js +11 -0
- package/dist/save-responses.js.map +1 -1
- package/dist/saving-responses/index.d.ts +81 -0
- package/dist/saving-responses/index.d.ts.map +1 -1
- package/dist/saving-responses/index.js +105 -4
- package/dist/saving-responses/index.js.map +1 -1
- package/dist/scraper.d.ts +247 -0
- package/dist/scraper.d.ts.map +1 -1
- package/dist/scraper.js +144 -0
- package/dist/scraper.js.map +1 -1
- package/dist/tsconfig.build.tsbuildinfo +1 -1
- package/dist/twitter.d.ts +119 -0
- package/dist/twitter.d.ts.map +1 -1
- package/dist/twitter.js +163 -1
- package/dist/twitter.js.map +1 -1
- package/package.json +2 -2
- package/dist/parser/parser.test.d.ts +0 -2
- package/dist/parser/parser.test.d.ts.map +0 -1
- package/dist/parser/parser.test.js +0 -92
- package/dist/parser/parser.test.js.map +0 -1
|
@@ -7,27 +7,59 @@ exports.EndPointTypeGenerator = void 0;
|
|
|
7
7
|
const node_utils_1 = require("@book000/node-utils");
|
|
8
8
|
const utils_1 = require("./utils");
|
|
9
9
|
const node_fs_1 = __importDefault(require("node:fs"));
|
|
10
|
+
/**
|
|
11
|
+
* エンドポイントのまとめ型定義(src/models/responses/endpoints.ts)を生成するクラス
|
|
12
|
+
*/
|
|
10
13
|
class EndPointTypeGenerator {
|
|
11
|
-
|
|
12
|
-
|
|
14
|
+
/**
|
|
15
|
+
* @param responseDatabase レスポンスを保存するデータベース
|
|
16
|
+
* @param typesDirectory 型定義の出力先ディレクトリ
|
|
17
|
+
*/
|
|
18
|
+
constructor(typesDirectory) {
|
|
13
19
|
this.typesDirectory = typesDirectory;
|
|
14
20
|
}
|
|
21
|
+
/**
|
|
22
|
+
* TypeScript インポート文群を生成する
|
|
23
|
+
*
|
|
24
|
+
* @param endpoints エンドポイントの配列
|
|
25
|
+
* @returns インポート文群
|
|
26
|
+
*/
|
|
15
27
|
generateImport(endpoints) {
|
|
28
|
+
// import { GraphQLGetUserTweetsResponse } from './graphql/get/user-tweets'
|
|
16
29
|
return endpoints
|
|
17
30
|
.map((endpoint) => {
|
|
18
31
|
const name = utils_1.Utils.getName(endpoint.endpointType, endpoint.endpoint, endpoint.method, endpoint.statusCode.toString());
|
|
19
32
|
const filename = utils_1.Utils.getFilename(endpoint.endpointType, endpoint.endpoint, endpoint.method, endpoint.statusCode.toString());
|
|
33
|
+
if (!node_fs_1.default.existsSync(`${this.typesDirectory}/${filename}.ts`))
|
|
34
|
+
return null;
|
|
20
35
|
return `import { ${name} } from './${filename}'`;
|
|
21
36
|
})
|
|
37
|
+
.filter((value) => value !== null)
|
|
22
38
|
.filter((value, index, self) => self.indexOf(value) === index)
|
|
23
39
|
.join('\n');
|
|
24
40
|
}
|
|
41
|
+
/**
|
|
42
|
+
* メソッド名の配列を取得する
|
|
43
|
+
*
|
|
44
|
+
* @param endpoints エンドポイントの配列
|
|
45
|
+
* @param type エンドポイントの種類
|
|
46
|
+
* @returns メソッド名の配列
|
|
47
|
+
*/
|
|
25
48
|
getMethods(endpoints, type) {
|
|
26
49
|
return endpoints
|
|
27
50
|
.filter((endpoint) => endpoint.endpointType.toLowerCase() === type.toLowerCase())
|
|
51
|
+
.filter((endpoint) => node_fs_1.default.existsSync(`${this.typesDirectory}/${utils_1.Utils.getFilename(endpoint.endpointType, endpoint.endpoint, endpoint.method, endpoint.statusCode.toString())}.ts`))
|
|
28
52
|
.map((endpoint) => endpoint.method)
|
|
29
53
|
.filter((value, index, self) => self.indexOf(value) === index);
|
|
30
54
|
}
|
|
55
|
+
/**
|
|
56
|
+
* エンドポイント名群(<TYPE><METHOD>Endpoint)の定義を生成する
|
|
57
|
+
*
|
|
58
|
+
* @param endpoints エンドポイントの配列
|
|
59
|
+
* @param type エンドポイントの種類
|
|
60
|
+
* @param method メソッド名
|
|
61
|
+
* @returns エンドポイント名群の定義
|
|
62
|
+
*/
|
|
31
63
|
generateEndPointType(endpoints, type, method) {
|
|
32
64
|
const head = `export type ${type}${method}Endpoint =`;
|
|
33
65
|
const types = endpoints
|
|
@@ -43,6 +75,13 @@ class EndPointTypeGenerator {
|
|
|
43
75
|
}
|
|
44
76
|
return `${head}\n${types.join('\n')}`;
|
|
45
77
|
}
|
|
78
|
+
/**
|
|
79
|
+
* エンドポイント名を元に、成功・失敗のレスポンス型定義をまとめる型定義(<TYPE><METHOD>Response)を生成する。
|
|
80
|
+
*
|
|
81
|
+
* @param endpoints エンドポイントの配列
|
|
82
|
+
* @param type エンドポイントの種類
|
|
83
|
+
* @param method メソッド名
|
|
84
|
+
*/
|
|
46
85
|
generateResponseMergeType(endpoints, type, method) {
|
|
47
86
|
const names = endpoints
|
|
48
87
|
.filter((endpoint) => endpoint.endpointType.toLowerCase() === type.toLowerCase())
|
|
@@ -74,6 +113,14 @@ class EndPointTypeGenerator {
|
|
|
74
113
|
});
|
|
75
114
|
return types.filter((type) => type !== '').join('\n');
|
|
76
115
|
}
|
|
116
|
+
/**
|
|
117
|
+
* エンドポイント名を元に、レスポンス型定義を紐づけるような型定義(<TYPE><METHOD>EndPointResponseType)を生成する。
|
|
118
|
+
*
|
|
119
|
+
* @param endpoints エンドポイントの配列
|
|
120
|
+
* @param type エンドポイントの種類
|
|
121
|
+
* @param method メソッド名
|
|
122
|
+
* @returns レスポンス型定義を紐づけるような型定義
|
|
123
|
+
*/
|
|
77
124
|
generateResponseType(endpoints, type, method) {
|
|
78
125
|
const head = `export type ${type}${method}EndPointResponseType<T extends ${type}${method}Endpoint> =`;
|
|
79
126
|
const types = endpoints
|
|
@@ -87,6 +134,13 @@ class EndPointTypeGenerator {
|
|
|
87
134
|
});
|
|
88
135
|
return `${head}\n${types.join('\n')}\n never`;
|
|
89
136
|
}
|
|
137
|
+
/**
|
|
138
|
+
* エンドポイントの種類と HTTP メソッドを元に、「レスポンス型定義を紐づけるような型定義」を生成する。
|
|
139
|
+
*
|
|
140
|
+
* @param endpoints エンドポイントの配列
|
|
141
|
+
* @param types エンドポイントの種類の配列
|
|
142
|
+
* @returns レスポンス型定義を紐づけるような型定義
|
|
143
|
+
*/
|
|
90
144
|
generateEndpointResponseType(endpoints, types) {
|
|
91
145
|
const head = 'export type EndPointResponseType<M extends HttpMethod, T extends RequestType, N extends GraphQLEndpoint> = ';
|
|
92
146
|
const results = [];
|
|
@@ -100,6 +154,7 @@ class EndPointTypeGenerator {
|
|
|
100
154
|
}
|
|
101
155
|
results.push(`T extends '${type.toUpperCase()}' ?`);
|
|
102
156
|
for (const method of methods) {
|
|
157
|
+
// 最後以外は : をつける
|
|
103
158
|
if (methods.at(0) !== method) {
|
|
104
159
|
results.push(':');
|
|
105
160
|
}
|
|
@@ -109,16 +164,15 @@ class EndPointTypeGenerator {
|
|
|
109
164
|
}
|
|
110
165
|
return `${head}\n${results.join('\n')}\n: never`;
|
|
111
166
|
}
|
|
112
|
-
|
|
113
|
-
|
|
114
|
-
|
|
115
|
-
|
|
116
|
-
}
|
|
117
|
-
async generate() {
|
|
167
|
+
/**
|
|
168
|
+
* エンドポイントのまとめ型定義(src/models/responses/endpoints.ts)を生成する
|
|
169
|
+
*/
|
|
170
|
+
async generate(inputEndpoints) {
|
|
118
171
|
const logger = node_utils_1.Logger.configure('EndPointTypeGenerator.generate');
|
|
119
172
|
const types = ['GraphQL'];
|
|
120
|
-
const endpoints = await this.getEndpoints(types);
|
|
121
173
|
const data = [];
|
|
174
|
+
const endpoints = inputEndpoints.filter((endpoint) => types.some((type) => endpoint.endpointType.toLowerCase() === type.toLowerCase()));
|
|
175
|
+
logger.info(`🔍 Filtered ${endpoints.length} endpoints`);
|
|
122
176
|
const imports = this.generateImport(endpoints);
|
|
123
177
|
data.push(imports, "import { HttpMethod, RequestType } from '../../scraper'");
|
|
124
178
|
for (const type of types) {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"endpoint-type-generator.js","sourceRoot":"","sources":["../../src/generate-types/endpoint-type-generator.ts"],"names":[],"mappings":";;;;;;AAAA,oDAA4C;AAC5C,mCAA+B;AAC/B,sDAAwB;
|
|
1
|
+
{"version":3,"file":"endpoint-type-generator.js","sourceRoot":"","sources":["../../src/generate-types/endpoint-type-generator.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,15 +1,56 @@
|
|
|
1
|
-
import { ResponseDatabase } from '../saving-responses';
|
|
1
|
+
import { ResponseDatabase, ResponseEndPointWithCount } from '../saving-responses';
|
|
2
|
+
/**
|
|
3
|
+
* 複数型定義生成オプション(TwitterGenerateTypes.generateTypes)
|
|
4
|
+
*/
|
|
2
5
|
interface GenerateTypesOptions {
|
|
6
|
+
/**
|
|
7
|
+
* 保存先ディレクトリパス設定
|
|
8
|
+
*/
|
|
3
9
|
directory: {
|
|
10
|
+
/**
|
|
11
|
+
* スキーマファイルのディレクトリパス
|
|
12
|
+
*/
|
|
4
13
|
schema: string;
|
|
14
|
+
/**
|
|
15
|
+
* 型定義ファイルのディレクトリパス
|
|
16
|
+
*/
|
|
5
17
|
types: string;
|
|
6
18
|
};
|
|
19
|
+
/** 並列処理をするかどうか */
|
|
7
20
|
parallel: boolean;
|
|
21
|
+
/**
|
|
22
|
+
* 1ページあたりのレスポンス数
|
|
23
|
+
*/
|
|
24
|
+
limit: number;
|
|
25
|
+
/**
|
|
26
|
+
* エンドポイントの配列
|
|
27
|
+
*/
|
|
28
|
+
endpoints: ResponseEndPointWithCount[];
|
|
8
29
|
}
|
|
30
|
+
/**
|
|
31
|
+
* 型定義生成クラス
|
|
32
|
+
*/
|
|
9
33
|
export declare class TwitterTypesGenerator {
|
|
34
|
+
/**
|
|
35
|
+
* レスポンスを保存するデータベース
|
|
36
|
+
*/
|
|
10
37
|
private readonly responseDatabase;
|
|
38
|
+
/**
|
|
39
|
+
* @param responseDatabase レスポンスを保存するデータベース
|
|
40
|
+
*/
|
|
11
41
|
constructor(responseDatabase: ResponseDatabase);
|
|
42
|
+
/**
|
|
43
|
+
* エンドポイントの型定義を生成する
|
|
44
|
+
*
|
|
45
|
+
* @param options 単一の型定義生成オプション
|
|
46
|
+
* @param endpoint エンドポイントの情報
|
|
47
|
+
*/
|
|
12
48
|
private generateType;
|
|
49
|
+
/**
|
|
50
|
+
* 保存されたデバッグレスポンスを元に、全てのエンドポイントの型定義を生成する。
|
|
51
|
+
*
|
|
52
|
+
* @param options 型定義生成オプション
|
|
53
|
+
*/
|
|
13
54
|
generateTypes(options: GenerateTypesOptions): Promise<void>;
|
|
14
55
|
}
|
|
15
56
|
export {};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"types-generator.d.ts","sourceRoot":"","sources":["../../src/generate-types/types-generator.ts"],"names":[],"mappings":"AAMA,OAAO,EACL,gBAAgB,
|
|
1
|
+
{"version":3,"file":"types-generator.d.ts","sourceRoot":"","sources":["../../src/generate-types/types-generator.ts"],"names":[],"mappings":"AAMA,OAAO,EACL,gBAAgB,EAChB,yBAAyB,EAC1B,MAAM,qBAAqB,CAAA;AA0C5B;;GAEG;AACH,UAAU,oBAAoB;IAC5B;;OAEG;IACH,SAAS,EAAE;QACT;;WAEG;QACH,MAAM,EAAE,MAAM,CAAA;QAEd;;WAEG;QACH,KAAK,EAAE,MAAM,CAAA;KACd,CAAA;IACD,kBAAkB;IAClB,QAAQ,EAAE,OAAO,CAAA;IAEjB;;OAEG;IACH,KAAK,EAAE,MAAM,CAAA;IAEb;;OAEG;IACH,SAAS,EAAE,yBAAyB,EAAE,CAAA;CACvC;AAED;;GAEG;AACH,qBAAa,qBAAqB;IAChC;;OAEG;IACH,OAAO,CAAC,QAAQ,CAAC,gBAAgB,CAAkB;IAEnD;;OAEG;gBACS,gBAAgB,EAAE,gBAAgB;IAI9C;;;;;OAKG;YACW,YAAY;IAqE1B;;;;OAIG;IACU,aAAa,CAAC,OAAO,EAAE,oBAAoB,GAAG,OAAO,CAAC,IAAI,CAAC;CAsDzE"}
|
|
@@ -10,14 +10,26 @@ const json_schema_to_typescript_1 = require("json-schema-to-typescript");
|
|
|
10
10
|
const node_path_1 = require("node:path");
|
|
11
11
|
const node_fs_1 = __importDefault(require("node:fs"));
|
|
12
12
|
const utils_1 = require("./utils");
|
|
13
|
+
/**
|
|
14
|
+
* 型定義生成クラス
|
|
15
|
+
*/
|
|
13
16
|
class TwitterTypesGenerator {
|
|
17
|
+
/**
|
|
18
|
+
* @param responseDatabase レスポンスを保存するデータベース
|
|
19
|
+
*/
|
|
14
20
|
constructor(responseDatabase) {
|
|
15
21
|
this.responseDatabase = responseDatabase;
|
|
16
22
|
}
|
|
23
|
+
/**
|
|
24
|
+
* エンドポイントの型定義を生成する
|
|
25
|
+
*
|
|
26
|
+
* @param options 単一の型定義生成オプション
|
|
27
|
+
* @param endpoint エンドポイントの情報
|
|
28
|
+
*/
|
|
17
29
|
async generateType(options, endpoint) {
|
|
18
30
|
const logger = node_utils_1.Logger.configure('TwitterGenerateTypes.generateType');
|
|
19
31
|
logger.info(`🔍 Generating: ${options.name}`);
|
|
20
|
-
const limit =
|
|
32
|
+
const limit = options.limit;
|
|
21
33
|
const count = endpoint.count;
|
|
22
34
|
const maxPage = Math.ceil(count / limit) + 1;
|
|
23
35
|
let schema;
|
|
@@ -38,7 +50,7 @@ class TwitterTypesGenerator {
|
|
|
38
50
|
if (!options.ignoreError && responseBodyErrors.length > 0) {
|
|
39
51
|
const uniqueErrors = responseBodyErrors.filter((error, index, self) => self.indexOf(error) === index);
|
|
40
52
|
for (const error of uniqueErrors) {
|
|
41
|
-
logger.error(`⚠️ ${options.
|
|
53
|
+
logger.error(`⚠️ ${options.name}: ${error}`);
|
|
42
54
|
}
|
|
43
55
|
responseBodys = responseBodys.filter((responseBody) => !('errors' in responseBody && responseBody.errors.length > 0));
|
|
44
56
|
}
|
|
@@ -46,7 +58,8 @@ class TwitterTypesGenerator {
|
|
|
46
58
|
schema = schema ? (0, dist_1.mergeSchemas)([schema, pageSchema]) : pageSchema;
|
|
47
59
|
}
|
|
48
60
|
if (!schema) {
|
|
49
|
-
|
|
61
|
+
logger.warn(`⚠️ ${options.name}: No responses`);
|
|
62
|
+
return;
|
|
50
63
|
}
|
|
51
64
|
node_fs_1.default.mkdirSync((0, node_path_1.dirname)(options.path.schema), { recursive: true });
|
|
52
65
|
node_fs_1.default.writeFileSync(options.path.schema, JSON.stringify(schema, null, 2));
|
|
@@ -55,11 +68,18 @@ class TwitterTypesGenerator {
|
|
|
55
68
|
node_fs_1.default.writeFileSync(options.path.types, types);
|
|
56
69
|
logger.info(`📝 Successful: ${options.name} (from ${count} responses)`);
|
|
57
70
|
}
|
|
71
|
+
/**
|
|
72
|
+
* 保存されたデバッグレスポンスを元に、全てのエンドポイントの型定義を生成する。
|
|
73
|
+
*
|
|
74
|
+
* @param options 型定義生成オプション
|
|
75
|
+
*/
|
|
58
76
|
async generateTypes(options) {
|
|
59
|
-
const
|
|
60
|
-
const endpoints =
|
|
77
|
+
const logger = node_utils_1.Logger.configure('TwitterGenerateTypes.generateTypes');
|
|
78
|
+
const endpoints = options.endpoints;
|
|
61
79
|
const generators = [];
|
|
80
|
+
let endpointCount = 0;
|
|
62
81
|
for (const endpoint of endpoints) {
|
|
82
|
+
endpointCount++;
|
|
63
83
|
const name = utils_1.Utils.getName(endpoint.endpointType, endpoint.endpoint, endpoint.method, endpoint.statusCode.toString());
|
|
64
84
|
const filename = utils_1.Utils.getFilename(endpoint.endpointType, endpoint.endpoint, endpoint.method, endpoint.statusCode.toString());
|
|
65
85
|
const schemaPath = `${options.directory.schema}/${filename}.json`;
|
|
@@ -69,6 +89,7 @@ class TwitterTypesGenerator {
|
|
|
69
89
|
: null;
|
|
70
90
|
if (!type)
|
|
71
91
|
continue;
|
|
92
|
+
logger.info(`🔧 Creating generator: ${name} (StatusCode: ${endpoint.statusCode}) [${endpointCount}/${endpoints.length}]`);
|
|
72
93
|
const generator = this.generateType({
|
|
73
94
|
path: {
|
|
74
95
|
schema: schemaPath,
|
|
@@ -76,7 +97,8 @@ class TwitterTypesGenerator {
|
|
|
76
97
|
},
|
|
77
98
|
name,
|
|
78
99
|
tsDocument: `${type} ${endpoint.method} ${endpoint.endpoint} ${endpoint.statusCode.toString().startsWith('2') ? '成功' : '失敗'}レスポンスモデル`,
|
|
79
|
-
ignoreError: endpoint.statusCode.toString().startsWith('2'),
|
|
100
|
+
ignoreError: !endpoint.statusCode.toString().startsWith('2'),
|
|
101
|
+
limit: options.limit,
|
|
80
102
|
}, endpoint);
|
|
81
103
|
if (options.parallel) {
|
|
82
104
|
generators.push(generator);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"types-generator.js","sourceRoot":"","sources":["../../src/generate-types/types-generator.ts"],"names":[],"mappings":";;;;;;AAAA,oDAA4C;AAC5C,yCAAmE;AACnE,yEAAmD;AACnD,yCAAmC;AACnC,sDAAwB;AACxB,mCAA+B;
|
|
1
|
+
{"version":3,"file":"types-generator.js","sourceRoot":"","sources":["../../src/generate-types/types-generator.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,9 +1,48 @@
|
|
|
1
1
|
import { Options } from 'json-schema-to-typescript';
|
|
2
|
+
/**
|
|
3
|
+
* ユーティリティ
|
|
4
|
+
*/
|
|
2
5
|
export declare const Utils: {
|
|
6
|
+
/**
|
|
7
|
+
* レスポンスの型定義名を取得する
|
|
8
|
+
*
|
|
9
|
+
* @param rawType リクエストの種別(graphql または rest)
|
|
10
|
+
* @param rawName レスポンスの名前
|
|
11
|
+
* @param rawMethod レスポンスの HTTP メソッド
|
|
12
|
+
* @param rawStatus レスポンスのステータスコード
|
|
13
|
+
* @returns 型定義名
|
|
14
|
+
*/
|
|
3
15
|
getName(rawType: string, rawName: string, rawMethod: string, rawStatus: string | null): string;
|
|
16
|
+
/**
|
|
17
|
+
* キャメルケースに変換する
|
|
18
|
+
*
|
|
19
|
+
* @param string 変換する文字列
|
|
20
|
+
* @returns キャメルケース変換後の文字列
|
|
21
|
+
*/
|
|
4
22
|
toCamelCase(string: string): string;
|
|
23
|
+
/**
|
|
24
|
+
* 先頭文字を大文字に変換する
|
|
25
|
+
*
|
|
26
|
+
* @param string 変換する文字列
|
|
27
|
+
* @returns 変換後の文字列
|
|
28
|
+
*/
|
|
5
29
|
capitalize(string: string): string;
|
|
30
|
+
/**
|
|
31
|
+
* ファイル名を取得する
|
|
32
|
+
*
|
|
33
|
+
* @param rawType リクエストの種別(graphql または rest)
|
|
34
|
+
* @param rawName レスポンスの名前
|
|
35
|
+
* @param rawMethod レスポンスの HTTP メソッド
|
|
36
|
+
* @param rawStatus レスポンスのステータスコード
|
|
37
|
+
* @returns ファイル名
|
|
38
|
+
*/
|
|
6
39
|
getFilename(rawType: string, rawName: string, rawMethod: string, rawStatus: string): string;
|
|
40
|
+
/**
|
|
41
|
+
* json-schema-to-typescript のコンパイルオプションを作成・取得する
|
|
42
|
+
*
|
|
43
|
+
* @param tsDocument コンパイル結果の先頭に追加する tsdoc
|
|
44
|
+
* @returns コンパイルオプション
|
|
45
|
+
*/
|
|
7
46
|
getCompileOptions(tsDocument?: string): Partial<Options>;
|
|
8
47
|
};
|
|
9
48
|
//# sourceMappingURL=utils.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"utils.d.ts","sourceRoot":"","sources":["../../src/generate-types/utils.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,2BAA2B,CAAA;
|
|
1
|
+
{"version":3,"file":"utils.d.ts","sourceRoot":"","sources":["../../src/generate-types/utils.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,2BAA2B,CAAA;AAEnD;;GAEG;AACH,eAAO,MAAM,KAAK;IAChB;;;;;;;;OAQG;qBAEQ,MAAM,WACN,MAAM,aACJ,MAAM,aACN,MAAM,GAAG,IAAI,GACvB,MAAM;IAkBT;;;;;OAKG;wBACiB,MAAM,GAAG,MAAM;IAInC;;;;;OAKG;uBACgB,MAAM,GAAG,MAAM;IAIlC;;;;;;;;OAQG;yBAEQ,MAAM,WACN,MAAM,aACJ,MAAM,aACN,MAAM,GAChB,MAAM;IAST;;;;;OAKG;mCAC4B,MAAM,GAAG,QAAQ,OAAO,CAAC;CAiBzD,CAAA"}
|
|
@@ -1,7 +1,19 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
3
|
exports.Utils = void 0;
|
|
4
|
+
/**
|
|
5
|
+
* ユーティリティ
|
|
6
|
+
*/
|
|
4
7
|
exports.Utils = {
|
|
8
|
+
/**
|
|
9
|
+
* レスポンスの型定義名を取得する
|
|
10
|
+
*
|
|
11
|
+
* @param rawType リクエストの種別(graphql または rest)
|
|
12
|
+
* @param rawName レスポンスの名前
|
|
13
|
+
* @param rawMethod レスポンスの HTTP メソッド
|
|
14
|
+
* @param rawStatus レスポンスのステータスコード
|
|
15
|
+
* @returns 型定義名
|
|
16
|
+
*/
|
|
5
17
|
getName(rawType, rawName, rawMethod, rawStatus) {
|
|
6
18
|
const type = rawType.toLocaleLowerCase() === 'graphql'
|
|
7
19
|
? 'GraphQL'
|
|
@@ -16,12 +28,33 @@ exports.Utils = {
|
|
|
16
28
|
const status = rawStatus === null ? '' : rawStatus.startsWith('2') ? 'Success' : 'Error';
|
|
17
29
|
return `${type}${method}${name}${status}Response`;
|
|
18
30
|
},
|
|
31
|
+
/**
|
|
32
|
+
* キャメルケースに変換する
|
|
33
|
+
*
|
|
34
|
+
* @param string 変換する文字列
|
|
35
|
+
* @returns キャメルケース変換後の文字列
|
|
36
|
+
*/
|
|
19
37
|
toCamelCase(string) {
|
|
20
38
|
return string.charAt(0).toUpperCase() + string.slice(1).toLowerCase();
|
|
21
39
|
},
|
|
40
|
+
/**
|
|
41
|
+
* 先頭文字を大文字に変換する
|
|
42
|
+
*
|
|
43
|
+
* @param string 変換する文字列
|
|
44
|
+
* @returns 変換後の文字列
|
|
45
|
+
*/
|
|
22
46
|
capitalize(string) {
|
|
23
47
|
return string.charAt(0).toUpperCase() + string.slice(1);
|
|
24
48
|
},
|
|
49
|
+
/**
|
|
50
|
+
* ファイル名を取得する
|
|
51
|
+
*
|
|
52
|
+
* @param rawType リクエストの種別(graphql または rest)
|
|
53
|
+
* @param rawName レスポンスの名前
|
|
54
|
+
* @param rawMethod レスポンスの HTTP メソッド
|
|
55
|
+
* @param rawStatus レスポンスのステータスコード
|
|
56
|
+
* @returns ファイル名
|
|
57
|
+
*/
|
|
25
58
|
getFilename(rawType, rawName, rawMethod, rawStatus) {
|
|
26
59
|
const type = rawType.toLowerCase();
|
|
27
60
|
const method = rawMethod.toLowerCase();
|
|
@@ -29,6 +62,12 @@ exports.Utils = {
|
|
|
29
62
|
const status = rawStatus.startsWith('2') ? '-success' : '-error';
|
|
30
63
|
return `${type}/${method}/${name}${status}`;
|
|
31
64
|
},
|
|
65
|
+
/**
|
|
66
|
+
* json-schema-to-typescript のコンパイルオプションを作成・取得する
|
|
67
|
+
*
|
|
68
|
+
* @param tsDocument コンパイル結果の先頭に追加する tsdoc
|
|
69
|
+
* @returns コンパイルオプション
|
|
70
|
+
*/
|
|
32
71
|
getCompileOptions(tsDocument) {
|
|
33
72
|
const compileOptions = {
|
|
34
73
|
bannerComment: '/* eslint-disable @typescript-eslint/ban-types */',
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"utils.js","sourceRoot":"","sources":["../../src/generate-types/utils.ts"],"names":[],"mappings":";;;
|
|
1
|
+
{"version":3,"file":"utils.js","sourceRoot":"","sources":["../../src/generate-types/utils.ts"],"names":[],"mappings":";;;AAEA;;GAEG;AACU,QAAA,KAAK,GAAG;IACnB;;;;;;;;OAQG;IACH,OAAO,CACL,OAAe,EACf,OAAe,EACf,SAAiB,EACjB,SAAwB;QAExB,MAAM,IAAI,GACR,OAAO,CAAC,iBAAiB,EAAE,KAAK,SAAS;YACvC,CAAC,CAAC,SAAS;YACX,CAAC,CAAC,OAAO,CAAC,iBAAiB,EAAE,KAAK,MAAM;gBACtC,CAAC,CAAC,MAAM;gBACR,CAAC,CAAC,IAAI,CAAA;QACZ,IAAI,CAAC,IAAI,EAAE,CAAC;YACV,MAAM,IAAI,KAAK,CAAC,iBAAiB,OAAO,EAAE,CAAC,CAAA;QAC7C,CAAC;QACD,MAAM,MAAM,GAAG,IAAI,CAAC,WAAW,CAAC,SAAS,CAAC,CAAA;QAC1C,MAAM,IAAI,GAAG,IAAI,CAAC,UAAU,CAAC,OAAO,CAAC,CAAA;QACrC,MAAM,MAAM,GACV,SAAS,KAAK,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,SAAS,CAAC,UAAU,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,OAAO,CAAA;QAE3E,OAAO,GAAG,IAAI,GAAG,MAAM,GAAG,IAAI,GAAG,MAAM,UAAU,CAAA;IACnD,CAAC;IAED;;;;;OAKG;IACH,WAAW,CAAC,MAAc;QACxB,OAAO,MAAM,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,WAAW,EAAE,GAAG,MAAM,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,WAAW,EAAE,CAAA;IACvE,CAAC;IAED;;;;;OAKG;IACH,UAAU,CAAC,MAAc;QACvB,OAAO,MAAM,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,WAAW,EAAE,GAAG,MAAM,CAAC,KAAK,CAAC,CAAC,CAAC,CAAA;IACzD,CAAC;IAED;;;;;;;;OAQG;IACH,WAAW,CACT,OAAe,EACf,OAAe,EACf,SAAiB,EACjB,SAAiB;QAEjB,MAAM,IAAI,GAAG,OAAO,CAAC,WAAW,EAAE,CAAA;QAClC,MAAM,MAAM,GAAG,SAAS,CAAC,WAAW,EAAE,CAAA;QACtC,MAAM,IAAI,GAAG,OAAO,CAAC,UAAU,CAAC,iBAAiB,EAAE,OAAO,CAAC,CAAC,WAAW,EAAE,CAAA;QACzE,MAAM,MAAM,GAAG,SAAS,CAAC,UAAU,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,UAAU,CAAC,CAAC,CAAC,QAAQ,CAAA;QAEhE,OAAO,GAAG,IAAI,IAAI,MAAM,IAAI,IAAI,GAAG,MAAM,EAAE,CAAA;IAC7C,CAAC;IAED;;;;;OAKG;IACH,iBAAiB,CAAC,UAAmB;QACnC,MAAM,cAAc,GAAqB;YACvC,aAAa,EAAE,mDAAmD;YAClE,oBAAoB,EAAE,KAAK;YAC3B,gBAAgB,EAAE,IAAI;YACtB,qBAAqB,EAAE,IAAI;YAC3B,KAAK,EAAE;gBACL,IAAI,EAAE,KAAK;gBACX,WAAW,EAAE,IAAI;aAClB;YACD,UAAU,EAAE,IAAI;SACjB,CAAA;QACD,IAAI,UAAU,EAAE,CAAC;YACf,cAAc,CAAC,aAAa,GAAG,GAAG,cAAc,CAAC,aAAa,WAAW,UAAU,KAAK,CAAA;QAC1F,CAAC;QACD,OAAO,cAAc,CAAA;IACvB,CAAC;CACF,CAAA"}
|
package/dist/generate-types.js
CHANGED
|
@@ -1,75 +1,117 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
3
|
const node_utils_1 = require("@book000/node-utils");
|
|
4
|
-
const types_generator_1 = require("./generate-types/types-generator");
|
|
5
|
-
const custom_types_generator_1 = require("./generate-types/custom-types-generator");
|
|
6
4
|
const endpoint_type_generator_1 = require("./generate-types/endpoint-type-generator");
|
|
7
5
|
const saving_responses_1 = require("./saving-responses");
|
|
6
|
+
const custom_types_generator_1 = require("./generate-types/custom-types-generator");
|
|
7
|
+
const types_generator_1 = require("./generate-types/types-generator");
|
|
8
8
|
class GenerateTypes {
|
|
9
|
-
|
|
10
|
-
const
|
|
11
|
-
const
|
|
12
|
-
const
|
|
13
|
-
const
|
|
14
|
-
const
|
|
15
|
-
|
|
16
|
-
|
|
9
|
+
formatTime(time) {
|
|
10
|
+
const millisecond = time % 1000;
|
|
11
|
+
const second = Math.floor(time / 1000) % 60;
|
|
12
|
+
const minute = Math.floor(time / 1000 / 60) % 60;
|
|
13
|
+
const hour = Math.floor(time / 1000 / 60 / 60);
|
|
14
|
+
const millisecondString = millisecond.toString().padStart(3, '0');
|
|
15
|
+
const secondString = second.toString().padStart(2, '0');
|
|
16
|
+
const minuteString = minute.toString().padStart(2, '0');
|
|
17
|
+
const hourString = hour.toString().padStart(2, '0');
|
|
18
|
+
if (hour > 0) {
|
|
19
|
+
return `${hourString}:${minuteString}:${secondString}.${millisecondString}`;
|
|
20
|
+
}
|
|
21
|
+
if (minute > 0) {
|
|
22
|
+
return `${minuteString}:${secondString}.${millisecondString}`;
|
|
23
|
+
}
|
|
24
|
+
if (second > 0) {
|
|
25
|
+
return `${secondString}.${millisecondString}`;
|
|
26
|
+
}
|
|
27
|
+
return `0.${millisecondString}`;
|
|
17
28
|
}
|
|
18
|
-
async
|
|
19
|
-
const logger = node_utils_1.Logger.configure('GenerateTypes:
|
|
29
|
+
async calculateTime(name, runner) {
|
|
30
|
+
const logger = node_utils_1.Logger.configure('GenerateTypes:calculateTime');
|
|
20
31
|
const startTime = Date.now();
|
|
21
32
|
const result = await runner();
|
|
22
33
|
const endTime = Date.now();
|
|
23
34
|
const time = endTime - startTime;
|
|
24
|
-
|
|
35
|
+
const timeString = this.formatTime(time);
|
|
36
|
+
logger.info(`🕐 ${name}: ${timeString}ms`);
|
|
25
37
|
return result;
|
|
26
38
|
}
|
|
39
|
+
formatSize(size) {
|
|
40
|
+
const kiloByte = size % 1024;
|
|
41
|
+
const megaByte = Math.floor(size / 1024) % 1024;
|
|
42
|
+
const gigaByte = Math.floor(size / 1024 / 1024) % 1024;
|
|
43
|
+
const teraByte = Math.floor(size / 1024 / 1024 / 1024);
|
|
44
|
+
const kiloByteString = kiloByte.toString().padStart(3, '0');
|
|
45
|
+
const megaByteString = megaByte.toString().padStart(3, '0');
|
|
46
|
+
const gigaByteString = gigaByte.toString().padStart(3, '0');
|
|
47
|
+
const teraByteString = teraByte.toString().padStart(3, '0');
|
|
48
|
+
if (teraByte > 0) {
|
|
49
|
+
return `${teraByteString}.${gigaByteString}GB`;
|
|
50
|
+
}
|
|
51
|
+
if (gigaByte > 0) {
|
|
52
|
+
return `${gigaByteString}.${megaByteString}MB`;
|
|
53
|
+
}
|
|
54
|
+
if (megaByte > 0) {
|
|
55
|
+
return `${megaByteString}.${kiloByteString}KB`;
|
|
56
|
+
}
|
|
57
|
+
return `${kiloByteString}B`;
|
|
58
|
+
}
|
|
27
59
|
async run() {
|
|
28
60
|
const logger = node_utils_1.Logger.configure('GenerateTypes:run');
|
|
29
|
-
const debugOutputDirectory = process.env.DEBUG_OUTPUT_DIRECTORY || './data/responses';
|
|
30
61
|
const schemaDirectory = process.env.SCHEMA_DIRECTORY || './data/schema';
|
|
31
62
|
const typesDirectory = process.env.TYPES_DIRECTORY || './src/models/responses';
|
|
32
63
|
const isAllParallel = process.env.IS_ALL_PARALLEL === 'true';
|
|
33
64
|
const isTypesGenerateParallel = isAllParallel || process.env.IS_TYPES_GENERATE_PARALLEL === 'true';
|
|
34
65
|
const isCustomTypeGenerateParallel = isAllParallel || process.env.IS_CUSTOM_TYPE_GENERATE_PARALLEL === 'true';
|
|
66
|
+
const pageLimit = process.env.PAGE_LIMIT
|
|
67
|
+
? Number(process.env.PAGE_LIMIT)
|
|
68
|
+
: 100;
|
|
35
69
|
logger.info('📁 Directories');
|
|
36
|
-
logger.info(` 📂 Debug output: ${debugOutputDirectory}`);
|
|
37
70
|
logger.info(` 📂 Schema: ${schemaDirectory}`);
|
|
38
71
|
logger.info(` 📂 Types: ${typesDirectory}`);
|
|
39
72
|
logger.info('🔧 Options');
|
|
40
73
|
logger.info(` 📌 All parallel: ${isAllParallel}`);
|
|
41
74
|
logger.info(` 📌 Types generate parallel: ${isTypesGenerateParallel}`);
|
|
42
75
|
logger.info(` 📌 Custom type generate parallel: ${isCustomTypeGenerateParallel}`);
|
|
76
|
+
logger.info(` 📌 Page limit: ${pageLimit}`);
|
|
77
|
+
const responseDatabase = new saving_responses_1.ResponseDatabase();
|
|
43
78
|
try {
|
|
44
|
-
|
|
45
|
-
logger.info('Initialize responses database');
|
|
79
|
+
logger.info('🚀 Initialize responses database');
|
|
46
80
|
const result = await responseDatabase.init();
|
|
47
81
|
if (!result) {
|
|
48
82
|
return;
|
|
49
83
|
}
|
|
50
|
-
logger.info('Migrate responses database');
|
|
84
|
+
logger.info('🚀 Migrate responses database');
|
|
51
85
|
await responseDatabase.migrate();
|
|
52
|
-
logger.info('Sync responses database');
|
|
86
|
+
logger.info('🚀 Sync responses database');
|
|
53
87
|
await responseDatabase.sync();
|
|
54
|
-
|
|
88
|
+
logger.info('🔍 Getting endpoints...');
|
|
89
|
+
const rawEndpoints = await this.calculateTime('GetEndpoints', () => responseDatabase.getEndpoints());
|
|
90
|
+
const endpoints = rawEndpoints.filter((endpoint) => endpoint.count > 0 && endpoint.endpointType === 'GRAPHQL');
|
|
91
|
+
logger.info(`🔍 Found ${endpoints.length} endpoints`);
|
|
92
|
+
// msで計測
|
|
93
|
+
await this.calculateTime('TwitterTypesGenerator', async () => await new types_generator_1.TwitterTypesGenerator(responseDatabase).generateTypes({
|
|
55
94
|
directory: {
|
|
56
95
|
schema: schemaDirectory,
|
|
57
96
|
types: typesDirectory,
|
|
58
97
|
},
|
|
59
98
|
parallel: isTypesGenerateParallel,
|
|
99
|
+
limit: pageLimit,
|
|
100
|
+
endpoints,
|
|
60
101
|
}));
|
|
61
|
-
await this.
|
|
62
|
-
await this.calculateTime('EndPointTypeGenerator', () => new endpoint_type_generator_1.EndPointTypeGenerator(
|
|
102
|
+
await this.calculateTime('CustomTypesGenerator', async () => await new custom_types_generator_1.CustomTypesGenerator(responseDatabase, schemaDirectory, typesDirectory, pageLimit).generate(isCustomTypeGenerateParallel));
|
|
103
|
+
await this.calculateTime('EndPointTypeGenerator', async () => await new endpoint_type_generator_1.EndPointTypeGenerator(typesDirectory).generate(endpoints));
|
|
63
104
|
await responseDatabase.close();
|
|
64
105
|
logger.info('🎉 All done!');
|
|
65
106
|
}
|
|
66
107
|
catch (error) {
|
|
67
108
|
logger.error('An error occurred while generating types', error);
|
|
109
|
+
await responseDatabase.close();
|
|
68
110
|
}
|
|
69
111
|
}
|
|
70
112
|
}
|
|
71
113
|
;
|
|
72
114
|
(async () => {
|
|
73
|
-
new GenerateTypes().run();
|
|
115
|
+
await new GenerateTypes().run();
|
|
74
116
|
})();
|
|
75
117
|
//# sourceMappingURL=generate-types.js.map
|