@tocca-systems/twp-cli 0.50.0 → 0.52.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 +24 -0
- package/README.md +175 -5
- package/dist/agent-LHNDQMT5.js +100 -0
- package/dist/{agent-loop-EBIXJ4EH.js → agent-loop-QP6UHX4R.js} +1 -1
- package/dist/{ai-dispatch-2FL2AFL7.js → ai-dispatch-VDNMECKK.js} +1 -1
- package/dist/analysis-RFO4E4ZS.js +4 -0
- package/dist/{announcement-R76XDLW7.js → announcement-HQ7CQYFI.js} +2 -2
- package/dist/{api-command-VFFV7BD4.js → api-command-5LQFOG24.js} +4 -4
- package/dist/{app-PNDIA4NV.js → app-G524XCIA.js} +5 -5
- package/dist/{attendance-correct-SN2KYGOE.js → attendance-correct-CRRR4EKL.js} +3 -3
- package/dist/{attendance-lists-6S62D2UV.js → attendance-lists-XPCU25OJ.js} +2 -1
- package/dist/{auto-update-PS5HUWVH.js → auto-update-YMI3F44R.js} +1 -1
- package/dist/{auto-update-worker-ZKODJ45K.js → auto-update-worker-VG77U4UA.js} +2 -2
- package/dist/{backlog-5XSCJGPJ.js → backlog-NU5HHXN2.js} +2 -2
- package/dist/{budget-PIGBJ5N7.js → budget-AM7JJ5YP.js} +2 -2
- package/dist/{chunk-FANDYQCM.js → chunk-22OIKHMN.js} +1 -1
- package/dist/{chunk-IRHKFHJZ.js → chunk-2NP3BLPI.js} +2 -2
- package/dist/chunk-3744RCNM.js +58 -0
- package/dist/{chunk-6QOT7CHX.js → chunk-5WTFZJT7.js} +1 -1
- package/dist/chunk-6A2JSS76.js +4 -0
- package/dist/{chunk-V2BB5EWS.js → chunk-6JB4MSDX.js} +1 -1
- package/dist/{chunk-DQCHLRSB.js → chunk-74WGU5BM.js} +2 -2
- package/dist/{chunk-LKS7GANP.js → chunk-7GJFKKOJ.js} +3 -2
- package/dist/{chunk-342WUEV4.js → chunk-AKLQMTMW.js} +61 -27
- package/dist/{chunk-CF3ZZKCZ.js → chunk-B6WIFZF2.js} +1 -1
- package/dist/chunk-DBCF4H3V.js +141 -0
- package/dist/{chunk-S3A24B2C.js → chunk-E34FX2DF.js} +16 -15
- package/dist/{chunk-CUPPIHSJ.js → chunk-F53TSCRD.js} +1 -1
- package/dist/{chunk-ELEOYXLD.js → chunk-FACNRXN7.js} +2 -2
- package/dist/chunk-FEJDU42E.js +138 -0
- package/dist/{chunk-IF2K4PM5.js → chunk-JA5A6UJ2.js} +6 -4
- package/dist/chunk-K7OIECPN.js +10 -0
- package/dist/{chunk-ZY6LEKWR.js → chunk-LXGYOKDY.js} +3 -3
- package/dist/{chunk-NK53AFVE.js → chunk-MKQDUQQ2.js} +1 -1
- package/dist/{chunk-BVXUORXE.js → chunk-NGY4K5VW.js} +1 -1
- package/dist/{chunk-YM7TKMNO.js → chunk-NWI2TBO6.js} +1 -1
- package/dist/{chunk-LNZTJI64.js → chunk-RQEX2WC5.js} +1 -1
- package/dist/{chunk-7UB4I3JF.js → chunk-RX5HWI4L.js} +1 -1
- package/dist/{chunk-NN6LAZRA.js → chunk-S36LGDG2.js} +2 -2
- package/dist/{chunk-ONAMXPTE.js → chunk-SDNASQZL.js} +1 -1
- package/dist/{chunk-4S7SNE2M.js → chunk-VOMCTG6N.js} +1 -1
- package/dist/{chunk-5JL26BPU.js → chunk-XWJVDNYE.js} +1 -1
- package/dist/{chunk-SECVO7RQ.js → chunk-XZU53BUV.js} +2 -2
- package/dist/{chunk-FMJUPLDG.js → chunk-ZVEMJWRR.js} +1 -1
- package/dist/cli.js +150 -10
- package/dist/{commands-CA22R7VD.js → commands-BXU44JWS.js} +5 -5
- package/dist/{commands-ZZGY6P3B.js → commands-TYUK7MV4.js} +2 -2
- package/dist/{company-CQYSBKTQ.js → company-BKULUHIU.js} +3 -4
- package/dist/{completion-3F2GJNGC.js → completion-RWWCIR6G.js} +1 -1
- package/dist/{configure-XH33RB27.js → configure-QU6JK65I.js} +1 -1
- package/dist/{contract-A2FGGVOR.js → contract-376FE7VC.js} +3 -3
- package/dist/{department-6BILJZG7.js → department-YKBPBPU6.js} +2 -2
- package/dist/deposit-CY5K3ZTM.js +4 -0
- package/dist/{estimate-5PSXHHNT.js → estimate-GPNG6YOJ.js} +4 -4
- package/dist/evaluation-VRLMQV32.js +61 -0
- package/dist/expense-3MT6WHTG.js +75 -0
- package/dist/{inquiry-NMOT4JSX.js → inquiry-YV433Q7V.js} +2 -2
- package/dist/{invoice-TXEJT6I6.js → invoice-OSAO4PIO.js} +3 -3
- package/dist/{job-title-NSYPQMEX.js → job-title-FITZHBR4.js} +1 -1
- package/dist/{knowledge-5DX6EMHZ.js → knowledge-YEEAKLQJ.js} +2 -2
- package/dist/{leave-DEGAZKVH.js → leave-MWYAL66X.js} +3 -2
- package/dist/media-TIRJJUNN.js +361 -0
- package/dist/{notification-NG4J6N2D.js → notification-EAEKDN54.js} +2 -2
- package/dist/{onedrive-YPJCILR2.js → onedrive-UBSHXVYS.js} +1 -1
- package/dist/{oneshot-RA65DTXP.js → oneshot-62DOJWOH.js} +2 -2
- package/dist/{outlook-MNOVX6QS.js → outlook-ODZD27J5.js} +2 -2
- package/dist/{position-OZBQYKZS.js → position-ZKYGVAAK.js} +1 -1
- package/dist/project-5MHCPDVC.js +4 -0
- package/dist/{prospect-TQ2FFWEZ.js → prospect-ASQA5QVD.js} +3 -3
- package/dist/{purchase-WOUWIZHO.js → purchase-WLJJSMM6.js} +4 -4
- package/dist/receivable-FBPROHOV.js +4 -0
- package/dist/{registry-H4NP4HUQ.js → registry-3PWIZP2X.js} +1 -1
- package/dist/{report-EFE43ZVI.js → report-HK2NZXHC.js} +2 -2
- package/dist/run-XZZR3OKX.js +4 -0
- package/dist/sales-ai-review-IEISLBIH.js +4 -0
- package/dist/{sales-master-Q5BJ7RNG.js → sales-master-S3YTUE7J.js} +3 -3
- package/dist/sales-numbering-M4KUZAM7.js +4 -0
- package/dist/skill-45FBIGC5.js +4 -0
- package/dist/{supplier-payment-FWGQR3Z3.js → supplier-payment-MS6YMIT4.js} +3 -3
- package/dist/{support-TVTQJFRE.js → support-VSDMFUTY.js} +2 -2
- package/dist/{task-IDQKPRYS.js → task-BTYFJRSC.js} +4 -4
- package/dist/{teams-IO6UQNYP.js → teams-GPXJPXNC.js} +2 -2
- package/dist/update-NCAVUXSX.js +3 -0
- package/dist/{user-B6KW6HA2.js → user-VFJGLZDR.js} +23 -6
- package/dist/{worker-agent-PEFBLL56.js → worker-agent-YX2KPVQG.js} +2 -2
- package/dist/workflow-OPZYCSDL.js +4 -0
- package/package.json +1 -1
- package/dist/analysis-2SWIQ4AI.js +0 -4
- package/dist/chunk-3YCVR7X4.js +0 -5
- package/dist/chunk-GXZOFRZH.js +0 -9
- package/dist/chunk-IU5P6MY5.js +0 -47
- package/dist/chunk-Q2KIETMB.js +0 -132
- package/dist/chunk-ZGHEF45T.js +0 -4
- package/dist/deposit-OAGRJMZ4.js +0 -4
- package/dist/media-RJCTHFK6.js +0 -185
- package/dist/project-5YFBRM32.js +0 -4
- package/dist/receivable-RFZT6PY3.js +0 -4
- package/dist/run-TNFPATQF.js +0 -4
- package/dist/sales-ai-review-FSA4J2J2.js +0 -4
- package/dist/sales-numbering-ITDBMODV.js +0 -4
- package/dist/update-EYFT7STE.js +0 -3
- package/dist/workflow-SYWZKWWB.js +0 -4
|
@@ -0,0 +1,75 @@
|
|
|
1
|
+
import { createRequire as __twpCreateRequire } from 'node:module';
|
|
2
|
+
const require = __twpCreateRequire(import.meta.url);
|
|
3
|
+
import{featureLicenseGuidance}from"./chunk-B6WIFZF2.js";import"./chunk-OTIR4GES.js";import"./chunk-RX5HWI4L.js";import"./chunk-MI6HVYR2.js";import{monthFlag}from"./chunk-EXT4AIDF.js";import{readBody}from"./chunk-6LSQCOCJ.js";import"./chunk-FEJDU42E.js";import{UUID_RE,isSafePathSegment}from"./chunk-GMBJTG6A.js";import"./chunk-JA5A6UJ2.js";import"./chunk-QBGEYQ2I.js";import{requireResolved,singleRef,withResolved}from"./chunk-PS5QFKHB.js";
|
|
4
|
+
import"./chunk-II5RVJQN.js";import{isRecord,pick}from"./chunk-3ZRMMBP5.js";import{ApiResponseError,UsageError}from"./chunk-VFPY2A23.js";import"./chunk-J7QYPKVK.js";import"./chunk-4VZKNEVN.js";import"./chunk-RZVI6PMW.js";import"./chunk-QQRJLH6B.js";import"./chunk-NHYMHCAT.js";import"./chunk-VSJBJXZO.js";var BASE="/api/v2/expense/commuting";var WORKFLOW_CATEGORY="commuting_expenses";var LIST_LIMIT_MAX=100;var DEFAULT_LIST_LIMIT=24;var COMMENT_MAX=1e3;var CONTENT_MAX_CHARS=2e4;var STATUSES=["draft","pending","approved","rejected"];var ENTRY_VALUES=["round_trip","one_way",""];var CONTENT_KEYS=["daily_entries","comment"];var LIST_COLUMNS=["id","year_month","status","total_round_trips","total_one_ways","total_amount","updated_at"];var ADMIN_LIST_COLUMNS=["id","user_name","year_month","status","total\
|
|
5
|
+
_round_trips","total_one_ways","total_amount","updated_at"];var GET_COLUMNS=["id","year_month","status","commuting_facilities","commuting_route","commuting_cost_one_way","total_round_trips","total_one_ways","total_amount","workflow_instance_id","comment"];var LICENSE=featureLicenseGuidance("\u7D4C\u8CBB\u7BA1\u7406");var USER_FORBIDDEN=body=>body?.error==="permission_denied"?LICENSE:"\u3053\u306E\u901A\u52E4\u4EA4\u901A\u8CBB\u3092\u64CD\u4F5C\u3059\u308B\u6A29\u9650\u304C\u3042\u308A\u307E\u305B\u3093\uFF08\u81EA\u5206\u306E\u5206\u304B\u3001\u7D4C\u8CBB\u306E\u7BA1\u7406\u8005\u3060\u3051\u304C\u6271\u3048\u307E\u3059\uFF09";
|
|
6
|
+
var ADMIN_FORBIDDEN=body=>body?.error==="permission_denied"?LICENSE:"\u7D4C\u8CBB\u306E\u7BA1\u7406\u8005\u306E\u6A29\u9650\u304C\u5FC5\u8981\u3067\u3059\uFF08\u30C6\u30CA\u30F3\u30C8\u306E\u7BA1\u7406\u8005\u304B\u3001\u7D4C\u8CBB\u306E\u6A29\u9650\u304C\u300C\u7BA1\u7406\u8005\u300D\u306E\u4EBA\u3060\u3051\u304C\u4F7F\u3048\u307E\u3059\uFF09\u3002\u30C6\u30CA\u30F3\u30C8\u7BA1\u7406\u8005\u306B\u78BA\u8A8D\u3057\u3066\u304F\u3060\u3055\u3044";var MONTH_FLAG={name:"--month",summary:"\u5BFE\u8C61\u306E\u5E74\u6708\uFF08YYYY-\
|
|
7
|
+
MM\uFF09",takesValue:true,placeholder:"<YYYY-MM>"};var ID_FLAG={name:"--id",summary:"\u5BFE\u8C61\u306E\u901A\u52E4\u4EA4\u901A\u8CBB\u306E ID\uFF08\u4F4D\u7F6E\u5F15\u6570\u306E\u4EE3\u308F\u308A\u306B\u4F7F\u3048\u308B\uFF09",takesValue:true,placeholder:"<ID>"};var COMMENT_FLAG={name:"--comment",summary:`\u7533\u8ACB\u306E\u30B3\u30E1\u30F3\u30C8\uFF08${String(COMMENT_MAX)} \u6587\u5B57\u4EE5\u5185\uFF09`,takesValue:true,placeholder:"<\u30B3\u30E1\u30F3\u30C8>"};var OUT_FLAG={name:"--out",summary:"\
|
|
8
|
+
\u66F8\u304D\u51FA\u3057\u5148\u306E\u30D5\u30A1\u30A4\u30EB\u30D1\u30B9\uFF08\u5FC5\u9808\uFF09",takesValue:true,placeholder:"<\u30D1\u30B9>"};var FORCE_FLAG={name:"--force",summary:"\u65E2\u5B58\u306E\u30D5\u30A1\u30A4\u30EB\u3092\u4E0A\u66F8\u304D\u3059\u308B",takesValue:false};var CONTENT_FILE_FLAG={name:"--content-file",summary:"\u65E5\u3054\u3068\u306E\u533A\u5206\u3068\u30B3\u30E1\u30F3\u30C8\u306E JSON \u30D5\u30A1\u30A4\u30EB\uFF08- \u3067\u6A19\u6E96\u5165\u529B\uFF09",takesValue:true,
|
|
9
|
+
placeholder:"<\u30D1\u30B9>"};var SKELETON_FLAG={name:"--generate-cli-skeleton",summary:"--content-file \u306E\u3072\u306A\u5F62\u3092\u51FA\u3057\u3066\u7D42\u4E86\u3059\u308B\uFF08\u4FDD\u5B58\u3057\u306A\u3044\uFF09",takesValue:false};var ID_USAGE=op=>`twp expense commuting ${op} <ID> --yes`;var LIST_USAGE="twp expense commuting list [--limit <\u4EF6\u6570>] | list --all-users [--month <YYYY-MM>] [--status draft|pending|approved|rejected]";var GET_USAGE="twp expense commuting get (--month <YY\
|
|
10
|
+
YY-MM> | <ID>)";var SAVE_USAGE="twp expense commuting save --month <YYYY-MM> (--content-file <\u30D1\u30B9> | --generate-cli-skeleton)";var APPLY_USAGE="twp expense commuting apply <ID> [--workflow <\u7533\u8ACB\u66F8>] [--comment <\u30B3\u30E1\u30F3\u30C8>] --yes";var EXPORT_USAGE="twp expense commuting export --month <YYYY-MM> --out <\u30D1\u30B9.csv> [--force] [--include-hidden]";var OPAQUE_400="\u65AD\u3089\u308C\u305F\u7406\u7531\u306F\u30B5\u30FC\u30D0\u304C\u8FD4\u3055\u306A\u3044\u3053\u3068\u304C\u3042\u308A\u307E\u3059\uFF08\u672C\u756A\u3067\u306F\u300C\u30B5\u30FC\u30D0\u30FC\u30A8\u30E9\u30FC\u304C\u767A\u751F\u3057\u307E\u3057\u305F\u300D\u306B\u306A\u308A\u307E\u3059\uFF09\u3002\n \u305D\u306E\u3068\u304D\u306F twp expense commuting get <ID> \u3067\u72B6\u614B\uFF08stat\
|
|
11
|
+
us\uFF09\u3092\u78BA\u304B\u3081\u3066\u304F\u3060\u3055\u3044\u3002";var CONTENT_HELP=`\u5185\u5BB9\uFF08--content-file\uFF09\u306F JSON \u30AA\u30D6\u30B8\u30A7\u30AF\u30C8\u3067\u3001\u30AD\u30FC\u306F daily_entries \u3068 comment \u3060\u3051\u3067\u3059\u3002
|
|
12
|
+
daily_entries \u306F\u65E5\uFF08"01"\u301C\u6708\u672B\u3002"1" \u306E\u3088\u3046\u306B1\u6841\u3067\u3082\u53EF\uFF09\u2192 \u533A\u5206\uFF08round_trip\uFF1D\u5F80\u5FA9 / one_way\uFF1D\u7247\u9053 / "" \u304B null\uFF1D\u901A\u52E4\u306A\u3057\uFF09\u3002
|
|
13
|
+
\u66F8\u304B\u306A\u304B\u3063\u305F\u65E5\u306F\u300C\u901A\u52E4\u306A\u3057\u300D\u3067\u9001\u308A\u307E\u3059\uFF08\u753B\u9762\u306E\u4FDD\u5B58\u3068\u540C\u3058\u304F\u3001\u6708\u306E\u5168\u65E5\u3092\u9001\u308A\u307E\u3059\uFF09\u3002
|
|
14
|
+
comment \u306F ${String(COMMENT_MAX)} \u6587\u5B57\u4EE5\u5185\uFF08\u7701\u304F\u3068\u4ECA\u306E\u30B3\u30E1\u30F3\u30C8\u3092\u5909\u3048\u307E\u305B\u3093\uFF09\u3002`;function dataOf(body,what){if(!isRecord(body)||!("data"in body)){throw new ApiResponseError(`${what}\u306E\u5FDC\u7B54\u306E\u5F62\u304C\u60F3\u5B9A\u3068\u9055\u3044\u307E\u3059\u3002\u63A5\u7D9A\u5148\u3092\u78BA\u8A8D\u3057\u3066\u304F\u3060\u3055\u3044\u3002`)}return body["data"]}function rowsOf(body,what){const data=dataOf(
|
|
15
|
+
body,what);if(!Array.isArray(data))throw new ApiResponseError(`${what}\u306E\u5FDC\u7B54\u306E\u5F62\u304C\u60F3\u5B9A\u3068\u9055\u3044\u307E\u3059\uFF08data \u304C\u914D\u5217\u3067\u306F\u3042\u308A\u307E\u305B\u3093\uFF09\u3002\u63A5\u7D9A\u5148\u3092\u78BA\u8A8D\u3057\u3066\u304F\u3060\u3055\u3044\u3002`);return data}function recordOf(body,what){const data=dataOf(body,what);if(!isRecord(data))throw new ApiResponseError(`${what}\u306E\u5FDC\u7B54\u306E\u5F62\u304C\u60F3\u5B9A\u3068\u9055\u3044\u307E\u3059\uFF08data \u304C\u30AA\u30D6\u30B8\u30A7\u30AF\u30C8\u3067\u306F\u3042\u308A\u307E\u305B\u3093\uFF09\u3002\u63A5\u7D9A\u5148\u3092\u78BA\u8A8D\u3057\u3066\u304F\u3060\u3055\u3044\u3002`);
|
|
16
|
+
return data}function messageOf(body,what){if(!isRecord(body)||typeof body["message"]!=="string"){throw new ApiResponseError(`${what}\u306E\u5FDC\u7B54\u306E\u5F62\u304C\u60F3\u5B9A\u3068\u9055\u3044\u307E\u3059\u3002\u63A5\u7D9A\u5148\u3092\u78BA\u8A8D\u3057\u3066\u304F\u3060\u3055\u3044\u3002`)}return{message:body["message"]}}function serverMessage(body){return isRecord(body)&&typeof body["message"]==="string"&&body["message"]!==""?[body["message"]]:[]}function requiredMonth(input,usage){const month=monthFlag(
|
|
17
|
+
input.flags);if(month===void 0)throw new UsageError("--month \u3067\u5BFE\u8C61\u306E\u5E74\u6708\u3092\u6307\u5B9A\u3057\u3066\u304F\u3060\u3055\u3044",usage);return month}function targetId(input,usage){const id=singleRef(input,{flag:ID_FLAG.name,label:"\u901A\u52E4\u4EA4\u901A\u8CBB\u306E ID",usage});if(/^\d{4}-\d{2}$/.test(id))throw new UsageError(`\u5E74\u6708\uFF08${id}\uFF09\u306F --month \u3067\u6307\u5B9A\u3057\u3066\u304F\u3060\u3055\u3044\uFF08\u4F4D\u7F6E\u5F15\u6570\u306F\u901A\u52E4\u4EA4\u901A\u8CBB\u306E ID \u3067\u3059\uFF09`,
|
|
18
|
+
usage);if(!isSafePathSegment(id))throw new UsageError(`\u901A\u52E4\u4EA4\u901A\u8CBB\u306E ID \u306B\u4F7F\u3048\u306A\u3044\u6587\u5B57\u304C\u542B\u307E\u308C\u3066\u3044\u307E\u3059: ${id}`,usage);return id}function daysInMonth(month){const[year,mon]=month.split("-").map(Number);return new Date(Date.UTC(year,mon,0)).getUTCDate()}function emptyEntries(month){const entries={};for(let day=1;day<=daysInMonth(month);day+=1)entries[String(day).padStart(2,"0")]="";return entries}function parseCommutingContent(text,month,source){
|
|
19
|
+
let parsed;try{parsed=JSON.parse(text)}catch{throw new UsageError(`\u901A\u52E4\u4EA4\u901A\u8CBB\u306E\u5185\u5BB9\u304C JSON \u3068\u3057\u3066\u8AAD\u3081\u307E\u305B\u3093\uFF08${source}\uFF09`,CONTENT_HELP)}if(!isRecord(parsed))throw new UsageError(`\u901A\u52E4\u4EA4\u901A\u8CBB\u306E\u5185\u5BB9\u306F JSON \u30AA\u30D6\u30B8\u30A7\u30AF\u30C8\u3067\u6307\u5B9A\u3057\u3066\u304F\u3060\u3055\u3044\uFF08${source}\uFF09`,CONTENT_HELP);const problems=Object.keys(parsed).filter(key=>!CONTENT_KEYS.
|
|
20
|
+
includes(key)).map(key=>`${key}\uFF08\u9001\u308C\u306A\u3044\u9805\u76EE\u3067\u3059\uFF09`);const raw=parsed["daily_entries"];if(!isRecord(raw))problems.push("daily_entries\uFF08\u65E5\u2192\u533A\u5206\u306E\u30AA\u30D6\u30B8\u30A7\u30AF\u30C8\u3067\u6307\u5B9A\u3057\u3066\u304F\u3060\u3055\u3044\uFF09");const lastDay=daysInMonth(month);const entries=emptyEntries(month);const seen=new Set;for(const[key,rawValue]of Object.entries(isRecord(raw)?raw:{})){const value=rawValue===null?"":rawValue;const day=/^\d{1,2}$/.
|
|
21
|
+
test(key)?Number(key):0;const normalized=String(day).padStart(2,"0");if(!/^\d{1,2}$/.test(key)){problems.push(`daily_entries.${key}\uFF08\u65E5\u306F1\u301C2\u6841\u306E\u6570\u5B57\u3067\u6307\u5B9A\u3057\u3066\u304F\u3060\u3055\u3044\u3002\u4F8B: "01" / "1"\uFF09`)}else if(day<1||day>lastDay){problems.push(`daily_entries.${key}\uFF08${month} \u306B\u7121\u3044\u65E5\u3067\u3059\u3002"01"\u301C"${String(lastDay)}" \u3067\u6307\u5B9A\u3057\u3066\u304F\u3060\u3055\u3044\uFF09`)}else if(seen.has(normalized)){
|
|
22
|
+
problems.push(`daily_entries.${key}\uFF08${normalized} \u65E5\u304C\u91CD\u8907\u3057\u3066\u3044\u307E\u3059\uFF09`)}else if(typeof value!=="string"||!ENTRY_VALUES.includes(value)){problems.push(`daily_entries.${key}\uFF08\u533A\u5206\u306F round_trip / one_way / "" \u306E\u3069\u308C\u304B\u3067\u3059\uFF09`)}else{seen.add(normalized);entries[normalized]=value}}const comment=parsed["comment"];if(comment!==void 0&&comment!==null&&typeof comment!=="string")problems.push("comment\uFF08\u6587\u5B57\u5217\u3067\u6307\u5B9A\u3057\u3066\u304F\u3060\u3055\u3044\uFF09");
|
|
23
|
+
if(typeof comment==="string"&&[...comment].length>COMMENT_MAX)problems.push(`comment\uFF08${String(COMMENT_MAX)} \u6587\u5B57\u3092\u8D85\u3048\u3066\u3044\u307E\u3059\uFF09`);if(problems.length>0){throw new UsageError(`\u901A\u52E4\u4EA4\u901A\u8CBB\u306E\u5185\u5BB9\u306B\u9001\u308C\u306A\u3044\u5024\u304C\u3042\u308A\u307E\u3059\uFF08${source}\uFF09: ${problems.join(", ")}`,CONTENT_HELP)}return{daily_entries:entries,...typeof comment==="string"?{comment}:{}}}function countEntries(entries){const values=Object.
|
|
24
|
+
values(entries);return{roundTrips:values.filter(v=>v==="round_trip").length,oneWays:values.filter(v=>v==="one_way").length}}var BOM=String.fromCharCode(65279);var FORMULA_START=/[=+\-@\t\r]/;var SIGNED_NUMBER=/^[+-]\d+(\.\d+)?([eE][+-]?\d+)?$/;function cellValueAt(body,start,quoted){let value="";for(let i=start;i<body.length;i+=1){const ch=body[i];if(quoted){if(ch==='"'){if(body[i+1]!=='"')break;i+=1}}else if(ch===","||ch==="\n"||ch==="\r"){break}value+=ch}return value}function needsGuard(body,start,quoted){
|
|
25
|
+
const first=body[start];if(first===void 0||!FORMULA_START.test(first))return false;if(first==="+"||first==="-")return!SIGNED_NUMBER.test(cellValueAt(body,start,quoted));return true}function neutralizeCsvFormulas(text){const hasBom=text.startsWith(BOM);const body=hasBom?text.slice(BOM.length):text;let out="";let atFieldStart=true;let quoted=false;for(let i=0;i<body.length;i+=1){const ch=body[i];if(quoted){if(ch==='"'){if(body[i+1]==='"'){out+='""';i+=1;continue}quoted=false}out+=ch;continue}if(atFieldStart){
|
|
26
|
+
atFieldStart=false;if(ch==='"'){quoted=true;out+=ch;const next=body[i+1];if(next!==void 0&&next!=='"'&&needsGuard(body,i+1,true))out+="'";continue}if(ch!=="\r"&&needsGuard(body,i,false))out+="'"}out+=ch;if(ch===","||ch==="\n")atFieldStart=true}return(hasBom?BOM:"")+out}function neutralizeCsvBytes(bytes){let text;try{text=new TextDecoder("utf-8",{fatal:true,ignoreBOM:true}).decode(bytes)}catch{throw new ApiResponseError("\u901A\u52E4\u4EA4\u901A\u8CBB\u306E CSV \u304C UTF-8 \u3068\u3057\u3066\u8AAD\u3081\u307E\u305B\u3093\u3002\u63A5\u7D9A\u5148\u3092\u78BA\u8A8D\u3057\u3066\u304F\u3060\u3055\u3044\u3002")}
|
|
27
|
+
return new TextEncoder().encode(neutralizeCsvFormulas(text))}function listPlan(input){const status=input.flags.get("--status")?.trim();if(!input.flags.has("--all-users")){if(input.flags.has(MONTH_FLAG.name)||status!==void 0){throw new UsageError("--month \u3068 --status \u306F --all-users\uFF08\u30C6\u30CA\u30F3\u30C8\u5168\u54E1\u306E\u5206\uFF09\u3068\u4E00\u7DD2\u306B\u3060\u3051\u4F7F\u3048\u307E\u3059",LIST_USAGE)}const raw=input.flags.get("--limit");if(raw===void 0)return{method:"GET",path:BASE};
|
|
28
|
+
const limit=/^\d+$/.test(raw.trim())?Number(raw.trim()):0;if(limit<1||limit>LIST_LIMIT_MAX){throw new UsageError(`--limit \u306F 1\u301C${String(LIST_LIMIT_MAX)} \u306E\u6574\u6570\u3067\u6307\u5B9A\u3057\u3066\u304F\u3060\u3055\u3044\uFF08\u53D7\u3051\u53D6\u3063\u305F\u5024: ${raw}\uFF09`,LIST_USAGE)}return{method:"GET",path:BASE,query:{limit}}}if(input.flags.has("--limit"))throw new UsageError("--limit \u306F\u81EA\u5206\u306E\u5206\u306E\u4E00\u89A7\u3060\u3051\u3067\u4F7F\u3048\u307E\u3059\uFF08--all-users \u306F\u8A72\u5F53\u3092\u5168\u4EF6\u8FD4\u3057\u307E\u3059\uFF09",
|
|
29
|
+
LIST_USAGE);if(status!==void 0&&!STATUSES.includes(status)){throw new UsageError(`--status \u306F ${STATUSES.join(" / ")} \u306E\u3069\u308C\u304B\u3067\u6307\u5B9A\u3057\u3066\u304F\u3060\u3055\u3044\uFF08\u53D7\u3051\u53D6\u3063\u305F\u5024: ${status}\uFF09`,LIST_USAGE)}const month=monthFlag(input.flags);return{method:"GET",path:`${BASE}/admin/list`,query:{...month===void 0?{}:{year_month:month},...status===void 0?{}:{status}}}}var listOperation={name:"list",summary:"\u901A\u52E4\u4EA4\u901A\u8CBB\u306E\u4E00\u89A7\uFF08\u81EA\u5206\u306E\u5206\u30FB--all-users \
|
|
30
|
+
\u3067\u30C6\u30CA\u30F3\u30C8\u5168\u54E1\u306E\u5206\uFF1D\u7BA1\u7406\u8005\uFF09",usage:LIST_USAGE,description:"\u81EA\u5206\u306E\u901A\u52E4\u4EA4\u901A\u8CBB\u3092\u5E74\u6708\u306E\u65B0\u3057\u3044\u9806\u306B\u8868\u793A\u3057\u307E\u3059\uFF08GET /api/v2/expense/commuting\u30FB--limit \u65E2\u5B9A24\u30FB\u4E0A\u9650100\uFF09\u3002\n--all-users \u306F\u30C6\u30CA\u30F3\u30C8\u5168\u54E1\u306E\u5206\u3067\u3059\uFF08GET /api/v2/expense/commuting/admin/list\u30FB\u7D4C\u8CBB\u306E\u7BA1\u7406\u8005\u3060\u3051\uFF09\u3002\n --status \u3092\u7701\u304F\u3068\u7533\u8ACB\u4E2D\u30FB\u627F\u8A8D\u6E08\u307F\u30FB\u5DEE\u3057\u623B\u3057\u304C\u4E26\u3073\u3001\u4E0B\u66F8\u304D\uFF08draft\uFF09\u306F\u51FA\u307E\u305B\u3093\uFF08\u753B\u9762\u306E\u7BA1\u7406\u8005\u4E00\u89A7\u3068\u540C\u3058\uFF09\u3002\n --month \u3067\u5E74\u6708\u3001--status \u3067\u72B6\u614B\u3092\u7D5E\u308C\u307E\u3059\u3002\u30DA\u30FC\u30B8\u30F3\u30B0\u306F\u7121\u304F\u3001\u8A72\u5F53\u3092\u5168\u4EF6\u8FD4\u3057\u307E\u3059\u3002\n\u72B6\u614B\uFF08status\uFF09\u306F draft\uFF1D\u4E0B\u66F8\u304D / pending\uFF1D\u7533\u8ACB\u4E2D / approved\uFF1D\u627F\u8A8D\u6E08\u307F / rejected\uFF1D\u5DEE\u3057\u623B\u3057 \u3067\u3059\u3002",
|
|
31
|
+
flags:[{name:"--limit",summary:`\u81EA\u5206\u306E\u5206\u306E\u4EF6\u6570\uFF081\u301C${String(LIST_LIMIT_MAX)}\u30FB\u65E2\u5B9A24\uFF09`,takesValue:true,placeholder:"<\u4EF6\u6570>"},{name:"--all-users",summary:"\u30C6\u30CA\u30F3\u30C8\u5168\u54E1\u306E\u5206\u3092\u8868\u793A\u3059\u308B\uFF08\u7D4C\u8CBB\u306E\u7BA1\u7406\u8005\uFF09",takesValue:false},{...MONTH_FLAG,summary:"\u5BFE\u8C61\u306E\u5E74\u6708\uFF08--all-users \u3068\u4E00\u7DD2\u306B\uFF09"},{name:"--status",summary:"\u72B6\u614B\u3067\u7D5E\u308B\uFF08--\
|
|
32
|
+
all-users \u3068\u4E00\u7DD2\u306B\u3002draft / pending / approved / rejected\uFF09",takesValue:true,placeholder:"<\u72B6\u614B>"}],forbidden:ADMIN_FORBIDDEN,plan:listPlan,notes(body,input){if(input.flags.has("--all-users"))return[];const raw=input.flags.get("--limit")?.trim();const limit=raw===void 0?DEFAULT_LIST_LIMIT:Number(raw);if(rowsOf(body,"\u901A\u52E4\u4EA4\u901A\u8CBB\u306E\u4E00\u89A7").length<limit)return[];return[limit>=LIST_LIMIT_MAX?`${String(limit)} \u4EF6\u3061\u3087\u3046\u3069\u8FD4\u308A\u307E\u3057\u305F\uFF08\u30B5\u30FC\u30D0\u306E\u4E0A\u9650\uFF09\u3002\u305D\u308C\u3088\u308A\u53E4\u3044\u6708\u306F\u8868\u793A\u3055\
|
|
33
|
+
\u308C\u3066\u3044\u306A\u3044\u53EF\u80FD\u6027\u304C\u3042\u308A\u307E\u3059\uFF08twp expense commuting get --month \u30671\u304B\u6708\u305A\u3064\u5F15\u3051\u307E\u3059\uFF09`:`${String(limit)} \u4EF6\u3061\u3087\u3046\u3069\u8FD4\u308A\u307E\u3057\u305F\u3002\u305D\u308C\u3088\u308A\u53E4\u3044\u6708\u304C\u3042\u308B\u304B\u3082\u3057\u308C\u307E\u305B\u3093\uFF08--limit \u3067\u6700\u5927 ${String(LIST_LIMIT_MAX)} \u4EF6\u307E\u3067\u5897\u3084\u305B\u307E\u3059\uFF09`]},summarize:body=>rowsOf(
|
|
34
|
+
body,"\u901A\u52E4\u4EA4\u901A\u8CBB\u306E\u4E00\u89A7").map(row=>pick(row,isRecord(row)&&"user_name"in row?ADMIN_LIST_COLUMNS:LIST_COLUMNS)),raw:body=>rowsOf(body,"\u901A\u52E4\u4EA4\u901A\u8CBB\u306E\u4E00\u89A7")};function getPlan(input){const month=monthFlag(input.flags);const hasId=input.args.length>0||input.flags.has(ID_FLAG.name);if(month!==void 0&&hasId)throw new UsageError("--month \u3068 ID \u306F\u3069\u3061\u3089\u304B\u4E00\u65B9\u3060\u3051\u3092\u6307\u5B9A\u3057\u3066\u304F\u3060\u3055\u3044",
|
|
35
|
+
GET_USAGE);if(month!==void 0)return{method:"GET",path:`${BASE}/${month}`};if(!hasId)throw new UsageError("--month \u3067\u5E74\u6708\u3092\u6307\u5B9A\u3059\u308B\u304B\u3001\u901A\u52E4\u4EA4\u901A\u8CBB\u306E ID \u3092\u6307\u5B9A\u3057\u3066\u304F\u3060\u3055\u3044",GET_USAGE);return{method:"GET",path:`${BASE}/detail/${targetId(input,GET_USAGE)}`}}function getRaw(body){const data=dataOf(body,"\u901A\u52E4\u4EA4\u901A\u8CBB");if(data!==null)return recordOf(body,"\u901A\u52E4\u4EA4\u901A\u8CBB");
|
|
36
|
+
return{data:null,snapshot:isRecord(body)?body["snapshot"]??null:null}}var getOperation={name:"get",summary:"\u901A\u52E4\u4EA4\u901A\u8CBB1\u4EF6\uFF08\u65E5\u3054\u3068\u306E\u533A\u5206\u30FB\u5408\u8A08\u30FB\u72B6\u614B\uFF09",usage:GET_USAGE,description:'--month \u306F\u81EA\u5206\u306E\u305D\u306E\u6708\u306E\u5206\u3067\u3059\uFF08GET /api/v2/expense/commuting/{YYYY-MM}\uFF09\u3002\u307E\u3060\u4F5C\u3063\u3066\u3044\u306A\u3044\u6708\u306F data \u304C null \u3067\u3001\n \u7533\u8ACB\u306B\u4F7F\u308F\u308C\u308B\u5951\u7D04\u306E\u901A\u52E4\u60C5\u5831\uFF08snapshot: \u4EA4\u901A\u6A5F\u95A2\u30FB\u7D4C\u8DEF\u30FB\u7247\u9053\u306E\u91D1\u984D\uFF09\u3092\u8FD4\u3057\u307E\u3059\uFF08\u305D\u306E\u3053\u3068\u3092 stderr \u306B\u51FA\u3057\u307E\u3059\uFF09\u3002\n<ID> \u306F1\u4EF6\u3092 ID \u3067\u5F15\u304D\u307E\u3059\uFF08GET /api/v2/expense/commuting/detail/{id}\u30FB\u81EA\u5206\u306E\u5206\u304B\u3001\u7D4C\u8CBB\u306E\u7BA1\u7406\u8005\u306A\u3089\u4ED6\u306E\u4EBA\u306E\u5206\u3082\uFF09\u3002\n-\
|
|
37
|
+
-output json \u306F\u65E5\u3054\u3068\u306E\u533A\u5206\uFF08daily_entries: "01"\u301C\u6708\u672B \u2192 round_trip / one_way / ""\uFF09\u3092\u542B\u3080\u5168\u9805\u76EE\u3092\u51FA\u3057\u307E\u3059\u3002',flags:[MONTH_FLAG,ID_FLAG],forbidden:USER_FORBIDDEN,plan:getPlan,summarize(body){const value=getRaw(body);if(isRecord(value)&&value["data"]===null&&"snapshot"in value)return pick(value["snapshot"],["commuting_facilities","commuting_route","commuting_cost_one_way"]);return pick(value,GET_COLUMNS)},
|
|
38
|
+
raw:getRaw,notes(body,input){const value=getRaw(body);if(isRecord(value)&&value["data"]===null){return[`${input.flags.get(MONTH_FLAG.name)??""} \u306E\u901A\u52E4\u4EA4\u901A\u8CBB\u306F\u307E\u3060\u3042\u308A\u307E\u305B\u3093\uFF08\u8868\u793A\u3057\u305F\u306E\u306F\u5951\u7D04\u306E\u901A\u52E4\u60C5\u5831\u3067\u3059\uFF09\u3002\u4F5C\u308B\u306A\u3089 twp expense commuting save`]}return[]}};function attendanceRows(body){const data=dataOf(body,"\u6708\u306E\u52E4\u6020\u60C5\u5831");if(!isRecord(
|
|
39
|
+
data))throw new ApiResponseError("\u6708\u306E\u52E4\u6020\u60C5\u5831\u306E\u5FDC\u7B54\u306E\u5F62\u304C\u60F3\u5B9A\u3068\u9055\u3044\u307E\u3059\uFF08data \u304C\u30AA\u30D6\u30B8\u30A7\u30AF\u30C8\u3067\u306F\u3042\u308A\u307E\u305B\u3093\uFF09\u3002\u63A5\u7D9A\u5148\u3092\u78BA\u8A8D\u3057\u3066\u304F\u3060\u3055\u3044\u3002");const rows=[];for(const date of Object.keys(data).sort()){const entries=data[date];for(const entry of Array.isArray(entries)?entries:[])rows.push({date,...pick(entry,
|
|
40
|
+
["label","source","state","note"])})}return rows}var attendanceOperation={name:"attendance",summary:"\u6708\u306E\u81EA\u5206\u306E\u52E4\u6020\u60C5\u5831\uFF08\u6709\u7D66\u30FB\u30EA\u30E2\u30FC\u30C8\u30FB\u52E4\u52D9\u5909\u66F4\uFF09\u3092\u65E5\u3054\u3068\u306B\u8868\u793A\u3059\u308B",usage:"twp expense commuting attendance --month <YYYY-MM>",description:"\u753B\u9762\u306E\u65E5\u5225\u901A\u52E4\u533A\u5206\u306B\u4F75\u8A18\u3055\u308C\u308B\u3001\u81EA\u5206\u306E\u52E4\u6020\u60C5\u5831\u3067\u3059\uFF08GET /api/v2/expense/commuting/{YYYY-MM}/attendance\uFF09\u3002\n\u6709\u7D66\uFF08source=paid_leave\uFF09\u30FB\u30EA\u30E2\u30FC\u30C8\uFF08remote\uFF09\u30FB\u52E4\u52D9\u5909\u66F4\uFF08work_change\uFF09\u304C\u3042\
|
|
41
|
+
\u308B\u65E5\u3060\u3051\u304C\u4E26\u3073\u307E\u3059\uFF08\u4F55\u3082\u7121\u3044\u65E5\u306F\u51FA\u307E\u305B\u3093\uFF09\u3002\nstate \u304C pending \u306E\u3082\u306E\u306F\u7533\u8ACB\u4E2D\u3067\u3059\u3002\u65E5\u3054\u3068\u306E\u533A\u5206\u3092\u6C7A\u3081\u308B\u6750\u6599\u3067\u3001\u3053\u306E\u64CD\u4F5C\u306F\u4F55\u3082\u4FDD\u5B58\u3057\u307E\u305B\u3093\u3002\n--output json \u306F\u65E5\u4ED8 \u2192 \u9805\u76EE\u306E\u914D\u5217\uFF08API \u306E data \u305D\u306E\u3082\u306E\uFF09\u3092\u51FA\u3057\u307E\u3059\u3002",
|
|
42
|
+
flags:[MONTH_FLAG],forbidden:USER_FORBIDDEN,plan:input=>({method:"GET",path:`${BASE}/${requiredMonth(input,"twp expense commuting attendance --month <YYYY-MM>")}/attendance`}),summarize:attendanceRows,raw:body=>dataOf(body,"\u6708\u306E\u52E4\u6020\u60C5\u5831"),notes:body=>attendanceRows(body).length===0?["\u3053\u306E\u6708\u306B\u306F\u6709\u7D66\u30FB\u30EA\u30E2\u30FC\u30C8\u30FB\u52E4\u52D9\u5909\u66F4\u304C\u3042\u308A\u307E\u305B\u3093\uFF08\u51FA\u52E4\u65E5\u306E\u4E00\u89A7\u3067\u306F\u306A\u3044\u306E\u3067\u3001\u901A\u5E38\u306E\u51FA\u52E4\u65E5\u306F\u51FA\u307E\u305B\u3093\uFF09"]:
|
|
43
|
+
[]};async function prepareSave(input){const month=requiredMonth(input,SAVE_USAGE);const wantsSkeleton=input.flags.has(SKELETON_FLAG.name);if(wantsSkeleton&&input.flags.has(CONTENT_FILE_FLAG.name)){throw new UsageError("--generate-cli-skeleton \u3068 --content-file \u306F\u540C\u6642\u306B\u6307\u5B9A\u3067\u304D\u307E\u305B\u3093",SAVE_USAGE)}if(wantsSkeleton)return input;const text=await readBody(input,{flag:"--content",fileFlag:CONTENT_FILE_FLAG.name,label:"\u901A\u52E4\u4EA4\u901A\u8CBB\u306E\u5185\u5BB9",
|
|
44
|
+
maxChars:CONTENT_MAX_CHARS,usage:SAVE_USAGE});if(text===void 0){throw new UsageError("\u901A\u52E4\u4EA4\u901A\u8CBB\u306E\u5185\u5BB9\u3092 --content-file <\u30D1\u30B9> \u3067\u6307\u5B9A\u3057\u3066\u304F\u3060\u3055\u3044",`\u3072\u306A\u5F62\u306F twp expense commuting save --month ${month} --generate-cli-skeleton \u3067\u51FA\u305B\u307E\u3059\u3002`)}const content=parseCommutingContent(text,month,`${CONTENT_FILE_FLAG.name} ${input.flags.get(CONTENT_FILE_FLAG.name)??""}`);return withResolved(
|
|
45
|
+
input,{body:JSON.stringify({year_month:month,...content})})}function savePlan(input){const month=requiredMonth(input,SAVE_USAGE);if(input.flags.has(SKELETON_FLAG.name))return{method:"GET",path:`${BASE}/${month}`};return{method:"POST",path:BASE,body:JSON.parse(requireResolved(input,"body"))}}function saveResult(value){if(!isRecord(value)||typeof value["skeleton"]!=="boolean"||typeof value["month"]!=="string"){throw new Error("\u5185\u90E8\u30A8\u30E9\u30FC: commuting save \u306E\u5FDC\u7B54\u306B\u5370\u304C\u3042\u308A\u307E\u305B\u3093\uFF08execute \u306E\u914D\u7DDA\u6F0F\u308C\uFF09")}
|
|
46
|
+
return value}function skeletonOf(result){const data=dataOf(result.body,"\u901A\u52E4\u4EA4\u901A\u8CBB");const entries=emptyEntries(result.month);if(isRecord(data)&&isRecord(data["daily_entries"])){for(const[day,value]of Object.entries(data["daily_entries"])){if(day in entries&&typeof value==="string")entries[day]=value}}return{daily_entries:entries,comment:isRecord(data)&&typeof data["comment"]==="string"?data["comment"]:""}}var saveOperation={name:"save",summary:"\u6708\u306E\u901A\u52E4\u4EA4\u901A\u8CBB\u3092\u4E0B\u66F8\u304D\u3068\u3057\u3066\u4FDD\u5B58\u3059\u308B\uFF08\u7121\u3051\u308C\u3070\u4F5C\u308A\u3001\u3042\u308C\u3070\u4E0A\
|
|
47
|
+
\u66F8\u304D\uFF09",usage:SAVE_USAGE,description:`\u753B\u9762\u306E\u300C\u4FDD\u5B58\u300D\u3068\u540C\u3058\u304F POST /api/v2/expense/commuting \u3092\u9001\u308A\u307E\u3059\uFF08\u540C\u3058\u6708\u304C\u3042\u308C\u3070\u4E0A\u66F8\u304D\u30FB\u7121\u3051\u308C\u3070\u4F5C\u6210\uFF09\u3002
|
|
48
|
+
\u4E0A\u66F8\u304D\u3067\u304D\u308B\u306E\u306F\u4E0B\u66F8\u304D\uFF08draft\uFF09\u3068\u5DEE\u3057\u623B\u3057\uFF08rejected\uFF09\u3060\u3051\u3067\u3001\u5DEE\u3057\u623B\u3057\u306F\u4FDD\u5B58\u3059\u308B\u3068\u4E0B\u66F8\u304D\u306B\u623B\u308A\u307E\u3059\u3002
|
|
49
|
+
\u7533\u8ACB\u4E2D\u30FB\u627F\u8A8D\u6E08\u307F\u306E\u6708\u306F\u30B5\u30FC\u30D0\u304C\u65AD\u308A\u307E\u3059\uFF08\u7D42\u4E86\u30B3\u30FC\u30C9 3\uFF09\u3002\u7247\u9053\u306E\u91D1\u984D\u30FB\u7D4C\u8DEF\u306F\u5951\u7D04\u306E\u901A\u52E4\u60C5\u5831\u304B\u3089\u5165\u308A\u307E\u3059\u3002
|
|
50
|
+
${OPAQUE_400}
|
|
51
|
+
${CONTENT_HELP}
|
|
52
|
+
--generate-cli-skeleton \u306F\u4ECA\u306E\u6708\u306E\u5185\u5BB9\uFF08\u7121\u3051\u308C\u3070\u5168\u65E5\u304C\u7A7A\uFF09\u3092 --content-file \u306E\u5F62\u3067\u51FA\u3057\u307E\u3059\uFF08\u4F55\u3082\u4FDD\u5B58\u3057\u307E\u305B\u3093\uFF09\u3002
|
|
53
|
+
\u4F8B: twp expense commuting save --month 2026-10 --generate-cli-skeleton --output json > commuting.json
|
|
54
|
+
\u65E5\u3054\u3068\u306E\u533A\u5206\u3092\u6C7A\u3081\u308B\u6750\u6599\u306F twp expense commuting attendance\uFF08\u6709\u7D66\u30FB\u30EA\u30E2\u30FC\u30C8\u30FB\u52E4\u52D9\u5909\u66F4\u306E\u65E5\uFF09\u3067\u3059\u3002
|
|
55
|
+
\u4FDD\u5B58\u3057\u305F\u3060\u3051\u3067\u306F\u7533\u8ACB\u3055\u308C\u307E\u305B\u3093\u3002\u7533\u8ACB\u306F twp expense commuting apply <ID>\u3002`,flags:[MONTH_FLAG,CONTENT_FILE_FLAG,SKELETON_FLAG],forbidden:USER_FORBIDDEN,prepare:prepareSave,plan:savePlan,plannedNotes:input=>input.flags.has(SKELETON_FLAG.name)?["\u4ECA\u306E\u6708\u306E\u5185\u5BB9\u3092\u8AAD\u3080\u3060\u3051\u3067\u3001\u4F55\u3082\u4FDD\u5B58\u3057\u307E\u305B\u3093"]:[],execute:async(input,ctx)=>({skeleton:input.flags.
|
|
56
|
+
has(SKELETON_FLAG.name),month:requiredMonth(input,SAVE_USAGE),body:await ctx.send(savePlan(input))}),summarize(value){const result=saveResult(value);if(result.skeleton)return skeletonOf(result);return pick(recordOf(result.body,"\u901A\u52E4\u4EA4\u901A\u8CBB\u306E\u4FDD\u5B58"),GET_COLUMNS)},raw(value){const result=saveResult(value);return result.skeleton?skeletonOf(result):recordOf(result.body,"\u901A\u52E4\u4EA4\u901A\u8CBB\u306E\u4FDD\u5B58")},notes(value){const result=saveResult(value);if(result.
|
|
57
|
+
skeleton){const{roundTrips,oneWays}=countEntries(skeletonOf(result)["daily_entries"]);return[`${result.month} \u306E\u3072\u306A\u5F62\u3067\u3059\uFF08\u5F80\u5FA9 ${String(roundTrips)} \u65E5\u30FB\u7247\u9053 ${String(oneWays)} \u65E5\uFF09\u3002daily_entries \u3092\u57CB\u3081\u3066\u304B\u3089 twp expense commuting save --month ${result.month} --content-file <\u30D1\u30B9> \u3067\u4FDD\u5B58\u3057\u3066\u304F\u3060\u3055\u3044`]}const saved=recordOf(result.body,"\u901A\u52E4\u4EA4\u901A\u8CBB\u306E\u4FDD\u5B58");
|
|
58
|
+
return[...serverMessage(result.body),`\u7533\u8ACB\u306F twp expense commuting apply ${String(saved["id"])} --yes`]}};async function commutingWorkflowId(input,ctx){const ref=input.flags.get("--workflow")?.trim();if(ref!==void 0&&ref!==""){return UUID_RE.test(ref)?ref:(await ctx.resolver.workflow(ref,"--workflow",WORKFLOW_CATEGORY)).id}const candidates=await ctx.resolver.applicableWorkflows(WORKFLOW_CATEGORY);if(candidates.length===1)return candidates[0].id;if(candidates.length===0){throw new UsageError(
|
|
59
|
+
`\u7533\u8ACB\u3067\u304D\u308B\u901A\u52E4\u4EA4\u901A\u8CBB\u306E\u7533\u8ACB\u66F8\u304C\u3042\u308A\u307E\u305B\u3093\uFF08twp workflow applicable --category ${WORKFLOW_CATEGORY} \u304C0\u4EF6\uFF09`,"\u30C6\u30CA\u30F3\u30C8\u306E\u7BA1\u7406\u8005\u306B\u3001\u901A\u52E4\u4EA4\u901A\u8CBB\u306E\u30EF\u30FC\u30AF\u30D5\u30ED\u30FC\u306E\u8A2D\u5B9A\u3092\u78BA\u8A8D\u3057\u3066\u304F\u3060\u3055\u3044\u3002")}throw new UsageError(`\u901A\u52E4\u4EA4\u901A\u8CBB\u306E\u7533\u8ACB\u66F8\u304C ${String(
|
|
60
|
+
candidates.length)} \u4EF6\u3042\u308A\u307E\u3059\u3002--workflow \u3067\u540D\u524D\u304B ID \u3092\u6307\u5B9A\u3057\u3066\u304F\u3060\u3055\u3044: ${candidates.map(row=>`${row.name}\uFF08${row.id}\uFF09`).join(" / ")}`,APPLY_USAGE)}async function prepareApply(input,ctx){const id=targetId(input,APPLY_USAGE);const comment=input.flags.get(COMMENT_FLAG.name);if(comment!==void 0&&[...comment].length>COMMENT_MAX){throw new UsageError(`--comment \u306F ${String(COMMENT_MAX)} \u6587\u5B57\u4EE5\u5185\u3067\u6307\u5B9A\u3057\u3066\u304F\u3060\u3055\u3044`,
|
|
61
|
+
APPLY_USAGE)}return withResolved(input,{id,workflowId:await commutingWorkflowId(input,ctx)})}var applyOperation={name:"apply",summary:"\u4FDD\u5B58\u3057\u305F\u901A\u52E4\u4EA4\u901A\u8CBB\u3092\u30EF\u30FC\u30AF\u30D5\u30ED\u30FC\u3067\u7533\u8ACB\u3059\u308B\uFF08--yes \u304C\u8981\u308B\uFF09",usage:APPLY_USAGE,description:`POST /api/v2/expense/commuting/{id}/apply \u3092\u9001\u308A\u307E\u3059\u3002\u7533\u8ACB\u3059\u308B\u3068\u627F\u8A8D\u8005\u3078\u901A\u77E5\u304C\u5C4A\u304D\u3001\u53D6\u308A\u6D88\u3059\u307E\u3067\u7DE8\u96C6\u3067\u304D\u307E\u305B\u3093\u3002
|
|
62
|
+
\u7533\u8ACB\u3059\u308B\u306E\u306F\u4FDD\u5B58\u6E08\u307F\u306E\u5185\u5BB9\u3067\u3059\uFF08\u5148\u306B twp expense commuting save \u3067\u4FDD\u5B58\u3057\u3066\u304F\u3060\u3055\u3044\uFF09\u3002\u4E0B\u66F8\u304D\u30FB\u5DEE\u3057\u623B\u3057\u3060\u3051\u304C\u7533\u8ACB\u3067\u304D\u307E\u3059\u3002
|
|
63
|
+
--workflow \u3092\u7701\u304F\u3068\u3001\u7533\u8ACB\u3067\u304D\u308B\u901A\u52E4\u4EA4\u901A\u8CBB\u306E\u7533\u8ACB\u66F8\u304C1\u3064\u3060\u3051\u306E\u3068\u304D\u305D\u308C\u3092\u4F7F\u3044\u307E\u3059\u3002\u8907\u6570\u3042\u308C\u3070 --workflow \u3067\u9078\u3093\u3067\u304F\u3060\u3055\u3044
|
|
64
|
+
\uFF08\u5019\u88DC\u306F twp workflow applicable --category ${WORKFLOW_CATEGORY}\uFF09\u3002
|
|
65
|
+
\u7533\u8ACB\u3067\u304D\u306A\u3044\u72B6\u614B\u306E\u3068\u304D\u306F\u30B5\u30FC\u30D0\u304C\u65AD\u308A\u307E\u3059\uFF08\u7D42\u4E86\u30B3\u30FC\u30C9 3\uFF09\u3002\u53D6\u308A\u6D88\u3057\u306F twp expense commuting cancel <ID>\u3002
|
|
66
|
+
`+OPAQUE_400,flags:[ID_FLAG,{name:"--workflow",summary:"\u4F7F\u3046\u7533\u8ACB\u66F8\uFF08\u8907\u6570\u3042\u308B\u3068\u304D\u3002\u540D\u524D\u304B ID\uFF09",takesValue:true,placeholder:"<\u7533\u8ACB\u66F8>"},COMMENT_FLAG],destructive:true,confirmation:"\u7533\u8ACB\u3059\u308B\u3068\u627F\u8A8D\u8005\u3078\u901A\u77E5\u304C\u5C4A\u304F\u64CD\u4F5C",forbidden:USER_FORBIDDEN,prepare:prepareApply,plan(input){const comment=input.flags.get(COMMENT_FLAG.name);return{method:"POST",path:`${BASE}/${requireResolved(
|
|
67
|
+
input,"id")}/apply`,body:{workflow_id:requireResolved(input,"workflowId"),...comment===void 0?{}:{comment}}}},summarize:body=>pick(dataOf(body,"\u901A\u52E4\u4EA4\u901A\u8CBB\u306E\u7533\u8ACB"),["id","title","workflow_name","status","current_step_no","applied_at"]),raw:body=>dataOf(body,"\u901A\u52E4\u4EA4\u901A\u8CBB\u306E\u7533\u8ACB"),notes:serverMessage};function idOperation(name,spec){return{name,summary:spec.summary,usage:ID_USAGE(name),description:`${spec.description}
|
|
68
|
+
${OPAQUE_400}`,flags:[ID_FLAG],destructive:true,confirmation:spec.confirmation,forbidden:USER_FORBIDDEN,plan:input=>({method:spec.method,path:`${BASE}/${targetId(input,ID_USAGE(name))}${spec.suffix}`}),summarize:body=>messageOf(body,spec.label),raw:body=>messageOf(body,spec.label)}}var cancelOperation=idOperation("cancel",{summary:"\u7533\u8ACB\u4E2D\u306E\u901A\u52E4\u4EA4\u901A\u8CBB\u306E\u7533\u8ACB\u3092\u53D6\u308A\u6D88\u3059\uFF08--yes \u304C\u8981\u308B\uFF09",description:"POST /api/v2/\
|
|
69
|
+
expense/commuting/{id}/cancel \u3092\u9001\u308A\u307E\u3059\u3002\u7533\u8ACB\u4E2D\uFF08pending\uFF09\u3060\u3051\u304C\u53D6\u308A\u6D88\u305B\u3001\u53D6\u308A\u6D88\u3059\u3068\u4E0B\u66F8\u304D\u306B\u623B\u308A\u307E\u3059\n\uFF08\u7533\u8ACB\u306E\u627F\u8A8D\u8005\u306B\u3082\u53D6\u308A\u6D88\u3057\u304C\u4F1D\u308F\u308A\u307E\u3059\uFF09\u3002\u7533\u8ACB\u4E2D\u3067\u306A\u3051\u308C\u3070\u30B5\u30FC\u30D0\u304C\u65AD\u308A\u307E\u3059\uFF08\u7D42\u4E86\u30B3\u30FC\u30C9 3\uFF09\u3002",
|
|
70
|
+
confirmation:"\u7533\u8ACB\u3092\u53D6\u308A\u6D88\u3059\u64CD\u4F5C",method:"POST",suffix:"/cancel",label:"\u7533\u8ACB\u306E\u53D6\u308A\u6D88\u3057"});var deleteOperation=idOperation("delete",{summary:"\u901A\u52E4\u4EA4\u901A\u8CBB\u3092\u524A\u9664\u3059\u308B\uFF08--yes \u304C\u8981\u308B\uFF09",description:"DELETE /api/v2/expense/commuting/{id} \u3092\u9001\u308A\u307E\u3059\u3002\u6D88\u305B\u308B\u306E\u306F\u81EA\u5206\u306E\u5206\u3060\u3051\u3067\u3001\u53D6\u308A\u6D88\u305B\u307E\u305B\u3093\u3002\n\u7533\u8ACB\u4E2D\u30FB\u627F\u8A8D\u6E08\u307F\u306A\u3069\u524A\u9664\u3067\u304D\u306A\u3044\u72B6\u614B\u306A\u3089\u30B5\u30FC\u30D0\u304C\u65AD\u308A\u307E\u3059\uFF08\u7D42\u4E86\u30B3\u30FC\u30C9 3\uFF09\u3002",
|
|
71
|
+
confirmation:"\u53D6\u308A\u6D88\u305B\u306A\u3044\u524A\u9664",method:"DELETE",suffix:"",label:"\u901A\u52E4\u4EA4\u901A\u8CBB\u306E\u524A\u9664"});var exportOperation={name:"export",summary:"\u6708\u306E\u901A\u52E4\u4EA4\u901A\u8CBB\u3092 CSV \u306B\u66F8\u304D\u51FA\u3059\uFF08\u7D4C\u8CBB\u306E\u7BA1\u7406\u8005\u30FB--out\uFF09",usage:EXPORT_USAGE,description:"\u753B\u9762\u306E\u300CCSV\u51FA\u529B\u300D\u3068\u540C\u3058\u304F GET /api/v2/expense/commuting/admin/export \u3092 CSV\uFF08UTF-8\u30FBBOM \u4ED8\u304D\uFF09\u3067\u66F8\u304D\u51FA\u3057\u307E\u3059\uFF08\u7D4C\u8CBB\u306E\u7BA1\u7406\u8005\u3060\u3051\uFF09\u3002\n\u884C\u306F\u30C6\u30CA\u30F3\u30C8\u306E\u5728\u7C4D\u8005\uFF08\u793E\u54E1\u306E\u5165\u793E\u9806 \u2192 \u30D1\u30FC\u30C8\u30CA\u30FC\u306E\u5165\u5834\u9806\uFF09\u3067\u3001\u65E5\u5225\u306E\
|
|
72
|
+
\u5217\u306B\u627F\u8A8D\u6E08\u307F\u306E\u533A\u5206\uFF08\u5F80\u5FA9\u30FB\u7247\u9053\uFF09\u304C\u5165\u308A\u307E\u3059\u3002\n\u627F\u8A8D\u6E08\u307F\u3067\u306A\u3044\u4EBA\u3082\u884C\u306F\u51FA\u307E\u3059\uFF08\u65E5\u5225\u306F\u7A7A\uFF09\u3002--include-hidden \u3067\u975E\u8868\u793A\u306E\u30E6\u30FC\u30B6\u30FC\u3082\u542B\u3081\u307E\u3059\u3002\n= + - @ \u3067\u59CB\u307E\u308B\u30BB\u30EB\uFF08+ - \u306F\u6570\u5024\u3092\u9664\u304F\uFF09\u306E\u5148\u982D\u306B ' \u3092\u4ED8\u3051\u3066\u3001\u8868\u8A08\u7B97\u30BD\u30D5\u30C8\u304C\u5F0F\u3068\u3057\u3066\u8AAD\u307E\u306A\u3044\u3088\u3046\u306B\u3057\u307E\u3059\uFF08twp user export \u3068\u540C\u3058\u3002\n \u30B5\u30FC\u30D0\u3082\u540C\u3058\u7121\u5BB3\u5316\u3092\u3057\u3066\u3044\u308B\u306E\u3067\u3001\u65E2\u306B ' \u4ED8\u304D\u306E\u30BB\u30EB\u306B\u306F\u91CD\u306D\u307E\u305B\u3093\uFF09\u3002\n\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",
|
|
73
|
+
flags:[MONTH_FLAG,OUT_FLAG,FORCE_FLAG,{name:"--include-hidden",summary:"\u975E\u8868\u793A\u306E\u30E6\u30FC\u30B6\u30FC\u3082\u542B\u3081\u308B",takesValue:false}],download:{outFlag:OUT_FLAG.name,forceFlag:FORCE_FLAG.name,transform:neutralizeCsvBytes},forbidden:ADMIN_FORBIDDEN,plan:input=>({method:"GET",path:`${BASE}/admin/export`,query:{year_month:requiredMonth(input,EXPORT_USAGE),...input.flags.has("--include-hidden")?{include_hidden:"1"}:{}}}),summarize:body=>body,raw:body=>body};var commutingResource={
|
|
74
|
+
name:"commuting",summary:"\u901A\u52E4\u4EA4\u901A\u8CBB\uFF08\u6708\u3054\u3068\u306E\u65E5\u5225\u533A\u5206\u306E\u4FDD\u5B58\u30FB\u7533\u8ACB\u30FB\u53D6\u6D88\u30FB\u524A\u9664\u3068\u3001\u7BA1\u7406\u8005\u306E\u4E00\u89A7\u30FBCSV\uFF09",operations:[listOperation,getOperation,attendanceOperation,saveOperation,applyOperation,cancelOperation,deleteOperation,exportOperation]};var expenseDomain={name:"expense",summary:"\u7D4C\u8CBB\uFF08\u901A\u52E4\u4EA4\u901A\u8CBB\uFF09",operations:[],subresources:[
|
|
75
|
+
commutingResource]};export{expenseDomain,neutralizeCsvFormulas,parseCommutingContent};
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import { createRequire as __twpCreateRequire } from 'node:module';
|
|
2
2
|
const require = __twpCreateRequire(import.meta.url);
|
|
3
|
-
import{booleanText,boundedText}from"./chunk-OTIR4GES.js";import{
|
|
4
|
-
|
|
3
|
+
import{booleanText,boundedText}from"./chunk-OTIR4GES.js";import{repeatedValues}from"./chunk-RX5HWI4L.js";import{INQUIRY_CATEGORIES_PATH}from"./chunk-FEJDU42E.js";import{UUID_RE,isSafePathSegment}from"./chunk-GMBJTG6A.js";import"./chunk-JA5A6UJ2.js";import"./chunk-QBGEYQ2I.js";import{requireResolved,singleRef,withResolved}from"./chunk-PS5QFKHB.js";import"./chunk-II5RVJQN.js";import{isRecord,pick}from"./chunk-3ZRMMBP5.js";import{ApiResponseError,
|
|
4
|
+
UsageError}from"./chunk-VFPY2A23.js";import"./chunk-J7QYPKVK.js";import"./chunk-4VZKNEVN.js";import"./chunk-RZVI6PMW.js";import"./chunk-QQRJLH6B.js";import"./chunk-NHYMHCAT.js";import"./chunk-VSJBJXZO.js";var LABEL="\u554F\u3044\u5408\u308F\u305B\u30AB\u30C6\u30B4\u30EA";var LIST_COLUMNS=["id","category_code","title","sort","is_active","notification_user_count"];var GET_COLUMNS=["id","category_code","title","description","sort","is_active","notification_users"];var FORBIDDEN=`\u7BA1\u7406\u8005\u306E\u6A29\u9650\u304C\u5FC5\u8981\u3067\u3059\u3002${LABEL}\u306E\u8A73\u7D30\u30FB\u4F5C\u6210\u30FB\u66F4\u65B0\u306F\u554F\u3044\u5408\u308F\u305B\u6A5F\u80FD\u306E\u7BA1\u7406\u8005\u3060\u3051\u304C\u884C\u3048\u307E\u3059`;
|
|
5
5
|
var SORT_LAST="last";var CODE_RE=/^[a-zA-Z0-9_-]+$/;var REF_HELP="<\u30AB\u30C6\u30B4\u30EA> \u306F\u30AB\u30C6\u30B4\u30EA\u30B3\u30FC\u30C9\u30FB\u540D\u524D\uFF08title\uFF09\u30FBID \u306E\u3069\u308C\u3067\u3082\u6307\u5B9A\u3067\u304D\u307E\u3059\uFF08\u540D\u524D\u304C\u8907\u6570\u306B\u4E00\u81F4\u3059\u308C\u3070\u5019\u88DC\u3092\u51FA\u3057\u3066\u6B62\u307E\u308A\u307E\u3059\uFF09\u3002\nID \u4EE5\u5916\u306F\u30AB\u30C6\u30B4\u30EA\u4E00\u89A7\uFF08\u65E2\u5B9A10\u5206\u30AD\u30E3\u30C3\u30B7\u30E5\u30FB--refresh \u3067\u53D6\u308A\u76F4\u3057\uFF09\u3068\u7167\u5408\u3057\u307E\u3059\u3002";
|
|
6
6
|
var NOTIFY_HELP="--notify \u306F\u901A\u77E5\u5148\u306E\u30E6\u30FC\u30B6\u30FC\u3067\u3001\u8907\u6570\u56DE\u6307\u5B9A\u3067\u304D\u307E\u3059\u3002\u30E6\u30FC\u30B6\u30FC\u306F ID\u30FB\u30E1\u30FC\u30EB\u30A2\u30C9\u30EC\u30B9\u30FB\u793E\u54E1\u756A\u53F7\u30FB\u6C0F\u540D\u3067\u6307\u5B9A\u3067\u304D\u307E\u3059\n\uFF08ID \u4EE5\u5916\u306F\u30C6\u30CA\u30F3\u30C8\u306E\u30E6\u30FC\u30B6\u30FC\u4E00\u89A7\u3068\u7167\u5408\u3057\u307E\u3059\u3002\u7D44\u7E54\u7BA1\u7406\u8005\u3067\u306A\u3044\u5834\u5408\u306F ID \u3067\u6307\u5B9A\u3057\u3066\u304F\u3060\u3055\u3044\uFF09\u3002";
|
|
7
7
|
var CATEGORY_FLAG={name:"--category",summary:"\u5BFE\u8C61\u306E\u30AB\u30C6\u30B4\u30EA\uFF08\u4F4D\u7F6E\u5F15\u6570\u306E\u4EE3\u308F\u308A\u306B\u4F7F\u3048\u308B\uFF09",takesValue:true,placeholder:"<\u30AB\u30C6\u30B4\u30EA>"};var CODE_FLAG={name:"--code",summary:"\u30AB\u30C6\u30B4\u30EA\u30B3\u30FC\u30C9\uFF08\u82F1\u6570\u5B57\u30FB_\u30FB- \u3067100\u6587\u5B57\u4EE5\u5185\u3002\u30C6\u30CA\u30F3\u30C8\u5185\u3067\u4E00\u610F\uFF09",takesValue:true,placeholder:"<\u30B3\u30FC\u30C9>"};var TITLE_FLAG={
|
|
@@ -1,8 +1,8 @@
|
|
|
1
1
|
import { createRequire as __twpCreateRequire } from 'node:module';
|
|
2
2
|
const require = __twpCreateRequire(import.meta.url);
|
|
3
|
-
import{invoiceNoRuleResource}from"./chunk-
|
|
4
|
-
|
|
5
|
-
|
|
3
|
+
import{invoiceNoRuleResource}from"./chunk-XZU53BUV.js";import"./chunk-FACNRXN7.js";import"./chunk-QLENN5DD.js";import{invoiceAiReviewResources}from"./chunk-LXGYOKDY.js";import{invoicePdfOperation}from"./chunk-22OIKHMN.js";import{featureLicenseGuidance,invoiceFilters,invoiceReadOperations,licenseForbidden}from"./chunk-B6WIFZF2.js";import{booleanText,isoDate}from"./chunk-OTIR4GES.js";import{repeatedValues}from"./chunk-RX5HWI4L.js";import{LIST_PAGING_HELP,
|
|
4
|
+
PAGE_NUMBER_LIST_FLAGS,PAGE_NUMBER_PAGING_HELP,STABLE_PAGE_ORDER,nonEmpty,pageNumberPaging,pageNumberQuery,pageRangeNotes}from"./chunk-MI6HVYR2.js";import{readBody}from"./chunk-6LSQCOCJ.js";import{SALES_INVOICES_PATH,SALES_INVOICE_AUTO_TEMPLATES_PATH,isExactNumericId,resolveNamed}from"./chunk-FEJDU42E.js";import"./chunk-GMBJTG6A.js";import{ApiError}from"./chunk-JA5A6UJ2.js";import"./chunk-QBGEYQ2I.js";import{requireResolved,withResolved}from"./chunk-PS5QFKHB.js";
|
|
5
|
+
import"./chunk-II5RVJQN.js";import{acknowledgement,isRecord,pick}from"./chunk-3ZRMMBP5.js";import{ApiResponseError,UsageError}from"./chunk-VFPY2A23.js";import"./chunk-XNLIEUAW.js";import"./chunk-J7QYPKVK.js";import"./chunk-4VZKNEVN.js";import"./chunk-RZVI6PMW.js";import"./chunk-QQRJLH6B.js";import"./chunk-NHYMHCAT.js";import"./chunk-VSJBJXZO.js";var PATH=SALES_INVOICE_AUTO_TEMPLATES_PATH;var HISTORY_SEARCH_PATH="/api/v2/sales/invoice-auto-issue-histories";var FORMATS_PATH="/api/v2/sales/estimate-formats";function adminForbidden(body){return body?.error==="permission_denied"?featureLicenseGuidance("\u8CA9\u58F2\u7BA1\u7406"):"\u81EA\u52D5\u8ACB\u6C42\u30C6\u30F3\u30D7\u30EC\u30FC\u30C8\u3068\u767A\u884C\u5C65\u6B74\u306F\u3001\u8CA9\u58F2\u7BA1\u7406\u306E\u6A29\u9650\u304C\u300C\u7BA1\u7406\u8005\u300D\u306E\u4EBA\u3060\u3051\u304C\u6271\u3048\u307E\u3059\u3002\u30C6\u30CA\u30F3\u30C8\u7BA1\u7406\u8005\u306B\u78BA\u8A8D\u3057\u3066\u304F\u3060\u3055\u3044\u3002"}
|
|
6
6
|
var CONTENT_KEYS=["template_name","estimate_format_id","interval_months","next_issue_date","period_start_date","period_end_date","payment_term_months","payment_term_day","estimate_expiration_months","estimate_expiration_day","order_acceptance_months","order_acceptance_day","invoice_date_months","invoice_date_day","estimate_business_place_id","estimate_seal_impression_id","invoice_business_place_id","invoice_seal_impression_id","company_id","project_id","payee_id","estimate_user_id","invoice_user\
|
|
7
7
|
_id","detail","memo","template_memo","notification_user_ids","estimate_manage_content","invoice_manage_content","is_active"];var DETAIL_KEYS=["list"];var DETAIL_ROW_KEYS=["title","price","quantity","unit","tax","delivery_date"];var NOT_SAVED_KEYS=["period_start_months","period_start_day","period_end_months","period_end_day"];var FIELD_NOTES=[["template_name","\u4F5C\u6210\u3067\u5FC5\u9808\u3002\u30C6\u30F3\u30D7\u30EC\u30FC\u30C8\u540D\uFF08255 \u6587\u5B57\u307E\u3067\uFF09"],["estimate_format\
|
|
8
8
|
_id","\u4F5C\u6210\u3067\u5FC5\u9808\u3002\u898B\u7A4D\u30D5\u30A9\u30FC\u30DE\u30C3\u30C8\u306E ID\uFF08\u6574\u6570\u3002twp estimate format list \u306E id\uFF09"],["company_id","\u4F5C\u6210\u3067\u5FC5\u9808\u3002\u53D6\u5F15\u5148\u306E ID\uFF08\u6574\u6570\u3002twp company list \u306E id\uFF09"],["interval_months","\u4F5C\u6210\u3067\u5FC5\u9808\u3002\u767A\u884C\u5468\u671F\uFF081\u301C12 \u304B\u6708\uFF09"],["next_issue_date","\u4F5C\u6210\u3067\u5FC5\u9808\u3002\u6B21\u56DE\u767A\u884C\u65E5\uFF08YYYY-MM-DD\uFF09\u3002\u767A\u884C\u306E\u305F\u3073\u306B\u300C\u767A\u884C\u65E5\uFF0B\u5468\u671F\u300D\u3078\u9032\u307F\u307E\u3059"],
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import { createRequire as __twpCreateRequire } from 'node:module';
|
|
2
2
|
const require = __twpCreateRequire(import.meta.url);
|
|
3
|
-
import{STATUS_VALUES,flatMasterDomain}from"./chunk-
|
|
3
|
+
import{STATUS_VALUES,flatMasterDomain}from"./chunk-MKQDUQQ2.js";import"./chunk-OTIR4GES.js";import"./chunk-MI6HVYR2.js";import{JOB_TITLES_PATH}from"./chunk-FEJDU42E.js";import"./chunk-GMBJTG6A.js";import"./chunk-JA5A6UJ2.js";import"./chunk-QBGEYQ2I.js";import"./chunk-PS5QFKHB.js";import"./chunk-II5RVJQN.js";import"./chunk-3ZRMMBP5.js";import"./chunk-VFPY2A23.js";import"./chunk-J7QYPKVK.js";import"./chunk-4VZKNEVN.js";import"./chunk-RZVI6PMW.js";
|
|
4
4
|
import"./chunk-NHYMHCAT.js";import"./chunk-VSJBJXZO.js";var jobTitleDomain=flatMasterDomain({name:"job-title",label:"\u8077\u4F4D",path:JOB_TITLES_PATH,itemKey:"job_title",summary:"\u8077\u4F4D\u30DE\u30B9\u30BF\uFF08\u4E00\u89A7\u30FB\u53D6\u5F97\u30FB\u4F5C\u6210\u30FB\u66F4\u65B0\u30FB\u524A\u9664\uFF09",listColumns:["id","code","name","sort_order","status","position_id","base_selling_price","base_cost_price"],getColumns:["id","code","name","name_short","sort_order","status","position_id","base_selling_price","base_cost_price","description"],fields:[
|
|
5
5
|
{kind:"text",flag:"--name-short",key:"name_short",label:"\u7565\u79F0",maxChars:50,summary:"\u7565\u79F0"},{kind:"integer",flag:"--sort-order",key:"sort_order",label:"\u8868\u793A\u9806",min:0,max:9999,summary:"\u8868\u793A\u9806\uFF080\u301C9999\uFF09"},{kind:"enum",flag:"--status",key:"status",values:STATUS_VALUES,summary:"\u72B6\u614B\uFF08active: \u6709\u52B9 / inactive: \u7121\u52B9\uFF09"},{kind:"text",flag:"--description",key:"description",label:"\u8AAC\u660E",maxChars:1e3,summary:"\u8AAC\u660E"},
|
|
6
6
|
{kind:"integer",flag:"--base-selling-price",key:"base_selling_price",label:"\u57FA\u6E96\u58F2\u4FA1",min:0,summary:"\u57FA\u6E96\u58F2\u4FA1\uFF080\u4EE5\u4E0A\u306E\u6574\u6570\uFF09"},{kind:"integer",flag:"--base-cost-price",key:"base_cost_price",label:"\u57FA\u6E96\u539F\u4FA1",min:0,summary:"\u57FA\u6E96\u539F\u4FA1\uFF080\u4EE5\u4E0A\u306E\u6574\u6570\uFF09"},{kind:"text",flag:"--skill-requirements",key:"skill_requirements",label:"\u30B9\u30AD\u30EB\u8981\u4EF6",maxChars:5e3,summary:"\u30B9\u30AD\u30EB\u8981\u4EF6"},
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import { createRequire as __twpCreateRequire } from 'node:module';
|
|
2
2
|
const require = __twpCreateRequire(import.meta.url);
|
|
3
|
-
import{composeDocument,meetingContentToText,metaLine,noteContentToText,oneLine,wikiContentToText}from"./chunk-QSXS5SB2.js";import{boundedText}from"./chunk-OTIR4GES.js";import
|
|
4
|
-
import"./chunk-
|
|
3
|
+
import{composeDocument,meetingContentToText,metaLine,noteContentToText,oneLine,wikiContentToText}from"./chunk-QSXS5SB2.js";import{boundedText}from"./chunk-OTIR4GES.js";import{repeatedValues}from"./chunk-RX5HWI4L.js";import{LIST_FLAGS,LIST_PAGING_HELP,envelopePaging,nonEmpty,positiveInteger}from"./chunk-MI6HVYR2.js";import{dateFlag}from"./chunk-EXT4AIDF.js";import"./chunk-FEJDU42E.js";import{ResolveError,isSafePathSegment}from"./chunk-GMBJTG6A.js";import"./chunk-JA5A6UJ2.js";
|
|
4
|
+
import"./chunk-QBGEYQ2I.js";import{requireResolved,withResolved}from"./chunk-PS5QFKHB.js";import"./chunk-II5RVJQN.js";import{isRecord,pick}from"./chunk-3ZRMMBP5.js";import{ApiResponseError,UsageError}from"./chunk-VFPY2A23.js";import"./chunk-J7QYPKVK.js";import"./chunk-4VZKNEVN.js";import"./chunk-RZVI6PMW.js";import"./chunk-QQRJLH6B.js";import"./chunk-NHYMHCAT.js";import"./chunk-VSJBJXZO.js";var WIKI_PATH="/api/v2/wiki";var NOTES_PATH="/api/v2/notes";var MEETINGS_PATH="/api/v2/meetings";var ROOT_PARENT="root";var WIKI_STATUSES=["draft","published"];var NOTE_STATUSES=["draft","published"];var NOTE_VISIBILITIES=["private","tenant","external","public"];var NOTE_SORTS=["manual","created_at","updated_at","view_count","comment_count","reaction_count"];var MEETING_STATUSES=["draft","published","archived"];var MEETING_TYPES=["regular","client","internal","retrospective","decision","one_on_o\
|
|
5
5
|
ne"];var MEETING_SORTS=["meeting_date","created_at","updated_at","title"];var SORT_ORDERS=["asc","desc"];var MEETING_TAGS_MAX=20;var MEETING_TAG_MAX_CHARS=50;var DATE_FLOOR="0000-01-01";var DATE_CEIL="9999-12-31";var WIKI_LIST_COLUMNS=["id","title","status","parent_page_id","updated_at","updated_by_name"];var WIKI_CHILD_COLUMNS=["id","title","status","child_count","updated_at","updated_by_name"];var WIKI_GET_COLUMNS=["id","title","status","parent_page_id","version","tags","updated_at","updated_b\
|
|
6
6
|
y_name"];var NOTE_LIST_COLUMNS=["id","title","status","visibility","created_by_name","updated_at","comment_count","reaction_count"];var NOTE_GET_COLUMNS=["id","title","status","visibility","content_type","category_name","tags","created_by_name","updated_at","view_count"];var MEETING_LIST_COLUMNS=["id","meeting_date","title","meeting_type","status","project_name","created_by_name"];var MEETING_GET_COLUMNS=["id","title","meeting_date","meeting_type","status","project_name","category_name","created\
|
|
7
7
|
_by_name","updated_at"];var TEXT_OUTPUT_HELP="--output text \u306F\u672C\u6587\u3092\u8AAD\u3080\u305F\u3081\u306E\u6587\u66F8\uFF08\u898B\u51FA\u3057\u30FB\u30E1\u30BF\u60C5\u5831\u30FB\u672C\u6587\uFF09\u3092\u51FA\u3057\u307E\u3059\u3002HTML \u3068\u5171\u540C\u7DE8\u96C6\u30A8\u30C7\u30A3\u30BF\u306E JSON \u306F\n\u5E73\u6587\u3078\u5909\u63DB\u3057\u3001\u898B\u51FA\u3057\u30FB\u7B87\u6761\u66F8\u304D\u30FB\u30EA\u30F3\u30AF\u306F Markdown \u98A8\u306B\u6B8B\u3057\u307E\u3059\u3002--output json \u306F\u30B5\u30FC\u30D0\u306E\u539F\u6587\u306E\u307E\u307E\u3067\u3059\u3002";
|
|
@@ -1,7 +1,8 @@
|
|
|
1
1
|
import { createRequire as __twpCreateRequire } from 'node:module';
|
|
2
2
|
const require = __twpCreateRequire(import.meta.url);
|
|
3
|
-
import{
|
|
4
|
-
|
|
3
|
+
import{applyInstancePlan,createInstancePlan,formColumns,writtenInstance}from"./chunk-AKLQMTMW.js";import"./chunk-LXGYOKDY.js";import"./chunk-22OIKHMN.js";import"./chunk-B6WIFZF2.js";import"./chunk-OTIR4GES.js";import"./chunk-RX5HWI4L.js";import"./chunk-MI6HVYR2.js";import{USER_REF_FLAG,USER_REF_HELP,assertMonthsOpen,userPath}from"./chunk-DBCF4H3V.js";import{dateFlag}from"./chunk-EXT4AIDF.js";import"./chunk-6LSQCOCJ.js";import"./chunk-FEJDU42E.js";
|
|
4
|
+
import{UUID_RE}from"./chunk-GMBJTG6A.js";import{ApiError}from"./chunk-JA5A6UJ2.js";import"./chunk-QBGEYQ2I.js";import{requireResolved,singleRef,withResolved}from"./chunk-PS5QFKHB.js";import"./chunk-II5RVJQN.js";import{isRecord,pick}from"./chunk-3ZRMMBP5.js";import{ApiRejectedError,ApiResponseError,UsageError}from"./chunk-VFPY2A23.js";import{NotLoggedInError,SessionExpiredError}from"./chunk-XNLIEUAW.js";import"./chunk-J7QYPKVK.js";import"./chunk-4VZKNEVN.js";
|
|
5
|
+
import"./chunk-RZVI6PMW.js";import"./chunk-QQRJLH6B.js";import"./chunk-NHYMHCAT.js";import"./chunk-VSJBJXZO.js";var LIST_USAGE="twp leave list";var GRANTS_USAGE="twp leave grants [<\u30E6\u30FC\u30B6\u30FC> | --user <\u30E6\u30FC\u30B6\u30FC>]";var USAGE_COLUMNS=["used_date","type_label","days","hours","status_label","reason","is_post_application","id"];var GRANT_COLUMNS=["grant_date","type_label","days","remaining_days","remaining_hours","expiry_date","status_label","reason","id"];function noArgs(input,operation){if(input.args.length>0){throw new UsageError(`${operation} \u306F\u4F4D\u7F6E\u5F15\u6570\u3092\u53D7\u3051\u53D6\u308A\u307E\u305B\u3093: ${input.
|
|
5
6
|
args.join(" ")}`,`twp leave ${operation} help`)}}function summaryBody(body){if(!isRecord(body)||!isRecord(body["summary"])){throw new ApiResponseError("\u6709\u7D66\u30B5\u30DE\u30EA\u306E\u5FDC\u7B54\u306B summary \u304C\u3042\u308A\u307E\u305B\u3093\u3002\u63A5\u7D9A\u5148\u3092\u78BA\u8A8D\u3057\u3066\u304F\u3060\u3055\u3044\u3002")}return body}function usagesBody(body){if(!isRecord(body)||!Array.isArray(body["usages"])){throw new ApiResponseError("\u6709\u7D66\u306E\u53D6\u5F97\u5C65\u6B74\u306E\u5FDC\u7B54\u306B usages \u304C\u3042\u308A\u307E\u305B\u3093\u3002\u63A5\u7D9A\u5148\u3092\u78BA\u8A8D\u3057\u3066\u304F\u3060\u3055\u3044\u3002")}
|
|
6
7
|
return body}function grantsBody(body){if(!isRecord(body)||!Array.isArray(body["grants"])){throw new ApiResponseError("\u6709\u7D66\u306E\u4ED8\u4E0E\u5C65\u6B74\u306E\u5FDC\u7B54\u306B grants \u304C\u3042\u308A\u307E\u305B\u3093\u3002\u63A5\u7D9A\u5148\u3092\u78BA\u8A8D\u3057\u3066\u304F\u3060\u3055\u3044\u3002")}return body}function listBody(body){const combined=isRecord(body)?body:{};return{summary:summaryBody(combined["summary"]),usages:usagesBody(combined["usages"])}}async function list(input,ctx){
|
|
7
8
|
const summary=summaryBody(await ctx.send(listPlan(input)));const usages=await ctx.send({method:"GET",path:"/api/v1/paid-leave/me/usages"});return{summary,usages}}function listPlan(input){noArgs(input,"list");return{method:"GET",path:"/api/v1/paid-leave/me"}}function listNotes(body){const{summary:sheet}=listBody(body);const summary=sheet["summary"];const hours=typeof summary["total_remaining_hours"]==="number"&&summary["total_remaining_hours"]>0?` ${String(summary["total_remaining_hours"])} \u6642\u9593`:
|