@tocca-systems/twp-cli 0.39.0 → 0.40.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (62) hide show
  1. package/CHANGELOG.public.md +12 -0
  2. package/README.md +96 -1
  3. package/dist/{ai-dispatch-KRMDHQEF.js → ai-dispatch-AHCYPQ5Y.js} +1 -1
  4. package/dist/{api-command-IO572BZ4.js → api-command-7PZCMQO5.js} +4 -4
  5. package/dist/{app-Y2RIXLS4.js → app-PNHDMD3V.js} +4 -4
  6. package/dist/{backlog-67JSQYOH.js → backlog-ISEIWKMQ.js} +1 -1
  7. package/dist/{chunk-4ZT5LTRX.js → chunk-43OMEGNH.js} +1 -1
  8. package/dist/{chunk-HAIZHSNZ.js → chunk-6ZUVESMI.js} +1 -1
  9. package/dist/{chunk-QDTYD5PY.js → chunk-7ACENLLZ.js} +4 -4
  10. package/dist/{chunk-BJLXXRSY.js → chunk-B7YCG2T7.js} +1 -1
  11. package/dist/{chunk-MHRGKUMK.js → chunk-BPCK5RAB.js} +1 -1
  12. package/dist/{chunk-RZ54TCQU.js → chunk-BZ7ULFR3.js} +1 -1
  13. package/dist/{chunk-ELXDRPDV.js → chunk-BZAXQOLB.js} +24 -19
  14. package/dist/chunk-EOSSFTNG.js +4 -0
  15. package/dist/chunk-FKS2Z34P.js +70 -0
  16. package/dist/{chunk-QQLWMHGR.js → chunk-H54MGGHB.js} +1 -1
  17. package/dist/chunk-L6AHCTQZ.js +8 -0
  18. package/dist/chunk-PEM3HR7L.js +58 -0
  19. package/dist/{chunk-VECUCVIY.js → chunk-PKWMJIBM.js} +1 -1
  20. package/dist/{chunk-BUZKNZ45.js → chunk-UT4FACHN.js} +5 -3
  21. package/dist/chunk-V3GQEUYI.js +16 -0
  22. package/dist/{chunk-FEOST3GF.js → chunk-VK5T7ULK.js} +1 -1
  23. package/dist/{chunk-C7UDUHQZ.js → chunk-WV3ZKUF4.js} +22 -20
  24. package/dist/{chunk-Y5YDL3MC.js → chunk-X5IVIOGL.js} +1 -1
  25. package/dist/{receivable-AE44YIJO.js → chunk-XN5TUZOT.js} +2 -3
  26. package/dist/cli.js +148 -9
  27. package/dist/{commands-K6DQ3O35.js → commands-PG5VVBKO.js} +1 -1
  28. package/dist/{commands-MLYGGSUE.js → commands-RCDYCU6L.js} +3 -3
  29. package/dist/{company-3KUWW7QA.js → company-4Z4JJVA7.js} +2 -2
  30. package/dist/{completion-6R5D5TQQ.js → completion-EFGQJDIU.js} +1 -1
  31. package/dist/{contract-FGRHTOGI.js → contract-BQ76SGWV.js} +1 -1
  32. package/dist/{department-PN5DCCRL.js → department-YHZRSWLB.js} +1 -1
  33. package/dist/deposit-U4AVQH5O.js +4 -0
  34. package/dist/estimate-U2K7DPGH.js +173 -0
  35. package/dist/{inquiry-3VOJASJH.js → inquiry-5D4U6CLU.js} +1 -1
  36. package/dist/{invoice-KY3BYTHQ.js → invoice-2VLK2BFV.js} +50 -49
  37. package/dist/{job-title-EM6RKGQ6.js → job-title-G7MIYWVA.js} +1 -1
  38. package/dist/{knowledge-F4FZ4MLH.js → knowledge-7QDC775Q.js} +1 -1
  39. package/dist/{leave-D2S7NMJC.js → leave-GHFJOGNC.js} +1 -1
  40. package/dist/{media-SQVQVX2E.js → media-XO6X3UQT.js} +1 -1
  41. package/dist/{notification-NTFUPUMY.js → notification-SUSR5NGQ.js} +1 -1
  42. package/dist/{oneshot-TMGTEN3S.js → oneshot-UGYF2PLB.js} +1 -1
  43. package/dist/{position-D52LXRDT.js → position-UY33ETLX.js} +1 -1
  44. package/dist/{prospect-AQ7EUU4N.js → prospect-G426O6XL.js} +1 -1
  45. package/dist/purchase-3GGAQRE6.js +214 -0
  46. package/dist/receivable-TNH4KCUO.js +4 -0
  47. package/dist/{registry-3WV46K26.js → registry-ODJB7AS3.js} +1 -1
  48. package/dist/{render-MTSSHDAZ.js → render-F4MRN2FQ.js} +1 -1
  49. package/dist/{report-TI2DOJGX.js → report-UC2PCK7B.js} +1 -1
  50. package/dist/run-GDYEOQQK.js +4 -0
  51. package/dist/sales-master-ORLR5VK4.js +71 -0
  52. package/dist/sales-numbering-MBFKVR2C.js +4 -0
  53. package/dist/supplier-payment-AFJ7G6AP.js +110 -0
  54. package/dist/{task-VKVZSF7J.js → task-S3BBBELE.js} +2 -2
  55. package/dist/{user-KEFI7XZI.js → user-O7H5PD4N.js} +1 -1
  56. package/dist/{workflow-4FHTOQZZ.js → workflow-2YL2OF2Y.js} +1 -1
  57. package/package.json +1 -1
  58. package/dist/chunk-TLN3JSEC.js +0 -7
  59. package/dist/chunk-UVUVEL3B.js +0 -3
  60. package/dist/deposit-XQER6PMG.js +0 -4
  61. package/dist/estimate-IXBEQVGI.js +0 -164
  62. package/dist/run-KNZ43HFF.js +0 -4
@@ -0,0 +1,214 @@
1
+ import { createRequire as __twpCreateRequire } from 'node:module';
2
+ const require = __twpCreateRequire(import.meta.url);
3
+ import{inspectCaseDocumentFile}from"./chunk-PEM3HR7L.js";import{purchasePdfOperation}from"./chunk-V3GQEUYI.js";import{purchaseNoRuleResource}from"./chunk-FKS2Z34P.js";import{salesAdminForbidden}from"./chunk-7ACENLLZ.js";import{FORCE_FLAG,OUT_FLAG,REV_FLAG,revOf,singleId,uploadStaged}from"./chunk-43OMEGNH.js";import"./chunk-H54MGGHB.js";import{createFlags,fieldBody,hasAnyField,updateFlags}from"./chunk-BPCK5RAB.js";import"./chunk-PKWMJIBM.js";import"./chunk-DDKZ5IPT.js";
4
+ import"./chunk-I6DWJXPC.js";import{readBody}from"./chunk-HGTG5XQ7.js";import{featureLicenseGuidance,licenseForbidden}from"./chunk-BZ7ULFR3.js";import{repeatedValues}from"./chunk-IOGVQVGD.js";import{booleanText,boundedText,isoDate}from"./chunk-UDPJ2IGK.js";import{SALES_PURCHASES_PATH,SALES_PURCHASE_AI_MAPPINGS_PATH,isExactNumericId,resolveNamed}from"./chunk-BZAXQOLB.js";import{ApiError}from"./chunk-IF2K4PM5.js";import"./chunk-GMBJTG6A.js";import{NotLoggedInError,
5
+ SessionExpiredError}from"./chunk-XNLIEUAW.js";import"./chunk-J7QYPKVK.js";import"./chunk-4VZKNEVN.js";import"./chunk-QQRJLH6B.js";import"./chunk-NHYMHCAT.js";import"./chunk-GY7KI5E5.js";import{LIST_PAGING_HELP,PAGE_NUMBER_LIST_FLAGS,PAGE_NUMBER_PAGING_HELP,STABLE_PAGE_ORDER,nonEmpty,pageNumberPaging,pageNumberQuery,pageRangeNotes}from"./chunk-5R4SEO3I.js";import"./chunk-II5RVJQN.js";import{requireResolved,withResolved}from"./chunk-ZN5EFDH7.js";
6
+ import{acknowledgement,isRecord,pick}from"./chunk-ZWVYVS2A.js";import{ApiResponseError,UsageError}from"./chunk-7WSNIXTQ.js";import"./chunk-RZVI6PMW.js";import"./chunk-VSJBJXZO.js";var PATH=SALES_PURCHASE_AI_MAPPINGS_PATH;var LABEL="\u4ED5\u5165AI\u30DE\u30C3\u30D4\u30F3\u30B0";var SOURCE_LABEL_MAX_CHARS=255;var NOTE_MAX_CHARS=1e3;var SORT_MAX=2147483647;var LIST_COLUMNS=["id","source_label","target_field","target_field_label","company_name","is_active","sort_order"];var GET_COLUMNS=[...LIST_COLUMNS,"company_id","note"];var MEMBER_FORBIDDEN=licenseForbidden(featureLicenseGuidance("\u8CA9\u58F2\u7BA1\u7406"));var ADMIN_FORBIDDEN=salesAdminForbidden(`${LABEL}\u306E\u524A\u9664`);
7
+ function usageOf(op){return`twp purchase ai-mapping ${op} help`}function text(value){return typeof value==="string"||typeof value==="number"?String(value):""}function envelope(body,what){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 recordOf(body){const data=envelope(body,LABEL)["da\
8
+ ta"];if(!isRecord(data)||typeof data["id"]!=="string")throw new ApiResponseError(`${LABEL}\u306E\u5FDC\u7B54\u306B data.id \u304C\u3042\u308A\u307E\u305B\u3093\u3002\u63A5\u7D9A\u5148\u3092\u78BA\u8A8D\u3057\u3066\u304F\u3060\u3055\u3044\u3002`);return data}function serverMessage(body){const message=isRecord(body)?body["message"]:void 0;return typeof message==="string"&&message!==""?[message]:[]}function idArg(input,op){const[raw,...rest]=input.args;const id=raw?.trim()??"";if(id==="")throw new UsageError(
9
+ `${LABEL}\u306E ID \u3092\u6307\u5B9A\u3057\u3066\u304F\u3060\u3055\u3044`,usageOf(op));if(rest.length>0)throw new UsageError(`\u4F59\u5206\u306A\u5F15\u6570\u304C\u3042\u308A\u307E\u3059: ${rest.join(" ")}`,usageOf(op));if(!isExactNumericId(id))throw new UsageError(`${LABEL}\u306E ID \u306F\u5148\u982D\u306B 0 \u3092\u4ED8\u3051\u306A\u3044\u6570\u5B57\u3067\u6307\u5B9A\u3057\u3066\u304F\u3060\u3055\u3044: ${id}`,"ID \u306F twp purchase ai-mapping list \u306E id \u5217\u3067\u3059\u3002");return id}
10
+ 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 describe(record){const scope=record["company_id"]===null||record["company_id"]===void 0?"\u5168\u793E\u5171\u901A":`\u4ED5\u5165\u5148 ${text(record["company_name"])||text(record["company_id"])}`;return`ID ${text(record["id"])}\u30FB\u300C${text(record["source_label"])}\u300D\u2192 ${text(record["target_fie\
11
+ ld_label"])||text(record["target_field"])}\uFF08${scope}\uFF09`}function targetsOf(body){const list=envelope(body,"\u53CD\u6620\u5148\u9805\u76EE\u306E\u4E00\u89A7")["list"];if(!Array.isArray(list))throw new ApiResponseError("\u53CD\u6620\u5148\u9805\u76EE\u306E\u4E00\u89A7\u306E\u5FDC\u7B54\u306B list \u914D\u5217\u304C\u3042\u308A\u307E\u305B\u3093\u3002\u63A5\u7D9A\u5148\u3092\u78BA\u8A8D\u3057\u3066\u304F\u3060\u3055\u3044\u3002");return list.map(row=>{if(!isRecord(row)||typeof row["key"]!==
12
+ "string"||typeof row["label"]!=="string"){throw new ApiResponseError("\u53CD\u6620\u5148\u9805\u76EE\u306E\u4E00\u89A7\u306E\u884C\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{key:row["key"],label:row["label"]}})}async function resolveTarget(ctx,raw){const value=raw.trim();if(value==="")throw new UsageError("--target \u306B\u7A7A\u306E\u5024\u306F\u6307\u5B9A\u3067\u304D\u307E\u305B\u3093");
13
+ const targets=targetsOf(await ctx.resolver.salesJson(`${PATH}/targets`,"\u53CD\u6620\u5148\u9805\u76EE\u306E\u4E00\u89A7"));const hit=targets.find(t=>t.key===value.toLowerCase())??targets.find(t=>t.label===value);if(hit===void 0){throw new UsageError(`--target \u306B\u300C${raw}\u300D\u306F\u6307\u5B9A\u3067\u304D\u307E\u305B\u3093`,`\u6307\u5B9A\u3067\u304D\u308B\u53CD\u6620\u5148\uFF08\u30AD\u30FC: \u8868\u793A\u540D\uFF09: ${targets.map(t=>`${t.key}: ${t.label}`).join(" / ")}`)}return hit.key}
14
+ var COMMON_FLAG={name:"--common",summary:"\u5168\u793E\u5171\u901A\u306B\u3059\u308B\uFF08\u4ED5\u5165\u5148\u3092\u5916\u3059\uFF09",takesValue:false};var FIELD_FLAGS=[{name:"--source-label",summary:`\u8AAD\u307F\u53D6\u308A\u5143\u306E\u9805\u76EE\u540D\uFF08\u898B\u7A4D\u66F8\u306B\u66F8\u304B\u308C\u305F\u8A9E\u30FB${SOURCE_LABEL_MAX_CHARS} \u6587\u5B57\u307E\u3067\u3002\u4F5C\u6210\u3067\u306F\u5FC5\u9808\uFF09`,takesValue:true,placeholder:"<\u9805\u76EE\u540D>"},{name:"--target",summary:"\u53CD\
15
+ \u6620\u5148\u306E\u9805\u76EE\uFF08\u30AD\u30FC\u304B\u8868\u793A\u540D\u3002\u9078\u629E\u80A2\u306F twp purchase ai-mapping targets\u3002\u4F5C\u6210\u3067\u306F\u5FC5\u9808\uFF09",takesValue:true,placeholder:"<\u53CD\u6620\u5148>"},{name:"--supplier",summary:"\u3053\u306E\u4ED5\u5165\u5148\u306E\u898B\u7A4D\u66F8\u3060\u3051\u306B\u52B9\u304B\u305B\u308B\uFF08\u53D6\u5F15\u5148\u306E\u540D\u524D\u304B ID\u3002\u7701\u304F\u3068\u5168\u793E\u5171\u901A\uFF09",takesValue:true,placeholder:"<\u53D6\u5F15\u5148\
16
+ >"},{name:"--note",summary:`\u30E1\u30E2\uFF08${NOTE_MAX_CHARS} \u6587\u5B57\u307E\u3067\uFF09`,takesValue:true,placeholder:"<\u30E1\u30E2>"},{name:"--sort",summary:"\u8868\u793A\u9806\uFF080 \u4EE5\u4E0A\u306E\u6574\u6570\uFF09",takesValue:true,placeholder:"<\u6574\u6570>"},{name:"--active",summary:"\u6709\u52B9\u304B\uFF08true / false\uFF09",takesValue:true,placeholder:"<true|false>"}];var CLEARABLE={note:"note"};var CLEAR_FLAG={name:"--clear",summary:`\u9805\u76EE\u3092\u7A7A\u306B\u3059\u308B\uFF08${Object.
17
+ keys(CLEARABLE).join(" / ")}\u30FB\u8907\u6570\u56DE\u6307\u5B9A\u3067\u304D\u308B\uFF09`,takesValue:true,placeholder:"<\u9805\u76EE>",repeatable:true};function sortValue(raw){const trimmed=raw.trim();const value=/^\d+$/.test(trimmed)?Number(trimmed):Number.NaN;if(!Number.isSafeInteger(value)||value>SORT_MAX)throw new UsageError(`--sort \u306F 0 \u4EE5\u4E0A ${SORT_MAX} \u4EE5\u4E0B\u306E\u6574\u6570\u3067\u6307\u5B9A\u3057\u3066\u304F\u3060\u3055\u3044: ${raw}`);return value}function localBody(input,op){
18
+ const body={};const source=boundedText(input,"--source-label",{maxChars:SOURCE_LABEL_MAX_CHARS,label:"\u8AAD\u307F\u53D6\u308A\u5143\u306E\u9805\u76EE\u540D"});if(source!==void 0)body["source_label"]=source;const note=boundedText(input,"--note",{maxChars:NOTE_MAX_CHARS,label:"\u30E1\u30E2"});if(note!==void 0)body["note"]=note;const sort=input.flags.get("--sort");if(sort!==void 0)body["sort_order"]=sortValue(sort);const active=input.flags.get("--active");if(active!==void 0)body["is_active"]=booleanText(
19
+ "--active",active);if(input.flags.has("--supplier")&&input.flags.has(COMMON_FLAG.name)){throw new UsageError("--supplier \u3068 --common \u306F\u540C\u6642\u306B\u6307\u5B9A\u3067\u304D\u307E\u305B\u3093","\u3069\u3061\u3089\u304B\u4E00\u65B9\u3060\u3051\u3092\u6307\u5B9A\u3057\u3066\u304F\u3060\u3055\u3044\u3002")}if(input.flags.has(COMMON_FLAG.name))body["company_id"]=null;if(op==="update"){for(const raw of repeatedValues(input,"--clear")){const key=CLEARABLE[raw.trim()];if(key===void 0)throw new UsageError(
20
+ `--clear \u306B\u300C${raw}\u300D\u306F\u6307\u5B9A\u3067\u304D\u307E\u305B\u3093`,`\u7A7A\u306B\u3067\u304D\u308B\u9805\u76EE: ${Object.keys(CLEARABLE).join(" / ")}`);if(key in body)throw new UsageError(`${raw.trim()} \u306B\u5024\u3068 --clear \u306E\u4E21\u65B9\u304C\u6307\u5B9A\u3055\u308C\u3066\u3044\u307E\u3059`,"\u3069\u3061\u3089\u304B\u4E00\u65B9\u3060\u3051\u3092\u6307\u5B9A\u3057\u3066\u304F\u3060\u3055\u3044\u3002");body[key]=null}}return body}async function mappingBody(input,ctx,op){
21
+ const body=localBody(input,op);const target=nonEmpty(input.flags,"--target");if(input.flags.has("--target"))body["target_field"]=await resolveTarget(ctx,target??"");const supplier=nonEmpty(input.flags,"--supplier");if(supplier!==void 0){const company=await ctx.resolver.company(supplier,{flag:"--supplier",source:"sales",mustExist:true});body["company_id"]=Number(company.id)}return body}function bodyOf(input){return JSON.parse(requireResolved(input,"body"))}function currentOf(input){return JSON.parse(
22
+ requireResolved(input,"current"))}var ABOUT="\u4ED5\u5165\u306E\u898B\u7A4D\u66F8\u3092 AI \u3067\u8AAD\u307F\u53D6\u308B\u3068\u304D\uFF08twp purchase document scan\uFF09\u3001\u898B\u7A4D\u66F8\u306B\u66F8\u304B\u308C\u305F\u9805\u76EE\u540D\u3092\u3069\u306E\u4ED5\u5165\u306E\u9805\u76EE\u3078\u5165\u308C\u308B\u304B\u306E\u5BFE\u5FDC\u8868\u3067\u3059\u3002\n\u4ED5\u5165\u5148\u3092\u4ED8\u3051\u305F\u3082\u306E\u306F\u305D\u306E\u4ED5\u5165\u5148\u306E\u898B\u7A4D\u66F8\u3060\u3051\u306B\u3001\u4ED8\u3051\u306A\u3044\u3082\u306E\uFF08\u5168\u793E\u5171\u901A\uFF09\u306F\u3059\u3079\u3066\u306E\u898B\u7A4D\u66F8\u306B\u52B9\u304D\u307E\u3059\u3002";
23
+ var listPaging=pageNumberPaging({label:`${LABEL}\u4E00\u89A7`});function listRows(body){envelope(body,`${LABEL}\u4E00\u89A7`);return listPaging.items(body)}async function prepareList(input,ctx){noArgs(input,"list");pageNumberQuery(input);if(input.flags.has("--supplier")&&input.flags.has(COMMON_FLAG.name)){throw new UsageError("--supplier \u3068 --common \u306F\u540C\u6642\u306B\u6307\u5B9A\u3067\u304D\u307E\u305B\u3093","\u3069\u3061\u3089\u304B\u4E00\u65B9\u3060\u3051\u3092\u6307\u5B9A\u3057\u3066\u304F\u3060\u3055\u3044\u3002")}
24
+ const active=input.flags.get("--active");if(active!==void 0)booleanText("--active",active);const resolved={};const target=nonEmpty(input.flags,"--target");if(input.flags.has("--target"))resolved["target"]=await resolveTarget(ctx,target??"");const supplier=nonEmpty(input.flags,"--supplier");if(supplier!==void 0)resolved["supplier"]=(await ctx.resolver.company(supplier,{flag:"--supplier",source:"sales",mustExist:true})).id;return withResolved(input,resolved)}var listOperation={name:"list",summary:`${LABEL}\
25
+ \u3092\u4E00\u89A7\u3059\u308B\uFF08\u8868\u793A\u9806\uFF09`,usage:"twp purchase ai-mapping list [--keyword <\u8A9E>] [--target <\u53CD\u6620\u5148>] [--supplier <\u53D6\u5F15\u5148> | --common] [--active true|false] [--all] [--limit <\u4EF6\u6570>]",description:`${ABOUT}
26
+
27
+ --keyword \u306F\u8AAD\u307F\u53D6\u308A\u5143\u306E\u9805\u76EE\u540D\u3068\u30E1\u30E2\u306E\u90E8\u5206\u4E00\u81F4\u3067\u3059\u3002--common \u306F\u5168\u793E\u5171\u901A\u306E\u3082\u306E\u3060\u3051\u3092\u51FA\u3057\u307E\u3059\u3002
28
+ --output table / text / tsv \u306F\u8981\u7D04\u5217\uFF08${LIST_COLUMNS.join(" / ")}\uFF09\u3067\u3059\u3002
29
+
30
+ `+LIST_PAGING_HELP+"\n \u26A0 \u3053\u306E\u4E00\u89A7\u306F\u30DA\u30FC\u30B8\u756A\u53F7\u3067\u4F4D\u7F6E\u3092\u6307\u5B9A\u3057\u307E\u3059\uFF08--cursor \u306F\u30DA\u30FC\u30B8\u756A\u53F7\u3067\u3059\uFF09\u3002\n \u4E26\u3073\u306F\u8868\u793A\u9806\uFF08--sort \u306E\u5024\uFF09\u306E\u5C0F\u3055\u3044\u9806\u30FB\u540C\u3058\u306A\u3089 ID \u306E\u9806\u306B\u30B5\u30FC\u30D0\u304C\u56FA\u5B9A\u3057\u3066\u3044\u307E\u3059\u3002\u8FBF\u3063\u3066\u3044\u308B\u6700\u4E2D\u306B\u30C7\u30FC\u30BF\u304C\u5897\u6E1B\u3059\u308B\u3068\u3001\u53D6\u308A\u3053\u307C\u3057\u30FB\u91CD\u8907\u304C\u8D77\u3053\u308A\u5F97\u307E\u3059\u3002",
31
+ flags:[...PAGE_NUMBER_LIST_FLAGS,{name:"--keyword",summary:"\u8AAD\u307F\u53D6\u308A\u5143\u306E\u9805\u76EE\u540D\u30FB\u30E1\u30E2\u306E\u90E8\u5206\u4E00\u81F4\u3067\u7D5E\u308A\u8FBC\u3080",takesValue:true,placeholder:"<\u8A9E>"},{name:"--target",summary:"\u53CD\u6620\u5148\u306E\u9805\u76EE\u3067\u7D5E\u308A\u8FBC\u3080\uFF08\u30AD\u30FC\u304B\u8868\u793A\u540D\uFF09",takesValue:true,placeholder:"<\u53CD\u6620\u5148>"},{name:"--supplier",summary:"\u3053\u306E\u4ED5\u5165\u5148\u306E\u3082\u306E\u3060\u3051\uFF08\u53D6\u5F15\u5148\u306E\u540D\u524D\u304B ID\uFF09",
32
+ takesValue:true,placeholder:"<\u53D6\u5F15\u5148>"},{name:COMMON_FLAG.name,summary:"\u5168\u793E\u5171\u901A\u306E\u3082\u306E\u3060\u3051",takesValue:false},{name:"--active",summary:"\u6709\u52B9\uFF08true\uFF09\u30FB\u7121\u52B9\uFF08false\uFF09\u3067\u7D5E\u308A\u8FBC\u3080",takesValue:true,placeholder:"<true|false>"}],paging:listPaging,forbidden:MEMBER_FORBIDDEN,prepare:prepareList,plan:input=>{const{page_no,page_limit}=pageNumberQuery(input);const active=input.flags.get("--active");return{method:"\
33
+ GET",path:PATH,query:{keyword:nonEmpty(input.flags,"--keyword"),target_field:input.resolved?.["target"],company_id:input.flags.has(COMMON_FLAG.name)?"":input.resolved?.["supplier"],is_active:active===void 0?void 0:booleanText("--active",active)?"1":"0",page_limit,page_no}}},summarize:body=>listRows(body).map(row=>pick(row,LIST_COLUMNS)),raw:listRows,notes:body=>{const sum=isRecord(body)?body["sum"]:void 0;return[...pageRangeNotes(body),...typeof sum==="number"?[`\u8A72\u5F53 ${sum} \u4EF6`]:[]]}};
34
+ var getOperation={name:"get",summary:`${LABEL}1\u4EF6\u306E\u8A73\u7D30\u3092\u8868\u793A\u3059\u308B`,usage:"twp purchase ai-mapping get <\u30DE\u30C3\u30D4\u30F3\u30B0ID>",description:"ID \u306F twp purchase ai-mapping list \u306E id \u5217\u306E\u6570\u5B57\u3067\u3059\u3002",flags:[],forbidden:MEMBER_FORBIDDEN,plan:input=>({method:"GET",path:`${PATH}/${idArg(input,"get")}`}),summarize:body=>pick(recordOf(body),GET_COLUMNS),raw:recordOf};var targetsOperation={name:"targets",summary:"\u53CD\u6620\u5148\u306E\u9805\u76EE\uFF08--\
35
+ target \u306B\u6E21\u305B\u308B\u5024\uFF09\u3092\u4E00\u89A7\u3059\u308B",usage:"twp purchase ai-mapping targets",description:"GET /api/v2/sales/purchase-ai-field-mappings/targets\u3002key \u304B label \u306E\u3069\u3061\u3089\u3067\u3082 --target \u306B\u6E21\u305B\u307E\u3059\u3002",flags:[],forbidden:MEMBER_FORBIDDEN,plan:input=>{noArgs(input,"targets");return{method:"GET",path:`${PATH}/targets`}},summarize:body=>{envelope(body,"\u53CD\u6620\u5148\u9805\u76EE\u306E\u4E00\u89A7");const list=body["\
36
+ list"];if(!Array.isArray(list))throw new ApiResponseError("\u53CD\u6620\u5148\u9805\u76EE\u306E\u4E00\u89A7\u306E\u5FDC\u7B54\u306B list \u914D\u5217\u304C\u3042\u308A\u307E\u305B\u3093\u3002\u63A5\u7D9A\u5148\u3092\u78BA\u8A8D\u3057\u3066\u304F\u3060\u3055\u3044\u3002");return list.map(row=>pick(row,["key","label","group"]))},raw:body=>{targetsOf(body);return body["list"]}};var createOperation={name:"create",summary:`${LABEL}\u3092\u767B\u9332\u3059\u308B\uFF08--source-label \u3068 --target \u304C\u5FC5\u9808\uFF09`,
37
+ usage:"twp purchase ai-mapping create --source-label <\u9805\u76EE\u540D> --target <\u53CD\u6620\u5148> [--supplier <\u53D6\u5F15\u5148>] [--note <\u30E1\u30E2>] [--sort <\u6574\u6570>] [--active true|false]",description:`POST /api/v2/sales/purchase-ai-field-mappings\u3002
38
+
39
+ ${ABOUT}
40
+ --target \u306F\u9001\u308B\u524D\u306B\u53CD\u6620\u5148\u306E\u4E00\u89A7\uFF08targets\uFF09\u3068\u7167\u5408\u3057\u307E\u3059\uFF08--dry-run \u3067\u3082\u8AAD\u307F\u307E\u3059\uFF09\u3002
41
+ \u540C\u3058\u4ED5\u5165\u5148\uFF08\u307E\u305F\u306F\u5168\u793E\u5171\u901A\uFF09\u3067\u540C\u3058\u8AAD\u307F\u53D6\u308A\u5143\u306E\u9805\u76EE\u540D\u306F\u30B5\u30FC\u30D0\u304C\u65AD\u308A\u307E\u3059\u3002`,flags:FIELD_FLAGS,forbidden:MEMBER_FORBIDDEN,prepare:async(input,ctx)=>{noArgs(input,"create");const missing=["--source-label","--target"].filter(flag=>!input.flags.has(flag));if(missing.length>0)throw new UsageError(`${LABEL}\u306E\u767B\u9332\u306B\u306F ${missing.join(" / ")} \u304C\u8981\
42
+ \u308A\u307E\u3059`,usageOf("create"));localBody(input,"create");return withResolved(input,{body:JSON.stringify(await mappingBody(input,ctx,"create"))})},plan:input=>({method:"POST",path:PATH,body:bodyOf(input)}),summarize:body=>pick(recordOf(body),GET_COLUMNS),raw:recordOf,notes:serverMessage};var updateOperation={name:"update",summary:`${LABEL}\u3092\u66F8\u304D\u63DB\u3048\u308B\uFF08\u6307\u5B9A\u3057\u305F\u9805\u76EE\u3060\u3051\uFF09`,usage:"twp purchase ai-mapping update <\u30DE\u30C3\u30D4\u30F3\u30B0ID> [--sou\
43
+ rce-label <\u9805\u76EE\u540D>] [--target <\u53CD\u6620\u5148>] [--supplier <\u53D6\u5F15\u5148> | --common] [--note <\u30E1\u30E2>] [--sort <\u6574\u6570>] [--active true|false] [--clear <\u9805\u76EE>]...",description:"PUT /api/v2/sales/purchase-ai-field-mappings/{id}\u3002\u6307\u5B9A\u3057\u305F\u9805\u76EE\u3060\u3051\u3092\u9001\u308A\u307E\u3059\uFF08\u6307\u5B9A\u3057\u306A\u304B\u3063\u305F\u9805\u76EE\u306F\u5909\u308F\u308A\u307E\u305B\u3093\uFF09\u3002\n--common \u3067\u4ED5\u5165\u5148\u3092\u5916\u3057\u3066\u5168\u793E\u5171\u901A\u306B\u3057\u307E\u3059\u3002\u9001\u308B\u524D\u306B\u4ECA\u306E\u5024\u3092\u8AAD\u307F\u3001\u5BFE\u8C61\u3092 stderr \u306B\u51FA\u3057\u307E\u3059\uFF08--dry-run \u3067\u3082\u51FA\u307E\u3059\uFF09\u3002",
44
+ flags:[...FIELD_FLAGS,COMMON_FLAG,CLEAR_FLAG],forbidden:MEMBER_FORBIDDEN,prepare:async(input,ctx)=>{const id=idArg(input,"update");localBody(input,"update");const body=await mappingBody(input,ctx,"update");if(Object.keys(body).length===0)throw new UsageError("\u66F8\u304D\u63DB\u3048\u308B\u9805\u76EE\u304C\u3042\u308A\u307E\u305B\u3093",usageOf("update"));const current=await ctx.resolver.salesRecord("purchase-ai-mapping",id,"<\u30DE\u30C3\u30D4\u30F3\u30B0ID>");return withResolved(input,{body:JSON.
45
+ stringify(body),current:JSON.stringify(current)})},plan:input=>({method:"PUT",path:`${PATH}/${idArg(input,"update")}`,body:bodyOf(input)}),plannedNotes:input=>[`\u66F8\u304D\u63DB\u3048\u308B${LABEL}: ${describe(currentOf(input))}`],summarize:body=>pick(recordOf(body),GET_COLUMNS),raw:recordOf,notes:serverMessage};var deleteOperation={name:"delete",summary:`${LABEL}\u3092\u524A\u9664\u3059\u308B\uFF08\u8CA9\u58F2\u7BA1\u7406\u306E\u7BA1\u7406\u8005\u30FB--yes \u304C\u8981\u308B\uFF09`,usage:"twp\
46
+ purchase ai-mapping delete <\u30DE\u30C3\u30D4\u30F3\u30B0ID> --yes",description:"DELETE /api/v2/sales/purchase-ai-field-mappings/{id}\uFF08\u8AD6\u7406\u524A\u9664\uFF09\u3002\u4EE5\u5F8C\u306E\u8AAD\u307F\u53D6\u308A\u3067\u3053\u306E\u5BFE\u5FDC\u306F\u4F7F\u308F\u308C\u307E\u305B\u3093\u3002\n\u6B62\u3081\u308B\u3060\u3051\u306A\u3089 update --active false \u3067\u7121\u52B9\u306B\u3067\u304D\u307E\u3059\u3002\u9001\u308B\u524D\u306B\u5BFE\u8C61\u3092 stderr \u306B\u51FA\u3057\u307E\u3059\uFF08--dry-run \u3067\u3082\u51FA\u307E\u3059\uFF09\u3002",
47
+ destructive:true,flags:[],forbidden:ADMIN_FORBIDDEN,prepare:async(input,ctx)=>withResolved(input,{current:JSON.stringify(await ctx.resolver.salesRecord("purchase-ai-mapping",idArg(input,"delete"),"<\u30DE\u30C3\u30D4\u30F3\u30B0ID>"))}),plan:input=>({method:"DELETE",path:`${PATH}/${idArg(input,"delete")}`}),plannedNotes:input=>[`\u524A\u9664\u3059\u308B${LABEL}: ${describe(currentOf(input))}`],summarize:body=>acknowledgement(body,`${LABEL}\u524A\u9664`),raw:body=>acknowledgement(body,`${LABEL}\u524A\u9664`)};
48
+ var purchaseAiMappingResource={name:"ai-mapping",summary:"\u898B\u7A4D\u66F8 AI \u8AAD\u307F\u53D6\u308A\u306E\u30DE\u30C3\u30D4\u30F3\u30B0\u8868\uFF08\u8AAD\u307F\u53D6\u308A\u5143\u306E\u9805\u76EE\u540D \u2192 \u4ED5\u5165\u306E\u9805\u76EE\u3002\u4E00\u89A7\u30FB\u8A73\u7D30\u30FB\u767B\u9332\u30FB\u66F4\u65B0\u30FB\u524A\u9664\u30FB\u53CD\u6620\u5148\u306E\u9078\u629E\u80A2\uFF09",operations:[listOperation,getOperation,createOperation,updateOperation,deleteOperation,targetsOperation]};var DOCUMENT_TYPES=["quotation","order_form","order_acknowledgement"];var DOCUMENT_TYPE_HELP="quotation\uFF1D\u898B\u7A4D\u66F8 / order_form\uFF1D\u6CE8\u6587\u66F8\u30FB\u500B\u5225\u5951\u7D04\u66F8 / order_acknowledgement\uFF1D\u6CE8\u6587\u8ACB\u66F8";var FIELDS=[{kind:"text",flag:"--name",key:"document_name",label:"\u66F8\u985E\u540D",maxChars:255,summary:"\u66F8\u985E\u540D\uFF08create \u3067\u306F\u5FC5\u9808\uFF09"},{kind:"enum",flag:"--type",key:"document_type",values:DOCUMENT_TYPES,summary:`\
49
+ \u66F8\u985E\u7A2E\u5225\uFF08${DOCUMENT_TYPE_HELP}\u30FBcreate \u3067\u306F\u5FC5\u9808\uFF09`}];var COLUMNS=["document_id","purchase_id","document_type","document_type_label","document_name","current_version","updated_by_name","updated_at"];var VERSION_COLUMNS=["version_number","file_name","file_size","is_current","created_by_name","created_at"];var SCAN_BASIC_KEYS=["title","company_name","order_issue_date","estimate_no","contract_start_date","contract_end_date","remarks"];var PURCHASE_FLAG={name:"\
50
+ --purchase",summary:"\u4ED5\u5165\u306E ID\uFF08twp purchase list \u306E id \u5217\u306E\u6570\u5B57\u30FB\u5FC5\u9808\uFF09",takesValue:true,placeholder:"<\u4ED5\u5165ID>"};var FILE_FLAG={name:"--file",summary:"\u30A2\u30C3\u30D7\u30ED\u30FC\u30C9\u3059\u308B\u30D5\u30A1\u30A4\u30EB\uFF08PDF\u30FBJPEG\u30FBPNG\u30FBWord\u30FBExcel\u3002\u5FC5\u9808\uFF09",takesValue:true,placeholder:"<\u30D1\u30B9>"};var REF_HELP="--purchase\uFF08\u4ED5\u5165\u306E ID\uFF09\u304C\u5FC5\u9808\u3067\u3059\u3002<\u66F8\u985EID> \u306F twp purchase document list \u306E document_id \u5217\u306E\u5024\u3067\u3059\u3002";
51
+ var SALES_FORBIDDEN=licenseForbidden(featureLicenseGuidance("\u8CA9\u58F2\u7BA1\u7406"));function purchaseAdminForbidden(what){return body=>body?.error==="permission_denied"?featureLicenseGuidance("\u8CA9\u58F2\u7BA1\u7406"):`${what}\u306B\u306F\u8CA9\u58F2\u7BA1\u7406\u306E\u6A29\u9650\u304C\u300C\u7BA1\u7406\u8005\u300D\u3067\u3042\u308B\u3053\u3068\u304C\u8981\u308A\u307E\u3059\uFF08\u7BA1\u7406\u8005\u3067\u3082\u3001\u4ED5\u5165\u306E\u30D7\u30ED\u30B8\u30A7\u30AF\u30C8\u306E\u30E1\u30F3\u30D0\u30FC\u3067\u306A\u3051\u308C\u3070\u64CD\u4F5C\u3067\u304D\u307E\u305B\u3093\uFF09\u3002\u30C6\u30CA\u30F3\u30C8\u7BA1\u7406\u8005\u306B\u78BA\u8A8D\u3057\u3066\u304F\u3060\u3055\u3044\u3002`}
52
+ var usageOf2=op=>`twp purchase document ${op} help`;function purchaseBase(input,op){const raw=nonEmpty(input.flags,PURCHASE_FLAG.name);if(raw===void 0)throw new UsageError(`${PURCHASE_FLAG.name} \u3092\u6307\u5B9A\u3057\u3066\u304F\u3060\u3055\u3044`,usageOf2(op));const id=raw.trim();if(!isExactNumericId(id))throw new UsageError(`${PURCHASE_FLAG.name} \u306F\u4ED5\u5165\u306E ID\uFF08\u6570\u5B57\uFF09\u3067\u6307\u5B9A\u3057\u3066\u304F\u3060\u3055\u3044: ${id}`,usageOf2(op));return`${SALES_PURCHASES_PATH}\
53
+ /${id}/documents`}function docId(input,op){const id=singleId(input,"\u66F8\u985E",usageOf2(op),"twp purchase document list --purchase <\u4ED5\u5165ID> \u306E document_id \u5217\u306E\u5024\u3092\u6307\u5B9A\u3057\u3066\u304F\u3060\u3055\u3044\u3002");if(!isExactNumericId(id))throw new UsageError(`\u66F8\u985E\u306E ID \u306F\u6570\u5B57\u3067\u6307\u5B9A\u3057\u3066\u304F\u3060\u3055\u3044: ${id}`,"twp purchase document list --purchase <\u4ED5\u5165ID> \u306E document_id \u5217\u306E\u5024\u3092\u6307\u5B9A\u3057\u3066\u304F\u3060\u3055\u3044\u3002");
54
+ return id}var docPath=(input,op)=>`${purchaseBase(input,op)}/${encodeURIComponent(docId(input,op))}`;function noArgs2(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(" ")}`,usageOf2(op))}function itemsOf(body){const items=isRecord(body)?body["items"]:void 0;if(!isRecord(body)||body["result"]!==true||!Array.isArray(items)||!items.every(isRecord)){throw new ApiResponseError("\u6DFB\u4ED8\u66F8\u985E\u4E00\u89A7\u306E\u5FDC\u7B54\u306B items \u914D\u5217\u304C\u3042\u308A\u307E\u305B\u3093\
55
+ \u3002\u63A5\u7D9A\u5148\u3092\u78BA\u8A8D\u3057\u3066\u304F\u3060\u3055\u3044\u3002")}return items}function docOf(body,what){const doc=isRecord(body)?body["purchase_document"]:void 0;if(!isRecord(body)||body["result"]!==true||!isRecord(doc)||typeof doc["document_id"]!=="string"){throw new ApiResponseError(`${what}\u306E\u5FDC\u7B54\u306B purchase_document.document_id \u304C\u3042\u308A\u307E\u305B\u3093\u3002\u63A5\u7D9A\u5148\u3092\u78BA\u8A8D\u3057\u3066\u304F\u3060\u3055\u3044\u3002`)}return doc}
56
+ function summaryOf(body,what){const doc=docOf(body,what);const versions=doc["versions"];return{...pick(doc,COLUMNS),versions:Array.isArray(versions)?versions.length:0}}function uploadUrlPlan(input,op){return{method:"POST",path:`${purchaseBase(input,op)}/upload-url`,body:{file_name:requireResolved(input,"fileName"),file_size:Number(requireResolved(input,"fileSize"))}}}function prepareFile(input,op){purchaseBase(input,op);const doc=inspectCaseDocumentFile(input.flags.get(FILE_FLAG.name),FILE_FLAG.
57
+ name,usageOf2(op),"\u4ED5\u5165\u306E\u6DFB\u4ED8\u66F8\u985E");return Promise.resolve(withResolved(input,{file:doc.file,fileName:doc.name,fileSize:String(doc.size)}))}function purchaseOf(input){return(input.flags.get(PURCHASE_FLAG.name)??"").trim()}async function createDocument(input,ctx){const body=fieldBody(input,FIELDS);return uploadStaged(input,ctx,{label:"\u6DFB\u4ED8\u66F8\u985E",issue:uploadUrlPlan(input,"create"),retry:`twp purchase document list --purchase ${purchaseOf(input)}`,register:async uploadKey=>{
58
+ const created=docOf(await ctx.send({method:"POST",path:purchaseBase(input,"create"),body:{...body,upload_key:uploadKey,file_name:requireResolved(input,"fileName")}}),"\u6DFB\u4ED8\u66F8\u985E\u306E\u767B\u9332");return{result:true,purchase_document:created}}})}async function addVersion(input,ctx){const target=docPath(input,"add-version");const before=docOf(await ctx.send({method:"GET",path:target}),"\u6DFB\u4ED8\u66F8\u985E");const previous=typeof before["current_version"]==="number"?before["cur\
59
+ rent_version"]:0;return uploadStaged(input,ctx,{label:"\u6DFB\u4ED8\u66F8\u985E",issue:uploadUrlPlan(input,"add-version"),retry:`twp purchase document get ${docId(input,"add-version")} --purchase ${purchaseOf(input)}`,register:async uploadKey=>{const after=docOf(await ctx.send({method:"POST",path:`${target}/versions`,body:{upload_key:uploadKey,file_name:requireResolved(input,"fileName")}}),"\u7248\u306E\u5DEE\u66FF\u3048");const current=after["current_version"];if(typeof current!=="number"||current<=
60
+ previous){throw new ApiResponseError(`\u7248\u306E\u5DEE\u66FF\u3048\u306E\u5FDC\u7B54\u3067\u73FE\u884C\u7248\u304C\u9032\u3093\u3067\u3044\u307E\u305B\u3093\uFF08\u5DEE\u66FF\u3048\u524D ${previous} \u2192 \u5FDC\u7B54 ${String(current)}\uFF09\u3002\u63A5\u7D9A\u5148\u3092\u78BA\u8A8D\u3057\u3066\u304F\u3060\u3055\u3044\u3002`)}return{result:true,purchase_document:after}}})}function scanPlan(input){const rev=revOf(input,usageOf2("scan"));return{method:"POST",path:`${docPath(input,"scan")}/scan`,
61
+ body:rev===void 0?{}:{version:rev}}}function scanResult(body){const data=isRecord(body)?body["data"]:void 0;if(!isRecord(body)||body["result"]!==true||!isRecord(data)||!isRecord(data["basic"])||!Array.isArray(data["details"])){throw new ApiResponseError("\u898B\u7A4D\u66F8\u306E\u8AAD\u307F\u53D6\u308A\u306E\u5FDC\u7B54\u306B data.basic / data.details \u304C\u3042\u308A\u307E\u305B\u3093\u3002\u63A5\u7D9A\u5148\u3092\u78BA\u8A8D\u3057\u3066\u304F\u3060\u3055\u3044\u3002")}return data}async function scanDocument(input,ctx){
62
+ try{return await ctx.send(scanPlan(input))}catch(err){const refused=err instanceof ApiError&&err.status>=400&&err.status<500||err instanceof NotLoggedInError||err instanceof SessionExpiredError;if(!refused){ctx.warn("\u898B\u7A4D\u66F8\u306E\u8AAD\u307F\u53D6\u308A\u306F\u9001\u4FE1\u3057\u307E\u3057\u305F\u304C\u3001\u7D50\u679C\u3092\u53D7\u3051\u53D6\u308C\u307E\u305B\u3093\u3067\u3057\u305F\u3002\u30B5\u30FC\u30D0\u3067\u8AAD\u307F\u53D6\u308A\u307E\u3067\u6E08\u307F\u3001AI \u30AF\u30EC\u30B8\u30C3\u30C8\u3092\u6D88\u8CBB\u3057\u305F\u53EF\u80FD\u6027\u304C\u3042\u308A\u307E\u3059\u3002\u6253\u3061\u76F4\u3059\u3068\u3082\u3046\u4E00\u5EA6\u6D88\u8CBB\u3057\u307E\u3059\u3002\n")}
63
+ throw err}}function scanSummary(body){const data=scanResult(body);const basic=data["basic"];return{document_id:data["document_id"]??null,version_number:data["version_number"]??null,...pick(basic,SCAN_BASIC_KEYS),company_id:data["company_id"]??null,details:data["details"].length,skipped_detail_rows:data["skipped_detail_rows"]??0}}function scanNotes(body){const data=scanResult(body);const unmapped=Array.isArray(data["unmapped_labels"])?data["unmapped_labels"].filter(label=>typeof label==="string"):
64
+ [];const skipped=typeof data["skipped_detail_rows"]==="number"?data["skipped_detail_rows"]:0;return[data["extracted"]===true?"\u8AAD\u307F\u53D6\u3063\u305F\u5024\u306F\u5019\u88DC\u3067\u3059\uFF08\u4ED5\u5165\u306F\u5909\u308F\u3063\u3066\u3044\u307E\u305B\u3093\uFF09\u3002\u898B\u7A4D\u66F8\u3068\u7167\u3089\u3057\u3066\u304B\u3089 twp purchase update <\u4ED5\u5165ID> --content-file \u3067\u9001\u3063\u3066\u304F\u3060\u3055\u3044":"\u53CD\u6620\u3067\u304D\u308B\u5024\u3092\u8AAD\u307F\u53D6\u308C\u307E\u305B\u3093\u3067\u3057\u305F\uFF08\u4ED5\u5165\u306F\u5909\u308F\u3063\u3066\u3044\u307E\u305B\u3093\uFF09\u3002\u8AAD\u307F\u53D6\u308A\u81EA\u4F53\u306F\u5B9F\u884C\u3055\u308C AI \u30AF\u30EC\u30B8\u30C3\u30C8\u3092\u6D88\u8CBB\u3057\u3066\u3044\u307E\u3059\u3002\
65
+ \u6253\u3061\u76F4\u3059\u3068\u3082\u3046\u4E00\u5EA6\u6D88\u8CBB\u3057\u307E\u3059",...data["company_id"]===null&&typeof data["basic"]["company_name"]==="string"?["\u767A\u884C\u5143\u306E\u4F01\u696D\u540D\u3092\u8AAD\u307F\u307E\u3057\u305F\u304C\u3001\u53D6\u5F15\u5148\u306B\u4E00\u81F4\u3059\u308B\u4F01\u696D\u304C\u898B\u3064\u304B\u3089\u305A company_id \u306F\u7A7A\u3067\u3059"]:[],...skipped>0?[`\u54C1\u540D\u3082\u5024\u3082\u8AAD\u3081\u306A\u304B\u3063\u305F\u660E\u7D30 ${skipped} \u884C\
66
+ \u306F\u5019\u88DC\u306B\u5165\u308C\u3066\u3044\u307E\u305B\u3093`]:[],...unmapped.length>0?[`\u53CD\u6620\u5148\u306E\u6C7A\u307E\u3063\u3066\u3044\u306A\u3044\u9805\u76EE: ${unmapped.join(" / ")}\uFF08\u4ED5\u5165 AI \u30DE\u30C3\u30D4\u30F3\u30B0\u3067\u53CD\u6620\u5148\u3092\u8A2D\u5B9A\u3067\u304D\u307E\u3059\uFF09`]:[],"\u660E\u7D30\u306E\u5019\u88DC\uFF08details\uFF09\u3068\u5168\u30D5\u30A3\u30FC\u30EB\u30C9\u306F --output json \u3067\u51FA\u307E\u3059"]}var purchaseDocumentResource={name:"\
67
+ document",summary:"\u4ED5\u5165\u306E\u6DFB\u4ED8\u66F8\u985E\uFF08\u898B\u7A4D\u66F8\u30FB\u6CE8\u6587\u66F8\u30FB\u6CE8\u6587\u8ACB\u66F8\u3002\u4E00\u89A7\u30FB\u8A73\u7D30\u30FB\u767B\u9332\u30FB\u7248\u306E\u5DEE\u66FF\u3048\u30FB\u66F4\u65B0\u30FB\u524A\u9664\u30FB\u30C0\u30A6\u30F3\u30ED\u30FC\u30C9\u30FB\u898B\u7A4D\u66F8\u306E\u8AAD\u307F\u53D6\u308A\uFF09",operations:[{name:"list",summary:"\u4ED5\u5165\u306E\u6DFB\u4ED8\u66F8\u985E\u3092\u4E00\u89A7\u3059\u308B",usage:"twp purchase doc\
68
+ ument list --purchase <\u4ED5\u5165ID>",description:`\u4ED5\u5165\u306B\u767B\u9332\u3055\u308C\u305F\u6DFB\u4ED8\u66F8\u985E\uFF08\u524A\u9664\u3057\u305F\u3082\u306E\u3092\u9664\u304F\uFF09\u3092\u3059\u3079\u3066\u8FD4\u3057\u307E\u3059\uFF08\u3053\u306E API \u306F\u30DA\u30FC\u30B8\u30F3\u30B0\u3092\u6301\u3061\u307E\u305B\u3093\uFF09\u3002
69
+
70
+ --output json \u306F API \u304C\u8FD4\u3059\u5168\u30D5\u30A3\u30FC\u30EB\u30C9\u3092\u51FA\u3057\u307E\u3059\u3002
71
+ --output table / text / tsv \u306F\u8981\u7D04\u5217\uFF08${COLUMNS.join(" / ")}\uFF09\u3067\u3059\u3002`,flags:[PURCHASE_FLAG],forbidden:SALES_FORBIDDEN,plan(input){noArgs2(input,"list");return{method:"GET",path:purchaseBase(input,"list")}},summarize:body=>itemsOf(body).map(row=>pick(row,COLUMNS)),raw:itemsOf},{name:"get",summary:"\u6DFB\u4ED8\u66F8\u985E1\u4EF6\u306E\u8A73\u7D30\u3092\u8868\u793A\u3059\u308B\uFF08\u73FE\u884C\u7248\u30FB\u904E\u53BB\u7248\u3092\u542B\u3080\uFF09",usage:"twp pu\
72
+ rchase document get <\u66F8\u985EID> --purchase <\u4ED5\u5165ID>",description:`${REF_HELP}
73
+
74
+ --output json \u306F\u73FE\u884C\u7248\u30FB\u904E\u53BB\u7248\uFF08versions\uFF09\u3092\u542B\u3080\u5168\u30D5\u30A3\u30FC\u30EB\u30C9\u3092\u51FA\u3057\u307E\u3059\u3002
75
+ --output table / text / tsv \u306F\u8981\u7D04\u5217\uFF08${COLUMNS.join(" / ")} / versions\uFF1D\u7248\u306E\u6570\uFF09\u3067\u3059\u3002
76
+ \u7248\u3054\u3068\u306E\u5217\u306F ${VERSION_COLUMNS.join(" / ")} \u3067\u3059\uFF08--output json\uFF09\u3002`,flags:[PURCHASE_FLAG],forbidden:SALES_FORBIDDEN,plan:input=>({method:"GET",path:docPath(input,"get")}),summarize:body=>summaryOf(body,"\u6DFB\u4ED8\u66F8\u985E"),raw:body=>docOf(body,"\u6DFB\u4ED8\u66F8\u985E")},{name:"create",summary:"\u30D5\u30A1\u30A4\u30EB\u3092\u4ED5\u5165\u306E\u6DFB\u4ED8\u66F8\u985E\u3068\u3057\u3066\u767B\u9332\u3059\u308B\uFF08\u5BB9\u91CF\u691C\u67FB\u30FB\u8EE2\u9001\u30FB\u767B\u9332\u30921\u30B3\u30DE\u30F3\u30C9\u3067\uFF09",
77
+ usage:"twp purchase document create --purchase <\u4ED5\u5165ID> --file <\u30D1\u30B9> --type <\u7A2E\u5225> --name <\u66F8\u985E\u540D>",description:`--purchase\u30FB--file\u30FB--type\uFF08${DOCUMENT_TYPE_HELP}\uFF09\u30FB--name \u304C\u5FC5\u9808\u3067\u3059\u3002
78
+
79
+ \u6B21\u306E\u9806\u306B\u9001\u308A\u307E\u3059\u3002
80
+ 0. POST /api/v2/storage/check-upload\uFF08\u30C6\u30CA\u30F3\u30C8\u306E\u5BB9\u91CF\u691C\u67FB\u3002\u8D85\u904E\u306A\u3089\u4F55\u3082\u9001\u3089\u305A\u306B\u6B62\u307E\u308A\u307E\u3059\uFF09
81
+ 1. POST \u2026/documents/upload-url\uFF08\u7F72\u540DURL\u306E\u767A\u884C\uFF09
82
+ 2. \u7F72\u540DURL\u3078 PUT\uFF08\u30D5\u30A1\u30A4\u30EB\u672C\u4F53\u3002TWP \u306E\u8A8D\u8A3C\u60C5\u5831\u306F\u9001\u308A\u307E\u305B\u3093\uFF09
83
+ 3. POST \u2026/documents\uFF08\u66F8\u985E\u306E\u767B\u9332\u3002\u3053\u3053\u3067\u6DFB\u4ED8\u66F8\u985E\u304C\u6210\u7ACB\u3057\u307E\u3059\uFF09
84
+ \u5BFE\u5FDC\u5916\u306E\u5F62\u5F0F\uFF08\u62E1\u5F35\u5B50\u304C PDF\u30FBJPEG\u30FBPNG\u30FBWord\u30FBExcel \u3067\u306A\u3044\u30FB\u4E2D\u8EAB\u304C\u62E1\u5F35\u5B50\u3068\u5408\u308F\u306A\u3044\uFF09\u306F\u3001\u4F55\u3082\u9001\u3089\u305A\u306B\u6B62\u3081\u307E\u3059
85
+ \uFF08\u30B5\u30FC\u30D0\u3082\u540C\u3058\u6761\u4EF6\u3067\u65AD\u308A\u307E\u3059\uFF09\u3002--dry-run \u306F 1 \u306E\u30EA\u30AF\u30A8\u30B9\u30C8\u3060\u3051\u3092\u8868\u793A\u3057\u307E\u3059\u3002
86
+ AI \u3067\u8AAD\u307F\u53D6\u308C\u308B\u306E\u306F\u898B\u7A4D\u66F8\uFF08--type quotation\uFF09\u306E PDF\u30FB\u753B\u50CF\u3060\u3051\u3067\u3059\uFF08twp purchase document scan\uFF09\u3002`,flags:[PURCHASE_FLAG,FILE_FLAG,...createFlags(FIELDS)],forbidden:SALES_FORBIDDEN,prepare(input){noArgs2(input,"create");fieldBody(input,FIELDS);for(const flag of["--type","--name"]){if(!input.flags.has(flag))throw new UsageError(`${flag} \u3092\u6307\u5B9A\u3057\u3066\u304F\u3060\u3055\u3044`,usageOf2("c\
87
+ reate"))}return prepareFile(input,"create")},plan:input=>uploadUrlPlan(input,"create"),plannedNotes:input=>[`\u5B9F\u884C\u6642\u306F\u3001\u3053\u306E\u524D\u306B\u5BB9\u91CF\u691C\u67FB\uFF08POST /api/v2/storage/check-upload\uFF09\u3092\u9001\u308A\u3001\u3053\u306E\u3042\u3068\u7F72\u540DURL\u3078 ${requireResolved(input,"fileSize")} \u30D0\u30A4\u30C8\u3092 PUT \u3057\u3066\u304B\u3089\u3001POST ${purchaseBase(input,"create")} \u3067\u6DFB\u4ED8\u66F8\u985E\u3092\u767B\u9332\u3057\u307E\u3059\u3002`],
88
+ execute:createDocument,summarize:body=>summaryOf(body,"\u6DFB\u4ED8\u66F8\u985E\u306E\u767B\u9332"),raw:body=>docOf(body,"\u6DFB\u4ED8\u66F8\u985E\u306E\u767B\u9332")},{name:"add-version",summary:"\u6DFB\u4ED8\u66F8\u985E\u306B\u65B0\u3057\u3044\u7248\u306E\u30D5\u30A1\u30A4\u30EB\u3092\u767B\u9332\u3059\u308B\uFF08\u5DEE\u66FF\u3048\u3002\u904E\u53BB\u7248\u306F\u6B8B\u308A\u307E\u3059\uFF09",usage:"twp purchase document add-version <\u66F8\u985EID> --purchase <\u4ED5\u5165ID> --file <\u30D1\u30B9>",
89
+ description:`${REF_HELP}
90
+
91
+ \u66F8\u985E\u304C\u3053\u306E\u4ED5\u5165\u306B\u3042\u308B\u3053\u3068\u3092\u78BA\u304B\u3081\u3066\u304B\u3089\u3001\u5BB9\u91CF\u691C\u67FB \u2192 \u7F72\u540DURL\u306E\u767A\u884C \u2192 PUT \u2192 POST \u2026/{\u66F8\u985EID}/versions \u306E\u9806\u306B\u9001\u308A\u307E\u3059\u3002
92
+ \u767B\u9332\u3057\u305F\u30D5\u30A1\u30A4\u30EB\u304C\u73FE\u884C\u7248\u306B\u306A\u308A\u3001\u305D\u308C\u307E\u3067\u306E\u7248\u306F\u904E\u53BB\u7248\u3068\u3057\u3066\u6B8B\u308A\u307E\u3059\uFF08get \u306E versions\uFF09\u3002
93
+ \u5FDC\u7B54\u3067\u73FE\u884C\u7248\u306E\u756A\u53F7\u304C\u9032\u3093\u3060\u3053\u3068\u3092\u78BA\u304B\u3081\u3066\u304B\u3089\u6210\u529F\u3092\u540D\u4E57\u308A\u307E\u3059\u3002--dry-run \u306F\u7F72\u540DURL\u306E\u767A\u884C\u3060\u3051\u3092\u8868\u793A\u3057\u307E\u3059\u3002`,flags:[PURCHASE_FLAG,FILE_FLAG],forbidden:SALES_FORBIDDEN,prepare(input){docId(input,"add-version");return prepareFile(input,"add-version")},plan:input=>uploadUrlPlan(input,"add-version"),plannedNotes:input=>[
94
+ `\u5B9F\u884C\u6642\u306F\u3001\u3053\u306E\u524D\u306B GET ${docPath(input,"add-version")}\uFF08\u66F8\u985E\u306E\u78BA\u8A8D\uFF09\u3068\u5BB9\u91CF\u691C\u67FB\u3092\u9001\u308A\u3001\u3053\u306E\u3042\u3068\u7F72\u540DURL\u3078 ${requireResolved(input,"fileSize")} \u30D0\u30A4\u30C8\u3092 PUT \u3057\u3066\u304B\u3089\u3001POST ${docPath(input,"add-version")}/versions \u3067\u7248\u3092\u767B\u9332\u3057\u307E\u3059\u3002`],execute:addVersion,summarize:body=>summaryOf(body,"\u7248\u306E\u5DEE\u66FF\u3048"),
95
+ raw:body=>docOf(body,"\u7248\u306E\u5DEE\u66FF\u3048")},{name:"update",summary:"\u6DFB\u4ED8\u66F8\u985E\u306E\u66F8\u985E\u540D\u30FB\u7A2E\u5225\u3092\u5909\u66F4\u3059\u308B\uFF08\u30D5\u30A1\u30A4\u30EB\u306F\u5909\u308F\u308A\u307E\u305B\u3093\uFF09",usage:"twp purchase document update <\u66F8\u985EID> --purchase <\u4ED5\u5165ID> [--name <\u66F8\u985E\u540D>] [--type <\u7A2E\u5225>]",description:`${REF_HELP}
96
+
97
+ \u6307\u5B9A\u3057\u305F\u9805\u76EE\u3060\u3051\u3092\u5909\u66F4\u3057\u307E\u3059\u3002\u5909\u66F4\u3059\u308B\u9805\u76EE\u30921\u3064\u3082\u6307\u5B9A\u3057\u306A\u3044\u3068\u30A8\u30E9\u30FC\u306B\u306A\u308A\u307E\u3059\u3002
98
+ \u30D5\u30A1\u30A4\u30EB\u3092\u5DEE\u3057\u66FF\u3048\u308B\u306A\u3089 twp purchase document add-version \u3092\u4F7F\u3044\u307E\u3059\u3002`,flags:[PURCHASE_FLAG,...updateFlags(FIELDS)],forbidden:SALES_FORBIDDEN,plan(input){if(!hasAnyField(input,FIELDS))throw new UsageError("\u5909\u66F4\u3059\u308B\u9805\u76EE\u30921\u3064\u4EE5\u4E0A\u6307\u5B9A\u3057\u3066\u304F\u3060\u3055\u3044",usageOf2("update"));return{method:"PATCH",path:docPath(input,"update"),body:fieldBody(input,FIELDS)}},summarize:body=>summaryOf(
99
+ body,"\u6DFB\u4ED8\u66F8\u985E\u306E\u66F4\u65B0"),raw:body=>docOf(body,"\u6DFB\u4ED8\u66F8\u985E\u306E\u66F4\u65B0")},{name:"delete",summary:"\u6DFB\u4ED8\u66F8\u985E\u3092\u524A\u9664\u3059\u308B\uFF08\u5168\u7248\u3002\u8CA9\u58F2\u7BA1\u7406\u306E\u7BA1\u7406\u8005\u306E\u307F\u30FB--yes \u304C\u8981\u308B\uFF09",usage:"twp purchase document delete <\u66F8\u985EID> --purchase <\u4ED5\u5165ID> --yes",description:`${REF_HELP}
100
+
101
+ \u66F8\u985E\u3092\u904E\u53BB\u7248\u3054\u3068\u524A\u9664\u3057\u307E\u3059\uFF08\u30B5\u30FC\u30D0\u306F\u8AD6\u7406\u524A\u9664\u3067\u3001\u4E00\u89A7\u30FB\u8A73\u7D30\u30FB\u30C0\u30A6\u30F3\u30ED\u30FC\u30C9\u304B\u3089\u6D88\u3048\u307E\u3059\uFF09\u3002\u8CA9\u58F2\u7BA1\u7406\u306E\u6A29\u9650\u304C\u300C\u7BA1\u7406\u8005\u300D\u3067\u3042\u308B\u3053\u3068\u304C\u8981\u308A\u307E\u3059\u3002`,destructive:true,flags:[PURCHASE_FLAG],forbidden:purchaseAdminForbidden("\u6DFB\u4ED8\u66F8\u985E\u306E\u524A\u9664"),
102
+ plan:input=>({method:"DELETE",path:docPath(input,"delete")}),summarize:body=>acknowledgement(body,"\u6DFB\u4ED8\u66F8\u985E\u524A\u9664"),raw:body=>acknowledgement(body,"\u6DFB\u4ED8\u66F8\u985E\u524A\u9664")},{name:"download",summary:"\u6DFB\u4ED8\u66F8\u985E\u306E\u30D5\u30A1\u30A4\u30EB\u3092\u30C0\u30A6\u30F3\u30ED\u30FC\u30C9\u3057\u3066\u30D5\u30A1\u30A4\u30EB\u3078\u66F8\u304D\u51FA\u3059\uFF08\u65E2\u5B9A\u306F\u73FE\u884C\u7248\uFF09",usage:"twp purchase document download <\u66F8\u985EID> --purch\
103
+ ase <\u4ED5\u5165ID> --out <\u30D1\u30B9> [--rev <\u7248\u756A\u53F7>] [--force]",description:`${REF_HELP}
104
+
105
+ \u66F8\u304D\u51FA\u3057\u5148\u306F --out \u3067\u5FC5\u305A\u6307\u5B9A\u3057\u307E\u3059\uFF08\u6A19\u6E96\u51FA\u529B\u3078\u306F\u51FA\u3057\u307E\u305B\u3093\uFF09\u3002\u65E2\u5B58\u30D5\u30A1\u30A4\u30EB\u306F --force \u304C\u7121\u3051\u308C\u3070\u4E0A\u66F8\u304D\u3057\u307E\u305B\u3093\u3002
106
+ \u904E\u53BB\u7248\u306F --rev \u3067\u7248\u756A\u53F7\u3092\u6307\u5B9A\u3057\u307E\u3059\uFF08get \u306E versions \u306E version_number\uFF09\u3002`,flags:[PURCHASE_FLAG,OUT_FLAG,REV_FLAG,FORCE_FLAG],forbidden:SALES_FORBIDDEN,download:{outFlag:OUT_FLAG.name,forceFlag:FORCE_FLAG.name},plan:input=>({method:"GET",path:`${docPath(input,"download")}/download`,query:{version:revOf(input,usageOf2("download"))}}),summarize:body=>body,raw:body=>body},{name:"scan",summary:"\u6DFB\u4ED8\u3057\u305F\u898B\u7A4D\u66F8\u3092 AI \u3067\u8AAD\u307F\u53D6\u308A\u3001\u4ED5\u5165\u3078\u5165\u308C\u308B\u5019\u88DC\u3092\u51FA\u3059\
107
+ \uFF08AI \u30AF\u30EC\u30B8\u30C3\u30C8\u3092\u6D88\u8CBB\u30FB--yes \u304C\u8981\u308B\uFF09",usage:"twp purchase document scan <\u66F8\u985EID> --purchase <\u4ED5\u5165ID> [--rev <\u7248\u756A\u53F7>] --yes",description:`${REF_HELP}
108
+
109
+ \u753B\u9762\u306E\u4ED5\u5165\u7DE8\u96C6\u306E\u300CAI \u3067\u8AAD\u307F\u53D6\u308B\u300D\u3068\u540C\u3058\u304F\u3001\u6DFB\u4ED8\u6E08\u307F\u306E\u898B\u7A4D\u66F8\uFF08--type quotation \u306E\u66F8\u985E\uFF09\u304B\u3089\u4EF6\u540D\u30FB\u767A\u884C\u65E5\u30FB\u898B\u7A4D\u756A\u53F7\u30FB
110
+ \u5951\u7D04\u671F\u9593\u30FB\u5099\u8003\u30FB\u4ED5\u5165\u5148\u30FB\u660E\u7D30\u306E\u5019\u88DC\u3092\u8AAD\u307F\u53D6\u308A\u307E\u3059\u3002**\u4ED5\u5165\u306F\u5909\u308F\u308A\u307E\u305B\u3093**\uFF08\u753B\u9762\u3068\u540C\u3058\u304F\u3001\u78BA\u304B\u3081\u3066\u304B\u3089\u4FDD\u5B58\u3059\u308B\u524D\u63D0\u3067\u3059\uFF09\u3002
111
+ \u5019\u88DC\u3092\u4ED5\u5165\u3078\u5165\u308C\u308B\u306A\u3089 twp purchase update <\u4ED5\u5165ID> --content-file \u3067\u9001\u308A\u307E\u3059\u3002
112
+
113
+ POST \u2026/documents/{\u66F8\u985EID}/scan \u3092\u9001\u308A\u307E\u3059\uFF08\u3053\u3053\u3067\u30C6\u30CA\u30F3\u30C8\u306E AI \u30AF\u30EC\u30B8\u30C3\u30C8\u3092\u6D88\u8CBB\u3057\u307E\u3059\uFF09\u3002
114
+ \u898B\u7A4D\u66F8\u4EE5\u5916\u306E\u66F8\u985E\u30FB20MB \u3092\u8D85\u3048\u308B\u30D5\u30A1\u30A4\u30EB\u30FBWord / Excel \u306F\u30B5\u30FC\u30D0\u304C AI \u3092\u547C\u3076\u524D\u306B\u65AD\u308A\u307E\u3059\uFF08\u30AF\u30EC\u30B8\u30C3\u30C8\u306F\u6D88\u8CBB\u3057\u307E\u305B\u3093\uFF09\u3002
115
+ \u7D50\u679C\u3092\u53D7\u3051\u53D6\u308C\u306A\u304B\u3063\u305F\u3068\u304D\u306F\u3001\u6253\u3061\u76F4\u3059\u3068\u3082\u3046\u4E00\u5EA6\u6D88\u8CBB\u3059\u308B\u3053\u3068\u304C\u3042\u308A\u307E\u3059\uFF08\u305D\u306E\u65E8\u3092 stderr \u306B\u51FA\u3057\u307E\u3059\uFF09\u3002
116
+ \u65E2\u5B9A\u306F\u73FE\u884C\u7248\u3092\u8AAD\u307F\u307E\u3059\u3002\u904E\u53BB\u7248\u306F --rev \u3067\u7248\u756A\u53F7\u3092\u6307\u5B9A\u3057\u307E\u3059\u3002--dry-run \u306F\u9001\u308B\u30EA\u30AF\u30A8\u30B9\u30C8\u3060\u3051\u3092\u8868\u793A\u3057\u3001\u30AF\u30EC\u30B8\u30C3\u30C8\u3092\u6D88\u8CBB\u3057\u307E\u305B\u3093\u3002
117
+ \u53CD\u6620\u5148\u306E\u9805\u76EE\u306F\u4ED5\u5165 AI \u30DE\u30C3\u30D4\u30F3\u30B0\u306E\u8A2D\u5B9A\u3067\u6C7A\u307E\u308A\u307E\u3059\uFF08\u3053\u306E\u30B3\u30DE\u30F3\u30C9\u306F\u8A2D\u5B9A\u3092\u5909\u3048\u307E\u305B\u3093\uFF09\u3002`,destructive:true,confirmation:"AI \u30AF\u30EC\u30B8\u30C3\u30C8\u3092\u6D88\u8CBB\u3059\u308B\u64CD\u4F5C",flags:[PURCHASE_FLAG,REV_FLAG],forbidden:SALES_FORBIDDEN,plan:scanPlan,plannedNotes:()=>["\u30C6\u30CA\u30F3\u30C8\u306E AI \u30AF\u30EC\u30B8\u30C3\u30C8\u3092\u6D88\u8CBB\u3057\u307E\u3059\uFF08\u4ED5\u5165\u306F\u5909\u308F\u308A\u307E\u305B\u3093\uFF09"],
118
+ execute:scanDocument,summarize:scanSummary,raw:scanResult,notes:scanNotes}]};var PATH2=SALES_PURCHASES_PATH;var SALES_FORBIDDEN2=licenseForbidden(featureLicenseGuidance("\u8CA9\u58F2\u7BA1\u7406"));var PURCHASE_STATUSES={draft:"\u4F5C\u6210\u4E2D",completed:"\u4F5C\u6210\u5B8C\u4E86",in_progress:"\u627F\u8A8D\u7533\u8ACB\u4E2D",approved:"\u6B63\u5F0F\u627F\u8A8D\u6E08",rejected:"\u5DEE\u3057\u623B\u3057",canceled:"\u53D6\u6D88"};var CONTRACT_TYPES={single:"\u5358\u6708",continuous:"\u7D99\u7D9A"};var LOCKED_ALLOWED_KEYS={in_progress:["remarks","internal_memo","list_memo",
119
+ "status","estimate_no","order_acceptance_remarks"],approved:["remarks","internal_memo","list_memo"],canceled:["remarks","internal_memo","list_memo"]};function statusName(code){return PURCHASE_STATUSES[code]??code}function tableHelp(table){return Object.entries(table).map(([code,name])=>`${code}\uFF08${name}\uFF09`).join(" / ")}var RULE_KEYS=["purchase_no_rule_id","title","estimate_no","company_id","project_id","department_id","purchase_user_id","linked_user_id","order_issue_date","business_place\
120
+ _id","seal_impression_id","contract_type","contract_start_date","contract_end_date","status","approval_comment","remarks","order_acceptance_remarks","internal_memo","list_memo","details"];var CREATE_ONLY_KEYS=["purchase_no_rule_id"];var UPDATE_ONLY_KEYS=["approval_comment"];var REQUIRED_ON_UPDATE=["title","department_id"];var STORE_KEYS=RULE_KEYS.filter(key=>!UPDATE_ONLY_KEYS.includes(key));var UPDATE_KEYS=RULE_KEYS.filter(key=>!CREATE_ONLY_KEYS.includes(key));var DETAIL_KEYS=["item_name","descr\
121
+ iption","quantity","unit","unit_price","tax_rate"];var FIELD_NOTES=[["purchase_no_rule_id","\u4F5C\u6210\u306E\u307F\u3002\u4ED5\u5165\u756A\u53F7\u30EB\u30FC\u30EB\u306E ID\uFF08\u6574\u6570\u30FB\u6709\u52B9\u306A\u3082\u306E\u3060\u3051\u3002twp purchase no-rule list \u306E id\uFF09\u3002\u7701\u304F\u3068\u65E2\u5B9A\u306E\u30EB\u30FC\u30EB\u3067\u63A1\u756A\u3055\u308C\u307E\u3059"],["title","\u4F5C\u6210\u3067\u5FC5\u9808\u3002\u4EF6\u540D\uFF08500 \u6587\u5B57\u307E\u3067\uFF09"],["depart\
122
+ ment_id","\u4F5C\u6210\u3067\u5FC5\u9808\u3002\u90E8\u7F72 ID\uFF08twp department list \u306E id\uFF09"],["company_id","\u4ED5\u5165\u5148\u306E ID\uFF08\u6574\u6570\u3002twp company list \u306E id\u3002\u4ED5\u5165\u5148\u3060\u3051\u306E\u53D6\u5F15\u5148\u3082\u6307\u5B9A\u3067\u304D\u307E\u3059\uFF09"],["estimate_no","\u4ED5\u5165\u5148\u306E\u898B\u7A4D\u66F8\u306E\u898B\u7A4D\u756A\u53F7\uFF0850 \u6587\u5B57\u307E\u3067\u3002\u81EA\u793E\u306E\u63A1\u756A\u3068\u306F\u7121\u95A2\u4FC2\uFF09"],
123
+ ["project_id","\u30D7\u30ED\u30B8\u30A7\u30AF\u30C8 ID\uFF08\u30E1\u30F3\u30D0\u30FC\u306E\u30D7\u30ED\u30B8\u30A7\u30AF\u30C8\u3060\u3051\uFF09"],["purchase_user_id / linked_user_id","\u4ED5\u5165\u62C5\u5F53\u8005\u30FB\u7D10\u3065\u3051\u308B\u52E4\u6020\u30E6\u30FC\u30B6\u30FC\uFF08\u30E6\u30FC\u30B6\u30FC ID\uFF09"],["order_issue_date","\u6CE8\u6587\u66F8\u767A\u884C\u65E5\uFF08YYYY-MM-DD\uFF09"],["business_place_id / seal_impression_id","\u4E8B\u696D\u6240\u30FB\u5370\u5F71\u306E ID\uFF08\u6574\u6570\uFF09"],
124
+ ["contract_type",`\u5951\u7D04\u533A\u5206: ${tableHelp(CONTRACT_TYPES)}`],["contract_start_date / contract_end_date","\u5951\u7D04\u671F\u9593\uFF08YYYY-MM-DD\u3002\u7D42\u4E86\u306F\u958B\u59CB\u4EE5\u964D\uFF09"],["status",`\u4F5C\u6210\u306F draft\uFF08\u4F5C\u6210\u4E2D\uFF09/ completed\uFF08\u4F5C\u6210\u5B8C\u4E86\uFF09\u3060\u3051\u3002\u627F\u8A8D\u7533\u8ACB\uFF08in_progress\uFF09\u306F update \u3067\uFF08\u660E\u7D30\u304C1\u884C\u4EE5\u4E0A\u8981\u308A\u307E\u3059\uFF09\u3002\u6B63\u5F0F\u627F\u8A8D\u6E08\u306F\u627F\u8A8D\u30EF\u30FC\u30AF\u30D5\u30ED\u30FC\u3067\u3057\u304B\u4ED8\u304D\u307E\u305B\u3093\u3002\u5024: ${tableHelp(
125
+ PURCHASE_STATUSES)}`],["approval_comment","\u66F4\u65B0\u306E\u307F\u3002\u627F\u8A8D\u7533\u8ACB\uFF08status \u3092 in_progress \u306B\u3059\u308B\uFF09\u3068\u304D\u306E\u7533\u8ACB\u8005\u30B3\u30E1\u30F3\u30C8\uFF081,000 \u6587\u5B57\u307E\u3067\uFF09"],["remarks / order_acceptance_remarks","\u5099\u8003\uFF08\u6CE8\u6587\u66F8\u7528\u30FB\u6CE8\u6587\u8ACB\u66F8\u7528\uFF09\u3002\u4F5C\u6210\u3067\u66F8\u304B\u306A\u3051\u308C\u3070\u753B\u9762\u3068\u540C\u3058\u65E2\u5B9A\u306E\u6587\u8A00\u304C\u5165\u308A\u307E\u3059\uFF08null \u3092\u9001\u308B\u3068\u7A7A\u306B\u306A\u308A\u307E\u3059\uFF09"],
126
+ ["internal_memo","\u793E\u5185\u30E1\u30E2"],["list_memo","\u4E00\u89A7\u306E\u30E1\u30E2\u6B04\uFF08twp purchase memo \u3067\u3082\u66F8\u3051\u307E\u3059\uFF09"],["details","\u6CE8\u6587\u660E\u7D30\uFF080 \u4EF6\u3067\u3082\u4F5C\u308C\u307E\u3059\uFF09\u3002update \u3067\u9001\u308B\u3068\u660E\u7D30\u306F\u4E38\u3054\u3068\u7F6E\u304D\u63DB\u308F\u308A\u307E\u3059"],["details[].item_name","\u5FC5\u9808\u3002\u54C1\u540D\uFF08500 \u6587\u5B57\u307E\u3067\uFF09"],["details[].quantity","\u6570\u91CF\uFF080 \u4EE5\
127
+ \u4E0A\u306E\u6570\u5024\uFF09"],["details[].unit","set / item / unit / hour / day / month / person / person_month / person_day"],["details[].unit_price","\u5358\u4FA1\uFF080 \u4EE5\u4E0A\u306E\u6574\u6570\u30FB\u5186\uFF09"],["details[].tax_rate",'"10" / "8" / "0"\uFF08\u6587\u5B57\u5217\uFF09'],["details[].description","\u660E\u7D30\u306E\u8AAC\u660E"]];var CONTENT_MAX_CHARS=1e6;var LIST_MEMO_MAX_BYTES=65535;var LIST_COLUMNS2=["id","purchase_no","order_issue_date","status","company_name","titl\
128
+ e","total","document_count"];var GET_COLUMNS2=["id","purchase_no","estimate_no","title","status","order_issue_date","company_name","project_name","department_name","purchase_user_name","contract_type","contract_start_date","contract_end_date","subtotal","tax_amount","total","document_count"];var WRITE_COLUMNS=GET_COLUMNS2.filter(key=>key!=="document_count");var CONTENT_FILE_FLAG={name:"--content-file",summary:"\u4ED5\u5165\u306E\u5185\u5BB9\u306E JSON \u30D5\u30A1\u30A4\u30EB\uFF08- \u3067\u6A19\u6E96\u5165\u529B\uFF09",
129
+ takesValue:true,placeholder:"<\u30D1\u30B9>"};var SKELETON_FLAG={name:"--generate-cli-skeleton",summary:"--content-file \u306E\u3072\u306A\u5F62\u3092\u51FA\u3057\u3066\u7D42\u4E86\u3059\u308B\uFF08\u4ED5\u5165\u306F\u5909\u3048\u306A\u3044\uFF09",takesValue:false};var CONTENT_HELP="\u5185\u5BB9\uFF08--content-file\uFF09\u306F JSON \u30AA\u30D6\u30B8\u30A7\u30AF\u30C8\u3067\u3059\u3002\u30AD\u30FC\u306F\u753B\u9762\u306E\u5165\u529B\u9805\u76EE\u3068\u540C\u3058\u540D\u524D\uFF08title / department_id / details \u306A\u3069\uFF09\u3067\u3001\n \u5404\u30AD\u30FC\u306B\u6E21\u305B\u308B\u5024\u306F --generate-cli-skeleton \u306E\u6CE8\u8A18\uFF08stderr\uFF09\u306B\u51FA\u307E\u3059\u3002\n \u30B5\u30FC\u30D0\u306B\u7121\u3044\u30AD\u30FC\uFF08\u6253\u3061\u9593\u9055\u3044\u3092\u542B\u3080\u3002\u660E\u7D30 details[] \u306E\u4E2D\u3082\uFF09\u306F\u3001\u9001\u308B\u524D\u306B\u3059\u3079\u3066\u6319\u3052\u3066\u6B62\u3081\u307E\u3059\n \uFF08\u30B5\u30FC\u30D0\u306F\u77E5\u3089\u306A\u3044\u30AD\u30FC\u3092\u9ED9\u3063\u3066\u6368\u3066\u308B\u305F\
130
+ \u3081\uFF09\u3002\u5024\u306E\u8AA4\u308A\u306F\u30B5\u30FC\u30D0\u304C 422 \u3067\u65AD\u308A\u307E\u3059\u3002--content-file - \u3067\u6A19\u6E96\u5165\u529B\u304B\u3089\u8AAD\u3081\u307E\u3059\u3002";function usageOf3(op){return`twp purchase ${op} help`}function purchaseIdArg(input,op){const[raw,...rest]=input.args;const id=raw?.trim()??"";if(id==="")throw new UsageError("\u4ED5\u5165\u306E ID \u3092\u6307\u5B9A\u3057\u3066\u304F\u3060\u3055\u3044",usageOf3(op));if(rest.length>0)throw new UsageError(
131
+ `\u53D7\u3051\u53D6\u308C\u308B\u4ED5\u5165\u306E ID \u306F1\u3064\u3060\u3051\u3067\u3059: ${rest.join(" ")}`,usageOf3(op));if(!isExactNumericId(id)){throw new UsageError(`\u4ED5\u5165\u306E ID \u306F\u6570\u5B57\u3067\u6307\u5B9A\u3057\u3066\u304F\u3060\u3055\u3044: ${id}`,"\u4ED5\u5165\u756A\u53F7\u3067\u63A2\u3059\u306A\u3089 twp purchase list --keyword <\u756A\u53F7> \u306E id \u5217\u3092\u4F7F\u3063\u3066\u304F\u3060\u3055\u3044\u3002")}return id}function purchasePath(input,op){return`${PATH2}\
132
+ /${purchaseIdArg(input,op)}`}function noArgs3(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(" ")}`,usageOf3(op))}function envelope2(body,what){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 dataOf(body,what){
133
+ const data=envelope2(body,what)["data"];if(!isRecord(data)||typeof data["id"]!=="string"){throw new ApiResponseError(`${what}\u306E\u5FDC\u7B54\u306B data.id \u304C\u3042\u308A\u307E\u305B\u3093\u3002\u63A5\u7D9A\u5148\u3092\u78BA\u8A8D\u3057\u3066\u304F\u3060\u3055\u3044\u3002`)}return data}function serverMessage2(body){const message=isRecord(body)?body["message"]:void 0;return typeof message==="string"&&message!==""?[message]:[]}function withStatusName(row,columns){const picked=pick(row,columns);
134
+ const status=isRecord(row)?row["status"]:void 0;if(typeof status!=="string")return picked;return Object.fromEntries(Object.entries(picked).flatMap(([key,value])=>key==="status"?[[key,value],["status_name",statusName(status)]]:[[key,value]]))}function text2(value){return typeof value==="string"||typeof value==="number"?String(value):""}function describePurchase(purchase){const no=text2(purchase["purchase_no"]);const total=typeof purchase["total"]==="number"?`\u7A0E\u8FBC ${purchase["total"].toLocaleString(
135
+ "ja-JP")} \u5186`:"";const status=text2(purchase["status"]);const parts=[text2(purchase["company_name"]),total,status===""?"":statusName(status)].filter(part=>part!=="");return`${no===""?"\uFF08\u4ED5\u5165\u756A\u53F7\u306A\u3057\uFF09":no}\u300C${text2(purchase["title"])}\u300D${parts.length>0?`\uFF08${parts.join("\u30FB")}\uFF09`:""}`}var LIST_FILTER_FLAGS=[{name:"--keyword",summary:"\u4EF6\u540D\u30FB\u4ED5\u5165\u756A\u53F7\u306E\u8A9E\u3067\u7D5E\u308A\u8FBC\u3080\uFF08\u90E8\u5206\u4E00\u81F4\uFF09",
136
+ takesValue:true,placeholder:"<\u8A9E>"},{name:"--status",summary:"\u30B9\u30C6\u30FC\u30BF\u30B9\u3067\u7D5E\u308A\u8FBC\u3080\uFF08\u30B3\u30FC\u30C9\u304B\u8868\u793A\u540D\u30FB1\u3064\u3060\u3051\uFF09",takesValue:true,placeholder:"<\u30B9\u30C6\u30FC\u30BF\u30B9>"},{name:"--supplier",summary:"\u4ED5\u5165\u5148\u3067\u7D5E\u308A\u8FBC\u3080\uFF08\u4F01\u696D\u540D\u30FB\u7565\u79F0\u30FB\u30AB\u30CA\u306E\u5B8C\u5168\u4E00\u81F4\u304B ID\uFF09",takesValue:true,placeholder:"<\u4ED5\u5165\u5148>"},
137
+ {name:"--project",summary:"\u30D7\u30ED\u30B8\u30A7\u30AF\u30C8\u3067\u7D5E\u308A\u8FBC\u3080\uFF08\u30B3\u30FC\u30C9\u304B ID\uFF09",takesValue:true,placeholder:"<\u30B3\u30FC\u30C9|ID>"},{name:"--contract-type",summary:"\u5951\u7D04\u533A\u5206\u3067\u7D5E\u308A\u8FBC\u3080\uFF08single\uFF1D\u5358\u6708 / continuous\uFF1D\u7D99\u7D9A\uFF09",takesValue:true,placeholder:"<\u533A\u5206>"},{name:"--from",summary:"\u6CE8\u6587\u66F8\u767A\u884C\u65E5\u304C\u3053\u306E\u65E5\u4EE5\u964D\uFF08YYYY-MM-DD\uFF09",
138
+ takesValue:true,placeholder:"<\u65E5\u4ED8>"},{name:"--to",summary:"\u6CE8\u6587\u66F8\u767A\u884C\u65E5\u304C\u3053\u306E\u65E5\u4EE5\u524D\uFF08YYYY-MM-DD\uFF09",takesValue:true,placeholder:"<\u65E5\u4ED8>"}];function listQuery(input){const resolved=input.resolved??{};const{page_no,page_limit}=pageNumberQuery(input);return{keyword:nonEmpty(input.flags,"--keyword"),status:resolved["status"],company_id:resolved["supplier"],project_id:resolved["project"],contract_type:resolved["contractType"],order_issue_date_from:isoDate(
139
+ input,"--from"),order_issue_date_to:isoDate(input,"--to"),...STABLE_PAGE_ORDER,page_limit,page_no}}function tableRefs(table){return Object.entries(table).map(([code,name])=>({id:code,name,code}))}async function prepareList2(input,ctx){noArgs3(input,"list");listQuery(input);const resolved={};const status=nonEmpty(input.flags,"--status");if(status!==void 0){resolved["status"]=(await resolveNamed(status,tableRefs(PURCHASE_STATUSES),{flag:"--status",label:"\u4ED5\u5165\u306E\u30B9\u30C6\u30FC\u30BF\u30B9",
140
+ scope:"\u3053\u306E CLI"})).id}const contractType=nonEmpty(input.flags,"--contract-type");if(contractType!==void 0){resolved["contractType"]=(await resolveNamed(contractType,tableRefs(CONTRACT_TYPES),{flag:"--contract-type",label:"\u5951\u7D04\u533A\u5206",scope:"\u3053\u306E CLI"})).id}const supplier=nonEmpty(input.flags,"--supplier");if(supplier!==void 0)resolved["supplier"]=(await ctx.resolver.company(supplier,{flag:"--supplier",source:"sales",mustExist:true})).id;const project=nonEmpty(input.
141
+ flags,"--project");if(project!==void 0)resolved["project"]=await ctx.projectId(project);return withResolved(input,resolved)}function totalsNote(body){if(!isRecord(body))return[];const sum=body["sum"];const amount=body["total_amount"];return[...pageRangeNotes(body),...typeof sum==="number"?[`\u8A72\u5F53 ${sum} \u4EF6${typeof amount==="number"?`\u30FB\u5408\u8A08 \u7A0E\u8FBC ${amount.toLocaleString("ja-JP")} \u5186`:""}`]:[]]}var listPaging2=pageNumberPaging({label:"\u4ED5\u5165\u4E00\u89A7"});function rows(body){
142
+ envelope2(body,"\u4ED5\u5165\u4E00\u89A7");return listPaging2.items(body)}var listOperation2={name:"list",summary:"\u4ED5\u5165\u3092\u4E00\u89A7\u3059\u308B\uFF08\u767B\u9332\u306E\u65B0\u3057\u3044\u9806\uFF09",usage:"twp purchase list [--keyword <\u8A9E>] [--status <\u30B9\u30C6\u30FC\u30BF\u30B9>] [--supplier <\u4ED5\u5165\u5148>] [--project <\u30B3\u30FC\u30C9|ID>] [--contract-type <\u533A\u5206>] [--from <\u65E5\u4ED8>] [--to <\u65E5\u4ED8>] [--all] [--limit <\u4EF6\u6570>]",description:`\u8CA9\
143
+ \u58F2\u7BA1\u7406\u306E\u4ED5\u5165\uFF08\u6CE8\u6587\u66F8\uFF09\u3092\u4E00\u89A7\u3057\u307E\u3059\u3002\u898B\u3048\u308B\u306E\u306F\u30B5\u30FC\u30D0\u304C\u3042\u306A\u305F\u306B\u898B\u305B\u308B\u4ED5\u5165\u3060\u3051\u3067\u3059
144
+ \uFF08\u7BA1\u7406\u8005\u4EE5\u5916\u306F\u3001\u30E1\u30F3\u30D0\u30FC\u306E\u30D7\u30ED\u30B8\u30A7\u30AF\u30C8\u306E\u4ED5\u5165\u3068\u3001\u30D7\u30ED\u30B8\u30A7\u30AF\u30C8\u672A\u8A2D\u5B9A\u3067\u81EA\u5206\u304C\u4F5C\u6210\u8005\u304B\u4ED5\u5165\u62C5\u5F53\u8005\u306E\u4ED5\u5165\uFF09\u3002
145
+
146
+ --status \u306B\u6E21\u305B\u308B\u5024: ${tableHelp(PURCHASE_STATUSES)}
147
+ \u30B3\u30FC\u30C9\u3067\u3082\u8868\u793A\u540D\u3067\u3082\u6307\u5B9A\u3067\u304D\u3001\u6253\u3061\u9593\u9055\u3044\u306F\u300C0\u4EF6\u300D\u3067\u306F\u306A\u304F\u30A8\u30E9\u30FC\u306B\u306A\u308A\u307E\u3059\uFF08\u30B5\u30FC\u30D0\u306F1\u3064\u306E\u5024\u3067\u3057\u304B\u7D5E\u308A\u8FBC\u3081\u307E\u305B\u3093\uFF09\u3002
148
+ --supplier \u306F\u53D6\u5F15\u5148\uFF08\u4ED5\u5165\u5148\u3060\u3051\u306E\u4F01\u696D\u3092\u542B\u3080\uFF09\u306E\u540D\u524D\u304B ID \u3067\u3059\u3002--project \u3092\u7701\u3044\u3066\u3082\u65E2\u5B9A\u306E\u30D7\u30ED\u30B8\u30A7\u30AF\u30C8\uFF08TWP_PROJECT \u7B49\uFF09\u3067\u306F\u7D5E\u308A\u8FBC\u307F\u307E\u305B\u3093\u3002
149
+ \u7D5E\u308A\u8FBC\u307F\u5168\u4F53\u306E\u4EF6\u6570\u3068\u5408\u8A08\u91D1\u984D\uFF08\u7A0E\u8FBC\uFF09\u306F stderr \u306B\u51FA\u307E\u3059\u3002document_count \u306F\u6DFB\u4ED8\u66F8\u985E\u306E\u6570\u3067\u3059\u3002
150
+
151
+ --output json \u306F API \u304C\u8FD4\u3059\u5168\u30D5\u30A3\u30FC\u30EB\u30C9\u3092\u51FA\u3057\u307E\u3059\u3002
152
+ --output table / text / tsv \u306F\u8981\u7D04\u5217\uFF08${LIST_COLUMNS2.join(" / ")}\u3001status \u306E\u5F8C\u308D\u306B status_name\uFF09\u3067\u3059\u3002
153
+
154
+ `+LIST_PAGING_HELP+"\n"+PAGE_NUMBER_PAGING_HELP,flags:[...PAGE_NUMBER_LIST_FLAGS,...LIST_FILTER_FLAGS],paging:listPaging2,forbidden:SALES_FORBIDDEN2,prepare:prepareList2,plan:input=>({method:"GET",path:PATH2,query:listQuery(input)}),summarize:body=>rows(body).map(row=>withStatusName(row,LIST_COLUMNS2)),raw:rows,notes:totalsNote};var getOperation2={name:"get",summary:"\u4ED5\u51651\u4EF6\u306E\u8A73\u7D30\u3092\u8868\u793A\u3059\u308B",usage:"twp purchase get <\u4ED5\u5165ID>",description:"ID \u306F t\
155
+ wp purchase list \u306E id \u5217\u306E\u6570\u5B57\u3067\u3059\uFF08\u4ED5\u5165\u756A\u53F7\u3067\u306F\u3042\u308A\u307E\u305B\u3093\uFF09\u3002\n\n--output json \u306F\u4ED5\u5165\u306E\u5168\u30D5\u30A3\u30FC\u30EB\u30C9\uFF08\u660E\u7D30 details \u3092\u542B\u3080\uFF09\u3092\u51FA\u3057\u307E\u3059\u3002\u6DFB\u4ED8\u66F8\u985E\u306F twp purchase document list --purchase <\u4ED5\u5165ID> \u3067\u898B\u307E\u3059\u3002",flags:[],forbidden:SALES_FORBIDDEN2,plan:input=>({method:"GET",path:purchasePath(
156
+ input,"get")}),summarize:body=>withStatusName(dataOf(body,"\u4ED5\u5165"),GET_COLUMNS2),raw:body=>dataOf(body,"\u4ED5\u5165")};function unknownRowKeys(value,key,allowed,source){if(value===void 0||value===null)return[];if(!Array.isArray(value))throw new UsageError(`${key} \u306F\u914D\u5217\u3067\u6307\u5B9A\u3057\u3066\u304F\u3060\u3055\u3044\uFF08${source}\uFF09`,CONTENT_HELP);const problems=[];value.forEach((row,index)=>{if(!isRecord(row)){problems.push(`${key}[${index}] \u304C\u30AA\u30D6\u30B8\u30A7\u30AF\u30C8\u3067\u306F\u3042\u308A\u307E\u305B\u3093`);
157
+ return}for(const name of Object.keys(row)){if(!allowed.includes(name))problems.push(`${key}[${index}].${name}`)}});return problems}function parsePurchaseContent(textBody,source,mode){let parsed;try{parsed=JSON.parse(textBody)}catch{throw new UsageError(`\u4ED5\u5165\u306E\u5185\u5BB9\u304C JSON \u3068\u3057\u3066\u8AAD\u3081\u307E\u305B\u3093\uFF08${source}\uFF09`,CONTENT_HELP)}if(!isRecord(parsed))throw new UsageError(`\u4ED5\u5165\u306E\u5185\u5BB9\u306F JSON \u30AA\u30D6\u30B8\u30A7\u30AF\u30C8\u3067\u6307\u5B9A\u3057\u3066\u304F\u3060\u3055\u3044\uFF08${source}\
158
+ \uFF09`,CONTENT_HELP);const allowed=mode==="create"?STORE_KEYS:UPDATE_KEYS;const problems=[...Object.keys(parsed).filter(key=>!allowed.includes(key)).map(key=>mode==="update"&&CREATE_ONLY_KEYS.includes(key)?`${key}\uFF08\u4F5C\u6210\u306E\u3068\u304D\u3060\u3051\u6307\u5B9A\u3067\u304D\u307E\u3059\u3002\u4ED5\u5165\u756A\u53F7\u306F\u4ED8\u3051\u66FF\u3048\u3089\u308C\u307E\u305B\u3093\uFF09`:mode==="create"&&UPDATE_ONLY_KEYS.includes(key)?`${key}\uFF08\u66F4\u65B0\u306E\u3068\u304D\u3060\u3051\u52B9\u304D\u307E\u3059\u3002\u627F\u8A8D\u7533\u8ACB\u306F\u4F5C\u6210\u5F8C\u306B twp purchase update \u3067 stat\
159
+ us \u3092 in_progress \u306B\u3057\u307E\u3059\uFF09`:key),...unknownRowKeys(parsed["details"],"details",DETAIL_KEYS,source)];if(problems.length>0){throw new UsageError(`\u4ED5\u5165\u306E\u5185\u5BB9\u306B\u9001\u308C\u306A\u3044\u9805\u76EE\u304C\u3042\u308A\u307E\u3059\uFF08${source}\uFF09: ${problems.join(", ")}`,`\u9001\u308C\u308B\u9805\u76EE\u306F twp purchase ${mode} --generate-cli-skeleton \u306E\u6CE8\u8A18\u306B\u4E26\u3073\u307E\u3059\u3002${mode==="update"?"\u4ECA\u306E\u5024\u306F twp purchase update \
160
+ <\u4ED5\u5165ID> --generate-cli-skeleton \u3067\u53D6\u308C\u307E\u3059\u3002":""}`)}if(mode==="update"&&Object.keys(parsed).length===0){throw new UsageError(`\u66F8\u304D\u63DB\u3048\u308B\u9805\u76EE\u304C\u3042\u308A\u307E\u305B\u3093\uFF08${source} \u304C\u7A7A\u306E\u30AA\u30D6\u30B8\u30A7\u30AF\u30C8\u3067\u3059\uFF09`,usageOf3("update"))}return parsed}function lockedDropKeys(currentStatus,body){const allowed=typeof currentStatus==="string"?LOCKED_ALLOWED_KEYS[currentStatus]:void 0;if(allowed===
161
+ void 0)return[];return Object.keys(body).filter(key=>!allowed.includes(key))}function contentNotes(body,mode){const notes=[];if(mode==="update"&&Array.isArray(body["details"]))notes.push("\u660E\u7D30\uFF08details\uFF09\u306F\u4E38\u3054\u3068\u7F6E\u304D\u63DB\u308F\u308A\u307E\u3059\uFF08\u9001\u3063\u305F\u884C\u3060\u3051\u304C\u6B8B\u308A\u307E\u3059\uFF09");if(mode==="update"&&body["status"]==="in_progress")notes.push("status \u304C in_progress\uFF08\u627F\u8A8D\u7533\u8ACB\u4E2D\uFF09\u3067\u3059\u3002\u4ECA\u304C\u7533\u8ACB\u4E2D\u3067\u306A\u3051\u308C\u3070\u627F\u8A8D\u7533\u8ACB\u306B\u306A\u308A\u3001\u627F\u8A8D\u8005\u3078\u5C4A\u304D\u307E\u3059");
162
+ if(mode==="update"&&body["status"]==="canceled"){notes.push("status \u3092 canceled\uFF08\u53D6\u6D88\uFF09\u306B\u3057\u307E\u3059\u3002\u53D6\u6D88\u306F\u623B\u305B\u307E\u305B\u3093\uFF08\u53D6\u6D88\u5F8C\u306F\u30B9\u30C6\u30FC\u30BF\u30B9\u3082\u91D1\u984D\u30FB\u660E\u7D30\u3082\u5909\u3048\u3089\u308C\u305A\u3001\u5099\u8003\u30FB\u30E1\u30E2\u3060\u3051\u306B\u306A\u308A\u307E\u3059\uFF09")}return notes}function fieldNotes(mode){const excluded=mode==="create"?UPDATE_ONLY_KEYS:CREATE_ONLY_KEYS;
163
+ return[`\u9001\u308C\u308B\u9805\u76EE\uFF08${mode}\uFF09\u3068\u5024\u306E\u6C7A\u307E\u308A\uFF08\u30B5\u30FC\u30D0\u306E\u691C\u67FB\u306E\u5199\u3057\uFF09:`,...FIELD_NOTES.filter(([key])=>!excluded.includes(key)).map(([key,note])=>` ${key}: ${note}`)]}function createSkeleton(){return{title:"",department_id:"",company_id:null,estimate_no:null,project_id:null,purchase_no_rule_id:null,purchase_user_id:null,order_issue_date:null,contract_type:"single",contract_start_date:null,contract_end_date:null,
164
+ status:"draft",internal_memo:null,details:[{item_name:"",description:null,quantity:1,unit:"set",unit_price:0,tax_rate:"10"}]}}function updateSkeleton(purchase){const locked=typeof purchase["status"]==="string"?LOCKED_ALLOWED_KEYS[purchase["status"]]:void 0;const out={};for(const key of UPDATE_KEYS){if(!(key in purchase))continue;if(locked!==void 0&&!locked.includes(key))continue;const value=purchase[key];out[key]=key==="details"&&Array.isArray(value)?value.filter(isRecord).map(row=>pick(row,DETAIL_KEYS)):
165
+ value}return out}function updateSkeletonNotes(purchase){const status=text2(purchase["status"]);const locked=LOCKED_ALLOWED_KEYS[status];return["\u4ECA\u306E\u4ED5\u5165\u306E\u3001\u66F8\u304D\u8FBC\u3081\u308B\u9805\u76EE\u3060\u3051\u3092\u51FA\u3057\u307E\u3057\u305F\u3002\u5909\u3048\u306A\u3044\u9805\u76EE\u306F\u6D88\u3057\u3066\u304B\u3089 twp purchase update <\u4ED5\u5165ID> --content-file <\u30D1\u30B9> \u3067\u9001\u3063\u3066\u304F\u3060\u3055\u3044",...locked!==void 0?[` \u3053\u306E\u4ED5\u5165\u306F ${statusName(
166
+ status)} \u306E\u305F\u3081\u3001\u30B5\u30FC\u30D0\u304C\u53D7\u3051\u4ED8\u3051\u308B ${locked.join(" / ")} \u3060\u3051\u3092\u51FA\u3057\u307E\u3057\u305F\uFF08\u91D1\u984D\u30FB\u660E\u7D30\u306F\u5909\u3048\u3089\u308C\u307E\u305B\u3093\uFF09`]:[" \uFF08details \u3092\u9001\u308B\u3068\u660E\u7D30\u306F\u4E38\u3054\u3068\u7F6E\u304D\u63DB\u308F\u308A\u307E\u3059\uFF09"],...fieldNotes("update")]}function writeResult(value){if(!isRecord(value)||typeof value["skeleton"]!=="boolean"){throw new Error(
167
+ "\u5185\u90E8\u30A8\u30E9\u30FC: purchase \u306E\u5FDC\u7B54\u306B\u5370\u304C\u3042\u308A\u307E\u305B\u3093\uFF08execute \u306E\u914D\u7DDA\u6F0F\u308C\uFF09")}return value}function contentOf(input){return JSON.parse(requireResolved(input,"body"))}function updatePlan(input){const target=purchasePath(input,"update");if(input.flags.has(SKELETON_FLAG.name))return{method:"GET",path:target};return{method:"PUT",path:target,body:contentOf(input)}}async function readContent(input,mode){const wantsSkeleton=input.
168
+ flags.has(SKELETON_FLAG.name);if(wantsSkeleton&&input.flags.has(CONTENT_FILE_FLAG.name)){throw new UsageError("--generate-cli-skeleton \u3068 --content-file \u306F\u540C\u6642\u306B\u6307\u5B9A\u3067\u304D\u307E\u305B\u3093",usageOf3(mode))}if(wantsSkeleton)return void 0;const body=await readBody(input,{flag:"--content",fileFlag:CONTENT_FILE_FLAG.name,label:"\u4ED5\u5165\u306E\u5185\u5BB9",maxChars:CONTENT_MAX_CHARS,usage:usageOf3(mode)});if(body===void 0){throw new UsageError("\u4ED5\u5165\u306E\u5185\u5BB9\u3092 --content-\
169
+ file <\u30D1\u30B9> \u3067\u6307\u5B9A\u3057\u3066\u304F\u3060\u3055\u3044",`\u3072\u306A\u5F62\u306F twp purchase ${mode==="update"?"update <\u4ED5\u5165ID>":"create"} --generate-cli-skeleton \u3067\u51FA\u305B\u307E\u3059\u3002`)}return parsePurchaseContent(body,`${CONTENT_FILE_FLAG.name} ${input.flags.get(CONTENT_FILE_FLAG.name)??""}`,mode)}var NO_RULES_PLAN={method:"GET",path:"/api/v2/sales/purchase-no-rules",query:{sort_column:"sort_order",sort_direction:"asc",page_limit:100,page_no:1}};function createPlan(input){
170
+ if(input.flags.has(SKELETON_FLAG.name))return NO_RULES_PLAN;return{method:"POST",path:PATH2,body:contentOf(input)}}function noRuleNotes(body){const list=envelope2(body,"\u4ED5\u5165\u756A\u53F7\u306E\u63A1\u756A\u30EB\u30FC\u30EB\u4E00\u89A7")["list"];if(!Array.isArray(list))throw new ApiResponseError("\u4ED5\u5165\u756A\u53F7\u306E\u63A1\u756A\u30EB\u30FC\u30EB\u4E00\u89A7\u306E\u5FDC\u7B54\u306B list \u304C\u3042\u308A\u307E\u305B\u3093\u3002\u63A5\u7D9A\u5148\u3092\u78BA\u8A8D\u3057\u3066\u304F\u3060\u3055\u3044\u3002");
171
+ const active=list.filter(row=>isRecord(row)&&row["is_active"]!==false&&row["is_active"]!==0);const sum=isRecord(body)?body["sum"]:void 0;return[active.length>0?`\u4F7F\u3048\u308B\u63A1\u756A\u30EB\u30FC\u30EB\uFF08purchase_no_rule_id\uFF09: ${active.map(row=>`${text2(row["id"])}\uFF1D${text2(row["rule_name"])}\uFF08${text2(row["prefix"])}\u2026\uFF09`).join(" / ")}`:"\u6709\u52B9\u306A\u63A1\u756A\u30EB\u30FC\u30EB\u304C\u3042\u308A\u307E\u305B\u3093\uFF08purchase_no_rule_id \u306F null \u306E\u307E\u307E\u9001\u308A\u307E\u3059\u3002\u4F5C\u308B\u306A\u3089 twp purchase no-rule create\uFF09",
172
+ ...typeof sum==="number"&&sum>list.length?[` \u63A1\u756A\u30EB\u30FC\u30EB\u304C ${sum} \u4EF6\u3042\u308A\u3001\u5148\u982D ${list.length} \u4EF6\u3060\u3051\u3092\u898B\u307E\u3057\u305F\uFF08\u5168\u4EF6\u306F twp purchase no-rule list --all\uFF09`]:[]]}function createSkeletonFrom(body){noRuleNotes(body);return createSkeleton()}var createOperation2={name:"create",summary:"\u4ED5\u5165\u3092\u4F5C\u6210\u3059\u308B\uFF08\u5185\u5BB9\u306F --content-file \u306E JSON\uFF09",usage:"twp purchase\
173
+ create (--content-file <\u30D1\u30B9> | --generate-cli-skeleton)",description:`POST /api/v2/sales/purchases \u3067\u4ED5\u5165\uFF08\u6CE8\u6587\u66F8\uFF09\u3092\u4F5C\u308A\u307E\u3059\u3002\u4EF6\u540D\uFF08title\uFF09\u3068\u90E8\u7F72\uFF08department_id\uFF09\u304C\u5FC5\u9808\u3067\u3001\u660E\u7D30\u306F 0 \u4EF6\u3067\u3082\u4F5C\u308C\u307E\u3059\u3002
174
+ \u4ED5\u5165\u756A\u53F7\u306F\u63A1\u756A\u30EB\u30FC\u30EB\u3067\u81EA\u52D5\u63A1\u756A\u3055\u308C\u307E\u3059\u3002\u4F5C\u6210\u6642\u306E\u30B9\u30C6\u30FC\u30BF\u30B9\u306F draft\uFF08\u4F5C\u6210\u4E2D\uFF09\u304B completed\uFF08\u4F5C\u6210\u5B8C\u4E86\uFF09\u3060\u3051\u3067\u3059
175
+ \uFF08\u627F\u8A8D\u7533\u8ACB\u306F twp purchase update \u3067 status \u3092 in_progress \u306B\u3057\u307E\u3059\uFF09\u3002
176
+
177
+ ${CONTENT_HELP}
178
+
179
+ --generate-cli-skeleton \u306F\u63A1\u756A\u30EB\u30FC\u30EB\u306E\u4E00\u89A7\u3092\u8AAD\u307F\uFF08GET /api/v2/sales/purchase-no-rules\uFF09\u3001\u7A7A\u306E\u3072\u306A\u5F62\u3092\u6A19\u6E96\u51FA\u529B\u3078\u51FA\u3057\u3066
180
+ \u7D42\u4E86\u3057\u307E\u3059\uFF08\u4ED5\u5165\u306F\u4F5C\u308A\u307E\u305B\u3093\uFF09\u3002\u5404\u9805\u76EE\u306B\u6E21\u305B\u308B\u5024\u3068\u4F7F\u3048\u308B\u63A1\u756A\u30EB\u30FC\u30EB\u306F stderr \u306B\u51FA\u307E\u3059\u3002
181
+ \u4F8B: twp purchase create --generate-cli-skeleton --output json > purchase.json
182
+
183
+ \u8CA9\u58F2\u7BA1\u7406\u306E\u6A29\u9650\u304C\u300C\u30E1\u30F3\u30D0\u30FC\u300D\u4EE5\u4E0A\u3067\u3042\u308B\u3053\u3068\u304C\u8981\u308A\u307E\u3059\u3002\u4F5C\u3063\u305F\u4ED5\u5165\u306E ID \u306F\u51FA\u529B\u306E id \u3067\u3059\u3002`,flags:[CONTENT_FILE_FLAG,SKELETON_FLAG],forbidden:SALES_FORBIDDEN2,async prepare(input){noArgs3(input,"create");const content=await readContent(input,"create");return content===void 0?input:withResolved(input,{body:JSON.stringify(content)})},plan:createPlan,
184
+ plannedNotes:input=>input.flags.has(SKELETON_FLAG.name)?["\u63A1\u756A\u30EB\u30FC\u30EB\u306E\u4E00\u89A7\u3092\u8AAD\u3080\u3060\u3051\u3067\u3001\u4ED5\u5165\u306F\u4F5C\u308A\u307E\u305B\u3093"]:contentNotes(contentOf(input),"create"),execute:async(input,ctx)=>({skeleton:input.flags.has(SKELETON_FLAG.name),body:await ctx.send(createPlan(input))}),summarize(value){const result=writeResult(value);return result.skeleton?createSkeletonFrom(result.body):withStatusName(dataOf(result.body,"\u4ED5\u5165\u306E\u4F5C\u6210"),
185
+ WRITE_COLUMNS)},raw(value){const result=writeResult(value);return result.skeleton?createSkeletonFrom(result.body):dataOf(result.body,"\u4ED5\u5165\u306E\u4F5C\u6210")},notes(value){const result=writeResult(value);return result.skeleton?["\u7A7A\u306E\u3072\u306A\u5F62\u3067\u3059\u3002title\u30FBdepartment_id \u3092\u57CB\u3081\u3066\u304B\u3089 twp purchase create --content-file <\u30D1\u30B9> \u3067\u4F5C\u308A\u307E\u3059",...noRuleNotes(result.body),...fieldNotes("create")]:serverMessage2(result.
186
+ body)}};var updateOperation2={name:"update",summary:"\u4ED5\u5165\u3092\u66F8\u304D\u63DB\u3048\u308B\uFF08\u30D5\u30A1\u30A4\u30EB\u306B\u66F8\u3044\u305F\u9805\u76EE\u3060\u3051\u3092\u9001\u308B\uFF09",usage:"twp purchase update <\u4ED5\u5165ID> (--content-file <\u30D1\u30B9> | --generate-cli-skeleton)",description:`PUT /api/v2/sales/purchases/{id} \u3067\u4ED5\u5165\u3092\u66F8\u304D\u63DB\u3048\u307E\u3059\u3002\u30D5\u30A1\u30A4\u30EB\u306B\u66F8\u3044\u305F\u30AD\u30FC\u3060\u3051\u3092\u9001\u308A\u307E\u3059\uFF08\u66F8\u304B\u306A\u304B\u3063\u305F\u9805\u76EE\u306F\u5909\u308F\u308A\u307E\u305B\u3093\uFF09\u3002
187
+ \u305F\u3060\u3057\u4EF6\u540D\uFF08title\uFF09\u3068\u90E8\u7F72\uFF08department_id\uFF09\u306F\u30B5\u30FC\u30D0\u304C\u66F4\u65B0\u3067\u3082\u6BCE\u56DE\u5FC5\u9808\u3068\u3059\u308B\u306E\u3067\u3001\u66F8\u304B\u306A\u3051\u308C\u3070\u4ECA\u306E\u5024\u3092\u88DC\u3063\u3066\u9001\u308A\u307E\u3059\u3002
188
+ \u26A0\uFE0F details\uFF08\u660E\u7D30\uFF09\u306F\u3001\u9001\u308B\u3068\u4E38\u3054\u3068\u7F6E\u304D\u63DB\u308F\u308A\u307E\u3059\u3002status \u3092 in_progress\uFF08\u627F\u8A8D\u7533\u8ACB\u4E2D\uFF09\u306B\u3059\u308B\u3068\u627F\u8A8D\u7533\u8ACB\u306B\u306A\u308A\u307E\u3059\u3002
189
+ \u627F\u8A8D\u7533\u8ACB\u4E2D\u30FB\u6B63\u5F0F\u627F\u8A8D\u6E08\u30FB\u53D6\u6D88\u306E\u4ED5\u5165\u306F\u3001\u5099\u8003\u30FB\u30E1\u30E2\u306A\u3069\u4E00\u90E8\u3057\u304B\u5909\u3048\u3089\u308C\u307E\u305B\u3093\uFF08\u627F\u8A8D\u7533\u8ACB\u4E2D\u306F\u52A0\u3048\u3066 status\u30FBestimate_no\u30FB
190
+ \u6CE8\u6587\u8ACB\u66F8\u7528\u5099\u8003\uFF09\u3002\u30B5\u30FC\u30D0\u306F\u305D\u308C\u4EE5\u5916\u306E\u9805\u76EE\u3092\u9ED9\u3063\u3066\u6368\u3066\u308B\u306E\u3067\u3001CLI \u306F\u4ECA\u306E\u4ED5\u5165\u3092\u8AAD\u3093\u3067\u304B\u3089\u3001\u6368\u3066\u3089\u308C\u308B\u9805\u76EE\u3092\u6319\u3052\u3066\u6B62\u3081\u307E\u3059
191
+ \uFF08--dry-run \u3067\u3082\u4ED5\u5165\u30921\u4EF6\u8AAD\u307F\u307E\u3059\uFF09\u3002
192
+
193
+ ${CONTENT_HELP}
194
+
195
+ --generate-cli-skeleton \u306F\u4ECA\u306E\u4ED5\u5165\u3092\u8AAD\u307F\uFF08GET /api/v2/sales/purchases/{id}\uFF09\u3001\u66F8\u304D\u8FBC\u3081\u308B\u30AD\u30FC\u3060\u3051\u3092\u6B8B\u3057\u3066\u51FA\u3057\u307E\u3059\u3002
196
+ \u4F8B: twp purchase update 12 --generate-cli-skeleton --output json > purchase.json`,flags:[CONTENT_FILE_FLAG,SKELETON_FLAG],forbidden:SALES_FORBIDDEN2,async prepare(input,ctx){const id=purchaseIdArg(input,"update");const content=await readContent(input,"update");if(content===void 0)return input;const current=await ctx.resolver.salesRecord("purchase",id,"<\u4ED5\u5165ID>");if("approval_comment"in content&&!(content["status"]==="in_progress"&&current["status"]!=="in_progress")){throw new UsageError(
197
+ "approval_comment\uFF08\u7533\u8ACB\u30B3\u30E1\u30F3\u30C8\uFF09\u306F\u627F\u8A8D\u7533\u8ACB\u3059\u308B\u3068\u304D\uFF08status \u3092 in_progress \u306B\u3059\u308B\u66F4\u65B0\uFF09\u306B\u3057\u304B\u4FDD\u5B58\u3055\u308C\u307E\u305B\u3093",'\u627F\u8A8D\u7533\u8ACB\u3059\u308B\u306A\u3089\u540C\u3058\u30D5\u30A1\u30A4\u30EB\u306B "status": "in_progress" \u3092\u66F8\u304D\u307E\u3059\u3002\u4ECA\u304C\u627F\u8A8D\u7533\u8ACB\u4E2D\u306A\u3089\u7533\u8ACB\u30B3\u30E1\u30F3\u30C8\u306F\u5909\u3048\u3089\u308C\u307E\u305B\u3093\u3002')}
198
+ const dropped=lockedDropKeys(current["status"],content);if(dropped.length>0){const status=text2(current["status"]);throw new UsageError(`\u3053\u306E\u4ED5\u5165\u306F ${statusName(status)}\uFF08${status}\uFF09\u306E\u305F\u3081\u3001\u6B21\u306E\u9805\u76EE\u306F\u30B5\u30FC\u30D0\u304C\u53D7\u3051\u4ED8\u3051\u307E\u305B\u3093\uFF08\u9001\u3063\u3066\u3082\u4FDD\u5B58\u3055\u308C\u307E\u305B\u3093\uFF09: ${dropped.join(", ")}`,`\u5909\u3048\u3089\u308C\u308B\u306E\u306F ${(LOCKED_ALLOWED_KEYS[status]??
199
+ []).join(" / ")} \u3060\u3051\u3067\u3059\u3002twp purchase update ${id} --generate-cli-skeleton \u3067\u66F8\u304D\u8FBC\u3081\u308B\u9805\u76EE\u3060\u3051\u306E\u3072\u306A\u5F62\u304C\u51FA\u307E\u3059\u3002`)}const filled=[];for(const key of REQUIRED_ON_UPDATE){if(!(key in content)&&current[key]!==void 0&&current[key]!==null){content[key]=current[key];filled.push(key)}}return withResolved(input,{body:JSON.stringify(content),filled:filled.join(",")})},plan:updatePlan,plannedNotes(input){if(input.
200
+ flags.has(SKELETON_FLAG.name))return["\u4ECA\u306E\u4ED5\u5165\u3092\u8AAD\u3080\u3060\u3051\u3067\u3001\u66F8\u304D\u63DB\u3048\u307E\u305B\u3093"];const filled=requireResolved(input,"filled");return[...filled===""?[]:[`${filled.split(",").join(" / ")} \u306F\u66F8\u304B\u308C\u3066\u3044\u306A\u3044\u306E\u3067\u4ECA\u306E\u5024\u306E\u307E\u307E\u9001\u308A\u307E\u3059\uFF08\u30B5\u30FC\u30D0\u304C\u66F4\u65B0\u3067\u3082\u5FC5\u9808\u3068\u3059\u308B\u305F\u3081\uFF09`],...contentNotes(contentOf(
201
+ input),"update")]},execute:async(input,ctx)=>({skeleton:input.flags.has(SKELETON_FLAG.name),body:await ctx.send(updatePlan(input))}),summarize(value){const result=writeResult(value);return result.skeleton?updateSkeleton(dataOf(result.body,"\u4ED5\u5165")):withStatusName(dataOf(result.body,"\u4ED5\u5165\u306E\u66F4\u65B0"),WRITE_COLUMNS)},raw(value){const result=writeResult(value);return result.skeleton?updateSkeleton(dataOf(result.body,"\u4ED5\u5165")):dataOf(result.body,"\u4ED5\u5165\u306E\u66F4\u65B0")},
202
+ notes(value){const result=writeResult(value);return result.skeleton?updateSkeletonNotes(dataOf(result.body,"\u4ED5\u5165")):serverMessage2(result.body)}};var duplicateOperation={name:"duplicate",summary:"\u4ED5\u5165\u3092\u30B3\u30D4\u30FC\u3057\u3066\u65B0\u3057\u3044\u4ED5\u5165\u3092\u4F5C\u308B\uFF08\u660E\u7D30\u3092\u5199\u3059\u30FB\u6DFB\u4ED8\u66F8\u985E\u306F\u5199\u3055\u306A\u3044\uFF09",usage:"twp purchase duplicate <\u4ED5\u5165ID>",description:"POST /api/v2/sales/purchases/{id}/d\
203
+ uplicate \u3067\u3001\u4ED5\u5165\u3092\u30B3\u30D4\u30FC\u3057\u305F\u65B0\u3057\u3044\u4ED5\u5165\u3092\u4F5C\u308A\u307E\u3059\uFF08\u5143\u306E\u4ED5\u5165\u306F\u5909\u308F\u308A\u307E\u305B\u3093\uFF09\u3002\n\u4ED5\u5165\u756A\u53F7\u306F\u65B0\u3057\u304F\u63A1\u756A\u3055\u308C\u3001\u30B9\u30C6\u30FC\u30BF\u30B9\u306F draft\uFF08\u4F5C\u6210\u4E2D\uFF09\u304B\u3089\u59CB\u307E\u308A\u307E\u3059\uFF08\u627F\u8A8D\u306E\u72B6\u614B\u306F\u5F15\u304D\u7D99\u304E\u307E\u305B\u3093\uFF09\u3002\n\u5199\u3059\u306E\u306F\u672C\u4F53\u3068\u660E\u7D30\u3060\u3051\u3067\u3001\u6DFB\u4ED8\u66F8\u985E\uFF08twp purchase document\uFF09\u306F\u5199\u3057\u307E\u305B\u3093\u3002\n\u4F5C\u3063\u305F\u4ED5\u5165\u306E ID \u306F\u51FA\u529B\u306E id \u3067\u3059\u3002\u8CA9\u58F2\u7BA1\u7406\u306E\u6A29\u9650\u304C\u300C\u30E1\u30F3\u30D0\u30FC\u300D\u4EE5\u4E0A\u3067\u3042\u308B\u3053\u3068\u304C\u8981\u308A\u307E\u3059\u3002",
204
+ flags:[],forbidden:SALES_FORBIDDEN2,plan:input=>({method:"POST",path:`${purchasePath(input,"duplicate")}/duplicate`}),plannedNotes:()=>["\u65B0\u3057\u3044\u4ED5\u5165\u30921\u4EF6\u4F5C\u308A\u307E\u3059\uFF08\u6DFB\u4ED8\u66F8\u985E\u306F\u5199\u3057\u307E\u305B\u3093\uFF09"],summarize:body=>withStatusName(dataOf(body,"\u4ED5\u5165\u306E\u8907\u88FD"),WRITE_COLUMNS),raw:body=>dataOf(body,"\u4ED5\u5165\u306E\u8907\u88FD"),notes:serverMessage2};var MEMO_FLAGS=[{name:"--text",summary:"\u30E1\u30E2\u306E\u672C\u6587",
205
+ takesValue:true,placeholder:"<\u672C\u6587>"},{name:"--text-file",summary:"\u30E1\u30E2\u306E\u672C\u6587\u3092\u8AAD\u3080\u30D5\u30A1\u30A4\u30EB\uFF08- \u3067\u6A19\u6E96\u5165\u529B\uFF09",takesValue:true,placeholder:"<\u30D1\u30B9>"},{name:"--clear",summary:"\u30E1\u30E2\u3092\u6D88\u3059",takesValue:false}];async function prepareMemo(input){purchaseIdArg(input,"memo");const clear=input.flags.has("--clear");const body=await readBody(input,{flag:"--text",fileFlag:"--text-file",label:"\u4E00\u89A7\u306E\u30E1\u30E2",
206
+ maxChars:LIST_MEMO_MAX_BYTES,usage:usageOf3("memo")});if(clear&&body!==void 0)throw new UsageError("--clear \u3068 --text / --text-file \u306F\u540C\u6642\u306B\u6307\u5B9A\u3067\u304D\u307E\u305B\u3093",usageOf3("memo"));if(!clear&&body===void 0)throw new UsageError("\u30E1\u30E2\u3092 --text <\u672C\u6587> \u304B --text-file <\u30D1\u30B9> \u3067\u6307\u5B9A\u3057\u3066\u304F\u3060\u3055\u3044\uFF08\u6D88\u3059\u306A\u3089 --clear\uFF09",usageOf3("memo"));if(body!==void 0&&Buffer.byteLength(body,
207
+ "utf8")>LIST_MEMO_MAX_BYTES){throw new UsageError(`\u4E00\u89A7\u306E\u30E1\u30E2\u304C\u9577\u3059\u304E\u307E\u3059\uFF08${Buffer.byteLength(body,"utf8").toLocaleString()} \u30D0\u30A4\u30C8\u30FB\u4FDD\u5B58\u5148\u306E\u4E0A\u9650 ${LIST_MEMO_MAX_BYTES.toLocaleString()} \u30D0\u30A4\u30C8\uFF09`,"\u65E5\u672C\u8A9E\u306F\u304A\u3088\u305D 21,000 \u6587\u5B57\u307E\u3067\u3067\u3059\u3002\u8A73\u7D30\u306F\u6DFB\u4ED8\u66F8\u985E\u304B\u793E\u5185\u30E1\u30E2\uFF08internal_memo\uFF09\u3078\u66F8\u3044\u3066\u304F\u3060\u3055\u3044\u3002")}
208
+ return withResolved(input,clear?{memoMode:"clear"}:{memoMode:"set",memo:body})}function memoOf(body){return dataOf(body,"\u4E00\u89A7\u306E\u30E1\u30E2\u306E\u4FDD\u5B58")}var memoOperation={name:"memo",summary:"\u4ED5\u5165\u306E\u4E00\u89A7\u306E\u30E1\u30E2\u6B04\u3092\u66F8\u304D\u63DB\u3048\u308B",usage:"twp purchase memo <\u4ED5\u5165ID> (--text <\u672C\u6587> | --text-file <\u30D1\u30B9> | --clear)",description:"PATCH /api/v2/sales/purchases/{id}/list-memo \u3067\u3001\u4ED5\u5165\u4E00\u89A7\u306E\u30E1\u30E2\u6B04\uFF08list_memo\uFF09\u3060\u3051\u3092\u4E38\u3054\u3068\u7F6E\u304D\u63DB\u3048\u307E\
209
+ \u3059\u3002\n\u4ED5\u5165\u672C\u4F53\u306E\u4FDD\u5B58\uFF08\u660E\u7D30\u30FB\u627F\u8A8D\uFF09\u306F\u4F34\u308F\u306A\u3044\u306E\u3067\u3001\u627F\u8A8D\u7533\u8ACB\u4E2D\u30FB\u6B63\u5F0F\u627F\u8A8D\u6E08\u306E\u4ED5\u5165\u306B\u3082\u66F8\u3051\u307E\u3059\u3002\n\u793E\u5185\u30E1\u30E2\uFF08internal_memo\uFF09\u3068\u306F\u5225\u306E\u6B04\u3067\u3059\uFF08\u305D\u3061\u3089\u306F twp purchase update \u3067\u66F8\u304D\u307E\u3059\uFF09\u3002",flags:MEMO_FLAGS,forbidden:SALES_FORBIDDEN2,
210
+ prepare:prepareMemo,plan:input=>({method:"PATCH",path:`${purchasePath(input,"memo")}/list-memo`,body:{list_memo:requireResolved(input,"memoMode")==="clear"?null:requireResolved(input,"memo")}}),summarize:body=>pick(memoOf(body),["id","purchase_no","list_memo","updated_at"]),raw:memoOf,notes:serverMessage2};var deleteOperation2={name:"delete",summary:"\u4ED5\u5165\u3092\u524A\u9664\u3059\u308B\uFF08\u6DFB\u4ED8\u66F8\u985E\u3082\u4E00\u7DD2\u306B\u6D88\u3048\u308B\u30FB\u8CA9\u58F2\u7BA1\u7406\u306E\u7BA1\u7406\u8005\u306E\u307F\u30FB--yes \u304C\u8981\u308B\uFF09",
211
+ usage:"twp purchase delete <\u4ED5\u5165ID> --yes",description:"DELETE /api/v2/sales/purchases/{id} \u3067\u4ED5\u5165\u3092\u524A\u9664\u3057\u307E\u3059\uFF08\u30B5\u30FC\u30D0\u306F\u8AD6\u7406\u524A\u9664\u3067\u3001\u4E00\u89A7\u30FB\u8A73\u7D30\u304B\u3089\u6D88\u3048\u307E\u3059\uFF09\u3002\n\u6DFB\u4ED8\u66F8\u985E\uFF08twp purchase document\uFF09\u3082\u4E00\u7DD2\u306B\u8AD6\u7406\u524A\u9664\u3055\u308C\u307E\u3059\u3002\u30B5\u30FC\u30D0\u304C\u65AD\u3063\u305F\u5834\u5408\u306F\u3001\u305D\u306E\u6587\u9762\u3092\u305D\u306E\u307E\u307E\u51FA\u3057\u307E\u3059\u3002\n\u9001\u308B\u524D\u306B\u5BFE\u8C61\u306E\u4ED5\u5165\u3068\u6DFB\u4ED8\u66F8\u985E\u306E\u6570\u3092\u8AAD\u307F\u3001stderr \u306B\u51FA\u3057\u307E\u3059\uFF08--dry-run \u3067\u3082\u51FA\u307E\u3059\uFF09\u3002\n\u8CA9\u58F2\u7BA1\u7406\u306E\u6A29\u9650\u304C\u300C\u7BA1\u7406\u8005\u300D\u3067\u3042\u308B\u3053\u3068\u304C\u8981\u308A\u307E\u3059\u3002",
212
+ destructive:true,flags:[],forbidden:purchaseAdminForbidden("\u4ED5\u5165\u306E\u524A\u9664"),async prepare(input,ctx){const purchase=await ctx.resolver.salesRecord("purchase",purchaseIdArg(input,"delete"),"<\u4ED5\u5165ID>");return withResolved(input,{purchase:JSON.stringify(purchase)})},plan:input=>({method:"DELETE",path:purchasePath(input,"delete")}),plannedNotes(input){const purchase=JSON.parse(requireResolved(input,"purchase"));const documents=typeof purchase["document_count"]==="number"?purchase["\
213
+ document_count"]:0;return[`\u524A\u9664\u3059\u308B\u4ED5\u5165: ${describePurchase(purchase)}`,...documents>0?[`\u6DFB\u4ED8\u66F8\u985E ${documents} \u4EF6\u3082\u4E00\u7DD2\u306B\u524A\u9664\u3055\u308C\u307E\u3059`]:[]]},summarize:body=>acknowledgement(body,"\u4ED5\u5165\u524A\u9664"),raw:body=>acknowledgement(body,"\u4ED5\u5165\u524A\u9664")};var purchaseDomain={name:"purchase",summary:"\u8CA9\u58F2\u7BA1\u7406\u306E\u4ED5\u5165\uFF08\u4E00\u89A7\u30FB\u8A73\u7D30\u30FB\u4F5C\u6210\u30FB\u66F4\u65B0\u30FB\u524A\u9664\u30FB\u8907\u88FD\u30FB\u4E00\u89A7\u306E\u30E1\u30E2\u30FB\u5E33\u7968 PDF\uFF08\u6CE8\u6587\u66F8\u30FB\u6CE8\u6587\u8ACB\u66F8\uFF09\u30FB\u6DFB\u4ED8\u66F8\u985E\u30FB\u898B\u7A4D\u66F8\u306E\u8AAD\u307F\u53D6\u308A\u30FB\u8AAD\u307F\u53D6\u308A\u306E\u30DE\u30C3\u30D4\u30F3\u30B0\u8868\u30FB\u756A\u53F7\u30EB\u30FC\u30EB\uFF09",
214
+ operations:[listOperation2,getOperation2,createOperation2,updateOperation2,deleteOperation2,duplicateOperation,memoOperation,purchasePdfOperation],subresources:[purchaseDocumentResource,purchaseAiMappingResource,purchaseNoRuleResource]};export{createSkeleton,lockedDropKeys,parsePurchaseContent,purchaseDomain,purchaseIdArg,updateSkeleton};
@@ -0,0 +1,4 @@
1
+ import { createRequire as __twpCreateRequire } from 'node:module';
2
+ const require = __twpCreateRequire(import.meta.url);
3
+ import{balanceRows,previousYearMonth,receivableDomain,yearMonthValue}from"./chunk-XN5TUZOT.js";import"./chunk-7ACENLLZ.js";import"./chunk-I6DWJXPC.js";import"./chunk-HGTG5XQ7.js";import"./chunk-BZ7ULFR3.js";import"./chunk-IOGVQVGD.js";import"./chunk-UDPJ2IGK.js";import"./chunk-BZAXQOLB.js";import"./chunk-IF2K4PM5.js";import"./chunk-GMBJTG6A.js";import"./chunk-J7QYPKVK.js";import"./chunk-4VZKNEVN.js";import"./chunk-QQRJLH6B.js";
4
+ import"./chunk-NHYMHCAT.js";import"./chunk-5R4SEO3I.js";import"./chunk-II5RVJQN.js";import"./chunk-ZN5EFDH7.js";import"./chunk-ZWVYVS2A.js";import"./chunk-7WSNIXTQ.js";import"./chunk-RZVI6PMW.js";import"./chunk-VSJBJXZO.js";export{balanceRows,previousYearMonth,receivableDomain,yearMonthValue};
@@ -1,3 +1,3 @@
1
1
  import { createRequire as __twpCreateRequire } from 'node:module';
2
2
  const require = __twpCreateRequire(import.meta.url);
3
- import{loadDomain}from"./chunk-TLN3JSEC.js";import"./chunk-VSJBJXZO.js";export{loadDomain};
3
+ import{loadDomain}from"./chunk-L6AHCTQZ.js";import"./chunk-VSJBJXZO.js";export{loadDomain};
@@ -1,3 +1,3 @@
1
1
  import { createRequire as __twpCreateRequire } from 'node:module';
2
2
  const require = __twpCreateRequire(import.meta.url);
3
- import{renderDocument,renderOutput}from"./chunk-FEOST3GF.js";import"./chunk-BUZKNZ45.js";import"./chunk-K2ONOH3L.js";import"./chunk-WVS4W5FY.js";import"./chunk-NHYMHCAT.js";import"./chunk-VSJBJXZO.js";export{renderDocument,renderOutput};
3
+ import{renderDocument,renderOutput}from"./chunk-VK5T7ULK.js";import"./chunk-UT4FACHN.js";import"./chunk-K2ONOH3L.js";import"./chunk-WVS4W5FY.js";import"./chunk-NHYMHCAT.js";import"./chunk-VSJBJXZO.js";export{renderDocument,renderOutput};
@@ -1,6 +1,6 @@
1
1
  import { createRequire as __twpCreateRequire } from 'node:module';
2
2
  const require = __twpCreateRequire(import.meta.url);
3
- import{charCount,readBody}from"./chunk-HGTG5XQ7.js";import{REPORTS_PATH}from"./chunk-ELXDRPDV.js";import"./chunk-IF2K4PM5.js";import{UUID_RE,isSafePathSegment}from"./chunk-GMBJTG6A.js";import"./chunk-J7QYPKVK.js";import"./chunk-4VZKNEVN.js";import"./chunk-NHYMHCAT.js";import{LIST_FLAGS,LIST_PAGING_HELP,envelopePaging,nonEmpty,positiveInteger}from"./chunk-5R4SEO3I.js";import"./chunk-II5RVJQN.js";import{requireResolved,singleRef,withResolved}from"./chunk-ZN5EFDH7.js";
3
+ import{charCount,readBody}from"./chunk-HGTG5XQ7.js";import{REPORTS_PATH}from"./chunk-BZAXQOLB.js";import"./chunk-IF2K4PM5.js";import{UUID_RE,isSafePathSegment}from"./chunk-GMBJTG6A.js";import"./chunk-J7QYPKVK.js";import"./chunk-4VZKNEVN.js";import"./chunk-NHYMHCAT.js";import{LIST_FLAGS,LIST_PAGING_HELP,envelopePaging,nonEmpty,positiveInteger}from"./chunk-5R4SEO3I.js";import"./chunk-II5RVJQN.js";import{requireResolved,singleRef,withResolved}from"./chunk-ZN5EFDH7.js";
4
4
  import{isRecord,pick}from"./chunk-ZWVYVS2A.js";import{ApiResponseError,UsageError}from"./chunk-7WSNIXTQ.js";import"./chunk-RZVI6PMW.js";import"./chunk-VSJBJXZO.js";var LABEL="\u30EC\u30DD\u30FC\u30C8";var STATUSES={new:"\u4E0B\u66F8\u304D",completed:"\u63D0\u51FA\u6E08\u307F",reviewed:"\u78BA\u8A8D\u6E08\u307F",rejected:"\u5DEE\u3057\u623B\u3057"};var STATUS_HELP=`\u72B6\u614B: ${Object.entries(STATUSES).map(([key,name])=>`${key}\uFF08${name}\uFF09`).join(" / ")}`;var TITLE_MAX_CHARS=200;var CONTENT_MAX_CHARS=1e6;var CONTENT_KEYS=["title","content"];var ULID_RE=/^[0-9A-HJKMNP-TV-Z]{26}$/i;var LIST_COLUMNS=["id","title","format_name","status","created_at","\
5
5
  updated_at","completed_at"];var GET_COLUMNS=["id","title","format_name","status","status_label","created_at","updated_at","completed_at","reviewed_at","reviewed_by_name","rejected_by_name"];var WRITE_COLUMNS=["id","title","format_id","status","status_label","created_at","updated_at","completed_at"];var FORMAT_COLUMNS=["id","code","name","is_available","title_editable","writer","reviewer","admin"];var FORMAT_FLAG={name:"--format",summary:"\u30EC\u30DD\u30FC\u30C8\u30D5\u30A9\u30FC\u30DE\u30C3\u30C8\u306E\u540D\u524D\u30FB\u30B3\u30FC\u30C9\uFF08RF-000001\uFF09\u30FBID",
6
6
  takesValue:true,placeholder:"<\u30D5\u30A9\u30FC\u30DE\u30C3\u30C8>"};var CONTENT_FILE_FLAG={name:"--content-file",summary:"\u30EC\u30DD\u30FC\u30C8\u306E\u5185\u5BB9\u306E JSON \u30D5\u30A1\u30A4\u30EB\uFF08title / content\u30FB- \u3067\u6A19\u6E96\u5165\u529B\uFF09",takesValue:true,placeholder:"<\u30D1\u30B9>"};var SKELETON_FLAG={name:"--generate-cli-skeleton",summary:"\u30D5\u30A9\u30FC\u30DE\u30C3\u30C8\u306E\u5165\u529B\u9805\u76EE\u304B\u3089 --content-file \u306E\u3072\u306A\u5F62\u3092\u51FA\u3057\u3066\u7D42\u4E86\u3059\u308B\uFF08\u30EC\u30DD\u30FC\u30C8\u306F\u4F5C\u3089\u306A\u3044\uFF09",
@@ -0,0 +1,4 @@
1
+ import { createRequire as __twpCreateRequire } from 'node:module';
2
+ const require = __twpCreateRequire(import.meta.url);
3
+ import{CURATED_PAGING_VOCABULARY,buildPrepareContext,exitCodeFor,fetchAllPages,outputValue,reportError,requiresYes,resolvePaging,runDomain}from"./chunk-WV3ZKUF4.js";import"./chunk-GDM2QUBL.js";import"./chunk-VK5T7ULK.js";import"./chunk-UT4FACHN.js";import"./chunk-L6AHCTQZ.js";import"./chunk-IOGVQVGD.js";import"./chunk-BZAXQOLB.js";import"./chunk-IF2K4PM5.js";import"./chunk-GMBJTG6A.js";import"./chunk-I4ARX6NM.js";import"./chunk-XNLIEUAW.js";
4
+ import"./chunk-J7QYPKVK.js";import"./chunk-4VZKNEVN.js";import"./chunk-EOSSFTNG.js";import"./chunk-QQRJLH6B.js";import"./chunk-K2ONOH3L.js";import"./chunk-WVS4W5FY.js";import"./chunk-NHYMHCAT.js";import"./chunk-5R4SEO3I.js";import"./chunk-II5RVJQN.js";import"./chunk-ZWVYVS2A.js";import"./chunk-7WSNIXTQ.js";import"./chunk-RZVI6PMW.js";import"./chunk-VSJBJXZO.js";export{CURATED_PAGING_VOCABULARY,buildPrepareContext,exitCodeFor,fetchAllPages,outputValue,reportError,requiresYes,resolvePaging,runDomain};
@@ -0,0 +1,71 @@
1
+ import { createRequire as __twpCreateRequire } from 'node:module';
2
+ const require = __twpCreateRequire(import.meta.url);
3
+ import{salesAdminForbidden}from"./chunk-7ACENLLZ.js";import{attachmentRows,inspectLocalFile,issued}from"./chunk-PKWMJIBM.js";import{checkUploadQuota}from"./chunk-DDKZ5IPT.js";import"./chunk-I6DWJXPC.js";import{readBody}from"./chunk-HGTG5XQ7.js";import{featureLicenseGuidance,licenseForbidden}from"./chunk-BZ7ULFR3.js";import{repeatedValues}from"./chunk-IOGVQVGD.js";import{boundedText,isoDate}from"./chunk-UDPJ2IGK.js";import{SALES_BUSINESS_PLACES_PATH,
4
+ SALES_PAYEES_PATH,SALES_SEAL_IMPRESSIONS_PATH,isExactNumericId}from"./chunk-BZAXQOLB.js";import{ApiError}from"./chunk-IF2K4PM5.js";import"./chunk-GMBJTG6A.js";import{NotLoggedInError,SessionExpiredError}from"./chunk-XNLIEUAW.js";import"./chunk-J7QYPKVK.js";import"./chunk-4VZKNEVN.js";import"./chunk-QQRJLH6B.js";import"./chunk-NHYMHCAT.js";import"./chunk-GY7KI5E5.js";import{LIST_PAGING_HELP,PAGE_NUMBER_LIST_FLAGS,nonEmpty,pageNumberPaging,pageNumberQuery,
5
+ pageRangeNotes}from"./chunk-5R4SEO3I.js";import"./chunk-II5RVJQN.js";import{requireResolved,withResolved}from"./chunk-ZN5EFDH7.js";import{acknowledgement,isRecord,pick}from"./chunk-ZWVYVS2A.js";import{ApiResponseError,UsageError}from"./chunk-7WSNIXTQ.js";import"./chunk-RZVI6PMW.js";import"./chunk-VSJBJXZO.js";import fs from"fs";import path from"path";var SORT_MAX=2147483647;var SALES_FORBIDDEN=licenseForbidden(featureLicenseGuidance("\u8CA9\u58F2\u7BA1\u7406"));function envelope(body,what){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 recordOf(body,what){const data=envelope(body,what)["data"];if(!isRecord(data)||typeof data["id"]!==
6
+ "string")throw new ApiResponseError(`${what}\u306E\u5FDC\u7B54\u306B data.id \u304C\u3042\u308A\u307E\u305B\u3093\u3002\u63A5\u7D9A\u5148\u3092\u78BA\u8A8D\u3057\u3066\u304F\u3060\u3055\u3044\u3002`);return data}function serverMessage(body){const message=isRecord(body)?body["message"]:void 0;return typeof message==="string"&&message!==""?[message]:[]}function text(value){return typeof value==="string"||typeof value==="number"?String(value):""}function maskDigitRuns(value){return value.replace(/[0-90-9]{4,}/g,
7
+ run=>{const chars=Array.from(run);return"*".repeat(chars.length-4)+chars.slice(-4).join("")})}var SORT_FIELD={kind:"sort",flag:"--sort",key:"sort",summary:"\u8868\u793A\u9806\uFF080 \u4EE5\u4E0A\u306E\u6574\u6570\u30FB\u5C0F\u3055\u3044\u307B\u3069\u4E0A\uFF09"};function fieldFlags(fields){return fields.map(field=>({name:field.flag,summary:field.summary,takesValue:true,placeholder:field.kind==="date"?"<YYYY-MM-DD>":field.kind==="sort"?"<\u6574\u6570>":`<${field.label}>`}))}function sortValue(flag,raw){
8
+ const trimmed=raw.trim();const value=/^\d+$/.test(trimmed)?Number(trimmed):Number.NaN;if(!Number.isSafeInteger(value)||value>SORT_MAX){throw new UsageError(`${flag} \u306F 0 \u4EE5\u4E0A ${SORT_MAX} \u4EE5\u4E0B\u306E\u6574\u6570\u3067\u6307\u5B9A\u3057\u3066\u304F\u3060\u3055\u3044: ${raw}`)}return value}function fieldBody(input,fields){const body={};for(const field of fields){const raw=input.flags.get(field.flag);if(raw===void 0)continue;if(field.kind==="text")body[field.key]=boundedText(input,
9
+ field.flag,{maxChars:field.maxChars,label:field.label});else if(field.kind==="date")body[field.key]=isoDate(input,field.flag);else body[field.key]=sortValue(field.flag,raw)}return body}function clearable(fields){return Object.fromEntries(fields.flatMap(field=>field.clear===void 0?[]:[[field.clear,field.key]]))}function clearFlag(fields){return{name:"--clear",summary:`\u9805\u76EE\u3092\u7A7A\u306B\u3059\u308B\uFF08${Object.keys(clearable(fields)).join(" / ")}\u30FB\u8907\u6570\u56DE\u6307\u5B9A\u3067\u304D\u308B\uFF09`,
10
+ takesValue:true,placeholder:"<\u9805\u76EE>",repeatable:true}}function applyClears(input,body,fields){const table=clearable(fields);for(const raw of repeatedValues(input,"--clear")){const name=raw.trim();const key=table[name];if(key===void 0)throw new UsageError(`--clear \u306B\u300C${raw}\u300D\u306F\u6307\u5B9A\u3067\u304D\u307E\u305B\u3093`,`\u7A7A\u306B\u3067\u304D\u308B\u9805\u76EE: ${Object.keys(table).join(" / ")}`);if(key in body)throw new UsageError(`${name} \u306B\u5024\u3068 --clear \u306E\u4E21\u65B9\u304C\u6307\u5B9A\u3055\u308C\u3066\u3044\u307E\u3059`,
11
+ "\u3069\u3061\u3089\u304B\u4E00\u65B9\u3060\u3051\u3092\u6307\u5B9A\u3057\u3066\u304F\u3060\u3055\u3044\u3002");body[key]=null}}function usageOf(spec,op){return`twp ${spec.name} ${op} help`}function idArg(spec,input,op){const[raw,...rest]=input.args;const id=raw?.trim()??"";if(id==="")throw new UsageError(`${spec.label}\u306E ID \u3092\u6307\u5B9A\u3057\u3066\u304F\u3060\u3055\u3044`,usageOf(spec,op));if(rest.length>0)throw new UsageError(`\u4F59\u5206\u306A\u5F15\u6570\u304C\u3042\u308A\u307E\u3059: ${rest.
12
+ join(" ")}`,usageOf(spec,op));if(!isExactNumericId(id))throw new UsageError(`${spec.label}\u306E ID \u306F\u5148\u982D\u306B 0 \u3092\u4ED8\u3051\u306A\u3044\u6570\u5B57\u3067\u6307\u5B9A\u3057\u3066\u304F\u3060\u3055\u3044: ${id}`,`ID \u306F twp ${spec.name} list \u306E id \u5217\u3067\u3059\u3002`);return id}function noArgs(spec,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(spec,
13
+ op))}function nameField(spec){return{kind:"text",flag:"--name",key:spec.nameKey,label:`${spec.label}\u540D`,maxChars:255,summary:`${spec.label}\u540D\uFF08255 \u6587\u5B57\u307E\u3067\u30FB\u4F5C\u6210\u3067\u306F\u5FC5\u9808\uFF09`}}function allFields(spec){return[nameField(spec),...spec.fields,SORT_FIELD]}function describe(spec,record){return`ID ${text(record["id"])}\u30FB${text(record[spec.nameKey])}`}function bodyOf(input){return JSON.parse(requireResolved(input,"body"))}function currentOf(input){
14
+ return JSON.parse(requireResolved(input,"current"))}function adminForbidden(spec){return salesAdminForbidden(`${spec.label}\u306E\u4F5C\u6210\u30FB\u66F4\u65B0\u30FB\u524A\u9664`)}var LIST_ORDER_HELP=" \u26A0 \u3053\u306E\u4E00\u89A7\u306F\u30DA\u30FC\u30B8\u756A\u53F7\u3067\u4F4D\u7F6E\u3092\u6307\u5B9A\u3057\u307E\u3059\uFF08--cursor \u306F\u30DA\u30FC\u30B8\u756A\u53F7\u3067\u3059\uFF09\u3002\n \u4E26\u3073\u306F\u8868\u793A\u9806\uFF08--sort \u306E\u5024\uFF09\u306E\u5C0F\u3055\u3044\u9806\u30FB\u540C\u3058\u306A\u3089 ID \u306E\u9806\u306B\u30B5\u30FC\u30D0\u304C\u56FA\u5B9A\u3057\u3066\u3044\u307E\u3059\u3002\u8FBF\u3063\u3066\u3044\u308B\u6700\u4E2D\u306B\u30C7\u30FC\u30BF\u304C\u5897\u6E1B\u3059\u308B\u3068\u3001\u53D6\u308A\u3053\u307C\u3057\u30FB\u91CD\u8907\u304C\u8D77\u3053\u308A\u5F97\u307E\u3059\u3002";
15
+ function listOperation(spec,extraHelp=""){const paging=pageNumberPaging({label:`${spec.label}\u4E00\u89A7`});const rows=body=>{envelope(body,`${spec.label}\u4E00\u89A7`);return paging.items(body).map(row=>{if(!isRecord(row))throw new ApiResponseError(`${spec.label}\u4E00\u89A7\u306E\u884C\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 spec.listRow===void 0?row:spec.listRow(row)})};return{name:"\
16
+ list",summary:`${spec.label}\u3092\u4E00\u89A7\u3059\u308B\uFF08\u8868\u793A\u9806\uFF09`,usage:`twp ${spec.name} list [--keyword <\u8A9E>] [--all] [--limit <\u4EF6\u6570>]`,description:`${spec.about}
17
+
18
+ --keyword \u306F${spec.label}\u540D\u306E\u90E8\u5206\u4E00\u81F4\u3067\u3059\u3002
19
+ `+extraHelp+`--output table / text / tsv \u306F\u8981\u7D04\u5217\uFF08${spec.listColumns.join(" / ")}\uFF09\u3067\u3059\u3002
20
+
21
+ `+LIST_PAGING_HELP+"\n"+LIST_ORDER_HELP,flags:[...PAGE_NUMBER_LIST_FLAGS,{name:"--keyword",summary:`${spec.label}\u540D\u306E\u90E8\u5206\u4E00\u81F4\u3067\u7D5E\u308A\u8FBC\u3080`,takesValue:true,placeholder:"<\u8A9E>"}],paging,forbidden:SALES_FORBIDDEN,...spec.sensitiveBody!==void 0?{sensitiveBody:spec.sensitiveBody}:{},prepare:async input=>{noArgs(spec,input,"list");pageNumberQuery(input);return input},plan:input=>{const{page_no,page_limit}=pageNumberQuery(input);return{method:"GET",path:spec.
22
+ path,query:{keyword:nonEmpty(input.flags,"--keyword"),page_limit,page_no}}},summarize:body=>rows(body).map(row=>pick(row,spec.listColumns)),raw:rows,notes:body=>{const sum=isRecord(body)?body["sum"]:void 0;return[...pageRangeNotes(body),...typeof sum==="number"?[`\u8A72\u5F53 ${sum} \u4EF6`]:[]]}}}function getOperation(spec,extraHelp=""){return{name:"get",summary:`${spec.label}1\u4EF6\u306E\u8A73\u7D30\u3092\u8868\u793A\u3059\u308B`,usage:`twp ${spec.name} get <${spec.label}ID>`,description:`ID \
23
+ \u306F twp ${spec.name} list \u306E id \u5217\u306E\u6570\u5B57\u3067\u3059\u3002
24
+ ${extraHelp}--output json \u306F API \u304C\u8FD4\u3059\u5168\u30D5\u30A3\u30FC\u30EB\u30C9\u3092\u51FA\u3057\u307E\u3059\u3002`,flags:[],forbidden:SALES_FORBIDDEN,...spec.sensitiveBody!==void 0?{sensitiveBody:spec.sensitiveBody}:{},plan:input=>({method:"GET",path:`${spec.path}/${idArg(spec,input,"get")}`}),summarize:body=>pick(recordOf(body,spec.label),spec.getColumns),raw:body=>recordOf(body,spec.label)}}function deleteOperation(spec){return{name:"delete",summary:`${spec.label}\u3092\u524A\u9664\u3059\u308B\uFF08\u8CA9\u58F2\u7BA1\u7406\u306E\u7BA1\u7406\u8005\u30FB-\
25
+ -yes \u304C\u8981\u308B\uFF09`,usage:`twp ${spec.name} delete <${spec.label}ID> --yes`,description:`DELETE ${spec.path.replace("/api","")}/{id}\uFF08\u8AD6\u7406\u524A\u9664\uFF09\u3002
26
+ \u898B\u7A4D\u30FB\u8ACB\u6C42\u3067\u3053\u306E${spec.label}\u304C\u9078\u3070\u308C\u3066\u3044\u3066\u3082\u3001\u30B5\u30FC\u30D0\u306F\u524A\u9664\u3092\u65AD\u308A\u307E\u305B\u3093\uFF08CLI \u3082\u4F7F\u7528\u4E2D\u304B\u3069\u3046\u304B\u3092\u78BA\u304B\u3081\u307E\u305B\u3093\uFF09\u3002
27
+ \u9001\u308B\u524D\u306B\u5BFE\u8C61\u3092 stderr \u306B\u51FA\u3057\u307E\u3059\uFF08--dry-run \u3067\u3082\u51FA\u307E\u3059\uFF09\u3002`,destructive:true,flags:[],forbidden:adminForbidden(spec),...spec.sensitiveBody!==void 0?{sensitiveBody:spec.sensitiveBody}:{},prepare:async(input,ctx)=>withResolved(input,{current:JSON.stringify(await ctx.resolver.salesRecord(spec.kind,idArg(spec,input,"delete"),`<${spec.label}ID>`))}),plan:input=>({method:"DELETE",path:`${spec.path}/${idArg(spec,input,"dele\
28
+ te")}`}),plannedNotes:input=>[`\u524A\u9664\u3059\u308B${spec.label}: ${describe(spec,currentOf(input))}`],summarize:body=>acknowledgement(body,`${spec.label}\u524A\u9664`),raw:body=>acknowledgement(body,`${spec.label}\u524A\u9664`)}}function textMasterClearFields(spec){const content=spec.content;const contentField=content===void 0?[]:[{kind:"text",flag:content.flag,key:content.key,label:content.label,maxChars:content.maxBytes,summary:"",clear:"content"}];return[...allFields(spec),...contentField]}
29
+ async function textMasterBody(spec,input,op){const body=fieldBody(input,allFields(spec));const content=spec.content;if(content!==void 0){const value=await readBody(input,{flag:content.flag,fileFlag:content.fileFlag,label:content.label,maxChars:content.maxBytes,usage:usageOf(spec,op)});if(value!==void 0){const bytes=Buffer.byteLength(value,"utf8");if(bytes>content.maxBytes)throw new UsageError(`${content.label}\u304C\u9577\u3059\u304E\u307E\u3059\uFF08${bytes} \u30D0\u30A4\u30C8\u30FB\u4E0A\u9650 ${content.
30
+ maxBytes} \u30D0\u30A4\u30C8\uFF09`);body[content.key]=value}}if(op==="update")applyClears(input,body,textMasterClearFields(spec));return body}function contentFlags(spec){const content=spec.content;if(content===void 0)return[];return[{name:content.flag,summary:content.summary,takesValue:true,placeholder:`<${content.label}>`},{name:content.fileFlag,summary:`${content.label}\u3092\u30D5\u30A1\u30A4\u30EB\u304B\u3089\u8AAD\u3080\uFF08- \u3067\u6A19\u6E96\u5165\u529B\u3002\u6539\u884C\u306F\u305D\u306E\u307E\u307E\u9001\u308A\u307E\u3059\uFF09`,
31
+ takesValue:true,placeholder:"<\u30D5\u30A1\u30A4\u30EB>"}]}function textMasterDomain(spec){const fields=allFields(spec);const writeFlags=[...fieldFlags(fields),...contentFlags(spec)];const sensitive=spec.sensitiveBody!==void 0?{sensitiveBody:spec.sensitiveBody}:{};const createOperation={name:"create",summary:`${spec.label}\u3092\u767B\u9332\u3059\u308B\uFF08\u8CA9\u58F2\u7BA1\u7406\u306E\u7BA1\u7406\u8005\uFF09`,usage:`twp ${spec.name} create --name <${spec.label}\u540D> [\u9805\u76EE\u2026]`,description:`\
32
+ POST ${spec.path.replace("/api","")}\u3002--name \u304C\u5FC5\u9808\u3067\u3059\u3002\u305D\u306E\u307B\u304B\u306E\u9805\u76EE\u306F\u7701\u304F\u3068\u7A7A\u3067\u767B\u9332\u3057\u307E\u3059\u3002
33
+
34
+ ${spec.about}`,flags:writeFlags,forbidden:adminForbidden(spec),...sensitive,prepare:async input=>{noArgs(spec,input,"create");if(!input.flags.has("--name"))throw new UsageError("--name \u3092\u6307\u5B9A\u3057\u3066\u304F\u3060\u3055\u3044",usageOf(spec,"create"));return withResolved(input,{body:JSON.stringify(await textMasterBody(spec,input,"create"))})},plan:input=>({method:"POST",path:spec.path,body:bodyOf(input)}),summarize:body=>pick(recordOf(body,spec.label),spec.getColumns),raw:body=>recordOf(
35
+ body,spec.label),notes:serverMessage};const clearFields=textMasterClearFields(spec);const updateOperation={name:"update",summary:`${spec.label}\u3092\u66F8\u304D\u63DB\u3048\u308B\uFF08\u6307\u5B9A\u3057\u305F\u9805\u76EE\u3060\u3051\u30FB\u8CA9\u58F2\u7BA1\u7406\u306E\u7BA1\u7406\u8005\uFF09`,usage:`twp ${spec.name} update <${spec.label}ID> [\u9805\u76EE\u2026] [--clear <\u9805\u76EE>]...`,description:`PUT ${spec.path.replace("/api","")}/{id}\u3002\u6307\u5B9A\u3057\u305F\u9805\u76EE\u3060\u3051\u3092\u9001\u308A\u307E\u3059\uFF08\u6307\u5B9A\u3057\u306A\u304B\u3063\u305F\u9805\u76EE\u306F\u5909\u308F\u308A\u307E\u305B\u3093\uFF09\u3002
36
+ \u7A7A\u306B\u3067\u304D\u308B\u9805\u76EE: ${Object.keys(clearable(clearFields)).join(" / ")}\uFF08--clear <\u9805\u76EE>\uFF09\u3002${spec.label}\u540D\u306F\u7A7A\u306B\u3067\u304D\u307E\u305B\u3093\u3002
37
+ \u9001\u308B\u524D\u306B\u4ECA\u306E\u5024\u3092\u8AAD\u307F\u3001\u5BFE\u8C61\u3092 stderr \u306B\u51FA\u3057\u307E\u3059\uFF08--dry-run \u3067\u3082\u51FA\u307E\u3059\uFF09\u3002`,flags:[...writeFlags,clearFlag(clearFields)],forbidden:adminForbidden(spec),...sensitive,prepare:async(input,ctx)=>{const id=idArg(spec,input,"update");const body=await textMasterBody(spec,input,"update");if(Object.keys(body).length===0)throw new UsageError("\u66F8\u304D\u63DB\u3048\u308B\u9805\u76EE\u304C\u3042\u308A\u307E\u305B\u3093",
38
+ usageOf(spec,"update"));const current=await ctx.resolver.salesRecord(spec.kind,id,`<${spec.label}ID>`);return withResolved(input,{body:JSON.stringify(body),current:JSON.stringify(current)})},plan:input=>({method:"PUT",path:`${spec.path}/${idArg(spec,input,"update")}`,body:bodyOf(input)}),plannedNotes:input=>[`\u66F8\u304D\u63DB\u3048\u308B${spec.label}: ${describe(spec,currentOf(input))}`],summarize:body=>pick(recordOf(body,spec.label),spec.getColumns),raw:body=>recordOf(body,spec.label),notes:serverMessage};
39
+ return{name:spec.name,summary:spec.summary,operations:[listOperation(spec),getOperation(spec),createOperation,updateOperation,deleteOperation(spec)]}}var PERIOD_FIELDS=[{kind:"date",flag:"--start-date",key:"start_date",summary:"\u958B\u59CB\u65E5\uFF08YYYY-MM-DD\uFF09",clear:"start-date"},{kind:"date",flag:"--end-date",key:"end_date",summary:"\u7D42\u4E86\u65E5\uFF08YYYY-MM-DD\u30FB\u958B\u59CB\u65E5\u4EE5\u964D\uFF09",clear:"end-date"}];var BUSINESS_PLACE_COLUMNS=["id","business_place_name","po\
40
+ st_code","address1","tel","invoice_no","sort"];var businessPlaceDomain=textMasterDomain({name:"business-place",label:"\u4E8B\u696D\u6240",path:SALES_BUSINESS_PLACES_PATH,kind:"business-place",nameKey:"business_place_name",summary:"\u8CA9\u58F2\u7BA1\u7406\u306E\u4E8B\u696D\u6240\uFF08\u898B\u7A4D\u30FB\u8ACB\u6C42\u306B\u8F09\u308B\u81EA\u793E\u306E\u4F4F\u6240\u30FB\u96FB\u8A71\u30FB\u30A4\u30F3\u30DC\u30A4\u30B9\u756A\u53F7\u3002\u4E00\u89A7\u30FB\u8A73\u7D30\u30FB\u767B\u9332\u30FB\u66F4\u65B0\u30FB\u524A\u9664\uFF09",
41
+ about:"\u4E8B\u696D\u6240\u306F\u3001\u898B\u7A4D\u66F8\u30FB\u8ACB\u6C42\u66F8\u306B\u8F09\u308B\u81EA\u793E\u306E\u540D\u524D\u30FB\u4F4F\u6240\u30FB\u96FB\u8A71\u30FB\u30A4\u30F3\u30DC\u30A4\u30B9\u767B\u9332\u756A\u53F7\u3067\u3059\u3002",listColumns:BUSINESS_PLACE_COLUMNS,getColumns:["id","business_place_name","start_date","end_date","post_code","pref_code","address1","address2","address3","tel","fax","invoice_no","sort"],fields:[...PERIOD_FIELDS,{kind:"text",flag:"--post-code",key:"post_co\
42
+ de",label:"\u90F5\u4FBF\u756A\u53F7",maxChars:10,summary:"\u90F5\u4FBF\u756A\u53F7\uFF0810 \u6587\u5B57\u307E\u3067\uFF09",clear:"post-code"},{kind:"text",flag:"--pref-code",key:"pref_code",label:"\u90FD\u9053\u5E9C\u770C\u30B3\u30FC\u30C9",maxChars:10,summary:"\u90FD\u9053\u5E9C\u770C\u30B3\u30FC\u30C9\uFF08JIS \u306E 01\u301C47\uFF09",clear:"pref-code"},{kind:"text",flag:"--address1",key:"address1",label:"\u4F4F\u62401",maxChars:255,summary:"\u4F4F\u62401\uFF08\u5E02\u533A\u753A\u6751\u306A\u3069\uFF09",
43
+ clear:"address1"},{kind:"text",flag:"--address2",key:"address2",label:"\u4F4F\u62402",maxChars:255,summary:"\u4F4F\u62402\uFF08\u756A\u5730\u306A\u3069\uFF09",clear:"address2"},{kind:"text",flag:"--address3",key:"address3",label:"\u4F4F\u62403",maxChars:255,summary:"\u4F4F\u62403\uFF08\u5EFA\u7269\u540D\u306A\u3069\uFF09",clear:"address3"},{kind:"text",flag:"--tel",key:"tel",label:"\u96FB\u8A71\u756A\u53F7",maxChars:20,summary:"\u96FB\u8A71\u756A\u53F7\uFF0820 \u6587\u5B57\u307E\u3067\uFF09",clear:"\
44
+ tel"},{kind:"text",flag:"--fax",key:"fax",label:"FAX \u756A\u53F7",maxChars:20,summary:"FAX \u756A\u53F7\uFF0820 \u6587\u5B57\u307E\u3067\uFF09",clear:"fax"},{kind:"text",flag:"--invoice-no",key:"invoice_no",label:"\u30A4\u30F3\u30DC\u30A4\u30B9\u767B\u9332\u756A\u53F7",maxChars:50,summary:"\u30A4\u30F3\u30DC\u30A4\u30B9\u767B\u9332\u756A\u53F7\uFF08T\uFF0B13\u6841\u306A\u3069\u30FB50 \u6587\u5B57\u307E\u3067\uFF09",clear:"invoice-no"}]});var PAYEE_CONTENT_MAX_BYTES=65535;var payeeDomain=textMasterDomain(
45
+ {name:"payee",label:"\u632F\u8FBC\u5148",path:SALES_PAYEES_PATH,kind:"payee",nameKey:"payee_name",summary:"\u8CA9\u58F2\u7BA1\u7406\u306E\u632F\u8FBC\u5148\uFF08\u8ACB\u6C42\u66F8\u306B\u8F09\u308B\u81EA\u793E\u306E\u53D7\u53D6\u53E3\u5EA7\u3002\u4E00\u89A7\u30FB\u8A73\u7D30\u30FB\u767B\u9332\u30FB\u66F4\u65B0\u30FB\u524A\u9664\u3002\u4E00\u89A7\u306F\u53E3\u5EA7\u756A\u53F7\u3092\u4F0F\u5B57\u306B\u3059\u308B\uFF09",about:"\u632F\u8FBC\u5148\u306F\u3001\u8ACB\u6C42\u66F8\u306E\u300C\u632F\u8FBC\u5148\u8868\u793A\u300D\u6B04\u306B\u305D\u306E\u307E\u307E\u8F09\u308B\u6587\u9762\u3067\u3059\uFF08\u9280\u884C\u540D\u30FB\u652F\u5E97\u30FB\u7A2E\u5225\u30FB\u53E3\u5EA7\u756A\u53F7\u30FB\u540D\u7FA9\u3092\u81EA\u7531\u306B\u66F8\u304D\u307E\u3059\uFF09\u3002\nlist \u306F4\u6841\u4EE5\u4E0A\u306E\u6570\u5B57\u306E\u9023\
46
+ \u306A\u308A\u3092\u672B\u5C3E4\u6841\u4EE5\u5916 * \u306B\u3057\u3066\u51FA\u3057\u307E\u3059\uFF08--output json \u3082\u540C\u3058\uFF09\u3002\u5168\u6587\u306F get \u3067\u898B\u3089\u308C\u307E\u3059\u3002\n--debug \u306F\u9001\u4FE1\u30FB\u5FDC\u7B54\u306E\u672C\u6587\u3092\u51FA\u3057\u307E\u305B\u3093\uFF08\u53E3\u5EA7\u60C5\u5831\u304C\u30C8\u30E9\u30F3\u30B9\u30AF\u30EA\u30D7\u30C8\u306B\u6B8B\u3089\u306A\u3044\u3088\u3046\u306B\uFF09\u3002",listColumns:["id","payee_name","content","sta\
47
+ rt_date","end_date","sort"],getColumns:["id","payee_name","content","start_date","end_date","sort"],fields:PERIOD_FIELDS,content:{key:"content",label:"\u632F\u8FBC\u5148\u8868\u793A",flag:"--content",fileFlag:"--content-file",maxBytes:PAYEE_CONTENT_MAX_BYTES,summary:"\u632F\u8FBC\u5148\u8868\u793A\uFF08\u8ACB\u6C42\u66F8\u306B\u8F09\u308B\u53E3\u5EA7\u60C5\u5831\u306E\u6587\u9762\u3002\u30B3\u30DE\u30F3\u30C9\u884C\u306F\u30B7\u30A7\u30EB\u5C65\u6B74\u306B\u6B8B\u308B\u306E\u3067 --content-file \u3092\u52E7\u3081\u307E\u3059\uFF09"},
48
+ listRow:row=>typeof row["content"]==="string"?{...row,content:maskDigitRuns(row["content"])}:row,sensitiveBody:"\u53E3\u5EA7\u60C5\u5831\u3092\u542B\u307F\u3046\u308B"});var SEAL_SOURCE="seal_impression";var SEAL_TYPES={".png":"image/png",".jpg":"image/jpeg",".jpeg":"image/jpeg",".gif":"image/gif"};var SEAL_MAX_BYTES=5*1024*1024;var SEAL_SPEC={name:"seal-impression",label:"\u5370\u5F71",path:SALES_SEAL_IMPRESSIONS_PATH,kind:"seal-impression",nameKey:"seal_impression_name",summary:"\u8CA9\u58F2\u7BA1\u7406\u306E\u5370\u5F71\uFF08\u898B\u7A4D\u30FB\u8ACB\u6C42\u306B\
49
+ \u62BC\u3059\u5370\u306E\u753B\u50CF\u3002\u4E00\u89A7\u30FB\u8A73\u7D30\u30FB\u753B\u50CF\u306E\u767B\u9332\u30FB\u66F4\u65B0\u30FB\u524A\u9664\uFF09",about:"\u5370\u5F71\u306F\u3001\u898B\u7A4D\u66F8\u30FB\u8ACB\u6C42\u66F8\u306B\u62BC\u3059\u5370\u306E\u753B\u50CF\u3067\u3059\u3002",listColumns:["id","seal_impression_name","file1","sort"],getColumns:["id","seal_impression_name","file1","file1_url","sort"],fields:[]};var SEAL_FILE_FLAG={name:"--file",summary:"\u5370\u5F71\u306E\u753B\u50CF\uFF08PNG / JPEG / GIF\u30FB5MB \u307E\u3067\u3002\u4F5C\u6210\u3067\u306F\
50
+ \u5FC5\u9808\uFF09",takesValue:true,placeholder:"<\u30D1\u30B9>"};function sealImage(input,op){if(!input.flags.has(SEAL_FILE_FLAG.name))return void 0;const{file,size}=inspectLocalFile(input.flags.get(SEAL_FILE_FLAG.name),SEAL_FILE_FLAG.name,usageOf(SEAL_SPEC,op));const name=path.basename(file);const contentType=SEAL_TYPES[path.extname(name).toLowerCase()];if(contentType===void 0){throw new UsageError(`\u5370\u5F71\u306E\u753B\u50CF\u306F PNG / JPEG / GIF \u3067\u3059\uFF08\u62E1\u5F35\u5B50 .png / .jpg / .jpeg / .gif\uFF09: ${name}`,
51
+ "\u753B\u9762\u3068\u540C\u3058\u5F62\u5F0F\u3060\u3051\u3092\u53D7\u3051\u307E\u3059\uFF08\u5E33\u7968\u306B\u753B\u50CF\u3068\u3057\u3066\u57CB\u3081\u8FBC\u3080\u305F\u3081\uFF09\u3002")}if(size>SEAL_MAX_BYTES)throw new UsageError(`\u5370\u5F71\u306E\u753B\u50CF\u306F 5MB \u307E\u3067\u3067\u3059\uFF08${size} \u30D0\u30A4\u30C8\uFF09: ${name}`);return{file,name,size,contentType}}function sealUploadPlan(image){return{method:"POST",path:"/api/v2/attachments/upload-url",body:{file_name:image.name,
52
+ content_type:image.contentType,file_size:image.size,source:SEAL_SOURCE}}}function sealFields(){return[nameField(SEAL_SPEC),SORT_FIELD]}async function isCommitted(ctx,attachmentId){const rows=attachmentRows(await ctx.send({method:"GET",path:"/api/v2/attachments",query:{ids:attachmentId}}));const row=rows.find(item=>isRecord(item)&&item["id"]===attachmentId);return isRecord(row)&&row["is_committed"]===true}async function writeSeal(input,ctx,op){const image=sealImage(input,op);const body=bodyOf(input);
53
+ const target=op==="create"?SALES_SEAL_IMPRESSIONS_PATH:`${SALES_SEAL_IMPRESSIONS_PATH}/${idArg(SEAL_SPEC,input,op)}`;const method=op==="create"?"POST":"PUT";if(image===void 0)return ctx.send({method,path:target,body});await checkUploadQuota(ctx,image.size);let issuedId;let registerSent=false;let registeredId;let uncommitted=false;try{const{id,uploadUrl}=issued(await ctx.send(sealUploadPlan(image)));issuedId=id;const bytes=new Uint8Array(fs.readFileSync(image.file));if(bytes.byteLength!==image.size)
54
+ throw new UsageError(`\u30A2\u30C3\u30D7\u30ED\u30FC\u30C9\u4E2D\u306B\u30D5\u30A1\u30A4\u30EB\u306E\u5927\u304D\u3055\u304C\u5909\u308F\u308A\u307E\u3057\u305F\uFF08${image.size} \u2192 ${bytes.byteLength} \u30D0\u30A4\u30C8\uFF09: ${image.file}`);await ctx.putSigned(uploadUrl,bytes,image.contentType);registerSent=true;const response=await ctx.send({method,path:target,body:{...body,file1:id}});const seal=recordOf(response,"\u5370\u5F71");registeredId=text(seal["id"]);if(seal["file1"]!==id)throw new ApiResponseError(
55
+ `\u5370\u5F71\u306E\u5FDC\u7B54\u306E file1 \u304C\u4ECA\u56DE\u306E\u753B\u50CF\uFF08${id}\uFF09\u3067\u306F\u3042\u308A\u307E\u305B\u3093\u3002\u63A5\u7D9A\u5148\u3092\u78BA\u8A8D\u3057\u3066\u304F\u3060\u3055\u3044\u3002`);if(!await isCommitted(ctx,id)){uncommitted=true;throw new ApiResponseError(`\u5370\u5F71\uFF08ID ${registeredId}\uFF09\u306F${op==="create"?"\u767B\u9332":"\u66F4\u65B0"}\u3055\u308C\u307E\u3057\u305F\u304C\u3001\u753B\u50CF\uFF08\u6DFB\u4ED8 ${id}\uFF09\u304C\u78BA\u5B9A\u3057\u3066\u3044\u307E\u305B\u3093\u3002\u672A\u78BA\u5B9A\u306E\u753B\u50CF\u306F\u4E00\u5B9A\u6642\u9593\u5F8C\u306B\u5931\u52B9\
56
+ \u3057\u3001\u5E33\u7968\u306B\u5370\u5F71\u304C\u51FA\u306A\u304F\u306A\u308A\u307E\u3059\u3002twp seal-impression update ${registeredId} --file <\u753B\u50CF> \u3067\u4E0A\u3052\u76F4\u3057\u3066\u304F\u3060\u3055\u3044\u3002`)}return response}catch(err){const verb=op==="create"?"\u767B\u9332":"\u66F4\u65B0";const refused=err instanceof ApiError&&err.status>=400&&err.status<500||err instanceof NotLoggedInError||err instanceof SessionExpiredError;if(registeredId!==void 0){if(!uncommitted){ctx.warn(
57
+ `\u5370\u5F71\uFF08ID ${registeredId}\uFF09\u306E${verb}\u306F\u6E08\u3093\u3067\u3044\u307E\u3059\u304C\u3001\u753B\u50CF\uFF08\u6DFB\u4ED8 ${issuedId??""}\uFF09\u304C\u78BA\u5B9A\u3057\u305F\u304B\u3092\u78BA\u304B\u3081\u3089\u308C\u307E\u305B\u3093\u3067\u3057\u305F\u3002\u6253\u3061\u76F4\u3055\u305A\u306B twp seal-impression get ${registeredId} \u3067\u78BA\u304B\u3081\u3066\u304F\u3060\u3055\u3044\u3002
58
+ `)}}else if(issuedId!==void 0&&(!registerSent||refused)){ctx.warn(`\u767A\u884C\u3057\u305F\u753B\u50CF\u306E\u6DFB\u4ED8\uFF08${issuedId}\uFF09\u306F\u5370\u5F71\u306B${op==="create"?"\u767B\u9332":"\u53CD\u6620"}\u3055\u308C\u3066\u3044\u306A\u3044\u305F\u3081\u672A\u78BA\u5B9A\u306E\u307E\u307E\u3067\u3059\u3002\u672A\u78BA\u5B9A\u306E\u6DFB\u4ED8\u306F\u4E00\u5B9A\u6642\u9593\u5F8C\u306B\u8A18\u9332\u304C\u5931\u52B9\u3057\u307E\u3059\u3002\u539F\u56E0\u3092\u53D6\u308A\u9664\u3044\u3066\u3082\u3046\u4E00\u5EA6 twp seal-impression ${op}\
59
+ \u3092\u5B9F\u884C\u3057\u3066\u304F\u3060\u3055\u3044\u3002
60
+ `)}else if(registerSent){ctx.warn(`\u5370\u5F71\u306E${verb}\u306F\u9001\u4FE1\u3057\u307E\u3057\u305F\u304C\u3001\u5FDC\u7B54\u3092\u78BA\u304B\u3081\u3089\u308C\u307E\u305B\u3093\u3067\u3057\u305F\u3002\u6253\u3061\u76F4\u3059\u524D\u306B twp seal-impression list \u3067\u7D50\u679C\u3092\u78BA\u304B\u3081\u3066\u304F\u3060\u3055\u3044\u3002
61
+ `)}throw err}}function sealBody(input){return fieldBody(input,sealFields())}function sealPlannedNotes(input,op){const image=sealImage(input,op);const head=op==="update"?[`\u66F8\u304D\u63DB\u3048\u308B\u5370\u5F71: ${describe(SEAL_SPEC,currentOf(input))}`]:[];if(image===void 0)return head;const target=op==="create"?`POST ${SALES_SEAL_IMPRESSIONS_PATH}`:`PUT ${SALES_SEAL_IMPRESSIONS_PATH}/${idArg(SEAL_SPEC,input,op)}`;return[...head,`\u5B9F\u884C\u6642\u306F\u3001\u3053\u306E\u524D\u306B\u5BB9\u91CF\u691C\u67FB\uFF08POST /api/v2/storage/check-upload\u30FB${image.
62
+ size} \u30D0\u30A4\u30C8\uFF09\u3092\u9001\u308A\u3001\u753B\u50CF\u3092\u7F72\u540DURL\u3078 PUT \u3057\u3066\u304B\u3089\u3001${target} \u3067 file1 \u306B\u4ECA\u56DE\u306E\u753B\u50CF\u3092\u6307\u5B9A\u3057\u3001\u6700\u5F8C\u306B GET /api/v2/attachments \u3067\u753B\u50CF\u304C\u78BA\u5B9A\u3057\u305F\u3053\u3068\u3092\u78BA\u304B\u3081\u307E\u3059\u3002`]}var SEAL_FLOW_HELP="\u753B\u50CF\u306F\u6B21\u306E\u9806\u3067\u9001\u308A\u307E\u3059\uFF08\u753B\u9762\u3068\u540C\u3058\u6C4E\u7528\u306E\u6DFB\u4ED8\u30FBsource=seal_impression\uFF09:\n 0. POST /api/v2/storage/check-upload\uFF08\u5BB9\u91CF\u306E\u691C\u67FB\uFF09\n 1. POST /api/v2/att\
63
+ achments/upload-url \u2192 \u7F72\u540DURL\u3078 PUT\n 2. \u5370\u5F71\u306E\u767B\u9332\u30FB\u66F4\u65B0\uFF08file1 \u306B 1 \u306E\u6DFB\u4ED8 ID\u3002\u3053\u3053\u3067\u30B5\u30FC\u30D0\u304C\u753B\u50CF\u3092\u78BA\u5B9A\u3057\u307E\u3059\uFF09\n 3. GET /api/v2/attachments \u3067\u753B\u50CF\u304C\u78BA\u5B9A\u3057\u305F\u3053\u3068\u3092\u78BA\u304B\u3081\u308B\uFF08\u30B5\u30FC\u30D0\u306F\u78BA\u5B9A\u306B\u5931\u6557\u3057\u3066\u3082\u767B\u9332\u3092\u6210\u529F\u3068\u3057\u3066\u8FD4\u3059\u305F\u3081\uFF09\n\u53D7\u3051\u308B\u753B\u50CF\u306F\u753B\u9762\u3068\u540C\u3058 PNG / JPEG / GIF\u30FB5MB \u307E\u3067\u3067\u3059\u3002\n--dry-run \u306F 1 \u306E\u6700\u521D\u306E\u30EA\u30AF\u30A8\u30B9\u30C8\u3060\u3051\u3092\u8868\u793A\u3057\u307E\u3059\uFF08\u4EE5\u964D\u306F\u5FDC\u7B54\u306B\u4F9D\u5B58\u3059\u308B\u305F\u3081\uFF09\u3002";
64
+ var sealCreateOperation={name:"create",summary:"\u5370\u5F71\u3092\u767B\u9332\u3059\u308B\uFF08\u753B\u50CF\u3064\u304D\u30FB\u8CA9\u58F2\u7BA1\u7406\u306E\u7BA1\u7406\u8005\uFF09",usage:"twp seal-impression create --name <\u5370\u5F71\u540D> --file <\u753B\u50CF> [--sort <\u6574\u6570>]",description:`--name \u3068 --file \u304C\u5FC5\u9808\u3067\u3059\u3002
65
+
66
+ ${SEAL_FLOW_HELP}`,flags:[...fieldFlags(sealFields()),SEAL_FILE_FLAG],forbidden:adminForbidden(SEAL_SPEC),prepare:async input=>{noArgs(SEAL_SPEC,input,"create");const missing=["--name","--file"].filter(flag=>!input.flags.has(flag));if(missing.length>0)throw new UsageError(`\u5370\u5F71\u306E\u767B\u9332\u306B\u306F ${missing.join(" / ")} \u304C\u8981\u308A\u307E\u3059`,usageOf(SEAL_SPEC,"create"));sealImage(input,"create");return withResolved(input,{body:JSON.stringify(sealBody(input))})},plan:input=>sealUploadPlan(
67
+ sealImage(input,"create")),plannedNotes:input=>sealPlannedNotes(input,"create"),execute:(input,ctx)=>writeSeal(input,ctx,"create"),summarize:body=>pick(recordOf(body,"\u5370\u5F71"),SEAL_SPEC.getColumns),raw:body=>recordOf(body,"\u5370\u5F71"),notes:serverMessage};var sealUpdateOperation={name:"update",summary:"\u5370\u5F71\u3092\u66F8\u304D\u63DB\u3048\u308B\uFF08\u540D\u524D\u30FB\u8868\u793A\u9806\u30FB\u753B\u50CF\u306E\u5DEE\u3057\u66FF\u3048\u30FB\u8CA9\u58F2\u7BA1\u7406\u306E\u7BA1\u7406\u8005\uFF09",
68
+ usage:"twp seal-impression update <\u5370\u5F71ID> [--name <\u5370\u5F71\u540D>] [--file <\u753B\u50CF>] [--sort <\u6574\u6570>]",description:"\u6307\u5B9A\u3057\u305F\u9805\u76EE\u3060\u3051\u3092\u9001\u308A\u307E\u3059\u3002--file \u3092\u4ED8\u3051\u308B\u3068\u753B\u50CF\u3092\u5DEE\u3057\u66FF\u3048\u307E\u3059\uFF08\u524D\u306E\u753B\u50CF\u306F\u30B5\u30FC\u30D0\u306B\u6B8B\u308A\u307E\u3059\uFF09\u3002\n\u9001\u308B\u524D\u306B\u4ECA\u306E\u5024\u3092\u8AAD\u307F\u3001\u5BFE\u8C61\u3092 stderr \u306B\u51FA\u3057\u307E\u3059\uFF08--dry-run \u3067\u3082\u51FA\u307E\u3059\uFF09\u3002\n\n"+
69
+ SEAL_FLOW_HELP,flags:[...fieldFlags(sealFields()),SEAL_FILE_FLAG],forbidden:adminForbidden(SEAL_SPEC),prepare:async(input,ctx)=>{const id=idArg(SEAL_SPEC,input,"update");const body=sealBody(input);const image=sealImage(input,"update");if(Object.keys(body).length===0&&image===void 0)throw new UsageError("\u66F8\u304D\u63DB\u3048\u308B\u9805\u76EE\u304C\u3042\u308A\u307E\u305B\u3093",usageOf(SEAL_SPEC,"update"));const current=await ctx.resolver.salesRecord("seal-impression",id,"<\u5370\u5F71ID>");
70
+ return withResolved(input,{body:JSON.stringify(body),current:JSON.stringify(current)})},plan:input=>{const image=sealImage(input,"update");return image===void 0?{method:"PUT",path:`${SALES_SEAL_IMPRESSIONS_PATH}/${idArg(SEAL_SPEC,input,"update")}`,body:bodyOf(input)}:sealUploadPlan(image)},plannedNotes:input=>sealPlannedNotes(input,"update"),execute:(input,ctx)=>writeSeal(input,ctx,"update"),summarize:body=>pick(recordOf(body,"\u5370\u5F71"),SEAL_SPEC.getColumns),raw:body=>recordOf(body,"\u5370\u5F71"),
71
+ notes:serverMessage};var sealImpressionDomain={name:SEAL_SPEC.name,summary:SEAL_SPEC.summary,operations:[listOperation(SEAL_SPEC),getOperation(SEAL_SPEC,"file1_url \u306F\u753B\u50CF\u306E\u8868\u793A\u5148\uFF08TWP \u306B\u30ED\u30B0\u30A4\u30F3\u3057\u305F\u72B6\u614B\u3067\u958B\u3051\u307E\u3059\uFF09\u3067\u3059\u3002\n"),sealCreateOperation,sealUpdateOperation,deleteOperation(SEAL_SPEC)]};export{businessPlaceDomain,maskDigitRuns,payeeDomain,sealImpressionDomain};
@@ -0,0 +1,4 @@
1
+ import { createRequire as __twpCreateRequire } from 'node:module';
2
+ const require = __twpCreateRequire(import.meta.url);
3
+ import{estimateNoRuleResource,invoiceNoRuleResource,nextNumber,purchaseNoRuleResource,roundingSettingDomain}from"./chunk-FKS2Z34P.js";import"./chunk-7ACENLLZ.js";import"./chunk-I6DWJXPC.js";import"./chunk-HGTG5XQ7.js";import"./chunk-BZ7ULFR3.js";import"./chunk-IOGVQVGD.js";import"./chunk-UDPJ2IGK.js";import"./chunk-BZAXQOLB.js";import"./chunk-IF2K4PM5.js";import"./chunk-GMBJTG6A.js";import"./chunk-J7QYPKVK.js";import"./chunk-4VZKNEVN.js";
4
+ import"./chunk-QQRJLH6B.js";import"./chunk-NHYMHCAT.js";import"./chunk-5R4SEO3I.js";import"./chunk-II5RVJQN.js";import"./chunk-ZN5EFDH7.js";import"./chunk-ZWVYVS2A.js";import"./chunk-7WSNIXTQ.js";import"./chunk-RZVI6PMW.js";import"./chunk-VSJBJXZO.js";export{estimateNoRuleResource,invoiceNoRuleResource,nextNumber,purchaseNoRuleResource,roundingSettingDomain};