@seamapi/http 1.24.0 → 1.25.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (182) hide show
  1. package/README.md +87 -0
  2. package/dist/connect.cjs +391 -171
  3. package/dist/connect.cjs.map +1 -1
  4. package/dist/connect.d.cts +74 -4
  5. package/dist/index.cjs +2 -2
  6. package/dist/index.cjs.map +1 -1
  7. package/lib/seam/connect/index.d.ts +2 -0
  8. package/lib/seam/connect/index.js +2 -0
  9. package/lib/seam/connect/index.js.map +1 -1
  10. package/lib/seam/connect/routes/access-codes-simulate.d.ts +2 -0
  11. package/lib/seam/connect/routes/access-codes-simulate.js +5 -1
  12. package/lib/seam/connect/routes/access-codes-simulate.js.map +1 -1
  13. package/lib/seam/connect/routes/access-codes-unmanaged.d.ts +2 -0
  14. package/lib/seam/connect/routes/access-codes-unmanaged.js +9 -5
  15. package/lib/seam/connect/routes/access-codes-unmanaged.js.map +1 -1
  16. package/lib/seam/connect/routes/access-codes.d.ts +2 -0
  17. package/lib/seam/connect/routes/access-codes.js +13 -9
  18. package/lib/seam/connect/routes/access-codes.js.map +1 -1
  19. package/lib/seam/connect/routes/acs-access-groups-unmanaged.d.ts +2 -0
  20. package/lib/seam/connect/routes/acs-access-groups-unmanaged.js +6 -2
  21. package/lib/seam/connect/routes/acs-access-groups-unmanaged.js.map +1 -1
  22. package/lib/seam/connect/routes/acs-access-groups.d.ts +2 -0
  23. package/lib/seam/connect/routes/acs-access-groups.js +10 -6
  24. package/lib/seam/connect/routes/acs-access-groups.js.map +1 -1
  25. package/lib/seam/connect/routes/acs-credential-pools.d.ts +2 -0
  26. package/lib/seam/connect/routes/acs-credential-pools.js +5 -1
  27. package/lib/seam/connect/routes/acs-credential-pools.js.map +1 -1
  28. package/lib/seam/connect/routes/acs-credential-provisioning-automations.d.ts +2 -0
  29. package/lib/seam/connect/routes/acs-credential-provisioning-automations.js +5 -1
  30. package/lib/seam/connect/routes/acs-credential-provisioning-automations.js.map +1 -1
  31. package/lib/seam/connect/routes/acs-credentials-unmanaged.d.ts +2 -0
  32. package/lib/seam/connect/routes/acs-credentials-unmanaged.js +6 -2
  33. package/lib/seam/connect/routes/acs-credentials-unmanaged.js.map +1 -1
  34. package/lib/seam/connect/routes/acs-credentials.d.ts +2 -0
  35. package/lib/seam/connect/routes/acs-credentials.js +13 -9
  36. package/lib/seam/connect/routes/acs-credentials.js.map +1 -1
  37. package/lib/seam/connect/routes/acs-encoders-simulate.d.ts +2 -0
  38. package/lib/seam/connect/routes/acs-encoders-simulate.js +8 -4
  39. package/lib/seam/connect/routes/acs-encoders-simulate.js.map +1 -1
  40. package/lib/seam/connect/routes/acs-encoders.d.ts +2 -0
  41. package/lib/seam/connect/routes/acs-encoders.js +7 -3
  42. package/lib/seam/connect/routes/acs-encoders.js.map +1 -1
  43. package/lib/seam/connect/routes/acs-entrances.d.ts +2 -0
  44. package/lib/seam/connect/routes/acs-entrances.js +8 -4
  45. package/lib/seam/connect/routes/acs-entrances.js.map +1 -1
  46. package/lib/seam/connect/routes/acs-systems.d.ts +2 -0
  47. package/lib/seam/connect/routes/acs-systems.js +7 -3
  48. package/lib/seam/connect/routes/acs-systems.js.map +1 -1
  49. package/lib/seam/connect/routes/acs-users-unmanaged.d.ts +2 -0
  50. package/lib/seam/connect/routes/acs-users-unmanaged.js +6 -2
  51. package/lib/seam/connect/routes/acs-users-unmanaged.js.map +1 -1
  52. package/lib/seam/connect/routes/acs-users.d.ts +2 -0
  53. package/lib/seam/connect/routes/acs-users.js +15 -11
  54. package/lib/seam/connect/routes/acs-users.js.map +1 -1
  55. package/lib/seam/connect/routes/acs.d.ts +3 -0
  56. package/lib/seam/connect/routes/acs.js +4 -0
  57. package/lib/seam/connect/routes/acs.js.map +1 -1
  58. package/lib/seam/connect/routes/action-attempts.d.ts +2 -0
  59. package/lib/seam/connect/routes/action-attempts.js +6 -2
  60. package/lib/seam/connect/routes/action-attempts.js.map +1 -1
  61. package/lib/seam/connect/routes/bridges.d.ts +2 -0
  62. package/lib/seam/connect/routes/bridges.js +6 -2
  63. package/lib/seam/connect/routes/bridges.js.map +1 -1
  64. package/lib/seam/connect/routes/client-sessions.d.ts +2 -0
  65. package/lib/seam/connect/routes/client-sessions.js +11 -7
  66. package/lib/seam/connect/routes/client-sessions.js.map +1 -1
  67. package/lib/seam/connect/routes/connect-webviews.d.ts +2 -0
  68. package/lib/seam/connect/routes/connect-webviews.js +8 -4
  69. package/lib/seam/connect/routes/connect-webviews.js.map +1 -1
  70. package/lib/seam/connect/routes/connected-accounts.d.ts +2 -0
  71. package/lib/seam/connect/routes/connected-accounts.js +8 -4
  72. package/lib/seam/connect/routes/connected-accounts.js.map +1 -1
  73. package/lib/seam/connect/routes/devices-simulate.d.ts +2 -0
  74. package/lib/seam/connect/routes/devices-simulate.js +7 -3
  75. package/lib/seam/connect/routes/devices-simulate.js.map +1 -1
  76. package/lib/seam/connect/routes/devices-unmanaged.d.ts +2 -0
  77. package/lib/seam/connect/routes/devices-unmanaged.js +7 -3
  78. package/lib/seam/connect/routes/devices-unmanaged.js.map +1 -1
  79. package/lib/seam/connect/routes/devices.d.ts +2 -0
  80. package/lib/seam/connect/routes/devices.js +9 -5
  81. package/lib/seam/connect/routes/devices.js.map +1 -1
  82. package/lib/seam/connect/routes/events.d.ts +2 -0
  83. package/lib/seam/connect/routes/events.js +6 -2
  84. package/lib/seam/connect/routes/events.js.map +1 -1
  85. package/lib/seam/connect/routes/locks.d.ts +2 -0
  86. package/lib/seam/connect/routes/locks.js +8 -4
  87. package/lib/seam/connect/routes/locks.js.map +1 -1
  88. package/lib/seam/connect/routes/networks.d.ts +2 -0
  89. package/lib/seam/connect/routes/networks.js +6 -2
  90. package/lib/seam/connect/routes/networks.js.map +1 -1
  91. package/lib/seam/connect/routes/noise-sensors-noise-thresholds.d.ts +2 -0
  92. package/lib/seam/connect/routes/noise-sensors-noise-thresholds.js +9 -5
  93. package/lib/seam/connect/routes/noise-sensors-noise-thresholds.js.map +1 -1
  94. package/lib/seam/connect/routes/noise-sensors-simulate.d.ts +2 -0
  95. package/lib/seam/connect/routes/noise-sensors-simulate.js +5 -1
  96. package/lib/seam/connect/routes/noise-sensors-simulate.js.map +1 -1
  97. package/lib/seam/connect/routes/noise-sensors.d.ts +2 -0
  98. package/lib/seam/connect/routes/noise-sensors.js +5 -1
  99. package/lib/seam/connect/routes/noise-sensors.js.map +1 -1
  100. package/lib/seam/connect/routes/phones-simulate.d.ts +2 -0
  101. package/lib/seam/connect/routes/phones-simulate.js +5 -1
  102. package/lib/seam/connect/routes/phones-simulate.js.map +1 -1
  103. package/lib/seam/connect/routes/phones.d.ts +2 -0
  104. package/lib/seam/connect/routes/phones.js +7 -3
  105. package/lib/seam/connect/routes/phones.js.map +1 -1
  106. package/lib/seam/connect/routes/thermostats-schedules.d.ts +2 -0
  107. package/lib/seam/connect/routes/thermostats-schedules.js +9 -5
  108. package/lib/seam/connect/routes/thermostats-schedules.js.map +1 -1
  109. package/lib/seam/connect/routes/thermostats-simulate.d.ts +2 -0
  110. package/lib/seam/connect/routes/thermostats-simulate.js +6 -2
  111. package/lib/seam/connect/routes/thermostats-simulate.js.map +1 -1
  112. package/lib/seam/connect/routes/thermostats.d.ts +2 -0
  113. package/lib/seam/connect/routes/thermostats.js +18 -14
  114. package/lib/seam/connect/routes/thermostats.js.map +1 -1
  115. package/lib/seam/connect/routes/user-identities-enrollment-automations.d.ts +2 -0
  116. package/lib/seam/connect/routes/user-identities-enrollment-automations.js +8 -4
  117. package/lib/seam/connect/routes/user-identities-enrollment-automations.js.map +1 -1
  118. package/lib/seam/connect/routes/user-identities.d.ts +2 -0
  119. package/lib/seam/connect/routes/user-identities.js +16 -12
  120. package/lib/seam/connect/routes/user-identities.js.map +1 -1
  121. package/lib/seam/connect/routes/webhooks.d.ts +2 -0
  122. package/lib/seam/connect/routes/webhooks.js +9 -5
  123. package/lib/seam/connect/routes/webhooks.js.map +1 -1
  124. package/lib/seam/connect/routes/workspaces.d.ts +2 -0
  125. package/lib/seam/connect/routes/workspaces.js +8 -4
  126. package/lib/seam/connect/routes/workspaces.js.map +1 -1
  127. package/lib/seam/connect/seam-http-request.d.ts +6 -3
  128. package/lib/seam/connect/seam-http-request.js +25 -14
  129. package/lib/seam/connect/seam-http-request.js.map +1 -1
  130. package/lib/seam/connect/seam-http.d.ts +3 -0
  131. package/lib/seam/connect/seam-http.js +4 -0
  132. package/lib/seam/connect/seam-http.js.map +1 -1
  133. package/lib/seam/connect/seam-paginator.d.ts +30 -0
  134. package/lib/seam/connect/seam-paginator.js +103 -0
  135. package/lib/seam/connect/seam-paginator.js.map +1 -0
  136. package/lib/version.d.ts +1 -1
  137. package/lib/version.js +1 -1
  138. package/package.json +3 -3
  139. package/src/lib/seam/connect/index.ts +2 -0
  140. package/src/lib/seam/connect/routes/access-codes-simulate.ts +8 -1
  141. package/src/lib/seam/connect/routes/access-codes-unmanaged.ts +12 -5
  142. package/src/lib/seam/connect/routes/access-codes.ts +16 -9
  143. package/src/lib/seam/connect/routes/acs-access-groups-unmanaged.ts +9 -2
  144. package/src/lib/seam/connect/routes/acs-access-groups.ts +13 -6
  145. package/src/lib/seam/connect/routes/acs-credential-pools.ts +8 -1
  146. package/src/lib/seam/connect/routes/acs-credential-provisioning-automations.ts +8 -1
  147. package/src/lib/seam/connect/routes/acs-credentials-unmanaged.ts +9 -2
  148. package/src/lib/seam/connect/routes/acs-credentials.ts +16 -9
  149. package/src/lib/seam/connect/routes/acs-encoders-simulate.ts +11 -4
  150. package/src/lib/seam/connect/routes/acs-encoders.ts +10 -3
  151. package/src/lib/seam/connect/routes/acs-entrances.ts +11 -4
  152. package/src/lib/seam/connect/routes/acs-systems.ts +10 -3
  153. package/src/lib/seam/connect/routes/acs-users-unmanaged.ts +9 -2
  154. package/src/lib/seam/connect/routes/acs-users.ts +18 -11
  155. package/src/lib/seam/connect/routes/acs.ts +8 -0
  156. package/src/lib/seam/connect/routes/action-attempts.ts +9 -2
  157. package/src/lib/seam/connect/routes/bridges.ts +9 -2
  158. package/src/lib/seam/connect/routes/client-sessions.ts +14 -7
  159. package/src/lib/seam/connect/routes/connect-webviews.ts +11 -4
  160. package/src/lib/seam/connect/routes/connected-accounts.ts +11 -4
  161. package/src/lib/seam/connect/routes/devices-simulate.ts +10 -3
  162. package/src/lib/seam/connect/routes/devices-unmanaged.ts +10 -3
  163. package/src/lib/seam/connect/routes/devices.ts +12 -5
  164. package/src/lib/seam/connect/routes/events.ts +9 -2
  165. package/src/lib/seam/connect/routes/locks.ts +11 -4
  166. package/src/lib/seam/connect/routes/networks.ts +9 -2
  167. package/src/lib/seam/connect/routes/noise-sensors-noise-thresholds.ts +12 -5
  168. package/src/lib/seam/connect/routes/noise-sensors-simulate.ts +8 -1
  169. package/src/lib/seam/connect/routes/noise-sensors.ts +8 -1
  170. package/src/lib/seam/connect/routes/phones-simulate.ts +8 -1
  171. package/src/lib/seam/connect/routes/phones.ts +10 -3
  172. package/src/lib/seam/connect/routes/thermostats-schedules.ts +12 -5
  173. package/src/lib/seam/connect/routes/thermostats-simulate.ts +9 -2
  174. package/src/lib/seam/connect/routes/thermostats.ts +21 -14
  175. package/src/lib/seam/connect/routes/user-identities-enrollment-automations.ts +11 -4
  176. package/src/lib/seam/connect/routes/user-identities.ts +19 -12
  177. package/src/lib/seam/connect/routes/webhooks.ts +12 -5
  178. package/src/lib/seam/connect/routes/workspaces.ts +11 -4
  179. package/src/lib/seam/connect/seam-http-request.ts +45 -23
  180. package/src/lib/seam/connect/seam-http.ts +8 -0
  181. package/src/lib/seam/connect/seam-paginator.ts +155 -0
  182. package/src/lib/version.ts +1 -1
package/README.md CHANGED
@@ -308,6 +308,93 @@ try {
308
308
 
309
309
  [action attempt]: https://docs.seam.co/latest/core-concepts/action-attempts
310
310
 
311
+ ### Pagination
312
+
313
+ Some Seam API endpoints that return lists of resources support pagination.
314
+ Use the `SeamPaginator` class to fetch and process resources across multiple pages.
315
+
316
+ #### Manually fetch pages with the nextPageCursor
317
+
318
+ ```ts
319
+ const pages = seam.createPaginator(
320
+ seam.devices.list({
321
+ limit: 20,
322
+ }),
323
+ )
324
+
325
+ const [devices, { hasNextPage, nextPageCursor }] = await pages.firstPage()
326
+
327
+ if (hasNextPage) {
328
+ const [moreDevices] = await pages.nextPage(nextPageCursor)
329
+ }
330
+ ```
331
+
332
+ #### Resume pagination
333
+
334
+ Get the first page on initial load:
335
+
336
+ ```ts
337
+ const params = { limit: 20 }
338
+
339
+ const pages = seam.createPaginator(seam.devices.list(params))
340
+
341
+ const [devices, pagination] = await pages.firstPage()
342
+
343
+ localStorage.setItem('/seam/devices/list', JSON.stringify([params, pagination]))
344
+ ```
345
+
346
+ Get the next page at a later time:
347
+
348
+ ```ts
349
+ const [params = {}, { hasNextPage = false, nextPageCursor = null } = {}] =
350
+ JSON.parse(localStorage.getItem('/seam/devices/list') ?? '[]')
351
+
352
+ if (hasNextPage) {
353
+ const pages = seam.createPaginator(seam.devices.list(params))
354
+ const [moreDevices] = await pages.nextPage(nextPageCursor)
355
+ }
356
+ ```
357
+
358
+ #### Iterate over all pages
359
+
360
+ ```ts
361
+ const pages = seam.createPaginator(
362
+ seam.devices.list({
363
+ limit: 20,
364
+ }),
365
+ )
366
+
367
+ for await (const devices of pages) {
368
+ console.log(`There are ${devices.length} devices on this page.`)
369
+ }
370
+ ```
371
+
372
+ #### Iterate over all resources
373
+
374
+ ```ts
375
+ const pages = seam.createPaginator(
376
+ seam.devices.list({
377
+ limit: 20,
378
+ }),
379
+ )
380
+
381
+ for await (const device of pages.flatten()) {
382
+ console.log(devices.name)
383
+ }
384
+ ```
385
+
386
+ #### Return all resources across all pages as an array
387
+
388
+ ```ts
389
+ const pages = seam.createPaginator(
390
+ seam.devices.list({
391
+ limit: 20,
392
+ }),
393
+ )
394
+
395
+ const devices = await pages.flattenToArray()
396
+ ```
397
+
311
398
  ### Interacting with Multiple Workspaces
312
399
 
313
400
  Some Seam API endpoints interact with multiple workspaces.