@seamapi/http 0.0.2 → 0.1.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 (115) hide show
  1. package/dist/connect.cjs +1386 -61
  2. package/dist/connect.cjs.map +1 -1
  3. package/dist/connect.d.cts +420 -7
  4. package/lib/seam/connect/auth.d.ts +1 -1
  5. package/lib/seam/connect/auth.js +7 -7
  6. package/lib/seam/connect/auth.js.map +1 -1
  7. package/lib/seam/connect/axios.js +3 -1
  8. package/lib/seam/connect/axios.js.map +1 -1
  9. package/lib/seam/connect/client-options.d.ts +7 -3
  10. package/lib/seam/connect/client-options.js +18 -3
  11. package/lib/seam/connect/client-options.js.map +1 -1
  12. package/lib/seam/connect/client.d.ts +16 -4
  13. package/lib/seam/connect/client.js +55 -28
  14. package/lib/seam/connect/client.js.map +1 -1
  15. package/lib/seam/connect/parse-options.d.ts +1 -1
  16. package/lib/seam/connect/parse-options.js +8 -1
  17. package/lib/seam/connect/parse-options.js.map +1 -1
  18. package/lib/seam/connect/routes/access-codes-unmanaged.d.ts +26 -0
  19. package/lib/seam/connect/routes/access-codes-unmanaged.js +72 -0
  20. package/lib/seam/connect/routes/access-codes-unmanaged.js.map +1 -0
  21. package/lib/seam/connect/routes/access-codes.d.ts +37 -0
  22. package/lib/seam/connect/routes/access-codes.js +101 -0
  23. package/lib/seam/connect/routes/access-codes.js.map +1 -0
  24. package/lib/seam/connect/routes/acs-access-groups.d.ts +35 -0
  25. package/lib/seam/connect/routes/acs-access-groups.js +95 -0
  26. package/lib/seam/connect/routes/acs-access-groups.js.map +1 -0
  27. package/lib/seam/connect/routes/acs-credentials.d.ts +23 -0
  28. package/lib/seam/connect/routes/acs-credentials.js +66 -0
  29. package/lib/seam/connect/routes/acs-credentials.js.map +1 -0
  30. package/lib/seam/connect/routes/acs-systems.d.ts +17 -0
  31. package/lib/seam/connect/routes/acs-systems.js +51 -0
  32. package/lib/seam/connect/routes/acs-systems.js.map +1 -0
  33. package/lib/seam/connect/routes/acs-users.d.ts +32 -0
  34. package/lib/seam/connect/routes/acs-users.js +87 -0
  35. package/lib/seam/connect/routes/acs-users.js.map +1 -0
  36. package/lib/seam/connect/routes/acs.d.ts +17 -0
  37. package/lib/seam/connect/routes/acs.js +51 -0
  38. package/lib/seam/connect/routes/acs.js.map +1 -0
  39. package/lib/seam/connect/routes/action-attempts.d.ts +17 -0
  40. package/lib/seam/connect/routes/action-attempts.js +51 -0
  41. package/lib/seam/connect/routes/action-attempts.js.map +1 -0
  42. package/lib/seam/connect/routes/client-sessions.d.ts +26 -0
  43. package/lib/seam/connect/routes/client-sessions.js +74 -0
  44. package/lib/seam/connect/routes/client-sessions.js.map +1 -0
  45. package/lib/seam/connect/routes/connect-webviews.d.ts +26 -0
  46. package/lib/seam/connect/routes/connect-webviews.js +73 -0
  47. package/lib/seam/connect/routes/connect-webviews.js.map +1 -0
  48. package/lib/seam/connect/routes/connected-accounts.d.ts +20 -0
  49. package/lib/seam/connect/routes/connected-accounts.js +58 -0
  50. package/lib/seam/connect/routes/connected-accounts.js.map +1 -0
  51. package/lib/seam/connect/routes/devices-unmanaged.d.ts +20 -0
  52. package/lib/seam/connect/routes/devices-unmanaged.js +58 -0
  53. package/lib/seam/connect/routes/devices-unmanaged.js.map +1 -0
  54. package/lib/seam/connect/routes/devices.d.ts +28 -0
  55. package/lib/seam/connect/routes/devices.js +77 -0
  56. package/lib/seam/connect/routes/devices.js.map +1 -0
  57. package/lib/seam/connect/routes/events.d.ts +17 -0
  58. package/lib/seam/connect/routes/events.js +51 -0
  59. package/lib/seam/connect/routes/events.js.map +1 -0
  60. package/lib/seam/connect/routes/index.d.ts +21 -0
  61. package/lib/seam/connect/routes/index.js +22 -0
  62. package/lib/seam/connect/routes/index.js.map +1 -0
  63. package/lib/seam/connect/routes/locks.d.ts +23 -0
  64. package/lib/seam/connect/routes/locks.js +67 -0
  65. package/lib/seam/connect/routes/locks.js.map +1 -0
  66. package/lib/seam/connect/routes/noise-sensors-noise-thresholds.d.ts +26 -0
  67. package/lib/seam/connect/routes/noise-sensors-noise-thresholds.js +72 -0
  68. package/lib/seam/connect/routes/noise-sensors-noise-thresholds.js.map +1 -0
  69. package/lib/seam/connect/routes/noise-sensors.d.ts +11 -0
  70. package/lib/seam/connect/routes/noise-sensors.js +39 -0
  71. package/lib/seam/connect/routes/noise-sensors.js.map +1 -0
  72. package/lib/seam/connect/routes/thermostats-climate-setting-schedules.d.ts +26 -0
  73. package/lib/seam/connect/routes/thermostats-climate-setting-schedules.js +73 -0
  74. package/lib/seam/connect/routes/thermostats-climate-setting-schedules.js.map +1 -0
  75. package/lib/seam/connect/routes/thermostats.d.ts +37 -0
  76. package/lib/seam/connect/routes/thermostats.js +97 -0
  77. package/lib/seam/connect/routes/thermostats.js.map +1 -0
  78. package/lib/seam/connect/routes/webhooks.d.ts +23 -0
  79. package/lib/seam/connect/routes/webhooks.js +66 -0
  80. package/lib/seam/connect/routes/webhooks.js.map +1 -0
  81. package/lib/seam/connect/routes/workspaces.d.ts +14 -5
  82. package/lib/seam/connect/routes/workspaces.js +48 -10
  83. package/lib/seam/connect/routes/workspaces.js.map +1 -1
  84. package/package.json +4 -1
  85. package/src/lib/seam/connect/auth.ts +7 -7
  86. package/src/lib/seam/connect/axios.ts +2 -0
  87. package/src/lib/seam/connect/client-options.ts +32 -4
  88. package/src/lib/seam/connect/client.ts +88 -15
  89. package/src/lib/seam/connect/parse-options.ts +16 -2
  90. package/src/lib/seam/connect/routes/access-codes-unmanaged.ts +157 -0
  91. package/src/lib/seam/connect/routes/access-codes.ts +226 -0
  92. package/src/lib/seam/connect/routes/acs-access-groups.ts +207 -0
  93. package/src/lib/seam/connect/routes/acs-credentials.ts +139 -0
  94. package/src/lib/seam/connect/routes/acs-systems.ts +108 -0
  95. package/src/lib/seam/connect/routes/acs-users.ts +187 -0
  96. package/src/lib/seam/connect/routes/acs.ts +85 -0
  97. package/src/lib/seam/connect/routes/action-attempts.ts +104 -0
  98. package/src/lib/seam/connect/routes/client-sessions.ts +159 -0
  99. package/src/lib/seam/connect/routes/connect-webviews.ts +159 -0
  100. package/src/lib/seam/connect/routes/connected-accounts.ts +124 -0
  101. package/src/lib/seam/connect/routes/devices-unmanaged.ts +120 -0
  102. package/src/lib/seam/connect/routes/devices.ts +158 -0
  103. package/src/lib/seam/connect/routes/events.ts +100 -0
  104. package/src/lib/seam/connect/routes/index.ts +21 -0
  105. package/src/lib/seam/connect/routes/locks.ts +138 -0
  106. package/src/lib/seam/connect/routes/noise-sensors-noise-thresholds.ts +154 -0
  107. package/src/lib/seam/connect/routes/noise-sensors.ts +70 -0
  108. package/src/lib/seam/connect/routes/thermostats-climate-setting-schedules.ts +176 -0
  109. package/src/lib/seam/connect/routes/thermostats.ts +206 -0
  110. package/src/lib/seam/connect/routes/webhooks.ts +141 -0
  111. package/src/lib/seam/connect/routes/workspaces.ts +100 -17
  112. package/lib/seam/connect/legacy/workspaces.d.ts +0 -8
  113. package/lib/seam/connect/legacy/workspaces.js +0 -10
  114. package/lib/seam/connect/legacy/workspaces.js.map +0 -1
  115. package/src/lib/seam/connect/legacy/workspaces.ts +0 -26
@@ -1,13 +1,16 @@
1
- import { AxiosRequestConfig, Axios } from 'axios';
2
- import { RouteRequestParams, RouteResponse } from '@seamapi/types/connect';
1
+ import { Axios, AxiosRequestConfig } from 'axios';
2
+ import { RouteRequestBody, RouteResponse, RouteRequestParams } from '@seamapi/types/connect';
3
3
  import { SetNonNullable } from 'type-fest';
4
4
 
5
- type SeamHttpOptions = SeamHttpOptionsWithApiKey | SeamHttpOptionsWithClientSessionToken;
5
+ type SeamHttpOptions = SeamHttpOptionsWithClient | SeamHttpOptionsWithApiKey | SeamHttpOptionsWithClientSessionToken;
6
6
  interface SeamHttpCommonOptions {
7
7
  endpoint?: string;
8
8
  axiosOptions?: AxiosRequestConfig;
9
9
  enableLegacyMethodBehaivor?: boolean;
10
10
  }
11
+ interface SeamHttpOptionsWithClient extends Pick<SeamHttpCommonOptions, 'enableLegacyMethodBehaivor'> {
12
+ client: Axios;
13
+ }
11
14
  interface SeamHttpOptionsWithApiKey extends SeamHttpCommonOptions {
12
15
  apiKey: string;
13
16
  }
@@ -15,21 +18,431 @@ interface SeamHttpOptionsWithClientSessionToken extends SeamHttpCommonOptions {
15
18
  clientSessionToken: string;
16
19
  }
17
20
 
18
- declare class WorkspacesHttp {
21
+ declare class SeamHttpAccessCodesUnmanaged {
22
+ client: Axios;
23
+ constructor(apiKeyOrOptions: string | SeamHttpOptions);
24
+ static fromClient(client: SeamHttpOptionsWithClient['client'], options?: Omit<SeamHttpOptionsWithClient, 'client'>): SeamHttpAccessCodesUnmanaged;
25
+ static fromApiKey(apiKey: SeamHttpOptionsWithApiKey['apiKey'], options?: Omit<SeamHttpOptionsWithApiKey, 'apiKey'>): SeamHttpAccessCodesUnmanaged;
26
+ static fromClientSessionToken(clientSessionToken: SeamHttpOptionsWithClientSessionToken['clientSessionToken'], options?: Omit<SeamHttpOptionsWithClientSessionToken, 'clientSessionToken'>): SeamHttpAccessCodesUnmanaged;
27
+ convertToManaged(body: AccessCodesUnmanagedConvertToManagedBody): Promise<void>;
28
+ delete(body: AccessCodesUnmanagedDeleteBody): Promise<void>;
29
+ get(body: AccessCodesUnmanagedGetBody): Promise<AccessCodesUnmanagedGetResponse['access_code']>;
30
+ list(body: AccessCodesUnmanagedListBody): Promise<AccessCodesUnmanagedListResponse['access_codes']>;
31
+ update(body: AccessCodesUnmanagedUpdateBody): Promise<void>;
32
+ }
33
+ type AccessCodesUnmanagedConvertToManagedBody = SetNonNullable<Required<RouteRequestBody<'/access_codes/unmanaged/convert_to_managed'>>>;
34
+ type AccessCodesUnmanagedDeleteBody = SetNonNullable<Required<RouteRequestBody<'/access_codes/unmanaged/delete'>>>;
35
+ type AccessCodesUnmanagedGetBody = SetNonNullable<Required<RouteRequestBody<'/access_codes/unmanaged/get'>>>;
36
+ type AccessCodesUnmanagedGetResponse = SetNonNullable<Required<RouteResponse<'/access_codes/unmanaged/get'>>>;
37
+ type AccessCodesUnmanagedListBody = SetNonNullable<Required<RouteRequestBody<'/access_codes/unmanaged/list'>>>;
38
+ type AccessCodesUnmanagedListResponse = SetNonNullable<Required<RouteResponse<'/access_codes/unmanaged/list'>>>;
39
+ type AccessCodesUnmanagedUpdateBody = SetNonNullable<Required<RouteRequestBody<'/access_codes/unmanaged/update'>>>;
40
+
41
+ declare class SeamHttpAccessCodes {
42
+ client: Axios;
43
+ constructor(apiKeyOrOptions: string | SeamHttpOptions);
44
+ static fromClient(client: SeamHttpOptionsWithClient['client'], options?: Omit<SeamHttpOptionsWithClient, 'client'>): SeamHttpAccessCodes;
45
+ static fromApiKey(apiKey: SeamHttpOptionsWithApiKey['apiKey'], options?: Omit<SeamHttpOptionsWithApiKey, 'apiKey'>): SeamHttpAccessCodes;
46
+ static fromClientSessionToken(clientSessionToken: SeamHttpOptionsWithClientSessionToken['clientSessionToken'], options?: Omit<SeamHttpOptionsWithClientSessionToken, 'clientSessionToken'>): SeamHttpAccessCodes;
47
+ get unmanaged(): SeamHttpAccessCodesUnmanaged;
48
+ create(body: AccessCodesCreateBody): Promise<AccessCodesCreateResponse['access_code']>;
49
+ createMultiple(body: AccessCodesCreateMultipleBody): Promise<AccessCodesCreateMultipleResponse['access_codes']>;
50
+ delete(body: AccessCodesDeleteBody): Promise<void>;
51
+ generateCode(params?: AccessCodesGenerateCodeParams): Promise<AccessCodesGenerateCodeResponse['generated_code']>;
52
+ get(body: AccessCodesGetBody): Promise<AccessCodesGetResponse['access_code']>;
53
+ list(body: AccessCodesListBody): Promise<AccessCodesListResponse['access_codes']>;
54
+ pullBackupAccessCode(body: AccessCodesPullBackupAccessCodeBody): Promise<AccessCodesPullBackupAccessCodeResponse['backup_access_code']>;
55
+ update(body: AccessCodesUpdateBody): Promise<void>;
56
+ }
57
+ type AccessCodesCreateBody = SetNonNullable<Required<RouteRequestBody<'/access_codes/create'>>>;
58
+ type AccessCodesCreateResponse = SetNonNullable<Required<RouteResponse<'/access_codes/create'>>>;
59
+ type AccessCodesCreateMultipleBody = SetNonNullable<Required<RouteRequestBody<'/access_codes/create_multiple'>>>;
60
+ type AccessCodesCreateMultipleResponse = SetNonNullable<Required<RouteResponse<'/access_codes/create_multiple'>>>;
61
+ type AccessCodesDeleteBody = SetNonNullable<Required<RouteRequestBody<'/access_codes/delete'>>>;
62
+ type AccessCodesGenerateCodeParams = SetNonNullable<Required<RouteRequestParams<'/access_codes/generate_code'>>>;
63
+ type AccessCodesGenerateCodeResponse = SetNonNullable<Required<RouteResponse<'/access_codes/generate_code'>>>;
64
+ type AccessCodesGetBody = SetNonNullable<Required<RouteRequestBody<'/access_codes/get'>>>;
65
+ type AccessCodesGetResponse = SetNonNullable<Required<RouteResponse<'/access_codes/get'>>>;
66
+ type AccessCodesListBody = SetNonNullable<Required<RouteRequestBody<'/access_codes/list'>>>;
67
+ type AccessCodesListResponse = SetNonNullable<Required<RouteResponse<'/access_codes/list'>>>;
68
+ type AccessCodesPullBackupAccessCodeBody = SetNonNullable<Required<RouteRequestBody<'/access_codes/pull_backup_access_code'>>>;
69
+ type AccessCodesPullBackupAccessCodeResponse = SetNonNullable<Required<RouteResponse<'/access_codes/pull_backup_access_code'>>>;
70
+ type AccessCodesUpdateBody = SetNonNullable<Required<RouteRequestBody<'/access_codes/update'>>>;
71
+
72
+ declare class SeamHttpAcsAccessGroups {
73
+ client: Axios;
74
+ constructor(apiKeyOrOptions: string | SeamHttpOptions);
75
+ static fromClient(client: SeamHttpOptionsWithClient['client'], options?: Omit<SeamHttpOptionsWithClient, 'client'>): SeamHttpAcsAccessGroups;
76
+ static fromApiKey(apiKey: SeamHttpOptionsWithApiKey['apiKey'], options?: Omit<SeamHttpOptionsWithApiKey, 'apiKey'>): SeamHttpAcsAccessGroups;
77
+ static fromClientSessionToken(clientSessionToken: SeamHttpOptionsWithClientSessionToken['clientSessionToken'], options?: Omit<SeamHttpOptionsWithClientSessionToken, 'clientSessionToken'>): SeamHttpAcsAccessGroups;
78
+ addUser(body: AcsAccessGroupsAddUserBody): Promise<void>;
79
+ create(body: AcsAccessGroupsCreateBody): Promise<AcsAccessGroupsCreateResponse['acs_access_group']>;
80
+ delete(body: AcsAccessGroupsDeleteBody): Promise<void>;
81
+ get(body: AcsAccessGroupsGetBody): Promise<AcsAccessGroupsGetResponse['acs_access_group']>;
82
+ list(body: AcsAccessGroupsListBody): Promise<AcsAccessGroupsListResponse['acs_access_groups']>;
83
+ listUsers(body: AcsAccessGroupsListUsersBody): Promise<AcsAccessGroupsListUsersResponse['acs_users']>;
84
+ removeUser(body: AcsAccessGroupsRemoveUserBody): Promise<void>;
85
+ update(body: AcsAccessGroupsUpdateBody): Promise<void>;
86
+ }
87
+ type AcsAccessGroupsAddUserBody = SetNonNullable<Required<RouteRequestBody<'/acs/access_groups/add_user'>>>;
88
+ type AcsAccessGroupsCreateBody = SetNonNullable<Required<RouteRequestBody<'/acs/access_groups/create'>>>;
89
+ type AcsAccessGroupsCreateResponse = SetNonNullable<Required<RouteResponse<'/acs/access_groups/create'>>>;
90
+ type AcsAccessGroupsDeleteBody = SetNonNullable<Required<RouteRequestBody<'/acs/access_groups/delete'>>>;
91
+ type AcsAccessGroupsGetBody = SetNonNullable<Required<RouteRequestBody<'/acs/access_groups/get'>>>;
92
+ type AcsAccessGroupsGetResponse = SetNonNullable<Required<RouteResponse<'/acs/access_groups/get'>>>;
93
+ type AcsAccessGroupsListBody = SetNonNullable<Required<RouteRequestBody<'/acs/access_groups/list'>>>;
94
+ type AcsAccessGroupsListResponse = SetNonNullable<Required<RouteResponse<'/acs/access_groups/list'>>>;
95
+ type AcsAccessGroupsListUsersBody = SetNonNullable<Required<RouteRequestBody<'/acs/access_groups/list_users'>>>;
96
+ type AcsAccessGroupsListUsersResponse = SetNonNullable<Required<RouteResponse<'/acs/access_groups/list_users'>>>;
97
+ type AcsAccessGroupsRemoveUserBody = SetNonNullable<Required<RouteRequestBody<'/acs/access_groups/remove_user'>>>;
98
+ type AcsAccessGroupsUpdateBody = SetNonNullable<Required<RouteRequestBody<'/acs/access_groups/update'>>>;
99
+
100
+ declare class SeamHttpAcsCredentials {
101
+ client: Axios;
102
+ constructor(apiKeyOrOptions: string | SeamHttpOptions);
103
+ static fromClient(client: SeamHttpOptionsWithClient['client'], options?: Omit<SeamHttpOptionsWithClient, 'client'>): SeamHttpAcsCredentials;
104
+ static fromApiKey(apiKey: SeamHttpOptionsWithApiKey['apiKey'], options?: Omit<SeamHttpOptionsWithApiKey, 'apiKey'>): SeamHttpAcsCredentials;
105
+ static fromClientSessionToken(clientSessionToken: SeamHttpOptionsWithClientSessionToken['clientSessionToken'], options?: Omit<SeamHttpOptionsWithClientSessionToken, 'clientSessionToken'>): SeamHttpAcsCredentials;
106
+ create(body: AcsCredentialsCreateBody): Promise<AcsCredentialsCreateResponse['acs_credential']>;
107
+ delete(body: AcsCredentialsDeleteBody): Promise<void>;
108
+ get(body: AcsCredentialsGetBody): Promise<AcsCredentialsGetResponse['acs_credential']>;
109
+ list(body: AcsCredentialsListBody): Promise<AcsCredentialsListResponse['acs_credentials']>;
110
+ }
111
+ type AcsCredentialsCreateBody = SetNonNullable<Required<RouteRequestBody<'/acs/credentials/create'>>>;
112
+ type AcsCredentialsCreateResponse = SetNonNullable<Required<RouteResponse<'/acs/credentials/create'>>>;
113
+ type AcsCredentialsDeleteBody = SetNonNullable<Required<RouteRequestBody<'/acs/credentials/delete'>>>;
114
+ type AcsCredentialsGetBody = SetNonNullable<Required<RouteRequestBody<'/acs/credentials/get'>>>;
115
+ type AcsCredentialsGetResponse = SetNonNullable<Required<RouteResponse<'/acs/credentials/get'>>>;
116
+ type AcsCredentialsListBody = SetNonNullable<Required<RouteRequestBody<'/acs/credentials/list'>>>;
117
+ type AcsCredentialsListResponse = SetNonNullable<Required<RouteResponse<'/acs/credentials/list'>>>;
118
+
119
+ declare class SeamHttpAcsSystems {
120
+ client: Axios;
121
+ constructor(apiKeyOrOptions: string | SeamHttpOptions);
122
+ static fromClient(client: SeamHttpOptionsWithClient['client'], options?: Omit<SeamHttpOptionsWithClient, 'client'>): SeamHttpAcsSystems;
123
+ static fromApiKey(apiKey: SeamHttpOptionsWithApiKey['apiKey'], options?: Omit<SeamHttpOptionsWithApiKey, 'apiKey'>): SeamHttpAcsSystems;
124
+ static fromClientSessionToken(clientSessionToken: SeamHttpOptionsWithClientSessionToken['clientSessionToken'], options?: Omit<SeamHttpOptionsWithClientSessionToken, 'clientSessionToken'>): SeamHttpAcsSystems;
125
+ get(body: AcsSystemsGetBody): Promise<AcsSystemsGetResponse['acs_system']>;
126
+ list(params?: AcsSystemsListParams): Promise<AcsSystemsListResponse['acs_systems']>;
127
+ }
128
+ type AcsSystemsGetBody = SetNonNullable<Required<RouteRequestBody<'/acs/systems/get'>>>;
129
+ type AcsSystemsGetResponse = SetNonNullable<Required<RouteResponse<'/acs/systems/get'>>>;
130
+ type AcsSystemsListParams = SetNonNullable<Required<RouteRequestParams<'/acs/systems/list'>>>;
131
+ type AcsSystemsListResponse = SetNonNullable<Required<RouteResponse<'/acs/systems/list'>>>;
132
+
133
+ declare class SeamHttpAcsUsers {
134
+ client: Axios;
135
+ constructor(apiKeyOrOptions: string | SeamHttpOptions);
136
+ static fromClient(client: SeamHttpOptionsWithClient['client'], options?: Omit<SeamHttpOptionsWithClient, 'client'>): SeamHttpAcsUsers;
137
+ static fromApiKey(apiKey: SeamHttpOptionsWithApiKey['apiKey'], options?: Omit<SeamHttpOptionsWithApiKey, 'apiKey'>): SeamHttpAcsUsers;
138
+ static fromClientSessionToken(clientSessionToken: SeamHttpOptionsWithClientSessionToken['clientSessionToken'], options?: Omit<SeamHttpOptionsWithClientSessionToken, 'clientSessionToken'>): SeamHttpAcsUsers;
139
+ addToAccessGroup(body: AcsUsersAddToAccessGroupBody): Promise<void>;
140
+ create(body: AcsUsersCreateBody): Promise<AcsUsersCreateResponse['acs_user']>;
141
+ delete(body: AcsUsersDeleteBody): Promise<void>;
142
+ get(body: AcsUsersGetBody): Promise<AcsUsersGetResponse['acs_user']>;
143
+ list(body: AcsUsersListBody): Promise<AcsUsersListResponse['acs_users']>;
144
+ removeFromAccessGroup(body: AcsUsersRemoveFromAccessGroupBody): Promise<void>;
145
+ update(body: AcsUsersUpdateBody): Promise<void>;
146
+ }
147
+ type AcsUsersAddToAccessGroupBody = SetNonNullable<Required<RouteRequestBody<'/acs/users/add_to_access_group'>>>;
148
+ type AcsUsersCreateBody = SetNonNullable<Required<RouteRequestBody<'/acs/users/create'>>>;
149
+ type AcsUsersCreateResponse = SetNonNullable<Required<RouteResponse<'/acs/users/create'>>>;
150
+ type AcsUsersDeleteBody = SetNonNullable<Required<RouteRequestBody<'/acs/users/delete'>>>;
151
+ type AcsUsersGetBody = SetNonNullable<Required<RouteRequestBody<'/acs/users/get'>>>;
152
+ type AcsUsersGetResponse = SetNonNullable<Required<RouteResponse<'/acs/users/get'>>>;
153
+ type AcsUsersListBody = SetNonNullable<Required<RouteRequestBody<'/acs/users/list'>>>;
154
+ type AcsUsersListResponse = SetNonNullable<Required<RouteResponse<'/acs/users/list'>>>;
155
+ type AcsUsersRemoveFromAccessGroupBody = SetNonNullable<Required<RouteRequestBody<'/acs/users/remove_from_access_group'>>>;
156
+ type AcsUsersUpdateBody = SetNonNullable<Required<RouteRequestBody<'/acs/users/update'>>>;
157
+
158
+ declare class SeamHttpAcs {
159
+ client: Axios;
160
+ constructor(apiKeyOrOptions: string | SeamHttpOptions);
161
+ static fromClient(client: SeamHttpOptionsWithClient['client'], options?: Omit<SeamHttpOptionsWithClient, 'client'>): SeamHttpAcs;
162
+ static fromApiKey(apiKey: SeamHttpOptionsWithApiKey['apiKey'], options?: Omit<SeamHttpOptionsWithApiKey, 'apiKey'>): SeamHttpAcs;
163
+ static fromClientSessionToken(clientSessionToken: SeamHttpOptionsWithClientSessionToken['clientSessionToken'], options?: Omit<SeamHttpOptionsWithClientSessionToken, 'clientSessionToken'>): SeamHttpAcs;
164
+ get accessGroups(): SeamHttpAcsAccessGroups;
165
+ get credentials(): SeamHttpAcsCredentials;
166
+ get systems(): SeamHttpAcsSystems;
167
+ get users(): SeamHttpAcsUsers;
168
+ }
169
+
170
+ declare class SeamHttpActionAttempts {
171
+ client: Axios;
172
+ constructor(apiKeyOrOptions: string | SeamHttpOptions);
173
+ static fromClient(client: SeamHttpOptionsWithClient['client'], options?: Omit<SeamHttpOptionsWithClient, 'client'>): SeamHttpActionAttempts;
174
+ static fromApiKey(apiKey: SeamHttpOptionsWithApiKey['apiKey'], options?: Omit<SeamHttpOptionsWithApiKey, 'apiKey'>): SeamHttpActionAttempts;
175
+ static fromClientSessionToken(clientSessionToken: SeamHttpOptionsWithClientSessionToken['clientSessionToken'], options?: Omit<SeamHttpOptionsWithClientSessionToken, 'clientSessionToken'>): SeamHttpActionAttempts;
176
+ get(body: ActionAttemptsGetBody): Promise<ActionAttemptsGetResponse['action_attempt']>;
177
+ list(body: ActionAttemptsListBody): Promise<ActionAttemptsListResponse['action_attempts']>;
178
+ }
179
+ type ActionAttemptsGetBody = SetNonNullable<Required<RouteRequestBody<'/action_attempts/get'>>>;
180
+ type ActionAttemptsGetResponse = SetNonNullable<Required<RouteResponse<'/action_attempts/get'>>>;
181
+ type ActionAttemptsListBody = SetNonNullable<Required<RouteRequestBody<'/action_attempts/list'>>>;
182
+ type ActionAttemptsListResponse = SetNonNullable<Required<RouteResponse<'/action_attempts/list'>>>;
183
+
184
+ declare class SeamHttpClientSessions {
185
+ client: Axios;
186
+ constructor(apiKeyOrOptions: string | SeamHttpOptions);
187
+ static fromClient(client: SeamHttpOptionsWithClient['client'], options?: Omit<SeamHttpOptionsWithClient, 'client'>): SeamHttpClientSessions;
188
+ static fromApiKey(apiKey: SeamHttpOptionsWithApiKey['apiKey'], options?: Omit<SeamHttpOptionsWithApiKey, 'apiKey'>): SeamHttpClientSessions;
189
+ static fromClientSessionToken(clientSessionToken: SeamHttpOptionsWithClientSessionToken['clientSessionToken'], options?: Omit<SeamHttpOptionsWithClientSessionToken, 'clientSessionToken'>): SeamHttpClientSessions;
190
+ create(body: ClientSessionsCreateBody): Promise<ClientSessionsCreateResponse['client_session']>;
191
+ delete(body: ClientSessionsDeleteBody): Promise<void>;
192
+ get(body: ClientSessionsGetBody): Promise<ClientSessionsGetResponse['client_session']>;
193
+ grantAccess(body: ClientSessionsGrantAccessBody): Promise<ClientSessionsGrantAccessResponse['client_session']>;
194
+ list(body: ClientSessionsListBody): Promise<ClientSessionsListResponse['client_sessions']>;
195
+ }
196
+ type ClientSessionsCreateBody = SetNonNullable<Required<RouteRequestBody<'/client_sessions/create'>>>;
197
+ type ClientSessionsCreateResponse = SetNonNullable<Required<RouteResponse<'/client_sessions/create'>>>;
198
+ type ClientSessionsDeleteBody = SetNonNullable<Required<RouteRequestBody<'/client_sessions/delete'>>>;
199
+ type ClientSessionsGetBody = SetNonNullable<Required<RouteRequestBody<'/client_sessions/get'>>>;
200
+ type ClientSessionsGetResponse = SetNonNullable<Required<RouteResponse<'/client_sessions/get'>>>;
201
+ type ClientSessionsGrantAccessBody = SetNonNullable<Required<RouteRequestBody<'/client_sessions/grant_access'>>>;
202
+ type ClientSessionsGrantAccessResponse = SetNonNullable<Required<RouteResponse<'/client_sessions/grant_access'>>>;
203
+ type ClientSessionsListBody = SetNonNullable<Required<RouteRequestBody<'/client_sessions/list'>>>;
204
+ type ClientSessionsListResponse = SetNonNullable<Required<RouteResponse<'/client_sessions/list'>>>;
205
+
206
+ declare class SeamHttpConnectWebviews {
207
+ client: Axios;
208
+ constructor(apiKeyOrOptions: string | SeamHttpOptions);
209
+ static fromClient(client: SeamHttpOptionsWithClient['client'], options?: Omit<SeamHttpOptionsWithClient, 'client'>): SeamHttpConnectWebviews;
210
+ static fromApiKey(apiKey: SeamHttpOptionsWithApiKey['apiKey'], options?: Omit<SeamHttpOptionsWithApiKey, 'apiKey'>): SeamHttpConnectWebviews;
211
+ static fromClientSessionToken(clientSessionToken: SeamHttpOptionsWithClientSessionToken['clientSessionToken'], options?: Omit<SeamHttpOptionsWithClientSessionToken, 'clientSessionToken'>): SeamHttpConnectWebviews;
212
+ create(body: ConnectWebviewsCreateBody): Promise<ConnectWebviewsCreateResponse['connect_webview']>;
213
+ delete(body: ConnectWebviewsDeleteBody): Promise<void>;
214
+ get(body: ConnectWebviewsGetBody): Promise<ConnectWebviewsGetResponse['connect_webview']>;
215
+ list(params?: ConnectWebviewsListParams): Promise<ConnectWebviewsListResponse['connect_webviews']>;
216
+ view(params?: ConnectWebviewsViewParams): Promise<void>;
217
+ }
218
+ type ConnectWebviewsCreateBody = SetNonNullable<Required<RouteRequestBody<'/connect_webviews/create'>>>;
219
+ type ConnectWebviewsCreateResponse = SetNonNullable<Required<RouteResponse<'/connect_webviews/create'>>>;
220
+ type ConnectWebviewsDeleteBody = SetNonNullable<Required<RouteRequestBody<'/connect_webviews/delete'>>>;
221
+ type ConnectWebviewsGetBody = SetNonNullable<Required<RouteRequestBody<'/connect_webviews/get'>>>;
222
+ type ConnectWebviewsGetResponse = SetNonNullable<Required<RouteResponse<'/connect_webviews/get'>>>;
223
+ type ConnectWebviewsListParams = SetNonNullable<Required<RouteRequestParams<'/connect_webviews/list'>>>;
224
+ type ConnectWebviewsListResponse = SetNonNullable<Required<RouteResponse<'/connect_webviews/list'>>>;
225
+ type ConnectWebviewsViewParams = SetNonNullable<Required<RouteRequestParams<'/connect_webviews/view'>>>;
226
+
227
+ declare class SeamHttpConnectedAccounts {
19
228
  client: Axios;
20
- constructor(apiKeyOrOptionsOrClient: Axios | string | SeamHttpOptions);
229
+ constructor(apiKeyOrOptions: string | SeamHttpOptions);
230
+ static fromClient(client: SeamHttpOptionsWithClient['client'], options?: Omit<SeamHttpOptionsWithClient, 'client'>): SeamHttpConnectedAccounts;
231
+ static fromApiKey(apiKey: SeamHttpOptionsWithApiKey['apiKey'], options?: Omit<SeamHttpOptionsWithApiKey, 'apiKey'>): SeamHttpConnectedAccounts;
232
+ static fromClientSessionToken(clientSessionToken: SeamHttpOptionsWithClientSessionToken['clientSessionToken'], options?: Omit<SeamHttpOptionsWithClientSessionToken, 'clientSessionToken'>): SeamHttpConnectedAccounts;
233
+ delete(body: ConnectedAccountsDeleteBody): Promise<void>;
234
+ get(body: ConnectedAccountsGetBody): Promise<ConnectedAccountsGetResponse['connected_account']>;
235
+ list(params?: ConnectedAccountsListParams): Promise<ConnectedAccountsListResponse['connected_accounts']>;
236
+ }
237
+ type ConnectedAccountsDeleteBody = SetNonNullable<Required<RouteRequestBody<'/connected_accounts/delete'>>>;
238
+ type ConnectedAccountsGetBody = SetNonNullable<Required<RouteRequestBody<'/connected_accounts/get'>>>;
239
+ type ConnectedAccountsGetResponse = SetNonNullable<Required<RouteResponse<'/connected_accounts/get'>>>;
240
+ type ConnectedAccountsListParams = SetNonNullable<Required<RouteRequestParams<'/connected_accounts/list'>>>;
241
+ type ConnectedAccountsListResponse = SetNonNullable<Required<RouteResponse<'/connected_accounts/list'>>>;
242
+
243
+ declare class SeamHttpDevicesUnmanaged {
244
+ client: Axios;
245
+ constructor(apiKeyOrOptions: string | SeamHttpOptions);
246
+ static fromClient(client: SeamHttpOptionsWithClient['client'], options?: Omit<SeamHttpOptionsWithClient, 'client'>): SeamHttpDevicesUnmanaged;
247
+ static fromApiKey(apiKey: SeamHttpOptionsWithApiKey['apiKey'], options?: Omit<SeamHttpOptionsWithApiKey, 'apiKey'>): SeamHttpDevicesUnmanaged;
248
+ static fromClientSessionToken(clientSessionToken: SeamHttpOptionsWithClientSessionToken['clientSessionToken'], options?: Omit<SeamHttpOptionsWithClientSessionToken, 'clientSessionToken'>): SeamHttpDevicesUnmanaged;
249
+ get(body: DevicesUnmanagedGetBody): Promise<DevicesUnmanagedGetResponse['device']>;
250
+ list(body: DevicesUnmanagedListBody): Promise<DevicesUnmanagedListResponse['devices']>;
251
+ update(body: DevicesUnmanagedUpdateBody): Promise<void>;
252
+ }
253
+ type DevicesUnmanagedGetBody = SetNonNullable<Required<RouteRequestBody<'/devices/unmanaged/get'>>>;
254
+ type DevicesUnmanagedGetResponse = SetNonNullable<Required<RouteResponse<'/devices/unmanaged/get'>>>;
255
+ type DevicesUnmanagedListBody = SetNonNullable<Required<RouteRequestBody<'/devices/unmanaged/list'>>>;
256
+ type DevicesUnmanagedListResponse = SetNonNullable<Required<RouteResponse<'/devices/unmanaged/list'>>>;
257
+ type DevicesUnmanagedUpdateBody = SetNonNullable<Required<RouteRequestBody<'/devices/unmanaged/update'>>>;
258
+
259
+ declare class SeamHttpDevices {
260
+ client: Axios;
261
+ constructor(apiKeyOrOptions: string | SeamHttpOptions);
262
+ static fromClient(client: SeamHttpOptionsWithClient['client'], options?: Omit<SeamHttpOptionsWithClient, 'client'>): SeamHttpDevices;
263
+ static fromApiKey(apiKey: SeamHttpOptionsWithApiKey['apiKey'], options?: Omit<SeamHttpOptionsWithApiKey, 'apiKey'>): SeamHttpDevices;
264
+ static fromClientSessionToken(clientSessionToken: SeamHttpOptionsWithClientSessionToken['clientSessionToken'], options?: Omit<SeamHttpOptionsWithClientSessionToken, 'clientSessionToken'>): SeamHttpDevices;
265
+ get unmanaged(): SeamHttpDevicesUnmanaged;
266
+ delete(body: DevicesDeleteBody): Promise<void>;
267
+ get(body: DevicesGetBody): Promise<DevicesGetResponse['device']>;
268
+ list(body: DevicesListBody): Promise<DevicesListResponse['devices']>;
269
+ listDeviceProviders(body: DevicesListDeviceProvidersBody): Promise<DevicesListDeviceProvidersResponse['device_providers']>;
270
+ update(body: DevicesUpdateBody): Promise<void>;
271
+ }
272
+ type DevicesDeleteBody = SetNonNullable<Required<RouteRequestBody<'/devices/delete'>>>;
273
+ type DevicesGetBody = SetNonNullable<Required<RouteRequestBody<'/devices/get'>>>;
274
+ type DevicesGetResponse = SetNonNullable<Required<RouteResponse<'/devices/get'>>>;
275
+ type DevicesListBody = SetNonNullable<Required<RouteRequestBody<'/devices/list'>>>;
276
+ type DevicesListResponse = SetNonNullable<Required<RouteResponse<'/devices/list'>>>;
277
+ type DevicesListDeviceProvidersBody = SetNonNullable<Required<RouteRequestBody<'/devices/list_device_providers'>>>;
278
+ type DevicesListDeviceProvidersResponse = SetNonNullable<Required<RouteResponse<'/devices/list_device_providers'>>>;
279
+ type DevicesUpdateBody = SetNonNullable<Required<RouteRequestBody<'/devices/update'>>>;
280
+
281
+ declare class SeamHttpEvents {
282
+ client: Axios;
283
+ constructor(apiKeyOrOptions: string | SeamHttpOptions);
284
+ static fromClient(client: SeamHttpOptionsWithClient['client'], options?: Omit<SeamHttpOptionsWithClient, 'client'>): SeamHttpEvents;
285
+ static fromApiKey(apiKey: SeamHttpOptionsWithApiKey['apiKey'], options?: Omit<SeamHttpOptionsWithApiKey, 'apiKey'>): SeamHttpEvents;
286
+ static fromClientSessionToken(clientSessionToken: SeamHttpOptionsWithClientSessionToken['clientSessionToken'], options?: Omit<SeamHttpOptionsWithClientSessionToken, 'clientSessionToken'>): SeamHttpEvents;
287
+ get(body: EventsGetBody): Promise<EventsGetResponse['event']>;
288
+ list(body: EventsListBody): Promise<EventsListResponse['events']>;
289
+ }
290
+ type EventsGetBody = SetNonNullable<Required<RouteRequestBody<'/events/get'>>>;
291
+ type EventsGetResponse = SetNonNullable<Required<RouteResponse<'/events/get'>>>;
292
+ type EventsListBody = SetNonNullable<Required<RouteRequestBody<'/events/list'>>>;
293
+ type EventsListResponse = SetNonNullable<Required<RouteResponse<'/events/list'>>>;
294
+
295
+ declare class SeamHttpLocks {
296
+ client: Axios;
297
+ constructor(apiKeyOrOptions: string | SeamHttpOptions);
298
+ static fromClient(client: SeamHttpOptionsWithClient['client'], options?: Omit<SeamHttpOptionsWithClient, 'client'>): SeamHttpLocks;
299
+ static fromApiKey(apiKey: SeamHttpOptionsWithApiKey['apiKey'], options?: Omit<SeamHttpOptionsWithApiKey, 'apiKey'>): SeamHttpLocks;
300
+ static fromClientSessionToken(clientSessionToken: SeamHttpOptionsWithClientSessionToken['clientSessionToken'], options?: Omit<SeamHttpOptionsWithClientSessionToken, 'clientSessionToken'>): SeamHttpLocks;
301
+ get(body: LocksGetBody): Promise<LocksGetResponse['device']>;
302
+ list(body: LocksListBody): Promise<LocksListResponse['devices']>;
303
+ lockDoor(body: LocksLockDoorBody): Promise<LocksLockDoorResponse['action_attempt']>;
304
+ unlockDoor(body: LocksUnlockDoorBody): Promise<LocksUnlockDoorResponse['action_attempt']>;
305
+ }
306
+ type LocksGetBody = SetNonNullable<Required<RouteRequestBody<'/locks/get'>>>;
307
+ type LocksGetResponse = SetNonNullable<Required<RouteResponse<'/locks/get'>>>;
308
+ type LocksListBody = SetNonNullable<Required<RouteRequestBody<'/locks/list'>>>;
309
+ type LocksListResponse = SetNonNullable<Required<RouteResponse<'/locks/list'>>>;
310
+ type LocksLockDoorBody = SetNonNullable<Required<RouteRequestBody<'/locks/lock_door'>>>;
311
+ type LocksLockDoorResponse = SetNonNullable<Required<RouteResponse<'/locks/lock_door'>>>;
312
+ type LocksUnlockDoorBody = SetNonNullable<Required<RouteRequestBody<'/locks/unlock_door'>>>;
313
+ type LocksUnlockDoorResponse = SetNonNullable<Required<RouteResponse<'/locks/unlock_door'>>>;
314
+
315
+ declare class SeamHttpNoiseSensorsNoiseThresholds {
316
+ client: Axios;
317
+ constructor(apiKeyOrOptions: string | SeamHttpOptions);
318
+ static fromClient(client: SeamHttpOptionsWithClient['client'], options?: Omit<SeamHttpOptionsWithClient, 'client'>): SeamHttpNoiseSensorsNoiseThresholds;
319
+ static fromApiKey(apiKey: SeamHttpOptionsWithApiKey['apiKey'], options?: Omit<SeamHttpOptionsWithApiKey, 'apiKey'>): SeamHttpNoiseSensorsNoiseThresholds;
320
+ static fromClientSessionToken(clientSessionToken: SeamHttpOptionsWithClientSessionToken['clientSessionToken'], options?: Omit<SeamHttpOptionsWithClientSessionToken, 'clientSessionToken'>): SeamHttpNoiseSensorsNoiseThresholds;
321
+ create(body: NoiseSensorsNoiseThresholdsCreateBody): Promise<void>;
322
+ delete(body: NoiseSensorsNoiseThresholdsDeleteBody): Promise<void>;
323
+ get(body: NoiseSensorsNoiseThresholdsGetBody): Promise<NoiseSensorsNoiseThresholdsGetResponse['noise_threshold']>;
324
+ list(body: NoiseSensorsNoiseThresholdsListBody): Promise<NoiseSensorsNoiseThresholdsListResponse['noise_thresholds']>;
325
+ update(body: NoiseSensorsNoiseThresholdsUpdateBody): Promise<void>;
326
+ }
327
+ type NoiseSensorsNoiseThresholdsCreateBody = SetNonNullable<Required<RouteRequestBody<'/noise_sensors/noise_thresholds/create'>>>;
328
+ type NoiseSensorsNoiseThresholdsDeleteBody = SetNonNullable<Required<RouteRequestBody<'/noise_sensors/noise_thresholds/delete'>>>;
329
+ type NoiseSensorsNoiseThresholdsGetBody = SetNonNullable<Required<RouteRequestBody<'/noise_sensors/noise_thresholds/get'>>>;
330
+ type NoiseSensorsNoiseThresholdsGetResponse = SetNonNullable<Required<RouteResponse<'/noise_sensors/noise_thresholds/get'>>>;
331
+ type NoiseSensorsNoiseThresholdsListBody = SetNonNullable<Required<RouteRequestBody<'/noise_sensors/noise_thresholds/list'>>>;
332
+ type NoiseSensorsNoiseThresholdsListResponse = SetNonNullable<Required<RouteResponse<'/noise_sensors/noise_thresholds/list'>>>;
333
+ type NoiseSensorsNoiseThresholdsUpdateBody = SetNonNullable<Required<RouteRequestBody<'/noise_sensors/noise_thresholds/update'>>>;
334
+
335
+ declare class SeamHttpNoiseSensors {
336
+ client: Axios;
337
+ constructor(apiKeyOrOptions: string | SeamHttpOptions);
338
+ static fromClient(client: SeamHttpOptionsWithClient['client'], options?: Omit<SeamHttpOptionsWithClient, 'client'>): SeamHttpNoiseSensors;
339
+ static fromApiKey(apiKey: SeamHttpOptionsWithApiKey['apiKey'], options?: Omit<SeamHttpOptionsWithApiKey, 'apiKey'>): SeamHttpNoiseSensors;
340
+ static fromClientSessionToken(clientSessionToken: SeamHttpOptionsWithClientSessionToken['clientSessionToken'], options?: Omit<SeamHttpOptionsWithClientSessionToken, 'clientSessionToken'>): SeamHttpNoiseSensors;
341
+ get noiseThresholds(): SeamHttpNoiseSensorsNoiseThresholds;
342
+ }
343
+
344
+ declare class SeamHttpThermostatsClimateSettingSchedules {
345
+ client: Axios;
346
+ constructor(apiKeyOrOptions: string | SeamHttpOptions);
347
+ static fromClient(client: SeamHttpOptionsWithClient['client'], options?: Omit<SeamHttpOptionsWithClient, 'client'>): SeamHttpThermostatsClimateSettingSchedules;
348
+ static fromApiKey(apiKey: SeamHttpOptionsWithApiKey['apiKey'], options?: Omit<SeamHttpOptionsWithApiKey, 'apiKey'>): SeamHttpThermostatsClimateSettingSchedules;
349
+ static fromClientSessionToken(clientSessionToken: SeamHttpOptionsWithClientSessionToken['clientSessionToken'], options?: Omit<SeamHttpOptionsWithClientSessionToken, 'clientSessionToken'>): SeamHttpThermostatsClimateSettingSchedules;
350
+ create(body: ThermostatsClimateSettingSchedulesCreateBody): Promise<ThermostatsClimateSettingSchedulesCreateResponse['climate_setting_schedule']>;
351
+ delete(body: ThermostatsClimateSettingSchedulesDeleteBody): Promise<void>;
352
+ get(body: ThermostatsClimateSettingSchedulesGetBody): Promise<ThermostatsClimateSettingSchedulesGetResponse['climate_setting_schedule']>;
353
+ list(body: ThermostatsClimateSettingSchedulesListBody): Promise<ThermostatsClimateSettingSchedulesListResponse['climate_setting_schedules']>;
354
+ update(body: ThermostatsClimateSettingSchedulesUpdateBody): Promise<void>;
355
+ }
356
+ type ThermostatsClimateSettingSchedulesCreateBody = SetNonNullable<Required<RouteRequestBody<'/thermostats/climate_setting_schedules/create'>>>;
357
+ type ThermostatsClimateSettingSchedulesCreateResponse = SetNonNullable<Required<RouteResponse<'/thermostats/climate_setting_schedules/create'>>>;
358
+ type ThermostatsClimateSettingSchedulesDeleteBody = SetNonNullable<Required<RouteRequestBody<'/thermostats/climate_setting_schedules/delete'>>>;
359
+ type ThermostatsClimateSettingSchedulesGetBody = SetNonNullable<Required<RouteRequestBody<'/thermostats/climate_setting_schedules/get'>>>;
360
+ type ThermostatsClimateSettingSchedulesGetResponse = SetNonNullable<Required<RouteResponse<'/thermostats/climate_setting_schedules/get'>>>;
361
+ type ThermostatsClimateSettingSchedulesListBody = SetNonNullable<Required<RouteRequestBody<'/thermostats/climate_setting_schedules/list'>>>;
362
+ type ThermostatsClimateSettingSchedulesListResponse = SetNonNullable<Required<RouteResponse<'/thermostats/climate_setting_schedules/list'>>>;
363
+ type ThermostatsClimateSettingSchedulesUpdateBody = SetNonNullable<Required<RouteRequestBody<'/thermostats/climate_setting_schedules/update'>>>;
364
+
365
+ declare class SeamHttpThermostats {
366
+ client: Axios;
367
+ constructor(apiKeyOrOptions: string | SeamHttpOptions);
368
+ static fromClient(client: SeamHttpOptionsWithClient['client'], options?: Omit<SeamHttpOptionsWithClient, 'client'>): SeamHttpThermostats;
369
+ static fromApiKey(apiKey: SeamHttpOptionsWithApiKey['apiKey'], options?: Omit<SeamHttpOptionsWithApiKey, 'apiKey'>): SeamHttpThermostats;
370
+ static fromClientSessionToken(clientSessionToken: SeamHttpOptionsWithClientSessionToken['clientSessionToken'], options?: Omit<SeamHttpOptionsWithClientSessionToken, 'clientSessionToken'>): SeamHttpThermostats;
371
+ get climateSettingSchedules(): SeamHttpThermostatsClimateSettingSchedules;
372
+ cool(body: ThermostatsCoolBody): Promise<void>;
373
+ get(body: ThermostatsGetBody): Promise<ThermostatsGetResponse['thermostat']>;
374
+ heat(body: ThermostatsHeatBody): Promise<void>;
375
+ heatCool(body: ThermostatsHeatCoolBody): Promise<void>;
376
+ list(body: ThermostatsListBody): Promise<ThermostatsListResponse['thermostats']>;
377
+ off(body: ThermostatsOffBody): Promise<void>;
378
+ setFanMode(body: ThermostatsSetFanModeBody): Promise<void>;
379
+ update(body: ThermostatsUpdateBody): Promise<void>;
380
+ }
381
+ type ThermostatsCoolBody = SetNonNullable<Required<RouteRequestBody<'/thermostats/cool'>>>;
382
+ type ThermostatsGetBody = SetNonNullable<Required<RouteRequestBody<'/thermostats/get'>>>;
383
+ type ThermostatsGetResponse = SetNonNullable<Required<RouteResponse<'/thermostats/get'>>>;
384
+ type ThermostatsHeatBody = SetNonNullable<Required<RouteRequestBody<'/thermostats/heat'>>>;
385
+ type ThermostatsHeatCoolBody = SetNonNullable<Required<RouteRequestBody<'/thermostats/heat_cool'>>>;
386
+ type ThermostatsListBody = SetNonNullable<Required<RouteRequestBody<'/thermostats/list'>>>;
387
+ type ThermostatsListResponse = SetNonNullable<Required<RouteResponse<'/thermostats/list'>>>;
388
+ type ThermostatsOffBody = SetNonNullable<Required<RouteRequestBody<'/thermostats/off'>>>;
389
+ type ThermostatsSetFanModeBody = SetNonNullable<Required<RouteRequestBody<'/thermostats/set_fan_mode'>>>;
390
+ type ThermostatsUpdateBody = SetNonNullable<Required<RouteRequestBody<'/thermostats/update'>>>;
391
+
392
+ declare class SeamHttpWebhooks {
393
+ client: Axios;
394
+ constructor(apiKeyOrOptions: string | SeamHttpOptions);
395
+ static fromClient(client: SeamHttpOptionsWithClient['client'], options?: Omit<SeamHttpOptionsWithClient, 'client'>): SeamHttpWebhooks;
396
+ static fromApiKey(apiKey: SeamHttpOptionsWithApiKey['apiKey'], options?: Omit<SeamHttpOptionsWithApiKey, 'apiKey'>): SeamHttpWebhooks;
397
+ static fromClientSessionToken(clientSessionToken: SeamHttpOptionsWithClientSessionToken['clientSessionToken'], options?: Omit<SeamHttpOptionsWithClientSessionToken, 'clientSessionToken'>): SeamHttpWebhooks;
398
+ create(body: WebhooksCreateBody): Promise<WebhooksCreateResponse['webhook']>;
399
+ delete(body: WebhooksDeleteBody): Promise<void>;
400
+ get(body: WebhooksGetBody): Promise<WebhooksGetResponse['webhook']>;
401
+ list(params?: WebhooksListParams): Promise<WebhooksListResponse['webhooks']>;
402
+ }
403
+ type WebhooksCreateBody = SetNonNullable<Required<RouteRequestBody<'/webhooks/create'>>>;
404
+ type WebhooksCreateResponse = SetNonNullable<Required<RouteResponse<'/webhooks/create'>>>;
405
+ type WebhooksDeleteBody = SetNonNullable<Required<RouteRequestBody<'/webhooks/delete'>>>;
406
+ type WebhooksGetBody = SetNonNullable<Required<RouteRequestBody<'/webhooks/get'>>>;
407
+ type WebhooksGetResponse = SetNonNullable<Required<RouteResponse<'/webhooks/get'>>>;
408
+ type WebhooksListParams = SetNonNullable<Required<RouteRequestParams<'/webhooks/list'>>>;
409
+ type WebhooksListResponse = SetNonNullable<Required<RouteResponse<'/webhooks/list'>>>;
410
+
411
+ declare class SeamHttpWorkspaces {
412
+ client: Axios;
413
+ constructor(apiKeyOrOptions: string | SeamHttpOptions);
414
+ static fromClient(client: SeamHttpOptionsWithClient['client'], options?: Omit<SeamHttpOptionsWithClient, 'client'>): SeamHttpWorkspaces;
415
+ static fromApiKey(apiKey: SeamHttpOptionsWithApiKey['apiKey'], options?: Omit<SeamHttpOptionsWithApiKey, 'apiKey'>): SeamHttpWorkspaces;
416
+ static fromClientSessionToken(clientSessionToken: SeamHttpOptionsWithClientSessionToken['clientSessionToken'], options?: Omit<SeamHttpOptionsWithClientSessionToken, 'clientSessionToken'>): SeamHttpWorkspaces;
21
417
  get(params?: WorkspacesGetParams): Promise<WorkspacesGetResponse['workspace']>;
418
+ list(params?: WorkspacesListParams): Promise<WorkspacesListResponse['workspaces']>;
419
+ resetSandbox(body: WorkspacesResetSandboxBody): Promise<void>;
22
420
  }
23
421
  type WorkspacesGetParams = SetNonNullable<Required<RouteRequestParams<'/workspaces/get'>>>;
24
422
  type WorkspacesGetResponse = SetNonNullable<Required<RouteResponse<'/workspaces/get'>>>;
423
+ type WorkspacesListParams = SetNonNullable<Required<RouteRequestParams<'/workspaces/list'>>>;
424
+ type WorkspacesListResponse = SetNonNullable<Required<RouteResponse<'/workspaces/list'>>>;
425
+ type WorkspacesResetSandboxBody = SetNonNullable<Required<RouteRequestBody<'/workspaces/reset_sandbox'>>>;
25
426
 
26
427
  declare class SeamHttp {
27
- #private;
28
428
  client: Axios;
29
429
  constructor(apiKeyOrOptions: string | SeamHttpOptions);
430
+ static fromClient(client: SeamHttpOptionsWithClient['client'], options?: Omit<SeamHttpOptionsWithClient, 'client'>): SeamHttp;
30
431
  static fromApiKey(apiKey: SeamHttpOptionsWithApiKey['apiKey'], options?: Omit<SeamHttpOptionsWithApiKey, 'apiKey'>): SeamHttp;
31
432
  static fromClientSessionToken(clientSessionToken: SeamHttpOptionsWithClientSessionToken['clientSessionToken'], options?: Omit<SeamHttpOptionsWithClientSessionToken, 'clientSessionToken'>): SeamHttp;
32
- get workspaces(): WorkspacesHttp;
433
+ get accessCodes(): SeamHttpAccessCodes;
434
+ get acs(): SeamHttpAcs;
435
+ get actionAttempts(): SeamHttpActionAttempts;
436
+ get clientSessions(): SeamHttpClientSessions;
437
+ get connectedAccounts(): SeamHttpConnectedAccounts;
438
+ get connectWebviews(): SeamHttpConnectWebviews;
439
+ get devices(): SeamHttpDevices;
440
+ get events(): SeamHttpEvents;
441
+ get locks(): SeamHttpLocks;
442
+ get noiseSensors(): SeamHttpNoiseSensors;
443
+ get thermostats(): SeamHttpThermostats;
444
+ get webhooks(): SeamHttpWebhooks;
445
+ get workspaces(): SeamHttpWorkspaces;
33
446
  }
34
447
 
35
448
  export { SeamHttp };
@@ -1,7 +1,7 @@
1
1
  import { type SeamHttpOptions } from './client-options.js';
2
2
  type Headers = Record<string, string>;
3
3
  export declare const getAuthHeaders: (options: SeamHttpOptions) => Headers;
4
- export declare class InvalidSeamTokenError extends Error {
4
+ export declare class SeamHttpInvalidTokenError extends Error {
5
5
  constructor(message: string);
6
6
  }
7
7
  export {};
@@ -1,4 +1,4 @@
1
- import { InvalidSeamHttpOptionsError, isSeamHttpOptionsWithApiKey, isSeamHttpOptionsWithClientSessionToken, } from './client-options.js';
1
+ import { isSeamHttpOptionsWithApiKey, isSeamHttpOptionsWithClientSessionToken, SeamHttpInvalidOptionsError, } from './client-options.js';
2
2
  export const getAuthHeaders = (options) => {
3
3
  if (isSeamHttpOptionsWithApiKey(options)) {
4
4
  return getAuthHeadersForApiKey(options);
@@ -6,17 +6,17 @@ export const getAuthHeaders = (options) => {
6
6
  if (isSeamHttpOptionsWithClientSessionToken(options)) {
7
7
  return getAuthHeadersForClientSessionToken(options);
8
8
  }
9
- throw new InvalidSeamHttpOptionsError('Must specify an apiKey or clientSessionToken');
9
+ throw new SeamHttpInvalidOptionsError('Must specify an apiKey or clientSessionToken');
10
10
  };
11
11
  const getAuthHeadersForApiKey = ({ apiKey, }) => {
12
12
  if (isClientSessionToken(apiKey)) {
13
- throw new InvalidSeamTokenError('A Client Session Token cannot be used as an apiKey');
13
+ throw new SeamHttpInvalidTokenError('A Client Session Token cannot be used as an apiKey');
14
14
  }
15
15
  if (isAccessToken(apiKey)) {
16
- throw new InvalidSeamTokenError('An access token cannot be used as an apiKey');
16
+ throw new SeamHttpInvalidTokenError('An access token cannot be used as an apiKey');
17
17
  }
18
18
  if (isJwt(apiKey) || !isSeamToken(apiKey)) {
19
- throw new InvalidSeamTokenError(`Unknown or invalid apiKey format, expected token to start with ${tokenPrefix}`);
19
+ throw new SeamHttpInvalidTokenError(`Unknown or invalid apiKey format, expected token to start with ${tokenPrefix}`);
20
20
  }
21
21
  return {
22
22
  authorization: `Bearer ${apiKey}`,
@@ -24,14 +24,14 @@ const getAuthHeadersForApiKey = ({ apiKey, }) => {
24
24
  };
25
25
  const getAuthHeadersForClientSessionToken = ({ clientSessionToken, }) => {
26
26
  if (!isClientSessionToken(clientSessionToken)) {
27
- throw new InvalidSeamTokenError(`Unknown or invalid clientSessionToken format, expected token to start with ${clientSessionTokenPrefix}`);
27
+ throw new SeamHttpInvalidTokenError(`Unknown or invalid clientSessionToken format, expected token to start with ${clientSessionTokenPrefix}`);
28
28
  }
29
29
  return {
30
30
  authorization: `Bearer ${clientSessionToken}`,
31
31
  'client-session-token': clientSessionToken,
32
32
  };
33
33
  };
34
- export class InvalidSeamTokenError extends Error {
34
+ export class SeamHttpInvalidTokenError extends Error {
35
35
  constructor(message) {
36
36
  super(`SeamHttp received an invalid token: ${message}`);
37
37
  this.name = this.constructor.name;
@@ -1 +1 @@
1
- {"version":3,"file":"auth.js","sourceRoot":"","sources":["../../../src/lib/seam/connect/auth.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,2BAA2B,EAC3B,2BAA2B,EAC3B,uCAAuC,GAIxC,MAAM,qBAAqB,CAAA;AAI5B,MAAM,CAAC,MAAM,cAAc,GAAG,CAAC,OAAwB,EAAW,EAAE;IAClE,IAAI,2BAA2B,CAAC,OAAO,CAAC,EAAE;QACxC,OAAO,uBAAuB,CAAC,OAAO,CAAC,CAAA;KACxC;IAED,IAAI,uCAAuC,CAAC,OAAO,CAAC,EAAE;QACpD,OAAO,mCAAmC,CAAC,OAAO,CAAC,CAAA;KACpD;IAED,MAAM,IAAI,2BAA2B,CACnC,8CAA8C,CAC/C,CAAA;AACH,CAAC,CAAA;AAED,MAAM,uBAAuB,GAAG,CAAC,EAC/B,MAAM,GACoB,EAAW,EAAE;IACvC,IAAI,oBAAoB,CAAC,MAAM,CAAC,EAAE;QAChC,MAAM,IAAI,qBAAqB,CAC7B,oDAAoD,CACrD,CAAA;KACF;IAED,IAAI,aAAa,CAAC,MAAM,CAAC,EAAE;QACzB,MAAM,IAAI,qBAAqB,CAC7B,6CAA6C,CAC9C,CAAA;KACF;IAED,IAAI,KAAK,CAAC,MAAM,CAAC,IAAI,CAAC,WAAW,CAAC,MAAM,CAAC,EAAE;QACzC,MAAM,IAAI,qBAAqB,CAC7B,kEAAkE,WAAW,EAAE,CAChF,CAAA;KACF;IAED,OAAO;QACL,aAAa,EAAE,UAAU,MAAM,EAAE;KAClC,CAAA;AACH,CAAC,CAAA;AAED,MAAM,mCAAmC,GAAG,CAAC,EAC3C,kBAAkB,GACoB,EAAW,EAAE;IACnD,IAAI,CAAC,oBAAoB,CAAC,kBAAkB,CAAC,EAAE;QAC7C,MAAM,IAAI,qBAAqB,CAC7B,8EAA8E,wBAAwB,EAAE,CACzG,CAAA;KACF;IAED,OAAO;QACL,aAAa,EAAE,UAAU,kBAAkB,EAAE;QAC7C,sBAAsB,EAAE,kBAAkB;KAC3C,CAAA;AACH,CAAC,CAAA;AAED,MAAM,OAAO,qBAAsB,SAAQ,KAAK;IAC9C,YAAY,OAAe;QACzB,KAAK,CAAC,uCAAuC,OAAO,EAAE,CAAC,CAAA;QACvD,IAAI,CAAC,IAAI,GAAG,IAAI,CAAC,WAAW,CAAC,IAAI,CAAA;QACjC,KAAK,CAAC,iBAAiB,CAAC,IAAI,EAAE,IAAI,CAAC,WAAW,CAAC,CAAA;IACjD,CAAC;CACF;AAED,MAAM,WAAW,GAAG,OAAO,CAAA;AAE3B,MAAM,wBAAwB,GAAG,UAAU,CAAA;AAE3C,MAAM,oBAAoB,GAAG,CAAC,KAAa,EAAW,EAAE,CACtD,KAAK,CAAC,UAAU,CAAC,wBAAwB,CAAC,CAAA;AAE5C,MAAM,aAAa,GAAG,CAAC,KAAa,EAAW,EAAE,CAAC,KAAK,CAAC,UAAU,CAAC,SAAS,CAAC,CAAA;AAE7E,MAAM,KAAK,GAAG,CAAC,KAAa,EAAW,EAAE,CAAC,KAAK,CAAC,UAAU,CAAC,IAAI,CAAC,CAAA;AAEhE,MAAM,WAAW,GAAG,CAAC,KAAa,EAAW,EAAE,CAAC,KAAK,CAAC,UAAU,CAAC,WAAW,CAAC,CAAA"}
1
+ {"version":3,"file":"auth.js","sourceRoot":"","sources":["../../../src/lib/seam/connect/auth.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,2BAA2B,EAC3B,uCAAuC,EACvC,2BAA2B,GAI5B,MAAM,qBAAqB,CAAA;AAI5B,MAAM,CAAC,MAAM,cAAc,GAAG,CAAC,OAAwB,EAAW,EAAE;IAClE,IAAI,2BAA2B,CAAC,OAAO,CAAC,EAAE;QACxC,OAAO,uBAAuB,CAAC,OAAO,CAAC,CAAA;KACxC;IAED,IAAI,uCAAuC,CAAC,OAAO,CAAC,EAAE;QACpD,OAAO,mCAAmC,CAAC,OAAO,CAAC,CAAA;KACpD;IAED,MAAM,IAAI,2BAA2B,CACnC,8CAA8C,CAC/C,CAAA;AACH,CAAC,CAAA;AAED,MAAM,uBAAuB,GAAG,CAAC,EAC/B,MAAM,GACoB,EAAW,EAAE;IACvC,IAAI,oBAAoB,CAAC,MAAM,CAAC,EAAE;QAChC,MAAM,IAAI,yBAAyB,CACjC,oDAAoD,CACrD,CAAA;KACF;IAED,IAAI,aAAa,CAAC,MAAM,CAAC,EAAE;QACzB,MAAM,IAAI,yBAAyB,CACjC,6CAA6C,CAC9C,CAAA;KACF;IAED,IAAI,KAAK,CAAC,MAAM,CAAC,IAAI,CAAC,WAAW,CAAC,MAAM,CAAC,EAAE;QACzC,MAAM,IAAI,yBAAyB,CACjC,kEAAkE,WAAW,EAAE,CAChF,CAAA;KACF;IAED,OAAO;QACL,aAAa,EAAE,UAAU,MAAM,EAAE;KAClC,CAAA;AACH,CAAC,CAAA;AAED,MAAM,mCAAmC,GAAG,CAAC,EAC3C,kBAAkB,GACoB,EAAW,EAAE;IACnD,IAAI,CAAC,oBAAoB,CAAC,kBAAkB,CAAC,EAAE;QAC7C,MAAM,IAAI,yBAAyB,CACjC,8EAA8E,wBAAwB,EAAE,CACzG,CAAA;KACF;IAED,OAAO;QACL,aAAa,EAAE,UAAU,kBAAkB,EAAE;QAC7C,sBAAsB,EAAE,kBAAkB;KAC3C,CAAA;AACH,CAAC,CAAA;AAED,MAAM,OAAO,yBAA0B,SAAQ,KAAK;IAClD,YAAY,OAAe;QACzB,KAAK,CAAC,uCAAuC,OAAO,EAAE,CAAC,CAAA;QACvD,IAAI,CAAC,IAAI,GAAG,IAAI,CAAC,WAAW,CAAC,IAAI,CAAA;QACjC,KAAK,CAAC,iBAAiB,CAAC,IAAI,EAAE,IAAI,CAAC,WAAW,CAAC,CAAA;IACjD,CAAC;CACF;AAED,MAAM,WAAW,GAAG,OAAO,CAAA;AAE3B,MAAM,wBAAwB,GAAG,UAAU,CAAA;AAE3C,MAAM,oBAAoB,GAAG,CAAC,KAAa,EAAW,EAAE,CACtD,KAAK,CAAC,UAAU,CAAC,wBAAwB,CAAC,CAAA;AAE5C,MAAM,aAAa,GAAG,CAAC,KAAa,EAAW,EAAE,CAAC,KAAK,CAAC,UAAU,CAAC,SAAS,CAAC,CAAA;AAE7E,MAAM,KAAK,GAAG,CAAC,KAAa,EAAW,EAAE,CAAC,KAAK,CAAC,UAAU,CAAC,IAAI,CAAC,CAAA;AAEhE,MAAM,WAAW,GAAG,CAAC,KAAa,EAAW,EAAE,CAAC,KAAK,CAAC,UAAU,CAAC,WAAW,CAAC,CAAA"}
@@ -1,7 +1,9 @@
1
1
  import axios, {} from 'axios';
2
2
  import { getAuthHeaders } from './auth.js';
3
- import { isSeamHttpOptionsWithClientSessionToken, } from './client-options.js';
3
+ import { isSeamHttpOptionsWithClient, isSeamHttpOptionsWithClientSessionToken, } from './client-options.js';
4
4
  export const createAxiosClient = (options) => {
5
+ if (isSeamHttpOptionsWithClient(options))
6
+ return options.client;
5
7
  // TODO: axiosRetry? Allow options to configure this if so
6
8
  return axios.create({
7
9
  baseURL: options.endpoint,
@@ -1 +1 @@
1
- {"version":3,"file":"axios.js","sourceRoot":"","sources":["../../../src/lib/seam/connect/axios.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,EAAc,MAAM,OAAO,CAAA;AAEzC,OAAO,EAAE,cAAc,EAAE,MAAM,WAAW,CAAA;AAC1C,OAAO,EACL,uCAAuC,GAExC,MAAM,qBAAqB,CAAA;AAE5B,MAAM,CAAC,MAAM,iBAAiB,GAAG,CAC/B,OAAkC,EAC3B,EAAE;IACT,0DAA0D;IAC1D,OAAO,KAAK,CAAC,MAAM,CAAC;QAClB,OAAO,EAAE,OAAO,CAAC,QAAQ;QACzB,eAAe,EAAE,uCAAuC,CAAC,OAAO,CAAC;QACjE,GAAG,OAAO,CAAC,YAAY;QACvB,OAAO,EAAE;YACP,GAAG,cAAc,CAAC,OAAO,CAAC;YAC1B,GAAG,OAAO,CAAC,YAAY,CAAC,OAAO;YAC/B,mBAAmB;SACpB;KACF,CAAC,CAAA;AACJ,CAAC,CAAA"}
1
+ {"version":3,"file":"axios.js","sourceRoot":"","sources":["../../../src/lib/seam/connect/axios.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,EAAc,MAAM,OAAO,CAAA;AAEzC,OAAO,EAAE,cAAc,EAAE,MAAM,WAAW,CAAA;AAC1C,OAAO,EACL,2BAA2B,EAC3B,uCAAuC,GAExC,MAAM,qBAAqB,CAAA;AAE5B,MAAM,CAAC,MAAM,iBAAiB,GAAG,CAC/B,OAAkC,EAC3B,EAAE;IACT,IAAI,2BAA2B,CAAC,OAAO,CAAC;QAAE,OAAO,OAAO,CAAC,MAAM,CAAA;IAC/D,0DAA0D;IAC1D,OAAO,KAAK,CAAC,MAAM,CAAC;QAClB,OAAO,EAAE,OAAO,CAAC,QAAQ;QACzB,eAAe,EAAE,uCAAuC,CAAC,OAAO,CAAC;QACjE,GAAG,OAAO,CAAC,YAAY;QACvB,OAAO,EAAE;YACP,GAAG,cAAc,CAAC,OAAO,CAAC;YAC1B,GAAG,OAAO,CAAC,YAAY,CAAC,OAAO;YAC/B,mBAAmB;SACpB;KACF,CAAC,CAAA;AACJ,CAAC,CAAA"}
@@ -1,10 +1,14 @@
1
- import type { AxiosRequestConfig } from 'axios';
2
- export type SeamHttpOptions = SeamHttpOptionsWithApiKey | SeamHttpOptionsWithClientSessionToken;
1
+ import type { Axios, AxiosRequestConfig } from 'axios';
2
+ export type SeamHttpOptions = SeamHttpOptionsWithClient | SeamHttpOptionsWithApiKey | SeamHttpOptionsWithClientSessionToken;
3
3
  interface SeamHttpCommonOptions {
4
4
  endpoint?: string;
5
5
  axiosOptions?: AxiosRequestConfig;
6
6
  enableLegacyMethodBehaivor?: boolean;
7
7
  }
8
+ export interface SeamHttpOptionsWithClient extends Pick<SeamHttpCommonOptions, 'enableLegacyMethodBehaivor'> {
9
+ client: Axios;
10
+ }
11
+ export declare const isSeamHttpOptionsWithClient: (options: SeamHttpOptions) => options is SeamHttpOptionsWithClient;
8
12
  export interface SeamHttpOptionsWithApiKey extends SeamHttpCommonOptions {
9
13
  apiKey: string;
10
14
  }
@@ -13,7 +17,7 @@ export interface SeamHttpOptionsWithClientSessionToken extends SeamHttpCommonOpt
13
17
  clientSessionToken: string;
14
18
  }
15
19
  export declare const isSeamHttpOptionsWithClientSessionToken: (options: SeamHttpOptions) => options is SeamHttpOptionsWithClientSessionToken;
16
- export declare class InvalidSeamHttpOptionsError extends Error {
20
+ export declare class SeamHttpInvalidOptionsError extends Error {
17
21
  constructor(message: string);
18
22
  }
19
23
  export {};
@@ -1,20 +1,35 @@
1
+ export const isSeamHttpOptionsWithClient = (options) => {
2
+ if (!('client' in options))
3
+ return false;
4
+ if (options.client == null)
5
+ return false;
6
+ const keys = Object.keys(options).filter((k) => !['client', 'enableLegacyMethodBehaivor'].includes(k));
7
+ if (keys.length > 0) {
8
+ throw new SeamHttpInvalidOptionsError(`The client option cannot be used with any other option except enableLegacyMethodBehaivor, but received: ${keys.join(', ')}`);
9
+ }
10
+ return true;
11
+ };
1
12
  export const isSeamHttpOptionsWithApiKey = (options) => {
2
13
  if (!('apiKey' in options))
3
14
  return false;
15
+ if (options.apiKey == null)
16
+ return false;
4
17
  if ('clientSessionToken' in options && options.clientSessionToken != null) {
5
- throw new InvalidSeamHttpOptionsError('The clientSessionToken option cannot be used with the apiKey option.');
18
+ throw new SeamHttpInvalidOptionsError('The clientSessionToken option cannot be used with the apiKey option.');
6
19
  }
7
20
  return true;
8
21
  };
9
22
  export const isSeamHttpOptionsWithClientSessionToken = (options) => {
10
23
  if (!('clientSessionToken' in options))
11
24
  return false;
25
+ if (options.clientSessionToken == null)
26
+ return false;
12
27
  if ('apiKey' in options && options.apiKey != null) {
13
- throw new InvalidSeamHttpOptionsError('The clientSessionToken option cannot be used with the apiKey option.');
28
+ throw new SeamHttpInvalidOptionsError('The clientSessionToken option cannot be used with the apiKey option.');
14
29
  }
15
30
  return true;
16
31
  };
17
- export class InvalidSeamHttpOptionsError extends Error {
32
+ export class SeamHttpInvalidOptionsError extends Error {
18
33
  constructor(message) {
19
34
  super(`SeamHttp received invalid options: ${message}`);
20
35
  this.name = this.constructor.name;