@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.
Files changed (102) hide show
  1. package/CHANGELOG.public.md +24 -0
  2. package/README.md +175 -5
  3. package/dist/agent-LHNDQMT5.js +100 -0
  4. package/dist/{agent-loop-EBIXJ4EH.js → agent-loop-QP6UHX4R.js} +1 -1
  5. package/dist/{ai-dispatch-2FL2AFL7.js → ai-dispatch-VDNMECKK.js} +1 -1
  6. package/dist/analysis-RFO4E4ZS.js +4 -0
  7. package/dist/{announcement-R76XDLW7.js → announcement-HQ7CQYFI.js} +2 -2
  8. package/dist/{api-command-VFFV7BD4.js → api-command-5LQFOG24.js} +4 -4
  9. package/dist/{app-PNDIA4NV.js → app-G524XCIA.js} +5 -5
  10. package/dist/{attendance-correct-SN2KYGOE.js → attendance-correct-CRRR4EKL.js} +3 -3
  11. package/dist/{attendance-lists-6S62D2UV.js → attendance-lists-XPCU25OJ.js} +2 -1
  12. package/dist/{auto-update-PS5HUWVH.js → auto-update-YMI3F44R.js} +1 -1
  13. package/dist/{auto-update-worker-ZKODJ45K.js → auto-update-worker-VG77U4UA.js} +2 -2
  14. package/dist/{backlog-5XSCJGPJ.js → backlog-NU5HHXN2.js} +2 -2
  15. package/dist/{budget-PIGBJ5N7.js → budget-AM7JJ5YP.js} +2 -2
  16. package/dist/{chunk-FANDYQCM.js → chunk-22OIKHMN.js} +1 -1
  17. package/dist/{chunk-IRHKFHJZ.js → chunk-2NP3BLPI.js} +2 -2
  18. package/dist/chunk-3744RCNM.js +58 -0
  19. package/dist/{chunk-6QOT7CHX.js → chunk-5WTFZJT7.js} +1 -1
  20. package/dist/chunk-6A2JSS76.js +4 -0
  21. package/dist/{chunk-V2BB5EWS.js → chunk-6JB4MSDX.js} +1 -1
  22. package/dist/{chunk-DQCHLRSB.js → chunk-74WGU5BM.js} +2 -2
  23. package/dist/{chunk-LKS7GANP.js → chunk-7GJFKKOJ.js} +3 -2
  24. package/dist/{chunk-342WUEV4.js → chunk-AKLQMTMW.js} +61 -27
  25. package/dist/{chunk-CF3ZZKCZ.js → chunk-B6WIFZF2.js} +1 -1
  26. package/dist/chunk-DBCF4H3V.js +141 -0
  27. package/dist/{chunk-S3A24B2C.js → chunk-E34FX2DF.js} +16 -15
  28. package/dist/{chunk-CUPPIHSJ.js → chunk-F53TSCRD.js} +1 -1
  29. package/dist/{chunk-ELEOYXLD.js → chunk-FACNRXN7.js} +2 -2
  30. package/dist/chunk-FEJDU42E.js +138 -0
  31. package/dist/{chunk-IF2K4PM5.js → chunk-JA5A6UJ2.js} +6 -4
  32. package/dist/chunk-K7OIECPN.js +10 -0
  33. package/dist/{chunk-ZY6LEKWR.js → chunk-LXGYOKDY.js} +3 -3
  34. package/dist/{chunk-NK53AFVE.js → chunk-MKQDUQQ2.js} +1 -1
  35. package/dist/{chunk-BVXUORXE.js → chunk-NGY4K5VW.js} +1 -1
  36. package/dist/{chunk-YM7TKMNO.js → chunk-NWI2TBO6.js} +1 -1
  37. package/dist/{chunk-LNZTJI64.js → chunk-RQEX2WC5.js} +1 -1
  38. package/dist/{chunk-7UB4I3JF.js → chunk-RX5HWI4L.js} +1 -1
  39. package/dist/{chunk-NN6LAZRA.js → chunk-S36LGDG2.js} +2 -2
  40. package/dist/{chunk-ONAMXPTE.js → chunk-SDNASQZL.js} +1 -1
  41. package/dist/{chunk-4S7SNE2M.js → chunk-VOMCTG6N.js} +1 -1
  42. package/dist/{chunk-5JL26BPU.js → chunk-XWJVDNYE.js} +1 -1
  43. package/dist/{chunk-SECVO7RQ.js → chunk-XZU53BUV.js} +2 -2
  44. package/dist/{chunk-FMJUPLDG.js → chunk-ZVEMJWRR.js} +1 -1
  45. package/dist/cli.js +150 -10
  46. package/dist/{commands-CA22R7VD.js → commands-BXU44JWS.js} +5 -5
  47. package/dist/{commands-ZZGY6P3B.js → commands-TYUK7MV4.js} +2 -2
  48. package/dist/{company-CQYSBKTQ.js → company-BKULUHIU.js} +3 -4
  49. package/dist/{completion-3F2GJNGC.js → completion-RWWCIR6G.js} +1 -1
  50. package/dist/{configure-XH33RB27.js → configure-QU6JK65I.js} +1 -1
  51. package/dist/{contract-A2FGGVOR.js → contract-376FE7VC.js} +3 -3
  52. package/dist/{department-6BILJZG7.js → department-YKBPBPU6.js} +2 -2
  53. package/dist/deposit-CY5K3ZTM.js +4 -0
  54. package/dist/{estimate-5PSXHHNT.js → estimate-GPNG6YOJ.js} +4 -4
  55. package/dist/evaluation-VRLMQV32.js +61 -0
  56. package/dist/expense-3MT6WHTG.js +75 -0
  57. package/dist/{inquiry-NMOT4JSX.js → inquiry-YV433Q7V.js} +2 -2
  58. package/dist/{invoice-TXEJT6I6.js → invoice-OSAO4PIO.js} +3 -3
  59. package/dist/{job-title-NSYPQMEX.js → job-title-FITZHBR4.js} +1 -1
  60. package/dist/{knowledge-5DX6EMHZ.js → knowledge-YEEAKLQJ.js} +2 -2
  61. package/dist/{leave-DEGAZKVH.js → leave-MWYAL66X.js} +3 -2
  62. package/dist/media-TIRJJUNN.js +361 -0
  63. package/dist/{notification-NG4J6N2D.js → notification-EAEKDN54.js} +2 -2
  64. package/dist/{onedrive-YPJCILR2.js → onedrive-UBSHXVYS.js} +1 -1
  65. package/dist/{oneshot-RA65DTXP.js → oneshot-62DOJWOH.js} +2 -2
  66. package/dist/{outlook-MNOVX6QS.js → outlook-ODZD27J5.js} +2 -2
  67. package/dist/{position-OZBQYKZS.js → position-ZKYGVAAK.js} +1 -1
  68. package/dist/project-5MHCPDVC.js +4 -0
  69. package/dist/{prospect-TQ2FFWEZ.js → prospect-ASQA5QVD.js} +3 -3
  70. package/dist/{purchase-WOUWIZHO.js → purchase-WLJJSMM6.js} +4 -4
  71. package/dist/receivable-FBPROHOV.js +4 -0
  72. package/dist/{registry-H4NP4HUQ.js → registry-3PWIZP2X.js} +1 -1
  73. package/dist/{report-EFE43ZVI.js → report-HK2NZXHC.js} +2 -2
  74. package/dist/run-XZZR3OKX.js +4 -0
  75. package/dist/sales-ai-review-IEISLBIH.js +4 -0
  76. package/dist/{sales-master-Q5BJ7RNG.js → sales-master-S3YTUE7J.js} +3 -3
  77. package/dist/sales-numbering-M4KUZAM7.js +4 -0
  78. package/dist/skill-45FBIGC5.js +4 -0
  79. package/dist/{supplier-payment-FWGQR3Z3.js → supplier-payment-MS6YMIT4.js} +3 -3
  80. package/dist/{support-TVTQJFRE.js → support-VSDMFUTY.js} +2 -2
  81. package/dist/{task-IDQKPRYS.js → task-BTYFJRSC.js} +4 -4
  82. package/dist/{teams-IO6UQNYP.js → teams-GPXJPXNC.js} +2 -2
  83. package/dist/update-NCAVUXSX.js +3 -0
  84. package/dist/{user-B6KW6HA2.js → user-VFJGLZDR.js} +23 -6
  85. package/dist/{worker-agent-PEFBLL56.js → worker-agent-YX2KPVQG.js} +2 -2
  86. package/dist/workflow-OPZYCSDL.js +4 -0
  87. package/package.json +1 -1
  88. package/dist/analysis-2SWIQ4AI.js +0 -4
  89. package/dist/chunk-3YCVR7X4.js +0 -5
  90. package/dist/chunk-GXZOFRZH.js +0 -9
  91. package/dist/chunk-IU5P6MY5.js +0 -47
  92. package/dist/chunk-Q2KIETMB.js +0 -132
  93. package/dist/chunk-ZGHEF45T.js +0 -4
  94. package/dist/deposit-OAGRJMZ4.js +0 -4
  95. package/dist/media-RJCTHFK6.js +0 -185
  96. package/dist/project-5YFBRM32.js +0 -4
  97. package/dist/receivable-RFZT6PY3.js +0 -4
  98. package/dist/run-TNFPATQF.js +0 -4
  99. package/dist/sales-ai-review-FSA4J2J2.js +0 -4
  100. package/dist/sales-numbering-ITDBMODV.js +0 -4
  101. package/dist/update-EYFT7STE.js +0 -3
  102. package/dist/workflow-SYWZKWWB.js +0 -4
@@ -0,0 +1,141 @@
1
+ import { createRequire as __twpCreateRequire } from 'node:module';
2
+ const require = __twpCreateRequire(import.meta.url);
3
+ import{dateFlag,monthFlag}from"./chunk-EXT4AIDF.js";import{readBody}from"./chunk-6LSQCOCJ.js";import{ATTENDANCE_REPORTS_PATH,ATTENDANCE_REPORT_MASTER_PATHS,resolveNamed}from"./chunk-FEJDU42E.js";import{isSafePathSegment}from"./chunk-GMBJTG6A.js";import{ApiError}from"./chunk-JA5A6UJ2.js";import{requireResolved,singleRef,withResolved}from"./chunk-PS5QFKHB.js";import{acknowledgement,isRecord,pick}from"./chunk-3ZRMMBP5.js";import{ApiRejectedError,ApiResponseError,
4
+ UsageError}from"./chunk-VFPY2A23.js";var USER_REF_HELP="<\u30E6\u30FC\u30B6\u30FC> \u306F ID\u30FB\u30E1\u30FC\u30EB\u30A2\u30C9\u30EC\u30B9\u30FB\u793E\u54E1\u756A\u53F7\u30FB\u6C0F\u540D\u30FBme\uFF08\u81EA\u5206\uFF09\u306E\u3069\u308C\u3067\u3082\u6307\u5B9A\u3067\u304D\u307E\u3059\u3002\n\u6C0F\u540D\u306F\u5B8C\u5168\u4E00\u81F4\u30671\u4EBA\u306B\u7D5E\u308C\u305F\u3068\u304D\u3060\u3051\u53D7\u3051\u4ED8\u3051\u307E\u3059\uFF08\u540C\u59D3\u540C\u540D\u306A\u3089\u5019\u88DC\u3092\u51FA\u3057\u3066\u6B62\u307E\u308B\u306E\u3067\u3001\n\u30E1\u30FC\u30EB\u30A2\u30C9\u30EC\u30B9\u304B\u793E\u54E1\u756A\u53F7\u3067\u6307\u5B9A\u3057\u76F4\u3057\u3066\u304F\u3060\u3055\u3044\uFF09\u3002ID \u4EE5\u5916\u306F\u3001\u30C6\u30CA\u30F3\u30C8\u306E\u30E6\u30FC\u30B6\u30FC\u4E00\u89A7\n\uFF08\u65E2\u5B9A10\u5206\u30AD\u30E3\u30C3\u30B7\u30E5\u30FB--refresh \u3067\u53D6\u308A\u76F4\u3057\uFF09\u3068\u7167\u5408\u3057\u307E\u3059\u3002\n\u8868\u793A\u30D5\u30E9\u30B0\u3092\u5916\u3057\u305F\u30E6\u30FC\u30B6\u30FC\u306F\u793E\u54E1\u756A\u53F7\u3067\u306F\u5F15\u3051\u307E\u305B\u3093\u3002\u7D44\u7E54\u7BA1\u7406\u8005\u3067\u306A\u3044\u5834\u5408\u306F ID \u3067\u6307\u5B9A\u3057\u3066\u304F\u3060\u3055\u3044\u3002";
5
+ function userPath(input,suffix=""){const userId=requireResolved(input,"userId");if(!isSafePathSegment(userId)){throw new ApiResponseError(`\u30B5\u30FC\u30D0\u304C\u8FD4\u3057\u305F\u30E6\u30FC\u30B6\u30FC ID \u3092\u30D1\u30B9\u306B\u4F7F\u3048\u307E\u305B\u3093: ${userId}\u3002\u63A5\u7D9A\u5148\u3092\u78BA\u8A8D\u3057\u3066\u304F\u3060\u3055\u3044\u3002`)}return`${encodeURIComponent(userId)}${suffix}`}var USER_REF_FLAG={name:"--user",summary:"\u5BFE\u8C61\u306E\u30E6\u30FC\u30B6\u30FC\uFF08\u4F4D\u7F6E\u5F15\u6570\u306E\u4EE3\u308F\u308A\u306B\u4F7F\u3048\u308B\uFF09",
6
+ takesValue:true,placeholder:"<\u30E6\u30FC\u30B6\u30FC>"};async function prepareUser(input,ctx,usage){const ref=singleRef(input,{flag:"--user",label:"\u30E6\u30FC\u30B6\u30FC",usage});const user=await ctx.resolver.user(ref);return withResolved(input,{userId:user.id})}var REPORT_LIST_USAGE="twp attendance report list [--month <YYYY-MM> | --from <YYYY-MM-DD> --to <YYYY-MM-DD>] [--user <\u30E6\u30FC\u30B6\u30FC>]";var REPORT_GET_USAGE="twp attendance report get <ID>";var REPORT_REASONS_USAGE="twp attendance report reasons";var REPORT_CREATE_USAGE="twp attendance report create (--date <YYYY-MM-DD> | --from <YYYY-MM-DD> --to <YYYY-MM-DD>) --category <\u533A\u5206> --reason <\u7406\u7531> [--detail <\u7406\u7531\u8A73\u7D30>] [--start-time <HH:MM>] [--end-time <HH:MM>] [--note <\u9023\u7D61\u5185\u5BB9> | --note-file <\u30D1\u30B9>]\
7
+ [--private-note <\u975E\u516C\u958B\u30E1\u30E2> | --private-note-file <\u30D1\u30B9>] [--user <\u30E6\u30FC\u30B6\u30FC>]";var REPORT_UPDATE_USAGE="twp attendance report update <ID> [--category <\u533A\u5206> --reason <\u7406\u7531>] [--reason <\u7406\u7531>] [--detail <\u7406\u7531\u8A73\u7D30> | --clear-detail] [--start-time <HH:MM>] [--end-time <HH:MM>] [--note <\u9023\u7D61\u5185\u5BB9> | --note-file <\u30D1\u30B9>] [--private-note <\u975E\u516C\u958B\u30E1\u30E2> | --private-note-file <\u30D1\u30B9>]";
8
+ var REPORT_DELETE_USAGE="twp attendance report delete <ID> --yes";var TEAM_USAGE="twp attendance team [--mode all|related|project] [--project <\u30B3\u30FC\u30C9|ID>]";var FLEX_USAGE="twp attendance flex-settlement [--month <YYYY-MM>] [--user <\u30E6\u30FC\u30B6\u30FC>]";var RANGE_MONTHS_MAX=12;var NOTE_MAX=2e3;var TIME_PATTERN=/^([01]\d|2[0-3]):[0-5]\d$/;var FOREIGN_ID_PREFIXES={"paid-leave-":"\u6709\u7D66\u4F11\u6687\uFF08twp leave\uFF09","work-change-":"\u52E4\u52D9\u5909\u66F4\uFF08twp workchange\uFF09"};
9
+ var REPORT_COLUMNS=["report_date","user_name","kind","reason","detail","time","content","id"];var TEAM_COLUMNS=["user_name","user_code","status_label","last_type","last_recorded_at","project","work_location","notices","user_id"];var FLEX_COLUMNS=["settlement_period","settlement_start_month","settlement_end_month","current_year_month","is_settlement_month","total_scheduled_work_hours","total_actual_work_hours","carry_over_from_previous_hours","excess_or_deficiency_hours","legal_excess_hours","def\
10
+ iciency_hours","paid_leave_days"];var USER_FLAG={name:"--user",summary:"\u5BFE\u8C61\u306E\u30E6\u30FC\u30B6\u30FC\uFF08\u7701\u7565\u306F\u81EA\u5206\uFF09",takesValue:true,placeholder:"<\u30E6\u30FC\u30B6\u30FC>"};var MONTH_FLAG={name:"--month",summary:"\u5BFE\u8C61\u306E\u5E74\u6708\uFF08YYYY-MM\uFF09",takesValue:true,placeholder:"<YYYY-MM>"};var FROM_FLAG={name:"--from",summary:"\u671F\u9593\u306E\u958B\u59CB\u65E5\uFF08YYYY-MM-DD\uFF09",takesValue:true,placeholder:"<YYYY-MM-DD>"};var TO_FLAG={
11
+ name:"--to",summary:"\u671F\u9593\u306E\u7D42\u4E86\u65E5\uFF08YYYY-MM-DD\uFF09",takesValue:true,placeholder:"<YYYY-MM-DD>"};var NOTE_SPEC={flag:"--note",fileFlag:"--note-file",label:"\u9023\u7D61\u5185\u5BB9",maxChars:NOTE_MAX,usage:REPORT_CREATE_USAGE};var PRIVATE_NOTE_SPEC={flag:"--private-note",fileFlag:"--private-note-file",label:"\u975E\u516C\u958B\u30E1\u30E2",maxChars:NOTE_MAX,usage:REPORT_CREATE_USAGE};var WRITE_FLAGS=[{name:"--category",summary:"\u9023\u7D61\u533A\u5206\uFF08\u540D\u524D\u30FB\u30B3\u30FC\u30C9\u30FBID\u3002\u5019\u88DC\u306F report reasons\uFF09",
12
+ takesValue:true,placeholder:"<\u533A\u5206>"},{name:"--reason",summary:"\u9023\u7D61\u7406\u7531\uFF08\u540D\u524D\u30FB\u30B3\u30FC\u30C9\u30FBID\u3002\u533A\u5206\u306B\u7D10\u3065\u304F\u3082\u306E\u3060\u3051\uFF09",takesValue:true,placeholder:"<\u7406\u7531>"},{name:"--detail",summary:"\u7406\u7531\u8A73\u7D30\uFF08\u540D\u524D\u30FB\u30B3\u30FC\u30C9\u30FBID\u3002\u7406\u7531\u306B\u7D10\u3065\u304F\u3082\u306E\u3060\u3051\uFF09",takesValue:true,placeholder:"<\u7406\u7531\u8A73\u7D30>"},{name:"\
13
+ --start-time",summary:"\u5BFE\u8C61\u306E\u958B\u59CB\u6642\u523B\uFF08HH:MM\u3002\u9045\u523B\u306E\u51FA\u52E4\u4E88\u5B9A\u306A\u3069\uFF09",takesValue:true,placeholder:"<HH:MM>"},{name:"--end-time",summary:"\u5BFE\u8C61\u306E\u7D42\u4E86\u6642\u523B\uFF08HH:MM\u3002\u65E9\u9000\u306E\u9000\u52E4\u4E88\u5B9A\u306A\u3069\uFF09",takesValue:true,placeholder:"<HH:MM>"},{name:"--note",summary:`\u9023\u7D61\u5185\u5BB9\uFF08${NOTE_MAX} \u6587\u5B57\u4EE5\u5185\uFF09`,takesValue:true,placeholder:"<\u9023\
14
+ \u7D61\u5185\u5BB9>"},{name:"--note-file",summary:"\u9023\u7D61\u5185\u5BB9\u3092\u30D5\u30A1\u30A4\u30EB\u304B\u3089\u8AAD\u3080\uFF08- \u306F\u6A19\u6E96\u5165\u529B\uFF09",takesValue:true,placeholder:"<\u30D1\u30B9>"},{name:"--private-note",summary:`\u975E\u516C\u958B\u30E1\u30E2\uFF08\u672C\u4EBA\u30FB\u4F5C\u6210\u8005\u30FB\u7BA1\u7406\u8005\u3060\u3051\u304C\u898B\u3089\u308C\u308B\u30FB${NOTE_MAX} \u6587\u5B57\u4EE5\u5185\uFF09`,takesValue:true,placeholder:"<\u30E1\u30E2>"},{name:"--priv\
15
+ ate-note-file",summary:"\u975E\u516C\u958B\u30E1\u30E2\u3092\u30D5\u30A1\u30A4\u30EB\u304B\u3089\u8AAD\u3080\uFF08- \u306F\u6A19\u6E96\u5165\u529B\uFF09",takesValue:true,placeholder:"<\u30D1\u30B9>"}];function monthsBetween(start,end){const months=[];let year=Number(start.slice(0,4));let month=Number(start.slice(5,7));const last=end.slice(0,7);for(;;){const current=`${String(year)}-${String(month).padStart(2,"0")}`;months.push(current);if(current>=last)return months;month+=1;if(month>12){month=1;
16
+ year+=1}}}function noArgs(input,operation,usage){if(input.args.length>0){throw new UsageError(`${operation} \u306F\u4F4D\u7F6E\u5F15\u6570\u3092\u53D7\u3051\u53D6\u308A\u307E\u305B\u3093: ${input.args.join(" ")}`,usage)}}function reportId(input,usage){const[id,...rest]=input.args;if(id===void 0||id.trim()==="")throw new UsageError("\u52E4\u6020\u9023\u7D61\u306E ID \u3092\u6307\u5B9A\u3057\u3066\u304F\u3060\u3055\u3044\uFF08twp attendance report list \u306E id \u5217\uFF09",usage);if(rest.length>
17
+ 0)throw new UsageError(`ID \u306F1\u3064\u3060\u3051\u6307\u5B9A\u3067\u304D\u307E\u3059: ${rest.join(" ")}`,usage);if(!isSafePathSegment(id.trim()))throw new UsageError(`\u52E4\u6020\u9023\u7D61\u306E ID \u3068\u3057\u3066\u4F7F\u3048\u306A\u3044\u6587\u5B57\u3092\u542B\u307F\u307E\u3059: ${id}`,usage);return id.trim()}function assertOwnReportId(id,usage){for(const[prefix,label]of Object.entries(FOREIGN_ID_PREFIXES)){if(id.startsWith(prefix)){throw new UsageError(`${id} \u306F\u52E4\u6020\u9023\u7D61\u3067\u306F\u306A\u304F${label}\
18
+ \u3067\u3059\u3002\u52E4\u6020\u9023\u7D61\u306E\u30B3\u30DE\u30F3\u30C9\u3067\u306F\u5909\u66F4\u30FB\u524A\u9664\u3067\u304D\u307E\u305B\u3093`,usage)}}}async function resolveUserFlag(input,ctx){const ref=input.flags.get("--user");if(ref===void 0)return{};return{userId:(await ctx.resolver.user(ref,"--user")).id}}function timeFlag(input,name,usage){const raw=input.flags.get(name);if(raw===void 0)return void 0;if(!TIME_PATTERN.test(raw.trim()))throw new UsageError(`${name} \u306F HH:MM \u5F62\u5F0F\uFF0800:00\u301C23:59\
19
+ \uFF09\u3067\u6307\u5B9A\u3057\u3066\u304F\u3060\u3055\u3044\uFF08\u53D7\u3051\u53D6\u3063\u305F\u5024: ${raw}\uFF09`,usage);return raw.trim()}function str(value){return typeof value==="string"&&value!==""?value:null}function rowsToRefs(rows){return rows.flatMap(row=>{const id=str(row["id"]);const name=str(row["name"]);return id===null||name===null?[]:[{id,name,code:str(row["code"])}]})}function linkedTo(row,key,parentId){const ids=row[key];return Array.isArray(ids)&&ids.includes(parentId)}async function resolveMasters(ctx,names){
20
+ const masters=await ctx.resolver.attendanceReportMasters();const out={};let categoryId=names.categoryId;if(names.category!==void 0){categoryId=(await resolveNamed(names.category,rowsToRefs(masters.categories),{flag:"--category",label:"\u6709\u52B9\u306A\u9023\u7D61\u533A\u5206",scope:"\u3053\u306E\u30C6\u30CA\u30F3\u30C8"})).id;out["categoryId"]=categoryId}let reasonId=names.reasonId;if(names.reason!==void 0){const candidates=categoryId===void 0?masters.reasons:masters.reasons.filter(row=>linkedTo(
21
+ row,"category_ids",categoryId));reasonId=(await resolveNamed(names.reason,rowsToRefs(candidates),{flag:"--reason",label:"\u3053\u306E\u533A\u5206\u3067\u4F7F\u3048\u308B\u9023\u7D61\u7406\u7531",scope:"\u3053\u306E\u533A\u5206"})).id;out["reasonId"]=reasonId}if(names.detail!==void 0){const candidates=reasonId===void 0?masters.details:masters.details.filter(row=>linkedTo(row,"reason_ids",reasonId));out["detailId"]=(await resolveNamed(names.detail,rowsToRefs(candidates),{flag:"--detail",label:"\u3053\u306E\u7406\
22
+ \u7531\u3067\u4F7F\u3048\u308B\u7406\u7531\u8A73\u7D30",scope:"\u3053\u306E\u7406\u7531"})).id}const named=(rows,id)=>id===void 0?void 0:rowsToRefs(rows).find(ref=>ref.id===id)?.name??void 0;const labels={categoryName:named(masters.categories,categoryId),reasonName:named(masters.reasons,reasonId),detailName:named(masters.details,out["detailId"])};for(const[key,value]of Object.entries(labels))if(value!==void 0)out[key]=value;return out}async function readNotes(input,usage){const out={};const note=await readBody(
23
+ input,{...NOTE_SPEC,usage});if(note!==void 0)out["content"]=note;const privateNote=await readBody(input,{...PRIVATE_NOTE_SPEC,usage});if(privateNote!==void 0)out["contentPrivate"]=privateNote;return out}function commonBody(input,usage){const resolved=input.resolved??{};const body={};if(resolved["categoryId"]!==void 0)body["category_id"]=resolved["categoryId"];if(resolved["reasonId"]!==void 0)body["reason_id"]=resolved["reasonId"];if(resolved["detailId"]!==void 0)body["reason_detail_id"]=resolved["\
24
+ detailId"];const start=timeFlag(input,"--start-time",usage);if(start!==void 0)body["target_start_time"]=start;const end=timeFlag(input,"--end-time",usage);if(end!==void 0)body["target_end_time"]=end;if(resolved["content"]!==void 0)body["content"]=resolved["content"];if(resolved["contentPrivate"]!==void 0)body["content_private"]=resolved["contentPrivate"];return body}async function assertReportMonthsOpen(ctx,months,userId,action){for(const month of[...new Set(months)]){let sheet;try{sheet=await ctx.
25
+ send({method:"GET",path:"/api/v1/attendance/timesheet",query:{year_month:month,user_id:userId}})}catch(err){if(err instanceof ApiError&&err.status===403){throw new ApiRejectedError(`\u7DE0\u3081\u306E\u78BA\u8A8D\u306E\u305F\u3081\u306B\u5BFE\u8C61\u8005\u306E ${month} \u306E\u52E4\u6020\u8868\u3092\u8AAD\u3081\u306A\u304B\u3063\u305F\u305F\u3081\u3001\u52E4\u6020\u9023\u7D61\u306E${action}\u3092\u9001\u308A\u307E\u305B\u3093\u3067\u3057\u305F\uFF08\u52E4\u6020\u8868\u306F\u672C\u4EBA\u30FB\u52E4\u6020\u306E\u7BA1\u7406\u8005\u30FB\u4E0A\u9577\u3060\u3051\u304C\u8AAD\u3081\u307E\u3059\uFF09\u3002\u52E4\u6020\u306E\u7BA1\u7406\u8005\u306B\u4F9D\u983C\u3057\u3066\u304F\u3060\u3055\u3044\u3002`)}
26
+ throw err}if(!isRecord(sheet)||typeof sheet["is_closed"]!=="boolean"){throw new ApiResponseError("\u52E4\u6020\u8868\u306E\u5FDC\u7B54\u306B is_closed \u304C\u3042\u308A\u307E\u305B\u3093\u3002\u63A5\u7D9A\u5148\u3092\u78BA\u8A8D\u3057\u3066\u304F\u3060\u3055\u3044\u3002")}if(sheet["is_closed"]){const at=typeof sheet["closed_at"]==="string"?`\uFF08${sheet["closed_at"]} \u306B\u7DE0\u3081\uFF09`:"";throw new ApiRejectedError(`${month} \u306F\u7DE0\u3081\u6E08\u307F\u306E\u305F\u3081\u52E4\u6020\u9023\u7D61\u306E${action}\
27
+ \u3092\u9001\u308A\u307E\u305B\u3093\u3067\u3057\u305F${at}\u3002\u52E4\u6020\u9023\u7D61\u306F\u52E4\u6020\u306E\u96C6\u8A08\u306B\u52B9\u304D\u307E\u3059\u304C\u3001\u30B5\u30FC\u30D0\u306F\u7DE0\u3081\u6E08\u307F\u306E\u6708\u3078\u306E\u5909\u66F4\u3092\u62D2\u5426\u3057\u306A\u3044\u306E\u3067\u3001CLI \u304C\u9001\u308B\u524D\u306B\u6B62\u3081\u3066\u3044\u307E\u3059\u3002\u7DE0\u3081\u306E\u89E3\u9664\u306F\u52E4\u6020\u306E\u7BA1\u7406\u8005\u306B\u4F9D\u983C\u3057\u3066\u304F\u3060\u3055\u3044\u3002`)}}}
28
+ function withNames(body,input){const r=input.resolved??{};const names=new Map;for(const[idKey,nameKey]of[["categoryId","categoryName"],["reasonId","reasonName"],["detailId","detailName"]]){const id=r[idKey];const name=r[nameKey];if(id!==void 0&&name!==void 0)names.set(id,name)}const lookup=id=>typeof id==="string"?names.get(id)??null:null;const add=row=>isRecord(row)?{...row,category_name:lookup(row["category_id"]),reason_name:lookup(row["reason_id"]),reason_detail_name:lookup(row["reason_detail\
29
+ _id"])}:row;if(!isRecord(body))return body;if(Array.isArray(body["reports"]))return{...body,reports:body["reports"].map(add)};if(isRecord(body["report"]))return{...body,report:add(body["report"])};return body}function closingNote(action){return`\u5B9F\u884C\u6642\u306F\u3001\u3053\u306E\u524D\u306B\u5BFE\u8C61\u6708\u306E\u52E4\u6020\u8868\uFF08GET /api/v1/attendance/timesheet\uFF09\u3067\u7DE0\u3081\u3092\u78BA\u304B\u3081\u3001\u7DE0\u3081\u6E08\u307F\u306A\u3089${action}\u3092\u9001\u308A\u307E\u305B\u3093\u3002`}
30
+ function listRange(input){const month=monthFlag(input.flags);const from=dateFlag(input.flags,"--from");const to=dateFlag(input.flags,"--to");if(month!==void 0&&(from!==void 0||to!==void 0)){throw new UsageError("--month \u3068 --from / --to \u306F\u540C\u6642\u306B\u6307\u5B9A\u3067\u304D\u307E\u305B\u3093",REPORT_LIST_USAGE)}if(from===void 0!==(to===void 0)){throw new UsageError("--from \u3068 --to \u306F\u4E21\u65B9\u6307\u5B9A\u3057\u3066\u304F\u3060\u3055\u3044",REPORT_LIST_USAGE)}if(from!==
31
+ void 0&&to!==void 0){if(from>to)throw new UsageError(`--from\uFF08${from}\uFF09\u304C --to\uFF08${to}\uFF09\u3088\u308A\u5F8C\u3067\u3059`,REPORT_LIST_USAGE);const months=monthsBetween(from,to);if(months.length>RANGE_MONTHS_MAX){throw new UsageError(`\u671F\u9593\u306F ${RANGE_MONTHS_MAX} \u304B\u6708\u4EE5\u5185\u3067\u6307\u5B9A\u3057\u3066\u304F\u3060\u3055\u3044\uFF08${months.length} \u304B\u6708\uFF09`,REPORT_LIST_USAGE)}return{months,from,to}}return{months:month===void 0?[]:[month]}}function listPlanFor(input,month){
32
+ return{method:"GET",path:ATTENDANCE_REPORTS_PATH,query:{year_month:month,user_id:input.resolved?.["userId"]}}}function reportList(body){if(!isRecord(body)||!Array.isArray(body["list"])){throw new ApiResponseError("\u52E4\u6020\u9023\u7D61\u306E\u5FDC\u7B54\u306B list \u304C\u3042\u308A\u307E\u305B\u3093\u3002\u63A5\u7D9A\u5148\u3092\u78BA\u8A8D\u3057\u3066\u304F\u3060\u3055\u3044\u3002")}return body["list"]}function nameMap(rows){return new Map(rowsToRefs(rows).map(ref=>[ref.id,ref.name]))}async function listReports(input,ctx){
33
+ const range=listRange(input);const rows=[];for(const month of range.months.length===0?[void 0]:range.months){rows.push(...reportList(await ctx.send(listPlanFor(input,month))))}const inRange=rows.filter(row=>{if(range.from===void 0||range.to===void 0)return true;const date=isRecord(row)?row["report_date"]:void 0;return typeof date==="string"&&date>=range.from&&date<=range.to});const masters=await Promise.all(Object.values(ATTENDANCE_REPORT_MASTER_PATHS).map(async path=>reportList(await ctx.send({
34
+ method:"GET",path,query:{limit:"1000"}}))));const[categories,reasons,details]=masters.map(list=>nameMap(list.filter(isRecord)));const named=inRange.map(row=>{if(!isRecord(row))return row;const lookup=(map,key)=>{const id=row[key];return typeof id==="string"?map?.get(id)??null:null};return{...row,category_name:lookup(categories,"category_id"),reason_name:lookup(reasons,"reason_id"),reason_detail_name:lookup(details,"reason_detail_id")}});return{list:named,count:named.length}}function kindOf(row){
35
+ if(row["is_paid_leave"]===true)return row["paid_leave_type_label"]??"\u6709\u7D66\u4F11\u6687";if(row["is_work_change"]===true)return row["work_change_type_label"]??"\u52E4\u52D9\u5909\u66F4";return row["category_name"]??(isRecord(row["category"])?row["category"]["name"]:row["category_id"])}function summarizeReport(report){const row=isRecord(report)?report:{};const start=str(row["target_start_time"]);const end=str(row["target_end_time"]);return pick({report_date:row["report_date"],user_name:row["\
36
+ user_name"],kind:kindOf(row),reason:row["reason_name"]??(isRecord(row["reason"])?row["reason"]["name"]:row["reason_id"]),detail:row["reason_detail_name"]??(isRecord(row["reason_detail"])?row["reason_detail"]["name"]:row["reason_detail_id"]),time:start===null&&end===null?null:`${start??""}\u301C${end??""}`,content:row["content"],id:row["id"]},REPORT_COLUMNS)}function reportBody(body){const report=isRecord(body)?body["report"]:void 0;if(!isRecord(report)||typeof report["id"]!=="string"){throw new ApiResponseError(
37
+ "\u52E4\u6020\u9023\u7D61\u306E\u5FDC\u7B54\u306B report \u304C\u3042\u308A\u307E\u305B\u3093\u3002\u63A5\u7D9A\u5148\u3092\u78BA\u8A8D\u3057\u3066\u304F\u3060\u3055\u3044\u3002")}return report}var listOperation={name:"list",summary:"\u52E4\u6020\u9023\u7D61\uFF08\u9045\u523B\u30FB\u65E9\u9000\u30FB\u6B20\u52E4\u7B49\u306E\u9023\u7D61\uFF09\u3092\u4E00\u89A7\u3059\u308B",usage:REPORT_LIST_USAGE,description:`GET /api/v2/attendance/reports \u3092\u8868\u793A\u3057\u307E\u3059\u3002--month \u304C\u7121\u3051\u308C\u3070\u4ECA\u6708\u3067\u3059\uFF08\u30C6\u30CA\u30F3\u30C8\u306E\u696D\u52D9\u65E5\u306E\u533A\u5207\u308A\u3067\u30B5\u30FC\u30D0\u304C\u6C7A\u3081\u307E\u3059\uFF09\u3002
38
+ --from / --to \u3092\u6307\u5B9A\u3059\u308B\u3068\u3001\u304B\u304B\u308B\u6708\u30921\u304B\u6708\u305A\u3064\u5F15\u3044\u3066\u671F\u9593\u5185\u306E\u65E5\u4ED8\u3060\u3051\u3092\u51FA\u3057\u307E\u3059\uFF08${RANGE_MONTHS_MAX} \u304B\u6708\u307E\u3067\uFF09\u3002
39
+ --user \u3092\u7701\u304F\u3068\u3001\u95B2\u89A7\u3067\u304D\u308B\u4EBA\u5168\u54E1\u306E\u9023\u7D61\u304C\u4E26\u3073\u307E\u3059\uFF08\u4ED6\u306E\u4EBA\u306E\u975E\u516C\u958B\u30E1\u30E2\u30FB\u7406\u7531\u8A73\u7D30\u306F\u4F0F\u305B\u3089\u308C\u307E\u3059\uFF09\u3002
40
+ ${USER_REF_HELP}
41
+ \u627F\u8A8D\u6E08\u307F\u306E\u6709\u7D66\u4F11\u6687\uFF08id \u304C paid-leave-\u2026\uFF09\u3068\u52E4\u52D9\u5909\u66F4\uFF08work-change-\u2026\uFF09\u3082\u540C\u3058\u4E00\u89A7\u306B\u4E26\u3073\u307E\u3059\u3002
42
+ \u884C\u306B\u306F\u533A\u5206\u30FB\u7406\u7531\u306E ID \u3057\u304B\u7121\u3044\u306E\u3067\u3001\u533A\u5206\u30FB\u7406\u7531\u30FB\u7406\u7531\u8A73\u7D30\u306E\u4E00\u89A7\u3082\u5F15\u3044\u3066\u540D\u524D\uFF08category_name / reason_name / reason_detail_name\uFF09\u3092\u8DB3\u3057\u307E\u3059\u3002
43
+ --output json \u306F API \u306E\u5168\u30D5\u30A3\u30FC\u30EB\u30C9\u306B\u3001\u3053\u306E3\u3064\u306E\u540D\u524D\u3092\u8DB3\u3057\u305F\u3082\u306E\u3092\u51FA\u3057\u307E\u3059\u3002`,flags:[MONTH_FLAG,FROM_FLAG,TO_FLAG,USER_FLAG],async prepare(input,ctx){noArgs(input,"report list",REPORT_LIST_USAGE);listRange(input);return withResolved(input,await resolveUserFlag(input,ctx))},plan:input=>listPlanFor(input,listRange(input).months[0]),plannedNotes:input=>{const{months}=listRange(input);const rest=months.
44
+ slice(1);return[...rest.length>0?[`\u5B9F\u884C\u6642\u306F\u7D9A\u3051\u3066 ${rest.join(" / ")} \u306E\u4E00\u89A7\u3082\u9001\u308A\u307E\u3059\u3002`]:[],"\u5B9F\u884C\u6642\u306F\u7D9A\u3051\u3066\u533A\u5206\u30FB\u7406\u7531\u30FB\u7406\u7531\u8A73\u7D30\u306E\u4E00\u89A7\uFF08GET /api/v2/attendance/report-{categories,reasons,reason-details}\uFF09\u3082\u9001\u308A\u3001\u540D\u524D\u3092\u8DB3\u3057\u307E\u3059\u3002"]},execute:listReports,summarize:body=>reportList(body).map(summarizeReport),
45
+ raw:body=>reportList(body),notes:body=>{const rows=reportList(body);const foreign=rows.filter(row=>isRecord(row)&&(row["is_paid_leave"]===true||row["is_work_change"]===true)).length;return[`${String(rows.length)} \u4EF6${foreign>0?`\uFF08\u3046\u3061\u6709\u7D66\u30FB\u52E4\u52D9\u5909\u66F4 ${String(foreign)} \u4EF6\u3002\u5909\u66F4\u306F twp leave / twp workchange \u3067\u884C\u3044\u307E\u3059\uFF09`:""}`]}};var getOperation={name:"get",summary:"\u52E4\u6020\u9023\u7D611\u4EF6\u306E\u8A73\u7D30\u3092\u8868\u793A\u3059\u308B",
46
+ usage:REPORT_GET_USAGE,description:"GET /api/v2/attendance/reports/{id} \u3092\u8868\u793A\u3057\u307E\u3059\u3002\u533A\u5206\u30FB\u7406\u7531\u30FB\u7406\u7531\u8A73\u7D30\u306F\u30DE\u30B9\u30BF\u306E\u5185\u5BB9\uFF08category / reason / reason_detail\uFF09\u4ED8\u304D\u3067\u8FD4\u308A\u307E\u3059\u3002\npaid-leave-\u2026 / work-change-\u2026 \u306E ID \u306F\u3001\u6709\u7D66\u4F11\u6687\u30FB\u52E4\u52D9\u5909\u66F4\u306E\u5185\u5BB9\u3092\u52E4\u6020\u9023\u7D61\u306E\u5F62\u3067\u8FD4\u3057\u307E\u3059\u3002\n\u672C\u4EBA\u30FB\u4F5C\u6210\u8005\u30FB\u52E4\u6020\u306E\u7BA1\u7406\u8005\u4EE5\u5916\u306B\u306F\u3001\u975E\u516C\u958B\u30E1\u30E2\uFF08content_private\uFF09\u3068\u7406\u7531\u8A73\u7D30\u304C\u4F0F\u305B\u3089\u308C\u307E\u3059\u3002",
47
+ flags:[],plan:input=>({method:"GET",path:`${ATTENDANCE_REPORTS_PATH}/${encodeURIComponent(reportId(input,REPORT_GET_USAGE))}`}),summarize:body=>summarizeReport(reportBody(body)),raw:reportBody};async function listReasons(_input,ctx){const[categories,reasons,details]=await Promise.all(Object.values(ATTENDANCE_REPORT_MASTER_PATHS).map(async path=>reportList(await ctx.send({method:"GET",path:`${path}/active`})).filter(isRecord)));return{categories,reasons,details}}function mastersBody(body){if(!isRecord(
48
+ body)||!Array.isArray(body["categories"])||!Array.isArray(body["reasons"])||!Array.isArray(body["details"])){throw new ApiResponseError("\u533A\u5206\u30FB\u7406\u7531\u306E\u5FDC\u7B54\u304C\u60F3\u5B9A\u306E\u5F62\u3067\u306F\u3042\u308A\u307E\u305B\u3093\u3002\u63A5\u7D9A\u5148\u3092\u78BA\u8A8D\u3057\u3066\u304F\u3060\u3055\u3044\u3002")}return body}function summarizeReasons(body){const{categories,reasons,details}=mastersBody(body);const rows=[];for(const category of categories){const categoryId=str(
49
+ category["id"]);if(categoryId===null)continue;for(const reason of reasons.filter(row=>linkedTo(row,"category_ids",categoryId))){const reasonId=str(reason["id"]);const linked=reasonId===null?[]:details.filter(row=>linkedTo(row,"reason_ids",reasonId));rows.push({category:category["name"],reason:reason["name"],details:linked.map(row=>row["name"]).join(" / ")||null,admin_only:category["is_admin_only"]===true||reason["is_admin_only"]===true})}}return rows}var reasonsOperation={name:"reasons",summary:"\
50
+ \u52E4\u6020\u9023\u7D61\u3067\u4F7F\u3048\u308B\u533A\u5206\u30FB\u7406\u7531\u30FB\u7406\u7531\u8A73\u7D30\u306E\u7D44\u307F\u5408\u308F\u305B\u3092\u4E00\u89A7\u3059\u308B",usage:REPORT_REASONS_USAGE,description:"GET /api/v2/attendance/report-categories/active\u30FBreport-reasons/active\u30FBreport-reason-details/active \u3092\u5F15\u304D\u3001\n\u533A\u5206 \xD7 \u7406\u7531\u306E\u7D44\u307F\u5408\u308F\u305B\u3054\u3068\u306B1\u884C\u3067\u51FA\u3057\u307E\u3059\uFF08details \u306F\u305D\u306E\u7406\u7531\u3067\u9078\u3079\u308B\u7406\u7531\u8A73\u7D30\uFF09\u3002\nreport create \u306E --category / --reason / --detail \u306B\u306F\u3001\u3053\u3053\u306B\u51FA\u308B\u540D\u524D\uFF08\u307E\u305F\u306F\u30B3\u30FC\u30C9\u30FBID\uFF09\u3092\u6307\u5B9A\u3057\u307E\u3059\u3002\nadmin_only=true \u306F\u52E4\u6020\u306E\u7BA1\u7406\u8005\u5411\u3051\u306E\u533A\u5206\u30FB\u7406\u7531\u3067\u3059\u3002\n--output json \u306F3\u3064\u306E\u4E00\
51
+ \u89A7\uFF08categories / reasons / details\uFF09\u3092\u305D\u306E\u307E\u307E\u51FA\u3057\u307E\u3059\u3002\u533A\u5206\u30FB\u7406\u7531\u306E\u767B\u9332\u30FB\u5909\u66F4\u306F\u7BA1\u7406\u753B\u9762\u3067\u884C\u3044\u307E\u3059\u3002",flags:[],plan(input){noArgs(input,"report reasons",REPORT_REASONS_USAGE);return{method:"GET",path:`${ATTENDANCE_REPORT_MASTER_PATHS.categories}/active`}},plannedNotes:()=>["\u5B9F\u884C\u6642\u306F\u7D9A\u3051\u3066\u7406\u7531\u30FB\u7406\u7531\u8A73\u7D30\u306E\u4E00\u89A7\uFF08report-reasons/active\u30FBreport-reason-details/active\uFF09\u3082\u9001\u308A\u307E\u3059\u3002"],
52
+ execute:listReasons,summarize:summarizeReasons,raw:mastersBody};function createDates(input){const date=dateFlag(input.flags);const from=dateFlag(input.flags,"--from");const to=dateFlag(input.flags,"--to");if(date!==void 0&&(from!==void 0||to!==void 0)){throw new UsageError("--date \u3068 --from / --to \u306F\u540C\u6642\u306B\u6307\u5B9A\u3067\u304D\u307E\u305B\u3093",REPORT_CREATE_USAGE)}if(date!==void 0)return{date,months:[date.slice(0,7)]};if(from===void 0||to===void 0){throw new UsageError("\
53
+ \u65E5\u4ED8\u3092 --date \u304B --from / --to\uFF08\u4E21\u65B9\uFF09\u3067\u6307\u5B9A\u3057\u3066\u304F\u3060\u3055\u3044",REPORT_CREATE_USAGE)}if(from>to)throw new UsageError(`--from\uFF08${from}\uFF09\u304C --to\uFF08${to}\uFF09\u3088\u308A\u5F8C\u3067\u3059`,REPORT_CREATE_USAGE);return{from,to,months:monthsBetween(from,to)}}var RANGE_CONFIRM_DAYS=31;function calendarDays(from,to){return Math.round((Date.parse(`${to}T00:00:00Z`)-Date.parse(`${from}T00:00:00Z`))/864e5)+1}async function createPreview(input){
54
+ const dates=createDates(input);if(dates.from===void 0||dates.to===void 0)return{notes:[],warnings:[]};const days=calendarDays(dates.from,dates.to);return{notes:[`${dates.from}\u301C${dates.to} \u306E ${String(days)} \u65E5\u5206\uFF08\u571F\u65E5\u795D\u3092\u542B\u3080\u6BCE\u65E5\uFF09\u306B\u3001\u52E4\u6020\u9023\u7D61\u30921\u4EF6\u305A\u3064\u767B\u9332\u3057\u307E\u3059`],warnings:days>RANGE_CONFIRM_DAYS?[`\u671F\u9593\u304C ${String(days)} \u65E5\u3042\u308A\u307E\u3059\uFF08${String(RANGE_CONFIRM_DAYS)}\
55
+ \u65E5\u3092\u8D85\u3048\u3066\u3044\u307E\u3059\uFF09\u3002\u767B\u9332\u3057\u305F\u52E4\u6020\u9023\u7D61\u306F\u672C\u4EBA\u3067\u306F\u6D88\u305B\u306A\u3044\u305F\u3081\u3001\u65E5\u4ED8\u306B\u8AA4\u308A\u304C\u306A\u3044\u304B\u78BA\u304B\u3081\u3066\u304F\u3060\u3055\u3044`]:[]}}function requireFlag(input,name,usage){const value=input.flags.get(name);if(value===void 0||value.trim()==="")throw new UsageError(`${name} \u3092\u6307\u5B9A\u3057\u3066\u304F\u3060\u3055\u3044`,usage);return value}
56
+ function createPlan(input){const dates=createDates(input);const body={...input.resolved?.["userId"]===void 0?{}:{user_id:input.resolved["userId"]},...dates.date===void 0?{start_date:dates.from,end_date:dates.to}:{report_date:dates.date},category_id:requireResolved(input,"categoryId"),reason_id:requireResolved(input,"reasonId"),...commonBody(input,REPORT_CREATE_USAGE)};return{method:"POST",path:dates.date===void 0?`${ATTENDANCE_REPORTS_PATH}/range`:ATTENDANCE_REPORTS_PATH,body}}function createdReports(body){
57
+ if(isRecord(body)&&Array.isArray(body["reports"]))return body["reports"];if(isRecord(body)&&isRecord(body["report"]))return[body["report"]];throw new ApiResponseError("\u52E4\u6020\u9023\u7D61\u306E\u4F5C\u6210\u306E\u5FDC\u7B54\u306B report / reports \u304C\u3042\u308A\u307E\u305B\u3093\u3002\u63A5\u7D9A\u5148\u3092\u78BA\u8A8D\u3057\u3066\u304F\u3060\u3055\u3044\u3002")}var createOperation={name:"create",summary:"\u52E4\u6020\u9023\u7D61\u3092\u767B\u9332\u3059\u308B\uFF081\u65E5\u304B\u671F\u9593\uFF09",
58
+ usage:REPORT_CREATE_USAGE,description:`--date \u306A\u3089 POST /api/v2/attendance/reports\u3001--from / --to \u306A\u3089 POST /api/v2/attendance/reports/range \u3092\u9001\u308A\u307E\u3059\u3002
59
+ \u671F\u9593\u306F\u3001\u65E2\u306B\u52E4\u6020\u9023\u7D61\u304C\u3042\u308B\u65E5\u306B\u3082\u91CD\u306D\u3066\u767B\u9332\u3057\u307E\u3059\uFF08\u30B5\u30FC\u30D0\u304C\u91CD\u8907\u3092\u98DB\u3070\u3055\u306A\u3044\u305F\u3081\u3002\u5148\u306B report list \u3067\u78BA\u304B\u3081\u3066\u304F\u3060\u3055\u3044\uFF09\u3002
60
+ \u671F\u9593\u306F\u571F\u65E5\u795D\u3092\u542B\u3080\u6BCE\u65E5\u306B1\u4EF6\u305A\u3064\u767B\u9332\u3057\u307E\u3059\u3002${String(RANGE_CONFIRM_DAYS)} \u65E5\u3092\u8D85\u3048\u308B\u671F\u9593\u306F\u3001\u6253\u3061\u9593\u9055\u3044\u3092\u7591\u3063\u3066 --yes \u304C\u7121\u3044\u9650\u308A\u9001\u308A\u307E\u305B\u3093\uFF08\u7D42\u4E86\u30B3\u30FC\u30C9 2\uFF09\u3002
61
+ --category / --reason / --detail \u306F\u540D\u524D\u30FB\u30B3\u30FC\u30C9\u30FBID \u306E\u5B8C\u5168\u4E00\u81F4\u3067\u3001\u6709\u52B9\u306A\u3082\u306E\u3060\u3051\u304B\u3089\u89E3\u6C7A\u3057\u307E\u3059
62
+ \uFF08\u7406\u7531\u306F\u533A\u5206\u306B\u3001\u7406\u7531\u8A73\u7D30\u306F\u7406\u7531\u306B\u7D10\u3065\u304F\u3082\u306E\u3060\u3051\uFF09\u3002\u4E00\u81F4\u3057\u306A\u3044\u30FB\u8907\u6570\u5F53\u305F\u308B\u3068\u304D\u306F\u5019\u88DC\u3092\u51FA\u3057\u3066\u7D42\u4E86\u30B3\u30FC\u30C9 2 \u3067\u6B62\u3081\u307E\u3059\u3002
63
+ \u4F7F\u3048\u308B\u7D44\u307F\u5408\u308F\u305B\u306F twp attendance report reasons \u3067\u5206\u304B\u308A\u307E\u3059\u3002
64
+ --user \u3092\u7701\u304F\u3068\u81EA\u5206\u306E\u5206\u3067\u3059\u3002\u4ED6\u306E\u4EBA\u306E\u5206\u306F\u52E4\u6020\u306E\u7BA1\u7406\u8005\u3060\u3051\u304C\u767B\u9332\u3067\u304D\u307E\u3059\uFF08\u7121\u3051\u308C\u3070\u7D42\u4E86\u30B3\u30FC\u30C9 3\uFF09\u3002
65
+ ${USER_REF_HELP}
66
+ \u767B\u9332\u3059\u308B\u3068\u4E0A\u9577\u3078\u901A\u77E5\u304C\u5C4A\u304D\u307E\u3059\u3002\u5BFE\u8C61\u306E\u6708\uFF08\u671F\u9593\u306A\u3089\u304B\u304B\u308B\u6708\u3059\u3079\u3066\uFF09\u304C\u7DE0\u3081\u6E08\u307F\u306A\u3089\u9001\u3089\u305A\u306B\u6B62\u3081\u307E\u3059\uFF08\u7D42\u4E86\u30B3\u30FC\u30C9 3\uFF09\u3002`,flags:[{name:"--date",summary:"\u5BFE\u8C61\u306E\u65E5\u4ED8\uFF08YYYY-MM-DD\uFF09",takesValue:true,placeholder:"<YYYY-MM-DD>"},FROM_FLAG,TO_FLAG,...WRITE_FLAGS,
67
+ USER_FLAG],async prepare(input,ctx){noArgs(input,"report create",REPORT_CREATE_USAGE);createDates(input);timeFlag(input,"--start-time",REPORT_CREATE_USAGE);timeFlag(input,"--end-time",REPORT_CREATE_USAGE);const category=requireFlag(input,"--category",REPORT_CREATE_USAGE);const reason=requireFlag(input,"--reason",REPORT_CREATE_USAGE);const notes=await readNotes(input,REPORT_CREATE_USAGE);const user=await resolveUserFlag(input,ctx);const detail=input.flags.get("--detail");const masters=await resolveMasters(
68
+ ctx,{category,reason,...detail===void 0?{}:{detail}});return withResolved(input,{...user,...masters,...notes})},plan:createPlan,preview:createPreview,plannedNotes:()=>[closingNote("\u767B\u9332")],async execute(input,ctx){const plan=createPlan(input);await assertReportMonthsOpen(ctx,createDates(input).months,input.resolved?.["userId"],"\u767B\u9332");return withNames(await ctx.send(plan),input)},summarize:body=>createdReports(body).map(summarizeReport),raw:body=>(createdReports(body),body),notes:body=>{
69
+ const skipped=isRecord(body)&&Array.isArray(body["skipped_dates"])?body["skipped_dates"]:[];const notes=[`${String(createdReports(body).length)} \u4EF6\u767B\u9332\u3057\u307E\u3057\u305F`];if(skipped.length>0)notes.push(`\u30B5\u30FC\u30D0\u304C\u767B\u9332\u3057\u306A\u304B\u3063\u305F\u65E5: ${skipped.map(String).join(" / ")}`);return notes}};async function prepareExisting(input,ctx,usage){const id=reportId(input,usage);assertOwnReportId(id,usage);const report=await ctx.resolver.attendanceReport(
70
+ id);const date=str(report["report_date"]);const userId=str(report["user_id"]);if(date===null||userId===null){throw new ApiResponseError("\u52E4\u6020\u9023\u7D61\u306E\u5FDC\u7B54\u306B report_date / user_id \u304C\u3042\u308A\u307E\u305B\u3093\u3002\u63A5\u7D9A\u5148\u3092\u78BA\u8A8D\u3057\u3066\u304F\u3060\u3055\u3044\u3002")}return{reportMonth:date.slice(0,7),reportUserId:userId,...str(report["category_id"])===null?{}:{currentCategoryId:str(report["category_id"])},...str(report["reason_id"])===
71
+ null?{}:{currentReasonId:str(report["reason_id"])},...str(report["reason_detail_id"])===null?{}:{currentDetailId:str(report["reason_detail_id"])}}}function updatePlan(input){const id=reportId(input,REPORT_UPDATE_USAGE);const body=commonBody(input,REPORT_UPDATE_USAGE);if(input.resolved?.["clearDetail"]==="true")body["reason_detail_id"]=null;if(Object.keys(body).length===0){throw new UsageError("\u5909\u66F4\u3059\u308B\u9805\u76EE\u30921\u3064\u4EE5\u4E0A\u6307\u5B9A\u3057\u3066\u304F\u3060\u3055\u3044",
72
+ REPORT_UPDATE_USAGE)}return{method:"PUT",path:`${ATTENDANCE_REPORTS_PATH}/${encodeURIComponent(id)}`,body}}var updateOperation={name:"update",summary:"\u52E4\u6020\u9023\u7D61\u3092\u5909\u66F4\u3059\u308B\uFF08\u533A\u5206\u30FB\u7406\u7531\u30FB\u6642\u523B\u30FB\u9023\u7D61\u5185\u5BB9\uFF09",usage:REPORT_UPDATE_USAGE,description:"PUT /api/v2/attendance/reports/{id} \u3092\u9001\u308A\u307E\u3059\u3002\u6307\u5B9A\u3057\u305F\u9805\u76EE\u3060\u3051\u3092\u5909\u3048\u307E\u3059\u3002\u65E5\u4ED8\u3068\u5BFE\u8C61\u8005\u306F\u5909\u3048\u3089\u308C\u307E\u305B\u3093\uFF08\u6D88\u3057\u3066\u767B\u9332\u3057\u76F4\u3057\u3066\u304F\u3060\u3055\u3044\uFF09\u3002\n--category \u3092\u5909\u3048\u308B\u3068\u304D\u306F --reason \u3082\u6307\u5B9A\u3057\u3066\u304F\u3060\u3055\u3044\uFF08\u7406\u7531\u306F\u533A\u5206\u306B\u7D10\u3065\u304F\u305F\u3081\uFF09\u3002--reason \u3060\u3051\u306A\u3089\u3001\u3044\u307E\u306E\u533A\u5206\u306B\u7D10\u3065\u304F\u7406\u7531\u304B\
73
+ \u3089\u9078\u3073\u307E\u3059\u3002\n\u7406\u7531\u3092\u5909\u3048\u3066 --detail \u3092\u4ED8\u3051\u306A\u3051\u308C\u3070\u3001\u3044\u307E\u306E\u7406\u7531\u8A73\u7D30\u306F\u5916\u3057\u307E\u3059\uFF08\u5225\u306E\u7406\u7531\u306B\u7D10\u3065\u304F\u8A73\u7D30\u304C\u6B8B\u3089\u306A\u3044\u3088\u3046\u306B\uFF09\u3002--clear-detail \u3067\u660E\u793A\u7684\u306B\u5916\u305B\u307E\u3059\u3002\n\u5909\u66F4\u3067\u304D\u308B\u306E\u306F\u52E4\u6020\u306E\u7BA1\u7406\u8005\u30FB\u672C\u4EBA\u30FB\u4F5C\u6210\u8005\u3067\u3059\uFF08\u7121\u3051\u308C\u3070\u7D42\u4E86\u30B3\u30FC\u30C9 3\uFF09\u3002\n\u9001\u308B\u524D\u306B\u5BFE\u8C61\u306E\u52E4\u6020\u9023\u7D61\u3092\u8AAD\u307F\u3001\u305D\u306E\u6708\u304C\u7DE0\u3081\u6E08\u307F\u306A\u3089\u9001\u3089\u305A\u306B\u6B62\u3081\u307E\u3059\uFF08\u7D42\u4E86\u30B3\u30FC\u30C9 3\uFF09\u3002\n\u6709\u7D66\u4F11\u6687\uFF08paid-leave-\u2026\uFF09\u30FB\u52E4\u52D9\u5909\u66F4\uFF08work-change-\u2026\uFF09\u306F\u5909\u66F4\u3067\u304D\u307E\u305B\u3093\u3002",
74
+ flags:[...WRITE_FLAGS,{name:"--clear-detail",summary:"\u7406\u7531\u8A73\u7D30\u3092\u5916\u3059",takesValue:false}],async prepare(input,ctx){reportId(input,REPORT_UPDATE_USAGE);timeFlag(input,"--start-time",REPORT_UPDATE_USAGE);timeFlag(input,"--end-time",REPORT_UPDATE_USAGE);const category=input.flags.get("--category");const reason=input.flags.get("--reason");const detail=input.flags.get("--detail");if(category!==void 0&&reason===void 0){throw new UsageError("--category \u3092\u5909\u3048\u308B\u3068\u304D\u306F --reason \u3082\u6307\u5B9A\u3057\u3066\u304F\
75
+ \u3060\u3055\u3044\uFF08\u7406\u7531\u306F\u533A\u5206\u306B\u7D10\u3065\u304D\u307E\u3059\uFF09",REPORT_UPDATE_USAGE)}if(detail!==void 0&&input.flags.has("--clear-detail")){throw new UsageError("--detail \u3068 --clear-detail \u306F\u540C\u6642\u306B\u6307\u5B9A\u3067\u304D\u307E\u305B\u3093",REPORT_UPDATE_USAGE)}const editable=["--category","--reason","--detail","--clear-detail","--start-time","--end-time","--note","--note-file","--private-note","--private-note-file"];if(!editable.some(name=>input.
76
+ flags.has(name))){throw new UsageError("\u5909\u66F4\u3059\u308B\u9805\u76EE\u30921\u3064\u4EE5\u4E0A\u6307\u5B9A\u3057\u3066\u304F\u3060\u3055\u3044",REPORT_UPDATE_USAGE)}const notes=await readNotes(input,REPORT_UPDATE_USAGE);const existing=await prepareExisting(input,ctx,REPORT_UPDATE_USAGE);const masters=category===void 0&&reason===void 0&&detail===void 0?{}:await resolveMasters(ctx,{...category===void 0?{}:{category},...existing["currentCategoryId"]===void 0?{}:{categoryId:existing["currentC\
77
+ ategoryId"]},...reason===void 0?{}:{reason},...existing["currentReasonId"]===void 0?{}:{reasonId:existing["currentReasonId"]},...detail===void 0?{}:{detail}});const reasonChanged=masters["reasonId"]!==void 0&&masters["reasonId"]!==existing["currentReasonId"];const clearDetail=input.flags.has("--clear-detail")||reasonChanged&&detail===void 0&&existing["currentDetailId"]!==void 0;return withResolved(input,{...existing,...masters,...notes,...clearDetail?{clearDetail:"true"}:{}})},plan:updatePlan,plannedNotes:input=>[
78
+ closingNote("\u5909\u66F4"),...input.resolved?.["clearDetail"]==="true"&&!input.flags.has("--clear-detail")?["\u7406\u7531\u3092\u5909\u3048\u305F\u306E\u3067\u3001\u3044\u307E\u306E\u7406\u7531\u8A73\u7D30\u3092\u5916\u3057\u307E\u3059\uFF08\u6B8B\u3059\u30FB\u4ED8\u3051\u66FF\u3048\u308B\u306A\u3089 --detail \u3092\u6307\u5B9A\u3057\u3066\u304F\u3060\u3055\u3044\uFF09\u3002"]:[]],async execute(input,ctx){const plan=updatePlan(input);await assertReportMonthsOpen(ctx,[requireResolved(input,"repo\
79
+ rtMonth")],requireResolved(input,"reportUserId"),"\u5909\u66F4");return withNames(await ctx.send(plan),input)},summarize:body=>summarizeReport(reportBody(body)),raw:reportBody};function deletePlan(input){return{method:"DELETE",path:`${ATTENDANCE_REPORTS_PATH}/${encodeURIComponent(reportId(input,REPORT_DELETE_USAGE))}`}}var deleteOperation={name:"delete",summary:"\u52E4\u6020\u9023\u7D61\u3092\u524A\u9664\u3059\u308B\uFF08--yes \u304C\u8981\u308B\u30FB\u52E4\u6020\u306E\u7BA1\u7406\u8005\uFF09",usage:REPORT_DELETE_USAGE,
80
+ description:"DELETE /api/v2/attendance/reports/{id} \u3092\u9001\u308A\u307E\u3059\u3002\u5143\u306B\u623B\u305B\u306A\u3044\u306E\u3067 --yes \u304C\u8981\u308A\u307E\u3059\u3002\n\u524A\u9664\u3067\u304D\u308B\u306E\u306F\u52E4\u6020\u306E\u7BA1\u7406\u8005\u3060\u3051\u3067\u3059\uFF08\u672C\u4EBA\u3067\u3082\u6D88\u305B\u307E\u305B\u3093\u3002\u7121\u3051\u308C\u3070\u7D42\u4E86\u30B3\u30FC\u30C9 3\uFF09\u3002\n\u9001\u308B\u524D\u306B\u5BFE\u8C61\u306E\u52E4\u6020\u9023\u7D61\u3092\u8AAD\u307F\u3001\u305D\u306E\u6708\u304C\u7DE0\u3081\u6E08\u307F\u306A\u3089\u9001\u3089\u305A\u306B\u6B62\u3081\u307E\u3059\uFF08\u7D42\u4E86\u30B3\u30FC\u30C9 3\uFF09\u3002\n\u6709\u7D66\u4F11\u6687\uFF08paid-leave-\u2026\uFF09\u30FB\u52E4\u52D9\u5909\u66F4\uFF08work-change-\u2026\uFF09\u306F\u524A\u9664\u3067\u304D\u307E\u305B\u3093\u3002",
81
+ destructive:true,flags:[],async prepare(input,ctx){return withResolved(input,await prepareExisting(input,ctx,REPORT_DELETE_USAGE))},plan:deletePlan,plannedNotes:()=>[closingNote("\u524A\u9664")],async execute(input,ctx){const plan=deletePlan(input);await assertReportMonthsOpen(ctx,[requireResolved(input,"reportMonth")],requireResolved(input,"reportUserId"),"\u524A\u9664");return ctx.send(plan)},summarize:body=>acknowledgement(body,"\u52E4\u6020\u9023\u7D61\u306E\u524A\u9664"),raw:body=>acknowledgement(
82
+ body,"\u52E4\u6020\u9023\u7D61\u306E\u524A\u9664"),forbidden:"\u52E4\u6020\u9023\u7D61\u306E\u524A\u9664\u306F\u52E4\u6020\u306E\u7BA1\u7406\u8005\u3060\u3051\u304C\u3067\u304D\u307E\u3059\uFF08\u672C\u4EBA\u3067\u3082\u6D88\u305B\u307E\u305B\u3093\uFF09\u3002\u30C6\u30CA\u30F3\u30C8\u306E\u7BA1\u7406\u8005\u306B\u4F9D\u983C\u3057\u3066\u304F\u3060\u3055\u3044"};var reportResource={name:"report",summary:"\u52E4\u6020\u9023\u7D61\uFF08\u9045\u523B\u30FB\u65E9\u9000\u30FB\u6B20\u52E4\u7B49\u306E\u9023\u7D61\u3002\u4E00\u89A7\u30FB\u8A73\u7D30\u30FB\u767B\u9332\u30FB\u5909\u66F4\u30FB\u524A\u9664\u30FB\u533A\u5206\u3068\u7406\u7531\u306E\u4E00\u89A7\uFF09",
83
+ operations:[listOperation,getOperation,createOperation,updateOperation,deleteOperation,reasonsOperation]};var TEAM_MODES=["all","related","project"];function teamMode(input){const raw=input.flags.get("--mode");const mode=raw===void 0?input.flags.has("--project")?"project":"all":raw.trim();if(!TEAM_MODES.includes(mode)){throw new UsageError(`--mode \u306F ${TEAM_MODES.join(" / ")} \u306E\u3069\u308C\u304B\u3067\u3059\uFF08\u53D7\u3051\u53D6\u3063\u305F\u5024: ${raw??""}\uFF09`,TEAM_USAGE)}if(mode===
84
+ "project"&&!input.flags.has("--project")){throw new UsageError("--mode project \u306E\u3068\u304D\u306F --project \u3092\u6307\u5B9A\u3057\u3066\u304F\u3060\u3055\u3044",TEAM_USAGE)}if(mode!=="project"&&input.flags.has("--project")){throw new UsageError(`--project \u306F --mode project \u306E\u3068\u304D\u3060\u3051\u6307\u5B9A\u3067\u304D\u307E\u3059\uFF08--mode ${mode}\uFF09`,TEAM_USAGE)}return mode}function teamBody(body){if(!isRecord(body)||!Array.isArray(body["team_status"])){throw new ApiResponseError(
85
+ "\u30C1\u30FC\u30E0\u306E\u52E4\u6020\u72B6\u6CC1\u306E\u5FDC\u7B54\u306B team_status \u304C\u3042\u308A\u307E\u305B\u3093\u3002\u63A5\u7D9A\u5148\u3092\u78BA\u8A8D\u3057\u3066\u304F\u3060\u3055\u3044\u3002")}return body}function summarizeMember(member){const row=isRecord(member)?member:{};const last=isRecord(row["last_record"])?row["last_record"]:void 0;const notices=Array.isArray(row["notices"])?row["notices"]:[];return pick({user_name:row["user_name"],user_code:row["user_code"],status_label:row["\
86
+ status_label"],last_type:last?.["type_label"]??null,last_recorded_at:last?.["recorded_at"]??null,project:row["current_project_name"],work_location:row["work_location"],notices:notices.map(notice=>isRecord(notice)?notice["label"]:notice).join(" / ")||null,user_id:row["user_id"]},TEAM_COLUMNS)}var teamOperation={name:"team",summary:"\u30C1\u30FC\u30E0\u306E\u3044\u307E\u306E\u6253\u523B\u72B6\u614B\u3068\u3001\u4ECA\u65E5\u306E\u52E4\u6020\u9023\u7D61\u30FB\u4F11\u6687\u3092\u8868\u793A\u3059\u308B",
87
+ usage:TEAM_USAGE,description:"GET /api/v1/attendance/team-dashboard \u3092\u8868\u793A\u3057\u307E\u3059\uFF08\u753B\u9762\u306E\u300C\u30C1\u30FC\u30E0\u306E\u52E4\u6020\u300D\u3068\u540C\u3058\u96C6\u8A08\uFF09\u3002\n--mode all\uFF08\u65E2\u5B9A\uFF09\u306F\u30C6\u30CA\u30F3\u30C8\u306E\u8868\u793A\u5BFE\u8C61\u306E\u5168\u54E1\u3001related \u306F\u81EA\u5206\u3068\u95A2\u4FC2\u306E\u3042\u308B\u4EBA\uFF08\u90E8\u4E0B\u30FB\u540C\u3058\u90E8\u7F72\u306A\u3069\uFF09\u3001\nproject \u306F --project \u306E\u30E1\u30F3\u30D0\u30FC\u3067\u3059\uFF08--project \u3092\u4ED8\u3051\u308C\u3070 --mode \u306F\u7701\u3051\u307E\u3059\uFF09\u3002\nnotices \u306F\u4ECA\u65E5\u306E\u52E4\u6020\u9023\u7D61\u30FB\u6709\u7D66\u30FB\u52E4\u52D9\u5909\u66F4\u30FB\u30B7\u30D5\u30C8\u3067\u3059\u3002\u4ECA\u65E5\u306E\u65E5\u4ED8\u3068\u3001\u4ECA\u65E5\u306E\u52E4\u6020\u9023\u7D61\u30FB\u4F11\u8077\u4E2D\u306E\u4EBA\u6570\u306F stderr \u306B\u51FA\u3057\u307E\u3059\u3002\n--output json \u306F API \u304C\u8FD4\u3059\u5168\u30D5\u30A3\u30FC\u30EB\u30C9\uFF08attendance_reports\u30FBleaves_of_absence \u3092\u542B\u3080\uFF09\u3092\u51FA\u3057\u307E\u3059\u3002",
88
+ flags:[{name:"--mode",summary:"\u5BFE\u8C61\u306E\u7BC4\u56F2\uFF08all / related / project\uFF09",takesValue:true,placeholder:"<all|related|project>"},{name:"--project",summary:"\u5BFE\u8C61\u306E\u30D7\u30ED\u30B8\u30A7\u30AF\u30C8\uFF08\u30B3\u30FC\u30C9\u304B ID\u30FB--mode project\uFF09",takesValue:true,placeholder:"<\u30B3\u30FC\u30C9|ID>"}],async prepare(input,ctx){noArgs(input,"team",TEAM_USAGE);teamMode(input);const explicit=input.flags.get("--project");if(explicit===void 0)return input;
89
+ return withResolved(input,{projectId:await ctx.projectId(explicit)})},plan(input){const mode=teamMode(input);return{method:"GET",path:"/api/v1/attendance/team-dashboard",query:{mode,project_id:mode==="project"?requireResolved(input,"projectId"):void 0}}},summarize:body=>teamBody(body)["team_status"].map(summarizeMember),raw:teamBody,notes:body=>{const sheet=teamBody(body);const reports=Array.isArray(sheet["attendance_reports"])?sheet["attendance_reports"].length:0;const leaves=Array.isArray(sheet["\
90
+ leaves_of_absence"])?sheet["leaves_of_absence"].length:0;return[`${String(sheet["date"])} \u6642\u70B9: ${String(sheet["team_status"].length)} \u4EBA / \u4ECA\u65E5\u306E\u52E4\u6020\u9023\u7D61 ${String(reports)} \u4EF6 / \u4F11\u8077\u4E2D ${String(leaves)} \u4EBA`]}};function flexBody(body){if(!isRecord(body)||typeof body["is_flex"]!=="boolean"||body["is_flex"]&&!isRecord(body["flex_settlement"])){throw new ApiResponseError("\u30D5\u30EC\u30C3\u30AF\u30B9\u7CBE\u7B97\u306E\u5FDC\u7B54\u306B is_flex / flex_settlement \u304C\u3042\u308A\u307E\u305B\u3093\u3002\u63A5\u7D9A\u5148\u3092\u78BA\u8A8D\u3057\u3066\u304F\u3060\u3055\u3044\u3002")}
91
+ return body}var flexSettlementOperation={name:"flex-settlement",summary:"\u30D5\u30EC\u30C3\u30AF\u30B9\u7CBE\u7B97\uFF08\u6E05\u7B97\u671F\u9593\u306E\u6240\u5B9A\u30FB\u5B9F\u52B4\u50CD\u30FB\u904E\u4E0D\u8DB3\uFF09\u3092\u8868\u793A\u3059\u308B",usage:FLEX_USAGE,description:`GET /api/v2/attendance/flex-settlement \u3092\u8868\u793A\u3057\u307E\u3059\uFF08\u6700\u65B0\u306E\u6253\u523B\u304B\u3089\u8A08\u7B97\u3057\u76F4\u3057\u305F\u5024\uFF09\u3002
92
+ --month \u304C\u7121\u3051\u308C\u3070\u4ECA\u6708\u3067\u3059\uFF08\u30C6\u30CA\u30F3\u30C8\u306E\u696D\u52D9\u65E5\u306E\u533A\u5207\u308A\u3067\u30B5\u30FC\u30D0\u304C\u6C7A\u3081\u307E\u3059\uFF09\u3002--user \u3092\u7701\u304F\u3068\u81EA\u5206\u306E\u5206\u3067\u3059\u3002
93
+ \u4ED6\u306E\u4EBA\u306E\u5206\u306F\u3001\u52E4\u6020\u306E\u7BA1\u7406\u8005\u304B\u305D\u306E\u4EBA\u306E\u4E0A\u9577\u3060\u3051\u304C\u898B\u3089\u308C\u307E\u3059\uFF08\u7121\u3051\u308C\u3070\u7D42\u4E86\u30B3\u30FC\u30C9 3\uFF09\u3002
94
+ ${USER_REF_HELP}
95
+ \u30D5\u30EC\u30C3\u30AF\u30B9\u52E4\u52D9\u5236\u3067\u306A\u3044\u4EBA\u306F is_flex=false \u3092\u8FD4\u3057\u307E\u3059\uFF08\u30A8\u30E9\u30FC\u306B\u306F\u3057\u307E\u305B\u3093\uFF09\u3002
96
+ --output json \u306F API \u304C\u8FD4\u3059\u5168\u30D5\u30A3\u30FC\u30EB\u30C9\uFF08\u6708\u5225\u306E\u5185\u8A33 monthly_data\u30FBmonthly_adjusted_data \u3092\u542B\u3080\uFF09\u3092\u51FA\u3057\u307E\u3059\u3002`,flags:[MONTH_FLAG,USER_FLAG],async prepare(input,ctx){noArgs(input,"flex-settlement",FLEX_USAGE);monthFlag(input.flags);return withResolved(input,await resolveUserFlag(input,ctx))},plan:input=>({method:"GET",path:"/api/v2/attendance/flex-settlement",query:{year_month:monthFlag(input.
97
+ flags),user_id:input.resolved?.["userId"]}}),summarize:body=>{const sheet=flexBody(body);if(!sheet["is_flex"])return{is_flex:false,message:sheet["message"]??null};return{is_flex:true,...pick(sheet["flex_settlement"],FLEX_COLUMNS)}},raw:flexBody,notes:body=>flexBody(body)["is_flex"]?[]:[`${String(flexBody(body)["message"]??"\u30D5\u30EC\u30C3\u30AF\u30B9\u52E4\u52D9\u5236\u3067\u306F\u3042\u308A\u307E\u305B\u3093\u3002")}`]};var STATUS_USAGE="twp attendance status";var LIST_USAGE="twp attendance list [--month <YYYY-MM> | --date <YYYY-MM-DD>]";var TIMESHEET_USAGE="twp attendance timesheet [--month <YYYY-MM>]";var PUNCH_USAGE="twp attendance punch <clock-in|clock-out|break-start|break-end|switch> [--project <\u30B3\u30FC\u30C9|ID>] [--task <\u30BF\u30B9\u30AFID>] [--memo <\u30E1\u30E2>]";var PUNCH_TYPES={"clock-in":"clock_in","clock-out":"clock_out","break-start":"break_start","break-end":"break_end",switch:"switch"};
98
+ var UUID_PATTERN=/^[0-9a-f]{8}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{12}$/i;var MEMO_MAX=500;var PUNCH_COLUMNS=["id","type","type_label","recorded_at","year_month","project_id","task_id","memo"];var RECORD_COLUMNS=["recorded_at","type","type_label","work_location","is_manual","project_id","task_id","memo","id"];var DAY_COLUMNS=["date","clock_in","clock_out","work","break","overtime","late","early_leave","holiday","memo"];function noArgs2(input,operation){if(input.args.length>0){throw new UsageError(
99
+ `${operation} \u306F\u4F4D\u7F6E\u5F15\u6570\u3092\u53D7\u3051\u53D6\u308A\u307E\u305B\u3093: ${input.args.join(" ")}`,`twp attendance ${operation} help`)}}function hoursMinutes(value){if(typeof value!=="number"||!Number.isFinite(value))return value;const sign=value<0?"-":"";const abs=Math.round(Math.abs(value));return`${sign}${Math.floor(abs/60)}:${String(abs%60).padStart(2,"0")}`}function currentBody(body){if(!isRecord(body)||typeof body["status"]!=="string"||!Array.isArray(body["today_records"])){
100
+ throw new ApiResponseError("\u6253\u523B\u72B6\u614B\u306E\u5FDC\u7B54\u306B status / today_records \u304C\u3042\u308A\u307E\u305B\u3093\u3002\u63A5\u7D9A\u5148\u3092\u78BA\u8A8D\u3057\u3066\u304F\u3060\u3055\u3044\u3002")}return body}function summarizeCurrent(body){const current=currentBody(body);const last=isRecord(current["last_record"])?current["last_record"]:void 0;const actions=Array.isArray(current["available_actions"])?current["available_actions"]:[];return{status:current["status"],status_label:current["\
101
+ status_label"],last_type:last?.["type_label"]??null,last_recorded_at:last?.["recorded_at"]??null,today_records:current["today_records"].length,available_actions:actions.join(" / ")}}function records(body){if(!isRecord(body)||!Array.isArray(body["records"])){throw new ApiResponseError("\u6253\u523B\u5C65\u6B74\u306E\u5FDC\u7B54\u306B records \u304C\u3042\u308A\u307E\u305B\u3093\u3002\u63A5\u7D9A\u5148\u3092\u78BA\u8A8D\u3057\u3066\u304F\u3060\u3055\u3044\u3002")}return body["records"]}function timesheetBody(body){
102
+ if(!isRecord(body)||!Array.isArray(body["days"])||!isRecord(body["summary"])){throw new ApiResponseError("\u52E4\u6020\u8868\u306E\u5FDC\u7B54\u306B days / summary \u304C\u3042\u308A\u307E\u305B\u3093\u3002\u63A5\u7D9A\u5148\u3092\u78BA\u8A8D\u3057\u3066\u304F\u3060\u3055\u3044\u3002")}return body}function summarizeDay(day){const row=isRecord(day)?day:{};return pick({date:row["date"],clock_in:row["clock_in"],clock_out:row["clock_out"],work:hoursMinutes(row["work_minutes"]),break:hoursMinutes(row["\
103
+ break_minutes"]),overtime:hoursMinutes(row["overtime_minutes"]),late:hoursMinutes(row["late_minutes"]),early_leave:hoursMinutes(row["early_leave_minutes"]),holiday:row["holiday_name"]??(row["is_non_business_day"]===true?"\u4F11\u65E5":null),memo:row["memo"]},DAY_COLUMNS)}function timesheetNotes(body){const sheet=timesheetBody(body);const summary=sheet["summary"];const notes=[`${String(sheet["year_month"])} \u306E\u5408\u8A08: \u51FA\u52E4 ${String(summary["work_days"])} \u65E5 / \u52B4\u50CD ${String(
104
+ hoursMinutes(summary["total_work_minutes"]))} / \u6B8B\u696D ${String(hoursMinutes(summary["total_overtime_minutes"]))} / \u6709\u7D66 ${String(summary["paid_leave_days"])} \u65E5\uFF08\u5168\u9805\u76EE\u306F --output json \u306E summary\uFF09`];if(sheet["is_closed"]===true){const at=typeof sheet["closed_at"]==="string"?`\uFF08${sheet["closed_at"]}\uFF09`:"";notes.push(`\u3053\u306E\u6708\u306F\u7DE0\u3081\u6E08\u307F\u3067\u3059${at}\u3002\u8868\u793A\u306F\u7DE0\u3081\u305F\u6642\u70B9\u306E\u96C6\u8A08\u3067\u3059\u3002`)}
105
+ return notes}function punchType(input){const[kind,...rest]=input.args;if(kind===void 0){throw new UsageError(`\u6253\u523B\u306E\u7A2E\u985E\u3092\u6307\u5B9A\u3057\u3066\u304F\u3060\u3055\u3044\uFF08${Object.keys(PUNCH_TYPES).join(" / ")}\uFF09`,PUNCH_USAGE)}if(rest.length>0){throw new UsageError(`\u6253\u523B\u306E\u7A2E\u985E\u306F1\u3064\u3060\u3051\u6307\u5B9A\u3067\u304D\u307E\u3059: ${rest.join(" ")}`,PUNCH_USAGE)}const type=PUNCH_TYPES[kind];if(type===void 0){throw new UsageError(`\u6253\u523B\u306E\u7A2E\u985E\u304C\
106
+ \u9055\u3044\u307E\u3059: ${kind}\uFF08${Object.keys(PUNCH_TYPES).join(" / ")} \u306E\u3069\u308C\u304B\uFF09`,PUNCH_USAGE)}return type}function punchBody(input){const body={type:punchType(input)};if(input.flags.has("--project"))body["project_id"]=requireResolved(input,"projectId");const task=input.flags.get("--task");if(task!==void 0){if(!UUID_PATTERN.test(task.trim())){throw new UsageError(`--task \u306F\u30BF\u30B9\u30AF\u306E ID\uFF08UUID\uFF09\u3067\u6307\u5B9A\u3057\u3066\u304F\u3060\u3055\u3044\uFF08\u53D7\u3051\u53D6\u3063\u305F\u5024: ${task}\
107
+ \uFF09`,"ID \u306F twp task get <\u30AD\u30FC> --query id \u3067\u5206\u304B\u308A\u307E\u3059")}body["task_id"]=task.trim()}const memo=input.flags.get("--memo");if(memo!==void 0){if([...memo].length>MEMO_MAX){throw new UsageError(`--memo \u306F ${MEMO_MAX} \u6587\u5B57\u4EE5\u5185\u3067\u6307\u5B9A\u3057\u3066\u304F\u3060\u3055\u3044\uFF08${[...memo].length} \u6587\u5B57\uFF09`,PUNCH_USAGE)}body["memo"]=memo}return body}function punchPlan(input){return{method:"POST",path:"/api/v1/attendance/pun\
108
+ ch",body:punchBody(input)}}async function assertMonthOpen(ctx,month,action,reason){const sheet=timesheetBody(await ctx.send(month===void 0?{method:"GET",path:"/api/v1/attendance/timesheet"}:{method:"GET",path:"/api/v1/attendance/timesheet",query:{year_month:month}}));if(sheet["is_closed"]===true){const at=typeof sheet["closed_at"]==="string"?`\uFF08${sheet["closed_at"]} \u306B\u7DE0\u3081\uFF09`:"";throw new ApiRejectedError(`${month??String(sheet["year_month"])} \u306F\u7DE0\u3081\u6E08\u307F\u306E\u305F\u3081${action}\
109
+ \u3092\u9001\u308A\u307E\u305B\u3093\u3067\u3057\u305F${at}\u3002${reason}\u7DE0\u3081\u306E\u89E3\u9664\u306F\u52E4\u6020\u306E\u7BA1\u7406\u8005\u306B\u4F9D\u983C\u3057\u3066\u304F\u3060\u3055\u3044\u3002`)}}async function assertCurrentMonthOpen(ctx){await assertMonthOpen(ctx,void 0,"\u6253\u523B","\u30B5\u30FC\u30D0\u306F\u7DE0\u3081\u6E08\u307F\u306E\u6708\u3078\u306E\u6253\u523B\u3092\u62D2\u5426\u305B\u305A\u7DE0\u3081\u306E\u96C6\u8A08\u3092\u6D17\u3044\u66FF\u3048\u308B\u306E\u3067\u3001CLI \u304C\u9001\u308B\u524D\u306B\u6B62\u3081\u3066\u3044\u307E\u3059\u3002")}
110
+ async function assertMonthsOpen(ctx,months,action){for(const month of[...new Set(months)]){await assertMonthOpen(ctx,month,action,"\u7DE0\u3081\u305F\u6708\u3078\u4F11\u6687\u3092\u8DB3\u3059\u3068\u78BA\u5B9A\u3057\u305F\u96C6\u8A08\u3068\u98DF\u3044\u9055\u3046\u306E\u3067\u3001CLI \u304C\u9001\u308B\u524D\u306B\u6B62\u3081\u3066\u3044\u307E\u3059\u3002")}}async function punch(input,ctx){const plan=punchPlan(input);await assertCurrentMonthOpen(ctx);return ctx.send(plan)}function punchRecord(body){
111
+ const record=isRecord(body)?body["record"]:void 0;if(!isRecord(record)||typeof record["type"]!=="string"){throw new ApiResponseError("\u6253\u523B\u306E\u5FDC\u7B54\u306B\u6253\u523B\u8A18\u9332\uFF08type\uFF09\u304C\u3042\u308A\u307E\u305B\u3093\u3002\u63A5\u7D9A\u5148\u3092\u78BA\u8A8D\u3057\u3066\u304F\u3060\u3055\u3044\u3002")}return record}var OVERTIME_USAGE="twp attendance overtime [--month <YYYY-MM>] [--agreement36]";var CLOSINGS_LIST_USAGE="twp attendance closings list [--month <YYYY-MM>\
112
+ ] [--include-hidden]";var FORBIDDEN_ADMIN="\u52E4\u6020\u306E\u7BA1\u7406\u8005\u6A29\u9650\uFF08\u52E4\u6020: \u7BA1\u7406\u8005\uFF09\u304C\u5FC5\u8981\u3067\u3059\u3002\u30C6\u30CA\u30F3\u30C8\u306E\u7BA1\u7406\u8005\u306B\u6A29\u9650\u306E\u4ED8\u4E0E\u3092\u4F9D\u983C\u3057\u3066\u304F\u3060\u3055\u3044";var OVERTIME_SCOPE_NOTE="\u5BFE\u8C61\u306F\u3001\u3053\u306E\u6708\u306E\u7DE0\u3081\u30EC\u30B3\u30FC\u30C9\u304C\u3042\u308A\u3001\u8868\u793A\u5BFE\u8C61\u3067\u3001\u6709\u52B9\u306A\u5951\u7D04\u304C\u3042\u308B\u4EBA\u3060\u3051\u3067\u3059\uFF08\u8F09\u3063\u3066\u3044\u306A\u3044\u4EBA\u306F\u6B8B\u696D0\u3068\u3044\u3046\u610F\u5473\u3067\u306F\u3042\u308A\u307E\u305B\u3093\uFF09\u3002";
113
+ var MONTH_FLAG2={name:"--month",summary:"\u5BFE\u8C61\u306E\u5E74\u6708\uFF08YYYY-MM\uFF09",takesValue:true,placeholder:"<YYYY-MM>"};var OVERTIME_COLUMNS=["user_name","contract_type_name","overtime","legal_overtime","night_work","holiday_work","total_work","total_work_days","is_overtime_exempt","user_id"];var AGREEMENT36_COLUMNS=["user_name","alert_level","monthly_legal_overtime","monthly_percent","annual_legal_overtime","annual_percent","contract_type_name","user_id"];var CLOSING_COLUMNS=["user\
114
+ _name","closed_at","closed_by","logic_version","user_id","id"];function isAgreement36(input){return input.flags.has("--agreement36")}function overtimeBody(body,label){if(!isRecord(body)||!Array.isArray(body["users"])){throw new ApiResponseError(`${label}\u306E\u5FDC\u7B54\u306B users \u304C\u3042\u308A\u307E\u305B\u3093\u3002\u63A5\u7D9A\u5148\u3092\u78BA\u8A8D\u3057\u3066\u304F\u3060\u3055\u3044\u3002`)}return body}function isAgreement36Body(body){return isRecord(body)&&isRecord(body["limits"])}
115
+ function summarizeOvertimeUser(user){const row=isRecord(user)?user:{};return pick({user_name:row["user_name"],contract_type_name:row["contract_type_name"],overtime:hoursMinutes(row["overtime_minutes"]),legal_overtime:hoursMinutes(row["legal_overtime_minutes"]),night_work:hoursMinutes(row["night_work_minutes"]),holiday_work:hoursMinutes(row["holiday_work_minutes"]),total_work:hoursMinutes(row["total_work_minutes"]),total_work_days:row["total_work_days"],is_overtime_exempt:row["is_overtime_exempt"],
116
+ user_id:row["user_id"]},OVERTIME_COLUMNS)}function summarizeAgreement36User(user){const row=isRecord(user)?user:{};return pick({user_name:row["user_name"],alert_level:row["alert_level"],monthly_legal_overtime:hoursMinutes(row["monthly_legal_overtime_minutes"]),monthly_percent:row["monthly_percent"],annual_legal_overtime:hoursMinutes(row["annual_legal_overtime_minutes"]),annual_percent:row["annual_percent"],contract_type_name:row["contract_type_name"],user_id:row["user_id"]},AGREEMENT36_COLUMNS)}
117
+ function summarizeOvertime(body){if(isAgreement36Body(body)){return overtimeBody(body,"36\u5354\u5B9A\u30C0\u30C3\u30B7\u30E5\u30DC\u30FC\u30C9")["users"].map(summarizeAgreement36User)}return overtimeBody(body,"\u6B8B\u696D\u30B5\u30DE\u30EA")["users"].map(summarizeOvertimeUser)}function overtimeNotes(body){if(isAgreement36Body(body)){const sheet2=overtimeBody(body,"36\u5354\u5B9A\u30C0\u30C3\u30B7\u30E5\u30DC\u30FC\u30C9");const limits=sheet2["limits"];const summary=isRecord(sheet2["summary"])?
118
+ sheet2["summary"]:{};const counts=isRecord(summary["alert_counts"])?summary["alert_counts"]:{};const countText=Object.entries(counts).map(([level,n])=>`${level} ${String(n)}`).join(" / ");return[`${String(sheet2["year_month"])}\uFF08\u5E74\u5EA6\u958B\u59CB ${String(sheet2["fiscal_year_start"])}\uFF09\u306E36\u5354\u5B9A: \u5BFE\u8C61 ${String(summary["total_users"])} \u4EBA`+(countText===""?"":` / ${countText}`),`\u4E0A\u9650: \u6708 ${String(hoursMinutes(limits["monthly_general_minutes"]))}\uFF08\u7279\u5225\
119
+ \u6761\u9805 ${String(hoursMinutes(limits["monthly_special_minutes"]))}\uFF09 / \u5E74 ${String(hoursMinutes(limits["annual_general_minutes"]))}\uFF08\u7279\u5225\u6761\u9805 ${String(hoursMinutes(limits["annual_special_minutes"]))}\uFF09\uFF08\u5168\u9805\u76EE\u306F --output json\uFF09`,OVERTIME_SCOPE_NOTE]}const sheet=overtimeBody(body,"\u6B8B\u696D\u30B5\u30DE\u30EA");const total=isRecord(sheet["total"])?sheet["total"]:{};return[`${String(sheet["year_month"])} \u306E\u5408\u8A08\uFF08${String(
120
+ total["user_count"])} \u4EBA\uFF09: \u6B8B\u696D ${String(hoursMinutes(total["overtime_minutes"]))} / \u6CD5\u5B9A\u5916\u6B8B\u696D ${String(hoursMinutes(total["legal_overtime_minutes"]))} / \u6DF1\u591C ${String(hoursMinutes(total["night_work_minutes"]))} / \u4F11\u65E5 ${String(hoursMinutes(total["holiday_work_minutes"]))}\uFF08\u5168\u9805\u76EE\u306F --output json \u306E total\uFF09`,OVERTIME_SCOPE_NOTE]}function closingsBody(body){if(!isRecord(body)||!Array.isArray(body["closings"])){throw new ApiResponseError(
121
+ "\u7DE0\u3081\u72B6\u6CC1\u306E\u5FDC\u7B54\u306B closings \u304C\u3042\u308A\u307E\u305B\u3093\u3002\u63A5\u7D9A\u5148\u3092\u78BA\u8A8D\u3057\u3066\u304F\u3060\u3055\u3044\u3002")}return body}function closingsNotes(body){const sheet=closingsBody(body);const count=sheet["closings"].length;return[`${String(sheet["year_month"])} \u306B\u7DE0\u3081\u6E08\u307F\u306E\u4EBA: ${String(count)} \u4EBA\uFF08\u7DE0\u3081\u3066\u3044\u306A\u3044\u4EBA\u306F\u4E00\u89A7\u306B\u51FA\u307E\u305B\u3093\uFF09`]}
122
+ var overtimeOperation={name:"overtime",summary:"\u6708\u306E\u6B8B\u696D\u30B5\u30DE\u30EA\uFF08\u793E\u54E1\u5225\uFF09\u3092\u8868\u793A\u3059\u308B\u3002--agreement36 \u306736\u5354\u5B9A\u306E\u4E0A\u9650\u306B\u5BFE\u3059\u308B\u72B6\u6CC1\uFF08\u7BA1\u7406\u8005\uFF09",usage:OVERTIME_USAGE,description:"GET /api/v1/attendance/overtime \u3092\u8868\u793A\u3057\u307E\u3059\u3002--agreement36 \u3092\u4ED8\u3051\u308B\u3068 GET /api/v1/attendance/overtime/agreement36\n\uFF0836\u5354\u5B9A\u306E\u6708\u30FB\u5E74\u306E\u6CD5\u5B9A\u5916\u6B8B\u696D\u3068\u4E0A\u9650\u306B\u5BFE\u3059\u308B\u5272\u5408\u30FB\u8B66\u544A\u30EC\u30D9\u30EB\uFF09\u3092\u8868\u793A\u3057\u307E\u3059\u3002\n\u52E4\u6020\u306E\u7BA1\u7406\u8005\u6A29\u9650\u304C\u5FC5\u8981\u3067\u3059\uFF08\u7121\u3051\u308C\u3070\u7D42\u4E86\u30B3\u30FC\u30C9 3\uFF09\u3002\n--month \u304C\u7121\u3051\u308C\u3070\u4ECA\u6708\u3067\u3059\uFF08\u30C6\u30CA\
123
+ \u30F3\u30C8\u306E\u696D\u52D9\u65E5\u306E\u533A\u5207\u308A\u3067\u30B5\u30FC\u30D0\u304C\u6C7A\u3081\u307E\u3059\uFF09\u3002\u4ECA\u6708\u306F\u30EA\u30A2\u30EB\u30BF\u30A4\u30E0\u306E\u96C6\u8A08\u3001\u904E\u53BB\u306E\u6708\u306F\u7DE0\u3081\u305F\u6642\u70B9\u306E\u96C6\u8A08\u3067\u3059\u3002\n\u4E26\u3076\u306E\u306F\u3001\u305D\u306E\u6708\u306E\u7DE0\u3081\u30EC\u30B3\u30FC\u30C9\u304C\u3042\u308A\u3001\u8868\u793A\u5BFE\u8C61\u3067\u3001\u305D\u306E\u6708\u306B\u6709\u52B9\u306A\u5951\u7D04\u304C\u3042\u308B\u4EBA\u3060\u3051\u3067\u3059\uFF08\u8F09\u3063\u3066\u3044\u306A\u3044\u4EBA\u306F\u300C\u6B8B\u696D0\u300D\u3067\u306F\u3042\u308A\u307E\u305B\u3093\uFF09\u3002\n--output table / text / tsv \u306F\u793E\u54E1\u5225\u306E\u8981\u7D04\u5217\uFF08\u6642\u9593\u306F H:MM\uFF09\u3067\u3001\u5408\u8A08\u30FB\u4E0A\u9650\u306F stderr \u306B\u51FA\u3057\u307E\u3059\u3002\n--output json \u306F API \u304C\u8FD4\u3059\u5168\u30D5\u30A3\u30FC\u30EB\u30C9\u3092\u51FA\u3057\u307E\u3059\u3002",
124
+ flags:[MONTH_FLAG2,{name:"--agreement36",summary:"36\u5354\u5B9A\u306E\u4E0A\u9650\u306B\u5BFE\u3059\u308B\u72B6\u6CC1\u3092\u8868\u793A\u3059\u308B",takesValue:false}],plan(input){noArgs2(input,"overtime");const path=isAgreement36(input)?"/api/v1/attendance/overtime/agreement36":"/api/v1/attendance/overtime";return{method:"GET",path,query:{year_month:monthFlag(input.flags)}}},summarize:summarizeOvertime,raw:body=>overtimeBody(body,isAgreement36Body(body)?"36\u5354\u5B9A\u30C0\u30C3\u30B7\u30E5\u30DC\u30FC\u30C9":
125
+ "\u6B8B\u696D\u30B5\u30DE\u30EA"),notes:overtimeNotes,forbidden:FORBIDDEN_ADMIN};var closingsListOperation={name:"list",summary:"\u6708\u306E\u7DE0\u3081\u72B6\u6CC1\uFF08\u7DE0\u3081\u6E08\u307F\u306E\u4EBA\u306E\u4E00\u89A7\uFF09\u3092\u8868\u793A\u3059\u308B\uFF08\u7BA1\u7406\u8005\uFF09",usage:CLOSINGS_LIST_USAGE,description:"GET /api/v1/attendance/closings \u3092\u8868\u793A\u3057\u307E\u3059\u3002\u52E4\u6020\u306E\u7BA1\u7406\u8005\u6A29\u9650\u304C\u5FC5\u8981\u3067\u3059\uFF08\u7121\u3051\u308C\u3070\u7D42\u4E86\u30B3\u30FC\u30C9 3\uFF09\u3002\n\u4E26\u3076\u306E\u306F\u7DE0\u3081\u6E08\u307F\u306E\u4EBA\u3060\u3051\u3067\u3059\uFF08\u7DE0\u3081\u3066\u3044\u306A\u3044\u4EBA\u306F\u51FA\u307E\u305B\u3093\uFF09\u3002\u4EBA\u6570\u306F stderr \u306B\u51FA\u3057\u307E\u3059\u3002\n--month \u304C\u7121\u3051\u308C\u3070\u4ECA\u6708\u3067\u3059\uFF08\u30C6\u30CA\u30F3\u30C8\u306E\u696D\u52D9\u65E5\u306E\u533A\u5207\u308A\u3067\u30B5\u30FC\u30D0\u304C\u6C7A\u3081\u307E\u3059\uFF09\u3002\n--include-hi\
126
+ dden \u3092\u4ED8\u3051\u308B\u3068\u3001\u7121\u52B9\u5316\u6E08\u307F\u306E\u30E6\u30FC\u30B6\u30FC\u306E\u7DE0\u3081\u3082\u542B\u3081\u307E\u3059\u3002\n\u7DE0\u3081\u306E\u5B9F\u884C\u30FB\u89E3\u9664\u306F\u3067\u304D\u307E\u305B\u3093\uFF08\u7D66\u4E0E\u306E\u78BA\u5B9A\u306B\u52B9\u304F\u305F\u3081\u3001\u753B\u9762\u304B\u3089\u884C\u3063\u3066\u304F\u3060\u3055\u3044\uFF09\u3002\n--output json \u306F API \u304C\u8FD4\u3059\u5168\u30D5\u30A3\u30FC\u30EB\u30C9\u3092\u51FA\u3057\u307E\u3059\u3002",
127
+ flags:[MONTH_FLAG2,{name:"--include-hidden",summary:"\u7121\u52B9\u5316\u6E08\u307F\u306E\u30E6\u30FC\u30B6\u30FC\u306E\u7DE0\u3081\u3082\u542B\u3081\u308B",takesValue:false}],plan(input){noArgs2(input,"closings list");return{method:"GET",path:"/api/v1/attendance/closings",query:{year_month:monthFlag(input.flags),include_hidden:input.flags.has("--include-hidden")?"true":void 0}}},summarize:body=>closingsBody(body)["closings"].map(row=>pick(row,CLOSING_COLUMNS)),raw:body=>closingsBody(body),notes:closingsNotes,
128
+ forbidden:FORBIDDEN_ADMIN};var closingsResource={name:"closings",summary:"\u52E4\u6020\u306E\u7DE0\u3081\u72B6\u6CC1\uFF08\u4E00\u89A7\u306E\u307F\u30FB\u7BA1\u7406\u8005\uFF09",operations:[closingsListOperation]};var attendanceDomain={name:"attendance",summary:"\u52E4\u6020\uFF08\u81EA\u5206\u306E\u6253\u523B\u72B6\u614B\u30FB\u6253\u523B\u5C65\u6B74\u30FB\u52E4\u6020\u8868\u30FB\u6253\u523B\u30FB\u52E4\u6020\u9023\u7D61\u30FB\u30C1\u30FC\u30E0\u306E\u52E4\u6020\u30FB\u30D5\u30EC\u30C3\u30AF\u30B9\u7CBE\u7B97\uFF0F\u7BA1\u7406\u8005\u5411\u3051\u306E\u6B8B\u696D\u30B5\u30DE\u30EA\u30FB\u7DE0\u3081\u72B6\u6CC1\uFF09",
129
+ operations:[{name:"status",summary:"\u3044\u307E\u306E\u6253\u523B\u72B6\u614B\u3068\u3001\u6B21\u306B\u6253\u3066\u308B\u6253\u523B\u3092\u8868\u793A\u3059\u308B",usage:STATUS_USAGE,description:"GET /api/v1/attendance/current \u3092\u8868\u793A\u3057\u307E\u3059\uFF08\u30ED\u30B0\u30A4\u30F3\u3057\u3066\u3044\u308B\u672C\u4EBA\u306E\u5206\uFF09\u3002\navailable_actions \u306F\u3001\u3044\u307E\u306E\u72B6\u614B\u304B\u3089\u6253\u3066\u308B\u6253\u523B\u306E\u7A2E\u985E\u3067\u3059\uFF08clock_in / clock_out / break_start / break_end / switch\uFF09\u3002\n--output json \u306F API \u304C\u8FD4\u3059\u5168\u30D5\u30A3\u30FC\u30EB\u30C9\uFF08\u4ECA\u65E5\u306E\u6253\u523B\u306E\u4E00\u89A7 today_records \u3092\u542B\u3080\uFF09\u3092\u51FA\u3057\u307E\u3059\u3002",
130
+ flags:[],plan(input){noArgs2(input,"status");return{method:"GET",path:"/api/v1/attendance/current"}},summarize:summarizeCurrent,raw:body=>currentBody(body)},{name:"list",summary:"\u6253\u523B\u306E\u5C65\u6B74\u3092\u4E00\u89A7\u3059\u308B\uFF08\u65B0\u3057\u3044\u9806\uFF09",usage:LIST_USAGE,description:`GET /api/v1/attendance/records \u3092\u8868\u793A\u3057\u307E\u3059\uFF08\u30ED\u30B0\u30A4\u30F3\u3057\u3066\u3044\u308B\u672C\u4EBA\u306E\u5206\u30FB\u65B0\u3057\u3044\u9806\uFF09\u3002
131
+ --month \u3068 --date \u306F\u3069\u3061\u3089\u304B\u4E00\u65B9\u3060\u3051\u6307\u5B9A\u3067\u304D\u307E\u3059\u3002\u3069\u3061\u3089\u3082\u7121\u3051\u308C\u3070\u4ECA\u6708\u3067\u3059
132
+ \uFF08\u300C\u4ECA\u6708\u300D\u306F\u30C6\u30CA\u30F3\u30C8\u306E\u696D\u52D9\u65E5\u306E\u533A\u5207\u308A\u3067\u30B5\u30FC\u30D0\u304C\u6C7A\u3081\u307E\u3059\uFF09\u3002
133
+ --output json \u306F API \u304C\u8FD4\u3059\u5168\u30D5\u30A3\u30FC\u30EB\u30C9\u3092\u51FA\u3057\u307E\u3059\u3002
134
+ --output table / text / tsv \u306F\u8981\u7D04\u5217\uFF08${RECORD_COLUMNS.join(" / ")}\uFF09\u3067\u3059\u3002`,flags:[{name:"--month",summary:"\u5BFE\u8C61\u306E\u5E74\u6708\uFF08YYYY-MM\uFF09",takesValue:true,placeholder:"<YYYY-MM>"},{name:"--date",summary:"\u5BFE\u8C61\u306E\u65E5\u4ED8\uFF08YYYY-MM-DD\uFF09",takesValue:true,placeholder:"<YYYY-MM-DD>"}],plan(input){noArgs2(input,"list");const month=monthFlag(input.flags);const date=dateFlag(input.flags);if(month!==void 0&&date!==void 0){throw new UsageError(
135
+ "--month \u3068 --date \u306F\u540C\u6642\u306B\u6307\u5B9A\u3067\u304D\u307E\u305B\u3093",LIST_USAGE)}return{method:"GET",path:"/api/v1/attendance/records",query:{year_month:month,date}}},summarize:body=>records(body).map(row=>pick(row,RECORD_COLUMNS)),raw:body=>records(body)},{name:"timesheet",summary:"\u6708\u306E\u52E4\u6020\u8868\uFF08\u65E5\u5225\u306E\u51FA\u9000\u52E4\u30FB\u52B4\u50CD\u30FB\u6B8B\u696D\u3068\u6708\u306E\u5408\u8A08\uFF09\u3092\u8868\u793A\u3059\u308B",usage:TIMESHEET_USAGE,
136
+ description:"GET /api/v1/attendance/timesheet \u3092\u8868\u793A\u3057\u307E\u3059\uFF08\u30ED\u30B0\u30A4\u30F3\u3057\u3066\u3044\u308B\u672C\u4EBA\u306E\u5206\uFF09\u3002\n--month \u304C\u7121\u3051\u308C\u3070\u4ECA\u6708\u3067\u3059\uFF08\u30C6\u30CA\u30F3\u30C8\u306E\u696D\u52D9\u65E5\u306E\u533A\u5207\u308A\u3067\u30B5\u30FC\u30D0\u304C\u6C7A\u3081\u307E\u3059\uFF09\u3002\n--output table / text / tsv \u306F\u65E5\u5225\u306E\u8981\u7D04\u5217\uFF08\u6642\u9593\u306F H:MM\uFF09\u3067\u3001\u6708\u306E\u5408\u8A08\u306F stderr \u306B\u51FA\u3057\u307E\u3059\u3002\n\u7DE0\u3081\u6E08\u307F\u306E\u6708\u306F\u3001\u7DE0\u3081\u305F\u6642\u70B9\u306E\u96C6\u8A08\u3067\u3042\u308B\u3053\u3068\u3092 stderr \u3067\u77E5\u3089\u305B\u307E\u3059\u3002\n--output json \u306F API \u304C\u8FD4\u3059\u5168\u30D5\u30A3\u30FC\u30EB\u30C9\uFF08summary\u30FBis_closed \u3092\u542B\u3080\uFF09\u3092\u51FA\u3057\u307E\u3059\u3002",
137
+ flags:[{name:"--month",summary:"\u5BFE\u8C61\u306E\u5E74\u6708\uFF08YYYY-MM\uFF09",takesValue:true,placeholder:"<YYYY-MM>"}],plan(input){noArgs2(input,"timesheet");return{method:"GET",path:"/api/v1/attendance/timesheet",query:{year_month:monthFlag(input.flags)}}},summarize:body=>timesheetBody(body)["days"].map(summarizeDay),raw:body=>timesheetBody(body),notes:timesheetNotes},{name:"punch",summary:"\u6253\u523B\u3059\u308B\uFF08\u51FA\u52E4\u30FB\u9000\u52E4\u30FB\u4F11\u61A9\u958B\u59CB\u30FB\u4F11\u61A9\u7D42\u4E86\u30FB\u4F5C\u696D\u306E\u5207\u308A\u66FF\u3048\uFF09",
138
+ usage:PUNCH_USAGE,description:"POST /api/v1/attendance/punch \u3092\u9001\u308A\u307E\u3059\uFF08\u30ED\u30B0\u30A4\u30F3\u3057\u3066\u3044\u308B\u672C\u4EBA\u306E\u5206\uFF09\u3002\u6253\u523B\u6642\u523B\u306F\u30B5\u30FC\u30D0\u306E\u6642\u523B\u3067\u3059\u3002\n\u7A2E\u985E: clock-in\uFF08\u51FA\u52E4\uFF09/ clock-out\uFF08\u9000\u52E4\uFF09/ break-start\uFF08\u4F11\u61A9\u958B\u59CB\uFF09/ break-end\uFF08\u4F11\u61A9\u7D42\u4E86\uFF09/ switch\uFF08\u4F5C\u696D\u306E\u5207\u308A\u66FF\u3048\uFF09\u3002\n\u3044\u307E\u6253\u3066\u308B\u7A2E\u985E\u306F twp attendance status \u306E available_actions \u3067\u5206\u304B\u308A\u307E\u3059\u3002\n--project \u306F\u30D7\u30ED\u30B8\u30A7\u30AF\u30C8\u306E\u30B3\u30FC\u30C9\u304B ID\u3001--task \u306F\u30BF\u30B9\u30AF\u306E ID\uFF08UUID\uFF09\u3067\u3059\u3002\n\u9001\u308B\u524D\u306B\u4ECA\u6708\u306E\u52E4\u6020\u8868\uFF08GET /api/v1/attendance/timesheet\uFF09\u3092\u898B\u3066\u3001\u7DE0\u3081\u6E08\u307F\u306A\u3089\u6253\u523B\u3092\u9001\u3089\u305A\u306B\u6B62\u3081\u307E\u3059\uFF08\u7D42\u4E86\u30B3\u30FC\u30C9 3\uFF09\u3002\n--dry-run \u306F\u6253\u523B\u306E\u30EA\u30AF\u30A8\u30B9\u30C8\u3060\u3051\u3092\u8868\u793A\u3057\u307E\u3059\uFF08\u7DE0\u3081\u306E\u78BA\u8A8D\u306F\u9001\u308A\u307E\u305B\u3093\uFF09\u3002\n\u904E\u53BB\u306E\u6642\u523B\u3067\u306E\u6253\u523B\u306F twp attendance record create\u3001\u30E1\u30E2\u306E\u5909\u66F4\u30FB\u53D6\u308A\u6D88\u3057\u30FB\u4ED8\u3051\u66FF\u3048\u306F twp attendance record update / de\
139
+ lete / move \u3067\u3059\u3002",flags:[{name:"--project",summary:"\u4F5C\u696D\u3059\u308B\u30D7\u30ED\u30B8\u30A7\u30AF\u30C8\uFF08\u30B3\u30FC\u30C9\u307E\u305F\u306F ID\uFF09",takesValue:true,placeholder:"<\u30B3\u30FC\u30C9|ID>"},{name:"--task",summary:"\u4F5C\u696D\u3059\u308B\u30BF\u30B9\u30AF\u306E ID\uFF08UUID\uFF09",takesValue:true,placeholder:"<\u30BF\u30B9\u30AFID>"},{name:"--memo",summary:`\u30E1\u30E2\uFF08${MEMO_MAX} \u6587\u5B57\u4EE5\u5185\uFF09`,takesValue:true,placeholder:"<\u30E1\u30E2>"}],
140
+ async prepare(input,ctx){punchType(input);const explicit=input.flags.get("--project");if(explicit===void 0)return input;return withResolved(input,{projectId:await ctx.projectId(explicit)})},plan:punchPlan,plannedNotes:()=>["\u5B9F\u884C\u6642\u306F\u3001\u3053\u306E\u524D\u306B\u4ECA\u6708\u306E\u7DE0\u3081\u306E\u78BA\u8A8D\uFF08GET /api/v1/attendance/timesheet\uFF09\u3092\u9001\u308A\u3001\u7DE0\u3081\u6E08\u307F\u306A\u3089\u6253\u523B\u3092\u9001\u308A\u307E\u305B\u3093\u3002"],execute:punch,
141
+ summarize:body=>{const status=isRecord(body)&&isRecord(body["status"])?body["status"]:{};return{...pick(punchRecord(body),PUNCH_COLUMNS),status:status["status"]??null,status_label:status["status_label"]??null}},raw:body=>(punchRecord(body),body)},teamOperation,flexSettlementOperation,overtimeOperation],subresources:[reportResource,closingsResource]};export{USER_REF_HELP,userPath,USER_REF_FLAG,prepareUser,PUNCH_TYPES,hoursMinutes,assertMonthOpen,assertMonthsOpen,attendanceDomain};
@@ -1,8 +1,8 @@
1
1
  import { createRequire as __twpCreateRequire } from 'node:module';
2
2
  const require = __twpCreateRequire(import.meta.url);
3
- import{evaluateQuery}from"./chunk-GFLGXGWE.js";import{renderDocument,renderOutput}from"./chunk-MXKAEPXA.js";import{redactSecretValues,redactSecrets,withDebug}from"./chunk-AUAZP2G7.js";import{loadDomain}from"./chunk-GXZOFRZH.js";import{JsonBodyWithView}from"./chunk-Q3B65OFC.js";import{Resolver,requireDefaultProject}from"./chunk-Q2KIETMB.js";import{ResolveError}from"./chunk-GMBJTG6A.js";import{parseOperationArgs}from"./chunk-7UB4I3JF.js";import{ApiError,
4
- MultipartBody,TwpApiClient,appendQuery}from"./chunk-IF2K4PM5.js";import{GLOBAL_OPTIONS_HELP}from"./chunk-YLM54X35.js";import{AuthSession,NotLoggedInError,SessionExpiredError,loadCredentials}from"./chunk-XNLIEUAW.js";import{effectiveApiUrl,loadUserConfig,resolveConfiguredOutput,resolveProfile}from"./chunk-4VZKNEVN.js";import{HELP_TOKEN}from"./chunk-ZGHEF45T.js";import{OUTPUT_FORMATS,resolveOutputFormat}from"./chunk-K2ONOH3L.js";import{stringWidth}from"./chunk-WVS4W5FY.js";
5
- import{DEFAULT_MAX_ITEMS,DEFAULT_MAX_PAGES,nextPageNotes,positiveInteger,shellQuote}from"./chunk-MI6HVYR2.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{httpFetch}from"./chunk-J7QYPKVK.js";import{stripTerminalControls}from"./chunk-NHYMHCAT.js";import fs from"fs";import path from"path";var NO_REDACT_FLAG={name:"--no-redact",summary:"\u5FDC\u7B54\u306E\u4F0F\u5B57\u5316\u3092\u89E3\u9664\u3057\u3066\u751F\u306E\u5024\u3092\u51FA\u3059\uFF08\u9375\u306E\u53D7\u3051\u53D6\u308A\u7B49\uFF09",takesValue:false};var NO_REDACT_NOTICE="\u6CE8\u8A18: --no-redact \u306E\u305F\u3081\u51FA\u529B\u3092\u4F0F\u5B57\u5316\u3057\u307E\u305B\u3093\uFF08\u7AEF\u672B\u3068\u30ED\u30B0\u306B\u5E73\u6587\u3067\u6B8B\u308A\u307E\u3059\uFF09\u3002";function withCommonFlags(flags){return flags.some(flag=>flag.
3
+ import{loadDomain}from"./chunk-K7OIECPN.js";import{evaluateQuery}from"./chunk-GFLGXGWE.js";import{renderDocument,renderOutput}from"./chunk-MXKAEPXA.js";import{redactSecretValues,redactSecrets,withDebug}from"./chunk-AUAZP2G7.js";import{JsonBodyWithView}from"./chunk-Q3B65OFC.js";import{parseOperationArgs}from"./chunk-RX5HWI4L.js";import{DEFAULT_MAX_ITEMS,DEFAULT_MAX_PAGES,nextPageNotes,positiveInteger,shellQuote}from"./chunk-MI6HVYR2.js";import{Resolver,requireDefaultProject}from"./chunk-FEJDU42E.js";
4
+ import{ResolveError}from"./chunk-GMBJTG6A.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-YLM54X35.js";import{AuthSession,NotLoggedInError,SessionExpiredError,
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-6A2JSS76.js";import{OUTPUT_FORMATS,resolveOutputFormat}from"./chunk-K2ONOH3L.js";import{stringWidth}from"./chunk-WVS4W5FY.js";import{stripTerminalControls}from"./chunk-NHYMHCAT.js";import fs from"fs";import path from"path";var NO_REDACT_FLAG={name:"--no-redact",summary:"\u5FDC\u7B54\u306E\u4F0F\u5B57\u5316\u3092\u89E3\u9664\u3057\u3066\u751F\u306E\u5024\u3092\u51FA\u3059\uFF08\u9375\u306E\u53D7\u3051\u53D6\u308A\u7B49\uFF09",takesValue:false};var NO_REDACT_NOTICE="\u6CE8\u8A18: --no-redact \u306E\u305F\u3081\u51FA\u529B\u3092\u4F0F\u5B57\u5316\u3057\u307E\u305B\u3093\uFF08\u7AEF\u672B\u3068\u30ED\u30B0\u306B\u5E73\u6587\u3067\u6B8B\u308A\u307E\u3059\uFF09\u3002";function withCommonFlags(flags){return flags.some(flag=>flag.
6
6
  name===NO_REDACT_FLAG.name)?flags:[...flags,NO_REDACT_FLAG]}function alignedList(entries,indent=" "){const width=entries.reduce((max,[left])=>Math.max(max,stringWidth(left)),0);return entries.map(([left,right])=>`${indent}${left}${" ".repeat(Math.max(0,width-stringWidth(left)))} ${right}`).join("\n")}function subresourcesOf(resource){return resource.subresources??[]}function renderResourceHelp(resource,path2){const subresources=subresourcesOf(resource);const operationSection=resource.operations.length===0?"":`
7
7
  \u64CD\u4F5C:
8
8
  ${alignedList(resource.operations.map(op=>[op.name,op.summary]))}
@@ -32,13 +32,14 @@ let res;try{res=await fetchImpl(url,{method:"PUT",headers:{"Content-Range":`byte
32
32
  message}`,{cause:err})}if(!res.ok){throw new NetworkError(`\u30B9\u30C8\u30EC\u30FC\u30B8\u304B\u3089\u306E\u30C0\u30A6\u30F3\u30ED\u30FC\u30C9\u304C\u62D2\u5426\u3055\u308C\u307E\u3057\u305F\uFF08HTTP ${res.status}\uFF09`)}return{bytes:new Uint8Array(await res.arrayBuffer()),contentType:res.headers.get("content-type")}}function resolveDownloadTarget(spec,commandPath,operationName,input){const raw=input.flags.get(spec.outFlag);if(raw===void 0||raw.trim()===""){throw new UsageError(`${spec.outFlag}\
33
33
  \u306F\u5FC5\u9808\u3067\u3059\uFF08twp ${commandPath} ${operationName}\uFF09`,`\u66F8\u304D\u51FA\u3057\u5148\u306E\u30D5\u30A1\u30A4\u30EB\u30D1\u30B9\u3092\u6307\u5B9A\u3057\u3066\u304F\u3060\u3055\u3044\uFF08\u6A19\u6E96\u51FA\u529B\u3078\u306F\u51FA\u3057\u307E\u305B\u3093\uFF09\u3002`)}return{out:path.resolve(raw.trim()),force:input.flags.has(spec.forceFlag)}}function assertWritableTarget(target,forceFlag){if(!target.force&&fs.existsSync(target.out)){throw new UsageError(`\u66F8\u304D\u51FA\u3057\u5148\u304C\u65E2\u306B\u3042\u308A\u307E\u3059: ${target.
34
34
  out}`,`\u4E0A\u66F8\u304D\u3059\u308B\u306A\u3089 ${forceFlag} \u3092\u4ED8\u3051\u3066\u304F\u3060\u3055\u3044\uFF08\u65E2\u5B9A\u3067\u306F\u4E0A\u66F8\u304D\u3057\u307E\u305B\u3093\uFF09\u3002`)}const dir=path.dirname(target.out);if(!fs.existsSync(dir)){throw new UsageError(`\u66F8\u304D\u51FA\u3057\u5148\u306E\u30C7\u30A3\u30EC\u30AF\u30C8\u30EA\u304C\u3042\u308A\u307E\u305B\u3093: ${dir}`,"\u30C7\u30A3\u30EC\u30AF\u30C8\u30EA\u3092\u4F5C\u3063\u3066\u304B\u3089\u5B9F\u884C\u3057\u3066\u304F\u3060\u3055\u3044\uFF08\u81EA\u52D5\u3067\u306F\u4F5C\u6210\u3057\u307E\u305B\u3093\uFF09\u3002")}}
35
- async function download(args){let received;if(args.signed!==void 0){const url=args.signed.signedUrl(await send(args.client,args.apiUrl,args.plan),args.plan);received=await getSigned(args.signed.fetchImpl,url)}else{try{received=await args.client.requestBinary(args.plan.method,appendQuery(args.plan.path,args.plan.query))}catch(err){if(err instanceof ApiError||err instanceof NotLoggedInError||err instanceof SessionExpiredError)throw err;throw new NetworkError(`${args.apiUrl} \u3078\u306E\u901A\u4FE1\u306B\u5931\u6557\u3057\u307E\u3057\u305F: ${err.
36
- message}`,{cause:err})}}try{fs.writeFileSync(args.target.out,received.bytes,{flag:args.target.force?"w":"wx"})}catch(err){const code=err.code;if(code==="EEXIST"){throw new UsageError(`\u66F8\u304D\u51FA\u3057\u5148\u304C\u65E2\u306B\u3042\u308A\u307E\u3059: ${args.target.out}`,"\u4E0A\u66F8\u304D\u3059\u308B\u306A\u3089 --force \u3092\u4ED8\u3051\u3066\u304F\u3060\u3055\u3044\u3002")}throw new Error(`\u66F8\u304D\u51FA\u3057\u306B\u5931\u6557\u3057\u307E\u3057\u305F\uFF08${args.target.out}\uFF09: ${err.
37
- message}`,{cause:err})}const captured={};for(const name of args.captureHeaders??[]){const value=received.headers?.get(name);if(typeof value==="string")captured[name]=value}return{path:args.target.out,size:received.bytes.byteLength,contentType:received.contentType,...Object.keys(captured).length>0?{headers:captured}:{}}}function resumeHint(vocabulary,cursor){return vocabulary.resume!==void 0?vocabulary.resume(cursor):`${vocabulary.resumeFlag} ${shellQuote(cursor)}`}var CURATED_PAGING_VOCABULARY={
38
- mode:"--all",resumeFlag:"--cursor",capAdvice:"--limit \u3092\u5927\u304D\u304F\u3057\u3066\u5F80\u5FA9\u3092\u6E1B\u3089\u3059\u304B\u3001--max-pages / --max-items \u3092\u4E0A\u3052\u3066\u304F\u3060\u3055\u3044\u3002"};function capExceeded(vocabulary,reason,pages,count,cursor){return new UsageError(`${vocabulary.mode} \u304C\u4E0A\u9650\u306B\u9054\u3057\u305F\u305F\u3081\u4E2D\u65AD\u3057\u307E\u3057\u305F\uFF08${reason}\uFF0F${pages} \u30DA\u30FC\u30B8\u30FB${count} \u4EF6\u3092\u53D6\u5F97\u6E08\u307F\uFF09\u3002\u3053\u308C\u306F\u5168\u4EF6\u3067\u306F\u3042\u308A\u307E\u305B\u3093\u3002`,
39
- `${vocabulary.capAdvice}\u7D9A\u304D\u3060\u3051\u3092\u53D6\u308B\u306A\u3089 ${resumeHint(vocabulary,cursor)} \u304B\u3089\u518D\u958B\u3067\u304D\u307E\u3059`)}async function fetchAllPages(args){const{paging,maxPages,maxItems}=args;const vocabulary=args.vocabulary??CURATED_PAGING_VOCABULARY;const merged=[];const cursorParam=paging.cursorParamFor?.(args.plan)??paging.cursorParam;const first=args.plan.query?.[cursorParam];let sent=typeof first==="string"?first:"";let scanTruncated=false;for(let page=1;;page+=
40
- 1){const plan=page===1?args.plan:{...args.plan,query:{...args.plan.query,[cursorParam]:sent}};let body;try{body=page===1&&"firstPage"in args?args.firstPage:await send(args.client,args.apiUrl,plan)}catch(err){if(page>1){(args.warn??writeErr)(`${vocabulary.mode} \u306F ${page} \u30DA\u30FC\u30B8\u76EE\u3067\u5931\u6557\u3057\u307E\u3057\u305F\uFF08${page-1} \u30DA\u30FC\u30B8\u30FB${merged.length} \u4EF6\u3092\u53D6\u5F97\u6E08\u307F\uFF09\u3002\u3053\u308C\u306F\u5168\u4EF6\u3067\u306F\u3042\u308A\u307E\u305B\u3093\u3002\u7D9A\u304D\u306F ${resumeHint(
41
- vocabulary,stripTerminalControls(sent))} \u304B\u3089\u518D\u958B\u3067\u304D\u307E\u3059\u3002
35
+ function writeTarget(target,bytes){try{fs.writeFileSync(target.out,bytes,{flag:target.force?"w":"wx"})}catch(err){const code=err.code;if(code==="EEXIST"){throw new UsageError(`\u66F8\u304D\u51FA\u3057\u5148\u304C\u65E2\u306B\u3042\u308A\u307E\u3059: ${target.out}`,"\u4E0A\u66F8\u304D\u3059\u308B\u306A\u3089 --force \u3092\u4ED8\u3051\u3066\u304F\u3060\u3055\u3044\u3002")}throw new Error(`\u66F8\u304D\u51FA\u3057\u306B\u5931\u6557\u3057\u307E\u3057\u305F\uFF08${target.out}\uFF09: ${err.message}`,
36
+ {cause:err})}}function checkOutTarget(input,outFlag,forceFlag){const raw=input.flags.get(outFlag);if(raw===void 0)return void 0;if(raw.trim()==="")throw new UsageError(`${outFlag} \u306B\u66F8\u304D\u51FA\u3057\u5148\u306E\u30D5\u30A1\u30A4\u30EB\u30D1\u30B9\u3092\u6307\u5B9A\u3057\u3066\u304F\u3060\u3055\u3044`);const target={out:path.resolve(raw.trim()),force:input.flags.has(forceFlag)};assertWritableTarget(target,forceFlag);return target}async function download(args){let received;if(args.signed!==
37
+ void 0){const url=args.signed.signedUrl(await send(args.client,args.apiUrl,args.plan),args.plan);received=await getSigned(args.signed.fetchImpl,url)}else{try{received=await args.client.requestBinary(args.plan.method,appendQuery(args.plan.path,args.plan.query))}catch(err){if(err instanceof ApiError||err instanceof NotLoggedInError||err instanceof SessionExpiredError)throw err;throw new NetworkError(`${args.apiUrl} \u3078\u306E\u901A\u4FE1\u306B\u5931\u6557\u3057\u307E\u3057\u305F: ${err.message}`,
38
+ {cause:err})}}if(args.transform!==void 0)received={...received,bytes:args.transform(received.bytes)};writeTarget(args.target,received.bytes);const captured={};for(const name of args.captureHeaders??[]){const value=received.headers?.get(name);if(typeof value==="string")captured[name]=value}return{path:args.target.out,size:received.bytes.byteLength,contentType:received.contentType,...Object.keys(captured).length>0?{headers:captured}:{}}}function resumeHint(vocabulary,cursor){return vocabulary.resume!==
39
+ void 0?vocabulary.resume(cursor):`${vocabulary.resumeFlag} ${shellQuote(cursor)}`}var CURATED_PAGING_VOCABULARY={mode:"--all",resumeFlag:"--cursor",capAdvice:"--limit \u3092\u5927\u304D\u304F\u3057\u3066\u5F80\u5FA9\u3092\u6E1B\u3089\u3059\u304B\u3001--max-pages / --max-items \u3092\u4E0A\u3052\u3066\u304F\u3060\u3055\u3044\u3002"};function capExceeded(vocabulary,reason,pages,count,cursor){return new UsageError(`${vocabulary.mode} \u304C\u4E0A\u9650\u306B\u9054\u3057\u305F\u305F\u3081\u4E2D\u65AD\u3057\u307E\u3057\u305F\uFF08${reason}\
40
+ \uFF0F${pages} \u30DA\u30FC\u30B8\u30FB${count} \u4EF6\u3092\u53D6\u5F97\u6E08\u307F\uFF09\u3002\u3053\u308C\u306F\u5168\u4EF6\u3067\u306F\u3042\u308A\u307E\u305B\u3093\u3002`,`${vocabulary.capAdvice}\u7D9A\u304D\u3060\u3051\u3092\u53D6\u308B\u306A\u3089 ${resumeHint(vocabulary,cursor)} \u304B\u3089\u518D\u958B\u3067\u304D\u307E\u3059`)}async function fetchAllPages(args){const{paging,maxPages,maxItems}=args;const vocabulary=args.vocabulary??CURATED_PAGING_VOCABULARY;const merged=[];const cursorParam=paging.
41
+ cursorParamFor?.(args.plan)??paging.cursorParam;const first=args.plan.query?.[cursorParam];let sent=typeof first==="string"?first:"";let scanTruncated=false;for(let page=1;;page+=1){const plan=page===1?args.plan:{...args.plan,query:{...args.plan.query,[cursorParam]:sent}};let body;try{body=page===1&&"firstPage"in args?args.firstPage:await send(args.client,args.apiUrl,plan)}catch(err){if(page>1){(args.warn??writeErr)(`${vocabulary.mode} \u306F ${page} \u30DA\u30FC\u30B8\u76EE\u3067\u5931\u6557\u3057\u307E\u3057\u305F\uFF08${page-
42
+ 1} \u30DA\u30FC\u30B8\u30FB${merged.length} \u4EF6\u3092\u53D6\u5F97\u6E08\u307F\uFF09\u3002\u3053\u308C\u306F\u5168\u4EF6\u3067\u306F\u3042\u308A\u307E\u305B\u3093\u3002\u7D9A\u304D\u306F ${resumeHint(vocabulary,stripTerminalControls(sent))} \u304B\u3089\u518D\u958B\u3067\u304D\u307E\u3059\u3002
42
43
  `)}throw err}for(const item of paging.items(body))merged.push(item);if(typeof body==="object"&&body!==null&&body["scan_truncated"]===true)scanTruncated=true;const next=paging.nextCursor(body);if(next===null){const combined=paging.withItems(body,merged);const flagged=scanTruncated&&typeof combined==="object"&&combined!==null&&!Array.isArray(combined)?{...combined,scan_truncated:true}:combined;return{body:flagged,pages:page,count:merged.length}}if(merged.length>=maxItems)throw capExceeded(vocabulary,
43
44
  `\u6700\u5927\u4EF6\u6570 ${maxItems} \u4EF6`,page,merged.length,next);if(page>=maxPages)throw capExceeded(vocabulary,`\u6700\u5927\u30DA\u30FC\u30B8\u6570 ${maxPages}`,page,merged.length,next);if(next===sent){throw new ApiResponseError(`\u540C\u3058\u30AB\u30FC\u30BD\u30EB\uFF08${next}\uFF09\u304C\u7E70\u308A\u8FD4\u3057\u8FD4\u3055\u308C\u305F\u305F\u3081\u4E2D\u65AD\u3057\u307E\u3057\u305F\u3002${merged.length} \u4EF6\u3092\u53D6\u5F97\u3057\u305F\u6642\u70B9\u3067\u3001\u3053\u308C\u306F\u5168\u4EF6\u3067\u306F\u3042\u308A\u307E\u305B\u3093\u3002`)}
44
45
  sent=next}}function resolvePaging(operation,path2,input){const all=input.flags.has("--all");const maxPages=positiveInteger(input.flags,"--max-pages")??DEFAULT_MAX_PAGES;const maxItems=positiveInteger(input.flags,"--max-items")??DEFAULT_MAX_ITEMS;positiveInteger(input.flags,"--limit");if(all&&operation.paging===void 0){throw new UsageError(`twp ${path2} ${operation.name} \u306F --all \u306B\u5BFE\u5FDC\u3057\u3066\u3044\u307E\u305B\u3093`)}for(const name of["--max-pages","--max-items"]){if(!all&&
@@ -55,16 +56,16 @@ d \u3068\u540C\u6642\u306B\u5BA3\u8A00\u3067\u304D\u307E\u305B\u3093\uFF08\u914D
55
56
  operation.download!==void 0||plan.method==="GET")){throw new Error(`twp ${path2} ${operation.name}: preview \u306F\u66F8\u304D\u8FBC\u307F\u306E\u64CD\u4F5C\u306B\u3060\u3051\u5BA3\u8A00\u3067\u304D\u307E\u3059\uFF08\u914D\u7DDA\u306E\u8AA4\u308A\uFF09`)}if(operation.invalidates!==void 0&&(operation.fetchCached!==void 0||plan.method==="GET")){throw new Error(`twp ${path2} ${operation.name}: invalidates \u306F\u66F8\u304D\u8FBC\u307F\u306E\u64CD\u4F5C\u306B\u3060\u3051\u5BA3\u8A00\u3067\u304D\u307E\u3059\uFF08\u914D\u7DDA\u306E\u8AA4\u308A\uFF09`)}
56
57
  if(operation.fetchCached!==void 0&&(operation.download!==void 0||operation.paging!==void 0||operation.destructive===true||plan.method!=="GET")){throw new Error(`twp ${path2} ${operation.name}: fetchCached \u306F\u9001\u4FE1\u3057\u306A\u3044\u8AAD\u307F\u53D6\u308A\u5C02\u7528\u306E\u64CD\u4F5C\u306B\u3060\u3051\u5BA3\u8A00\u3067\u304D\u307E\u3059\uFF08\u914D\u7DDA\u306E\u8AA4\u308A\uFF09`)}for(const note of operation.plannedNotes?.(prepared)??[])errOut(`${safeText(note)}
57
58
  `);if(noRedact)errOut(`${NO_REDACT_NOTICE}
58
- `);const executeCtx={send:next=>send(client,apiUrl,next),putSigned:(url,bytes,contentType)=>putSigned(fetchImpl,url,bytes,contentType),putRange:(url,bytes,start,total)=>putRange(fetchImpl,url,bytes,start,total),warn:text=>errOut(`${safeText(text)}
59
+ `);const executeCtx={send:next=>send(client,apiUrl,next),putSigned:(url,bytes,contentType)=>putSigned(fetchImpl,url,bytes,contentType),putRange:(url,bytes,start,total)=>putRange(fetchImpl,url,bytes,start,total),downloadSigned:async(url,target)=>{const received=await getSigned(fetchImpl,url);writeTarget(target,received.bytes);return{path:target.out,size:received.bytes.byteLength,contentType:received.contentType}},warn:text=>errOut(`${safeText(text)}
59
60
  `)};if(operation.preview!==void 0){const checked=await operation.preview(prepared,executeCtx);for(const note of checked.notes)errOut(`${safeText(note)}
60
61
  `);for(const warning of checked.warnings)errOut(`${safeText(`\u8B66\u544A: ${warning}`)}
61
62
  `);if(!globals.dryRun&&checked.warnings.length>0&&!globals.yes){throw new UsageError(`twp ${path2} ${operation.name}: \u6574\u5408\u306E\u8B66\u544A\u304C ${checked.warnings.length} \u4EF6\u3042\u308B\u305F\u3081\u9001\u308A\u307E\u305B\u3093\u3067\u3057\u305F\u3002\u5185\u5BB9\u3092\u78BA\u304B\u3081\u305F\u3046\u3048\u3067\u9001\u308B\u306A\u3089 --yes \u3092\u4ED8\u3051\u3066\u304F\u3060\u3055\u3044\u3002`)}}if(globals.dryRun){out(line(renderOutput(dryRunValue(apiUrl,plan,noRedact?void 0:operation.
62
63
  sensitiveBody),format,noRedact)));return EXIT_OK}let body;let paged;try{if(operation.execute!==void 0){body=await operation.execute(prepared,executeCtx)}else if(operation.fetchCached!==void 0){body=await operation.fetchCached(prepared,ctx)}else if(operation.download!==void 0&&downloadTarget!==void 0){assertWritableTarget(downloadTarget,operation.download.forceFlag);const signedUrl=operation.download.signedUrl;body=await download({client,apiUrl,plan,target:downloadTarget,...signedUrl===void 0?{}:
63
- {signed:{fetchImpl,signedUrl}},...operation.download.captureHeaders===void 0?{}:{captureHeaders:operation.download.captureHeaders}})}else if(paging.all&&operation.paging!==void 0){paged=await fetchAllPages({client,apiUrl,plan,paging:operation.paging,maxPages:paging.maxPages,maxItems:paging.maxItems,warn:errOut});body=paged.body}else{body=await send(client,apiUrl,plan)}}finally{try{operation.invalidates?.(prepared,ctx)}catch{}}if(operation.narrow!==void 0)body=operation.narrow(body,prepared);if(paged!==
64
- void 0&&operation.paging!==void 0){paged={...paged,count:operation.paging.items(body).length}}const visible=noRedact?body:redactSecretValues(body);const document=globals.query===void 0&&format==="text"&&operation.document!==void 0?operation.document(visible):void 0;const value=document!==void 0?void 0:globals.query!==void 0?await evaluateQuery(globals.query,operation.raw(visible)):outputValue(operation,format,visible);out(line(document!==void 0?renderDocument(document,noRedact):renderOutput(value,
65
- format,noRedact)));if(paged!==void 0){errOut(`--all: ${paged.pages} \u30DA\u30FC\u30B8\u3092\u8FBF\u3063\u3066 ${paged.count} \u4EF6\u3092\u53D6\u5F97\u3057\u307E\u3057\u305F\u3002
64
+ {signed:{fetchImpl,signedUrl}},...operation.download.captureHeaders===void 0?{}:{captureHeaders:operation.download.captureHeaders},...operation.download.transform===void 0?{}:{transform:operation.download.transform}})}else if(paging.all&&operation.paging!==void 0){paged=await fetchAllPages({client,apiUrl,plan,paging:operation.paging,maxPages:paging.maxPages,maxItems:paging.maxItems,warn:errOut});body=paged.body}else{body=await send(client,apiUrl,plan)}}finally{try{operation.invalidates?.(prepared,
65
+ ctx)}catch{}}if(operation.narrow!==void 0)body=operation.narrow(body,prepared);if(paged!==void 0&&operation.paging!==void 0){paged={...paged,count:operation.paging.items(body).length}}const visible=noRedact?body:redactSecretValues(body);const document=globals.query===void 0&&format==="text"&&operation.document!==void 0?operation.document(visible):void 0;const value=document!==void 0?void 0:globals.query!==void 0?await evaluateQuery(globals.query,operation.raw(visible)):outputValue(operation,format,
66
+ visible);out(line(document!==void 0?renderDocument(document,noRedact):renderOutput(value,format,noRedact)));if(paged!==void 0){errOut(`--all: ${paged.pages} \u30DA\u30FC\u30B8\u3092\u8FBF\u3063\u3066 ${paged.count} \u4EF6\u3092\u53D6\u5F97\u3057\u307E\u3057\u305F\u3002
66
67
  `)}const pagingNotes=operation.paging===void 0?[]:nextPageNotes(body,prepared,{command:`twp ${path2} ${operation.name}`,flags:operation.flags,profile:globals.profile,readCursor:operation.paging.readCursor});for(const note of[...pagingNotes,...operation.notes?.(visible,prepared)??[]]){errOut(`${safeText(note)}
67
68
  `)}return EXIT_OK}catch(caught){const err=withRejectedGuidance(withForbiddenGuidance(caught,forbidden),rejected);const code=exitCodeFor(err);reportError(err,format,code,errOut);return code}}function withForbiddenGuidance(err,forbidden){if(forbidden===void 0||!(err instanceof ApiError)||err.status!==403)return err;const guidance=typeof forbidden==="function"?forbidden(err.body):forbidden;if(guidance===void 0)return err;const server=err.body?.error_description??err.body?.message;const wrapped=new ApiError(
68
69
  err.status,err.body,"","");wrapped.message=server!==void 0&&server!==""?`${guidance}\uFF08\u30B5\u30FC\u30D0\u306E\u5FDC\u7B54: ${server}\uFF09`:guidance;return wrapped}function withRejectedGuidance(err,guidance){if(guidance===void 0||!(err instanceof ApiError)||err.status!==422)return err;const description=err.body?.error_description;const fallback=err.body?.message;const server=(typeof description==="string"&&description!==""?description:void 0)??(typeof fallback==="string"?fallback:"");const extra=guidance(
69
70
  server);if(extra===void 0)return err;const wrapped=new ApiError(err.status,err.body,"","");wrapped.message=server!==""?`${server}
70
- ${extra}`:extra;return wrapped}export{NO_REDACT_FLAG,NO_REDACT_NOTICE,outputValue,requiresYes,exitCodeFor,reportError,CURATED_PAGING_VOCABULARY,fetchAllPages,resolvePaging,buildPrepareContext,runDomain};
71
+ ${extra}`:extra;return wrapped}export{NO_REDACT_FLAG,NO_REDACT_NOTICE,outputValue,requiresYes,exitCodeFor,reportError,checkOutTarget,CURATED_PAGING_VOCABULARY,fetchAllPages,resolvePaging,buildPrepareContext,runDomain};
@@ -1,6 +1,6 @@
1
1
  import { createRequire as __twpCreateRequire } from 'node:module';
2
2
  const require = __twpCreateRequire(import.meta.url);
3
- import{repeatedValues}from"./chunk-7UB4I3JF.js";import{hoursMinutes}from"./chunk-IU5P6MY5.js";import{dateFlag,monthFlag}from"./chunk-EXT4AIDF.js";import{requireResolved,withResolved}from"./chunk-PS5QFKHB.js";import{isRecord,pick}from"./chunk-3ZRMMBP5.js";import{ApiResponseError,UsageError}from"./chunk-VFPY2A23.js";var ANALYSIS_PATH="/api/v2/analysis";var ACCESSIBLE_PAGES_HINT="\u958B\u3051\u308B\u5206\u6790\u30DA\u30FC\u30B8\u306F twp api /api/v2/analysis/accessible-pages \u3067\u78BA\u8A8D\u3067\u304D\u307E\u3059\u3002";var LICENSE_GUIDANCE="\u5206\u6790\u3092\u4F7F\u3046\u6A29\u9650\u304C\u3042\u308A\u307E\u305B\u3093\u3002\u30C6\u30CA\u30F3\u30C8\u304C\u5206\u6790\u3092\u5951\u7D04\u3057\u3066\u3044\u306A\u3044\u304B\u3001\u3042\u306A\u305F\u306E\u5206\u6790\u306E\u6A29\u9650\u304C\u300C\u306A\u3057\u300D\u306B\u306A\u3063\u3066\u3044\u307E\u3059\u3002\u30C6\u30CA\u30F3\u30C8\u7BA1\u7406\u8005\u306B\u78BA\u8A8D\u3057\u3066\u304F\u3060\u3055\u3044\u3002";
3
+ import{repeatedValues}from"./chunk-RX5HWI4L.js";import{hoursMinutes}from"./chunk-DBCF4H3V.js";import{dateFlag,monthFlag}from"./chunk-EXT4AIDF.js";import{requireResolved,withResolved}from"./chunk-PS5QFKHB.js";import{isRecord,pick}from"./chunk-3ZRMMBP5.js";import{ApiResponseError,UsageError}from"./chunk-VFPY2A23.js";var ANALYSIS_PATH="/api/v2/analysis";var ACCESSIBLE_PAGES_HINT="\u958B\u3051\u308B\u5206\u6790\u30DA\u30FC\u30B8\u306F twp api /api/v2/analysis/accessible-pages \u3067\u78BA\u8A8D\u3067\u304D\u307E\u3059\u3002";var LICENSE_GUIDANCE="\u5206\u6790\u3092\u4F7F\u3046\u6A29\u9650\u304C\u3042\u308A\u307E\u305B\u3093\u3002\u30C6\u30CA\u30F3\u30C8\u304C\u5206\u6790\u3092\u5951\u7D04\u3057\u3066\u3044\u306A\u3044\u304B\u3001\u3042\u306A\u305F\u306E\u5206\u6790\u306E\u6A29\u9650\u304C\u300C\u306A\u3057\u300D\u306B\u306A\u3063\u3066\u3044\u307E\u3059\u3002\u30C6\u30CA\u30F3\u30C8\u7BA1\u7406\u8005\u306B\u78BA\u8A8D\u3057\u3066\u304F\u3060\u3055\u3044\u3002";
4
4
  var PAGE_GUIDANCE=`\u3053\u306E\u5206\u6790\u30DA\u30FC\u30B8\u306E\u95B2\u89A7\u5BFE\u8C61\u306B\u542B\u307E\u308C\u3066\u3044\u307E\u305B\u3093\u3002\u5206\u6790\u306E\u7BA1\u7406\u8005\u306B\u5BFE\u8C61\u3078\u306E\u8FFD\u52A0\u3092\u4F9D\u983C\u3057\u3066\u304F\u3060\u3055\u3044\u3002${ACCESSIBLE_PAGES_HINT}`;var PAGE_DENIED_MARK="\u5206\u6790\u30DA\u30FC\u30B8";function analysisForbidden(levelGuidance2){return body=>{if(body?.error==="permission_denied"){const text=body.error_description??"";
5
5
  if(text.includes(PAGE_DENIED_MARK))return PAGE_GUIDANCE;if(text.includes("\u3053\u306E\u6A5F\u80FD"))return LICENSE_GUIDANCE;return void 0}if(body?.error==="forbidden")return levelGuidance2;return void 0}}function levelGuidance(page,features){return`${page}\u3092\u958B\u304F\u6A29\u9650\u304C\u3042\u308A\u307E\u305B\u3093\u3002\u5206\u6790\u62C5\u5F53\u8005\u30D5\u30E9\u30B0\u3001\u307E\u305F\u306F${features}\u306E\u6A29\u9650\uFF08\u300C\u306A\u3057\u300D\u4EE5\u5916\uFF09\u304C\u8981\u308A\u307E\u3059\u3002\u30C6\u30CA\u30F3\u30C8\u7BA1\u7406\u8005\u306B\u78BA\u8A8D\u3057\u3066\u304F\u3060\u3055\u3044\u3002`}
6
6
  var FROM_FLAG={name:"--from",summary:"\u958B\u59CB\u306E\u5E74\u6708\uFF08YYYY-MM\uFF09",takesValue:true,placeholder:"<YYYY-MM>"};var TO_FLAG={name:"--to",summary:"\u7D42\u4E86\u306E\u5E74\u6708\uFF08YYYY-MM\uFF09",takesValue:true,placeholder:"<YYYY-MM>"};var MONTH_FLAG={name:"--month",summary:"1\u304B\u6708\u3060\u3051\uFF08YYYY-MM\uFF09\u3002--from / --to \u3068\u306F\u4F75\u7528\u4E0D\u53EF",takesValue:true,placeholder:"<YYYY-MM>"};var YEAR_FLAG={name:"--year",summary:"1\u5E74\u5206\uFF081\u301C12\u6708\u30FBYYYY\uFF09\u3002--from \
@@ -1,7 +1,7 @@
1
1
  import { createRequire as __twpCreateRequire } from 'node:module';
2
2
  const require = __twpCreateRequire(import.meta.url);
3
- import{readCsvFileText}from"./chunk-QLENN5DD.js";import{featureLicenseGuidance,invoiceFilters}from"./chunk-CF3ZZKCZ.js";import{boundedText,isoDate}from"./chunk-OTIR4GES.js";import{readBody}from"./chunk-6LSQCOCJ.js";import{SALES_DEPOSITS_PATH,isExactNumericId,resolveNamed}from"./chunk-Q2KIETMB.js";import{repeatedValues}from"./chunk-7UB4I3JF.js";import{ApiError}from"./chunk-IF2K4PM5.js";import{LIST_PAGING_HELP,PAGE_NUMBER_LIST_FLAGS,PAGE_NUMBER_PAGING_HELP,
4
- STABLE_PAGE_ORDER,nonEmpty,pageNumberPaging,pageNumberQuery,pageRangeNotes}from"./chunk-MI6HVYR2.js";import{requireResolved,withResolved}from"./chunk-PS5QFKHB.js";import{acknowledgement,isRecord,pick}from"./chunk-3ZRMMBP5.js";import{ApiResponseError,UsageError}from"./chunk-VFPY2A23.js";var PATH=SALES_DEPOSITS_PATH;function salesAdminForbidden(what){return body=>body?.error==="permission_denied"?featureLicenseGuidance("\u8CA9\u58F2\u7BA1\u7406"):`${what}\u306B\u306F\u8CA9\u58F2\u7BA1\u7406\u306E\u6A29\u9650\u304C\u300C\u7BA1\u7406\u8005\u300D\u3067\u3042\u308B\u3053\u3068\u304C\u8981\u308A\u307E\u3059\u3002\u30C6\u30CA\u30F3\u30C8\u7BA1\u7406\u8005\u306B\u78BA\u8A8D\u3057\u3066\u304F\u3060\u3055\u3044\u3002`}var FORBIDDEN=salesAdminForbidden("\u5165\u91D1");var ALLOCATION_STATUSES={
3
+ import{readCsvFileText}from"./chunk-QLENN5DD.js";import{featureLicenseGuidance,invoiceFilters}from"./chunk-B6WIFZF2.js";import{boundedText,isoDate}from"./chunk-OTIR4GES.js";import{repeatedValues}from"./chunk-RX5HWI4L.js";import{LIST_PAGING_HELP,PAGE_NUMBER_LIST_FLAGS,PAGE_NUMBER_PAGING_HELP,STABLE_PAGE_ORDER,nonEmpty,pageNumberPaging,pageNumberQuery,pageRangeNotes}from"./chunk-MI6HVYR2.js";import{readBody}from"./chunk-6LSQCOCJ.js";import{SALES_DEPOSITS_PATH,isExactNumericId,
4
+ resolveNamed}from"./chunk-FEJDU42E.js";import{ApiError}from"./chunk-JA5A6UJ2.js";import{requireResolved,withResolved}from"./chunk-PS5QFKHB.js";import{acknowledgement,isRecord,pick}from"./chunk-3ZRMMBP5.js";import{ApiResponseError,UsageError}from"./chunk-VFPY2A23.js";var PATH=SALES_DEPOSITS_PATH;function salesAdminForbidden(what){return body=>body?.error==="permission_denied"?featureLicenseGuidance("\u8CA9\u58F2\u7BA1\u7406"):`${what}\u306B\u306F\u8CA9\u58F2\u7BA1\u7406\u306E\u6A29\u9650\u304C\u300C\u7BA1\u7406\u8005\u300D\u3067\u3042\u308B\u3053\u3068\u304C\u8981\u308A\u307E\u3059\u3002\u30C6\u30CA\u30F3\u30C8\u7BA1\u7406\u8005\u306B\u78BA\u8A8D\u3057\u3066\u304F\u3060\u3055\u3044\u3002`}var FORBIDDEN=salesAdminForbidden("\u5165\u91D1");var ALLOCATION_STATUSES={
5
5
  allocated:"\u5F15\u5F53\u6E08",shortage:"\u672A\u5165\u91D1\u6709",excess:"\u5165\u91D1\u8D85\u904E\u6709",transfer_fee_resolved:"\u624B\u6570\u6599\u51E6\u7406\u6E08"};var EXCESS_REASONS={transfer_fee:"\u632F\u8FBC\u624B\u6570\u6599",agency_fee:"\u4EE3\u884C\u624B\u6570\u6599\uFF08\u53E3\u5EA7\u632F\u66FF \u57FA\u672C\u5229\u7528\u6599\uFF09",partial:"\u4E00\u90E8\u5165\u91D1",offset:"\u76F8\u6BBA",overpayment:"\u904E\u5165\u91D1",other:"\u305D\u306E\u4ED6"};var EXCESS_TAX_CATEGORIES={taxable_purchase_10:"\
6
6
  \u8AB2\u7A0E\u4ED5\u5165 10%",not_applicable:"\u5BFE\u8C61\u5916"};var BULK_MAX_ROWS=100;var PLAN_MAX_ITEMS=50;var PLAN_MAX_ALLOCATIONS=100;var FILE_MAX_BYTES=1024*1024;var EXCESS_NOTE_MAX_CHARS=255;var PLAN_MEMO_MAX_CHARS=1e3;var CONTENT_MAX_CHARS=1e6;var LIST_COLUMNS=["id","deposit_date","company_name","payee_name","deposit_amount","allocated_amount","unallocated_amount","allocation_status"];var GET_COLUMNS=[...LIST_COLUMNS,"memo","excess_reason","excess_amount","excess_note","excess_tax_categ\
7
7
  ory","excess_tax_amount"];var ALLOCATION_COLUMNS=["id","invoice_id","invoice_no","invoice_title","invoice_date","allocated_amount","invoice_remaining_amount"];function labelsHelp(table){return Object.entries(table).map(([code,name])=>`${code}\uFF08${name}\uFF09`).join(" / ")}function refsOf(table){return Object.entries(table).map(([code,name])=>({id:code,name,code}))}function usageOf(op){return`twp deposit ${op} help`}function yen(value){return typeof value==="number"?`${value.toLocaleString("ja\