@seamapi/http 0.8.0 → 0.9.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 (116) hide show
  1. package/README.md +14 -1
  2. package/dist/connect.cjs +314 -141
  3. package/dist/connect.cjs.map +1 -1
  4. package/dist/connect.d.cts +89 -75
  5. package/lib/seam/connect/client.d.ts +0 -1
  6. package/lib/seam/connect/client.js +0 -2
  7. package/lib/seam/connect/client.js.map +1 -1
  8. package/lib/seam/connect/options.d.ts +7 -3
  9. package/lib/seam/connect/options.js +2 -1
  10. package/lib/seam/connect/options.js.map +1 -1
  11. package/lib/seam/connect/parse-options.d.ts +9 -3
  12. package/lib/seam/connect/parse-options.js +25 -2
  13. package/lib/seam/connect/parse-options.js.map +1 -1
  14. package/lib/seam/connect/routes/access-codes-unmanaged.d.ts +2 -1
  15. package/lib/seam/connect/routes/access-codes-unmanaged.js +7 -3
  16. package/lib/seam/connect/routes/access-codes-unmanaged.js.map +1 -1
  17. package/lib/seam/connect/routes/access-codes.d.ts +2 -1
  18. package/lib/seam/connect/routes/access-codes.js +8 -4
  19. package/lib/seam/connect/routes/access-codes.js.map +1 -1
  20. package/lib/seam/connect/routes/acs-access-groups.d.ts +2 -1
  21. package/lib/seam/connect/routes/acs-access-groups.js +7 -3
  22. package/lib/seam/connect/routes/acs-access-groups.js.map +1 -1
  23. package/lib/seam/connect/routes/acs-credentials.d.ts +2 -1
  24. package/lib/seam/connect/routes/acs-credentials.js +7 -3
  25. package/lib/seam/connect/routes/acs-credentials.js.map +1 -1
  26. package/lib/seam/connect/routes/acs-systems.d.ts +2 -1
  27. package/lib/seam/connect/routes/acs-systems.js +7 -3
  28. package/lib/seam/connect/routes/acs-systems.js.map +1 -1
  29. package/lib/seam/connect/routes/acs-users.d.ts +2 -1
  30. package/lib/seam/connect/routes/acs-users.js +7 -3
  31. package/lib/seam/connect/routes/acs-users.js.map +1 -1
  32. package/lib/seam/connect/routes/acs.d.ts +2 -1
  33. package/lib/seam/connect/routes/acs.js +11 -7
  34. package/lib/seam/connect/routes/acs.js.map +1 -1
  35. package/lib/seam/connect/routes/action-attempts.d.ts +4 -8
  36. package/lib/seam/connect/routes/action-attempts.js +15 -7
  37. package/lib/seam/connect/routes/action-attempts.js.map +1 -1
  38. package/lib/seam/connect/routes/client-sessions.d.ts +2 -1
  39. package/lib/seam/connect/routes/client-sessions.js +7 -3
  40. package/lib/seam/connect/routes/client-sessions.js.map +1 -1
  41. package/lib/seam/connect/routes/connect-webviews.d.ts +2 -1
  42. package/lib/seam/connect/routes/connect-webviews.js +7 -3
  43. package/lib/seam/connect/routes/connect-webviews.js.map +1 -1
  44. package/lib/seam/connect/routes/connected-accounts.d.ts +2 -1
  45. package/lib/seam/connect/routes/connected-accounts.js +7 -3
  46. package/lib/seam/connect/routes/connected-accounts.js.map +1 -1
  47. package/lib/seam/connect/routes/devices-unmanaged.d.ts +2 -1
  48. package/lib/seam/connect/routes/devices-unmanaged.js +7 -3
  49. package/lib/seam/connect/routes/devices-unmanaged.js.map +1 -1
  50. package/lib/seam/connect/routes/devices.d.ts +2 -1
  51. package/lib/seam/connect/routes/devices.js +8 -4
  52. package/lib/seam/connect/routes/devices.js.map +1 -1
  53. package/lib/seam/connect/routes/events.d.ts +2 -1
  54. package/lib/seam/connect/routes/events.js +7 -3
  55. package/lib/seam/connect/routes/events.js.map +1 -1
  56. package/lib/seam/connect/routes/locks.d.ts +6 -14
  57. package/lib/seam/connect/routes/locks.js +22 -10
  58. package/lib/seam/connect/routes/locks.js.map +1 -1
  59. package/lib/seam/connect/routes/noise-sensors-noise-thresholds.d.ts +2 -1
  60. package/lib/seam/connect/routes/noise-sensors-noise-thresholds.js +7 -3
  61. package/lib/seam/connect/routes/noise-sensors-noise-thresholds.js.map +1 -1
  62. package/lib/seam/connect/routes/noise-sensors.d.ts +2 -1
  63. package/lib/seam/connect/routes/noise-sensors.js +8 -4
  64. package/lib/seam/connect/routes/noise-sensors.js.map +1 -1
  65. package/lib/seam/connect/routes/thermostats-climate-setting-schedules.d.ts +2 -1
  66. package/lib/seam/connect/routes/thermostats-climate-setting-schedules.js +7 -3
  67. package/lib/seam/connect/routes/thermostats-climate-setting-schedules.js.map +1 -1
  68. package/lib/seam/connect/routes/thermostats.d.ts +2 -1
  69. package/lib/seam/connect/routes/thermostats.js +8 -4
  70. package/lib/seam/connect/routes/thermostats.js.map +1 -1
  71. package/lib/seam/connect/routes/user-identities.d.ts +2 -1
  72. package/lib/seam/connect/routes/user-identities.js +7 -3
  73. package/lib/seam/connect/routes/user-identities.js.map +1 -1
  74. package/lib/seam/connect/routes/webhooks.d.ts +2 -1
  75. package/lib/seam/connect/routes/webhooks.js +7 -3
  76. package/lib/seam/connect/routes/webhooks.js.map +1 -1
  77. package/lib/seam/connect/routes/workspaces.d.ts +2 -1
  78. package/lib/seam/connect/routes/workspaces.js +7 -3
  79. package/lib/seam/connect/routes/workspaces.js.map +1 -1
  80. package/lib/seam/connect/seam-http-multi-workspace.d.ts +2 -1
  81. package/lib/seam/connect/seam-http-multi-workspace.js +5 -4
  82. package/lib/seam/connect/seam-http-multi-workspace.js.map +1 -1
  83. package/lib/seam/connect/seam-http.d.ts +2 -1
  84. package/lib/seam/connect/seam-http.js +21 -17
  85. package/lib/seam/connect/seam-http.js.map +1 -1
  86. package/lib/version.d.ts +1 -1
  87. package/lib/version.js +1 -1
  88. package/package.json +17 -7
  89. package/src/lib/seam/connect/client.ts +0 -3
  90. package/src/lib/seam/connect/options.ts +11 -4
  91. package/src/lib/seam/connect/parse-options.ts +43 -4
  92. package/src/lib/seam/connect/routes/access-codes-unmanaged.ts +14 -3
  93. package/src/lib/seam/connect/routes/access-codes.ts +15 -4
  94. package/src/lib/seam/connect/routes/acs-access-groups.ts +14 -3
  95. package/src/lib/seam/connect/routes/acs-credentials.ts +14 -3
  96. package/src/lib/seam/connect/routes/acs-systems.ts +14 -3
  97. package/src/lib/seam/connect/routes/acs-users.ts +14 -3
  98. package/src/lib/seam/connect/routes/acs.ts +18 -7
  99. package/src/lib/seam/connect/routes/action-attempts.ts +26 -16
  100. package/src/lib/seam/connect/routes/client-sessions.ts +14 -3
  101. package/src/lib/seam/connect/routes/connect-webviews.ts +14 -3
  102. package/src/lib/seam/connect/routes/connected-accounts.ts +14 -3
  103. package/src/lib/seam/connect/routes/devices-unmanaged.ts +14 -3
  104. package/src/lib/seam/connect/routes/devices.ts +15 -4
  105. package/src/lib/seam/connect/routes/events.ts +14 -3
  106. package/src/lib/seam/connect/routes/locks.ts +38 -26
  107. package/src/lib/seam/connect/routes/noise-sensors-noise-thresholds.ts +14 -3
  108. package/src/lib/seam/connect/routes/noise-sensors.ts +18 -4
  109. package/src/lib/seam/connect/routes/thermostats-climate-setting-schedules.ts +14 -3
  110. package/src/lib/seam/connect/routes/thermostats.ts +18 -4
  111. package/src/lib/seam/connect/routes/user-identities.ts +14 -3
  112. package/src/lib/seam/connect/routes/webhooks.ts +14 -3
  113. package/src/lib/seam/connect/routes/workspaces.ts +14 -3
  114. package/src/lib/seam/connect/seam-http-multi-workspace.ts +7 -4
  115. package/src/lib/seam/connect/seam-http.ts +25 -17
  116. package/src/lib/version.ts +1 -1
@@ -14,8 +14,9 @@ import {
14
14
  type SeamHttpOptionsWithClientSessionToken,
15
15
  type SeamHttpOptionsWithConsoleSessionToken,
16
16
  type SeamHttpOptionsWithPersonalAccessToken,
17
+ type SeamHttpRequestOptions,
17
18
  } from './options.js'
18
- import { parseOptions } from './parse-options.js'
19
+ import { limitToSeamHttpRequestOptions, parseOptions } from './parse-options.js'
19
20
  import {
20
21
  SeamHttpAccessCodes,
21
22
  SeamHttpAcs,
@@ -35,10 +36,12 @@ import {
35
36
 
36
37
  export class SeamHttp {
37
38
  client: Client
39
+ readonly defaults: Required<SeamHttpRequestOptions>
38
40
 
39
41
  constructor(apiKeyOrOptions: string | SeamHttpOptions = {}) {
40
- const clientOptions = parseOptions(apiKeyOrOptions)
41
- this.client = createClient(clientOptions)
42
+ const options = parseOptions(apiKeyOrOptions)
43
+ this.client = 'client' in options ? options.client : createClient(options)
44
+ this.defaults = limitToSeamHttpRequestOptions(options)
42
45
  }
43
46
 
44
47
  static fromClient(
@@ -84,6 +87,11 @@ export class SeamHttp {
84
87
  ): Promise<SeamHttp> {
85
88
  warnOnInsecureuserIdentifierKey(userIdentifierKey)
86
89
  const clientOptions = parseOptions({ ...options, publishableKey })
90
+ if (isSeamHttpOptionsWithClient(clientOptions)) {
91
+ throw new SeamHttpInvalidOptionsError(
92
+ 'The client option cannot be used with SeamHttp.fromPublishableKey',
93
+ )
94
+ }
87
95
  const client = createClient(clientOptions)
88
96
  const clientSessions = SeamHttpClientSessions.fromClient(client)
89
97
  const { token } = await clientSessions.getOrCreate({
@@ -127,58 +135,58 @@ export class SeamHttp {
127
135
  }
128
136
 
129
137
  get accessCodes(): SeamHttpAccessCodes {
130
- return SeamHttpAccessCodes.fromClient(this.client)
138
+ return SeamHttpAccessCodes.fromClient(this.client, this.defaults)
131
139
  }
132
140
 
133
141
  get acs(): SeamHttpAcs {
134
- return SeamHttpAcs.fromClient(this.client)
142
+ return SeamHttpAcs.fromClient(this.client, this.defaults)
135
143
  }
136
144
 
137
145
  get actionAttempts(): SeamHttpActionAttempts {
138
- return SeamHttpActionAttempts.fromClient(this.client)
146
+ return SeamHttpActionAttempts.fromClient(this.client, this.defaults)
139
147
  }
140
148
 
141
149
  get clientSessions(): SeamHttpClientSessions {
142
- return SeamHttpClientSessions.fromClient(this.client)
150
+ return SeamHttpClientSessions.fromClient(this.client, this.defaults)
143
151
  }
144
152
 
145
153
  get connectedAccounts(): SeamHttpConnectedAccounts {
146
- return SeamHttpConnectedAccounts.fromClient(this.client)
154
+ return SeamHttpConnectedAccounts.fromClient(this.client, this.defaults)
147
155
  }
148
156
 
149
157
  get connectWebviews(): SeamHttpConnectWebviews {
150
- return SeamHttpConnectWebviews.fromClient(this.client)
158
+ return SeamHttpConnectWebviews.fromClient(this.client, this.defaults)
151
159
  }
152
160
 
153
161
  get devices(): SeamHttpDevices {
154
- return SeamHttpDevices.fromClient(this.client)
162
+ return SeamHttpDevices.fromClient(this.client, this.defaults)
155
163
  }
156
164
 
157
165
  get events(): SeamHttpEvents {
158
- return SeamHttpEvents.fromClient(this.client)
166
+ return SeamHttpEvents.fromClient(this.client, this.defaults)
159
167
  }
160
168
 
161
169
  get locks(): SeamHttpLocks {
162
- return SeamHttpLocks.fromClient(this.client)
170
+ return SeamHttpLocks.fromClient(this.client, this.defaults)
163
171
  }
164
172
 
165
173
  get noiseSensors(): SeamHttpNoiseSensors {
166
- return SeamHttpNoiseSensors.fromClient(this.client)
174
+ return SeamHttpNoiseSensors.fromClient(this.client, this.defaults)
167
175
  }
168
176
 
169
177
  get thermostats(): SeamHttpThermostats {
170
- return SeamHttpThermostats.fromClient(this.client)
178
+ return SeamHttpThermostats.fromClient(this.client, this.defaults)
171
179
  }
172
180
 
173
181
  get userIdentities(): SeamHttpUserIdentities {
174
- return SeamHttpUserIdentities.fromClient(this.client)
182
+ return SeamHttpUserIdentities.fromClient(this.client, this.defaults)
175
183
  }
176
184
 
177
185
  get webhooks(): SeamHttpWebhooks {
178
- return SeamHttpWebhooks.fromClient(this.client)
186
+ return SeamHttpWebhooks.fromClient(this.client, this.defaults)
179
187
  }
180
188
 
181
189
  get workspaces(): SeamHttpWorkspaces {
182
- return SeamHttpWorkspaces.fromClient(this.client)
190
+ return SeamHttpWorkspaces.fromClient(this.client, this.defaults)
183
191
  }
184
192
  }
@@ -1,3 +1,3 @@
1
- const seamapiJavascriptHttpVersion = '0.8.0'
1
+ const seamapiJavascriptHttpVersion = '0.9.0'
2
2
 
3
3
  export default seamapiJavascriptHttpVersion