@workos-inc/node 7.15.0 → 7.17.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 (65) hide show
  1. package/lib/common/interfaces/event.interface.d.ts +67 -3
  2. package/lib/common/interfaces/get-options.interface.d.ts +1 -0
  3. package/lib/common/interfaces/post-options.interface.d.ts +1 -0
  4. package/lib/common/serializers/event.serializer.js +9 -0
  5. package/lib/common/utils/fetch-and-deserialize.d.ts +2 -2
  6. package/lib/common/utils/fetch-and-deserialize.js +2 -4
  7. package/lib/fga/fga-live-test.spec.d.ts +1 -0
  8. package/lib/fga/fga-live-test.spec.js +872 -0
  9. package/lib/fga/fga.d.ts +18 -0
  10. package/lib/fga/fga.js +105 -0
  11. package/lib/fga/fga.spec.d.ts +1 -0
  12. package/lib/fga/fga.spec.js +518 -0
  13. package/lib/fga/interfaces/check-op.enum.d.ts +5 -0
  14. package/lib/fga/interfaces/check-op.enum.js +9 -0
  15. package/lib/fga/interfaces/check.interface.d.ts +71 -0
  16. package/lib/fga/interfaces/check.interface.js +21 -0
  17. package/lib/fga/interfaces/index.d.ts +7 -0
  18. package/lib/fga/interfaces/index.js +23 -0
  19. package/lib/fga/interfaces/query.interface.d.ts +30 -0
  20. package/lib/fga/interfaces/query.interface.js +2 -0
  21. package/lib/fga/interfaces/resource.interface.d.ts +60 -0
  22. package/lib/fga/interfaces/resource.interface.js +2 -0
  23. package/lib/fga/interfaces/warrant-op.enum.d.ts +4 -0
  24. package/lib/fga/interfaces/warrant-op.enum.js +8 -0
  25. package/lib/fga/interfaces/warrant-token.interface.d.ts +6 -0
  26. package/lib/fga/interfaces/warrant-token.interface.js +2 -0
  27. package/lib/fga/interfaces/warrant.interface.d.ts +65 -0
  28. package/lib/fga/interfaces/warrant.interface.js +2 -0
  29. package/lib/fga/serializers/check-options.serializer.d.ts +4 -0
  30. package/lib/fga/serializers/check-options.serializer.js +62 -0
  31. package/lib/fga/serializers/create-resource-options.serializer.d.ts +2 -0
  32. package/lib/fga/serializers/create-resource-options.serializer.js +16 -0
  33. package/lib/fga/serializers/delete-resource-options.serializer.d.ts +2 -0
  34. package/lib/fga/serializers/delete-resource-options.serializer.js +15 -0
  35. package/lib/fga/serializers/index.d.ts +11 -0
  36. package/lib/fga/serializers/index.js +27 -0
  37. package/lib/fga/serializers/list-resources-options.serializer.d.ts +2 -0
  38. package/lib/fga/serializers/list-resources-options.serializer.js +12 -0
  39. package/lib/fga/serializers/list-warrants-options.serializer.d.ts +2 -0
  40. package/lib/fga/serializers/list-warrants-options.serializer.js +14 -0
  41. package/lib/fga/serializers/query-options.serializer.d.ts +2 -0
  42. package/lib/fga/serializers/query-options.serializer.js +12 -0
  43. package/lib/fga/serializers/query-result.serializer.d.ts +2 -0
  44. package/lib/fga/serializers/query-result.serializer.js +21 -0
  45. package/lib/fga/serializers/resource.serializer.d.ts +2 -0
  46. package/lib/fga/serializers/resource.serializer.js +9 -0
  47. package/lib/fga/serializers/warrant-token.serializer.d.ts +2 -0
  48. package/lib/fga/serializers/warrant-token.serializer.js +7 -0
  49. package/lib/fga/serializers/warrant.serializer.d.ts +2 -0
  50. package/lib/fga/serializers/warrant.serializer.js +14 -0
  51. package/lib/fga/serializers/write-warrant-options.serializer.d.ts +2 -0
  52. package/lib/fga/serializers/write-warrant-options.serializer.js +27 -0
  53. package/lib/fga/utils/interface-check.d.ts +3 -0
  54. package/lib/fga/utils/interface-check.js +15 -0
  55. package/lib/user-management/interfaces/authentication-event.interface.d.ts +25 -0
  56. package/lib/user-management/interfaces/authentication-event.interface.js +2 -0
  57. package/lib/user-management/interfaces/index.d.ts +1 -0
  58. package/lib/user-management/interfaces/index.js +1 -0
  59. package/lib/user-management/serializers/authentication-event.serializer.d.ts +2 -0
  60. package/lib/user-management/serializers/authentication-event.serializer.js +13 -0
  61. package/lib/user-management/serializers/index.d.ts +1 -0
  62. package/lib/user-management/serializers/index.js +1 -0
  63. package/lib/workos.d.ts +2 -0
  64. package/lib/workos.js +19 -7
  65. package/package.json +1 -1
@@ -0,0 +1,15 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.isResourceInterface = exports.isSubject = void 0;
4
+ function isSubject(resource) {
5
+ return (Object.prototype.hasOwnProperty.call(resource, 'resourceType') &&
6
+ Object.prototype.hasOwnProperty.call(resource, 'resourceId'));
7
+ }
8
+ exports.isSubject = isSubject;
9
+ function isResourceInterface(resource) {
10
+ return (!!resource &&
11
+ typeof resource === 'object' &&
12
+ 'getResouceType' in resource &&
13
+ 'getResourceId' in resource);
14
+ }
15
+ exports.isResourceInterface = isResourceInterface;
@@ -0,0 +1,25 @@
1
+ interface AuthenticationEventError {
2
+ code: string;
3
+ message: string;
4
+ }
5
+ type AuthenticationEventType = 'sso' | 'password' | 'oauth' | 'mfa' | 'magic_auth' | 'email_verification';
6
+ type AuthenticationEventStatus = 'failed' | 'succeeded';
7
+ export type AuthenticationEvent = {
8
+ email: string | null;
9
+ error?: AuthenticationEventError;
10
+ ipAddress: string | null;
11
+ status: AuthenticationEventStatus;
12
+ type: AuthenticationEventType;
13
+ userAgent: string | null;
14
+ userId: string | null;
15
+ };
16
+ export interface AuthenticationEventResponse {
17
+ email: string | null;
18
+ error?: AuthenticationEventError;
19
+ ip_address: string | null;
20
+ status: AuthenticationEventStatus;
21
+ type: AuthenticationEventType;
22
+ user_agent: string | null;
23
+ user_id: string | null;
24
+ }
25
+ export {};
@@ -0,0 +1,2 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
@@ -1,3 +1,4 @@
1
+ export * from './authentication-event.interface';
1
2
  export * from './authenticate-with-magic-auth-options.interface';
2
3
  export * from './authenticate-with-password-options.interface';
3
4
  export * from './authenticate-with-code-options.interface';
@@ -14,6 +14,7 @@ var __exportStar = (this && this.__exportStar) || function(m, exports) {
14
14
  for (var p in m) if (p !== "default" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);
15
15
  };
16
16
  Object.defineProperty(exports, "__esModule", { value: true });
17
+ __exportStar(require("./authentication-event.interface"), exports);
17
18
  __exportStar(require("./authenticate-with-magic-auth-options.interface"), exports);
18
19
  __exportStar(require("./authenticate-with-password-options.interface"), exports);
19
20
  __exportStar(require("./authenticate-with-code-options.interface"), exports);
@@ -0,0 +1,2 @@
1
+ import { AuthenticationEvent, AuthenticationEventResponse } from '../interfaces';
2
+ export declare const deserializeAuthenticationEvent: (authenticationEvent: AuthenticationEventResponse) => AuthenticationEvent;
@@ -0,0 +1,13 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.deserializeAuthenticationEvent = void 0;
4
+ const deserializeAuthenticationEvent = (authenticationEvent) => ({
5
+ email: authenticationEvent.email,
6
+ error: authenticationEvent.error,
7
+ ipAddress: authenticationEvent.ip_address,
8
+ status: authenticationEvent.status,
9
+ type: authenticationEvent.type,
10
+ userAgent: authenticationEvent.user_agent,
11
+ userId: authenticationEvent.user_id,
12
+ });
13
+ exports.deserializeAuthenticationEvent = deserializeAuthenticationEvent;
@@ -3,6 +3,7 @@ export * from './authenticate-with-magic-auth-options.serializer';
3
3
  export * from './authenticate-with-password-options.serializer';
4
4
  export * from './authenticate-with-refresh-token.options.serializer';
5
5
  export * from './authenticate-with-totp-options.serializer';
6
+ export * from './authentication-event.serializer';
6
7
  export * from './authentication-response.serializer';
7
8
  export * from './create-magic-auth-options.serializer';
8
9
  export * from './create-password-reset-options.serializer';
@@ -19,6 +19,7 @@ __exportStar(require("./authenticate-with-magic-auth-options.serializer"), expor
19
19
  __exportStar(require("./authenticate-with-password-options.serializer"), exports);
20
20
  __exportStar(require("./authenticate-with-refresh-token.options.serializer"), exports);
21
21
  __exportStar(require("./authenticate-with-totp-options.serializer"), exports);
22
+ __exportStar(require("./authentication-event.serializer"), exports);
22
23
  __exportStar(require("./authentication-response.serializer"), exports);
23
24
  __exportStar(require("./create-magic-auth-options.serializer"), exports);
24
25
  __exportStar(require("./create-password-reset-options.serializer"), exports);
package/lib/workos.d.ts CHANGED
@@ -10,6 +10,7 @@ import { Webhooks } from './webhooks/webhooks';
10
10
  import { Mfa } from './mfa/mfa';
11
11
  import { AuditLogs } from './audit-logs/audit-logs';
12
12
  import { UserManagement } from './user-management/user-management';
13
+ import { FGA } from './fga/fga';
13
14
  import { HttpClient } from './common/net/http-client';
14
15
  export declare class WorkOS {
15
16
  readonly key?: string | undefined;
@@ -28,6 +29,7 @@ export declare class WorkOS {
28
29
  readonly mfa: Mfa;
29
30
  readonly events: Events;
30
31
  readonly userManagement: UserManagement;
32
+ readonly fga: FGA;
31
33
  constructor(key?: string | undefined, options?: WorkOSOptions);
32
34
  createWebhookClient(): Webhooks;
33
35
  createHttpClient(options: WorkOSOptions, userAgent: string): HttpClient;
package/lib/workos.js CHANGED
@@ -22,12 +22,16 @@ const webhooks_1 = require("./webhooks/webhooks");
22
22
  const mfa_1 = require("./mfa/mfa");
23
23
  const audit_logs_1 = require("./audit-logs/audit-logs");
24
24
  const user_management_1 = require("./user-management/user-management");
25
+ const fga_1 = require("./fga/fga");
25
26
  const bad_request_exception_1 = require("./common/exceptions/bad-request.exception");
26
27
  const http_client_1 = require("./common/net/http-client");
27
28
  const subtle_crypto_provider_1 = require("./common/crypto/subtle-crypto-provider");
28
29
  const fetch_client_1 = require("./common/net/fetch-client");
29
- const VERSION = '7.15.0';
30
+ const VERSION = '7.17.0';
30
31
  const DEFAULT_HOSTNAME = 'api.workos.com';
32
+ const HEADER_AUTHORIZATION = 'Authorization';
33
+ const HEADER_IDEMPOTENCY_KEY = 'Idempotency-Key';
34
+ const HEADER_WARRANT_TOKEN = 'Warrant-Token';
31
35
  class WorkOS {
32
36
  constructor(key, options = {}) {
33
37
  var _a;
@@ -42,6 +46,7 @@ class WorkOS {
42
46
  this.sso = new sso_1.SSO(this);
43
47
  this.mfa = new mfa_1.Mfa(this);
44
48
  this.events = new events_1.Events(this);
49
+ this.fga = new fga_1.FGA(this);
45
50
  if (!key) {
46
51
  // process might be undefined in some environments
47
52
  this.key = process === null || process === void 0 ? void 0 : process.env.WORKOS_API_KEY;
@@ -84,7 +89,10 @@ class WorkOS {
84
89
  return __awaiter(this, void 0, void 0, function* () {
85
90
  const requestHeaders = {};
86
91
  if (options.idempotencyKey) {
87
- requestHeaders['Idempotency-Key'] = options.idempotencyKey;
92
+ requestHeaders[HEADER_IDEMPOTENCY_KEY] = options.idempotencyKey;
93
+ }
94
+ if (options.warrantToken) {
95
+ requestHeaders[HEADER_WARRANT_TOKEN] = options.warrantToken;
88
96
  }
89
97
  try {
90
98
  const res = yield this.client.post(path, entity, {
@@ -101,13 +109,17 @@ class WorkOS {
101
109
  }
102
110
  get(path, options = {}) {
103
111
  return __awaiter(this, void 0, void 0, function* () {
112
+ const requestHeaders = {};
113
+ if (options.accessToken) {
114
+ requestHeaders[HEADER_AUTHORIZATION] = `Bearer ${options.accessToken}`;
115
+ }
116
+ if (options.warrantToken) {
117
+ requestHeaders[HEADER_WARRANT_TOKEN] = options.warrantToken;
118
+ }
104
119
  try {
105
- const { accessToken } = options;
106
120
  const res = yield this.client.get(path, {
107
121
  params: options.query,
108
- headers: accessToken
109
- ? { Authorization: `Bearer ${accessToken}` }
110
- : undefined,
122
+ headers: requestHeaders,
111
123
  });
112
124
  return { data: yield res.toJSON() };
113
125
  }
@@ -121,7 +133,7 @@ class WorkOS {
121
133
  return __awaiter(this, void 0, void 0, function* () {
122
134
  const requestHeaders = {};
123
135
  if (options.idempotencyKey) {
124
- requestHeaders['Idempotency-Key'] = options.idempotencyKey;
136
+ requestHeaders[HEADER_IDEMPOTENCY_KEY] = options.idempotencyKey;
125
137
  }
126
138
  try {
127
139
  const res = yield this.client.put(path, entity, {
package/package.json CHANGED
@@ -1,5 +1,5 @@
1
1
  {
2
- "version": "7.15.0",
2
+ "version": "7.17.0",
3
3
  "name": "@workos-inc/node",
4
4
  "author": "WorkOS",
5
5
  "description": "A Node wrapper for the WorkOS API",