@tocca-systems/twp-cli 0.66.0 → 0.67.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 +4 -0
- package/README.md +3 -0
- package/dist/{api-command-4CUGQQI3.js → api-command-WIMCS3VI.js} +1 -1
- package/dist/{app-BBPK653N.js → app-5FFWVAGQ.js} +1 -1
- package/dist/{budget-5WUQAAAZ.js → budget-5RPOQZN7.js} +35 -16
- package/dist/{chunk-FDVWV3AY.js → chunk-3EATJTPN.js} +1 -1
- package/dist/{chunk-6OLZMQBK.js → chunk-53D2WQQO.js} +2 -2
- package/dist/cli.js +6 -6
- package/dist/{media-77LTBOQX.js → media-TWRO65NT.js} +1 -1
- package/dist/{registry-BIJNO3HE.js → registry-WBDRVEUW.js} +1 -1
- package/dist/{run-TYKHDD6N.js → run-XZUJWTTZ.js} +1 -1
- package/package.json +1 -1
package/CHANGELOG.public.md
CHANGED
|
@@ -11,6 +11,10 @@
|
|
|
11
11
|
`CHANGELOG.md` に残してあります。顧客向けの履歴は public 公開以降を対象とします。
|
|
12
12
|
-->
|
|
13
13
|
|
|
14
|
+
## 0.67.0
|
|
15
|
+
|
|
16
|
+
予実管理の部署按分に期間(開始月・終了月)を指定できるようになりました(`twp budget allocation set --file`)。`twp budget allocation list` で期間ごとの按分を確認できます。按分は全件置き換えなので、期間を残すときは `twp budget allocation list --output json` の結果を直して送り直してください。
|
|
17
|
+
|
|
14
18
|
## 0.66.0
|
|
15
19
|
|
|
16
20
|
シートライセンスの棚卸を CLI からできるようになりました(`twp license list` / `twp license assignments`)。機能ごとの枠・使用数と、割り当てた人の所属・最終ログインを一覧し、失効済みや権限が「なし」の人に割当が残っていないかを確認できます。組織管理者の権限が要ります。
|
package/README.md
CHANGED
|
@@ -1138,6 +1138,7 @@ twp budget target import-template --out <パス.csv> [--force] [--year <YYYY>] [
|
|
|
1138
1138
|
twp budget target import --year <YYYY> --file <CSV> --yes
|
|
1139
1139
|
twp budget allocation list [--project <コード>]
|
|
1140
1140
|
twp budget allocation set [--project <コード>] (--split <部署>=<比率>% | --split <部署>=<金額>)... --yes
|
|
1141
|
+
twp budget allocation set [--project <コード>] --file <JSON> --yes
|
|
1141
1142
|
twp budget allocation set [--project <コード>] --clear --yes
|
|
1142
1143
|
```
|
|
1143
1144
|
|
|
@@ -1148,6 +1149,8 @@ twp budget allocation set [--project <コード>] --clear --yes
|
|
|
1148
1149
|
- `target set --file` の JSON は `[{"department": "開発部", "month": 4, "sales_target": 1000000, "profit_target": 200000}]` の形です。誤りは全部挙げて1件も送りません
|
|
1149
1150
|
- `target import` は雛形(`import-template`)の形の CSV を取り込みます。1行でも誤りがあればサーバが1件も書かず、行ごとの理由をすべて出して終了コード 3 です
|
|
1150
1151
|
- `allocation set` は按分を**全件置き換え**ます(指定しなかった部署の按分は消えます)。`--clear` で按分をすべて消します。送る前に置換前と置換後の按分を出します。比率の合計はサーバが画面と同じ規則で検査し(比率だけなら合計 100%、金額の行を含むなら比率の合計が 100% 以下)、違反すると 1 件も書かずに 422 の理由を出して終了コード 3 で終わります
|
|
1152
|
+
- 按分の期間(`periods`)は `allocation set --file` で指定します。JSON は `[{"department": "営業部", "periods": [{"start_month": "2026-11", "end_month": "2027-01", "allocation_type": "amount", "amount": 300000}]}]` の形で、`periods` を省いた行は従来どおり全期間に効きます。`start_month` / `end_month` の `null` は下限・上限なしで、期間を持つ行は期間外の月に按分しません。`allocation list` は表では `periods` 列(`2026-11〜2027-01: 300,000 円`)に、`--output json` ではそのまま出します
|
|
1153
|
+
- **全件置換なので、`--split` / `--clear` で送ると今ある期間の設定も消えます**(消える部署は送る前に出します)。期間を残すなら `allocation list --output json` の結果を直して `--file` で送り直してください(`project_id` などの読み取り専用の項目は無視します)
|
|
1151
1154
|
|
|
1152
1155
|
### ワーカーエージェント(AIエージェント)を見る
|
|
1153
1156
|
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import { createRequire as __twpCreateRequire } from 'node:module';
|
|
2
2
|
const require = __twpCreateRequire(import.meta.url);
|
|
3
|
-
import{CommandModelMissingError,MAX_REPORTED_VIOLATIONS,loadCommandModelDomain,loadCommandModelRoutes,validateBody,validateQuery}from"./chunk-NZ7WI4RZ.js";import{NO_REDACT_FLAG,NO_REDACT_NOTICE,exitCodeFor,fetchAllPages,reportError}from"./chunk-
|
|
3
|
+
import{CommandModelMissingError,MAX_REPORTED_VIOLATIONS,loadCommandModelDomain,loadCommandModelRoutes,validateBody,validateQuery}from"./chunk-NZ7WI4RZ.js";import{NO_REDACT_FLAG,NO_REDACT_NOTICE,exitCodeFor,fetchAllPages,reportError}from"./chunk-3EATJTPN.js";import"./chunk-53D2WQQO.js";import"./chunk-Q3B65OFC.js";import{evaluateQuery}from"./chunk-GFLGXGWE.js";import{renderOutput}from"./chunk-YXVN6OCH.js";import{redactSecretValues,redactSecrets,withDebug}from"./chunk-UFGJSWKU.js";
|
|
4
4
|
import{describeWaitResult,parseWaitOptions,waitUntilTerminal}from"./chunk-WVCEKC7V.js";import{DEFAULT_MAX_ITEMS,DEFAULT_MAX_PAGES,envelopePaging,isPageNumberEnvelope,pageRangeNotes,positiveInteger,readEnvelopeCursor,readPageNumberCursor,shellQuote}from"./chunk-MI6HVYR2.js";import{parseOperationArgs,repeatedValues}from"./chunk-RX5HWI4L.js";import{readBody}from"./chunk-6LSQCOCJ.js";import"./chunk-HNG6MF26.js";import"./chunk-HVZUXLQ4.js";import{ApiError,TwpApiClient,
|
|
5
5
|
appendQuery}from"./chunk-JA5A6UJ2.js";import"./chunk-H4CDX4TX.js";import"./chunk-II5RVJQN.js";import"./chunk-3ZRMMBP5.js";import{ApiResponseError,EXIT_OK,EXIT_WAIT_TIMEOUT,NetworkError,UsageError}from"./chunk-VFPY2A23.js";import{GLOBAL_OPTIONS_HELP}from"./chunk-PECIBNFD.js";import{AuthSession,NotLoggedInError,SessionExpiredError,loadCredentials}from"./chunk-XNLIEUAW.js";import{httpFetch}from"./chunk-J7QYPKVK.js";import{effectiveApiUrl,resolveConfiguredOutput,
|
|
6
6
|
resolveProfile}from"./chunk-4VZKNEVN.js";import"./chunk-RZVI6PMW.js";import{HELP_TOKEN}from"./chunk-KDH3KWPO.js";import"./chunk-QQRJLH6B.js";import{OUTPUT_FORMATS,resolveOutputFormat}from"./chunk-74BPZOKU.js";import"./chunk-UREA4ZIG.js";import{stripTerminalControls}from"./chunk-NHYMHCAT.js";import"./chunk-VSJBJXZO.js";var MIN_SEGMENT_CHARS=3;var parsedCache=new WeakMap;function splitSegments(path){return path.split("/").filter(segment=>segment!=="")}function parseRoutes(routes){const cached=parsedCache.get(routes);if(cached!==void 0)return cached;const parsed=[];for(const[key,domain]of Object.entries(routes.routes)){const space=key.indexOf(" ");if(space<=0)continue;const template=key.slice(space+1);parsed.push({method:key.slice(0,space),template,domain,segments:splitSegments(template).map(segment=>/^\{[^/{}]+\}$/.
|
|
@@ -1212,7 +1212,7 @@ cwd()){const listed=await gitListFiles(cwd2);const raw=listed??await walkFiles(c
|
|
|
1212
1212
|
1;const after=/^[^\s]*/.exec(text.slice(cursor))?.[0]??"";return{query,start,end:cursor+after.length}}var TWP_SLASH_ROUTES={"/tasks":{domain:"task",operation:"list"},"/task":{domain:"task",operation:"get"},"/projects":{domain:"project",operation:"list"}};function isTwpSlashCommand(name){return Object.hasOwn(TWP_SLASH_ROUTES,name)}async function runTwpSlashCommand(name,args,deps){const route=TWP_SLASH_ROUTES[name];if(!Object.hasOwn(TWP_SLASH_ROUTES,name)||route===void 0){return{code:2,out:"",err:`\u4E0D\u660E\u306A\u30B3\u30DE\u30F3\u30C9: ${name}
|
|
1213
1213
|
`}}const parsed=parseArgv([route.domain,route.operation,...args]);if(parsed.command!=="domain"||parsed.domain!==route.domain){return{code:2,out:"",err:`${name}: \u3053\u306E\u5F15\u6570\u306F\u4F7F\u3048\u307E\u305B\u3093\uFF08${args.join(" ")}\uFF09
|
|
1214
1214
|
`}}if(parsed.unknown.length>0){return{code:2,out:"",err:`\u4E0D\u660E\u306A\u5F15\u6570: ${parsed.unknown.join(" ")}
|
|
1215
|
-
`}}let out="";let err="";const io={out:text=>void(out+=text),err:text=>void(err+=text),isTty:true};const globals={profile:parsed.profile??deps.profile,...parsed.output!==void 0?{output:parsed.output}:{},...parsed.query!==void 0?{query:parsed.query}:{},dryRun:parsed.dryRun,debug:parsed.debug,yes:parsed.yes,refresh:parsed.refresh};const{runDomain}=await import("./run-
|
|
1215
|
+
`}}let out="";let err="";const io={out:text=>void(out+=text),err:text=>void(err+=text),isTty:true};const globals={profile:parsed.profile??deps.profile,...parsed.output!==void 0?{output:parsed.output}:{},...parsed.query!==void 0?{query:parsed.query}:{},dryRun:parsed.dryRun,debug:parsed.debug,yes:parsed.yes,refresh:parsed.refresh};const{runDomain}=await import("./run-XZUJWTTZ.js");try{const code=await runDomain({domain:route.domain,...parsed.operation!==void 0?{operation:parsed.operation}:
|
|
1216
1216
|
{},argv:parsed.domainArgv,help:parsed.domainHelp,globals,version:deps.version,io,...deps.fetchImpl!==void 0?{fetchImpl:deps.fetchImpl}:{}});return{code,out,err}}catch(e){return{code:1,out,err:`${err}${e.message}
|
|
1217
1217
|
`}}}var GIT_LOG_OUTPUT=["9f3c1a2 feat(ui): \u4E00\u89A7\u306E\u30D5\u30A3\u30EB\u30BF\u3092 URL \u30AF\u30A8\u30EA\u3068\u540C\u671F\u3059\u308B","4b8e0d7 fix(ui): \u4EEE\u60F3\u30B9\u30AF\u30ED\u30FC\u30EB\u306E\u884C\u9AD8\u3055\u3092\u5B9F\u6E2C\u5024\u306B\u5408\u308F\u305B\u308B","c15a99e refactor(api): \u4E00\u89A7\u53D6\u5F97\u306E\u30DA\u30FC\u30B8\u30F3\u30B0\u51E6\u7406\u3092\u5171\u901A\u5316\u3059\u308B","2d70f4b test: \u4E00\u89A7\u30D5\u30A3\u30EB\u30BF\u306E\u56DE\u5E30\u30C6\u30B9\u30C8\u3092\u8FFD\u52A0\u3059\u308B",
|
|
1218
1218
|
"a6e2b38 fix(api): \u7A7A\u306E\u691C\u7D22\u6761\u4EF6\u3067\u5168\u4EF6\u8FD4\u3089\u306A\u3044\u3088\u3046\u306B\u3059\u308B","7c40d51 chore(deps): \u958B\u767A\u4F9D\u5B58\u3092\u6700\u65B0\u3078\u66F4\u65B0\u3059\u308B","e83b1c6 docs: \u30BB\u30C3\u30C8\u30A2\u30C3\u30D7\u624B\u9806\u306B Node 22 \u306E\u524D\u63D0\u3092\u8FFD\u8A18\u3059\u308B","b91f7a4 fix(ui): \u30E2\u30FC\u30C0\u30EB\u306E\u91CD\u306A\u308A\u9806\u3092\u6307\u5B9A\u3059\u308B","5a2c8e0 perf(api): \u4E00\u89A7\u306E N+1 \u3092\u89E3\u6D88\u3059\u308B",
|
|
@@ -78,20 +78,39 @@ EDIT_HINT,destructive:true,confirmation:"\u65E2\u5B58\u306E\u76EE\u6A19\u3092\u4
|
|
|
78
78
|
imported_count}:body,raw:body=>isImportOutcome(body)?{imported_count:body.imported_count,message:body.message}:body,notes:body=>isImportOutcome(body)&&typeof body.message==="string"?[body.message]:[]};var templateOperation={name:"import-template",summary:"\u76EE\u6A19\u306E\u53D6\u308A\u8FBC\u307F\u7528 CSV \u306E\u96DB\u5F62\u3092\u66F8\u304D\u51FA\u3059\uFF08--out\uFF09",usage:"twp budget target import-template --out <\u30D1\u30B9.csv> [--force] [--year <YYYY>] [--start-month <\u6708>]",description:"\
|
|
79
79
|
GET /api/v2/budget/targets/import-template\u3002\u90E8\u7F72\u3054\u3068\u306B1\u884C\uFF08department_id\u30FB\u90E8\u7F72\u540D\u3068\u3001\u6708\u3054\u3068\u306E\u7A7A\u306E\u58F2\u4E0A\u76EE\u6A19\u30FB\u5229\u76CA\u76EE\u6A19\u306E\u5217\uFF09\u306E CSV\uFF08UTF-8\u30FBBOM \u4ED8\u304D\uFF09\u3067\u3059\u3002\n--year \u3092\u4ED8\u3051\u308B\u3068\u305D\u306E\u5E74\u5EA6\u306B\u5728\u7C4D\u3057\u3066\u3044\u305F\u90E8\u7F72\uFF08\u5E74\u5EA6\u9014\u4E2D\u3067\u7D42\u4E86\u3057\u305F\u90E8\u7F72\u3092\u542B\u3080\uFF09\u3001\u7701\u304F\u3068\u4ECA\u65E5\u6642\u70B9\u3067\u6709\u52B9\u306A\u90E8\u7F72\u304C\u4E26\u3073\u307E\u3059\u3002\n\u5024\u3092\u57CB\u3081\u3066 twp budget target import \u3067\u53D6\u308A\u8FBC\u307F\u307E\u3059\u3002\u65E2\u5B58\u306E\u30D5\u30A1\u30A4\u30EB\u306F\u4E0A\u66F8\u304D\u3057\u307E\u305B\u3093\uFF08\u4E0A\u66F8\u304D\u3059\u308B\u306A\u3089 --force\uFF09\u3002",
|
|
80
80
|
flags:[OUT_FLAG,FORCE_FLAG,TEMPLATE_YEAR_FLAG,START_MONTH_FLAG],download:{outFlag:OUT_FLAG.name,forceFlag:FORCE_FLAG.name},forbidden:FORBIDDEN,plan:input=>{noArgs(input,"target import-template");return{method:"GET",path:`${PATH}/targets/import-template`,query:periodQuery(input,false)}},summarize:body=>body,raw:body=>body};var targetResource={name:"target",summary:"\u5E74\u5EA6\u306E\u76EE\u6A19\uFF08\u4E00\u89A7\u30FB\u307E\u3068\u3081\u3066\u767B\u9332\u30FB\u524D\u5E74\u5EA6\u304B\u3089\u306E\u30B3\u30D4\u30FC\u30FBCSV \u306E\u53D6\u308A\u8FBC\u307F\u3068\u96DB\u5F62\uFF09",
|
|
81
|
-
operations:[targetListOperation,targetSetOperation,copyOperation,targetImportOperation,templateOperation]};var ALLOCATION_COLUMNS=["department_id","department_name","allocation_type","percentage","amount","updated_at"];var PROJECT_FLAG={name:"--project",summary:"\u30D7\u30ED\u30B8\u30A7\u30AF\u30C8\uFF08\u30B3\u30FC\u30C9\u30FBID\u3002\u7701\u304F\u3068\u65E2\u5B9A\u306E\u30D7\u30ED\u30B8\u30A7\u30AF\u30C8\uFF09",takesValue:true,placeholder:"<\u30D7\u30ED\u30B8\u30A7\u30AF\u30C8>"};var SPLIT_FLAG={
|
|
82
|
-
name:"--split",summary:"<\u90E8\u7F72>=<\u6BD4\u7387>%\uFF08\u6BD4\u7387\uFF09\u304B <\u90E8\u7F72>=<\u91D1\u984D>\uFF08\u5186\uFF09\u3002\u8907\u6570\u56DE\u6307\u5B9A\u53EF",takesValue:true,placeholder:"<\u90E8\u7F72>=<\u5024>",repeatable:true};var CLEAR_FLAG={name:"--clear",summary:"\u6309\u5206\u3092\u3059\u3079\u3066\u6D88\u3059\uFF08--split \u3068\u540C\u6642\u306B\u6307\u5B9A\u3067\u304D\u306A\u3044\uFF09",takesValue:false};
|
|
83
|
-
0?"":raw.slice(0,at).trim();const valueText=at<0?"":raw.slice(at+1).trim();const bad=new UsageError(`--split \u306F <\u90E8\u7F72>=<\u6BD4\u7387>%\uFF080\u301C100\uFF09\u304B <\u90E8\u7F72>=<\u91D1\u984D>\uFF080 \u4EE5\u4E0A\u306E\u6574\u6570\u30FB\u5186\uFF09\u3067\u6307\u5B9A\u3057\u3066\u304F\u3060\u3055\u3044: ${raw}`,
|
|
84
|
-
value2>100)throw bad;return{ref,type:"percentage",value:value2}}const value=Number(valueText);if(!/^\d+$/.test(valueText)||value>AMOUNT_MAX)throw bad;return{ref,type:"amount",value}}function
|
|
85
|
-
|
|
86
|
-
|
|
87
|
-
|
|
88
|
-
|
|
89
|
-
|
|
90
|
-
|
|
81
|
+
operations:[targetListOperation,targetSetOperation,copyOperation,targetImportOperation,templateOperation]};var ALLOCATION_COLUMNS=["department_id","department_name","allocation_type","percentage","amount","periods","updated_at"];var PROJECT_FLAG={name:"--project",summary:"\u30D7\u30ED\u30B8\u30A7\u30AF\u30C8\uFF08\u30B3\u30FC\u30C9\u30FBID\u3002\u7701\u304F\u3068\u65E2\u5B9A\u306E\u30D7\u30ED\u30B8\u30A7\u30AF\u30C8\uFF09",takesValue:true,placeholder:"<\u30D7\u30ED\u30B8\u30A7\u30AF\u30C8>"};var SPLIT_FLAG={
|
|
82
|
+
name:"--split",summary:"<\u90E8\u7F72>=<\u6BD4\u7387>%\uFF08\u6BD4\u7387\uFF09\u304B <\u90E8\u7F72>=<\u91D1\u984D>\uFF08\u5186\uFF09\u3002\u8907\u6570\u56DE\u6307\u5B9A\u53EF",takesValue:true,placeholder:"<\u90E8\u7F72>=<\u5024>",repeatable:true};var CLEAR_FLAG={name:"--clear",summary:"\u6309\u5206\u3092\u3059\u3079\u3066\u6D88\u3059\uFF08--split \u3068\u540C\u6642\u306B\u6307\u5B9A\u3067\u304D\u306A\u3044\uFF09",takesValue:false};var ALLOCATION_FILE_FLAG={name:"--file",summary:"\u6309\u5206\u306E JSON\uFF08\u671F\u9593 peri\
|
|
83
|
+
ods \u3092\u542B\u3081\u3089\u308C\u308B\u30FB--split / --clear \u3068\u540C\u6642\u306B\u6307\u5B9A\u3067\u304D\u306A\u3044\uFF09",takesValue:true,placeholder:"<JSON>"};function parseSplit(raw){const at=raw.lastIndexOf("=");const ref=at<0?"":raw.slice(0,at).trim();const valueText=at<0?"":raw.slice(at+1).trim();const bad=new UsageError(`--split \u306F <\u90E8\u7F72>=<\u6BD4\u7387>%\uFF080\u301C100\uFF09\u304B <\u90E8\u7F72>=<\u91D1\u984D>\uFF080 \u4EE5\u4E0A\u306E\u6574\u6570\u30FB\u5186\uFF09\u3067\u6307\u5B9A\u3057\u3066\u304F\u3060\u3055\u3044: ${raw}`,
|
|
84
|
+
usageOf("allocation set"));if(ref==="")throw bad;if(valueText.endsWith("%")){const number=valueText.slice(0,-1).trim();const value2=Number(number);if(!/^\d+(\.\d+)?$/.test(number)||value2>100)throw bad;return{ref,type:"percentage",value:value2}}const value=Number(valueText);if(!/^\d+$/.test(valueText)||value>AMOUNT_MAX)throw bad;return{ref,type:"amount",value}}function valueLabel(row){return row.allocation_type==="amount"?yen(row.amount):`${text(row.percentage)}%`}function periodsLabel(periods){
|
|
85
|
+
if(!Array.isArray(periods))return"";return periods.filter(isRecord).map(period=>`${text(period["start_month"])}\u301C${text(period["end_month"])}: ${valueLabel(period)}`).join(" / ")}function splitLabel(row){const periods=periodsLabel(row.periods);return periods===""?valueLabel(row):`\u671F\u9593\u3064\u304D\uFF08${periods}\u30FB\u671F\u9593\u5916\u306F\u6309\u5206\u306A\u3057\uFF09`}function hasPeriods(row){return Array.isArray(row["periods"])&&row["periods"].length>0}function allocationSummary(row,columns){
|
|
86
|
+
const picked=pick(row,columns);if("periods"in picked)picked["periods"]=periodsLabel(row["periods"]);return picked}var ALLOCATION_ROW_KEYS=new Set(["department","department_id","allocation_type","percentage","amount","periods"]);var ALLOCATION_READONLY_KEYS=new Set(["project_id","department_name","created_at","updated_at"]);var PERIOD_KEYS=new Set(["start_month","end_month","allocation_type","percentage","amount"]);var MONTH_PATTERN=/^\d{4}-(0[1-9]|1[0-2])$/;function allocationValue(item,at,errors){
|
|
87
|
+
const type=item["allocation_type"]??"percentage";if(type!=="percentage"&&type!=="amount"){errors.push(`${at}: allocation_type \u306F percentage \u304B amount \u3067\u3059`);return void 0}if(type==="amount"){const amount=item["amount"];if(typeof amount!=="number"||!Number.isInteger(amount)||amount<0||amount>AMOUNT_MAX){errors.push(`${at}: amount \u306F 0 \u4EE5\u4E0A\u306E\u6574\u6570\uFF08\u5186\uFF09\u3067\u3059`);return void 0}return{allocation_type:"amount",amount}}const percentage=item["perc\
|
|
88
|
+
entage"];if(typeof percentage!=="number"||!Number.isFinite(percentage)||percentage<0||percentage>100){errors.push(`${at}: percentage \u306F 0\u301C100 \u306E\u6570\u5024\u3067\u3059`);return void 0}return{allocation_type:"percentage",percentage}}function parseAllocationRows(raw){const list=isRecord(raw)&&Array.isArray(raw["allocations"])?raw["allocations"]:raw;if(!Array.isArray(list))return{rows:[],errors:['JSON \u306F\u6309\u5206\u306E\u914D\u5217\uFF08\u307E\u305F\u306F {"allocations": [...]}\uFF09\u306B\u3057\u3066\u304F\u3060\u3055\u3044']};
|
|
89
|
+
if(list.length===0)return{rows:[],errors:["\u6309\u5206\u304C1\u4EF6\u3082\u3042\u308A\u307E\u305B\u3093\uFF08\u6309\u5206\u3092\u3059\u3079\u3066\u6D88\u3059\u306A\u3089 --clear\uFF09"]};const rows=[];const errors=[];list.forEach((item,index)=>{const at=`${index+1} \u4EF6\u76EE`;if(!isRecord(item)){errors.push(`${at}: \u30AA\u30D6\u30B8\u30A7\u30AF\u30C8\u3067\u306F\u3042\u308A\u307E\u305B\u3093`);return}const before=errors.length;const unknown=Object.keys(item).filter(key=>!ALLOCATION_ROW_KEYS.
|
|
90
|
+
has(key)&&!ALLOCATION_READONLY_KEYS.has(key));if(unknown.length>0)errors.push(`${at}: \u4F7F\u3048\u306A\u3044\u9805\u76EE\u304C\u3042\u308A\u307E\u3059: ${unknown.join(", ")}\uFF08\u4F7F\u3048\u308B\u306E\u306F ${[...ALLOCATION_ROW_KEYS].join(" / ")}\uFF09`);const hasName=item["department"]!==void 0;const hasId=item["department_id"]!==void 0;const ref=hasName?item["department"]:item["department_id"];if(hasName===hasId)errors.push(`${at}: department\uFF08\u540D\u524D\u30FB\u30B3\u30FC\u30C9\u30FBID\uFF09\u304B department_id \u306E\u3069\u3061\u3089\u304B\u4E00\u65B9\u3092\u66F8\u3044\u3066\u304F\u3060\u3055\u3044`);else if(typeof ref!==
|
|
91
|
+
"string")errors.push(`${at}: \u90E8\u7F72\u306F\u6587\u5B57\u5217\uFF08\u540D\u524D\u30FB\u30B3\u30FC\u30C9\u30FBID\uFF09\u3067\u66F8\u3044\u3066\u304F\u3060\u3055\u3044`);else if(ref.trim()==="")errors.push(`${at}: \u90E8\u7F72\u304C\u7A7A\u3067\u3059`);const rawPeriods=item["periods"]??[];const periods=[];if(!Array.isArray(rawPeriods))errors.push(`${at}: periods \u306F\u671F\u9593\u306E\u914D\u5217\u3067\u3059\uFF08\u5168\u671F\u9593\u306A\u3089\u7701\u304F\u304B []\uFF09`);else{rawPeriods.forEach(
|
|
92
|
+
(period,j)=>{const where=`${at} \u306E periods ${j+1} \u4EF6\u76EE`;if(!isRecord(period)){errors.push(`${where}: \u30AA\u30D6\u30B8\u30A7\u30AF\u30C8\u3067\u306F\u3042\u308A\u307E\u305B\u3093`);return}const extra=Object.keys(period).filter(key=>!PERIOD_KEYS.has(key));if(extra.length>0)errors.push(`${where}: \u4F7F\u3048\u306A\u3044\u9805\u76EE\u304C\u3042\u308A\u307E\u3059: ${extra.join(", ")}\uFF08\u4F7F\u3048\u308B\u306E\u306F ${[...PERIOD_KEYS].join(" / ")}\uFF09`);const month=key=>{const v=period[key]??
|
|
93
|
+
null;if(v===null||v==="")return null;if(typeof v!=="string"||!MONTH_PATTERN.test(v)){errors.push(`${where}: ${key} \u306F YYYY-MM \u304B null \u3067\u3059\uFF08null \u306F${key==="start_month"?"\u958B\u59CB\u306E\u4E0B\u9650\u306A\u3057":"\u7D42\u4E86\u306E\u4E0A\u9650\u306A\u3057"}\uFF09`);return null}return v};const start=month("start_month");const end=month("end_month");if(start!==null&&end!==null&&start>end)errors.push(`${where}: \u7D42\u4E86\u6708\u306F\u958B\u59CB\u6708\u4EE5\u964D\u306B\u3057\u3066\u304F\u3060\u3055\u3044`);
|
|
94
|
+
const value2=allocationValue(period,where,errors);if(value2!==void 0)periods.push({start_month:start,end_month:end,...value2})})}const rowValueGiven=item["allocation_type"]!==void 0||item["percentage"]!==void 0||item["amount"]!==void 0;const periodRow=Array.isArray(rawPeriods)&&rawPeriods.length>0;const value=!periodRow||rowValueGiven?allocationValue(item,at,errors):void 0;if(errors.length>before||typeof ref!=="string")return;rows.push({ref:ref.trim(),...value??{},...periods.length>0?{periods}:{}})});
|
|
95
|
+
return{rows,errors}}async function prepareAllocationSet(input,ctx){const usage=usageOf("allocation set");noArgs(input,"allocation set");const raws=repeatedValues(input,SPLIT_FLAG.name);const clear=input.flags.has(CLEAR_FLAG.name);const file=nonEmpty(input.flags,ALLOCATION_FILE_FLAG.name);if([clear,raws.length>0,file!==void 0].filter(Boolean).length>1)throw new UsageError("--split\u30FB--file\u30FB--clear \u306F\u3069\u308C\u304B1\u3064\u3060\u3051\u6307\u5B9A\u3057\u3066\u304F\u3060\u3055\u3044",
|
|
96
|
+
usage);if(!clear&&raws.length===0&&file===void 0){throw new UsageError("\u6309\u5206\u3092 --split <\u90E8\u7F72>=<\u5024> \u304B --file <JSON> \u30671\u3064\u4EE5\u4E0A\u6307\u5B9A\u3057\u3066\u304F\u3060\u3055\u3044\uFF08\u6309\u5206\u3092\u3059\u3079\u3066\u6D88\u3059\u306A\u3089 --clear\uFF09",usage)}const parsed=raws.map(parseSplit).map(({ref,type,value})=>type==="amount"?{ref,allocation_type:"amount",amount:value}:{ref,allocation_type:"percentage",percentage:value});const errors=[];if(file!==
|
|
97
|
+
void 0){const fromFile=parseAllocationRows(readSetFile(file,usage));errors.push(...fromFile.errors);parsed.push(...fromFile.rows)}if(errors.length>0)throw new UsageError(`--file \u306B\u8AA4\u308A\u304C\u3042\u308A\u307E\u3059\uFF081\u4EF6\u3082\u9001\u3063\u3066\u3044\u307E\u305B\u3093\uFF09:
|
|
98
|
+
${errors.map(e=>` - ${e}`).join("\n")}`,usage);const projectId=await ctx.projectId(nonEmpty(input.flags,PROJECT_FLAG.name));const splits=[];for(const{ref,...rest}of parsed){const department=await ctx.resolver.department(ref,file===void 0?SPLIT_FLAG.name:"department");if(splits.some(s=>s.department_id===department.id)){throw new UsageError(`\u540C\u3058\u90E8\u7F72\u304C2\u56DE\u6307\u5B9A\u3055\u308C\u3066\u3044\u307E\u3059: ${department.name}\uFF08\u540C\u3058\u90E8\u7F72\u306E\u671F\u9593\u9055\u3044\u306F1\u884C\u306E periods \u306B\u4E26\u3079\u3066\u304F\u3060\u3055\u3044\uFF09`,
|
|
99
|
+
usage)}splits.push({department_id:department.id,...rest})}let before;try{before=dataRows(await ctx.resolver.salesJson(`${PATH}/allocations?project_id=${encodeURIComponent(projectId)}`,"\u90E8\u7F72\u6309\u5206"),"\u90E8\u7F72\u6309\u5206")}catch(err){if(!(err instanceof ApiError&&err.status===403))throw err}const names=new Map((await ctx.resolver.departments()).map(d=>[d.id,d.name]));const label=id=>names.get(String(id))??String(id);const lostPeriods=(before??[]).filter(row=>hasPeriods(row)&&!splits.
|
|
100
|
+
some(s=>s.department_id===String(row["department_id"])&&(s.periods?.length??0)>0));const notes=[clear?`\u30D7\u30ED\u30B8\u30A7\u30AF\u30C8 ${projectId} \u306E\u90E8\u7F72\u6309\u5206\u3092\u3059\u3079\u3066\u6D88\u3057\u307E\u3059:`:`\u30D7\u30ED\u30B8\u30A7\u30AF\u30C8 ${projectId} \u306E\u90E8\u7F72\u6309\u5206\u3092\u5168\u4EF6\u7F6E\u304D\u63DB\u3048\u307E\u3059\uFF08\u6307\u5B9A\u3057\u306A\u304B\u3063\u305F\u90E8\u7F72\u306E\u6309\u5206\u306F\u6D88\u3048\u307E\u3059\uFF09:`,...before===void 0?
|
|
101
|
+
[" \u7F6E\u63DB\u524D: \u8AAD\u3081\u307E\u305B\u3093\uFF08\u3053\u306E\u30D7\u30ED\u30B8\u30A7\u30AF\u30C8\u3092\u95B2\u89A7\u3067\u304D\u306A\u3044\u305F\u3081\u3002\u65E2\u5B58\u306E\u6309\u5206\u306F\u5168\u90E8\u7F6E\u304D\u63DB\u308F\u308A\u307E\u3059\uFF09"]:before.length===0?[" \u7F6E\u63DB\u524D: \u306A\u3057"]:before.map(row=>` \u7F6E\u63DB\u524D: ${label(row["department_id"])} ${splitLabel(row)}`),...clear?[" \u7F6E\u63DB\u5F8C: \u306A\u3057"]:splits.map(s=>` \u7F6E\u63DB\u5F8C: ${label(
|
|
102
|
+
s.department_id)} ${splitLabel(s)}`),...lostPeriods.length>0?[` \u671F\u9593\u306E\u8A2D\u5B9A\u304C\u6D88\u3048\u307E\u3059: ${lostPeriods.map(row=>label(row["department_id"])).join("\u30FB")}\uFF08\u6B8B\u3059\u306A\u3089 twp budget allocation list --output json \u306E periods \u3092 --file \u3067\u9001\u308A\u76F4\u3057\u3066\u304F\u3060\u3055\u3044\uFF09`]:[]];return withResolved(input,{projectId,body:JSON.stringify({project_id:projectId,allocations:splits}),notes:JSON.stringify(notes)})}var allocationResource={
|
|
103
|
+
name:"allocation",summary:"\u30D7\u30ED\u30B8\u30A7\u30AF\u30C8\u306E\u90E8\u7F72\u6309\u5206\uFF08\u4E88\u5B9F\u306E\u90E8\u7F72\u5225\u306E\u58F2\u4E0A\u306E\u914D\u308A\u65B9\u30FB\u4E00\u89A7\u3068\u5168\u4EF6\u7F6E\u63DB\uFF09",operations:[{name:"list",summary:"\u30D7\u30ED\u30B8\u30A7\u30AF\u30C8\u306E\u90E8\u7F72\u6309\u5206\u3092\u8868\u793A\u3059\u308B",usage:"twp budget allocation list [--project <\u30D7\u30ED\u30B8\u30A7\u30AF\u30C8>]",description:`GET /api/v2/budget/allocations\u3002\u6309\u5206\u304C\u7121\u3051\
|
|
104
|
+
\u308C\u3070\u7A7A\u306E\u4E00\u89A7\u3067\u3059\uFF08\u3053\u306E API \u306F\u30DA\u30FC\u30B8\u30F3\u30B0\u3092\u6301\u3061\u307E\u305B\u3093\uFF09\u3002
|
|
91
105
|
\u6309\u5206\u306F\u884C\u3054\u3068\u306B\u6BD4\u7387\uFF08percentage\u30FB%\uFF09\u304B\u91D1\u984D\uFF08amount\u30FB\u5186\uFF09\u306E\u3069\u3061\u3089\u304B\u3067\u3001\u4F7F\u308F\u306A\u3044\u5074\u306F 0 \u3067\u3059\u3002
|
|
92
|
-
|
|
93
|
-
|
|
94
|
-
|
|
95
|
-
|
|
96
|
-
|
|
97
|
-
|
|
106
|
+
\u671F\u9593\uFF08periods\uFF09\u3092\u6301\u3064\u884C\u306F\u3001\u305D\u306E\u671F\u9593\u306E\u6708\u3060\u3051\u671F\u9593\u3054\u3068\u306E\u5024\u3067\u6309\u5206\u3057\u3001\u884C\u306E\u5024\u306F\u4F7F\u3044\u307E\u305B\u3093\uFF08\u671F\u9593\u5916\u306E\u6708\u306F\u305D\u306E\u90E8\u7F72\u306B\u6309\u5206\u3057\u307E\u305B\u3093\uFF09\u3002
|
|
107
|
+
periods \u304C\u7A7A\u306E\u884C\u306F\u5F93\u6765\u3069\u304A\u308A\u5168\u671F\u9593\u306B\u52B9\u304D\u307E\u3059\u3002table / text / tsv \u306E periods \u5217\u306F\u300C2026-11\u301C2027-01: 300,000 \u5186\u300D\u306E\u5F62\u3067\u3059
|
|
108
|
+
\uFF08\u958B\u59CB\u30FB\u7D42\u4E86\u306E\u7A7A\u6B04\u306F\u4E0B\u9650\u30FB\u4E0A\u9650\u306A\u3057\uFF09\u3002--output json \u306F periods \u3092\u305D\u306E\u307E\u307E\u51FA\u3059\u306E\u3067\u3001set --file \u306B\u305D\u306E\u307E\u307E\u6E21\u305B\u307E\u3059\u3002
|
|
109
|
+
--output table / text / tsv \u306F\u8981\u7D04\u5217\uFF08${ALLOCATION_COLUMNS.join(" / ")}\uFF09\u3067\u3059\u3002`,flags:[PROJECT_FLAG],forbidden:FORBIDDEN,async prepare(input,ctx){noArgs(input,"allocation list");return withResolved(input,{projectId:await ctx.projectId(nonEmpty(input.flags,PROJECT_FLAG.name))})},plan:input=>({method:"GET",path:`${PATH}/allocations`,query:{project_id:requireResolved(input,"projectId")}}),summarize:body=>dataRows(body,"\u90E8\u7F72\u6309\u5206").map(row=>allocationSummary(
|
|
110
|
+
row,ALLOCATION_COLUMNS)),raw:body=>dataRows(body,"\u90E8\u7F72\u6309\u5206"),notes:body=>dataRows(body,"\u90E8\u7F72\u6309\u5206").length===0?["\u90E8\u7F72\u6309\u5206\u306F\u3042\u308A\u307E\u305B\u3093"]:[]},{name:"set",summary:"\u30D7\u30ED\u30B8\u30A7\u30AF\u30C8\u306E\u90E8\u7F72\u6309\u5206\u3092\u5168\u4EF6\u7F6E\u304D\u63DB\u3048\u308B\uFF08\u671F\u9593\u306F --file\u30FB--clear \u3067\u5168\u90E8\u6D88\u3059\u30FB--yes \u304C\u8981\u308B\uFF09",usage:"twp budget allocation set [--proje\
|
|
111
|
+
ct <\u30D7\u30ED\u30B8\u30A7\u30AF\u30C8>] (--split <\u90E8\u7F72>=<\u5024>... | --file <JSON> | --clear) --yes",description:'POST /api/v2/budget/allocations \u3067\u6309\u5206\u3092**\u5168\u4EF6\u7F6E\u304D\u63DB\u3048\u307E\u3059**\uFF08\u6307\u5B9A\u3057\u306A\u304B\u3063\u305F\u90E8\u7F72\u306E\u6309\u5206\u306F\u6D88\u3048\u3001\u5143\u306B\u623B\u305B\u307E\u305B\u3093\uFF09\u3002\n--split <\u90E8\u7F72>=60% \u306F\u6BD4\u7387\u3001--split <\u90E8\u7F72>=500000 \u306F\u91D1\u984D\uFF08\u5186\uFF09\u3067\u3059\u3002\u884C\u3054\u3068\u306B\u6DF7\u305C\u3089\u308C\u307E\u3059\u3002--clear \u306F\u6309\u5206\u3092\u3059\u3079\u3066\u6D88\u3057\u307E\u3059\u3002\n\u671F\u9593\uFF08periods\uFF09\u306F --file <JSON> \u3067\u6307\u5B9A\u3057\u307E\u3059\u3002JSON \u306F\u6309\u5206\u306E\u914D\u5217\uFF08{"allocations": [...]} \u3067\u3082\u53EF\uFF09\u3067\u3001\u90E8\u7F72\u306F\u540D\u524D\u30FB\u30B3\u30FC\u30C9\u30FBID \u306E\u3044\u305A\u308C\u304B\u3067\u66F8\u3051\u307E\u3059:\n [{"department": "\u958B\u767A\u90E8", "allocation_type": "percentage", "percentage": 100},\n {"department": "\u55B6\u696D\u90E8", "periods": [{"\
|
|
112
|
+
start_month": "2026-11", "end_month": "2027-01", "allocation_type": "amount", "amount": 300000}]}]\nperiods \u306F\u7701\u7565\u53EF\u3067\u3001\u7701\u304F\u3068\u5168\u671F\u9593\u306B\u52B9\u304D\u307E\u3059\u3002start_month / end_month \u306F YYYY-MM \u3067\u3001null \u306F\u4E0B\u9650\u30FB\u4E0A\u9650\u306A\u3057\u3067\u3059\u3002\n\u671F\u9593\u3092\u6301\u3064\u884C\u306F\u671F\u9593\u5916\u306E\u6708\u306B\u6309\u5206\u3057\u307E\u305B\u3093\u3002\u540C\u3058\u90E8\u7F72\u306E\u671F\u9593\u306F\u91CD\u306D\u3089\u308C\u307E\u305B\u3093\uFF081\u90E8\u7F721\u884C\u3067 periods \u306B\u4E26\u3079\u307E\u3059\uFF09\u3002\n**\u5168\u4EF6\u7F6E\u63DB\u306A\u306E\u3067\u3001--split / --clear \u3067\u9001\u308B\u3068\u4ECA\u3042\u308B\u671F\u9593\u306E\u8A2D\u5B9A\u3082\u6D88\u3048\u307E\u3059\u3002** \u671F\u9593\u3092\u6B8B\u3059\u306A\u3089 twp budget allocation list --output json \u306E\u7D50\u679C\u3092\n\u76F4\u3057\u3066 --file \u3067\u9001\u308A\u76F4\u3057\u3066\u304F\u3060\u3055\u3044\uFF08project_id / department_name / created_at / updated_at \u306F\u7121\u8996\u3057\u307E\u3059\uFF09\u3002\n\u6BD4\u7387\u306E\u5408\u8A08\u306F\u30B5\u30FC\u30D0\u304C\u753B\u9762\u3068\u540C\u3058\u898F\u5247\u3067\u691C\u67FB\u3057\u307E\u3059\uFF08\u6BD4\u7387\u3060\u3051\u306A\u3089\u5408\u8A08 100%\u3001\u91D1\u984D\u306E\u884C\u3092\u542B\u3080\u306A\u3089\u6BD4\u7387\u306E\u5408\u8A08\u304C 100% \u4EE5\u4E0B\u3002\u671F\u9593\u304C\u3042\u308C\u3070\u6708\u3054\u3068\uFF09\u3002\n\
|
|
113
|
+
\u9055\u53CD\u3059\u308B\u3068 422 \u30671\u4EF6\u3082\u66F8\u304B\u305A\u3001\u7406\u7531\uFF08\u4F8B: \u6309\u5206\u6BD4\u7387\u306E\u5408\u8A08\u3092100%\u306B\u3057\u3066\u304F\u3060\u3055\u3044\u3002\uFF09\u3092\u51FA\u3057\u3066\u7D42\u4E86\u30B3\u30FC\u30C9 3 \u3067\u7D42\u308F\u308A\u307E\u3059\u3002\n\u9001\u308B\u524D\u306B\u7F6E\u63DB\u524D\u3068\u7F6E\u63DB\u5F8C\u306E\u6309\u5206\u3092 stderr \u306B\u51FA\u3057\u307E\u3059\uFF08--dry-run \u3067\u3082\u51FA\u307E\u3059\uFF09\u3002\n \u4F8B: twp budget allocation set --project SAMPLE --split \u958B\u767A\u90E8=60% --split \u55B6\u696D\u90E8=40% --yes\n'+
|
|
114
|
+
EDIT_HINT,destructive:true,confirmation:"\u90E8\u7F72\u6309\u5206\u3092\u5168\u4EF6\u7F6E\u304D\u63DB\u3048\u308B\u64CD\u4F5C",flags:[PROJECT_FLAG,SPLIT_FLAG,ALLOCATION_FILE_FLAG,CLEAR_FLAG],forbidden:FORBIDDEN,prepare:prepareAllocationSet,plan:input=>({method:"POST",path:`${PATH}/allocations`,body:JSON.parse(requireResolved(input,"body"))}),plannedNotes:input=>JSON.parse(requireResolved(input,"notes")),summarize:body=>dataRows(body,"\u90E8\u7F72\u6309\u5206").map(row=>allocationSummary(row,ALLOCATION_COLUMNS.
|
|
115
|
+
filter(column=>column!=="department_name"))),raw:body=>dataRows(body,"\u90E8\u7F72\u6309\u5206"),notes:body=>[`\u90E8\u7F72\u6309\u5206\u3092 ${dataRows(body,"\u90E8\u7F72\u6309\u5206").length} \u4EF6\u306B\u3057\u307E\u3057\u305F`]}]};var budgetDomain={name:"budget",summary:"\u4E88\u5B9F\u7BA1\u7406\uFF08\u5E74\u5EA6\u306E\u76EE\u6A19\u30FB\u30C0\u30C3\u30B7\u30E5\u30DC\u30FC\u30C9\u30FB\u30B5\u30DE\u30EA\u30FC\u30FB\u5185\u8A33\u30FBCSV \u51FA\u529B\u3001\u76EE\u6A19\u306E\u767B\u9332\u3068\u53D6\u308A\u8FBC\u307F\u3001\u30D7\u30ED\u30B8\u30A7\u30AF\u30C8\u306E\u90E8\u7F72\u6309\u5206\uFF09",
|
|
116
|
+
operations:[dashboardOperation,summaryOperation,breakdownOperation,unassignedOperation,exportOperation],subresources:[targetResource,allocationResource]};export{breakdownRows,budgetDomain,dashboardRows,fiscalYear,importRejection,overwriteLines,parseAllocationRows,parseSplit,parseTargetRows,periodsLabel};
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import { createRequire as __twpCreateRequire } from 'node:module';
|
|
2
2
|
const require = __twpCreateRequire(import.meta.url);
|
|
3
|
-
import{loadDomain}from"./chunk-
|
|
3
|
+
import{loadDomain}from"./chunk-53D2WQQO.js";import{JsonBodyWithView}from"./chunk-Q3B65OFC.js";import{evaluateQuery}from"./chunk-GFLGXGWE.js";import{renderDocument,renderOutput}from"./chunk-YXVN6OCH.js";import{redactSecretValues,redactSecrets,withDebug}from"./chunk-UFGJSWKU.js";import{DEFAULT_MAX_ITEMS,DEFAULT_MAX_PAGES,nextPageNotes,positiveInteger,shellQuote}from"./chunk-MI6HVYR2.js";import{parseOperationArgs}from"./chunk-RX5HWI4L.js";import{Resolver,requireDefaultProject}from"./chunk-HNG6MF26.js";
|
|
4
4
|
import{ResolveError}from"./chunk-HVZUXLQ4.js";import{ApiError,MultipartBody,TwpApiClient,appendQuery}from"./chunk-JA5A6UJ2.js";import{isRecord}from"./chunk-3ZRMMBP5.js";import{ApiRejectedError,ApiResponseError,EXIT_API_CLIENT,EXIT_API_SERVER,EXIT_AUTH,EXIT_FAILURE,EXIT_OK,EXIT_USAGE,EXIT_WAIT_TIMEOUT,NetworkError,UsageError,WaitTimeoutError}from"./chunk-VFPY2A23.js";import{GLOBAL_OPTIONS_HELP}from"./chunk-PECIBNFD.js";import{AuthSession,NotLoggedInError,SessionExpiredError,
|
|
5
5
|
loadCredentials}from"./chunk-XNLIEUAW.js";import{httpFetch}from"./chunk-J7QYPKVK.js";import{effectiveApiUrl,loadUserConfig,resolveConfiguredOutput,resolveProfile}from"./chunk-4VZKNEVN.js";import{HELP_TOKEN}from"./chunk-KDH3KWPO.js";import{OUTPUT_FORMATS,resolveOutputFormat}from"./chunk-74BPZOKU.js";import{stringWidth}from"./chunk-UREA4ZIG.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?"":`
|
|
@@ -1,9 +1,9 @@
|
|
|
1
1
|
import { createRequire as __twpCreateRequire } from 'node:module';
|
|
2
2
|
const require = __twpCreateRequire(import.meta.url);
|
|
3
3
|
var LOADERS={agent:async()=>(await import("./agent-SFX3ZVOB.js")).agentDomain,"agent-loop":async()=>(await import("./agent-loop-6JO4PJRG.js")).agentLoopDomain,"ai-review-reason":async()=>(await import("./sales-ai-review-6TDJFHDL.js")).aiReviewReasonDomain,analysis:async()=>(await import("./analysis-HMOECNWG.js")).analysisDomain,announcement:async()=>(await import("./announcement-Q642UMYK.js")).announcementDomain,attendance:async()=>(await import("./attendance-correct-DWVFYL2Y.js")).attendanceDomainWithRecords,
|
|
4
|
-
backlog:async()=>(await import("./backlog-FG3Y5JTE.js")).backlogDomain,budget:async()=>(await import("./budget-
|
|
4
|
+
backlog:async()=>(await import("./backlog-FG3Y5JTE.js")).backlogDomain,budget:async()=>(await import("./budget-5RPOQZN7.js")).budgetDomain,"business-place":async()=>(await import("./sales-master-H5HMVBJV.js")).businessPlaceDomain,company:async()=>(await import("./company-4DHVAW25.js")).companyDomain,contract:async()=>(await import("./contract-PT7VW4IE.js")).contractDomain,customer:async()=>(await import("./company-4DHVAW25.js")).customerDomain,department:async()=>(await import("./department-C6WIZPBS.js")).
|
|
5
5
|
departmentDomain,deposit:async()=>(await import("./deposit-OEYFPEZG.js")).depositDomain,estimate:async()=>(await import("./estimate-4BUJQ3TP.js")).estimateDomain,evaluation:async()=>(await import("./evaluation-GLXQ54F6.js")).evaluationDomain,expense:async()=>(await import("./expense-QE3WIJTN.js")).expenseDomain,"fiscal-year":async()=>(await import("./fiscal-year-YJWFQN4P.js")).fiscalYearDomain,"goal-sheet":async()=>(await import("./evaluation-GLXQ54F6.js")).goalSheetDomain,inquiry:async()=>(await import("./inquiry-ORB3ROAJ.js")).
|
|
6
|
-
inquiryDomain,invoice:async()=>(await import("./invoice-XLX5KS2T.js")).invoiceDomain,"job-title":async()=>(await import("./job-title-UDF6I3BP.js")).jobTitleDomain,leave:async()=>(await import("./leave-3BJMXI7Q.js")).leaveDomain,license:async()=>(await import("./license-OMIZUUTW.js")).licenseDomain,media:async()=>(await import("./media-
|
|
6
|
+
inquiryDomain,invoice:async()=>(await import("./invoice-XLX5KS2T.js")).invoiceDomain,"job-title":async()=>(await import("./job-title-UDF6I3BP.js")).jobTitleDomain,leave:async()=>(await import("./leave-3BJMXI7Q.js")).leaveDomain,license:async()=>(await import("./license-OMIZUUTW.js")).licenseDomain,media:async()=>(await import("./media-TWRO65NT.js")).mediaDomain,meeting:async()=>(await import("./knowledge-4QPIGJEE.js")).meetingDomain,note:async()=>(await import("./knowledge-4QPIGJEE.js")).
|
|
7
7
|
noteDomain,notification:async()=>(await import("./notification-2IESSY5E.js")).notificationDomain,onedrive:async()=>(await import("./onedrive-ZY3GTU26.js")).onedriveDomain,outlook:async()=>(await import("./outlook-KYTXHDAV.js")).outlookDomain,payee:async()=>(await import("./sales-master-H5HMVBJV.js")).payeeDomain,position:async()=>(await import("./position-CR6P4WC5.js")).positionDomain,project:async()=>(await import("./project-JJEMEO2W.js")).projectDomain,prospect:async()=>(await import("./prospect-QG6X7ALK.js")).
|
|
8
8
|
prospectDomain,purchase:async()=>(await import("./purchase-Z6ENEOZM.js")).purchaseDomain,qualification:async()=>(await import("./skill-RH5MBRXZ.js")).qualificationDomain,receivable:async()=>(await import("./receivable-ZBDXXMHX.js")).receivableDomain,redmine:async()=>(await import("./redmine-EIFHMLNE.js")).redmineDomain,report:async()=>(await import("./report-TTXGXSR3.js")).reportDomain,"rounding-setting":async()=>(await import("./sales-numbering-Q5KRM63Y.js")).roundingSettingDomain,
|
|
9
9
|
"seal-impression":async()=>(await import("./sales-master-H5HMVBJV.js")).sealImpressionDomain,search:async()=>(await import("./search-GRAWP2LX.js")).searchDomain,segment:async()=>(await import("./segment-YOUY4PZC.js")).segmentDomain,shift:async()=>(await import("./attendance-lists-772Y3ZWA.js")).shiftDomain,skill:async()=>(await import("./skill-RH5MBRXZ.js")).skillDomain,storage:async()=>(await import("./storage-AQDCEBDJ.js")).storageDomain,"supplier-payment":async()=>(await import("./supplier-payment-EJTFKAKY.js")).
|
package/dist/cli.js
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
#!/usr/bin/env node
|
|
2
2
|
import { createRequire as __twpCreateRequire } from 'node:module';
|
|
3
3
|
const require = __twpCreateRequire(import.meta.url);
|
|
4
|
-
import{GLOBAL_OPTIONS_HELP}from"./chunk-PECIBNFD.js";import{parseArgv}from"./chunk-2OG4LAGD.js";import"./chunk-2LOT54OO.js";import"./chunk-KDH3KWPO.js";import"./chunk-QQRJLH6B.js";import"./chunk-VSJBJXZO.js";var VERSION=true?"0.
|
|
4
|
+
import{GLOBAL_OPTIONS_HELP}from"./chunk-PECIBNFD.js";import{parseArgv}from"./chunk-2OG4LAGD.js";import"./chunk-2LOT54OO.js";import"./chunk-KDH3KWPO.js";import"./chunk-QQRJLH6B.js";import"./chunk-VSJBJXZO.js";var VERSION=true?"0.67.0":"0.0.0-dev";var HELP=`twp ${VERSION} \u2014 TWP CLI
|
|
5
5
|
|
|
6
6
|
\u4F7F\u3044\u65B9:
|
|
7
7
|
twp \u5BFE\u8A71 TUI \u3092\u8D77\u52D5
|
|
@@ -442,7 +442,7 @@ import{GLOBAL_OPTIONS_HELP}from"./chunk-PECIBNFD.js";import{parseArgv}from"./chu
|
|
|
442
442
|
twp budget allocation list
|
|
443
443
|
\u30D7\u30ED\u30B8\u30A7\u30AF\u30C8\u306E\u90E8\u7F72\u6309\u5206\u3092\u8868\u793A\u3059\u308B
|
|
444
444
|
twp budget allocation set
|
|
445
|
-
\u90E8\u7F72\u6309\u5206\u3092\u5168\u4EF6\u7F6E\u304D\u63DB\u3048\u308B\uFF08--clear \u3067\u5168\u90E8\u6D88\u3059\u30FB--yes \u304C\u8981\u308B\uFF09
|
|
445
|
+
\u90E8\u7F72\u6309\u5206\u3092\u5168\u4EF6\u7F6E\u304D\u63DB\u3048\u308B\uFF08\u671F\u9593\u306F --file\u30FB--clear \u3067\u5168\u90E8\u6D88\u3059\u30FB--yes \u304C\u8981\u308B\uFF09
|
|
446
446
|
twp leave list \u81EA\u5206\u306E\u6709\u7D66\u306E\u53D6\u5F97\u5C65\u6B74\u3068\u6B8B\u65E5\u6570
|
|
447
447
|
twp leave grants [<\u30E6\u30FC\u30B6\u30FC>]
|
|
448
448
|
\u6709\u7D66\u306E\u4ED8\u4E0E\u5C65\u6B74\uFF08\u7701\u7565\u3067\u81EA\u5206\u30FB\u4ED6\u306E\u4EBA\u306F\u6709\u7D66\u7BA1\u7406\u306E\u6A29\u9650\u304B\u4E0A\u9577\uFF09
|
|
@@ -1225,15 +1225,15 @@ TUI \u5185:
|
|
|
1225
1225
|
\u4F1A\u8A71\u30FB\u30ED\u30FC\u30AB\u30EB\u30C4\u30FC\u30EB\uFF08\u30D5\u30A1\u30A4\u30EB\u30FB\u30B3\u30DE\u30F3\u30C9\u30FBgit\uFF09\u306F\u30C6\u30CA\u30F3\u30C8\u306E\u30AF\u30EC\u30B8\u30C3\u30C8\u3067\u5B9F\u969B\u306B\u52D5\u304D\u307E\u3059\u3002
|
|
1226
1226
|
`;function ignoreEpipe(stream){stream.on("error",err=>{if(err.code==="EPIPE")process.exit(0);throw err})}async function main(){const nodeMajor=Number(process.versions.node.split(".")[0]);if(nodeMajor<22){process.stderr.write(`twp-cli \u306B\u306F Node.js 22 \u4EE5\u4E0A\u304C\u5FC5\u8981\u3067\u3059\uFF08\u73FE\u5728: ${process.versions.node}\uFF09
|
|
1227
1227
|
`);process.exit(1)}ignoreEpipe(process.stdout);ignoreEpipe(process.stderr);if(process.env["TWP_AUTO_UPDATE_WORKER"]==="1"){const{runAutoUpdateWorker}=await import("./auto-update-worker-VG77U4UA.js");await runAutoUpdateWorker().catch(()=>void 0);return}const[first,...rest]=process.argv.slice(2);if(first==="__complete"||first==="completion"){const completion=await import("./completion-WR2GXZE7.js");if(first==="completion"){process.exitCode=completion.runCompletion(rest,process.stdout,process.stderr);return}
|
|
1228
|
-
const[{loadDomain},{loadUserConfig}]=await Promise.all([import("./registry-
|
|
1228
|
+
const[{loadDomain},{loadUserConfig}]=await Promise.all([import("./registry-WBDRVEUW.js"),import("./config-3CNEQ7KN.js")]);process.exitCode=await completion.runComplete(rest,process.stdout,{loadDomain,profileNames:()=>Object.keys(loadUserConfig().profiles??{})});return}if(first==="configure"){const autoUpdate2=await import("./auto-update-YMI3F44R.js");autoUpdate2.registerRunning();autoUpdate2.onStartup(VERSION);const{runConfigure}=await import("./configure-3H3CGGBI.js");process.exitCode=
|
|
1229
1229
|
await runConfigure(rest);return}const args=parseArgv(process.argv.slice(2));if(args.command==="version"){process.stdout.write(`${VERSION}
|
|
1230
1230
|
`);return}if(args.command==="help"){process.stdout.write(HELP);return}if(args.unknown.length>0){process.stderr.write(`\u4E0D\u660E\u306A\u5F15\u6570: ${args.unknown.join(" ")}
|
|
1231
1231
|
|
|
1232
|
-
${HELP}`);process.exitCode=2;return}const autoUpdate=await import("./auto-update-YMI3F44R.js");autoUpdate.registerRunning();if(args.command==="task-loop"&&args.taskLoopAction!=="capacity"){process.env[autoUpdate.DISABLE_ENV]="1"}else if(args.command!=="update"){autoUpdate.onStartup(VERSION)}if(args.command==="domain"&&args.domain!==void 0){const{runDomain}=await import("./run-
|
|
1233
|
-
{},argv:args.domainArgv,help:args.domainHelp,globals:{...args.profile!==void 0?{profile:args.profile}:{},...args.output!==void 0?{output:args.output}:{},...args.query!==void 0?{query:args.query}:{},dryRun:args.dryRun,debug:args.debug,yes:args.yes,refresh:args.refresh},version:VERSION});return}if(args.command==="api"){const{runApiCommand}=await import("./api-command-
|
|
1232
|
+
${HELP}`);process.exitCode=2;return}const autoUpdate=await import("./auto-update-YMI3F44R.js");autoUpdate.registerRunning();if(args.command==="task-loop"&&args.taskLoopAction!=="capacity"){process.env[autoUpdate.DISABLE_ENV]="1"}else if(args.command!=="update"){autoUpdate.onStartup(VERSION)}if(args.command==="domain"&&args.domain!==void 0){const{runDomain}=await import("./run-XZUJWTTZ.js");process.exitCode=await runDomain({domain:args.domain,...args.operation!==void 0?{operation:args.operation}:
|
|
1233
|
+
{},argv:args.domainArgv,help:args.domainHelp,globals:{...args.profile!==void 0?{profile:args.profile}:{},...args.output!==void 0?{output:args.output}:{},...args.query!==void 0?{query:args.query}:{},dryRun:args.dryRun,debug:args.debug,yes:args.yes,refresh:args.refresh},version:VERSION});return}if(args.command==="api"){const{runApiCommand}=await import("./api-command-WIMCS3VI.js");process.exitCode=await runApiCommand({argv:args.domainArgv,help:args.domainHelp,globals:{...args.profile!==void 0?{profile:args.
|
|
1234
1234
|
profile}:{},...args.output!==void 0?{output:args.output}:{},...args.query!==void 0?{query:args.query}:{},dryRun:args.dryRun,debug:args.debug,yes:args.yes},version:VERSION});return}if(args.command==="update"){const{runUpdate}=await import("./update-NCAVUXSX.js");process.exitCode=await runUpdate({...args.profile!==void 0?{profile:args.profile}:{},version:VERSION});return}if(args.command==="login"||args.command==="logout"||args.command==="whoami"){const{runLogin,runLogout,runWhoami}=await import("./commands-4C6TJ4WG.js");
|
|
1235
1235
|
const options={profile:args.profile,method:args.loginMethod,tenant:args.tenant,noBrowser:args.loginNoBrowser,cliVersion:VERSION,force:args.logoutForce,...args.output!==void 0?{output:args.output}:{},...args.query!==void 0?{query:args.query}:{}};const runner=args.command==="login"?runLogin:args.command==="logout"?runLogout:runWhoami;process.exitCode=await runner(options);return}if(args.command==="task-loop"){const{runTaskLoop}=await import("./commands-62NWF7GA.js");process.exitCode=await runTaskLoop(
|
|
1236
1236
|
{action:args.taskLoopAction??"run",project:args.project,profile:args.profile,safe:args.safe,daemon:args.daemon,interval:args.interval,maxCycles:args.maxCycles,forceRunner:args.forceRunner,force:args.stopForce,drain:args.stopDrain,engine:args.engine,version:VERSION,verbose:args.verbose,scheduleNow:args.scheduleNow,scheduleCounts:args.scheduleCounts,scheduleGate:args.scheduleGate,charterOp:args.charterOp,charterInput:args.charterFile,charterOutput:args.charterOut,charterRevision:args.charterRevision,
|
|
1237
1237
|
skillOp:args.skillOp,skillName:args.skillName,skillAll:args.skillAll,skillDir:args.skillDir,revisionFrom:args.revisionFrom,revisionTo:args.revisionTo,planOp:args.planOp,capacityOp:args.capacityOp,planEmpty:args.planEmpty,planCheck:args.planCheck,yes:args.yes,ais:args.ais,workspace:args.workspace,aiConfigFile:args.aiConfigFile,noAiConfigFile:args.noAiConfigFile});return}if(args.command==="print"){const{runOneShot}=await import("./oneshot-4XO5HIJR.js");process.exitCode=await runOneShot({prompt:args.
|
|
1238
|
-
prompt??"",fromStdin:args.promptFromStdin,mode:args.mode??"dev",...args.permissionMode!==void 0?{permissionMode:args.permissionMode}:{},allowedTools:args.allowedTools,disallowedTools:args.disallowedTools,...args.model!==void 0?{model:args.model}:{},...args.profile!==void 0?{profile:args.profile}:{},version:VERSION});return}const{startTui}=await import("./app-
|
|
1238
|
+
prompt??"",fromStdin:args.promptFromStdin,mode:args.mode??"dev",...args.permissionMode!==void 0?{permissionMode:args.permissionMode}:{},allowedTools:args.allowedTools,disallowedTools:args.disallowedTools,...args.model!==void 0?{model:args.model}:{},...args.profile!==void 0?{profile:args.profile}:{},version:VERSION});return}const{startTui}=await import("./app-5FFWVAGQ.js");await startTui({mode:args.mode,permissionMode:args.permissionMode,allowedTools:args.allowedTools,disallowedTools:args.
|
|
1239
1239
|
disallowedTools,model:args.model,profile:args.profile,noTui:args.noTui||!process.stdout.isTTY,doctor:args.doctor,version:VERSION})}await main();
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import { createRequire as __twpCreateRequire } from 'node:module';
|
|
2
2
|
const require = __twpCreateRequire(import.meta.url);
|
|
3
|
-
import{checkOutTarget}from"./chunk-
|
|
3
|
+
import{checkOutTarget}from"./chunk-3EATJTPN.js";import"./chunk-53D2WQQO.js";import"./chunk-Q3B65OFC.js";import"./chunk-GFLGXGWE.js";import"./chunk-YXVN6OCH.js";import"./chunk-UFGJSWKU.js";import{contentTypeFor,inspectLocalFile}from"./chunk-I4TR55UF.js";import{checkUploadQuota}from"./chunk-V64CGX7V.js";import{parseWaitOptions,waitUntilTerminal}from"./chunk-WVCEKC7V.js";import"./chunk-GY7KI5E5.js";import{LIST_FLAGS,LIST_PAGING_HELP,envelopePaging,
|
|
4
4
|
nonEmpty,positiveInteger,readEnvelopeCursor,shellQuote}from"./chunk-MI6HVYR2.js";import{repeatedValues}from"./chunk-RX5HWI4L.js";import{readBody}from"./chunk-6LSQCOCJ.js";import"./chunk-HNG6MF26.js";import{collapsesInUrlPath,isSafePathSegment}from"./chunk-HVZUXLQ4.js";import{ApiError}from"./chunk-JA5A6UJ2.js";import"./chunk-H4CDX4TX.js";import{requireResolved,singleRef,withResolved}from"./chunk-PS5QFKHB.js";import"./chunk-II5RVJQN.js";import{
|
|
5
5
|
acknowledgement,isRecord,pick}from"./chunk-3ZRMMBP5.js";import{ApiRejectedError,ApiResponseError,NetworkError,UsageError,WaitTimeoutError}from"./chunk-VFPY2A23.js";import"./chunk-PECIBNFD.js";import"./chunk-XNLIEUAW.js";import"./chunk-J7QYPKVK.js";import"./chunk-4VZKNEVN.js";import"./chunk-RZVI6PMW.js";import"./chunk-KDH3KWPO.js";import"./chunk-QQRJLH6B.js";import"./chunk-74BPZOKU.js";import"./chunk-UREA4ZIG.js";import"./chunk-NHYMHCAT.js";
|
|
6
6
|
import"./chunk-VSJBJXZO.js";import crypto2 from"crypto";import fs2 from"fs";import path from"path";var SCOPE_PERSONAL="personal";var SCOPE_PROJECT="project";var UUID=/^[0-9a-f]{8}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{12}$/i;var FORBIDDEN_NAME=/[/\\:*?"<>|]/;var NAME_MAX=255;var ROW_COLUMNS=["id","path","name","file_count","subfolder_count","parent_id","updated_at"];var TRASH_COLUMNS=["id","path","name","file_count","subfolder_count","parent_id","deleted_at"];function folderRows(raw){return raw.map(row=>{const id=row["id"];const name=row["name"];const parentId=row["parent_id"];if(typeof id!==
|
|
@@ -1,3 +1,3 @@
|
|
|
1
1
|
import { createRequire as __twpCreateRequire } from 'node:module';
|
|
2
2
|
const require = __twpCreateRequire(import.meta.url);
|
|
3
|
-
import{loadDomain}from"./chunk-
|
|
3
|
+
import{loadDomain}from"./chunk-53D2WQQO.js";import"./chunk-VSJBJXZO.js";export{loadDomain};
|
|
@@ -1,4 +1,4 @@
|
|
|
1
1
|
import { createRequire as __twpCreateRequire } from 'node:module';
|
|
2
2
|
const require = __twpCreateRequire(import.meta.url);
|
|
3
|
-
import{CURATED_PAGING_VOCABULARY,buildPrepareContext,checkOutTarget,exitCodeFor,fetchAllPages,outputValue,reportError,requiresYes,resolvePaging,runDomain}from"./chunk-
|
|
3
|
+
import{CURATED_PAGING_VOCABULARY,buildPrepareContext,checkOutTarget,exitCodeFor,fetchAllPages,outputValue,reportError,requiresYes,resolvePaging,runDomain}from"./chunk-3EATJTPN.js";import"./chunk-53D2WQQO.js";import"./chunk-Q3B65OFC.js";import"./chunk-GFLGXGWE.js";import"./chunk-YXVN6OCH.js";import"./chunk-UFGJSWKU.js";import"./chunk-MI6HVYR2.js";import"./chunk-RX5HWI4L.js";import"./chunk-HNG6MF26.js";import"./chunk-HVZUXLQ4.js";import"./chunk-JA5A6UJ2.js";
|
|
4
4
|
import"./chunk-H4CDX4TX.js";import"./chunk-II5RVJQN.js";import"./chunk-3ZRMMBP5.js";import"./chunk-VFPY2A23.js";import"./chunk-PECIBNFD.js";import"./chunk-XNLIEUAW.js";import"./chunk-J7QYPKVK.js";import"./chunk-4VZKNEVN.js";import"./chunk-RZVI6PMW.js";import"./chunk-KDH3KWPO.js";import"./chunk-QQRJLH6B.js";import"./chunk-74BPZOKU.js";import"./chunk-UREA4ZIG.js";import"./chunk-NHYMHCAT.js";import"./chunk-VSJBJXZO.js";export{CURATED_PAGING_VOCABULARY,buildPrepareContext,checkOutTarget,exitCodeFor,fetchAllPages,outputValue,reportError,requiresYes,resolvePaging,runDomain};
|