@rnsk/toolkits 0.0.7 → 0.0.8
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/README.md +9 -1
- package/dist/index.d.ts +9 -1
- package/dist/index.js +17 -1
- package/dist/toolkits/cloudflare/icon.d.ts +5 -0
- package/dist/toolkits/cloudflare/icon.js +14 -0
- package/dist/toolkits/cloudflare/manifest.d.ts +3 -0
- package/dist/toolkits/cloudflare/manifest.js +36 -0
- package/dist/toolkits/cloudflare/tools/client.d.ts +19 -0
- package/dist/toolkits/cloudflare/tools/client.js +57 -0
- package/dist/toolkits/cloudflare/tools/create-dns-record.d.ts +14 -0
- package/dist/toolkits/cloudflare/tools/create-dns-record.js +32 -0
- package/dist/toolkits/cloudflare/tools/create-list.d.ts +8 -0
- package/dist/toolkits/cloudflare/tools/create-list.js +28 -0
- package/dist/toolkits/cloudflare/tools/create-zone.d.ts +8 -0
- package/dist/toolkits/cloudflare/tools/create-zone.js +37 -0
- package/dist/toolkits/cloudflare/tools/delete-dns-record.d.ts +6 -0
- package/dist/toolkits/cloudflare/tools/delete-dns-record.js +24 -0
- package/dist/toolkits/cloudflare/tools/delete-list.d.ts +6 -0
- package/dist/toolkits/cloudflare/tools/delete-list.js +24 -0
- package/dist/toolkits/cloudflare/tools/delete-zone.d.ts +5 -0
- package/dist/toolkits/cloudflare/tools/delete-zone.js +23 -0
- package/dist/toolkits/cloudflare/tools/get-bot-management-settings.d.ts +5 -0
- package/dist/toolkits/cloudflare/tools/get-bot-management-settings.js +23 -0
- package/dist/toolkits/cloudflare/tools/index.d.ts +277 -0
- package/dist/toolkits/cloudflare/tools/index.js +165 -0
- package/dist/toolkits/cloudflare/tools/list-account-members.d.ts +10 -0
- package/dist/toolkits/cloudflare/tools/list-account-members.js +33 -0
- package/dist/toolkits/cloudflare/tools/list-accounts.d.ts +8 -0
- package/dist/toolkits/cloudflare/tools/list-accounts.js +28 -0
- package/dist/toolkits/cloudflare/tools/list-dns-records.d.ts +15 -0
- package/dist/toolkits/cloudflare/tools/list-dns-records.js +47 -0
- package/dist/toolkits/cloudflare/tools/list-firewall-rules.d.ts +10 -0
- package/dist/toolkits/cloudflare/tools/list-firewall-rules.js +30 -0
- package/dist/toolkits/cloudflare/tools/list-monitors.d.ts +9 -0
- package/dist/toolkits/cloudflare/tools/list-monitors.js +29 -0
- package/dist/toolkits/cloudflare/tools/list-pools.d.ts +8 -0
- package/dist/toolkits/cloudflare/tools/list-pools.js +28 -0
- package/dist/toolkits/cloudflare/tools/list-tunnels.d.ts +9 -0
- package/dist/toolkits/cloudflare/tools/list-tunnels.js +29 -0
- package/dist/toolkits/cloudflare/tools/list-waf-lists.d.ts +5 -0
- package/dist/toolkits/cloudflare/tools/list-waf-lists.js +23 -0
- package/dist/toolkits/cloudflare/tools/list-zones.d.ts +13 -0
- package/dist/toolkits/cloudflare/tools/list-zones.js +38 -0
- package/dist/toolkits/cloudflare/tools/update-dns-record.d.ts +13 -0
- package/dist/toolkits/cloudflare/tools/update-dns-record.js +39 -0
- package/dist/toolkits/cloudflare/tools/update-list.d.ts +7 -0
- package/dist/toolkits/cloudflare/tools/update-list.js +27 -0
- package/dist/toolkits/cloudflare/tools/update-tunnel-configuration.d.ts +7 -0
- package/dist/toolkits/cloudflare/tools/update-tunnel-configuration.js +28 -0
- package/dist/toolkits/cloudflare/tools/update-zone.d.ts +8 -0
- package/dist/toolkits/cloudflare/tools/update-zone.js +32 -0
- package/dist/toolkits/figma/icon.d.ts +5 -0
- package/dist/toolkits/figma/icon.js +6 -0
- package/dist/toolkits/figma/manifest.d.ts +3 -0
- package/dist/toolkits/figma/manifest.js +58 -0
- package/dist/toolkits/figma/tools/add-comment-to-a-file.d.ts +8 -0
- package/dist/toolkits/figma/tools/add-comment-to-a-file.js +43 -0
- package/dist/toolkits/figma/tools/add-reaction-to-a-comment.d.ts +7 -0
- package/dist/toolkits/figma/tools/add-reaction-to-a-comment.js +31 -0
- package/dist/toolkits/figma/tools/client.d.ts +20 -0
- package/dist/toolkits/figma/tools/client.js +36 -0
- package/dist/toolkits/figma/tools/create-a-webhook.d.ts +12 -0
- package/dist/toolkits/figma/tools/create-a-webhook.js +45 -0
- package/dist/toolkits/figma/tools/create-dev-resources.d.ts +28 -0
- package/dist/toolkits/figma/tools/create-dev-resources.js +53 -0
- package/dist/toolkits/figma/tools/create-modify-delete-variables.d.ts +9 -0
- package/dist/toolkits/figma/tools/create-modify-delete-variables.js +43 -0
- package/dist/toolkits/figma/tools/delete-a-comment.d.ts +6 -0
- package/dist/toolkits/figma/tools/delete-a-comment.js +29 -0
- package/dist/toolkits/figma/tools/delete-a-reaction.d.ts +7 -0
- package/dist/toolkits/figma/tools/delete-a-reaction.js +31 -0
- package/dist/toolkits/figma/tools/delete-a-webhook.d.ts +5 -0
- package/dist/toolkits/figma/tools/delete-a-webhook.js +28 -0
- package/dist/toolkits/figma/tools/delete-dev-resource.d.ts +6 -0
- package/dist/toolkits/figma/tools/delete-dev-resource.js +29 -0
- package/dist/toolkits/figma/tools/design-tokens-to-tailwind.d.ts +26 -0
- package/dist/toolkits/figma/tools/design-tokens-to-tailwind.js +119 -0
- package/dist/toolkits/figma/tools/detect-background.d.ts +27 -0
- package/dist/toolkits/figma/tools/detect-background.js +124 -0
- package/dist/toolkits/figma/tools/discover-figma-resources.d.ts +38 -0
- package/dist/toolkits/figma/tools/discover-figma-resources.js +99 -0
- package/dist/toolkits/figma/tools/download-figma-images.d.ts +26 -0
- package/dist/toolkits/figma/tools/download-figma-images.js +86 -0
- package/dist/toolkits/figma/tools/extract-design-tokens.d.ts +46 -0
- package/dist/toolkits/figma/tools/extract-design-tokens.js +146 -0
- package/dist/toolkits/figma/tools/extract-prototype-interactions.d.ts +38 -0
- package/dist/toolkits/figma/tools/extract-prototype-interactions.js +80 -0
- package/dist/toolkits/figma/tools/get-a-webhook.d.ts +5 -0
- package/dist/toolkits/figma/tools/get-a-webhook.js +26 -0
- package/dist/toolkits/figma/tools/get-activity-logs.d.ts +10 -0
- package/dist/toolkits/figma/tools/get-activity-logs.js +33 -0
- package/dist/toolkits/figma/tools/get-comments-in-a-file.d.ts +6 -0
- package/dist/toolkits/figma/tools/get-comments-in-a-file.js +29 -0
- package/dist/toolkits/figma/tools/get-component-set.d.ts +5 -0
- package/dist/toolkits/figma/tools/get-component-set.js +26 -0
- package/dist/toolkits/figma/tools/get-component2.d.ts +5 -0
- package/dist/toolkits/figma/tools/get-component2.js +26 -0
- package/dist/toolkits/figma/tools/get-current-user.d.ts +4 -0
- package/dist/toolkits/figma/tools/get-current-user.js +25 -0
- package/dist/toolkits/figma/tools/get-dev-resources.d.ts +6 -0
- package/dist/toolkits/figma/tools/get-dev-resources.js +29 -0
- package/dist/toolkits/figma/tools/get-file-component-sets.d.ts +5 -0
- package/dist/toolkits/figma/tools/get-file-component-sets.js +26 -0
- package/dist/toolkits/figma/tools/get-file-components.d.ts +5 -0
- package/dist/toolkits/figma/tools/get-file-components.js +26 -0
- package/dist/toolkits/figma/tools/get-file-json.d.ts +12 -0
- package/dist/toolkits/figma/tools/get-file-json.js +49 -0
- package/dist/toolkits/figma/tools/get-file-metadata.d.ts +5 -0
- package/dist/toolkits/figma/tools/get-file-metadata.js +26 -0
- package/dist/toolkits/figma/tools/get-file-nodes.d.ts +10 -0
- package/dist/toolkits/figma/tools/get-file-nodes.js +34 -0
- package/dist/toolkits/figma/tools/get-file-styles.d.ts +5 -0
- package/dist/toolkits/figma/tools/get-file-styles.js +26 -0
- package/dist/toolkits/figma/tools/get-files-in-a-project.d.ts +6 -0
- package/dist/toolkits/figma/tools/get-files-in-a-project.js +29 -0
- package/dist/toolkits/figma/tools/get-image-fills.d.ts +5 -0
- package/dist/toolkits/figma/tools/get-image-fills.js +26 -0
- package/dist/toolkits/figma/tools/get-library-analytics-component-action-data.d.ts +4 -0
- package/dist/toolkits/figma/tools/get-library-analytics-component-action-data.js +4 -0
- package/dist/toolkits/figma/tools/get-library-analytics-component-usage-data.d.ts +4 -0
- package/dist/toolkits/figma/tools/get-library-analytics-component-usage-data.js +4 -0
- package/dist/toolkits/figma/tools/get-library-analytics-style-action-data.d.ts +4 -0
- package/dist/toolkits/figma/tools/get-library-analytics-style-action-data.js +4 -0
- package/dist/toolkits/figma/tools/get-library-analytics-style-usage-data.d.ts +4 -0
- package/dist/toolkits/figma/tools/get-library-analytics-style-usage-data.js +4 -0
- package/dist/toolkits/figma/tools/get-library-analytics-variable-action-data.d.ts +4 -0
- package/dist/toolkits/figma/tools/get-library-analytics-variable-action-data.js +4 -0
- package/dist/toolkits/figma/tools/get-library-analytics-variable-usage-data.d.ts +4 -0
- package/dist/toolkits/figma/tools/get-library-analytics-variable-usage-data.js +4 -0
- package/dist/toolkits/figma/tools/get-local-variables.d.ts +5 -0
- package/dist/toolkits/figma/tools/get-local-variables.js +26 -0
- package/dist/toolkits/figma/tools/get-payments.d.ts +9 -0
- package/dist/toolkits/figma/tools/get-payments.js +38 -0
- package/dist/toolkits/figma/tools/get-projects-in-a-team.d.ts +5 -0
- package/dist/toolkits/figma/tools/get-projects-in-a-team.js +26 -0
- package/dist/toolkits/figma/tools/get-published-variables.d.ts +5 -0
- package/dist/toolkits/figma/tools/get-published-variables.js +26 -0
- package/dist/toolkits/figma/tools/get-reactions-for-a-comment.d.ts +7 -0
- package/dist/toolkits/figma/tools/get-reactions-for-a-comment.js +30 -0
- package/dist/toolkits/figma/tools/get-scim-service-provider-config.d.ts +4 -0
- package/dist/toolkits/figma/tools/get-scim-service-provider-config.js +27 -0
- package/dist/toolkits/figma/tools/get-style.d.ts +5 -0
- package/dist/toolkits/figma/tools/get-style.js +26 -0
- package/dist/toolkits/figma/tools/get-team-component-sets.d.ts +8 -0
- package/dist/toolkits/figma/tools/get-team-component-sets.js +33 -0
- package/dist/toolkits/figma/tools/get-team-components.d.ts +8 -0
- package/dist/toolkits/figma/tools/get-team-components.js +33 -0
- package/dist/toolkits/figma/tools/get-team-styles.d.ts +8 -0
- package/dist/toolkits/figma/tools/get-team-styles.js +33 -0
- package/dist/toolkits/figma/tools/get-team-webhooks.d.ts +6 -0
- package/dist/toolkits/figma/tools/get-team-webhooks.js +29 -0
- package/dist/toolkits/figma/tools/get-versions-of-a-file.d.ts +8 -0
- package/dist/toolkits/figma/tools/get-versions-of-a-file.js +31 -0
- package/dist/toolkits/figma/tools/get-webhook-requests.d.ts +5 -0
- package/dist/toolkits/figma/tools/get-webhook-requests.js +26 -0
- package/dist/toolkits/figma/tools/index.d.ts +629 -0
- package/dist/toolkits/figma/tools/index.js +110 -0
- package/dist/toolkits/figma/tools/library-analytics-shared.d.ts +4 -0
- package/dist/toolkits/figma/tools/library-analytics-shared.js +40 -0
- package/dist/toolkits/figma/tools/render-images-of-file-nodes.d.ts +15 -0
- package/dist/toolkits/figma/tools/render-images-of-file-nodes.js +49 -0
- package/dist/toolkits/figma/tools/update-a-webhook.d.ts +10 -0
- package/dist/toolkits/figma/tools/update-a-webhook.js +45 -0
- package/dist/toolkits/figma/tools/update-dev-resources.d.ts +10 -0
- package/dist/toolkits/figma/tools/update-dev-resources.js +34 -0
- package/dist/toolkits/google-ads/icon.d.ts +5 -0
- package/dist/toolkits/google-ads/icon.js +18 -0
- package/dist/toolkits/google-ads/manifest.d.ts +3 -0
- package/dist/toolkits/google-ads/manifest.js +41 -0
- package/dist/toolkits/google-ads/tools/add-or-remove-to-customer-list.d.ts +30 -0
- package/dist/toolkits/google-ads/tools/add-or-remove-to-customer-list.js +69 -0
- package/dist/toolkits/google-ads/tools/client.d.ts +62 -0
- package/dist/toolkits/google-ads/tools/client.js +102 -0
- package/dist/toolkits/google-ads/tools/create-callout-asset.d.ts +23 -0
- package/dist/toolkits/google-ads/tools/create-callout-asset.js +62 -0
- package/dist/toolkits/google-ads/tools/create-customer-list.d.ts +9 -0
- package/dist/toolkits/google-ads/tools/create-customer-list.js +42 -0
- package/dist/toolkits/google-ads/tools/get-campaign-by-id.d.ts +32 -0
- package/dist/toolkits/google-ads/tools/get-campaign-by-id.js +38 -0
- package/dist/toolkits/google-ads/tools/get-campaign-by-name.d.ts +32 -0
- package/dist/toolkits/google-ads/tools/get-campaign-by-name.js +37 -0
- package/dist/toolkits/google-ads/tools/get-conversion-action-tag-snippets.d.ts +28 -0
- package/dist/toolkits/google-ads/tools/get-conversion-action-tag-snippets.js +33 -0
- package/dist/toolkits/google-ads/tools/get-customer-lists.d.ts +32 -0
- package/dist/toolkits/google-ads/tools/get-customer-lists.js +41 -0
- package/dist/toolkits/google-ads/tools/get-rmf-report.d.ts +60 -0
- package/dist/toolkits/google-ads/tools/get-rmf-report.js +97 -0
- package/dist/toolkits/google-ads/tools/index.d.ts +520 -0
- package/dist/toolkits/google-ads/tools/index.js +230 -0
- package/dist/toolkits/google-ads/tools/list-accessible-customers.d.ts +5 -0
- package/dist/toolkits/google-ads/tools/list-accessible-customers.js +26 -0
- package/dist/toolkits/google-ads/tools/list-sub-accounts.d.ts +51 -0
- package/dist/toolkits/google-ads/tools/list-sub-accounts.js +55 -0
- package/dist/toolkits/google-ads/tools/mutate-ad-group-ads.d.ts +11 -0
- package/dist/toolkits/google-ads/tools/mutate-ad-group-ads.js +40 -0
- package/dist/toolkits/google-ads/tools/mutate-ad-group-assets.d.ts +11 -0
- package/dist/toolkits/google-ads/tools/mutate-ad-group-assets.js +40 -0
- package/dist/toolkits/google-ads/tools/mutate-ad-group-bid-modifiers.d.ts +11 -0
- package/dist/toolkits/google-ads/tools/mutate-ad-group-bid-modifiers.js +40 -0
- package/dist/toolkits/google-ads/tools/mutate-ad-group-criteria.d.ts +11 -0
- package/dist/toolkits/google-ads/tools/mutate-ad-group-criteria.js +40 -0
- package/dist/toolkits/google-ads/tools/mutate-ad-groups.d.ts +10 -0
- package/dist/toolkits/google-ads/tools/mutate-ad-groups.js +38 -0
- package/dist/toolkits/google-ads/tools/mutate-assets.d.ts +11 -0
- package/dist/toolkits/google-ads/tools/mutate-assets.js +40 -0
- package/dist/toolkits/google-ads/tools/mutate-bidding-strategies.d.ts +11 -0
- package/dist/toolkits/google-ads/tools/mutate-bidding-strategies.js +40 -0
- package/dist/toolkits/google-ads/tools/mutate-campaign-assets.d.ts +11 -0
- package/dist/toolkits/google-ads/tools/mutate-campaign-assets.js +40 -0
- package/dist/toolkits/google-ads/tools/mutate-campaign-budgets.d.ts +11 -0
- package/dist/toolkits/google-ads/tools/mutate-campaign-budgets.js +40 -0
- package/dist/toolkits/google-ads/tools/mutate-campaign-criteria.d.ts +11 -0
- package/dist/toolkits/google-ads/tools/mutate-campaign-criteria.js +40 -0
- package/dist/toolkits/google-ads/tools/mutate-campaign-labels.d.ts +10 -0
- package/dist/toolkits/google-ads/tools/mutate-campaign-labels.js +38 -0
- package/dist/toolkits/google-ads/tools/mutate-campaigns-v2.d.ts +17 -0
- package/dist/toolkits/google-ads/tools/mutate-campaigns-v2.js +58 -0
- package/dist/toolkits/google-ads/tools/mutate-campaigns.d.ts +16 -0
- package/dist/toolkits/google-ads/tools/mutate-campaigns.js +53 -0
- package/dist/toolkits/google-ads/tools/mutate-conversion-actions.d.ts +11 -0
- package/dist/toolkits/google-ads/tools/mutate-conversion-actions.js +40 -0
- package/dist/toolkits/google-ads/tools/mutate-customer-assets.d.ts +17 -0
- package/dist/toolkits/google-ads/tools/mutate-customer-assets.js +51 -0
- package/dist/toolkits/google-ads/tools/mutate-labels.d.ts +11 -0
- package/dist/toolkits/google-ads/tools/mutate-labels.js +40 -0
- package/dist/toolkits/google-ads/tools/mutate-portfolio-bidding-strategies.d.ts +11 -0
- package/dist/toolkits/google-ads/tools/mutate-portfolio-bidding-strategies.js +41 -0
- package/dist/toolkits/google-ads/tools/search-stream-gaql.d.ts +37 -0
- package/dist/toolkits/google-ads/tools/search-stream-gaql.js +41 -0
- package/dist/toolkits/google-classroom/icon.d.ts +5 -0
- package/dist/toolkits/google-classroom/icon.js +42 -0
- package/dist/toolkits/google-classroom/manifest.d.ts +3 -0
- package/dist/toolkits/google-classroom/manifest.js +67 -0
- package/dist/toolkits/google-classroom/tools/aliases.d.ts +17 -0
- package/dist/toolkits/google-classroom/tools/aliases.js +70 -0
- package/dist/toolkits/google-classroom/tools/announcement-addons.d.ts +27 -0
- package/dist/toolkits/google-classroom/tools/announcement-addons.js +87 -0
- package/dist/toolkits/google-classroom/tools/announcements.d.ts +54 -0
- package/dist/toolkits/google-classroom/tools/announcements.js +158 -0
- package/dist/toolkits/google-classroom/tools/client.d.ts +18 -0
- package/dist/toolkits/google-classroom/tools/client.js +41 -0
- package/dist/toolkits/google-classroom/tools/courses.d.ts +60 -0
- package/dist/toolkits/google-classroom/tools/courses.js +189 -0
- package/dist/toolkits/google-classroom/tools/coursework-addons.d.ts +25 -0
- package/dist/toolkits/google-classroom/tools/coursework-addons.js +85 -0
- package/dist/toolkits/google-classroom/tools/coursework.d.ts +113 -0
- package/dist/toolkits/google-classroom/tools/coursework.js +248 -0
- package/dist/toolkits/google-classroom/tools/index.d.ts +608 -0
- package/dist/toolkits/google-classroom/tools/index.js +81 -0
- package/dist/toolkits/google-classroom/tools/invitations.d.ts +22 -0
- package/dist/toolkits/google-classroom/tools/invitations.js +89 -0
- package/dist/toolkits/google-classroom/tools/materials-addons.d.ts +13 -0
- package/dist/toolkits/google-classroom/tools/materials-addons.js +45 -0
- package/dist/toolkits/google-classroom/tools/materials.d.ts +44 -0
- package/dist/toolkits/google-classroom/tools/materials.js +132 -0
- package/dist/toolkits/google-classroom/tools/misc.d.ts +20 -0
- package/dist/toolkits/google-classroom/tools/misc.js +51 -0
- package/dist/toolkits/google-classroom/tools/posts-addons.d.ts +17 -0
- package/dist/toolkits/google-classroom/tools/posts-addons.js +49 -0
- package/dist/toolkits/google-classroom/tools/roster.d.ts +48 -0
- package/dist/toolkits/google-classroom/tools/roster.js +180 -0
- package/dist/toolkits/google-classroom/tools/topics.d.ts +29 -0
- package/dist/toolkits/google-classroom/tools/topics.js +117 -0
- package/dist/toolkits/google-tasks/icon.d.ts +5 -0
- package/dist/toolkits/google-tasks/icon.js +6 -0
- package/dist/toolkits/google-tasks/manifest.d.ts +3 -0
- package/dist/toolkits/google-tasks/manifest.js +40 -0
- package/dist/toolkits/google-tasks/tools/batch-execute.d.ts +34 -0
- package/dist/toolkits/google-tasks/tools/batch-execute.js +95 -0
- package/dist/toolkits/google-tasks/tools/clear-tasks.d.ts +5 -0
- package/dist/toolkits/google-tasks/tools/clear-tasks.js +29 -0
- package/dist/toolkits/google-tasks/tools/create-task-list.d.ts +5 -0
- package/dist/toolkits/google-tasks/tools/create-task-list.js +30 -0
- package/dist/toolkits/google-tasks/tools/create-task.d.ts +12 -0
- package/dist/toolkits/google-tasks/tools/create-task.js +47 -0
- package/dist/toolkits/google-tasks/tools/delete-task-list.d.ts +5 -0
- package/dist/toolkits/google-tasks/tools/delete-task-list.js +29 -0
- package/dist/toolkits/google-tasks/tools/delete-task.d.ts +6 -0
- package/dist/toolkits/google-tasks/tools/delete-task.js +28 -0
- package/dist/toolkits/google-tasks/tools/get-task-list.d.ts +5 -0
- package/dist/toolkits/google-tasks/tools/get-task-list.js +27 -0
- package/dist/toolkits/google-tasks/tools/get-task.d.ts +6 -0
- package/dist/toolkits/google-tasks/tools/get-task.js +28 -0
- package/dist/toolkits/google-tasks/tools/index.d.ts +249 -0
- package/dist/toolkits/google-tasks/tools/index.js +125 -0
- package/dist/toolkits/google-tasks/tools/list-all-tasks.d.ts +41 -0
- package/dist/toolkits/google-tasks/tools/list-all-tasks.js +106 -0
- package/dist/toolkits/google-tasks/tools/list-task-lists.d.ts +6 -0
- package/dist/toolkits/google-tasks/tools/list-task-lists.js +30 -0
- package/dist/toolkits/google-tasks/tools/list-tasks.d.ts +15 -0
- package/dist/toolkits/google-tasks/tools/list-tasks.js +50 -0
- package/dist/toolkits/google-tasks/tools/move-task.d.ts +9 -0
- package/dist/toolkits/google-tasks/tools/move-task.js +37 -0
- package/dist/toolkits/google-tasks/tools/update-task-full.d.ts +14 -0
- package/dist/toolkits/google-tasks/tools/update-task-full.js +55 -0
- package/dist/toolkits/google-tasks/tools/update-task-list.d.ts +6 -0
- package/dist/toolkits/google-tasks/tools/update-task-list.js +31 -0
- package/dist/toolkits/google-tasks/tools/update-task.d.ts +11 -0
- package/dist/toolkits/google-tasks/tools/update-task.js +47 -0
- package/dist/toolkits/google-tasks/tools/utils.d.ts +15 -0
- package/dist/toolkits/google-tasks/tools/utils.js +33 -0
- package/dist/toolkits/groww/icon.d.ts +5 -0
- package/dist/toolkits/groww/icon.js +21 -0
- package/dist/toolkits/groww/manifest.d.ts +3 -0
- package/dist/toolkits/groww/manifest.js +32 -0
- package/dist/toolkits/groww/tools/historical.d.ts +32 -0
- package/dist/toolkits/groww/tools/historical.js +85 -0
- package/dist/toolkits/groww/tools/index.d.ts +394 -0
- package/dist/toolkits/groww/tools/index.js +222 -0
- package/dist/toolkits/groww/tools/instruments.d.ts +51 -0
- package/dist/toolkits/groww/tools/instruments.js +120 -0
- package/dist/toolkits/groww/tools/live-data.d.ts +30 -0
- package/dist/toolkits/groww/tools/live-data.js +101 -0
- package/dist/toolkits/groww/tools/margin.d.ts +18 -0
- package/dist/toolkits/groww/tools/margin.js +52 -0
- package/dist/toolkits/groww/tools/orders.d.ts +57 -0
- package/dist/toolkits/groww/tools/orders.js +170 -0
- package/dist/toolkits/groww/tools/portfolio.d.ts +13 -0
- package/dist/toolkits/groww/tools/portfolio.js +58 -0
- package/dist/toolkits/groww/tools/smart-orders.d.ts +72 -0
- package/dist/toolkits/groww/tools/smart-orders.js +200 -0
- package/dist/toolkits/groww/tools/user.d.ts +4 -0
- package/dist/toolkits/groww/tools/user.js +21 -0
- package/dist/toolkits/groww/tools/utils.d.ts +18 -0
- package/dist/toolkits/groww/tools/utils.js +52 -0
- package/dist/toolkits/reddit/icon.d.ts +5 -0
- package/dist/toolkits/reddit/icon.js +6 -0
- package/dist/toolkits/reddit/manifest.d.ts +3 -0
- package/dist/toolkits/reddit/manifest.js +55 -0
- package/dist/toolkits/reddit/tools/check-username-available.d.ts +29 -0
- package/dist/toolkits/reddit/tools/check-username-available.js +30 -0
- package/dist/toolkits/reddit/tools/client.d.ts +10 -0
- package/dist/toolkits/reddit/tools/client.js +75 -0
- package/dist/toolkits/reddit/tools/create-post.d.ts +10 -0
- package/dist/toolkits/reddit/tools/create-post.js +59 -0
- package/dist/toolkits/reddit/tools/delete-comment.d.ts +29 -0
- package/dist/toolkits/reddit/tools/delete-comment.js +30 -0
- package/dist/toolkits/reddit/tools/delete-post.d.ts +29 -0
- package/dist/toolkits/reddit/tools/delete-post.js +30 -0
- package/dist/toolkits/reddit/tools/edit-comment-or-post.d.ts +6 -0
- package/dist/toolkits/reddit/tools/edit-comment-or-post.js +35 -0
- package/dist/toolkits/reddit/tools/get-controversial-posts.d.ts +10 -0
- package/dist/toolkits/reddit/tools/get-controversial-posts.js +45 -0
- package/dist/toolkits/reddit/tools/get-listing-by-sort.d.ts +11 -0
- package/dist/toolkits/reddit/tools/get-listing-by-sort.js +47 -0
- package/dist/toolkits/reddit/tools/get-oauth-scopes.d.ts +4 -0
- package/dist/toolkits/reddit/tools/get-oauth-scopes.js +28 -0
- package/dist/toolkits/reddit/tools/get-random-post.d.ts +5 -0
- package/dist/toolkits/reddit/tools/get-random-post.js +32 -0
- package/dist/toolkits/reddit/tools/get-subreddit-rules.d.ts +5 -0
- package/dist/toolkits/reddit/tools/get-subreddit-rules.js +29 -0
- package/dist/toolkits/reddit/tools/get-user-about.d.ts +5 -0
- package/dist/toolkits/reddit/tools/get-user-about.js +29 -0
- package/dist/toolkits/reddit/tools/get-user-flair.d.ts +8 -0
- package/dist/toolkits/reddit/tools/get-user-flair.js +32 -0
- package/dist/toolkits/reddit/tools/get-user-prefs.d.ts +5 -0
- package/dist/toolkits/reddit/tools/get-user-prefs.js +32 -0
- package/dist/toolkits/reddit/tools/index.d.ts +355 -0
- package/dist/toolkits/reddit/tools/index.js +173 -0
- package/dist/toolkits/reddit/tools/list-subreddit-post-flairs.d.ts +25 -0
- package/dist/toolkits/reddit/tools/list-subreddit-post-flairs.js +30 -0
- package/dist/toolkits/reddit/tools/post-comment.d.ts +6 -0
- package/dist/toolkits/reddit/tools/post-comment.js +35 -0
- package/dist/toolkits/reddit/tools/retrieve-post-comments.d.ts +8 -0
- package/dist/toolkits/reddit/tools/retrieve-post-comments.js +39 -0
- package/dist/toolkits/reddit/tools/retrieve-posts-from-subreddit.d.ts +12 -0
- package/dist/toolkits/reddit/tools/retrieve-posts-from-subreddit.js +56 -0
- package/dist/toolkits/reddit/tools/retrieve-specific-comment-or-post.d.ts +25 -0
- package/dist/toolkits/reddit/tools/retrieve-specific-comment-or-post.js +32 -0
- package/dist/toolkits/reddit/tools/search-across-subreddits.d.ts +12 -0
- package/dist/toolkits/reddit/tools/search-across-subreddits.js +59 -0
- package/dist/toolkits/reddit/tools/search-subreddits.d.ts +12 -0
- package/dist/toolkits/reddit/tools/search-subreddits.js +49 -0
- package/dist/toolkits/reddit/tools/toggle-inbox-replies.d.ts +34 -0
- package/dist/toolkits/reddit/tools/toggle-inbox-replies.js +31 -0
- package/dist/toolkits/youtube/icon.d.ts +5 -0
- package/dist/toolkits/youtube/icon.js +20 -0
- package/dist/toolkits/youtube/manifest.d.ts +3 -0
- package/dist/toolkits/youtube/manifest.js +48 -0
- package/dist/toolkits/youtube/tools/add-video-to-playlist.d.ts +7 -0
- package/dist/toolkits/youtube/tools/add-video-to-playlist.js +38 -0
- package/dist/toolkits/youtube/tools/client.d.ts +23 -0
- package/dist/toolkits/youtube/tools/client.js +55 -0
- package/dist/toolkits/youtube/tools/create-channel-section.d.ts +13 -0
- package/dist/toolkits/youtube/tools/create-channel-section.js +42 -0
- package/dist/toolkits/youtube/tools/create-comment-reply.d.ts +6 -0
- package/dist/toolkits/youtube/tools/create-comment-reply.js +31 -0
- package/dist/toolkits/youtube/tools/create-playlist.d.ts +7 -0
- package/dist/toolkits/youtube/tools/create-playlist.js +38 -0
- package/dist/toolkits/youtube/tools/delete-channel-section.d.ts +27 -0
- package/dist/toolkits/youtube/tools/delete-channel-section.js +30 -0
- package/dist/toolkits/youtube/tools/delete-comment.d.ts +26 -0
- package/dist/toolkits/youtube/tools/delete-comment.js +29 -0
- package/dist/toolkits/youtube/tools/delete-playlist-item.d.ts +26 -0
- package/dist/toolkits/youtube/tools/delete-playlist-item.js +29 -0
- package/dist/toolkits/youtube/tools/delete-playlist.d.ts +35 -0
- package/dist/toolkits/youtube/tools/delete-playlist.js +33 -0
- package/dist/toolkits/youtube/tools/delete-video.d.ts +35 -0
- package/dist/toolkits/youtube/tools/delete-video.js +33 -0
- package/dist/toolkits/youtube/tools/download-caption-track.d.ts +21 -0
- package/dist/toolkits/youtube/tools/download-caption-track.js +30 -0
- package/dist/toolkits/youtube/tools/get-channel-activities.d.ts +10 -0
- package/dist/toolkits/youtube/tools/get-channel-activities.js +33 -0
- package/dist/toolkits/youtube/tools/get-channel-id-by-handle.d.ts +5 -0
- package/dist/toolkits/youtube/tools/get-channel-id-by-handle.js +31 -0
- package/dist/toolkits/youtube/tools/get-channel-statistics.d.ts +9 -0
- package/dist/toolkits/youtube/tools/get-channel-statistics.js +53 -0
- package/dist/toolkits/youtube/tools/get-video-details-batch.d.ts +55 -0
- package/dist/toolkits/youtube/tools/get-video-details-batch.js +51 -0
- package/dist/toolkits/youtube/tools/get-video-rating.d.ts +6 -0
- package/dist/toolkits/youtube/tools/get-video-rating.js +29 -0
- package/dist/toolkits/youtube/tools/index.d.ts +959 -0
- package/dist/toolkits/youtube/tools/index.js +104 -0
- package/dist/toolkits/youtube/tools/list-caption-track.d.ts +6 -0
- package/dist/toolkits/youtube/tools/list-caption-track.js +29 -0
- package/dist/toolkits/youtube/tools/list-channel-sections.d.ts +10 -0
- package/dist/toolkits/youtube/tools/list-channel-sections.js +36 -0
- package/dist/toolkits/youtube/tools/list-channel-videos.d.ts +9 -0
- package/dist/toolkits/youtube/tools/list-channel-videos.js +76 -0
- package/dist/toolkits/youtube/tools/list-channels.d.ts +14 -0
- package/dist/toolkits/youtube/tools/list-channels.js +40 -0
- package/dist/toolkits/youtube/tools/list-comment-threads.d.ts +15 -0
- package/dist/toolkits/youtube/tools/list-comment-threads.js +38 -0
- package/dist/toolkits/youtube/tools/list-comments.d.ts +10 -0
- package/dist/toolkits/youtube/tools/list-comments.js +35 -0
- package/dist/toolkits/youtube/tools/list-i18n-languages.d.ts +6 -0
- package/dist/toolkits/youtube/tools/list-i18n-languages.js +29 -0
- package/dist/toolkits/youtube/tools/list-i18n-regions.d.ts +6 -0
- package/dist/toolkits/youtube/tools/list-i18n-regions.js +29 -0
- package/dist/toolkits/youtube/tools/list-live-chat-messages.d.ts +10 -0
- package/dist/toolkits/youtube/tools/list-live-chat-messages.js +33 -0
- package/dist/toolkits/youtube/tools/list-playlist-images.d.ts +11 -0
- package/dist/toolkits/youtube/tools/list-playlist-images.js +36 -0
- package/dist/toolkits/youtube/tools/list-playlist-items.d.ts +11 -0
- package/dist/toolkits/youtube/tools/list-playlist-items.js +34 -0
- package/dist/toolkits/youtube/tools/list-super-chat-events.d.ts +8 -0
- package/dist/toolkits/youtube/tools/list-super-chat-events.js +31 -0
- package/dist/toolkits/youtube/tools/list-user-playlists.d.ts +7 -0
- package/dist/toolkits/youtube/tools/list-user-playlists.js +30 -0
- package/dist/toolkits/youtube/tools/list-user-subscriptions.d.ts +7 -0
- package/dist/toolkits/youtube/tools/list-user-subscriptions.js +30 -0
- package/dist/toolkits/youtube/tools/list-video-abuse-report-reasons.d.ts +6 -0
- package/dist/toolkits/youtube/tools/list-video-abuse-report-reasons.js +29 -0
- package/dist/toolkits/youtube/tools/list-video-categories.d.ts +8 -0
- package/dist/toolkits/youtube/tools/list-video-categories.js +33 -0
- package/dist/toolkits/youtube/tools/mark-comment-as-spam.d.ts +26 -0
- package/dist/toolkits/youtube/tools/mark-comment-as-spam.js +29 -0
- package/dist/toolkits/youtube/tools/multipart-upload-video.d.ts +25 -0
- package/dist/toolkits/youtube/tools/multipart-upload-video.js +40 -0
- package/dist/toolkits/youtube/tools/post-comment.d.ts +7 -0
- package/dist/toolkits/youtube/tools/post-comment.js +34 -0
- package/dist/toolkits/youtube/tools/rate-video.d.ts +30 -0
- package/dist/toolkits/youtube/tools/rate-video.js +30 -0
- package/dist/toolkits/youtube/tools/report-video-abuse.d.ts +27 -0
- package/dist/toolkits/youtube/tools/report-video-abuse.js +40 -0
- package/dist/toolkits/youtube/tools/search-youtube.d.ts +14 -0
- package/dist/toolkits/youtube/tools/search-youtube.js +37 -0
- package/dist/toolkits/youtube/tools/set-comment-moderation-status.d.ts +27 -0
- package/dist/toolkits/youtube/tools/set-comment-moderation-status.js +34 -0
- package/dist/toolkits/youtube/tools/subscribe-channel.d.ts +5 -0
- package/dist/toolkits/youtube/tools/subscribe-channel.js +30 -0
- package/dist/toolkits/youtube/tools/unsubscribe-channel.d.ts +26 -0
- package/dist/toolkits/youtube/tools/unsubscribe-channel.js +29 -0
- package/dist/toolkits/youtube/tools/update-caption.d.ts +11 -0
- package/dist/toolkits/youtube/tools/update-caption.js +36 -0
- package/dist/toolkits/youtube/tools/update-channel-section.d.ts +15 -0
- package/dist/toolkits/youtube/tools/update-channel-section.js +45 -0
- package/dist/toolkits/youtube/tools/update-channel.d.ts +10 -0
- package/dist/toolkits/youtube/tools/update-channel.js +42 -0
- package/dist/toolkits/youtube/tools/update-comment.d.ts +6 -0
- package/dist/toolkits/youtube/tools/update-comment.js +31 -0
- package/dist/toolkits/youtube/tools/update-playlist-item.d.ts +19 -0
- package/dist/toolkits/youtube/tools/update-playlist-item.js +47 -0
- package/dist/toolkits/youtube/tools/update-playlist.d.ts +16 -0
- package/dist/toolkits/youtube/tools/update-playlist.js +44 -0
- package/dist/toolkits/youtube/tools/update-thumbnail.d.ts +6 -0
- package/dist/toolkits/youtube/tools/update-thumbnail.js +38 -0
- package/dist/toolkits/youtube/tools/update-video.d.ts +10 -0
- package/dist/toolkits/youtube/tools/update-video.js +56 -0
- package/dist/toolkits/youtube/tools/upload-shared.d.ts +15 -0
- package/dist/toolkits/youtube/tools/upload-shared.js +21 -0
- package/dist/toolkits/youtube/tools/upload-video.d.ts +30 -0
- package/dist/toolkits/youtube/tools/upload-video.js +56 -0
- package/package.json +1 -1
|
@@ -0,0 +1,99 @@
|
|
|
1
|
+
// @ts-nocheck
|
|
2
|
+
import { tool } from 'ai';
|
|
3
|
+
import { z } from 'zod';
|
|
4
|
+
import { figmaRequest, figmaTokenField } from './client.js';
|
|
5
|
+
function parseFigmaUrl(url) {
|
|
6
|
+
const out = {};
|
|
7
|
+
const fileMatch = url.match(/figma\.com\/(?:file|design|board|proto|slides)\/([A-Za-z0-9]+)/);
|
|
8
|
+
if (fileMatch)
|
|
9
|
+
out.fileKey = fileMatch[1];
|
|
10
|
+
const nodeMatch = url.match(/[?&]node-id=([\d-]+)/);
|
|
11
|
+
if (nodeMatch)
|
|
12
|
+
out.nodeId = nodeMatch[1].replace(/-/g, ':');
|
|
13
|
+
const teamMatch = url.match(/figma\.com\/files\/team\/(\d+)/);
|
|
14
|
+
if (teamMatch)
|
|
15
|
+
out.teamId = teamMatch[1];
|
|
16
|
+
const projectMatch = url.match(/[?&]project(?:_|-)id=(\d+)/);
|
|
17
|
+
if (projectMatch)
|
|
18
|
+
out.projectId = projectMatch[1];
|
|
19
|
+
return out;
|
|
20
|
+
}
|
|
21
|
+
function collectNodes(node, path, depth, maxDepth, out) {
|
|
22
|
+
const name = String(node.name ?? '');
|
|
23
|
+
const current = path ? `${path}/${name}` : name;
|
|
24
|
+
if (node.id)
|
|
25
|
+
out.push({ id: String(node.id), name, type: String(node.type ?? ''), path: current });
|
|
26
|
+
if (depth >= maxDepth)
|
|
27
|
+
return;
|
|
28
|
+
for (const child of (node.children ?? [])) {
|
|
29
|
+
collectNodes(child, current, depth + 1, maxDepth, out);
|
|
30
|
+
}
|
|
31
|
+
}
|
|
32
|
+
export const discoverFigmaResources = tool({
|
|
33
|
+
description: 'Extracts file/node/team IDs from any Figma URL and traverses team → projects → files → nodes. Shallow by default (maxDepth 2-3); target FRAME/CANVAS IDs for big files.',
|
|
34
|
+
inputSchema: z.object({
|
|
35
|
+
figmaToken: figmaTokenField,
|
|
36
|
+
figmaUrl: z.string().optional().describe('Any Figma URL (/file/, /design/, /board/, /proto/, /slides/, team)'),
|
|
37
|
+
teamId: z.string().optional().describe('Team ID to list projects for'),
|
|
38
|
+
projectId: z.string().optional().describe('Project ID to list files for'),
|
|
39
|
+
fileKey: z.string().optional().describe('File key to list nodes for'),
|
|
40
|
+
maxDepth: z.number().optional().describe('Node traversal depth (default 2)'),
|
|
41
|
+
}),
|
|
42
|
+
execute: async ({ figmaToken, figmaUrl, teamId, projectId, fileKey, maxDepth }) => {
|
|
43
|
+
try {
|
|
44
|
+
const errors = [];
|
|
45
|
+
const instructions = [];
|
|
46
|
+
const extracted = figmaUrl ? parseFigmaUrl(figmaUrl) : {};
|
|
47
|
+
const effTeamId = teamId ?? extracted.teamId;
|
|
48
|
+
const effProjectId = projectId ?? extracted.projectId;
|
|
49
|
+
const effFileKey = fileKey ?? extracted.fileKey;
|
|
50
|
+
const projects = [];
|
|
51
|
+
const files = [];
|
|
52
|
+
const nodes = [];
|
|
53
|
+
if (effTeamId && !effProjectId && !effFileKey) {
|
|
54
|
+
const res = await figmaRequest(figmaToken, `/v1/teams/${effTeamId}/projects`);
|
|
55
|
+
if (!res.ok)
|
|
56
|
+
errors.push(`Failed to list team projects: ${JSON.stringify(res.error)}`);
|
|
57
|
+
else {
|
|
58
|
+
const data = res.data;
|
|
59
|
+
for (const p of data.projects ?? [])
|
|
60
|
+
projects.push({ id: p.id, name: p.name });
|
|
61
|
+
instructions.push('Pass a project_id to list its files.');
|
|
62
|
+
}
|
|
63
|
+
}
|
|
64
|
+
if (effProjectId) {
|
|
65
|
+
const res = await figmaRequest(figmaToken, `/v1/projects/${effProjectId}/files`);
|
|
66
|
+
if (!res.ok)
|
|
67
|
+
errors.push(`Failed to list project files: ${JSON.stringify(res.error)}`);
|
|
68
|
+
else {
|
|
69
|
+
const data = res.data;
|
|
70
|
+
for (const f of data.files ?? [])
|
|
71
|
+
files.push(f);
|
|
72
|
+
instructions.push('Pass a file_key to list its nodes.');
|
|
73
|
+
}
|
|
74
|
+
}
|
|
75
|
+
if (effFileKey) {
|
|
76
|
+
const res = await figmaRequest(figmaToken, `/v1/files/${effFileKey}`, { query: { depth: maxDepth ?? 2 } });
|
|
77
|
+
if (!res.ok)
|
|
78
|
+
errors.push(`Failed to fetch file nodes: ${JSON.stringify(res.error)}`);
|
|
79
|
+
else {
|
|
80
|
+
const doc = res.data.document;
|
|
81
|
+
if (doc)
|
|
82
|
+
collectNodes(doc, '', 0, maxDepth ?? 2, nodes);
|
|
83
|
+
instructions.push('Use node IDs with getFileNodes, detectBackground, or image rendering.');
|
|
84
|
+
}
|
|
85
|
+
}
|
|
86
|
+
if (!figmaUrl && !teamId && !projectId && !fileKey) {
|
|
87
|
+
instructions.push('Provide figmaUrl, teamId, projectId, or fileKey to start discovery.');
|
|
88
|
+
}
|
|
89
|
+
return { extracted_ids: extracted, projects, files, nodes, errors, instructions };
|
|
90
|
+
}
|
|
91
|
+
catch (error) {
|
|
92
|
+
return {
|
|
93
|
+
error: 'Error discovering Figma resources',
|
|
94
|
+
message: error instanceof Error ? error.message : 'Unknown error',
|
|
95
|
+
};
|
|
96
|
+
}
|
|
97
|
+
},
|
|
98
|
+
});
|
|
99
|
+
//# sourceMappingURL=discover-figma-resources.js.map
|
|
@@ -0,0 +1,26 @@
|
|
|
1
|
+
export declare const downloadFigmaImages: import("ai").Tool<{
|
|
2
|
+
images: {
|
|
3
|
+
fileName: string;
|
|
4
|
+
nodeId: string;
|
|
5
|
+
format?: string | undefined;
|
|
6
|
+
}[];
|
|
7
|
+
figmaToken: string;
|
|
8
|
+
fileKey: string;
|
|
9
|
+
scale?: number | undefined;
|
|
10
|
+
svgIncludeId?: boolean | undefined;
|
|
11
|
+
svgOutlineText?: boolean | undefined;
|
|
12
|
+
svgSimplifyStroke?: boolean | undefined;
|
|
13
|
+
}, {
|
|
14
|
+
downloaded_images: Record<string, unknown>[];
|
|
15
|
+
successful_count: number;
|
|
16
|
+
failed_count: number;
|
|
17
|
+
error?: undefined;
|
|
18
|
+
message?: undefined;
|
|
19
|
+
} | {
|
|
20
|
+
error: string;
|
|
21
|
+
message: string;
|
|
22
|
+
downloaded_images?: undefined;
|
|
23
|
+
successful_count?: undefined;
|
|
24
|
+
failed_count?: undefined;
|
|
25
|
+
}>;
|
|
26
|
+
//# sourceMappingURL=download-figma-images.d.ts.map
|
|
@@ -0,0 +1,86 @@
|
|
|
1
|
+
// @ts-nocheck
|
|
2
|
+
import { tool } from 'ai';
|
|
3
|
+
import { z } from 'zod';
|
|
4
|
+
import { figmaRequest, figmaTokenField } from './client.js';
|
|
5
|
+
const MIME_BY_FORMAT = { png: 'image/png', jpg: 'image/jpeg', svg: 'image/svg+xml', pdf: 'application/pdf' };
|
|
6
|
+
export const downloadFigmaImages = tool({
|
|
7
|
+
description: 'Renders nodes and downloads the bytes (base64) in PNG/SVG/JPG/PDF. Find node IDs via getFileJson or node-id in URLs. Render URLs expire fast — bytes are fetched immediately.',
|
|
8
|
+
inputSchema: z.object({
|
|
9
|
+
figmaToken: figmaTokenField,
|
|
10
|
+
fileKey: z.string().describe('File key from the file URL'),
|
|
11
|
+
images: z.array(z.object({
|
|
12
|
+
nodeId: z.string().describe("Node ID, e.g. '1:2'"),
|
|
13
|
+
fileName: z.string().describe("Output filename, e.g. 'logo.png'"),
|
|
14
|
+
format: z.string().optional().describe("png (default), svg, jpg, or pdf"),
|
|
15
|
+
})).min(1),
|
|
16
|
+
scale: z.number().optional().describe('PNG/JPG scale 0.01-4 (default 2)'),
|
|
17
|
+
svgIncludeId: z.boolean().optional(),
|
|
18
|
+
svgOutlineText: z.boolean().optional(),
|
|
19
|
+
svgSimplifyStroke: z.boolean().optional(),
|
|
20
|
+
}),
|
|
21
|
+
execute: async ({ figmaToken, fileKey, images, scale, svgIncludeId, svgOutlineText, svgSimplifyStroke }) => {
|
|
22
|
+
try {
|
|
23
|
+
const byFormat = new Map();
|
|
24
|
+
for (const img of images) {
|
|
25
|
+
const fmt = (img.format ?? 'png').toLowerCase();
|
|
26
|
+
const list = byFormat.get(fmt) ?? [];
|
|
27
|
+
list.push(img);
|
|
28
|
+
byFormat.set(fmt, list);
|
|
29
|
+
}
|
|
30
|
+
const downloaded = [];
|
|
31
|
+
for (const [format, group] of byFormat) {
|
|
32
|
+
const render = await figmaRequest(figmaToken, `/v1/files/${fileKey}/images`, {
|
|
33
|
+
query: {
|
|
34
|
+
ids: group.map((g) => g.nodeId).join(','),
|
|
35
|
+
format,
|
|
36
|
+
scale: format === 'svg' || format === 'pdf' ? undefined : (scale ?? 2),
|
|
37
|
+
svg_include_id: svgIncludeId,
|
|
38
|
+
svg_outline_text: svgOutlineText,
|
|
39
|
+
svg_simplify_stroke: svgSimplifyStroke,
|
|
40
|
+
},
|
|
41
|
+
});
|
|
42
|
+
if (!render.ok) {
|
|
43
|
+
for (const g of group) {
|
|
44
|
+
downloaded.push({ node_id: g.nodeId, file_name: g.fileName, success: false, error: JSON.stringify(render.error) });
|
|
45
|
+
}
|
|
46
|
+
continue;
|
|
47
|
+
}
|
|
48
|
+
const urlMap = render.data.images ?? {};
|
|
49
|
+
for (const g of group) {
|
|
50
|
+
const url = urlMap[g.nodeId];
|
|
51
|
+
if (!url) {
|
|
52
|
+
downloaded.push({ node_id: g.nodeId, file_name: g.fileName, success: false, error: 'Render returned null for node' });
|
|
53
|
+
continue;
|
|
54
|
+
}
|
|
55
|
+
try {
|
|
56
|
+
const bytes = await fetch(url).then((r) => {
|
|
57
|
+
if (!r.ok)
|
|
58
|
+
throw new Error(`HTTP ${r.status}`);
|
|
59
|
+
return r.arrayBuffer();
|
|
60
|
+
});
|
|
61
|
+
downloaded.push({
|
|
62
|
+
node_id: g.nodeId,
|
|
63
|
+
file_name: g.fileName,
|
|
64
|
+
success: true,
|
|
65
|
+
mimetype: MIME_BY_FORMAT[format] ?? 'application/octet-stream',
|
|
66
|
+
content_base64: Buffer.from(bytes).toString('base64'),
|
|
67
|
+
source_url: url,
|
|
68
|
+
});
|
|
69
|
+
}
|
|
70
|
+
catch (fetchError) {
|
|
71
|
+
downloaded.push({ node_id: g.nodeId, file_name: g.fileName, success: false, error: fetchError instanceof Error ? fetchError.message : 'Download failed', source_url: url });
|
|
72
|
+
}
|
|
73
|
+
}
|
|
74
|
+
}
|
|
75
|
+
const successfulCount = downloaded.filter((d) => d.success).length;
|
|
76
|
+
return { downloaded_images: downloaded, successful_count: successfulCount, failed_count: downloaded.length - successfulCount };
|
|
77
|
+
}
|
|
78
|
+
catch (error) {
|
|
79
|
+
return {
|
|
80
|
+
error: 'Error downloading Figma images',
|
|
81
|
+
message: error instanceof Error ? error.message : 'Unknown error',
|
|
82
|
+
};
|
|
83
|
+
}
|
|
84
|
+
},
|
|
85
|
+
});
|
|
86
|
+
//# sourceMappingURL=download-figma-images.js.map
|
|
@@ -0,0 +1,46 @@
|
|
|
1
|
+
export declare const extractDesignTokens: import("ai").Tool<{
|
|
2
|
+
figmaToken: string;
|
|
3
|
+
fileKey: string;
|
|
4
|
+
includeVariables?: boolean | undefined;
|
|
5
|
+
includeLocalStyles?: boolean | undefined;
|
|
6
|
+
extractFromNodes?: boolean | undefined;
|
|
7
|
+
}, {
|
|
8
|
+
error: string;
|
|
9
|
+
details: any;
|
|
10
|
+
colors?: undefined;
|
|
11
|
+
typography?: undefined;
|
|
12
|
+
spacing?: undefined;
|
|
13
|
+
border_radius?: undefined;
|
|
14
|
+
shadows?: undefined;
|
|
15
|
+
total_tokens?: undefined;
|
|
16
|
+
sources?: undefined;
|
|
17
|
+
message?: undefined;
|
|
18
|
+
} | {
|
|
19
|
+
colors: {
|
|
20
|
+
name: string;
|
|
21
|
+
value: string;
|
|
22
|
+
source: string;
|
|
23
|
+
usage_count: number;
|
|
24
|
+
}[];
|
|
25
|
+
typography: Record<string, unknown>[];
|
|
26
|
+
spacing: Record<string, unknown>[];
|
|
27
|
+
border_radius: Record<string, unknown>[];
|
|
28
|
+
shadows: Record<string, unknown>[];
|
|
29
|
+
total_tokens: number;
|
|
30
|
+
sources: Record<string, number>;
|
|
31
|
+
error?: undefined;
|
|
32
|
+
details?: undefined;
|
|
33
|
+
message?: undefined;
|
|
34
|
+
} | {
|
|
35
|
+
error: string;
|
|
36
|
+
message: string;
|
|
37
|
+
details?: undefined;
|
|
38
|
+
colors?: undefined;
|
|
39
|
+
typography?: undefined;
|
|
40
|
+
spacing?: undefined;
|
|
41
|
+
border_radius?: undefined;
|
|
42
|
+
shadows?: undefined;
|
|
43
|
+
total_tokens?: undefined;
|
|
44
|
+
sources?: undefined;
|
|
45
|
+
}>;
|
|
46
|
+
//# sourceMappingURL=extract-design-tokens.d.ts.map
|
|
@@ -0,0 +1,146 @@
|
|
|
1
|
+
// @ts-nocheck
|
|
2
|
+
import { tool } from 'ai';
|
|
3
|
+
import { z } from 'zod';
|
|
4
|
+
import { figmaRequest, figmaTokenField } from './client.js';
|
|
5
|
+
function rgbaToHex(color) {
|
|
6
|
+
const to255 = (v) => Math.round(Number(v ?? 0) * 255);
|
|
7
|
+
const hex = [to255(color.r), to255(color.g), to255(color.b)].map((v) => v.toString(16).padStart(2, '0')).join('');
|
|
8
|
+
return `#${hex}`;
|
|
9
|
+
}
|
|
10
|
+
function walk(node, visit) {
|
|
11
|
+
visit(node);
|
|
12
|
+
for (const child of (node.children ?? []))
|
|
13
|
+
walk(child, visit);
|
|
14
|
+
}
|
|
15
|
+
export const extractDesignTokens = tool({
|
|
16
|
+
description: 'Extracts colors, typography, spacing, radii, and shadows from styles, variables (optional), and node properties. Only style/variable-backed values are captured. Feed output into designTokensToTailwind.',
|
|
17
|
+
inputSchema: z.object({
|
|
18
|
+
figmaToken: figmaTokenField,
|
|
19
|
+
fileKey: z.string().describe('File key from the file URL'),
|
|
20
|
+
includeVariables: z.boolean().optional().describe('Include variables (use getLocalVariables for full mode/alias coverage)'),
|
|
21
|
+
includeLocalStyles: z.boolean().optional().describe('Include local styles (default true)'),
|
|
22
|
+
extractFromNodes: z.boolean().optional().describe('Extract from node properties (default true)'),
|
|
23
|
+
}),
|
|
24
|
+
execute: async ({ figmaToken, fileKey, includeVariables, includeLocalStyles, extractFromNodes }) => {
|
|
25
|
+
try {
|
|
26
|
+
const colors = new Map();
|
|
27
|
+
const typography = new Map();
|
|
28
|
+
const spacing = new Map();
|
|
29
|
+
const borderRadius = new Map();
|
|
30
|
+
const shadows = new Map();
|
|
31
|
+
const sources = { style: 0, variable: 0, extracted: 0 };
|
|
32
|
+
const bump = (map, key) => {
|
|
33
|
+
const entry = map.get(key);
|
|
34
|
+
if (entry)
|
|
35
|
+
entry.usage_count += 1;
|
|
36
|
+
};
|
|
37
|
+
if (includeLocalStyles !== false) {
|
|
38
|
+
const res = await figmaRequest(figmaToken, `/v1/files/${fileKey}/styles`);
|
|
39
|
+
if (res.ok) {
|
|
40
|
+
const styles = (res.data.meta?.styles ?? []);
|
|
41
|
+
for (const s of styles) {
|
|
42
|
+
sources.style += 1;
|
|
43
|
+
const name = String(s.name ?? 'style');
|
|
44
|
+
if (s.style_type === 'TEXT') {
|
|
45
|
+
typography.set(name, { name, source: 'style', usage_count: 0 });
|
|
46
|
+
}
|
|
47
|
+
else {
|
|
48
|
+
colors.set(name, { name, value: '#000000', source: 'style', usage_count: 0 });
|
|
49
|
+
}
|
|
50
|
+
}
|
|
51
|
+
}
|
|
52
|
+
}
|
|
53
|
+
if (includeVariables === true) {
|
|
54
|
+
const res = await figmaRequest(figmaToken, `/v1/files/${fileKey}/variables/local`);
|
|
55
|
+
if (res.ok) {
|
|
56
|
+
const meta = res.data.meta;
|
|
57
|
+
for (const v of Object.values(meta?.variables ?? {})) {
|
|
58
|
+
sources.variable += 1;
|
|
59
|
+
const name = String(v.name ?? 'variable');
|
|
60
|
+
if (v.resolvedType === 'COLOR') {
|
|
61
|
+
const modes = (v.valuesByMode ?? {});
|
|
62
|
+
const first = Object.values(modes)[0];
|
|
63
|
+
colors.set(name, { name, value: first && typeof first === 'object' ? rgbaToHex(first) : '#000000', source: 'variable', usage_count: 0 });
|
|
64
|
+
}
|
|
65
|
+
}
|
|
66
|
+
}
|
|
67
|
+
}
|
|
68
|
+
if (extractFromNodes !== false) {
|
|
69
|
+
const res = await figmaRequest(figmaToken, `/v1/files/${fileKey}`, { query: { depth: 4 } });
|
|
70
|
+
if (!res.ok)
|
|
71
|
+
return { error: 'Failed to fetch file for token extraction', details: res.error };
|
|
72
|
+
const doc = res.data.document;
|
|
73
|
+
if (doc) {
|
|
74
|
+
walk(doc, (n) => {
|
|
75
|
+
for (const fill of (n.fills ?? [])) {
|
|
76
|
+
if (fill.type === 'SOLID' && fill.color && fill.visible !== false) {
|
|
77
|
+
const hex = rgbaToHex(fill.color);
|
|
78
|
+
const existing = colors.get(hex);
|
|
79
|
+
if (existing)
|
|
80
|
+
bump(colors, hex);
|
|
81
|
+
else {
|
|
82
|
+
colors.set(hex, { name: hex, value: hex, source: 'extracted', usage_count: 1 });
|
|
83
|
+
sources.extracted += 1;
|
|
84
|
+
}
|
|
85
|
+
}
|
|
86
|
+
}
|
|
87
|
+
if (typeof n.cornerRadius === 'number' && n.cornerRadius > 0) {
|
|
88
|
+
const key = `radius-${n.cornerRadius}`;
|
|
89
|
+
const existing = borderRadius.get(key);
|
|
90
|
+
if (existing)
|
|
91
|
+
existing.usage_count += 1;
|
|
92
|
+
else {
|
|
93
|
+
borderRadius.set(key, { name: key, value: n.cornerRadius, source: 'extracted', usage_count: 1 });
|
|
94
|
+
sources.extracted += 1;
|
|
95
|
+
}
|
|
96
|
+
}
|
|
97
|
+
const style = n.style;
|
|
98
|
+
if (n.type === 'TEXT' && style?.fontFamily) {
|
|
99
|
+
const key = `${style.fontFamily}-${style.fontSize ?? ''}-${style.fontWeight ?? ''}`;
|
|
100
|
+
const existing = typography.get(key);
|
|
101
|
+
if (existing)
|
|
102
|
+
existing.usage_count += 1;
|
|
103
|
+
else {
|
|
104
|
+
typography.set(key, { name: String(style.fontFamily), source: 'extracted', font_size: style.fontSize, font_family: style.fontFamily, font_weight: style.fontWeight, line_height: style.lineHeight, letter_spacing: style.letterSpacing, usage_count: 1 });
|
|
105
|
+
sources.extracted += 1;
|
|
106
|
+
}
|
|
107
|
+
}
|
|
108
|
+
for (const effect of (n.effects ?? [])) {
|
|
109
|
+
if ((effect.type === 'DROP_SHADOW' || effect.type === 'INNER_SHADOW') && effect.visible !== false) {
|
|
110
|
+
const key = `shadow-${effect.offset?.x ?? 0}-${effect.offset?.y ?? 0}-${effect.radius ?? 0}`;
|
|
111
|
+
const existing = shadows.get(key);
|
|
112
|
+
if (existing)
|
|
113
|
+
existing.usage_count += 1;
|
|
114
|
+
else {
|
|
115
|
+
shadows.set(key, { name: key, source: 'extracted', shadows: [{ type: effect.type, color: effect.color, offset: effect.offset, radius: effect.radius, visible: true }], usage_count: 1 });
|
|
116
|
+
sources.extracted += 1;
|
|
117
|
+
}
|
|
118
|
+
}
|
|
119
|
+
}
|
|
120
|
+
});
|
|
121
|
+
}
|
|
122
|
+
}
|
|
123
|
+
const colorList = [...colors.values()];
|
|
124
|
+
const typoList = [...typography.values()];
|
|
125
|
+
const spacingList = [...spacing.values()];
|
|
126
|
+
const radiusList = [...borderRadius.values()];
|
|
127
|
+
const shadowList = [...shadows.values()];
|
|
128
|
+
return {
|
|
129
|
+
colors: colorList,
|
|
130
|
+
typography: typoList,
|
|
131
|
+
spacing: spacingList,
|
|
132
|
+
border_radius: radiusList,
|
|
133
|
+
shadows: shadowList,
|
|
134
|
+
total_tokens: colorList.length + typoList.length + spacingList.length + radiusList.length + shadowList.length,
|
|
135
|
+
sources,
|
|
136
|
+
};
|
|
137
|
+
}
|
|
138
|
+
catch (error) {
|
|
139
|
+
return {
|
|
140
|
+
error: 'Error extracting design tokens',
|
|
141
|
+
message: error instanceof Error ? error.message : 'Unknown error',
|
|
142
|
+
};
|
|
143
|
+
}
|
|
144
|
+
},
|
|
145
|
+
});
|
|
146
|
+
//# sourceMappingURL=extract-design-tokens.js.map
|
|
@@ -0,0 +1,38 @@
|
|
|
1
|
+
export declare const extractPrototypeInteractions: import("ai").Tool<{
|
|
2
|
+
figmaToken: string;
|
|
3
|
+
fileKey: string;
|
|
4
|
+
analyzeComponents?: boolean | undefined;
|
|
5
|
+
includeAnimations?: boolean | undefined;
|
|
6
|
+
}, {
|
|
7
|
+
error: string;
|
|
8
|
+
details: any;
|
|
9
|
+
interactions?: undefined;
|
|
10
|
+
component_states?: undefined;
|
|
11
|
+
prototype_flows?: undefined;
|
|
12
|
+
total_interactions?: undefined;
|
|
13
|
+
animation_types_used?: undefined;
|
|
14
|
+
message?: undefined;
|
|
15
|
+
} | {
|
|
16
|
+
interactions: Record<string, unknown>[];
|
|
17
|
+
component_states: Record<string, unknown>[];
|
|
18
|
+
prototype_flows: {
|
|
19
|
+
name: string;
|
|
20
|
+
starting_node_id: string;
|
|
21
|
+
nodes_in_flow: string[];
|
|
22
|
+
}[];
|
|
23
|
+
total_interactions: number;
|
|
24
|
+
animation_types_used: string[];
|
|
25
|
+
error?: undefined;
|
|
26
|
+
details?: undefined;
|
|
27
|
+
message?: undefined;
|
|
28
|
+
} | {
|
|
29
|
+
error: string;
|
|
30
|
+
message: string;
|
|
31
|
+
details?: undefined;
|
|
32
|
+
interactions?: undefined;
|
|
33
|
+
component_states?: undefined;
|
|
34
|
+
prototype_flows?: undefined;
|
|
35
|
+
total_interactions?: undefined;
|
|
36
|
+
animation_types_used?: undefined;
|
|
37
|
+
}>;
|
|
38
|
+
//# sourceMappingURL=extract-prototype-interactions.d.ts.map
|
|
@@ -0,0 +1,80 @@
|
|
|
1
|
+
// @ts-nocheck
|
|
2
|
+
import { tool } from 'ai';
|
|
3
|
+
import { z } from 'zod';
|
|
4
|
+
import { figmaRequest, figmaTokenField } from './client.js';
|
|
5
|
+
function walk(node, visit) {
|
|
6
|
+
visit(node);
|
|
7
|
+
for (const child of (node.children ?? []))
|
|
8
|
+
walk(child, visit);
|
|
9
|
+
}
|
|
10
|
+
export const extractPrototypeInteractions = tool({
|
|
11
|
+
description: 'Extracts prototype flows, node interactions (triggers, actions, transitions), and component variant states from a file.',
|
|
12
|
+
inputSchema: z.object({
|
|
13
|
+
figmaToken: figmaTokenField,
|
|
14
|
+
fileKey: z.string().describe('File key from the file URL'),
|
|
15
|
+
analyzeComponents: z.boolean().optional().describe('Extract component variant states (default true)'),
|
|
16
|
+
includeAnimations: z.boolean().optional().describe('Include transition animation data (default true)'),
|
|
17
|
+
}),
|
|
18
|
+
execute: async ({ figmaToken, fileKey, analyzeComponents, includeAnimations }) => {
|
|
19
|
+
try {
|
|
20
|
+
const withAnims = includeAnimations !== false;
|
|
21
|
+
const result = await figmaRequest(figmaToken, `/v1/files/${fileKey}`, { query: { depth: 6 } });
|
|
22
|
+
if (!result.ok)
|
|
23
|
+
return { error: 'Failed to fetch file for prototype extraction', details: result.error };
|
|
24
|
+
const data = result.data;
|
|
25
|
+
const interactions = [];
|
|
26
|
+
const animationTypes = new Set();
|
|
27
|
+
if (data.document) {
|
|
28
|
+
walk(data.document, (n) => {
|
|
29
|
+
const nodeInteractions = (n.interactions ?? n.prototypeInteractions);
|
|
30
|
+
if (!Array.isArray(nodeInteractions) || nodeInteractions.length === 0)
|
|
31
|
+
return;
|
|
32
|
+
const actions = nodeInteractions.flatMap((i) => (i.actions ?? []).map((a) => {
|
|
33
|
+
const transition = (a.transition ?? a).transition;
|
|
34
|
+
const t = (transition ?? a);
|
|
35
|
+
if (withAnims && typeof t.type === 'string')
|
|
36
|
+
animationTypes.add(t.type);
|
|
37
|
+
return {
|
|
38
|
+
type: a.type,
|
|
39
|
+
navigation: a.navigation,
|
|
40
|
+
destination_id: a.destinationId,
|
|
41
|
+
url: a.url,
|
|
42
|
+
transition: withAnims ? (transition ?? undefined) : undefined,
|
|
43
|
+
};
|
|
44
|
+
}));
|
|
45
|
+
interactions.push({
|
|
46
|
+
node_id: n.id,
|
|
47
|
+
node_name: n.name,
|
|
48
|
+
trigger: nodeInteractions.map((i) => i.trigger),
|
|
49
|
+
actions,
|
|
50
|
+
});
|
|
51
|
+
});
|
|
52
|
+
}
|
|
53
|
+
const componentStates = [];
|
|
54
|
+
if (analyzeComponents !== false) {
|
|
55
|
+
for (const [id, set] of Object.entries(data.componentSets ?? {})) {
|
|
56
|
+
componentStates.push({ component_id: id, name: set.name, variants: [], default_variant: undefined });
|
|
57
|
+
}
|
|
58
|
+
}
|
|
59
|
+
const prototypeFlows = (data.prototypeStartingPoints ?? []).map((p) => ({
|
|
60
|
+
name: p.name ?? '',
|
|
61
|
+
starting_node_id: p.nodeId ?? '',
|
|
62
|
+
nodes_in_flow: [],
|
|
63
|
+
}));
|
|
64
|
+
return {
|
|
65
|
+
interactions,
|
|
66
|
+
component_states: componentStates,
|
|
67
|
+
prototype_flows: prototypeFlows,
|
|
68
|
+
total_interactions: interactions.length,
|
|
69
|
+
animation_types_used: [...animationTypes],
|
|
70
|
+
};
|
|
71
|
+
}
|
|
72
|
+
catch (error) {
|
|
73
|
+
return {
|
|
74
|
+
error: 'Error extracting prototype interactions',
|
|
75
|
+
message: error instanceof Error ? error.message : 'Unknown error',
|
|
76
|
+
};
|
|
77
|
+
}
|
|
78
|
+
},
|
|
79
|
+
});
|
|
80
|
+
//# sourceMappingURL=extract-prototype-interactions.js.map
|
|
@@ -0,0 +1,26 @@
|
|
|
1
|
+
// @ts-nocheck
|
|
2
|
+
import { tool } from 'ai';
|
|
3
|
+
import { z } from 'zod';
|
|
4
|
+
import { figmaRequest, figmaTokenField } from './client.js';
|
|
5
|
+
export const getAWebhook = tool({
|
|
6
|
+
description: 'Retrieves a webhook by ID, if it exists and is accessible.',
|
|
7
|
+
inputSchema: z.object({
|
|
8
|
+
figmaToken: figmaTokenField,
|
|
9
|
+
webhookId: z.string().describe('Webhook ID'),
|
|
10
|
+
}),
|
|
11
|
+
execute: async ({ figmaToken, webhookId }) => {
|
|
12
|
+
try {
|
|
13
|
+
const result = await figmaRequest(figmaToken, `/v2/webhooks/${webhookId}`);
|
|
14
|
+
if (!result.ok)
|
|
15
|
+
return { error: 'Failed to get webhook', details: result.error };
|
|
16
|
+
return result.data;
|
|
17
|
+
}
|
|
18
|
+
catch (error) {
|
|
19
|
+
return {
|
|
20
|
+
error: 'Error getting webhook',
|
|
21
|
+
message: error instanceof Error ? error.message : 'Unknown error',
|
|
22
|
+
};
|
|
23
|
+
}
|
|
24
|
+
},
|
|
25
|
+
});
|
|
26
|
+
//# sourceMappingURL=get-a-webhook.js.map
|
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
export declare const getActivityLogs: import("ai").Tool<{
|
|
2
|
+
figmaToken: string;
|
|
3
|
+
limit?: number | undefined;
|
|
4
|
+
order?: "asc" | "desc" | undefined;
|
|
5
|
+
events?: string | undefined;
|
|
6
|
+
startTime?: number | undefined;
|
|
7
|
+
endTime?: number | undefined;
|
|
8
|
+
cursor?: string | undefined;
|
|
9
|
+
}, any>;
|
|
10
|
+
//# sourceMappingURL=get-activity-logs.d.ts.map
|
|
@@ -0,0 +1,33 @@
|
|
|
1
|
+
// @ts-nocheck
|
|
2
|
+
import { tool } from 'ai';
|
|
3
|
+
import { z } from 'zod';
|
|
4
|
+
import { figmaRequest, figmaTokenField } from './client.js';
|
|
5
|
+
export const getActivityLogs = tool({
|
|
6
|
+
description: 'Retrieves org activity log events with type, time-range, and pagination filters. Defaults: last year to now, 1000 per page, ascending.',
|
|
7
|
+
inputSchema: z.object({
|
|
8
|
+
figmaToken: figmaTokenField,
|
|
9
|
+
events: z.string().optional().describe("Comma-separated event types, e.g. 'file_viewed,file_commented'"),
|
|
10
|
+
startTime: z.number().optional().describe('Unix timestamp lower bound (default one year ago)'),
|
|
11
|
+
endTime: z.number().optional().describe('Unix timestamp upper bound (default now)'),
|
|
12
|
+
limit: z.number().optional().describe('Events per page (default 1000)'),
|
|
13
|
+
order: z.enum(['asc', 'desc']).optional().describe('Sort by timestamp (default asc)'),
|
|
14
|
+
cursor: z.string().optional().describe('Pagination cursor from a previous response'),
|
|
15
|
+
}),
|
|
16
|
+
execute: async ({ figmaToken, events, startTime, endTime, limit, order, cursor }) => {
|
|
17
|
+
try {
|
|
18
|
+
const result = await figmaRequest(figmaToken, '/v1/activity_logs', {
|
|
19
|
+
query: { events, start_time: startTime, end_time: endTime, limit, order, cursor },
|
|
20
|
+
});
|
|
21
|
+
if (!result.ok)
|
|
22
|
+
return { error: 'Failed to get activity logs', details: result.error };
|
|
23
|
+
return result.data;
|
|
24
|
+
}
|
|
25
|
+
catch (error) {
|
|
26
|
+
return {
|
|
27
|
+
error: 'Error getting activity logs',
|
|
28
|
+
message: error instanceof Error ? error.message : 'Unknown error',
|
|
29
|
+
};
|
|
30
|
+
}
|
|
31
|
+
},
|
|
32
|
+
});
|
|
33
|
+
//# sourceMappingURL=get-activity-logs.js.map
|
|
@@ -0,0 +1,29 @@
|
|
|
1
|
+
// @ts-nocheck
|
|
2
|
+
import { tool } from 'ai';
|
|
3
|
+
import { z } from 'zod';
|
|
4
|
+
import { figmaRequest, figmaTokenField } from './client.js';
|
|
5
|
+
export const getCommentsInAFile = tool({
|
|
6
|
+
description: 'Retrieves all comments (content, author, position, reactions) from a file or branch. Set asMd for Markdown content.',
|
|
7
|
+
inputSchema: z.object({
|
|
8
|
+
figmaToken: figmaTokenField,
|
|
9
|
+
fileKey: z.string().describe('File or branch key from the file URL'),
|
|
10
|
+
asMd: z.boolean().optional().describe('Return content as Markdown (default rich text)'),
|
|
11
|
+
}),
|
|
12
|
+
execute: async ({ figmaToken, fileKey, asMd }) => {
|
|
13
|
+
try {
|
|
14
|
+
const result = await figmaRequest(figmaToken, `/v1/files/${fileKey}/comments`, {
|
|
15
|
+
query: { as_md: asMd },
|
|
16
|
+
});
|
|
17
|
+
if (!result.ok)
|
|
18
|
+
return { error: 'Failed to get comments', details: result.error };
|
|
19
|
+
return result.data;
|
|
20
|
+
}
|
|
21
|
+
catch (error) {
|
|
22
|
+
return {
|
|
23
|
+
error: 'Error getting comments',
|
|
24
|
+
message: error instanceof Error ? error.message : 'Unknown error',
|
|
25
|
+
};
|
|
26
|
+
}
|
|
27
|
+
},
|
|
28
|
+
});
|
|
29
|
+
//# sourceMappingURL=get-comments-in-a-file.js.map
|