@quire-io/quire-cli 0.1.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/CHANGES.md +33 -0
- package/LICENSE +15 -0
- package/README.md +69 -0
- package/dist/cli.js +209 -0
- package/dist/cli.js.map +1 -0
- package/dist/commands/chat.js +200 -0
- package/dist/commands/chat.js.map +1 -0
- package/dist/commands/colors.js +34 -0
- package/dist/commands/colors.js.map +1 -0
- package/dist/commands/comment.js +128 -0
- package/dist/commands/comment.js.map +1 -0
- package/dist/commands/doc.js +139 -0
- package/dist/commands/doc.js.map +1 -0
- package/dist/commands/insight.js +234 -0
- package/dist/commands/insight.js.map +1 -0
- package/dist/commands/login.js +78 -0
- package/dist/commands/login.js.map +1 -0
- package/dist/commands/logout.js +25 -0
- package/dist/commands/logout.js.map +1 -0
- package/dist/commands/mine.js +61 -0
- package/dist/commands/mine.js.map +1 -0
- package/dist/commands/notify.js +25 -0
- package/dist/commands/notify.js.map +1 -0
- package/dist/commands/org.js +99 -0
- package/dist/commands/org.js.map +1 -0
- package/dist/commands/partner.js +36 -0
- package/dist/commands/partner.js.map +1 -0
- package/dist/commands/project.js +346 -0
- package/dist/commands/project.js.map +1 -0
- package/dist/commands/resolve.js +61 -0
- package/dist/commands/resolve.js.map +1 -0
- package/dist/commands/status.js +130 -0
- package/dist/commands/status.js.map +1 -0
- package/dist/commands/sublist.js +143 -0
- package/dist/commands/sublist.js.map +1 -0
- package/dist/commands/tag.js +108 -0
- package/dist/commands/tag.js.map +1 -0
- package/dist/commands/task.js +767 -0
- package/dist/commands/task.js.map +1 -0
- package/dist/commands/undo.js +64 -0
- package/dist/commands/undo.js.map +1 -0
- package/dist/commands/user.js +24 -0
- package/dist/commands/user.js.map +1 -0
- package/dist/commands/whoami.js +34 -0
- package/dist/commands/whoami.js.map +1 -0
- package/dist/config.js +37 -0
- package/dist/config.js.map +1 -0
- package/dist/credentials.js +28 -0
- package/dist/credentials.js.map +1 -0
- package/dist/errors.js +56 -0
- package/dist/errors.js.map +1 -0
- package/dist/log.js +37 -0
- package/dist/log.js.map +1 -0
- package/dist/oauth/config.js +22 -0
- package/dist/oauth/config.js.map +1 -0
- package/dist/oauth/loopback.js +101 -0
- package/dist/oauth/loopback.js.map +1 -0
- package/dist/oauth/pkce.js +16 -0
- package/dist/oauth/pkce.js.map +1 -0
- package/dist/options.js +2 -0
- package/dist/options.js.map +1 -0
- package/dist/output/colors.js +77 -0
- package/dist/output/colors.js.map +1 -0
- package/dist/output/columns.js +22 -0
- package/dist/output/columns.js.map +1 -0
- package/dist/output/keyvalue.js +18 -0
- package/dist/output/keyvalue.js.map +1 -0
- package/dist/output/render.js +30 -0
- package/dist/output/render.js.map +1 -0
- package/dist/output/table.js +35 -0
- package/dist/output/table.js.map +1 -0
- package/dist/quire-client.js +74 -0
- package/dist/quire-client.js.map +1 -0
- package/dist/util/attach-input.js +65 -0
- package/dist/util/attach-input.js.map +1 -0
- package/dist/util/bulk-input.js +80 -0
- package/dist/util/bulk-input.js.map +1 -0
- package/dist/util/confirm.js +31 -0
- package/dist/util/confirm.js.map +1 -0
- package/dist/util/field-flags.js +52 -0
- package/dist/util/field-flags.js.map +1 -0
- package/dist/util/open-url.js +39 -0
- package/dist/util/open-url.js.map +1 -0
- package/dist/util/recurrence.js +53 -0
- package/dist/util/recurrence.js.map +1 -0
- package/dist/util/retry-after.js +56 -0
- package/dist/util/retry-after.js.map +1 -0
- package/dist/util/task-id.js +34 -0
- package/dist/util/task-id.js.map +1 -0
- package/dist/util/text-input.js +26 -0
- package/dist/util/text-input.js.map +1 -0
- package/dist/version.js +19 -0
- package/dist/version.js.map +1 -0
- package/package.json +62 -0
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"project.js","sourceRoot":"","sources":["../../src/commands/project.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,aAAa,EAAE,MAAM,SAAS,CAAC;AAIxC,OAAO,EAAE,eAAe,EAAE,MAAM,cAAc,CAAC;AAE/C,OAAO,EAAE,UAAU,EAAE,YAAY,EAAE,MAAM,qBAAqB,CAAC;AAC/D,OAAO,EAAE,iBAAiB,EAAE,MAAM,oBAAoB,CAAC;AACvD,OAAO,EAAE,kBAAkB,EAAE,MAAM,oBAAoB,CAAC;AAExD,OAAO,EAAE,cAAc,EAAE,YAAY,EAAE,MAAM,wBAAwB,CAAC;AACtE,OAAO,EAAE,gBAAgB,EAAE,MAAM,uBAAuB,CAAC;AAEzD,MAAM,kBAAkB,GAAG;IACzB,EAAE,KAAK,EAAE,MAAM,EAAE,GAAG,EAAE,CAAC,CAAsC,EAAE,EAAE,CAAC,CAAC,CAAC,QAAQ,IAAI,CAAC,CAAC,IAAI,EAAE;IACxF,EAAE,KAAK,EAAE,IAAI,EAAE,GAAG,EAAE,CAAC,CAAiB,EAAE,EAAE,CAAC,CAAC,CAAC,EAAE,EAAE;IACjD,EAAE,KAAK,EAAE,KAAK,EAAE,GAAG,EAAE,CAAC,CAAkB,EAAE,EAAE,CAAC,CAAC,CAAC,GAAG,EAAE;IACpD,EAAE,KAAK,EAAE,aAAa,EAAE,GAAG,EAAE,CAAC,CAA+B,EAAE,EAAE,CAAC,CAAC,CAAC,eAAe,EAAE;IACrF,EAAE,KAAK,EAAE,KAAK,EAAE,GAAG,EAAE,CAAC,CAAmB,EAAE,EAAE,CAAC,CAAC,CAAC,GAAG,EAAE;IACrD,EAAE,KAAK,EAAE,OAAO,EAAE,GAAG,EAAE,CAAC,CAAqB,EAAE,EAAE,CAAC,CAAC,CAAC,KAAK,EAAE;IAC3D,EAAE,KAAK,EAAE,KAAK,EAAE,GAAG,EAAE,CAAC,CAAmB,EAAE,EAAE,CAAC,CAAC,CAAC,GAAG,EAAE;IACrD,EAAE,KAAK,EAAE,aAAa,EAAE,GAAG,EAAE,CAAC,CAA0B,EAAE,EAAE,CAAC,CAAC,CAAC,UAAU,EAAE;IAC3E,EAAE,KAAK,EAAE,WAAW,EAAE,GAAG,EAAE,CAAC,CAAwB,EAAE,EAAE,CAAC,CAAC,CAAC,QAAQ,EAAE;CACtE,CAAC;AAEF,MAAM,wBAAwB,GAAG;IAC/B,EAAE,KAAK,EAAE,IAAI,EAAE,GAAG,EAAE,CAAC,CAAiB,EAAE,EAAE,CAAC,CAAC,CAAC,EAAE,EAAE;IACjD,EAAE,KAAK,EAAE,MAAM,EAAE,GAAG,EAAE,CAAC,CAAmB,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,EAAE;IACvD;QACE,KAAK,EAAE,UAAU;QACjB,GAAG,EAAE,CAAC,CAA0B,EAAE,EAAE,CAClC,CAAC,CAAC,QAAQ,KAAK,SAAS,CAAC,CAAC,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC,MAAM,KAAK,CAAC,CAAC,CAAC,CAAC,eAAe,CAAC,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC,IAAI,CAAC,IAAI,CAAC;KAC5G;IACD;QACE,KAAK,EAAE,WAAW;QAClB,GAAG,EAAE,CAAC,CAA2B,EAAE,EAAE,CACnC,CAAC,CAAC,SAAS,KAAK,SAAS,CAAC,CAAC,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,MAAM,KAAK,CAAC,CAAC,CAAC,CAAC,eAAe,CAAC,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,IAAI,CAAC,IAAI,CAAC;KAC/G;CACF,CAAC;AAEF,MAAM,MAAM,GAAG,CAAC,GAAW,EAAE,IAA0B,EAAY,EAAE,CAAC,CAAC,GAAG,CAAC,IAAI,IAAI,EAAE,CAAC,EAAE,GAAG,CAAC,CAAC;AAE7F,MAAM,UAAU,sBAAsB,CAAC,OAAgB;IACrD,MAAM,OAAO,GAAG,OAAO,CAAC,OAAO,CAAC,SAAS,CAAC,CAAC,WAAW,CAAC,iBAAiB,CAAC,CAAC;IAE1E,OAAO;SACJ,OAAO,CAAC,MAAM,CAAC;SACf,WAAW,CAAC,mEAAmE,CAAC;SAChF,MAAM,CAAC,YAAY,EAAE,wDAAwD,CAAC;SAC9E,MAAM,CAAC,KAAK,EAAE,OAAyB,EAAE,EAAE;QAC1C,MAAM,IAAI,GAAG,OAAO,CAAC,IAAI,EAAc,CAAC;QACxC,MAAM,MAAM,GAAG,iBAAiB,CAAC,EAAE,OAAO,EAAE,IAAI,CAAC,OAAO,EAAE,CAAC,CAAC;QAC5D,MAAM,QAAQ,GAAG,OAAO,CAAC,GAAG;YAC1B,CAAC,CAAC,MAAM,MAAM,CAAC,iBAAiB,CAAC,MAAM,MAAM,CAAC,aAAa,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC;YACzE,CAAC,CAAC,MAAM,MAAM,CAAC,YAAY,EAAE,CAAC;QAChC,UAAU,CAAC,QAAQ,EAAE,IAAI,EAAE;YACzB,OAAO,EAAE;gBACP,EAAE,MAAM,EAAE,IAAI,EAAE,GAAG,EAAE,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,EAAE,EAAE;gBAClC,EAAE,MAAM,EAAE,MAAM,EAAE,GAAG,EAAE,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,QAAQ,IAAI,CAAC,CAAC,IAAI,EAAE;gBACpD,EAAE,MAAM,EAAE,KAAK,EAAE,GAAG,EAAE,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,GAAG,EAAE;aACrC;YACD,IAAI,EAAE,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,GAAG;SACnB,CAAC,CAAC;IACL,CAAC,CAAC,CAAC;IAEL,OAAO;SACJ,OAAO,CAAC,UAAU,CAAC;SACnB,WAAW,CAAC,sDAAsD,CAAC;SACnE,MAAM,CAAC,KAAK,EAAE,EAAU,EAAE,EAAE;QAC3B,MAAM,IAAI,GAAG,OAAO,CAAC,IAAI,EAAc,CAAC;QACxC,MAAM,MAAM,GAAG,iBAAiB,CAAC,EAAE,OAAO,EAAE,IAAI,CAAC,OAAO,EAAE,CAAC,CAAC;QAC5D,MAAM,GAAG,GAAG,MAAM,MAAM,CAAC,iBAAiB,CAAC,EAAE,CAAC,CAAC;QAC/C,MAAM,CAAC,GAAG,MAAM,MAAM,CAAC,UAAU,CAAC,GAAG,CAAC,CAAC;QACvC,YAAY,CAAC,CAAC,EAAE,IAAI,EAAE,EAAE,MAAM,EAAE,kBAAkB,EAAE,IAAI,EAAE,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,GAAG,EAAE,CAAC,CAAC;IAC5E,CAAC,CAAC,CAAC;IAEL,OAAO;SACJ,OAAO,CAAC,aAAa,CAAC;SACtB,WAAW,CAAC,mEAAmE,CAAC;SAChF,MAAM,CAAC,eAAe,EAAE,UAAU,CAAC;SACnC,MAAM,CAAC,sBAAsB,EAAE,+CAA+C,CAAC;SAC/E,MAAM,CAAC,gBAAgB,EAAE,+BAA+B,CAAC;SACzD,MAAM,CAAC,cAAc,EAAE,6BAA6B,CAAC;SACrD,MAAM,CAAC,WAAW,EAAE,qBAAqB,CAAC;SAC1C,MAAM,CAAC,aAAa,EAAE,uBAAuB,CAAC;SAC9C,MAAM,CAAC,UAAU,EAAE,6CAA6C,CAAC;SACjE,MAAM,CAAC,WAAW,EAAE,0BAA0B,CAAC;SAC/C,MAAM,CAAC,uBAAuB,EAAE,mCAAmC,EAAE,MAAM,EAAE,EAAc,CAAC;SAC5F,MAAM,CAAC,0BAA0B,EAAE,sCAAsC,EAAE,MAAM,EAAE,EAAc,CAAC;SAClG,MAAM,CAAC,KAAK,EAAE,EAAU,EAAE,OAM1B,EAAE,EAAE;QACH,MAAM,IAAI,GAAG,OAAO,CAAC,IAAI,EAAc,CAAC;QACxC,MAAM,MAAM,GAAG,iBAAiB,CAAC,EAAE,OAAO,EAAE,IAAI,CAAC,OAAO,EAAE,CAAC,CAAC;QAC5D,IAAI,OAAO,CAAC,OAAO,KAAK,IAAI,IAAI,OAAO,CAAC,SAAS,KAAK,IAAI,EAAE,CAAC;YAC3D,MAAM,IAAI,eAAe,CAAC,2CAA2C,CAAC,CAAC;QACzE,CAAC;QACD,IAAI,OAAO,CAAC,MAAM,KAAK,IAAI,IAAI,OAAO,CAAC,OAAO,KAAK,IAAI,EAAE,CAAC;YACxD,MAAM,IAAI,eAAe,CAAC,wCAAwC,CAAC,CAAC;QACtE,CAAC;QACD,MAAM,GAAG,GAAG,MAAM,MAAM,CAAC,iBAAiB,CAAC,EAAE,CAAC,CAAC;QAC/C,MAAM,WAAW,GAAG,OAAO,CAAC,WAAW,KAAK,SAAS,CAAC,CAAC,CAAC,MAAM,gBAAgB,CAAC,OAAO,CAAC,WAAW,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC;QAChH,MAAM,IAAI,GAKN,EAAE,CAAC;QACP,IAAI,OAAO,CAAC,IAAI,KAAK,SAAS;YAAE,IAAI,CAAC,IAAI,GAAG,OAAO,CAAC,IAAI,CAAC;QACzD,IAAI,WAAW,KAAK,SAAS;YAAE,IAAI,CAAC,WAAW,GAAG,WAAW,CAAC;QAC9D,IAAI,OAAO,CAAC,KAAK,KAAK,SAAS;YAAE,IAAI,CAAC,KAAK,GAAG,OAAO,CAAC,KAAK,KAAK,MAAM,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,OAAO,CAAC,KAAK,CAAC;QAC9F,IAAI,OAAO,CAAC,GAAG,KAAK,SAAS;YAAE,IAAI,CAAC,GAAG,GAAG,OAAO,CAAC,GAAG,KAAK,MAAM,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,OAAO,CAAC,GAAG,CAAC;QACtF,IAAI,OAAO,CAAC,OAAO,KAAK,IAAI;YAAE,IAAI,CAAC,QAAQ,GAAG,IAAI,CAAC;QACnD,IAAI,OAAO,CAAC,SAAS,KAAK,IAAI;YAAE,IAAI,CAAC,QAAQ,GAAG,KAAK,CAAC;QACtD,IAAI,OAAO,CAAC,MAAM,KAAK,IAAI;YAAE,IAAI,CAAC,MAAM,GAAG,IAAI,CAAC;QAChD,IAAI,OAAO,CAAC,OAAO,KAAK,IAAI;YAAE,IAAI,CAAC,MAAM,GAAG,KAAK,CAAC;QAClD,IAAI,CAAC,OAAO,CAAC,WAAW,EAAE,MAAM,IAAI,CAAC,CAAC,GAAG,CAAC;YAAE,IAAI,CAAC,YAAY,GAAG,OAAO,CAAC,WAAW,CAAC;QACpF,IAAI,CAAC,OAAO,CAAC,cAAc,EAAE,MAAM,IAAI,CAAC,CAAC,GAAG,CAAC;YAAE,IAAI,CAAC,eAAe,GAAG,OAAO,CAAC,cAAc,CAAC;QAC7F,IAAI,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;YACnC,MAAM,IAAI,eAAe,CAAC,2KAA2K,CAAC,CAAC;QACzM,CAAC;QACD,MAAM,CAAC,GAAG,MAAM,MAAM,CAAC,aAAa,CAAC,GAAG,EAAE,IAAI,CAAC,CAAC;QAChD,YAAY,CAAC,CAAC,EAAE,IAAI,EAAE,EAAE,MAAM,EAAE,kBAAkB,EAAE,IAAI,EAAE,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,GAAG,EAAE,CAAC,CAAC;IAC5E,CAAC,CAAC,CAAC;IAEL,OAAO;SACJ,OAAO,CAAC,cAAc,CAAC;SACvB,WAAW,CAAC,sDAAsD,CAAC;SACnE,MAAM,CAAC,KAAK,EAAE,EAAU,EAAE,EAAE;QAC3B,MAAM,IAAI,GAAG,OAAO,CAAC,IAAI,EAAc,CAAC;QACxC,MAAM,MAAM,GAAG,iBAAiB,CAAC,EAAE,OAAO,EAAE,IAAI,CAAC,OAAO,EAAE,CAAC,CAAC;QAC5D,MAAM,GAAG,GAAG,MAAM,MAAM,CAAC,iBAAiB,CAAC,EAAE,CAAC,CAAC;QAC/C,MAAM,OAAO,GAAG,MAAM,MAAM,CAAC,kBAAkB,CAAC,GAAG,CAAC,CAAC;QACrD,UAAU,CAAC,OAAO,EAAE,IAAI,EAAE;YACxB,OAAO,EAAE;gBACP,EAAE,MAAM,EAAE,MAAM,EAAE,GAAG,EAAE,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,QAAQ,IAAI,CAAC,CAAC,IAAI,EAAE;gBACpD,EAAE,MAAM,EAAE,OAAO,EAAE,GAAG,EAAE,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,KAAK,IAAI,EAAE,EAAE;gBAC9C,EAAE,MAAM,EAAE,KAAK,EAAE,GAAG,EAAE,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,GAAG,EAAE;aACrC;YACD,IAAI,EAAE,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,GAAG;SACnB,CAAC,CAAC;IACL,CAAC,CAAC,CAAC;IAEL,OAAO;SACJ,OAAO,CAAC,aAAa,CAAC;SACtB,WAAW,CAAC,8FAA8F,CAAC;SAC3G,MAAM,CAAC,gBAAgB,EAAE,2BAA2B,EAAE,KAAK,CAAC;SAC5D,MAAM,CAAC,iBAAiB,EAAE,wEAAwE,CAAC;SACnG,MAAM,CAAC,KAAK,EAAE,EAAU,EAAE,OAA4C,EAAE,EAAE;QACzE,MAAM,IAAI,GAAG,OAAO,CAAC,IAAI,EAAc,CAAC;QACxC,MAAM,MAAM,GAAG,iBAAiB,CAAC,EAAE,OAAO,EAAE,IAAI,CAAC,OAAO,EAAE,CAAC,CAAC;QAC5D,IAAI,OAAO,CAAC,MAAM,KAAK,KAAK,IAAI,OAAO,CAAC,MAAM,KAAK,MAAM,EAAE,CAAC;YAC1D,MAAM,IAAI,eAAe,CAAC,oCAAoC,CAAC,CAAC;QAClE,CAAC;QACD,MAAM,GAAG,GAAG,MAAM,MAAM,CAAC,iBAAiB,CAAC,EAAE,CAAC,CAAC;QAC/C,MAAM,IAAI,GAAG,OAAO,CAAC,MAAM,KAAK,KAAK;YACnC,CAAC,CAAC,MAAM,MAAM,CAAC,gBAAgB,CAAC,GAAG,CAAC;YACpC,CAAC,CAAC,MAAM,MAAM,CAAC,iBAAiB,CAAC,GAAG,CAAC,CAAC;QACxC,IAAI,OAAO,CAAC,MAAM,KAAK,SAAS,IAAI,OAAO,CAAC,MAAM,KAAK,GAAG,EAAE,CAAC;YAC3D,aAAa,CAAC,OAAO,CAAC,MAAM,EAAE,IAAI,CAAC,CAAC;YACpC,IAAI,IAAI,CAAC,KAAK,KAAK,IAAI,EAAE,CAAC;gBACxB,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,GAAG,OAAO,CAAC,MAAM,IAAI,CAAC,CAAC;YAC9C,CAAC;iBAAM,IAAI,IAAI,CAAC,IAAI,KAAK,IAAI,EAAE,CAAC;gBAC9B,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,SAAS,IAAI,CAAC,MAAM,aAAa,OAAO,CAAC,MAAM,KAAK,CAAC,CAAC;YAC7E,CAAC;QACH,CAAC;aAAM,CAAC;YACN,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;YAC3B,IAAI,CAAC,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC;gBAAE,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;QACvD,CAAC;IACH,CAAC,CAAC,CAAC;IAEL,4DAA4D;IAE5D,MAAM,gBAAgB,GAAG,OAAO;SAC7B,OAAO,CAAC,mBAAmB,CAAC;SAC5B,WAAW,CAAC,iFAAiF,CAAC,CAAC;IAElG,gBAAgB;SACb,OAAO,CAAC,eAAe,CAAC;SACxB,WAAW,CAAC,wCAAwC,CAAC;SACrD,cAAc,CAAC,WAAW,EAAE,8EAA8E,CAAC;SAC3G,cAAc,CAAC,eAAe,EAAE,eAAe,CAAC;SAChD,MAAM,CAAC,kBAAkB,EAAE,sEAAsE,EAAE,MAAM,EAAE,EAAc,CAAC;SAC1H,MAAM,CAAC,mBAAmB,EAAE,mDAAmD,EAAE,MAAM,EAAE,EAAc,CAAC;SACxG,MAAM,CAAC,wBAAwB,EAAE,mDAAmD,CAAC;SACrF,MAAM,CAAC,yBAAyB,EAAE,qDAAqD,CAAC;SACxF,MAAM,CAAC,KAAK,EAAE,YAAoB,EAAE,OAIpC,EAAE,EAAE;QACH,MAAM,IAAI,GAAG,OAAO,CAAC,IAAI,EAAc,CAAC;QACxC,MAAM,MAAM,GAAG,iBAAiB,CAAC,EAAE,OAAO,EAAE,IAAI,CAAC,OAAO,EAAE,CAAC,CAAC;QAC5D,MAAM,UAAU,GAAG,MAAM,MAAM,CAAC,iBAAiB,CAAC,YAAY,CAAC,CAAC;QAChE,MAAM,QAAQ,GAAG,OAAO,CAAC,kBAAkB,KAAK,IAAI;YAClD,CAAC,CAAC,EAAE;YACJ,CAAC,CAAC,CAAC,OAAO,CAAC,OAAO,EAAE,MAAM,IAAI,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC,CAAC,SAAS,CAAC;QACrE,MAAM,SAAS,GAAG,OAAO,CAAC,mBAAmB,KAAK,IAAI;YACpD,CAAC,CAAC,EAAE;YACJ,CAAC,CAAC,CAAC,OAAO,CAAC,QAAQ,EAAE,MAAM,IAAI,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,QAAQ,CAAC,CAAC,CAAC,SAAS,CAAC;QACvE,MAAM,CAAC,GAAG,MAAM,MAAM,CAAC,0BAA0B,CAAC,UAAU,EAAE;YAC5D,EAAE,EAAE,OAAO,CAAC,EAAE;YACd,IAAI,EAAE,OAAO,CAAC,IAAI;YAClB,GAAG,CAAC,QAAQ,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,QAAQ,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;YAC/C,GAAG,CAAC,SAAS,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,SAAS,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;SAClD,CAAC,CAAC;QACH,YAAY,CAAC,CAAC,EAAE,IAAI,EAAE,EAAE,MAAM,EAAE,wBAAwB,EAAE,IAAI,EAAE,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC;IACjF,CAAC,CAAC,CAAC;IAEL,gBAAgB;SACb,OAAO,CAAC,gCAAgC,CAAC;SACzC,WAAW,CAAC,yFAAyF,CAAC;SACtG,MAAM,CAAC,eAAe,EAAE,UAAU,CAAC;SACnC,MAAM,CAAC,kBAAkB,EAAE,2CAA2C,EAAE,MAAM,EAAE,EAAc,CAAC;SAC/F,MAAM,CAAC,mBAAmB,EAAE,4CAA4C,EAAE,MAAM,EAAE,EAAc,CAAC;SACjG,MAAM,CAAC,wBAAwB,EAAE,0CAA0C,CAAC;SAC5E,MAAM,CAAC,yBAAyB,EAAE,2CAA2C,CAAC;SAC9E,MAAM,CAAC,mBAAmB,EAAE,4CAA4C,CAAC;SACzE,MAAM,CAAC,oBAAoB,EAAE,6CAA6C,CAAC;SAC3E,MAAM,CAAC,KAAK,EAAE,YAAoB,EAAE,UAAkB,EAAE,OAKxD,EAAE,EAAE;QACH,MAAM,IAAI,GAAG,OAAO,CAAC,IAAI,EAAc,CAAC;QACxC,MAAM,MAAM,GAAG,iBAAiB,CAAC,EAAE,OAAO,EAAE,IAAI,CAAC,OAAO,EAAE,CAAC,CAAC;QAC5D,MAAM,UAAU,GAAG,MAAM,MAAM,CAAC,iBAAiB,CAAC,YAAY,CAAC,CAAC;QAEhE,IAAI,QAAqC,CAAC;QAC1C,IAAI,OAAO,CAAC,cAAc,KAAK,IAAI;YAAE,QAAQ,GAAG,IAAI,CAAC;aAChD,IAAI,OAAO,CAAC,kBAAkB,KAAK,IAAI;YAAE,QAAQ,GAAG,EAAE,CAAC;aACvD,IAAI,CAAC,OAAO,CAAC,OAAO,EAAE,MAAM,IAAI,CAAC,CAAC,GAAG,CAAC;YAAE,QAAQ,GAAG,OAAO,CAAC,OAAO,CAAC;QAExE,IAAI,SAAsC,CAAC;QAC3C,IAAI,OAAO,CAAC,eAAe,KAAK,IAAI;YAAE,SAAS,GAAG,IAAI,CAAC;aAClD,IAAI,OAAO,CAAC,mBAAmB,KAAK,IAAI;YAAE,SAAS,GAAG,EAAE,CAAC;aACzD,IAAI,CAAC,OAAO,CAAC,QAAQ,EAAE,MAAM,IAAI,CAAC,CAAC,GAAG,CAAC;YAAE,SAAS,GAAG,OAAO,CAAC,QAAQ,CAAC;QAE3E,MAAM,IAAI,GAA+E,EAAE,CAAC;QAC5F,IAAI,OAAO,CAAC,IAAI,KAAK,SAAS;YAAE,IAAI,CAAC,IAAI,GAAG,OAAO,CAAC,IAAI,CAAC;QACzD,IAAI,QAAQ,KAAK,SAAS;YAAE,IAAI,CAAC,QAAQ,GAAG,QAAQ,CAAC;QACrD,IAAI,SAAS,KAAK,SAAS;YAAE,IAAI,CAAC,SAAS,GAAG,SAAS,CAAC;QAExD,MAAM,CAAC,GAAG,MAAM,MAAM,CAAC,6BAA6B,CAAC,UAAU,EAAE,UAAU,EAAE,IAAI,CAAC,CAAC;QACnF,YAAY,CAAC,CAAC,EAAE,IAAI,EAAE,EAAE,MAAM,EAAE,wBAAwB,EAAE,IAAI,EAAE,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC;IACjF,CAAC,CAAC,CAAC;IAEL,gBAAgB;SACb,OAAO,CAAC,gCAAgC,CAAC;SACzC,WAAW,CAAC,mEAAmE,CAAC;SAChF,MAAM,CAAC,KAAK,EAAE,YAAoB,EAAE,UAAkB,EAAE,EAAE;QACzD,MAAM,IAAI,GAAG,OAAO,CAAC,IAAI,EAAc,CAAC;QACxC,MAAM,MAAM,GAAG,iBAAiB,CAAC,EAAE,OAAO,EAAE,IAAI,CAAC,OAAO,EAAE,CAAC,CAAC;QAC5D,MAAM,UAAU,GAAG,MAAM,MAAM,CAAC,iBAAiB,CAAC,YAAY,CAAC,CAAC;QAChE,MAAM,kBAAkB,CAAC;YACvB,QAAQ,EAAE,6BAA6B,UAAU,kBAAkB,UAAU,4DAA4D;YACzI,GAAG,EAAE,IAAI,CAAC,GAAG;SACd,CAAC,CAAC;QACH,MAAM,MAAM,CAAC,6BAA6B,CAAC,UAAU,EAAE,UAAU,CAAC,CAAC;QACnE,IAAI,IAAI,CAAC,IAAI,KAAK,IAAI,EAAE,CAAC;YACvB,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,GAAG,IAAI,CAAC,SAAS,CAAC,EAAE,OAAO,EAAE,UAAU,EAAE,QAAQ,EAAE,UAAU,EAAE,OAAO,EAAE,IAAI,EAAE,CAAC,IAAI,CAAC,CAAC;QAC5G,CAAC;aAAM,IAAI,IAAI,CAAC,KAAK,KAAK,IAAI,EAAE,CAAC;YAC/B,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,GAAG,UAAU,IAAI,CAAC,CAAC;QAC1C,CAAC;aAAM,CAAC;YACN,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,8BAA8B,UAAU,kBAAkB,UAAU,KAAK,CAAC,CAAC;QAClG,CAAC;IACH,CAAC,CAAC,CAAC;IAEL,iEAAiE;IAEjE,MAAM,KAAK,GAAG,OAAO;SAClB,OAAO,CAAC,OAAO,CAAC;SAChB,WAAW,CAAC,+CAA+C,CAAC,CAAC;IAEhE,KAAK;SACF,OAAO,CAAC,eAAe,CAAC;SACxB,WAAW,CAAC,kGAAkG,CAAC;SAC/G,cAAc,CAAC,eAAe,EAAE,uBAAuB,CAAC;SACxD,cAAc,CAAC,eAAe,EAAE,2GAA2G,CAAC;SAC5I,MAAM,CAAC,UAAU,EAAE,2BAA2B,CAAC;SAC/C,MAAM,CAAC,WAAW,EAAE,0CAA0C,CAAC;SAC/D,MAAM,CAAC,WAAW,EAAE,qCAAqC,CAAC;SAC1D,MAAM,CAAC,YAAY,EAAE,uBAAuB,CAAC;SAC7C,MAAM,CAAC,gBAAgB,EAAE,uCAAuC,CAAC;SACjE,MAAM,CAAC,cAAc,EAAE,6EAA6E,EAAE,MAAM,EAAE,EAAc,CAAC;SAC7H,MAAM,CAAC,KAAK,EAAE,YAAoB,EAAE,OAAmB,EAAE,EAAE;QAC1D,MAAM,IAAI,GAAG,OAAO,CAAC,IAAI,EAAc,CAAC;QACxC,MAAM,MAAM,GAAG,iBAAiB,CAAC,EAAE,OAAO,EAAE,IAAI,CAAC,OAAO,EAAE,CAAC,CAAC;QAC5D,MAAM,UAAU,GAAG,MAAM,MAAM,CAAC,iBAAiB,CAAC,YAAY,CAAC,CAAC;QAChE,MAAM,IAAI,GAAG,cAAc,CAAC,OAAO,CAAC,CAAC;QACrC,MAAM,CAAC,GAAG,MAAM,MAAM,CAAC,eAAe,CAAC,UAAU,EAAE,IAAsC,CAAC,CAAC;QAC3F,YAAY,CAAC,CAAC,EAAE,IAAI,EAAE,EAAE,MAAM,EAAE,YAAY,EAAE,IAAI,EAAE,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC,CAAC;IACvE,CAAC,CAAC,CAAC;IAEL,KAAK;SACF,OAAO,CAAC,+BAA+B,CAAC;SACxC,WAAW,CAAC,4GAA4G,CAAC;SACzH,MAAM,CAAC,eAAe,EAAE,UAAU,CAAC;SACnC,MAAM,CAAC,UAAU,CAAC;SAClB,MAAM,CAAC,WAAW,CAAC;SACnB,MAAM,CAAC,WAAW,CAAC;SACnB,MAAM,CAAC,YAAY,CAAC;SACpB,MAAM,CAAC,gBAAgB,CAAC;SACxB,MAAM,CAAC,cAAc,EAAE,4CAA4C,EAAE,MAAM,EAAE,EAAc,CAAC;SAC5F,MAAM,CAAC,KAAK,EAAE,YAAoB,EAAE,SAAiB,EAAE,OAAiC,EAAE,EAAE;QAC3F,MAAM,IAAI,GAAG,OAAO,CAAC,IAAI,EAAc,CAAC;QACxC,MAAM,MAAM,GAAG,iBAAiB,CAAC,EAAE,OAAO,EAAE,IAAI,CAAC,OAAO,EAAE,CAAC,CAAC;QAC5D,MAAM,UAAU,GAAG,MAAM,MAAM,CAAC,iBAAiB,CAAC,YAAY,CAAC,CAAC;QAChE,MAAM,IAAI,GAAG,cAAc,CAAC,OAAO,CAAC,CAAC;QACrC,IAAI,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;YACnC,MAAM,IAAI,eAAe,CAAC,4HAA4H,CAAC,CAAC;QAC1J,CAAC;QACD,MAAM,CAAC,GAAG,MAAM,MAAM,CAAC,kBAAkB,CAAC,UAAU,EAAE,SAAS,EAAE,IAAI,CAAC,CAAC;QACvE,YAAY,CAAC,CAAC,EAAE,IAAI,EAAE,EAAE,MAAM,EAAE,YAAY,EAAE,IAAI,EAAE,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC,CAAC;IACvE,CAAC,CAAC,CAAC;IAEL,KAAK;SACF,OAAO,CAAC,+BAA+B,CAAC;SACxC,WAAW,CAAC,mCAAmC,CAAC;SAChD,cAAc,CAAC,uBAAuB,EAAE,gBAAgB,CAAC;SACzD,MAAM,CAAC,KAAK,EAAE,YAAoB,EAAE,SAAiB,EAAE,OAA4B,EAAE,EAAE;QACtF,MAAM,IAAI,GAAG,OAAO,CAAC,IAAI,EAAc,CAAC;QACxC,MAAM,MAAM,GAAG,iBAAiB,CAAC,EAAE,OAAO,EAAE,IAAI,CAAC,OAAO,EAAE,CAAC,CAAC;QAC5D,MAAM,UAAU,GAAG,MAAM,MAAM,CAAC,iBAAiB,CAAC,YAAY,CAAC,CAAC;QAChE,MAAM,CAAC,GAAG,MAAM,MAAM,CAAC,kBAAkB,CAAC,UAAU,EAAE,SAAS,EAAE,OAAO,CAAC,OAAO,CAAC,CAAC;QAClF,YAAY,CAAC,CAAC,EAAE,IAAI,EAAE,EAAE,MAAM,EAAE,YAAY,EAAE,IAAI,EAAE,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC,CAAC;IACvE,CAAC,CAAC,CAAC;IAEL,KAAK;SACF,OAAO,CAAC,6BAA6B,CAAC;SACtC,WAAW,CAAC,yHAAyH,CAAC;SACtI,MAAM,CAAC,uBAAuB,EAAE,6BAA6B,CAAC;SAC9D,MAAM,CAAC,UAAU,EAAE,mCAAmC,CAAC;SACvD,MAAM,CAAC,KAAK,EAAE,YAAoB,EAAE,SAAiB,EAAE,OAA6C,EAAE,EAAE;QACvG,MAAM,IAAI,GAAG,OAAO,CAAC,IAAI,EAAc,CAAC;QACxC,MAAM,MAAM,GAAG,iBAAiB,CAAC,EAAE,OAAO,EAAE,IAAI,CAAC,OAAO,EAAE,CAAC,CAAC;QAC5D,MAAM,UAAU,GAAG,MAAM,MAAM,CAAC,iBAAiB,CAAC,YAAY,CAAC,CAAC;QAChE,IAAI,OAAO,CAAC,MAAM,KAAK,SAAS,IAAI,OAAO,CAAC,KAAK,KAAK,IAAI,EAAE,CAAC;YAC3D,MAAM,IAAI,eAAe,CAAC,uCAAuC,CAAC,CAAC;QACrE,CAAC;QACD,MAAM,MAAM,GAAG,OAAO,CAAC,KAAK,KAAK,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,OAAO,CAAC,MAAM,CAAC;QAC9D,MAAM,CAAC,GAAG,MAAM,MAAM,CAAC,gBAAgB,CAAC,UAAU,EAAE,SAAS,EAAE,MAAM,CAAC,CAAC;QACvE,YAAY,CAAC,CAAC,EAAE,IAAI,EAAE,EAAE,MAAM,EAAE,YAAY,EAAE,IAAI,EAAE,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC,CAAC;IACvE,CAAC,CAAC,CAAC;IAEL,KAAK;SACF,OAAO,CAAC,+BAA+B,CAAC;SACxC,WAAW,CAAC,yDAAyD,CAAC;SACtE,MAAM,CAAC,KAAK,EAAE,YAAoB,EAAE,SAAiB,EAAE,EAAE;QACxD,MAAM,IAAI,GAAG,OAAO,CAAC,IAAI,EAAc,CAAC;QACxC,MAAM,MAAM,GAAG,iBAAiB,CAAC,EAAE,OAAO,EAAE,IAAI,CAAC,OAAO,EAAE,CAAC,CAAC;QAC5D,MAAM,UAAU,GAAG,MAAM,MAAM,CAAC,iBAAiB,CAAC,YAAY,CAAC,CAAC;QAChE,MAAM,kBAAkB,CAAC;YACvB,QAAQ,EAAE,wBAAwB,SAAS,kBAAkB,UAAU,6CAA6C;YACpH,GAAG,EAAE,IAAI,CAAC,GAAG;SACd,CAAC,CAAC;QACH,MAAM,MAAM,CAAC,kBAAkB,CAAC,UAAU,EAAE,SAAS,CAAC,CAAC;QACvD,IAAI,IAAI,CAAC,IAAI,KAAK,IAAI,EAAE,CAAC;YACvB,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,GAAG,IAAI,CAAC,SAAS,CAAC,EAAE,OAAO,EAAE,UAAU,EAAE,KAAK,EAAE,SAAS,EAAE,OAAO,EAAE,IAAI,EAAE,CAAC,IAAI,CAAC,CAAC;QACxG,CAAC;aAAM,IAAI,IAAI,CAAC,KAAK,KAAK,IAAI,EAAE,CAAC;YAC/B,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,GAAG,SAAS,IAAI,CAAC,CAAC;QACzC,CAAC;aAAM,CAAC;YACN,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,yBAAyB,SAAS,kBAAkB,UAAU,KAAK,CAAC,CAAC;QAC5F,CAAC;IACH,CAAC,CAAC,CAAC;AACP,CAAC"}
|
|
@@ -0,0 +1,61 @@
|
|
|
1
|
+
import { parseQuireUrl } from "@quire-io/api-client";
|
|
2
|
+
import { ValidationError } from "../errors.js";
|
|
3
|
+
import { createQuireClient } from "../quire-client.js";
|
|
4
|
+
function commonName(r) {
|
|
5
|
+
return r.nameText ?? r.name;
|
|
6
|
+
}
|
|
7
|
+
export function registerResolveCommand(program) {
|
|
8
|
+
program
|
|
9
|
+
.command("resolve <url>")
|
|
10
|
+
.description("Resolve a Quire URL into the typed resource (organization / project / task / chat / document / user).")
|
|
11
|
+
.action(async (url) => {
|
|
12
|
+
const root = program.opts();
|
|
13
|
+
const client = createQuireClient({ profile: root.profile });
|
|
14
|
+
const parsed = parseQuireUrl(url);
|
|
15
|
+
if (!parsed) {
|
|
16
|
+
throw new ValidationError(`Not a recognized Quire URL: "${url}"`);
|
|
17
|
+
}
|
|
18
|
+
let result;
|
|
19
|
+
switch (parsed.kind) {
|
|
20
|
+
case "organization":
|
|
21
|
+
result = { kind: "organization", resource: await client.getOrganizationById(parsed.orgId) };
|
|
22
|
+
break;
|
|
23
|
+
case "project":
|
|
24
|
+
result = { kind: "project", resource: await client.getProjectById(parsed.projectId) };
|
|
25
|
+
break;
|
|
26
|
+
case "task":
|
|
27
|
+
result = { kind: "task", resource: await client.getTaskByProjectAndId(parsed.projectId, parsed.taskId) };
|
|
28
|
+
break;
|
|
29
|
+
case "chat":
|
|
30
|
+
result = { kind: "chat", resource: await client.getChatByProjectAndId(parsed.projectId, parsed.chatId) };
|
|
31
|
+
break;
|
|
32
|
+
case "document":
|
|
33
|
+
result = { kind: "document", resource: await client.getDocumentByProjectAndId(parsed.projectId, parsed.docId) };
|
|
34
|
+
break;
|
|
35
|
+
case "user":
|
|
36
|
+
result = { kind: "user", resource: await client.getUserById(parsed.userId) };
|
|
37
|
+
break;
|
|
38
|
+
}
|
|
39
|
+
if (root.json === true) {
|
|
40
|
+
process.stdout.write(`${JSON.stringify(result)}\n`);
|
|
41
|
+
return;
|
|
42
|
+
}
|
|
43
|
+
if (root.quiet === true) {
|
|
44
|
+
process.stdout.write(`${result.resource.oid}\n`);
|
|
45
|
+
return;
|
|
46
|
+
}
|
|
47
|
+
const lines = [
|
|
48
|
+
`Kind ${result.kind}`,
|
|
49
|
+
`Name ${commonName(result.resource)}`,
|
|
50
|
+
];
|
|
51
|
+
const id = result.resource.id;
|
|
52
|
+
if (id !== undefined)
|
|
53
|
+
lines.push(`ID ${result.kind === "task" ? `#${id}` : String(id)}`);
|
|
54
|
+
lines.push(`OID ${result.resource.oid}`);
|
|
55
|
+
const resourceUrl = result.resource.url;
|
|
56
|
+
if (resourceUrl)
|
|
57
|
+
lines.push(`URL ${resourceUrl}`);
|
|
58
|
+
process.stdout.write(`${lines.join("\n")}\n`);
|
|
59
|
+
});
|
|
60
|
+
}
|
|
61
|
+
//# sourceMappingURL=resolve.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"resolve.js","sourceRoot":"","sources":["../../src/commands/resolve.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,130 @@
|
|
|
1
|
+
import { resolveColor } from "@quire-io/api-client";
|
|
2
|
+
import { ValidationError } from "../errors.js";
|
|
3
|
+
import { longColor, shortColor } from "../output/colors.js";
|
|
4
|
+
import { renderList, renderObject } from "../output/render.js";
|
|
5
|
+
import { createQuireClient } from "../quire-client.js";
|
|
6
|
+
import { confirmDestructive } from "../util/confirm.js";
|
|
7
|
+
function normalizeColor(input, required) {
|
|
8
|
+
if (input === undefined) {
|
|
9
|
+
if (required)
|
|
10
|
+
throw new ValidationError("--color is required.");
|
|
11
|
+
return undefined;
|
|
12
|
+
}
|
|
13
|
+
const code = resolveColor(input);
|
|
14
|
+
if (code === undefined) {
|
|
15
|
+
throw new ValidationError(`Color "${input}" is not a recognized palette name or code. Use a name like 'red'/'blue'/'green' or a 2-digit code '00'..'57'.`);
|
|
16
|
+
}
|
|
17
|
+
return code;
|
|
18
|
+
}
|
|
19
|
+
function parseStatusValue(input, label) {
|
|
20
|
+
const n = Number.parseInt(input, 10);
|
|
21
|
+
if (!Number.isInteger(n) || n < 0 || n > 100) {
|
|
22
|
+
throw new ValidationError(`${label} must be an integer 0-100; got "${input}"`);
|
|
23
|
+
}
|
|
24
|
+
return n;
|
|
25
|
+
}
|
|
26
|
+
const STATUS_FIELDS = [
|
|
27
|
+
{ label: "Name", get: (s) => s.name },
|
|
28
|
+
{ label: "Value", get: (s) => String(s.value) },
|
|
29
|
+
{ label: "Color", get: (s) => longColor(s.color) },
|
|
30
|
+
{ label: "OID", get: (s) => s.oid },
|
|
31
|
+
];
|
|
32
|
+
export function registerStatusCommand(program) {
|
|
33
|
+
const status = program.command("status").description("Quire workflow statuses.");
|
|
34
|
+
status
|
|
35
|
+
.command("list <project>")
|
|
36
|
+
.description("List custom workflow statuses on a project. <project> = OID, slug, or URL.")
|
|
37
|
+
.action(async (project) => {
|
|
38
|
+
const root = program.opts();
|
|
39
|
+
const client = createQuireClient({ profile: root.profile });
|
|
40
|
+
const oid = await client.resolveProjectOid(project);
|
|
41
|
+
const statuses = await client.listStatuses(oid);
|
|
42
|
+
renderList(statuses, root, {
|
|
43
|
+
columns: [
|
|
44
|
+
{ header: "VALUE", get: (s) => String(s.value) },
|
|
45
|
+
{ header: "NAME", get: (s) => s.name },
|
|
46
|
+
{ header: "COLOR", get: (s) => shortColor(s.color) },
|
|
47
|
+
{ header: "OID", get: (s) => s.oid ?? "" },
|
|
48
|
+
],
|
|
49
|
+
toId: (s) => s.oid ?? String(s.value),
|
|
50
|
+
});
|
|
51
|
+
});
|
|
52
|
+
status
|
|
53
|
+
.command("get <project> <value>")
|
|
54
|
+
.description("Show one status. <value> = numeric slot (0-100).")
|
|
55
|
+
.action(async (project, valueArg) => {
|
|
56
|
+
const root = program.opts();
|
|
57
|
+
const client = createQuireClient({ profile: root.profile });
|
|
58
|
+
const projectOid = await client.resolveProjectOid(project);
|
|
59
|
+
const value = parseStatusValue(valueArg, "<value>");
|
|
60
|
+
const s = await client.getStatus(projectOid, value);
|
|
61
|
+
renderObject(s, root, { fields: STATUS_FIELDS, toId: (s) => s.oid ?? String(s.value) });
|
|
62
|
+
});
|
|
63
|
+
status
|
|
64
|
+
.command("create <project>")
|
|
65
|
+
.description("Create a custom status on a project.")
|
|
66
|
+
.requiredOption("--name <name>", "Status name (required)")
|
|
67
|
+
.requiredOption("--value <n>", "Numeric value 0-100 (required)")
|
|
68
|
+
.requiredOption("--color <color>", "Color: name or 2-digit code (required)")
|
|
69
|
+
.action(async (project, cmdOpts) => {
|
|
70
|
+
const root = program.opts();
|
|
71
|
+
const client = createQuireClient({ profile: root.profile });
|
|
72
|
+
const projectOid = await client.resolveProjectOid(project);
|
|
73
|
+
const value = parseStatusValue(cmdOpts.value, "--value");
|
|
74
|
+
const color = normalizeColor(cmdOpts.color, true);
|
|
75
|
+
const s = await client.createStatus(projectOid, { name: cmdOpts.name, color, value });
|
|
76
|
+
renderObject(s, root, { fields: STATUS_FIELDS, toId: (s) => s.oid ?? String(s.value) });
|
|
77
|
+
});
|
|
78
|
+
status
|
|
79
|
+
.command("update <project> <value>")
|
|
80
|
+
.description("Update a status. <value> = current numeric value (use --new-value to change it).")
|
|
81
|
+
.option("--name <name>", "New name")
|
|
82
|
+
.option("--color <color>", "New color")
|
|
83
|
+
.option("--new-value <n>", "Move the status to a new numeric slot")
|
|
84
|
+
.action(async (project, valueArg, cmdOpts) => {
|
|
85
|
+
const root = program.opts();
|
|
86
|
+
const client = createQuireClient({ profile: root.profile });
|
|
87
|
+
const projectOid = await client.resolveProjectOid(project);
|
|
88
|
+
const value = parseStatusValue(valueArg, "<value>");
|
|
89
|
+
const color = normalizeColor(cmdOpts.color, false);
|
|
90
|
+
const newValue = cmdOpts.newValue !== undefined
|
|
91
|
+
? parseStatusValue(cmdOpts.newValue, "--new-value")
|
|
92
|
+
: undefined;
|
|
93
|
+
const body = {};
|
|
94
|
+
if (cmdOpts.name !== undefined)
|
|
95
|
+
body.name = cmdOpts.name;
|
|
96
|
+
if (color !== undefined)
|
|
97
|
+
body.color = color;
|
|
98
|
+
if (newValue !== undefined)
|
|
99
|
+
body.value = newValue;
|
|
100
|
+
if (Object.keys(body).length === 0) {
|
|
101
|
+
throw new ValidationError("`status update` requires at least one of --name / --color / --new-value.");
|
|
102
|
+
}
|
|
103
|
+
const s = await client.updateStatus(projectOid, value, body);
|
|
104
|
+
renderObject(s, root, { fields: STATUS_FIELDS, toId: (s) => s.oid ?? String(s.value) });
|
|
105
|
+
});
|
|
106
|
+
status
|
|
107
|
+
.command("delete <project> <value>")
|
|
108
|
+
.description("Delete a status from a project. Prompts unless --yes is set.")
|
|
109
|
+
.action(async (project, valueArg) => {
|
|
110
|
+
const root = program.opts();
|
|
111
|
+
const client = createQuireClient({ profile: root.profile });
|
|
112
|
+
const projectOid = await client.resolveProjectOid(project);
|
|
113
|
+
const value = parseStatusValue(valueArg, "<value>");
|
|
114
|
+
await confirmDestructive({
|
|
115
|
+
question: `Delete status ${value} from project ${projectOid}? Tasks that use it will need to be re-mapped.`,
|
|
116
|
+
yes: root.yes,
|
|
117
|
+
});
|
|
118
|
+
await client.deleteStatus(projectOid, value);
|
|
119
|
+
if (root.json === true) {
|
|
120
|
+
process.stdout.write(`${JSON.stringify({ project: projectOid, value, deleted: true })}\n`);
|
|
121
|
+
}
|
|
122
|
+
else if (root.quiet === true) {
|
|
123
|
+
process.stdout.write(`${value}\n`);
|
|
124
|
+
}
|
|
125
|
+
else {
|
|
126
|
+
process.stderr.write(`Deleted status ${value} from project ${projectOid}.\n`);
|
|
127
|
+
}
|
|
128
|
+
});
|
|
129
|
+
}
|
|
130
|
+
//# sourceMappingURL=status.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"status.js","sourceRoot":"","sources":["../../src/commands/status.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,143 @@
|
|
|
1
|
+
import { ValidationError } from "../errors.js";
|
|
2
|
+
import { renderList, renderObject } from "../output/render.js";
|
|
3
|
+
import { createQuireClient } from "../quire-client.js";
|
|
4
|
+
import { confirmDestructive } from "../util/confirm.js";
|
|
5
|
+
import { resolveTaskOid } from "../util/task-id.js";
|
|
6
|
+
const SUBLIST_FIELDS = [
|
|
7
|
+
{ label: "Name", get: (s) => s.nameText ?? s.name },
|
|
8
|
+
{ label: "ID", get: (s) => s.id },
|
|
9
|
+
{ label: "OID", get: (s) => s.oid },
|
|
10
|
+
{ label: "Description", get: (s) => s.descriptionText },
|
|
11
|
+
{ label: "Start", get: (s) => s.start },
|
|
12
|
+
{ label: "Due", get: (s) => s.due },
|
|
13
|
+
{ label: "URL", get: (s) => s.url },
|
|
14
|
+
];
|
|
15
|
+
export function registerSublistCommand(program) {
|
|
16
|
+
const sublist = program.command("sublist").description("Quire sublists.");
|
|
17
|
+
sublist
|
|
18
|
+
.command("list <project>")
|
|
19
|
+
.description("List sublists defined on a project. <project> = OID, slug, or URL.")
|
|
20
|
+
.action(async (project) => {
|
|
21
|
+
const root = program.opts();
|
|
22
|
+
const client = createQuireClient({ profile: root.profile });
|
|
23
|
+
const oid = await client.resolveProjectOid(project);
|
|
24
|
+
const sublists = await client.listSublists("project", oid);
|
|
25
|
+
renderList(sublists, root, {
|
|
26
|
+
columns: [
|
|
27
|
+
{ header: "ID", get: (s) => s.id },
|
|
28
|
+
{ header: "NAME", get: (s) => s.nameText ?? s.name },
|
|
29
|
+
{ header: "OID", get: (s) => s.oid },
|
|
30
|
+
],
|
|
31
|
+
toId: (s) => s.oid,
|
|
32
|
+
});
|
|
33
|
+
});
|
|
34
|
+
sublist
|
|
35
|
+
.command("get <oid>")
|
|
36
|
+
.description("Show one sublist.")
|
|
37
|
+
.action(async (oid) => {
|
|
38
|
+
const root = program.opts();
|
|
39
|
+
const client = createQuireClient({ profile: root.profile });
|
|
40
|
+
const s = await client.getSublist(oid);
|
|
41
|
+
renderObject(s, root, { fields: SUBLIST_FIELDS, toId: (s) => s.oid });
|
|
42
|
+
});
|
|
43
|
+
sublist
|
|
44
|
+
.command("create <project>")
|
|
45
|
+
.description("Create a sublist in a project.")
|
|
46
|
+
.requiredOption("--name <name>", "Sublist name (required)")
|
|
47
|
+
.option("--description <text>", "Sublist description")
|
|
48
|
+
.action(async (project, cmdOpts) => {
|
|
49
|
+
const root = program.opts();
|
|
50
|
+
const client = createQuireClient({ profile: root.profile });
|
|
51
|
+
const projectOid = await client.resolveProjectOid(project);
|
|
52
|
+
const s = await client.createSublist("project", projectOid, {
|
|
53
|
+
name: cmdOpts.name,
|
|
54
|
+
...(cmdOpts.description !== undefined ? { description: cmdOpts.description } : {}),
|
|
55
|
+
});
|
|
56
|
+
renderObject(s, root, { fields: SUBLIST_FIELDS, toId: (s) => s.oid });
|
|
57
|
+
});
|
|
58
|
+
sublist
|
|
59
|
+
.command("update <oid>")
|
|
60
|
+
.description("Update a sublist's fields.")
|
|
61
|
+
.option("--name <name>")
|
|
62
|
+
.option("--description <text>")
|
|
63
|
+
.option("--start <date>")
|
|
64
|
+
.option("--due <date>")
|
|
65
|
+
.option("--archive", "Archive the sublist")
|
|
66
|
+
.option("--unarchive", "Unarchive the sublist")
|
|
67
|
+
.action(async (oid, cmdOpts) => {
|
|
68
|
+
const root = program.opts();
|
|
69
|
+
const client = createQuireClient({ profile: root.profile });
|
|
70
|
+
if (cmdOpts.archive === true && cmdOpts.unarchive === true) {
|
|
71
|
+
throw new ValidationError("Cannot combine --archive and --unarchive.");
|
|
72
|
+
}
|
|
73
|
+
const body = {};
|
|
74
|
+
if (cmdOpts.name !== undefined)
|
|
75
|
+
body.name = cmdOpts.name;
|
|
76
|
+
if (cmdOpts.description !== undefined)
|
|
77
|
+
body.description = cmdOpts.description;
|
|
78
|
+
if (cmdOpts.start !== undefined)
|
|
79
|
+
body.start = cmdOpts.start;
|
|
80
|
+
if (cmdOpts.due !== undefined)
|
|
81
|
+
body.due = cmdOpts.due;
|
|
82
|
+
if (cmdOpts.archive === true)
|
|
83
|
+
body.archived = true;
|
|
84
|
+
if (cmdOpts.unarchive === true)
|
|
85
|
+
body.archived = false;
|
|
86
|
+
if (Object.keys(body).length === 0) {
|
|
87
|
+
throw new ValidationError("`sublist update` requires at least one of --name / --description / --start / --due / --archive / --unarchive.");
|
|
88
|
+
}
|
|
89
|
+
const s = await client.updateSublist(oid, body);
|
|
90
|
+
renderObject(s, root, { fields: SUBLIST_FIELDS, toId: (s) => s.oid });
|
|
91
|
+
});
|
|
92
|
+
sublist
|
|
93
|
+
.command("add-task <sublist-oid> <task>")
|
|
94
|
+
.description("Add a task to a sublist. <task> = OID, slug/#N, or URL.")
|
|
95
|
+
.action(async (sublistOid, taskInput) => {
|
|
96
|
+
const root = program.opts();
|
|
97
|
+
const client = createQuireClient({ profile: root.profile });
|
|
98
|
+
const taskOid = await resolveTaskOid(client, taskInput);
|
|
99
|
+
const s = await client.updateSublistMembership(sublistOid, [{ task: taskOid }]);
|
|
100
|
+
renderObject(s, root, { fields: SUBLIST_FIELDS, toId: (s) => s.oid });
|
|
101
|
+
});
|
|
102
|
+
sublist
|
|
103
|
+
.command("remove-task <sublist-oid> <task>")
|
|
104
|
+
.description("Remove a task from a sublist. <task> = OID, slug/#N, or URL.")
|
|
105
|
+
.action(async (sublistOid, taskInput) => {
|
|
106
|
+
const root = program.opts();
|
|
107
|
+
const client = createQuireClient({ profile: root.profile });
|
|
108
|
+
const taskOid = await resolveTaskOid(client, taskInput);
|
|
109
|
+
const s = await client.updateSublistMembership(sublistOid, [{ task: taskOid, exclude: true }]);
|
|
110
|
+
renderObject(s, root, { fields: SUBLIST_FIELDS, toId: (s) => s.oid });
|
|
111
|
+
});
|
|
112
|
+
sublist
|
|
113
|
+
.command("delete <oid>")
|
|
114
|
+
.description("Delete a sublist. Prompts for confirmation unless --yes is set.")
|
|
115
|
+
.action(async (oid) => {
|
|
116
|
+
const root = program.opts();
|
|
117
|
+
const client = createQuireClient({ profile: root.profile });
|
|
118
|
+
await confirmDestructive({
|
|
119
|
+
question: `Delete sublist ${oid}? Run \`quire sublist undo-remove ${oid}\` to restore.`,
|
|
120
|
+
yes: root.yes,
|
|
121
|
+
});
|
|
122
|
+
await client.deleteSublist(oid);
|
|
123
|
+
if (root.json === true) {
|
|
124
|
+
process.stdout.write(`${JSON.stringify({ oid, deleted: true })}\n`);
|
|
125
|
+
}
|
|
126
|
+
else if (root.quiet === true) {
|
|
127
|
+
process.stdout.write(`${oid}\n`);
|
|
128
|
+
}
|
|
129
|
+
else {
|
|
130
|
+
process.stderr.write(`Deleted sublist ${oid}.\n`);
|
|
131
|
+
}
|
|
132
|
+
});
|
|
133
|
+
sublist
|
|
134
|
+
.command("undo-remove <oid>")
|
|
135
|
+
.description("Restore a deleted sublist.")
|
|
136
|
+
.action(async (oid) => {
|
|
137
|
+
const root = program.opts();
|
|
138
|
+
const client = createQuireClient({ profile: root.profile });
|
|
139
|
+
const s = await client.undoRemoveSublist(oid);
|
|
140
|
+
renderObject(s, root, { fields: SUBLIST_FIELDS, toId: (s) => s.oid });
|
|
141
|
+
});
|
|
142
|
+
}
|
|
143
|
+
//# sourceMappingURL=sublist.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"sublist.js","sourceRoot":"","sources":["../../src/commands/sublist.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,108 @@
|
|
|
1
|
+
import { resolveColor } from "@quire-io/api-client";
|
|
2
|
+
import { ValidationError } from "../errors.js";
|
|
3
|
+
import { longColor, shortColor } from "../output/colors.js";
|
|
4
|
+
import { renderList, renderObject } from "../output/render.js";
|
|
5
|
+
import { createQuireClient } from "../quire-client.js";
|
|
6
|
+
import { confirmDestructive } from "../util/confirm.js";
|
|
7
|
+
function normalizeColor(input) {
|
|
8
|
+
if (input === undefined)
|
|
9
|
+
return undefined;
|
|
10
|
+
const code = resolveColor(input);
|
|
11
|
+
if (code === undefined) {
|
|
12
|
+
throw new ValidationError(`Color "${input}" is not a recognized palette name or code. Use a name like 'red'/'blue'/'green' or a 2-digit code '00'..'57'.`);
|
|
13
|
+
}
|
|
14
|
+
return code;
|
|
15
|
+
}
|
|
16
|
+
const TAG_FIELDS = [
|
|
17
|
+
{ label: "Name", get: (t) => t.nameText ?? t.name },
|
|
18
|
+
{ label: "Color", get: (t) => longColor(t.color) },
|
|
19
|
+
{ label: "OID", get: (t) => t.oid },
|
|
20
|
+
{ label: "URL", get: (t) => t.url },
|
|
21
|
+
];
|
|
22
|
+
export function registerTagCommand(program) {
|
|
23
|
+
const tag = program.command("tag").description("Quire tags.");
|
|
24
|
+
tag
|
|
25
|
+
.command("list <project>")
|
|
26
|
+
.description("List tags defined on a project. <project> = OID, slug, or URL.")
|
|
27
|
+
.action(async (project) => {
|
|
28
|
+
const root = program.opts();
|
|
29
|
+
const client = createQuireClient({ profile: root.profile });
|
|
30
|
+
const oid = await client.resolveProjectOid(project);
|
|
31
|
+
const tags = await client.listTags(oid);
|
|
32
|
+
renderList(tags, root, {
|
|
33
|
+
columns: [
|
|
34
|
+
{ header: "NAME", get: (t) => t.nameText ?? t.name },
|
|
35
|
+
{ header: "COLOR", get: (t) => shortColor(t.color) },
|
|
36
|
+
{ header: "OID", get: (t) => t.oid },
|
|
37
|
+
],
|
|
38
|
+
toId: (t) => t.oid,
|
|
39
|
+
});
|
|
40
|
+
});
|
|
41
|
+
tag
|
|
42
|
+
.command("get <oid>")
|
|
43
|
+
.description("Show one tag.")
|
|
44
|
+
.action(async (oid) => {
|
|
45
|
+
const root = program.opts();
|
|
46
|
+
const client = createQuireClient({ profile: root.profile });
|
|
47
|
+
const t = await client.getTag(oid);
|
|
48
|
+
renderObject(t, root, { fields: TAG_FIELDS, toId: (t) => t.oid });
|
|
49
|
+
});
|
|
50
|
+
tag
|
|
51
|
+
.command("create <project>")
|
|
52
|
+
.description("Create a tag in a project.")
|
|
53
|
+
.requiredOption("--name <name>", "Tag name (required)")
|
|
54
|
+
.option("--color <color>", "Color: name like 'red'/'blue' or 2-digit code '00'..'57'")
|
|
55
|
+
.action(async (project, cmdOpts) => {
|
|
56
|
+
const root = program.opts();
|
|
57
|
+
const client = createQuireClient({ profile: root.profile });
|
|
58
|
+
const projectOid = await client.resolveProjectOid(project);
|
|
59
|
+
const color = normalizeColor(cmdOpts.color);
|
|
60
|
+
const t = await client.createTag(projectOid, {
|
|
61
|
+
name: cmdOpts.name,
|
|
62
|
+
...(color !== undefined ? { color } : {}),
|
|
63
|
+
});
|
|
64
|
+
renderObject(t, root, { fields: TAG_FIELDS, toId: (t) => t.oid });
|
|
65
|
+
});
|
|
66
|
+
tag
|
|
67
|
+
.command("update <oid>")
|
|
68
|
+
.description("Update a tag's name and/or color.")
|
|
69
|
+
.option("--name <name>", "New name")
|
|
70
|
+
.option("--color <color>", "New color: name or 2-digit code")
|
|
71
|
+
.action(async (oid, cmdOpts) => {
|
|
72
|
+
const root = program.opts();
|
|
73
|
+
const client = createQuireClient({ profile: root.profile });
|
|
74
|
+
const color = normalizeColor(cmdOpts.color);
|
|
75
|
+
const body = {};
|
|
76
|
+
if (cmdOpts.name !== undefined)
|
|
77
|
+
body.name = cmdOpts.name;
|
|
78
|
+
if (color !== undefined)
|
|
79
|
+
body.color = color;
|
|
80
|
+
if (body.name === undefined && body.color === undefined) {
|
|
81
|
+
throw new ValidationError("`tag update` requires at least one of --name or --color.");
|
|
82
|
+
}
|
|
83
|
+
const t = await client.updateTag(oid, body);
|
|
84
|
+
renderObject(t, root, { fields: TAG_FIELDS, toId: (t) => t.oid });
|
|
85
|
+
});
|
|
86
|
+
tag
|
|
87
|
+
.command("delete <oid>")
|
|
88
|
+
.description("Delete a tag. Prompts for confirmation unless --yes is set.")
|
|
89
|
+
.action(async (oid) => {
|
|
90
|
+
const root = program.opts();
|
|
91
|
+
const client = createQuireClient({ profile: root.profile });
|
|
92
|
+
await confirmDestructive({
|
|
93
|
+
question: `Delete tag ${oid}? This removes the tag from every task that uses it.`,
|
|
94
|
+
yes: root.yes,
|
|
95
|
+
});
|
|
96
|
+
await client.deleteTag(oid);
|
|
97
|
+
if (root.json === true) {
|
|
98
|
+
process.stdout.write(`${JSON.stringify({ oid, deleted: true })}\n`);
|
|
99
|
+
}
|
|
100
|
+
else if (root.quiet === true) {
|
|
101
|
+
process.stdout.write(`${oid}\n`);
|
|
102
|
+
}
|
|
103
|
+
else {
|
|
104
|
+
process.stderr.write(`Deleted tag ${oid}.\n`);
|
|
105
|
+
}
|
|
106
|
+
});
|
|
107
|
+
}
|
|
108
|
+
//# sourceMappingURL=tag.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"tag.js","sourceRoot":"","sources":["../../src/commands/tag.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,YAAY,EAAE,MAAM,sBAAsB,CAAC;AAEpD,OAAO,EAAE,eAAe,EAAE,MAAM,cAAc,CAAC;AAE/C,OAAO,EAAE,SAAS,EAAE,UAAU,EAAE,MAAM,qBAAqB,CAAC;AAC5D,OAAO,EAAE,UAAU,EAAE,YAAY,EAAE,MAAM,qBAAqB,CAAC;AAC/D,OAAO,EAAE,iBAAiB,EAAE,MAAM,oBAAoB,CAAC;AACvD,OAAO,EAAE,kBAAkB,EAAE,MAAM,oBAAoB,CAAC;AAExD,SAAS,cAAc,CAAC,KAAyB;IAC/C,IAAI,KAAK,KAAK,SAAS;QAAE,OAAO,SAAS,CAAC;IAC1C,MAAM,IAAI,GAAG,YAAY,CAAC,KAAK,CAAC,CAAC;IACjC,IAAI,IAAI,KAAK,SAAS,EAAE,CAAC;QACvB,MAAM,IAAI,eAAe,CACvB,UAAU,KAAK,gHAAgH,CAChI,CAAC;IACJ,CAAC;IACD,OAAO,IAAI,CAAC;AACd,CAAC;AAED,MAAM,UAAU,GAAG;IACjB,EAAE,KAAK,EAAE,MAAM,EAAE,GAAG,EAAE,CAAC,CAAsC,EAAE,EAAE,CAAC,CAAC,CAAC,QAAQ,IAAI,CAAC,CAAC,IAAI,EAAE;IACxF,EAAE,KAAK,EAAE,OAAO,EAAE,GAAG,EAAE,CAAC,CAAqB,EAAE,EAAE,CAAC,SAAS,CAAC,CAAC,CAAC,KAAK,CAAC,EAAE;IACtE,EAAE,KAAK,EAAE,KAAK,EAAE,GAAG,EAAE,CAAC,CAAkB,EAAE,EAAE,CAAC,CAAC,CAAC,GAAG,EAAE;IACpD,EAAE,KAAK,EAAE,KAAK,EAAE,GAAG,EAAE,CAAC,CAAmB,EAAE,EAAE,CAAC,CAAC,CAAC,GAAG,EAAE;CACtD,CAAC;AAEF,MAAM,UAAU,kBAAkB,CAAC,OAAgB;IACjD,MAAM,GAAG,GAAG,OAAO,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC,WAAW,CAAC,aAAa,CAAC,CAAC;IAE9D,GAAG;SACA,OAAO,CAAC,gBAAgB,CAAC;SACzB,WAAW,CAAC,gEAAgE,CAAC;SAC7E,MAAM,CAAC,KAAK,EAAE,OAAe,EAAE,EAAE;QAChC,MAAM,IAAI,GAAG,OAAO,CAAC,IAAI,EAAc,CAAC;QACxC,MAAM,MAAM,GAAG,iBAAiB,CAAC,EAAE,OAAO,EAAE,IAAI,CAAC,OAAO,EAAE,CAAC,CAAC;QAC5D,MAAM,GAAG,GAAG,MAAM,MAAM,CAAC,iBAAiB,CAAC,OAAO,CAAC,CAAC;QACpD,MAAM,IAAI,GAAG,MAAM,MAAM,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC;QACxC,UAAU,CAAC,IAAI,EAAE,IAAI,EAAE;YACrB,OAAO,EAAE;gBACP,EAAE,MAAM,EAAE,MAAM,EAAE,GAAG,EAAE,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,QAAQ,IAAI,CAAC,CAAC,IAAI,EAAE;gBACpD,EAAE,MAAM,EAAE,OAAO,EAAE,GAAG,EAAE,CAAC,CAAC,EAAE,EAAE,CAAC,UAAU,CAAC,CAAC,CAAC,KAAK,CAAC,EAAE;gBACpD,EAAE,MAAM,EAAE,KAAK,EAAE,GAAG,EAAE,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,GAAG,EAAE;aACrC;YACD,IAAI,EAAE,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,GAAG;SACnB,CAAC,CAAC;IACL,CAAC,CAAC,CAAC;IAEL,GAAG;SACA,OAAO,CAAC,WAAW,CAAC;SACpB,WAAW,CAAC,eAAe,CAAC;SAC5B,MAAM,CAAC,KAAK,EAAE,GAAW,EAAE,EAAE;QAC5B,MAAM,IAAI,GAAG,OAAO,CAAC,IAAI,EAAc,CAAC;QACxC,MAAM,MAAM,GAAG,iBAAiB,CAAC,EAAE,OAAO,EAAE,IAAI,CAAC,OAAO,EAAE,CAAC,CAAC;QAC5D,MAAM,CAAC,GAAG,MAAM,MAAM,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC;QACnC,YAAY,CAAC,CAAC,EAAE,IAAI,EAAE,EAAE,MAAM,EAAE,UAAU,EAAE,IAAI,EAAE,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,GAAG,EAAE,CAAC,CAAC;IACpE,CAAC,CAAC,CAAC;IAEL,GAAG;SACA,OAAO,CAAC,kBAAkB,CAAC;SAC3B,WAAW,CAAC,4BAA4B,CAAC;SACzC,cAAc,CAAC,eAAe,EAAE,qBAAqB,CAAC;SACtD,MAAM,CAAC,iBAAiB,EAAE,0DAA0D,CAAC;SACrF,MAAM,CAAC,KAAK,EAAE,OAAe,EAAE,OAAyC,EAAE,EAAE;QAC3E,MAAM,IAAI,GAAG,OAAO,CAAC,IAAI,EAAc,CAAC;QACxC,MAAM,MAAM,GAAG,iBAAiB,CAAC,EAAE,OAAO,EAAE,IAAI,CAAC,OAAO,EAAE,CAAC,CAAC;QAC5D,MAAM,UAAU,GAAG,MAAM,MAAM,CAAC,iBAAiB,CAAC,OAAO,CAAC,CAAC;QAC3D,MAAM,KAAK,GAAG,cAAc,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC;QAC5C,MAAM,CAAC,GAAG,MAAM,MAAM,CAAC,SAAS,CAAC,UAAU,EAAE;YAC3C,IAAI,EAAE,OAAO,CAAC,IAAI;YAClB,GAAG,CAAC,KAAK,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;SAC1C,CAAC,CAAC;QACH,YAAY,CAAC,CAAC,EAAE,IAAI,EAAE,EAAE,MAAM,EAAE,UAAU,EAAE,IAAI,EAAE,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,GAAG,EAAE,CAAC,CAAC;IACpE,CAAC,CAAC,CAAC;IAEL,GAAG;SACA,OAAO,CAAC,cAAc,CAAC;SACvB,WAAW,CAAC,mCAAmC,CAAC;SAChD,MAAM,CAAC,eAAe,EAAE,UAAU,CAAC;SACnC,MAAM,CAAC,iBAAiB,EAAE,iCAAiC,CAAC;SAC5D,MAAM,CAAC,KAAK,EAAE,GAAW,EAAE,OAA0C,EAAE,EAAE;QACxE,MAAM,IAAI,GAAG,OAAO,CAAC,IAAI,EAAc,CAAC;QACxC,MAAM,MAAM,GAAG,iBAAiB,CAAC,EAAE,OAAO,EAAE,IAAI,CAAC,OAAO,EAAE,CAAC,CAAC;QAC5D,MAAM,KAAK,GAAG,cAAc,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC;QAC5C,MAAM,IAAI,GAAsC,EAAE,CAAC;QACnD,IAAI,OAAO,CAAC,IAAI,KAAK,SAAS;YAAE,IAAI,CAAC,IAAI,GAAG,OAAO,CAAC,IAAI,CAAC;QACzD,IAAI,KAAK,KAAK,SAAS;YAAE,IAAI,CAAC,KAAK,GAAG,KAAK,CAAC;QAC5C,IAAI,IAAI,CAAC,IAAI,KAAK,SAAS,IAAI,IAAI,CAAC,KAAK,KAAK,SAAS,EAAE,CAAC;YACxD,MAAM,IAAI,eAAe,CAAC,0DAA0D,CAAC,CAAC;QACxF,CAAC;QACD,MAAM,CAAC,GAAG,MAAM,MAAM,CAAC,SAAS,CAAC,GAAG,EAAE,IAAI,CAAC,CAAC;QAC5C,YAAY,CAAC,CAAC,EAAE,IAAI,EAAE,EAAE,MAAM,EAAE,UAAU,EAAE,IAAI,EAAE,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,GAAG,EAAE,CAAC,CAAC;IACpE,CAAC,CAAC,CAAC;IAEL,GAAG;SACA,OAAO,CAAC,cAAc,CAAC;SACvB,WAAW,CAAC,6DAA6D,CAAC;SAC1E,MAAM,CAAC,KAAK,EAAE,GAAW,EAAE,EAAE;QAC5B,MAAM,IAAI,GAAG,OAAO,CAAC,IAAI,EAAc,CAAC;QACxC,MAAM,MAAM,GAAG,iBAAiB,CAAC,EAAE,OAAO,EAAE,IAAI,CAAC,OAAO,EAAE,CAAC,CAAC;QAC5D,MAAM,kBAAkB,CAAC;YACvB,QAAQ,EAAE,cAAc,GAAG,sDAAsD;YACjF,GAAG,EAAE,IAAI,CAAC,GAAG;SACd,CAAC,CAAC;QACH,MAAM,MAAM,CAAC,SAAS,CAAC,GAAG,CAAC,CAAC;QAC5B,IAAI,IAAI,CAAC,IAAI,KAAK,IAAI,EAAE,CAAC;YACvB,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,GAAG,IAAI,CAAC,SAAS,CAAC,EAAE,GAAG,EAAE,OAAO,EAAE,IAAI,EAAE,CAAC,IAAI,CAAC,CAAC;QACtE,CAAC;aAAM,IAAI,IAAI,CAAC,KAAK,KAAK,IAAI,EAAE,CAAC;YAC/B,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,GAAG,GAAG,IAAI,CAAC,CAAC;QACnC,CAAC;aAAM,CAAC;YACN,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,eAAe,GAAG,KAAK,CAAC,CAAC;QAChD,CAAC;IACH,CAAC,CAAC,CAAC;AACP,CAAC"}
|