monday-cli 0.2.0 → 0.4.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 +675 -2
- package/README.md +223 -31
- 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/board-favorites.d.ts +329 -0
- package/dist/api/board-favorites.d.ts.map +1 -0
- package/dist/api/board-favorites.js +353 -0
- package/dist/api/board-favorites.js.map +1 -0
- package/dist/api/board-mutation-result.d.ts +9 -5
- package/dist/api/board-mutation-result.d.ts.map +1 -1
- package/dist/api/board-mutation-result.js +9 -5
- package/dist/api/board-mutation-result.js.map +1 -1
- package/dist/api/board-relation-validation.d.ts +161 -0
- package/dist/api/board-relation-validation.d.ts.map +1 -0
- package/dist/api/board-relation-validation.js +317 -0
- package/dist/api/board-relation-validation.js.map +1 -0
- package/dist/api/cache.d.ts +14 -5
- package/dist/api/cache.d.ts.map +1 -1
- package/dist/api/cache.js +8 -10
- package/dist/api/cache.js.map +1 -1
- package/dist/api/column-mapping.js +2 -2
- package/dist/api/column-mapping.js.map +1 -1
- package/dist/api/column-mutation-result.d.ts +9 -5
- package/dist/api/column-mutation-result.d.ts.map +1 -1
- package/dist/api/column-mutation-result.js +9 -5
- package/dist/api/column-mutation-result.js.map +1 -1
- package/dist/api/column-types.d.ts +37 -14
- package/dist/api/column-types.d.ts.map +1 -1
- package/dist/api/column-types.js +47 -6
- package/dist/api/column-types.js.map +1 -1
- package/dist/api/column-values.d.ts +234 -31
- package/dist/api/column-values.d.ts.map +1 -1
- package/dist/api/column-values.js +560 -124
- package/dist/api/column-values.js.map +1 -1
- package/dist/api/cross-board-search.d.ts +501 -0
- package/dist/api/cross-board-search.d.ts.map +1 -0
- package/dist/api/cross-board-search.js +547 -0
- package/dist/api/cross-board-search.js.map +1 -0
- package/dist/api/dev-conventions.d.ts +1038 -0
- package/dist/api/dev-conventions.d.ts.map +1 -0
- package/dist/api/dev-conventions.js +1556 -0
- package/dist/api/dev-conventions.js.map +1 -0
- package/dist/api/documents.d.ts +519 -0
- package/dist/api/documents.d.ts.map +1 -0
- package/dist/api/documents.js +586 -0
- package/dist/api/documents.js.map +1 -0
- package/dist/api/dry-run.d.ts +32 -5
- package/dist/api/dry-run.d.ts.map +1 -1
- package/dist/api/dry-run.js +149 -32
- package/dist/api/dry-run.js.map +1 -1
- package/dist/api/errors.d.ts.map +1 -1
- package/dist/api/errors.js +28 -7
- package/dist/api/errors.js.map +1 -1
- package/dist/api/group-mutation-result.d.ts +9 -5
- package/dist/api/group-mutation-result.d.ts.map +1 -1
- package/dist/api/group-mutation-result.js +9 -5
- package/dist/api/group-mutation-result.js.map +1 -1
- package/dist/api/item-history-projection.d.ts +919 -0
- package/dist/api/item-history-projection.d.ts.map +1 -0
- package/dist/api/item-history-projection.js +1104 -0
- package/dist/api/item-history-projection.js.map +1 -0
- package/dist/api/item-mutation-execute.d.ts +82 -0
- package/dist/api/item-mutation-execute.d.ts.map +1 -0
- package/dist/api/item-mutation-execute.js +199 -0
- package/dist/api/item-mutation-execute.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/notifications.d.ts +156 -0
- package/dist/api/notifications.d.ts.map +1 -0
- package/dist/api/notifications.js +215 -0
- package/dist/api/notifications.js.map +1 -0
- package/dist/api/oauth-test-helper.d.ts +64 -0
- package/dist/api/oauth-test-helper.d.ts.map +1 -0
- package/dist/api/oauth-test-helper.js +179 -0
- package/dist/api/oauth-test-helper.js.map +1 -0
- package/dist/api/oauth.d.ts +198 -0
- package/dist/api/oauth.d.ts.map +1 -0
- package/dist/api/oauth.js +471 -0
- package/dist/api/oauth.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 +480 -0
- package/dist/api/partial-success-bulk.d.ts.map +1 -0
- package/dist/api/partial-success-bulk.js +436 -0
- package/dist/api/partial-success-bulk.js.map +1 -0
- 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/people.d.ts +54 -1
- package/dist/api/people.d.ts.map +1 -1
- package/dist/api/people.js +27 -3
- package/dist/api/people.js.map +1 -1
- package/dist/api/probes.d.ts +487 -0
- package/dist/api/probes.d.ts.map +1 -0
- package/dist/api/probes.js +881 -0
- package/dist/api/probes.js.map +1 -0
- package/dist/api/raw-document.d.ts.map +1 -1
- package/dist/api/raw-document.js +2 -2
- package/dist/api/raw-document.js.map +1 -1
- package/dist/api/raw-write.d.ts +12 -4
- package/dist/api/raw-write.d.ts.map +1 -1
- package/dist/api/raw-write.js +32 -14
- package/dist/api/raw-write.js.map +1 -1
- package/dist/api/resolution-context.d.ts +23 -11
- package/dist/api/resolution-context.d.ts.map +1 -1
- package/dist/api/resolution-context.js +53 -12
- package/dist/api/resolution-context.js.map +1 -1
- package/dist/api/resolution-pass.d.ts +30 -1
- package/dist/api/resolution-pass.d.ts.map +1 -1
- package/dist/api/resolution-pass.js +36 -1
- package/dist/api/resolution-pass.js.map +1 -1
- package/dist/api/resolve-client.d.ts +22 -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/response-root.d.ts +92 -46
- package/dist/api/response-root.d.ts.map +1 -1
- package/dist/api/response-root.js +93 -41
- package/dist/api/response-root.js.map +1 -1
- package/dist/api/tag-directory.d.ts +154 -0
- package/dist/api/tag-directory.d.ts.map +1 -0
- package/dist/api/tag-directory.js +325 -0
- package/dist/api/tag-directory.js.map +1 -0
- package/dist/api/time-tracking.d.ts +165 -0
- package/dist/api/time-tracking.d.ts.map +1 -0
- package/dist/api/time-tracking.js +135 -0
- package/dist/api/time-tracking.js.map +1 -0
- package/dist/api/transport.js +3 -3
- package/dist/api/transport.js.map +1 -1
- package/dist/api/usage.d.ts +190 -0
- package/dist/api/usage.d.ts.map +1 -0
- package/dist/api/usage.js +194 -0
- package/dist/api/usage.js.map +1 -0
- package/dist/api/users-fan-out-mutation.d.ts.map +1 -1
- package/dist/api/users-fan-out-mutation.js +10 -5
- package/dist/api/users-fan-out-mutation.js.map +1 -1
- package/dist/api/webhooks.d.ts +357 -0
- package/dist/api/webhooks.d.ts.map +1 -0
- package/dist/api/webhooks.js +333 -0
- package/dist/api/webhooks.js.map +1 -0
- package/dist/cli/envelope-out.d.ts +18 -1
- package/dist/cli/envelope-out.d.ts.map +1 -1
- package/dist/cli/envelope-out.js +16 -2
- package/dist/cli/envelope-out.js.map +1 -1
- package/dist/cli/program.d.ts.map +1 -1
- package/dist/cli/program.js +120 -1
- package/dist/cli/program.js.map +1 -1
- package/dist/cli/run.d.ts +32 -0
- package/dist/cli/run.d.ts.map +1 -1
- package/dist/cli/run.js +3 -0
- package/dist/cli/run.js.map +1 -1
- package/dist/commands/account/tags.d.ts +37 -0
- package/dist/commands/account/tags.d.ts.map +1 -0
- package/dist/commands/account/tags.js +84 -0
- package/dist/commands/account/tags.js.map +1 -0
- package/dist/commands/auth/login.d.ts +14 -0
- package/dist/commands/auth/login.d.ts.map +1 -0
- package/dist/commands/auth/login.js +314 -0
- package/dist/commands/auth/login.js.map +1 -0
- package/dist/commands/auth/logout.d.ts +28 -0
- package/dist/commands/auth/logout.d.ts.map +1 -0
- package/dist/commands/auth/logout.js +94 -0
- package/dist/commands/auth/logout.js.map +1 -0
- package/dist/commands/board/archive.d.ts.map +1 -1
- package/dist/commands/board/archive.js +14 -14
- package/dist/commands/board/archive.js.map +1 -1
- package/dist/commands/board/column-create.d.ts +9 -8
- package/dist/commands/board/column-create.d.ts.map +1 -1
- package/dist/commands/board/column-create.js +61 -51
- package/dist/commands/board/column-create.js.map +1 -1
- package/dist/commands/board/column-delete.d.ts.map +1 -1
- package/dist/commands/board/column-delete.js +15 -16
- package/dist/commands/board/column-delete.js.map +1 -1
- package/dist/commands/board/column-update.d.ts.map +1 -1
- package/dist/commands/board/column-update.js +23 -22
- package/dist/commands/board/column-update.js.map +1 -1
- package/dist/commands/board/create.d.ts.map +1 -1
- package/dist/commands/board/create.js +14 -17
- package/dist/commands/board/create.js.map +1 -1
- package/dist/commands/board/delete.d.ts.map +1 -1
- package/dist/commands/board/delete.js +12 -15
- package/dist/commands/board/delete.js.map +1 -1
- package/dist/commands/board/describe.d.ts.map +1 -1
- package/dist/commands/board/describe.js +30 -0
- package/dist/commands/board/describe.js.map +1 -1
- package/dist/commands/board/duplicate.d.ts.map +1 -1
- package/dist/commands/board/duplicate.js +12 -13
- package/dist/commands/board/duplicate.js.map +1 -1
- package/dist/commands/board/favorites.d.ts +33 -0
- package/dist/commands/board/favorites.d.ts.map +1 -0
- package/dist/commands/board/favorites.js +74 -0
- package/dist/commands/board/favorites.js.map +1 -0
- package/dist/commands/board/find.d.ts +1 -1
- package/dist/commands/board/group-archive.d.ts.map +1 -1
- package/dist/commands/board/group-archive.js +12 -16
- package/dist/commands/board/group-archive.js.map +1 -1
- package/dist/commands/board/group-create.d.ts.map +1 -1
- package/dist/commands/board/group-create.js +9 -19
- package/dist/commands/board/group-create.js.map +1 -1
- package/dist/commands/board/group-delete.d.ts.map +1 -1
- package/dist/commands/board/group-delete.js +12 -16
- package/dist/commands/board/group-delete.js.map +1 -1
- package/dist/commands/board/group-duplicate.d.ts.map +1 -1
- package/dist/commands/board/group-duplicate.js +12 -16
- package/dist/commands/board/group-duplicate.js.map +1 -1
- package/dist/commands/board/group-update.d.ts.map +1 -1
- package/dist/commands/board/group-update.js +12 -11
- package/dist/commands/board/group-update.js.map +1 -1
- package/dist/commands/board/list.d.ts +1 -1
- package/dist/commands/board/update.d.ts.map +1 -1
- package/dist/commands/board/update.js +16 -11
- package/dist/commands/board/update.js.map +1 -1
- package/dist/commands/cache/list.d.ts +2 -0
- package/dist/commands/cache/list.d.ts.map +1 -1
- package/dist/commands/cache/list.js +2 -2
- package/dist/commands/cache/list.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/dev/_shared.d.ts +40 -0
- package/dist/commands/dev/_shared.d.ts.map +1 -0
- package/dist/commands/dev/_shared.js +104 -0
- package/dist/commands/dev/_shared.js.map +1 -0
- package/dist/commands/dev/configure.d.ts +36 -0
- package/dist/commands/dev/configure.d.ts.map +1 -0
- package/dist/commands/dev/configure.js +145 -0
- package/dist/commands/dev/configure.js.map +1 -0
- package/dist/commands/dev/discover.d.ts +34 -0
- package/dist/commands/dev/discover.d.ts.map +1 -0
- package/dist/commands/dev/discover.js +117 -0
- package/dist/commands/dev/discover.js.map +1 -0
- package/dist/commands/dev/doctor.d.ts +39 -0
- package/dist/commands/dev/doctor.d.ts.map +1 -0
- package/dist/commands/dev/doctor.js +91 -0
- package/dist/commands/dev/doctor.js.map +1 -0
- package/dist/commands/dev/epic/items.d.ts +24 -0
- package/dist/commands/dev/epic/items.d.ts.map +1 -0
- package/dist/commands/dev/epic/items.js +103 -0
- package/dist/commands/dev/epic/items.js.map +1 -0
- package/dist/commands/dev/epic/list.d.ts +36 -0
- package/dist/commands/dev/epic/list.d.ts.map +1 -0
- package/dist/commands/dev/epic/list.js +120 -0
- package/dist/commands/dev/epic/list.js.map +1 -0
- package/dist/commands/dev/release/list.d.ts +21 -0
- package/dist/commands/dev/release/list.d.ts.map +1 -0
- package/dist/commands/dev/release/list.js +73 -0
- package/dist/commands/dev/release/list.js.map +1 -0
- package/dist/commands/dev/sprint/current.d.ts +24 -0
- package/dist/commands/dev/sprint/current.d.ts.map +1 -0
- package/dist/commands/dev/sprint/current.js +90 -0
- package/dist/commands/dev/sprint/current.js.map +1 -0
- package/dist/commands/dev/sprint/items.d.ts +34 -0
- package/dist/commands/dev/sprint/items.d.ts.map +1 -0
- package/dist/commands/dev/sprint/items.js +118 -0
- package/dist/commands/dev/sprint/items.js.map +1 -0
- package/dist/commands/dev/sprint/list.d.ts +41 -0
- package/dist/commands/dev/sprint/list.d.ts.map +1 -0
- package/dist/commands/dev/sprint/list.js +104 -0
- package/dist/commands/dev/sprint/list.js.map +1 -0
- package/dist/commands/dev/task/block.d.ts +29 -0
- package/dist/commands/dev/task/block.d.ts.map +1 -0
- package/dist/commands/dev/task/block.js +106 -0
- package/dist/commands/dev/task/block.js.map +1 -0
- package/dist/commands/dev/task/done.d.ts +30 -0
- package/dist/commands/dev/task/done.d.ts.map +1 -0
- package/dist/commands/dev/task/done.js +113 -0
- package/dist/commands/dev/task/done.js.map +1 -0
- package/dist/commands/dev/task/list.d.ts +42 -0
- package/dist/commands/dev/task/list.d.ts.map +1 -0
- package/dist/commands/dev/task/list.js +227 -0
- package/dist/commands/dev/task/list.js.map +1 -0
- package/dist/commands/dev/task/start.d.ts +29 -0
- package/dist/commands/dev/task/start.d.ts.map +1 -0
- package/dist/commands/dev/task/start.js +90 -0
- package/dist/commands/dev/task/start.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/list.d.ts +83 -0
- package/dist/commands/doc/list.d.ts.map +1 -0
- package/dist/commands/doc/list.js +248 -0
- package/dist/commands/doc/list.js.map +1 -0
- package/dist/commands/emit.d.ts.map +1 -1
- package/dist/commands/emit.js +5 -3
- package/dist/commands/emit.js.map +1 -1
- package/dist/commands/index.d.ts.map +1 -1
- package/dist/commands/index.js +141 -0
- package/dist/commands/index.js.map +1 -1
- package/dist/commands/item/archive.d.ts.map +1 -1
- package/dist/commands/item/archive.js +11 -0
- package/dist/commands/item/archive.js.map +1 -1
- package/dist/commands/item/clear.d.ts.map +1 -1
- package/dist/commands/item/clear.js +15 -0
- package/dist/commands/item/clear.js.map +1 -1
- package/dist/commands/item/create.d.ts.map +1 -1
- package/dist/commands/item/create.js +41 -8
- package/dist/commands/item/create.js.map +1 -1
- package/dist/commands/item/delete.d.ts.map +1 -1
- package/dist/commands/item/delete.js +11 -0
- package/dist/commands/item/delete.js.map +1 -1
- package/dist/commands/item/duplicate.d.ts.map +1 -1
- package/dist/commands/item/duplicate.js +12 -0
- package/dist/commands/item/duplicate.js.map +1 -1
- package/dist/commands/item/history.d.ts +60 -0
- package/dist/commands/item/history.d.ts.map +1 -0
- package/dist/commands/item/history.js +309 -0
- package/dist/commands/item/history.js.map +1 -0
- package/dist/commands/item/list.d.ts.map +1 -1
- package/dist/commands/item/list.js +16 -13
- package/dist/commands/item/list.js.map +1 -1
- package/dist/commands/item/move.d.ts.map +1 -1
- package/dist/commands/item/move.js +41 -7
- package/dist/commands/item/move.js.map +1 -1
- package/dist/commands/item/search.d.ts +99 -15
- package/dist/commands/item/search.d.ts.map +1 -1
- package/dist/commands/item/search.js +480 -36
- package/dist/commands/item/search.js.map +1 -1
- package/dist/commands/item/set.d.ts.map +1 -1
- package/dist/commands/item/set.js +52 -8
- package/dist/commands/item/set.js.map +1 -1
- package/dist/commands/item/time-track/start.d.ts +61 -0
- package/dist/commands/item/time-track/start.d.ts.map +1 -0
- package/dist/commands/item/time-track/start.js +138 -0
- package/dist/commands/item/time-track/start.js.map +1 -0
- package/dist/commands/item/time-track/stop.d.ts +32 -0
- package/dist/commands/item/time-track/stop.d.ts.map +1 -0
- package/dist/commands/item/time-track/stop.js +97 -0
- package/dist/commands/item/time-track/stop.js.map +1 -0
- package/dist/commands/item/update.d.ts +2 -0
- package/dist/commands/item/update.d.ts.map +1 -1
- package/dist/commands/item/update.js +164 -113
- 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/upsert.d.ts.map +1 -1
- package/dist/commands/item/upsert.js +48 -1
- package/dist/commands/item/upsert.js.map +1 -1
- 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/notification/send.d.ts +60 -0
- package/dist/commands/notification/send.d.ts.map +1 -0
- package/dist/commands/notification/send.js +147 -0
- package/dist/commands/notification/send.js.map +1 -0
- package/dist/commands/parse-argv.d.ts.map +1 -1
- package/dist/commands/parse-argv.js +14 -4
- package/dist/commands/parse-argv.js.map +1 -1
- package/dist/commands/raw/index.d.ts.map +1 -1
- package/dist/commands/raw/index.js +13 -15
- package/dist/commands/raw/index.js.map +1 -1
- package/dist/commands/run-by-id-lookup.d.ts.map +1 -1
- package/dist/commands/run-by-id-lookup.js +2 -2
- package/dist/commands/run-by-id-lookup.js.map +1 -1
- package/dist/commands/schema/index.d.ts +2 -0
- package/dist/commands/schema/index.d.ts.map +1 -1
- package/dist/commands/status.d.ts +120 -0
- package/dist/commands/status.d.ts.map +1 -0
- package/dist/commands/status.js +365 -0
- package/dist/commands/status.js.map +1 -0
- package/dist/commands/update/body-source.d.ts.map +1 -1
- package/dist/commands/update/body-source.js +2 -2
- package/dist/commands/update/body-source.js.map +1 -1
- package/dist/commands/update/create.d.ts +2 -3
- package/dist/commands/update/create.d.ts.map +1 -1
- package/dist/commands/update/create.js +15 -3
- package/dist/commands/update/create.js.map +1 -1
- package/dist/commands/update/delete.d.ts.map +1 -1
- package/dist/commands/update/delete.js +11 -0
- package/dist/commands/update/delete.js.map +1 -1
- package/dist/commands/update/edit.d.ts.map +1 -1
- package/dist/commands/update/edit.js +11 -0
- package/dist/commands/update/edit.js.map +1 -1
- package/dist/commands/update/list.d.ts.map +1 -1
- package/dist/commands/update/list.js +15 -12
- package/dist/commands/update/list.js.map +1 -1
- package/dist/commands/update/reply.d.ts.map +1 -1
- package/dist/commands/update/reply.js +11 -0
- package/dist/commands/update/reply.js.map +1 -1
- package/dist/commands/update/toggle.d.ts.map +1 -1
- package/dist/commands/update/toggle.js +13 -0
- package/dist/commands/update/toggle.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/usage.d.ts +58 -0
- package/dist/commands/usage.d.ts.map +1 -0
- package/dist/commands/usage.js +94 -0
- package/dist/commands/usage.js.map +1 -0
- package/dist/commands/webhook/create.d.ts +74 -0
- package/dist/commands/webhook/create.d.ts.map +1 -0
- package/dist/commands/webhook/create.js +150 -0
- package/dist/commands/webhook/create.js.map +1 -0
- package/dist/commands/webhook/delete.d.ts +46 -0
- package/dist/commands/webhook/delete.d.ts.map +1 -0
- package/dist/commands/webhook/delete.js +141 -0
- package/dist/commands/webhook/delete.js.map +1 -0
- package/dist/commands/webhook/list.d.ts +23 -0
- package/dist/commands/webhook/list.d.ts.map +1 -0
- package/dist/commands/webhook/list.js +68 -0
- package/dist/commands/webhook/list.js.map +1 -0
- package/dist/commands/workspace/create.d.ts.map +1 -1
- package/dist/commands/workspace/create.js +16 -0
- package/dist/commands/workspace/create.js.map +1 -1
- package/dist/commands/workspace/delete.d.ts.map +1 -1
- package/dist/commands/workspace/delete.js +13 -13
- package/dist/commands/workspace/delete.js.map +1 -1
- package/dist/commands/workspace/list.d.ts +1 -1
- package/dist/commands/workspace/update.d.ts.map +1 -1
- package/dist/commands/workspace/update.js +15 -15
- package/dist/commands/workspace/update.js.map +1 -1
- package/dist/config/credentials.d.ts +189 -0
- package/dist/config/credentials.d.ts.map +1 -0
- package/dist/config/credentials.js +300 -0
- package/dist/config/credentials.js.map +1 -0
- package/dist/config/profiles.d.ts +125 -0
- package/dist/config/profiles.d.ts.map +1 -0
- package/dist/config/profiles.js +227 -0
- package/dist/config/profiles.js.map +1 -0
- package/dist/types/global-flags.d.ts +1 -1
- package/dist/types/global-flags.d.ts.map +1 -1
- package/dist/types/global-flags.js +28 -16
- package/dist/types/global-flags.js.map +1 -1
- package/dist/types/ids.d.ts +4 -0
- package/dist/types/ids.d.ts.map +1 -1
- package/dist/types/ids.js +12 -3
- package/dist/types/ids.js.map +1 -1
- package/dist/utils/errors.d.ts +57 -3
- package/dist/utils/errors.d.ts.map +1 -1
- package/dist/utils/errors.js +69 -2
- package/dist/utils/errors.js.map +1 -1
- package/dist/utils/fs.d.ts +35 -0
- package/dist/utils/fs.d.ts.map +1 -0
- package/dist/utils/fs.js +36 -0
- package/dist/utils/fs.js.map +1 -0
- package/dist/utils/json.d.ts +60 -0
- package/dist/utils/json.d.ts.map +1 -0
- package/dist/utils/json.js +86 -0
- package/dist/utils/json.js.map +1 -0
- 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 +90 -3
- package/dist/utils/output/ndjson.d.ts.map +1 -1
- package/dist/utils/output/ndjson.js +33 -0
- package/dist/utils/output/ndjson.js.map +1 -1
- package/dist/utils/redact.d.ts.map +1 -1
- package/dist/utils/redact.js +31 -0
- package/dist/utils/redact.js.map +1 -1
- 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/package.json +2 -1
- package/dist/commands/account/client-helper.d.ts +0 -37
- package/dist/commands/account/client-helper.d.ts.map +0 -1
- package/dist/commands/account/client-helper.js +0 -55
- package/dist/commands/account/client-helper.js.map +0 -1
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"item-watch.js","sourceRoot":"","sources":["../../src/api/item-watch.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,223 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Multipart transport seam for the v0.4-M31 asset-upload verbs
|
|
3
|
+
* (`monday item upload` / `monday update upload`) — first v0.4
|
|
4
|
+
* transport extension touching `multipart/form-data` instead of
|
|
5
|
+
* the existing JSON-only `client.request` seam in `transport.ts`.
|
|
6
|
+
*
|
|
7
|
+
* **Why a sibling module, not an extension of `transport.ts`.** The
|
|
8
|
+
* existing `Transport` interface owns three load-bearing invariants
|
|
9
|
+
* (Codex M2 review §1):
|
|
10
|
+
*
|
|
11
|
+
* 1. Header lockdown — caller-supplied headers can NEVER override
|
|
12
|
+
* `Authorization` / `API-Version` / `Content-Type`.
|
|
13
|
+
* 2. `Content-Type: application/json` is hard-coded into the
|
|
14
|
+
* transport-owned set.
|
|
15
|
+
* 3. The body is always `JSON.stringify({ query, variables,
|
|
16
|
+
* operationName })`.
|
|
17
|
+
*
|
|
18
|
+
* Asset upload violates invariants (2) and (3): Monday's
|
|
19
|
+
* `add_file_to_column` + `add_file_to_update` mutations follow the
|
|
20
|
+
* standard GraphQL multipart-request specification (jaydenseric, used
|
|
21
|
+
* widely across the GraphQL ecosystem). The wire envelope is
|
|
22
|
+
* `multipart/form-data` with three named parts:
|
|
23
|
+
*
|
|
24
|
+
* - `operations` (JSON) — `{query, variables, operationName}` where
|
|
25
|
+
* the file-typed variable's value is `null` (placeholder).
|
|
26
|
+
* - `map` (JSON) — `{"<file-index>": ["variables.<file-var-name>"]}`
|
|
27
|
+
* pointing the multipart file part at the operations variable
|
|
28
|
+
* slot the file should fill.
|
|
29
|
+
* - `<file-index>` (binary) — the file's bytes, with `filename` +
|
|
30
|
+
* `Content-Type` parameters surfacing the upload's metadata
|
|
31
|
+
* (Monday reads `name` from this `filename` parameter).
|
|
32
|
+
*
|
|
33
|
+
* The multipart envelope is incompatible with the JSON transport's
|
|
34
|
+
* `body: JSON.stringify(...)` path; building it inside `transport.ts`
|
|
35
|
+
* would have leaked multipart awareness into the JSON-only seam's
|
|
36
|
+
* type signature OR introduced a discriminator on every JSON request.
|
|
37
|
+
* Keeping the two transports in sibling modules:
|
|
38
|
+
*
|
|
39
|
+
* - Preserves `transport.ts`'s invariants verbatim — its header
|
|
40
|
+
* lockdown + JSON body shape don't grow a multipart branch.
|
|
41
|
+
* - Makes the multipart-only invariants explicit in this module's
|
|
42
|
+
* type signature (`MultipartTransportRequest` carries a stream
|
|
43
|
+
* or buffer, not a query string).
|
|
44
|
+
* - Mirrors `docs/architecture.md` "Wire-vs-CLI semantics
|
|
45
|
+
* documentation conventions" (R-NEW-41 lift, 3rd-consumer
|
|
46
|
+
* trigger at v0.4-M31 pre-flight) — different wire shapes
|
|
47
|
+
* live in different modules, with a per-shape interface;
|
|
48
|
+
* the architecture section is the canonical cross-link
|
|
49
|
+
* target for the asymmetry enumeration.
|
|
50
|
+
*
|
|
51
|
+
* **What this module owns.** A `MultipartTransport` interface
|
|
52
|
+
* mirroring `Transport` (request → response, with `signal` /
|
|
53
|
+
* `timeout` / per-call options) + a `createMultipartFetchTransport`
|
|
54
|
+
* factory that builds an instance over Node's `fetch` (the same
|
|
55
|
+
* platform `fetch` `transport.ts` uses) but assembles the multipart
|
|
56
|
+
* body via the `FormData` Web API instead of `JSON.stringify`.
|
|
57
|
+
*
|
|
58
|
+
* **Header lockdown carries over.** `Authorization` + `API-Version`
|
|
59
|
+
* are transport-owned exactly the same way; `Content-Type` is set
|
|
60
|
+
* automatically by `fetch` when given a `FormData` body (the
|
|
61
|
+
* multipart boundary parameter requires the body builder to set
|
|
62
|
+
* `Content-Type` so we don't preempt it here). Caller-supplied
|
|
63
|
+
* headers with case-insensitive matches against the reserved set
|
|
64
|
+
* are stripped before the spread.
|
|
65
|
+
*
|
|
66
|
+
* **Retry + signal contract.** The transport itself does NOT own
|
|
67
|
+
* retry — callers (the asset-upload fetchers in
|
|
68
|
+
* `src/api/assets.ts`) wrap the dispatch in `withRetry(...)` from
|
|
69
|
+
* `src/api/retry.ts` to honor `--retry <n>` per cli-design §2.5.
|
|
70
|
+
* The transport DOES own signal threading: callers pass `signal`
|
|
71
|
+
* on every `request()` (required slot on
|
|
72
|
+
* {@link MultipartTransportRequest}); abort propagation follows
|
|
73
|
+
* the standard `AbortSignal.any(timeout, caller)` chain mirroring
|
|
74
|
+
* `transport.ts`'s `combineSignals` (lands at IMPL).
|
|
75
|
+
*
|
|
76
|
+
* **Status: runtime body shipped at v0.4-M31 IMPL.** Wire-body
|
|
77
|
+
* builder + fetch dispatch + header lockdown + signal combination +
|
|
78
|
+
* fetch-error mapping all land below. Header lockdown mirrors
|
|
79
|
+
* `transport.ts:createFetchTransport` (caller-supplied headers can
|
|
80
|
+
* never override `Authorization` / `API-Version`); `Content-Type`
|
|
81
|
+
* is intentionally NOT in the transport-owned override set —
|
|
82
|
+
* `fetch` sets it from the `FormData` body's boundary parameter.
|
|
83
|
+
*
|
|
84
|
+
* Per empirical probe `scripts/probe/m31-asset-upload.ts`
|
|
85
|
+
* (2026-05-13, API `2026-01`):
|
|
86
|
+
*
|
|
87
|
+
* - `add_file_to_column(column_id: String!, file: File!,
|
|
88
|
+
* item_id: ID!) → Asset` — note `column_id: String!` (NOT
|
|
89
|
+
* `ID!`).
|
|
90
|
+
* - `add_file_to_update(file: File!, update_id: ID!) → Asset`.
|
|
91
|
+
* - `File` scalar (NOT the spec-standard `Upload!` — Monday's
|
|
92
|
+
* schema names it `File`; the multipart wire shape is otherwise
|
|
93
|
+
* compliant with the jaydenseric spec).
|
|
94
|
+
* - `Asset` returns 10 fields (`id` / `name` / `url` /
|
|
95
|
+
* `public_url` / `file_extension` / `file_size` /
|
|
96
|
+
* `created_at` / `uploaded_by` / `original_geometry` /
|
|
97
|
+
* `url_thumbnail`).
|
|
98
|
+
*/
|
|
99
|
+
/**
|
|
100
|
+
* One multipart request: the GraphQL operations payload (query +
|
|
101
|
+
* variables + operationName) plus the binary file content and the
|
|
102
|
+
* upload metadata (filename + content-type). The caller (the fetcher
|
|
103
|
+
* in `src/api/assets.ts`) constructs both the GraphQL document AND
|
|
104
|
+
* the file bytes; this transport only owns the wire-shape assembly
|
|
105
|
+
* (FormData parts + header lockdown + fetch dispatch).
|
|
106
|
+
*
|
|
107
|
+
* `fileVariableName` is the GraphQL variable name in `operations.
|
|
108
|
+
* variables` that the file fills — the multipart `map` JSON pins
|
|
109
|
+
* the binary part at `variables.<fileVariableName>`. Currently
|
|
110
|
+
* always `'file'` (both Monday upload mutations use `$file: File!`)
|
|
111
|
+
* but exposed as a parameter so the spec-compliant `map` JSON
|
|
112
|
+
* generation stays local to this module.
|
|
113
|
+
*/
|
|
114
|
+
export interface MultipartTransportRequest {
|
|
115
|
+
readonly query: string;
|
|
116
|
+
readonly variables: Readonly<Record<string, unknown>>;
|
|
117
|
+
readonly operationName: string;
|
|
118
|
+
/**
|
|
119
|
+
* GraphQL variable name in `variables` to populate with the
|
|
120
|
+
* file's binary content. The `variables.<fileVariableName>` slot
|
|
121
|
+
* in the operations payload MUST be `null` (placeholder); the
|
|
122
|
+
* multipart `map` JSON points the binary part at this path.
|
|
123
|
+
*
|
|
124
|
+
* Monday's two upload mutations both use `$file: File!` at the
|
|
125
|
+
* pinned API `2026-01`, so callers pass `'file'`; future Monday
|
|
126
|
+
* surfaces (if any) with a different variable name override
|
|
127
|
+
* this slot.
|
|
128
|
+
*/
|
|
129
|
+
readonly fileVariableName: string;
|
|
130
|
+
/**
|
|
131
|
+
* Stream-friendly binary content. At v0.4-M31 IMPL the fetcher
|
|
132
|
+
* passes a `Blob` (Node 22+ supports the Web API `Blob`); the
|
|
133
|
+
* `FormData` `append(name, blob, filename)` form sets the multi-
|
|
134
|
+
* part part's `filename` + inherits `Content-Type` from the blob.
|
|
135
|
+
* Future stdin/streaming support would widen this to a
|
|
136
|
+
* `Blob | ReadableStream` union with a separate `filename` slot.
|
|
137
|
+
*/
|
|
138
|
+
readonly file: Blob;
|
|
139
|
+
/**
|
|
140
|
+
* The basename used in the multipart part's `filename` parameter.
|
|
141
|
+
* Monday surfaces `Asset.name` from this field; downstream agents
|
|
142
|
+
* see this string as `data.asset.name` in the success envelope.
|
|
143
|
+
* Required — empty filenames are rejected by Monday's server-side
|
|
144
|
+
* validation (`USER_UNAUTHORIZED` / generic validation errors).
|
|
145
|
+
*/
|
|
146
|
+
readonly filename: string;
|
|
147
|
+
/**
|
|
148
|
+
* Caller-supplied signal threaded into the underlying `fetch`'s
|
|
149
|
+
* `signal` option (combined with `AbortSignal.timeout(timeoutMs)`
|
|
150
|
+
* at IMPL via `AbortSignal.any` mirroring `transport.ts`'s
|
|
151
|
+
* `combineSignals`). Required — callers MUST pass `ctx.signal`
|
|
152
|
+
* explicitly so SIGINT + `--timeout` propagate to the in-flight
|
|
153
|
+
* multipart upload.
|
|
154
|
+
*/
|
|
155
|
+
readonly signal: AbortSignal;
|
|
156
|
+
}
|
|
157
|
+
export interface MultipartTransportResponse {
|
|
158
|
+
readonly status: number;
|
|
159
|
+
readonly headers: Readonly<Record<string, string>>;
|
|
160
|
+
/**
|
|
161
|
+
* Parsed JSON body — Monday's GraphQL multipart endpoint returns
|
|
162
|
+
* the same `{data?, errors?}` JSON shape as the JSON-body endpoint
|
|
163
|
+
* (the response is JSON regardless of the request being multi-
|
|
164
|
+
* part). Non-JSON responses (HTML error pages, etc.) surface as
|
|
165
|
+
* `ApiError('network_error')` rather than partially-decoded
|
|
166
|
+
* payloads, mirroring `transport.ts:createFetchTransport`.
|
|
167
|
+
*/
|
|
168
|
+
readonly body: unknown;
|
|
169
|
+
}
|
|
170
|
+
export interface MultipartTransport {
|
|
171
|
+
readonly request: (req: MultipartTransportRequest) => Promise<MultipartTransportResponse>;
|
|
172
|
+
}
|
|
173
|
+
export interface MultipartFetchTransportConfig {
|
|
174
|
+
readonly endpoint: string;
|
|
175
|
+
readonly apiToken: string;
|
|
176
|
+
readonly apiVersion: string;
|
|
177
|
+
readonly timeoutMs: number;
|
|
178
|
+
/** Override for tests; defaults to global `fetch`. */
|
|
179
|
+
readonly fetchImpl?: typeof fetch;
|
|
180
|
+
}
|
|
181
|
+
/**
|
|
182
|
+
* Builds a `MultipartTransport` over Node's `fetch` using the Web
|
|
183
|
+
* `FormData` API to assemble the multipart body (operations + map
|
|
184
|
+
* + file parts per the standard GraphQL multipart-request
|
|
185
|
+
* specification). Header lockdown mirrors `createFetchTransport`'s
|
|
186
|
+
* discipline: caller-supplied headers never override `Authorization`
|
|
187
|
+
* / `API-Version`; `Content-Type` is set by `fetch` from the
|
|
188
|
+
* `FormData` body's boundary parameter, so it is NOT in the
|
|
189
|
+
* transport-owned override set (different from the JSON transport's
|
|
190
|
+
* hard-coded `application/json`).
|
|
191
|
+
*
|
|
192
|
+
* Pipeline per request:
|
|
193
|
+
*
|
|
194
|
+
* 1. Strip caller-supplied headers whose lowercase names match the
|
|
195
|
+
* reserved set (`authorization`, `api-version`); spread the safe
|
|
196
|
+
* remainder into the request bag, then append the transport-
|
|
197
|
+
* owned `Authorization` + `API-Version` so they always win.
|
|
198
|
+
* 2. Build the `FormData` body — `operations` JSON part with the
|
|
199
|
+
* query + variables + operationName (the file variable's value
|
|
200
|
+
* is `null` at the caller's request, per spec) + `map` JSON
|
|
201
|
+
* part pointing the file part at
|
|
202
|
+
* `variables.<fileVariableName>` + the file `Blob` keyed by
|
|
203
|
+
* index `'0'` with the caller-supplied `filename`.
|
|
204
|
+
* 3. Combine the caller's `signal` with `AbortSignal.timeout
|
|
205
|
+
* (timeoutMs)` so SIGINT + per-request timeout both propagate
|
|
206
|
+
* to the in-flight upload.
|
|
207
|
+
* 4. Dispatch via `fetch` with `method: 'POST'` + the assembled
|
|
208
|
+
* body + the merged signal. Don't set `Content-Type` — fetch
|
|
209
|
+
* derives it from the FormData boundary.
|
|
210
|
+
* 5. Parse the JSON response body. Non-JSON (HTML error page,
|
|
211
|
+
* etc.) surfaces as `ApiError('network_error')` mirroring
|
|
212
|
+
* `transport.ts`'s discipline; abort vs timeout discrimination
|
|
213
|
+
* follows the same rule (the timeout signal wins iff the
|
|
214
|
+
* caller's signal didn't fire first).
|
|
215
|
+
*
|
|
216
|
+
* The transport does NOT own retry — the asset-upload fetchers in
|
|
217
|
+
* `src/api/assets.ts` wrap the `request(...)` call in `withRetry
|
|
218
|
+
* (...)` per cli-design §2.5; Web `Blob.stream()` returns a fresh
|
|
219
|
+
* `ReadableStream` per call so the FormData body re-assembles
|
|
220
|
+
* cleanly on each retry attempt without buffering.
|
|
221
|
+
*/
|
|
222
|
+
export declare const createMultipartFetchTransport: (config: MultipartFetchTransportConfig) => MultipartTransport;
|
|
223
|
+
//# sourceMappingURL=multipart-transport.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"multipart-transport.d.ts","sourceRoot":"","sources":["../../src/api/multipart-transport.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAiGG;AAIH;;;;;;;;;;;;;;GAcG;AACH,MAAM,WAAW,yBAAyB;IACxC,QAAQ,CAAC,KAAK,EAAE,MAAM,CAAC;IACvB,QAAQ,CAAC,SAAS,EAAE,QAAQ,CAAC,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC,CAAC;IACtD,QAAQ,CAAC,aAAa,EAAE,MAAM,CAAC;IAC/B;;;;;;;;;;OAUG;IACH,QAAQ,CAAC,gBAAgB,EAAE,MAAM,CAAC;IAClC;;;;;;;OAOG;IACH,QAAQ,CAAC,IAAI,EAAE,IAAI,CAAC;IACpB;;;;;;OAMG;IACH,QAAQ,CAAC,QAAQ,EAAE,MAAM,CAAC;IAC1B;;;;;;;OAOG;IACH,QAAQ,CAAC,MAAM,EAAE,WAAW,CAAC;CAC9B;AAED,MAAM,WAAW,0BAA0B;IACzC,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAC;IACxB,QAAQ,CAAC,OAAO,EAAE,QAAQ,CAAC,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC,CAAC;IACnD;;;;;;;OAOG;IACH,QAAQ,CAAC,IAAI,EAAE,OAAO,CAAC;CACxB;AAED,MAAM,WAAW,kBAAkB;IACjC,QAAQ,CAAC,OAAO,EAAE,CAChB,GAAG,EAAE,yBAAyB,KAC3B,OAAO,CAAC,0BAA0B,CAAC,CAAC;CAC1C;AAED,MAAM,WAAW,6BAA6B;IAC5C,QAAQ,CAAC,QAAQ,EAAE,MAAM,CAAC;IAC1B,QAAQ,CAAC,QAAQ,EAAE,MAAM,CAAC;IAC1B,QAAQ,CAAC,UAAU,EAAE,MAAM,CAAC;IAC5B,QAAQ,CAAC,SAAS,EAAE,MAAM,CAAC;IAC3B,sDAAsD;IACtD,QAAQ,CAAC,SAAS,CAAC,EAAE,OAAO,KAAK,CAAC;CACnC;AAED;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAwCG;AACH,eAAO,MAAM,6BAA6B,GACxC,QAAQ,6BAA6B,KACpC,kBAwFF,CAAC"}
|
|
@@ -0,0 +1,274 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Multipart transport seam for the v0.4-M31 asset-upload verbs
|
|
3
|
+
* (`monday item upload` / `monday update upload`) — first v0.4
|
|
4
|
+
* transport extension touching `multipart/form-data` instead of
|
|
5
|
+
* the existing JSON-only `client.request` seam in `transport.ts`.
|
|
6
|
+
*
|
|
7
|
+
* **Why a sibling module, not an extension of `transport.ts`.** The
|
|
8
|
+
* existing `Transport` interface owns three load-bearing invariants
|
|
9
|
+
* (Codex M2 review §1):
|
|
10
|
+
*
|
|
11
|
+
* 1. Header lockdown — caller-supplied headers can NEVER override
|
|
12
|
+
* `Authorization` / `API-Version` / `Content-Type`.
|
|
13
|
+
* 2. `Content-Type: application/json` is hard-coded into the
|
|
14
|
+
* transport-owned set.
|
|
15
|
+
* 3. The body is always `JSON.stringify({ query, variables,
|
|
16
|
+
* operationName })`.
|
|
17
|
+
*
|
|
18
|
+
* Asset upload violates invariants (2) and (3): Monday's
|
|
19
|
+
* `add_file_to_column` + `add_file_to_update` mutations follow the
|
|
20
|
+
* standard GraphQL multipart-request specification (jaydenseric, used
|
|
21
|
+
* widely across the GraphQL ecosystem). The wire envelope is
|
|
22
|
+
* `multipart/form-data` with three named parts:
|
|
23
|
+
*
|
|
24
|
+
* - `operations` (JSON) — `{query, variables, operationName}` where
|
|
25
|
+
* the file-typed variable's value is `null` (placeholder).
|
|
26
|
+
* - `map` (JSON) — `{"<file-index>": ["variables.<file-var-name>"]}`
|
|
27
|
+
* pointing the multipart file part at the operations variable
|
|
28
|
+
* slot the file should fill.
|
|
29
|
+
* - `<file-index>` (binary) — the file's bytes, with `filename` +
|
|
30
|
+
* `Content-Type` parameters surfacing the upload's metadata
|
|
31
|
+
* (Monday reads `name` from this `filename` parameter).
|
|
32
|
+
*
|
|
33
|
+
* The multipart envelope is incompatible with the JSON transport's
|
|
34
|
+
* `body: JSON.stringify(...)` path; building it inside `transport.ts`
|
|
35
|
+
* would have leaked multipart awareness into the JSON-only seam's
|
|
36
|
+
* type signature OR introduced a discriminator on every JSON request.
|
|
37
|
+
* Keeping the two transports in sibling modules:
|
|
38
|
+
*
|
|
39
|
+
* - Preserves `transport.ts`'s invariants verbatim — its header
|
|
40
|
+
* lockdown + JSON body shape don't grow a multipart branch.
|
|
41
|
+
* - Makes the multipart-only invariants explicit in this module's
|
|
42
|
+
* type signature (`MultipartTransportRequest` carries a stream
|
|
43
|
+
* or buffer, not a query string).
|
|
44
|
+
* - Mirrors `docs/architecture.md` "Wire-vs-CLI semantics
|
|
45
|
+
* documentation conventions" (R-NEW-41 lift, 3rd-consumer
|
|
46
|
+
* trigger at v0.4-M31 pre-flight) — different wire shapes
|
|
47
|
+
* live in different modules, with a per-shape interface;
|
|
48
|
+
* the architecture section is the canonical cross-link
|
|
49
|
+
* target for the asymmetry enumeration.
|
|
50
|
+
*
|
|
51
|
+
* **What this module owns.** A `MultipartTransport` interface
|
|
52
|
+
* mirroring `Transport` (request → response, with `signal` /
|
|
53
|
+
* `timeout` / per-call options) + a `createMultipartFetchTransport`
|
|
54
|
+
* factory that builds an instance over Node's `fetch` (the same
|
|
55
|
+
* platform `fetch` `transport.ts` uses) but assembles the multipart
|
|
56
|
+
* body via the `FormData` Web API instead of `JSON.stringify`.
|
|
57
|
+
*
|
|
58
|
+
* **Header lockdown carries over.** `Authorization` + `API-Version`
|
|
59
|
+
* are transport-owned exactly the same way; `Content-Type` is set
|
|
60
|
+
* automatically by `fetch` when given a `FormData` body (the
|
|
61
|
+
* multipart boundary parameter requires the body builder to set
|
|
62
|
+
* `Content-Type` so we don't preempt it here). Caller-supplied
|
|
63
|
+
* headers with case-insensitive matches against the reserved set
|
|
64
|
+
* are stripped before the spread.
|
|
65
|
+
*
|
|
66
|
+
* **Retry + signal contract.** The transport itself does NOT own
|
|
67
|
+
* retry — callers (the asset-upload fetchers in
|
|
68
|
+
* `src/api/assets.ts`) wrap the dispatch in `withRetry(...)` from
|
|
69
|
+
* `src/api/retry.ts` to honor `--retry <n>` per cli-design §2.5.
|
|
70
|
+
* The transport DOES own signal threading: callers pass `signal`
|
|
71
|
+
* on every `request()` (required slot on
|
|
72
|
+
* {@link MultipartTransportRequest}); abort propagation follows
|
|
73
|
+
* the standard `AbortSignal.any(timeout, caller)` chain mirroring
|
|
74
|
+
* `transport.ts`'s `combineSignals` (lands at IMPL).
|
|
75
|
+
*
|
|
76
|
+
* **Status: runtime body shipped at v0.4-M31 IMPL.** Wire-body
|
|
77
|
+
* builder + fetch dispatch + header lockdown + signal combination +
|
|
78
|
+
* fetch-error mapping all land below. Header lockdown mirrors
|
|
79
|
+
* `transport.ts:createFetchTransport` (caller-supplied headers can
|
|
80
|
+
* never override `Authorization` / `API-Version`); `Content-Type`
|
|
81
|
+
* is intentionally NOT in the transport-owned override set —
|
|
82
|
+
* `fetch` sets it from the `FormData` body's boundary parameter.
|
|
83
|
+
*
|
|
84
|
+
* Per empirical probe `scripts/probe/m31-asset-upload.ts`
|
|
85
|
+
* (2026-05-13, API `2026-01`):
|
|
86
|
+
*
|
|
87
|
+
* - `add_file_to_column(column_id: String!, file: File!,
|
|
88
|
+
* item_id: ID!) → Asset` — note `column_id: String!` (NOT
|
|
89
|
+
* `ID!`).
|
|
90
|
+
* - `add_file_to_update(file: File!, update_id: ID!) → Asset`.
|
|
91
|
+
* - `File` scalar (NOT the spec-standard `Upload!` — Monday's
|
|
92
|
+
* schema names it `File`; the multipart wire shape is otherwise
|
|
93
|
+
* compliant with the jaydenseric spec).
|
|
94
|
+
* - `Asset` returns 10 fields (`id` / `name` / `url` /
|
|
95
|
+
* `public_url` / `file_extension` / `file_size` /
|
|
96
|
+
* `created_at` / `uploaded_by` / `original_geometry` /
|
|
97
|
+
* `url_thumbnail`).
|
|
98
|
+
*/
|
|
99
|
+
import { ApiError, errorCode } from '../utils/errors.js';
|
|
100
|
+
/**
|
|
101
|
+
* Builds a `MultipartTransport` over Node's `fetch` using the Web
|
|
102
|
+
* `FormData` API to assemble the multipart body (operations + map
|
|
103
|
+
* + file parts per the standard GraphQL multipart-request
|
|
104
|
+
* specification). Header lockdown mirrors `createFetchTransport`'s
|
|
105
|
+
* discipline: caller-supplied headers never override `Authorization`
|
|
106
|
+
* / `API-Version`; `Content-Type` is set by `fetch` from the
|
|
107
|
+
* `FormData` body's boundary parameter, so it is NOT in the
|
|
108
|
+
* transport-owned override set (different from the JSON transport's
|
|
109
|
+
* hard-coded `application/json`).
|
|
110
|
+
*
|
|
111
|
+
* Pipeline per request:
|
|
112
|
+
*
|
|
113
|
+
* 1. Strip caller-supplied headers whose lowercase names match the
|
|
114
|
+
* reserved set (`authorization`, `api-version`); spread the safe
|
|
115
|
+
* remainder into the request bag, then append the transport-
|
|
116
|
+
* owned `Authorization` + `API-Version` so they always win.
|
|
117
|
+
* 2. Build the `FormData` body — `operations` JSON part with the
|
|
118
|
+
* query + variables + operationName (the file variable's value
|
|
119
|
+
* is `null` at the caller's request, per spec) + `map` JSON
|
|
120
|
+
* part pointing the file part at
|
|
121
|
+
* `variables.<fileVariableName>` + the file `Blob` keyed by
|
|
122
|
+
* index `'0'` with the caller-supplied `filename`.
|
|
123
|
+
* 3. Combine the caller's `signal` with `AbortSignal.timeout
|
|
124
|
+
* (timeoutMs)` so SIGINT + per-request timeout both propagate
|
|
125
|
+
* to the in-flight upload.
|
|
126
|
+
* 4. Dispatch via `fetch` with `method: 'POST'` + the assembled
|
|
127
|
+
* body + the merged signal. Don't set `Content-Type` — fetch
|
|
128
|
+
* derives it from the FormData boundary.
|
|
129
|
+
* 5. Parse the JSON response body. Non-JSON (HTML error page,
|
|
130
|
+
* etc.) surfaces as `ApiError('network_error')` mirroring
|
|
131
|
+
* `transport.ts`'s discipline; abort vs timeout discrimination
|
|
132
|
+
* follows the same rule (the timeout signal wins iff the
|
|
133
|
+
* caller's signal didn't fire first).
|
|
134
|
+
*
|
|
135
|
+
* The transport does NOT own retry — the asset-upload fetchers in
|
|
136
|
+
* `src/api/assets.ts` wrap the `request(...)` call in `withRetry
|
|
137
|
+
* (...)` per cli-design §2.5; Web `Blob.stream()` returns a fresh
|
|
138
|
+
* `ReadableStream` per call so the FormData body re-assembles
|
|
139
|
+
* cleanly on each retry attempt without buffering.
|
|
140
|
+
*/
|
|
141
|
+
export const createMultipartFetchTransport = (config) => {
|
|
142
|
+
const fetchImpl = config.fetchImpl ?? fetch;
|
|
143
|
+
return {
|
|
144
|
+
request: async ({ query, variables, operationName, fileVariableName, file, filename, signal, }) => {
|
|
145
|
+
// Header lockdown — same intent as `transport.ts`'s reserved-
|
|
146
|
+
// header set, but `MultipartTransportRequest` carries NO
|
|
147
|
+
// `headers` slot, so the lockdown is closed-by-construction:
|
|
148
|
+
// there's no way for a caller to inject headers that could
|
|
149
|
+
// override the transport-owned `Authorization` / `API-Version`.
|
|
150
|
+
// `Content-Type` is intentionally absent from this bag — fetch
|
|
151
|
+
// sets it from the FormData body's boundary parameter, and
|
|
152
|
+
// preempting it would corrupt the multipart envelope (the
|
|
153
|
+
// boundary delimiter encoded in the header MUST match the one
|
|
154
|
+
// FormData chose internally).
|
|
155
|
+
const requestHeaders = {
|
|
156
|
+
Authorization: config.apiToken,
|
|
157
|
+
'API-Version': config.apiVersion,
|
|
158
|
+
};
|
|
159
|
+
// Build the multipart body per the spec. The operations JSON
|
|
160
|
+
// carries `null` in the file variable's slot (the caller
|
|
161
|
+
// already populated `variables[fileVariableName] = null`
|
|
162
|
+
// before reaching the transport). The `map` JSON pins the
|
|
163
|
+
// binary part at `variables.<fileVariableName>` so Monday's
|
|
164
|
+
// multipart parser can route the bytes to the right slot.
|
|
165
|
+
const operations = { query, variables };
|
|
166
|
+
operations.operationName = operationName;
|
|
167
|
+
const formData = new FormData();
|
|
168
|
+
formData.append('operations', JSON.stringify(operations));
|
|
169
|
+
formData.append('map', JSON.stringify({ '0': [`variables.${fileVariableName}`] }));
|
|
170
|
+
formData.append('0', file, filename);
|
|
171
|
+
const combinedSignal = combineSignals(signal, AbortSignal.timeout(config.timeoutMs));
|
|
172
|
+
let response;
|
|
173
|
+
try {
|
|
174
|
+
response = await fetchImpl(config.endpoint, {
|
|
175
|
+
method: 'POST',
|
|
176
|
+
headers: requestHeaders,
|
|
177
|
+
body: formData,
|
|
178
|
+
signal: combinedSignal,
|
|
179
|
+
});
|
|
180
|
+
}
|
|
181
|
+
catch (err) {
|
|
182
|
+
if (isAbortError(err) && combinedSignal.reason !== signal.reason) {
|
|
183
|
+
throw new ApiError('timeout', `request timed out after ${String(config.timeoutMs)}ms`, { cause: err, details: { timeout_ms: config.timeoutMs } });
|
|
184
|
+
}
|
|
185
|
+
throw new ApiError('network_error', describeFetchError(err), {
|
|
186
|
+
cause: err,
|
|
187
|
+
});
|
|
188
|
+
}
|
|
189
|
+
const responseHeaders = headersToRecord(response.headers);
|
|
190
|
+
let parsed;
|
|
191
|
+
try {
|
|
192
|
+
parsed = await response.json();
|
|
193
|
+
}
|
|
194
|
+
catch (err) {
|
|
195
|
+
throw new ApiError('network_error', `non-JSON response (status ${String(response.status)})`, { cause: err, httpStatus: response.status });
|
|
196
|
+
}
|
|
197
|
+
return {
|
|
198
|
+
status: response.status,
|
|
199
|
+
headers: responseHeaders,
|
|
200
|
+
body: parsed,
|
|
201
|
+
};
|
|
202
|
+
},
|
|
203
|
+
};
|
|
204
|
+
};
|
|
205
|
+
const isAbortError = (err) => {
|
|
206
|
+
if (err instanceof Error) {
|
|
207
|
+
return err.name === 'AbortError' || err.name === 'TimeoutError';
|
|
208
|
+
}
|
|
209
|
+
return false;
|
|
210
|
+
};
|
|
211
|
+
/**
|
|
212
|
+
* Mirrors `transport.ts:describeFetchError`. Extracted to keep
|
|
213
|
+
* messaging stable across the JSON + multipart paths — agents
|
|
214
|
+
* reading either envelope's `error.message` see the same vocabulary
|
|
215
|
+
* for connection / DNS / TLS failures regardless of which transport
|
|
216
|
+
* issued the call.
|
|
217
|
+
*/
|
|
218
|
+
const describeFetchError = (err) => {
|
|
219
|
+
if (err instanceof Error) {
|
|
220
|
+
const code = errorCode(err);
|
|
221
|
+
if (code !== undefined) {
|
|
222
|
+
if (code.startsWith('ENOTFOUND') || code.startsWith('EAI_')) {
|
|
223
|
+
return 'fetch failed: dns lookup failed';
|
|
224
|
+
}
|
|
225
|
+
if (code === 'ECONNREFUSED' || code === 'ECONNRESET') {
|
|
226
|
+
return 'fetch failed: connection refused';
|
|
227
|
+
}
|
|
228
|
+
if (code === 'CERT_HAS_EXPIRED' || code.startsWith('UNABLE_TO_')) {
|
|
229
|
+
return 'fetch failed: tls error';
|
|
230
|
+
}
|
|
231
|
+
}
|
|
232
|
+
const lower = err.message.toLowerCase();
|
|
233
|
+
if (lower.includes('econnrefused') || lower.includes('connection refused')) {
|
|
234
|
+
return 'fetch failed: connection refused';
|
|
235
|
+
}
|
|
236
|
+
if (lower.includes('enotfound') ||
|
|
237
|
+
lower.includes('eai_again') ||
|
|
238
|
+
lower.includes('getaddrinfo')) {
|
|
239
|
+
return 'fetch failed: dns lookup failed';
|
|
240
|
+
}
|
|
241
|
+
return 'fetch failed';
|
|
242
|
+
}
|
|
243
|
+
return 'fetch failed';
|
|
244
|
+
};
|
|
245
|
+
const headersToRecord = (headers) => {
|
|
246
|
+
const out = {};
|
|
247
|
+
headers.forEach((value, key) => {
|
|
248
|
+
out[key] = value;
|
|
249
|
+
});
|
|
250
|
+
return out;
|
|
251
|
+
};
|
|
252
|
+
/**
|
|
253
|
+
* Mirrors `transport.ts:combineSignals` — prefer the platform
|
|
254
|
+
* `AbortSignal.any` when available (Node 22+ pin always satisfies
|
|
255
|
+
* this) and synthesise a controller for the legacy fallback path.
|
|
256
|
+
*/
|
|
257
|
+
const combineSignals = (...signals) => {
|
|
258
|
+
const real = signals.filter((s) => s !== undefined);
|
|
259
|
+
const [first, ...rest] = real;
|
|
260
|
+
/* c8 ignore next 3 — defensive guard; production callers always
|
|
261
|
+
pass at least one signal (the caller's `ctx.signal` is REQUIRED
|
|
262
|
+
on `MultipartTransportRequest`). */
|
|
263
|
+
if (first === undefined) {
|
|
264
|
+
return new AbortController().signal;
|
|
265
|
+
}
|
|
266
|
+
/* c8 ignore next 3 — production callers always combine the
|
|
267
|
+
caller's signal with `AbortSignal.timeout(...)`, so this branch
|
|
268
|
+
is unreachable from the request() pipeline. */
|
|
269
|
+
if (rest.length === 0) {
|
|
270
|
+
return first;
|
|
271
|
+
}
|
|
272
|
+
return AbortSignal.any(real);
|
|
273
|
+
};
|
|
274
|
+
//# sourceMappingURL=multipart-transport.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"multipart-transport.js","sourceRoot":"","sources":["../../src/api/multipart-transport.ts"],"names":[],"mappings":"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"}
|