@zapier/zapier-sdk 0.107.1 → 0.108.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 +14 -0
- package/README.md +319 -0
- package/dist/{chunk-PFNHJW2F.cjs → chunk-HMEY72T6.cjs} +209 -23
- package/dist/{chunk-MRDFD4MP.mjs → chunk-ULZVDPAK.mjs} +209 -23
- package/dist/experimental.cjs +849 -370
- package/dist/experimental.d.mts +588 -9
- package/dist/experimental.d.ts +588 -9
- package/dist/experimental.mjs +483 -4
- package/dist/index.cjs +279 -279
- package/dist/index.mjs +1 -1
- package/package.json +1 -1
package/CHANGELOG.md
CHANGED
|
@@ -1,5 +1,19 @@
|
|
|
1
1
|
# @zapier/zapier-sdk
|
|
2
2
|
|
|
3
|
+
## 0.108.0
|
|
4
|
+
|
|
5
|
+
### Minor Changes
|
|
6
|
+
|
|
7
|
+
- cd1cafb: Added nine experimental Virtual File System (VFS) methods to `@zapier/zapier-sdk/experimental` for reading and managing a user's stored files and directories: `readVfsFile`, `writeVfsFile`, `appendVfsFile`, `copyVfsFile`, `listVfsDirectory`, `createVfsDirectory`, `statVfsPath`, `deleteVfsPath`, and `moveVfsPath`.
|
|
8
|
+
|
|
9
|
+
Paths are absolute and must start with `/`. A missing path throws `ZapierResourceNotFoundError`; a policy denial throws `ZapierAuthenticationError`.
|
|
10
|
+
|
|
11
|
+
## 0.107.2
|
|
12
|
+
|
|
13
|
+
### Patch Changes
|
|
14
|
+
|
|
15
|
+
- 48996ac: _This release contains no user-facing changes._
|
|
16
|
+
|
|
3
17
|
## 0.107.1
|
|
4
18
|
|
|
5
19
|
### Patch Changes
|
package/README.md
CHANGED
|
@@ -105,6 +105,16 @@
|
|
|
105
105
|
- [`resumeTriggerInbox`](#resumetriggerinbox)
|
|
106
106
|
- [`updateTriggerInbox`](#updatetriggerinbox)
|
|
107
107
|
- [`watchTriggerInbox`](#watchtriggerinbox)
|
|
108
|
+
- [Virtual File System (Experimental)](#virtual-file-system-experimental)
|
|
109
|
+
- [`appendVfsFile`](#appendvfsfile--experimental)
|
|
110
|
+
- [`copyVfsFile`](#copyvfsfile--experimental)
|
|
111
|
+
- [`createVfsDirectory`](#createvfsdirectory--experimental)
|
|
112
|
+
- [`deleteVfsPath`](#deletevfspath--experimental)
|
|
113
|
+
- [`listVfsDirectory`](#listvfsdirectory--experimental)
|
|
114
|
+
- [`moveVfsPath`](#movevfspath--experimental)
|
|
115
|
+
- [`readVfsFile`](#readvfsfile--experimental)
|
|
116
|
+
- [`statVfsPath`](#statvfspath--experimental)
|
|
117
|
+
- [`writeVfsFile`](#writevfsfile--experimental)
|
|
108
118
|
|
|
109
119
|
## Documentation
|
|
110
120
|
|
|
@@ -4248,3 +4258,312 @@ await zapier.watchTriggerInbox({
|
|
|
4248
4258
|
},
|
|
4249
4259
|
});
|
|
4250
4260
|
```
|
|
4261
|
+
|
|
4262
|
+
### Virtual File System (Experimental)
|
|
4263
|
+
|
|
4264
|
+
> ℹ️ **Experimental.** Import from `"@zapier/zapier-sdk/experimental"` to use these methods. Methods and behavior may change.
|
|
4265
|
+
|
|
4266
|
+
#### `appendVfsFile` 🧪 _experimental_
|
|
4267
|
+
|
|
4268
|
+
Append content to a file in the Zapier Virtual File System (VFS). Creates the file if it doesn't exist; missing parent directories are created automatically. Safer than reading the file and rewriting it — appends server-side without a read/write round-trip. Paths are absolute (e.g. `/Mine/log.md`).
|
|
4269
|
+
|
|
4270
|
+
**Parameters:**
|
|
4271
|
+
|
|
4272
|
+
| Name | Type | Required | Default | Possible Values | Description |
|
|
4273
|
+
| ------------- | -------- | -------- | ------- | --------------- | ---------------------------------------------------------------------------------------------- |
|
|
4274
|
+
| `options` | `object` | ✅ | — | — | |
|
|
4275
|
+
| ↳ `path` | `string` | ✅ | — | — | Absolute path of the file (must start with `/`). |
|
|
4276
|
+
| ↳ `content` | `string` | ✅ | — | — | Content to append. Capped at 10 MB per call, and the resulting file must also fit under 10 MB. |
|
|
4277
|
+
|
|
4278
|
+
**Returns:** `Promise<VfsWriteResultItem>`
|
|
4279
|
+
|
|
4280
|
+
| Name | Type | Required | Possible Values | Description |
|
|
4281
|
+
| -------------- | -------- | -------- | -------------------- | -------------------------------------------------------------------- |
|
|
4282
|
+
| `data` | `object` | ✅ | — | |
|
|
4283
|
+
| ↳ `path` | `string` | ✅ | — | Absolute path of the written file. |
|
|
4284
|
+
| ↳ `version` | `number` | ✅ | — | Monotonic version stamped by the server on this write. |
|
|
4285
|
+
| ↳ `action` | `string` | ✅ | `created`, `updated` | Whether the write created a new file or updated an existing one. |
|
|
4286
|
+
| ↳ `warnings` | `array` | ❌ | — | Non-fatal issues the server surfaced alongside the successful write. |
|
|
4287
|
+
|
|
4288
|
+
**Example:**
|
|
4289
|
+
|
|
4290
|
+
```typescript
|
|
4291
|
+
const { data: vfsWriteResult } = await zapier.appendVfsFile({
|
|
4292
|
+
path: "/Mine/notes.md",
|
|
4293
|
+
content: "example-content",
|
|
4294
|
+
});
|
|
4295
|
+
```
|
|
4296
|
+
|
|
4297
|
+
#### `copyVfsFile` 🧪 _experimental_
|
|
4298
|
+
|
|
4299
|
+
Copy a file to a new path in the Zapier Virtual File System (VFS). Both `from` and `to` are absolute file paths (e.g. `/Mine/notes.md`), not directories.
|
|
4300
|
+
|
|
4301
|
+
**Parameters:**
|
|
4302
|
+
|
|
4303
|
+
| Name | Type | Required | Default | Possible Values | Description |
|
|
4304
|
+
| --------------------- | --------- | -------- | ------- | --------------- | ---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
|
|
4305
|
+
| `options` | `object` | ✅ | — | — | |
|
|
4306
|
+
| ↳ `from` | `string` | ✅ | — | — | Absolute path of the source file. |
|
|
4307
|
+
| ↳ `to` | `string` | ✅ | — | — | Absolute path of the destination file. |
|
|
4308
|
+
| ↳ `overwrite` | `boolean` | ❌ | — | — | When `true`, replace any existing file at `to`. Default `false` fails if `to` already exists. |
|
|
4309
|
+
| ↳ `expectedVersion` | `number` | ❌ | — | — | Optional version pin for the destination. Requires `overwrite: true` and an existing file at `to`; the replace only succeeds if the destination's current version matches, otherwise the call fails. |
|
|
4310
|
+
|
|
4311
|
+
**Returns:** `Promise<VfsWriteResultItem>`
|
|
4312
|
+
|
|
4313
|
+
| Name | Type | Required | Possible Values | Description |
|
|
4314
|
+
| -------------- | -------- | -------- | -------------------- | -------------------------------------------------------------------- |
|
|
4315
|
+
| `data` | `object` | ✅ | — | |
|
|
4316
|
+
| ↳ `path` | `string` | ✅ | — | Absolute path of the written file. |
|
|
4317
|
+
| ↳ `version` | `number` | ✅ | — | Monotonic version stamped by the server on this write. |
|
|
4318
|
+
| ↳ `action` | `string` | ✅ | `created`, `updated` | Whether the write created a new file or updated an existing one. |
|
|
4319
|
+
| ↳ `warnings` | `array` | ❌ | — | Non-fatal issues the server surfaced alongside the successful write. |
|
|
4320
|
+
|
|
4321
|
+
**Example:**
|
|
4322
|
+
|
|
4323
|
+
```typescript
|
|
4324
|
+
const { data: vfsWriteResult } = await zapier.copyVfsFile({
|
|
4325
|
+
from: "/Mine/notes.md",
|
|
4326
|
+
to: "/Mine/notes-copy.md",
|
|
4327
|
+
});
|
|
4328
|
+
```
|
|
4329
|
+
|
|
4330
|
+
#### `createVfsDirectory` 🧪 _experimental_
|
|
4331
|
+
|
|
4332
|
+
Create a directory in the Zapier Virtual File System (VFS). Paths are absolute (e.g. `/Mine/notes`). Idempotent — safe to call on an existing directory.
|
|
4333
|
+
|
|
4334
|
+
**Parameters:**
|
|
4335
|
+
|
|
4336
|
+
| Name | Type | Required | Default | Possible Values | Description |
|
|
4337
|
+
| ---------- | -------- | -------- | ------- | --------------- | ----------------------------------------------------- |
|
|
4338
|
+
| `options` | `object` | ✅ | — | — | |
|
|
4339
|
+
| ↳ `path` | `string` | ✅ | — | — | Absolute path of the directory (must start with `/`). |
|
|
4340
|
+
|
|
4341
|
+
**Returns:** `Promise<VfsMkdirResultItem>`
|
|
4342
|
+
|
|
4343
|
+
| Name | Type | Required | Possible Values | Description |
|
|
4344
|
+
| ------------ | -------- | -------- | -------------------- | ------------------------------------------------------------------------ |
|
|
4345
|
+
| `data` | `object` | ✅ | — | |
|
|
4346
|
+
| ↳ `path` | `string` | ✅ | — | Absolute path of the created directory. |
|
|
4347
|
+
| ↳ `action` | `string` | ✅ | `created`, `updated` | Whether the directory was newly created or already existed (idempotent). |
|
|
4348
|
+
|
|
4349
|
+
**Example:**
|
|
4350
|
+
|
|
4351
|
+
```typescript
|
|
4352
|
+
const { data: vfsMkdirResult } = await zapier.createVfsDirectory({
|
|
4353
|
+
path: "/Mine/notes",
|
|
4354
|
+
});
|
|
4355
|
+
```
|
|
4356
|
+
|
|
4357
|
+
#### `deleteVfsPath` 🧪 _experimental_
|
|
4358
|
+
|
|
4359
|
+
Delete a file or directory in the Zapier Virtual File System (VFS). Works on either; paths are absolute (e.g. `/Mine/notes.md`). Deletes are recoverable — contact Zapier support to restore an entry.
|
|
4360
|
+
|
|
4361
|
+
**Parameters:**
|
|
4362
|
+
|
|
4363
|
+
| Name | Type | Required | Default | Possible Values | Description |
|
|
4364
|
+
| ---------- | -------- | -------- | ------- | --------------- | ---------------------------------------------- |
|
|
4365
|
+
| `options` | `object` | ✅ | — | — | |
|
|
4366
|
+
| ↳ `path` | `string` | ✅ | — | — | Absolute path to delete (must start with `/`). |
|
|
4367
|
+
|
|
4368
|
+
**Returns:** `Promise<VfsDeleteResultItem>`
|
|
4369
|
+
|
|
4370
|
+
| Name | Type | Required | Possible Values | Description |
|
|
4371
|
+
| ---------- | -------- | -------- | --------------- | -------------------------------------------------- |
|
|
4372
|
+
| `data` | `object` | ✅ | — | |
|
|
4373
|
+
| ↳ `path` | `string` | ✅ | — | Absolute path that was removed from the live tree. |
|
|
4374
|
+
|
|
4375
|
+
**Example:**
|
|
4376
|
+
|
|
4377
|
+
```typescript
|
|
4378
|
+
const result = await zapier.deleteVfsPath({
|
|
4379
|
+
path: "/Mine/notes.md",
|
|
4380
|
+
});
|
|
4381
|
+
```
|
|
4382
|
+
|
|
4383
|
+
#### `listVfsDirectory` 🧪 _experimental_
|
|
4384
|
+
|
|
4385
|
+
List one page of a directory's contents in the Zapier Virtual File System (VFS). Paths are absolute (e.g. `/Mine`). Pass the previous page's `nextCursor` back in `cursor` to fetch the next page.
|
|
4386
|
+
|
|
4387
|
+
**Parameters:**
|
|
4388
|
+
|
|
4389
|
+
| Name | Type | Required | Default | Possible Values | Description |
|
|
4390
|
+
| -------------- | -------- | -------- | ------- | --------------- | ----------------------------------------------------- |
|
|
4391
|
+
| `options` | `object` | ✅ | — | — | |
|
|
4392
|
+
| ↳ `path` | `string` | ✅ | — | — | Absolute path of the directory (must start with `/`). |
|
|
4393
|
+
| ↳ `pageSize` | `number` | ❌ | — | — | Entries per page (default 50, max 500). |
|
|
4394
|
+
| ↳ `maxItems` | `number` | ❌ | — | — | Maximum total entries to return across all pages. |
|
|
4395
|
+
| ↳ `cursor` | `string` | ❌ | — | — | Cursor to resume from, as returned in `nextCursor`. |
|
|
4396
|
+
|
|
4397
|
+
**Returns:** `Promise<PaginatedResult<VfsDirectoryEntryItem>>`
|
|
4398
|
+
|
|
4399
|
+
| Name | Type | Required | Possible Values | Description |
|
|
4400
|
+
| ------------------ | ---------- | -------- | ----------------------------------------- | ---------------------------------------------------------------------- |
|
|
4401
|
+
| `data[]` | `object[]` | ✅ | — | |
|
|
4402
|
+
| ↳ `type` | `string` | ✅ | `file`, `directory`, `shortcut`, `stream` | Kind of entry. `shortcut` points at a `target_*` sibling. |
|
|
4403
|
+
| ↳ `name` | `string` | ✅ | — | Basename of the entry (the segment after the last `/`). |
|
|
4404
|
+
| ↳ `path` | `string` | ✅ | — | Absolute path of the entry. |
|
|
4405
|
+
| ↳ `size` | `number` | ❌ | — | Content size in bytes. Present for files; absent for directories. |
|
|
4406
|
+
| ↳ `version` | `number` | ❌ | — | Monotonic version for the underlying file, when applicable. |
|
|
4407
|
+
| ↳ `updated_at` | `string` | ❌ | — | ISO-8601 timestamp of the last modification. |
|
|
4408
|
+
| ↳ `target_type` | `string` | ❌ | `file`, `directory`, `stream` | For `shortcut` entries: the kind of resource the shortcut points at. |
|
|
4409
|
+
| ↳ `target_path` | `string` | ❌ | — | For `shortcut` entries: the absolute path the shortcut points at. |
|
|
4410
|
+
| ↳ `accessible` | `boolean` | ❌ | — | Whether the caller can read the target. Only meaningful for shortcuts. |
|
|
4411
|
+
| ↳ `content_type` | `string` | ❌ | — | MIME type of a file's content, when the server can determine one. |
|
|
4412
|
+
| `nextCursor` | `string` | ❌ | — | Cursor for the next page; omitted when there are no more pages |
|
|
4413
|
+
|
|
4414
|
+
**Example:**
|
|
4415
|
+
|
|
4416
|
+
```typescript
|
|
4417
|
+
// Get first page and a cursor for the second page
|
|
4418
|
+
const { data: vfsDirectoryEntrys, nextCursor } = await zapier.listVfsDirectory({
|
|
4419
|
+
path: "/Mine",
|
|
4420
|
+
});
|
|
4421
|
+
|
|
4422
|
+
// Or iterate over all pages
|
|
4423
|
+
for await (const page of zapier
|
|
4424
|
+
.listVfsDirectory({
|
|
4425
|
+
path: "/Mine",
|
|
4426
|
+
})
|
|
4427
|
+
.pages()) {
|
|
4428
|
+
// Do something with each page
|
|
4429
|
+
}
|
|
4430
|
+
|
|
4431
|
+
// Or iterate over individual items across all pages
|
|
4432
|
+
for await (const vfsDirectoryEntry of zapier
|
|
4433
|
+
.listVfsDirectory({
|
|
4434
|
+
path: "/Mine",
|
|
4435
|
+
})
|
|
4436
|
+
.items()) {
|
|
4437
|
+
// Do something with each vfsDirectoryEntry
|
|
4438
|
+
}
|
|
4439
|
+
```
|
|
4440
|
+
|
|
4441
|
+
#### `moveVfsPath` 🧪 _experimental_
|
|
4442
|
+
|
|
4443
|
+
Move (rename) a file or directory in the Zapier Virtual File System (VFS). Both `from` and `to` are absolute paths (e.g. `/Mine/notes.md`). Fails if an entry already exists at `to` — delete or rename it first.
|
|
4444
|
+
|
|
4445
|
+
**Parameters:**
|
|
4446
|
+
|
|
4447
|
+
| Name | Type | Required | Default | Possible Values | Description |
|
|
4448
|
+
| ---------- | -------- | -------- | ------- | --------------- | ---------------------------------- |
|
|
4449
|
+
| `options` | `object` | ✅ | — | — | |
|
|
4450
|
+
| ↳ `from` | `string` | ✅ | — | — | Absolute path of the source entry. |
|
|
4451
|
+
| ↳ `to` | `string` | ✅ | — | — | New absolute path for the entry. |
|
|
4452
|
+
|
|
4453
|
+
**Returns:** `Promise<VfsMoveResultItem>`
|
|
4454
|
+
|
|
4455
|
+
| Name | Type | Required | Possible Values | Description |
|
|
4456
|
+
| ---------- | -------- | -------- | --------------- | ------------------------------------------- |
|
|
4457
|
+
| `data` | `object` | ✅ | — | |
|
|
4458
|
+
| ↳ `from` | `string` | ✅ | — | Absolute source path (before the move). |
|
|
4459
|
+
| ↳ `to` | `string` | ✅ | — | Absolute destination path (after the move). |
|
|
4460
|
+
|
|
4461
|
+
**Example:**
|
|
4462
|
+
|
|
4463
|
+
```typescript
|
|
4464
|
+
const { data: vfsMoveResult } = await zapier.moveVfsPath({
|
|
4465
|
+
from: "/Mine/notes.md",
|
|
4466
|
+
to: "/Mine/archive/notes.md",
|
|
4467
|
+
});
|
|
4468
|
+
```
|
|
4469
|
+
|
|
4470
|
+
#### `readVfsFile` 🧪 _experimental_
|
|
4471
|
+
|
|
4472
|
+
Read a file from the Zapier Virtual File System (VFS), the file store behind your context repository. Paths are absolute, e.g. `/Mine/notes.md`. Returns the content as a UTF-8 string with its size, version, and last-modified time.
|
|
4473
|
+
|
|
4474
|
+
**Parameters:**
|
|
4475
|
+
|
|
4476
|
+
| Name | Type | Required | Default | Possible Values | Description |
|
|
4477
|
+
| -------------- | -------- | -------- | ------- | --------------- | ------------------------------------------------------------------------------------------------------------------ |
|
|
4478
|
+
| `options` | `object` | ✅ | — | — | |
|
|
4479
|
+
| ↳ `path` | `string` | ✅ | — | — | Absolute path of the file to read (must start with `/`). |
|
|
4480
|
+
| ↳ `maxBytes` | `number` | ❌ | — | — | Optional cap on returned content length, in bytes. Files are capped at 10 MB, so values above that have no effect. |
|
|
4481
|
+
|
|
4482
|
+
**Returns:** `Promise<VfsFileItem>`
|
|
4483
|
+
|
|
4484
|
+
| Name | Type | Required | Possible Values | Description |
|
|
4485
|
+
| -------------------- | -------- | -------- | --------------- | ----------------------------------------------------------------------- |
|
|
4486
|
+
| `data` | `object` | ✅ | — | |
|
|
4487
|
+
| ↳ `type` | `string` | ✅ | `file` | Discriminator — always `file` for a file read. |
|
|
4488
|
+
| ↳ `path` | `string` | ✅ | — | Absolute path of the file that was read. |
|
|
4489
|
+
| ↳ `name` | `string` | ✅ | — | Basename of the file (the segment after the last `/`). |
|
|
4490
|
+
| ↳ `content` | `string` | ✅ | — | File content as a UTF-8 string, truncated to `maxBytes` when requested. |
|
|
4491
|
+
| ↳ `size` | `number` | ✅ | — | Total content size in bytes (independent of any `maxBytes` truncation). |
|
|
4492
|
+
| ↳ `version` | `number` | ✅ | — | Monotonic version for the file at read time. |
|
|
4493
|
+
| ↳ `updated_at` | `string` | ✅ | — | ISO-8601 timestamp of the last modification. |
|
|
4494
|
+
| ↳ `canonical_path` | `string` | ❌ | — | Absolute path the server resolved after following any shortcut. |
|
|
4495
|
+
|
|
4496
|
+
**Example:**
|
|
4497
|
+
|
|
4498
|
+
```typescript
|
|
4499
|
+
const { data: vfsFile } = await zapier.readVfsFile({
|
|
4500
|
+
path: "/Mine/notes.md",
|
|
4501
|
+
});
|
|
4502
|
+
```
|
|
4503
|
+
|
|
4504
|
+
#### `statVfsPath` 🧪 _experimental_
|
|
4505
|
+
|
|
4506
|
+
Inspect metadata for any path (file, directory, shortcut, or stream) in the Zapier Virtual File System (VFS). Paths are absolute (e.g. `/Mine/notes.md`). Check the `type` field before reading fields that only exist for certain types.
|
|
4507
|
+
|
|
4508
|
+
**Parameters:**
|
|
4509
|
+
|
|
4510
|
+
| Name | Type | Required | Default | Possible Values | Description |
|
|
4511
|
+
| ---------- | -------- | -------- | ------- | --------------- | -------------------------------------------- |
|
|
4512
|
+
| `options` | `object` | ✅ | — | — | |
|
|
4513
|
+
| ↳ `path` | `string` | ✅ | — | — | Absolute path to stat (must start with `/`). |
|
|
4514
|
+
|
|
4515
|
+
**Returns:** `Promise<VfsStatItem>`
|
|
4516
|
+
|
|
4517
|
+
| Name | Type | Required | Possible Values | Description |
|
|
4518
|
+
| ------------------ | --------- | -------- | ----------------------------------------- | ---------------------------------------------------------------------- |
|
|
4519
|
+
| `data` | `object` | ✅ | — | |
|
|
4520
|
+
| ↳ `type` | `string` | ✅ | `file`, `directory`, `shortcut`, `stream` | Kind of entry. `shortcut` points at a `target_*` sibling. |
|
|
4521
|
+
| ↳ `name` | `string` | ✅ | — | Basename of the entry (the segment after the last `/`). |
|
|
4522
|
+
| ↳ `path` | `string` | ✅ | — | Absolute path of the entry. |
|
|
4523
|
+
| ↳ `size` | `number` | ❌ | — | Content size in bytes. Present for files; absent for directories. |
|
|
4524
|
+
| ↳ `version` | `number` | ❌ | — | Monotonic version for the underlying file, when applicable. |
|
|
4525
|
+
| ↳ `updated_at` | `string` | ❌ | — | ISO-8601 timestamp of the last modification. |
|
|
4526
|
+
| ↳ `target_type` | `string` | ❌ | `file`, `directory`, `stream` | For `shortcut` entries: the kind of resource the shortcut points at. |
|
|
4527
|
+
| ↳ `target_path` | `string` | ❌ | — | For `shortcut` entries: the absolute path the shortcut points at. |
|
|
4528
|
+
| ↳ `accessible` | `boolean` | ❌ | — | Whether the caller can read the target. Only meaningful for shortcuts. |
|
|
4529
|
+
| ↳ `content_type` | `string` | ❌ | — | MIME type of a file's content, when the server can determine one. |
|
|
4530
|
+
|
|
4531
|
+
**Example:**
|
|
4532
|
+
|
|
4533
|
+
```typescript
|
|
4534
|
+
const { data: vfsStat } = await zapier.statVfsPath({
|
|
4535
|
+
path: "/Mine/notes.md",
|
|
4536
|
+
});
|
|
4537
|
+
```
|
|
4538
|
+
|
|
4539
|
+
#### `writeVfsFile` 🧪 _experimental_
|
|
4540
|
+
|
|
4541
|
+
Write (create or overwrite) a file in the Zapier Virtual File System (VFS). Paths are absolute (e.g. `/Mine/notes.md`); missing parent directories are created automatically.
|
|
4542
|
+
|
|
4543
|
+
**Parameters:**
|
|
4544
|
+
|
|
4545
|
+
| Name | Type | Required | Default | Possible Values | Description |
|
|
4546
|
+
| --------------------- | -------- | -------- | ------- | --------------- | ----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
|
|
4547
|
+
| `options` | `object` | ✅ | — | — | |
|
|
4548
|
+
| ↳ `path` | `string` | ✅ | — | — | Absolute path of the file (must start with `/`). |
|
|
4549
|
+
| ↳ `content` | `string` | ✅ | — | — | New file contents. Capped at 10 MB per call. |
|
|
4550
|
+
| ↳ `expectedVersion` | `number` | ❌ | — | — | Optional expected current version for optimistic concurrency. The write fails if the file's actual version differs. Pass `0` to assert the file does not exist yet (versions start at 1). |
|
|
4551
|
+
|
|
4552
|
+
**Returns:** `Promise<VfsWriteResultItem>`
|
|
4553
|
+
|
|
4554
|
+
| Name | Type | Required | Possible Values | Description |
|
|
4555
|
+
| -------------- | -------- | -------- | -------------------- | -------------------------------------------------------------------- |
|
|
4556
|
+
| `data` | `object` | ✅ | — | |
|
|
4557
|
+
| ↳ `path` | `string` | ✅ | — | Absolute path of the written file. |
|
|
4558
|
+
| ↳ `version` | `number` | ✅ | — | Monotonic version stamped by the server on this write. |
|
|
4559
|
+
| ↳ `action` | `string` | ✅ | `created`, `updated` | Whether the write created a new file or updated an existing one. |
|
|
4560
|
+
| ↳ `warnings` | `array` | ❌ | — | Non-fatal issues the server surfaced alongside the successful write. |
|
|
4561
|
+
|
|
4562
|
+
**Example:**
|
|
4563
|
+
|
|
4564
|
+
```typescript
|
|
4565
|
+
const { data: vfsWriteResult } = await zapier.writeVfsFile({
|
|
4566
|
+
path: "/Mine/notes.md",
|
|
4567
|
+
content: "example-content",
|
|
4568
|
+
});
|
|
4569
|
+
```
|