@tocca-systems/twp-cli 0.16.0 → 0.17.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (45) hide show
  1. package/command-model/_routes.json +1939 -0
  2. package/command-model/analysis.json +4 -4
  3. package/command-model/attendance.json +2 -2
  4. package/command-model/badge.json +4 -4
  5. package/command-model/company.json +19 -0
  6. package/command-model/department.json +10 -0
  7. package/command-model/dynamo-inquiry.json +41 -0
  8. package/command-model/equipment.json +5 -0
  9. package/command-model/holiday.json +19 -19
  10. package/command-model/index.json +25 -25
  11. package/command-model/invoice.json +25 -3
  12. package/command-model/meeting.json +29 -9
  13. package/command-model/my-task.json +1 -0
  14. package/command-model/note.json +34 -8
  15. package/command-model/notification.json +35 -0
  16. package/command-model/private-task.json +46 -1
  17. package/command-model/project-member.json +2 -1
  18. package/command-model/project-task-comment.json +1 -1
  19. package/command-model/project-task.json +153 -4
  20. package/command-model/project.json +90 -1
  21. package/command-model/prospect.json +24 -1
  22. package/command-model/report.json +62 -18
  23. package/command-model/sales.json +150 -150
  24. package/command-model/staff-kpi.json +47 -6
  25. package/command-model/staffing-plan.json +41 -0
  26. package/command-model/survey.json +38 -29
  27. package/command-model/user-group.json +2 -2
  28. package/command-model/user.json +2 -1
  29. package/command-model/wiki.json +29 -5
  30. package/command-model/workflow-instance.json +8 -3
  31. package/dist/{ai-dispatch-NTBNFFCS.js → ai-dispatch-27EZS2S3.js} +1 -1
  32. package/dist/api-command-UIL4WGMG.js +127 -0
  33. package/dist/{chunk-2SGDY6YP.js → chunk-2VISRLWS.js} +1 -1
  34. package/dist/{chunk-3WJHTPOZ.js → chunk-H3JTPDCJ.js} +7 -4
  35. package/dist/{chunk-BPMSIIOU.js → chunk-KXFT226N.js} +11 -11
  36. package/dist/{chunk-EZCMF4I3.js → chunk-SQSVA6AT.js} +3 -2
  37. package/dist/cli.js +4 -4
  38. package/dist/{commands-UGGBVOYU.js → commands-XYKBLMXT.js} +17 -14
  39. package/dist/{project-KIPSH5GP.js → project-OKTJ32JT.js} +1 -1
  40. package/dist/run-DWQEHR6I.js +4 -0
  41. package/dist/{setup-I4PA2TQW.js → setup-AJ56N6XO.js} +1 -1
  42. package/dist/{task-UK4QO26W.js → task-7K54BO5U.js} +1 -1
  43. package/package.json +1 -1
  44. package/dist/api-command-HGTPIEAP.js +0 -73
  45. package/dist/run-BJQLIPWN.js +0 -4
@@ -1,7 +1,7 @@
1
1
  import { createRequire as __twpCreateRequire } from 'node:module';
2
2
  const require = __twpCreateRequire(import.meta.url);
3
3
  import{PRIVATE_PROJECT_REF,isPrivateProjectRef}from"./chunk-GY7KI5E5.js";import{acknowledgement,isRecord,pick,requireResolved,singleRef,withResolved}from"./chunk-GFC2ASHE.js";import{charCount,readBody}from"./chunk-QVXZEUKN.js";import{repeatedValues}from"./chunk-O52CUEDO.js";import"./chunk-QQRJLH6B.js";import{PRIVATE_TASKS_PATH,TASK_MASTERS}from"./chunk-7WEYBZSK.js";import"./chunk-JKSXUBND.js";import{PRIVATE_TASK_KEY_PREFIX,isPrivateTaskKey,isTaskKey}from"./chunk-II5RVJQN.js";
4
- import"./chunk-NERYSBA4.js";import"./chunk-RZVI6PMW.js";import"./chunk-J7QYPKVK.js";import"./chunk-NHYMHCAT.js";import{LIST_FLAGS,LIST_PAGING_HELP,envelopePaging,nonEmpty,positiveInteger}from"./chunk-2SGDY6YP.js";import{ApiResponseError,UsageError}from"./chunk-M3GWY6NT.js";import{isSafePathSegment,safeProjectIdPolicy}from"./chunk-5QCAIKFE.js";import"./chunk-VSJBJXZO.js";function classifyTaskRef(ref){const value=ref.trim();if(safeProjectIdPolicy.isDirectId(value))return{kind:"id",value};if(isTaskKey(value))return{kind:"key",value};return{kind:"unknown",value}}function wantsPrivateSurface(input){const project=input.flags.get("--project");return project!==void 0&&isPrivateProjectRef(project)}function taskSurface(input,ref){const project=input.flags.get("--project");const{kind,value}=classifyTaskRef(ref);if(project!==void 0&&isPrivateProjectRef(project)){if(kind===
4
+ import"./chunk-NERYSBA4.js";import"./chunk-RZVI6PMW.js";import"./chunk-J7QYPKVK.js";import"./chunk-NHYMHCAT.js";import{LIST_FLAGS,LIST_PAGING_HELP,envelopePaging,nonEmpty,positiveInteger}from"./chunk-2VISRLWS.js";import{ApiResponseError,UsageError}from"./chunk-M3GWY6NT.js";import{isSafePathSegment,safeProjectIdPolicy}from"./chunk-5QCAIKFE.js";import"./chunk-VSJBJXZO.js";function classifyTaskRef(ref){const value=ref.trim();if(safeProjectIdPolicy.isDirectId(value))return{kind:"id",value};if(isTaskKey(value))return{kind:"key",value};return{kind:"unknown",value}}function wantsPrivateSurface(input){const project=input.flags.get("--project");return project!==void 0&&isPrivateProjectRef(project)}function taskSurface(input,ref){const project=input.flags.get("--project");const{kind,value}=classifyTaskRef(ref);if(project!==void 0&&isPrivateProjectRef(project)){if(kind===
5
5
  "key"&&!isPrivateTaskKey(value)){throw new UsageError(`--project ${PRIVATE_PROJECT_REF}\uFF08\u500B\u4EBA\u30BF\u30B9\u30AF\uFF09\u306B ${value} \u306F\u6307\u5B9A\u3067\u304D\u307E\u305B\u3093`,`\u500B\u4EBA\u30BF\u30B9\u30AF\u306E\u30AD\u30FC\u306F ${PRIVATE_TASK_KEY_PREFIX}-<\u756A\u53F7> \u306E\u5F62\u3067\u3059\u3002ID\uFF08UUID / ULID\uFF09\u3067\u3082\u6307\u5B9A\u3067\u304D\u307E\u3059\u3002
6
6
  \u30D7\u30ED\u30B8\u30A7\u30AF\u30C8\u306E\u30BF\u30B9\u30AF\u3092\u6307\u3059\u306A\u3089 --project ${PRIVATE_PROJECT_REF} \u3092\u5916\u3057\u3066\u304F\u3060\u3055\u3044\u3002`)}return"private"}if(kind==="key"&&isPrivateTaskKey(value)&&project===void 0){throw new UsageError(`${value} \u306F\u500B\u4EBA\u30BF\u30B9\u30AF\u306E\u30AD\u30FC\u306B\u3082\u3001\u30B3\u30FC\u30C9 ${PRIVATE_TASK_KEY_PREFIX} \u306E\u30D7\u30ED\u30B8\u30A7\u30AF\u30C8\u306E\u30BF\u30B9\u30AF\u30AD\u30FC\u306B\u3082\u8AAD\u3081\u307E\u3059`,
7
7
  `\u3069\u3061\u3089\u3092\u6307\u3059\u304B --project \u3067\u9078\u3093\u3067\u304F\u3060\u3055\u3044\u3002
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@tocca-systems/twp-cli",
3
- "version": "0.16.0",
3
+ "version": "0.17.1",
4
4
  "description": "TWP CLI — Tocca Working Platform の CLI 型統合インターフェース(AIエージェントハーネス)",
5
5
  "type": "module",
6
6
  "bin": {
@@ -1,73 +0,0 @@
1
- import { createRequire as __twpCreateRequire } from 'node:module';
2
- const require = __twpCreateRequire(import.meta.url);
3
- import{readBody}from"./chunk-QVXZEUKN.js";import{OUTPUT_FORMATS,evaluateQuery,exitCodeFor,redactSecretValues,renderOutput,reportError,resolveOutputFormat,withDebug}from"./chunk-BPMSIIOU.js";import"./chunk-WVS4W5FY.js";import{AuthSession,NotLoggedInError,SessionExpiredError,loadCredentials}from"./chunk-63LDNYGW.js";import{GLOBAL_OPTIONS_HELP,HELP_TOKEN}from"./chunk-FKIZ5ZJU.js";import{parseOperationArgs,repeatedValues}from"./chunk-O52CUEDO.js";import"./chunk-QQRJLH6B.js";
4
- import"./chunk-7WEYBZSK.js";import{ApiError,TwpApiClient,appendQuery}from"./chunk-JKSXUBND.js";import"./chunk-II5RVJQN.js";import{effectiveApiUrl,resolveConfiguredOutput,resolveProfile}from"./chunk-NERYSBA4.js";import"./chunk-RZVI6PMW.js";import{httpFetch}from"./chunk-J7QYPKVK.js";import{stripTerminalControls}from"./chunk-NHYMHCAT.js";import"./chunk-2SGDY6YP.js";import{EXIT_OK,NetworkError,UsageError}from"./chunk-M3GWY6NT.js";import"./chunk-5QCAIKFE.js";
5
- import"./chunk-VSJBJXZO.js";var API_COMMAND_HELP=`twp api \u2014 API \u306E\u30D1\u30B9\u3092\u76F4\u63A5\u53E9\u304F\uFF08\u30A8\u30B9\u30B1\u30FC\u30D7\u30CF\u30C3\u30C1\uFF09
6
-
7
- \u4F7F\u3044\u65B9:
8
- twp api <\u30D1\u30B9> [\u30AA\u30D7\u30B7\u30E7\u30F3]
9
-
10
- \u753B\u9762\u3067\u3067\u304D\u308B\u64CD\u4F5C\u306F\u3059\u3079\u3066 API \u306E\u30D1\u30B9\u3092\u6301\u3064\u306E\u3067\u3001\u30AD\u30E5\u30EC\u30FC\u30B7\u30E7\u30F3\u5C64\uFF08twp task / twp project \u2026\uFF09\u306B
11
- \u51FA\u3066\u3044\u306A\u3044\u64CD\u4F5C\u3078\u306F\u3053\u3053\u304B\u3089\u5230\u9054\u3067\u304D\u307E\u3059\u3002\u30D1\u30B9\u306F API \u306E\u5951\u7D04\u305D\u306E\u3082\u306E\u306A\u306E\u3067\u3001
12
- \u3053\u306E CLI \u306F\u30D1\u30B9\u306B\u3064\u3044\u3066\u5F8C\u65B9\u4E92\u63DB\u3092\u7D04\u675F\u3057\u307E\u305B\u3093\u3002
13
-
14
- \u4F8B:
15
- twp api /v2/projects?limit=10
16
- twp api /v2/projects --query-param limit=10
17
- twp api /v2/tasks/{taskId} --method PUT --body-file body.json --yes
18
- twp api /v2/attendance/records --method POST --generate-cli-skeleton > in.json
19
- twp api /v2/attendance/records --method POST --cli-input-json in.json --yes
20
-
21
- \u30AA\u30D7\u30B7\u30E7\u30F3:
22
- --method <\u30E1\u30BD\u30C3\u30C9> GET | POST | PUT | PATCH | DELETE\uFF08\u65E2\u5B9A GET\uFF09
23
- --body-file <\u30D1\u30B9> \u30EA\u30AF\u30A8\u30B9\u30C8\u30DC\u30C7\u30A3\u306E JSON \u30D5\u30A1\u30A4\u30EB\uFF08- \u3067\u6A19\u6E96\u5165\u529B\uFF09
24
- --cli-input-json <\u30D1\u30B9> \u5168\u5F15\u6570\u3092 JSON \u3067\u6E21\u3059\uFF08- \u3067\u6A19\u6E96\u5165\u529B\uFF09
25
- \u500B\u5225\u30D5\u30E9\u30B0\u3068\u4F75\u7528\u3057\u305F\u3068\u304D\u306F**\u30D5\u30E9\u30B0\u304C\u52DD\u3061\u307E\u3059**
26
- --generate-cli-skeleton --cli-input-json \u3078\u6E21\u3059\u5165\u529B\u3072\u306A\u5F62\u3092\u51FA\u529B\u3057\u3066\u7D42\u4E86\u3057\u307E\u3059
27
- \uFF08\u9001\u4FE1\u3082\u30ED\u30B0\u30A4\u30F3\u3082\u884C\u3044\u307E\u305B\u3093\uFF09
28
- --query-param <k=v> \u30AF\u30A8\u30EA\u5F15\u6570\u3002\u8907\u6570\u6307\u5B9A\u3067\u304D\u307E\u3059
29
- \u5024\u306E\u4E2D\u306E = \u306F\u5207\u308A\u843D\u3068\u3057\u307E\u305B\u3093\uFF08\u6700\u521D\u306E = \u3067\u5206\u5272\uFF09
30
- --no-redact \u5FDC\u7B54\u306E\u4F0F\u5B57\u5316\u3092\u89E3\u9664\u3057\u307E\u3059\uFF08\u65E2\u5B9A\u306F\u4F0F\u5B57\u5316\u3059\u308B\uFF09
31
- \u9375\u306E\u767A\u884C\u306A\u3069\u3001\u4F0F\u305B\u308B\u3068\u5024\u304C\u4F7F\u3048\u306A\u3044\u64CD\u4F5C\u306E\u305F\u3081\u306E\u3082\u306E\u3067\u3059
32
-
33
- \u51FA\u529B\u306E\u4F0F\u5B57\u5316:
34
- \u5FDC\u7B54\u306B\u8F09\u308B token / secret / api_key / password \u306A\u3069\u306E\u5024\u306F\u3001\u65E2\u5B9A\u3067 ***\uFF08\u4F0F\u5B57\uFF09\u306B\u3057\u3066\u51FA\u3057\u307E\u3059\u3002
35
- \u51FA\u529B\u306F\u7AEF\u672B\u3068\u30ED\u30B0\uFF08AI CLI \u306E\u30C8\u30E9\u30F3\u30B9\u30AF\u30EA\u30D7\u30C8\u3092\u542B\u3080\uFF09\u306B\u5E73\u6587\u3067\u6B8B\u308B\u305F\u3081\u3067\u3059\u3002
36
- \u767A\u884C\u3057\u305F\u9375\u3092\u53D7\u3051\u53D6\u308B\u306A\u3069\u5024\u305D\u306E\u3082\u306E\u304C\u8981\u308B\u3068\u304D\u306F --no-redact \u3092\u4ED8\u3051\u3066\u304F\u3060\u3055\u3044
37
- \uFF08\u4ED8\u3051\u305F\u3053\u3068\u306F stderr \u30781\u884C\u51FA\u307E\u3059\uFF09\u3002
38
-
39
- \u66F8\u304D\u8FBC\u307F\u306E\u6271\u3044:
40
- GET \u4EE5\u5916\u306F --yes \u304C\u5FC5\u8981\u3067\u3059\u3002\u751F\u30D1\u30B9\u306F\u4EFB\u610F\u306E\u66F8\u304D\u8FBC\u307F\u3078\u5230\u9054\u3067\u304D\u308B\u305F\u3081\u3001
41
- \u300C\u8AAD\u307F\u53D6\u308A\u4EE5\u5916\u306F\u3059\u3079\u3066\u78BA\u8A8D\u3092\u8981\u3059\u308B\u300D\u306B\u5012\u3057\u3066\u3044\u307E\u3059\u3002
42
- \u9001\u308B\u5185\u5BB9\u306F --dry-run \u3067\u5148\u306B\u78BA\u8A8D\u3067\u304D\u307E\u3059\uFF08--dry-run \u306F\u9001\u3089\u306A\u3044\u306E\u3067 --yes \u306F\u8981\u308A\u307E\u305B\u3093\uFF09\u3002
43
- \u5B9F\u884C\u306E\u524D\u306B\u63A5\u7D9A\u5148\uFF08\u30D7\u30ED\u30D5\u30A1\u30A4\u30EB\u540D\u3068 URL\uFF09\u3092 stderr \u3078\u51FA\u3057\u307E\u3059\u3002
44
-
45
- \u3044\u307E\u306F\u5165\u3063\u3066\u3044\u306A\u3044\u3082\u306E\uFF08\u4ECA\u5F8C\u306E\u30EA\u30EA\u30FC\u30B9\u3067\u5BFE\u5FDC\u3057\u307E\u3059\uFF09:
46
- \u30B3\u30DE\u30F3\u30C9\u30E2\u30C7\u30EB\u304C\u672A\u540C\u68B1\u306E\u305F\u3081\u3001\u30B9\u30AD\u30FC\u30DE\u691C\u8A3C\u30FB\u81EA\u52D5\u30DA\u30FC\u30B8\u30F3\u30B0\u30FB\u30D1\u30B9\u5019\u88DC\u306E\u63D0\u793A\u306F\u884C\u3044\u307E\u305B\u3093\u3002
47
- \u4E00\u89A7\u306E\u7D9A\u304D\u306F\u5FDC\u7B54\u306E next_cursor \u3092 --query-param cursor=\u2026 \u306B\u6E21\u3057\u3066\u8FBF\u3063\u3066\u304F\u3060\u3055\u3044\u3002
48
-
49
- ${GLOBAL_OPTIONS_HELP}
50
- `;var writeOut=text=>void process.stdout.write(text);var writeErr=text=>void process.stderr.write(text);function line(text){return text===""?"":text.endsWith("\n")?text:`${text}
51
- `}var API_METHODS=["GET","POST","PUT","PATCH","DELETE"];var API_FLAGS=[{name:"--method",summary:`HTTP \u30E1\u30BD\u30C3\u30C9\uFF08${API_METHODS.join(" / ")}\u30FB\u65E2\u5B9A GET\uFF09`,takesValue:true,placeholder:"<\u30E1\u30BD\u30C3\u30C9>"},{name:"--body-file",summary:"\u30EA\u30AF\u30A8\u30B9\u30C8\u30DC\u30C7\u30A3\u306E JSON \u30D5\u30A1\u30A4\u30EB\uFF08- \u3067\u6A19\u6E96\u5165\u529B\uFF09",takesValue:true,placeholder:"<\u30D1\u30B9>"},{name:"--cli-input-json",summary:"\u5168\u5F15\u6570\u3092 JSON \u3067\u6E21\u3059\uFF08-\
52
- \u3067\u6A19\u6E96\u5165\u529B\uFF09",takesValue:true,placeholder:"<\u30D1\u30B9>"},{name:"--generate-cli-skeleton",summary:"--cli-input-json \u3078\u6E21\u3059\u5165\u529B\u3072\u306A\u5F62\u3092\u51FA\u529B\u3057\u3066\u7D42\u4E86\u3059\u308B",takesValue:false},{name:"--query-param",summary:"\u30AF\u30A8\u30EA\u5F15\u6570\uFF08k=v\u30FB\u8907\u6570\u6307\u5B9A\u53EF\uFF09",takesValue:true,placeholder:"<k=v>",repeatable:true},{name:"--no-redact",summary:"\u5FDC\u7B54\u306E\u4F0F\u5B57\u5316\u3092\u89E3\u9664\u3057\u3066\u751F\u306E\u5024\u3092\u51FA\u3059\uFF08\u9375\u306E\u53D7\u3051\u53D6\u308A\u7B49\uFF09",
53
- takesValue:false}];var MAX_BODY_CHARS=1e6;function normalizeApiPath(raw){const trimmed=raw.trim();if(trimmed==="")throw new UsageError("\u30D1\u30B9\u304C\u7A7A\u3067\u3059","\u4F8B: twp api /v2/projects");if(/^https?:\/\//i.test(trimmed)){throw new UsageError(`\u30D1\u30B9\u306B URL \u306F\u6E21\u305B\u307E\u305B\u3093: ${trimmed}`,"\u63A5\u7D9A\u5148\u306F\u30D7\u30ED\u30D5\u30A1\u30A4\u30EB\u304C\u6C7A\u3081\u307E\u3059\u3002\u30D1\u30B9\u3060\u3051\u3092\u6E21\u3057\u3066\u304F\u3060\u3055\u3044\uFF08\u4F8B: /v2/projects\uFF09\u3002")}
54
- const hashIndex=trimmed.indexOf("#");const withoutHash=hashIndex===-1?trimmed:trimmed.slice(0,hashIndex);const queryIndex=withoutHash.indexOf("?");const pathPart=queryIndex===-1?withoutHash:withoutHash.slice(0,queryIndex);const queryPart=queryIndex===-1?void 0:withoutHash.slice(queryIndex+1);const withSlash=pathPart.startsWith("/")?pathPart:`/${pathPart}`;const path=withSlash.toLowerCase().startsWith("/api/")?withSlash:`/api${withSlash}`;return{path,query:queryPart===void 0||queryPart===""?void 0:
55
- queryPart}}function parseMethod(raw){if(raw===void 0)return"GET";const upper=raw.trim().toUpperCase();if(API_METHODS.includes(upper))return upper;throw new UsageError(`--method \u306B\u300C${raw}\u300D\u306F\u6307\u5B9A\u3067\u304D\u307E\u305B\u3093`,`\u6307\u5B9A\u3067\u304D\u308B\u306E\u306F ${API_METHODS.join(" / ")} \u3067\u3059\u3002`)}function parseQueryParams(values){const out={};for(const raw of values){const index=raw.indexOf("=");if(index<=0){throw new UsageError(`--query-param \u306F k=v \u306E\
56
- \u5F62\u3067\u6307\u5B9A\u3057\u3066\u304F\u3060\u3055\u3044: ${raw}`,"\u4F8B: --query-param limit=10 --query-param keyword=\u4F1A\u8B70")}const key=raw.slice(0,index);if(Object.prototype.hasOwnProperty.call(out,key)){throw new UsageError(`--query-param ${key} \u304C\u8907\u6570\u56DE\u6307\u5B9A\u3055\u308C\u3066\u3044\u307E\u3059`)}out[key]=raw.slice(index+1)}return out}function parseQueryString(raw){if(raw===void 0)return{};const out={};for(const[key,value]of new URLSearchParams(raw))out[key]=
57
- value;return out}function buildSkeleton(method,path,query){const skeleton={method,path};const queryEntries=Object.entries(query);skeleton.query=queryEntries.length>0?Object.fromEntries(queryEntries.map(([key,value])=>[key,String(value??"")])):{};if(method!=="GET")skeleton.body={};return skeleton}function parseCliInput(text){let parsed;try{parsed=JSON.parse(text)}catch(err){throw new UsageError(`--cli-input-json \u306E JSON \u3092\u89E3\u91C8\u3067\u304D\u307E\u305B\u3093: ${err.message}`)}if(parsed===
58
- null||typeof parsed!=="object"||Array.isArray(parsed)){throw new UsageError("--cli-input-json \u306B\u306F\u30AA\u30D6\u30B8\u30A7\u30AF\u30C8\u3092\u6E21\u3057\u3066\u304F\u3060\u3055\u3044",'\u4F8B: {"method":"POST","path":"/v2/...","body":{}}')}const known=new Set(["method","path","query","body"]);const unknown=Object.keys(parsed).filter(key=>!known.has(key));if(unknown.length>0){throw new UsageError(`--cli-input-json \u306B\u77E5\u3089\u306A\u3044\u30AD\u30FC\u304C\u3042\u308A\u307E\u3059: ${unknown.
59
- join(" / ")}`,`\u4F7F\u3048\u308B\u306E\u306F ${[...known].join(" / ")} \u3067\u3059\u3002`)}const input=parsed;for(const key of["method","path"]){const value=input[key];if(value!==void 0&&typeof value!=="string"){throw new UsageError(`--cli-input-json \u306E ${key} \u306F\u6587\u5B57\u5217\u3067\u6E21\u3057\u3066\u304F\u3060\u3055\u3044`)}}if(input.query!==void 0){if(input.query===null||typeof input.query!=="object"||Array.isArray(input.query)){throw new UsageError("--cli-input-json \u306E query \u306F\u30AA\u30D6\
60
- \u30B8\u30A7\u30AF\u30C8\u3067\u6E21\u3057\u3066\u304F\u3060\u3055\u3044")}for(const[key,value]of Object.entries(input.query)){if(typeof value!=="string"&&typeof value!=="number"&&typeof value!=="boolean"){throw new UsageError(`--cli-input-json \u306E query.${key} \u306F\u6587\u5B57\u5217\u30FB\u6570\u5024\u30FB\u771F\u507D\u5024\u3067\u6E21\u3057\u3066\u304F\u3060\u3055\u3044`)}}}return input}async function runApiCommand(options){const{globals}=options;let format=null;try{const profile=resolveProfile(
61
- globals.profile);format=resolveOutputFormat({...globals.output!==void 0?{flag:globals.output}:{},...(()=>{const configured=resolveConfiguredOutput(profile.name);return configured!==void 0?{configured}:{}})(),isTty:process.stdout.isTTY===true});if(format===null){throw new UsageError(`--output \u306B\u300C${globals.output??""}\u300D\u306F\u6307\u5B9A\u3067\u304D\u307E\u305B\u3093`,`\u6307\u5B9A\u3067\u304D\u308B\u306E\u306F ${OUTPUT_FORMATS.join(" / ")} \u3067\u3059`)}if(options.help||options.argv[0]===
62
- HELP_TOKEN){const extra=options.argv[0]===HELP_TOKEN?options.argv.slice(1):options.argv;if(extra.length>0&&!options.help){throw new UsageError(`twp api help \u306F\u5F15\u6570\u3092\u53D6\u308A\u307E\u305B\u3093: ${extra.join(" ")}`,"\u30D1\u30B9\u3092\u53E9\u304F\u306A\u3089 help \u3092\u5916\u3057\u3066\u304F\u3060\u3055\u3044\uFF08\u4F8B: twp api /v2/projects\uFF09\u3002")}writeOut(API_COMMAND_HELP);return EXIT_OK}const input=parseOperationArgs(options.argv,API_FLAGS);const noRedact=input.flags.
63
- has("--no-redact");const cliInputText=await readBody(input,{flag:"--cli-input-json-inline",fileFlag:"--cli-input-json",label:"--cli-input-json",maxChars:MAX_BODY_CHARS,usage:"\u4F8B: twp api /v2/projects --method POST --generate-cli-skeleton > in.json"});const cliInput=cliInputText===void 0?void 0:parseCliInput(cliInputText);const[pathArg,...extraArgs]=input.args;if(extraArgs.length>0){throw new UsageError(`\u4F59\u5206\u306A\u5F15\u6570\u304C\u3042\u308A\u307E\u3059: ${extraArgs.join(" ")}`,"tw\
64
- p api \u304C\u53D7\u3051\u308B\u4F4D\u7F6E\u5F15\u6570\u306F\u30D1\u30B91\u3064\u3060\u3051\u3067\u3059\u3002\u30AF\u30A8\u30EA\u306F\u30D1\u30B9\u306B\u66F8\u304F\u304B --query-param \u3067\u6E21\u3057\u3066\u304F\u3060\u3055\u3044\u3002")}const rawPath=pathArg??cliInput?.path;if(rawPath===void 0){throw new UsageError("\u30D1\u30B9\u3092\u6307\u5B9A\u3057\u3066\u304F\u3060\u3055\u3044","\u4F8B: twp api /v2/projects?limit=10\uFF08\u4E00\u89A7\u306F twp api help\uFF09")}const{path,query:inlineQuery}=normalizeApiPath(
65
- rawPath);const method=parseMethod(input.flags.get("--method")??cliInput?.method);const query={...parseQueryString(inlineQuery),...cliInput?.query??{},...parseQueryParams(repeatedValues(input,"--query-param"))};if(input.flags.has("--generate-cli-skeleton")){if(input.flags.has("--body-file")){throw new UsageError("--generate-cli-skeleton \u3068 --body-file \u306F\u540C\u6642\u306B\u6307\u5B9A\u3067\u304D\u307E\u305B\u3093","\u3072\u306A\u5F62\u3092\u51FA\u3057\u3066\u304B\u3089\u7DE8\u96C6\u3057\u3001--cli-input-json \u3067\u6E21\u3057\u3066\u304F\u3060\u3055\u3044\u3002")}
66
- writeOut(`${JSON.stringify(buildSkeleton(method,path.replace(/^\/api/,""),query),null,2)}
67
- `);return EXIT_OK}const bodyText=await readBody(input,{flag:"--body-inline",fileFlag:"--body-file",label:"\u30EA\u30AF\u30A8\u30B9\u30C8\u30DC\u30C7\u30A3",maxChars:MAX_BODY_CHARS,usage:"\u4F8B: twp api /v2/projects --method POST --body-file body.json --yes"});let body;if(bodyText!==void 0){try{body=JSON.parse(bodyText)}catch(err){throw new UsageError(`--body-file \u306E JSON \u3092\u89E3\u91C8\u3067\u304D\u307E\u305B\u3093: ${err.message}`)}}else if(cliInput!==void 0&&"body"in cliInput){body=cliInput.
68
- body}if(body!==void 0&&method==="GET"){throw new UsageError("GET \u306B\u30EA\u30AF\u30A8\u30B9\u30C8\u30DC\u30C7\u30A3\u306F\u4ED8\u3051\u3089\u308C\u307E\u305B\u3093","\u66F8\u304D\u8FBC\u307F\u306A\u3089 --method POST / PUT / PATCH \u3092\u3001\u7D5E\u308A\u8FBC\u307F\u306A\u3089 --query-param \u3092\u4F7F\u3063\u3066\u304F\u3060\u3055\u3044\u3002")}if(!globals.dryRun&&method!=="GET"&&!globals.yes){throw new UsageError(`twp api \u306F GET \u4EE5\u5916\u306B --yes \u304C\u5FC5\u8981\u3067\u3059\uFF08\u6307\u5B9A: ${method}\
69
- ${path}\uFF09`,"\u9001\u308B\u5185\u5BB9\u306F --dry-run \u3067\u5148\u306B\u78BA\u8A8D\u3067\u304D\u307E\u3059\u3002")}const plan={method,path,query,...body!==void 0?{body}:{}};const stored=loadCredentials(profile.name);const apiUrl=effectiveApiUrl(profile,stored?.api_url);writeErr(`\u63A5\u7D9A\u5148: ${stripTerminalControls(profile.name)} (${stripTerminalControls(apiUrl)})
70
- `);writeErr("\u6CE8\u8A18: \u30B3\u30DE\u30F3\u30C9\u30E2\u30C7\u30EB\u672A\u540C\u68B1\u306E\u305F\u3081\u3001\u30B9\u30AD\u30FC\u30DE\u691C\u8A3C\u3068\u81EA\u52D5\u30DA\u30FC\u30B8\u30F3\u30B0\u306F\u884C\u3044\u307E\u305B\u3093\u3002\n");if(noRedact){writeErr("\u6CE8\u8A18: --no-redact \u306E\u305F\u3081\u51FA\u529B\u3092\u4F0F\u5B57\u5316\u3057\u307E\u305B\u3093\uFF08\u7AEF\u672B\u3068\u30ED\u30B0\u306B\u5E73\u6587\u3067\u6B8B\u308A\u307E\u3059\uFF09\u3002\n")}if(globals.dryRun){writeOut(line(
71
- renderOutput(dryRunValue(apiUrl,plan),format,noRedact)));return EXIT_OK}const transport=options.fetchImpl??httpFetch;const fetchImpl=globals.debug?withDebug(transport):transport;const session=new AuthSession(profile.name,apiUrl,process.env,fetchImpl);const client=new TwpApiClient(apiUrl,session,fetchImpl,options.version);let responseBody;try{responseBody=await client.request(plan.method,appendQuery(plan.path,plan.query),plan.body)}catch(err){if(err instanceof ApiError||err instanceof NotLoggedInError||
72
- err instanceof SessionExpiredError)throw err;throw new NetworkError(`${apiUrl} \u3078\u306E\u901A\u4FE1\u306B\u5931\u6557\u3057\u307E\u3057\u305F: ${err.message}`,{cause:err})}const source=noRedact?responseBody:redactSecretValues(responseBody);const value=globals.query===void 0?source:await evaluateQuery(globals.query,source);writeOut(line(renderOutput(value,format,noRedact)));return EXIT_OK}catch(err){const code=exitCodeFor(err);reportError(err,format,code);return code}}function dryRunValue(apiUrl,plan){
73
- const value={method:plan.method,url:`${apiUrl}${appendQuery(plan.path,plan.query)}`};if(plan.body!==void 0)value["body"]=plan.body;return value}export{API_FLAGS,API_METHODS,buildSkeleton,normalizeApiPath,parseCliInput,parseMethod,parseQueryParams,parseQueryString,runApiCommand};
@@ -1,4 +0,0 @@
1
- import { createRequire as __twpCreateRequire } from 'node:module';
2
- const require = __twpCreateRequire(import.meta.url);
3
- import{buildPrepareContext,exitCodeFor,fetchAllPages,outputValue,reportError,requiresYes,resolvePaging,runDomain}from"./chunk-BPMSIIOU.js";import"./chunk-WVS4W5FY.js";import"./chunk-63LDNYGW.js";import"./chunk-FKIZ5ZJU.js";import"./chunk-O52CUEDO.js";import"./chunk-QQRJLH6B.js";import"./chunk-7WEYBZSK.js";import"./chunk-JKSXUBND.js";import"./chunk-II5RVJQN.js";import"./chunk-NERYSBA4.js";import"./chunk-RZVI6PMW.js";import"./chunk-J7QYPKVK.js";
4
- import"./chunk-NHYMHCAT.js";import"./chunk-2SGDY6YP.js";import"./chunk-M3GWY6NT.js";import"./chunk-5QCAIKFE.js";import"./chunk-VSJBJXZO.js";export{buildPrepareContext,exitCodeFor,fetchAllPages,outputValue,reportError,requiresYes,resolvePaging,runDomain};