@seamapi/http 0.1.0 → 0.2.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (122) hide show
  1. package/dist/connect.cjs +752 -366
  2. package/dist/connect.cjs.map +1 -1
  3. package/dist/connect.d.cts +186 -142
  4. package/lib/params-serializer.d.ts +5 -0
  5. package/lib/params-serializer.js +42 -0
  6. package/lib/params-serializer.js.map +1 -0
  7. package/lib/seam/connect/auth.d.ts +3 -2
  8. package/lib/seam/connect/auth.js +55 -4
  9. package/lib/seam/connect/auth.js.map +1 -1
  10. package/lib/seam/connect/client.d.ts +10 -22
  11. package/lib/seam/connect/client.js +17 -77
  12. package/lib/seam/connect/client.js.map +1 -1
  13. package/lib/seam/connect/index.d.ts +2 -1
  14. package/lib/seam/connect/index.js +2 -1
  15. package/lib/seam/connect/index.js.map +1 -1
  16. package/lib/seam/connect/{client-options.d.ts → options.d.ts} +7 -7
  17. package/lib/seam/connect/{client-options.js → options.js} +5 -10
  18. package/lib/seam/connect/options.js.map +1 -0
  19. package/lib/seam/connect/parse-options.d.ts +6 -2
  20. package/lib/seam/connect/parse-options.js +34 -16
  21. package/lib/seam/connect/parse-options.js.map +1 -1
  22. package/lib/seam/connect/routes/access-codes-unmanaged.d.ts +10 -9
  23. package/lib/seam/connect/routes/access-codes-unmanaged.js +26 -14
  24. package/lib/seam/connect/routes/access-codes-unmanaged.js.map +1 -1
  25. package/lib/seam/connect/routes/access-codes.d.ts +15 -14
  26. package/lib/seam/connect/routes/access-codes.js +29 -17
  27. package/lib/seam/connect/routes/access-codes.js.map +1 -1
  28. package/lib/seam/connect/routes/acs-access-groups.d.ts +13 -12
  29. package/lib/seam/connect/routes/acs-access-groups.js +26 -14
  30. package/lib/seam/connect/routes/acs-access-groups.js.map +1 -1
  31. package/lib/seam/connect/routes/acs-credentials.d.ts +9 -8
  32. package/lib/seam/connect/routes/acs-credentials.js +26 -14
  33. package/lib/seam/connect/routes/acs-credentials.js.map +1 -1
  34. package/lib/seam/connect/routes/acs-systems.d.ts +9 -8
  35. package/lib/seam/connect/routes/acs-systems.js +29 -17
  36. package/lib/seam/connect/routes/acs-systems.js.map +1 -1
  37. package/lib/seam/connect/routes/acs-users.d.ts +18 -11
  38. package/lib/seam/connect/routes/acs-users.js +40 -14
  39. package/lib/seam/connect/routes/acs-users.js.map +1 -1
  40. package/lib/seam/connect/routes/acs.d.ts +5 -4
  41. package/lib/seam/connect/routes/acs.js +26 -14
  42. package/lib/seam/connect/routes/acs.js.map +1 -1
  43. package/lib/seam/connect/routes/action-attempts.d.ts +7 -6
  44. package/lib/seam/connect/routes/action-attempts.js +26 -14
  45. package/lib/seam/connect/routes/action-attempts.js.map +1 -1
  46. package/lib/seam/connect/routes/client-sessions.d.ts +13 -9
  47. package/lib/seam/connect/routes/client-sessions.js +33 -14
  48. package/lib/seam/connect/routes/client-sessions.js.map +1 -1
  49. package/lib/seam/connect/routes/connect-webviews.d.ts +11 -10
  50. package/lib/seam/connect/routes/connect-webviews.js +29 -17
  51. package/lib/seam/connect/routes/connect-webviews.js.map +1 -1
  52. package/lib/seam/connect/routes/connected-accounts.d.ts +8 -7
  53. package/lib/seam/connect/routes/connected-accounts.js +26 -14
  54. package/lib/seam/connect/routes/connected-accounts.js.map +1 -1
  55. package/lib/seam/connect/routes/devices-unmanaged.d.ts +8 -7
  56. package/lib/seam/connect/routes/devices-unmanaged.js +26 -14
  57. package/lib/seam/connect/routes/devices-unmanaged.js.map +1 -1
  58. package/lib/seam/connect/routes/devices.d.ts +10 -9
  59. package/lib/seam/connect/routes/devices.js +26 -14
  60. package/lib/seam/connect/routes/devices.js.map +1 -1
  61. package/lib/seam/connect/routes/events.d.ts +7 -6
  62. package/lib/seam/connect/routes/events.js +26 -14
  63. package/lib/seam/connect/routes/events.js.map +1 -1
  64. package/lib/seam/connect/routes/locks.d.ts +9 -8
  65. package/lib/seam/connect/routes/locks.js +26 -14
  66. package/lib/seam/connect/routes/locks.js.map +1 -1
  67. package/lib/seam/connect/routes/noise-sensors-noise-thresholds.d.ts +10 -9
  68. package/lib/seam/connect/routes/noise-sensors-noise-thresholds.js +26 -14
  69. package/lib/seam/connect/routes/noise-sensors-noise-thresholds.js.map +1 -1
  70. package/lib/seam/connect/routes/noise-sensors.d.ts +5 -4
  71. package/lib/seam/connect/routes/noise-sensors.js +26 -14
  72. package/lib/seam/connect/routes/noise-sensors.js.map +1 -1
  73. package/lib/seam/connect/routes/thermostats-climate-setting-schedules.d.ts +10 -9
  74. package/lib/seam/connect/routes/thermostats-climate-setting-schedules.js +26 -14
  75. package/lib/seam/connect/routes/thermostats-climate-setting-schedules.js.map +1 -1
  76. package/lib/seam/connect/routes/thermostats.d.ts +13 -12
  77. package/lib/seam/connect/routes/thermostats.js +26 -14
  78. package/lib/seam/connect/routes/thermostats.js.map +1 -1
  79. package/lib/seam/connect/routes/webhooks.d.ts +9 -8
  80. package/lib/seam/connect/routes/webhooks.js +26 -14
  81. package/lib/seam/connect/routes/webhooks.js.map +1 -1
  82. package/lib/seam/connect/routes/workspaces.d.ts +8 -7
  83. package/lib/seam/connect/routes/workspaces.js +26 -14
  84. package/lib/seam/connect/routes/workspaces.js.map +1 -1
  85. package/lib/seam/connect/seam-http.d.ts +24 -0
  86. package/lib/seam/connect/seam-http.js +82 -0
  87. package/lib/seam/connect/seam-http.js.map +1 -0
  88. package/package.json +7 -4
  89. package/src/lib/params-serializer.ts +55 -0
  90. package/src/lib/seam/connect/auth.ts +94 -6
  91. package/src/lib/seam/connect/client.ts +22 -127
  92. package/src/lib/seam/connect/env.d.ts +11 -0
  93. package/src/lib/seam/connect/index.ts +2 -1
  94. package/src/lib/seam/connect/{client-options.ts → options.ts} +13 -19
  95. package/src/lib/seam/connect/parse-options.ts +50 -23
  96. package/src/lib/seam/connect/routes/access-codes-unmanaged.ts +44 -31
  97. package/src/lib/seam/connect/routes/access-codes.ts +48 -48
  98. package/src/lib/seam/connect/routes/acs-access-groups.ts +49 -40
  99. package/src/lib/seam/connect/routes/acs-credentials.ts +40 -28
  100. package/src/lib/seam/connect/routes/acs-systems.ts +40 -30
  101. package/src/lib/seam/connect/routes/acs-users.ts +70 -36
  102. package/src/lib/seam/connect/routes/acs.ts +33 -17
  103. package/src/lib/seam/connect/routes/action-attempts.ts +36 -22
  104. package/src/lib/seam/connect/routes/client-sessions.ts +58 -30
  105. package/src/lib/seam/connect/routes/connect-webviews.ts +45 -34
  106. package/src/lib/seam/connect/routes/connected-accounts.ts +40 -25
  107. package/src/lib/seam/connect/routes/devices-unmanaged.ts +39 -25
  108. package/src/lib/seam/connect/routes/devices.ts +39 -31
  109. package/src/lib/seam/connect/routes/events.ts +36 -22
  110. package/src/lib/seam/connect/routes/locks.ts +38 -28
  111. package/src/lib/seam/connect/routes/noise-sensors-noise-thresholds.ts +47 -31
  112. package/src/lib/seam/connect/routes/noise-sensors.ts +33 -17
  113. package/src/lib/seam/connect/routes/thermostats-climate-setting-schedules.ts +47 -31
  114. package/src/lib/seam/connect/routes/thermostats.ts +42 -40
  115. package/src/lib/seam/connect/routes/webhooks.ts +38 -28
  116. package/src/lib/seam/connect/routes/workspaces.ts +38 -25
  117. package/src/lib/seam/connect/seam-http.ts +141 -0
  118. package/lib/seam/connect/axios.d.ts +0 -3
  119. package/lib/seam/connect/axios.js +0 -19
  120. package/lib/seam/connect/axios.js.map +0 -1
  121. package/lib/seam/connect/client-options.js.map +0 -1
  122. package/src/lib/seam/connect/axios.ts +0 -25
@@ -2,34 +2,46 @@
2
2
  * Automatically generated by generate-routes.ts.
3
3
  * Do not edit this file or add other files to this directory.
4
4
  */
5
- import { createAxiosClient } from '../../../../lib/seam/connect/axios.js';
6
- import { isSeamHttpOptionsWithApiKey, isSeamHttpOptionsWithClient, isSeamHttpOptionsWithClientSessionToken, SeamHttpInvalidOptionsError, } from '../../../../lib/seam/connect/client-options.js';
5
+ import { warnOnInsecureuserIdentifierKey } from '../../../../lib/seam/connect/auth.js';
6
+ import { createClient } from '../../../../lib/seam/connect/client.js';
7
+ import { isSeamHttpOptionsWithApiKey, isSeamHttpOptionsWithClient, isSeamHttpOptionsWithClientSessionToken, SeamHttpInvalidOptionsError, } from '../../../../lib/seam/connect/options.js';
7
8
  import { parseOptions } from '../../../../lib/seam/connect/parse-options.js';
9
+ import { SeamHttpClientSessions } from './client-sessions.js';
8
10
  export class SeamHttpConnectedAccounts {
9
- constructor(apiKeyOrOptions) {
10
- const options = parseOptions(apiKeyOrOptions);
11
- this.client = createAxiosClient(options);
11
+ constructor(apiKeyOrOptions = {}) {
12
+ const clientOptions = parseOptions(apiKeyOrOptions);
13
+ this.client = createClient(clientOptions);
12
14
  }
13
15
  static fromClient(client, options = {}) {
14
- const opts = { ...options, client };
15
- if (!isSeamHttpOptionsWithClient(opts)) {
16
+ const constructorOptions = { ...options, client };
17
+ if (!isSeamHttpOptionsWithClient(constructorOptions)) {
16
18
  throw new SeamHttpInvalidOptionsError('Missing client');
17
19
  }
18
- return new SeamHttpConnectedAccounts(opts);
20
+ return new SeamHttpConnectedAccounts(constructorOptions);
19
21
  }
20
22
  static fromApiKey(apiKey, options = {}) {
21
- const opts = { ...options, apiKey };
22
- if (!isSeamHttpOptionsWithApiKey(opts)) {
23
+ const constructorOptions = { ...options, apiKey };
24
+ if (!isSeamHttpOptionsWithApiKey(constructorOptions)) {
23
25
  throw new SeamHttpInvalidOptionsError('Missing apiKey');
24
26
  }
25
- return new SeamHttpConnectedAccounts(opts);
27
+ return new SeamHttpConnectedAccounts(constructorOptions);
26
28
  }
27
29
  static fromClientSessionToken(clientSessionToken, options = {}) {
28
- const opts = { ...options, clientSessionToken };
29
- if (!isSeamHttpOptionsWithClientSessionToken(opts)) {
30
+ const constructorOptions = { ...options, clientSessionToken };
31
+ if (!isSeamHttpOptionsWithClientSessionToken(constructorOptions)) {
30
32
  throw new SeamHttpInvalidOptionsError('Missing clientSessionToken');
31
33
  }
32
- return new SeamHttpConnectedAccounts(opts);
34
+ return new SeamHttpConnectedAccounts(constructorOptions);
35
+ }
36
+ static async fromPublishableKey(publishableKey, userIdentifierKey, options = {}) {
37
+ warnOnInsecureuserIdentifierKey(userIdentifierKey);
38
+ const clientOptions = parseOptions({ ...options, publishableKey });
39
+ const client = createClient(clientOptions);
40
+ const clientSessions = SeamHttpClientSessions.fromClient(client);
41
+ const { token } = await clientSessions.getOrCreate({
42
+ user_identifier_key: userIdentifierKey,
43
+ });
44
+ return SeamHttpConnectedAccounts.fromClientSessionToken(token, options);
33
45
  }
34
46
  async delete(body) {
35
47
  await this.client.request({
@@ -1 +1 @@
1
- {"version":3,"file":"connected-accounts.js","sourceRoot":"","sources":["../../../../src/lib/seam/connect/routes/connected-accounts.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,yBAAyB;IAGpC,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,yBAAyB,CAAC,IAAI,CAAC,CAAA;IAC5C,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,yBAAyB,CAAC,IAAI,CAAC,CAAA;IAC5C,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,yBAAyB,CAAC,IAAI,CAAC,CAAA;IAC5C,CAAC;IAED,KAAK,CAAC,MAAM,CAAC,IAAiC;QAC5C,MAAM,IAAI,CAAC,MAAM,CAAC,OAAO,CAAkC;YACzD,GAAG,EAAE,4BAA4B;YACjC,MAAM,EAAE,MAAM;YACd,IAAI,EAAE,IAAI;SACX,CAAC,CAAA;IACJ,CAAC;IAED,KAAK,CAAC,GAAG,CACP,IAA8B;QAE9B,MAAM,EAAE,IAAI,EAAE,GAAG,MAAM,IAAI,CAAC,MAAM,CAAC,OAAO,CAA+B;YACvE,GAAG,EAAE,yBAAyB;YAC9B,MAAM,EAAE,MAAM;YACd,IAAI,EAAE,IAAI;SACX,CAAC,CAAA;QACF,OAAO,IAAI,CAAC,iBAAiB,CAAA;IAC/B,CAAC;IAED,KAAK,CAAC,IAAI,CACR,MAAoC;QAEpC,MAAM,EAAE,IAAI,EAAE,GAAG,MAAM,IAAI,CAAC,MAAM,CAAC,OAAO,CAAgC;YACxE,GAAG,EAAE,0BAA0B;YAC/B,MAAM,EAAE,KAAK;YACb,MAAM;SACP,CAAC,CAAA;QACF,OAAO,IAAI,CAAC,kBAAkB,CAAA;IAChC,CAAC;CACF"}
1
+ {"version":3,"file":"connected-accounts.js","sourceRoot":"","sources":["../../../../src/lib/seam/connect/routes/connected-accounts.ts"],"names":[],"mappings":"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"}
@@ -1,20 +1,21 @@
1
1
  import type { RouteRequestBody, RouteResponse } from '@seamapi/types/connect';
2
- import type { Axios } from 'axios';
3
2
  import type { SetNonNullable } from 'type-fest';
4
- import { type SeamHttpOptions, type SeamHttpOptionsWithApiKey, type SeamHttpOptionsWithClient, type SeamHttpOptionsWithClientSessionToken } from '../../../../lib/seam/connect/client-options.js';
3
+ import { type Client } from '../../../../lib/seam/connect/client.js';
4
+ import { type SeamHttpFromPublishableKeyOptions, type SeamHttpOptions, type SeamHttpOptionsWithApiKey, type SeamHttpOptionsWithClient, type SeamHttpOptionsWithClientSessionToken } from '../../../../lib/seam/connect/options.js';
5
5
  export declare class SeamHttpDevicesUnmanaged {
6
- client: Axios;
7
- constructor(apiKeyOrOptions: string | SeamHttpOptions);
6
+ client: Client;
7
+ constructor(apiKeyOrOptions?: string | SeamHttpOptions);
8
8
  static fromClient(client: SeamHttpOptionsWithClient['client'], options?: Omit<SeamHttpOptionsWithClient, 'client'>): SeamHttpDevicesUnmanaged;
9
9
  static fromApiKey(apiKey: SeamHttpOptionsWithApiKey['apiKey'], options?: Omit<SeamHttpOptionsWithApiKey, 'apiKey'>): SeamHttpDevicesUnmanaged;
10
10
  static fromClientSessionToken(clientSessionToken: SeamHttpOptionsWithClientSessionToken['clientSessionToken'], options?: Omit<SeamHttpOptionsWithClientSessionToken, 'clientSessionToken'>): SeamHttpDevicesUnmanaged;
11
+ static fromPublishableKey(publishableKey: string, userIdentifierKey: string, options?: SeamHttpFromPublishableKeyOptions): Promise<SeamHttpDevicesUnmanaged>;
11
12
  get(body: DevicesUnmanagedGetBody): Promise<DevicesUnmanagedGetResponse['device']>;
12
13
  list(body: DevicesUnmanagedListBody): Promise<DevicesUnmanagedListResponse['devices']>;
13
14
  update(body: DevicesUnmanagedUpdateBody): Promise<void>;
14
15
  }
15
- export type DevicesUnmanagedGetBody = SetNonNullable<Required<RouteRequestBody<'/devices/unmanaged/get'>>>;
16
+ export type DevicesUnmanagedGetBody = RouteRequestBody<'/devices/unmanaged/get'>;
16
17
  export type DevicesUnmanagedGetResponse = SetNonNullable<Required<RouteResponse<'/devices/unmanaged/get'>>>;
17
- export type DevicesUnmanagedListBody = SetNonNullable<Required<RouteRequestBody<'/devices/unmanaged/list'>>>;
18
+ export type DevicesUnmanagedListBody = RouteRequestBody<'/devices/unmanaged/list'>;
18
19
  export type DevicesUnmanagedListResponse = SetNonNullable<Required<RouteResponse<'/devices/unmanaged/list'>>>;
19
- export type DevicesUnmanagedUpdateBody = SetNonNullable<Required<RouteRequestBody<'/devices/unmanaged/update'>>>;
20
+ export type DevicesUnmanagedUpdateBody = RouteRequestBody<'/devices/unmanaged/update'>;
20
21
  export type DevicesUnmanagedUpdateResponse = SetNonNullable<Required<RouteResponse<'/devices/unmanaged/update'>>>;
@@ -2,34 +2,46 @@
2
2
  * Automatically generated by generate-routes.ts.
3
3
  * Do not edit this file or add other files to this directory.
4
4
  */
5
- import { createAxiosClient } from '../../../../lib/seam/connect/axios.js';
6
- import { isSeamHttpOptionsWithApiKey, isSeamHttpOptionsWithClient, isSeamHttpOptionsWithClientSessionToken, SeamHttpInvalidOptionsError, } from '../../../../lib/seam/connect/client-options.js';
5
+ import { warnOnInsecureuserIdentifierKey } from '../../../../lib/seam/connect/auth.js';
6
+ import { createClient } from '../../../../lib/seam/connect/client.js';
7
+ import { isSeamHttpOptionsWithApiKey, isSeamHttpOptionsWithClient, isSeamHttpOptionsWithClientSessionToken, SeamHttpInvalidOptionsError, } from '../../../../lib/seam/connect/options.js';
7
8
  import { parseOptions } from '../../../../lib/seam/connect/parse-options.js';
9
+ import { SeamHttpClientSessions } from './client-sessions.js';
8
10
  export class SeamHttpDevicesUnmanaged {
9
- constructor(apiKeyOrOptions) {
10
- const options = parseOptions(apiKeyOrOptions);
11
- this.client = createAxiosClient(options);
11
+ constructor(apiKeyOrOptions = {}) {
12
+ const clientOptions = parseOptions(apiKeyOrOptions);
13
+ this.client = createClient(clientOptions);
12
14
  }
13
15
  static fromClient(client, options = {}) {
14
- const opts = { ...options, client };
15
- if (!isSeamHttpOptionsWithClient(opts)) {
16
+ const constructorOptions = { ...options, client };
17
+ if (!isSeamHttpOptionsWithClient(constructorOptions)) {
16
18
  throw new SeamHttpInvalidOptionsError('Missing client');
17
19
  }
18
- return new SeamHttpDevicesUnmanaged(opts);
20
+ return new SeamHttpDevicesUnmanaged(constructorOptions);
19
21
  }
20
22
  static fromApiKey(apiKey, options = {}) {
21
- const opts = { ...options, apiKey };
22
- if (!isSeamHttpOptionsWithApiKey(opts)) {
23
+ const constructorOptions = { ...options, apiKey };
24
+ if (!isSeamHttpOptionsWithApiKey(constructorOptions)) {
23
25
  throw new SeamHttpInvalidOptionsError('Missing apiKey');
24
26
  }
25
- return new SeamHttpDevicesUnmanaged(opts);
27
+ return new SeamHttpDevicesUnmanaged(constructorOptions);
26
28
  }
27
29
  static fromClientSessionToken(clientSessionToken, options = {}) {
28
- const opts = { ...options, clientSessionToken };
29
- if (!isSeamHttpOptionsWithClientSessionToken(opts)) {
30
+ const constructorOptions = { ...options, clientSessionToken };
31
+ if (!isSeamHttpOptionsWithClientSessionToken(constructorOptions)) {
30
32
  throw new SeamHttpInvalidOptionsError('Missing clientSessionToken');
31
33
  }
32
- return new SeamHttpDevicesUnmanaged(opts);
34
+ return new SeamHttpDevicesUnmanaged(constructorOptions);
35
+ }
36
+ static async fromPublishableKey(publishableKey, userIdentifierKey, options = {}) {
37
+ warnOnInsecureuserIdentifierKey(userIdentifierKey);
38
+ const clientOptions = parseOptions({ ...options, publishableKey });
39
+ const client = createClient(clientOptions);
40
+ const clientSessions = SeamHttpClientSessions.fromClient(client);
41
+ const { token } = await clientSessions.getOrCreate({
42
+ user_identifier_key: userIdentifierKey,
43
+ });
44
+ return SeamHttpDevicesUnmanaged.fromClientSessionToken(token, options);
33
45
  }
34
46
  async get(body) {
35
47
  const { data } = await this.client.request({
@@ -1 +1 @@
1
- {"version":3,"file":"devices-unmanaged.js","sourceRoot":"","sources":["../../../../src/lib/seam/connect/routes/devices-unmanaged.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAMH,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,wBAAwB;IAGnC,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,wBAAwB,CAAC,IAAI,CAAC,CAAA;IAC3C,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,wBAAwB,CAAC,IAAI,CAAC,CAAA;IAC3C,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,wBAAwB,CAAC,IAAI,CAAC,CAAA;IAC3C,CAAC;IAED,KAAK,CAAC,GAAG,CACP,IAA6B;QAE7B,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,OAAO,IAAI,CAAC,MAAM,CAAA;IACpB,CAAC;IAED,KAAK,CAAC,IAAI,CACR,IAA8B;QAE9B,MAAM,EAAE,IAAI,EAAE,GAAG,MAAM,IAAI,CAAC,MAAM,CAAC,OAAO,CAA+B;YACvE,GAAG,EAAE,yBAAyB;YAC9B,MAAM,EAAE,MAAM;YACd,IAAI,EAAE,IAAI;SACX,CAAC,CAAA;QACF,OAAO,IAAI,CAAC,OAAO,CAAA;IACrB,CAAC;IAED,KAAK,CAAC,MAAM,CAAC,IAAgC;QAC3C,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"}
1
+ {"version":3,"file":"devices-unmanaged.js","sourceRoot":"","sources":["../../../../src/lib/seam/connect/routes/devices-unmanaged.ts"],"names":[],"mappings":"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"}
@@ -1,14 +1,15 @@
1
1
  import type { RouteRequestBody, RouteResponse } from '@seamapi/types/connect';
2
- import type { Axios } from 'axios';
3
2
  import type { SetNonNullable } from 'type-fest';
4
- import { type SeamHttpOptions, type SeamHttpOptionsWithApiKey, type SeamHttpOptionsWithClient, type SeamHttpOptionsWithClientSessionToken } from '../../../../lib/seam/connect/client-options.js';
3
+ import { type Client } from '../../../../lib/seam/connect/client.js';
4
+ import { type SeamHttpFromPublishableKeyOptions, type SeamHttpOptions, type SeamHttpOptionsWithApiKey, type SeamHttpOptionsWithClient, type SeamHttpOptionsWithClientSessionToken } from '../../../../lib/seam/connect/options.js';
5
5
  import { SeamHttpDevicesUnmanaged } from './devices-unmanaged.js';
6
6
  export declare class SeamHttpDevices {
7
- client: Axios;
8
- constructor(apiKeyOrOptions: string | SeamHttpOptions);
7
+ client: Client;
8
+ constructor(apiKeyOrOptions?: string | SeamHttpOptions);
9
9
  static fromClient(client: SeamHttpOptionsWithClient['client'], options?: Omit<SeamHttpOptionsWithClient, 'client'>): SeamHttpDevices;
10
10
  static fromApiKey(apiKey: SeamHttpOptionsWithApiKey['apiKey'], options?: Omit<SeamHttpOptionsWithApiKey, 'apiKey'>): SeamHttpDevices;
11
11
  static fromClientSessionToken(clientSessionToken: SeamHttpOptionsWithClientSessionToken['clientSessionToken'], options?: Omit<SeamHttpOptionsWithClientSessionToken, 'clientSessionToken'>): SeamHttpDevices;
12
+ static fromPublishableKey(publishableKey: string, userIdentifierKey: string, options?: SeamHttpFromPublishableKeyOptions): Promise<SeamHttpDevices>;
12
13
  get unmanaged(): SeamHttpDevicesUnmanaged;
13
14
  delete(body: DevicesDeleteBody): Promise<void>;
14
15
  get(body: DevicesGetBody): Promise<DevicesGetResponse['device']>;
@@ -16,13 +17,13 @@ export declare class SeamHttpDevices {
16
17
  listDeviceProviders(body: DevicesListDeviceProvidersBody): Promise<DevicesListDeviceProvidersResponse['device_providers']>;
17
18
  update(body: DevicesUpdateBody): Promise<void>;
18
19
  }
19
- export type DevicesDeleteBody = SetNonNullable<Required<RouteRequestBody<'/devices/delete'>>>;
20
+ export type DevicesDeleteBody = RouteRequestBody<'/devices/delete'>;
20
21
  export type DevicesDeleteResponse = SetNonNullable<Required<RouteResponse<'/devices/delete'>>>;
21
- export type DevicesGetBody = SetNonNullable<Required<RouteRequestBody<'/devices/get'>>>;
22
+ export type DevicesGetBody = RouteRequestBody<'/devices/get'>;
22
23
  export type DevicesGetResponse = SetNonNullable<Required<RouteResponse<'/devices/get'>>>;
23
- export type DevicesListBody = SetNonNullable<Required<RouteRequestBody<'/devices/list'>>>;
24
+ export type DevicesListBody = RouteRequestBody<'/devices/list'>;
24
25
  export type DevicesListResponse = SetNonNullable<Required<RouteResponse<'/devices/list'>>>;
25
- export type DevicesListDeviceProvidersBody = SetNonNullable<Required<RouteRequestBody<'/devices/list_device_providers'>>>;
26
+ export type DevicesListDeviceProvidersBody = RouteRequestBody<'/devices/list_device_providers'>;
26
27
  export type DevicesListDeviceProvidersResponse = SetNonNullable<Required<RouteResponse<'/devices/list_device_providers'>>>;
27
- export type DevicesUpdateBody = SetNonNullable<Required<RouteRequestBody<'/devices/update'>>>;
28
+ export type DevicesUpdateBody = RouteRequestBody<'/devices/update'>;
28
29
  export type DevicesUpdateResponse = SetNonNullable<Required<RouteResponse<'/devices/update'>>>;
@@ -2,35 +2,47 @@
2
2
  * Automatically generated by generate-routes.ts.
3
3
  * Do not edit this file or add other files to this directory.
4
4
  */
5
- import { createAxiosClient } from '../../../../lib/seam/connect/axios.js';
6
- import { isSeamHttpOptionsWithApiKey, isSeamHttpOptionsWithClient, isSeamHttpOptionsWithClientSessionToken, SeamHttpInvalidOptionsError, } from '../../../../lib/seam/connect/client-options.js';
5
+ import { warnOnInsecureuserIdentifierKey } from '../../../../lib/seam/connect/auth.js';
6
+ import { createClient } from '../../../../lib/seam/connect/client.js';
7
+ import { isSeamHttpOptionsWithApiKey, isSeamHttpOptionsWithClient, isSeamHttpOptionsWithClientSessionToken, SeamHttpInvalidOptionsError, } from '../../../../lib/seam/connect/options.js';
7
8
  import { parseOptions } from '../../../../lib/seam/connect/parse-options.js';
9
+ import { SeamHttpClientSessions } from './client-sessions.js';
8
10
  import { SeamHttpDevicesUnmanaged } from './devices-unmanaged.js';
9
11
  export class SeamHttpDevices {
10
- constructor(apiKeyOrOptions) {
11
- const options = parseOptions(apiKeyOrOptions);
12
- this.client = createAxiosClient(options);
12
+ constructor(apiKeyOrOptions = {}) {
13
+ const clientOptions = parseOptions(apiKeyOrOptions);
14
+ this.client = createClient(clientOptions);
13
15
  }
14
16
  static fromClient(client, options = {}) {
15
- const opts = { ...options, client };
16
- if (!isSeamHttpOptionsWithClient(opts)) {
17
+ const constructorOptions = { ...options, client };
18
+ if (!isSeamHttpOptionsWithClient(constructorOptions)) {
17
19
  throw new SeamHttpInvalidOptionsError('Missing client');
18
20
  }
19
- return new SeamHttpDevices(opts);
21
+ return new SeamHttpDevices(constructorOptions);
20
22
  }
21
23
  static fromApiKey(apiKey, options = {}) {
22
- const opts = { ...options, apiKey };
23
- if (!isSeamHttpOptionsWithApiKey(opts)) {
24
+ const constructorOptions = { ...options, apiKey };
25
+ if (!isSeamHttpOptionsWithApiKey(constructorOptions)) {
24
26
  throw new SeamHttpInvalidOptionsError('Missing apiKey');
25
27
  }
26
- return new SeamHttpDevices(opts);
28
+ return new SeamHttpDevices(constructorOptions);
27
29
  }
28
30
  static fromClientSessionToken(clientSessionToken, options = {}) {
29
- const opts = { ...options, clientSessionToken };
30
- if (!isSeamHttpOptionsWithClientSessionToken(opts)) {
31
+ const constructorOptions = { ...options, clientSessionToken };
32
+ if (!isSeamHttpOptionsWithClientSessionToken(constructorOptions)) {
31
33
  throw new SeamHttpInvalidOptionsError('Missing clientSessionToken');
32
34
  }
33
- return new SeamHttpDevices(opts);
35
+ return new SeamHttpDevices(constructorOptions);
36
+ }
37
+ static async fromPublishableKey(publishableKey, userIdentifierKey, options = {}) {
38
+ warnOnInsecureuserIdentifierKey(userIdentifierKey);
39
+ const clientOptions = parseOptions({ ...options, publishableKey });
40
+ const client = createClient(clientOptions);
41
+ const clientSessions = SeamHttpClientSessions.fromClient(client);
42
+ const { token } = await clientSessions.getOrCreate({
43
+ user_identifier_key: userIdentifierKey,
44
+ });
45
+ return SeamHttpDevices.fromClientSessionToken(token, options);
34
46
  }
35
47
  get unmanaged() {
36
48
  return SeamHttpDevicesUnmanaged.fromClient(this.client);
@@ -1 +1 @@
1
- {"version":3,"file":"devices.js","sourceRoot":"","sources":["../../../../src/lib/seam/connect/routes/devices.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"devices.js","sourceRoot":"","sources":["../../../../src/lib/seam/connect/routes/devices.ts"],"names":[],"mappings":"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"}
@@ -1,17 +1,18 @@
1
1
  import type { RouteRequestBody, RouteResponse } from '@seamapi/types/connect';
2
- import type { Axios } from 'axios';
3
2
  import type { SetNonNullable } from 'type-fest';
4
- import { type SeamHttpOptions, type SeamHttpOptionsWithApiKey, type SeamHttpOptionsWithClient, type SeamHttpOptionsWithClientSessionToken } from '../../../../lib/seam/connect/client-options.js';
3
+ import { type Client } from '../../../../lib/seam/connect/client.js';
4
+ import { type SeamHttpFromPublishableKeyOptions, type SeamHttpOptions, type SeamHttpOptionsWithApiKey, type SeamHttpOptionsWithClient, type SeamHttpOptionsWithClientSessionToken } from '../../../../lib/seam/connect/options.js';
5
5
  export declare class SeamHttpEvents {
6
- client: Axios;
7
- constructor(apiKeyOrOptions: string | SeamHttpOptions);
6
+ client: Client;
7
+ constructor(apiKeyOrOptions?: string | SeamHttpOptions);
8
8
  static fromClient(client: SeamHttpOptionsWithClient['client'], options?: Omit<SeamHttpOptionsWithClient, 'client'>): SeamHttpEvents;
9
9
  static fromApiKey(apiKey: SeamHttpOptionsWithApiKey['apiKey'], options?: Omit<SeamHttpOptionsWithApiKey, 'apiKey'>): SeamHttpEvents;
10
10
  static fromClientSessionToken(clientSessionToken: SeamHttpOptionsWithClientSessionToken['clientSessionToken'], options?: Omit<SeamHttpOptionsWithClientSessionToken, 'clientSessionToken'>): SeamHttpEvents;
11
+ static fromPublishableKey(publishableKey: string, userIdentifierKey: string, options?: SeamHttpFromPublishableKeyOptions): Promise<SeamHttpEvents>;
11
12
  get(body: EventsGetBody): Promise<EventsGetResponse['event']>;
12
13
  list(body: EventsListBody): Promise<EventsListResponse['events']>;
13
14
  }
14
- export type EventsGetBody = SetNonNullable<Required<RouteRequestBody<'/events/get'>>>;
15
+ export type EventsGetBody = RouteRequestBody<'/events/get'>;
15
16
  export type EventsGetResponse = SetNonNullable<Required<RouteResponse<'/events/get'>>>;
16
- export type EventsListBody = SetNonNullable<Required<RouteRequestBody<'/events/list'>>>;
17
+ export type EventsListBody = RouteRequestBody<'/events/list'>;
17
18
  export type EventsListResponse = SetNonNullable<Required<RouteResponse<'/events/list'>>>;
@@ -2,34 +2,46 @@
2
2
  * Automatically generated by generate-routes.ts.
3
3
  * Do not edit this file or add other files to this directory.
4
4
  */
5
- import { createAxiosClient } from '../../../../lib/seam/connect/axios.js';
6
- import { isSeamHttpOptionsWithApiKey, isSeamHttpOptionsWithClient, isSeamHttpOptionsWithClientSessionToken, SeamHttpInvalidOptionsError, } from '../../../../lib/seam/connect/client-options.js';
5
+ import { warnOnInsecureuserIdentifierKey } from '../../../../lib/seam/connect/auth.js';
6
+ import { createClient } from '../../../../lib/seam/connect/client.js';
7
+ import { isSeamHttpOptionsWithApiKey, isSeamHttpOptionsWithClient, isSeamHttpOptionsWithClientSessionToken, SeamHttpInvalidOptionsError, } from '../../../../lib/seam/connect/options.js';
7
8
  import { parseOptions } from '../../../../lib/seam/connect/parse-options.js';
9
+ import { SeamHttpClientSessions } from './client-sessions.js';
8
10
  export class SeamHttpEvents {
9
- constructor(apiKeyOrOptions) {
10
- const options = parseOptions(apiKeyOrOptions);
11
- this.client = createAxiosClient(options);
11
+ constructor(apiKeyOrOptions = {}) {
12
+ const clientOptions = parseOptions(apiKeyOrOptions);
13
+ this.client = createClient(clientOptions);
12
14
  }
13
15
  static fromClient(client, options = {}) {
14
- const opts = { ...options, client };
15
- if (!isSeamHttpOptionsWithClient(opts)) {
16
+ const constructorOptions = { ...options, client };
17
+ if (!isSeamHttpOptionsWithClient(constructorOptions)) {
16
18
  throw new SeamHttpInvalidOptionsError('Missing client');
17
19
  }
18
- return new SeamHttpEvents(opts);
20
+ return new SeamHttpEvents(constructorOptions);
19
21
  }
20
22
  static fromApiKey(apiKey, options = {}) {
21
- const opts = { ...options, apiKey };
22
- if (!isSeamHttpOptionsWithApiKey(opts)) {
23
+ const constructorOptions = { ...options, apiKey };
24
+ if (!isSeamHttpOptionsWithApiKey(constructorOptions)) {
23
25
  throw new SeamHttpInvalidOptionsError('Missing apiKey');
24
26
  }
25
- return new SeamHttpEvents(opts);
27
+ return new SeamHttpEvents(constructorOptions);
26
28
  }
27
29
  static fromClientSessionToken(clientSessionToken, options = {}) {
28
- const opts = { ...options, clientSessionToken };
29
- if (!isSeamHttpOptionsWithClientSessionToken(opts)) {
30
+ const constructorOptions = { ...options, clientSessionToken };
31
+ if (!isSeamHttpOptionsWithClientSessionToken(constructorOptions)) {
30
32
  throw new SeamHttpInvalidOptionsError('Missing clientSessionToken');
31
33
  }
32
- return new SeamHttpEvents(opts);
34
+ return new SeamHttpEvents(constructorOptions);
35
+ }
36
+ static async fromPublishableKey(publishableKey, userIdentifierKey, options = {}) {
37
+ warnOnInsecureuserIdentifierKey(userIdentifierKey);
38
+ const clientOptions = parseOptions({ ...options, publishableKey });
39
+ const client = createClient(clientOptions);
40
+ const clientSessions = SeamHttpClientSessions.fromClient(client);
41
+ const { token } = await clientSessions.getOrCreate({
42
+ user_identifier_key: userIdentifierKey,
43
+ });
44
+ return SeamHttpEvents.fromClientSessionToken(token, options);
33
45
  }
34
46
  async get(body) {
35
47
  const { data } = await this.client.request({
@@ -1 +1 @@
1
- {"version":3,"file":"events.js","sourceRoot":"","sources":["../../../../src/lib/seam/connect/routes/events.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAMH,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,cAAc;IAGzB,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,cAAc,CAAC,IAAI,CAAC,CAAA;IACjC,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,cAAc,CAAC,IAAI,CAAC,CAAA;IACjC,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,cAAc,CAAC,IAAI,CAAC,CAAA;IACjC,CAAC;IAED,KAAK,CAAC,GAAG,CAAC,IAAmB;QAC3B,MAAM,EAAE,IAAI,EAAE,GAAG,MAAM,IAAI,CAAC,MAAM,CAAC,OAAO,CAAoB;YAC5D,GAAG,EAAE,aAAa;YAClB,MAAM,EAAE,MAAM;YACd,IAAI,EAAE,IAAI;SACX,CAAC,CAAA;QACF,OAAO,IAAI,CAAC,KAAK,CAAA;IACnB,CAAC;IAED,KAAK,CAAC,IAAI,CAAC,IAAoB;QAC7B,MAAM,EAAE,IAAI,EAAE,GAAG,MAAM,IAAI,CAAC,MAAM,CAAC,OAAO,CAAqB;YAC7D,GAAG,EAAE,cAAc;YACnB,MAAM,EAAE,MAAM;YACd,IAAI,EAAE,IAAI;SACX,CAAC,CAAA;QACF,OAAO,IAAI,CAAC,MAAM,CAAA;IACpB,CAAC;CACF"}
1
+ {"version":3,"file":"events.js","sourceRoot":"","sources":["../../../../src/lib/seam/connect/routes/events.ts"],"names":[],"mappings":"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"}
@@ -1,23 +1,24 @@
1
1
  import type { RouteRequestBody, RouteResponse } from '@seamapi/types/connect';
2
- import type { Axios } from 'axios';
3
2
  import type { SetNonNullable } from 'type-fest';
4
- import { type SeamHttpOptions, type SeamHttpOptionsWithApiKey, type SeamHttpOptionsWithClient, type SeamHttpOptionsWithClientSessionToken } from '../../../../lib/seam/connect/client-options.js';
3
+ import { type Client } from '../../../../lib/seam/connect/client.js';
4
+ import { type SeamHttpFromPublishableKeyOptions, type SeamHttpOptions, type SeamHttpOptionsWithApiKey, type SeamHttpOptionsWithClient, type SeamHttpOptionsWithClientSessionToken } from '../../../../lib/seam/connect/options.js';
5
5
  export declare class SeamHttpLocks {
6
- client: Axios;
7
- constructor(apiKeyOrOptions: string | SeamHttpOptions);
6
+ client: Client;
7
+ constructor(apiKeyOrOptions?: string | SeamHttpOptions);
8
8
  static fromClient(client: SeamHttpOptionsWithClient['client'], options?: Omit<SeamHttpOptionsWithClient, 'client'>): SeamHttpLocks;
9
9
  static fromApiKey(apiKey: SeamHttpOptionsWithApiKey['apiKey'], options?: Omit<SeamHttpOptionsWithApiKey, 'apiKey'>): SeamHttpLocks;
10
10
  static fromClientSessionToken(clientSessionToken: SeamHttpOptionsWithClientSessionToken['clientSessionToken'], options?: Omit<SeamHttpOptionsWithClientSessionToken, 'clientSessionToken'>): SeamHttpLocks;
11
+ static fromPublishableKey(publishableKey: string, userIdentifierKey: string, options?: SeamHttpFromPublishableKeyOptions): Promise<SeamHttpLocks>;
11
12
  get(body: LocksGetBody): Promise<LocksGetResponse['device']>;
12
13
  list(body: LocksListBody): Promise<LocksListResponse['devices']>;
13
14
  lockDoor(body: LocksLockDoorBody): Promise<LocksLockDoorResponse['action_attempt']>;
14
15
  unlockDoor(body: LocksUnlockDoorBody): Promise<LocksUnlockDoorResponse['action_attempt']>;
15
16
  }
16
- export type LocksGetBody = SetNonNullable<Required<RouteRequestBody<'/locks/get'>>>;
17
+ export type LocksGetBody = RouteRequestBody<'/locks/get'>;
17
18
  export type LocksGetResponse = SetNonNullable<Required<RouteResponse<'/locks/get'>>>;
18
- export type LocksListBody = SetNonNullable<Required<RouteRequestBody<'/locks/list'>>>;
19
+ export type LocksListBody = RouteRequestBody<'/locks/list'>;
19
20
  export type LocksListResponse = SetNonNullable<Required<RouteResponse<'/locks/list'>>>;
20
- export type LocksLockDoorBody = SetNonNullable<Required<RouteRequestBody<'/locks/lock_door'>>>;
21
+ export type LocksLockDoorBody = RouteRequestBody<'/locks/lock_door'>;
21
22
  export type LocksLockDoorResponse = SetNonNullable<Required<RouteResponse<'/locks/lock_door'>>>;
22
- export type LocksUnlockDoorBody = SetNonNullable<Required<RouteRequestBody<'/locks/unlock_door'>>>;
23
+ export type LocksUnlockDoorBody = RouteRequestBody<'/locks/unlock_door'>;
23
24
  export type LocksUnlockDoorResponse = SetNonNullable<Required<RouteResponse<'/locks/unlock_door'>>>;
@@ -2,34 +2,46 @@
2
2
  * Automatically generated by generate-routes.ts.
3
3
  * Do not edit this file or add other files to this directory.
4
4
  */
5
- import { createAxiosClient } from '../../../../lib/seam/connect/axios.js';
6
- import { isSeamHttpOptionsWithApiKey, isSeamHttpOptionsWithClient, isSeamHttpOptionsWithClientSessionToken, SeamHttpInvalidOptionsError, } from '../../../../lib/seam/connect/client-options.js';
5
+ import { warnOnInsecureuserIdentifierKey } from '../../../../lib/seam/connect/auth.js';
6
+ import { createClient } from '../../../../lib/seam/connect/client.js';
7
+ import { isSeamHttpOptionsWithApiKey, isSeamHttpOptionsWithClient, isSeamHttpOptionsWithClientSessionToken, SeamHttpInvalidOptionsError, } from '../../../../lib/seam/connect/options.js';
7
8
  import { parseOptions } from '../../../../lib/seam/connect/parse-options.js';
9
+ import { SeamHttpClientSessions } from './client-sessions.js';
8
10
  export class SeamHttpLocks {
9
- constructor(apiKeyOrOptions) {
10
- const options = parseOptions(apiKeyOrOptions);
11
- this.client = createAxiosClient(options);
11
+ constructor(apiKeyOrOptions = {}) {
12
+ const clientOptions = parseOptions(apiKeyOrOptions);
13
+ this.client = createClient(clientOptions);
12
14
  }
13
15
  static fromClient(client, options = {}) {
14
- const opts = { ...options, client };
15
- if (!isSeamHttpOptionsWithClient(opts)) {
16
+ const constructorOptions = { ...options, client };
17
+ if (!isSeamHttpOptionsWithClient(constructorOptions)) {
16
18
  throw new SeamHttpInvalidOptionsError('Missing client');
17
19
  }
18
- return new SeamHttpLocks(opts);
20
+ return new SeamHttpLocks(constructorOptions);
19
21
  }
20
22
  static fromApiKey(apiKey, options = {}) {
21
- const opts = { ...options, apiKey };
22
- if (!isSeamHttpOptionsWithApiKey(opts)) {
23
+ const constructorOptions = { ...options, apiKey };
24
+ if (!isSeamHttpOptionsWithApiKey(constructorOptions)) {
23
25
  throw new SeamHttpInvalidOptionsError('Missing apiKey');
24
26
  }
25
- return new SeamHttpLocks(opts);
27
+ return new SeamHttpLocks(constructorOptions);
26
28
  }
27
29
  static fromClientSessionToken(clientSessionToken, options = {}) {
28
- const opts = { ...options, clientSessionToken };
29
- if (!isSeamHttpOptionsWithClientSessionToken(opts)) {
30
+ const constructorOptions = { ...options, clientSessionToken };
31
+ if (!isSeamHttpOptionsWithClientSessionToken(constructorOptions)) {
30
32
  throw new SeamHttpInvalidOptionsError('Missing clientSessionToken');
31
33
  }
32
- return new SeamHttpLocks(opts);
34
+ return new SeamHttpLocks(constructorOptions);
35
+ }
36
+ static async fromPublishableKey(publishableKey, userIdentifierKey, options = {}) {
37
+ warnOnInsecureuserIdentifierKey(userIdentifierKey);
38
+ const clientOptions = parseOptions({ ...options, publishableKey });
39
+ const client = createClient(clientOptions);
40
+ const clientSessions = SeamHttpClientSessions.fromClient(client);
41
+ const { token } = await clientSessions.getOrCreate({
42
+ user_identifier_key: userIdentifierKey,
43
+ });
44
+ return SeamHttpLocks.fromClientSessionToken(token, options);
33
45
  }
34
46
  async get(body) {
35
47
  const { data } = await this.client.request({
@@ -1 +1 @@
1
- {"version":3,"file":"locks.js","sourceRoot":"","sources":["../../../../src/lib/seam/connect/routes/locks.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAMH,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,aAAa;IAGxB,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,aAAa,CAAC,IAAI,CAAC,CAAA;IAChC,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,aAAa,CAAC,IAAI,CAAC,CAAA;IAChC,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,aAAa,CAAC,IAAI,CAAC,CAAA;IAChC,CAAC;IAED,KAAK,CAAC,GAAG,CAAC,IAAkB;QAC1B,MAAM,EAAE,IAAI,EAAE,GAAG,MAAM,IAAI,CAAC,MAAM,CAAC,OAAO,CAAmB;YAC3D,GAAG,EAAE,YAAY;YACjB,MAAM,EAAE,MAAM;YACd,IAAI,EAAE,IAAI;SACX,CAAC,CAAA;QACF,OAAO,IAAI,CAAC,MAAM,CAAA;IACpB,CAAC;IAED,KAAK,CAAC,IAAI,CAAC,IAAmB;QAC5B,MAAM,EAAE,IAAI,EAAE,GAAG,MAAM,IAAI,CAAC,MAAM,CAAC,OAAO,CAAoB;YAC5D,GAAG,EAAE,aAAa;YAClB,MAAM,EAAE,MAAM;YACd,IAAI,EAAE,IAAI;SACX,CAAC,CAAA;QACF,OAAO,IAAI,CAAC,OAAO,CAAA;IACrB,CAAC;IAED,KAAK,CAAC,QAAQ,CACZ,IAAuB;QAEvB,MAAM,EAAE,IAAI,EAAE,GAAG,MAAM,IAAI,CAAC,MAAM,CAAC,OAAO,CAAwB;YAChE,GAAG,EAAE,kBAAkB;YACvB,MAAM,EAAE,MAAM;YACd,IAAI,EAAE,IAAI;SACX,CAAC,CAAA;QACF,OAAO,IAAI,CAAC,cAAc,CAAA;IAC5B,CAAC;IAED,KAAK,CAAC,UAAU,CACd,IAAyB;QAEzB,MAAM,EAAE,IAAI,EAAE,GAAG,MAAM,IAAI,CAAC,MAAM,CAAC,OAAO,CAA0B;YAClE,GAAG,EAAE,oBAAoB;YACzB,MAAM,EAAE,MAAM;YACd,IAAI,EAAE,IAAI;SACX,CAAC,CAAA;QACF,OAAO,IAAI,CAAC,cAAc,CAAA;IAC5B,CAAC;CACF"}
1
+ {"version":3,"file":"locks.js","sourceRoot":"","sources":["../../../../src/lib/seam/connect/routes/locks.ts"],"names":[],"mappings":"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"}
@@ -1,26 +1,27 @@
1
1
  import type { RouteRequestBody, RouteResponse } from '@seamapi/types/connect';
2
- import type { Axios } from 'axios';
3
2
  import type { SetNonNullable } from 'type-fest';
4
- import { type SeamHttpOptions, type SeamHttpOptionsWithApiKey, type SeamHttpOptionsWithClient, type SeamHttpOptionsWithClientSessionToken } from '../../../../lib/seam/connect/client-options.js';
3
+ import { type Client } from '../../../../lib/seam/connect/client.js';
4
+ import { type SeamHttpFromPublishableKeyOptions, type SeamHttpOptions, type SeamHttpOptionsWithApiKey, type SeamHttpOptionsWithClient, type SeamHttpOptionsWithClientSessionToken } from '../../../../lib/seam/connect/options.js';
5
5
  export declare class SeamHttpNoiseSensorsNoiseThresholds {
6
- client: Axios;
7
- constructor(apiKeyOrOptions: string | SeamHttpOptions);
6
+ client: Client;
7
+ constructor(apiKeyOrOptions?: string | SeamHttpOptions);
8
8
  static fromClient(client: SeamHttpOptionsWithClient['client'], options?: Omit<SeamHttpOptionsWithClient, 'client'>): SeamHttpNoiseSensorsNoiseThresholds;
9
9
  static fromApiKey(apiKey: SeamHttpOptionsWithApiKey['apiKey'], options?: Omit<SeamHttpOptionsWithApiKey, 'apiKey'>): SeamHttpNoiseSensorsNoiseThresholds;
10
10
  static fromClientSessionToken(clientSessionToken: SeamHttpOptionsWithClientSessionToken['clientSessionToken'], options?: Omit<SeamHttpOptionsWithClientSessionToken, 'clientSessionToken'>): SeamHttpNoiseSensorsNoiseThresholds;
11
+ static fromPublishableKey(publishableKey: string, userIdentifierKey: string, options?: SeamHttpFromPublishableKeyOptions): Promise<SeamHttpNoiseSensorsNoiseThresholds>;
11
12
  create(body: NoiseSensorsNoiseThresholdsCreateBody): Promise<void>;
12
13
  delete(body: NoiseSensorsNoiseThresholdsDeleteBody): Promise<void>;
13
14
  get(body: NoiseSensorsNoiseThresholdsGetBody): Promise<NoiseSensorsNoiseThresholdsGetResponse['noise_threshold']>;
14
15
  list(body: NoiseSensorsNoiseThresholdsListBody): Promise<NoiseSensorsNoiseThresholdsListResponse['noise_thresholds']>;
15
16
  update(body: NoiseSensorsNoiseThresholdsUpdateBody): Promise<void>;
16
17
  }
17
- export type NoiseSensorsNoiseThresholdsCreateBody = SetNonNullable<Required<RouteRequestBody<'/noise_sensors/noise_thresholds/create'>>>;
18
+ export type NoiseSensorsNoiseThresholdsCreateBody = RouteRequestBody<'/noise_sensors/noise_thresholds/create'>;
18
19
  export type NoiseSensorsNoiseThresholdsCreateResponse = SetNonNullable<Required<RouteResponse<'/noise_sensors/noise_thresholds/create'>>>;
19
- export type NoiseSensorsNoiseThresholdsDeleteBody = SetNonNullable<Required<RouteRequestBody<'/noise_sensors/noise_thresholds/delete'>>>;
20
+ export type NoiseSensorsNoiseThresholdsDeleteBody = RouteRequestBody<'/noise_sensors/noise_thresholds/delete'>;
20
21
  export type NoiseSensorsNoiseThresholdsDeleteResponse = SetNonNullable<Required<RouteResponse<'/noise_sensors/noise_thresholds/delete'>>>;
21
- export type NoiseSensorsNoiseThresholdsGetBody = SetNonNullable<Required<RouteRequestBody<'/noise_sensors/noise_thresholds/get'>>>;
22
+ export type NoiseSensorsNoiseThresholdsGetBody = RouteRequestBody<'/noise_sensors/noise_thresholds/get'>;
22
23
  export type NoiseSensorsNoiseThresholdsGetResponse = SetNonNullable<Required<RouteResponse<'/noise_sensors/noise_thresholds/get'>>>;
23
- export type NoiseSensorsNoiseThresholdsListBody = SetNonNullable<Required<RouteRequestBody<'/noise_sensors/noise_thresholds/list'>>>;
24
+ export type NoiseSensorsNoiseThresholdsListBody = RouteRequestBody<'/noise_sensors/noise_thresholds/list'>;
24
25
  export type NoiseSensorsNoiseThresholdsListResponse = SetNonNullable<Required<RouteResponse<'/noise_sensors/noise_thresholds/list'>>>;
25
- export type NoiseSensorsNoiseThresholdsUpdateBody = SetNonNullable<Required<RouteRequestBody<'/noise_sensors/noise_thresholds/update'>>>;
26
+ export type NoiseSensorsNoiseThresholdsUpdateBody = RouteRequestBody<'/noise_sensors/noise_thresholds/update'>;
26
27
  export type NoiseSensorsNoiseThresholdsUpdateResponse = SetNonNullable<Required<RouteResponse<'/noise_sensors/noise_thresholds/update'>>>;