twentythree-cli 1.0.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +25 -0
- package/bin/dev.cmd +2 -0
- package/bin/dev.js +28 -0
- package/bin/run.cmd +2 -0
- package/bin/run.js +23 -0
- package/dist/_virtual/_rolldown/runtime.cjs +23 -0
- package/dist/api/client.cjs +24 -0
- package/dist/api/types.cjs +0 -0
- package/dist/auth/credential-store.cjs +22 -0
- package/dist/auth/token-refresh.cjs +70 -0
- package/dist/auth/workspace-config.cjs +61 -0
- package/dist/commands/action/add.cjs +75 -0
- package/dist/commands/action/delete.cjs +64 -0
- package/dist/commands/action/exclude.cjs +70 -0
- package/dist/commands/action/get.cjs +112 -0
- package/dist/commands/action/include.cjs +70 -0
- package/dist/commands/action/list.cjs +119 -0
- package/dist/commands/action/types.cjs +63 -0
- package/dist/commands/action/update.cjs +86 -0
- package/dist/commands/action/upload.cjs +89 -0
- package/dist/commands/analytics/conversions/index.cjs +83 -0
- package/dist/commands/analytics/conversions/timeseries.cjs +83 -0
- package/dist/commands/analytics/conversions/totals.cjs +83 -0
- package/dist/commands/analytics/live/event-timeseries.cjs +86 -0
- package/dist/commands/analytics/live/event-totals.cjs +86 -0
- package/dist/commands/analytics/live/event.cjs +88 -0
- package/dist/commands/analytics/live/index.cjs +89 -0
- package/dist/commands/analytics/live/timeseries.cjs +85 -0
- package/dist/commands/analytics/live/totals.cjs +85 -0
- package/dist/commands/analytics/live/weekday/timeseries.cjs +85 -0
- package/dist/commands/analytics/live/weekday/totals.cjs +85 -0
- package/dist/commands/analytics/live/weekday.cjs +88 -0
- package/dist/commands/analytics/usage/devices/timeseries.cjs +83 -0
- package/dist/commands/analytics/usage/devices/totals.cjs +86 -0
- package/dist/commands/analytics/usage/devices.cjs +89 -0
- package/dist/commands/analytics/usage/domains/totals.cjs +83 -0
- package/dist/commands/analytics/usage/domains.cjs +89 -0
- package/dist/commands/analytics/usage/locations/totals.cjs +83 -0
- package/dist/commands/analytics/usage/locations.cjs +89 -0
- package/dist/commands/analytics/usage/sourceids/totals.cjs +83 -0
- package/dist/commands/analytics/usage/sourceids.cjs +89 -0
- package/dist/commands/analytics/usage/sources/totals.cjs +83 -0
- package/dist/commands/analytics/usage/sources.cjs +89 -0
- package/dist/commands/analytics/usage/spots/timeseries.cjs +83 -0
- package/dist/commands/analytics/usage/spots/totals.cjs +83 -0
- package/dist/commands/analytics/usage/spots.cjs +89 -0
- package/dist/commands/analytics/usage/storage.cjs +52 -0
- package/dist/commands/analytics/usage/traffic/timeseries.cjs +83 -0
- package/dist/commands/analytics/usage/traffic/totals.cjs +86 -0
- package/dist/commands/analytics/usage/traffic.cjs +89 -0
- package/dist/commands/analytics/video/index.cjs +89 -0
- package/dist/commands/analytics/video/performance/timeseries.cjs +83 -0
- package/dist/commands/analytics/video/performance/totals.cjs +80 -0
- package/dist/commands/analytics/video/performance.cjs +89 -0
- package/dist/commands/analytics/video/published/timeseries.cjs +83 -0
- package/dist/commands/analytics/video/published/totals.cjs +80 -0
- package/dist/commands/analytics/video/published.cjs +89 -0
- package/dist/commands/analytics/video/timeseries.cjs +86 -0
- package/dist/commands/analytics/video/totals.cjs +86 -0
- package/dist/commands/analytics/video/weekday/timeseries.cjs +86 -0
- package/dist/commands/analytics/video/weekday/totals.cjs +83 -0
- package/dist/commands/analytics/video/weekday.cjs +89 -0
- package/dist/commands/app/add.cjs +76 -0
- package/dist/commands/app/delete.cjs +57 -0
- package/dist/commands/app/update.cjs +77 -0
- package/dist/commands/audience/companies.cjs +116 -0
- package/dist/commands/audience/field/list.cjs +83 -0
- package/dist/commands/audience/field/remove.cjs +63 -0
- package/dist/commands/audience/field/set.cjs +78 -0
- package/dist/commands/audience/field/types.cjs +57 -0
- package/dist/commands/audience/funnel.cjs +77 -0
- package/dist/commands/audience/identity-sources.cjs +64 -0
- package/dist/commands/audience/list-collectors.cjs +88 -0
- package/dist/commands/audience/list.cjs +122 -0
- package/dist/commands/audience/metrics.cjs +89 -0
- package/dist/commands/audience/register.cjs +106 -0
- package/dist/commands/audience/remove.cjs +72 -0
- package/dist/commands/audience/search.cjs +106 -0
- package/dist/commands/audience/timelines.cjs +115 -0
- package/dist/commands/audience/unregister.cjs +65 -0
- package/dist/commands/auth/credentials.cjs +89 -0
- package/dist/commands/auth/status.cjs +34 -0
- package/dist/commands/category/create.cjs +80 -0
- package/dist/commands/category/delete.cjs +70 -0
- package/dist/commands/category/index.cjs +11 -0
- package/dist/commands/category/list.cjs +98 -0
- package/dist/commands/category/update.cjs +134 -0
- package/dist/commands/collector/exclude.cjs +56 -0
- package/dist/commands/collector/include.cjs +56 -0
- package/dist/commands/collector/list.cjs +81 -0
- package/dist/commands/comment/add.cjs +102 -0
- package/dist/commands/comment/clone.cjs +59 -0
- package/dist/commands/comment/delete.cjs +55 -0
- package/dist/commands/comment/list.cjs +126 -0
- package/dist/commands/comment/promote.cjs +65 -0
- package/dist/commands/comment/reaction/add.cjs +81 -0
- package/dist/commands/comment/reaction/list.cjs +92 -0
- package/dist/commands/comment/reaction/remove.cjs +81 -0
- package/dist/commands/comment/set-order.cjs +63 -0
- package/dist/commands/comment/update.cjs +63 -0
- package/dist/commands/doctor.cjs +129 -0
- package/dist/commands/openupload/list.cjs +95 -0
- package/dist/commands/openupload/update-file.cjs +85 -0
- package/dist/commands/openupload/upload-file.cjs +130 -0
- package/dist/commands/player/delete.cjs +66 -0
- package/dist/commands/player/embed-versions.cjs +83 -0
- package/dist/commands/player/embed.cjs +134 -0
- package/dist/commands/player/list.cjs +86 -0
- package/dist/commands/player/styles.cjs +70 -0
- package/dist/commands/player/update.cjs +80 -0
- package/dist/commands/poll/add.cjs +84 -0
- package/dist/commands/poll/answer.cjs +89 -0
- package/dist/commands/poll/list.cjs +92 -0
- package/dist/commands/poll/remove.cjs +57 -0
- package/dist/commands/poll/set-options.cjs +84 -0
- package/dist/commands/poll/update.cjs +79 -0
- package/dist/commands/presentation/page/link-locations.cjs +57 -0
- package/dist/commands/presentation/setting/list.cjs +44 -0
- package/dist/commands/presentation/setting/update.cjs +67 -0
- package/dist/commands/protection/protect.cjs +68 -0
- package/dist/commands/protection/unprotect.cjs +65 -0
- package/dist/commands/protection/verify.cjs +80 -0
- package/dist/commands/session/get-token.cjs +75 -0
- package/dist/commands/session/redeem-token.cjs +56 -0
- package/dist/commands/setting/update.cjs +79 -0
- package/dist/commands/site/get.cjs +73 -0
- package/dist/commands/site/search.cjs +93 -0
- package/dist/commands/spot/check.cjs +52 -0
- package/dist/commands/spot/create.cjs +79 -0
- package/dist/commands/spot/delete.cjs +68 -0
- package/dist/commands/spot/list.cjs +120 -0
- package/dist/commands/spot/reset-version.cjs +53 -0
- package/dist/commands/spot/set-videos.cjs +64 -0
- package/dist/commands/spot/update.cjs +78 -0
- package/dist/commands/tag/list.cjs +98 -0
- package/dist/commands/tag/related.cjs +57 -0
- package/dist/commands/thumbnail/add.cjs +66 -0
- package/dist/commands/thumbnail/data.cjs +60 -0
- package/dist/commands/thumbnail/delete.cjs +61 -0
- package/dist/commands/thumbnail/duplicate.cjs +67 -0
- package/dist/commands/thumbnail/file/delete.cjs +71 -0
- package/dist/commands/thumbnail/file/list.cjs +74 -0
- package/dist/commands/thumbnail/file/upload.cjs +79 -0
- package/dist/commands/thumbnail/index.cjs +11 -0
- package/dist/commands/thumbnail/list.cjs +89 -0
- package/dist/commands/thumbnail/update.cjs +87 -0
- package/dist/commands/user/create.cjs +87 -0
- package/dist/commands/user/get-login-token.cjs +72 -0
- package/dist/commands/user/get.cjs +67 -0
- package/dist/commands/user/list.cjs +95 -0
- package/dist/commands/user/redeem-login-token.cjs +55 -0
- package/dist/commands/user/send-invitation.cjs +63 -0
- package/dist/commands/user/tokens.cjs +80 -0
- package/dist/commands/user/update.cjs +121 -0
- package/dist/commands/video/delete.cjs +67 -0
- package/dist/commands/video/frame.cjs +69 -0
- package/dist/commands/video/get.cjs +68 -0
- package/dist/commands/video/index.cjs +11 -0
- package/dist/commands/video/list.cjs +98 -0
- package/dist/commands/video/replace.cjs +126 -0
- package/dist/commands/video/section/create.cjs +73 -0
- package/dist/commands/video/section/delete.cjs +78 -0
- package/dist/commands/video/section/index.cjs +11 -0
- package/dist/commands/video/section/list.cjs +75 -0
- package/dist/commands/video/section/set-thumbnail.cjs +73 -0
- package/dist/commands/video/section/update.cjs +84 -0
- package/dist/commands/video/subtitle/archive.cjs +76 -0
- package/dist/commands/video/subtitle/create.cjs +80 -0
- package/dist/commands/video/subtitle/data.cjs +75 -0
- package/dist/commands/video/subtitle/delete.cjs +84 -0
- package/dist/commands/video/subtitle/duplicate.cjs +89 -0
- package/dist/commands/video/subtitle/index.cjs +11 -0
- package/dist/commands/video/subtitle/list.cjs +94 -0
- package/dist/commands/video/subtitle/locales.cjs +60 -0
- package/dist/commands/video/subtitle/set-primary.cjs +64 -0
- package/dist/commands/video/subtitle/types.cjs +42 -0
- package/dist/commands/video/subtitle/update.cjs +93 -0
- package/dist/commands/video/subtitle/upload.cjs +104 -0
- package/dist/commands/video/transcoding-progress.cjs +71 -0
- package/dist/commands/video/update.cjs +184 -0
- package/dist/commands/video/upload.cjs +151 -0
- package/dist/commands/webhook/events.cjs +68 -0
- package/dist/commands/webhook/list.cjs +64 -0
- package/dist/commands/webhook/sample.cjs +47 -0
- package/dist/commands/webhook/subscribe.cjs +66 -0
- package/dist/commands/webhook/unsubscribe.cjs +71 -0
- package/dist/commands/webinar/attachment/delete.cjs +79 -0
- package/dist/commands/webinar/attachment/list.cjs +94 -0
- package/dist/commands/webinar/attachment/set-hidden.cjs +85 -0
- package/dist/commands/webinar/attachment/upload.cjs +128 -0
- package/dist/commands/webinar/clips.cjs +77 -0
- package/dist/commands/webinar/create.cjs +107 -0
- package/dist/commands/webinar/delete.cjs +62 -0
- package/dist/commands/webinar/highlights.cjs +84 -0
- package/dist/commands/webinar/index.cjs +11 -0
- package/dist/commands/webinar/list-formats.cjs +50 -0
- package/dist/commands/webinar/list.cjs +134 -0
- package/dist/commands/webinar/log.cjs +69 -0
- package/dist/commands/webinar/mail/add.cjs +101 -0
- package/dist/commands/webinar/mail/list.cjs +83 -0
- package/dist/commands/webinar/mail/preview.cjs +75 -0
- package/dist/commands/webinar/mail/remove.cjs +75 -0
- package/dist/commands/webinar/mail/send.cjs +68 -0
- package/dist/commands/webinar/mail/test.cjs +86 -0
- package/dist/commands/webinar/mail/update.cjs +84 -0
- package/dist/commands/webinar/metrics.cjs +59 -0
- package/dist/commands/webinar/queued-video/add.cjs +81 -0
- package/dist/commands/webinar/queued-video/remove.cjs +81 -0
- package/dist/commands/webinar/recording/split.cjs +53 -0
- package/dist/commands/webinar/recording/start.cjs +53 -0
- package/dist/commands/webinar/recording/status.cjs +52 -0
- package/dist/commands/webinar/recording/stop.cjs +53 -0
- package/dist/commands/webinar/repeat.cjs +65 -0
- package/dist/commands/webinar/room/connect.cjs +60 -0
- package/dist/commands/webinar/room/info.cjs +60 -0
- package/dist/commands/webinar/room/send-recording.cjs +59 -0
- package/dist/commands/webinar/room/themes.cjs +63 -0
- package/dist/commands/webinar/section/add.cjs +98 -0
- package/dist/commands/webinar/section/list.cjs +86 -0
- package/dist/commands/webinar/section/remove.cjs +75 -0
- package/dist/commands/webinar/section/update.cjs +85 -0
- package/dist/commands/webinar/series/apply-recurrence.cjs +68 -0
- package/dist/commands/webinar/series/cancel.cjs +73 -0
- package/dist/commands/webinar/series/create.cjs +80 -0
- package/dist/commands/webinar/series/delete.cjs +73 -0
- package/dist/commands/webinar/series/list.cjs +79 -0
- package/dist/commands/webinar/series/mapped-objects.cjs +69 -0
- package/dist/commands/webinar/series/metrics.cjs +57 -0
- package/dist/commands/webinar/series/recurrences.cjs +72 -0
- package/dist/commands/webinar/series/set-ondemand.cjs +67 -0
- package/dist/commands/webinar/series/skip-recurrence.cjs +79 -0
- package/dist/commands/webinar/series/update.cjs +71 -0
- package/dist/commands/webinar/series/upload-thumbnail.cjs +117 -0
- package/dist/commands/webinar/speaker/add-from-speaker.cjs +78 -0
- package/dist/commands/webinar/speaker/add-from-user.cjs +78 -0
- package/dist/commands/webinar/speaker/add.cjs +112 -0
- package/dist/commands/webinar/speaker/cancel-guest-request.cjs +62 -0
- package/dist/commands/webinar/speaker/connection-types.cjs +66 -0
- package/dist/commands/webinar/speaker/library.cjs +59 -0
- package/dist/commands/webinar/speaker/list.cjs +90 -0
- package/dist/commands/webinar/speaker/remove-avatar.cjs +62 -0
- package/dist/commands/webinar/speaker/remove.cjs +69 -0
- package/dist/commands/webinar/speaker/request-guest.cjs +62 -0
- package/dist/commands/webinar/speaker/send-invitation.cjs +62 -0
- package/dist/commands/webinar/speaker/set-avatar.cjs +130 -0
- package/dist/commands/webinar/speaker/set-order.cjs +95 -0
- package/dist/commands/webinar/speaker/update.cjs +90 -0
- package/dist/commands/webinar/transcription/connect.cjs +69 -0
- package/dist/commands/webinar/transcription/list.cjs +88 -0
- package/dist/commands/webinar/transcription/locales.cjs +76 -0
- package/dist/commands/webinar/transcription/transcriptionlist.cjs +67 -0
- package/dist/commands/webinar/update.cjs +192 -0
- package/dist/commands/webinar/upload-image.cjs +133 -0
- package/dist/commands/workspace/list.cjs +47 -0
- package/dist/commands/workspace/use.cjs +52 -0
- package/dist/index.cjs +6 -0
- package/dist/lib/analytics-flags.cjs +60 -0
- package/dist/lib/audit.cjs +44 -0
- package/dist/lib/base-command.cjs +156 -0
- package/dist/lib/output.cjs +82 -0
- package/dist/lib/pagination.cjs +36 -0
- package/dist/lib/term-map.cjs +48 -0
- package/dist/upload/chunk-pool.cjs +47 -0
- package/dist/upload/chunked-upload.cjs +131 -0
- package/dist/upload/types.cjs +9 -0
- package/docs/commands/README.md +31 -0
- package/docs/commands/action/add.md +36 -0
- package/docs/commands/action/delete.md +32 -0
- package/docs/commands/action/exclude.md +38 -0
- package/docs/commands/action/get.md +47 -0
- package/docs/commands/action/include.md +38 -0
- package/docs/commands/action/list.md +43 -0
- package/docs/commands/action/types.md +34 -0
- package/docs/commands/action/update.md +42 -0
- package/docs/commands/action/upload.md +36 -0
- package/docs/commands/action.md +306 -0
- package/docs/commands/analytics/conversions.md +113 -0
- package/docs/commands/analytics/live.md +338 -0
- package/docs/commands/analytics/usage.md +674 -0
- package/docs/commands/analytics/video.md +449 -0
- package/docs/commands/analytics.md +1559 -0
- package/docs/commands/app/add.md +38 -0
- package/docs/commands/app/delete.md +32 -0
- package/docs/commands/app/update.md +41 -0
- package/docs/commands/app.md +101 -0
- package/docs/commands/audience/companies.md +41 -0
- package/docs/commands/audience/field.md +119 -0
- package/docs/commands/audience/funnel.md +38 -0
- package/docs/commands/audience/identity-sources.md +29 -0
- package/docs/commands/audience/list-collectors.md +35 -0
- package/docs/commands/audience/list.md +42 -0
- package/docs/commands/audience/metrics.md +40 -0
- package/docs/commands/audience/register.md +45 -0
- package/docs/commands/audience/remove.md +35 -0
- package/docs/commands/audience/search.md +39 -0
- package/docs/commands/audience/timelines.md +41 -0
- package/docs/commands/audience/unregister.md +36 -0
- package/docs/commands/audience.md +485 -0
- package/docs/commands/auth/credentials.md +23 -0
- package/docs/commands/auth/status.md +27 -0
- package/docs/commands/auth.md +45 -0
- package/docs/commands/category/create.md +36 -0
- package/docs/commands/category/delete.md +32 -0
- package/docs/commands/category/list.md +34 -0
- package/docs/commands/category/update.md +39 -0
- package/docs/commands/category.md +141 -0
- package/docs/commands/collector/exclude.md +33 -0
- package/docs/commands/collector/include.md +33 -0
- package/docs/commands/collector/list.md +37 -0
- package/docs/commands/collector.md +93 -0
- package/docs/commands/comment/add.md +43 -0
- package/docs/commands/comment/clone.md +35 -0
- package/docs/commands/comment/delete.md +32 -0
- package/docs/commands/comment/list.md +42 -0
- package/docs/commands/comment/promote.md +37 -0
- package/docs/commands/comment/reaction.md +106 -0
- package/docs/commands/comment/set-order.md +34 -0
- package/docs/commands/comment/update.md +36 -0
- package/docs/commands/comment.md +330 -0
- package/docs/commands/doctor.md +28 -0
- package/docs/commands/openupload/list.md +36 -0
- package/docs/commands/openupload/update-file.md +40 -0
- package/docs/commands/openupload/upload-file.md +39 -0
- package/docs/commands/openupload.md +105 -0
- package/docs/commands/player/delete.md +32 -0
- package/docs/commands/player/embed-versions.md +34 -0
- package/docs/commands/player/embed.md +51 -0
- package/docs/commands/player/list.md +32 -0
- package/docs/commands/player/styles.md +32 -0
- package/docs/commands/player/update.md +37 -0
- package/docs/commands/player.md +193 -0
- package/docs/commands/poll/add.md +33 -0
- package/docs/commands/poll/answer.md +38 -0
- package/docs/commands/poll/list.md +33 -0
- package/docs/commands/poll/remove.md +32 -0
- package/docs/commands/poll/set-options.md +35 -0
- package/docs/commands/poll/update.md +41 -0
- package/docs/commands/poll.md +187 -0
- package/docs/commands/presentation/page.md +29 -0
- package/docs/commands/presentation/setting.md +58 -0
- package/docs/commands/presentation.md +82 -0
- package/docs/commands/protection/protect.md +37 -0
- package/docs/commands/protection/unprotect.md +34 -0
- package/docs/commands/protection/verify.md +39 -0
- package/docs/commands/protection.md +100 -0
- package/docs/commands/session/get-token.md +38 -0
- package/docs/commands/session/redeem-token.md +32 -0
- package/docs/commands/session.md +65 -0
- package/docs/commands/setting/update.md +37 -0
- package/docs/commands/setting.md +37 -0
- package/docs/commands/site/get.md +35 -0
- package/docs/commands/site/search.md +38 -0
- package/docs/commands/site.md +68 -0
- package/docs/commands/spot/check.md +32 -0
- package/docs/commands/spot/create.md +38 -0
- package/docs/commands/spot/delete.md +32 -0
- package/docs/commands/spot/list.md +43 -0
- package/docs/commands/spot/reset-version.md +32 -0
- package/docs/commands/spot/set-videos.md +35 -0
- package/docs/commands/spot/update.md +40 -0
- package/docs/commands/spot.md +222 -0
- package/docs/commands/tag/list.md +44 -0
- package/docs/commands/tag/related.md +32 -0
- package/docs/commands/tag.md +71 -0
- package/docs/commands/thumbnail/add.md +33 -0
- package/docs/commands/thumbnail/data.md +35 -0
- package/docs/commands/thumbnail/delete.md +32 -0
- package/docs/commands/thumbnail/duplicate.md +37 -0
- package/docs/commands/thumbnail/file.md +90 -0
- package/docs/commands/thumbnail/list.md +37 -0
- package/docs/commands/thumbnail/update.md +44 -0
- package/docs/commands/thumbnail.md +293 -0
- package/docs/commands/user/create.md +41 -0
- package/docs/commands/user/get-login-token.md +37 -0
- package/docs/commands/user/get.md +37 -0
- package/docs/commands/user/list.md +40 -0
- package/docs/commands/user/redeem-login-token.md +32 -0
- package/docs/commands/user/send-invitation.md +37 -0
- package/docs/commands/user/tokens.md +34 -0
- package/docs/commands/user/update.md +44 -0
- package/docs/commands/user.md +267 -0
- package/docs/commands/video/delete.md +32 -0
- package/docs/commands/video/frame.md +37 -0
- package/docs/commands/video/get.md +32 -0
- package/docs/commands/video/list.md +33 -0
- package/docs/commands/video/replace.md +37 -0
- package/docs/commands/video/section.md +177 -0
- package/docs/commands/video/subtitle.md +362 -0
- package/docs/commands/video/transcoding-progress.md +32 -0
- package/docs/commands/video/update.md +45 -0
- package/docs/commands/video/upload.md +44 -0
- package/docs/commands/video.md +801 -0
- package/docs/commands/webhook/events.md +34 -0
- package/docs/commands/webhook/list.md +29 -0
- package/docs/commands/webhook/sample.md +32 -0
- package/docs/commands/webhook/subscribe.md +33 -0
- package/docs/commands/webhook/unsubscribe.md +35 -0
- package/docs/commands/webhook.md +143 -0
- package/docs/commands/webinar/attachment.md +135 -0
- package/docs/commands/webinar/clips.md +32 -0
- package/docs/commands/webinar/create.md +40 -0
- package/docs/commands/webinar/delete.md +32 -0
- package/docs/commands/webinar/highlights.md +37 -0
- package/docs/commands/webinar/list-formats.md +29 -0
- package/docs/commands/webinar/list.md +41 -0
- package/docs/commands/webinar/log.md +32 -0
- package/docs/commands/webinar/mail.md +238 -0
- package/docs/commands/webinar/metrics.md +32 -0
- package/docs/commands/webinar/queued-video.md +65 -0
- package/docs/commands/webinar/recording.md +113 -0
- package/docs/commands/webinar/repeat.md +35 -0
- package/docs/commands/webinar/room.md +110 -0
- package/docs/commands/webinar/section.md +134 -0
- package/docs/commands/webinar/series.md +365 -0
- package/docs/commands/webinar/speaker.md +430 -0
- package/docs/commands/webinar/transcription.md +125 -0
- package/docs/commands/webinar/update.md +43 -0
- package/docs/commands/webinar/upload-image.md +42 -0
- package/docs/commands/webinar.md +2030 -0
- package/docs/commands/workspace/list.md +27 -0
- package/docs/commands/workspace/use.md +32 -0
- package/docs/commands/workspace.md +54 -0
- package/docs/guides/api-spec-upgrade.md +92 -0
- package/docs/guides/getting-started.md +66 -0
- package/oclif.manifest.json +21609 -0
- package/package.json +71 -0
|
@@ -0,0 +1,57 @@
|
|
|
1
|
+
const require_runtime = require("../../../_virtual/_rolldown/runtime.cjs");
|
|
2
|
+
const require_lib_term_map = require("../../../lib/term-map.cjs");
|
|
3
|
+
const require_lib_base_command = require("../../../lib/base-command.cjs");
|
|
4
|
+
const require_lib_output = require("../../../lib/output.cjs");
|
|
5
|
+
let chalk = require("chalk");
|
|
6
|
+
chalk = require_runtime.__toESM(chalk);
|
|
7
|
+
//#region src/commands/audience/field/types.ts
|
|
8
|
+
/**
|
|
9
|
+
* Audience field types command — list valid audience field types (AUD-12).
|
|
10
|
+
*
|
|
11
|
+
* POST form with no required body fields. Returns list of valid type identifiers
|
|
12
|
+
* with human-readable labels — used to discover valid values for audience field set --type.
|
|
13
|
+
*
|
|
14
|
+
* 3-level oclif topic via directory structure (audience/field/types.ts).
|
|
15
|
+
*/
|
|
16
|
+
var AudienceFieldTypes = class AudienceFieldTypes extends require_lib_base_command.AuthenticatedCommand {
|
|
17
|
+
static description = "List valid audience field types";
|
|
18
|
+
static agentMetadata = {
|
|
19
|
+
api_endpoint: "POST /audience/field/types",
|
|
20
|
+
auth_scope: "read",
|
|
21
|
+
output_shape: {
|
|
22
|
+
type: "table",
|
|
23
|
+
columns: ["Type", "Label"]
|
|
24
|
+
},
|
|
25
|
+
side_effects: "none"
|
|
26
|
+
};
|
|
27
|
+
static examples = ["<%= config.bin %> audience field types", "<%= config.bin %> audience field types --json"];
|
|
28
|
+
static enableJsonFlag = true;
|
|
29
|
+
static flags = { ...require_lib_base_command.AuthenticatedCommand.baseFlags };
|
|
30
|
+
static args = {};
|
|
31
|
+
async run() {
|
|
32
|
+
const { flags: _flags } = await this.parse(AudienceFieldTypes);
|
|
33
|
+
this.printWorkspaceHeader();
|
|
34
|
+
const { data, error } = await this.apiClient.POST("/audience/field/types", {
|
|
35
|
+
body: {},
|
|
36
|
+
headers: { "Content-Type": "application/x-www-form-urlencoded" }
|
|
37
|
+
});
|
|
38
|
+
if (error) this.error(require_lib_term_map.applyCliTerms(formatApiError(error)), { exit: 1 });
|
|
39
|
+
const resp = data;
|
|
40
|
+
const rows = Array.isArray(resp?.data) ? resp.data : resp?.data ? [resp.data] : [];
|
|
41
|
+
if (this.jsonEnabled()) return require_lib_output.formatJsonOutput({
|
|
42
|
+
ok: true,
|
|
43
|
+
data: rows,
|
|
44
|
+
summary: `${rows.length} field type(s)`,
|
|
45
|
+
breadcrumbs: [{ domain: this.activeWorkspace.domain }, { resource: "audience" }]
|
|
46
|
+
});
|
|
47
|
+
if (rows.length === 0) {
|
|
48
|
+
this.log("No field types found.");
|
|
49
|
+
return;
|
|
50
|
+
}
|
|
51
|
+
const table = require_lib_output.renderTable(["Type", "Label"], rows.map((r) => [String(r.type ?? ""), String(r.label ?? "")]));
|
|
52
|
+
this.log(table.toString());
|
|
53
|
+
this.log(chalk.default.dim(`${rows.length} field type(s)`));
|
|
54
|
+
}
|
|
55
|
+
};
|
|
56
|
+
//#endregion
|
|
57
|
+
module.exports = AudienceFieldTypes;
|
|
@@ -0,0 +1,77 @@
|
|
|
1
|
+
require("../../_virtual/_rolldown/runtime.cjs");
|
|
2
|
+
const require_lib_term_map = require("../../lib/term-map.cjs");
|
|
3
|
+
const require_lib_base_command = require("../../lib/base-command.cjs");
|
|
4
|
+
const require_lib_output = require("../../lib/output.cjs");
|
|
5
|
+
let _oclif_core = require("@oclif/core");
|
|
6
|
+
//#region src/commands/audience/funnel.ts
|
|
7
|
+
/**
|
|
8
|
+
* Audience funnel command — get audience funnel analytics (AUD-07).
|
|
9
|
+
*
|
|
10
|
+
* Returns a single object (Pitfall 6) — key-value rendering, NOT renderTable.
|
|
11
|
+
* Metrics: visits, views, engagement, conversions, new_conversions.
|
|
12
|
+
* Uses _fmt-suffixed versions when available for human-readable numbers.
|
|
13
|
+
*/
|
|
14
|
+
var AudienceFunnel = class AudienceFunnel extends require_lib_base_command.AuthenticatedCommand {
|
|
15
|
+
static description = "Get audience funnel analytics";
|
|
16
|
+
static agentMetadata = {
|
|
17
|
+
api_endpoint: "GET /audience/funnel",
|
|
18
|
+
auth_scope: "read",
|
|
19
|
+
output_shape: { type: "key-value" },
|
|
20
|
+
side_effects: "none"
|
|
21
|
+
};
|
|
22
|
+
static examples = [
|
|
23
|
+
"<%= config.bin %> audience funnel",
|
|
24
|
+
"<%= config.bin %> audience funnel --objects \"123 456\" --json",
|
|
25
|
+
"<%= config.bin %> audience funnel --live-type on_demand --resolve-recordings"
|
|
26
|
+
];
|
|
27
|
+
static enableJsonFlag = true;
|
|
28
|
+
static flags = {
|
|
29
|
+
...require_lib_base_command.AuthenticatedCommand.baseFlags,
|
|
30
|
+
objects: _oclif_core.Flags.string({
|
|
31
|
+
description: "Filter by object IDs (space-separated)",
|
|
32
|
+
required: false
|
|
33
|
+
}),
|
|
34
|
+
"live-type": _oclif_core.Flags.string({
|
|
35
|
+
description: "Live event type filter",
|
|
36
|
+
required: false
|
|
37
|
+
}),
|
|
38
|
+
"resolve-recordings": _oclif_core.Flags.boolean({
|
|
39
|
+
description: "Resolve recording details",
|
|
40
|
+
required: false
|
|
41
|
+
}),
|
|
42
|
+
"resolve-live-series": _oclif_core.Flags.boolean({
|
|
43
|
+
description: "Resolve live series details",
|
|
44
|
+
required: false
|
|
45
|
+
})
|
|
46
|
+
};
|
|
47
|
+
static args = {};
|
|
48
|
+
async run() {
|
|
49
|
+
const { flags } = await this.parse(AudienceFunnel);
|
|
50
|
+
this.printWorkspaceHeader();
|
|
51
|
+
const { data, error } = await this.apiClient.GET("/audience/funnel", { params: { query: {
|
|
52
|
+
objects: flags.objects,
|
|
53
|
+
live_type: flags["live-type"],
|
|
54
|
+
resolve_recordings_p: flags["resolve-recordings"] || void 0,
|
|
55
|
+
resolve_live_series_p: flags["resolve-live-series"] || void 0
|
|
56
|
+
} } });
|
|
57
|
+
if (error) this.error(require_lib_term_map.applyCliTerms(formatApiError(error)), { exit: 1 });
|
|
58
|
+
const metrics = data?.data;
|
|
59
|
+
if (this.jsonEnabled()) return require_lib_output.formatJsonOutput({
|
|
60
|
+
ok: true,
|
|
61
|
+
data: metrics ?? {},
|
|
62
|
+
summary: "Audience funnel analytics",
|
|
63
|
+
breadcrumbs: [{ domain: this.activeWorkspace.domain }, { resource: "audience" }]
|
|
64
|
+
});
|
|
65
|
+
if (!metrics || Object.keys(metrics).length === 0) {
|
|
66
|
+
this.log("No funnel data found.");
|
|
67
|
+
return;
|
|
68
|
+
}
|
|
69
|
+
this.log(`Visits: ${metrics.visits_fmt ?? metrics.visits ?? ""}`);
|
|
70
|
+
this.log(`Views: ${metrics.views_fmt ?? metrics.views ?? ""}`);
|
|
71
|
+
this.log(`Engagement: ${metrics.engagement_fmt ?? metrics.engagement ?? ""}`);
|
|
72
|
+
this.log(`Conversions: ${metrics.conversions_fmt ?? metrics.conversions ?? ""}`);
|
|
73
|
+
this.log(`New conversions: ${metrics.new_conversions_fmt ?? metrics.new_conversions ?? ""}`);
|
|
74
|
+
}
|
|
75
|
+
};
|
|
76
|
+
//#endregion
|
|
77
|
+
module.exports = AudienceFunnel;
|
|
@@ -0,0 +1,64 @@
|
|
|
1
|
+
const require_runtime = require("../../_virtual/_rolldown/runtime.cjs");
|
|
2
|
+
const require_lib_term_map = require("../../lib/term-map.cjs");
|
|
3
|
+
const require_lib_base_command = require("../../lib/base-command.cjs");
|
|
4
|
+
const require_lib_output = require("../../lib/output.cjs");
|
|
5
|
+
let chalk = require("chalk");
|
|
6
|
+
chalk = require_runtime.__toESM(chalk);
|
|
7
|
+
//#region src/commands/audience/identity-sources.ts
|
|
8
|
+
/**
|
|
9
|
+
* Audience identity-sources command — list audience identity sources (AUD-10).
|
|
10
|
+
*
|
|
11
|
+
* Non-paginated list of identity sources configured in the workspace.
|
|
12
|
+
* No pagination flags per spec.
|
|
13
|
+
*/
|
|
14
|
+
var AudienceIdentitySources = class AudienceIdentitySources extends require_lib_base_command.AuthenticatedCommand {
|
|
15
|
+
static description = "List audience identity sources";
|
|
16
|
+
static agentMetadata = {
|
|
17
|
+
api_endpoint: "GET /audience/identity-sources",
|
|
18
|
+
auth_scope: "read",
|
|
19
|
+
output_shape: {
|
|
20
|
+
type: "table",
|
|
21
|
+
columns: [
|
|
22
|
+
"Source",
|
|
23
|
+
"Title",
|
|
24
|
+
"Service"
|
|
25
|
+
]
|
|
26
|
+
},
|
|
27
|
+
side_effects: "none"
|
|
28
|
+
};
|
|
29
|
+
static examples = ["<%= config.bin %> audience identity-sources", "<%= config.bin %> audience identity-sources --json"];
|
|
30
|
+
static enableJsonFlag = true;
|
|
31
|
+
static flags = { ...require_lib_base_command.AuthenticatedCommand.baseFlags };
|
|
32
|
+
static args = {};
|
|
33
|
+
async run() {
|
|
34
|
+
const { flags: _flags } = await this.parse(AudienceIdentitySources);
|
|
35
|
+
this.printWorkspaceHeader();
|
|
36
|
+
const { data, error } = await this.apiClient.GET("/audience/identity-sources", { params: { query: {} } });
|
|
37
|
+
if (error) this.error(require_lib_term_map.applyCliTerms(formatApiError(error)), { exit: 1 });
|
|
38
|
+
const resp = data;
|
|
39
|
+
const rows = Array.isArray(resp?.data) ? resp.data : resp?.data ? [resp.data] : [];
|
|
40
|
+
if (this.jsonEnabled()) return require_lib_output.formatJsonOutput({
|
|
41
|
+
ok: true,
|
|
42
|
+
data: rows,
|
|
43
|
+
summary: `${rows.length} identity source(s)`,
|
|
44
|
+
breadcrumbs: [{ domain: this.activeWorkspace.domain }, { resource: "audience" }]
|
|
45
|
+
});
|
|
46
|
+
if (rows.length === 0) {
|
|
47
|
+
this.log("No identity sources found.");
|
|
48
|
+
return;
|
|
49
|
+
}
|
|
50
|
+
const table = require_lib_output.renderTable([
|
|
51
|
+
"Source",
|
|
52
|
+
"Title",
|
|
53
|
+
"Service"
|
|
54
|
+
], rows.map((r) => [
|
|
55
|
+
String(r.identity_source ?? ""),
|
|
56
|
+
String(r.title ?? ""),
|
|
57
|
+
String(r.service ?? "")
|
|
58
|
+
]));
|
|
59
|
+
this.log(table.toString());
|
|
60
|
+
this.log(chalk.default.dim(`${rows.length} identity source(s)`));
|
|
61
|
+
}
|
|
62
|
+
};
|
|
63
|
+
//#endregion
|
|
64
|
+
module.exports = AudienceIdentitySources;
|
|
@@ -0,0 +1,88 @@
|
|
|
1
|
+
const require_runtime = require("../../_virtual/_rolldown/runtime.cjs");
|
|
2
|
+
const require_lib_term_map = require("../../lib/term-map.cjs");
|
|
3
|
+
const require_lib_base_command = require("../../lib/base-command.cjs");
|
|
4
|
+
const require_lib_output = require("../../lib/output.cjs");
|
|
5
|
+
let _oclif_core = require("@oclif/core");
|
|
6
|
+
let chalk = require("chalk");
|
|
7
|
+
chalk = require_runtime.__toESM(chalk);
|
|
8
|
+
//#region src/commands/audience/list-collectors.ts
|
|
9
|
+
/**
|
|
10
|
+
* Audience list-collectors command — list collectors linked to audience (AUD-11).
|
|
11
|
+
*
|
|
12
|
+
* Non-paginated list of collectors (forms/actions) tied to audience registration.
|
|
13
|
+
* No pagination flags per spec.
|
|
14
|
+
*/
|
|
15
|
+
var AudienceListCollectors = class AudienceListCollectors extends require_lib_base_command.AuthenticatedCommand {
|
|
16
|
+
static description = "List collectors linked to audience";
|
|
17
|
+
static agentMetadata = {
|
|
18
|
+
api_endpoint: "GET /audience/list-collectors",
|
|
19
|
+
auth_scope: "read",
|
|
20
|
+
output_shape: {
|
|
21
|
+
type: "table",
|
|
22
|
+
columns: [
|
|
23
|
+
"Action ID",
|
|
24
|
+
"Name",
|
|
25
|
+
"Start",
|
|
26
|
+
"End",
|
|
27
|
+
"Require Email"
|
|
28
|
+
]
|
|
29
|
+
},
|
|
30
|
+
side_effects: "none"
|
|
31
|
+
};
|
|
32
|
+
static examples = [
|
|
33
|
+
"<%= config.bin %> audience list-collectors",
|
|
34
|
+
"<%= config.bin %> audience list-collectors --object-id 123",
|
|
35
|
+
"<%= config.bin %> audience list-collectors --action-id 456 --json"
|
|
36
|
+
];
|
|
37
|
+
static enableJsonFlag = true;
|
|
38
|
+
static flags = {
|
|
39
|
+
...require_lib_base_command.AuthenticatedCommand.baseFlags,
|
|
40
|
+
"object-id": _oclif_core.Flags.string({
|
|
41
|
+
description: "Filter by object ID",
|
|
42
|
+
required: false
|
|
43
|
+
}),
|
|
44
|
+
"action-id": _oclif_core.Flags.string({
|
|
45
|
+
description: "Filter by action ID",
|
|
46
|
+
required: false
|
|
47
|
+
})
|
|
48
|
+
};
|
|
49
|
+
static args = {};
|
|
50
|
+
async run() {
|
|
51
|
+
const { flags } = await this.parse(AudienceListCollectors);
|
|
52
|
+
this.printWorkspaceHeader();
|
|
53
|
+
const { data, error } = await this.apiClient.GET("/audience/list-collectors", { params: { query: {
|
|
54
|
+
object_id: flags["object-id"] ? Number(flags["object-id"]) : void 0,
|
|
55
|
+
action_id: flags["action-id"] ? Number(flags["action-id"]) : void 0
|
|
56
|
+
} } });
|
|
57
|
+
if (error) this.error(require_lib_term_map.applyCliTerms(formatApiError(error)), { exit: 1 });
|
|
58
|
+
const resp = data;
|
|
59
|
+
const rows = Array.isArray(resp?.data) ? resp.data : resp?.data ? [resp.data] : [];
|
|
60
|
+
if (this.jsonEnabled()) return require_lib_output.formatJsonOutput({
|
|
61
|
+
ok: true,
|
|
62
|
+
data: rows,
|
|
63
|
+
summary: `${rows.length} collector(s)`,
|
|
64
|
+
breadcrumbs: [{ domain: this.activeWorkspace.domain }, { resource: "audience" }]
|
|
65
|
+
});
|
|
66
|
+
if (rows.length === 0) {
|
|
67
|
+
this.log("No collectors found.");
|
|
68
|
+
return;
|
|
69
|
+
}
|
|
70
|
+
const table = require_lib_output.renderTable([
|
|
71
|
+
"Action ID",
|
|
72
|
+
"Name",
|
|
73
|
+
"Start",
|
|
74
|
+
"End",
|
|
75
|
+
"Require Email"
|
|
76
|
+
], rows.map((r) => [
|
|
77
|
+
String(r.action_id ?? ""),
|
|
78
|
+
String(r.name ?? ""),
|
|
79
|
+
String(r.start_time ?? ""),
|
|
80
|
+
String(r.end_time ?? ""),
|
|
81
|
+
String(r.require_email_p ?? "")
|
|
82
|
+
]));
|
|
83
|
+
this.log(table.toString());
|
|
84
|
+
this.log(chalk.default.dim(`${rows.length} collector(s)`));
|
|
85
|
+
}
|
|
86
|
+
};
|
|
87
|
+
//#endregion
|
|
88
|
+
module.exports = AudienceListCollectors;
|
|
@@ -0,0 +1,122 @@
|
|
|
1
|
+
const require_runtime = require("../../_virtual/_rolldown/runtime.cjs");
|
|
2
|
+
const require_lib_term_map = require("../../lib/term-map.cjs");
|
|
3
|
+
const require_lib_base_command = require("../../lib/base-command.cjs");
|
|
4
|
+
const require_lib_output = require("../../lib/output.cjs");
|
|
5
|
+
let _oclif_core = require("@oclif/core");
|
|
6
|
+
let chalk = require("chalk");
|
|
7
|
+
chalk = require_runtime.__toESM(chalk);
|
|
8
|
+
//#region src/commands/audience/list.ts
|
|
9
|
+
/**
|
|
10
|
+
* Audience list command — lists audience members in the active workspace (AUD-01).
|
|
11
|
+
*
|
|
12
|
+
* Exposes pagination directly (D-4: no fetchAllPages for audience list).
|
|
13
|
+
* Renders a cli-table3 table with: UUID, Name, Email, Company, Score, Timelines.
|
|
14
|
+
*/
|
|
15
|
+
var AudienceList = class AudienceList extends require_lib_base_command.AuthenticatedCommand {
|
|
16
|
+
static description = "List audience members";
|
|
17
|
+
static agentMetadata = {
|
|
18
|
+
api_endpoint: "GET /audience/list",
|
|
19
|
+
auth_scope: "read",
|
|
20
|
+
output_shape: {
|
|
21
|
+
type: "table",
|
|
22
|
+
columns: [
|
|
23
|
+
"UUID",
|
|
24
|
+
"Name",
|
|
25
|
+
"Email",
|
|
26
|
+
"Company",
|
|
27
|
+
"Score",
|
|
28
|
+
"Timelines"
|
|
29
|
+
]
|
|
30
|
+
},
|
|
31
|
+
side_effects: "none"
|
|
32
|
+
};
|
|
33
|
+
static examples = [
|
|
34
|
+
"<%= config.bin %> audience list",
|
|
35
|
+
"<%= config.bin %> audience list --page 2 --size 50",
|
|
36
|
+
"<%= config.bin %> audience list --search \"john\" --identified --json"
|
|
37
|
+
];
|
|
38
|
+
static enableJsonFlag = true;
|
|
39
|
+
static flags = {
|
|
40
|
+
...require_lib_base_command.AuthenticatedCommand.baseFlags,
|
|
41
|
+
page: _oclif_core.Flags.integer({
|
|
42
|
+
description: "Page number",
|
|
43
|
+
required: false
|
|
44
|
+
}),
|
|
45
|
+
size: _oclif_core.Flags.integer({
|
|
46
|
+
description: "Page size (max 500)",
|
|
47
|
+
required: false
|
|
48
|
+
}),
|
|
49
|
+
offset: _oclif_core.Flags.integer({
|
|
50
|
+
description: "Offset for pagination",
|
|
51
|
+
required: false
|
|
52
|
+
}),
|
|
53
|
+
orderby: _oclif_core.Flags.string({
|
|
54
|
+
description: "Order by field (recent, timeline_count, score, first)",
|
|
55
|
+
required: false
|
|
56
|
+
}),
|
|
57
|
+
order: _oclif_core.Flags.string({
|
|
58
|
+
description: "Sort direction (asc/desc)",
|
|
59
|
+
required: false
|
|
60
|
+
}),
|
|
61
|
+
search: _oclif_core.Flags.string({
|
|
62
|
+
description: "Free-text search across names and emails",
|
|
63
|
+
required: false
|
|
64
|
+
}),
|
|
65
|
+
identified: _oclif_core.Flags.boolean({
|
|
66
|
+
description: "Filter to identified profiles only",
|
|
67
|
+
required: false,
|
|
68
|
+
allowNo: true
|
|
69
|
+
}),
|
|
70
|
+
objects: _oclif_core.Flags.string({
|
|
71
|
+
description: "Filter by viewed object IDs (space-separated)",
|
|
72
|
+
required: false
|
|
73
|
+
})
|
|
74
|
+
};
|
|
75
|
+
static args = {};
|
|
76
|
+
async run() {
|
|
77
|
+
const { flags } = await this.parse(AudienceList);
|
|
78
|
+
this.printWorkspaceHeader();
|
|
79
|
+
const { data, error } = await this.apiClient.GET("/audience/list", { params: { query: {
|
|
80
|
+
p: flags.page,
|
|
81
|
+
size: flags.size,
|
|
82
|
+
offset: flags.offset,
|
|
83
|
+
orderby: flags.orderby,
|
|
84
|
+
order: flags.order,
|
|
85
|
+
search: flags.search,
|
|
86
|
+
identified: flags.identified,
|
|
87
|
+
objects: flags.objects
|
|
88
|
+
} } });
|
|
89
|
+
if (error) this.error(require_lib_term_map.applyCliTerms(formatApiError(error)), { exit: 1 });
|
|
90
|
+
const resp = data;
|
|
91
|
+
const rows = Array.isArray(resp?.data) ? resp.data : resp?.data ? [resp.data] : [];
|
|
92
|
+
if (this.jsonEnabled()) return require_lib_output.formatJsonOutput({
|
|
93
|
+
ok: true,
|
|
94
|
+
data: rows,
|
|
95
|
+
summary: `${rows.length} member(s)`,
|
|
96
|
+
breadcrumbs: [{ domain: this.activeWorkspace.domain }, { resource: "audience" }]
|
|
97
|
+
});
|
|
98
|
+
if (rows.length === 0) {
|
|
99
|
+
this.log("No audience members found.");
|
|
100
|
+
return;
|
|
101
|
+
}
|
|
102
|
+
const table = require_lib_output.renderTable([
|
|
103
|
+
"UUID",
|
|
104
|
+
"Name",
|
|
105
|
+
"Email",
|
|
106
|
+
"Company",
|
|
107
|
+
"Score",
|
|
108
|
+
"Timelines"
|
|
109
|
+
], rows.map((r) => [
|
|
110
|
+
String(r.uuid ?? ""),
|
|
111
|
+
String(r.name ?? ""),
|
|
112
|
+
String(r.email ?? ""),
|
|
113
|
+
String(r.company ?? ""),
|
|
114
|
+
String(r.score ?? ""),
|
|
115
|
+
String(r.timeline_count ?? "")
|
|
116
|
+
]));
|
|
117
|
+
this.log(table.toString());
|
|
118
|
+
this.log(chalk.default.dim(`${rows.length} member(s)`));
|
|
119
|
+
}
|
|
120
|
+
};
|
|
121
|
+
//#endregion
|
|
122
|
+
module.exports = AudienceList;
|
|
@@ -0,0 +1,89 @@
|
|
|
1
|
+
require("../../_virtual/_rolldown/runtime.cjs");
|
|
2
|
+
const require_lib_term_map = require("../../lib/term-map.cjs");
|
|
3
|
+
const require_lib_base_command = require("../../lib/base-command.cjs");
|
|
4
|
+
const require_lib_output = require("../../lib/output.cjs");
|
|
5
|
+
let _oclif_core = require("@oclif/core");
|
|
6
|
+
//#region src/commands/audience/metrics.ts
|
|
7
|
+
/**
|
|
8
|
+
* Audience metrics command — aggregate metrics for the audience (AUD-06).
|
|
9
|
+
*
|
|
10
|
+
* Returns a single object (Pitfall 6) — key-value rendering, NOT renderTable.
|
|
11
|
+
* Metrics: profile_count, identified_count, timeline_count, timeline_engagement,
|
|
12
|
+
* event_count, score_avg.
|
|
13
|
+
*/
|
|
14
|
+
var AudienceMetrics = class AudienceMetrics extends require_lib_base_command.AuthenticatedCommand {
|
|
15
|
+
static description = "Get audience aggregate metrics";
|
|
16
|
+
static agentMetadata = {
|
|
17
|
+
api_endpoint: "GET /audience/metrics",
|
|
18
|
+
auth_scope: "read",
|
|
19
|
+
output_shape: { type: "key-value" },
|
|
20
|
+
side_effects: "none"
|
|
21
|
+
};
|
|
22
|
+
static examples = [
|
|
23
|
+
"<%= config.bin %> audience metrics",
|
|
24
|
+
"<%= config.bin %> audience metrics --identified --json",
|
|
25
|
+
"<%= config.bin %> audience metrics --search \"acme\" --size 100"
|
|
26
|
+
];
|
|
27
|
+
static enableJsonFlag = true;
|
|
28
|
+
static flags = {
|
|
29
|
+
...require_lib_base_command.AuthenticatedCommand.baseFlags,
|
|
30
|
+
page: _oclif_core.Flags.integer({
|
|
31
|
+
description: "Page number",
|
|
32
|
+
required: false
|
|
33
|
+
}),
|
|
34
|
+
size: _oclif_core.Flags.integer({
|
|
35
|
+
description: "Page size",
|
|
36
|
+
required: false
|
|
37
|
+
}),
|
|
38
|
+
offset: _oclif_core.Flags.integer({
|
|
39
|
+
description: "Offset for pagination",
|
|
40
|
+
required: false
|
|
41
|
+
}),
|
|
42
|
+
search: _oclif_core.Flags.string({
|
|
43
|
+
description: "Free-text search filter",
|
|
44
|
+
required: false
|
|
45
|
+
}),
|
|
46
|
+
identified: _oclif_core.Flags.boolean({
|
|
47
|
+
description: "Filter to identified profiles only",
|
|
48
|
+
required: false,
|
|
49
|
+
allowNo: true
|
|
50
|
+
}),
|
|
51
|
+
objects: _oclif_core.Flags.string({
|
|
52
|
+
description: "Filter by viewed object IDs (space-separated)",
|
|
53
|
+
required: false
|
|
54
|
+
})
|
|
55
|
+
};
|
|
56
|
+
static args = {};
|
|
57
|
+
async run() {
|
|
58
|
+
const { flags } = await this.parse(AudienceMetrics);
|
|
59
|
+
this.printWorkspaceHeader();
|
|
60
|
+
const { data, error } = await this.apiClient.GET("/audience/metrics", { params: { query: {
|
|
61
|
+
p: flags.page,
|
|
62
|
+
size: flags.size,
|
|
63
|
+
offset: flags.offset,
|
|
64
|
+
search: flags.search,
|
|
65
|
+
identified: flags.identified,
|
|
66
|
+
objects: flags.objects
|
|
67
|
+
} } });
|
|
68
|
+
if (error) this.error(require_lib_term_map.applyCliTerms(formatApiError(error)), { exit: 1 });
|
|
69
|
+
const metrics = data?.data;
|
|
70
|
+
if (this.jsonEnabled()) return require_lib_output.formatJsonOutput({
|
|
71
|
+
ok: true,
|
|
72
|
+
data: metrics ?? {},
|
|
73
|
+
summary: "Audience metrics",
|
|
74
|
+
breadcrumbs: [{ domain: this.activeWorkspace.domain }, { resource: "audience" }]
|
|
75
|
+
});
|
|
76
|
+
if (!metrics || Object.keys(metrics).length === 0) {
|
|
77
|
+
this.log("No metrics data found.");
|
|
78
|
+
return;
|
|
79
|
+
}
|
|
80
|
+
this.log(`Profile count: ${metrics.profile_count ?? ""}`);
|
|
81
|
+
this.log(`Identified count: ${metrics.identified_count ?? ""}`);
|
|
82
|
+
this.log(`Timeline count: ${metrics.timeline_count ?? ""}`);
|
|
83
|
+
this.log(`Timeline engagement: ${metrics.timeline_engagement ?? ""}`);
|
|
84
|
+
this.log(`Event count: ${metrics.event_count ?? ""}`);
|
|
85
|
+
this.log(`Score average: ${metrics.score_avg ?? ""}`);
|
|
86
|
+
}
|
|
87
|
+
};
|
|
88
|
+
//#endregion
|
|
89
|
+
module.exports = AudienceMetrics;
|
|
@@ -0,0 +1,106 @@
|
|
|
1
|
+
const require_runtime = require("../../_virtual/_rolldown/runtime.cjs");
|
|
2
|
+
const require_lib_term_map = require("../../lib/term-map.cjs");
|
|
3
|
+
const require_lib_base_command = require("../../lib/base-command.cjs");
|
|
4
|
+
const require_lib_output = require("../../lib/output.cjs");
|
|
5
|
+
let _oclif_core = require("@oclif/core");
|
|
6
|
+
let chalk = require("chalk");
|
|
7
|
+
chalk = require_runtime.__toESM(chalk);
|
|
8
|
+
//#region src/commands/audience/register.ts
|
|
9
|
+
/**
|
|
10
|
+
* Audience register command — register an audience contact (AUD-03).
|
|
11
|
+
*
|
|
12
|
+
* POST form mutation using application/x-www-form-urlencoded body.
|
|
13
|
+
* email is required per the OpenAPI spec.
|
|
14
|
+
*/
|
|
15
|
+
var AudienceRegister = class AudienceRegister extends require_lib_base_command.AuthenticatedCommand {
|
|
16
|
+
static description = "Register an audience contact";
|
|
17
|
+
static agentMetadata = {
|
|
18
|
+
api_endpoint: "POST /audience/register",
|
|
19
|
+
auth_scope: "write",
|
|
20
|
+
output_shape: { type: "none" },
|
|
21
|
+
side_effects: "creates"
|
|
22
|
+
};
|
|
23
|
+
static examples = [
|
|
24
|
+
"<%= config.bin %> audience register --email \"jane@example.com\"",
|
|
25
|
+
"<%= config.bin %> audience register --email \"john@acme.com\" --object-id 123 --firstname \"John\" --lastname \"Doe\"",
|
|
26
|
+
"<%= config.bin %> audience register --email \"user@co.com\" --company \"Acme Corp\" --source api --json"
|
|
27
|
+
];
|
|
28
|
+
static enableJsonFlag = true;
|
|
29
|
+
static flags = {
|
|
30
|
+
...require_lib_base_command.AuthenticatedCommand.baseFlags,
|
|
31
|
+
email: _oclif_core.Flags.string({
|
|
32
|
+
description: "Contact email address",
|
|
33
|
+
required: true
|
|
34
|
+
}),
|
|
35
|
+
"object-id": _oclif_core.Flags.string({
|
|
36
|
+
description: "Webinar/video ID to register for",
|
|
37
|
+
required: false
|
|
38
|
+
}),
|
|
39
|
+
uuid: _oclif_core.Flags.string({
|
|
40
|
+
description: "Existing contact UUID",
|
|
41
|
+
required: false
|
|
42
|
+
}),
|
|
43
|
+
"action-id": _oclif_core.Flags.string({
|
|
44
|
+
description: "Collector action ID",
|
|
45
|
+
required: false
|
|
46
|
+
}),
|
|
47
|
+
firstname: _oclif_core.Flags.string({
|
|
48
|
+
description: "First name",
|
|
49
|
+
required: false
|
|
50
|
+
}),
|
|
51
|
+
lastname: _oclif_core.Flags.string({
|
|
52
|
+
description: "Last name",
|
|
53
|
+
required: false
|
|
54
|
+
}),
|
|
55
|
+
company: _oclif_core.Flags.string({
|
|
56
|
+
description: "Company name",
|
|
57
|
+
required: false
|
|
58
|
+
}),
|
|
59
|
+
phone: _oclif_core.Flags.string({
|
|
60
|
+
description: "Phone number",
|
|
61
|
+
required: false
|
|
62
|
+
}),
|
|
63
|
+
"return-url": _oclif_core.Flags.string({
|
|
64
|
+
description: "Base URL for tracking URL",
|
|
65
|
+
required: false
|
|
66
|
+
}),
|
|
67
|
+
source: _oclif_core.Flags.string({
|
|
68
|
+
description: "Registration source (api, import, site, custom)",
|
|
69
|
+
required: false
|
|
70
|
+
})
|
|
71
|
+
};
|
|
72
|
+
static args = {};
|
|
73
|
+
async run() {
|
|
74
|
+
const { flags } = await this.parse(AudienceRegister);
|
|
75
|
+
this.printWorkspaceHeader();
|
|
76
|
+
const body = { email: flags.email };
|
|
77
|
+
if (flags["object-id"] !== void 0) body.object_id = Number(flags["object-id"]);
|
|
78
|
+
if (flags.uuid !== void 0) body.uuid = flags.uuid;
|
|
79
|
+
if (flags["action-id"] !== void 0) body.action_id = Number(flags["action-id"]);
|
|
80
|
+
if (flags.firstname !== void 0) body.firstname = flags.firstname;
|
|
81
|
+
if (flags.lastname !== void 0) body.lastname = flags.lastname;
|
|
82
|
+
if (flags.company !== void 0) body.company = flags.company;
|
|
83
|
+
if (flags.phone !== void 0) body.phone = flags.phone;
|
|
84
|
+
if (flags["return-url"] !== void 0) body.return_url = flags["return-url"];
|
|
85
|
+
if (flags.source !== void 0) body.source = flags.source;
|
|
86
|
+
const { data, error } = await this.apiClient.POST("/audience/register", {
|
|
87
|
+
body,
|
|
88
|
+
headers: { "Content-Type": "application/x-www-form-urlencoded" }
|
|
89
|
+
});
|
|
90
|
+
if (error) this.error(require_lib_term_map.applyCliTerms(formatApiError(error)), { exit: 1 });
|
|
91
|
+
const resp = data;
|
|
92
|
+
const uuid = resp?.uuid ?? resp?.data?.uuid;
|
|
93
|
+
const trackingUrl = resp?.tracking_url ?? resp?.data?.tracking_url;
|
|
94
|
+
this.log(chalk.default.green("Contact registered"));
|
|
95
|
+
if (uuid) this.log(`UUID: ${uuid}`);
|
|
96
|
+
if (trackingUrl) this.log(`Tracking URL: ${trackingUrl}`);
|
|
97
|
+
if (this.jsonEnabled()) return require_lib_output.formatJsonOutput({
|
|
98
|
+
ok: true,
|
|
99
|
+
data,
|
|
100
|
+
summary: "Contact registered",
|
|
101
|
+
breadcrumbs: [{ domain: this.activeWorkspace.domain }, { resource: "audience" }]
|
|
102
|
+
});
|
|
103
|
+
}
|
|
104
|
+
};
|
|
105
|
+
//#endregion
|
|
106
|
+
module.exports = AudienceRegister;
|
|
@@ -0,0 +1,72 @@
|
|
|
1
|
+
const require_runtime = require("../../_virtual/_rolldown/runtime.cjs");
|
|
2
|
+
const require_lib_term_map = require("../../lib/term-map.cjs");
|
|
3
|
+
const require_lib_base_command = require("../../lib/base-command.cjs");
|
|
4
|
+
const require_lib_output = require("../../lib/output.cjs");
|
|
5
|
+
let _oclif_core = require("@oclif/core");
|
|
6
|
+
let chalk = require("chalk");
|
|
7
|
+
chalk = require_runtime.__toESM(chalk);
|
|
8
|
+
let _clack_prompts = require("@clack/prompts");
|
|
9
|
+
//#region src/commands/audience/remove.ts
|
|
10
|
+
/**
|
|
11
|
+
* Audience remove command — permanently remove an audience contact (AUD-05).
|
|
12
|
+
*
|
|
13
|
+
* DESTRUCTIVE: Requires confirmation prompt before executing (T-07-08 mitigation).
|
|
14
|
+
* JSON mode skips confirmation (automation use case).
|
|
15
|
+
*
|
|
16
|
+
* POST form mutation. No required body fields per spec.
|
|
17
|
+
*/
|
|
18
|
+
var AudienceRemove = class AudienceRemove extends require_lib_base_command.AuthenticatedCommand {
|
|
19
|
+
static description = "Permanently remove an audience contact";
|
|
20
|
+
static agentMetadata = {
|
|
21
|
+
api_endpoint: "POST /audience/remove",
|
|
22
|
+
auth_scope: "write",
|
|
23
|
+
output_shape: { type: "none" },
|
|
24
|
+
side_effects: "destructive"
|
|
25
|
+
};
|
|
26
|
+
static examples = [
|
|
27
|
+
"<%= config.bin %> audience remove --email \"jane@example.com\"",
|
|
28
|
+
"<%= config.bin %> audience remove --uuid \"abc-def-ghi\"",
|
|
29
|
+
"<%= config.bin %> audience remove --email \"user@co.com\" --json"
|
|
30
|
+
];
|
|
31
|
+
static enableJsonFlag = true;
|
|
32
|
+
static flags = {
|
|
33
|
+
...require_lib_base_command.AuthenticatedCommand.baseFlags,
|
|
34
|
+
email: _oclif_core.Flags.string({
|
|
35
|
+
description: "Contact email address",
|
|
36
|
+
required: false
|
|
37
|
+
}),
|
|
38
|
+
uuid: _oclif_core.Flags.string({
|
|
39
|
+
description: "Contact UUID",
|
|
40
|
+
required: false
|
|
41
|
+
})
|
|
42
|
+
};
|
|
43
|
+
static args = {};
|
|
44
|
+
async run() {
|
|
45
|
+
const { flags } = await this.parse(AudienceRemove);
|
|
46
|
+
this.printWorkspaceHeader();
|
|
47
|
+
if (!this.jsonEnabled()) {
|
|
48
|
+
const confirmed = await (0, _clack_prompts.confirm)({ message: `Permanently remove contact from ${this.activeWorkspace.domain}? This cannot be undone.` });
|
|
49
|
+
if (!confirmed || typeof confirmed === "symbol") {
|
|
50
|
+
this.log("Cancelled.");
|
|
51
|
+
this.exit(2);
|
|
52
|
+
}
|
|
53
|
+
}
|
|
54
|
+
const body = {};
|
|
55
|
+
if (flags.email !== void 0) body.email = flags.email;
|
|
56
|
+
if (flags.uuid !== void 0) body.uuid = flags.uuid;
|
|
57
|
+
const { data, error } = await this.apiClient.POST("/audience/remove", {
|
|
58
|
+
body,
|
|
59
|
+
headers: { "Content-Type": "application/x-www-form-urlencoded" }
|
|
60
|
+
});
|
|
61
|
+
if (error) this.error(require_lib_term_map.applyCliTerms(formatApiError(error)), { exit: 1 });
|
|
62
|
+
this.log(chalk.default.green("Contact removed"));
|
|
63
|
+
if (this.jsonEnabled()) return require_lib_output.formatJsonOutput({
|
|
64
|
+
ok: true,
|
|
65
|
+
data,
|
|
66
|
+
summary: "Contact removed",
|
|
67
|
+
breadcrumbs: [{ domain: this.activeWorkspace.domain }, { resource: "audience" }]
|
|
68
|
+
});
|
|
69
|
+
}
|
|
70
|
+
};
|
|
71
|
+
//#endregion
|
|
72
|
+
module.exports = AudienceRemove;
|