@seamapi/http 0.22.0 → 0.23.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.
@@ -722,36 +722,36 @@ declare class SeamHttpThermostats {
722
722
  static fromPersonalAccessToken(personalAccessToken: SeamHttpOptionsWithPersonalAccessToken['personalAccessToken'], workspaceId: SeamHttpOptionsWithPersonalAccessToken['workspaceId'], options?: Omit<SeamHttpOptionsWithPersonalAccessToken, 'personalAccessToken' | 'workspaceId'>): SeamHttpThermostats;
723
723
  updateClientSessionToken(clientSessionToken: SeamHttpOptionsWithClientSessionToken['clientSessionToken']): Promise<void>;
724
724
  get climateSettingSchedules(): SeamHttpThermostatsClimateSettingSchedules;
725
- cool(body?: ThermostatsCoolBody): Promise<void>;
725
+ cool(body?: ThermostatsCoolBody, options?: Pick<SeamHttpRequestOptions, 'waitForActionAttempt'>): Promise<ThermostatsCoolResponse['action_attempt']>;
726
726
  get(body?: ThermostatsGetParams): Promise<ThermostatsGetResponse['thermostat']>;
727
- heat(body?: ThermostatsHeatBody): Promise<void>;
728
- heatCool(body?: ThermostatsHeatCoolBody): Promise<void>;
727
+ heat(body?: ThermostatsHeatBody, options?: Pick<SeamHttpRequestOptions, 'waitForActionAttempt'>): Promise<ThermostatsHeatResponse['action_attempt']>;
728
+ heatCool(body?: ThermostatsHeatCoolBody, options?: Pick<SeamHttpRequestOptions, 'waitForActionAttempt'>): Promise<ThermostatsHeatCoolResponse['action_attempt']>;
729
729
  list(body?: ThermostatsListParams): Promise<ThermostatsListResponse['thermostats']>;
730
- off(body?: ThermostatsOffBody): Promise<void>;
731
- setFanMode(body?: ThermostatsSetFanModeBody): Promise<void>;
730
+ off(body?: ThermostatsOffBody, options?: Pick<SeamHttpRequestOptions, 'waitForActionAttempt'>): Promise<ThermostatsOffResponse['action_attempt']>;
731
+ setFanMode(body?: ThermostatsSetFanModeBody, options?: Pick<SeamHttpRequestOptions, 'waitForActionAttempt'>): Promise<ThermostatsSetFanModeResponse['action_attempt']>;
732
732
  update(body?: ThermostatsUpdateBody): Promise<void>;
733
733
  }
734
734
  type ThermostatsCoolBody = RouteRequestBody<'/thermostats/cool'>;
735
735
  type ThermostatsCoolResponse = SetNonNullable<Required<RouteResponse<'/thermostats/cool'>>>;
736
- type ThermostatsCoolOptions = never;
736
+ type ThermostatsCoolOptions = Pick<SeamHttpRequestOptions, 'waitForActionAttempt'>;
737
737
  type ThermostatsGetParams = RouteRequestBody<'/thermostats/get'>;
738
738
  type ThermostatsGetResponse = SetNonNullable<Required<RouteResponse<'/thermostats/get'>>>;
739
739
  type ThermostatsGetOptions = never;
740
740
  type ThermostatsHeatBody = RouteRequestBody<'/thermostats/heat'>;
741
741
  type ThermostatsHeatResponse = SetNonNullable<Required<RouteResponse<'/thermostats/heat'>>>;
742
- type ThermostatsHeatOptions = never;
742
+ type ThermostatsHeatOptions = Pick<SeamHttpRequestOptions, 'waitForActionAttempt'>;
743
743
  type ThermostatsHeatCoolBody = RouteRequestBody<'/thermostats/heat_cool'>;
744
744
  type ThermostatsHeatCoolResponse = SetNonNullable<Required<RouteResponse<'/thermostats/heat_cool'>>>;
745
- type ThermostatsHeatCoolOptions = never;
745
+ type ThermostatsHeatCoolOptions = Pick<SeamHttpRequestOptions, 'waitForActionAttempt'>;
746
746
  type ThermostatsListParams = RouteRequestBody<'/thermostats/list'>;
747
747
  type ThermostatsListResponse = SetNonNullable<Required<RouteResponse<'/thermostats/list'>>>;
748
748
  type ThermostatsListOptions = never;
749
749
  type ThermostatsOffBody = RouteRequestBody<'/thermostats/off'>;
750
750
  type ThermostatsOffResponse = SetNonNullable<Required<RouteResponse<'/thermostats/off'>>>;
751
- type ThermostatsOffOptions = never;
751
+ type ThermostatsOffOptions = Pick<SeamHttpRequestOptions, 'waitForActionAttempt'>;
752
752
  type ThermostatsSetFanModeBody = RouteRequestBody<'/thermostats/set_fan_mode'>;
753
753
  type ThermostatsSetFanModeResponse = SetNonNullable<Required<RouteResponse<'/thermostats/set_fan_mode'>>>;
754
- type ThermostatsSetFanModeOptions = never;
754
+ type ThermostatsSetFanModeOptions = Pick<SeamHttpRequestOptions, 'waitForActionAttempt'>;
755
755
  type ThermostatsUpdateBody = RouteRequestBody<'/thermostats/update'>;
756
756
  type ThermostatsUpdateResponse = SetNonNullable<Required<RouteResponse<'/thermostats/update'>>>;
757
757
  type ThermostatsUpdateOptions = never;
@@ -15,36 +15,36 @@ export declare class SeamHttpThermostats {
15
15
  static fromPersonalAccessToken(personalAccessToken: SeamHttpOptionsWithPersonalAccessToken['personalAccessToken'], workspaceId: SeamHttpOptionsWithPersonalAccessToken['workspaceId'], options?: Omit<SeamHttpOptionsWithPersonalAccessToken, 'personalAccessToken' | 'workspaceId'>): SeamHttpThermostats;
16
16
  updateClientSessionToken(clientSessionToken: SeamHttpOptionsWithClientSessionToken['clientSessionToken']): Promise<void>;
17
17
  get climateSettingSchedules(): SeamHttpThermostatsClimateSettingSchedules;
18
- cool(body?: ThermostatsCoolBody): Promise<void>;
18
+ cool(body?: ThermostatsCoolBody, options?: Pick<SeamHttpRequestOptions, 'waitForActionAttempt'>): Promise<ThermostatsCoolResponse['action_attempt']>;
19
19
  get(body?: ThermostatsGetParams): Promise<ThermostatsGetResponse['thermostat']>;
20
- heat(body?: ThermostatsHeatBody): Promise<void>;
21
- heatCool(body?: ThermostatsHeatCoolBody): Promise<void>;
20
+ heat(body?: ThermostatsHeatBody, options?: Pick<SeamHttpRequestOptions, 'waitForActionAttempt'>): Promise<ThermostatsHeatResponse['action_attempt']>;
21
+ heatCool(body?: ThermostatsHeatCoolBody, options?: Pick<SeamHttpRequestOptions, 'waitForActionAttempt'>): Promise<ThermostatsHeatCoolResponse['action_attempt']>;
22
22
  list(body?: ThermostatsListParams): Promise<ThermostatsListResponse['thermostats']>;
23
- off(body?: ThermostatsOffBody): Promise<void>;
24
- setFanMode(body?: ThermostatsSetFanModeBody): Promise<void>;
23
+ off(body?: ThermostatsOffBody, options?: Pick<SeamHttpRequestOptions, 'waitForActionAttempt'>): Promise<ThermostatsOffResponse['action_attempt']>;
24
+ setFanMode(body?: ThermostatsSetFanModeBody, options?: Pick<SeamHttpRequestOptions, 'waitForActionAttempt'>): Promise<ThermostatsSetFanModeResponse['action_attempt']>;
25
25
  update(body?: ThermostatsUpdateBody): Promise<void>;
26
26
  }
27
27
  export type ThermostatsCoolBody = RouteRequestBody<'/thermostats/cool'>;
28
28
  export type ThermostatsCoolResponse = SetNonNullable<Required<RouteResponse<'/thermostats/cool'>>>;
29
- export type ThermostatsCoolOptions = never;
29
+ export type ThermostatsCoolOptions = Pick<SeamHttpRequestOptions, 'waitForActionAttempt'>;
30
30
  export type ThermostatsGetParams = RouteRequestBody<'/thermostats/get'>;
31
31
  export type ThermostatsGetResponse = SetNonNullable<Required<RouteResponse<'/thermostats/get'>>>;
32
32
  export type ThermostatsGetOptions = never;
33
33
  export type ThermostatsHeatBody = RouteRequestBody<'/thermostats/heat'>;
34
34
  export type ThermostatsHeatResponse = SetNonNullable<Required<RouteResponse<'/thermostats/heat'>>>;
35
- export type ThermostatsHeatOptions = never;
35
+ export type ThermostatsHeatOptions = Pick<SeamHttpRequestOptions, 'waitForActionAttempt'>;
36
36
  export type ThermostatsHeatCoolBody = RouteRequestBody<'/thermostats/heat_cool'>;
37
37
  export type ThermostatsHeatCoolResponse = SetNonNullable<Required<RouteResponse<'/thermostats/heat_cool'>>>;
38
- export type ThermostatsHeatCoolOptions = never;
38
+ export type ThermostatsHeatCoolOptions = Pick<SeamHttpRequestOptions, 'waitForActionAttempt'>;
39
39
  export type ThermostatsListParams = RouteRequestBody<'/thermostats/list'>;
40
40
  export type ThermostatsListResponse = SetNonNullable<Required<RouteResponse<'/thermostats/list'>>>;
41
41
  export type ThermostatsListOptions = never;
42
42
  export type ThermostatsOffBody = RouteRequestBody<'/thermostats/off'>;
43
43
  export type ThermostatsOffResponse = SetNonNullable<Required<RouteResponse<'/thermostats/off'>>>;
44
- export type ThermostatsOffOptions = never;
44
+ export type ThermostatsOffOptions = Pick<SeamHttpRequestOptions, 'waitForActionAttempt'>;
45
45
  export type ThermostatsSetFanModeBody = RouteRequestBody<'/thermostats/set_fan_mode'>;
46
46
  export type ThermostatsSetFanModeResponse = SetNonNullable<Required<RouteResponse<'/thermostats/set_fan_mode'>>>;
47
- export type ThermostatsSetFanModeOptions = never;
47
+ export type ThermostatsSetFanModeOptions = Pick<SeamHttpRequestOptions, 'waitForActionAttempt'>;
48
48
  export type ThermostatsUpdateBody = RouteRequestBody<'/thermostats/update'>;
49
49
  export type ThermostatsUpdateResponse = SetNonNullable<Required<RouteResponse<'/thermostats/update'>>>;
50
50
  export type ThermostatsUpdateOptions = never;
@@ -6,6 +6,8 @@ import { getAuthHeadersForClientSessionToken, warnOnInsecureuserIdentifierKey, }
6
6
  import { createClient } from '../../../../lib/seam/connect/client.js';
7
7
  import { isSeamHttpOptionsWithApiKey, isSeamHttpOptionsWithClient, isSeamHttpOptionsWithClientSessionToken, isSeamHttpOptionsWithConsoleSessionToken, isSeamHttpOptionsWithPersonalAccessToken, SeamHttpInvalidOptionsError, } from '../../../../lib/seam/connect/options.js';
8
8
  import { limitToSeamHttpRequestOptions, parseOptions, } from '../../../../lib/seam/connect/parse-options.js';
9
+ import { resolveActionAttempt } from '../../../../lib/seam/connect/resolve-action-attempt.js';
10
+ import { SeamHttpActionAttempts } from './action-attempts.js';
9
11
  import { SeamHttpClientSessions } from './client-sessions.js';
10
12
  import { SeamHttpThermostatsClimateSettingSchedules } from './thermostats-climate-setting-schedules.js';
11
13
  export class SeamHttpThermostats {
@@ -79,12 +81,20 @@ export class SeamHttpThermostats {
79
81
  get climateSettingSchedules() {
80
82
  return SeamHttpThermostatsClimateSettingSchedules.fromClient(this.client, this.defaults);
81
83
  }
82
- async cool(body) {
83
- await this.client.request({
84
+ async cool(body, options = {}) {
85
+ const { data } = await this.client.request({
84
86
  url: '/thermostats/cool',
85
87
  method: 'post',
86
88
  data: body,
87
89
  });
90
+ const waitForActionAttempt = options.waitForActionAttempt ?? this.defaults.waitForActionAttempt;
91
+ if (waitForActionAttempt !== false) {
92
+ return await resolveActionAttempt(data.action_attempt, SeamHttpActionAttempts.fromClient(this.client, {
93
+ ...this.defaults,
94
+ waitForActionAttempt: false,
95
+ }), typeof waitForActionAttempt === 'boolean' ? {} : waitForActionAttempt);
96
+ }
97
+ return data.action_attempt;
88
98
  }
89
99
  async get(body) {
90
100
  const { data } = await this.client.request({
@@ -94,19 +104,35 @@ export class SeamHttpThermostats {
94
104
  });
95
105
  return data.thermostat;
96
106
  }
97
- async heat(body) {
98
- await this.client.request({
107
+ async heat(body, options = {}) {
108
+ const { data } = await this.client.request({
99
109
  url: '/thermostats/heat',
100
110
  method: 'post',
101
111
  data: body,
102
112
  });
113
+ const waitForActionAttempt = options.waitForActionAttempt ?? this.defaults.waitForActionAttempt;
114
+ if (waitForActionAttempt !== false) {
115
+ return await resolveActionAttempt(data.action_attempt, SeamHttpActionAttempts.fromClient(this.client, {
116
+ ...this.defaults,
117
+ waitForActionAttempt: false,
118
+ }), typeof waitForActionAttempt === 'boolean' ? {} : waitForActionAttempt);
119
+ }
120
+ return data.action_attempt;
103
121
  }
104
- async heatCool(body) {
105
- await this.client.request({
122
+ async heatCool(body, options = {}) {
123
+ const { data } = await this.client.request({
106
124
  url: '/thermostats/heat_cool',
107
125
  method: 'post',
108
126
  data: body,
109
127
  });
128
+ const waitForActionAttempt = options.waitForActionAttempt ?? this.defaults.waitForActionAttempt;
129
+ if (waitForActionAttempt !== false) {
130
+ return await resolveActionAttempt(data.action_attempt, SeamHttpActionAttempts.fromClient(this.client, {
131
+ ...this.defaults,
132
+ waitForActionAttempt: false,
133
+ }), typeof waitForActionAttempt === 'boolean' ? {} : waitForActionAttempt);
134
+ }
135
+ return data.action_attempt;
110
136
  }
111
137
  async list(body) {
112
138
  const { data } = await this.client.request({
@@ -116,19 +142,35 @@ export class SeamHttpThermostats {
116
142
  });
117
143
  return data.thermostats;
118
144
  }
119
- async off(body) {
120
- await this.client.request({
145
+ async off(body, options = {}) {
146
+ const { data } = await this.client.request({
121
147
  url: '/thermostats/off',
122
148
  method: 'post',
123
149
  data: body,
124
150
  });
151
+ const waitForActionAttempt = options.waitForActionAttempt ?? this.defaults.waitForActionAttempt;
152
+ if (waitForActionAttempt !== false) {
153
+ return await resolveActionAttempt(data.action_attempt, SeamHttpActionAttempts.fromClient(this.client, {
154
+ ...this.defaults,
155
+ waitForActionAttempt: false,
156
+ }), typeof waitForActionAttempt === 'boolean' ? {} : waitForActionAttempt);
157
+ }
158
+ return data.action_attempt;
125
159
  }
126
- async setFanMode(body) {
127
- await this.client.request({
160
+ async setFanMode(body, options = {}) {
161
+ const { data } = await this.client.request({
128
162
  url: '/thermostats/set_fan_mode',
129
163
  method: 'post',
130
164
  data: body,
131
165
  });
166
+ const waitForActionAttempt = options.waitForActionAttempt ?? this.defaults.waitForActionAttempt;
167
+ if (waitForActionAttempt !== false) {
168
+ return await resolveActionAttempt(data.action_attempt, SeamHttpActionAttempts.fromClient(this.client, {
169
+ ...this.defaults,
170
+ waitForActionAttempt: false,
171
+ }), typeof waitForActionAttempt === 'boolean' ? {} : waitForActionAttempt);
172
+ }
173
+ return data.action_attempt;
132
174
  }
133
175
  async update(body) {
134
176
  await this.client.request({
@@ -1 +1 @@
1
- {"version":3,"file":"thermostats.js","sourceRoot":"","sources":["../../../../src/lib/seam/connect/routes/thermostats.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"thermostats.js","sourceRoot":"","sources":["../../../../src/lib/seam/connect/routes/thermostats.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAKH,OAAO,EACL,mCAAmC,EACnC,+BAA+B,GAChC,MAAM,0BAA0B,CAAA;AACjC,OAAO,EAAe,YAAY,EAAE,MAAM,4BAA4B,CAAA;AACtE,OAAO,EACL,2BAA2B,EAC3B,2BAA2B,EAC3B,uCAAuC,EACvC,wCAAwC,EACxC,wCAAwC,EAExC,2BAA2B,GAQ5B,MAAM,6BAA6B,CAAA;AACpC,OAAO,EACL,6BAA6B,EAC7B,YAAY,GACb,MAAM,mCAAmC,CAAA;AAC1C,OAAO,EAAE,oBAAoB,EAAE,MAAM,4CAA4C,CAAA;AAEjF,OAAO,EAAE,sBAAsB,EAAE,MAAM,sBAAsB,CAAA;AAC7D,OAAO,EAAE,sBAAsB,EAAE,MAAM,sBAAsB,CAAA;AAC7D,OAAO,EAAE,0CAA0C,EAAE,MAAM,4CAA4C,CAAA;AAEvG,MAAM,OAAO,mBAAmB;IAI9B,YAAY,kBAA4C,EAAE;QACxD,MAAM,OAAO,GAAG,YAAY,CAAC,eAAe,CAAC,CAAA;QAC7C,IAAI,CAAC,MAAM,GAAG,QAAQ,IAAI,OAAO,CAAC,CAAC,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC,CAAC,YAAY,CAAC,OAAO,CAAC,CAAA;QAC1E,IAAI,CAAC,QAAQ,GAAG,6BAA6B,CAAC,OAAO,CAAC,CAAA;IACxD,CAAC;IAED,MAAM,CAAC,UAAU,CACf,MAA2C,EAC3C,UAAqD,EAAE;QAEvD,MAAM,kBAAkB,GAAG,EAAE,GAAG,OAAO,EAAE,MAAM,EAAE,CAAA;QACjD,IAAI,CAAC,2BAA2B,CAAC,kBAAkB,CAAC,EAAE,CAAC;YACrD,MAAM,IAAI,2BAA2B,CAAC,gBAAgB,CAAC,CAAA;QACzD,CAAC;QACD,OAAO,IAAI,mBAAmB,CAAC,kBAAkB,CAAC,CAAA;IACpD,CAAC;IAED,MAAM,CAAC,UAAU,CACf,MAA2C,EAC3C,UAAqD,EAAE;QAEvD,MAAM,kBAAkB,GAAG,EAAE,GAAG,OAAO,EAAE,MAAM,EAAE,CAAA;QACjD,IAAI,CAAC,2BAA2B,CAAC,kBAAkB,CAAC,EAAE,CAAC;YACrD,MAAM,IAAI,2BAA2B,CAAC,gBAAgB,CAAC,CAAA;QACzD,CAAC;QACD,OAAO,IAAI,mBAAmB,CAAC,kBAAkB,CAAC,CAAA;IACpD,CAAC;IAED,MAAM,CAAC,sBAAsB,CAC3B,kBAA+E,EAC/E,UAGI,EAAE;QAEN,MAAM,kBAAkB,GAAG,EAAE,GAAG,OAAO,EAAE,kBAAkB,EAAE,CAAA;QAC7D,IAAI,CAAC,uCAAuC,CAAC,kBAAkB,CAAC,EAAE,CAAC;YACjE,MAAM,IAAI,2BAA2B,CAAC,4BAA4B,CAAC,CAAA;QACrE,CAAC;QACD,OAAO,IAAI,mBAAmB,CAAC,kBAAkB,CAAC,CAAA;IACpD,CAAC;IAED,MAAM,CAAC,KAAK,CAAC,kBAAkB,CAC7B,cAAsB,EACtB,iBAAyB,EACzB,UAA6C,EAAE;QAE/C,+BAA+B,CAAC,iBAAiB,CAAC,CAAA;QAClD,MAAM,aAAa,GAAG,YAAY,CAAC,EAAE,GAAG,OAAO,EAAE,cAAc,EAAE,CAAC,CAAA;QAClE,IAAI,2BAA2B,CAAC,aAAa,CAAC,EAAE,CAAC;YAC/C,MAAM,IAAI,2BAA2B,CACnC,mEAAmE,CACpE,CAAA;QACH,CAAC;QACD,MAAM,MAAM,GAAG,YAAY,CAAC,aAAa,CAAC,CAAA;QAC1C,MAAM,cAAc,GAAG,sBAAsB,CAAC,UAAU,CAAC,MAAM,CAAC,CAAA;QAChE,MAAM,EAAE,KAAK,EAAE,GAAG,MAAM,cAAc,CAAC,WAAW,CAAC;YACjD,mBAAmB,EAAE,iBAAiB;SACvC,CAAC,CAAA;QACF,OAAO,mBAAmB,CAAC,sBAAsB,CAAC,KAAK,EAAE,OAAO,CAAC,CAAA;IACnE,CAAC;IAED,MAAM,CAAC,uBAAuB,CAC5B,mBAAkF,EAClF,WAAkE,EAClE,UAGI,EAAE;QAEN,MAAM,kBAAkB,GAAG,EAAE,GAAG,OAAO,EAAE,mBAAmB,EAAE,WAAW,EAAE,CAAA;QAC3E,IAAI,CAAC,wCAAwC,CAAC,kBAAkB,CAAC,EAAE,CAAC;YAClE,MAAM,IAAI,2BAA2B,CACnC,4CAA4C,CAC7C,CAAA;QACH,CAAC;QACD,OAAO,IAAI,mBAAmB,CAAC,kBAAkB,CAAC,CAAA;IACpD,CAAC;IAED,MAAM,CAAC,uBAAuB,CAC5B,mBAAkF,EAClF,WAAkE,EAClE,UAGI,EAAE;QAEN,MAAM,kBAAkB,GAAG,EAAE,GAAG,OAAO,EAAE,mBAAmB,EAAE,WAAW,EAAE,CAAA;QAC3E,IAAI,CAAC,wCAAwC,CAAC,kBAAkB,CAAC,EAAE,CAAC;YAClE,MAAM,IAAI,2BAA2B,CACnC,4CAA4C,CAC7C,CAAA;QACH,CAAC;QACD,OAAO,IAAI,mBAAmB,CAAC,kBAAkB,CAAC,CAAA;IACpD,CAAC;IAED,KAAK,CAAC,wBAAwB,CAC5B,kBAA+E;QAE/E,MAAM,EAAE,OAAO,EAAE,GAAG,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAA;QACxC,MAAM,WAAW,GAAG,mCAAmC,CAAC;YACtD,kBAAkB;SACnB,CAAC,CAAA;QACF,KAAK,MAAM,GAAG,IAAI,MAAM,CAAC,IAAI,CAAC,WAAW,CAAC,EAAE,CAAC;YAC3C,IAAI,OAAO,CAAC,GAAG,CAAC,IAAI,IAAI,EAAE,CAAC;gBACzB,MAAM,IAAI,KAAK,CACb,qFAAqF,CACtF,CAAA;YACH,CAAC;QACH,CAAC;QACD,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,OAAO,GAAG,EAAE,GAAG,OAAO,EAAE,GAAG,WAAW,EAAE,CAAA;QAC7D,MAAM,cAAc,GAAG,sBAAsB,CAAC,UAAU,CAAC,IAAI,CAAC,MAAM,CAAC,CAAA;QACrE,MAAM,cAAc,CAAC,GAAG,EAAE,CAAA;IAC5B,CAAC;IAED,IAAI,uBAAuB;QACzB,OAAO,0CAA0C,CAAC,UAAU,CAC1D,IAAI,CAAC,MAAM,EACX,IAAI,CAAC,QAAQ,CACd,CAAA;IACH,CAAC;IAED,KAAK,CAAC,IAAI,CACR,IAA0B,EAC1B,UAAgE,EAAE;QAElE,MAAM,EAAE,IAAI,EAAE,GAAG,MAAM,IAAI,CAAC,MAAM,CAAC,OAAO,CAA0B;YAClE,GAAG,EAAE,mBAAmB;YACxB,MAAM,EAAE,MAAM;YACd,IAAI,EAAE,IAAI;SACX,CAAC,CAAA;QACF,MAAM,oBAAoB,GACxB,OAAO,CAAC,oBAAoB,IAAI,IAAI,CAAC,QAAQ,CAAC,oBAAoB,CAAA;QACpE,IAAI,oBAAoB,KAAK,KAAK,EAAE,CAAC;YACnC,OAAO,MAAM,oBAAoB,CAC/B,IAAI,CAAC,cAAc,EACnB,sBAAsB,CAAC,UAAU,CAAC,IAAI,CAAC,MAAM,EAAE;gBAC7C,GAAG,IAAI,CAAC,QAAQ;gBAChB,oBAAoB,EAAE,KAAK;aAC5B,CAAC,EACF,OAAO,oBAAoB,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,oBAAoB,CACtE,CAAA;QACH,CAAC;QACD,OAAO,IAAI,CAAC,cAAc,CAAA;IAC5B,CAAC;IAED,KAAK,CAAC,GAAG,CACP,IAA2B;QAE3B,MAAM,EAAE,IAAI,EAAE,GAAG,MAAM,IAAI,CAAC,MAAM,CAAC,OAAO,CAAyB;YACjE,GAAG,EAAE,kBAAkB;YACvB,MAAM,EAAE,MAAM;YACd,IAAI,EAAE,IAAI;SACX,CAAC,CAAA;QAEF,OAAO,IAAI,CAAC,UAAU,CAAA;IACxB,CAAC;IAED,KAAK,CAAC,IAAI,CACR,IAA0B,EAC1B,UAAgE,EAAE;QAElE,MAAM,EAAE,IAAI,EAAE,GAAG,MAAM,IAAI,CAAC,MAAM,CAAC,OAAO,CAA0B;YAClE,GAAG,EAAE,mBAAmB;YACxB,MAAM,EAAE,MAAM;YACd,IAAI,EAAE,IAAI;SACX,CAAC,CAAA;QACF,MAAM,oBAAoB,GACxB,OAAO,CAAC,oBAAoB,IAAI,IAAI,CAAC,QAAQ,CAAC,oBAAoB,CAAA;QACpE,IAAI,oBAAoB,KAAK,KAAK,EAAE,CAAC;YACnC,OAAO,MAAM,oBAAoB,CAC/B,IAAI,CAAC,cAAc,EACnB,sBAAsB,CAAC,UAAU,CAAC,IAAI,CAAC,MAAM,EAAE;gBAC7C,GAAG,IAAI,CAAC,QAAQ;gBAChB,oBAAoB,EAAE,KAAK;aAC5B,CAAC,EACF,OAAO,oBAAoB,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,oBAAoB,CACtE,CAAA;QACH,CAAC;QACD,OAAO,IAAI,CAAC,cAAc,CAAA;IAC5B,CAAC;IAED,KAAK,CAAC,QAAQ,CACZ,IAA8B,EAC9B,UAAgE,EAAE;QAElE,MAAM,EAAE,IAAI,EAAE,GAAG,MAAM,IAAI,CAAC,MAAM,CAAC,OAAO,CAA8B;YACtE,GAAG,EAAE,wBAAwB;YAC7B,MAAM,EAAE,MAAM;YACd,IAAI,EAAE,IAAI;SACX,CAAC,CAAA;QACF,MAAM,oBAAoB,GACxB,OAAO,CAAC,oBAAoB,IAAI,IAAI,CAAC,QAAQ,CAAC,oBAAoB,CAAA;QACpE,IAAI,oBAAoB,KAAK,KAAK,EAAE,CAAC;YACnC,OAAO,MAAM,oBAAoB,CAC/B,IAAI,CAAC,cAAc,EACnB,sBAAsB,CAAC,UAAU,CAAC,IAAI,CAAC,MAAM,EAAE;gBAC7C,GAAG,IAAI,CAAC,QAAQ;gBAChB,oBAAoB,EAAE,KAAK;aAC5B,CAAC,EACF,OAAO,oBAAoB,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,oBAAoB,CACtE,CAAA;QACH,CAAC;QACD,OAAO,IAAI,CAAC,cAAc,CAAA;IAC5B,CAAC;IAED,KAAK,CAAC,IAAI,CACR,IAA4B;QAE5B,MAAM,EAAE,IAAI,EAAE,GAAG,MAAM,IAAI,CAAC,MAAM,CAAC,OAAO,CAA0B;YAClE,GAAG,EAAE,mBAAmB;YACxB,MAAM,EAAE,MAAM;YACd,IAAI,EAAE,IAAI;SACX,CAAC,CAAA;QAEF,OAAO,IAAI,CAAC,WAAW,CAAA;IACzB,CAAC;IAED,KAAK,CAAC,GAAG,CACP,IAAyB,EACzB,UAAgE,EAAE;QAElE,MAAM,EAAE,IAAI,EAAE,GAAG,MAAM,IAAI,CAAC,MAAM,CAAC,OAAO,CAAyB;YACjE,GAAG,EAAE,kBAAkB;YACvB,MAAM,EAAE,MAAM;YACd,IAAI,EAAE,IAAI;SACX,CAAC,CAAA;QACF,MAAM,oBAAoB,GACxB,OAAO,CAAC,oBAAoB,IAAI,IAAI,CAAC,QAAQ,CAAC,oBAAoB,CAAA;QACpE,IAAI,oBAAoB,KAAK,KAAK,EAAE,CAAC;YACnC,OAAO,MAAM,oBAAoB,CAC/B,IAAI,CAAC,cAAc,EACnB,sBAAsB,CAAC,UAAU,CAAC,IAAI,CAAC,MAAM,EAAE;gBAC7C,GAAG,IAAI,CAAC,QAAQ;gBAChB,oBAAoB,EAAE,KAAK;aAC5B,CAAC,EACF,OAAO,oBAAoB,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,oBAAoB,CACtE,CAAA;QACH,CAAC;QACD,OAAO,IAAI,CAAC,cAAc,CAAA;IAC5B,CAAC;IAED,KAAK,CAAC,UAAU,CACd,IAAgC,EAChC,UAAgE,EAAE;QAElE,MAAM,EAAE,IAAI,EAAE,GAAG,MAAM,IAAI,CAAC,MAAM,CAAC,OAAO,CAAgC;YACxE,GAAG,EAAE,2BAA2B;YAChC,MAAM,EAAE,MAAM;YACd,IAAI,EAAE,IAAI;SACX,CAAC,CAAA;QACF,MAAM,oBAAoB,GACxB,OAAO,CAAC,oBAAoB,IAAI,IAAI,CAAC,QAAQ,CAAC,oBAAoB,CAAA;QACpE,IAAI,oBAAoB,KAAK,KAAK,EAAE,CAAC;YACnC,OAAO,MAAM,oBAAoB,CAC/B,IAAI,CAAC,cAAc,EACnB,sBAAsB,CAAC,UAAU,CAAC,IAAI,CAAC,MAAM,EAAE;gBAC7C,GAAG,IAAI,CAAC,QAAQ;gBAChB,oBAAoB,EAAE,KAAK;aAC5B,CAAC,EACF,OAAO,oBAAoB,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,oBAAoB,CACtE,CAAA;QACH,CAAC;QACD,OAAO,IAAI,CAAC,cAAc,CAAA;IAC5B,CAAC;IAED,KAAK,CAAC,MAAM,CAAC,IAA4B;QACvC,MAAM,IAAI,CAAC,MAAM,CAAC,OAAO,CAA4B;YACnD,GAAG,EAAE,qBAAqB;YAC1B,MAAM,EAAE,MAAM;YACd,IAAI,EAAE,IAAI;SACX,CAAC,CAAA;IACJ,CAAC;CACF"}
package/lib/version.d.ts CHANGED
@@ -1,2 +1,2 @@
1
- declare const seamapiJavascriptHttpVersion = "0.22.0";
1
+ declare const seamapiJavascriptHttpVersion = "0.23.0";
2
2
  export default seamapiJavascriptHttpVersion;
package/lib/version.js CHANGED
@@ -1,3 +1,3 @@
1
- const seamapiJavascriptHttpVersion = '0.22.0';
1
+ const seamapiJavascriptHttpVersion = '0.23.0';
2
2
  export default seamapiJavascriptHttpVersion;
3
3
  //# sourceMappingURL=version.js.map
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@seamapi/http",
3
- "version": "0.22.0",
3
+ "version": "0.23.0",
4
4
  "description": "JavaScript HTTP client for the Seam API written in TypeScript.",
5
5
  "type": "module",
6
6
  "main": "index.js",
@@ -84,7 +84,7 @@
84
84
  "npm": ">= 9.0.0"
85
85
  },
86
86
  "peerDependencies": {
87
- "@seamapi/types": "^1.126.0",
87
+ "@seamapi/types": "^1.129.0",
88
88
  "type-fest": "^4.0.0"
89
89
  },
90
90
  "peerDependenciesMeta": {
@@ -103,7 +103,7 @@
103
103
  },
104
104
  "devDependencies": {
105
105
  "@seamapi/fake-seam-connect": "^1.44.2",
106
- "@seamapi/types": "1.126.0",
106
+ "@seamapi/types": "1.129.0",
107
107
  "@types/eslint": "^8.44.2",
108
108
  "@types/node": "^20.8.10",
109
109
  "ava": "^5.0.1",
@@ -31,7 +31,9 @@ import {
31
31
  limitToSeamHttpRequestOptions,
32
32
  parseOptions,
33
33
  } from 'lib/seam/connect/parse-options.js'
34
+ import { resolveActionAttempt } from 'lib/seam/connect/resolve-action-attempt.js'
34
35
 
36
+ import { SeamHttpActionAttempts } from './action-attempts.js'
35
37
  import { SeamHttpClientSessions } from './client-sessions.js'
36
38
  import { SeamHttpThermostatsClimateSettingSchedules } from './thermostats-climate-setting-schedules.js'
37
39
 
@@ -161,12 +163,28 @@ export class SeamHttpThermostats {
161
163
  )
162
164
  }
163
165
 
164
- async cool(body?: ThermostatsCoolBody): Promise<void> {
165
- await this.client.request<ThermostatsCoolResponse>({
166
+ async cool(
167
+ body?: ThermostatsCoolBody,
168
+ options: Pick<SeamHttpRequestOptions, 'waitForActionAttempt'> = {},
169
+ ): Promise<ThermostatsCoolResponse['action_attempt']> {
170
+ const { data } = await this.client.request<ThermostatsCoolResponse>({
166
171
  url: '/thermostats/cool',
167
172
  method: 'post',
168
173
  data: body,
169
174
  })
175
+ const waitForActionAttempt =
176
+ options.waitForActionAttempt ?? this.defaults.waitForActionAttempt
177
+ if (waitForActionAttempt !== false) {
178
+ return await resolveActionAttempt(
179
+ data.action_attempt,
180
+ SeamHttpActionAttempts.fromClient(this.client, {
181
+ ...this.defaults,
182
+ waitForActionAttempt: false,
183
+ }),
184
+ typeof waitForActionAttempt === 'boolean' ? {} : waitForActionAttempt,
185
+ )
186
+ }
187
+ return data.action_attempt
170
188
  }
171
189
 
172
190
  async get(
@@ -181,20 +199,52 @@ export class SeamHttpThermostats {
181
199
  return data.thermostat
182
200
  }
183
201
 
184
- async heat(body?: ThermostatsHeatBody): Promise<void> {
185
- await this.client.request<ThermostatsHeatResponse>({
202
+ async heat(
203
+ body?: ThermostatsHeatBody,
204
+ options: Pick<SeamHttpRequestOptions, 'waitForActionAttempt'> = {},
205
+ ): Promise<ThermostatsHeatResponse['action_attempt']> {
206
+ const { data } = await this.client.request<ThermostatsHeatResponse>({
186
207
  url: '/thermostats/heat',
187
208
  method: 'post',
188
209
  data: body,
189
210
  })
211
+ const waitForActionAttempt =
212
+ options.waitForActionAttempt ?? this.defaults.waitForActionAttempt
213
+ if (waitForActionAttempt !== false) {
214
+ return await resolveActionAttempt(
215
+ data.action_attempt,
216
+ SeamHttpActionAttempts.fromClient(this.client, {
217
+ ...this.defaults,
218
+ waitForActionAttempt: false,
219
+ }),
220
+ typeof waitForActionAttempt === 'boolean' ? {} : waitForActionAttempt,
221
+ )
222
+ }
223
+ return data.action_attempt
190
224
  }
191
225
 
192
- async heatCool(body?: ThermostatsHeatCoolBody): Promise<void> {
193
- await this.client.request<ThermostatsHeatCoolResponse>({
226
+ async heatCool(
227
+ body?: ThermostatsHeatCoolBody,
228
+ options: Pick<SeamHttpRequestOptions, 'waitForActionAttempt'> = {},
229
+ ): Promise<ThermostatsHeatCoolResponse['action_attempt']> {
230
+ const { data } = await this.client.request<ThermostatsHeatCoolResponse>({
194
231
  url: '/thermostats/heat_cool',
195
232
  method: 'post',
196
233
  data: body,
197
234
  })
235
+ const waitForActionAttempt =
236
+ options.waitForActionAttempt ?? this.defaults.waitForActionAttempt
237
+ if (waitForActionAttempt !== false) {
238
+ return await resolveActionAttempt(
239
+ data.action_attempt,
240
+ SeamHttpActionAttempts.fromClient(this.client, {
241
+ ...this.defaults,
242
+ waitForActionAttempt: false,
243
+ }),
244
+ typeof waitForActionAttempt === 'boolean' ? {} : waitForActionAttempt,
245
+ )
246
+ }
247
+ return data.action_attempt
198
248
  }
199
249
 
200
250
  async list(
@@ -209,20 +259,52 @@ export class SeamHttpThermostats {
209
259
  return data.thermostats
210
260
  }
211
261
 
212
- async off(body?: ThermostatsOffBody): Promise<void> {
213
- await this.client.request<ThermostatsOffResponse>({
262
+ async off(
263
+ body?: ThermostatsOffBody,
264
+ options: Pick<SeamHttpRequestOptions, 'waitForActionAttempt'> = {},
265
+ ): Promise<ThermostatsOffResponse['action_attempt']> {
266
+ const { data } = await this.client.request<ThermostatsOffResponse>({
214
267
  url: '/thermostats/off',
215
268
  method: 'post',
216
269
  data: body,
217
270
  })
271
+ const waitForActionAttempt =
272
+ options.waitForActionAttempt ?? this.defaults.waitForActionAttempt
273
+ if (waitForActionAttempt !== false) {
274
+ return await resolveActionAttempt(
275
+ data.action_attempt,
276
+ SeamHttpActionAttempts.fromClient(this.client, {
277
+ ...this.defaults,
278
+ waitForActionAttempt: false,
279
+ }),
280
+ typeof waitForActionAttempt === 'boolean' ? {} : waitForActionAttempt,
281
+ )
282
+ }
283
+ return data.action_attempt
218
284
  }
219
285
 
220
- async setFanMode(body?: ThermostatsSetFanModeBody): Promise<void> {
221
- await this.client.request<ThermostatsSetFanModeResponse>({
286
+ async setFanMode(
287
+ body?: ThermostatsSetFanModeBody,
288
+ options: Pick<SeamHttpRequestOptions, 'waitForActionAttempt'> = {},
289
+ ): Promise<ThermostatsSetFanModeResponse['action_attempt']> {
290
+ const { data } = await this.client.request<ThermostatsSetFanModeResponse>({
222
291
  url: '/thermostats/set_fan_mode',
223
292
  method: 'post',
224
293
  data: body,
225
294
  })
295
+ const waitForActionAttempt =
296
+ options.waitForActionAttempt ?? this.defaults.waitForActionAttempt
297
+ if (waitForActionAttempt !== false) {
298
+ return await resolveActionAttempt(
299
+ data.action_attempt,
300
+ SeamHttpActionAttempts.fromClient(this.client, {
301
+ ...this.defaults,
302
+ waitForActionAttempt: false,
303
+ }),
304
+ typeof waitForActionAttempt === 'boolean' ? {} : waitForActionAttempt,
305
+ )
306
+ }
307
+ return data.action_attempt
226
308
  }
227
309
 
228
310
  async update(body?: ThermostatsUpdateBody): Promise<void> {
@@ -240,7 +322,10 @@ export type ThermostatsCoolResponse = SetNonNullable<
240
322
  Required<RouteResponse<'/thermostats/cool'>>
241
323
  >
242
324
 
243
- export type ThermostatsCoolOptions = never
325
+ export type ThermostatsCoolOptions = Pick<
326
+ SeamHttpRequestOptions,
327
+ 'waitForActionAttempt'
328
+ >
244
329
 
245
330
  export type ThermostatsGetParams = RouteRequestBody<'/thermostats/get'>
246
331
 
@@ -256,7 +341,10 @@ export type ThermostatsHeatResponse = SetNonNullable<
256
341
  Required<RouteResponse<'/thermostats/heat'>>
257
342
  >
258
343
 
259
- export type ThermostatsHeatOptions = never
344
+ export type ThermostatsHeatOptions = Pick<
345
+ SeamHttpRequestOptions,
346
+ 'waitForActionAttempt'
347
+ >
260
348
 
261
349
  export type ThermostatsHeatCoolBody = RouteRequestBody<'/thermostats/heat_cool'>
262
350
 
@@ -264,7 +352,10 @@ export type ThermostatsHeatCoolResponse = SetNonNullable<
264
352
  Required<RouteResponse<'/thermostats/heat_cool'>>
265
353
  >
266
354
 
267
- export type ThermostatsHeatCoolOptions = never
355
+ export type ThermostatsHeatCoolOptions = Pick<
356
+ SeamHttpRequestOptions,
357
+ 'waitForActionAttempt'
358
+ >
268
359
 
269
360
  export type ThermostatsListParams = RouteRequestBody<'/thermostats/list'>
270
361
 
@@ -280,7 +371,10 @@ export type ThermostatsOffResponse = SetNonNullable<
280
371
  Required<RouteResponse<'/thermostats/off'>>
281
372
  >
282
373
 
283
- export type ThermostatsOffOptions = never
374
+ export type ThermostatsOffOptions = Pick<
375
+ SeamHttpRequestOptions,
376
+ 'waitForActionAttempt'
377
+ >
284
378
 
285
379
  export type ThermostatsSetFanModeBody =
286
380
  RouteRequestBody<'/thermostats/set_fan_mode'>
@@ -289,7 +383,10 @@ export type ThermostatsSetFanModeResponse = SetNonNullable<
289
383
  Required<RouteResponse<'/thermostats/set_fan_mode'>>
290
384
  >
291
385
 
292
- export type ThermostatsSetFanModeOptions = never
386
+ export type ThermostatsSetFanModeOptions = Pick<
387
+ SeamHttpRequestOptions,
388
+ 'waitForActionAttempt'
389
+ >
293
390
 
294
391
  export type ThermostatsUpdateBody = RouteRequestBody<'/thermostats/update'>
295
392
 
@@ -1,3 +1,3 @@
1
- const seamapiJavascriptHttpVersion = '0.22.0'
1
+ const seamapiJavascriptHttpVersion = '0.23.0'
2
2
 
3
3
  export default seamapiJavascriptHttpVersion