@tocca-systems/twp-cli 0.73.0 → 0.74.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/CHANGELOG.public.md +16 -0
- package/README.md +28 -5
- package/dist/{agent-WJ4JMQMQ.js → agent-QPAXYSJP.js} +2 -2
- package/dist/{agent-loop-XFYCEK5S.js → agent-loop-UTS4MYW6.js} +2 -2
- package/dist/{ai-dispatch-GONY4JAY.js → ai-dispatch-OAT752RN.js} +1 -1
- package/dist/{analysis-MVKADQHU.js → analysis-PMGNH3TJ.js} +2 -2
- package/dist/{announcement-UYVAY54K.js → announcement-A5XPVBAG.js} +2 -2
- package/dist/{api-command-WMT5U2VG.js → api-command-HEUUFIK4.js} +3 -3
- package/dist/{app-LPO4HFRV.js → app-SFKZTJYX.js} +4 -4
- package/dist/{attendance-correct-WDQM63AH.js → attendance-correct-ZHHHORBP.js} +2 -2
- package/dist/{attendance-lists-6RP7UGA5.js → attendance-lists-7OWTOLFU.js} +1 -1
- package/dist/{backlog-RYESVWII.js → backlog-ZMXUHYE2.js} +1 -1
- package/dist/budget-FQERSD4Y.js +4 -0
- package/dist/business-hours-I4X6YQS3.js +18 -0
- package/dist/{chunk-JOQKYENT.js → chunk-22FXTKWN.js} +2 -2
- package/dist/{chunk-B6FHTFUJ.js → chunk-332Y5OGZ.js} +1 -1
- package/dist/{chunk-MNJYY3PR.js → chunk-3N6GRIXQ.js} +1 -1
- package/dist/{chunk-AGI5KT4C.js → chunk-3WFZOOXZ.js} +1 -1
- package/dist/{chunk-I4TR55UF.js → chunk-5KJ5OIKI.js} +1 -1
- package/dist/{chunk-5SPWQAUX.js → chunk-5NXO4FRO.js} +2 -2
- package/dist/{chunk-FHOJFKR3.js → chunk-5ZPI5YQC.js} +1 -1
- package/dist/{chunk-DZQFMC4U.js → chunk-7RTGZALQ.js} +1 -1
- package/dist/{chunk-BKE3BFIQ.js → chunk-AVMM7NAP.js} +2 -2
- package/dist/{chunk-SCHQHPI2.js → chunk-CXYDOAUY.js} +2 -2
- package/dist/{chunk-2YVJ3QVJ.js → chunk-EFYFNGBR.js} +1 -1
- package/dist/chunk-FDLKXEF5.js +11 -0
- package/dist/{chunk-CCHPF23L.js → chunk-GAXJPIKO.js} +1 -1
- package/dist/{chunk-7PDUN5MS.js → chunk-GTRKN2YS.js} +1 -1
- package/dist/{chunk-WYYHMKF7.js → chunk-HOLKWMS2.js} +1 -1
- package/dist/{chunk-NBOA4T7F.js → chunk-J2NRDFCR.js} +1 -1
- package/dist/{chunk-MSVJ53VZ.js → chunk-JSKNOSN4.js} +1 -1
- package/dist/{chunk-UFGJSWKU.js → chunk-LDBYJPRD.js} +1 -1
- package/dist/{chunk-D37WSWBT.js → chunk-MCQZDXIA.js} +1 -1
- package/dist/{chunk-RCRFLVJ6.js → chunk-MPU5QXYR.js} +1 -1
- package/dist/{chunk-YXVN6OCH.js → chunk-PO35MCYP.js} +1 -1
- package/dist/{chunk-T3C2BAVA.js → chunk-QQCWGMZN.js} +1 -1
- package/dist/{chunk-5P22UEUF.js → chunk-RKREN2F6.js} +1 -1
- package/dist/{budget-BF3P55KH.js → chunk-RVEOVJTT.js} +2 -3
- package/dist/{chunk-4B6GJBYP.js → chunk-UAVL2GLZ.js} +47 -43
- package/dist/{chunk-J3KV6LAX.js → chunk-V7WNVT2J.js} +1 -1
- package/dist/{chunk-YA7W7OV4.js → chunk-VKIFQOWX.js} +1 -1
- package/dist/chunk-W4E4F2ZA.js +4 -0
- package/dist/{chunk-7SYIYLHX.js → chunk-ZMVHGXTO.js} +1 -1
- package/dist/{chunk-4NZG4FJQ.js → chunk-ZWPF6UXE.js} +1 -1
- package/dist/cli.js +24 -8
- package/dist/{commands-GMUQCBFQ.js → commands-U52UBWSU.js} +2 -2
- package/dist/{commands-MYGPEYBE.js → commands-ZCXAJXHW.js} +40 -38
- package/dist/{company-4J4BZMZ4.js → company-56JA5MUM.js} +3 -3
- package/dist/{completion-EMY4WDII.js → completion-YBKZ3GXD.js} +1 -1
- package/dist/{contract-55LGGLGZ.js → contract-P65ENPX3.js} +2 -2
- package/dist/{department-5FADSH5C.js → department-PBRRHYCR.js} +1 -1
- package/dist/{deposit-YSCEG5QY.js → deposit-ZOYD5SUR.js} +2 -2
- package/dist/{domain-knowledge-LGBPHMWX.js → domain-knowledge-7OXIH7ES.js} +1 -1
- package/dist/{estimate-KNQ5T7KZ.js → estimate-POXYAGM2.js} +3 -3
- package/dist/{evaluation-MQ7USYDU.js → evaluation-HCF3OQB3.js} +1 -1
- package/dist/{expense-HCX2L5BN.js → expense-3JKVCFPK.js} +2 -2
- package/dist/{fiscal-year-W3JOTNNF.js → fiscal-year-K2NEKCRR.js} +1 -1
- package/dist/holiday-DM4WIJ2N.js +48 -0
- package/dist/{inquiry-WM4FEQFW.js → inquiry-IJ5CN23R.js} +1 -1
- package/dist/{invoice-PYROWI6V.js → invoice-VZHODF7M.js} +2 -2
- package/dist/{job-title-PFLVTRNO.js → job-title-ST5A45Z2.js} +1 -1
- package/dist/{knowledge-ZUC67H2H.js → knowledge-IM6ZDVME.js} +62 -37
- package/dist/{leave-4ITLO6SD.js → leave-ZTT3L4WN.js} +2 -2
- package/dist/{license-PAFHCG2V.js → license-5C6R3BER.js} +2 -2
- package/dist/{logout-guard-3B767ADS.js → logout-guard-IWHF33DM.js} +1 -1
- package/dist/{media-BAMQWQ4H.js → media-VH64KNQT.js} +3 -3
- package/dist/{notification-HJP3LWU7.js → notification-FTCMINYA.js} +1 -1
- package/dist/{oneshot-TMUK55OV.js → oneshot-3MFPNFIE.js} +1 -1
- package/dist/{outlook-KYTXHDAV.js → outlook-YG7GFF44.js} +1 -1
- package/dist/{plan-submit-YBTGYQD7.js → plan-submit-CZRVVZZB.js} +1 -1
- package/dist/{position-YFC6XZQL.js → position-XP7EWXSX.js} +1 -1
- package/dist/{project-3RTD63II.js → project-AHVY3PDZ.js} +2 -2
- package/dist/{prospect-ZGNWEQN7.js → prospect-BKOGWVUA.js} +2 -2
- package/dist/{purchase-ZNMJHMP6.js → purchase-MILRQW5U.js} +3 -3
- package/dist/{receivable-LF3DYPOO.js → receivable-BH3EZHLN.js} +2 -2
- package/dist/{redmine-OTZNVLZY.js → redmine-P3R2TP3R.js} +1 -1
- package/dist/{registry-I3BPWCZE.js → registry-ZTH2SZO3.js} +1 -1
- package/dist/{render-YD4B7OH5.js → render-4SBLHU4J.js} +1 -1
- package/dist/{report-H4OJWUQP.js → report-UM6SYICS.js} +1 -1
- package/dist/{run-DGBJ2EHB.js → run-3NTJP6DX.js} +2 -2
- package/dist/{sales-ai-review-WIVJOOFW.js → sales-ai-review-ES7YXGQI.js} +2 -2
- package/dist/{sales-master-FR3ZJQXG.js → sales-master-F7A46LZS.js} +2 -2
- package/dist/{sales-numbering-EWYVI3RF.js → sales-numbering-EC5H7UJY.js} +2 -2
- package/dist/{search-IX67TAAB.js → search-CRWXNR32.js} +1 -1
- package/dist/{segment-3Q64YOMR.js → segment-6XCC5S5I.js} +1 -1
- package/dist/{server-settings-ELHHMBBK.js → server-settings-WH4F2SLC.js} +1 -1
- package/dist/{setup-74LO2SXN.js → setup-H22WRMPN.js} +1 -1
- package/dist/{skill-MWYX74XM.js → skill-IHWKNBN7.js} +2 -2
- package/dist/{skill-check-2ILLHGDQ.js → skill-check-YVIMYT2H.js} +1 -1
- package/dist/{skill-manage-command-HPJQOTQK.js → skill-manage-command-QYJLCLDK.js} +2 -2
- package/dist/{supplier-payment-NR6KRZ7V.js → supplier-payment-GNCQUUQ5.js} +2 -2
- package/dist/{support-3UK7KKKI.js → support-PIEDXQL2.js} +2 -2
- package/dist/{task-CPKP4DOL.js → task-45ALOWLP.js} +3 -3
- package/dist/{teams-QRVCFJS4.js → teams-RLMFGND2.js} +24 -20
- package/dist/{user-BHDF42QA.js → user-BJUWEL3X.js} +3 -3
- package/dist/{user-contract-type-FXV6WYC4.js → user-contract-type-EO4Z7PWA.js} +1 -1
- package/dist/{worker-agent-BEH65D3X.js → worker-agent-MTSMWW2T.js} +1 -1
- package/dist/{workflow-EBAADQLR.js → workflow-VMFSVENL.js} +2 -2
- package/package.json +1 -1
- package/dist/chunk-35MQ27I6.js +0 -4
- package/dist/chunk-R3WFIQPJ.js +0 -11
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import { createRequire as __twpCreateRequire } from 'node:module';
|
|
2
2
|
const require = __twpCreateRequire(import.meta.url);
|
|
3
|
-
import{featureLicenseGuidance}from"./chunk-
|
|
4
|
-
import
|
|
3
|
+
import{featureLicenseGuidance}from"./chunk-3N6GRIXQ.js";import{monthFlag}from"./chunk-EXT4AIDF.js";import"./chunk-JJSBBWJ5.js";import"./chunk-MI6HVYR2.js";import"./chunk-RX5HWI4L.js";import{readBody}from"./chunk-6LSQCOCJ.js";import"./chunk-UAVL2GLZ.js";import{UUID_RE,isSafePathSegment}from"./chunk-HVZUXLQ4.js";import"./chunk-JA5A6UJ2.js";import"./chunk-H4CDX4TX.js";import"./chunk-II5RVJQN.js";import{requireResolved,singleRef,withResolved}from"./chunk-PS5QFKHB.js";
|
|
4
|
+
import{isRecord,pick}from"./chunk-3ZRMMBP5.js";import{ApiResponseError,UsageError}from"./chunk-VFPY2A23.js";import"./chunk-J7QYPKVK.js";import"./chunk-4VZKNEVN.js";import"./chunk-RZVI6PMW.js";import"./chunk-QQRJLH6B.js";import"./chunk-NHYMHCAT.js";import"./chunk-VSJBJXZO.js";var BASE="/api/v2/expense/commuting";var WORKFLOW_CATEGORY="commuting_expenses";var LIST_LIMIT_MAX=100;var DEFAULT_LIST_LIMIT=24;var COMMENT_MAX=1e3;var CONTENT_MAX_CHARS=2e4;var STATUSES=["draft","pending","approved","rejected"];var ENTRY_VALUES=["round_trip","one_way",""];var CONTENT_KEYS=["daily_entries","comment"];var LIST_COLUMNS=["id","year_month","status","total_round_trips","total_one_ways","total_amount","updated_at"];var ADMIN_LIST_COLUMNS=["id","user_name","year_month","status","total\
|
|
5
5
|
_round_trips","total_one_ways","total_amount","updated_at"];var GET_COLUMNS=["id","year_month","status","commuting_facilities","commuting_route","commuting_cost_one_way","total_round_trips","total_one_ways","total_amount","workflow_instance_id","comment"];var LICENSE=featureLicenseGuidance("\u7D4C\u8CBB\u7BA1\u7406");var USER_FORBIDDEN=body=>body?.error==="permission_denied"?LICENSE:"\u3053\u306E\u901A\u52E4\u4EA4\u901A\u8CBB\u3092\u64CD\u4F5C\u3059\u308B\u6A29\u9650\u304C\u3042\u308A\u307E\u305B\u3093\uFF08\u81EA\u5206\u306E\u5206\u304B\u3001\u7D4C\u8CBB\u306E\u7BA1\u7406\u8005\u3060\u3051\u304C\u6271\u3048\u307E\u3059\uFF09";
|
|
6
6
|
var ADMIN_FORBIDDEN=body=>body?.error==="permission_denied"?LICENSE:"\u7D4C\u8CBB\u306E\u7BA1\u7406\u8005\u306E\u6A29\u9650\u304C\u5FC5\u8981\u3067\u3059\uFF08\u30C6\u30CA\u30F3\u30C8\u306E\u7BA1\u7406\u8005\u304B\u3001\u7D4C\u8CBB\u306E\u6A29\u9650\u304C\u300C\u7BA1\u7406\u8005\u300D\u306E\u4EBA\u3060\u3051\u304C\u4F7F\u3048\u307E\u3059\uFF09\u3002\u30C6\u30CA\u30F3\u30C8\u7BA1\u7406\u8005\u306B\u78BA\u8A8D\u3057\u3066\u304F\u3060\u3055\u3044";var MONTH_FLAG={name:"--month",summary:"\u5BFE\u8C61\u306E\u5E74\u6708\uFF08YYYY-\
|
|
7
7
|
MM\uFF09",takesValue:true,placeholder:"<YYYY-MM>"};var ID_FLAG={name:"--id",summary:"\u5BFE\u8C61\u306E\u901A\u52E4\u4EA4\u901A\u8CBB\u306E ID\uFF08\u4F4D\u7F6E\u5F15\u6570\u306E\u4EE3\u308F\u308A\u306B\u4F7F\u3048\u308B\uFF09",takesValue:true,placeholder:"<ID>"};var COMMENT_FLAG={name:"--comment",summary:`\u7533\u8ACB\u306E\u30B3\u30E1\u30F3\u30C8\uFF08${String(COMMENT_MAX)} \u6587\u5B57\u4EE5\u5185\uFF09`,takesValue:true,placeholder:"<\u30B3\u30E1\u30F3\u30C8>"};var OUT_FLAG={name:"--out",summary:"\
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import { createRequire as __twpCreateRequire } from 'node:module';
|
|
2
2
|
const require = __twpCreateRequire(import.meta.url);
|
|
3
|
-
import{createFlags,fieldBody,hasAnyField,updateFlags}from"./chunk-
|
|
3
|
+
import{createFlags,fieldBody,hasAnyField,updateFlags}from"./chunk-5ZPI5YQC.js";import"./chunk-JJSBBWJ5.js";import"./chunk-MI6HVYR2.js";import{FISCAL_YEAR_SETTINGS_PATH}from"./chunk-UAVL2GLZ.js";import"./chunk-HVZUXLQ4.js";import"./chunk-JA5A6UJ2.js";import"./chunk-H4CDX4TX.js";import"./chunk-II5RVJQN.js";import{singleRef}from"./chunk-PS5QFKHB.js";import{acknowledgement,isRecord,pick}from"./chunk-3ZRMMBP5.js";import{ApiResponseError,UsageError}from"./chunk-VFPY2A23.js";
|
|
4
4
|
import"./chunk-J7QYPKVK.js";import"./chunk-4VZKNEVN.js";import"./chunk-RZVI6PMW.js";import"./chunk-NHYMHCAT.js";import"./chunk-VSJBJXZO.js";var NAME="fiscal-year";var LABEL="\u4E8B\u696D\u5E74\u5EA6\u8A2D\u5B9A";var YEAR_RE=/^\d{4}$/;var FIELDS=[{kind:"number",flag:"--indirect-cost-rate",key:"default_indirect_cost_rate",label:"\u9593\u63A5\u8CBB\u7387",min:0,max:100,summary:"\u9593\u63A5\u8CBB\u7387\u306E\u65E2\u5B9A\uFF08%\u30FB0\u301C100\u30FB\u5C0F\u6570\u53EF\uFF09"},{kind:"number",flag:"--target-profit-rate",key:"default_target_profit_rate",label:"\u76EE\u6A19\u5229\u76CA\u7387",min:0,max:100,summary:"\u76EE\u6A19\u5229\u76CA\u7387\u306E\u65E2\u5B9A\uFF08%\u30FB0\u301C100\u30FB\u5C0F\u6570\u53EF\uFF09"},
|
|
5
5
|
{kind:"text",flag:"--description",key:"description",label:"\u8AAC\u660E",maxChars:1e3,summary:"\u8AAC\u660E"}];var COLUMNS=["fiscal_year","default_indirect_cost_rate","default_target_profit_rate","description"];var YEAR_FLAG={name:"--fiscal-year",summary:"\u5BFE\u8C61\u306E\u5E74\u5EA6\uFF08\u4F4D\u7F6E\u5F15\u6570\u306E\u4EE3\u308F\u308A\u306B\u4F7F\u3048\u308B\uFF09",takesValue:true,placeholder:"<YYYY>"};var FORBIDDEN=`\u7BA1\u7406\u8005\u306E\u6A29\u9650\u304C\u5FC5\u8981\u3067\u3059\u3002${LABEL}\
|
|
6
6
|
\u306E\u4F5C\u6210\u30FB\u66F4\u65B0\u30FB\u524A\u9664\u306F\u7BA1\u7406\u8005\u3060\u3051\u304C\u884C\u3048\u307E\u3059`;function fiscalYear(input,usage){const year=singleRef(input,{flag:YEAR_FLAG.name,label:"\u5E74\u5EA6",usage});if(!YEAR_RE.test(year)){throw new UsageError(`\u5E74\u5EA6\u306F4\u6841\u306E\u6570\u5B57\u3067\u6307\u5B9A\u3057\u3066\u304F\u3060\u3055\u3044: ${year}`,`\u4F8B: twp ${NAME} get 2026`)}return year}function rows(body){const list=isRecord(body)?body["list"]:void 0;if(!Array.
|
|
@@ -0,0 +1,48 @@
|
|
|
1
|
+
import { createRequire as __twpCreateRequire } from 'node:module';
|
|
2
|
+
const require = __twpCreateRequire(import.meta.url);
|
|
3
|
+
import{parseCsvRecords}from"./chunk-DYNNGNXR.js";import{importRejection}from"./chunk-RVEOVJTT.js";import{decodeCsvText}from"./chunk-QLENN5DD.js";import"./chunk-VKIFQOWX.js";import"./chunk-EFYFNGBR.js";import"./chunk-EXT4AIDF.js";import"./chunk-5ZPI5YQC.js";import"./chunk-JJSBBWJ5.js";import{nonEmpty}from"./chunk-MI6HVYR2.js";import"./chunk-RX5HWI4L.js";import"./chunk-6LSQCOCJ.js";import"./chunk-UAVL2GLZ.js";import"./chunk-HVZUXLQ4.js";
|
|
4
|
+
import{ApiError,MultipartBody}from"./chunk-JA5A6UJ2.js";import"./chunk-H4CDX4TX.js";import"./chunk-II5RVJQN.js";import{requireResolved,singleRef,withResolved}from"./chunk-PS5QFKHB.js";import{acknowledgement,isRecord,pick}from"./chunk-3ZRMMBP5.js";import{ApiResponseError,UsageError}from"./chunk-VFPY2A23.js";import"./chunk-J7QYPKVK.js";import"./chunk-4VZKNEVN.js";import"./chunk-RZVI6PMW.js";import"./chunk-QQRJLH6B.js";import"./chunk-NHYMHCAT.js";
|
|
5
|
+
import"./chunk-VSJBJXZO.js";import fs from"fs";import path from"path";var NAME="holiday";var LABEL="\u795D\u65E5";var READ_PATH="/api/v2/holidays";var ADMIN_PATH="/api/v2/admin/tenant/holidays";var DATE_RE=/^\d{4}-\d{2}-\d{2}$/;var YEAR_RE=/^\d{4}$/;var NAME_MAX=100;var IMPORT_MAX_BYTES=1024*1024;var SHOWN_DIFF=30;var COLUMNS=["date","name"];var IMPACT="\u795D\u65E5\u306F\u52E4\u6020\u306E\u96C6\u8A08\uFF08\u4F11\u65E5\u52B4\u50CD\u30FB\u6240\u5B9A\u65E5\u6570\uFF09\u3068\u55B6\u696D\u65E5\u6570\u306E\u8A08\u7B97\u306B\u52B9\u304D\u307E\u3059\u3002\u7DE0\u3081\u6E08\u307F\u306E\u6708\u306E\u795D\u65E5\u3092\u5909\u3048\u3066\u3082\u3001\u7DE0\u3081\u305F\u96C6\u8A08\u306F\u81EA\u52D5\u3067\u306F\u76F4\u308A\u307E\u305B\u3093\u3002";
|
|
6
|
+
var FORBIDDEN=`\u7BA1\u7406\u8005\u306E\u6A29\u9650\u304C\u5FC5\u8981\u3067\u3059\u3002${LABEL}\u306E\u4F5C\u6210\u30FB\u66F4\u65B0\u30FB\u524A\u9664\u30FBCSV \u306E\u51FA\u3057\u5165\u308C\u306F\u7BA1\u7406\u8005\u3060\u3051\u304C\u884C\u3048\u307E\u3059`;var DATE_FLAG={name:"--date",summary:"\u5BFE\u8C61\u306E\u65E5\u4ED8\uFF08\u4F4D\u7F6E\u5F15\u6570\u306E\u4EE3\u308F\u308A\u306B\u4F7F\u3048\u308B\uFF09",takesValue:true,placeholder:"<YYYY-MM-DD>"};var NAME_FLAG={name:"--name",summary:`\u795D\u65E5\u540D\uFF08${NAME_MAX}\
|
|
7
|
+
\u6587\u5B57\u4EE5\u5185\u30FB\u5FC5\u9808\uFF09`,takesValue:true,placeholder:"<\u795D\u65E5\u540D>"};var YEAR_FLAG={name:"--year",summary:"\u5BFE\u8C61\u306E\u5E74\uFF08YYYY\uFF09",takesValue:true,placeholder:"<YYYY>"};var OUT_FLAG={name:"--out",summary:"\u66F8\u304D\u51FA\u3057\u5148\u306E\u30D5\u30A1\u30A4\u30EB\u30D1\u30B9\uFF08\u5FC5\u9808\uFF09",takesValue:true,placeholder:"<\u30D1\u30B9>"};var FORCE_FLAG={name:"--force",summary:"\u65E2\u5B58\u306E\u30D5\u30A1\u30A4\u30EB\u3092\u4E0A\u66F8\u304D\u3059\u308B",
|
|
8
|
+
takesValue:false};function usageOf(op){return`twp ${NAME} ${op} help`}function noArgs(input,op){if(input.args.length>0)throw new UsageError(`${op} \u306F\u4F4D\u7F6E\u5F15\u6570\u3092\u53D6\u308A\u307E\u305B\u3093: ${input.args.join(" ")}`,usageOf(op))}function isCalendarDate(value){if(!DATE_RE.test(value))return false;const[y,m,d]=value.split("-").map(Number);const date=new Date(Date.UTC(y,m-1,d));return date.getUTCFullYear()===y&&date.getUTCMonth()===m-1&&date.getUTCDate()===d}function holidayDate(input,op){
|
|
9
|
+
const date=singleRef(input,{flag:DATE_FLAG.name,label:"\u65E5\u4ED8",usage:usageOf(op)});if(!isCalendarDate(date))throw new UsageError(`\u65E5\u4ED8\u306F YYYY-MM-DD \u306E\u5B9F\u5728\u3059\u308B\u65E5\u4ED8\u3067\u6307\u5B9A\u3057\u3066\u304F\u3060\u3055\u3044: ${date}`,`\u4F8B: twp ${NAME} ${op} 2026-12-28`);return date}function dateFlag(input,flag,op){const raw=nonEmpty(input.flags,flag);if(raw===void 0)throw new UsageError(`${flag} <YYYY-MM-DD> \u3092\u6307\u5B9A\u3057\u3066\u304F\u3060\u3055\u3044`,
|
|
10
|
+
usageOf(op));const value=raw.trim();if(!isCalendarDate(value))throw new UsageError(`${flag} \u306F YYYY-MM-DD \u306E\u5B9F\u5728\u3059\u308B\u65E5\u4ED8\u3067\u6307\u5B9A\u3057\u3066\u304F\u3060\u3055\u3044: ${raw}`,usageOf(op));return value}function holidayName(input,op){const raw=nonEmpty(input.flags,NAME_FLAG.name);if(raw===void 0)throw new UsageError(`${NAME_FLAG.name} \u3092\u6307\u5B9A\u3057\u3066\u304F\u3060\u3055\u3044`,usageOf(op));const name=raw.trim();if([...name].length>NAME_MAX)throw new UsageError(
|
|
11
|
+
`${NAME_FLAG.name} \u306F ${NAME_MAX} \u6587\u5B57\u4EE5\u5185\u3067\u6307\u5B9A\u3057\u3066\u304F\u3060\u3055\u3044\uFF08${[...name].length} \u6587\u5B57\uFF09`,usageOf(op));return name}function yearFlag(input,op){const raw=nonEmpty(input.flags,YEAR_FLAG.name);if(raw===void 0)return void 0;const value=raw.trim();if(!YEAR_RE.test(value))throw new UsageError(`--year \u306F4\u6841\u306E\u6570\u5B57\u3067\u6307\u5B9A\u3057\u3066\u304F\u3060\u3055\u3044: ${raw}`,usageOf(op));return value}function envelope(body,what){
|
|
12
|
+
if(!isRecord(body)||body["result"]!==true)throw new ApiResponseError(`${what}\u306E\u5FDC\u7B54\u306E\u5F62\u304C\u60F3\u5B9A\u3068\u9055\u3044\u307E\u3059\u3002\u63A5\u7D9A\u5148\u3092\u78BA\u8A8D\u3057\u3066\u304F\u3060\u3055\u3044\u3002`);return body}function rows(body){const list=envelope(body,`${LABEL}\u4E00\u89A7`)["holidays"];if(!Array.isArray(list)||!list.every(isRecord))throw new ApiResponseError(`${LABEL}\u4E00\u89A7\u306E\u5FDC\u7B54\u306B holidays \u914D\u5217\u304C\u3042\u308A\u307E\u305B\u3093\u3002\u63A5\u7D9A\u5148\u3092\u78BA\u8A8D\u3057\u3066\u304F\u3060\u3055\u3044\u3002`);
|
|
13
|
+
return list}function item(body){const holiday=envelope(body,LABEL)["holiday"];if(!isRecord(holiday)||typeof holiday["date"]!=="string")throw new ApiResponseError(`${LABEL}\u306E\u5FDC\u7B54\u306B holiday \u304C\u3042\u308A\u307E\u305B\u3093\u3002\u63A5\u7D9A\u5148\u3092\u78BA\u8A8D\u3057\u3066\u304F\u3060\u3055\u3044\u3002`);return holiday}var itemPath=date=>`${ADMIN_PATH}/${date}`;function parseHolidayCsv(text,replaceYear){const records=parseCsvRecords(text).filter(r=>!(r.cells.length===1&&r.cells[0]===
|
|
14
|
+
""));const[head,...body]=records;if(head===void 0)throw new UsageError("CSV \u304C\u7A7A\u3067\u3059\uFF081\u884C\u76EE\u306B date,name \u306E\u898B\u51FA\u3057\u304C\u8981\u308A\u307E\u3059\uFF09");const header=head.cells.map(c=>c.trim());const dateCol=header.indexOf("date");const nameCol=header.indexOf("name");if(dateCol<0||nameCol<0)throw new UsageError(`CSV \u306E1\u884C\u76EE\u306B date \u3068 name \u306E\u898B\u51FA\u3057\u304C\u8981\u308A\u307E\u3059\uFF08\u53D7\u3051\u53D6\u3063\u305F\u898B\u51FA\u3057: ${header.
|
|
15
|
+
join(",")}\uFF09`);const errors=[];const holidays=[];for(const record of body){const date=(record.cells[dateCol]??"").trim();const name=(record.cells[nameCol]??"").trim();if(date===""||name===""){errors.push(`${record.line}\u884C\u76EE: date\u3068name\u306F\u5FC5\u9808\u3067\u3059\u3002`)}else if(!DATE_RE.test(date)){errors.push(`${record.line}\u884C\u76EE: \u65E5\u4ED8\u306E\u5F62\u5F0F\u304C\u4E0D\u6B63\u3067\u3059\uFF08YYYY-MM-DD\uFF09\u3002`)}else if(replaceYear!==void 0&&date.slice(0,4)!==replaceYear){
|
|
16
|
+
errors.push(`${record.line}\u884C\u76EE: \u6307\u5B9A\u5E74\uFF08${replaceYear}\uFF09\u4EE5\u5916\u306E\u65E5\u4ED8\u306F\u542B\u3081\u306A\u3044\u3067\u304F\u3060\u3055\u3044\u3002`)}else{holidays.push({date,name})}}if(errors.length>0)throw new UsageError(`CSV \u306B\u8AA4\u308A\u304C ${errors.length} \u4EF6\u3042\u308A\u307E\u3059\uFF08\u9001\u3063\u3066\u3044\u307E\u305B\u3093\uFF09:
|
|
17
|
+
${errors.join("\n ")}`);if(holidays.length===0)throw new UsageError("CSV \u306B\u53D6\u308A\u8FBC\u3080\u884C\u304C\u3042\u308A\u307E\u305B\u3093\uFF08\u898B\u51FA\u3057\u3060\u3051\u3067\u3059\uFF09");return holidays}function holidayDiff(incoming,existing,replaceYear){const final=new Map(incoming.map(h=>[h.date,h.name]));const current=new Map(existing.map(h=>[h.date,h.name]));const added=[];const renamed=[];let unchanged=0;for(const[date,name]of[...final].sort(([a],[b])=>a.localeCompare(b))){
|
|
18
|
+
const before=current.get(date);if(before===void 0)added.push({date,name});else if(before!==name)renamed.push({date,from:before,to:name});else unchanged+=1}const removed=replaceYear===void 0?[]:existing.filter(h=>h.date.startsWith(`${replaceYear}-`)&&!final.has(h.date)).sort((a,b)=>a.date.localeCompare(b.date));return{added,renamed,unchanged,removed}}function diffNotes(diff){const changes=diff.added.length+diff.renamed.length+diff.removed.length;const lines=[`\u5DEE\u5206: \u8FFD\u52A0 ${diff.added.
|
|
19
|
+
length} \u4EF6\u30FB\u540D\u524D\u306E\u5909\u66F4 ${diff.renamed.length} \u4EF6\u30FB\u6D88\u3048\u308B ${diff.removed.length} \u4EF6\u30FB\u5909\u5316\u306A\u3057 ${diff.unchanged} \u4EF6`];if(changes===0){lines.push("\u4ECA\u306E\u795D\u65E5\u3068\u540C\u3058\u3067\u3059\uFF08\u9001\u3063\u3066\u3082\u4F55\u3082\u5909\u308F\u308A\u307E\u305B\u3093\uFF09\u3002");return lines}const detail=[...diff.added.map(h=>` + ${h.date} ${h.name}`),...diff.renamed.map(h=>` ~ ${h.date} ${h.from} \u2192 ${h.
|
|
20
|
+
to}`),...diff.removed.map(h=>` - ${h.date} ${h.name}`)];lines.push(...detail.slice(0,SHOWN_DIFF));if(detail.length>SHOWN_DIFF)lines.push(` \u2026\u307B\u304B ${detail.length-SHOWN_DIFF} \u4EF6`);return lines}async function existingHolidays(ctx,years){const all=[];for(const year of years){const body=await ctx.resolver.salesJson(`${READ_PATH}?year=${year}`,`${year} \u5E74\u306E${LABEL}`);for(const row of rows(body))all.push({date:String(row["date"]),name:String(row["name"]??"")})}return all}var IMPORT_OP=[
|
|
21
|
+
"im","port"].join("");function importMode(input){const raw=nonEmpty(input.flags,"--mode")??"append";if(raw!=="append"&&raw!=="replace")throw new UsageError(`--mode \u306F append \u304B replace \u3067\u3059: ${raw}`,usageOf(IMPORT_OP));const year=yearFlag(input,IMPORT_OP);if(raw==="replace"&&year===void 0)throw new UsageError("--mode replace \u306B\u306F --year <YYYY> \u304C\u8981\u308A\u307E\u3059\uFF08\u305D\u306E\u5E74\u306E\u795D\u65E5\u3092\u5168\u90E8\u6D88\u3057\u3066\u304B\u3089\u53D6\u308A\u8FBC\u307F\u307E\u3059\uFF09",
|
|
22
|
+
usageOf(IMPORT_OP));if(raw==="append"&&year!==void 0)throw new UsageError("--year \u306F --mode replace \u306E\u3068\u304D\u3060\u3051\u6307\u5B9A\u3067\u304D\u307E\u3059",usageOf(IMPORT_OP));return{mode:raw,year}}async function prepareImport(input,ctx){const usage=usageOf(IMPORT_OP);noArgs(input,IMPORT_OP);const{mode,year}=importMode(input);const file=nonEmpty(input.flags,"--file");if(file===void 0)throw new UsageError("--file <CSV> \u3092\u6307\u5B9A\u3057\u3066\u304F\u3060\u3055\u3044",usage);
|
|
23
|
+
let bytes;try{const stat=fs.statSync(file);if(!stat.isFile())throw new UsageError(`--file \u306B\u901A\u5E38\u306E\u30D5\u30A1\u30A4\u30EB\u4EE5\u5916\u306F\u6307\u5B9A\u3067\u304D\u307E\u305B\u3093: ${file}`,usage);if(stat.size>IMPORT_MAX_BYTES)throw new UsageError(`--file \u306E\u30D5\u30A1\u30A4\u30EB\u304C\u5927\u304D\u3059\u304E\u307E\u3059\uFF08${stat.size} \u30D0\u30A4\u30C8\u30FB\u30B5\u30FC\u30D0\u304C\u53D7\u3051\u308B\u306E\u306F ${IMPORT_MAX_BYTES} \u30D0\u30A4\u30C8\u307E\u3067\uFF09: ${file}`,
|
|
24
|
+
usage);bytes=fs.readFileSync(file)}catch(err){if(err instanceof UsageError)throw err;throw new UsageError(`--file \u306E\u30D5\u30A1\u30A4\u30EB\u3092\u8AAD\u3081\u307E\u305B\u3093: ${file}\uFF08${err.code??err.message}\uFF09`,usage)}const incoming=parseHolidayCsv(decodeCsvText(bytes),year);const years=[...new Set([...incoming.map(h=>h.date.slice(0,4)),...year===void 0?[]:[year]])].sort();const diff=holidayDiff(incoming,await existingHolidays(ctx,years),year);const notes=[mode==="replace"?`--mod\
|
|
25
|
+
e replace: ${year} \u5E74\u306E\u795D\u65E5\u3092\u5168\u90E8\u6D88\u3057\u3066\u304B\u3089\u3001CSV \u306E ${incoming.length} \u884C\u3092\u53D6\u308A\u8FBC\u307F\u307E\u3059\u3002`:`--mode append: CSV \u306E ${incoming.length} \u884C\u3092\u53D6\u308A\u8FBC\u307F\u307E\u3059\uFF08\u540C\u3058\u65E5\u4ED8\u306E\u795D\u65E5\u306F\u540D\u524D\u304C\u4E0A\u66F8\u304D\u3055\u308C\u3001CSV \u306B\u7121\u3044\u795D\u65E5\u306F\u6B8B\u308A\u307E\u3059\uFF09\u3002`,...diffNotes(diff),IMPACT];return withResolved(
|
|
26
|
+
input,{fileName:path.basename(file),fileBase64:bytes.toString("base64"),notes:JSON.stringify(notes)})}function importPlan(input){const{mode,year}=importMode(input);const bytes=Buffer.from(requireResolved(input,"fileBase64"),"base64");return{method:"POST",path:`${ADMIN_PATH}/import`,body:new MultipartBody({mode,...year===void 0?{}:{year}},[{field:"file",filename:requireResolved(input,"fileName"),contentType:"text/csv",bytes:new Uint8Array(bytes)}])}}async function runImport(input,ctx){let body;try{
|
|
27
|
+
body=await ctx.send(importPlan(input))}catch(err){const rejected=importRejection(err);if(rejected!==void 0)throw rejected;if(!(err instanceof ApiError)||err.status>=500){ctx.warn(`\u53D6\u308A\u8FBC\u307F\u306E\u9014\u4E2D\u3067\u5931\u6557\u3057\u305F\u53EF\u80FD\u6027\u304C\u3042\u308A\u307E\u3059\u3002\u4E00\u90E8\u306E\u795D\u65E5\u304C\u6D88\u3048\u305F\u30FB\u66F8\u304B\u308C\u305F\u3053\u3068\u304C\u3042\u308B\u306E\u3067\u3001twp ${NAME} list --year \u3067\u78BA\u304B\u3081\u3066\u304F\u3060\u3055\u3044\u3002`)}
|
|
28
|
+
throw err}const result=envelope(body,`${LABEL}\u306E\u53D6\u308A\u8FBC\u307F`);return{holidayImport:true,imported_count:result["imported_count"]??null,message:result["message"]??null}}function isImportOutcome(body){return isRecord(body)&&body["holidayImport"]===true}var holidayDomain={name:NAME,summary:`${LABEL}\uFF08\u30AB\u30EC\u30F3\u30C0\u30FC\u30DE\u30B9\u30BF\u306E\u4E00\u89A7\u30FB\u4F5C\u6210\u30FB\u66F4\u65B0\u30FB\u524A\u9664\u30FBCSV \u306E\u51FA\u3057\u5165\u308C\u3068\u3001\u55B6\u696D\u65E5\u6570\u306E\u8A08\u7B97\uFF09`,
|
|
29
|
+
operations:[{name:"list",summary:`${LABEL}\u3092\u4E00\u89A7\u3059\u308B\uFF08\u5E74\u3054\u3068\uFF09`,usage:`twp ${NAME} list [--year <YYYY>]`,description:`GET ${READ_PATH}\u3002--year \u3092\u7701\u304F\u3068\u30B5\u30FC\u30D0\u306E\u4ECA\u5E74\u3067\u3059\u3002\u305D\u306E\u5E74\u306E\u5168\u4EF6\u3092\u8FD4\u3057\u307E\u3059\uFF08\u30DA\u30FC\u30B8\u30F3\u30B0\u306F\u3042\u308A\u307E\u305B\u3093\uFF09\u3002`,flags:[YEAR_FLAG],plan(input){noArgs(input,"list");return{method:"GET",path:READ_PATH,
|
|
30
|
+
query:{year:yearFlag(input,"list")}}},summarize:body=>rows(body).map(row=>pick(row,COLUMNS)),raw:body=>rows(body)},{name:"create",summary:`${LABEL}\u3092\u767B\u9332\u3059\u308B\uFF08\u7BA1\u7406\u8005\u306E\u307F\u30FB--yes \u304C\u8981\u308B\uFF09`,usage:`twp ${NAME} create <YYYY-MM-DD> --name <\u795D\u65E5\u540D> --yes`,description:`POST ${ADMIN_PATH}\u3002\u540C\u3058\u65E5\u4ED8\u306E${LABEL}\u304C\u65E2\u306B\u3042\u308B\u3068\u30B5\u30FC\u30D0\u304C\u65AD\u308A\u307E\u3059\uFF08update \u3092\u4F7F\u3063\u3066\u304F\u3060\u3055\u3044\uFF09\u3002
|
|
31
|
+
${IMPACT}`,destructive:true,confirmation:"\u52E4\u6020\u306E\u96C6\u8A08\u306B\u52B9\u304F\u64CD\u4F5C",forbidden:FORBIDDEN,flags:[DATE_FLAG,NAME_FLAG],plan:input=>({method:"POST",path:ADMIN_PATH,body:{date:holidayDate(input,"create"),name:holidayName(input,"create")}}),summarize:body=>pick(item(body),COLUMNS),raw:body=>item(body)},{name:"update",summary:`${LABEL}\u306E\u540D\u524D\u3092\u5909\u3048\u308B\uFF08\u7BA1\u7406\u8005\u306E\u307F\u30FB--yes \u304C\u8981\u308B\uFF09`,usage:`twp ${NAME}\
|
|
32
|
+
update <YYYY-MM-DD> --name <\u795D\u65E5\u540D> --yes`,description:`PUT ${ADMIN_PATH}/{date}\u3002\u5909\u3048\u3089\u308C\u308B\u306E\u306F\u540D\u524D\u3060\u3051\u3067\u3059\uFF08\u65E5\u4ED8\u3092\u5909\u3048\u308B\u306A\u3089 delete \u3057\u3066 create\uFF09\u3002
|
|
33
|
+
${IMPACT}`,destructive:true,confirmation:"\u52E4\u6020\u306E\u96C6\u8A08\u306B\u52B9\u304F\u64CD\u4F5C",forbidden:FORBIDDEN,flags:[DATE_FLAG,NAME_FLAG],plan:input=>({method:"PUT",path:itemPath(holidayDate(input,"update")),body:{name:holidayName(input,"update")}}),summarize:body=>pick(item(body),COLUMNS),raw:body=>item(body)},{name:"delete",summary:`${LABEL}\u3092\u524A\u9664\u3059\u308B\uFF08\u7BA1\u7406\u8005\u306E\u307F\u30FB--yes \u304C\u8981\u308B\uFF09`,usage:`twp ${NAME} delete <YYYY-MM-DD\
|
|
34
|
+
> --yes`,description:`DELETE ${ADMIN_PATH}/{date}\u3002
|
|
35
|
+
${IMPACT}`,destructive:true,forbidden:FORBIDDEN,flags:[DATE_FLAG],plan:input=>({method:"DELETE",path:itemPath(holidayDate(input,"delete"))}),summarize:body=>acknowledgement(body,`${LABEL}\u524A\u9664`),raw:body=>acknowledgement(body,`${LABEL}\u524A\u9664`)},{name:"business-days",summary:"\u671F\u9593\u306E\u55B6\u696D\u65E5\u6570\u3092\u6570\u3048\u308B\uFF08\u5E73\u65E5\u304B\u3089\u795D\u65E5\u3092\u9664\u3044\u305F\u65E5\u6570\uFF09",usage:`twp ${NAME} business-days --from <YYYY-MM-DD> --to <\
|
|
36
|
+
YYYY-MM-DD>`,description:`GET ${READ_PATH}/business-days\u3002\u4E21\u7AEF\u3092\u542B\u307F\u307E\u3059\u3002
|
|
37
|
+
\u26A0\uFE0F \u30B5\u30FC\u30D0\u306F**\u6708\u301C\u91D1\u3092\u55B6\u696D\u65E5**\u3068\u3057\u3066\u6570\u3048\u307E\u3059\uFF08twp business-hours \u306E\u66DC\u65E5\u8A2D\u5B9A\u306F\u3053\u306E\u8A08\u7B97\u306B\u4F7F\u308F\u308C\u307E\u305B\u3093\uFF09\u3002`,flags:[{name:"--from",summary:"\u671F\u9593\u306E\u521D\u65E5\uFF08\u5FC5\u9808\uFF09",takesValue:true,placeholder:"<YYYY-MM-DD>"},{name:"--to",summary:"\u671F\u9593\u306E\u672B\u65E5\uFF08\u5FC5\u9808\u30FB--from \u4EE5\u964D\uFF09",
|
|
38
|
+
takesValue:true,placeholder:"<YYYY-MM-DD>"}],plan(input){noArgs(input,"business-days");const from=dateFlag(input,"--from","business-days");const to=dateFlag(input,"--to","business-days");if(to<from)throw new UsageError(`--to \u306F --from \u4EE5\u964D\u306E\u65E5\u4ED8\u306B\u3057\u3066\u304F\u3060\u3055\u3044: ${from} \u301C ${to}`,usageOf("business-days"));return{method:"GET",path:`${READ_PATH}/business-days`,query:{start_date:from,end_date:to}}},summarize:body=>pick(envelope(body,"\u55B6\u696D\u65E5\u6570"),
|
|
39
|
+
["start_date","end_date","business_days"]),raw:body=>pick(envelope(body,"\u55B6\u696D\u65E5\u6570"),["start_date","end_date","business_days"])},{name:"export",summary:`${LABEL}\u3092 CSV \u306B\u66F8\u304D\u51FA\u3059\uFF08\u7BA1\u7406\u8005\u306E\u307F\u30FB--out\uFF09`,usage:`twp ${NAME} export --out <\u30D1\u30B9.csv> [--force] [--year <YYYY>]`,description:`GET ${ADMIN_PATH}/export\u3002\u5217\u306F date,name\u3001\u6587\u5B57\u30B3\u30FC\u30C9\u306F Shift_JIS\uFF08Excel \u306E\u65E2\u5B9A\uFF09\u3067\u3059\u3002--year \u3092\u7701\u304F\u3068\u5168\u5E74\u3067\u3059\u3002
|
|
40
|
+
\u305D\u306E\u307E\u307E twp ${NAME} import --file \u3067\u53D6\u308A\u8FBC\u3081\u307E\u3059\u3002\u65E2\u5B58\u306E\u30D5\u30A1\u30A4\u30EB\u306F\u4E0A\u66F8\u304D\u3057\u307E\u305B\u3093\uFF08\u4E0A\u66F8\u304D\u3059\u308B\u306A\u3089 --force\uFF09\u3002`,flags:[OUT_FLAG,FORCE_FLAG,YEAR_FLAG],download:{outFlag:OUT_FLAG.name,forceFlag:FORCE_FLAG.name},forbidden:FORBIDDEN,plan(input){noArgs(input,"export");return{method:"GET",path:`${ADMIN_PATH}/export`,query:{year:yearFlag(input,"export")}}},summarize:body=>body,
|
|
41
|
+
raw:body=>body},{name:IMPORT_OP,summary:`${LABEL}\u3092 CSV \u3067\u53D6\u308A\u8FBC\u3080\uFF08\u7BA1\u7406\u8005\u306E\u307F\u30FB--yes \u304C\u8981\u308B\u30FB--dry-run \u3067\u5DEE\u5206\u3092\u898B\u3089\u308C\u308B\uFF09`,usage:`twp ${NAME} ${IMPORT_OP} --file <CSV> [--mode append|replace --year <YYYY>] --yes`,description:`POST ${ADMIN_PATH}/import\u3002CSV \u306F1\u884C\u76EE\u304C\u898B\u51FA\u3057\uFF08date,name\uFF09\u3067\u3001UTF-8 \u304B Shift_JIS \u3067\u3059\uFF08export \u306E\u51FA\u529B\u3092\u305D\u306E\u307E\u307E\u4F7F\u3048\u307E\u3059\uFF09\u3002
|
|
42
|
+
--mode append\uFF08\u65E2\u5B9A\uFF09\u306F CSV \u306E\u65E5\u4ED8\u3092\u767B\u9332\u30FB\u4E0A\u66F8\u304D\u3057\u3001CSV \u306B\u7121\u3044\u795D\u65E5\u306F\u6B8B\u3057\u307E\u3059\u3002
|
|
43
|
+
--mode replace \u306F --year \u306E\u5E74\u306E\u795D\u65E5\u3092**\u5168\u90E8\u6D88\u3057\u3066\u304B\u3089**\u53D6\u308A\u8FBC\u307F\u307E\u3059\uFF08CSV \u306B\u306F \u305D\u306E\u5E74\u306E\u65E5\u4ED8\u3060\u3051\u3092\u5165\u308C\u307E\u3059\uFF09\u3002
|
|
44
|
+
\u9001\u308B\u524D\u306B\u3001CSV \u306E\u884C\u3092\u691C\u67FB\u3057\u3001\u5BFE\u8C61\u5E74\u306E\u4ECA\u306E\u795D\u65E5\u3068\u306E\u5DEE\u5206\uFF08\u8FFD\u52A0\u30FB\u540D\u524D\u306E\u5909\u66F4\u30FB\u6D88\u3048\u308B\u30FB\u5909\u5316\u306A\u3057\uFF09\u3092 stderr \u306B\u51FA\u3057\u307E\u3059\u3002
|
|
45
|
+
--dry-run \u306F\u5DEE\u5206\u3092\u51FA\u3057\u3066\u6B62\u307E\u308A\u307E\u3059\uFF08--yes \u306F\u8981\u308A\u307E\u305B\u3093\uFF09\u3002
|
|
46
|
+
`+IMPACT,destructive:true,confirmation:"\u65E2\u5B58\u306E\u795D\u65E5\u3092\u4E0A\u66F8\u304D\u30FB\u524A\u9664\u3057\u3046\u308B\u64CD\u4F5C\uFF08\u5DEE\u5206\u306F --dry-run \u3067\u898B\u3089\u308C\u307E\u3059\uFF09",forbidden:FORBIDDEN,flags:[{name:"--file",summary:"\u53D6\u308A\u8FBC\u3080 CSV\uFF08\u5FC5\u9808\uFF09",takesValue:true,placeholder:"<CSV>"},{name:"--mode",summary:"append\uFF08\u65E2\u5B9A\u30FB\u4E0A\u66F8\u304D\u8FFD\u52A0\uFF09\u304B replace\uFF08--year \u306E\u5E74\u3092\u5165\u308C\u66FF\u3048\uFF09",
|
|
47
|
+
takesValue:true,placeholder:"append|replace"},{...YEAR_FLAG,summary:"--mode replace \u3067\u5165\u308C\u66FF\u3048\u308B\u5E74\uFF08YYYY\uFF09"}],prepare:prepareImport,plan:importPlan,plannedNotes:input=>JSON.parse(requireResolved(input,"notes")),execute:runImport,summarize:body=>isImportOutcome(body)?{imported_count:body.imported_count}:body,raw:body=>isImportOutcome(body)?{imported_count:body.imported_count,message:body.message}:body,notes:body=>isImportOutcome(body)&&typeof body.message==="st\
|
|
48
|
+
ring"?[body.message]:[]}]};export{diffNotes,holidayDiff,holidayDomain,isCalendarDate,parseHolidayCsv};
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import { createRequire as __twpCreateRequire } from 'node:module';
|
|
2
2
|
const require = __twpCreateRequire(import.meta.url);
|
|
3
|
-
import{booleanText,boundedText}from"./chunk-JJSBBWJ5.js";import{repeatedValues}from"./chunk-RX5HWI4L.js";import{INQUIRY_CATEGORIES_PATH}from"./chunk-
|
|
3
|
+
import{booleanText,boundedText}from"./chunk-JJSBBWJ5.js";import{repeatedValues}from"./chunk-RX5HWI4L.js";import{INQUIRY_CATEGORIES_PATH}from"./chunk-UAVL2GLZ.js";import{UUID_RE,isSafePathSegment}from"./chunk-HVZUXLQ4.js";import"./chunk-JA5A6UJ2.js";import"./chunk-H4CDX4TX.js";import"./chunk-II5RVJQN.js";import{requireResolved,singleRef,withResolved}from"./chunk-PS5QFKHB.js";import{isRecord,pick}from"./chunk-3ZRMMBP5.js";import{ApiResponseError,
|
|
4
4
|
UsageError}from"./chunk-VFPY2A23.js";import"./chunk-J7QYPKVK.js";import"./chunk-4VZKNEVN.js";import"./chunk-RZVI6PMW.js";import"./chunk-QQRJLH6B.js";import"./chunk-NHYMHCAT.js";import"./chunk-VSJBJXZO.js";var LABEL="\u554F\u3044\u5408\u308F\u305B\u30AB\u30C6\u30B4\u30EA";var LIST_COLUMNS=["id","category_code","title","sort","is_active","notification_user_count"];var GET_COLUMNS=["id","category_code","title","description","sort","is_active","notification_users"];var FORBIDDEN=`\u7BA1\u7406\u8005\u306E\u6A29\u9650\u304C\u5FC5\u8981\u3067\u3059\u3002${LABEL}\u306E\u8A73\u7D30\u30FB\u4F5C\u6210\u30FB\u66F4\u65B0\u306F\u554F\u3044\u5408\u308F\u305B\u6A5F\u80FD\u306E\u7BA1\u7406\u8005\u3060\u3051\u304C\u884C\u3048\u307E\u3059`;
|
|
5
5
|
var SORT_LAST="last";var CODE_RE=/^[a-zA-Z0-9_-]+$/;var REF_HELP="<\u30AB\u30C6\u30B4\u30EA> \u306F\u30AB\u30C6\u30B4\u30EA\u30B3\u30FC\u30C9\u30FB\u540D\u524D\uFF08title\uFF09\u30FBID \u306E\u3069\u308C\u3067\u3082\u6307\u5B9A\u3067\u304D\u307E\u3059\uFF08\u540D\u524D\u304C\u8907\u6570\u306B\u4E00\u81F4\u3059\u308C\u3070\u5019\u88DC\u3092\u51FA\u3057\u3066\u6B62\u307E\u308A\u307E\u3059\uFF09\u3002\nID \u4EE5\u5916\u306F\u30AB\u30C6\u30B4\u30EA\u4E00\u89A7\uFF08\u65E2\u5B9A10\u5206\u30AD\u30E3\u30C3\u30B7\u30E5\u30FB--refresh \u3067\u53D6\u308A\u76F4\u3057\uFF09\u3068\u7167\u5408\u3057\u307E\u3059\u3002";
|
|
6
6
|
var NOTIFY_HELP="--notify \u306F\u901A\u77E5\u5148\u306E\u30E6\u30FC\u30B6\u30FC\u3067\u3001\u8907\u6570\u56DE\u6307\u5B9A\u3067\u304D\u307E\u3059\u3002\u30E6\u30FC\u30B6\u30FC\u306F ID\u30FB\u30E1\u30FC\u30EB\u30A2\u30C9\u30EC\u30B9\u30FB\u793E\u54E1\u756A\u53F7\u30FB\u6C0F\u540D\u3067\u6307\u5B9A\u3067\u304D\u307E\u3059\n\uFF08ID \u4EE5\u5916\u306F\u30C6\u30CA\u30F3\u30C8\u306E\u30E6\u30FC\u30B6\u30FC\u4E00\u89A7\u3068\u7167\u5408\u3057\u307E\u3059\u3002\u7D44\u7E54\u7BA1\u7406\u8005\u3067\u306A\u3044\u5834\u5408\u306F ID \u3067\u6307\u5B9A\u3057\u3066\u304F\u3060\u3055\u3044\uFF09\u3002";
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import { createRequire as __twpCreateRequire } from 'node:module';
|
|
2
2
|
const require = __twpCreateRequire(import.meta.url);
|
|
3
|
-
import{invoiceNoRuleResource}from"./chunk-
|
|
4
|
-
nonEmpty,pageNumberPaging,pageNumberQuery,pageRangeNotes}from"./chunk-MI6HVYR2.js";import{repeatedValues}from"./chunk-RX5HWI4L.js";import{readBody}from"./chunk-6LSQCOCJ.js";import{SALES_INVOICES_PATH,SALES_INVOICE_AUTO_TEMPLATES_PATH,isExactNumericId,resolveNamed}from"./chunk-
|
|
3
|
+
import{invoiceNoRuleResource}from"./chunk-CXYDOAUY.js";import"./chunk-5NXO4FRO.js";import"./chunk-QLENN5DD.js";import{invoiceAiReviewResources}from"./chunk-ZMVHGXTO.js";import{invoicePdfOperation}from"./chunk-RKREN2F6.js";import{featureLicenseGuidance,invoiceFilters,invoiceReadOperations,licenseForbidden}from"./chunk-3N6GRIXQ.js";import{booleanText,isoDate}from"./chunk-JJSBBWJ5.js";import{LIST_PAGING_HELP,PAGE_NUMBER_LIST_FLAGS,PAGE_NUMBER_PAGING_HELP,STABLE_PAGE_ORDER,
|
|
4
|
+
nonEmpty,pageNumberPaging,pageNumberQuery,pageRangeNotes}from"./chunk-MI6HVYR2.js";import{repeatedValues}from"./chunk-RX5HWI4L.js";import{readBody}from"./chunk-6LSQCOCJ.js";import{SALES_INVOICES_PATH,SALES_INVOICE_AUTO_TEMPLATES_PATH,isExactNumericId,resolveNamed}from"./chunk-UAVL2GLZ.js";import"./chunk-HVZUXLQ4.js";import{ApiError}from"./chunk-JA5A6UJ2.js";import"./chunk-H4CDX4TX.js";import"./chunk-II5RVJQN.js";import{requireResolved,withResolved}from"./chunk-PS5QFKHB.js";
|
|
5
5
|
import{acknowledgement,isRecord,pick}from"./chunk-3ZRMMBP5.js";import{ApiResponseError,UsageError}from"./chunk-VFPY2A23.js";import"./chunk-XNLIEUAW.js";import"./chunk-J7QYPKVK.js";import"./chunk-4VZKNEVN.js";import"./chunk-RZVI6PMW.js";import"./chunk-QQRJLH6B.js";import"./chunk-NHYMHCAT.js";import"./chunk-VSJBJXZO.js";var PATH=SALES_INVOICE_AUTO_TEMPLATES_PATH;var HISTORY_SEARCH_PATH="/api/v2/sales/invoice-auto-issue-histories";var FORMATS_PATH="/api/v2/sales/estimate-formats";function adminForbidden(body){return body?.error==="permission_denied"?featureLicenseGuidance("\u8CA9\u58F2\u7BA1\u7406"):"\u81EA\u52D5\u8ACB\u6C42\u30C6\u30F3\u30D7\u30EC\u30FC\u30C8\u3068\u767A\u884C\u5C65\u6B74\u306F\u3001\u8CA9\u58F2\u7BA1\u7406\u306E\u6A29\u9650\u304C\u300C\u7BA1\u7406\u8005\u300D\u306E\u4EBA\u3060\u3051\u304C\u6271\u3048\u307E\u3059\u3002\u30C6\u30CA\u30F3\u30C8\u7BA1\u7406\u8005\u306B\u78BA\u8A8D\u3057\u3066\u304F\u3060\u3055\u3044\u3002"}
|
|
6
6
|
var CONTENT_KEYS=["template_name","estimate_format_id","interval_months","next_issue_date","period_start_date","period_end_date","payment_term_months","payment_term_day","estimate_expiration_months","estimate_expiration_day","order_acceptance_months","order_acceptance_day","invoice_date_months","invoice_date_day","estimate_business_place_id","estimate_seal_impression_id","invoice_business_place_id","invoice_seal_impression_id","company_id","project_id","payee_id","estimate_user_id","invoice_user\
|
|
7
7
|
_id","detail","memo","template_memo","notification_user_ids","estimate_manage_content","invoice_manage_content","is_active"];var DETAIL_KEYS=["list"];var DETAIL_ROW_KEYS=["title","price","quantity","unit","tax","delivery_date"];var NOT_SAVED_KEYS=["period_start_months","period_start_day","period_end_months","period_end_day"];var FIELD_NOTES=[["template_name","\u4F5C\u6210\u3067\u5FC5\u9808\u3002\u30C6\u30F3\u30D7\u30EC\u30FC\u30C8\u540D\uFF08255 \u6587\u5B57\u307E\u3067\uFF09"],["estimate_format\
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import { createRequire as __twpCreateRequire } from 'node:module';
|
|
2
2
|
const require = __twpCreateRequire(import.meta.url);
|
|
3
|
-
import{STATUS_VALUES,flatMasterDomain}from"./chunk-
|
|
3
|
+
import{STATUS_VALUES,flatMasterDomain}from"./chunk-5ZPI5YQC.js";import"./chunk-JJSBBWJ5.js";import"./chunk-MI6HVYR2.js";import{JOB_TITLES_PATH}from"./chunk-UAVL2GLZ.js";import"./chunk-HVZUXLQ4.js";import"./chunk-JA5A6UJ2.js";import"./chunk-H4CDX4TX.js";import"./chunk-II5RVJQN.js";import"./chunk-PS5QFKHB.js";import"./chunk-3ZRMMBP5.js";import"./chunk-VFPY2A23.js";import"./chunk-J7QYPKVK.js";import"./chunk-4VZKNEVN.js";import"./chunk-RZVI6PMW.js";
|
|
4
4
|
import"./chunk-NHYMHCAT.js";import"./chunk-VSJBJXZO.js";var jobTitleDomain=flatMasterDomain({name:"job-title",label:"\u8077\u4F4D",path:JOB_TITLES_PATH,itemKey:"job_title",summary:"\u8077\u4F4D\u30DE\u30B9\u30BF\uFF08\u4E00\u89A7\u30FB\u53D6\u5F97\u30FB\u4F5C\u6210\u30FB\u66F4\u65B0\u30FB\u524A\u9664\uFF09",listColumns:["id","code","name","sort_order","status","position_id","base_selling_price","base_cost_price"],getColumns:["id","code","name","name_short","sort_order","status","position_id","base_selling_price","base_cost_price","description"],fields:[
|
|
5
5
|
{kind:"text",flag:"--name-short",key:"name_short",label:"\u7565\u79F0",maxChars:50,summary:"\u7565\u79F0"},{kind:"integer",flag:"--sort-order",key:"sort_order",label:"\u8868\u793A\u9806",min:0,max:9999,summary:"\u8868\u793A\u9806\uFF080\u301C9999\uFF09"},{kind:"enum",flag:"--status",key:"status",values:STATUS_VALUES,summary:"\u72B6\u614B\uFF08active: \u6709\u52B9 / inactive: \u7121\u52B9\uFF09"},{kind:"text",flag:"--description",key:"description",label:"\u8AAC\u660E",maxChars:1e3,summary:"\u8AAC\u660E"},
|
|
6
6
|
{kind:"integer",flag:"--base-selling-price",key:"base_selling_price",label:"\u57FA\u6E96\u58F2\u4FA1",min:0,summary:"\u57FA\u6E96\u58F2\u4FA1\uFF080\u4EE5\u4E0A\u306E\u6574\u6570\uFF09"},{kind:"integer",flag:"--base-cost-price",key:"base_cost_price",label:"\u57FA\u6E96\u539F\u4FA1",min:0,summary:"\u57FA\u6E96\u539F\u4FA1\uFF080\u4EE5\u4E0A\u306E\u6574\u6570\uFF09"},{kind:"text",flag:"--skill-requirements",key:"skill_requirements",label:"\u30B9\u30AD\u30EB\u8981\u4EF6",maxChars:5e3,summary:"\u30B9\u30AD\u30EB\u8981\u4EF6"},
|
|
@@ -1,8 +1,8 @@
|
|
|
1
1
|
import { createRequire as __twpCreateRequire } from 'node:module';
|
|
2
2
|
const require = __twpCreateRequire(import.meta.url);
|
|
3
3
|
import{buildDiffLines,diffStat}from"./chunk-VRBI2NPI.js";import{composeDocument,meetingContentToText,metaLine,noteContentToText,oneLine,textOutline,textSection,wikiContentToText}from"./chunk-C7MO3RHJ.js";import{dateFlag}from"./chunk-EXT4AIDF.js";import{boundedText}from"./chunk-JJSBBWJ5.js";import{LIST_FLAGS,LIST_PAGING_HELP,envelopePaging,nonEmpty,positiveInteger}from"./chunk-MI6HVYR2.js";import{repeatedValues}from"./chunk-RX5HWI4L.js";import{charCount,readBody}from"./chunk-6LSQCOCJ.js";
|
|
4
|
-
import"./chunk-
|
|
5
|
-
import"./chunk-RZVI6PMW.js";import"./chunk-QQRJLH6B.js";import"./chunk-NHYMHCAT.js";import"./chunk-VSJBJXZO.js";var WIKI_PATH="/api/v2/wiki";var WIKI_SUMMARY_FIELDS="summary";function withoutContent(page){const rest={...page};delete rest["content"];return rest}var NOTES_PATH="/api/v2/notes";var MEETINGS_PATH="/api/v2/meetings";var ROOT_PARENT="root";var WIKI_STATUSES=["draft","published"];var WIKI_CONTENT_FORMATS=["html","markdown"];var NOTE_STATUSES=["draft","published"];var NOTE_VISIBILITIES=["private","tenant","external","public"];var NOTE_SORTS=["manual","created_at","updated_at","view_count","comment\
|
|
4
|
+
import"./chunk-UAVL2GLZ.js";import{ResolveError,isSafePathSegment}from"./chunk-HVZUXLQ4.js";import{ApiError}from"./chunk-JA5A6UJ2.js";import"./chunk-H4CDX4TX.js";import"./chunk-II5RVJQN.js";import{requireResolved,withResolved}from"./chunk-PS5QFKHB.js";import{acknowledgement,isRecord,pick}from"./chunk-3ZRMMBP5.js";import{ApiRejectedError,ApiResponseError,UsageError}from"./chunk-VFPY2A23.js";import"./chunk-J7QYPKVK.js";import"./chunk-4VZKNEVN.js";
|
|
5
|
+
import"./chunk-RZVI6PMW.js";import"./chunk-QQRJLH6B.js";import"./chunk-NHYMHCAT.js";import"./chunk-VSJBJXZO.js";import path from"path";var WIKI_PATH="/api/v2/wiki";var WIKI_SUMMARY_FIELDS="summary";function withoutContent(page){const rest={...page};delete rest["content"];return rest}var NOTES_PATH="/api/v2/notes";var MEETINGS_PATH="/api/v2/meetings";var ROOT_PARENT="root";var WIKI_STATUSES=["draft","published"];var WIKI_CONTENT_FORMATS=["html","markdown"];var NOTE_STATUSES=["draft","published"];var NOTE_VISIBILITIES=["private","tenant","external","public"];var NOTE_SORTS=["manual","created_at","updated_at","view_count","comment\
|
|
6
6
|
_count","reaction_count"];var MEETING_STATUSES=["draft","published","archived"];var MEETING_TYPES=["regular","client","internal","retrospective","decision","one_on_one"];var MEETING_SORTS=["meeting_date","created_at","updated_at","title"];var SORT_ORDERS=["asc","desc"];var MEETING_TAGS_MAX=20;var MEETING_TAG_MAX_CHARS=50;var DATE_FLOOR="0000-01-01";var DATE_CEIL="9999-12-31";var WIKI_LIST_COLUMNS=["id","title","status","parent_page_id","updated_at","updated_by_name"];var WIKI_STALE_COLUMNS=["id",
|
|
7
7
|
"title","status","verified_at","knowledge_kind","evidence_task_keys","updated_at"];var WIKI_CHILD_COLUMNS=["id","title","status","child_count","updated_at","updated_by_name"];var WIKI_GET_COLUMNS=["id","title","status","content_format","parent_page_id","version","tags","verified_at","evidence_task_keys","knowledge_kind","updated_at","updated_by_name"];var NOTE_LIST_COLUMNS=["id","title","status","visibility","created_by_name","updated_at","comment_count","reaction_count"];var NOTE_GET_COLUMNS=["\
|
|
8
8
|
id","title","status","visibility","content_type","category_name","tags","created_by_name","updated_at","view_count"];var MEETING_LIST_COLUMNS=["id","meeting_date","title","meeting_type","status","project_name","created_by_name"];var MEETING_GET_COLUMNS=["id","title","meeting_date","meeting_type","status","project_name","category_name","created_by_name","updated_at"];var TEXT_OUTPUT_HELP="--output text \u306F\u672C\u6587\u3092\u8AAD\u3080\u305F\u3081\u306E\u6587\u66F8\uFF08\u898B\u51FA\u3057\u30FB\u30E1\u30BF\u60C5\u5831\u30FB\u672C\u6587\uFF09\u3092\u51FA\u3057\u307E\u3059\u3002HTML \u3068\u5171\u540C\u7DE8\u96C6\u30A8\u30C7\u30A3\u30BF\u306E JSON \u306F\n\u5E73\u6587\u3078\u5909\u63DB\u3057\u3001\u898B\u51FA\u3057\u30FB\u7B87\u6761\u66F8\u304D\u30FB\u30EA\u30F3\u30AF\u306F Markdown \u98A8\u306B\u6B8B\u3057\u307E\u3059\u3002--out\
|
|
@@ -33,19 +33,28 @@ takesValue:true,placeholder:"<\u65E5\u6570>"}],paging:wikiPaging,async prepare(i
|
|
|
33
33
|
input);if(parent===void 0){return staleDays(input)!==void 0&&isRecord(body)?{...body,[STALE_VIEW]:true}:body}return{result:true,items:childrenOf(body,parent),has_more:false,next_cursor:null}},summarize:body=>{const rows=envelopeRows(body,wikiPaging,`${WIKI_LABEL}\u4E00\u89A7`);const columns=rows.some(row=>isRecord(row)&&"child_count"in row)?WIKI_CHILD_COLUMNS:isRecord(body)&&body[STALE_VIEW]===true?WIKI_STALE_COLUMNS:WIKI_LIST_COLUMNS;return rows.map(row=>pick(row,columns))},raw:body=>envelopeRows(
|
|
34
34
|
body,wikiPaging,`${WIKI_LABEL}\u4E00\u89A7`).map(row=>isRecord(row)?withoutContent(row):row),notes:staleDaysNotes};function wikiTreeQuery(input){return{project_id:requireResolved(input,"project"),fields:WIKI_SUMMARY_FIELDS}}function wikiDocument(body){const view=wikiGetView(body);if(view!==void 0)return wikiViewDocument(view);const page=record(body,"page",WIKI_LABEL);return composeDocument(page["title"],[...metaLine("\u72B6\u614B",page["status"]),...metaLine("\u5F62\u5F0F",page["content_format"]),
|
|
35
35
|
...metaLine("\u30BF\u30B0",page["tags"]),...metaLine("\u89AA\u30DA\u30FC\u30B8",page["parent_page_id"]),...metaLine("\u6700\u7D42\u5B9F\u6E2C\u65E5",page["verified_at"]),...metaLine("\u6839\u62E0\u30BF\u30B9\u30AF",page["evidence_task_keys"]),...metaLine("\u7A2E\u5225",page["knowledge_kind"]),...metaLine("\u7248",page["version"]),...metaLine("\u66F4\u65B0",page["updated_at"]),...metaLine("\u66F4\u65B0\u8005",page["updated_by_name"]),...metaLine("ID",page["id"])],[{body:wikiContentToText(page["co\
|
|
36
|
-
ntent"],page["content_format"])}])}
|
|
37
|
-
""
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
"
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
|
|
36
|
+
ntent"],page["content_format"])}])}var WIKI_GET_USAGE="twp wiki get <\u30DA\u30FC\u30B8ID> [<\u30DA\u30FC\u30B8ID> ...] | --path <\u89AA\u4EF6\u540D/\u5B50\u4EF6\u540D> [--project <\u30B3\u30FC\u30C9|ID>]\uFF081\u4EF6\u306E\u3068\u304D\u306F [--outline | --section <\u898B\u51FA\u3057>] \u3082\u4ED8\u3051\u3089\u308C\u308B\uFF09";function wikiPathSegments(raw){const text2=raw.trim().replace(/^\//,"");const segments=[];let current="";for(let i=0;i<text2.length;i++){const ch=text2[i];const next=text2[i+
|
|
37
|
+
1];if(ch==="\\"&&(next==="/"||next==="\\")){current+=next;i++}else if(ch==="/"){segments.push(current);current=""}else{current+=ch}}segments.push(current);if(segments.some(segment=>segment.trim()==="")){throw new UsageError(`--path \u306B\u7A7A\u306E\u4EF6\u540D\u304C\u542B\u307E\u308C\u3066\u3044\u307E\u3059: ${raw}`,"\u300C\u89AA\u4EF6\u540D/\u5B50\u4EF6\u540D\u300D\u306E\u5F62\u3067\u6307\u5B9A\u3057\u3066\u304F\u3060\u3055\u3044\uFF08\u4EF6\u540D\u306E\u4E2D\u306E / \u306F \\/ \u3068\u66F8\u304D\u307E\u3059\uFF09\u3002")}
|
|
38
|
+
return segments}function wikiPathRef(input){const raw=input.flags.get("--path");if(raw===void 0){if(input.flags.has("--project")){throw new UsageError("--project \u306F --path \u3068\u4E00\u7DD2\u306B\u3060\u3051\u6307\u5B9A\u3067\u304D\u307E\u3059","\u30DA\u30FC\u30B8 ID \u3067\u53D6\u308B\u3068\u304D\u306F\u30D7\u30ED\u30B8\u30A7\u30AF\u30C8\u306E\u6307\u5B9A\u306F\u8981\u308A\u307E\u305B\u3093\u3002")}return void 0}if(input.args.length>0){throw new UsageError(`\u30DA\u30FC\u30B8 ID\uFF08${input.
|
|
39
|
+
args.join(" ")}\uFF09\u3068 --path \u306F\u540C\u6642\u306B\u6307\u5B9A\u3067\u304D\u307E\u305B\u3093`,WIKI_GET_USAGE)}if(raw.trim()==="")throw new UsageError("--path \u306B\u7A7A\u306E\u5024\u306F\u6307\u5B9A\u3067\u304D\u307E\u305B\u3093",WIKI_GET_USAGE);return wikiPathSegments(raw)}function foldTitle(value){return typeof value==="string"?value.trim().toLowerCase():void 0}function wikiPathNodes(nodes,trail){return nodes.filter(isRecord).map(page=>({page,trail:[...trail,typeof page["title"]==="\
|
|
40
|
+
string"?page["title"]:""],children:Array.isArray(page["children"])?page["children"]:[]}))}function formatTrail(trail){return trail.map(title=>title.replace(/\\/g,"\\\\").replace(/\//g,"\\/")).join("/")}function describeNode(node){return`${formatTrail(node.trail)}\uFF08${String(node.page["id"])}\uFF09`}function listNodes(nodes,limit=10){const shown=nodes.slice(0,limit).map(describeNode).join(" / ");return nodes.length>limit?`${shown} \u2026\uFF08\u5168 ${nodes.length} \u4EF6\uFF09`:shown}function nodesTitled(tree,title){
|
|
41
|
+
const needle=foldTitle(title);const found=[];const stack=wikiPathNodes(tree,[]).reverse();while(stack.length>0){const node=stack.pop();if(foldTitle(node.page["title"])===needle)found.push(node);stack.push(...wikiPathNodes(node.children,node.trail).reverse())}return found}function resolveWikiPath(body,segments,raw){const tree=isRecord(body)&&body["result"]===true?body["tree"]:void 0;if(!Array.isArray(tree))throw new ApiResponseError(`${WIKI_LABEL}\u306E\u30C4\u30EA\u30FC\u306E\u5FDC\u7B54\u306B tree \u914D\u5217\u304C\u3042\u308A\u307E\u305B\u3093\u3002\u63A5\u7D9A\u5148\u3092\u78BA\u8A8D\u3057\u3066\u304F\u3060\u3055\u3044\u3002`);
|
|
42
|
+
let frontier=wikiPathNodes(tree,[]);for(const[depth,segment]of segments.entries()){const needle=foldTitle(segment);const hits=frontier.filter(node=>foldTitle(node.page["title"])===needle&&typeof node.page["id"]==="string");if(hits.length===0){const where=depth===0?"\u6700\u4E0A\u4F4D":`\u300C${formatTrail(segments.slice(0,depth))}\u300D\u306E\u76F4\u4E0B`;const elsewhere=nodesTitled(tree,segment);const titles=[...new Set(frontier.map(node=>node.trail.at(-1)??""))].filter(title=>title!=="");const hint=elsewhere.
|
|
43
|
+
length>0?`\u540C\u3058\u4EF6\u540D\u306E\u30DA\u30FC\u30B8\u306F\u5225\u306E\u5834\u6240\u306B\u3042\u308A\u307E\u3059: ${listNodes(elsewhere)}`:titles.length>0?`${where}\u306E\u4EF6\u540D: ${titles.slice(0,10).join(" / ")}${titles.length>10?` \u2026\uFF08\u5168 ${titles.length} \u4EF6\uFF09`:""}`:`${where}\u306B\u30DA\u30FC\u30B8\u306F\u3042\u308A\u307E\u305B\u3093\u3002`;throw new UsageError(`--path \u306E\u300C${raw}\u300D\u306B\u4E00\u81F4\u3059\u308B ${WIKI_LABEL}\u304C\u3042\u308A\u307E\u305B\u3093\uFF08${where}\
|
|
44
|
+
\u306B\u300C${segment}\u300D\u3068\u3044\u3046\u4EF6\u540D\u306E\u30DA\u30FC\u30B8\u304C\u3042\u308A\u307E\u305B\u3093\u3002\u524A\u9664\u6E08\u307F\u30FB\u4ED6\u4EBA\u306E\u4E0B\u66F8\u304D\u306F\u898B\u3048\u307E\u305B\u3093\uFF09`,hint)}if(depth===segments.length-1){if(hits.length===1)return String(hits[0]?.page["id"]);throw new UsageError(`--path \u306E\u300C${raw}\u300D\u304C ${WIKI_LABEL}${hits.length}\u4EF6\u306B\u4E00\u81F4\u3057\u307E\u3059: ${listNodes(hits)}`,"\u30DA\u30FC\u30B8 ID \u3067\u6307\u5B9A\u3057\u3066\u304F\u3060\u3055\u3044\uFF08twp wik\
|
|
45
|
+
i get <\u30DA\u30FC\u30B8ID>\uFF09\u3002")}frontier=hits.flatMap(node=>wikiPathNodes(node.children,node.trail))}throw new Error("\u5185\u90E8\u30A8\u30E9\u30FC: --path \u306E\u4EF6\u540D\u304C\u7A7A\u3067\u3059")}function isWikiPages(body){return isRecord(body)&&Array.isArray(body["pages"])}function wikiGetIds(input){const ids=input.args.map(raw=>raw.trim());if(ids.length===0||ids.every(id=>id===""))throw new UsageError("\u30DA\u30FC\u30B8\u306E ID \u3092\u6307\u5B9A\u3057\u3066\u304F\u3060\u3055\u3044",
|
|
46
|
+
"twp wiki get help");for(const id of ids){if(!isSafePathSegment(id))throw new UsageError(`\u30DA\u30FC\u30B8\u306E ID \u3068\u3057\u3066\u4F7F\u3048\u306A\u3044\u5024\u3067\u3059: ${id===""?"(\u7A7A)":id}`,"\u30DA\u30FC\u30B8\u306E ID \u306F twp wiki list \u306E id \u5217\u3067\u78BA\u8A8D\u3067\u304D\u307E\u3059\u3002")}return ids}function wikiPagePlan(id){return{method:"GET",path:`${WIKI_PATH}/${encodeURIComponent(id)}`}}function isPageFailure(err){return err instanceof ApiError&&err.status!==
|
|
47
|
+
401&&err.status!==429}async function wikiGetMany(input,ctx){const ids=wikiGetIds(input);if(ids.length===1)return ctx.send(wikiPagePlan(ids[0]));const pages=[];const failed=[];for(const id of ids){let body;try{body=await ctx.send(wikiPagePlan(id))}catch(err){if(!isPageFailure(err))throw err;failed.push({target:id,error:err});continue}pages.push(record(body,"page",WIKI_LABEL))}const result={result:true,pages,failed};return result}function wikiGetPlan(input){return wikiPathRef(input)!==void 0?{method:"\
|
|
48
|
+
GET",path:`${WIKI_PATH}/tree`,query:wikiTreeQuery(input)}:wikiPagePlan(wikiGetIds(input)[0])}var WIKI_VIEW_KEY="twp_wiki_view";var WIKI_SECTION_CANDIDATES_MAX=50;var WIKI_VIEW_PAGE_FIELDS=["id","title","version","content_format","updated_at"];function wikiGetView(body){const view=isRecord(body)?body[WIKI_VIEW_KEY]:void 0;return isRecord(view)?view:void 0}function wikiGetMode(input){const outline=input.flags.has("--outline");const raw=input.flags.get("--section");if(outline&&raw!==void 0){throw new UsageError(
|
|
49
|
+
"--outline \u3068 --section \u306F\u540C\u6642\u306B\u6307\u5B9A\u3067\u304D\u307E\u305B\u3093",'\u898B\u51FA\u3057\u306E\u4E00\u89A7\u306F --outline\u30011\u3064\u306E\u7BC0\u306F --section "<\u898B\u51FA\u3057>" \u3067\u3059\u3002')}if(raw!==void 0&&raw.replace(/^#+/,"").trim()===""){throw new UsageError("--section \u306B\u898B\u51FA\u3057\u3092\u6307\u5B9A\u3057\u3066\u304F\u3060\u3055\u3044","\u898B\u51FA\u3057\u306F twp wiki get <\u30DA\u30FC\u30B8ID> --outline \u3067\u78BA\u8A8D\u3067\u304D\u307E\u3059\u3002")}
|
|
50
|
+
if((outline||raw!==void 0)&&wikiPathRef(input)===void 0&&wikiGetIds(input).length>1){throw new UsageError("--outline / --section \u306F\u30DA\u30FC\u30B8 ID \u30921\u3064\u3060\u3051\u6307\u5B9A\u3057\u3066\u304F\u3060\u3055\u3044","\u8907\u6570\u306E\u30DA\u30FC\u30B8\u306F1\u4EF6\u305A\u3064 twp wiki get <\u30DA\u30FC\u30B8ID> --outline \u3092\u5B9F\u884C\u3057\u3066\u304F\u3060\u3055\u3044\u3002")}return{outline,section:raw}}function wikiGetNarrow(body,outline,section){const page=record(body,
|
|
51
|
+
"page",WIKI_LABEL);const text2=wikiContentToText(page["content"],page["content_format"]);const summary=pick(page,WIKI_VIEW_PAGE_FIELDS);const options={markdown:page["content_format"]==="markdown"};if(outline)return{result:true,[WIKI_VIEW_KEY]:{kind:"outline",page:summary,outline:textOutline(text2,options)}};const found=textSection(text2,section??"",options);if(found===void 0){const titles=textOutline(text2,options).map(h=>`${"#".repeat(h.level)} ${oneLine(h.title)}`);const shown=titles.slice(0,WIKI_SECTION_CANDIDATES_MAX);
|
|
52
|
+
const rest=titles.length-shown.length;throw new UsageError(`\u898B\u51FA\u3057\u300C${oneLine(section??"")}\u300D\u306F\u30DA\u30FC\u30B8 ${String(page["id"])} \u306B\u3042\u308A\u307E\u305B\u3093`,titles.length===0?"\u3053\u306E\u30DA\u30FC\u30B8\u306B\u306F\u898B\u51FA\u3057\u304C\u3042\u308A\u307E\u305B\u3093\u3002\u5168\u6587\u306F --section \u3092\u5916\u3057\u3066\u8AAD\u3081\u307E\u3059\u3002":`\u30DA\u30FC\u30B8\u306E\u898B\u51FA\u3057:
|
|
44
53
|
${shown.join("\n ")}${rest>0?`
|
|
45
|
-
\u2026\u307B\u304B ${rest} \u4EF6\uFF08\u5168\u4EF6\u306F --outline\uFF09`:""}`)}return{result:true,[WIKI_VIEW_KEY]:{kind:"section",page:summary,section:{level:found.level,title:found.title,content:found.text,matches:found.matches}}}}async function wikiGetExecute(input,ctx){const{outline,section}=wikiGetMode(input);
|
|
46
|
-
const meta=[...metaLine("\u7248",view.page["version"]),...metaLine("ID",view.page["id"])];if(view.kind==="outline"){const lines=view.outline.map(h=>`${" ".repeat(h.level-1)}${"#".repeat(h.level)} ${h.title}\uFF08${h.chars}\u5B57\uFF09`);return composeDocument(view.page["
|
|
47
|
-
section.title)}`],[{body:view.section.content}])}function wikiViewRaw(view){return view.kind==="outline"?{...view.page,outline:view.outline}:{...view.page,section:view.section}}var wikiGet={name:"get",summary:`${WIKI_LABEL}\u306E\u8A73\u7D30\u3092\u8868\u793A\u3059\u308B\uFF08ID \u3092\u4E26\u3079\u308B\u3068\u8907\u6570\u30DA\u30FC\u30B8\u30FB--
|
|
48
|
-
|
|
54
|
+
\u2026\u307B\u304B ${rest} \u4EF6\uFF08\u5168\u4EF6\u306F --outline\uFF09`:""}`)}return{result:true,[WIKI_VIEW_KEY]:{kind:"section",page:summary,section:{level:found.level,title:found.title,content:found.text,matches:found.matches}}}}async function wikiGetExecute(input,ctx){const{outline,section}=wikiGetMode(input);const segments=wikiPathRef(input);const narrow=outline||section!==void 0;if(segments===void 0&&!narrow)return wikiGetMany(input,ctx);const id=segments===void 0?wikiGetIds(input)[0]:
|
|
55
|
+
resolveWikiPath(await ctx.send(wikiGetPlan(input)),segments,input.flags.get("--path")?.trim()??"");const body=await ctx.send(wikiPagePlan(id));return narrow?wikiGetNarrow(body,outline,section):body}function wikiViewDocument(view){const meta=[...metaLine("\u7248",view.page["version"]),...metaLine("ID",view.page["id"])];if(view.kind==="outline"){const lines=view.outline.map(h=>`${" ".repeat(h.level-1)}${"#".repeat(h.level)} ${h.title}\uFF08${h.chars}\u5B57\uFF09`);return composeDocument(view.page["\
|
|
56
|
+
title"],meta,[{heading:"\u898B\u51FA\u3057",body:lines.length===0?"\uFF08\u898B\u51FA\u3057\u306F\u3042\u308A\u307E\u305B\u3093\uFF09":lines.join("\n")}])}return composeDocument(view.page["title"],[...meta,`\u7BC0: ${oneLine(view.section.title)}`],[{body:view.section.content}])}function wikiViewRaw(view){return view.kind==="outline"?{...view.page,outline:view.outline}:{...view.page,section:view.section}}var wikiGet={name:"get",summary:`${WIKI_LABEL}\u306E\u8A73\u7D30\u3092\u8868\u793A\u3059\u308B\uFF08ID \u3092\u4E26\u3079\u308B\u3068\u8907\u6570\u30DA\u30FC\u30B8\u30FB--path \u3067\u4EF6\u540D\u304B\u3089\u5F15\u304F\u30FB--output \
|
|
57
|
+
text \u3067\u672C\u6587\u3092\u8AAD\u3080\u30FB--outline / --section \u3067\u5FC5\u8981\u306A\u7BC0\u3060\u3051\uFF09`,usage:WIKI_GET_USAGE,description:`${TEXT_OUTPUT_HELP}
|
|
49
58
|
|
|
50
59
|
--output table / tsv \u306F\u8981\u7D04\u5217\uFF08${WIKI_GET_COLUMNS.join(" / ")}\uFF09\u3067\u3059\u3002
|
|
51
60
|
\u4ED6\u4EBA\u306E\u4E0B\u66F8\u304D\uFF08\u3068\u3001\u4ED6\u4EBA\u306E\u4E0B\u66F8\u304D\u306E\u30B3\u30EC\u30AF\u30B7\u30E7\u30F3\u914D\u4E0B\u306E\u30DA\u30FC\u30B8\uFF09\u306F\u300C\u898B\u3064\u304B\u308A\u307E\u305B\u3093\u300D\u306B\u306A\u308A\u307E\u3059\uFF08\u30B5\u30FC\u30D0\u306E\u5224\u5B9A\uFF09\u3002
|
|
@@ -55,7 +64,12 @@ ID \u3092\u8907\u6570\u4E26\u3079\u308B\u30681\u4EF6\u305A\u3064\u53D6\u5F97\u30
|
|
|
55
64
|
\u898B\u3064\u304B\u3089\u306A\u3044\u30FB\u6A29\u9650\u304C\u7121\u3044\u30DA\u30FC\u30B8\u304C\u3042\u3063\u3066\u3082\u4ED6\u306E\u30DA\u30FC\u30B8\u306F\u51FA\u3057\u3001\u53D6\u308C\u306A\u304B\u3063\u305F ID \u3068\u7406\u7531\u3092 stderr \u306B\u51FA\u3057\u3066
|
|
56
65
|
\u7D42\u4E86\u30B3\u30FC\u30C9 3\uFF08\u30B5\u30FC\u30D0\u306E 5xx \u304C\u6DF7\u3058\u308C\u3070 4\uFF09\u3067\u7D42\u308F\u308A\u307E\u3059\u3002401\u30FB429 \u306E\u3068\u304D\u306F\u9014\u4E2D\u3067\u6B62\u3081\u3066\u4F55\u3082\u51FA\u3057\u307E\u305B\u3093\u3002
|
|
57
66
|
|
|
58
|
-
\
|
|
67
|
+
--path \u306F ID \u306E\u4EE3\u308F\u308A\u306B\u4EF6\u540D\u306E\u968E\u5C64\uFF08\u6700\u4E0A\u4F4D\u304B\u3089\u300C\u89AA\u4EF6\u540D/\u5B50\u4EF6\u540D\u300D\uFF09\u3067\u30DA\u30FC\u30B8\u3092\u6307\u3057\u307E\u3059\u3002--project \u3092\u7701\u304F\u3068\u65E2\u5B9A\u306E\u30D7\u30ED\u30B8\u30A7\u30AF\u30C8\u3067\u3059\u3002
|
|
68
|
+
\u4EF6\u540D\u306F\u524D\u5F8C\u306E\u7A7A\u767D\u3068\u5927\u6587\u5B57\u5C0F\u6587\u5B57\u3060\u3051\u3092\u7121\u8996\u3057\u305F\u5B8C\u5168\u4E00\u81F4\u3067\u7167\u5408\u3057\u307E\u3059\uFF08\u90E8\u5206\u4E00\u81F4\u3067\u306F\u9078\u3073\u307E\u305B\u3093\uFF09\u3002\u4EF6\u540D\u306E\u4E2D\u306E / \u306F \\/ \u3068\u66F8\u304D\u307E\u3059\u3002
|
|
69
|
+
\u540C\u3058\u4EF6\u540D\u306E\u30DA\u30FC\u30B8\u304C\u8907\u6570\u3042\u3063\u30661\u4EF6\u306B\u6C7A\u307E\u3089\u306A\u3044\u3068\u304D\u30FB\u898B\u3064\u304B\u3089\u306A\u3044\u3068\u304D\u306F\u3001\u5019\u88DC\u3092\u51FA\u3057\u3066\u7D42\u4E86\u30B3\u30FC\u30C9 2 \u3067\u6B62\u307E\u308A\u307E\u3059\u3002
|
|
70
|
+
\u30DA\u30FC\u30B8\u306E\u89AA\u5B50\u69CB\u9020\u30921\u56DE\u5F15\u3044\u3066 ID \u3092\u6C7A\u3081\u3066\u304B\u3089\u3001\u305D\u306E\u30DA\u30FC\u30B8\u3092\u53D6\u5F97\u3057\u307E\u3059\uFF082\u5F80\u5FA9\uFF09\u3002\u4E0B\u66F8\u304D\u306F\u898B\u3048\u308B\u30DA\u30FC\u30B8\u3060\u3051\u304C\u5019\u88DC\u306B\u306A\u308A\u307E\u3059\u3002
|
|
71
|
+
|
|
72
|
+
\u9577\u3044\u30DA\u30FC\u30B8\u306F\u5168\u6587\u3092\u8AAD\u307E\u305A\u306B\u6E08\u307E\u305B\u3089\u308C\u307E\u3059\uFF08ID \u306F1\u3064\u3060\u3051\u6307\u5B9A\u3059\u308B\u304B --path \u3067\u6307\u3057\u307E\u3059\uFF09\u3002
|
|
59
73
|
--outline \u898B\u51FA\u3057\u306E\u4E00\u89A7\uFF08\u968E\u5C64\u3068\u3001\u5404\u7BC0\u306E\u6587\u5B57\u6570\uFF1D\u4E0B\u4F4D\u306E\u7BC0\u3092\u542B\u3080\uFF09\u3060\u3051\u3092\u51FA\u3059
|
|
60
74
|
--section <\u898B\u51FA\u3057> \u305D\u306E\u898B\u51FA\u3057\u304B\u3089\u3001\u6B21\u306E\u540C\u3058\u304B\u4E0A\u306E\u30EC\u30D9\u30EB\u306E\u898B\u51FA\u3057\u306E\u624B\u524D\u307E\u3067\u3092\u51FA\u3059
|
|
61
75
|
\u898B\u51FA\u3057\u306F\u5B8C\u5168\u4E00\u81F4\uFF08\u7A7A\u767D\u306E\u9055\u3044\u30FB\u5927\u6587\u5B57\u5C0F\u6587\u5B57\u306F\u7121\u8996\uFF09\u3067\u63A2\u3057\u3001\u90E8\u5206\u4E00\u81F4\u3067\u306F\u9078\u3073\u307E\u305B\u3093\u3002\u898B\u3064\u304B\u3089\u306A\u3051\u308C\u3070\u5019\u88DC\u306E\u898B\u51FA\u3057\u3092\u51FA\u3057\u3066\u7D42\u4E86\u30B3\u30FC\u30C9 2 \u3067\u3059\u3002
|
|
@@ -64,11 +78,15 @@ ID \u3092\u8907\u6570\u4E26\u3079\u308B\u30681\u4EF6\u305A\u3064\u53D6\u5F97\u30
|
|
|
64
78
|
|
|
65
79
|
\u4F8B:
|
|
66
80
|
twp wiki get <ID1> <ID2> <ID3> --output text
|
|
81
|
+
twp wiki get --path "\u904B\u7528/\u30EA\u30EA\u30FC\u30B9\u624B\u9806" --output text
|
|
82
|
+
twp wiki get --project TWP --path "\u8A2D\u8A08\\/\u65B9\u91DD/DB"
|
|
67
83
|
twp wiki get 0f8b2c6e-... --outline
|
|
68
|
-
twp wiki get
|
|
69
|
-
|
|
70
|
-
|
|
71
|
-
|
|
84
|
+
twp wiki get --path "\u904B\u7528/\u30EA\u30EA\u30FC\u30B9\u624B\u9806" --section "\u30ED\u30FC\u30EB\u30D0\u30C3\u30AF"`,flags:[{name:"--path",summary:"\u4EF6\u540D\u306E\u968E\u5C64\uFF08\u89AA\u4EF6\u540D/\u5B50\u4EF6\u540D\uFF09\u3067\u30DA\u30FC\u30B8\u3092\u6307\u3059",takesValue:true,placeholder:"<\u89AA\u4EF6\u540D/\u5B50\u4EF6\u540D>"},{name:"--project",summary:"--path \u3067\u5F15\u304F\u30D7\u30ED\u30B8\u30A7\u30AF\u30C8\uFF08\u30B3\u30FC\u30C9\u304B ID\u3002\u7701\u7565\u6642\u306F\u65E2\u5B9A\u306E\u30D7\u30ED\u30B8\u30A7\u30AF\u30C8\uFF09",
|
|
85
|
+
takesValue:true,placeholder:"<\u30B3\u30FC\u30C9|ID>"},{name:"--outline",summary:"\u898B\u51FA\u3057\u306E\u4E00\u89A7\uFF08\u968E\u5C64\u30FB\u7BC0\u306E\u6587\u5B57\u6570\uFF09\u3060\u3051\u3092\u51FA\u3059",takesValue:false},{name:"--section",summary:"\u305D\u306E\u898B\u51FA\u3057\u306E\u7BC0\u3060\u3051\u3092\u51FA\u3059",takesValue:true,placeholder:"<\u898B\u51FA\u3057>"}],async prepare(input,ctx){wikiGetMode(input);if(wikiPathRef(input)===void 0)return input;return withResolved(input,{project:await ctx.
|
|
86
|
+
projectId(input.flags.get("--project"))})},plan:input=>{wikiGetMode(input);return wikiGetPlan(input)},plannedNotes:input=>{if(wikiPathRef(input)!==void 0)return[`\u3053\u306E\u3042\u3068\u3001\u4EF6\u540D\u306E\u968E\u5C64\u304B\u3089\u6C7A\u3081\u305F\u30DA\u30FC\u30B8\u3092 GET ${WIKI_PATH}/<\u30DA\u30FC\u30B8ID> \u3067\u53D6\u5F97\u3057\u307E\u3059\u3002`];const ids=wikiGetIds(input);return ids.length>1?[`\u3053\u306E\u3042\u3068\u3001\u6B8B\u308A\u306E ${ids.length-1} \u4EF6\u3082 GET ${WIKI_PATH}\
|
|
87
|
+
/<\u30DA\u30FC\u30B8ID> \u30671\u4EF6\u305A\u3064\u53D6\u5F97\u3057\u307E\u3059\u3002`]:[]},execute:wikiGetExecute,summarize:body=>{if(isWikiPages(body))return body.pages.map(page=>pick(page,WIKI_GET_COLUMNS));const view=wikiGetView(body);if(view===void 0)return pick(record(body,"page",WIKI_LABEL),WIKI_GET_COLUMNS);if(view.kind==="outline")return view.outline.map(h=>({version:view.page["version"],...h}));return{...view.page,section:view.section.title,level:view.section.level,content:view.section.
|
|
88
|
+
content}},raw:body=>{if(isWikiPages(body))return body.pages;const view=wikiGetView(body);return view===void 0?record(body,"page",WIKI_LABEL):wikiViewRaw(view)},notes:body=>{const view=wikiGetView(body);if(view?.kind!=="section"||view.section.matches<2)return[];return[`\u898B\u51FA\u3057\u300C${oneLine(view.section.title)}\u300D\u306F\u30DA\u30FC\u30B8\u5185\u306B ${view.section.matches} \u500B\u3042\u308A\u307E\u3059\u3002\u6700\u521D\u306E\u3082\u306E\u3092\u51FA\u3057\u307E\u3057\u305F\u3002`]},
|
|
89
|
+
document:body=>{if(!isWikiPages(body))return wikiDocument(body);const total=body.pages.length;return body.pages.map((page,index)=>{const title=typeof page["title"]==="string"&&page["title"].trim()!==""?oneLine(page["title"]):"(\u7121\u984C)";return`=== ${index+1}/${total} ${title}\uFF08ID: ${String(page["id"]??"")}\uFF09 ===
|
|
72
90
|
|
|
73
91
|
${wikiDocument({result:true,page})}`}).join("\n")},failures:body=>isWikiPages(body)?body.failed:[]};var WIKI_VERSIONS_MAX=100;var WIKI_TAGS_MAX=50;var WIKI_TREE_COLUMNS=["depth","id","title","status","child_count","parent_page_id","updated_at"];var WIKI_VERSION_COLUMNS=["version","title","content_format","changed_by_name","changed_at"];var WIKI_BACKLINK_COLUMNS=["id","title","status","link_context","updated_at","updated_by_name"];var WIKI_LINKED_TASK_COLUMNS=["key","subject","status_id","task_id",
|
|
74
92
|
"project_id","created_by_name","created_at"];function pageIdAndRest(input,usage){const[raw,...rest]=input.args;const id=raw?.trim()??"";if(id==="")throw new UsageError("\u30DA\u30FC\u30B8\u306E ID \u3092\u6307\u5B9A\u3057\u3066\u304F\u3060\u3055\u3044",usage);if(!isSafePathSegment(id))throw new UsageError(`\u30DA\u30FC\u30B8\u306E ID \u3068\u3057\u3066\u4F7F\u3048\u306A\u3044\u5024\u3067\u3059: ${id}`,"\u30DA\u30FC\u30B8\u306E ID \u306F twp wiki list / twp wiki tree \u306E id \u5217\u3067\u78BA\u8A8D\u3067\u304D\u307E\u3059\u3002");
|
|
@@ -134,9 +152,10 @@ status_id \u306F\u30BF\u30B9\u30AF\u306E\u30B9\u30C6\u30FC\u30BF\u30B9\u306E ID
|
|
|
134
152
|
--output table / text / tsv \u306F\u8981\u7D04\u5217\uFF08${WIKI_LINKED_TASK_COLUMNS.join(" / ")}\uFF09\u3001--output json \u306F\u30EA\u30F3\u30AF\u306E\u5168\u30D5\u30A3\u30FC\u30EB\u30C9\uFF08task \u306E\u5165\u308C\u5B50\u3092\u542B\u3080\uFF09\u3067\u3059\u3002`,flags:[],plan:input=>({method:"GET",path:`${WIKI_PATH}/${encodeURIComponent(singleId(input,"twp wiki linked-tasks","\u30DA\u30FC\u30B8","twp wiki list"))}/linked-tasks`}),summarize:body=>arrayField(body,"linked_tasks",`${WIKI_LABEL}\
|
|
135
153
|
\u306E\u95A2\u9023\u30BF\u30B9\u30AF`).map(linkedTaskRow),raw:body=>arrayField(body,"linked_tasks",`${WIKI_LABEL}\u306E\u95A2\u9023\u30BF\u30B9\u30AF`)};var WIKI_CONTENT_MAX_CHARS=4e5;var WIKI_TITLE_MAX_CHARS=255;var WIKI_TAG_MAX_CHARS=50;var WIKI_CREATE_USAGE="twp wiki create --project <\u30B3\u30FC\u30C9|ID> --title <\u4EF6\u540D> --content-file <\u30D1\u30B9|-> [--content-format <html|markdown>] [--parent <\u30DA\u30FC\u30B8ID>] [--status <draft|published>] [--tag <\u30BF\u30B0>]... [--verified-at <\u65E5\u4ED8|today>] [--evidence-task <\u30AD\u30FC>]... [--kind <\u7A2E\u5225>]";
|
|
136
154
|
var WIKI_UPDATE_USAGE="twp wiki update <\u30DA\u30FC\u30B8ID> [--title <\u4EF6\u540D>] [--content-file <\u30D1\u30B9|->] [--content-format <html|markdown>] [--status <draft|published>] [--tag <\u30BF\u30B0>]... [--clear-tags] [--verified-at <\u65E5\u4ED8|today>|--clear-verified-at] [--evidence-task <\u30AD\u30FC>...|--clear-evidence-tasks] [--kind <\u7A2E\u5225>|--clear-kind] [--if-version <\u7248>]";var WIKI_MOVE_USAGE="twp wiki move <\u30DA\u30FC\u30B8ID> [--parent <\u30DA\u30FC\u30B8ID>|root] [--sort-order <\u9806>]";
|
|
137
|
-
var CONTENT_FILE_FLAG={name:"--content-file",summary:"\u672C\u6587\u3092\u8AAD\u3080\u30D5\u30A1\u30A4\u30EB\uFF08- \u3067\u6A19\u6E96\u5165\u529B\uFF09\u3002\u52A0\u5DE5\u305B\u305A\u306B\u9001\u308B",takesValue:true,placeholder:"<\u30D1\u30B9|->"};var WIKI_CONTENT_FORMAT_FLAG={name:"--content-format",summary:`\u672C\u6587\u306E\u5F62\u5F0F\uFF08${WIKI_CONTENT_FORMATS.join(" / ")}\uFF09`,takesValue:true,placeholder:"<\u5F62\u5F0F>"};var
|
|
138
|
-
|
|
139
|
-
--
|
|
155
|
+
var CONTENT_FILE_FLAG={name:"--content-file",summary:"\u672C\u6587\u3092\u8AAD\u3080\u30D5\u30A1\u30A4\u30EB\uFF08- \u3067\u6A19\u6E96\u5165\u529B\uFF09\u3002\u52A0\u5DE5\u305B\u305A\u306B\u9001\u308B",takesValue:true,placeholder:"<\u30D1\u30B9|->"};var WIKI_CONTENT_FORMAT_FLAG={name:"--content-format",summary:`\u672C\u6587\u306E\u5F62\u5F0F\uFF08${WIKI_CONTENT_FORMATS.join(" / ")}\uFF09`,takesValue:true,placeholder:"<\u5F62\u5F0F>"};var WIKI_FORMAT_BY_EXTENSION={".md":"markdown",".markdown":"ma\
|
|
156
|
+
rkdown",".html":"html",".htm":"html"};function inferredWikiFormat(input){if(input.flags.has("--content-format"))return void 0;const file=input.flags.get("--content-file");if(file===void 0||file==="-")return void 0;const extension=path.extname(file).toLowerCase();const format=WIKI_FORMAT_BY_EXTENSION[extension];return format===void 0?void 0:{format,extension}}var WIKI_STATUS_FLAG={name:"--status",summary:`\u72B6\u614B\uFF08${WIKI_STATUSES.join(" / ")}\uFF09`,takesValue:true,placeholder:"<\u72B6\u614B>"};
|
|
157
|
+
var WIKI_TAG_FLAG={name:"--tag",summary:`\u30BF\u30B0\uFF08\u8907\u6570\u56DE\u53EF\u30FB${WIKI_TAG_MAX_CHARS}\u6587\u5B57\u4EE5\u5185\uFF09`,takesValue:true,placeholder:"<\u30BF\u30B0>",repeatable:true};var WIKI_WRITE_HELP="\u672C\u6587\u306F --content-file \u306E\u30D5\u30A1\u30A4\u30EB\uFF08- \u3067\u6A19\u6E96\u5165\u529B\uFF09\u304B\u3089\u8AAD\u307F\u3001\u52A0\u5DE5\u305B\u305A\u306B\u9001\u308A\u307E\u3059\uFF08\u5148\u982D\u306E BOM \u3060\u3051\u843D\u3068\u3057\u307E\u3059\uFF09\u3002\n\u672C\u6587\u306E\u5F62\u5F0F\u306F --content-format\uFF08html / markdown\uFF09\u3067\u6307\u5B9A\u3057\u307E\u3059\u3002\u7701\u304F\u3068 --content-file \u306E\u62E1\u5F35\u5B50\u3067\u6C7A\u3081\u307E\u3059\uFF08.md / .markdown \u306F markdown\u3001.html / .htm \u306F html\uFF09\u3002\u62E1\u5F35\u5B50\u3067\u6C7A\u307E\u3089\u306A\u3051\u308C\u3070\u5F62\u5F0F\u3092\u9001\u3089\u305A\u3001\u30D7\u30ED\u30B8\u30A7\u30AF\u30C8\u306E\u65E2\u5B9A\u306E\u5F62\u5F0F\u306B\u306A\u308A\u307E\u3059\uFF08\u672A\u8A2D\u5B9A\u306A\u3089 HTML\u3002\u65E2\u5B9A\u306F twp project update --wiki-default-\
|
|
158
|
+
format \u3067\u8A2D\u5B9A\uFF09\u3002\nHTML \u306E\u30DA\u30FC\u30B8\u306B Markdown \u3092\u9001\u3063\u3066\u3082\u5909\u63DB\u3057\u306A\u3044\u306E\u3067\u3001\u753B\u9762\u3067\u306F\u8A18\u53F7\u306E\u307E\u307E\u8868\u793A\u3055\u308C\u307E\u3059\u3002\n\u30DA\u30FC\u30B8\u306E\u5F62\u5F0F\u306F\u4F5C\u6210\u5F8C\u306B\u5909\u3048\u3089\u308C\u307E\u305B\u3093\uFF08update \u3067\u9055\u3046\u5F62\u5F0F\u3092\u6307\u5B9A\u3059\u308B\u3068\u30B5\u30FC\u30D0\u304C\u65AD\u308A\u307E\u3059\uFF09\u3002update \u3067\u5F62\u5F0F\u3092\u62E1\u5F35\u5B50\u304B\u3089\u6C7A\u3081\u305F\u3068\u304D\u306F\u3001\u9001\u308B\u524D\u306B\u30DA\u30FC\u30B8\u306E\u5F62\u5F0F\u3068\u7167\u5408\u3057\u3001\u9055\u3048\u3070\u4F55\u3082\u9001\u3089\u305A\u306B\u6B62\u307E\u308A\u307E\u3059\u3002\n\u7DE8\u96C6\u30FB\u79FB\u52D5\u30FB\u524A\u9664\u3067\u304D\u308B\u306E\u306F\u3001\u30DA\u30FC\u30B8\u306E\u4F5C\u6210\u8005\u30FBwiki \u306E\u7BA1\u7406\u8005\u30FB\u7D44\u7E54\u306E\u7BA1\u7406\u8005\u3067\u3059\uFF08\u6A29\u9650\u304C\u7121\u3051\u308C\u3070\u30B5\u30FC\u30D0\u306E 403 \u306E\u6587\u9762\u3092\u305D\u306E\u307E\u307E\u51FA\u3057\u307E\u3059\uFF09\u3002";
|
|
140
159
|
async function wikiContent(input,usage){return readBody(input,{flag:"--content",fileFlag:"--content-file",label:"wiki \u306E\u672C\u6587",maxChars:WIKI_CONTENT_MAX_CHARS,usage})}function wikiTitle(input){const raw=input.flags.get("--title");if(raw===void 0)return void 0;if(raw.trim()==="")throw new UsageError("--title \u304C\u7A7A\u3067\u3059","\u4EF6\u540D\u3092\u6307\u5B9A\u3057\u3066\u304F\u3060\u3055\u3044\u3002");const count=charCount(raw);if(count>WIKI_TITLE_MAX_CHARS){throw new UsageError(
|
|
141
160
|
`--title \u304C\u9577\u3059\u304E\u307E\u3059\uFF08${count} \u6587\u5B57\u30FB\u4E0A\u9650 ${WIKI_TITLE_MAX_CHARS} \u6587\u5B57\uFF09`,"\u30B5\u30FC\u30D0\u306E\u4E0A\u9650\u304C255\u6587\u5B57\u3067\u3059\u3002")}return raw}function wikiTags(input){const tags=repeatedValues(input,"--tag").map(tag=>tag.trim());const clear=input.flags.has("--clear-tags");if(clear&&tags.length>0){throw new UsageError("--tag \u3068 --clear-tags \u306F\u4F75\u7528\u3067\u304D\u307E\u305B\u3093","--tag \u306F\u30BF\u30B0\u3092\u307E\u308B\u3054\u3068\u7F6E\u304D\u63DB\u3048\u307E\u3059\
|
|
142
161
|
\u3002\u6D88\u3059\u3060\u3051\u306A\u3089 --clear-tags \u3060\u3051\u3092\u6307\u5B9A\u3057\u3066\u304F\u3060\u3055\u3044\u3002")}if(clear)return[];if(tags.length===0)return void 0;for(const tag of tags){if(tag==="")throw new UsageError("--tag \u304C\u7A7A\u3067\u3059","\u30BF\u30B0\u3092\u6307\u5B9A\u3057\u3066\u304F\u3060\u3055\u3044\u3002");if(charCount(tag)>WIKI_TAG_MAX_CHARS){throw new UsageError(`--tag \u304C\u9577\u3059\u304E\u307E\u3059\uFF08${tag}\u30FB\u4E0A\u9650 ${WIKI_TAG_MAX_CHARS}\
|
|
@@ -158,18 +177,24 @@ ${WIKI_FRESHNESS_HELP}
|
|
|
158
177
|
\u4F8B:
|
|
159
178
|
twp wiki create --project TWP --title \u904B\u7528\u624B\u9806 --content-file notes.html --status published --tag \u904B\u7528
|
|
160
179
|
twp wiki create --project TWP --title \u843D\u3068\u3057\u7A74 --content-file notes.md --content-format markdown --verified-at today --evidence-task PRJ-123 --kind \u843D\u3068\u3057\u7A74
|
|
161
|
-
twp wiki create --project TWP --title \u904B\u7528\u624B\u9806 --content-file notes.md
|
|
180
|
+
twp wiki create --project TWP --title \u904B\u7528\u624B\u9806 --content-file notes.md # \u62E1\u5F35\u5B50\u304B\u3089 markdown
|
|
162
181
|
cat page.html | twp wiki create --title \u4E0B\u66F8\u304D --content-file - --dry-run`,flags:[{name:"--project",summary:"\u30D7\u30ED\u30B8\u30A7\u30AF\u30C8\uFF08\u30B3\u30FC\u30C9\u304B ID\u3002\u7701\u7565\u6642\u306F\u65E2\u5B9A\u306E\u30D7\u30ED\u30B8\u30A7\u30AF\u30C8\uFF09",takesValue:true,placeholder:"<\u30B3\u30FC\u30C9|ID>"},{name:"--title",summary:`\u4EF6\u540D\uFF08\u5FC5\u9808\u30FB${WIKI_TITLE_MAX_CHARS}\u6587\u5B57\u4EE5\u5185\uFF09`,takesValue:true,placeholder:"<\u4EF6\u540D>"},
|
|
163
182
|
CONTENT_FILE_FLAG,WIKI_CONTENT_FORMAT_FLAG,{name:"--parent",summary:"\u89AA\u30DA\u30FC\u30B8\u306E ID\uFF08\u7701\u7565\u6642\u306F\u6700\u4E0A\u4F4D\uFF09",takesValue:true,placeholder:"<\u30DA\u30FC\u30B8ID>"},WIKI_STATUS_FLAG,WIKI_TAG_FLAG,...WIKI_FRESHNESS_FLAGS],async prepare(input,ctx){noArgs(input,"twp wiki create");if(wikiTitle(input)===void 0)throw new UsageError("--title \u3092\u6307\u5B9A\u3057\u3066\u304F\u3060\u3055\u3044",WIKI_CREATE_USAGE);oneOf(input,"--status",WIKI_STATUSES);oneOf(
|
|
164
183
|
input,"--content-format",WIKI_CONTENT_FORMATS);wikiTags(input);wikiParent(input,false);wikiFreshnessBody(input);const content=await wikiContent(input,WIKI_CREATE_USAGE);if(content===void 0)throw new UsageError("\u672C\u6587\u3092 --content-file \u3067\u6307\u5B9A\u3057\u3066\u304F\u3060\u3055\u3044\uFF08- \u3067\u6A19\u6E96\u5165\u529B\uFF09",WIKI_CREATE_USAGE);return withResolved(input,{project:await ctx.projectId(input.flags.get("--project")),content})},plan(input){const parent=wikiParent(input,
|
|
165
|
-
false);const contentFormat=oneOf(input,"--content-format",WIKI_CONTENT_FORMATS);return{method:"POST",path:WIKI_PATH,body:{project_id:requireResolved(input,"project"),title:wikiTitle(input),content:requireResolved(input,"content"),...contentFormat!==void 0?{content_format:contentFormat}:{},...oneOf(input,"--status",WIKI_STATUSES)!==void 0?{status:oneOf(input,"--status",WIKI_STATUSES)}:{},...parent!==void 0?{parent_page_id:parent}:{},...wikiTags(input)!==void 0?{
|
|
166
|
-
input)}}},plannedNotes:input=>[...input.flags.has("--status")?[]:["--status \u3092\u7701\u3044\u305F\u306E\u3067\u4E0B\u66F8\u304D\uFF08draft\uFF09\u3067\u4F5C\u308A\u307E\u3059\uFF08\u30B5\u30FC\u30D0\u306E\u65E2\u5B9A\uFF09\u3002"],...input.flags.has("--content-format")
|
|
167
|
-
|
|
168
|
-
|
|
169
|
-
|
|
184
|
+
false);const contentFormat=oneOf(input,"--content-format",WIKI_CONTENT_FORMATS)??inferredWikiFormat(input)?.format;return{method:"POST",path:WIKI_PATH,body:{project_id:requireResolved(input,"project"),title:wikiTitle(input),content:requireResolved(input,"content"),...contentFormat!==void 0?{content_format:contentFormat}:{},...oneOf(input,"--status",WIKI_STATUSES)!==void 0?{status:oneOf(input,"--status",WIKI_STATUSES)}:{},...parent!==void 0?{parent_page_id:parent}:{},...wikiTags(input)!==void 0?{
|
|
185
|
+
tags:wikiTags(input)}:{},...wikiFreshnessBody(input)}}},plannedNotes:input=>[...input.flags.has("--status")?[]:["--status \u3092\u7701\u3044\u305F\u306E\u3067\u4E0B\u66F8\u304D\uFF08draft\uFF09\u3067\u4F5C\u308A\u307E\u3059\uFF08\u30B5\u30FC\u30D0\u306E\u65E2\u5B9A\uFF09\u3002"],...wikiCreateFormatNotes(input)],summarize:body=>pick(pageFrom(body),WIKI_GET_COLUMNS),raw:pageFrom};function wikiCreateFormatNotes(input){if(input.flags.has("--content-format"))return[];const inferred=inferredWikiFormat(
|
|
186
|
+
input);if(inferred!==void 0){return[`--content-format \u3092\u7701\u3044\u305F\u306E\u3067\u3001--content-file \u306E\u62E1\u5F35\u5B50\uFF08${inferred.extension}\uFF09\u304B\u3089 ${inferred.format} \u306E\u30DA\u30FC\u30B8\u3068\u3057\u3066\u4F5C\u308A\u307E\u3059\u3002\u9055\u3046\u5F62\u5F0F\u306B\u3059\u308B\u306A\u3089 --content-format \u3092\u6307\u5B9A\u3057\u3066\u304F\u3060\u3055\u3044\u3002`]}return["--content-format \u3092\u7701\u304D\u3001\u62E1\u5F35\u5B50\u304B\u3089\u3082\u5F62\u5F0F\u304C\u6C7A\u307E\u3089\u306A\u3044\u306E\u3067\u5F62\u5F0F\u3092\u9001\u308A\u307E\u305B\u3093\u3002\u30D7\u30ED\u30B8\u30A7\u30AF\u30C8\u306E\u65E2\u5B9A\u306E\u5F62\u5F0F\u3067\u4F5C\u308A\u307E\u3059\uFF08\u672A\u8A2D\u5B9A\u306A\u3089 HTML\u3002twp projec\
|
|
187
|
+
t get \u306E wiki_default_content_format \u3067\u78BA\u8A8D\u3067\u304D\u307E\u3059\uFF09\u3002"]}async function previewWikiUpdate(input,ctx){const expected=positiveInteger(input.flags,"--if-version");const inferred=inferredWikiFormat(input);if(expected===void 0&&inferred===void 0)return{notes:[],warnings:[]};const id=singleId(input,"twp wiki update","\u30DA\u30FC\u30B8","twp wiki list");const page=pageFrom(await ctx.send({method:"GET",path:`${WIKI_PATH}/${encodeURIComponent(id)}`}));const notes=[];
|
|
188
|
+
if(expected!==void 0){const current=page["version"];if(current!==expected){throw new ApiRejectedError(`\u30DA\u30FC\u30B8 ${id} \u306E\u7248\u304C ${String(current)} \u3067\u3059\uFF08--if-version ${expected}\uFF09\u3002\u4ED6\u306E\u66F4\u65B0\u3068\u885D\u7A81\u3057\u305F\u306E\u3067\u4F55\u3082\u9001\u3063\u3066\u3044\u307E\u305B\u3093\u3002twp wiki get \u3067\u6700\u65B0\u306E\u672C\u6587\u3092\u8AAD\u307F\u3001\u53CD\u6620\u3057\u76F4\u3057\u3066\u304B\u3089 --if-version \u3092\u4ED8\u3051\u76F4\u3057\u3066\u304F\u3060\u3055\u3044\u3002`)}
|
|
189
|
+
notes.push(`\u7248 ${expected} \u3092\u78BA\u8A8D\u3057\u307E\u3057\u305F\uFF08\u7248\u7167\u5408\u306B\u5BFE\u5FDC\u3057\u305F\u30B5\u30FC\u30D0\u3067\u306F\u9001\u4FE1\u6642\u306B\u3082\u7167\u5408\u3057\u3001\u9593\u306B\u4ED6\u306E\u66F4\u65B0\u304C\u3042\u308C\u3070 409 \u3067\u6B62\u307E\u308A\u307E\u3059\uFF09\u3002`)}if(inferred!==void 0){const pageFormat=typeof page["content_format"]==="string"&&page["content_format"]!==""?page["content_format"]:"html";if(pageFormat!==inferred.format){throw new ApiRejectedError(
|
|
190
|
+
`\u30DA\u30FC\u30B8 ${id} \u306E\u5F62\u5F0F\u306F ${pageFormat} \u3067\u3059\u304C\u3001--content-file \u306E\u62E1\u5F35\u5B50\uFF08${inferred.extension}\uFF09\u306F ${inferred.format} \u3067\u3059\u3002\u4F55\u3082\u9001\u3063\u3066\u3044\u307E\u305B\u3093\u3002\u30DA\u30FC\u30B8\u306E\u5F62\u5F0F\u306F\u4F5C\u6210\u5F8C\u306B\u5909\u3048\u3089\u308C\u307E\u305B\u3093\u3002\u672C\u6587\u3092 ${pageFormat} \u3067\u66F8\u304D\u76F4\u3059\u304B\u3001${inferred.format} \u3067\u65B0\u3057\u3044\u30DA\u30FC\u30B8\u3092\u4F5C\u3063\u3066\u304F\u3060\u3055\u3044\uFF08\u3053\u306E\u672C\u6587\u3092\u305D\u306E\u307E\u307E\u9001\u308B\
|
|
191
|
+
\u306A\u3089 --content-format ${pageFormat} \u3092\u660E\u793A\u3057\u3066\u304F\u3060\u3055\u3044\uFF09\u3002`)}notes.push(`--content-file \u306E\u62E1\u5F35\u5B50\uFF08${inferred.extension}\uFF09\u304C\u30DA\u30FC\u30B8\u306E\u5F62\u5F0F\uFF08${pageFormat}\uFF09\u3068\u4E00\u81F4\u3059\u308B\u3053\u3068\u3092\u78BA\u8A8D\u3057\u307E\u3057\u305F\u3002`)}return{notes,warnings:[]}}var wikiUpdate={name:"update",summary:`${WIKI_LABEL}\u3092\u66F4\u65B0\u3059\u308B\uFF08\u4EF6\u540D\u30FB\u672C\u6587\u30FB\u72B6\u614B\u30FB\u30BF\u30B0\uFF09`,
|
|
192
|
+
usage:WIKI_UPDATE_USAGE,description:`${WIKI_WRITE_HELP}
|
|
170
193
|
\u6307\u5B9A\u3057\u305F\u9805\u76EE\u3060\u3051\u3092\u9001\u308A\u307E\u3059\u3002--tag \u306F\u30BF\u30B0\u3092\u307E\u308B\u3054\u3068\u7F6E\u304D\u63DB\u3048\u3001--clear-tags \u306F\u30BF\u30B0\u3092\u7A7A\u306B\u3057\u307E\u3059\u3002
|
|
171
|
-
--
|
|
172
|
-
|
|
194
|
+
--content-file \u306E\u62E1\u5F35\u5B50\u304B\u3089\u5F62\u5F0F\u304C\u6C7A\u307E\u308B\u3068\u304D\uFF08--content-format \u3092\u7701\u3044\u305F\u3068\u304D\uFF09\u306F\u3001\u9001\u308B\u524D\u306B\u30DA\u30FC\u30B8\u3092\u53D6\u5F97\u3057\u3066\u5F62\u5F0F\u3092\u7167\u5408\u3057\u307E\u3059\u3002
|
|
195
|
+
--if-version <\u7248> \u3092\u4ED8\u3051\u308B\u3068\u3001\u30DA\u30FC\u30B8\u306E\u7248\uFF08twp wiki get \u306E version\uFF09\u304C\u4E00\u81F4\u3059\u308B\u3068\u304D\u3060\u3051\u66F4\u65B0\u3057\u307E\u3059\u3002
|
|
196
|
+
\u7248\u7167\u5408\u306B\u5BFE\u5FDC\u3057\u305F\u30B5\u30FC\u30D0\uFF08TWP-6838 \u4EE5\u964D\uFF09\u306F\u66F8\u304D\u8FBC\u307F\u306E\u6642\u70B9\u3067\u3082\u7167\u5408\u3057\u3001\u4ED6\u306E\u66F4\u65B0\u3068\u885D\u7A81\u3059\u308B\u3068\u4F55\u3082\u5909\u3048\u305A\u306B\u7D42\u4E86\u30B3\u30FC\u30C9 3 \u3067\u6B62\u307E\u308A\u307E\u3059\uFF08\u73FE\u5728\u306E\u7248\u3092\u8868\u793A\u3057\u307E\u3059\uFF09\u3002
|
|
197
|
+
\u5BFE\u5FDC\u524D\u306E\u30B5\u30FC\u30D0\u3067\u306F\u9001\u308B\u76F4\u524D\u306E\u7167\u5408\u3060\u3051\u306B\u306A\u308A\u3001\u7167\u5408\u3068\u9001\u4FE1\u306E\u9593\u306E\u4ED6\u4EBA\u306E\u66F4\u65B0\u307E\u3067\u306F\u9632\u3052\u307E\u305B\u3093\u3002\u7248\u304C\u4E0A\u304C\u308B\u306E\u306F\u672C\u6587\u304B\u4EF6\u540D\u3092\u5909\u3048\u305F\u3068\u304D\u3060\u3051\u3067\u3059\u3002
|
|
173
198
|
\u89AA\u30DA\u30FC\u30B8\u306E\u4ED8\u3051\u66FF\u3048\u306F twp wiki move \u3067\u3059\u3002
|
|
174
199
|
${WIKI_FRESHNESS_HELP}
|
|
175
200
|
--evidence-task \u306F\u6839\u62E0\u30BF\u30B9\u30AF\u3092\u307E\u308B\u3054\u3068\u7F6E\u304D\u63DB\u3048\u307E\u3059\u3002--clear-verified-at / --clear-evidence-tasks / --clear-kind \u306F\u305D\u308C\u305E\u308C\u3092\u672A\u8A2D\u5B9A\u306B\u623B\u3057\u307E\u3059\u3002\u9BAE\u5EA6\u5C5E\u6027\u3060\u3051\u3092\u5909\u3048\u3066\u3082\u7248\u306F\u4E0A\u304C\u308A\u307E\u305B\u3093\u3002
|
|
@@ -177,12 +202,12 @@ ${WIKI_FRESHNESS_HELP}
|
|
|
177
202
|
\u4F8B:
|
|
178
203
|
twp wiki update 0f8b2c6e-... --content-file notes.html --if-version 3
|
|
179
204
|
twp wiki update 0f8b2c6e-... --verified-at today --evidence-task PRJ-123`,flags:[{name:"--title",summary:`\u4EF6\u540D\uFF08${WIKI_TITLE_MAX_CHARS}\u6587\u5B57\u4EE5\u5185\uFF09`,takesValue:true,placeholder:"<\u4EF6\u540D>"},CONTENT_FILE_FLAG,WIKI_CONTENT_FORMAT_FLAG,WIKI_STATUS_FLAG,WIKI_TAG_FLAG,{name:"--clear-tags",summary:"\u30BF\u30B0\u3092\u7A7A\u306B\u3059\u308B",takesValue:false},...WIKI_FRESHNESS_FLAGS,{name:"--clear-verified-at",summary:"\u6700\u7D42\u5B9F\u6E2C\u65E5\u3092\u672A\u8A2D\u5B9A\u306B\u623B\u3059",
|
|
180
|
-
takesValue:false},{name:"--clear-evidence-tasks",summary:"\u6839\u62E0\u30BF\u30B9\u30AF\u3092\u7A7A\u306B\u3059\u308B",takesValue:false},{name:"--clear-kind",summary:"\u7A2E\u5225\u3092\u672A\u8A2D\u5B9A\u306B\u623B\u3059",takesValue:false},{name:"--if-version",summary:"\
|
|
181
|
-
"twp wiki list");const title=wikiTitle(input);const status=oneOf(input,"--status",WIKI_STATUSES);const contentFormat=oneOf(input,"--content-format",WIKI_CONTENT_FORMATS);const tags=wikiTags(input);positiveInteger(input.flags,"--if-version");const freshness=wikiFreshnessBody(input);const content=await wikiContent(input,WIKI_UPDATE_USAGE);if(title===void 0&&status===void 0&&tags===void 0&&
|
|
182
|
-
\u3093",`--title / --content-file / --content-format / --status / --tag / --clear-tags / --verified-at / --evidence-task / --kind\uFF08\u3068\u5404 --clear-*\uFF09\u306E\u3069\u308C\u304B\u3092\u6307\u5B9A\u3057\u3066\u304F\u3060\u3055\u3044\u3002
|
|
183
|
-
${WIKI_UPDATE_USAGE}`)}return content===void 0?input:withResolved(input,{content})},preview:
|
|
184
|
-
void 0?{title}:{},...content!==void 0?{content}:{},...contentFormat!==void 0?{content_format:contentFormat}:{},...status!==void 0?{status}:{},...tags!==void 0?{tags}:{},...wikiFreshnessBody(input)}}},summarize:body=>pick(pageFrom(body),WIKI_GET_COLUMNS),raw:pageFrom};var wikiMove={name:"move",summary:`${WIKI_LABEL}\u306E\u89AA\u30DA\u30FC\u30B8\u3092\u4ED8\u3051\u66FF\u3048\u308B\uFF08root \u3067\u6700\u4E0A\u4F4D\u3078\uFF09`,
|
|
185
|
-
\u81EA\u5206\u81EA\u8EAB\u3084\u81EA\u5206\u306E\u5B50\u5B6B\u306E\u4E0B\u3078\u306F\u79FB\u305B\u307E\u305B\u3093\uFF08\u30B5\u30FC\u30D0\u304C 422 \u3067\u65AD\u308A\u307E\u3059\uFF09\u3002
|
|
205
|
+
takesValue:false},{name:"--clear-evidence-tasks",summary:"\u6839\u62E0\u30BF\u30B9\u30AF\u3092\u7A7A\u306B\u3059\u308B",takesValue:false},{name:"--clear-kind",summary:"\u7A2E\u5225\u3092\u672A\u8A2D\u5B9A\u306B\u623B\u3059",takesValue:false},{name:"--if-version",summary:"\u4E00\u81F4\u3059\u308B\u3068\u304D\u3060\u3051\u66F4\u65B0\u3059\u308B\u7248\uFF08\u9001\u308B\u524D\u3068\u3001\u5BFE\u5FDC\u30B5\u30FC\u30D0\u3067\u306F\u66F8\u304D\u8FBC\u307F\u6642\u306B\u3082\u7167\u5408\u3057\u3001\u9055\u3048\u3070\u4F55\u3082\u5909\u3048\u306A\u3044\uFF09",
|
|
206
|
+
takesValue:true,placeholder:"<\u7248>"}],async prepare(input){singleId(input,"twp wiki update","\u30DA\u30FC\u30B8","twp wiki list");const title=wikiTitle(input);const status=oneOf(input,"--status",WIKI_STATUSES);const contentFormat=oneOf(input,"--content-format",WIKI_CONTENT_FORMATS);const tags=wikiTags(input);positiveInteger(input.flags,"--if-version");const freshness=wikiFreshnessBody(input);const content=await wikiContent(input,WIKI_UPDATE_USAGE);if(title===void 0&&status===void 0&&tags===void 0&&
|
|
207
|
+
content===void 0&&contentFormat===void 0&&Object.keys(freshness).length===0){throw new UsageError("\u66F4\u65B0\u3059\u308B\u9805\u76EE\u304C\u3042\u308A\u307E\u305B\u3093",`--title / --content-file / --content-format / --status / --tag / --clear-tags / --verified-at / --evidence-task / --kind\uFF08\u3068\u5404 --clear-*\uFF09\u306E\u3069\u308C\u304B\u3092\u6307\u5B9A\u3057\u3066\u304F\u3060\u3055\u3044\u3002
|
|
208
|
+
${WIKI_UPDATE_USAGE}`)}return content===void 0?input:withResolved(input,{content})},preview:previewWikiUpdate,plan(input){const id=singleId(input,"twp wiki update","\u30DA\u30FC\u30B8","twp wiki list");const title=wikiTitle(input);const status=oneOf(input,"--status",WIKI_STATUSES);const tags=wikiTags(input);const content=input.resolved?.["content"];const contentFormat=oneOf(input,"--content-format",WIKI_CONTENT_FORMATS);const expectedVersion=positiveInteger(input.flags,"--if-version");return{method:"\
|
|
209
|
+
PUT",path:`${WIKI_PATH}/${encodeURIComponent(id)}`,body:{...title!==void 0?{title}:{},...content!==void 0?{content}:{},...contentFormat!==void 0?{content_format:contentFormat}:{},...status!==void 0?{status}:{},...tags!==void 0?{tags}:{},...expectedVersion!==void 0?{expected_version:expectedVersion}:{},...wikiFreshnessBody(input)}}},summarize:body=>pick(pageFrom(body),WIKI_GET_COLUMNS),raw:pageFrom};var wikiMove={name:"move",summary:`${WIKI_LABEL}\u306E\u89AA\u30DA\u30FC\u30B8\u3092\u4ED8\u3051\u66FF\u3048\u308B\uFF08root \u3067\u6700\u4E0A\u4F4D\u3078\uFF09`,
|
|
210
|
+
usage:WIKI_MOVE_USAGE,description:`--parent ${ROOT_PARENT} \u3067\u6700\u4E0A\u4F4D\u3078\u79FB\u3057\u307E\u3059\u3002\u81EA\u5206\u81EA\u8EAB\u3084\u81EA\u5206\u306E\u5B50\u5B6B\u306E\u4E0B\u3078\u306F\u79FB\u305B\u307E\u305B\u3093\uFF08\u30B5\u30FC\u30D0\u304C 422 \u3067\u65AD\u308A\u307E\u3059\uFF09\u3002
|
|
186
211
|
--sort-order \u306F\u5144\u5F1F\u306E\u4E2D\u3067\u306E\u8868\u793A\u9806\uFF080 \u4EE5\u4E0A\u306E\u6574\u6570\uFF09\u3067\u3059\u3002--sort-order \u3060\u3051\u306A\u3089\u89AA\u306F\u305D\u306E\u307E\u307E\u3067\u4E26\u3079\u66FF\u3048\u307E\u3059\u3002`,flags:[{name:"--parent",summary:`\u79FB\u52D5\u5148\u306E\u89AA\u30DA\u30FC\u30B8\u306E ID\uFF08${ROOT_PARENT} \u3067\u6700\u4E0A\u4F4D\uFF09`,takesValue:true,placeholder:"<\u30DA\u30FC\u30B8ID>|root"},{name:"--sort-order",summary:"\u8868\u793A\u9806\uFF080 \u4EE5\u4E0A\u306E\u6574\
|
|
187
212
|
\u6570\uFF09",takesValue:true,placeholder:"<\u9806>"}],plan(input){const id=singleId(input,"twp wiki move","\u30DA\u30FC\u30B8","twp wiki list");const parent=wikiParent(input,true);const sortRaw=nonEmpty(input.flags,"--sort-order");let sortOrder;if(sortRaw!==void 0){sortOrder=/^\d+$/.test(sortRaw.trim())?Number(sortRaw.trim()):Number.NaN;if(!Number.isSafeInteger(sortOrder))throw new UsageError(`--sort-order \u306F 0 \u4EE5\u4E0A\u306E\u6574\u6570\u3067\u6307\u5B9A\u3057\u3066\u304F\u3060\u3055\u3044: ${sortRaw}`,
|
|
188
213
|
WIKI_MOVE_USAGE)}if(parent===void 0&&sortOrder===void 0){throw new UsageError(`--parent \u304B --sort-order \u3092\u6307\u5B9A\u3057\u3066\u304F\u3060\u3055\u3044\uFF08\u6700\u4E0A\u4F4D\u3078\u79FB\u3059\u306A\u3089 --parent ${ROOT_PARENT}\uFF09`,WIKI_MOVE_USAGE)}return{method:"PUT",path:`${WIKI_PATH}/${encodeURIComponent(id)}/move`,body:{...parent!==void 0?{parent_page_id:parent}:{},...sortOrder!==void 0?{sort_order:sortOrder}:{}}}},summarize:body=>pick(pageFrom(body),WIKI_GET_COLUMNS),raw:pageFrom};
|
|
@@ -235,4 +260,4 @@ ine"]],["\u72B6\u614B",status]])}`]}).join("\n")}function attendeeNames(value,ke
|
|
|
235
260
|
--output table / tsv \u306F\u8981\u7D04\u5217\uFF08${MEETING_GET_COLUMNS.join(" / ")}\uFF09\u3067\u3059\u3002
|
|
236
261
|
\u95B2\u89A7\u3067\u304D\u306A\u3044\u8B70\u4E8B\u9332\u306F\u300C\u898B\u3064\u304B\u308A\u307E\u305B\u3093\u300D\u306B\u306A\u308A\u307E\u3059\uFF08\u516C\u958B\u7BC4\u56F2\u306E\u5224\u5B9A\u306F\u30B5\u30FC\u30D0\uFF09\u3002`,flags:[],plan:input=>({method:"GET",path:`${MEETINGS_PATH}/${encodeURIComponent(singleId(input,"twp meeting get","\u8B70\u4E8B\u9332","twp meeting list"))}`}),summarize:body=>pick(record(body,"meeting",MEETING_LABEL),MEETING_GET_COLUMNS),raw:body=>record(body,"meeting",
|
|
237
262
|
MEETING_LABEL),document:meetingDocument};var wikiDomain={name:"wiki",summary:"\u30D7\u30ED\u30B8\u30A7\u30AF\u30C8\u306E wiki\uFF08\u4E00\u89A7\u30FB\u672C\u6587\u30FB\u69CB\u9020\u30FB\u30BF\u30B0\u30FB\u7248\u306E\u5C65\u6B74\u3068\u5DEE\u5206\u30FB\u88AB\u30EA\u30F3\u30AF\u30FB\u95A2\u9023\u30BF\u30B9\u30AF\u30FB\u4F5C\u6210\u30FB\u66F4\u65B0\u30FB\u79FB\u52D5\u30FB\u524A\u9664\uFF09",operations:[wikiList,wikiGet,wikiTree,wikiTagList,wikiDigest,wikiVersions,wikiVersion,wikiDiff,wikiBacklinks,
|
|
238
|
-
wikiLinkedTasks,wikiCreate,wikiUpdate,wikiMove,wikiDelete]};var noteDomain={name:"note",summary:"\u30CE\u30FC\u30C8\uFF08\u4E00\u89A7\u30FB\u672C\u6587\u3092\u8AAD\u3080\uFF09",operations:[noteList,noteGet]};var meetingDomain={name:"meeting",summary:"\u8B70\u4E8B\u9332\uFF08\u671F\u9593\u3067\u306E\u4E00\u89A7\u30FB\u672C\u6587\u3092\u8AAD\u3080\uFF09",operations:[meetingList,meetingGet]};export{digestSummary,fitDigest,meetingDomain,noteDomain,wikiDomain};
|
|
263
|
+
wikiLinkedTasks,wikiCreate,wikiUpdate,wikiMove,wikiDelete]};var noteDomain={name:"note",summary:"\u30CE\u30FC\u30C8\uFF08\u4E00\u89A7\u30FB\u672C\u6587\u3092\u8AAD\u3080\uFF09",operations:[noteList,noteGet]};var meetingDomain={name:"meeting",summary:"\u8B70\u4E8B\u9332\uFF08\u671F\u9593\u3067\u306E\u4E00\u89A7\u30FB\u672C\u6587\u3092\u8AAD\u3080\uFF09",operations:[meetingList,meetingGet]};export{digestSummary,fitDigest,meetingDomain,noteDomain,resolveWikiPath,wikiDomain};
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import { createRequire as __twpCreateRequire } from 'node:module';
|
|
2
2
|
const require = __twpCreateRequire(import.meta.url);
|
|
3
|
-
import{applyInstancePlan,createInstancePlan,formColumns,writtenInstance}from"./chunk-
|
|
4
|
-
import"./chunk-
|
|
3
|
+
import{applyInstancePlan,createInstancePlan,formColumns,writtenInstance}from"./chunk-MCQZDXIA.js";import"./chunk-ZMVHGXTO.js";import"./chunk-RKREN2F6.js";import"./chunk-3N6GRIXQ.js";import{USER_REF_FLAG,USER_REF_HELP,assertMonthsOpen,userPath}from"./chunk-EFYFNGBR.js";import{dateFlag}from"./chunk-EXT4AIDF.js";import"./chunk-5ZPI5YQC.js";import"./chunk-JJSBBWJ5.js";import"./chunk-MI6HVYR2.js";import"./chunk-RX5HWI4L.js";import"./chunk-6LSQCOCJ.js";
|
|
4
|
+
import"./chunk-UAVL2GLZ.js";import{UUID_RE}from"./chunk-HVZUXLQ4.js";import{ApiError}from"./chunk-JA5A6UJ2.js";import"./chunk-H4CDX4TX.js";import"./chunk-II5RVJQN.js";import{requireResolved,singleRef,withResolved}from"./chunk-PS5QFKHB.js";import{isRecord,pick}from"./chunk-3ZRMMBP5.js";import{ApiRejectedError,ApiResponseError,UsageError}from"./chunk-VFPY2A23.js";import{NotLoggedInError,SessionExpiredError}from"./chunk-XNLIEUAW.js";import"./chunk-J7QYPKVK.js";
|
|
5
5
|
import"./chunk-4VZKNEVN.js";import"./chunk-RZVI6PMW.js";import"./chunk-QQRJLH6B.js";import"./chunk-NHYMHCAT.js";import"./chunk-VSJBJXZO.js";var LIST_USAGE="twp leave list";var GRANTS_USAGE="twp leave grants [<\u30E6\u30FC\u30B6\u30FC> | --user <\u30E6\u30FC\u30B6\u30FC>]";var USAGE_COLUMNS=["used_date","type_label","days","hours","status_label","reason","is_post_application","id"];var GRANT_COLUMNS=["grant_date","type_label","days","remaining_days","remaining_hours","expiry_date","status_label","reason","id"];function noArgs(input,operation){if(input.args.length>0){throw new UsageError(`${operation} \u306F\u4F4D\u7F6E\u5F15\u6570\u3092\u53D7\u3051\u53D6\u308A\u307E\u305B\u3093: ${input.
|
|
6
6
|
args.join(" ")}`,`twp leave ${operation} help`)}}function summaryBody(body){if(!isRecord(body)||!isRecord(body["summary"])){throw new ApiResponseError("\u6709\u7D66\u30B5\u30DE\u30EA\u306E\u5FDC\u7B54\u306B summary \u304C\u3042\u308A\u307E\u305B\u3093\u3002\u63A5\u7D9A\u5148\u3092\u78BA\u8A8D\u3057\u3066\u304F\u3060\u3055\u3044\u3002")}return body}function usagesBody(body){if(!isRecord(body)||!Array.isArray(body["usages"])){throw new ApiResponseError("\u6709\u7D66\u306E\u53D6\u5F97\u5C65\u6B74\u306E\u5FDC\u7B54\u306B usages \u304C\u3042\u308A\u307E\u305B\u3093\u3002\u63A5\u7D9A\u5148\u3092\u78BA\u8A8D\u3057\u3066\u304F\u3060\u3055\u3044\u3002")}
|
|
7
7
|
return body}function grantsBody(body){if(!isRecord(body)||!Array.isArray(body["grants"])){throw new ApiResponseError("\u6709\u7D66\u306E\u4ED8\u4E0E\u5C65\u6B74\u306E\u5FDC\u7B54\u306B grants \u304C\u3042\u308A\u307E\u305B\u3093\u3002\u63A5\u7D9A\u5148\u3092\u78BA\u8A8D\u3057\u3066\u304F\u3060\u3055\u3044\u3002")}return body}function listBody(body){const combined=isRecord(body)?body:{};return{summary:summaryBody(combined["summary"]),usages:usagesBody(combined["usages"])}}async function list(input,ctx){
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import { createRequire as __twpCreateRequire } from 'node:module';
|
|
2
2
|
const require = __twpCreateRequire(import.meta.url);
|
|
3
|
-
import{CONCURRENCY,DEFAULT_INACTIVE_DAYS,LOGIN_HISTORY_RETENTION_DAYS,daysBetween,lastLogin,lastLoginText,mapPool,pacedSender,primaryAssignment,recentlyHired,spreadsheetSafe,userDetail}from"./chunk-DYNNGNXR.js";import"./chunk-QLENN5DD.js";import{positiveInteger,shellQuote}from"./chunk-MI6HVYR2.js";import{DEPARTMENTS_PATH}from"./chunk-
|
|
4
|
-
withResolved}from"./chunk-PS5QFKHB.js";import
|
|
3
|
+
import{CONCURRENCY,DEFAULT_INACTIVE_DAYS,LOGIN_HISTORY_RETENTION_DAYS,daysBetween,lastLogin,lastLoginText,mapPool,pacedSender,primaryAssignment,recentlyHired,spreadsheetSafe,userDetail}from"./chunk-DYNNGNXR.js";import"./chunk-QLENN5DD.js";import{positiveInteger,shellQuote}from"./chunk-MI6HVYR2.js";import{DEPARTMENTS_PATH}from"./chunk-UAVL2GLZ.js";import"./chunk-HVZUXLQ4.js";import{ApiError}from"./chunk-JA5A6UJ2.js";import"./chunk-H4CDX4TX.js";import"./chunk-II5RVJQN.js";
|
|
4
|
+
import{requireResolved,withResolved}from"./chunk-PS5QFKHB.js";import{isRecord}from"./chunk-3ZRMMBP5.js";import{ApiResponseError,UsageError}from"./chunk-VFPY2A23.js";import"./chunk-J7QYPKVK.js";import"./chunk-4VZKNEVN.js";import"./chunk-RZVI6PMW.js";import"./chunk-NHYMHCAT.js";import"./chunk-VSJBJXZO.js";var LICENSE_FEATURE_NAMES={content_management:"\u30B3\u30F3\u30C6\u30F3\u30C4\u7BA1\u7406",inquiry:"\u554F\u3044\u5408\u308F\u305B\u7BA1\u7406",workflow:"\u30EF\u30FC\u30AF\u30D5\u30ED\u30FC",hearing:"\u30D2\u30A2\u30EA\u30F3\u30B0",task_management:"\u30BF\u30B9\u30AF\u7BA1\u7406",sales:"\u53D6\u5F15\u7BA1\u7406",attendance:"\u52E4\u6020\u7BA1\u7406",report:"\u30EC\u30DD\u30FC\u30C8",hr_management:"\u4EBA\u6750\u7BA1\u7406",learning:"\u5B66\u7FD2\u7BA1\u7406",expense:"\u7D4C\u8CBB\u7BA1\u7406",test:"\
|
|
5
5
|
\u30B7\u30CA\u30EA\u30AA\u30C6\u30B9\u30C8\u7BA1\u7406",chat:"\u30C1\u30E3\u30C3\u30C8",customer:"\u9867\u5BA2\u7BA1\u7406",survey:"\u30A2\u30F3\u30B1\u30FC\u30C8",organization_survey:"\u7D44\u7E54\u30B5\u30FC\u30D9\u30A4",feedback:"\u30D5\u30A3\u30FC\u30C9\u30D0\u30C3\u30AF",notes:"\u30CE\u30FC\u30C8",wiki_management:"Wiki",meeting_minutes:"\u8B70\u4E8B\u9332",equipment_management:"\u5099\u54C1\u7BA1\u7406",floor_map:"\u30D5\u30ED\u30A2\u30DE\u30C3\u30D7"};var LICENSES_PATH="/api/v2/licenses";var FORBIDDEN="\
|
|
6
6
|
\u7D44\u7E54\u7BA1\u7406\u8005\u306E\u6A29\u9650\u304C\u5FC5\u8981\u3067\u3059\u3002twp license \u306F\u30C6\u30CA\u30F3\u30C8\u306E\u7D44\u7E54\u7BA1\u7406\u8005\u3060\u3051\u304C\u4F7F\u3048\u307E\u3059";var LIST_USAGE="twp license list";var ASSIGNMENTS_USAGE="twp license assignments <\u6A5F\u80FD\u30B3\u30FC\u30C9|\u6A5F\u80FD\u540D> | --all-features [--inactive-days <\u65E5\u6570>]";var ASSIGNMENTS_HELP="twp license assignments help";var RELEASE_COMMAND_PENDING="twp user permission set \u306F\u4ECA\u5F8C\u306E\u7248\
|
|
7
7
|
\u3067\u8FFD\u52A0\u3055\u308C\u308B\u30B3\u30DE\u30F3\u30C9\u3067\u3059\u3002\u307E\u3060\u7121\u3044\u7248\u3067\u306F";var DEPARTMENT_LIMIT=1e3;function featureName(code){return LICENSE_FEATURE_NAMES[code]??code}function featureSegment(code){if(!/^[a-z][a-z0-9_]*$/.test(code)){throw new ApiResponseError(`\u6A5F\u80FD\u30B3\u30FC\u30C9\u3092\u30D1\u30B9\u306B\u4F7F\u3048\u307E\u305B\u3093: ${code}\u3002\u63A5\u7D9A\u5148\u3092\u78BA\u8A8D\u3057\u3066\u304F\u3060\u3055\u3044\u3002`)}return code}
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import { createRequire as __twpCreateRequire } from 'node:module';
|
|
2
2
|
const require = __twpCreateRequire(import.meta.url);
|
|
3
|
-
import{defaultIsLoopProcess,readLockOwner,sameTwpHome}from"./chunk-3WHC4FSG.js";import{LEGACY_STATE_DIR_NAME,STATE_DIR_NAME,loopStateDir}from"./chunk-
|
|
3
|
+
import{defaultIsLoopProcess,readLockOwner,sameTwpHome}from"./chunk-3WHC4FSG.js";import{LEGACY_STATE_DIR_NAME,STATE_DIR_NAME,loopStateDir}from"./chunk-GAXJPIKO.js";import"./chunk-VYDPW2YO.js";import"./chunk-FABDZBDZ.js";import"./chunk-XMPHGOW4.js";import"./chunk-TTST7UDR.js";import"./chunk-6CS5L24D.js";import"./chunk-N2UVRM3Z.js";import"./chunk-GY7KI5E5.js";import"./chunk-PMOUHEJQ.js";import"./chunk-5WGOHFAS.js";import{twpHomeDir}from"./chunk-RZVI6PMW.js";
|
|
4
4
|
import{stripTerminalControls}from"./chunk-NHYMHCAT.js";import"./chunk-VSJBJXZO.js";import fs from"fs";import os from"os";import path from"path";var PIDLESS_GRACE_MS=6e4;function defaultStateDirs(env){const home=os.homedir();const dirs=[loopStateDir(env),path.join(home,STATE_DIR_NAME),path.join(home,LEGACY_STATE_DIR_NAME)].map(d=>path.resolve(d));return[...new Set(dirs)]}function readPidFile(lockDir){try{const raw=fs.readFileSync(path.join(lockDir,"pid"),"utf8").split("\n")[0]?.trim()??"";const n=Number.parseInt(raw,10);return{pid:Number.isInteger(n)&&n>0?n:null,error:null}}catch(err){const code=err.code;return{pid:null,error:code==="ENO\
|
|
5
5
|
ENT"?null:code??err.message}}}function findLoopsUsingProfile(profileName,deps={}){const env=deps.env??process.env;const now=deps.now??Date.now;const isLoopProcess=deps.isLoopProcess??defaultIsLoopProcess;const myHome=twpHomeDir(env);const result={users:[],undetermined:[]};for(const stateDir of deps.stateDirs??defaultStateDirs(env)){let dirs;try{dirs=fs.readdirSync(stateDir).filter(d=>/^task-loop-.*\.lock\.d$/.test(d))}catch(err){if(err.code==="ENOENT")continue;result.undetermined.push({pid:null,
|
|
6
6
|
lockDir:stateDir,reason:`\u30ED\u30C3\u30AF\u306E\u7F6E\u304D\u5834\u6240\u3092\u8AAD\u3081\u307E\u305B\u3093\uFF08${err.code??err.message}\uFF09`});continue}for(const dir of dirs){const lockDir=path.join(stateDir,dir);const pidFile=readPidFile(lockDir);if(pidFile.error!==null){result.undetermined.push({pid:null,lockDir,reason:`pid \u3092\u8AAD\u3081\u307E\u305B\u3093\uFF08${pidFile.error}\uFF09`});continue}const owner=readLockOwner(lockDir);let pid=pidFile.pid;if(pid===null){if(owner.ok){pid=owner.
|
|
@@ -1,8 +1,8 @@
|
|
|
1
1
|
import { createRequire as __twpCreateRequire } from 'node:module';
|
|
2
2
|
const require = __twpCreateRequire(import.meta.url);
|
|
3
|
-
import{checkOutTarget}from"./chunk-
|
|
4
|
-
nonEmpty,positiveInteger,readEnvelopeCursor,shellQuote}from"./chunk-MI6HVYR2.js";import{repeatedValues}from"./chunk-RX5HWI4L.js";import{readBody}from"./chunk-6LSQCOCJ.js";import"./chunk-
|
|
5
|
-
acknowledgement,isRecord,pick}from"./chunk-3ZRMMBP5.js";import{ApiRejectedError,ApiResponseError,NetworkError,UsageError,WaitTimeoutError}from"./chunk-VFPY2A23.js";import"./chunk-PECIBNFD.js";import"./chunk-XNLIEUAW.js";import"./chunk-J7QYPKVK.js";import"./chunk-4VZKNEVN.js";import"./chunk-RZVI6PMW.js";import"./chunk-
|
|
3
|
+
import{checkOutTarget}from"./chunk-22FXTKWN.js";import"./chunk-FDLKXEF5.js";import"./chunk-Q3B65OFC.js";import"./chunk-GFLGXGWE.js";import"./chunk-PO35MCYP.js";import"./chunk-LDBYJPRD.js";import{contentTypeFor,inspectLocalFile}from"./chunk-5KJ5OIKI.js";import{checkUploadQuota}from"./chunk-V64CGX7V.js";import{parseWaitOptions,waitUntilTerminal}from"./chunk-WVCEKC7V.js";import"./chunk-GY7KI5E5.js";import{LIST_FLAGS,LIST_PAGING_HELP,envelopePaging,
|
|
4
|
+
nonEmpty,positiveInteger,readEnvelopeCursor,shellQuote}from"./chunk-MI6HVYR2.js";import{repeatedValues}from"./chunk-RX5HWI4L.js";import{readBody}from"./chunk-6LSQCOCJ.js";import"./chunk-UAVL2GLZ.js";import{collapsesInUrlPath,isSafePathSegment}from"./chunk-HVZUXLQ4.js";import{ApiError}from"./chunk-JA5A6UJ2.js";import"./chunk-H4CDX4TX.js";import"./chunk-II5RVJQN.js";import{requireResolved,singleRef,withResolved}from"./chunk-PS5QFKHB.js";import{
|
|
5
|
+
acknowledgement,isRecord,pick}from"./chunk-3ZRMMBP5.js";import{ApiRejectedError,ApiResponseError,NetworkError,UsageError,WaitTimeoutError}from"./chunk-VFPY2A23.js";import"./chunk-PECIBNFD.js";import"./chunk-XNLIEUAW.js";import"./chunk-J7QYPKVK.js";import"./chunk-4VZKNEVN.js";import"./chunk-RZVI6PMW.js";import"./chunk-W4E4F2ZA.js";import"./chunk-QQRJLH6B.js";import"./chunk-74BPZOKU.js";import"./chunk-UREA4ZIG.js";import"./chunk-NHYMHCAT.js";
|
|
6
6
|
import"./chunk-VSJBJXZO.js";import crypto2 from"crypto";import fs2 from"fs";import path from"path";var SCOPE_PERSONAL="personal";var SCOPE_PROJECT="project";var UUID=/^[0-9a-f]{8}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{12}$/i;var FORBIDDEN_NAME=/[/\\:*?"<>|]/;var NAME_MAX=255;var ROW_COLUMNS=["id","path","name","file_count","subfolder_count","parent_id","updated_at"];var TRASH_COLUMNS=["id","path","name","file_count","subfolder_count","parent_id","deleted_at"];function folderRows(raw){return raw.map(row=>{const id=row["id"];const name=row["name"];const parentId=row["parent_id"];if(typeof id!==
|
|
7
7
|
"string"||typeof name!=="string"||parentId!==null&&parentId!==void 0&&typeof parentId!=="string"){throw new ApiResponseError("\u30E1\u30C7\u30A3\u30A2\u30D5\u30A9\u30EB\u30C0\u4E00\u89A7\u306E\u884C\u306B id / name / parent_id \u304C\u3042\u308A\u307E\u305B\u3093\u3002\u63A5\u7D9A\u5148\u3092\u78BA\u8A8D\u3057\u3066\u304F\u3060\u3055\u3044\u3002")}const path2=typeof row["path"]==="string"?row["path"]:`/${name}`;return{id,name,parentId:parentId??null,path:path2}})}function resolveFolderPath(rows,input){
|
|
8
8
|
const segments=folderPathSegments(input);const ids=new Set(rows.map(row=>row.id));const isTop=row=>row.parentId===null||!ids.has(row.parentId);let level=rows.filter(isTop);let walked="";for(const[index,segment]of segments.entries()){const hits=level.filter(row=>row.name===segment);const here=walked===""?"\u6700\u4E0A\u4F4D":`\u300C${walked}\u300D\u306E\u4E0B`;if(hits.length===0){const names=level.map(row=>row.name);throw new UsageError(`\u30D5\u30A9\u30EB\u30C0\u304C\u898B\u3064\u304B\u308A\u307E\u305B\u3093: ${input}\
|