monday-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/CHANGELOG.md +645 -0
- package/README.md +173 -34
- package/dist/api/column-types.d.ts +48 -17
- package/dist/api/column-types.d.ts.map +1 -1
- package/dist/api/column-types.js +25 -9
- package/dist/api/column-types.js.map +1 -1
- package/dist/api/column-values.d.ts +17 -9
- package/dist/api/column-values.d.ts.map +1 -1
- package/dist/api/column-values.js +33 -18
- package/dist/api/column-values.js.map +1 -1
- package/dist/api/documents.d.ts +1136 -3
- package/dist/api/documents.d.ts.map +1 -1
- package/dist/api/documents.js +1828 -3
- package/dist/api/documents.js.map +1 -1
- package/dist/api/file-column-set.d.ts +507 -0
- package/dist/api/file-column-set.d.ts.map +1 -0
- package/dist/api/file-column-set.js +510 -0
- package/dist/api/file-column-set.js.map +1 -0
- package/dist/api/raw-write.d.ts +27 -16
- package/dist/api/raw-write.d.ts.map +1 -1
- package/dist/api/raw-write.js +40 -24
- package/dist/api/raw-write.js.map +1 -1
- package/dist/api/resolver-error-fold.d.ts +25 -0
- package/dist/api/resolver-error-fold.d.ts.map +1 -1
- package/dist/api/resolver-error-fold.js +56 -0
- package/dist/api/resolver-error-fold.js.map +1 -1
- package/dist/api/teams.d.ts +657 -0
- package/dist/api/teams.d.ts.map +1 -0
- package/dist/api/teams.js +880 -0
- package/dist/api/teams.js.map +1 -0
- package/dist/commands/board/column-create.d.ts +8 -3
- package/dist/commands/board/column-create.d.ts.map +1 -1
- package/dist/commands/board/column-create.js +16 -8
- package/dist/commands/board/column-create.js.map +1 -1
- package/dist/commands/doc/append-markdown.d.ts +117 -0
- package/dist/commands/doc/append-markdown.d.ts.map +1 -0
- package/dist/commands/doc/append-markdown.js +253 -0
- package/dist/commands/doc/append-markdown.js.map +1 -0
- package/dist/commands/doc/block-create.d.ts +114 -0
- package/dist/commands/doc/block-create.d.ts.map +1 -0
- package/dist/commands/doc/block-create.js +206 -0
- package/dist/commands/doc/block-create.js.map +1 -0
- package/dist/commands/doc/block-delete.d.ts +72 -0
- package/dist/commands/doc/block-delete.d.ts.map +1 -0
- package/dist/commands/doc/block-delete.js +161 -0
- package/dist/commands/doc/block-delete.js.map +1 -0
- package/dist/commands/doc/block-update.d.ts +75 -0
- package/dist/commands/doc/block-update.d.ts.map +1 -0
- package/dist/commands/doc/block-update.js +162 -0
- package/dist/commands/doc/block-update.js.map +1 -0
- package/dist/commands/doc/create-in-workspace.d.ts +76 -0
- package/dist/commands/doc/create-in-workspace.d.ts.map +1 -0
- package/dist/commands/doc/create-in-workspace.js +164 -0
- package/dist/commands/doc/create-in-workspace.js.map +1 -0
- package/dist/commands/doc/create-on-column.d.ts +71 -0
- package/dist/commands/doc/create-on-column.d.ts.map +1 -0
- package/dist/commands/doc/create-on-column.js +146 -0
- package/dist/commands/doc/create-on-column.js.map +1 -0
- package/dist/commands/doc/delete.d.ts +68 -0
- package/dist/commands/doc/delete.d.ts.map +1 -0
- package/dist/commands/doc/delete.js +146 -0
- package/dist/commands/doc/delete.js.map +1 -0
- package/dist/commands/doc/duplicate.d.ts +101 -0
- package/dist/commands/doc/duplicate.d.ts.map +1 -0
- package/dist/commands/doc/duplicate.js +191 -0
- package/dist/commands/doc/duplicate.js.map +1 -0
- package/dist/commands/doc/import-html.d.ts +125 -0
- package/dist/commands/doc/import-html.d.ts.map +1 -0
- package/dist/commands/doc/import-html.js +273 -0
- package/dist/commands/doc/import-html.js.map +1 -0
- package/dist/commands/doc/list.d.ts +6 -3
- package/dist/commands/doc/list.d.ts.map +1 -1
- package/dist/commands/doc/list.js +17 -48
- package/dist/commands/doc/list.js.map +1 -1
- package/dist/commands/doc/rename.d.ts +60 -0
- package/dist/commands/doc/rename.d.ts.map +1 -0
- package/dist/commands/doc/rename.js +135 -0
- package/dist/commands/doc/rename.js.map +1 -0
- package/dist/commands/index.d.ts.map +1 -1
- package/dist/commands/index.js +116 -0
- package/dist/commands/index.js.map +1 -1
- package/dist/commands/item/create.d.ts.map +1 -1
- package/dist/commands/item/create.js +131 -33
- package/dist/commands/item/create.js.map +1 -1
- package/dist/commands/item/set.d.ts +33 -3
- package/dist/commands/item/set.d.ts.map +1 -1
- package/dist/commands/item/set.js +193 -15
- package/dist/commands/item/set.js.map +1 -1
- package/dist/commands/item/update.d.ts +34 -3
- package/dist/commands/item/update.d.ts.map +1 -1
- package/dist/commands/item/update.js +346 -67
- package/dist/commands/item/update.js.map +1 -1
- package/dist/commands/item/upload.d.ts.map +1 -1
- package/dist/commands/item/upload.js +16 -69
- package/dist/commands/item/upload.js.map +1 -1
- package/dist/commands/update/create.d.ts.map +1 -1
- package/dist/commands/update/create.js +6 -4
- package/dist/commands/update/create.js.map +1 -1
- package/dist/commands/update/edit.d.ts +4 -2
- package/dist/commands/update/edit.d.ts.map +1 -1
- package/dist/commands/update/edit.js +10 -6
- package/dist/commands/update/edit.js.map +1 -1
- package/dist/commands/update/reply.d.ts +4 -2
- package/dist/commands/update/reply.d.ts.map +1 -1
- package/dist/commands/update/reply.js +10 -6
- package/dist/commands/update/reply.js.map +1 -1
- package/dist/commands/update/upload.d.ts.map +1 -1
- package/dist/commands/update/upload.js +9 -59
- package/dist/commands/update/upload.js.map +1 -1
- package/dist/commands/user/_team-membership.d.ts +10 -0
- package/dist/commands/user/_team-membership.d.ts.map +1 -0
- package/dist/commands/user/_team-membership.js +88 -0
- package/dist/commands/user/_team-membership.js.map +1 -0
- package/dist/commands/user/team-add-members.d.ts +81 -0
- package/dist/commands/user/team-add-members.d.ts.map +1 -0
- package/dist/commands/user/team-add-members.js +186 -0
- package/dist/commands/user/team-add-members.js.map +1 -0
- package/dist/commands/user/team-create.d.ts +82 -0
- package/dist/commands/user/team-create.d.ts.map +1 -0
- package/dist/commands/user/team-create.js +206 -0
- package/dist/commands/user/team-create.js.map +1 -0
- package/dist/commands/user/team-delete.d.ts +56 -0
- package/dist/commands/user/team-delete.d.ts.map +1 -0
- package/dist/commands/user/team-delete.js +137 -0
- package/dist/commands/user/team-delete.js.map +1 -0
- package/dist/commands/user/team-get.d.ts +41 -0
- package/dist/commands/user/team-get.d.ts.map +1 -0
- package/dist/commands/user/team-get.js +87 -0
- package/dist/commands/user/team-get.js.map +1 -0
- package/dist/commands/user/team-list.d.ts +39 -0
- package/dist/commands/user/team-list.d.ts.map +1 -0
- package/dist/commands/user/team-list.js +90 -0
- package/dist/commands/user/team-list.js.map +1 -0
- package/dist/commands/user/team-remove-members.d.ts +71 -0
- package/dist/commands/user/team-remove-members.d.ts.map +1 -0
- package/dist/commands/user/team-remove-members.js +176 -0
- package/dist/commands/user/team-remove-members.js.map +1 -0
- package/dist/types/ids.d.ts +6 -0
- package/dist/types/ids.d.ts.map +1 -1
- package/dist/types/ids.js +46 -5
- package/dist/types/ids.js.map +1 -1
- package/dist/utils/file-source.d.ts +93 -0
- package/dist/utils/file-source.d.ts.map +1 -0
- package/dist/utils/file-source.js +140 -0
- package/dist/utils/file-source.js.map +1 -0
- package/dist/utils/parse-brand-list.d.ts +95 -0
- package/dist/utils/parse-brand-list.d.ts.map +1 -0
- package/dist/utils/parse-brand-list.js +96 -0
- package/dist/utils/parse-brand-list.js.map +1 -0
- package/dist/utils/source-content.d.ts +93 -0
- package/dist/utils/source-content.d.ts.map +1 -0
- package/dist/utils/source-content.js +120 -0
- package/dist/utils/source-content.js.map +1 -0
- package/package.json +1 -1
|
@@ -96,9 +96,6 @@
|
|
|
96
96
|
* invalidation all land below.
|
|
97
97
|
*/
|
|
98
98
|
import { z } from 'zod';
|
|
99
|
-
import { stat as fsStat, access as fsAccess, readFile } from 'node:fs/promises';
|
|
100
|
-
import { constants as fsConstants } from 'node:fs';
|
|
101
|
-
import { resolve as resolvePath, basename } from 'node:path';
|
|
102
99
|
import { ensureSubcommand } from '../types.js';
|
|
103
100
|
import { parseArgv } from '../parse-argv.js';
|
|
104
101
|
import { ItemIdSchema, ColumnIdSchema } from '../../types/ids.js';
|
|
@@ -108,8 +105,8 @@ import { resolveColumnWithRefresh } from '../../api/columns.js';
|
|
|
108
105
|
import { lookupItemBoard } from '../../api/item-board-lookup.js';
|
|
109
106
|
import { invalidateBoard } from '../../api/cache.js';
|
|
110
107
|
import { foldResolverWarningsIntoError } from '../../api/resolver-error-fold.js';
|
|
111
|
-
import { ApiError
|
|
112
|
-
import {
|
|
108
|
+
import { ApiError } from '../../utils/errors.js';
|
|
109
|
+
import { precheckLocalFile, buildBlobFromPath, } from '../../utils/file-source.js';
|
|
113
110
|
import { emitMutation, emitDryRun } from '../emit.js';
|
|
114
111
|
const inputSchema = z
|
|
115
112
|
.object({
|
|
@@ -158,68 +155,15 @@ export const itemUploadCommand = {
|
|
|
158
155
|
file: fileArg,
|
|
159
156
|
column: opts.column,
|
|
160
157
|
});
|
|
161
|
-
//
|
|
162
|
-
//
|
|
163
|
-
//
|
|
164
|
-
//
|
|
165
|
-
//
|
|
166
|
-
//
|
|
167
|
-
//
|
|
168
|
-
//
|
|
169
|
-
|
|
170
|
-
// pre-check and `fs.readFile()` would throw a raw fs error
|
|
171
|
-
// mid-upload after wire calls).
|
|
172
|
-
const filePath = resolvePath(process.cwd(), parsed.file);
|
|
173
|
-
const filename = basename(filePath);
|
|
174
|
-
let fileSizeBytes;
|
|
175
|
-
try {
|
|
176
|
-
const stats = await fsStat(filePath);
|
|
177
|
-
if (!stats.isFile()) {
|
|
178
|
-
throw new UsageError(`<file> ${JSON.stringify(parsed.file)} is not a regular file ` +
|
|
179
|
-
`(resolved to ${JSON.stringify(filePath)}).`, {
|
|
180
|
-
details: {
|
|
181
|
-
reason: 'file_not_readable',
|
|
182
|
-
file_path: filePath,
|
|
183
|
-
hint: 'pass a path to a regular readable file; directories ' +
|
|
184
|
-
'and special files (sockets, devices) are rejected.',
|
|
185
|
-
},
|
|
186
|
-
});
|
|
187
|
-
}
|
|
188
|
-
await fsAccess(filePath, fsConstants.R_OK);
|
|
189
|
-
fileSizeBytes = stats.size;
|
|
190
|
-
}
|
|
191
|
-
catch (err) {
|
|
192
|
-
if (err instanceof UsageError) {
|
|
193
|
-
throw err;
|
|
194
|
-
}
|
|
195
|
-
const code = errorCode(err);
|
|
196
|
-
throw new UsageError(`<file> ${JSON.stringify(parsed.file)} cannot be read ` +
|
|
197
|
-
`(resolved to ${JSON.stringify(filePath)}): ` +
|
|
198
|
-
`${asError(err).message}.`, {
|
|
199
|
-
cause: err,
|
|
200
|
-
details: {
|
|
201
|
-
reason: 'file_not_readable',
|
|
202
|
-
file_path: filePath,
|
|
203
|
-
...(code === undefined ? {} : { errno_code: code }),
|
|
204
|
-
hint: 'check that the path exists, is readable by the current ' +
|
|
205
|
-
'user, and isn\'t a directory.',
|
|
206
|
-
},
|
|
207
|
-
});
|
|
208
|
-
}
|
|
209
|
-
if (fileSizeBytes === 0) {
|
|
210
|
-
throw new UsageError(`<file> ${JSON.stringify(parsed.file)} is empty (0 bytes); ` +
|
|
211
|
-
`Monday rejects empty uploads server-side.`, {
|
|
212
|
-
details: {
|
|
213
|
-
reason: 'file_empty',
|
|
214
|
-
file_path: filePath,
|
|
215
|
-
filename,
|
|
216
|
-
file_size_bytes: 0,
|
|
217
|
-
hint: 'Monday returns FILE_SIZE_LIMIT_EXCEEDED on empty ' +
|
|
218
|
-
'uploads. Provide a non-empty file or remove the upload ' +
|
|
219
|
-
'call.',
|
|
220
|
-
},
|
|
221
|
-
});
|
|
222
|
-
}
|
|
158
|
+
// Pre-check existence + type + read-permission + emptiness
|
|
159
|
+
// BEFORE resolveClient so a missing/unreadable-file error
|
|
160
|
+
// surfaces as usage_error (exit 1) rather than getting
|
|
161
|
+
// tangled up with config_error (exit 3) on a token miss
|
|
162
|
+
// OR firing AFTER `lookupItemBoard` /
|
|
163
|
+
// `resolveColumnWithRefresh` Monday wire calls (round-1
|
|
164
|
+
// P2-2 fix). Lifted at v0.6-M38 IMPL kickoff per
|
|
165
|
+
// R-v0.6-NEW-1 (3-consumer trigger).
|
|
166
|
+
const { filePath, filename, fileSizeBytes } = await precheckLocalFile(parsed.file);
|
|
223
167
|
const { client, globalFlags, apiVersion, multipart, toEmit } = resolveClient(ctx, program.opts());
|
|
224
168
|
if (globalFlags.dryRun) {
|
|
225
169
|
// D5 closure: dry-run is fs.stat()-backed (NOT a 0-byte
|
|
@@ -315,8 +259,11 @@ export const itemUploadCommand = {
|
|
|
315
259
|
// Read the file bytes into a Blob with a sniffed content-
|
|
316
260
|
// type. Done AFTER column-type validation so a non-`file`
|
|
317
261
|
// column rejection doesn't pay for the full read.
|
|
318
|
-
const
|
|
319
|
-
|
|
262
|
+
const file = await buildBlobFromPath({
|
|
263
|
+
filePath,
|
|
264
|
+
filename,
|
|
265
|
+
fileSizeBytes,
|
|
266
|
+
});
|
|
320
267
|
const result = await addFileToColumn({
|
|
321
268
|
client,
|
|
322
269
|
multipart,
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"upload.js","sourceRoot":"","sources":["../../../src/commands/item/upload.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAgGG;AACH,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AACxB,OAAO,EAAE,
|
|
1
|
+
{"version":3,"file":"upload.js","sourceRoot":"","sources":["../../../src/commands/item/upload.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"create.d.ts","sourceRoot":"","sources":["../../../src/commands/update/create.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;GAyBG;AACH,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AACxB,OAAO,EAAoB,KAAK,aAAa,EAAE,MAAM,aAAa,CAAC;AA2BnE,eAAO,MAAM,wBAAwB;;;;;;;;;;;;;kBAW1B,CAAC;AAEZ,MAAM,MAAM,kBAAkB,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,wBAAwB,CAAC,CAAC;AAE1E,QAAA,MAAM,WAAW;;;kBAKN,CAAC;AAQZ,eAAO,MAAM,mBAAmB,EAAE,aAAa,CAC7C,CAAC,CAAC,KAAK,CAAC,OAAO,WAAW,CAAC,EAC3B,kBAAkB,
|
|
1
|
+
{"version":3,"file":"create.d.ts","sourceRoot":"","sources":["../../../src/commands/update/create.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;GAyBG;AACH,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AACxB,OAAO,EAAoB,KAAK,aAAa,EAAE,MAAM,aAAa,CAAC;AA2BnE,eAAO,MAAM,wBAAwB;;;;;;;;;;;;;kBAW1B,CAAC;AAEZ,MAAM,MAAM,kBAAkB,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,wBAAwB,CAAC,CAAC;AAE1E,QAAA,MAAM,WAAW;;;kBAKN,CAAC;AAQZ,eAAO,MAAM,mBAAmB,EAAE,aAAa,CAC7C,CAAC,CAAC,KAAK,CAAC,OAAO,WAAW,CAAC,EAC3B,kBAAkB,CAoHnB,CAAC"}
|
|
@@ -32,7 +32,7 @@ import { ItemIdSchema, UpdateIdSchema } from '../../types/ids.js';
|
|
|
32
32
|
import { parseArgv } from '../parse-argv.js';
|
|
33
33
|
import { ApiError } from '../../utils/errors.js';
|
|
34
34
|
import { unwrapOrThrow } from '../../utils/parse-boundary.js';
|
|
35
|
-
import {
|
|
35
|
+
import { readSourceContent } from '../../utils/source-content.js';
|
|
36
36
|
import { UPDATE_FIELDS_FRAGMENT } from '../../api/update-mutation-result.js';
|
|
37
37
|
import { assertResponseFieldPresent } from '../../api/response-root.js';
|
|
38
38
|
const CREATE_UPDATE_MUTATION = `
|
|
@@ -100,10 +100,12 @@ export const updateCreateCommand = {
|
|
|
100
100
|
...opts,
|
|
101
101
|
});
|
|
102
102
|
const { client, globalFlags, apiVersion, toEmit } = resolveClient(ctx, program.opts());
|
|
103
|
-
const body = await
|
|
104
|
-
|
|
105
|
-
|
|
103
|
+
const body = await readSourceContent({
|
|
104
|
+
inline: parsed.body,
|
|
105
|
+
file: globalFlags.bodyFile,
|
|
106
106
|
stdin: ctx.stdin,
|
|
107
|
+
inlineFlagName: '--body',
|
|
108
|
+
fileFlagName: '--body-file',
|
|
107
109
|
verbHint: 'monday update create requires either --body <md> or ' +
|
|
108
110
|
'--body-file <path>. Use --body-file - to read from stdin.',
|
|
109
111
|
});
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"create.js","sourceRoot":"","sources":["../../../src/commands/update/create.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;GAyBG;AACH,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AACxB,OAAO,EAAE,gBAAgB,EAAsB,MAAM,aAAa,CAAC;AACnE,OAAO,EAAE,UAAU,EAAE,YAAY,EAAE,MAAM,YAAY,CAAC;AACtD,OAAO,EAAE,aAAa,EAAE,MAAM,6BAA6B,CAAC;AAC5D,OAAO,EAAE,YAAY,EAAE,cAAc,EAAE,MAAM,oBAAoB,CAAC;AAClE,OAAO,EAAE,SAAS,EAAE,MAAM,kBAAkB,CAAC;AAC7C,OAAO,EAAE,QAAQ,EAAE,MAAM,uBAAuB,CAAC;AACjD,OAAO,EAAE,aAAa,EAAE,MAAM,+BAA+B,CAAC;AAC9D,OAAO,EAAE,
|
|
1
|
+
{"version":3,"file":"create.js","sourceRoot":"","sources":["../../../src/commands/update/create.ts"],"names":[],"mappings":"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"}
|
|
@@ -4,8 +4,10 @@
|
|
|
4
4
|
* `v0.2-plan.md` §3 M13).
|
|
5
5
|
*
|
|
6
6
|
* Mutates via Monday's `edit_update(id, body)`. Body sources match
|
|
7
|
-
* `update create` / `update reply` — the shared `
|
|
8
|
-
* helper
|
|
7
|
+
* `update create` / `update reply` — the shared `readSourceContent`
|
|
8
|
+
* helper (lifted at v0.5-M37 IMPL kickoff per R-v0.5-NEW-18 from
|
|
9
|
+
* the prior M13-specific `readUpdateBody`) handles --body /
|
|
10
|
+
* --body-file / `--body-file -` for stdin.
|
|
9
11
|
*
|
|
10
12
|
* Idempotent: yes — re-running with the same body is a server-side
|
|
11
13
|
* no-op (Monday's edit_update writes the new body verbatim).
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"edit.d.ts","sourceRoot":"","sources":["../../../src/commands/update/edit.ts"],"names":[],"mappings":"AAAA
|
|
1
|
+
{"version":3,"file":"edit.d.ts","sourceRoot":"","sources":["../../../src/commands/update/edit.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;GAaG;AACH,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AACxB,OAAO,EAAoB,KAAK,aAAa,EAAE,MAAM,aAAa,CAAC;AAOnE,OAAO,EAIL,KAAK,gBAAgB,EACtB,MAAM,qCAAqC,CAAC;AAW7C,eAAO,MAAM,sBAAsB;;;;;;;;;;;;;kBAAyB,CAAC;AAE7D,MAAM,MAAM,gBAAgB,GAAG,gBAAgB,CAAC;AAEhD,QAAA,MAAM,WAAW;;;kBAKN,CAAC;AAQZ,eAAO,MAAM,iBAAiB,EAAE,aAAa,CAC3C,CAAC,CAAC,KAAK,CAAC,OAAO,WAAW,CAAC,EAC3B,gBAAgB,CAuHjB,CAAC"}
|
|
@@ -4,8 +4,10 @@
|
|
|
4
4
|
* `v0.2-plan.md` §3 M13).
|
|
5
5
|
*
|
|
6
6
|
* Mutates via Monday's `edit_update(id, body)`. Body sources match
|
|
7
|
-
* `update create` / `update reply` — the shared `
|
|
8
|
-
* helper
|
|
7
|
+
* `update create` / `update reply` — the shared `readSourceContent`
|
|
8
|
+
* helper (lifted at v0.5-M37 IMPL kickoff per R-v0.5-NEW-18 from
|
|
9
|
+
* the prior M13-specific `readUpdateBody`) handles --body /
|
|
10
|
+
* --body-file / `--body-file -` for stdin.
|
|
9
11
|
*
|
|
10
12
|
* Idempotent: yes — re-running with the same body is a server-side
|
|
11
13
|
* no-op (Monday's edit_update writes the new body verbatim).
|
|
@@ -17,7 +19,7 @@ import { resolveClient } from '../../api/resolve-client.js';
|
|
|
17
19
|
import { UpdateIdSchema } from '../../types/ids.js';
|
|
18
20
|
import { parseArgv } from '../parse-argv.js';
|
|
19
21
|
import { unwrapOrThrow } from '../../utils/parse-boundary.js';
|
|
20
|
-
import {
|
|
22
|
+
import { readSourceContent } from '../../utils/source-content.js';
|
|
21
23
|
import { projectMutationUpdate, UPDATE_FIELDS_FRAGMENT, updateProjectionSchema, } from '../../api/update-mutation-result.js';
|
|
22
24
|
import { assertResponseFieldPresent } from '../../api/response-root.js';
|
|
23
25
|
const EDIT_UPDATE_MUTATION = `
|
|
@@ -67,10 +69,12 @@ export const updateEditCommand = {
|
|
|
67
69
|
...opts,
|
|
68
70
|
});
|
|
69
71
|
const { client, globalFlags, apiVersion, toEmit } = resolveClient(ctx, program.opts());
|
|
70
|
-
const body = await
|
|
71
|
-
|
|
72
|
-
|
|
72
|
+
const body = await readSourceContent({
|
|
73
|
+
inline: parsed.body,
|
|
74
|
+
file: globalFlags.bodyFile,
|
|
73
75
|
stdin: ctx.stdin,
|
|
76
|
+
inlineFlagName: '--body',
|
|
77
|
+
fileFlagName: '--body-file',
|
|
74
78
|
verbHint: 'monday update edit requires either --body <md> or ' +
|
|
75
79
|
'--body-file <path>. Use --body-file - to read from stdin.',
|
|
76
80
|
});
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"edit.js","sourceRoot":"","sources":["../../../src/commands/update/edit.ts"],"names":[],"mappings":"AAAA
|
|
1
|
+
{"version":3,"file":"edit.js","sourceRoot":"","sources":["../../../src/commands/update/edit.ts"],"names":[],"mappings":"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"}
|
|
@@ -9,8 +9,10 @@
|
|
|
9
9
|
* the parent update.
|
|
10
10
|
*
|
|
11
11
|
* **Body sources** (mutually exclusive — same shape as `update
|
|
12
|
-
* create`'s plumbing, lifted into `
|
|
13
|
-
*
|
|
12
|
+
* create`'s plumbing, lifted into the universal `readSourceContent`
|
|
13
|
+
* helper at `src/utils/source-content.ts` per R-v0.5-NEW-18 at
|
|
14
|
+
* v0.5-M37 IMPL kickoff; the M13-specific `readUpdateBody` shape
|
|
15
|
+
* lived at `src/commands/update/body-source.ts` until the lift):
|
|
14
16
|
* - `--body <md>` — inline markdown.
|
|
15
17
|
* - `--body-file <path>` — read from disk.
|
|
16
18
|
* - `--body-file -` — read from stdin.
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"reply.d.ts","sourceRoot":"","sources":["../../../src/commands/update/reply.ts"],"names":[],"mappings":"AAAA
|
|
1
|
+
{"version":3,"file":"reply.d.ts","sourceRoot":"","sources":["../../../src/commands/update/reply.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;GAuBG;AACH,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AACxB,OAAO,EAAoB,KAAK,aAAa,EAAE,MAAM,aAAa,CAAC;AAsBnE,eAAO,MAAM,uBAAuB;;;;;;;;;;;;;;kBAEzB,CAAC;AAEZ,MAAM,MAAM,iBAAiB,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,uBAAuB,CAAC,CAAC;AAExE,QAAA,MAAM,WAAW;;;kBAKN,CAAC;AAQZ,eAAO,MAAM,kBAAkB,EAAE,aAAa,CAC5C,CAAC,CAAC,KAAK,CAAC,OAAO,WAAW,CAAC,EAC3B,iBAAiB,CA+HlB,CAAC"}
|
|
@@ -9,8 +9,10 @@
|
|
|
9
9
|
* the parent update.
|
|
10
10
|
*
|
|
11
11
|
* **Body sources** (mutually exclusive — same shape as `update
|
|
12
|
-
* create`'s plumbing, lifted into `
|
|
13
|
-
*
|
|
12
|
+
* create`'s plumbing, lifted into the universal `readSourceContent`
|
|
13
|
+
* helper at `src/utils/source-content.ts` per R-v0.5-NEW-18 at
|
|
14
|
+
* v0.5-M37 IMPL kickoff; the M13-specific `readUpdateBody` shape
|
|
15
|
+
* lived at `src/commands/update/body-source.ts` until the lift):
|
|
14
16
|
* - `--body <md>` — inline markdown.
|
|
15
17
|
* - `--body-file <path>` — read from disk.
|
|
16
18
|
* - `--body-file -` — read from stdin.
|
|
@@ -27,7 +29,7 @@ import { resolveClient } from '../../api/resolve-client.js';
|
|
|
27
29
|
import { UpdateIdSchema } from '../../types/ids.js';
|
|
28
30
|
import { parseArgv } from '../parse-argv.js';
|
|
29
31
|
import { unwrapOrThrow } from '../../utils/parse-boundary.js';
|
|
30
|
-
import {
|
|
32
|
+
import { readSourceContent } from '../../utils/source-content.js';
|
|
31
33
|
import { projectMutationUpdate, UPDATE_FIELDS_FRAGMENT, updateProjectionSchema, } from '../../api/update-mutation-result.js';
|
|
32
34
|
import { assertResponseFieldPresent } from '../../api/response-root.js';
|
|
33
35
|
const CREATE_REPLY_MUTATION = `
|
|
@@ -80,10 +82,12 @@ export const updateReplyCommand = {
|
|
|
80
82
|
...opts,
|
|
81
83
|
});
|
|
82
84
|
const { client, globalFlags, apiVersion, toEmit } = resolveClient(ctx, program.opts());
|
|
83
|
-
const body = await
|
|
84
|
-
|
|
85
|
-
|
|
85
|
+
const body = await readSourceContent({
|
|
86
|
+
inline: parsed.body,
|
|
87
|
+
file: globalFlags.bodyFile,
|
|
86
88
|
stdin: ctx.stdin,
|
|
89
|
+
inlineFlagName: '--body',
|
|
90
|
+
fileFlagName: '--body-file',
|
|
87
91
|
verbHint: 'monday update reply requires either --body <md> or ' +
|
|
88
92
|
'--body-file <path>. Use --body-file - to read from stdin.',
|
|
89
93
|
});
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"reply.js","sourceRoot":"","sources":["../../../src/commands/update/reply.ts"],"names":[],"mappings":"AAAA
|
|
1
|
+
{"version":3,"file":"reply.js","sourceRoot":"","sources":["../../../src/commands/update/reply.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"upload.d.ts","sourceRoot":"","sources":["../../../src/commands/update/upload.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA0DG;AACH,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;
|
|
1
|
+
{"version":3,"file":"upload.d.ts","sourceRoot":"","sources":["../../../src/commands/update/upload.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA0DG;AACH,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AACxB,OAAO,EAAoB,KAAK,aAAa,EAAE,MAAM,aAAa,CAAC;AAGnE,OAAO,EAEL,KAAK,kBAAkB,EAExB,MAAM,qBAAqB,CAAC;AAQ7B,QAAA,MAAM,WAAW;;;kBAcN,CAAC;AAEZ,eAAO,MAAM,mBAAmB,EAAE,aAAa,CAC7C,CAAC,CAAC,KAAK,CAAC,OAAO,WAAW,CAAC,EAC3B,kBAAkB,CA+HnB,CAAC"}
|
|
@@ -58,16 +58,12 @@
|
|
|
58
58
|
* supports).
|
|
59
59
|
*/
|
|
60
60
|
import { z } from 'zod';
|
|
61
|
-
import { stat as fsStat, access as fsAccess, readFile } from 'node:fs/promises';
|
|
62
|
-
import { constants as fsConstants } from 'node:fs';
|
|
63
|
-
import { resolve as resolvePath, basename } from 'node:path';
|
|
64
61
|
import { ensureSubcommand } from '../types.js';
|
|
65
62
|
import { parseArgv } from '../parse-argv.js';
|
|
66
63
|
import { UpdateIdSchema } from '../../types/ids.js';
|
|
67
64
|
import { updateUploadOutputSchema, addFileToUpdate, } from '../../api/assets.js';
|
|
68
65
|
import { resolveClient } from '../../api/resolve-client.js';
|
|
69
|
-
import {
|
|
70
|
-
import { sniffContentType } from '../../utils/mime.js';
|
|
66
|
+
import { precheckLocalFile, buildBlobFromPath, } from '../../utils/file-source.js';
|
|
71
67
|
import { emitMutation, emitDryRun } from '../emit.js';
|
|
72
68
|
const inputSchema = z
|
|
73
69
|
.object({
|
|
@@ -116,58 +112,9 @@ export const updateUploadCommand = {
|
|
|
116
112
|
// Same fs.stat() + fs.access(R_OK) pre-check shape as
|
|
117
113
|
// `item upload` (round-1 P2-2 fix). Pre-resolveClient so a
|
|
118
114
|
// missing/unreadable-file error surfaces as usage_error
|
|
119
|
-
// (exit 1) before any token check.
|
|
120
|
-
|
|
121
|
-
const filename =
|
|
122
|
-
let fileSizeBytes;
|
|
123
|
-
try {
|
|
124
|
-
const stats = await fsStat(filePath);
|
|
125
|
-
if (!stats.isFile()) {
|
|
126
|
-
throw new UsageError(`<file> ${JSON.stringify(parsed.file)} is not a regular file ` +
|
|
127
|
-
`(resolved to ${JSON.stringify(filePath)}).`, {
|
|
128
|
-
details: {
|
|
129
|
-
reason: 'file_not_readable',
|
|
130
|
-
file_path: filePath,
|
|
131
|
-
hint: 'pass a path to a regular readable file; directories ' +
|
|
132
|
-
'and special files (sockets, devices) are rejected.',
|
|
133
|
-
},
|
|
134
|
-
});
|
|
135
|
-
}
|
|
136
|
-
await fsAccess(filePath, fsConstants.R_OK);
|
|
137
|
-
fileSizeBytes = stats.size;
|
|
138
|
-
}
|
|
139
|
-
catch (err) {
|
|
140
|
-
if (err instanceof UsageError) {
|
|
141
|
-
throw err;
|
|
142
|
-
}
|
|
143
|
-
const code = errorCode(err);
|
|
144
|
-
throw new UsageError(`<file> ${JSON.stringify(parsed.file)} cannot be read ` +
|
|
145
|
-
`(resolved to ${JSON.stringify(filePath)}): ` +
|
|
146
|
-
`${asError(err).message}.`, {
|
|
147
|
-
cause: err,
|
|
148
|
-
details: {
|
|
149
|
-
reason: 'file_not_readable',
|
|
150
|
-
file_path: filePath,
|
|
151
|
-
...(code === undefined ? {} : { errno_code: code }),
|
|
152
|
-
hint: 'check that the path exists, is readable by the current ' +
|
|
153
|
-
'user, and isn\'t a directory.',
|
|
154
|
-
},
|
|
155
|
-
});
|
|
156
|
-
}
|
|
157
|
-
if (fileSizeBytes === 0) {
|
|
158
|
-
throw new UsageError(`<file> ${JSON.stringify(parsed.file)} is empty (0 bytes); ` +
|
|
159
|
-
`Monday rejects empty uploads server-side.`, {
|
|
160
|
-
details: {
|
|
161
|
-
reason: 'file_empty',
|
|
162
|
-
file_path: filePath,
|
|
163
|
-
filename,
|
|
164
|
-
file_size_bytes: 0,
|
|
165
|
-
hint: 'Monday returns FILE_SIZE_LIMIT_EXCEEDED on empty ' +
|
|
166
|
-
'uploads. Provide a non-empty file or remove the upload ' +
|
|
167
|
-
'call.',
|
|
168
|
-
},
|
|
169
|
-
});
|
|
170
|
-
}
|
|
115
|
+
// (exit 1) before any token check. Lifted to a shared
|
|
116
|
+
// helper at v0.6-M38 IMPL kickoff per R-v0.6-NEW-1.
|
|
117
|
+
const { filePath, filename, fileSizeBytes } = await precheckLocalFile(parsed.file);
|
|
171
118
|
const { client, globalFlags, apiVersion, multipart, toEmit } = resolveClient(ctx, program.opts());
|
|
172
119
|
if (globalFlags.dryRun) {
|
|
173
120
|
// D5 closure mirror — dry-run is fs.stat()-backed; no
|
|
@@ -195,8 +142,11 @@ export const updateUploadCommand = {
|
|
|
195
142
|
});
|
|
196
143
|
return;
|
|
197
144
|
}
|
|
198
|
-
const
|
|
199
|
-
|
|
145
|
+
const file = await buildBlobFromPath({
|
|
146
|
+
filePath,
|
|
147
|
+
filename,
|
|
148
|
+
fileSizeBytes,
|
|
149
|
+
});
|
|
200
150
|
const result = await addFileToUpdate({
|
|
201
151
|
client,
|
|
202
152
|
multipart,
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"upload.js","sourceRoot":"","sources":["../../../src/commands/update/upload.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA0DG;AACH,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AACxB,OAAO,EAAE,
|
|
1
|
+
{"version":3,"file":"upload.js","sourceRoot":"","sources":["../../../src/commands/update/upload.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
import type { TeamMembershipResult, TeamUser } from '../../api/teams.js';
|
|
2
|
+
export interface ProjectMembershipResultsInputs {
|
|
3
|
+
readonly inputUserIds: readonly string[];
|
|
4
|
+
readonly failedUsers: readonly TeamUser[];
|
|
5
|
+
readonly successfulUsers: readonly TeamUser[];
|
|
6
|
+
readonly operation: 'add_users_to_team' | 'remove_users_from_team';
|
|
7
|
+
readonly teamId: string;
|
|
8
|
+
}
|
|
9
|
+
export declare const projectMembershipResults: (inputs: ProjectMembershipResultsInputs) => readonly TeamMembershipResult[];
|
|
10
|
+
//# sourceMappingURL=_team-membership.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"_team-membership.d.ts","sourceRoot":"","sources":["../../../src/commands/user/_team-membership.ts"],"names":[],"mappings":"AAoCA,OAAO,KAAK,EACV,oBAAoB,EACpB,QAAQ,EACT,MAAM,oBAAoB,CAAC;AAE5B,MAAM,WAAW,8BAA8B;IAC7C,QAAQ,CAAC,YAAY,EAAE,SAAS,MAAM,EAAE,CAAC;IACzC,QAAQ,CAAC,WAAW,EAAE,SAAS,QAAQ,EAAE,CAAC;IAC1C,QAAQ,CAAC,eAAe,EAAE,SAAS,QAAQ,EAAE,CAAC;IAC9C,QAAQ,CAAC,SAAS,EAAE,mBAAmB,GAAG,wBAAwB,CAAC;IACnE,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAC;CACzB;AAgBD,eAAO,MAAM,wBAAwB,GACnC,QAAQ,8BAA8B,KACrC,SAAS,oBAAoB,EA2C/B,CAAC"}
|
|
@@ -0,0 +1,88 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Shared partial-success projection helper for the two team-
|
|
3
|
+
* membership verbs (`monday user team-add-members` +
|
|
4
|
+
* `monday user team-remove-members`).
|
|
5
|
+
*
|
|
6
|
+
* Both verbs receive a wire `ChangeTeamMembershipsResult` shape
|
|
7
|
+
* (`failed_users: [User!]` + `successful_users: [User!]`) and
|
|
8
|
+
* must project to the universal §6.1 partial-success envelope's
|
|
9
|
+
* `results: [{user_id, ok, ...}]` shape with input order
|
|
10
|
+
* preserved. The two action bodies' projection logic is
|
|
11
|
+
* byte-identical modulo the `operation` literal — lifting at
|
|
12
|
+
* IMPL kickoff keeps both call sites at one helper invocation +
|
|
13
|
+
* pins the input-order + bucket-lookup discipline in one place.
|
|
14
|
+
*
|
|
15
|
+
* **Wire-vs-CLI semantics asymmetry.** Monday's `failed_users[]`
|
|
16
|
+
* carries the User object but no per-user reason on the wire;
|
|
17
|
+
* the projection emits a generic `membership_failed` error code.
|
|
18
|
+
* See `teamMembershipResultSchema` JSDoc in `src/api/teams.ts`
|
|
19
|
+
* for the canonical asymmetry note + `docs/architecture.md`
|
|
20
|
+
* cross-link (R-NEW-41 4th consumer trigger).
|
|
21
|
+
*
|
|
22
|
+
* **Input-order discipline.** Result order mirrors the input
|
|
23
|
+
* `--users <id,...>` order; for each input user_id the helper
|
|
24
|
+
* looks up in the failed set first (preserving wire's explicit
|
|
25
|
+
* failure flag) then the successful map. An input user_id
|
|
26
|
+
* missing from BOTH buckets surfaces `internal_error` —
|
|
27
|
+
* Monday's wire is expected to return every input user in one
|
|
28
|
+
* bucket, and a missing user indicates a wire-shape regression
|
|
29
|
+
* worth surfacing loudly rather than silently dropping a record.
|
|
30
|
+
*
|
|
31
|
+
* **Single-file scope.** The `_` prefix mirrors the M26b
|
|
32
|
+
* `dev/_shared.ts` cadence — module-private helpers shared
|
|
33
|
+
* across sibling commands but never exported beyond the
|
|
34
|
+
* containing namespace.
|
|
35
|
+
*/
|
|
36
|
+
import { ApiError } from '../../utils/errors.js';
|
|
37
|
+
/**
|
|
38
|
+
* Generic per-user failure message used when Monday's wire
|
|
39
|
+
* surfaces a user in `failed_users[]` without a per-user reason
|
|
40
|
+
* (the wire's `ChangeTeamMembershipsResult` carries no error /
|
|
41
|
+
* reason / message slot — round-2 probe verified 2 fields only).
|
|
42
|
+
* Surfacing a uniform message keeps agent recovery flows
|
|
43
|
+
* predictable; agents key off `error.code === 'membership_failed'`
|
|
44
|
+
* to retry or surface to the user.
|
|
45
|
+
*/
|
|
46
|
+
const FAILED_MEMBERSHIP_MESSAGE = 'Monday rejected this user for team membership change ' +
|
|
47
|
+
'(no per-user reason on the wire — see `docs/architecture.md` ' +
|
|
48
|
+
'Wire-vs-CLI semantics documentation conventions).';
|
|
49
|
+
export const projectMembershipResults = (inputs) => {
|
|
50
|
+
const failedById = new Map();
|
|
51
|
+
for (const user of inputs.failedUsers) {
|
|
52
|
+
failedById.set(user.id, user);
|
|
53
|
+
}
|
|
54
|
+
const successfulById = new Map();
|
|
55
|
+
for (const user of inputs.successfulUsers) {
|
|
56
|
+
successfulById.set(user.id, user);
|
|
57
|
+
}
|
|
58
|
+
return inputs.inputUserIds.map((userId) => {
|
|
59
|
+
if (failedById.has(userId)) {
|
|
60
|
+
return {
|
|
61
|
+
user_id: userId,
|
|
62
|
+
ok: false,
|
|
63
|
+
error: {
|
|
64
|
+
code: 'membership_failed',
|
|
65
|
+
message: FAILED_MEMBERSHIP_MESSAGE,
|
|
66
|
+
},
|
|
67
|
+
};
|
|
68
|
+
}
|
|
69
|
+
const successful = successfulById.get(userId);
|
|
70
|
+
if (successful !== undefined) {
|
|
71
|
+
return {
|
|
72
|
+
user_id: userId,
|
|
73
|
+
ok: true,
|
|
74
|
+
user: successful,
|
|
75
|
+
};
|
|
76
|
+
}
|
|
77
|
+
throw new ApiError('internal_error', `Monday's ${inputs.operation} response omitted user ${userId} from both failed_users and successful_users (wire-shape regression).`, {
|
|
78
|
+
details: {
|
|
79
|
+
team_id: inputs.teamId,
|
|
80
|
+
user_id: userId,
|
|
81
|
+
operation: inputs.operation,
|
|
82
|
+
hint: 'wire shape regression — re-probe ' +
|
|
83
|
+
'`ChangeTeamMembershipsResult` to confirm bucket semantics',
|
|
84
|
+
},
|
|
85
|
+
});
|
|
86
|
+
});
|
|
87
|
+
};
|
|
88
|
+
//# sourceMappingURL=_team-membership.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"_team-membership.js","sourceRoot":"","sources":["../../../src/commands/user/_team-membership.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAkCG;AACH,OAAO,EAAE,QAAQ,EAAE,MAAM,uBAAuB,CAAC;AAcjD;;;;;;;;GAQG;AACH,MAAM,yBAAyB,GAC7B,uDAAuD;IACvD,+DAA+D;IAC/D,mDAAmD,CAAC;AAEtD,MAAM,CAAC,MAAM,wBAAwB,GAAG,CACtC,MAAsC,EACL,EAAE;IACnC,MAAM,UAAU,GAAG,IAAI,GAAG,EAAoB,CAAC;IAC/C,KAAK,MAAM,IAAI,IAAI,MAAM,CAAC,WAAW,EAAE,CAAC;QACtC,UAAU,CAAC,GAAG,CAAC,IAAI,CAAC,EAAE,EAAE,IAAI,CAAC,CAAC;IAChC,CAAC;IACD,MAAM,cAAc,GAAG,IAAI,GAAG,EAAoB,CAAC;IACnD,KAAK,MAAM,IAAI,IAAI,MAAM,CAAC,eAAe,EAAE,CAAC;QAC1C,cAAc,CAAC,GAAG,CAAC,IAAI,CAAC,EAAE,EAAE,IAAI,CAAC,CAAC;IACpC,CAAC;IACD,OAAO,MAAM,CAAC,YAAY,CAAC,GAAG,CAAC,CAAC,MAAM,EAAwB,EAAE;QAC9D,IAAI,UAAU,CAAC,GAAG,CAAC,MAAM,CAAC,EAAE,CAAC;YAC3B,OAAO;gBACL,OAAO,EAAE,MAAM;gBACf,EAAE,EAAE,KAAK;gBACT,KAAK,EAAE;oBACL,IAAI,EAAE,mBAAmB;oBACzB,OAAO,EAAE,yBAAyB;iBACnC;aACF,CAAC;QACJ,CAAC;QACD,MAAM,UAAU,GAAG,cAAc,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC;QAC9C,IAAI,UAAU,KAAK,SAAS,EAAE,CAAC;YAC7B,OAAO;gBACL,OAAO,EAAE,MAAM;gBACf,EAAE,EAAE,IAAI;gBACR,IAAI,EAAE,UAAU;aACjB,CAAC;QACJ,CAAC;QACD,MAAM,IAAI,QAAQ,CAChB,gBAAgB,EAChB,YAAY,MAAM,CAAC,SAAS,0BAA0B,MAAM,uEAAuE,EACnI;YACE,OAAO,EAAE;gBACP,OAAO,EAAE,MAAM,CAAC,MAAM;gBACtB,OAAO,EAAE,MAAM;gBACf,SAAS,EAAE,MAAM,CAAC,SAAS;gBAC3B,IAAI,EACF,mCAAmC;oBACnC,2DAA2D;aAC9D;SACF,CACF,CAAC;IACJ,CAAC,CAAC,CAAC;AACL,CAAC,CAAC"}
|