@tocca-systems/twp-cli 0.48.0 → 0.49.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 +8 -0
- package/README.md +55 -4
- package/dist/analysis-NCD6YTJM.js +4 -0
- package/dist/{api-command-26MLBIZC.js → api-command-IBK6R4XU.js} +3 -3
- package/dist/{app-Y7MAQAPC.js → app-7I767FND.js} +4 -4
- package/dist/{attendance-correct-5SFXA4DC.js → attendance-correct-M6KD6PSN.js} +1 -1
- package/dist/{backlog-F4EWY7MT.js → backlog-IXUASOE3.js} +1 -1
- package/dist/{budget-QFUGQIPZ.js → budget-EJIZFFB7.js} +1 -1
- package/dist/{chunk-FZWRYJVM.js → chunk-36TEJJ5S.js} +1 -1
- package/dist/{chunk-KS2ZUQFC.js → chunk-4QKACT6A.js} +1 -1
- package/dist/{chunk-4OSCQLZT.js → chunk-5ALOH2TR.js} +1 -1
- package/dist/{chunk-IO5SMECE.js → chunk-5YXEGJU7.js} +1 -1
- package/dist/{chunk-Y5EN7RYN.js → chunk-67JAB5QG.js} +1 -1
- package/dist/{chunk-XQRSX2RH.js → chunk-6KB2R3S2.js} +33 -8
- package/dist/{chunk-OYDF57NH.js → chunk-6WNPHORR.js} +1 -1
- package/dist/{chunk-MY2U3CD6.js → chunk-74SXPFUT.js} +50 -26
- package/dist/{chunk-BN26WHLS.js → chunk-AC6G5UPA.js} +1 -1
- package/dist/{chunk-4F2ONF4P.js → chunk-BS2ACFJA.js} +56 -54
- package/dist/{chunk-JKL6NUVV.js → chunk-BSEPVMVA.js} +1 -1
- package/dist/{chunk-VYT6JAXQ.js → chunk-FC2SFCKD.js} +2 -2
- package/dist/{chunk-A65V3K75.js → chunk-HJPIGVGD.js} +1 -1
- package/dist/{chunk-6TPGATAG.js → chunk-QHNZUMRK.js} +1 -1
- package/dist/{chunk-GOZCJLRA.js → chunk-QYWYZG73.js} +1 -1
- package/dist/{chunk-VB2CSFRO.js → chunk-SPGS7DHD.js} +1 -1
- package/dist/{chunk-LAXINIDA.js → chunk-VWNFYFLA.js} +1 -1
- package/dist/chunk-ZVJXYKRY.js +9 -0
- package/dist/cli.js +65 -10
- package/dist/{commands-EIWS357Q.js → commands-DJIQE34F.js} +2 -2
- package/dist/{company-77JEESSV.js → company-VCPUUYVV.js} +2 -2
- package/dist/{completion-YSP6UE25.js → completion-XFXG7RPT.js} +1 -1
- package/dist/{contract-26SKL7XT.js → contract-SMIPLH7R.js} +1 -1
- package/dist/{department-IZAR2LZ4.js → department-4RCU4E27.js} +1 -1
- package/dist/{deposit-MYTKRIEX.js → deposit-UF7OKRG2.js} +1 -1
- package/dist/{estimate-KLS7XJLD.js → estimate-HE5H6XXY.js} +2 -2
- package/dist/{inquiry-52OT4HKJ.js → inquiry-SCPVERFM.js} +1 -1
- package/dist/{invoice-D77PS3WU.js → invoice-CF2TPYSA.js} +2 -2
- package/dist/{job-title-U67Z25ZO.js → job-title-W2EKNKTY.js} +1 -1
- package/dist/{knowledge-Q3QLSNDX.js → knowledge-ZZEHU744.js} +1 -1
- package/dist/{leave-OSIABEFV.js → leave-5VY2IK7K.js} +1 -1
- package/dist/{media-HDG4VHAR.js → media-4MASY32I.js} +86 -26
- package/dist/{notification-MEOHWBXH.js → notification-AOSKQX3Z.js} +1 -1
- package/dist/{oneshot-ACV6XH5A.js → oneshot-Y4A2ZC3E.js} +1 -1
- package/dist/{position-N7SRF3CF.js → position-TPKLP2SP.js} +1 -1
- package/dist/{project-YMJJDSTP.js → project-JFZCKGYY.js} +1 -1
- package/dist/{prospect-3JD7STGT.js → prospect-3ALNTGPY.js} +1 -1
- package/dist/{purchase-2SLZBDD6.js → purchase-SEHUEXE5.js} +2 -2
- package/dist/{receivable-6ZRAUHC3.js → receivable-QYSSI7TB.js} +1 -1
- package/dist/{registry-GQ3L7PZ2.js → registry-BA7RGQ2R.js} +1 -1
- package/dist/{report-TUSP7RRF.js → report-RV7DOZFB.js} +1 -1
- package/dist/{run-ZPB23AZX.js → run-ZXMGPUUK.js} +2 -2
- package/dist/{sales-ai-review-7NPG7KV6.js → sales-ai-review-AXZKRXKB.js} +1 -1
- package/dist/{sales-master-W5MXNZQ2.js → sales-master-RC77V74V.js} +1 -1
- package/dist/{sales-numbering-RQV2I5G5.js → sales-numbering-WU5FAPCO.js} +1 -1
- package/dist/{supplier-payment-TDL3IE4H.js → supplier-payment-OCAK6N3S.js} +1 -1
- package/dist/{task-2SHYSZBZ.js → task-7QESG57Q.js} +2 -2
- package/dist/{user-YEIHSVVN.js → user-67X5FJTN.js} +2 -2
- package/dist/worker-agent-MKXRTVBM.js +81 -0
- package/dist/{workflow-USG3ZKW6.js → workflow-KHNGCPQB.js} +1 -1
- package/package.json +1 -1
- package/dist/analysis-GAU2A3FU.js +0 -3
- package/dist/chunk-6ZB7A6VD.js +0 -9
- /package/dist/{commands-SWR442MR.js → commands-UMKI65IW.js} +0 -0
|
@@ -6,27 +6,27 @@ if(text.includes(PAGE_DENIED_MARK))return PAGE_GUIDANCE;if(text.includes("\u3053
|
|
|
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,6 +1,6 @@
|
|
|
1
1
|
import { createRequire as __twpCreateRequire } from 'node:module';
|
|
2
2
|
const require = __twpCreateRequire(import.meta.url);
|
|
3
|
-
import{readCsvFileText}from"./chunk-OHXZO5WK.js";import{featureLicenseGuidance,invoiceFilters}from"./chunk-
|
|
3
|
+
import{readCsvFileText}from"./chunk-OHXZO5WK.js";import{featureLicenseGuidance,invoiceFilters}from"./chunk-QYWYZG73.js";import{boundedText,isoDate}from"./chunk-XDHLO54T.js";import{readBody}from"./chunk-ORUDW52G.js";import{SALES_DEPOSITS_PATH,isExactNumericId,resolveNamed}from"./chunk-BS2ACFJA.js";import{repeatedValues}from"./chunk-F7K37QG6.js";import{ApiError}from"./chunk-IF2K4PM5.js";import{LIST_PAGING_HELP,PAGE_NUMBER_LIST_FLAGS,PAGE_NUMBER_PAGING_HELP,
|
|
4
4
|
STABLE_PAGE_ORDER,nonEmpty,pageNumberPaging,pageNumberQuery,pageRangeNotes}from"./chunk-IOGMOXYF.js";import{requireResolved,withResolved}from"./chunk-LXIAOCUW.js";import{acknowledgement,isRecord,pick}from"./chunk-VTQAI52S.js";import{ApiResponseError,UsageError}from"./chunk-UFND7FBC.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\
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import { createRequire as __twpCreateRequire } from 'node:module';
|
|
2
2
|
const require = __twpCreateRequire(import.meta.url);
|
|
3
|
-
import{ResolveError,UUID_RE,isSafePathSegment,resolveProjectRef,safeProjectIdPolicy}from"./chunk-GMBJTG6A.js";import{graphNextCursor,ms365NamedRow,ms365NotConnectedGuidance,ms365Path,ms365Segment}from"./chunk-3HH5IYNO.js";import{ApiError}from"./chunk-IF2K4PM5.js";import{loadProjectConfig,loadUserConfig}from"./chunk-4VZKNEVN.js";import{isTaskKey}from"./chunk-II5RVJQN.js";import{UsageError}from"./chunk-UFND7FBC.js";import{twpHomeDir}from"./chunk-RZVI6PMW.js";var BACKLOG_BASE_PATH="/api/v2/integrations/backlog";function assertBacklogPathSegment(value,label){if(!isSafePathSegment(value)){throw new ResolveError(`${label}\u3068\u3057\u3066 URL \u306B\u5165\u308C\u3089\u308C\u306A\u3044\u5024\u304C\u30B5\u30FC\u30D0\u304B\u3089\u8FD4\u308A\u307E\u3057\u305F: ${JSON.stringify(value)}\u3002\u63A5\u7D9A\u5148\u3092\u78BA\u8A8D\u3057\u3066\u304F\u3060\u3055\u3044\u3002`)}return value}function backlogSpacePath(spaceId,suffix=""){assertBacklogPathSegment(spaceId,
|
|
3
|
+
import{ResolveError,ULID_RE,UUID_RE,isSafePathSegment,resolveProjectRef,safeProjectIdPolicy}from"./chunk-GMBJTG6A.js";import{graphNextCursor,ms365NamedRow,ms365NotConnectedGuidance,ms365Path,ms365Segment}from"./chunk-3HH5IYNO.js";import{ApiError}from"./chunk-IF2K4PM5.js";import{loadProjectConfig,loadUserConfig}from"./chunk-4VZKNEVN.js";import{isTaskKey}from"./chunk-II5RVJQN.js";import{UsageError}from"./chunk-UFND7FBC.js";import{twpHomeDir}from"./chunk-RZVI6PMW.js";var BACKLOG_BASE_PATH="/api/v2/integrations/backlog";function assertBacklogPathSegment(value,label){if(!isSafePathSegment(value)){throw new ResolveError(`${label}\u3068\u3057\u3066 URL \u306B\u5165\u308C\u3089\u308C\u306A\u3044\u5024\u304C\u30B5\u30FC\u30D0\u304B\u3089\u8FD4\u308A\u307E\u3057\u305F: ${JSON.stringify(value)}\u3002\u63A5\u7D9A\u5148\u3092\u78BA\u8A8D\u3057\u3066\u304F\u3060\u3055\u3044\u3002`)}return value}function backlogSpacePath(spaceId,suffix=""){assertBacklogPathSegment(spaceId,
|
|
4
4
|
"Backlog \u30B9\u30DA\u30FC\u30B9 ID");return`${BACKLOG_BASE_PATH}/${encodeURIComponent(spaceId)}${suffix}`}function idString(value){if(typeof value==="number"&&Number.isFinite(value))return String(value);if(typeof value==="string"&&value.trim()!=="")return value.trim();return null}function text(value){return typeof value==="string"&&value.trim()!==""?value.trim():null}function backlogSpaceAliases(spaceUrl){const aliases=[];const trimmed=spaceUrl.trim().replace(/\/+$/,"");if(trimmed==="")return aliases;
|
|
5
5
|
let host;try{host=new URL(trimmed).host}catch{host=trimmed.replace(/^\/+/,"").split("/")[0]??""}if(host==="")return aliases;aliases.push(host);const label=host.split(".")[0];if(label!==void 0&&label!==""&&label!==host)aliases.push(label);return aliases}function backlogSpaceRow(row){const url=text(row["space_url"]);return{id:idString(row["id"]),name:url,code:null,aliases:url!==null?backlogSpaceAliases(url):[]}}function backlogProjectRow(row){return{id:idString(row["id"]),name:text(row["name"]),code:text(
|
|
6
6
|
row["projectKey"])}}function backlogStatusRow(row){return{id:idString(row["id"]),name:text(row["name"]),code:null}}function backlogUserRow(row){return{id:idString(row["id"]),name:text(row["name"]),code:null,aliases:[text(row["userId"]),text(row["mailAddress"])].filter(v=>v!==null)}}var DEFAULT_LOOKUP_SCOPE="\u3053\u306E\u30D7\u30ED\u30B8\u30A7\u30AF\u30C8";function fold(value){return value.trim().toLowerCase()}function keysOf(ref){return[ref.id,ref.code,ref.name,...ref.aliases??[]].filter(v=>typeof v==="string"&&v.trim()!=="").map(fold)}function describe(ref){return ref.code!==void 0&&ref.code!==null&&ref.code!==""&&ref.code!==ref.name?`${ref.name}\uFF08${ref.code}\uFF09`:ref.name}async function suggest(input,candidates){try{const{default:fuzzysort}=await import("./fuzzysort-DFVKV4B4.js");
|
|
@@ -15,29 +15,29 @@ env);const fromProfile=usable(user.profiles?.[profileName]?.project);if(fromProf
|
|
|
15
15
|
const ttl=options.ttlMs??DEFAULT_TTL_MS;const now=(options.now??Date.now)();if(Math.abs(now-fetchedAt)>ttl)return null;return parsed.value}function writeCache(key,value,options={}){const env=options.env??process.env;const dir=cacheDir(env);const file=cacheFilePath(key,env);const body={version:CACHE_VERSION,key:{profile:key.profile,scope:key.scope,...key.project!==void 0?{project:key.project}:{}},fetched_at:new Date((options.now??Date.now)()).toISOString(),value};if(!isCacheLocationTrusted(env))return;
|
|
16
16
|
const tmp=`${file}.${process.pid}.tmp`;try{fs.mkdirSync(dir,{recursive:true,mode:448});fs.writeFileSync(tmp,`${JSON.stringify(body)}
|
|
17
17
|
`,{mode:384});fs.renameSync(tmp,file)}catch{try{fs.rmSync(tmp,{force:true})}catch{}}}function removeCache(key,options={}){const env=options.env??process.env;if(!isCacheLocationTrusted(env))return;try{fs.rmSync(cacheFilePath(key,env),{force:true})}catch{}}var SELF_REF="me";var PRIVATE_TASKS_PATH="/api/v2/tasks/private";var PRIVATE_MASTERS_CACHE_KEY="__private__";var BACKLOG_SPACES_CACHE_KEY="__backlog__";var MS365_TEAMS_CACHE_KEY="__ms365__";var MS365_SCOPE_LABEL="\u53C2\u52A0\u3057\u3066\u3044\u308B Teams";var MS365_RESOLVE_MAX_PAGES=20;var BACKLOG_SCOPE_LABEL="\u3053\u306E\u63A5\u7D9A\u5148";var BACKLOG_PROJECT_SCOPE_LABEL="\u3053\u306E Backlog \u30D7\u30ED\u30B8\u30A7\u30AF\u30C8";var PRIVATE_SCOPE_LABEL="\u500B\u4EBA\u30BF\u30B9\u30AF";var TENANT_CACHE_KEY="\
|
|
18
|
-
__tenant__";var TENANT_SCOPE_LABEL="\u3053\u306E\u30C6\u30CA\u30F3\u30C8";var ADMIN_USERS_LIST_PATH="/api/v2/admin/users/list";var PROJECT_MEMBERS_LIMIT=1e4;var DEPARTMENTS_PATH="/api/v2/organization/departments";var POSITIONS_PATH="/api/v2/organization/positions";var JOB_TITLES_PATH="/api/v2/organization/job-titles";var INQUIRY_CATEGORIES_PATH="/api/v2/inquiries/categories";var NOTIFICATIONS_PATH="/api/v2/notifications";var
|
|
19
|
-
/api/v2/workflows";var REPORTS_PATH="/api/v2/reports";var SALES_ESTIMATES_PATH="/api/v2/sales/estimates";var SALES_INVOICES_PATH="/api/v2/sales/invoices";var SALES_CONTRACTS_PATH="/api/v2/sales/contracts";var SALES_INVOICE_AUTO_TEMPLATES_PATH="/api/v2/sales/invoice-auto-templates";var SALES_DEPOSITS_PATH="/api/v2/sales/deposits";var SALES_PURCHASES_PATH="/api/v2/sales/purchases";var SALES_SUPPLIER_PAYMENTS_PATH="
|
|
20
|
-
sales/supplier-payment-schedules";var SALES_BUSINESS_PLACES_PATH="/api/v2/sales/business-places";var SALES_PAYEES_PATH="/api/v2/sales/payees";var SALES_SEAL_IMPRESSIONS_PATH="/api/v2/sales/seal-impressions";var SALES_PURCHASE_AI_MAPPINGS_PATH="/api/v2/sales/purchase-ai-field-mappings";var SALES_ESTIMATE_NO_RULES_PATH="/api/v2/sales/estimate-no-rules";var SALES_INVOICE_NO_RULES_PATH="/api/v2/sales/invoice-no-rules";
|
|
21
|
-
/api/v2/sales/estimate-formats";var SALES_ROUNDING_SETTING_PATH="/api/v2/sales/rounding-setting";var SALES_RECORD_KINDS={estimate:{path:SALES_ESTIMATES_PATH,label:"\u898B\u7A4D"},invoice:{path:SALES_INVOICES_PATH,label:"\u8ACB\u6C42"},contract:{path:SALES_CONTRACTS_PATH,label:"\u53D6\u5F15\u5951\u7D04"},"invoice-auto-template":{path:SALES_INVOICE_AUTO_TEMPLATES_PATH,label:"\u81EA\u52D5\u8ACB\u6C42\u30C6\u30F3\u30D7\u30EC\u30FC\u30C8"},
|
|
22
|
-
path:SALES_PURCHASES_PATH,label:"\u4ED5\u5165"},"supplier-payment":{path:SALES_SUPPLIER_PAYMENTS_PATH,label:"\u652F\u6255"},"supplier-payment-schedule":{path:SALES_SUPPLIER_PAYMENT_SCHEDULES_PATH,label:"\u652F\u6255\u5148\u30DE\u30B9\u30BF"},"business-place":{path:SALES_BUSINESS_PLACES_PATH,label:"\u4E8B\u696D\u6240"},payee:{path:SALES_PAYEES_PATH,label:"\u632F\u8FBC\u5148"},"seal-impression":{path:SALES_SEAL_IMPRESSIONS_PATH,label:"\
|
|
23
|
-
label:"\u4ED5\u5165AI\u30DE\u30C3\u30D4\u30F3\u30B0"},"estimate-no-rule":{path:SALES_ESTIMATE_NO_RULES_PATH,label:"\u898B\u7A4D\u756A\u53F7\u30EB\u30FC\u30EB"},"invoice-no-rule":{path:SALES_INVOICE_NO_RULES_PATH,label:"\u8ACB\u6C42\u756A\u53F7\u30EB\u30FC\u30EB"},"purchase-no-rule":{path:SALES_PURCHASE_NO_RULES_PATH,label:"\u4ED5\u5165\u756A\u53F7\u30EB\u30FC\u30EB"},"estimate-format":{path:SALES_ESTIMATE_FORMATS_PATH,label:"\
|
|
24
|
-
/api/v2/sales/companies";var CUSTOMERS_PATH="/api/v2/customers";var COMPANY_SEARCH_PAGE_LIMIT=100;var COMPANY_SEARCH_MAX_PAGES=10;var CUSTOMER_CHILDREN_PAGE_LIMIT=100;var PROSPECTS_PATH="/api/v2/prospects";var PROSPECT_SEARCH_PAGE_LIMIT=100;var PROSPECT_SEARCH_MAX_PAGES=10;function isExactNumericId(value){return/^[0-9]+$/.test(value)&&String(Number(value))===value}function exactCompanyId(ref,label){if(!isExactNumericId(
|
|
25
|
-
id}\uFF09\u3002\u63A5\u7D9A\u5148\u3092\u78BA\u8A8D\u3057\u3066\u304F\u3060\u3055\u3044\u3002`)}return ref}var ORG_MASTER_LIMIT=1e3;var USER_LIST_MAX_PAGES=100;function isRecord(value){return typeof value==="object"&&value!==null&&!Array.isArray(value)}function str(value){return typeof value==="string"&&value.trim()!==""?value:null}function truthyFlag(value){return value===
|
|
26
|
-
path2),error:null}}catch(err){if(err instanceof ApiError){return{ok:false,status:err.status,json:err.body,error:err.message}}throw err}}}var TASK_MASTERS={status:{path:"task-statuses",envelope:"data",scope:"task-statuses",label:"\u30B9\u30C6\u30FC\u30BF\u30B9"},type:{path:"task-types",envelope:"data",scope:"task-types",label:"\u7A2E\u5225"},category:{path:"task-categories",
|
|
27
|
-
scope:"task-milestones",label:"\u30DE\u30A4\u30EB\u30B9\u30C8\u30FC\u30F3"},label:{path:"task-labels",envelope:"items",scope:"task-labels",label:"\u30E9\u30D9\u30EB"}};var Resolver=class{constructor(client,options){this.client=client;this.options=options;this.get=rawGetVia(client)}client;options;get;privateMastersInFlight=null;async project(ref){const trimmed=ref.trim();if(trimmed===
|
|
28
|
-
return resolveProjectRef(trimmed,this.get,safeProjectIdPolicy)}async taskByKey(key){const trimmed=key.trim();if(!isTaskKey(trimmed)){throw new UsageError(`\u30BF\u30B9\u30AF\u30AD\u30FC\u306E\u5F62\u5F0F\u3067\u306F\u3042\u308A\u307E\u305B\u3093: ${key}`,"\u30AD\u30FC\u306F\u300C\u30D7\u30ED\u30B8\u30A7\u30AF\u30C8\u30B3\u30FC\u30C9-\u756A\u53F7\u300D\u306E\u5F62\u3067\u3059\uFF08\u4F8B: ABC-123\uFF09\u3002")}
|
|
29
|
-
if(res.status===404){throw new ResolveError(`\u30BF\u30B9\u30AF\u304C\u898B\u3064\u304B\u308A\u307E\u305B\u3093: ${trimmed}\uFF08\u5B58\u5728\u3057\u306A\u3044\u304B\u3001\u95B2\u89A7\u3067\u304D\u308B\u30D7\u30ED\u30B8\u30A7\u30AF\u30C8\u306B\u3042\u308A\u307E\u305B\u3093\uFF09`,404)}if(!res.ok){throw new ResolveError(`\u30BF\u30B9\u30AF\u30AD\u30FC\u3092\u89E3\u6C7A\u3067\u304D\u307E\u305B\u3093\u3067\u3057\u305F: ${trimmed}\
|
|
30
|
-
res.status)}const body=isRecord(res.json)?res.json:{};const projectId=str(body["project_id"]);const task=body["task"];if(projectId===null||!isRecord(task)){throw new ResolveError("\u30BF\u30B9\u30AF\u30AD\u30FC\u89E3\u6C7A\u306E\u5FDC\u7B54\u306B project_id / task \u304C\u3042\u308A\u307E\u305B\u3093\u3002\u63A5\u7D9A\u5148\u3092\u78BA\u8A8D\u3057\u3066\u304F\u3060\u3055\u3044\u3002",
|
|
31
|
-
get("/api/v2/user");if(!res.ok){throw new ResolveError(`\u30ED\u30B0\u30A4\u30F3\u4E2D\u306E\u30E6\u30FC\u30B6\u30FC\u3092\u53D6\u5F97\u3067\u304D\u307E\u305B\u3093\u3067\u3057\u305F\uFF08HTTP ${res.status}\uFF09\u3002twp login \u3092\u78BA\u8A8D\u3057\u3066\u304F\u3060\u3055\u3044\u3002`,res.status)}const user=isRecord(res.json)?res.json["user"]:void 0;if(!isRecord(user)||str(user["
|
|
32
|
-
res.status)}return{id:user["id"],name:str(user["name"])??user["id"],email:str(user["email"])}}async status(projectId,input){return resolveNamed(this.applyAlias("status",input),await this.statuses(projectId),{flag:"--status",label:"\u30B9\u30C6\u30FC\u30BF\u30B9"})}async taskType(projectId,input){
|
|
33
|
-
return this.self();const value=this.applyAlias("assignee",input);if(value.trim().toLowerCase()===SELF_REF)return this.self();return resolveNamed(value,await this.members(projectId),{flag,label:"\u30E1\u30F3\u30D0\u30FC"})}async self(){const me=await this.currentUser();return{id:me.id,name:me.
|
|
34
|
-
return requireDefault(await this.
|
|
35
|
-
|
|
36
|
-
/${encodeURIComponent(projectId)}/${spec.path}`),spec.envelope,spec.label))}invalidateTaskMaster(kind,projectId){removeCache({profile:this.options.profile,scope:TASK_MASTERS[kind].scope,project:projectId},this.options.env!==void 0?{env:this.options.env}:{})}async privateStatuses(){return this.
|
|
37
|
-
|
|
38
|
-
await this.privateTaskTypes(),{flag:"--type",label:"\u7A2E\u5225",scope:PRIVATE_SCOPE_LABEL})}async privateTask(ref){const trimmed=ref.trim();const res=await this.get(`${PRIVATE_TASKS_PATH}/${encodeURIComponent(trimmed)}`);if(res.status===404){throw new ResolveError(`\u500B\u4EBA\u30BF\u30B9\u30AF\u304C\u898B\u3064\u304B\u308A\u307E\u305B\u3093: ${trimmed}`,
|
|
39
|
-
\uFF08HTTP ${res.status}\uFF09\u3002\u63A5\u7D9A\u5148\u3068\u30ED\u30B0\u30A4\u30F3\u72B6\u614B\u3092\u78BA\u8A8D\u3057\u3066\u304F\u3060\u3055\u3044\u3002`,res.status)}const task=isRecord(res.json)?res.json["task"]:void 0;if(!isRecord(task)){throw new ResolveError("\u500B\u4EBA\u30BF\u30B9\u30AF\u306E\u5FDC\u7B54\u306B task \u304C\u3042\u308A\u307E\u305B\u3093\u3002\u63A5\u7D9A\u5148\u3092\u78BA\u8A8D\u3057\u3066\u304F\u3060\u3055\u3044\u3002",
|
|
40
|
-
if(!isSafePathSegment(userId)){throw new ResolveError(`\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`)}const res=await this.get(`/api/v2/organization/users/${encodeURIComponent(userId)}/assignments/primary`);if(res.status===404)return null;if(!res.ok){throw new ResolveError(`\u73FE\u5728\u306E\u4E3B\u6240\u5C5E\u3092\u53D6\u5F97\u3067\u304D\u307E\u305B\u3093\u3067\u3057\u305F\uFF08HTTP ${res.
|
|
18
|
+
__tenant__";var TENANT_SCOPE_LABEL="\u3053\u306E\u30C6\u30CA\u30F3\u30C8";var ADMIN_USERS_LIST_PATH="/api/v2/admin/users/list";var PROJECT_MEMBERS_LIMIT=1e4;var DEPARTMENTS_PATH="/api/v2/organization/departments";var POSITIONS_PATH="/api/v2/organization/positions";var JOB_TITLES_PATH="/api/v2/organization/job-titles";var PROCESS_MASTERS_PATH="/api/v2/project/processes";var INQUIRY_CATEGORIES_PATH="/api/v2/inquiries/categories";var NOTIFICATIONS_PATH="/api/v2/notifications";var WORKER_AGENTS_PATH="\
|
|
19
|
+
/api/v2/worker-agents";var NOTIFICATION_COUNT_MAX_PAGES=20;var NOTIFICATION_COUNT_PAGE_LIMIT=100;var WORKFLOWS_PATH="/api/v2/workflows";var REPORTS_PATH="/api/v2/reports";var SALES_ESTIMATES_PATH="/api/v2/sales/estimates";var SALES_INVOICES_PATH="/api/v2/sales/invoices";var SALES_CONTRACTS_PATH="/api/v2/sales/contracts";var SALES_INVOICE_AUTO_TEMPLATES_PATH="/api/v2/sales/invoice-auto-templates";var SALES_DEPOSITS_PATH="/api/v2/sales/deposits";var SALES_PURCHASES_PATH="/api/v2/sales/purchases";var SALES_SUPPLIER_PAYMENTS_PATH="\
|
|
20
|
+
/api/v2/sales/supplier-payments";var SALES_SUPPLIER_PAYMENT_SCHEDULES_PATH="/api/v2/sales/supplier-payment-schedules";var SALES_BUSINESS_PLACES_PATH="/api/v2/sales/business-places";var SALES_PAYEES_PATH="/api/v2/sales/payees";var SALES_SEAL_IMPRESSIONS_PATH="/api/v2/sales/seal-impressions";var SALES_PURCHASE_AI_MAPPINGS_PATH="/api/v2/sales/purchase-ai-field-mappings";var SALES_ESTIMATE_NO_RULES_PATH="/api/v2/sales/estimate-no-rules";var SALES_INVOICE_NO_RULES_PATH="/api/v2/sales/invoice-no-rules";
|
|
21
|
+
var SALES_PURCHASE_NO_RULES_PATH="/api/v2/sales/purchase-no-rules";var SALES_ESTIMATE_FORMATS_PATH="/api/v2/sales/estimate-formats";var SALES_ROUNDING_SETTING_PATH="/api/v2/sales/rounding-setting";var SALES_RECORD_KINDS={estimate:{path:SALES_ESTIMATES_PATH,label:"\u898B\u7A4D"},invoice:{path:SALES_INVOICES_PATH,label:"\u8ACB\u6C42"},contract:{path:SALES_CONTRACTS_PATH,label:"\u53D6\u5F15\u5951\u7D04"},"invoice-auto-template":{path:SALES_INVOICE_AUTO_TEMPLATES_PATH,label:"\u81EA\u52D5\u8ACB\u6C42\u30C6\u30F3\u30D7\u30EC\u30FC\u30C8"},
|
|
22
|
+
deposit:{path:SALES_DEPOSITS_PATH,label:"\u5165\u91D1"},purchase:{path:SALES_PURCHASES_PATH,label:"\u4ED5\u5165"},"supplier-payment":{path:SALES_SUPPLIER_PAYMENTS_PATH,label:"\u652F\u6255"},"supplier-payment-schedule":{path:SALES_SUPPLIER_PAYMENT_SCHEDULES_PATH,label:"\u652F\u6255\u5148\u30DE\u30B9\u30BF"},"business-place":{path:SALES_BUSINESS_PLACES_PATH,label:"\u4E8B\u696D\u6240"},payee:{path:SALES_PAYEES_PATH,label:"\u632F\u8FBC\u5148"},"seal-impression":{path:SALES_SEAL_IMPRESSIONS_PATH,label:"\
|
|
23
|
+
\u5370\u5F71"},"purchase-ai-mapping":{path:SALES_PURCHASE_AI_MAPPINGS_PATH,label:"\u4ED5\u5165AI\u30DE\u30C3\u30D4\u30F3\u30B0"},"estimate-no-rule":{path:SALES_ESTIMATE_NO_RULES_PATH,label:"\u898B\u7A4D\u756A\u53F7\u30EB\u30FC\u30EB"},"invoice-no-rule":{path:SALES_INVOICE_NO_RULES_PATH,label:"\u8ACB\u6C42\u756A\u53F7\u30EB\u30FC\u30EB"},"purchase-no-rule":{path:SALES_PURCHASE_NO_RULES_PATH,label:"\u4ED5\u5165\u756A\u53F7\u30EB\u30FC\u30EB"},"estimate-format":{path:SALES_ESTIMATE_FORMATS_PATH,label:"\
|
|
24
|
+
\u898B\u7A4D\u30D5\u30A9\u30FC\u30DE\u30C3\u30C8"}};var SALES_COMPANIES_PATH="/api/v2/sales/companies";var CUSTOMERS_PATH="/api/v2/customers";var COMPANY_SEARCH_PAGE_LIMIT=100;var COMPANY_SEARCH_MAX_PAGES=10;var CUSTOMER_CHILDREN_PAGE_LIMIT=100;var PROSPECTS_PATH="/api/v2/prospects";var PROSPECT_SEARCH_PAGE_LIMIT=100;var PROSPECT_SEARCH_MAX_PAGES=10;function isExactNumericId(value){return/^[0-9]+$/.test(value)&&String(Number(value))===value}function exactCompanyId(ref,label){if(!isExactNumericId(
|
|
25
|
+
ref.id)){throw new ResolveError(`${label}\u4E00\u89A7\u306E id \u304C\u6574\u6570\u3067\u306F\u3042\u308A\u307E\u305B\u3093\uFF08${ref.id}\uFF09\u3002\u63A5\u7D9A\u5148\u3092\u78BA\u8A8D\u3057\u3066\u304F\u3060\u3055\u3044\u3002`)}return ref}var ORG_MASTER_LIMIT=1e3;var USER_LIST_MAX_PAGES=100;function isRecord(value){return typeof value==="object"&&value!==null&&!Array.isArray(value)}function str(value){return typeof value==="string"&&value.trim()!==""?value:null}function truthyFlag(value){return value===
|
|
26
|
+
true||value===1}function rawGetVia(client){return async path2=>{try{return{ok:true,status:200,json:await client.request("GET",path2),error:null}}catch(err){if(err instanceof ApiError){return{ok:false,status:err.status,json:err.body,error:err.message}}throw err}}}var TASK_MASTERS={status:{path:"task-statuses",envelope:"data",scope:"task-statuses",label:"\u30B9\u30C6\u30FC\u30BF\u30B9"},type:{path:"task-types",envelope:"data",scope:"task-types",label:"\u7A2E\u5225"},category:{path:"task-categories",
|
|
27
|
+
envelope:"data",scope:"task-categories",label:"\u30AB\u30C6\u30B4\u30EA"},milestone:{path:"task-milestones",envelope:"data",scope:"task-milestones",label:"\u30DE\u30A4\u30EB\u30B9\u30C8\u30FC\u30F3"},label:{path:"task-labels",envelope:"items",scope:"task-labels",label:"\u30E9\u30D9\u30EB"}};var Resolver=class{constructor(client,options){this.client=client;this.options=options;this.get=rawGetVia(client)}client;options;get;privateMastersInFlight=null;async project(ref){const trimmed=ref.trim();if(trimmed===
|
|
28
|
+
"")throw new UsageError("\u30D7\u30ED\u30B8\u30A7\u30AF\u30C8\u306E\u30B3\u30FC\u30C9\u304B ID \u3092\u6307\u5B9A\u3057\u3066\u304F\u3060\u3055\u3044");return resolveProjectRef(trimmed,this.get,safeProjectIdPolicy)}async taskByKey(key){const trimmed=key.trim();if(!isTaskKey(trimmed)){throw new UsageError(`\u30BF\u30B9\u30AF\u30AD\u30FC\u306E\u5F62\u5F0F\u3067\u306F\u3042\u308A\u307E\u305B\u3093: ${key}`,"\u30AD\u30FC\u306F\u300C\u30D7\u30ED\u30B8\u30A7\u30AF\u30C8\u30B3\u30FC\u30C9-\u756A\u53F7\u300D\u306E\u5F62\u3067\u3059\uFF08\u4F8B: ABC-123\uFF09\u3002")}
|
|
29
|
+
const res=await this.get(`/api/v2/tasks/resolve-by-key/${encodeURIComponent(trimmed)}`);if(res.status===404){throw new ResolveError(`\u30BF\u30B9\u30AF\u304C\u898B\u3064\u304B\u308A\u307E\u305B\u3093: ${trimmed}\uFF08\u5B58\u5728\u3057\u306A\u3044\u304B\u3001\u95B2\u89A7\u3067\u304D\u308B\u30D7\u30ED\u30B8\u30A7\u30AF\u30C8\u306B\u3042\u308A\u307E\u305B\u3093\uFF09`,404)}if(!res.ok){throw new ResolveError(`\u30BF\u30B9\u30AF\u30AD\u30FC\u3092\u89E3\u6C7A\u3067\u304D\u307E\u305B\u3093\u3067\u3057\u305F: ${trimmed}\
|
|
30
|
+
\uFF08HTTP ${res.status}\uFF09\u3002\u63A5\u7D9A\u5148\u3068\u30ED\u30B0\u30A4\u30F3\u72B6\u614B\u3092\u78BA\u8A8D\u3057\u3066\u304F\u3060\u3055\u3044\u3002`,res.status)}const body=isRecord(res.json)?res.json:{};const projectId=str(body["project_id"]);const task=body["task"];if(projectId===null||!isRecord(task)){throw new ResolveError("\u30BF\u30B9\u30AF\u30AD\u30FC\u89E3\u6C7A\u306E\u5FDC\u7B54\u306B project_id / task \u304C\u3042\u308A\u307E\u305B\u3093\u3002\u63A5\u7D9A\u5148\u3092\u78BA\u8A8D\u3057\u3066\u304F\u3060\u3055\u3044\u3002",
|
|
31
|
+
res.status)}safeProjectIdPolicy.assertId(projectId);return{projectId,task}}async currentUser(){const res=await this.get("/api/v2/user");if(!res.ok){throw new ResolveError(`\u30ED\u30B0\u30A4\u30F3\u4E2D\u306E\u30E6\u30FC\u30B6\u30FC\u3092\u53D6\u5F97\u3067\u304D\u307E\u305B\u3093\u3067\u3057\u305F\uFF08HTTP ${res.status}\uFF09\u3002twp login \u3092\u78BA\u8A8D\u3057\u3066\u304F\u3060\u3055\u3044\u3002`,res.status)}const user=isRecord(res.json)?res.json["user"]:void 0;if(!isRecord(user)||str(user["\
|
|
32
|
+
id"])===null){throw new ResolveError("\u30E6\u30FC\u30B6\u30FC\u53D6\u5F97\u306E\u5FDC\u7B54\u306B user.id \u304C\u3042\u308A\u307E\u305B\u3093\u3002\u63A5\u7D9A\u5148\u3092\u78BA\u8A8D\u3057\u3066\u304F\u3060\u3055\u3044\u3002",res.status)}return{id:user["id"],name:str(user["name"])??user["id"],email:str(user["email"])}}async status(projectId,input){return resolveNamed(this.applyAlias("status",input),await this.statuses(projectId),{flag:"--status",label:"\u30B9\u30C6\u30FC\u30BF\u30B9"})}async taskType(projectId,input){
|
|
33
|
+
return resolveNamed(this.applyAlias("type",input),await this.taskTypes(projectId),{flag:"--type",label:"\u7A2E\u5225"})}async assignee(projectId,input,flag="--assignee"){if(input.trim().toLowerCase()===SELF_REF)return this.self();const value=this.applyAlias("assignee",input);if(value.trim().toLowerCase()===SELF_REF)return this.self();return resolveNamed(value,await this.members(projectId),{flag,label:"\u30E1\u30F3\u30D0\u30FC"})}async self(){const me=await this.currentUser();return{id:me.id,name:me.
|
|
34
|
+
name,...me.email!==null?{aliases:[me.email]}:{}}}async defaultStatus(projectId){return requireDefault(await this.statuses(projectId),{flag:"--status",label:"\u30B9\u30C6\u30FC\u30BF\u30B9"})}async defaultTaskType(projectId){return requireDefault(await this.taskTypes(projectId),{flag:"--type",label:"\u7A2E\u5225"})}async statuses(projectId){return namedFromRows(await this.taskMasterRows("status",projectId),"\u30B9\u30C6\u30FC\u30BF\u30B9",codedMasterRow)}async taskTypes(projectId){return namedFromRows(
|
|
35
|
+
await this.taskMasterRows("type",projectId),"\u7A2E\u5225",codedMasterRow)}async taskMaster(kind,projectId,input,flag){const spec=TASK_MASTERS[kind];return resolveNamed(input,await this.taskMasterRefs(kind,projectId),{flag,label:spec.label})}async taskMasterRefs(kind,projectId){const spec=TASK_MASTERS[kind];return namedFromRows(await this.taskMasterRows(kind,projectId),spec.label,codedMasterRow)}async privateTaskMaster(envelope,input,flag,label){return resolveNamed(input,await this.privateMasters(
|
|
36
|
+
envelope,label),{flag,label,scope:PRIVATE_SCOPE_LABEL})}async taskMasterRows(kind,projectId){const spec=TASK_MASTERS[kind];return this.cached(spec.scope,projectId,async()=>rawListFrom(await this.get(`/api/v2/projects/${encodeURIComponent(projectId)}/${spec.path}`),spec.envelope,spec.label))}invalidateTaskMaster(kind,projectId){removeCache({profile:this.options.profile,scope:TASK_MASTERS[kind].scope,project:projectId},this.options.env!==void 0?{env:this.options.env}:{})}async privateStatuses(){return this.
|
|
37
|
+
privateMasters("statuses","\u30B9\u30C6\u30FC\u30BF\u30B9")}async privateTaskTypes(){return this.privateMasters("types","\u7A2E\u5225")}async privateStatus(input){return resolveNamed(this.applyAlias("status",input),await this.privateStatuses(),{flag:"--status",label:"\u30B9\u30C6\u30FC\u30BF\u30B9",scope:PRIVATE_SCOPE_LABEL})}async privateTaskType(input){return resolveNamed(this.applyAlias("type",input),await this.privateTaskTypes(),{flag:"--type",label:"\u7A2E\u5225",scope:PRIVATE_SCOPE_LABEL})}async privateDefaultStatus(){
|
|
38
|
+
return requireDefault(await this.privateStatuses(),{flag:"--status",label:"\u30B9\u30C6\u30FC\u30BF\u30B9",scope:PRIVATE_SCOPE_LABEL})}async privateDefaultTaskType(){return requireDefault(await this.privateTaskTypes(),{flag:"--type",label:"\u7A2E\u5225",scope:PRIVATE_SCOPE_LABEL})}async privateTask(ref){const trimmed=ref.trim();const res=await this.get(`${PRIVATE_TASKS_PATH}/${encodeURIComponent(trimmed)}`);if(res.status===404){throw new ResolveError(`\u500B\u4EBA\u30BF\u30B9\u30AF\u304C\u898B\u3064\u304B\u308A\u307E\u305B\u3093: ${trimmed}`,
|
|
39
|
+
404)}if(!res.ok){throw new ResolveError(`\u500B\u4EBA\u30BF\u30B9\u30AF\u3092\u53D6\u5F97\u3067\u304D\u307E\u305B\u3093\u3067\u3057\u305F: ${trimmed}\uFF08HTTP ${res.status}\uFF09\u3002\u63A5\u7D9A\u5148\u3068\u30ED\u30B0\u30A4\u30F3\u72B6\u614B\u3092\u78BA\u8A8D\u3057\u3066\u304F\u3060\u3055\u3044\u3002`,res.status)}const task=isRecord(res.json)?res.json["task"]:void 0;if(!isRecord(task)){throw new ResolveError("\u500B\u4EBA\u30BF\u30B9\u30AF\u306E\u5FDC\u7B54\u306B task \u304C\u3042\u308A\u307E\u305B\u3093\u3002\u63A5\u7D9A\u5148\u3092\u78BA\u8A8D\u3057\u3066\u304F\u3060\u3055\u3044\u3002",
|
|
40
|
+
res.status)}return task}async primaryAssignment(userId){if(!isSafePathSegment(userId)){throw new ResolveError(`\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`)}const res=await this.get(`/api/v2/organization/users/${encodeURIComponent(userId)}/assignments/primary`);if(res.status===404)return null;if(!res.ok){throw new ResolveError(`\u73FE\u5728\u306E\u4E3B\u6240\u5C5E\u3092\u53D6\u5F97\u3067\u304D\u307E\u305B\u3093\u3067\u3057\u305F\uFF08HTTP ${res.
|
|
41
41
|
status}${res.error?`: ${res.error}`:""}\uFF09\u3002`,res.status)}const assignment=isRecord(res.json)?res.json["assignment"]:void 0;if(!isRecord(assignment)||typeof assignment["id"]!=="string"){throw new ResolveError("\u4E3B\u6240\u5C5E\u306E\u5FDC\u7B54\u306B assignment.id \u304C\u3042\u308A\u307E\u305B\u3093\u3002\u63A5\u7D9A\u5148\u3092\u78BA\u8A8D\u3057\u3066\u304F\u3060\u3055\u3044\u3002",res.status)}return assignment}async assignments(userId){if(!isSafePathSegment(userId)){throw new ResolveError(
|
|
42
42
|
`\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`)}const res=await this.get(`/api/v2/organization/users/${encodeURIComponent(userId)}/assignments`);if(!res.ok){throw new ResolveError(`\u6240\u5C5E\u306E\u4E00\u89A7\u3092\u53D6\u5F97\u3067\u304D\u307E\u305B\u3093\u3067\u3057\u305F\uFF08HTTP ${res.status}${res.error?`: ${res.error}`:""}\uFF09\u3002`,res.status)}const list=isRecord(
|
|
43
43
|
res.json)?res.json["list"]:void 0;if(!Array.isArray(list)||!list.every(isRecord)){throw new ResolveError("\u6240\u5C5E\u4E00\u89A7\u306E\u5FDC\u7B54\u306B list \u914D\u5217\u304C\u3042\u308A\u307E\u305B\u3093\u3002\u63A5\u7D9A\u5148\u3092\u78BA\u8A8D\u3057\u3066\u304F\u3060\u3055\u3044\u3002",res.status)}return list}async privateMasters(envelope,label){return namedFromRows(await this.privateMasterRows(envelope,label),label,codedMasterRow)}async privateMasterRows(envelope,label){return this.cached(
|
|
@@ -50,30 +50,32 @@ userRow),failure:null}}async visibleUsers(){return this.cached("admin-users-visi
|
|
|
50
50
|
const query=new URLSearchParams({limit:"100"});if(cursor!==null)query.set("cursor",cursor);const res=await this.get(`${ADMIN_USERS_LIST_PATH}?${query.toString()}`);rows.push(...rawListFrom(res,"items","\u30E6\u30FC\u30B6\u30FC"));const body=isRecord(res.json)?res.json:{};if(body["has_more"]===false)break;const next=str(body["next_cursor"]);if(body["has_more"]!==true||next===null){throw new ResolveError("\u30E6\u30FC\u30B6\u30FC\u4E00\u89A7\u306E\u5FDC\u7B54\u306B has_more / next_cursor \u304C\u3042\u308A\u307E\u305B\u3093\u3002\u63A5\u7D9A\u5148\u3092\u78BA\u8A8D\u3057\u3066\u304F\u3060\u3055\u3044\u3002",
|
|
51
51
|
res.status)}cursor=next}return namedFromRows(rows,"\u30E6\u30FC\u30B6\u30FC",userRow)})}async department(input,flag="--department"){return resolveNamed(input,await this.departments(),{flag,label:"\u90E8\u7F72",scope:TENANT_SCOPE_LABEL})}async position(input,flag="--position"){return resolveNamed(input,await this.positions(),{flag,label:"\u5F79\u8077",scope:TENANT_SCOPE_LABEL})}async jobTitle(input,flag="--job-title"){return resolveNamed(input,await this.jobTitles(),{flag,label:"\u8077\u4F4D",scope:TENANT_SCOPE_LABEL})}async departments(){
|
|
52
52
|
return this.cached("departments",TENANT_CACHE_KEY,async()=>namedFromRows(masterList(await this.get(`${DEPARTMENTS_PATH}?limit=${ORG_MASTER_LIMIT}`),"\u90E8\u7F72"),"\u90E8\u7F72",codedMasterRow))}async positions(){return this.cached("positions",TENANT_CACHE_KEY,async()=>namedFromRows(masterList(await this.get(`${POSITIONS_PATH}?limit=${ORG_MASTER_LIMIT}`),"\u5F79\u8077"),"\u5F79\u8077",codedMasterRow))}async jobTitles(){return this.cached("job-titles",TENANT_CACHE_KEY,async()=>namedFromRows(masterList(
|
|
53
|
-
await this.get(`${JOB_TITLES_PATH}?limit=${ORG_MASTER_LIMIT}`),"\u8077\u4F4D"),"\u8077\u4F4D",codedMasterRow))}async
|
|
54
|
-
|
|
55
|
-
|
|
56
|
-
|
|
57
|
-
\
|
|
58
|
-
|
|
59
|
-
"\
|
|
60
|
-
|
|
61
|
-
|
|
62
|
-
|
|
63
|
-
|
|
64
|
-
|
|
65
|
-
|
|
66
|
-
|
|
67
|
-
const path2=`${SALES_COMPANIES_PATH}/${id}`;const res=await this.get(path2);if(res.status===401||res.status===403){throw new ApiError(res.status,isRecord(res.json)?res.json:null,"GET",path2)}if(res.status===404)
|
|
68
|
-
|
|
69
|
-
const path2=`${
|
|
70
|
-
void 0;if(!isRecord(res.json)||res.json["result"]!==true||!isRecord(data)||data["id"]!==id){throw new ResolveError(
|
|
71
|
-
|
|
72
|
-
|
|
73
|
-
|
|
74
|
-
|
|
75
|
-
|
|
76
|
-
const
|
|
53
|
+
await this.get(`${JOB_TITLES_PATH}?limit=${ORG_MASTER_LIMIT}`),"\u8077\u4F4D"),"\u8077\u4F4D",codedMasterRow))}async workerAgent(input,flag="<\u30A8\u30FC\u30B8\u30A7\u30F3\u30C8>"){const trimmed=input.trim();if(trimmed==="")throw new UsageError(`${flag} \u306B\u7A7A\u306E\u5024\u306F\u6307\u5B9A\u3067\u304D\u307E\u305B\u3093`);if(ULID_RE.test(trimmed.toUpperCase()))return{id:trimmed.toUpperCase(),name:trimmed};const res=await this.get(WORKER_AGENTS_PATH);if(res.status===401||res.status===403){throw new ApiError(
|
|
54
|
+
res.status,isRecord(res.json)?res.json:null,"GET",WORKER_AGENTS_PATH)}const rows=rawListFrom(res,"items","\u30EF\u30FC\u30AB\u30FC\u30A8\u30FC\u30B8\u30A7\u30F3\u30C8");return resolveNamed(trimmed,namedFromRows(rows,"\u30EF\u30FC\u30AB\u30FC\u30A8\u30FC\u30B8\u30A7\u30F3\u30C8",workerAgentRow),{flag,label:"\u30EF\u30FC\u30AB\u30FC\u30A8\u30FC\u30B8\u30A7\u30F3\u30C8",scope:"\u3042\u306A\u305F\u304C\u53C2\u7167\u3067\u304D\u308B\u7BC4\u56F2"})}async processMaster(input,flag="--process"){return resolveNamed(
|
|
55
|
+
input,await this.processMasters(),{flag,label:"\u5DE5\u7A0B\u30DE\u30B9\u30BF",scope:TENANT_SCOPE_LABEL})}async processMasters(){return this.cached("process-masters",TENANT_CACHE_KEY,async()=>namedFromRows(masterList(await this.get(`${PROCESS_MASTERS_PATH}?limit=${ORG_MASTER_LIMIT}`),"\u5DE5\u7A0B\u30DE\u30B9\u30BF"),"\u5DE5\u7A0B\u30DE\u30B9\u30BF",codedMasterRow))}async workflow(input,flag="<\u30EF\u30FC\u30AF\u30D5\u30ED\u30FC>",category){return resolveNamed(input,await this.applicableWorkflows(
|
|
56
|
+
category),{flag,label:category===void 0?"\u7533\u8ACB\u3067\u304D\u308B\u30EF\u30FC\u30AF\u30D5\u30ED\u30FC":`\u7533\u8ACB\u3067\u304D\u308B\u30EF\u30FC\u30AF\u30D5\u30ED\u30FC\uFF08${category}\uFF09`,scope:TENANT_SCOPE_LABEL})}async workflowDefinition(id){if(!isSafePathSegment(id)){throw new ResolveError(`\u30EF\u30FC\u30AF\u30D5\u30ED\u30FC ID \u3092\u30D1\u30B9\u306B\u4F7F\u3048\u307E\u305B\u3093: ${id}\u3002\u63A5\u7D9A\u5148\u3092\u78BA\u8A8D\u3057\u3066\u304F\u3060\u3055\u3044\u3002`)}const res=await this.
|
|
57
|
+
get(`${WORKFLOWS_PATH}/${encodeURIComponent(id)}`);if(res.status===404){throw new ResolveError(`\u7533\u8ACB\u66F8\u304C\u898B\u3064\u304B\u308A\u307E\u305B\u3093: ${id}`,404)}if(!res.ok){throw new ResolveError(`\u7533\u8ACB\u66F8\u306E\u5B9A\u7FA9\u3092\u53D6\u5F97\u3067\u304D\u307E\u305B\u3093\u3067\u3057\u305F: ${id}\uFF08HTTP ${res.status}\uFF09\u3002\u63A5\u7D9A\u5148\u3068\u30ED\u30B0\u30A4\u30F3\u72B6\u614B\u3092\u78BA\u8A8D\u3057\u3066\u304F\u3060\u3055\u3044\u3002`,res.status)}const workflow=isRecord(
|
|
58
|
+
res.json)?res.json["workflow"]:void 0;if(!isRecord(workflow)){throw new ResolveError("\u7533\u8ACB\u66F8\u306E\u5FDC\u7B54\u306B workflow \u304C\u3042\u308A\u307E\u305B\u3093\u3002\u63A5\u7D9A\u5148\u3092\u78BA\u8A8D\u3057\u3066\u304F\u3060\u3055\u3044\u3002",res.status)}return workflow}async applicableWorkflows(category){const path2=category===void 0?`${WORKFLOWS_PATH}/applicable`:`${WORKFLOWS_PATH}/applicable/${encodeURIComponent(category)}`;const scope=category===void 0?"workflows-applicable":
|
|
59
|
+
`workflows-applicable-${category}`;return this.cached(scope,TENANT_CACHE_KEY,async()=>{const res=await this.get(path2);const rows=rawListFrom(res,"list","\u30EF\u30FC\u30AF\u30D5\u30ED\u30FC");const sum=isRecord(res.json)?res.json["sum"]:void 0;if(typeof sum==="number"&&sum>rows.length){throw new ResolveError(`\u30EF\u30FC\u30AF\u30D5\u30ED\u30FC\u4E00\u89A7\u304C ${sum} \u4EF6\u4E2D ${rows.length} \u4EF6\u3067\u5207\u308A\u8A70\u3081\u3089\u308C\u305F\u305F\u3081\u3001\u540D\u524D\u3067\u89E3\u6C7A\u3067\u304D\u307E\u305B\u3093\u3002ID \u3067\u6307\u5B9A\u3057\u3066\u304F\u3060\u3055\u3044\u3002`,
|
|
60
|
+
res.status)}return namedFromRows(rows,"\u30EF\u30FC\u30AF\u30D5\u30ED\u30FC",row=>({id:str(row["id"]),name:str(row["name"]),code:null}))})}async reportFormat(input,flag="--format",usableOnly=false){const load=async()=>rawListFrom(await this.get(`${REPORTS_PATH}/formats${usableOnly?"?include_unavailable=false":""}`),"formats","\u30EC\u30DD\u30FC\u30C8\u30D5\u30A9\u30FC\u30DE\u30C3\u30C8");const rows=usableOnly?await load():await this.cached("report-formats",TENANT_CACHE_KEY,load);return resolveNamed(
|
|
61
|
+
input,namedFromRows(rows,"\u30EC\u30DD\u30FC\u30C8\u30D5\u30A9\u30FC\u30DE\u30C3\u30C8",row=>({id:str(row["id"]),name:str(row["name"]),code:str(row["code"])})),{flag,label:usableOnly?"\u4F5C\u6210\u3067\u304D\u308B\u30EC\u30DD\u30FC\u30C8\u30D5\u30A9\u30FC\u30DE\u30C3\u30C8":"\u30EC\u30DD\u30FC\u30C8\u30D5\u30A9\u30FC\u30DE\u30C3\u30C8",scope:TENANT_SCOPE_LABEL})}async company(input,options){const trimmed=input.trim();if(trimmed==="")throw new UsageError(`${options.flag} \u306B\u7A7A\u306E\u5024\u306F\u6307\u5B9A\u3067\u304D\u307E\u305B\u3093`);
|
|
62
|
+
if(isExactNumericId(trimmed))return options.mustExist===true?this.companyById(trimmed,options):{id:trimmed,name:trimmed};if(/^[0-9]+$/.test(trimmed)){throw new UsageError(`${options.flag} \u306E ID \u306F\u5148\u982D\u306B 0 \u3092\u4ED8\u3051\u306A\u3044\u6570\u5B57\u3067\u6307\u5B9A\u3057\u3066\u304F\u3060\u3055\u3044: ${trimmed}`)}const label=options.source==="customer"?"\u9867\u5BA2":"\u53D6\u5F15\u5148";const base=options.source==="customer"?CUSTOMERS_PATH:SALES_COMPANIES_PATH;const rows=[];
|
|
63
|
+
let truncated=false;for(let page=1;;page+=1){const path2=`${base}?keyword=${encodeURIComponent(trimmed)}&sort_column=id&sort_direction=desc&page_limit=${COMPANY_SEARCH_PAGE_LIMIT}&page_no=${page}`;const res=await this.get(path2);if(res.status===401||res.status===403){throw new ApiError(res.status,isRecord(res.json)?res.json:null,"GET",path2)}for(const row of rawListFrom(res,"list",label))rows.push(row);const pageSum=isRecord(res.json)?res.json["page_sum"]:void 0;if(!Number.isInteger(pageSum)){throw new ResolveError(
|
|
64
|
+
`${label}\u4E00\u89A7\u306E\u5FDC\u7B54\u306B page_sum \u304C\u3042\u308A\u307E\u305B\u3093\u3002\u63A5\u7D9A\u5148\u3092\u78BA\u8A8D\u3057\u3066\u304F\u3060\u3055\u3044\u3002`,res.status)}if(page>=pageSum)break;if(page>=COMPANY_SEARCH_MAX_PAGES){truncated=true;break}}const listCommand=options.source==="customer"?"twp customer list":"twp company list";if(rows.length===0){throw new UsageError(`${options.flag} \u306E\u300C${trimmed}\u300D\u3092\u540D\u524D\u306B\u542B\u3080${label}\u304C\u3042\u308A\u307E\u305B\u3093`,
|
|
65
|
+
`${label}\u306F ID \u3067\u3082\u6307\u5B9A\u3067\u304D\u307E\u3059\uFF08${listCommand} --keyword <\u8A9E> \u306E id \u5217\uFF09\u3002`)}const refs=namedFromRows(rows,label,row=>({id:str(row["id"]),name:str(row["company_name"]),code:null,aliases:[str(row["company_short_name"]),str(row["company_name_kana"])].filter(v=>v!==null)}));const needle=trimmed.toLowerCase();const hits=refs.filter(ref=>[ref.name,...ref.aliases??[]].some(key=>key.trim().toLowerCase()===needle));const ctx={flag:options.flag,
|
|
66
|
+
label,scope:TENANT_SCOPE_LABEL};if(truncated){throw new UsageError(`${options.flag} \u306E\u300C${trimmed}\u300D\u3092\u540D\u524D\u306B\u542B\u3080${label}\u304C\u591A\u3059\u304E\u308B\u305F\u3081\uFF08${COMPANY_SEARCH_MAX_PAGES*COMPANY_SEARCH_PAGE_LIMIT} \u4EF6\u3092\u8D85\u3048\u3066\uFF09\u4E00\u610F\u306B\u6C7A\u3081\u3089\u308C\u307E\u305B\u3093`,`ID \u3067\u6307\u5B9A\u3057\u3066\u304F\u3060\u3055\u3044\uFF08${listCommand} --keyword <\u8A9E> \u306E id \u5217\uFF09\u3002`)}if(hits.length>
|
|
67
|
+
0)return exactCompanyId(await resolveNamed(trimmed,hits,ctx),label);return exactCompanyId(await resolveNamed(trimmed,refs,ctx),label)}async companyById(id,options){const label=options.source==="customer"?"\u9867\u5BA2":"\u53D6\u5F15\u5148";const path2=`${options.source==="customer"?CUSTOMERS_PATH:SALES_COMPANIES_PATH}/${id}`;const res=await this.get(path2);if(res.status===401||res.status===403){throw new ApiError(res.status,isRecord(res.json)?res.json:null,"GET",path2)}if(res.status===404)throw new UsageError(
|
|
68
|
+
`${options.flag} \u306E ID ${id} \u306E${label}\u306F\u3042\u308A\u307E\u305B\u3093`);if(!res.ok)throw new ResolveError(`${label}\u3092\u53D6\u5F97\u3067\u304D\u307E\u305B\u3093\u3067\u3057\u305F\uFF08HTTP ${res.status}\uFF09\u3002`,res.status);const data=isRecord(res.json)?res.json["data"]:void 0;const name=isRecord(data)?str(data["company_name"]):null;if(!isRecord(data)||data["id"]!==id||name===null){throw new ResolveError(`${label}\u306E\u5FDC\u7B54\u306B data.id / company_name \u304C\u3042\u308A\u307E\u305B\u3093\u3002\u63A5\u7D9A\u5148\u3092\u78BA\u8A8D\u3057\u3066\u304F\u3060\u3055\u3044\u3002`,
|
|
69
|
+
res.status)}return{id,name}}async companyRecord(id){if(!isExactNumericId(id))throw new UsageError(`\u53D6\u5F15\u5148\u306E ID \u306F\u5148\u982D\u306B 0 \u3092\u4ED8\u3051\u306A\u3044\u6570\u5B57\u3067\u6307\u5B9A\u3057\u3066\u304F\u3060\u3055\u3044: ${id}`);const path2=`${SALES_COMPANIES_PATH}/${id}`;const res=await this.get(path2);if(res.status===401||res.status===403){throw new ApiError(res.status,isRecord(res.json)?res.json:null,"GET",path2)}if(res.status===404)return null;if(!res.ok)throw new ResolveError(
|
|
70
|
+
`\u53D6\u5F15\u5148\u3092\u53D6\u5F97\u3067\u304D\u307E\u305B\u3093\u3067\u3057\u305F\uFF08HTTP ${res.status}\uFF09\u3002`,res.status);const data=isRecord(res.json)?res.json["data"]:void 0;if(!isRecord(res.json)||res.json["result"]!==true||!isRecord(data)||data["id"]!==id){throw new ResolveError("\u53D6\u5F15\u5148\u306E\u5FDC\u7B54\u306B data.id \u304C\u3042\u308A\u307E\u305B\u3093\u3002\u63A5\u7D9A\u5148\u3092\u78BA\u8A8D\u3057\u3066\u304F\u3060\u3055\u3044\u3002",res.status)}return data}async salesRecord(kind,id,flag){
|
|
71
|
+
const{label,path:base}=SALES_RECORD_KINDS[kind];if(!isExactNumericId(id))throw new UsageError(`${flag} \u306E${label} ID \u306F\u5148\u982D\u306B 0 \u3092\u4ED8\u3051\u306A\u3044\u6570\u5B57\u3067\u6307\u5B9A\u3057\u3066\u304F\u3060\u3055\u3044: ${id}`);const path2=`${base}/${id}`;const res=await this.get(path2);if(res.status===401||res.status===403){throw new ApiError(res.status,isRecord(res.json)?res.json:null,"GET",path2)}if(res.status===404)throw new UsageError(`${flag} \u306E ID ${id} \u306E${label}\
|
|
72
|
+
\u306F\u3042\u308A\u307E\u305B\u3093`);if(!res.ok)throw new ResolveError(`${label}\u3092\u53D6\u5F97\u3067\u304D\u307E\u305B\u3093\u3067\u3057\u305F\uFF08HTTP ${res.status}\uFF09\u3002`,res.status);const data=isRecord(res.json)?res.json["data"]:void 0;if(!isRecord(res.json)||res.json["result"]!==true||!isRecord(data)||data["id"]!==id){throw new ResolveError(`${label}\u306E\u5FDC\u7B54\u306B data.id \u304C\u3042\u308A\u307E\u305B\u3093\u3002\u63A5\u7D9A\u5148\u3092\u78BA\u8A8D\u3057\u3066\u304F\u3060\u3055\u3044\u3002`,
|
|
73
|
+
res.status)}return data}async salesJson(path2,label){const res=await this.get(path2);if(res.status===401||res.status===403){throw new ApiError(res.status,isRecord(res.json)?res.json:null,"GET",path2)}if(!res.ok)throw new ResolveError(`${label}\u3092\u53D6\u5F97\u3067\u304D\u307E\u305B\u3093\u3067\u3057\u305F\uFF08HTTP ${res.status}\uFF09\u3002`,res.status);if(!isRecord(res.json)||res.json["result"]!==true)throw new ResolveError(`${label}\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`,
|
|
74
|
+
res.status);return res.json}async invoiceByNumber(invoiceNo){const path2=`${SALES_INVOICES_PATH}?keyword=${encodeURIComponent(invoiceNo)}&page_limit=100&page_no=1`;const res=await this.get(path2);if(res.status===401||res.status===403){throw new ApiError(res.status,isRecord(res.json)?res.json:null,"GET",path2)}const rows=rawListFrom(res,"list","\u8ACB\u6C42");const all=rows.flatMap(row=>[row,...Array.isArray(row["children"])?row["children"].filter(isRecord):[]]);const hits=all.filter(row=>row["in\
|
|
75
|
+
voice_no"]===invoiceNo);return hits.length===1?hits[0]:null}async estimateAllocations(estimateId){if(!isExactNumericId(estimateId))throw new UsageError(`\u898B\u7A4D\u306E ID \u306F\u5148\u982D\u306B 0 \u3092\u4ED8\u3051\u306A\u3044\u6570\u5B57\u3067\u6307\u5B9A\u3057\u3066\u304F\u3060\u3055\u3044: ${estimateId}`);const path2=`${SALES_ESTIMATES_PATH}/${estimateId}/allocations`;const res=await this.get(path2);if(res.status===401||res.status===403){throw new ApiError(res.status,isRecord(res.json)?
|
|
76
|
+
res.json:null,"GET",path2)}return rawListFrom(res,"data","\u90E8\u7F72\u6309\u5206")}async mediaFolders(scope,scopeId){const query=`scope=${encodeURIComponent(scope)}${scopeId===void 0?"":`&scope_id=${encodeURIComponent(scopeId)}`}`;const path2=`/api/v2/media/folders/tree?${query}`;const res=await this.get(path2);if(res.status===401||res.status===403){throw new ApiError(res.status,isRecord(res.json)?res.json:null,"GET",path2)}if(!res.ok)throw new ResolveError(`\u30E1\u30C7\u30A3\u30A2\u30D5\u30A9\u30EB\u30C0\u306E\u4E00\u89A7\u3092\u53D6\u5F97\u3067\u304D\u307E\u305B\u3093\u3067\u3057\u305F\uFF08HTTP ${res.
|
|
77
|
+
status}\uFF09\u3002`,res.status);const data=isRecord(res.json)?res.json["data"]:void 0;if(!Array.isArray(data)||!data.every(isRecord)){throw new ResolveError("\u30E1\u30C7\u30A3\u30A2\u30D5\u30A9\u30EB\u30C0\u4E00\u89A7\u306E\u5FDC\u7B54\u306B data \u914D\u5217\u304C\u3042\u308A\u307E\u305B\u3093\u3002\u63A5\u7D9A\u5148\u3092\u78BA\u8A8D\u3057\u3066\u304F\u3060\u3055\u3044\u3002",res.status)}return data}async mediaFolder(id,part){if(!isSafePathSegment(id))throw new UsageError(`\u30D5\u30A9\u30EB\u30C0 ID \u3068\u3057\u3066\u4F7F\u3048\u306A\u3044\u5024\u3067\u3059\
|
|
78
|
+
: ${id}`);const path2=`/api/v2/media/folders/${encodeURIComponent(id)}${part==="content"?"/can-delete":""}`;const res=await this.get(path2);if(res.status===401||res.status===403){throw new ApiError(res.status,isRecord(res.json)?res.json:null,"GET",path2)}if(res.status===404){throw new UsageError(`\u30D5\u30A9\u30EB\u30C0 ${id} \u306F\u3042\u308A\u307E\u305B\u3093\uFF08\u524A\u9664\u6E08\u307F\u306E\u30D5\u30A9\u30EB\u30C0\u306F\u30B4\u30DF\u7BB1\u306B\u3042\u308A\u307E\u3059: twp media folder list --trash\uFF09`)}
|
|
77
79
|
if(!res.ok)throw new ResolveError(`\u30E1\u30C7\u30A3\u30A2\u30D5\u30A9\u30EB\u30C0\u3092\u53D6\u5F97\u3067\u304D\u307E\u305B\u3093\u3067\u3057\u305F\uFF08HTTP ${res.status}\uFF09\u3002`,res.status);const data=isRecord(res.json)?res.json["data"]:void 0;if(!isRecord(data)||part==="folder"&&data["id"]!==id){throw new ResolveError("\u30E1\u30C7\u30A3\u30A2\u30D5\u30A9\u30EB\u30C0\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",
|
|
78
80
|
res.status)}return data}async mediaFolderTrash(scope,scopeId){const base=`/api/v2/media/folders/trash?scope=${encodeURIComponent(scope)}${scopeId===void 0?"":`&scope_id=${encodeURIComponent(scopeId)}`}&limit=100`;const rows=[];const seen=new Set;let cursor=null;for(;;){const path2=cursor===null?base:`${base}&cursor=${encodeURIComponent(cursor)}`;const res=await this.get(path2);if(res.status===401||res.status===403){throw new ApiError(res.status,isRecord(res.json)?res.json:null,"GET",path2)}if(!res.
|
|
79
81
|
ok)throw new ResolveError(`\u30B4\u30DF\u7BB1\u306E\u30D5\u30A9\u30EB\u30C0\u3092\u53D6\u5F97\u3067\u304D\u307E\u305B\u3093\u3067\u3057\u305F\uFF08HTTP ${res.status}\uFF09\u3002`,res.status);const body=isRecord(res.json)?res.json:{};const data=body["data"];const meta=isRecord(body["meta"])?body["meta"]:{};if(!Array.isArray(data)||!data.every(isRecord)){throw new ResolveError("\u30B4\u30DF\u7BB1\u306E\u30D5\u30A9\u30EB\u30C0\u4E00\u89A7\u306E\u5FDC\u7B54\u306B data \u914D\u5217\u304C\u3042\u308A\u307E\u305B\u3093\u3002\u63A5\u7D9A\u5148\u3092\u78BA\u8A8D\u3057\u3066\u304F\u3060\u3055\u3044\u3002",
|
|
@@ -119,9 +121,9 @@ res.status)}rows.push(row)});const next=data["@odata.nextLink"];if(next===void 0
|
|
|
119
121
|
value}throw new UsageError(`${label}\u304C\u591A\u3059\u304E\u308B\u305F\u3081\u540D\u524D\u3067\u306F\u6307\u5B9A\u3067\u304D\u307E\u305B\u3093\uFF08${MS365_RESOLVE_MAX_PAGES} \u30DA\u30FC\u30B8\u3092\u8D85\u3048\u307E\u3057\u305F\uFF09`,"\u4E00\u89A7\u30B3\u30DE\u30F3\u30C9\u306E\u51FA\u529B\u306B\u3042\u308B id \u3092\u6307\u5B9A\u3057\u3066\u304F\u3060\u3055\u3044\u3002")}get apiClient(){return this.client}};function assertMembersComplete(rows){if(rows.length>=PROJECT_MEMBERS_LIMIT){throw new ResolveError(
|
|
120
122
|
`\u30E1\u30F3\u30D0\u30FC\u304C ${PROJECT_MEMBERS_LIMIT} \u4EBA\u4EE5\u4E0A\u3044\u308B\u305F\u3081\u3001\u5168\u54E1\u3092\u7167\u5408\u3067\u304D\u307E\u305B\u3093\u3002ID \u3067\u6307\u5B9A\u3057\u3066\u304F\u3060\u3055\u3044\u3002`)}return rows}function rawListFrom(res,envelope,label){if(!res.ok){throw new ResolveError(`${label}\u306E\u4E00\u89A7\u3092\u53D6\u5F97\u3067\u304D\u307E\u305B\u3093\u3067\u3057\u305F\uFF08HTTP ${res.status}\uFF09\u3002\u63A5\u7D9A\u5148\u3068\u30ED\u30B0\u30A4\u30F3\u72B6\u614B\u3092\u78BA\u8A8D\u3057\u3066\u304F\u3060\u3055\u3044\u3002`,
|
|
121
123
|
res.status)}const list=isRecord(res.json)?res.json[envelope]:void 0;if(!Array.isArray(list)){throw new ResolveError(`${label}\u4E00\u89A7\u306E\u5FDC\u7B54\u306B ${envelope} \u914D\u5217\u304C\u3042\u308A\u307E\u305B\u3093\u3002\u63A5\u7D9A\u5148\u3092\u78BA\u8A8D\u3057\u3066\u304F\u3060\u3055\u3044\u3002`,res.status)}return list.map((row,index)=>{if(!isRecord(row)){throw new ResolveError(`${label}\u4E00\u89A7\u306E ${index+1} \u4EF6\u76EE\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`,
|
|
122
|
-
res.status)}return row})}function userRow(row){const email=str(row["email"]);const employeeCode=str(row["employee_code"]);return{id:str(row["user_id"]),name:str(row["user_name"]),code:employeeCode??email,aliases:[email,employeeCode].filter(v=>v!==null)}}function notificationCategoryRow(row){return{id:str(row["key"]),name:str(row["name"]),code:str(row["key"])}}function
|
|
123
|
-
const rows=rawListFrom(res,"list",label);const count=isRecord(res.json)?res.json["count"]:void 0;if(typeof count==="number"&&count>rows.length){throw new ResolveError(`${label}\u4E00\u89A7\u304C ${count} \u4EF6\u4E2D ${rows.length} \u4EF6\u3067\u5207\u308A\u8A70\u3081\u3089\u308C\u305F\u305F\u3081\u3001\u540D\u524D\u3067\u89E3\u6C7A\u3067\u304D\u307E\u305B\u3093\u3002ID \u3067\u6307\u5B9A\u3057\u3066\u304F\u3060\u3055\u3044\u3002`,
|
|
124
|
-
row["id"]),name:str(row["name"]),code:str(row["code"]),isDefault:truthyFlag(row["is_default"])}}function namedListFrom(res,envelope,label,map){return namedFromRows(rawListFrom(res,envelope,label),label,map,res.status??void 0)}function namedFromRows(rows,label,map,status=200){return rows.map((row,index)=>{const mapped=map(row);if(mapped.id===null||mapped.name===null){throw new ResolveError(`${label}\u4E00\u89A7\u306E ${index+1} \u4EF6\u76EE\
|
|
125
|
-
status)}return{id:mapped.id,name:mapped.name,...mapped.code!==void 0?{code:mapped.code}:{},...mapped.aliases!==void 0&&mapped.aliases.length>0?{aliases:mapped.aliases}:{},...mapped.isDefault!==void 0?{isDefault:mapped.isDefault}:{}}})}function requireDefault(candidates,ctx){const hit=candidates.find(ref=>ref.isDefault===true);if(hit!==void 0)return hit;
|
|
126
|
-
label}\u304C\u8A2D\u5B9A\u3055\u308C\u3066\u3044\u307E\u305B\u3093\uFF09`,`\u6307\u5B9A\u3067\u304D\u308B${ctx.label}: ${candidates.map(ref=>ref.name).join(" / ")}\uFF08\u53E4\u3044\u30AD\u30E3\u30C3\u30B7\u30E5\u304C\u6B8B\u3063\u3066\u3044\u308B\u5834\u5408\u306F --refresh \u3067\u53D6\u308A\u76F4\u305B\u307E\u3059\uFF09`)}export{BACKLOG_BASE_PATH,backlogSpacePath,resolveNamed,requireDefaultProject,PRIVATE_TASKS_PATH,BACKLOG_SCOPE_LABEL,BACKLOG_PROJECT_SCOPE_LABEL,PROJECT_MEMBERS_LIMIT,DEPARTMENTS_PATH,POSITIONS_PATH,JOB_TITLES_PATH,INQUIRY_CATEGORIES_PATH,NOTIFICATIONS_PATH,WORKFLOWS_PATH,REPORTS_PATH,SALES_ESTIMATES_PATH,SALES_INVOICES_PATH,SALES_CONTRACTS_PATH,SALES_INVOICE_AUTO_TEMPLATES_PATH,SALES_DEPOSITS_PATH,SALES_PURCHASES_PATH,SALES_SUPPLIER_PAYMENTS_PATH,SALES_SUPPLIER_PAYMENT_SCHEDULES_PATH,
|
|
127
|
-
SALES_PAYEES_PATH,SALES_SEAL_IMPRESSIONS_PATH,SALES_PURCHASE_AI_MAPPINGS_PATH,SALES_ESTIMATE_NO_RULES_PATH,SALES_INVOICE_NO_RULES_PATH,SALES_PURCHASE_NO_RULES_PATH,SALES_ESTIMATE_FORMATS_PATH,SALES_ROUNDING_SETTING_PATH,SALES_COMPANIES_PATH,CUSTOMERS_PATH,PROSPECTS_PATH,isExactNumericId,ORG_MASTER_LIMIT,TASK_MASTERS,Resolver};
|
|
124
|
+
res.status)}return row})}function userRow(row){const email=str(row["email"]);const employeeCode=str(row["employee_code"]);return{id:str(row["user_id"]),name:str(row["user_name"]),code:employeeCode??email,aliases:[email,employeeCode].filter(v=>v!==null)}}function notificationCategoryRow(row){return{id:str(row["key"]),name:str(row["name"]),code:str(row["key"])}}function workerAgentRow(row){return{id:str(row["agent_id"]),name:str(row["name"])}}function inquiryCategoryRow(row){return{id:str(row["id"]),
|
|
125
|
+
name:str(row["title"]),code:str(row["category_code"])}}function masterList(res,label){const rows=rawListFrom(res,"list",label);const count=isRecord(res.json)?res.json["count"]:void 0;if(typeof count==="number"&&count>rows.length){throw new ResolveError(`${label}\u4E00\u89A7\u304C ${count} \u4EF6\u4E2D ${rows.length} \u4EF6\u3067\u5207\u308A\u8A70\u3081\u3089\u308C\u305F\u305F\u3081\u3001\u540D\u524D\u3067\u89E3\u6C7A\u3067\u304D\u307E\u305B\u3093\u3002ID \u3067\u6307\u5B9A\u3057\u3066\u304F\u3060\u3055\u3044\u3002`,
|
|
126
|
+
res.status)}return rows}function codedMasterRow(row){return{id:str(row["id"]),name:str(row["name"]),code:str(row["code"]),isDefault:truthyFlag(row["is_default"])}}function namedListFrom(res,envelope,label,map){return namedFromRows(rawListFrom(res,envelope,label),label,map,res.status??void 0)}function namedFromRows(rows,label,map,status=200){return rows.map((row,index)=>{const mapped=map(row);if(mapped.id===null||mapped.name===null){throw new ResolveError(`${label}\u4E00\u89A7\u306E ${index+1} \u4EF6\u76EE\
|
|
127
|
+
\u306B id / \u540D\u524D\u304C\u3042\u308A\u307E\u305B\u3093\u3002\u63A5\u7D9A\u5148\u3092\u78BA\u8A8D\u3057\u3066\u304F\u3060\u3055\u3044\u3002`,status)}return{id:mapped.id,name:mapped.name,...mapped.code!==void 0?{code:mapped.code}:{},...mapped.aliases!==void 0&&mapped.aliases.length>0?{aliases:mapped.aliases}:{},...mapped.isDefault!==void 0?{isDefault:mapped.isDefault}:{}}})}function requireDefault(candidates,ctx){const hit=candidates.find(ref=>ref.isDefault===true);if(hit!==void 0)return hit;
|
|
128
|
+
throw new UsageError(`${ctx.flag} \u3092\u6307\u5B9A\u3057\u3066\u304F\u3060\u3055\u3044\uFF08${ctx.scope??DEFAULT_LOOKUP_SCOPE}\u306B\u306F\u65E2\u5B9A\u306E${ctx.label}\u304C\u8A2D\u5B9A\u3055\u308C\u3066\u3044\u307E\u305B\u3093\uFF09`,`\u6307\u5B9A\u3067\u304D\u308B${ctx.label}: ${candidates.map(ref=>ref.name).join(" / ")}\uFF08\u53E4\u3044\u30AD\u30E3\u30C3\u30B7\u30E5\u304C\u6B8B\u3063\u3066\u3044\u308B\u5834\u5408\u306F --refresh \u3067\u53D6\u308A\u76F4\u305B\u307E\u3059\uFF09`)}export{BACKLOG_BASE_PATH,backlogSpacePath,resolveNamed,requireDefaultProject,PRIVATE_TASKS_PATH,BACKLOG_SCOPE_LABEL,BACKLOG_PROJECT_SCOPE_LABEL,PROJECT_MEMBERS_LIMIT,DEPARTMENTS_PATH,POSITIONS_PATH,JOB_TITLES_PATH,INQUIRY_CATEGORIES_PATH,NOTIFICATIONS_PATH,WORKER_AGENTS_PATH,WORKFLOWS_PATH,REPORTS_PATH,SALES_ESTIMATES_PATH,SALES_INVOICES_PATH,SALES_CONTRACTS_PATH,SALES_INVOICE_AUTO_TEMPLATES_PATH,SALES_DEPOSITS_PATH,SALES_PURCHASES_PATH,SALES_SUPPLIER_PAYMENTS_PATH,SALES_SUPPLIER_PAYMENT_SCHEDULES_PATH,
|
|
129
|
+
SALES_BUSINESS_PLACES_PATH,SALES_PAYEES_PATH,SALES_SEAL_IMPRESSIONS_PATH,SALES_PURCHASE_AI_MAPPINGS_PATH,SALES_ESTIMATE_NO_RULES_PATH,SALES_INVOICE_NO_RULES_PATH,SALES_PURCHASE_NO_RULES_PATH,SALES_ESTIMATE_FORMATS_PATH,SALES_ROUNDING_SETTING_PATH,SALES_COMPANIES_PATH,CUSTOMERS_PATH,PROSPECTS_PATH,isExactNumericId,ORG_MASTER_LIMIT,TASK_MASTERS,Resolver};
|
|
@@ -1,6 +1,6 @@
|
|
|
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-
|
|
3
|
+
import{CUSTOMER_FLAG,CUSTOMER_LICENSE,childForbidden,levelForbidden,prepareCustomerFlag}from"./chunk-4QKACT6A.js";import{inspectLocalFile}from"./chunk-HNUBM24L.js";import{createFlags,fieldBody,hasAnyField,updateFlags}from"./chunk-HJPIGVGD.js";import{checkUploadQuota}from"./chunk-2YNZ4MRT.js";import{booleanText}from"./chunk-XDHLO54T.js";import{CUSTOMERS_PATH,isExactNumericId}from"./chunk-BS2ACFJA.js";import{isSafePathSegment}from"./chunk-GMBJTG6A.js";import{
|
|
4
4
|
ApiError}from"./chunk-IF2K4PM5.js";import{NotLoggedInError,SessionExpiredError}from"./chunk-XNLIEUAW.js";import{nonEmpty}from"./chunk-IOGMOXYF.js";import{requireResolved,withResolved}from"./chunk-LXIAOCUW.js";import{acknowledgement,isRecord,pick}from"./chunk-VTQAI52S.js";import{ApiResponseError,UsageError}from"./chunk-UFND7FBC.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={
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import { createRequire as __twpCreateRequire } from 'node:module';
|
|
2
2
|
const require = __twpCreateRequire(import.meta.url);
|
|
3
|
-
import{
|
|
4
|
-
MultipartBody,TwpApiClient,appendQuery}from"./chunk-IF2K4PM5.js";import{GLOBAL_OPTIONS_HELP}from"./chunk-YLM54X35.js";import{AuthSession,NotLoggedInError,SessionExpiredError,loadCredentials}from"./chunk-XNLIEUAW.js";import{effectiveApiUrl,loadUserConfig,resolveConfiguredOutput,resolveProfile}from"./chunk-4VZKNEVN.js";import{HELP_TOKEN}from"./chunk-
|
|
3
|
+
import{renderDocument,renderOutput}from"./chunk-MXKAEPXA.js";import{redactSecretValues,redactSecrets,withDebug}from"./chunk-AUAZP2G7.js";import{loadDomain}from"./chunk-ZVJXYKRY.js";import{evaluateQuery}from"./chunk-ATYA6DG5.js";import{JsonBodyWithView}from"./chunk-Q3B65OFC.js";import{Resolver,requireDefaultProject}from"./chunk-BS2ACFJA.js";import{ResolveError}from"./chunk-GMBJTG6A.js";import{parseOperationArgs}from"./chunk-F7K37QG6.js";import{ApiError,
|
|
4
|
+
MultipartBody,TwpApiClient,appendQuery}from"./chunk-IF2K4PM5.js";import{GLOBAL_OPTIONS_HELP}from"./chunk-YLM54X35.js";import{AuthSession,NotLoggedInError,SessionExpiredError,loadCredentials}from"./chunk-XNLIEUAW.js";import{effectiveApiUrl,loadUserConfig,resolveConfiguredOutput,resolveProfile}from"./chunk-4VZKNEVN.js";import{HELP_TOKEN}from"./chunk-67JAB5QG.js";import{OUTPUT_FORMATS,resolveOutputFormat}from"./chunk-K2ONOH3L.js";import{stringWidth}from"./chunk-WVS4W5FY.js";
|
|
5
5
|
import{DEFAULT_MAX_ITEMS,DEFAULT_MAX_PAGES,nextPageNotes,positiveInteger,shellQuote}from"./chunk-IOGMOXYF.js";import{isRecord}from"./chunk-VTQAI52S.js";import{ApiRejectedError,ApiResponseError,EXIT_API_CLIENT,EXIT_API_SERVER,EXIT_AUTH,EXIT_FAILURE,EXIT_OK,EXIT_USAGE,NetworkError,UsageError}from"./chunk-UFND7FBC.js";import{httpFetch}from"./chunk-J7QYPKVK.js";import{stripTerminalControls}from"./chunk-NHYMHCAT.js";import fs from"fs";import path from"path";var NO_REDACT_FLAG={name:"--no-redact",summary:"\u5FDC\u7B54\u306E\u4F0F\u5B57\u5316\u3092\u89E3\u9664\u3057\u3066\u751F\u306E\u5024\u3092\u51FA\u3059\uFF08\u9375\u306E\u53D7\u3051\u53D6\u308A\u7B49\uFF09",takesValue:false};var NO_REDACT_NOTICE="\u6CE8\u8A18: --no-redact \u306E\u305F\u3081\u51FA\u529B\u3092\u4F0F\u5B57\u5316\u3057\u307E\u305B\u3093\uFF08\u7AEF\u672B\u3068\u30ED\u30B0\u306B\u5E73\u6587\u3067\u6B8B\u308A\u307E\u3059\uFF09\u3002";function withCommonFlags(flags){return flags.some(flag=>flag.
|
|
6
6
|
name===NO_REDACT_FLAG.name)?flags:[...flags,NO_REDACT_FLAG]}function alignedList(entries,indent=" "){const width=entries.reduce((max,[left])=>Math.max(max,stringWidth(left)),0);return entries.map(([left,right])=>`${indent}${left}${" ".repeat(Math.max(0,width-stringWidth(left)))} ${right}`).join("\n")}function subresourcesOf(resource){return resource.subresources??[]}function renderResourceHelp(resource,path2){const subresources=subresourcesOf(resource);const operationSection=resource.operations.length===0?"":`
|
|
7
7
|
\u64CD\u4F5C:
|