monday-cli 0.3.0 → 0.5.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 +719 -0
- package/README.md +208 -36
- package/dist/api/assets.d.ts +326 -0
- package/dist/api/assets.d.ts.map +1 -0
- package/dist/api/assets.js +519 -0
- package/dist/api/assets.js.map +1 -0
- package/dist/api/column-types.d.ts +13 -7
- package/dist/api/column-types.d.ts.map +1 -1
- package/dist/api/column-types.js +7 -3
- package/dist/api/column-types.js.map +1 -1
- package/dist/api/column-values.d.ts +8 -1
- package/dist/api/column-values.d.ts.map +1 -1
- package/dist/api/column-values.js +16 -6
- package/dist/api/column-values.js.map +1 -1
- package/dist/api/documents.d.ts +1652 -0
- package/dist/api/documents.d.ts.map +1 -0
- package/dist/api/documents.js +2411 -0
- package/dist/api/documents.js.map +1 -0
- package/dist/api/item-watch.d.ts +263 -0
- package/dist/api/item-watch.d.ts.map +1 -0
- package/dist/api/item-watch.js +709 -0
- package/dist/api/item-watch.js.map +1 -0
- package/dist/api/multipart-transport.d.ts +223 -0
- package/dist/api/multipart-transport.d.ts.map +1 -0
- package/dist/api/multipart-transport.js +274 -0
- package/dist/api/multipart-transport.js.map +1 -0
- package/dist/api/parallel-dispatch.d.ts +155 -0
- package/dist/api/parallel-dispatch.d.ts.map +1 -0
- package/dist/api/parallel-dispatch.js +243 -0
- package/dist/api/parallel-dispatch.js.map +1 -0
- package/dist/api/partial-success-bulk.d.ts +118 -60
- package/dist/api/partial-success-bulk.d.ts.map +1 -1
- package/dist/api/partial-success-bulk.js +137 -79
- package/dist/api/partial-success-bulk.js.map +1 -1
- package/dist/api/partial-success-mutation.d.ts +13 -1
- package/dist/api/partial-success-mutation.d.ts.map +1 -1
- package/dist/api/partial-success-mutation.js +5 -1
- package/dist/api/partial-success-mutation.js.map +1 -1
- package/dist/api/raw-write.d.ts +13 -4
- package/dist/api/raw-write.d.ts.map +1 -1
- package/dist/api/raw-write.js +22 -11
- package/dist/api/raw-write.js.map +1 -1
- package/dist/api/resolve-client.d.ts +11 -0
- package/dist/api/resolve-client.d.ts.map +1 -1
- package/dist/api/resolve-client.js +9 -1
- package/dist/api/resolve-client.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/cli/run.d.ts +20 -0
- package/dist/cli/run.d.ts.map +1 -1
- package/dist/cli/run.js +1 -0
- package/dist/cli/run.js.map +1 -1
- package/dist/commands/board/column-create.d.ts +6 -5
- package/dist/commands/board/column-create.d.ts.map +1 -1
- package/dist/commands/board/column-create.js +9 -6
- package/dist/commands/board/column-create.js.map +1 -1
- package/dist/commands/completion.d.ts +188 -0
- package/dist/commands/completion.d.ts.map +1 -0
- package/dist/commands/completion.js +418 -0
- package/dist/commands/completion.js.map +1 -0
- 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/get.d.ts +46 -0
- package/dist/commands/doc/get.d.ts.map +1 -0
- package/dist/commands/doc/get.js +95 -0
- package/dist/commands/doc/get.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 +86 -0
- package/dist/commands/doc/list.d.ts.map +1 -0
- package/dist/commands/doc/list.js +217 -0
- package/dist/commands/doc/list.js.map +1 -0
- 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 +162 -0
- package/dist/commands/index.js.map +1 -1
- package/dist/commands/item/create.js +2 -2
- package/dist/commands/item/update.d.ts +1 -0
- package/dist/commands/item/update.d.ts.map +1 -1
- package/dist/commands/item/update.js +61 -0
- package/dist/commands/item/update.js.map +1 -1
- package/dist/commands/item/upload.d.ts +108 -0
- package/dist/commands/item/upload.d.ts.map +1 -0
- package/dist/commands/item/upload.js +370 -0
- package/dist/commands/item/upload.js.map +1 -0
- package/dist/commands/item/watch.d.ts +90 -0
- package/dist/commands/item/watch.d.ts.map +1 -0
- package/dist/commands/item/watch.js +342 -0
- package/dist/commands/item/watch.js.map +1 -0
- 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 +69 -0
- package/dist/commands/update/upload.d.ts.map +1 -0
- package/dist/commands/update/upload.js +235 -0
- package/dist/commands/update/upload.js.map +1 -0
- 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 +8 -0
- package/dist/types/ids.d.ts.map +1 -1
- package/dist/types/ids.js +53 -5
- package/dist/types/ids.js.map +1 -1
- package/dist/utils/mime.d.ts +24 -0
- package/dist/utils/mime.d.ts.map +1 -0
- package/dist/utils/mime.js +64 -0
- package/dist/utils/mime.js.map +1 -0
- package/dist/utils/output/envelope.d.ts +30 -0
- package/dist/utils/output/envelope.d.ts.map +1 -1
- package/dist/utils/output/envelope.js +26 -0
- package/dist/utils/output/envelope.js.map +1 -1
- package/dist/utils/output/ndjson.d.ts +25 -0
- package/dist/utils/output/ndjson.d.ts.map +1 -1
- package/dist/utils/output/ndjson.js +12 -0
- package/dist/utils/output/ndjson.js.map +1 -1
- 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/signal.d.ts +42 -0
- package/dist/utils/signal.d.ts.map +1 -0
- package/dist/utils/signal.js +45 -0
- package/dist/utils/signal.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
|
@@ -0,0 +1,519 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Asset upload surface for the v0.4-M31 `monday item upload` +
|
|
3
|
+
* `monday update upload` verbs (`cli-design.md` §2.2 + §4.3 + §6.4
|
|
4
|
+
* + §13 v0.4 entry; `v0.4-plan.md` §3 M31).
|
|
5
|
+
*
|
|
6
|
+
* **Wire surface (empirical probe 2026-05-13, API `2026-01`).** Two
|
|
7
|
+
* Monday GraphQL multipart mutations land here:
|
|
8
|
+
*
|
|
9
|
+
* - `Mutation.add_file_to_column(column_id: String!, file: File!,
|
|
10
|
+
* item_id: ID!) → Asset` — attaches a file to a `file`-typed
|
|
11
|
+
* column on a specific item. Note **`column_id` is `String!`
|
|
12
|
+
* not `ID!`** (the SDK's column-id surface is consistently
|
|
13
|
+
* `String!` because column IDs are user-defined-looking tokens
|
|
14
|
+
* like `'files'` / `'attachments_3'` rather than numeric).
|
|
15
|
+
* - `Mutation.add_file_to_update(file: File!, update_id: ID!) →
|
|
16
|
+
* Asset` — attaches a file to an Update (comment) record. Item
|
|
17
|
+
* ID is implicit (the update's parent item).
|
|
18
|
+
*
|
|
19
|
+
* Both mutations cross the wire via `multipart/form-data` per the
|
|
20
|
+
* standard GraphQL multipart-request specification (jaydenseric).
|
|
21
|
+
* The `File` scalar is Monday's own (NOT the spec-standard `Upload`);
|
|
22
|
+
* the multipart envelope is otherwise spec-compliant — `operations`
|
|
23
|
+
* + `map` JSON parts + the file part keyed by index `0`.
|
|
24
|
+
*
|
|
25
|
+
* **Asset object — 10 fields.** `id` (ID, non-null), `name` (String,
|
|
26
|
+
* non-null — the multipart `filename` parameter), `url` (String,
|
|
27
|
+
* non-null — direct download), `public_url` (String, non-null —
|
|
28
|
+
* sharable), `file_extension` (String, non-null), `file_size` (Int,
|
|
29
|
+
* non-null — bytes), `created_at` (Date, nullable), `uploaded_by`
|
|
30
|
+
* (User, non-null — the token's owner; projected to the slim
|
|
31
|
+
* `{id, name}` shape for envelope compactness), `original_geometry`
|
|
32
|
+
* (String, nullable — image dimensions like `'1920x1080'`),
|
|
33
|
+
* `url_thumbnail` (String, nullable — image thumbnails only).
|
|
34
|
+
*
|
|
35
|
+
* **R-NEW-41 3rd consumer fires here.** Asset upload is the third
|
|
36
|
+
* site (after M27 `Webhook.config` JSON/String asymmetry + M27
|
|
37
|
+
* `NotificationTargetType` collapse) where the wire-vs-CLI semantics
|
|
38
|
+
* carry a documented asymmetry. This module's transport choice
|
|
39
|
+
* (sibling multipart module, NOT extension of `transport.ts`) is
|
|
40
|
+
* itself the load-bearing asymmetry shape — the JSON envelope's
|
|
41
|
+
* `body: JSON.stringify(...)` invariant doesn't compose with
|
|
42
|
+
* multipart/form-data's `FormData`-driven boundary parameter, so
|
|
43
|
+
* the two transports live in sibling modules with parallel
|
|
44
|
+
* interfaces. See `docs/architecture.md` "Wire-vs-CLI semantics
|
|
45
|
+
* documentation conventions" for the canonical writeup.
|
|
46
|
+
*
|
|
47
|
+
* **No new ERROR_CODES (29 stays).** Asset-upload failures route
|
|
48
|
+
* through the existing codes:
|
|
49
|
+
*
|
|
50
|
+
* - `usage_error` — file path doesn't exist / not readable
|
|
51
|
+
* (`details.reason: 'file_not_readable'`); file is empty
|
|
52
|
+
* (`details.reason: 'file_empty'`); upload exceeded Monday's
|
|
53
|
+
* per-file size limit (Monday surfaces this server-side;
|
|
54
|
+
* `details.reason: 'file_too_large'` rewrap).
|
|
55
|
+
* - `unsupported_column_type` — `--column <col>` resolves to a
|
|
56
|
+
* non-`file` column type. Hint points back at the §5.3 writer
|
|
57
|
+
* surface (Monday writes files via `add_file_to_column` for
|
|
58
|
+
* `file` columns only; other column types route via
|
|
59
|
+
* `change_column_value`).
|
|
60
|
+
* - `not_found` — item / update / column doesn't exist or isn't
|
|
61
|
+
* visible to the token.
|
|
62
|
+
* - `validation_failed` — Monday-side rejection of the upload
|
|
63
|
+
* payload (malformed filename, server-side virus scan flag,
|
|
64
|
+
* etc.).
|
|
65
|
+
* - `forbidden` / `unauthorized` — token lacks asset-write scope.
|
|
66
|
+
*
|
|
67
|
+
* Monday's per-file size cap is plan-tier-dependent and NOT exposed
|
|
68
|
+
* via the schema (verified at M31 pre-flight probe — `Plan` +
|
|
69
|
+
* `Account` carry no file-quota fields). The CLI does NOT pre-check
|
|
70
|
+
* file size against a hardcoded ceiling; Monday's runtime rejection
|
|
71
|
+
* (typically `FILE_SIZE_LIMIT_EXCEEDED` or a generic 413) is rewrapped
|
|
72
|
+
* as `usage_error` with `details.reason: 'file_too_large'` +
|
|
73
|
+
* `details.file_size_bytes` (the local `fs.stat()` measurement
|
|
74
|
+
* captured at upload time — Monday's wire rejection may not surface
|
|
75
|
+
* a size field, but the CLI already has the local size from the
|
|
76
|
+
* read leg and threads it for a stable agent-keyed envelope).
|
|
77
|
+
*
|
|
78
|
+
* **Idempotency: NO.** Each successful upload mints a new Asset
|
|
79
|
+
* with a new ID — re-running `item upload` with the same args
|
|
80
|
+
* uploads the file a second time. Agents needing register-once
|
|
81
|
+
* semantics dedupe on the CLI side (e.g., read `Item.assets` first
|
|
82
|
+
* and skip the upload if a matching `Asset.name` exists).
|
|
83
|
+
*
|
|
84
|
+
* **Status: runtime body shipped at v0.4-M31 IMPL.** Both fetchers
|
|
85
|
+
* dispatch via `inputs.multipart.request(...)` wrapped in
|
|
86
|
+
* `withRetry(...)` per cli-design §2.5; the response-parse boundary
|
|
87
|
+
* uses `mapResponse` (mirroring `MondayClient.raw`'s discipline) +
|
|
88
|
+
* `assertResponseFieldPresent` for the schema-drift / null-payload
|
|
89
|
+
* distinction + `assetSchema.safeParse(...)` via `unwrapOrThrow`
|
|
90
|
+
* for the per-field shape. Server-side size-cap rewrap fires at
|
|
91
|
+
* the error-mapping layer below.
|
|
92
|
+
*/
|
|
93
|
+
import { z } from 'zod';
|
|
94
|
+
import { ApiError, MondayCliError } from '../utils/errors.js';
|
|
95
|
+
import { unwrapOrThrow } from '../utils/parse-boundary.js';
|
|
96
|
+
import { parseComplexity } from './complexity.js';
|
|
97
|
+
import { mapResponse, wrapTransportError } from './errors.js';
|
|
98
|
+
import { withRetry } from './retry.js';
|
|
99
|
+
import { assertResponseFieldPresent } from './response-root.js';
|
|
100
|
+
/**
|
|
101
|
+
* Slim projection of Monday's `User` for the `Asset.uploaded_by`
|
|
102
|
+
* slot. Monday's full User type is ~30 fields; the envelope echoes
|
|
103
|
+
* only `id` + `name` (matching the M19 `User`-projection cadence
|
|
104
|
+
* elsewhere in the CLI — `account_tags`, `board describe`'s
|
|
105
|
+
* subscribers, etc.). Future verbs that need wider User detail
|
|
106
|
+
* (`user get <uid>`) read against the full type.
|
|
107
|
+
*/
|
|
108
|
+
export const uploadedBySchema = z
|
|
109
|
+
.object({
|
|
110
|
+
id: z.string().min(1),
|
|
111
|
+
name: z.string().min(1),
|
|
112
|
+
})
|
|
113
|
+
.strict();
|
|
114
|
+
/**
|
|
115
|
+
* Asset read-projection shape — surfaces Monday's full 10-field
|
|
116
|
+
* `Asset` object (per `scripts/probe/m31-asset-upload.ts` 2026-05-13,
|
|
117
|
+
* API `2026-01`). The output envelope echoes this verbatim so an
|
|
118
|
+
* agent reading the upload result has every field a follow-up
|
|
119
|
+
* `Query.assets(ids:)` read would surface, plus the inputs the CLI
|
|
120
|
+
* sent (echoed by the caller, not this module).
|
|
121
|
+
*
|
|
122
|
+
* `original_geometry` + `url_thumbnail` are image-only; nullable
|
|
123
|
+
* for non-image uploads. `created_at` is nullable in Monday's
|
|
124
|
+
* schema even though every successful upload sets it (the
|
|
125
|
+
* nullability is preserved for fidelity against the introspected
|
|
126
|
+
* type).
|
|
127
|
+
*/
|
|
128
|
+
export const assetSchema = z
|
|
129
|
+
.object({
|
|
130
|
+
id: z.string().min(1),
|
|
131
|
+
name: z.string().min(1),
|
|
132
|
+
url: z.string().min(1),
|
|
133
|
+
public_url: z.string().min(1),
|
|
134
|
+
file_extension: z.string(),
|
|
135
|
+
file_size: z.number().int().nonnegative(),
|
|
136
|
+
created_at: z.string().nullable(),
|
|
137
|
+
uploaded_by: uploadedBySchema,
|
|
138
|
+
original_geometry: z.string().nullable(),
|
|
139
|
+
url_thumbnail: z.string().nullable(),
|
|
140
|
+
})
|
|
141
|
+
.strict();
|
|
142
|
+
/**
|
|
143
|
+
* Output shape for `monday item upload <iid> --column <col> <file>`.
|
|
144
|
+
* Echoes the wire `Asset` record plus the agent-supplied inputs
|
|
145
|
+
* (`item_id`, `column_id`, `filename`, `file_size_bytes`) so one
|
|
146
|
+
* envelope read carries the full upload context.
|
|
147
|
+
*
|
|
148
|
+
* `file_size_bytes` is the CLI-measured size at upload time (from
|
|
149
|
+
* the local file's `fs.stat()`); `asset.file_size` is Monday's
|
|
150
|
+
* server-stored size (usually identical to `file_size_bytes` but
|
|
151
|
+
* preserved separately for asymmetric-storage-encoding fidelity).
|
|
152
|
+
*
|
|
153
|
+
* `asset` is the canonical wire record; future field additions
|
|
154
|
+
* land additively per the §6.1 envelope evolution rules.
|
|
155
|
+
*/
|
|
156
|
+
export const itemUploadOutputSchema = z
|
|
157
|
+
.object({
|
|
158
|
+
operation: z.literal('add_file_to_column'),
|
|
159
|
+
item_id: z.string().min(1),
|
|
160
|
+
column_id: z.string().min(1),
|
|
161
|
+
filename: z.string().min(1),
|
|
162
|
+
file_size_bytes: z.number().int().nonnegative(),
|
|
163
|
+
asset: assetSchema,
|
|
164
|
+
})
|
|
165
|
+
.strict();
|
|
166
|
+
/**
|
|
167
|
+
* Output shape for `monday update upload <uid> <file>`. Same general
|
|
168
|
+
* shape as `itemUploadOutputSchema` but carries `update_id` instead
|
|
169
|
+
* of `item_id` + `column_id` (an Update record is the target;
|
|
170
|
+
* Monday's `Update.assets` collection grows by one on success).
|
|
171
|
+
*/
|
|
172
|
+
export const updateUploadOutputSchema = z
|
|
173
|
+
.object({
|
|
174
|
+
operation: z.literal('add_file_to_update'),
|
|
175
|
+
update_id: z.string().min(1),
|
|
176
|
+
filename: z.string().min(1),
|
|
177
|
+
file_size_bytes: z.number().int().nonnegative(),
|
|
178
|
+
asset: assetSchema,
|
|
179
|
+
})
|
|
180
|
+
.strict();
|
|
181
|
+
/**
|
|
182
|
+
* Mutation document for `add_file_to_column`. Operation name is
|
|
183
|
+
* pinned literally to `AddFileToColumn` and matches the wire
|
|
184
|
+
* `operationName` payload (R-NEW-37 W2 audit-point — caller-
|
|
185
|
+
* overridable operationName slots were closed at M27 IMPL round-1
|
|
186
|
+
* P2-1).
|
|
187
|
+
*
|
|
188
|
+
* `$file: File!` — Monday's own scalar (NOT the spec-standard
|
|
189
|
+
* `Upload!`); the multipart wire dispatcher (`assets.ts`'s caller
|
|
190
|
+
* via `MultipartTransport`) populates this slot via the spec-
|
|
191
|
+
* compliant `map` JSON pointing the file part at `variables.file`.
|
|
192
|
+
*
|
|
193
|
+
* Returns the full 10-field `Asset` selection so the output
|
|
194
|
+
* envelope captures Monday's complete view of the upload in one
|
|
195
|
+
* round-trip (no follow-up `Query.assets(ids:)` re-read needed).
|
|
196
|
+
*/
|
|
197
|
+
export const ADD_FILE_TO_COLUMN_MUTATION = `
|
|
198
|
+
mutation AddFileToColumn(
|
|
199
|
+
$itemId: ID!,
|
|
200
|
+
$columnId: String!,
|
|
201
|
+
$file: File!
|
|
202
|
+
) {
|
|
203
|
+
add_file_to_column(
|
|
204
|
+
item_id: $itemId,
|
|
205
|
+
column_id: $columnId,
|
|
206
|
+
file: $file
|
|
207
|
+
) {
|
|
208
|
+
id
|
|
209
|
+
name
|
|
210
|
+
url
|
|
211
|
+
public_url
|
|
212
|
+
file_extension
|
|
213
|
+
file_size
|
|
214
|
+
created_at
|
|
215
|
+
uploaded_by { id name }
|
|
216
|
+
original_geometry
|
|
217
|
+
url_thumbnail
|
|
218
|
+
}
|
|
219
|
+
}
|
|
220
|
+
`;
|
|
221
|
+
/**
|
|
222
|
+
* Mutation document for `add_file_to_update`. Operation name pinned
|
|
223
|
+
* to `AddFileToUpdate` (R-NEW-37 W2). No `column_id` — Updates
|
|
224
|
+
* carry attachments directly via `Update.assets`.
|
|
225
|
+
*/
|
|
226
|
+
export const ADD_FILE_TO_UPDATE_MUTATION = `
|
|
227
|
+
mutation AddFileToUpdate(
|
|
228
|
+
$updateId: ID!,
|
|
229
|
+
$file: File!
|
|
230
|
+
) {
|
|
231
|
+
add_file_to_update(
|
|
232
|
+
update_id: $updateId,
|
|
233
|
+
file: $file
|
|
234
|
+
) {
|
|
235
|
+
id
|
|
236
|
+
name
|
|
237
|
+
url
|
|
238
|
+
public_url
|
|
239
|
+
file_extension
|
|
240
|
+
file_size
|
|
241
|
+
created_at
|
|
242
|
+
uploaded_by { id name }
|
|
243
|
+
original_geometry
|
|
244
|
+
url_thumbnail
|
|
245
|
+
}
|
|
246
|
+
}
|
|
247
|
+
`;
|
|
248
|
+
/**
|
|
249
|
+
* Re-wraps Monday's server-side file-size rejection as the
|
|
250
|
+
* agent-stable `usage_error` shape (D3 closure). Monday surfaces the
|
|
251
|
+
* cap a couple of ways depending on the error path — common signals:
|
|
252
|
+
*
|
|
253
|
+
* - `extensions.code: 'FILE_SIZE_LIMIT_EXCEEDED'` on a 200 GraphQL
|
|
254
|
+
* errors[] payload (the most common shape — Monday's GraphQL
|
|
255
|
+
* server stays on 200 even for input-validation rejections).
|
|
256
|
+
* - `extensions.error_code: 'FILE_SIZE_LIMIT_EXCEEDED'` (older API
|
|
257
|
+
* shape preserved across versions).
|
|
258
|
+
* - HTTP 413 with no GraphQL body (rare; intermediated by an LB
|
|
259
|
+
* between us and Monday's server).
|
|
260
|
+
* - The bare error message contains "file size" / "file too large"
|
|
261
|
+
* / "exceeds the limit" (string-fallback for proxy-mediated paths
|
|
262
|
+
* that strip extensions).
|
|
263
|
+
*
|
|
264
|
+
* The matcher reads `mapResponse`'s typed error rather than the raw
|
|
265
|
+
* body — `mapResponse` already extracted the GraphQL extensions +
|
|
266
|
+
* Monday code into the `validation_failed` ApiError; we then check
|
|
267
|
+
* the same signals here to upgrade the rewrap. `details.file_size_
|
|
268
|
+
* bytes` is the local `fs.stat()` measurement the caller threaded
|
|
269
|
+
* (D3 — Monday's wire rejection may not surface a size, but the CLI
|
|
270
|
+
* has the local size from the read leg and threads a stable
|
|
271
|
+
* envelope).
|
|
272
|
+
*/
|
|
273
|
+
const isFileTooLargeRejection = (err) => {
|
|
274
|
+
if (err.httpStatus === 413)
|
|
275
|
+
return true;
|
|
276
|
+
const monday = err.mondayCode?.toUpperCase() ?? '';
|
|
277
|
+
if (monday === 'FILE_SIZE_LIMIT_EXCEEDED')
|
|
278
|
+
return true;
|
|
279
|
+
// Fallback to the message vocabulary — Monday occasionally returns
|
|
280
|
+
// a generic `validation_failed` with the size language inline.
|
|
281
|
+
// Match the broader `'file size'` substring (covers "file size
|
|
282
|
+
// limit exceeded" + "file size exceeds maximum" + similar
|
|
283
|
+
// proxy-rephrased variants), plus `'file too large'` and
|
|
284
|
+
// `'exceeds the limit'` for vocabulary that doesn't include
|
|
285
|
+
// "size" explicitly.
|
|
286
|
+
const msg = err.message.toLowerCase();
|
|
287
|
+
if (msg.includes('file size') ||
|
|
288
|
+
msg.includes('file too large') ||
|
|
289
|
+
msg.includes('exceeds the limit')) {
|
|
290
|
+
return true;
|
|
291
|
+
}
|
|
292
|
+
return false;
|
|
293
|
+
};
|
|
294
|
+
const rewrapAsFileTooLarge = ({ err, fileSizeBytes, filename, }) => new ApiError('usage_error', `Monday rejected the upload — file ${JSON.stringify(filename)} ` +
|
|
295
|
+
`exceeds the per-file size limit (uploaded ${String(fileSizeBytes)} bytes).`, {
|
|
296
|
+
cause: err,
|
|
297
|
+
details: {
|
|
298
|
+
reason: 'file_too_large',
|
|
299
|
+
file_size_bytes: fileSizeBytes,
|
|
300
|
+
filename,
|
|
301
|
+
hint: "Monday's per-file cap is plan-tier-dependent (typically 500 MB at " +
|
|
302
|
+
'standard tiers, larger at enterprise); contact Monday support to ' +
|
|
303
|
+
"confirm your account's exact ceiling.",
|
|
304
|
+
},
|
|
305
|
+
});
|
|
306
|
+
/**
|
|
307
|
+
* Single multipart round-trip with the standard parse-boundary
|
|
308
|
+
* (mirrors `MondayClient.raw`'s shape but for the multipart seam):
|
|
309
|
+
*
|
|
310
|
+
* 1. `multipart.request(...)` → raw transport response.
|
|
311
|
+
* 2. `mapResponse<unknown>` → tagged `MapResult` ({ok, data} or
|
|
312
|
+
* {ok, error}); non-ok throws the typed ApiError directly so
|
|
313
|
+
* `withRetry` can inspect `error.retryable` + `retry_after_
|
|
314
|
+
* seconds` upstream.
|
|
315
|
+
* 3. `parseComplexity` projects any `complexity` block Monday
|
|
316
|
+
* surfaces (asset-upload mutations don't return one today, but
|
|
317
|
+
* keeping the same shape as `MondayClient.raw` means future
|
|
318
|
+
* Monday API revisions surface complexity uniformly).
|
|
319
|
+
*
|
|
320
|
+
* Wrapped with `wrapTransportError` so a non-ApiError throw (a bug
|
|
321
|
+
* in the fixture transport, a future SDK shim) becomes
|
|
322
|
+
* `internal_error` rather than escaping unmapped.
|
|
323
|
+
*/
|
|
324
|
+
const dispatchMultipartOnce = async (inputs) => {
|
|
325
|
+
try {
|
|
326
|
+
const response = await inputs.multipart.request({
|
|
327
|
+
query: inputs.query,
|
|
328
|
+
variables: inputs.variables,
|
|
329
|
+
operationName: inputs.operationName,
|
|
330
|
+
fileVariableName: inputs.fileVariableName,
|
|
331
|
+
file: inputs.file,
|
|
332
|
+
filename: inputs.filename,
|
|
333
|
+
signal: inputs.signal,
|
|
334
|
+
});
|
|
335
|
+
const mapped = mapResponse({
|
|
336
|
+
status: response.status,
|
|
337
|
+
headers: response.headers,
|
|
338
|
+
body: response.body,
|
|
339
|
+
});
|
|
340
|
+
if (!mapped.ok) {
|
|
341
|
+
throw mapped.error;
|
|
342
|
+
}
|
|
343
|
+
const complexity = parseComplexity(response.body);
|
|
344
|
+
return { data: mapped.data, complexity };
|
|
345
|
+
}
|
|
346
|
+
catch (err) {
|
|
347
|
+
throw wrapTransportError(err);
|
|
348
|
+
}
|
|
349
|
+
};
|
|
350
|
+
/**
|
|
351
|
+
* Fires Monday's `add_file_to_column` mutation via the multipart
|
|
352
|
+
* transport (operationName `AddFileToColumn`, pinned literally per
|
|
353
|
+
* R-NEW-37 W2 — NOT caller-overridable). Builds the operations
|
|
354
|
+
* payload with the `file: null` placeholder per the GraphQL
|
|
355
|
+
* multipart-request spec, dispatches through `inputs.multipart` +
|
|
356
|
+
* `withRetry(...)`, parses the response — null `add_file_to_column`
|
|
357
|
+
* → `not_found` with `details.{item_id, column_id}`; non-Asset
|
|
358
|
+
* shape → `internal_error` via `assetSchema.safeParse + unwrapOr
|
|
359
|
+
* Throw`. Server-side size rejections rewrap as `usage_error` with
|
|
360
|
+
* `details.reason: 'file_too_large'` + `details.file_size_bytes`
|
|
361
|
+
* from the caller-supplied local `fs.stat()` measurement (D3).
|
|
362
|
+
*
|
|
363
|
+
* Not idempotent — re-running mints a new `Asset` ID.
|
|
364
|
+
*/
|
|
365
|
+
export const addFileToColumn = async (inputs) => {
|
|
366
|
+
// Spec-compliant operations payload: the file variable's value is
|
|
367
|
+
// `null` (mandatory placeholder); the multipart `map` JSON in the
|
|
368
|
+
// transport pins the file part at `variables.file`.
|
|
369
|
+
const variables = {
|
|
370
|
+
itemId: inputs.itemId,
|
|
371
|
+
columnId: inputs.columnId,
|
|
372
|
+
file: null,
|
|
373
|
+
};
|
|
374
|
+
// Rewrap server-side size rejections INSIDE the retry thunk so the
|
|
375
|
+
// resulting `usage_error` (non-retryable per CODE_RETRYABLE_DEFAULT)
|
|
376
|
+
// short-circuits `withRetry` immediately. If the rewrap lived on
|
|
377
|
+
// the outer `await withRetry(...)` catch instead, a non-JSON HTTP
|
|
378
|
+
// 413 (proxy-served HTML body) would surface as `network_error`
|
|
379
|
+
// (retryable) and the loop would re-upload the same oversized file
|
|
380
|
+
// up to `--retry` times before the rewrap finally fired (round-1
|
|
381
|
+
// P2-1 fix).
|
|
382
|
+
const result = await withRetry(async () => {
|
|
383
|
+
try {
|
|
384
|
+
return await dispatchMultipartOnce({
|
|
385
|
+
multipart: inputs.multipart,
|
|
386
|
+
query: ADD_FILE_TO_COLUMN_MUTATION,
|
|
387
|
+
variables,
|
|
388
|
+
operationName: 'AddFileToColumn',
|
|
389
|
+
fileVariableName: 'file',
|
|
390
|
+
file: inputs.file,
|
|
391
|
+
filename: inputs.filename,
|
|
392
|
+
signal: inputs.signal,
|
|
393
|
+
});
|
|
394
|
+
}
|
|
395
|
+
catch (err) {
|
|
396
|
+
if (err instanceof MondayCliError && isFileTooLargeRejection(err)) {
|
|
397
|
+
throw rewrapAsFileTooLarge({
|
|
398
|
+
err,
|
|
399
|
+
fileSizeBytes: inputs.file.size,
|
|
400
|
+
filename: inputs.filename,
|
|
401
|
+
});
|
|
402
|
+
}
|
|
403
|
+
throw err;
|
|
404
|
+
}
|
|
405
|
+
}, {
|
|
406
|
+
retries: inputs.retries,
|
|
407
|
+
signal: inputs.signal,
|
|
408
|
+
});
|
|
409
|
+
// Reference `inputs.client` so future complexity-passthrough work
|
|
410
|
+
// can inspect verbose mode without changing the call signature.
|
|
411
|
+
// Today the multipart wire bypasses the JSON client entirely; the
|
|
412
|
+
// slot stays for symmetry with the JSON fetchers' shape.
|
|
413
|
+
void inputs.client;
|
|
414
|
+
const wireData = result.value.data;
|
|
415
|
+
assertResponseFieldPresent({
|
|
416
|
+
data: wireData,
|
|
417
|
+
key: 'add_file_to_column',
|
|
418
|
+
operationLabel: 'AddFileToColumn',
|
|
419
|
+
details: { item_id: inputs.itemId, column_id: inputs.columnId },
|
|
420
|
+
nullHandling: 'caller_handles',
|
|
421
|
+
});
|
|
422
|
+
// After `assertResponseFieldPresent`, `wireData` is structurally a
|
|
423
|
+
// record with the `add_file_to_column` key present (might be null).
|
|
424
|
+
const root = wireData.add_file_to_column;
|
|
425
|
+
if (root === null || root === undefined) {
|
|
426
|
+
throw new ApiError('not_found', `Item ${inputs.itemId} or column ${JSON.stringify(inputs.columnId)} ` +
|
|
427
|
+
`does not exist on a board the token has write access to.`, {
|
|
428
|
+
details: {
|
|
429
|
+
item_id: inputs.itemId,
|
|
430
|
+
column_id: inputs.columnId,
|
|
431
|
+
},
|
|
432
|
+
});
|
|
433
|
+
}
|
|
434
|
+
const asset = unwrapOrThrow(assetSchema.safeParse(root), {
|
|
435
|
+
context: 'Monday returned a malformed Asset shape from add_file_to_column',
|
|
436
|
+
details: {
|
|
437
|
+
item_id: inputs.itemId,
|
|
438
|
+
column_id: inputs.columnId,
|
|
439
|
+
filename: inputs.filename,
|
|
440
|
+
},
|
|
441
|
+
});
|
|
442
|
+
return {
|
|
443
|
+
asset,
|
|
444
|
+
source: 'live',
|
|
445
|
+
cacheAgeSeconds: null,
|
|
446
|
+
complexity: result.value.complexity,
|
|
447
|
+
};
|
|
448
|
+
};
|
|
449
|
+
/**
|
|
450
|
+
* Fires Monday's `add_file_to_update` mutation via the multipart
|
|
451
|
+
* transport (operationName `AddFileToUpdate`, pinned literally per
|
|
452
|
+
* R-NEW-37 W2). Mirrors {@link addFileToColumn}'s shape minus the
|
|
453
|
+
* `column_id` slot — Updates carry attachments via `Update.assets`
|
|
454
|
+
* directly. Same response-parse boundary, same `file_too_large`
|
|
455
|
+
* rewrap, same idempotency caveat (re-running mints a new Asset).
|
|
456
|
+
*/
|
|
457
|
+
export const addFileToUpdate = async (inputs) => {
|
|
458
|
+
const variables = {
|
|
459
|
+
updateId: inputs.updateId,
|
|
460
|
+
file: null,
|
|
461
|
+
};
|
|
462
|
+
// Same rewrap-inside-retry-thunk shape as addFileToColumn — see
|
|
463
|
+
// its inline rationale (round-1 P2-1 fix).
|
|
464
|
+
const result = await withRetry(async () => {
|
|
465
|
+
try {
|
|
466
|
+
return await dispatchMultipartOnce({
|
|
467
|
+
multipart: inputs.multipart,
|
|
468
|
+
query: ADD_FILE_TO_UPDATE_MUTATION,
|
|
469
|
+
variables,
|
|
470
|
+
operationName: 'AddFileToUpdate',
|
|
471
|
+
fileVariableName: 'file',
|
|
472
|
+
file: inputs.file,
|
|
473
|
+
filename: inputs.filename,
|
|
474
|
+
signal: inputs.signal,
|
|
475
|
+
});
|
|
476
|
+
}
|
|
477
|
+
catch (err) {
|
|
478
|
+
if (err instanceof MondayCliError && isFileTooLargeRejection(err)) {
|
|
479
|
+
throw rewrapAsFileTooLarge({
|
|
480
|
+
err,
|
|
481
|
+
fileSizeBytes: inputs.file.size,
|
|
482
|
+
filename: inputs.filename,
|
|
483
|
+
});
|
|
484
|
+
}
|
|
485
|
+
throw err;
|
|
486
|
+
}
|
|
487
|
+
}, {
|
|
488
|
+
retries: inputs.retries,
|
|
489
|
+
signal: inputs.signal,
|
|
490
|
+
});
|
|
491
|
+
void inputs.client;
|
|
492
|
+
const wireData = result.value.data;
|
|
493
|
+
assertResponseFieldPresent({
|
|
494
|
+
data: wireData,
|
|
495
|
+
key: 'add_file_to_update',
|
|
496
|
+
operationLabel: 'AddFileToUpdate',
|
|
497
|
+
details: { update_id: inputs.updateId },
|
|
498
|
+
nullHandling: 'caller_handles',
|
|
499
|
+
});
|
|
500
|
+
const root = wireData.add_file_to_update;
|
|
501
|
+
if (root === null || root === undefined) {
|
|
502
|
+
throw new ApiError('not_found', `Update ${inputs.updateId} does not exist or the token has no write ` +
|
|
503
|
+
`access.`, { details: { update_id: inputs.updateId } });
|
|
504
|
+
}
|
|
505
|
+
const asset = unwrapOrThrow(assetSchema.safeParse(root), {
|
|
506
|
+
context: 'Monday returned a malformed Asset shape from add_file_to_update',
|
|
507
|
+
details: {
|
|
508
|
+
update_id: inputs.updateId,
|
|
509
|
+
filename: inputs.filename,
|
|
510
|
+
},
|
|
511
|
+
});
|
|
512
|
+
return {
|
|
513
|
+
asset,
|
|
514
|
+
source: 'live',
|
|
515
|
+
cacheAgeSeconds: null,
|
|
516
|
+
complexity: result.value.complexity,
|
|
517
|
+
};
|
|
518
|
+
};
|
|
519
|
+
//# sourceMappingURL=assets.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"assets.js","sourceRoot":"","sources":["../../src/api/assets.ts"],"names":[],"mappings":"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"}
|
|
@@ -128,8 +128,12 @@ export declare const isReadOnlyForeverType: (type: string) => type is ReadOnlyFo
|
|
|
128
128
|
* `change_column_value` / `change_multiple_column_values`, so a
|
|
129
129
|
* `--set-raw` raw payload cannot reach the right wire surface for
|
|
130
130
|
* these types — `--set-raw` rejects them with `unsupported_column_
|
|
131
|
-
* type` carrying `deferred_to: "v0.
|
|
132
|
-
*
|
|
131
|
+
* type` carrying `deferred_to: "v0.6"`. v0.4-M31 shipped the verb-
|
|
132
|
+
* shaped path (`monday item upload`); the `--set-raw <file-col>=
|
|
133
|
+
* <json>` form remains deferred because it would need a separate
|
|
134
|
+
* dispatch from the escape-hatch boundary into the multipart wire.
|
|
135
|
+
* Slot slipped from v0.5 to v0.6 at v0.5 release-prep — v0.5 didn't
|
|
136
|
+
* pick up the dispatch either.
|
|
133
137
|
*
|
|
134
138
|
* Currently one entry (`file`); the slot is plural because Monday may
|
|
135
139
|
* surface other multipart-upload-shaped types in future API versions
|
|
@@ -207,8 +211,10 @@ export declare const getColumnRoadmapCategory: (type: string) => ColumnRoadmapCa
|
|
|
207
211
|
* path` is `null` (agents can't write at all; the column
|
|
208
212
|
* exists for read-side display / mirror sources only).
|
|
209
213
|
* - `'files_shaped'`: Monday writes the type via `add_file_to_
|
|
210
|
-
* column` (multipart upload)
|
|
211
|
-
*
|
|
214
|
+
* column` (multipart upload). `monday item upload <iid> --column
|
|
215
|
+
* <col> <file>` shipped at v0.4-M31 as the agent-facing verb;
|
|
216
|
+
* `suggested_write_path` carries that pointer. Currently
|
|
217
|
+
* `file` only.
|
|
212
218
|
*
|
|
213
219
|
* Returns `null` for canonical types (membership in `WRITABLE_COLUMN_
|
|
214
220
|
* TYPES`) — `column-create` skips emitting the warning when the type
|
|
@@ -224,9 +230,9 @@ export interface NoncanonicalColumnTypeDetails {
|
|
|
224
230
|
/**
|
|
225
231
|
* The path agents should use to write to the column post-creation,
|
|
226
232
|
* matching cli-design §5.3 escape-hatch contract — `--set-raw
|
|
227
|
-
* <col>=<json>` for raw-writable types, `
|
|
228
|
-
* (
|
|
229
|
-
* only-forever types (no write path exists).
|
|
233
|
+
* <col>=<json>` for raw-writable types, `monday item upload`
|
|
234
|
+
* (v0.4-M31, multipart) for files-shaped types, `null` for
|
|
235
|
+
* read-only-forever types (no write path exists).
|
|
230
236
|
*/
|
|
231
237
|
readonly suggestedWritePath: string | null;
|
|
232
238
|
}
|
|
@@ -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;;;;;;;;;;;;;;;;;;;;;GAqBG;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;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAqCG;AACH,MAAM,MAAM,8BAA8B,GACtC,cAAc,GACd,mBAAmB,GACnB,cAAc,CAAC;AAEnB,MAAM,WAAW,6BAA6B;IAC5C,QAAQ,CAAC,QAAQ,EAAE,8BAA8B,CAAC;IAClD;;;;;;OAMG;IACH,QAAQ,CAAC,kBAAkB,EAAE,MAAM,GAAG,IAAI,CAAC;CAC5C;AAED,eAAO,MAAM,gCAAgC,GAC3C,MAAM,MAAM,KACX,6BAA6B,GAAG,IAelC,CAAC"}
|
package/dist/api/column-types.js
CHANGED
|
@@ -190,8 +190,12 @@ export const isReadOnlyForeverType = (type) => READ_ONLY_FOREVER_SET.has(type);
|
|
|
190
190
|
* `change_column_value` / `change_multiple_column_values`, so a
|
|
191
191
|
* `--set-raw` raw payload cannot reach the right wire surface for
|
|
192
192
|
* these types — `--set-raw` rejects them with `unsupported_column_
|
|
193
|
-
* type` carrying `deferred_to: "v0.
|
|
194
|
-
*
|
|
193
|
+
* type` carrying `deferred_to: "v0.6"`. v0.4-M31 shipped the verb-
|
|
194
|
+
* shaped path (`monday item upload`); the `--set-raw <file-col>=
|
|
195
|
+
* <json>` form remains deferred because it would need a separate
|
|
196
|
+
* dispatch from the escape-hatch boundary into the multipart wire.
|
|
197
|
+
* Slot slipped from v0.5 to v0.6 at v0.5 release-prep — v0.5 didn't
|
|
198
|
+
* pick up the dispatch either.
|
|
195
199
|
*
|
|
196
200
|
* Currently one entry (`file`); the slot is plural because Monday may
|
|
197
201
|
* surface other multipart-upload-shaped types in future API versions
|
|
@@ -223,7 +227,7 @@ export const categorizeNoncanonicalColumnType = (type) => {
|
|
|
223
227
|
if (isFilesShapedType(type)) {
|
|
224
228
|
return {
|
|
225
229
|
category: 'files_shaped',
|
|
226
|
-
suggestedWritePath: '
|
|
230
|
+
suggestedWritePath: 'monday item upload (v0.4-M31, multipart)',
|
|
227
231
|
};
|
|
228
232
|
}
|
|
229
233
|
return {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"column-types.js","sourceRoot":"","sources":["../../src/api/column-types.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;GAiBG;AAEH;;;;;;;;;;;;;;;;;;;;;;GAsBG;AACH,MAAM,CAAC,MAAM,qBAAqB,GAAG;IACnC,MAAM;IACN,WAAW;IACX,SAAS;IACT,QAAQ;IACR,UAAU;IACV,MAAM;IACN,QAAQ;IACR,MAAM;IACN,OAAO;IACP,OAAO;IACP,gEAAgE;IAChE,gEAAgE;IAChE,mEAAmE;IACnE,wBAAwB;IACxB,MAAM;IACN,iDAAiD;IACjD,4DAA4D;IAC5D,mDAAmD;IACnD,4BAA4B;IAC5B,gBAAgB;IAChB,qDAAqD;IACrD,8DAA8D;IAC9D,qDAAqD;IACrD,8DAA8D;IAC9D,4DAA4D;IAC5D,wCAAwC;IACxC,YAAY;CACJ,CAAC;AAIX,MAAM,iBAAiB,GAAwB,IAAI,GAAG,CAAS,qBAAqB,CAAC,CAAC;AAEtF;;;;GAIG;AACH,MAAM,CAAC,MAAM,oBAAoB,GAAG,CAAC,IAAY,EAA8B,EAAE,CAC/E,iBAAiB,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC;AAE9B;;;;;;;;;;;GAWG;AACH,MAAM,CAAC,MAAM,mBAAmB,GAAG,CAAC,GAAkB,EAAW,EAAE;IACjE,IAAI,GAAG,KAAK,IAAI,IAAI,GAAG,CAAC,MAAM,KAAK,CAAC;QAAE,OAAO,IAAI,CAAC;IAClD,IAAI,CAAC;QACH,OAAO,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;IACzB,CAAC;IAAC,MAAM,CAAC;QACP,OAAO,IAAI,CAAC;IACd,CAAC;AACH,CAAC,CAAC;AAEF;;;;;;;;;;;;;GAaG;AACH,MAAM,CAAC,MAAM,2BAA2B,GAAG;AACzC,0DAA0D;AAC1D,iEAAiE;AACjE,8DAA8D;AAC9D,yDAAyD;AACzD,0DAA0D;AAC1D,+DAA+D;AAC/D,2DAA2D;AAC3D,6DAA6D;AAC7D,wDAAwD;CAChD,CAAC;AAKX,MAAM,yBAAyB,GAAwB,IAAI,GAAG,CAC5D,2BAA2B,CAC5B,CAAC;AAEF;;;;;;;;;;;;;;GAcG;AACH,MAAM,CAAC,MAAM,yBAAyB,GAAG,CACvC,IAAY,EACqB,EAAE,CAAC,yBAAyB,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC;AAE1E;;;;;;;;;;;;;;;GAeG;AACH,MAAM,CAAC,MAAM,uBAAuB,GAAG;IACrC,QAAQ;IACR,SAAS;IACT,aAAa;IACb,cAAc;IACd,cAAc;IACd,SAAS;IACT,qEAAqE;IACrE,kEAAkE;IAClE,oEAAoE;IACpE,+DAA+D;IAC/D,kEAAkE;IAClE,gEAAgE;IAChE,qDAAqD;IACrD,gBAAgB;CACR,CAAC;AAIX,MAAM,qBAAqB,GAAwB,IAAI,GAAG,CACxD,uBAAuB,CACxB,CAAC;AAEF;;;;;;GAMG;AACH,MAAM,CAAC,MAAM,qBAAqB,GAAG,CAAC,IAAY,EAA+B,EAAE,CACjF,qBAAqB,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC;AAElC
|
|
1
|
+
{"version":3,"file":"column-types.js","sourceRoot":"","sources":["../../src/api/column-types.ts"],"names":[],"mappings":"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"}
|
|
@@ -629,7 +629,14 @@ export declare const bundleColumnValues: (translated: readonly TranslatedColumnV
|
|
|
629
629
|
* `add_file_to_column` (multipart upload) rather than
|
|
630
630
|
* `change_column_value`, so neither friendly translator nor
|
|
631
631
|
* `--set-raw` can reach the wire surface. Carry
|
|
632
|
-
* `deferred_to: "v0.
|
|
632
|
+
* `deferred_to: "v0.6"`; hint points at `monday item upload`
|
|
633
|
+
* (shipped v0.4-M31; multipart wire — the alternative path
|
|
634
|
+
* agents should use today). The `deferred_to` slot tracks the
|
|
635
|
+
* friendly `--set <file-col>=<path>` form specifically; v0.4
|
|
636
|
+
* shipped the verb-shaped path (`monday item upload`); v0.5
|
|
637
|
+
* didn't pick up the inline-`--set` translator either (the
|
|
638
|
+
* translator boundary still doesn't dispatch into the multipart
|
|
639
|
+
* wire); slot slipped from v0.5 to v0.6 at v0.5 release-prep.
|
|
633
640
|
* - **`time_tracking`** — verb-shaped extension (start/stop, not
|
|
634
641
|
* value writes); v0.3-deferred. Carry `deferred_to: "v0.3"`;
|
|
635
642
|
* hint points at the upcoming verb surface.
|