@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
@@ -0,0 +1,72 @@
1
+ /*
2
+ * Automatically generated by generate-routes.ts.
3
+ * Do not edit this file or add other files to this directory.
4
+ */
5
+ import { createAxiosClient } from '../../../../lib/seam/connect/axios.js';
6
+ import { isSeamHttpOptionsWithApiKey, isSeamHttpOptionsWithClient, isSeamHttpOptionsWithClientSessionToken, SeamHttpInvalidOptionsError, } from '../../../../lib/seam/connect/client-options.js';
7
+ import { parseOptions } from '../../../../lib/seam/connect/parse-options.js';
8
+ export class SeamHttpNoiseSensorsNoiseThresholds {
9
+ constructor(apiKeyOrOptions) {
10
+ const options = parseOptions(apiKeyOrOptions);
11
+ this.client = createAxiosClient(options);
12
+ }
13
+ static fromClient(client, options = {}) {
14
+ const opts = { ...options, client };
15
+ if (!isSeamHttpOptionsWithClient(opts)) {
16
+ throw new SeamHttpInvalidOptionsError('Missing client');
17
+ }
18
+ return new SeamHttpNoiseSensorsNoiseThresholds(opts);
19
+ }
20
+ static fromApiKey(apiKey, options = {}) {
21
+ const opts = { ...options, apiKey };
22
+ if (!isSeamHttpOptionsWithApiKey(opts)) {
23
+ throw new SeamHttpInvalidOptionsError('Missing apiKey');
24
+ }
25
+ return new SeamHttpNoiseSensorsNoiseThresholds(opts);
26
+ }
27
+ static fromClientSessionToken(clientSessionToken, options = {}) {
28
+ const opts = { ...options, clientSessionToken };
29
+ if (!isSeamHttpOptionsWithClientSessionToken(opts)) {
30
+ throw new SeamHttpInvalidOptionsError('Missing clientSessionToken');
31
+ }
32
+ return new SeamHttpNoiseSensorsNoiseThresholds(opts);
33
+ }
34
+ async create(body) {
35
+ await this.client.request({
36
+ url: '/noise_sensors/noise_thresholds/create',
37
+ method: 'post',
38
+ data: body,
39
+ });
40
+ }
41
+ async delete(body) {
42
+ await this.client.request({
43
+ url: '/noise_sensors/noise_thresholds/delete',
44
+ method: 'post',
45
+ data: body,
46
+ });
47
+ }
48
+ async get(body) {
49
+ const { data } = await this.client.request({
50
+ url: '/noise_sensors/noise_thresholds/get',
51
+ method: 'post',
52
+ data: body,
53
+ });
54
+ return data.noise_threshold;
55
+ }
56
+ async list(body) {
57
+ const { data } = await this.client.request({
58
+ url: '/noise_sensors/noise_thresholds/list',
59
+ method: 'post',
60
+ data: body,
61
+ });
62
+ return data.noise_thresholds;
63
+ }
64
+ async update(body) {
65
+ await this.client.request({
66
+ url: '/noise_sensors/noise_thresholds/update',
67
+ method: 'post',
68
+ data: body,
69
+ });
70
+ }
71
+ }
72
+ //# sourceMappingURL=noise-sensors-noise-thresholds.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"noise-sensors-noise-thresholds.js","sourceRoot":"","sources":["../../../../src/lib/seam/connect/routes/noise-sensors-noise-thresholds.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,11 @@
1
+ import type { Axios } from 'axios';
2
+ import { type SeamHttpOptions, type SeamHttpOptionsWithApiKey, type SeamHttpOptionsWithClient, type SeamHttpOptionsWithClientSessionToken } from '../../../../lib/seam/connect/client-options.js';
3
+ import { SeamHttpNoiseSensorsNoiseThresholds } from './noise-sensors-noise-thresholds.js';
4
+ export declare class SeamHttpNoiseSensors {
5
+ client: Axios;
6
+ constructor(apiKeyOrOptions: string | SeamHttpOptions);
7
+ static fromClient(client: SeamHttpOptionsWithClient['client'], options?: Omit<SeamHttpOptionsWithClient, 'client'>): SeamHttpNoiseSensors;
8
+ static fromApiKey(apiKey: SeamHttpOptionsWithApiKey['apiKey'], options?: Omit<SeamHttpOptionsWithApiKey, 'apiKey'>): SeamHttpNoiseSensors;
9
+ static fromClientSessionToken(clientSessionToken: SeamHttpOptionsWithClientSessionToken['clientSessionToken'], options?: Omit<SeamHttpOptionsWithClientSessionToken, 'clientSessionToken'>): SeamHttpNoiseSensors;
10
+ get noiseThresholds(): SeamHttpNoiseSensorsNoiseThresholds;
11
+ }
@@ -0,0 +1,39 @@
1
+ /*
2
+ * Automatically generated by generate-routes.ts.
3
+ * Do not edit this file or add other files to this directory.
4
+ */
5
+ import { createAxiosClient } from '../../../../lib/seam/connect/axios.js';
6
+ import { isSeamHttpOptionsWithApiKey, isSeamHttpOptionsWithClient, isSeamHttpOptionsWithClientSessionToken, SeamHttpInvalidOptionsError, } from '../../../../lib/seam/connect/client-options.js';
7
+ import { parseOptions } from '../../../../lib/seam/connect/parse-options.js';
8
+ import { SeamHttpNoiseSensorsNoiseThresholds } from './noise-sensors-noise-thresholds.js';
9
+ export class SeamHttpNoiseSensors {
10
+ constructor(apiKeyOrOptions) {
11
+ const options = parseOptions(apiKeyOrOptions);
12
+ this.client = createAxiosClient(options);
13
+ }
14
+ static fromClient(client, options = {}) {
15
+ const opts = { ...options, client };
16
+ if (!isSeamHttpOptionsWithClient(opts)) {
17
+ throw new SeamHttpInvalidOptionsError('Missing client');
18
+ }
19
+ return new SeamHttpNoiseSensors(opts);
20
+ }
21
+ static fromApiKey(apiKey, options = {}) {
22
+ const opts = { ...options, apiKey };
23
+ if (!isSeamHttpOptionsWithApiKey(opts)) {
24
+ throw new SeamHttpInvalidOptionsError('Missing apiKey');
25
+ }
26
+ return new SeamHttpNoiseSensors(opts);
27
+ }
28
+ static fromClientSessionToken(clientSessionToken, options = {}) {
29
+ const opts = { ...options, clientSessionToken };
30
+ if (!isSeamHttpOptionsWithClientSessionToken(opts)) {
31
+ throw new SeamHttpInvalidOptionsError('Missing clientSessionToken');
32
+ }
33
+ return new SeamHttpNoiseSensors(opts);
34
+ }
35
+ get noiseThresholds() {
36
+ return SeamHttpNoiseSensorsNoiseThresholds.fromClient(this.client);
37
+ }
38
+ }
39
+ //# sourceMappingURL=noise-sensors.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"noise-sensors.js","sourceRoot":"","sources":["../../../../src/lib/seam/connect/routes/noise-sensors.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAIH,OAAO,EAAE,iBAAiB,EAAE,MAAM,2BAA2B,CAAA;AAC7D,OAAO,EACL,2BAA2B,EAC3B,2BAA2B,EAC3B,uCAAuC,EACvC,2BAA2B,GAK5B,MAAM,oCAAoC,CAAA;AAC3C,OAAO,EAAE,YAAY,EAAE,MAAM,mCAAmC,CAAA;AAEhE,OAAO,EAAE,mCAAmC,EAAE,MAAM,qCAAqC,CAAA;AAEzF,MAAM,OAAO,oBAAoB;IAG/B,YAAY,eAAyC;QACnD,MAAM,OAAO,GAAG,YAAY,CAAC,eAAe,CAAC,CAAA;QAC7C,IAAI,CAAC,MAAM,GAAG,iBAAiB,CAAC,OAAO,CAAC,CAAA;IAC1C,CAAC;IAED,MAAM,CAAC,UAAU,CACf,MAA2C,EAC3C,UAAqD,EAAE;QAEvD,MAAM,IAAI,GAAG,EAAE,GAAG,OAAO,EAAE,MAAM,EAAE,CAAA;QACnC,IAAI,CAAC,2BAA2B,CAAC,IAAI,CAAC,EAAE;YACtC,MAAM,IAAI,2BAA2B,CAAC,gBAAgB,CAAC,CAAA;SACxD;QACD,OAAO,IAAI,oBAAoB,CAAC,IAAI,CAAC,CAAA;IACvC,CAAC;IAED,MAAM,CAAC,UAAU,CACf,MAA2C,EAC3C,UAAqD,EAAE;QAEvD,MAAM,IAAI,GAAG,EAAE,GAAG,OAAO,EAAE,MAAM,EAAE,CAAA;QACnC,IAAI,CAAC,2BAA2B,CAAC,IAAI,CAAC,EAAE;YACtC,MAAM,IAAI,2BAA2B,CAAC,gBAAgB,CAAC,CAAA;SACxD;QACD,OAAO,IAAI,oBAAoB,CAAC,IAAI,CAAC,CAAA;IACvC,CAAC;IAED,MAAM,CAAC,sBAAsB,CAC3B,kBAA+E,EAC/E,UAGI,EAAE;QAEN,MAAM,IAAI,GAAG,EAAE,GAAG,OAAO,EAAE,kBAAkB,EAAE,CAAA;QAC/C,IAAI,CAAC,uCAAuC,CAAC,IAAI,CAAC,EAAE;YAClD,MAAM,IAAI,2BAA2B,CAAC,4BAA4B,CAAC,CAAA;SACpE;QACD,OAAO,IAAI,oBAAoB,CAAC,IAAI,CAAC,CAAA;IACvC,CAAC;IAED,IAAI,eAAe;QACjB,OAAO,mCAAmC,CAAC,UAAU,CAAC,IAAI,CAAC,MAAM,CAAC,CAAA;IACpE,CAAC;CACF"}
@@ -0,0 +1,26 @@
1
+ import type { RouteRequestBody, RouteResponse } from '@seamapi/types/connect';
2
+ import type { Axios } from 'axios';
3
+ import type { SetNonNullable } from 'type-fest';
4
+ import { type SeamHttpOptions, type SeamHttpOptionsWithApiKey, type SeamHttpOptionsWithClient, type SeamHttpOptionsWithClientSessionToken } from '../../../../lib/seam/connect/client-options.js';
5
+ export declare class SeamHttpThermostatsClimateSettingSchedules {
6
+ client: Axios;
7
+ constructor(apiKeyOrOptions: string | SeamHttpOptions);
8
+ static fromClient(client: SeamHttpOptionsWithClient['client'], options?: Omit<SeamHttpOptionsWithClient, 'client'>): SeamHttpThermostatsClimateSettingSchedules;
9
+ static fromApiKey(apiKey: SeamHttpOptionsWithApiKey['apiKey'], options?: Omit<SeamHttpOptionsWithApiKey, 'apiKey'>): SeamHttpThermostatsClimateSettingSchedules;
10
+ static fromClientSessionToken(clientSessionToken: SeamHttpOptionsWithClientSessionToken['clientSessionToken'], options?: Omit<SeamHttpOptionsWithClientSessionToken, 'clientSessionToken'>): SeamHttpThermostatsClimateSettingSchedules;
11
+ create(body: ThermostatsClimateSettingSchedulesCreateBody): Promise<ThermostatsClimateSettingSchedulesCreateResponse['climate_setting_schedule']>;
12
+ delete(body: ThermostatsClimateSettingSchedulesDeleteBody): Promise<void>;
13
+ get(body: ThermostatsClimateSettingSchedulesGetBody): Promise<ThermostatsClimateSettingSchedulesGetResponse['climate_setting_schedule']>;
14
+ list(body: ThermostatsClimateSettingSchedulesListBody): Promise<ThermostatsClimateSettingSchedulesListResponse['climate_setting_schedules']>;
15
+ update(body: ThermostatsClimateSettingSchedulesUpdateBody): Promise<void>;
16
+ }
17
+ export type ThermostatsClimateSettingSchedulesCreateBody = SetNonNullable<Required<RouteRequestBody<'/thermostats/climate_setting_schedules/create'>>>;
18
+ export type ThermostatsClimateSettingSchedulesCreateResponse = SetNonNullable<Required<RouteResponse<'/thermostats/climate_setting_schedules/create'>>>;
19
+ export type ThermostatsClimateSettingSchedulesDeleteBody = SetNonNullable<Required<RouteRequestBody<'/thermostats/climate_setting_schedules/delete'>>>;
20
+ export type ThermostatsClimateSettingSchedulesDeleteResponse = SetNonNullable<Required<RouteResponse<'/thermostats/climate_setting_schedules/delete'>>>;
21
+ export type ThermostatsClimateSettingSchedulesGetBody = SetNonNullable<Required<RouteRequestBody<'/thermostats/climate_setting_schedules/get'>>>;
22
+ export type ThermostatsClimateSettingSchedulesGetResponse = SetNonNullable<Required<RouteResponse<'/thermostats/climate_setting_schedules/get'>>>;
23
+ export type ThermostatsClimateSettingSchedulesListBody = SetNonNullable<Required<RouteRequestBody<'/thermostats/climate_setting_schedules/list'>>>;
24
+ export type ThermostatsClimateSettingSchedulesListResponse = SetNonNullable<Required<RouteResponse<'/thermostats/climate_setting_schedules/list'>>>;
25
+ export type ThermostatsClimateSettingSchedulesUpdateBody = SetNonNullable<Required<RouteRequestBody<'/thermostats/climate_setting_schedules/update'>>>;
26
+ export type ThermostatsClimateSettingSchedulesUpdateResponse = SetNonNullable<Required<RouteResponse<'/thermostats/climate_setting_schedules/update'>>>;
@@ -0,0 +1,73 @@
1
+ /*
2
+ * Automatically generated by generate-routes.ts.
3
+ * Do not edit this file or add other files to this directory.
4
+ */
5
+ import { createAxiosClient } from '../../../../lib/seam/connect/axios.js';
6
+ import { isSeamHttpOptionsWithApiKey, isSeamHttpOptionsWithClient, isSeamHttpOptionsWithClientSessionToken, SeamHttpInvalidOptionsError, } from '../../../../lib/seam/connect/client-options.js';
7
+ import { parseOptions } from '../../../../lib/seam/connect/parse-options.js';
8
+ export class SeamHttpThermostatsClimateSettingSchedules {
9
+ constructor(apiKeyOrOptions) {
10
+ const options = parseOptions(apiKeyOrOptions);
11
+ this.client = createAxiosClient(options);
12
+ }
13
+ static fromClient(client, options = {}) {
14
+ const opts = { ...options, client };
15
+ if (!isSeamHttpOptionsWithClient(opts)) {
16
+ throw new SeamHttpInvalidOptionsError('Missing client');
17
+ }
18
+ return new SeamHttpThermostatsClimateSettingSchedules(opts);
19
+ }
20
+ static fromApiKey(apiKey, options = {}) {
21
+ const opts = { ...options, apiKey };
22
+ if (!isSeamHttpOptionsWithApiKey(opts)) {
23
+ throw new SeamHttpInvalidOptionsError('Missing apiKey');
24
+ }
25
+ return new SeamHttpThermostatsClimateSettingSchedules(opts);
26
+ }
27
+ static fromClientSessionToken(clientSessionToken, options = {}) {
28
+ const opts = { ...options, clientSessionToken };
29
+ if (!isSeamHttpOptionsWithClientSessionToken(opts)) {
30
+ throw new SeamHttpInvalidOptionsError('Missing clientSessionToken');
31
+ }
32
+ return new SeamHttpThermostatsClimateSettingSchedules(opts);
33
+ }
34
+ async create(body) {
35
+ const { data } = await this.client.request({
36
+ url: '/thermostats/climate_setting_schedules/create',
37
+ method: 'post',
38
+ data: body,
39
+ });
40
+ return data.climate_setting_schedule;
41
+ }
42
+ async delete(body) {
43
+ await this.client.request({
44
+ url: '/thermostats/climate_setting_schedules/delete',
45
+ method: 'post',
46
+ data: body,
47
+ });
48
+ }
49
+ async get(body) {
50
+ const { data } = await this.client.request({
51
+ url: '/thermostats/climate_setting_schedules/get',
52
+ method: 'post',
53
+ data: body,
54
+ });
55
+ return data.climate_setting_schedule;
56
+ }
57
+ async list(body) {
58
+ const { data } = await this.client.request({
59
+ url: '/thermostats/climate_setting_schedules/list',
60
+ method: 'post',
61
+ data: body,
62
+ });
63
+ return data.climate_setting_schedules;
64
+ }
65
+ async update(body) {
66
+ await this.client.request({
67
+ url: '/thermostats/climate_setting_schedules/update',
68
+ method: 'post',
69
+ data: body,
70
+ });
71
+ }
72
+ }
73
+ //# sourceMappingURL=thermostats-climate-setting-schedules.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"thermostats-climate-setting-schedules.js","sourceRoot":"","sources":["../../../../src/lib/seam/connect/routes/thermostats-climate-setting-schedules.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,37 @@
1
+ import type { RouteRequestBody, RouteResponse } from '@seamapi/types/connect';
2
+ import type { Axios } from 'axios';
3
+ import type { SetNonNullable } from 'type-fest';
4
+ import { type SeamHttpOptions, type SeamHttpOptionsWithApiKey, type SeamHttpOptionsWithClient, type SeamHttpOptionsWithClientSessionToken } from '../../../../lib/seam/connect/client-options.js';
5
+ import { SeamHttpThermostatsClimateSettingSchedules } from './thermostats-climate-setting-schedules.js';
6
+ export declare class SeamHttpThermostats {
7
+ client: Axios;
8
+ constructor(apiKeyOrOptions: string | SeamHttpOptions);
9
+ static fromClient(client: SeamHttpOptionsWithClient['client'], options?: Omit<SeamHttpOptionsWithClient, 'client'>): SeamHttpThermostats;
10
+ static fromApiKey(apiKey: SeamHttpOptionsWithApiKey['apiKey'], options?: Omit<SeamHttpOptionsWithApiKey, 'apiKey'>): SeamHttpThermostats;
11
+ static fromClientSessionToken(clientSessionToken: SeamHttpOptionsWithClientSessionToken['clientSessionToken'], options?: Omit<SeamHttpOptionsWithClientSessionToken, 'clientSessionToken'>): SeamHttpThermostats;
12
+ get climateSettingSchedules(): SeamHttpThermostatsClimateSettingSchedules;
13
+ cool(body: ThermostatsCoolBody): Promise<void>;
14
+ get(body: ThermostatsGetBody): Promise<ThermostatsGetResponse['thermostat']>;
15
+ heat(body: ThermostatsHeatBody): Promise<void>;
16
+ heatCool(body: ThermostatsHeatCoolBody): Promise<void>;
17
+ list(body: ThermostatsListBody): Promise<ThermostatsListResponse['thermostats']>;
18
+ off(body: ThermostatsOffBody): Promise<void>;
19
+ setFanMode(body: ThermostatsSetFanModeBody): Promise<void>;
20
+ update(body: ThermostatsUpdateBody): Promise<void>;
21
+ }
22
+ export type ThermostatsCoolBody = SetNonNullable<Required<RouteRequestBody<'/thermostats/cool'>>>;
23
+ export type ThermostatsCoolResponse = SetNonNullable<Required<RouteResponse<'/thermostats/cool'>>>;
24
+ export type ThermostatsGetBody = SetNonNullable<Required<RouteRequestBody<'/thermostats/get'>>>;
25
+ export type ThermostatsGetResponse = SetNonNullable<Required<RouteResponse<'/thermostats/get'>>>;
26
+ export type ThermostatsHeatBody = SetNonNullable<Required<RouteRequestBody<'/thermostats/heat'>>>;
27
+ export type ThermostatsHeatResponse = SetNonNullable<Required<RouteResponse<'/thermostats/heat'>>>;
28
+ export type ThermostatsHeatCoolBody = SetNonNullable<Required<RouteRequestBody<'/thermostats/heat_cool'>>>;
29
+ export type ThermostatsHeatCoolResponse = SetNonNullable<Required<RouteResponse<'/thermostats/heat_cool'>>>;
30
+ export type ThermostatsListBody = SetNonNullable<Required<RouteRequestBody<'/thermostats/list'>>>;
31
+ export type ThermostatsListResponse = SetNonNullable<Required<RouteResponse<'/thermostats/list'>>>;
32
+ export type ThermostatsOffBody = SetNonNullable<Required<RouteRequestBody<'/thermostats/off'>>>;
33
+ export type ThermostatsOffResponse = SetNonNullable<Required<RouteResponse<'/thermostats/off'>>>;
34
+ export type ThermostatsSetFanModeBody = SetNonNullable<Required<RouteRequestBody<'/thermostats/set_fan_mode'>>>;
35
+ export type ThermostatsSetFanModeResponse = SetNonNullable<Required<RouteResponse<'/thermostats/set_fan_mode'>>>;
36
+ export type ThermostatsUpdateBody = SetNonNullable<Required<RouteRequestBody<'/thermostats/update'>>>;
37
+ export type ThermostatsUpdateResponse = SetNonNullable<Required<RouteResponse<'/thermostats/update'>>>;
@@ -0,0 +1,97 @@
1
+ /*
2
+ * Automatically generated by generate-routes.ts.
3
+ * Do not edit this file or add other files to this directory.
4
+ */
5
+ import { createAxiosClient } from '../../../../lib/seam/connect/axios.js';
6
+ import { isSeamHttpOptionsWithApiKey, isSeamHttpOptionsWithClient, isSeamHttpOptionsWithClientSessionToken, SeamHttpInvalidOptionsError, } from '../../../../lib/seam/connect/client-options.js';
7
+ import { parseOptions } from '../../../../lib/seam/connect/parse-options.js';
8
+ import { SeamHttpThermostatsClimateSettingSchedules } from './thermostats-climate-setting-schedules.js';
9
+ export class SeamHttpThermostats {
10
+ constructor(apiKeyOrOptions) {
11
+ const options = parseOptions(apiKeyOrOptions);
12
+ this.client = createAxiosClient(options);
13
+ }
14
+ static fromClient(client, options = {}) {
15
+ const opts = { ...options, client };
16
+ if (!isSeamHttpOptionsWithClient(opts)) {
17
+ throw new SeamHttpInvalidOptionsError('Missing client');
18
+ }
19
+ return new SeamHttpThermostats(opts);
20
+ }
21
+ static fromApiKey(apiKey, options = {}) {
22
+ const opts = { ...options, apiKey };
23
+ if (!isSeamHttpOptionsWithApiKey(opts)) {
24
+ throw new SeamHttpInvalidOptionsError('Missing apiKey');
25
+ }
26
+ return new SeamHttpThermostats(opts);
27
+ }
28
+ static fromClientSessionToken(clientSessionToken, options = {}) {
29
+ const opts = { ...options, clientSessionToken };
30
+ if (!isSeamHttpOptionsWithClientSessionToken(opts)) {
31
+ throw new SeamHttpInvalidOptionsError('Missing clientSessionToken');
32
+ }
33
+ return new SeamHttpThermostats(opts);
34
+ }
35
+ get climateSettingSchedules() {
36
+ return SeamHttpThermostatsClimateSettingSchedules.fromClient(this.client);
37
+ }
38
+ async cool(body) {
39
+ await this.client.request({
40
+ url: '/thermostats/cool',
41
+ method: 'post',
42
+ data: body,
43
+ });
44
+ }
45
+ async get(body) {
46
+ const { data } = await this.client.request({
47
+ url: '/thermostats/get',
48
+ method: 'post',
49
+ data: body,
50
+ });
51
+ return data.thermostat;
52
+ }
53
+ async heat(body) {
54
+ await this.client.request({
55
+ url: '/thermostats/heat',
56
+ method: 'post',
57
+ data: body,
58
+ });
59
+ }
60
+ async heatCool(body) {
61
+ await this.client.request({
62
+ url: '/thermostats/heat_cool',
63
+ method: 'post',
64
+ data: body,
65
+ });
66
+ }
67
+ async list(body) {
68
+ const { data } = await this.client.request({
69
+ url: '/thermostats/list',
70
+ method: 'post',
71
+ data: body,
72
+ });
73
+ return data.thermostats;
74
+ }
75
+ async off(body) {
76
+ await this.client.request({
77
+ url: '/thermostats/off',
78
+ method: 'post',
79
+ data: body,
80
+ });
81
+ }
82
+ async setFanMode(body) {
83
+ await this.client.request({
84
+ url: '/thermostats/set_fan_mode',
85
+ method: 'post',
86
+ data: body,
87
+ });
88
+ }
89
+ async update(body) {
90
+ await this.client.request({
91
+ url: '/thermostats/update',
92
+ method: 'post',
93
+ data: body,
94
+ });
95
+ }
96
+ }
97
+ //# sourceMappingURL=thermostats.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"thermostats.js","sourceRoot":"","sources":["../../../../src/lib/seam/connect/routes/thermostats.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,23 @@
1
+ import type { RouteRequestBody, RouteRequestParams, RouteResponse } from '@seamapi/types/connect';
2
+ import type { Axios } from 'axios';
3
+ import type { SetNonNullable } from 'type-fest';
4
+ import { type SeamHttpOptions, type SeamHttpOptionsWithApiKey, type SeamHttpOptionsWithClient, type SeamHttpOptionsWithClientSessionToken } from '../../../../lib/seam/connect/client-options.js';
5
+ export declare class SeamHttpWebhooks {
6
+ client: Axios;
7
+ constructor(apiKeyOrOptions: string | SeamHttpOptions);
8
+ static fromClient(client: SeamHttpOptionsWithClient['client'], options?: Omit<SeamHttpOptionsWithClient, 'client'>): SeamHttpWebhooks;
9
+ static fromApiKey(apiKey: SeamHttpOptionsWithApiKey['apiKey'], options?: Omit<SeamHttpOptionsWithApiKey, 'apiKey'>): SeamHttpWebhooks;
10
+ static fromClientSessionToken(clientSessionToken: SeamHttpOptionsWithClientSessionToken['clientSessionToken'], options?: Omit<SeamHttpOptionsWithClientSessionToken, 'clientSessionToken'>): SeamHttpWebhooks;
11
+ create(body: WebhooksCreateBody): Promise<WebhooksCreateResponse['webhook']>;
12
+ delete(body: WebhooksDeleteBody): Promise<void>;
13
+ get(body: WebhooksGetBody): Promise<WebhooksGetResponse['webhook']>;
14
+ list(params?: WebhooksListParams): Promise<WebhooksListResponse['webhooks']>;
15
+ }
16
+ export type WebhooksCreateBody = SetNonNullable<Required<RouteRequestBody<'/webhooks/create'>>>;
17
+ export type WebhooksCreateResponse = SetNonNullable<Required<RouteResponse<'/webhooks/create'>>>;
18
+ export type WebhooksDeleteBody = SetNonNullable<Required<RouteRequestBody<'/webhooks/delete'>>>;
19
+ export type WebhooksDeleteResponse = SetNonNullable<Required<RouteResponse<'/webhooks/delete'>>>;
20
+ export type WebhooksGetBody = SetNonNullable<Required<RouteRequestBody<'/webhooks/get'>>>;
21
+ export type WebhooksGetResponse = SetNonNullable<Required<RouteResponse<'/webhooks/get'>>>;
22
+ export type WebhooksListParams = SetNonNullable<Required<RouteRequestParams<'/webhooks/list'>>>;
23
+ export type WebhooksListResponse = SetNonNullable<Required<RouteResponse<'/webhooks/list'>>>;
@@ -0,0 +1,66 @@
1
+ /*
2
+ * Automatically generated by generate-routes.ts.
3
+ * Do not edit this file or add other files to this directory.
4
+ */
5
+ import { createAxiosClient } from '../../../../lib/seam/connect/axios.js';
6
+ import { isSeamHttpOptionsWithApiKey, isSeamHttpOptionsWithClient, isSeamHttpOptionsWithClientSessionToken, SeamHttpInvalidOptionsError, } from '../../../../lib/seam/connect/client-options.js';
7
+ import { parseOptions } from '../../../../lib/seam/connect/parse-options.js';
8
+ export class SeamHttpWebhooks {
9
+ constructor(apiKeyOrOptions) {
10
+ const options = parseOptions(apiKeyOrOptions);
11
+ this.client = createAxiosClient(options);
12
+ }
13
+ static fromClient(client, options = {}) {
14
+ const opts = { ...options, client };
15
+ if (!isSeamHttpOptionsWithClient(opts)) {
16
+ throw new SeamHttpInvalidOptionsError('Missing client');
17
+ }
18
+ return new SeamHttpWebhooks(opts);
19
+ }
20
+ static fromApiKey(apiKey, options = {}) {
21
+ const opts = { ...options, apiKey };
22
+ if (!isSeamHttpOptionsWithApiKey(opts)) {
23
+ throw new SeamHttpInvalidOptionsError('Missing apiKey');
24
+ }
25
+ return new SeamHttpWebhooks(opts);
26
+ }
27
+ static fromClientSessionToken(clientSessionToken, options = {}) {
28
+ const opts = { ...options, clientSessionToken };
29
+ if (!isSeamHttpOptionsWithClientSessionToken(opts)) {
30
+ throw new SeamHttpInvalidOptionsError('Missing clientSessionToken');
31
+ }
32
+ return new SeamHttpWebhooks(opts);
33
+ }
34
+ async create(body) {
35
+ const { data } = await this.client.request({
36
+ url: '/webhooks/create',
37
+ method: 'post',
38
+ data: body,
39
+ });
40
+ return data.webhook;
41
+ }
42
+ async delete(body) {
43
+ await this.client.request({
44
+ url: '/webhooks/delete',
45
+ method: 'post',
46
+ data: body,
47
+ });
48
+ }
49
+ async get(body) {
50
+ const { data } = await this.client.request({
51
+ url: '/webhooks/get',
52
+ method: 'post',
53
+ data: body,
54
+ });
55
+ return data.webhook;
56
+ }
57
+ async list(params) {
58
+ const { data } = await this.client.request({
59
+ url: '/webhooks/list',
60
+ method: 'get',
61
+ params,
62
+ });
63
+ return data.webhooks;
64
+ }
65
+ }
66
+ //# sourceMappingURL=webhooks.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"webhooks.js","sourceRoot":"","sources":["../../../../src/lib/seam/connect/routes/webhooks.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAUH,OAAO,EAAE,iBAAiB,EAAE,MAAM,2BAA2B,CAAA;AAC7D,OAAO,EACL,2BAA2B,EAC3B,2BAA2B,EAC3B,uCAAuC,EACvC,2BAA2B,GAK5B,MAAM,oCAAoC,CAAA;AAC3C,OAAO,EAAE,YAAY,EAAE,MAAM,mCAAmC,CAAA;AAEhE,MAAM,OAAO,gBAAgB;IAG3B,YAAY,eAAyC;QACnD,MAAM,OAAO,GAAG,YAAY,CAAC,eAAe,CAAC,CAAA;QAC7C,IAAI,CAAC,MAAM,GAAG,iBAAiB,CAAC,OAAO,CAAC,CAAA;IAC1C,CAAC;IAED,MAAM,CAAC,UAAU,CACf,MAA2C,EAC3C,UAAqD,EAAE;QAEvD,MAAM,IAAI,GAAG,EAAE,GAAG,OAAO,EAAE,MAAM,EAAE,CAAA;QACnC,IAAI,CAAC,2BAA2B,CAAC,IAAI,CAAC,EAAE;YACtC,MAAM,IAAI,2BAA2B,CAAC,gBAAgB,CAAC,CAAA;SACxD;QACD,OAAO,IAAI,gBAAgB,CAAC,IAAI,CAAC,CAAA;IACnC,CAAC;IAED,MAAM,CAAC,UAAU,CACf,MAA2C,EAC3C,UAAqD,EAAE;QAEvD,MAAM,IAAI,GAAG,EAAE,GAAG,OAAO,EAAE,MAAM,EAAE,CAAA;QACnC,IAAI,CAAC,2BAA2B,CAAC,IAAI,CAAC,EAAE;YACtC,MAAM,IAAI,2BAA2B,CAAC,gBAAgB,CAAC,CAAA;SACxD;QACD,OAAO,IAAI,gBAAgB,CAAC,IAAI,CAAC,CAAA;IACnC,CAAC;IAED,MAAM,CAAC,sBAAsB,CAC3B,kBAA+E,EAC/E,UAGI,EAAE;QAEN,MAAM,IAAI,GAAG,EAAE,GAAG,OAAO,EAAE,kBAAkB,EAAE,CAAA;QAC/C,IAAI,CAAC,uCAAuC,CAAC,IAAI,CAAC,EAAE;YAClD,MAAM,IAAI,2BAA2B,CAAC,4BAA4B,CAAC,CAAA;SACpE;QACD,OAAO,IAAI,gBAAgB,CAAC,IAAI,CAAC,CAAA;IACnC,CAAC;IAED,KAAK,CAAC,MAAM,CACV,IAAwB;QAExB,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,OAAO,IAAI,CAAC,OAAO,CAAA;IACrB,CAAC;IAED,KAAK,CAAC,MAAM,CAAC,IAAwB;QACnC,MAAM,IAAI,CAAC,MAAM,CAAC,OAAO,CAAyB;YAChD,GAAG,EAAE,kBAAkB;YACvB,MAAM,EAAE,MAAM;YACd,IAAI,EAAE,IAAI;SACX,CAAC,CAAA;IACJ,CAAC;IAED,KAAK,CAAC,GAAG,CAAC,IAAqB;QAC7B,MAAM,EAAE,IAAI,EAAE,GAAG,MAAM,IAAI,CAAC,MAAM,CAAC,OAAO,CAAsB;YAC9D,GAAG,EAAE,eAAe;YACpB,MAAM,EAAE,MAAM;YACd,IAAI,EAAE,IAAI;SACX,CAAC,CAAA;QACF,OAAO,IAAI,CAAC,OAAO,CAAA;IACrB,CAAC;IAED,KAAK,CAAC,IAAI,CACR,MAA2B;QAE3B,MAAM,EAAE,IAAI,EAAE,GAAG,MAAM,IAAI,CAAC,MAAM,CAAC,OAAO,CAAuB;YAC/D,GAAG,EAAE,gBAAgB;YACrB,MAAM,EAAE,KAAK;YACb,MAAM;SACP,CAAC,CAAA;QACF,OAAO,IAAI,CAAC,QAAQ,CAAA;IACtB,CAAC;CACF"}
@@ -1,11 +1,20 @@
1
- import type { RouteRequestParams, RouteResponse } from '@seamapi/types/connect';
2
- import { Axios } from 'axios';
1
+ import type { RouteRequestBody, RouteRequestParams, RouteResponse } from '@seamapi/types/connect';
2
+ import type { Axios } from 'axios';
3
3
  import type { SetNonNullable } from 'type-fest';
4
- import type { SeamHttpOptions } from '../../../../lib/seam/connect/client-options.js';
5
- export declare class WorkspacesHttp {
4
+ import { type SeamHttpOptions, type SeamHttpOptionsWithApiKey, type SeamHttpOptionsWithClient, type SeamHttpOptionsWithClientSessionToken } from '../../../../lib/seam/connect/client-options.js';
5
+ export declare class SeamHttpWorkspaces {
6
6
  client: Axios;
7
- constructor(apiKeyOrOptionsOrClient: Axios | string | SeamHttpOptions);
7
+ constructor(apiKeyOrOptions: string | SeamHttpOptions);
8
+ static fromClient(client: SeamHttpOptionsWithClient['client'], options?: Omit<SeamHttpOptionsWithClient, 'client'>): SeamHttpWorkspaces;
9
+ static fromApiKey(apiKey: SeamHttpOptionsWithApiKey['apiKey'], options?: Omit<SeamHttpOptionsWithApiKey, 'apiKey'>): SeamHttpWorkspaces;
10
+ static fromClientSessionToken(clientSessionToken: SeamHttpOptionsWithClientSessionToken['clientSessionToken'], options?: Omit<SeamHttpOptionsWithClientSessionToken, 'clientSessionToken'>): SeamHttpWorkspaces;
8
11
  get(params?: WorkspacesGetParams): Promise<WorkspacesGetResponse['workspace']>;
12
+ list(params?: WorkspacesListParams): Promise<WorkspacesListResponse['workspaces']>;
13
+ resetSandbox(body: WorkspacesResetSandboxBody): Promise<void>;
9
14
  }
10
15
  export type WorkspacesGetParams = SetNonNullable<Required<RouteRequestParams<'/workspaces/get'>>>;
11
16
  export type WorkspacesGetResponse = SetNonNullable<Required<RouteResponse<'/workspaces/get'>>>;
17
+ export type WorkspacesListParams = SetNonNullable<Required<RouteRequestParams<'/workspaces/list'>>>;
18
+ export type WorkspacesListResponse = SetNonNullable<Required<RouteResponse<'/workspaces/list'>>>;
19
+ export type WorkspacesResetSandboxBody = SetNonNullable<Required<RouteRequestBody<'/workspaces/reset_sandbox'>>>;
20
+ export type WorkspacesResetSandboxResponse = SetNonNullable<Required<RouteResponse<'/workspaces/reset_sandbox'>>>;
@@ -1,20 +1,58 @@
1
- import { Axios } from 'axios';
1
+ /*
2
+ * Automatically generated by generate-routes.ts.
3
+ * Do not edit this file or add other files to this directory.
4
+ */
2
5
  import { createAxiosClient } from '../../../../lib/seam/connect/axios.js';
6
+ import { isSeamHttpOptionsWithApiKey, isSeamHttpOptionsWithClient, isSeamHttpOptionsWithClientSessionToken, SeamHttpInvalidOptionsError, } from '../../../../lib/seam/connect/client-options.js';
3
7
  import { parseOptions } from '../../../../lib/seam/connect/parse-options.js';
4
- export class WorkspacesHttp {
5
- constructor(apiKeyOrOptionsOrClient) {
6
- if (apiKeyOrOptionsOrClient instanceof Axios) {
7
- this.client = apiKeyOrOptionsOrClient;
8
- return;
9
- }
10
- const options = parseOptions(apiKeyOrOptionsOrClient);
8
+ export class SeamHttpWorkspaces {
9
+ constructor(apiKeyOrOptions) {
10
+ const options = parseOptions(apiKeyOrOptions);
11
11
  this.client = createAxiosClient(options);
12
12
  }
13
- async get(params = {}) {
14
- const { data } = await this.client.get('/workspaces/get', {
13
+ static fromClient(client, options = {}) {
14
+ const opts = { ...options, client };
15
+ if (!isSeamHttpOptionsWithClient(opts)) {
16
+ throw new SeamHttpInvalidOptionsError('Missing client');
17
+ }
18
+ return new SeamHttpWorkspaces(opts);
19
+ }
20
+ static fromApiKey(apiKey, options = {}) {
21
+ const opts = { ...options, apiKey };
22
+ if (!isSeamHttpOptionsWithApiKey(opts)) {
23
+ throw new SeamHttpInvalidOptionsError('Missing apiKey');
24
+ }
25
+ return new SeamHttpWorkspaces(opts);
26
+ }
27
+ static fromClientSessionToken(clientSessionToken, options = {}) {
28
+ const opts = { ...options, clientSessionToken };
29
+ if (!isSeamHttpOptionsWithClientSessionToken(opts)) {
30
+ throw new SeamHttpInvalidOptionsError('Missing clientSessionToken');
31
+ }
32
+ return new SeamHttpWorkspaces(opts);
33
+ }
34
+ async get(params) {
35
+ const { data } = await this.client.request({
36
+ url: '/workspaces/get',
37
+ method: 'get',
15
38
  params,
16
39
  });
17
40
  return data.workspace;
18
41
  }
42
+ async list(params) {
43
+ const { data } = await this.client.request({
44
+ url: '/workspaces/list',
45
+ method: 'get',
46
+ params,
47
+ });
48
+ return data.workspaces;
49
+ }
50
+ async resetSandbox(body) {
51
+ await this.client.request({
52
+ url: '/workspaces/reset_sandbox',
53
+ method: 'post',
54
+ data: body,
55
+ });
56
+ }
19
57
  }
20
58
  //# sourceMappingURL=workspaces.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"workspaces.js","sourceRoot":"","sources":["../../../../src/lib/seam/connect/routes/workspaces.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,KAAK,EAAE,MAAM,OAAO,CAAA;AAG7B,OAAO,EAAE,iBAAiB,EAAE,MAAM,2BAA2B,CAAA;AAE7D,OAAO,EAAE,YAAY,EAAE,MAAM,mCAAmC,CAAA;AAEhE,MAAM,OAAO,cAAc;IAGzB,YAAY,uBAAyD;QACnE,IAAI,uBAAuB,YAAY,KAAK,EAAE;YAC5C,IAAI,CAAC,MAAM,GAAG,uBAAuB,CAAA;YACrC,OAAM;SACP;QAED,MAAM,OAAO,GAAG,YAAY,CAAC,uBAAuB,CAAC,CAAA;QACrD,IAAI,CAAC,MAAM,GAAG,iBAAiB,CAAC,OAAO,CAAC,CAAA;IAC1C,CAAC;IAED,KAAK,CAAC,GAAG,CACP,SAA8B,EAAE;QAEhC,MAAM,EAAE,IAAI,EAAE,GAAG,MAAM,IAAI,CAAC,MAAM,CAAC,GAAG,CACpC,iBAAiB,EACjB;YACE,MAAM;SACP,CACF,CAAA;QACD,OAAO,IAAI,CAAC,SAAS,CAAA;IACvB,CAAC;CACF"}
1
+ {"version":3,"file":"workspaces.js","sourceRoot":"","sources":["../../../../src/lib/seam/connect/routes/workspaces.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAUH,OAAO,EAAE,iBAAiB,EAAE,MAAM,2BAA2B,CAAA;AAC7D,OAAO,EACL,2BAA2B,EAC3B,2BAA2B,EAC3B,uCAAuC,EACvC,2BAA2B,GAK5B,MAAM,oCAAoC,CAAA;AAC3C,OAAO,EAAE,YAAY,EAAE,MAAM,mCAAmC,CAAA;AAEhE,MAAM,OAAO,kBAAkB;IAG7B,YAAY,eAAyC;QACnD,MAAM,OAAO,GAAG,YAAY,CAAC,eAAe,CAAC,CAAA;QAC7C,IAAI,CAAC,MAAM,GAAG,iBAAiB,CAAC,OAAO,CAAC,CAAA;IAC1C,CAAC;IAED,MAAM,CAAC,UAAU,CACf,MAA2C,EAC3C,UAAqD,EAAE;QAEvD,MAAM,IAAI,GAAG,EAAE,GAAG,OAAO,EAAE,MAAM,EAAE,CAAA;QACnC,IAAI,CAAC,2BAA2B,CAAC,IAAI,CAAC,EAAE;YACtC,MAAM,IAAI,2BAA2B,CAAC,gBAAgB,CAAC,CAAA;SACxD;QACD,OAAO,IAAI,kBAAkB,CAAC,IAAI,CAAC,CAAA;IACrC,CAAC;IAED,MAAM,CAAC,UAAU,CACf,MAA2C,EAC3C,UAAqD,EAAE;QAEvD,MAAM,IAAI,GAAG,EAAE,GAAG,OAAO,EAAE,MAAM,EAAE,CAAA;QACnC,IAAI,CAAC,2BAA2B,CAAC,IAAI,CAAC,EAAE;YACtC,MAAM,IAAI,2BAA2B,CAAC,gBAAgB,CAAC,CAAA;SACxD;QACD,OAAO,IAAI,kBAAkB,CAAC,IAAI,CAAC,CAAA;IACrC,CAAC;IAED,MAAM,CAAC,sBAAsB,CAC3B,kBAA+E,EAC/E,UAGI,EAAE;QAEN,MAAM,IAAI,GAAG,EAAE,GAAG,OAAO,EAAE,kBAAkB,EAAE,CAAA;QAC/C,IAAI,CAAC,uCAAuC,CAAC,IAAI,CAAC,EAAE;YAClD,MAAM,IAAI,2BAA2B,CAAC,4BAA4B,CAAC,CAAA;SACpE;QACD,OAAO,IAAI,kBAAkB,CAAC,IAAI,CAAC,CAAA;IACrC,CAAC;IAED,KAAK,CAAC,GAAG,CACP,MAA4B;QAE5B,MAAM,EAAE,IAAI,EAAE,GAAG,MAAM,IAAI,CAAC,MAAM,CAAC,OAAO,CAAwB;YAChE,GAAG,EAAE,iBAAiB;YACtB,MAAM,EAAE,KAAK;YACb,MAAM;SACP,CAAC,CAAA;QACF,OAAO,IAAI,CAAC,SAAS,CAAA;IACvB,CAAC;IAED,KAAK,CAAC,IAAI,CACR,MAA6B;QAE7B,MAAM,EAAE,IAAI,EAAE,GAAG,MAAM,IAAI,CAAC,MAAM,CAAC,OAAO,CAAyB;YACjE,GAAG,EAAE,kBAAkB;YACvB,MAAM,EAAE,KAAK;YACb,MAAM;SACP,CAAC,CAAA;QACF,OAAO,IAAI,CAAC,UAAU,CAAA;IACxB,CAAC;IAED,KAAK,CAAC,YAAY,CAAC,IAAgC;QACjD,MAAM,IAAI,CAAC,MAAM,CAAC,OAAO,CAAiC;YACxD,GAAG,EAAE,2BAA2B;YAChC,MAAM,EAAE,MAAM;YACd,IAAI,EAAE,IAAI;SACX,CAAC,CAAA;IACJ,CAAC;CACF"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@seamapi/http",
3
- "version": "0.0.2",
3
+ "version": "0.1.0",
4
4
  "description": "JavaScript HTTP client for the Seam API written in TypeScript.",
5
5
  "type": "module",
6
6
  "main": "index.js",
@@ -62,6 +62,7 @@
62
62
  "postversion": "git push --follow-tags",
63
63
  "example": "tsx examples",
64
64
  "example:inspect": "tsx --inspect examples",
65
+ "generate": "tsx generate-routes.ts",
65
66
  "format": "eslint --ignore-path .gitignore --fix .",
66
67
  "preformat": "prettier --write --ignore-path .gitignore .",
67
68
  "report": "c8 report"
@@ -87,9 +88,11 @@
87
88
  },
88
89
  "devDependencies": {
89
90
  "@seamapi/types": "^1.14.0",
91
+ "@types/eslint": "^8.44.2",
90
92
  "@types/node": "^18.11.18",
91
93
  "ava": "^5.0.1",
92
94
  "c8": "^8.0.0",
95
+ "change-case": "^4.1.2",
93
96
  "concurrently": "^8.2.1",
94
97
  "del-cli": "^5.0.0",
95
98
  "eslint": "^8.9.0",