@doist/comms-cli 0.0.1 → 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/CHANGELOG.md +8 -0
- package/README.md +165 -29
- package/dist/commands/account/index.d.ts +3 -0
- package/dist/commands/account/index.d.ts.map +1 -0
- package/dist/commands/account/index.js +104 -0
- package/dist/commands/account/index.js.map +1 -0
- package/dist/commands/auth/helpers.d.ts +22 -0
- package/dist/commands/auth/helpers.d.ts.map +1 -0
- package/dist/commands/auth/helpers.js +29 -0
- package/dist/commands/auth/helpers.js.map +1 -0
- package/dist/commands/auth/index.d.ts +3 -0
- package/dist/commands/auth/index.d.ts.map +1 -0
- package/dist/commands/auth/index.js +32 -0
- package/dist/commands/auth/index.js.map +1 -0
- package/dist/commands/auth/login.d.ts +4 -0
- package/dist/commands/auth/login.d.ts.map +1 -0
- package/dist/commands/auth/login.js +29 -0
- package/dist/commands/auth/login.js.map +1 -0
- package/dist/commands/auth/logout.d.ts +11 -0
- package/dist/commands/auth/logout.d.ts.map +1 -0
- package/dist/commands/auth/logout.js +16 -0
- package/dist/commands/auth/logout.js.map +1 -0
- package/dist/commands/auth/status.d.ts +16 -0
- package/dist/commands/auth/status.d.ts.map +1 -0
- package/dist/commands/auth/status.js +102 -0
- package/dist/commands/auth/status.js.map +1 -0
- package/dist/commands/auth/store-wrap.d.ts +4 -0
- package/dist/commands/auth/store-wrap.d.ts.map +1 -0
- package/dist/commands/auth/store-wrap.js +24 -0
- package/dist/commands/auth/store-wrap.js.map +1 -0
- package/dist/commands/auth/token.d.ts +2 -0
- package/dist/commands/auth/token.d.ts.map +1 -0
- package/dist/commands/auth/token.js +56 -0
- package/dist/commands/auth/token.js.map +1 -0
- package/dist/commands/changelog.d.ts +3 -0
- package/dist/commands/changelog.d.ts.map +1 -0
- package/dist/commands/changelog.js +16 -0
- package/dist/commands/changelog.js.map +1 -0
- package/dist/commands/channel/create.d.ts +11 -0
- package/dist/commands/channel/create.d.ts.map +1 -0
- package/dist/commands/channel/create.js +35 -0
- package/dist/commands/channel/create.js.map +1 -0
- package/dist/commands/channel/helpers.d.ts +9 -0
- package/dist/commands/channel/helpers.d.ts.map +1 -0
- package/dist/commands/channel/helpers.js +51 -0
- package/dist/commands/channel/helpers.js.map +1 -0
- package/dist/commands/channel/index.d.ts +3 -0
- package/dist/commands/channel/index.d.ts.map +1 -0
- package/dist/commands/channel/index.js +104 -0
- package/dist/commands/channel/index.js.map +1 -0
- package/dist/commands/channel/list.d.ts +8 -0
- package/dist/commands/channel/list.d.ts.map +1 -0
- package/dist/commands/channel/list.js +144 -0
- package/dist/commands/channel/list.js.map +1 -0
- package/dist/commands/channel/threads.d.ts +11 -0
- package/dist/commands/channel/threads.d.ts.map +1 -0
- package/dist/commands/channel/threads.js +100 -0
- package/dist/commands/channel/threads.js.map +1 -0
- package/dist/commands/channel/update.d.ts +12 -0
- package/dist/commands/channel/update.d.ts.map +1 -0
- package/dist/commands/channel/update.js +84 -0
- package/dist/commands/channel/update.js.map +1 -0
- package/dist/commands/comment/delete.d.ts +5 -0
- package/dist/commands/comment/delete.d.ts.map +1 -0
- package/dist/commands/comment/delete.js +33 -0
- package/dist/commands/comment/delete.js.map +1 -0
- package/dist/commands/comment/index.d.ts +3 -0
- package/dist/commands/comment/index.d.ts.map +1 -0
- package/dist/commands/comment/index.js +49 -0
- package/dist/commands/comment/index.js.map +1 -0
- package/dist/commands/comment/update.d.ts +5 -0
- package/dist/commands/comment/update.d.ts.map +1 -0
- package/dist/commands/comment/update.js +37 -0
- package/dist/commands/comment/update.js.map +1 -0
- package/dist/commands/comment/view.d.ts +3 -0
- package/dist/commands/comment/view.d.ts.map +1 -0
- package/dist/commands/comment/view.js +31 -0
- package/dist/commands/comment/view.js.map +1 -0
- package/dist/commands/completion/helpers.d.ts +14 -0
- package/dist/commands/completion/helpers.d.ts.map +1 -0
- package/dist/commands/completion/helpers.js +37 -0
- package/dist/commands/completion/helpers.js.map +1 -0
- package/dist/commands/completion/index.d.ts +3 -0
- package/dist/commands/completion/index.d.ts.map +1 -0
- package/dist/commands/completion/index.js +22 -0
- package/dist/commands/completion/index.js.map +1 -0
- package/dist/commands/completion/install.d.ts +2 -0
- package/dist/commands/completion/install.d.ts.map +1 -0
- package/dist/commands/completion/install.js +19 -0
- package/dist/commands/completion/install.js.map +1 -0
- package/dist/commands/completion/server.d.ts +3 -0
- package/dist/commands/completion/server.d.ts.map +1 -0
- package/dist/commands/completion/server.js +35 -0
- package/dist/commands/completion/server.js.map +1 -0
- package/dist/commands/completion/uninstall.d.ts +2 -0
- package/dist/commands/completion/uninstall.d.ts.map +1 -0
- package/dist/commands/completion/uninstall.js +19 -0
- package/dist/commands/completion/uninstall.js.map +1 -0
- package/dist/commands/config/index.d.ts +3 -0
- package/dist/commands/config/index.d.ts.map +1 -0
- package/dist/commands/config/index.js +29 -0
- package/dist/commands/config/index.js.map +1 -0
- package/dist/commands/config/set.d.ts +3 -0
- package/dist/commands/config/set.d.ts.map +1 -0
- package/dist/commands/config/set.js +41 -0
- package/dist/commands/config/set.js.map +1 -0
- package/dist/commands/config/view.d.ts +6 -0
- package/dist/commands/config/view.d.ts.map +1 -0
- package/dist/commands/config/view.js +121 -0
- package/dist/commands/config/view.js.map +1 -0
- package/dist/commands/conversation/done.d.ts +3 -0
- package/dist/commands/conversation/done.d.ts.map +1 -0
- package/dist/commands/conversation/done.js +23 -0
- package/dist/commands/conversation/done.js.map +1 -0
- package/dist/commands/conversation/helpers.d.ts +28 -0
- package/dist/commands/conversation/helpers.d.ts.map +1 -0
- package/dist/commands/conversation/helpers.js +119 -0
- package/dist/commands/conversation/helpers.js.map +1 -0
- package/dist/commands/conversation/index.d.ts +3 -0
- package/dist/commands/conversation/index.d.ts.map +1 -0
- package/dist/commands/conversation/index.js +107 -0
- package/dist/commands/conversation/index.js.map +1 -0
- package/dist/commands/conversation/mute.d.ts +3 -0
- package/dist/commands/conversation/mute.d.ts.map +1 -0
- package/dist/commands/conversation/mute.js +30 -0
- package/dist/commands/conversation/mute.js.map +1 -0
- package/dist/commands/conversation/reply.d.ts +3 -0
- package/dist/commands/conversation/reply.d.ts.map +1 -0
- package/dist/commands/conversation/reply.js +37 -0
- package/dist/commands/conversation/reply.js.map +1 -0
- package/dist/commands/conversation/unmute.d.ts +3 -0
- package/dist/commands/conversation/unmute.d.ts.map +1 -0
- package/dist/commands/conversation/unmute.js +28 -0
- package/dist/commands/conversation/unmute.js.map +1 -0
- package/dist/commands/conversation/unread.d.ts +3 -0
- package/dist/commands/conversation/unread.d.ts.map +1 -0
- package/dist/commands/conversation/unread.js +56 -0
- package/dist/commands/conversation/unread.js.map +1 -0
- package/dist/commands/conversation/view.d.ts +3 -0
- package/dist/commands/conversation/view.d.ts.map +1 -0
- package/dist/commands/conversation/view.js +77 -0
- package/dist/commands/conversation/view.js.map +1 -0
- package/dist/commands/conversation/with.d.ts +3 -0
- package/dist/commands/conversation/with.d.ts.map +1 -0
- package/dist/commands/conversation/with.js +48 -0
- package/dist/commands/conversation/with.js.map +1 -0
- package/dist/commands/doctor.d.ts +9 -0
- package/dist/commands/doctor.d.ts.map +1 -0
- package/dist/commands/doctor.js +325 -0
- package/dist/commands/doctor.js.map +1 -0
- package/dist/commands/groups/create.d.ts +8 -0
- package/dist/commands/groups/create.d.ts.map +1 -0
- package/dist/commands/groups/create.js +27 -0
- package/dist/commands/groups/create.js.map +1 -0
- package/dist/commands/groups/delete.d.ts +7 -0
- package/dist/commands/groups/delete.d.ts.map +1 -0
- package/dist/commands/groups/delete.js +30 -0
- package/dist/commands/groups/delete.js.map +1 -0
- package/dist/commands/groups/index.d.ts +3 -0
- package/dist/commands/groups/index.d.ts.map +1 -0
- package/dist/commands/groups/index.js +98 -0
- package/dist/commands/groups/index.js.map +1 -0
- package/dist/commands/groups/list.d.ts +7 -0
- package/dist/commands/groups/list.d.ts.map +1 -0
- package/dist/commands/groups/list.js +42 -0
- package/dist/commands/groups/list.js.map +1 -0
- package/dist/commands/groups/members.d.ts +4 -0
- package/dist/commands/groups/members.d.ts.map +1 -0
- package/dist/commands/groups/members.js +90 -0
- package/dist/commands/groups/members.js.map +1 -0
- package/dist/commands/groups/rename.d.ts +3 -0
- package/dist/commands/groups/rename.d.ts.map +1 -0
- package/dist/commands/groups/rename.js +28 -0
- package/dist/commands/groups/rename.js.map +1 -0
- package/dist/commands/groups/view.d.ts +7 -0
- package/dist/commands/groups/view.d.ts.map +1 -0
- package/dist/commands/groups/view.js +52 -0
- package/dist/commands/groups/view.js.map +1 -0
- package/dist/commands/inbox.d.ts +3 -0
- package/dist/commands/inbox.d.ts.map +1 -0
- package/dist/commands/inbox.js +147 -0
- package/dist/commands/inbox.js.map +1 -0
- package/dist/commands/mentions.d.ts +3 -0
- package/dist/commands/mentions.d.ts.map +1 -0
- package/dist/commands/mentions.js +23 -0
- package/dist/commands/mentions.js.map +1 -0
- package/dist/commands/msg/delete.d.ts +5 -0
- package/dist/commands/msg/delete.d.ts.map +1 -0
- package/dist/commands/msg/delete.js +31 -0
- package/dist/commands/msg/delete.js.map +1 -0
- package/dist/commands/msg/index.d.ts +3 -0
- package/dist/commands/msg/index.d.ts.map +1 -0
- package/dist/commands/msg/index.js +47 -0
- package/dist/commands/msg/index.js.map +1 -0
- package/dist/commands/msg/update.d.ts +5 -0
- package/dist/commands/msg/update.d.ts.map +1 -0
- package/dist/commands/msg/update.js +37 -0
- package/dist/commands/msg/update.js.map +1 -0
- package/dist/commands/msg/view.d.ts +3 -0
- package/dist/commands/msg/view.d.ts.map +1 -0
- package/dist/commands/msg/view.js +31 -0
- package/dist/commands/msg/view.js.map +1 -0
- package/dist/commands/react.d.ts +3 -0
- package/dist/commands/react.d.ts.map +1 -0
- package/dist/commands/react.js +149 -0
- package/dist/commands/react.js.map +1 -0
- package/dist/commands/search.d.ts +3 -0
- package/dist/commands/search.d.ts.map +1 -0
- package/dist/commands/search.js +30 -0
- package/dist/commands/search.js.map +1 -0
- package/dist/commands/skill/index.d.ts +3 -0
- package/dist/commands/skill/index.d.ts.map +1 -0
- package/dist/commands/skill/index.js +29 -0
- package/dist/commands/skill/index.js.map +1 -0
- package/dist/commands/skill/install.d.ts +3 -0
- package/dist/commands/skill/install.d.ts.map +1 -0
- package/dist/commands/skill/install.js +16 -0
- package/dist/commands/skill/install.js.map +1 -0
- package/dist/commands/skill/list.d.ts +6 -0
- package/dist/commands/skill/list.d.ts.map +1 -0
- package/dist/commands/skill/list.js +22 -0
- package/dist/commands/skill/list.js.map +1 -0
- package/dist/commands/skill/uninstall.d.ts +3 -0
- package/dist/commands/skill/uninstall.d.ts.map +1 -0
- package/dist/commands/skill/uninstall.js +15 -0
- package/dist/commands/skill/uninstall.js.map +1 -0
- package/dist/commands/skill/update.d.ts +3 -0
- package/dist/commands/skill/update.d.ts.map +1 -0
- package/dist/commands/skill/update.js +37 -0
- package/dist/commands/skill/update.js.map +1 -0
- package/dist/commands/thread/create.d.ts +8 -0
- package/dist/commands/thread/create.d.ts.map +1 -0
- package/dist/commands/thread/create.js +70 -0
- package/dist/commands/thread/create.js.map +1 -0
- package/dist/commands/thread/delete.d.ts +7 -0
- package/dist/commands/thread/delete.d.ts.map +1 -0
- package/dist/commands/thread/delete.js +38 -0
- package/dist/commands/thread/delete.js.map +1 -0
- package/dist/commands/thread/helpers.d.ts +24 -0
- package/dist/commands/thread/helpers.d.ts.map +1 -0
- package/dist/commands/thread/helpers.js +45 -0
- package/dist/commands/thread/helpers.js.map +1 -0
- package/dist/commands/thread/index.d.ts +3 -0
- package/dist/commands/thread/index.d.ts.map +1 -0
- package/dist/commands/thread/index.js +134 -0
- package/dist/commands/thread/index.js.map +1 -0
- package/dist/commands/thread/mutate.d.ts +5 -0
- package/dist/commands/thread/mutate.d.ts.map +1 -0
- package/dist/commands/thread/mutate.js +23 -0
- package/dist/commands/thread/mutate.js.map +1 -0
- package/dist/commands/thread/mute.d.ts +8 -0
- package/dist/commands/thread/mute.d.ts.map +1 -0
- package/dist/commands/thread/mute.js +63 -0
- package/dist/commands/thread/mute.js.map +1 -0
- package/dist/commands/thread/rename.d.ts +3 -0
- package/dist/commands/thread/rename.d.ts.map +1 -0
- package/dist/commands/thread/rename.js +29 -0
- package/dist/commands/thread/rename.js.map +1 -0
- package/dist/commands/thread/reply.d.ts +9 -0
- package/dist/commands/thread/reply.d.ts.map +1 -0
- package/dist/commands/thread/reply.js +85 -0
- package/dist/commands/thread/reply.js.map +1 -0
- package/dist/commands/thread/update.d.ts +5 -0
- package/dist/commands/thread/update.d.ts.map +1 -0
- package/dist/commands/thread/update.js +45 -0
- package/dist/commands/thread/update.js.map +1 -0
- package/dist/commands/thread/view.d.ts +9 -0
- package/dist/commands/thread/view.d.ts.map +1 -0
- package/dist/commands/thread/view.js +171 -0
- package/dist/commands/thread/view.js.map +1 -0
- package/dist/commands/update/index.d.ts +3 -0
- package/dist/commands/update/index.d.ts.map +1 -0
- package/dist/commands/update/index.js +14 -0
- package/dist/commands/update/index.js.map +1 -0
- package/dist/commands/user.d.ts +3 -0
- package/dist/commands/user.d.ts.map +1 -0
- package/dist/commands/user.js +90 -0
- package/dist/commands/user.js.map +1 -0
- package/dist/commands/view.d.ts +3 -0
- package/dist/commands/view.d.ts.map +1 -0
- package/dist/commands/view.js +68 -0
- package/dist/commands/view.js.map +1 -0
- package/dist/commands/workspace.d.ts +3 -0
- package/dist/commands/workspace.d.ts.map +1 -0
- package/dist/commands/workspace.js +56 -0
- package/dist/commands/workspace.js.map +1 -0
- package/dist/index.d.ts +3 -0
- package/dist/index.d.ts.map +1 -0
- package/dist/index.js +190 -0
- package/dist/index.js.map +1 -0
- package/dist/lib/api.d.ts +35 -0
- package/dist/lib/api.d.ts.map +1 -0
- package/dist/lib/api.js +306 -0
- package/dist/lib/api.js.map +1 -0
- package/dist/lib/auth-constants.d.ts +3 -0
- package/dist/lib/auth-constants.d.ts.map +1 -0
- package/dist/lib/auth-constants.js +3 -0
- package/dist/lib/auth-constants.js.map +1 -0
- package/dist/lib/auth-pages.d.ts +3 -0
- package/dist/lib/auth-pages.d.ts.map +1 -0
- package/dist/lib/auth-pages.js +707 -0
- package/dist/lib/auth-pages.js.map +1 -0
- package/dist/lib/auth-provider.d.ts +74 -0
- package/dist/lib/auth-provider.d.ts.map +1 -0
- package/dist/lib/auth-provider.js +238 -0
- package/dist/lib/auth-provider.js.map +1 -0
- package/dist/lib/auth.d.ts +39 -0
- package/dist/lib/auth.d.ts.map +1 -0
- package/dist/lib/auth.js +57 -0
- package/dist/lib/auth.js.map +1 -0
- package/dist/lib/comms-account.d.ts +22 -0
- package/dist/lib/comms-account.d.ts.map +1 -0
- package/dist/lib/comms-account.js +23 -0
- package/dist/lib/comms-account.js.map +1 -0
- package/dist/lib/completion.d.ts +31 -0
- package/dist/lib/completion.d.ts.map +1 -0
- package/dist/lib/completion.js +173 -0
- package/dist/lib/completion.js.map +1 -0
- package/dist/lib/config.d.ts +61 -0
- package/dist/lib/config.d.ts.map +1 -0
- package/dist/lib/config.js +184 -0
- package/dist/lib/config.js.map +1 -0
- package/dist/lib/dates.d.ts +3 -0
- package/dist/lib/dates.d.ts.map +1 -0
- package/dist/lib/dates.js +44 -0
- package/dist/lib/dates.js.map +1 -0
- package/dist/lib/errors.d.ts +28 -0
- package/dist/lib/errors.d.ts.map +1 -0
- package/dist/lib/errors.js +34 -0
- package/dist/lib/errors.js.map +1 -0
- package/dist/lib/global-args.d.ts +52 -0
- package/dist/lib/global-args.d.ts.map +1 -0
- package/dist/lib/global-args.js +124 -0
- package/dist/lib/global-args.js.map +1 -0
- package/dist/lib/input.d.ts +3 -0
- package/dist/lib/input.d.ts.map +1 -0
- package/dist/lib/input.js +80 -0
- package/dist/lib/input.js.map +1 -0
- package/dist/lib/markdown.d.ts +3 -0
- package/dist/lib/markdown.d.ts.map +1 -0
- package/dist/lib/markdown.js +15 -0
- package/dist/lib/markdown.js.map +1 -0
- package/dist/lib/options.d.ts +16 -0
- package/dist/lib/options.d.ts.map +1 -0
- package/dist/lib/options.js +2 -0
- package/dist/lib/options.js.map +1 -0
- package/dist/lib/output.d.ts +41 -0
- package/dist/lib/output.d.ts.map +1 -0
- package/dist/lib/output.js +184 -0
- package/dist/lib/output.js.map +1 -0
- package/dist/lib/permissions.d.ts +4 -0
- package/dist/lib/permissions.d.ts.map +1 -0
- package/dist/lib/permissions.js +41 -0
- package/dist/lib/permissions.js.map +1 -0
- package/dist/lib/progress.d.ts +29 -0
- package/dist/lib/progress.d.ts.map +1 -0
- package/dist/lib/progress.js +86 -0
- package/dist/lib/progress.js.map +1 -0
- package/dist/lib/public-channels.d.ts +4 -0
- package/dist/lib/public-channels.d.ts.map +1 -0
- package/dist/lib/public-channels.js +32 -0
- package/dist/lib/public-channels.js.map +1 -0
- package/dist/lib/refs.d.ts +62 -0
- package/dist/lib/refs.d.ts.map +1 -0
- package/dist/lib/refs.js +378 -0
- package/dist/lib/refs.js.map +1 -0
- package/dist/lib/search-api.d.ts +25 -0
- package/dist/lib/search-api.d.ts.map +1 -0
- package/dist/lib/search-api.js +93 -0
- package/dist/lib/search-api.js.map +1 -0
- package/dist/lib/search-helpers.d.ts +32 -0
- package/dist/lib/search-helpers.d.ts.map +1 -0
- package/dist/lib/search-helpers.js +183 -0
- package/dist/lib/search-helpers.js.map +1 -0
- package/dist/lib/skills/content.d.ts +8 -0
- package/dist/lib/skills/content.d.ts.map +1 -0
- package/dist/lib/skills/content.js +410 -0
- package/dist/lib/skills/content.js.map +1 -0
- package/dist/lib/skills/create-installer.d.ts +9 -0
- package/dist/lib/skills/create-installer.d.ts.map +1 -0
- package/dist/lib/skills/create-installer.js +65 -0
- package/dist/lib/skills/create-installer.js.map +1 -0
- package/dist/lib/skills/index.d.ts +7 -0
- package/dist/lib/skills/index.d.ts.map +1 -0
- package/dist/lib/skills/index.js +54 -0
- package/dist/lib/skills/index.js.map +1 -0
- package/dist/lib/skills/types.d.ts +30 -0
- package/dist/lib/skills/types.d.ts.map +1 -0
- package/dist/lib/skills/types.js +2 -0
- package/dist/lib/skills/types.js.map +1 -0
- package/dist/lib/skills/update-installed.d.ts +9 -0
- package/dist/lib/skills/update-installed.d.ts.map +1 -0
- package/dist/lib/skills/update-installed.js +20 -0
- package/dist/lib/skills/update-installed.js.map +1 -0
- package/dist/lib/spinner.d.ts +3 -0
- package/dist/lib/spinner.d.ts.map +1 -0
- package/dist/lib/spinner.js +10 -0
- package/dist/lib/spinner.js.map +1 -0
- package/dist/lib/threads.d.ts +4 -0
- package/dist/lib/threads.d.ts.map +1 -0
- package/dist/lib/threads.js +6 -0
- package/dist/lib/threads.js.map +1 -0
- package/dist/lib/update.d.ts +13 -0
- package/dist/lib/update.d.ts.map +1 -0
- package/dist/lib/update.js +23 -0
- package/dist/lib/update.js.map +1 -0
- package/dist/lib/user-records.d.ts +15 -0
- package/dist/lib/user-records.d.ts.map +1 -0
- package/dist/lib/user-records.js +84 -0
- package/dist/lib/user-records.js.map +1 -0
- package/dist/lib/validation.d.ts +2 -0
- package/dist/lib/validation.d.ts.map +1 -0
- package/dist/lib/validation.js +7 -0
- package/dist/lib/validation.js.map +1 -0
- package/dist/postinstall.d.ts +2 -0
- package/dist/postinstall.d.ts.map +1 -0
- package/dist/postinstall.js +4 -0
- package/dist/postinstall.js.map +1 -0
- package/package.json +77 -8
- package/scripts/check-skill-sync.js +40 -0
- package/scripts/postinstall.js +12 -0
- package/scripts/sync-skill.js +29 -0
|
@@ -0,0 +1,124 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Per-CLI extension of `@doist/cli-core`'s global-args parser.
|
|
3
|
+
*
|
|
4
|
+
* Layers comms's `--include-private-channels`, `--non-interactive`,
|
|
5
|
+
* `--interactive`, and the `--progress-jsonl <path>` space form on top of
|
|
6
|
+
* the subset of cli-core's canonical shape that comms actually registers
|
|
7
|
+
* with Commander (`--json`, `--ndjson`, `--accessible`, `--no-spinner`,
|
|
8
|
+
* `--progress-jsonl[=path]`).
|
|
9
|
+
*
|
|
10
|
+
* cli-core's parser also surfaces `quiet` and `verbose` from argv, but
|
|
11
|
+
* comms does not register `--quiet` or `--verbose` globally (Commander
|
|
12
|
+
* would reject them) — so we drop them from the exported shape to avoid
|
|
13
|
+
* the type/API leak where helpers believe the binary supports them.
|
|
14
|
+
*/
|
|
15
|
+
import { createAccessibleGate, createGlobalArgsStore, createSpinnerGate, parseGlobalArgs as parseCoreGlobalArgs, } from '@doist/cli-core';
|
|
16
|
+
function parseCommsLocalFlags(argv) {
|
|
17
|
+
let includePrivate = false;
|
|
18
|
+
let nonInteractive = false;
|
|
19
|
+
let interactive = false;
|
|
20
|
+
let progressJsonl = false;
|
|
21
|
+
for (let i = 0; i < argv.length; i++) {
|
|
22
|
+
const arg = argv[i];
|
|
23
|
+
if (arg === '--')
|
|
24
|
+
break;
|
|
25
|
+
if (arg === '--include-private-channels') {
|
|
26
|
+
includePrivate = true;
|
|
27
|
+
}
|
|
28
|
+
else if (arg === '--non-interactive') {
|
|
29
|
+
nonInteractive = true;
|
|
30
|
+
}
|
|
31
|
+
else if (arg === '--interactive') {
|
|
32
|
+
interactive = true;
|
|
33
|
+
}
|
|
34
|
+
else if (arg === '--progress-jsonl') {
|
|
35
|
+
// Bare or space form. Last one wins — overwrite any prior value.
|
|
36
|
+
if (i + 1 < argv.length && !argv[i + 1].startsWith('-')) {
|
|
37
|
+
progressJsonl = argv[i + 1];
|
|
38
|
+
i++;
|
|
39
|
+
}
|
|
40
|
+
else {
|
|
41
|
+
progressJsonl = true;
|
|
42
|
+
}
|
|
43
|
+
}
|
|
44
|
+
else if (arg.startsWith('--progress-jsonl=')) {
|
|
45
|
+
progressJsonl = arg.slice('--progress-jsonl='.length);
|
|
46
|
+
}
|
|
47
|
+
}
|
|
48
|
+
return {
|
|
49
|
+
includePrivateChannels: includePrivate,
|
|
50
|
+
nonInteractive,
|
|
51
|
+
interactive,
|
|
52
|
+
progressJsonl,
|
|
53
|
+
};
|
|
54
|
+
}
|
|
55
|
+
function parseFullArgs(argv) {
|
|
56
|
+
const args = argv ?? process.argv;
|
|
57
|
+
const base = parseCoreGlobalArgs(args);
|
|
58
|
+
const local = parseCommsLocalFlags(args);
|
|
59
|
+
return {
|
|
60
|
+
...base,
|
|
61
|
+
progressJsonl: local.progressJsonl,
|
|
62
|
+
progressJsonlPath: typeof local.progressJsonl === 'string' ? local.progressJsonl : undefined,
|
|
63
|
+
includePrivateChannels: local.includePrivateChannels,
|
|
64
|
+
nonInteractive: local.nonInteractive,
|
|
65
|
+
interactive: local.interactive,
|
|
66
|
+
};
|
|
67
|
+
}
|
|
68
|
+
/**
|
|
69
|
+
* Parse well-known global flags from an argv array. Pure — pass an explicit
|
|
70
|
+
* array for testing, or omit to read `process.argv`. Returns the narrowed
|
|
71
|
+
* comms surface; cli-core's `quiet` and `verbose` are intentionally
|
|
72
|
+
* dropped (see {@link GlobalArgs}).
|
|
73
|
+
*/
|
|
74
|
+
export function parseGlobalArgs(argv) {
|
|
75
|
+
const { quiet: _quiet, verbose: _verbose, ...rest } = parseFullArgs(argv);
|
|
76
|
+
return rest;
|
|
77
|
+
}
|
|
78
|
+
const store = createGlobalArgsStore(() => parseFullArgs());
|
|
79
|
+
/** Clear the cached parse result. Call in test teardown. */
|
|
80
|
+
export const resetGlobalArgs = store.reset;
|
|
81
|
+
// ---------------------------------------------------------------------------
|
|
82
|
+
// Query functions — drop-in replacements for the old process.argv checks
|
|
83
|
+
// ---------------------------------------------------------------------------
|
|
84
|
+
export function isJsonMode() {
|
|
85
|
+
return store.get().json;
|
|
86
|
+
}
|
|
87
|
+
export function isNdjsonMode() {
|
|
88
|
+
return store.get().ndjson;
|
|
89
|
+
}
|
|
90
|
+
/** Pre-subcommand `tdc --user <ref>` (see `stripUserFlag` in `src/index.ts`). */
|
|
91
|
+
export function getRequestedUserRef() {
|
|
92
|
+
return store.get().user;
|
|
93
|
+
}
|
|
94
|
+
export function isNonInteractive() {
|
|
95
|
+
const args = store.get();
|
|
96
|
+
if (args.interactive)
|
|
97
|
+
return false;
|
|
98
|
+
if (args.nonInteractive)
|
|
99
|
+
return true;
|
|
100
|
+
return !process.stdin.isTTY;
|
|
101
|
+
}
|
|
102
|
+
export function includePrivateChannels() {
|
|
103
|
+
const envVal = process.env.COMMS_INCLUDE_PRIVATE_CHANNELS;
|
|
104
|
+
if (envVal === '1' || envVal === 'true') {
|
|
105
|
+
return true;
|
|
106
|
+
}
|
|
107
|
+
return store.get().includePrivateChannels;
|
|
108
|
+
}
|
|
109
|
+
export function isProgressJsonlEnabled() {
|
|
110
|
+
return store.get().progressJsonl !== false;
|
|
111
|
+
}
|
|
112
|
+
export function getProgressJsonlPath() {
|
|
113
|
+
return store.get().progressJsonlPath;
|
|
114
|
+
}
|
|
115
|
+
export const isAccessible = createAccessibleGate({
|
|
116
|
+
envVar: 'TDC_ACCESSIBLE',
|
|
117
|
+
getArgs: store.get,
|
|
118
|
+
});
|
|
119
|
+
export const shouldDisableSpinner = createSpinnerGate({
|
|
120
|
+
envVar: 'TDC_SPINNER',
|
|
121
|
+
getArgs: store.get,
|
|
122
|
+
extraTriggers: () => store.get().nonInteractive,
|
|
123
|
+
});
|
|
124
|
+
//# sourceMappingURL=global-args.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"global-args.js","sourceRoot":"","sources":["../../src/lib/global-args.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"input.d.ts","sourceRoot":"","sources":["../../src/lib/input.ts"],"names":[],"mappings":"AAQA,wBAAsB,SAAS,IAAI,OAAO,CAAC,MAAM,GAAG,IAAI,CAAC,CA2CxD;AAED,wBAAsB,UAAU,IAAI,OAAO,CAAC,MAAM,GAAG,IAAI,CAAC,CAoCzD"}
|
|
@@ -0,0 +1,80 @@
|
|
|
1
|
+
import { spawn } from 'node:child_process';
|
|
2
|
+
import { readFile, unlink, writeFile } from 'node:fs/promises';
|
|
3
|
+
import { tmpdir } from 'node:os';
|
|
4
|
+
import { join } from 'node:path';
|
|
5
|
+
import { isNonInteractive } from './global-args.js';
|
|
6
|
+
const STDIN_TIMEOUT_MS = 100;
|
|
7
|
+
export async function readStdin() {
|
|
8
|
+
if (process.stdin.isTTY) {
|
|
9
|
+
return null;
|
|
10
|
+
}
|
|
11
|
+
return new Promise((resolve) => {
|
|
12
|
+
let data = '';
|
|
13
|
+
let settled = false;
|
|
14
|
+
let timeout;
|
|
15
|
+
const settle = (value) => {
|
|
16
|
+
if (settled)
|
|
17
|
+
return;
|
|
18
|
+
settled = true;
|
|
19
|
+
if (timeout)
|
|
20
|
+
clearTimeout(timeout);
|
|
21
|
+
process.stdin.removeListener('data', onData);
|
|
22
|
+
process.stdin.removeListener('end', onEnd);
|
|
23
|
+
process.stdin.removeListener('error', onError);
|
|
24
|
+
resolve(value);
|
|
25
|
+
};
|
|
26
|
+
const onData = (chunk) => {
|
|
27
|
+
data += chunk;
|
|
28
|
+
// Data arrived — clear any non-interactive timeout and wait for end
|
|
29
|
+
if (timeout) {
|
|
30
|
+
clearTimeout(timeout);
|
|
31
|
+
timeout = undefined;
|
|
32
|
+
}
|
|
33
|
+
};
|
|
34
|
+
const onEnd = () => settle(data.trim() || null);
|
|
35
|
+
const onError = () => settle(null);
|
|
36
|
+
process.stdin.setEncoding('utf8');
|
|
37
|
+
process.stdin.on('data', onData);
|
|
38
|
+
process.stdin.on('end', onEnd);
|
|
39
|
+
process.stdin.on('error', onError);
|
|
40
|
+
// In non-interactive mode, don't wait indefinitely for a pipe that may never close
|
|
41
|
+
if (isNonInteractive()) {
|
|
42
|
+
timeout = setTimeout(() => {
|
|
43
|
+
settle(data.trim() || null);
|
|
44
|
+
}, STDIN_TIMEOUT_MS);
|
|
45
|
+
}
|
|
46
|
+
});
|
|
47
|
+
}
|
|
48
|
+
export async function openEditor() {
|
|
49
|
+
if (isNonInteractive()) {
|
|
50
|
+
return null;
|
|
51
|
+
}
|
|
52
|
+
const editor = process.env.EDITOR || process.env.VISUAL || 'vi';
|
|
53
|
+
const tmpFile = join(tmpdir(), `comms-cli-${Date.now()}.md`);
|
|
54
|
+
await writeFile(tmpFile, '');
|
|
55
|
+
return new Promise((resolve) => {
|
|
56
|
+
const child = spawn(editor, [tmpFile], {
|
|
57
|
+
stdio: 'inherit',
|
|
58
|
+
});
|
|
59
|
+
child.on('exit', async (code) => {
|
|
60
|
+
if (code !== 0) {
|
|
61
|
+
await unlink(tmpFile).catch(() => { });
|
|
62
|
+
resolve(null);
|
|
63
|
+
return;
|
|
64
|
+
}
|
|
65
|
+
try {
|
|
66
|
+
const content = await readFile(tmpFile, 'utf8');
|
|
67
|
+
await unlink(tmpFile).catch(() => { });
|
|
68
|
+
resolve(content.trim() || null);
|
|
69
|
+
}
|
|
70
|
+
catch {
|
|
71
|
+
resolve(null);
|
|
72
|
+
}
|
|
73
|
+
});
|
|
74
|
+
child.on('error', async () => {
|
|
75
|
+
await unlink(tmpFile).catch(() => { });
|
|
76
|
+
resolve(null);
|
|
77
|
+
});
|
|
78
|
+
});
|
|
79
|
+
}
|
|
80
|
+
//# sourceMappingURL=input.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"input.js","sourceRoot":"","sources":["../../src/lib/input.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"markdown.d.ts","sourceRoot":"","sources":["../../src/lib/markdown.ts"],"names":[],"mappings":"AAWA,wBAAsB,eAAe,IAAI,OAAO,CAAC,IAAI,CAAC,CAGrD;AAED,wBAAsB,cAAc,CAAC,OAAO,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC,CAGrE"}
|
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
import { preloadMarkdown as corePreloadMarkdown, renderMarkdown as coreRenderMarkdown, } from '@doist/cli-core/markdown';
|
|
2
|
+
let preloadPromise = null;
|
|
3
|
+
function preprocessMentions(content) {
|
|
4
|
+
return content.replace(/\[([^\]]+)\]\((comms-mention:\/\/\d+)\)/g, '[@$1]($2)');
|
|
5
|
+
}
|
|
6
|
+
export async function preloadMarkdown() {
|
|
7
|
+
if (!preloadPromise)
|
|
8
|
+
preloadPromise = corePreloadMarkdown();
|
|
9
|
+
return preloadPromise;
|
|
10
|
+
}
|
|
11
|
+
export async function renderMarkdown(content) {
|
|
12
|
+
await preloadMarkdown();
|
|
13
|
+
return coreRenderMarkdown(preprocessMentions(content));
|
|
14
|
+
}
|
|
15
|
+
//# sourceMappingURL=markdown.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"markdown.js","sourceRoot":"","sources":["../../src/lib/markdown.ts"],"names":[],"mappings":"AAAA,OAAO,EACH,eAAe,IAAI,mBAAmB,EACtC,cAAc,IAAI,kBAAkB,GACvC,MAAM,0BAA0B,CAAA;AAEjC,IAAI,cAAc,GAAyB,IAAI,CAAA;AAE/C,SAAS,kBAAkB,CAAC,OAAe;IACvC,OAAO,OAAO,CAAC,OAAO,CAAC,0CAA0C,EAAE,WAAW,CAAC,CAAA;AACnF,CAAC;AAED,MAAM,CAAC,KAAK,UAAU,eAAe;IACjC,IAAI,CAAC,cAAc;QAAE,cAAc,GAAG,mBAAmB,EAAE,CAAA;IAC3D,OAAO,cAAc,CAAA;AACzB,CAAC;AAED,MAAM,CAAC,KAAK,UAAU,cAAc,CAAC,OAAe;IAChD,MAAM,eAAe,EAAE,CAAA;IACvB,OAAO,kBAAkB,CAAC,kBAAkB,CAAC,OAAO,CAAC,CAAC,CAAA;AAC1D,CAAC"}
|
|
@@ -0,0 +1,16 @@
|
|
|
1
|
+
import type { ViewOptions as CoreViewOptions } from '@doist/cli-core';
|
|
2
|
+
export type ViewOptions = CoreViewOptions & {
|
|
3
|
+
full?: boolean;
|
|
4
|
+
raw?: boolean;
|
|
5
|
+
};
|
|
6
|
+
export type PaginatedViewOptions = ViewOptions & {
|
|
7
|
+
limit?: string;
|
|
8
|
+
since?: string;
|
|
9
|
+
until?: string;
|
|
10
|
+
};
|
|
11
|
+
export type MutationOptions = {
|
|
12
|
+
dryRun?: boolean;
|
|
13
|
+
json?: boolean;
|
|
14
|
+
full?: boolean;
|
|
15
|
+
};
|
|
16
|
+
//# sourceMappingURL=options.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"options.d.ts","sourceRoot":"","sources":["../../src/lib/options.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,WAAW,IAAI,eAAe,EAAE,MAAM,iBAAiB,CAAA;AAErE,MAAM,MAAM,WAAW,GAAG,eAAe,GAAG;IACxC,IAAI,CAAC,EAAE,OAAO,CAAA;IACd,GAAG,CAAC,EAAE,OAAO,CAAA;CAChB,CAAA;AAED,MAAM,MAAM,oBAAoB,GAAG,WAAW,GAAG;IAC7C,KAAK,CAAC,EAAE,MAAM,CAAA;IACd,KAAK,CAAC,EAAE,MAAM,CAAA;IACd,KAAK,CAAC,EAAE,MAAM,CAAA;CACjB,CAAA;AAED,MAAM,MAAM,eAAe,GAAG;IAC1B,MAAM,CAAC,EAAE,OAAO,CAAA;IAChB,IAAI,CAAC,EAAE,OAAO,CAAA;IACd,IAAI,CAAC,EAAE,OAAO,CAAA;CACjB,CAAA"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"options.js","sourceRoot":"","sources":["../../src/lib/options.ts"],"names":[],"mappings":""}
|
|
@@ -0,0 +1,41 @@
|
|
|
1
|
+
import type { BaseCliError } from './errors.js';
|
|
2
|
+
type AnyCliError = BaseCliError<string>;
|
|
3
|
+
export declare const colors: {
|
|
4
|
+
author: import("chalk").ChalkInstance;
|
|
5
|
+
timestamp: import("chalk").ChalkInstance;
|
|
6
|
+
channel: import("chalk").ChalkInstance;
|
|
7
|
+
unread: import("chalk").ChalkInstance;
|
|
8
|
+
url: import("chalk").ChalkInstance;
|
|
9
|
+
error: import("chalk").ChalkInstance;
|
|
10
|
+
};
|
|
11
|
+
export type EntityType = 'thread' | 'comment' | 'conversation' | 'message' | 'workspace' | 'user' | 'channel' | 'group';
|
|
12
|
+
export declare function filterEntityFields<T extends object>(data: T, type: EntityType, full?: boolean): T | Partial<T>;
|
|
13
|
+
export declare function filterEntityFields<T extends object>(data: T[], type: EntityType, full?: boolean): Array<T | Partial<T>>;
|
|
14
|
+
export declare function formatJson<T extends object>(data: T | T[], type?: EntityType, full?: boolean): string;
|
|
15
|
+
export declare function formatNdjson<T extends object>(items: T[], type?: EntityType, full?: boolean): string;
|
|
16
|
+
export interface PaginatedOutput<T> {
|
|
17
|
+
results: T[];
|
|
18
|
+
nextCursor: string | null;
|
|
19
|
+
}
|
|
20
|
+
export declare function formatPaginatedJson<T extends object>(data: PaginatedOutput<T>, type?: EntityType, full?: boolean): string;
|
|
21
|
+
export declare function formatPaginatedNdjson<T extends object>(data: PaginatedOutput<T>, type?: EntityType, full?: boolean): string;
|
|
22
|
+
export declare function formatError(error: AnyCliError): string;
|
|
23
|
+
export declare function formatError(message: string): string;
|
|
24
|
+
export declare function formatErrorJson(error: AnyCliError): string;
|
|
25
|
+
export declare function formatErrorJson(code: string, message: string, hints?: string[]): string;
|
|
26
|
+
export declare function printError(message: string): void;
|
|
27
|
+
export declare function printJson<T extends object>(data: T | T[], type?: EntityType, full?: boolean): void;
|
|
28
|
+
export declare function printNdjson<T extends object>(items: T[], type?: EntityType, full?: boolean): void;
|
|
29
|
+
export declare function printEmpty({ options, type, message, }: {
|
|
30
|
+
options: {
|
|
31
|
+
json?: boolean;
|
|
32
|
+
ndjson?: boolean;
|
|
33
|
+
full?: boolean;
|
|
34
|
+
};
|
|
35
|
+
type: EntityType;
|
|
36
|
+
message: string;
|
|
37
|
+
}): void;
|
|
38
|
+
export declare function pluralize(count: number, singular: string): string;
|
|
39
|
+
export declare function printDryRun(action: string, details?: Record<string, string | undefined>): void;
|
|
40
|
+
export {};
|
|
41
|
+
//# sourceMappingURL=output.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"output.d.ts","sourceRoot":"","sources":["../../src/lib/output.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,aAAa,CAAA;AAE/C,KAAK,WAAW,GAAG,YAAY,CAAC,MAAM,CAAC,CAAA;AAEvC,eAAO,MAAM,MAAM;;;;;;;CAOlB,CAAA;AA6DD,MAAM,MAAM,UAAU,GAChB,QAAQ,GACR,SAAS,GACT,cAAc,GACd,SAAS,GACT,WAAW,GACX,MAAM,GACN,SAAS,GACT,OAAO,CAAA;AAiCb,wBAAgB,kBAAkB,CAAC,CAAC,SAAS,MAAM,EAC/C,IAAI,EAAE,CAAC,EACP,IAAI,EAAE,UAAU,EAChB,IAAI,CAAC,EAAE,OAAO,GACf,CAAC,GAAG,OAAO,CAAC,CAAC,CAAC,CAAA;AACjB,wBAAgB,kBAAkB,CAAC,CAAC,SAAS,MAAM,EAC/C,IAAI,EAAE,CAAC,EAAE,EACT,IAAI,EAAE,UAAU,EAChB,IAAI,CAAC,EAAE,OAAO,GACf,KAAK,CAAC,CAAC,GAAG,OAAO,CAAC,CAAC,CAAC,CAAC,CAAA;AAkBxB,wBAAgB,UAAU,CAAC,CAAC,SAAS,MAAM,EACvC,IAAI,EAAE,CAAC,GAAG,CAAC,EAAE,EACb,IAAI,CAAC,EAAE,UAAU,EACjB,IAAI,UAAQ,GACb,MAAM,CAGR;AAED,wBAAgB,YAAY,CAAC,CAAC,SAAS,MAAM,EACzC,KAAK,EAAE,CAAC,EAAE,EACV,IAAI,CAAC,EAAE,UAAU,EACjB,IAAI,UAAQ,GACb,MAAM,CAGR;AAED,MAAM,WAAW,eAAe,CAAC,CAAC;IAC9B,OAAO,EAAE,CAAC,EAAE,CAAA;IACZ,UAAU,EAAE,MAAM,GAAG,IAAI,CAAA;CAC5B;AAED,wBAAgB,mBAAmB,CAAC,CAAC,SAAS,MAAM,EAChD,IAAI,EAAE,eAAe,CAAC,CAAC,CAAC,EACxB,IAAI,CAAC,EAAE,UAAU,EACjB,IAAI,UAAQ,GACb,MAAM,CAGR;AAED,wBAAgB,qBAAqB,CAAC,CAAC,SAAS,MAAM,EAClD,IAAI,EAAE,eAAe,CAAC,CAAC,CAAC,EACxB,IAAI,CAAC,EAAE,UAAU,EACjB,IAAI,UAAQ,GACb,MAAM,CAOR;AAED,wBAAgB,WAAW,CAAC,KAAK,EAAE,WAAW,GAAG,MAAM,CAAA;AACvD,wBAAgB,WAAW,CAAC,OAAO,EAAE,MAAM,GAAG,MAAM,CAAA;AAmBpD,wBAAgB,eAAe,CAAC,KAAK,EAAE,WAAW,GAAG,MAAM,CAAA;AAC3D,wBAAgB,eAAe,CAAC,IAAI,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,EAAE,KAAK,CAAC,EAAE,MAAM,EAAE,GAAG,MAAM,CAAA;AAcxF,wBAAgB,UAAU,CAAC,OAAO,EAAE,MAAM,GAAG,IAAI,CAEhD;AAED,wBAAgB,SAAS,CAAC,CAAC,SAAS,MAAM,EAAE,IAAI,EAAE,CAAC,GAAG,CAAC,EAAE,EAAE,IAAI,CAAC,EAAE,UAAU,EAAE,IAAI,UAAQ,GAAG,IAAI,CAEhG;AAED,wBAAgB,WAAW,CAAC,CAAC,SAAS,MAAM,EAAE,KAAK,EAAE,CAAC,EAAE,EAAE,IAAI,CAAC,EAAE,UAAU,EAAE,IAAI,UAAQ,GAAG,IAAI,CAE/F;AAED,wBAAgB,UAAU,CAAC,EACvB,OAAO,EACP,IAAI,EACJ,OAAO,GACV,EAAE;IACC,OAAO,EAAE;QAAE,IAAI,CAAC,EAAE,OAAO,CAAC;QAAC,MAAM,CAAC,EAAE,OAAO,CAAC;QAAC,IAAI,CAAC,EAAE,OAAO,CAAA;KAAE,CAAA;IAC7D,IAAI,EAAE,UAAU,CAAA;IAChB,OAAO,EAAE,MAAM,CAAA;CAClB,GAAG,IAAI,CASP;AAED,wBAAgB,SAAS,CAAC,KAAK,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,GAAG,MAAM,CAEjE;AAED,wBAAgB,WAAW,CACvB,MAAM,EAAE,MAAM,EACd,OAAO,GAAE,MAAM,CAAC,MAAM,EAAE,MAAM,GAAG,SAAS,CAAM,GACjD,IAAI,CAYN"}
|
|
@@ -0,0 +1,184 @@
|
|
|
1
|
+
import { formatJson as formatJsonCore, formatNdjson as formatNdjsonCore } from '@doist/cli-core';
|
|
2
|
+
import chalk from 'chalk';
|
|
3
|
+
export const colors = {
|
|
4
|
+
author: chalk.cyan,
|
|
5
|
+
timestamp: chalk.dim,
|
|
6
|
+
channel: chalk.blue,
|
|
7
|
+
unread: chalk.bold,
|
|
8
|
+
url: chalk.dim,
|
|
9
|
+
error: chalk.red,
|
|
10
|
+
};
|
|
11
|
+
const THREAD_ESSENTIAL_FIELDS = [
|
|
12
|
+
'id',
|
|
13
|
+
'title',
|
|
14
|
+
'channelId',
|
|
15
|
+
'workspaceId',
|
|
16
|
+
'creator',
|
|
17
|
+
'posted',
|
|
18
|
+
'lastUpdated',
|
|
19
|
+
'commentCount',
|
|
20
|
+
'isArchived',
|
|
21
|
+
'isUnread',
|
|
22
|
+
'url',
|
|
23
|
+
'reactions',
|
|
24
|
+
];
|
|
25
|
+
const COMMENT_ESSENTIAL_FIELDS = [
|
|
26
|
+
'id',
|
|
27
|
+
'content',
|
|
28
|
+
'creator',
|
|
29
|
+
'threadId',
|
|
30
|
+
'posted',
|
|
31
|
+
'reactions',
|
|
32
|
+
];
|
|
33
|
+
const CONVERSATION_ESSENTIAL_FIELDS = [
|
|
34
|
+
'id',
|
|
35
|
+
'workspaceId',
|
|
36
|
+
'userIds',
|
|
37
|
+
'title',
|
|
38
|
+
'messageCount',
|
|
39
|
+
'lastActive',
|
|
40
|
+
'archived',
|
|
41
|
+
];
|
|
42
|
+
const MESSAGE_ESSENTIAL_FIELDS = [
|
|
43
|
+
'id',
|
|
44
|
+
'content',
|
|
45
|
+
'creator',
|
|
46
|
+
'conversationId',
|
|
47
|
+
'posted',
|
|
48
|
+
'reactions',
|
|
49
|
+
];
|
|
50
|
+
const WORKSPACE_ESSENTIAL_FIELDS = ['id', 'name', 'creator', 'plan'];
|
|
51
|
+
const USER_ESSENTIAL_FIELDS = ['id', 'fullName', 'email', 'timezone', 'userType'];
|
|
52
|
+
const CHANNEL_ESSENTIAL_FIELDS = [
|
|
53
|
+
'id',
|
|
54
|
+
'name',
|
|
55
|
+
'description',
|
|
56
|
+
'workspaceId',
|
|
57
|
+
'public',
|
|
58
|
+
'archived',
|
|
59
|
+
'url',
|
|
60
|
+
];
|
|
61
|
+
const GROUP_ESSENTIAL_FIELDS = ['id', 'name', 'workspaceId', 'userIds'];
|
|
62
|
+
function getEssentialFields(type) {
|
|
63
|
+
switch (type) {
|
|
64
|
+
case 'thread':
|
|
65
|
+
return THREAD_ESSENTIAL_FIELDS;
|
|
66
|
+
case 'comment':
|
|
67
|
+
return COMMENT_ESSENTIAL_FIELDS;
|
|
68
|
+
case 'conversation':
|
|
69
|
+
return CONVERSATION_ESSENTIAL_FIELDS;
|
|
70
|
+
case 'message':
|
|
71
|
+
return MESSAGE_ESSENTIAL_FIELDS;
|
|
72
|
+
case 'workspace':
|
|
73
|
+
return WORKSPACE_ESSENTIAL_FIELDS;
|
|
74
|
+
case 'user':
|
|
75
|
+
return USER_ESSENTIAL_FIELDS;
|
|
76
|
+
case 'channel':
|
|
77
|
+
return CHANNEL_ESSENTIAL_FIELDS;
|
|
78
|
+
case 'group':
|
|
79
|
+
return GROUP_ESSENTIAL_FIELDS;
|
|
80
|
+
}
|
|
81
|
+
}
|
|
82
|
+
function pickFields(item, fields) {
|
|
83
|
+
const result = {};
|
|
84
|
+
for (const field of fields) {
|
|
85
|
+
if (field in item) {
|
|
86
|
+
;
|
|
87
|
+
result[field] = item[field];
|
|
88
|
+
}
|
|
89
|
+
}
|
|
90
|
+
return result;
|
|
91
|
+
}
|
|
92
|
+
export function filterEntityFields(data, type, full = false) {
|
|
93
|
+
if (full) {
|
|
94
|
+
return data;
|
|
95
|
+
}
|
|
96
|
+
const fields = getEssentialFields(type);
|
|
97
|
+
if (Array.isArray(data)) {
|
|
98
|
+
return data.map((item) => pickFields(item, fields));
|
|
99
|
+
}
|
|
100
|
+
return pickFields(data, fields);
|
|
101
|
+
}
|
|
102
|
+
export function formatJson(data, type, full = false) {
|
|
103
|
+
if (full || !type)
|
|
104
|
+
return formatJsonCore(data);
|
|
105
|
+
return formatJsonCore(filterEntityFields(data, type));
|
|
106
|
+
}
|
|
107
|
+
export function formatNdjson(items, type, full = false) {
|
|
108
|
+
if (full || !type)
|
|
109
|
+
return formatNdjsonCore(items);
|
|
110
|
+
return formatNdjsonCore(filterEntityFields(items, type));
|
|
111
|
+
}
|
|
112
|
+
export function formatPaginatedJson(data, type, full = false) {
|
|
113
|
+
const results = type ? filterEntityFields(data.results, type, full) : data.results;
|
|
114
|
+
return formatJson({ results, nextCursor: data.nextCursor });
|
|
115
|
+
}
|
|
116
|
+
export function formatPaginatedNdjson(data, type, full = false) {
|
|
117
|
+
if (!data.nextCursor)
|
|
118
|
+
return formatNdjson(data.results, type, full);
|
|
119
|
+
// Build the trailer with a string concat (not an array spread) so a
|
|
120
|
+
// 10k-row page doesn't pay an O(n) copy just to add one meta line.
|
|
121
|
+
const body = formatNdjson(data.results, type, full);
|
|
122
|
+
const trailer = JSON.stringify({ _meta: true, nextCursor: data.nextCursor });
|
|
123
|
+
return body ? `${body}\n${trailer}` : trailer;
|
|
124
|
+
}
|
|
125
|
+
export function formatError(messageOrError) {
|
|
126
|
+
if (typeof messageOrError === 'string') {
|
|
127
|
+
return colors.error(messageOrError);
|
|
128
|
+
}
|
|
129
|
+
const color = messageOrError.type === 'info' ? chalk.yellow : chalk.red;
|
|
130
|
+
const lines = messageOrError.type === 'info'
|
|
131
|
+
? [messageOrError.message]
|
|
132
|
+
: [`Error: ${messageOrError.code}`, messageOrError.message];
|
|
133
|
+
if (messageOrError.hints && messageOrError.hints.length > 0) {
|
|
134
|
+
lines.push('');
|
|
135
|
+
for (const hint of messageOrError.hints) {
|
|
136
|
+
lines.push(` - ${hint}`);
|
|
137
|
+
}
|
|
138
|
+
}
|
|
139
|
+
return color(lines.join('\n'));
|
|
140
|
+
}
|
|
141
|
+
export function formatErrorJson(codeOrError, message, hints) {
|
|
142
|
+
if (typeof codeOrError === 'string') {
|
|
143
|
+
return JSON.stringify({ error: { code: codeOrError, message, hints } });
|
|
144
|
+
}
|
|
145
|
+
return JSON.stringify({
|
|
146
|
+
error: { code: codeOrError.code, message: codeOrError.message, hints: codeOrError.hints },
|
|
147
|
+
});
|
|
148
|
+
}
|
|
149
|
+
export function printError(message) {
|
|
150
|
+
console.error(formatError(message));
|
|
151
|
+
}
|
|
152
|
+
export function printJson(data, type, full = false) {
|
|
153
|
+
console.log(formatJson(data, type, full));
|
|
154
|
+
}
|
|
155
|
+
export function printNdjson(items, type, full = false) {
|
|
156
|
+
console.log(formatNdjson(items, type, full));
|
|
157
|
+
}
|
|
158
|
+
export function printEmpty({ options, type, message, }) {
|
|
159
|
+
if (options.json) {
|
|
160
|
+
console.log(formatJson([], type, options.full));
|
|
161
|
+
return;
|
|
162
|
+
}
|
|
163
|
+
if (options.ndjson) {
|
|
164
|
+
return;
|
|
165
|
+
}
|
|
166
|
+
console.log(message);
|
|
167
|
+
}
|
|
168
|
+
export function pluralize(count, singular) {
|
|
169
|
+
return count === 1 ? singular : `${singular}s`;
|
|
170
|
+
}
|
|
171
|
+
export function printDryRun(action, details = {}) {
|
|
172
|
+
console.log(chalk.yellow(`[dry-run] Would ${action}:`));
|
|
173
|
+
for (const [key, value] of Object.entries(details)) {
|
|
174
|
+
if (value !== undefined) {
|
|
175
|
+
const [firstLine, ...rest] = value.split('\n');
|
|
176
|
+
console.log(` ${key}: ${firstLine}`);
|
|
177
|
+
for (const line of rest) {
|
|
178
|
+
console.log(` ${line}`);
|
|
179
|
+
}
|
|
180
|
+
}
|
|
181
|
+
}
|
|
182
|
+
console.log(chalk.dim('Run without --dry-run to execute.'));
|
|
183
|
+
}
|
|
184
|
+
//# sourceMappingURL=output.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"output.js","sourceRoot":"","sources":["../../src/lib/output.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,4 @@
|
|
|
1
|
+
export declare const READ_ONLY_ERROR_MESSAGE = "This CLI is authenticated in read-only mode. Re-run `tdc auth login` without --read-only to enable write operations.";
|
|
2
|
+
export declare function isMutatingMethod(methodPath: string): boolean;
|
|
3
|
+
export declare function ensureWriteAllowed(): Promise<void>;
|
|
4
|
+
//# sourceMappingURL=permissions.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"permissions.d.ts","sourceRoot":"","sources":["../../src/lib/permissions.ts"],"names":[],"mappings":"AAGA,eAAO,MAAM,uBAAuB,yHACsF,CAAA;AA6B1H,wBAAgB,gBAAgB,CAAC,UAAU,EAAE,MAAM,GAAG,OAAO,CAE5D;AAED,wBAAsB,kBAAkB,IAAI,OAAO,CAAC,IAAI,CAAC,CAOxD"}
|
|
@@ -0,0 +1,41 @@
|
|
|
1
|
+
import { getAuthMetadata } from './auth.js';
|
|
2
|
+
import { CliError } from './errors.js';
|
|
3
|
+
export const READ_ONLY_ERROR_MESSAGE = 'This CLI is authenticated in read-only mode. Re-run `tdc auth login` without --read-only to enable write operations.';
|
|
4
|
+
/**
|
|
5
|
+
* Known read-only API method paths. Any method not in this set is assumed to be mutating.
|
|
6
|
+
* This is a safe-by-default approach: new API methods are blocked until explicitly allowed.
|
|
7
|
+
*/
|
|
8
|
+
const KNOWN_SAFE_API_METHODS = new Set([
|
|
9
|
+
'users.getSessionUser',
|
|
10
|
+
'workspaces.getWorkspaces',
|
|
11
|
+
'workspaces.getPublicChannels',
|
|
12
|
+
'workspaceUsers.getWorkspaceUsers',
|
|
13
|
+
'workspaceUsers.getUserById',
|
|
14
|
+
'threads.getThread',
|
|
15
|
+
'threads.getUnread',
|
|
16
|
+
'comments.getComment',
|
|
17
|
+
'comments.getComments',
|
|
18
|
+
'channels.getChannel',
|
|
19
|
+
'channels.getChannels',
|
|
20
|
+
'conversations.getConversations',
|
|
21
|
+
'conversations.getConversation',
|
|
22
|
+
'conversations.getUnread',
|
|
23
|
+
'conversationMessages.getMessage',
|
|
24
|
+
'conversationMessages.getMessages',
|
|
25
|
+
'inbox.getInbox',
|
|
26
|
+
'groups.getGroups',
|
|
27
|
+
'groups.getGroup',
|
|
28
|
+
'batch',
|
|
29
|
+
]);
|
|
30
|
+
export function isMutatingMethod(methodPath) {
|
|
31
|
+
return !KNOWN_SAFE_API_METHODS.has(methodPath);
|
|
32
|
+
}
|
|
33
|
+
export async function ensureWriteAllowed() {
|
|
34
|
+
const metadata = await getAuthMetadata();
|
|
35
|
+
if (metadata.authMode === 'read-only') {
|
|
36
|
+
throw new CliError('READ_ONLY', READ_ONLY_ERROR_MESSAGE, [
|
|
37
|
+
'Re-run: tdc auth login (without --read-only)',
|
|
38
|
+
]);
|
|
39
|
+
}
|
|
40
|
+
}
|
|
41
|
+
//# sourceMappingURL=permissions.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"permissions.js","sourceRoot":"","sources":["../../src/lib/permissions.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,eAAe,EAAE,MAAM,WAAW,CAAA;AAC3C,OAAO,EAAE,QAAQ,EAAE,MAAM,aAAa,CAAA;AAEtC,MAAM,CAAC,MAAM,uBAAuB,GAChC,sHAAsH,CAAA;AAE1H;;;GAGG;AACH,MAAM,sBAAsB,GAAG,IAAI,GAAG,CAAC;IACnC,sBAAsB;IACtB,0BAA0B;IAC1B,8BAA8B;IAC9B,kCAAkC;IAClC,4BAA4B;IAC5B,mBAAmB;IACnB,mBAAmB;IACnB,qBAAqB;IACrB,sBAAsB;IACtB,qBAAqB;IACrB,sBAAsB;IACtB,gCAAgC;IAChC,+BAA+B;IAC/B,yBAAyB;IACzB,iCAAiC;IACjC,kCAAkC;IAClC,gBAAgB;IAChB,kBAAkB;IAClB,iBAAiB;IACjB,OAAO;CACV,CAAC,CAAA;AAEF,MAAM,UAAU,gBAAgB,CAAC,UAAkB;IAC/C,OAAO,CAAC,sBAAsB,CAAC,GAAG,CAAC,UAAU,CAAC,CAAA;AAClD,CAAC;AAED,MAAM,CAAC,KAAK,UAAU,kBAAkB;IACpC,MAAM,QAAQ,GAAG,MAAM,eAAe,EAAE,CAAA;IACxC,IAAI,QAAQ,CAAC,QAAQ,KAAK,WAAW,EAAE,CAAC;QACpC,MAAM,IAAI,QAAQ,CAAC,WAAW,EAAE,uBAAuB,EAAE;YACrD,8CAA8C;SACjD,CAAC,CAAA;IACN,CAAC;AACL,CAAC"}
|
|
@@ -0,0 +1,29 @@
|
|
|
1
|
+
export type ProgressEvent = {
|
|
2
|
+
type: 'start' | 'api_call' | 'api_response' | 'complete' | 'error';
|
|
3
|
+
timestamp: string;
|
|
4
|
+
command?: string;
|
|
5
|
+
endpoint?: string;
|
|
6
|
+
cursor?: string | null;
|
|
7
|
+
count?: number;
|
|
8
|
+
has_more?: boolean;
|
|
9
|
+
next_cursor?: string | null;
|
|
10
|
+
error_code?: string;
|
|
11
|
+
message?: string;
|
|
12
|
+
};
|
|
13
|
+
export declare class ProgressTracker {
|
|
14
|
+
private enabled;
|
|
15
|
+
private outputStream;
|
|
16
|
+
constructor();
|
|
17
|
+
private checkAndInitialize;
|
|
18
|
+
isEnabled(): boolean;
|
|
19
|
+
emit(event: Omit<ProgressEvent, 'timestamp'>): void;
|
|
20
|
+
emitStart(command: string): void;
|
|
21
|
+
emitApiCall(endpoint: string, cursor?: string | null): void;
|
|
22
|
+
emitApiResponse(count: number, hasMore: boolean, nextCursor?: string | null): void;
|
|
23
|
+
emitComplete(): void;
|
|
24
|
+
emitError(errorCode?: string, message?: string): void;
|
|
25
|
+
close(): void;
|
|
26
|
+
}
|
|
27
|
+
export declare function getProgressTracker(): ProgressTracker;
|
|
28
|
+
export declare function resetProgressTracker(): void;
|
|
29
|
+
//# sourceMappingURL=progress.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"progress.d.ts","sourceRoot":"","sources":["../../src/lib/progress.ts"],"names":[],"mappings":"AAGA,MAAM,MAAM,aAAa,GAAG;IACxB,IAAI,EAAE,OAAO,GAAG,UAAU,GAAG,cAAc,GAAG,UAAU,GAAG,OAAO,CAAA;IAClE,SAAS,EAAE,MAAM,CAAA;IACjB,OAAO,CAAC,EAAE,MAAM,CAAA;IAChB,QAAQ,CAAC,EAAE,MAAM,CAAA;IACjB,MAAM,CAAC,EAAE,MAAM,GAAG,IAAI,CAAA;IACtB,KAAK,CAAC,EAAE,MAAM,CAAA;IACd,QAAQ,CAAC,EAAE,OAAO,CAAA;IAClB,WAAW,CAAC,EAAE,MAAM,GAAG,IAAI,CAAA;IAC3B,UAAU,CAAC,EAAE,MAAM,CAAA;IACnB,OAAO,CAAC,EAAE,MAAM,CAAA;CACnB,CAAA;AAED,qBAAa,eAAe;IACxB,OAAO,CAAC,OAAO,CAAQ;IACvB,OAAO,CAAC,YAAY,CAAsD;;IAM1E,OAAO,CAAC,kBAAkB;IAwB1B,SAAS,IAAI,OAAO;IAIpB,IAAI,CAAC,KAAK,EAAE,IAAI,CAAC,aAAa,EAAE,WAAW,CAAC,GAAG,IAAI;IAcnD,SAAS,CAAC,OAAO,EAAE,MAAM,GAAG,IAAI;IAIhC,WAAW,CAAC,QAAQ,EAAE,MAAM,EAAE,MAAM,CAAC,EAAE,MAAM,GAAG,IAAI,GAAG,IAAI;IAI3D,eAAe,CAAC,KAAK,EAAE,MAAM,EAAE,OAAO,EAAE,OAAO,EAAE,UAAU,CAAC,EAAE,MAAM,GAAG,IAAI,GAAG,IAAI;IASlF,YAAY,IAAI,IAAI;IAIpB,SAAS,CAAC,SAAS,CAAC,EAAE,MAAM,EAAE,OAAO,CAAC,EAAE,MAAM,GAAG,IAAI;IAIrD,KAAK,IAAI,IAAI;CAOhB;AAKD,wBAAgB,kBAAkB,IAAI,eAAe,CAKpD;AAED,wBAAgB,oBAAoB,IAAI,IAAI,CAK3C"}
|