monday-cli 0.6.0 → 0.7.1
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 +438 -0
- package/README.md +165 -52
- package/dist/api/board-metadata.d.ts +7 -4
- package/dist/api/board-metadata.d.ts.map +1 -1
- package/dist/api/board-metadata.js +21 -6
- package/dist/api/board-metadata.js.map +1 -1
- package/dist/api/column-types.d.ts +61 -28
- package/dist/api/column-types.d.ts.map +1 -1
- package/dist/api/column-types.js +32 -13
- package/dist/api/column-types.js.map +1 -1
- package/dist/api/column-values.d.ts +22 -17
- package/dist/api/column-values.d.ts.map +1 -1
- package/dist/api/column-values.js +50 -34
- package/dist/api/column-values.js.map +1 -1
- package/dist/api/file-column-set.d.ts +164 -58
- package/dist/api/file-column-set.d.ts.map +1 -1
- package/dist/api/file-column-set.js +168 -110
- package/dist/api/file-column-set.js.map +1 -1
- package/dist/api/raw-write.d.ts +29 -18
- package/dist/api/raw-write.d.ts.map +1 -1
- package/dist/api/raw-write.js +48 -26
- package/dist/api/raw-write.js.map +1 -1
- package/dist/commands/board/column-create.d.ts +11 -6
- package/dist/commands/board/column-create.d.ts.map +1 -1
- package/dist/commands/board/column-create.js +23 -12
- package/dist/commands/board/column-create.js.map +1 -1
- package/dist/commands/board/describe.d.ts +5 -3
- package/dist/commands/board/describe.d.ts.map +1 -1
- package/dist/commands/board/describe.js +12 -4
- package/dist/commands/board/describe.js.map +1 -1
- package/dist/commands/emit.d.ts.map +1 -1
- package/dist/commands/emit.js +19 -16
- package/dist/commands/emit.js.map +1 -1
- package/dist/commands/item/create.d.ts +24 -8
- package/dist/commands/item/create.d.ts.map +1 -1
- package/dist/commands/item/create.js +494 -35
- package/dist/commands/item/create.js.map +1 -1
- package/dist/commands/item/update.d.ts +175 -6
- package/dist/commands/item/update.d.ts.map +1 -1
- package/dist/commands/item/update.js +697 -29
- package/dist/commands/item/update.js.map +1 -1
- package/dist/utils/output/select.d.ts +22 -0
- package/dist/utils/output/select.d.ts.map +1 -1
- package/dist/utils/output/select.js +30 -0
- package/dist/utils/output/select.js.map +1 -1
- package/dist/utils/output/table.d.ts +9 -0
- package/dist/utils/output/table.d.ts.map +1 -1
- package/dist/utils/output/table.js +13 -3
- package/dist/utils/output/table.js.map +1 -1
- package/package.json +1 -1
- package/dist/commands/update/body-source.d.ts +0 -38
- package/dist/commands/update/body-source.d.ts.map +0 -1
- package/dist/commands/update/body-source.js +0 -80
- package/dist/commands/update/body-source.js.map +0 -1
package/README.md
CHANGED
|
@@ -49,7 +49,7 @@ Requires **Node.js ≥ 22**.
|
|
|
49
49
|
# Get one at https://<your-org>.monday.com/admin/integrations/api
|
|
50
50
|
#
|
|
51
51
|
# OAuth login (`monday auth login`) is registered but deferred in
|
|
52
|
-
# v0.
|
|
52
|
+
# v0.7.0 — the verb surfaces a clear `usage_error.details.reason:
|
|
53
53
|
# oauth_unregistered` pointing here. Authenticate via the env var.
|
|
54
54
|
export MONDAY_API_TOKEN="<your-token>"
|
|
55
55
|
|
|
@@ -117,17 +117,31 @@ monday user team-list --json
|
|
|
117
117
|
monday user team-create --name "Platform" --users 7,9 --json
|
|
118
118
|
monday user team-add-members <tid> --users 11,13 --json
|
|
119
119
|
|
|
120
|
-
# 13. Files-shaped friendly `--set` writes
|
|
121
|
-
#
|
|
122
|
-
#
|
|
123
|
-
#
|
|
124
|
-
#
|
|
125
|
-
#
|
|
126
|
-
#
|
|
127
|
-
#
|
|
120
|
+
# 13. Files-shaped friendly `--set` writes — the v0.6 → v0.7 carve-out
|
|
121
|
+
# set, all four CLI shapes reaching Monday's `add_file_to_column`
|
|
122
|
+
# multipart wire:
|
|
123
|
+
# - v0.6-M38 ships single-item friendly `--set <file-col>=<path>`
|
|
124
|
+
# on `monday item set` + `monday item update <iid>` (sibling-
|
|
125
|
+
# branch dispatch at the column-resolution boundary).
|
|
126
|
+
# - v0.7-M42 ships the bulk variant on `monday item update --where
|
|
127
|
+
# ... --set <file-col>=<path>` (per-item multipart fan-out under
|
|
128
|
+
# `--concurrency` / `--continue-on-error`).
|
|
129
|
+
# - v0.7-M43 ships the create-time variant on `monday item create
|
|
130
|
+
# --set <file-col>=<path>` as a two-leg `create_item` +
|
|
131
|
+
# `add_file_to_column` dispatch under the §5.8 orphan-warn
|
|
132
|
+
# atomicity envelope.
|
|
133
|
+
# The v0.4-M31 verb-shaped `monday item upload` path remains as
|
|
134
|
+
# the alternative. `--dry-run` emits `planned_changes` on every
|
|
135
|
+
# shape without the multipart round-trip.
|
|
128
136
|
monday item set 67890 'Attachments'=./screenshot.png --json
|
|
129
137
|
monday item update 67890 --set 'Attachments'=./diagram.png --json
|
|
130
138
|
monday item update 67890 --set 'Attachments'=./report.pdf --dry-run --json
|
|
139
|
+
monday item update --board 12345 --where status=Backlog \
|
|
140
|
+
--set 'Attachments'=./report.pdf --yes --continue-on-error \
|
|
141
|
+
--concurrency 4 --json # v0.7-M42 bulk file dispatch
|
|
142
|
+
monday item create --board 12345 --name "Field report" \
|
|
143
|
+
--set 'Attachments'=./report.pdf --set status='Working on it' \
|
|
144
|
+
--json # v0.7-M43 create-time file --set
|
|
131
145
|
|
|
132
146
|
# 14. Find-or-create with idempotent matching (v0.2)
|
|
133
147
|
# Re-running with the same args is safe — 0/1/2+ matches route to
|
|
@@ -214,7 +228,7 @@ Every JSON response uses the same universal envelope:
|
|
|
214
228
|
"meta": {
|
|
215
229
|
"schema_version": "1",
|
|
216
230
|
"api_version": "2026-01",
|
|
217
|
-
"cli_version": "0.
|
|
231
|
+
"cli_version": "0.7.0",
|
|
218
232
|
"request_id": "0e6f1a7b-...",
|
|
219
233
|
"source": "live",
|
|
220
234
|
"cache_age_seconds": null,
|
|
@@ -314,7 +328,34 @@ See [`.env.example`](./.env.example) for all supported variables
|
|
|
314
328
|
|
|
315
329
|
## Scope
|
|
316
330
|
|
|
317
|
-
**v0.
|
|
331
|
+
**v0.7.0 (current — `monday-cli@0.7.0` on npm):**
|
|
332
|
+
the v0.6 surface PLUS the two file-`--set` carve-outs deferred at
|
|
333
|
+
v0.6-M38 — bulk `monday item update --where ... --set <file-col>=
|
|
334
|
+
<path>` (M42, per-item multipart fan-out under `--concurrency` /
|
|
335
|
+
`--continue-on-error`) and create-time `monday item create --set
|
|
336
|
+
<file-col>=<path>` (M43, two-leg `create_item` + `add_file_to_
|
|
337
|
+
column` dispatch under the §5.8 orphan-warn atomicity envelope).
|
|
338
|
+
**No breaking changes vs v0.6.0** — the v0.7 surface is additive
|
|
339
|
+
(M42 + M43 only). Built incrementally as two milestones (M42 +
|
|
340
|
+
M43); both close v0.6-M38 D5 / D6 deferrals so the friendly file-
|
|
341
|
+
`--set` form now reaches every callShape (single-item / bulk /
|
|
342
|
+
create-time). The originally-planned Monday API `2026-04` pin
|
|
343
|
+
bump (M39) + `monday item set-description` (M40) + `monday doc
|
|
344
|
+
block-create-bulk` (M41) DEFERRED at 2026-05-20 pending
|
|
345
|
+
`@mondaydotcomorg/api` SDK 15.x publishing with
|
|
346
|
+
`CURRENT_VERSION = '2026-04'` natively — see the per-milestone
|
|
347
|
+
breakdown below. See [CHANGELOG.md](./CHANGELOG.md) for the full
|
|
348
|
+
per-milestone release notes.
|
|
349
|
+
|
|
350
|
+
**OAuth deferral (unchanged from v0.6.0).** `monday auth login` is
|
|
351
|
+
registered but the canonical Monday OAuth app is not registered in
|
|
352
|
+
v0.7.0; the verb surfaces a clear `usage_error.details.reason:
|
|
353
|
+
oauth_unregistered` pointing at `MONDAY_API_TOKEN`. Multi-profile
|
|
354
|
+
config + per-profile credentials cache work fully against API
|
|
355
|
+
tokens; OAuth registration revisits in v0.7.x / v0.8 contingent on
|
|
356
|
+
user demand.
|
|
357
|
+
|
|
358
|
+
**v0.6.0 (the previous release):**
|
|
318
359
|
the v0.5 surface PLUS files-shaped friendly `--set <file-col>=<path>`
|
|
319
360
|
writes on `monday item set` + `monday item update` (single-item
|
|
320
361
|
paths), closing the v0.4 → v0.5 → v0.6 carry-over of the inline
|
|
@@ -323,18 +364,10 @@ routes file `--set` to the v0.4-M31 `add_file_to_column` multipart
|
|
|
323
364
|
wire; the friendly translator stays JSON-output-shaped for the 13
|
|
324
365
|
existing writable types. **No breaking changes vs v0.5.0** — the
|
|
325
366
|
v0.6 surface is additive (M38 only). Built as a single milestone
|
|
326
|
-
(M38).
|
|
327
|
-
|
|
367
|
+
(M38). The bulk + create-time carve-outs deferred at v0.6-M38
|
|
368
|
+
(D5 / D6) carry forward to v0.7 (above).
|
|
328
369
|
|
|
329
|
-
**
|
|
330
|
-
registered but the canonical Monday OAuth app is not registered in
|
|
331
|
-
v0.6.0; the verb surfaces a clear `usage_error.details.reason:
|
|
332
|
-
oauth_unregistered` pointing at `MONDAY_API_TOKEN`. Multi-profile
|
|
333
|
-
config + per-profile credentials cache work fully against API
|
|
334
|
-
tokens; OAuth registration revisits in v0.6.x / v0.7 contingent on
|
|
335
|
-
user demand.
|
|
336
|
-
|
|
337
|
-
**v0.5.0 (the previous release):**
|
|
370
|
+
**v0.5.0 (the prior release):**
|
|
338
371
|
the v0.4 surface PLUS the full team-writer surface
|
|
339
372
|
(`monday user team-list/get/create/delete/add-members/remove-members`),
|
|
340
373
|
the full Monday workdocs CRUD mutation surface — doc-level
|
|
@@ -344,7 +377,7 @@ and doc-content import (`monday doc import-html/append-markdown`) —
|
|
|
344
377
|
closing the v0.4-M32 workdocs-mutation deferral. **16 new CLI
|
|
345
378
|
verbs across 9 wire mutations.** Built incrementally across M34–M37.
|
|
346
379
|
|
|
347
|
-
**v0.4.0 (the
|
|
380
|
+
**v0.4.0 (the earlier release):**
|
|
348
381
|
the v0.3 surface PLUS long-poll item activity streaming
|
|
349
382
|
(`monday item watch <iid>` — NDJSON), parallel bulk dispatch
|
|
350
383
|
(`monday item update --where ... --concurrency <N>`), asset uploads
|
|
@@ -354,7 +387,7 @@ workdocs CRUD mutation surface deferred to v0.5; shipped at v0.5),
|
|
|
354
387
|
and shell completion (`monday completion bash|zsh|fish`). Built
|
|
355
388
|
incrementally across M29–M33.
|
|
356
389
|
|
|
357
|
-
**v0.3.0 (
|
|
390
|
+
**v0.3.0 (an even-earlier release):**
|
|
358
391
|
the v0.2 mutating core PLUS the Monday Dev convention layer
|
|
359
392
|
(`monday dev` namespace — sprint / epic / release / task workflow
|
|
360
393
|
shortcuts on top of standard board CRUD), multi-profile auth
|
|
@@ -644,6 +677,69 @@ row `tags`, `board_relation`, `dependency`.
|
|
|
644
677
|
D13 empirical-probe pinning (rejected at 500KB, OK at 250KB on
|
|
645
678
|
both surfaces).
|
|
646
679
|
|
|
680
|
+
**What v0.7 added (M42 + M43; full per-milestone narrative in
|
|
681
|
+
[CHANGELOG.md](./CHANGELOG.md)):**
|
|
682
|
+
|
|
683
|
+
- **M42** — `monday item update --where ... --set <file-col>=
|
|
684
|
+
<path>` ships the bulk file-`--set` carve-out fold deferred at
|
|
685
|
+
v0.6-M38 D5. Per-item multipart fan-out across the `--where`-
|
|
686
|
+
resolved item-id set, dispatched through the existing v0.4-M30
|
|
687
|
+
`dispatchParallel` over a shared `MultipartTransport`. `--
|
|
688
|
+
concurrency 1..32` (default 1) opts into bounded parallel
|
|
689
|
+
dispatch; `--continue-on-error` partitions per-item wire
|
|
690
|
+
failures into the M25 partial-success envelope while leaving
|
|
691
|
+
whole-call-abort semantics for the upfront local file pre-check
|
|
692
|
+
(cli-design §5.8). New aggregate `data.summary` slots:
|
|
693
|
+
`column_id` / `filename` / `file_size_bytes` echo the dispatched
|
|
694
|
+
file alongside `matched_count` / `applied_count` / `failed_count`.
|
|
695
|
+
Reuses M31's multipart wire verbatim + v0.6-M38's
|
|
696
|
+
`executeFileColumnSet` runtime body — no new wire op. The pre-
|
|
697
|
+
v0.7-M42 literal `"file_set_on_bulk_unsupported"` (the M38 D5
|
|
698
|
+
rejection) stays RESERVED in docstrings + regression-guarded;
|
|
699
|
+
the runtime path no longer surfaces it.
|
|
700
|
+
|
|
701
|
+
- **M43** — `monday item create --set <file-col>=<path>` ships
|
|
702
|
+
the create-time file-`--set` carve-out fold deferred at v0.6-
|
|
703
|
+
M38 D6. Two-leg dispatch: leg-1 `create_item` bundles the non-
|
|
704
|
+
file `column_values` atomically into the wire call; leg-2
|
|
705
|
+
`add_file_to_column` attaches the file to the newly-created
|
|
706
|
+
item. Pair is non-atomic by construction — leg-2 failure
|
|
707
|
+
surfaces `internal_error` with `details.reason: "create_then_
|
|
708
|
+
file_upload_partial_failure"` + `details.created_item_id`
|
|
709
|
+
echoing the leg-1 orphan + `details.column_id` + `details.
|
|
710
|
+
cause` (M31 wire-failure projection) + `details.hint`
|
|
711
|
+
directing agents to retry leg-2 alone (`monday item set <iid>
|
|
712
|
+
<file-col>=<path>`) OR rollback (`monday item delete <iid>
|
|
713
|
+
--yes`) per the §5.8 orphan-warn atomicity envelope (D1
|
|
714
|
+
closure). `--dry-run` emits two `planned_changes` entries
|
|
715
|
+
(`create_item` with bundled non-file `column_values`, then
|
|
716
|
+
`add_file_to_column`); leg-2 carries no `item_id` slot because
|
|
717
|
+
the item doesn't exist at dry-run time. Reuses M31's multipart
|
|
718
|
+
wire + v0.6-M38's `executeFileColumnSet` runtime body — no new
|
|
719
|
+
wire op. The pre-v0.7-M43 literal
|
|
720
|
+
`"file_set_on_create_unsupported"` (the M38 D6 rejection) stays
|
|
721
|
+
RESERVED + regression-guarded; the runtime path no longer
|
|
722
|
+
surfaces it. The mixed-set mutex rule SUPPRESSED on
|
|
723
|
+
`'item_create'` per D6 asymmetry — `create_item` natively
|
|
724
|
+
bundles non-file `column_values` atomically into leg-1 so the
|
|
725
|
+
multi-`--set` shape is legitimate at create time (universal
|
|
726
|
+
multi-file mutex still applies — 2+ file entries reject as
|
|
727
|
+
before).
|
|
728
|
+
|
|
729
|
+
- **Deferred from v0.7 (pending SDK 15.x with `CURRENT_VERSION
|
|
730
|
+
= '2026-04'` natively):** M39 (Monday API pin bump `2026-01`
|
|
731
|
+
→ `2026-04`), M40 (`monday item set-description <iid>` via
|
|
732
|
+
`set_item_description_content`), M41 (`monday doc block-
|
|
733
|
+
create-bulk <did>` via `create_doc_blocks`). The original
|
|
734
|
+
v0.7 framing collapsed to the M42 + M43 carve-out folds at
|
|
735
|
+
2026-05-20 because (a) SDK 15.x hadn't published, (b) M40's
|
|
736
|
+
empirical probe revealed paid-tier gating + opaque
|
|
737
|
+
`INTERNAL_SERVER_ERROR { service: 'docs-api' }` on free-tier
|
|
738
|
+
accounts, and (c) the string-literal API-version override
|
|
739
|
+
carried maintenance overhead disproportionate to a single
|
|
740
|
+
user-blocked verb. Findings preserved for the re-attempt
|
|
741
|
+
session.
|
|
742
|
+
|
|
647
743
|
**What v0.6 added (M38; full per-milestone narrative in
|
|
648
744
|
[CHANGELOG.md](./CHANGELOG.md)):**
|
|
649
745
|
|
|
@@ -654,17 +750,28 @@ row `tags`, `board_relation`, `dependency`.
|
|
|
654
750
|
dispatch at the column-resolution boundary routes file `--set`
|
|
655
751
|
to the v0.4-M31 `add_file_to_column` multipart wire; the
|
|
656
752
|
friendly translator stays JSON-output-shaped for the 13
|
|
657
|
-
existing writable types (per D1 closure). Mutex rules
|
|
658
|
-
|
|
753
|
+
existing writable types (per D1 closure). Mutex rules
|
|
754
|
+
(post v0.7-M42 + v0.7-M43 carve-out folds): exactly one
|
|
755
|
+
file `--set` per call on every callShape (universal multi-
|
|
756
|
+
file mutex — 2+ entries surface `usage_error.details.reason:
|
|
757
|
+
"multi_file_set_unsupported"`); mixing a file `--set` with
|
|
659
758
|
any value `--set` / `--set-raw` / `--name` surfaces `usage_
|
|
660
|
-
error.details.reason: "mixed_file_and_value_sets"
|
|
661
|
-
|
|
662
|
-
|
|
663
|
-
|
|
664
|
-
|
|
665
|
-
|
|
666
|
-
|
|
667
|
-
|
|
759
|
+
error.details.reason: "mixed_file_and_value_sets"` on
|
|
760
|
+
`'item_set'` / `'item_update_single'` / `'item_update_bulk'`,
|
|
761
|
+
SUPPRESSED on `'item_create'` per v0.7-M43 D6 asymmetry
|
|
762
|
+
(`create_item` natively bundles non-file `column_values`
|
|
763
|
+
atomically into leg-1). The bulk `item update --where ...
|
|
764
|
+
--set <file-col>=<path>` path shipped at v0.7-M42 (D5
|
|
765
|
+
carve-out fold; per-item multipart fan-out under
|
|
766
|
+
`--concurrency` / `--continue-on-error`); the create-time
|
|
767
|
+
`item create --set <file-col>=<path>` path shipped at
|
|
768
|
+
v0.7-M43 (D6 carve-out fold; two-leg `create_item` +
|
|
769
|
+
`add_file_to_column` dispatch under the §5.8 orphan-warn
|
|
770
|
+
atomicity envelope). The v0.6-M38 literals
|
|
771
|
+
`"file_set_on_bulk_unsupported"` and
|
|
772
|
+
`"file_set_on_create_unsupported"` stay RESERVED in
|
|
773
|
+
docstrings + regression-guarded; the runtime path no longer
|
|
774
|
+
surfaces them. `--set-raw <file-col>=<json>` STAYS REJECTED
|
|
668
775
|
per D3 — Monday's wire has no JSON-shape for
|
|
669
776
|
`change_column_value` on file columns; `monday item upload`
|
|
670
777
|
from v0.4-M31 remains the verb-shaped alternative path. **No
|
|
@@ -673,27 +780,33 @@ row `tags`, `board_relation`, `dependency`.
|
|
|
673
780
|
`unsupported_column_type` / `not_found` / `validation_failed`
|
|
674
781
|
codes with `details.reason` discrimination).
|
|
675
782
|
|
|
676
|
-
**v0.
|
|
783
|
+
**v0.8 (next):** **Carry-forward backlog** (unpicked
|
|
677
784
|
candidates remain in cli-design.md §13 slipped-candidates list
|
|
678
785
|
pending future candidate-selection sessions): multi-level
|
|
679
786
|
subitems remain conditional on Monday's data model surfacing
|
|
680
|
-
them (slipped from v0.4 → v0.5 → v0.6 → v0.7 across
|
|
681
|
-
consecutive release-preps — Monday's `sub_items_board`
|
|
682
|
-
carries no `subtasks` column at API `2026-01
|
|
683
|
-
|
|
684
|
-
|
|
685
|
-
|
|
686
|
-
|
|
687
|
-
|
|
688
|
-
|
|
689
|
-
|
|
690
|
-
|
|
691
|
-
|
|
692
|
-
|
|
693
|
-
|
|
694
|
-
|
|
695
|
-
file
|
|
696
|
-
|
|
787
|
+
them (slipped from v0.4 → v0.5 → v0.6 → v0.7 → v0.8 across
|
|
788
|
+
four consecutive release-preps — Monday's `sub_items_board`
|
|
789
|
+
still carries no `subtasks` column at API `2026-01`, and v0.7
|
|
790
|
+
pivoted away from API `2026-04` at 2026-05-20 so the data-
|
|
791
|
+
model probe gate moves to v0.8's planned `2026-07` pin);
|
|
792
|
+
cross-board `item move` value-overrides (Monday's
|
|
793
|
+
`ColumnMappingInput` still carries no value slot — slipped four
|
|
794
|
+
times for the same reason); resumable cross-board cursor
|
|
795
|
+
pagination (per-board cursor-lifetime under aggregation needs
|
|
796
|
+
design work); profile-scoped argument defaults (filed at the
|
|
797
|
+
v0.6 kickoff candidate-selection session — extends `~/.monday-
|
|
798
|
+
cli/config.toml` with a `[profiles.<name>.defaults]` table
|
|
799
|
+
carrying scoping args; requires a prerequisite §13 carve-out
|
|
800
|
+
Decision at pre-flight distinguishing aliases-as-stored-
|
|
801
|
+
command-strings (still non-goal) from defaults-as-stored-flag-
|
|
802
|
+
values (carve-out)). Multi-file `--set` per call (v0.6-M38 D2
|
|
803
|
+
deferral) and file-`--set` stdin support (v0.6-M38 D7 deferral)
|
|
804
|
+
remain v0.7.x / future candidates. **v0.7-deferred milestones**:
|
|
805
|
+
M39 (API pin `2026-04`) + M40 (`item set-description`) + M41
|
|
806
|
+
(`doc block-create-bulk`) re-open when `@mondaydotcomorg/api`
|
|
807
|
+
SDK 15.x ships natively — earliest target is v0.8 if Monday's
|
|
808
|
+
SDK cadence holds (≈2 months between major SDK bumps per the
|
|
809
|
+
13.0.0 / 14.0.0 / 15.0.0 trajectory).
|
|
697
810
|
|
|
698
811
|
See [`docs/cli-design.md`](./docs/cli-design.md) §13 for the
|
|
699
812
|
full roadmap, [`docs/v0.6-plan.md`](./docs/v0.6-plan.md) for the
|
|
@@ -7,9 +7,11 @@
|
|
|
7
7
|
* The data is cached on disk via `api/cache.ts` (5-minute default TTL,
|
|
8
8
|
* `--no-cache` bypasses) and the cache miss path issues a single
|
|
9
9
|
* GraphQL call against the raw `client.raw<T>` escape hatch — the
|
|
10
|
-
* SDK's typed `boards` query doesn't expose `hierarchy_type
|
|
11
|
-
*
|
|
12
|
-
* (`
|
|
10
|
+
* SDK's typed `boards` query doesn't expose `hierarchy_type`, which
|
|
11
|
+
* the design's "describe" output requires (`cli-design.md` §2.8).
|
|
12
|
+
* (`is_leaf` was also fetched here until Monday removed it from the
|
|
13
|
+
* `Board` type at API 2026-01 — the query no longer selects it; see
|
|
14
|
+
* the schema comment + memory `project-is-leaf-live-drift`.)
|
|
13
15
|
*
|
|
14
16
|
* The cache layer holds Monday-shape JSON; this module is the *only*
|
|
15
17
|
* place that reshapes Monday's response into the projected
|
|
@@ -35,6 +37,7 @@ import { z } from 'zod';
|
|
|
35
37
|
import type { MondayClient } from './client.js';
|
|
36
38
|
import { type BoardId } from '../types/ids.js';
|
|
37
39
|
import type { Complexity } from '../utils/output/envelope.js';
|
|
40
|
+
export declare const BOARD_METADATA_QUERY = "\n query BoardMetadata($ids: [ID!]!) {\n boards(ids: $ids) {\n id\n name\n description\n state\n board_kind\n board_folder_id\n workspace_id\n url\n hierarchy_type\n items_count\n permissions\n updated_at\n groups {\n id\n title\n color\n position\n archived\n deleted\n }\n columns {\n id\n title\n type\n description\n archived\n settings_str\n width\n }\n }\n }\n";
|
|
38
41
|
declare const groupSchema: z.ZodObject<{
|
|
39
42
|
id: z.ZodString;
|
|
40
43
|
title: z.ZodString;
|
|
@@ -62,7 +65,7 @@ export declare const boardMetadataSchema: z.ZodObject<{
|
|
|
62
65
|
workspace_id: z.ZodNullable<z.ZodString>;
|
|
63
66
|
url: z.ZodNullable<z.ZodString>;
|
|
64
67
|
hierarchy_type: z.ZodNullable<z.ZodString>;
|
|
65
|
-
is_leaf: z.ZodNullable<z.ZodBoolean
|
|
68
|
+
is_leaf: z.ZodOptional<z.ZodNullable<z.ZodBoolean>>;
|
|
66
69
|
items_count: z.ZodOptional<z.ZodNullable<z.ZodNumber>>;
|
|
67
70
|
permissions: z.ZodOptional<z.ZodNullable<z.ZodString>>;
|
|
68
71
|
updated_at: z.ZodNullable<z.ZodString>;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"board-metadata.d.ts","sourceRoot":"","sources":["../../src/api/board-metadata.ts"],"names":[],"mappings":"AAAA
|
|
1
|
+
{"version":3,"file":"board-metadata.d.ts","sourceRoot":"","sources":["../../src/api/board-metadata.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAkCG;AAEH,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AASxB,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,aAAa,CAAC;AAChD,OAAO,EAAiB,KAAK,OAAO,EAAE,MAAM,iBAAiB,CAAC;AAG9D,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,6BAA6B,CAAC;AAO9D,eAAO,MAAM,oBAAoB,siBAkChC,CAAC;AAEF,QAAA,MAAM,WAAW;;;;;;;kBASN,CAAC;AAEZ,QAAA,MAAM,YAAY;;;;;;;;kBAUP,CAAC;AAEZ,eAAO,MAAM,mBAAmB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;kBAgCrB,CAAC;AAEZ,MAAM,MAAM,aAAa,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,mBAAmB,CAAC,CAAC;AAChE,MAAM,MAAM,WAAW,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,YAAY,CAAC,CAAC;AACvD,MAAM,MAAM,UAAU,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,WAAW,CAAC,CAAC;AAUrD,MAAM,WAAW,uBAAuB;IACtC,QAAQ,CAAC,MAAM,EAAE,YAAY,CAAC;IAC9B,QAAQ,CAAC,OAAO,EAAE,OAAO,GAAG,MAAM,CAAC;IACnC,6DAA6D;IAC7D,QAAQ,CAAC,GAAG,CAAC,EAAE,MAAM,CAAC,UAAU,CAAC;IACjC;;;;OAIG;IACH,QAAQ,CAAC,OAAO,CAAC,EAAE,OAAO,CAAC;IAC3B;;;;OAIG;IACH,QAAQ,CAAC,OAAO,CAAC,EAAE,OAAO,CAAC;IAC3B;;;OAGG;IACH,QAAQ,CAAC,UAAU,CAAC,EAAE,MAAM,CAAC;IAC7B;;;OAGG;IACH,QAAQ,CAAC,GAAG,CAAC,EAAE,MAAM,IAAI,CAAC;CAC3B;AAED;;;;;;;;GAQG;AACH,MAAM,WAAW,uBAAuB;IACtC,QAAQ,CAAC,QAAQ,EAAE,aAAa,CAAC;IACjC,QAAQ,CAAC,MAAM,EAAE,MAAM,GAAG,OAAO,CAAC;IAClC,QAAQ,CAAC,eAAe,EAAE,MAAM,GAAG,IAAI,CAAC;IACxC;;;;;;;OAOG;IACH,QAAQ,CAAC,UAAU,EAAE,UAAU,GAAG,IAAI,CAAC;CACxC;AAkED;;;;;;GAMG;AACH,eAAO,MAAM,iBAAiB,GAC5B,QAAQ,uBAAuB,KAC9B,OAAO,CAAC,uBAAuB,CAsDjC,CAAC;AAEF;;;;GAIG;AACH,eAAO,MAAM,oBAAoB,GAC/B,QAAQ,IAAI,CAAC,uBAAuB,EAAE,SAAS,CAAC,KAC/C,OAAO,CAAC,uBAAuB,CACe,CAAC;AAElD;;;;GAIG;AACH,eAAO,MAAM,kBAAkB,GAC7B,SAAS,OAAO,GAAG,MAAM,EAEzB,MAAK,MAAM,CAAC,UAAwB,KACnC,OAAO,CAAC,IAAI,CAId,CAAC"}
|
|
@@ -7,9 +7,11 @@
|
|
|
7
7
|
* The data is cached on disk via `api/cache.ts` (5-minute default TTL,
|
|
8
8
|
* `--no-cache` bypasses) and the cache miss path issues a single
|
|
9
9
|
* GraphQL call against the raw `client.raw<T>` escape hatch — the
|
|
10
|
-
* SDK's typed `boards` query doesn't expose `hierarchy_type
|
|
11
|
-
*
|
|
12
|
-
* (`
|
|
10
|
+
* SDK's typed `boards` query doesn't expose `hierarchy_type`, which
|
|
11
|
+
* the design's "describe" output requires (`cli-design.md` §2.8).
|
|
12
|
+
* (`is_leaf` was also fetched here until Monday removed it from the
|
|
13
|
+
* `Board` type at API 2026-01 — the query no longer selects it; see
|
|
14
|
+
* the schema comment + memory `project-is-leaf-live-drift`.)
|
|
13
15
|
*
|
|
14
16
|
* The cache layer holds Monday-shape JSON; this module is the *only*
|
|
15
17
|
* place that reshapes Monday's response into the projected
|
|
@@ -36,7 +38,12 @@ import { clearEntry, readEntry, resolveCacheRoot, writeEntry, DEFAULT_CACHE_TTL_
|
|
|
36
38
|
import { BoardIdSchema } from '../types/ids.js';
|
|
37
39
|
import { ApiError } from '../utils/errors.js';
|
|
38
40
|
import { unwrapOrThrow } from '../utils/parse-boundary.js';
|
|
39
|
-
|
|
41
|
+
// Exported so the RUN_LIVE_TESTS schema-drift smoke test can run the
|
|
42
|
+
// exact production document against the live API — the is_leaf
|
|
43
|
+
// regression (Monday removed the field from `Board` at 2026-01) shipped
|
|
44
|
+
// precisely because the test suite mocks the network boundary and never
|
|
45
|
+
// exercised the real field selection. See tests/e2e/live-schema-drift.test.ts.
|
|
46
|
+
export const BOARD_METADATA_QUERY = `
|
|
40
47
|
query BoardMetadata($ids: [ID!]!) {
|
|
41
48
|
boards(ids: $ids) {
|
|
42
49
|
id
|
|
@@ -48,7 +55,6 @@ const BOARD_METADATA_QUERY = `
|
|
|
48
55
|
workspace_id
|
|
49
56
|
url
|
|
50
57
|
hierarchy_type
|
|
51
|
-
is_leaf
|
|
52
58
|
items_count
|
|
53
59
|
permissions
|
|
54
60
|
updated_at
|
|
@@ -104,7 +110,16 @@ export const boardMetadataSchema = z
|
|
|
104
110
|
workspace_id: z.string().nullable(),
|
|
105
111
|
url: z.string().nullable(),
|
|
106
112
|
hierarchy_type: z.string().nullable(),
|
|
107
|
-
is_leaf
|
|
113
|
+
// Monday removed `is_leaf` from the `Board` type at API 2026-01
|
|
114
|
+
// (live introspection: the field is gone; the canned query no
|
|
115
|
+
// longer selects it). Kept optional+nullable so (a) the live
|
|
116
|
+
// projection parses a response that omits it and (b) pre-removal
|
|
117
|
+
// on-disk cache entries that still carry it parse cleanly. The
|
|
118
|
+
// `board describe` output preserves the key (null-projected) to
|
|
119
|
+
// stay non-breaking per cli-design §6.1 — dropping the output
|
|
120
|
+
// key entirely is a SemVer-major change deferred to the next
|
|
121
|
+
// major. See memory `project-is-leaf-live-drift`.
|
|
122
|
+
is_leaf: z.boolean().nullable().optional(),
|
|
108
123
|
// Optional+nullable so existing pre-M15 cache entries (which
|
|
109
124
|
// didn't carry these fields) parse cleanly post-bump. New
|
|
110
125
|
// BOARD_METADATA_QUERY runs include the fields; the M15 board
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"board-metadata.js","sourceRoot":"","sources":["../../src/api/board-metadata.ts"],"names":[],"mappings":"AAAA
|
|
1
|
+
{"version":3,"file":"board-metadata.js","sourceRoot":"","sources":["../../src/api/board-metadata.ts"],"names":[],"mappings":"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"}
|
|
@@ -124,30 +124,49 @@ export declare const isReadOnlyForeverType: (type: string) => type is ReadOnlyFo
|
|
|
124
124
|
* column_values` (`cli-design.md` §5.3 writer-expansion roadmap "files"
|
|
125
125
|
* row + the escape-hatch contract).
|
|
126
126
|
*
|
|
127
|
-
* **
|
|
127
|
+
* **Four write paths reach the multipart wire** post-v0.7-M43:
|
|
128
128
|
*
|
|
129
129
|
* - **v0.4-M31 verb-shaped**: `monday item upload <iid> --column
|
|
130
130
|
* <col> <file>` + `monday update upload <uid> <file>`. Direct
|
|
131
131
|
* multipart dispatch via `addFileToColumn` /
|
|
132
132
|
* `addFileToUpdate` (`src/api/assets.ts`).
|
|
133
|
-
* - **v0.6-M38 friendly translator**: `monday item
|
|
134
|
-
* <file-col>=<path>` + `monday item update <iid> --set
|
|
133
|
+
* - **v0.6-M38 friendly translator (single-item)**: `monday item
|
|
134
|
+
* set <iid> <file-col>=<path>` + `monday item update <iid> --set
|
|
135
135
|
* <file-col>=<path>`. Sibling dispatch leg at the command
|
|
136
136
|
* action body that detects `column.type === 'file'` AFTER
|
|
137
137
|
* resolution + routes through `executeFileColumnSet`
|
|
138
138
|
* (`src/api/file-column-set.ts`), which itself wraps M31's
|
|
139
|
-
* `addFileToColumn` verbatim. Single-item
|
|
140
|
-
*
|
|
141
|
-
*
|
|
142
|
-
*
|
|
139
|
+
* `addFileToColumn` verbatim. Single-item at v0.6-M38.
|
|
140
|
+
* - **v0.7-M42 friendly translator (bulk)**: `monday item update
|
|
141
|
+
* --where ... --set <file-col>=<path>` (D5 carve-out fold from
|
|
142
|
+
* v0.6-M38). Per-item multipart fan-out via
|
|
143
|
+
* `runItemUpdateBulkFileDispatch` in
|
|
144
|
+
* `src/commands/item/update.ts` under `--concurrency` /
|
|
145
|
+
* `--continue-on-error`.
|
|
146
|
+
* - **v0.7-M43 friendly translator (create-time)**: `monday item
|
|
147
|
+
* create --set <file-col>=<path>` (D6 carve-out fold from
|
|
148
|
+
* v0.6-M38). Two-leg `create_item` (with bundled non-file
|
|
149
|
+
* `column_values`) + `add_file_to_column` dispatch via
|
|
150
|
+
* `runItemCreateFileDispatch` in `src/commands/item/create.ts`
|
|
151
|
+
* under the §5.8 orphan-warn atomicity envelope (D1 closure).
|
|
143
152
|
*
|
|
144
|
-
*
|
|
145
|
-
*
|
|
153
|
+
* Mutex rules at the resolution boundary (D2 closures + folded
|
|
154
|
+
* D5/D6): multi-file `--set` rejects universally
|
|
155
|
+
* (`multi_file_set_unsupported`); mixed file + value `--set` /
|
|
156
|
+
* `--set-raw` / `--name` rejects on `'item_set'` /
|
|
157
|
+
* `'item_update_single'` / `'item_update_bulk'` callShapes
|
|
158
|
+
* (`mixed_file_and_value_sets`), SUPPRESSED on `'item_create'`
|
|
159
|
+
* per v0.7-M43 asymmetry (`create_item` natively bundles
|
|
160
|
+
* non-file `column_values` atomically into leg-1).
|
|
161
|
+
*
|
|
162
|
+
* The `--set-raw <file-col>=<json>` form STAYS REJECTED per D3
|
|
163
|
+
* closure — Monday's wire has no JSON-shape for
|
|
146
164
|
* `change_column_value` on file columns, and the escape-hatch
|
|
147
165
|
* contract "user supplies the JSON `change_column_value` accepts"
|
|
148
|
-
* doesn't compose with multipart. The rejection
|
|
149
|
-
*
|
|
150
|
-
*
|
|
166
|
+
* doesn't compose with multipart. The rejection points at every
|
|
167
|
+
* shipped friendly write path: v0.4-M31 verb-shaped `monday item
|
|
168
|
+
* upload` + v0.6-M38 single-item friendly `--set` + v0.7-M42
|
|
169
|
+
* bulk friendly `--set` + v0.7-M43 create-time friendly `--set`.
|
|
151
170
|
*
|
|
152
171
|
* Currently one entry (`file`); the slot is plural because Monday may
|
|
153
172
|
* surface other multipart-upload-shaped types in future API versions
|
|
@@ -225,14 +244,20 @@ export declare const getColumnRoadmapCategory: (type: string) => ColumnRoadmapCa
|
|
|
225
244
|
* path` is `null` (agents can't write at all; the column
|
|
226
245
|
* exists for read-side display / mirror sources only).
|
|
227
246
|
* - `'files_shaped'`: Monday writes the type via `add_file_to_
|
|
228
|
-
* column` (multipart upload).
|
|
229
|
-
* `monday item upload <iid> --column <col> <file>` (M31;
|
|
230
|
-
* shaped) + `monday item set <iid> <file-col>=<path>` /
|
|
231
|
-
* `monday item update <iid> --set <file-col>=<path>` (M38;
|
|
232
|
-
* friendly translator dispatch)
|
|
233
|
-
*
|
|
234
|
-
*
|
|
235
|
-
*
|
|
247
|
+
* column` (multipart upload). Four write paths post-v0.7-M43:
|
|
248
|
+
* `monday item upload <iid> --column <col> <file>` (v0.4-M31;
|
|
249
|
+
* verb-shaped) + `monday item set <iid> <file-col>=<path>` /
|
|
250
|
+
* `monday item update <iid> --set <file-col>=<path>` (v0.6-M38;
|
|
251
|
+
* single-item friendly translator dispatch) + `monday item
|
|
252
|
+
* update --where ... --set <file-col>=<path>` (v0.7-M42; bulk
|
|
253
|
+
* friendly translator dispatch with per-item multipart fan-out)
|
|
254
|
+
* + `monday item create --set <file-col>=<path>` (v0.7-M43;
|
|
255
|
+
* create-time two-leg friendly translator dispatch under the
|
|
256
|
+
* §5.8 orphan-warn atomicity envelope).
|
|
257
|
+
* `suggested_write_path` is a single human-readable string
|
|
258
|
+
* joining every shipped path with ` OR ` (R-v0.6-NEW-3 watch-
|
|
259
|
+
* item: lift to `readonly string[]` at the 2nd N>1 consumer).
|
|
260
|
+
* Currently `file` only.
|
|
236
261
|
*
|
|
237
262
|
* Returns `null` for canonical types (membership in `WRITABLE_COLUMN_
|
|
238
263
|
* TYPES`) — `column-create` skips emitting the warning when the type
|
|
@@ -254,14 +279,22 @@ export interface NoncanonicalColumnTypeDetails {
|
|
|
254
279
|
* - `read_only_forever` types: `null` (no write path exists —
|
|
255
280
|
* the column exists for read-side display / mirror sources
|
|
256
281
|
* only).
|
|
257
|
-
* - `files_shaped` types post-v0.
|
|
258
|
-
* string joining
|
|
259
|
-
* friendly `monday item set <iid> <file-col>=<path>` /
|
|
260
|
-
* `monday item update <iid> --set <file-col>=<path>`
|
|
261
|
-
*
|
|
262
|
-
* --
|
|
263
|
-
*
|
|
264
|
-
*
|
|
282
|
+
* - `files_shaped` types post-v0.7-M43: a single human-readable
|
|
283
|
+
* string joining every shipped write path with ` OR ` — the
|
|
284
|
+
* v0.6-M38 friendly `monday item set <iid> <file-col>=<path>` /
|
|
285
|
+
* `monday item update <iid> --set <file-col>=<path>` (single-
|
|
286
|
+
* item dispatch); the v0.7-M42 friendly `monday item update
|
|
287
|
+
* --where ... --set <file-col>=<path>` (bulk per-item multipart
|
|
288
|
+
* fan-out); the v0.7-M43 friendly `monday item create --set
|
|
289
|
+
* <file-col>=<path>` (create-time two-leg dispatch under the
|
|
290
|
+
* §5.8 orphan-warn atomicity envelope); AND the v0.4-M31
|
|
291
|
+
* verb-shaped `monday item upload <iid> --column <col> <file>`.
|
|
292
|
+
* R-v0.6-NEW-3 watch-item: lift to `readonly string[]` at the
|
|
293
|
+
* 2nd N>1 consumer for structured enumeration. (At v0.7-M42
|
|
294
|
+
* IMPL the string went from 2-path to 3-path; at v0.7-M43
|
|
295
|
+
* pre-flight it went to 4-path; R-v0.6-NEW-3 trigger remains
|
|
296
|
+
* pending until a downstream consumer needs structured-array
|
|
297
|
+
* iteration.)
|
|
265
298
|
*/
|
|
266
299
|
readonly suggestedWritePath: string | null;
|
|
267
300
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"column-types.d.ts","sourceRoot":"","sources":["../../src/api/column-types.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;GAiBG;AAEH;;;;;;;;;;;;;;;;;;;;;;GAsBG;AACH,eAAO,MAAM,qBAAqB,qJA4BxB,CAAC;AAEX,MAAM,MAAM,kBAAkB,GAAG,CAAC,OAAO,qBAAqB,CAAC,CAAC,MAAM,CAAC,CAAC;AAIxE;;;;GAIG;AACH,eAAO,MAAM,oBAAoB,GAAI,MAAM,MAAM,KAAG,IAAI,IAAI,kBAC/B,CAAC;AAE9B;;;;;;;;;;;GAWG;AACH,eAAO,MAAM,mBAAmB,GAAI,KAAK,MAAM,GAAG,IAAI,KAAG,OAOxD,CAAC;AAEF;;;;;;;;;;;;;GAaG;AACH,eAAO,MAAM,2BAA2B,aAU9B,CAAC;AAEX,MAAM,MAAM,uBAAuB,GACjC,CAAC,OAAO,2BAA2B,CAAC,CAAC,MAAM,CAAC,CAAC;AAM/C;;;;;;;;;;;;;;GAcG;AACH,eAAO,MAAM,yBAAyB,GACpC,MAAM,MAAM,KACX,IAAI,IAAI,uBAA8D,CAAC;AAE1E;;;;;;;;;;;;;;;GAeG;AACH,eAAO,MAAM,uBAAuB,4GAe1B,CAAC;AAEX,MAAM,MAAM,mBAAmB,GAAG,CAAC,OAAO,uBAAuB,CAAC,CAAC,MAAM,CAAC,CAAC;AAM3E;;;;;;GAMG;AACH,eAAO,MAAM,qBAAqB,GAAI,MAAM,MAAM,KAAG,IAAI,IAAI,mBAC5B,CAAC;AAElC
|
|
1
|
+
{"version":3,"file":"column-types.d.ts","sourceRoot":"","sources":["../../src/api/column-types.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;GAiBG;AAEH;;;;;;;;;;;;;;;;;;;;;;GAsBG;AACH,eAAO,MAAM,qBAAqB,qJA4BxB,CAAC;AAEX,MAAM,MAAM,kBAAkB,GAAG,CAAC,OAAO,qBAAqB,CAAC,CAAC,MAAM,CAAC,CAAC;AAIxE;;;;GAIG;AACH,eAAO,MAAM,oBAAoB,GAAI,MAAM,MAAM,KAAG,IAAI,IAAI,kBAC/B,CAAC;AAE9B;;;;;;;;;;;GAWG;AACH,eAAO,MAAM,mBAAmB,GAAI,KAAK,MAAM,GAAG,IAAI,KAAG,OAOxD,CAAC;AAEF;;;;;;;;;;;;;GAaG;AACH,eAAO,MAAM,2BAA2B,aAU9B,CAAC;AAEX,MAAM,MAAM,uBAAuB,GACjC,CAAC,OAAO,2BAA2B,CAAC,CAAC,MAAM,CAAC,CAAC;AAM/C;;;;;;;;;;;;;;GAcG;AACH,eAAO,MAAM,yBAAyB,GACpC,MAAM,MAAM,KACX,IAAI,IAAI,uBAA8D,CAAC;AAE1E;;;;;;;;;;;;;;;GAeG;AACH,eAAO,MAAM,uBAAuB,4GAe1B,CAAC;AAEX,MAAM,MAAM,mBAAmB,GAAG,CAAC,OAAO,uBAAuB,CAAC,CAAC,MAAM,CAAC,CAAC;AAM3E;;;;;;GAMG;AACH,eAAO,MAAM,qBAAqB,GAAI,MAAM,MAAM,KAAG,IAAI,IAAI,mBAC5B,CAAC;AAElC;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAsDG;AACH,eAAO,MAAM,kBAAkB,mBAAoB,CAAC;AAEpD,MAAM,MAAM,eAAe,GAAG,CAAC,OAAO,kBAAkB,CAAC,CAAC,MAAM,CAAC,CAAC;AAMlE;;;;;GAKG;AACH,eAAO,MAAM,iBAAiB,GAAI,MAAM,MAAM,KAAG,IAAI,IAAI,eAC7B,CAAC;AAE7B;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAkCG;AACH,MAAM,MAAM,qBAAqB,GAC7B,uBAAuB,GACvB,mBAAmB,GACnB,QAAQ,CAAC;AAEb,eAAO,MAAM,wBAAwB,GACnC,MAAM,MAAM,KACX,qBAIF,CAAC;AAEF;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA+CG;AACH,MAAM,MAAM,8BAA8B,GACtC,cAAc,GACd,mBAAmB,GACnB,cAAc,CAAC;AAEnB,MAAM,WAAW,6BAA6B;IAC5C,QAAQ,CAAC,QAAQ,EAAE,8BAA8B,CAAC;IAClD;;;;;;;;;;;;;;;;;;;;;;;;;OAyBG;IACH,QAAQ,CAAC,kBAAkB,EAAE,MAAM,GAAG,IAAI,CAAC;CAC5C;AAED,eAAO,MAAM,gCAAgC,GAC3C,MAAM,MAAM,KACX,6BAA6B,GAAG,IAgBlC,CAAC"}
|