@seamapi/http 0.3.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 (122) hide show
  1. package/README.md +212 -1
  2. package/dist/connect.cjs +643 -4
  3. package/dist/connect.cjs.map +1 -1
  4. package/dist/connect.d.cts +84 -2
  5. package/lib/seam/connect/api-error-type.d.ts +8 -0
  6. package/lib/seam/connect/api-error-type.js +3 -0
  7. package/lib/seam/connect/api-error-type.js.map +1 -0
  8. package/lib/seam/connect/auth.js +55 -4
  9. package/lib/seam/connect/auth.js.map +1 -1
  10. package/lib/seam/connect/client.js +5 -0
  11. package/lib/seam/connect/client.js.map +1 -1
  12. package/lib/seam/connect/error-interceptor.d.ts +1 -0
  13. package/lib/seam/connect/error-interceptor.js +43 -0
  14. package/lib/seam/connect/error-interceptor.js.map +1 -0
  15. package/lib/seam/connect/index.d.ts +3 -1
  16. package/lib/seam/connect/index.js +3 -1
  17. package/lib/seam/connect/index.js.map +1 -1
  18. package/lib/seam/connect/options.d.ts +11 -1
  19. package/lib/seam/connect/options.js +51 -1
  20. package/lib/seam/connect/options.js.map +1 -1
  21. package/lib/seam/connect/routes/access-codes-unmanaged.d.ts +3 -1
  22. package/lib/seam/connect/routes/access-codes-unmanaged.js +15 -1
  23. package/lib/seam/connect/routes/access-codes-unmanaged.js.map +1 -1
  24. package/lib/seam/connect/routes/access-codes.d.ts +3 -1
  25. package/lib/seam/connect/routes/access-codes.js +15 -1
  26. package/lib/seam/connect/routes/access-codes.js.map +1 -1
  27. package/lib/seam/connect/routes/acs-access-groups.d.ts +3 -1
  28. package/lib/seam/connect/routes/acs-access-groups.js +15 -1
  29. package/lib/seam/connect/routes/acs-access-groups.js.map +1 -1
  30. package/lib/seam/connect/routes/acs-credentials.d.ts +3 -1
  31. package/lib/seam/connect/routes/acs-credentials.js +15 -1
  32. package/lib/seam/connect/routes/acs-credentials.js.map +1 -1
  33. package/lib/seam/connect/routes/acs-systems.d.ts +3 -1
  34. package/lib/seam/connect/routes/acs-systems.js +15 -1
  35. package/lib/seam/connect/routes/acs-systems.js.map +1 -1
  36. package/lib/seam/connect/routes/acs-users.d.ts +3 -1
  37. package/lib/seam/connect/routes/acs-users.js +15 -1
  38. package/lib/seam/connect/routes/acs-users.js.map +1 -1
  39. package/lib/seam/connect/routes/acs.d.ts +3 -1
  40. package/lib/seam/connect/routes/acs.js +15 -1
  41. package/lib/seam/connect/routes/acs.js.map +1 -1
  42. package/lib/seam/connect/routes/action-attempts.d.ts +3 -1
  43. package/lib/seam/connect/routes/action-attempts.js +15 -1
  44. package/lib/seam/connect/routes/action-attempts.js.map +1 -1
  45. package/lib/seam/connect/routes/client-sessions.d.ts +3 -1
  46. package/lib/seam/connect/routes/client-sessions.js +15 -1
  47. package/lib/seam/connect/routes/client-sessions.js.map +1 -1
  48. package/lib/seam/connect/routes/connect-webviews.d.ts +3 -1
  49. package/lib/seam/connect/routes/connect-webviews.js +15 -1
  50. package/lib/seam/connect/routes/connect-webviews.js.map +1 -1
  51. package/lib/seam/connect/routes/connected-accounts.d.ts +3 -1
  52. package/lib/seam/connect/routes/connected-accounts.js +15 -1
  53. package/lib/seam/connect/routes/connected-accounts.js.map +1 -1
  54. package/lib/seam/connect/routes/devices-unmanaged.d.ts +3 -1
  55. package/lib/seam/connect/routes/devices-unmanaged.js +15 -1
  56. package/lib/seam/connect/routes/devices-unmanaged.js.map +1 -1
  57. package/lib/seam/connect/routes/devices.d.ts +3 -1
  58. package/lib/seam/connect/routes/devices.js +15 -1
  59. package/lib/seam/connect/routes/devices.js.map +1 -1
  60. package/lib/seam/connect/routes/events.d.ts +3 -1
  61. package/lib/seam/connect/routes/events.js +15 -1
  62. package/lib/seam/connect/routes/events.js.map +1 -1
  63. package/lib/seam/connect/routes/locks.d.ts +3 -1
  64. package/lib/seam/connect/routes/locks.js +15 -1
  65. package/lib/seam/connect/routes/locks.js.map +1 -1
  66. package/lib/seam/connect/routes/noise-sensors-noise-thresholds.d.ts +3 -1
  67. package/lib/seam/connect/routes/noise-sensors-noise-thresholds.js +15 -1
  68. package/lib/seam/connect/routes/noise-sensors-noise-thresholds.js.map +1 -1
  69. package/lib/seam/connect/routes/noise-sensors.d.ts +3 -1
  70. package/lib/seam/connect/routes/noise-sensors.js +15 -1
  71. package/lib/seam/connect/routes/noise-sensors.js.map +1 -1
  72. package/lib/seam/connect/routes/thermostats-climate-setting-schedules.d.ts +3 -1
  73. package/lib/seam/connect/routes/thermostats-climate-setting-schedules.js +15 -1
  74. package/lib/seam/connect/routes/thermostats-climate-setting-schedules.js.map +1 -1
  75. package/lib/seam/connect/routes/thermostats.d.ts +3 -1
  76. package/lib/seam/connect/routes/thermostats.js +15 -1
  77. package/lib/seam/connect/routes/thermostats.js.map +1 -1
  78. package/lib/seam/connect/routes/webhooks.d.ts +3 -1
  79. package/lib/seam/connect/routes/webhooks.js +15 -1
  80. package/lib/seam/connect/routes/webhooks.js.map +1 -1
  81. package/lib/seam/connect/routes/workspaces.d.ts +3 -1
  82. package/lib/seam/connect/routes/workspaces.js +15 -1
  83. package/lib/seam/connect/routes/workspaces.js.map +1 -1
  84. package/lib/seam/connect/seam-http-error.d.ts +20 -0
  85. package/lib/seam/connect/seam-http-error.js +43 -0
  86. package/lib/seam/connect/seam-http-error.js.map +1 -0
  87. package/lib/seam/connect/seam-http.d.ts +3 -1
  88. package/lib/seam/connect/seam-http.js +15 -1
  89. package/lib/seam/connect/seam-http.js.map +1 -1
  90. package/lib/version.d.ts +1 -1
  91. package/lib/version.js +1 -1
  92. package/package.json +3 -2
  93. package/src/lib/seam/connect/api-error-type.ts +11 -0
  94. package/src/lib/seam/connect/auth.ts +95 -3
  95. package/src/lib/seam/connect/client.ts +8 -0
  96. package/src/lib/seam/connect/error-interceptor.ts +61 -0
  97. package/src/lib/seam/connect/index.ts +3 -1
  98. package/src/lib/seam/connect/options.ts +105 -1
  99. package/src/lib/seam/connect/routes/access-codes-unmanaged.ts +38 -0
  100. package/src/lib/seam/connect/routes/access-codes.ts +38 -0
  101. package/src/lib/seam/connect/routes/acs-access-groups.ts +38 -0
  102. package/src/lib/seam/connect/routes/acs-credentials.ts +38 -0
  103. package/src/lib/seam/connect/routes/acs-systems.ts +38 -0
  104. package/src/lib/seam/connect/routes/acs-users.ts +38 -0
  105. package/src/lib/seam/connect/routes/acs.ts +38 -0
  106. package/src/lib/seam/connect/routes/action-attempts.ts +38 -0
  107. package/src/lib/seam/connect/routes/client-sessions.ts +38 -0
  108. package/src/lib/seam/connect/routes/connect-webviews.ts +38 -0
  109. package/src/lib/seam/connect/routes/connected-accounts.ts +38 -0
  110. package/src/lib/seam/connect/routes/devices-unmanaged.ts +38 -0
  111. package/src/lib/seam/connect/routes/devices.ts +38 -0
  112. package/src/lib/seam/connect/routes/events.ts +38 -0
  113. package/src/lib/seam/connect/routes/locks.ts +38 -0
  114. package/src/lib/seam/connect/routes/noise-sensors-noise-thresholds.ts +38 -0
  115. package/src/lib/seam/connect/routes/noise-sensors.ts +38 -0
  116. package/src/lib/seam/connect/routes/thermostats-climate-setting-schedules.ts +38 -0
  117. package/src/lib/seam/connect/routes/thermostats.ts +38 -0
  118. package/src/lib/seam/connect/routes/webhooks.ts +38 -0
  119. package/src/lib/seam/connect/routes/workspaces.ts +38 -0
  120. package/src/lib/seam/connect/seam-http-error.ts +64 -0
  121. package/src/lib/seam/connect/seam-http.ts +38 -0
  122. package/src/lib/version.ts +1 -1
package/dist/connect.cjs CHANGED
@@ -1,13 +1,98 @@
1
1
  'use strict';
2
2
 
3
3
  var axios = require('axios');
4
+ var axiosBetterStacktrace = require('axios-better-stacktrace');
4
5
  var axiosRetry = require('axios-retry');
5
6
 
6
7
  function _interopDefault (e) { return e && e.__esModule ? e : { default: e }; }
7
8
 
8
9
  var axios__default = /*#__PURE__*/_interopDefault(axios);
10
+ var axiosBetterStacktrace__default = /*#__PURE__*/_interopDefault(axiosBetterStacktrace);
9
11
  var axiosRetry__default = /*#__PURE__*/_interopDefault(axiosRetry);
10
12
 
13
+ // src/lib/seam/connect/error-interceptor.ts
14
+
15
+ // src/lib/seam/connect/seam-http-error.ts
16
+ var SeamHttpApiError = class extends Error {
17
+ constructor(error, statusCode, requestId) {
18
+ const { type, message, data } = error;
19
+ super(message);
20
+ this.name = this.constructor.name;
21
+ Error.captureStackTrace(this, this.constructor);
22
+ this.code = type;
23
+ this.statusCode = statusCode;
24
+ this.requestId = requestId;
25
+ if (data != null)
26
+ this.data = data;
27
+ }
28
+ };
29
+ var isSeamHttpApiError = (error) => {
30
+ return error instanceof SeamHttpApiError;
31
+ };
32
+ var SeamHttpUnauthorizedError = class extends SeamHttpApiError {
33
+ constructor(requestId) {
34
+ const type = "unauthorized";
35
+ const status = 401;
36
+ super({ type, message: "Unauthorized" }, status, requestId);
37
+ this.name = this.constructor.name;
38
+ Error.captureStackTrace(this, this.constructor);
39
+ this.code = type;
40
+ this.statusCode = status;
41
+ this.requestId = requestId;
42
+ }
43
+ };
44
+ var isSeamHttpUnauthorizedError = (error) => {
45
+ return error instanceof SeamHttpUnauthorizedError;
46
+ };
47
+ var SeamHttpInvalidInputError = class extends SeamHttpApiError {
48
+ constructor(error, statusCode, requestId) {
49
+ super(error, statusCode, requestId);
50
+ this.name = this.constructor.name;
51
+ Error.captureStackTrace(this, this.constructor);
52
+ this.code = "invalid_input";
53
+ }
54
+ };
55
+ var isSeamHttpInvalidInputError = (error) => {
56
+ return error instanceof SeamHttpInvalidInputError;
57
+ };
58
+
59
+ // src/lib/seam/connect/error-interceptor.ts
60
+ var errorInterceptor = async (err) => {
61
+ if (!axios.isAxiosError(err))
62
+ throw err;
63
+ const { response } = err;
64
+ const status = response?.status;
65
+ const headers = response?.headers;
66
+ const requestId = headers?.["seam-request-id"] ?? "";
67
+ if (status == null)
68
+ throw err;
69
+ if (status === 401) {
70
+ throw new SeamHttpUnauthorizedError(requestId);
71
+ }
72
+ if (!isApiErrorResponse(response))
73
+ throw err;
74
+ const { type } = response.data.error;
75
+ const args = [response.data.error, status, requestId];
76
+ if (type === "invalid_input")
77
+ throw new SeamHttpInvalidInputError(...args);
78
+ throw new SeamHttpApiError(...args);
79
+ };
80
+ var isApiErrorResponse = (response) => {
81
+ if (response == null)
82
+ return false;
83
+ const { headers, data } = response;
84
+ if (headers == null)
85
+ return false;
86
+ const contentType = headers["content-type"];
87
+ if (typeof contentType === "string" && !contentType.startsWith("application/json")) {
88
+ return false;
89
+ }
90
+ if (typeof data === "object" && data != null) {
91
+ return "error" in data && typeof data.error === "object" && data.error != null && "type" in data.error && typeof data.error.type === "string";
92
+ }
93
+ return false;
94
+ };
95
+
11
96
  // src/lib/seam/connect/options.ts
12
97
  var isSeamHttpOptionsWithClient = (options) => {
13
98
  if (!("client" in options))
@@ -34,6 +119,16 @@ var isSeamHttpOptionsWithApiKey = (options) => {
34
119
  "The clientSessionToken option cannot be used with the apiKey option"
35
120
  );
36
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
+ }
37
132
  return true;
38
133
  };
39
134
  var isSeamHttpOptionsWithClientSessionToken = (options) => {
@@ -43,7 +138,71 @@ var isSeamHttpOptionsWithClientSessionToken = (options) => {
43
138
  return false;
44
139
  if ("apiKey" in options && options.apiKey != null) {
45
140
  throw new SeamHttpInvalidOptionsError(
46
- "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"
47
206
  );
48
207
  }
49
208
  return true;
@@ -67,8 +226,21 @@ var getAuthHeaders = (options) => {
67
226
  if (isSeamHttpOptionsWithClientSessionToken(options)) {
68
227
  return getAuthHeadersForClientSessionToken(options);
69
228
  }
229
+ if (isSeamHttpOptionsWithConsoleSessionToken(options)) {
230
+ return getAuthHeadersForConsoleSessionToken(options);
231
+ }
232
+ if (isSeamHttpOptionsWithPersonalAccessToken(options)) {
233
+ return getAuthHeadersForPersonalAccessToken(options);
234
+ }
70
235
  throw new SeamHttpInvalidOptionsError(
71
- "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(" ")
72
244
  );
73
245
  };
74
246
  var getAuthHeadersForApiKey = ({
@@ -129,6 +301,64 @@ var getAuthHeadersForClientSessionToken = ({
129
301
  "client-session-token": clientSessionToken
130
302
  };
131
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
+ };
132
362
  var getAuthHeadersForPublishableKey = (publishableKey) => {
133
363
  if (isJwt(publishableKey)) {
134
364
  throw new SeamHttpInvalidTokenError(
@@ -175,11 +405,13 @@ var warnOnInsecureuserIdentifierKey = (userIdentifierKey) => {
175
405
  }
176
406
  };
177
407
  var tokenPrefix = "seam_";
408
+ var accessTokenPrefix = "seam_at";
409
+ var jwtPrefix = "ey";
178
410
  var clientSessionTokenPrefix = "seam_cst";
179
411
  var publishableKeyTokenPrefix = "seam_pk";
180
412
  var isClientSessionToken = (token) => token.startsWith(clientSessionTokenPrefix);
181
- var isAccessToken = (token) => token.startsWith("seam_at");
182
- var isJwt = (token) => token.startsWith("ey");
413
+ var isAccessToken = (token) => token.startsWith(accessTokenPrefix);
414
+ var isJwt = (token) => token.startsWith(jwtPrefix);
183
415
  var isSeamToken = (token) => token.startsWith(tokenPrefix);
184
416
  var isPublishableKey = (token) => token.startsWith(publishableKeyTokenPrefix);
185
417
  var isEmail = (value) => /^[^\s@]+@[^\s@]+\.[^\s@]+$/.test(value);
@@ -241,11 +473,13 @@ var createClient = (options) => {
241
473
  paramsSerializer,
242
474
  ...options.axiosOptions
243
475
  });
476
+ axiosBetterStacktrace__default.default(axios__default.default);
244
477
  axiosRetry__default.default(client, {
245
478
  retries: 2,
246
479
  retryDelay: axiosRetry.exponentialDelay,
247
480
  ...options.axiosRetryOptions
248
481
  });
482
+ client.interceptors.response.use(void 0, errorInterceptor);
249
483
  return client;
250
484
  };
251
485
 
@@ -336,6 +570,24 @@ var SeamHttpClientSessions = class _SeamHttpClientSessions {
336
570
  });
337
571
  return _SeamHttpClientSessions.fromClientSessionToken(token, options);
338
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
+ }
339
591
  async create(body) {
340
592
  const { data } = await this.client.request({
341
593
  url: "/client_sessions/create",
@@ -422,6 +674,24 @@ var SeamHttpAccessCodesUnmanaged = class _SeamHttpAccessCodesUnmanaged {
422
674
  });
423
675
  return _SeamHttpAccessCodesUnmanaged.fromClientSessionToken(token, options);
424
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
+ }
425
695
  async convertToManaged(body) {
426
696
  await this.client.request({
427
697
  url: "/access_codes/unmanaged/convert_to_managed",
@@ -500,6 +770,24 @@ var SeamHttpAccessCodes = class _SeamHttpAccessCodes {
500
770
  });
501
771
  return _SeamHttpAccessCodes.fromClientSessionToken(token, options);
502
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
+ }
503
791
  get unmanaged() {
504
792
  return SeamHttpAccessCodesUnmanaged.fromClient(this.client);
505
793
  }
@@ -606,6 +894,24 @@ var SeamHttpAcsAccessGroups = class _SeamHttpAcsAccessGroups {
606
894
  });
607
895
  return _SeamHttpAcsAccessGroups.fromClientSessionToken(token, options);
608
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
+ }
609
915
  async addUser(body) {
610
916
  await this.client.request({
611
917
  url: "/acs/access_groups/add_user",
@@ -705,6 +1011,24 @@ var SeamHttpAcsCredentials = class _SeamHttpAcsCredentials {
705
1011
  });
706
1012
  return _SeamHttpAcsCredentials.fromClientSessionToken(token, options);
707
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
+ }
708
1032
  async create(body) {
709
1033
  const { data } = await this.client.request({
710
1034
  url: "/acs/credentials/create",
@@ -775,6 +1099,24 @@ var SeamHttpAcsSystems = class _SeamHttpAcsSystems {
775
1099
  });
776
1100
  return _SeamHttpAcsSystems.fromClientSessionToken(token, options);
777
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
+ }
778
1120
  async get(body) {
779
1121
  const { data } = await this.client.request({
780
1122
  url: "/acs/systems/get",
@@ -830,6 +1172,24 @@ var SeamHttpAcsUsers = class _SeamHttpAcsUsers {
830
1172
  });
831
1173
  return _SeamHttpAcsUsers.fromClientSessionToken(token, options);
832
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
+ }
833
1193
  async addToAccessGroup(body) {
834
1194
  await this.client.request({
835
1195
  url: "/acs/users/add_to_access_group",
@@ -935,6 +1295,24 @@ var SeamHttpAcs = class _SeamHttpAcs {
935
1295
  });
936
1296
  return _SeamHttpAcs.fromClientSessionToken(token, options);
937
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
+ }
938
1316
  get accessGroups() {
939
1317
  return SeamHttpAcsAccessGroups.fromClient(this.client);
940
1318
  }
@@ -986,6 +1364,24 @@ var SeamHttpActionAttempts = class _SeamHttpActionAttempts {
986
1364
  });
987
1365
  return _SeamHttpActionAttempts.fromClientSessionToken(token, options);
988
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
+ }
989
1385
  async get(body) {
990
1386
  const { data } = await this.client.request({
991
1387
  url: "/action_attempts/get",
@@ -1041,6 +1437,24 @@ var SeamHttpConnectWebviews = class _SeamHttpConnectWebviews {
1041
1437
  });
1042
1438
  return _SeamHttpConnectWebviews.fromClientSessionToken(token, options);
1043
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
+ }
1044
1458
  async create(body) {
1045
1459
  const { data } = await this.client.request({
1046
1460
  url: "/connect_webviews/create",
@@ -1118,6 +1532,24 @@ var SeamHttpConnectedAccounts = class _SeamHttpConnectedAccounts {
1118
1532
  });
1119
1533
  return _SeamHttpConnectedAccounts.fromClientSessionToken(token, options);
1120
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
+ }
1121
1553
  async delete(body) {
1122
1554
  await this.client.request({
1123
1555
  url: "/connected_accounts/delete",
@@ -1180,6 +1612,24 @@ var SeamHttpDevicesUnmanaged = class _SeamHttpDevicesUnmanaged {
1180
1612
  });
1181
1613
  return _SeamHttpDevicesUnmanaged.fromClientSessionToken(token, options);
1182
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
+ }
1183
1633
  async get(body) {
1184
1634
  const { data } = await this.client.request({
1185
1635
  url: "/devices/unmanaged/get",
@@ -1242,6 +1692,24 @@ var SeamHttpDevices = class _SeamHttpDevices {
1242
1692
  });
1243
1693
  return _SeamHttpDevices.fromClientSessionToken(token, options);
1244
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
+ }
1245
1713
  get unmanaged() {
1246
1714
  return SeamHttpDevicesUnmanaged.fromClient(this.client);
1247
1715
  }
@@ -1322,6 +1790,24 @@ var SeamHttpEvents = class _SeamHttpEvents {
1322
1790
  });
1323
1791
  return _SeamHttpEvents.fromClientSessionToken(token, options);
1324
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
+ }
1325
1811
  async get(body) {
1326
1812
  const { data } = await this.client.request({
1327
1813
  url: "/events/get",
@@ -1377,6 +1863,24 @@ var SeamHttpLocks = class _SeamHttpLocks {
1377
1863
  });
1378
1864
  return _SeamHttpLocks.fromClientSessionToken(token, options);
1379
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
+ }
1380
1884
  async get(body) {
1381
1885
  const { data } = await this.client.request({
1382
1886
  url: "/locks/get",
@@ -1451,6 +1955,24 @@ var SeamHttpNoiseSensorsNoiseThresholds = class _SeamHttpNoiseSensorsNoiseThresh
1451
1955
  options
1452
1956
  );
1453
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
+ }
1454
1976
  async create(body) {
1455
1977
  await this.client.request({
1456
1978
  url: "/noise_sensors/noise_thresholds/create",
@@ -1527,6 +2049,24 @@ var SeamHttpNoiseSensors = class _SeamHttpNoiseSensors {
1527
2049
  });
1528
2050
  return _SeamHttpNoiseSensors.fromClientSessionToken(token, options);
1529
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
+ }
1530
2070
  get noiseThresholds() {
1531
2071
  return SeamHttpNoiseSensorsNoiseThresholds.fromClient(this.client);
1532
2072
  }
@@ -1572,6 +2112,24 @@ var SeamHttpThermostatsClimateSettingSchedules = class _SeamHttpThermostatsClima
1572
2112
  options
1573
2113
  );
1574
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
+ }
1575
2133
  async create(body) {
1576
2134
  const { data } = await this.client.request(
1577
2135
  {
@@ -1657,6 +2215,24 @@ var SeamHttpThermostats = class _SeamHttpThermostats {
1657
2215
  });
1658
2216
  return _SeamHttpThermostats.fromClientSessionToken(token, options);
1659
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
+ }
1660
2236
  get climateSettingSchedules() {
1661
2237
  return SeamHttpThermostatsClimateSettingSchedules.fromClient(this.client);
1662
2238
  }
@@ -1757,6 +2333,24 @@ var SeamHttpWebhooks = class _SeamHttpWebhooks {
1757
2333
  });
1758
2334
  return _SeamHttpWebhooks.fromClientSessionToken(token, options);
1759
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
+ }
1760
2354
  async create(body) {
1761
2355
  const { data } = await this.client.request({
1762
2356
  url: "/webhooks/create",
@@ -1827,6 +2421,24 @@ var SeamHttpWorkspaces = class _SeamHttpWorkspaces {
1827
2421
  });
1828
2422
  return _SeamHttpWorkspaces.fromClientSessionToken(token, options);
1829
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
+ }
1830
2442
  async get(params) {
1831
2443
  const { data } = await this.client.request({
1832
2444
  url: "/workspaces/get",
@@ -1889,6 +2501,24 @@ var SeamHttp = class _SeamHttp {
1889
2501
  });
1890
2502
  return _SeamHttp.fromClientSessionToken(token, options);
1891
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
+ }
1892
2522
  get accessCodes() {
1893
2523
  return SeamHttpAccessCodes.fromClient(this.client);
1894
2524
  }
@@ -1939,24 +2569,33 @@ exports.SeamHttpAcsCredentials = SeamHttpAcsCredentials;
1939
2569
  exports.SeamHttpAcsSystems = SeamHttpAcsSystems;
1940
2570
  exports.SeamHttpAcsUsers = SeamHttpAcsUsers;
1941
2571
  exports.SeamHttpActionAttempts = SeamHttpActionAttempts;
2572
+ exports.SeamHttpApiError = SeamHttpApiError;
1942
2573
  exports.SeamHttpClientSessions = SeamHttpClientSessions;
1943
2574
  exports.SeamHttpConnectWebviews = SeamHttpConnectWebviews;
1944
2575
  exports.SeamHttpConnectedAccounts = SeamHttpConnectedAccounts;
1945
2576
  exports.SeamHttpDevices = SeamHttpDevices;
1946
2577
  exports.SeamHttpDevicesUnmanaged = SeamHttpDevicesUnmanaged;
1947
2578
  exports.SeamHttpEvents = SeamHttpEvents;
2579
+ exports.SeamHttpInvalidInputError = SeamHttpInvalidInputError;
1948
2580
  exports.SeamHttpInvalidOptionsError = SeamHttpInvalidOptionsError;
1949
2581
  exports.SeamHttpLocks = SeamHttpLocks;
1950
2582
  exports.SeamHttpNoiseSensors = SeamHttpNoiseSensors;
1951
2583
  exports.SeamHttpNoiseSensorsNoiseThresholds = SeamHttpNoiseSensorsNoiseThresholds;
1952
2584
  exports.SeamHttpThermostats = SeamHttpThermostats;
1953
2585
  exports.SeamHttpThermostatsClimateSettingSchedules = SeamHttpThermostatsClimateSettingSchedules;
2586
+ exports.SeamHttpUnauthorizedError = SeamHttpUnauthorizedError;
1954
2587
  exports.SeamHttpWebhooks = SeamHttpWebhooks;
1955
2588
  exports.SeamHttpWorkspaces = SeamHttpWorkspaces;
1956
2589
  exports.UnserializableParamError = UnserializableParamError;
2590
+ exports.errorInterceptor = errorInterceptor;
2591
+ exports.isSeamHttpApiError = isSeamHttpApiError;
2592
+ exports.isSeamHttpInvalidInputError = isSeamHttpInvalidInputError;
1957
2593
  exports.isSeamHttpOptionsWithApiKey = isSeamHttpOptionsWithApiKey;
1958
2594
  exports.isSeamHttpOptionsWithClient = isSeamHttpOptionsWithClient;
1959
2595
  exports.isSeamHttpOptionsWithClientSessionToken = isSeamHttpOptionsWithClientSessionToken;
2596
+ exports.isSeamHttpOptionsWithConsoleSessionToken = isSeamHttpOptionsWithConsoleSessionToken;
2597
+ exports.isSeamHttpOptionsWithPersonalAccessToken = isSeamHttpOptionsWithPersonalAccessToken;
2598
+ exports.isSeamHttpUnauthorizedError = isSeamHttpUnauthorizedError;
1960
2599
  exports.paramsSerializer = paramsSerializer;
1961
2600
  //# sourceMappingURL=out.js.map
1962
2601
  //# sourceMappingURL=connect.cjs.map