basecamp-client 1.0.8 → 1.0.9

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/dist/index.js CHANGED
@@ -160,7 +160,7 @@ async function asyncPagedToArray(options) {
160
160
  var import_core3 = require("@ts-rest/core");
161
161
 
162
162
  // src/contract/index.ts
163
- var import_zod68 = require("zod");
163
+ var import_zod69 = require("zod");
164
164
 
165
165
  // src/contract/c.ts
166
166
  var import_core = require("@ts-rest/core");
@@ -1219,28 +1219,54 @@ var clientVisibilityRouter = c.router({
1219
1219
  }
1220
1220
  });
1221
1221
 
1222
+ // src/contract/resources/blobs.ts
1223
+ var import_zod27 = require("zod");
1224
+ var blobsRouter = c.router({
1225
+ download: {
1226
+ summary: "Download a blob",
1227
+ description: "Download the raw file content of a blob. Blobs represent files embedded in documents and messages via bc-attachment tags.",
1228
+ metadata: {
1229
+ tag: "Blobs",
1230
+ operationId: "blobs.download",
1231
+ rawResponse: true
1232
+ },
1233
+ method: "GET",
1234
+ path: "/blobs/:blobId/download/:filename",
1235
+ pathParams: import_zod27.z.object({
1236
+ blobId: import_zod27.z.string().min(1),
1237
+ filename: import_zod27.z.string().min(1)
1238
+ }),
1239
+ responses: {
1240
+ 200: c.otherResponse({
1241
+ contentType: "application/octet-stream",
1242
+ body: c.type()
1243
+ })
1244
+ }
1245
+ }
1246
+ });
1247
+
1222
1248
  // src/contract/resources/documents/documents.ts
1223
- var import_zod31 = require("zod");
1249
+ var import_zod32 = require("zod");
1224
1250
 
1225
1251
  // src/contract/schemas/documents/documents.ts
1226
- var import_zod27 = require("zod");
1252
+ var import_zod28 = require("zod");
1227
1253
  var DocumentCoreSchema = RecordingBaseSchema.extend({
1228
- type: import_zod27.z.literal("Document")
1254
+ type: import_zod28.z.literal("Document")
1229
1255
  });
1230
1256
  var DocumentSchema = DocumentCoreSchema.extend({
1231
1257
  content: HtmlStringSchema
1232
1258
  });
1233
- var DocumentListResponseSchema = import_zod27.z.array(DocumentSchema);
1234
- var DocumentListQuerySchema = import_zod27.z.object({
1235
- page: import_zod27.z.coerce.number().int().positive().optional()
1259
+ var DocumentListResponseSchema = import_zod28.z.array(DocumentSchema);
1260
+ var DocumentListQuerySchema = import_zod28.z.object({
1261
+ page: import_zod28.z.coerce.number().int().positive().optional()
1236
1262
  });
1237
- var DocumentCreateBodySchema = import_zod27.z.object({
1238
- title: import_zod27.z.string().min(1),
1263
+ var DocumentCreateBodySchema = import_zod28.z.object({
1264
+ title: import_zod28.z.string().min(1),
1239
1265
  content: HtmlStringSchema,
1240
- status: import_zod27.z.enum(["active", "draft"]).or(import_zod27.z.string()).optional()
1266
+ status: import_zod28.z.enum(["active", "draft"]).or(import_zod28.z.string()).optional()
1241
1267
  });
1242
- var DocumentUpdateBodySchema = import_zod27.z.object({
1243
- title: import_zod27.z.string().min(1).optional(),
1268
+ var DocumentUpdateBodySchema = import_zod28.z.object({
1269
+ title: import_zod28.z.string().min(1).optional(),
1244
1270
  content: HtmlStringSchema.optional()
1245
1271
  }).refine(
1246
1272
  (value) => Object.keys(value).length > 0,
@@ -1248,76 +1274,76 @@ var DocumentUpdateBodySchema = import_zod27.z.object({
1248
1274
  );
1249
1275
 
1250
1276
  // src/contract/schemas/documents/vaults.ts
1251
- var import_zod28 = require("zod");
1277
+ var import_zod29 = require("zod");
1252
1278
  var VaultCoreSchema = RecordingBaseSchema.extend({
1253
- type: import_zod28.z.literal("Vault")
1279
+ type: import_zod29.z.literal("Vault")
1254
1280
  });
1255
1281
  var VaultSchema = VaultCoreSchema.extend({
1256
- documents_count: import_zod28.z.number().int().nonnegative(),
1257
- documents_url: import_zod28.z.string().url(),
1258
- uploads_count: import_zod28.z.number().int().nonnegative(),
1259
- uploads_url: import_zod28.z.string().url(),
1260
- vaults_count: import_zod28.z.number().int().nonnegative(),
1261
- vaults_url: import_zod28.z.string().url()
1262
- });
1263
- var VaultListResponseSchema = import_zod28.z.array(VaultSchema);
1264
- var VaultListQuerySchema = import_zod28.z.object({
1265
- page: import_zod28.z.coerce.number().int().positive().optional()
1282
+ documents_count: import_zod29.z.number().int().nonnegative(),
1283
+ documents_url: import_zod29.z.string().url(),
1284
+ uploads_count: import_zod29.z.number().int().nonnegative(),
1285
+ uploads_url: import_zod29.z.string().url(),
1286
+ vaults_count: import_zod29.z.number().int().nonnegative(),
1287
+ vaults_url: import_zod29.z.string().url()
1288
+ });
1289
+ var VaultListResponseSchema = import_zod29.z.array(VaultSchema);
1290
+ var VaultListQuerySchema = import_zod29.z.object({
1291
+ page: import_zod29.z.coerce.number().int().positive().optional()
1266
1292
  });
1267
- var VaultCreateBodySchema = import_zod28.z.object({
1268
- title: import_zod28.z.string().min(1)
1293
+ var VaultCreateBodySchema = import_zod29.z.object({
1294
+ title: import_zod29.z.string().min(1)
1269
1295
  });
1270
- var VaultUpdateBodySchema = import_zod28.z.object({
1271
- title: import_zod28.z.string().min(1)
1296
+ var VaultUpdateBodySchema = import_zod29.z.object({
1297
+ title: import_zod29.z.string().min(1)
1272
1298
  });
1273
1299
 
1274
1300
  // src/contract/schemas/documents/uploads.ts
1275
- var import_zod29 = require("zod");
1301
+ var import_zod30 = require("zod");
1276
1302
  var UploadCoreSchema = RecordingBaseSchema.extend({
1277
- type: import_zod29.z.literal("Upload")
1303
+ type: import_zod30.z.literal("Upload")
1278
1304
  });
1279
1305
  var UploadSchema = UploadCoreSchema.extend({
1280
1306
  description: HtmlStringSchema.optional(),
1281
- content_type: import_zod29.z.string(),
1282
- byte_size: import_zod29.z.number().int().nonnegative(),
1283
- filename: import_zod29.z.string(),
1284
- download_url: import_zod29.z.string().url(),
1285
- app_download_url: import_zod29.z.string().url(),
1286
- width: import_zod29.z.number().int().nonnegative().optional(),
1287
- height: import_zod29.z.number().int().nonnegative().optional()
1288
- });
1289
- var UploadListResponseSchema = import_zod29.z.array(UploadSchema);
1290
- var UploadListQuerySchema = import_zod29.z.object({
1291
- page: import_zod29.z.coerce.number().int().positive().optional()
1292
- });
1293
- var UploadCreateBodySchema = import_zod29.z.object({
1294
- attachable_sgid: import_zod29.z.string().min(1),
1307
+ content_type: import_zod30.z.string(),
1308
+ byte_size: import_zod30.z.number().int().nonnegative(),
1309
+ filename: import_zod30.z.string(),
1310
+ download_url: import_zod30.z.string().url(),
1311
+ app_download_url: import_zod30.z.string().url(),
1312
+ width: import_zod30.z.number().int().nonnegative().optional(),
1313
+ height: import_zod30.z.number().int().nonnegative().optional()
1314
+ });
1315
+ var UploadListResponseSchema = import_zod30.z.array(UploadSchema);
1316
+ var UploadListQuerySchema = import_zod30.z.object({
1317
+ page: import_zod30.z.coerce.number().int().positive().optional()
1318
+ });
1319
+ var UploadCreateBodySchema = import_zod30.z.object({
1320
+ attachable_sgid: import_zod30.z.string().min(1),
1295
1321
  description: HtmlStringSchema.optional(),
1296
- base_name: import_zod29.z.string().optional()
1322
+ base_name: import_zod30.z.string().optional()
1297
1323
  });
1298
- var UploadUpdateBodySchema = import_zod29.z.object({
1324
+ var UploadUpdateBodySchema = import_zod30.z.object({
1299
1325
  description: HtmlStringSchema.optional(),
1300
- base_name: import_zod29.z.string().optional()
1326
+ base_name: import_zod30.z.string().optional()
1301
1327
  }).refine(
1302
1328
  (value) => Object.keys(value).length > 0,
1303
1329
  "At least one field must be provided to update an upload."
1304
1330
  );
1305
1331
 
1306
1332
  // src/contract/schemas/documents/attachments.ts
1307
- var import_zod30 = require("zod");
1308
- var AttachmentResponseSchema = import_zod30.z.object({
1309
- attachable_sgid: import_zod30.z.string().min(1)
1333
+ var import_zod31 = require("zod");
1334
+ var AttachmentResponseSchema = import_zod31.z.object({
1335
+ attachable_sgid: import_zod31.z.string().min(1)
1310
1336
  });
1311
- var AttachmentCreateQuerySchema = import_zod30.z.object({
1312
- name: import_zod30.z.string().min(1)
1337
+ var AttachmentCreateQuerySchema = import_zod31.z.object({
1338
+ name: import_zod31.z.string().min(1)
1313
1339
  });
1314
1340
 
1315
1341
  // src/contract/resources/documents/documents.ts
1316
- var bucketAndVaultPathParams = import_zod31.z.object({
1342
+ var bucketAndVaultPathParams = import_zod32.z.object({
1317
1343
  bucketId: BasecampIdParamSchema,
1318
1344
  vaultId: BasecampIdParamSchema
1319
1345
  });
1320
- var bucketAndDocumentPathParams = import_zod31.z.object({
1346
+ var bucketAndDocumentPathParams = import_zod32.z.object({
1321
1347
  bucketId: BasecampIdParamSchema,
1322
1348
  documentId: BasecampIdParamSchema
1323
1349
  });
@@ -1404,12 +1430,12 @@ var documentsRouter = c.router({
1404
1430
  });
1405
1431
 
1406
1432
  // src/contract/resources/documents/vaults.ts
1407
- var import_zod32 = require("zod");
1408
- var bucketAndVaultPathParams2 = import_zod32.z.object({
1433
+ var import_zod33 = require("zod");
1434
+ var bucketAndVaultPathParams2 = import_zod33.z.object({
1409
1435
  bucketId: BasecampIdParamSchema,
1410
1436
  vaultId: BasecampIdParamSchema
1411
1437
  });
1412
- var bucketAndParentVaultPathParams = import_zod32.z.object({
1438
+ var bucketAndParentVaultPathParams = import_zod33.z.object({
1413
1439
  bucketId: BasecampIdParamSchema,
1414
1440
  parentVaultId: BasecampIdParamSchema
1415
1441
  });
@@ -1496,12 +1522,12 @@ var vaultsRouter = c.router({
1496
1522
  });
1497
1523
 
1498
1524
  // src/contract/resources/documents/uploads.ts
1499
- var import_zod33 = require("zod");
1500
- var bucketAndVaultPathParams3 = import_zod33.z.object({
1525
+ var import_zod34 = require("zod");
1526
+ var bucketAndVaultPathParams3 = import_zod34.z.object({
1501
1527
  bucketId: BasecampIdParamSchema,
1502
1528
  vaultId: BasecampIdParamSchema
1503
1529
  });
1504
- var bucketAndUploadPathParams = import_zod33.z.object({
1530
+ var bucketAndUploadPathParams = import_zod34.z.object({
1505
1531
  bucketId: BasecampIdParamSchema,
1506
1532
  uploadId: BasecampIdParamSchema
1507
1533
  });
@@ -1569,6 +1595,29 @@ var uploadsRouter = c.router({
1569
1595
  200: UploadSchema
1570
1596
  }
1571
1597
  },
1598
+ download: {
1599
+ summary: "Download an upload",
1600
+ description: "Download the raw file content of an upload.",
1601
+ metadata: {
1602
+ tag: "Uploads",
1603
+ operationId: "uploads.download",
1604
+ docsPath: "/docs/basecamp-api-specs/sections/uploads.md",
1605
+ rawResponse: true
1606
+ },
1607
+ method: "GET",
1608
+ path: "/buckets/:bucketId/uploads/:uploadId/download/:filename",
1609
+ pathParams: import_zod34.z.object({
1610
+ bucketId: BasecampIdParamSchema,
1611
+ uploadId: BasecampIdParamSchema,
1612
+ filename: import_zod34.z.string().min(1)
1613
+ }),
1614
+ responses: {
1615
+ 200: c.otherResponse({
1616
+ contentType: "application/octet-stream",
1617
+ body: c.type()
1618
+ })
1619
+ }
1620
+ },
1572
1621
  trash: {
1573
1622
  summary: "Trash an upload",
1574
1623
  description: "Move an upload recording to the trash. Trashed items can be restored via the UI.",
@@ -1608,26 +1657,26 @@ var attachmentsRouter = c.router({
1608
1657
  });
1609
1658
 
1610
1659
  // src/contract/resources/events.ts
1611
- var import_zod35 = require("zod");
1660
+ var import_zod36 = require("zod");
1612
1661
 
1613
1662
  // src/contract/schemas/events.ts
1614
- var import_zod34 = require("zod");
1615
- var EventDetailsSchema = import_zod34.z.object({}).passthrough();
1616
- var RecordingEventSchema = import_zod34.z.object({
1663
+ var import_zod35 = require("zod");
1664
+ var EventDetailsSchema = import_zod35.z.object({}).passthrough();
1665
+ var RecordingEventSchema = import_zod35.z.object({
1617
1666
  id: BasecampIdSchema,
1618
1667
  recording_id: BasecampIdSchema,
1619
- action: import_zod34.z.string(),
1668
+ action: import_zod35.z.string(),
1620
1669
  details: EventDetailsSchema,
1621
1670
  created_at: IsoDateTimeSchema,
1622
1671
  creator: PersonSummarySchema
1623
1672
  });
1624
- var RecordingEventListResponseSchema = import_zod34.z.array(RecordingEventSchema);
1625
- var RecordingEventListQuerySchema = import_zod34.z.object({
1626
- page: import_zod34.z.coerce.number().int().positive().optional()
1673
+ var RecordingEventListResponseSchema = import_zod35.z.array(RecordingEventSchema);
1674
+ var RecordingEventListQuerySchema = import_zod35.z.object({
1675
+ page: import_zod35.z.coerce.number().int().positive().optional()
1627
1676
  });
1628
1677
 
1629
1678
  // src/contract/resources/events.ts
1630
- var RecordingEventsPathParamsSchema = import_zod35.z.object({
1679
+ var RecordingEventsPathParamsSchema = import_zod36.z.object({
1631
1680
  bucketId: BasecampIdParamSchema,
1632
1681
  recordingId: BasecampIdParamSchema
1633
1682
  });
@@ -1651,23 +1700,23 @@ var eventsRouter = c.router({
1651
1700
  });
1652
1701
 
1653
1702
  // src/contract/resources/lineup-markers.ts
1654
- var import_zod37 = require("zod");
1703
+ var import_zod38 = require("zod");
1655
1704
 
1656
1705
  // src/contract/schemas/lineup-markers.ts
1657
- var import_zod36 = require("zod");
1658
- var LineupMarkerCreateBodySchema = import_zod36.z.object({
1659
- name: import_zod36.z.string().min(1),
1706
+ var import_zod37 = require("zod");
1707
+ var LineupMarkerCreateBodySchema = import_zod37.z.object({
1708
+ name: import_zod37.z.string().min(1),
1660
1709
  date: IsoDateSchema
1661
1710
  });
1662
- var LineupMarkerUpdateBodySchema = import_zod36.z.object({
1663
- name: import_zod36.z.string().min(1).optional(),
1711
+ var LineupMarkerUpdateBodySchema = import_zod37.z.object({
1712
+ name: import_zod37.z.string().min(1).optional(),
1664
1713
  date: IsoDateSchema.optional()
1665
1714
  }).refine((value) => value.name !== void 0 || value.date !== void 0, {
1666
1715
  message: "Either name or date must be provided."
1667
1716
  });
1668
1717
 
1669
1718
  // src/contract/resources/lineup-markers.ts
1670
- var LineupMarkerPathParamsSchema = import_zod37.z.object({
1719
+ var LineupMarkerPathParamsSchema = import_zod38.z.object({
1671
1720
  markerId: BasecampIdParamSchema
1672
1721
  });
1673
1722
  var lineupMarkersRouter = c.router({
@@ -1721,25 +1770,25 @@ var lineupMarkersRouter = c.router({
1721
1770
  });
1722
1771
 
1723
1772
  // src/contract/resources/people.ts
1724
- var import_zod39 = require("zod");
1773
+ var import_zod40 = require("zod");
1725
1774
 
1726
1775
  // src/contract/schemas/people.ts
1727
- var import_zod38 = require("zod");
1776
+ var import_zod39 = require("zod");
1728
1777
  var PersonSchema = PersonSummarySchema;
1729
- var PeopleListQuerySchema = import_zod38.z.object({
1730
- page: import_zod38.z.coerce.number().int().positive().optional()
1731
- });
1732
- var PeopleListResponseSchema = import_zod38.z.array(PersonSchema);
1733
- var ProjectAccessCreateEntrySchema = import_zod38.z.object({
1734
- name: import_zod38.z.string().min(1),
1735
- email_address: import_zod38.z.string().email(),
1736
- title: import_zod38.z.string().optional(),
1737
- company_name: import_zod38.z.string().optional()
1738
- });
1739
- var ProjectPeopleAccessBodySchema = import_zod38.z.object({
1740
- grant: import_zod38.z.array(BasecampIdSchema).min(1).optional(),
1741
- revoke: import_zod38.z.array(BasecampIdSchema).min(1).optional(),
1742
- create: import_zod38.z.array(ProjectAccessCreateEntrySchema).min(1).optional()
1778
+ var PeopleListQuerySchema = import_zod39.z.object({
1779
+ page: import_zod39.z.coerce.number().int().positive().optional()
1780
+ });
1781
+ var PeopleListResponseSchema = import_zod39.z.array(PersonSchema);
1782
+ var ProjectAccessCreateEntrySchema = import_zod39.z.object({
1783
+ name: import_zod39.z.string().min(1),
1784
+ email_address: import_zod39.z.string().email(),
1785
+ title: import_zod39.z.string().optional(),
1786
+ company_name: import_zod39.z.string().optional()
1787
+ });
1788
+ var ProjectPeopleAccessBodySchema = import_zod39.z.object({
1789
+ grant: import_zod39.z.array(BasecampIdSchema).min(1).optional(),
1790
+ revoke: import_zod39.z.array(BasecampIdSchema).min(1).optional(),
1791
+ create: import_zod39.z.array(ProjectAccessCreateEntrySchema).min(1).optional()
1743
1792
  }).refine(
1744
1793
  (value) => value.grant !== void 0 || value.revoke !== void 0 || value.create !== void 0,
1745
1794
  {
@@ -1747,16 +1796,16 @@ var ProjectPeopleAccessBodySchema = import_zod38.z.object({
1747
1796
  path: ["grant"]
1748
1797
  }
1749
1798
  );
1750
- var ProjectPeopleAccessResponseSchema = import_zod38.z.object({
1751
- granted: import_zod38.z.array(PersonSchema),
1752
- revoked: import_zod38.z.array(PersonSchema)
1799
+ var ProjectPeopleAccessResponseSchema = import_zod39.z.object({
1800
+ granted: import_zod39.z.array(PersonSchema),
1801
+ revoked: import_zod39.z.array(PersonSchema)
1753
1802
  });
1754
1803
 
1755
1804
  // src/contract/resources/people.ts
1756
- var ProjectPathParamsSchema = import_zod39.z.object({
1805
+ var ProjectPathParamsSchema = import_zod40.z.object({
1757
1806
  projectId: BasecampIdParamSchema
1758
1807
  });
1759
- var PersonPathParamsSchema = import_zod39.z.object({
1808
+ var PersonPathParamsSchema = import_zod40.z.object({
1760
1809
  personId: BasecampIdParamSchema
1761
1810
  });
1762
1811
  var peopleRouter = c.router({
@@ -1852,59 +1901,59 @@ var peopleRouter = c.router({
1852
1901
  });
1853
1902
 
1854
1903
  // src/contract/resources/projects.ts
1855
- var import_zod41 = require("zod");
1904
+ var import_zod42 = require("zod");
1856
1905
 
1857
1906
  // src/contract/schemas/projects.ts
1858
- var import_zod40 = require("zod");
1859
- var ProjectDockEntrySchema = import_zod40.z.object({
1907
+ var import_zod41 = require("zod");
1908
+ var ProjectDockEntrySchema = import_zod41.z.object({
1860
1909
  id: BasecampIdSchema,
1861
- title: import_zod40.z.string(),
1862
- name: import_zod40.z.string(),
1863
- enabled: import_zod40.z.boolean(),
1864
- position: import_zod40.z.number().int().nullable(),
1865
- url: import_zod40.z.string().url(),
1866
- app_url: import_zod40.z.string().url()
1867
- });
1868
- var ProjectClientCompanySchema = import_zod40.z.object({
1910
+ title: import_zod41.z.string(),
1911
+ name: import_zod41.z.string(),
1912
+ enabled: import_zod41.z.boolean(),
1913
+ position: import_zod41.z.number().int().nullable(),
1914
+ url: import_zod41.z.string().url(),
1915
+ app_url: import_zod41.z.string().url()
1916
+ });
1917
+ var ProjectClientCompanySchema = import_zod41.z.object({
1869
1918
  id: BasecampIdSchema,
1870
- name: import_zod40.z.string()
1919
+ name: import_zod41.z.string()
1871
1920
  });
1872
- var ProjectClientsideSchema = import_zod40.z.object({
1873
- url: import_zod40.z.string().url(),
1874
- app_url: import_zod40.z.string().url()
1921
+ var ProjectClientsideSchema = import_zod41.z.object({
1922
+ url: import_zod41.z.string().url(),
1923
+ app_url: import_zod41.z.string().url()
1875
1924
  });
1876
- var ProjectStatusSchema = import_zod40.z.enum(["active", "archived", "trashed"]).or(import_zod40.z.string());
1877
- var ProjectCoreSchema = import_zod40.z.object({
1925
+ var ProjectStatusSchema = import_zod41.z.enum(["active", "archived", "trashed"]).or(import_zod41.z.string());
1926
+ var ProjectCoreSchema = import_zod41.z.object({
1878
1927
  id: BasecampIdSchema,
1879
1928
  status: ProjectStatusSchema,
1880
1929
  created_at: IsoDateTimeSchema,
1881
1930
  updated_at: IsoDateTimeSchema,
1882
- name: import_zod40.z.string(),
1931
+ name: import_zod41.z.string(),
1883
1932
  description: HtmlStringSchema.nullable().optional(),
1884
- purpose: import_zod40.z.string(),
1885
- clients_enabled: import_zod40.z.boolean(),
1886
- bookmark_url: import_zod40.z.string().url(),
1887
- url: import_zod40.z.string().url(),
1888
- app_url: import_zod40.z.string().url(),
1889
- dock: import_zod40.z.array(ProjectDockEntrySchema),
1933
+ purpose: import_zod41.z.string(),
1934
+ clients_enabled: import_zod41.z.boolean(),
1935
+ bookmark_url: import_zod41.z.string().url(),
1936
+ url: import_zod41.z.string().url(),
1937
+ app_url: import_zod41.z.string().url(),
1938
+ dock: import_zod41.z.array(ProjectDockEntrySchema),
1890
1939
  client_company: ProjectClientCompanySchema.optional(),
1891
1940
  clientside: ProjectClientsideSchema.optional()
1892
1941
  });
1893
1942
  var ProjectSchema = ProjectCoreSchema.extend({
1894
- bookmarked: import_zod40.z.boolean().optional()
1943
+ bookmarked: import_zod41.z.boolean().optional()
1895
1944
  });
1896
- var ProjectListResponseSchema = import_zod40.z.array(ProjectSchema);
1897
- var ProjectListQuerySchema = import_zod40.z.object({
1898
- status: import_zod40.z.enum(["active", "archived", "trashed"]).or(import_zod40.z.string()).optional(),
1899
- page: import_zod40.z.coerce.number().int().positive().optional()
1945
+ var ProjectListResponseSchema = import_zod41.z.array(ProjectSchema);
1946
+ var ProjectListQuerySchema = import_zod41.z.object({
1947
+ status: import_zod41.z.enum(["active", "archived", "trashed"]).or(import_zod41.z.string()).optional(),
1948
+ page: import_zod41.z.coerce.number().int().positive().optional()
1900
1949
  });
1901
- var ProjectCreateBodySchema = import_zod40.z.object({
1902
- name: import_zod40.z.string().min(1),
1950
+ var ProjectCreateBodySchema = import_zod41.z.object({
1951
+ name: import_zod41.z.string().min(1),
1903
1952
  description: HtmlStringSchema.nullable().optional()
1904
1953
  });
1905
- var ScheduleAttributesSchema = import_zod40.z.object({
1906
- start_date: import_zod40.z.string().date().optional(),
1907
- end_date: import_zod40.z.string().date().optional()
1954
+ var ScheduleAttributesSchema = import_zod41.z.object({
1955
+ start_date: import_zod41.z.string().date().optional(),
1956
+ end_date: import_zod41.z.string().date().optional()
1908
1957
  }).refine(
1909
1958
  (value) => value.start_date === void 0 && value.end_date === void 0 || value.start_date !== void 0 && value.end_date !== void 0,
1910
1959
  {
@@ -1912,15 +1961,15 @@ var ScheduleAttributesSchema = import_zod40.z.object({
1912
1961
  path: ["end_date"]
1913
1962
  }
1914
1963
  );
1915
- var ProjectUpdateBodySchema = import_zod40.z.object({
1916
- name: import_zod40.z.string().min(1),
1964
+ var ProjectUpdateBodySchema = import_zod41.z.object({
1965
+ name: import_zod41.z.string().min(1),
1917
1966
  description: HtmlStringSchema.nullable().optional(),
1918
- admissions: import_zod40.z.enum(["invite", "employee", "team"]).or(import_zod40.z.string()).optional(),
1967
+ admissions: import_zod41.z.enum(["invite", "employee", "team"]).or(import_zod41.z.string()).optional(),
1919
1968
  schedule_attributes: ScheduleAttributesSchema.optional()
1920
1969
  });
1921
1970
 
1922
1971
  // src/contract/resources/projects.ts
1923
- var ProjectPathParamsSchema2 = import_zod41.z.object({
1972
+ var ProjectPathParamsSchema2 = import_zod42.z.object({
1924
1973
  projectId: BasecampIdParamSchema
1925
1974
  });
1926
1975
  var projectsRouter = c.router({
@@ -1967,8 +2016,8 @@ var projectsRouter = c.router({
1967
2016
  body: ProjectCreateBodySchema,
1968
2017
  responses: {
1969
2018
  201: ProjectSchema,
1970
- 507: import_zod41.z.object({
1971
- error: import_zod41.z.string()
2019
+ 507: import_zod42.z.object({
2020
+ error: import_zod42.z.string()
1972
2021
  })
1973
2022
  }
1974
2023
  },
@@ -2007,8 +2056,8 @@ var projectsRouter = c.router({
2007
2056
  });
2008
2057
 
2009
2058
  // src/contract/resources/recordings.ts
2010
- var import_zod42 = require("zod");
2011
- var BucketRecordingPathParamsSchema = import_zod42.z.object({
2059
+ var import_zod43 = require("zod");
2060
+ var BucketRecordingPathParamsSchema = import_zod43.z.object({
2012
2061
  bucketId: BasecampIdParamSchema,
2013
2062
  recordingId: BasecampIdParamSchema
2014
2063
  });
@@ -2079,14 +2128,14 @@ var recordingsRouter = c.router({
2079
2128
  });
2080
2129
 
2081
2130
  // src/contract/resources/kanban/card-tables.ts
2082
- var import_zod48 = require("zod");
2131
+ var import_zod49 = require("zod");
2083
2132
 
2084
2133
  // src/contract/schemas/kanban/card-tables.ts
2085
- var import_zod45 = require("zod");
2134
+ var import_zod46 = require("zod");
2086
2135
 
2087
2136
  // src/contract/schemas/kanban/common.ts
2088
- var import_zod43 = require("zod");
2089
- var KanbanColumnColorSchema = import_zod43.z.enum([
2137
+ var import_zod44 = require("zod");
2138
+ var KanbanColumnColorSchema = import_zod44.z.enum([
2090
2139
  "white",
2091
2140
  "red",
2092
2141
  "orange",
@@ -2098,22 +2147,22 @@ var KanbanColumnColorSchema = import_zod43.z.enum([
2098
2147
  "gray",
2099
2148
  "pink",
2100
2149
  "brown"
2101
- ]).or(import_zod43.z.string());
2150
+ ]).or(import_zod44.z.string());
2102
2151
 
2103
2152
  // src/contract/schemas/kanban/columns.ts
2104
- var import_zod44 = require("zod");
2153
+ var import_zod45 = require("zod");
2105
2154
  var CardTableColumnSchema = RecordingBaseSchema.extend({
2106
- type: import_zod44.z.enum(["Kanban::Column", "Kanban::Triage", "Kanban::NotNowColumn", "Kanban::DoneColumn"]),
2155
+ type: import_zod45.z.enum(["Kanban::Column", "Kanban::Triage", "Kanban::NotNowColumn", "Kanban::DoneColumn"]),
2107
2156
  description: HtmlStringSchema.nullable().optional(),
2108
- subscribers: import_zod44.z.array(PersonSummarySchema),
2157
+ subscribers: import_zod45.z.array(PersonSummarySchema),
2109
2158
  color: KanbanColumnColorSchema.nullable().optional(),
2110
- cards_count: import_zod44.z.number().int().nonnegative().optional(),
2111
- comment_count: import_zod44.z.number().int().nonnegative().optional(),
2112
- cards_url: import_zod44.z.string().url(),
2113
- on_hold: import_zod44.z.unknown().optional()
2159
+ cards_count: import_zod45.z.number().int().nonnegative().optional(),
2160
+ comment_count: import_zod45.z.number().int().nonnegative().optional(),
2161
+ cards_url: import_zod45.z.string().url(),
2162
+ on_hold: import_zod45.z.unknown().optional()
2114
2163
  });
2115
- var CardTableColumnCreateBodySchema = import_zod44.z.object({
2116
- title: import_zod44.z.string().min(1),
2164
+ var CardTableColumnCreateBodySchema = import_zod45.z.object({
2165
+ title: import_zod45.z.string().min(1),
2117
2166
  description: HtmlStringSchema.nullable().optional()
2118
2167
  });
2119
2168
  var CardTableColumnUpdateBodySchema = CardTableColumnCreateBodySchema.partial().refine(
@@ -2122,41 +2171,41 @@ var CardTableColumnUpdateBodySchema = CardTableColumnCreateBodySchema.partial().
2122
2171
  message: "At least one field must be provided to update a column."
2123
2172
  }
2124
2173
  );
2125
- var CardTableColumnMoveBodySchema = import_zod44.z.object({
2174
+ var CardTableColumnMoveBodySchema = import_zod45.z.object({
2126
2175
  source_id: BasecampIdSchema,
2127
2176
  target_id: BasecampIdSchema,
2128
- position: import_zod44.z.number().int().positive().optional()
2177
+ position: import_zod45.z.number().int().positive().optional()
2129
2178
  });
2130
- var CardTableColumnColorBodySchema = import_zod44.z.object({
2179
+ var CardTableColumnColorBodySchema = import_zod45.z.object({
2131
2180
  color: KanbanColumnColorSchema
2132
2181
  });
2133
2182
 
2134
2183
  // src/contract/schemas/kanban/card-tables.ts
2135
2184
  var CardTableSchema = RecordingBaseSchema.extend({
2136
- type: import_zod45.z.literal("Kanban::Board"),
2137
- subscribers: import_zod45.z.array(PersonSummarySchema),
2138
- public_link_url: import_zod45.z.string().url().optional(),
2139
- lists: import_zod45.z.array(CardTableColumnSchema)
2185
+ type: import_zod46.z.literal("Kanban::Board"),
2186
+ subscribers: import_zod46.z.array(PersonSummarySchema),
2187
+ public_link_url: import_zod46.z.string().url().optional(),
2188
+ lists: import_zod46.z.array(CardTableColumnSchema)
2140
2189
  });
2141
2190
 
2142
2191
  // src/contract/schemas/kanban/cards.ts
2143
- var import_zod47 = require("zod");
2192
+ var import_zod48 = require("zod");
2144
2193
 
2145
2194
  // src/contract/schemas/kanban/steps.ts
2146
- var import_zod46 = require("zod");
2195
+ var import_zod47 = require("zod");
2147
2196
  var CardTableStepSchema = RecordingBaseSchema.extend({
2148
- type: import_zod46.z.literal("Kanban::Step"),
2149
- completed: import_zod46.z.boolean(),
2197
+ type: import_zod47.z.literal("Kanban::Step"),
2198
+ completed: import_zod47.z.boolean(),
2150
2199
  due_on: IsoDateSchema.nullable().optional(),
2151
- assignees: import_zod46.z.array(PersonSummarySchema),
2152
- completion_url: import_zod46.z.string().min(1),
2153
- completion_subscribers: import_zod46.z.array(PersonSummarySchema).optional(),
2200
+ assignees: import_zod47.z.array(PersonSummarySchema),
2201
+ completion_url: import_zod47.z.string().min(1),
2202
+ completion_subscribers: import_zod47.z.array(PersonSummarySchema).optional(),
2154
2203
  description: HtmlStringSchema.nullable().optional()
2155
2204
  });
2156
- var CardTableStepCreateBodySchema = import_zod46.z.object({
2157
- title: import_zod46.z.string().min(1),
2205
+ var CardTableStepCreateBodySchema = import_zod47.z.object({
2206
+ title: import_zod47.z.string().min(1),
2158
2207
  due_on: IsoDateSchema.optional(),
2159
- assignees: import_zod46.z.string().optional()
2208
+ assignees: import_zod47.z.string().optional()
2160
2209
  });
2161
2210
  var CardTableStepUpdateBodySchema = CardTableStepCreateBodySchema.partial().refine(
2162
2211
  (value) => value.title !== void 0 || value.due_on !== void 0 || value.assignees !== void 0,
@@ -2164,57 +2213,57 @@ var CardTableStepUpdateBodySchema = CardTableStepCreateBodySchema.partial().refi
2164
2213
  message: "At least one field must be provided to update a step."
2165
2214
  }
2166
2215
  );
2167
- var CardTableStepCompletionBodySchema = import_zod46.z.object({
2168
- completion: import_zod46.z.enum(["on", "off"])
2216
+ var CardTableStepCompletionBodySchema = import_zod47.z.object({
2217
+ completion: import_zod47.z.enum(["on", "off"])
2169
2218
  });
2170
- var CardTableStepRepositionBodySchema = import_zod46.z.object({
2219
+ var CardTableStepRepositionBodySchema = import_zod47.z.object({
2171
2220
  source_id: BasecampIdSchema,
2172
- position: import_zod46.z.number().int().nonnegative()
2221
+ position: import_zod47.z.number().int().nonnegative()
2173
2222
  });
2174
2223
 
2175
2224
  // src/contract/schemas/kanban/cards.ts
2176
2225
  var CardTableCardSchema = RecordingBaseSchema.extend({
2177
- type: import_zod47.z.literal("Kanban::Card"),
2226
+ type: import_zod48.z.literal("Kanban::Card"),
2178
2227
  description: HtmlStringSchema.nullable().optional(),
2179
- completed: import_zod47.z.boolean(),
2228
+ completed: import_zod48.z.boolean(),
2180
2229
  content: HtmlStringSchema.nullable().optional(),
2181
2230
  due_on: IsoDateSchema.nullable().optional(),
2182
- comment_count: import_zod47.z.number().int().nonnegative().optional(),
2183
- assignees: import_zod47.z.array(PersonSummarySchema),
2184
- completion_subscribers: import_zod47.z.array(PersonSummarySchema),
2185
- completion_url: import_zod47.z.string().min(1),
2186
- steps: import_zod47.z.array(CardTableStepSchema).optional()
2187
- });
2188
- var CardTableCardListResponseSchema = import_zod47.z.array(CardTableCardSchema);
2189
- var CardTableCardListQuerySchema = import_zod47.z.object({
2190
- page: import_zod47.z.coerce.number().int().positive().optional()
2191
- });
2192
- var CardTableCardCreateBodySchema = import_zod47.z.object({
2193
- title: import_zod47.z.string().min(1),
2231
+ comment_count: import_zod48.z.number().int().nonnegative().optional(),
2232
+ assignees: import_zod48.z.array(PersonSummarySchema),
2233
+ completion_subscribers: import_zod48.z.array(PersonSummarySchema),
2234
+ completion_url: import_zod48.z.string().min(1),
2235
+ steps: import_zod48.z.array(CardTableStepSchema).optional()
2236
+ });
2237
+ var CardTableCardListResponseSchema = import_zod48.z.array(CardTableCardSchema);
2238
+ var CardTableCardListQuerySchema = import_zod48.z.object({
2239
+ page: import_zod48.z.coerce.number().int().positive().optional()
2240
+ });
2241
+ var CardTableCardCreateBodySchema = import_zod48.z.object({
2242
+ title: import_zod48.z.string().min(1),
2194
2243
  content: HtmlStringSchema.nullable().optional(),
2195
2244
  due_on: IsoDateSchema.optional(),
2196
- notify: import_zod47.z.boolean().optional(),
2197
- assignee_ids: import_zod47.z.array(BasecampIdSchema).optional()
2245
+ notify: import_zod48.z.boolean().optional(),
2246
+ assignee_ids: import_zod48.z.array(BasecampIdSchema).optional()
2198
2247
  });
2199
- var CardTableCardUpdateBodySchema = import_zod47.z.object({
2200
- title: import_zod47.z.string().min(1).optional(),
2248
+ var CardTableCardUpdateBodySchema = import_zod48.z.object({
2249
+ title: import_zod48.z.string().min(1).optional(),
2201
2250
  content: HtmlStringSchema.nullable().optional(),
2202
2251
  due_on: IsoDateSchema.nullable().optional(),
2203
- assignee_ids: import_zod47.z.array(BasecampIdSchema).optional(),
2204
- notify: import_zod47.z.boolean().optional()
2252
+ assignee_ids: import_zod48.z.array(BasecampIdSchema).optional(),
2253
+ notify: import_zod48.z.boolean().optional()
2205
2254
  }).refine(
2206
2255
  (value) => value.title !== void 0 || value.content !== void 0 || value.due_on !== void 0 || value.assignee_ids !== void 0 || value.notify !== void 0,
2207
2256
  {
2208
2257
  message: "At least one field must be provided to update a card."
2209
2258
  }
2210
2259
  );
2211
- var CardTableCardMoveBodySchema = import_zod47.z.object({
2260
+ var CardTableCardMoveBodySchema = import_zod48.z.object({
2212
2261
  column_id: BasecampIdSchema,
2213
- position: import_zod47.z.number().int().nonnegative().optional()
2262
+ position: import_zod48.z.number().int().nonnegative().optional()
2214
2263
  });
2215
2264
 
2216
2265
  // src/contract/resources/kanban/card-tables.ts
2217
- var cardTablePathParams = import_zod48.z.object({
2266
+ var cardTablePathParams = import_zod49.z.object({
2218
2267
  bucketId: BasecampIdParamSchema,
2219
2268
  cardTableId: BasecampIdParamSchema
2220
2269
  });
@@ -2237,8 +2286,8 @@ var cardTablesRouter = c.router({
2237
2286
  });
2238
2287
 
2239
2288
  // src/contract/resources/kanban/columns.ts
2240
- var import_zod49 = require("zod");
2241
- var bucketParams = import_zod49.z.object({
2289
+ var import_zod50 = require("zod");
2290
+ var bucketParams = import_zod50.z.object({
2242
2291
  bucketId: BasecampIdParamSchema
2243
2292
  });
2244
2293
  var bucketAndCardTableParams = bucketParams.extend({
@@ -2394,8 +2443,8 @@ var cardTableColumnsRouter = c.router({
2394
2443
  });
2395
2444
 
2396
2445
  // src/contract/resources/kanban/cards.ts
2397
- var import_zod50 = require("zod");
2398
- var bucketParams2 = import_zod50.z.object({
2446
+ var import_zod51 = require("zod");
2447
+ var bucketParams2 = import_zod51.z.object({
2399
2448
  bucketId: BasecampIdParamSchema
2400
2449
  });
2401
2450
  var bucketAndColumnParams2 = bucketParams2.extend({
@@ -2487,8 +2536,8 @@ var cardTableCardsRouter = c.router({
2487
2536
  });
2488
2537
 
2489
2538
  // src/contract/resources/kanban/steps.ts
2490
- var import_zod51 = require("zod");
2491
- var bucketParams3 = import_zod51.z.object({
2539
+ var import_zod52 = require("zod");
2540
+ var bucketParams3 = import_zod52.z.object({
2492
2541
  bucketId: BasecampIdParamSchema
2493
2542
  });
2494
2543
  var bucketAndCardParams2 = bucketParams3.extend({
@@ -2565,22 +2614,22 @@ var cardTableStepsRouter = c.router({
2565
2614
  });
2566
2615
 
2567
2616
  // src/contract/resources/scheduling/schedules.ts
2568
- var import_zod53 = require("zod");
2617
+ var import_zod54 = require("zod");
2569
2618
 
2570
2619
  // src/contract/schemas/scheduling/schedules.ts
2571
- var import_zod52 = require("zod");
2620
+ var import_zod53 = require("zod");
2572
2621
  var ScheduleSchema = RecordingBaseSchema.extend({
2573
- type: import_zod52.z.literal("Schedule"),
2574
- include_due_assignments: import_zod52.z.boolean(),
2575
- entries_count: import_zod52.z.number().int(),
2576
- entries_url: import_zod52.z.string().url()
2622
+ type: import_zod53.z.literal("Schedule"),
2623
+ include_due_assignments: import_zod53.z.boolean(),
2624
+ entries_count: import_zod53.z.number().int(),
2625
+ entries_url: import_zod53.z.string().url()
2577
2626
  });
2578
- var ScheduleUpdateBodySchema = import_zod52.z.object({
2579
- include_due_assignments: import_zod52.z.boolean()
2627
+ var ScheduleUpdateBodySchema = import_zod53.z.object({
2628
+ include_due_assignments: import_zod53.z.boolean()
2580
2629
  });
2581
2630
 
2582
2631
  // src/contract/resources/scheduling/schedules.ts
2583
- var bucketAndSchedulePathParams = import_zod53.z.object({
2632
+ var bucketAndSchedulePathParams = import_zod54.z.object({
2584
2633
  bucketId: BasecampIdParamSchema,
2585
2634
  scheduleId: BasecampIdParamSchema
2586
2635
  });
@@ -2619,68 +2668,68 @@ var schedulesRouter = c.router({
2619
2668
  });
2620
2669
 
2621
2670
  // src/contract/resources/scheduling/schedule-entries.ts
2622
- var import_zod55 = require("zod");
2671
+ var import_zod56 = require("zod");
2623
2672
 
2624
2673
  // src/contract/schemas/scheduling/schedule-entries.ts
2625
- var import_zod54 = require("zod");
2626
- var RecurrenceScheduleSchema = import_zod54.z.object({
2627
- frequency: import_zod54.z.string(),
2628
- days: import_zod54.z.array(import_zod54.z.number().int()),
2629
- hour: import_zod54.z.number().int(),
2630
- minute: import_zod54.z.number().int(),
2631
- week_instance: import_zod54.z.number().int().nullable(),
2632
- week_interval: import_zod54.z.number().int().nullable(),
2633
- month_interval: import_zod54.z.number().int().nullable(),
2634
- start_date: import_zod54.z.string(),
2635
- end_date: import_zod54.z.string().nullable()
2674
+ var import_zod55 = require("zod");
2675
+ var RecurrenceScheduleSchema = import_zod55.z.object({
2676
+ frequency: import_zod55.z.string(),
2677
+ days: import_zod55.z.array(import_zod55.z.number().int()),
2678
+ hour: import_zod55.z.number().int(),
2679
+ minute: import_zod55.z.number().int(),
2680
+ week_instance: import_zod55.z.number().int().nullable(),
2681
+ week_interval: import_zod55.z.number().int().nullable(),
2682
+ month_interval: import_zod55.z.number().int().nullable(),
2683
+ start_date: import_zod55.z.string(),
2684
+ end_date: import_zod55.z.string().nullable()
2636
2685
  });
2637
2686
  var ScheduleEntrySchema = RecordingBaseSchema.extend({
2638
- type: import_zod54.z.literal("Schedule::Entry"),
2687
+ type: import_zod55.z.literal("Schedule::Entry"),
2639
2688
  description: HtmlStringSchema,
2640
- summary: import_zod54.z.string(),
2641
- all_day: import_zod54.z.boolean(),
2642
- starts_at: import_zod54.z.string(),
2643
- ends_at: import_zod54.z.string(),
2644
- participants: import_zod54.z.array(PersonSummarySchema),
2689
+ summary: import_zod55.z.string(),
2690
+ all_day: import_zod55.z.boolean(),
2691
+ starts_at: import_zod55.z.string(),
2692
+ ends_at: import_zod55.z.string(),
2693
+ participants: import_zod55.z.array(PersonSummarySchema),
2645
2694
  recurrence_schedule: RecurrenceScheduleSchema.optional()
2646
2695
  });
2647
- var ScheduleEntryListResponseSchema = import_zod54.z.array(ScheduleEntrySchema);
2648
- var ScheduleEntryListQuerySchema = import_zod54.z.object({
2696
+ var ScheduleEntryListResponseSchema = import_zod55.z.array(ScheduleEntrySchema);
2697
+ var ScheduleEntryListQuerySchema = import_zod55.z.object({
2649
2698
  status: RecordingStatusSchema.optional(),
2650
- page: import_zod54.z.coerce.number().int().positive().optional()
2699
+ page: import_zod55.z.coerce.number().int().positive().optional()
2651
2700
  });
2652
- var ScheduleEntryCreateBodySchema = import_zod54.z.object({
2653
- summary: import_zod54.z.string(),
2654
- starts_at: import_zod54.z.string(),
2655
- ends_at: import_zod54.z.string(),
2701
+ var ScheduleEntryCreateBodySchema = import_zod55.z.object({
2702
+ summary: import_zod55.z.string(),
2703
+ starts_at: import_zod55.z.string(),
2704
+ ends_at: import_zod55.z.string(),
2656
2705
  description: HtmlStringSchema.optional(),
2657
- participant_ids: import_zod54.z.array(BasecampIdSchema).optional(),
2658
- all_day: import_zod54.z.boolean().optional(),
2659
- notify: import_zod54.z.boolean().optional()
2660
- });
2661
- var ScheduleEntryUpdateBodySchema = import_zod54.z.object({
2662
- summary: import_zod54.z.string().optional(),
2663
- starts_at: import_zod54.z.string().optional(),
2664
- ends_at: import_zod54.z.string().optional(),
2706
+ participant_ids: import_zod55.z.array(BasecampIdSchema).optional(),
2707
+ all_day: import_zod55.z.boolean().optional(),
2708
+ notify: import_zod55.z.boolean().optional()
2709
+ });
2710
+ var ScheduleEntryUpdateBodySchema = import_zod55.z.object({
2711
+ summary: import_zod55.z.string().optional(),
2712
+ starts_at: import_zod55.z.string().optional(),
2713
+ ends_at: import_zod55.z.string().optional(),
2665
2714
  description: HtmlStringSchema.optional(),
2666
- participant_ids: import_zod54.z.array(BasecampIdSchema).optional(),
2667
- all_day: import_zod54.z.boolean().optional(),
2668
- notify: import_zod54.z.boolean().optional()
2715
+ participant_ids: import_zod55.z.array(BasecampIdSchema).optional(),
2716
+ all_day: import_zod55.z.boolean().optional(),
2717
+ notify: import_zod55.z.boolean().optional()
2669
2718
  });
2670
2719
 
2671
2720
  // src/contract/resources/scheduling/schedule-entries.ts
2672
- var bucketAndSchedulePathParams2 = import_zod55.z.object({
2721
+ var bucketAndSchedulePathParams2 = import_zod56.z.object({
2673
2722
  bucketId: BasecampIdParamSchema,
2674
2723
  scheduleId: BasecampIdParamSchema
2675
2724
  });
2676
- var bucketAndEntryPathParams = import_zod55.z.object({
2725
+ var bucketAndEntryPathParams = import_zod56.z.object({
2677
2726
  bucketId: BasecampIdParamSchema,
2678
2727
  scheduleEntryId: BasecampIdParamSchema
2679
2728
  });
2680
- var bucketEntryOccurrencePathParams = import_zod55.z.object({
2729
+ var bucketEntryOccurrencePathParams = import_zod56.z.object({
2681
2730
  bucketId: BasecampIdParamSchema,
2682
2731
  scheduleEntryId: BasecampIdParamSchema,
2683
- occurrenceDate: import_zod55.z.string()
2732
+ occurrenceDate: import_zod56.z.string()
2684
2733
  });
2685
2734
  var scheduleEntriesRouter = c.router({
2686
2735
  list: {
@@ -2780,19 +2829,19 @@ var scheduleEntriesRouter = c.router({
2780
2829
  });
2781
2830
 
2782
2831
  // src/contract/resources/scheduling/questionnaires.ts
2783
- var import_zod57 = require("zod");
2832
+ var import_zod58 = require("zod");
2784
2833
 
2785
2834
  // src/contract/schemas/scheduling/questionnaires.ts
2786
- var import_zod56 = require("zod");
2835
+ var import_zod57 = require("zod");
2787
2836
  var QuestionnaireSchema = RecordingBaseSchema.extend({
2788
- type: import_zod56.z.literal("Questionnaire"),
2789
- name: import_zod56.z.string(),
2790
- questions_count: import_zod56.z.number().int(),
2791
- questions_url: import_zod56.z.string().url()
2837
+ type: import_zod57.z.literal("Questionnaire"),
2838
+ name: import_zod57.z.string(),
2839
+ questions_count: import_zod57.z.number().int(),
2840
+ questions_url: import_zod57.z.string().url()
2792
2841
  });
2793
2842
 
2794
2843
  // src/contract/resources/scheduling/questionnaires.ts
2795
- var bucketAndQuestionnairePathParams = import_zod57.z.object({
2844
+ var bucketAndQuestionnairePathParams = import_zod58.z.object({
2796
2845
  bucketId: BasecampIdParamSchema,
2797
2846
  questionnaireId: BasecampIdParamSchema
2798
2847
  });
@@ -2815,39 +2864,39 @@ var questionnairesRouter = c.router({
2815
2864
  });
2816
2865
 
2817
2866
  // src/contract/resources/scheduling/questions.ts
2818
- var import_zod59 = require("zod");
2867
+ var import_zod60 = require("zod");
2819
2868
 
2820
2869
  // src/contract/schemas/scheduling/questions.ts
2821
- var import_zod58 = require("zod");
2822
- var QuestionScheduleSchema = import_zod58.z.object({
2823
- frequency: import_zod58.z.string(),
2824
- days: import_zod58.z.array(import_zod58.z.number().int()),
2825
- hour: import_zod58.z.number().int(),
2826
- minute: import_zod58.z.number().int(),
2827
- week_instance: import_zod58.z.number().int().nullable(),
2828
- week_interval: import_zod58.z.number().int().nullable(),
2829
- month_interval: import_zod58.z.number().int().nullable(),
2830
- start_date: import_zod58.z.string(),
2831
- end_date: import_zod58.z.string().nullable()
2870
+ var import_zod59 = require("zod");
2871
+ var QuestionScheduleSchema = import_zod59.z.object({
2872
+ frequency: import_zod59.z.string(),
2873
+ days: import_zod59.z.array(import_zod59.z.number().int()),
2874
+ hour: import_zod59.z.number().int(),
2875
+ minute: import_zod59.z.number().int(),
2876
+ week_instance: import_zod59.z.number().int().nullable(),
2877
+ week_interval: import_zod59.z.number().int().nullable(),
2878
+ month_interval: import_zod59.z.number().int().nullable(),
2879
+ start_date: import_zod59.z.string(),
2880
+ end_date: import_zod59.z.string().nullable()
2832
2881
  });
2833
2882
  var QuestionSchema = RecordingBaseSchema.extend({
2834
- type: import_zod58.z.literal("Question"),
2835
- paused: import_zod58.z.boolean(),
2883
+ type: import_zod59.z.literal("Question"),
2884
+ paused: import_zod59.z.boolean(),
2836
2885
  schedule: QuestionScheduleSchema,
2837
- answers_count: import_zod58.z.number().int(),
2838
- answers_url: import_zod58.z.string().url()
2886
+ answers_count: import_zod59.z.number().int(),
2887
+ answers_url: import_zod59.z.string().url()
2839
2888
  });
2840
- var QuestionListResponseSchema = import_zod58.z.array(QuestionSchema);
2841
- var QuestionListQuerySchema = import_zod58.z.object({
2842
- page: import_zod58.z.coerce.number().int().positive().optional()
2889
+ var QuestionListResponseSchema = import_zod59.z.array(QuestionSchema);
2890
+ var QuestionListQuerySchema = import_zod59.z.object({
2891
+ page: import_zod59.z.coerce.number().int().positive().optional()
2843
2892
  });
2844
2893
 
2845
2894
  // src/contract/resources/scheduling/questions.ts
2846
- var bucketAndQuestionnairePathParams2 = import_zod59.z.object({
2895
+ var bucketAndQuestionnairePathParams2 = import_zod60.z.object({
2847
2896
  bucketId: BasecampIdParamSchema,
2848
2897
  questionnaireId: BasecampIdParamSchema
2849
2898
  });
2850
- var bucketAndQuestionPathParams = import_zod59.z.object({
2899
+ var bucketAndQuestionPathParams = import_zod60.z.object({
2851
2900
  bucketId: BasecampIdParamSchema,
2852
2901
  questionId: BasecampIdParamSchema
2853
2902
  });
@@ -2886,25 +2935,25 @@ var questionsRouter = c.router({
2886
2935
  });
2887
2936
 
2888
2937
  // src/contract/resources/tasks/todosets.ts
2889
- var import_zod61 = require("zod");
2938
+ var import_zod62 = require("zod");
2890
2939
 
2891
2940
  // src/contract/schemas/tasks/todosets.ts
2892
- var import_zod60 = require("zod");
2941
+ var import_zod61 = require("zod");
2893
2942
  var TodoSetSchema = RecordingBaseSchema.omit({
2894
2943
  subscription_url: true,
2895
2944
  comments_count: true,
2896
2945
  comments_url: true
2897
2946
  }).extend({
2898
- completed: import_zod60.z.boolean(),
2899
- completed_ratio: import_zod60.z.string(),
2900
- name: import_zod60.z.string(),
2901
- todolists_count: import_zod60.z.number().int().nonnegative(),
2902
- todolists_url: import_zod60.z.string().url(),
2903
- app_todoslists_url: import_zod60.z.string().url()
2947
+ completed: import_zod61.z.boolean(),
2948
+ completed_ratio: import_zod61.z.string(),
2949
+ name: import_zod61.z.string(),
2950
+ todolists_count: import_zod61.z.number().int().nonnegative(),
2951
+ todolists_url: import_zod61.z.string().url(),
2952
+ app_todoslists_url: import_zod61.z.string().url()
2904
2953
  });
2905
2954
 
2906
2955
  // src/contract/resources/tasks/todosets.ts
2907
- var bucketPathParams2 = import_zod61.z.object({
2956
+ var bucketPathParams2 = import_zod62.z.object({
2908
2957
  bucketId: BasecampIdParamSchema
2909
2958
  });
2910
2959
  var bucketAndTodoSetPathParams = bucketPathParams2.extend({
@@ -2929,42 +2978,42 @@ var todoSetsRouter = c.router({
2929
2978
  });
2930
2979
 
2931
2980
  // src/contract/resources/tasks/todolists.ts
2932
- var import_zod63 = require("zod");
2981
+ var import_zod64 = require("zod");
2933
2982
 
2934
2983
  // src/contract/schemas/tasks/todolists.ts
2935
- var import_zod62 = require("zod");
2984
+ var import_zod63 = require("zod");
2936
2985
  var TodoListBaseSchema = RecordingBaseSchema.extend({
2937
- type: import_zod62.z.literal("Todolist"),
2986
+ type: import_zod63.z.literal("Todolist"),
2938
2987
  description: HtmlStringSchema.optional(),
2939
- completed: import_zod62.z.boolean(),
2940
- completed_ratio: import_zod62.z.string(),
2941
- name: import_zod62.z.string(),
2942
- todos_url: import_zod62.z.string().url(),
2943
- app_todos_url: import_zod62.z.string().url()
2988
+ completed: import_zod63.z.boolean(),
2989
+ completed_ratio: import_zod63.z.string(),
2990
+ name: import_zod63.z.string(),
2991
+ todos_url: import_zod63.z.string().url(),
2992
+ app_todos_url: import_zod63.z.string().url()
2944
2993
  });
2945
2994
  var TodoTopLevelListSchema = TodoListBaseSchema.extend({
2946
- groups_url: import_zod62.z.string().url()
2995
+ groups_url: import_zod63.z.string().url()
2947
2996
  });
2948
2997
  var TodoListGroupSchema = TodoListBaseSchema.extend({
2949
- group_position_url: import_zod62.z.string().url()
2998
+ group_position_url: import_zod63.z.string().url()
2950
2999
  });
2951
- var TodoListSchema = import_zod62.z.union([TodoTopLevelListSchema, TodoListGroupSchema]);
2952
- var TodoListsResponseSchema = import_zod62.z.array(TodoTopLevelListSchema);
2953
- var TodoListQuerySchema = import_zod62.z.object({
2954
- status: import_zod62.z.enum(["active", "archived", "trashed"]).or(import_zod62.z.string()).optional(),
2955
- page: import_zod62.z.coerce.number().int().positive().optional()
3000
+ var TodoListSchema = import_zod63.z.union([TodoTopLevelListSchema, TodoListGroupSchema]);
3001
+ var TodoListsResponseSchema = import_zod63.z.array(TodoTopLevelListSchema);
3002
+ var TodoListQuerySchema = import_zod63.z.object({
3003
+ status: import_zod63.z.enum(["active", "archived", "trashed"]).or(import_zod63.z.string()).optional(),
3004
+ page: import_zod63.z.coerce.number().int().positive().optional()
2956
3005
  });
2957
- var TodoListCreateBodySchema = import_zod62.z.object({
2958
- name: import_zod62.z.string().min(1),
3006
+ var TodoListCreateBodySchema = import_zod63.z.object({
3007
+ name: import_zod63.z.string().min(1),
2959
3008
  description: HtmlStringSchema.nullable().optional()
2960
3009
  });
2961
- var TodoListUpdateBodySchema = import_zod62.z.object({
2962
- name: import_zod62.z.string().min(1),
3010
+ var TodoListUpdateBodySchema = import_zod63.z.object({
3011
+ name: import_zod63.z.string().min(1),
2963
3012
  description: HtmlStringSchema.nullable().optional()
2964
3013
  });
2965
3014
 
2966
3015
  // src/contract/resources/tasks/todolists.ts
2967
- var bucketPathParams3 = import_zod63.z.object({
3016
+ var bucketPathParams3 = import_zod64.z.object({
2968
3017
  bucketId: BasecampIdParamSchema
2969
3018
  });
2970
3019
  var bucketAndTodoSetPathParams2 = bucketPathParams3.extend({
@@ -3056,31 +3105,31 @@ var todoListsRouter = c.router({
3056
3105
  });
3057
3106
 
3058
3107
  // src/contract/resources/tasks/todolist-groups.ts
3059
- var import_zod65 = require("zod");
3108
+ var import_zod66 = require("zod");
3060
3109
 
3061
3110
  // src/contract/schemas/tasks/todolist-groups.ts
3062
- var import_zod64 = require("zod");
3111
+ var import_zod65 = require("zod");
3063
3112
  var TodoListBaseSchema2 = RecordingBaseSchema.extend({
3064
- type: import_zod64.z.literal("Todolist"),
3113
+ type: import_zod65.z.literal("Todolist"),
3065
3114
  description: HtmlStringSchema.optional(),
3066
- completed: import_zod64.z.boolean(),
3067
- completed_ratio: import_zod64.z.string(),
3068
- name: import_zod64.z.string(),
3069
- todos_url: import_zod64.z.string().url(),
3070
- app_todos_url: import_zod64.z.string().url()
3115
+ completed: import_zod65.z.boolean(),
3116
+ completed_ratio: import_zod65.z.string(),
3117
+ name: import_zod65.z.string(),
3118
+ todos_url: import_zod65.z.string().url(),
3119
+ app_todos_url: import_zod65.z.string().url()
3071
3120
  });
3072
3121
  var TodoListGroupSchema2 = TodoListBaseSchema2.extend({
3073
- group_position_url: import_zod64.z.string().url()
3122
+ group_position_url: import_zod65.z.string().url()
3074
3123
  });
3075
3124
  var TodoListSchema2 = TodoListGroupSchema2;
3076
- var TodoListGroupsResponseSchema = import_zod64.z.array(TodoListGroupSchema2);
3077
- var TodoListGroupQuerySchema = import_zod64.z.object({
3078
- status: import_zod64.z.enum(["active", "archived", "trashed"]).or(import_zod64.z.string()).optional(),
3079
- page: import_zod64.z.coerce.number().int().positive().optional()
3080
- });
3081
- var TodoListGroupCreateBodySchema = import_zod64.z.object({
3082
- name: import_zod64.z.string().min(1),
3083
- color: import_zod64.z.enum([
3125
+ var TodoListGroupsResponseSchema = import_zod65.z.array(TodoListGroupSchema2);
3126
+ var TodoListGroupQuerySchema = import_zod65.z.object({
3127
+ status: import_zod65.z.enum(["active", "archived", "trashed"]).or(import_zod65.z.string()).optional(),
3128
+ page: import_zod65.z.coerce.number().int().positive().optional()
3129
+ });
3130
+ var TodoListGroupCreateBodySchema = import_zod65.z.object({
3131
+ name: import_zod65.z.string().min(1),
3132
+ color: import_zod65.z.enum([
3084
3133
  "white",
3085
3134
  "red",
3086
3135
  "orange",
@@ -3092,14 +3141,14 @@ var TodoListGroupCreateBodySchema = import_zod64.z.object({
3092
3141
  "gray",
3093
3142
  "pink",
3094
3143
  "brown"
3095
- ]).or(import_zod64.z.string()).optional()
3144
+ ]).or(import_zod65.z.string()).optional()
3096
3145
  });
3097
- var TodoListGroupRepositionBodySchema = import_zod64.z.object({
3098
- position: import_zod64.z.number().int().gte(1)
3146
+ var TodoListGroupRepositionBodySchema = import_zod65.z.object({
3147
+ position: import_zod65.z.number().int().gte(1)
3099
3148
  });
3100
3149
 
3101
3150
  // src/contract/resources/tasks/todolist-groups.ts
3102
- var bucketPathParams4 = import_zod65.z.object({
3151
+ var bucketPathParams4 = import_zod66.z.object({
3103
3152
  bucketId: BasecampIdParamSchema
3104
3153
  });
3105
3154
  var bucketAndTodoListPathParams2 = bucketPathParams4.extend({
@@ -3160,56 +3209,56 @@ var todoListGroupsRouter = c.router({
3160
3209
  });
3161
3210
 
3162
3211
  // src/contract/resources/tasks/todos.ts
3163
- var import_zod67 = require("zod");
3212
+ var import_zod68 = require("zod");
3164
3213
 
3165
3214
  // src/contract/schemas/tasks/todos.ts
3166
- var import_zod66 = require("zod");
3167
- var TodoCompletionSchema = import_zod66.z.object({
3215
+ var import_zod67 = require("zod");
3216
+ var TodoCompletionSchema = import_zod67.z.object({
3168
3217
  created_at: IsoDateTimeSchema,
3169
3218
  creator: PersonSummarySchema
3170
3219
  });
3171
3220
  var TodoSchema = RecordingBaseSchema.extend({
3172
- type: import_zod66.z.literal("Todo"),
3221
+ type: import_zod67.z.literal("Todo"),
3173
3222
  description: HtmlStringSchema.optional(),
3174
- completed: import_zod66.z.boolean(),
3223
+ completed: import_zod67.z.boolean(),
3175
3224
  completion: TodoCompletionSchema.optional(),
3176
- content: import_zod66.z.string(),
3177
- starts_on: import_zod66.z.string().date().nullable().optional(),
3178
- due_on: import_zod66.z.string().date().nullable().optional(),
3179
- assignees: import_zod66.z.array(PersonSummarySchema),
3180
- completion_subscribers: import_zod66.z.array(PersonSummarySchema),
3181
- completion_url: import_zod66.z.string().url()
3182
- });
3183
- var TodoCollectionResponseSchema = import_zod66.z.array(TodoSchema);
3184
- var TodoQuerySchema = import_zod66.z.object({
3185
- status: import_zod66.z.enum(["active", "archived", "trashed"]).or(import_zod66.z.string()).optional(),
3186
- completed: import_zod66.z.enum(["true"]).optional(),
3187
- page: import_zod66.z.coerce.number().int().positive().optional()
3188
- });
3189
- var TodoCreateBodySchema = import_zod66.z.object({
3190
- content: import_zod66.z.string().min(1),
3225
+ content: import_zod67.z.string(),
3226
+ starts_on: import_zod67.z.string().date().nullable().optional(),
3227
+ due_on: import_zod67.z.string().date().nullable().optional(),
3228
+ assignees: import_zod67.z.array(PersonSummarySchema),
3229
+ completion_subscribers: import_zod67.z.array(PersonSummarySchema),
3230
+ completion_url: import_zod67.z.string().url()
3231
+ });
3232
+ var TodoCollectionResponseSchema = import_zod67.z.array(TodoSchema);
3233
+ var TodoQuerySchema = import_zod67.z.object({
3234
+ status: import_zod67.z.enum(["active", "archived", "trashed"]).or(import_zod67.z.string()).optional(),
3235
+ completed: import_zod67.z.enum(["true"]).optional(),
3236
+ page: import_zod67.z.coerce.number().int().positive().optional()
3237
+ });
3238
+ var TodoCreateBodySchema = import_zod67.z.object({
3239
+ content: import_zod67.z.string().min(1),
3191
3240
  description: HtmlStringSchema.nullable().optional(),
3192
- assignee_ids: import_zod66.z.array(BasecampIdSchema).optional(),
3193
- completion_subscriber_ids: import_zod66.z.array(BasecampIdSchema).optional(),
3194
- notify: import_zod66.z.boolean().optional(),
3195
- due_on: import_zod66.z.string().date().nullable().optional(),
3196
- starts_on: import_zod66.z.string().date().nullable().optional()
3197
- });
3198
- var TodoUpdateBodySchema = import_zod66.z.object({
3199
- content: import_zod66.z.string().min(1),
3241
+ assignee_ids: import_zod67.z.array(BasecampIdSchema).optional(),
3242
+ completion_subscriber_ids: import_zod67.z.array(BasecampIdSchema).optional(),
3243
+ notify: import_zod67.z.boolean().optional(),
3244
+ due_on: import_zod67.z.string().date().nullable().optional(),
3245
+ starts_on: import_zod67.z.string().date().nullable().optional()
3246
+ });
3247
+ var TodoUpdateBodySchema = import_zod67.z.object({
3248
+ content: import_zod67.z.string().min(1),
3200
3249
  description: HtmlStringSchema.nullable().optional(),
3201
- assignee_ids: import_zod66.z.array(BasecampIdSchema).optional(),
3202
- completion_subscriber_ids: import_zod66.z.array(BasecampIdSchema).optional(),
3203
- notify: import_zod66.z.boolean().optional(),
3204
- due_on: import_zod66.z.string().date().nullable().optional(),
3205
- starts_on: import_zod66.z.string().date().nullable().optional()
3250
+ assignee_ids: import_zod67.z.array(BasecampIdSchema).optional(),
3251
+ completion_subscriber_ids: import_zod67.z.array(BasecampIdSchema).optional(),
3252
+ notify: import_zod67.z.boolean().optional(),
3253
+ due_on: import_zod67.z.string().date().nullable().optional(),
3254
+ starts_on: import_zod67.z.string().date().nullable().optional()
3206
3255
  });
3207
- var TodoRepositionBodySchema = import_zod66.z.object({
3208
- position: import_zod66.z.number().int().gte(1)
3256
+ var TodoRepositionBodySchema = import_zod67.z.object({
3257
+ position: import_zod67.z.number().int().gte(1)
3209
3258
  });
3210
3259
 
3211
3260
  // src/contract/resources/tasks/todos.ts
3212
- var bucketPathParams5 = import_zod67.z.object({
3261
+ var bucketPathParams5 = import_zod68.z.object({
3213
3262
  bucketId: BasecampIdParamSchema
3214
3263
  });
3215
3264
  var bucketAndTodoListPathParams3 = bucketPathParams5.extend({
@@ -3383,14 +3432,15 @@ var contract = c.router(
3383
3432
  documents: documentsRouter,
3384
3433
  vaults: vaultsRouter,
3385
3434
  uploads: uploadsRouter,
3386
- attachments: attachmentsRouter
3435
+ attachments: attachmentsRouter,
3436
+ blobs: blobsRouter
3387
3437
  },
3388
3438
  {
3389
3439
  strictStatusCodes: true,
3390
- baseHeaders: import_zod68.z.object({
3391
- Authorization: import_zod68.z.string().min(1),
3392
- "User-Agent": import_zod68.z.string().min(1).optional(),
3393
- Accept: import_zod68.z.literal("application/json").optional()
3440
+ baseHeaders: import_zod69.z.object({
3441
+ Authorization: import_zod69.z.string().min(1),
3442
+ "User-Agent": import_zod69.z.string().min(1).optional(),
3443
+ Accept: import_zod69.z.literal("application/json").optional()
3394
3444
  })
3395
3445
  }
3396
3446
  );
@@ -3427,15 +3477,35 @@ var computeBackoffDelay = (attempt, retryAfterMs) => {
3427
3477
  };
3428
3478
  async function fetcher(args) {
3429
3479
  const url = new URL(args.path);
3430
- if (!url.pathname.endsWith(".json")) {
3480
+ const isRaw = args.route.metadata?.rawResponse === true;
3481
+ if (!isRaw && !url.pathname.endsWith(".json")) {
3431
3482
  url.pathname = `${url.pathname}.json`;
3432
3483
  }
3484
+ const headers = { ...args.headers };
3485
+ if (isRaw) {
3486
+ delete headers.accept;
3487
+ delete headers.Accept;
3488
+ }
3433
3489
  const pathWithSuffix = url.toString();
3434
3490
  for (let attempt = 0; attempt <= MAX_RETRIES; attempt += 1) {
3435
- const response = await (0, import_core2.tsRestFetchApi)({
3436
- ...args,
3437
- path: pathWithSuffix
3438
- });
3491
+ let response;
3492
+ if (isRaw) {
3493
+ const result = await fetch(pathWithSuffix, {
3494
+ method: args.method,
3495
+ headers
3496
+ });
3497
+ response = {
3498
+ status: result.status,
3499
+ body: await result.arrayBuffer(),
3500
+ headers: result.headers
3501
+ };
3502
+ } else {
3503
+ response = await (0, import_core2.tsRestFetchApi)({
3504
+ ...args,
3505
+ path: pathWithSuffix,
3506
+ headers
3507
+ });
3508
+ }
3439
3509
  if (response.status !== 429) {
3440
3510
  return response;
3441
3511
  }