@seamapi/http 0.4.0 → 0.5.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 (103) hide show
  1. package/README.md +212 -1
  2. package/dist/connect.cjs +549 -4
  3. package/dist/connect.cjs.map +1 -1
  4. package/dist/connect.d.cts +56 -2
  5. package/lib/seam/connect/auth.js +55 -4
  6. package/lib/seam/connect/auth.js.map +1 -1
  7. package/lib/seam/connect/options.d.ts +11 -1
  8. package/lib/seam/connect/options.js +51 -1
  9. package/lib/seam/connect/options.js.map +1 -1
  10. package/lib/seam/connect/routes/access-codes-unmanaged.d.ts +3 -1
  11. package/lib/seam/connect/routes/access-codes-unmanaged.js +15 -1
  12. package/lib/seam/connect/routes/access-codes-unmanaged.js.map +1 -1
  13. package/lib/seam/connect/routes/access-codes.d.ts +3 -1
  14. package/lib/seam/connect/routes/access-codes.js +15 -1
  15. package/lib/seam/connect/routes/access-codes.js.map +1 -1
  16. package/lib/seam/connect/routes/acs-access-groups.d.ts +3 -1
  17. package/lib/seam/connect/routes/acs-access-groups.js +15 -1
  18. package/lib/seam/connect/routes/acs-access-groups.js.map +1 -1
  19. package/lib/seam/connect/routes/acs-credentials.d.ts +3 -1
  20. package/lib/seam/connect/routes/acs-credentials.js +15 -1
  21. package/lib/seam/connect/routes/acs-credentials.js.map +1 -1
  22. package/lib/seam/connect/routes/acs-systems.d.ts +3 -1
  23. package/lib/seam/connect/routes/acs-systems.js +15 -1
  24. package/lib/seam/connect/routes/acs-systems.js.map +1 -1
  25. package/lib/seam/connect/routes/acs-users.d.ts +3 -1
  26. package/lib/seam/connect/routes/acs-users.js +15 -1
  27. package/lib/seam/connect/routes/acs-users.js.map +1 -1
  28. package/lib/seam/connect/routes/acs.d.ts +3 -1
  29. package/lib/seam/connect/routes/acs.js +15 -1
  30. package/lib/seam/connect/routes/acs.js.map +1 -1
  31. package/lib/seam/connect/routes/action-attempts.d.ts +3 -1
  32. package/lib/seam/connect/routes/action-attempts.js +15 -1
  33. package/lib/seam/connect/routes/action-attempts.js.map +1 -1
  34. package/lib/seam/connect/routes/client-sessions.d.ts +3 -1
  35. package/lib/seam/connect/routes/client-sessions.js +15 -1
  36. package/lib/seam/connect/routes/client-sessions.js.map +1 -1
  37. package/lib/seam/connect/routes/connect-webviews.d.ts +3 -1
  38. package/lib/seam/connect/routes/connect-webviews.js +15 -1
  39. package/lib/seam/connect/routes/connect-webviews.js.map +1 -1
  40. package/lib/seam/connect/routes/connected-accounts.d.ts +3 -1
  41. package/lib/seam/connect/routes/connected-accounts.js +15 -1
  42. package/lib/seam/connect/routes/connected-accounts.js.map +1 -1
  43. package/lib/seam/connect/routes/devices-unmanaged.d.ts +3 -1
  44. package/lib/seam/connect/routes/devices-unmanaged.js +15 -1
  45. package/lib/seam/connect/routes/devices-unmanaged.js.map +1 -1
  46. package/lib/seam/connect/routes/devices.d.ts +3 -1
  47. package/lib/seam/connect/routes/devices.js +15 -1
  48. package/lib/seam/connect/routes/devices.js.map +1 -1
  49. package/lib/seam/connect/routes/events.d.ts +3 -1
  50. package/lib/seam/connect/routes/events.js +15 -1
  51. package/lib/seam/connect/routes/events.js.map +1 -1
  52. package/lib/seam/connect/routes/locks.d.ts +3 -1
  53. package/lib/seam/connect/routes/locks.js +15 -1
  54. package/lib/seam/connect/routes/locks.js.map +1 -1
  55. package/lib/seam/connect/routes/noise-sensors-noise-thresholds.d.ts +3 -1
  56. package/lib/seam/connect/routes/noise-sensors-noise-thresholds.js +15 -1
  57. package/lib/seam/connect/routes/noise-sensors-noise-thresholds.js.map +1 -1
  58. package/lib/seam/connect/routes/noise-sensors.d.ts +3 -1
  59. package/lib/seam/connect/routes/noise-sensors.js +15 -1
  60. package/lib/seam/connect/routes/noise-sensors.js.map +1 -1
  61. package/lib/seam/connect/routes/thermostats-climate-setting-schedules.d.ts +3 -1
  62. package/lib/seam/connect/routes/thermostats-climate-setting-schedules.js +15 -1
  63. package/lib/seam/connect/routes/thermostats-climate-setting-schedules.js.map +1 -1
  64. package/lib/seam/connect/routes/thermostats.d.ts +3 -1
  65. package/lib/seam/connect/routes/thermostats.js +15 -1
  66. package/lib/seam/connect/routes/thermostats.js.map +1 -1
  67. package/lib/seam/connect/routes/webhooks.d.ts +3 -1
  68. package/lib/seam/connect/routes/webhooks.js +15 -1
  69. package/lib/seam/connect/routes/webhooks.js.map +1 -1
  70. package/lib/seam/connect/routes/workspaces.d.ts +3 -1
  71. package/lib/seam/connect/routes/workspaces.js +15 -1
  72. package/lib/seam/connect/routes/workspaces.js.map +1 -1
  73. package/lib/seam/connect/seam-http.d.ts +3 -1
  74. package/lib/seam/connect/seam-http.js +15 -1
  75. package/lib/seam/connect/seam-http.js.map +1 -1
  76. package/lib/version.d.ts +1 -1
  77. package/lib/version.js +1 -1
  78. package/package.json +1 -1
  79. package/src/lib/seam/connect/auth.ts +95 -3
  80. package/src/lib/seam/connect/options.ts +105 -1
  81. package/src/lib/seam/connect/routes/access-codes-unmanaged.ts +38 -0
  82. package/src/lib/seam/connect/routes/access-codes.ts +38 -0
  83. package/src/lib/seam/connect/routes/acs-access-groups.ts +38 -0
  84. package/src/lib/seam/connect/routes/acs-credentials.ts +38 -0
  85. package/src/lib/seam/connect/routes/acs-systems.ts +38 -0
  86. package/src/lib/seam/connect/routes/acs-users.ts +38 -0
  87. package/src/lib/seam/connect/routes/acs.ts +38 -0
  88. package/src/lib/seam/connect/routes/action-attempts.ts +38 -0
  89. package/src/lib/seam/connect/routes/client-sessions.ts +38 -0
  90. package/src/lib/seam/connect/routes/connect-webviews.ts +38 -0
  91. package/src/lib/seam/connect/routes/connected-accounts.ts +38 -0
  92. package/src/lib/seam/connect/routes/devices-unmanaged.ts +38 -0
  93. package/src/lib/seam/connect/routes/devices.ts +38 -0
  94. package/src/lib/seam/connect/routes/events.ts +38 -0
  95. package/src/lib/seam/connect/routes/locks.ts +38 -0
  96. package/src/lib/seam/connect/routes/noise-sensors-noise-thresholds.ts +38 -0
  97. package/src/lib/seam/connect/routes/noise-sensors.ts +38 -0
  98. package/src/lib/seam/connect/routes/thermostats-climate-setting-schedules.ts +38 -0
  99. package/src/lib/seam/connect/routes/thermostats.ts +38 -0
  100. package/src/lib/seam/connect/routes/webhooks.ts +38 -0
  101. package/src/lib/seam/connect/routes/workspaces.ts +38 -0
  102. package/src/lib/seam/connect/seam-http.ts +38 -0
  103. package/src/lib/version.ts +1 -1
@@ -4,7 +4,7 @@
4
4
  */
5
5
  import { warnOnInsecureuserIdentifierKey } from '../../../../lib/seam/connect/auth.js';
6
6
  import { createClient } from '../../../../lib/seam/connect/client.js';
7
- import { isSeamHttpOptionsWithApiKey, isSeamHttpOptionsWithClient, isSeamHttpOptionsWithClientSessionToken, SeamHttpInvalidOptionsError, } from '../../../../lib/seam/connect/options.js';
7
+ import { isSeamHttpOptionsWithApiKey, isSeamHttpOptionsWithClient, isSeamHttpOptionsWithClientSessionToken, isSeamHttpOptionsWithConsoleSessionToken, isSeamHttpOptionsWithPersonalAccessToken, SeamHttpInvalidOptionsError, } from '../../../../lib/seam/connect/options.js';
8
8
  import { parseOptions } from '../../../../lib/seam/connect/parse-options.js';
9
9
  import { SeamHttpClientSessions } from './client-sessions.js';
10
10
  import { SeamHttpThermostatsClimateSettingSchedules } from './thermostats-climate-setting-schedules.js';
@@ -44,6 +44,20 @@ export class SeamHttpThermostats {
44
44
  });
45
45
  return SeamHttpThermostats.fromClientSessionToken(token, options);
46
46
  }
47
+ static fromConsoleSessionToken(consoleSessionToken, workspaceId, options = {}) {
48
+ const constructorOptions = { ...options, consoleSessionToken, workspaceId };
49
+ if (!isSeamHttpOptionsWithConsoleSessionToken(constructorOptions)) {
50
+ throw new SeamHttpInvalidOptionsError('Missing consoleSessionToken or workspaceId');
51
+ }
52
+ return new SeamHttpThermostats(constructorOptions);
53
+ }
54
+ static fromPersonalAccessToken(personalAccessToken, workspaceId, options = {}) {
55
+ const constructorOptions = { ...options, personalAccessToken, workspaceId };
56
+ if (!isSeamHttpOptionsWithPersonalAccessToken(constructorOptions)) {
57
+ throw new SeamHttpInvalidOptionsError('Missing personalAccessToken or workspaceId');
58
+ }
59
+ return new SeamHttpThermostats(constructorOptions);
60
+ }
47
61
  get climateSettingSchedules() {
48
62
  return SeamHttpThermostatsClimateSettingSchedules.fromClient(this.client);
49
63
  }
@@ -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":"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"}
@@ -1,7 +1,7 @@
1
1
  import type { RouteRequestBody, RouteRequestParams, RouteResponse } from '@seamapi/types/connect';
2
2
  import type { SetNonNullable } from 'type-fest';
3
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';
4
+ import { type SeamHttpFromPublishableKeyOptions, type SeamHttpOptions, type SeamHttpOptionsWithApiKey, type SeamHttpOptionsWithClient, type SeamHttpOptionsWithClientSessionToken, type SeamHttpOptionsWithConsoleSessionToken, type SeamHttpOptionsWithPersonalAccessToken } from '../../../../lib/seam/connect/options.js';
5
5
  export declare class SeamHttpWebhooks {
6
6
  client: Client;
7
7
  constructor(apiKeyOrOptions?: string | SeamHttpOptions);
@@ -9,6 +9,8 @@ export declare class SeamHttpWebhooks {
9
9
  static fromApiKey(apiKey: SeamHttpOptionsWithApiKey['apiKey'], options?: Omit<SeamHttpOptionsWithApiKey, 'apiKey'>): SeamHttpWebhooks;
10
10
  static fromClientSessionToken(clientSessionToken: SeamHttpOptionsWithClientSessionToken['clientSessionToken'], options?: Omit<SeamHttpOptionsWithClientSessionToken, 'clientSessionToken'>): SeamHttpWebhooks;
11
11
  static fromPublishableKey(publishableKey: string, userIdentifierKey: string, options?: SeamHttpFromPublishableKeyOptions): Promise<SeamHttpWebhooks>;
12
+ static fromConsoleSessionToken(consoleSessionToken: SeamHttpOptionsWithConsoleSessionToken['consoleSessionToken'], workspaceId: SeamHttpOptionsWithConsoleSessionToken['workspaceId'], options?: Omit<SeamHttpOptionsWithConsoleSessionToken, 'consoleSessionToken' | 'workspaceId'>): SeamHttpWebhooks;
13
+ static fromPersonalAccessToken(personalAccessToken: SeamHttpOptionsWithPersonalAccessToken['personalAccessToken'], workspaceId: SeamHttpOptionsWithPersonalAccessToken['workspaceId'], options?: Omit<SeamHttpOptionsWithPersonalAccessToken, 'personalAccessToken' | 'workspaceId'>): SeamHttpWebhooks;
12
14
  create(body?: WebhooksCreateBody): Promise<WebhooksCreateResponse['webhook']>;
13
15
  delete(body?: WebhooksDeleteBody): Promise<void>;
14
16
  get(body?: WebhooksGetParams): Promise<WebhooksGetResponse['webhook']>;
@@ -4,7 +4,7 @@
4
4
  */
5
5
  import { warnOnInsecureuserIdentifierKey } from '../../../../lib/seam/connect/auth.js';
6
6
  import { createClient } from '../../../../lib/seam/connect/client.js';
7
- import { isSeamHttpOptionsWithApiKey, isSeamHttpOptionsWithClient, isSeamHttpOptionsWithClientSessionToken, SeamHttpInvalidOptionsError, } from '../../../../lib/seam/connect/options.js';
7
+ import { isSeamHttpOptionsWithApiKey, isSeamHttpOptionsWithClient, isSeamHttpOptionsWithClientSessionToken, isSeamHttpOptionsWithConsoleSessionToken, isSeamHttpOptionsWithPersonalAccessToken, SeamHttpInvalidOptionsError, } from '../../../../lib/seam/connect/options.js';
8
8
  import { parseOptions } from '../../../../lib/seam/connect/parse-options.js';
9
9
  import { SeamHttpClientSessions } from './client-sessions.js';
10
10
  export class SeamHttpWebhooks {
@@ -43,6 +43,20 @@ export class SeamHttpWebhooks {
43
43
  });
44
44
  return SeamHttpWebhooks.fromClientSessionToken(token, options);
45
45
  }
46
+ static fromConsoleSessionToken(consoleSessionToken, workspaceId, options = {}) {
47
+ const constructorOptions = { ...options, consoleSessionToken, workspaceId };
48
+ if (!isSeamHttpOptionsWithConsoleSessionToken(constructorOptions)) {
49
+ throw new SeamHttpInvalidOptionsError('Missing consoleSessionToken or workspaceId');
50
+ }
51
+ return new SeamHttpWebhooks(constructorOptions);
52
+ }
53
+ static fromPersonalAccessToken(personalAccessToken, workspaceId, options = {}) {
54
+ const constructorOptions = { ...options, personalAccessToken, workspaceId };
55
+ if (!isSeamHttpOptionsWithPersonalAccessToken(constructorOptions)) {
56
+ throw new SeamHttpInvalidOptionsError('Missing personalAccessToken or workspaceId');
57
+ }
58
+ return new SeamHttpWebhooks(constructorOptions);
59
+ }
46
60
  async create(body) {
47
61
  const { data } = await this.client.request({
48
62
  url: '/webhooks/create',
@@ -1 +1 @@
1
- {"version":3,"file":"webhooks.js","sourceRoot":"","sources":["../../../../src/lib/seam/connect/routes/webhooks.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"webhooks.js","sourceRoot":"","sources":["../../../../src/lib/seam/connect/routes/webhooks.ts"],"names":[],"mappings":"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"}
@@ -1,7 +1,7 @@
1
1
  import type { RouteRequestBody, RouteRequestParams, RouteResponse } from '@seamapi/types/connect';
2
2
  import type { SetNonNullable } from 'type-fest';
3
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';
4
+ import { type SeamHttpFromPublishableKeyOptions, type SeamHttpOptions, type SeamHttpOptionsWithApiKey, type SeamHttpOptionsWithClient, type SeamHttpOptionsWithClientSessionToken, type SeamHttpOptionsWithConsoleSessionToken, type SeamHttpOptionsWithPersonalAccessToken } from '../../../../lib/seam/connect/options.js';
5
5
  export declare class SeamHttpWorkspaces {
6
6
  client: Client;
7
7
  constructor(apiKeyOrOptions?: string | SeamHttpOptions);
@@ -9,6 +9,8 @@ export declare class SeamHttpWorkspaces {
9
9
  static fromApiKey(apiKey: SeamHttpOptionsWithApiKey['apiKey'], options?: Omit<SeamHttpOptionsWithApiKey, 'apiKey'>): SeamHttpWorkspaces;
10
10
  static fromClientSessionToken(clientSessionToken: SeamHttpOptionsWithClientSessionToken['clientSessionToken'], options?: Omit<SeamHttpOptionsWithClientSessionToken, 'clientSessionToken'>): SeamHttpWorkspaces;
11
11
  static fromPublishableKey(publishableKey: string, userIdentifierKey: string, options?: SeamHttpFromPublishableKeyOptions): Promise<SeamHttpWorkspaces>;
12
+ static fromConsoleSessionToken(consoleSessionToken: SeamHttpOptionsWithConsoleSessionToken['consoleSessionToken'], workspaceId: SeamHttpOptionsWithConsoleSessionToken['workspaceId'], options?: Omit<SeamHttpOptionsWithConsoleSessionToken, 'consoleSessionToken' | 'workspaceId'>): SeamHttpWorkspaces;
13
+ static fromPersonalAccessToken(personalAccessToken: SeamHttpOptionsWithPersonalAccessToken['personalAccessToken'], workspaceId: SeamHttpOptionsWithPersonalAccessToken['workspaceId'], options?: Omit<SeamHttpOptionsWithPersonalAccessToken, 'personalAccessToken' | 'workspaceId'>): SeamHttpWorkspaces;
12
14
  get(params?: WorkspacesGetParams): Promise<WorkspacesGetResponse['workspace']>;
13
15
  list(params?: WorkspacesListParams): Promise<WorkspacesListResponse['workspaces']>;
14
16
  resetSandbox(body?: WorkspacesResetSandboxBody): Promise<void>;
@@ -4,7 +4,7 @@
4
4
  */
5
5
  import { warnOnInsecureuserIdentifierKey } from '../../../../lib/seam/connect/auth.js';
6
6
  import { createClient } from '../../../../lib/seam/connect/client.js';
7
- import { isSeamHttpOptionsWithApiKey, isSeamHttpOptionsWithClient, isSeamHttpOptionsWithClientSessionToken, SeamHttpInvalidOptionsError, } from '../../../../lib/seam/connect/options.js';
7
+ import { isSeamHttpOptionsWithApiKey, isSeamHttpOptionsWithClient, isSeamHttpOptionsWithClientSessionToken, isSeamHttpOptionsWithConsoleSessionToken, isSeamHttpOptionsWithPersonalAccessToken, SeamHttpInvalidOptionsError, } from '../../../../lib/seam/connect/options.js';
8
8
  import { parseOptions } from '../../../../lib/seam/connect/parse-options.js';
9
9
  import { SeamHttpClientSessions } from './client-sessions.js';
10
10
  export class SeamHttpWorkspaces {
@@ -43,6 +43,20 @@ export class SeamHttpWorkspaces {
43
43
  });
44
44
  return SeamHttpWorkspaces.fromClientSessionToken(token, options);
45
45
  }
46
+ static fromConsoleSessionToken(consoleSessionToken, workspaceId, options = {}) {
47
+ const constructorOptions = { ...options, consoleSessionToken, workspaceId };
48
+ if (!isSeamHttpOptionsWithConsoleSessionToken(constructorOptions)) {
49
+ throw new SeamHttpInvalidOptionsError('Missing consoleSessionToken or workspaceId');
50
+ }
51
+ return new SeamHttpWorkspaces(constructorOptions);
52
+ }
53
+ static fromPersonalAccessToken(personalAccessToken, workspaceId, options = {}) {
54
+ const constructorOptions = { ...options, personalAccessToken, workspaceId };
55
+ if (!isSeamHttpOptionsWithPersonalAccessToken(constructorOptions)) {
56
+ throw new SeamHttpInvalidOptionsError('Missing personalAccessToken or workspaceId');
57
+ }
58
+ return new SeamHttpWorkspaces(constructorOptions);
59
+ }
46
60
  async get(params) {
47
61
  const { data } = await this.client.request({
48
62
  url: '/workspaces/get',
@@ -1 +1 @@
1
- {"version":3,"file":"workspaces.js","sourceRoot":"","sources":["../../../../src/lib/seam/connect/routes/workspaces.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"workspaces.js","sourceRoot":"","sources":["../../../../src/lib/seam/connect/routes/workspaces.ts"],"names":[],"mappings":"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"}
@@ -1,5 +1,5 @@
1
1
  import { type Client } from './client.js';
2
- import { type SeamHttpFromPublishableKeyOptions, type SeamHttpOptions, type SeamHttpOptionsWithApiKey, type SeamHttpOptionsWithClient, type SeamHttpOptionsWithClientSessionToken } from './options.js';
2
+ import { type SeamHttpFromPublishableKeyOptions, type SeamHttpOptions, type SeamHttpOptionsWithApiKey, type SeamHttpOptionsWithClient, type SeamHttpOptionsWithClientSessionToken, type SeamHttpOptionsWithConsoleSessionToken, type SeamHttpOptionsWithPersonalAccessToken } from './options.js';
3
3
  import { SeamHttpAccessCodes, SeamHttpAcs, SeamHttpActionAttempts, SeamHttpClientSessions, SeamHttpConnectedAccounts, SeamHttpConnectWebviews, SeamHttpDevices, SeamHttpEvents, SeamHttpLocks, SeamHttpNoiseSensors, SeamHttpThermostats, SeamHttpWebhooks, SeamHttpWorkspaces } from './routes/index.js';
4
4
  export declare class SeamHttp {
5
5
  client: Client;
@@ -8,6 +8,8 @@ export declare class SeamHttp {
8
8
  static fromApiKey(apiKey: SeamHttpOptionsWithApiKey['apiKey'], options?: Omit<SeamHttpOptionsWithApiKey, 'apiKey'>): SeamHttp;
9
9
  static fromClientSessionToken(clientSessionToken: SeamHttpOptionsWithClientSessionToken['clientSessionToken'], options?: Omit<SeamHttpOptionsWithClientSessionToken, 'clientSessionToken'>): SeamHttp;
10
10
  static fromPublishableKey(publishableKey: string, userIdentifierKey: string, options?: SeamHttpFromPublishableKeyOptions): Promise<SeamHttp>;
11
+ static fromConsoleSessionToken(consoleSessionToken: SeamHttpOptionsWithConsoleSessionToken['consoleSessionToken'], workspaceId: SeamHttpOptionsWithConsoleSessionToken['workspaceId'], options?: Omit<SeamHttpOptionsWithConsoleSessionToken, 'consoleSessionToken' | 'workspaceId'>): SeamHttp;
12
+ static fromPersonalAccessToken(personalAccessToken: SeamHttpOptionsWithPersonalAccessToken['personalAccessToken'], workspaceId: SeamHttpOptionsWithPersonalAccessToken['workspaceId'], options?: Omit<SeamHttpOptionsWithPersonalAccessToken, 'personalAccessToken' | 'workspaceId'>): SeamHttp;
11
13
  get accessCodes(): SeamHttpAccessCodes;
12
14
  get acs(): SeamHttpAcs;
13
15
  get actionAttempts(): SeamHttpActionAttempts;
@@ -1,6 +1,6 @@
1
1
  import { warnOnInsecureuserIdentifierKey } from './auth.js';
2
2
  import { createClient } from './client.js';
3
- import { isSeamHttpOptionsWithApiKey, isSeamHttpOptionsWithClient, isSeamHttpOptionsWithClientSessionToken, SeamHttpInvalidOptionsError, } from './options.js';
3
+ import { isSeamHttpOptionsWithApiKey, isSeamHttpOptionsWithClient, isSeamHttpOptionsWithClientSessionToken, isSeamHttpOptionsWithConsoleSessionToken, isSeamHttpOptionsWithPersonalAccessToken, SeamHttpInvalidOptionsError, } from './options.js';
4
4
  import { parseOptions } from './parse-options.js';
5
5
  import { SeamHttpAccessCodes, SeamHttpAcs, SeamHttpActionAttempts, SeamHttpClientSessions, SeamHttpConnectedAccounts, SeamHttpConnectWebviews, SeamHttpDevices, SeamHttpEvents, SeamHttpLocks, SeamHttpNoiseSensors, SeamHttpThermostats, SeamHttpWebhooks, SeamHttpWorkspaces, } from './routes/index.js';
6
6
  export class SeamHttp {
@@ -39,6 +39,20 @@ export class SeamHttp {
39
39
  });
40
40
  return SeamHttp.fromClientSessionToken(token, options);
41
41
  }
42
+ static fromConsoleSessionToken(consoleSessionToken, workspaceId, options = {}) {
43
+ const constructorOptions = { ...options, consoleSessionToken, workspaceId };
44
+ if (!isSeamHttpOptionsWithConsoleSessionToken(constructorOptions)) {
45
+ throw new SeamHttpInvalidOptionsError('Missing consoleSessionToken or workspaceId');
46
+ }
47
+ return new SeamHttp(constructorOptions);
48
+ }
49
+ static fromPersonalAccessToken(personalAccessToken, workspaceId, options = {}) {
50
+ const constructorOptions = { ...options, personalAccessToken, workspaceId };
51
+ if (!isSeamHttpOptionsWithPersonalAccessToken(constructorOptions)) {
52
+ throw new SeamHttpInvalidOptionsError('Missing personalAccessToken or workspaceId');
53
+ }
54
+ return new SeamHttp(constructorOptions);
55
+ }
42
56
  get accessCodes() {
43
57
  return SeamHttpAccessCodes.fromClient(this.client);
44
58
  }
@@ -1 +1 @@
1
- {"version":3,"file":"seam-http.js","sourceRoot":"","sources":["../../../src/lib/seam/connect/seam-http.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"seam-http.js","sourceRoot":"","sources":["../../../src/lib/seam/connect/seam-http.ts"],"names":[],"mappings":"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"}
package/lib/version.d.ts CHANGED
@@ -1,2 +1,2 @@
1
- declare const seamapiJavascriptHttpVersion = "0.4.0";
1
+ declare const seamapiJavascriptHttpVersion = "0.5.0";
2
2
  export default seamapiJavascriptHttpVersion;
package/lib/version.js CHANGED
@@ -1,3 +1,3 @@
1
- const seamapiJavascriptHttpVersion = '0.4.0';
1
+ const seamapiJavascriptHttpVersion = '0.5.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.4.0",
3
+ "version": "0.5.0",
4
4
  "description": "JavaScript HTTP client for the Seam API written in TypeScript.",
5
5
  "type": "module",
6
6
  "main": "index.js",
@@ -1,9 +1,13 @@
1
1
  import {
2
2
  isSeamHttpOptionsWithApiKey,
3
3
  isSeamHttpOptionsWithClientSessionToken,
4
+ isSeamHttpOptionsWithConsoleSessionToken,
5
+ isSeamHttpOptionsWithPersonalAccessToken,
4
6
  SeamHttpInvalidOptionsError,
5
7
  type SeamHttpOptionsWithApiKey,
6
8
  type SeamHttpOptionsWithClientSessionToken,
9
+ type SeamHttpOptionsWithConsoleSessionToken,
10
+ type SeamHttpOptionsWithPersonalAccessToken,
7
11
  } from './options.js'
8
12
  import type { Options } from './parse-options.js'
9
13
 
@@ -22,8 +26,23 @@ export const getAuthHeaders = (options: Options): Headers => {
22
26
  return getAuthHeadersForClientSessionToken(options)
23
27
  }
24
28
 
29
+ if (isSeamHttpOptionsWithConsoleSessionToken(options)) {
30
+ return getAuthHeadersForConsoleSessionToken(options)
31
+ }
32
+
33
+ if (isSeamHttpOptionsWithPersonalAccessToken(options)) {
34
+ return getAuthHeadersForPersonalAccessToken(options)
35
+ }
36
+
25
37
  throw new SeamHttpInvalidOptionsError(
26
- 'Must specify an apiKey, clientSessionToken, or publishableKey',
38
+ [
39
+ 'Must specify',
40
+ 'an apiKey,',
41
+ 'clientSessionToken,',
42
+ 'publishableKey,',
43
+ 'consoleSessionToken with a workspaceId',
44
+ 'or personalAccessToken with a workspaceId',
45
+ ].join(' '),
27
46
  )
28
47
  }
29
48
 
@@ -96,6 +115,74 @@ const getAuthHeadersForClientSessionToken = ({
96
115
  }
97
116
  }
98
117
 
118
+ const getAuthHeadersForConsoleSessionToken = ({
119
+ consoleSessionToken,
120
+ workspaceId,
121
+ }: SeamHttpOptionsWithConsoleSessionToken): Headers => {
122
+ if (isAccessToken(consoleSessionToken)) {
123
+ throw new SeamHttpInvalidTokenError(
124
+ 'An Access Token cannot be used as a consoleSessionToken',
125
+ )
126
+ }
127
+
128
+ if (isClientSessionToken(consoleSessionToken)) {
129
+ throw new SeamHttpInvalidTokenError(
130
+ 'A Client Session Token cannot be used as a consoleSessionToken',
131
+ )
132
+ }
133
+
134
+ if (isPublishableKey(consoleSessionToken)) {
135
+ throw new SeamHttpInvalidTokenError(
136
+ 'A Publishable Key cannot be used as a consoleSessionToken',
137
+ )
138
+ }
139
+
140
+ if (!isJwt(consoleSessionToken)) {
141
+ throw new SeamHttpInvalidTokenError(
142
+ `Unknown or invalid consoleSessionToken format, expected a JWT which starts with ${jwtPrefix}`,
143
+ )
144
+ }
145
+
146
+ return {
147
+ authorization: `Bearer ${consoleSessionToken}`,
148
+ 'seam-workspace-id': workspaceId,
149
+ }
150
+ }
151
+
152
+ const getAuthHeadersForPersonalAccessToken = ({
153
+ personalAccessToken,
154
+ workspaceId,
155
+ }: SeamHttpOptionsWithPersonalAccessToken): Headers => {
156
+ if (isJwt(personalAccessToken)) {
157
+ throw new SeamHttpInvalidTokenError(
158
+ 'A JWT cannot be used as a personalAccessToken',
159
+ )
160
+ }
161
+
162
+ if (isClientSessionToken(personalAccessToken)) {
163
+ throw new SeamHttpInvalidTokenError(
164
+ 'A Client Session Token cannot be used as a personalAccessToken',
165
+ )
166
+ }
167
+
168
+ if (isPublishableKey(personalAccessToken)) {
169
+ throw new SeamHttpInvalidTokenError(
170
+ 'A Publishable Key cannot be used as a personalAccessToken',
171
+ )
172
+ }
173
+
174
+ if (!isAccessToken(personalAccessToken)) {
175
+ throw new SeamHttpInvalidTokenError(
176
+ `Unknown or invalid personalAccessToken format, expected token to start with ${accessTokenPrefix}`,
177
+ )
178
+ }
179
+
180
+ return {
181
+ authorization: `Bearer ${personalAccessToken}`,
182
+ 'seam-workspace-id': workspaceId,
183
+ }
184
+ }
185
+
99
186
  const getAuthHeadersForPublishableKey = (publishableKey: string): Headers => {
100
187
  if (isJwt(publishableKey)) {
101
188
  throw new SeamHttpInvalidTokenError(
@@ -153,6 +240,10 @@ export const warnOnInsecureuserIdentifierKey = (
153
240
 
154
241
  const tokenPrefix = 'seam_'
155
242
 
243
+ const accessTokenPrefix = 'seam_at'
244
+
245
+ const jwtPrefix = 'ey'
246
+
156
247
  const clientSessionTokenPrefix = 'seam_cst'
157
248
 
158
249
  const publishableKeyTokenPrefix = 'seam_pk'
@@ -160,9 +251,10 @@ const publishableKeyTokenPrefix = 'seam_pk'
160
251
  const isClientSessionToken = (token: string): boolean =>
161
252
  token.startsWith(clientSessionTokenPrefix)
162
253
 
163
- const isAccessToken = (token: string): boolean => token.startsWith('seam_at')
254
+ const isAccessToken = (token: string): boolean =>
255
+ token.startsWith(accessTokenPrefix)
164
256
 
165
- const isJwt = (token: string): boolean => token.startsWith('ey')
257
+ const isJwt = (token: string): boolean => token.startsWith(jwtPrefix)
166
258
 
167
259
  const isSeamToken = (token: string): boolean => token.startsWith(tokenPrefix)
168
260
 
@@ -5,6 +5,8 @@ export type SeamHttpOptions =
5
5
  | SeamHttpOptionsWithClient
6
6
  | SeamHttpOptionsWithApiKey
7
7
  | SeamHttpOptionsWithClientSessionToken
8
+ | SeamHttpOptionsWithConsoleSessionToken
9
+ | SeamHttpOptionsWithPersonalAccessToken
8
10
 
9
11
  interface SeamHttpCommonOptions extends ClientOptions {
10
12
  endpoint?: string
@@ -53,6 +55,18 @@ export const isSeamHttpOptionsWithApiKey = (
53
55
  )
54
56
  }
55
57
 
58
+ if ('consoleSessionToken' in options && options.consoleSessionToken != null) {
59
+ throw new SeamHttpInvalidOptionsError(
60
+ 'The consoleSessionToken option cannot be used with the apiKey option',
61
+ )
62
+ }
63
+
64
+ if ('personalAccessToken' in options && options.personalAccessToken != null) {
65
+ throw new SeamHttpInvalidOptionsError(
66
+ 'The personalAccessToken option cannot be used with the apiKey option',
67
+ )
68
+ }
69
+
56
70
  return true
57
71
  }
58
72
 
@@ -69,7 +83,97 @@ export const isSeamHttpOptionsWithClientSessionToken = (
69
83
 
70
84
  if ('apiKey' in options && options.apiKey != null) {
71
85
  throw new SeamHttpInvalidOptionsError(
72
- 'The clientSessionToken option cannot be used with the apiKey option',
86
+ 'The apiKey option cannot be used with the clientSessionToken option',
87
+ )
88
+ }
89
+
90
+ if ('consoleSessionToken' in options && options.consoleSessionToken != null) {
91
+ throw new SeamHttpInvalidOptionsError(
92
+ 'The consoleSessionToken option cannot be used with the clientSessionToken option',
93
+ )
94
+ }
95
+
96
+ if ('personalAccessToken' in options && options.personalAccessToken != null) {
97
+ throw new SeamHttpInvalidOptionsError(
98
+ 'The personalAccessToken option cannot be used with the clientSessionToken option',
99
+ )
100
+ }
101
+
102
+ return true
103
+ }
104
+
105
+ export interface SeamHttpOptionsWithConsoleSessionToken
106
+ extends SeamHttpCommonOptions {
107
+ consoleSessionToken: string
108
+ workspaceId: string
109
+ }
110
+
111
+ export const isSeamHttpOptionsWithConsoleSessionToken = (
112
+ options: SeamHttpOptions,
113
+ ): options is SeamHttpOptionsWithConsoleSessionToken => {
114
+ if (!('consoleSessionToken' in options)) return false
115
+ if (options.consoleSessionToken == null) return false
116
+
117
+ if (!('workspaceId' in options) || options.workspaceId == null) {
118
+ throw new SeamHttpInvalidOptionsError(
119
+ 'Must pass a workspaceId when using a consoleSessionToken',
120
+ )
121
+ }
122
+
123
+ if ('apiKey' in options && options.apiKey != null) {
124
+ throw new SeamHttpInvalidOptionsError(
125
+ 'The apiKey option cannot be used with the consoleSessionToken option',
126
+ )
127
+ }
128
+
129
+ if ('clientSessionToken' in options && options.clientSessionToken != null) {
130
+ throw new SeamHttpInvalidOptionsError(
131
+ 'The clientSessionToken option cannot be used with the consoleSessionToken option',
132
+ )
133
+ }
134
+
135
+ if ('personalAccessToken' in options && options.personalAccessToken != null) {
136
+ throw new SeamHttpInvalidOptionsError(
137
+ 'The personalAccessToken option cannot be used with the consoleSessionToken option',
138
+ )
139
+ }
140
+
141
+ return true
142
+ }
143
+
144
+ export interface SeamHttpOptionsWithPersonalAccessToken
145
+ extends SeamHttpCommonOptions {
146
+ personalAccessToken: string
147
+ workspaceId: string
148
+ }
149
+
150
+ export const isSeamHttpOptionsWithPersonalAccessToken = (
151
+ options: SeamHttpOptions,
152
+ ): options is SeamHttpOptionsWithPersonalAccessToken => {
153
+ if (!('personalAccessToken' in options)) return false
154
+ if (options.personalAccessToken == null) return false
155
+
156
+ if (!('workspaceId' in options) || options.workspaceId == null) {
157
+ throw new SeamHttpInvalidOptionsError(
158
+ 'Must pass a workspaceId when using a personalAccessToken',
159
+ )
160
+ }
161
+
162
+ if ('apiKey' in options && options.apiKey != null) {
163
+ throw new SeamHttpInvalidOptionsError(
164
+ 'The apiKey option cannot be used with the personalAccessToken option',
165
+ )
166
+ }
167
+
168
+ if ('clientSessionToken' in options && options.clientSessionToken != null) {
169
+ throw new SeamHttpInvalidOptionsError(
170
+ 'The clientSessionToken option cannot be used with the personalAccessToken option',
171
+ )
172
+ }
173
+
174
+ if ('consoleSessionToken' in options && options.consoleSessionToken != null) {
175
+ throw new SeamHttpInvalidOptionsError(
176
+ 'The consoleSessionToken option cannot be used with the personalAccessToken option',
73
177
  )
74
178
  }
75
179
 
@@ -12,12 +12,16 @@ import {
12
12
  isSeamHttpOptionsWithApiKey,
13
13
  isSeamHttpOptionsWithClient,
14
14
  isSeamHttpOptionsWithClientSessionToken,
15
+ isSeamHttpOptionsWithConsoleSessionToken,
16
+ isSeamHttpOptionsWithPersonalAccessToken,
15
17
  type SeamHttpFromPublishableKeyOptions,
16
18
  SeamHttpInvalidOptionsError,
17
19
  type SeamHttpOptions,
18
20
  type SeamHttpOptionsWithApiKey,
19
21
  type SeamHttpOptionsWithClient,
20
22
  type SeamHttpOptionsWithClientSessionToken,
23
+ type SeamHttpOptionsWithConsoleSessionToken,
24
+ type SeamHttpOptionsWithPersonalAccessToken,
21
25
  } from 'lib/seam/connect/options.js'
22
26
  import { parseOptions } from 'lib/seam/connect/parse-options.js'
23
27
 
@@ -82,6 +86,40 @@ export class SeamHttpAccessCodesUnmanaged {
82
86
  return SeamHttpAccessCodesUnmanaged.fromClientSessionToken(token, options)
83
87
  }
84
88
 
89
+ static fromConsoleSessionToken(
90
+ consoleSessionToken: SeamHttpOptionsWithConsoleSessionToken['consoleSessionToken'],
91
+ workspaceId: SeamHttpOptionsWithConsoleSessionToken['workspaceId'],
92
+ options: Omit<
93
+ SeamHttpOptionsWithConsoleSessionToken,
94
+ 'consoleSessionToken' | 'workspaceId'
95
+ > = {},
96
+ ): SeamHttpAccessCodesUnmanaged {
97
+ const constructorOptions = { ...options, consoleSessionToken, workspaceId }
98
+ if (!isSeamHttpOptionsWithConsoleSessionToken(constructorOptions)) {
99
+ throw new SeamHttpInvalidOptionsError(
100
+ 'Missing consoleSessionToken or workspaceId',
101
+ )
102
+ }
103
+ return new SeamHttpAccessCodesUnmanaged(constructorOptions)
104
+ }
105
+
106
+ static fromPersonalAccessToken(
107
+ personalAccessToken: SeamHttpOptionsWithPersonalAccessToken['personalAccessToken'],
108
+ workspaceId: SeamHttpOptionsWithPersonalAccessToken['workspaceId'],
109
+ options: Omit<
110
+ SeamHttpOptionsWithPersonalAccessToken,
111
+ 'personalAccessToken' | 'workspaceId'
112
+ > = {},
113
+ ): SeamHttpAccessCodesUnmanaged {
114
+ const constructorOptions = { ...options, personalAccessToken, workspaceId }
115
+ if (!isSeamHttpOptionsWithPersonalAccessToken(constructorOptions)) {
116
+ throw new SeamHttpInvalidOptionsError(
117
+ 'Missing personalAccessToken or workspaceId',
118
+ )
119
+ }
120
+ return new SeamHttpAccessCodesUnmanaged(constructorOptions)
121
+ }
122
+
85
123
  async convertToManaged(
86
124
  body?: AccessCodesUnmanagedConvertToManagedBody,
87
125
  ): Promise<void> {
@@ -12,12 +12,16 @@ import {
12
12
  isSeamHttpOptionsWithApiKey,
13
13
  isSeamHttpOptionsWithClient,
14
14
  isSeamHttpOptionsWithClientSessionToken,
15
+ isSeamHttpOptionsWithConsoleSessionToken,
16
+ isSeamHttpOptionsWithPersonalAccessToken,
15
17
  type SeamHttpFromPublishableKeyOptions,
16
18
  SeamHttpInvalidOptionsError,
17
19
  type SeamHttpOptions,
18
20
  type SeamHttpOptionsWithApiKey,
19
21
  type SeamHttpOptionsWithClient,
20
22
  type SeamHttpOptionsWithClientSessionToken,
23
+ type SeamHttpOptionsWithConsoleSessionToken,
24
+ type SeamHttpOptionsWithPersonalAccessToken,
21
25
  } from 'lib/seam/connect/options.js'
22
26
  import { parseOptions } from 'lib/seam/connect/parse-options.js'
23
27
 
@@ -83,6 +87,40 @@ export class SeamHttpAccessCodes {
83
87
  return SeamHttpAccessCodes.fromClientSessionToken(token, options)
84
88
  }
85
89
 
90
+ static fromConsoleSessionToken(
91
+ consoleSessionToken: SeamHttpOptionsWithConsoleSessionToken['consoleSessionToken'],
92
+ workspaceId: SeamHttpOptionsWithConsoleSessionToken['workspaceId'],
93
+ options: Omit<
94
+ SeamHttpOptionsWithConsoleSessionToken,
95
+ 'consoleSessionToken' | 'workspaceId'
96
+ > = {},
97
+ ): SeamHttpAccessCodes {
98
+ const constructorOptions = { ...options, consoleSessionToken, workspaceId }
99
+ if (!isSeamHttpOptionsWithConsoleSessionToken(constructorOptions)) {
100
+ throw new SeamHttpInvalidOptionsError(
101
+ 'Missing consoleSessionToken or workspaceId',
102
+ )
103
+ }
104
+ return new SeamHttpAccessCodes(constructorOptions)
105
+ }
106
+
107
+ static fromPersonalAccessToken(
108
+ personalAccessToken: SeamHttpOptionsWithPersonalAccessToken['personalAccessToken'],
109
+ workspaceId: SeamHttpOptionsWithPersonalAccessToken['workspaceId'],
110
+ options: Omit<
111
+ SeamHttpOptionsWithPersonalAccessToken,
112
+ 'personalAccessToken' | 'workspaceId'
113
+ > = {},
114
+ ): SeamHttpAccessCodes {
115
+ const constructorOptions = { ...options, personalAccessToken, workspaceId }
116
+ if (!isSeamHttpOptionsWithPersonalAccessToken(constructorOptions)) {
117
+ throw new SeamHttpInvalidOptionsError(
118
+ 'Missing personalAccessToken or workspaceId',
119
+ )
120
+ }
121
+ return new SeamHttpAccessCodes(constructorOptions)
122
+ }
123
+
86
124
  get unmanaged(): SeamHttpAccessCodesUnmanaged {
87
125
  return SeamHttpAccessCodesUnmanaged.fromClient(this.client)
88
126
  }