@tocca-systems/twp-cli 0.23.0 → 0.24.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 (58) hide show
  1. package/README.md +143 -3
  2. package/command-model/department.json +1 -1
  3. package/dist/{ai-dispatch-VSCKUY6J.js → ai-dispatch-36HRDRLF.js} +1 -1
  4. package/dist/{api-command-CLARDKAL.js → api-command-NMYYJKZH.js} +3 -3
  5. package/dist/{app-X3IKIAKB.js → app-2KMY3QPM.js} +5 -5
  6. package/dist/{auto-update-FBZGOQFI.js → auto-update-CV2MM32C.js} +1 -1
  7. package/dist/{auto-update-worker-SI7TVSCN.js → auto-update-worker-AXBJIMFP.js} +2 -2
  8. package/dist/{backlog-X2MQTA6F.js → backlog-7MJIOT22.js} +2 -2
  9. package/dist/{charter-command-UPKTVL7H.js → charter-command-UBUE3KUO.js} +2 -2
  10. package/dist/{chunk-7PRQ7JW2.js → chunk-4V4T5ZUS.js} +2 -2
  11. package/dist/{chunk-APYYF7H6.js → chunk-5Q2CH4E7.js} +1 -1
  12. package/dist/chunk-6NCY4NPV.js +62 -0
  13. package/dist/{chunk-M3GWY6NT.js → chunk-7WSNIXTQ.js} +2 -1
  14. package/dist/chunk-DDKZ5IPT.js +11 -0
  15. package/dist/{chunk-2VISRLWS.js → chunk-DMDVLOAY.js} +8 -8
  16. package/dist/chunk-EJ474UDB.js +3 -0
  17. package/dist/chunk-FTYJZFEK.js +10 -0
  18. package/dist/{chunk-E4H22AO5.js → chunk-GDM2QUBL.js} +1 -1
  19. package/dist/{chunk-X4RS5VBH.js → chunk-GMBJTG6A.js} +1 -1
  20. package/dist/{chunk-QVXZEUKN.js → chunk-HGTG5XQ7.js} +1 -1
  21. package/dist/{chunk-LD3AKGH6.js → chunk-HW3QGKYR.js} +1 -1
  22. package/dist/chunk-I3YPO7CY.js +57 -0
  23. package/dist/chunk-IJLJGDMZ.js +7 -0
  24. package/dist/{chunk-DSDVIU6A.js → chunk-ILKQDXI5.js} +1 -1
  25. package/dist/{chunk-O52CUEDO.js → chunk-IOGVQVGD.js} +1 -1
  26. package/dist/{chunk-JB27KNCX.js → chunk-QOUFHYK5.js} +29 -25
  27. package/dist/{chunk-XLE4HW6B.js → chunk-UIWGEBWI.js} +1 -1
  28. package/dist/{chunk-SJRK4AVE.js → chunk-VCMVTC6B.js} +1 -1
  29. package/dist/chunk-WGVHYTZV.js +38 -0
  30. package/dist/{chunk-EQWW2F5V.js → chunk-YVAN3H5W.js} +4 -4
  31. package/dist/chunk-ZN5EFDH7.js +5 -0
  32. package/dist/chunk-ZWVYVS2A.js +4 -0
  33. package/dist/cli.js +75 -8
  34. package/dist/{commands-JNG5TZ77.js → commands-6YTOVZ5P.js} +7 -7
  35. package/dist/{commands-BE67IDNQ.js → commands-U36UTCKR.js} +8 -8
  36. package/dist/department-JOXXJKQB.js +33 -0
  37. package/dist/job-title-L47J6TZY.js +8 -0
  38. package/dist/{logout-guard-CMZZBRUL.js → logout-guard-FO7KZL3X.js} +1 -1
  39. package/dist/media-ZMDYHHNN.js +64 -0
  40. package/dist/{oneshot-NA756EBO.js → oneshot-KYATQPL7.js} +2 -2
  41. package/dist/position-FHWCMMBQ.js +8 -0
  42. package/dist/{project-2LJZW747.js → project-ZODASYER.js} +1 -1
  43. package/dist/query-EEALMOSO.js +3 -0
  44. package/dist/{render-ICZOK3HV.js → render-K45EOLHX.js} +1 -1
  45. package/dist/{run-XCAJDHFU.js → run-QCDT35NT.js} +2 -2
  46. package/dist/server-settings-CG3EM7R7.js +1 -1
  47. package/dist/{setup-UI6V2Q3V.js → setup-6CXUVCF5.js} +1 -1
  48. package/dist/storage-ANKKJJJO.js +3 -0
  49. package/dist/{task-GKNM3G4K.js → task-G5YWQ6L5.js} +7 -63
  50. package/dist/{update-TVVBJNN7.js → update-PZBUIYOL.js} +1 -1
  51. package/dist/user-DO4VNIBR.js +204 -0
  52. package/package.json +1 -1
  53. package/dist/chunk-7LTTKKQA.js +0 -56
  54. package/dist/chunk-GFC2ASHE.js +0 -6
  55. package/dist/chunk-JKSXUBND.js +0 -9
  56. package/dist/chunk-PEGUHUTD.js +0 -3
  57. package/dist/query-NJMVSQR6.js +0 -3
  58. package/dist/user-EU7Z3DAO.js +0 -24
@@ -1,56 +0,0 @@
1
- import { createRequire as __twpCreateRequire } from 'node:module';
2
- const require = __twpCreateRequire(import.meta.url);
3
- import{renderOutput}from"./chunk-APYYF7H6.js";import{redactSecretValues,redactSecrets,withDebug}from"./chunk-EQWW2F5V.js";import{parseOperationArgs}from"./chunk-O52CUEDO.js";import{Resolver,requireDefaultProject}from"./chunk-JB27KNCX.js";import{ApiError,TwpApiClient,appendQuery}from"./chunk-JKSXUBND.js";import{DEFAULT_MAX_ITEMS,DEFAULT_MAX_PAGES,nextPageNotes,positiveInteger,shellQuote}from"./chunk-2VISRLWS.js";import{ResolveError}from"./chunk-X4RS5VBH.js";
4
- import{GLOBAL_OPTIONS_HELP}from"./chunk-TAN5I2DP.js";import{HELP_TOKEN}from"./chunk-PEGUHUTD.js";import{AuthSession,NotLoggedInError,SessionExpiredError,loadCredentials}from"./chunk-XNLIEUAW.js";import{httpFetch}from"./chunk-J7QYPKVK.js";import{effectiveApiUrl,loadUserConfig,resolveConfiguredOutput,resolveProfile}from"./chunk-NERYSBA4.js";import{OUTPUT_FORMATS,resolveOutputFormat}from"./chunk-K2ONOH3L.js";import{stringWidth}from"./chunk-WVS4W5FY.js";import{
5
- stripTerminalControls}from"./chunk-NHYMHCAT.js";import{evaluateQuery}from"./chunk-E4H22AO5.js";import{ApiResponseError,EXIT_API_CLIENT,EXIT_API_SERVER,EXIT_AUTH,EXIT_FAILURE,EXIT_OK,EXIT_USAGE,NetworkError,UsageError}from"./chunk-M3GWY6NT.js";import fs from"fs";import path from"path";var NO_REDACT_FLAG={name:"--no-redact",summary:"\u5FDC\u7B54\u306E\u4F0F\u5B57\u5316\u3092\u89E3\u9664\u3057\u3066\u751F\u306E\u5024\u3092\u51FA\u3059\uFF08\u9375\u306E\u53D7\u3051\u53D6\u308A\u7B49\uFF09",takesValue:false};var NO_REDACT_NOTICE="\u6CE8\u8A18: --no-redact \u306E\u305F\u3081\u51FA\u529B\u3092\u4F0F\u5B57\u5316\u3057\u307E\u305B\u3093\uFF08\u7AEF\u672B\u3068\u30ED\u30B0\u306B\u5E73\u6587\u3067\u6B8B\u308A\u307E\u3059\uFF09\u3002";function withCommonFlags(flags){return flags.some(flag=>flag.
6
- name===NO_REDACT_FLAG.name)?flags:[...flags,NO_REDACT_FLAG]}function alignedList(entries,indent=" "){const width=entries.reduce((max,[left])=>Math.max(max,stringWidth(left)),0);return entries.map(([left,right])=>`${indent}${left}${" ".repeat(Math.max(0,width-stringWidth(left)))} ${right}`).join("\n")}function subresourcesOf(resource){return resource.subresources??[]}function renderResourceHelp(resource,path2){const subresources=subresourcesOf(resource);const operationSection=resource.operations.length===0?"":`
7
- \u64CD\u4F5C:
8
- ${alignedList(resource.operations.map(op=>[op.name,op.summary]))}
9
- `;const subSection=subresources.length===0?"":`
10
- \u30B5\u30D6\u8CC7\u6E90:
11
- ${alignedList(subresources.map(sub=>[`${sub.name} <\u64CD\u4F5C>`,sub.summary]))}
12
- `;return`twp ${path2} \u2014 ${resource.summary}
13
-
14
- \u4F7F\u3044\u65B9:
15
- twp ${path2} <\u64CD\u4F5C> [\u5F15\u6570] [\u30AA\u30D7\u30B7\u30E7\u30F3]
16
- twp ${path2} <\u64CD\u4F5C> ${HELP_TOKEN} \u305D\u306E\u64CD\u4F5C\u306E\u8A73\u3057\u3044\u30D8\u30EB\u30D7
17
- ${operationSection}${subSection}
18
- ${GLOBAL_OPTIONS_HELP}
19
- `}function renderOperationHelp(op,path2){const sections=[`twp ${path2} ${op.name} \u2014 ${op.summary}`,"","\u4F7F\u3044\u65B9:",` ${op.usage}`];if(op.description!==void 0){sections.push("",...op.description.split("\n"))}if(op.destructive===true){sections.push("","\u26A0 \u7834\u58CA\u7684\u306A\u64CD\u4F5C\u3067\u3059\u3002\u5B9F\u884C\u3059\u308B\u306B\u306F --yes \u304C\u5FC5\u8981\u3067\u3059\u3002")}const flags=withCommonFlags(op.flags);if(flags.length>0){sections.push("","\u30AA\u30D7\u30B7\u30E7\u30F3:",
20
- alignedList(flags.map(flag=>[flag.takesValue?`${flag.name} ${flag.placeholder??"<\u5024>"}`:flag.name,flag.summary])))}sections.push("",GLOBAL_OPTIONS_HELP,"");return sections.join("\n")}function renderUnknownOperation(resource,path2,attempted){const names=[...resource.operations.map(op=>op.name),...subresourcesOf(resource).map(sub=>`${sub.name} <\u64CD\u4F5C>`)].join(" / ");return attempted===void 0?`twp ${path2} \u306B\u306F\u64CD\u4F5C\u306E\u6307\u5B9A\u304C\u5FC5\u8981\u3067\u3059\uFF08${names}\
21
- \uFF09\u3002\u8A73\u3057\u304F\u306F twp ${path2} ${HELP_TOKEN}`:`twp ${path2} \u306B\u300C${attempted}\u300D\u3068\u3044\u3046\u64CD\u4F5C\u306F\u3042\u308A\u307E\u305B\u3093\uFF08${names}\uFF09\u3002\u8A73\u3057\u304F\u306F twp ${path2} ${HELP_TOKEN}`}var LOADERS={backlog:async()=>(await import("./backlog-X2MQTA6F.js")).backlogDomain,project:async()=>(await import("./project-2LJZW747.js")).projectDomain,task:async()=>(await import("./task-GKNM3G4K.js")).taskDomain,user:async()=>(await import("./user-EU7Z3DAO.js")).userDomain};async function loadDomain(name){return LOADERS[name]()}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}
22
- `}function outputValue(operation,format,body){return format==="json"?operation.raw(body):operation.summarize(body)}function requiresYes(operation,yes){return operation.destructive===true&&!yes}function exitCodeForStatus(status){if(status===401)return EXIT_AUTH;if(status===429)return EXIT_API_SERVER;if(status>=400&&status<500)return EXIT_API_CLIENT;return EXIT_API_SERVER}function exitCodeFor(err){if(err instanceof UsageError)return EXIT_USAGE;if(err instanceof NotLoggedInError||err instanceof SessionExpiredError)
23
- return EXIT_AUTH;if(err instanceof ApiError)return exitCodeForStatus(err.status);if(err instanceof ApiResponseError||err instanceof NetworkError)return EXIT_API_SERVER;if(err instanceof ResolveError){return err.status===null?EXIT_API_SERVER:exitCodeForStatus(err.status)}return EXIT_FAILURE}function safeText(text){return redactSecrets(stripTerminalControls(text))}function reportError(err,format,code,write=writeErr){const message=safeText(err instanceof Error?err.message:String(err));const rawHint=err instanceof
24
- UsageError?err.hint:void 0;const hint=rawHint!==void 0?safeText(rawHint):void 0;if(format==="json"){const body={code,message};if(err instanceof ApiError)body["status"]=err.status;if(err instanceof ResolveError&&err.status!==null)body["status"]=err.status;if(hint!==void 0)body["hint"]=hint;write(`${JSON.stringify({error:body},null,2)}
25
- `);return}write(`${message}
26
- `);if(hint!==void 0)write(`${hint}
27
- `)}function dryRunValue(apiUrl,plan){const value={method:plan.method,url:`${apiUrl}${appendQuery(plan.path,plan.query)}`};if(plan.body!==void 0)value["body"]=plan.body;return value}async function send(client,apiUrl,plan){try{return await client.request(plan.method,appendQuery(plan.path,plan.query),plan.body)}catch(err){if(err instanceof ApiError||err instanceof NotLoggedInError||err instanceof SessionExpiredError){throw err}throw new NetworkError(`${apiUrl} \u3078\u306E\u901A\u4FE1\u306B\u5931\u6557\u3057\u307E\u3057\u305F: ${err.
28
- message}`,{cause:err})}}async function putSigned(fetchImpl,url,bytes,contentType){let res;try{res=await fetchImpl(url,{method:"PUT",headers:{"Content-Type":contentType},body:bytes})}catch(err){throw new NetworkError(`\u30B9\u30C8\u30EC\u30FC\u30B8\u3078\u306E\u30A2\u30C3\u30D7\u30ED\u30FC\u30C9\u306B\u5931\u6557\u3057\u307E\u3057\u305F: ${err.message}`,{cause:err})}if(!res.ok){throw new NetworkError(`\u30B9\u30C8\u30EC\u30FC\u30B8\u3078\u306E\u30A2\u30C3\u30D7\u30ED\u30FC\u30C9\u304C\u62D2\u5426\u3055\u308C\u307E\u3057\u305F\uFF08HTTP ${res.
29
- status}\uFF09`)}}function resolveDownloadTarget(spec,commandPath,operationName,input){const raw=input.flags.get(spec.outFlag);if(raw===void 0||raw.trim()===""){throw new UsageError(`${spec.outFlag} \u306F\u5FC5\u9808\u3067\u3059\uFF08twp ${commandPath} ${operationName}\uFF09`,`\u66F8\u304D\u51FA\u3057\u5148\u306E\u30D5\u30A1\u30A4\u30EB\u30D1\u30B9\u3092\u6307\u5B9A\u3057\u3066\u304F\u3060\u3055\u3044\uFF08\u6A19\u6E96\u51FA\u529B\u3078\u306F\u51FA\u3057\u307E\u305B\u3093\uFF09\u3002`)}return{out:path.
30
- resolve(raw.trim()),force:input.flags.has(spec.forceFlag)}}function assertWritableTarget(target,forceFlag){if(!target.force&&fs.existsSync(target.out)){throw new UsageError(`\u66F8\u304D\u51FA\u3057\u5148\u304C\u65E2\u306B\u3042\u308A\u307E\u3059: ${target.out}`,`\u4E0A\u66F8\u304D\u3059\u308B\u306A\u3089 ${forceFlag} \u3092\u4ED8\u3051\u3066\u304F\u3060\u3055\u3044\uFF08\u65E2\u5B9A\u3067\u306F\u4E0A\u66F8\u304D\u3057\u307E\u305B\u3093\uFF09\u3002`)}const dir=path.dirname(target.out);if(!fs.existsSync(
31
- dir)){throw new UsageError(`\u66F8\u304D\u51FA\u3057\u5148\u306E\u30C7\u30A3\u30EC\u30AF\u30C8\u30EA\u304C\u3042\u308A\u307E\u305B\u3093: ${dir}`,"\u30C7\u30A3\u30EC\u30AF\u30C8\u30EA\u3092\u4F5C\u3063\u3066\u304B\u3089\u5B9F\u884C\u3057\u3066\u304F\u3060\u3055\u3044\uFF08\u81EA\u52D5\u3067\u306F\u4F5C\u6210\u3057\u307E\u305B\u3093\uFF09\u3002")}}async function download(args){let received;try{received=await args.client.requestBinary(args.plan.method,appendQuery(args.plan.path,args.plan.query))}catch(err){
32
- if(err instanceof ApiError||err instanceof NotLoggedInError||err instanceof SessionExpiredError)throw err;throw new NetworkError(`${args.apiUrl} \u3078\u306E\u901A\u4FE1\u306B\u5931\u6557\u3057\u307E\u3057\u305F: ${err.message}`,{cause:err})}try{fs.writeFileSync(args.target.out,received.bytes,{flag:args.target.force?"w":"wx"})}catch(err){const code=err.code;if(code==="EEXIST"){throw new UsageError(`\u66F8\u304D\u51FA\u3057\u5148\u304C\u65E2\u306B\u3042\u308A\u307E\u3059: ${args.target.out}`,"\u4E0A\u66F8\u304D\
33
- \u3059\u308B\u306A\u3089 --force \u3092\u4ED8\u3051\u3066\u304F\u3060\u3055\u3044\u3002")}throw new Error(`\u66F8\u304D\u51FA\u3057\u306B\u5931\u6557\u3057\u307E\u3057\u305F\uFF08${args.target.out}\uFF09: ${err.message}`,{cause:err})}return{path:args.target.out,size:received.bytes.byteLength,contentType:received.contentType}}var CURATED_PAGING_VOCABULARY={mode:"--all",resumeFlag:"--cursor",capAdvice:"--limit \u3092\u5927\u304D\u304F\u3057\u3066\u5F80\u5FA9\u3092\u6E1B\u3089\u3059\u304B\u3001--max-pages / --max-items \u3092\u4E0A\u3052\u3066\u304F\u3060\u3055\u3044\u3002"};
34
- function capExceeded(vocabulary,reason,pages,count,cursor){return new UsageError(`${vocabulary.mode} \u304C\u4E0A\u9650\u306B\u9054\u3057\u305F\u305F\u3081\u4E2D\u65AD\u3057\u307E\u3057\u305F\uFF08${reason}\uFF0F${pages} \u30DA\u30FC\u30B8\u30FB${count} \u4EF6\u3092\u53D6\u5F97\u6E08\u307F\uFF09\u3002\u3053\u308C\u306F\u5168\u4EF6\u3067\u306F\u3042\u308A\u307E\u305B\u3093\u3002`,`${vocabulary.capAdvice}\u7D9A\u304D\u3060\u3051\u3092\u53D6\u308B\u306A\u3089 ${vocabulary.resumeFlag} ${shellQuote(cursor)}\
35
- \u304B\u3089\u518D\u958B\u3067\u304D\u307E\u3059`)}async function fetchAllPages(args){const{paging,maxPages,maxItems}=args;const vocabulary=args.vocabulary??CURATED_PAGING_VOCABULARY;const merged=[];const first=args.plan.query?.[paging.cursorParam];let sent=typeof first==="string"?first:"";for(let page=1;;page+=1){const plan=page===1?args.plan:{...args.plan,query:{...args.plan.query,[paging.cursorParam]:sent}};let body;try{body=page===1&&"firstPage"in args?args.firstPage:await send(args.client,
36
- args.apiUrl,plan)}catch(err){if(page>1){(args.warn??writeErr)(`${vocabulary.mode} \u306F ${page} \u30DA\u30FC\u30B8\u76EE\u3067\u5931\u6557\u3057\u307E\u3057\u305F\uFF08${page-1} \u30DA\u30FC\u30B8\u30FB${merged.length} \u4EF6\u3092\u53D6\u5F97\u6E08\u307F\uFF09\u3002\u3053\u308C\u306F\u5168\u4EF6\u3067\u306F\u3042\u308A\u307E\u305B\u3093\u3002\u7D9A\u304D\u306F ${vocabulary.resumeFlag} ${shellQuote(stripTerminalControls(sent))} \u304B\u3089\u518D\u958B\u3067\u304D\u307E\u3059\u3002
37
- `)}throw err}for(const item of paging.items(body))merged.push(item);const next=paging.nextCursor(body);if(next===null)return{body:paging.withItems(body,merged),pages:page,count:merged.length};if(merged.length>=maxItems)throw capExceeded(vocabulary,`\u6700\u5927\u4EF6\u6570 ${maxItems} \u4EF6`,page,merged.length,next);if(page>=maxPages)throw capExceeded(vocabulary,`\u6700\u5927\u30DA\u30FC\u30B8\u6570 ${maxPages}`,page,merged.length,next);if(next===sent){throw new ApiResponseError(`\u540C\u3058\u30AB\u30FC\u30BD\u30EB\uFF08${next}\
38
- \uFF09\u304C\u7E70\u308A\u8FD4\u3057\u8FD4\u3055\u308C\u305F\u305F\u3081\u4E2D\u65AD\u3057\u307E\u3057\u305F\u3002${merged.length} \u4EF6\u3092\u53D6\u5F97\u3057\u305F\u6642\u70B9\u3067\u3001\u3053\u308C\u306F\u5168\u4EF6\u3067\u306F\u3042\u308A\u307E\u305B\u3093\u3002`)}sent=next}}function resolvePaging(operation,path2,input){const all=input.flags.has("--all");const maxPages=positiveInteger(input.flags,"--max-pages")??DEFAULT_MAX_PAGES;const maxItems=positiveInteger(input.flags,"--max-items")??
39
- DEFAULT_MAX_ITEMS;positiveInteger(input.flags,"--limit");if(all&&operation.paging===void 0){throw new UsageError(`twp ${path2} ${operation.name} \u306F --all \u306B\u5BFE\u5FDC\u3057\u3066\u3044\u307E\u305B\u3093`)}for(const name of["--max-pages","--max-items"]){if(!all&&input.flags.has(name)){throw new UsageError(`${name} \u306F --all \u3068\u4F75\u305B\u3066\u6307\u5B9A\u3057\u3066\u304F\u3060\u3055\u3044`,`${name} \u3060\u3051\u3067\u306F\u4F55\u3082\u5909\u308F\u308A\u307E\u305B\u3093`)}}return{
40
- all,maxPages,maxItems}}function profileAliases(profileName){const aliases=loadUserConfig().profiles?.[profileName]?.aliases;return aliases!==void 0?{aliases}:{}}function buildPrepareContext(args){const cache=new Map;return{resolver:args.resolver,projectId(explicit){if(explicit!==void 0&&explicit.trim()===""){throw new UsageError("--project \u306B\u7A7A\u306E\u5024\u306F\u6307\u5B9A\u3067\u304D\u307E\u305B\u3093","--project <\u30B3\u30FC\u30C9|ID> \u3092\u6307\u5B9A\u3059\u308B\u304B\u3001--project \u3054\u3068\u5916\u3057\u3066\u304F\u3060\u3055\u3044\u3002")}
41
- const ref=requireDefaultProject(explicit,args.profileName,args.env,args.cwd).ref;const hit=cache.get(ref);if(hit!==void 0)return hit;const resolved=args.resolver.project(ref).then(project=>project.id);cache.set(ref,resolved);return resolved}}}async function runDomain(options){const{globals}=options;const out=options.io?.out??writeOut;const errOut=options.io?.err??writeErr;let format=null;let forbidden;try{const profile=resolveProfile(globals.profile);format=resolveOutputFormat({...globals.output!==
42
- void 0?{flag:globals.output}:{},...(()=>{const configured=resolveConfiguredOutput(profile.name);return configured!==void 0?{configured}:{}})(),isTty:options.io?.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`)}const domain=await loadDomain(options.domain);if(options.operation===HELP_TOKEN||
43
- options.help&&options.operation===void 0){const[extra,...rest2]=options.argv;if(extra===void 0){out(renderResourceHelp(domain,domain.name));return EXIT_OK}const target=domain.subresources?.find(resource2=>resource2.name===extra);if(target===void 0||rest2.length>0){throw new UsageError(renderUnknownOperation(domain,domain.name,extra))}out(renderResourceHelp(target,`${domain.name} ${extra}`));return EXIT_OK}const sub=domain.subresources?.find(resource2=>resource2.name===options.operation);const resource=sub??
44
- domain;const path2=sub===void 0?domain.name:`${domain.name} ${sub.name}`;const operationName=sub===void 0?options.operation:options.argv[0];const rest=sub===void 0?options.argv:options.argv.slice(1);if(sub!==void 0&&(operationName===HELP_TOKEN||options.help&&operationName===void 0)){out(renderResourceHelp(sub,path2));return EXIT_OK}const operation=resource.operations.find(op=>op.name===operationName);if(operation===void 0){throw new UsageError(renderUnknownOperation(resource,path2,operationName))}
45
- forbidden=operation.forbidden;if(options.help||rest[0]===HELP_TOKEN){out(renderOperationHelp(operation,path2));return EXIT_OK}const input=parseOperationArgs(rest,withCommonFlags(operation.flags));const noRedact=input.flags.has("--no-redact");if(!globals.dryRun&&requiresYes(operation,globals.yes)){throw new UsageError(`twp ${path2} ${operation.name} \u306F\u7834\u58CA\u7684\u306A\u64CD\u4F5C\u3067\u3059\u3002\u5B9F\u884C\u3059\u308B\u306B\u306F --yes \u3092\u4ED8\u3051\u3066\u304F\u3060\u3055\u3044\u3002`)}
46
- const paging=resolvePaging(operation,path2,input);const downloadTarget=operation.download===void 0?void 0:resolveDownloadTarget(operation.download,path2,operation.name,input);const stored=loadCredentials(profile.name);const apiUrl=effectiveApiUrl(profile,stored?.api_url);const transport=options.fetchImpl??httpFetch;const fetchImpl=globals.debug?withDebug(transport,{write:errOut}):transport;const session=new AuthSession(profile.name,apiUrl,process.env,fetchImpl);const client=new TwpApiClient(apiUrl,
47
- session,fetchImpl,options.version);const ctx=buildPrepareContext({resolver:new Resolver(client,{profile:profile.name,refresh:globals.refresh,...profileAliases(profile.name)}),profileName:profile.name,env:process.env,cwd:process.cwd()});const prepared=operation.prepare===void 0?input:await operation.prepare(input,ctx);const plan=operation.plan(prepared);if(operation.execute!==void 0&&(operation.download!==void 0||operation.paging!==void 0||operation.fetchCached!==void 0)){throw new Error(`twp ${path2}\
48
- ${operation.name}: execute \u306F download / paging / fetchCached \u3068\u540C\u6642\u306B\u5BA3\u8A00\u3067\u304D\u307E\u305B\u3093\uFF08\u914D\u7DDA\u306E\u8AA4\u308A\uFF09`)}if(operation.fetchCached!==void 0&&(operation.download!==void 0||operation.paging!==void 0||operation.destructive===true||plan.method!=="GET")){throw new Error(`twp ${path2} ${operation.name}: fetchCached \u306F\u9001\u4FE1\u3057\u306A\u3044\u8AAD\u307F\u53D6\u308A\u5C02\u7528\u306E\u64CD\u4F5C\u306B\u3060\u3051\u5BA3\u8A00\u3067\u304D\u307E\u3059\uFF08\u914D\u7DDA\u306E\u8AA4\u308A\uFF09`)}
49
- for(const note of operation.plannedNotes?.(prepared)??[])errOut(`${safeText(note)}
50
- `);if(noRedact)errOut(`${NO_REDACT_NOTICE}
51
- `);if(globals.dryRun){out(line(renderOutput(dryRunValue(apiUrl,plan),format,noRedact)));return EXIT_OK}let body;let paged;if(operation.execute!==void 0){const executeCtx={send:next=>send(client,apiUrl,next),putSigned:(url,bytes,contentType)=>putSigned(fetchImpl,url,bytes,contentType),warn:text=>errOut(`${safeText(text)}
52
- `)};body=await operation.execute(prepared,executeCtx)}else if(operation.fetchCached!==void 0){body=await operation.fetchCached(prepared,ctx)}else if(operation.download!==void 0&&downloadTarget!==void 0){assertWritableTarget(downloadTarget,operation.download.forceFlag);body=await download({client,apiUrl,plan,target:downloadTarget})}else if(paging.all&&operation.paging!==void 0){paged=await fetchAllPages({client,apiUrl,plan,paging:operation.paging,maxPages:paging.maxPages,maxItems:paging.maxItems,
53
- warn:errOut});body=paged.body}else{body=await send(client,apiUrl,plan)}const visible=noRedact?body:redactSecretValues(body);const value=globals.query!==void 0?await evaluateQuery(globals.query,operation.raw(visible)):outputValue(operation,format,visible);out(line(renderOutput(value,format,noRedact)));if(paged!==void 0){errOut(`--all: ${paged.pages} \u30DA\u30FC\u30B8\u3092\u8FBF\u3063\u3066 ${paged.count} \u4EF6\u3092\u53D6\u5F97\u3057\u307E\u3057\u305F\u3002
54
- `)}const pagingNotes=operation.paging===void 0?[]:nextPageNotes(body,prepared,{command:`twp ${path2} ${operation.name}`,flags:operation.flags,profile:globals.profile});for(const note of[...pagingNotes,...operation.notes?.(visible,prepared)??[]]){errOut(`${safeText(note)}
55
- `)}return EXIT_OK}catch(caught){const err=withForbiddenGuidance(caught,forbidden);const code=exitCodeFor(err);reportError(err,format,code,errOut);return code}}function withForbiddenGuidance(err,guidance){if(guidance===void 0||!(err instanceof ApiError)||err.status!==403)return err;const server=err.body?.error_description??err.body?.message;const wrapped=new ApiError(err.status,err.body,"","");wrapped.message=server!==void 0&&server!==""?`${guidance}\uFF08\u30B5\u30FC\u30D0\u306E\u5FDC\u7B54: ${server}\
56
- \uFF09`:guidance;return wrapped}export{NO_REDACT_FLAG,NO_REDACT_NOTICE,outputValue,requiresYes,exitCodeFor,reportError,CURATED_PAGING_VOCABULARY,fetchAllPages,resolvePaging,buildPrepareContext,runDomain};
@@ -1,6 +0,0 @@
1
- import { createRequire as __twpCreateRequire } from 'node:module';
2
- const require = __twpCreateRequire(import.meta.url);
3
- import{ApiResponseError,UsageError}from"./chunk-M3GWY6NT.js";function singleRef(input,options){const fromFlag=input.flags.get(options.flag);const[fromArg,...rest]=input.args;if(rest.length>0){throw new UsageError(`\u53D7\u3051\u53D6\u308C\u308B${options.label}\u306F1\u3064\u3060\u3051\u3067\u3059: ${rest.join(" ")}`,options.usage)}if(fromArg!==void 0&&fromFlag!==void 0){throw new UsageError(`${options.label}\u304C\u4F4D\u7F6E\u5F15\u6570\uFF08${fromArg}\uFF09\u3068 ${options.flag} ${fromFlag} \u306E\u4E21\u65B9\u3067\u6307\u5B9A\u3055\u308C\u3066\u3044\u307E\u3059`,
4
- `\u3069\u3061\u3089\u304B\u4E00\u65B9\u3060\u3051\u3092\u6307\u5B9A\u3057\u3066\u304F\u3060\u3055\u3044\uFF08\u3069\u3061\u3089\u3067\u3082\u540C\u3058\u610F\u5473\u3067\u3059\uFF09\u3002`)}const value=fromArg??fromFlag;if(value===void 0||value.trim()===""){if(options.required===false)return void 0;throw new UsageError(`${options.label}\u3092\u6307\u5B9A\u3057\u3066\u304F\u3060\u3055\u3044`,options.usage)}return value.trim()}function requireResolved(input,key){const value=input.resolved?.[key];if(value===
5
- void 0||value===""){throw new Error(`\u5185\u90E8\u30A8\u30E9\u30FC: ${key} \u304C\u89E3\u6C7A\u3055\u308C\u3066\u3044\u307E\u305B\u3093\uFF08prepare() \u306E\u914D\u7DDA\u6F0F\u308C\uFF09`)}return value}function withResolved(input,values){return{...input,resolved:{...input.resolved,...values}}}function isRecord(value){return typeof value==="object"&&value!==null&&!Array.isArray(value)}function pick(row,columns){const source=isRecord(row)?row:{};const out={};for(const column of columns)out[column]=source[column]??null;return out}function acknowledgement(body,label){if(!isRecord(body)||body["result"]!==true){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`)}
6
- return{result:true,message:body["message"]??null}}export{singleRef,requireResolved,withResolved,isRecord,pick,acknowledgement};
@@ -1,9 +0,0 @@
1
- import { createRequire as __twpCreateRequire } from 'node:module';
2
- const require = __twpCreateRequire(import.meta.url);
3
- import{httpFetch}from"./chunk-J7QYPKVK.js";function encodeScalar(key,value,inArray){if(typeof value==="boolean")return value?"true":"false";if(typeof value==="number"){if(!Number.isFinite(value)){throw new TypeError(`\u30AF\u30A8\u30EA\u30D1\u30E9\u30E1\u30FC\u30BF ${key} \u306B\u6709\u9650\u3067\u306A\u3044\u6570\u5024\u306F\u6E21\u305B\u307E\u305B\u3093: ${String(value)}`)}return String(value)}if(inArray&&value.includes(",")){throw new TypeError(`\u30AF\u30A8\u30EA\u30D1\u30E9\u30E1\u30FC\u30BF ${key} \u306E\u914D\u5217\u8981\u7D20\u306B\u30AB\u30F3\u30DE\u306F\u542B\u3081\u3089\u308C\u307E\u305B\u3093: ${value}`)}
4
- return value}function buildQuery(params){if(!params)return"";const search=new URLSearchParams;for(const[key,value]of Object.entries(params)){if(value===null||value===void 0)continue;if(Array.isArray(value)){if(value.length===0)continue;search.append(key,value.map(v=>encodeScalar(key,v,true)).join(","));continue}search.append(key,encodeScalar(key,value,false))}return search.toString()}function appendQuery(path,params){const qs=buildQuery(params);if(qs==="")return path;if(path.endsWith("?")||path.
5
- endsWith("&"))return`${path}${qs}`;return`${path}${path.includes("?")?"&":"?"}${qs}`}var ApiError=class extends Error{constructor(status,body,method,path){super(`${method} ${path} -> ${status}${body?.error_description?` (${body.error_description})`:body?.message?` (${body.message})`:""}`);this.status=status;this.body=body}status;body};var TwpApiClient=class{constructor(apiUrl,session,fetchImpl=httpFetch,cliVersion="0.0.0-dev"){this.apiUrl=apiUrl;this.session=session;this.fetchImpl=fetchImpl;this.cliVersion=cliVersion}apiUrl;session;fetchImpl;cliVersion;async get(path,query){return this.
6
- request("GET",appendQuery(path,query))}async post(path,body,query){return this.request("POST",appendQuery(path,query),body)}async put(path,body,query){return this.request("PUT",appendQuery(path,query),body)}async patch(path,body,query){return this.request("PATCH",appendQuery(path,query),body)}async delete(path,query){return this.request("DELETE",appendQuery(path,query))}async requestBinary(method,path){let token=await this.session.getAccessToken();let res=await this.send(method,path,token);if(res.
7
- status===401){token=await this.session.refresh(token);res=await this.send(method,path,token)}if(!res.ok){const errBody=await res.json().then(parsed=>parsed,()=>null);throw new ApiError(res.status,errBody,method,path)}return{bytes:new Uint8Array(await res.arrayBuffer()),contentType:res.headers.get("content-type")}}async request(method,path,body){let token=await this.session.getAccessToken();let res=await this.send(method,path,token,body);if(res.status===401){token=await this.session.refresh(token);
8
- res=await this.send(method,path,token,body)}if(!res.ok){const errBody=await res.json().then(parsed=>parsed,()=>null);throw new ApiError(res.status,errBody,method,path)}if(res.status===204||res.headers.get("content-length")==="0"){return null}const raw=await res.text();if(raw.trim()==="")return null;try{return JSON.parse(raw)}catch{throw new ApiError(res.status,null,method,path)}}send(method,path,token,body){return this.fetchImpl(`${this.apiUrl}${path}`,{method,headers:{Accept:"application/json",
9
- Authorization:`Bearer ${token}`,"User-Agent":`twp-cli/${this.cliVersion}`,...body!==void 0?{"Content-Type":"application/json"}:{}},...body!==void 0?{body:JSON.stringify(body)}:{}})}};export{appendQuery,ApiError,TwpApiClient};
@@ -1,3 +0,0 @@
1
- import { createRequire as __twpCreateRequire } from 'node:module';
2
- const require = __twpCreateRequire(import.meta.url);
3
- var DOMAIN_NAMES=["backlog","project","task","user"];function isDomainName(value){return value!==void 0&&DOMAIN_NAMES.includes(value)}var HELP_TOKEN="help";var API_TOKEN="api";export{isDomainName,HELP_TOKEN,API_TOKEN};
@@ -1,3 +0,0 @@
1
- import { createRequire as __twpCreateRequire } from 'node:module';
2
- const require = __twpCreateRequire(import.meta.url);
3
- import{evaluateQuery}from"./chunk-E4H22AO5.js";import"./chunk-M3GWY6NT.js";import"./chunk-VSJBJXZO.js";export{evaluateQuery};
@@ -1,24 +0,0 @@
1
- import { createRequire as __twpCreateRequire } from 'node:module';
2
- const require = __twpCreateRequire(import.meta.url);
3
- import{isRecord,pick,requireResolved,singleRef,withResolved}from"./chunk-GFC2ASHE.js";import{DEPARTMENTS_PATH,ORG_MASTER_LIMIT,POSITIONS_PATH}from"./chunk-JB27KNCX.js";import"./chunk-JKSXUBND.js";import"./chunk-II5RVJQN.js";import{LIST_FLAGS,LIST_PAGING_HELP,envelopePaging,nonEmpty,positiveInteger}from"./chunk-2VISRLWS.js";import{isSafePathSegment}from"./chunk-X4RS5VBH.js";import"./chunk-J7QYPKVK.js";import"./chunk-NERYSBA4.js";import"./chunk-RZVI6PMW.js";
4
- import"./chunk-NHYMHCAT.js";import{ApiResponseError,UsageError}from"./chunk-M3GWY6NT.js";import"./chunk-VSJBJXZO.js";var LIST_COLUMNS=["user_id","user_name","email","employee_code","department_name","position_name","role","display_flg"];var GET_COLUMNS=["user_id","user_name","user_name_kana","email","employee_code","role","auth_type","hire_date","is_locked","display_flg","memberlist_flg","org_chart_flg","dashboard_flg"];var ASSIGNMENT_COLUMNS=["id","department_name","position_name","start_date","end_date","is_primary","is_current","is_approval_route","effective_status"];var EMPLOYMENT_TYPES=["employee","partne\
5
- r"];var USER_REF_HELP="<\u30E6\u30FC\u30B6\u30FC> \u306F ID\u30FB\u30E1\u30FC\u30EB\u30A2\u30C9\u30EC\u30B9\u30FB\u793E\u54E1\u756A\u53F7\u30FB\u6C0F\u540D\u30FBme\uFF08\u81EA\u5206\uFF09\u306E\u3069\u308C\u3067\u3082\u6307\u5B9A\u3067\u304D\u307E\u3059\u3002\n\u6C0F\u540D\u306F\u5B8C\u5168\u4E00\u81F4\u30671\u4EBA\u306B\u7D5E\u308C\u305F\u3068\u304D\u3060\u3051\u53D7\u3051\u4ED8\u3051\u307E\u3059\uFF08\u540C\u59D3\u540C\u540D\u306A\u3089\u5019\u88DC\u3092\u51FA\u3057\u3066\u6B62\u307E\u308B\u306E\u3067\u3001\n\u30E1\u30FC\u30EB\u30A2\u30C9\u30EC\u30B9\u304B\u793E\u54E1\u756A\u53F7\u3067\u6307\u5B9A\u3057\u76F4\u3057\u3066\u304F\u3060\u3055\u3044\uFF09\u3002ID \u4EE5\u5916\u306F\u3001\u30C6\u30CA\u30F3\u30C8\u306E\u30E6\u30FC\u30B6\u30FC\u4E00\u89A7\n\uFF08\u65E2\u5B9A10\u5206\u30AD\u30E3\u30C3\u30B7\u30E5\u30FB--refresh \u3067\u53D6\u308A\u76F4\u3057\uFF09\u3068\u7167\u5408\u3057\u307E\u3059\u3002\n\u8868\u793A\u30D5\u30E9\u30B0\u3092\u5916\u3057\u305F\u30E6\u30FC\u30B6\u30FC\u306F\u793E\u54E1\u756A\u53F7\u3067\u306F\u5F15\u3051\u307E\u305B\u3093\u3002\u7D44\u7E54\u7BA1\u7406\u8005\u3067\u306A\u3044\u5834\u5408\u306F ID \u3067\u6307\u5B9A\u3057\u3066\u304F\u3060\u3055\u3044\u3002";
6
- var listPaging=envelopePaging({label:"\u30E6\u30FC\u30B6\u30FC\u4E00\u89A7"});function userPath(input,suffix=""){const userId=requireResolved(input,"userId");if(!isSafePathSegment(userId)){throw new ApiResponseError(`\u30B5\u30FC\u30D0\u304C\u8FD4\u3057\u305F\u30E6\u30FC\u30B6\u30FC ID \u3092\u30D1\u30B9\u306B\u4F7F\u3048\u307E\u305B\u3093: ${userId}\u3002\u63A5\u7D9A\u5148\u3092\u78BA\u8A8D\u3057\u3066\u304F\u3060\u3055\u3044\u3002`)}return`${encodeURIComponent(userId)}${suffix}`}var USER_REF_FLAG={
7
- name:"--user",summary:"\u5BFE\u8C61\u306E\u30E6\u30FC\u30B6\u30FC\uFF08\u4F4D\u7F6E\u5F15\u6570\u306E\u4EE3\u308F\u308A\u306B\u4F7F\u3048\u308B\uFF09",takesValue:true,placeholder:"<\u30E6\u30FC\u30B6\u30FC>"};async function prepareUser(input,ctx,usage){const ref=singleRef(input,{flag:"--user",label:"\u30E6\u30FC\u30B6\u30FC",usage});const user=await ctx.resolver.user(ref);return withResolved(input,{userId:user.id})}function userObject(body){if(!isRecord(body)||typeof body["user_id"]!=="string"){
8
- throw new ApiResponseError("\u30E6\u30FC\u30B6\u30FC\u8A73\u7D30\u306E\u5FDC\u7B54\u306B user_id \u304C\u3042\u308A\u307E\u305B\u3093\u3002\u63A5\u7D9A\u5148\u3092\u78BA\u8A8D\u3057\u3066\u304F\u3060\u3055\u3044\u3002")}const rest={...body};delete rest["result"];return rest}function assignmentRows(body){const response=isRecord(body)&&"response"in body?body["response"]:body;const list=isRecord(response)?response["list"]:void 0;if(!Array.isArray(list)){throw new ApiResponseError("\u6240\u5C5E\u4E00\u89A7\u306E\u5FDC\u7B54\u306B list \u914D\u5217\u304C\
9
- \u3042\u308A\u307E\u305B\u3093\u3002\u63A5\u7D9A\u5148\u3092\u78BA\u8A8D\u3057\u3066\u304F\u3060\u3055\u3044\u3002")}return list}async function nameMap(ctx,path,label){try{const body=await ctx.send({method:"GET",path,query:{limit:ORG_MASTER_LIMIT}});const list=isRecord(body)?body["list"]:void 0;if(!Array.isArray(list))throw new Error(`${label}\u4E00\u89A7\u306E\u5FDC\u7B54\u306B list \u914D\u5217\u304C\u3042\u308A\u307E\u305B\u3093`);const count=isRecord(body)?body["count"]:void 0;if(typeof count===
10
- "number"&&count>list.length){ctx.warn(`${label}\u4E00\u89A7\u304C ${count} \u4EF6\u4E2D ${list.length} \u4EF6\u3067\u5207\u308A\u8A70\u3081\u3089\u308C\u305F\u305F\u3081\u3001\u4E00\u90E8\u306E${label}\u540D\u306F\u7A7A\u6B04\u3067\u3059\u3002ID \u306F --output json \u3067\u78BA\u8A8D\u3067\u304D\u307E\u3059\u3002`)}const map={};for(const row of list){if(isRecord(row)&&typeof row["id"]==="string"&&typeof row["name"]==="string"){map[row["id"]]=row["name"]}}return map}catch(err){ctx.warn(`${label}\
11
- \u540D\u3092\u53D6\u5F97\u3067\u304D\u306A\u304B\u3063\u305F\u305F\u3081\u3001${label}\u540D\u306E\u5217\u306F\u7A7A\u6B04\u3067\u3059\uFF08${err.message}\uFF09\u3002ID \u306F --output json \u3067\u78BA\u8A8D\u3067\u304D\u307E\u3059\u3002`);return{}}}function assignmentPlan(input){const suffix=input.flags.has("--current")?"/assignments/current":"/assignments";return{method:"GET",path:`/api/v2/organization/users/${userPath(input,suffix)}`}}var userAssignmentResource={name:"assignment",summary:"\u30E6\u30FC\
12
- \u30B6\u30FC\u306E\u6240\u5C5E\uFF08\u90E8\u7F72\u30FB\u5F79\u8077\uFF09",operations:[{name:"list",summary:"\u30E6\u30FC\u30B6\u30FC\u306E\u6240\u5C5E\u306E\u5C65\u6B74\u3092\u4E00\u89A7\u3059\u308B",usage:"twp user assignment list <\u30E6\u30FC\u30B6\u30FC> [--current]",description:"\u904E\u53BB\u30FB\u73FE\u5728\u30FB\u4E88\u5B9A\u306E\u6240\u5C5E\u3092\u3059\u3079\u3066\u51FA\u3057\u307E\u3059\u3002--current \u3067\u73FE\u5728\u6709\u52B9\u306A\u6240\u5C5E\u3060\u3051\u306B\u7D5E\u308A\u307E\u3059\u3002\nis_primary \u306F\u4E3B\u52D9\u3001is_approval_route \u306F\u30EF\u30FC\u30AF\u30D5\u30ED\u30FC\u306E\u4E0A\u9577\u627F\u8A8D\u306B\u4F7F\u308F\u308C\u308B\u6240\u5C5E\u3067\u3059\u3002\n\u53C2\u7167\u3067\u304D\u308B\u306E\u306F\u672C\u4EBA\u30FB\u4E0A\u9577\u30FB\u7D44\u7E54\u7BA1\u7406\u8005\u3060\u3051\u3067\u3059\u3002\n\u3053\u306E API \u306F\u30DA\u30FC\u30B8\u30F3\u30B0\u3092\u6301\u305F\u305A\u3001\u5E38\u306B\u5168\u4EF6\u3092\u8FD4\u3057\u307E\u3059\u3002\n\n"+
13
- USER_REF_HELP,forbidden:"\u3053\u306E\u30E6\u30FC\u30B6\u30FC\u306E\u6240\u5C5E\u3092\u53C2\u7167\u3059\u308B\u6A29\u9650\u304C\u3042\u308A\u307E\u305B\u3093\u3002\u672C\u4EBA\u30FB\u4E0A\u9577\u30FB\u7D44\u7E54\u7BA1\u7406\u8005\u3060\u3051\u304C\u53C2\u7167\u3067\u304D\u307E\u3059",flags:[USER_REF_FLAG,{name:"--current",summary:"\u73FE\u5728\u6709\u52B9\u306A\u6240\u5C5E\u3060\u3051\u3092\u51FA\u3059",takesValue:false}],prepare:(input,ctx)=>prepareUser(input,ctx,"twp user assignment list help"),
14
- plan:assignmentPlan,plannedNotes:()=>["\u3053\u306E\u3042\u3068\u3001\u90E8\u7F72\u540D\u30FB\u5F79\u8077\u540D\u3092\u8868\u793A\u3059\u308B\u305F\u3081\u90E8\u7F72\u4E00\u89A7\u3068\u5F79\u8077\u4E00\u89A7\u3092 GET \u3057\u307E\u3059\u3002"],async execute(input,ctx){const response=await ctx.send(assignmentPlan(input));assignmentRows(response);const[departmentNames,positionNames]=await Promise.all([nameMap(ctx,DEPARTMENTS_PATH,"\u90E8\u7F72"),nameMap(ctx,POSITIONS_PATH,"\u5F79\u8077")]);return{
15
- response,departmentNames,positionNames}},summarize(body){const names=body;return assignmentRows(body).map(row=>{const record=isRecord(row)?row:{};const department=record["department_id"];const position=record["position_id"];return pick({...record,department_name:typeof department==="string"?names.departmentNames?.[department]??null:null,position_name:typeof position==="string"?names.positionNames?.[position]??null:null},ASSIGNMENT_COLUMNS)})},raw:body=>assignmentRows(body)}]};var userDomain={name:"\
16
- user",summary:"\u30C6\u30CA\u30F3\u30C8\u306E\u30E6\u30FC\u30B6\u30FC\u3068\u6240\u5C5E\u306E\u53C2\u7167",operations:[{name:"list",summary:"\u30E6\u30FC\u30B6\u30FC\u3092\u4E00\u89A7\u3059\u308B\uFF08\u90E8\u7F72\u30FB\u5F79\u8077\u30FB\u96C7\u7528\u533A\u5206\u30FB\u30AD\u30FC\u30EF\u30FC\u30C9\u3067\u7D5E\u308A\u8FBC\u3081\u308B\uFF09",usage:"twp user list [--department <\u90E8\u7F72>] [--position <\u5F79\u8077>] [--employment employee|partner] [--keyword <\u8A9E>] [--include-hidden] [--all] [--limit <\u4EF6\u6570>] [--cursor \
17
- <\u30AB\u30FC\u30BD\u30EB>]",description:"--department / --position \u306F\u540D\u524D\u30FB\u30B3\u30FC\u30C9\u30FBID \u306E\u3069\u308C\u3067\u3082\u6307\u5B9A\u3067\u304D\u307E\u3059\uFF08\u4E3B\u6240\u5C5E\u3067\u7D5E\u308A\u8FBC\u307F\u307E\u3059\uFF09\u3002\n--employment \u306F employee\uFF08\u793E\u54E1\uFF09\u304B partner\uFF08\u30D1\u30FC\u30C8\u30CA\u30FC\uFF09\u3067\u3059\u3002\n--include-hidden \u306F\u8868\u793A\u30D5\u30E9\u30B0\u3092\u5916\u3057\u305F\u30E6\u30FC\u30B6\u30FC\u3082\u542B\u3081\u307E\u3059\uFF08\u7D44\u7E54\u7BA1\u7406\u8005\u306E\u3068\u304D\u3060\u3051\u52B9\u304D\u307E\u3059\uFF09\u3002\n\u5931\u52B9\uFF08\u30ED\u30B0\u30A4\u30F3\u4E0D\u53EF\uFF09\u3057\u305F\u30E6\u30FC\u30B6\u30FC\u3082\u4E00\u89A7\u306B\u542B\u307E\u308C\u307E\u3059\u3002\u5931\u52B9\u304B\u3069\u3046\u304B\u306F twp user get \u306E auth_type \u3067\u78BA\u8A8D\u3067\u304D\u307E\u3059\u3002\n\n--output json \u306F API \u304C\u8FD4\u3059\u5168\u30D5\u30A3\u30FC\u30EB\u30C9\u3092\u51FA\u3057\u307E\u3059\u3002\n--output table / text / tsv \u306F\u8981\u7D04\u5217\uFF08user_id / user_name / email / employee_code / department_name / position_name / role / display_flg\uFF09\u3067\u3059\u3002\n\n"+
18
- LIST_PAGING_HELP,flags:[...LIST_FLAGS,{name:"--department",summary:"\u4E3B\u6240\u5C5E\u306E\u90E8\u7F72\u3067\u7D5E\u308A\u8FBC\u3080\uFF08\u540D\u524D\u30FB\u30B3\u30FC\u30C9\u30FBID\uFF09",takesValue:true,placeholder:"<\u90E8\u7F72>"},{name:"--position",summary:"\u4E3B\u6240\u5C5E\u306E\u5F79\u8077\u3067\u7D5E\u308A\u8FBC\u3080\uFF08\u540D\u524D\u30FB\u30B3\u30FC\u30C9\u30FBID\uFF09",takesValue:true,placeholder:"<\u5F79\u8077>"},{name:"--employment",summary:"\u96C7\u7528\u533A\u5206\u3067\u7D5E\u308A\u8FBC\u3080\uFF08employee / partner\uFF09",
19
- takesValue:true,placeholder:"<\u533A\u5206>"},{name:"--keyword",summary:"\u6C0F\u540D\u30FB\u30E1\u30FC\u30EB\u30A2\u30C9\u30EC\u30B9\u306E\u90E8\u5206\u4E00\u81F4\u3067\u7D5E\u308A\u8FBC\u3080",takesValue:true,placeholder:"<\u8A9E>"},{name:"--include-hidden",summary:"\u8868\u793A\u30D5\u30E9\u30B0\u3092\u5916\u3057\u305F\u30E6\u30FC\u30B6\u30FC\u3082\u542B\u3081\u308B",takesValue:false}],paging:listPaging,async prepare(input,ctx){if(input.args.length>0){throw new UsageError(`list \u306F\u4F4D\u7F6E\u5F15\u6570\u3092\u53D6\u308A\u307E\u305B\u3093: ${input.
20
- args.join(" ")}`,"twp user list help")}const employment=nonEmpty(input.flags,"--employment");if(employment!==void 0&&!EMPLOYMENT_TYPES.includes(employment)){throw new UsageError(`--employment \u306B\u300C${employment}\u300D\u306F\u6307\u5B9A\u3067\u304D\u307E\u305B\u3093`,`\u6307\u5B9A\u3067\u304D\u308B\u306E\u306F ${EMPLOYMENT_TYPES.join(" / ")} \u3067\u3059`)}const resolved={};const department=nonEmpty(input.flags,"--department");if(department!==void 0)resolved["departmentId"]=(await ctx.resolver.
21
- department(department)).id;const position=nonEmpty(input.flags,"--position");if(position!==void 0)resolved["positionId"]=(await ctx.resolver.position(position)).id;return withResolved(input,resolved)},plan(input){return{method:"GET",path:"/api/v2/admin/users/list",query:{limit:positiveInteger(input.flags,"--limit"),cursor:nonEmpty(input.flags,"--cursor"),keyword:nonEmpty(input.flags,"--keyword"),department_id:input.resolved?.["departmentId"],position_id:input.resolved?.["positionId"],employment_type:nonEmpty(
22
- input.flags,"--employment"),include_hidden:input.flags.has("--include-hidden")?"true":void 0}}},summarize:body=>listPaging.items(body).map(row=>pick(row,LIST_COLUMNS)),raw:body=>listPaging.items(body)},{name:"get",summary:"\u30E6\u30FC\u30B6\u30FC1\u4EBA\u306E\u8A73\u7D30\u3092\u8868\u793A\u3059\u308B\uFF08\u7D44\u7E54\u7BA1\u7406\u8005\u306E\u307F\uFF09",usage:"twp user get <\u30E6\u30FC\u30B6\u30FC>",description:USER_REF_HELP+"\n\nauth_type \u304C disabled \u306E\u30E6\u30FC\u30B6\u30FC\u306F\u5931\u52B9\uFF08\u30ED\u30B0\u30A4\u30F3\u4E0D\u53EF\uFF09\u3057\u3066\u3044\u307E\u3059\u3002\n\u8981\u7D04\uFF08table / text / tsv\
23
- \uFF09\u306B\u306F\u500B\u4EBA\u9023\u7D61\u5148\u3092\u51FA\u3057\u307E\u305B\u3093\u3002--output json \u306F API \u304C\u8FD4\u3059\u5168\u30D5\u30A3\u30FC\u30EB\u30C9\u3092\u51FA\u3057\u307E\u3059\u3002",forbidden:"\u7D44\u7E54\u7BA1\u7406\u8005\u306E\u6A29\u9650\u304C\u5FC5\u8981\u3067\u3059\u3002twp user get \u306F\u7D44\u7E54\u7BA1\u7406\u8005\u3060\u3051\u304C\u4F7F\u3048\u307E\u3059",flags:[USER_REF_FLAG],prepare:(input,ctx)=>prepareUser(input,ctx,"twp user get help"),plan:input=>({method:"\
24
- GET",path:`/api/v2/admin/users/${userPath(input)}`}),summarize:body=>pick(userObject(body),GET_COLUMNS),raw:body=>userObject(body)}],subresources:[userAssignmentResource]};export{userDomain};