@tocca-systems/twp-cli 0.45.0 → 0.47.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (75) hide show
  1. package/CHANGELOG.public.md +16 -0
  2. package/README.md +34 -7
  3. package/dist/{agent-loop-RMJXHBNG.js → agent-loop-XKH5YE6A.js} +1 -1
  4. package/dist/{ai-dispatch-L6XZCCU4.js → ai-dispatch-FGVNSM6L.js} +2 -2
  5. package/dist/{api-command-6C3MFXVU.js → api-command-PQ435C3B.js} +2 -2
  6. package/dist/{app-6DA35MYO.js → app-227MZT5L.js} +3 -3
  7. package/dist/{backlog-Q7VYDMDL.js → backlog-F6TNQG4I.js} +1 -1
  8. package/dist/chunk-3AD2T6L2.js +64 -0
  9. package/dist/{chunk-JNPCHV7S.js → chunk-3B5PVPGU.js} +1 -1
  10. package/dist/{chunk-XUNFV6ZQ.js → chunk-4ZTWRAHM.js} +1 -1
  11. package/dist/{chunk-QV6DH37Q.js → chunk-ACPGM5KP.js} +1 -1
  12. package/dist/{chunk-IOCNJMVW.js → chunk-AUAZP2G7.js} +5 -5
  13. package/dist/{chunk-XTREYDO5.js → chunk-CEBL5R62.js} +1 -1
  14. package/dist/{chunk-JLNY7HRM.js → chunk-DPGQ36DA.js} +1 -1
  15. package/dist/{chunk-N6AXAGS2.js → chunk-EZGN7PTO.js} +1 -1
  16. package/dist/{chunk-NAAMNYX3.js → chunk-JBX4OEHV.js} +1 -1
  17. package/dist/{chunk-G2THOTBW.js → chunk-JTJWDV5U.js} +1 -1
  18. package/dist/{chunk-EWTFE233.js → chunk-KPXJALCL.js} +1 -1
  19. package/dist/{chunk-DVKPGJMS.js → chunk-LKS7GANP.js} +1 -1
  20. package/dist/{chunk-EM3SDCCU.js → chunk-LLOXVVFK.js} +15 -14
  21. package/dist/{chunk-L25UV7DE.js → chunk-LUQ2KE6Y.js} +1 -1
  22. package/dist/{chunk-Y4SREWAG.js → chunk-MXKAEPXA.js} +1 -1
  23. package/dist/{chunk-XXVYGQ72.js → chunk-P7JCZYAI.js} +1 -1
  24. package/dist/{chunk-O3UQPM6L.js → chunk-PSWDEV6M.js} +1 -1
  25. package/dist/{chunk-ZM3MTWNT.js → chunk-SA7A5WF2.js} +1 -1
  26. package/dist/{chunk-AITUMFCH.js → chunk-TKGVAWGU.js} +1 -1
  27. package/dist/{chunk-YPMT453N.js → chunk-VIU2HPWM.js} +1 -1
  28. package/dist/chunk-WPY6OQOT.js +9 -0
  29. package/dist/{chunk-D5FEOBB6.js → chunk-XWW63XJJ.js} +44 -35
  30. package/dist/{chunk-7GSTR64T.js → chunk-ZFTKBOGN.js} +1 -1
  31. package/dist/{chunk-DS5TH5YQ.js → chunk-ZTIR3NSH.js} +1 -1
  32. package/dist/cli.js +35 -8
  33. package/dist/{commands-5GP3REIU.js → commands-EIWS357Q.js} +44 -41
  34. package/dist/{commands-JUD4ZNWT.js → commands-SWR442MR.js} +1 -1
  35. package/dist/{company-UTEAM246.js → company-X37NKBWH.js} +2 -2
  36. package/dist/{contract-GUY73GRP.js → contract-YRMK73XV.js} +1 -1
  37. package/dist/{department-QMTJYMN2.js → department-WKV46OIM.js} +1 -1
  38. package/dist/{deposit-FOATHWXV.js → deposit-75KCQBCE.js} +1 -1
  39. package/dist/{estimate-6UWI7SKV.js → estimate-LA7WXYTV.js} +2 -2
  40. package/dist/{inquiry-3VBBJT2K.js → inquiry-NHDMHZXX.js} +1 -1
  41. package/dist/{invoice-FOZJR42A.js → invoice-WVCRD2MT.js} +2 -2
  42. package/dist/{job-title-IIRFPZNV.js → job-title-FSVZSCMO.js} +1 -1
  43. package/dist/{knowledge-6SXUV46K.js → knowledge-J6TFEPMP.js} +1 -1
  44. package/dist/{leave-LQAXN6F4.js → leave-MWDZOGQH.js} +1 -1
  45. package/dist/media-66FCDEMZ.js +125 -0
  46. package/dist/{notification-NTU3JCR2.js → notification-ZZV4M24X.js} +1 -1
  47. package/dist/onedrive-3OBI4B5Z.js +51 -0
  48. package/dist/{oneshot-67EDIE2F.js → oneshot-C2GOGRLM.js} +1 -1
  49. package/dist/outlook-LY6WBXIJ.js +94 -0
  50. package/dist/{position-WGLV3JZ6.js → position-G24ALWEO.js} +1 -1
  51. package/dist/{project-REBUFMPX.js → project-WKWOVDVA.js} +1 -1
  52. package/dist/{prospect-DJAJNTRQ.js → prospect-SS2Z4UNJ.js} +1 -1
  53. package/dist/{purchase-7RVUWXMS.js → purchase-YPTIOSG6.js} +2 -2
  54. package/dist/{receivable-SHRWUYJW.js → receivable-G7TYHCBD.js} +1 -1
  55. package/dist/{registry-CP4LGNGZ.js → registry-RPVLCPFY.js} +1 -1
  56. package/dist/{render-4L5BDU3B.js → render-R5QZ46GF.js} +1 -1
  57. package/dist/{report-SUTO7E7Z.js → report-EILA6LJW.js} +1 -1
  58. package/dist/{run-NVS532DL.js → run-VGH3UT6R.js} +1 -1
  59. package/dist/{sales-ai-review-LC4XDQLS.js → sales-ai-review-57QGRYMZ.js} +1 -1
  60. package/dist/{sales-master-C4EYXIKP.js → sales-master-7SWNOWZS.js} +1 -1
  61. package/dist/{sales-numbering-YK447QBC.js → sales-numbering-TQS3PUV7.js} +1 -1
  62. package/dist/{schedule-command-7JGQMTQY.js → schedule-command-QCGEMBVR.js} +1 -1
  63. package/dist/{server-settings-3E7G56G7.js → server-settings-TUBJ4P57.js} +1 -1
  64. package/dist/{server-skills-OF7USNRM.js → server-skills-Z5DGCJQ7.js} +1 -1
  65. package/dist/{supplier-payment-MLLTGVCO.js → supplier-payment-IORFZDHV.js} +1 -1
  66. package/dist/{task-7SKWCZWV.js → task-TK37X5JF.js} +35 -30
  67. package/dist/teams-DRHXPLWN.js +93 -0
  68. package/dist/{user-FPXO3IHG.js → user-O4N3RNPO.js} +2 -2
  69. package/dist/{workflow-FU2EBVBW.js → workflow-JSBBY3V5.js} +1 -1
  70. package/package.json +1 -1
  71. package/dist/chunk-C2MQANJO.js +0 -9
  72. package/dist/media-VK6AUGZY.js +0 -63
  73. package/dist/onedrive-XAFONTRT.js +0 -16
  74. package/dist/outlook-PQ4OCB5Z.js +0 -98
  75. package/dist/teams-RDBKQJMM.js +0 -50
@@ -0,0 +1,93 @@
1
+ import { createRequire as __twpCreateRequire } from 'node:module';
2
+ const require = __twpCreateRequire(import.meta.url);
3
+ import{textToHtml}from"./chunk-3AD2T6L2.js";import"./chunk-Q3B65OFC.js";import{cursorFlag,graphData,graphListFlags,graphPaging,graphPagingHelp,graphPagingNotes,graphValue,ms365Forbidden,plainText,str,teamsFromText,topFlag}from"./chunk-QICH2OOI.js";import{readBody}from"./chunk-ORUDW52G.js";import{assertMs365PathSegment,ms365Path,ms365Segment}from"./chunk-3HH5IYNO.js";import{repeatedValues}from"./chunk-F7K37QG6.js";import"./chunk-QQRJLH6B.js";import{nonEmpty}from"./chunk-IOGMOXYF.js";
4
+ import{requireResolved,singleRef,withResolved}from"./chunk-LXIAOCUW.js";import{isRecord,pick}from"./chunk-VTQAI52S.js";import{ApiResponseError,UsageError}from"./chunk-UFND7FBC.js";import"./chunk-VSJBJXZO.js";var BODY_MAX_CHARS=1e5;var BODY_HEAD_CHARS=40;var USER_ID=/^[0-9a-f]{8}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{12}$/i;var INVISIBLE=/[\p{Cc}\p{Cf}]/u;var TEAM_FLAG={name:"--team",summary:"\u30C1\u30FC\u30E0\uFF08\u540D\u524D\u304B ID\uFF09",takesValue:true,placeholder:"<\u540D\u524D|ID>"};var CHANNEL_FLAG={name:"--channel",summary:"\u30C1\u30E3\u30CD\u30EB\uFF08\u540D\u524D\u304B ID\uFF09",takesValue:true,placeholder:"<\u540D\u524D|ID>"};var BODY_FILE_FLAG={name:"--body-file",summary:"\u672C\u6587\u3092\u30D5\
5
+ \u30A1\u30A4\u30EB\u304B\u3089\u8AAD\u3080\uFF08- \u3067\u6A19\u6E96\u5165\u529B\uFF09",takesValue:true,placeholder:"<\u30D1\u30B9|->"};var BODY_FLAG={name:"--body",summary:"\u672C\u6587\u3092\u76F4\u63A5\u6307\u5B9A\u3059\u308B\uFF08\u4E00\u884C\u5411\u3051\u3002--body-file \u3068\u306E\u4F75\u7528\u306F\u30A8\u30E9\u30FC\uFF09",takesValue:true,placeholder:"<\u6587\u5B57\u5217>"};var HTML_FLAG={name:"--html",summary:"\u672C\u6587\u3092 HTML \u3068\u3057\u3066\u9001\u308B\uFF08\u65E2\u5B9A\u306F\u30C6\u30AD\u30B9\u30C8\uFF09",
6
+ takesValue:false};var MENTION_FLAG={name:"--mention",summary:"\u30E1\u30F3\u30B7\u30E7\u30F3\u3059\u308B\u30E6\u30FC\u30B6\u30FC\uFF08<\u30E6\u30FC\u30B6\u30FCID>=<\u8868\u793A\u540D>\u3002\u672C\u6587\u306E @<\u8868\u793A\u540D> \u304C\u30E1\u30F3\u30B7\u30E7\u30F3\u306B\u306A\u308B\u30FB\u7E70\u308A\u8FD4\u3057\u53EF\uFF09",takesValue:true,placeholder:"<\u30E6\u30FC\u30B6\u30FCID>=<\u8868\u793A\u540D>",repeatable:true};var EXTERNAL_POST_HELP="\u26A0 \u5916\u90E8\u3078\u51FA\u308B\u64CD\u4F5C\u3067\u3059\u3002\u5B9F\u884C\u3057\u305F\u77AC\u9593\u306B\u30E1\u30F3\u30D0\u30FC\u3078\u901A\u77E5\u304C\u5C4A\u304D\u307E\u3059\uFF08CLI \u304B\u3089\u306F\u53D6\u308A\u6D88\u305B\u307E\u305B\u3093\uFF09\u3002\n \
7
+ --yes \u304C\u7121\u3051\u308C\u3070\u5B9F\u884C\u3057\u307E\u305B\u3093\u3002--dry-run \u3067\u9001\u4FE1\u5148\uFF08\u30C1\u30FC\u30E0\u30FB\u30C1\u30E3\u30CD\u30EB\u30FB\u30C1\u30E3\u30C3\u30C8\u306E\u8868\u793A\u540D\u3068 ID\uFF09\u3068\u672C\u6587\u3092\u78BA\u304B\u3081\u3066\u304B\u3089\n --yes \u3092\u4ED8\u3051\u3066\u304F\u3060\u3055\u3044\uFF08--dry-run \u306F --yes \u3092\u8981\u308A\u307E\u305B\u3093\uFF09\u3002\n\u26A0 \u7D42\u4E86\u30B3\u30FC\u30C9 4\uFF08\u901A\u4FE1\u306E\u5931\u6557\u30FB\u30B5\u30FC\u30D0\u306E\u4E00\u6642\u30A8\u30E9\u30FC\uFF09\u3067\u3082\u3001Teams \u5074\u3067\u306F\u6295\u7A3F\u6E08\u307F\u306E\u3053\u3068\u304C\u3042\u308A\u307E\u3059\u3002\n \u6253\u3061\u76F4\u3059\u524D\u306B twp teams message list\uFF08\u8FD4\u4FE1\u306F twp teams reply list\uFF09\u3067\u78BA\u8A8D\u3057\u3066\u304F\u3060\u3055\u3044\u3002";
8
+ var BODY_HELP="\u672C\u6587\u306F --body-file <\u30D1\u30B9>\uFF08- \u3067\u6A19\u6E96\u5165\u529B\uFF09\u304B --body <\u6587\u5B57\u5217> \u3067\u6E21\u3057\u307E\u3059\u3002\u6539\u884C\u3084\u8A18\u53F7\u3092\u542B\u3080\u672C\u6587\u306F\n--body-file \u3092\u4F7F\u3063\u3066\u304F\u3060\u3055\u3044\uFF08\u30B7\u30A7\u30EB\u306E\u5F15\u6570\u306B\u8F09\u305B\u308B\u3068\u58CA\u308C\u307E\u3059\uFF09\u3002\n\u672C\u6587\u306F\u65E2\u5B9A\u3067\u30C6\u30AD\u30B9\u30C8\u3068\u3057\u3066\u6271\u3044\u3001\u6539\u884C\u3068\u8A18\u53F7\u304C\u898B\u305F\u3068\u304A\u308A\u306B\u8868\u793A\u3055\u308C\u308B\u3088\u3046 HTML \u306B\u76F4\u3057\u3066\u9001\u308A\u307E\u3059\n\uFF08--dry-run \u306E body \u306B\u5909\u63DB\u5F8C\u306E\u5024\u304C\u51FA\u307E\u3059\uFF09\u3002--html \u3092\u4ED8\u3051\u308B\u3068 HTML \u3068\u3057\u3066\u305D\u306E\u307E\u307E\u9001\u308A\u307E\u3059\u3002";
9
+ var MENTION_HELP="\u30E1\u30F3\u30B7\u30E7\u30F3\u306F --mention <\u30E6\u30FC\u30B6\u30FCID>=<\u8868\u793A\u540D> \u3067\u6307\u5B9A\u3057\u307E\u3059\uFF08\u7E70\u308A\u8FD4\u3057\u3066\u8907\u6570\uFF09\u3002\u672C\u6587\u4E2D\u306E\u6700\u521D\u306E\u300C@<\u8868\u793A\u540D>\u300D\u304C\n\u30E1\u30F3\u30B7\u30E7\u30F3\u306B\u7F6E\u304D\u63DB\u308F\u308A\u307E\u3059\u3002\u672C\u6587\u306B\u300C@<\u8868\u793A\u540D>\u300D\u304C\u7121\u3051\u308C\u3070\u9001\u308A\u307E\u305B\u3093\u3002\u30E6\u30FC\u30B6\u30FCID \u306F\ntwp teams member list --team \u2026 \u306E userId\uFF08\u30C1\u30E3\u30C3\u30C8\u306A\u3089 twp teams chat list --output json \u306E members[].userId\uFF09\u3067\u3059\u3002";
10
+ function mentions(input){const seen=new Set;return repeatedValues(input,"--mention").map(raw=>{const eq=raw.indexOf("=");const userId=eq<0?"":raw.slice(0,eq).trim();const name=eq<0?"":raw.slice(eq+1).trim();if(!USER_ID.test(userId)||name===""||INVISIBLE.test(name)){throw new UsageError(`--mention \u306F <\u30E6\u30FC\u30B6\u30FCID>=<\u8868\u793A\u540D> \u306E\u5F62\u3067\u6307\u5B9A\u3057\u3066\u304F\u3060\u3055\u3044\uFF08\u53D7\u3051\u53D6\u3063\u305F\u5024: ${raw}\uFF09`,"\u30E6\u30FC\u30B6\u30FCID \u306F twp teams m\
11
+ ember list --team \u2026 \u306E userId\uFF08GUID\uFF09\u3067\u3059\u3002\u540D\u524D\u304B\u3089\u306F\u63A2\u3057\u307E\u305B\u3093\u3002")}const key=userId.toLowerCase();if(seen.has(key))throw new UsageError(`--mention \u306B\u540C\u3058\u30E6\u30FC\u30B6\u30FC\u304C2\u56DE\u6307\u5B9A\u3055\u308C\u3066\u3044\u307E\u3059: ${userId}`);seen.add(key);return{userId,name}})}function escapeHtml(value){return value.replace(/&/g,"&amp;").replace(/</g,"&lt;").replace(/>/g,"&gt;").replace(/"/g,"&quot;")}
12
+ function mentionIndex(text,needle,from=0){const at=text.indexOf(needle,from);if(at<0)return-1;return/[A-Za-z0-9_]/.test(text.charAt(at+needle.length))?mentionIndex(text,needle,at+1):at}function buildContent(body,html,list){let rest=html?body:textToHtml(body);let done="";const pending=list.map((m,id)=>({...m,id,needle:`@${escapeHtml(m.name)}`}));while(pending.length>0){let best=-1;let bestIndex=Infinity;pending.forEach((m2,i)=>{const at=mentionIndex(rest,m2.needle);if(at>=0&&(at<bestIndex||at===bestIndex&&
13
+ m2.needle.length>(pending[best]?.needle.length??0))){bestIndex=at;best=i}});if(best<0){const missing=pending.map(m2=>`@${m2.name}`).join("\u3001");throw new UsageError(`\u672C\u6587\u306B ${missing} \u304C\u3042\u308A\u307E\u305B\u3093\uFF08--mention \u306E\u8868\u793A\u540D\u3068\u540C\u3058\u6587\u5B57\u5217\u3092\u672C\u6587\u306B\u66F8\u3044\u3066\u304F\u3060\u3055\u3044\uFF09`,"\u30E1\u30F3\u30B7\u30E7\u30F3\u306F\u672C\u6587\u4E2D\u306E\u300C@<\u8868\u793A\u540D>\u300D\u3092\u7F6E\u304D\u63DB\u3048\u3066\u4ED8\u3051\u307E\u3059\u3002")}
14
+ const m=pending.splice(best,1)[0];done+=`${rest.slice(0,bestIndex)}<at id="${m.id}">${escapeHtml(m.name)}</at>`;rest=rest.slice(bestIndex+m.needle.length)}return done+rest}function mentionPayload(list){return list.map((m,id)=>({id,mentionText:m.name,mentioned:{user:{id:m.userId,displayName:m.name,userIdentityType:"aadUser"}}}))}async function readContent(input,usage,label){const list=mentions(input);const body=await readBody(input,{flag:"--body",fileFlag:"--body-file",label,maxChars:BODY_MAX_CHARS,
15
+ usage});if(body===void 0||body.trim()==="")throw new UsageError("\u672C\u6587\uFF08--body-file \u304B --body\uFF09\u3092\u6307\u5B9A\u3057\u3066\u304F\u3060\u3055\u3044",usage);return{body,content:buildContent(body,input.flags.has("--html"),list),mentions:JSON.stringify(list)}}function requestBody(input){const list=JSON.parse(requireResolved(input,"mentions"));return{body:{contentType:"html",content:requireResolved(input,"content")},...list.length>0?{mentions:mentionPayload(list)}:{}}}function oneLine(value){
16
+ return value.replace(/[\r\n\t]+/g," ").replace(/[\p{Cc}\p{Cf}]/gu,"")}function bodyHead(input){const text=oneLine(requireResolved(input,"body")).trim();const chars=[...text];return chars.length>BODY_HEAD_CHARS?`${chars.slice(0,BODY_HEAD_CHARS).join("")}\u2026`:text}function contentNotes(input){const list=JSON.parse(requireResolved(input,"mentions"));const kind=input.flags.has("--html")?"HTML":"\u30C6\u30AD\u30B9\u30C8";const mention=list.length===0?"\u306A\u3057":list.map(m=>`${oneLine(m.name)}\uFF08${m.
17
+ userId}\uFF09`).join("\u3001");return`\u672C\u6587: ${kind} ${[...requireResolved(input,"body")].length} \u6587\u5B57\u300C${bodyHead(input)}\u300D / \u30E1\u30F3\u30B7\u30E7\u30F3: ${mention}`}async function resolveChannelTarget(input,ctx,usage){const teamRef=input.flags.get("--team")?.trim();if(teamRef===void 0||teamRef==="")throw new UsageError("--team \u3067\u30C1\u30FC\u30E0\uFF08\u540D\u524D\u304B ID\uFF09\u3092\u6307\u5B9A\u3057\u3066\u304F\u3060\u3055\u3044",usage);const channelRef=input.
18
+ flags.get("--channel")?.trim();if(channelRef===void 0||channelRef==="")throw new UsageError("--channel \u3067\u30C1\u30E3\u30CD\u30EB\uFF08\u540D\u524D\u304B ID\uFF09\u3092\u6307\u5B9A\u3057\u3066\u304F\u3060\u3055\u3044",usage);const team=await ctx.resolver.ms365Team(teamRef);const channel=await ctx.resolver.ms365Channel(team.id,channelRef);return{teamId:team.id,teamName:team.name,channelId:channel.id,channelName:channel.name}}function channelPath(input){const team=ms365Segment(requireResolved(
19
+ input,"teamId"),"\u30C1\u30FC\u30E0 ID");const channel=ms365Segment(requireResolved(input,"channelId"),"\u30C1\u30E3\u30CD\u30EB ID");return`/teams/teams/${team}/channels/${channel}`}function channelText(input){return`\u30C1\u30FC\u30E0\u300C${oneLine(requireResolved(input,"teamName"))}\u300D\uFF08${requireResolved(input,"teamId")}\uFF09 / \u30C1\u30E3\u30CD\u30EB\u300C${oneLine(requireResolved(input,"channelName"))}\u300D\uFF08${requireResolved(input,"channelId")}\uFF09`}function posted(body,label){
20
+ const data=isRecord(body)?body["data"]:void 0;if(!isRecord(body)||body["result"]!==true||!isRecord(data)||str(data["id"])===null){throw new ApiResponseError(`${label}\u306E\u5FDC\u7B54\u304C\u60F3\u5B9A\u306E\u5F62\u3067\u306F\u3042\u308A\u307E\u305B\u3093\uFF08\u6295\u7A3F\u306E id \u304C\u3042\u308A\u307E\u305B\u3093\uFF09\u3002Teams \u4E0A\u3067\u6295\u7A3F\u306E\u6709\u7121\u3092\u78BA\u8A8D\u3057\u3066\u304F\u3060\u3055\u3044\u3002`)}return data}function postedSummary(body,label){const data=posted(
21
+ body,label);return{sent:true,id:data["id"],createdDateTime:data["createdDateTime"]??null,webUrl:data["webUrl"]??null}}var messageSend={name:"send",summary:"\u30C1\u30E3\u30C3\u30C8\u306B\u30E1\u30C3\u30BB\u30FC\u30B8\u3092\u9001\u308B\uFF0F\u30C1\u30E3\u30CD\u30EB\u306B\u6295\u7A3F\u3059\u308B\uFF08--yes \u304C\u5FC5\u8981\uFF09",usage:"twp teams message send (--chat <ID> | --team <\u540D\u524D|ID> --channel <\u540D\u524D|ID>) (--body-file <\u30D1\u30B9> | --body <\u6587\u5B57\u5217>) [--html] [--mention <\u30E6\u30FC\u30B6\u30FCID>=<\u8868\u793A\u540D> \u2026] --yes",
22
+ description:`${EXTERNAL_POST_HELP}
23
+
24
+ --chat\uFF08\u30C1\u30E3\u30C3\u30C8\uFF09\u304B\u3001--team \u3068 --channel\uFF08\u30C1\u30E3\u30CD\u30EB\u3078\u306E\u65B0\u3057\u3044\u6295\u7A3F\uFF09\u306E\u3069\u3061\u3089\u304B\u4E00\u65B9\u3092\u6307\u5B9A\u3057\u307E\u3059\u3002
25
+ \u30C1\u30E3\u30C3\u30C8\u306F ID \u3060\u3051\u3067\u6307\u5B9A\u3057\u307E\u3059\uFF08twp teams chat list \u306E id\uFF09\u3002\u30C1\u30FC\u30E0\u30FB\u30C1\u30E3\u30CD\u30EB\u306F\u540D\u524D\u3067\u3082 ID \u3067\u3082\u6307\u5B9A\u3067\u304D\u3001
26
+ \u3069\u3061\u3089\u306E\u5834\u5408\u3082\u53C2\u52A0\u3057\u3066\u3044\u308B\u30C1\u30FC\u30E0\u30FB\u30C1\u30E3\u30CD\u30EB\u306E\u4E00\u89A7\u3067\u5F15\u304D\u76F4\u3057\u3066\u8868\u793A\u540D\u3092\u9001\u308B\u524D\u306B\u8868\u793A\u3057\u307E\u3059\u3002
27
+ \u30C1\u30E3\u30CD\u30EB\u306E\u30B9\u30EC\u30C3\u30C9\u3078\u8FD4\u4FE1\u3059\u308B\u3068\u304D\u306F twp teams reply send \u3092\u4F7F\u3044\u307E\u3059\u3002
28
+
29
+ ${BODY_HELP}
30
+
31
+ `+MENTION_HELP,destructive:true,confirmation:"\u5916\u90E8\u3078 Teams \u306E\u30E1\u30C3\u30BB\u30FC\u30B8\u3092\u6295\u7A3F\u3059\u308B\u64CD\u4F5C\uFF08\u30E1\u30F3\u30D0\u30FC\u3078\u901A\u77E5\u304C\u5C4A\u304D\u307E\u3059\uFF09",flags:[{name:"--chat",summary:"\u30C1\u30E3\u30C3\u30C8ID\uFF08twp teams chat list \u306E id\uFF09",takesValue:true,placeholder:"<ID>"},TEAM_FLAG,CHANNEL_FLAG,BODY_FILE_FLAG,BODY_FLAG,HTML_FLAG,MENTION_FLAG],forbidden:ms365Forbidden,async prepare(input,ctx){const usage="\
32
+ twp teams message send help";if(input.args.length>0)throw new UsageError(`\u4F4D\u7F6E\u5F15\u6570\u306F\u53D7\u3051\u4ED8\u3051\u307E\u305B\u3093: ${input.args.join(" ")}`,usage);const chat=input.flags.get("--chat");const hasChannel=input.flags.has("--team")||input.flags.has("--channel");if(chat!==void 0&&hasChannel)throw new UsageError("--chat \u3068 --team / --channel \u306F\u540C\u6642\u306B\u6307\u5B9A\u3067\u304D\u307E\u305B\u3093",usage);if(chat===void 0&&!hasChannel)throw new UsageError(
33
+ "--chat \u304B\u3001--team \u3068 --channel \u3092\u6307\u5B9A\u3057\u3066\u304F\u3060\u3055\u3044",usage);const chatId=chat===void 0?void 0:assertMs365PathSegment(chat.trim(),"\u30C1\u30E3\u30C3\u30C8ID");const content=await readContent(input,usage,"\u30E1\u30C3\u30BB\u30FC\u30B8\u306E\u672C\u6587");if(chatId!==void 0)return withResolved(input,{...content,chatId});return withResolved(input,{...content,...await resolveChannelTarget(input,ctx,usage)})},plan(input){const chatId=input.resolved?.["c\
34
+ hatId"];const path=chatId!==void 0?`/teams/chats/${ms365Segment(chatId,"\u30C1\u30E3\u30C3\u30C8ID")}/messages`:`${channelPath(input)}/messages`;return{method:"POST",path:ms365Path(path),body:requestBody(input)}},plannedNotes(input){const chatId=input.resolved?.["chatId"];const where=chatId!==void 0?`\u30C1\u30E3\u30C3\u30C8\uFF08${chatId}\u30FB\u540D\u524D\u306F\u8868\u793A\u3067\u304D\u307E\u305B\u3093\u3002twp teams chat list \u3067\u78BA\u304B\u3081\u3066\u304F\u3060\u3055\u3044\uFF09`:channelText(
35
+ input);return[`\u6295\u7A3F\u5148: ${where} / ${contentNotes(input)}`]},summarize:body=>postedSummary(body,"\u6295\u7A3F"),raw:body=>posted(body,"\u6295\u7A3F"),notes:()=>["\u6295\u7A3F\u3057\u307E\u3057\u305F\u3002webUrl \u3092\u958B\u304F\u3068 Teams \u4E0A\u306E\u6295\u7A3F\u3092\u78BA\u8A8D\u3067\u304D\u307E\u3059\u3002"]};var replySend={name:"send",summary:"\u30C1\u30E3\u30CD\u30EB\u6295\u7A3F\u306E\u30B9\u30EC\u30C3\u30C9\u3078\u8FD4\u4FE1\u3059\u308B\uFF08--yes \u304C\u5FC5\u8981\uFF09",usage:"\
36
+ twp teams reply send <\u6295\u7A3FID> --team <\u540D\u524D|ID> --channel <\u540D\u524D|ID> (--body-file <\u30D1\u30B9> | --body <\u6587\u5B57\u5217>) [--html] [--mention <\u30E6\u30FC\u30B6\u30FCID>=<\u8868\u793A\u540D> \u2026] --yes",description:`${EXTERNAL_POST_HELP}
37
+
38
+ \u6295\u7A3FID \u306F twp teams message list --team \u2026 --channel \u2026 \u306E id\uFF08replyToId \u304C\u7A7A\u306E\u884C\uFF1D\u30B9\u30EC\u30C3\u30C9\u306E\u6700\u521D\u306E\u6295\u7A3F\uFF09\u3067\u3059\u3002
39
+ \u30C1\u30FC\u30E0\u30FB\u30C1\u30E3\u30CD\u30EB\u306F\u540D\u524D\u3067\u3082 ID \u3067\u3082\u6307\u5B9A\u3067\u304D\u3001\u53C2\u52A0\u3057\u3066\u3044\u308B\u30C1\u30FC\u30E0\u30FB\u30C1\u30E3\u30CD\u30EB\u306E\u4E00\u89A7\u3067\u5F15\u304D\u76F4\u3057\u3066\u8868\u793A\u540D\u3092\u9001\u308B\u524D\u306B\u8868\u793A\u3057\u307E\u3059\u3002
40
+ \u30C1\u30E3\u30C3\u30C8\u306B\u306F\u8FD4\u4FE1\u306E\u30B9\u30EC\u30C3\u30C9\u304C\u3042\u308A\u307E\u305B\u3093\uFF08\u30C1\u30E3\u30C3\u30C8\u3078\u306F twp teams message send --chat \u3092\u4F7F\u3044\u307E\u3059\uFF09\u3002
41
+
42
+ ${BODY_HELP}
43
+
44
+ `+MENTION_HELP,destructive:true,confirmation:"\u5916\u90E8\u3078 Teams \u306E\u30E1\u30C3\u30BB\u30FC\u30B8\u3092\u6295\u7A3F\u3059\u308B\u64CD\u4F5C\uFF08\u30E1\u30F3\u30D0\u30FC\u3078\u901A\u77E5\u304C\u5C4A\u304D\u307E\u3059\uFF09",flags:[{name:"--message",summary:"\u6295\u7A3FID\uFF08\u4F4D\u7F6E\u5F15\u6570\u3068\u540C\u3058\u610F\u5473\uFF09",takesValue:true,placeholder:"<ID>"},TEAM_FLAG,CHANNEL_FLAG,BODY_FILE_FLAG,BODY_FLAG,HTML_FLAG,MENTION_FLAG],forbidden:ms365Forbidden,async prepare(input,ctx){
45
+ const usage="twp teams reply send help";const message=singleRef(input,{flag:"--message",label:"\u6295\u7A3FID",usage});const messageId=assertMs365PathSegment(message,"\u6295\u7A3FID");const content=await readContent(input,usage,"\u8FD4\u4FE1\u306E\u672C\u6587");return withResolved(input,{...content,messageId,...await resolveChannelTarget(input,ctx,usage)})},plan(input){const message=ms365Segment(requireResolved(input,"messageId"),"\u6295\u7A3FID");return{method:"POST",path:ms365Path(`${channelPath(
46
+ input)}/messages/${message}/replies`),body:requestBody(input)}},plannedNotes:input=>[`\u8FD4\u4FE1\u5148: ${channelText(input)} / \u6295\u7A3F ${requireResolved(input,"messageId")} / ${contentNotes(input)}`],summarize:body=>postedSummary(body,"\u8FD4\u4FE1"),raw:body=>posted(body,"\u8FD4\u4FE1"),notes:()=>["\u8FD4\u4FE1\u3057\u307E\u3057\u305F\u3002twp teams reply list <\u6295\u7A3FID> --team \u2026 --channel \u2026 \u3067\u78BA\u8A8D\u3067\u304D\u307E\u3059\u3002"]};var messageSendOperation=messageSend;
47
+ var replySendOperation=replySend;var MESSAGE_TOP_MAX=50;var CHAT_TOP_MAX=50;var MENTION_LIMIT_MAX=200;var TEAM_ID=/^[0-9a-f]{8}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{12}$/i;var CHANNEL_ID=/^19:[^\s]+@thread\.[A-Za-z0-9]+$/;var TEAM_COLUMNS=["id","displayName","description","visibility","isArchived"];var MEMBER_COLUMNS=["id","displayName","email","roles","userId"];var CHANNEL_COLUMNS=["id","displayName","membershipType","description","isArchived"];var CHAT_COLUMNS=["id","chatType","topic","members","lastUpdatedDateTime"];
48
+ var MESSAGE_COLUMNS=["id","createdDateTime","from","subject","text","replyToId"];var MENTION_COLUMNS=["created_at","scope","where","from","preview","is_unread","mention_type","message_id"];var FOLDER_COLUMNS=["driveId","id","name","webUrl"];var TEAM_FLAG2={name:"--team",summary:"\u30C1\u30FC\u30E0\uFF08\u540D\u524D\u304B ID\uFF09",takesValue:true,placeholder:"<\u540D\u524D|ID>"};var CHANNEL_FLAG2={name:"--channel",summary:"\u30C1\u30E3\u30CD\u30EB\uFF08\u540D\u524D\u304B ID\uFF09",takesValue:true,
49
+ placeholder:"<\u540D\u524D|ID>"};function messageRow(row){const source=isRecord(row)?row:{};return pick({...source,from:teamsFromText(source["from"]),text:plainText(source["body"])},MESSAGE_COLUMNS)}function chatRow(row){const source=isRecord(row)?row:{};const members=Array.isArray(source["members"])?source["members"].map(m=>isRecord(m)?str(m["displayName"]):null).filter(v=>v!==null):[];return pick({...source,members:members.length>0?members.join("\u3001"):null},CHAT_COLUMNS)}async function resolveTeam(input,ctx,usage){
50
+ const ref=input.flags.get("--team")?.trim();if(ref===void 0||ref==="")throw new UsageError("--team \u3067\u30C1\u30FC\u30E0\uFF08\u540D\u524D\u304B ID\uFF09\u3092\u6307\u5B9A\u3057\u3066\u304F\u3060\u3055\u3044",usage);if(TEAM_ID.test(ref))return ref.toLowerCase();return(await ctx.resolver.ms365Team(ref)).id}async function resolveChannel(input,ctx,teamId,usage){const ref=input.flags.get("--channel")?.trim();if(ref===void 0||ref==="")throw new UsageError("--channel \u3067\u30C1\u30E3\u30CD\u30EB\uFF08\u540D\u524D\u304B ID\uFF09\u3092\u6307\u5B9A\u3057\u3066\u304F\u3060\u3055\u3044",
51
+ usage);if(CHANNEL_ID.test(ref))return ref;return(await ctx.resolver.ms365Channel(teamId,ref)).id}function channelPath2(input){const team=ms365Segment(requireResolved(input,"teamId"),"\u30C1\u30FC\u30E0 ID");const channel=ms365Segment(requireResolved(input,"channelId"),"\u30C1\u30E3\u30CD\u30EB ID");return`/teams/teams/${team}/channels/${channel}`}function unreachableNextNotes(body,label){const next=graphData(body,label)["@odata.nextLink"];return next===void 0||next===null?[]:[`${label}\u306B\u306F\u7D9A\u304D\u304C\u3042\u308A\u307E\u3059\u304C\
52
+ \u3001\u3053\u306E\u4E00\u89A7\u306F\u7D9A\u304D\u3092\u53D6\u5F97\u3067\u304D\u307E\u305B\u3093\uFF08\u8868\u793A\u3057\u305F\u306E\u306F\u6700\u521D\u306E\u30DA\u30FC\u30B8\u3060\u3051\u3067\u3001\u5168\u4EF6\u3067\u306F\u3042\u308A\u307E\u305B\u3093\uFF09\u3002`]}var teamResource={name:"team",summary:"\u53C2\u52A0\u3057\u3066\u3044\u308B\u30C1\u30FC\u30E0",operations:[{name:"list",summary:"\u53C2\u52A0\u3057\u3066\u3044\u308B\u30C1\u30FC\u30E0\u3092\u4E00\u89A7\u3059\u308B",usage:"twp teams t\
53
+ eam list [--all]",description:"\u3053\u3053\u306B\u51FA\u308B id \u3068 displayName \u306F --team \u306B\u305D\u306E\u307E\u307E\u6E21\u305B\u307E\u3059\uFF08\u540D\u524D\u3067\u3082\u6307\u5B9A\u3067\u304D\u307E\u3059\uFF09\u3002\n\u3053\u306E\u4E00\u89A7\u306F\u4EF6\u6570\u3092\u6307\u5B9A\u3067\u304D\u307E\u305B\u3093\uFF08Microsoft 365 \u5074\u304C\u53D7\u3051\u4ED8\u3051\u306A\u3044\u305F\u3081 --limit \u304C\u3042\u308A\u307E\u305B\u3093\uFF09\u3002\n\n"+graphPagingHelp(null),flags:graphListFlags(
54
+ {limit:false}),forbidden:ms365Forbidden,paging:graphPaging({label:"\u30C1\u30FC\u30E0\u4E00\u89A7",kind:"skiptoken"}),plan(input){return{method:"GET",path:ms365Path("/teams/teams"),query:{skiptoken:cursorFlag(input,"skiptoken")}}},summarize:body=>graphValue(body,"\u30C1\u30FC\u30E0\u4E00\u89A7").map(row=>pick(row,TEAM_COLUMNS)),raw:body=>graphValue(body,"\u30C1\u30FC\u30E0\u4E00\u89A7"),notes:body=>graphPagingNotes(body,"\u30C1\u30FC\u30E0\u4E00\u89A7")}]};var memberResource={name:"member",summary:"\
55
+ \u30C1\u30FC\u30E0\u306E\u30E1\u30F3\u30D0\u30FC",operations:[{name:"list",summary:"\u30C1\u30FC\u30E0\u306E\u30E1\u30F3\u30D0\u30FC\u3092\u4E00\u89A7\u3059\u308B",usage:"twp teams member list --team <\u540D\u524D|ID>",description:"roles \u304C owner \u306E\u30E1\u30F3\u30D0\u30FC\u306F\u30C1\u30FC\u30E0\u306E\u6240\u6709\u8005\u3067\u3059\u3002\u3053\u306E\u4E00\u89A7\u306F\u30DA\u30FC\u30B8\u30F3\u30B0\u3092\u6301\u3061\u307E\u305B\u3093\u3002",flags:[TEAM_FLAG2],forbidden:ms365Forbidden,async prepare(input,ctx){
56
+ return withResolved(input,{teamId:await resolveTeam(input,ctx,"twp teams member list help")})},plan(input){return{method:"GET",path:ms365Path(`/teams/teams/${ms365Segment(requireResolved(input,"teamId"),"\u30C1\u30FC\u30E0 ID")}/members`)}},summarize:body=>graphValue(body,"\u30E1\u30F3\u30D0\u30FC\u4E00\u89A7").map(row=>pick(row,MEMBER_COLUMNS)),raw:body=>graphValue(body,"\u30E1\u30F3\u30D0\u30FC\u4E00\u89A7"),notes:body=>unreachableNextNotes(body,"\u30E1\u30F3\u30D0\u30FC\u4E00\u89A7")}]};var channelResource={
57
+ name:"channel",summary:"\u30C1\u30FC\u30E0\u306E\u30C1\u30E3\u30CD\u30EB\uFF08\u4E00\u89A7\u30FB\u30D5\u30A1\u30A4\u30EB\u306E\u7F6E\u304D\u5834\u6240\uFF09",operations:[{name:"list",summary:"\u30C1\u30FC\u30E0\u306E\u30C1\u30E3\u30CD\u30EB\u3092\u4E00\u89A7\u3059\u308B",usage:"twp teams channel list --team <\u540D\u524D|ID> [--all]",description:"\u3053\u3053\u306B\u51FA\u308B id \u3068 displayName \u306F --channel \u306B\u305D\u306E\u307E\u307E\u6E21\u305B\u307E\u3059\uFF08\u540D\u524D\u3067\u3082\u6307\u5B9A\u3067\u304D\u307E\u3059\uFF09\u3002\n\u3053\u306E\u4E00\u89A7\u306F\u4EF6\u6570\u3092\u6307\u5B9A\u3067\u304D\u307E\u305B\u3093\uFF08\u4E2D\u7D99\u304C\u53D7\u3051\u4ED8\u3051\u306A\u3044\u305F\u3081 --limit \u304C\u3042\u308A\u307E\u305B\u3093\uFF09\u3002\n\n"+
58
+ graphPagingHelp(null),flags:[TEAM_FLAG2,...graphListFlags({limit:false})],forbidden:ms365Forbidden,paging:graphPaging({label:"\u30C1\u30E3\u30CD\u30EB\u4E00\u89A7",kind:"skiptoken"}),async prepare(input,ctx){return withResolved(input,{teamId:await resolveTeam(input,ctx,"twp teams channel list help")})},plan(input){return{method:"GET",path:ms365Path(`/teams/teams/${ms365Segment(requireResolved(input,"teamId"),"\u30C1\u30FC\u30E0 ID")}/channels`),query:{skiptoken:cursorFlag(input,"skiptoken")}}},summarize:body=>graphValue(
59
+ body,"\u30C1\u30E3\u30CD\u30EB\u4E00\u89A7").map(row=>pick(row,CHANNEL_COLUMNS)),raw:body=>graphValue(body,"\u30C1\u30E3\u30CD\u30EB\u4E00\u89A7"),notes:body=>graphPagingNotes(body,"\u30C1\u30E3\u30CD\u30EB\u4E00\u89A7")},{name:"folder",summary:"\u30C1\u30E3\u30CD\u30EB\u306E\u30D5\u30A1\u30A4\u30EB\u306E\u7F6E\u304D\u5834\u6240\uFF08\u30C9\u30E9\u30A4\u30D6ID\u30FB\u30D5\u30A9\u30EB\u30C0ID\uFF09\u3092\u8868\u793A\u3059\u308B",usage:"twp teams channel folder --team <\u540D\u524D|ID> --channel <\u540D\u524D|ID>",
60
+ description:"\u30C1\u30E3\u30CD\u30EB\u306E\u300C\u30D5\u30A1\u30A4\u30EB\u300D\u30BF\u30D6\u306E\u5B9F\u4F53\uFF08SharePoint \u306E\u30D5\u30A9\u30EB\u30C0\uFF09\u3092\u8FD4\u3057\u307E\u3059\u3002\n\u51FA\u529B\u306E driveId \u3068 id \u3092\u4F7F\u3046\u3068\u3001\u4E2D\u8EAB\u3092 twp onedrive item list <id> --drive <driveId> \u3067\u4E00\u89A7\u3067\u304D\u307E\u3059\u3002",flags:[TEAM_FLAG2,CHANNEL_FLAG2],forbidden:ms365Forbidden,async prepare(input,ctx){const usage="twp teams channel fold\
61
+ er help";const teamId=await resolveTeam(input,ctx,usage);return withResolved(input,{teamId,channelId:await resolveChannel(input,ctx,teamId,usage)})},plan(input){return{method:"GET",path:ms365Path(`${channelPath2(input)}/filesFolder`)}},summarize(body){const data=graphData(body,"\u30C1\u30E3\u30CD\u30EB\u306E\u30D5\u30A9\u30EB\u30C0");const parent=isRecord(data["parentReference"])?data["parentReference"]:{};return pick({...data,driveId:parent["driveId"]??null},FOLDER_COLUMNS)},raw:body=>graphData(
62
+ body,"\u30C1\u30E3\u30CD\u30EB\u306E\u30D5\u30A9\u30EB\u30C0")}]};var chatResource={name:"chat",summary:"\u81EA\u5206\u304C\u53C2\u52A0\u3057\u3066\u3044\u308B\u30C1\u30E3\u30C3\u30C8",operations:[{name:"list",summary:"\u81EA\u5206\u304C\u53C2\u52A0\u3057\u3066\u3044\u308B\u30C1\u30E3\u30C3\u30C8\u3092\u4E00\u89A7\u3059\u308B\uFF08\u53C2\u52A0\u8005\u306E\u540D\u524D\u3064\u304D\uFF09",usage:"twp teams chat list [--limit <\u4EF6\u6570>] [--all]",description:`chatType \u306F oneOnOne\uFF081\u5BFE1\uFF09/ group\uFF08\u30B0\u30EB\u30FC\u30D7\uFF09\
63
+ / meeting\uFF08\u4F1A\u8B70\u306E\u30C1\u30E3\u30C3\u30C8\uFF09\u3067\u3059\u3002
64
+ members \u306B\u306F\u53C2\u52A0\u8005\u306E\u8868\u793A\u540D\u304C\u5165\u308A\u307E\u3059\uFF081\u5BFE1\u306E\u30C1\u30E3\u30C3\u30C8\u306F\u76F8\u624B\u3068\u81EA\u5206\u306E2\u4EBA\uFF09\u3002
65
+
66
+ \u30C1\u30E3\u30C3\u30C8\u306F\u540D\u524D\u3067\u306F\u6307\u5B9A\u3067\u304D\u307E\u305B\u3093\uFF08--chat \u306B\u306F id \u3092\u6E21\u3057\u307E\u3059\uFF09\u3002\u63A2\u3059\u3068\u304D\u306F --all \u3068 --query \u3092\u4F7F\u3044\u307E\u3059:
67
+ twp teams chat list --all --query "[?topic=='\u9031\u6B21\u5B9A\u4F8B'].id"
68
+ twp teams chat list --all --query "[?chatType=='oneOnOne' && members[?displayName=='\u5C71\u7530 \u592A\u90CE']].id"
69
+ \uFF08--query \u306F Graph \u306E\u751F\u30C7\u30FC\u30BF\u306B\u5F53\u3066\u307E\u3059\u3002members \u306F {displayName, email, ...} \u306E\u914D\u5217\u3067\u3059\uFF09
70
+
71
+ \u26A0 \u30C1\u30E3\u30C3\u30C8\u304C\u591A\u3044\u4EBA\u306F --all \u306B\u6642\u9593\u304C\u304B\u304B\u308A\u307E\u3059\uFF081\u30DA\u30FC\u30B8\u6700\u592725\u4EF6\u30021,500\u4EF6\u3067\u7D0470\u79D2\uFF09\u3002
72
+
73
+ `+graphPagingHelp(CHAT_TOP_MAX),flags:graphListFlags({limit:true}),forbidden:ms365Forbidden,paging:graphPaging({label:"\u30C1\u30E3\u30C3\u30C8\u4E00\u89A7",kind:"skiptoken"}),plan(input){return{method:"GET",path:ms365Path("/teams/chats"),query:{top:topFlag(input,CHAT_TOP_MAX),expand:"members",skiptoken:cursorFlag(input,"skiptoken")}}},summarize:body=>graphValue(body,"\u30C1\u30E3\u30C3\u30C8\u4E00\u89A7").map(chatRow),raw:body=>graphValue(body,"\u30C1\u30E3\u30C3\u30C8\u4E00\u89A7"),notes:body=>graphPagingNotes(
74
+ body,"\u30C1\u30E3\u30C3\u30C8\u4E00\u89A7")}]};var messageResource={name:"message",summary:"\u30C1\u30E3\u30C3\u30C8\u30FB\u30C1\u30E3\u30CD\u30EB\u306E\u30E1\u30C3\u30BB\u30FC\u30B8\uFF08\u4E00\u89A7\u30FB\u9001\u4FE1\uFF09",operations:[{name:"list",summary:"\u30C1\u30E3\u30C3\u30C8\u304B\u30C1\u30E3\u30CD\u30EB\u306E\u30E1\u30C3\u30BB\u30FC\u30B8\u3092\u4E00\u89A7\u3059\u308B",usage:"twp teams message list (--chat <ID> | --team <\u540D\u524D|ID> --channel <\u540D\u524D|ID>) [--limit <\u4EF6\u6570>] [--all]",
75
+ description:"--chat\uFF08\u30C1\u30E3\u30C3\u30C8\uFF09\u304B --team \u3068 --channel\uFF08\u30C1\u30E3\u30CD\u30EB\uFF09\u306E\u3069\u3061\u3089\u304B\u4E00\u65B9\u3092\u6307\u5B9A\u3057\u307E\u3059\u3002\n\n\u26A0 \u30C1\u30E3\u30CD\u30EB\u3067\u8FD4\u308B\u306E\u306F\u30B9\u30EC\u30C3\u30C9\u306E\u6700\u521D\u306E\u6295\u7A3F\u3060\u3051\u3067\u3059\u3002\u8FD4\u4FE1\u306F twp teams reply list <\u6295\u7A3F\u306Eid> \u3067\u8AAD\u307F\u307E\u3059\n \uFF08\u8981\u7D04\u5217\u306E replyToId \u304C\u7A7A\u306E\u884C\u304C\u6700\u521D\u306E\u6295\u7A3F\u3067\u3059\uFF09\u3002\n\n\u8981\u7D04\u5217\u306E text \u306F\u672C\u6587\u3092\u30D7\u30EC\u30FC\u30F3\u30C6\u30AD\u30B9\u30C8\u306B\u76F4\u3057\u305F\u3082\u306E\u3067\u3059\u3002\u5143\u306E HTML\u30FB\u30E1\u30F3\u30B7\u30E7\u30F3\u30FB\u30EA\u30A2\u30AF\u30B7\u30E7\u30F3\u306F\n--output json \u3067\u8AAD\u3081\u307E\u3059\u3002\n\n"+
76
+ graphPagingHelp(MESSAGE_TOP_MAX),flags:[{name:"--chat",summary:"\u30C1\u30E3\u30C3\u30C8ID\uFF08twp teams chat list \u306E id\uFF09",takesValue:true,placeholder:"<ID>"},TEAM_FLAG2,CHANNEL_FLAG2,...graphListFlags({limit:true})],forbidden:ms365Forbidden,paging:graphPaging({label:"\u30E1\u30C3\u30BB\u30FC\u30B8\u4E00\u89A7",kind:"skiptoken"}),async prepare(input,ctx){const usage="twp teams message list help";const chat=input.flags.get("--chat");const hasChannel=input.flags.has("--team")||input.flags.
77
+ has("--channel");if(chat!==void 0&&hasChannel){throw new UsageError("--chat \u3068 --team / --channel \u306F\u540C\u6642\u306B\u6307\u5B9A\u3067\u304D\u307E\u305B\u3093",usage)}if(chat!==void 0){return withResolved(input,{chatId:assertMs365PathSegment(chat.trim(),"\u30C1\u30E3\u30C3\u30C8ID")})}if(!hasChannel)throw new UsageError("--chat \u304B\u3001--team \u3068 --channel \u3092\u6307\u5B9A\u3057\u3066\u304F\u3060\u3055\u3044",usage);const teamId=await resolveTeam(input,ctx,usage);return withResolved(
78
+ input,{teamId,channelId:await resolveChannel(input,ctx,teamId,usage)})},plan(input){const chatId=input.resolved?.["chatId"];const path=chatId!==void 0?`/teams/chats/${ms365Segment(chatId,"\u30C1\u30E3\u30C3\u30C8ID")}/messages`:`${channelPath2(input)}/messages`;return{method:"GET",path:ms365Path(path),query:{top:topFlag(input,MESSAGE_TOP_MAX),skiptoken:cursorFlag(input,"skiptoken")}}},summarize:body=>graphValue(body,"\u30E1\u30C3\u30BB\u30FC\u30B8\u4E00\u89A7").map(messageRow),raw:body=>graphValue(
79
+ body,"\u30E1\u30C3\u30BB\u30FC\u30B8\u4E00\u89A7"),notes:body=>graphPagingNotes(body,"\u30E1\u30C3\u30BB\u30FC\u30B8\u4E00\u89A7")},messageSendOperation]};var replyResource={name:"reply",summary:"\u30C1\u30E3\u30CD\u30EB\u6295\u7A3F\u306E\u30B9\u30EC\u30C3\u30C9\u8FD4\u4FE1\uFF08\u4E00\u89A7\u30FB\u8FD4\u4FE1\uFF09",operations:[{name:"list",summary:"\u30C1\u30E3\u30CD\u30EB\u6295\u7A3F\u306E\u30B9\u30EC\u30C3\u30C9\u8FD4\u4FE1\u3092\u4E00\u89A7\u3059\u308B",usage:"twp teams reply list <\u6295\u7A3FID> --t\
80
+ eam <\u540D\u524D|ID> --channel <\u540D\u524D|ID> [--limit <\u4EF6\u6570>] [--all]",description:"\u6295\u7A3FID \u306F twp teams message list --team \u2026 --channel \u2026 \u306E id\uFF08replyToId \u304C\u7A7A\u306E\u884C\uFF09\u3067\u3059\u3002\n\u8FD4\u4FE1\u306E\u672C\u6587\u30FB\u30E1\u30F3\u30B7\u30E7\u30F3\u30FB\u30EA\u30A2\u30AF\u30B7\u30E7\u30F3\u306F\u3053\u306E\u4E00\u89A7\u3067\u3057\u304B\u8AAD\u3081\u307E\u305B\u3093\uFF08--output json \u306B\u5168\u9805\u76EE\u304C\u51FA\u307E\u3059\uFF09\u3002\n\n"+
81
+ graphPagingHelp(MESSAGE_TOP_MAX),flags:[{name:"--message",summary:"\u6295\u7A3FID\uFF08\u4F4D\u7F6E\u5F15\u6570\u3068\u540C\u3058\u610F\u5473\uFF09",takesValue:true,placeholder:"<ID>"},TEAM_FLAG2,CHANNEL_FLAG2,...graphListFlags({limit:true})],forbidden:ms365Forbidden,paging:graphPaging({label:"\u8FD4\u4FE1\u4E00\u89A7",kind:"skiptoken"}),async prepare(input,ctx){const usage="twp teams reply list help";const message=singleRef(input,{flag:"--message",label:"\u6295\u7A3FID",usage});const messageId=assertMs365PathSegment(
82
+ message,"\u6295\u7A3FID");const teamId=await resolveTeam(input,ctx,usage);return withResolved(input,{messageId,teamId,channelId:await resolveChannel(input,ctx,teamId,usage)})},plan(input){const message=ms365Segment(requireResolved(input,"messageId"),"\u6295\u7A3FID");return{method:"GET",path:ms365Path(`${channelPath2(input)}/messages/${message}/replies`),query:{top:topFlag(input,MESSAGE_TOP_MAX),skiptoken:cursorFlag(input,"skiptoken")}}},summarize:body=>graphValue(body,"\u8FD4\u4FE1\u4E00\u89A7").
83
+ map(messageRow),raw:body=>graphValue(body,"\u8FD4\u4FE1\u4E00\u89A7"),notes:body=>graphPagingNotes(body,"\u8FD4\u4FE1\u4E00\u89A7")},replySendOperation]};function mentionResult(body){const data=graphData(body,"\u30E1\u30F3\u30B7\u30E7\u30F3\u4E00\u89A7");if(!Array.isArray(data["mentions"])){throw new ApiResponseError("\u30E1\u30F3\u30B7\u30E7\u30F3\u4E00\u89A7\u306E\u5FDC\u7B54\u306B mentions \u914D\u5217\u304C\u3042\u308A\u307E\u305B\u3093\u3002\u63A5\u7D9A\u5148\u3092\u78BA\u8A8D\u3057\u3066\u304F\u3060\u3055\u3044\u3002")}
84
+ return data}function mentionRow(row){const source=isRecord(row)?row:{};const from=isRecord(source["from"])?str(source["from"]["display_name"]):null;const where=source["scope"]==="chat"?str(source["chat_topic"])??"\u30C1\u30E3\u30C3\u30C8":"\u30C1\u30E3\u30CD\u30EB";return pick({...source,from,where},MENTION_COLUMNS)}var mentionResource={name:"mention",summary:"\u81EA\u5206\u5B9B\u3066\u306E\u30E1\u30F3\u30B7\u30E7\u30F3\uFF08\u30C1\u30E3\u30C3\u30C8\u30FB\u30C1\u30E3\u30CD\u30EB\u6A2A\u65AD\uFF09",
85
+ operations:[{name:"list",summary:"\u81EA\u5206\u5B9B\u3066\u306E\u30E1\u30F3\u30B7\u30E7\u30F3\u3092\u4E00\u89A7\u3059\u308B\uFF08\u65E2\u5B9A\u306F\u76F4\u8FD17\u65E5\uFF09",usage:"twp teams mention list [--since <\u65E5\u6642>] [--until <\u65E5\u6642>] [--unread] [--scope chats|channels|all] [--limit <\u4EF6\u6570>] [--type <\u7A2E\u985E>]",description:"\u30C1\u30E3\u30C3\u30C8\u3068\u30C1\u30E3\u30CD\u30EB\u3092\u6A2A\u65AD\u3057\u3066\u3001\u81EA\u5206\u5B9B\u3066\uFF08\u500B\u4EBA\u30FB\u30BF\u30B0\u30FB\u30C1\u30E3\u30CD\u30EB\u5168\u4F53\uFF09\u306E\u30E1\u30F3\u30B7\u30E7\u30F3\u3092\u65B0\u3057\u3044\u9806\u306B\u8FD4\u3057\u307E\u3059\u3002\n\u65E2\u5B9A\u306E\u671F\u9593\u306F --until\uFF08\u65E2\u5B9A\u306F\u4ECA\uFF09\u304B\u3089\u9061\u3063\u30667\u65E5\u3067\u3059\u3002--since / --until \u306F 2026-10-01 \u3084\n2026-10-01T09:00:00+09:00 \u306E\u5F62\
86
+ \u3067\u6307\u5B9A\u3057\u307E\u3059\u3002\u65E5\u4ED8\u3060\u3051\u306A\u3089\u305D\u306E\u65E5\u306E 0\u6642\uFF08\u65E5\u672C\u6642\u9593\uFF09\u306A\u306E\u3067\u3001\n--until 2026-10-01 \u306F 10\u67081\u65E5\u3092\u542B\u307F\u307E\u305B\u3093\uFF08\u542B\u3081\u308B\u306A\u3089 --until 2026-10-02\uFF09\u3002\n--type \u306F user / tag / conversation \u3092\u30AB\u30F3\u30DE\u533A\u5207\u308A\u3067\u3002\n\n\u30B5\u30FC\u30D0\u304C\u8D70\u67FB\u3057\u3066\u7D50\u679C\u3092\u8FD4\u3059\u306E\u3067\u3001\u30DA\u30FC\u30B8\u30F3\u30B0\u306F\u3042\u308A\u307E\u305B\u3093\uFF08--all \u306F\u7121\u304F\u3001--limit \u306E\u65E2\u5B9A\u306F 50\u30FB\u4E0A\u9650\u306F 200\uFF09\u3002\n\u4E00\u81F4\u3057\u305F\u4EF6\u6570\u304C --limit \u3092\u8D85\u3048\u305F\u30FB\u8D70\u67FB\u304C\u6642\u9593\u3084\u4EF6\u6570\u306E\u4E0A\u9650\u306B\u9054\u3057\u305F\u30FB\u4E00\u90E8\u306E\u53D6\u5F97\u306B\u5931\u6557\u3057\u305F\u5834\u5408\u306F\u3001\n\u305D\u306E\u3053\u3068\u3092\u5FC5\u305A\u8868\u793A\u3057\u307E\u3059\uFF08\u8868\u793A\u304C\u7121\u3051\u308C\u3070\u53D6\u308A\u3053\u307C\u3057\u306F\u3042\u308A\u307E\u305B\u3093\uFF09\u3002\n\n--output json \u306F\u4EF6\u6570\u30FB\u8D70\u67FB\u7BC4\u56F2\u30FB\u6CE8\u8A18\u3092\u542B\u3080\u691C\u7D22\u7D50\u679C\u5168\u4F53\u3092\u51FA\u3057\u307E\u3059\uFF08\u4E00\u89A7\u306F mentions\uFF09\u3002\n\u30C1\u30E3\u30CD\u30EB\u6295\u7A3F\u306E\u672A\u8AAD\u306F Microsoft 365 \u304B\u3089\u53D6\u5F97\u3067\u304D\u306A\u3044\u305F\u3081\u3001is_unread \u304C null \u306B\u306A\u308A\u307E\u3059\uFF08--unread \u3067\u3082\u6B8B\u3057\u307E\u3059\uFF09\u3002",
87
+ flags:[{name:"--since",summary:"\u3053\u306E\u65E5\u6642\u4EE5\u964D\uFF08\u65E2\u5B9A\u306F --until \u306E7\u65E5\u524D\uFF09",takesValue:true,placeholder:"<\u65E5\u6642>"},{name:"--until",summary:"\u3053\u306E\u65E5\u6642\u307E\u3067\uFF08\u65E2\u5B9A\u306F\u4ECA\uFF09",takesValue:true,placeholder:"<\u65E5\u6642>"},{name:"--unread",summary:"\u672A\u8AAD\u3060\u3051\u306B\u3059\u308B",takesValue:false},{name:"--scope",summary:"\u63A2\u3059\u7BC4\u56F2\uFF08chats | channels | all\u30FB\u65E2\u5B9A all\uFF09",
88
+ takesValue:true,placeholder:"<\u7BC4\u56F2>"},{name:"--limit",summary:`\u8FD4\u3059\u4EF6\u6570\uFF08\u65E2\u5B9A 50\u30FB\u4E0A\u9650 ${MENTION_LIMIT_MAX}\uFF09`,takesValue:true,placeholder:"<\u4EF6\u6570>"},{name:"--type",summary:"\u30E1\u30F3\u30B7\u30E7\u30F3\u306E\u7A2E\u985E\uFF08user,tag,conversation\uFF09",takesValue:true,placeholder:"<\u7A2E\u985E>"}],forbidden:ms365Forbidden,plan(input){const since=nonEmpty(input.flags,"--since");const until=nonEmpty(input.flags,"--until");const at=raw=>raw===
89
+ void 0?NaN:Date.parse(/^\d{4}-\d{2}-\d{2}$/.test(raw.trim())?`${raw.trim()}T00:00:00+09:00`:raw.trim());if(!Number.isNaN(at(since))&&!Number.isNaN(at(until))&&at(since)>at(until)){throw new UsageError(`--until \u306F --since \u3088\u308A\u5F8C\u3092\u6307\u5B9A\u3057\u3066\u304F\u3060\u3055\u3044\uFF08--since ${String(since)} / --until ${String(until)}\uFF09`)}const scope=nonEmpty(input.flags,"--scope")?.trim();if(scope!==void 0&&!["chats","channels","all"].includes(scope)){throw new UsageError(
90
+ `--scope \u306B\u6307\u5B9A\u3067\u304D\u308B\u306E\u306F chats / channels / all \u3067\u3059\uFF08\u53D7\u3051\u53D6\u3063\u305F\u5024: ${scope}\uFF09`)}return{method:"GET",path:ms365Path("/teams/mentions"),query:{since,until,unread_only:input.flags.has("--unread")?"true":void 0,scope,limit:topFlag(input,MENTION_LIMIT_MAX),mention_types:nonEmpty(input.flags,"--type")}}},summarize:body=>mentionResult(body)["mentions"].map(mentionRow),raw:mentionResult,notes(body){const data=mentionResult(body);const out=[];
91
+ if(data["truncated"]===true){out.push(`\u4E00\u81F4\u3057\u305F ${String(data["matched_count"])} \u4EF6\u306E\u3046\u3061 ${String(data["returned_count"])} \u4EF6\u3060\u3051\u3092\u8868\u793A\u3057\u3066\u3044\u307E\u3059\uFF08--limit \u3067\u5897\u3084\u305B\u307E\u3059\u3002\u4E0A\u9650 ${MENTION_LIMIT_MAX}\uFF09\u3002`)}const exhausted=Array.isArray(data["budget_exhausted"])?data["budget_exhausted"].map(String):[];if(exhausted.length>0){out.push(`\u8D70\u67FB\u304C\u4E0A\u9650\u306B\u9054\u3057\u305F\u305F\u3081\u3001\u53D6\u308A\u3053\u307C\u3057\u304C\u3042\u308A\u3048\u307E\u3059\uFF08${exhausted.
92
+ join("\u3001")}\uFF09\u3002\u671F\u9593\u3092\u77ED\u304F\u3057\u3066\u304F\u3060\u3055\u3044\u3002`)}const errors=Array.isArray(data["errors"])?data["errors"]:[];if(errors.length>0){out.push(`${errors.length} \u4EF6\u306E\u53D6\u5F97\u306B\u5931\u6557\u3057\u305F\u305F\u3081\u3001\u305D\u306E\u5206\u306E\u30E1\u30F3\u30B7\u30E7\u30F3\u306F\u542B\u307E\u308C\u3066\u3044\u307E\u305B\u3093\uFF08--output json \u306E errors \u306B\u8A73\u7D30\u304C\u3042\u308A\u307E\u3059\uFF09\u3002`)}for(const note of Array.
93
+ isArray(data["notes"])?data["notes"]:[]){if(typeof note==="string"&&note!=="")out.push(note)}return out}}]};var teamsDomain={name:"teams",summary:"Microsoft Teams\uFF08\u30C1\u30FC\u30E0\u30FB\u30C1\u30E3\u30CD\u30EB\u30FB\u30C1\u30E3\u30C3\u30C8\u30FB\u30E1\u30C3\u30BB\u30FC\u30B8\u30FB\u30E1\u30F3\u30B7\u30E7\u30F3\uFF09",operations:[],subresources:[teamResource,memberResource,channelResource,chatResource,messageResource,replyResource,mentionResource]};export{teamsDomain};
@@ -1,7 +1,7 @@
1
1
  import { createRequire as __twpCreateRequire } from 'node:module';
2
2
  const require = __twpCreateRequire(import.meta.url);
3
- import{ASSIGNED_PROJECT_COLUMNS,assignedProjectItems}from"./chunk-XTREYDO5.js";import{USER_REF_FLAG,USER_REF_HELP,prepareUser,userPath}from"./chunk-IXFMXUNT.js";import{createFlags,fieldBody,hasAnyField,resolveRefFields,updateFlags}from"./chunk-JNPCHV7S.js";import"./chunk-E7MUDY4P.js";import"./chunk-YLXW7TIU.js";import"./chunk-4B3T4UE7.js";import{decodeCsvText,readCsvFileText}from"./chunk-OHXZO5WK.js";import{booleanText,boundedText,isoDate,isoDateValue}from"./chunk-XDHLO54T.js";
4
- import"./chunk-ORUDW52G.js";import{DEPARTMENTS_PATH,ORG_MASTER_LIMIT,POSITIONS_PATH}from"./chunk-D5FEOBB6.js";import{ResolveError,isSafePathSegment}from"./chunk-GMBJTG6A.js";import"./chunk-3HH5IYNO.js";import{repeatedValues}from"./chunk-F7K37QG6.js";import{ApiError}from"./chunk-IF2K4PM5.js";import"./chunk-4VZKNEVN.js";import"./chunk-QQRJLH6B.js";import"./chunk-II5RVJQN.js";import{LIST_FLAGS,LIST_PAGING_HELP,envelopePaging,flagSegment,nonEmpty,
3
+ import{ASSIGNED_PROJECT_COLUMNS,assignedProjectItems}from"./chunk-CEBL5R62.js";import{USER_REF_FLAG,USER_REF_HELP,prepareUser,userPath}from"./chunk-IXFMXUNT.js";import{createFlags,fieldBody,hasAnyField,resolveRefFields,updateFlags}from"./chunk-3B5PVPGU.js";import"./chunk-E7MUDY4P.js";import"./chunk-YLXW7TIU.js";import"./chunk-4B3T4UE7.js";import{decodeCsvText,readCsvFileText}from"./chunk-OHXZO5WK.js";import{booleanText,boundedText,isoDate,isoDateValue}from"./chunk-XDHLO54T.js";
4
+ import"./chunk-ORUDW52G.js";import{DEPARTMENTS_PATH,ORG_MASTER_LIMIT,POSITIONS_PATH}from"./chunk-XWW63XJJ.js";import{ResolveError,isSafePathSegment}from"./chunk-GMBJTG6A.js";import"./chunk-3HH5IYNO.js";import{repeatedValues}from"./chunk-F7K37QG6.js";import{ApiError}from"./chunk-IF2K4PM5.js";import"./chunk-4VZKNEVN.js";import"./chunk-QQRJLH6B.js";import"./chunk-II5RVJQN.js";import{LIST_FLAGS,LIST_PAGING_HELP,envelopePaging,flagSegment,nonEmpty,
5
5
  positiveInteger,shellQuote}from"./chunk-IOGMOXYF.js";import{requireResolved,singleRef,withResolved}from"./chunk-LXIAOCUW.js";import{isRecord,pick}from"./chunk-VTQAI52S.js";import{ApiRejectedError,ApiResponseError,UsageError}from"./chunk-UFND7FBC.js";import"./chunk-J7QYPKVK.js";import"./chunk-RZVI6PMW.js";import"./chunk-NHYMHCAT.js";import"./chunk-VSJBJXZO.js";import fs2 from"fs";var ASSIGNMENT_COLUMNS=["id","department_name","position_name","start_date","end_date","is_primary","is_current","is_approval_route","effective_status"];function assignmentRows(body){const response=isRecord(body)&&"response"in body?body["response"]:body;const list=isRecord(response)?response["list"]:void 0;if(!Array.isArray(list)){throw new ApiResponseError("\u6240\u5C5E\u4E00\u89A7\u306E\u5FDC\u7B54\u306B list \u914D\u5217\u304C\u3042\u308A\u307E\u305B\u3093\u3002\u63A5\u7D9A\u5148\u3092\u78BA\u8A8D\u3057\u3066\u304F\u3060\u3055\u3044\u3002")}
6
6
  return list}async function nameMap(ctx,path,label2){try{const body=await ctx.send({method:"GET",path,query:{limit:ORG_MASTER_LIMIT}});const list=isRecord(body)?body["list"]:void 0;if(!Array.isArray(list))throw new Error(`${label2}\u4E00\u89A7\u306E\u5FDC\u7B54\u306B list \u914D\u5217\u304C\u3042\u308A\u307E\u305B\u3093`);const count=isRecord(body)?body["count"]:void 0;if(typeof count==="number"&&count>list.length){ctx.warn(`${label2}\u4E00\u89A7\u304C ${count} \u4EF6\u4E2D ${list.length} \u4EF6\u3067\u5207\u308A\u8A70\u3081\u3089\
7
7
  \u308C\u305F\u305F\u3081\u3001\u4E00\u90E8\u306E${label2}\u540D\u306F\u7A7A\u6B04\u3067\u3059\u3002ID \u306F --output json \u3067\u78BA\u8A8D\u3067\u304D\u307E\u3059\u3002`)}const map={};for(const row of list){if(isRecord(row)&&typeof row["id"]==="string"&&typeof row["name"]==="string"){map[row["id"]]=row["name"]}}return map}catch(err){ctx.warn(`${label2}\u540D\u3092\u53D6\u5F97\u3067\u304D\u306A\u304B\u3063\u305F\u305F\u3081\u3001${label2}\u540D\u306E\u5217\u306F\u7A7A\u6B04\u3067\u3059\uFF08${err.
@@ -1,4 +1,4 @@
1
1
  import { createRequire as __twpCreateRequire } from 'node:module';
2
2
  const require = __twpCreateRequire(import.meta.url);
3
- import{applyInstancePlan,createInstancePlan,formColumns,parseInstanceContent,workflowDomain,writtenInstance}from"./chunk-7GSTR64T.js";import"./chunk-ORUDW52G.js";import"./chunk-D5FEOBB6.js";import"./chunk-GMBJTG6A.js";import"./chunk-3HH5IYNO.js";import"./chunk-IF2K4PM5.js";import"./chunk-4VZKNEVN.js";import"./chunk-II5RVJQN.js";import"./chunk-IOGMOXYF.js";import"./chunk-LXIAOCUW.js";import"./chunk-VTQAI52S.js";import"./chunk-UFND7FBC.js";
3
+ import{applyInstancePlan,createInstancePlan,formColumns,parseInstanceContent,workflowDomain,writtenInstance}from"./chunk-ZFTKBOGN.js";import"./chunk-ORUDW52G.js";import"./chunk-XWW63XJJ.js";import"./chunk-GMBJTG6A.js";import"./chunk-3HH5IYNO.js";import"./chunk-IF2K4PM5.js";import"./chunk-4VZKNEVN.js";import"./chunk-II5RVJQN.js";import"./chunk-IOGMOXYF.js";import"./chunk-LXIAOCUW.js";import"./chunk-VTQAI52S.js";import"./chunk-UFND7FBC.js";
4
4
  import"./chunk-J7QYPKVK.js";import"./chunk-RZVI6PMW.js";import"./chunk-NHYMHCAT.js";import"./chunk-VSJBJXZO.js";export{applyInstancePlan,createInstancePlan,formColumns,parseInstanceContent,workflowDomain,writtenInstance};
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@tocca-systems/twp-cli",
3
- "version": "0.45.0",
3
+ "version": "0.47.0",
4
4
  "description": "TWP CLI — Tocca Working Platform の CLI 型統合インターフェース(AIエージェントハーネス)",
5
5
  "type": "module",
6
6
  "bin": {
@@ -1,9 +0,0 @@
1
- import { createRequire as __twpCreateRequire } from 'node:module';
2
- const require = __twpCreateRequire(import.meta.url);
3
- var LOADERS={"agent-loop":async()=>(await import("./agent-loop-RMJXHBNG.js")).agentLoopDomain,"ai-review-reason":async()=>(await import("./sales-ai-review-LC4XDQLS.js")).aiReviewReasonDomain,analysis:async()=>(await import("./analysis-KUCETWIJ.js")).analysisDomain,attendance:async()=>(await import("./attendance-K2U7RYDU.js")).attendanceDomain,backlog:async()=>(await import("./backlog-Q7VYDMDL.js")).backlogDomain,budget:async()=>(await import("./budget-FOFE3YUJ.js")).budgetDomain,"busin\
4
- ess-place":async()=>(await import("./sales-master-C4EYXIKP.js")).businessPlaceDomain,company:async()=>(await import("./company-UTEAM246.js")).companyDomain,contract:async()=>(await import("./contract-GUY73GRP.js")).contractDomain,customer:async()=>(await import("./company-UTEAM246.js")).customerDomain,department:async()=>(await import("./department-QMTJYMN2.js")).departmentDomain,deposit:async()=>(await import("./deposit-FOATHWXV.js")).depositDomain,estimate:async()=>(await import("./estimate-6UWI7SKV.js")).
5
- estimateDomain,inquiry:async()=>(await import("./inquiry-3VBBJT2K.js")).inquiryDomain,invoice:async()=>(await import("./invoice-FOZJR42A.js")).invoiceDomain,"job-title":async()=>(await import("./job-title-IIRFPZNV.js")).jobTitleDomain,leave:async()=>(await import("./leave-LQAXN6F4.js")).leaveDomain,media:async()=>(await import("./media-VK6AUGZY.js")).mediaDomain,meeting:async()=>(await import("./knowledge-6SXUV46K.js")).meetingDomain,note:async()=>(await import("./knowledge-6SXUV46K.js")).
6
- noteDomain,notification:async()=>(await import("./notification-NTU3JCR2.js")).notificationDomain,onedrive:async()=>(await import("./onedrive-XAFONTRT.js")).onedriveDomain,outlook:async()=>(await import("./outlook-PQ4OCB5Z.js")).outlookDomain,payee:async()=>(await import("./sales-master-C4EYXIKP.js")).payeeDomain,position:async()=>(await import("./position-WGLV3JZ6.js")).positionDomain,project:async()=>(await import("./project-REBUFMPX.js")).projectDomain,prospect:async()=>(await import("./prospect-DJAJNTRQ.js")).
7
- prospectDomain,purchase:async()=>(await import("./purchase-7RVUWXMS.js")).purchaseDomain,receivable:async()=>(await import("./receivable-SHRWUYJW.js")).receivableDomain,report:async()=>(await import("./report-SUTO7E7Z.js")).reportDomain,"rounding-setting":async()=>(await import("./sales-numbering-YK447QBC.js")).roundingSettingDomain,"seal-impression":async()=>(await import("./sales-master-C4EYXIKP.js")).sealImpressionDomain,shift:async()=>(await import("./attendance-lists-NVRU2NLY.js")).shiftDomain,
8
- storage:async()=>(await import("./storage-KLLBENBY.js")).storageDomain,"supplier-payment":async()=>(await import("./supplier-payment-MLLTGVCO.js")).supplierPaymentDomain,task:async()=>(await import("./task-7SKWCZWV.js")).taskDomain,teams:async()=>(await import("./teams-RDBKQJMM.js")).teamsDomain,user:async()=>(await import("./user-FPXO3IHG.js")).userDomain,wiki:async()=>(await import("./knowledge-6SXUV46K.js")).wikiDomain,workchange:async()=>(await import("./attendance-lists-NVRU2NLY.js")).
9
- workchangeDomain,workflow:async()=>(await import("./workflow-FU2EBVBW.js")).workflowDomain};async function loadDomain(name){return LOADERS[name]()}export{loadDomain};
@@ -1,63 +0,0 @@
1
- import { createRequire as __twpCreateRequire } from 'node:module';
2
- const require = __twpCreateRequire(import.meta.url);
3
- import{contentTypeFor,inspectLocalFile}from"./chunk-HNUBM24L.js";import{checkUploadQuota}from"./chunk-2YNZ4MRT.js";import"./chunk-D5FEOBB6.js";import{isSafePathSegment}from"./chunk-GMBJTG6A.js";import"./chunk-3HH5IYNO.js";import"./chunk-IF2K4PM5.js";import"./chunk-4VZKNEVN.js";import"./chunk-GY7KI5E5.js";import"./chunk-II5RVJQN.js";import{LIST_FLAGS,LIST_PAGING_HELP,envelopePaging,nonEmpty,positiveInteger}from"./chunk-IOGMOXYF.js";import{
4
- requireResolved,singleRef,withResolved}from"./chunk-LXIAOCUW.js";import{isRecord,pick}from"./chunk-VTQAI52S.js";import{ApiRejectedError,ApiResponseError,UsageError}from"./chunk-UFND7FBC.js";import"./chunk-J7QYPKVK.js";import"./chunk-RZVI6PMW.js";import"./chunk-NHYMHCAT.js";import"./chunk-VSJBJXZO.js";import crypto from"crypto";import fs from"fs";import path from"path";var SCOPE_PERSONAL="personal";var SCOPE_PROJECT="project";var LIST_COLUMNS=["id","file_name","content_type","file_size","folder_id","public_status","updated_at"];var UPLOAD_COLUMNS=["id","file_name","content_type","file_size","folder_id","scope","content_hash"];var FILE_FLAG={name:"--file",summary:"\u30A2\u30C3\u30D7\u30ED\u30FC\u30C9\u3059\u308B\u30ED\u30FC\u30AB\u30EB\u30D5\u30A1\u30A4\u30EB\u306E\u30D1\u30B9\uFF08\u5FC5\u9808\uFF09",takesValue:true,placeholder:"<\u30D1\u30B9>"};var NAME_FLAG={
5
- name:"--name",summary:"\u4FDD\u5B58\u3059\u308B\u30D5\u30A1\u30A4\u30EB\u540D\uFF08\u7701\u7565\u6642\u306F\u30ED\u30FC\u30AB\u30EB\u306E\u30D5\u30A1\u30A4\u30EB\u540D\u3002\u540C\u540D\u304C\u3042\u308B\u3068\u30B5\u30FC\u30D0\u304C\u5225\u540D\u306B\u3057\u307E\u3059\uFF09",takesValue:true,placeholder:"<\u30D5\u30A1\u30A4\u30EB\u540D>"};var CONTENT_TYPE_FLAG={name:"--content-type",summary:"Content-Type\uFF08\u7701\u7565\u6642\u306F\u62E1\u5F35\u5B50\u304B\u3089\u63A8\u5B9A\u3002\u4E0D\u660E\u306A\u3089 application/octet-stream\uFF09",
6
- takesValue:true,placeholder:"<\u578B>"};var FOLDER_FLAG={name:"--folder",summary:"\u30D5\u30A9\u30EB\u30C0ID\uFF08\u7701\u7565\u6642\u306F\u30B9\u30B3\u30FC\u30D7\u306E\u6700\u4E0A\u4F4D\uFF09",takesValue:true,placeholder:"<\u30D5\u30A9\u30EB\u30C0ID>"};var MEDIA_PROJECT_FLAG={name:"--project",summary:"\u30D7\u30ED\u30B8\u30A7\u30AF\u30C8\u306E\u30D5\u30A1\u30A4\u30EB\u3092\u5BFE\u8C61\u306B\u3059\u308B\uFF08\u30B3\u30FC\u30C9\u307E\u305F\u306F ID\uFF09\u3002\u7701\u7565\u6642\u306F\u81EA\u5206\u306E\u500B\u4EBA\u30D5\u30A1\u30A4\u30EB",
7
- takesValue:true,placeholder:"<\u30B3\u30FC\u30C9|ID>"};var KEYWORD_FLAG={name:"--keyword",summary:"\u30D5\u30A1\u30A4\u30EB\u540D\u30FB\u5185\u5BB9\u306E\u30AD\u30FC\u30EF\u30FC\u30C9\u691C\u7D22\uFF08\u691C\u7D22\u6642\u306F\u30DA\u30FC\u30B8\u30F3\u30B0\u3057\u307E\u305B\u3093\uFF09",takesValue:true,placeholder:"<\u30AD\u30FC\u30EF\u30FC\u30C9>"};var FILE_REF_FLAG={name:"--id",summary:"\u30D5\u30A1\u30A4\u30EBID\u3002\u4F4D\u7F6E\u5F15\u6570\u3068\u540C\u3058\u610F\u5473\uFF08\u4E21\u65B9\u6307\u5B9A\u306F\u30A8\u30E9\u30FC\uFF09",
8
- takesValue:true,placeholder:"<\u30D5\u30A1\u30A4\u30EBID>"};var OUT_FLAG={name:"--out",summary:"\u66F8\u304D\u51FA\u3057\u5148\u306E\u30D5\u30A1\u30A4\u30EB\u30D1\u30B9\uFF08\u5FC5\u9808\u3002\u6A19\u6E96\u51FA\u529B\u3078\u306F\u51FA\u3057\u307E\u305B\u3093\uFF09",takesValue:true,placeholder:"<\u30D1\u30B9>"};var FORCE_FLAG={name:"--force",summary:"\u66F8\u304D\u51FA\u3057\u5148\u304C\u65E2\u306B\u3042\u308C\u3070\u4E0A\u66F8\u304D\u3059\u308B\uFF08\u65E2\u5B9A\u3067\u306F\u4E0A\u66F8\u304D\u3057\u306A\u3044\uFF09",
9
- takesValue:false};var UUID=/^[0-9a-f]{8}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{12}$/i;function folderId(input){const value=nonEmpty(input.flags,"--folder");if(value!==void 0&&!UUID.test(value)){throw new UsageError(`--folder \u306B\u306F\u30D5\u30A9\u30EB\u30C0ID\uFF08UUID\uFF09\u3092\u6307\u5B9A\u3057\u3066\u304F\u3060\u3055\u3044: ${value}`)}return value}async function resolveScope(input,ctx){const ref=nonEmpty(input.flags,"--project");if(ref===void 0)return{scope:SCOPE_PERSONAL};return{
10
- scope:SCOPE_PROJECT,scopeId:await ctx.projectId(ref)}}function fileRef(input,usage){const id=singleRef(input,{flag:"--id",label:"\u30D5\u30A1\u30A4\u30EBID",usage});if(!isSafePathSegment(id))throw new UsageError(`\u30D5\u30A1\u30A4\u30EBID \u306E\u5F62\u5F0F\u304C\u9055\u3044\u307E\u3059: ${id}`);return id}function filePath(id){return`/api/v2/media/files/${encodeURIComponent(id)}`}function listRows(body){const data=isRecord(body)?body["data"]:void 0;if(!Array.isArray(data)){throw new ApiResponseError(
11
- "\u30E1\u30C7\u30A3\u30A2\u4E00\u89A7\u306E\u5FDC\u7B54\u306B data \u914D\u5217\u304C\u3042\u308A\u307E\u305B\u3093\u3002\u63A5\u7D9A\u5148\u3092\u78BA\u8A8D\u3057\u3066\u304F\u3060\u3055\u3044\u3002")}return data}function dataOf(body,label){const data=isRecord(body)?body["data"]:void 0;if(!isRecord(data)){throw new ApiResponseError(`${label}\u306E\u5FDC\u7B54\u306B data \u304C\u3042\u308A\u307E\u305B\u3093\u3002\u63A5\u7D9A\u5148\u3092\u78BA\u8A8D\u3057\u3066\u304F\u3060\u3055\u3044\u3002`)}return data}
12
- function localFile(input){const raw=input.flags.get("--file");if(raw===void 0||raw.trim()===""){throw new UsageError("--file \u306F\u5FC5\u9808\u3067\u3059","twp media upload --file <\u30D1\u30B9>")}if(input.args.length>0){throw new UsageError(`upload \u306F\u4F4D\u7F6E\u5F15\u6570\u3092\u53D7\u3051\u53D6\u308A\u307E\u305B\u3093: ${input.args.join(" ")}`,"twp media upload --file <\u30D1\u30B9>")}const{file,size}=inspectLocalFile(raw,"--file","twp media upload --file <\u30D1\u30B9>");const nameFlag=nonEmpty(
13
- input.flags,"--name");const name=nameFlag??path.basename(file);const contentType=nonEmpty(input.flags,"--content-type")??contentTypeFor(name);return{file,name,size,contentType}}function uploadUrlPlan(input){const resolved=input.resolved??{};const body={file_name:requireResolved(input,"fileName"),content_type:requireResolved(input,"contentType"),file_size:Number(requireResolved(input,"fileSize")),scope:requireResolved(input,"scope")};if(resolved["scopeId"]!==void 0)body["scope_id"]=resolved["scop\
14
- eId"];const folder=folderId(input);if(folder!==void 0)body["folder_id"]=folder;return{method:"POST",path:"/api/v2/media/files/upload-url",body}}function issued(body){const data=dataOf(body,"\u30A2\u30C3\u30D7\u30ED\u30FC\u30C9URL\u767A\u884C");const id=data["file_id"];const uploadUrl=data["upload_url"];if(!isSafePathSegment(id)||typeof uploadUrl!=="string"||!/^https:\/\//.test(uploadUrl)){throw new ApiResponseError("\u30A2\u30C3\u30D7\u30ED\u30FC\u30C9URL\u767A\u884C\u306E\u5FDC\u7B54\u306B data.file_id / data.upload_url \u304C\u3042\u308A\u307E\u305B\u3093\u3002\u63A5\u7D9A\u5148\u3092\u78BA\u8A8D\u3057\u3066\u304F\u3060\u3055\u3044\u3002")}
15
- return{id,uploadUrl}}var discardGuidance=id=>` \u7834\u68C4: twp media delete ${id} --yes\uFF08\u30B4\u30DF\u7BB1\u3078\u79FB\u3057\u307E\u3059\u3002\u5B8C\u5168\u306B\u6D88\u3059\u306A\u3089 twp api /v2/media/files/${id}/permanent --method DELETE --yes\uFF09`;function orphanGuidance(id,stage){if(stage==="transfer"){return`\u30D5\u30A1\u30A4\u30EB ${id} \u306F\u4EEE\u767B\u9332\u3055\u308C\u307E\u3057\u305F\u304C\u3001\u30B9\u30C8\u30EC\u30FC\u30B8\u3078\u306E\u8EE2\u9001\u306B\u5931\u6557\u3057\u307E\u3057\u305F\u3002
16
- \u30B5\u30FC\u30D0\u306B\u306F\u4E2D\u8EAB\u306E\u7121\u3044\u4EEE\u767B\u9332\u306E\u30D5\u30A1\u30A4\u30EB\u304C\u6B8B\u3063\u3066\u304A\u308A\u3001\u81EA\u52D5\u3067\u306F\u524A\u9664\u3055\u308C\u307E\u305B\u3093\u3002\u7834\u68C4\u3057\u3066\u304B\u3089\u518D\u5B9F\u884C\u3057\u3066\u304F\u3060\u3055\u3044\u3002
17
- `+discardGuidance(id)}return`\u30D5\u30A1\u30A4\u30EB ${id} \u306F\u30B9\u30C8\u30EC\u30FC\u30B8\u3078\u306E\u8EE2\u9001\u307E\u3067\u5B8C\u4E86\u3057\u307E\u3057\u305F\u304C\u3001\u5B8C\u4E86\u767B\u9332\u306B\u5931\u6557\u3057\u307E\u3057\u305F\u3002
18
- \u30B5\u30FC\u30D0\u306B\u306F\u4EEE\u767B\u9332\u306E\u30D5\u30A1\u30A4\u30EB\u304C\u6B8B\u3063\u3066\u304A\u308A\u3001\u81EA\u52D5\u3067\u306F\u524A\u9664\u3055\u308C\u307E\u305B\u3093\u3002\u6B21\u306E\u3069\u3061\u3089\u304B\u3092\u5B9F\u884C\u3057\u3066\u304F\u3060\u3055\u3044\u3002
19
- \u518D\u767B\u9332: twp api /v2/media/files/${id}/complete --method POST --yes
20
- `+discardGuidance(id)}async function upload(input,ctx){const file=requireResolved(input,"file");const size=Number(requireResolved(input,"fileSize"));const contentType=requireResolved(input,"contentType");const bytes=new Uint8Array(fs.readFileSync(file));if(bytes.byteLength!==size){throw new UsageError(`\u30A2\u30C3\u30D7\u30ED\u30FC\u30C9\u4E2D\u306B\u30D5\u30A1\u30A4\u30EB\u306E\u5927\u304D\u3055\u304C\u5909\u308F\u308A\u307E\u3057\u305F\uFF08${size} \u2192 ${bytes.byteLength} \u30D0\u30A4\u30C8\uFF09: ${file}`)}
21
- const localHash=crypto.createHash("sha256").update(bytes).digest("hex");await checkUploadQuota(ctx,size);const{id,uploadUrl}=issued(await ctx.send(uploadUrlPlan(input)));try{await ctx.putSigned(uploadUrl,bytes,contentType)}catch(err){ctx.warn(orphanGuidance(id,"transfer"));throw err}let completed;try{completed=dataOf(await ctx.send({method:"POST",path:`${filePath(id)}/complete`,body:{}}),"\u5B8C\u4E86\u767B\u9332")}catch(err){ctx.warn(orphanGuidance(id,"complete"));throw err}const serverHash=completed["\
22
- content_hash"];if(typeof serverHash==="string"&&serverHash!==""){if(serverHash.toLowerCase()!==localHash){ctx.warn(`\u30D5\u30A1\u30A4\u30EB ${id} \u306F\u30B5\u30FC\u30D0\u306B\u767B\u9332\u6E08\u307F\u306E\u307E\u307E\u6B8B\u3063\u3066\u3044\u307E\u3059\u3002
23
- ${discardGuidance(id)}`);throw new ApiResponseError(`\u30A2\u30C3\u30D7\u30ED\u30FC\u30C9\u3057\u305F\u30D5\u30A1\u30A4\u30EB ${id} \u306E\u5185\u5BB9\u304C\u30ED\u30FC\u30AB\u30EB\u3068\u4E00\u81F4\u3057\u307E\u305B\u3093\uFF08\u30ED\u30FC\u30AB\u30EB sha256 ${localHash} / \u30B5\u30FC\u30D0 ${serverHash}\uFF09\u3002`)}}else{ctx.warn(`\u30B5\u30FC\u30D0\u304C content_hash \u3092\u8FD4\u3055\u306A\u304B\u3063\u305F\u305F\u3081\u3001\u30D5\u30A1\u30A4\u30EB ${id} \u306E\u5185\u5BB9\u306F\u7167\u5408\u3057\u3066\u3044\u307E\u305B\u3093\u3002`)}
24
- return completed}var BULK_MAX=100;var BULK_DOWNLOAD_MAX=50;function bulkIds(input,usage,max){const ids=input.args.map(arg=>arg.trim()).filter(arg=>arg!=="");if(ids.length===0)throw new UsageError("\u30D5\u30A1\u30A4\u30EBID \u30921\u3064\u4EE5\u4E0A\u6307\u5B9A\u3057\u3066\u304F\u3060\u3055\u3044",usage);if(ids.length>max)throw new UsageError(`\u4E00\u5EA6\u306B\u6307\u5B9A\u3067\u304D\u308B\u30D5\u30A1\u30A4\u30EB\u306F ${max} \u4EF6\u307E\u3067\u3067\u3059\uFF08${ids.length} \u4EF6\u6307\u5B9A\uFF09`,
25
- usage);const bad=ids.filter(id=>!UUID.test(id));if(bad.length>0)throw new UsageError(`\u30D5\u30A1\u30A4\u30EBID\uFF08UUID\uFF09\u306E\u5F62\u5F0F\u304C\u9055\u3044\u307E\u3059: ${bad.join(" ")}`,usage);const duplicated=ids.filter((id,index)=>ids.indexOf(id)!==index);if(duplicated.length>0)throw new UsageError(`\u540C\u3058\u30D5\u30A1\u30A4\u30EBID \u304C\u91CD\u8907\u3057\u3066\u3044\u307E\u3059: ${[...new Set(duplicated)].join(" ")}`,usage);return ids}function bulkResult(body,label){const data=dataOf(
26
- body,label);const{success,failed}=data;const rolledBack=data["rolled_back"]??[];if(!Array.isArray(success)||!Array.isArray(failed)||!Array.isArray(rolledBack)){throw new ApiResponseError(`${label}\u306E\u5FDC\u7B54\u306B data.success / failed \u304C\u3042\u308A\u307E\u305B\u3093\u3002\u63A5\u7D9A\u5148\u3092\u78BA\u8A8D\u3057\u3066\u304F\u3060\u3055\u3044\u3002`)}return{success:success.map(String),failed:failed.map(row=>({id:String(isRecord(row)?row["id"]??row["file_id"]:row),reason:String(isRecord(
27
- row)?row["reason"]??row["error"]??"":"")})),rolledBack:rolledBack.map(String)}}function assertBulkSucceeded(result,requested,label,ctx){if(result.failed.length===0)return;const lines=[`${label}: ${requested} \u4EF6\u4E2D ${result.failed.length} \u4EF6\u304C\u5931\u6557\u3057\u307E\u3057\u305F\u3002`];for(const row of result.failed)lines.push(` \u5931\u6557: ${row.id}\uFF08${row.reason}\uFF09`);lines.push(result.success.length===0?" \u9069\u7528\u3055\u308C\u305F\u30D5\u30A1\u30A4\u30EB\u306F\u3042\u308A\u307E\u305B\u3093\u3002":
28
- ` \u9069\u7528\u6E08\u307F\uFF08\u623B\u3055\u308C\u3066\u3044\u306A\u3044\uFF09: ${result.success.join(" ")}`);if(result.rolledBack.length>0)lines.push(` \u5931\u6557\u306E\u305F\u3081\u5143\u306B\u623B\u3057\u305F\u3082\u306E: ${result.rolledBack.join(" ")}`);ctx.warn(lines.join("\n"));throw new ApiRejectedError(`${label}\u306F\u5B8C\u4E86\u3057\u3066\u3044\u307E\u305B\u3093\uFF08${result.failed.length} \u4EF6\u5931\u6557\u30FB${result.success.length} \u4EF6\u9069\u7528\uFF09\u3002`)}function bulkSummary(body){
29
- const data=isRecord(body)?body["data"]:void 0;const count=key=>isRecord(data)&&Array.isArray(data[key])?data[key].length:0;return{message:isRecord(body)?body["message"]??null:null,success:count("success"),failed:count("failed"),rolled_back:count("rolled_back")}}var BULK_STATUS_OPERATIONS=[{name:"bulk-publish",endpoint:"publish",label:"\u4E00\u62EC\u516C\u958B",summary:"\u8907\u6570\u306E\u30D5\u30A1\u30A4\u30EB\u3092\u516C\u958B\u3059\u308B",description:"\u30D5\u30A1\u30A4\u30EB\u3092\u516C\u958B\u72B6\u614B\u306B\u3057\u307E\u3059\u3002"},
30
- {name:"bulk-unpublish",endpoint:"unpublish",label:"\u4E00\u62EC\u975E\u516C\u958B",summary:"\u8907\u6570\u306E\u30D5\u30A1\u30A4\u30EB\u3092\u975E\u516C\u958B\u306B\u3059\u308B",description:"\u30D5\u30A1\u30A4\u30EB\u3092\u975E\u516C\u958B\uFF08\u4E0B\u66F8\u304D\uFF09\u306B\u623B\u3057\u307E\u3059\u3002"},{name:"bulk-archive",endpoint:"archive",label:"\u4E00\u62EC\u30A2\u30FC\u30AB\u30A4\u30D6",summary:"\u8907\u6570\u306E\u30D5\u30A1\u30A4\u30EB\u3092\u30A2\u30FC\u30AB\u30A4\u30D6\u3059\u308B",
31
- description:"\u30D5\u30A1\u30A4\u30EB\u3092\u30A2\u30FC\u30AB\u30A4\u30D6\u72B6\u614B\u306B\u3057\u307E\u3059\uFF08\u524A\u9664\u3067\u306F\u3042\u308A\u307E\u305B\u3093\uFF09\u3002"},{name:"bulk-restore",endpoint:"restore",label:"\u4E00\u62EC\u5FA9\u5143",summary:"\u30B4\u30DF\u7BB1\u306E\u30D5\u30A1\u30A4\u30EB\u3092\u5FA9\u5143\u3059\u308B",description:"twp media delete / bulk-delete \u3067\u30B4\u30DF\u7BB1\u3078\u79FB\u3057\u305F\u30D5\u30A1\u30A4\u30EB\u3092\u5143\u306B\u623B\u3057\u307E\u3059\uFF08\u30A2\u30FC\u30AB\u30A4\u30D6\u306E\u89E3\u9664\u3067\u306F\u3042\u308A\u307E\u305B\u3093\uFF09\u3002"}];
32
- function bulkUsage(name,extra=""){return`twp media ${name} <\u30D5\u30A1\u30A4\u30EBID>...${extra}`}function bulkStatusOperation(spec){const usage=bulkUsage(spec.name);return{name:spec.name,summary:spec.summary,usage,description:`${spec.description}
33
- \u30D5\u30A1\u30A4\u30EBID\uFF08twp media list \u306E id\uFF09\u3092\u4F4D\u7F6E\u5F15\u6570\u3067\u4E26\u3079\u307E\u3059\uFF08${BULK_MAX} \u4EF6\u307E\u3067\uFF09\u3002
34
- `+BULK_FAILURE_HELP,flags:[],plan:input=>({method:"POST",path:`/api/v2/media/files/bulk/${spec.endpoint}`,body:{file_ids:bulkIds(input,usage,BULK_MAX)}}),plannedNotes:input=>[`${bulkIds(input,usage,BULK_MAX).length} \u4EF6\u306E\u30D5\u30A1\u30A4\u30EB\u3092\u5BFE\u8C61\u306B\u3057\u307E\u3059\u3002`],execute:(input,ctx)=>runBulk(ctx,bulkIds(input,usage,BULK_MAX),spec.endpoint,spec.label,{}),summarize:bulkSummary,raw:body=>body}}var BULK_FAILURE_HELP="1\u4EF6\u3067\u3082\u5931\u6557\u3059\u308B\u3068\u7D42\u4E86\u30B3\u30FC\u30C9 3 \u3067\u7D42\u308F\u308A\u3001\u5931\u6557\u3057\u305F\u30D5\u30A1\u30A4\u30EB\u3068\u7406\u7531\u30FB\u9069\u7528\u6E08\u307F\u306E\u30D5\u30A1\u30A4\u30EB\u3092\
35
- stderr \u306B\u51FA\u3057\u307E\u3059\n\uFF08\u30B5\u30FC\u30D0\u306F\u5931\u6557\u304C\u3042\u3063\u3066\u3082 HTTP 200 \u3092\u8FD4\u3059\u305F\u3081\uFF09\u3002bulk-publish / bulk-unpublish / bulk-archive \u306F\n\u5B58\u5728\u3057\u306A\u3044 ID \u304C1\u4EF6\u3067\u3082\u3042\u308B\u3068\u4ED6\u3082\u9069\u7528\u3057\u307E\u305B\u3093\u3002bulk-restore / bulk-move / bulk-delete \u306F1\u4EF6\u305A\u3064\u51E6\u7406\u3057\u3001\n\u5931\u6557\u3057\u305F\u3082\u306E\u4EE5\u5916\u306F\u9069\u7528\u3055\u308C\u307E\u3059\u3002";
36
- async function runBulk(ctx,ids,endpoint,label,extra){const body=await ctx.send({method:"POST",path:`/api/v2/media/files/bulk/${endpoint}`,body:{file_ids:ids,...extra}});assertBulkSucceeded(bulkResult(body,label),ids.length,label,ctx);return body}var PERMANENT_FLAG={name:"--permanent",summary:"\u30B4\u30DF\u7BB1\u306B\u3042\u308B\u30D5\u30A1\u30A4\u30EB\u3092\u5B8C\u5168\u306B\u524A\u9664\u3059\u308B\uFF08\u5FA9\u5143\u3067\u304D\u307E\u305B\u3093\u3002\u5148\u306B bulk-delete \u3067\u30B4\u30DF\u7BB1\u3078\u79FB\u3059\u3053\u3068\uFF09",
37
- takesValue:false};var MOVE_FOLDER_FLAG={name:"--folder",summary:"\u79FB\u52D5\u5148\u306E\u30D5\u30A9\u30EB\u30C0ID\uFF08\u7701\u7565\u6642\u306F\u30B9\u30B3\u30FC\u30D7\u306E\u6700\u4E0A\u4F4D\uFF09",takesValue:true,placeholder:"<\u30D5\u30A9\u30EB\u30C0ID>"};var MOVE_PROJECT_FLAG={name:"--project",summary:"\u79FB\u52D5\u5148\u3092\u30D7\u30ED\u30B8\u30A7\u30AF\u30C8\u306E\u30D5\u30A1\u30A4\u30EB\u306B\u3059\u308B\uFF08\u30B3\u30FC\u30C9\u307E\u305F\u306F ID\uFF09\u3002\u7701\u7565\u6642\u306F\u81EA\u5206\u306E\u500B\u4EBA\u30D5\u30A1\u30A4\u30EB",
38
- takesValue:true,placeholder:"<\u30B3\u30FC\u30C9|ID>"};var BULK_DELETE_USAGE=bulkUsage("bulk-delete"," --yes [--permanent]");var BULK_MOVE_USAGE=bulkUsage("bulk-move"," [--project <\u30B3\u30FC\u30C9|ID>] [--folder <\u30D5\u30A9\u30EB\u30C0ID>]");var BULK_DOWNLOAD_USAGE=bulkUsage("bulk-download"," --out <\u30D1\u30B9.zip> [--force]");function bulkDeleteEndpoint(input){return input.flags.has("--permanent")?{endpoint:"permanent-delete",label:"\u4E00\u62EC\u5B8C\u5168\u524A\u9664"}:{endpoint:"delet\
39
- e",label:"\u4E00\u62EC\u524A\u9664"}}var BULK_OPERATIONS=[...BULK_STATUS_OPERATIONS.map(bulkStatusOperation),{name:"bulk-move",summary:"\u8907\u6570\u306E\u30D5\u30A1\u30A4\u30EB\u3092\u5225\u306E\u30D5\u30A9\u30EB\u30C0\u30FB\u30B9\u30B3\u30FC\u30D7\u3078\u79FB\u3059",usage:BULK_MOVE_USAGE,description:"\u79FB\u52D5\u5148\u306F --project\uFF08\u7121\u3051\u308C\u3070\u81EA\u5206\u306E\u500B\u4EBA\u30D5\u30A1\u30A4\u30EB\uFF09\u3068 --folder\uFF08\u7121\u3051\u308C\u3070\u6700\u4E0A\u4F4D\uFF09\u3067\u6C7A\u307E\u308A\u307E\u3059\u3002\n--project \u3092\u4ED8\u3051\u306A\u3044\u3068\u304D\u3001\u65E2\u5B9A\u30D7\u30ED\u30B8\u30A7\u30AF\u30C8\uFF08TWP_PROJECT \u7B49\uFF09\u306F\u4F7F\u3044\u307E\u305B\u3093\uFF08\u500B\u4EBA\u30D5\u30A1\u30A4\u30EB\u3078\u79FB\u3057\u307E\u3059\uFF09\u3002\n"+
40
- BULK_FAILURE_HELP,flags:[MOVE_PROJECT_FLAG,MOVE_FOLDER_FLAG],async prepare(input,ctx){bulkIds(input,BULK_MOVE_USAGE,BULK_MAX);folderId(input);const scope=await resolveScope(input,ctx);const scopeId=scope["scopeId"]??(await ctx.resolver.currentUser()).id;return withResolved(input,{scope:requireScope(scope),scopeId})},plan:input=>({method:"POST",path:"/api/v2/media/files/bulk/move",body:bulkMoveBody(input)}),plannedNotes:input=>[`${bulkIds(input,BULK_MOVE_USAGE,BULK_MAX).length} \u4EF6\u306E\u30D5\u30A1\u30A4\u30EB\u3092\u79FB\u3057\u307E\u3059\u3002`],
41
- execute:(input,ctx)=>{const{file_ids:ids,...extra}=bulkMoveBody(input);return runBulk(ctx,ids,"move","\u4E00\u62EC\u79FB\u52D5",extra)},summarize:bulkSummary,raw:body=>body},{name:"bulk-delete",summary:"\u8907\u6570\u306E\u30D5\u30A1\u30A4\u30EB\u3092\u30B4\u30DF\u7BB1\u3078\u79FB\u3059\uFF08--permanent \u3067\u30B4\u30DF\u7BB1\u304B\u3089\u5B8C\u5168\u524A\u9664\uFF09",usage:BULK_DELETE_USAGE,description:"\u65E2\u5B9A\u306F\u30B4\u30DF\u7BB1\u3078\u79FB\u3059\u3060\u3051\u3067\u3001twp media bulk-restore \u3067\u623B\u305B\u307E\u3059\u3002\n--permanent \u3092\u4ED8\u3051\u308B\u3068\u30B4\u30DF\u7BB1\u306B\u3042\u308B\u30D5\u30A1\u30A4\u30EB\u3092\u5B8C\u5168\u306B\u524A\u9664\u3057\u3001\u5FA9\u5143\u3067\u304D\u307E\u305B\u3093\u3002\n\u30B4\u30DF\u7BB1\
42
- \u306B\u7121\u3044\u30D5\u30A1\u30A4\u30EB\u306F\u5B8C\u5168\u524A\u9664\u3067\u304D\u307E\u305B\u3093\uFF08\u30B5\u30FC\u30D0\u304C\u300C\u5148\u306B\u30B4\u30DF\u7BB1\u306B\u79FB\u52D5\u3057\u3066\u304F\u3060\u3055\u3044\u300D\u3067\u62D2\u5426\u3057\u307E\u3059\uFF09\u3002\n\u7834\u58CA\u7684\u306A\u64CD\u4F5C\u3068\u3057\u3066\u6271\u3046\u305F\u3081 --yes \u304C\u5FC5\u8981\u3067\u3059\u3002\u5BFE\u8C61\u4EF6\u6570\u306F --dry-run \u3067\u78BA\u8A8D\u3067\u304D\u307E\u3059\u3002\n"+BULK_FAILURE_HELP,
43
- destructive:true,flags:[PERMANENT_FLAG],plan:input=>({method:"POST",path:`/api/v2/media/files/bulk/${bulkDeleteEndpoint(input).endpoint}`,body:{file_ids:bulkIds(input,BULK_DELETE_USAGE,BULK_MAX)}}),plannedNotes:input=>[input.flags.has("--permanent")?`${bulkIds(input,BULK_DELETE_USAGE,BULK_MAX).length} \u4EF6\u306E\u30D5\u30A1\u30A4\u30EB\u3092\u5B8C\u5168\u306B\u524A\u9664\u3057\u307E\u3059\uFF08\u5FA9\u5143\u3067\u304D\u307E\u305B\u3093\uFF09\u3002`:`${bulkIds(input,BULK_DELETE_USAGE,BULK_MAX).
44
- length} \u4EF6\u306E\u30D5\u30A1\u30A4\u30EB\u3092\u30B4\u30DF\u7BB1\u3078\u79FB\u3057\u307E\u3059\u3002`],execute:(input,ctx)=>{const{endpoint,label}=bulkDeleteEndpoint(input);return runBulk(ctx,bulkIds(input,BULK_DELETE_USAGE,BULK_MAX),endpoint,label,{})},summarize:bulkSummary,raw:body=>body},{name:"bulk-download",summary:"\u8907\u6570\u306E\u30D5\u30A1\u30A4\u30EB\u3092 ZIP \u306B\u307E\u3068\u3081\u3066\u66F8\u304D\u51FA\u3059",usage:BULK_DOWNLOAD_USAGE,description:`\u30B5\u30FC\u30D0\u304C ZIP \u3092\u4F5C\u308A\u3001\u305D\u306E\u7F72\u540DURL\u304B\u3089\u672C\u4F53\u3092\
45
- \u53D7\u3051\u53D6\u308A\u307E\u3059\uFF08${BULK_DOWNLOAD_MAX} \u4EF6\u307E\u3067\uFF09\u3002
46
- \u30B5\u30FC\u30D0\u306F\u5B58\u5728\u3057\u306A\u3044\u30FB\u8AAD\u3081\u306A\u3044\u30D5\u30A1\u30A4\u30EB\u3092\u9ED9\u3063\u3066\u9664\u3044\u3066 ZIP \u3092\u4F5C\u308B\u306E\u3067\u3001ZIP \u306B\u5165\u3063\u305F\u4EF6\u6570\u304C
47
- \u6307\u5B9A\u3088\u308A\u5C11\u306A\u3051\u308C\u3070\u66F8\u304D\u51FA\u3055\u305A\u306B\u7D42\u4E86\u30B3\u30FC\u30C9 3 \u3067\u7D42\u308F\u308A\u307E\u3059\u3002
48
- \u66F8\u304D\u51FA\u3057\u5148\u306F --out \u3067\u5FC5\u305A\u6307\u5B9A\u3057\u307E\u3059\u3002\u65E2\u5B58\u30D5\u30A1\u30A4\u30EB\u306F --force \u304C\u7121\u3051\u308C\u3070\u4E0A\u66F8\u304D\u3057\u307E\u305B\u3093\u3002`,flags:[OUT_FLAG,FORCE_FLAG],download:{outFlag:"--out",forceFlag:"--force",signedUrl(body,plan){const data=dataOf(body,"\u4E00\u62EC\u30C0\u30A6\u30F3\u30ED\u30FC\u30C9");const requested=isRecord(plan.body)&&Array.isArray(plan.body["file_ids"])?plan.body["file_ids"].length:
49
- 0;const packed=data["file_count"];if(typeof packed==="number"&&packed<requested){throw new ApiRejectedError(`ZIP \u306B\u5165\u3063\u305F\u306E\u306F ${requested} \u4EF6\u4E2D ${packed} \u4EF6\u3067\u3057\u305F\uFF08\u5B58\u5728\u3057\u306A\u3044\u30FB\u8AAD\u3081\u306A\u3044\u30D5\u30A1\u30A4\u30EB\u304C\u9664\u304B\u308C\u3066\u3044\u307E\u3059\uFF09\u3002\u66F8\u304D\u51FA\u3057\u3066\u3044\u307E\u305B\u3093\u3002twp media list \u3067 ID \u3092\u78BA\u304B\u3081\u3066\u6307\u5B9A\u3057\u76F4\u3057\u3066\u304F\u3060\u3055\u3044\u3002`)}
50
- const url=data["download_url"];if(typeof url!=="string"||!/^https:\/\//.test(url)){throw new ApiResponseError("\u4E00\u62EC\u30C0\u30A6\u30F3\u30ED\u30FC\u30C9\u306E\u5FDC\u7B54\u306B data.download_url \u304C\u3042\u308A\u307E\u305B\u3093\u3002\u63A5\u7D9A\u5148\u3092\u78BA\u8A8D\u3057\u3066\u304F\u3060\u3055\u3044\u3002")}return url}},plan:input=>({method:"POST",path:"/api/v2/media/files/bulk/download",body:{file_ids:bulkIds(input,BULK_DOWNLOAD_USAGE,BULK_DOWNLOAD_MAX)}}),summarize:body=>body,raw:body=>body}];
51
- function requireScope(scope){const value=scope["scope"];if(value===void 0)throw new Error("resolveScope \u304C scope \u3092\u8FD4\u3057\u307E\u305B\u3093\u3067\u3057\u305F\uFF08\u914D\u7DDA\u306E\u8AA4\u308A\uFF09");return value}function bulkMoveBody(input){const body={file_ids:bulkIds(input,BULK_MOVE_USAGE,BULK_MAX),scope:requireResolved(input,"scope"),scope_id:requireResolved(input,"scopeId")};const folder=folderId(input);if(folder!==void 0)body["folder_id"]=folder;return body}var LIST_USAGE="\
52
- twp media list [--project <\u30B3\u30FC\u30C9|ID>] [--folder <\u30D5\u30A9\u30EB\u30C0ID>] [--keyword <\u8A9E>]";var UPLOAD_USAGE="twp media upload --file <\u30D1\u30B9> [--project <\u30B3\u30FC\u30C9|ID>] [--folder <\u30D5\u30A9\u30EB\u30C0ID>] [--name <\u540D\u524D>]";var DOWNLOAD_USAGE="twp media download <\u30D5\u30A1\u30A4\u30EBID> --out <\u30D1\u30B9> [--force]";var DELETE_USAGE="twp media delete <\u30D5\u30A1\u30A4\u30EBID> --yes";var mediaDomain={name:"media",summary:"\u30E1\u30C7\u30A3\u30A2\u30E9\u30A4\u30D6\u30E9\u30EA\u306E\u30D5\u30A1\u30A4\u30EB\uFF08\u30A2\u30C3\u30D7\u30ED\
53
- \u30FC\u30C9\u30FB\u4E00\u89A7\u30FB\u30C0\u30A6\u30F3\u30ED\u30FC\u30C9\u30FB\u524A\u9664\u30FB\u4E00\u62EC\u64CD\u4F5C\uFF09",operations:[{name:"list",summary:"\u30D5\u30A1\u30A4\u30EB\u3092\u4E00\u89A7\u3059\u308B\uFF08\u65E2\u5B9A\u306F\u81EA\u5206\u306E\u500B\u4EBA\u30D5\u30A1\u30A4\u30EB\uFF09",usage:LIST_USAGE,description:"--project \u3092\u4ED8\u3051\u308B\u3068\u30D7\u30ED\u30B8\u30A7\u30AF\u30C8\u306E\u30D5\u30A1\u30A4\u30EB\u3001\u7121\u3051\u308C\u3070\u81EA\u5206\u306E\u500B\u4EBA\u30D5\u30A1\u30A4\u30EB\u3092\u8FD4\u3057\u307E\u3059\u3002\n\u30D5\u30A9\u30EB\u30C0\u3092\u4ED8\u3051\u306A\u3051\u308C\u3070\u30B9\u30B3\u30FC\u30D7\u306E\u6700\u4E0A\u4F4D\u306B\u3042\u308B\u30D5\u30A1\u30A4\u30EB\u3060\u3051\u3067\u3059\uFF08\u4E0B\u4F4D\u30D5\u30A9\u30EB\u30C0\u306F\u542B\u307F\u307E\u305B\u3093\uFF09\u3002\n\n"+
54
- LIST_PAGING_HELP,flags:[MEDIA_PROJECT_FLAG,FOLDER_FLAG,KEYWORD_FLAG,...LIST_FLAGS],paging:envelopePaging({label:"\u30E1\u30C7\u30A3\u30A2\u4E00\u89A7",itemsKey:"data"}),async prepare(input,ctx){if(input.args.length>0){throw new UsageError(`list \u306F\u4F4D\u7F6E\u5F15\u6570\u3092\u53D7\u3051\u53D6\u308A\u307E\u305B\u3093: ${input.args.join(" ")}`,LIST_USAGE)}return withResolved(input,await resolveScope(input,ctx))},plan(input){const resolved=input.resolved??{};const keyword=nonEmpty(input.flags,
55
- "--keyword");return{method:"GET",path:"/api/v2/media/files",query:{scope:requireResolved(input,"scope"),scope_id:resolved["scopeId"],folder_id:folderId(input),keyword,limit:positiveInteger(input.flags,"--limit"),cursor:nonEmpty(input.flags,"--cursor")}}},summarize:body=>listRows(body).map(row=>pick(row,LIST_COLUMNS)),raw:body=>listRows(body),notes(body,input){if(nonEmpty(input.flags,"--keyword")===void 0)return[];const meta=isRecord(body)?body["meta"]:void 0;const total=isRecord(meta)?meta["tota\
56
- l"]:void 0;const shown=listRows(body).length;if(typeof total!=="number"||total<=shown)return[];return[`\u691C\u7D22\u7D50\u679C ${total} \u4EF6\u306E\u3046\u3061 ${shown} \u4EF6\u3060\u3051\u3092\u8868\u793A\u3057\u3066\u3044\u307E\u3059\uFF08\u691C\u7D22\u306F\u30DA\u30FC\u30B8\u30F3\u30B0\u3057\u307E\u305B\u3093\u3002--limit \u3092\u4E0A\u3052\u308B\u304B\u8A9E\u3092\u7D5E\u3063\u3066\u304F\u3060\u3055\u3044\uFF09\u3002`]}},{name:"upload",summary:"\u30ED\u30FC\u30AB\u30EB\u30D5\u30A1\u30A4\u30EB\u3092\u30A2\u30C3\u30D7\u30ED\u30FC\u30C9\u3059\u308B\uFF08\u767A\u884C\u30FB\u8EE2\u9001\u30FB\u5B8C\u4E86\u767B\u9332\u30921\u30B3\u30DE\u30F3\u30C9\u3067\uFF09",
57
- usage:UPLOAD_USAGE,description:"\u5BB9\u91CF\u3092\u78BA\u304B\u3081\u3066\u304B\u3089\u3001\u6B21\u306E3\u5F80\u5FA9\u30921\u30B3\u30DE\u30F3\u30C9\u3067\u884C\u3044\u307E\u3059\u3002\n 0. POST /api/v2/storage/check-upload\uFF08\u30C6\u30CA\u30F3\u30C8\u306E\u5BB9\u91CF\u691C\u67FB\u3002\u8D85\u904E\u306A\u3089\u4F55\u3082\u767B\u9332\u305B\u305A\u306B\u6B62\u307E\u308A\u307E\u3059\uFF09\n 1. POST /api/v2/media/files/upload-url\uFF08\u7F72\u540DURL\u306E\u767A\u884C\u3002\u3053\u3053\u3067\u30D5\u30A1\u30A4\u30EB\u304C\u4EEE\u767B\u9332\u3055\u308C\u307E\u3059\uFF09\n 2. \u7F72\u540DURL\u3078 PUT\uFF08\u30D5\u30A1\u30A4\u30EB\u672C\u4F53\u3002TWP \u306E\u8A8D\u8A3C\u60C5\u5831\u306F\u9001\u308A\u307E\u305B\u3093\uFF09\n 3. POST /api/v2/media/files/{id}/complete\uFF08\u5B8C\u4E86\u767B\u9332\uFF09\n\u5B8C\u4E86\u767B\u9332\u306E\u5FDC\u7B54\u306E content_hash\uFF08sha256\uFF09\u3092\u30ED\u30FC\u30AB\u30EB\u306E\u30D5\u30A1\u30A4\u30EB\u3068\u7A81\u304D\u5408\u308F\u305B\u3001\u4E00\u81F4\u3057\u306A\u3051\u308C\u3070\u5931\u6557\u3057\u307E\u3059\u3002\n2\u30FB3 \u304C\u5931\u6557\u3057\u305F\u5834\u5408\u306F\u30D5\u30A1\u30A4\u30EBID\u3068\u518D\u767B\u9332\u30FB\u7834\u68C4\u306E\u624B\u9806\u3092 stderr \u306B\u51FA\u3057\u3066\u5931\u6557\u3057\u307E\u3059\uFF08\u4EEE\u767B\u9332\u306F\u81EA\u52D5\u3067\u306F\u6D88\u3048\u307E\u305B\u3093\uFF09\u3002\n--dry-run \u306F 1 \u306E\u30EA\u30AF\u30A8\u30B9\u30C8\u3060\u3051\u3092\u8868\u793A\u3057\u307E\u3059\uFF082 \u4EE5\u964D\u306F 1 \u306E\u5FDC\u7B54\u306B\u4F9D\u5B58\u3059\u308B\u305F\u3081\uFF09\u3002",
58
- flags:[FILE_FLAG,MEDIA_PROJECT_FLAG,FOLDER_FLAG,NAME_FLAG,CONTENT_TYPE_FLAG],async prepare(input,ctx){const local=localFile(input);folderId(input);return withResolved(input,{...await resolveScope(input,ctx),file:local.file,fileName:local.name,fileSize:String(local.size),contentType:local.contentType})},plan:uploadUrlPlan,plannedNotes:input=>[`\u5B9F\u884C\u6642\u306F\u3001\u3053\u306E\u524D\u306B\u5BB9\u91CF\u691C\u67FB\uFF08POST /api/v2/storage/check-upload\uFF09\u3092\u9001\u308A\u3001\u3053\u306E\u3042\u3068\u7F72\u540DURL\u3078 ${requireResolved(
59
- input,"fileSize")} \u30D0\u30A4\u30C8\u3092 PUT \u3057\u3001\u5B8C\u4E86\u767B\u9332\uFF08POST \u2026/complete\uFF09\u3092\u9001\u308A\u307E\u3059\u3002`],execute:upload,summarize:body=>pick(body,UPLOAD_COLUMNS),raw:body=>body},{name:"download",summary:"\u30D5\u30A1\u30A4\u30EB\u3092\u30C0\u30A6\u30F3\u30ED\u30FC\u30C9\u3057\u3066\u30D5\u30A1\u30A4\u30EB\u3078\u66F8\u304D\u51FA\u3059",usage:DOWNLOAD_USAGE,description:"\u30D5\u30A1\u30A4\u30EBID \u306F twp media list \u306E id \u3067\u3059\u3002\n\u30C0\u30A6\u30F3\u30ED\u30FC\u30C9\u7528\u306E\u7F72\u540DURL\u3092\u53D6\u5F97\u3057\u3066\u304B\u3089\u672C\u4F53\u3092\u53D7\u3051\u53D6\u308A\u307E\u3059\uFF08\u7F72\u540DURL\u3078 TWP \u306E\u8A8D\u8A3C\u60C5\
60
- \u5831\u306F\u9001\u308A\u307E\u305B\u3093\uFF09\u3002\n\u66F8\u304D\u51FA\u3057\u5148\u306F --out \u3067\u5FC5\u305A\u6307\u5B9A\u3057\u307E\u3059\uFF08\u6A19\u6E96\u51FA\u529B\u3078\u306F\u51FA\u3057\u307E\u305B\u3093\uFF09\u3002\u65E2\u5B58\u30D5\u30A1\u30A4\u30EB\u306F --force \u304C\u7121\u3051\u308C\u3070\u4E0A\u66F8\u304D\u3057\u307E\u305B\u3093\u3002",flags:[FILE_REF_FLAG,OUT_FLAG,FORCE_FLAG],download:{outFlag:"--out",forceFlag:"--force",signedUrl(body){const url=dataOf(body,"\u30C0\u30A6\u30F3\u30ED\u30FC\u30C9URL\u53D6\u5F97")["\
61
- download_url"];if(typeof url!=="string"||!/^https:\/\//.test(url)){throw new ApiResponseError("\u30C0\u30A6\u30F3\u30ED\u30FC\u30C9URL\u53D6\u5F97\u306E\u5FDC\u7B54\u306B data.download_url \u304C\u3042\u308A\u307E\u305B\u3093\u3002\u63A5\u7D9A\u5148\u3092\u78BA\u8A8D\u3057\u3066\u304F\u3060\u3055\u3044\u3002")}return url}},plan:input=>({method:"GET",path:`${filePath(fileRef(input,DOWNLOAD_USAGE))}/download-url`}),summarize:body=>body,raw:body=>body},{name:"delete",summary:"\u30D5\u30A1\u30A4\u30EB\u3092\u30B4\u30DF\u7BB1\u3078\u79FB\u3059",
62
- usage:DELETE_USAGE,description:"\u30B4\u30DF\u7BB1\u3078\u79FB\u3059\u3060\u3051\u3067\u3001\u753B\u9762\u306E\u30B4\u30DF\u7BB1\u304B\u3089\u5FA9\u5143\u3067\u304D\u307E\u3059\uFF08\u5B8C\u5168\u524A\u9664\u306F\u3057\u307E\u305B\u3093\uFF09\u3002\n\u7834\u58CA\u7684\u306A\u64CD\u4F5C\u3068\u3057\u3066\u6271\u3046\u305F\u3081 --yes \u304C\u5FC5\u8981\u3067\u3059\u3002",destructive:true,flags:[FILE_REF_FLAG],plan:input=>({method:"DELETE",path:filePath(fileRef(input,DELETE_USAGE))}),summarize:body=>body,
63
- raw:body=>body},...BULK_OPERATIONS]};export{mediaDomain,orphanGuidance};
@@ -1,16 +0,0 @@
1
- import { createRequire as __twpCreateRequire } from 'node:module';
2
- const require = __twpCreateRequire(import.meta.url);
3
- import{cursorFlag,graphData,graphListFlags,graphPaging,graphPagingHelp,graphPagingNotes,graphValue,ms365Forbidden,str,topFlag}from"./chunk-QICH2OOI.js";import{assertMs365PathSegment,ms365Path,ms365Segment}from"./chunk-3HH5IYNO.js";import"./chunk-IOGMOXYF.js";import{requireResolved,singleRef,withResolved}from"./chunk-LXIAOCUW.js";import{isRecord,pick}from"./chunk-VTQAI52S.js";import{UsageError}from"./chunk-UFND7FBC.js";import"./chunk-VSJBJXZO.js";var MY_DRIVE="me";var ITEM_COLUMNS=["id","name","kind","size","childCount","lastModifiedDateTime","lastModifiedBy"];var ITEM_GET_COLUMNS=["id","name","kind","size","mimeType","childCount","driveId","parentId","createdDateTime","lastModifiedDateTime","lastModifiedBy","webUrl"];var DRIVE_FLAG={name:"--drive",summary:"\u30C9\u30E9\u30A4\u30D6ID\uFF08\u65E2\u5B9A\u306F\u81EA\u5206\u306E OneDrive\u3002\u30C1\u30E3\u30CD\u30EB\u306E\u30D5\u30A1\u30A4\u30EB\u306F twp teams channel folder \u306E driveId\uFF09",
4
- takesValue:true,placeholder:"<ID>"};function itemRow(row){const source=isRecord(row)?row:{};const folder=isRecord(source["folder"])?source["folder"]:null;const file=isRecord(source["file"])?source["file"]:null;const parent=isRecord(source["parentReference"])?source["parentReference"]:{};const modifiedBy=isRecord(source["lastModifiedBy"])&&isRecord(source["lastModifiedBy"]["user"])?str(source["lastModifiedBy"]["user"]["displayName"]):null;return pick({...source,kind:folder!==null?"folder":file!==
5
- null?"file":null,childCount:folder?.["childCount"]??null,mimeType:file?.["mimeType"]??null,driveId:parent["driveId"]??null,parentId:parent["id"]??null,lastModifiedBy:modifiedBy},ITEM_GET_COLUMNS)}function driveOf(input){const raw=input.flags.get("--drive");return raw===void 0?MY_DRIVE:assertMs365PathSegment(raw.trim(),"\u30C9\u30E9\u30A4\u30D6ID")}function driveNotes(input){return input.flags.has("--drive")?[]:["--drive \u3092\u7701\u7565\u3057\u305F\u305F\u3081\u3001\u81EA\u5206\u306E OneDrive \u3092\u5BFE\u8C61\u306B\u3057\u307E\u3057\u305F\u3002"]}
6
- var itemResource={name:"item",summary:"\u30C9\u30E9\u30A4\u30D6\u306E\u30D5\u30A1\u30A4\u30EB\u3068\u30D5\u30A9\u30EB\u30C0\uFF08\u4E00\u89A7\u30FB\u8A73\u7D30\u30FB\u30C0\u30A6\u30F3\u30ED\u30FC\u30C9\uFF09",operations:[{name:"list",summary:"\u30D5\u30A9\u30EB\u30C0\u306E\u4E2D\u8EAB\u3092\u4E00\u89A7\u3059\u308B\uFF08\u65E2\u5B9A\u306F\u81EA\u5206\u306E OneDrive \u306E\u6700\u4E0A\u4F4D\uFF09",usage:"twp onedrive item list [<\u30D5\u30A9\u30EB\u30C0ID>] [--drive <ID>] [--limit <\u4EF6\u6570>] [--all]",
7
- description:"\u30D5\u30A9\u30EB\u30C0ID \u3092\u7701\u304F\u3068\u30C9\u30E9\u30A4\u30D6\u306E\u6700\u4E0A\u4F4D\uFF08root\uFF09\u3092\u4E00\u89A7\u3057\u307E\u3059\u3002kind \u304C folder \u306E\u884C\u306E id \u3092\u6E21\u3059\u3068\u3001\n\u305D\u306E\u30D5\u30A9\u30EB\u30C0\u306E\u4E2D\u3092\u4E00\u89A7\u3067\u304D\u307E\u3059\u3002\n\n"+graphPagingHelp(null),flags:[{name:"--folder",summary:"\u30D5\u30A9\u30EB\u30C0ID\uFF08\u4F4D\u7F6E\u5F15\u6570\u3068\u540C\u3058\u610F\u5473\u30FB\u65E2\u5B9A root\uFF09",
8
- takesValue:true,placeholder:"<ID>"},DRIVE_FLAG,...graphListFlags({limit:true})],forbidden:ms365Forbidden,paging:graphPaging({label:"\u30D5\u30A1\u30A4\u30EB\u4E00\u89A7",kind:"skiptoken"}),async prepare(input){if(input.flags.has("--folder")&&(input.flags.get("--folder")??"").trim()===""){throw new UsageError("--folder \u306B\u7A7A\u306E\u5024\u306F\u6307\u5B9A\u3067\u304D\u307E\u305B\u3093","twp onedrive item list help")}const folder=singleRef(input,{flag:"--folder",label:"\u30D5\u30A9\u30EB\u30C0ID",
9
- usage:"twp onedrive item list help",required:false})??"root";return withResolved(input,{driveId:driveOf(input),folderId:assertMs365PathSegment(folder,"\u30D5\u30A9\u30EB\u30C0ID")})},plan(input){const drive=ms365Segment(requireResolved(input,"driveId"),"\u30C9\u30E9\u30A4\u30D6ID");const folder=ms365Segment(requireResolved(input,"folderId"),"\u30D5\u30A9\u30EB\u30C0ID");return{method:"GET",path:ms365Path(`/drives/${drive}/items/${folder}/children`),query:{top:topFlag(input,null),skiptoken:cursorFlag(
10
- input,"skiptoken")}}},plannedNotes:driveNotes,summarize:body=>graphValue(body,"\u30D5\u30A1\u30A4\u30EB\u4E00\u89A7").map(row=>pick(itemRow(row),ITEM_COLUMNS)),raw:body=>graphValue(body,"\u30D5\u30A1\u30A4\u30EB\u4E00\u89A7"),notes:body=>graphPagingNotes(body,"\u30D5\u30A1\u30A4\u30EB\u4E00\u89A7")},{name:"get",summary:"\u30D5\u30A1\u30A4\u30EB\u30FB\u30D5\u30A9\u30EB\u30C01\u4EF6\u306E\u60C5\u5831\u3092\u8868\u793A\u3059\u308B",usage:"twp onedrive item get <\u9805\u76EEID> [--drive <ID>]",description:"\
11
- \u9805\u76EEID \u306F twp onedrive item list \u306E id \u3067\u3059\u3002webUrl \u306F\u30D6\u30E9\u30A6\u30B6\u3067\u958B\u304F\u3068\u304D\u306E URL \u3067\u3059\u3002",flags:[{name:"--item",summary:"\u9805\u76EEID\uFF08\u4F4D\u7F6E\u5F15\u6570\u3068\u540C\u3058\u610F\u5473\uFF09",takesValue:true,placeholder:"<ID>"},DRIVE_FLAG],forbidden:ms365Forbidden,async prepare(input){const item=singleRef(input,{flag:"--item",label:"\u9805\u76EEID",usage:"twp onedrive item get help"});return withResolved(
12
- input,{driveId:driveOf(input),itemId:assertMs365PathSegment(item,"\u9805\u76EEID")})},plan(input){const drive=ms365Segment(requireResolved(input,"driveId"),"\u30C9\u30E9\u30A4\u30D6ID");return{method:"GET",path:ms365Path(`/drives/${drive}/items/${ms365Segment(requireResolved(input,"itemId"),"\u9805\u76EEID")}`)}},plannedNotes:driveNotes,summarize:body=>itemRow(graphData(body,"\u30D5\u30A1\u30A4\u30EB\u60C5\u5831")),raw:body=>graphData(body,"\u30D5\u30A1\u30A4\u30EB\u60C5\u5831")},{name:"download",
13
- summary:"\u30D5\u30A1\u30A4\u30EB\u3092 --out \u3078\u66F8\u304D\u51FA\u3059",usage:"twp onedrive item download <\u9805\u76EEID> --out <\u30D1\u30B9> [--force] [--drive <ID>]",description:"\u30D5\u30A1\u30A4\u30EB\u306E\u5B9F\u4F53\u3092 --out \u306E\u30D1\u30B9\u3078\u305D\u306E\u307E\u307E\u66F8\u304D\u307E\u3059\uFF08\u6A19\u6E96\u51FA\u529B\u3078\u306F\u51FA\u3057\u307E\u305B\u3093\uFF09\u3002\n\u6A19\u6E96\u51FA\u529B\u306B\u51FA\u308B\u306E\u306F\u66F8\u3044\u305F\u5834\u6240\u30FB\u30D0\u30A4\u30C8\u6570\u30FBContent-Type \u3060\u3051\u3067\u3001--output json \u3067\u305D\u306E\u307E\u307E\u8AAD\u3081\u307E\u3059\u3002\n\n\u66F8\u304D\u51FA\u3057\u5148\u306E\u30D5\u30A1\u30A4\u30EB\u540D\u306F --out \u3067\u5FC5\u305A\u6307\u5B9A\u3057\u307E\u3059\uFF08\u30C9\u30E9\u30A4\u30D6\u4E0A\u306E\u540D\u524D\u304B\u3089\u30D1\u30B9\u3092\u7D44\u307F\u7ACB\u3066\u307E\u305B\u3093\uFF09\u3002\n\u65E2\u5B58\u30D5\u30A1\u30A4\u30EB\u306F\u4E0A\u66F8\u304D\u3057\u307E\u305B\u3093\uFF08--force \u3092\u4ED8\u3051\u305F\u3068\u304D\u3060\u3051\u4E0A\u66F8\u304D\u3057\u307E\u3059\uFF09\u3002\n\u66F8\u304D\u51FA\u3057\u5148\u306E\u30C7\u30A3\u30EC\u30AF\u30C8\u30EA\u306F\u81EA\u52D5\u3067\u4F5C\u308A\u307E\u305B\u3093\u3002\u30D5\u30A9\u30EB\u30C0\u306F\u30C0\u30A6\u30F3\u30ED\u30FC\u30C9\u3067\u304D\u307E\u305B\u3093\u3002",
14
- flags:[{name:"--item",summary:"\u9805\u76EEID\uFF08\u4F4D\u7F6E\u5F15\u6570\u3068\u540C\u3058\u610F\u5473\uFF09",takesValue:true,placeholder:"<ID>"},DRIVE_FLAG,{name:"--out",summary:"\u66F8\u304D\u51FA\u3057\u5148\u306E\u30D5\u30A1\u30A4\u30EB\u30D1\u30B9\uFF08\u5FC5\u9808\uFF09",takesValue:true,placeholder:"<\u30D1\u30B9>"},{name:"--force",summary:"\u65E2\u5B58\u30D5\u30A1\u30A4\u30EB\u3092\u4E0A\u66F8\u304D\u3059\u308B",takesValue:false}],forbidden:ms365Forbidden,download:{outFlag:"--out",forceFlag:"\
15
- --force"},async prepare(input){const item=singleRef(input,{flag:"--item",label:"\u9805\u76EEID",usage:"twp onedrive item download help"});return withResolved(input,{driveId:driveOf(input),itemId:assertMs365PathSegment(item,"\u9805\u76EEID")})},plan(input){const drive=ms365Segment(requireResolved(input,"driveId"),"\u30C9\u30E9\u30A4\u30D6ID");const item=ms365Segment(requireResolved(input,"itemId"),"\u9805\u76EEID");return{method:"GET",path:ms365Path(`/drives/${drive}/items/${item}/content`)}},plannedNotes:driveNotes,
16
- summarize:body=>body,raw:body=>body}]};var onedriveDomain={name:"onedrive",summary:"Microsoft 365 \u306E OneDrive / SharePoint \u306E\u30D5\u30A1\u30A4\u30EB",operations:[],subresources:[itemResource]};export{onedriveDomain};
@@ -1,98 +0,0 @@
1
- import { createRequire as __twpCreateRequire } from 'node:module';
2
- const require = __twpCreateRequire(import.meta.url);
3
- import{JsonBodyWithView}from"./chunk-Q3B65OFC.js";import{cursorFlag,dateTimeText,emailText,graphData,graphListFlags,graphPaging,graphPagingHelp,graphPagingNotes,graphValue,ms365Forbidden,plainText,recipientsText,str,topFlag}from"./chunk-QICH2OOI.js";import{readBody}from"./chunk-ORUDW52G.js";import{assertMs365PathSegment,ms365Path,ms365Segment}from"./chunk-3HH5IYNO.js";import{repeatedValues}from"./chunk-F7K37QG6.js";import"./chunk-QQRJLH6B.js";import{nonEmpty}from"./chunk-IOGMOXYF.js";
4
- import{requireResolved,singleRef,withResolved}from"./chunk-LXIAOCUW.js";import{isRecord,pick}from"./chunk-VTQAI52S.js";import{ApiResponseError,UsageError}from"./chunk-UFND7FBC.js";import"./chunk-VSJBJXZO.js";import fs from"fs";import path from"path";var BODY_MAX_CHARS=1e5;var ATTACH_TOTAL_MAX_BYTES=3*1024*1024;var ADDRESS=/^[^\s@,;<>"]+@[^\s@,;<>"]+$/;var INVISIBLE=/[\p{Cc}\p{Cf}]/u;function oneLine(value){return value.replace(/[\r\n\t]+/g," ").replace(/[\p{Cc}\p{Cf}]/gu,"")}var TO_FLAG={name:"--to",summary:"\u5B9B\u5148\u306E\u30E1\u30FC\u30EB\u30A2\u30C9\u30EC\u30B9\uFF08\u5FC5\u9808\u3002\u8907\u6570\u306A\u3089\u7E70\u308A\u8FD4\u3059\uFF09",takesValue:true,placeholder:"<\u30A2\u30C9\u30EC\u30B9>",repeatable:true};var CC_FLAG={name:"--c\
5
- c",summary:"Cc \u306E\u30E1\u30FC\u30EB\u30A2\u30C9\u30EC\u30B9\uFF08\u8907\u6570\u306A\u3089\u7E70\u308A\u8FD4\u3059\uFF09",takesValue:true,placeholder:"<\u30A2\u30C9\u30EC\u30B9>",repeatable:true};var BODY_FILE_FLAG={name:"--body-file",summary:"\u672C\u6587\u3092\u30D5\u30A1\u30A4\u30EB\u304B\u3089\u8AAD\u3080\uFF08- \u3067\u6A19\u6E96\u5165\u529B\uFF09",takesValue:true,placeholder:"<\u30D1\u30B9|->"};var BODY_FLAG={name:"--body",summary:"\u672C\u6587\u3092\u76F4\u63A5\u6307\u5B9A\u3059\u308B\uFF08\u4E00\u884C\u5411\u3051\u3002--body-file \u3068\u306E\u4F75\u7528\u306F\u30A8\u30E9\u30FC\uFF09",
6
- takesValue:true,placeholder:"<\u6587\u5B57\u5217>"};var HTML_FLAG={name:"--html",summary:"\u672C\u6587\u3092 HTML \u3068\u3057\u3066\u9001\u308B\uFF08\u65E2\u5B9A\u306F\u30C6\u30AD\u30B9\u30C8\uFF09",takesValue:false};var MESSAGE_FLAG={name:"--message",summary:"\u5143\u306E\u30E1\u30FC\u30EBID\uFF08\u4F4D\u7F6E\u5F15\u6570\u3068\u540C\u3058\u610F\u5473\uFF09",takesValue:true,placeholder:"<ID>"};var EXTERNAL_SEND_HELP="\u26A0 \u5916\u90E8\u3078\u51FA\u308B\u64CD\u4F5C\u3067\u3059\u3002\u5B9F\u884C\u3057\u305F\u77AC\u9593\u306B\u76F8\u624B\u306E\u53D7\u4FE1\u7BB1\u3078\u5C4A\u304D\u3001\u53D6\u308A\u6D88\u305B\u307E\u305B\u3093\u3002\n --yes \u304C\u7121\u3051\u308C\u3070\u5B9F\u884C\u3057\u307E\u305B\u3093\u3002--dry-run \u3067\u9001\u308B\u5185\u5BB9\uFF08\u5B9B\u5148\u30FB\u4EF6\
7
- \u540D\u30FB\u672C\u6587\u30FB\u6DFB\u4ED8\u306E\u540D\u524D\u3068\u5927\u304D\u3055\uFF09\u3092\u78BA\u304B\u3081\u3066\u304B\u3089\n --yes \u3092\u4ED8\u3051\u3066\u304F\u3060\u3055\u3044\uFF08--dry-run \u306F --yes \u3092\u8981\u308A\u307E\u305B\u3093\uFF09\u3002\n\u26A0 \u7D42\u4E86\u30B3\u30FC\u30C9 4\uFF08\u901A\u4FE1\u306E\u5931\u6557\u30FB\u30B5\u30FC\u30D0\u306E\u4E00\u6642\u30A8\u30E9\u30FC\uFF09\u3067\u3082\u3001Microsoft 365 \u5074\u3067\u306F\u9001\u4FE1\u6E08\u307F\u306E\u3053\u3068\u304C\u3042\u308A\u307E\u3059\u3002\n \u6253\u3061\u76F4\u3059\u524D\u306B twp outlook mail list --folder sentitems \u3067\u9001\u4FE1\u6E08\u307F\u30A2\u30A4\u30C6\u30E0\u3092\u78BA\u8A8D\u3057\u3066\u304F\u3060\u3055\u3044\u3002";
8
- var BODY_HELP="\u672C\u6587\u306F --body-file <\u30D1\u30B9>\uFF08- \u3067\u6A19\u6E96\u5165\u529B\uFF09\u304B --body <\u6587\u5B57\u5217> \u3067\u6E21\u3057\u307E\u3059\u3002\u6539\u884C\u3084\u8A18\u53F7\u3092\u542B\u3080\u672C\u6587\u306F\n--body-file \u3092\u4F7F\u3063\u3066\u304F\u3060\u3055\u3044\uFF08\u30B7\u30A7\u30EB\u306E\u5F15\u6570\u306B\u8F09\u305B\u308B\u3068\u58CA\u308C\u307E\u3059\uFF09\u3002";function addresses(input,flag){return repeatedValues(input,flag).map(raw=>{const value=raw.
9
- trim();if(!ADDRESS.test(value)||INVISIBLE.test(value)){throw new UsageError(`${flag} \u306B\u306F\u30E1\u30FC\u30EB\u30A2\u30C9\u30EC\u30B9\u30921\u3064\u305A\u3064\u6307\u5B9A\u3057\u3066\u304F\u3060\u3055\u3044\uFF08\u53D7\u3051\u53D6\u3063\u305F\u5024: ${raw}\uFF09`,`\u540D\u524D\u304B\u3089\u306F\u5B9B\u5148\u3092\u63A2\u3057\u307E\u305B\u3093\u3002\u8907\u6570\u306E\u5B9B\u5148\u306F ${flag} \u3092\u7E70\u308A\u8FD4\u3057\u3066\u304F\u3060\u3055\u3044\uFF08\u4F8B: ${flag} a@example.com ${flag}\
10
- b@example.com\uFF09\u3002`)}return value})}function recipients(list){return list.map(address=>({emailAddress:{address}}))}function textToHtml(text){return text.replace(/&/g,"&amp;").replace(/</g,"&lt;").replace(/>/g,"&gt;").replace(/"/g,"&quot;").replace(/\t/g,"&nbsp;&nbsp;&nbsp;&nbsp;").replace(/ {2,}/g,run=>` ${"&nbsp;".repeat(run.length-1)}`).replace(/(^|\r\n|\r|\n) /g,"$1&nbsp;").replace(/\r\n|\r|\n/g,"<br>\n")}var CONTENT_TYPES={".pdf":"application/pdf",".csv":"text/csv",".txt":"text/plain",
11
- ".md":"text/markdown",".json":"application/json",".xml":"application/xml",".html":"text/html",".png":"image/png",".jpg":"image/jpeg",".jpeg":"image/jpeg",".gif":"image/gif",".svg":"image/svg+xml",".zip":"application/zip",".xlsx":"application/vnd.openxmlformats-officedocument.spreadsheetml.sheet",".docx":"application/vnd.openxmlformats-officedocument.wordprocessingml.document",".pptx":"application/vnd.openxmlformats-officedocument.presentationml.presentation",".xls":"application/vnd.ms-excel",".d\
12
- oc":"application/msword",".ppt":"application/vnd.ms-powerpoint"};function readAttachments(input){const files=repeatedValues(input,"--attach");const opened=[];try{let total=0;for(const file of files){let fd;try{fd=fs.openSync(file,"r")}catch(err){const reason=err.code??err.message;throw new UsageError(`--attach \u306E\u30D5\u30A1\u30A4\u30EB\u3092\u8AAD\u3081\u307E\u305B\u3093: ${file}\uFF08${reason}\uFF09`)}const stat=fs.fstatSync(fd);opened.push({file,fd,size:stat.size});if(!stat.isFile())throw new UsageError(
13
- `--attach \u306B\u901A\u5E38\u306E\u30D5\u30A1\u30A4\u30EB\u4EE5\u5916\u306F\u6307\u5B9A\u3067\u304D\u307E\u305B\u3093: ${file}`);total+=stat.size}if(total>ATTACH_TOTAL_MAX_BYTES)throw tooLarge(total);let read=0;const attachments=opened.map(({file,fd})=>{const bytes=fs.readFileSync(fd);read+=bytes.byteLength;const name=path.basename(file);const contentType=CONTENT_TYPES[path.extname(name).toLowerCase()];return{name,path:path.resolve(file),bytes:bytes.byteLength,contentBytes:bytes.toString("base6\
14
- 4"),...contentType===void 0?{}:{contentType}}});if(read>ATTACH_TOTAL_MAX_BYTES)throw tooLarge(read);return attachments}finally{for(const{fd}of opened)fs.closeSync(fd)}}function tooLarge(total){return new UsageError(`\u6DFB\u4ED8\u306E\u5408\u8A08\u304C\u5927\u304D\u3059\u304E\u307E\u3059\uFF08${total} \u30D0\u30A4\u30C8\u30FB\u4E0A\u9650 ${ATTACH_TOTAL_MAX_BYTES} \u30D0\u30A4\u30C8\uFF09`,"Microsoft 365 \u306F\u30E1\u30FC\u30EB\u306B\u76F4\u63A5\u8F09\u305B\u308B\u6DFB\u4ED8\u3092 3MB \u672A\u6E80\u307E\u3067\u3068\u3057\u3066\u3044\u307E\u3059\u3002\u5927\u304D\u3044\u30D5\u30A1\u30A4\u30EB\u306F OneDrive \u306B\u7F6E\u3044\u3066\u5171\u6709\u30EA\u30F3\u30AF\u3092\u672C\u6587\u306B\u66F8\u3044\u3066\u304F\u3060\u3055\u3044\u3002")}
15
- function assertSent(body,label){if(!isRecord(body)||body["result"]!==true){throw new ApiResponseError(`${label}\u306E\u5FDC\u7B54\u304C\u60F3\u5B9A\u306E\u5F62\u3067\u306F\u3042\u308A\u307E\u305B\u3093\uFF08result \u304C true \u3067\u306F\u306A\u3044\uFF09\u3002\u9001\u4FE1\u6E08\u307F\u30A2\u30A4\u30C6\u30E0\u3092\u78BA\u8A8D\u3057\u3066\u304F\u3060\u3055\u3044\u3002`)}return body}function sentSummary(body,label){assertSent(body,label);return{sent:true}}function resolvedJson(input,key){return JSON.
16
- parse(requireResolved(input,key))}function bodySummary(text,html){if(text===void 0)return"\u672C\u6587: \u306A\u3057";return`\u672C\u6587: ${html?"HTML":"\u30C6\u30AD\u30B9\u30C8"} ${[...text].length} \u6587\u5B57`}function messageId(input,op){return assertMs365PathSegment(singleRef(input,{flag:"--message",label:"\u5143\u306E\u30E1\u30FC\u30EBID",usage:`twp outlook mail ${op} help`}),"\u5143\u306E\u30E1\u30FC\u30EBID")}function replyAudience(message,all){const replyTo=recipientsText(message["rep\
17
- lyTo"]);const from=replyTo??emailText(message["from"])??"\uFF08\u5DEE\u51FA\u4EBA\u3092\u8AAD\u3081\u307E\u305B\u3093\uFF09";if(!all)return oneLine(`To ${from}`);const to=recipientsText(message["toRecipients"]);const cc=recipientsText(message["ccRecipients"]);return oneLine([`To ${from}${to===null?"":`\u3001${to}`}`,cc===null?null:`Cc ${cc}`].filter(v=>v!==null).join(" / ")+"\uFF08\u81EA\u5206\u81EA\u8EAB\u306F Microsoft 365 \u304C\u9664\u304D\u307E\u3059\uFF09")}var send={name:"send",summary:"\u30E1\
18
- \u30FC\u30EB\u3092\u65B0\u3057\u304F\u9001\u308B\uFF08--yes \u304C\u5FC5\u8981\uFF09",usage:"twp outlook mail send --to <\u30A2\u30C9\u30EC\u30B9> [--to \u2026] [--cc <\u30A2\u30C9\u30EC\u30B9> \u2026] --subject <\u4EF6\u540D> (--body-file <\u30D1\u30B9> | --body <\u6587\u5B57\u5217>) [--html] [--attach <\u30D1\u30B9> \u2026] --yes",description:`${EXTERNAL_SEND_HELP}
19
-
20
- \u5B9B\u5148\u306F --to / --cc \u306B\u30E1\u30FC\u30EB\u30A2\u30C9\u30EC\u30B9\u3067\u6307\u5B9A\u3057\u307E\u3059\uFF08\u540D\u524D\u304B\u3089\u306F\u63A2\u3057\u307E\u305B\u3093\uFF09\u3002\u8907\u6570\u306A\u3089\u30D5\u30E9\u30B0\u3092\u7E70\u308A\u8FD4\u3057\u307E\u3059\u3002
21
- Bcc \u306F\u6307\u5B9A\u3067\u304D\u307E\u305B\u3093\uFF08Microsoft 365 \u306E\u4E2D\u7D99\u304C\u53D7\u3051\u4ED8\u3051\u306A\u3044\u305F\u3081\uFF09\u3002
22
-
23
- ${BODY_HELP}
24
- \u672C\u6587\u306F\u65E2\u5B9A\u3067\u30C6\u30AD\u30B9\u30C8\u3068\u3057\u3066\u9001\u308A\u307E\u3059\uFF08\u9014\u4E2D\u306E\u6539\u884C\u306F\u6B8B\u308A\u307E\u3059\u3002\u5148\u982D\u3068\u672B\u5C3E\u306E\u7A7A\u767D\u30FB\u6539\u884C\u306F\u30B5\u30FC\u30D0\u5074\u3067\u843D\u3061\u307E\u3059\uFF09\u3002
25
- --html \u3092\u4ED8\u3051\u308B\u3068 HTML \u3068\u3057\u3066\u9001\u308A\u307E\u3059\u3002
26
-
27
- --attach <\u30D1\u30B9> \u3067\u30D5\u30A1\u30A4\u30EB\u3092\u6DFB\u4ED8\u3067\u304D\u307E\u3059\uFF08\u7E70\u308A\u8FD4\u3057\u3066\u8907\u6570\uFF09\u3002\u5408\u8A08\u306F 3MB\uFF083,145,728 \u30D0\u30A4\u30C8\uFF09\u307E\u3067\u3067\u3059
28
- \uFF08Microsoft 365 \u304C\u30E1\u30FC\u30EB\u306B\u76F4\u63A5\u8F09\u305B\u3089\u308C\u308B\u4E0A\u9650\uFF09\u3002\u76F8\u624B\u306B\u898B\u3048\u308B\u30D5\u30A1\u30A4\u30EB\u540D\u306F\u30D1\u30B9\u306E\u672B\u5C3E\u3060\u3051\u3067\u3059\u3002
29
- --dry-run \u3067\u306F\u6DFB\u4ED8\u306E\u4E2D\u8EAB\u3092\u51FA\u3055\u305A\u3001\u540D\u524D\u3068\u5927\u304D\u3055\u3060\u3051\u3092\u8868\u793A\u3057\u307E\u3059\u3002
30
-
31
- \u9001\u3063\u305F\u30E1\u30FC\u30EB\u306F\u9001\u4FE1\u6E08\u307F\u30A2\u30A4\u30C6\u30E0\u306B\u6B8B\u308A\u307E\u3059\uFF08twp outlook mail list --folder sentitems\uFF09\u3002`,destructive:true,confirmation:"\u5916\u90E8\u3078\u30E1\u30FC\u30EB\u3092\u9001\u308B\u64CD\u4F5C\uFF08\u53D6\u308A\u6D88\u305B\u307E\u305B\u3093\uFF09",flags:[TO_FLAG,CC_FLAG,{name:"--subject",summary:"\u4EF6\u540D\uFF08\u5FC5\u9808\uFF09",takesValue:true,placeholder:"<\u4EF6\u540D>"},BODY_FILE_FLAG,BODY_FLAG,HTML_FLAG,
32
- {name:"--attach",summary:"\u6DFB\u4ED8\u3059\u308B\u30D5\u30A1\u30A4\u30EB\uFF08\u8907\u6570\u306A\u3089\u7E70\u308A\u8FD4\u3059\u30FB\u5408\u8A08 3MB \u307E\u3067\uFF09",takesValue:true,placeholder:"<\u30D1\u30B9>",repeatable:true}],forbidden:ms365Forbidden,async prepare(input){const usage="twp outlook mail send help";if(input.args.length>0)throw new UsageError(`\u4F4D\u7F6E\u5F15\u6570\u306F\u53D7\u3051\u4ED8\u3051\u307E\u305B\u3093: ${input.args.join(" ")}`,usage);const to=addresses(input,"--\
33
- to");if(to.length===0)throw new UsageError("\u5B9B\u5148\uFF08--to\uFF09\u3092\u6307\u5B9A\u3057\u3066\u304F\u3060\u3055\u3044",usage);const cc=addresses(input,"--cc");const subject=input.flags.get("--subject");if(subject===void 0||subject.trim()==="")throw new UsageError("\u4EF6\u540D\uFF08--subject\uFF09\u3092\u6307\u5B9A\u3057\u3066\u304F\u3060\u3055\u3044",usage);const attachments=readAttachments(input);const body=await readBody(input,{flag:"--body",fileFlag:"--body-file",label:"\u30E1\u30FC\u30EB\u672C\u6587",
34
- maxChars:BODY_MAX_CHARS,usage});if(body===void 0)throw new UsageError("\u672C\u6587\uFF08--body-file \u304B --body\uFF09\u3092\u6307\u5B9A\u3057\u3066\u304F\u3060\u3055\u3044",usage);return withResolved(input,{to:JSON.stringify(to),cc:JSON.stringify(cc),subject,body,attachments:JSON.stringify(attachments)})},plan(input){const to=resolvedJson(input,"to");const cc=resolvedJson(input,"cc");const attachments=resolvedJson(input,"attachments");const base={subject:requireResolved(input,"subject"),body:{
35
- contentType:input.flags.has("--html")?"HTML":"Text",content:requireResolved(input,"body")},toRecipients:recipients(to),...cc.length>0?{ccRecipients:recipients(cc)}:{}};if(attachments.length===0)return{method:"POST",path:ms365Path("/outlook/sendMail"),body:base};const file=(a,contentBytes)=>({"@odata.type":"#microsoft.graph.fileAttachment",name:a.name,...a.contentType===void 0?{}:{contentType:a.contentType},contentBytes});return{method:"POST",path:ms365Path("/outlook/sendMail"),body:new JsonBodyWithView(
36
- {...base,attachments:attachments.map(a=>file(a,a.contentBytes))},{...base,attachments:attachments.map(a=>file(a,`\uFF08base64\u30FB\u5143 ${a.bytes} \u30D0\u30A4\u30C8\u30FB\u8868\u793A\u3057\u306A\u3044\uFF09`))})}},plannedNotes(input){const to=resolvedJson(input,"to");const cc=resolvedJson(input,"cc");const attachments=resolvedJson(input,"attachments");return[`\u9001\u4FE1\u5185\u5BB9: To ${to.join("\u3001")}${cc.length>0?` / Cc ${cc.join("\u3001")}`:""} / \u4EF6\u540D\u300C${requireResolved(input,
37
- "subject")}\u300D / ${bodySummary(requireResolved(input,"body"),input.flags.has("--html"))} / \u6DFB\u4ED8: ${attachments.length===0?"\u306A\u3057":attachments.map(a=>`${a.name}\uFF08${a.bytes} \u30D0\u30A4\u30C8\u30FB${a.path}\uFF09`).join("\u3001")}`]},summarize:body=>sentSummary(body,"\u30E1\u30FC\u30EB\u9001\u4FE1"),raw:body=>assertSent(body,"\u30E1\u30FC\u30EB\u9001\u4FE1"),notes:()=>["\u9001\u4FE1\u3057\u307E\u3057\u305F\u3002\u9001\u4FE1\u6E08\u307F\u30A2\u30A4\u30C6\u30E0\uFF08twp outlook mail list --folder sentitems\uFF09\u3067\u78BA\u8A8D\u3067\u304D\u307E\u3059\u3002"]};
38
- function replyOperation(all){const op=all?"reply-all":"reply";const endpoint=all?"replyAll":"reply";const label=all?"\u5168\u54E1\u8FD4\u4FE1":"\u8FD4\u4FE1";return{name:op,summary:all?"\u30E1\u30FC\u30EB\u306B\u5168\u54E1\u8FD4\u4FE1\u3059\u308B\uFF08--yes \u304C\u5FC5\u8981\uFF09":"\u30E1\u30FC\u30EB\u306E\u5DEE\u51FA\u4EBA\u306B\u8FD4\u4FE1\u3059\u308B\uFF08--yes \u304C\u5FC5\u8981\uFF09",usage:`twp outlook mail ${op} <\u30E1\u30FC\u30EBID> (--body-file <\u30D1\u30B9> | --body <\u6587\u5B57\u5217>) [--html] --yes`,
39
- description:`${EXTERNAL_SEND_HELP}
40
-
41
- `+(all?"\u5143\u306E\u30E1\u30FC\u30EB\u306E\u5DEE\u51FA\u4EBA\u3068\u3001To\u30FBCc \u306E\u5168\u54E1\u306B\u8FD4\u4FE1\u3057\u307E\u3059\uFF08\u81EA\u5206\u81EA\u8EAB\u306F Microsoft 365 \u304C\u9664\u304D\u307E\u3059\uFF09\u3002\n":"\u5143\u306E\u30E1\u30FC\u30EB\u306E\u5DEE\u51FA\u4EBA\uFF08\u8FD4\u4FE1\u5148\u304C\u8A2D\u5B9A\u3055\u308C\u3066\u3044\u308C\u3070\u305D\u306E\u76F8\u624B\uFF09\u306B\u8FD4\u4FE1\u3057\u307E\u3059\u3002\n")+`\u5B9B\u5148\u306F Microsoft 365 \u304C\u5143\u306E\u30E1\u30FC\u30EB\u304B\u3089\u6C7A\u3081\u307E\u3059\u3002\u9001\u308B\u524D\u306B\u5143\u306E\u30E1\u30FC\u30EB\u3092\u8AAD\u307F\u3001\u5C4A\u304F\u76F8\u624B\u306E\u76EE\u5B89\u3092\u8868\
42
- \u793A\u3057\u307E\u3059
43
- \uFF08--dry-run \u3067\u3082\u8868\u793A\u3057\u307E\u3059\uFF09\u3002\u5B9B\u5148\u30FBCc \u3092\u8DB3\u3059\u3053\u3068\u3001\u6DFB\u4ED8\u3092\u4ED8\u3051\u308B\u3053\u3068\u306F\u3067\u304D\u307E\u305B\u3093\u3002
44
- \u30E1\u30FC\u30EBID \u306F twp outlook mail list \u306E id \u3067\u3059\u3002
45
-
46
- ${BODY_HELP}
47
- \u672C\u6587\u306F\u5143\u306E\u30E1\u30FC\u30EB\u306E\u4E0A\u306B\u5DEE\u3057\u8FBC\u307E\u308C\u307E\u3059\u3002Microsoft 365 \u306F\u672C\u6587\u3092 HTML \u3068\u3057\u3066\u8AAD\u3080\u306E\u3067\u3001\u65E2\u5B9A\uFF08\u30C6\u30AD\u30B9\u30C8\uFF09\u3067\u306F
48
- \u6539\u884C\u3068\u8A18\u53F7\u304C\u898B\u305F\u3068\u304A\u308A\u306B\u5C4A\u304F\u3088\u3046 HTML \u306B\u76F4\u3057\u3066\u9001\u308A\u307E\u3059\uFF08--dry-run \u306E body \u306B\u5909\u63DB\u5F8C\u306E\u5024\u304C\u51FA\u307E\u3059\uFF09\u3002
49
- --html \u3092\u4ED8\u3051\u308B\u3068\u3001\u672C\u6587\u3092 HTML \u3068\u3057\u3066\u305D\u306E\u307E\u307E\u9001\u308A\u307E\u3059\u3002`,destructive:true,confirmation:"\u5916\u90E8\u3078\u30E1\u30FC\u30EB\u3092\u9001\u308B\u64CD\u4F5C\uFF08\u53D6\u308A\u6D88\u305B\u307E\u305B\u3093\uFF09",flags:[MESSAGE_FLAG,BODY_FILE_FLAG,BODY_FLAG,HTML_FLAG],forbidden:ms365Forbidden,async prepare(input,ctx){const usage=`twp outlook mail ${op} help`;const id=messageId(input,op);const body=await readBody(input,
50
- {flag:"--body",fileFlag:"--body-file",label:`${label}\u306E\u672C\u6587`,maxChars:BODY_MAX_CHARS,usage});if(body===void 0)throw new UsageError("\u672C\u6587\uFF08--body-file \u304B --body\uFF09\u3092\u6307\u5B9A\u3057\u3066\u304F\u3060\u3055\u3044",usage);const original=await ctx.resolver.ms365Message(id);return withResolved(input,{messageId:id,body,audience:replyAudience(original,all),subject:oneLine(str(original["subject"])??"\uFF08\u4EF6\u540D\u306A\u3057\uFF09")})},plan(input){const body=requireResolved(
51
- input,"body");const id=ms365Segment(requireResolved(input,"messageId"),"\u5143\u306E\u30E1\u30FC\u30EBID");return{method:"POST",path:ms365Path(`/outlook/messages/${id}/${endpoint}`),body:{comment:input.flags.has("--html")?body:textToHtml(body)}}},plannedNotes:input=>[`${label}\u306E\u5185\u5BB9: \u5143\u306E\u30E1\u30FC\u30EB\u300C${requireResolved(input,"subject")}\u300D / \u5C4A\u304F\u76F8\u624B\u306E\u76EE\u5B89\uFF08\u5143\u306E\u30E1\u30FC\u30EB\u304B\u3089 Microsoft 365 \u304C\u6C7A\u3081\u307E\u3059\uFF09: ${requireResolved(
52
- input,"audience")} / ${bodySummary(requireResolved(input,"body"),input.flags.has("--html"))}`],summarize:body=>sentSummary(body,label),raw:body=>assertSent(body,label),notes:()=>[`${label}\u3057\u307E\u3057\u305F\u3002\u9001\u4FE1\u6E08\u307F\u30A2\u30A4\u30C6\u30E0\uFF08twp outlook mail list --folder sentitems\uFF09\u3067\u78BA\u8A8D\u3067\u304D\u307E\u3059\u3002`]}}var forward={name:"forward",summary:"\u30E1\u30FC\u30EB\u3092\u8EE2\u9001\u3059\u308B\uFF08--yes \u304C\u5FC5\u8981\uFF09",usage:"\
53
- twp outlook mail forward <\u30E1\u30FC\u30EBID> --to <\u30A2\u30C9\u30EC\u30B9> [--to \u2026] [--body-file <\u30D1\u30B9> | --body <\u6587\u5B57\u5217>] [--html] --yes",description:`${EXTERNAL_SEND_HELP}
54
-
55
- \u5143\u306E\u30E1\u30FC\u30EB\u3092\u3001\u6DFB\u4ED8\u3082\u542B\u3081\u3066 --to \u306E\u76F8\u624B\u3078\u8EE2\u9001\u3057\u307E\u3059\u3002\u5B9B\u5148\u306F\u30E1\u30FC\u30EB\u30A2\u30C9\u30EC\u30B9\u3067\u6307\u5B9A\u3057\u307E\u3059\uFF08\u540D\u524D\u304B\u3089\u306F\u63A2\u3057\u307E\u305B\u3093\uFF09\u3002
56
- \u8907\u6570\u306A\u3089\u30D5\u30E9\u30B0\u3092\u7E70\u308A\u8FD4\u3057\u307E\u3059\u3002Cc\u30FBBcc \u306F\u6307\u5B9A\u3067\u304D\u307E\u305B\u3093\uFF08Microsoft 365 \u306E\u4E2D\u7D99\u304C\u53D7\u3051\u4ED8\u3051\u306A\u3044\u305F\u3081\uFF09\u3002
57
- \u30E1\u30FC\u30EBID \u306F twp outlook mail list \u306E id \u3067\u3059\u3002
58
-
59
- \u672C\u6587\uFF08\u6DFB\u3048\u66F8\u304D\uFF09\u306F\u4EFB\u610F\u3067\u3059\u3002${BODY_HELP}
60
- \u672C\u6587\u306F\u5143\u306E\u30E1\u30FC\u30EB\u306E\u4E0A\u306B\u5DEE\u3057\u8FBC\u307E\u308C\u307E\u3059\u3002Microsoft 365 \u306F\u672C\u6587\u3092 HTML \u3068\u3057\u3066\u8AAD\u3080\u306E\u3067\u3001\u65E2\u5B9A\uFF08\u30C6\u30AD\u30B9\u30C8\uFF09\u3067\u306F
61
- \u6539\u884C\u3068\u8A18\u53F7\u304C\u898B\u305F\u3068\u304A\u308A\u306B\u5C4A\u304F\u3088\u3046 HTML \u306B\u76F4\u3057\u3066\u9001\u308A\u307E\u3059\u3002--html \u3092\u4ED8\u3051\u308B\u3068\u3001\u672C\u6587\u3092 HTML \u3068\u3057\u3066\u305D\u306E\u307E\u307E\u9001\u308A\u307E\u3059\u3002`,destructive:true,confirmation:"\u5916\u90E8\u3078\u30E1\u30FC\u30EB\u3092\u9001\u308B\u64CD\u4F5C\uFF08\u53D6\u308A\u6D88\u305B\u307E\u305B\u3093\uFF09",flags:[MESSAGE_FLAG,TO_FLAG,BODY_FILE_FLAG,BODY_FLAG,
62
- HTML_FLAG],forbidden:ms365Forbidden,async prepare(input){const usage="twp outlook mail forward help";const id=messageId(input,"forward");const to=addresses(input,"--to");if(to.length===0)throw new UsageError("\u8EE2\u9001\u5148\uFF08--to\uFF09\u3092\u6307\u5B9A\u3057\u3066\u304F\u3060\u3055\u3044",usage);if(input.flags.has("--html")&&!input.flags.has("--body")&&!input.flags.has("--body-file")){throw new UsageError("--html \u306F\u672C\u6587\uFF08--body-file \u304B --body\uFF09\u3068\u4E00\u7DD2\u306B\u6307\u5B9A\u3057\u3066\u304F\u3060\u3055\u3044",
63
- usage)}const body=await readBody(input,{flag:"--body",fileFlag:"--body-file",label:"\u8EE2\u9001\u306E\u672C\u6587",maxChars:BODY_MAX_CHARS,usage});return withResolved(input,{messageId:id,to:JSON.stringify(to),...body===void 0?{}:{body}})},plan(input){const id=ms365Segment(requireResolved(input,"messageId"),"\u5143\u306E\u30E1\u30FC\u30EBID");const body=input.resolved?.["body"];return{method:"POST",path:ms365Path(`/outlook/messages/${id}/forward`),body:{...body===void 0?{}:{comment:input.flags.has(
64
- "--html")?body:textToHtml(body)},toRecipients:recipients(resolvedJson(input,"to"))}}},plannedNotes:input=>[`\u8EE2\u9001\u306E\u5185\u5BB9: To ${resolvedJson(input,"to").join("\u3001")} / ${bodySummary(input.resolved?.["body"],input.flags.has("--html"))}\uFF08\u5143\u306E\u30E1\u30FC\u30EB\u3068\u6DFB\u4ED8\u306F\u305D\u306E\u307E\u307E\u4ED8\u304D\u307E\u3059\uFF09`],summarize:body=>sentSummary(body,"\u8EE2\u9001"),raw:body=>assertSent(body,"\u8EE2\u9001"),notes:()=>["\u8EE2\u9001\u3057\u307E\u3057\u305F\u3002\u9001\u4FE1\u6E08\u307F\u30A2\u30A4\u30C6\u30E0\uFF08twp outloo\
65
- k mail list --folder sentitems\uFF09\u3067\u78BA\u8A8D\u3067\u304D\u307E\u3059\u3002"]};var mailSendOperations=[send,replyOperation(false),replyOperation(true),forward];var MAIL_TOP_MAX=1e3;var FOLDER=/^[A-Za-z0-9_=-]+$/;var DATE=/^([0-9]{4})-([0-9]{2})-([0-9]{2})$/;var MAIL_LIST_COLUMNS=["id","receivedDateTime","from","subject","isRead","hasAttachments","importance"];var MAIL_GET_COLUMNS=["id","receivedDateTime","from","to","cc","subject","importance","isRead","hasAttachments","webLink","body"];var ATTACHMENT_COLUMNS=["id","name","type","contentType","size","isInline"];function attachmentRow(row){const source=isRecord(row)?row:{};const odataType=str(source["@o\
66
- data.type"]);return pick({...source,type:odataType===null?null:odataType.replace(/^#microsoft\.graph\./,"")},ATTACHMENT_COLUMNS)}var EVENT_LIST_COLUMNS=["id","subject","start","end","isAllDay","location","organizer"];var EVENT_GET_COLUMNS=["id","subject","start","end","isAllDay","location","organizer","attendees","isOnlineMeeting","onlineMeetingUrl","webLink","body"];function mailRow(row){const source=isRecord(row)?row:{};return pick({...source,from:emailText(source["from"]),to:recipientsText(source["\
67
- toRecipients"]),cc:recipientsText(source["ccRecipients"]),body:plainText(source["body"])},MAIL_GET_COLUMNS)}function eventRow(row){const source=isRecord(row)?row:{};const location=isRecord(source["location"])?str(source["location"]["displayName"]):null;const attendees=Array.isArray(source["attendees"])?source["attendees"].map(emailText).filter(v=>v!==null).join("\u3001")||null:null;const online=isRecord(source["onlineMeeting"])?str(source["onlineMeeting"]["joinUrl"]):null;return pick({...source,
68
- start:dateTimeText(source["start"]),end:dateTimeText(source["end"]),location,organizer:emailText(source["organizer"]),attendees,onlineMeetingUrl:str(source["onlineMeetingUrl"])??online,body:plainText(source["body"])},EVENT_GET_COLUMNS)}function mailCursorKind(hasSearch){return hasSearch?"skiptoken":"skip"}function joinFilters(parts){const present=parts.filter(p=>p!==void 0);if(present.length===0)return void 0;if(present.length===1)return present[0];return present.map(p=>`(${p})`).join(" and ")}function jstDayStartUtc(raw,flag,addDays=0){
69
- const m=DATE.exec(raw.trim());const[y,mo,d]=m===null?[NaN,NaN,NaN]:[Number(m[1]),Number(m[2]),Number(m[3])];const date=new Date(Date.UTC(y,mo-1,d+addDays,-9,0,0));const check=new Date(Date.UTC(y,mo-1,d));if(m===null||y<1970||Number.isNaN(date.getTime())||check.getUTCMonth()!==mo-1||check.getUTCDate()!==d){throw new UsageError(`${flag} \u306F yyyy-MM-dd \u306E\u5F62\u3067\u6307\u5B9A\u3057\u3066\u304F\u3060\u3055\u3044\uFF08\u53D7\u3051\u53D6\u3063\u305F\u5024: ${raw}\uFF09`)}return date.toISOString().
70
- slice(0,19)}function messageAndAttachment(input,usage){const slots=[{flag:"--message",label:"\u30E1\u30FC\u30EBID"},{flag:"--attachment",label:"\u6DFB\u4ED8ID"}];const values=new Map;const open=[];for(const slot of slots){const fromFlag=input.flags.get(slot.flag);if(fromFlag===void 0){open.push(slot);continue}if(fromFlag.trim()==="")throw new UsageError(`${slot.flag} \u306B\u5024\u304C\u3042\u308A\u307E\u305B\u3093`,usage);values.set(slot.flag,fromFlag.trim())}const args=input.args.map(arg=>arg.
71
- trim()).filter(arg=>arg!=="");if(args.length>open.length){throw new UsageError(`\u4F4D\u7F6E\u5F15\u6570\u304C\u591A\u3059\u304E\u307E\u3059: ${args.slice(open.length).join(" ")}`,usage)}if(args.length<open.length)throw new UsageError(`${open[args.length]?.label}\u3092\u6307\u5B9A\u3057\u3066\u304F\u3060\u3055\u3044`,usage);open.forEach((slot,index)=>values.set(slot.flag,args[index]));return{message:assertMs365PathSegment(values.get("--message"),"\u30E1\u30FC\u30EBID"),attachment:assertMs365PathSegment(
72
- values.get("--attachment"),"\u6DFB\u4ED8ID")}}function oneId(input,flag,label,usage){return assertMs365PathSegment(singleRef(input,{flag,label,usage}),label)}var mailResource={name:"mail",summary:"\u30E1\u30FC\u30EB\uFF08\u4E00\u89A7\u30FB\u8A73\u7D30\u30FB\u9001\u4FE1\u30FB\u8FD4\u4FE1\u30FB\u8EE2\u9001\uFF09",operations:[{name:"list",summary:"\u30E1\u30FC\u30EB\u3092\u4E00\u89A7\u3059\u308B\uFF08\u65E2\u5B9A\u306F\u53D7\u4FE1\u30C8\u30EC\u30A4\uFF09",usage:"twp outlook mail list [--folder <\u540D\u524D|\
73
- ID>] [--unread] [--search <\u8A9E>] [--filter <OData>] [--limit <\u4EF6\u6570>] [--all]",description:'\u65E2\u5B9A\u306F\u53D7\u4FE1\u30C8\u30EC\u30A4\uFF08inbox\uFF09\u3092\u65B0\u3057\u3044\u9806\u306B\u8FD4\u3057\u307E\u3059\u3002--folder \u306B\u306F sentitems / drafts / deleteditems /\narchive \u306E\u3088\u3046\u306A\u65E2\u77E5\u306E\u540D\u524D\u304B\u3001\u30D5\u30A9\u30EB\u30C0ID \u3092\u6307\u5B9A\u3067\u304D\u307E\u3059\u3002\n\n--search \u306F\u4EF6\u540D\u30FB\u672C\u6587\u30FB\u5DEE\u51FA\u4EBA\u306A\u3069\u306E\u5168\u6587\u691C\u7D22\u3067\u3059\uFF08Microsoft 365 \u306E\u691C\u7D22\u69CB\u6587\uFF09\u3002--search \u306F --filter /\n--unread / --orderby \u3068\u4F75\u7528\u3067\u304D\u307E\u305B\u3093\uFF08Microsoft 365 \u5074\u304C\u53D7\u3051\u4ED8\u3051\u306A\u3044\u305F\u3081\u3001\u9001\u308B\u524D\u306B\u7D42\u4E86\u30B3\u30FC\u30C9 2 \u3067\u6B62\u3081\u307E\u3059\uFF09\u3002\n--filter / --orderby / --select \u306F Microsoft Graph \u306E OData \u69CB\u6587\u3092\u305D\u306E\u307E\u307E\u6E21\u3057\u307E\u3059\n\uFF08\u4F8B: --filter "receivedDateTime ge 2026-09-01T00:00:00Z"\uFF09\u3002\n\n\u8981\u7D04\u5217\u306E body \u306F\u8A73\
74
- \u7D30\uFF08twp outlook mail get\uFF09\u306B\u3060\u3051\u51FA\u307E\u3059\u3002--output json \u306F Graph \u306E\u9805\u76EE\u3092\u3059\u3079\u3066\u51FA\u3057\u307E\u3059\u3002\n\n'+graphPagingHelp(MAIL_TOP_MAX),flags:[{name:"--folder",summary:"\u30E1\u30FC\u30EB\u30D5\u30A9\u30EB\u30C0\uFF08\u65E2\u5B9A inbox\uFF09",takesValue:true,placeholder:"<\u540D\u524D|ID>"},{name:"--unread",summary:"\u672A\u8AAD\u3060\u3051\u306B\u3059\u308B",takesValue:false},{name:"--search",summary:"\u5168\u6587\u691C\u7D22\u306E\u8A9E",
75
- takesValue:true,placeholder:"<\u8A9E>"},{name:"--filter",summary:"OData \u306E $filter\uFF08\u305D\u306E\u307E\u307E\u6E21\u3059\uFF09",takesValue:true,placeholder:"<\u5F0F>"},{name:"--orderby",summary:"OData \u306E $orderby\uFF08\u305D\u306E\u307E\u307E\u6E21\u3059\uFF09",takesValue:true,placeholder:"<\u5F0F>"},{name:"--select",summary:"OData \u306E $select\uFF08\u8FD4\u3059\u9805\u76EE\u3092\u30AB\u30F3\u30DE\u533A\u5207\u308A\u3067\uFF09",takesValue:true,placeholder:"<\u9805\u76EE>"},...graphListFlags(
76
- {limit:true})],forbidden:ms365Forbidden,paging:graphPaging({label:"\u30E1\u30FC\u30EB\u4E00\u89A7",kind:"either",cursorParamFor:plan=>mailCursorKind(plan.query?.["search"]!==void 0)}),plan(input){const folder=nonEmpty(input.flags,"--folder")?.trim();if(folder!==void 0&&!FOLDER.test(folder)){throw new UsageError(`--folder \u306E\u5F62\u5F0F\u304C\u9055\u3044\u307E\u3059: ${folder}`,"inbox / sentitems \u306E\u3088\u3046\u306A\u65E2\u77E5\u306E\u540D\u524D\u304B\u3001\u30D5\u30A9\u30EB\u30C0ID\uFF08\u82F1\u6570\u5B57\u3068 - _ =\uFF09\u3092\u6307\u5B9A\u3057\u3066\u304F\u3060\u3055\u3044\u3002")}
77
- const search=nonEmpty(input.flags,"--search");if(search!==void 0&&search.includes('"')){throw new UsageError(`--search \u306B " \u306F\u4F7F\u3048\u307E\u305B\u3093\uFF08\u53D7\u3051\u53D6\u3063\u305F\u5024: ${search}\uFF09`,"\u8A9E\u3060\u3051\u3092\u6307\u5B9A\u3057\u3066\u304F\u3060\u3055\u3044\uFF08\u5F15\u7528\u7B26\u306F\u3053\u3061\u3089\u3067\u4ED8\u3051\u307E\u3059\uFF09\u3002")}if(search!==void 0){const clash=["--filter","--unread","--orderby"].filter(flag=>input.flags.has(flag));if(clash.
78
- length>0){throw new UsageError(`--search \u306F ${clash.join(" / ")} \u3068\u4F75\u7528\u3067\u304D\u307E\u305B\u3093\uFF08Microsoft 365 \u304C\u53D7\u3051\u4ED8\u3051\u307E\u305B\u3093\uFF09`,"--search \u3092\u5916\u3057\u3066 --filter \u3067\u7D5E\u308B\u304B\u3001--search \u3060\u3051\u3067\u691C\u7D22\u3057\u3066\u304F\u3060\u3055\u3044\u3002")}}const kind=mailCursorKind(search!==void 0);return{method:"GET",path:ms365Path("/outlook/messages"),query:{top:topFlag(input,MAIL_TOP_MAX),folder,search,
79
- filter:joinFilters([nonEmpty(input.flags,"--filter"),input.flags.has("--unread")?"isRead eq false":void 0]),orderby:nonEmpty(input.flags,"--orderby"),select:nonEmpty(input.flags,"--select"),[kind]:cursorFlag(input,kind)}}},summarize:body=>graphValue(body,"\u30E1\u30FC\u30EB\u4E00\u89A7").map(row=>{const source=isRecord(row)?row:{};return pick({...source,from:emailText(source["from"])},MAIL_LIST_COLUMNS)}),raw:body=>graphValue(body,"\u30E1\u30FC\u30EB\u4E00\u89A7"),notes:body=>graphPagingNotes(body,
80
- "\u30E1\u30FC\u30EB\u4E00\u89A7")},{name:"get",summary:"\u30E1\u30FC\u30EB1\u4EF6\u306E\u8A73\u7D30\u3092\u8868\u793A\u3059\u308B\uFF08\u672C\u6587\u3064\u304D\uFF09",usage:"twp outlook mail get <\u30E1\u30FC\u30EBID>",description:"\u30E1\u30FC\u30EBID \u306F twp outlook mail list \u306E id \u3067\u3059\u3002\n\u8981\u7D04\u5217\u306E body \u306F\u672C\u6587\u3092\u30D7\u30EC\u30FC\u30F3\u30C6\u30AD\u30B9\u30C8\u306B\u76F4\u3057\u305F\u3082\u306E\u3067\u3059\uFF08HTML \u306E\u672C\u6587\u3082 1\u884C\u306B\u7573\u307F\u307E\u3059\uFF09\u3002\n\u5143\u306E HTML\u30FB\u5B9B\u5148\u306E\u5168\u9805\u76EE\u306F --output json \u3067\u8AAD\u3081\u307E\u3059\u3002\u6DFB\u4ED8\u306F twp outlook attachment list \u3067\u4E00\u89A7\u3067\u304D\u307E\u3059\u3002",
81
- flags:[{name:"--message",summary:"\u30E1\u30FC\u30EBID\uFF08\u4F4D\u7F6E\u5F15\u6570\u3068\u540C\u3058\u610F\u5473\uFF09",takesValue:true,placeholder:"<ID>"}],forbidden:ms365Forbidden,async prepare(input){return withResolved(input,{messageId:oneId(input,"--message","\u30E1\u30FC\u30EBID","twp outlook mail get help")})},plan(input){return{method:"GET",path:ms365Path(`/outlook/messages/${ms365Segment(requireResolved(input,"messageId"),"\u30E1\u30FC\u30EBID")}`)}},summarize:body=>mailRow(graphData(
82
- body,"\u30E1\u30FC\u30EB\u8A73\u7D30")),raw:body=>graphData(body,"\u30E1\u30FC\u30EB\u8A73\u7D30")},...mailSendOperations]};var attachmentResource={name:"attachment",summary:"\u30E1\u30FC\u30EB\u306E\u6DFB\u4ED8\u30D5\u30A1\u30A4\u30EB\uFF08\u4E00\u89A7\u30FB\u30C0\u30A6\u30F3\u30ED\u30FC\u30C9\uFF09",operations:[{name:"list",summary:"\u30E1\u30FC\u30EB\u306E\u6DFB\u4ED8\u30D5\u30A1\u30A4\u30EB\u3092\u4E00\u89A7\u3059\u308B",usage:"twp outlook attachment list <\u30E1\u30FC\u30EBID>",description:"\
83
- download \u306B\u6E21\u3059 id \u3068\u3001\u843D\u3068\u3059\u524D\u306B\u5927\u304D\u3055\u3092\u5224\u65AD\u3059\u308B\u305F\u3081\u306E size \u3092\u8FD4\u3057\u307E\u3059\uFF08\u672C\u4F53\u306F\u542B\u307F\u307E\u305B\u3093\uFF09\u3002\ntype \u304C fileAttachment \u306E\u3082\u306E\u3060\u3051\u5B9F\u4F53\u3092\u30C0\u30A6\u30F3\u30ED\u30FC\u30C9\u3067\u304D\u307E\u3059\uFF08itemAttachment\uFF1D\u6DFB\u4ED8\u3055\u308C\u305F\u30E1\u30FC\u30EB\u30FB\u4E88\u5B9A\u3001\nreferenceAttachment\uFF1DOneDrive \u7B49\u3078\u306E\u30EA\u30F3\u30AF\u306F\u5B9F\u4F53\u3092\u6301\u3061\u307E\u305B\u3093\uFF09\u3002\nsize \u306F Microsoft 365 \u304C\u6570\u3048\u308B\u6DFB\u4ED8\u306E\u5927\u304D\u3055\u3067\u3001\u66F8\u304D\u51FA\u3057\u305F\u30D5\u30A1\u30A4\u30EB\u3088\u308A\u6570\u767E\u30D0\u30A4\u30C8\u5927\u304D\u304F\u51FA\u307E\u3059\n\uFF08\u4ED8\u5E2F\u60C5\u5831\u3092\u542B\u3080\u305F\u3081\u30022026-10-01 \u5B9F\u6E2C\u3067 140,793 \u306B\u5BFE\u3057\u5B9F\u4F53 140,399 \u30D0\u30A4\u30C8\uFF09\u3002\n\u3053\u306E API \u306F\u30DA\u30FC\u30B8\u30F3\u30B0\u3092\u6301\u3061\u307E\u305B\u3093\uFF08\u30E1\u30FC\u30EB1\u4EF6\u3076\u3093\u306E\u6DFB\u4ED8\u3092\u3059\u3079\u3066\u8FD4\u3057\u307E\u3059\uFF09\u3002",
84
- flags:[{name:"--message",summary:"\u30E1\u30FC\u30EBID\uFF08\u4F4D\u7F6E\u5F15\u6570\u3068\u540C\u3058\u610F\u5473\uFF09",takesValue:true,placeholder:"<ID>"}],forbidden:ms365Forbidden,async prepare(input){return withResolved(input,{messageId:oneId(input,"--message","\u30E1\u30FC\u30EBID","twp outlook attachment list help")})},plan(input){return{method:"GET",path:ms365Path(`/outlook/messages/${ms365Segment(requireResolved(input,"messageId"),"\u30E1\u30FC\u30EBID")}/attachments`)}},summarize:body=>graphValue(
85
- body,"\u6DFB\u4ED8\u4E00\u89A7").map(attachmentRow),raw:body=>graphValue(body,"\u6DFB\u4ED8\u4E00\u89A7")},{name:"download",summary:"\u30E1\u30FC\u30EB\u306E\u6DFB\u4ED8\u30D5\u30A1\u30A4\u30EB\u3092 --out \u3078\u66F8\u304D\u51FA\u3059",usage:"twp outlook attachment download <\u30E1\u30FC\u30EBID> <\u6DFB\u4ED8ID> --out <\u30D1\u30B9> [--force]",description:"\u6DFB\u4ED8\u306E\u5B9F\u4F53\u3092 --out \u306E\u30D1\u30B9\u3078\u305D\u306E\u307E\u307E\u66F8\u304D\u307E\u3059\uFF08\u6A19\u6E96\u51FA\u529B\u3078\u306F\u51FA\u3057\u307E\u305B\u3093\uFF09\u3002\n\u6A19\u6E96\u51FA\u529B\u306B\u51FA\u308B\u306E\u306F\u66F8\u3044\u305F\u5834\u6240\u30FB\u30D0\u30A4\u30C8\u6570\u30FBContent-Type \u3060\u3051\u3067\u3001--output json \u3067\u305D\u306E\u307E\u307E\u8AAD\u3081\u307E\u3059\u3002\n\n\u66F8\u304D\u51FA\u3057\u5148\u306E\u30D5\u30A1\u30A4\u30EB\u540D\u306F --out \u3067\u5FC5\u305A\u6307\u5B9A\u3057\u307E\u3059\uFF08\u6DFB\u4ED8\u306E\u540D\u524D\u304B\u3089\
86
- \u30D1\u30B9\u3092\u7D44\u307F\u7ACB\u3066\u307E\u305B\u3093\uFF09\u3002\n\u65E2\u5B58\u30D5\u30A1\u30A4\u30EB\u306F\u4E0A\u66F8\u304D\u3057\u307E\u305B\u3093\uFF08--force \u3092\u4ED8\u3051\u305F\u3068\u304D\u3060\u3051\u4E0A\u66F8\u304D\u3057\u307E\u3059\uFF09\u3002\n\u66F8\u304D\u51FA\u3057\u5148\u306E\u30C7\u30A3\u30EC\u30AF\u30C8\u30EA\u306F\u81EA\u52D5\u3067\u4F5C\u308A\u307E\u305B\u3093\u3002\u6DFB\u4ED8ID \u306F twp outlook attachment list \u306E id \u3067\u3059\u3002",flags:[{name:"--me\
87
- ssage",summary:"\u30E1\u30FC\u30EBID\uFF08\u7B2C1\u4F4D\u7F6E\u5F15\u6570\u3068\u540C\u3058\u610F\u5473\uFF09",takesValue:true,placeholder:"<ID>"},{name:"--attachment",summary:"\u6DFB\u4ED8ID\uFF08\u7B2C2\u4F4D\u7F6E\u5F15\u6570\u3068\u540C\u3058\u610F\u5473\uFF09",takesValue:true,placeholder:"<ID>"},{name:"--out",summary:"\u66F8\u304D\u51FA\u3057\u5148\u306E\u30D5\u30A1\u30A4\u30EB\u30D1\u30B9\uFF08\u5FC5\u9808\uFF09",takesValue:true,placeholder:"<\u30D1\u30B9>"},{name:"--force",summary:"\u65E2\u5B58\u30D5\u30A1\u30A4\u30EB\
88
- \u3092\u4E0A\u66F8\u304D\u3059\u308B",takesValue:false}],forbidden:ms365Forbidden,download:{outFlag:"--out",forceFlag:"--force"},async prepare(input){const refs=messageAndAttachment(input,"twp outlook attachment download help");return withResolved(input,{messageId:refs.message,attachmentId:refs.attachment})},plan(input){const message=ms365Segment(requireResolved(input,"messageId"),"\u30E1\u30FC\u30EBID");const attachment=ms365Segment(requireResolved(input,"attachmentId"),"\u6DFB\u4ED8ID");return{
89
- method:"GET",path:ms365Path(`/outlook/messages/${message}/attachments/${attachment}/content`)}},summarize:body=>body,raw:body=>body,notes:body=>isRecord(body)&&body["size"]===0?["\u66F8\u304D\u51FA\u3057\u305F\u30D5\u30A1\u30A4\u30EB\u306F 0 \u30D0\u30A4\u30C8\u3067\u3059\u3002\u6DFB\u4ED8\u3055\u308C\u305F\u30E1\u30FC\u30EB\u30FB\u4E88\u5B9A\uFF08type \u304C itemAttachment\uFF09\u3084\u30EA\u30F3\u30AF\u306E\u6DFB\u4ED8\uFF08referenceAttachment\uFF09\u306F\u5B9F\u4F53\u3092\u30C0\u30A6\u30F3\u30ED\u30FC\u30C9\u3067\u304D\u307E\u305B\u3093\uFF08twp outlook attachment list \u306E type \u3067\u78BA\u8A8D\u3067\u304D\u307E\u3059\uFF09\u3002"]:
90
- []}]};var eventResource={name:"event",summary:"\u4E88\u5B9A\u8868\u306E\u4E88\u5B9A\uFF08\u4E00\u89A7\u30FB\u8A73\u7D30\uFF09",operations:[{name:"list",summary:"\u4E88\u5B9A\u3092\u4E00\u89A7\u3059\u308B",usage:"twp outlook event list [--from <yyyy-MM-dd>] [--to <yyyy-MM-dd>] [--filter <OData>] [--limit <\u4EF6\u6570>] [--all]",description:'\u81EA\u5206\u306E\u4E88\u5B9A\u8868\u306E\u4E88\u5B9A\u3092\u8FD4\u3057\u307E\u3059\u3002--from / --to \u306F\u65E5\u672C\u6642\u9593\u306E\u65E5\u4ED8\u3067\u3001\u958B\u59CB\u65E5\u6642\u304C\u305D\u306E\u7BC4\u56F2\uFF08\u4E21\u7AEF\u306E\u65E5\u3092\u542B\u3080\uFF09\u306B\n\u3042\u308B\u4E88\u5B9A\u306B\u7D5E\u308A\u307E\u3059\u3002\u65E5\u6642\u306F UTC \u3067\u8FD4\u308A\u307E\u3059\uFF08start / end \u306E\u62EC\u5F27\u5185\u304C\u30BF\u30A4\u30E0\u30BE\u30FC\u30F3\uFF09\u3002\n\n\u26A0 \u7E70\u308A\u8FD4\u3057\u306E\u4E88\u5B9A\u306F\u300C\u7CFB\u5217\u300D\u306E1\u4EF6\u3068\u3057\u3066\u8FD4\u308A\u3001\u5404\u56DE\u306B\u306F\u5C55\u958B\u3055\u308C\u307E\u305B\u3093\u3002\u7CFB\u5217\u306E\u958B\u59CB\u65E5\u6642\u3067\u7D5E\u308A\u8FBC\u3080\
91
- \u305F\u3081\u3001\n --from \u3088\u308A\u524D\u306B\u59CB\u307E\u3063\u305F\u7E70\u308A\u8FD4\u3057\u4E88\u5B9A\u306F\u3001\u7BC4\u56F2\u5185\u306B\u56DE\u304C\u3042\u3063\u3066\u3082\u51FA\u307E\u305B\u3093\u3002\n\n--filter / --orderby / --select \u306F Microsoft Graph \u306E OData \u69CB\u6587\u3092\u305D\u306E\u307E\u307E\u6E21\u3057\u307E\u3059\n\uFF08\u4F8B: --orderby "start/dateTime"\uFF09\u3002--from / --to \u3068 --filter \u306F and \u3067\u3064\u306A\u304E\u307E\u3059\u3002\n\n'+graphPagingHelp(
92
- null),flags:[{name:"--from",summary:"\u3053\u306E\u65E5\uFF08\u65E5\u672C\u6642\u9593\uFF09\u4EE5\u964D\u306B\u59CB\u307E\u308B\u4E88\u5B9A",takesValue:true,placeholder:"<yyyy-MM-dd>"},{name:"--to",summary:"\u3053\u306E\u65E5\uFF08\u65E5\u672C\u6642\u9593\uFF09\u307E\u3067\u306B\u59CB\u307E\u308B\u4E88\u5B9A",takesValue:true,placeholder:"<yyyy-MM-dd>"},{name:"--filter",summary:"OData \u306E $filter\uFF08\u305D\u306E\u307E\u307E\u6E21\u3059\uFF09",takesValue:true,placeholder:"<\u5F0F>"},{name:"--\
93
- orderby",summary:"OData \u306E $orderby\uFF08\u305D\u306E\u307E\u307E\u6E21\u3059\uFF09",takesValue:true,placeholder:"<\u5F0F>"},{name:"--select",summary:"OData \u306E $select\uFF08\u8FD4\u3059\u9805\u76EE\u3092\u30AB\u30F3\u30DE\u533A\u5207\u308A\u3067\uFF09",takesValue:true,placeholder:"<\u9805\u76EE>"},...graphListFlags({limit:true})],forbidden:ms365Forbidden,paging:graphPaging({label:"\u4E88\u5B9A\u4E00\u89A7",kind:"skip"}),plan(input){const from=input.flags.get("--from");const to=input.flags.
94
- get("--to");const fromUtc=from===void 0?void 0:jstDayStartUtc(from,"--from");const toUtc=to===void 0?void 0:jstDayStartUtc(to,"--to",1);if(fromUtc!==void 0&&toUtc!==void 0&&fromUtc>=toUtc){throw new UsageError(`--to \u306F --from \u4EE5\u964D\u306E\u65E5\u4ED8\u3092\u6307\u5B9A\u3057\u3066\u304F\u3060\u3055\u3044\uFF08--from ${from} / --to ${to}\uFF09`)}return{method:"GET",path:ms365Path("/calendar/events"),query:{top:topFlag(input,null),filter:joinFilters([nonEmpty(input.flags,"--filter"),fromUtc===
95
- void 0?void 0:`start/dateTime ge '${fromUtc}'`,toUtc===void 0?void 0:`start/dateTime lt '${toUtc}'`]),orderby:nonEmpty(input.flags,"--orderby"),select:nonEmpty(input.flags,"--select"),skip:cursorFlag(input,"skip")}}},summarize:body=>graphValue(body,"\u4E88\u5B9A\u4E00\u89A7").map(row=>{const full=eventRow(row);return pick(full,EVENT_LIST_COLUMNS)}),raw:body=>graphValue(body,"\u4E88\u5B9A\u4E00\u89A7"),notes:body=>graphPagingNotes(body,"\u4E88\u5B9A\u4E00\u89A7")},{name:"get",summary:"\u4E88\u5B9A1\u4EF6\u306E\u8A73\u7D30\u3092\u8868\u793A\u3059\
96
- \u308B\uFF08\u51FA\u5E2D\u8005\u30FB\u672C\u6587\u3064\u304D\uFF09",usage:"twp outlook event get <\u4E88\u5B9AID>",description:"\u4E88\u5B9AID \u306F twp outlook event list \u306E id \u3067\u3059\u3002\u672C\u6587\u306F\u30D7\u30EC\u30FC\u30F3\u30C6\u30AD\u30B9\u30C8\u306B\u76F4\u3057\u3066 1\u884C\u306B\u7573\u307F\u307E\u3059\n\uFF08\u5143\u306E HTML\u30FB\u51FA\u5E2D\u8005\u306E\u5FDC\u7B54\u72B6\u6CC1\u306F --output json \u3067\u8AAD\u3081\u307E\u3059\uFF09\u3002",flags:[{name:"--event",summary:"\
97
- \u4E88\u5B9AID\uFF08\u4F4D\u7F6E\u5F15\u6570\u3068\u540C\u3058\u610F\u5473\uFF09",takesValue:true,placeholder:"<ID>"}],forbidden:ms365Forbidden,async prepare(input){return withResolved(input,{eventId:oneId(input,"--event","\u4E88\u5B9AID","twp outlook event get help")})},plan(input){return{method:"GET",path:ms365Path(`/calendar/events/${ms365Segment(requireResolved(input,"eventId"),"\u4E88\u5B9AID")}`)}},summarize:body=>eventRow(graphData(body,"\u4E88\u5B9A\u8A73\u7D30")),raw:body=>graphData(body,
98
- "\u4E88\u5B9A\u8A73\u7D30")}]};var outlookDomain={name:"outlook",summary:"Microsoft 365 \u306E Outlook\uFF08\u30E1\u30FC\u30EB\u30FB\u6DFB\u4ED8\u30FB\u4E88\u5B9A\u8868\uFF09",operations:[],subresources:[mailResource,attachmentResource,eventResource]};export{outlookDomain};