@tocca-systems/twp-cli 0.94.2 → 0.95.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.
- package/CHANGELOG.public.md +8 -0
- package/README.md +30 -0
- package/dist/{agent-VWO2M7L6.js → agent-JBW7RUMH.js} +1 -1
- package/dist/{agent-loop-J6YSC5BU.js → agent-loop-5T7K55HB.js} +2 -2
- package/dist/{ai-dispatch-SJLD7VHR.js → ai-dispatch-FAX42DSC.js} +2 -2
- package/dist/{analysis-KOUABCSN.js → analysis-S3MVKXUP.js} +2 -2
- package/dist/{announcement-B5XGD27Z.js → announcement-XFLWDATJ.js} +1 -1
- package/dist/{api-command-VL4S7EFI.js → api-command-DFBW4WDY.js} +2 -2
- package/dist/{app-SXZKX74L.js → app-5KZIDNSC.js} +3 -3
- package/dist/{attendance-correct-7YUT2ICL.js → attendance-correct-RKSCYTJC.js} +1 -1
- package/dist/{attendance-lists-DJ6AQH34.js → attendance-lists-TSW67WG5.js} +1 -1
- package/dist/{auto-update-worker-XT4VB4LJ.js → auto-update-worker-3GV3BK5P.js} +1 -1
- package/dist/{backlog-ANCHSCHE.js → backlog-EZLYOANF.js} +1 -1
- package/dist/{budget-2O6WSE6I.js → budget-42ORBXF2.js} +1 -1
- package/dist/{capacity-list-command-FFCCFT7N.js → capacity-list-command-DDCYRLGV.js} +1 -1
- package/dist/{chunk-CRUWTSYP.js → chunk-6HBZRMDD.js} +1 -1
- package/dist/{chunk-UGBWUAI3.js → chunk-ARJ35CBU.js} +1 -1
- package/dist/chunk-BD7O73GK.js +18 -0
- package/dist/{chunk-3E7QVTKD.js → chunk-BWRWOFJR.js} +1 -1
- package/dist/{chunk-AONJZKHQ.js → chunk-CDBV6AZI.js} +1 -1
- package/dist/{chunk-6EIW4KTU.js → chunk-F36CIBG3.js} +1 -1
- package/dist/{chunk-5WJWURQT.js → chunk-FAXBXNN6.js} +1 -1
- package/dist/{chunk-BFFT4CYG.js → chunk-FBTOIECJ.js} +1 -1
- package/dist/{chunk-5LRVZ2B5.js → chunk-FQUTOJER.js} +1 -1
- package/dist/{chunk-QYAP2LAH.js → chunk-GEIQWMHV.js} +1 -1
- package/dist/chunk-GPSWTMAG.js +12 -0
- package/dist/{chunk-HWKHVP23.js → chunk-HEH3PUW2.js} +1 -1
- package/dist/{chunk-7AQIMLEK.js → chunk-HUKKZ252.js} +1 -1
- package/dist/{chunk-JBWE7SQR.js → chunk-IJJSFOUI.js} +1 -1
- package/dist/{chunk-WTYIFLVB.js → chunk-JULG6KDV.js} +7 -7
- package/dist/{chunk-N3N6VIV3.js → chunk-MDZ6IVMB.js} +1 -1
- package/dist/{chunk-JFR7DKVX.js → chunk-MF2QWRQF.js} +2 -2
- package/dist/{chunk-QVRWXH6S.js → chunk-MH75OJIC.js} +1 -1
- package/dist/{chunk-SIZU47BB.js → chunk-OUAE5ZLN.js} +1 -1
- package/dist/{chunk-LLBLGHHZ.js → chunk-PJ7IKTZI.js} +13 -3
- package/dist/{chunk-JJAXQDIW.js → chunk-QTYKIOC7.js} +1 -1
- package/dist/{chunk-EYEQMRLV.js → chunk-RR6FZGG4.js} +1 -1
- package/dist/{chunk-TUFWQYKB.js → chunk-T67E7BOT.js} +1 -1
- package/dist/{chunk-STCWJIAD.js → chunk-U6REFY7T.js} +1 -1
- package/dist/{chunk-N43TTR2I.js → chunk-UBWIUHMK.js} +1 -1
- package/dist/{chunk-DCZK6A3Z.js → chunk-UENDVIE2.js} +1 -1
- package/dist/{chunk-AGT2IWAY.js → chunk-VEEZJNOB.js} +1 -1
- package/dist/{chunk-FEUODLIQ.js → chunk-VIIVRZ37.js} +1 -1
- package/dist/{chunk-5B7GR6NM.js → chunk-YOSNPO2Q.js} +1 -1
- package/dist/cli.js +21 -9
- package/dist/{commands-EK6AMMIV.js → commands-7BIWC6NN.js} +10 -10
- package/dist/{commands-ZIGB6CQT.js → commands-CARE564N.js} +1 -1
- package/dist/{company-HUP72FGC.js → company-XXZOTYR3.js} +1 -1
- package/dist/{contract-CCSCR7BO.js → contract-VSEVQAEG.js} +1 -1
- package/dist/{deposit-XMZZBRSY.js → deposit-WRR6LIEJ.js} +1 -1
- package/dist/{domain-knowledge-44FQ4EIL.js → domain-knowledge-HDISES3Q.js} +1 -1
- package/dist/{estimate-3JTW4EES.js → estimate-MNGWUG4P.js} +2 -2
- package/dist/{evaluation-GKPJBSVD.js → evaluation-UPQE4TSZ.js} +1 -1
- package/dist/{expense-AOUR6AFS.js → expense-XBAOSKBT.js} +1 -1
- package/dist/{faq-DLY5YITZ.js → faq-LAHSHUEG.js} +1 -1
- package/dist/{holiday-WLJT7FGH.js → holiday-Y6LXDHDN.js} +1 -1
- package/dist/{invoice-XMTJV34B.js → invoice-PRYMEO2D.js} +2 -2
- package/dist/{knowledge-7B2R6UCM.js → knowledge-BDWTFB7Y.js} +1 -1
- package/dist/{leave-O6D4NOMN.js → leave-6XKKQEHG.js} +2 -2
- package/dist/{media-VA7YJ5CR.js → media-563X77XH.js} +2 -2
- package/dist/{oneshot-BXLRUQQP.js → oneshot-JAA46MUA.js} +2 -2
- package/dist/{outlook-B5QENUVX.js → outlook-3SEVP3GT.js} +1 -1
- package/dist/{plan-submit-X5JFY2ZA.js → plan-submit-UABUVUUC.js} +2 -2
- package/dist/{project-M6XX6QVR.js → project-UAOPNR4D.js} +1 -1
- package/dist/{prospect-C3OWZPUJ.js → prospect-ADFOGMG6.js} +1 -1
- package/dist/{purchase-TEPTOLIR.js → purchase-JOFMJEWJ.js} +2 -2
- package/dist/{receivable-N4EMAU2C.js → receivable-6LOOTBFR.js} +1 -1
- package/dist/{registry-CN27HELV.js → registry-TD5B26NZ.js} +1 -1
- package/dist/{render-HF4OIOXS.js → render-HH2Y6YKX.js} +1 -1
- package/dist/{report-NXYULEVF.js → report-PTSQA6ER.js} +1 -1
- package/dist/{run-A43RYU65.js → run-WY6SYYKZ.js} +1 -1
- package/dist/{runner-command-SUTLCZQB.js → runner-command-UGG7X2KU.js} +1 -1
- package/dist/{sales-ai-review-Q2RFAXUD.js → sales-ai-review-VFHXAD22.js} +1 -1
- package/dist/{sales-master-5JR2TMLK.js → sales-master-44FX2C6D.js} +7 -7
- package/dist/{sales-numbering-UO4QIZZC.js → sales-numbering-WJDBTUG4.js} +1 -1
- package/dist/{skill-6AUBIXLM.js → skill-436AK3GR.js} +1 -1
- package/dist/{skill-manage-command-ZB4ECK6X.js → skill-manage-command-RACKW7W4.js} +2 -2
- package/dist/{staffing-board-SPXKQ5F2.js → staffing-board-QVNTGTAH.js} +2 -2
- package/dist/{status-command-JG5WY4IX.js → status-command-NP4OGBKY.js} +2 -2
- package/dist/{supplier-payment-KVWJCRWB.js → supplier-payment-EROBZJ4Y.js} +1 -1
- package/dist/{support-EKI7AATE.js → support-2BEGFCT5.js} +1 -1
- package/dist/{task-T3SQVFJ5.js → task-BZ32J7ZB.js} +2 -2
- package/dist/{teams-U7NHSZHY.js → teams-GJAVNPDV.js} +1 -1
- package/dist/{update-5NJSC26F.js → update-2N3V64AA.js} +1 -1
- package/dist/{user-WO6CKRNH.js → user-BH7L5HIZ.js} +69 -15
- package/dist/{worker-agent-XHX3D4LT.js → worker-agent-WZIJKNPS.js} +1 -1
- package/dist/{workflow-PJ33ZW42.js → workflow-X7H7LPVN.js} +1 -1
- package/package.json +1 -1
- package/dist/chunk-AKLRVUU2.js +0 -18
- package/dist/chunk-WHYQZC2H.js +0 -12
|
@@ -1,11 +1,11 @@
|
|
|
1
1
|
import { createRequire as __twpCreateRequire } from 'node:module';
|
|
2
2
|
const require = __twpCreateRequire(import.meta.url);
|
|
3
|
-
import{ASSIGNED_PROJECT_COLUMNS,assignedProjectItems}from"./chunk-
|
|
4
|
-
import{USER_REF_FLAG,USER_REF_HELP,prepareUser,userPath}from"./chunk-UVCJXHWN.js";import{createFlags,fieldBody,hasAnyField,resolveRefFields,updateFlags}from"./chunk-45WIRMGL.js";import"./chunk-EXT4AIDF.js";import{booleanText,boundedText,isoDate,isoDateValue}from"./chunk-JJSBBWJ5.js";import"./chunk-
|
|
5
|
-
POSITIONS_PATH}from"./chunk-4DOPQ74T.js";import{ResolveError,isSafePathSegment}from"./chunk-HVZUXLQ4.js";import{ApiError}from"./chunk-JA5A6UJ2.js";import"./chunk-MMVXE2CJ.js";import"./chunk-II5RVJQN.js";import{LIST_FLAGS,LIST_PAGING_HELP,envelopePaging,nonEmpty,positiveInteger,shellQuote}from"./chunk-MI6HVYR2.js";import{requireResolved,
|
|
6
|
-
ApiResponseError,UsageError}from"./chunk-VFPY2A23.js";import"./chunk-J7QYPKVK.js";import"./chunk-EDF4U5BT.js";import"./chunk-RZVI6PMW.js";import"./chunk-QQRJLH6B.js";import"./chunk-NHYMHCAT.js";import"./chunk-VSJBJXZO.js";import
|
|
7
|
-
return list}async function nameMap(ctx,
|
|
8
|
-
\u308C\u305F\u305F\u3081\u3001\u4E00\u90E8\u306E${label2}\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(`${label2}\u540D\u3092\u53D6\u5F97\u3067\u304D\u306A\u304B\u3063\u305F\u305F\u3081\u3001${label2}\u540D\u306E\u5217\u306F\u7A7A\u6B04\u3067\u3059\uFF08${err.
|
|
3
|
+
import{ASSIGNED_PROJECT_COLUMNS,assignedProjectItems}from"./chunk-MF2QWRQF.js";import{FISCAL_YEAR_FLAG,fiscalYear,skillNames}from"./chunk-UBWIUHMK.js";import{LICENSE_FEATURE_NAMES,levelHoldsSeat,permissionMovesSeat,readLicenses}from"./chunk-2J5A4Q7U.js";import{CONCURRENCY,exportOperation,mapPool,pacedSender}from"./chunk-ZFSQJAYZ.js";import"./chunk-FBTOIECJ.js";import{inspectLocalFile,isCommitted,issued}from"./chunk-JULG6KDV.js";import{checkUploadQuota}from"./chunk-V64CGX7V.js";
|
|
4
|
+
import{readCsvFileText}from"./chunk-QLENN5DD.js";import"./chunk-RMFLTSOV.js";import"./chunk-QTYKIOC7.js";import"./chunk-MH75OJIC.js";import{USER_REF_FLAG,USER_REF_HELP,prepareUser,userPath}from"./chunk-UVCJXHWN.js";import{createFlags,fieldBody,hasAnyField,resolveRefFields,updateFlags}from"./chunk-45WIRMGL.js";import"./chunk-EXT4AIDF.js";import{booleanText,boundedText,isoDate,isoDateValue}from"./chunk-JJSBBWJ5.js";import"./chunk-HEH3PUW2.js";import"./chunk-W4NLJ2YK.js";
|
|
5
|
+
import"./chunk-BD7O73GK.js";import{repeatedValues}from"./chunk-RX5HWI4L.js";import{DEPARTMENTS_PATH,ORG_MASTER_LIMIT,POSITIONS_PATH}from"./chunk-4DOPQ74T.js";import{ResolveError,isSafePathSegment}from"./chunk-HVZUXLQ4.js";import{ApiError}from"./chunk-JA5A6UJ2.js";import"./chunk-MMVXE2CJ.js";import"./chunk-II5RVJQN.js";import{LIST_FLAGS,LIST_PAGING_HELP,envelopePaging,nonEmpty,positiveInteger,shellQuote}from"./chunk-MI6HVYR2.js";import{requireResolved,
|
|
6
|
+
singleRef,withResolved}from"./chunk-PS5QFKHB.js";import{isRecord,pick}from"./chunk-3ZRMMBP5.js";import{ApiRejectedError,ApiResponseError,UsageError}from"./chunk-VFPY2A23.js";import{NotLoggedInError,SessionExpiredError}from"./chunk-XNLIEUAW.js";import"./chunk-J7QYPKVK.js";import"./chunk-EDF4U5BT.js";import"./chunk-RZVI6PMW.js";import"./chunk-QQRJLH6B.js";import"./chunk-NHYMHCAT.js";import"./chunk-VSJBJXZO.js";import fs2 from"fs";var ASSIGNMENT_COLUMNS=["id","department_name","position_name","start_date","end_date","is_primary","is_current","is_approval_route","effective_status"];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\u3042\u308A\u307E\u305B\u3093\u3002\u63A5\u7D9A\u5148\u3092\u78BA\u8A8D\u3057\u3066\u304F\u3060\u3055\u3044\u3002")}
|
|
7
|
+
return list}async function nameMap(ctx,path2,label2){try{const body=await ctx.send({method:"GET",path:path2,query:{limit:ORG_MASTER_LIMIT}});const list=isRecord(body)?body["list"]:void 0;if(!Array.isArray(list))throw new Error(`${label2}\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==="number"&&count>list.length){ctx.warn(`${label2}\u4E00\u89A7\u304C ${count} \u4EF6\u4E2D ${list.length} \
|
|
8
|
+
\u4EF6\u3067\u5207\u308A\u8A70\u3081\u3089\u308C\u305F\u305F\u3081\u3001\u4E00\u90E8\u306E${label2}\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(`${label2}\u540D\u3092\u53D6\u5F97\u3067\u304D\u306A\u304B\u3063\u305F\u305F\u3081\u3001${label2}\u540D\u306E\u5217\u306F\u7A7A\u6B04\u3067\u3059\uFF08${err.
|
|
9
9
|
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 listOperation={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]",
|
|
10
10
|
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"+
|
|
11
11
|
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"),
|
|
@@ -299,7 +299,60 @@ SCOPE_NOTE,forbidden:FORBIDDEN4,flags:[FEATURE_FLAG,LEVEL_FLAG],prepare:prepareU
|
|
|
299
299
|
const revert=revertCommand2(updateBody(body).changes);if(revert!==null)notes.push(`\u5143\u306B\u623B\u3059\u306B\u306F:
|
|
300
300
|
${revert}`);return notes},failures:body=>{const{changes,drifted}=updateBody(body);return[...changes.filter(change=>change.saved!==change.to).map(change=>({target:`${change.featureLabel}\uFF08${change.feature}\uFF09`,error:new ApiRejectedError(`${change.to} \u3092\u9001\u308A\u307E\u3057\u305F\u304C\u3001\u30B5\u30FC\u30D0\u304C\u4FDD\u5B58\u3057\u305F\u5024\u306F ${change.saved??"\uFF08\u5FDC\u7B54\u306B\u7121\u3057\uFF09"} \u3067\u3059\u3002twp user default-permission list \u3067\u78BA\u304B\u3081\u3066\u304F\u3060\u3055\u3044\u3002`)})),
|
|
301
301
|
...drifted.map(item=>({target:item.feature,error:new ApiRejectedError(`\u6307\u5B9A\u3057\u3066\u3044\u306A\u3044\u6A5F\u80FD\u306E\u65E2\u5B9A\u304C\u5909\u308F\u308A\u307E\u3057\u305F\uFF08${item.sent} \u3092\u9001\u308A\u307E\u3057\u305F\u304C\u3001\u4FDD\u5B58\u3055\u308C\u305F\u5024\u306F ${item.saved??"\uFF08\u5FDC\u7B54\u306B\u7121\u3057\uFF09"} \u3067\u3059\uFF09\u3002twp user default-permission update --feature ${shellQuote(`${item.feature}=${item.sent}`)} \u3067\u623B\u3057\u3066\u304F\u3060\u3055\u3044\u3002`)}))]}};
|
|
302
|
-
var userDefaultPermissionResource={name:"default-permission",summary:"\u65B0\u3057\u304F\u5165\u308B\u4EBA\u306B\u4ED8\u304F\u65E2\u5B9A\u306E\u6A5F\u80FD\u6A29\u9650\uFF08\u53C2\u7167\u30FB\u5909\u66F4\u3002\u65E2\u5B58\u30E6\u30FC\u30B6\u30FC\u306F\u5909\u308F\u3089\u306A\u3044\uFF09",operations:[listOperation3,updateOperation3]};var
|
|
302
|
+
var userDefaultPermissionResource={name:"default-permission",summary:"\u65B0\u3057\u304F\u5165\u308B\u4EBA\u306B\u4ED8\u304F\u65E2\u5B9A\u306E\u6A5F\u80FD\u6A29\u9650\uFF08\u53C2\u7167\u30FB\u5909\u66F4\u3002\u65E2\u5B58\u30E6\u30FC\u30B6\u30FC\u306F\u5909\u308F\u3089\u306A\u3044\uFF09",operations:[listOperation3,updateOperation3]};var FORBIDDEN_POLICY="\u7D44\u7E54\u7BA1\u7406\u8005\u306E\u6A29\u9650\u304C\u5FC5\u8981\u3067\u3059\u3002twp user auth-policy \u306F\u7D44\u7E54\u7BA1\u7406\u8005\u3060\u3051\u304C\u4F7F\u3048\u307E\u3059";var FORBIDDEN_LOCK="\u7D44\u7E54\u7BA1\u7406\u8005\u306E\u6A29\u9650\u304C\u5FC5\u8981\u3067\u3059\u3002twp user account-lock \u306F\u7D44\u7E54\u7BA1\u7406\u8005\u3060\u3051\u304C\u4F7F\u3048\u307E\u3059";var POLICY_PATH="/api/v2/admin/tenant/auth-policy";var LOCK_PATH="/api/v2/admin/tenant/\
|
|
303
|
+
account-lock";var TENANT_WIDE="\u3053\u306E\u8A2D\u5B9A\u306F\u30C6\u30CA\u30F3\u30C8\u5168\u54E1\u306E\u30ED\u30B0\u30A4\u30F3\u306B\u52B9\u304D\u307E\u3059\u3002";function envelope(body,label2){if(!isRecord(body)||body["result"]!==true){throw new ApiResponseError(`${label2}\u306E\u5FDC\u7B54\u306E\u5F62\u304C\u60F3\u5B9A\u3068\u9055\u3044\u307E\u3059\u3002\u63A5\u7D9A\u5148\u3092\u78BA\u8A8D\u3057\u3066\u304F\u3060\u3055\u3044\u3002`)}return body}function noArgs(input,usage){if(input.args.length>
|
|
304
|
+
0)throw new UsageError(`\u4F4D\u7F6E\u5F15\u6570\u306F\u53D7\u3051\u307E\u305B\u3093\uFF08\u8A2D\u5B9A\u306F\u30C6\u30CA\u30F3\u30C8\u306B1\u3064\u3067\u3059\uFF09: ${input.args.join(" ")}`,usage)}function readPasswordAuth(body){const value=envelope(body,"\u8A8D\u8A3C\u30DD\u30EA\u30B7\u30FC")["password_auth_enabled"];if(typeof value!=="boolean"){throw new ApiResponseError("\u8A8D\u8A3C\u30DD\u30EA\u30B7\u30FC\u306E\u5FDC\u7B54\u306B password_auth_enabled\uFF08\u771F\u507D\u5024\uFF09\u304C\u3042\u308A\u307E\u305B\u3093\u3002\u63A5\u7D9A\u5148\u3092\u78BA\u8A8D\u3057\u3066\u304F\u3060\u3055\u3044\u3002")}
|
|
305
|
+
return value}var PASSWORD_AUTH_FLAG={name:"--password-auth",summary:"\u30D1\u30B9\u30EF\u30FC\u30C9\u8A8D\u8A3C\u3092\u8A31\u3059\u304B\uFF08true / false\uFF09",takesValue:true,placeholder:"<true|false>"};var POLICY_UPDATE_USAGE="twp user auth-policy update --password-auth <true|false>";var PASSWORD_OFF_WARNING="\u30D1\u30B9\u30EF\u30FC\u30C9\u8A8D\u8A3C\u3092\u7121\u52B9\u306B\u3059\u308B\u3068\u3001\u6B21\u306E\u30ED\u30B0\u30A4\u30F3\u304B\u3089\u30D1\u30B9\u30EF\u30FC\u30C9\u3067\u306F\u30ED\u30B0\u30A4\u30F3\u3067\u304D\u306A\u304F\u306A\u308A\u307E\u3059\uFF08\u3042\u306A\u305F\u81EA\u8EAB\u3084 twp login --password \u3082\u540C\u3058\u3067\u3059\u3002\u30D1\u30B9\u30EF\u30FC\u30C9\u30EA\u30BB\u30C3\u30C8\u3082\u4F7F\u3048\u306A\u304F\u306A\u308A\u307E\u3059\uFF09\u3002\u5148\u306B Microsoft 365 / Google \u306E\u3069\u3061\u3089\u304B\u3067\u81EA\u5206\u304C\u30ED\u30B0\u30A4\u30F3\u3067\u304D\u308B\u3053\u3068\u3092\u78BA\u304B\u3081\u3066\u304F\u3060\u3055\u3044\u3002";
|
|
306
|
+
function wantedPasswordAuth(input){const raw=input.flags.get(PASSWORD_AUTH_FLAG.name);if(raw===void 0)throw new UsageError("--password-auth \u3092\u6307\u5B9A\u3057\u3066\u304F\u3060\u3055\u3044",POLICY_UPDATE_USAGE);return booleanText(PASSWORD_AUTH_FLAG.name,raw)}function policyPlan(input){return{method:"PUT",path:POLICY_PATH,body:{password_auth_enabled:wantedPasswordAuth(input)}}}function policyUpdateBody(body){if(!isRecord(body)||body["policyUpdate"]!==true)throw new ApiResponseError("\u8A8D\u8A3C\u30DD\u30EA\u30B7\u30FC\u306E\
|
|
307
|
+
\u5909\u66F4\u306E\u7D50\u679C\u3092\u7D44\u307F\u7ACB\u3066\u3089\u308C\u307E\u305B\u3093\u3067\u3057\u305F\uFF08\u5185\u90E8\u30A8\u30E9\u30FC\uFF09\u3002");return body}var policyGetOperation={name:"get",summary:"\u8A8D\u8A3C\u30DD\u30EA\u30B7\u30FC\uFF08\u30D1\u30B9\u30EF\u30FC\u30C9\u8A8D\u8A3C\u3092\u8A31\u3059\u304B\uFF09\u3092\u898B\u308B\uFF08\u7D44\u7E54\u7BA1\u7406\u8005\u306E\u307F\uFF09",usage:"twp user auth-policy get",description:"\u753B\u9762\u306E\u300C\u30C6\u30CA\u30F3\u30C8\u8A2D\u5B9A > \u8A8D\u8A3C\u9023\u643A\u300D\u306E\u300C\u30D1\u30B9\u30EF\u30FC\u30C9\u8A8D\u8A3C\u3092\u8A31\u53EF\u300D\u3068\u540C\u3058\u5024\u3067\u3059\u3002\nfalse \u306E\u30C6\u30CA\u30F3\u30C8\u3067\
|
|
308
|
+
\u306F\u3001\u30D1\u30B9\u30EF\u30FC\u30C9\u3067\u306E\u30ED\u30B0\u30A4\u30F3\u304C\u3067\u304D\u305A Microsoft 365 / Google \u3067\u3060\u3051\u30ED\u30B0\u30A4\u30F3\u3067\u304D\u307E\u3059\u3002",forbidden:FORBIDDEN_POLICY,flags:[],async prepare(input){noArgs(input,"twp user auth-policy get");return input},plan:()=>({method:"GET",path:POLICY_PATH}),summarize:body=>({password_auth_enabled:readPasswordAuth(body)}),raw:body=>({password_auth_enabled:readPasswordAuth(body)})};var policyUpdateOperation={
|
|
309
|
+
name:"update",summary:"\u8A8D\u8A3C\u30DD\u30EA\u30B7\u30FC\u3092\u5909\u3048\u308B\uFF08\u30D1\u30B9\u30EF\u30FC\u30C9\u8A8D\u8A3C\u306E\u8A31\u53EF\u30FB\u7981\u6B62\u3002\u7D44\u7E54\u7BA1\u7406\u8005\u306E\u307F\uFF09",usage:POLICY_UPDATE_USAGE,description:"\u753B\u9762\u306E\u300C\u30C6\u30CA\u30F3\u30C8\u8A2D\u5B9A > \u8A8D\u8A3C\u9023\u643A\u300D\u306E\u300C\u30D1\u30B9\u30EF\u30FC\u30C9\u8A8D\u8A3C\u3092\u8A31\u53EF\u300D\u3068\u540C\u3058\u5909\u66F4\u3092\u3057\u307E\u3059\uFF08\u540C\u3058 API \u3092\u4F7F\u3044\u307E\u3059\uFF09\u3002\n\n twp user auth-policy update --password-auth false --dry-run # \u5909\u66F4\u524D\u5F8C\u3092\u898B\u308B\u3060\u3051\n twp user auth-policy update --password-auth false --yes\n\n\u9001\u308B\u524D\u306B\u3044\u307E\u306E\u5024\u3092\u8AAD\u307F\u3001\u5909\u66F4\u524D\u5F8C\u3092 stderr \u306B\u51FA\u3057\u307E\u3059\uFF08--dry-run \u3067\u3082\u51FA\u307E\u3059\
|
|
310
|
+
\uFF09\u3002\nfalse \u306B\u3059\u308B\u3068\u304D\u306F\u3001\u30D1\u30B9\u30EF\u30FC\u30C9\u3067\u30ED\u30B0\u30A4\u30F3\u3057\u3066\u3044\u308B\u4EBA\uFF08\u81EA\u5206\u3092\u542B\u3080\uFF09\u304C\u5165\u308C\u306A\u304F\u306A\u308B\u305F\u3081 --yes \u304C\u8981\u308A\u307E\u3059\u3002\n\u30B5\u30FC\u30D0\u306F Microsoft 365 / Google \u306E\u3069\u3061\u3089\u3082\u6709\u52B9\u3067\u306A\u3051\u308C\u3070 false \u3092\u65AD\u308A\u307E\u3059\u3002\n\u9001\u3063\u305F\u3042\u3068\u306F\u30B5\u30FC\u30D0\u306E\u5024\u3092\u8AAD\u307F\u76F4\u3057\u3066\u78BA\u304B\u3081\u3001\u5143\u306B\u623B\u3059\u30B3\u30DE\u30F3\u30C9\u3092\u51FA\u3057\u307E\u3059\u3002\n\n"+
|
|
311
|
+
TENANT_WIDE,forbidden:FORBIDDEN_POLICY,flags:[PASSWORD_AUTH_FLAG],async prepare(input){noArgs(input,POLICY_UPDATE_USAGE);wantedPasswordAuth(input);return input},plan:policyPlan,plannedNotes:()=>[`\u9001\u308B\u524D\u306B GET ${POLICY_PATH} \u3067\u3044\u307E\u306E\u5024\u3092\uFF08false \u306B\u3059\u308B\u3068\u304D\u306F GET ${LOCK_PATH} \u3067\u30ED\u30C3\u30AF\u8A2D\u5B9A\u3082\uFF09\u8AAD\u307F\u3001\u9001\u3063\u305F\u5F8C\u306B\u3082\u3046\u4E00\u5EA6\u8AAD\u3093\u3067\u4FDD\u5B58\u3055\u308C\u305F\u5024\u3092\u78BA\u304B\u3081\u307E\u3059\u3002`],
|
|
312
|
+
async preview(input,ctx){const from=readPasswordAuth(await ctx.send({method:"GET",path:POLICY_PATH}));const to=wantedPasswordAuth(input);const notes=[from===to?`password_auth_enabled: ${String(to)} \u306E\u307E\u307E\uFF08\u65E2\u306B\u3053\u306E\u5024\u3067\u3059\uFF09`:`password_auth_enabled: ${String(from)} \u2192 ${String(to)}`,TENANT_WIDE];const warnings=from&&!to?[PASSWORD_OFF_WARNING]:[];if(from&&!to){const lock=readLockSettings(await ctx.send({method:"GET",path:LOCK_PATH}));if(noUnlockRoute(
|
|
313
|
+
lock,false)&&!noUnlockRoute(lock,true))warnings.push(NO_UNLOCK_WARNING)}return{notes,warnings}},async execute(input,ctx){const from=readPasswordAuth(await ctx.send({method:"GET",path:POLICY_PATH}));const plan=policyPlan(input);envelope(await ctx.send(plan),"\u8A8D\u8A3C\u30DD\u30EA\u30B7\u30FC\u306E\u66F4\u65B0");const saved=readPasswordAuth(await ctx.send({method:"GET",path:POLICY_PATH}));return{policyUpdate:true,from,to:wantedPasswordAuth(input),saved}},summarize:body=>{const result=policyUpdateBody(
|
|
314
|
+
body);return{password_auth_enabled_from:result.from,password_auth_enabled:result.saved}},raw:body=>{const result=policyUpdateBody(body);return{from:result.from,to:result.to,saved:result.saved}},notes(body){const result=policyUpdateBody(body);if(result.from===result.saved)return[];return[`\u5143\u306B\u623B\u3059\u306B\u306F:
|
|
315
|
+
twp user auth-policy update --password-auth ${String(result.from)}`]},failures:body=>{const result=policyUpdateBody(body);if(result.saved===result.to)return[];return[{target:"password_auth_enabled",error:new ApiRejectedError(`${String(result.to)} \u3092\u9001\u308A\u307E\u3057\u305F\u304C\u3001\u30B5\u30FC\u30D0\u306E\u5024\u306F ${String(result.saved)} \u3067\u3059\u3002twp user auth-policy get \u3067\u78BA\u304B\u3081\u3066\u304F\u3060\u3055\u3044\u3002`)}]}};var userAuthPolicyResource={name:"\
|
|
316
|
+
auth-policy",summary:"\u8A8D\u8A3C\u30DD\u30EA\u30B7\u30FC\uFF08\u30D1\u30B9\u30EF\u30FC\u30C9\u8A8D\u8A3C\u3092\u8A31\u3059\u304B\u3002\u53C2\u7167\u30FB\u5909\u66F4\uFF09",operations:[policyGetOperation,policyUpdateOperation]};var LOCK_FIELDS=[{key:"enabled",flag:"--enabled",label:"\u30A2\u30AB\u30A6\u30F3\u30C8\u30ED\u30C3\u30AF\u3092\u4F7F\u3046",kind:"boolean"},{key:"max_login_attempts",flag:"--max-attempts",label:"\u30ED\u30C3\u30AF\u307E\u3067\u306E\u5931\u6557\u56DE\u6570",kind:"integer",
|
|
317
|
+
min:1,max:100},{key:"lockout_duration_minutes",flag:"--lockout-minutes",label:"\u30ED\u30C3\u30AF\u6642\u9593\uFF08\u5206\u30FB0 \u306F\u81EA\u52D5\u89E3\u9664\u3057\u306A\u3044\uFF09",kind:"integer",min:0,max:10080},{key:"failure_count_reset_minutes",flag:"--reset-minutes",label:"\u5931\u6557\u56DE\u6570\u3092\u6570\u3048\u76F4\u3059\u307E\u3067\u306E\u5206\uFF080 \u306F\u7D2F\u7A4D\uFF09",kind:"integer",min:0,max:10080},{key:"auto_unlock_enabled",flag:"--auto-unlock",label:"\u6642\u9593\u7D4C\u904E\u3067\u81EA\u52D5\u89E3\u9664",
|
|
318
|
+
kind:"boolean"},{key:"admin_unlock_enabled",flag:"--admin-unlock",label:"\u7BA1\u7406\u8005\u306B\u3088\u308B\u624B\u52D5\u89E3\u9664",kind:"boolean"},{key:"password_reset_unlock_enabled",flag:"--password-reset-unlock",label:"\u30D1\u30B9\u30EF\u30FC\u30C9\u30EA\u30BB\u30C3\u30C8\u3067\u89E3\u9664",kind:"boolean"},{key:"notify_admin_on_lock",flag:"--notify-admin",label:"\u30ED\u30C3\u30AF\u6642\u306B\u7BA1\u7406\u8005\u3078\u901A\u77E5",kind:"boolean"},{key:"notify_user_on_lock",flag:"--notify-u\
|
|
319
|
+
ser",label:"\u30ED\u30C3\u30AF\u6642\u306B\u672C\u4EBA\u3078\u901A\u77E5",kind:"boolean"}];var LOCK_FLAGS=LOCK_FIELDS.map(field=>({name:field.flag,summary:field.kind==="boolean"?`${field.label}\uFF08true / false\uFF09`:`${field.label}\uFF08${String(field.min)}\u301C${String(field.max)}\uFF09`,takesValue:true,placeholder:field.kind==="boolean"?"<true|false>":"<\u6570>"}));var LOCK_UPDATE_USAGE="twp user account-lock update [--enabled <true|false>] [--max-attempts <\u6570>] [--lockout-minutes <\u6570>] \u2026";
|
|
320
|
+
function readLockSettings(body){const lock=envelope(body,"\u30A2\u30AB\u30A6\u30F3\u30C8\u30ED\u30C3\u30AF\u8A2D\u5B9A")["account_lock"];if(!isRecord(lock))throw new ApiResponseError("\u30A2\u30AB\u30A6\u30F3\u30C8\u30ED\u30C3\u30AF\u8A2D\u5B9A\u306E\u5FDC\u7B54\u306B account_lock \u304C\u3042\u308A\u307E\u305B\u3093\u3002\u63A5\u7D9A\u5148\u3092\u78BA\u8A8D\u3057\u3066\u304F\u3060\u3055\u3044\u3002");const settings={};for(const field of LOCK_FIELDS){const value=lock[field.key];const ok=field.kind===
|
|
321
|
+
"boolean"?typeof value==="boolean":typeof value==="number"&&Number.isInteger(value);if(!ok)throw new ApiResponseError(`\u30A2\u30AB\u30A6\u30F3\u30C8\u30ED\u30C3\u30AF\u8A2D\u5B9A\u306E\u5FDC\u7B54\u306E ${field.key} \u304C\u8AAD\u3081\u307E\u305B\u3093\u3002\u63A5\u7D9A\u5148\u3092\u78BA\u8A8D\u3057\u3066\u304F\u3060\u3055\u3044\u3002`);settings[field.key]=value}return settings}function wantedLock(input){const body={};for(const field of LOCK_FIELDS){const raw=input.flags.get(field.flag);if(raw===
|
|
322
|
+
void 0)continue;if(field.kind==="boolean"){body[field.key]=booleanText(field.flag,raw);continue}const trimmed=raw.trim();const value=/^\d+$/.test(trimmed)?Number(trimmed):Number.NaN;if(!Number.isSafeInteger(value)||value<(field.min??0)||value>(field.max??Number.MAX_SAFE_INTEGER)){throw new UsageError(`${field.flag} \u306F ${String(field.min)}\u301C${String(field.max)} \u306E\u6574\u6570\u3067\u6307\u5B9A\u3057\u3066\u304F\u3060\u3055\u3044: ${raw}`,LOCK_UPDATE_USAGE)}body[field.key]=value}if(Object.
|
|
323
|
+
keys(body).length===0)throw new UsageError("\u5909\u3048\u308B\u9805\u76EE\u30921\u3064\u4EE5\u4E0A\u6307\u5B9A\u3057\u3066\u304F\u3060\u3055\u3044",LOCK_UPDATE_USAGE);return body}function noUnlockRoute(settings,passwordAuth){if(settings["enabled"]!==true)return false;const auto=settings["auto_unlock_enabled"]===true&&Number(settings["lockout_duration_minutes"])>0;const reset=settings["password_reset_unlock_enabled"]===true&&passwordAuth;return!auto&&settings["admin_unlock_enabled"]!==true&&!reset}
|
|
324
|
+
var NO_UNLOCK_WARNING="\u3053\u306E\u8A2D\u5B9A\u3067\u306F\u30ED\u30C3\u30AF\u3055\u308C\u305F\u4EBA\u3092\u623B\u3059\u624B\u6BB5\u304C\u3042\u308A\u307E\u305B\u3093\uFF08\u6642\u9593\u7D4C\u904E\u306E\u81EA\u52D5\u89E3\u9664\u30FB\u7BA1\u7406\u8005\u306B\u3088\u308B\u89E3\u9664\u30FB\u30D1\u30B9\u30EF\u30FC\u30C9\u30EA\u30BB\u30C3\u30C8\u3067\u306E\u89E3\u9664\u304C\u3059\u3079\u3066\u52B9\u304D\u307E\u305B\u3093\u3002\u30D1\u30B9\u30EF\u30FC\u30C9\u8A8D\u8A3C\u304C\u7121\u52B9\u306A\u30C6\u30CA\u30F3\u30C8\u3067\u306F\u30D1\u30B9\u30EF\u30FC\u30C9\u30EA\u30BB\u30C3\u30C8\u3082\u4F7F\u3048\u307E\u305B\u3093\uFF09\u3002\u3042\u306A\u305F\u81EA\u8EAB\u304C\u30ED\u30C3\u30AF\u3055\u308C\u305F\u5834\u5408\u3082\u540C\u3058\u3067\u3059\u3002";
|
|
325
|
+
function lockChanges(current,wanted){return LOCK_FIELDS.filter(field=>field.key in wanted).map(field=>({key:field.key,from:current[field.key],to:wanted[field.key]}))}function lockRevertCommand(changes){const moved=changes.filter(change=>change.from!==change.to);if(moved.length===0)return null;const flagOf=key=>LOCK_FIELDS.find(field=>field.key===key)?.flag??`--${key}`;return`twp user account-lock update ${moved.map(change=>`${flagOf(change.key)} ${shellQuote(String(change.from))}`).join(" ")}`}function lockPlan(input){
|
|
326
|
+
return{method:"PUT",path:LOCK_PATH,body:wantedLock(input)}}function lockUpdateBody(body){if(!isRecord(body)||body["lockUpdate"]!==true)throw new ApiResponseError("\u30A2\u30AB\u30A6\u30F3\u30C8\u30ED\u30C3\u30AF\u8A2D\u5B9A\u306E\u5909\u66F4\u306E\u7D50\u679C\u3092\u7D44\u307F\u7ACB\u3066\u3089\u308C\u307E\u305B\u3093\u3067\u3057\u305F\uFF08\u5185\u90E8\u30A8\u30E9\u30FC\uFF09\u3002");return body}function lockRows(settings){return LOCK_FIELDS.map(field=>({key:field.key,label:field.label,value:settings[field.
|
|
327
|
+
key]}))}var lockGetOperation={name:"get",summary:"\u30A2\u30AB\u30A6\u30F3\u30C8\u30ED\u30C3\u30AF\u8A2D\u5B9A\uFF08\u4F55\u56DE\u5931\u6557\u3067\u30ED\u30C3\u30AF\u3059\u308B\u304B\u7B49\uFF09\u3092\u898B\u308B\uFF08\u7D44\u7E54\u7BA1\u7406\u8005\u306E\u307F\uFF09",usage:"twp user account-lock get",description:"\u753B\u9762\u306E\u300C\u7D44\u7E54\u8A2D\u5B9A > \u30A2\u30AB\u30A6\u30F3\u30C8\u30ED\u30C3\u30AF\u300D\u3068\u540C\u3058\u5024\u3092\u3001\u9805\u76EE\u3054\u3068\u306B1\u884C\u305A\u3064\u51FA\u3057\u307E\u3059\u3002\n\u30ED\u30C3\u30AF\u3055\u308C\u305F\u4EBA\u306E\u89E3\u9664\u306F twp user unlock <\u30E6\u30FC\u30B6\u30FC> \u3067\u3059\uFF08admin_unlock_enabled \u304C true \u306E\u3068\u304D\u3060\u3051\uFF09\u3002",
|
|
328
|
+
forbidden:FORBIDDEN_LOCK,flags:[],async prepare(input){noArgs(input,"twp user account-lock get");return input},plan:()=>({method:"GET",path:LOCK_PATH}),summarize:body=>lockRows(readLockSettings(body)),raw:body=>readLockSettings(body)};var lockUpdateOperation={name:"update",summary:"\u30A2\u30AB\u30A6\u30F3\u30C8\u30ED\u30C3\u30AF\u8A2D\u5B9A\u3092\u5909\u3048\u308B\uFF08\u6307\u5B9A\u3057\u306A\u3044\u9805\u76EE\u306F\u3044\u307E\u306E\u5024\u306E\u307E\u307E\u30FB\u7D44\u7E54\u7BA1\u7406\u8005\u306E\u307F\uFF09",
|
|
329
|
+
usage:LOCK_UPDATE_USAGE,description:"\u753B\u9762\u306E\u300C\u7D44\u7E54\u8A2D\u5B9A > \u30A2\u30AB\u30A6\u30F3\u30C8\u30ED\u30C3\u30AF\u300D\u3068\u540C\u3058\u5909\u66F4\u3092\u3057\u307E\u3059\uFF08\u540C\u3058 API \u3092\u4F7F\u3044\u307E\u3059\uFF09\u3002\u6307\u5B9A\u3057\u305F\u9805\u76EE\u3060\u3051\u3092\u9001\u308A\u3001\n\u307B\u304B\u306E\u9805\u76EE\u306F\u3044\u307E\u306E\u5024\u306E\u307E\u307E\u6B8B\u308A\u307E\u3059\uFF08\u30B5\u30FC\u30D0\u306E API \u306F\u90E8\u5206\u66F4\u65B0\u3067\u3059\uFF09\u3002\n\n twp user account-lock update --max-attempts 10 --dry-run # \u5909\u66F4\u524D\u5F8C\u3092\u898B\u308B\u3060\u3051\n twp user account-lock update --enabled true --lockout-minutes 60\n\n\u9001\u308B\u524D\u306B\u3044\u307E\u306E\u5024\u3092\u8AAD\u307F\u3001\u9805\u76EE\u3054\u3068\u306B\u5909\u66F4\u524D\u5F8C\u3092 stderr \u306B\u51FA\u3057\u307E\u3059\uFF08--dry-run \u3067\u3082\u51FA\u307E\u3059\uFF09\u3002\n\u5909\u66F4\u5F8C\u306B\u30ED\u30C3\u30AF\u3055\u308C\u305F\u4EBA\u3092\u623B\u3059\u624B\u6BB5\u304C\u7121\u304F\u306A\u308B\u7D44\u307F\u5408\u308F\u305B\uFF08\u81EA\u52D5\u89E3\u9664\u30FB\u7BA1\u7406\u8005\u89E3\u9664\u30FB\u30D1\u30B9\u30EF\u30FC\u30C9\u30EA\u30BB\u30C3\u30C8\u89E3\u9664\u304C\u3059\u3079\u3066\u52B9\u304B\u306A\u3044\uFF09\u306F\n--yes \u304C\u8981\u308A\u307E\u3059\u3002\u9001\u3063\u305F\u3042\u3068\u306F\u30B5\u30FC\u30D0\u304C\u4FDD\u5B58\u3057\u305F\u5024\u3092\u5168\u9805\u76EE\u3067\u78BA\u304B\u3081\u3001\u5143\u306B\u623B\u3059\u30B3\u30DE\u30F3\u30C9\u3092\u51FA\u3057\u307E\u3059\u3002\n\n"+
|
|
330
|
+
TENANT_WIDE,forbidden:FORBIDDEN_LOCK,flags:LOCK_FLAGS,async prepare(input){noArgs(input,LOCK_UPDATE_USAGE);wantedLock(input);return input},plan:lockPlan,plannedNotes:()=>[`\u9001\u308B\u524D\u306B GET ${LOCK_PATH} \u3067\u3044\u307E\u306E\u5024\u3092\u3001GET ${POLICY_PATH} \u3067\u30D1\u30B9\u30EF\u30FC\u30C9\u8A8D\u8A3C\u306E\u53EF\u5426\u3092\u8AAD\u307F\u307E\u3059\uFF08\u6307\u5B9A\u3057\u306A\u304B\u3063\u305F\u9805\u76EE\u306F\u9001\u308A\u307E\u305B\u3093\uFF09\u3002`],async preview(input,ctx){
|
|
331
|
+
const current=readLockSettings(await ctx.send({method:"GET",path:LOCK_PATH}));const wanted=wantedLock(input);const notes=lockChanges(current,wanted).map(change=>change.from===change.to?`${change.key}: ${String(change.to)} \u306E\u307E\u307E\uFF08\u65E2\u306B\u3053\u306E\u5024\u3067\u3059\uFF09`:`${change.key}: ${String(change.from)} \u2192 ${String(change.to)}`);notes.push(TENANT_WIDE);const after={...current,...wanted};const passwordAuth=readPasswordAuth(await ctx.send({method:"GET",path:POLICY_PATH}));
|
|
332
|
+
return{notes,warnings:noUnlockRoute(after,passwordAuth)&&!noUnlockRoute(current,passwordAuth)?[NO_UNLOCK_WARNING]:[]}},async execute(input,ctx){const before=readLockSettings(await ctx.send({method:"GET",path:LOCK_PATH}));const wanted=wantedLock(input);const saved=readLockSettings(await ctx.send(lockPlan(input)));const drifted=LOCK_FIELDS.filter(field=>!(field.key in wanted)&&saved[field.key]!==before[field.key]).map(field=>({key:field.key,before:before[field.key],saved:saved[field.key]??null}));
|
|
333
|
+
const changes=lockChanges(before,wanted).map(change=>({...change,saved:saved[change.key]??null}));return{lockUpdate:true,changes,drifted,settings:saved}},summarize:body=>lockUpdateBody(body).changes.map(change=>({key:change.key,from:change.from,to:change.saved})),raw:body=>{const result=lockUpdateBody(body);return{changes:result.changes,settings:result.settings}},notes(body){const revert=lockRevertCommand(lockUpdateBody(body).changes);return revert===null?[]:[`\u5143\u306B\u623B\u3059\u306B\u306F:
|
|
334
|
+
${revert}`]},failures:body=>{const{changes,drifted}=lockUpdateBody(body);return[...changes.filter(change=>change.saved!==change.to).map(change=>({target:change.key,error:new ApiRejectedError(`${String(change.to)} \u3092\u9001\u308A\u307E\u3057\u305F\u304C\u3001\u30B5\u30FC\u30D0\u304C\u4FDD\u5B58\u3057\u305F\u5024\u306F ${String(change.saved)} \u3067\u3059\u3002twp user account-lock get \u3067\u78BA\u304B\u3081\u3066\u304F\u3060\u3055\u3044\u3002`)})),...drifted.map(item=>({target:item.key,error:new ApiRejectedError(
|
|
335
|
+
`\u6307\u5B9A\u3057\u3066\u3044\u306A\u3044\u9805\u76EE\u304C\u5909\u308F\u308A\u307E\u3057\u305F\uFF08${String(item.before)} \u2192 ${String(item.saved)}\u3002\u8AAD\u3093\u3067\u304B\u3089\u9001\u308B\u307E\u3067\u306E\u9593\u306B\u5225\u306E\u7BA1\u7406\u8005\u304C\u5909\u3048\u305F\u53EF\u80FD\u6027\u3082\u3042\u308A\u307E\u3059\uFF09\u3002twp user account-lock get \u3067\u78BA\u304B\u3081\u3066\u304F\u3060\u3055\u3044\u3002`)}))]}};var userAccountLockResource={name:"account-lock",summary:"\u30A2\
|
|
336
|
+
\u30AB\u30A6\u30F3\u30C8\u30ED\u30C3\u30AF\u8A2D\u5B9A\uFF08\u4F55\u56DE\u5931\u6557\u3067\u30ED\u30C3\u30AF\u3059\u308B\u304B\u30FB\u89E3\u9664\u306E\u65B9\u6CD5\u3002\u53C2\u7167\u30FB\u5909\u66F4\uFF09",operations:[lockGetOperation,lockUpdateOperation]};import fs from"fs";import path from"path";var FORBIDDEN5="\u7D44\u7E54\u7BA1\u7406\u8005\u306E\u6A29\u9650\u304C\u5FC5\u8981\u3067\u3059\u3002twp user seal-impression \u306F\u7D44\u7E54\u7BA1\u7406\u8005\u3060\u3051\u304C\u4F7F\u3048\u307E\u3059\uFF08\u81EA\u5206\u306E\u5370\u5F71\u306F\u30D7\u30ED\u30D5\u30A3\u30FC\u30EB\u8A2D\u5B9A\u304B\u3089\uFF09";var SOURCE="user_seal_impression";var CONTENT_TYPE="image/png";var MAX_BYTES=2*1024*1024;var GET_USAGE="twp user seal-impression get <\u30E6\u30FC\u30B6\u30FC>";var SET_USAGE="twp user se\
|
|
337
|
+
al-impression set <\u30E6\u30FC\u30B6\u30FC> --file <\u753B\u50CF>";var COLUMNS=["user_id","user_name","attachment_id","preview_url"];var SET_COLUMNS=["user_id","attachment_id","preview_url"];var FILE_FLAG3={name:"--file",summary:"\u5370\u5F71\u306E\u753B\u50CF\uFF08PNG\u30FB2MB \u307E\u3067\uFF09",takesValue:true,placeholder:"<\u30D1\u30B9>"};function userArg(input){const ref=input.args[0]??input.flags.get(USER_REF_FLAG.name);return ref===void 0||ref.trim()===""?"<\u30E6\u30FC\u30B6\u30FC>":shellQuote(
|
|
338
|
+
ref)}var sealPath=input=>`/api/v2/admin/users/${userPath(input,"/seal-impression")}`;function sealOf(body){if(!isRecord(body)||body["result"]!==true||typeof body["user_id"]!=="string"||!("attachment_id"in body)){throw new ApiResponseError("\u30E6\u30FC\u30B6\u30FC\u306E\u5370\u5F71\u306E\u5FDC\u7B54\u306E\u5F62\u304C\u60F3\u5B9A\u3068\u9055\u3044\u307E\u3059\uFF08result / user_id / attachment_id\uFF09\u3002\u63A5\u7D9A\u5148\u3092\u78BA\u8A8D\u3057\u3066\u304F\u3060\u3055\u3044\u3002")}return body}
|
|
339
|
+
function sealImage(input){const{file,size}=inspectLocalFile(input.flags.get(FILE_FLAG3.name),FILE_FLAG3.name,SET_USAGE);const name=path.basename(file);if(path.extname(name).toLowerCase()!==".png"){throw new UsageError(`\u30E6\u30FC\u30B6\u30FC\u306E\u5370\u5F71\u306E\u753B\u50CF\u306F PNG \u3067\u3059\uFF08\u62E1\u5F35\u5B50 .png\uFF09: ${name}`,"\u753B\u9762\u3068\u540C\u3058\u5F62\u5F0F\u3060\u3051\u3092\u53D7\u3051\u307E\u3059\u3002")}if(size>MAX_BYTES)throw new UsageError(`\u30E6\u30FC\u30B6\u30FC\u306E\u5370\u5F71\u306E\u753B\u50CF\u306F 2MB \u307E\u3067\
|
|
340
|
+
\u3067\u3059\uFF08${size} \u30D0\u30A4\u30C8\uFF09: ${name}`,"\u753B\u9762\u3068\u540C\u3058\u5927\u304D\u3055\u3060\u3051\u3092\u53D7\u3051\u307E\u3059\u3002");return{file,name,size}}function uploadPlan(image){return{method:"POST",path:"/api/v2/attachments/upload-url",body:{file_name:image.name,content_type:CONTENT_TYPE,file_size:image.size,source:SOURCE}}}async function writeSeal(input,ctx){const image=sealImage(input);const target=sealPath(input);const retry=`twp user seal-impression set ${userArg(
|
|
341
|
+
input)} --file <\u753B\u50CF>`;await checkUploadQuota(ctx,image.size);let issuedId;let registerSent=false;let registered=false;let uncommitted=false;try{const{id,uploadUrl}=issued(await ctx.send(uploadPlan(image)));issuedId=id;const bytes=new Uint8Array(fs.readFileSync(image.file));if(bytes.byteLength!==image.size)throw new UsageError(`\u30A2\u30C3\u30D7\u30ED\u30FC\u30C9\u4E2D\u306B\u30D5\u30A1\u30A4\u30EB\u306E\u5927\u304D\u3055\u304C\u5909\u308F\u308A\u307E\u3057\u305F\uFF08${image.size} \u2192 ${bytes.
|
|
342
|
+
byteLength} \u30D0\u30A4\u30C8\uFF09: ${image.file}`);await ctx.putSigned(uploadUrl,bytes,CONTENT_TYPE);registerSent=true;const response=await ctx.send({method:"PUT",path:target,body:{attachment_id:id}});const seal=sealOf(response);registered=true;if(seal["attachment_id"]!==id)throw new ApiResponseError(`\u5370\u5F71\u306E\u5FDC\u7B54\u306E attachment_id \u304C\u4ECA\u56DE\u306E\u753B\u50CF\uFF08${id}\uFF09\u3067\u306F\u3042\u308A\u307E\u305B\u3093\u3002\u63A5\u7D9A\u5148\u3092\u78BA\u8A8D\u3057\u3066\u304F\u3060\u3055\u3044\u3002`);
|
|
343
|
+
if(!await isCommitted(ctx,id)){uncommitted=true;throw new ApiResponseError(`\u5370\u5F71\u306F\u767B\u9332\u3055\u308C\u307E\u3057\u305F\u304C\u3001\u753B\u50CF\uFF08\u6DFB\u4ED8 ${id}\uFF09\u304C\u78BA\u5B9A\u3057\u3066\u3044\u307E\u305B\u3093\u3002\u672A\u78BA\u5B9A\u306E\u753B\u50CF\u306F\u4E00\u5B9A\u6642\u9593\u5F8C\u306B\u5931\u52B9\u3057\u3001\u5370\u5F71\u304C\u8868\u793A\u3055\u308C\u306A\u304F\u306A\u308A\u307E\u3059\u3002${retry} \u3067\u4E0A\u3052\u76F4\u3057\u3066\u304F\u3060\u3055\u3044\u3002`)}
|
|
344
|
+
return response}catch(err){const refused=err instanceof ApiError&&err.status>=400&&err.status<500||err instanceof NotLoggedInError||err instanceof SessionExpiredError;if(registered){if(!uncommitted){ctx.warn(`\u5370\u5F71\u306E\u767B\u9332\u306F\u6E08\u3093\u3067\u3044\u307E\u3059\u304C\u3001\u767B\u9332\u306E\u7D50\u679C\uFF08\u753B\u50CF \u6DFB\u4ED8 ${issuedId??""} \u304C\u5370\u5F71\u306B\u5165\u3063\u3066\u78BA\u5B9A\u3057\u305F\u304B\uFF09\u3092\u78BA\u304B\u3081\u3089\u308C\u307E\u305B\u3093\u3067\u3057\u305F\u3002\u6253\u3061\u76F4\u3055\u305A\u306B twp user seal-impression get ${userArg(
|
|
345
|
+
input)} \u3067\u78BA\u304B\u3081\u3066\u304F\u3060\u3055\u3044\u3002
|
|
346
|
+
`)}}else if(issuedId!==void 0&&(!registerSent||refused)){ctx.warn(`\u767A\u884C\u3057\u305F\u753B\u50CF\u306E\u6DFB\u4ED8\uFF08${issuedId}\uFF09\u306F\u5370\u5F71\u306B\u767B\u9332\u3055\u308C\u3066\u3044\u306A\u3044\u305F\u3081\u672A\u78BA\u5B9A\u306E\u307E\u307E\u3067\u3059\u3002\u672A\u78BA\u5B9A\u306E\u6DFB\u4ED8\u306F\u4E00\u5B9A\u6642\u9593\u5F8C\u306B\u8A18\u9332\u304C\u5931\u52B9\u3057\u307E\u3059\u3002\u539F\u56E0\u3092\u53D6\u308A\u9664\u3044\u3066\u3082\u3046\u4E00\u5EA6 ${retry} \u3092\u5B9F\u884C\u3057\
|
|
347
|
+
\u3066\u304F\u3060\u3055\u3044\u3002
|
|
348
|
+
`)}else if(registerSent){ctx.warn(`\u5370\u5F71\u306E\u767B\u9332\u306F\u9001\u4FE1\u3057\u307E\u3057\u305F\u304C\u3001\u5FDC\u7B54\u3092\u78BA\u304B\u3081\u3089\u308C\u307E\u305B\u3093\u3067\u3057\u305F\u3002\u6253\u3061\u76F4\u3059\u524D\u306B twp user seal-impression get ${userArg(input)} \u3067\u7D50\u679C\u3092\u78BA\u304B\u3081\u3066\u304F\u3060\u3055\u3044\u3002
|
|
349
|
+
`)}throw err}}function serverMessage(body){const message=isRecord(body)?body["message"]:void 0;return typeof message==="string"&&message!==""?[message]:[]}var getOperation={name:"get",summary:"\u30E6\u30FC\u30B6\u30FC\u306E\u5370\u5F71\u3092\u8868\u793A\u3059\u308B\uFF08\u7D44\u7E54\u7BA1\u7406\u8005\u306E\u307F\uFF09",usage:GET_USAGE,description:"attachment_id \u304C\u7A7A\u306A\u3089\u5370\u5F71\u306F\u672A\u767B\u9332\u3067\u3059\u3002preview_url \u306F\u753B\u50CF\u306E\u8868\u793A\u5148\uFF08TWP \u306B\u30ED\u30B0\u30A4\u30F3\u3057\u305F\u72B6\u614B\u3067\u958B\u3051\u308B API \u306E\u30D1\u30B9\uFF09\u3067\u3059\u3002\n\u8CA9\u58F2\u7BA1\u7406\u306E\u5370\u5F71\u30DE\u30B9\u30BF\uFF08\u898B\u7A4D\u30FB\u8ACB\u6C42\u306B\u62BC\u3059\u5370\uFF09\u306F twp seal-impression \u3067\u3059\u3002\n\n"+
|
|
350
|
+
USER_REF_HELP,forbidden:FORBIDDEN5,flags:[USER_REF_FLAG],prepare:(input,ctx)=>prepareUser(input,ctx,"twp user seal-impression get help"),plan:input=>({method:"GET",path:sealPath(input)}),summarize:body=>pick(sealOf(body),COLUMNS),raw:body=>sealOf(body)};var setOperation={name:"set",summary:"\u30E6\u30FC\u30B6\u30FC\u306E\u5370\u5F71\u3092\u767B\u9332\u3059\u308B\uFF08\u753B\u50CF\u3092\u4E0A\u3052\u3066\u7F6E\u304D\u63DB\u3048\u308B\u30FB\u7D44\u7E54\u7BA1\u7406\u8005\u306E\u307F\uFF09",usage:SET_USAGE,
|
|
351
|
+
description:"--file \u304C\u5FC5\u9808\u3067\u3059\u3002\u3044\u307E\u5370\u5F71\u304C\u3042\u308C\u3070\u4ECA\u56DE\u306E\u753B\u50CF\u306B\u7F6E\u304D\u63DB\u308F\u308A\u307E\u3059\uFF08\u524D\u306E\u753B\u50CF\u306F\u30B5\u30FC\u30D0\u306B\u6B8B\u308A\u307E\u3059\uFF09\u3002\n\u9001\u308B\u524D\u306B\u3044\u307E\u306E\u5370\u5F71\u3092\u8AAD\u307F\u3001\u7F6E\u304D\u63DB\u3048\u308B\u5BFE\u8C61\u3092 stderr \u306B\u51FA\u3057\u307E\u3059\uFF08--dry-run \u3067\u3082\u51FA\u307E\u3059\uFF09\u3002\n\n\u753B\u50CF\u306F\u6B21\u306E\u9806\u3067\u9001\u308A\u307E\u3059\uFF08\u753B\u9762\u3068\u540C\u3058\u6C4E\u7528\u306E\u6DFB\u4ED8\u30FBsource=user_seal_impression\uFF09:\n 0. POST /api/v2/storage/check-upload\uFF08\u5BB9\u91CF\u306E\u691C\u67FB\uFF09\n 1. POST /api/v2/attachments/upload-url \u2192 \u7F72\u540DURL\u3078 PUT\n 2. PUT /api/v2/admin/users/{id}/seal-impression\uFF08attachment_id \u306B 1 \u306E\u6DFB\u4ED8 ID\u3002\u3053\u3053\u3067\u30B5\u30FC\u30D0\u304C\u753B\u50CF\u3092\u78BA\u5B9A\u3057\u307E\u3059\uFF09\n 3. GET /api/v2/attachments \u3067\u753B\u50CF\u304C\u78BA\u5B9A\u3057\u305F\u3053\u3068\u3092\u78BA\u304B\u3081\u308B\uFF08\u30B5\u30FC\u30D0\u306F\u78BA\u5B9A\u306B\u5931\u6557\u3057\u3066\u3082\u767B\u9332\u3092\u6210\u529F\u3068\u3057\u3066\u8FD4\u3059\u305F\u3081\uFF09\n\u53D7\u3051\u308B\u753B\u50CF\u306F\u753B\u9762\u3068\u540C\u3058 PNG\u30FB2MB \u307E\u3067\u3067\u3059\uFF08\u8CA9\u58F2\u7BA1\u7406\u306E\u5370\u5F71\u3068\u306F\u53D7\u3051\u65B9\u304C\u9055\u3044\u307E\u3059\uFF09\u3002\n--dry-run \u306F 1 \u306E\u6700\u521D\u306E\u30EA\u30AF\u30A8\
|
|
352
|
+
\u30B9\u30C8\u3060\u3051\u3092\u8868\u793A\u3057\u307E\u3059\uFF08\u4EE5\u964D\u306F\u5FDC\u7B54\u306B\u4F9D\u5B58\u3059\u308B\u305F\u3081\uFF09\u3002\n\n"+USER_REF_HELP,forbidden:FORBIDDEN5,flags:[USER_REF_FLAG,FILE_FLAG3],prepare:async(input,ctx)=>{if(!input.flags.has(FILE_FLAG3.name))throw new UsageError("\u30E6\u30FC\u30B6\u30FC\u306E\u5370\u5F71\u306E\u767B\u9332\u306B\u306F --file \u304C\u8981\u308A\u307E\u3059",SET_USAGE);sealImage(input);return prepareUser(input,ctx,"twp user seal-impres\
|
|
353
|
+
sion set help")},async preview(input,ctx){const current=sealOf(await ctx.send({method:"GET",path:sealPath(input)}));const name=typeof current["user_name"]==="string"?current["user_name"]:String(current["user_id"]);const attachment=current["attachment_id"];return{notes:[typeof attachment==="string"&&attachment!==""?`${name} \u306E\u5370\u5F71\uFF08\u6DFB\u4ED8 ${attachment}\uFF09\u3092\u4ECA\u56DE\u306E\u753B\u50CF\u306B\u7F6E\u304D\u63DB\u3048\u307E\u3059\u3002`:`${name} \u306B\u306F\u5370\u5F71\u304C\u3042\u308A\u307E\u305B\u3093\u3002\u4ECA\u56DE\u306E\u753B\u50CF\u3092\u767B\u9332\u3057\u307E\u3059\u3002`],
|
|
354
|
+
warnings:[]}},plan:input=>uploadPlan(sealImage(input)),plannedNotes:input=>[`\u5B9F\u884C\u6642\u306F\u3001\u3053\u306E\u524D\u306B\u5BB9\u91CF\u691C\u67FB\uFF08POST /api/v2/storage/check-upload\u30FB${sealImage(input).size} \u30D0\u30A4\u30C8\uFF09\u3092\u9001\u308A\u3001\u753B\u50CF\u3092\u7F72\u540DURL\u3078 PUT \u3057\u3066\u304B\u3089\u3001PUT ${sealPath(input)} \u3067 attachment_id \u306B\u4ECA\u56DE\u306E\u753B\u50CF\u3092\u6307\u5B9A\u3057\u3001\u6700\u5F8C\u306B GET /api/v2/attachments \u3067\u753B\u50CF\u304C\u78BA\u5B9A\u3057\u305F\u3053\u3068\u3092\u78BA\u304B\u3081\u307E\u3059\u3002`],
|
|
355
|
+
execute:(input,ctx)=>writeSeal(input,ctx),summarize:body=>pick(sealOf(body),SET_COLUMNS),raw:body=>sealOf(body),notes:serverMessage};var userSealImpressionResource={name:"seal-impression",summary:"\u30E6\u30FC\u30B6\u30FC\u306E\u5370\u5F71\uFF08\u53C2\u7167\u30FB\u753B\u50CF\u306E\u767B\u9332\u3002\u8CA9\u58F2\u7BA1\u7406\u306E\u5370\u5F71\u30DE\u30B9\u30BF\u3068\u306F\u5225\u30FB\u7D44\u7E54\u7BA1\u7406\u8005\u306E\u307F\uFF09",operations:[getOperation,setOperation]};var LIST_COLUMNS3=["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 EMPLOYMENT_TYPES=["employee","partner"];var listPaging=envelopePaging({label:"\u30E6\u30FC\u30B6\u30FC\u4E00\u89A7"});function userObject(body){if(!isRecord(body)||typeof body["user_id"]!==
|
|
303
356
|
"string"){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}var TEXT_FIELDS=[{flag:"--name",key:"user_name",label:"\u6C0F\u540D",maxChars:255,summary:"\u6C0F\u540D",placeholder:"<\u6C0F\u540D>"},{flag:"--kana",key:"user_name_kana",label:"\u30D5\u30EA\u30AC\u30CA",maxChars:255,
|
|
304
357
|
summary:"\u6C0F\u540D\u306E\u30D5\u30EA\u30AC\u30CA",placeholder:"<\u30D5\u30EA\u30AC\u30CA>"},{flag:"--email",key:"login_id",label:"\u30ED\u30B0\u30A4\u30F3ID",maxChars:255,summary:"\u30ED\u30B0\u30A4\u30F3ID\uFF08\u30E1\u30FC\u30EB\u30A2\u30C9\u30EC\u30B9\uFF09",placeholder:"<\u30E1\u30FC\u30EB\u30A2\u30C9\u30EC\u30B9>"},{flag:"--employee-code",key:"employee_code",label:"\u793E\u54E1\u756A\u53F7",maxChars:50,summary:"\u793E\u54E1\u756A\u53F7",placeholder:"<\u793E\u54E1\u756A\u53F7>"},{flag:"--\
|
|
305
358
|
two-factor-tel",key:"two_factor_tel",label:"\u4E8C\u6BB5\u968E\u8A8D\u8A3C\u7528\u306E\u96FB\u8A71\u756A\u53F7",maxChars:20,summary:"\u4E8C\u6BB5\u968E\u8A8D\u8A3C\uFF08SMS\uFF09\u306E\u9001\u308A\u5148\u96FB\u8A71\u756A\u53F7",placeholder:"<\u96FB\u8A71\u756A\u53F7>"},{flag:"--employee-identifier",key:"employee_identifier",label:"\u793E\u54E1\u8B58\u5225\u5B50",maxChars:255,summary:"\u793E\u54E1\u8B58\u5225\u5B50\uFF08\u4EBA\u6750\u60C5\u5831\uFF09",placeholder:"<\u8B58\u5225\u5B50>"},{flag:"--\
|
|
@@ -320,12 +373,12 @@ return type}function twoFactorType(input){const raw=input.flags.get(TWO_FACTOR_F
|
|
|
320
373
|
input,CLEAR_FLAG.name)){const item=raw.trim().toLowerCase().replace(/^--/,"");const key=lookup(CLEARABLE,item);if(key===void 0){throw new UsageError(`--clear \u306B\u6E21\u305B\u306A\u3044\u9805\u76EE\u3067\u3059: ${raw}`,`\u6E21\u305B\u308B\u9805\u76EE: ${Object.keys(CLEARABLE).join(" / ")}`)}if(input.flags.has(`--${item}`)){throw new UsageError(`--${item} \u3068 --clear ${item} \u306F\u540C\u6642\u306B\u6307\u5B9A\u3067\u304D\u307E\u305B\u3093`,"\u5024\u3092\u5909\u3048\u308B\u304B\u3001\u6D88\u3059\u304B\u306E\u3069\u3061\u3089\u304B\u306B\u3057\u3066\u304F\u3060\u3055\u3044\u3002")}
|
|
321
374
|
if(!keys.includes(key))keys.push(key)}return keys}function authType(input){const raw=input.flags.get("--auth-type");if(raw===void 0)return void 0;const value=raw.trim().toLowerCase();if(!AUTH_TYPES.includes(value)){throw new UsageError(`--auth-type \u306B\u300C${raw}\u300D\u306F\u6307\u5B9A\u3067\u304D\u307E\u305B\u3093`,`\u6307\u5B9A\u3067\u304D\u308B\u306E\u306F ${AUTH_TYPES.join(" / ")} \u3067\u3059\uFF08disabled \u3067\u5931\u52B9\uFF09\u3002`)}return value}async function readPassword(input,usage){
|
|
322
375
|
const file=input.flags.get(PASSWORD_FILE_FLAG.name);if(file===void 0)return void 0;let text;if(file==="-"){if(process.stdin.isTTY===true){throw new UsageError("--password-file - \u306F\u6A19\u6E96\u5165\u529B\u304B\u3089\u8AAD\u307F\u307E\u3059\u304C\u3001\u7AEF\u672B\u304C\u7E4B\u304C\u3063\u3066\u3044\u307E\u3059","\u30D1\u30A4\u30D7\u304B\u30EA\u30C0\u30A4\u30EC\u30AF\u30C8\u3067\u6A19\u6E96\u5165\u529B\u306B\u6E21\u3059\u304B\u3001--password-file \u306B\u30D5\u30A1\u30A4\u30EB\u306E\u30D1\u30B9\u3092\u6E21\u3057\u3066\u304F\u3060\u3055\u3044\u3002")}
|
|
323
|
-
const chunks=[];let size=0;for await(const chunk of process.stdin){const buffer=Buffer.from(chunk);size+=buffer.length;if(size>PASSWORD_FILE_MAX_BYTES){throw new UsageError(`\u6A19\u6E96\u5165\u529B\u306E\u30D1\u30B9\u30EF\u30FC\u30C9\u304C\u5927\u304D\u3059\u304E\u307E\u3059\uFF08${PASSWORD_FILE_MAX_BYTES} \u30D0\u30A4\u30C8\u8D85\uFF09`,usage)}chunks.push(buffer)}text=Buffer.concat(chunks).toString("utf8")}else{try{const stat=
|
|
324
|
-
-file \u306B\u901A\u5E38\u306E\u30D5\u30A1\u30A4\u30EB\u4EE5\u5916\u306F\u6307\u5B9A\u3067\u304D\u307E\u305B\u3093: ${file}`,usage);if(stat.size>PASSWORD_FILE_MAX_BYTES){throw new UsageError(`--password-file \u306E\u30D5\u30A1\u30A4\u30EB\u304C\u5927\u304D\u3059\u304E\u307E\u3059\uFF08${stat.size} \u30D0\u30A4\u30C8\uFF09: ${file}`,usage)}text=
|
|
325
|
-
\u30A1\u30A4\u30EB\u3092\u8AAD\u3081\u307E\u305B\u3093: ${file}\uFF08${reason}\uFF09`,usage)}}const password=text.replace(/^\uFEFF/,"").replace(/\r?\n$/,"");if([...password].length<PASSWORD_MIN_CHARS){throw new UsageError(`\u30D1\u30B9\u30EF\u30FC\u30C9\u306F ${PASSWORD_MIN_CHARS} \u6587\u5B57\u4EE5\u4E0A\u306B\u3057\u3066\u304F\u3060\u3055\u3044\uFF08${[...password].length} \u6587\u5B57\uFF09`,usage)}return password}function userFields(input){const body={};for(const field of TEXT_FIELDS){
|
|
326
|
-
input,field.flag,{maxChars:field.maxChars,label:field.label});if(value!==void 0)body[field.key]=value}const type=roleType(input);if(type!==void 0)body["type"]=type;const hireDate=isoDate(input,HIRE_DATE_FLAG.name);if(hireDate!==void 0)body["hire_date"]=hireDate;const twoFactor=twoFactorType(input);if(twoFactor!==void 0)body["two_factor_authentication_type"]=twoFactor;for(const field of[...PERMISSION_FIELDS,...DISPLAY_FIELDS]){const value=booleanFlag(input,field.flag);if(value!==
|
|
327
|
-
key]=value}return body}function writeAck2(body,label2){if(!isRecord(body)||body["result"]!==true){throw new ApiResponseError(`${label2}\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`)}const rest={...body};delete rest["result"];return rest}function licenseNotes(body){const warnings=isRecord(body)?body["license_warnings"]:void 0;if(!Array.isArray(warnings)||
|
|
328
|
-
0)return[];const texts=warnings.map(warning=>isRecord(warning)?String(warning["message"]??warning["feature_label"]??warning["feature"]??""):String(warning));return[`\u30E9\u30A4\u30BB\u30F3\u30B9\u306E\u7A7A\u304D\u304C\u8DB3\u308A\u306A\u3044\u305F\u3081\u3001\u4E00\u90E8\u306E\u6A5F\u80FD\u6A29\u9650\u306F\u4ED8\u4E0E\u3055\u308C\u3066\u3044\u307E\u305B\u3093: ${texts.join(" / ")}`]}var createOperation2={name:"create",summary:"\u30E6\u30FC\u30B6\u30FC\u3092\u4F5C\u6210\u3059\u308B\uFF08\u5165\u793E\u30FB\u7D44\u7E54\u7BA1\u7406\u8005\u306E\u307F\uFF09",
|
|
376
|
+
const chunks=[];let size=0;for await(const chunk of process.stdin){const buffer=Buffer.from(chunk);size+=buffer.length;if(size>PASSWORD_FILE_MAX_BYTES){throw new UsageError(`\u6A19\u6E96\u5165\u529B\u306E\u30D1\u30B9\u30EF\u30FC\u30C9\u304C\u5927\u304D\u3059\u304E\u307E\u3059\uFF08${PASSWORD_FILE_MAX_BYTES} \u30D0\u30A4\u30C8\u8D85\uFF09`,usage)}chunks.push(buffer)}text=Buffer.concat(chunks).toString("utf8")}else{try{const stat=fs2.statSync(file);if(!stat.isFile())throw new UsageError(`--passwor\
|
|
377
|
+
d-file \u306B\u901A\u5E38\u306E\u30D5\u30A1\u30A4\u30EB\u4EE5\u5916\u306F\u6307\u5B9A\u3067\u304D\u307E\u305B\u3093: ${file}`,usage);if(stat.size>PASSWORD_FILE_MAX_BYTES){throw new UsageError(`--password-file \u306E\u30D5\u30A1\u30A4\u30EB\u304C\u5927\u304D\u3059\u304E\u307E\u3059\uFF08${stat.size} \u30D0\u30A4\u30C8\uFF09: ${file}`,usage)}text=fs2.readFileSync(file,"utf8")}catch(err){if(err instanceof UsageError)throw err;const reason=err.code??err.message;throw new UsageError(`--password-file \
|
|
378
|
+
\u306E\u30D5\u30A1\u30A4\u30EB\u3092\u8AAD\u3081\u307E\u305B\u3093: ${file}\uFF08${reason}\uFF09`,usage)}}const password=text.replace(/^\uFEFF/,"").replace(/\r?\n$/,"");if([...password].length<PASSWORD_MIN_CHARS){throw new UsageError(`\u30D1\u30B9\u30EF\u30FC\u30C9\u306F ${PASSWORD_MIN_CHARS} \u6587\u5B57\u4EE5\u4E0A\u306B\u3057\u3066\u304F\u3060\u3055\u3044\uFF08${[...password].length} \u6587\u5B57\uFF09`,usage)}return password}function userFields(input){const body={};for(const field of TEXT_FIELDS){
|
|
379
|
+
const value=boundedText(input,field.flag,{maxChars:field.maxChars,label:field.label});if(value!==void 0)body[field.key]=value}const type=roleType(input);if(type!==void 0)body["type"]=type;const hireDate=isoDate(input,HIRE_DATE_FLAG.name);if(hireDate!==void 0)body["hire_date"]=hireDate;const twoFactor=twoFactorType(input);if(twoFactor!==void 0)body["two_factor_authentication_type"]=twoFactor;for(const field of[...PERMISSION_FIELDS,...DISPLAY_FIELDS]){const value=booleanFlag(input,field.flag);if(value!==
|
|
380
|
+
void 0)body[field.key]=value}return body}function writeAck2(body,label2){if(!isRecord(body)||body["result"]!==true){throw new ApiResponseError(`${label2}\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`)}const rest={...body};delete rest["result"];return rest}function licenseNotes(body){const warnings=isRecord(body)?body["license_warnings"]:void 0;if(!Array.isArray(warnings)||
|
|
381
|
+
warnings.length===0)return[];const texts=warnings.map(warning=>isRecord(warning)?String(warning["message"]??warning["feature_label"]??warning["feature"]??""):String(warning));return[`\u30E9\u30A4\u30BB\u30F3\u30B9\u306E\u7A7A\u304D\u304C\u8DB3\u308A\u306A\u3044\u305F\u3081\u3001\u4E00\u90E8\u306E\u6A5F\u80FD\u6A29\u9650\u306F\u4ED8\u4E0E\u3055\u308C\u3066\u3044\u307E\u305B\u3093: ${texts.join(" / ")}`]}var createOperation2={name:"create",summary:"\u30E6\u30FC\u30B6\u30FC\u3092\u4F5C\u6210\u3059\u308B\uFF08\u5165\u793E\u30FB\u7D44\u7E54\u7BA1\u7406\u8005\u306E\u307F\uFF09",
|
|
329
382
|
usage:"twp user create --name <\u6C0F\u540D> --email <\u30E1\u30FC\u30EB\u30A2\u30C9\u30EC\u30B9> --password-file <\u30D1\u30B9|-> [--role admin|user] [--kana <\u30D5\u30EA\u30AC\u30CA>] [--hire-date <YYYY-MM-DD>] [--employee-code <\u793E\u54E1\u756A\u53F7>] [--two-factor none|email|sms] [--punch-correction true|false] [--display true|false] \u2026",description:`--name / --email / --password-file \u304C\u5FC5\u9808\u3067\u3059\u3002--role \u3092\u7701\u304F\u3068\u4E00\u822C\u30E6\u30FC\u30B6\u30FC\uFF08user\uFF09\u3067\u4F5C\u6210\u3057\u307E\u3059\u3002
|
|
330
383
|
\u8868\u793A\u30D5\u30E9\u30B0\u3092\u7701\u304F\u3068\u3001\u30B5\u30FC\u30D0\u306E\u65E2\u5B9A\uFF08\u3059\u3079\u3066 true\uFF1D\u8868\u793A\u3059\u308B\uFF09\u3067\u4F5C\u6210\u3057\u307E\u3059\u3002
|
|
331
384
|
\u6A5F\u80FD\u6A29\u9650\u306F\u30C6\u30CA\u30F3\u30C8\u306E\u65E2\u5B9A\u3067\u4ED8\u4E0E\u3055\u308C\u307E\u3059\uFF08\u30E9\u30A4\u30BB\u30F3\u30B9\u306E\u7A7A\u304D\u304C\u8DB3\u308A\u306A\u3044\u6A5F\u80FD\u306F\u4ED8\u4E0E\u3055\u308C\u305A\u3001stderr \u306B\u51FA\u307E\u3059\uFF09\u3002
|
|
@@ -375,7 +428,7 @@ USER_REF_HELP,forbidden:body=>{const server=`${body?.error_description??""}${bod
|
|
|
375
428
|
return"\u7D44\u7E54\u7BA1\u7406\u8005\u306E\u6A29\u9650\u304C\u5FC5\u8981\u3067\u3059\u3002twp user unlock \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 unlock help"),plan:input=>({method:"POST",path:`/api/v2/admin/users/${userPath(input,"/unlock")}`}),plannedNotes:()=>["\u9001\u308B\u524D\u306B GET /api/v2/admin/users/{id} \u3067\u30ED\u30C3\u30AF\u72B6\u614B\u3092\u78BA\u8A8D\u3057\u307E\u3059\u3002"],
|
|
376
429
|
async preview(input,ctx){const user=userObject(await ctx.send({method:"GET",path:`/api/v2/admin/users/${userPath(input)}`}));const name=typeof user["user_name"]==="string"?user["user_name"]:String(user["user_id"]);const locked=user["is_locked"];if(locked==="1"||locked===true||locked===1){return{notes:[`${name} \u306F\u30ED\u30C3\u30AF\u3055\u308C\u3066\u3044\u307E\u3059\u3002\u30ED\u30C3\u30AF\u3092\u89E3\u9664\u3057\u307E\u3059\u3002`],warnings:[]}}if(locked==="0"||locked===false||locked===0){return{
|
|
377
430
|
notes:[`${name} \u306F\u30ED\u30C3\u30AF\u3055\u308C\u3066\u3044\u307E\u305B\u3093\u3002\u9001\u3063\u3066\u3082\u30ED\u30B0\u30A4\u30F3\u306E\u5931\u6557\u56DE\u6570\u304C 0 \u306B\u623B\u308B\u3060\u3051\u3067\u3059\u3002`],warnings:[]}}return{notes:[`${name} \u306E\u30ED\u30C3\u30AF\u72B6\u614B\u3092\u78BA\u8A8D\u3067\u304D\u307E\u305B\u3093\u3067\u3057\u305F\uFF08is_locked \u304C\u3042\u308A\u307E\u305B\u3093\uFF09\u3002\u305D\u306E\u307E\u307E\u89E3\u9664\u3092\u9001\u308A\u307E\u3059\u3002`],
|
|
378
|
-
warnings:[]}},summarize:body=>pick(unlockedUser(body),["message",...UNLOCK_COLUMNS]),raw:body=>unlockedUser(body)};var userDomain={name:"user",summary:"\u30C6\u30CA\u30F3\u30C8\u306E\u30E6\u30FC\u30B6\u30FC\uFF08\u4F5C\u6210\u30FB\u66F4\u65B0\u30FB\u5931\u52B9\u30FB\u30ED\u30C3\u30AF\u89E3\u9664\u30FB\u62DB\u5F85\u30FB\u68DA\u5378\u30FB\u6A5F\u80FD\u6A29\u9650\uFF09\u3068\u6240\u5C5E\uFF08\u53C2\u7167\u30FB\u4ED8\u3051\u66FF\u3048\u30FB\u4F5C\u6210\u30FB\u66F4\u65B0\u30FB\u7D42\u4E86\u30FB\u524A\u9664\uFF09\u30FB\u30B9\u30AD\u30EB\u8A55\u4FA1\u30FB\u8CC7\u683C\u30FB\u7814\u4FEE\u5C65\u6B74\u30FB\u96C7\u7528\u5951\u7D04\u306E\u53C2\u7167",
|
|
431
|
+
warnings:[]}},summarize:body=>pick(unlockedUser(body),["message",...UNLOCK_COLUMNS]),raw:body=>unlockedUser(body)};var userDomain={name:"user",summary:"\u30C6\u30CA\u30F3\u30C8\u306E\u30E6\u30FC\u30B6\u30FC\uFF08\u4F5C\u6210\u30FB\u66F4\u65B0\u30FB\u5931\u52B9\u30FB\u30ED\u30C3\u30AF\u89E3\u9664\u30FB\u62DB\u5F85\u30FB\u68DA\u5378\u30FB\u6A5F\u80FD\u6A29\u9650\u30FB\u5370\u5F71\uFF09\u3068\u6240\u5C5E\uFF08\u53C2\u7167\u30FB\u4ED8\u3051\u66FF\u3048\u30FB\u4F5C\u6210\u30FB\u66F4\u65B0\u30FB\u7D42\u4E86\u30FB\u524A\u9664\uFF09\u30FB\u30B9\u30AD\u30EB\u8A55\u4FA1\u30FB\u8CC7\u683C\u30FB\u7814\u4FEE\u5C65\u6B74\u30FB\u96C7\u7528\u5951\u7D04\u306E\u53C2\u7167",
|
|
379
432
|
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 <\u30AB\u30FC\u30BD\u30EB>]",description:"--department / --position \u306F\u540D\u524D\u30FB\
|
|
380
433
|
\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\n\uFF08\u5168\u54E1\u306E\u8A8D\u8A3C\u30BF\u30A4\u30D7\u3092\u4E00\u89A7\u3067\u898B\u308B\u306A\u3089 twp user export --include-disabled\uFF09\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"+
|
|
381
434
|
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",
|
|
@@ -386,4 +439,5 @@ input.flags,"--employment"),include_hidden:input.flags.has("--include-hidden")?"
|
|
|
386
439
|
v\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:"\
|
|
387
440
|
GET",path:`/api/v2/admin/users/${userPath(input)}`}),summarize:body=>pick(userObject(body),GET_COLUMNS),raw:body=>userObject(body)},{name:"projects",summary:"\u6307\u5B9A\u3057\u305F\u30E6\u30FC\u30B6\u30FC\u304C\u53C2\u753B\u3057\u3066\u3044\u308B\u30D7\u30ED\u30B8\u30A7\u30AF\u30C8\u3092\u4E00\u89A7\u3059\u308B\uFF08\u7D44\u7E54\u7BA1\u7406\u8005\u306E\u307F\uFF09",usage:"twp user projects <\u30E6\u30FC\u30B6\u30FC>",description:"GET /api/v2/admin/users/{id}/projects\u3002\u3053\u306E API \u306F\u30DA\u30FC\u30B8\u30F3\u30B0\u3092\u6301\u305F\u305A\u3001\u5E38\u306B\u5168\u4EF6\u3092\u8FD4\u3057\u307E\
|
|
388
441
|
\u3059\u3002\nmember_start_date / member_end_date \u306F\u305D\u306E\u30E6\u30FC\u30B6\u30FC\u306E\u53C2\u753B\u671F\u9593\u3067\u3059\uFF08start_date / end_date \u306F\u30D7\u30ED\u30B8\u30A7\u30AF\u30C8\u306E\u671F\u9593\uFF09\u3002\n\u81EA\u5206\u306E\u30D7\u30ED\u30B8\u30A7\u30AF\u30C8\u306F\u7D44\u7E54\u7BA1\u7406\u8005\u3067\u306A\u304F\u3066\u3082 twp project mine \u3067\u8AAD\u3081\u307E\u3059\u3002\n\n"+USER_REF_HELP,forbidden:"\u7D44\u7E54\u7BA1\u7406\u8005\u306E\u6A29\u9650\u304C\u5FC5\u8981\u3067\u3059\u3002twp user projects \u306F\u7D44\u7E54\u7BA1\u7406\u8005\u3060\u3051\u304C\u4F7F\u3048\u307E\u3059\uFF08\u81EA\u5206\u306E\u5206\u306F twp pro\
|
|
389
|
-
ject mine\uFF09",flags:[USER_REF_FLAG],prepare:(input,ctx)=>prepareUser(input,ctx,"twp user projects help"),plan:input=>({method:"GET",path:`/api/v2/admin/users/${userPath(input,"/projects")}`}),summarize:body=>assignedProjectItems(body).map(row=>pick(row,ASSIGNED_PROJECT_COLUMNS)),raw:body=>assignedProjectItems(body)},createOperation2,updateOperation4,unlockOperation,exportOperation,...userHrOperations],subresources:[userAssignmentResource,userInviteResource,userPermissionResource,userDefaultPermissionResource
|
|
442
|
+
ject mine\uFF09",flags:[USER_REF_FLAG],prepare:(input,ctx)=>prepareUser(input,ctx,"twp user projects help"),plan:input=>({method:"GET",path:`/api/v2/admin/users/${userPath(input,"/projects")}`}),summarize:body=>assignedProjectItems(body).map(row=>pick(row,ASSIGNED_PROJECT_COLUMNS)),raw:body=>assignedProjectItems(body)},createOperation2,updateOperation4,unlockOperation,exportOperation,...userHrOperations],subresources:[userAssignmentResource,userInviteResource,userPermissionResource,userDefaultPermissionResource,
|
|
443
|
+
userAuthPolicyResource,userAccountLockResource,userSealImpressionResource]};export{userDomain};
|
|
@@ -1,4 +1,4 @@
|
|
|
1
1
|
import { createRequire as __twpCreateRequire } from 'node:module';
|
|
2
2
|
const require = __twpCreateRequire(import.meta.url);
|
|
3
|
-
import{SCHEDULE_HELP,parseSchedule,readRunStatus,workerAgentDomain}from"./chunk-
|
|
3
|
+
import{SCHEDULE_HELP,parseSchedule,readRunStatus,workerAgentDomain}from"./chunk-CDBV6AZI.js";import"./chunk-WVCEKC7V.js";import"./chunk-HEH3PUW2.js";import"./chunk-W4NLJ2YK.js";import"./chunk-BD7O73GK.js";import"./chunk-RX5HWI4L.js";import"./chunk-4DOPQ74T.js";import"./chunk-HVZUXLQ4.js";import"./chunk-JA5A6UJ2.js";import"./chunk-MMVXE2CJ.js";import"./chunk-II5RVJQN.js";import"./chunk-MI6HVYR2.js";import"./chunk-PS5QFKHB.js";
|
|
4
4
|
import"./chunk-3ZRMMBP5.js";import"./chunk-VFPY2A23.js";import"./chunk-XNLIEUAW.js";import"./chunk-J7QYPKVK.js";import"./chunk-EDF4U5BT.js";import"./chunk-RZVI6PMW.js";import"./chunk-QQRJLH6B.js";import"./chunk-NHYMHCAT.js";import"./chunk-VSJBJXZO.js";export{SCHEDULE_HELP,parseSchedule,readRunStatus,workerAgentDomain};
|
|
@@ -1,4 +1,4 @@
|
|
|
1
1
|
import { createRequire as __twpCreateRequire } from 'node:module';
|
|
2
2
|
const require = __twpCreateRequire(import.meta.url);
|
|
3
|
-
import{applyInstancePlan,createInstancePlan,formColumns,parseInstanceContent,workflowDomain,writtenInstance}from"./chunk-
|
|
3
|
+
import{applyInstancePlan,createInstancePlan,formColumns,parseInstanceContent,workflowDomain,writtenInstance}from"./chunk-ARJ35CBU.js";import"./chunk-GEIQWMHV.js";import"./chunk-DMMSNDDD.js";import"./chunk-4557EX6E.js";import"./chunk-JJSBBWJ5.js";import"./chunk-HEH3PUW2.js";import"./chunk-W4NLJ2YK.js";import"./chunk-BD7O73GK.js";import"./chunk-RX5HWI4L.js";import"./chunk-4DOPQ74T.js";import"./chunk-HVZUXLQ4.js";import"./chunk-JA5A6UJ2.js";
|
|
4
4
|
import"./chunk-MMVXE2CJ.js";import"./chunk-II5RVJQN.js";import"./chunk-MI6HVYR2.js";import"./chunk-PS5QFKHB.js";import"./chunk-3ZRMMBP5.js";import"./chunk-VFPY2A23.js";import"./chunk-XNLIEUAW.js";import"./chunk-J7QYPKVK.js";import"./chunk-EDF4U5BT.js";import"./chunk-RZVI6PMW.js";import"./chunk-QQRJLH6B.js";import"./chunk-NHYMHCAT.js";import"./chunk-VSJBJXZO.js";export{applyInstancePlan,createInstancePlan,formColumns,parseInstanceContent,workflowDomain,writtenInstance};
|
package/package.json
CHANGED
package/dist/chunk-AKLRVUU2.js
DELETED
|
@@ -1,18 +0,0 @@
|
|
|
1
|
-
import { createRequire as __twpCreateRequire } from 'node:module';
|
|
2
|
-
const require = __twpCreateRequire(import.meta.url);
|
|
3
|
-
import{stripTerminalControls}from"./chunk-NHYMHCAT.js";var SENSITIVE_HEADERS=new Set(["authorization","proxy-authorization","cookie","set-cookie","x-api-key","x-auth-token","x-vercel-protection-bypass"]);var REDACTED="***\uFF08\u4F0F\u5B57\uFF09";var SECRET_KEY_PATTERN="[A-Za-z0-9_-]*(?:token|secret|password|passwd|api[_-]?key|credential|signature|tempauth|upload_?url)[A-Za-z0-9_-]*";var NOT_SECRET_FLAGS="(?:starting-token)";var NOT_SECRET_QUERY="(?:skiptoken)";var NOT_SECRET_KEYS="(?:tokens_in|tokens_out)";function caseless(source){let out="";let inClass=false;
|
|
4
|
-
let escaped=false;for(const c of source){if(escaped){out+=c;escaped=false}else if(c==="\\"){out+=c;escaped=true}else if(inClass){if(c==="]")inClass=false;out+=c}else if(c==="["){inClass=true;out+=c}else if(/[a-z]/i.test(c)){out+=`[${c.toLowerCase()}${c.toUpperCase()}]`}else{out+=c}}return out}function referenceStart(endChars){return String.raw`\$(?:[A-Za-z_][A-Za-z0-9_]*|\{[A-Za-z_][A-Za-z0-9_]*\}|\([^()\n]*\))(?=[\s"'`+"`"+String.raw`,;)\]}${endChars}]|\\[\s"nrt]|$)`}var BEARER_REFERENCE_START=referenceStart(
|
|
5
|
-
"");var QUERY_REFERENCE_START=referenceStart("&");var PURE_REFERENCE=/^\s*(?:\$[A-Za-z_][A-Za-z0-9_]*|\$\{[A-Za-z_][A-Za-z0-9_]*\}|\$\([^()\n]*\))\s*$/;var VALUE_ESCAPE=String.raw`\\[^\s"nrt]`;var BEARER_VALUE=new RegExp(String.raw`\b${caseless("bearer")}\s+(?!${BEARER_REFERENCE_START})(?:[^\s"'`+"`"+String.raw`,;)\]}\\]|${VALUE_ESCAPE})+`,"g");var TWP_API_KEY_VALUE=/(?<![A-Za-z0-9])twpk_[A-Za-z0-9]{20,}/g;var SECRET_QUERY_VALUE=new RegExp(String.raw`([?&](?!${caseless(NOT_SECRET_QUERY)}=)${caseless(
|
|
6
|
-
SECRET_KEY_PATTERN)}=)(?!${QUERY_REFERENCE_START})(?:[^&\s"'`+"`"+String.raw`,;)\]}\\]|${VALUE_ESCAPE})+`,"g");var SECRET_FLAG_VALUE=new RegExp(String.raw`(--(?!${caseless(NOT_SECRET_FLAGS)}(?:=|\s))${caseless(SECRET_KEY_PATTERN)}(?:=|\s+))('[^']*'|"[^"]*"|(?:[A-Za-z0-9_.~+/=|:%-]|${VALUE_ESCAPE})+)`,"g");function redactSecrets(text){return text.replace(BEARER_VALUE,`Bearer ${REDACTED}`).replace(TWP_API_KEY_VALUE,REDACTED).replace(/(\/v2\/(?:admin\/)?invitations\/)[A-Za-z0-9_-]{16,}/g,`$1${REDACTED}`).
|
|
7
|
-
replace(new RegExp(`("(?!${NOT_SECRET_KEYS}")${SECRET_KEY_PATTERN}"\\s*:\\s*)"(?:[^"\\\\]|\\\\.)*"`,"gi"),`$1"${REDACTED}"`).replace(SECRET_QUERY_VALUE,`$1${REDACTED}`).replace(SECRET_FLAG_VALUE,(match,prefix,value)=>{const unquoted=/^["']/.test(value)?value.slice(1,-1):value;return PURE_REFERENCE.test(unquoted)?match:`${prefix}${REDACTED}`})}var SECRET_KEY_NAME=new RegExp(`^(?!${NOT_SECRET_KEYS}$)${SECRET_KEY_PATTERN}$`,"i");function redactSecretValues(value){if(Array.isArray(value))return value.
|
|
8
|
-
map(item=>redactSecretValues(item));if(value!==null&&typeof value==="object"){const out={};for(const[key,item]of Object.entries(value)){const shownKey=uniqueKey(out,redactSecrets(key));out[shownKey]=SECRET_KEY_NAME.test(key)&&!(typeof item==="string"&&PURE_REFERENCE.test(item))?REDACTED:redactSecretValues(item)}return out}if(typeof value==="string")return redactSecrets(value);return value}function uniqueKey(out,key){if(!Object.hasOwn(out,key))return key;let n=2;while(Object.hasOwn(out,`${key} (${n}\
|
|
9
|
-
)`))n+=1;return`${key} (${n})`}function formatHeaders(headers){if(!headers)return[];const entries=headers instanceof Headers?[...headers.entries()]:Array.isArray(headers)?headers:Object.entries(headers);return entries.map(([name,value])=>{const shown=SENSITIVE_HEADERS.has(name.toLowerCase())?REDACTED:redactSecrets(String(value));return` ${name.toLowerCase()}: ${shown}`})}var BODY_LIMIT=4e3;function omitAttachmentBytes(body){return body.replace(/"contentBytes":"([A-Za-z0-9+/=]*)"/g,(_,b64)=>`"co\
|
|
10
|
-
ntentBytes":"\uFF08base64 ${b64.length} \u6587\u5B57\u30FB\u51FA\u529B\u3057\u306A\u3044\uFF09"`)}function formatBody(raw){const safe=omitAttachmentBytes(redactSecrets(stripTerminalControls(raw)));return safe.length>BODY_LIMIT?`${safe.slice(0,BODY_LIMIT)}
|
|
11
|
-
\u2026\uFF08\u4EE5\u964D ${safe.length-BODY_LIMIT} \u6587\u5B57\u3092\u7701\u7565\uFF09`:safe}function isTextualContentType(contentType){if(contentType===null)return false;return/^\s*(text\/|application\/(json|xml|javascript|x-www-form-urlencoded)|application\/[\w.+-]*\+(json|xml))/i.test(contentType)}function withDebug(inner,options={}){const write=options.write??(text=>void process.stderr.write(text));const now=options.now??(()=>Date.now());return async(input,init)=>{const method=init?.method??
|
|
12
|
-
"GET";const lines=[`[debug] \u2192 ${method} ${redactSecrets(input)}`,...formatHeaders(init?.headers)];if(options.omitBodies!==void 0&&init?.body!==void 0&&init.body!==null)lines.push(` \uFF08\u672C\u6587\u306F${options.omitBodies}\u305F\u3081\u51FA\u529B\u3057\u306A\u3044\uFF09`);else if(typeof init?.body==="string")lines.push(` ${formatBody(init.body)}`);else if(init?.body instanceof Uint8Array)lines.push(` \uFF08\u672C\u6587\u306F ${init.body.byteLength} \u30D0\u30A4\u30C8\u306E\u30D0\u30A4\u30C8\u5217\u3002\u51FA\u529B\u3057\u306A\u3044\uFF09`);
|
|
13
|
-
write(`${lines.join("\n")}
|
|
14
|
-
`);const started=now();let res;try{res=await inner(input,init)}catch(err){write(`[debug] \u2717 \u901A\u4FE1\u306B\u5931\u6557\u3057\u307E\u3057\u305F (${now()-started}ms): ${redactSecrets(err.message)}
|
|
15
|
-
`);throw err}const out=[`[debug] \u2190 ${res.status} ${res.statusText} (${now()-started}ms)`,...formatHeaders(res.headers)];const contentType=res.headers.get("content-type");const attachment=/^\s*attachment\b/i.test(res.headers.get("content-disposition")??"");if(options.omitBodies!==void 0){out.push(` \uFF08\u672C\u6587\u306F${options.omitBodies}\u305F\u3081\u51FA\u529B\u3057\u306A\u3044\uFF09`)}else if(isTextualContentType(contentType)&&!attachment){const raw=await res.clone().text().catch(()=>"\
|
|
16
|
-
\uFF08\u672C\u6587\u3092\u8AAD\u3081\u307E\u305B\u3093\u3067\u3057\u305F\uFF09");if(raw!=="")out.push(` ${formatBody(raw)}`)}else{const length=res.headers.get("content-length");out.push(` \uFF08\u672C\u6587\u306F ${contentType??"content-type \u4E0D\u660E"}\u30FB${length===null?"\u30B5\u30A4\u30BA\u4E0D\u660E":`${length} \u30D0\u30A4\u30C8`}\u3002${attachment?"\u30C0\u30A6\u30F3\u30ED\u30FC\u30C9\u306E\u672C\u4F53\u306E\u305F\u3081":"\u30C6\u30AD\u30B9\u30C8\u3067\u306A\u3044\u305F\u3081"}\u51FA\u529B\u3057\u306A\u3044\
|
|
17
|
-
\uFF09`)}write(`${out.join("\n")}
|
|
18
|
-
`);return res}}export{REDACTED,redactSecrets,redactSecretValues,withDebug};
|
package/dist/chunk-WHYQZC2H.js
DELETED
|
@@ -1,12 +0,0 @@
|
|
|
1
|
-
import { createRequire as __twpCreateRequire } from 'node:module';
|
|
2
|
-
const require = __twpCreateRequire(import.meta.url);
|
|
3
|
-
var LOADERS={agent:async()=>(await import("./agent-VWO2M7L6.js")).agentDomain,"agent-loop":async()=>(await import("./agent-loop-J6YSC5BU.js")).agentLoopDomain,"ai-review-reason":async()=>(await import("./sales-ai-review-Q2RFAXUD.js")).aiReviewReasonDomain,analysis:async()=>(await import("./analysis-KOUABCSN.js")).analysisDomain,announcement:async()=>(await import("./announcement-B5XGD27Z.js")).announcementDomain,"api-key":async()=>(await import("./api-key-YSHTZPY2.js")).apiKeyDomain,attendance:async()=>(await import("./attendance-correct-7YUT2ICL.js")).
|
|
4
|
-
attendanceDomainWithRecords,"audit-log":async()=>(await import("./audit-log-ZGK7IVLD.js")).auditLogDomain,backlog:async()=>(await import("./backlog-ANCHSCHE.js")).backlogDomain,budget:async()=>(await import("./budget-2O6WSE6I.js")).budgetDomain,"business-hours":async()=>(await import("./business-hours-I4X6YQS3.js")).businessHoursDomain,"business-place":async()=>(await import("./sales-master-5JR2TMLK.js")).businessPlaceDomain,company:async()=>(await import("./company-HUP72FGC.js")).companyDomain,
|
|
5
|
-
contract:async()=>(await import("./contract-CCSCR7BO.js")).contractDomain,customer:async()=>(await import("./company-HUP72FGC.js")).customerDomain,department:async()=>(await import("./department-5V4W37PU.js")).departmentDomain,deposit:async()=>(await import("./deposit-XMZZBRSY.js")).depositDomain,estimate:async()=>(await import("./estimate-3JTW4EES.js")).estimateDomain,evaluation:async()=>(await import("./evaluation-GKPJBSVD.js")).evaluationDomain,expense:async()=>(await import("./expense-AOUR6AFS.js")).
|
|
6
|
-
expenseDomain,faq:async()=>(await import("./faq-DLY5YITZ.js")).faqDomain,"fiscal-year":async()=>(await import("./fiscal-year-CVYFYGRR.js")).fiscalYearDomain,holiday:async()=>(await import("./holiday-WLJT7FGH.js")).holidayDomain,"goal-sheet":async()=>(await import("./evaluation-GKPJBSVD.js")).goalSheetDomain,inquiry:async()=>(await import("./inquiry-57RLTCK2.js")).inquiryDomain,invoice:async()=>(await import("./invoice-XMTJV34B.js")).invoiceDomain,"job-title":async()=>(await import("./job-title-LEHO7TBW.js")).
|
|
7
|
-
jobTitleDomain,knowledge:async()=>(await import("./domain-knowledge-44FQ4EIL.js")).knowledgeDomain,leave:async()=>(await import("./leave-O6D4NOMN.js")).leaveDomain,license:async()=>(await import("./license-S35KLEJW.js")).licenseDomain,"login-history":async()=>(await import("./login-history-RCUHEEYE.js")).loginHistoryDomain,media:async()=>(await import("./media-VA7YJ5CR.js")).mediaDomain,meeting:async()=>(await import("./knowledge-7B2R6UCM.js")).meetingDomain,note:async()=>(await import("./knowledge-7B2R6UCM.js")).
|
|
8
|
-
noteDomain,notification:async()=>(await import("./notification-BE6KRW5R.js")).notificationDomain,onedrive:async()=>(await import("./onedrive-Z43D26SJ.js")).onedriveDomain,outlook:async()=>(await import("./outlook-B5QENUVX.js")).outlookDomain,payee:async()=>(await import("./sales-master-5JR2TMLK.js")).payeeDomain,position:async()=>(await import("./position-YAC32O37.js")).positionDomain,project:async()=>(await import("./project-M6XX6QVR.js")).projectDomain,prospect:async()=>(await import("./prospect-C3OWZPUJ.js")).
|
|
9
|
-
prospectDomain,purchase:async()=>(await import("./purchase-TEPTOLIR.js")).purchaseDomain,qualification:async()=>(await import("./skill-6AUBIXLM.js")).qualificationDomain,receivable:async()=>(await import("./receivable-N4EMAU2C.js")).receivableDomain,redmine:async()=>(await import("./redmine-THH5YMND.js")).redmineDomain,report:async()=>(await import("./report-NXYULEVF.js")).reportDomain,"role-template":async()=>(await import("./evaluation-GKPJBSVD.js")).roleTemplateDomain,"rou\
|
|
10
|
-
nding-setting":async()=>(await import("./sales-numbering-UO4QIZZC.js")).roundingSettingDomain,"seal-impression":async()=>(await import("./sales-master-5JR2TMLK.js")).sealImpressionDomain,search:async()=>(await import("./search-65MA22AA.js")).searchDomain,segment:async()=>(await import("./segment-PTTW7IJM.js")).segmentDomain,shift:async()=>(await import("./attendance-lists-DJ6AQH34.js")).shiftDomain,skill:async()=>(await import("./skill-6AUBIXLM.js")).skillDomain,"staffing-board":async()=>(await import("./staffing-board-SPXKQ5F2.js")).
|
|
11
|
-
staffingBoardDomain,storage:async()=>(await import("./storage-AQDCEBDJ.js")).storageDomain,"supplier-payment":async()=>(await import("./supplier-payment-KVWJCRWB.js")).supplierPaymentDomain,support:async()=>(await import("./support-EKI7AATE.js")).supportDomain,task:async()=>(await import("./task-T3SQVFJ5.js")).taskDomain,teams:async()=>(await import("./teams-U7NHSZHY.js")).teamsDomain,user:async()=>(await import("./user-WO6CKRNH.js")).userDomain,"user-contract-type":async()=>(await import("./user-contract-type-XM4G3TX5.js")).
|
|
12
|
-
userContractTypeDomain,"user-group":async()=>(await import("./user-group-5V3L7WYR.js")).userGroupDomain,wiki:async()=>(await import("./knowledge-7B2R6UCM.js")).wikiDomain,workchange:async()=>(await import("./attendance-lists-DJ6AQH34.js")).workchangeDomain,"worker-agent":async()=>(await import("./worker-agent-XHX3D4LT.js")).workerAgentDomain,workflow:async()=>(await import("./workflow-PJ33ZW42.js")).workflowDomain};async function loadDomain(name){return LOADERS[name]()}export{loadDomain};
|