@tocca-systems/twp-cli 0.48.0 → 0.50.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 +121 -4
- package/dist/{agent-loop-XKH5YE6A.js → agent-loop-EBIXJ4EH.js} +2 -2
- package/dist/{ai-dispatch-FGVNSM6L.js → ai-dispatch-2FL2AFL7.js} +2 -2
- package/dist/analysis-2SWIQ4AI.js +4 -0
- package/dist/announcement-R76XDLW7.js +52 -0
- package/dist/{api-command-26MLBIZC.js → api-command-VFFV7BD4.js} +5 -16
- package/dist/{app-Y7MAQAPC.js → app-PNDIA4NV.js} +4 -4
- package/dist/{attendance-correct-5SFXA4DC.js → attendance-correct-SN2KYGOE.js} +2 -2
- package/dist/{attendance-lists-3T7S7QF5.js → attendance-lists-6S62D2UV.js} +1 -1
- package/dist/{backlog-F4EWY7MT.js → backlog-5XSCJGPJ.js} +2 -2
- package/dist/{budget-QFUGQIPZ.js → budget-PIGBJ5N7.js} +1 -1
- package/dist/{charter-command-2RIS2VTQ.js → charter-command-LIX2JXRJ.js} +1 -1
- package/dist/{chunk-6TPGATAG.js → chunk-342WUEV4.js} +1 -1
- package/dist/{chunk-IXFMXUNT.js → chunk-3YCVR7X4.js} +1 -1
- package/dist/{chunk-VTQAI52S.js → chunk-3ZRMMBP5.js} +1 -1
- package/dist/{chunk-HNUBM24L.js → chunk-4S7SNE2M.js} +1 -1
- package/dist/{chunk-QICH2OOI.js → chunk-5JL26BPU.js} +1 -1
- package/dist/{chunk-ORUDW52G.js → chunk-6LSQCOCJ.js} +1 -1
- package/dist/{chunk-F7K37QG6.js → chunk-7UB4I3JF.js} +1 -1
- package/dist/{chunk-AJO4O5ZF.js → chunk-A4LFG7MW.js} +1 -1
- package/dist/{chunk-LAXINIDA.js → chunk-BVXUORXE.js} +1 -1
- package/dist/{chunk-GOZCJLRA.js → chunk-CF3ZZKCZ.js} +2 -2
- package/dist/{chunk-MY2U3CD6.js → chunk-CUPPIHSJ.js} +51 -27
- package/dist/{chunk-JKL6NUVV.js → chunk-DQCHLRSB.js} +2 -2
- package/dist/{chunk-BN26WHLS.js → chunk-ELEOYXLD.js} +2 -2
- package/dist/{chunk-4B3T4UE7.js → chunk-EXT4AIDF.js} +1 -1
- package/dist/{chunk-VB2CSFRO.js → chunk-FANDYQCM.js} +1 -1
- package/dist/{chunk-4OSCQLZT.js → chunk-FMJUPLDG.js} +1 -1
- package/dist/{chunk-ATYA6DG5.js → chunk-GFLGXGWE.js} +1 -1
- package/dist/chunk-GXZOFRZH.js +9 -0
- package/dist/{chunk-KS2ZUQFC.js → chunk-IRHKFHJZ.js} +2 -2
- package/dist/{chunk-QOUDJ7XO.js → chunk-IU5P6MY5.js} +1 -1
- package/dist/{chunk-IOGMOXYF.js → chunk-MI6HVYR2.js} +1 -1
- package/dist/{chunk-A65V3K75.js → chunk-NK53AFVE.js} +1 -1
- package/dist/{chunk-XQRSX2RH.js → chunk-NN6LAZRA.js} +33 -8
- package/dist/{chunk-3AD2T6L2.js → chunk-ONAMXPTE.js} +1 -1
- package/dist/{chunk-XDHLO54T.js → chunk-OTIR4GES.js} +1 -1
- package/dist/{chunk-LXIAOCUW.js → chunk-PS5QFKHB.js} +1 -1
- package/dist/chunk-Q2KIETMB.js +132 -0
- package/dist/{chunk-3HH5IYNO.js → chunk-QBGEYQ2I.js} +1 -1
- package/dist/{chunk-OHXZO5WK.js → chunk-QLENN5DD.js} +1 -1
- package/dist/chunk-QSXS5SB2.js +33 -0
- package/dist/{chunk-VYT6JAXQ.js → chunk-S3A24B2C.js} +6 -6
- package/dist/{chunk-OYDF57NH.js → chunk-SECVO7RQ.js} +2 -2
- package/dist/{chunk-TKGVAWGU.js → chunk-TVODNAPX.js} +1 -1
- package/dist/{chunk-IO5SMECE.js → chunk-V2BB5EWS.js} +2 -2
- package/dist/{chunk-2YNZ4MRT.js → chunk-V64CGX7V.js} +1 -1
- package/dist/{chunk-UFND7FBC.js → chunk-VFPY2A23.js} +2 -2
- package/dist/chunk-WVCEKC7V.js +14 -0
- package/dist/{chunk-H3WYVFTS.js → chunk-YJZT3UD3.js} +1 -1
- package/dist/chunk-ZGHEF45T.js +4 -0
- package/dist/{chunk-FZWRYJVM.js → chunk-ZY6LEKWR.js} +2 -2
- package/dist/cli.js +105 -10
- package/dist/{commands-EIWS357Q.js → commands-CA22R7VD.js} +7 -7
- package/dist/{commands-SWR442MR.js → commands-ZZGY6P3B.js} +2 -2
- package/dist/{company-77JEESSV.js → company-CQYSBKTQ.js} +4 -3
- package/dist/{completion-YSP6UE25.js → completion-3F2GJNGC.js} +1 -1
- package/dist/{contract-26SKL7XT.js → contract-A2FGGVOR.js} +2 -2
- package/dist/{department-IZAR2LZ4.js → department-6BILJZG7.js} +2 -2
- package/dist/{deposit-MYTKRIEX.js → deposit-OAGRJMZ4.js} +2 -2
- package/dist/{estimate-KLS7XJLD.js → estimate-5PSXHHNT.js} +4 -4
- package/dist/{inquiry-52OT4HKJ.js → inquiry-NMOT4JSX.js} +2 -2
- package/dist/{invoice-D77PS3WU.js → invoice-TXEJT6I6.js} +3 -3
- package/dist/{job-title-U67Z25ZO.js → job-title-NSYPQMEX.js} +1 -1
- package/dist/{knowledge-Q3QLSNDX.js → knowledge-5DX6EMHZ.js} +2 -32
- package/dist/{leave-OSIABEFV.js → leave-DEGAZKVH.js} +2 -2
- package/dist/{media-HDG4VHAR.js → media-RJCTHFK6.js} +86 -26
- package/dist/{notification-MEOHWBXH.js → notification-NG4J6N2D.js} +2 -2
- package/dist/{onedrive-3OBI4B5Z.js → onedrive-YPJCILR2.js} +1 -1
- package/dist/{oneshot-ACV6XH5A.js → oneshot-RA65DTXP.js} +2 -2
- package/dist/{outlook-LY6WBXIJ.js → outlook-MNOVX6QS.js} +2 -2
- package/dist/{position-N7SRF3CF.js → position-OZBQYKZS.js} +1 -1
- package/dist/{project-YMJJDSTP.js → project-5YFBRM32.js} +2 -2
- package/dist/{prospect-3JD7STGT.js → prospect-TQ2FFWEZ.js} +3 -3
- package/dist/{purchase-2SLZBDD6.js → purchase-WOUWIZHO.js} +4 -4
- package/dist/query-XEOVFI4D.js +3 -0
- package/dist/receivable-RFZT6PY3.js +4 -0
- package/dist/{registry-GQ3L7PZ2.js → registry-H4NP4HUQ.js} +1 -1
- package/dist/{report-TUSP7RRF.js → report-EFE43ZVI.js} +2 -2
- package/dist/{run-ZPB23AZX.js → run-TNFPATQF.js} +2 -2
- package/dist/{sales-ai-review-7NPG7KV6.js → sales-ai-review-FSA4J2J2.js} +2 -2
- package/dist/{sales-master-W5MXNZQ2.js → sales-master-Q5BJ7RNG.js} +3 -3
- package/dist/{sales-numbering-RQV2I5G5.js → sales-numbering-ITDBMODV.js} +2 -2
- package/dist/{server-skills-Z5DGCJQ7.js → server-skills-IXIOOOC2.js} +1 -1
- package/dist/{skill-command-74MCUHFJ.js → skill-command-NXHTJXYY.js} +1 -1
- package/dist/{storage-KLLBENBY.js → storage-AQDCEBDJ.js} +1 -1
- package/dist/{supplier-payment-TDL3IE4H.js → supplier-payment-FWGQR3Z3.js} +3 -3
- package/dist/support-TVTQJFRE.js +53 -0
- package/dist/{task-2SHYSZBZ.js → task-IDQKPRYS.js} +3 -3
- package/dist/{teams-DRHXPLWN.js → teams-IO6UQNYP.js} +2 -2
- package/dist/{user-YEIHSVVN.js → user-B6KW6HA2.js} +3 -3
- package/dist/worker-agent-PEFBLL56.js +150 -0
- package/dist/{workflow-USG3ZKW6.js → workflow-SYWZKWWB.js} +1 -1
- package/package.json +1 -1
- package/dist/analysis-GAU2A3FU.js +0 -3
- package/dist/chunk-4F2ONF4P.js +0 -127
- package/dist/chunk-6ZB7A6VD.js +0 -9
- package/dist/chunk-Y5EN7RYN.js +0 -4
- package/dist/query-3ZQP4DCN.js +0 -3
- package/dist/receivable-6ZRAUHC3.js +0 -4
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import { createRequire as __twpCreateRequire } from 'node:module';
|
|
2
2
|
const require = __twpCreateRequire(import.meta.url);
|
|
3
|
-
import{readBody}from"./chunk-
|
|
3
|
+
import{readBody}from"./chunk-6LSQCOCJ.js";import{WORKFLOWS_PATH}from"./chunk-Q2KIETMB.js";import{UUID_RE,isSafePathSegment}from"./chunk-GMBJTG6A.js";import{LIST_FLAGS,LIST_PAGING_HELP,envelopePaging,nonEmpty,positiveInteger}from"./chunk-MI6HVYR2.js";import{requireResolved,singleRef,withResolved}from"./chunk-PS5QFKHB.js";import{acknowledgement,isRecord,pick}from"./chunk-3ZRMMBP5.js";import{ApiResponseError,UsageError}from"./chunk-VFPY2A23.js";var WORKFLOW_FLAG={name:"--workflow",summary:"\u7533\u8ACB\u66F8\uFF08\u30EF\u30FC\u30AF\u30D5\u30ED\u30FC\uFF09\u306E\u540D\u524D\u304B ID \u3067\u7D5E\u308A\u8FBC\u3080",takesValue:true,placeholder:"<\u30EF\u30FC\u30AF\u30D5\u30ED\u30FC>"};var CATEGORIES={undefined:"\u6C4E\u7528",paid_holiday:"\u6709\u7D66\u4F11\u6687",substitute_holiday:"\u632F\u66FF\u4F11\u6687",comp_holiday:"\u4EE3\u4F11",absence:"\u6B20\u52E4",special_holiday:"\u7279\u5225\u4F11\u6687",other_leave:"\u305D\u306E\u4ED6\u4F11\u6687\u30FB\u6B20\u52E4",
|
|
4
4
|
sales:"\u53D6\u5F15",commuting_expenses:"\u901A\u52E4\u4EA4\u901A\u8CBB",cms_publish:"\u30B3\u30F3\u30C6\u30F3\u30C4\u516C\u958B",equipment_lending:"\u5099\u54C1\u8CB8\u51FA",ai_tool_license:"AI\u30C4\u30FC\u30EB\u30E9\u30A4\u30BB\u30F3\u30B9",qualification_bonus:"\u5408\u683C\u304A\u795D\u3044\u91D1"};var CATEGORY_HELP=`\u30AB\u30C6\u30B4\u30EA: ${Object.entries(CATEGORIES).map(([key,label])=>`${key}\uFF08${label}\uFF09`).join(" / ")}`;var WORKFLOW_STATUSES=["active","inactive","draft"];var INSTANCE_STATUSES=[
|
|
5
5
|
"new","in_progress","approved","rejected","canceled","sent_back"];var INSTANCE_STATUS_HELP="\u72B6\u614B: new\uFF08\u4E0B\u66F8\u304D\uFF09/ in_progress\uFF08\u627F\u8A8D\u5F85\u3061\uFF09/ approved\uFF08\u627F\u8A8D\u6E08\u307F\uFF09/ rejected\uFF08\u5374\u4E0B\uFF09/ canceled\uFF08\u53D6\u6D88\uFF09/ sent_back\uFF08\u5DEE\u3057\u623B\u3057\uFF09";var WORKFLOW_COLUMNS=["id","name","defined_category","status","is_hidden","valid_from","valid_to"];var WORKFLOW_ADMIN_COLUMNS=[...WORKFLOW_COLUMNS,"s\
|
|
6
6
|
tep_count"];var WORKFLOW_GET_COLUMNS=["id","name","defined_category","status","is_hidden","valid_from","valid_to","description"];var INSTANCE_COLUMNS=["id","title","workflow_name","status","current_step_no","applicant_name","applied_at","completed_at"];var INSTANCE_GET_COLUMNS=["id","title","workflow_id","workflow_name","status","current_step_no","applicant_name","applied_at","completed_at","can_approve","is_editable","is_cancelable"];var PENDING_COLUMNS=["id","title","workflow_name","applicant_\
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import { createRequire as __twpCreateRequire } from 'node:module';
|
|
2
2
|
const require = __twpCreateRequire(import.meta.url);
|
|
3
|
-
import{isSafePathSegment}from"./chunk-GMBJTG6A.js";import{requireResolved,singleRef,withResolved}from"./chunk-
|
|
3
|
+
import{isSafePathSegment}from"./chunk-GMBJTG6A.js";import{requireResolved,singleRef,withResolved}from"./chunk-PS5QFKHB.js";import{ApiResponseError}from"./chunk-VFPY2A23.js";var USER_REF_HELP="<\u30E6\u30FC\u30B6\u30FC> \u306F ID\u30FB\u30E1\u30FC\u30EB\u30A2\u30C9\u30EC\u30B9\u30FB\u793E\u54E1\u756A\u53F7\u30FB\u6C0F\u540D\u30FBme\uFF08\u81EA\u5206\uFF09\u306E\u3069\u308C\u3067\u3082\u6307\u5B9A\u3067\u304D\u307E\u3059\u3002\n\u6C0F\u540D\u306F\u5B8C\u5168\u4E00\u81F4\u30671\u4EBA\u306B\u7D5E\u308C\u305F\u3068\u304D\u3060\u3051\u53D7\u3051\u4ED8\u3051\u307E\u3059\uFF08\u540C\u59D3\u540C\u540D\u306A\u3089\u5019\u88DC\u3092\u51FA\u3057\u3066\u6B62\u307E\u308B\u306E\u3067\u3001\n\u30E1\u30FC\u30EB\u30A2\u30C9\u30EC\u30B9\u304B\u793E\u54E1\u756A\u53F7\u3067\u6307\u5B9A\u3057\u76F4\u3057\u3066\u304F\u3060\u3055\u3044\uFF09\u3002ID \u4EE5\u5916\u306F\u3001\u30C6\u30CA\u30F3\u30C8\u306E\u30E6\u30FC\u30B6\u30FC\u4E00\u89A7\n\uFF08\u65E2\u5B9A10\u5206\u30AD\u30E3\u30C3\u30B7\u30E5\u30FB--refresh \u3067\u53D6\u308A\u76F4\u3057\uFF09\u3068\u7167\u5408\u3057\u307E\u3059\u3002\n\u8868\u793A\u30D5\u30E9\u30B0\u3092\u5916\u3057\u305F\u30E6\u30FC\u30B6\u30FC\u306F\u793E\u54E1\u756A\u53F7\u3067\u306F\u5F15\u3051\u307E\u305B\u3093\u3002\u7D44\u7E54\u7BA1\u7406\u8005\u3067\u306A\u3044\u5834\u5408\u306F ID \u3067\u6307\u5B9A\u3057\u3066\u304F\u3060\u3055\u3044\u3002";
|
|
4
4
|
function userPath(input,suffix=""){const userId=requireResolved(input,"userId");if(!isSafePathSegment(userId)){throw new ApiResponseError(`\u30B5\u30FC\u30D0\u304C\u8FD4\u3057\u305F\u30E6\u30FC\u30B6\u30FC ID \u3092\u30D1\u30B9\u306B\u4F7F\u3048\u307E\u305B\u3093: ${userId}\u3002\u63A5\u7D9A\u5148\u3092\u78BA\u8A8D\u3057\u3066\u304F\u3060\u3055\u3044\u3002`)}return`${encodeURIComponent(userId)}${suffix}`}var USER_REF_FLAG={name:"--user",summary:"\u5BFE\u8C61\u306E\u30E6\u30FC\u30B6\u30FC\uFF08\u4F4D\u7F6E\u5F15\u6570\u306E\u4EE3\u308F\u308A\u306B\u4F7F\u3048\u308B\uFF09",
|
|
5
5
|
takesValue:true,placeholder:"<\u30E6\u30FC\u30B6\u30FC>"};async function prepareUser(input,ctx,usage){const ref=singleRef(input,{flag:"--user",label:"\u30E6\u30FC\u30B6\u30FC",usage});const user=await ctx.resolver.user(ref);return withResolved(input,{userId:user.id})}export{USER_REF_HELP,userPath,USER_REF_FLAG,prepareUser};
|
|
@@ -1,4 +1,4 @@
|
|
|
1
1
|
import { createRequire as __twpCreateRequire } from 'node:module';
|
|
2
2
|
const require = __twpCreateRequire(import.meta.url);
|
|
3
|
-
import{ApiResponseError}from"./chunk-
|
|
3
|
+
import{ApiResponseError}from"./chunk-VFPY2A23.js";function isRecord(value){return typeof value==="object"&&value!==null&&!Array.isArray(value)}function pick(row,columns){const source=isRecord(row)?row:{};const out={};for(const column of columns)out[column]=source[column]??null;return out}function acknowledgement(body,label){if(!isRecord(body)||body["result"]!==true){throw new ApiResponseError(`${label}\u306E\u5FDC\u7B54\u304C\u60F3\u5B9A\u306E\u5F62\u3067\u306F\u3042\u308A\u307E\u305B\u3093\u3002\u63A5\u7D9A\u5148\u3092\u78BA\u8A8D\u3057\u3066\u304F\u3060\u3055\u3044\u3002`)}
|
|
4
4
|
return{result:true,message:body["message"]??null}}export{isRecord,pick,acknowledgement};
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import { createRequire as __twpCreateRequire } from 'node:module';
|
|
2
2
|
const require = __twpCreateRequire(import.meta.url);
|
|
3
|
-
import{
|
|
3
|
+
import{isSafePathSegment,safeProjectIdPolicy}from"./chunk-GMBJTG6A.js";import{checkUploadQuota}from"./chunk-V64CGX7V.js";import{PRIVATE_PROJECT_REF,isPrivateProjectRef}from"./chunk-GY7KI5E5.js";import{PRIVATE_TASK_KEY_PREFIX,isPrivateTaskKey,isTaskKey}from"./chunk-II5RVJQN.js";import{requireResolved,singleRef,withResolved}from"./chunk-PS5QFKHB.js";import{isRecord,pick}from"./chunk-3ZRMMBP5.js";import{ApiResponseError,UsageError}from"./chunk-VFPY2A23.js";function classifyTaskRef(ref){const value=ref.trim();if(safeProjectIdPolicy.isDirectId(value))return{kind:"id",value};if(isTaskKey(value))return{kind:"key",value};return{kind:"unknown",value}}function wantsPrivateSurface(input){const project=input.flags.get("--project");return project!==void 0&&isPrivateProjectRef(project)}function taskSurface(input,ref){const project=input.flags.get("--project");const{kind,value}=classifyTaskRef(ref);if(project!==void 0&&isPrivateProjectRef(project)){if(kind===
|
|
4
4
|
"key"&&!isPrivateTaskKey(value)){throw new UsageError(`--project ${PRIVATE_PROJECT_REF}\uFF08\u500B\u4EBA\u30BF\u30B9\u30AF\uFF09\u306B ${value} \u306F\u6307\u5B9A\u3067\u304D\u307E\u305B\u3093`,`\u500B\u4EBA\u30BF\u30B9\u30AF\u306E\u30AD\u30FC\u306F ${PRIVATE_TASK_KEY_PREFIX}-<\u756A\u53F7> \u306E\u5F62\u3067\u3059\u3002ID\uFF08UUID / ULID\uFF09\u3067\u3082\u6307\u5B9A\u3067\u304D\u307E\u3059\u3002
|
|
5
5
|
\u30D7\u30ED\u30B8\u30A7\u30AF\u30C8\u306E\u30BF\u30B9\u30AF\u3092\u6307\u3059\u306A\u3089 --project ${PRIVATE_PROJECT_REF} \u3092\u5916\u3057\u3066\u304F\u3060\u3055\u3044\u3002`)}return"private"}if(kind==="key"&&isPrivateTaskKey(value)&&project===void 0){throw new UsageError(`${value} \u306F\u500B\u4EBA\u30BF\u30B9\u30AF\u306E\u30AD\u30FC\u306B\u3082\u3001\u30B3\u30FC\u30C9 ${PRIVATE_TASK_KEY_PREFIX} \u306E\u30D7\u30ED\u30B8\u30A7\u30AF\u30C8\u306E\u30BF\u30B9\u30AF\u30AD\u30FC\u306B\u3082\u8AAD\u3081\u307E\u3059`,
|
|
6
6
|
`\u3069\u3061\u3089\u3092\u6307\u3059\u304B --project \u3067\u9078\u3093\u3067\u304F\u3060\u3055\u3044\u3002
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import { createRequire as __twpCreateRequire } from 'node:module';
|
|
2
2
|
const require = __twpCreateRequire(import.meta.url);
|
|
3
|
-
import{graphNextCursor,ms365NotConnectedGuidance}from"./chunk-
|
|
3
|
+
import{graphNextCursor,ms365NotConnectedGuidance}from"./chunk-QBGEYQ2I.js";import{LIST_FLAGS}from"./chunk-MI6HVYR2.js";import{isRecord}from"./chunk-3ZRMMBP5.js";import{ApiResponseError,UsageError}from"./chunk-VFPY2A23.js";function graphData(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 graphValue(body,label){const value=graphData(body,label)["value"];if(!Array.isArray(value)){throw new ApiResponseError(`${label}\u306E\u5FDC\u7B54\u306B data.value \u914D\u5217\u304C\u3042\u308A\u307E\u305B\u3093\u3002\u63A5\u7D9A\u5148\u3092\u78BA\u8A8D\u3057\u3066\u304F\u3060\u3055\u3044\u3002`)}
|
|
4
4
|
return value}function readGraphCursor(body,label,kind){const next=graphData(body,label)["@odata.nextLink"];if(next===void 0||next===null)return{hasMore:false,cursor:null};const parsed=typeof next==="string"?graphNextCursor(next):null;if(parsed===null||kind!=="either"&&parsed.kind!==kind){return{hasMore:"@odata.nextLink \u304B\u3089\u7D9A\u304D\u306E\u5024\u3092\u53D6\u308A\u51FA\u305B\u307E\u305B\u3093",cursor:void 0}}return{hasMore:true,cursor:parsed.value}}function graphPaging(options){const{label,
|
|
5
5
|
kind}=options;return{cursorParam:kind==="either"?"skiptoken":kind,...options.cursorParamFor!==void 0?{cursorParamFor:options.cursorParamFor}:{},items:body=>graphValue(body,label),readCursor:body=>readGraphCursor(body,label,kind),nextCursor(body){const{hasMore,cursor}=readGraphCursor(body,label,kind);if(hasMore===false)return null;if(hasMore!==true||typeof cursor!=="string"||cursor===""){throw new ApiResponseError(`${label}\u306E\u5FDC\u7B54\u306B\u7D9A\u304D\uFF08@odata.nextLink\uFF09\u304C\u3042\u308A\u307E\u3059\u304C\u3001\u7D9A\u304D\u306E\u5024\u3092\u8AAD\u3081\u307E\u305B\u3093\u3002\u5168\u4EF6\u3092\u53D6\u5F97\u3067\u304D\u306A\u3044\u305F\u3081\u4E2D\u65AD\u3057\u307E\u3057\u305F\u3002`)}
|
|
6
6
|
return cursor},withItems(body,merged){const data=graphData(body,label);graphValue(body,label);const seen=new Set;const unique=merged.filter(row=>{const id=isRecord(row)?row["id"]:void 0;if(typeof id!=="string")return true;if(seen.has(id))return false;seen.add(id);return true});return{...body,data:{...data,value:unique,[DUPLICATES_KEY]:merged.length-unique.length}}}}}var DUPLICATES_KEY="@twp.duplicatesRemoved";function graphPagingNotes(body,label){const removed=graphData(body,label)[DUPLICATES_KEY];
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import { createRequire as __twpCreateRequire } from 'node:module';
|
|
2
2
|
const require = __twpCreateRequire(import.meta.url);
|
|
3
|
-
import{UsageError}from"./chunk-
|
|
3
|
+
import{UsageError}from"./chunk-VFPY2A23.js";import fs from"fs";var BOM="\uFEFF";async function readStdin(spec){if(process.stdin.isTTY===true){throw new UsageError(`${spec.fileFlag} - \u306F\u6A19\u6E96\u5165\u529B\u304B\u3089\u8AAD\u307F\u307E\u3059\u304C\u3001\u7AEF\u672B\u304C\u7E4B\u304C\u3063\u3066\u3044\u307E\u3059`,`\u30D1\u30A4\u30D7\u304B\u30EA\u30C0\u30A4\u30EC\u30AF\u30C8\u3067\u6E21\u3057\u3066\u304F\u3060\u3055\u3044\uFF08\u4F8B: cat review.md | twp \u2026 ${spec.fileFlag} -\uFF09\u3002`)}const chunks=[];for await(const chunk of process.stdin)chunks.
|
|
4
4
|
push(Buffer.from(chunk));return Buffer.concat(chunks).toString("utf8")}function charCount(text){return[...text].length}async function readBody(input,spec){const inline=input.flags.get(spec.flag);const file=input.flags.get(spec.fileFlag);if(inline!==void 0&&file!==void 0){throw new UsageError(`${spec.label}\u304C ${spec.flag} \u3068 ${spec.fileFlag} \u306E\u4E21\u65B9\u3067\u6307\u5B9A\u3055\u308C\u3066\u3044\u307E\u3059`,`\u3069\u3061\u3089\u304B\u4E00\u65B9\u3060\u3051\u3092\u6307\u5B9A\u3057\u3066\u304F\u3060\u3055\u3044\uFF08${spec.
|
|
5
5
|
fileFlag} - \u3067\u6A19\u6E96\u5165\u529B\u304B\u3089\u8AAD\u3081\u307E\u3059\uFF09\u3002`)}if(inline===void 0&&file===void 0)return void 0;const text=inline??await readFrom(file,spec);const stripped=text.startsWith(BOM)?text.slice(BOM.length):text;if(stripped.trim()===""){throw new UsageError(`${spec.label}\u304C\u7A7A\u3067\u3059\uFF08${inline!==void 0?spec.flag:`${spec.fileFlag} ${file}`}\uFF09`,spec.usage)}const count=charCount(stripped);if(count>spec.maxChars){throw new UsageError(`${spec.
|
|
6
6
|
label}\u304C\u9577\u3059\u304E\u307E\u3059\uFF08${count} \u6587\u5B57\u30FB\u4E0A\u9650 ${spec.maxChars} \u6587\u5B57\uFF09`,"\u5206\u5272\u3057\u3066\u6295\u7A3F\u3059\u308B\u304B\u3001\u8A73\u7D30\u306F\u6DFB\u4ED8\u30D5\u30A1\u30A4\u30EB\u306B\u3057\u3066\u304F\u3060\u3055\u3044\u3002")}return stripped}async function readFrom(file,spec){if(file==="-")return readStdin(spec);try{const stat=fs.statSync(file);if(!stat.isFile()){throw new UsageError(`${spec.label}\u306B\u901A\u5E38\u306E\u30D5\u30A1\u30A4\u30EB\u4EE5\u5916\u306F\u6307\u5B9A\u3067\u304D\u307E\u305B\u3093: ${file}`,
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import { createRequire as __twpCreateRequire } from 'node:module';
|
|
2
2
|
const require = __twpCreateRequire(import.meta.url);
|
|
3
|
-
import{splitFlagToken}from"./chunk-QQRJLH6B.js";import{UsageError}from"./chunk-
|
|
3
|
+
import{splitFlagToken}from"./chunk-QQRJLH6B.js";import{UsageError}from"./chunk-VFPY2A23.js";function parseOperationArgs(argv,specs){const byName=new Map(specs.map(spec=>[spec.name,spec]));const args=[];const flags=new Map;const repeated=new Map;let positionalOnly=false;for(let i=0;i<argv.length;i+=1){const arg=argv[i];if(arg===void 0)continue;if(!positionalOnly&&arg==="--"){positionalOnly=true;continue}if(positionalOnly||!arg.startsWith("-")||arg==="-"){args.push(arg);continue}const{name,value:inline}=splitFlagToken(arg);const spec=byName.get(name);if(spec===void 0){const shortEquals=!arg.
|
|
4
4
|
startsWith("--")&&arg.includes("=");throw new UsageError(`\u4E0D\u660E\u306A\u30AA\u30D7\u30B7\u30E7\u30F3: ${arg}`,shortEquals?`\u77ED\u3044\u30D5\u30E9\u30B0\u306B = \u306F\u4F7F\u3048\u307E\u305B\u3093\u3002\u7A7A\u767D\u3067\u533A\u5207\u3063\u3066\u304F\u3060\u3055\u3044: ${arg.replace("="," ")}`:void 0)}if(spec.repeatable!==true&&flags.has(name)){throw new UsageError(`${name} \u304C\u8907\u6570\u56DE\u6307\u5B9A\u3055\u308C\u3066\u3044\u307E\u3059`)}if(!spec.takesValue){if(inline!==void 0){
|
|
5
5
|
throw new UsageError(`${name} \u306F\u5024\u3092\u53D6\u308A\u307E\u305B\u3093`,`${name} \u306F\u6307\u5B9A\u306E\u6709\u7121\u3060\u3051\u304C\u610F\u5473\u3092\u6301\u3061\u307E\u3059\u3002`)}flags.set(name,"");continue}if(inline!==void 0){addValue(flags,repeated,spec,name,inline);continue}const next=argv[i+1];if(next===void 0||next.startsWith("-")&&next!=="-"){throw new UsageError(`${name} \u306B\u306F\u5024\u304C\u5FC5\u8981\u3067\u3059`,`\`-\` \u3067\u59CB\u307E\u308B\u5024\u306F ${name}=\u5024 \
|
|
6
6
|
\u306E\u5F62\u3067\u6E21\u305B\u307E\u3059\u3002`)}addValue(flags,repeated,spec,name,next);i+=1}return repeated.size>0?{args,flags,repeated}:{args,flags}}function addValue(flags,repeated,spec,name,value){if(spec.repeatable!==true){flags.set(name,value);return}const bucket=repeated.get(name);if(bucket===void 0)repeated.set(name,[value]);else bucket.push(value)}function repeatedValues(input,name){return input.repeated?.get(name)??[]}export{parseOperationArgs,repeatedValues};
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import { createRequire as __twpCreateRequire } from 'node:module';
|
|
2
2
|
const require = __twpCreateRequire(import.meta.url);
|
|
3
|
-
import{buildDiffLines,diffStat}from"./chunk-VRBI2NPI.js";import{EXIT_API_CLIENT,EXIT_API_SERVER,EXIT_AUTH}from"./chunk-
|
|
3
|
+
import{buildDiffLines,diffStat}from"./chunk-VRBI2NPI.js";import{EXIT_API_CLIENT,EXIT_API_SERVER,EXIT_AUTH}from"./chunk-VFPY2A23.js";import*as fs from"fs";function readUtf8Strict(p){return new TextDecoder("utf-8",{fatal:true,ignoreBOM:true}).decode(fs.readFileSync(p))}function apiExit(res){if(res.status===401)return EXIT_AUTH;if(res.status!==null&&res.status>=400&&res.status<500)return EXIT_API_CLIENT;return EXIT_API_SERVER}function pickNumber(b,key){const v=b[key];return typeof v==="number"&&Number.isInteger(v)&&v>=0?v:null}function str(v){return typeof v==="string"?v:""}function currentRevisionOf(res){const json=res.json??{};const data=json["dat\
|
|
4
4
|
a"]&&typeof json["data"]==="object"?json["data"]:{};return pickNumber(json,"current_revision")??pickNumber(data,"current_revision")}function errorDetail(res){if(res.status===null)return`transport_error=${res.transportError??"\u4E0D\u660E"}`;const json=res.json??{};const data=json["data"]&&typeof json["data"]==="object"?json["data"]:{};const errorField=json["error"];const errorObj=errorField&&typeof errorField==="object"?errorField:{};const reason=(typeof errorField==="string"?errorField:"")||str(
|
|
5
5
|
errorObj["code"])||str(json["reason"])||str(data["reason"]);const message=str(json["error_description"])||str(errorObj["message"])||str(json["message"])||str(data["message"]);const parts=[`http=${res.status}`];if(reason)parts.push(`reason=${reason}`);if(message)parts.push(message.slice(0,300));const errors=json["errors"]??data["errors"]??json["error_list"];if(errors&&typeof errors==="object")parts.push(JSON.stringify(errors).slice(0,300));if(!reason&&!message)parts.push(`\u5FDC\u7B54\u306E\u5148\u982D: ${res.
|
|
6
6
|
raw.slice(0,160)}`);return parts.join(" ")}var HIDDEN_CHARS=/[\x00-\x08\x0B-\x1F\x7F-\x9F\u00AD\u061C\u180E\u200B-\u200F\u2028-\u202E\u2060-\u2069\uFEFF\uFFF9-\uFFFB\u{E0000}-\u{E007F}\u{E0100}-\u{E01EF}]/gu;function printDiff(out,fromLabel,toLabel,before,after){const lines=buildDiffLines(before,after);const{added,removed}=diffStat(lines);out(`--- ${fromLabel}
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import { createRequire as __twpCreateRequire } from 'node:module';
|
|
2
2
|
const require = __twpCreateRequire(import.meta.url);
|
|
3
|
-
import{salesAdminForbidden}from"./chunk-
|
|
3
|
+
import{salesAdminForbidden}from"./chunk-ELEOYXLD.js";import{nonEmpty,positiveInteger}from"./chunk-MI6HVYR2.js";import{withResolved}from"./chunk-PS5QFKHB.js";import{isRecord,pick}from"./chunk-3ZRMMBP5.js";import{ApiResponseError,UsageError}from"./chunk-VFPY2A23.js";var PATH="/api/v2/sales/receivables";var FORBIDDEN=salesAdminForbidden("\u58F2\u639B\u91D1\u6B8B\u9AD8\u3068\u7DE0\u3081");var CLOSING_LIST_MAX=36;var SUMMARY_LABELS=[["previous_balance","\u524D\u6708\u6B8B\u9AD8"],["current_debit","\u5F53\u6708\u501F\u65B9\uFF08\u5F53\u6708\u8ACB\u6C42\u984D\uFF09"],["current_credit","\u5F53\u6708\u8CB8\u65B9\uFF08\u5F53\u6708\u5165\u91D1\u5F15\u5F53\u984D\uFF09"],["current_balance","\u5F53\u6708\u6B8B\u9AD8"],["current_month_uncollected","\u2460 \u5F53\u6708\u8ACB\u6C42 \u672A\u56DE\u53CE"],
|
|
4
4
|
["previous_uncollected","\u2461 \u524D\u6708\u4EE5\u524D \u672A\u5165\u91D1\u58F2\u639B\u91D1"],["advance_received","\u524D\u53D7\u91D1\uFF08\u7FCC\u6708\u4EE5\u964D\u8ACB\u6C42\u3078\u306E\u5165\u91D1\uFF09"],["future_invoice_total","\u2462 \u7FCC\u6708\u4EE5\u964D \u58F2\u639B\u91D1\uFF08\u8ACB\u6C42\u7DCF\u984D\u30FB\u53C2\u8003\uFF09"]];var ITEM_COLUMNS=["invoice_id","invoice_no","company_name","title","invoice_date","due_date","total","collected","uncollected"];var CLOSING_COLUMNS=["year_mo\
|
|
5
5
|
nth","basis_date","closed_at","closed_by_name","has_variance"];function usageOf(op){return`twp receivable ${op} help`}function yen(value){return typeof value==="number"?`${value.toLocaleString("ja-JP")} \u5186`:"\uFF08\u4E0D\u660E\uFF09"}function text(value){return typeof value==="string"||typeof value==="number"?String(value):""}function yearMonthValue(raw,label){const value=raw.trim();if(!/^\d{4}-(0[1-9]|1[0-2])$/.test(value))throw new UsageError(`${label} \u306F YYYY-MM \u306E\u5F62\u3067\u6307\u5B9A\u3057\u3066\u304F\u3060\u3055\u3044: ${raw}`,
|
|
6
6
|
"\u4F8B: 2026-09");return value}function previousYearMonth(yearMonth){const[y,m]=yearMonth.split("-").map(Number);return m===1?`${y-1}-12`:`${y}-${String(m-1).padStart(2,"0")}`}function envelope(body,what){if(!isRecord(body)||body["result"]!==true)throw new ApiResponseError(`${what}\u306E\u5FDC\u7B54\u306E\u5F62\u304C\u60F3\u5B9A\u3068\u9055\u3044\u307E\u3059\u3002\u63A5\u7D9A\u5148\u3092\u78BA\u8A8D\u3057\u3066\u304F\u3060\u3055\u3044\u3002`);return body}function withoutResult(body){return Object.
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import { createRequire as __twpCreateRequire } from 'node:module';
|
|
2
2
|
const require = __twpCreateRequire(import.meta.url);
|
|
3
|
-
import{isoDate}from"./chunk-
|
|
4
|
-
ApiResponseError,UsageError}from"./chunk-
|
|
3
|
+
import{isoDate}from"./chunk-OTIR4GES.js";import{SALES_ESTIMATES_PATH,SALES_INVOICES_PATH,isExactNumericId,resolveNamed}from"./chunk-Q2KIETMB.js";import{repeatedValues}from"./chunk-7UB4I3JF.js";import{LIST_PAGING_HELP,PAGE_NUMBER_LIST_FLAGS,PAGE_NUMBER_PAGING_HELP,STABLE_PAGE_ORDER,nonEmpty,pageNumberPaging,pageNumberQuery,pageRangeNotes}from"./chunk-MI6HVYR2.js";import{withResolved}from"./chunk-PS5QFKHB.js";import{isRecord,pick}from"./chunk-3ZRMMBP5.js";import{
|
|
4
|
+
ApiResponseError,UsageError}from"./chunk-VFPY2A23.js";var ESTIMATE_STATUSES={new:"\u4F5C\u6210\u4E2D",create_completed:"\u4F5C\u6210\u5B8C\u4E86",in_progress:"\u7533\u8ACB\u4E2D",approved:"\u627F\u8A8D\u6E08",submitted:"\u63D0\u793A\u6E08",rejected:"\u5DEE\u3057\u623B\u3057",deleted:"\u524A\u9664\u6E08"};var INVOICE_STATUSES={new:"\u4F5C\u6210\u4E2D",create_completed:"\u4F5C\u6210\u5B8C\u4E86",in_progress:"\u7533\u8ACB\u4E2D",approved:"\u627F\u8A8D\u6E08",rejected:"\u5DEE\u3057\u623B\u3057",submitted:"\u63D0\u793A\u6E08",manager_confirmation:"\u6848\u4EF6\u62C5\u5F53\u8005\
|
|
5
5
|
_\u6848\u4EF6\u5185\u5BB9\u30FB\u91D1\u984D\u78BA\u8A8D",invoice_issued:"\u8ACB\u6C42\u66F8\u767A\u884C\u6E08",sent_to_client:"\u5148\u65B9\u9001\u4ED8\u6E08",archived:"\u4FDD\u7BA1\u6E08",deleted:"\u524A\u9664\u6E08",cancelled:"\u53D6\u6D88\uFF08\u7121\u52B9\uFF09",lost:"\u5931\u6CE8"};var ALLOCATION_STATUSES={unallocated:"\u672A\u56DE\u53CE",allocated:"\u56DE\u53CE\u6E08"};function statusRefs(table){return Object.entries(table).map(([code,name])=>({id:code,name,code}))}function statusHelp(table){
|
|
6
6
|
return Object.entries(table).map(([code,name])=>`${code}\uFF08${name}\uFF09`).join(" / ")}function licenseForbidden(guidance){return body=>body?.error==="permission_denied"?guidance:void 0}function featureLicenseGuidance(feature){return`${feature}\u3092\u4F7F\u3046\u6A29\u9650\u304C\u3042\u308A\u307E\u305B\u3093\u3002\u30C6\u30CA\u30F3\u30C8\u304C${feature}\u3092\u5951\u7D04\u3057\u3066\u3044\u306A\u3044\u304B\u3001\u3042\u306A\u305F\u306E${feature}\u306E\u6A29\u9650\u304C\u300C\u306A\u3057\u300D\u306B\u306A\u3063\u3066\u3044\u307E\u3059\u3002\u30C6\u30CA\u30F3\u30C8\u7BA1\u7406\u8005\u306B\u78BA\u8A8D\u3057\u3066\u304F\u3060\u3055\u3044\u3002`}
|
|
7
7
|
var SALES_FORBIDDEN=licenseForbidden(featureLicenseGuidance("\u8CA9\u58F2\u7BA1\u7406"));function envelope(body,what){if(!isRecord(body)||body["result"]!==true){throw new ApiResponseError(`${what}\u306E\u5FDC\u7B54\u306E\u5F62\u304C\u60F3\u5B9A\u3068\u9055\u3044\u307E\u3059\u3002\u63A5\u7D9A\u5148\u3092\u78BA\u8A8D\u3057\u3066\u304F\u3060\u3055\u3044\u3002`)}return body}function detail(body,what){const data=envelope(body,what)["data"];if(!isRecord(data)||typeof data["id"]!=="string"){throw new ApiResponseError(
|
|
@@ -1,32 +1,32 @@
|
|
|
1
1
|
import { createRequire as __twpCreateRequire } from 'node:module';
|
|
2
2
|
const require = __twpCreateRequire(import.meta.url);
|
|
3
|
-
import{
|
|
3
|
+
import{repeatedValues}from"./chunk-7UB4I3JF.js";import{hoursMinutes}from"./chunk-IU5P6MY5.js";import{dateFlag,monthFlag}from"./chunk-EXT4AIDF.js";import{requireResolved,withResolved}from"./chunk-PS5QFKHB.js";import{isRecord,pick}from"./chunk-3ZRMMBP5.js";import{ApiResponseError,UsageError}from"./chunk-VFPY2A23.js";var ANALYSIS_PATH="/api/v2/analysis";var ACCESSIBLE_PAGES_HINT="\u958B\u3051\u308B\u5206\u6790\u30DA\u30FC\u30B8\u306F twp api /api/v2/analysis/accessible-pages \u3067\u78BA\u8A8D\u3067\u304D\u307E\u3059\u3002";var LICENSE_GUIDANCE="\u5206\u6790\u3092\u4F7F\u3046\u6A29\u9650\u304C\u3042\u308A\u307E\u305B\u3093\u3002\u30C6\u30CA\u30F3\u30C8\u304C\u5206\u6790\u3092\u5951\u7D04\u3057\u3066\u3044\u306A\u3044\u304B\u3001\u3042\u306A\u305F\u306E\u5206\u6790\u306E\u6A29\u9650\u304C\u300C\u306A\u3057\u300D\u306B\u306A\u3063\u3066\u3044\u307E\u3059\u3002\u30C6\u30CA\u30F3\u30C8\u7BA1\u7406\u8005\u306B\u78BA\u8A8D\u3057\u3066\u304F\u3060\u3055\u3044\u3002";
|
|
4
4
|
var PAGE_GUIDANCE=`\u3053\u306E\u5206\u6790\u30DA\u30FC\u30B8\u306E\u95B2\u89A7\u5BFE\u8C61\u306B\u542B\u307E\u308C\u3066\u3044\u307E\u305B\u3093\u3002\u5206\u6790\u306E\u7BA1\u7406\u8005\u306B\u5BFE\u8C61\u3078\u306E\u8FFD\u52A0\u3092\u4F9D\u983C\u3057\u3066\u304F\u3060\u3055\u3044\u3002${ACCESSIBLE_PAGES_HINT}`;var PAGE_DENIED_MARK="\u5206\u6790\u30DA\u30FC\u30B8";function analysisForbidden(levelGuidance2){return body=>{if(body?.error==="permission_denied"){const text=body.error_description??"";
|
|
5
5
|
if(text.includes(PAGE_DENIED_MARK))return PAGE_GUIDANCE;if(text.includes("\u3053\u306E\u6A5F\u80FD"))return LICENSE_GUIDANCE;return void 0}if(body?.error==="forbidden")return levelGuidance2;return void 0}}function levelGuidance(page,features){return`${page}\u3092\u958B\u304F\u6A29\u9650\u304C\u3042\u308A\u307E\u305B\u3093\u3002\u5206\u6790\u62C5\u5F53\u8005\u30D5\u30E9\u30B0\u3001\u307E\u305F\u306F${features}\u306E\u6A29\u9650\uFF08\u300C\u306A\u3057\u300D\u4EE5\u5916\uFF09\u304C\u8981\u308A\u307E\u3059\u3002\u30C6\u30CA\u30F3\u30C8\u7BA1\u7406\u8005\u306B\u78BA\u8A8D\u3057\u3066\u304F\u3060\u3055\u3044\u3002`}
|
|
6
6
|
var FROM_FLAG={name:"--from",summary:"\u958B\u59CB\u306E\u5E74\u6708\uFF08YYYY-MM\uFF09",takesValue:true,placeholder:"<YYYY-MM>"};var TO_FLAG={name:"--to",summary:"\u7D42\u4E86\u306E\u5E74\u6708\uFF08YYYY-MM\uFF09",takesValue:true,placeholder:"<YYYY-MM>"};var MONTH_FLAG={name:"--month",summary:"1\u304B\u6708\u3060\u3051\uFF08YYYY-MM\uFF09\u3002--from / --to \u3068\u306F\u4F75\u7528\u4E0D\u53EF",takesValue:true,placeholder:"<YYYY-MM>"};var YEAR_FLAG={name:"--year",summary:"1\u5E74\u5206\uFF081\u301C12\u6708\u30FBYYYY\uFF09\u3002--from \
|
|
7
7
|
/ --to / --month \u3068\u306F\u4F75\u7528\u4E0D\u53EF",takesValue:true,placeholder:"<YYYY>"};function currentMonth(now=new Date){return`${String(now.getFullYear())}-${String(now.getMonth()+1).padStart(2,"0")}`}function monthRange(input,usage){const from=monthFlag(input.flags,FROM_FLAG.name);const to=monthFlag(input.flags,TO_FLAG.name);const month=monthFlag(input.flags,MONTH_FLAG.name);if(month!==void 0){if(from!==void 0||to!==void 0){throw new UsageError("--month \u3068 --from / --to \u306F\u4F75\u7528\u3067\u304D\u307E\u305B\u3093",
|
|
8
8
|
usage)}return{from:month,to:month,defaulted:false}}if(from===void 0&&to===void 0){const now=currentMonth();return{from:now,to:now,defaulted:true}}if(from===void 0||to===void 0){throw new UsageError("--from \u3068 --to \u306F\u4E21\u65B9\u6307\u5B9A\u3057\u3066\u304F\u3060\u3055\u3044\uFF081\u304B\u6708\u3060\u3051\u306A\u3089 --month\uFF09",usage)}if(from>to){throw new UsageError(`--from\uFF08${from}\uFF09\u304C --to\uFF08${to}\uFF09\u3088\u308A\u5F8C\u306B\u306A\u3063\u3066\u3044\u307E\u3059`,usage)}
|
|
9
|
-
return{from,to,defaulted:false}}function rangeNotes(range){return range.defaulted?[`\u671F\u9593\u306E\u6307\u5B9A\u304C\u7121\u3044\u306E\u3067\u5F53\u6708\uFF08${range.from}\u30FB\u3053\u306E\u7AEF\u672B\u306E\u6642\u8A08\uFF09\u3092\u96C6\u8A08\u3057\u307E\u3059\u3002\u5225\u306E\u6708\u306F --month / --from --to \u3067\u6307\u5B9A\u3057\u3066\u304F\u3060\u3055\u3044\u3002`]:[]}function
|
|
10
|
-
|
|
11
|
-
`${label}\u306E\u5FDC\u7B54\u306B
|
|
12
|
-
entry)&&typeof entry["year_month"]==="string")values.set(entry["year_month"],entry[field]??null)}}const out={};for(const month of months)out[month]=values.has(month)?
|
|
13
|
-
1;for(let n=0;index<=last&&n<120;index++,n++){months.push(`${String(Math.floor(index/12))}-${String(index%12+1).padStart(2,"0")}`)}return months}function responseMonths(body){
|
|
14
|
-
return[];const text=parts.map(([key,name])=>`${name} ${String(summary[key]??"-")}`).join(" / ");return[`${label}: ${text}`]}function periodNote(body){if(!isRecord(body))return[];
|
|
15
|
-
|
|
16
|
-
--
|
|
17
|
-
"project";if(raw!=="project"&&raw!=="user"){throw new UsageError(`--scope \u306F project \u304B user \u3067\u3059\uFF08\u53D7\u3051\u53D6\u3063\u305F\u5024: ${raw}\uFF09`,OPERATING_USAGE)}return raw}function checkOperatingFilters(input,scope){
|
|
18
|
-
join(" / ")} \u304C\u52B9\u304D\u307E\u305B\u3093\uFF08\u30B5\u30FC\u30D0\u304C\u7121\u8996\u3057\u307E\u3059\uFF09`,scope==="project"?"--user / --department \u306F --scope user \u3068\u4E00\u7DD2\u306B\u6307\u5B9A\u3057\u3066\u304F\u3060\u3055\u3044\u3002":
|
|
19
|
-
OPERATING_USAGE);return{query:{start_ym:range.from,end_ym:range.to},range}}if([FROM_FLAG,TO_FLAG,MONTH_FLAG].some(flag=>input.flags.has(flag.name))){throw new UsageError("--year \u3068 --month / --from / --to \u306F\u4F75\u7528\u3067\u304D\u307E\u305B\u3093",
|
|
20
|
-
\uFF09`,OPERATING_USAGE)}return{query:{year:value},range:null}}async function resolveFilters(input,ctx){const resolved={};const project=input.flags.get(PROJECT_FILTER_FLAG.name);const user=input.flags.get(USER_FLAG.
|
|
21
|
-
resolver.department(department,DEPARTMENT_FLAG.name)).id;return withResolved(input,resolved)}function resolvedOrUndefined(input,key){return input.resolved?.[key]}var operatingHoursList={name:"list",summary:"\u7A3C\u50CD\u5206\u6790\
|
|
22
|
-
\u592724\u304B\u6708\uFF08\u30B5\u30FC\u30D0\u304C\u691C\u67FB\u3057\u307E\u3059\uFF09\u3002\n--scope project\uFF08\u65E2\u5B9A\uFF09\u306F --project \u3060\u3051\u3001--scope user \u306F --user / --department \u3060\u3051\u3067\u7D5E\u308A\u8FBC\u3081\u307E\u3059\u3002\n--output table / text / tsv \u306F\u30D7\u30ED\u30B8\u30A7\u30AF\u30C8\uFF08\u307E\u305F\u306F\u30E6\u30FC\u30B6\u30FC\uFF09\u3054\u3068\u306B1\u884C\u3067\u3001\u6708\u3054\u3068\u306E\u6642\u9593\u3092 YYYY-MM \u5217\u306B\u4E26\u3079\u307E\u3059\u3002\n\u30E1\u30F3\u30D0\u30FC\u5225\uFF08by_user\uFF09\u30FB\u30D7\u30ED\u30B8\u30A7\u30AF\u30C8\u5225\uFF08by_project\uFF09\u30FB\u4E88\u6E2C\u306E\u6839\u62E0\uFF08forecast_basis\uFF09\
|
|
23
|
-
flags:[SCOPE_FLAG,MONTH_FLAG,FROM_FLAG,TO_FLAG,YEAR_FLAG,PROJECT_FILTER_FLAG,USER_FLAG,DEPARTMENT_FLAG],forbidden:analysisForbidden(levelGuidance("\u7A3C\u50CD\u5206\u6790","\u52E4\u6020\u3068\u30D7\u30ED\u30B8\u30A7\u30AF\u30C8\u306E\u4E21\u65B9")),async prepare(input,ctx){noArgs(input,
|
|
24
|
-
input);checkOperatingFilters(input,scope);const{query}=operatingPeriod(input);return{method:"GET",path:`${ANALYSIS_PATH}/operating-hours`,query:{scope,...query,project_id:resolvedOrUndefined(input,"projectId"),user_id:resolvedOrUndefined(input,"userId"),department_id:resolvedOrUndefined(
|
|
25
|
-
const scope=isRecord(body)?body["scope"]:void 0;return[...periodNote(body),...scope==="user"?summaryNote(body,"\u5408\u8A08",[["total_hours","\u7A3C\u50CD"],["total_overtime_hours","\u6B8B\u696D"],["user_count","\u4EBA\u6570"]]):summaryNote(body,"\u5408\u8A08",[["total_hours","\u7A3C\u50CD"],
|
|
26
|
-
body,"projects","\u7A3C\u50CD\u5206\u6790").map(row=>({project_code:row["project_code"]??null,project_name:row["project_name"]??null,...monthColumns(row,"hours",months),total_hours:row["total_hours"]??null,members:Array.isArray(row["by_user"])?row["by_user"].length:null,project_id:row["
|
|
27
|
-
row,"hours",months),total_hours:row["total_hours"]??null,total_standard_hours:row["total_standard_hours"]??null,total_overtime_hours:row["total_overtime_hours"]??null,forecast_hours:row["forecast_hours"]??null,forecast_deviation_hours:row["forecast_deviation_hours"]??null,user_id:row["
|
|
28
|
-
var PROJECT_ASSIGNMENT_USAGE="twp analysis project-assignment list [--month <YYYY-MM> | --from <YYYY-MM> --to <YYYY-MM>] [--project <\u30B3\u30FC\u30C9>]";var projectAssignmentList={name:"list",summary:"\u30D7\u30ED\u30B8\u30A7\u30AF\u30C8\u30A2\u30B5\u30A4\u30F3\uFF08\u30D7\u30ED\u30B8\u30A7\u30AF\u30C8\u3054\u3068\u306E\
|
|
29
|
-
|
|
9
|
+
return{from,to,defaulted:false}}function rangeNotes(range){return range.defaulted?[`\u671F\u9593\u306E\u6307\u5B9A\u304C\u7121\u3044\u306E\u3067\u5F53\u6708\uFF08${range.from}\u30FB\u3053\u306E\u7AEF\u672B\u306E\u6642\u8A08\uFF09\u3092\u96C6\u8A08\u3057\u307E\u3059\u3002\u5225\u306E\u6708\u306F --month / --from --to \u3067\u6307\u5B9A\u3057\u3066\u304F\u3060\u3055\u3044\u3002`]:[]}function kpiMonthNotes(range){return range.defaulted?[`\u6708\u306E\u6307\u5B9A\u304C\u7121\u3044\u306E\u3067\u5F53\u6708\uFF08${range.
|
|
10
|
+
from}\u30FB\u3053\u306E\u7AEF\u672B\u306E\u6642\u8A08\uFF09\u3092\u96C6\u8A08\u3057\u307E\u3059\u3002\u5225\u306E\u6708\u306F --month \u3067\u6307\u5B9A\u3057\u3066\u304F\u3060\u3055\u3044\u3002`]:[]}function noArgs(input,usage){if(input.args.length>0){throw new UsageError(`\u4F4D\u7F6E\u5F15\u6570\u306F\u53D7\u3051\u53D6\u308A\u307E\u305B\u3093: ${input.args.join(" ")}`,usage)}}function listIn(body,key,label){const list=isRecord(body)?body[key]:void 0;if(!isRecord(body)||body["result"]!==true||
|
|
11
|
+
!Array.isArray(list)){throw new ApiResponseError(`${label}\u306E\u5FDC\u7B54\u306B ${key} \u304C\u3042\u308A\u307E\u305B\u3093\u3002\u63A5\u7D9A\u5148\u3092\u78BA\u8A8D\u3057\u3066\u304F\u3060\u3055\u3044\u3002`)}return list.map(row=>isRecord(row)?row:{})}function dataOf(body,label){if(!isRecord(body)||body["result"]!==true||!("data"in body)){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`)}
|
|
12
|
+
return body["data"]}function dataList(body,key,label){return listIn({result:true,[key]:dataOf(body,label)?.[key]},key,label)}function recordOf(value){return isRecord(value)?value:{}}function monthColumns(row,field,months){const values=new Map;const entries=row["by_month"];if(Array.isArray(entries)){for(const entry of entries){if(isRecord(entry)&&typeof entry["year_month"]==="string")values.set(entry["year_month"],entry[field]??null)}}const out={};for(const month of months)out[month]=values.has(month)?
|
|
13
|
+
values.get(month):null;return out}function monthsBetween(from,to){const pattern=/^(\d{4})-(\d{2})$/;const a=typeof from==="string"?pattern.exec(from):null;const b=typeof to==="string"?pattern.exec(to):null;if(a===null||b===null)return[];const months=[];let index=Number(a[1])*12+Number(a[2])-1;const last=Number(b[1])*12+Number(b[2])-1;for(let n=0;index<=last&&n<120;index++,n++){months.push(`${String(Math.floor(index/12))}-${String(index%12+1).padStart(2,"0")}`)}return months}function responseMonths(body){
|
|
14
|
+
if(!isRecord(body))return[];const listed=body["year_months"];if(Array.isArray(listed)&&listed.every(m=>typeof m==="string"))return listed;return monthsBetween(body["start_ym"],body["end_ym"])}function summaryNote(body,label,parts){const summary=isRecord(body)&&isRecord(body["summary"])?body["summary"]:null;if(summary===null)return[];const text=parts.map(([key,name])=>`${name} ${String(summary[key]??"-")}`).join(" / ");return[`${label}: ${text}`]}function periodNote(body){if(!isRecord(body))return[];
|
|
15
|
+
const from=body["start_ym"];const to=body["end_ym"];return typeof from==="string"&&typeof to==="string"?[`\u671F\u9593: ${from} \u301C ${to}`]:[]}var SCOPE_FLAG={name:"--scope",summary:"\u96C6\u8A08\u306E\u8EF8\uFF08project\uFF1D\u30D7\u30ED\u30B8\u30A7\u30AF\u30C8\u5225\u30FB\u65E2\u5B9A / user\uFF1D\u30E6\u30FC\u30B6\u30FC\u5225\uFF09",takesValue:true,placeholder:"<project|user>"};var PROJECT_FILTER_FLAG={name:"--project",summary:"\u30D7\u30ED\u30B8\u30A7\u30AF\u30C8\u3067\u7D5E\u308A\u8FBC\u3080\uFF08\u30B3\u30FC\u30C9\u30FBID\uFF09",
|
|
16
|
+
takesValue:true,placeholder:"<\u30B3\u30FC\u30C9|ID>"};var USER_FLAG={name:"--user",summary:"\u30E6\u30FC\u30B6\u30FC\u3067\u7D5E\u308A\u8FBC\u3080\uFF08\u6C0F\u540D\u30FB\u30E1\u30FC\u30EB\u30FBID\u30FBme\uFF09",takesValue:true,placeholder:"<\u30E6\u30FC\u30B6\u30FC>"};var DEPARTMENT_FLAG={name:"--department",summary:"\u90E8\u7F72\u3067\u7D5E\u308A\u8FBC\u3080\uFF08\u540D\u524D\u30FB\u30B3\u30FC\u30C9\u30FBID\uFF09",takesValue:true,placeholder:"<\u90E8\u7F72>"};var OPERATING_USAGE="twp analysis\
|
|
17
|
+
operating-hours list [--scope project|user] [--month <YYYY-MM> | --from <YYYY-MM> --to <YYYY-MM> | --year <YYYY>] [--project <\u30B3\u30FC\u30C9>] [--user <\u30E6\u30FC\u30B6\u30FC>] [--department <\u90E8\u7F72>]";function operatingScope(input){const raw=input.flags.get(SCOPE_FLAG.name)?.trim()??"project";if(raw!=="project"&&raw!=="user"){throw new UsageError(`--scope \u306F project \u304B user \u3067\u3059\uFF08\u53D7\u3051\u53D6\u3063\u305F\u5024: ${raw}\uFF09`,OPERATING_USAGE)}return raw}function checkOperatingFilters(input,scope){
|
|
18
|
+
const misplaced=scope==="project"?[USER_FLAG.name,DEPARTMENT_FLAG.name].filter(name=>input.flags.has(name)):[PROJECT_FILTER_FLAG.name].filter(name=>input.flags.has(name));if(misplaced.length>0){throw new UsageError(`--scope ${scope} \u3067\u306F ${misplaced.join(" / ")} \u304C\u52B9\u304D\u307E\u305B\u3093\uFF08\u30B5\u30FC\u30D0\u304C\u7121\u8996\u3057\u307E\u3059\uFF09`,scope==="project"?"--user / --department \u306F --scope user \u3068\u4E00\u7DD2\u306B\u6307\u5B9A\u3057\u3066\u304F\u3060\u3055\u3044\u3002":
|
|
19
|
+
"--project \u306F --scope project\uFF08\u65E2\u5B9A\uFF09\u3067\u6307\u5B9A\u3057\u3066\u304F\u3060\u3055\u3044\u3002")}}function operatingPeriod(input){const year=input.flags.get(YEAR_FLAG.name);if(year===void 0){const range=monthRange(input,OPERATING_USAGE);return{query:{start_ym:range.from,end_ym:range.to},range}}if([FROM_FLAG,TO_FLAG,MONTH_FLAG].some(flag=>input.flags.has(flag.name))){throw new UsageError("--year \u3068 --month / --from / --to \u306F\u4F75\u7528\u3067\u304D\u307E\u305B\u3093",
|
|
20
|
+
OPERATING_USAGE)}const value=year.trim();if(!/^\d{4}$/.test(value)||Number(value)<2e3||Number(value)>2100){throw new UsageError(`--year \u306F 2000\u301C2100 \u306E\u897F\u66A64\u6841\u3067\u6307\u5B9A\u3057\u3066\u304F\u3060\u3055\u3044\uFF08\u53D7\u3051\u53D6\u3063\u305F\u5024: ${year}\uFF09`,OPERATING_USAGE)}return{query:{year:value},range:null}}async function resolveFilters(input,ctx){const resolved={};const project=input.flags.get(PROJECT_FILTER_FLAG.name);const user=input.flags.get(USER_FLAG.
|
|
21
|
+
name);const department=input.flags.get(DEPARTMENT_FLAG.name);if(project!==void 0)resolved["projectId"]=(await ctx.resolver.project(project)).id;if(user!==void 0)resolved["userId"]=(await ctx.resolver.user(user,USER_FLAG.name)).id;if(department!==void 0)resolved["departmentId"]=(await ctx.resolver.department(department,DEPARTMENT_FLAG.name)).id;return withResolved(input,resolved)}function resolvedOrUndefined(input,key){return input.resolved?.[key]}var operatingHoursList={name:"list",summary:"\u7A3C\u50CD\u5206\u6790\
|
|
22
|
+
\uFF08\u30D7\u30ED\u30B8\u30A7\u30AF\u30C8\u5225\u30FB\u30E6\u30FC\u30B6\u30FC\u5225\u306E\u7A3C\u50CD\u6642\u9593\uFF09\u3092\u8868\u793A\u3059\u308B",usage:OPERATING_USAGE,description:"\u753B\u9762\u306E\u300C\u7A3C\u50CD\u5206\u6790\u300D\u3068\u540C\u3058 GET /api/v2/analysis/operating-hours \u3067\u3059\u3002\n\u671F\u9593\u3092\u6307\u5B9A\u3057\u306A\u3051\u308C\u3070\u5F53\u6708\uFF08\u3053\u306E\u7AEF\u672B\u306E\u6642\u8A08\uFF09\u3067\u3059\u3002\u671F\u9593\u306F\u6700\u592724\u304B\u6708\uFF08\u30B5\u30FC\u30D0\u304C\u691C\u67FB\u3057\u307E\u3059\uFF09\u3002\n--scope project\uFF08\u65E2\u5B9A\uFF09\u306F --project \u3060\u3051\u3001--scope user \u306F --user / --department \u3060\u3051\u3067\u7D5E\u308A\u8FBC\u3081\u307E\u3059\u3002\n--output table / text / tsv \u306F\u30D7\u30ED\u30B8\u30A7\u30AF\u30C8\uFF08\u307E\u305F\u306F\u30E6\u30FC\u30B6\u30FC\uFF09\u3054\u3068\u306B1\u884C\u3067\u3001\u6708\u3054\u3068\u306E\u6642\u9593\u3092 YYYY-MM \u5217\u306B\u4E26\u3079\u307E\u3059\u3002\n\u30E1\u30F3\u30D0\u30FC\u5225\uFF08by_user\uFF09\u30FB\u30D7\u30ED\u30B8\u30A7\u30AF\u30C8\u5225\uFF08by_project\uFF09\u30FB\u4E88\u6E2C\u306E\u6839\u62E0\uFF08forecast_basis\uFF09\
|
|
23
|
+
\u306F --output json \u304B --query \u3067\u8AAD\u3081\u307E\u3059\u3002\n\u5024\u306F\u30B5\u30FC\u30D0\u306E\u96C6\u8A08\u306E\u307E\u307E\u3067\u3001CLI \u306F\u518D\u8A08\u7B97\u3057\u307E\u305B\u3093\u3002",flags:[SCOPE_FLAG,MONTH_FLAG,FROM_FLAG,TO_FLAG,YEAR_FLAG,PROJECT_FILTER_FLAG,USER_FLAG,DEPARTMENT_FLAG],forbidden:analysisForbidden(levelGuidance("\u7A3C\u50CD\u5206\u6790","\u52E4\u6020\u3068\u30D7\u30ED\u30B8\u30A7\u30AF\u30C8\u306E\u4E21\u65B9")),async prepare(input,ctx){noArgs(input,
|
|
24
|
+
OPERATING_USAGE);const scope=operatingScope(input);checkOperatingFilters(input,scope);operatingPeriod(input);return resolveFilters(input,ctx)},plan(input){noArgs(input,OPERATING_USAGE);const scope=operatingScope(input);checkOperatingFilters(input,scope);const{query}=operatingPeriod(input);return{method:"GET",path:`${ANALYSIS_PATH}/operating-hours`,query:{scope,...query,project_id:resolvedOrUndefined(input,"projectId"),user_id:resolvedOrUndefined(input,"userId"),department_id:resolvedOrUndefined(
|
|
25
|
+
input,"departmentId")}}},plannedNotes:input=>{const{range}=operatingPeriod(input);return range===null?[]:rangeNotes(range)},summarize:body=>operatingRows(body),raw:body=>{operatingRows(body);return body},notes:body=>{const scope=isRecord(body)?body["scope"]:void 0;return[...periodNote(body),...scope==="user"?summaryNote(body,"\u5408\u8A08",[["total_hours","\u7A3C\u50CD"],["total_overtime_hours","\u6B8B\u696D"],["user_count","\u4EBA\u6570"]]):summaryNote(body,"\u5408\u8A08",[["total_hours","\u7A3C\u50CD"],
|
|
26
|
+
["project_count","\u30D7\u30ED\u30B8\u30A7\u30AF\u30C8\u6570"]])]}};function operatingRows(body){const scope=isRecord(body)?body["scope"]:void 0;const months=responseMonths(body);if(scope==="project"){return listIn(body,"projects","\u7A3C\u50CD\u5206\u6790").map(row=>({project_code:row["project_code"]??null,project_name:row["project_name"]??null,...monthColumns(row,"hours",months),total_hours:row["total_hours"]??null,members:Array.isArray(row["by_user"])?row["by_user"].length:null,project_id:row["\
|
|
27
|
+
project_id"]??null}))}if(scope==="user"){return listIn(body,"users","\u7A3C\u50CD\u5206\u6790").map(row=>({department_name:row["department_name"]??null,user_name:row["user_name"]??null,email:row["email"]??null,...monthColumns(row,"hours",months),total_hours:row["total_hours"]??null,total_standard_hours:row["total_standard_hours"]??null,total_overtime_hours:row["total_overtime_hours"]??null,forecast_hours:row["forecast_hours"]??null,forecast_deviation_hours:row["forecast_deviation_hours"]??null,user_id:row["\
|
|
28
|
+
user_id"]??null}))}throw new ApiResponseError("\u7A3C\u50CD\u5206\u6790\u306E\u5FDC\u7B54\u306E scope \u304C project / user \u306E\u3069\u3061\u3089\u3067\u3082\u3042\u308A\u307E\u305B\u3093\u3002\u63A5\u7D9A\u5148\u3092\u78BA\u8A8D\u3057\u3066\u304F\u3060\u3055\u3044\u3002")}var PROJECT_ASSIGNMENT_USAGE="twp analysis project-assignment list [--month <YYYY-MM> | --from <YYYY-MM> --to <YYYY-MM>] [--project <\u30B3\u30FC\u30C9>]";var projectAssignmentList={name:"list",summary:"\u30D7\u30ED\u30B8\u30A7\u30AF\u30C8\u30A2\u30B5\u30A4\u30F3\uFF08\u30D7\u30ED\u30B8\u30A7\u30AF\u30C8\u3054\u3068\u306E\
|
|
29
|
+
\u30A2\u30B5\u30A4\u30F3\u6642\u9593\uFF09\u3092\u8868\u793A\u3059\u308B",usage:PROJECT_ASSIGNMENT_USAGE,description:"\u753B\u9762\u306E\u300C\u30D7\u30ED\u30B8\u30A7\u30AF\u30C8\u30A2\u30B5\u30A4\u30F3\u300D\u306E\u30BF\u30A4\u30E0\u30E9\u30A4\u30F3\u3068\u540C\u3058 GET /api/v2/analysis/project-assignment \u3067\u3059\uFF08\u7BC4\u56F2\u6307\u5B9A\uFF09\u3002\n\u671F\u9593\u3092\u6307\u5B9A\u3057\u306A\u3051\u308C\u3070\u5F53\u6708\uFF08\u3053\u306E\u7AEF\u672B\u306E\u6642\u8A08\uFF09\u3067\u3059\u3002\u5BFE\u8C61\u306F\u7A3C\u50CD\u4E2D\uFF08active\uFF09\u306E\u30D7\u30ED\u30B8\u30A7\u30AF\u30C8\u3067\u3059\u3002\n--output table / text / tsv \u306F\u30D7\u30ED\u30B8\u30A7\u30AF\u30C8\u3054\u3068\u306B1\u884C\u3067\u3001\u6708\u3054\u3068\u306E\u30A2\u30B5\u30A4\u30F3\u6642\u9593\u3092 YYYY-MM \u5217\u306B\u4E26\u3079\u307E\u3059\u3002\n\u30E1\u30F3\u30D0\u30FC\u3054\u3068\u306E\u5185\u8A33\uFF08members\uFF09\u306F --output json \u304B --query \u3067\u8AAD\u3081\u307E\u3059\u3002",
|
|
30
30
|
flags:[MONTH_FLAG,FROM_FLAG,TO_FLAG,PROJECT_FILTER_FLAG],forbidden:analysisForbidden(levelGuidance("\u30D7\u30ED\u30B8\u30A7\u30AF\u30C8\u30A2\u30B5\u30A4\u30F3\u5206\u6790","\u30D7\u30ED\u30B8\u30A7\u30AF\u30C8")),async prepare(input,ctx){noArgs(input,PROJECT_ASSIGNMENT_USAGE);monthRange(input,PROJECT_ASSIGNMENT_USAGE);return resolveFilters(input,ctx)},plan(input){noArgs(input,PROJECT_ASSIGNMENT_USAGE);const range=monthRange(input,PROJECT_ASSIGNMENT_USAGE);return{method:"GET",path:`${ANALYSIS_PATH}\
|
|
31
31
|
/project-assignment`,query:{start_ym:range.from,end_ym:range.to,project_id:resolvedOrUndefined(input,"projectId")}}},plannedNotes:input=>rangeNotes(monthRange(input,PROJECT_ASSIGNMENT_USAGE)),summarize:body=>listIn(body,"projects","\u30D7\u30ED\u30B8\u30A7\u30AF\u30C8\u30A2\u30B5\u30A4\u30F3\u5206\u6790").map(row=>({project_code:row["project_code"]??null,project_name:row["project_name"]??null,...monthColumns(row,"assigned_hours",responseMonths(body)),total_assigned_hours:row["total_assigned_hour\
|
|
32
32
|
s"]??null,total_estimated_hours:row["total_estimated_hours"]??null,member_count:row["member_count"]??null,project_id:row["project_id"]??null})),raw:body=>{listIn(body,"projects","\u30D7\u30ED\u30B8\u30A7\u30AF\u30C8\u30A2\u30B5\u30A4\u30F3\u5206\u6790");return body},notes:body=>[...periodNote(body),...summaryNote(body,"\u5408\u8A08",[["project_count","\u30D7\u30ED\u30B8\u30A7\u30AF\u30C8\u6570"],["total_assigned_hours","\u30A2\u30B5\u30A4\u30F3\u6642\u9593"],["total_estimated_hours","\u3046\u3061\u898B\u8FBC\u307F"]])]};
|
|
@@ -72,11 +72,35 @@ notes:body=>[`\u5E73\u5747\u30B9\u30B3\u30A2: ${String(healthData(body,"\u5065\u
|
|
|
72
72
|
destructive:true,confirmation:"AI \u30AF\u30EC\u30B8\u30C3\u30C8\u3092\u6D88\u8CBB\u3059\u308B\u64CD\u4F5C",flags:[HEALTH_PROJECT_FLAG,HEALTH_DATE_FLAG],forbidden:HEALTH_FORBIDDEN,prepare:(input,ctx)=>healthProject(input,ctx,INSIGHTS_USAGE,i=>dateFlag(i.flags,HEALTH_DATE_FLAG.name)),plan(input){noArgs(input,INSIGHTS_USAGE);return{method:"GET",path:`${ANALYSIS_PATH}/project-health/insights`,query:{project_id:requireResolved(input,"projectId"),date:dateFlag(input.flags,HEALTH_DATE_FLAG.name)}}},plannedNotes:input=>[
|
|
73
73
|
`\u30D7\u30ED\u30B8\u30A7\u30AF\u30C8 ${input.flags.get(HEALTH_PROJECT_FLAG.name)??"\uFF08\u65E2\u5B9A\uFF09"}\uFF08ID: ${input.resolved?.["projectId"]??"-"}\uFF09\u30FB${dateFlag(input.flags,HEALTH_DATE_FLAG.name)??"\u4ECA\u65E5"} \u306E\u6240\u898B\u3092\u751F\u6210\u3057\u307E\u3059`,"\u30C6\u30CA\u30F3\u30C8\u306E AI \u30AF\u30EC\u30B8\u30C3\u30C8\u3092\u6D88\u8CBB\u3057\u307E\u3059\uFF08\u305D\u306E\u65E5\u306E\u30B9\u30B3\u30A2\u304C\u7121\u3051\u308C\u3070\u6D88\u8CBB\u3057\u307E\u305B\u3093\uFF09"],
|
|
74
74
|
summarize:body=>insightRows(body).map(row=>pick(row,INSIGHT_COLUMNS)),raw:body=>{insightRows(body);return healthData(body,"\u5065\u5168\u6027\u306E\u6240\u898B")},notes:body=>{const message=healthData(body,"\u5065\u5168\u6027\u306E\u6240\u898B")["message"];return typeof message==="string"&&message!==""?[message]:[]}}]};function healthProjects(body){return listIn({result:true,projects:healthData(body,"\u5065\u5168\u6027\u30B9\u30B3\u30A2")["projects"]},"projects","\u5065\u5168\u6027\u30B9\u30B3\u30A2")}
|
|
75
|
-
function historyRows(body){return listIn({result:true,history:healthData(body,"\u5065\u5168\u6027\u30B9\u30B3\u30A2\u306E\u63A8\u79FB")["history"]},"history","\u5065\u5168\u6027\u30B9\u30B3\u30A2\u306E\u63A8\u79FB")}function insightRows(body){return listIn({result:true,insights:healthData(body,"\u5065\u5168\u6027\u306E\u6240\u898B")["insights"]},"insights","\u5065\u5168\u6027\u306E\u6240\u898B")}var
|
|
75
|
+
function historyRows(body){return listIn({result:true,history:healthData(body,"\u5065\u5168\u6027\u30B9\u30B3\u30A2\u306E\u63A8\u79FB")["history"]},"history","\u5065\u5168\u6027\u30B9\u30B3\u30A2\u306E\u63A8\u79FB")}function insightRows(body){return listIn({result:true,insights:healthData(body,"\u5065\u5168\u6027\u306E\u6240\u898B")["insights"]},"insights","\u5065\u5168\u6027\u306E\u6240\u898B")}var PROFIT_USAGE="twp analysis profit list --fiscal-year <YYYY> [--scope project|user] [--segment <ID\
|
|
76
|
+
>]";var FISCAL_YEAR_FLAG={name:"--fiscal-year",summary:"\u4F1A\u8A08\u5E74\u5EA6\uFF08YYYY\u30FB\u5FC5\u9808\uFF09",takesValue:true,placeholder:"<YYYY>"};var SEGMENT_FLAG={name:"--segment",summary:"\u30BB\u30B0\u30E1\u30F3\u30C8\u3067\u7D5E\u308A\u8FBC\u3080\uFF08ID\uFF09",takesValue:true,placeholder:"<ID>"};var PROFIT_SCOPE_FLAG={name:"--scope",summary:"\u96C6\u8A08\u306E\u8EF8\uFF08project\uFF1D\u30D7\u30ED\u30B8\u30A7\u30AF\u30C8\u5225\u30FB\u65E2\u5B9A / user\uFF1D\u30E6\u30FC\u30B6\u30FC\u5225\u306E\u539F\u4FA1\uFF09",
|
|
77
|
+
takesValue:true,placeholder:"<project|user>"};function fiscalYear(input){const raw=input.flags.get(FISCAL_YEAR_FLAG.name);if(raw===void 0){throw new UsageError("--fiscal-year \u3092\u6307\u5B9A\u3057\u3066\u304F\u3060\u3055\u3044\uFF08\u53CE\u652F\u5206\u6790\u306F\u4F1A\u8A08\u5E74\u5EA6\u3067\u3057\u304B\u96C6\u8A08\u3067\u304D\u307E\u305B\u3093\uFF09",PROFIT_USAGE)}const value=raw.trim();if(!/^\d{4}$/.test(value)||Number(value)<2e3||Number(value)>2100){throw new UsageError(`--fiscal-year \u306F 20\
|
|
78
|
+
00\u301C2100 \u306E\u897F\u66A64\u6841\u3067\u6307\u5B9A\u3057\u3066\u304F\u3060\u3055\u3044\uFF08\u53D7\u3051\u53D6\u3063\u305F\u5024: ${raw}\uFF09`,PROFIT_USAGE)}return value}function profitScope(input){const raw=input.flags.get(PROFIT_SCOPE_FLAG.name)?.trim()??"project";if(raw!=="project"&&raw!=="user"){throw new UsageError(`--scope \u306F project \u304B user \u3067\u3059\uFF08\u53D7\u3051\u53D6\u3063\u305F\u5024: ${raw}\uFF09`,PROFIT_USAGE)}return raw}function profitRows(body){const scope=isRecord(
|
|
79
|
+
body)?body["scope"]:void 0;if(scope==="project"){return listIn(body,"projects","\u53CE\u652F\u5206\u6790").map(row=>pick(row,["project_code","project_name","customer_company_name","revenue","invoice_revenue","labor_cost","procurement_cost","total_cost","gross_profit","gross_profit_rate","gross_profit_invoice","project_id"]))}if(scope==="user"){return listIn(body,"users","\u53CE\u652F\u5206\u6790").map(row=>pick(row,["user_name","total_cost","user_id"]))}throw new ApiResponseError("\u53CE\u652F\u5206\u6790\u306E\u5FDC\u7B54\u306E scope\
|
|
80
|
+
\u304C project / user \u306E\u3069\u3061\u3089\u3067\u3082\u3042\u308A\u307E\u305B\u3093\u3002\u63A5\u7D9A\u5148\u3092\u78BA\u8A8D\u3057\u3066\u304F\u3060\u3055\u3044\u3002")}var PROFIT_FORBIDDEN=body=>analysisForbidden(levelGuidance("\u53CE\u652F\u5206\u6790","\u30D7\u30ED\u30B8\u30A7\u30AF\u30C8\u3068\u8CA9\u58F2\u7BA1\u7406\u306E\u4E21\u65B9\uFF08\u304B\u3064\u539F\u4FA1\u7BA1\u7406\u8005\uFF09"))(body);var profitResource={name:"profit",summary:"\u53CE\u652F\u5206\u6790\uFF08\u5168\u793E\u30FB\u30D7\u30ED\u30B8\u30A7\u30AF\u30C8\u5225\u306E\u58F2\u4E0A\u30FB\u539F\u4FA1\u30FB\u7C97\u5229\uFF09",
|
|
81
|
+
operations:[{name:"list",summary:"\u4F1A\u8A08\u5E74\u5EA6\u306E\u53CE\u652F\u5206\u6790\uFF08\u30D7\u30ED\u30B8\u30A7\u30AF\u30C8\u5225\u30FB\u30E6\u30FC\u30B6\u30FC\u5225\uFF09\u3092\u8868\u793A\u3059\u308B",usage:PROFIT_USAGE,description:"\u753B\u9762\u306E\u300C\u53CE\u652F\u5206\u6790\u300D\u3068\u540C\u3058 GET /api/v2/analysis/profit \u3067\u3059\u3002\u671F\u9593\u306F\u4F1A\u8A08\u5E74\u5EA6\uFF08--fiscal-year\u30FB\u5FC5\u9808\uFF09\u3060\u3051\u3067\u6307\u5B9A\u3057\u307E\u3059\u3002\n--scope project\uFF08\u65E2\u5B9A\uFF09\u306F\u30D7\u30ED\u30B8\u30A7\u30AF\u30C8\u3054\u3068\u306E\u58F2\u4E0A\u30FB\u539F\u4FA1\u30FB\u7C97\u5229\u3001--scope user \u306F\u30E6\u30FC\u30B6\u30FC\u3054\u3068\u306E\u539F\u4FA1\u3067\u3059\u3002\n\u58F2\u4E0A\u306F\u5168\u78BA\u5EA6\u3067\u96C6\u8A08\u3055\u308C\u307E\u3059\uFF08\u30B5\u30FC\u30D0\u306E\u65E2\u5B9A\u3002\u753B\u9762\u3067\u78BA\u5EA6\u3092\u7D5E\u3063\u3066\u3044\u308B\u3068\u305D\u306E\u5206\u3060\u3051\u6570\u5024\u304C\u9055\u3044\u307E\u3059\uFF09\u3002\n\u5024\u306F\u30B5\u30FC\u30D0\u306E\u4E8B\u524D\u8A08\u7B97\u306E\u307E\u307E\u3067\u3001CLI \u306F\u518D\u8A08\u7B97\u3057\u307E\u305B\u3093\uFF08\u518D\u8A08\u7B97\u4E2D\u306A\u3089 notes \u3067\u8A00\u3044\u307E\u3059\uFF09\u3002",
|
|
82
|
+
flags:[FISCAL_YEAR_FLAG,PROFIT_SCOPE_FLAG,SEGMENT_FLAG],forbidden:PROFIT_FORBIDDEN,plan(input){noArgs(input,PROFIT_USAGE);return{method:"GET",path:`${ANALYSIS_PATH}/profit`,query:{scope:profitScope(input),fiscal_year:fiscalYear(input),segment_id:input.flags.get(SEGMENT_FLAG.name)?.trim()}}},summarize:body=>profitRows(body),raw:body=>{profitRows(body);return body},notes:body=>{const scope=isRecord(body)?body["scope"]:void 0;const freshness=isRecord(body)?recordOf(body["data_freshness"]):{};return[
|
|
83
|
+
...periodNote(body),...scope==="user"?summaryNote(body,"\u5408\u8A08",[["total_cost","\u539F\u4FA1"],["user_count","\u4EBA\u6570"]]):summaryNote(body,"\u5408\u8A08",[["total_revenue","\u58F2\u4E0A"],["total_cost","\u539F\u4FA1"],["gross_profit","\u7C97\u5229"],["gross_profit_rate","\u7C97\u5229\u7387%"],["project_count","\u30D7\u30ED\u30B8\u30A7\u30AF\u30C8\u6570"]]),...freshness["has_pending_recalculations"]===true?["\u518D\u8A08\u7B97\u5F85\u3061\u306E\u30D7\u30ED\u30B8\u30A7\u30AF\u30C8\u304C\u3042\u308A\u307E\u3059\uFF08\u6570\u5024\u306F\u6700\u65B0\u3067\u306A\u3044\u53EF\u80FD\u6027\u304C\u3042\u308A\u307E\u3059\uFF09"]:
|
|
84
|
+
[]]}}]};var KPI_DEPARTMENT_FLAG={name:"--department",summary:"\u90E8\u7F72\uFF08\u540D\u524D\u30FB\u30B3\u30FC\u30C9\u30FBID\u30FB\u5FC5\u9808\uFF09",takesValue:true,placeholder:"<\u90E8\u7F72>"};var KPI_MONTH_FLAG={name:"--month",summary:"\u5BFE\u8C61\u306E\u6708\uFF08YYYY-MM\uFF09\u3002\u7121\u3051\u308C\u3070\u5F53\u6708",takesValue:true,placeholder:"<YYYY-MM>"};var KPI_USER_FLAG={name:"--user",summary:"\u30E6\u30FC\u30B6\u30FC\u3067\u7D5E\u308A\u8FBC\u3080\uFF08\u6C0F\u540D\u30FB\u30E1\u30FC\u30EB\u30FBID\u30FBme\u3002CLI \u304C\u884C\u3092\u7D5E\u308A\u307E\u3059\uFF09",
|
|
85
|
+
takesValue:true,placeholder:"<\u30E6\u30FC\u30B6\u30FC>"};var KPI_LIST_USAGE="twp analysis staff-kpi list --department <\u90E8\u7F72> [--month <YYYY-MM>] [--user <\u30E6\u30FC\u30B6\u30FC>]";var KPI_ESTIMATES_USAGE="twp analysis staff-kpi estimates --department <\u90E8\u7F72> [--month <YYYY-MM>]";var KPI_SETTINGS_USAGE="twp analysis staff-kpi settings --department <\u90E8\u7F72>";var KPI_FORBIDDEN=body=>{const message=isRecord(body)?body["message"]:void 0;if(typeof message==="string"&&message.includes(
|
|
86
|
+
"\u3053\u306E\u90E8\u7F72")){return"\u3053\u306E\u90E8\u7F72\u306E\u4EBA\u6750KPI\u3092\u95B2\u89A7\u3059\u308B\u7BC4\u56F2\u306B\u542B\u307E\u308C\u3066\u3044\u307E\u305B\u3093\u3002\u95B2\u89A7\u3067\u304D\u308B\u90E8\u7F72\u306F\u753B\u9762\u306E\u4EBA\u6750KPI\u306E\u90E8\u7F72\u9078\u629E\u3067\u78BA\u8A8D\u3067\u304D\u307E\u3059\u3002"}return analysisForbidden(levelGuidance("\u4EBA\u6750KPI","\u4EBA\u6750KPI\u306E\u5BFE\u8C61\u6A5F\u80FD"))(body)};function kpiMonth(input){const month=monthFlag(
|
|
87
|
+
input.flags,KPI_MONTH_FLAG.name);if(month!==void 0)return{from:month,to:month,defaulted:false};const now=currentMonth();return{from:now,to:now,defaulted:true}}function kpiDepartment(input,usage){const raw=input.flags.get(KPI_DEPARTMENT_FLAG.name);if(raw===void 0||raw.trim()===""){throw new UsageError("--department \u3092\u6307\u5B9A\u3057\u3066\u304F\u3060\u3055\u3044\uFF08\u4EBA\u6750KPI\u306F\u90E8\u7F72\u3054\u3068\u306B\u96C6\u8A08\u3055\u308C\u307E\u3059\uFF09",usage)}return raw}async function resolveKpi(input,ctx,usage,withUser){
|
|
88
|
+
noArgs(input,usage);const department=kpiDepartment(input,usage);const resolved={departmentId:(await ctx.resolver.department(department,KPI_DEPARTMENT_FLAG.name)).id};const user=withUser?input.flags.get(KPI_USER_FLAG.name):void 0;if(user!==void 0)resolved["userId"]=(await ctx.resolver.user(user,KPI_USER_FLAG.name)).id;return withResolved(input,resolved)}function kpiRows(body,label){const data=dataOf(body,label);if(!Array.isArray(data))throw new ApiResponseError(`${label}\u306E\u5FDC\u7B54\u306E data \u304C\u914D\u5217\u3067\u306F\u3042\u308A\u307E\u305B\u3093\u3002\u63A5\u7D9A\u5148\u3092\u78BA\
|
|
89
|
+
\u8A8D\u3057\u3066\u304F\u3060\u3055\u3044\u3002`);return data.map(recordOf)}function stringKeys(value){return Array.isArray(value)?value.filter(k=>typeof k==="string"):[]}function staffKpiRows(body){const rows=kpiRows(body,"\u4EBA\u6750KPI");const meta=isRecord(body)?recordOf(body["meta"]):{};const columns=[...new Set([...stringKeys(meta["item_keys"]),...stringKeys(meta["action_item_keys"])])];for(const row of rows){for(const key of Object.keys(recordOf(row["actual_kpi_values"])))if(!columns.includes(
|
|
90
|
+
key))columns.push(key)}return rows.map(row=>{const values=recordOf(row["actual_kpi_values"]);const out={user_id:row["user_id"]??null};for(const key of columns)out[key]=values[key]??null;return out})}function incompleteReasonText(reason){if(!isRecord(reason))return String(reason);const label=typeof reason["label"]==="string"?reason["label"]:String(reason["reason"]??"?");return reason["count"]===void 0?label:`${label} ${String(reason["count"])}${typeof reason["unit"]==="string"?reason["unit"]:""}`}
|
|
91
|
+
function narrowKpiUser(body,userId){if(userId===void 0)return body;const rows=kpiRows(body,"\u4EBA\u6750KPI");return{...body,data:rows.filter(row=>row["user_id"]===userId)}}var staffKpiResource={name:"staff-kpi",summary:"\u4EBA\u6750KPI\uFF08\u62C5\u5F53\u8005\u3054\u3068\u306E\u5B9F\u7E3E\u30FB\u96C6\u8A08\u5BFE\u8C61\u306E\u898B\u7A4D\u30FB\u8A2D\u5B9A\uFF09",operations:[{name:"list",summary:"\u90E8\u7F72\u306E\u4EBA\u6750KPI\uFF08\u62C5\u5F53\u8005\u3054\u3068\u306E\u5B9F\u7E3E\u5024\uFF09\u3092\u8868\u793A\u3059\u308B",
|
|
92
|
+
usage:KPI_LIST_USAGE,description:"\u753B\u9762\u306E\u300C\u4EBA\u6750KPI\u300D\u3068\u540C\u3058 GET /api/v2/analysis/staff-kpi \u3067\u3059\u3002--department \u306F\u5FC5\u9808\u3001--month \u3092\u7701\u304F\u3068\u5F53\u6708\uFF08\u3053\u306E\u7AEF\u672B\u306E\u6642\u8A08\uFF09\u3067\u3059\u3002\n\u5148\u306E\u6708\u306F6\u304B\u6708\u5148\u307E\u3067\u898B\u8FBC\u307F\uFF08meta.source=forecast\uFF09\u3067\u30017\u304B\u6708\u4EE5\u4E0A\u5148\u306F\u30B5\u30FC\u30D0\u304C\u65AD\u308A\u307E\u3059\u3002--user \u306F\u30B5\u30FC\u30D0\u306B\u7D5E\u308A\u8FBC\u307F\u306E\u53E3\u304C\u7121\u3044\u305F\u3081\u3001CLI \u304C\u5FDC\u7B54\u306E\u884C\u3092\u7D5E\u308A\u307E\u3059\u3002\n--output table / text / tsv \u306F\u62C5\u5F53\u8005\u3054\u3068\u306B1\u884C\u3067\u3001\u5B9F\u7E3E\u5024\uFF08actual_kpi_values\uFF09\u3092\u9805\u76EE\u30AD\u30FC\u306E\u5217\u306B\u4E26\u3079\u307E\u3059\u3002\n\u76EE\u6A19\u5024\u30FB\u9664\u5916\u4EF6\u6570\uFF08excluded\uFF09\u30FB\u96C6\u8A08\u306E\u6CE8\u610F\uFF08meta.incomplete_reasons\uFF09\u306F --output json \u304B --query \u3067\u8AAD\u3081\u307E\u3059\u3002\n\u5FDC\u7B54\u306B\u30E6\u30FC\u30B6\u30FC\u540D\u306F\u542B\u307E\u308C\u307E\u305B\u3093\uFF08user_id \u306F twp user list \u306E id \u3068\u540C\u3058\u5024\u3067\u3059\uFF09\u3002",
|
|
93
|
+
flags:[KPI_DEPARTMENT_FLAG,KPI_MONTH_FLAG,KPI_USER_FLAG],forbidden:KPI_FORBIDDEN,prepare:(input,ctx)=>resolveKpi(input,ctx,KPI_LIST_USAGE,true),plan:input=>({method:"GET",path:`${ANALYSIS_PATH}/staff-kpi`,query:{year_month:kpiMonth(input).from,department_id:requireResolved(input,"departmentId")}}),plannedNotes:input=>[...kpiMonthNotes(kpiMonth(input)),...input.resolved?.["userId"]!==void 0?[`--user \u306E\u884C\u3060\u3051\u306B CLI \u304C\u7D5E\u308A\u307E\u3059\uFF08user_id: ${input.resolved["\
|
|
94
|
+
userId"]}\uFF09`]:[]],narrow:(body,input)=>narrowKpiUser(body,input.resolved?.["userId"]),summarize:body=>staffKpiRows(body),raw:body=>{kpiRows(body,"\u4EBA\u6750KPI");return body},notes:body=>{const meta=isRecord(body)?recordOf(body["meta"]):{};const reasons=Array.isArray(meta["incomplete_reasons"])?meta["incomplete_reasons"].map(incompleteReasonText):[];return[`\u5BFE\u8C61\u6708: ${String(meta["year_month"]??"-")} / \u96C6\u8A08\u5143: ${String(meta["source"]??"-")}`,...meta["incomplete"]===true?
|
|
95
|
+
[`\u96C6\u8A08\u306B\u6B20\u3051\u304C\u3042\u308A\u307E\u3059: ${reasons.length>0?reasons.join(" / "):"\uFF08\u7406\u7531\u306F\u30B5\u30FC\u30D0\u304C\u8FD4\u3057\u3066\u3044\u307E\u305B\u3093\uFF09"}`]:[]]}},{name:"estimates",summary:"\u4EBA\u6750KPI\u306E\u96C6\u8A08\u5BFE\u8C61\u306B\u306A\u3063\u305F\u898B\u7A4D\u3092\u8868\u793A\u3059\u308B",usage:KPI_ESTIMATES_USAGE,description:"GET /api/v2/analysis/staff-kpi/estimates\uFF08\u753B\u9762\u306E\u300C\u5BFE\u8C61\u6848\u4EF6\u3092\u8868\u793A\u300D\uFF09\u3002--department \u306F\u5FC5\u9808\u3001--month \u3092\u7701\u304F\u3068\u5F53\u6708\u3067\u3059\u3002\n1\u4EF6\u305A\u3064\u3001\u30B5\u30FC\u30D0\u304C\u8FD4\u3057\u305F\u9805\u76EE\u306E\u307E\u307E\u4E26\u3079\u307E\
|
|
96
|
+
\u3059\u3002",flags:[KPI_DEPARTMENT_FLAG,KPI_MONTH_FLAG],forbidden:KPI_FORBIDDEN,prepare:(input,ctx)=>resolveKpi(input,ctx,KPI_ESTIMATES_USAGE,false),plan:input=>({method:"GET",path:`${ANALYSIS_PATH}/staff-kpi/estimates`,query:{year_month:kpiMonth(input).from,department_id:requireResolved(input,"departmentId")}}),plannedNotes:input=>kpiMonthNotes(kpiMonth(input)),summarize:body=>kpiRows(body,"\u4EBA\u6750KPI\u306E\u5BFE\u8C61\u898B\u7A4D"),raw:body=>kpiRows(body,"\u4EBA\u6750KPI\u306E\u5BFE\u8C61\u898B\u7A4D"),
|
|
97
|
+
notes:body=>{const meta=isRecord(body)?recordOf(body["meta"]):{};return[`\u5BFE\u8C61\u6708: ${String(meta["year_month"]??"-")} / ${String(meta["count"]??"-")} \u4EF6`]}},{name:"settings",summary:"\u90E8\u7F72\u306E\u4EBA\u6750KPI\u306E\u8A2D\u5B9A\uFF08\u500D\u7387\u30FB\u65E5\u5831\u306E\u63D0\u51FA\u671F\u9650\u306A\u3069\uFF09\u3092\u8868\u793A\u3059\u308B",usage:KPI_SETTINGS_USAGE,description:"GET /api/v2/analysis/staff-kpi/settings\u3002--department \u306F\u5FC5\u9808\u3067\u3059\u3002\u8A2D\u5B9A\u30FB\u76EE\u6A19\u306E\u5909\u66F4\u306F\u753B\u9762\u304B\u3089\u884C\u3063\u3066\u304F\u3060\u3055\u3044\u3002\n\u9805\u76EE\u30AD\u30FC\u306E\u4E00\u89A7\uFF08meta\uFF09\u306F --\
|
|
98
|
+
output json \u304B --query \u3067\u8AAD\u3081\u307E\u3059\u3002",flags:[KPI_DEPARTMENT_FLAG],forbidden:KPI_FORBIDDEN,prepare:(input,ctx)=>resolveKpi(input,ctx,KPI_SETTINGS_USAGE,false),plan:input=>({method:"GET",path:`${ANALYSIS_PATH}/staff-kpi/settings`,query:{department_id:requireResolved(input,"departmentId")}}),summarize:body=>kpiSettings(body),raw:body=>{kpiSettings(body);return body}}]};function kpiSettings(body){const data=dataOf(body,"\u4EBA\u6750KPI\u306E\u8A2D\u5B9A");if(!isRecord(data))
|
|
99
|
+
throw new ApiResponseError("\u4EBA\u6750KPI\u306E\u8A2D\u5B9A\u306E\u5FDC\u7B54\u306E data \u304C\u30AA\u30D6\u30B8\u30A7\u30AF\u30C8\u3067\u306F\u3042\u308A\u307E\u305B\u3093\u3002\u63A5\u7D9A\u5148\u3092\u78BA\u8A8D\u3057\u3066\u304F\u3060\u3055\u3044\u3002");return data}var analysisDomain={name:"analysis",summary:"\u5206\u6790\uFF08\u7A3C\u50CD\u5206\u6790\u30FB\u30A2\u30B5\u30A4\u30F3\u5206\u6790\u30FB\u30AD\u30E3\u30D1\u30B7\u30C6\u30A3\u30FB\u8CA0\u8377\u30FB\u30D7\u30ED\u30B8\u30A7\u30AF\u30C8\u5065\u5168\u6027\u30FB\u53CE\u652F\u5206\u6790\u30FB\u4EBA\u6750KPI\uFF09\u306E\u8AAD\u307F\u53D6\u308A",
|
|
76
100
|
operations:[],subresources:[{name:"operating-hours",summary:"\u7A3C\u50CD\u5206\u6790\uFF08\u30D7\u30ED\u30B8\u30A7\u30AF\u30C8\u5225\u30FB\u30E6\u30FC\u30B6\u30FC\u5225\u306E\u7A3C\u50CD\u6642\u9593\uFF09",operations:[operatingHoursList]},{name:"project-assignment",summary:"\u30D7\u30ED\u30B8\u30A7\u30AF\u30C8\u30A2\u30B5\u30A4\u30F3\uFF08\u30D7\u30ED\u30B8\u30A7\u30AF\u30C8\u3054\u3068\u306E\u30A2\u30B5\u30A4\u30F3\u6642\u9593\uFF09",operations:[projectAssignmentList]},{name:"staff-assignment",
|
|
77
|
-
summary:"\u4EBA\u6750\u5225\u30A2\u30B5\u30A4\u30F3\uFF08\u30E6\u30FC\u30B6\u30FC\u3054\u3068\u306E\u30A2\u30B5\u30A4\u30F3\u6642\u9593\u3068\u7A3C\u50CD\u7387\uFF09",operations:[staffAssignmentList]},capacityResource,workloadResource,projectHealthResource]};var MANHOUR_FROM_FLAG={name:"--from",summary:"\u958B\u59CB\u65E5\uFF08YYYY-MM-DD\uFF09\u3002\u7121\u3051\u308C\u3070\u4ECA\u6708\u306E\u521D\u65E5\uFF08\u30B5\u30FC\u30D0\u304C\u6C7A\u3081\u307E\u3059\uFF09",takesValue:true,
|
|
78
|
-
|
|
79
|
-
\uFF09\u3088\u308A\u5F8C\u306B\u306A\u3063\u3066\u3044\u307E\u3059`,usage)}return{start_date:start,end_date:end}}var MANHOUR_DESCRIPTION="\u671F\u9593\u3092\u7701\u304F\u3068\u4ECA\u6708\u3067\u3059\uFF08\u30C6\u30CA\u30F3\u30C8\u306E\u696D\u52D9\u65E5\u306E\u533A\u5207\u308A\u3067\u30B5\u30FC\u30D0\u304C\u6C7A\u3081\u307E\u3059\uFF09\u3002\n--output table / text / tsv \u306F\u30E6\u30FC\u30B6\u30FC\u3054\u3068\u306E\u5408\u8A08\uFF08\u5206\u3068 h:mm\uFF09\u3067\u3001\u65E5\u5225\uFF08by_date\uFF09\u306F --output json \u304B --query \u3067\u8AAD\u3081\u307E\u3059\u3002\n\u5FDC\u7B54\u306B\u30E6\u30FC\u30B6\u30FC\u540D\u306F\u542B\u307E\u308C\u307E\u305B\u3093\uFF08user_id \u306F twp project members \u306E user_id \u3068\u540C\u3058\u5024\u3067\u3059\uFF09\u3002";
|
|
101
|
+
summary:"\u4EBA\u6750\u5225\u30A2\u30B5\u30A4\u30F3\uFF08\u30E6\u30FC\u30B6\u30FC\u3054\u3068\u306E\u30A2\u30B5\u30A4\u30F3\u6642\u9593\u3068\u7A3C\u50CD\u7387\uFF09",operations:[staffAssignmentList]},capacityResource,workloadResource,projectHealthResource,profitResource,staffKpiResource]};var MANHOUR_FROM_FLAG={name:"--from",summary:"\u958B\u59CB\u65E5\uFF08YYYY-MM-DD\uFF09\u3002\u7121\u3051\u308C\u3070\u4ECA\u6708\u306E\u521D\u65E5\uFF08\u30B5\u30FC\u30D0\u304C\u6C7A\u3081\u307E\u3059\uFF09",takesValue:true,
|
|
102
|
+
placeholder:"<YYYY-MM-DD>"};var MANHOUR_TO_FLAG={name:"--to",summary:"\u7D42\u4E86\u65E5\uFF08YYYY-MM-DD\uFF09\u3002\u7121\u3051\u308C\u3070\u4ECA\u6708\u306E\u672B\u65E5\uFF08\u30B5\u30FC\u30D0\u304C\u6C7A\u3081\u307E\u3059\uFF09",takesValue:true,placeholder:"<YYYY-MM-DD>"};function manhourQuery(input,usage){const start=dateFlag(input.flags,MANHOUR_FROM_FLAG.name);const end=dateFlag(input.flags,MANHOUR_TO_FLAG.name);if(start!==void 0&&end!==void 0&&start>end){throw new UsageError(`--from\uFF08${start}\
|
|
103
|
+
\uFF09\u304C --to\uFF08${end}\uFF09\u3088\u308A\u5F8C\u306B\u306A\u3063\u3066\u3044\u307E\u3059`,usage)}return{start_date:start,end_date:end}}var MANHOUR_DESCRIPTION="\u671F\u9593\u3092\u7701\u304F\u3068\u4ECA\u6708\u3067\u3059\uFF08\u30C6\u30CA\u30F3\u30C8\u306E\u696D\u52D9\u65E5\u306E\u533A\u5207\u308A\u3067\u30B5\u30FC\u30D0\u304C\u6C7A\u3081\u307E\u3059\uFF09\u3002\n--output table / text / tsv \u306F\u30E6\u30FC\u30B6\u30FC\u3054\u3068\u306E\u5408\u8A08\uFF08\u5206\u3068 h:mm\uFF09\u3067\u3001\u65E5\u5225\uFF08by_date\uFF09\u306F --output json \u304B --query \u3067\u8AAD\u3081\u307E\u3059\u3002\n\u5FDC\u7B54\u306B\u30E6\u30FC\u30B6\u30FC\u540D\u306F\u542B\u307E\u308C\u307E\u305B\u3093\uFF08user_id \u306F twp project members \u306E user_id \u3068\u540C\u3058\u5024\u3067\u3059\uFF09\u3002";
|
|
80
104
|
function manhourRows(body,label){return listIn(body,"by_user",label).map(row=>({user_id:row["user_id"]??null,total_minutes:row["total_minutes"]??null,total:hoursMinutes(row["total_minutes"])??null}))}function manhourNotes(body){if(!isRecord(body))return[];return[`\u671F\u9593: ${String(body["start_date"]??"-")} \u301C ${String(body["end_date"]??"-")} / \u5408\u8A08 ${String(hoursMinutes(body["total_minutes"])??"-")}`]}function workloadDistributionRows(body){return listIn(body,"members","\u30E1\u30F3\u30D0\u30FC\u5225\u306E\u8CA0\u8377").
|
|
81
105
|
map(row=>({user_name:row["user_name"]??(row["user_id"]===null?"\uFF08\u672A\u5272\u308A\u5F53\u3066\uFF09":null),total_tasks:row["total_tasks"]??null,estimated_hours:row["estimated_hours"]??null,by_status:Array.isArray(row["by_status"])?row["by_status"].map(recordOf).map(s=>`${String(s["status_name"]??s["status_id"]??"?")}:${String(s["count"]??"?")}`).join(" "):null,user_id:row["user_id"]??null}))}function workloadDistributionNotes(body){if(!isRecord(body))return[];return[`\u672A\u5B8C\u4E86 ${String(
|
|
82
|
-
body["total_active_tasks"]??"-")} \u4EF6 / \u5168\u30BF\u30B9\u30AF ${String(body["total_tasks"]??"-")} \u4EF6`]}export{analysisForbidden,currentMonth,monthsBetween,analysisDomain,MANHOUR_FROM_FLAG,MANHOUR_TO_FLAG,manhourQuery,MANHOUR_DESCRIPTION,manhourRows,manhourNotes,workloadDistributionRows,workloadDistributionNotes};
|
|
106
|
+
body["total_active_tasks"]??"-")} \u4EF6 / \u5168\u30BF\u30B9\u30AF ${String(body["total_tasks"]??"-")} \u4EF6`]}export{analysisForbidden,FROM_FLAG,TO_FLAG,MONTH_FLAG,currentMonth,monthRange,rangeNotes,noArgs,listIn,dataOf,recordOf,monthsBetween,profitRows,staffKpiRows,analysisDomain,MANHOUR_FROM_FLAG,MANHOUR_TO_FLAG,manhourQuery,MANHOUR_DESCRIPTION,manhourRows,manhourNotes,workloadDistributionRows,workloadDistributionNotes};
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import { createRequire as __twpCreateRequire } from 'node:module';
|
|
2
2
|
const require = __twpCreateRequire(import.meta.url);
|
|
3
|
-
import{CUSTOMER_FLAG,CUSTOMER_LICENSE,childForbidden,levelForbidden,prepareCustomerFlag}from"./chunk-
|
|
4
|
-
|
|
3
|
+
import{CUSTOMER_FLAG,CUSTOMER_LICENSE,childForbidden,levelForbidden,prepareCustomerFlag}from"./chunk-IRHKFHJZ.js";import{inspectLocalFile}from"./chunk-4S7SNE2M.js";import{createFlags,fieldBody,hasAnyField,updateFlags}from"./chunk-NK53AFVE.js";import{booleanText}from"./chunk-OTIR4GES.js";import{CUSTOMERS_PATH,isExactNumericId}from"./chunk-Q2KIETMB.js";import{isSafePathSegment}from"./chunk-GMBJTG6A.js";import{ApiError}from"./chunk-IF2K4PM5.js";import{checkUploadQuota}from"./chunk-V64CGX7V.js";
|
|
4
|
+
import{NotLoggedInError,SessionExpiredError}from"./chunk-XNLIEUAW.js";import{nonEmpty}from"./chunk-MI6HVYR2.js";import{requireResolved,withResolved}from"./chunk-PS5QFKHB.js";import{acknowledgement,isRecord,pick}from"./chunk-3ZRMMBP5.js";import{ApiResponseError,UsageError}from"./chunk-VFPY2A23.js";import fs from"fs";import path from"path";var CONTRACT_TYPES=["basic_contract","nda","other"];var CONTRACT_TYPE_HELP="basic_contract\uFF1D\u57FA\u672C\u5951\u7D04\u66F8 / nda\uFF1D\u6A5F\u5BC6\u4FDD\u6301\u5951\u7D04\u66F8 / other\uFF1D\u305D\u306E\u4ED6\u5951\u7D04\u66F8\u985E";var FILE_NAME_MAX_CHARS=255;var PDF_MAGIC="%PDF-";var CONTRACT_FIELDS=[{kind:"text",flag:"--name",key:"document_name",label:"\u66F8\u985E\u540D",maxChars:255,summary:"\u66F8\u985E\u540D\uFF08create \u3067\u306F\u5FC5\u9808\uFF09"},{kind:"enum",flag:"--type",key:"\
|
|
5
5
|
document_type",values:CONTRACT_TYPES,summary:`\u66F8\u985E\u7A2E\u5225\uFF08${CONTRACT_TYPE_HELP}\u30FBcreate \u3067\u306F\u5FC5\u9808\uFF09`}];var CONTRACT_COLUMNS=["document_id","company_id","document_type","document_name","current_version","updated_by_name","updated_at"];var VERSION_COLUMNS=["version_number","file_name","file_size","is_current","created_by_name","created_at"];var CASE_COLUMNS=["document_id","document_type_label","document_name","estimate_no","estimate_title","project_name","c\
|
|
6
6
|
urrent_version","updated_at"];var FILE_FLAG={name:"--file",summary:"\u30A2\u30C3\u30D7\u30ED\u30FC\u30C9\u3059\u308B PDF \u30D5\u30A1\u30A4\u30EB\u306E\u30D1\u30B9\uFF08\u5FC5\u9808\uFF09",takesValue:true,placeholder:"<\u30D1\u30B9.pdf>"};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={
|
|
7
7
|
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",takesValue:false};var REV_FLAG={name:"--rev",summary:"\u53D6\u308A\u51FA\u3059\u7248\u306E\u756A\u53F7\uFF08\u7701\u7565\u6642\u306F\u73FE\u884C\u7248\u3002get \u306E versions \u306E version_number\uFF09",takesValue:true,placeholder:"<\u7248\u756A\u53F7>"};var CONTRACT_REF_HELP="--customer\uFF08\u9867\u5BA2\uFF09\u304C\u5FC5\u9808\u3067\u3059\u3002<\u66F8\u985EID>\
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import { createRequire as __twpCreateRequire } from 'node:module';
|
|
2
2
|
const require = __twpCreateRequire(import.meta.url);
|
|
3
|
-
import{readCsvFileText}from"./chunk-
|
|
4
|
-
STABLE_PAGE_ORDER,nonEmpty,pageNumberPaging,pageNumberQuery,pageRangeNotes}from"./chunk-
|
|
3
|
+
import{readCsvFileText}from"./chunk-QLENN5DD.js";import{featureLicenseGuidance,invoiceFilters}from"./chunk-CF3ZZKCZ.js";import{boundedText,isoDate}from"./chunk-OTIR4GES.js";import{readBody}from"./chunk-6LSQCOCJ.js";import{SALES_DEPOSITS_PATH,isExactNumericId,resolveNamed}from"./chunk-Q2KIETMB.js";import{repeatedValues}from"./chunk-7UB4I3JF.js";import{ApiError}from"./chunk-IF2K4PM5.js";import{LIST_PAGING_HELP,PAGE_NUMBER_LIST_FLAGS,PAGE_NUMBER_PAGING_HELP,
|
|
4
|
+
STABLE_PAGE_ORDER,nonEmpty,pageNumberPaging,pageNumberQuery,pageRangeNotes}from"./chunk-MI6HVYR2.js";import{requireResolved,withResolved}from"./chunk-PS5QFKHB.js";import{acknowledgement,isRecord,pick}from"./chunk-3ZRMMBP5.js";import{ApiResponseError,UsageError}from"./chunk-VFPY2A23.js";var PATH=SALES_DEPOSITS_PATH;function salesAdminForbidden(what){return body=>body?.error==="permission_denied"?featureLicenseGuidance("\u8CA9\u58F2\u7BA1\u7406"):`${what}\u306B\u306F\u8CA9\u58F2\u7BA1\u7406\u306E\u6A29\u9650\u304C\u300C\u7BA1\u7406\u8005\u300D\u3067\u3042\u308B\u3053\u3068\u304C\u8981\u308A\u307E\u3059\u3002\u30C6\u30CA\u30F3\u30C8\u7BA1\u7406\u8005\u306B\u78BA\u8A8D\u3057\u3066\u304F\u3060\u3055\u3044\u3002`}var FORBIDDEN=salesAdminForbidden("\u5165\u91D1");var ALLOCATION_STATUSES={
|
|
5
5
|
allocated:"\u5F15\u5F53\u6E08",shortage:"\u672A\u5165\u91D1\u6709",excess:"\u5165\u91D1\u8D85\u904E\u6709",transfer_fee_resolved:"\u624B\u6570\u6599\u51E6\u7406\u6E08"};var EXCESS_REASONS={transfer_fee:"\u632F\u8FBC\u624B\u6570\u6599",agency_fee:"\u4EE3\u884C\u624B\u6570\u6599\uFF08\u53E3\u5EA7\u632F\u66FF \u57FA\u672C\u5229\u7528\u6599\uFF09",partial:"\u4E00\u90E8\u5165\u91D1",offset:"\u76F8\u6BBA",overpayment:"\u904E\u5165\u91D1",other:"\u305D\u306E\u4ED6"};var EXCESS_TAX_CATEGORIES={taxable_purchase_10:"\
|
|
6
6
|
\u8AB2\u7A0E\u4ED5\u5165 10%",not_applicable:"\u5BFE\u8C61\u5916"};var BULK_MAX_ROWS=100;var PLAN_MAX_ITEMS=50;var PLAN_MAX_ALLOCATIONS=100;var FILE_MAX_BYTES=1024*1024;var EXCESS_NOTE_MAX_CHARS=255;var PLAN_MEMO_MAX_CHARS=1e3;var CONTENT_MAX_CHARS=1e6;var LIST_COLUMNS=["id","deposit_date","company_name","payee_name","deposit_amount","allocated_amount","unallocated_amount","allocation_status"];var GET_COLUMNS=[...LIST_COLUMNS,"memo","excess_reason","excess_amount","excess_note","excess_tax_categ\
|
|
7
7
|
ory","excess_tax_amount"];var ALLOCATION_COLUMNS=["id","invoice_id","invoice_no","invoice_title","invoice_date","allocated_amount","invoice_remaining_amount"];function labelsHelp(table){return Object.entries(table).map(([code,name])=>`${code}\uFF08${name}\uFF09`).join(" / ")}function refsOf(table){return Object.entries(table).map(([code,name])=>({id:code,name,code}))}function usageOf(op){return`twp deposit ${op} help`}function yen(value){return typeof value==="number"?`${value.toLocaleString("ja\
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import { createRequire as __twpCreateRequire } from 'node:module';
|
|
2
2
|
const require = __twpCreateRequire(import.meta.url);
|
|
3
|
-
import{UsageError}from"./chunk-
|
|
3
|
+
import{UsageError}from"./chunk-VFPY2A23.js";var MONTH_PATTERN=/^(\d{4})-(\d{2})$/;var DATE_PATTERN=/^(\d{4})-(\d{2})-(\d{2})$/;function monthFlag(flags,name="--month"){const raw=flags.get(name);if(raw===void 0)return void 0;const value=raw.trim();const match=MONTH_PATTERN.exec(value);const month=match===null?0:Number(match[2]);if(match===null||month<1||month>12){throw new UsageError(`${name} \u306F YYYY-MM \u5F62\u5F0F\u306E\u5E74\u6708\u3067\u6307\u5B9A\u3057\u3066\u304F\u3060\u3055\u3044\uFF08\u53D7\u3051\u53D6\u3063\u305F\u5024: ${raw}\
|
|
4
4
|
\uFF09`,`\u4F8B: ${name} 2026-08`)}return value}function dateFlag(flags,name="--date"){const raw=flags.get(name);if(raw===void 0)return void 0;const value=raw.trim();const match=DATE_PATTERN.exec(value);if(match===null||!isCalendarDate(Number(match[1]),Number(match[2]),Number(match[3]))){throw new UsageError(`${name} \u306F\u5B9F\u5728\u3059\u308B\u65E5\u4ED8\u3092 YYYY-MM-DD \u5F62\u5F0F\u3067\u6307\u5B9A\u3057\u3066\u304F\u3060\u3055\u3044\uFF08\u53D7\u3051\u53D6\u3063\u305F\u5024: ${raw}\uFF09`,
|
|
5
5
|
`\u4F8B: ${name} 2026-08-31`)}return value}function isCalendarDate(year,month,day){if(month<1||month>12||day<1)return false;const date=new Date(Date.UTC(year,month-1,day));return date.getUTCFullYear()===year&&date.getUTCMonth()===month-1&&date.getUTCDate()===day}export{monthFlag,dateFlag};
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import { createRequire as __twpCreateRequire } from 'node:module';
|
|
2
2
|
const require = __twpCreateRequire(import.meta.url);
|
|
3
|
-
import{featureLicenseGuidance}from"./chunk-
|
|
3
|
+
import{featureLicenseGuidance}from"./chunk-CF3ZZKCZ.js";import{isExactNumericId}from"./chunk-Q2KIETMB.js";import{nonEmpty}from"./chunk-MI6HVYR2.js";import{UsageError}from"./chunk-VFPY2A23.js";var PDF_PATH="/api/v2/sales/pdf";var FEATURE_DENIED="\u3053\u306E\u6A5F\u80FD\u306B\u30A2\u30AF\u30BB\u30B9\u3059\u308B\u6A29\u9650\u304C\u3042\u308A\u307E\u305B\u3093\u3002";function salesFeatureDenied(body){return body?.error==="permission_denied"||body?.error==="forbidden"&&body.error_description===FEATURE_DENIED}function pdfForbidden(body){if(salesFeatureDenied(body))return featureLicenseGuidance("\u8CA9\u58F2\u7BA1\u7406");const reason=body?.error;if(typeof reason==="string"&&reason.endsWith(
|
|
4
4
|
"\u6A29\u9650\u304C\u3042\u308A\u307E\u305B\u3093")){return`${reason}\uFF08\u30D7\u30ED\u30B8\u30A7\u30AF\u30C8\u306B\u7D10\u3065\u304F\u66F8\u985E\u306F\u305D\u306E\u30D7\u30ED\u30B8\u30A7\u30AF\u30C8\u306E\u30E1\u30F3\u30D0\u30FC\u3001\u7D10\u3065\u304B\u306A\u3044\u66F8\u985E\u306F\u4F5C\u6210\u8005\u30FB\u62C5\u5F53\u8005\u3068\u7BA1\u7406\u8005\u3060\u3051\u304C\u51FA\u529B\u3067\u304D\u307E\u3059\uFF09`}return void 0}var ESTIMATE={name:"estimate",label:"\u898B\u7A4D",noExample:"EST0000063",
|
|
5
5
|
defaultKind:"estimate",kinds:{estimate:{segment:"estimate",label:"\u898B\u7A4D\u66F8"},order:{segment:"order",label:"\u6CE8\u6587\u66F8"},"order-acceptance":{segment:"order-acceptance",label:"\u6CE8\u6587\u8ACB\u66F8"}}};var INVOICE={name:"invoice",label:"\u8ACB\u6C42",noExample:"INV0000170",defaultKind:"invoice",kinds:{invoice:{segment:"invoice",label:"\u8ACB\u6C42\u66F8"},delivery:{segment:"delivery",label:"\u7D0D\u54C1\u66F8"},inspection:{segment:"inspection",label:"\u691C\u53CE\u66F8"}}};var PURCHASE={
|
|
6
6
|
name:"purchase",label:"\u4ED5\u5165",defaultKind:"order",kinds:{order:{segment:"purchase-order",label:"\u6CE8\u6587\u66F8"},"order-acceptance":{segment:"purchase-order-acceptance",label:"\u6CE8\u6587\u8ACB\u66F8"}}};var OUT_FLAG={name:"--out",summary:"\u66F8\u304D\u51FA\u3057\u5148\u306E\u30D5\u30A1\u30A4\u30EB\u30D1\u30B9\uFF08\u5FC5\u9808\uFF09",takesValue:true,placeholder:"<\u30D1\u30B9.pdf>"};var FORCE_FLAG={name:"--force",summary:"\u65E2\u5B58\u306E\u30D5\u30A1\u30A4\u30EB\u3092\u4E0A\u66F8\u304D\u3059\u308B",
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import { createRequire as __twpCreateRequire } from 'node:module';
|
|
2
2
|
const require = __twpCreateRequire(import.meta.url);
|
|
3
|
-
import{isModeId,isPermissionModeId}from"./chunk-NAUH75MM.js";import{API_TOKEN,HELP_TOKEN,isDomainName}from"./chunk-
|
|
3
|
+
import{isModeId,isPermissionModeId}from"./chunk-NAUH75MM.js";import{API_TOKEN,HELP_TOKEN,isDomainName}from"./chunk-ZGHEF45T.js";import{splitFlagToken}from"./chunk-QQRJLH6B.js";var BUILTIN_COMMANDS=["login","logout","whoami","update","task-loop"];var TASK_LOOP_ACTIONS=["run","status","stop","schedule","setup","charter","skill"];var VALUE_FLAGS=new Set(["-p","--print","--profile","--tenant","--mode","--permission-mode","--model","--allowed-tools","--disallowed-tools","--project","--engine","--interval","--max-cycles","--ai","--workspace","--ai-config-file","--now","--counts","--gate","--file","--out","--revision","--dir","--output","--query"]);var BOOLEAN_FLAGS=new Set(
|
|
4
4
|
["-h","--help","-v","--version","--no-tui","--doctor","--password","--token","--no-browser","--safe","--daemon","--force-runner","--force","--drain","--yes","-y","--no-ai-config-file","--verbose","--all","--dry-run","--debug","--refresh"]);function dispatch(argv,limit=2){const tokens=[];const indexes=[];let truncated=false;for(let i=0;i<argv.length;i++){const arg=argv[i];if(arg===void 0)continue;if(arg.startsWith("-")&&arg!=="-"){const{name,value:inline}=splitFlagToken(arg);if(BOOLEAN_FLAGS.has(
|
|
5
5
|
name)){if(inline!==void 0){truncated=true;break}continue}if(VALUE_FLAGS.has(name)){if(inline!==void 0)continue;const next=argv[i+1];if(next!==void 0&&(!next.startsWith("-")||next==="-"))i++;continue}truncated=true;break}if(arg===""||arg==="-")continue;if(tokens.length>=limit)break;tokens.push(arg);indexes.push(i)}return{tokens,indexes,truncated}}function isBuiltin(token){return token!==void 0&&BUILTIN_COMMANDS.includes(token)}function isTaskLoopAction(token){return token!==void 0&&TASK_LOOP_ACTIONS.
|
|
6
6
|
includes(token)}function resolveRoute(result){const{tokens,indexes}=result;const[first,second]=tokens;const firstIndex=indexes[0];if(first===void 0||firstIndex===void 0)return{kind:"none",consumed:[]};const consumed=[firstIndex];const secondIndex=indexes[1];if(isBuiltin(first)){if(first==="task-loop"&&isTaskLoopAction(second)){if(secondIndex!==void 0)consumed.push(secondIndex);return{kind:"builtin",command:first,action:second,consumed}}return{kind:"builtin",command:first,...first==="task-loop"?{
|
|
@@ -1,3 +1,3 @@
|
|
|
1
1
|
import { createRequire as __twpCreateRequire } from 'node:module';
|
|
2
2
|
const require = __twpCreateRequire(import.meta.url);
|
|
3
|
-
import{UsageError}from"./chunk-
|
|
3
|
+
import{UsageError}from"./chunk-VFPY2A23.js";async function evaluateQuery(expression,value){if(expression.trim()===""){throw new UsageError("--query \u306B\u7A7A\u306E\u5F0F\u306F\u6307\u5B9A\u3067\u304D\u307E\u305B\u3093")}const{search}=await import("./dist-HZIZTJ4O.js");try{return search(value??null,expression)}catch(err){throw new UsageError(`--query \u306E\u5F0F\u3092\u8A55\u4FA1\u3067\u304D\u307E\u305B\u3093: ${err.message}`)}}export{evaluateQuery};
|
|
@@ -0,0 +1,9 @@
|
|
|
1
|
+
import { createRequire as __twpCreateRequire } from 'node:module';
|
|
2
|
+
const require = __twpCreateRequire(import.meta.url);
|
|
3
|
+
var LOADERS={"agent-loop":async()=>(await import("./agent-loop-EBIXJ4EH.js")).agentLoopDomain,"ai-review-reason":async()=>(await import("./sales-ai-review-FSA4J2J2.js")).aiReviewReasonDomain,analysis:async()=>(await import("./analysis-2SWIQ4AI.js")).analysisDomain,announcement:async()=>(await import("./announcement-R76XDLW7.js")).announcementDomain,attendance:async()=>(await import("./attendance-correct-SN2KYGOE.js")).attendanceDomainWithRecords,backlog:async()=>(await import("./backlog-5XSCJGPJ.js")).
|
|
4
|
+
backlogDomain,budget:async()=>(await import("./budget-PIGBJ5N7.js")).budgetDomain,"business-place":async()=>(await import("./sales-master-Q5BJ7RNG.js")).businessPlaceDomain,company:async()=>(await import("./company-CQYSBKTQ.js")).companyDomain,contract:async()=>(await import("./contract-A2FGGVOR.js")).contractDomain,customer:async()=>(await import("./company-CQYSBKTQ.js")).customerDomain,department:async()=>(await import("./department-6BILJZG7.js")).departmentDomain,deposit:async()=>(await import("./deposit-OAGRJMZ4.js")).
|
|
5
|
+
depositDomain,estimate:async()=>(await import("./estimate-5PSXHHNT.js")).estimateDomain,inquiry:async()=>(await import("./inquiry-NMOT4JSX.js")).inquiryDomain,invoice:async()=>(await import("./invoice-TXEJT6I6.js")).invoiceDomain,"job-title":async()=>(await import("./job-title-NSYPQMEX.js")).jobTitleDomain,leave:async()=>(await import("./leave-DEGAZKVH.js")).leaveDomain,media:async()=>(await import("./media-RJCTHFK6.js")).mediaDomain,meeting:async()=>(await import("./knowledge-5DX6EMHZ.js")).
|
|
6
|
+
meetingDomain,note:async()=>(await import("./knowledge-5DX6EMHZ.js")).noteDomain,notification:async()=>(await import("./notification-NG4J6N2D.js")).notificationDomain,onedrive:async()=>(await import("./onedrive-YPJCILR2.js")).onedriveDomain,outlook:async()=>(await import("./outlook-MNOVX6QS.js")).outlookDomain,payee:async()=>(await import("./sales-master-Q5BJ7RNG.js")).payeeDomain,position:async()=>(await import("./position-OZBQYKZS.js")).positionDomain,project:async()=>(await import("./project-5YFBRM32.js")).
|
|
7
|
+
projectDomain,prospect:async()=>(await import("./prospect-TQ2FFWEZ.js")).prospectDomain,purchase:async()=>(await import("./purchase-WOUWIZHO.js")).purchaseDomain,receivable:async()=>(await import("./receivable-RFZT6PY3.js")).receivableDomain,report:async()=>(await import("./report-EFE43ZVI.js")).reportDomain,"rounding-setting":async()=>(await import("./sales-numbering-ITDBMODV.js")).roundingSettingDomain,"seal-impression":async()=>(await import("./sales-master-Q5BJ7RNG.js")).sealImpressionDomain,
|
|
8
|
+
shift:async()=>(await import("./attendance-lists-6S62D2UV.js")).shiftDomain,storage:async()=>(await import("./storage-AQDCEBDJ.js")).storageDomain,"supplier-payment":async()=>(await import("./supplier-payment-FWGQR3Z3.js")).supplierPaymentDomain,support:async()=>(await import("./support-TVTQJFRE.js")).supportDomain,task:async()=>(await import("./task-IDQKPRYS.js")).taskDomain,teams:async()=>(await import("./teams-IO6UQNYP.js")).teamsDomain,user:async()=>(await import("./user-B6KW6HA2.js")).
|
|
9
|
+
userDomain,wiki:async()=>(await import("./knowledge-5DX6EMHZ.js")).wikiDomain,workchange:async()=>(await import("./attendance-lists-6S62D2UV.js")).workchangeDomain,"worker-agent":async()=>(await import("./worker-agent-PEFBLL56.js")).workerAgentDomain,workflow:async()=>(await import("./workflow-SYWZKWWB.js")).workflowDomain};async function loadDomain(name){return LOADERS[name]()}export{loadDomain};
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import { createRequire as __twpCreateRequire } from 'node:module';
|
|
2
2
|
const require = __twpCreateRequire(import.meta.url);
|
|
3
|
-
import{contentTypeFor,inspectLocalFile,issued}from"./chunk-
|
|
4
|
-
|
|
3
|
+
import{contentTypeFor,inspectLocalFile,issued}from"./chunk-4S7SNE2M.js";import{createFlags,fieldBody,hasAnyField,updateFlags}from"./chunk-NK53AFVE.js";import{readCsvFileText}from"./chunk-QLENN5DD.js";import{featureLicenseGuidance}from"./chunk-CF3ZZKCZ.js";import{CUSTOMERS_PATH,SALES_COMPANIES_PATH,isExactNumericId}from"./chunk-Q2KIETMB.js";import{isSafePathSegment}from"./chunk-GMBJTG6A.js";import{ApiError,errorListMessages}from"./chunk-IF2K4PM5.js";import{
|
|
4
|
+
checkUploadQuota}from"./chunk-V64CGX7V.js";import{LIST_FLAGS,LIST_PAGING_HELP,envelopePaging,nonEmpty,positiveInteger}from"./chunk-MI6HVYR2.js";import{requireResolved,singleRef,withResolved}from"./chunk-PS5QFKHB.js";import{acknowledgement,isRecord,pick}from"./chunk-3ZRMMBP5.js";import{ApiRejectedError,ApiResponseError,UsageError}from"./chunk-VFPY2A23.js";import fs from"fs";import path from"path";function levelForbidden(licenseGuidance,levelGuidance){return body=>body?.error==="permission_denied"?licenseGuidance:levelGuidance}var COMPANY_LICENSE="\u53D6\u5F15\u5148\u3092\u6271\u3046\u306B\u306F\u8CA9\u58F2\u7BA1\u7406\u304B\u9867\u5BA2\u7BA1\u7406\u306E\u6A29\u9650\u304C\u8981\u308A\u307E\u3059\u304C\u3001\u3069\u3061\u3089\u3082\u3042\u308A\u307E\u305B\u3093\u3002\u30C6\u30CA\u30F3\u30C8\u304C\u3069\u3061\u3089\u3082\u5951\u7D04\u3057\u3066\u3044\u306A\u3044\u304B\u3001\u3042\u306A\u305F\u306E\u6A29\u9650\u304C\u3069\u3061\u3089\u3082\u300C\u306A\u3057\u300D\u306B\u306A\u3063\u3066\u3044\u307E\u3059\u3002\u30C6\u30CA\u30F3\u30C8\u7BA1\u7406\u8005\u306B\u78BA\u8A8D\u3057\u3066\u304F\u3060\u3055\u3044\u3002";
|
|
5
5
|
var CUSTOMER_LICENSE=featureLicenseGuidance("\u9867\u5BA2\u7BA1\u7406");var COMPANY_WRITE_FORBIDDEN=levelForbidden(COMPANY_LICENSE,"\u9867\u5BA2\u306E\u4F5C\u6210\u30FB\u66F4\u65B0\u306B\u306F\u3001\u9867\u5BA2\u7BA1\u7406\u306E\u6A29\u9650\u304C\u300C\u7DE8\u96C6\u8005\u300D\u4EE5\u4E0A\u304B\u3001\u8CA9\u58F2\u7BA1\u7406\u306E\u6A29\u9650\u304C\u300C\u30E1\u30F3\u30D0\u30FC\u300D\u4EE5\u4E0A\u306E\u3069\u3061\u3089\u304B\u304C\u8981\u308A\u307E\u3059\u3002\u30C6\u30CA\u30F3\u30C8\u7BA1\u7406\u8005\u306B\u78BA\u8A8D\u3057\u3066\u304F\u3060\u3055\u3044\u3002");
|
|
6
6
|
var LEVEL_LABELS={admin:"\u7BA1\u7406\u8005",editor:"\u7DE8\u96C6\u8005",viewer:"\u95B2\u89A7\u8005",none:"\u306A\u3057"};var CHILD_DELETE_NEEDS="\u62C5\u5F53\u8005\u30FB\u5BFE\u5FDC\u5C65\u6B74\u306E\u524A\u9664\u306B\u306F\u9867\u5BA2\u7BA1\u7406\u306E\u6A29\u9650\u304C\u300C\u7BA1\u7406\u8005\u300D\u3067\u3042\u308B\u3053\u3068\u304C\u8981\u308A\u307E\u3059";var CUSTOMER_DELETE_FORBIDDEN=levelForbidden(COMPANY_LICENSE,"\u9867\u5BA2\u306E\u524A\u9664\u306B\u306F\u3001\u4F01\u696D\u306E\u524A\u9664\u306B\u9867\u5BA2\u7BA1\u7406\u306E\u300C\u7BA1\u7406\u8005\u300D\u304B\u8CA9\u58F2\u7BA1\u7406\u306E\u300C\u30E1\u30F3\u30D0\u30FC\u300D\u4EE5\u4E0A\u3001\u62C5\u5F53\u8005\u30FB\u5BFE\u5FDC\u5C65\u6B74\u306E\u524A\u9664\u306B\u9867\u5BA2\u7BA1\u7406\u306E\u300C\u7BA1\u7406\u8005\u300D\u304C\u8981\u308A\u307E\u3059\u3002\u30C6\u30CA\u30F3\u30C8\u7BA1\u7406\u8005\
|
|
7
7
|
\u306B\u78BA\u8A8D\u3057\u3066\u304F\u3060\u3055\u3044\u3002");var CUSTOMER_UPDATE_FORBIDDEN=levelForbidden(CUSTOMER_LICENSE,"\u9867\u5BA2\u306E\u66F4\u65B0\u306B\u306F\u3001\u9867\u5BA2\u7BA1\u7406\u306E\u6A29\u9650\u304C\u300C\u7DE8\u96C6\u8005\u300D\u4EE5\u4E0A\u304B\u3001\u8CA9\u58F2\u7BA1\u7406\u306E\u6A29\u9650\u304C\u300C\u30E1\u30F3\u30D0\u30FC\u300D\u4EE5\u4E0A\u306E\u3069\u3061\u3089\u304B\u304C\u8981\u308A\u307E\u3059\u3002\u30C6\u30CA\u30F3\u30C8\u7BA1\u7406\u8005\u306B\u78BA\u8A8D\u3057\u3066\u304F\u3060\u3055\u3044\u3002");
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import { createRequire as __twpCreateRequire } from 'node:module';
|
|
2
2
|
const require = __twpCreateRequire(import.meta.url);
|
|
3
|
-
import{dateFlag,monthFlag}from"./chunk-
|
|
3
|
+
import{dateFlag,monthFlag}from"./chunk-EXT4AIDF.js";import{requireResolved,withResolved}from"./chunk-PS5QFKHB.js";import{isRecord,pick}from"./chunk-3ZRMMBP5.js";import{ApiRejectedError,ApiResponseError,UsageError}from"./chunk-VFPY2A23.js";var STATUS_USAGE="twp attendance status";var LIST_USAGE="twp attendance list [--month <YYYY-MM> | --date <YYYY-MM-DD>]";var TIMESHEET_USAGE="twp attendance timesheet [--month <YYYY-MM>]";var PUNCH_USAGE="twp attendance punch <clock-in|clock-out|break-start|break-end|switch> [--project <\u30B3\u30FC\u30C9|ID>] [--task <\u30BF\u30B9\u30AFID>] [--memo <\u30E1\u30E2>]";var PUNCH_TYPES={"clock-in":"clock_in","clock-out":"clock_out","break-start":"break_start","break-end":"break_end",switch:"switch"};
|
|
4
4
|
var UUID_PATTERN=/^[0-9a-f]{8}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{12}$/i;var MEMO_MAX=500;var PUNCH_COLUMNS=["id","type","type_label","recorded_at","year_month","project_id","task_id","memo"];var RECORD_COLUMNS=["recorded_at","type","type_label","work_location","is_manual","project_id","task_id","memo","id"];var DAY_COLUMNS=["date","clock_in","clock_out","work","break","overtime","late","early_leave","holiday","memo"];function noArgs(input,operation){if(input.args.length>0){throw new UsageError(
|
|
5
5
|
`${operation} \u306F\u4F4D\u7F6E\u5F15\u6570\u3092\u53D7\u3051\u53D6\u308A\u307E\u305B\u3093: ${input.args.join(" ")}`,`twp attendance ${operation} help`)}}function hoursMinutes(value){if(typeof value!=="number"||!Number.isFinite(value))return value;const sign=value<0?"-":"";const abs=Math.round(Math.abs(value));return`${sign}${Math.floor(abs/60)}:${String(abs%60).padStart(2,"0")}`}function currentBody(body){if(!isRecord(body)||typeof body["status"]!=="string"||!Array.isArray(body["today_records"])){
|
|
6
6
|
throw new ApiResponseError("\u6253\u523B\u72B6\u614B\u306E\u5FDC\u7B54\u306B status / today_records \u304C\u3042\u308A\u307E\u305B\u3093\u3002\u63A5\u7D9A\u5148\u3092\u78BA\u8A8D\u3057\u3066\u304F\u3060\u3055\u3044\u3002")}return body}function summarizeCurrent(body){const current=currentBody(body);const last=isRecord(current["last_record"])?current["last_record"]:void 0;const actions=Array.isArray(current["available_actions"])?current["available_actions"]:[];return{status:current["status"],status_label:current["\
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import { createRequire as __twpCreateRequire } from 'node:module';
|
|
2
2
|
const require = __twpCreateRequire(import.meta.url);
|
|
3
|
-
import{ApiResponseError,UsageError}from"./chunk-
|
|
3
|
+
import{ApiResponseError,UsageError}from"./chunk-VFPY2A23.js";var DEFAULT_MAX_PAGES=100;var DEFAULT_MAX_ITEMS=1e4;var LIST_FLAGS=[{name:"--limit",summary:"\u53D6\u5F97\u4EF6\u6570\uFF08\u30B5\u30FC\u30D0\u5074\u306E\u4E0A\u9650\u3067\u5207\u308A\u6368\u3066\u3089\u308C\u307E\u3059\uFF0F--all \u3068\u4F75\u7528\u3057\u305F\u3068\u304D\u306F1\u30DA\u30FC\u30B8\u306E\u4EF6\u6570\uFF09",takesValue:true,placeholder:"<\u4EF6\u6570>"},{name:"--cursor",summary:"\u7D9A\u304D\u3092\u53D6\u5F97\u3059\u308B\u30AB\u30FC\u30BD\u30EB\uFF08\u524D\u56DE\u306E\u5FDC\u7B54\u306E next_cursor\uFF09",
|
|
4
4
|
takesValue:true,placeholder:"<\u30AB\u30FC\u30BD\u30EB>"},{name:"--all",summary:"\u5168\u30DA\u30FC\u30B8\u3092\u81EA\u52D5\u3067\u8FBF\u308B\uFF08--cursor \u3068\u4F75\u7528\u3059\u308B\u3068\u305D\u306E\u30AB\u30FC\u30BD\u30EB\u4EE5\u964D\u3092\u5168\u4EF6\uFF09",takesValue:false},{name:"--max-pages",summary:`--all \u304C\u7D9A\u304D\u3092\u53D6\u308A\u306B\u884C\u304F\u4E0A\u9650\u30DA\u30FC\u30B8\u6570\uFF08\u65E2\u5B9A ${DEFAULT_MAX_PAGES}\uFF09`,takesValue:true,placeholder:"<\u30DA\u30FC\u30B8\u6570>"},
|
|
5
5
|
{name:"--max-items",summary:`--all \u304C\u7D9A\u304D\u3092\u53D6\u308A\u306B\u884C\u304F\u4E0A\u9650\u4EF6\u6570\uFF08\u65E2\u5B9A ${DEFAULT_MAX_ITEMS}\uFF09`,takesValue:true,placeholder:"<\u4EF6\u6570>"}];var LIST_PAGING_HELP="\u30DA\u30FC\u30B8\u30F3\u30B0:\n --all \u3092\u4ED8\u3051\u308B\u3068\u6700\u5F8C\u306E\u30DA\u30FC\u30B8\u307E\u3067\u81EA\u52D5\u3067\u8FBF\u308A\u307E\u3059\uFF08--limit \u306F1\u30DA\u30FC\u30B8\u306E\u4EF6\u6570\u306B\u306A\u308A\u307E\u3059\uFF09\u3002\n --all \u3068 --cursor \u3092\u4F75\u7528\u3059\u308B\u3068\u3001\u305D\u306E\u30AB\u30FC\u30BD\u30EB\u4EE5\u964D\u3092\u5168\u4EF6\u53D6\u5F97\u3057\u307E\u3059\uFF08\u4E2D\u65AD\u3057\u305F\u53D6\u5F97\u306E\u518D\u958B\uFF09\u3002\n\n \u66B4\u8D70\u3092\u9632\u3050\u305F\u3081 --max-pages / --max-items \u306E\u4E0A\u9650\u304C\u3042\u308A\u307E\u3059\u3002\u3053\u308C\u306F\u300C\u7D9A\u304D\u3092\u53D6\u308A\u306B\u884C\u304F\u304B\u300D\n \u306E\u5224\u5B9A\u306B\u3060\u3051\u4F7F\u308F\u308C\u3001\u7D50\u679C\u3092\u9014\u4E2D\u3067\u5207\u308A\u8A70\u3081\u308B\u3053\u3068\u306F\u3042\u308A\u307E\u305B\u3093\u3002\u8FBF\u308A\u304D\u308B\u524D\u306B\u4E0A\u9650\u3078\u9054\u3057\u305F\n \u5834\u5408\u306F\u300C\u5168\u4EF6\u3067\u306F\u306A\u3044\u300D\u3053\u3068\u3092\u660E\u793A\u3057\u3066\u505C\u6B62\u3057\u3001\u90E8\u5206\u7684\u306A\u7D50\u679C\u306F\u51FA\u529B\u3057\u307E\u305B\u3093\uFF08\u53D6\u5F97\u6E08\u307F\u4EF6\u6570\u3068\n \u518D\u958B\
|
|
6
6
|
\u7528\u306E\u30AB\u30FC\u30BD\u30EB\u306F stderr \u306B\u51FA\u307E\u3059\uFF09\u30021\u5F80\u5FA9\u3067\u5168\u4EF6\u304C\u8FD4\u3063\u305F\u3068\u304D\u306F\u4E0A\u9650\u3092\u8D85\u3048\u3066\u3044\u3066\u3082\u6210\u529F\u3067\u3059\u3002\n \u5F80\u5FA9\u304C\u591A\u3059\u304E\u3066\u4E0A\u9650\u306B\u5F53\u305F\u308B\u5834\u5408\u306F\u3001--max-pages \u3092\u4E0A\u3052\u308B\u3088\u308A --limit \u3092\u5927\u304D\u304F\u3059\u308B\u307B\u3046\u304C\u901F\u3044\n \u3053\u3068\u304C\u3042\u308A\u307E\u3059\uFF081\u5F80\u5FA9\u3042\u305F\u308A\u306E\u4EF6\u6570\u304C\u5897\u3048\u308B\u305F\u3081\uFF09\u3002\n\n \u26A0 --keyword \u3092\u4F75\u7528\u3057\u305F\u4E00\u89A7\u306F\u3001\u30B5\u30FC\u30D0\u5074\u304C\u30DA\u30FC\u30B8\u756A\u53F7\u306B\u3088\u308B\u4F4D\u7F6E\u6307\u5B9A\u3067\u5FDC\u7B54\u3057\u307E\u3059\u3002\n \u8FBF\u3063\u3066\u3044\u308B\u6700\u4E2D\u306B\u30C7\u30FC\u30BF\u304C\u5897\u6E1B\u3059\u308B\u3068\u3001\u53D6\u308A\u3053\u307C\u3057\u30FB\u91CD\u8907\u304C\u8D77\u3053\u308A\u5F97\u307E\u3059\u3002";
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import { createRequire as __twpCreateRequire } from 'node:module';
|
|
2
2
|
const require = __twpCreateRequire(import.meta.url);
|
|
3
|
-
import{booleanText,boundedText,isoDate}from"./chunk-
|
|
3
|
+
import{booleanText,boundedText,isoDate}from"./chunk-OTIR4GES.js";import{ORG_MASTER_LIMIT}from"./chunk-Q2KIETMB.js";import{ULID_RE,UUID_RE,isSafePathSegment}from"./chunk-GMBJTG6A.js";import{nonEmpty,positiveInteger}from"./chunk-MI6HVYR2.js";import{requireResolved,singleRef,withResolved}from"./chunk-PS5QFKHB.js";import{acknowledgement,isRecord,pick}from"./chunk-3ZRMMBP5.js";import{ApiResponseError,UsageError}from"./chunk-VFPY2A23.js";var CLEAR_DATE="none";function placeholderOf(field){switch(field.kind){case"text":return`<${field.label}>`;case"integer":return"<\u6574\u6570>";case"boolean":return"<true|false>";case"enum":return`<${field.values.join("|")}>`;case"date":return`<YYYY-MM-DD|${CLEAR_DATE}>`;case"ref":return field.placeholder}}function createFlags(fields){return fields.map(field=>({name:field.flag,summary:field.summary,takesValue:true,placeholder:placeholderOf(field)}))}function updateFlags(fields){const flags=[];for(const field of fields){
|
|
4
4
|
flags.push({name:field.flag,summary:field.summary,takesValue:true,placeholder:placeholderOf(field)});if(field.kind==="ref")flags.push({name:field.clearFlag,summary:field.clearSummary,takesValue:false})}return flags}function integerValue(field,raw){const trimmed=raw.trim();const value=/^\d+$/.test(trimmed)?Number(trimmed):Number.NaN;const tooLarge=field.max!==void 0&&value>field.max;if(!Number.isSafeInteger(value)||value<field.min||tooLarge){const range=field.max!==void 0?`${field.min} \u4EE5\u4E0A ${field.
|
|
5
5
|
max} \u4EE5\u4E0B`:`${field.min} \u4EE5\u4E0A`;throw new UsageError(`${field.flag} \u306F ${range}\u306E\u6574\u6570\u3067\u6307\u5B9A\u3057\u3066\u304F\u3060\u3055\u3044: ${raw}`,`${field.label}\u3092\u6574\u6570\u3067\u6307\u5B9A\u3057\u3066\u304F\u3060\u3055\u3044\u3002`)}return value}function fieldBody(input,fields){const body={};for(const field of fields){switch(field.kind){case"text":{const value=boundedText(input,field.flag,{maxChars:field.maxChars,label:field.label});if(value!==void 0)body[field.
|
|
6
6
|
key]=value;break}case"integer":{const raw=input.flags.get(field.flag);if(raw!==void 0)body[field.key]=integerValue(field,raw);break}case"boolean":{const raw=input.flags.get(field.flag);if(raw!==void 0)body[field.key]=booleanText(field.flag,raw);break}case"enum":{const raw=input.flags.get(field.flag);if(raw===void 0)break;const value=raw.trim().toLowerCase();if(!field.values.includes(value)){throw new UsageError(`${field.flag} \u306B\u300C${raw}\u300D\u306F\u6307\u5B9A\u3067\u304D\u307E\u305B\u3093`,
|