@seamapi/http 0.4.0 → 0.5.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (103) hide show
  1. package/README.md +212 -1
  2. package/dist/connect.cjs +549 -4
  3. package/dist/connect.cjs.map +1 -1
  4. package/dist/connect.d.cts +56 -2
  5. package/lib/seam/connect/auth.js +55 -4
  6. package/lib/seam/connect/auth.js.map +1 -1
  7. package/lib/seam/connect/options.d.ts +11 -1
  8. package/lib/seam/connect/options.js +51 -1
  9. package/lib/seam/connect/options.js.map +1 -1
  10. package/lib/seam/connect/routes/access-codes-unmanaged.d.ts +3 -1
  11. package/lib/seam/connect/routes/access-codes-unmanaged.js +15 -1
  12. package/lib/seam/connect/routes/access-codes-unmanaged.js.map +1 -1
  13. package/lib/seam/connect/routes/access-codes.d.ts +3 -1
  14. package/lib/seam/connect/routes/access-codes.js +15 -1
  15. package/lib/seam/connect/routes/access-codes.js.map +1 -1
  16. package/lib/seam/connect/routes/acs-access-groups.d.ts +3 -1
  17. package/lib/seam/connect/routes/acs-access-groups.js +15 -1
  18. package/lib/seam/connect/routes/acs-access-groups.js.map +1 -1
  19. package/lib/seam/connect/routes/acs-credentials.d.ts +3 -1
  20. package/lib/seam/connect/routes/acs-credentials.js +15 -1
  21. package/lib/seam/connect/routes/acs-credentials.js.map +1 -1
  22. package/lib/seam/connect/routes/acs-systems.d.ts +3 -1
  23. package/lib/seam/connect/routes/acs-systems.js +15 -1
  24. package/lib/seam/connect/routes/acs-systems.js.map +1 -1
  25. package/lib/seam/connect/routes/acs-users.d.ts +3 -1
  26. package/lib/seam/connect/routes/acs-users.js +15 -1
  27. package/lib/seam/connect/routes/acs-users.js.map +1 -1
  28. package/lib/seam/connect/routes/acs.d.ts +3 -1
  29. package/lib/seam/connect/routes/acs.js +15 -1
  30. package/lib/seam/connect/routes/acs.js.map +1 -1
  31. package/lib/seam/connect/routes/action-attempts.d.ts +3 -1
  32. package/lib/seam/connect/routes/action-attempts.js +15 -1
  33. package/lib/seam/connect/routes/action-attempts.js.map +1 -1
  34. package/lib/seam/connect/routes/client-sessions.d.ts +3 -1
  35. package/lib/seam/connect/routes/client-sessions.js +15 -1
  36. package/lib/seam/connect/routes/client-sessions.js.map +1 -1
  37. package/lib/seam/connect/routes/connect-webviews.d.ts +3 -1
  38. package/lib/seam/connect/routes/connect-webviews.js +15 -1
  39. package/lib/seam/connect/routes/connect-webviews.js.map +1 -1
  40. package/lib/seam/connect/routes/connected-accounts.d.ts +3 -1
  41. package/lib/seam/connect/routes/connected-accounts.js +15 -1
  42. package/lib/seam/connect/routes/connected-accounts.js.map +1 -1
  43. package/lib/seam/connect/routes/devices-unmanaged.d.ts +3 -1
  44. package/lib/seam/connect/routes/devices-unmanaged.js +15 -1
  45. package/lib/seam/connect/routes/devices-unmanaged.js.map +1 -1
  46. package/lib/seam/connect/routes/devices.d.ts +3 -1
  47. package/lib/seam/connect/routes/devices.js +15 -1
  48. package/lib/seam/connect/routes/devices.js.map +1 -1
  49. package/lib/seam/connect/routes/events.d.ts +3 -1
  50. package/lib/seam/connect/routes/events.js +15 -1
  51. package/lib/seam/connect/routes/events.js.map +1 -1
  52. package/lib/seam/connect/routes/locks.d.ts +3 -1
  53. package/lib/seam/connect/routes/locks.js +15 -1
  54. package/lib/seam/connect/routes/locks.js.map +1 -1
  55. package/lib/seam/connect/routes/noise-sensors-noise-thresholds.d.ts +3 -1
  56. package/lib/seam/connect/routes/noise-sensors-noise-thresholds.js +15 -1
  57. package/lib/seam/connect/routes/noise-sensors-noise-thresholds.js.map +1 -1
  58. package/lib/seam/connect/routes/noise-sensors.d.ts +3 -1
  59. package/lib/seam/connect/routes/noise-sensors.js +15 -1
  60. package/lib/seam/connect/routes/noise-sensors.js.map +1 -1
  61. package/lib/seam/connect/routes/thermostats-climate-setting-schedules.d.ts +3 -1
  62. package/lib/seam/connect/routes/thermostats-climate-setting-schedules.js +15 -1
  63. package/lib/seam/connect/routes/thermostats-climate-setting-schedules.js.map +1 -1
  64. package/lib/seam/connect/routes/thermostats.d.ts +3 -1
  65. package/lib/seam/connect/routes/thermostats.js +15 -1
  66. package/lib/seam/connect/routes/thermostats.js.map +1 -1
  67. package/lib/seam/connect/routes/webhooks.d.ts +3 -1
  68. package/lib/seam/connect/routes/webhooks.js +15 -1
  69. package/lib/seam/connect/routes/webhooks.js.map +1 -1
  70. package/lib/seam/connect/routes/workspaces.d.ts +3 -1
  71. package/lib/seam/connect/routes/workspaces.js +15 -1
  72. package/lib/seam/connect/routes/workspaces.js.map +1 -1
  73. package/lib/seam/connect/seam-http.d.ts +3 -1
  74. package/lib/seam/connect/seam-http.js +15 -1
  75. package/lib/seam/connect/seam-http.js.map +1 -1
  76. package/lib/version.d.ts +1 -1
  77. package/lib/version.js +1 -1
  78. package/package.json +1 -1
  79. package/src/lib/seam/connect/auth.ts +95 -3
  80. package/src/lib/seam/connect/options.ts +105 -1
  81. package/src/lib/seam/connect/routes/access-codes-unmanaged.ts +38 -0
  82. package/src/lib/seam/connect/routes/access-codes.ts +38 -0
  83. package/src/lib/seam/connect/routes/acs-access-groups.ts +38 -0
  84. package/src/lib/seam/connect/routes/acs-credentials.ts +38 -0
  85. package/src/lib/seam/connect/routes/acs-systems.ts +38 -0
  86. package/src/lib/seam/connect/routes/acs-users.ts +38 -0
  87. package/src/lib/seam/connect/routes/acs.ts +38 -0
  88. package/src/lib/seam/connect/routes/action-attempts.ts +38 -0
  89. package/src/lib/seam/connect/routes/client-sessions.ts +38 -0
  90. package/src/lib/seam/connect/routes/connect-webviews.ts +38 -0
  91. package/src/lib/seam/connect/routes/connected-accounts.ts +38 -0
  92. package/src/lib/seam/connect/routes/devices-unmanaged.ts +38 -0
  93. package/src/lib/seam/connect/routes/devices.ts +38 -0
  94. package/src/lib/seam/connect/routes/events.ts +38 -0
  95. package/src/lib/seam/connect/routes/locks.ts +38 -0
  96. package/src/lib/seam/connect/routes/noise-sensors-noise-thresholds.ts +38 -0
  97. package/src/lib/seam/connect/routes/noise-sensors.ts +38 -0
  98. package/src/lib/seam/connect/routes/thermostats-climate-setting-schedules.ts +38 -0
  99. package/src/lib/seam/connect/routes/thermostats.ts +38 -0
  100. package/src/lib/seam/connect/routes/webhooks.ts +38 -0
  101. package/src/lib/seam/connect/routes/workspaces.ts +38 -0
  102. package/src/lib/seam/connect/seam-http.ts +38 -0
  103. package/src/lib/version.ts +1 -1
package/dist/connect.cjs CHANGED
@@ -119,6 +119,16 @@ var isSeamHttpOptionsWithApiKey = (options) => {
119
119
  "The clientSessionToken option cannot be used with the apiKey option"
120
120
  );
121
121
  }
122
+ if ("consoleSessionToken" in options && options.consoleSessionToken != null) {
123
+ throw new SeamHttpInvalidOptionsError(
124
+ "The consoleSessionToken option cannot be used with the apiKey option"
125
+ );
126
+ }
127
+ if ("personalAccessToken" in options && options.personalAccessToken != null) {
128
+ throw new SeamHttpInvalidOptionsError(
129
+ "The personalAccessToken option cannot be used with the apiKey option"
130
+ );
131
+ }
122
132
  return true;
123
133
  };
124
134
  var isSeamHttpOptionsWithClientSessionToken = (options) => {
@@ -128,7 +138,71 @@ var isSeamHttpOptionsWithClientSessionToken = (options) => {
128
138
  return false;
129
139
  if ("apiKey" in options && options.apiKey != null) {
130
140
  throw new SeamHttpInvalidOptionsError(
131
- "The clientSessionToken option cannot be used with the apiKey option"
141
+ "The apiKey option cannot be used with the clientSessionToken option"
142
+ );
143
+ }
144
+ if ("consoleSessionToken" in options && options.consoleSessionToken != null) {
145
+ throw new SeamHttpInvalidOptionsError(
146
+ "The consoleSessionToken option cannot be used with the clientSessionToken option"
147
+ );
148
+ }
149
+ if ("personalAccessToken" in options && options.personalAccessToken != null) {
150
+ throw new SeamHttpInvalidOptionsError(
151
+ "The personalAccessToken option cannot be used with the clientSessionToken option"
152
+ );
153
+ }
154
+ return true;
155
+ };
156
+ var isSeamHttpOptionsWithConsoleSessionToken = (options) => {
157
+ if (!("consoleSessionToken" in options))
158
+ return false;
159
+ if (options.consoleSessionToken == null)
160
+ return false;
161
+ if (!("workspaceId" in options) || options.workspaceId == null) {
162
+ throw new SeamHttpInvalidOptionsError(
163
+ "Must pass a workspaceId when using a consoleSessionToken"
164
+ );
165
+ }
166
+ if ("apiKey" in options && options.apiKey != null) {
167
+ throw new SeamHttpInvalidOptionsError(
168
+ "The apiKey option cannot be used with the consoleSessionToken option"
169
+ );
170
+ }
171
+ if ("clientSessionToken" in options && options.clientSessionToken != null) {
172
+ throw new SeamHttpInvalidOptionsError(
173
+ "The clientSessionToken option cannot be used with the consoleSessionToken option"
174
+ );
175
+ }
176
+ if ("personalAccessToken" in options && options.personalAccessToken != null) {
177
+ throw new SeamHttpInvalidOptionsError(
178
+ "The personalAccessToken option cannot be used with the consoleSessionToken option"
179
+ );
180
+ }
181
+ return true;
182
+ };
183
+ var isSeamHttpOptionsWithPersonalAccessToken = (options) => {
184
+ if (!("personalAccessToken" in options))
185
+ return false;
186
+ if (options.personalAccessToken == null)
187
+ return false;
188
+ if (!("workspaceId" in options) || options.workspaceId == null) {
189
+ throw new SeamHttpInvalidOptionsError(
190
+ "Must pass a workspaceId when using a personalAccessToken"
191
+ );
192
+ }
193
+ if ("apiKey" in options && options.apiKey != null) {
194
+ throw new SeamHttpInvalidOptionsError(
195
+ "The apiKey option cannot be used with the personalAccessToken option"
196
+ );
197
+ }
198
+ if ("clientSessionToken" in options && options.clientSessionToken != null) {
199
+ throw new SeamHttpInvalidOptionsError(
200
+ "The clientSessionToken option cannot be used with the personalAccessToken option"
201
+ );
202
+ }
203
+ if ("consoleSessionToken" in options && options.consoleSessionToken != null) {
204
+ throw new SeamHttpInvalidOptionsError(
205
+ "The consoleSessionToken option cannot be used with the personalAccessToken option"
132
206
  );
133
207
  }
134
208
  return true;
@@ -152,8 +226,21 @@ var getAuthHeaders = (options) => {
152
226
  if (isSeamHttpOptionsWithClientSessionToken(options)) {
153
227
  return getAuthHeadersForClientSessionToken(options);
154
228
  }
229
+ if (isSeamHttpOptionsWithConsoleSessionToken(options)) {
230
+ return getAuthHeadersForConsoleSessionToken(options);
231
+ }
232
+ if (isSeamHttpOptionsWithPersonalAccessToken(options)) {
233
+ return getAuthHeadersForPersonalAccessToken(options);
234
+ }
155
235
  throw new SeamHttpInvalidOptionsError(
156
- "Must specify an apiKey, clientSessionToken, or publishableKey"
236
+ [
237
+ "Must specify",
238
+ "an apiKey,",
239
+ "clientSessionToken,",
240
+ "publishableKey,",
241
+ "consoleSessionToken with a workspaceId",
242
+ "or personalAccessToken with a workspaceId"
243
+ ].join(" ")
157
244
  );
158
245
  };
159
246
  var getAuthHeadersForApiKey = ({
@@ -214,6 +301,64 @@ var getAuthHeadersForClientSessionToken = ({
214
301
  "client-session-token": clientSessionToken
215
302
  };
216
303
  };
304
+ var getAuthHeadersForConsoleSessionToken = ({
305
+ consoleSessionToken,
306
+ workspaceId
307
+ }) => {
308
+ if (isAccessToken(consoleSessionToken)) {
309
+ throw new SeamHttpInvalidTokenError(
310
+ "An Access Token cannot be used as a consoleSessionToken"
311
+ );
312
+ }
313
+ if (isClientSessionToken(consoleSessionToken)) {
314
+ throw new SeamHttpInvalidTokenError(
315
+ "A Client Session Token cannot be used as a consoleSessionToken"
316
+ );
317
+ }
318
+ if (isPublishableKey(consoleSessionToken)) {
319
+ throw new SeamHttpInvalidTokenError(
320
+ "A Publishable Key cannot be used as a consoleSessionToken"
321
+ );
322
+ }
323
+ if (!isJwt(consoleSessionToken)) {
324
+ throw new SeamHttpInvalidTokenError(
325
+ `Unknown or invalid consoleSessionToken format, expected a JWT which starts with ${jwtPrefix}`
326
+ );
327
+ }
328
+ return {
329
+ authorization: `Bearer ${consoleSessionToken}`,
330
+ "seam-workspace-id": workspaceId
331
+ };
332
+ };
333
+ var getAuthHeadersForPersonalAccessToken = ({
334
+ personalAccessToken,
335
+ workspaceId
336
+ }) => {
337
+ if (isJwt(personalAccessToken)) {
338
+ throw new SeamHttpInvalidTokenError(
339
+ "A JWT cannot be used as a personalAccessToken"
340
+ );
341
+ }
342
+ if (isClientSessionToken(personalAccessToken)) {
343
+ throw new SeamHttpInvalidTokenError(
344
+ "A Client Session Token cannot be used as a personalAccessToken"
345
+ );
346
+ }
347
+ if (isPublishableKey(personalAccessToken)) {
348
+ throw new SeamHttpInvalidTokenError(
349
+ "A Publishable Key cannot be used as a personalAccessToken"
350
+ );
351
+ }
352
+ if (!isAccessToken(personalAccessToken)) {
353
+ throw new SeamHttpInvalidTokenError(
354
+ `Unknown or invalid personalAccessToken format, expected token to start with ${accessTokenPrefix}`
355
+ );
356
+ }
357
+ return {
358
+ authorization: `Bearer ${personalAccessToken}`,
359
+ "seam-workspace-id": workspaceId
360
+ };
361
+ };
217
362
  var getAuthHeadersForPublishableKey = (publishableKey) => {
218
363
  if (isJwt(publishableKey)) {
219
364
  throw new SeamHttpInvalidTokenError(
@@ -260,11 +405,13 @@ var warnOnInsecureuserIdentifierKey = (userIdentifierKey) => {
260
405
  }
261
406
  };
262
407
  var tokenPrefix = "seam_";
408
+ var accessTokenPrefix = "seam_at";
409
+ var jwtPrefix = "ey";
263
410
  var clientSessionTokenPrefix = "seam_cst";
264
411
  var publishableKeyTokenPrefix = "seam_pk";
265
412
  var isClientSessionToken = (token) => token.startsWith(clientSessionTokenPrefix);
266
- var isAccessToken = (token) => token.startsWith("seam_at");
267
- var isJwt = (token) => token.startsWith("ey");
413
+ var isAccessToken = (token) => token.startsWith(accessTokenPrefix);
414
+ var isJwt = (token) => token.startsWith(jwtPrefix);
268
415
  var isSeamToken = (token) => token.startsWith(tokenPrefix);
269
416
  var isPublishableKey = (token) => token.startsWith(publishableKeyTokenPrefix);
270
417
  var isEmail = (value) => /^[^\s@]+@[^\s@]+\.[^\s@]+$/.test(value);
@@ -423,6 +570,24 @@ var SeamHttpClientSessions = class _SeamHttpClientSessions {
423
570
  });
424
571
  return _SeamHttpClientSessions.fromClientSessionToken(token, options);
425
572
  }
573
+ static fromConsoleSessionToken(consoleSessionToken, workspaceId, options = {}) {
574
+ const constructorOptions = { ...options, consoleSessionToken, workspaceId };
575
+ if (!isSeamHttpOptionsWithConsoleSessionToken(constructorOptions)) {
576
+ throw new SeamHttpInvalidOptionsError(
577
+ "Missing consoleSessionToken or workspaceId"
578
+ );
579
+ }
580
+ return new _SeamHttpClientSessions(constructorOptions);
581
+ }
582
+ static fromPersonalAccessToken(personalAccessToken, workspaceId, options = {}) {
583
+ const constructorOptions = { ...options, personalAccessToken, workspaceId };
584
+ if (!isSeamHttpOptionsWithPersonalAccessToken(constructorOptions)) {
585
+ throw new SeamHttpInvalidOptionsError(
586
+ "Missing personalAccessToken or workspaceId"
587
+ );
588
+ }
589
+ return new _SeamHttpClientSessions(constructorOptions);
590
+ }
426
591
  async create(body) {
427
592
  const { data } = await this.client.request({
428
593
  url: "/client_sessions/create",
@@ -509,6 +674,24 @@ var SeamHttpAccessCodesUnmanaged = class _SeamHttpAccessCodesUnmanaged {
509
674
  });
510
675
  return _SeamHttpAccessCodesUnmanaged.fromClientSessionToken(token, options);
511
676
  }
677
+ static fromConsoleSessionToken(consoleSessionToken, workspaceId, options = {}) {
678
+ const constructorOptions = { ...options, consoleSessionToken, workspaceId };
679
+ if (!isSeamHttpOptionsWithConsoleSessionToken(constructorOptions)) {
680
+ throw new SeamHttpInvalidOptionsError(
681
+ "Missing consoleSessionToken or workspaceId"
682
+ );
683
+ }
684
+ return new _SeamHttpAccessCodesUnmanaged(constructorOptions);
685
+ }
686
+ static fromPersonalAccessToken(personalAccessToken, workspaceId, options = {}) {
687
+ const constructorOptions = { ...options, personalAccessToken, workspaceId };
688
+ if (!isSeamHttpOptionsWithPersonalAccessToken(constructorOptions)) {
689
+ throw new SeamHttpInvalidOptionsError(
690
+ "Missing personalAccessToken or workspaceId"
691
+ );
692
+ }
693
+ return new _SeamHttpAccessCodesUnmanaged(constructorOptions);
694
+ }
512
695
  async convertToManaged(body) {
513
696
  await this.client.request({
514
697
  url: "/access_codes/unmanaged/convert_to_managed",
@@ -587,6 +770,24 @@ var SeamHttpAccessCodes = class _SeamHttpAccessCodes {
587
770
  });
588
771
  return _SeamHttpAccessCodes.fromClientSessionToken(token, options);
589
772
  }
773
+ static fromConsoleSessionToken(consoleSessionToken, workspaceId, options = {}) {
774
+ const constructorOptions = { ...options, consoleSessionToken, workspaceId };
775
+ if (!isSeamHttpOptionsWithConsoleSessionToken(constructorOptions)) {
776
+ throw new SeamHttpInvalidOptionsError(
777
+ "Missing consoleSessionToken or workspaceId"
778
+ );
779
+ }
780
+ return new _SeamHttpAccessCodes(constructorOptions);
781
+ }
782
+ static fromPersonalAccessToken(personalAccessToken, workspaceId, options = {}) {
783
+ const constructorOptions = { ...options, personalAccessToken, workspaceId };
784
+ if (!isSeamHttpOptionsWithPersonalAccessToken(constructorOptions)) {
785
+ throw new SeamHttpInvalidOptionsError(
786
+ "Missing personalAccessToken or workspaceId"
787
+ );
788
+ }
789
+ return new _SeamHttpAccessCodes(constructorOptions);
790
+ }
590
791
  get unmanaged() {
591
792
  return SeamHttpAccessCodesUnmanaged.fromClient(this.client);
592
793
  }
@@ -693,6 +894,24 @@ var SeamHttpAcsAccessGroups = class _SeamHttpAcsAccessGroups {
693
894
  });
694
895
  return _SeamHttpAcsAccessGroups.fromClientSessionToken(token, options);
695
896
  }
897
+ static fromConsoleSessionToken(consoleSessionToken, workspaceId, options = {}) {
898
+ const constructorOptions = { ...options, consoleSessionToken, workspaceId };
899
+ if (!isSeamHttpOptionsWithConsoleSessionToken(constructorOptions)) {
900
+ throw new SeamHttpInvalidOptionsError(
901
+ "Missing consoleSessionToken or workspaceId"
902
+ );
903
+ }
904
+ return new _SeamHttpAcsAccessGroups(constructorOptions);
905
+ }
906
+ static fromPersonalAccessToken(personalAccessToken, workspaceId, options = {}) {
907
+ const constructorOptions = { ...options, personalAccessToken, workspaceId };
908
+ if (!isSeamHttpOptionsWithPersonalAccessToken(constructorOptions)) {
909
+ throw new SeamHttpInvalidOptionsError(
910
+ "Missing personalAccessToken or workspaceId"
911
+ );
912
+ }
913
+ return new _SeamHttpAcsAccessGroups(constructorOptions);
914
+ }
696
915
  async addUser(body) {
697
916
  await this.client.request({
698
917
  url: "/acs/access_groups/add_user",
@@ -792,6 +1011,24 @@ var SeamHttpAcsCredentials = class _SeamHttpAcsCredentials {
792
1011
  });
793
1012
  return _SeamHttpAcsCredentials.fromClientSessionToken(token, options);
794
1013
  }
1014
+ static fromConsoleSessionToken(consoleSessionToken, workspaceId, options = {}) {
1015
+ const constructorOptions = { ...options, consoleSessionToken, workspaceId };
1016
+ if (!isSeamHttpOptionsWithConsoleSessionToken(constructorOptions)) {
1017
+ throw new SeamHttpInvalidOptionsError(
1018
+ "Missing consoleSessionToken or workspaceId"
1019
+ );
1020
+ }
1021
+ return new _SeamHttpAcsCredentials(constructorOptions);
1022
+ }
1023
+ static fromPersonalAccessToken(personalAccessToken, workspaceId, options = {}) {
1024
+ const constructorOptions = { ...options, personalAccessToken, workspaceId };
1025
+ if (!isSeamHttpOptionsWithPersonalAccessToken(constructorOptions)) {
1026
+ throw new SeamHttpInvalidOptionsError(
1027
+ "Missing personalAccessToken or workspaceId"
1028
+ );
1029
+ }
1030
+ return new _SeamHttpAcsCredentials(constructorOptions);
1031
+ }
795
1032
  async create(body) {
796
1033
  const { data } = await this.client.request({
797
1034
  url: "/acs/credentials/create",
@@ -862,6 +1099,24 @@ var SeamHttpAcsSystems = class _SeamHttpAcsSystems {
862
1099
  });
863
1100
  return _SeamHttpAcsSystems.fromClientSessionToken(token, options);
864
1101
  }
1102
+ static fromConsoleSessionToken(consoleSessionToken, workspaceId, options = {}) {
1103
+ const constructorOptions = { ...options, consoleSessionToken, workspaceId };
1104
+ if (!isSeamHttpOptionsWithConsoleSessionToken(constructorOptions)) {
1105
+ throw new SeamHttpInvalidOptionsError(
1106
+ "Missing consoleSessionToken or workspaceId"
1107
+ );
1108
+ }
1109
+ return new _SeamHttpAcsSystems(constructorOptions);
1110
+ }
1111
+ static fromPersonalAccessToken(personalAccessToken, workspaceId, options = {}) {
1112
+ const constructorOptions = { ...options, personalAccessToken, workspaceId };
1113
+ if (!isSeamHttpOptionsWithPersonalAccessToken(constructorOptions)) {
1114
+ throw new SeamHttpInvalidOptionsError(
1115
+ "Missing personalAccessToken or workspaceId"
1116
+ );
1117
+ }
1118
+ return new _SeamHttpAcsSystems(constructorOptions);
1119
+ }
865
1120
  async get(body) {
866
1121
  const { data } = await this.client.request({
867
1122
  url: "/acs/systems/get",
@@ -917,6 +1172,24 @@ var SeamHttpAcsUsers = class _SeamHttpAcsUsers {
917
1172
  });
918
1173
  return _SeamHttpAcsUsers.fromClientSessionToken(token, options);
919
1174
  }
1175
+ static fromConsoleSessionToken(consoleSessionToken, workspaceId, options = {}) {
1176
+ const constructorOptions = { ...options, consoleSessionToken, workspaceId };
1177
+ if (!isSeamHttpOptionsWithConsoleSessionToken(constructorOptions)) {
1178
+ throw new SeamHttpInvalidOptionsError(
1179
+ "Missing consoleSessionToken or workspaceId"
1180
+ );
1181
+ }
1182
+ return new _SeamHttpAcsUsers(constructorOptions);
1183
+ }
1184
+ static fromPersonalAccessToken(personalAccessToken, workspaceId, options = {}) {
1185
+ const constructorOptions = { ...options, personalAccessToken, workspaceId };
1186
+ if (!isSeamHttpOptionsWithPersonalAccessToken(constructorOptions)) {
1187
+ throw new SeamHttpInvalidOptionsError(
1188
+ "Missing personalAccessToken or workspaceId"
1189
+ );
1190
+ }
1191
+ return new _SeamHttpAcsUsers(constructorOptions);
1192
+ }
920
1193
  async addToAccessGroup(body) {
921
1194
  await this.client.request({
922
1195
  url: "/acs/users/add_to_access_group",
@@ -1022,6 +1295,24 @@ var SeamHttpAcs = class _SeamHttpAcs {
1022
1295
  });
1023
1296
  return _SeamHttpAcs.fromClientSessionToken(token, options);
1024
1297
  }
1298
+ static fromConsoleSessionToken(consoleSessionToken, workspaceId, options = {}) {
1299
+ const constructorOptions = { ...options, consoleSessionToken, workspaceId };
1300
+ if (!isSeamHttpOptionsWithConsoleSessionToken(constructorOptions)) {
1301
+ throw new SeamHttpInvalidOptionsError(
1302
+ "Missing consoleSessionToken or workspaceId"
1303
+ );
1304
+ }
1305
+ return new _SeamHttpAcs(constructorOptions);
1306
+ }
1307
+ static fromPersonalAccessToken(personalAccessToken, workspaceId, options = {}) {
1308
+ const constructorOptions = { ...options, personalAccessToken, workspaceId };
1309
+ if (!isSeamHttpOptionsWithPersonalAccessToken(constructorOptions)) {
1310
+ throw new SeamHttpInvalidOptionsError(
1311
+ "Missing personalAccessToken or workspaceId"
1312
+ );
1313
+ }
1314
+ return new _SeamHttpAcs(constructorOptions);
1315
+ }
1025
1316
  get accessGroups() {
1026
1317
  return SeamHttpAcsAccessGroups.fromClient(this.client);
1027
1318
  }
@@ -1073,6 +1364,24 @@ var SeamHttpActionAttempts = class _SeamHttpActionAttempts {
1073
1364
  });
1074
1365
  return _SeamHttpActionAttempts.fromClientSessionToken(token, options);
1075
1366
  }
1367
+ static fromConsoleSessionToken(consoleSessionToken, workspaceId, options = {}) {
1368
+ const constructorOptions = { ...options, consoleSessionToken, workspaceId };
1369
+ if (!isSeamHttpOptionsWithConsoleSessionToken(constructorOptions)) {
1370
+ throw new SeamHttpInvalidOptionsError(
1371
+ "Missing consoleSessionToken or workspaceId"
1372
+ );
1373
+ }
1374
+ return new _SeamHttpActionAttempts(constructorOptions);
1375
+ }
1376
+ static fromPersonalAccessToken(personalAccessToken, workspaceId, options = {}) {
1377
+ const constructorOptions = { ...options, personalAccessToken, workspaceId };
1378
+ if (!isSeamHttpOptionsWithPersonalAccessToken(constructorOptions)) {
1379
+ throw new SeamHttpInvalidOptionsError(
1380
+ "Missing personalAccessToken or workspaceId"
1381
+ );
1382
+ }
1383
+ return new _SeamHttpActionAttempts(constructorOptions);
1384
+ }
1076
1385
  async get(body) {
1077
1386
  const { data } = await this.client.request({
1078
1387
  url: "/action_attempts/get",
@@ -1128,6 +1437,24 @@ var SeamHttpConnectWebviews = class _SeamHttpConnectWebviews {
1128
1437
  });
1129
1438
  return _SeamHttpConnectWebviews.fromClientSessionToken(token, options);
1130
1439
  }
1440
+ static fromConsoleSessionToken(consoleSessionToken, workspaceId, options = {}) {
1441
+ const constructorOptions = { ...options, consoleSessionToken, workspaceId };
1442
+ if (!isSeamHttpOptionsWithConsoleSessionToken(constructorOptions)) {
1443
+ throw new SeamHttpInvalidOptionsError(
1444
+ "Missing consoleSessionToken or workspaceId"
1445
+ );
1446
+ }
1447
+ return new _SeamHttpConnectWebviews(constructorOptions);
1448
+ }
1449
+ static fromPersonalAccessToken(personalAccessToken, workspaceId, options = {}) {
1450
+ const constructorOptions = { ...options, personalAccessToken, workspaceId };
1451
+ if (!isSeamHttpOptionsWithPersonalAccessToken(constructorOptions)) {
1452
+ throw new SeamHttpInvalidOptionsError(
1453
+ "Missing personalAccessToken or workspaceId"
1454
+ );
1455
+ }
1456
+ return new _SeamHttpConnectWebviews(constructorOptions);
1457
+ }
1131
1458
  async create(body) {
1132
1459
  const { data } = await this.client.request({
1133
1460
  url: "/connect_webviews/create",
@@ -1205,6 +1532,24 @@ var SeamHttpConnectedAccounts = class _SeamHttpConnectedAccounts {
1205
1532
  });
1206
1533
  return _SeamHttpConnectedAccounts.fromClientSessionToken(token, options);
1207
1534
  }
1535
+ static fromConsoleSessionToken(consoleSessionToken, workspaceId, options = {}) {
1536
+ const constructorOptions = { ...options, consoleSessionToken, workspaceId };
1537
+ if (!isSeamHttpOptionsWithConsoleSessionToken(constructorOptions)) {
1538
+ throw new SeamHttpInvalidOptionsError(
1539
+ "Missing consoleSessionToken or workspaceId"
1540
+ );
1541
+ }
1542
+ return new _SeamHttpConnectedAccounts(constructorOptions);
1543
+ }
1544
+ static fromPersonalAccessToken(personalAccessToken, workspaceId, options = {}) {
1545
+ const constructorOptions = { ...options, personalAccessToken, workspaceId };
1546
+ if (!isSeamHttpOptionsWithPersonalAccessToken(constructorOptions)) {
1547
+ throw new SeamHttpInvalidOptionsError(
1548
+ "Missing personalAccessToken or workspaceId"
1549
+ );
1550
+ }
1551
+ return new _SeamHttpConnectedAccounts(constructorOptions);
1552
+ }
1208
1553
  async delete(body) {
1209
1554
  await this.client.request({
1210
1555
  url: "/connected_accounts/delete",
@@ -1267,6 +1612,24 @@ var SeamHttpDevicesUnmanaged = class _SeamHttpDevicesUnmanaged {
1267
1612
  });
1268
1613
  return _SeamHttpDevicesUnmanaged.fromClientSessionToken(token, options);
1269
1614
  }
1615
+ static fromConsoleSessionToken(consoleSessionToken, workspaceId, options = {}) {
1616
+ const constructorOptions = { ...options, consoleSessionToken, workspaceId };
1617
+ if (!isSeamHttpOptionsWithConsoleSessionToken(constructorOptions)) {
1618
+ throw new SeamHttpInvalidOptionsError(
1619
+ "Missing consoleSessionToken or workspaceId"
1620
+ );
1621
+ }
1622
+ return new _SeamHttpDevicesUnmanaged(constructorOptions);
1623
+ }
1624
+ static fromPersonalAccessToken(personalAccessToken, workspaceId, options = {}) {
1625
+ const constructorOptions = { ...options, personalAccessToken, workspaceId };
1626
+ if (!isSeamHttpOptionsWithPersonalAccessToken(constructorOptions)) {
1627
+ throw new SeamHttpInvalidOptionsError(
1628
+ "Missing personalAccessToken or workspaceId"
1629
+ );
1630
+ }
1631
+ return new _SeamHttpDevicesUnmanaged(constructorOptions);
1632
+ }
1270
1633
  async get(body) {
1271
1634
  const { data } = await this.client.request({
1272
1635
  url: "/devices/unmanaged/get",
@@ -1329,6 +1692,24 @@ var SeamHttpDevices = class _SeamHttpDevices {
1329
1692
  });
1330
1693
  return _SeamHttpDevices.fromClientSessionToken(token, options);
1331
1694
  }
1695
+ static fromConsoleSessionToken(consoleSessionToken, workspaceId, options = {}) {
1696
+ const constructorOptions = { ...options, consoleSessionToken, workspaceId };
1697
+ if (!isSeamHttpOptionsWithConsoleSessionToken(constructorOptions)) {
1698
+ throw new SeamHttpInvalidOptionsError(
1699
+ "Missing consoleSessionToken or workspaceId"
1700
+ );
1701
+ }
1702
+ return new _SeamHttpDevices(constructorOptions);
1703
+ }
1704
+ static fromPersonalAccessToken(personalAccessToken, workspaceId, options = {}) {
1705
+ const constructorOptions = { ...options, personalAccessToken, workspaceId };
1706
+ if (!isSeamHttpOptionsWithPersonalAccessToken(constructorOptions)) {
1707
+ throw new SeamHttpInvalidOptionsError(
1708
+ "Missing personalAccessToken or workspaceId"
1709
+ );
1710
+ }
1711
+ return new _SeamHttpDevices(constructorOptions);
1712
+ }
1332
1713
  get unmanaged() {
1333
1714
  return SeamHttpDevicesUnmanaged.fromClient(this.client);
1334
1715
  }
@@ -1409,6 +1790,24 @@ var SeamHttpEvents = class _SeamHttpEvents {
1409
1790
  });
1410
1791
  return _SeamHttpEvents.fromClientSessionToken(token, options);
1411
1792
  }
1793
+ static fromConsoleSessionToken(consoleSessionToken, workspaceId, options = {}) {
1794
+ const constructorOptions = { ...options, consoleSessionToken, workspaceId };
1795
+ if (!isSeamHttpOptionsWithConsoleSessionToken(constructorOptions)) {
1796
+ throw new SeamHttpInvalidOptionsError(
1797
+ "Missing consoleSessionToken or workspaceId"
1798
+ );
1799
+ }
1800
+ return new _SeamHttpEvents(constructorOptions);
1801
+ }
1802
+ static fromPersonalAccessToken(personalAccessToken, workspaceId, options = {}) {
1803
+ const constructorOptions = { ...options, personalAccessToken, workspaceId };
1804
+ if (!isSeamHttpOptionsWithPersonalAccessToken(constructorOptions)) {
1805
+ throw new SeamHttpInvalidOptionsError(
1806
+ "Missing personalAccessToken or workspaceId"
1807
+ );
1808
+ }
1809
+ return new _SeamHttpEvents(constructorOptions);
1810
+ }
1412
1811
  async get(body) {
1413
1812
  const { data } = await this.client.request({
1414
1813
  url: "/events/get",
@@ -1464,6 +1863,24 @@ var SeamHttpLocks = class _SeamHttpLocks {
1464
1863
  });
1465
1864
  return _SeamHttpLocks.fromClientSessionToken(token, options);
1466
1865
  }
1866
+ static fromConsoleSessionToken(consoleSessionToken, workspaceId, options = {}) {
1867
+ const constructorOptions = { ...options, consoleSessionToken, workspaceId };
1868
+ if (!isSeamHttpOptionsWithConsoleSessionToken(constructorOptions)) {
1869
+ throw new SeamHttpInvalidOptionsError(
1870
+ "Missing consoleSessionToken or workspaceId"
1871
+ );
1872
+ }
1873
+ return new _SeamHttpLocks(constructorOptions);
1874
+ }
1875
+ static fromPersonalAccessToken(personalAccessToken, workspaceId, options = {}) {
1876
+ const constructorOptions = { ...options, personalAccessToken, workspaceId };
1877
+ if (!isSeamHttpOptionsWithPersonalAccessToken(constructorOptions)) {
1878
+ throw new SeamHttpInvalidOptionsError(
1879
+ "Missing personalAccessToken or workspaceId"
1880
+ );
1881
+ }
1882
+ return new _SeamHttpLocks(constructorOptions);
1883
+ }
1467
1884
  async get(body) {
1468
1885
  const { data } = await this.client.request({
1469
1886
  url: "/locks/get",
@@ -1538,6 +1955,24 @@ var SeamHttpNoiseSensorsNoiseThresholds = class _SeamHttpNoiseSensorsNoiseThresh
1538
1955
  options
1539
1956
  );
1540
1957
  }
1958
+ static fromConsoleSessionToken(consoleSessionToken, workspaceId, options = {}) {
1959
+ const constructorOptions = { ...options, consoleSessionToken, workspaceId };
1960
+ if (!isSeamHttpOptionsWithConsoleSessionToken(constructorOptions)) {
1961
+ throw new SeamHttpInvalidOptionsError(
1962
+ "Missing consoleSessionToken or workspaceId"
1963
+ );
1964
+ }
1965
+ return new _SeamHttpNoiseSensorsNoiseThresholds(constructorOptions);
1966
+ }
1967
+ static fromPersonalAccessToken(personalAccessToken, workspaceId, options = {}) {
1968
+ const constructorOptions = { ...options, personalAccessToken, workspaceId };
1969
+ if (!isSeamHttpOptionsWithPersonalAccessToken(constructorOptions)) {
1970
+ throw new SeamHttpInvalidOptionsError(
1971
+ "Missing personalAccessToken or workspaceId"
1972
+ );
1973
+ }
1974
+ return new _SeamHttpNoiseSensorsNoiseThresholds(constructorOptions);
1975
+ }
1541
1976
  async create(body) {
1542
1977
  await this.client.request({
1543
1978
  url: "/noise_sensors/noise_thresholds/create",
@@ -1614,6 +2049,24 @@ var SeamHttpNoiseSensors = class _SeamHttpNoiseSensors {
1614
2049
  });
1615
2050
  return _SeamHttpNoiseSensors.fromClientSessionToken(token, options);
1616
2051
  }
2052
+ static fromConsoleSessionToken(consoleSessionToken, workspaceId, options = {}) {
2053
+ const constructorOptions = { ...options, consoleSessionToken, workspaceId };
2054
+ if (!isSeamHttpOptionsWithConsoleSessionToken(constructorOptions)) {
2055
+ throw new SeamHttpInvalidOptionsError(
2056
+ "Missing consoleSessionToken or workspaceId"
2057
+ );
2058
+ }
2059
+ return new _SeamHttpNoiseSensors(constructorOptions);
2060
+ }
2061
+ static fromPersonalAccessToken(personalAccessToken, workspaceId, options = {}) {
2062
+ const constructorOptions = { ...options, personalAccessToken, workspaceId };
2063
+ if (!isSeamHttpOptionsWithPersonalAccessToken(constructorOptions)) {
2064
+ throw new SeamHttpInvalidOptionsError(
2065
+ "Missing personalAccessToken or workspaceId"
2066
+ );
2067
+ }
2068
+ return new _SeamHttpNoiseSensors(constructorOptions);
2069
+ }
1617
2070
  get noiseThresholds() {
1618
2071
  return SeamHttpNoiseSensorsNoiseThresholds.fromClient(this.client);
1619
2072
  }
@@ -1659,6 +2112,24 @@ var SeamHttpThermostatsClimateSettingSchedules = class _SeamHttpThermostatsClima
1659
2112
  options
1660
2113
  );
1661
2114
  }
2115
+ static fromConsoleSessionToken(consoleSessionToken, workspaceId, options = {}) {
2116
+ const constructorOptions = { ...options, consoleSessionToken, workspaceId };
2117
+ if (!isSeamHttpOptionsWithConsoleSessionToken(constructorOptions)) {
2118
+ throw new SeamHttpInvalidOptionsError(
2119
+ "Missing consoleSessionToken or workspaceId"
2120
+ );
2121
+ }
2122
+ return new _SeamHttpThermostatsClimateSettingSchedules(constructorOptions);
2123
+ }
2124
+ static fromPersonalAccessToken(personalAccessToken, workspaceId, options = {}) {
2125
+ const constructorOptions = { ...options, personalAccessToken, workspaceId };
2126
+ if (!isSeamHttpOptionsWithPersonalAccessToken(constructorOptions)) {
2127
+ throw new SeamHttpInvalidOptionsError(
2128
+ "Missing personalAccessToken or workspaceId"
2129
+ );
2130
+ }
2131
+ return new _SeamHttpThermostatsClimateSettingSchedules(constructorOptions);
2132
+ }
1662
2133
  async create(body) {
1663
2134
  const { data } = await this.client.request(
1664
2135
  {
@@ -1744,6 +2215,24 @@ var SeamHttpThermostats = class _SeamHttpThermostats {
1744
2215
  });
1745
2216
  return _SeamHttpThermostats.fromClientSessionToken(token, options);
1746
2217
  }
2218
+ static fromConsoleSessionToken(consoleSessionToken, workspaceId, options = {}) {
2219
+ const constructorOptions = { ...options, consoleSessionToken, workspaceId };
2220
+ if (!isSeamHttpOptionsWithConsoleSessionToken(constructorOptions)) {
2221
+ throw new SeamHttpInvalidOptionsError(
2222
+ "Missing consoleSessionToken or workspaceId"
2223
+ );
2224
+ }
2225
+ return new _SeamHttpThermostats(constructorOptions);
2226
+ }
2227
+ static fromPersonalAccessToken(personalAccessToken, workspaceId, options = {}) {
2228
+ const constructorOptions = { ...options, personalAccessToken, workspaceId };
2229
+ if (!isSeamHttpOptionsWithPersonalAccessToken(constructorOptions)) {
2230
+ throw new SeamHttpInvalidOptionsError(
2231
+ "Missing personalAccessToken or workspaceId"
2232
+ );
2233
+ }
2234
+ return new _SeamHttpThermostats(constructorOptions);
2235
+ }
1747
2236
  get climateSettingSchedules() {
1748
2237
  return SeamHttpThermostatsClimateSettingSchedules.fromClient(this.client);
1749
2238
  }
@@ -1844,6 +2333,24 @@ var SeamHttpWebhooks = class _SeamHttpWebhooks {
1844
2333
  });
1845
2334
  return _SeamHttpWebhooks.fromClientSessionToken(token, options);
1846
2335
  }
2336
+ static fromConsoleSessionToken(consoleSessionToken, workspaceId, options = {}) {
2337
+ const constructorOptions = { ...options, consoleSessionToken, workspaceId };
2338
+ if (!isSeamHttpOptionsWithConsoleSessionToken(constructorOptions)) {
2339
+ throw new SeamHttpInvalidOptionsError(
2340
+ "Missing consoleSessionToken or workspaceId"
2341
+ );
2342
+ }
2343
+ return new _SeamHttpWebhooks(constructorOptions);
2344
+ }
2345
+ static fromPersonalAccessToken(personalAccessToken, workspaceId, options = {}) {
2346
+ const constructorOptions = { ...options, personalAccessToken, workspaceId };
2347
+ if (!isSeamHttpOptionsWithPersonalAccessToken(constructorOptions)) {
2348
+ throw new SeamHttpInvalidOptionsError(
2349
+ "Missing personalAccessToken or workspaceId"
2350
+ );
2351
+ }
2352
+ return new _SeamHttpWebhooks(constructorOptions);
2353
+ }
1847
2354
  async create(body) {
1848
2355
  const { data } = await this.client.request({
1849
2356
  url: "/webhooks/create",
@@ -1914,6 +2421,24 @@ var SeamHttpWorkspaces = class _SeamHttpWorkspaces {
1914
2421
  });
1915
2422
  return _SeamHttpWorkspaces.fromClientSessionToken(token, options);
1916
2423
  }
2424
+ static fromConsoleSessionToken(consoleSessionToken, workspaceId, options = {}) {
2425
+ const constructorOptions = { ...options, consoleSessionToken, workspaceId };
2426
+ if (!isSeamHttpOptionsWithConsoleSessionToken(constructorOptions)) {
2427
+ throw new SeamHttpInvalidOptionsError(
2428
+ "Missing consoleSessionToken or workspaceId"
2429
+ );
2430
+ }
2431
+ return new _SeamHttpWorkspaces(constructorOptions);
2432
+ }
2433
+ static fromPersonalAccessToken(personalAccessToken, workspaceId, options = {}) {
2434
+ const constructorOptions = { ...options, personalAccessToken, workspaceId };
2435
+ if (!isSeamHttpOptionsWithPersonalAccessToken(constructorOptions)) {
2436
+ throw new SeamHttpInvalidOptionsError(
2437
+ "Missing personalAccessToken or workspaceId"
2438
+ );
2439
+ }
2440
+ return new _SeamHttpWorkspaces(constructorOptions);
2441
+ }
1917
2442
  async get(params) {
1918
2443
  const { data } = await this.client.request({
1919
2444
  url: "/workspaces/get",
@@ -1976,6 +2501,24 @@ var SeamHttp = class _SeamHttp {
1976
2501
  });
1977
2502
  return _SeamHttp.fromClientSessionToken(token, options);
1978
2503
  }
2504
+ static fromConsoleSessionToken(consoleSessionToken, workspaceId, options = {}) {
2505
+ const constructorOptions = { ...options, consoleSessionToken, workspaceId };
2506
+ if (!isSeamHttpOptionsWithConsoleSessionToken(constructorOptions)) {
2507
+ throw new SeamHttpInvalidOptionsError(
2508
+ "Missing consoleSessionToken or workspaceId"
2509
+ );
2510
+ }
2511
+ return new _SeamHttp(constructorOptions);
2512
+ }
2513
+ static fromPersonalAccessToken(personalAccessToken, workspaceId, options = {}) {
2514
+ const constructorOptions = { ...options, personalAccessToken, workspaceId };
2515
+ if (!isSeamHttpOptionsWithPersonalAccessToken(constructorOptions)) {
2516
+ throw new SeamHttpInvalidOptionsError(
2517
+ "Missing personalAccessToken or workspaceId"
2518
+ );
2519
+ }
2520
+ return new _SeamHttp(constructorOptions);
2521
+ }
1979
2522
  get accessCodes() {
1980
2523
  return SeamHttpAccessCodes.fromClient(this.client);
1981
2524
  }
@@ -2050,6 +2593,8 @@ exports.isSeamHttpInvalidInputError = isSeamHttpInvalidInputError;
2050
2593
  exports.isSeamHttpOptionsWithApiKey = isSeamHttpOptionsWithApiKey;
2051
2594
  exports.isSeamHttpOptionsWithClient = isSeamHttpOptionsWithClient;
2052
2595
  exports.isSeamHttpOptionsWithClientSessionToken = isSeamHttpOptionsWithClientSessionToken;
2596
+ exports.isSeamHttpOptionsWithConsoleSessionToken = isSeamHttpOptionsWithConsoleSessionToken;
2597
+ exports.isSeamHttpOptionsWithPersonalAccessToken = isSeamHttpOptionsWithPersonalAccessToken;
2053
2598
  exports.isSeamHttpUnauthorizedError = isSeamHttpUnauthorizedError;
2054
2599
  exports.paramsSerializer = paramsSerializer;
2055
2600
  //# sourceMappingURL=out.js.map