@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.
- package/CHANGELOG.public.md +16 -0
- package/README.md +34 -7
- package/dist/{agent-loop-RMJXHBNG.js → agent-loop-XKH5YE6A.js} +1 -1
- package/dist/{ai-dispatch-L6XZCCU4.js → ai-dispatch-FGVNSM6L.js} +2 -2
- package/dist/{api-command-6C3MFXVU.js → api-command-PQ435C3B.js} +2 -2
- package/dist/{app-6DA35MYO.js → app-227MZT5L.js} +3 -3
- package/dist/{backlog-Q7VYDMDL.js → backlog-F6TNQG4I.js} +1 -1
- package/dist/chunk-3AD2T6L2.js +64 -0
- package/dist/{chunk-JNPCHV7S.js → chunk-3B5PVPGU.js} +1 -1
- package/dist/{chunk-XUNFV6ZQ.js → chunk-4ZTWRAHM.js} +1 -1
- package/dist/{chunk-QV6DH37Q.js → chunk-ACPGM5KP.js} +1 -1
- package/dist/{chunk-IOCNJMVW.js → chunk-AUAZP2G7.js} +5 -5
- package/dist/{chunk-XTREYDO5.js → chunk-CEBL5R62.js} +1 -1
- package/dist/{chunk-JLNY7HRM.js → chunk-DPGQ36DA.js} +1 -1
- package/dist/{chunk-N6AXAGS2.js → chunk-EZGN7PTO.js} +1 -1
- package/dist/{chunk-NAAMNYX3.js → chunk-JBX4OEHV.js} +1 -1
- package/dist/{chunk-G2THOTBW.js → chunk-JTJWDV5U.js} +1 -1
- package/dist/{chunk-EWTFE233.js → chunk-KPXJALCL.js} +1 -1
- package/dist/{chunk-DVKPGJMS.js → chunk-LKS7GANP.js} +1 -1
- package/dist/{chunk-EM3SDCCU.js → chunk-LLOXVVFK.js} +15 -14
- package/dist/{chunk-L25UV7DE.js → chunk-LUQ2KE6Y.js} +1 -1
- package/dist/{chunk-Y4SREWAG.js → chunk-MXKAEPXA.js} +1 -1
- package/dist/{chunk-XXVYGQ72.js → chunk-P7JCZYAI.js} +1 -1
- package/dist/{chunk-O3UQPM6L.js → chunk-PSWDEV6M.js} +1 -1
- package/dist/{chunk-ZM3MTWNT.js → chunk-SA7A5WF2.js} +1 -1
- package/dist/{chunk-AITUMFCH.js → chunk-TKGVAWGU.js} +1 -1
- package/dist/{chunk-YPMT453N.js → chunk-VIU2HPWM.js} +1 -1
- package/dist/chunk-WPY6OQOT.js +9 -0
- package/dist/{chunk-D5FEOBB6.js → chunk-XWW63XJJ.js} +44 -35
- package/dist/{chunk-7GSTR64T.js → chunk-ZFTKBOGN.js} +1 -1
- package/dist/{chunk-DS5TH5YQ.js → chunk-ZTIR3NSH.js} +1 -1
- package/dist/cli.js +35 -8
- package/dist/{commands-5GP3REIU.js → commands-EIWS357Q.js} +44 -41
- package/dist/{commands-JUD4ZNWT.js → commands-SWR442MR.js} +1 -1
- package/dist/{company-UTEAM246.js → company-X37NKBWH.js} +2 -2
- package/dist/{contract-GUY73GRP.js → contract-YRMK73XV.js} +1 -1
- package/dist/{department-QMTJYMN2.js → department-WKV46OIM.js} +1 -1
- package/dist/{deposit-FOATHWXV.js → deposit-75KCQBCE.js} +1 -1
- package/dist/{estimate-6UWI7SKV.js → estimate-LA7WXYTV.js} +2 -2
- package/dist/{inquiry-3VBBJT2K.js → inquiry-NHDMHZXX.js} +1 -1
- package/dist/{invoice-FOZJR42A.js → invoice-WVCRD2MT.js} +2 -2
- package/dist/{job-title-IIRFPZNV.js → job-title-FSVZSCMO.js} +1 -1
- package/dist/{knowledge-6SXUV46K.js → knowledge-J6TFEPMP.js} +1 -1
- package/dist/{leave-LQAXN6F4.js → leave-MWDZOGQH.js} +1 -1
- package/dist/media-66FCDEMZ.js +125 -0
- package/dist/{notification-NTU3JCR2.js → notification-ZZV4M24X.js} +1 -1
- package/dist/onedrive-3OBI4B5Z.js +51 -0
- package/dist/{oneshot-67EDIE2F.js → oneshot-C2GOGRLM.js} +1 -1
- package/dist/outlook-LY6WBXIJ.js +94 -0
- package/dist/{position-WGLV3JZ6.js → position-G24ALWEO.js} +1 -1
- package/dist/{project-REBUFMPX.js → project-WKWOVDVA.js} +1 -1
- package/dist/{prospect-DJAJNTRQ.js → prospect-SS2Z4UNJ.js} +1 -1
- package/dist/{purchase-7RVUWXMS.js → purchase-YPTIOSG6.js} +2 -2
- package/dist/{receivable-SHRWUYJW.js → receivable-G7TYHCBD.js} +1 -1
- package/dist/{registry-CP4LGNGZ.js → registry-RPVLCPFY.js} +1 -1
- package/dist/{render-4L5BDU3B.js → render-R5QZ46GF.js} +1 -1
- package/dist/{report-SUTO7E7Z.js → report-EILA6LJW.js} +1 -1
- package/dist/{run-NVS532DL.js → run-VGH3UT6R.js} +1 -1
- package/dist/{sales-ai-review-LC4XDQLS.js → sales-ai-review-57QGRYMZ.js} +1 -1
- package/dist/{sales-master-C4EYXIKP.js → sales-master-7SWNOWZS.js} +1 -1
- package/dist/{sales-numbering-YK447QBC.js → sales-numbering-TQS3PUV7.js} +1 -1
- package/dist/{schedule-command-7JGQMTQY.js → schedule-command-QCGEMBVR.js} +1 -1
- package/dist/{server-settings-3E7G56G7.js → server-settings-TUBJ4P57.js} +1 -1
- package/dist/{server-skills-OF7USNRM.js → server-skills-Z5DGCJQ7.js} +1 -1
- package/dist/{supplier-payment-MLLTGVCO.js → supplier-payment-IORFZDHV.js} +1 -1
- package/dist/{task-7SKWCZWV.js → task-TK37X5JF.js} +35 -30
- package/dist/teams-DRHXPLWN.js +93 -0
- package/dist/{user-FPXO3IHG.js → user-O4N3RNPO.js} +2 -2
- package/dist/{workflow-FU2EBVBW.js → workflow-JSBBY3V5.js} +1 -1
- package/package.json +1 -1
- package/dist/chunk-C2MQANJO.js +0 -9
- package/dist/media-VK6AUGZY.js +0 -63
- package/dist/onedrive-XAFONTRT.js +0 -16
- package/dist/outlook-PQ4OCB5Z.js +0 -98
- package/dist/teams-RDBKQJMM.js +0 -50
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import { createRequire as __twpCreateRequire } from 'node:module';
|
|
2
2
|
const require = __twpCreateRequire(import.meta.url);
|
|
3
|
-
import{USER_REF_FLAG,USER_REF_HELP,userPath}from"./chunk-IXFMXUNT.js";import{applyInstancePlan,createInstancePlan,formColumns,writtenInstance}from"./chunk-
|
|
3
|
+
import{USER_REF_FLAG,USER_REF_HELP,userPath}from"./chunk-IXFMXUNT.js";import{applyInstancePlan,createInstancePlan,formColumns,writtenInstance}from"./chunk-ZFTKBOGN.js";import{assertMonthsOpen}from"./chunk-YLXW7TIU.js";import{dateFlag}from"./chunk-4B3T4UE7.js";import"./chunk-ORUDW52G.js";import"./chunk-XWW63XJJ.js";import{UUID_RE}from"./chunk-GMBJTG6A.js";import"./chunk-3HH5IYNO.js";import{ApiError}from"./chunk-IF2K4PM5.js";import{NotLoggedInError,
|
|
4
4
|
SessionExpiredError}from"./chunk-XNLIEUAW.js";import"./chunk-4VZKNEVN.js";import"./chunk-II5RVJQN.js";import"./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";var LIST_USAGE="twp leave list";var GRANTS_USAGE="twp leave grants [<\u30E6\u30FC\u30B6\u30FC> | --user <\u30E6\u30FC\u30B6\u30FC>]";var USAGE_COLUMNS=["used_date","type_label","days","hours","status_label","reason","is_post_application","id"];var GRANT_COLUMNS=["grant_date","type_label","days","remaining_days","remaining_hours","expiry_date","status_label","reason","id"];function noArgs(input,operation){if(input.args.length>0){throw new UsageError(`${operation} \u306F\u4F4D\u7F6E\u5F15\u6570\u3092\u53D7\u3051\u53D6\u308A\u307E\u305B\u3093: ${input.
|
|
5
5
|
args.join(" ")}`,`twp leave ${operation} help`)}}function summaryBody(body){if(!isRecord(body)||!isRecord(body["summary"])){throw new ApiResponseError("\u6709\u7D66\u30B5\u30DE\u30EA\u306E\u5FDC\u7B54\u306B summary \u304C\u3042\u308A\u307E\u305B\u3093\u3002\u63A5\u7D9A\u5148\u3092\u78BA\u8A8D\u3057\u3066\u304F\u3060\u3055\u3044\u3002")}return body}function usagesBody(body){if(!isRecord(body)||!Array.isArray(body["usages"])){throw new ApiResponseError("\u6709\u7D66\u306E\u53D6\u5F97\u5C65\u6B74\u306E\u5FDC\u7B54\u306B usages \u304C\u3042\u308A\u307E\u305B\u3093\u3002\u63A5\u7D9A\u5148\u3092\u78BA\u8A8D\u3057\u3066\u304F\u3060\u3055\u3044\u3002")}
|
|
6
6
|
return body}function grantsBody(body){if(!isRecord(body)||!Array.isArray(body["grants"])){throw new ApiResponseError("\u6709\u7D66\u306E\u4ED8\u4E0E\u5C65\u6B74\u306E\u5FDC\u7B54\u306B grants \u304C\u3042\u308A\u307E\u305B\u3093\u3002\u63A5\u7D9A\u5148\u3092\u78BA\u8A8D\u3057\u3066\u304F\u3060\u3055\u3044\u3002")}return body}function listBody(body){const combined=isRecord(body)?body:{};return{summary:summaryBody(combined["summary"]),usages:usagesBody(combined["usages"])}}async function list(input,ctx){
|
|
@@ -0,0 +1,125 @@
|
|
|
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-XWW63XJJ.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,readEnvelopeCursor}from"./chunk-IOGMOXYF.js";
|
|
4
|
+
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 crypto from"crypto";import fs from"fs";import path from"path";var SCOPE_PERSONAL="personal";var SCOPE_PROJECT="project";var UUID=/^[0-9a-f]{8}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{12}$/i;var FORBIDDEN_NAME=/[/\\:*?"<>|]/;var NAME_MAX=255;var ROW_COLUMNS=["id","path","name","file_count","subfolder_count","parent_id","updated_at"];var TRASH_COLUMNS=["id","path","name","file_count","subfolder_count","parent_id","deleted_at"];function folderRows(raw){return raw.map(row=>{const id=row["id"];const name=row["name"];const parentId=row["parent_id"];if(typeof id!==
|
|
5
|
+
"string"||typeof name!=="string"||parentId!==null&&parentId!==void 0&&typeof parentId!=="string"){throw new ApiResponseError("\u30E1\u30C7\u30A3\u30A2\u30D5\u30A9\u30EB\u30C0\u4E00\u89A7\u306E\u884C\u306B id / name / parent_id \u304C\u3042\u308A\u307E\u305B\u3093\u3002\u63A5\u7D9A\u5148\u3092\u78BA\u8A8D\u3057\u3066\u304F\u3060\u3055\u3044\u3002")}const path2=typeof row["path"]==="string"?row["path"]:`/${name}`;return{id,name,parentId:parentId??null,path:path2}})}function resolveFolderPath(rows,input){
|
|
6
|
+
const segments=folderPathSegments(input);const ids=new Set(rows.map(row=>row.id));const isTop=row=>row.parentId===null||!ids.has(row.parentId);let level=rows.filter(isTop);let walked="";for(const[index,segment]of segments.entries()){const hits=level.filter(row=>row.name===segment);const here=walked===""?"\u6700\u4E0A\u4F4D":`\u300C${walked}\u300D\u306E\u4E0B`;if(hits.length===0){const names=level.map(row=>row.name);throw new UsageError(`\u30D5\u30A9\u30EB\u30C0\u304C\u898B\u3064\u304B\u308A\u307E\u305B\u3093: ${input}\
|
|
7
|
+
\uFF08${here}\u306B\u300C${segment}\u300D\u304C\u3042\u308A\u307E\u305B\u3093\uFF09`,names.length===0?`${here}\u306B\u30D5\u30A9\u30EB\u30C0\u306F\u3042\u308A\u307E\u305B\u3093\u3002`:`${here}\u306B\u3042\u308B\u30D5\u30A9\u30EB\u30C0: ${listNames(names)}`)}if(hits.length>1){throw new UsageError(`\u30D5\u30A9\u30EB\u30C0\u300C${input}\u300D\u306B\u5F53\u305F\u308B\u3082\u306E\u304C ${hits.length} \u4EF6\u3042\u308A\u307E\u3059\uFF08${here}\u306B\u300C${segment}\u300D\u304C\u8907\u6570\u3042\u308A\u307E\u3059\uFF09`,
|
|
8
|
+
`ID \u3067\u6307\u5B9A\u3057\u3066\u304F\u3060\u3055\u3044: ${hits.map(row=>`${row.id}\uFF08${row.path}\uFF09`).join(" / ")}`)}const hit=hits[0];if(index===segments.length-1)return hit;walked=walked===""?segment:`${walked}/${segment}`;level=rows.filter(row=>row.parentId===hit.id)}throw new Error("resolveFolderPath: \u5230\u9054\u3057\u306A\u3044")}function folderPathSegments(input){const segments=input.replace(/^\/+/,"").replace(/\/+$/,"").split("/");if(segments.some(segment=>segment==="")){throw new UsageError(
|
|
9
|
+
`\u30D5\u30A9\u30EB\u30C0\u306E\u30D1\u30B9\u306E\u5F62\u5F0F\u304C\u9055\u3044\u307E\u3059: ${input}`,"\u300C\u89AA/\u5B50/\u5B6B\u300D\u306E\u5F62\u3067\u3001\u7A7A\u306E\u968E\u5C64\u3092\u542B\u3081\u305A\u306B\u6307\u5B9A\u3057\u3066\u304F\u3060\u3055\u3044\uFF08ID \u3082\u6307\u5B9A\u3067\u304D\u307E\u3059\uFF09\u3002")}return segments}function listNames(names,limit=10){const shown=names.slice(0,limit).join(" / ");return names.length>limit?`${shown} \u2026\uFF08\u5168 ${names.length} \u4EF6\uFF09`:
|
|
10
|
+
shown}function descendantsOf(rows,root){const result=[];const queue=[root];const seen=new Set(queue);while(queue.length>0){const parent=queue.shift();for(const row of rows){if(row.parentId===parent&&!seen.has(row.id)){seen.add(row.id);result.push(row);queue.push(row.id)}}}return result}function depthOf(byId,row){let depth=0;let current=row;const seen=new Set([row.id]);while(current.parentId!==null){const parent=byId.get(current.parentId);if(parent===void 0||seen.has(parent.id))break;seen.add(parent.
|
|
11
|
+
id);depth+=1;current=parent}return depth}function isFolderId(value){return UUID.test(value)}async function scopeOf(input,ctx){const ref=nonEmpty(input.flags,"--project");if(ref===void 0)return{scope:SCOPE_PERSONAL};return{scope:SCOPE_PROJECT,scopeId:await ctx.projectId(ref)}}async function resolveFolderRef(ctx,ref,scope){if(isFolderId(ref))return ref;folderPathSegments(ref);return resolveFolderPath(folderRows(await ctx.resolver.mediaFolders(scope.scope,scope.scopeId)),ref).id}function validName(input,flag,usage){
|
|
12
|
+
const raw=input?.trim();if(raw===void 0||raw==="")throw new UsageError(`${flag} \u306B\u30D5\u30A9\u30EB\u30C0\u540D\u3092\u6307\u5B9A\u3057\u3066\u304F\u3060\u3055\u3044`,usage);if(FORBIDDEN_NAME.test(raw))throw new UsageError(`\u30D5\u30A9\u30EB\u30C0\u540D\u306B\u4F7F\u3048\u306A\u3044\u6587\u5B57\u304C\u542B\u307E\u308C\u3066\u3044\u307E\u3059\uFF08/ \\ : * ? " < > | \u306F\u4F7F\u3048\u307E\u305B\u3093\uFF09: ${raw}`);if([...raw].length>NAME_MAX)throw new UsageError(`\u30D5\u30A9\u30EB\u30C0\u540D\u306F ${NAME_MAX}\
|
|
13
|
+
\u6587\u5B57\u307E\u3067\u3067\u3059`);return raw}function assertNoSibling(rows,parentId,name,exceptId){const clash=rows.find(row=>row.parentId===parentId&&row.name===name&&row.id!==exceptId);if(clash!==void 0){throw new UsageError(`\u540C\u3058\u5834\u6240\u306B\u540C\u3058\u540D\u524D\u306E\u30D5\u30A9\u30EB\u30C0\u304C\u3042\u308A\u307E\u3059: ${clash.path}\uFF08${clash.id}\uFF09`,"\u5225\u306E\u540D\u524D\u306B\u3057\u3066\u304F\u3060\u3055\u3044\uFF08\u30B5\u30FC\u30D0\u3082\u540C\u540D\u3092\u53D7\u3051\u4ED8\u3051\u307E\u305B\u3093\uFF09\u3002")}}
|
|
14
|
+
var PROJECT_FLAG={name:"--project",summary:"\u30D7\u30ED\u30B8\u30A7\u30AF\u30C8\u306E\u30D5\u30A9\u30EB\u30C0\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\u30A9\u30EB\u30C0",takesValue:true,placeholder:"<\u30B3\u30FC\u30C9|ID>"};var PARENT_FLAG={name:"--parent",summary:"\u89AA\u30D5\u30A9\u30EB\u30C0\uFF08ID \u304B\u300C\u89AA/\u5B50\u300D\u5F62\u5F0F\u306E\u30D1\u30B9\uFF09\u3002\u7701\u7565\u6642\u306F\u6700\u4E0A\u4F4D",
|
|
15
|
+
takesValue:true,placeholder:"<ID|\u30D1\u30B9>"};var ID_FLAG={name:"--id",summary:"\u30D5\u30A9\u30EB\u30C0\uFF08ID \u304B\u300C\u89AA/\u5B50\u300D\u5F62\u5F0F\u306E\u30D1\u30B9\uFF09\u3002\u4F4D\u7F6E\u5F15\u6570\u3068\u540C\u3058\u610F\u5473\uFF08\u4E21\u65B9\u6307\u5B9A\u306F\u30A8\u30E9\u30FC\uFF09",takesValue:true,placeholder:"<ID|\u30D1\u30B9>"};var REF_HELP="\u30D5\u30A9\u30EB\u30C0\u306F ID \u304B\u300C\u89AA/\u5B50/\u5B6B\u300D\u5F62\u5F0F\u306E\u30D1\u30B9\u3067\u6307\u5B9A\u3057\u307E\u3059\uFF08\u30D1\u30B9\u306F --project \u306E\u30B9\u30B3\u30FC\u30D7\u306E\u30C4\u30EA\u30FC\u304B\u3089\u89E3\u6C7A\u3057\u3001\n\u540C\u540D\u304C\u8907\u6570\u30FB\u898B\u3064\u304B\u3089\u306A\u3044\u3068\u304D\u306F\u5019\u88DC\u3092\u51FA\u3057\u3066\u7D42\u4E86\u30B3\u30FC\u30C9 2\uFF09\u3002";
|
|
16
|
+
async function target(input,ctx,usage){const ref=singleRef(input,{flag:"--id",label:"\u30D5\u30A9\u30EB\u30C0",usage});if(isFolderId(ref)){const detail=await ctx.resolver.mediaFolder(ref,"folder");const scope2=typeof detail["scope"]==="string"?detail["scope"]:SCOPE_PERSONAL;const scopeId=typeof detail["scope_id"]==="string"?detail["scope_id"]:void 0;const rows2=folderRows(await ctx.resolver.mediaFolders(scope2,scopeId));const[folder]=folderRows([detail]);return{folder:rows2.find(row=>row.id===ref)??
|
|
17
|
+
folder,rows:rows2,scope:scope2,scopeId}}const scope=await scopeOf(input,ctx);const rows=folderRows(await ctx.resolver.mediaFolders(scope.scope,scope.scopeId));return{folder:resolveFolderPath(rows,ref),rows,...scope}}function folderPath(id){return`/api/v2/media/folders/${encodeURIComponent(id)}`}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`);
|
|
18
|
+
return data}function listData(body){const data=isRecord(body)?body["data"]:void 0;if(!Array.isArray(data)||!data.every(isRecord)){throw new ApiResponseError("\u30E1\u30C7\u30A3\u30A2\u30D5\u30A9\u30EB\u30C0\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 folderCursor(body){const meta=isRecord(body)&&isRecord(body["meta"])?body["meta"]:void 0;if(meta!==
|
|
19
|
+
void 0&&!("has_more"in meta)&&"next_cursor"in meta){const cursor=meta["next_cursor"];return{hasMore:cursor!==null&&cursor!=="",cursor}}return readEnvelopeCursor(body)}var LIST_USAGE="twp media folder list [--project <\u30B3\u30FC\u30C9|ID>] [--parent <ID|\u30D1\u30B9>] [--tree | --trash]";var GET_USAGE="twp media folder get <ID|\u30D1\u30B9> [--project <\u30B3\u30FC\u30C9|ID>]";var CREATE_USAGE="twp media folder create <\u540D\u524D> [--parent <ID|\u30D1\u30B9>] [--project <\u30B3\u30FC\u30C9|ID>]";
|
|
20
|
+
var UPDATE_USAGE="twp media folder update <ID|\u30D1\u30B9> --name <\u65B0\u3057\u3044\u540D\u524D> [--project <\u30B3\u30FC\u30C9|ID>]";var MOVE_USAGE="twp media folder move <ID|\u30D1\u30B9> (--parent <ID|\u30D1\u30B9> | --root) [--project <\u30B3\u30FC\u30C9|ID>]";var DELETE_USAGE="twp media folder delete <ID|\u30D1\u30B9> --yes [--recursive] [--permanent] [--project <\u30B3\u30FC\u30C9|ID>]";var RESTORE_USAGE="twp media folder restore <ID> [--project <\u30B3\u30FC\u30C9|ID>]";function listMode(input){
|
|
21
|
+
const tree=input.flags.has("--tree");const trash=input.flags.has("--trash");if(tree&&trash)throw new UsageError("--tree \u3068 --trash \u306F\u540C\u6642\u306B\u6307\u5B9A\u3067\u304D\u307E\u305B\u3093",LIST_USAGE);if(trash&&input.flags.has("--parent")){throw new UsageError("--trash \u306F --parent \u3068\u7D44\u307F\u5408\u308F\u305B\u3089\u308C\u307E\u305B\u3093\uFF08\u30B4\u30DF\u7BB1\u306F\u30B9\u30B3\u30FC\u30D7\u5168\u4F53\u3092\u8FD4\u3057\u307E\u3059\uFF09",LIST_USAGE)}if(tree&&(input.flags.
|
|
22
|
+
has("--limit")||input.flags.has("--cursor"))){throw new UsageError("--tree \u306F\u30DA\u30FC\u30B8\u30F3\u30B0\u3057\u307E\u305B\u3093\uFF08--limit / --cursor \u306F\u4F7F\u3048\u307E\u305B\u3093\uFF09",LIST_USAGE)}return tree?"tree":trash?"trash":"list"}function scopeQuery(input){return{scope:requireResolved(input,"scope"),scope_id:input.resolved?.["scopeId"]}}function treeRows(body){const raw=listData(body);const rows=folderRows(raw);const byId=new Map(rows.map(row=>[row.id,row]));return rows.
|
|
23
|
+
map((row,index)=>({raw:raw[index],row,depth:depthOf(byId,row)}))}function treeDocument(body){const lines=treeRows(body).map(({raw,row,depth})=>{const deleted=typeof raw["deleted_at"]==="string"?` \u524A\u9664 ${raw["deleted_at"]}`:"";return`${" ".repeat(depth)}${row.name}/ ${row.id}${deleted}`});return lines.length===0?"\u30D5\u30A9\u30EB\u30C0\u306F\u3042\u308A\u307E\u305B\u3093\u3002":lines.join("\n")}var NAME_FLAG={name:"--name",summary:"\u65B0\u3057\u3044\u30D5\u30A9\u30EB\u30C0\u540D\uFF08\u5FC5\u9808\uFF09",
|
|
24
|
+
takesValue:true,placeholder:"<\u540D\u524D>"};var ROOT_FLAG={name:"--root",summary:"\u6700\u4E0A\u4F4D\u3078\u79FB\u3059\uFF08--parent \u3068\u540C\u6642\u306B\u306F\u6307\u5B9A\u3067\u304D\u307E\u305B\u3093\uFF09",takesValue:false};var RECURSIVE_FLAG={name:"--recursive",summary:"\u4E2D\u306E\u30B5\u30D6\u30D5\u30A9\u30EB\u30C0\u30FB\u30D5\u30A1\u30A4\u30EB\u3054\u3068\u524A\u9664\u3059\u308B\uFF08\u4E2D\u8EAB\u304C\u3042\u308B\u30D5\u30A9\u30EB\u30C0\u306F\u3001\u3053\u308C\u304C\u7121\u3044\u3068\u524A\u9664\u3067\u304D\u307E\u305B\u3093\uFF09",
|
|
25
|
+
takesValue:false};var PERMANENT_FLAG={name:"--permanent",summary:"\u30B4\u30DF\u7BB1\u306B\u3042\u308B\u30D5\u30A9\u30EB\u30C0\u3092\u5B8C\u5168\u306B\u524A\u9664\u3059\u308B\uFF08\u5FA9\u5143\u3067\u304D\u307E\u305B\u3093\u3002ID \u3067\u6307\u5B9A\u3057\u3001\u5148\u306B\u30B4\u30DF\u7BB1\u3078\u79FB\u3059\u3053\u3068\uFF09",takesValue:false};async function prepareDelete(input,ctx){const recursive=input.flags.has("--recursive");if(input.flags.has("--permanent")){const ref=singleRef(input,{flag:"\
|
|
26
|
+
--id",label:"\u30D5\u30A9\u30EB\u30C0",usage:DELETE_USAGE});if(!isFolderId(ref)){throw new UsageError("--permanent \u3067\u306F\u30D5\u30A9\u30EB\u30C0\u3092 ID \u3067\u6307\u5B9A\u3057\u3066\u304F\u3060\u3055\u3044\uFF08\u30B4\u30DF\u7BB1\u306E\u30D5\u30A9\u30EB\u30C0\u306F\u30D1\u30B9\u3067\u5F15\u3051\u307E\u305B\u3093\uFF09","ID \u306F twp media folder list --trash \u3067\u78BA\u304B\u3081\u3089\u308C\u307E\u3059\u3002")}const scope=await scopeOf(input,ctx);const rawTrash=await ctx.resolver.
|
|
27
|
+
mediaFolderTrash(scope.scope,scope.scopeId);const trash=folderRows(rawTrash);const folder2=trash.find(row=>row.id===ref);if(folder2===void 0){throw new UsageError(`\u30D5\u30A9\u30EB\u30C0 ${ref} \u306F${scope.scope===SCOPE_PROJECT?"\u3053\u306E\u30D7\u30ED\u30B8\u30A7\u30AF\u30C8\u306E":"\u500B\u4EBA\u306E"}\u30B4\u30DF\u7BB1\u306B\u3042\u308A\u307E\u305B\u3093\uFF08\u5B8C\u5168\u524A\u9664\u3067\u304D\u308B\u306E\u306F\u30B4\u30DF\u7BB1\u306E\u30D5\u30A9\u30EB\u30C0\u3060\u3051\u3067\u3059\uFF09`,
|
|
28
|
+
`\u307E\u3060\u30B4\u30DF\u7BB1\u306B\u7121\u3044\u306A\u3089\u5148\u306B twp media folder delete ${ref} --yes \u3067\u79FB\u3057\u307E\u3059\u3002\u30D7\u30ED\u30B8\u30A7\u30AF\u30C8\u306E\u30D5\u30A9\u30EB\u30C0\u306A\u3089 --project \u3092\u4ED8\u3051\u307E\u3059\u3002`)}const inside=descendantsOf(trash,ref);const rawById=new Map(rawTrash.map(row=>[row["id"],row]));const files2=[folder2,...inside].reduce((sum,row)=>{const count=rawById.get(row.id)?.["file_count"];return sum+(typeof count==="n\
|
|
29
|
+
umber"?count:0)},0);if((inside.length>0||files2>0)&&!recursive){throw new UsageError(`\u30B4\u30DF\u7BB1\u306E\u30D5\u30A9\u30EB\u30C0 ${folder2.path} \u306B\u306F\u30B5\u30D6\u30D5\u30A9\u30EB\u30C0 ${inside.length} \u4EF6\u30FB\u30D5\u30A1\u30A4\u30EB ${files2} \u4EF6\uFF08\u8A18\u9332\u4E0A\uFF09\u304C\u3042\u308A\u307E\u3059\u3002\u4E2D\u8EAB\u3054\u3068\u5B8C\u5168\u306B\u524A\u9664\u3059\u308B\u306A\u3089 --recursive \u3092\u4ED8\u3051\u3066\u304F\u3060\u3055\u3044`)}return withResolved(input,
|
|
30
|
+
{folderId:ref,folderPath:folder2.path,subfolders:String(inside.length),files:String(files2)})}const{folder}=await target(input,ctx,DELETE_USAGE);const content=await ctx.resolver.mediaFolder(folder.id,"content");const subfolders=typeof content["subfolder_count"]==="number"?content["subfolder_count"]:0;const files=typeof content["file_count"]==="number"?content["file_count"]:0;const complete=content["scan_complete"]!==false;if((subfolders>0||files>0)&&!recursive){throw new UsageError(`\u30D5\u30A9\u30EB\u30C0 ${folder.
|
|
31
|
+
path} \u306B\u306F\u30B5\u30D6\u30D5\u30A9\u30EB\u30C0 ${subfolders} \u4EF6\u30FB\u30D5\u30A1\u30A4\u30EB ${files} \u4EF6${complete?"":"\u4EE5\u4E0A"}\u304C\u3042\u308A\u307E\u3059\u3002\u4E2D\u8EAB\u3054\u3068\u30B4\u30DF\u7BB1\u3078\u79FB\u3059\u306A\u3089 --recursive \u3092\u4ED8\u3051\u3066\u304F\u3060\u3055\u3044`)}return withResolved(input,{folderId:folder.id,folderPath:folder.path,subfolders:String(subfolders),files:String(files),complete:complete?"1":"0"})}var operations=[{name:"list",summary:"\
|
|
32
|
+
\u30D5\u30A9\u30EB\u30C0\u3092\u4E00\u89A7\u3059\u308B\uFF08--tree \u3067\u5168\u968E\u5C64\u3001--trash \u3067\u30B4\u30DF\u7BB1\uFF09",usage:LIST_USAGE,description:"\u65E2\u5B9A\u306F --parent\uFF08\u7121\u3051\u308C\u3070\u6700\u4E0A\u4F4D\uFF09\u306E\u76F4\u4E0B\u306E\u30D5\u30A9\u30EB\u30C0\u3060\u3051\u3067\u3059\u3002--tree \u306F\u30B9\u30B3\u30FC\u30D7\u306E\u5168\u30D5\u30A9\u30EB\u30C0\u3092\u968E\u5C64\u9806\u306B\u8FD4\u3057\u3001\n--output text \u3067\u306F\u30A4\u30F3\u30C7\u30F3\u30C8\u3067\u968E\u5C64\u3092\u8868\u793A\u3057\u307E\u3059\uFF08--parent \u3092\u4ED8\u3051\u308B\u3068\u305D\u306E\u4E0B\u3060\u3051\uFF09\u3002--trash \u306F\u30B4\u30DF\u7BB1\u306E\u30D5\u30A9\u30EB\u30C0\u3067\u3059\u3002\n--project \u3092\u4ED8\u3051\u308B\u3068\u30D7\u30ED\u30B8\u30A7\u30AF\u30C8\u306E\u30D5\u30A9\u30EB\u30C0\u3001\u7121\u3051\u308C\u3070\u81EA\u5206\u306E\u500B\u4EBA\u30D5\u30A9\u30EB\u30C0\u3067\u3059\uFF08\u65E2\u5B9A\u30D7\u30ED\u30B8\u30A7\u30AF\u30C8\u306F\u4F7F\u3044\u307E\u305B\u3093\uFF09\u3002\n\n"+
|
|
33
|
+
LIST_PAGING_HELP,flags:[PROJECT_FLAG,PARENT_FLAG,{name:"--tree",summary:"\u5168\u968E\u5C64\u3092\u968E\u5C64\u9806\u306B\u51FA\u3059\uFF08\u30DA\u30FC\u30B8\u30F3\u30B0\u3057\u307E\u305B\u3093\uFF09",takesValue:false},{name:"--trash",summary:"\u30B4\u30DF\u7BB1\u306E\u30D5\u30A9\u30EB\u30C0\u3092\u51FA\u3059",takesValue:false},...LIST_FLAGS],paging:envelopePaging({label:"\u30E1\u30C7\u30A3\u30A2\u30D5\u30A9\u30EB\u30C0\u4E00\u89A7",itemsKey:"data",readCursor:folderCursor}),async prepare(input,ctx){
|
|
34
|
+
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);listMode(input);const scope=await scopeOf(input,ctx);const parent=nonEmpty(input.flags,"--parent");const values={scope:scope.scope};if(scope.scopeId!==void 0)values["scopeId"]=scope.scopeId;if(parent!==void 0)values["parentId"]=await resolveFolderRef(ctx,parent,scope);return withResolved(input,values)},plan(input){const mode=listMode(
|
|
35
|
+
input);const parentId=input.resolved?.["parentId"];if(mode==="tree"){return{method:"GET",path:"/api/v2/media/folders/tree",query:{...scopeQuery(input),root_id:parentId}}}const page={limit:positiveInteger(input.flags,"--limit"),cursor:nonEmpty(input.flags,"--cursor")};if(mode==="trash")return{method:"GET",path:"/api/v2/media/folders/trash",query:{...scopeQuery(input),...page}};return{method:"GET",path:"/api/v2/media/folders",query:{...scopeQuery(input),parent_id:parentId,...page}}},summarize:body=>treeRows(
|
|
36
|
+
body).map(({raw,depth,row})=>({tree:`${"\u3000".repeat(depth)}${row.name}`,...pick(raw,"deleted_at"in raw?TRASH_COLUMNS:ROW_COLUMNS)})),raw:body=>listData(body),document:treeDocument,notes(body){const meta=isRecord(body)&&isRecord(body["meta"])?body["meta"]:void 0;return meta?.["scan_truncated"]===true?["\u30B4\u30DF\u7BB1\u306E\u8D70\u67FB\u304C\u4E0A\u9650\u3067\u6253\u3061\u5207\u3089\u308C\u305F\u305F\u3081\u3001\u4E00\u90E8\u306E\u30D5\u30A9\u30EB\u30C0\u3060\u3051\u3092\u8868\u793A\u3057\u3066\u3044\u307E\u3059\u3002"]:
|
|
37
|
+
[]}},{name:"get",summary:"\u30D5\u30A9\u30EB\u30C01\u4EF6\u306E\u8A73\u7D30\u3092\u51FA\u3059",usage:GET_USAGE,description:REF_HELP,flags:[ID_FLAG,PROJECT_FLAG],async prepare(input,ctx){const ref=singleRef(input,{flag:"--id",label:"\u30D5\u30A9\u30EB\u30C0",usage:GET_USAGE});if(isFolderId(ref))return withResolved(input,{folderId:ref});return withResolved(input,{folderId:await resolveFolderRef(ctx,ref,await scopeOf(input,ctx))})},plan:input=>({method:"GET",path:folderPath(requireResolved(input,"f\
|
|
38
|
+
olderId"))}),summarize:body=>pick(dataOf(body,"\u30D5\u30A9\u30EB\u30C0\u53D6\u5F97"),[...ROW_COLUMNS,"scope","scope_id","created_at"]),raw:body=>dataOf(body,"\u30D5\u30A9\u30EB\u30C0\u53D6\u5F97")},{name:"create",summary:"\u30D5\u30A9\u30EB\u30C0\u3092\u4F5C\u308B",usage:CREATE_USAGE,description:'\u540D\u524D\u306B / \\ : * ? " < > | \u306F\u4F7F\u3048\u307E\u305B\u3093\u3002\u540C\u3058\u5834\u6240\u306B\u540C\u3058\u540D\u524D\u306E\u30D5\u30A9\u30EB\u30C0\u304C\u3042\u308C\u3070\u9001\u3089\u305A\u306B\u6B62\u3081\u307E\u3059\n\uFF08\u30B5\u30FC\u30D0\u3082\u53D7\u3051\u4ED8\u3051\u307E\u305B\u3093\u304C\u3001\u7406\u7531\u3092\u8FD4\u3055\u306A\u3044\u305F\u3081\uFF09\u3002\u89AA\u306F ID \u304B\u300C\u89AA/\u5B50\u300D\u5F62\u5F0F\u306E\u30D1\u30B9\u3067\u6307\u5B9A\u3057\u307E\u3059\u3002',
|
|
39
|
+
flags:[PARENT_FLAG,PROJECT_FLAG],async prepare(input,ctx){if(input.args.length>1)throw new UsageError(`\u30D5\u30A9\u30EB\u30C0\u540D\u306F1\u3064\u3060\u3051\u6307\u5B9A\u3057\u3066\u304F\u3060\u3055\u3044: ${input.args.join(" ")}`,CREATE_USAGE);const name=validName(input.args[0],"\u4F4D\u7F6E\u5F15\u6570",CREATE_USAGE);const scope=await scopeOf(input,ctx);const rows=folderRows(await ctx.resolver.mediaFolders(scope.scope,scope.scopeId));const parent=nonEmpty(input.flags,"--parent");let parentId=null;
|
|
40
|
+
if(parent!==void 0){parentId=isFolderId(parent)?parent:resolveFolderPath(rows,parent).id;if(!rows.some(row=>row.id===parentId)){throw new UsageError(`\u89AA\u30D5\u30A9\u30EB\u30C0 ${parent} \u306F\u3053\u306E\u30B9\u30B3\u30FC\u30D7\u306B\u3042\u308A\u307E\u305B\u3093\uFF08\u500B\u4EBA\uFF0F\u30D7\u30ED\u30B8\u30A7\u30AF\u30C8\u306E\u5225\u306F --project \u3067\u6307\u5B9A\u3057\u307E\u3059\uFF09`)}}assertNoSibling(rows,parentId,name);const values={scope:scope.scope,name};if(scope.scopeId!==void 0)
|
|
41
|
+
values["scopeId"]=scope.scopeId;if(parentId!==null)values["parentId"]=parentId;return withResolved(input,values)},plan(input){const resolved=input.resolved??{};const body={name:requireResolved(input,"name"),scope:requireResolved(input,"scope")};if(resolved["scopeId"]!==void 0)body["scope_id"]=resolved["scopeId"];if(resolved["parentId"]!==void 0)body["parent_id"]=resolved["parentId"];return{method:"POST",path:"/api/v2/media/folders",body}},summarize:body=>pick(dataOf(body,"\u30D5\u30A9\u30EB\u30C0\u4F5C\u6210"),
|
|
42
|
+
ROW_COLUMNS),raw:body=>dataOf(body,"\u30D5\u30A9\u30EB\u30C0\u4F5C\u6210")},{name:"update",summary:"\u30D5\u30A9\u30EB\u30C0\u306E\u540D\u524D\u3092\u5909\u3048\u308B",usage:UPDATE_USAGE,description:`${REF_HELP}
|
|
43
|
+
\u4E0B\u4F4D\u30D5\u30A9\u30EB\u30C0\u306E\u30D1\u30B9\u306F\u30B5\u30FC\u30D0\u304C\u4ED8\u3051\u76F4\u3057\u307E\u3059\u3002\u540C\u3058\u5834\u6240\u306B\u540C\u3058\u540D\u524D\u304C\u3042\u308C\u3070\u9001\u3089\u305A\u306B\u6B62\u3081\u307E\u3059\u3002`,flags:[ID_FLAG,NAME_FLAG,PROJECT_FLAG],async prepare(input,ctx){const name=validName(input.flags.get("--name"),"--name",UPDATE_USAGE);const{folder,rows}=await target(input,ctx,UPDATE_USAGE);assertNoSibling(rows,folder.parentId,name,folder.id);
|
|
44
|
+
return withResolved(input,{folderId:folder.id,name,folderPath:folder.path})},plan:input=>({method:"PUT",path:folderPath(requireResolved(input,"folderId")),body:{name:requireResolved(input,"name")}}),plannedNotes:input=>[`${requireResolved(input,"folderPath")} \u306E\u540D\u524D\u3092\u300C${requireResolved(input,"name")}\u300D\u306B\u3057\u307E\u3059\u3002`],summarize:body=>pick(dataOf(body,"\u30D5\u30A9\u30EB\u30C0\u540D\u306E\u5909\u66F4"),ROW_COLUMNS),raw:body=>dataOf(body,"\u30D5\u30A9\u30EB\u30C0\u540D\u306E\u5909\u66F4")},
|
|
45
|
+
{name:"move",summary:"\u30D5\u30A9\u30EB\u30C0\u3092\u5225\u306E\u30D5\u30A9\u30EB\u30C0\u306E\u4E0B\uFF08\u307E\u305F\u306F\u6700\u4E0A\u4F4D\uFF09\u3078\u79FB\u3059",usage:MOVE_USAGE,description:`${REF_HELP}
|
|
46
|
+
\u79FB\u52D5\u5148\u306F\u540C\u3058\u30B9\u30B3\u30FC\u30D7\u306E\u30D5\u30A9\u30EB\u30C0\u3060\u3051\u3067\u3059\uFF08\u500B\u4EBA\u3068\u30D7\u30ED\u30B8\u30A7\u30AF\u30C8\u306E\u9593\u306F\u79FB\u305B\u307E\u305B\u3093\uFF09\u3002
|
|
47
|
+
\u81EA\u5206\u81EA\u8EAB\u30FB\u81EA\u5206\u306E\u4E0B\u4F4D\u30D5\u30A9\u30EB\u30C0\u3078\u306E\u79FB\u52D5\u3068\u3001\u79FB\u52D5\u5148\u306B\u540C\u3058\u540D\u524D\u304C\u3042\u308B\u3068\u304D\u306F\u9001\u3089\u305A\u306B\u6B62\u3081\u307E\u3059\u3002`,flags:[ID_FLAG,PARENT_FLAG,ROOT_FLAG,PROJECT_FLAG],async prepare(input,ctx){const parent=nonEmpty(input.flags,"--parent");const toRoot=input.flags.has("--root");if(parent===void 0===!toRoot)throw new UsageError("\u79FB\u52D5\u5148\u3092 --parent \u304B --root \u306E\u3069\u3061\u3089\u304B\
|
|
48
|
+
\u4E00\u65B9\u3067\u6307\u5B9A\u3057\u3066\u304F\u3060\u3055\u3044",MOVE_USAGE);const{folder,rows}=await target(input,ctx,MOVE_USAGE);let parentId=null;let parentPath="\u6700\u4E0A\u4F4D";if(parent!==void 0){const dest=isFolderId(parent)?rows.find(row=>row.id===parent):resolveFolderPath(rows,parent);if(dest===void 0)throw new UsageError(`\u79FB\u52D5\u5148 ${parent} \u306F ${folder.path} \u3068\u540C\u3058\u30B9\u30B3\u30FC\u30D7\u306B\u3042\u308A\u307E\u305B\u3093`);if(dest.id===folder.id)throw new UsageError(
|
|
49
|
+
"\u30D5\u30A9\u30EB\u30C0\u3092\u81EA\u5206\u81EA\u8EAB\u306E\u4E0B\u3078\u306F\u79FB\u305B\u307E\u305B\u3093");if(descendantsOf(rows,folder.id).some(row=>row.id===dest.id)){throw new UsageError(`\u79FB\u52D5\u5148 ${dest.path} \u306F ${folder.path} \u306E\u4E0B\u4F4D\u30D5\u30A9\u30EB\u30C0\u3067\u3059\uFF08\u81EA\u5206\u306E\u4E0B\u3078\u306F\u79FB\u305B\u307E\u305B\u3093\uFF09`)}parentId=dest.id;parentPath=dest.path}if(parentId===folder.parentId)throw new UsageError(`${folder.path} \u306F\u3059\u3067\u306B ${parentPath}\
|
|
50
|
+
\u306B\u3042\u308A\u307E\u3059`);assertNoSibling(rows,parentId,folder.name,folder.id);return withResolved(input,{folderId:folder.id,folderPath:folder.path,parentPath,...parentId===null?{}:{parentId}})},plan:input=>({method:"POST",path:`${folderPath(requireResolved(input,"folderId"))}/move`,body:{parent_id:input.resolved?.["parentId"]??null}}),plannedNotes:input=>[`${requireResolved(input,"folderPath")} \u3092 ${requireResolved(input,"parentPath")} \u3078\u79FB\u3057\u307E\u3059\u3002`],summarize:body=>pick(
|
|
51
|
+
dataOf(body,"\u30D5\u30A9\u30EB\u30C0\u79FB\u52D5"),ROW_COLUMNS),raw:body=>dataOf(body,"\u30D5\u30A9\u30EB\u30C0\u79FB\u52D5")},{name:"delete",summary:"\u30D5\u30A9\u30EB\u30C0\u3092\u30B4\u30DF\u7BB1\u3078\u79FB\u3059\uFF08--permanent \u3067\u30B4\u30DF\u7BB1\u304B\u3089\u5B8C\u5168\u524A\u9664\uFF09",usage:DELETE_USAGE,description:`${REF_HELP}
|
|
52
|
+
\u9001\u308B\u524D\u306B\u4E2D\u8EAB\uFF08\u30B5\u30D6\u30D5\u30A9\u30EB\u30C0\u30FB\u30D5\u30A1\u30A4\u30EB\u306E\u4EF6\u6570\uFF09\u3092\u78BA\u304B\u3081\u3001\u4E2D\u8EAB\u304C\u3042\u308B\u306E\u306B --recursive \u304C\u7121\u3051\u308C\u3070\u6B62\u3081\u307E\u3059\u3002
|
|
53
|
+
\u65E2\u5B9A\u306F\u30B4\u30DF\u7BB1\u3078\u79FB\u3059\u3060\u3051\u3067\u3001twp media folder restore \u3067\u623B\u305B\u307E\u3059\u3002--permanent \u306F\u30B4\u30DF\u7BB1\u306B\u3042\u308B\u30D5\u30A9\u30EB\u30C0\u3092
|
|
54
|
+
\u5B8C\u5168\u306B\u524A\u9664\u3057\u3001\u5FA9\u5143\u3067\u304D\u307E\u305B\u3093\uFF08ID \u3067\u6307\u5B9A\u3002--recursive \u3067\u4E2D\u306E\u30B5\u30D6\u30D5\u30A9\u30EB\u30C0\u30FB\u30D5\u30A1\u30A4\u30EB\u3054\u3068\uFF09\u3002
|
|
55
|
+
\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`,destructive:true,flags:[ID_FLAG,RECURSIVE_FLAG,PERMANENT_FLAG,PROJECT_FLAG],prepare:prepareDelete,plan(input){const base=folderPath(requireResolved(input,"folderId"));const path2=input.flags.has("--permanent")?`${base}/permanent`:base;return{method:"DELETE",path:path2,query:{recursive:input.
|
|
56
|
+
flags.has("--recursive")?"true":void 0}}},plannedNotes(input){const where=requireResolved(input,"folderPath");const subfolders=input.resolved?.["subfolders"]??"0";if(input.flags.has("--permanent")){return[`\u30B4\u30DF\u7BB1\u306E\u30D5\u30A9\u30EB\u30C0 ${where} \u3092\u5B8C\u5168\u306B\u524A\u9664\u3057\u307E\u3059\uFF08\u30B5\u30D6\u30D5\u30A9\u30EB\u30C0 ${subfolders} \u4EF6\u30FB\u30D5\u30A1\u30A4\u30EB ${input.resolved?.["files"]??"0"} \u4EF6\uFF08\u8A18\u9332\u4E0A\uFF09\u3092\u542B\u3080\u30FB\u5FA9\u5143\u3067\u304D\u307E\u305B\u3093\uFF09\u3002`]}
|
|
57
|
+
const more=input.resolved?.["complete"]==="0"?"\u4EE5\u4E0A\uFF08\u4EF6\u6570\u3092\u6570\u3048\u5207\u308C\u3066\u3044\u307E\u305B\u3093\uFF09":"";return[`\u30D5\u30A9\u30EB\u30C0 ${where} \u3092\u30B4\u30DF\u7BB1\u3078\u79FB\u3057\u307E\u3059\uFF08\u30B5\u30D6\u30D5\u30A9\u30EB\u30C0 ${subfolders} \u4EF6\u30FB\u30D5\u30A1\u30A4\u30EB ${input.resolved?.["files"]??"0"} \u4EF6${more}\u3092\u542B\u3080\uFF09\u3002`]},summarize:body=>body,raw:body=>body},{name:"restore",summary:"\u30B4\u30DF\u7BB1\u306E\u30D5\u30A9\u30EB\u30C0\u3092\u4E2D\u8EAB\u3054\u3068\u5143\u306B\u623B\u3059",
|
|
58
|
+
usage:RESTORE_USAGE,description:"\u30B4\u30DF\u7BB1\u306E\u30D5\u30A9\u30EB\u30C0\u3092 ID \u3067\u6307\u5B9A\u3057\u307E\u3059\uFF08twp media folder list --trash\uFF09\u3002\u30D7\u30ED\u30B8\u30A7\u30AF\u30C8\u306E\u30D5\u30A9\u30EB\u30C0\u306A\u3089 --project \u3092\u4ED8\u3051\u307E\u3059\u3002\n\u30B5\u30FC\u30D0\u304C\u4E2D\u8EAB\u306E\u4E00\u90E8\u3057\u304B\u623B\u305B\u306A\u304B\u3063\u305F\u3068\u304D\u306F\u3001stderr \u3067\u305D\u3046\u4F1D\u3048\u3066\u7D42\u4E86\u30B3\u30FC\u30C9 3 \u3067\u7D42\u308F\u308A\u307E\u3059\uFF08\u30D5\u30A9\u30EB\u30C0\u81EA\u4F53\u306F\u623B\u3063\u3066\u3044\u307E\u3059\uFF09\u3002",
|
|
59
|
+
flags:[ID_FLAG,PROJECT_FLAG],async prepare(input,ctx){const ref=singleRef(input,{flag:"--id",label:"\u30D5\u30A9\u30EB\u30C0",usage:RESTORE_USAGE});if(!isFolderId(ref))throw new UsageError("restore \u3067\u306F\u30D5\u30A9\u30EB\u30C0\u3092 ID \u3067\u6307\u5B9A\u3057\u3066\u304F\u3060\u3055\u3044\uFF08\u30B4\u30DF\u7BB1\u306E\u30D5\u30A9\u30EB\u30C0\u306F\u30D1\u30B9\u3067\u5F15\u3051\u307E\u305B\u3093\uFF09",RESTORE_USAGE);const scope=await scopeOf(input,ctx);const trash=folderRows(await ctx.resolver.
|
|
60
|
+
mediaFolderTrash(scope.scope,scope.scopeId));const folder=trash.find(row=>row.id===ref);if(folder===void 0){throw new UsageError(`\u30D5\u30A9\u30EB\u30C0 ${ref} \u306F${scope.scope===SCOPE_PROJECT?"\u3053\u306E\u30D7\u30ED\u30B8\u30A7\u30AF\u30C8\u306E":"\u500B\u4EBA\u306E"}\u30B4\u30DF\u7BB1\u306B\u3042\u308A\u307E\u305B\u3093`,"\u30D7\u30ED\u30B8\u30A7\u30AF\u30C8\u306E\u30D5\u30A9\u30EB\u30C0\u306A\u3089 --project \u3092\u4ED8\u3051\u307E\u3059\u3002ID \u306F twp media folder list --trash \u3067\u78BA\u304B\u3081\u3089\u308C\u307E\u3059\u3002")}
|
|
61
|
+
return withResolved(input,{folderId:ref,folderPath:folder.path})},plan:input=>({method:"POST",path:`${folderPath(requireResolved(input,"folderId"))}/restore`,body:{}}),plannedNotes:input=>[`\u30B4\u30DF\u7BB1\u306E\u30D5\u30A9\u30EB\u30C0 ${requireResolved(input,"folderPath")} \u3092\u4E2D\u8EAB\u3054\u3068\u5143\u306B\u623B\u3057\u307E\u3059\u3002`],async execute(input,ctx){const body=await ctx.send({method:"POST",path:`${folderPath(requireResolved(input,"folderId"))}/restore`,body:{}});const meta=isRecord(
|
|
62
|
+
body)&&isRecord(body["meta"])?body["meta"]:void 0;if(meta?.["scan_truncated"]===true){ctx.warn(`\u30D5\u30A9\u30EB\u30C0 ${requireResolved(input,"folderPath")} \u306F\u5FA9\u5143\u3055\u308C\u307E\u3057\u305F\u304C\u3001\u4E2D\u8EAB\u306E\u4E00\u90E8\u3092\u5FA9\u5143\u3067\u304D\u307E\u305B\u3093\u3067\u3057\u305F\u3002\u53D6\u308A\u6B8B\u3055\u308C\u305F\u30D5\u30A9\u30EB\u30C0\u306F twp media folder list --trash \u3067\u78BA\u304B\u3081\u30011\u4EF6\u305A\u3064 restore \u3057\u3066\u304F\u3060\u3055\u3044\u3002`);
|
|
63
|
+
throw new ApiRejectedError("\u30D5\u30A9\u30EB\u30C0\u306E\u5FA9\u5143\u306F\u5B8C\u4E86\u3057\u3066\u3044\u307E\u305B\u3093\uFF08\u4E2D\u8EAB\u306E\u4E00\u90E8\u304C\u623B\u3063\u3066\u3044\u307E\u305B\u3093\uFF09\u3002")}return body},summarize:body=>pick(dataOf(body,"\u30D5\u30A9\u30EB\u30C0\u5FA9\u5143"),ROW_COLUMNS),raw:body=>dataOf(body,"\u30D5\u30A9\u30EB\u30C0\u5FA9\u5143")}];var mediaFolderResource={name:"folder",summary:"\u30E1\u30C7\u30A3\u30A2\u306E\u30D5\u30A9\u30EB\u30C0\uFF08\u4E00\u89A7\u30FB\u30C4\u30EA\u30FC\u30FB\u4F5C\u6210\u30FB\u540D\u524D\u5909\u66F4\u30FB\u79FB\u52D5\u30FB\u524A\u9664\u30FB\u5FA9\u5143\uFF09",
|
|
64
|
+
operations};var SCOPE_PERSONAL2="personal";var SCOPE_PROJECT2="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_FLAG2={
|
|
65
|
+
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",
|
|
66
|
+
takesValue:true,placeholder:"<\u578B>"};var FOLDER_FLAG={name:"--folder",summary:"\u30D5\u30A9\u30EB\u30C0\uFF08ID \u304B\u300C\u89AA/\u5B50\u300D\u5F62\u5F0F\u306E\u30D1\u30B9\u3002\u7701\u7565\u6642\u306F\u30B9\u30B3\u30FC\u30D7\u306E\u6700\u4E0A\u4F4D\uFF09",takesValue:true,placeholder:"<ID|\u30D1\u30B9>"};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",
|
|
67
|
+
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",
|
|
68
|
+
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",
|
|
69
|
+
takesValue:false};var UUID2=/^[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 resolved=input.resolved?.["folderId"];if(resolved!==void 0)return resolved;const value=nonEmpty(input.flags,"--folder");if(value!==void 0&&!UUID2.test(value)){throw new Error(`\u5185\u90E8\u30A8\u30E9\u30FC: --folder ${value} \u304C ID \u3078\u89E3\u6C7A\u3055\u308C\u3066\u3044\u307E\u305B\u3093\uFF08prepare() \u306E\u914D\u7DDA\u6F0F\u308C\uFF09`)}return value}async function resolveFolderFlag(input,ctx,scope){
|
|
70
|
+
const value=nonEmpty(input.flags,"--folder");if(value===void 0)return{};const scopeName=scope["scope"]??SCOPE_PERSONAL2;const scopeId=scope["scope"]===SCOPE_PROJECT2?scope["scopeId"]:void 0;return{folderId:isFolderId(value)?value:await resolveFolderRef(ctx,value,{scope:scopeName,scopeId})}}async function resolveScope(input,ctx){const ref=nonEmpty(input.flags,"--project");if(ref===void 0)return{scope:SCOPE_PERSONAL2};return{scope:SCOPE_PROJECT2,scopeId:await ctx.projectId(ref)}}function fileRef(input,usage){
|
|
71
|
+
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("\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")}
|
|
72
|
+
return data}function dataOf2(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}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>")}
|
|
73
|
+
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(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){
|
|
74
|
+
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["scopeId"];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=dataOf2(body,"\u30A2\u30C3\u30D7\u30ED\u30FC\u30C9URL\u767A\u884C");
|
|
75
|
+
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")}return{id,uploadUrl}}var discardGuidance=id=>` \u7834\u68C4: twp media delete ${id} --yes\uFF08\u30B4\
|
|
76
|
+
\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
|
|
77
|
+
\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
|
|
78
|
+
`+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
|
|
79
|
+
\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
|
|
80
|
+
\u518D\u767B\u9332: twp api /v2/media/files/${id}/complete --method POST --yes
|
|
81
|
+
`+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}`)}
|
|
82
|
+
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=dataOf2(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["\
|
|
83
|
+
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
|
|
84
|
+
${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`)}
|
|
85
|
+
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`,
|
|
86
|
+
usage);const bad=ids.filter(id=>!UUID2.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=dataOf2(
|
|
87
|
+
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(
|
|
88
|
+
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":
|
|
89
|
+
` \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){
|
|
90
|
+
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"},
|
|
91
|
+
{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",
|
|
92
|
+
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"}];
|
|
93
|
+
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}
|
|
94
|
+
\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
|
|
95
|
+
`+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\
|
|
96
|
+
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";
|
|
97
|
+
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_FLAG2={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",
|
|
98
|
+
takesValue:false};var MOVE_FOLDER_FLAG={name:"--folder",summary:"\u79FB\u52D5\u5148\u306E\u30D5\u30A9\u30EB\u30C0\uFF08ID \u304B\u300C\u89AA/\u5B50\u300D\u5F62\u5F0F\u306E\u30D1\u30B9\u3002\u7701\u7565\u6642\u306F\u30B9\u30B3\u30FC\u30D7\u306E\u6700\u4E0A\u4F4D\uFF09",takesValue:true,placeholder:"<ID|\u30D1\u30B9>"};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",
|
|
99
|
+
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 <ID|\u30D1\u30B9>]");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:"delete",label:"\u4E00\
|
|
100
|
+
\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"+
|
|
101
|
+
BULK_FAILURE_HELP,flags:[MOVE_PROJECT_FLAG,MOVE_FOLDER_FLAG],async prepare(input,ctx){bulkIds(input,BULK_MOVE_USAGE,BULK_MAX);const scope=await resolveScope(input,ctx);const scopeId=scope["scopeId"]??(await ctx.resolver.currentUser()).id;return withResolved(input,{scope:requireScope(scope),scopeId,...await resolveFolderFlag(input,ctx,scope)})},plan:input=>({method:"POST",path:"/api/v2/media/files/bulk/move",body:bulkMoveBody(input)}),plannedNotes:input=>[`${bulkIds(input,BULK_MOVE_USAGE,BULK_MAX).
|
|
102
|
+
length} \u4EF6\u306E\u30D5\u30A1\u30A4\u30EB\u3092\u79FB\u3057\u307E\u3059\u3002`],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\
|
|
103
|
+
\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\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"+
|
|
104
|
+
BULK_FAILURE_HELP,destructive:true,flags:[PERMANENT_FLAG2],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,
|
|
105
|
+
BULK_MAX).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\
|
|
106
|
+
\u7F72\u540DURL\u304B\u3089\u672C\u4F53\u3092\u53D7\u3051\u53D6\u308A\u307E\u3059\uFF08${BULK_DOWNLOAD_MAX} \u4EF6\u307E\u3067\uFF09\u3002
|
|
107
|
+
\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
|
|
108
|
+
\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
|
|
109
|
+
\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=dataOf2(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:
|
|
110
|
+
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`)}
|
|
111
|
+
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}];
|
|
112
|
+
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_USAGE2="\
|
|
113
|
+
twp media list [--project <\u30B3\u30FC\u30C9|ID>] [--folder <ID|\u30D1\u30B9>] [--keyword <\u8A9E>]";var UPLOAD_USAGE="twp media upload --file <\u30D1\u30B9> [--project <\u30B3\u30FC\u30C9|ID>] [--folder <ID|\u30D1\u30B9>] [--name <\u540D\u524D>]";var DOWNLOAD_USAGE="twp media download <\u30D5\u30A1\u30A4\u30EBID> --out <\u30D1\u30B9> [--force]";var DELETE_USAGE2="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\u3068\u30D5\u30A9\u30EB\u30C0\uFF08\u30A2\u30C3\u30D7\u30ED\u30FC\u30C9\u30FB\u4E00\u89A7\u30FB\u30C0\u30A6\u30F3\u30ED\u30FC\u30C9\u30FB\u524A\u9664\u30FB\
|
|
114
|
+
\u4E00\u62EC\u64CD\u4F5C\u30FB\u30D5\u30A9\u30EB\u30C0\u7BA1\u7406\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_USAGE2,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"+
|
|
115
|
+
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_USAGE2)}const scope=await resolveScope(input,ctx);return withResolved(input,{...scope,...await resolveFolderFlag(input,ctx,scope)})},plan(input){
|
|
116
|
+
const resolved=input.resolved??{};const keyword=nonEmpty(input.flags,"--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(
|
|
117
|
+
body)?body["meta"]:void 0;const total=isRecord(meta)?meta["total"]: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:"\
|
|
118
|
+
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",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}/c\
|
|
119
|
+
omplete\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",
|
|
120
|
+
flags:[FILE_FLAG,MEDIA_PROJECT_FLAG,FOLDER_FLAG,NAME_FLAG2,CONTENT_TYPE_FLAG],async prepare(input,ctx){const local=localFile(input);const scope=await resolveScope(input,ctx);return withResolved(input,{...scope,...await resolveFolderFlag(input,ctx,scope),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(
|
|
121
|
+
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\
|
|
122
|
+
\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=dataOf2(body,"\u30C0\u30A6\u30F3\u30ED\u30FC\u30C9URL\u53D6\
|
|
123
|
+
\u5F97")["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",
|
|
124
|
+
usage:DELETE_USAGE2,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_USAGE2))}),summarize:body=>body,
|
|
125
|
+
raw:body=>body},...BULK_OPERATIONS],subresources:[mediaFolderResource]};export{mediaDomain,orphanGuidance};
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import { createRequire as __twpCreateRequire } from 'node:module';
|
|
2
2
|
const require = __twpCreateRequire(import.meta.url);
|
|
3
|
-
import{boundedText}from"./chunk-XDHLO54T.js";import{NOTIFICATIONS_PATH}from"./chunk-
|
|
3
|
+
import{boundedText}from"./chunk-XDHLO54T.js";import{NOTIFICATIONS_PATH}from"./chunk-XWW63XJJ.js";import{isSafePathSegment}from"./chunk-GMBJTG6A.js";import"./chunk-3HH5IYNO.js";import"./chunk-IF2K4PM5.js";import"./chunk-4VZKNEVN.js";import"./chunk-II5RVJQN.js";import{LIST_FLAGS,LIST_PAGING_HELP,envelopePaging,nonEmpty,positiveInteger}from"./chunk-IOGMOXYF.js";import{requireResolved,withResolved}from"./chunk-LXIAOCUW.js";import{isRecord,pick}from"./chunk-VTQAI52S.js";
|
|
4
4
|
import{ApiResponseError,UsageError}from"./chunk-UFND7FBC.js";import"./chunk-J7QYPKVK.js";import"./chunk-RZVI6PMW.js";import"./chunk-NHYMHCAT.js";import"./chunk-VSJBJXZO.js";var LABEL="\u901A\u77E5";var LIST_COLUMNS=["id","datetime","category_name","status_name","title"];var GET_COLUMNS=["id","datetime","category","category_name","status_name","read_time","title","content","url"];var CATEGORY_FLAG={name:"--category",summary:"\u901A\u77E5\u30AB\u30C6\u30B4\u30EA\u3067\u7D5E\u308A\u8FBC\u3080\uFF08\u30AD\u30FC\u304B\u540D\u524D\u3002twp notification categories \u3067\u4E00\u89A7\u3067\u304D\u308B\uFF09",takesValue:true,placeholder:"<\u30AB\u30C6\u30B4\u30EA>"};var CATEGORY_HELP="\
|
|
5
5
|
--category \u306F\u30AB\u30C6\u30B4\u30EA\u306E\u30AD\u30FC\uFF08workflow_approval\uFF09\u304B\u540D\u524D\uFF08\u30EF\u30FC\u30AF\u30D5\u30ED\u30FC\u627F\u8A8D\u4F9D\u983C\uFF09\u3067\u6307\u5B9A\u3067\u304D\u307E\u3059\u3002\n\u30AB\u30C6\u30B4\u30EA\u4E00\u89A7\u3068\u7167\u5408\u3059\u308B\u306E\u3067\u3001\u6253\u3061\u9593\u9055\u3048\u305F\u30AB\u30C6\u30B4\u30EA\u3092\u300C0\u4EF6\u300D\u3068\u3057\u3066\u8FD4\u3059\u3053\u3068\u306F\u3042\u308A\u307E\u305B\u3093\uFF08\u4E00\u89A7\u306F\u65E2\u5B9A10\u5206\u30AD\u30E3\u30C3\u30B7\u30E5\u30FB--refresh \u3067\u53D6\u308A\u76F4\u3057\uFF09\u3002";
|
|
6
6
|
async function resolveCategory(input,ctx){const raw=nonEmpty(input.flags,CATEGORY_FLAG.name);if(raw===void 0)return input;return withResolved(input,{category:(await ctx.resolver.notificationCategory(raw.trim())).id})}function noArgs(input,op){if(input.args.length>0){throw new UsageError(`${op} \u306F\u4F4D\u7F6E\u5F15\u6570\u3092\u53D6\u308A\u307E\u305B\u3093: ${input.args.join(" ")}`,`twp notification ${op} help`)}}function notificationId(input,op){const[raw,...rest]=input.args;const id=raw?.trim()??
|
|
@@ -0,0 +1,51 @@
|
|
|
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{ApiResponseError,UsageError}from"./chunk-UFND7FBC.js";import"./chunk-VSJBJXZO.js";import fs from"fs";import path from"path";var UPLOAD_CHUNK_BYTES=320*1024*32;var UPLOAD_MAX_BYTES=250*1024*1024;var BAD_NAME=/["*:<>?/\\|#%\p{Cc}\p{Cf}]/u;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",takesValue:true,placeholder:"<ID>"};var MY_DRIVE="me";function driveOf(input){const raw=input.flags.get("--drive");return raw===void 0?MY_DRIVE:assertMs365PathSegment(
|
|
4
|
+
raw.trim(),"\u30C9\u30E9\u30A4\u30D6ID")}function driveNote(input){return input.flags.has("--drive")?null:"--drive \u3092\u7701\u7565\u3057\u305F\u305F\u3081\u3001\u81EA\u5206\u306E OneDrive \u3092\u5BFE\u8C61\u306B\u3057\u307E\u3057\u305F\u3002"}function fileNameOf(input,localPath){const raw=input.flags.get("--name");const name=(raw??path.basename(localPath)).trim();if(name===""||/^\.+$/.test(name)||BAD_NAME.test(name)||[...name].length>255){throw new UsageError(`\u30C9\u30E9\u30A4\u30D6\u306B\u7F6E\u304F\u30D5\u30A1\u30A4\u30EB\u540D\u306B\u4F7F\u3048\u306A\u3044\u6587\u5B57\u304C\u3042\u308A\u307E\u3059: ${JSON.
|
|
5
|
+
stringify(name)}`,raw===void 0?'--name \u3067\u5225\u306E\u540D\u524D\u3092\u6307\u5B9A\u3057\u3066\u304F\u3060\u3055\u3044\uFF08" * : < > ? / \\ | # % \u3068\u5236\u5FA1\u6587\u5B57\u306F\u4F7F\u3048\u307E\u305B\u3093\u30FB255 \u6587\u5B57\u307E\u3067\uFF09\u3002':'" * : < > ? / \\ | # % \u3068\u5236\u5FA1\u6587\u5B57\u306F\u4F7F\u3048\u307E\u305B\u3093\uFF08255 \u6587\u5B57\u307E\u3067\uFF09\u3002')}return name}function measure(localPath){let fd;try{fd=fs.openSync(localPath,"r")}catch(err){const reason=err.
|
|
6
|
+
code??err.message;throw new UsageError(`\u30A2\u30C3\u30D7\u30ED\u30FC\u30C9\u3059\u308B\u30D5\u30A1\u30A4\u30EB\u3092\u8AAD\u3081\u307E\u305B\u3093: ${localPath}\uFF08${reason}\uFF09`)}try{const stat=fs.fstatSync(fd);if(!stat.isFile())throw new UsageError(`\u901A\u5E38\u306E\u30D5\u30A1\u30A4\u30EB\u4EE5\u5916\u306F\u30A2\u30C3\u30D7\u30ED\u30FC\u30C9\u3067\u304D\u307E\u305B\u3093: ${localPath}`);if(stat.size===0)throw new UsageError(`\u7A7A\u306E\u30D5\u30A1\u30A4\u30EB\u306F\u30A2\u30C3\u30D7\u30ED\u30FC\u30C9\u3067\u304D\u307E\u305B\u3093: ${localPath}`);
|
|
7
|
+
if(stat.size>UPLOAD_MAX_BYTES){throw new UsageError(`\u30D5\u30A1\u30A4\u30EB\u304C\u5927\u304D\u3059\u304E\u307E\u3059\uFF08${stat.size} \u30D0\u30A4\u30C8\u30FB\u4E0A\u9650 ${UPLOAD_MAX_BYTES} \u30D0\u30A4\u30C8\uFF09: ${localPath}`)}return stat.size}finally{fs.closeSync(fd)}}function uploadUrlOf(body){const url=graphData(body,"\u30A2\u30C3\u30D7\u30ED\u30FC\u30C9\u30BB\u30C3\u30B7\u30E7\u30F3")["uploadUrl"];if(typeof url!=="string"||!url.startsWith("https://")||/^https:\/\/[^/]*@/.test(url)){
|
|
8
|
+
throw new ApiResponseError("\u30A2\u30C3\u30D7\u30ED\u30FC\u30C9\u30BB\u30C3\u30B7\u30E7\u30F3\u306E\u5FDC\u7B54\u306B https \u306E uploadUrl \u304C\u3042\u308A\u307E\u305B\u3093\u3002\u63A5\u7D9A\u5148\u3092\u78BA\u8A8D\u3057\u3066\u304F\u3060\u3055\u3044\u3002")}return url}async function uploadChunks(ctx,url,localPath,expected){const fd=fs.openSync(localPath,"r");try{const total=fs.fstatSync(fd).size;if(total!==expected){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${expected}\
|
|
9
|
+
\u2192 ${total} \u30D0\u30A4\u30C8\uFF09: ${localPath}`)}const buffer=Buffer.alloc(Math.min(UPLOAD_CHUNK_BYTES,total));let offset=0;let last;while(offset<total){const want=Math.min(UPLOAD_CHUNK_BYTES,total-offset);const read=fs.readSync(fd,buffer,0,want,offset);if(read!==want)throw new UsageError(`\u30A2\u30C3\u30D7\u30ED\u30FC\u30C9\u4E2D\u306B\u30D5\u30A1\u30A4\u30EB\u3092\u8AAD\u307F\u5207\u308C\u307E\u305B\u3093\u3067\u3057\u305F\uFF08${offset} \u30D0\u30A4\u30C8\u76EE\uFF09: ${localPath}`);
|
|
10
|
+
last=await ctx.putRange(url,new Uint8Array(buffer.subarray(0,read)),offset,total);offset+=read}if(last===void 0||last.status!==200&&last.status!==201||!isRecord(last.body)||typeof last.body["id"]!=="string"){throw new ApiResponseError("\u30A2\u30C3\u30D7\u30ED\u30FC\u30C9\u306E\u6700\u5F8C\u306E\u5FDC\u7B54\u306B\u30D5\u30A1\u30A4\u30EB\u306E\u60C5\u5831\u304C\u3042\u308A\u307E\u305B\u3093\u3002twp onedrive item list \u3067\u7F6E\u304B\u308C\u305F\u304B\u3092\u78BA\u8A8D\u3057\u3066\u304F\u3060\u3055\u3044\u3002")}
|
|
11
|
+
return last.body}finally{fs.closeSync(fd)}}var ITEM_COLUMNS=["id","name","size","webUrl"];function sessionPlan(input){const drive=ms365Segment(requireResolved(input,"driveId"),"\u30C9\u30E9\u30A4\u30D6ID");const folder=ms365Segment(requireResolved(input,"folderId"),"\u30D5\u30A9\u30EB\u30C0ID");return{method:"POST",path:ms365Path(`/drives/${drive}/items/${folder}/createUploadSession`),body:{filename:requireResolved(input,"name")}}}var upload={name:"upload",summary:"\u30ED\u30FC\u30AB\u30EB\u306E\u30D5\u30A1\u30A4\u30EB\u3092\u30C9\u30E9\u30A4\u30D6\u3078\u30A2\u30C3\u30D7\u30ED\u30FC\u30C9\u3059\u308B\uFF08\u65E2\u5B9A\u306F\u81EA\u5206\u306E\
|
|
12
|
+
OneDrive \u306E\u6700\u4E0A\u4F4D\uFF09",usage:"twp onedrive item upload <\u30ED\u30FC\u30AB\u30EB\u306E\u30D1\u30B9> [--folder <\u30D5\u30A9\u30EB\u30C0ID>] [--name <\u540D\u524D>] [--drive <ID>]",description:`\u30D5\u30A1\u30A4\u30EB\u3092 Microsoft 365 \u306E\u30A2\u30C3\u30D7\u30ED\u30FC\u30C9\u30BB\u30C3\u30B7\u30E7\u30F3\u3067\u9001\u308A\u307E\u3059\uFF08\u5927\u304D\u3055\u306B\u95A2\u308F\u3089\u305A\u540C\u3058\u7D4C\u8DEF\uFF09\u3002
|
|
13
|
+
\u5927\u304D\u3055\u306F 1 \u30D0\u30A4\u30C8\u4EE5\u4E0A ${UPLOAD_MAX_BYTES} \u30D0\u30A4\u30C8\uFF08250MB\uFF09\u307E\u3067\u3067\u3059\u3002${UPLOAD_CHUNK_BYTES} \u30D0\u30A4\u30C8\uFF0810MB\uFF09\u305A\u3064\u306B\u5206\u3051\u3066\u9001\u308A\u307E\u3059\u3002
|
|
14
|
+
|
|
15
|
+
\u540C\u3058\u540D\u524D\u306E\u30D5\u30A1\u30A4\u30EB\u304C\u30D5\u30A9\u30EB\u30C0\u306B\u3042\u308B\u3068\u304D\u306F\u4E0A\u66F8\u304D\u3057\u307E\u305B\u3093\u3002Microsoft 365 \u304C\u540D\u524D\u3092\u5909\u3048\u3066\u4FDD\u5B58\u3057\u307E\u3059
|
|
16
|
+
\uFF08\u300Creport 1.pdf\u300D\u7B49\u3002\u5B9F\u969B\u306B\u4ED8\u3044\u305F\u540D\u524D\u306F\u7D50\u679C\u306E name \u306B\u51FA\u307E\u3059\uFF09\u3002
|
|
17
|
+
\u30C9\u30E9\u30A4\u30D6\u4E0A\u306E\u540D\u524D\u306F\u65E2\u5B9A\u3067\u30ED\u30FC\u30AB\u30EB\u306E\u30D5\u30A1\u30A4\u30EB\u540D\uFF08\u30D1\u30B9\u306E\u672B\u5C3E\uFF09\u3067\u3059\u3002--name \u3067\u5909\u3048\u3089\u308C\u307E\u3059\u3002
|
|
18
|
+
--folder \u3092\u7701\u304F\u3068\u30C9\u30E9\u30A4\u30D6\u306E\u6700\u4E0A\u4F4D\uFF08root\uFF09\u306B\u7F6E\u304D\u307E\u3059\u3002\u30D5\u30A9\u30EB\u30C0ID \u306F twp onedrive item list \u306E id \u3067\u3059\u3002
|
|
19
|
+
|
|
20
|
+
\u26A0 \u9014\u4E2D\u3067\u901A\u4FE1\u304C\u5207\u308C\u305F\u3068\u304D\u306F\u3001\u305D\u308C\u307E\u3067\u306B\u9001\u3063\u305F\u5206\u306F\u4FDD\u5B58\u3055\u308C\u307E\u305B\u3093\uFF08\u6253\u3061\u76F4\u3059\u3068\u6700\u521D\u304B\u3089\u9001\u308A\u307E\u3059\uFF09\u3002
|
|
21
|
+
\u26A0 --drive \u306B\u30C1\u30E3\u30CD\u30EB\u306E\u30C9\u30E9\u30A4\u30D6\u3092\u6E21\u3059\u3068\u3001\u305D\u306E\u30C1\u30E3\u30CD\u30EB\u306E\u30E1\u30F3\u30D0\u30FC\u306B\u30D5\u30A1\u30A4\u30EB\u304C\u898B\u3048\u307E\u3059\u3002`,flags:[{name:"--file",summary:"\u30ED\u30FC\u30AB\u30EB\u306E\u30D1\u30B9\uFF08\u4F4D\u7F6E\u5F15\u6570\u3068\u540C\u3058\u610F\u5473\uFF09",takesValue:true,placeholder:"<\u30D1\u30B9>"},{name:"--folder",summary:"\u7F6E\u304D\u5148\u306E\u30D5\u30A9\u30EB\u30C0ID\uFF08\u65E2\u5B9A root\uFF09",
|
|
22
|
+
takesValue:true,placeholder:"<ID>"},{name:"--name",summary:"\u30C9\u30E9\u30A4\u30D6\u4E0A\u306E\u540D\u524D\uFF08\u65E2\u5B9A\u306F\u30ED\u30FC\u30AB\u30EB\u306E\u30D5\u30A1\u30A4\u30EB\u540D\uFF09",takesValue:true,placeholder:"<\u540D\u524D>"},DRIVE_FLAG],forbidden:ms365Forbidden,async prepare(input){const usage="twp onedrive item upload help";const localPath=path.resolve(singleRef(input,{flag:"--file",label:"\u30A2\u30C3\u30D7\u30ED\u30FC\u30C9\u3059\u308B\u30D5\u30A1\u30A4\u30EB",usage}));if(input.
|
|
23
|
+
flags.has("--folder")&&(input.flags.get("--folder")??"").trim()===""){throw new UsageError("--folder \u306B\u7A7A\u306E\u5024\u306F\u6307\u5B9A\u3067\u304D\u307E\u305B\u3093",usage)}const folder=assertMs365PathSegment((input.flags.get("--folder")??"root").trim(),"\u30D5\u30A9\u30EB\u30C0ID");const name=fileNameOf(input,localPath);const size=measure(localPath);return withResolved(input,{driveId:driveOf(input),folderId:folder,localPath,name,size:String(size)})},plan:sessionPlan,async execute(input,ctx){
|
|
24
|
+
const session=await ctx.send(sessionPlan(input));const item=await uploadChunks(ctx,uploadUrlOf(session),requireResolved(input,"localPath"),Number(requireResolved(input,"size")));return{result:true,data:item}},plannedNotes(input){const size=Number(requireResolved(input,"size"));const pieces=Math.ceil(size/UPLOAD_CHUNK_BYTES);return[...[driveNote(input)].filter(v=>v!==null),`\u30A2\u30C3\u30D7\u30ED\u30FC\u30C9: ${requireResolved(input,"localPath")}\uFF08${size} \u30D0\u30A4\u30C8\uFF09\u2192 \u30D5\u30A9\u30EB\u30C0 ${requireResolved(
|
|
25
|
+
input,"folderId")} \u306B\u300C${requireResolved(input,"name")}\u300D\uFF08\u540C\u540D\u304C\u3042\u308C\u3070\u540D\u524D\u3092\u5909\u3048\u3066\u4FDD\u5B58\u30FB\u4E0A\u66F8\u304D\u3057\u307E\u305B\u3093\uFF09\u3002\u30BB\u30C3\u30B7\u30E7\u30F3\u3092\u4F5C\u3063\u305F\u5F8C\u3001Microsoft 365 \u306E\u30A2\u30C3\u30D7\u30ED\u30FC\u30C9 URL \u3078 ${pieces} \u56DE\u306B\u5206\u3051\u3066\u9001\u308A\u307E\u3059\u3002`]},summarize:body=>pick(graphData(body,"\u30A2\u30C3\u30D7\u30ED\u30FC\u30C9"),
|
|
26
|
+
ITEM_COLUMNS),raw:body=>graphData(body,"\u30A2\u30C3\u30D7\u30ED\u30FC\u30C9"),notes:body=>{const name=str(graphData(body,"\u30A2\u30C3\u30D7\u30ED\u30FC\u30C9")["name"]);return[`\u30A2\u30C3\u30D7\u30ED\u30FC\u30C9\u3057\u307E\u3057\u305F${name===null?"":`\uFF08\u30C9\u30E9\u30A4\u30D6\u4E0A\u306E\u540D\u524D: ${name}\uFF09`}\u3002`]}};var SCOPES=["organization","anonymous"];var TYPES=["view","edit"];function linkPlan(input,drive){const item=ms365Segment(requireResolved(input,"itemId"),"\u9805\u76EEID");
|
|
27
|
+
return{method:"POST",path:ms365Path(`/drives/${ms365Segment(drive,"\u30C9\u30E9\u30A4\u30D6ID")}/items/${item}/createLink`),body:{type:requireResolved(input,"type"),scope:requireResolved(input,"scope")}}}async function myDriveIdOf(ctx,input){const item=ms365Segment(requireResolved(input,"itemId"),"\u9805\u76EEID");const data=graphData(await ctx.send({method:"GET",path:ms365Path(`/drives/${MY_DRIVE}/items/${item}`)}),"\u30D5\u30A1\u30A4\u30EB\u60C5\u5831");const driveId=isRecord(data["parentRefer\
|
|
28
|
+
ence"])?str(data["parentReference"]["driveId"]):null;if(driveId===null){throw new ApiResponseError("\u9805\u76EE\u306E\u60C5\u5831\u306B parentReference.driveId \u304C\u3042\u308A\u307E\u305B\u3093\u3002--drive \u306B\u5B9F\u969B\u306E\u30C9\u30E9\u30A4\u30D6ID \u3092\u6307\u5B9A\u3057\u3066\u304F\u3060\u3055\u3044\u3002")}return assertMs365PathSegment(driveId,"\u30C9\u30E9\u30A4\u30D6ID")}var linkCreate={name:"create",summary:"\u30D5\u30A1\u30A4\u30EB\u30FB\u30D5\u30A9\u30EB\u30C0\u306E\u5171\u6709\u30EA\u30F3\u30AF\u3092\u4F5C\u308B\uFF08--scope \u5FC5\u9808\u30FB--yes \u304C\u5FC5\u8981\uFF09",
|
|
29
|
+
usage:"twp onedrive link create <\u9805\u76EEID> --scope <organization|anonymous> [--type <view|edit>] [--drive <ID>] --yes",description:"\u26A0 \u4F5C\u3063\u305F\u30EA\u30F3\u30AF\u3092\u77E5\u308B\u4EBA\u304C\u30D5\u30A1\u30A4\u30EB\u3092\u958B\u3051\u308B\u3088\u3046\u306B\u306A\u308A\u307E\u3059\u3002\u3053\u306E CLI \u304B\u3089\u306F\u30EA\u30F3\u30AF\u3092\u6D88\u305B\u307E\u305B\u3093\n \uFF08\u6D88\u3059\u306B\u306F OneDrive \u306E\u300C\u30A2\u30AF\u30BB\u30B9\u8A31\u53EF\u306E\u7BA1\u7406\u300D\u304B\u3089\u5916\u3057\u3066\u304F\u3060\u3055\u3044\uFF09\u3002--yes \u304C\u7121\u3051\u308C\u3070\u5B9F\u884C\u3057\u307E\u305B\u3093\u3002\n\n--scope \u306F\u5FC5\u305A\u6307\u5B9A\u3057\u307E\u3059\uFF08\u65E2\u5B9A\u306F\u3042\u308A\u307E\u305B\u3093\uFF09\u3002\n organization \u81EA\u5206\u306E\u7D44\u7E54\uFF08\u30C6\u30CA\u30F3\u30C8\uFF09\u306E\u30A2\u30AB\u30A6\u30F3\u30C8\u3067\u30B5\u30A4\u30F3\u30A4\u30F3\u3057\u305F\u4EBA\u3060\u3051\u304C\u958B\u3051\u308B\n anonymous \u30EA\u30F3\u30AF\u3092\u77E5\u3063\u3066\u3044\u308C\u3070\u7D44\u7E54\u306E\u5916\u306E\u8AB0\u3067\u3082\u30B5\u30A4\u30F3\u30A4\u30F3\u306A\u3057\u3067\u958B\u3051\u308B\uFF08\u30C6\u30CA\u30F3\u30C8\u3067\u7981\u6B62\u3055\u308C\u3066\u3044\u308C\u3070\u4F5C\u308C\u307E\u305B\u3093\uFF09\n--type \u306F view\uFF08\u95B2\u89A7\u306E\u307F\u30FB\u65E2\u5B9A\uFF09\u304B edit\uFF08\u7DE8\u96C6\u3082\u53EF\uFF09\u3067\u3059\u3002\n\u540C\u3058\u9805\u76EE\u30FB\u540C\u3058\u7BC4\u56F2\u30FB\u540C\u3058\u7A2E\u985E\u306E\u30EA\u30F3\u30AF\u304C\u65E2\u306B\u3042\u308C\u3070\u3001Microsoft 365 \u306F\u305D\u306E\u30EA\u30F3\u30AF\u3092\u8FD4\u3057\u307E\u3059\u3002\n\u9805\u76EEID \u306F twp onedrive \
|
|
30
|
+
item list \u306E id \u3067\u3059\u3002\n--drive \u3092\u7701\u304F\u3068\u81EA\u5206\u306E OneDrive \u306E\u9805\u76EE\u3068\u3057\u3066\u6271\u3044\u3001\u9001\u308B\u524D\u306B\u9805\u76EE\u30921\u56DE\u8AAD\u3093\u3067\u5B9F\u969B\u306E\u30C9\u30E9\u30A4\u30D6ID \u3092\u8ABF\u3079\u307E\u3059\n\uFF08--dry-run \u306E URL \u306B\u306F me \u3068\u51FA\u307E\u3059\u3002Microsoft 365 \u306F me \u306E\u307E\u307E\u3067\u306F\u5171\u6709\u30EA\u30F3\u30AF\u3092\u4F5C\u3089\u306A\u3044\u305F\u3081\u3067\u3059\uFF09\u3002",
|
|
31
|
+
destructive:true,confirmation:"\u5171\u6709\u30EA\u30F3\u30AF\u3092\u4F5C\u308B\u64CD\u4F5C\uFF08\u30EA\u30F3\u30AF\u3092\u77E5\u308B\u4EBA\u304C\u958B\u3051\u308B\u3088\u3046\u306B\u306A\u308A\u3001\u3053\u306E CLI \u304B\u3089\u306F\u53D6\u308A\u6D88\u305B\u307E\u305B\u3093\uFF09",flags:[{name:"--item",summary:"\u9805\u76EEID\uFF08\u4F4D\u7F6E\u5F15\u6570\u3068\u540C\u3058\u610F\u5473\uFF09",takesValue:true,placeholder:"<ID>"},{name:"--scope",summary:"\u958B\u3051\u308B\u7BC4\u56F2\uFF08organization / anonymous\u30FB\u5FC5\u9808\uFF09",
|
|
32
|
+
takesValue:true,placeholder:"<\u7BC4\u56F2>"},{name:"--type",summary:"view\uFF08\u95B2\u89A7\u30FB\u65E2\u5B9A\uFF09/ edit\uFF08\u7DE8\u96C6\uFF09",takesValue:true,placeholder:"<\u7A2E\u985E>"},DRIVE_FLAG],forbidden:ms365Forbidden,async prepare(input){const usage="twp onedrive link create help";const item=assertMs365PathSegment(singleRef(input,{flag:"--item",label:"\u9805\u76EEID",usage}),"\u9805\u76EEID");const scope=input.flags.get("--scope")?.trim();if(scope===void 0||!SCOPES.includes(scope)){
|
|
33
|
+
throw new UsageError(scope===void 0?"--scope \u3092\u6307\u5B9A\u3057\u3066\u304F\u3060\u3055\u3044\uFF08\u65E2\u5B9A\u306F\u3042\u308A\u307E\u305B\u3093\uFF09":`--scope \u306F organization \u304B anonymous \u3067\u3059\uFF08\u53D7\u3051\u53D6\u3063\u305F\u5024: ${scope}\uFF09`,usage)}const type=input.flags.get("--type")?.trim()??"view";if(!TYPES.includes(type))throw new UsageError(`--type \u306F view \u304B edit \u3067\u3059\uFF08\u53D7\u3051\u53D6\u3063\u305F\u5024: ${type}\uFF09`,usage);return withResolved(
|
|
34
|
+
input,{driveId:driveOf(input),itemId:item,scope,type})},plan:input=>linkPlan(input,requireResolved(input,"driveId")),async execute(input,ctx){const drive=requireResolved(input,"driveId");return ctx.send(linkPlan(input,drive===MY_DRIVE?await myDriveIdOf(ctx,input):drive))},plannedNotes(input){const scope=requireResolved(input,"scope");const resolveNote=requireResolved(input,"driveId")===MY_DRIVE?[`\u9001\u308B\u524D\u306B\u9805\u76EE\u3092\u8AAD\u307F\uFF08GET drives/me/items/${requireResolved(input,
|
|
35
|
+
"itemId")}\uFF09\u3001URL \u306E me \u3092\u5B9F\u969B\u306E\u30C9\u30E9\u30A4\u30D6ID \u306B\u7F6E\u304D\u63DB\u3048\u3066\u9001\u308A\u307E\u3059\uFF08Microsoft 365 \u306F drives/me \u306E\u307E\u307E\u3067\u306F\u5171\u6709\u30EA\u30F3\u30AF\u3092\u4F5C\u308A\u307E\u305B\u3093\uFF09\u3002`]:[];return[...[driveNote(input)].filter(v=>v!==null),...resolveNote,...input.flags.has("--type")?[]:["--type \u3092\u7701\u7565\u3057\u305F\u305F\u3081\u3001\u95B2\u89A7\u306E\u307F\uFF08view\uFF09\u306E\u30EA\u30F3\u30AF\u3092\u4F5C\u308A\u307E\u3059\u3002"],
|
|
36
|
+
scope==="anonymous"?"\u26A0 \u533F\u540D\u30EA\u30F3\u30AF\uFF08anonymous\uFF09\u3092\u4F5C\u308A\u307E\u3059\u3002\u30EA\u30F3\u30AF\u3092\u77E5\u3063\u3066\u3044\u308C\u3070\u7D44\u7E54\u306E\u5916\u306E\u8AB0\u3067\u3082\u30B5\u30A4\u30F3\u30A4\u30F3\u306A\u3057\u3067\u958B\u3051\u307E\u3059\u3002":"\u7D44\u7E54\u5185\u30EA\u30F3\u30AF\uFF08organization\uFF09\u3092\u4F5C\u308A\u307E\u3059\u3002\u7D44\u7E54\u306E\u30A2\u30AB\u30A6\u30F3\u30C8\u3067\u30B5\u30A4\u30F3\u30A4\u30F3\u3057\u305F\u4EBA\u304C\u958B\u3051\u307E\u3059\u3002"]},
|
|
37
|
+
summarize(body){const data=graphData(body,"\u5171\u6709\u30EA\u30F3\u30AF");const link=isRecord(data["link"])?data["link"]:null;if(link===null||str(link["webUrl"])===null)throw new ApiResponseError("\u5171\u6709\u30EA\u30F3\u30AF\u306E\u5FDC\u7B54\u306B link.webUrl \u304C\u3042\u308A\u307E\u305B\u3093\u3002");return{id:data["id"]??null,webUrl:link["webUrl"],type:link["type"]??null,scope:link["scope"]??null}},raw:body=>graphData(body,"\u5171\u6709\u30EA\u30F3\u30AF")};var itemWriteOperations=[upload];
|
|
38
|
+
var linkResource={name:"link",summary:"\u5171\u6709\u30EA\u30F3\u30AF\uFF08\u4F5C\u6210\uFF09",operations:[linkCreate]};var MY_DRIVE2="me";var ITEM_COLUMNS2=["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_FLAG2={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",
|
|
39
|
+
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!==
|
|
40
|
+
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 driveOf2(input){const raw=input.flags.get("--drive");return raw===void 0?MY_DRIVE2: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"]}
|
|
41
|
+
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\u30FB\u30A2\u30C3\u30D7\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>] [--\
|
|
42
|
+
limit <\u4EF6\u6570>] [--all]",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",
|
|
43
|
+
takesValue:true,placeholder:"<ID>"},DRIVE_FLAG2,...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",
|
|
44
|
+
usage:"twp onedrive item list help",required:false})??"root";return withResolved(input,{driveId:driveOf2(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(
|
|
45
|
+
input,"skiptoken")}}},plannedNotes:driveNotes,summarize:body=>graphValue(body,"\u30D5\u30A1\u30A4\u30EB\u4E00\u89A7").map(row=>pick(itemRow(row),ITEM_COLUMNS2)),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:"\
|
|
46
|
+
\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_FLAG2],forbidden:ms365Forbidden,async prepare(input){const item=singleRef(input,{flag:"--item",label:"\u9805\u76EEID",usage:"twp onedrive item get help"});return withResolved(
|
|
47
|
+
input,{driveId:driveOf2(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:"downloa\
|
|
48
|
+
d",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",
|
|
49
|
+
flags:[{name:"--item",summary:"\u9805\u76EEID\uFF08\u4F4D\u7F6E\u5F15\u6570\u3068\u540C\u3058\u610F\u5473\uFF09",takesValue:true,placeholder:"<ID>"},DRIVE_FLAG2,{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:"\
|
|
50
|
+
--force"},async prepare(input){const item=singleRef(input,{flag:"--item",label:"\u9805\u76EEID",usage:"twp onedrive item download help"});return withResolved(input,{driveId:driveOf2(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,
|
|
51
|
+
summarize:body=>body,raw:body=>body},...itemWriteOperations]};var onedriveDomain={name:"onedrive",summary:"Microsoft 365 \u306E OneDrive / SharePoint \u306E\u30D5\u30A1\u30A4\u30EB",operations:[],subresources:[itemResource,linkResource]};export{onedriveDomain};
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import { createRequire as __twpCreateRequire } from 'node:module';
|
|
2
2
|
const require = __twpCreateRequire(import.meta.url);
|
|
3
|
-
import{activateModeFiles,activatePermissionSettings,buildResidentSet,buildSystemPrompt,createAuditLogger,createTwpToolkit,currentBranch,displayCwd,residentInputs,runTurn}from"./chunk-
|
|
3
|
+
import{activateModeFiles,activatePermissionSettings,buildResidentSet,buildSystemPrompt,createAuditLogger,createTwpToolkit,currentBranch,displayCwd,residentInputs,runTurn}from"./chunk-LKS7GANP.js";import"./chunk-NZ7WI4RZ.js";import"./chunk-AUAZP2G7.js";import"./chunk-XWW63XJJ.js";import"./chunk-GMBJTG6A.js";import"./chunk-3HH5IYNO.js";import"./chunk-IF2K4PM5.js";import{RelayError,createRuntime,pickModel}from"./chunk-6QOT7CHX.js";import"./chunk-D233KKXW.js";
|
|
4
4
|
import"./chunk-XNLIEUAW.js";import{checkMinSupportedVersion,enforceMinSupportedVersion,floorNeedsRefresh}from"./chunk-DXXFUNYN.js";import"./chunk-4VZKNEVN.js";import{getMode}from"./chunk-NAUH75MM.js";import"./chunk-N2UVRM3Z.js";import"./chunk-II5RVJQN.js";import"./chunk-UFND7FBC.js";import"./chunk-PMOUHEJQ.js";import"./chunk-J7QYPKVK.js";import"./chunk-RZVI6PMW.js";import{stripTerminalControls}from"./chunk-NHYMHCAT.js";import"./chunk-VSJBJXZO.js";async function runOneShot(opts,deps={}){const out=deps.out??(text=>void process.stdout.write(stripTerminalControls(text)));const err=deps.err??(text=>void process.stderr.write(stripTerminalControls(text)));activateModeFiles(err);const permissionLayers=activatePermissionSettings(err,{...opts.allowedTools?{allowedTools:opts.allowedTools}:{},...opts.disallowedTools?{disallowedTools:opts.disallowedTools}:{}});const prompt=opts.fromStdin?await(deps.readStdin??readStdin)():opts.prompt;if(prompt.trim()===
|
|
5
5
|
""){err('\u30D7\u30ED\u30F3\u30D7\u30C8\u304C\u7A7A\u3067\u3059\u3002`twp -p "\u8CEA\u554F"`\uFF08`-p -` \u3067\u6A19\u6E96\u5165\u529B\uFF09\n');return 2}const runtime=deps.runtime??createRuntime({...opts.profile!==void 0?{profile:opts.profile}:{},...opts.model!==void 0?{model:opts.model}:{},cliVersion:opts.version});const cachedFloor=runtime.loadCachedFloor();if(await checkMinSupportedVersion({current:opts.version,cachedFloor:cachedFloor.minSupportedVersion,refresh:async()=>(await runtime.loadCatalog()).
|
|
6
6
|
minSupportedVersion,write:err})){return 1}if(!runtime.loggedIn){err("\u30ED\u30B0\u30A4\u30F3\u3057\u3066\u3044\u307E\u305B\u3093\u3002`twp login` \u3092\u5B9F\u884C\u3057\u3066\u304F\u3060\u3055\u3044\u3002\n");return 1}let model=runtime.configuredModel??"";let catalog=null;if(model===""){catalog=await runtime.loadCatalog();const picked=pickModel(catalog,void 0);model=picked.model;if(catalog.source!=="server"){err(`\u26A0 \u30E2\u30C7\u30EB\u4E00\u89A7\u3092\u53D6\u5F97\u3067\u304D\u306A\u304B\u3063\u305F\u305F\u3081 ${model}\
|
|
@@ -0,0 +1,94 @@
|
|
|
1
|
+
import { createRequire as __twpCreateRequire } from 'node:module';
|
|
2
|
+
const require = __twpCreateRequire(import.meta.url);
|
|
3
|
+
import{mailSendOperations}from"./chunk-3AD2T6L2.js";import"./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";
|
|
4
|
+
import{nonEmpty}from"./chunk-IOGMOXYF.js";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 DEFAULT_TIME_ZONE="Asia/Tokyo";var DATE_TIME=/^([0-9]{4})-([0-9]{2})-([0-9]{2})T([0-9]{2}):([0-9]{2})(?::([0-9]{2}))?$/;var DATE=/^([0-9]{4})-([0-9]{2})-([0-9]{2})$/;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 CONFIRMATION="\u4E88\u5B9A\u8868\u3092\u66F8\u304D\u63DB\u3048\u308B\u64CD\u4F5C\uFF08\u51FA\u5E2D\u8005\u304C\u3044\u308C\u3070\u62DB\u5F85\u30FB\u66F4\u65B0\u30FB\u30AD\u30E3\u30F3\u30BB\u30EB\u306E\u901A\u77E5\u304C\u76F8\u624B\u3078\u5C4A\u304D\u3001\u53D6\u308A\u6D88\u305B\u307E\u305B\u3093\uFF09";
|
|
5
|
+
var NOTIFY_HELP="\u26A0 \u51FA\u5E2D\u8005\u304C\u3044\u308B\u4E88\u5B9A\u3067\u306F\u3001\u5B9F\u884C\u3057\u305F\u77AC\u9593\u306B\u62DB\u5F85\u30FB\u66F4\u65B0\u30FB\u30AD\u30E3\u30F3\u30BB\u30EB\u306E\u901A\u77E5\u304C\u76F8\u624B\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\u3068\u901A\u77E5\u304C\u5C4A\u304F\u76F8\u624B\u3092\u78BA\u304B\u3081\u3066\u304B\u3089 --yes \u3092\u4ED8\u3051\u3066\u304F\u3060\u3055\u3044\n \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\u53CD\u6620\u6E08\u307F\u306E\u3053\u3068\u304C\u3042\u308A\u307E\u3059\u3002\n \u6253\u3061\u76F4\u3059\u524D\u306B twp outlook event list \u3067\u78BA\u8A8D\u3057\u3066\u304F\u3060\u3055\u3044\uFF08\u4F5C\u6210\u3092\u6253\u3061\u76F4\u3059\u3068\u4E88\u5B9A\u3068\u62DB\u5F85\u304C\u4E8C\u91CD\u306B\u306A\u308A\u307E\u3059\uFF09\u3002";
|
|
6
|
+
var DATE_HELP=`\u65E5\u6642\u306F --start / --end \u306B yyyy-MM-ddTHH:mm\uFF08\u79D2\u306F\u4EFB\u610F\uFF09\u3067\u3001\u30BF\u30A4\u30E0\u30BE\u30FC\u30F3\u3092\u4ED8\u3051\u305A\u306B\u6307\u5B9A\u3057\u307E\u3059\u3002
|
|
7
|
+
\u30BF\u30A4\u30E0\u30BE\u30FC\u30F3\u306F --time-zone \u3067\u6307\u5B9A\u3057\u307E\u3059\uFF08\u65E2\u5B9A ${DEFAULT_TIME_ZONE}\u3002\u4F8B: UTC\u3001America/New_York\uFF09\u3002
|
|
8
|
+
--all-day \u3092\u4ED8\u3051\u308B\u3068\u7D42\u65E5\u4E88\u5B9A\u306B\u306A\u308A\u3001--start / --end \u306F\u65E5\u4ED8\uFF08yyyy-MM-dd\uFF09\u3067\u6307\u5B9A\u3057\u307E\u3059\u3002--end \u306F**\u6700\u7D42\u65E5\u306E\u7FCC\u65E5**
|
|
9
|
+
\uFF08Microsoft 365 \u3068\u540C\u3058\u6392\u4ED6\u306E\u7D42\u4E86\u300210/5\u301C10/6 \u306E2\u65E5\u9593\u306A\u3089 --start 2026-10-05 --end 2026-10-07\uFF09\u3067\u3059\u3002
|
|
10
|
+
\u4F5C\u6210\u3067 --end \u3092\u7701\u304F\u3068\u30011\u65E5\u3060\u3051\u306E\u4E88\u5B9A\u306B\u306A\u308A\u307E\u3059\u3002`;var EVENT_FLAG={name:"--event",summary:"\u4E88\u5B9AID\uFF08\u4F4D\u7F6E\u5F15\u6570\u3068\u540C\u3058\u610F\u5473\uFF09",takesValue:true,placeholder:"<ID>"};var WRITE_FLAGS=[{name:"--subject",summary:"\u4EF6\u540D",takesValue:true,placeholder:"<\u4EF6\u540D>"},{name:"--start",summary:"\u958B\u59CB\uFF08yyyy-MM-ddTHH:mm\u30FB\u7D42\u65E5\u306F yyyy-MM-dd\uFF09",takesValue:true,
|
|
11
|
+
placeholder:"<\u65E5\u6642>"},{name:"--end",summary:"\u7D42\u4E86\uFF08yyyy-MM-ddTHH:mm\u30FB\u7D42\u65E5\u306F\u6700\u7D42\u65E5\u306E\u7FCC\u65E5\u306E yyyy-MM-dd\uFF09",takesValue:true,placeholder:"<\u65E5\u6642>"},{name:"--time-zone",summary:`--start / --end \u306E\u30BF\u30A4\u30E0\u30BE\u30FC\u30F3\uFF08\u65E2\u5B9A ${DEFAULT_TIME_ZONE}\uFF09`,takesValue:true,placeholder:"<IANA\u540D>"},{name:"--all-day",summary:"\u7D42\u65E5\u4E88\u5B9A\u306B\u3059\u308B\uFF08--start / --end \u306F\u65E5\u4ED8\uFF09",
|
|
12
|
+
takesValue:false},{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|->"},{name:"--body",summary:"\u672C\u6587\u3092\u76F4\u63A5\u6307\u5B9A\u3059\u308B\uFF08--body-file \u3068\u306E\u4F75\u7528\u306F\u30A8\u30E9\u30FC\uFF09",takesValue:true,placeholder:"<\u6587\u5B57\u5217>"},{name:"--html",summary:"\u672C\u6587\u3092 HTML \u3068\u3057\u3066\u9001\u308B\uFF08\u65E2\u5B9A\u306F\u30C6\u30AD\u30B9\u30C8\uFF09",
|
|
13
|
+
takesValue:false},{name:"--location",summary:"\u5834\u6240",takesValue:true,placeholder:"<\u5834\u6240>"},{name:"--attendee",summary:"\u51FA\u5E2D\u8005\uFF08\u5FC5\u9808\uFF09\u306E\u30E1\u30FC\u30EB\u30A2\u30C9\u30EC\u30B9\uFF08\u8907\u6570\u306A\u3089\u7E70\u308A\u8FD4\u3059\u30FB\u62DB\u5F85\u304C\u5C4A\u304F\uFF09",takesValue:true,placeholder:"<\u30A2\u30C9\u30EC\u30B9>",repeatable:true},{name:"--optional-attendee",summary:"\u51FA\u5E2D\u8005\uFF08\u4EFB\u610F\uFF09\u306E\u30E1\u30FC\u30EB\u30A2\u30C9\u30EC\u30B9\uFF08\u8907\u6570\u306A\u3089\u7E70\u308A\u8FD4\u3059\u30FB\u62DB\u5F85\u304C\u5C4A\u304F\uFF09",
|
|
14
|
+
takesValue:true,placeholder:"<\u30A2\u30C9\u30EC\u30B9>",repeatable:true},{name:"--online-meeting",summary:"Teams \u4F1A\u8B70\u306B\u3059\u308B",takesValue:false}];function attendeesOf(input){const read=(flag,type)=>repeatedValues(input,flag).map(raw=>{const value=raw.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}\
|
|
15
|
+
\uFF09`,`\u540D\u524D\u304B\u3089\u306F\u51FA\u5E2D\u8005\u3092\u63A2\u3057\u307E\u305B\u3093\u3002\u8907\u6570\u306A\u3089 ${flag} \u3092\u7E70\u308A\u8FD4\u3057\u3066\u304F\u3060\u3055\u3044\u3002`)}return{address:value,type}});return[...read("--attendee","required"),...read("--optional-attendee","optional")]}function timeZoneOf(input){const raw=input.flags.get("--time-zone");if(raw===void 0)return DEFAULT_TIME_ZONE;const zone=raw.trim();try{new Intl.DateTimeFormat("en-US",{timeZone:zone})}catch{
|
|
16
|
+
throw new UsageError(`--time-zone \u306E\u30BF\u30A4\u30E0\u30BE\u30FC\u30F3\u304C\u5206\u304B\u308A\u307E\u305B\u3093: ${raw}`,"\u4F8B: Asia/Tokyo\u3001UTC\u3001America/New_York")}return zone}function validDate(y,m,d){const at=new Date(Date.UTC(y,m-1,d));return at.getUTCFullYear()===y&&at.getUTCMonth()===m-1&&at.getUTCDate()===d}function dateTimeOf(raw,flag){const m=DATE_TIME.exec(raw.trim());if(m===null||!validDate(Number(m[1]),Number(m[2]),Number(m[3]))||Number(m[4])>23||Number(m[5])>59||Number(
|
|
17
|
+
m[6]??"0")>59){throw new UsageError(`${flag} \u306F yyyy-MM-ddTHH:mm \u306E\u5F62\u3067\u6307\u5B9A\u3057\u3066\u304F\u3060\u3055\u3044\uFF08\u53D7\u3051\u53D6\u3063\u305F\u5024: ${raw}\uFF09`,"\u30BF\u30A4\u30E0\u30BE\u30FC\u30F3\uFF08Z\u30FB+09:00\uFF09\u306F\u4ED8\u3051\u305A\u3001--time-zone \u3067\u6307\u5B9A\u3057\u307E\u3059\u3002\u7D42\u65E5\u4E88\u5B9A\u306F --all-day \u3092\u4ED8\u3051\u3066\u65E5\u4ED8\u3060\u3051\u3092\u6307\u5B9A\u3057\u307E\u3059\u3002")}return`${m[1]}-${m[2]}-${m[3]}\
|
|
18
|
+
T${m[4]}:${m[5]}:${m[6]??"00"}`}function midnightOf(raw,flag,days=0){const m=DATE.exec(raw.trim());if(m===null||!validDate(Number(m[1]),Number(m[2]),Number(m[3]))){throw new UsageError(`--all-day \u306E ${flag} \u306F\u65E5\u4ED8\uFF08yyyy-MM-dd\uFF09\u3067\u6307\u5B9A\u3057\u3066\u304F\u3060\u3055\u3044\uFF08\u53D7\u3051\u53D6\u3063\u305F\u5024: ${raw}\uFF09`)}const at=new Date(Date.UTC(Number(m[1]),Number(m[2])-1,Number(m[3])+days));return`${at.toISOString().slice(0,10)}T00:00:00`}function windowOf(input,required,usage){
|
|
19
|
+
const rawStart=input.flags.get("--start");const rawEnd=input.flags.get("--end");const allDay=input.flags.has("--all-day");if(allDay){if(rawStart===void 0)throw new UsageError("--all-day \u306B\u306F --start\uFF08\u65E5\u4ED8\uFF09\u3092\u6307\u5B9A\u3057\u3066\u304F\u3060\u3055\u3044",usage);if(!required&&rawEnd===void 0){throw new UsageError("\u4E88\u5B9A\u3092\u7D42\u65E5\u306B\u3059\u308B\u30FB\u7D42\u65E5\u306E\u65E5\u4ED8\u3092\u5909\u3048\u308B\u3068\u304D\u306F --start \u3068 --end\uFF08\u6700\u7D42\u65E5\u306E\u7FCC\u65E5\uFF09\u306E\u4E21\u65B9\u3092\u6307\u5B9A\u3057\u3066\u304F\u3060\u3055\u3044",
|
|
20
|
+
usage)}const start2=midnightOf(rawStart,"--start");const end2=rawEnd===void 0?midnightOf(rawStart,"--end",1):midnightOf(rawEnd,"--end");if(end2<=start2){throw new UsageError(`\u7D42\u65E5\u306E --end \u306F --start \u3088\u308A\u5F8C\u306E\u65E5\u4ED8\uFF08\u6700\u7D42\u65E5\u306E\u7FCC\u65E5\uFF09\u3092\u6307\u5B9A\u3057\u3066\u304F\u3060\u3055\u3044\uFF08--start ${rawStart} / --end ${rawEnd}\uFF09`,usage)}return{start:start2,end:end2}}if(required&&(rawStart===void 0||rawEnd===void 0)){throw new UsageError(
|
|
21
|
+
"\u958B\u59CB\u3068\u7D42\u4E86\uFF08--start / --end\uFF09\u3092\u6307\u5B9A\u3057\u3066\u304F\u3060\u3055\u3044\uFF08\u7D42\u65E5\u4E88\u5B9A\u306F --all-day\uFF09",usage)}const start=rawStart===void 0?void 0:dateTimeOf(rawStart,"--start");const end=rawEnd===void 0?void 0:dateTimeOf(rawEnd,"--end");if(start!==void 0&&end!==void 0&&end<=start){throw new UsageError(`--end \u306F --start \u3088\u308A\u5F8C\u306E\u65E5\u6642\u3092\u6307\u5B9A\u3057\u3066\u304F\u3060\u3055\u3044\uFF08--start ${rawStart}\
|
|
22
|
+
/ --end ${rawEnd}\uFF09`,usage)}return{...start===void 0?{}:{start},...end===void 0?{}:{end}}}async function payloadOf(input,required,usage){const subject=input.flags.get("--subject");if(required&&(subject===void 0||subject.trim()===""))throw new UsageError("\u4EF6\u540D\uFF08--subject\uFF09\u3092\u6307\u5B9A\u3057\u3066\u304F\u3060\u3055\u3044",usage);if(subject!==void 0&&subject.trim()==="")throw new UsageError("--subject \u306B\u7A7A\u306E\u5024\u306F\u6307\u5B9A\u3067\u304D\u307E\u305B\u3093",
|
|
23
|
+
usage);if(subject!==void 0&&[...subject].length>1e3)throw new UsageError("\u4EF6\u540D\u306F 1000 \u6587\u5B57\u307E\u3067\u3067\u3059",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",usage)}if(input.flags.has("--time-zone")&&!input.flags.has("--start")&&!input.flags.has("--end")){throw new UsageError(
|
|
24
|
+
"--time-zone \u306F --start / --end \u3068\u4E00\u7DD2\u306B\u6307\u5B9A\u3057\u3066\u304F\u3060\u3055\u3044",usage)}const zone=timeZoneOf(input);const window=windowOf(input,required,usage);const attendees=attendeesOf(input);const location=input.flags.get("--location");const body=await readBody(input,{flag:"--body",fileFlag:"--body-file",label:"\u4E88\u5B9A\u306E\u672C\u6587",maxChars:BODY_MAX_CHARS,usage});return{...subject===void 0?{}:{subject},...window.start===void 0?{}:{start:{dateTime:window.
|
|
25
|
+
start,timeZone:zone}},...window.end===void 0?{}:{end:{dateTime:window.end,timeZone:zone}},...body===void 0?{}:{body:{contentType:input.flags.has("--html")?"HTML":"Text",content:body}},...location===void 0?{}:{location:{displayName:location}},...attendees.length===0&&!input.flags.has("--clear-attendees")?{}:{attendees:attendees.map(a=>({emailAddress:{address:a.address},type:a.type}))},...window.start===void 0&&window.end===void 0?{}:{isAllDay:input.flags.has("--all-day")},...input.flags.has("--on\
|
|
26
|
+
line-meeting")?{isOnlineMeeting:true}:{}}}function payload(input){return JSON.parse(requireResolved(input,"payload"))}function payloadSummary(body){const parts=[];if(typeof body["subject"]==="string")parts.push(`\u4EF6\u540D\u300C${oneLine(body["subject"])}\u300D`);const start=dateTimeText(body["start"]);const end=dateTimeText(body["end"]);if(start!==null||end!==null){parts.push(`${body["isAllDay"]===true?"\u7D42\u65E5 ":""}\u958B\u59CB ${start??"\uFF08\u5909\u3048\u306A\u3044\uFF09"} / \u7D42\u4E86 ${end??
|
|
27
|
+
"\uFF08\u5909\u3048\u306A\u3044\uFF09"}`)}if(isRecord(body["location"]))parts.push(`\u5834\u6240\u300C${oneLine(String(body["location"]["displayName"]))}\u300D`);if(isRecord(body["body"]))parts.push(`\u672C\u6587: ${body["body"]["contentType"]==="HTML"?"HTML":"\u30C6\u30AD\u30B9\u30C8"} ${[...String(body["body"]["content"])].length} \u6587\u5B57`);if(body["isOnlineMeeting"]===true)parts.push("Teams \u4F1A\u8B70");return parts.join(" / ")}function attendeeText(body){if(!Array.isArray(body["attend\
|
|
28
|
+
ees"]))return null;const list=body["attendees"].map(emailText).filter(v=>v!==null);return list.length===0?"":list.map(oneLine).join("\u3001")}function audienceOf(event){const attendees=attendeeText(event);const count=Array.isArray(event["attendees"])?event["attendees"].length:0;if(count>0&&(attendees===null||attendees===""))return`\u51FA\u5E2D\u8005 ${count} \u4EBA\uFF08\u30A2\u30C9\u30EC\u30B9\u3092\u8AAD\u3081\u307E\u305B\u3093\uFF09`;if(attendees===null||attendees==="")return"\u51FA\u5E2D\u8005\u306A\u3057\uFF08\u901A\u77E5\u306F\u8AB0\u306B\u3082\u5C4A\u304D\u307E\u305B\
|
|
29
|
+
\u3093\uFF09";if(event["isOrganizer"]===false)return`\u51FA\u5E2D\u8005 ${attendees}\uFF08\u4E3B\u50AC\u8005\u306F\u81EA\u5206\u3067\u306F\u3042\u308A\u307E\u305B\u3093\uFF09`;return`\u51FA\u5E2D\u8005 ${attendees}`}function eventId(input,op){return assertMs365PathSegment(singleRef(input,{flag:"--event",label:"\u4E88\u5B9AID",usage:`twp outlook event ${op} help`}),"\u4E88\u5B9AID")}var SUMMARY_COLUMNS=["id","subject","start","end","isAllDay","attendees","webLink"];function eventSummary(body,label){
|
|
30
|
+
const data=graphData(body,label);return pick({...data,start:dateTimeText(data["start"]),end:dateTimeText(data["end"]),attendees:attendeeText(data)||null},SUMMARY_COLUMNS)}function assertDeleted(body){if(!isRecord(body)||body["result"]!==true){throw new ApiResponseError("\u4E88\u5B9A\u306E\u524A\u9664\u306E\u5FDC\u7B54\u304C\u60F3\u5B9A\u306E\u5F62\u3067\u306F\u3042\u308A\u307E\u305B\u3093\uFF08result \u304C true \u3067\u306F\u306A\u3044\uFF09\u3002twp outlook event get \u3067\u78BA\u8A8D\u3057\u3066\u304F\u3060\u3055\u3044\u3002")}
|
|
31
|
+
return{deleted:true}}var create={name:"create",summary:"\u4E88\u5B9A\u3092\u4F5C\u308B\uFF08--yes \u304C\u5FC5\u8981\u30FB\u51FA\u5E2D\u8005\u304C\u3044\u308C\u3070\u62DB\u5F85\u304C\u5C4A\u304F\uFF09",usage:"twp outlook event create --subject <\u4EF6\u540D> --start <\u65E5\u6642> --end <\u65E5\u6642> [--time-zone <IANA\u540D>] [--all-day] [--body-file <\u30D1\u30B9> | --body <\u6587\u5B57\u5217>] [--html] [--location <\u5834\u6240>] [--attendee <\u30A2\u30C9\u30EC\u30B9> \u2026] [--online-meeting] --yes",
|
|
32
|
+
description:`${NOTIFY_HELP}
|
|
33
|
+
|
|
34
|
+
${DATE_HELP}
|
|
35
|
+
|
|
36
|
+
\u51FA\u5E2D\u8005\u306F --attendee\uFF08\u5FC5\u9808\uFF09/ --optional-attendee\uFF08\u4EFB\u610F\uFF09\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
|
|
37
|
+
\u51FA\u5E2D\u8005\u3092\u4ED8\u3051\u306A\u3051\u308C\u3070\u81EA\u5206\u306E\u4E88\u5B9A\u8868\u3060\u3051\u306B\u5165\u308A\u3001\u901A\u77E5\u306F\u8AB0\u306B\u3082\u5C4A\u304D\u307E\u305B\u3093\u3002
|
|
38
|
+
\u672C\u6587\u306F --body-file <\u30D1\u30B9>\uFF08- \u3067\u6A19\u6E96\u5165\u529B\uFF09\u304B --body <\u6587\u5B57\u5217> \u3067\u6E21\u3057\u307E\u3059\uFF08\u65E2\u5B9A\u306F\u30C6\u30AD\u30B9\u30C8\u30FB--html \u3067 HTML\uFF09\u3002`,destructive:true,confirmation:CONFIRMATION,flags:WRITE_FLAGS,forbidden:ms365Forbidden,async prepare(input){const usage="twp outlook event create help";if(input.args.length>0)throw new UsageError(`\u4F4D\u7F6E\u5F15\u6570\u306F\u53D7\u3051\u4ED8\u3051\u307E\u305B\u3093: ${input.
|
|
39
|
+
args.join(" ")}`,usage);return withResolved(input,{payload:JSON.stringify(await payloadOf(input,true,usage))})},plan:input=>({method:"POST",path:ms365Path("/calendar/events"),body:payload(input)}),plannedNotes(input){const body=payload(input);const attendees=attendeeText(body);return[`\u4F5C\u6210\u3059\u308B\u4E88\u5B9A: ${payloadSummary(body)} / `+(attendees===null?"\u51FA\u5E2D\u8005\u306A\u3057\uFF08\u81EA\u5206\u306E\u4E88\u5B9A\u8868\u3060\u3051\u306B\u5165\u308A\u3001\u901A\u77E5\u306F\u8AB0\u306B\u3082\u5C4A\u304D\u307E\u305B\u3093\uFF09":
|
|
40
|
+
`\u62DB\u5F85\u304C\u5C4A\u304F\u76F8\u624B: ${attendees}`)]},summarize:body=>eventSummary(body,"\u4E88\u5B9A\u306E\u4F5C\u6210"),raw:body=>graphData(body,"\u4E88\u5B9A\u306E\u4F5C\u6210"),notes:()=>["\u4E88\u5B9A\u3092\u4F5C\u6210\u3057\u307E\u3057\u305F\u3002twp outlook event get <id> \u3067\u78BA\u8A8D\u3067\u304D\u307E\u3059\u3002"]};var update={name:"update",summary:"\u4E88\u5B9A\u3092\u5909\u3048\u308B\uFF08--yes \u304C\u5FC5\u8981\u30FB\u51FA\u5E2D\u8005\u304C\u3044\u308C\u3070\u66F4\u65B0\u304C\u5C4A\u304F\uFF09",
|
|
41
|
+
usage:"twp outlook event update <\u4E88\u5B9AID> [--subject <\u4EF6\u540D>] [--start <\u65E5\u6642>] [--end <\u65E5\u6642>] [--time-zone <IANA\u540D>] [--all-day] [--body-file <\u30D1\u30B9> | --body <\u6587\u5B57\u5217>] [--html] [--location <\u5834\u6240>] [--attendee <\u30A2\u30C9\u30EC\u30B9> \u2026 | --clear-attendees] [--online-meeting] --yes",description:`${NOTIFY_HELP}
|
|
42
|
+
|
|
43
|
+
\u6307\u5B9A\u3057\u305F\u9805\u76EE\u3060\u3051\u3092\u5909\u3048\u307E\u3059\u3002\u9001\u308B\u524D\u306B\u4E88\u5B9A\u3092\u8AAD\u307F\u3001\u901A\u77E5\u304C\u5C4A\u304F\u76F8\u624B\uFF08\u3044\u307E\u306E\u51FA\u5E2D\u8005\uFF09\u3092\u8868\u793A\u3057\u307E\u3059\u3002
|
|
44
|
+
\u4E88\u5B9AID \u306F twp outlook event list \u306E id \u3067\u3059\u3002
|
|
45
|
+
|
|
46
|
+
${DATE_HELP}
|
|
47
|
+
\u958B\u59CB\u3060\u3051\u30FB\u7D42\u4E86\u3060\u3051\u3092\u5909\u3048\u308B\u3053\u3068\u3082\u3067\u304D\u307E\u3059\uFF08--all-day \u306E\u3068\u304D\u306F --start \u3068 --end \u306E\u4E21\u65B9\u304C\u5FC5\u9808\u3067\u3059\uFF09\u3002
|
|
48
|
+
\u65E5\u6642\u3092\u6307\u5B9A\u3057\u3066 --all-day \u3092\u4ED8\u3051\u306A\u3051\u308C\u3070\u3001\u7D42\u65E5\u4E88\u5B9A\u306F\u6642\u523B\u4ED8\u304D\u306E\u4E88\u5B9A\u306B\u5909\u308F\u308A\u307E\u3059\u3002
|
|
49
|
+
|
|
50
|
+
\u26A0 --attendee / --optional-attendee \u306F\u51FA\u5E2D\u8005\u3092**\u6307\u5B9A\u3057\u305F\u3082\u306E\u306B\u7F6E\u304D\u63DB\u3048\u307E\u3059**\uFF08\u8DB3\u3059\u306E\u3067\u306F\u3042\u308A\u307E\u305B\u3093\uFF09\u3002
|
|
51
|
+
\u5916\u3055\u308C\u305F\u76F8\u624B\u306B\u306F\u30AD\u30E3\u30F3\u30BB\u30EB\u304C\u5C4A\u304D\u307E\u3059\u3002\u51FA\u5E2D\u8005\u3092\u5168\u54E1\u5916\u3059\u306B\u306F --clear-attendees \u3092\u4ED8\u3051\u307E\u3059\u3002`,destructive:true,confirmation:CONFIRMATION,flags:[EVENT_FLAG,...WRITE_FLAGS,{name:"--clear-attendees",summary:"\u51FA\u5E2D\u8005\u3092\u5168\u54E1\u5916\u3059",takesValue:false}],forbidden:ms365Forbidden,async prepare(input,ctx){const usage="twp outlook event update\
|
|
52
|
+
help";const id=eventId(input,"update");if(input.flags.has("--clear-attendees")&&attendeesOf(input).length>0){throw new UsageError("--clear-attendees \u3068 --attendee / --optional-attendee \u306F\u540C\u6642\u306B\u6307\u5B9A\u3067\u304D\u307E\u305B\u3093",usage)}const body=await payloadOf(input,false,usage);if(Object.keys(body).length===0)throw new UsageError("\u5909\u3048\u308B\u9805\u76EE\u30921\u3064\u4EE5\u4E0A\u6307\u5B9A\u3057\u3066\u304F\u3060\u3055\u3044",usage);const current=await ctx.
|
|
53
|
+
resolver.ms365Event(id);return withResolved(input,{eventId:id,payload:JSON.stringify(body),audience:audienceOf(current),subject:oneLine(str(current["subject"])??"\uFF08\u4EF6\u540D\u306A\u3057\uFF09")})},plan:input=>({method:"PATCH",path:ms365Path(`/calendar/events/${ms365Segment(requireResolved(input,"eventId"),"\u4E88\u5B9AID")}`),body:payload(input)}),plannedNotes(input){const body=payload(input);const replaced=attendeeText(body);return[`\u5909\u3048\u308B\u4E88\u5B9A: \u300C${requireResolved(
|
|
54
|
+
input,"subject")}\u300D / \u3044\u307E\u306E${requireResolved(input,"audience")} / \u5909\u3048\u308B\u5185\u5BB9: ${payloadSummary(body)||"\uFF08\u51FA\u5E2D\u8005\u306E\u307F\uFF09"}`+(replaced===null?"":` / \u51FA\u5E2D\u8005\u3092\u7F6E\u304D\u63DB\u3048: ${replaced===""?"\u306A\u3057\uFF08\u5168\u54E1\u5916\u3059\uFF09":replaced}`)]},summarize:body=>eventSummary(body,"\u4E88\u5B9A\u306E\u66F4\u65B0"),raw:body=>graphData(body,"\u4E88\u5B9A\u306E\u66F4\u65B0"),notes:()=>["\u4E88\u5B9A\u3092\u66F4\u65B0\u3057\u307E\u3057\u305F\u3002twp outloo\
|
|
55
|
+
k event get <id> \u3067\u78BA\u8A8D\u3067\u304D\u307E\u3059\u3002"]};var remove={name:"delete",summary:"\u4E88\u5B9A\u3092\u6D88\u3059\uFF08--yes \u304C\u5FC5\u8981\u30FB\u51FA\u5E2D\u8005\u304C\u3044\u308C\u3070\u30AD\u30E3\u30F3\u30BB\u30EB\u304C\u5C4A\u304F\uFF09",usage:"twp outlook event delete <\u4E88\u5B9AID> --yes",description:`${NOTIFY_HELP}
|
|
56
|
+
|
|
57
|
+
\u9001\u308B\u524D\u306B\u4E88\u5B9A\u3092\u8AAD\u307F\u3001\u30AD\u30E3\u30F3\u30BB\u30EB\u304C\u5C4A\u304F\u76F8\u624B\uFF08\u3044\u307E\u306E\u51FA\u5E2D\u8005\uFF09\u3092\u8868\u793A\u3057\u307E\u3059\u3002\u6D88\u3057\u305F\u4E88\u5B9A\u306F\u623B\u305B\u307E\u305B\u3093
|
|
58
|
+
\uFF08Outlook \u306E\u524A\u9664\u6E08\u307F\u30A2\u30A4\u30C6\u30E0\u306B\u6B8B\u308B\u3053\u3068\u306F\u3042\u308A\u307E\u3059\u304C\u3001\u51FA\u5E2D\u8005\u3078\u306E\u30AD\u30E3\u30F3\u30BB\u30EB\u306F\u53D6\u308A\u6D88\u305B\u307E\u305B\u3093\uFF09\u3002
|
|
59
|
+
\u4E88\u5B9AID \u306F twp outlook event list \u306E id \u3067\u3059\u3002`,destructive:true,confirmation:CONFIRMATION,flags:[EVENT_FLAG],forbidden:ms365Forbidden,async prepare(input,ctx){const id=eventId(input,"delete");const current=await ctx.resolver.ms365Event(id);return withResolved(input,{eventId:id,audience:audienceOf(current),subject:oneLine(str(current["subject"])??"\uFF08\u4EF6\u540D\u306A\u3057\uFF09"),start:oneLine(dateTimeText(current["start"])??"\uFF08\u958B\u59CB\u3092\u8AAD\u3081\u307E\u305B\u3093\uFF09")})},
|
|
60
|
+
plan:input=>({method:"DELETE",path:ms365Path(`/calendar/events/${ms365Segment(requireResolved(input,"eventId"),"\u4E88\u5B9AID")}`)}),plannedNotes:input=>[`\u6D88\u3059\u4E88\u5B9A: \u300C${requireResolved(input,"subject")}\u300D\uFF08\u958B\u59CB ${requireResolved(input,"start")}\uFF09 / ${requireResolved(input,"audience")}`],summarize:body=>assertDeleted(body),raw:body=>assertDeleted(body),notes:()=>["\u4E88\u5B9A\u3092\u524A\u9664\u3057\u307E\u3057\u305F\u3002"]};var eventWriteOperations=[create,
|
|
61
|
+
update,remove];var MAIL_TOP_MAX=1e3;var FOLDER=/^[A-Za-z0-9_=-]+$/;var DATE2=/^([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["@\
|
|
62
|
+
odata.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["\
|
|
63
|
+
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,
|
|
64
|
+
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){
|
|
65
|
+
const m=DATE2.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().
|
|
66
|
+
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.
|
|
67
|
+
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(
|
|
68
|
+
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|\
|
|
69
|
+
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\
|
|
70
|
+
\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",
|
|
71
|
+
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(
|
|
72
|
+
{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")}
|
|
73
|
+
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.
|
|
74
|
+
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,
|
|
75
|
+
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,
|
|
76
|
+
"\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",
|
|
77
|
+
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(
|
|
78
|
+
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:"\
|
|
79
|
+
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",
|
|
80
|
+
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(
|
|
81
|
+
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\
|
|
82
|
+
\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\
|
|
83
|
+
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\
|
|
84
|
+
\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{
|
|
85
|
+
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"]:
|
|
86
|
+
[]}]};var eventResource={name:"event",summary:"\u4E88\u5B9A\u8868\u306E\u4E88\u5B9A\uFF08\u4E00\u89A7\u30FB\u8A73\u7D30\u30FB\u4F5C\u6210\u30FB\u66F4\u65B0\u30FB\u524A\u9664\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\
|
|
87
|
+
\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\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'+
|
|
88
|
+
graphPagingHelp(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>"},
|
|
89
|
+
{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({limit:true})],forbidden:ms365Forbidden,paging:graphPaging({label:"\u4E88\u5B9A\u4E00\u89A7",kind:"skip"}),plan(input){const from=input.flags.get("--from");const to=input.
|
|
90
|
+
flags.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"),
|
|
91
|
+
fromUtc===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\
|
|
92
|
+
\u5B9A1\u4EF6\u306E\u8A73\u7D30\u3092\u8868\u793A\u3059\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",
|
|
93
|
+
flags:[{name:"--event",summary:"\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")),
|
|
94
|
+
raw:body=>graphData(body,"\u4E88\u5B9A\u8A73\u7D30")},...eventWriteOperations]};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};
|