harvask-cli 0.4.0 → 0.6.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/README.md +36 -3
- package/dist/api-client.js +23 -9
- package/dist/api-client.js.map +1 -1
- package/dist/commands/attachment/index.js +11 -1
- package/dist/commands/attachment/index.js.map +1 -1
- package/dist/commands/project/builds.js +13 -9
- package/dist/commands/project/builds.js.map +1 -1
- package/dist/commands/project/index.js +2 -1
- package/dist/commands/project/index.js.map +1 -1
- package/dist/commands/scheduled-task/index.js +290 -47
- package/dist/commands/scheduled-task/index.js.map +1 -1
- package/dist/commands/storage/index.js +17 -1
- package/dist/commands/storage/index.js.map +1 -1
- package/dist/commands/workspace/batch.js +65 -0
- package/dist/commands/workspace/batch.js.map +1 -0
- package/dist/commands/workspace/collect.js +368 -0
- package/dist/commands/workspace/collect.js.map +1 -0
- package/dist/commands/workspace/index.js +240 -0
- package/dist/commands/workspace/index.js.map +1 -0
- package/dist/errors/hint-map.js +34 -0
- package/dist/errors/hint-map.js.map +1 -1
- package/dist/registry.js +2 -0
- package/dist/registry.js.map +1 -1
- package/dist/utils/upload.js +29 -0
- package/dist/utils/upload.js.map +1 -1
- package/package.json +1 -1
- package/skills/harvask/AGENTS.md +18 -2
- package/skills/harvask/GEMINI.md +18 -2
- package/skills/harvask/SKILL.md +18 -2
- package/skills/harvask/migration.md +72 -0
package/README.md
CHANGED
|
@@ -78,17 +78,21 @@ harvask milestone list -p PRJ
|
|
|
78
78
|
harvask calendar list --from 2026-06-01 --to 2026-06-30
|
|
79
79
|
harvask user search alice
|
|
80
80
|
harvask file search -p PRJ "screenshot"
|
|
81
|
-
harvask storage upload -p PRJ --file ./report.pdf
|
|
81
|
+
harvask storage upload -p PRJ --file ./report.pdf --on-conflict overwrite
|
|
82
|
+
harvask scheduled-task execute -p PRJ 7 # run a recurring task now
|
|
83
|
+
harvask workspace push ./legacy-app -p PRJ --dest legacy --dry-run # plan the migration
|
|
82
84
|
harvask api GET projects # escape hatch
|
|
83
85
|
```
|
|
84
86
|
|
|
85
87
|
Command groups: `project`, `issue` (+ `comment`/`todo`/`memory`/`dependency`/
|
|
86
88
|
`bulk-create`/`bulk-update`), `wiki`, `global-wiki`, `note`, `milestone`,
|
|
87
89
|
`calendar`, `user`, `workflow`, `scheduled-task`, `chat`, `file`, `storage`,
|
|
88
|
-
`attachment`, `site-credential`, `preview-config`, `skill`, plus
|
|
90
|
+
`workspace`, `attachment`, `site-credential`, `preview-config`, `skill`, plus
|
|
89
91
|
`login`/`logout`/`whoami` and the `api` escape hatch.
|
|
90
92
|
|
|
91
93
|
- `-p, --project <key|id>` accepts a project key (`PRJ`) or numeric id.
|
|
94
|
+
- `project create --key` is optional — without it the server derives a unique
|
|
95
|
+
key from `--name`.
|
|
92
96
|
- `--content` / `--description` accept a literal string, `@file`, or `-` (stdin).
|
|
93
97
|
- JSON options (`--deliverable`, `--definition`, `--items`, …) accept inline
|
|
94
98
|
JSON, `@file.json`, or `-` (stdin). Invalid JSON is rejected before any API call.
|
|
@@ -134,6 +138,34 @@ harvask issue update -p PRJ PRJ-1 --deliverable null
|
|
|
134
138
|
`--raw` (unformatted), `--profile <tenant>`, `--no-color`. They work before or
|
|
135
139
|
after the subcommand (e.g. `harvask issue list -p PRJ --json`).
|
|
136
140
|
|
|
141
|
+
### Migrating a local project (`workspace push`)
|
|
142
|
+
|
|
143
|
+
`workspace push` sends a local directory to the project's AI workspace (Web:
|
|
144
|
+
Files tab; AI sessions: `~/work`), keeping the directory structure.
|
|
145
|
+
|
|
146
|
+
```bash
|
|
147
|
+
harvask workspace push ./legacy-app -p PRJ --dest legacy --dry-run # plan only, sends nothing
|
|
148
|
+
harvask workspace push ./legacy-app -p PRJ --dest legacy --yes # do it
|
|
149
|
+
```
|
|
150
|
+
|
|
151
|
+
- `.env*` and `.git/` are **never** uploaded and cannot be re-enabled — the
|
|
152
|
+
workspace is visible to every project member. `node_modules/`, `vendor/`,
|
|
153
|
+
`dist/`, `build/`, `__pycache__/`, `.venv/`, `.DS_Store` are excluded by
|
|
154
|
+
default (`--include-ignored`, or `--include <glob>` for one path;
|
|
155
|
+
`--exclude <glob>` wins over both). In a git repository, `.gitignore` decides
|
|
156
|
+
the rest — the CLI lets `git ls-files` enumerate rather than parsing it.
|
|
157
|
+
- Same relative path = overwrite, with no version history, so overwriting
|
|
158
|
+
requires `--yes` in a non-interactive shell. `--dry-run` never does.
|
|
159
|
+
- Blocked extensions (`.exe .bat .cmd .ps1 .vbs .com .msi .dll`) are reported
|
|
160
|
+
under `skipped`, not treated as an error. `.sh` is allowed.
|
|
161
|
+
- Pushing into `apps/` or `canvas/` is refused without `--force`: mini-app
|
|
162
|
+
sources with their SQLite data and Canvas documents live there.
|
|
163
|
+
- Requests are batched (20 files and 200MB each, `--max-batch-bytes` to lower).
|
|
164
|
+
Batches are **not** atomic: if one fails, the result JSON lists `remaining`
|
|
165
|
+
and re-running the same command resumes.
|
|
166
|
+
- **409 `workspace_session_active`** means a mini-app / browser-agent session is
|
|
167
|
+
live; its sync would roll the upload back. End the session — do not retry.
|
|
168
|
+
|
|
137
169
|
Run `harvask --help` and `harvask <command> --help` for the full reference.
|
|
138
170
|
|
|
139
171
|
## Output & exit codes
|
|
@@ -173,7 +205,8 @@ to `src/registry.ts`.
|
|
|
173
205
|
## Agent skill
|
|
174
206
|
|
|
175
207
|
`skills/harvask/SKILL.md` documents the discover → fetch → act workflow for
|
|
176
|
-
coding agents and is shipped with the package
|
|
208
|
+
coding agents and is shipped with the package (alongside `migration.md`, the
|
|
209
|
+
procedure for moving an existing local project into a harvask project). `npm link` only installs the
|
|
177
210
|
`harvask` command — to make Claude Code discover the skill, install it:
|
|
178
211
|
|
|
179
212
|
```bash
|
package/dist/api-client.js
CHANGED
|
@@ -24,12 +24,19 @@ export class HarvaskApiClient {
|
|
|
24
24
|
* テナントドメインと一致している必要がある(本番は https://{tenant}/api、
|
|
25
25
|
* 開発は /etc/hosts で {tenant} を 127.0.0.1 に向けて http://{tenant}:port/api)。
|
|
26
26
|
*/
|
|
27
|
-
getHeaders(isFormData = false) {
|
|
28
|
-
const headers = {
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
27
|
+
getHeaders(isFormData = false, extra) {
|
|
28
|
+
const headers = {};
|
|
29
|
+
// 追加ヘッダーを先に置き、認証系で必ず上書きする(呼び出し側が誤って潰せないように)。
|
|
30
|
+
for (const [key, value] of Object.entries(extra ?? {})) {
|
|
31
|
+
headers[key] = value;
|
|
32
|
+
}
|
|
33
|
+
headers.Accept = 'application/json';
|
|
34
|
+
headers.Authorization = `Bearer ${this.config.token}`;
|
|
35
|
+
if (isFormData) {
|
|
36
|
+
// multipart は undici が boundary 付きで付与する。明示すると boundary が落ちて壊れる。
|
|
37
|
+
delete headers['Content-Type'];
|
|
38
|
+
}
|
|
39
|
+
else {
|
|
33
40
|
headers['Content-Type'] = 'application/json';
|
|
34
41
|
}
|
|
35
42
|
return headers;
|
|
@@ -48,7 +55,7 @@ export class HarvaskApiClient {
|
|
|
48
55
|
const timeoutId = setTimeout(() => controller.abort(), requestTimeout);
|
|
49
56
|
const response = await fetch(url, {
|
|
50
57
|
method,
|
|
51
|
-
headers: this.getHeaders(options?.isFormData),
|
|
58
|
+
headers: this.getHeaders(options?.isFormData, options?.headers),
|
|
52
59
|
body: options?.isFormData
|
|
53
60
|
? body
|
|
54
61
|
: body
|
|
@@ -140,9 +147,16 @@ export class HarvaskApiClient {
|
|
|
140
147
|
}
|
|
141
148
|
/**
|
|
142
149
|
* マルチパートPOST(ファイルアップロード用)
|
|
150
|
+
*
|
|
151
|
+
* 既定 120 秒。数十〜数百 MB を 1 リクエストで送る呼び出し(workspace push のバッチ)は
|
|
152
|
+
* 上り帯域次第で固定値では必ず足りなくなるため、options でサイズに応じて伸ばせるようにする。
|
|
143
153
|
*/
|
|
144
|
-
async postMultipart(endpoint, formData) {
|
|
145
|
-
return this.request('POST', endpoint, formData, {
|
|
154
|
+
async postMultipart(endpoint, formData, options) {
|
|
155
|
+
return this.request('POST', endpoint, formData, {
|
|
156
|
+
...options,
|
|
157
|
+
isFormData: true,
|
|
158
|
+
timeout: options?.timeout ?? 120000,
|
|
159
|
+
});
|
|
146
160
|
}
|
|
147
161
|
/**
|
|
148
162
|
* バイナリGET(ファイルダウンロード用)。{buffer, contentType, filename} を返す。
|
package/dist/api-client.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"api-client.js","sourceRoot":"","sources":["../src/api-client.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;GAYG;
|
|
1
|
+
{"version":3,"file":"api-client.js","sourceRoot":"","sources":["../src/api-client.ts"],"names":[],"mappings":"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"}
|
|
@@ -21,12 +21,16 @@ export const attachmentModule = {
|
|
|
21
21
|
.requiredOption('--type <type>', `attachable type (${ATTACHABLE_TYPES.join('|')})`)
|
|
22
22
|
.option('--id <attachableId>', 'attachable id (required for issue/comment)', parseIntArg)
|
|
23
23
|
.option('-p, --project <key|id>', 'project (required for issue/comment)')
|
|
24
|
+
.option('--chat-id <chatId>', 'chat id (required for type=chat_message)', parseIntArg)
|
|
24
25
|
.action(async (opts) => {
|
|
25
26
|
if (!ATTACHABLE_TYPES.includes(opts.type)) {
|
|
26
27
|
throw new ValidationError(`--type must be one of: ${ATTACHABLE_TYPES.join(', ')}`);
|
|
27
28
|
}
|
|
28
29
|
const client = ctx.getApiClient();
|
|
29
30
|
const fields = { attachable_type: opts.type };
|
|
31
|
+
// chat_message だけ対象をヘッダー(X-Chat-Id)で指定する API 仕様。
|
|
32
|
+
// 本文のフィールドでは受け取られず、無いと 422 missing_chat_id になる。
|
|
33
|
+
const headers = {};
|
|
30
34
|
if (opts.type === 'issue' || opts.type === 'comment') {
|
|
31
35
|
if (opts.id === undefined)
|
|
32
36
|
throw new ValidationError(`--id is required for type=${opts.type}`);
|
|
@@ -36,8 +40,14 @@ export const attachmentModule = {
|
|
|
36
40
|
fields.attachable_id = opts.id;
|
|
37
41
|
fields.project_id = pid;
|
|
38
42
|
}
|
|
43
|
+
else {
|
|
44
|
+
if (opts.chatId === undefined) {
|
|
45
|
+
throw new ValidationError('--chat-id is required for type=chat_message');
|
|
46
|
+
}
|
|
47
|
+
headers['X-Chat-Id'] = String(opts.chatId);
|
|
48
|
+
}
|
|
39
49
|
const form = buildFileFormData(opts.file, fields);
|
|
40
|
-
const result = await client.postMultipart(`${API_NS}/attachments/upload`, form);
|
|
50
|
+
const result = await client.postMultipart(`${API_NS}/attachments/upload`, form, { headers });
|
|
41
51
|
printOutput(result, ctx.out);
|
|
42
52
|
});
|
|
43
53
|
at.command('download')
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/commands/attachment/index.ts"],"names":[],"mappings":"AAAA;;GAEG;AAKH,OAAO,EAAE,eAAe,EAAE,MAAM,aAAa,CAAC;AAC9C,OAAO,EAAE,gBAAgB,EAAE,MAAM,iCAAiC,CAAC;AACnE,OAAO,EAAE,WAAW,EAAE,MAAM,uBAAuB,CAAC;AACpD,OAAO,EAAE,eAAe,EAAE,MAAM,uBAAuB,CAAC;AACxD,OAAO,EAAE,WAAW,EAAE,MAAM,sBAAsB,CAAC;AACnD,OAAO,EAAE,iBAAiB,EAAE,MAAM,uBAAuB,CAAC;AAC1D,OAAO,EAAE,QAAQ,EAAE,MAAM,yBAAyB,CAAC;AACnD,OAAO,EAAE,MAAM,EAAE,MAAM,mBAAmB,CAAC;AAE3C,MAAM,CAAC,MAAM,gBAAgB,GAAG,CAAC,OAAO,EAAE,SAAS,EAAE,cAAc,CAAU,CAAC;AAE9E,MAAM,CAAC,MAAM,gBAAgB,GAAmB;IAC9C,IAAI,EAAE,YAAY;IAClB,QAAQ,EAAE,6BAA6B;IACvC,QAAQ,CAAC,OAAgB,EAAE,GAAmB;QAC5C,MAAM,EAAE,GAAG,OAAO,CAAC,OAAO,CAAC,YAAY,CAAC,CAAC,WAAW,CAAC,+BAA+B,CAAC,CAAC;QAEtF,EAAE,CAAC,OAAO,CAAC,QAAQ,CAAC;aACjB,WAAW,CAAC,kCAAkC,CAAC;aAC/C,cAAc,CAAC,eAAe,EAAE,iBAAiB,CAAC;aAClD,cAAc,CAAC,eAAe,EAAE,oBAAoB,gBAAgB,CAAC,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC;aAClF,MAAM,CAAC,qBAAqB,EAAE,4CAA4C,EAAE,WAAW,CAAC;aACxF,MAAM,CAAC,wBAAwB,EAAE,sCAAsC,CAAC;aACxE,MAAM,CAAC,KAAK,EAAE,IAAI,EAAE,EAAE;YACrB,IAAI,CAAC,gBAAgB,CAAC,QAAQ,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC;gBAC1C,MAAM,IAAI,eAAe,CAAC,0BAA0B,gBAAgB,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;YACrF,CAAC;YACD,MAAM,MAAM,GAAG,GAAG,CAAC,YAAY,EAAE,CAAC;YAClC,MAAM,MAAM,GAAgD,EAAE,eAAe,EAAE,IAAI,CAAC,IAAI,EAAE,CAAC;YAC3F,IAAI,IAAI,CAAC,IAAI,KAAK,OAAO,IAAI,IAAI,CAAC,IAAI,KAAK,SAAS,EAAE,CAAC;gBACrD,IAAI,IAAI,CAAC,EAAE,KAAK,SAAS;oBAAE,MAAM,IAAI,eAAe,CAAC,6BAA6B,IAAI,CAAC,IAAI,EAAE,CAAC,CAAC;gBAC/F,IAAI,IAAI,CAAC,OAAO,KAAK,SAAS;oBAAE,MAAM,IAAI,eAAe,CAAC,qCAAqC,IAAI,CAAC,IAAI,EAAE,CAAC,CAAC;gBAC5G,MAAM,GAAG,GAAG,MAAM,gBAAgB,CAAC,MAAM,EAAE,eAAe,CAAC,IAAI,CAAC,OAAO,CAAC,IAAI,EAAE,CAAC,CAAC;gBAChF,MAAM,CAAC,aAAa,GAAG,IAAI,CAAC,EAAE,CAAC;gBAC/B,MAAM,CAAC,UAAU,GAAG,GAAG,CAAC;YAC1B,CAAC;YACD,MAAM,IAAI,GAAG,iBAAiB,CAAC,IAAI,CAAC,IAAI,EAAE,MAAM,CAAC,CAAC;YAClD,MAAM,MAAM,GAAG,MAAM,MAAM,CAAC,aAAa,CAAC,GAAG,MAAM,qBAAqB,EAAE,IAAI,CAAC,CAAC;
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/commands/attachment/index.ts"],"names":[],"mappings":"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"}
|
|
@@ -38,19 +38,23 @@ export function buildProjectCreateCall(a) {
|
|
|
38
38
|
if (a.name.length > 255) {
|
|
39
39
|
throw new ValidationError('name must be <= 255 characters');
|
|
40
40
|
}
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
|
|
41
|
+
// key は任意。空文字で送るとサーバーの alpha_num で 422 になるので、その場合は未指定と同じ扱いにする。
|
|
42
|
+
const key = a.key?.trim();
|
|
43
|
+
if (key !== undefined && key !== '') {
|
|
44
|
+
if (key.length > 10) {
|
|
45
|
+
throw new ValidationError('key must be <= 10 characters');
|
|
46
|
+
}
|
|
47
|
+
if (!/^[A-Za-z0-9]+$/.test(key)) {
|
|
48
|
+
throw new ValidationError('key must be alphanumeric (A-Z, 0-9)');
|
|
49
|
+
}
|
|
49
50
|
}
|
|
50
51
|
if (a.status && !PROJECT_STATUSES.includes(a.status)) {
|
|
51
52
|
throw new ValidationError(`status must be one of: ${PROJECT_STATUSES.join(', ')}`);
|
|
52
53
|
}
|
|
53
|
-
const body = { name: a.name.trim()
|
|
54
|
+
const body = { name: a.name.trim() };
|
|
55
|
+
if (key !== undefined && key !== '') {
|
|
56
|
+
body.key = key;
|
|
57
|
+
}
|
|
54
58
|
if (a.description !== undefined) {
|
|
55
59
|
body.description = a.description;
|
|
56
60
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"builds.js","sourceRoot":"","sources":["../../../src/commands/project/builds.ts"],"names":[],"mappings":"AAAA;;GAEG;AAGH,OAAO,EAAE,eAAe,EAAE,MAAM,uBAAuB,CAAC;AACxD,OAAO,EAAE,MAAM,EAAE,MAAM,mBAAmB,CAAC;AAE3C,MAAM,CAAC,MAAM,gBAAgB,GAAG,CAAC,QAAQ,EAAE,WAAW,EAAE,UAAU,EAAE,SAAS,CAAU,CAAC;AACxF,MAAM,CAAC,MAAM,aAAa,GAAG,CAAC,OAAO,EAAE,QAAQ,EAAE,OAAO,CAAU,CAAC;AAEnE,MAAM,IAAI,GAAG,GAAG,MAAM,WAAW,CAAC;AASlC,MAAM,UAAU,oBAAoB,CAAC,CAAkB;IACrD,MAAM,CAAC,GAA2B,EAAE,CAAC;IACrC,IAAI,CAAC,CAAC,MAAM,EAAE,CAAC;QACb,IAAI,CAAC,gBAAgB,CAAC,QAAQ,CAAC,CAAC,CAAC,MAA2C,CAAC,EAAE,CAAC;YAC9E,MAAM,IAAI,eAAe,CAAC,0BAA0B,gBAAgB,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;QACrF,CAAC;QACD,CAAC,CAAC,MAAM,GAAG,CAAC,CAAC,MAAM,CAAC;IACtB,CAAC;IACD,IAAI,CAAC,CAAC,MAAM,EAAE,CAAC;QACb,CAAC,CAAC,MAAM,GAAG,CAAC,CAAC,MAAM,CAAC;IACtB,CAAC;IACD,IAAI,CAAC,CAAC,KAAK,KAAK,SAAS,EAAE,CAAC;QAC1B,CAAC,CAAC,KAAK,GAAG,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,KAAK,EAAE,CAAC,CAAC,EAAE,GAAG,CAAC,CAAC,CAAC;IACxD,CAAC;IACD,IAAI,CAAC,CAAC,MAAM,KAAK,SAAS,EAAE,CAAC;QAC3B,CAAC,CAAC,MAAM,GAAG,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,MAAM,EAAE,CAAC,CAAC,CAAC,CAAC;IAC3C,CAAC;IACD,OAAO,EAAE,MAAM,EAAE,KAAK,EAAE,IAAI,EAAE,IAAI,EAAE,KAAK,EAAE,CAAC,EAAE,CAAC;AACjD,CAAC;AAED;;GAEG;AACH,MAAM,UAAU,oBAAoB;IAClC,OAAO,EAAE,MAAM,EAAE,KAAK,EAAE,IAAI,EAAE,GAAG,IAAI,YAAY,EAAE,CAAC;AACtD,CAAC;
|
|
1
|
+
{"version":3,"file":"builds.js","sourceRoot":"","sources":["../../../src/commands/project/builds.ts"],"names":[],"mappings":"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"}
|
|
@@ -17,6 +17,7 @@ Examples:
|
|
|
17
17
|
harvask project list --status active --search api
|
|
18
18
|
harvask project show PRJ
|
|
19
19
|
harvask project create --name "New Project" --key NP --description "..."
|
|
20
|
+
harvask project create --name "New Project" # key is generated from the name
|
|
20
21
|
harvask project members list PRJ
|
|
21
22
|
harvask project members add PRJ --user-id 42 --role member
|
|
22
23
|
`);
|
|
@@ -53,7 +54,7 @@ Examples:
|
|
|
53
54
|
.command('create')
|
|
54
55
|
.description('Create a project')
|
|
55
56
|
.requiredOption('--name <name>', 'project name (<=255 chars)')
|
|
56
|
-
.
|
|
57
|
+
.option('--key <key>', 'unique project key (<=10 alphanumeric chars); omitted = generated from --name')
|
|
57
58
|
.option('--description <text>', 'description (Markdown, @file or - for stdin)')
|
|
58
59
|
.option('--status <status>', `status (${PROJECT_STATUSES.join('|')}; default active)`)
|
|
59
60
|
.action(async (opts) => {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/commands/project/index.ts"],"names":[],"mappings":"AAAA;;GAEG;AAKH,OAAO,EAAE,QAAQ,EAAE,eAAe,EAAE,MAAM,aAAa,CAAC;AACxD,OAAO,EAAE,WAAW,EAAE,MAAM,uBAAuB,CAAC;AACpD,OAAO,EAAE,WAAW,EAAE,cAAc,EAAE,MAAM,sBAAsB,CAAC;AACnE,OAAO,EACL,oBAAoB,EACpB,oBAAoB,EACpB,sBAAsB,EACtB,uBAAuB,EACvB,yBAAyB,EACzB,4BAA4B,EAC5B,gBAAgB,EAChB,aAAa,GACd,MAAM,aAAa,CAAC;AAErB,MAAM,CAAC,MAAM,aAAa,GAAmB;IAC3C,IAAI,EAAE,SAAS;IACf,QAAQ,EAAE,4CAA4C;IACtD,QAAQ,CAAC,OAAgB,EAAE,GAAmB;QAC5C,MAAM,OAAO,GAAG,OAAO;aACpB,OAAO,CAAC,SAAS,CAAC;aAClB,WAAW,CAAC,iBAAiB,CAAC;aAC9B,WAAW,CACV,OAAO,EACP
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/commands/project/index.ts"],"names":[],"mappings":"AAAA;;GAEG;AAKH,OAAO,EAAE,QAAQ,EAAE,eAAe,EAAE,MAAM,aAAa,CAAC;AACxD,OAAO,EAAE,WAAW,EAAE,MAAM,uBAAuB,CAAC;AACpD,OAAO,EAAE,WAAW,EAAE,cAAc,EAAE,MAAM,sBAAsB,CAAC;AACnE,OAAO,EACL,oBAAoB,EACpB,oBAAoB,EACpB,sBAAsB,EACtB,uBAAuB,EACvB,yBAAyB,EACzB,4BAA4B,EAC5B,gBAAgB,EAChB,aAAa,GACd,MAAM,aAAa,CAAC;AAErB,MAAM,CAAC,MAAM,aAAa,GAAmB;IAC3C,IAAI,EAAE,SAAS;IACf,QAAQ,EAAE,4CAA4C;IACtD,QAAQ,CAAC,OAAgB,EAAE,GAAmB;QAC5C,MAAM,OAAO,GAAG,OAAO;aACpB,OAAO,CAAC,SAAS,CAAC;aAClB,WAAW,CAAC,iBAAiB,CAAC;aAC9B,WAAW,CACV,OAAO,EACP;;;;;;;;CAQP,CACM,CAAC;QAEJ,OAAO;QACP,OAAO;aACJ,OAAO,CAAC,MAAM,CAAC;aACf,WAAW,CAAC,6BAA6B,CAAC;aAC1C,MAAM,CAAC,mBAAmB,EAAE,qBAAqB,gBAAgB,CAAC,IAAI,CAAC,GAAG,CAAC,mBAAmB,CAAC;aAC/F,MAAM,CAAC,iBAAiB,EAAE,gCAAgC,CAAC;aAC3D,MAAM,CAAC,aAAa,EAAE,uBAAuB,EAAE,WAAW,CAAC;aAC3D,MAAM,CAAC,cAAc,EAAE,QAAQ,EAAE,WAAW,CAAC;aAC7C,MAAM,CAAC,KAAK,EAAE,IAAI,EAAE,EAAE;YACrB,MAAM,IAAI,GAAG,oBAAoB,CAAC;gBAChC,MAAM,EAAE,IAAI,CAAC,MAAM;gBACnB,MAAM,EAAE,IAAI,CAAC,MAAM;gBACnB,KAAK,EAAE,IAAI,CAAC,KAAK;gBACjB,MAAM,EAAE,IAAI,CAAC,MAAM;aACpB,CAAC,CAAC;YACH,MAAM,MAAM,GAAG,MAAM,QAAQ,CAAC,GAAG,EAAE,IAAI,CAAC,CAAC;YACzC,WAAW,CAAC,MAAM,EAAE,GAAG,CAAC,GAAG,CAAC,CAAC;QAC/B,CAAC,CAAC,CAAC;QAEL,OAAO;QACP,OAAO;aACJ,OAAO,CAAC,MAAM,CAAC;aACf,WAAW,CAAC,wCAAwC,CAAC;aACrD,QAAQ,CAAC,WAAW,EAAE,iCAAiC,CAAC;aACxD,MAAM,CAAC,KAAK,EAAE,UAAkB,EAAE,EAAE;YACnC,MAAM,IAAI,GAAG,oBAAoB,EAAE,CAAC;YACpC,MAAM,MAAM,GAAG,MAAM,QAAQ,CAAC,GAAG,EAAE,IAAI,EAAE,eAAe,CAAC,UAAU,CAAC,CAAC,CAAC;YACtE,WAAW,CAAC,MAAM,EAAE,GAAG,CAAC,GAAG,CAAC,CAAC;QAC/B,CAAC,CAAC,CAAC;QAEL,SAAS;QACT,OAAO;aACJ,OAAO,CAAC,QAAQ,CAAC;aACjB,WAAW,CAAC,kBAAkB,CAAC;aAC/B,cAAc,CAAC,eAAe,EAAE,4BAA4B,CAAC;aAC7D,MAAM,CAAC,aAAa,EAAE,+EAA+E,CAAC;aACtG,MAAM,CAAC,sBAAsB,EAAE,8CAA8C,CAAC;aAC9E,MAAM,CAAC,mBAAmB,EAAE,WAAW,gBAAgB,CAAC,IAAI,CAAC,GAAG,CAAC,mBAAmB,CAAC;aACrF,MAAM,CAAC,KAAK,EAAE,IAAI,EAAE,EAAE;YACrB,MAAM,IAAI,GAAG,sBAAsB,CAAC;gBAClC,IAAI,EAAE,IAAI,CAAC,IAAI;gBACf,GAAG,EAAE,IAAI,CAAC,GAAG;gBACb,WAAW,EAAE,IAAI,CAAC,WAAW,KAAK,SAAS,CAAC,CAAC,CAAC,cAAc,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC,CAAC,CAAC,SAAS;gBAC1F,MAAM,EAAE,IAAI,CAAC,MAAM;aACpB,CAAC,CAAC;YACH,MAAM,MAAM,GAAG,MAAM,QAAQ,CAAC,GAAG,EAAE,IAAI,CAAC,CAAC;YACzC,WAAW,CAAC,MAAM,EAAE,GAAG,CAAC,GAAG,CAAC,CAAC;QAC/B,CAAC,CAAC,CAAC;QAEL,UAAU;QACV,MAAM,OAAO,GAAG,OAAO,CAAC,OAAO,CAAC,SAAS,CAAC,CAAC,WAAW,CAAC,wBAAwB,CAAC,CAAC;QAEjF,OAAO;aACJ,OAAO,CAAC,MAAM,CAAC;aACf,WAAW,CAAC,sBAAsB,CAAC;aACnC,QAAQ,CAAC,WAAW,EAAE,iCAAiC,CAAC;aACxD,MAAM,CAAC,KAAK,EAAE,UAAkB,EAAE,EAAE;YACnC,MAAM,IAAI,GAAG,uBAAuB,EAAE,CAAC;YACvC,MAAM,MAAM,GAAG,MAAM,QAAQ,CAAC,GAAG,EAAE,IAAI,EAAE,eAAe,CAAC,UAAU,CAAC,CAAC,CAAC;YACtE,WAAW,CAAC,MAAM,EAAE,GAAG,CAAC,GAAG,CAAC,CAAC;QAC/B,CAAC,CAAC,CAAC;QAEL,OAAO;aACJ,OAAO,CAAC,KAAK,CAAC;aACd,WAAW,CAAC,2BAA2B,CAAC;aACxC,QAAQ,CAAC,WAAW,EAAE,iCAAiC,CAAC;aACxD,cAAc,CAAC,gBAAgB,EAAE,gBAAgB,EAAE,WAAW,CAAC;aAC/D,cAAc,CAAC,eAAe,EAAE,SAAS,aAAa,CAAC,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC;aACpE,MAAM,CAAC,KAAK,EAAE,UAAkB,EAAE,IAAI,EAAE,EAAE;YACzC,MAAM,IAAI,GAAG,yBAAyB,CAAC,IAAI,CAAC,MAAM,EAAE,IAAI,CAAC,IAAI,CAAC,CAAC;YAC/D,MAAM,MAAM,GAAG,MAAM,QAAQ,CAAC,GAAG,EAAE,IAAI,EAAE,eAAe,CAAC,UAAU,CAAC,CAAC,CAAC;YACtE,WAAW,CAAC,MAAM,EAAE,GAAG,CAAC,GAAG,CAAC,CAAC;QAC/B,CAAC,CAAC,CAAC;QAEL,OAAO;aACJ,OAAO,CAAC,QAAQ,CAAC;aACjB,WAAW,CAAC,gCAAgC,CAAC;aAC7C,QAAQ,CAAC,WAAW,EAAE,iCAAiC,CAAC;aACxD,cAAc,CAAC,gBAAgB,EAAE,mBAAmB,EAAE,WAAW,CAAC;aAClE,MAAM,CAAC,KAAK,EAAE,UAAkB,EAAE,IAAI,EAAE,EAAE;YACzC,MAAM,IAAI,GAAG,4BAA4B,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;YACvD,MAAM,MAAM,GAAG,MAAM,QAAQ,CAAC,GAAG,EAAE,IAAI,EAAE,eAAe,CAAC,UAAU,CAAC,CAAC,CAAC;YACtE,WAAW,CAAC,MAAM,EAAE,GAAG,CAAC,GAAG,CAAC,CAAC;QAC/B,CAAC,CAAC,CAAC;IACP,CAAC;CACF,CAAC"}
|