@tocca-systems/twp-cli 0.112.0 → 0.114.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 (85) hide show
  1. package/CHANGELOG.public.md +16 -0
  2. package/README.md +45 -3
  3. package/dist/{agent-AYLGY3BB.js → agent-2BNIUX2U.js} +1 -1
  4. package/dist/{analysis-2537EFLH.js → analysis-IZJ7OGBS.js} +2 -2
  5. package/dist/{announcement-MIJPGHPT.js → announcement-6FE7ZS4Z.js} +1 -1
  6. package/dist/{api-command-5N3RMVHG.js → api-command-XRXZLIDF.js} +2 -2
  7. package/dist/{api-key-43ZSXW62.js → api-key-TRRJUKYE.js} +1 -1
  8. package/dist/{app-VVGTHBTP.js → app-IGRQAPNH.js} +2 -2
  9. package/dist/{attendance-correct-65ABGMLE.js → attendance-correct-2KTCXVJX.js} +1 -1
  10. package/dist/{attendance-lists-PAEWTI3V.js → attendance-lists-OIF5KYDQ.js} +1 -1
  11. package/dist/{backlog-2RACUD5K.js → backlog-MVI3DG5T.js} +1 -1
  12. package/dist/{budget-WZXVQWDV.js → budget-NA2SD5YD.js} +2 -2
  13. package/dist/{chunk-AJ3VYAJA.js → chunk-3MDBLYZF.js} +1 -1
  14. package/dist/{chunk-OB7UZWA3.js → chunk-4JF6M5X7.js} +1 -1
  15. package/dist/{chunk-K3GASXG6.js → chunk-56LHHEE2.js} +1 -1
  16. package/dist/{chunk-ODW2QKMP.js → chunk-6H5TPSXU.js} +1 -1
  17. package/dist/{chunk-MSQ4ZGMA.js → chunk-A7MM5WSC.js} +33 -30
  18. package/dist/{chunk-OFVBVG3B.js → chunk-B6VOXDMC.js} +1 -1
  19. package/dist/{chunk-WPYILRQL.js → chunk-CBQ6Y74J.js} +1 -1
  20. package/dist/{chunk-PMQDBTQH.js → chunk-DK77GMSP.js} +1 -1
  21. package/dist/{chunk-LOJ2CV36.js → chunk-G5YZ6JDI.js} +1 -1
  22. package/dist/{chunk-Y4YHARQA.js → chunk-HGM6DDYN.js} +1 -1
  23. package/dist/{chunk-NYQZVYU2.js → chunk-IKCXJBSF.js} +1 -1
  24. package/dist/{chunk-5ZTQEXXS.js → chunk-IOVZDBAD.js} +1 -1
  25. package/dist/{chunk-45JULJ2S.js → chunk-K2OFZL2O.js} +1 -1
  26. package/dist/{chunk-HO3PWICX.js → chunk-KPLC3UP7.js} +1 -1
  27. package/dist/{chunk-QXHS43NL.js → chunk-L4THNX4M.js} +1 -1
  28. package/dist/{chunk-O6AXI6DC.js → chunk-SEFV7AQB.js} +2 -2
  29. package/dist/{chunk-RIMZ26XK.js → chunk-VNQHZHV7.js} +5 -5
  30. package/dist/{chunk-XPZUORRN.js → chunk-VSVJQNIB.js} +1 -1
  31. package/dist/{chunk-656KBH24.js → chunk-VUHJJVA5.js} +1 -1
  32. package/dist/chunk-X7IBNJCH.js +13 -0
  33. package/dist/{chunk-BBIUAMTH.js → chunk-YAKWBS4M.js} +1 -1
  34. package/dist/{chunk-N3TO2KIZ.js → chunk-YPEEZXOX.js} +1 -1
  35. package/dist/cli.js +44 -6
  36. package/dist/{company-YI4OVANT.js → company-GYE4NSYY.js} +2 -2
  37. package/dist/content-FGCZHTIY.js +287 -0
  38. package/dist/{contract-RXVHSZJG.js → contract-J7IPD2IT.js} +1 -1
  39. package/dist/{corporate-AQ2LPSBG.js → corporate-2QRAGFZ4.js} +1 -1
  40. package/dist/{department-65REBZMP.js → department-PJOH2MXZ.js} +1 -1
  41. package/dist/{deposit-RLIULDRQ.js → deposit-BBDYJVOG.js} +1 -1
  42. package/dist/{domain-knowledge-OYT7POYP.js → domain-knowledge-G4NBJGWD.js} +1 -1
  43. package/dist/{estimate-7KT5IXH3.js → estimate-MDCQUAIA.js} +3 -3
  44. package/dist/{evaluation-44QSBVVH.js → evaluation-BVIVVRAX.js} +2 -2
  45. package/dist/{expense-23HWGLWY.js → expense-MQPJVLVB.js} +1 -1
  46. package/dist/{faq-CTOJOO6T.js → faq-MBW7SLC6.js} +2 -2
  47. package/dist/{fiscal-year-IUWEC5AA.js → fiscal-year-4GC3CLDB.js} +1 -1
  48. package/dist/{holiday-VWMRG4AH.js → holiday-GTYFPTAI.js} +2 -2
  49. package/dist/{inquiry-UG2E5ITT.js → inquiry-QECSQJWD.js} +1 -1
  50. package/dist/{invoice-LV2MJK4U.js → invoice-7PVEO7WG.js} +2 -2
  51. package/dist/{job-title-4B35R6ZE.js → job-title-T3EVIB5D.js} +1 -1
  52. package/dist/{knowledge-7VWTWBER.js → knowledge-5ZKO6N5X.js} +1 -1
  53. package/dist/{leave-KA3SGHYU.js → leave-WBZRI7ZO.js} +2 -2
  54. package/dist/{license-Q4RQ57DH.js → license-AMXSVUUX.js} +1 -1
  55. package/dist/{login-history-S6NKWDLL.js → login-history-ZF2QVJ4S.js} +1 -1
  56. package/dist/{media-ZOLX3RTZ.js → media-STTUSAOS.js} +2 -2
  57. package/dist/{notification-5UFR4FQN.js → notification-WVJ6V2UN.js} +1 -1
  58. package/dist/{oneshot-SXDITFOC.js → oneshot-BDKA2IGL.js} +1 -1
  59. package/dist/{position-XXLZAXVO.js → position-U56E7GX6.js} +1 -1
  60. package/dist/{project-GSHZGWIF.js → project-YAFIKH4Z.js} +2 -2
  61. package/dist/{prospect-7EBYOBRL.js → prospect-ROAE2JQ6.js} +1 -1
  62. package/dist/{purchase-FRJHJY4H.js → purchase-T3QS3EPW.js} +2 -2
  63. package/dist/{receivable-SVRIFJVZ.js → receivable-QGNV2FT7.js} +1 -1
  64. package/dist/{redmine-RC7KMVWT.js → redmine-ZJ2BQR6H.js} +1 -1
  65. package/dist/{registry-DQZRZNFP.js → registry-QNFSDORJ.js} +1 -1
  66. package/dist/{report-EY3KIRFT.js → report-TCFRJYL6.js} +1 -1
  67. package/dist/{run-KRBLCZRW.js → run-OZTTCFUR.js} +1 -1
  68. package/dist/{sales-ai-review-LZFRA6U4.js → sales-ai-review-2RBOUUYJ.js} +1 -1
  69. package/dist/{sales-master-DUR6YYIP.js → sales-master-SGT73CHC.js} +2 -2
  70. package/dist/{sales-numbering-HVMZBCNG.js → sales-numbering-GLWL3NOI.js} +1 -1
  71. package/dist/{search-CNOLTZTG.js → search-JP77X4JS.js} +1 -1
  72. package/dist/{segment-OSPMFLLA.js → segment-ZTWVP32K.js} +1 -1
  73. package/dist/{skill-JMK4VX3I.js → skill-HA3DBVJ3.js} +2 -2
  74. package/dist/{staffing-board-RVEMCX2L.js → staffing-board-PORZDQBF.js} +2 -2
  75. package/dist/{supplier-payment-JCQJZEEA.js → supplier-payment-FCIATDMY.js} +2 -2
  76. package/dist/{support-F2BLNOZC.js → support-ZSYBBO52.js} +1 -1
  77. package/dist/{task-FAUIKWDV.js → task-FLIYESKS.js} +3 -3
  78. package/dist/{user-OWL3YYLY.js → user-6ACQM4GJ.js} +3 -3
  79. package/dist/{user-contract-type-OEJML4L4.js → user-contract-type-I4KTAIZ3.js} +1 -1
  80. package/dist/{user-group-GEWEFEPQ.js → user-group-44DPCXVC.js} +1 -1
  81. package/dist/{worker-agent-P5GLTH3T.js → worker-agent-56PJ6YTR.js} +1 -1
  82. package/dist/{workflow-GHBK3DDT.js → workflow-ZWRPMTBR.js} +1 -1
  83. package/package.json +1 -1
  84. package/dist/chunk-HPORE33X.js +0 -13
  85. package/dist/content-T6VIKIOW.js +0 -66
@@ -0,0 +1,287 @@
1
+ import { createRequire as __twpCreateRequire } from 'node:module';
2
+ const require = __twpCreateRequire(import.meta.url);
3
+ import{JsonBodyWithView}from"./chunk-Q3B65OFC.js";import{composeDocument,htmlToText,metaLine}from"./chunk-62GRAKUD.js";import{boundedText}from"./chunk-JJSBBWJ5.js";import{readBody}from"./chunk-HEH3PUW2.js";import"./chunk-W4NLJ2YK.js";import{REDACTED}from"./chunk-BD7O73GK.js";import{CMS_PATH}from"./chunk-A7MM5WSC.js";import{UUID_RE,isSafePathSegment}from"./chunk-HVZUXLQ4.js";import{ApiError}from"./chunk-JA5A6UJ2.js";import"./chunk-MMVXE2CJ.js";
4
+ import"./chunk-SBRTBKEZ.js";import{LIST_FLAGS,LIST_PAGING_HELP,envelopePaging,nonEmpty,positiveInteger}from"./chunk-MI6HVYR2.js";import{requireResolved,singleRef,withResolved}from"./chunk-PS5QFKHB.js";import{isRecord,pick}from"./chunk-3ZRMMBP5.js";import{ApiRejectedError,ApiResponseError,NetworkError,UsageError}from"./chunk-VFPY2A23.js";import"./chunk-J7QYPKVK.js";import"./chunk-EDF4U5BT.js";import"./chunk-RZVI6PMW.js";import"./chunk-NHYMHCAT.js";
5
+ import"./chunk-VSJBJXZO.js";function dataRecord(body,what){const row=isRecord(body)?body["data"]:void 0;if(!isRecord(row))throw new ApiResponseError(`${what}\u306E\u5FDC\u7B54\u306B data \u304C\u3042\u308A\u307E\u305B\u3093\u3002\u63A5\u7D9A\u5148\u3092\u78BA\u8A8D\u3057\u3066\u304F\u3060\u3055\u3044\u3002`);return row}function dataList(body,what){const list=isRecord(body)?body["data"]:void 0;if(!Array.isArray(list))throw new ApiResponseError(`${what}\u306E\u5FDC\u7B54\u306B data \u914D\u5217\u304C\u3042\u308A\u307E\u305B\u3093\u3002\u63A5\u7D9A\u5148\u3092\u78BA\u8A8D\u3057\u3066\u304F\u3060\u3055\u3044\u3002`);
6
+ return list}function formFields(category){const schema=category["schema"];const fields=isRecord(schema)?schema["form_fields"]:void 0;return Array.isArray(fields)?fields.filter(isRecord):[]}function serverId(id,what){if(!isSafePathSegment(id))throw new ApiResponseError(`\u30B5\u30FC\u30D0\u304C\u8FD4\u3057\u305F${what}\u306E ID \u3092\u30D1\u30B9\u306B\u4F7F\u3048\u307E\u305B\u3093: ${id}\u3002\u63A5\u7D9A\u5148\u3092\u78BA\u8A8D\u3057\u3066\u304F\u3060\u3055\u3044\u3002`);return id}async function categoryIdOf(ref,ctx,flag){
7
+ const value=ref.trim();if(UUID_RE.test(value))return value;return serverId((await ctx.resolver.cmsCategory(value,flag)).id,"\u30AB\u30C6\u30B4\u30EA")}function withoutHookSecrets(category){if(!isRecord(category))return category;const hook=category["publish_hook_settings"];if(!isRecord(hook)||!Array.isArray(hook["headers"]))return category;const headers=hook["headers"].map(h=>isRecord(h)&&h["value"]!==void 0&&h["value"]!==null&&h["value"]!==""?{...h,value:REDACTED}:h);return{...category,publish_hook_settings:{
8
+ ...hook,headers}}}var CATEGORIES_PATH=`${CMS_PATH}/categories`;var TAGS_PATH=`${CMS_PATH}/tags`;var CONTENTS_PATH=`${CMS_PATH}/contents`;var CATEGORY_COLUMNS=["id","code","name","is_active","workflow_enabled","sort","updated_at"];var TAG_COLUMNS=["id","value","display_name","scope","color","sort","is_active"];var CATEGORY_KEYS=["code","name","description","schema","sort","is_active","workflow_enabled","workflow_settings","preview_settings","publish_hook_settings"];var FIELD_TYPES=["text","textarea","number","sele\
9
+ ct","checkbox","radio","date","datetime","email","url","tel","file","image","richtext","attachment_file","tag","file_reference"];var CONTENT_MAX_CHARS=2e5;var CONTENT_FILE_FLAG={name:"--content-file",summary:"\u30AB\u30C6\u30B4\u30EA\u306E\u5185\u5BB9\u306E JSON \u30D5\u30A1\u30A4\u30EB\uFF08- \u3067\u6A19\u6E96\u5165\u529B\uFF09",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\u30AB\u30C6\u30B4\u30EA\u306F\u5909\u3048\u306A\u3044\uFF09",
10
+ takesValue:false};var REPLACE_FIELDS_FLAG={name:"--replace-fields",summary:"schema.form_fields \u3092\u4ECA\u306E\u5B9A\u7FA9\u3078\u5DEE\u3057\u8FBC\u307E\u305A\u3001\u66F8\u3044\u305F\u914D\u5217\u3067\u4E38\u3054\u3068\u7F6E\u304D\u63DB\u3048\u308B\uFF08\u9805\u76EE\u3092\u6D88\u3059\u3068\u304D\uFF09",takesValue:false};var CATEGORY_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\u3067\u3059:
11
+ ${CATEGORY_KEYS.join(" / ")}
12
+ \u30D5\u30A9\u30FC\u30E0\u5B9A\u7FA9\u306F schema.form_fields\uFF08\u5404\u9805\u76EE\u306F name\u30FBdisplay_name\u30FBtype \u304C\u5FC5\u9808\u3002type \u306F ${FIELD_TYPES.join(" / ")}\uFF09\u3002
13
+ \u30D7\u30EC\u30D3\u30E5\u30FC\u8A2D\u5B9A\u306F preview_settings.detail_preview / list_preview \u306E {enabled, url_pattern}\u3001
14
+ \u516C\u958BHook \u306F publish_hook_settings \u306E {enabled, webhook_url, http_method, body_template, headers: [{key, value}]} \u3067\u3059\u3002
15
+ \u77E5\u3089\u306A\u3044\u30AD\u30FC\u306F\u9001\u308B\u524D\u306B\u6B62\u3081\u307E\u3059\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`;async function sendExplaining(ctx,plan,explain){try{return await ctx.send(plan)}catch(error){if(!(error instanceof ApiError)||error.status!==400)throw error;let reason;try{reason=await explain()}catch{reason=void 0}const server=typeof error.
16
+ body?.message==="string"?error.body.message:"";const wrapped=new ApiError(error.status,error.body,"","");wrapped.message=`${reason??"\u30B5\u30FC\u30D0\u304C\u7406\u7531\u3092\u8FD4\u3055\u305A\u306B\u65AD\u308A\u307E\u3057\u305F\u3002"}${server!==""?`\uFF08\u30B5\u30FC\u30D0\u306E\u5FDC\u7B54: 400 ${server}\uFF09`:""}`;throw wrapped}}async function categoryRows(ctx){return dataList(await ctx.send({method:"GET",path:CATEGORIES_PATH}),"\u30AB\u30C6\u30B4\u30EA\u4E00\u89A7").filter(isRecord)}async function codeConflict(ctx,code,selfId){
17
+ if(typeof code!=="string")return void 0;const hit=(await categoryRows(ctx)).find(row=>row["code"]===code&&row["id"]!==selfId);return hit===void 0?void 0:`\u30AB\u30C6\u30B4\u30EA\u306E\u30B3\u30FC\u30C9\u300C${code}\u300D\u306F\u65E2\u306B\u4F7F\u308F\u308C\u3066\u3044\u307E\u3059\uFF08${String(hit["name"]??"")}\u30FB${String(hit["id"]??"")}\uFF09\u3002\u5225\u306E\u30B3\u30FC\u30C9\u306B\u3057\u3066\u304F\u3060\u3055\u3044\u3002`}function tagConflict(rows,wanted,selfId){const free=wanted.scope===
18
+ "free";const where=free?"":`\u30B9\u30B3\u30FC\u30D7 ${wanted.scope} \u306E\u4E2D\u3067`;for(const key of["value","display_name"]){const want=wanted[key];if(typeof want!=="string")continue;const pool=rows.filter(row=>row["id"]!==selfId&&(free?key==="value"||(row["scope"]??"free")==="free":row["scope"]===wanted.scope));const hit=pool.find(row=>row[key]===want);if(hit!==void 0){return`\u30BF\u30B0\u306E${key==="value"?"\u5024":"\u8868\u793A\u540D"}\u300C${want}\u300D\u306F${where}\u65E2\u306B\u4F7F\u308F\u308C\u3066\u3044\u307E\u3059\uFF08${String(
19
+ hit["id"]??"")}\uFF09\u3002\u5225\u306E${key==="value"?"\u5024":"\u8868\u793A\u540D"}\u306B\u3059\u308B\u304B\u3001\u65E2\u5B58\u306E\u30BF\u30B0\u3092\u4F7F\u3063\u3066\u304F\u3060\u3055\u3044\u3002`}}return void 0}function parseCategoryContent(text,source,mode){let parsed;try{parsed=JSON.parse(text)}catch{throw new UsageError(`\u30AB\u30C6\u30B4\u30EA\u306E\u5185\u5BB9\u304C JSON \u3068\u3057\u3066\u8AAD\u3081\u307E\u305B\u3093\uFF08${source}\uFF09`,CATEGORY_CONTENT_HELP)}if(!isRecord(parsed))
20
+ throw new UsageError(`\u30AB\u30C6\u30B4\u30EA\u306E\u5185\u5BB9\u306F JSON \u30AA\u30D6\u30B8\u30A7\u30AF\u30C8\u3067\u6307\u5B9A\u3057\u3066\u304F\u3060\u3055\u3044\uFF08${source}\uFF09`,CATEGORY_CONTENT_HELP);const unknownKeys=Object.keys(parsed).filter(key=>!CATEGORY_KEYS.includes(key));if(unknownKeys.length>0){throw new UsageError(`\u30AB\u30C6\u30B4\u30EA\u306E\u5185\u5BB9\u306B\u9001\u308C\u306A\u3044\u9805\u76EE\u304C\u3042\u308A\u307E\u3059\uFF08${source}\uFF09: ${unknownKeys.join(", ")}`,
21
+ CATEGORY_CONTENT_HELP)}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`,CATEGORY_UPDATE_USAGE);const schema=parsed["schema"];if(schema!==void 0&&schema!==null){if(!isRecord(schema)||Object.keys(schema).some(k=>k!=="form_fields")){throw new UsageError(`schema \u306B\u66F8\u3051\u308B\u306E\u306F form_fields \u3060\u3051\u3067\u3059\uFF08${source}\
22
+ \uFF09`,CATEGORY_CONTENT_HELP)}const fields=schema["form_fields"];if(fields!==void 0&&fields!==null&&(!Array.isArray(fields)||fields.some(f=>!isRecord(f)))){throw new UsageError(`schema.form_fields \u306F\u9805\u76EE\u306E\u30AA\u30D6\u30B8\u30A7\u30AF\u30C8\u306E\u914D\u5217\u3067\u6307\u5B9A\u3057\u3066\u304F\u3060\u3055\u3044\uFF08${source}\uFF09`,CATEGORY_CONTENT_HELP)}}if(mode==="update"){if(parsed["schema"]===null||isRecord(schema)&&schema["form_fields"]===null){throw new UsageError(`updat\
23
+ e \u3067\u306F schema / schema.form_fields \u306B null \u3092\u66F8\u3051\u307E\u305B\u3093\uFF08${source}\uFF09`,'\u9805\u76EE\u3092\u5168\u90E8\u6D88\u3059\u306A\u3089 "form_fields": [] \u3068 --replace-fields \u3092\u6307\u5B9A\u3057\u3066\u304F\u3060\u3055\u3044\u3002\u5909\u3048\u306A\u3044\u306A\u3089\u30AD\u30FC\u3054\u3068\u6D88\u3057\u3066\u304F\u3060\u3055\u3044\u3002')}const ignored=["workflow_settings","preview_settings","publish_hook_settings"].filter(key=>Object.hasOwn(parsed,key)&&
24
+ (parsed[key]===null||isRecord(parsed[key])&&Object.keys(parsed[key]).length===0));if(ignored.length>0){throw new UsageError(`\u7A7A\u306E\u5024\uFF08null / {}\uFF09\u306E ${ignored.join(", ")} \u306F\u30B5\u30FC\u30D0\u304C\u7121\u8996\u3059\u308B\u305F\u3081\u9001\u308A\u307E\u305B\u3093\uFF08${source}\uFF09`,'\u7121\u52B9\u306B\u3059\u308B\u306A\u3089 {"enabled": false, \u2026} \u306E\u3088\u3046\u306B\u66F8\u3044\u3066\u304F\u3060\u3055\u3044\uFF08\u516C\u958BHook\u30FB\u30D7\u30EC\u30D3\u30E5\u30FC\u306F enabled\u3001\u30EF\u30FC\u30AF\u30D5\u30ED\u30FC\u306F workflow_enabled: false\uFF09\u3002\u5909\u3048\u306A\u3044\u306A\u3089\u30AD\u30FC\u3054\u3068\u6D88\u3057\u3066\u304F\u3060\u3055\u3044\u3002')}}
25
+ const hook=parsed["publish_hook_settings"];if(isRecord(hook)&&Array.isArray(hook["headers"])&&hook["headers"].some(h=>isRecord(h)&&h["value"]===REDACTED)){throw new UsageError(`publish_hook_settings.headers \u306E\u5024\u304C\u4F0F\u5B57\uFF08${REDACTED}\uFF09\u306E\u307E\u307E\u3067\u3059\uFF08${source}\uFF09`,"\u3072\u306A\u5F62\u306E\u30D8\u30C3\u30C0\u5024\u306F\u4F0F\u305B\u3066\u3042\u308A\u307E\u3059\u3002\u30D8\u30C3\u30C0\u3092\u5909\u3048\u306A\u3044\u306A\u3089 publish_hook_settings \u3054\u3068\u6D88\u3057\u3066\u9001\u3063\u3066\u304F\u3060\u3055\u3044\uFF08\u66F8\u304B\u306A\u304B\u3063\u305F\u9805\u76EE\u306F\u5909\u308F\u308A\u307E\u305B\u3093\uFF09\u3002")}
26
+ return parsed}function mergeFormFields(current,written){const merged=current.map(field=>({...field}));for(const field of written){const name=field["name"];if(typeof name!=="string"||name===""){throw new UsageError("schema.form_fields \u306E\u5404\u9805\u76EE\u306B\u306F name \u304C\u8981\u308A\u307E\u3059\uFF08\u4ECA\u306E\u5B9A\u7FA9\u3078\u540D\u524D\u3067\u5DEE\u3057\u8FBC\u3080\u305F\u3081\uFF09","\u9805\u76EE\u3092\u4E38\u3054\u3068\u7F6E\u304D\u63DB\u3048\u308B\u306A\u3089 --replace-fields \u3092\u4ED8\u3051\u3066\u304F\u3060\u3055\u3044\u3002")}
27
+ const at=merged.findIndex(f=>f["name"]===name);if(at>=0)merged[at]={...merged[at],...field};else merged.push({...field})}return merged}function bodyWithView(body){return new JsonBodyWithView(body,withoutHookSecrets(body))}function categoryBody(input){return JSON.parse(requireResolved(input,"body"))}function categoryNotes(body,mode,replaced){const notes=[];if(mode==="update"){const fields=isRecord(body["schema"])?body["schema"]["form_fields"]:void 0;if(Array.isArray(fields)){notes.push(replaced?`\
28
+ \u26A0 \u30D5\u30A9\u30FC\u30E0\u5B9A\u7FA9\uFF08schema.form_fields\uFF09\u3092\u66F8\u3044\u305F ${fields.length} \u9805\u76EE\u3067\u4E38\u3054\u3068\u7F6E\u304D\u63DB\u3048\u307E\u3059\uFF08\u66F8\u304B\u306A\u304B\u3063\u305F\u9805\u76EE\u306F\u6D88\u3048\u307E\u3059\uFF09`:`\u30D5\u30A9\u30FC\u30E0\u5B9A\u7FA9\u306F\u4ECA\u306E\u5B9A\u7FA9\u3078\u540D\u524D\u3067\u5DEE\u3057\u8FBC\u307F\u307E\u3057\u305F\uFF08\u9001\u308B\u9805\u76EE\u306F ${fields.length} \u4EF6\u3002\u66F8\u304B\u306A\u304B\u3063\u305F\u9805\u76EE\u306F\u6B8B\u308A\u307E\u3059\uFF09`)}
29
+ for(const key of["workflow_settings","preview_settings","publish_hook_settings"]){if(isRecord(body[key]))notes.push(`${key} \u306F\u4E38\u3054\u3068\u7F6E\u304D\u63DB\u308F\u308A\u307E\u3059\uFF08\u66F8\u304B\u306A\u304B\u3063\u305F\u5165\u308C\u5B50\u306E\u9805\u76EE\u306F\u6D88\u3048\u307E\u3059\uFF09`)}}return notes}function createCategorySkeleton(usedCodes=[]){let code="new-category";for(let n=2;usedCodes.includes(code);n+=1)code=`new-category-${n}`;return{code,name:"[\u691C\u8A3C\u7528] \u304A\u77E5\u3089\u305B",
30
+ description:null,schema:{form_fields:[{name:"body",display_name:"\u672C\u6587",type:"richtext",required:true}]},sort:0,is_active:true,workflow_enabled:false,workflow_settings:null,preview_settings:{detail_preview:{enabled:false,url_pattern:null},list_preview:{enabled:false,url_pattern:null}},publish_hook_settings:null}}function updateCategorySkeleton(category){const safe=withoutHookSecrets(category);return Object.fromEntries(CATEGORY_KEYS.filter(key=>Object.hasOwn(safe,key)).map(key=>[key,safe[key]]))}
31
+ function writeResult(value){if(!isRecord(value)||typeof value["skeleton"]!=="boolean")throw new Error("\u5185\u90E8\u30A8\u30E9\u30FC: content category \u306E\u5FDC\u7B54\u306B\u5370\u304C\u3042\u308A\u307E\u305B\u3093\uFF08execute \u306E\u914D\u7DDA\u6F0F\u308C\uFF09");return value}function serverMessage(body){return isRecord(body)&&typeof body["message"]==="string"?[body["message"]]:[]}var CATEGORY_CREATE_USAGE="twp content category create (--content-file <\u30D1\u30B9> | --generate-cli-skeleton)";
32
+ var CATEGORY_UPDATE_USAGE="twp content category update <\u30AB\u30C6\u30B4\u30EA\uFF08ID\u30FB\u30B3\u30FC\u30C9\u30FB\u540D\u524D\uFF09> (--content-file <\u30D1\u30B9> [--replace-fields] | --generate-cli-skeleton)";var HOOK_SECRETS="\u516C\u958BHook \u306E\u30D8\u30C3\u30C0\u5024\uFF08\u8A8D\u8A3C\u30D8\u30C3\u30C0\u7B49\uFF09\u3092\u542B\u307F\u3046\u308B";var invalidateCategories=(_input,ctx)=>ctx.resolver.invalidateCmsCategories();var invalidateTags=(_input,ctx)=>ctx.resolver.invalidateCmsTags();
33
+ async function readCategoryContent(input,mode,usage){const text=await readBody(input,{flag:"--content",fileFlag:CONTENT_FILE_FLAG.name,label:"\u30AB\u30C6\u30B4\u30EA\u306E\u5185\u5BB9",maxChars:CONTENT_MAX_CHARS,usage});if(text===void 0){throw new UsageError("\u30AB\u30C6\u30B4\u30EA\u306E\u5185\u5BB9\u3092 --content-file <\u30D1\u30B9> \u3067\u6307\u5B9A\u3057\u3066\u304F\u3060\u3055\u3044",`\u3072\u306A\u5F62\u306F twp content category ${mode==="update"?"update <\u30AB\u30C6\u30B4\u30EA>":"cr\
34
+ eate"} --generate-cli-skeleton \u3067\u51FA\u305B\u307E\u3059\u3002`)}return parseCategoryContent(text,`${CONTENT_FILE_FLAG.name} ${input.flags.get(CONTENT_FILE_FLAG.name)??""}`,mode)}function rejectBoth(input,usage){const skeleton=input.flags.has(SKELETON_FLAG.name);if(skeleton&&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",usage);if(skeleton&&input.flags.has(REPLACE_FIELDS_FLAG.
35
+ name))throw new UsageError("--replace-fields \u306F --content-file \u3068\u4E00\u7DD2\u306B\u4F7F\u3044\u307E\u3059",usage);return skeleton}var categoryCreate={name:"create",summary:"\u30AB\u30C6\u30B4\u30EA\u3092\u4F5C\u6210\u3059\u308B\uFF08\u5185\u5BB9\u306F --content-file \u306E JSON\u3002\u30D5\u30A9\u30FC\u30E0\u5B9A\u7FA9\u30FB\u30EF\u30FC\u30AF\u30D5\u30ED\u30FC\u30FB\u30D7\u30EC\u30D3\u30E5\u30FC\u30FB\u516C\u958BHook \u3092\u542B\u3080\uFF09",usage:CATEGORY_CREATE_USAGE,sensitiveBody:HOOK_SECRETS,
36
+ description:`POST /api/v2/cms/categories \u3067\u30AB\u30C6\u30B4\u30EA\u3092\u4F5C\u308A\u307E\u3059\u3002code\uFF08\u534A\u89D2\u82F1\u5C0F\u6587\u5B57\u30FB\u6570\u5B57\u30FB_\u30FB-\uFF09\u3068 name \u304C\u5FC5\u9808\u3067\u3059\u3002
37
+ \u30AB\u30C6\u30B4\u30EA\u306E\u4F5C\u6210\u30FB\u5909\u66F4\u30FB\u524A\u9664\u306F\u30C6\u30CA\u30F3\u30C8\u7BA1\u7406\u8005\u3060\u3051\u304C\u3067\u304D\u307E\u3059\u3002
38
+
39
+ ${CATEGORY_CONTENT_HELP}
40
+
41
+ --generate-cli-skeleton \u306F\u3072\u306A\u5F62\u3092\u6A19\u6E96\u51FA\u529B\u3078\u51FA\u3057\u3066\u7D42\u4E86\u3057\u307E\u3059\uFF08\u30AB\u30C6\u30B4\u30EA\u306F\u4F5C\u308A\u307E\u305B\u3093\uFF09\u3002
42
+ \u4F8B: twp content category create --generate-cli-skeleton > category.json
43
+ \u30B3\u30FC\u30C9\u304C\u65E2\u306B\u4F7F\u308F\u308C\u3066\u3044\u308B\u3068\u30B5\u30FC\u30D0\u306F\u7406\u7531\u3092\u4F0F\u305B\u3066 400 \u3092\u8FD4\u3059\u306E\u3067\u3001\u305D\u306E\u3068\u304D\u306F\u4E00\u89A7\u3092\u8AAD\u3093\u3067\u91CD\u8907\u3092\u8A00\u3044\u307E\u3059\uFF08\u7D42\u4E86\u30B3\u30FC\u30C9 3\uFF09\u3002`,flags:[CONTENT_FILE_FLAG,SKELETON_FLAG],async prepare(input){if(input.args.length>0)throw new UsageError(`\u4F4D\u7F6E\u5F15\u6570\u306F\u53D6\u308A\u307E\u305B\u3093: ${input.
44
+ args.join(" ")}`,CATEGORY_CREATE_USAGE);if(rejectBoth(input,CATEGORY_CREATE_USAGE))return input;return withResolved(input,{body:JSON.stringify(await readCategoryContent(input,"create",CATEGORY_CREATE_USAGE))})},plan(input){if(input.flags.has(SKELETON_FLAG.name))return{method:"GET",path:CATEGORIES_PATH};return{method:"POST",path:CATEGORIES_PATH,body:bodyWithView(categoryBody(input))}},plannedNotes:input=>input.flags.has(SKELETON_FLAG.name)?["\u3072\u306A\u5F62\u3092\u51FA\u3059\u3060\u3051\u3067\u3001\u30AB\u30C6\u30B4\u30EA\u306F\u4F5C\u308A\u307E\u305B\u3093"]:
45
+ categoryNotes(categoryBody(input),"create",false),async execute(input,ctx){if(input.flags.has(SKELETON_FLAG.name)){const used=dataList(await ctx.send(categoryCreate.plan(input)),"\u30AB\u30C6\u30B4\u30EA\u4E00\u89A7").filter(isRecord).map(row=>row["code"]);return{skeleton:true,body:createCategorySkeleton(used)}}const body=categoryBody(input);return{skeleton:false,body:await sendExplaining(ctx,categoryCreate.plan(input),()=>codeConflict(ctx,body["code"]))}},invalidates:invalidateCategories,summarize:value=>{
46
+ const result=writeResult(value);return result.skeleton?result.body:pick(dataRecord(result.body,"\u30AB\u30C6\u30B4\u30EA\u306E\u4F5C\u6210"),CATEGORY_COLUMNS)},raw:value=>{const result=writeResult(value);return result.skeleton?result.body:withoutHookSecrets(dataRecord(result.body,"\u30AB\u30C6\u30B4\u30EA\u306E\u4F5C\u6210"))},notes:value=>{const result=writeResult(value);return result.skeleton?["code\u30FBname \u3092\u57CB\u3081\u3001\u8981\u3089\u306A\u3044\u30AD\u30FC\u306F\u6D88\u3057\u3066\u304B\u3089 twp content category create --content-file <\u30D1\u30B9> \u3067\u4F5C\u308A\u307E\u3059"]:
47
+ serverMessage(result.body)}};var categoryUpdate={name:"update",summary:"\u30AB\u30C6\u30B4\u30EA\u3092\u66F8\u304D\u63DB\u3048\u308B\uFF08\u30D5\u30A1\u30A4\u30EB\u306B\u66F8\u3044\u305F\u9805\u76EE\u3060\u3051\u3092\u9001\u308B\u3002\u30D5\u30A9\u30FC\u30E0\u9805\u76EE\u306F\u540D\u524D\u3067\u5DEE\u3057\u8FBC\u3080\uFF09",usage:CATEGORY_UPDATE_USAGE,sensitiveBody:HOOK_SECRETS,description:`PUT /api/v2/cms/categories/{id} \u3067\u30AB\u30C6\u30B4\u30EA\u3092\u66F8\u304D\u63DB\u3048\u307E\u3059\u3002\u30D5\u30A1\u30A4\u30EB\u306B\u66F8\u3044\u305F\u6700\u4E0A\u4F4D\u306E\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
48
+ schema.form_fields \u306F\u4ECA\u306E\u30D5\u30A9\u30FC\u30E0\u5B9A\u7FA9\u3078 name \u3067\u5DEE\u3057\u8FBC\u307F\u307E\u3059: \u540C\u3058 name \u306E\u9805\u76EE\u306F\u66F8\u3044\u305F\u30AD\u30FC\u3060\u3051\u5909\u308F\u308A\u3001\u65B0\u3057\u3044 name \u306F\u672B\u5C3E\u306B\u8DB3\u3055\u308C\u3001
49
+ \u66F8\u304B\u306A\u304B\u3063\u305F\u9805\u76EE\u306F\u6B8B\u308A\u307E\u3059\u3002\u9805\u76EE\u3092\u6D88\u3059\u30FB\u4E26\u3079\u66FF\u3048\u308B\u3068\u304D\u306F --replace-fields \u3067\u3001\u66F8\u3044\u305F\u914D\u5217\u306B\u4E38\u3054\u3068\u7F6E\u304D\u63DB\u3048\u307E\u3059\u3002
50
+ \u26A0\uFE0F workflow_settings\u30FBpreview_settings\u30FBpublish_hook_settings \u306F\u9001\u308B\u3068\u4E38\u3054\u3068\u7F6E\u304D\u63DB\u308F\u308A\u307E\u3059\uFF08\u5165\u308C\u5B50\u306E\u4E00\u90E8\u3060\u3051\u306F\u5909\u3048\u3089\u308C\u307E\u305B\u3093\uFF09\u3002
51
+ \u7A7A\u306E\u5024\uFF08null / {}\uFF09\u306F\u30B5\u30FC\u30D0\u304C\u9ED9\u3063\u3066\u7121\u8996\u3059\u308B\u306E\u3067\u9001\u308B\u524D\u306B\u6B62\u3081\u307E\u3059\uFF08\u7121\u52B9\u306B\u3059\u308B\u306A\u3089 enabled: false\uFF09\u3002form_fields: null \u3082\u6B62\u3081\u307E\u3059\u3002
52
+
53
+ ${CATEGORY_CONTENT_HELP}
54
+
55
+ --generate-cli-skeleton \u306F\u4ECA\u306E\u30AB\u30C6\u30B4\u30EA\u3092\u8AAD\u307F\u3001\u66F8\u304D\u8FBC\u3081\u308B\u30AD\u30FC\u3060\u3051\u3092\u51FA\u3057\u307E\u3059\uFF08\u516C\u958BHook \u306E\u30D8\u30C3\u30C0\u5024\u306F\u4F0F\u305B\u307E\u3059\u3002
56
+ \u4F0F\u5B57\u306E\u307E\u307E\u9001\u308B\u3068\u6B62\u3081\u307E\u3059\u3002\u30D8\u30C3\u30C0\u3092\u5909\u3048\u306A\u3044\u306A\u3089 publish_hook_settings \u3054\u3068\u6D88\u3057\u3066\u304F\u3060\u3055\u3044\uFF09\u3002
57
+ \u4F8B: twp content category update news --generate-cli-skeleton > category.json`,flags:[CONTENT_FILE_FLAG,SKELETON_FLAG,REPLACE_FIELDS_FLAG,{name:"--category",summary:"\u5BFE\u8C61\u306E\u30AB\u30C6\u30B4\u30EA\uFF08\u4F4D\u7F6E\u5F15\u6570\u306E\u4EE3\u308F\u308A\u306B\u4F7F\u3048\u308B\uFF09",takesValue:true,placeholder:"<\u30AB\u30C6\u30B4\u30EA>"}],async prepare(input,ctx){const ref=singleRef(input,{flag:"--category",label:"\u30AB\u30C6\u30B4\u30EA",usage:CATEGORY_UPDATE_USAGE});const skeleton=rejectBoth(
58
+ input,CATEGORY_UPDATE_USAGE);const id=await categoryIdOf(ref,ctx,"<\u30AB\u30C6\u30B4\u30EA>");if(skeleton)return withResolved(input,{id});const body=await readCategoryContent(input,"update",CATEGORY_UPDATE_USAGE);const written=isRecord(body["schema"])?body["schema"]["form_fields"]:void 0;if(Array.isArray(written)&&!input.flags.has(REPLACE_FIELDS_FLAG.name)){const current=formFields(await ctx.resolver.cmsCategoryRecord(id));body["schema"]={form_fields:mergeFormFields(current,written)}}return withResolved(
59
+ input,{id,body:JSON.stringify(body)})},plan(input){const path=`${CATEGORIES_PATH}/${encodeURIComponent(requireResolved(input,"id"))}`;if(input.flags.has(SKELETON_FLAG.name))return{method:"GET",path};return{method:"PUT",path,body:bodyWithView(categoryBody(input))}},plannedNotes:input=>input.flags.has(SKELETON_FLAG.name)?["\u4ECA\u306E\u30AB\u30C6\u30B4\u30EA\u3092\u8AAD\u3080\u3060\u3051\u3067\u3001\u66F8\u304D\u63DB\u3048\u307E\u305B\u3093"]:categoryNotes(categoryBody(input),"update",input.flags.
60
+ has(REPLACE_FIELDS_FLAG.name)),async execute(input,ctx){const plan=categoryUpdate.plan(input);if(input.flags.has(SKELETON_FLAG.name))return{skeleton:true,body:await ctx.send(plan)};const id=requireResolved(input,"id");return{skeleton:false,body:await sendExplaining(ctx,plan,()=>codeConflict(ctx,categoryBody(input)["code"],id))}},invalidates:invalidateCategories,summarize:value=>{const result=writeResult(value);return result.skeleton?updateCategorySkeleton(dataRecord(result.body,"\u30AB\u30C6\u30B4\u30EA")):
61
+ pick(dataRecord(result.body,"\u30AB\u30C6\u30B4\u30EA\u306E\u66F4\u65B0"),CATEGORY_COLUMNS)},raw:value=>{const result=writeResult(value);return result.skeleton?updateCategorySkeleton(dataRecord(result.body,"\u30AB\u30C6\u30B4\u30EA")):withoutHookSecrets(dataRecord(result.body,"\u30AB\u30C6\u30B4\u30EA\u306E\u66F4\u65B0"))},notes:value=>{const result=writeResult(value);return result.skeleton?["\u4ECA\u306E\u30AB\u30C6\u30B4\u30EA\u306E\u66F8\u304D\u8FBC\u3081\u308B\u30AD\u30FC\u3060\u3051\u3092\u51FA\u3057\u307E\u3057\u305F\u3002\u5909\u3048\u306A\u3044\u9805\u76EE\u306F\u6D88\u3057\u3066\u304B\u3089 twp content category update <\u30AB\u30C6\u30B4\u30EA> --content-file <\u30D1\u30B9> \u3067\u9001\u3063\u3066\u304F\u3060\u3055\u3044"]:
62
+ serverMessage(result.body)}};function describeCategory(row){return`${String(row["name"]??"")}\uFF08\u30B3\u30FC\u30C9 ${String(row["code"]??"")}\u30FB\u30D5\u30A9\u30FC\u30E0\u9805\u76EE ${formFields(row).length} \u4EF6\u30FB${String(row["id"]??"")}\uFF09`}var CATEGORY_DELETE_USAGE="twp content category delete <\u30AB\u30C6\u30B4\u30EA\uFF08ID\u30FB\u30B3\u30FC\u30C9\u30FB\u540D\u524D\uFF09> --yes";var categoryDelete={name:"delete",summary:"\u30AB\u30C6\u30B4\u30EA\u3092\u524A\u9664\u3059\u308B\uFF08--yes \u304C\u8981\u308B\u3002\u30B3\u30F3\u30C6\u30F3\u30C4\u304C\u6B8B\u3063\u3066\u3044\u308C\u3070\u30B5\u30FC\u30D0\u304C\u65AD\u308B\uFF09",
63
+ usage:CATEGORY_DELETE_USAGE,sensitiveBody:HOOK_SECRETS,description:"DELETE /api/v2/cms/categories/{id} \u3067\u30AB\u30C6\u30B4\u30EA\u3092\u524A\u9664\u3057\u307E\u3059\uFF08\u53D6\u308A\u6D88\u305B\u307E\u305B\u3093\uFF09\u3002\n\u30B3\u30F3\u30C6\u30F3\u30C4\u304C1\u4EF6\u3067\u3082\u6B8B\u3063\u3066\u3044\u308B\u30AB\u30C6\u30B4\u30EA\u306F\u30B5\u30FC\u30D0\u304C\u65AD\u308A\u307E\u3059\u3002\u30B5\u30FC\u30D0\u306F\u7406\u7531\u3092\u4F0F\u305B\u3066 400 \u3092\u8FD4\u3059\u306E\u3067\u3001\n \u305D\u306E\u3068\u304D\u306F\u30B3\u30F3\u30C6\u30F3\u30C4\u306E\u4EF6\u6570\u3092\u8AAD\u3093\u3067\u8A00\u3044\u307E\u3059\uFF08\u7D42\u4E86\u30B3\u30FC\u30C9 3\u3002\u5148\u306B twp content list --category <\u30AB\u30C6\u30B4\u30EA> \u3067\u78BA\u304B\u3081\u3066\u79FB\u3059\u304B\u6D88\u3057\u3066\u304F\u3060\u3055\u3044\uFF09\u3002\n\u9001\u308B\u524D\u306B\u5BFE\u8C61\u306E\u30AB\u30C6\u30B4\u30EA\u3092\u8AAD\u307F\u3001stderr \u306B\u51FA\u3057\u307E\u3059\uFF08--dry-run \u3067\u3082\u51FA\u307E\u3059\uFF09\u3002",
64
+ destructive:true,flags:[{name:"--category",summary:"\u5BFE\u8C61\u306E\u30AB\u30C6\u30B4\u30EA\uFF08\u4F4D\u7F6E\u5F15\u6570\u306E\u4EE3\u308F\u308A\u306B\u4F7F\u3048\u308B\uFF09",takesValue:true,placeholder:"<\u30AB\u30C6\u30B4\u30EA>"}],async prepare(input,ctx){const ref=singleRef(input,{flag:"--category",label:"\u30AB\u30C6\u30B4\u30EA",usage:CATEGORY_DELETE_USAGE});const id=await categoryIdOf(ref,ctx,"<\u30AB\u30C6\u30B4\u30EA>");return withResolved(input,{id,label:describeCategory(await ctx.
65
+ resolver.cmsCategoryRecord(id))})},plan:input=>({method:"DELETE",path:`${CATEGORIES_PATH}/${encodeURIComponent(requireResolved(input,"id"))}`}),plannedNotes:input=>[`\u524A\u9664\u3059\u308B\u30AB\u30C6\u30B4\u30EA: ${requireResolved(input,"label")}`],execute:(input,ctx)=>sendExplaining(ctx,categoryDelete.plan(input),async()=>{const body=await ctx.send({method:"GET",path:CONTENTS_PATH,query:{category_id:requireResolved(input,"id"),limit:"1"}});const items=isRecord(body)&&Array.isArray(body["item\
66
+ s"])?body["items"]:[];if(items.length===0)return void 0;const total=isRecord(body)&&typeof body["total"]==="number"?`${body["total"]} \u4EF6`:"1 \u4EF6\u4EE5\u4E0A";return`\u3053\u306E\u30AB\u30C6\u30B4\u30EA\u306B\u306F\u30B3\u30F3\u30C6\u30F3\u30C4\u304C ${total}\u3042\u308B\u305F\u3081\u524A\u9664\u3067\u304D\u307E\u305B\u3093\u3002twp content list --category ${requireResolved(input,"id")} \u3067\u78BA\u304B\u3081\u3001\u5225\u306E\u30AB\u30C6\u30B4\u30EA\u3078\u79FB\u3059\u304B\u524A\u9664\u3057\u3066\u304B\u3089\u6253\u3061\u76F4\u3057\u3066\u304F\u3060\u3055\u3044\u3002`}),
67
+ invalidates:invalidateCategories,summarize:deletedAck("\u30AB\u30C6\u30B4\u30EA\u306E\u524A\u9664"),raw:deletedAck("\u30AB\u30C6\u30B4\u30EA\u306E\u524A\u9664")};function deletedAck(label){return body=>{if(!isRecord(body)||typeof body["message"]!=="string")throw new ApiResponseError(`${label}\u306E\u5FDC\u7B54\u304C\u60F3\u5B9A\u306E\u5F62\u3067\u306F\u3042\u308A\u307E\u305B\u3093\u3002\u63A5\u7D9A\u5148\u3092\u78BA\u8A8D\u3057\u3066\u304F\u3060\u3055\u3044\u3002`);return{result:true,message:body["\
68
+ message"]}}}var PREVIEW_USAGE="twp content category preview-url <\u30AB\u30C6\u30B4\u30EA\uFF08ID\u30FB\u30B3\u30FC\u30C9\u30FB\u540D\u524D\uFF09>";var categoryPreviewUrl={name:"preview-url",summary:"\u30AB\u30C6\u30B4\u30EA\u306E\u4E00\u89A7\u30D7\u30EC\u30D3\u30E5\u30FC\u306E URL\uFF08\u671F\u9650\u3064\u304D\u30C8\u30FC\u30AF\u30F3\u5165\u308A\uFF09\u3092\u767A\u884C\u3059\u308B",usage:PREVIEW_USAGE,description:'POST /api/v2/cms/categories/{id}/preview-token \u3067\u3001\u672A\u516C\u958B\u5206\u3092\u542B\u3080\u4E00\u89A7\u3092\u5916\u90E8\u30B5\u30A4\u30C8\u3067\u898B\u308B\u305F\u3081\u306E URL \u3092\u767A\u884C\u3057\u307E\u3059\
69
+ \uFF08\u30C6\u30CA\u30F3\u30C8\u7BA1\u7406\u8005\u3060\u3051\uFF09\u3002\nURL \u306F\u30AB\u30C6\u30B4\u30EA\u306E preview_settings.list_preview.url_pattern \u304B\u3089\u4F5C\u3089\u308C\u3001\u30C8\u30FC\u30AF\u30F3\u306F expires_in \u79D2\u3067\u5207\u308C\u307E\u3059\u3002\n\u4E00\u89A7\u30D7\u30EC\u30D3\u30E5\u30FC\u304C\u7121\u52B9\uFF08enabled \u304C false\uFF09\u304B URL \u30D1\u30BF\u30FC\u30F3\u304C\u672A\u8A2D\u5B9A\u306A\u3089\u30B5\u30FC\u30D0\u304C 400 \u3067\u65AD\u308A\u307E\u3059\n \uFF08twp content category update <\u30AB\u30C6\u30B4\u30EA> \u3067 preview_settings.list_preview \u3092 {enabled: true, url_pattern: "https://\u2026"} \u306B\u3057\u307E\u3059\uFF09\u3002\nURL \u306E\u30C8\u30FC\u30AF\u30F3\u306F\u65E2\u5B9A\u3067\u4F0F\u5B57\u306B\u3057\u307E\u3059\uFF08\u51FA\u529B\u306E\u4F0F\u5B57\u5316\uFF09\u3002\u958B\u304F\u305F\u3081\u306B URL \u3092\u305D\u306E\u307E\u307E\u53D6\u308A\u51FA\u3059\u3068\u304D\u306F --no-redact \u3092\u4ED8\u3051\u307E\u3059\u3002\n\u26A0\uFE0F URL \u3092\u77E5\u3063\u3066\u3044\u308B\u4EBA\u306F\u8AB0\u3067\u3082\u671F\u9650\u5185\u306B\u672A\u516C\u958B\u306E\u5185\u5BB9\u3092\u898B\u3089\u308C\u307E\u3059\u3002\u5171\u6709\u5148\u306B\u6CE8\u610F\u3057\u3066\u304F\u3060\u3055\u3044\u3002',
70
+ flags:[{name:"--category",summary:"\u5BFE\u8C61\u306E\u30AB\u30C6\u30B4\u30EA\uFF08\u4F4D\u7F6E\u5F15\u6570\u306E\u4EE3\u308F\u308A\u306B\u4F7F\u3048\u308B\uFF09",takesValue:true,placeholder:"<\u30AB\u30C6\u30B4\u30EA>"}],async prepare(input,ctx){const ref=singleRef(input,{flag:"--category",label:"\u30AB\u30C6\u30B4\u30EA",usage:PREVIEW_USAGE});return withResolved(input,{id:await categoryIdOf(ref,ctx,"<\u30AB\u30C6\u30B4\u30EA>")})},plan:input=>({method:"POST",path:`${CATEGORIES_PATH}/${encodeURIComponent(
71
+ requireResolved(input,"id"))}/preview-token`}),execute:(input,ctx)=>sendExplaining(ctx,categoryPreviewUrl.plan(input),async()=>{const list=dataRecord(await ctx.send({method:"GET",path:`${CATEGORIES_PATH}/${encodeURIComponent(requireResolved(input,"id"))}`}),"\u30AB\u30C6\u30B4\u30EA")["preview_settings"];const preview=isRecord(list)?list["list_preview"]:void 0;if(!isRecord(preview)||preview["enabled"]!==true)return"\u3053\u306E\u30AB\u30C6\u30B4\u30EA\u306F\u4E00\u89A7\u30D7\u30EC\u30D3\u30E5\u30FC\u304C\u7121\u52B9\u3067\u3059\uFF08preview_settings.list_preview.enabled \u304C true \u3067\u306F\u3042\u308A\u307E\u305B\u3093\uFF09\u3002";
72
+ if(typeof preview["url_pattern"]!=="string"||preview["url_pattern"]==="")return"\u3053\u306E\u30AB\u30C6\u30B4\u30EA\u306F\u4E00\u89A7\u30D7\u30EC\u30D3\u30E5\u30FC\u306E URL \u30D1\u30BF\u30FC\u30F3\uFF08preview_settings.list_preview.url_pattern\uFF09\u304C\u672A\u8A2D\u5B9A\u3067\u3059\u3002";return void 0}),summarize:body=>previewOf(body),raw:body=>previewOf(body)};function previewOf(body){if(!isRecord(body)||typeof body["preview_url"]!=="string")throw new ApiResponseError("\u30D7\u30EC\u30D3\u30E5\u30FC URL \u306E\u5FDC\u7B54\u306B pre\
73
+ view_url \u304C\u3042\u308A\u307E\u305B\u3093\u3002\u63A5\u7D9A\u5148\u3092\u78BA\u8A8D\u3057\u3066\u304F\u3060\u3055\u3044\u3002");return pick(body,["preview_url","expires_in"])}var categoryWriteOperations=[categoryCreate,categoryUpdate,categoryDelete,categoryPreviewUrl];var TAG_REF_FLAG={name:"--tag",summary:"\u5BFE\u8C61\u306E\u30BF\u30B0\uFF08\u4F4D\u7F6E\u5F15\u6570\u306E\u4EE3\u308F\u308A\u306B\u4F7F\u3048\u308B\uFF09",takesValue:true,placeholder:"<\u30BF\u30B0>"};var TAG_FIELD_FLAGS=[{name:"\
74
+ --value",summary:"\u30BF\u30B0\u306E\u5024\uFF08255 \u6587\u5B57\u307E\u3067\uFF09",takesValue:true,placeholder:"<\u5024>"},{name:"--display-name",summary:"\u8868\u793A\u540D\uFF08255 \u6587\u5B57\u307E\u3067\uFF09",takesValue:true,placeholder:"<\u8868\u793A\u540D>"},{name:"--color",summary:"\u8272\uFF08\u4F8B: #3182ce\u30FB20 \u6587\u5B57\u307E\u3067\uFF09",takesValue:true,placeholder:"<\u8272>"},{name:"--sort",summary:"\u4E26\u3073\u9806\uFF080 \u4EE5\u4E0A\u306E\u6574\u6570\uFF09",takesValue:true,
75
+ placeholder:"<\u6574\u6570>"},{name:"--active",summary:"\u6709\u52B9\u306B\u3059\u308B",takesValue:false},{name:"--inactive",summary:"\u7121\u52B9\u306B\u3059\u308B",takesValue:false}];var TAG_SCOPE_FLAG={name:"--scope",summary:"\u30B9\u30B3\u30FC\u30D7\uFF08\u65E2\u5B9A free=\u81EA\u7531\u30BF\u30B0 / field:<\u30AB\u30C6\u30B4\u30EAID>:<\u9805\u76EE\u540D>\uFF09",takesValue:true,placeholder:"<\u30B9\u30B3\u30FC\u30D7>"};function tagBody(input){const body={};for(const[flag,key]of[["--value","val\
76
+ ue"],["--display-name","display_name"],["--color","color"],["--scope","scope"]]){const raw=input.flags.get(flag);if(raw===void 0)continue;const value=raw.trim();if(value==="")throw new UsageError(`${flag} \u304C\u7A7A\u3067\u3059`);if([...value].length>(key==="color"?20:key==="scope"?500:255))throw new UsageError(`${flag} \u304C\u9577\u3059\u304E\u307E\u3059`);body[key]=value}const sort=nonEmpty(input.flags,"--sort")?.trim();if(sort!==void 0){if(!/^(0|[1-9][0-9]*)$/.test(sort))throw new UsageError(
77
+ `--sort \u306F 0 \u4EE5\u4E0A\u306E\u6574\u6570\u3067\u6307\u5B9A\u3057\u3066\u304F\u3060\u3055\u3044: ${sort}`);body["sort"]=Number(sort)}if(input.flags.has("--active")&&input.flags.has("--inactive"))throw new UsageError("--active \u3068 --inactive \u306F\u540C\u6642\u306B\u6307\u5B9A\u3067\u304D\u307E\u305B\u3093");if(input.flags.has("--active"))body["is_active"]=true;if(input.flags.has("--inactive"))body["is_active"]=false;return body}async function tagRows(ctx){return dataList(await ctx.send(
78
+ {method:"GET",path:TAGS_PATH}),"\u30BF\u30B0\u4E00\u89A7").filter(isRecord)}var TAG_CREATE_USAGE="twp content tag create --value <\u5024> --display-name <\u8868\u793A\u540D> [--scope <\u30B9\u30B3\u30FC\u30D7>] [--color <\u8272>] [--sort <\u6574\u6570>] [--inactive]";var tagCreate={name:"create",summary:"\u30BF\u30B0\u3092\u4F5C\u6210\u3059\u308B",usage:TAG_CREATE_USAGE,description:"POST /api/v2/cms/tags \u3067\u30BF\u30B0\u3092\u4F5C\u308A\u307E\u3059\u3002--value \u3068 --display-name \u304C\u5FC5\u9808\u3067\u3059\uFF08\u30B9\u30B3\u30FC\u30D7\u306E\u65E2\u5B9A\u306F free\uFF1D\u81EA\u7531\u30BF\u30B0\uFF09\u3002\n\u81EA\u7531\u30BF\u30B0\u306E\u5024\u306F\u30C6\u30CA\u30F3\u30C8\u306E\u5168\u30BF\u30B0\u3068\u3001\u8868\u793A\u540D\u306F\u81EA\u7531\u30BF\u30B0\u3068\u91CD\u306D\u3089\u308C\u307E\
79
+ \u305B\u3093\u3002\u305D\u308C\u4EE5\u5916\u306E\u30B9\u30B3\u30FC\u30D7\u306F\u540C\u3058\u30B9\u30B3\u30FC\u30D7\u306E\u4E2D\u3067\u91CD\u306D\u3089\u308C\u307E\u305B\u3093\uFF08TWP-1473\uFF09\u3002\n \u30B5\u30FC\u30D0\u306F\u7406\u7531\u3092\u4F0F\u305B\u3066 400 \u3092\u8FD4\u3059\u306E\u3067\u3001\u305D\u306E\u3068\u304D\u306F\u4E00\u89A7\u3092\u8AAD\u3093\u3067\u91CD\u306A\u3063\u3066\u3044\u308B\u30BF\u30B0\u3092\u8A00\u3044\u307E\u3059\uFF08\u7D42\u4E86\u30B3\u30FC\u30C9 3\uFF09\u3002",
80
+ flags:[...TAG_FIELD_FLAGS,TAG_SCOPE_FLAG],plan(input){if(input.args.length>0)throw new UsageError(`\u4F4D\u7F6E\u5F15\u6570\u306F\u53D6\u308A\u307E\u305B\u3093: ${input.args.join(" ")}`,TAG_CREATE_USAGE);const body=tagBody(input);if(body["value"]===void 0||body["display_name"]===void 0)throw new UsageError("--value \u3068 --display-name \u3092\u6307\u5B9A\u3057\u3066\u304F\u3060\u3055\u3044",TAG_CREATE_USAGE);return{method:"POST",path:TAGS_PATH,body}},async execute(input,ctx){const plan=tagCreate.
81
+ plan(input);const body=plan.body;return sendExplaining(ctx,plan,async()=>tagConflict(await tagRows(ctx),{...body,scope:typeof body["scope"]==="string"?body["scope"]:"free"}))},invalidates:invalidateTags,summarize:body=>pick(dataRecord(body,"\u30BF\u30B0\u306E\u4F5C\u6210"),TAG_COLUMNS),raw:body=>dataRecord(body,"\u30BF\u30B0\u306E\u4F5C\u6210"),notes:serverMessage};async function tagIdOf(input,ctx,usage){const ref=singleRef(input,{flag:TAG_REF_FLAG.name,label:"\u30BF\u30B0",usage});return UUID_RE.
82
+ test(ref.trim())?ref.trim():serverId((await ctx.resolver.cmsTag(ref)).id,"\u30BF\u30B0")}var TAG_UPDATE_USAGE="twp content tag update <\u30BF\u30B0\uFF08ID\u30FB\u5024\u30FB\u8868\u793A\u540D\uFF09> [--value <\u5024>] [--display-name <\u8868\u793A\u540D>] [--scope <\u30B9\u30B3\u30FC\u30D7>] [--color <\u8272>] [--sort <\u6574\u6570>] [--active | --inactive]";var tagUpdate={name:"update",summary:"\u30BF\u30B0\u3092\u66F8\u304D\u63DB\u3048\u308B\uFF08\u6307\u5B9A\u3057\u305F\u30D5\u30E9\u30B0\u306E\u9805\u76EE\u3060\u3051\u3092\u9001\u308B\uFF09",
83
+ usage:TAG_UPDATE_USAGE,description:"PUT /api/v2/cms/tags/{id} \u3067\u30BF\u30B0\u3092\u66F8\u304D\u63DB\u3048\u307E\u3059\u3002\u6307\u5B9A\u3057\u306A\u304B\u3063\u305F\u9805\u76EE\u306F\u5909\u308F\u308A\u307E\u305B\u3093\u3002\n\u5024\u30FB\u8868\u793A\u540D\u3092\u4ED6\u306E\u30BF\u30B0\u3068\u91CD\u306D\u308B\u3068\u30B5\u30FC\u30D0\u304C\u7406\u7531\u3092\u4F0F\u305B\u3066 400 \u3092\u8FD4\u3059\u306E\u3067\u3001\u305D\u306E\u3068\u304D\u306F\u4E00\u89A7\u3092\u8AAD\u3093\u3067\u91CD\u306A\u3063\u3066\u3044\u308B\u30BF\u30B0\u3092\u8A00\u3044\u307E\u3059\uFF08\u7D42\u4E86\u30B3\u30FC\u30C9 3\uFF09\u3002",
84
+ flags:[TAG_REF_FLAG,...TAG_FIELD_FLAGS,TAG_SCOPE_FLAG],async prepare(input,ctx){if(Object.keys(tagBody(input)).length===0)throw new UsageError("\u66F8\u304D\u63DB\u3048\u308B\u9805\u76EE\u30921\u3064\u4EE5\u4E0A\u6307\u5B9A\u3057\u3066\u304F\u3060\u3055\u3044",TAG_UPDATE_USAGE);return withResolved(input,{id:await tagIdOf(input,ctx,TAG_UPDATE_USAGE)})},plan:input=>({method:"PUT",path:`${TAGS_PATH}/${encodeURIComponent(requireResolved(input,"id"))}`,body:tagBody(input)}),async execute(input,ctx){const id=requireResolved(
85
+ input,"id");const body=tagBody(input);return sendExplaining(ctx,tagUpdate.plan(input),async()=>{const rows=await tagRows(ctx);const self=rows.find(row=>row["id"]===id);const scope=typeof body["scope"]==="string"?body["scope"]:typeof self?.["scope"]==="string"?self["scope"]:"free";return tagConflict(rows,{...body,scope},id)})},invalidates:invalidateTags,summarize:body=>pick(dataRecord(body,"\u30BF\u30B0\u306E\u66F4\u65B0"),TAG_COLUMNS),raw:body=>dataRecord(body,"\u30BF\u30B0\u306E\u66F4\u65B0"),notes:serverMessage};
86
+ var TAG_DELETE_USAGE="twp content tag delete <\u30BF\u30B0\uFF08ID\u30FB\u5024\u30FB\u8868\u793A\u540D\uFF09> --yes";var tagDelete={name:"delete",summary:"\u30BF\u30B0\u3092\u524A\u9664\u3059\u308B\uFF08--yes \u304C\u8981\u308B\uFF09",usage:TAG_DELETE_USAGE,description:"DELETE /api/v2/cms/tags/{id} \u3067\u30BF\u30B0\u3092\u524A\u9664\u3057\u307E\u3059\uFF08\u53D6\u308A\u6D88\u305B\u307E\u305B\u3093\uFF09\u3002\n\u26A0\uFE0F \u30B3\u30F3\u30C6\u30F3\u30C4\u306B\u4ED8\u3044\u3066\u3044\u308B\u30BF\u30B0\u3067\u3082\u30B5\u30FC\u30D0\u306F\u65AD\u308A\u307E\u305B\u3093\uFF08\u4ED8\u3044\u3066\u3044\u305F\u30B3\u30F3\u30C6\u30F3\u30C4\u304B\u3089\u306F\u53C2\u7167\u5148\u304C\u6D88\u3048\u307E\u3059\uFF09\u3002\n\u30B7\u30B9\u30C6\u30E0\u30BF\u30B0\uFF08is_system\uFF09\u306F\u30B5\u30FC\u30D0\u304C\u65AD\u308A\u307E\u3059\u3002\u30B5\u30FC\u30D0\u306F\u7406\u7531\u3092\u4F0F\u305B\u3066 400 \u3092\u8FD4\u3059\u306E\u3067\u3001\u305D\u306E\u3068\u304D\u306F\u30BF\u30B0\u3092\u8AAD\u3093\u3067\u8A00\u3044\u307E\u3059\uFF08\u7D42\u4E86\u30B3\u30FC\u30C9 3\uFF09\u3002\n\u9001\u308B\u524D\u306B\u5BFE\u8C61\u306E\u30BF\u30B0\u3092\u8AAD\u307F\u3001stderr \u306B\u51FA\u3057\u307E\u3059\uFF08--dry-run \u3067\u3082\u51FA\u307E\u3059\uFF09\u3002",
87
+ destructive:true,flags:[TAG_REF_FLAG],async prepare(input,ctx){return withResolved(input,{id:await tagIdOf(input,ctx,TAG_DELETE_USAGE)})},plan:input=>({method:"DELETE",path:`${TAGS_PATH}/${encodeURIComponent(requireResolved(input,"id"))}`}),plannedNotes:input=>[`\u524A\u9664\u3059\u308B\u30BF\u30B0\u306E ID: ${requireResolved(input,"id")}\uFF08\u4E2D\u8EAB\u306F twp content tag get ${requireResolved(input,"id")}\uFF09`],execute:(input,ctx)=>sendExplaining(ctx,tagDelete.plan(input),async()=>{const tag=dataRecord(
88
+ await ctx.send({method:"GET",path:`${TAGS_PATH}/${encodeURIComponent(requireResolved(input,"id"))}`}),"\u30BF\u30B0");return tag["is_system"]===true?`\u300C${String(tag["display_name"]??tag["value"]??"")}\u300D\u306F\u30B7\u30B9\u30C6\u30E0\u30BF\u30B0\u306E\u305F\u3081\u524A\u9664\u3067\u304D\u307E\u305B\u3093\u3002\u4F7F\u308F\u306A\u3044\u306A\u3089 twp content tag update <\u30BF\u30B0> --inactive \u3067\u7121\u52B9\u306B\u3057\u3066\u304F\u3060\u3055\u3044\u3002`:void 0}),invalidates:invalidateTags,
89
+ summarize:deletedAck("\u30BF\u30B0\u306E\u524A\u9664"),raw:deletedAck("\u30BF\u30B0\u306E\u524A\u9664")};var tagWriteOperations=[tagCreate,tagUpdate,tagDelete];var CONTENTS_PATH2=`${CMS_PATH}/contents`;var CATEGORIES_PATH2=`${CMS_PATH}/categories`;var TAGS_PATH2=`${CMS_PATH}/tags`;var MEDIA_FILES_PATH="/api/v2/media/files";var WRITABLE_KEYS=["title","slug","content","tag_ids","publish_start_date","publish_end_date"];var CONTENT_MAX_CHARS2=2e6;var TITLE_MAX=500;var SLUG_RE=/^[a-z0-9_-]+$/;var OPTION_TYPES=new Set(["select","radio"]);var STRING_FORMATS={date:{re:/^\d{4}-\d{2}-\d{2}$/,example:"2026-10-29"},ym:{re:/^\d{4}-\d{2}$/,example:"2026-10"},time:{re:/^\d{2}:\d{2}$/,
90
+ example:"09:30"},datetime:{re:/^\d{4}-\d{2}-\d{2}[T ]\d{2}:\d{2}/,example:"2026-10-29T09:30"}};var FORBIDDEN="\u30B3\u30F3\u30C6\u30F3\u30C4\u7BA1\u7406\u3092\u4F7F\u3046\u6A29\u9650\u304C\u3042\u308A\u307E\u305B\u3093\u3002\u30C6\u30CA\u30F3\u30C8\u306E\u30E9\u30A4\u30BB\u30F3\u30B9\u3068\u3001\u3042\u306A\u305F\u306E\u300C\u30B3\u30F3\u30C6\u30F3\u30C4\u7BA1\u7406\u300D\u306E\u6A5F\u80FD\u6A29\u9650\u3092\u30C6\u30CA\u30F3\u30C8\u7BA1\u7406\u8005\u306B\u78BA\u8A8D\u3057\u3066\u304F\u3060\u3055\u3044\u3002";
91
+ var CONFLICT="\u4ED6\u306E\u4EBA\u306E\u66F4\u65B0\u304B\u516C\u958B\u7533\u8ACB\u304C\u5148\u306B\u5165\u3063\u305F\u305F\u3081\u3001\u4E0A\u66F8\u304D\u3057\u307E\u305B\u3093\u3067\u3057\u305F\uFF08409\uFF09\u3002twp content get <\u30B3\u30F3\u30C6\u30F3\u30C4ID> \u3067\u4ECA\u306E\u5185\u5BB9\u3092\u8AAD\u307F\u76F4\u3057\u3066\u304B\u3089\u3001\u3082\u3046\u4E00\u5EA6 update \u3057\u3066\u304F\u3060\u3055\u3044\u3002";var DELETE_CONFLICT="\u4ED6\u306E\u4EBA\u306E\u66F4\u65B0\u304B\u516C\u958B\u7533\u8ACB\u304C\u5148\u306B\u5165\u3063\u305F\u305F\u3081\u3001\u524A\u9664\u3057\u307E\u305B\u3093\u3067\u3057\u305F\uFF08409\uFF09\u3002twp content get <\u30B3\
92
+ \u30F3\u30C6\u30F3\u30C4ID> \u3067\u4ECA\u306E\u5185\u5BB9\u3092\u78BA\u304B\u3081\u3066\u304B\u3089\u3001\u3082\u3046\u4E00\u5EA6 delete \u3057\u3066\u304F\u3060\u3055\u3044\u3002";var CONTENT_FILE_FLAG2={name:"--content-file",summary:"\u66F8\u304D\u8FBC\u3080\u5185\u5BB9\u306E JSON \u30D5\u30A1\u30A4\u30EB\uFF08- \u3067\u6A19\u6E96\u5165\u529B\uFF09",takesValue:true,placeholder:"<\u30D1\u30B9>"};var SKELETON_FLAG2={name:"--generate-cli-skeleton",summary:"--category \u306E\u30D5\u30A9\u30FC\u30E0\u5B9A\u7FA9\u304B\u3089 --content-file \u306E\u3072\u306A\
93
+ \u5F62\u3092\u51FA\u3057\u3066\u7D42\u4E86\u3059\u308B\uFF08\u4F5C\u6210\u3057\u306A\u3044\uFF09",takesValue:false};var CATEGORY_FLAG={name:"--category",summary:"\u4F5C\u6210\u5148\u306E\u30AB\u30C6\u30B4\u30EA\uFF08ID\u30FB\u30B3\u30FC\u30C9\u30FB\u540D\u524D\uFF09",takesValue:true,placeholder:"<\u30AB\u30C6\u30B4\u30EA>"};var CONTENT_REF_FLAG={name:"--content",summary:"\u5BFE\u8C61\u306E\u30B3\u30F3\u30C6\u30F3\u30C4\u306E ID\uFF08\u4F4D\u7F6E\u5F15\u6570\u306E\u4EE3\u308F\u308A\u306B\u4F7F\u3048\u308B\uFF09",
94
+ takesValue:true,placeholder:"<\u30B3\u30F3\u30C6\u30F3\u30C4ID>"};var VALUE_HELP="--content-file \u306F\u6B21\u306E\u30AD\u30FC\u3092\u6301\u3064 JSON \u30AA\u30D6\u30B8\u30A7\u30AF\u30C8\u3067\u3059\uFF08\u66F8\u304B\u306A\u3044\u30AD\u30FC\u306F\u9001\u308A\u307E\u305B\u3093\uFF09\u3002\n title\uFF08\u5FC5\u9808\u30FB500\u5B57\u307E\u3067\uFF09/ slug\uFF08\u82F1\u5C0F\u6587\u5B57\u30FB\u6570\u5B57\u30FB-\u30FB_\uFF09/ content\uFF08\u9805\u76EE\u540D \u2192 \u5024\uFF09/ tag_ids\uFF08\u81EA\u7531\u30BF\u30B0\u306E ID\u30FB\u5024\u30FB\u8868\u793A\u540D\u306E\u914D\u5217\uFF09\n publish_start_date / publish_end_date\uFF08\u516C\u958B\u671F\u9593\uFF09\ncontent \u306E\u5024\u306F\u9805\u76EE\u306E\u578B\u3054\u3068\u306B\u6B21\u306E\u5F62\u3067\u66F8\u304D\u307E\u3059\uFF08\u9805\u76EE\u540D\u306F twp content category get <\u30AB\u30C6\u30B4\u30EA> \u306E name \u5217\uFF09\u3002\n text / textarea / url: \u6587\u5B57\u5217 \uFF0F number: \u6570\u5024 \uFF0F boolean: true / false\n date: 2026-10-29 \uFF0F datetime: 2026-10-29T09:30 \uFF0F time: 09:30 \uFF0F ym: 2026-10\n select / radio: \
95
+ \u9078\u629E\u80A2\u306E key\uFF08\u8868\u793A\u540D\u3067\u3082\u53EF\uFF09\uFF0F checkbox: \u9078\u629E\u80A2\u306E key \u306E\u914D\u5217\uFF08\u9078\u629E\u80A2\u306E\u7121\u3044\u9805\u76EE\u306F true / false\uFF09\n richtext: HTML \u306E\u6587\u5B57\u5217\uFF08Markdown \u306F\u5909\u63DB\u3057\u307E\u305B\u3093\u3002<p>\u2026</p> \u306E\u5F62\u3067\u66F8\u3044\u3066\u304F\u3060\u3055\u3044\uFF09\n tag: \u81EA\u7531\u30BF\u30B0\uFF08twp content tag free\uFF09\u306E ID\u30FB\u5024\u30FB\u8868\u793A\u540D\u306E\u914D\u5217\uFF08\u8868\u793A\u540D\u304C\u91CD\u306A\u308B\u3068\u304D\u306F ID \u304B\u5024\u3067\u6307\u5B9A\u3057\u3066\u304F\u3060\u3055\u3044\uFF09\n file_reference: \u30D5\u30A1\u30A4\u30EB\u7BA1\u7406\u306E\u30D5\u30A1\u30A4\u30EB ID \u306E\u914D\u5217\uFF08ID \u3060\u3051\u66F8\u3051\u3070\u3001\u30D5\u30A1\u30A4\u30EB\u540D\u306A\u3069\u306F\u8AAD\u307F\u306B\u884C\u3063\u3066\u57CB\u3081\u307E\u3059\uFF09\n \u4E0A\u8A18\u4EE5\u5916\u306E\u578B\uFF08attachment_file / user / project / customer \u7B49\uFF09\u306F\u753B\u9762\u306E\u30B3\u30F3\u30C6\u30F3\u30C4\u306E\u30AB\u30C6\u30B4\u30EA\u3067\u306F\u4F5C\u308C\u306A\u3044\u305F\u3081\u3001\n \u540D\u524D\u306E\u89E3\u6C7A\u3084\u30A2\u30C3\u30D7\u30ED\u30FC\u30C9\u306F\u305B\u305A\u3001\u66F8\u3044\u305F\u5024\uFF08ID \u7B49\uFF09\u3092\u305D\u306E\u307E\u307E\u9001\u308A\u307E\u3059\u3002\n\u5FC5\u9808\u9805\u76EE\u306E\u6B20\u843D\u30FB\u9078\u629E\u80A2\u306B\u7121\u3044\u5024\u30FB\u578B\u306E\u9055\u3044\u30FB\u30D5\u30A9\u30FC\u30E0\u5B9A\u7FA9\u306B\u7121\u3044\u9805\u76EE\u540D\u306F\u3001\u9001\u308B\u524D\u306B\u6B62\u3081\u307E\u3059\uFF08\u7D42\u4E86\u30B3\u30FC\u30C9 2\uFF09\u3002";
96
+ function dataRecord2(body,what){const row=isRecord(body)?body["data"]:void 0;if(!isRecord(row))throw new ApiResponseError(`${what}\u306E\u5FDC\u7B54\u306B data \u304C\u3042\u308A\u307E\u305B\u3093\u3002\u63A5\u7D9A\u5148\u3092\u78BA\u8A8D\u3057\u3066\u304F\u3060\u3055\u3044\u3002`);return row}function formFields2(category){const schema=category["schema"];const fields=isRecord(schema)?schema["form_fields"]:void 0;return Array.isArray(fields)?fields.filter(isRecord).filter(f=>typeof f["name"]==="s\
97
+ tring"&&f["name"]!==""):[]}function optionsOf(field){const options=field["options"];if(!Array.isArray(options))return[];return options.filter(isRecord).filter(o=>o["is_legacy"]!==true).map(o=>({key:String(o["key"]),value:String(o["value"]??o["key"])}))}var labelOf=field=>{const name=String(field["name"]);const display=field["display_name"];return typeof display==="string"&&display!==""&&display!==name?`${display}\uFF08${name}\uFF09`:name};function isEmpty(value){return value===null||value===void 0||
98
+ typeof value==="string"&&value.trim()===""||Array.isArray(value)&&value.length===0}function normalizeFieldValue(field,value){const type=String(field["type"]);const label=labelOf(field);if(value===null)return{value:null};if(OPTION_TYPES.has(type)){const options=optionsOf(field);if(typeof value!=="string"&&typeof value!=="number")return{error:`${label} \u306F\u9078\u629E\u80A2\u306E key \u30921\u3064\u66F8\u3044\u3066\u304F\u3060\u3055\u3044`};const raw=String(value);if(raw==="")return{value:""};const hit=options.
99
+ find(o=>o.key===raw)??options.find(o=>o.value===raw);if(hit===void 0)return{error:`${label} \u306B\u9078\u629E\u80A2\u306B\u7121\u3044\u5024\u3067\u3059: ${raw}\uFF08\u9078\u3079\u308B\u306E\u306F ${options.map(o=>`${o.key}=${o.value}`).join(" / ")}\uFF09`};return{value:hit.key}}if(type==="checkbox"){const options=optionsOf(field);if(options.length===0){return typeof value==="boolean"?{value}:{error:`${label} \u306F true \u304B false \u3067\u66F8\u3044\u3066\u304F\u3060\u3055\u3044`}}if(!Array.isArray(
100
+ value))return{error:`${label} \u306F\u9078\u629E\u80A2\u306E key \u306E\u914D\u5217\u3067\u66F8\u3044\u3066\u304F\u3060\u3055\u3044\uFF08\u4F8B: ["${options[0]?.key??"a"}"]\uFF09`};const keys=[];for(const v of value){const raw=String(v);const hit=options.find(o=>o.key===raw)??options.find(o=>o.value===raw);if(hit===void 0)return{error:`${label} \u306B\u9078\u629E\u80A2\u306B\u7121\u3044\u5024\u3067\u3059: ${raw}\uFF08\u9078\u3079\u308B\u306E\u306F ${options.map(o=>`${o.key}=${o.value}`).join(" /\
101
+ ")}\uFF09`};if(!keys.includes(hit.key))keys.push(hit.key)}return{value:keys}}if(type==="boolean")return typeof value==="boolean"?{value}:{error:`${label} \u306F true \u304B false \u3067\u66F8\u3044\u3066\u304F\u3060\u3055\u3044`};if(type==="number"){if(value==="")return{value:""};const n=typeof value==="number"?value:typeof value==="string"&&value.trim()!==""?Number(value):Number.NaN;if(!Number.isFinite(n))return{error:`${label} \u306F\u6570\u5024\u3067\u66F8\u3044\u3066\u304F\u3060\u3055\u3044: ${JSON.
102
+ stringify(value)}`};const min=field["min_value"];const max=field["max_value"];if(typeof min==="number"&&n<min)return{error:`${label} \u306F ${min} \u4EE5\u4E0A\u3067\u3059: ${n}`};if(typeof max==="number"&&n>max)return{error:`${label} \u306F ${max} \u4EE5\u4E0B\u3067\u3059: ${n}`};return{value:n}}const format=STRING_FORMATS[type];if(format!==void 0){if(typeof value!=="string")return{error:`${label} \u306F\u6587\u5B57\u5217\u3067\u66F8\u3044\u3066\u304F\u3060\u3055\u3044\uFF08\u4F8B: ${format.example}\
103
+ \uFF09`};if(value!==""&&!format.re.test(value))return{error:`${label} \u306E\u5F62\u304C\u9055\u3044\u307E\u3059: ${value}\uFF08\u4F8B: ${format.example}\uFF09`};return{value}}if(type==="text"||type==="textarea"||type==="url"||type==="richtext"){if(typeof value!=="string")return{error:`${label} \u306F\u6587\u5B57\u5217\u3067\u66F8\u3044\u3066\u304F\u3060\u3055\u3044`};const maxLength=field["max_length"];if(typeof maxLength==="number"&&type!=="richtext"&&[...value].length>maxLength)return{error:`${label}\
104
+ \u306F ${maxLength} \u6587\u5B57\u307E\u3067\u3067\u3059\uFF08${[...value].length} \u6587\u5B57\uFF09`};return{value}}if(type==="tag"||type==="file_reference"){if(!Array.isArray(value))return{error:`${label} \u306F\u914D\u5217\u3067\u66F8\u3044\u3066\u304F\u3060\u3055\u3044\uFF08\u4F8B: ["<ID>"]\uFF09`};return{value}}return{value}}function parseContentFile(text,source,mode,fields){const parsed=contentObject(text,source);const errors=[];const unknownKeys=Object.keys(parsed).filter(k=>!WRITABLE_KEYS.
105
+ includes(k));if(unknownKeys.length>0){errors.push(`\u66F8\u3051\u306A\u3044\u30AD\u30FC\u304C\u3042\u308A\u307E\u3059: ${unknownKeys.join(", ")}\uFF08\u66F8\u3051\u308B\u306E\u306F ${WRITABLE_KEYS.join(" / ")}\u3002\u30AB\u30C6\u30B4\u30EA\u306F --category \u3067\u6307\u5B9A\u3057\u3001\u4F5C\u6210\u5F8C\u306F\u5909\u3048\u3089\u308C\u307E\u305B\u3093\uFF09`)}const out={};if("title"in parsed||mode==="create"){const title=parsed["title"];if(typeof title!=="string"||title.trim()==="")errors.push("\
106
+ title\uFF08\u30BF\u30A4\u30C8\u30EB\uFF09\u306F\u5FC5\u9808\u3067\u3059");else if([...title].length>TITLE_MAX)errors.push(`title \u306F ${TITLE_MAX} \u6587\u5B57\u307E\u3067\u3067\u3059`);else out["title"]=title}if("slug"in parsed){const slug=parsed["slug"];if(slug===null||slug==="")out["slug"]=null;else if(typeof slug!=="string"||!SLUG_RE.test(slug)||slug.length>255)errors.push(`slug \u306F\u82F1\u5C0F\u6587\u5B57\u30FB\u6570\u5B57\u30FB-\u30FB_ \u3067\u66F8\u3044\u3066\u304F\u3060\u3055\u3044: ${JSON.
107
+ stringify(slug)}`);else out["slug"]=slug}for(const key of["publish_start_date","publish_end_date"]){if(!(key in parsed))continue;const value=parsed[key]===""?null:parsed[key];if(value!==null&&(typeof value!=="string"||Number.isNaN(Date.parse(value))))errors.push(`${key} \u306F\u65E5\u6642\u306E\u6587\u5B57\u5217\u304B null \u3067\u66F8\u3044\u3066\u304F\u3060\u3055\u3044: ${JSON.stringify(value)}`);else out[key]=value}if("tag_ids"in parsed){const tags=parsed["tag_ids"];if(tags!==null&&(!Array.isArray(
108
+ tags)||tags.some(t=>typeof t!=="string"||t.trim()==="")))errors.push("tag_ids \u306F\u30BF\u30B0\u306E ID\u30FB\u5024\u30FB\u8868\u793A\u540D\u306E\u914D\u5217\u3067\u66F8\u3044\u3066\u304F\u3060\u3055\u3044");else out["tag_ids"]=tags??[]}if("content"in parsed){const values=parsed["content"];if(!isRecord(values)){errors.push("content \u306F\u300C\u9805\u76EE\u540D \u2192 \u5024\u300D\u306E\u30AA\u30D6\u30B8\u30A7\u30AF\u30C8\u3067\u66F8\u3044\u3066\u304F\u3060\u3055\u3044")}else{const byName=new Map(
109
+ fields.map(f=>[String(f["name"]),f]));const content={};for(const[name,value]of Object.entries(values)){const field=byName.get(name);if(field===void 0){errors.push(`content.${name} \u306F\u3053\u306E\u30AB\u30C6\u30B4\u30EA\u306E\u30D5\u30A9\u30FC\u30E0\u5B9A\u7FA9\u306B\u3042\u308A\u307E\u305B\u3093\uFF08\u9805\u76EE\u540D\u306F ${[...byName.keys()].join(" / ")||"\uFF08\u9805\u76EE\u306A\u3057\uFF09"}\uFF09`);continue}const result=normalizeFieldValue(field,value);if("error"in result)errors.push(
110
+ result.error);else content[name]=result.value}out["content"]=content}}else if(mode==="create"){out["content"]={}}if(errors.length>0)throw new UsageError(`${source} \u306B\u9001\u308C\u306A\u3044\u5024\u304C\u3042\u308A\u307E\u3059:
111
+ ${errors.map(e=>` - ${e}`).join("\n")}`,"--generate-cli-skeleton \u3067\u3072\u306A\u5F62\u3068\u5404\u9805\u76EE\u306E\u578B\u3092\u51FA\u305B\u307E\u3059\u3002");return out}function missingRequired(fields,content){return fields.filter(f=>f["required"]===true&&isEmpty(content[String(f["name"])])).map(labelOf)}async function tagRows2(ctx,cache){if(cache.rows!==void 0)return cache.rows;const body=await ctx.send({method:"GET",path:`${TAGS_PATH2}/free`});const list=isRecord(body)?body["data"]:void 0;
112
+ if(!Array.isArray(list))throw new ApiResponseError("\u81EA\u7531\u30BF\u30B0\u4E00\u89A7\u306E\u5FDC\u7B54\u306B data \u914D\u5217\u304C\u3042\u308A\u307E\u305B\u3093\u3002\u63A5\u7D9A\u5148\u3092\u78BA\u8A8D\u3057\u3066\u304F\u3060\u3055\u3044\u3002");cache.rows=list.filter(isRecord);return cache.rows}async function tagIdOf2(ref,where,ctx,cache){const value=ref.trim();const rows=await tagRows2(ctx,cache);if(UUID_RE.test(value)){if(rows.some(r=>r["id"]===value))return value;throw new UsageError(
113
+ `${where} \u306E\u30BF\u30B0 ${value} \u306F\u81EA\u7531\u30BF\u30B0\u306E\u4E00\u89A7\u306B\u3042\u308A\u307E\u305B\u3093\uFF08\u753B\u9762\u306E\u30BF\u30B0\u6B04\u3067\u8868\u793A\u3067\u304D\u306A\u3044\u305F\u3081\u4ED8\u3051\u307E\u305B\u3093\uFF09`,"\u4ED8\u3051\u3089\u308C\u308B\u30BF\u30B0\u306F twp content tag free \u3067\u78BA\u8A8D\u3067\u304D\u307E\u3059\u3002")}const byValue=rows.filter(r=>r["value"]===value);const hits=byValue.length>0?byValue:rows.filter(r=>r["display_name"]===value);
114
+ if(hits.length===1&&typeof hits[0]?.["id"]==="string")return hits[0]["id"];if(hits.length===0)throw new UsageError(`${where} \u306E\u30BF\u30B0\u304C\u898B\u3064\u304B\u308A\u307E\u305B\u3093: ${value}`,"\u4ED8\u3051\u3089\u308C\u308B\u30BF\u30B0\u306F twp content tag free \u3067\u78BA\u8A8D\u3067\u304D\u307E\u3059\uFF08ID\u30FB\u5024\u30FB\u8868\u793A\u540D\u3067\u6307\u5B9A\u3067\u304D\u307E\u3059\uFF09\u3002");throw new UsageError(`${where} \u306E\u30BF\u30B0\u300C${value}\u300D\u306B\u5F53\u305F\u308B\u30BF\u30B0\u304C ${hits.
115
+ length} \u4EF6\u3042\u308A\u307E\u3059: ${hits.map(h=>`${String(h["id"])}\uFF08${String(h["scope"]??"")}\uFF09`).join(" / ")}`,"ID \u304B\u5024\uFF08value\uFF09\u3067\u6307\u5B9A\u3057\u76F4\u3057\u3066\u304F\u3060\u3055\u3044\u3002")}async function fileReferenceOf(ref,where,ctx){if(isRecord(ref)&&typeof ref["id"]==="string"&&typeof ref["file_name"]==="string"&&typeof ref["content_type"]==="string")return ref;const id=isRecord(ref)?ref["id"]:ref;if(typeof id!=="string"||id.trim()===""||!isSafePathSegment(
116
+ id.trim())){throw new UsageError(`${where} \u306F\u30D5\u30A1\u30A4\u30EB\u7BA1\u7406\u306E\u30D5\u30A1\u30A4\u30EB ID \u3067\u66F8\u3044\u3066\u304F\u3060\u3055\u3044: ${JSON.stringify(ref)}`,"\u30D5\u30A1\u30A4\u30EB\u306E ID \u306F twp media list \u306E id \u5217\u3067\u3059\u3002")}try{const file=dataRecord2(await ctx.send({method:"GET",path:`${MEDIA_FILES_PATH}/${encodeURIComponent(id.trim())}`}),"\u30D5\u30A1\u30A4\u30EB");return pick(file,["id","file_name","content_type","file_size","thum\
117
+ bnail_url","public_url"])}catch(error){if(error instanceof ApiError&&error.status===404)throw new UsageError(`${where} \u306E\u30D5\u30A1\u30A4\u30EB\u304C\u898B\u3064\u304B\u308A\u307E\u305B\u3093: ${id}`,"\u30D5\u30A1\u30A4\u30EB\u306E ID \u306F twp media list \u306E id \u5217\u3067\u3059\u3002");throw error}}async function resolveReferences(body,fields,ctx){const cache={};const out={...body};if(Array.isArray(body["tag_ids"])){const ids=[];for(const t of body["tag_ids"])ids.push(await tagIdOf2(
118
+ t,"tag_ids",ctx,cache));out["tag_ids"]=ids}if(isRecord(body["content"])){const content={...body["content"]};for(const field of fields){const name=String(field["name"]);const value=content[name];if(!Array.isArray(value))continue;if(field["type"]==="tag"){const ids=[];for(const v of value)ids.push(await tagIdOf2(String(v),`content.${name}`,ctx,cache));content[name]=ids}else if(field["type"]==="file_reference"){const files=[];for(const v of value)files.push(await fileReferenceOf(v,`content.${name}`,
119
+ ctx));content[name]=files}}out["content"]=content}return out}function contentIdArg(input,usage){const id=singleRef(input,{flag:CONTENT_REF_FLAG.name,label:"\u30B3\u30F3\u30C6\u30F3\u30C4\u306E ID",usage});if(!isSafePathSegment(id))throw new UsageError(`\u30B3\u30F3\u30C6\u30F3\u30C4\u306E ID \u3068\u3057\u3066\u4F7F\u3048\u306A\u3044\u5024\u3067\u3059: ${id}`,"\u30B3\u30F3\u30C6\u30F3\u30C4\u306E ID \u306F twp content list \u306E id \u5217\u3067\u78BA\u8A8D\u3067\u304D\u307E\u3059\u3002");return id}
120
+ var contentPath=id=>`${CONTENTS_PATH2}/${encodeURIComponent(id)}`;var categoryPath=id=>`${CATEGORIES_PATH2}/${encodeURIComponent(id)}`;async function categoryIdOf2(ref,ctx){const value=ref.trim();if(UUID_RE.test(value))return value;const id=(await ctx.resolver.cmsCategory(value,CATEGORY_FLAG.name)).id;if(!isSafePathSegment(id))throw new ApiResponseError(`\u30B5\u30FC\u30D0\u304C\u8FD4\u3057\u305F\u30AB\u30C6\u30B4\u30EA\u306E ID \u3092\u30D1\u30B9\u306B\u4F7F\u3048\u307E\u305B\u3093: ${id}\u3002\u63A5\u7D9A\u5148\u3092\u78BA\
121
+ \u8A8D\u3057\u3066\u304F\u3060\u3055\u3044\u3002`);return id}function contentObject(text,source){let parsed;try{parsed=JSON.parse(text)}catch(error){throw new UsageError(`${source} \u3092 JSON \u3068\u3057\u3066\u8AAD\u3081\u307E\u305B\u3093: ${error.message}`,"--generate-cli-skeleton \u3067\u3072\u306A\u5F62\u3092\u51FA\u305B\u307E\u3059\u3002")}if(!isRecord(parsed))throw new UsageError(`${source} \u306F JSON \u30AA\u30D6\u30B8\u30A7\u30AF\u30C8\u3067\u66F8\u3044\u3066\u304F\u3060\u3055\u3044`);
122
+ return parsed}async function readContentFile(input,usage){const text=await readBody(input,{flag:"--content-json",fileFlag:CONTENT_FILE_FLAG2.name,label:"\u30B3\u30F3\u30C6\u30F3\u30C4\u306E\u5185\u5BB9",maxChars:CONTENT_MAX_CHARS2,usage});if(text===void 0)throw new UsageError("\u66F8\u304D\u8FBC\u3080\u5185\u5BB9\u3092 --content-file <\u30D1\u30B9> \u3067\u6307\u5B9A\u3057\u3066\u304F\u3060\u3055\u3044","\u3072\u306A\u5F62\u306F twp content create --category <\u30AB\u30C6\u30B4\u30EA> --generate-cli-skeleton \u3067\u51FA\u305B\u307E\u3059\u3002");
123
+ contentObject(text,`--content-file ${input.flags.get(CONTENT_FILE_FLAG2.name)??""}`);return text}function readVersion(content){const version=content["version"];return typeof version==="number"&&Number.isSafeInteger(version)&&version>=1?version:void 0}async function sendGuarded(ctx,plan,conflict=CONFLICT){try{return await ctx.send(plan)}catch(error){if(error instanceof ApiError&&error.status===409)throw new ApiRejectedError(conflict);throw error}}function serverMessage2(body){return isRecord(body)&&
124
+ typeof body["message"]==="string"?[body["message"]]:[]}var RESULT_COLUMNS=["id","title","slug","category_id","status","publish_status","version","updated_at"];function placeholderOf(field){const type=String(field["type"]);const def=field["default_value"];if(def!==void 0&&def!==null&&def!==""){if(type==="number")return Number(def);if(type==="boolean"||type==="checkbox"&&optionsOf(field).length===0)return def==="true"||def===true;return def}if(type==="checkbox")return optionsOf(field).length>0?[]:
125
+ false;if(type==="boolean")return false;if(type==="number")return null;if(type==="tag"||type==="file_reference")return[];return""}function contentSkeleton(category){return{title:"",slug:null,content:Object.fromEntries(formFields2(category).map(f=>[String(f["name"]),placeholderOf(f)])),tag_ids:[],publish_start_date:null,publish_end_date:null}}function skeletonNotes(category){const fields=formFields2(category);return[`\u30AB\u30C6\u30B4\u30EA\u300C${String(category["name"]??"")}\u300D\u306E\u30D5\u30A9\u30FC\u30E0\u5B9A\u7FA9\u304B\u3089\u3072\u306A\u5F62\u3092\u4F5C\u308A\u307E\u3057\u305F\u3002\
126
+ \u57CB\u3081\u3066\u304B\u3089 twp content create --category ${String(category["code"]??category["id"])} --content-file <\u30D1\u30B9> \u3067\u9001\u3063\u3066\u304F\u3060\u3055\u3044\u3002`,...fields.map(f=>{const options=optionsOf(f);return` ${labelOf(f)}: ${String(f["type"])}${f["required"]===true?"\u30FB\u5FC5\u9808":""}${options.length>0?`\u30FB\u9078\u629E\u80A2 ${options.map(o=>`${o.key}=${o.value}`).join(" / ")}`:""}`})]}function writeResult2(value){if(!isRecord(value)||typeof value["sk\
127
+ eleton"]!=="boolean")throw new Error("\u5185\u90E8\u30A8\u30E9\u30FC: content \u306E\u5FDC\u7B54\u306B\u5370\u304C\u3042\u308A\u307E\u305B\u3093\uFF08execute \u306E\u914D\u7DDA\u6F0F\u308C\uFF09");return value}var HOOK_SECRETS2="\u516C\u958BHook \u306E\u30D8\u30C3\u30C0\u5024\uFF08\u8A8D\u8A3C\u30D8\u30C3\u30C0\u7B49\uFF09\u3092\u542B\u307F\u3046\u308B";var CREATE_USAGE="twp content create --category <\u30AB\u30C6\u30B4\u30EA> (--content-file <\u30D1\u30B9> | --generate-cli-skeleton)";var contentCreateOperation={
128
+ name:"create",summary:"\u30B3\u30F3\u30C6\u30F3\u30C4\u3092\u4F5C\u6210\u3059\u308B\uFF08\u5185\u5BB9\u306F --content-file \u306E JSON\u30FB\u3072\u306A\u5F62\u306F --generate-cli-skeleton\uFF09",usage:CREATE_USAGE,description:`POST /api/v2/cms/contents \u3067\u30B3\u30F3\u30C6\u30F3\u30C4\u3092\u4E0B\u66F8\u304D\u3068\u3057\u3066\u4F5C\u308A\u307E\u3059\uFF08\u516C\u958B\u306F\u3057\u307E\u305B\u3093\uFF09\u3002
129
+ \u9001\u308B\u524D\u306B\u30AB\u30C6\u30B4\u30EA\u306E\u30D5\u30A9\u30FC\u30E0\u5B9A\u7FA9\uFF08GET /api/v2/cms/categories/{id}\uFF09\u3092\u8AAD\u307F\u3001\u9805\u76EE\u3092\u691C\u67FB\u3057\u3001\u30BF\u30B0\u30FB\u30D5\u30A1\u30A4\u30EB\u53C2\u7167\u306E\u540D\u524D\u3092 ID \u306B\u76F4\u3057\u307E\u3059\u3002
130
+
131
+ ${VALUE_HELP}
132
+
133
+ --generate-cli-skeleton \u306F --category \u306E\u30D5\u30A9\u30FC\u30E0\u5B9A\u7FA9\u304B\u3089\u3001\u5404\u9805\u76EE\u3092\u7A7A\u306B\u3057\u305F\u3072\u306A\u5F62\u3092\u6A19\u6E96\u51FA\u529B\u3078\u51FA\u3057\u3066\u7D42\u4E86\u3057\u307E\u3059\uFF08\u4F5C\u6210\u3057\u307E\u305B\u3093\uFF09\u3002
134
+ \u5404\u9805\u76EE\u306E\u578B\u30FB\u5FC5\u9808\u30FB\u9078\u629E\u80A2\u306F stderr \u306B\u51FA\u307E\u3059\u3002
135
+ \u4F8B: twp content create --category news --generate-cli-skeleton --output json > news.json
136
+ twp content create --category news --content-file news.json`,flags:[CATEGORY_FLAG,CONTENT_FILE_FLAG2,SKELETON_FLAG2],async prepare(input,ctx){if(input.args.length>0)throw new UsageError(`\u4F4D\u7F6E\u5F15\u6570\u306F\u53D6\u308A\u307E\u305B\u3093: ${input.args.join(" ")}`,CREATE_USAGE);const category=nonEmpty(input.flags,CATEGORY_FLAG.name);if(category===void 0)throw new UsageError("\u4F5C\u6210\u5148\u306E\u30AB\u30C6\u30B4\u30EA\u3092 --category \u3067\u6307\u5B9A\u3057\u3066\u304F\u3060\u3055\u3044",
137
+ "\u30AB\u30C6\u30B4\u30EA\u306F twp content category list \u3067\u78BA\u8A8D\u3067\u304D\u307E\u3059\u3002");const skeleton=input.flags.has(SKELETON_FLAG2.name);if(skeleton&&input.flags.has(CONTENT_FILE_FLAG2.name))throw new UsageError("--generate-cli-skeleton \u3068 --content-file \u306F\u540C\u6642\u306B\u6307\u5B9A\u3067\u304D\u307E\u305B\u3093",CREATE_USAGE);const resolved={category_id:await categoryIdOf2(category,ctx)};if(!skeleton)resolved["text"]=await readContentFile(input,CREATE_USAGE);
138
+ return withResolved(input,resolved)},plan(input){if(input.flags.has(SKELETON_FLAG2.name))return{method:"GET",path:categoryPath(requireResolved(input,"category_id"))};return{method:"POST",path:CONTENTS_PATH2,body:{category_id:requireResolved(input,"category_id"),...JSON.parse(requireResolved(input,"text"))}}},plannedNotes:input=>input.flags.has(SKELETON_FLAG2.name)?["\u30AB\u30C6\u30B4\u30EA\u306E\u30D5\u30A9\u30FC\u30E0\u5B9A\u7FA9\u3092\u8AAD\u3080\u3060\u3051\u3067\u3001\u4F5C\u6210\u3057\u307E\u305B\u3093\u3002"]:
139
+ ["\u3053\u306E\u524D\u306B\u30AB\u30C6\u30B4\u30EA\u306E\u30D5\u30A9\u30FC\u30E0\u5B9A\u7FA9\uFF08GET /api/v2/cms/categories/{id}\uFF09\u3092\u8AAD\u3093\u3067\u9805\u76EE\u3092\u691C\u67FB\u3057\u3001\u30BF\u30B0\u30FB\u30D5\u30A1\u30A4\u30EB\u53C2\u7167\u306E\u540D\u524D\u3092 ID \u306B\u76F4\u3057\u307E\u3059\uFF08GET /api/v2/cms/tags/free\u30FBGET /api/v2/media/files/{id}\uFF09\u3002"],async execute(input,ctx){const categoryId=requireResolved(input,"category_id");const category=dataRecord2(await ctx.
140
+ send({method:"GET",path:categoryPath(categoryId)}),"\u30AB\u30C6\u30B4\u30EA");if(input.flags.has(SKELETON_FLAG2.name))return{skeleton:true,body:category};const fields=formFields2(category);const parsed=parseContentFile(requireResolved(input,"text"),`--content-file ${input.flags.get(CONTENT_FILE_FLAG2.name)??""}`,"create",fields);const missing=missingRequired(fields,parsed["content"]);if(missing.length>0)throw new UsageError(`\u5FC5\u9808\u9805\u76EE\u304C\u7A7A\u3067\u3059: ${missing.join(", ")}`,
141
+ "--generate-cli-skeleton \u3067\u3072\u306A\u5F62\u3068\u5FC5\u9808\u9805\u76EE\u3092\u51FA\u305B\u307E\u3059\u3002");const body=await resolveReferences(parsed,fields,ctx);return{skeleton:false,body:await ctx.send({method:"POST",path:CONTENTS_PATH2,body:{category_id:categoryId,...body}})}},summarize(value){const result=writeResult2(value);return result.skeleton?contentSkeleton(result.body):pick(dataRecord2(result.body,"\u30B3\u30F3\u30C6\u30F3\u30C4\u306E\u4F5C\u6210"),RESULT_COLUMNS)},raw(value){
142
+ const result=writeResult2(value);return result.skeleton?contentSkeleton(result.body):dataRecord2(result.body,"\u30B3\u30F3\u30C6\u30F3\u30C4\u306E\u4F5C\u6210")},notes(value){const result=writeResult2(value);return result.skeleton?skeletonNotes(result.body):serverMessage2(result.body)},sensitiveBody:HOOK_SECRETS2};var UPDATE_USAGE="twp content update <\u30B3\u30F3\u30C6\u30F3\u30C4ID> --content-file <\u30D1\u30B9>";var contentUpdateOperation={name:"update",summary:"\u30B3\u30F3\u30C6\u30F3\u30C4\u3092\u66F8\u304D\u63DB\u3048\u308B\uFF08\u30D5\u30A1\u30A4\u30EB\u306B\u66F8\u3044\u305F\u9805\u76EE\u3060\u3051\u3092\u5909\u3048\u308B\uFF09",
143
+ usage:UPDATE_USAGE,description:'PUT /api/v2/cms/contents/{id} \u3067\u30B3\u30F3\u30C6\u30F3\u30C4\u306E\u4E0B\u66F8\u304D\u3092\u66F8\u304D\u63DB\u3048\u307E\u3059\u3002\n\u30B5\u30FC\u30D0\u306F\u672C\u6587\uFF08content\uFF09\u3092\u4E38\u3054\u3068\u7F6E\u304D\u63DB\u3048\u308B\u306E\u3067\u3001\u4ECA\u306E\u672C\u6587\u3092\u8AAD\u307F\uFF08GET /api/v2/cms/contents/{id}\uFF09\u3001\u30D5\u30A1\u30A4\u30EB\u306B\u66F8\u3044\u305F\u9805\u76EE\u3060\u3051\u3092\u91CD\u306D\u3066\u9001\u308A\u307E\u3059\u3002\n\u66F8\u304B\u306A\u304B\u3063\u305F\u30AD\u30FC\u30FB\u9805\u76EE\u306F\u5909\u308F\u308A\u307E\u305B\u3093\u3002\u9805\u76EE\u3092\u7A7A\u306B\u3059\u308B\u306B\u306F null \u304B "" \u3092\u66F8\u304D\u307E\u3059\uFF08\u5FC5\u9808\u9805\u76EE\u306F\u7A7A\u306B\u3067\u304D\u307E\u305B\u3093\u3002slug \u3092\u7A7A\u306B\u3059\u308B\u3068\u30BF\u30A4\u30C8\u30EB\u304B\u3089\u63A1\u756A\u3057\u76F4\u3055\u308C\u307E\u3059\uFF09\u3002\ntag_ids \u306F\u66F8\u304F\u3068\u4E38\u3054\u3068\u7F6E\u304D\u63DB\u308F\u308A\u307E\u3059\u3002\u30AB\u30C6\u30B4\u30EA\u306F\u5909\u3048\u3089\u308C\u307E\u305B\u3093\u3002\u516C\u958B\u4E2D\u306E\u30B3\u30F3\u30C6\u30F3\u30C4\u306F\u300C\u672A\u516C\u958B\u306E\u5909\u66F4\u3042\u308A\u300D\u306B\u306A\u308A\u307E\u3059\uFF08\u516C\u958B\u306F\u5225\u306E\u64CD\u4F5C\uFF09\u3002\n\u627F\u8A8D\u5F85\u3061\uFF08pending_review\uFF09\u306E\u30B3\u30F3\u30C6\u30F3\u30C4\u306F\u7DE8\u96C6\u3067\u304D\u307E\u305B\u3093\u3002\n\u9001\u308B\u76F4\u524D\u306B\u7248\u3092\u8AAD\u307F\u76F4\u3057\u3001\u8AAD\u3093\u3060\u5F8C\u306B\u4ED6\u306E\u66F4\u65B0\u304C\u5165\u3063\u3066\u3044\u308C\u3070\u9001\u3089\u305A\u306B\u7D42\u4E86\u30B3\u30FC\u30C9 3 \u3067\u7D42\u308F\u308A\u307E\u3059\uFF08\u30B5\u30FC\u30D0\u306E 409 \u3082\u540C\u3058\u6271\u3044\uFF09\u3002\u8AAD\u307F\u76F4\u3057\u3066\u3084\u308A\u76F4\u3057\u3066\u304F\u3060\u3055\u3044\u3002\n\u8AAD\u3093\u3060\u7248\uFF08version\uFF09\u3082\u4E00\u7DD2\u306B\u9001\u308A\u3001\u30B5\u30FC\u30D0\u306F\u305D\u306E\u7248\u306E\u307E\u307E\u306E\u3068\u304D\u3060\u3051\u66F8\u304D\u8FBC\u307F\u307E\u3059\uFF08\u305D\u308C\u3088\u308A\u524D\u306B\u5165\u3063\u305F\u66F4\u65B0\u306F 409\
144
+ \uFF09\u3002\n\n'+VALUE_HELP,flags:[CONTENT_REF_FLAG,CONTENT_FILE_FLAG2],async prepare(input){const id=contentIdArg(input,UPDATE_USAGE);return withResolved(input,{id,text:await readContentFile(input,UPDATE_USAGE)})},plan:input=>({method:"PUT",path:contentPath(requireResolved(input,"id")),body:JSON.parse(requireResolved(input,"text"))}),plannedNotes:()=>["\u3053\u306E\u524D\u306B\u4ECA\u306E\u30B3\u30F3\u30C6\u30F3\u30C4\u3068\u30AB\u30C6\u30B4\u30EA\u306E\u30D5\u30A9\u30FC\u30E0\u5B9A\u7FA9\u3092\u8AAD\u307F\u3001\u30D5\u30A1\u30A4\u30EB\u306B\u66F8\u3044\u305F\u9805\u76EE\u3092\u4ECA\u306E\u672C\u6587\u306B\u91CD\u306D\u3066\u3001\u8AAD\u3093\u3060\u7248\uFF08version\uFF09\u3068\u4E00\u7DD2\u306B\u9001\u308A\u307E\u3059\uFF08--dry-run \u306E\u672C\u6587\u306F\u30D5\u30A1\u30A4\u30EB\u306E\u5024\u306E\u307E\u307E\u3067\u3059\uFF09\u3002"],
145
+ async execute(input,ctx){const id=requireResolved(input,"id");const current=dataRecord2(await ctx.send({method:"GET",path:contentPath(id)}),"\u30B3\u30F3\u30C6\u30F3\u30C4");if(current["is_editable"]===false){throw new ApiRejectedError(`\u3053\u306E\u30B3\u30F3\u30C6\u30F3\u30C4\u306F\u7DE8\u96C6\u3067\u304D\u307E\u305B\u3093: ${typeof current["not_editable_reason"]==="string"?current["not_editable_reason"]:"\uFF08\u7406\u7531\u4E0D\u660E\uFF09"}`)}const categoryId=current["category_id"];if(typeof categoryId!==
146
+ "string"||!isSafePathSegment(categoryId))throw new ApiResponseError("\u30B3\u30F3\u30C6\u30F3\u30C4\u306E\u5FDC\u7B54\u306B category_id \u304C\u3042\u308A\u307E\u305B\u3093\u3002\u63A5\u7D9A\u5148\u3092\u78BA\u8A8D\u3057\u3066\u304F\u3060\u3055\u3044\u3002");const fields=formFields2(dataRecord2(await ctx.send({method:"GET",path:categoryPath(categoryId)}),"\u30AB\u30C6\u30B4\u30EA"));const parsed=parseContentFile(requireResolved(input,"text"),`--content-file ${input.flags.get(CONTENT_FILE_FLAG2.name)??
147
+ ""}`,"update",fields);if(Object.keys(parsed).length===0)throw new UsageError("--content-file \u306B\u66F8\u304D\u63DB\u3048\u308B\u9805\u76EE\u304C\u3042\u308A\u307E\u305B\u3093",`\u66F8\u3051\u308B\u30AD\u30FC\u306F ${WRITABLE_KEYS.join(" / ")} \u3067\u3059\u3002`);const body=await resolveReferences(parsed,fields,ctx);if(isRecord(body["content"])){const merged={...isRecord(current["content"])?current["content"]:{},...body["content"]};const missing=missingRequired(fields,merged);const cleared=missing.
148
+ filter(label=>fields.some(f=>labelOf(f)===label&&Object.hasOwn(parsed["content"],String(f["name"]))));if(cleared.length>0)throw new UsageError(`\u5FC5\u9808\u9805\u76EE\u306F\u7A7A\u306B\u3067\u304D\u307E\u305B\u3093: ${cleared.join(", ")}`);body["content"]=merged}const latest=dataRecord2(await ctx.send({method:"GET",path:contentPath(id)}),"\u30B3\u30F3\u30C6\u30F3\u30C4");if(latest["version"]!==current["version"])throw new ApiRejectedError(CONFLICT.replace("\uFF08409\uFF09",`\uFF08\u8AAD\u3093\u3060\u7248 ${String(
149
+ current["version"])} \u2192 \u4ECA\u306E\u7248 ${String(latest["version"])}\uFF09`));const version=readVersion(current);if(version!==void 0)body["version"]=version;return{skeleton:false,body:await sendGuarded(ctx,{method:"PUT",path:contentPath(id),body})}},summarize:value=>pick(dataRecord2(writeResult2(value).body,"\u30B3\u30F3\u30C6\u30F3\u30C4\u306E\u66F4\u65B0"),RESULT_COLUMNS),raw:value=>dataRecord2(writeResult2(value).body,"\u30B3\u30F3\u30C6\u30F3\u30C4\u306E\u66F4\u65B0"),notes:value=>serverMessage2(
150
+ writeResult2(value).body),sensitiveBody:HOOK_SECRETS2};var DELETE_USAGE="twp content delete <\u30B3\u30F3\u30C6\u30F3\u30C4ID> --yes";var contentDeleteOperation={name:"delete",summary:"\u30B3\u30F3\u30C6\u30F3\u30C4\u3092\u524A\u9664\u3059\u308B\uFF08--yes \u304C\u8981\u308B\uFF09",usage:DELETE_USAGE,description:"DELETE /api/v2/cms/contents/{id} \u3067\u30B3\u30F3\u30C6\u30F3\u30C4\u3092\u524A\u9664\u3057\u307E\u3059\uFF08\u4E0B\u66F8\u304D\u30FB\u516C\u958B\u7248\u3068\u3082\u6D88\u3048\u3001\u53D6\u308A\u6D88\u305B\u307E\u305B\u3093\uFF09\u3002\n\u9001\u308B\u524D\u306B\u5BFE\u8C61\u3092\u8AAD\u307F\u3001\u30BF\u30A4\u30C8\u30EB\u3092 stderr \u306B\u51FA\u3057\u307E\u3059\u3002\u7BA1\u7406\u8005\u304B\u4F5C\u6210\u8005\u3060\u3051\u304C\u524A\u9664\u3067\u304D\u307E\u3059\u3002\n\u8AAD\u3093\u3060\u7248\uFF08version\uFF09\u3092\u4E00\u7DD2\u306B\u9001\u308A\u3001\u8AAD\u3093\u3067\u304B\u3089\u9001\u308B\u307E\u3067\u306E\u9593\u306B\u4ED6\u306E\u66F4\u65B0\u30FB\u516C\u958B\u7533\u8ACB\u30FB\u516C\u958B\u304C\u5165\u308B\u3068\u30B5\u30FC\u30D0\u304C 409 \u3067\u65AD\u308A\u307E\u3059\uFF08\u7D42\u4E86\u30B3\u30FC\u30C9 3\
151
+ \uFF09\u3002",destructive:true,flags:[CONTENT_REF_FLAG],async prepare(input){return withResolved(input,{id:contentIdArg(input,DELETE_USAGE)})},plan:input=>({method:"DELETE",path:contentPath(requireResolved(input,"id"))}),plannedNotes:()=>["\u3053\u306E\u524D\u306B\u5BFE\u8C61\u306E\u30B3\u30F3\u30C6\u30F3\u30C4\u3092\u8AAD\u307F\u3001\u30BF\u30A4\u30C8\u30EB\u3092\u8868\u793A\u3057\u3001\u8AAD\u3093\u3060\u7248\u3092 ?version= \u306B\u4ED8\u3051\u3066\u9001\u308A\u307E\u3059\u3002"],async execute(input,ctx){
152
+ const id=requireResolved(input,"id");const current=dataRecord2(await ctx.send({method:"GET",path:contentPath(id)}),"\u30B3\u30F3\u30C6\u30F3\u30C4");ctx.warn(`\u524A\u9664\u3059\u308B\u30B3\u30F3\u30C6\u30F3\u30C4: ${String(current["title"]??"")}\uFF08${id}\u30FB${String(current["category_name"]??current["category_id"]??"")}\uFF09`);const version=readVersion(current);return sendGuarded(ctx,{method:"DELETE",path:contentPath(id),query:{version}},DELETE_CONFLICT)},summarize:body=>({deleted:true,message:isRecord(
153
+ body)?body["message"]??null:null}),raw:body=>body,forbidden:FORBIDDEN};var CONTENTS_PATH3=`${CMS_PATH}/contents`;var CATEGORIES_PATH3=`${CMS_PATH}/categories`;var PROMPT_MAX_CHARS=2e3;var CONFIRMATION="AI \u30AF\u30EC\u30B8\u30C3\u30C8\u3092\u6D88\u8CBB\u3059\u308B\u64CD\u4F5C";var PROMPT_FLAG={name:"--prompt",summary:"AI \u3078\u306E\u6307\u793A\uFF082000\u5B57\u307E\u3067\uFF09",takesValue:true,placeholder:"<\u6307\u793A>"};var PROMPT_FILE_FLAG={name:"--prompt-file",summary:"AI \u3078\u306E\u6307\u793A\u306E\u30D5\u30A1\u30A4\u30EB\uFF08- \u3067\u6A19\u6E96\u5165\u529B\uFF09",
154
+ takesValue:true,placeholder:"<\u30D1\u30B9>"};var CATEGORY_FLAG2={name:"--category",summary:"\u751F\u6210\u3059\u308B\u30AB\u30C6\u30B4\u30EA\uFF08ID\u30FB\u30B3\u30FC\u30C9\u30FB\u540D\u524D\uFF09",takesValue:true,placeholder:"<\u30AB\u30C6\u30B4\u30EA>"};var TITLE_FLAG={name:"--title",summary:"\u51FA\u529B\u306E title \u306B\u5165\u308C\u308B\u30BF\u30A4\u30C8\u30EB\uFF08\u7701\u7565\u3059\u308B\u3068\u7A7A\u3002create \u3067\u306F\u5FC5\u9808\uFF09",takesValue:true,placeholder:"<\u30BF\u30A4\u30C8\u30EB>"};
155
+ var CODE_FLAG={name:"--code",summary:"\u51FA\u529B\u306E code \u306B\u5165\u308C\u308B\u30AB\u30C6\u30B4\u30EA\u306E\u30B3\u30FC\u30C9\uFF08\u7701\u7565\u3059\u308B\u3068\u7A7A\uFF09",takesValue:true,placeholder:"<\u30B3\u30FC\u30C9>"};var NAME_FLAG={name:"--name",summary:"\u51FA\u529B\u306E name \u306B\u5165\u308C\u308B\u30AB\u30C6\u30B4\u30EA\u540D\uFF08\u7701\u7565\u3059\u308B\u3068\u7A7A\uFF09",takesValue:true,placeholder:"<\u540D\u524D>"};async function sendAi(ctx,plan){try{return await ctx.
156
+ send(plan)}catch(err){ctx.warn(failureGuidance(err));throw err}}function failureGuidance(err){if(err instanceof ApiError&&err.status===402){return"AI \u30AF\u30EC\u30B8\u30C3\u30C8\u304C\u4E0D\u8DB3\u3057\u3066\u3044\u307E\u3059\uFF08\u751F\u6210\u306F\u884C\u308F\u308C\u3066\u3044\u307E\u305B\u3093\uFF09\u3002\u30C6\u30CA\u30F3\u30C8\u7BA1\u7406\u8005\u306B\u30AF\u30EC\u30B8\u30C3\u30C8\u306E\u6B8B\u9AD8\u3092\u78BA\u8A8D\u3057\u3066\u304F\u3060\u3055\u3044\u3002"}if(err instanceof ApiError&&err.
157
+ status===429){const wait=err.retryAfterSeconds===null?"\u3057\u3070\u3089\u304F\uFF081\u5206\u307B\u3069\uFF09":`${err.retryAfterSeconds} \u79D2`;return`\u30EA\u30AF\u30A8\u30B9\u30C8\u306E\u56DE\u6570\u5236\u9650\u306B\u9054\u3057\u307E\u3057\u305F\uFF08\u751F\u6210\u306F\u884C\u308F\u308C\u3066\u3044\u307E\u305B\u3093\uFF09\u3002${wait}\u5F85\u3063\u3066\u304B\u3089\u5B9F\u884C\u3057\u76F4\u3057\u3066\u304F\u3060\u3055\u3044\u3002twp \u306F\u81EA\u52D5\u3067\u306F\u6253\u3061\u76F4\u3057\u307E\u305B\u3093\u3002`}
158
+ if(err instanceof ApiError&&err.status>=500||err instanceof NetworkError){return"\u751F\u6210\u306E\u7D50\u679C\u3092\u53D7\u3051\u53D6\u308C\u307E\u305B\u3093\u3067\u3057\u305F\uFF08\u751F\u6210\u7D50\u679C\u306F\u4FDD\u5B58\u3055\u308C\u307E\u305B\u3093\uFF09\u3002\u30B5\u30FC\u30D0\u5074\u3067 AI \u30AF\u30EC\u30B8\u30C3\u30C8\u304C\u6D88\u8CBB\u3055\u308C\u3066\u3044\u308B\u5834\u5408\u304C\u3042\u308A\u3001\u6253\u3061\u76F4\u3059\u3068\u6539\u3081\u3066\u6D88\u8CBB\u3057\u307E\u3059\u3002"}
159
+ return""}function dataRecord3(body,what){const row=isRecord(body)?body["data"]:void 0;if(!isRecord(row))throw new ApiResponseError(`${what}\u306E\u5FDC\u7B54\u306B data \u304C\u3042\u308A\u307E\u305B\u3093\u3002\u63A5\u7D9A\u5148\u3092\u78BA\u8A8D\u3057\u3066\u304F\u3060\u3055\u3044\u3002`);return row}async function readPrompt(input,usage){const text=await readBody(input,{flag:PROMPT_FLAG.name,fileFlag:PROMPT_FILE_FLAG.name,label:"AI \u3078\u306E\u6307\u793A",maxChars:PROMPT_MAX_CHARS,usage});if(text===
160
+ void 0)throw new UsageError("AI \u3078\u306E\u6307\u793A\u3092 --prompt-file <\u30D1\u30B9>\uFF08\u307E\u305F\u306F --prompt <\u6307\u793A>\uFF09\u3067\u6307\u5B9A\u3057\u3066\u304F\u3060\u3055\u3044",usage);return text}function rejectArgs(input,usage){if(input.args.length>0)throw new UsageError(`\u4F4D\u7F6E\u5F15\u6570\u306F\u53D6\u308A\u307E\u305B\u3093: ${input.args.join(" ")}`,usage)}function modelNote(data){return typeof data["model"]==="string"&&data["model"]!==""?[`\u4F7F\u3063\u305F\u30E2\u30C7\u30EB: ${data["\
161
+ model"]}`]:[]}function formFieldNames(category){const schema=category["schema"];const fields=isRecord(schema)?schema["form_fields"]:void 0;return Array.isArray(fields)?fields.filter(isRecord).map(f=>String(f["name"])):[]}function shapeGenerated(generated,category){const names=formFieldNames(category);const content=Object.fromEntries(names.filter(name=>Object.hasOwn(generated,name)).map(name=>[name,generated[name]]));const dropped=Object.keys(generated).filter(name=>!names.includes(name));return{
162
+ content,dropped}}function generatedValues(value){if(Array.isArray(value)&&value.length===0)return{};if(!isRecord(value))throw new ApiResponseError("AI \u30B3\u30F3\u30C6\u30F3\u30C4\u751F\u6210\u306E\u5FDC\u7B54\u306B data.content \u304C\u3042\u308A\u307E\u305B\u3093\u3002\u63A5\u7D9A\u5148\u3092\u78BA\u8A8D\u3057\u3066\u304F\u3060\u3055\u3044\u3002");return value}function generateResult(value){if(!isRecord(value)||!isRecord(value["content"])||!isRecord(value["category"])){throw new Error("\u5185\u90E8\u30A8\u30E9\u30FC\
163
+ : content generate \u306E\u7D50\u679C\u306E\u5F62\u304C\u9055\u3044\u307E\u3059\uFF08execute \u306E\u914D\u7DDA\u6F0F\u308C\uFF09")}return value}var generateDraft=value=>{const result=generateResult(value);return{title:result.title,content:result.content}};var generatePlan=input=>({method:"POST",path:`${CONTENTS_PATH3}/generate`,body:{category_id:requireResolved(input,"category_id"),prompt:requireResolved(input,"prompt")}});var GENERATE_USAGE="twp content generate --category <\u30AB\u30C6\u30B4\u30EA> (--prompt-fil\
164
+ e <\u30D1\u30B9> | --prompt <\u6307\u793A>) [--title <\u30BF\u30A4\u30C8\u30EB>] --yes";var contentGenerateOperation={name:"generate",summary:"AI \u3067\u30B3\u30F3\u30C6\u30F3\u30C4\u306E\u4E0B\u66F8\u304D\u3092\u4F5C\u308B\uFF08\u4FDD\u5B58\u3057\u306A\u3044\u30FBAI \u30AF\u30EC\u30B8\u30C3\u30C8\u3092\u6D88\u8CBB\uFF09",usage:GENERATE_USAGE,description:`POST /api/v2/cms/contents/generate \u3067\u3001\u30AB\u30C6\u30B4\u30EA\u306E\u30D5\u30A9\u30FC\u30E0\u5B9A\u7FA9\u306B\u6CBF\u3063\u305F\u5404\u9805\u76EE\u306E\u5024\u3092 AI \u306B\u4F5C\u3089\u305B\u307E\u3059\uFF08\u753B\u9762\u306E\u300CAI\u3067\u751F\u6210\u300D\u3068\u540C\u3058\uFF09\u3002
165
+ \u4FDD\u5B58\u306F\u3057\u307E\u305B\u3093\u3002\u51FA\u529B\u306F twp content create --content-file \u306B\u305D\u306E\u307E\u307E\u6E21\u305B\u308B JSON\uFF08{title, content}\uFF09\u3067\u3059\u3002
166
+ title \u306F AI \u304C\u4F5C\u3089\u306A\u3044\u306E\u3067 --title \u3067\u5165\u308C\u307E\u3059\uFF08\u7701\u7565\u3059\u308B\u3068\u7A7A\u3067\u3001create \u304C\u5FC5\u9808\u3068\u3057\u3066\u6B62\u3081\u307E\u3059\uFF09\u3002
167
+ \u30D5\u30A9\u30FC\u30E0\u5B9A\u7FA9\u306B\u7121\u3044\u9805\u76EE\u3092 AI \u304C\u8FD4\u3057\u305F\u3068\u304D\u306F\u51FA\u529B\u304B\u3089\u843D\u3068\u3057\u3001\u9805\u76EE\u540D\u3092 stderr \u306B\u51FA\u3057\u307E\u3059\u3002
168
+ \u30C6\u30CA\u30F3\u30C8\u306E AI \u30AF\u30EC\u30B8\u30C3\u30C8\u3092\u6D88\u8CBB\u3059\u308B\u305F\u3081 --yes \u304C\u8981\u308A\u307E\u3059\uFF08--dry-run \u306F\u9001\u308B\u30EA\u30AF\u30A8\u30B9\u30C8\u3060\u3051\u3092\u8868\u793A\u3057\u3001\u6D88\u8CBB\u3057\u307E\u305B\u3093\uFF09\u3002
169
+ \u30AF\u30EC\u30B8\u30C3\u30C8\u4E0D\u8DB3\uFF08402\uFF09\u306F\u7D42\u4E86\u30B3\u30FC\u30C9 3\u3001\u56DE\u6570\u5236\u9650\uFF08429\uFF09\u306F 4 \u3067\u3001\u3069\u3061\u3089\u3082\u7406\u7531\u3092 stderr \u306B\u51FA\u3057\u307E\u3059\uFF08\u7D42\u4E86\u30B3\u30FC\u30C9\u306F\u4ED6\u306E 4xx\u30FB5xx \u3068\u5171\u6709\u306A\u306E\u3067\u3001
170
+ \u7406\u7531\u306E\u533A\u5225\u306F stderr \u306E\u6587\u9762\u3067\u884C\u3044\u307E\u3059\uFF09\u3002\u81EA\u52D5\u3067\u306F\u6253\u3061\u76F4\u3057\u307E\u305B\u3093\u3002
171
+ \u4F8B: twp content generate --category news --prompt-file prompt.txt --title "\u79CB\u306E\u304A\u77E5\u3089\u305B" --yes --output json > news.json
172
+ twp content create --category news --content-file news.json`,destructive:true,confirmation:CONFIRMATION,flags:[CATEGORY_FLAG2,PROMPT_FLAG,PROMPT_FILE_FLAG,TITLE_FLAG],async prepare(input,ctx){rejectArgs(input,GENERATE_USAGE);const category=nonEmpty(input.flags,CATEGORY_FLAG2.name)?.trim();if(category===void 0)throw new UsageError("\u751F\u6210\u3059\u308B\u30AB\u30C6\u30B4\u30EA\u3092 --category \u3067\u6307\u5B9A\u3057\u3066\u304F\u3060\u3055\u3044","\u30AB\u30C6\u30B4\u30EA\u306F twp content category list \u3067\u78BA\u8A8D\u3067\u304D\u307E\
173
+ \u3059\u3002");const prompt=await readPrompt(input,GENERATE_USAGE);const id=UUID_RE.test(category)?category:(await ctx.resolver.cmsCategory(category,CATEGORY_FLAG2.name)).id;if(!isSafePathSegment(id))throw new ApiResponseError(`\u30B5\u30FC\u30D0\u304C\u8FD4\u3057\u305F\u30AB\u30C6\u30B4\u30EA\u306E ID \u3092\u30D1\u30B9\u306B\u4F7F\u3048\u307E\u305B\u3093: ${id}\u3002\u63A5\u7D9A\u5148\u3092\u78BA\u8A8D\u3057\u3066\u304F\u3060\u3055\u3044\u3002`);return withResolved(input,{category_id:id,prompt})},
174
+ plan:generatePlan,plannedNotes:()=>["\u751F\u6210\u306E\u524D\u306B\u30AB\u30C6\u30B4\u30EA\u306E\u30D5\u30A9\u30FC\u30E0\u5B9A\u7FA9\uFF08GET /api/v2/cms/categories/{id}\uFF09\u3092\u8AAD\u307F\u3001\u751F\u6210\u7D50\u679C\u304B\u3089\u5B9A\u7FA9\u306B\u7121\u3044\u9805\u76EE\u3092\u843D\u3068\u3057\u307E\u3059\u3002\u4FDD\u5B58\u306F\u3057\u307E\u305B\u3093\u3002"],async execute(input,ctx){const category=dataRecord3(await ctx.send({method:"GET",path:`${CATEGORIES_PATH3}/${encodeURIComponent(requireResolved(
175
+ input,"category_id"))}`}),"\u30AB\u30C6\u30B4\u30EA");if(formFieldNames(category).length===0){throw new UsageError(`\u30AB\u30C6\u30B4\u30EA\u300C${String(category["name"]??category["id"]??"")}\u300D\u306B\u306F\u30D5\u30A9\u30FC\u30E0\u9805\u76EE\u304C\u7121\u3044\u305F\u3081\u3001AI \u3067\u751F\u6210\u3067\u304D\u307E\u305B\u3093`,"twp content category get <\u30AB\u30C6\u30B4\u30EA> \u3067\u30D5\u30A9\u30FC\u30E0\u5B9A\u7FA9\u3092\u78BA\u8A8D\u3057\u3066\u304F\u3060\u3055\u3044\u3002")}const data=dataRecord3(
176
+ await sendAi(ctx,generatePlan(input)),"AI \u30B3\u30F3\u30C6\u30F3\u30C4\u751F\u6210");const{content,dropped}=shapeGenerated(generatedValues(data["content"]),category);return{title:nonEmpty(input.flags,TITLE_FLAG.name)??"",category,content,dropped,data}},summarize:generateDraft,raw:generateDraft,notes(value){const result=generateResult(value);const ref=String(result.category["code"]??result.category["id"]??"<\u30AB\u30C6\u30B4\u30EA>");const notes=[...modelNote(result.data)];if(Object.keys(result.
177
+ content).length===0)notes.push("\u26A0 AI \u304C\u5024\u3092\u8FD4\u3057\u305F\u9805\u76EE\u304C\u3042\u308A\u307E\u305B\u3093\uFF08\u751F\u6210\u7D50\u679C\u304C\u7A7A\u3067\u3059\uFF09\u3002\u6307\u793A\u3092\u5177\u4F53\u7684\u306B\u3057\u3066\u5B9F\u884C\u3057\u76F4\u3057\u3066\u304F\u3060\u3055\u3044\u3002");if(result.dropped.length>0)notes.push(`\u26A0 \u30D5\u30A9\u30FC\u30E0\u5B9A\u7FA9\u306B\u7121\u3044\u9805\u76EE\u3092\u51FA\u529B\u304B\u3089\u843D\u3068\u3057\u307E\u3057\u305F: ${result.
178
+ dropped.join(", ")}`);if(result.title==="")notes.push("title \u304C\u7A7A\u3067\u3059\u3002create \u306E\u524D\u306B\u57CB\u3081\u3066\u304F\u3060\u3055\u3044\uFF08--title \u3067\u5165\u308C\u3089\u308C\u307E\u3059\uFF09\u3002");notes.push(`\u4FDD\u5B58\u306F\u3057\u3066\u3044\u307E\u305B\u3093\u3002\u5185\u5BB9\u3092\u78BA\u8A8D\u3057\u3066\u304B\u3089 twp content create --category ${ref} --content-file <\u30D1\u30B9> \u3067\u4F5C\u6210\u3057\u3066\u304F\u3060\u3055\u3044\u3002`);return notes},
179
+ sensitiveBody:"\u516C\u958BHook \u306E\u30D8\u30C3\u30C0\u5024\uFF08\u8A8D\u8A3C\u30D8\u30C3\u30C0\u7B49\uFF09\u3092\u542B\u307F\u3046\u308B"};var designDraft=value=>{if(!isRecord(value)||!Array.isArray(value["fields"]))throw new Error("\u5185\u90E8\u30A8\u30E9\u30FC: content category design \u306E\u7D50\u679C\u306E\u5F62\u304C\u9055\u3044\u307E\u3059\uFF08execute \u306E\u914D\u7DDA\u6F0F\u308C\uFF09");return{code:value["code"],name:value["name"],schema:{form_fields:value["fields"]}}};var designPlan=input=>({
180
+ method:"POST",path:`${CATEGORIES_PATH3}/design`,body:{prompt:requireResolved(input,"prompt")}});var DESIGN_USAGE="twp content category design (--prompt-file <\u30D1\u30B9> | --prompt <\u6307\u793A>) [--code <\u30B3\u30FC\u30C9>] [--name <\u540D\u524D>] --yes";var categoryDesignOperation={name:"design",summary:"AI \u3067\u30AB\u30C6\u30B4\u30EA\u306E\u30D5\u30A9\u30FC\u30E0\u5B9A\u7FA9\u3092\u4F5C\u308B\uFF08\u4FDD\u5B58\u3057\u306A\u3044\u30FBAI \u30AF\u30EC\u30B8\u30C3\u30C8\u3092\u6D88\u8CBB\uFF09",
181
+ usage:DESIGN_USAGE,description:`POST /api/v2/cms/categories/design \u3067\u3001\u6307\u793A\u306B\u6CBF\u3063\u305F\u30D5\u30A9\u30FC\u30E0\u5B9A\u7FA9\uFF08\u9805\u76EE\u306E\u4E26\u3073\uFF09\u3092 AI \u306B\u4F5C\u3089\u305B\u307E\u3059\uFF08\u753B\u9762\u306E\u300CAI\u3067\u8A2D\u8A08\u300D\u3068\u540C\u3058\uFF09\u3002
182
+ \u4FDD\u5B58\u306F\u3057\u307E\u305B\u3093\u3002\u51FA\u529B\u306F twp content category create --content-file \u306B\u305D\u306E\u307E\u307E\u6E21\u305B\u308B JSON\uFF08{code, name, schema: {form_fields}}\uFF09\u3067\u3059\u3002
183
+ code \u3068 name \u306F AI \u304C\u4F5C\u3089\u306A\u3044\u306E\u3067 --code / --name \u3067\u5165\u308C\u307E\u3059\uFF08\u7701\u7565\u3059\u308B\u3068\u7A7A\uFF09\u3002
184
+ \u30C6\u30CA\u30F3\u30C8\u306E AI \u30AF\u30EC\u30B8\u30C3\u30C8\u3092\u6D88\u8CBB\u3059\u308B\u305F\u3081 --yes \u304C\u8981\u308A\u307E\u3059\uFF08--dry-run \u306F\u9001\u308B\u30EA\u30AF\u30A8\u30B9\u30C8\u3060\u3051\u3092\u8868\u793A\u3057\u3001\u6D88\u8CBB\u3057\u307E\u305B\u3093\uFF09\u3002
185
+ \u30AF\u30EC\u30B8\u30C3\u30C8\u4E0D\u8DB3\uFF08402\uFF09\u306F\u7D42\u4E86\u30B3\u30FC\u30C9 3\u3001\u56DE\u6570\u5236\u9650\uFF08429\uFF09\u306F 4 \u3067\u3001\u3069\u3061\u3089\u3082\u7406\u7531\u3092 stderr \u306B\u51FA\u3057\u307E\u3059\uFF08\u7D42\u4E86\u30B3\u30FC\u30C9\u306F\u4ED6\u306E 4xx\u30FB5xx \u3068\u5171\u6709\u306A\u306E\u3067\u3001
186
+ \u7406\u7531\u306E\u533A\u5225\u306F stderr \u306E\u6587\u9762\u3067\u884C\u3044\u307E\u3059\uFF09\u3002\u81EA\u52D5\u3067\u306F\u6253\u3061\u76F4\u3057\u307E\u305B\u3093\u3002
187
+ \u4F8B: twp content category design --prompt-file prompt.txt --code event --name \u30A4\u30D9\u30F3\u30C8 --yes --output json > event.json
188
+ twp content category create --content-file event.json`,destructive:true,confirmation:CONFIRMATION,flags:[PROMPT_FLAG,PROMPT_FILE_FLAG,CODE_FLAG,NAME_FLAG],async prepare(input){rejectArgs(input,DESIGN_USAGE);return withResolved(input,{prompt:await readPrompt(input,DESIGN_USAGE)})},plan:designPlan,async execute(input,ctx){const data=dataRecord3(await sendAi(ctx,designPlan(input)),"AI \u30AB\u30C6\u30B4\u30EA\u8A2D\u8A08");if(!Array.isArray(data["fields"]))throw new ApiResponseError("AI \u30AB\u30C6\u30B4\u30EA\u8A2D\
189
+ \u8A08\u306E\u5FDC\u7B54\u306B data.fields \u914D\u5217\u304C\u3042\u308A\u307E\u305B\u3093\u3002\u63A5\u7D9A\u5148\u3092\u78BA\u8A8D\u3057\u3066\u304F\u3060\u3055\u3044\u3002");return{code:nonEmpty(input.flags,CODE_FLAG.name)??"",name:nonEmpty(input.flags,NAME_FLAG.name)??"",fields:data["fields"],model:data["model"]}},summarize:designDraft,raw:designDraft,notes(value){const draft=designDraft(value);const fields=draft["schema"].form_fields;const notes=isRecord(value)?modelNote(value):[];if(fields.
190
+ length===0)notes.push("\u26A0 AI \u304C\u9805\u76EE\u30921\u3064\u3082\u8FD4\u3057\u307E\u305B\u3093\u3067\u3057\u305F\uFF08\u751F\u6210\u7D50\u679C\u304C\u7A7A\u3067\u3059\uFF09\u3002\u6307\u793A\u3092\u5177\u4F53\u7684\u306B\u3057\u3066\u5B9F\u884C\u3057\u76F4\u3057\u3066\u304F\u3060\u3055\u3044\u3002");if(draft["code"]===""||draft["name"]==="")notes.push("code\u30FBname \u304C\u7A7A\u3067\u3059\u3002category create \u306E\u524D\u306B\u57CB\u3081\u3066\u304F\u3060\u3055\u3044\uFF08--code / --name \u3067\u5165\u308C\u3089\u308C\u307E\u3059\uFF09\u3002");
191
+ notes.push("\u4FDD\u5B58\u306F\u3057\u3066\u3044\u307E\u305B\u3093\u3002\u5185\u5BB9\u3092\u78BA\u8A8D\u3057\u3066\u304B\u3089 twp content category create --content-file <\u30D1\u30B9> \u3067\u4F5C\u6210\u3057\u3066\u304F\u3060\u3055\u3044\u3002");return notes}};var LABEL="\u30B3\u30F3\u30C6\u30F3\u30C4";var CONTENTS_PATH4=`${CMS_PATH}/contents`;var CATEGORIES_PATH4=`${CMS_PATH}/categories`;var TAGS_PATH3=`${CMS_PATH}/tags`;var HOOK_SECRETS3="\u516C\u958BHook \u306E\u30D8\u30C3\u30C0\u5024\uFF08\u8A8D\u8A3C\u30D8\u30C3\u30C0\u7B49\uFF09\u3092\u542B\u307F\u3046\u308B";var LIST_COLUMNS=["id","title","category_name","status","publish_status","version","updated_at"];var GET_COLUMNS=["id","title","slug","category_id","category_name","status","publish_status",
192
+ "version","author_name","editor_name","published_at","scheduled_publish_at","has_unpublished_changes","tag_ids","updated_at"];var HISTORY_COLUMNS=["version","action","comment","created_by","created_at"];var CATEGORY_COLUMNS2=["id","code","name","is_active","workflow_enabled","sort","updated_at"];var FIELD_COLUMNS=["name","display_name","type","required","options"];var TAG_COLUMNS2=["id","value","display_name","scope","is_active"];var STATUSES={draft:"\u4E0B\u66F8\u304D",pending_review:"\u627F\u8A8D\u5F85\u3061",
193
+ approved:"\u627F\u8A8D\u6E08\u307F",rejected:"\u5374\u4E0B",archived:"\u30A2\u30FC\u30AB\u30A4\u30D6",published:"\u516C\u958B\u6E08\u307F"};var PUBLISH_STATUSES={unpublished:"\u672A\u516C\u958B",published:"\u516C\u958B\u4E2D",scheduled:"\u516C\u958B\u4E88\u7D04"};var SORTABLE_COLUMNS=["title","category_name","publish_status","published_at","created_at","updated_at"];var MAX_SORT_COLUMNS=3;var LIST_LIMIT_MAX=100;var FORBIDDEN2="\u30B3\u30F3\u30C6\u30F3\u30C4\u7BA1\u7406\u3092\u4F7F\u3046\u6A29\u9650\u304C\u3042\u308A\u307E\u305B\u3093\u3002\u30C6\u30CA\u30F3\u30C8\u306E\u30E9\u30A4\u30BB\u30F3\u30B9\u3068\u3001\u3042\u306A\u305F\u306E\u300C\u30B3\u30F3\u30C6\u30F3\u30C4\u7BA1\u7406\u300D\u306E\u6A5F\u80FD\u6A29\u9650\u3092\u30C6\u30CA\u30F3\u30C8\u7BA1\u7406\u8005\u306B\u78BA\u8A8D\u3057\u3066\u304F\u3060\u3055\u3044\u3002";
194
+ var ID_HELP="\u30B3\u30F3\u30C6\u30F3\u30C4\u306E ID \u306F twp content list \u306E id \u5217\u3067\u78BA\u8A8D\u3067\u304D\u307E\u3059\u3002";function optionLabel(field,key){const options=field?.["options"];if(!Array.isArray(options))return key;const hit=options.filter(isRecord).find(o=>String(o["key"])===String(key));return hit!==void 0&&typeof hit["value"]==="string"?`${hit["value"]}\uFF08${String(key)}\uFF09`:key}function fieldText(value,field){if(value===null||value===void 0||value==="")return void 0;
195
+ if(Array.isArray(value)){if(value.length===0)return void 0;return value.map(v=>typeof v==="string"||typeof v==="number"?String(optionLabel(field,v)):JSON.stringify(v)).join(", ")}if(typeof value==="boolean")return value?"\u306F\u3044":"\u3044\u3044\u3048";if(typeof value==="number")return String(value);if(typeof value==="string"){if(field!==void 0?field["type"]==="richtext":/<\/?[a-z][^>]*>/i.test(value))return htmlToText(value);return String(optionLabel(field,value)).trim()}return JSON.stringify(
196
+ value,null,2)}function contentDocument(body){const row=dataRecord(isRecord(body)?body["content"]:void 0,LABEL);const category=isRecord(body)&&isRecord(body["category"])?body["category"]:void 0;const values=isRecord(row["content"])?row["content"]:{};const fields=category===void 0?[]:formFields(category);const known=new Set(fields.map(f=>f["name"]));const sections=[];for(const field of fields){const name=field["name"];if(typeof name!=="string")continue;const text=fieldText(values[name],field);if(text===
197
+ void 0)continue;sections.push({heading:typeof field["display_name"]==="string"&&field["display_name"]!==""?field["display_name"]:name,body:text})}for(const[name,value]of Object.entries(values)){if(known.has(name))continue;const text=fieldText(value);if(text!==void 0)sections.push({heading:name,body:text})}const tags=Array.isArray(row["tags"])?row["tags"].filter(isRecord):[];if(tags.length>0)sections.push({heading:"\u30BF\u30B0",body:tags.map(t=>`- ${String(t["display_name"]??t["value"]??"")}\uFF08${String(
198
+ t["id"]??"")}\uFF09`).join("\n")});return composeDocument(row["title"],[...metaLine("ID",row["id"]),...metaLine("\u30AB\u30C6\u30B4\u30EA",row["category_name"]??row["category_code"]),...metaLine("\u72B6\u614B",labelOf2(STATUSES,row["status"])),...metaLine("\u516C\u958B",labelOf2(PUBLISH_STATUSES,row["publish_status"])),...metaLine("\u7248",row["version"]),...metaLine("\u4F5C\u6210\u8005",row["author_name"]),...metaLine("\u66F4\u65B0",row["updated_at"])],sections)}function labelOf2(table,value){return typeof value===
199
+ "string"&&table[value]!==void 0?`${table[value]}\uFF08${value}\uFF09`:value}function categoryDocument(body){const row=dataRecord(body,"\u30AB\u30C6\u30B4\u30EA");const fields=formFields(row);const lines=fields.map(f=>{const options=Array.isArray(f["options"])&&f["options"].length>0?` \u9078\u629E\u80A2: ${f["options"].filter(isRecord).map(o=>`${String(o["value"])}\uFF08${String(o["key"])}\uFF09`).join(" / ")}`:"";return`- ${String(f["display_name"]??f["name"])}\uFF08${String(f["name"])}\u30FB${String(
200
+ f["type"])}${f["required"]===true?"\u30FB\u5FC5\u9808":""}\uFF09${options}`});return composeDocument(row["name"],[...metaLine("ID",row["id"]),...metaLine("\u30B3\u30FC\u30C9",row["code"]),...metaLine("\u8AAC\u660E",row["description"]),...metaLine("\u30EF\u30FC\u30AF\u30D5\u30ED\u30FC",row["workflow_enabled"]===true?"\u3042\u308A":"\u306A\u3057")],[{heading:`\u30D5\u30A9\u30FC\u30E0\u9805\u76EE\uFF08${fields.length} \u4EF6\uFF09`,body:lines.join("\n")}])}function noArgs(input,usage){if(input.args.
201
+ length>0)throw new UsageError(`\u4F4D\u7F6E\u5F15\u6570\u306F\u53D6\u308A\u307E\u305B\u3093: ${input.args.join(" ")}`,usage)}var CONTENT_REF_FLAG2={name:"--content",summary:"\u5BFE\u8C61\u306E\u30B3\u30F3\u30C6\u30F3\u30C4\u306E ID\uFF08\u4F4D\u7F6E\u5F15\u6570\u306E\u4EE3\u308F\u308A\u306B\u4F7F\u3048\u308B\uFF09",takesValue:true,placeholder:"<\u30B3\u30F3\u30C6\u30F3\u30C4ID>"};function contentId(input,usage){const id=singleRef(input,{flag:CONTENT_REF_FLAG2.name,label:"\u30B3\u30F3\u30C6\u30F3\u30C4\u306E ID",
202
+ usage});if(!isSafePathSegment(id))throw new UsageError(`\u30B3\u30F3\u30C6\u30F3\u30C4\u306E ID \u3068\u3057\u3066\u4F7F\u3048\u306A\u3044\u5024\u3067\u3059: ${id}`,ID_HELP);return id}var contentPath2=(id,suffix="")=>`${CONTENTS_PATH4}/${encodeURIComponent(id)}${suffix}`;function enumValue(input,flag,table){const raw=nonEmpty(input.flags,flag)?.trim();if(raw===void 0)return void 0;if(Object.hasOwn(table,raw))return raw;const byLabel=Object.entries(table).find(([,label])=>label===raw);if(byLabel!==
203
+ void 0)return byLabel[0];throw new UsageError(`${flag} \u306B\u6307\u5B9A\u3067\u304D\u306A\u3044\u5024\u3067\u3059: ${raw}`,`\u6307\u5B9A\u3067\u304D\u308B\u306E\u306F ${Object.entries(table).map(([k,v])=>`${k}\uFF08${v}\uFF09`).join(" / ")} \u3067\u3059\u3002`)}function sortQuery(raw){if(raw===void 0)return{};const usage=`--sort \u306F\u300C\u5217[:asc|desc]\u300D\u3092\u30AB\u30F3\u30DE\u533A\u5207\u308A\u3067\u6700\u5927 ${MAX_SORT_COLUMNS} \u3064\uFF08\u5217\u306F ${SORTABLE_COLUMNS.join(" \
204
+ / ")}\uFF09\u3002\u4F8B: --sort updated_at:desc,title`;const parts=raw.split(",").map(p=>p.trim());if(parts.some(p=>p===""))throw new UsageError(`--sort \u306B\u7A7A\u306E\u5217\u304C\u3042\u308A\u307E\u3059: ${raw}`,usage);if(parts.length>MAX_SORT_COLUMNS)throw new UsageError(`--sort \u306B\u6307\u5B9A\u3067\u304D\u308B\u5217\u306F ${MAX_SORT_COLUMNS} \u3064\u307E\u3067\u3067\u3059: ${raw}`,usage);const columns=[];const directions=[];for(const part of parts){const[column="",direction="",...rest]=part.
205
+ split(":").map(s=>s.trim());if(rest.length>0||!SORTABLE_COLUMNS.includes(column))throw new UsageError(`--sort \u306B\u6307\u5B9A\u3067\u304D\u306A\u3044\u5217\u3067\u3059: ${part}`,usage);if(direction!==""&&direction!=="asc"&&direction!=="desc")throw new UsageError(`--sort \u306E\u5411\u304D\u306F asc \u304B desc \u3067\u3059: ${part}`,usage);columns.push(column);directions.push(direction)}return{sort_column:columns.join(","),...directions.some(d=>d!=="")?{sort_direction:directions.join(",")}:{}}}
206
+ var LIST_USAGE="twp content list [--keyword <\u8A9E>] [--category <\u30AB\u30C6\u30B4\u30EA>] [--status <\u72B6\u614B>] [--publish-status <\u516C\u958B\u72B6\u614B>] [--sort <\u5217[:asc|desc]>,\u2026] [--limit <\u4EF6\u6570>] [--all]";var listOperation={name:"list",summary:"\u30B3\u30F3\u30C6\u30F3\u30C4\u3092\u4E00\u89A7\u3059\u308B\uFF08--keyword / --category / --status / --publish-status / --sort\uFF09",usage:LIST_USAGE,description:`--category \u306F\u30AB\u30C6\u30B4\u30EA\u306E ID\u30FB\u30B3\u30FC\u30C9\u30FB\u540D\u524D\u306E\u3069\u308C\u3067\u3082\u6307\u5B9A\u3067\u304D\u307E\u3059\uFF08twp content category\
207
+ list \u3067\u78BA\u8A8D\uFF09\u3002
208
+ --status \u306F ${Object.entries(STATUSES).map(([k,v])=>`${k}\uFF08${v}\uFF09`).join(" / ")}\u3001--publish-status \u306F ${Object.entries(PUBLISH_STATUSES).map(([k,v])=>`${k}\uFF08${v}\uFF09`).join(" / ")} \u3067\u3059\uFF08\u8868\u793A\u540D\u3067\u3082\u6307\u5B9A\u3067\u304D\u307E\u3059\uFF09\u3002
209
+ --sort \u306F\u753B\u9762\u306E\u5217\u898B\u51FA\u3057\u306E\u4E26\u3079\u66FF\u3048\u3068\u540C\u3058\u3067\u3001${SORTABLE_COLUMNS.join(" / ")} \u3092\u6700\u5927 ${MAX_SORT_COLUMNS} \u5217\u307E\u3067\u6307\u5B9A\u3067\u304D\u307E\u3059\u3002
210
+ --limit \u306E\u4E0A\u9650\u306F\u30B5\u30FC\u30D0\u5074\u3067 ${LIST_LIMIT_MAX} \u4EF6\u3067\u3059\uFF08\u65E2\u5B9A 20 \u4EF6\uFF09\u3002
211
+
212
+ --output json \u306F\u672C\u6587\uFF08content\uFF09\u3092\u542B\u3080\u5168\u30D5\u30A3\u30FC\u30EB\u30C9\u3092\u51FA\u3057\u307E\u3059\u3002
213
+ --output table / text / tsv \u306F\u8981\u7D04\u5217\uFF08${LIST_COLUMNS.join(" / ")}\uFF09\u3067\u3059\u3002
214
+
215
+ `+LIST_PAGING_HELP,flags:[{name:"--keyword",summary:"\u30BF\u30A4\u30C8\u30EB\u30FB\u672C\u6587\u306E\u8A9E\u3067\u7D5E\u308A\u8FBC\u3080",takesValue:true,placeholder:"<\u8A9E>"},{name:"--category",summary:"\u30AB\u30C6\u30B4\u30EA\uFF08ID\u30FB\u30B3\u30FC\u30C9\u30FB\u540D\u524D\uFF09\u3067\u7D5E\u308A\u8FBC\u3080",takesValue:true,placeholder:"<\u30AB\u30C6\u30B4\u30EA>"},{name:"--status",summary:"\u72B6\u614B\uFF08draft / pending_review / approved / rejected / archived / published\uFF09\u3067\u7D5E\u308A\u8FBC\u3080",
216
+ takesValue:true,placeholder:"<\u72B6\u614B>"},{name:"--publish-status",summary:"\u516C\u958B\u72B6\u614B\uFF08unpublished / published / scheduled\uFF09\u3067\u7D5E\u308A\u8FBC\u3080",takesValue:true,placeholder:"<\u516C\u958B\u72B6\u614B>"},{name:"--sort",summary:`\u4E26\u3079\u66FF\u3048\uFF08\u5217[:asc|desc] \u3092\u30AB\u30F3\u30DE\u533A\u5207\u308A\u30FB\u6700\u5927 ${MAX_SORT_COLUMNS} \u5217\uFF09`,takesValue:true,placeholder:"<\u5217[:asc|desc]>,\u2026"},...LIST_FLAGS],async prepare(input,ctx){
217
+ noArgs(input,LIST_USAGE);listQuery(input);const category=nonEmpty(input.flags,"--category");if(category===void 0)return input;return withResolved(input,{category_id:await categoryIdOf(category,ctx,"--category")})},plan:input=>({method:"GET",path:CONTENTS_PATH4,query:{...listQuery(input),category_id:input.resolved?.["category_id"]}}),paging:envelopePaging({label:`${LABEL}\u4E00\u89A7`}),summarize:body=>itemsOf(body).map(row=>pick(row,LIST_COLUMNS)),raw:body=>itemsOf(body),notes:body=>isRecord(body)&&
218
+ body["sort_truncated"]===true?["\u26A0 \u30B5\u30FC\u30D0\u304C\u4E26\u3079\u66FF\u3048\u306E\u5BFE\u8C61\u3092\u4E0A\u9650\u3067\u6253\u3061\u5207\u308A\u307E\u3057\u305F\u3002\u7D50\u679C\u306F\u5168\u4EF6\u3067\u306F\u3042\u308A\u307E\u305B\u3093\uFF08--keyword / --category \u3067\u7D5E\u3063\u3066\u304F\u3060\u3055\u3044\uFF09\u3002"]:[],sensitiveBody:HOOK_SECRETS3};function listQuery(input){const limit=positiveInteger(input.flags,"--limit");return{keyword:boundedText(input,"--keyword",{maxChars:255,
219
+ label:"\u691C\u7D22\u8A9E"})?.trim(),status:enumValue(input,"--status",STATUSES),publish_status:enumValue(input,"--publish-status",PUBLISH_STATUSES),...sortQuery(nonEmpty(input.flags,"--sort")),limit:limit===void 0?void 0:String(limit),cursor:nonEmpty(input.flags,"--cursor")}}function itemsOf(body){const items=isRecord(body)?body["items"]:void 0;if(!Array.isArray(items))throw new ApiResponseError(`${LABEL}\u4E00\u89A7\u306E\u5FDC\u7B54\u306B items \u914D\u5217\u304C\u3042\u308A\u307E\u305B\u3093\u3002\u63A5\u7D9A\u5148\u3092\u78BA\u8A8D\u3057\u3066\u304F\u3060\u3055\u3044\u3002`);
220
+ return items}var GET_USAGE="twp content get <\u30B3\u30F3\u30C6\u30F3\u30C4ID> [--output text]";var getOperation={name:"get",summary:"\u30B3\u30F3\u30C6\u30F3\u30C41\u4EF6\u3092\u8868\u793A\u3059\u308B\uFF08--output text \u3067\u672C\u6587\u3092\u9805\u76EE\u540D\u3064\u304D\u3067\u8AAD\u3081\u308B\u5F62\u306B\uFF09",usage:GET_USAGE,description:"\u7D9A\u3051\u3066\u30AB\u30C6\u30B4\u30EA\u306E\u30D5\u30A9\u30FC\u30E0\u5B9A\u7FA9\u3082\u53D6\u5F97\u3057\u3001--output text \u3067\u306F\u672C\u6587\u306E\u5404\u9805\u76EE\u3092\u753B\u9762\u3068\u540C\u3058\u9805\u76EE\u540D\uFF08display_name\uFF09\u30FB\u9806\u5E8F\u3067\u4E26\u3079\u307E\u3059\u3002\n\u30D5\u30A9\u30FC\u30E0\u5B9A\u7FA9\u306B\u7121\u3044\u5024\uFF08\u5B9A\u7FA9\u304B\u3089\u5916\u3057\u305F\u9805\u76EE\uFF09\u3082\u3001\u9805\u76EE\u306E\u5185\u90E8\u540D\u306E\u307E\u307E\u672B\u5C3E\u306B\u51FA\u3057\u307E\u3059\u3002\n\n--output json \u306F\u30B3\u30F3\u30C6\u30F3\u30C4\u306E\u5168\u30D5\u30A3\u30FC\u30EB\u30C9\uFF08\u30BF\u30B0\u30FB\u7DE8\u96C6\u53EF\u5426\u3092\
221
+ \u542B\u3080\uFF09\u3067\u3059\u3002",flags:[CONTENT_REF_FLAG2],plan:input=>({method:"GET",path:contentPath2(contentId(input,GET_USAGE))}),plannedNotes:()=>["\u7D9A\u3051\u3066\u30AB\u30C6\u30B4\u30EA\u306E\u30D5\u30A9\u30FC\u30E0\u5B9A\u7FA9\uFF08GET /api/v2/cms/categories/{\u30AB\u30C6\u30B4\u30EAID}\uFF09\u3082\u53D6\u5F97\u3057\u307E\u3059\u3002"],async execute(input,ctx){const content=await ctx.send({method:"GET",path:contentPath2(contentId(input,GET_USAGE))});const categoryId=dataRecord(content,
222
+ LABEL)["category_id"];if(typeof categoryId!=="string"||categoryId==="")return{content,category:null};try{return{content,category:dataRecord(await ctx.send({method:"GET",path:`${CATEGORIES_PATH4}/${encodeURIComponent(serverId(categoryId,"\u30AB\u30C6\u30B4\u30EA"))}`}),"\u30AB\u30C6\u30B4\u30EA")}}catch(error){if(!(error instanceof ApiError&&error.status===404))throw error;ctx.warn(`\u30AB\u30C6\u30B4\u30EA\uFF08${categoryId}\uFF09\u306E\u30D5\u30A9\u30FC\u30E0\u5B9A\u7FA9\u3092\u53D6\u5F97\u3067\u304D\u306A\u304B\u3063\u305F\u305F\u3081\u3001\u672C\u6587\u306E\u9805\u76EE\u306F\u5185\u90E8\u540D\u3067\u51FA\u3057\u307E\u3059\uFF08${error.
223
+ message}\uFF09`);return{content,category:null}}},summarize:body=>pick(contentRow(body),GET_COLUMNS),raw:body=>contentRow(body),document:contentDocument,sensitiveBody:HOOK_SECRETS3};function contentRow(body){return dataRecord(isRecord(body)?body["content"]:void 0,LABEL)}var HISTORY_USAGE="twp content history <\u30B3\u30F3\u30C6\u30F3\u30C4ID> [--limit <\u4EF6\u6570>]";var historyOperation={name:"history",summary:"\u30B3\u30F3\u30C6\u30F3\u30C4\u306E\u5909\u66F4\u5C65\u6B74\uFF08\u7248\u30FB\u64CD\u4F5C\u30FB\u30B3\u30E1\u30F3\u30C8\uFF09\u3092\u4E00\u89A7\u3059\u308B",
224
+ usage:HISTORY_USAGE,description:`--output json \u306F\u5404\u7248\u306E\u30B9\u30CA\u30C3\u30D7\u30B7\u30E7\u30C3\u30C8\uFF08snapshot\uFF09\u3068\u5909\u66F4\u70B9\uFF08changes\uFF09\u3092\u542B\u307F\u307E\u3059\u3002
225
+ --output table / text / tsv \u306F\u8981\u7D04\u5217\uFF08${HISTORY_COLUMNS.join(" / ")}\uFF09\u3067\u3059\u3002`,flags:[CONTENT_REF_FLAG2,{name:"--limit",summary:"\u53D6\u5F97\u4EF6\u6570",takesValue:true,placeholder:"<\u4EF6\u6570>"}],plan(input){const limit=positiveInteger(input.flags,"--limit");return{method:"GET",path:contentPath2(contentId(input,HISTORY_USAGE),"/history"),query:{limit:limit===void 0?void 0:String(limit)}}},summarize:body=>dataList(body,`${LABEL}\u306E\u5909\u66F4\u5C65\u6B74`).
226
+ map(row=>pick(row,HISTORY_COLUMNS)),raw:body=>dataList(body,`${LABEL}\u306E\u5909\u66F4\u5C65\u6B74`)};var DIFF_USAGE="twp content diff <\u30B3\u30F3\u30C6\u30F3\u30C4ID>";var diffOperation={name:"diff",summary:"\u4E0B\u66F8\u304D\u3068\u516C\u958B\u4E2D\u306E\u7248\u3092\u4E26\u3079\u3001\u672A\u516C\u958B\u306E\u5909\u66F4\u304C\u3042\u308B\u304B\u3092\u8868\u793A\u3059\u308B",usage:DIFF_USAGE,description:"--output json \u306F\u4E0B\u66F8\u304D\uFF08draft\uFF09\u3068\u516C\u958B\u4E2D\uFF08published\u30FB\u672A\u516C\u958B\u306A\u3089 null\uFF09\u306E\u5168\u30D5\u30A3\u30FC\u30EB\u30C9\u3067\u3059\u3002\ntable / text / tsv \u306F\u3001\u5024\u304C\u9055\u3046\u9805\
227
+ \u76EE\uFF08\u30BF\u30A4\u30C8\u30EB\u30FB\u672C\u6587\u306E\u5404\u9805\u76EE\uFF09\u3060\u3051\u3092\u300C\u9805\u76EE / \u4E0B\u66F8\u304D / \u516C\u958B\u4E2D\u300D\u3067\u4E26\u3079\u307E\u3059\u3002",flags:[CONTENT_REF_FLAG2],plan:input=>({method:"GET",path:contentPath2(contentId(input,DIFF_USAGE),"/diff")}),summarize:body=>diffRows(dataRecord(body,`${LABEL}\u306E\u5DEE\u5206`)),raw:body=>dataRecord(body,`${LABEL}\u306E\u5DEE\u5206`),notes(body){const diff=dataRecord(body,`${LABEL}\u306E\u5DEE\u5206`);
228
+ if(diff["published"]===null||diff["published"]===void 0)return["\u307E\u3060\u516C\u958B\u3055\u308C\u3066\u3044\u307E\u305B\u3093\uFF08\u516C\u958B\u4E2D\u306E\u7248\u304C\u3042\u308A\u307E\u305B\u3093\uFF09\u3002"];if(diff["has_changes"]!==true)return["\u4E0B\u66F8\u304D\u306F\u516C\u958B\u4E2D\u306E\u7248\u3068\u540C\u3058\u3067\u3059\u3002"];return[diffRows(diff).length>0?"\u672A\u516C\u958B\u306E\u5909\u66F4\u304C\u3042\u308A\u307E\u3059\u3002":"\u672A\u516C\u958B\u306E\u7248\u304C\u3042\u308A\u307E\u3059\u304C\u3001\u30BF\u30A4\u30C8\u30EB\u30FB\u30B9\u30E9\u30C3\u30B0\u30FB\u672C\u6587\u306E\u5024\u306F\u516C\u958B\u4E2D\u306E\u7248\u3068\u540C\u3058\u3067\u3059\uFF08\u629C\u7C8B\u30FBSEO \
229
+ \u7B49\u306E\u5DEE\u306F --output json \u3067\u78BA\u8A8D\u3057\u3066\u304F\u3060\u3055\u3044\uFF09\u3002"]}};function diffRows(diff){const draft=isRecord(diff["draft"])?diff["draft"]:{};const published=isRecord(diff["published"])?diff["published"]:{};const rows=[];const compare=(field,a2,b2)=>{if(fieldText(a2)===void 0&&fieldText(b2)===void 0)return;if(JSON.stringify(a2??null)!==JSON.stringify(b2??null))rows.push({field,draft:fieldText(a2)??null,published:fieldText(b2)??null})};compare("title",
230
+ draft["title"],published["title"]);compare("slug",draft["slug"],published["slug"]);const a=isRecord(draft["content"])?draft["content"]:{};const b=isRecord(published["content"])?published["content"]:{};for(const key of[...new Set([...Object.keys(a),...Object.keys(b)])])compare(`content.${key}`,a[key],b[key]);return rows}var WORKFLOW_USAGE="twp content workflow <\u30B3\u30F3\u30C6\u30F3\u30C4ID>";var workflowOperation={name:"workflow",summary:"\u30B3\u30F3\u30C6\u30F3\u30C4\u306E\u516C\u958B\u7533\u8ACB\uFF08\u30EF\u30FC\u30AF\u30D5\u30ED\u30FC\uFF09\u306E\u72B6\u6CC1\u3092\u8868\u793A\u3059\u308B",
231
+ usage:WORKFLOW_USAGE,description:"\u516C\u958B\u7533\u8ACB\u3092\u3057\u3066\u3044\u306A\u3044\u30B3\u30F3\u30C6\u30F3\u30C4\u306F\u30B5\u30FC\u30D0\u304C 404\uFF08\u300C\u30EF\u30FC\u30AF\u30D5\u30ED\u30FC\u60C5\u5831\u304C\u3042\u308A\u307E\u305B\u3093\u300D\uFF09\u3092\u8FD4\u3057\u307E\u3059\uFF08\u7D42\u4E86\u30B3\u30FC\u30C9 3\uFF09\u3002\n--output json \u306F\u7533\u8ACB\uFF08instance\uFF09\u30FB\u6BB5\u306E\u5C65\u6B74\uFF08step_history\uFF09\u30FB\u7D4C\u8DEF\uFF08workflow_steps\uFF09\u306E\u5168\u30D5\u30A3\u30FC\u30EB\u30C9\u3067\u3059\u3002",
232
+ flags:[CONTENT_REF_FLAG2],plan:input=>({method:"GET",path:contentPath2(contentId(input,WORKFLOW_USAGE),"/workflow")}),summarize(body){const data=dataRecord(body,"\u30EF\u30FC\u30AF\u30D5\u30ED\u30FC");const instance=isRecord(data["instance"])?data["instance"]:{};const state=isRecord(data["workflow_state"])?data["workflow_state"]:{};return{workflow_status:state["status"]??null,instance_id:instance["id"]??null,workflow_name:instance["workflow_name"]??null,applicant_name:instance["applicant_name"]??
233
+ null,status:instance["status"]??null,current_step_no:instance["current_step_no"]??null,applied_at:state["applied_at"]??null}},raw:body=>dataRecord(body,"\u30EF\u30FC\u30AF\u30D5\u30ED\u30FC")};var PUBLISHER_FORBIDDEN="\u3053\u306E\u30B3\u30F3\u30C6\u30F3\u30C4\u306E\u516C\u958B\u64CD\u4F5C\u306F\u3001\u30C6\u30CA\u30F3\u30C8\u7BA1\u7406\u8005\u304B\u30B3\u30F3\u30C6\u30F3\u30C4\u306E\u4F5C\u6210\u8005\u3060\u3051\u304C\u884C\u3048\u307E\u3059\u3002";var FORBIDDEN_CANDIDATES="403 \u306B\u306A\u308B\u4E3B\u306A\u7406\u7531: \u30C6\u30CA\u30F3\u30C8\u7BA1\u7406\u8005\
234
+ \u3067\u3082\u30B3\u30F3\u30C6\u30F3\u30C4\u306E\u4F5C\u6210\u8005\u3067\u3082\u306A\u3044\u30FB\u51E6\u7406\u4E2D\u306B\u627F\u8A8D\u5F85\u3061\u3084\u30A2\u30FC\u30AB\u30A4\u30D6\u3078\u5909\u308F\u3063\u305F\uFF08\u4E0A\u306E\u72B6\u614B\u3092\u78BA\u8A8D\u3057\u3066\u304F\u3060\u3055\u3044\uFF09\u3002";var publishForbidden=body=>body?.error==="permission_denied"?FORBIDDEN2:void 0;var previewForbidden=body=>body?.error==="permission_denied"?FORBIDDEN2:"\u30D7\u30EC\u30D3\u30E5\u30FC URL \u306F\u3001\u30C6\u30CA\u30F3\u30C8\u7BA1\u7406\u8005\u304B\u30B3\u30F3\u30C6\u30F3\u30C4\u306E\u4F5C\u6210\u8005\u3060\u3051\u304C\u767A\u884C\u3067\u304D\u307E\u3059\u3002";
235
+ var WORKFLOW_BYPASS="\u3053\u306E\u30B3\u30F3\u30C6\u30F3\u30C4\u306E\u30AB\u30C6\u30B4\u30EA\u306F\u516C\u958B\u306B\u30EF\u30FC\u30AF\u30D5\u30ED\u30FC\uFF08\u516C\u958B\u627F\u8A8D\uFF09\u304C\u5FC5\u8981\u3067\u3059\u3002\u753B\u9762\u3067\u306F\u76F4\u63A5\u306E\u516C\u958B\u30FB\u4E88\u7D04\u306F\u3067\u304D\u305A\u3001\u516C\u958B\u627F\u8A8D\u7533\u8ACB\u3060\u3051\u304C\u51FA\u307E\u3059\u3002\u627F\u8A8D\u3092\u7D4C\u305A\u306B\u516C\u958B\u3059\u308B\u3053\u3068\u306B\u306A\u308A\u307E\u3059\uFF08\u627F\u8A8D\u3092\u7D4C\u308B\u306A\u3089 twp content apply-workflow <\u30B3\u30F3\u30C6\u30F3\u30C4ID>\uFF09\u3002";
236
+ function contentStateLine(row){const parts=[`\u72B6\u614B=${String(labelOf2(STATUSES,row["status"])??"\u4E0D\u660E")}`,`\u516C\u958B=${String(labelOf2(PUBLISH_STATUSES,row["publish_status"])??"\u4E0D\u660E")}`,...typeof row["scheduled_publish_at"]==="string"&&row["scheduled_publish_at"]!==""?[`\u516C\u958B\u4E88\u7D04=${row["scheduled_publish_at"]}`]:[],`\u30EF\u30FC\u30AF\u30D5\u30ED\u30FC=${row["workflow_enabled"]===true?"\u5FC5\u8981":"\u4E0D\u8981"}`];return`\u73FE\u5728\u306E\u72B6\u614B: ${parts.
237
+ join("\u30FB")}`}async function currentContent(input,usage,ctx){return dataRecord(await ctx.send({method:"GET",path:contentPath2(contentId(input,usage))}),LABEL)}var PENDING_REVIEW_GATE=row=>row["status"]==="pending_review"?"\u30EF\u30FC\u30AF\u30D5\u30ED\u30FC\u306E\u627F\u8A8D\u5F85\u3061\uFF08pending_review\uFF09\u306E\u305F\u3081\u3001\u3053\u306E\u64CD\u4F5C\u306F\u3067\u304D\u307E\u305B\u3093\u3002\u627F\u8A8D\u30FB\u5DEE\u3057\u623B\u3057\u304C\u6E08\u3093\u3067\u304B\u3089\u3084\u308A\u76F4\u3057\u3066\u304F\u3060\u3055\u3044\uFF08\u72B6\u6CC1\u306F twp content workflow <\u30B3\u30F3\u30C6\u30F3\u30C4ID>\uFF09\u3002":
238
+ void 0;var PUBLISHER_GATE=row=>row["is_publisher"]===false?PUBLISHER_FORBIDDEN:void 0;var EXTERNAL="\u5916\u90E8\u30B5\u30A4\u30C8\u306B\u898B\u3048\u308B\u72B6\u614B\u3092\u5909\u3048\u308B\u64CD\u4F5C";function publishOperation(spec){const plan=input=>{const body=spec.body?.(input);return{method:spec.method,path:contentPath2(contentId(input,spec.usage),spec.suffix),...body!==void 0?{body}:{}}};return{name:spec.name,summary:spec.summary,usage:spec.usage,description:`${spec.description}
239
+
240
+ \u9001\u308B\u524D\u306B\u30B3\u30F3\u30C6\u30F3\u30C4\u3092\u8AAD\u307F\uFF08GET /api/v2/cms/contents/{id}\uFF09\u3001\u30B5\u30FC\u30D0\u306B\u65AD\u3089\u308C\u308B\u3068\u5206\u304B\u3063\u3066\u3044\u308B\u72B6\u614B\u306A\u3089\u9001\u3089\u305A\u306B\u6B62\u3081\u307E\u3059\u3002`,...spec.destructive===true?{destructive:true,confirmation:EXTERNAL}:{},forbidden:publishForbidden,flags:[CONTENT_REF_FLAG2,...spec.flags??[]],plan,plannedNotes:()=>["\u9001\u308B\u524D\u306B\u30B3\u30F3\u30C6\u30F3\u30C4\u306E\u72B6\u614B\u3092\u8AAD\u307F\u307E\u3059\uFF08GET /api/v2/cms/contents/{i\
241
+ d}\uFF09\u3002"],async preview(input,ctx){const row=await currentContent(input,spec.usage,ctx);for(const gate of spec.gates){const reason=gate(row);if(reason!==void 0)throw new UsageError(`${reason}
242
+ ${contentStateLine(row)}`)}const warnings=(spec.cautions??[]).map(c=>c(row)).filter(w=>w!==void 0);return{notes:[`\u300C${String(row["title"]??row["id"])}\u300D ${contentStateLine(row)}`],warnings}},async execute(input,ctx){try{return await ctx.send(plan(input))}catch(error){throw await withCurrentState(error,input,spec.usage,ctx,spec.badRequestHint)}},summarize:spec.summarize,raw:spec.raw,...spec.notes!==void 0?{notes:spec.notes}:{}}}async function withCurrentState(error,input,usage,ctx,badRequestHint){
243
+ if(!(error instanceof ApiError)||![400,403,409].includes(error.status)||error.body?.error==="permission_denied")return error;let state;try{state=contentStateLine(await currentContent(input,usage,ctx))}catch{return error}const wrapped=new ApiError(error.status,error.body,"","",error.retryAfterSeconds);const hint=error.status===400?badRequestHint:error.status===403?FORBIDDEN_CANDIDATES:void 0;wrapped.message=[error.message,state,...hint!==void 0?[hint]:[]].join("\n");return wrapped}function isPublished(row){
244
+ if(row["publish_status"]==="published")return true;return row["publish_status"]==="scheduled"&&typeof row["published_at"]==="string"&&row["published_at"]!==""}var dataOrSelf=what=>body=>dataRecord(body,what);var messageOnly=body=>({message:isRecord(body)?body["message"]??null:null});function scheduleAt(raw,now=Date.now()){const value=raw.trim();const usage="--at \u306F\u300CYYYY-MM-DD HH:MM\u300D\uFF08JST\uFF09\u304B\u3001\u6642\u5DEE\u4ED8\u304D\u306E ISO 8601\uFF08\u4F8B: 2026-11-01T09:00:00+09:00\uFF09\u3067\u6307\u5B9A\u3057\u3066\u304F\u3060\u3055\u3044\u3002";
245
+ const m=/^(\d{4})-(\d{2})-(\d{2})[T ](\d{2}):(\d{2})(?::(\d{2})(\.\d{1,9})?)?([Zz]|[+-]\d{2}:\d{2})?$/.exec(value);if(m===null)throw new UsageError(`--at \u306E\u5F62\u5F0F\u304C\u9055\u3044\u307E\u3059: ${raw}`,usage);const[,y,mo,d,hh,mm,ss="00",fraction="",rawZone="+09:00"]=m;const zone=rawZone.toUpperCase();const probe=new Date(Date.UTC(Number(y),Number(mo)-1,Number(d),Number(hh),Number(mm),Number(ss)));if(probe.getUTCMonth()!==Number(mo)-1||probe.getUTCDate()!==Number(d)||probe.getUTCHours()!==
246
+ Number(hh)||probe.getUTCMinutes()!==Number(mm)){throw new UsageError(`--at \u306E\u65E5\u6642\u304C\u66A6\u306B\u3042\u308A\u307E\u305B\u3093: ${raw}`,usage)}const at=Date.parse(`${y}-${mo}-${d}T${hh}:${mm}:${ss}${fraction.slice(0,4)}${zone}`);if(Number.isNaN(at))throw new UsageError(`--at \u306E\u5F62\u5F0F\u304C\u9055\u3044\u307E\u3059: ${raw}`,usage);if(at<=now)throw new UsageError(`--at \u306F\u73FE\u5728\u3088\u308A\u5F8C\u306E\u65E5\u6642\u306B\u3057\u3066\u304F\u3060\u3055\u3044: ${raw}`,
247
+ usage);return new Date(at).toISOString()}var PUBLISH_USAGE="twp content publish <\u30B3\u30F3\u30C6\u30F3\u30C4ID> --yes";var SCHEDULE_USAGE="twp content schedule <\u30B3\u30F3\u30C6\u30F3\u30C4ID> --at <\u65E5\u6642>";var UNSCHEDULE_USAGE="twp content unschedule <\u30B3\u30F3\u30C6\u30F3\u30C4ID>";var UNPUBLISH_USAGE="twp content unpublish <\u30B3\u30F3\u30C6\u30F3\u30C4ID> --yes";var ARCHIVE_USAGE="twp content archive <\u30B3\u30F3\u30C6\u30F3\u30C4ID> --yes";var APPLY_USAGE="twp content apply\
248
+ -workflow <\u30B3\u30F3\u30C6\u30F3\u30C4ID> [--comment <\u30B3\u30E1\u30F3\u30C8>] [--description <\u8AAC\u660E>]";var PREVIEW_USAGE2="twp content preview-url <\u30B3\u30F3\u30C6\u30F3\u30C4ID> [--no-redact]";var DRAFT_SUMMARY=["id","title","status","publish_status","scheduled_publish_at","version","updated_at"];var publishContent=publishOperation({name:"publish",summary:"\u30B3\u30F3\u30C6\u30F3\u30C4\u3092\u3044\u307E\u306E\u4E0B\u66F8\u304D\u3067\u516C\u958B\u3059\u308B\uFF08--yes \u304C\u5FC5\u8981\uFF09",
249
+ usage:PUBLISH_USAGE,description:"\u753B\u9762\u306E\u300C\u516C\u958B\u8A2D\u5B9A\u300D\u2192\u300C\u4ECA\u3059\u3050\u516C\u958B\u300D\u3068\u540C\u3058\u3067\u3059\u3002\u516C\u958B\u4E2D\u306E\u7248\u304C\u3044\u307E\u306E\u4E0B\u66F8\u304D\u3067\u7F6E\u304D\u63DB\u308F\u308A\u3001\u30AB\u30C6\u30B4\u30EA\u306E\u516C\u958B\u901A\u77E5 Hook \u304C\u52D5\u304D\u307E\u3059\u3002\n\u30EF\u30FC\u30AF\u30D5\u30ED\u30FC\uFF08\u516C\u958B\u627F\u8A8D\uFF09\u304C\u5FC5\u8981\u306A\u30AB\u30C6\u30B4\u30EA\u3067\u306F\u3001\u753B\u9762\u306B\u300C\u516C\u958B\u8A2D\u5B9A\u300D\u306F\u51FA\u307E\u305B\u3093\uFF08\u627F\u8A8D\u3092\u7D4C\u308B\u306A\u3089 twp content apply-workflow\uFF09\u3002\u30B5\u30FC\u30D0\u306F\u76F4\u63A5\u306E\u516C\u958B\u3092\u6B62\u3081\u306A\u3044\u306E\u3067\u3001\u8B66\u544A\u3092\u51FA\u3057\u305F\u3046\u3048\u3067 --yes \u304C\u3042\u308C\u3070\u9001\u308A\u307E\u3059\u3002",
250
+ method:"POST",suffix:"/publish",gates:[PENDING_REVIEW_GATE,PUBLISHER_GATE],cautions:[row=>row["workflow_enabled"]===true?WORKFLOW_BYPASS:void 0],destructive:true,summarize:body=>pick(dataRecord(body,"\u516C\u958B"),["id","title","slug","version","published_at"]),raw:dataOrSelf("\u516C\u958B")});var scheduleContent=publishOperation({name:"schedule",summary:"\u30B3\u30F3\u30C6\u30F3\u30C4\u306E\u516C\u958B\u3092\u4E88\u7D04\u3059\u308B\uFF08--at <\u65E5\u6642>\u30FB\u6642\u5DEE\u3092\u7701\u304F\u3068 JST\uFF09",
251
+ usage:SCHEDULE_USAGE,description:"\u753B\u9762\u306E\u300C\u516C\u958B\u8A2D\u5B9A\u300D\u2192\u300C\u516C\u958B\u4E88\u7D04\u300D\u3068\u540C\u3058\u3067\u3059\u3002\u4E88\u7D04\u3057\u305F\u65E5\u6642\u306B\u3001\u305D\u306E\u6642\u70B9\u306E\u4E0B\u66F8\u304D\u3067\u516C\u958B\u3055\u308C\u307E\u3059\u3002\u65E2\u306B\u4E88\u7D04\u304C\u3042\u308C\u3070\u7F6E\u304D\u63DB\u3048\u307E\u3059\u3002\n--at \u306F\u300C2026-11-01 09:00\u300D\u306E\u3088\u3046\u306B\u6642\u5DEE\u3092\u7701\u304F\u3068 JST \u3068\u3057\u3066\u8AAD\u307F\u307E\u3059\u3002\u6642\u5DEE\u4ED8\u304D\uFF08+09:00 / Z\uFF09\u3082\u53D7\u3051\u307E\u3059\u3002\u30B5\u30FC\u30D0\u3078\u306F UTC \u3067\u9001\u308A\u307E\u3059\u3002\n\u30EF\u30FC\u30AF\u30D5\u30ED\u30FC\uFF08\u516C\u958B\u627F\u8A8D\uFF09\u304C\u5FC5\u8981\u306A\u30AB\u30C6\u30B4\u30EA\u3067\u306F\u3001\u753B\u9762\u306B\u4E88\u7D04\u306F\u51FA\u307E\u305B\u3093\u3002\u8B66\u544A\u3092\u51FA\u3057\u3001--yes \u304C\u3042\u308C\u3070\u9001\u308A\u307E\u3059\uFF08\u627F\u8A8D\u3092\u7D4C\u308B\u306A\u3089 twp content apply-workflow\uFF09\u3002",
252
+ method:"POST",suffix:"/schedule",gates:[PENDING_REVIEW_GATE,PUBLISHER_GATE],cautions:[row=>row["workflow_enabled"]===true?WORKFLOW_BYPASS:void 0],flags:[{name:"--at",summary:"\u516C\u958B\u3059\u308B\u65E5\u6642\uFF08\u6642\u5DEE\u3092\u7701\u304F\u3068 JST\uFF09",takesValue:true,placeholder:"<\u65E5\u6642>"}],body(input){const raw=nonEmpty(input.flags,"--at");if(raw===void 0)throw new UsageError("--at\uFF08\u516C\u958B\u3059\u308B\u65E5\u6642\uFF09\u3092\u6307\u5B9A\u3057\u3066\u304F\u3060\u3055\u3044",
253
+ SCHEDULE_USAGE);return{scheduled_at:scheduleAt(raw)}},summarize:body=>pick(dataRecord(body,"\u516C\u958B\u4E88\u7D04"),["schedule_id","content_id","scheduled_at","status","version"]),raw:dataOrSelf("\u516C\u958B\u4E88\u7D04"),notes:body=>{const at=isRecord(body)&&isRecord(body["data"])?body["data"]["scheduled_at"]:void 0;const ms=typeof at==="string"?Date.parse(at):NaN;return Number.isNaN(ms)?[]:[`\u516C\u958B\u4E88\u5B9A: ${new Date(ms+9*36e5).toISOString().slice(0,16).replace("T"," ")}\uFF08JST\uFF09`]}});
254
+ var unscheduleContent=publishOperation({name:"unschedule",summary:"\u30B3\u30F3\u30C6\u30F3\u30C4\u306E\u516C\u958B\u4E88\u7D04\u3092\u53D6\u308A\u6D88\u3059",usage:UNSCHEDULE_USAGE,description:"\u516C\u958B\u4E88\u7D04\u3092\u53D6\u308A\u6D88\u3057\u3001\u516C\u958B\u72B6\u614B\u3092\u4E88\u7D04\u524D\uFF08\u516C\u958B\u6E08\u307F\u306A\u3089\u300C\u516C\u958B\u4E2D\u300D\u3001\u305D\u308C\u4EE5\u5916\u306F\u300C\u672A\u516C\u958B\u300D\uFF09\u3078\u623B\u3057\u307E\u3059\u3002\u516C\u958B\u4E2D\u306E\u7248\u306F\u305D\u306E\u307E\u307E\u6B8B\u308A\u307E\u3059\u3002",
255
+ method:"DELETE",suffix:"/schedule",gates:[PUBLISHER_GATE],summarize:messageOnly,raw:messageOnly});var unpublishContent=publishOperation({name:"unpublish",summary:"\u30B3\u30F3\u30C6\u30F3\u30C4\u306E\u516C\u958B\u3092\u505C\u6B62\u3059\u308B\uFF08--yes \u304C\u5FC5\u8981\uFF09",usage:UNPUBLISH_USAGE,description:"\u516C\u958B\u4E2D\u306E\u7248\u3092\u5916\u90E8\u30B5\u30A4\u30C8\u304B\u3089\u53D6\u308A\u4E0B\u3052\u307E\u3059\u3002\u4E0B\u66F8\u304D\u306F\u6B8B\u308A\u3001\u3082\u3046\u4E00\u5EA6 twp content publish \u3067\u516C\u958B\u3067\u304D\u307E\u3059\u3002",
256
+ method:"POST",suffix:"/unpublish",gates:[PUBLISHER_GATE,row=>isPublished(row)?void 0:"\u3053\u306E\u30B3\u30F3\u30C6\u30F3\u30C4\u306F\u516C\u958B\u3055\u308C\u3066\u3044\u307E\u305B\u3093\uFF08\u516C\u958B\u4E2D\u306E\u7248\u304C\u3042\u308A\u307E\u305B\u3093\uFF09\u3002"],destructive:true,summarize:body=>pick(dataRecord(body,"\u516C\u958B\u505C\u6B62"),DRAFT_SUMMARY),raw:dataOrSelf("\u516C\u958B\u505C\u6B62")});var archiveContent=publishOperation({name:"archive",summary:"\u30B3\u30F3\u30C6\u30F3\u30C4\u3092\u30A2\u30FC\u30AB\u30A4\u30D6\u3059\u308B\uFF08\u516C\u958B\u505C\u6B62\u30FB\u4E88\u7D04\u306E\
257
+ \u53D6\u308A\u6D88\u3057\u3092\u4F34\u3046\u3002--yes \u304C\u5FC5\u8981\uFF09",usage:ARCHIVE_USAGE,description:"\u753B\u9762\u306E\u300C\u305D\u306E\u4ED6\u300D\u2192\u300C\u30A2\u30FC\u30AB\u30A4\u30D6\u300D\u3068\u540C\u3058\u3067\u3059\u3002\u516C\u958B\u4E2D\u306E\u7248\u3092\u53D6\u308A\u4E0B\u3052\u3001\u516C\u958B\u4E88\u7D04\u3082\u53D6\u308A\u6D88\u3057\u3066\u3001\u72B6\u614B\u3092\u300C\u30A2\u30FC\u30AB\u30A4\u30D6\u300D\u306B\u3057\u307E\u3059\u3002",method:"POST",suffix:"/archive",
258
+ gates:[PENDING_REVIEW_GATE,PUBLISHER_GATE],destructive:true,summarize:body=>pick(dataRecord(body,"\u30A2\u30FC\u30AB\u30A4\u30D6"),DRAFT_SUMMARY),raw:dataOrSelf("\u30A2\u30FC\u30AB\u30A4\u30D6")});var applyWorkflowContent=publishOperation({name:"apply-workflow",summary:"\u30B3\u30F3\u30C6\u30F3\u30C4\u306E\u516C\u958B\u627F\u8A8D\uFF08\u30EF\u30FC\u30AF\u30D5\u30ED\u30FC\uFF09\u3092\u7533\u8ACB\u3059\u308B",usage:APPLY_USAGE,description:"\u753B\u9762\u306E\u300C\u516C\u958B\u627F\u8A8D\u7533\u8ACB\u300D\u3068\u540C\u3058\u3067\u3059\u3002\u627F\u8A8D\u30FB\u5DEE\u3057\u623B\u3057\u306F twp workflow \u3067\u884C\u3044\u3001\u627F\u8A8D\u3055\u308C\u308B\u3068\u30B5\u30FC\u30D0\u304C\u30B3\u30F3\u30C6\u30F3\u30C4\
259
+ \u3092\u516C\u958B\u3057\u307E\u3059\u3002\n\u7533\u8ACB\u306E\u72B6\u6CC1\u306F twp content workflow <\u30B3\u30F3\u30C6\u30F3\u30C4ID> \u3067\u78BA\u8A8D\u3067\u304D\u307E\u3059\u3002\u30EF\u30FC\u30AF\u30D5\u30ED\u30FC\u304C\u4E0D\u8981\u306A\u30AB\u30C6\u30B4\u30EA\u3067\u306F\u7533\u8ACB\u3057\u307E\u305B\u3093\uFF08twp content publish \u3067\u516C\u958B\u3057\u3066\u304F\u3060\u3055\u3044\uFF09\u3002",method:"POST",suffix:"/apply-workflow",gates:[PUBLISHER_GATE,row=>row["workflow_enabled"]!==
260
+ true?"\u3053\u306E\u30B3\u30F3\u30C6\u30F3\u30C4\u306E\u30AB\u30C6\u30B4\u30EA\u306F\u516C\u958B\u306B\u30EF\u30FC\u30AF\u30D5\u30ED\u30FC\u304C\u4E0D\u8981\u3067\u3059\u3002twp content publish <\u30B3\u30F3\u30C6\u30F3\u30C4ID> --yes \u3067\u516C\u958B\u3057\u3066\u304F\u3060\u3055\u3044\u3002":void 0],flags:[{name:"--comment",summary:"\u7533\u8ACB\u306E\u30B3\u30E1\u30F3\u30C8\uFF081000\u5B57\u307E\u3067\uFF09",takesValue:true,placeholder:"<\u30B3\u30E1\u30F3\u30C8>"},{name:"--description",summary:"\
261
+ \u7533\u8ACB\u306E\u8AAC\u660E\uFF081000\u5B57\u307E\u3067\uFF09",takesValue:true,placeholder:"<\u8AAC\u660E>"}],body(input){const comment=boundedText(input,"--comment",{maxChars:1e3,label:"\u7533\u8ACB\u306E\u30B3\u30E1\u30F3\u30C8"});const description=boundedText(input,"--description",{maxChars:1e3,label:"\u7533\u8ACB\u306E\u8AAC\u660E"});return{...comment!==void 0?{comment}:{},...description!==void 0?{description}:{}}},summarize:body=>pick(dataRecord(body,"\u516C\u958B\u627F\u8A8D\u7533\u8ACB"),
262
+ ["id","workflow_name","status","current_step_no","applicant_name","applied_at"]),raw:dataOrSelf("\u516C\u958B\u627F\u8A8D\u7533\u8ACB"),badRequestHint:"\u7533\u8ACB\u3092\u65AD\u3089\u308C\u308B\u4E3B\u306A\u7406\u7531: \u30AB\u30C6\u30B4\u30EA\u306B\u516C\u958B\u627F\u8A8D\u30EF\u30FC\u30AF\u30D5\u30ED\u30FC\u304C\u8A2D\u5B9A\u3055\u308C\u3066\u3044\u306A\u3044\u30FB\u305D\u306E\u30EF\u30FC\u30AF\u30D5\u30ED\u30FC\u304C\u7121\u52B9\uFF08\u505C\u6B62\u4E2D\uFF09\u30FB\u65E2\u306B\u7533\u8ACB\u4E2D\u30FB\u627F\u8A8D\u8005\u304C\u89E3\u6C7A\u3067\u304D\u306A\u3044\u3002\u30AB\u30C6\u30B4\u30EA\u306E workflow_settings.workflow_id \u306F twp content category get <\u30AB\u30C6\u30B4\u30EA> --output json\u3001\u30EF\u30FC\u30AF\u30D5\u30ED\u30FC\u306E\u72B6\u614B\u306F twp workflow get <\u30EF\u30FC\u30AF\u30D5\u30ED\u30FCID> \u3067\u78BA\u8A8D\u3067\u304D\u307E\u3059\u3002",
263
+ notes:()=>["\u627F\u8A8D\u30FB\u5DEE\u3057\u623B\u3057\u306F twp workflow \u3067\u884C\u3044\u307E\u3059\u3002\u72B6\u6CC1\u306F twp content workflow <\u30B3\u30F3\u30C6\u30F3\u30C4ID> \u3067\u78BA\u8A8D\u3067\u304D\u307E\u3059\u3002"]});var previewUrlOperation={name:"preview-url",summary:"\u5916\u90E8\u30B5\u30A4\u30C8\u3067\u306E\u4E0B\u66F8\u304D\u306E\u30D7\u30EC\u30D3\u30E5\u30FC URL \u3092\u767A\u884C\u3059\u308B",usage:PREVIEW_USAGE2,description:"\u753B\u9762\u306E\u300C\u30D7\u30EC\u30D3\u30E5\u30FC\u300D\u3068\u540C\u3058\u3067\u3059\u3002\u30AB\u30C6\u30B4\u30EA\u306E\u30D7\u30EC\u30D3\u30E5\u30FC\u8A2D\u5B9A\uFF08\u8A73\u7D30\u30D7\u30EC\u30D3\u30E5\u30FC\u306E URL \
264
+ \u30D1\u30BF\u30FC\u30F3\uFF09\u306B\u30B3\u30F3\u30C6\u30F3\u30C4\u3092\u57CB\u3081\u3001\u30D7\u30EC\u30D3\u30E5\u30FC\u7528\u30C8\u30FC\u30AF\u30F3\u3092\u4ED8\u3051\u305F URL \u3092\u30B5\u30FC\u30D0\u304C\u7D44\u307F\u7ACB\u3066\u3066\u8FD4\u3057\u307E\u3059\u3002\n**URL \u306F\u30ED\u30B0\u30A4\u30F3\u4E0D\u8981\u3067\u672A\u516C\u958B\u306E\u4E0B\u66F8\u304D\u3092\u8AAD\u3081\u308B\u6301\u53C2\u4EBA\u30C8\u30FC\u30AF\u30F3\uFF08preview_token\uFF09\u3092\u542B\u307F\u307E\u3059\u3002** \u65E2\u5B9A\u3067\u306F\u51FA\u529B\u306E\u30C8\u30FC\u30AF\u30F3\u304C\u4F0F\u5B57\u306B\u306A\u308B\u306E\u3067\u3001\u958B\u304F\u3068\u304D\u306F --no-redact \u3092\u4ED8\u3051\u3066\u304F\u3060\u3055\u3044\u3002\n\u30AB\u30C6\u30B4\u30EA\u3067\u30D7\u30EC\u30D3\u30E5\u30FC\u304C\u7121\u52B9\u30FBURL \u30D1\u30BF\u30FC\u30F3\u304C\u672A\u8A2D\u5B9A\u306A\u3089\u30B5\u30FC\u30D0\u304C\u65AD\u308A\u307E\u3059\uFF08twp content category get <\u30AB\u30C6\u30B4\u30EA> --output json \u306E preview_settings \u3067\u78BA\u8A8D\uFF09\u3002",
265
+ forbidden:previewForbidden,flags:[CONTENT_REF_FLAG2],plan:input=>({method:"POST",path:contentPath2(contentId(input,PREVIEW_USAGE2),"/preview-token")}),async execute(input,ctx){try{return await ctx.send({method:"POST",path:contentPath2(contentId(input,PREVIEW_USAGE2),"/preview-token")})}catch(error){if(!(error instanceof ApiError)||error.status!==400)throw error;const wrapped=new ApiError(error.status,error.body,"","",error.retryAfterSeconds);wrapped.message=`${error.message}
266
+ \u30AB\u30C6\u30B4\u30EA\u306E\u8A73\u7D30\u30D7\u30EC\u30D3\u30E5\u30FC\u304C\u7121\u52B9\u304B\u3001\u30D7\u30EC\u30D3\u30E5\u30FC URL \u304C\u672A\u8A2D\u5B9A\u3067\u3059\uFF08\u753B\u9762\u306E\u30AB\u30C6\u30B4\u30EA\u8A2D\u5B9A\u300C\u30D7\u30EC\u30D3\u30E5\u30FC\u8A2D\u5B9A\u300D\u3002twp content category get <\u30AB\u30C6\u30B4\u30EA> --output json \u306E preview_settings.detail_preview \u3067\u78BA\u8A8D\u3067\u304D\u307E\u3059\uFF09\u3002`;throw wrapped}},summarize:body=>pick(previewBody(
267
+ body),["preview_url","expires_in"]),raw:previewBody,notes:body=>{const ttl=previewBody(body)["expires_in"];return typeof ttl==="number"?[`\u30D7\u30EC\u30D3\u30E5\u30FC URL \u306E\u6709\u52B9\u671F\u9650\u306F ${ttl} \u79D2\u3067\u3059\u3002`]:[]}};function previewBody(body){if(!isRecord(body)||typeof body["preview_url"]!=="string"){throw new ApiResponseError("\u30D7\u30EC\u30D3\u30E5\u30FC URL \u306E\u5FDC\u7B54\u306B preview_url \u304C\u3042\u308A\u307E\u305B\u3093\u3002\u63A5\u7D9A\u5148\u3092\u78BA\u8A8D\u3057\u3066\u304F\u3060\u3055\u3044\u3002")}
268
+ return body}var CATEGORY_LIST_USAGE="twp content category list [--active | --inactive]";var categoryListOperation={name:"list",summary:"\u30B3\u30F3\u30C6\u30F3\u30C4\u306E\u30AB\u30C6\u30B4\u30EA\u3092\u4E00\u89A7\u3059\u308B",usage:CATEGORY_LIST_USAGE,description:`--output json \u306F\u30D5\u30A9\u30FC\u30E0\u5B9A\u7FA9\uFF08schema.form_fields\uFF09\u3092\u542B\u3080\u5168\u30D5\u30A3\u30FC\u30EB\u30C9\u3067\u3059\u3002
269
+ --output table / text / tsv \u306F\u8981\u7D04\u5217\uFF08${CATEGORY_COLUMNS2.join(" / ")}\uFF09\u3067\u3059\u3002`,flags:activeFlags("\u30AB\u30C6\u30B4\u30EA"),plan(input){noArgs(input,CATEGORY_LIST_USAGE);return{method:"GET",path:CATEGORIES_PATH4,query:{is_active:activeQuery(input)}}},summarize:body=>dataList(body,"\u30AB\u30C6\u30B4\u30EA\u4E00\u89A7").map(row=>pick(row,CATEGORY_COLUMNS2)),raw:body=>dataList(body,"\u30AB\u30C6\u30B4\u30EA\u4E00\u89A7").map(withoutHookSecrets),sensitiveBody:HOOK_SECRETS3};
270
+ var CATEGORY_REF_FLAG={name:"--category",summary:"\u5BFE\u8C61\u306E\u30AB\u30C6\u30B4\u30EA\uFF08\u4F4D\u7F6E\u5F15\u6570\u306E\u4EE3\u308F\u308A\u306B\u4F7F\u3048\u308B\uFF09",takesValue:true,placeholder:"<\u30AB\u30C6\u30B4\u30EA>"};var CATEGORY_GET_USAGE="twp content category get <\u30AB\u30C6\u30B4\u30EA\uFF08ID\u30FB\u30B3\u30FC\u30C9\u30FB\u540D\u524D\uFF09> [--output text]";var categoryGetOperation={name:"get",summary:"\u30AB\u30C6\u30B4\u30EA1\u4EF6\u3068\u30D5\u30A9\u30FC\u30E0\u5B9A\u7FA9\uFF08\u9805\u76EE\u540D\u30FB\u578B\u30FB\u5FC5\u9808\u30FB\u9078\u629E\u80A2\uFF09\u3092\u8868\u793A\u3059\u308B",
271
+ usage:CATEGORY_GET_USAGE,description:"\u30AB\u30C6\u30B4\u30EA\u306F ID\u30FB\u30B3\u30FC\u30C9\u30FB\u540D\u524D\u306E\u3069\u308C\u3067\u3082\u6307\u5B9A\u3067\u304D\u307E\u3059\u3002\n--output table / tsv \u306F\u30D5\u30A9\u30FC\u30E0\u9805\u76EE\u30921\u884C\u305A\u3064\uFF08name / display_name / type / required / options\uFF09\u3001--output text \u306F\u8AAD\u3081\u308B\u5F62\u3067\u51FA\u3057\u307E\u3059\u3002\n--output json \u306F\u30AB\u30C6\u30B4\u30EA\u306E\u5168\u30D5\u30A3\u30FC\u30EB\u30C9\u3067\u3059\u3002",
272
+ flags:[CATEGORY_REF_FLAG],async prepare(input,ctx){const ref=singleRef(input,{flag:CATEGORY_REF_FLAG.name,label:"\u30AB\u30C6\u30B4\u30EA",usage:CATEGORY_GET_USAGE});return withResolved(input,{id:await categoryIdOf(ref,ctx,"<\u30AB\u30C6\u30B4\u30EA>")})},plan:input=>({method:"GET",path:`${CATEGORIES_PATH4}/${encodeURIComponent(requireResolved(input,"id"))}`}),summarize:body=>formFields(dataRecord(body,"\u30AB\u30C6\u30B4\u30EA")).map(f=>({...pick(f,FIELD_COLUMNS),options:Array.isArray(f["option\
273
+ s"])?f["options"].filter(isRecord).map(o=>`${String(o["key"])}=${String(o["value"])}`).join(" / "):null})),raw:body=>withoutHookSecrets(dataRecord(body,"\u30AB\u30C6\u30B4\u30EA")),document:categoryDocument,sensitiveBody:HOOK_SECRETS3};function activeFlags(what){return[{name:"--active",summary:`\u6709\u52B9\u306A${what}\u3060\u3051`,takesValue:false},{name:"--inactive",summary:`\u7121\u52B9\u306A${what}\u3060\u3051`,takesValue:false}]}function activeQuery(input){if(input.flags.has("--active")&&input.
274
+ flags.has("--inactive"))throw new UsageError("--active \u3068 --inactive \u306F\u540C\u6642\u306B\u6307\u5B9A\u3067\u304D\u307E\u305B\u3093");if(input.flags.has("--active"))return"true";if(input.flags.has("--inactive"))return"false";return void 0}var TAG_DESCRIPTION=`--output json \u306F\u5168\u30D5\u30A3\u30FC\u30EB\u30C9\u3067\u3059\u3002--output table / text / tsv \u306F\u8981\u7D04\u5217\uFF08${TAG_COLUMNS2.join(" / ")}\uFF09\u3067\u3059\u3002\u30DA\u30FC\u30B8\u30F3\u30B0\u306F\u3042\u308A\u307E\u305B\u3093\u3002`;
275
+ function tagListOperation(name,summary,usage,path,extra=[]){return{name,summary,usage,description:TAG_DESCRIPTION,flags:[...extra,...activeFlags("\u30BF\u30B0")],plan(input){noArgs(input,usage);return{method:"GET",path,query:{is_active:activeQuery(input),scope:nonEmpty(input.flags,"--scope")?.trim()}}},summarize:body=>dataList(body,"\u30BF\u30B0\u4E00\u89A7").map(row=>pick(row,TAG_COLUMNS2)),raw:body=>dataList(body,"\u30BF\u30B0\u4E00\u89A7")}}var TAG_SCOPE_FLAG2={name:"--scope",summary:"\u30B9\u30B3\u30FC\u30D7\uFF08fr\
276
+ ee=\u81EA\u7531\u30BF\u30B0 / field:<\u30AB\u30C6\u30B4\u30EAID>:<\u9805\u76EE\u540D>\uFF09\u3067\u7D5E\u308A\u8FBC\u3080",takesValue:true,placeholder:"<\u30B9\u30B3\u30FC\u30D7>"};var tagList=tagListOperation("list","\u30BF\u30B0\u3092\u4E00\u89A7\u3059\u308B\uFF08\u81EA\u7531\u30BF\u30B0\u3068\u30D5\u30A3\u30FC\u30EB\u30C9\u30BF\u30B0\u306E\u4E21\u65B9\uFF09","twp content tag list [--scope <\u30B9\u30B3\u30FC\u30D7>] [--active | --inactive]",TAGS_PATH3,[TAG_SCOPE_FLAG2]);var tagFree=tagListOperation(
277
+ "free","\u81EA\u7531\u30BF\u30B0\uFF08\u3069\u306E\u9805\u76EE\u306B\u3082\u5C5E\u3055\u306A\u3044\u30BF\u30B0\uFF09\u3092\u4E00\u89A7\u3059\u308B","twp content tag free [--active | --inactive]",`${TAGS_PATH3}/free`);var TAG_FIELD_USAGE="twp content tag field <\u30AB\u30C6\u30B4\u30EA\uFF08ID\u30FB\u30B3\u30FC\u30C9\u30FB\u540D\u524D\uFF09> <\u9805\u76EE\u540D>";var tagField={name:"field",summary:"\u30AB\u30C6\u30B4\u30EA\u306E\u30BF\u30B0\u578B\u306E\u9805\u76EE\u306B\u4ED8\u3044\u305F\u30BF\u30B0\u3092\u4E00\u89A7\u3059\u308B",
278
+ usage:TAG_FIELD_USAGE,description:`\u9805\u76EE\u540D\u306F\u30D5\u30A9\u30FC\u30E0\u5B9A\u7FA9\u306E name\uFF08twp content category get \u3067\u78BA\u8A8D\uFF09\u3067\u3059\u3002
279
+ ${TAG_DESCRIPTION}`,flags:activeFlags("\u30BF\u30B0"),async prepare(input,ctx){const[category,field,...rest]=input.args;if(category===void 0||field===void 0||rest.length>0||field.trim()===""){throw new UsageError("\u30AB\u30C6\u30B4\u30EA\u3068\u9805\u76EE\u540D\u30921\u3064\u305A\u3064\u6307\u5B9A\u3057\u3066\u304F\u3060\u3055\u3044",TAG_FIELD_USAGE)}if(!isSafePathSegment(field.trim()))throw new UsageError(`\u9805\u76EE\u540D\u3068\u3057\u3066\u4F7F\u3048\u306A\u3044\u5024\u3067\u3059: ${field}`,
280
+ TAG_FIELD_USAGE);return withResolved(input,{category_id:await categoryIdOf(category,ctx,"<\u30AB\u30C6\u30B4\u30EA>"),field:field.trim()})},plan:input=>({method:"GET",path:`${TAGS_PATH3}/field/${encodeURIComponent(requireResolved(input,"category_id"))}/${encodeURIComponent(requireResolved(input,"field"))}`,query:{is_active:activeQuery(input)}}),summarize:body=>dataList(body,"\u30BF\u30B0\u4E00\u89A7").map(row=>pick(row,TAG_COLUMNS2)),raw:body=>dataList(body,"\u30BF\u30B0\u4E00\u89A7"),sensitiveBody:HOOK_SECRETS3};
281
+ var TAG_SEARCH_USAGE="twp content tag search <\u8A9E> [--scope <\u30B9\u30B3\u30FC\u30D7>]";var tagSearch={name:"search",summary:"\u5024\u30FB\u8868\u793A\u540D\u306E\u8A9E\u3067\u30BF\u30B0\u3092\u63A2\u3059",usage:TAG_SEARCH_USAGE,description:TAG_DESCRIPTION,flags:[TAG_SCOPE_FLAG2,...activeFlags("\u30BF\u30B0")],plan(input){const q=singleRef(input,{flag:"--query",label:"\u691C\u7D22\u8A9E",usage:TAG_SEARCH_USAGE});return{method:"GET",path:`${TAGS_PATH3}/search`,query:{q,scope:nonEmpty(input.flags,
282
+ "--scope")?.trim(),is_active:activeQuery(input)}}},summarize:body=>dataList(body,"\u30BF\u30B0\u4E00\u89A7").map(row=>pick(row,TAG_COLUMNS2)),raw:body=>dataList(body,"\u30BF\u30B0\u4E00\u89A7")};var TAG_GET_USAGE="twp content tag get <\u30BF\u30B0\uFF08ID\u30FB\u5024\u30FB\u8868\u793A\u540D\uFF09>";var tagGet={name:"get",summary:"\u30BF\u30B01\u4EF6\u3092\u8868\u793A\u3059\u308B",usage:TAG_GET_USAGE,description:"\u30BF\u30B0\u306F ID\u30FB\u5024\uFF08value\uFF09\u30FB\u8868\u793A\u540D\u306E\u3069\u308C\u3067\u3082\u6307\u5B9A\u3067\u304D\u307E\u3059\u3002\u8868\u793A\u540D\u304C\u91CD\u306A\u308B\u3068\u304D\u306F\u5019\u88DC\u3092\u51FA\u3057\u3066\u6B62\u3081\u307E\u3059\uFF08ID \u304B\u5024\u3067\u6307\u5B9A\u3057\u76F4\u3057\u3066\u304F\u3060\u3055\u3044\uFF09\u3002",
283
+ flags:[{name:"--tag",summary:"\u5BFE\u8C61\u306E\u30BF\u30B0\uFF08\u4F4D\u7F6E\u5F15\u6570\u306E\u4EE3\u308F\u308A\u306B\u4F7F\u3048\u308B\uFF09",takesValue:true,placeholder:"<\u30BF\u30B0>"}],async prepare(input,ctx){const ref=singleRef(input,{flag:"--tag",label:"\u30BF\u30B0",usage:TAG_GET_USAGE});const id=UUID_RE.test(ref)?ref:serverId((await ctx.resolver.cmsTag(ref)).id,"\u30BF\u30B0");return withResolved(input,{id})},plan:input=>({method:"GET",path:`${TAGS_PATH3}/${encodeURIComponent(requireResolved(
284
+ input,"id"))}`}),summarize:body=>pick(dataRecord(body,"\u30BF\u30B0"),[...TAG_COLUMNS2,"color","sort","is_system","updated_at"]),raw:body=>dataRecord(body,"\u30BF\u30B0")};function withForbidden(operations){return operations.map(op=>({...op,forbidden:op.forbidden??FORBIDDEN2}))}var categoryResource={name:"category",summary:"\u30B3\u30F3\u30C6\u30F3\u30C4\u306E\u30AB\u30C6\u30B4\u30EA\uFF08\u4E00\u89A7\u30FB\u30D5\u30A9\u30FC\u30E0\u5B9A\u7FA9\u306E\u8868\u793A\u30FB\u4F5C\u6210\u30FB\u66F4\u65B0\u30FB\u524A\u9664\u30FB\u4E00\u89A7\u30D7\u30EC\u30D3\u30E5\u30FC\u306E URL\u30FBAI \u8A2D\u8A08\uFF09",
285
+ operations:withForbidden([categoryListOperation,categoryGetOperation,...categoryWriteOperations,categoryDesignOperation])};var tagResource={name:"tag",summary:"\u30B3\u30F3\u30C6\u30F3\u30C4\u306E\u30BF\u30B0\uFF08\u4E00\u89A7\u30FB\u81EA\u7531\u30BF\u30B0\u30FB\u9805\u76EE\u306E\u30BF\u30B0\u30FB\u691C\u7D22\u30FB\u8868\u793A\u30FB\u4F5C\u6210\u30FB\u66F4\u65B0\u30FB\u524A\u9664\uFF09",operations:withForbidden([tagList,tagFree,tagField,tagSearch,tagGet,...tagWriteOperations])};var contentDomain={
286
+ name:"content",summary:"\u30B3\u30F3\u30C6\u30F3\u30C4\u7BA1\u7406\uFF08CMS\uFF09\uFF08\u4E00\u89A7\u30FB\u672C\u6587\u30FB\u4F5C\u6210\u30FB\u66F4\u65B0\u30FB\u524A\u9664\u30FB\u5909\u66F4\u5C65\u6B74\u30FB\u5DEE\u5206\u30FB\u30EF\u30FC\u30AF\u30D5\u30ED\u30FC\u30FB\u516C\u958B\u64CD\u4F5C\u30FB\u30D7\u30EC\u30D3\u30E5\u30FC\u30FBAI \u751F\u6210\u30FB\u30AB\u30C6\u30B4\u30EA\u30FB\u30BF\u30B0\uFF09",operations:withForbidden([listOperation,getOperation,contentCreateOperation,contentUpdateOperation,
287
+ contentDeleteOperation,historyOperation,diffOperation,workflowOperation,publishContent,scheduleContent,unscheduleContent,unpublishContent,archiveContent,applyWorkflowContent,previewUrlOperation,contentGenerateOperation]),subresources:[categoryResource,tagResource]};export{contentDomain,contentStateLine,diffRows,fieldText,scheduleAt,sortQuery};
@@ -1,6 +1,6 @@
1
1
  import { createRequire as __twpCreateRequire } from 'node:module';
2
2
  const require = __twpCreateRequire(import.meta.url);
3
- import{contractAiReviewResources}from"./chunk-N3TO2KIZ.js";import"./chunk-45JULJ2S.js";import{featureLicenseGuidance,licenseForbidden}from"./chunk-PMQDBTQH.js";import{isoDate}from"./chunk-JJSBBWJ5.js";import{readBody}from"./chunk-HEH3PUW2.js";import"./chunk-W4NLJ2YK.js";import"./chunk-BD7O73GK.js";import{repeatedValues}from"./chunk-VGT2EGH6.js";import{SALES_CONTRACTS_PATH,isExactNumericId,resolveNamed}from"./chunk-MSQ4ZGMA.js";import"./chunk-HVZUXLQ4.js";
3
+ import{contractAiReviewResources}from"./chunk-YPEEZXOX.js";import"./chunk-K2OFZL2O.js";import{featureLicenseGuidance,licenseForbidden}from"./chunk-DK77GMSP.js";import{isoDate}from"./chunk-JJSBBWJ5.js";import{readBody}from"./chunk-HEH3PUW2.js";import"./chunk-W4NLJ2YK.js";import"./chunk-BD7O73GK.js";import{repeatedValues}from"./chunk-VGT2EGH6.js";import{SALES_CONTRACTS_PATH,isExactNumericId,resolveNamed}from"./chunk-A7MM5WSC.js";import"./chunk-HVZUXLQ4.js";
4
4
  import"./chunk-JA5A6UJ2.js";import"./chunk-MMVXE2CJ.js";import"./chunk-SBRTBKEZ.js";import{LIST_PAGING_HELP,PAGE_NUMBER_LIST_FLAGS,PAGE_NUMBER_PAGING_HELP,STABLE_PAGE_ORDER,nonEmpty,pageNumberPaging,pageNumberQuery,pageRangeNotes}from"./chunk-MI6HVYR2.js";import{requireResolved,withResolved}from"./chunk-PS5QFKHB.js";import{acknowledgement,isRecord,pick}from"./chunk-3ZRMMBP5.js";import{ApiResponseError,UsageError}from"./chunk-VFPY2A23.js";import"./chunk-XNLIEUAW.js";
5
5
  import"./chunk-J7QYPKVK.js";import"./chunk-EDF4U5BT.js";import"./chunk-RZVI6PMW.js";import"./chunk-OKATZ4SN.js";import"./chunk-NHYMHCAT.js";import"./chunk-VSJBJXZO.js";var PATH=SALES_CONTRACTS_PATH;var SALES_FORBIDDEN=licenseForbidden(featureLicenseGuidance("\u8CA9\u58F2\u7BA1\u7406"));var DISAMBIGUATION="\u53D6\u5F15\u5951\u7D04\u306F\u898B\u7A4D\u304B\u3089\u4F5C\u308B\u8CA9\u58F2\u7BA1\u7406\u306E\u66F8\u985E\u3067\u3059\uFF08\u660E\u7D30\u30FB\u91D1\u984D\u3092\u6301\u3061\u3001\u627F\u8A8D\u30EF\u30FC\u30AF\u30D5\u30ED\u30FC\u306B\u4E57\u308A\u307E\u3059\uFF09\u3002\n\u9867\u5BA2\u306B\u7D10\u3065\u3051\u3066\u4FDD\u7BA1\u3059\u308B\u5951\u7D04\u66F8\u306E PDF \u306F\u5225\u7269\u3067\u3001twp customer contract \u3067\u6271\u3044\u307E\u3059\u3002\n\n";
6
6
  var CONTRACT_STATUSES={new:"\u4F5C\u6210\u4E2D",create_completed:"\u4F5C\u6210\u5B8C\u4E86",in_progress:"\u7533\u8ACB\u4E2D",approved:"\u627F\u8A8D\u6E08",rejected:"\u5DEE\u3057\u623B\u3057",submitted:"\u63D0\u793A\u6E08",contracted:"\u5951\u7D04\u7DE0\u7D50\u6E08",deleted:"\u524A\u9664\u6E08"};var RENEWAL_TYPES={auto_renewal:"\u81EA\u52D5\u66F4\u65B0",application_renewal:"\u7533\u8FBC\u306B\u3088\u308B\u66F4\u65B0"};function statusName(code){return CONTRACT_STATUSES[code]??code}function tableHelp(table){